feat(sandbox): add AppAssetsInitializer and refactor VMFactory to VMBuilder

- Add AppAssetsInitializer to load published app assets into sandbox
- Refactor VMFactory.create() to VMBuilder with builder pattern
- Extract SandboxInitializer base class and DifyCliInitializer
- Simplify SandboxLayer constructor (remove options/environments params)
- Fix circular import in sandbox module by removing eager SandboxBashTool export
- Update SandboxProviderService to return VMBuilder instead of VirtualEnvironment
This commit is contained in:
Harry
2026-01-15 00:13:29 +08:00
parent a0c388f283
commit 94ff904a04
14 changed files with 316 additions and 223 deletions

View File

@ -1,4 +1,3 @@
from core.sandbox.bash.bash_tool import SandboxBashTool
from core.sandbox.bash.dify_cli import (
DifyCliBinary,
DifyCliConfig,
@ -7,24 +6,26 @@ from core.sandbox.bash.dify_cli import (
DifyCliToolConfig,
)
from core.sandbox.constants import (
APP_ASSETS_PATH,
APP_ASSETS_ZIP_PATH,
DIFY_CLI_CONFIG_PATH,
DIFY_CLI_PATH,
DIFY_CLI_PATH_PATTERN,
)
from core.sandbox.initializer.initializer import DifyCliInitializer, SandboxInitializer
from core.sandbox.session import SandboxSession
from core.sandbox.initializer import AppAssetsInitializer, DifyCliInitializer, SandboxInitializer
__all__ = [
"APP_ASSETS_PATH",
"APP_ASSETS_ZIP_PATH",
"DIFY_CLI_CONFIG_PATH",
"DIFY_CLI_PATH",
"DIFY_CLI_PATH_PATTERN",
"AppAssetsInitializer",
"DifyCliBinary",
"DifyCliConfig",
"DifyCliEnvConfig",
"DifyCliInitializer",
"DifyCliLocator",
"DifyCliToolConfig",
"SandboxBashTool",
"SandboxInitializer",
"SandboxSession",
]