@tianshu-ai/tianshu 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +200 -0
- package/README.md +284 -0
- package/README.zh-CN.md +136 -0
- package/bin/tianshu.mjs +32 -0
- package/package.json +60 -0
- package/packages/plugin-sdk/dist/agent-loop.d.ts +96 -0
- package/packages/plugin-sdk/dist/agent-loop.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/agent-loop.js +11 -0
- package/packages/plugin-sdk/dist/agent-loop.js.map +1 -0
- package/packages/plugin-sdk/dist/capabilities.d.ts +48 -0
- package/packages/plugin-sdk/dist/capabilities.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/capabilities.js +61 -0
- package/packages/plugin-sdk/dist/capabilities.js.map +1 -0
- package/packages/plugin-sdk/dist/catalog.d.ts +60 -0
- package/packages/plugin-sdk/dist/catalog.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/catalog.js +11 -0
- package/packages/plugin-sdk/dist/catalog.js.map +1 -0
- package/packages/plugin-sdk/dist/client.d.ts +171 -0
- package/packages/plugin-sdk/dist/client.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/client.js +96 -0
- package/packages/plugin-sdk/dist/client.js.map +1 -0
- package/packages/plugin-sdk/dist/index.d.ts +9 -0
- package/packages/plugin-sdk/dist/index.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/index.js +19 -0
- package/packages/plugin-sdk/dist/index.js.map +1 -0
- package/packages/plugin-sdk/dist/lsp.d.ts +32 -0
- package/packages/plugin-sdk/dist/lsp.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/lsp.js +19 -0
- package/packages/plugin-sdk/dist/lsp.js.map +1 -0
- package/packages/plugin-sdk/dist/manifest.d.ts +423 -0
- package/packages/plugin-sdk/dist/manifest.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/manifest.js +7 -0
- package/packages/plugin-sdk/dist/manifest.js.map +1 -0
- package/packages/plugin-sdk/dist/mcp-client.d.ts +74 -0
- package/packages/plugin-sdk/dist/mcp-client.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/mcp-client.js +226 -0
- package/packages/plugin-sdk/dist/mcp-client.js.map +1 -0
- package/packages/plugin-sdk/dist/mcp-fetch.d.ts +10 -0
- package/packages/plugin-sdk/dist/mcp-fetch.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/mcp-fetch.js +130 -0
- package/packages/plugin-sdk/dist/mcp-fetch.js.map +1 -0
- package/packages/plugin-sdk/dist/mcp-toolset.d.ts +128 -0
- package/packages/plugin-sdk/dist/mcp-toolset.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/mcp-toolset.js +246 -0
- package/packages/plugin-sdk/dist/mcp-toolset.js.map +1 -0
- package/packages/plugin-sdk/dist/server.d.ts +486 -0
- package/packages/plugin-sdk/dist/server.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/server.js +10 -0
- package/packages/plugin-sdk/dist/server.js.map +1 -0
- package/packages/plugin-sdk/dist/session-inbox.d.ts +56 -0
- package/packages/plugin-sdk/dist/session-inbox.d.ts.map +1 -0
- package/packages/plugin-sdk/dist/session-inbox.js +12 -0
- package/packages/plugin-sdk/dist/session-inbox.js.map +1 -0
- package/packages/plugin-sdk/package.json +36 -0
- package/packages/server/builtinConfig/plugins/README.md +1 -0
- package/packages/server/builtinConfig/plugins/files/manifest.json +100 -0
- package/packages/server/builtinConfig/plugins/files/skills/files-workspace-layout.md +29 -0
- package/packages/server/builtinConfig/plugins/microsandbox/manifest.json +177 -0
- package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-browser-howto.md +155 -0
- package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-build-use.md +201 -0
- package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-config.md +38 -0
- package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-exec-howto.md +144 -0
- package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-libreoffice.md +159 -0
- package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-main-orchestration.md +75 -0
- package/packages/server/builtinConfig/plugins/microsandbox/templates/README.md +26 -0
- package/packages/server/builtinConfig/plugins/microsandbox/templates/browser.yaml +105 -0
- package/packages/server/builtinConfig/plugins/microsandbox/templates/task-runner-with-browser.yaml +80 -0
- package/packages/server/builtinConfig/plugins/microsandbox/templates/task-runner.yaml +80 -0
- package/packages/server/builtinConfig/plugins/web-search/manifest.json +65 -0
- package/packages/server/builtinConfig/plugins/web-search/skills/web-search-howto.md +69 -0
- package/packages/server/builtinConfig/plugins/workboard/agent-seeds/echo-demo/agent.json +7 -0
- package/packages/server/builtinConfig/plugins/workboard/agent-seeds/llm-default/SOUL.md +53 -0
- package/packages/server/builtinConfig/plugins/workboard/agent-seeds/llm-default/agent.json +7 -0
- package/packages/server/builtinConfig/plugins/workboard/manifest.json +180 -0
- package/packages/server/builtinConfig/plugins/workboard/skills/large-input-large-output.md +185 -0
- package/packages/server/builtinConfig/plugins/workboard/skills/workboard-howto.md +166 -0
- package/packages/server/builtinConfig/plugins/workboard/skills/worker-creator.md +267 -0
- package/packages/server/builtinConfig/plugins/workboard/skills/worker-fleet.md +431 -0
- package/packages/server/dist/catalog.d.ts +52 -0
- package/packages/server/dist/catalog.d.ts.map +1 -0
- package/packages/server/dist/catalog.js +189 -0
- package/packages/server/dist/catalog.js.map +1 -0
- package/packages/server/dist/chat/active-harnesses.d.ts +34 -0
- package/packages/server/dist/chat/active-harnesses.d.ts.map +1 -0
- package/packages/server/dist/chat/active-harnesses.js +118 -0
- package/packages/server/dist/chat/active-harnesses.js.map +1 -0
- package/packages/server/dist/chat/agent-loop.d.ts +64 -0
- package/packages/server/dist/chat/agent-loop.d.ts.map +1 -0
- package/packages/server/dist/chat/agent-loop.js +597 -0
- package/packages/server/dist/chat/agent-loop.js.map +1 -0
- package/packages/server/dist/chat/agent-tool-adapter.d.ts +33 -0
- package/packages/server/dist/chat/agent-tool-adapter.d.ts.map +1 -0
- package/packages/server/dist/chat/agent-tool-adapter.js +260 -0
- package/packages/server/dist/chat/agent-tool-adapter.js.map +1 -0
- package/packages/server/dist/chat/compact.d.ts +52 -0
- package/packages/server/dist/chat/compact.d.ts.map +1 -0
- package/packages/server/dist/chat/compact.js +248 -0
- package/packages/server/dist/chat/compact.js.map +1 -0
- package/packages/server/dist/chat/dump-system-prompt.d.ts +17 -0
- package/packages/server/dist/chat/dump-system-prompt.d.ts.map +1 -0
- package/packages/server/dist/chat/dump-system-prompt.js +58 -0
- package/packages/server/dist/chat/dump-system-prompt.js.map +1 -0
- package/packages/server/dist/chat/handler.d.ts +186 -0
- package/packages/server/dist/chat/handler.d.ts.map +1 -0
- package/packages/server/dist/chat/handler.js +1248 -0
- package/packages/server/dist/chat/handler.js.map +1 -0
- package/packages/server/dist/chat/image-fit.d.ts +34 -0
- package/packages/server/dist/chat/image-fit.d.ts.map +1 -0
- package/packages/server/dist/chat/image-fit.js +157 -0
- package/packages/server/dist/chat/image-fit.js.map +1 -0
- package/packages/server/dist/chat/messages.d.ts +118 -0
- package/packages/server/dist/chat/messages.d.ts.map +1 -0
- package/packages/server/dist/chat/messages.js +341 -0
- package/packages/server/dist/chat/messages.js.map +1 -0
- package/packages/server/dist/chat/session-inbox.d.ts +114 -0
- package/packages/server/dist/chat/session-inbox.d.ts.map +1 -0
- package/packages/server/dist/chat/session-inbox.js +418 -0
- package/packages/server/dist/chat/session-inbox.js.map +1 -0
- package/packages/server/dist/chat/sqlite-session-repo.d.ts +26 -0
- package/packages/server/dist/chat/sqlite-session-repo.d.ts.map +1 -0
- package/packages/server/dist/chat/sqlite-session-repo.js +132 -0
- package/packages/server/dist/chat/sqlite-session-repo.js.map +1 -0
- package/packages/server/dist/chat/sqlite-session-storage.d.ts +83 -0
- package/packages/server/dist/chat/sqlite-session-storage.d.ts.map +1 -0
- package/packages/server/dist/chat/sqlite-session-storage.js +418 -0
- package/packages/server/dist/chat/sqlite-session-storage.js.map +1 -0
- package/packages/server/dist/chat/stub-execution-env.d.ts +3 -0
- package/packages/server/dist/chat/stub-execution-env.d.ts.map +1 -0
- package/packages/server/dist/chat/stub-execution-env.js +87 -0
- package/packages/server/dist/chat/stub-execution-env.js.map +1 -0
- package/packages/server/dist/chat/token-estimate.d.ts +11 -0
- package/packages/server/dist/chat/token-estimate.d.ts.map +1 -0
- package/packages/server/dist/chat/token-estimate.js +67 -0
- package/packages/server/dist/chat/token-estimate.js.map +1 -0
- package/packages/server/dist/chat/ws-protocol.d.ts +244 -0
- package/packages/server/dist/chat/ws-protocol.d.ts.map +1 -0
- package/packages/server/dist/chat/ws-protocol.js +193 -0
- package/packages/server/dist/chat/ws-protocol.js.map +1 -0
- package/packages/server/dist/cli.d.ts +9 -0
- package/packages/server/dist/cli.d.ts.map +1 -0
- package/packages/server/dist/cli.js +329 -0
- package/packages/server/dist/cli.js.map +1 -0
- package/packages/server/dist/core/agent-seeds.d.ts +25 -0
- package/packages/server/dist/core/agent-seeds.d.ts.map +1 -0
- package/packages/server/dist/core/agent-seeds.js +69 -0
- package/packages/server/dist/core/agent-seeds.js.map +1 -0
- package/packages/server/dist/core/config.d.ts +172 -0
- package/packages/server/dist/core/config.d.ts.map +1 -0
- package/packages/server/dist/core/config.js +155 -0
- package/packages/server/dist/core/config.js.map +1 -0
- package/packages/server/dist/core/db-pool.d.ts +32 -0
- package/packages/server/dist/core/db-pool.d.ts.map +1 -0
- package/packages/server/dist/core/db-pool.js +108 -0
- package/packages/server/dist/core/db-pool.js.map +1 -0
- package/packages/server/dist/core/dev-mode.d.ts +13 -0
- package/packages/server/dist/core/dev-mode.d.ts.map +1 -0
- package/packages/server/dist/core/dev-mode.js +51 -0
- package/packages/server/dist/core/dev-mode.js.map +1 -0
- package/packages/server/dist/core/global-ops.d.ts +54 -0
- package/packages/server/dist/core/global-ops.d.ts.map +1 -0
- package/packages/server/dist/core/global-ops.js +143 -0
- package/packages/server/dist/core/global-ops.js.map +1 -0
- package/packages/server/dist/core/identity-resolvers.d.ts +102 -0
- package/packages/server/dist/core/identity-resolvers.d.ts.map +1 -0
- package/packages/server/dist/core/identity-resolvers.js +176 -0
- package/packages/server/dist/core/identity-resolvers.js.map +1 -0
- package/packages/server/dist/core/index.d.ts +13 -0
- package/packages/server/dist/core/index.d.ts.map +1 -0
- package/packages/server/dist/core/index.js +18 -0
- package/packages/server/dist/core/index.js.map +1 -0
- package/packages/server/dist/core/llm.d.ts +45 -0
- package/packages/server/dist/core/llm.d.ts.map +1 -0
- package/packages/server/dist/core/llm.js +140 -0
- package/packages/server/dist/core/llm.js.map +1 -0
- package/packages/server/dist/core/mcp-manager.d.ts +47 -0
- package/packages/server/dist/core/mcp-manager.d.ts.map +1 -0
- package/packages/server/dist/core/mcp-manager.js +129 -0
- package/packages/server/dist/core/mcp-manager.js.map +1 -0
- package/packages/server/dist/core/middleware.d.ts +31 -0
- package/packages/server/dist/core/middleware.d.ts.map +1 -0
- package/packages/server/dist/core/middleware.js +102 -0
- package/packages/server/dist/core/middleware.js.map +1 -0
- package/packages/server/dist/core/migrations/001-initial.d.ts +4 -0
- package/packages/server/dist/core/migrations/001-initial.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/001-initial.js +66 -0
- package/packages/server/dist/core/migrations/001-initial.js.map +1 -0
- package/packages/server/dist/core/migrations/002-task-dependencies.d.ts +4 -0
- package/packages/server/dist/core/migrations/002-task-dependencies.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/002-task-dependencies.js +20 -0
- package/packages/server/dist/core/migrations/002-task-dependencies.js.map +1 -0
- package/packages/server/dist/core/migrations/003-session-tree.d.ts +4 -0
- package/packages/server/dist/core/migrations/003-session-tree.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/003-session-tree.js +96 -0
- package/packages/server/dist/core/migrations/003-session-tree.js.map +1 -0
- package/packages/server/dist/core/migrations/003-worker-agents.d.ts +4 -0
- package/packages/server/dist/core/migrations/003-worker-agents.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/003-worker-agents.js +65 -0
- package/packages/server/dist/core/migrations/003-worker-agents.js.map +1 -0
- package/packages/server/dist/core/migrations/004-rebuild-message-chain.d.ts +4 -0
- package/packages/server/dist/core/migrations/004-rebuild-message-chain.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/004-rebuild-message-chain.js +52 -0
- package/packages/server/dist/core/migrations/004-rebuild-message-chain.js.map +1 -0
- package/packages/server/dist/core/migrations/005-task-status-rename.d.ts +4 -0
- package/packages/server/dist/core/migrations/005-task-status-rename.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/005-task-status-rename.js +64 -0
- package/packages/server/dist/core/migrations/005-task-status-rename.js.map +1 -0
- package/packages/server/dist/core/migrations/006-task-labels.d.ts +4 -0
- package/packages/server/dist/core/migrations/006-task-labels.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/006-task-labels.js +43 -0
- package/packages/server/dist/core/migrations/006-task-labels.js.map +1 -0
- package/packages/server/dist/core/migrations/007-session-inbox.d.ts +4 -0
- package/packages/server/dist/core/migrations/007-session-inbox.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/007-session-inbox.js +67 -0
- package/packages/server/dist/core/migrations/007-session-inbox.js.map +1 -0
- package/packages/server/dist/core/migrations/008-task-intervention.d.ts +4 -0
- package/packages/server/dist/core/migrations/008-task-intervention.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/008-task-intervention.js +60 -0
- package/packages/server/dist/core/migrations/008-task-intervention.js.map +1 -0
- package/packages/server/dist/core/migrations/index.d.ts +12 -0
- package/packages/server/dist/core/migrations/index.d.ts.map +1 -0
- package/packages/server/dist/core/migrations/index.js +58 -0
- package/packages/server/dist/core/migrations/index.js.map +1 -0
- package/packages/server/dist/core/paths.d.ts +53 -0
- package/packages/server/dist/core/paths.d.ts.map +1 -0
- package/packages/server/dist/core/paths.js +125 -0
- package/packages/server/dist/core/paths.js.map +1 -0
- package/packages/server/dist/core/plugins/builtin-loader.d.ts +56 -0
- package/packages/server/dist/core/plugins/builtin-loader.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/builtin-loader.js +153 -0
- package/packages/server/dist/core/plugins/builtin-loader.js.map +1 -0
- package/packages/server/dist/core/plugins/discovery.d.ts +28 -0
- package/packages/server/dist/core/plugins/discovery.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/discovery.js +97 -0
- package/packages/server/dist/core/plugins/discovery.js.map +1 -0
- package/packages/server/dist/core/plugins/index.d.ts +6 -0
- package/packages/server/dist/core/plugins/index.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/index.js +6 -0
- package/packages/server/dist/core/plugins/index.js.map +1 -0
- package/packages/server/dist/core/plugins/manifest.d.ts +9 -0
- package/packages/server/dist/core/plugins/manifest.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/manifest.js +584 -0
- package/packages/server/dist/core/plugins/manifest.js.map +1 -0
- package/packages/server/dist/core/plugins/registry.d.ts +269 -0
- package/packages/server/dist/core/plugins/registry.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/registry.js +1003 -0
- package/packages/server/dist/core/plugins/registry.js.map +1 -0
- package/packages/server/dist/core/plugins/secrets.d.ts +46 -0
- package/packages/server/dist/core/plugins/secrets.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/secrets.js +174 -0
- package/packages/server/dist/core/plugins/secrets.js.map +1 -0
- package/packages/server/dist/core/plugins/skills.d.ts +131 -0
- package/packages/server/dist/core/plugins/skills.d.ts.map +1 -0
- package/packages/server/dist/core/plugins/skills.js +389 -0
- package/packages/server/dist/core/plugins/skills.js.map +1 -0
- package/packages/server/dist/core/templates.d.ts +28 -0
- package/packages/server/dist/core/templates.d.ts.map +1 -0
- package/packages/server/dist/core/templates.js +103 -0
- package/packages/server/dist/core/templates.js.map +1 -0
- package/packages/server/dist/core/tenant-context.d.ts +18 -0
- package/packages/server/dist/core/tenant-context.d.ts.map +1 -0
- package/packages/server/dist/core/tenant-context.js +42 -0
- package/packages/server/dist/core/tenant-context.js.map +1 -0
- package/packages/server/dist/core/tenant-id.d.ts +8 -0
- package/packages/server/dist/core/tenant-id.d.ts.map +1 -0
- package/packages/server/dist/core/tenant-id.js +53 -0
- package/packages/server/dist/core/tenant-id.js.map +1 -0
- package/packages/server/dist/core/tenant-skills.d.ts +29 -0
- package/packages/server/dist/core/tenant-skills.d.ts.map +1 -0
- package/packages/server/dist/core/tenant-skills.js +77 -0
- package/packages/server/dist/core/tenant-skills.js.map +1 -0
- package/packages/server/dist/core/worker-agents-fs.d.ts +44 -0
- package/packages/server/dist/core/worker-agents-fs.d.ts.map +1 -0
- package/packages/server/dist/core/worker-agents-fs.js +86 -0
- package/packages/server/dist/core/worker-agents-fs.js.map +1 -0
- package/packages/server/dist/core/worker-agents.d.ts +77 -0
- package/packages/server/dist/core/worker-agents.d.ts.map +1 -0
- package/packages/server/dist/core/worker-agents.js +191 -0
- package/packages/server/dist/core/worker-agents.js.map +1 -0
- package/packages/server/dist/index.d.ts +2 -0
- package/packages/server/dist/index.d.ts.map +1 -0
- package/packages/server/dist/index.js +623 -0
- package/packages/server/dist/index.js.map +1 -0
- package/packages/server/dist/lsp/client.d.ts +53 -0
- package/packages/server/dist/lsp/client.d.ts.map +1 -0
- package/packages/server/dist/lsp/client.js +258 -0
- package/packages/server/dist/lsp/client.js.map +1 -0
- package/packages/server/dist/lsp/format.d.ts +13 -0
- package/packages/server/dist/lsp/format.d.ts.map +1 -0
- package/packages/server/dist/lsp/format.js +55 -0
- package/packages/server/dist/lsp/format.js.map +1 -0
- package/packages/server/dist/lsp/index.d.ts +20 -0
- package/packages/server/dist/lsp/index.d.ts.map +1 -0
- package/packages/server/dist/lsp/index.js +32 -0
- package/packages/server/dist/lsp/index.js.map +1 -0
- package/packages/server/dist/lsp/language-registry.d.ts +29 -0
- package/packages/server/dist/lsp/language-registry.d.ts.map +1 -0
- package/packages/server/dist/lsp/language-registry.js +62 -0
- package/packages/server/dist/lsp/language-registry.js.map +1 -0
- package/packages/server/dist/lsp/manager.d.ts +77 -0
- package/packages/server/dist/lsp/manager.d.ts.map +1 -0
- package/packages/server/dist/lsp/manager.js +300 -0
- package/packages/server/dist/lsp/manager.js.map +1 -0
- package/packages/server/dist/plugins-routes.d.ts +96 -0
- package/packages/server/dist/plugins-routes.d.ts.map +1 -0
- package/packages/server/dist/plugins-routes.js +627 -0
- package/packages/server/dist/plugins-routes.js.map +1 -0
- package/packages/server/dist/setup/checks/config.d.ts +9 -0
- package/packages/server/dist/setup/checks/config.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/config.js +66 -0
- package/packages/server/dist/setup/checks/config.js.map +1 -0
- package/packages/server/dist/setup/checks/db.d.ts +6 -0
- package/packages/server/dist/setup/checks/db.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/db.js +79 -0
- package/packages/server/dist/setup/checks/db.js.map +1 -0
- package/packages/server/dist/setup/checks/known-models.d.ts +18 -0
- package/packages/server/dist/setup/checks/known-models.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/known-models.js +119 -0
- package/packages/server/dist/setup/checks/known-models.js.map +1 -0
- package/packages/server/dist/setup/checks/network.d.ts +11 -0
- package/packages/server/dist/setup/checks/network.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/network.js +176 -0
- package/packages/server/dist/setup/checks/network.js.map +1 -0
- package/packages/server/dist/setup/checks/plugins.d.ts +9 -0
- package/packages/server/dist/setup/checks/plugins.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/plugins.js +194 -0
- package/packages/server/dist/setup/checks/plugins.js.map +1 -0
- package/packages/server/dist/setup/checks/providers.d.ts +12 -0
- package/packages/server/dist/setup/checks/providers.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/providers.js +368 -0
- package/packages/server/dist/setup/checks/providers.js.map +1 -0
- package/packages/server/dist/setup/checks/runtime.d.ts +3 -0
- package/packages/server/dist/setup/checks/runtime.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/runtime.js +44 -0
- package/packages/server/dist/setup/checks/runtime.js.map +1 -0
- package/packages/server/dist/setup/checks/sandbox.d.ts +9 -0
- package/packages/server/dist/setup/checks/sandbox.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/sandbox.js +110 -0
- package/packages/server/dist/setup/checks/sandbox.js.map +1 -0
- package/packages/server/dist/setup/checks/tenants.d.ts +9 -0
- package/packages/server/dist/setup/checks/tenants.d.ts.map +1 -0
- package/packages/server/dist/setup/checks/tenants.js +509 -0
- package/packages/server/dist/setup/checks/tenants.js.map +1 -0
- package/packages/server/dist/setup/cli-agent.d.ts +39 -0
- package/packages/server/dist/setup/cli-agent.d.ts.map +1 -0
- package/packages/server/dist/setup/cli-agent.js +1353 -0
- package/packages/server/dist/setup/cli-agent.js.map +1 -0
- package/packages/server/dist/setup/doctor.d.ts +32 -0
- package/packages/server/dist/setup/doctor.d.ts.map +1 -0
- package/packages/server/dist/setup/doctor.js +80 -0
- package/packages/server/dist/setup/doctor.js.map +1 -0
- package/packages/server/dist/setup/launchd.d.ts +107 -0
- package/packages/server/dist/setup/launchd.d.ts.map +1 -0
- package/packages/server/dist/setup/launchd.js +309 -0
- package/packages/server/dist/setup/launchd.js.map +1 -0
- package/packages/server/dist/setup/load-env.d.ts +21 -0
- package/packages/server/dist/setup/load-env.d.ts.map +1 -0
- package/packages/server/dist/setup/load-env.js +88 -0
- package/packages/server/dist/setup/load-env.js.map +1 -0
- package/packages/server/dist/setup/probe-default-model.d.ts +28 -0
- package/packages/server/dist/setup/probe-default-model.d.ts.map +1 -0
- package/packages/server/dist/setup/probe-default-model.js +133 -0
- package/packages/server/dist/setup/probe-default-model.js.map +1 -0
- package/packages/server/dist/setup/render.d.ts +28 -0
- package/packages/server/dist/setup/render.d.ts.map +1 -0
- package/packages/server/dist/setup/render.js +60 -0
- package/packages/server/dist/setup/render.js.map +1 -0
- package/packages/server/dist/setup/repo-root.d.ts +3 -0
- package/packages/server/dist/setup/repo-root.d.ts.map +1 -0
- package/packages/server/dist/setup/repo-root.js +43 -0
- package/packages/server/dist/setup/repo-root.js.map +1 -0
- package/packages/server/dist/setup/service.d.ts +60 -0
- package/packages/server/dist/setup/service.d.ts.map +1 -0
- package/packages/server/dist/setup/service.js +345 -0
- package/packages/server/dist/setup/service.js.map +1 -0
- package/packages/server/dist/setup/start-server.d.ts +23 -0
- package/packages/server/dist/setup/start-server.d.ts.map +1 -0
- package/packages/server/dist/setup/start-server.js +465 -0
- package/packages/server/dist/setup/start-server.js.map +1 -0
- package/packages/server/dist/setup/wizard.d.ts +59 -0
- package/packages/server/dist/setup/wizard.d.ts.map +1 -0
- package/packages/server/dist/setup/wizard.js +556 -0
- package/packages/server/dist/setup/wizard.js.map +1 -0
- package/packages/server/dist/tools/edit-file.d.ts +13 -0
- package/packages/server/dist/tools/edit-file.d.ts.map +1 -0
- package/packages/server/dist/tools/edit-file.js +90 -0
- package/packages/server/dist/tools/edit-file.js.map +1 -0
- package/packages/server/dist/tools/glob.d.ts +12 -0
- package/packages/server/dist/tools/glob.d.ts.map +1 -0
- package/packages/server/dist/tools/glob.js +82 -0
- package/packages/server/dist/tools/glob.js.map +1 -0
- package/packages/server/dist/tools/index.d.ts +82 -0
- package/packages/server/dist/tools/index.d.ts.map +1 -0
- package/packages/server/dist/tools/index.js +72 -0
- package/packages/server/dist/tools/index.js.map +1 -0
- package/packages/server/dist/tools/list-dir.d.ts +24 -0
- package/packages/server/dist/tools/list-dir.d.ts.map +1 -0
- package/packages/server/dist/tools/list-dir.js +99 -0
- package/packages/server/dist/tools/list-dir.js.map +1 -0
- package/packages/server/dist/tools/path-helper.d.ts +15 -0
- package/packages/server/dist/tools/path-helper.d.ts.map +1 -0
- package/packages/server/dist/tools/path-helper.js +72 -0
- package/packages/server/dist/tools/path-helper.js.map +1 -0
- package/packages/server/dist/tools/read-file.d.ts +17 -0
- package/packages/server/dist/tools/read-file.d.ts.map +1 -0
- package/packages/server/dist/tools/read-file.js +94 -0
- package/packages/server/dist/tools/read-file.js.map +1 -0
- package/packages/server/dist/tools/sandbox.d.ts +57 -0
- package/packages/server/dist/tools/sandbox.d.ts.map +1 -0
- package/packages/server/dist/tools/sandbox.js +291 -0
- package/packages/server/dist/tools/sandbox.js.map +1 -0
- package/packages/server/dist/tools/write-file.d.ts +12 -0
- package/packages/server/dist/tools/write-file.d.ts.map +1 -0
- package/packages/server/dist/tools/write-file.js +67 -0
- package/packages/server/dist/tools/write-file.js.map +1 -0
- package/packages/server/dist/worker-agents-routes.d.ts +11 -0
- package/packages/server/dist/worker-agents-routes.d.ts.map +1 -0
- package/packages/server/dist/worker-agents-routes.js +253 -0
- package/packages/server/dist/worker-agents-routes.js.map +1 -0
- package/packages/server/package.json +41 -0
- package/packages/web/dist/assets/index-DH-gJ09_.js +60 -0
- package/packages/web/dist/assets/index-xU4lYYqY.css +2 -0
- package/packages/web/dist/index.html +14 -0
- package/packages/web/package.json +36 -0
- package/plugins/README.md +64 -0
- package/plugins/files/dist/client.d.ts +5 -0
- package/plugins/files/dist/client.d.ts.map +1 -0
- package/plugins/files/dist/client.js +354 -0
- package/plugins/files/dist/client.js.map +1 -0
- package/plugins/files/dist/server.d.ts +32 -0
- package/plugins/files/dist/server.d.ts.map +1 -0
- package/plugins/files/dist/server.js +514 -0
- package/plugins/files/dist/server.js.map +1 -0
- package/plugins/files/dist/tools/edit-file.d.ts +29 -0
- package/plugins/files/dist/tools/edit-file.d.ts.map +1 -0
- package/plugins/files/dist/tools/edit-file.js +230 -0
- package/plugins/files/dist/tools/edit-file.js.map +1 -0
- package/plugins/files/dist/tools/edit-file.prompt.md +36 -0
- package/plugins/files/dist/tools/glob.d.ts +12 -0
- package/plugins/files/dist/tools/glob.d.ts.map +1 -0
- package/plugins/files/dist/tools/glob.js +84 -0
- package/plugins/files/dist/tools/glob.js.map +1 -0
- package/plugins/files/dist/tools/index.d.ts +13 -0
- package/plugins/files/dist/tools/index.d.ts.map +1 -0
- package/plugins/files/dist/tools/index.js +158 -0
- package/plugins/files/dist/tools/index.js.map +1 -0
- package/plugins/files/dist/tools/list-dir.d.ts +24 -0
- package/plugins/files/dist/tools/list-dir.d.ts.map +1 -0
- package/plugins/files/dist/tools/list-dir.js +104 -0
- package/plugins/files/dist/tools/list-dir.js.map +1 -0
- package/plugins/files/dist/tools/load-prompt.d.ts +5 -0
- package/plugins/files/dist/tools/load-prompt.d.ts.map +1 -0
- package/plugins/files/dist/tools/load-prompt.js +39 -0
- package/plugins/files/dist/tools/load-prompt.js.map +1 -0
- package/plugins/files/dist/tools/path-helper.d.ts +32 -0
- package/plugins/files/dist/tools/path-helper.d.ts.map +1 -0
- package/plugins/files/dist/tools/path-helper.js +113 -0
- package/plugins/files/dist/tools/path-helper.js.map +1 -0
- package/plugins/files/dist/tools/read-file.d.ts +17 -0
- package/plugins/files/dist/tools/read-file.d.ts.map +1 -0
- package/plugins/files/dist/tools/read-file.js +109 -0
- package/plugins/files/dist/tools/read-file.js.map +1 -0
- package/plugins/files/dist/tools/read-tracker.d.ts +28 -0
- package/plugins/files/dist/tools/read-tracker.d.ts.map +1 -0
- package/plugins/files/dist/tools/read-tracker.js +135 -0
- package/plugins/files/dist/tools/read-tracker.js.map +1 -0
- package/plugins/files/dist/tools/replacers.d.ts +27 -0
- package/plugins/files/dist/tools/replacers.d.ts.map +1 -0
- package/plugins/files/dist/tools/replacers.js +221 -0
- package/plugins/files/dist/tools/replacers.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-delete.d.ts +12 -0
- package/plugins/files/dist/tools/tenant-config-delete.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-delete.js +70 -0
- package/plugins/files/dist/tools/tenant-config-delete.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-edit.d.ts +25 -0
- package/plugins/files/dist/tools/tenant-config-edit.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-edit.js +142 -0
- package/plugins/files/dist/tools/tenant-config-edit.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-glob.d.ts +12 -0
- package/plugins/files/dist/tools/tenant-config-glob.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-glob.js +64 -0
- package/plugins/files/dist/tools/tenant-config-glob.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-helper.d.ts +64 -0
- package/plugins/files/dist/tools/tenant-config-helper.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-helper.js +162 -0
- package/plugins/files/dist/tools/tenant-config-helper.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-list.d.ts +20 -0
- package/plugins/files/dist/tools/tenant-config-list.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-list.js +95 -0
- package/plugins/files/dist/tools/tenant-config-list.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-read.d.ts +17 -0
- package/plugins/files/dist/tools/tenant-config-read.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-read.js +87 -0
- package/plugins/files/dist/tools/tenant-config-read.js.map +1 -0
- package/plugins/files/dist/tools/tenant-config-write.d.ts +14 -0
- package/plugins/files/dist/tools/tenant-config-write.d.ts.map +1 -0
- package/plugins/files/dist/tools/tenant-config-write.js +78 -0
- package/plugins/files/dist/tools/tenant-config-write.js.map +1 -0
- package/plugins/files/dist/tools/text-shape.d.ts +20 -0
- package/plugins/files/dist/tools/text-shape.d.ts.map +1 -0
- package/plugins/files/dist/tools/text-shape.js +57 -0
- package/plugins/files/dist/tools/text-shape.js.map +1 -0
- package/plugins/files/dist/tools/write-file.d.ts +12 -0
- package/plugins/files/dist/tools/write-file.d.ts.map +1 -0
- package/plugins/files/dist/tools/write-file.js +89 -0
- package/plugins/files/dist/tools/write-file.js.map +1 -0
- package/plugins/files/dist/tools/write-file.prompt.md +14 -0
- package/plugins/files/manifest.json +100 -0
- package/plugins/files/package.json +39 -0
- package/plugins/files/skills/files-workspace-layout.md +29 -0
- package/plugins/microsandbox/dist/admin/browser-routes.d.ts +41 -0
- package/plugins/microsandbox/dist/admin/browser-routes.d.ts.map +1 -0
- package/plugins/microsandbox/dist/admin/browser-routes.js +208 -0
- package/plugins/microsandbox/dist/admin/browser-routes.js.map +1 -0
- package/plugins/microsandbox/dist/admin/preview-exec.d.ts +38 -0
- package/plugins/microsandbox/dist/admin/preview-exec.d.ts.map +1 -0
- package/plugins/microsandbox/dist/admin/preview-exec.js +185 -0
- package/plugins/microsandbox/dist/admin/preview-exec.js.map +1 -0
- package/plugins/microsandbox/dist/admin/routes.d.ts +35 -0
- package/plugins/microsandbox/dist/admin/routes.d.ts.map +1 -0
- package/plugins/microsandbox/dist/admin/routes.js +728 -0
- package/plugins/microsandbox/dist/admin/routes.js.map +1 -0
- package/plugins/microsandbox/dist/admin/sandboxfile-io.d.ts +11 -0
- package/plugins/microsandbox/dist/admin/sandboxfile-io.d.ts.map +1 -0
- package/plugins/microsandbox/dist/admin/sandboxfile-io.js +72 -0
- package/plugins/microsandbox/dist/admin/sandboxfile-io.js.map +1 -0
- package/plugins/microsandbox/dist/admin/templates.d.ts +16 -0
- package/plugins/microsandbox/dist/admin/templates.d.ts.map +1 -0
- package/plugins/microsandbox/dist/admin/templates.js +66 -0
- package/plugins/microsandbox/dist/admin/templates.js.map +1 -0
- package/plugins/microsandbox/dist/admin.d.ts +5 -0
- package/plugins/microsandbox/dist/admin.d.ts.map +1 -0
- package/plugins/microsandbox/dist/admin.js +256 -0
- package/plugins/microsandbox/dist/admin.js.map +1 -0
- package/plugins/microsandbox/dist/build/builder.d.ts +69 -0
- package/plugins/microsandbox/dist/build/builder.d.ts.map +1 -0
- package/plugins/microsandbox/dist/build/builder.js +257 -0
- package/plugins/microsandbox/dist/build/builder.js.map +1 -0
- package/plugins/microsandbox/dist/build/metadata.d.ts +27 -0
- package/plugins/microsandbox/dist/build/metadata.d.ts.map +1 -0
- package/plugins/microsandbox/dist/build/metadata.js +55 -0
- package/plugins/microsandbox/dist/build/metadata.js.map +1 -0
- package/plugins/microsandbox/dist/build/pointer.d.ts +51 -0
- package/plugins/microsandbox/dist/build/pointer.d.ts.map +1 -0
- package/plugins/microsandbox/dist/build/pointer.js +130 -0
- package/plugins/microsandbox/dist/build/pointer.js.map +1 -0
- package/plugins/microsandbox/dist/build/sandboxfile.d.ts +15 -0
- package/plugins/microsandbox/dist/build/sandboxfile.d.ts.map +1 -0
- package/plugins/microsandbox/dist/build/sandboxfile.js +176 -0
- package/plugins/microsandbox/dist/build/sandboxfile.js.map +1 -0
- package/plugins/microsandbox/dist/client.d.ts +5 -0
- package/plugins/microsandbox/dist/client.d.ts.map +1 -0
- package/plugins/microsandbox/dist/client.js +941 -0
- package/plugins/microsandbox/dist/client.js.map +1 -0
- package/plugins/microsandbox/dist/runner/browser.d.ts +50 -0
- package/plugins/microsandbox/dist/runner/browser.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/browser.js +142 -0
- package/plugins/microsandbox/dist/runner/browser.js.map +1 -0
- package/plugins/microsandbox/dist/runner/free-port.d.ts +6 -0
- package/plugins/microsandbox/dist/runner/free-port.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/free-port.js +53 -0
- package/plugins/microsandbox/dist/runner/free-port.js.map +1 -0
- package/plugins/microsandbox/dist/runner/index.d.ts +28 -0
- package/plugins/microsandbox/dist/runner/index.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/index.js +72 -0
- package/plugins/microsandbox/dist/runner/index.js.map +1 -0
- package/plugins/microsandbox/dist/runner/microsandbox.d.ts +64 -0
- package/plugins/microsandbox/dist/runner/microsandbox.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/microsandbox.js +668 -0
- package/plugins/microsandbox/dist/runner/microsandbox.js.map +1 -0
- package/plugins/microsandbox/dist/runner/nullable.d.ts +36 -0
- package/plugins/microsandbox/dist/runner/nullable.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/nullable.js +82 -0
- package/plugins/microsandbox/dist/runner/nullable.js.map +1 -0
- package/plugins/microsandbox/dist/runner/pool.d.ts +97 -0
- package/plugins/microsandbox/dist/runner/pool.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/pool.js +494 -0
- package/plugins/microsandbox/dist/runner/pool.js.map +1 -0
- package/plugins/microsandbox/dist/runner/types.d.ts +33 -0
- package/plugins/microsandbox/dist/runner/types.d.ts.map +1 -0
- package/plugins/microsandbox/dist/runner/types.js +79 -0
- package/plugins/microsandbox/dist/runner/types.js.map +1 -0
- package/plugins/microsandbox/dist/server.d.ts +7 -0
- package/plugins/microsandbox/dist/server.d.ts.map +1 -0
- package/plugins/microsandbox/dist/server.js +276 -0
- package/plugins/microsandbox/dist/server.js.map +1 -0
- package/plugins/microsandbox/dist/tools/browser.d.ts +25 -0
- package/plugins/microsandbox/dist/tools/browser.d.ts.map +1 -0
- package/plugins/microsandbox/dist/tools/browser.js +78 -0
- package/plugins/microsandbox/dist/tools/browser.js.map +1 -0
- package/plugins/microsandbox/dist/tools/build.d.ts +5 -0
- package/plugins/microsandbox/dist/tools/build.d.ts.map +1 -0
- package/plugins/microsandbox/dist/tools/build.js +243 -0
- package/plugins/microsandbox/dist/tools/build.js.map +1 -0
- package/plugins/microsandbox/dist/tools/index.d.ts +9 -0
- package/plugins/microsandbox/dist/tools/index.d.ts.map +1 -0
- package/plugins/microsandbox/dist/tools/index.js +430 -0
- package/plugins/microsandbox/dist/tools/index.js.map +1 -0
- package/plugins/microsandbox/dist/tools/mcp-client.d.ts +63 -0
- package/plugins/microsandbox/dist/tools/mcp-client.d.ts.map +1 -0
- package/plugins/microsandbox/dist/tools/mcp-client.js +226 -0
- package/plugins/microsandbox/dist/tools/mcp-client.js.map +1 -0
- package/plugins/microsandbox/manifest.json +177 -0
- package/plugins/microsandbox/package.json +38 -0
- package/plugins/microsandbox/skills/microsandbox-browser-howto.md +155 -0
- package/plugins/microsandbox/skills/microsandbox-build-use.md +201 -0
- package/plugins/microsandbox/skills/microsandbox-config.md +38 -0
- package/plugins/microsandbox/skills/microsandbox-exec-howto.md +144 -0
- package/plugins/microsandbox/skills/microsandbox-libreoffice.md +159 -0
- package/plugins/microsandbox/templates/README.md +26 -0
- package/plugins/web-search/dist/server.d.ts +4 -0
- package/plugins/web-search/dist/server.d.ts.map +1 -0
- package/plugins/web-search/dist/server.js +73 -0
- package/plugins/web-search/dist/server.js.map +1 -0
- package/plugins/web-search/dist/tools/health.d.ts +31 -0
- package/plugins/web-search/dist/tools/health.d.ts.map +1 -0
- package/plugins/web-search/dist/tools/health.js +59 -0
- package/plugins/web-search/dist/tools/health.js.map +1 -0
- package/plugins/web-search/dist/tools/index.d.ts +3 -0
- package/plugins/web-search/dist/tools/index.d.ts.map +1 -0
- package/plugins/web-search/dist/tools/index.js +2 -0
- package/plugins/web-search/dist/tools/index.js.map +1 -0
- package/plugins/web-search/dist/tools/providers.d.ts +43 -0
- package/plugins/web-search/dist/tools/providers.d.ts.map +1 -0
- package/plugins/web-search/dist/tools/providers.js +140 -0
- package/plugins/web-search/dist/tools/providers.js.map +1 -0
- package/plugins/web-search/dist/tools/web-search.d.ts +15 -0
- package/plugins/web-search/dist/tools/web-search.d.ts.map +1 -0
- package/plugins/web-search/dist/tools/web-search.js +244 -0
- package/plugins/web-search/dist/tools/web-search.js.map +1 -0
- package/plugins/web-search/manifest.json +65 -0
- package/plugins/web-search/node_modules/@esbuild/darwin-arm64/README.md +3 -0
- package/plugins/web-search/node_modules/@esbuild/darwin-arm64/package.json +20 -0
- package/plugins/web-search/node_modules/@vitest/expect/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/expect/README.md +21 -0
- package/plugins/web-search/node_modules/@vitest/expect/dist/index.d.ts +808 -0
- package/plugins/web-search/node_modules/@vitest/expect/dist/index.js +1799 -0
- package/plugins/web-search/node_modules/@vitest/expect/package.json +46 -0
- package/plugins/web-search/node_modules/@vitest/mocker/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/mocker/README.md +5 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/auto-register.d.ts +2 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/auto-register.js +9 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/browser.d.ts +53 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/browser.js +91 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/chunk-interceptor-native.js +15 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/chunk-mocker.js +1602 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/chunk-pathe.M-eThtNZ.js +174 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/chunk-registry.js +182 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/chunk-utils.js +16 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/index.d.ts +21 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/index.js +174 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/mocker.d-Ce9_ySj5.d.ts +83 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/node.d.ts +821 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/node.js +1306 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/redirect.d.ts +3 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/redirect.js +75 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/register.d.ts +9 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/register.js +41 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/registry.d-D765pazg.d.ts +87 -0
- package/plugins/web-search/node_modules/@vitest/mocker/dist/types.d-D_aRZRdy.d.ts +8 -0
- package/plugins/web-search/node_modules/@vitest/mocker/package.json +82 -0
- package/plugins/web-search/node_modules/@vitest/pretty-format/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/pretty-format/dist/index.d.ts +119 -0
- package/plugins/web-search/node_modules/@vitest/pretty-format/dist/index.js +1387 -0
- package/plugins/web-search/node_modules/@vitest/pretty-format/package.json +44 -0
- package/plugins/web-search/node_modules/@vitest/runner/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/runner/README.md +5 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/chunk-hooks.js +2254 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/index.d.ts +261 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/index.js +6 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/tasks.d-CkscK4of.d.ts +558 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/types.d.ts +163 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/types.js +1 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/utils.d.ts +47 -0
- package/plugins/web-search/node_modules/@vitest/runner/dist/utils.js +6 -0
- package/plugins/web-search/node_modules/@vitest/runner/package.json +49 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/README.md +84 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/environment.d-DHdQ1Csl.d.ts +22 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/environment.d.ts +16 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/environment.js +40 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/index.d.ts +137 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/index.js +2305 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/manager.d.ts +18 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/manager.js +73 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/dist/rawSnapshot.d-lFsMJFUd.d.ts +61 -0
- package/plugins/web-search/node_modules/@vitest/snapshot/package.json +54 -0
- package/plugins/web-search/node_modules/@vitest/spy/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/spy/README.md +3 -0
- package/plugins/web-search/node_modules/@vitest/spy/dist/index.d.ts +356 -0
- package/plugins/web-search/node_modules/@vitest/spy/dist/index.js +191 -0
- package/plugins/web-search/node_modules/@vitest/spy/package.json +38 -0
- package/plugins/web-search/node_modules/@vitest/utils/LICENSE +21 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/chunk-_commonjsHelpers.js +158 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/diff.d.ts +104 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/diff.js +2185 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/error.d.ts +9 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/error.js +162 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/helpers.d.ts +56 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/helpers.js +251 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/index.d.ts +57 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/index.js +633 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/source-map.d.ts +139 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/source-map.js +996 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts +53 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/types.d.ts +53 -0
- package/plugins/web-search/node_modules/@vitest/utils/dist/types.js +1 -0
- package/plugins/web-search/node_modules/@vitest/utils/package.json +77 -0
- package/plugins/web-search/node_modules/chai/LICENSE +21 -0
- package/plugins/web-search/node_modules/chai/README.md +162 -0
- package/plugins/web-search/node_modules/chai/package.json +74 -0
- package/plugins/web-search/node_modules/esbuild/README.md +3 -0
- package/plugins/web-search/node_modules/esbuild/package.json +49 -0
- package/plugins/web-search/node_modules/std-env/README.md +118 -0
- package/plugins/web-search/node_modules/std-env/dist/index.cjs +1 -0
- package/plugins/web-search/node_modules/std-env/dist/index.d.cts +92 -0
- package/plugins/web-search/node_modules/std-env/dist/index.d.mts +92 -0
- package/plugins/web-search/node_modules/std-env/dist/index.d.ts +92 -0
- package/plugins/web-search/node_modules/std-env/dist/index.mjs +1 -0
- package/plugins/web-search/node_modules/std-env/package.json +46 -0
- package/plugins/web-search/node_modules/tinyexec/LICENSE +21 -0
- package/plugins/web-search/node_modules/tinyexec/README.md +256 -0
- package/plugins/web-search/node_modules/tinyexec/dist/main.cjs +575 -0
- package/plugins/web-search/node_modules/tinyexec/dist/main.d.cts +70 -0
- package/plugins/web-search/node_modules/tinyexec/dist/main.d.ts +70 -0
- package/plugins/web-search/node_modules/tinyexec/dist/main.js +578 -0
- package/plugins/web-search/node_modules/tinyexec/package.json +66 -0
- package/plugins/web-search/node_modules/tinyrainbow/README.md +28 -0
- package/plugins/web-search/node_modules/tinyrainbow/dist/browser.d.ts +8 -0
- package/plugins/web-search/node_modules/tinyrainbow/dist/browser.js +20 -0
- package/plugins/web-search/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js +90 -0
- package/plugins/web-search/node_modules/tinyrainbow/dist/index-8b61d5bc.d.ts +59 -0
- package/plugins/web-search/node_modules/tinyrainbow/dist/node.d.ts +8 -0
- package/plugins/web-search/node_modules/tinyrainbow/dist/node.js +22 -0
- package/plugins/web-search/node_modules/tinyrainbow/package.json +37 -0
- package/plugins/web-search/node_modules/typescript/README.md +50 -0
- package/plugins/web-search/node_modules/typescript/package.json +120 -0
- package/plugins/web-search/node_modules/vite/README.md +20 -0
- package/plugins/web-search/node_modules/vite/dist/client/client.mjs +1106 -0
- package/plugins/web-search/node_modules/vite/dist/client/env.mjs +19 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/build.js +4 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/build2.js +5538 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/chunk.js +48 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/config.js +36065 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/config2.js +4 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/dist.js +6758 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/lib.js +377 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/logger.js +329 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts +96 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/optimizer.js +4 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/postcss-import.js +479 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/preview.js +4 -0
- package/plugins/web-search/node_modules/vite/dist/node/chunks/server.js +4 -0
- package/plugins/web-search/node_modules/vite/dist/node/cli.js +698 -0
- package/plugins/web-search/node_modules/vite/dist/node/index.d.ts +3717 -0
- package/plugins/web-search/node_modules/vite/dist/node/index.js +30 -0
- package/plugins/web-search/node_modules/vite/dist/node/module-runner.d.ts +311 -0
- package/plugins/web-search/node_modules/vite/dist/node/module-runner.js +1160 -0
- package/plugins/web-search/node_modules/vite/package.json +199 -0
- package/plugins/web-search/node_modules/vite/types/package.json +4 -0
- package/plugins/web-search/node_modules/vitest/README.md +7 -0
- package/plugins/web-search/node_modules/vitest/dist/browser.d.ts +34 -0
- package/plugins/web-search/node_modules/vitest/dist/browser.js +8 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js +7 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/base.DfmxU-tU.js +38 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/benchmark.CYdenmiT.js +37 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/benchmark.d.BwvBVTda.d.ts +24 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/cac.0BJqEUeA.js +1469 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/cli-api.DWGBtMmz.js +10660 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/config.d.BKdhh7Zx.d.ts +224 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/console.CtFJOzRO.js +153 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/constants.DnKduX2e.js +44 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/coverage.DVF1vEu8.js +25 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/coverage.DfSpMS-b.js +4350 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/coverage.d.S9RMNXIe.d.ts +35 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/creator.GK6I-cL4.js +640 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js +73 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/defaults.B7q_naMc.js +115 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/env.D4Lgay0q.js +8 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/environment.d.cL3nLXbE.d.ts +119 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/execute.B7h3T_Hc.js +708 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/git.BVQ8w_Sw.js +72 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/global.d.MAmajcmJ.d.ts +136 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/globals.DEHgCU4V.js +26 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.B521nVV-.js +157 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.BCWujgDG.js +231 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.CdQS2e2Q.js +37 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.CmSc2RE5.js +587 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.CwejwG0H.js +105 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.D3XRDfWc.js +213 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.VByaPkjc.js +2183 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/index.X0nbfr6-.js +6584 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/inspector.C914Efll.js +57 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/mocker.d.BE_2ls6u.d.ts +17 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/node.fjCdwEIl.js +15 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/reporters.d.BuRON0I0.d.ts +3168 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/rpc.-pEldfrD.js +83 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/runBaseTests.9Ij9_de-.js +129 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/setup-common.Dd054P77.js +60 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/suite.d.FvehnV49.d.ts +10 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/typechecker.DRKU1-1g.js +874 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/utils.CAioKnHs.js +61 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js +65 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js +4015 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/vite.d.BnOPPc46.d.ts +25 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/vm.BThCzidc.js +756 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/worker.d.CUgIPz9V.d.ts +176 -0
- package/plugins/web-search/node_modules/vitest/dist/chunks/worker.d.uzWsCv9X.d.ts +8 -0
- package/plugins/web-search/node_modules/vitest/dist/cli.js +27 -0
- package/plugins/web-search/node_modules/vitest/dist/config.cjs +148 -0
- package/plugins/web-search/node_modules/vitest/dist/config.d.ts +100 -0
- package/plugins/web-search/node_modules/vitest/dist/config.js +21 -0
- package/plugins/web-search/node_modules/vitest/dist/coverage.d.ts +108 -0
- package/plugins/web-search/node_modules/vitest/dist/coverage.js +34 -0
- package/plugins/web-search/node_modules/vitest/dist/environments.d.ts +26 -0
- package/plugins/web-search/node_modules/vitest/dist/environments.js +2 -0
- package/plugins/web-search/node_modules/vitest/dist/execute.d.ts +150 -0
- package/plugins/web-search/node_modules/vitest/dist/execute.js +13 -0
- package/plugins/web-search/node_modules/vitest/dist/index.d.ts +651 -0
- package/plugins/web-search/node_modules/vitest/dist/index.js +18 -0
- package/plugins/web-search/node_modules/vitest/dist/mocker.d.ts +1 -0
- package/plugins/web-search/node_modules/vitest/dist/mocker.js +1 -0
- package/plugins/web-search/node_modules/vitest/dist/node.d.ts +158 -0
- package/plugins/web-search/node_modules/vitest/dist/node.js +105 -0
- package/plugins/web-search/node_modules/vitest/dist/path.js +7 -0
- package/plugins/web-search/node_modules/vitest/dist/reporters.d.ts +25 -0
- package/plugins/web-search/node_modules/vitest/dist/reporters.js +23 -0
- package/plugins/web-search/node_modules/vitest/dist/runners.d.ts +46 -0
- package/plugins/web-search/node_modules/vitest/dist/runners.js +235 -0
- package/plugins/web-search/node_modules/vitest/dist/snapshot.d.ts +9 -0
- package/plugins/web-search/node_modules/vitest/dist/snapshot.js +4 -0
- package/plugins/web-search/node_modules/vitest/dist/spy.js +1 -0
- package/plugins/web-search/node_modules/vitest/dist/suite.d.ts +5 -0
- package/plugins/web-search/node_modules/vitest/dist/suite.js +5 -0
- package/plugins/web-search/node_modules/vitest/dist/worker.js +124 -0
- package/plugins/web-search/node_modules/vitest/dist/workers/forks.js +43 -0
- package/plugins/web-search/node_modules/vitest/dist/workers/runVmTests.js +90 -0
- package/plugins/web-search/node_modules/vitest/dist/workers/threads.js +31 -0
- package/plugins/web-search/node_modules/vitest/dist/workers/vmForks.js +47 -0
- package/plugins/web-search/node_modules/vitest/dist/workers/vmThreads.js +37 -0
- package/plugins/web-search/node_modules/vitest/dist/workers.d.ts +40 -0
- package/plugins/web-search/node_modules/vitest/dist/workers.js +30 -0
- package/plugins/web-search/node_modules/vitest/package.json +207 -0
- package/plugins/web-search/package.json +30 -0
- package/plugins/web-search/skills/web-search-howto.md +69 -0
- package/plugins/workboard/agent-seeds/echo-demo/agent.json +7 -0
- package/plugins/workboard/agent-seeds/llm-default/SOUL.md +53 -0
- package/plugins/workboard/agent-seeds/llm-default/agent.json +7 -0
- package/plugins/workboard/dist/client.d.ts +5 -0
- package/plugins/workboard/dist/client.d.ts.map +1 -0
- package/plugins/workboard/dist/client.js +895 -0
- package/plugins/workboard/dist/client.js.map +1 -0
- package/plugins/workboard/dist/db/agents.d.ts +100 -0
- package/plugins/workboard/dist/db/agents.d.ts.map +1 -0
- package/plugins/workboard/dist/db/agents.js +280 -0
- package/plugins/workboard/dist/db/agents.js.map +1 -0
- package/plugins/workboard/dist/db/schema.d.ts +3 -0
- package/plugins/workboard/dist/db/schema.d.ts.map +1 -0
- package/plugins/workboard/dist/db/schema.js +31 -0
- package/plugins/workboard/dist/db/schema.js.map +1 -0
- package/plugins/workboard/dist/db/session-history.d.ts +28 -0
- package/plugins/workboard/dist/db/session-history.d.ts.map +1 -0
- package/plugins/workboard/dist/db/session-history.js +224 -0
- package/plugins/workboard/dist/db/session-history.js.map +1 -0
- package/plugins/workboard/dist/db/tasks.d.ts +260 -0
- package/plugins/workboard/dist/db/tasks.d.ts.map +1 -0
- package/plugins/workboard/dist/db/tasks.js +451 -0
- package/plugins/workboard/dist/db/tasks.js.map +1 -0
- package/plugins/workboard/dist/db/worker-agents.d.ts +16 -0
- package/plugins/workboard/dist/db/worker-agents.d.ts.map +1 -0
- package/plugins/workboard/dist/db/worker-agents.js +62 -0
- package/plugins/workboard/dist/db/worker-agents.js.map +1 -0
- package/plugins/workboard/dist/effective-skills.d.ts +13 -0
- package/plugins/workboard/dist/effective-skills.d.ts.map +1 -0
- package/plugins/workboard/dist/effective-skills.js +126 -0
- package/plugins/workboard/dist/effective-skills.js.map +1 -0
- package/plugins/workboard/dist/fs-worker-agents.d.ts +35 -0
- package/plugins/workboard/dist/fs-worker-agents.d.ts.map +1 -0
- package/plugins/workboard/dist/fs-worker-agents.js +199 -0
- package/plugins/workboard/dist/fs-worker-agents.js.map +1 -0
- package/plugins/workboard/dist/migrate-worker-agents.d.ts +11 -0
- package/plugins/workboard/dist/migrate-worker-agents.d.ts.map +1 -0
- package/plugins/workboard/dist/migrate-worker-agents.js +89 -0
- package/plugins/workboard/dist/migrate-worker-agents.js.map +1 -0
- package/plugins/workboard/dist/routes/handlers.d.ts +106 -0
- package/plugins/workboard/dist/routes/handlers.d.ts.map +1 -0
- package/plugins/workboard/dist/routes/handlers.js +668 -0
- package/plugins/workboard/dist/routes/handlers.js.map +1 -0
- package/plugins/workboard/dist/server.d.ts +6 -0
- package/plugins/workboard/dist/server.d.ts.map +1 -0
- package/plugins/workboard/dist/server.js +368 -0
- package/plugins/workboard/dist/server.js.map +1 -0
- package/plugins/workboard/dist/tools/index.d.ts +70 -0
- package/plugins/workboard/dist/tools/index.d.ts.map +1 -0
- package/plugins/workboard/dist/tools/index.js +963 -0
- package/plugins/workboard/dist/tools/index.js.map +1 -0
- package/plugins/workboard/dist/types.d.ts +27 -0
- package/plugins/workboard/dist/types.d.ts.map +1 -0
- package/plugins/workboard/dist/types.js +16 -0
- package/plugins/workboard/dist/types.js.map +1 -0
- package/plugins/workboard/dist/worker/pool.d.ts +220 -0
- package/plugins/workboard/dist/worker/pool.d.ts.map +1 -0
- package/plugins/workboard/dist/worker/pool.js +866 -0
- package/plugins/workboard/dist/worker/pool.js.map +1 -0
- package/plugins/workboard/dist/worker/tool-policy.d.ts +27 -0
- package/plugins/workboard/dist/worker/tool-policy.d.ts.map +1 -0
- package/plugins/workboard/dist/worker/tool-policy.js +76 -0
- package/plugins/workboard/dist/worker/tool-policy.js.map +1 -0
- package/plugins/workboard/dist/worker-agents-page.d.ts +4 -0
- package/plugins/workboard/dist/worker-agents-page.d.ts.map +1 -0
- package/plugins/workboard/dist/worker-agents-page.js +193 -0
- package/plugins/workboard/dist/worker-agents-page.js.map +1 -0
- package/plugins/workboard/manifest.json +180 -0
- package/plugins/workboard/package.json +37 -0
- package/plugins/workboard/skills/large-input-large-output.md +185 -0
- package/plugins/workboard/skills/workboard-howto.md +166 -0
- package/plugins/workboard/skills/worker-creator.md +267 -0
- package/plugins/workboard/skills/worker-fleet.md +431 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-config
|
|
3
|
+
description: How to change the sandbox VM image / cpus / memory using `update_sandbox_config`, and when a `reset_sandbox` is needed for the change to take effect.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: update_sandbox_config
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`update_sandbox_config` writes the tenant config file. The currently-running
|
|
9
|
+
VM is **not** restarted automatically; call `reset_sandbox` after this if you
|
|
10
|
+
want the new settings live now.
|
|
11
|
+
|
|
12
|
+
## Configurable fields
|
|
13
|
+
|
|
14
|
+
| Field | Default | Reset needed? |
|
|
15
|
+
|-------|---------|---------------|
|
|
16
|
+
| `image` | `python:3.12-slim` | yes (rebuilds VM) |
|
|
17
|
+
| `cpus` | 2 | yes |
|
|
18
|
+
| `memory_mib` | 2048 | yes |
|
|
19
|
+
| `sandbox_name` | `tianshu-<tenantId>` | yes (rarely useful) |
|
|
20
|
+
| `idle_shutdown_ms` | 14400000 (4h) | no (read live) |
|
|
21
|
+
| `exec_timeout_ms` | 300000 (5min) | no (read live per call) |
|
|
22
|
+
|
|
23
|
+
The result returns `reset_required: true/false` so you know whether to call
|
|
24
|
+
`reset_sandbox` next.
|
|
25
|
+
|
|
26
|
+
## Common changes
|
|
27
|
+
|
|
28
|
+
- Need a different OS / pre-installed packages: change `image`, then
|
|
29
|
+
`reset_sandbox`. Image pulls happen on next `exec` (cold start cost).
|
|
30
|
+
- Memory pressure: bump `memory_mib`, `reset_sandbox`.
|
|
31
|
+
- Idle reaping too aggressive: raise `idle_shutdown_ms`. No reset needed.
|
|
32
|
+
|
|
33
|
+
## What NOT to do
|
|
34
|
+
|
|
35
|
+
- Don't set `image` to something you haven't verified locally first — a
|
|
36
|
+
bad image leaves the sandbox in `state: "error"` and the agent loses
|
|
37
|
+
`exec` until you fix the config.
|
|
38
|
+
- Don't set `cpus` higher than the host has free.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-exec-howto
|
|
3
|
+
description: How to use `exec` effectively — default workdir, timeouts, output truncation, when to call `reset_sandbox` vs retrying.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: exec
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`exec` runs a command inside a per-tenant microVM started lazily on first use.
|
|
9
|
+
|
|
10
|
+
## Default working dir
|
|
11
|
+
|
|
12
|
+
`exec` defaults `cwd` to your user home inside the sandbox
|
|
13
|
+
(`/workspace/users/<your-userId>/`), the SAME dir `read_file`/`write_file`
|
|
14
|
+
operate on. So a relative path means the same file on both sides:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
write_file("/hello.py", "print('hi')")
|
|
18
|
+
exec("python3 hello.py") # → "hi"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Pass an absolute path in `workdir` to step outside (e.g. `/etc`, `/usr`,
|
|
22
|
+
`/tmp`).
|
|
23
|
+
|
|
24
|
+
## Timeouts
|
|
25
|
+
|
|
26
|
+
- Default: 5 minutes.
|
|
27
|
+
- Cap: 30 minutes (`timeout_ms` is clamped).
|
|
28
|
+
- Use `timeout_ms` for slow tasks: `pip install`, `npm install`, builds,
|
|
29
|
+
data processing.
|
|
30
|
+
- A timed-out call returns `timed_out: true` and `exit_code: -1`. Retry with
|
|
31
|
+
a larger timeout if the command is legitimately slow.
|
|
32
|
+
|
|
33
|
+
## Starting servers / long-running processes
|
|
34
|
+
|
|
35
|
+
**Don't run a foreground server with `exec`.** A command like
|
|
36
|
+
`python -m http.server 8000` or `npm start` never returns; the
|
|
37
|
+
`exec` call hangs until the host timeout, then your turn dies
|
|
38
|
+
with no useful output AND the server keeps running, tying up
|
|
39
|
+
the port for the next attempt.
|
|
40
|
+
|
|
41
|
+
Three safe shapes, in order of preference:
|
|
42
|
+
|
|
43
|
+
### 1. Skip the server (best)
|
|
44
|
+
|
|
45
|
+
If you only need to verify the file works in a browser, write
|
|
46
|
+
it and tell the user the path. Don't "verify by starting a
|
|
47
|
+
server" — the user will open it themselves. This is the
|
|
48
|
+
default for static sites, single-file games, demos.
|
|
49
|
+
|
|
50
|
+
### 2. Background + readiness check
|
|
51
|
+
|
|
52
|
+
When the verification truly needs the server up:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# detach completely so exec returns immediately
|
|
56
|
+
nohup setsid python -m http.server 8000 \
|
|
57
|
+
> /tmp/srv.log 2>&1 < /dev/null &
|
|
58
|
+
|
|
59
|
+
# wait briefly, then probe
|
|
60
|
+
sleep 2
|
|
61
|
+
curl -sS --max-time 5 http://127.0.0.1:8000/ | head -20
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Key moves: `nohup setsid ... &` detaches from this shell;
|
|
65
|
+
`> /tmp/srv.log 2>&1 < /dev/null` closes stdin and redirects
|
|
66
|
+
output so the parent shell can exit cleanly. Without these the
|
|
67
|
+
fd connection keeps `exec` waiting.
|
|
68
|
+
|
|
69
|
+
### 3. Bounded foreground (rarely useful)
|
|
70
|
+
|
|
71
|
+
If you need to capture output and the command will exit on its
|
|
72
|
+
own after some short time (a one-shot test runner, a CLI tool):
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
timeout 30 ./run-tests.sh 2>&1 | tail -50
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`timeout` guarantees the call returns; the trailing `tail`
|
|
79
|
+
keeps stdout under the truncation cap.
|
|
80
|
+
|
|
81
|
+
### Stopping a server you started
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pkill -f 'python -m http.server' || true
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Or just `reset_sandbox` if it's gotten messy — your files in
|
|
88
|
+
`/workspace` survive.
|
|
89
|
+
|
|
90
|
+
## Output truncation
|
|
91
|
+
|
|
92
|
+
stdout/stderr each truncated at 200 lines / 8 KB. If output is bigger:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
exec("long-running-thing > /workspace/out.log 2>&1")
|
|
96
|
+
read_file("/out.log")
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
…or pipe through `tail`/`sed` inline.
|
|
100
|
+
|
|
101
|
+
## Pre-installed tools (don't `apt install` / `pip install` what's already there)
|
|
102
|
+
|
|
103
|
+
The sandbox image ships with these out of the box. Use them
|
|
104
|
+
directly instead of installing alternatives:
|
|
105
|
+
|
|
106
|
+
- **`soffice`** (LibreOffice 25.2) — headless docx / xlsx / pptx /
|
|
107
|
+
pdf conversion. See `microsandbox-libreoffice` for the full
|
|
108
|
+
conversion table, sandbox-specific gotchas (single-instance
|
|
109
|
+
lock, AF_UNIX status, font cache), and "when soffice is the
|
|
110
|
+
WRONG tool".
|
|
111
|
+
- **`chromium` / Playwright MCP** — see `microsandbox-browser-howto`.
|
|
112
|
+
Don't `playwright install chromium`; the sandbox already has it
|
|
113
|
+
on CDP 9222 + MCP 3200.
|
|
114
|
+
- **`node`, `npm`, `npx`** — Node 22 LTS, configured to npmmirror
|
|
115
|
+
in CN. `npm install <pkg>` works; just don't try to upgrade
|
|
116
|
+
Node itself.
|
|
117
|
+
- **`fc-cache`** — already run at build time, so CJK fonts render
|
|
118
|
+
in `soffice` and `chromium` without a 30s cold start.
|
|
119
|
+
- **`pdftoppm`** (Poppler) — PDF → PNG / JPEG, the right tool
|
|
120
|
+
for multi-page rasterisation (used by the LibreOffice and
|
|
121
|
+
PPTX flows).
|
|
122
|
+
|
|
123
|
+
If you need something not on this list and it's a one-shot:
|
|
124
|
+
`apt-get install -y <pkg>` works in the running VM but won't
|
|
125
|
+
survive a `reset_sandbox`. For persistence, edit Sandboxfile
|
|
126
|
+
and rebuild (see `microsandbox-build-use`).
|
|
127
|
+
|
|
128
|
+
## When to reset
|
|
129
|
+
|
|
130
|
+
Call `reset_sandbox` only when:
|
|
131
|
+
|
|
132
|
+
- `exec` keeps timing out (process stuck, kernel deadlocked).
|
|
133
|
+
- A long-running daemon (e.g. `python -m http.server`) is in your way.
|
|
134
|
+
- `get_sandbox_status` shows `state: "error"`.
|
|
135
|
+
- You broke something in `/etc` / `/usr` and want a clean slate.
|
|
136
|
+
|
|
137
|
+
`reset_sandbox` destroys the VM and re-creates it. **Files under
|
|
138
|
+
`/workspace` survive**; everything else (installed packages, `/tmp`, running
|
|
139
|
+
processes) does not.
|
|
140
|
+
|
|
141
|
+
## Cold start
|
|
142
|
+
|
|
143
|
+
The sandbox boots on first `exec` (≈10s the first time per session).
|
|
144
|
+
Subsequent calls in the same conversation are sub-second.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-libreoffice
|
|
3
|
+
description: How to convert / read / extract Office documents inside the sandbox using the pre-installed LibreOffice (soffice). Covers docx / xlsx / pptx / odt round-trips, PDF rendering, slide-deck text extraction with markitdown, and the sandbox-specific gotchas (AF_UNIX shim, font cache, single-process mode, output paths).
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: exec
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# LibreOffice in the sandbox
|
|
9
|
+
|
|
10
|
+
The sandbox image ships LibreOffice 25.2 (`writer / calc /
|
|
11
|
+
impress`) plus its CLI alias `soffice`. Use it directly — don't
|
|
12
|
+
`pip install python-docx` / `openpyxl` / `python-pptx` for tasks
|
|
13
|
+
that are basically format conversion. They're worth their weight
|
|
14
|
+
when you need cell-level edits or programmatic slide construction;
|
|
15
|
+
for "give me the text", "convert to PDF", "extract slide images",
|
|
16
|
+
`soffice` is one shell call away.
|
|
17
|
+
|
|
18
|
+
## Conversion table
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Office → text
|
|
22
|
+
soffice --headless --convert-to txt input.docx --outdir /tmp/
|
|
23
|
+
soffice --headless --convert-to txt input.xlsx --outdir /tmp/ # cells joined by tabs
|
|
24
|
+
soffice --headless --convert-to txt input.pptx --outdir /tmp/ # slides as paragraphs
|
|
25
|
+
|
|
26
|
+
# Office → PDF (the workhorse: any → pdf, lossless layout)
|
|
27
|
+
soffice --headless --convert-to pdf input.docx --outdir /tmp/
|
|
28
|
+
soffice --headless --convert-to pdf input.xlsx --outdir /tmp/
|
|
29
|
+
soffice --headless --convert-to pdf input.pptx --outdir /tmp/
|
|
30
|
+
|
|
31
|
+
# Office round-trips
|
|
32
|
+
soffice --headless --convert-to docx input.odt --outdir /tmp/
|
|
33
|
+
soffice --headless --convert-to xlsx input.csv --outdir /tmp/
|
|
34
|
+
soffice --headless --convert-to csv input.xlsx --outdir /tmp/
|
|
35
|
+
|
|
36
|
+
# PDF → image (multi-page; use pdftoppm, NOT soffice)
|
|
37
|
+
soffice --headless --convert-to pdf input.pptx --outdir /tmp/
|
|
38
|
+
pdftoppm -jpeg -r 150 /tmp/input.pdf /tmp/slide
|
|
39
|
+
# → /tmp/slide-01.jpg, /tmp/slide-02.jpg, ...
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**`--outdir` is required.** Without it `soffice` writes the
|
|
43
|
+
output next to the input, which means a relative input path that
|
|
44
|
+
resolves anywhere unexpected (your `cwd` in the sandbox is
|
|
45
|
+
`/workspace`, not `/tmp`). Always pass `--outdir`.
|
|
46
|
+
|
|
47
|
+
## Reading content (text extraction)
|
|
48
|
+
|
|
49
|
+
For "what does this document say?" — skip the conversion step
|
|
50
|
+
and use `markitdown`, which understands docx / xlsx / pptx /
|
|
51
|
+
pdf natively and outputs structured Markdown:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install --quiet "markitdown[all]" # already in image cache; first call ~1s
|
|
55
|
+
python -m markitdown report.docx
|
|
56
|
+
python -m markitdown deck.pptx # slide titles + body text + speaker notes
|
|
57
|
+
python -m markitdown sheet.xlsx # tabular Markdown
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Markitdown is the right pick when you need to **summarise** the
|
|
61
|
+
document or pass content to another LLM call. `soffice
|
|
62
|
+
--convert-to txt` is the right pick when you need a raw textual
|
|
63
|
+
artefact for an export pipeline.
|
|
64
|
+
|
|
65
|
+
## Multi-page slide / PDF preview
|
|
66
|
+
|
|
67
|
+
For visual QA of generated decks (the agent decides "did the
|
|
68
|
+
bullets I generated actually fit?"), render every page to JPEG
|
|
69
|
+
and inspect with the vision model:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
soffice --headless --convert-to pdf deck.pptx --outdir /tmp/
|
|
73
|
+
pdftoppm -jpeg -r 150 /tmp/deck.pdf /tmp/slide
|
|
74
|
+
ls /tmp/slide-*.jpg
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`-r 150` is a good visual-QA DPI; bump to 300 for print review,
|
|
78
|
+
drop to 96 if you only want a thumbnail grid.
|
|
79
|
+
|
|
80
|
+
To re-render a single slide after a fix:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pdftoppm -jpeg -r 150 -f 7 -l 7 /tmp/deck.pdf /tmp/slide-7-fixed
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Sandbox-specific gotchas
|
|
87
|
+
|
|
88
|
+
### Single-instance lock
|
|
89
|
+
|
|
90
|
+
`soffice` uses an X server profile + an internal lock file under
|
|
91
|
+
`~/.config/libreoffice/`. If two `soffice --headless` calls run
|
|
92
|
+
concurrently in the same VM, the second one waits for the first.
|
|
93
|
+
Two safe options:
|
|
94
|
+
|
|
95
|
+
- **Sequential calls** (default; just don't background them).
|
|
96
|
+
- **Per-call user profile** when you legitimately need parallel:
|
|
97
|
+
```bash
|
|
98
|
+
soffice --headless \
|
|
99
|
+
-env:UserInstallation=file:///tmp/lo-$$ \
|
|
100
|
+
--convert-to pdf input.docx --outdir /tmp/
|
|
101
|
+
```
|
|
102
|
+
`$$` is the shell's PID; one fresh profile per invocation. Costs
|
|
103
|
+
~200 ms of cold start per call.
|
|
104
|
+
|
|
105
|
+
### AF_UNIX socket shim (probably NOT needed here)
|
|
106
|
+
|
|
107
|
+
Some sandbox runtimes block `socket(AF_UNIX, ...)`, which makes
|
|
108
|
+
`soffice --headless` hang waiting on its internal IPC. Microsandbox
|
|
109
|
+
on macOS / Linux **does NOT block AF_UNIX** (verified), so you
|
|
110
|
+
don't need a shim. If a future runtime change breaks this, the
|
|
111
|
+
diagnostic is:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
python3 -c 'import socket; socket.socket(socket.AF_UNIX); print("OK")'
|
|
115
|
+
# OK → no shim needed
|
|
116
|
+
# OSError → AF_UNIX blocked, build an LD_PRELOAD shim that falls
|
|
117
|
+
# back to socketpair (see Anthropic pptx skill for the C source)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Java warning is benign
|
|
121
|
+
|
|
122
|
+
You'll see `Warning: failed to launch javaldx - java may not
|
|
123
|
+
function correctly`. Java is only needed for the optional
|
|
124
|
+
spreadsheet macro / form-controls path, which we don't use.
|
|
125
|
+
Ignore.
|
|
126
|
+
|
|
127
|
+
### CJK font rendering
|
|
128
|
+
|
|
129
|
+
The image build runs `fc-cache -fv` so first-call rendering is
|
|
130
|
+
fast and Chinese / Japanese / Korean glyphs render properly.
|
|
131
|
+
If a build skips that step, the first `soffice` call eats 30+s
|
|
132
|
+
synchronising fonts.
|
|
133
|
+
|
|
134
|
+
### `--outdir` and absolute paths
|
|
135
|
+
|
|
136
|
+
`soffice` resolves `--outdir` against the sandbox's `cwd`
|
|
137
|
+
(`/workspace` by default). When the agent's `exec` runs from a
|
|
138
|
+
project subdirectory, prefer absolute paths in BOTH `--outdir`
|
|
139
|
+
and the input filename so the output lands where you expect.
|
|
140
|
+
|
|
141
|
+
## When LibreOffice is the WRONG tool
|
|
142
|
+
|
|
143
|
+
- **Cell-level editing / formulas in xlsx**: use `openpyxl` or
|
|
144
|
+
Pandas. `soffice` rewrites the whole file; structural metadata
|
|
145
|
+
(named ranges, conditional formatting) can shift.
|
|
146
|
+
- **Programmatic slide creation from scratch**: use `pptxgenjs`
|
|
147
|
+
(Node) or `python-pptx`. `soffice` is for converting an
|
|
148
|
+
existing deck, not authoring one.
|
|
149
|
+
- **Markdown / text reports**: don't bounce through Office. Just
|
|
150
|
+
write `.md`.
|
|
151
|
+
|
|
152
|
+
## Cleanup
|
|
153
|
+
|
|
154
|
+
`soffice` leaves `~/.config/libreoffice/`, `~/.cache/libreoffice/`,
|
|
155
|
+
and any per-call `/tmp/lo-*` profile dirs around. Sandbox `/tmp`
|
|
156
|
+
is wiped on `reset_sandbox`; `~` (root) survives. If you're
|
|
157
|
+
running thousands of conversions in one session, `rm -rf
|
|
158
|
+
~/.cache/libreoffice/` periodically to keep disk usage from
|
|
159
|
+
creeping.
|
package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-main-orchestration.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-main-orchestration
|
|
3
|
+
description: How the main (orchestrator) agent should describe sandbox-bound tasks to its workers. Read before writing a `task_create` description that will run shell commands, browser scripts, or file conversions in the sandbox — it covers what the worker already has so you don't ask it to install duplicates.
|
|
4
|
+
scope: main
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Sandbox capabilities the worker already has
|
|
8
|
+
|
|
9
|
+
When you write a `task_create` description that the worker will
|
|
10
|
+
execute via `exec`, `browser_*`, or any sandbox-bound tool, **do
|
|
11
|
+
not tell the worker to install software the sandbox image already
|
|
12
|
+
ships**. Workers see this list themselves (via
|
|
13
|
+
`microsandbox-exec-howto`), but a task description that says "if
|
|
14
|
+
this fails, install X" overrides their own skill and burns time
|
|
15
|
+
on installs that don't survive a reset.
|
|
16
|
+
|
|
17
|
+
The default sandbox image carries:
|
|
18
|
+
|
|
19
|
+
| Tool | Already there | Don't ask worker to install |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| Chromium + Playwright MCP | CDP `127.0.0.1:9222`, MCP `:3200`, noVNC `:6080` | `playwright install chromium`, `npx playwright install` |
|
|
22
|
+
| LibreOffice 25.2 | `soffice --headless --convert-to ...` | `apt install libreoffice*` (already there) |
|
|
23
|
+
| Node 22 LTS + npm + npx | npmmirror configured | `nvm install`, manual node tarballs |
|
|
24
|
+
| Python 3.12 + pip | tuna PyPI mirror configured | reinstalling python |
|
|
25
|
+
| `pdftoppm`, `fc-cache`, `jq`, `git` | one-shot build done | duplicates of these |
|
|
26
|
+
|
|
27
|
+
For one-off Python packages the worker can `pip install` them at
|
|
28
|
+
runtime — that's fine. The trap is **reinstalling the runtime
|
|
29
|
+
itself or a multi-hundred-MB binary** (chromium, JDK, LibreOffice
|
|
30
|
+
fonts) only to throw it away on the next `reset_sandbox`.
|
|
31
|
+
|
|
32
|
+
## How to phrase the task
|
|
33
|
+
|
|
34
|
+
Bad (worker burns 3 minutes on a redundant install):
|
|
35
|
+
|
|
36
|
+
> Convert `/workspace/users/dev/projects/foo/report.docx` to PDF.
|
|
37
|
+
> If `soffice` isn't available, install LibreOffice with apt.
|
|
38
|
+
|
|
39
|
+
Good (worker just runs the conversion):
|
|
40
|
+
|
|
41
|
+
> Convert `/workspace/users/dev/projects/foo/report.docx` to PDF
|
|
42
|
+
> using `soffice --headless --convert-to pdf <input> --outdir
|
|
43
|
+
> /workspace/users/dev/projects/foo/`. The sandbox already has
|
|
44
|
+
> LibreOffice; don't reinstall.
|
|
45
|
+
|
|
46
|
+
Bad (worker tries Path A, then dutifully follows your fallback):
|
|
47
|
+
|
|
48
|
+
> Render the deck. Path A: use `browser_navigate` to open the
|
|
49
|
+
> page. Path B: if A doesn't work, `pip install playwright &&
|
|
50
|
+
> playwright install chromium` and use page.pdf().
|
|
51
|
+
|
|
52
|
+
Good (no second path, points at the existing browser):
|
|
53
|
+
|
|
54
|
+
> Render the deck. Use `browser_navigate(<file URL>)` then
|
|
55
|
+
> `browser_screenshot()`. The sandbox's own chromium handles
|
|
56
|
+
> this — don't install another browser. If the in-sandbox
|
|
57
|
+
> chromium is unhealthy (verify with `browser_health_check`),
|
|
58
|
+
> escalate via `task_intervention_required` instead of
|
|
59
|
+
> reinstalling.
|
|
60
|
+
|
|
61
|
+
## When the worker should install something
|
|
62
|
+
|
|
63
|
+
Most agent tasks don't need new packages. A few legit cases:
|
|
64
|
+
|
|
65
|
+
- A small Python package with no native deps (markitdown,
|
|
66
|
+
beautifulsoup4, requests). `pip install` adds ~1s and lands
|
|
67
|
+
in `/usr/local/lib/python3.12/site-packages/` which is part
|
|
68
|
+
of the rootfs delta — survives until reset.
|
|
69
|
+
- A short-lived utility for a one-shot task (`pip install
|
|
70
|
+
pdfplumber` to extract a specific PDF's tables).
|
|
71
|
+
|
|
72
|
+
For anything bigger (chromium, ffmpeg, JDK, LibreOffice, CUDA
|
|
73
|
+
toolkit), don't `apt install` ad-hoc. Edit the Sandboxfile, run
|
|
74
|
+
a build, switch the tenant onto it. That's the path
|
|
75
|
+
`microsandbox-build-use` documents.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Sandboxfile templates
|
|
2
|
+
|
|
3
|
+
Each `*.yaml` here is a starting-point Sandboxfile a user can load
|
|
4
|
+
into the admin Sandbox page (or the agent can author via
|
|
5
|
+
`write_file`). Templates surface through the host:
|
|
6
|
+
|
|
7
|
+
- `GET /api/p/microsandbox/sandboxfile/templates` returns
|
|
8
|
+
`{ templates: [{ id, displayName, description, content }, ...] }`.
|
|
9
|
+
- The admin page's "Load template" dropdown reads that list and
|
|
10
|
+
pastes the picked template into the editor (replacing the
|
|
11
|
+
current draft only after the user clicks Save).
|
|
12
|
+
|
|
13
|
+
Templates are not enforced — they're just curated examples that
|
|
14
|
+
follow the patterns from `skills/microsandbox-build-use.md` (use
|
|
15
|
+
`bash -c` for verification, regional mirrors for slow apt, etc.).
|
|
16
|
+
|
|
17
|
+
## When to add a new template
|
|
18
|
+
|
|
19
|
+
A new template earns its slot when:
|
|
20
|
+
1. Multiple users have hit the same "what packages do I need" wall
|
|
21
|
+
for a real workload (Office automation, browser, data science),
|
|
22
|
+
AND
|
|
23
|
+
2. The recipe survives a real `build & use` test on Apple Silicon
|
|
24
|
+
arm64.
|
|
25
|
+
|
|
26
|
+
Otherwise leave it as a skill paragraph; less surface to maintain.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Browser-enabled Sandboxfile (CloakBrowser + Playwright MCP + noVNC).
|
|
2
|
+
#
|
|
3
|
+
# Verified end-to-end on Apple Silicon arm64: build → publish →
|
|
4
|
+
# reset → all 6 supervisord processes RUNNING → CDP / MCP / noVNC
|
|
5
|
+
# all reachable. Build cost: ~3-5 min on cache hit, ~10 min cold
|
|
6
|
+
# (apt + Node + LibreOffice + 200 MB CloakBrowser tarball).
|
|
7
|
+
#
|
|
8
|
+
# After build & use, supervisord must be started inside the live
|
|
9
|
+
# VM. N+5.3 will do that automatically; today the user runs:
|
|
10
|
+
# supervisord -c /etc/supervisor/conf.d/browser.conf
|
|
11
|
+
#
|
|
12
|
+
# Notes on the painful bits this template encodes:
|
|
13
|
+
# - dbus is intentionally NOT a supervisor program: dbus-x11 in
|
|
14
|
+
# debian:slim is missing /usr/share/dbus-1/system.conf and
|
|
15
|
+
# chromium headless doesn't need a system bus anyway.
|
|
16
|
+
# - chromium pinned to /tmp/chrome-profile so a stale profile
|
|
17
|
+
# lock from the build VM can't block startup. Snapshots will
|
|
18
|
+
# not preserve /tmp.
|
|
19
|
+
# - chromium binds CDP to 0.0.0.0 so port-forward picks it up.
|
|
20
|
+
# - Playwright MCP listens on 0.0.0.0; default ::1 was IPv6-only
|
|
21
|
+
# and unreachable from the IPv4-only host port-forward.
|
|
22
|
+
# - All multi-line config files (supervisord conf) go through
|
|
23
|
+
# base64 because the v0 Sandboxfile parser is single-line only
|
|
24
|
+
# and bash single-quoted heredocs don't carry \n correctly.
|
|
25
|
+
|
|
26
|
+
image: python:3.12-slim
|
|
27
|
+
cpus: 2
|
|
28
|
+
memory_mib: 8192
|
|
29
|
+
|
|
30
|
+
exec:
|
|
31
|
+
# APT 国内源(在其他地区可改成上游 deb.debian.org)
|
|
32
|
+
- sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources
|
|
33
|
+
- apt-get update -qq
|
|
34
|
+
|
|
35
|
+
# 一行装完(无 dbus)
|
|
36
|
+
# x11-xserver-utils → xrandr (resize Xvfb framebuffer at runtime)
|
|
37
|
+
# wmctrl → fit chromium window to the new framebuffer
|
|
38
|
+
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl ca-certificates xz-utils sudo fontconfig fonts-noto-cjk fonts-noto-color-emoji libreoffice-writer libreoffice-calc libreoffice-impress xvfb x11vnc fluxbox supervisor x11-xserver-utils wmctrl libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libgbm1 libxss1 libasound2 libxshmfence1 libxkbcommon0 libpango-1.0-0 libxcomposite1 libxdamage1 libxrandr2
|
|
39
|
+
|
|
40
|
+
# Node 22 LTS — 多源 fallback。nodejs.org 主源,失败后依次走
|
|
41
|
+
# npmmirror 镜像、cnpmjs 镜像。每个源走到身为止 (--retry 3),
|
|
42
|
+
# 并且 --connect-timeout 30 避免 TCP 建连后被 RST 时挂死。
|
|
43
|
+
- |
|
|
44
|
+
bash -c '
|
|
45
|
+
set -eu
|
|
46
|
+
VER=v22.20.0
|
|
47
|
+
F=node-${VER}-linux-arm64.tar.xz
|
|
48
|
+
for u in \
|
|
49
|
+
https://nodejs.org/dist/${VER}/${F} \
|
|
50
|
+
https://npmmirror.com/mirrors/node/${VER}/${F} \
|
|
51
|
+
https://registry.npmmirror.com/-/binary/node/${VER}/${F}; do
|
|
52
|
+
echo "[node] trying $u"
|
|
53
|
+
if curl -fsSL --retry 3 --retry-delay 5 --retry-all-errors \
|
|
54
|
+
--connect-timeout 30 --max-time 600 "$u" \
|
|
55
|
+
| tar -xJ -C /usr/local --strip-components=1; then
|
|
56
|
+
echo "[node] installed from $u"
|
|
57
|
+
exit 0
|
|
58
|
+
fi
|
|
59
|
+
echo "[node] failed: $u"
|
|
60
|
+
done
|
|
61
|
+
echo "[node] all sources exhausted" >&2
|
|
62
|
+
exit 1
|
|
63
|
+
'
|
|
64
|
+
- npm config set registry https://registry.npmmirror.com
|
|
65
|
+
|
|
66
|
+
# CloakBrowser 200MB - ghproxy + retry + 落盘解压
|
|
67
|
+
# Tarball is FLAT (no top-level dir); entry binary is `chrome`.
|
|
68
|
+
- bash -c "mkdir -p /opt/cloakbrowser && curl -fsSL --retry 8 --retry-delay 8 --retry-all-errors --connect-timeout 30 -o /tmp/cb.tar.gz https://gh-proxy.com/https://github.com/CloakHQ/CloakBrowser/releases/download/chromium-v145.0.7632.159.7/cloakbrowser-linux-arm64.tar.gz"
|
|
69
|
+
- bash -c "test $(stat -c %s /tmp/cb.tar.gz) -gt 100000000"
|
|
70
|
+
- tar -xzf /tmp/cb.tar.gz -C /opt/cloakbrowser
|
|
71
|
+
- rm -f /tmp/cb.tar.gz
|
|
72
|
+
|
|
73
|
+
# noVNC + websockify
|
|
74
|
+
- bash -c "mkdir -p /opt/novnc && curl -fsSL --retry 5 --retry-delay 3 --retry-all-errors https://gh-proxy.com/https://github.com/novnc/noVNC/archive/refs/tags/v1.5.0.tar.gz | tar -xz -C /opt/novnc --strip-components=1"
|
|
75
|
+
- bash -c "mkdir -p /opt/websockify && curl -fsSL --retry 5 --retry-delay 3 --retry-all-errors https://gh-proxy.com/https://github.com/novnc/websockify/archive/refs/tags/v0.13.0.tar.gz | tar -xz -C /opt/websockify --strip-components=1"
|
|
76
|
+
- ln -sf /opt/novnc/vnc_lite.html /opt/novnc/index.html
|
|
77
|
+
|
|
78
|
+
# Playwright MCP - 提前把 npm 包拉到 npx 缓存,runtime 启动不再下载
|
|
79
|
+
- npx -y @playwright/mcp@latest --help > /dev/null 2>&1
|
|
80
|
+
|
|
81
|
+
# 字体缓存(首次 LibreOffice / chromium CJK 渲染)
|
|
82
|
+
- fc-cache -fv
|
|
83
|
+
|
|
84
|
+
# supervisord 配置(base64 - 多行 conf 通过 v0 sandboxfile parser 的唯一办法)
|
|
85
|
+
- mkdir -p /etc/supervisor/conf.d
|
|
86
|
+
- bash -c "echo W3VuaXhfaHR0cF9zZXJ2ZXJdCmZpbGU9L3Zhci9ydW4vc3VwZXJ2aXNvci5zb2NrCmNobW9kPTA3MDAKCltzdXBlcnZpc29yZF0KbG9nZmlsZT0vdmFyL2xvZy9zdXBlcnZpc29yZC5sb2cKcGlkZmlsZT0vdmFyL3J1bi9zdXBlcnZpc29yZC5waWQKCltycGNpbnRlcmZhY2U6c3VwZXJ2aXNvcl0Kc3VwZXJ2aXNvci5ycGNpbnRlcmZhY2VfZmFjdG9yeT1zdXBlcnZpc29yLnJwY2ludGVyZmFjZTptYWtlX21haW5fcnBjaW50ZXJmYWNlCgpbc3VwZXJ2aXNvcmN0bF0Kc2VydmVydXJsPXVuaXg6Ly8vdmFyL3J1bi9zdXBlcnZpc29yLnNvY2sKCltwcm9ncmFtOnh2ZmJdCmNvbW1hbmQ9L3Vzci9iaW4vWHZmYiA6OTkgLXNjcmVlbiAwIDI0MDB4MTgwMHgyNCAtYWMgLW5vbGlzdGVuIHRjcAphdXRvcmVzdGFydD10cnVlCnByaW9yaXR5PTEwCgpbcHJvZ3JhbTpmbHV4Ym94XQpjb21tYW5kPS91c3IvYmluL2ZsdXhib3gKZW52aXJvbm1lbnQ9RElTUExBWT0iOjk5IgphdXRvcmVzdGFydD10cnVlCnByaW9yaXR5PTIwCgpbcHJvZ3JhbTpjaHJvbWl1bV0KY29tbWFuZD0vb3B0L2Nsb2FrYnJvd3Nlci9jaHJvbWUgLS1yZW1vdGUtZGVidWdnaW5nLXBvcnQ9OTIyMiAtLXJlbW90ZS1kZWJ1Z2dpbmctYWRkcmVzcz0wLjAuMC4wIC0tbm8tc2FuZGJveCAtLWRpc2FibGUtZGV2LXNobS11c2FnZSAtLXVzZXItZGF0YS1kaXI9L3RtcC9jaHJvbWUtcHJvZmlsZSAtLXdpbmRvdy1zaXplPTEyODAsODAwCmVudmlyb25tZW50PURJU1BMQVk9Ijo5OSIKYXV0b3Jlc3RhcnQ9dHJ1ZQpwcmlvcml0eT0zMApzdGFydHNlY3M9OAoKW3Byb2dyYW06cGxheXdyaWdodC1tY3BdCmNvbW1hbmQ9L3Vzci9sb2NhbC9iaW4vbnB4IEBwbGF5d3JpZ2h0L21jcEBsYXRlc3QgLS1ob3N0IDAuMC4wLjAgLS1wb3J0IDMyMDAgLS1hbGxvd2VkLWhvc3RzPSogLS1hbGxvdy11bnJlc3RyaWN0ZWQtZmlsZS1hY2Nlc3MgLS1jYXBzPXBkZix2aXNpb24gLS1icm93c2VyIGNocm9taXVtIC0tY2RwLWVuZHBvaW50IGh0dHA6Ly8xMjcuMC4wLjE6OTIyMgphdXRvcmVzdGFydD10cnVlCnByaW9yaXR5PTQwCnN0YXJ0c2Vjcz04CgpbcHJvZ3JhbTp4MTF2bmNdCmNvbW1hbmQ9L3Vzci9iaW4veDExdm5jIC1kaXNwbGF5IDo5OSAtZm9yZXZlciAtc2hhcmVkIC1ub3B3IC1yZmJwb3J0IDU5MDAKYXV0b3Jlc3RhcnQ9dHJ1ZQpwcmlvcml0eT01MAoKW3Byb2dyYW06bm92bmNdCmNvbW1hbmQ9L29wdC93ZWJzb2NraWZ5L3J1biAtLXdlYj0vb3B0L25vdm5jIDYwODAgbG9jYWxob3N0OjU5MDAKYXV0b3Jlc3RhcnQ9dHJ1ZQpwcmlvcml0eT02MAo= | base64 -d > /etc/supervisor/conf.d/browser.conf"
|
|
87
|
+
|
|
88
|
+
# Build 阶段启动 supervisord 一次,让 verify 步骤能 curl 到端口
|
|
89
|
+
- supervisord -c /etc/supervisor/conf.d/browser.conf
|
|
90
|
+
- sleep 18
|
|
91
|
+
|
|
92
|
+
# === Verify ============================================================
|
|
93
|
+
# 任一 fail 整个 build fail,避免 "build 成功但实际跑不起来"
|
|
94
|
+
- bash -c "node --version && npm --version && /opt/cloakbrowser/chrome --version | head -1"
|
|
95
|
+
# supervisor 没有 FATAL/EXITED/STOPPED
|
|
96
|
+
- bash -c "supervisorctl -c /etc/supervisor/conf.d/browser.conf status; supervisorctl -c /etc/supervisor/conf.d/browser.conf status | grep -E 'FATAL|EXITED|STOPPED' && exit 1 || true"
|
|
97
|
+
# 6 个 program 都 RUNNING
|
|
98
|
+
- bash -c "test $(supervisorctl -c /etc/supervisor/conf.d/browser.conf status | grep -c RUNNING) -eq 6"
|
|
99
|
+
# CDP 9222
|
|
100
|
+
- bash -c "curl -sS --max-time 8 http://127.0.0.1:9222/json/version | grep -q Browser"
|
|
101
|
+
# noVNC 6080
|
|
102
|
+
- bash -c "curl -sS --max-time 8 http://127.0.0.1:6080/vnc_lite.html | grep -qi DOCTYPE"
|
|
103
|
+
# Playwright MCP 3200(HTTP 403/404/200 都说明服务在 listen)
|
|
104
|
+
- bash -c "code=$(curl -sS --max-time 8 -o /dev/null -w '%{http_code}' http://127.0.0.1:3200/); echo MCP HTTP code=$code; test \"$code\" != \"000\""
|
|
105
|
+
- echo OK
|
package/packages/server/builtinConfig/plugins/microsandbox/templates/task-runner-with-browser.yaml
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Task runner + Browser (incremental layer).
|
|
2
|
+
#
|
|
3
|
+
# Designed to be built ON TOP OF the `task-runner` snapshot via the
|
|
4
|
+
# admin UI's "based on" dropdown:
|
|
5
|
+
#
|
|
6
|
+
# 1. Build the task-runner template first → snapshot
|
|
7
|
+
# `tianshu-<tenant>-build-<id>`
|
|
8
|
+
# 2. Switch the editor to this template
|
|
9
|
+
# 3. Click Build, pick "based on: task-runner build-<id>" in the
|
|
10
|
+
# dropdown
|
|
11
|
+
# 4. The Sandboxfile's `image:` line below is IGNORED in that
|
|
12
|
+
# mode — the snapshot already pins it. Only the apt / curl /
|
|
13
|
+
# supervisord steps below run, layering chromium + Playwright
|
|
14
|
+
# MCP + noVNC on top of the existing task-runner image.
|
|
15
|
+
#
|
|
16
|
+
# Result: a snapshot that has everything task-runner ships
|
|
17
|
+
# (Node + Python + office libs + libreoffice + CN mirrors)
|
|
18
|
+
# AND the browser stack from `browser.yaml`. Bigger than
|
|
19
|
+
# task-runner (~2.5 GB extra for the chromium/CloakBrowser
|
|
20
|
+
# binaries) but you skip re-running the slow apt + pip + libreoffice
|
|
21
|
+
# layers from scratch.
|
|
22
|
+
#
|
|
23
|
+
# If you boot this WITHOUT picking a "based on" snapshot the build
|
|
24
|
+
# will fail at the very first `apt install` step (the base image
|
|
25
|
+
# below is bare python:3.12-slim — it doesn't have any of
|
|
26
|
+
# task-runner's tools yet). That failure is the intended signal
|
|
27
|
+
# that you skipped step 3.
|
|
28
|
+
|
|
29
|
+
# Image is a deliberate placeholder. It only matters when this
|
|
30
|
+
# template is built without a "based on" snapshot, and that's
|
|
31
|
+
# explicitly not how this template is meant to be used.
|
|
32
|
+
image: python:3.12-slim
|
|
33
|
+
cpus: 2
|
|
34
|
+
memory_mib: 8192
|
|
35
|
+
|
|
36
|
+
exec:
|
|
37
|
+
# APT mirrors (no-op outside CN; harmless inside).
|
|
38
|
+
- sed -i 's|deb.debian.org|mirrors.aliyun.com|g; s|security.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources
|
|
39
|
+
- apt-get update -qq
|
|
40
|
+
|
|
41
|
+
# The browser stack on top of task-runner. We DON'T re-install
|
|
42
|
+
# python3 / sudo / git / fonts / libreoffice — those came from
|
|
43
|
+
# the task-runner snapshot we layered on. xz-utils gets pulled
|
|
44
|
+
# in for the CloakBrowser tarball; everything else is new.
|
|
45
|
+
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends xz-utils xvfb x11vnc fluxbox supervisor x11-xserver-utils wmctrl libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libgbm1 libxss1 libasound2 libxshmfence1 libxkbcommon0 libpango-1.0-0 libxcomposite1 libxdamage1 libxrandr2
|
|
46
|
+
- rm -rf /var/lib/apt/lists/*
|
|
47
|
+
|
|
48
|
+
# CloakBrowser binary + noVNC + websockify.
|
|
49
|
+
- bash -c "mkdir -p /opt/cloakbrowser && curl -fsSL --retry 8 --retry-delay 8 --retry-all-errors --connect-timeout 30 -o /tmp/cb.tar.gz https://gh-proxy.com/https://github.com/CloakHQ/CloakBrowser/releases/download/chromium-v145.0.7632.159.7/cloakbrowser-linux-arm64.tar.gz"
|
|
50
|
+
- bash -c "test $(stat -c %s /tmp/cb.tar.gz) -gt 100000000"
|
|
51
|
+
- tar -xzf /tmp/cb.tar.gz -C /opt/cloakbrowser
|
|
52
|
+
- rm -f /tmp/cb.tar.gz
|
|
53
|
+
- bash -c "mkdir -p /opt/novnc && curl -fsSL --retry 5 --retry-delay 3 --retry-all-errors https://gh-proxy.com/https://github.com/novnc/noVNC/archive/refs/tags/v1.5.0.tar.gz | tar -xz -C /opt/novnc --strip-components=1"
|
|
54
|
+
- bash -c "mkdir -p /opt/websockify && curl -fsSL --retry 5 --retry-delay 3 --retry-all-errors https://gh-proxy.com/https://github.com/novnc/websockify/archive/refs/tags/v0.13.0.tar.gz | tar -xz -C /opt/websockify --strip-components=1"
|
|
55
|
+
- ln -sf /opt/novnc/vnc_lite.html /opt/novnc/index.html
|
|
56
|
+
|
|
57
|
+
# Pre-warm the Playwright MCP npx cache.
|
|
58
|
+
- npx -y @playwright/mcp@latest --help > /dev/null 2>&1
|
|
59
|
+
|
|
60
|
+
# supervisord conf (base64'd same as browser.yaml; the parser is
|
|
61
|
+
# single-line only, so multi-line conf round-trips through
|
|
62
|
+
# base64).
|
|
63
|
+
- mkdir -p /etc/supervisor/conf.d
|
|
64
|
+
- bash -c "echo W3VuaXhfaHR0cF9zZXJ2ZXJdCmZpbGU9L3Zhci9ydW4vc3VwZXJ2aXNvci5zb2NrCmNobW9kPTA3MDAKCltzdXBlcnZpc29yZF0KbG9nZmlsZT0vdmFyL2xvZy9zdXBlcnZpc29yZC5sb2cKcGlkZmlsZT0vdmFyL3J1bi9zdXBlcnZpc29yZC5waWQKCltycGNpbnRlcmZhY2U6c3VwZXJ2aXNvcl0Kc3VwZXJ2aXNvci5ycGNpbnRlcmZhY2VfZmFjdG9yeT1zdXBlcnZpc29yLnJwY2ludGVyZmFjZTptYWtlX21haW5fcnBjaW50ZXJmYWNlCgpbc3VwZXJ2aXNvcmN0bF0Kc2VydmVydXJsPXVuaXg6Ly8vdmFyL3J1bi9zdXBlcnZpc29yLnNvY2sKCltwcm9ncmFtOnh2ZmJdCmNvbW1hbmQ9L3Vzci9iaW4vWHZmYiA6OTkgLXNjcmVlbiAwIDI0MDB4MTgwMHgyNCAtYWMgLW5vbGlzdGVuIHRjcAphdXRvcmVzdGFydD10cnVlCnByaW9yaXR5PTEwCgpbcHJvZ3JhbTpmbHV4Ym94XQpjb21tYW5kPS91c3IvYmluL2ZsdXhib3gKZW52aXJvbm1lbnQ9RElTUExBWT0iOjk5IgphdXRvcmVzdGFydD10cnVlCnByaW9yaXR5PTIwCgpbcHJvZ3JhbTpjaHJvbWl1bV0KY29tbWFuZD0vb3B0L2Nsb2FrYnJvd3Nlci9jaHJvbWUgLS1yZW1vdGUtZGVidWdnaW5nLXBvcnQ9OTIyMiAtLXJlbW90ZS1kZWJ1Z2dpbmctYWRkcmVzcz0wLjAuMC4wIC0tbm8tc2FuZGJveCAtLWRpc2FibGUtZGV2LXNobS11c2FnZSAtLXVzZXItZGF0YS1kaXI9L3RtcC9jaHJvbWUtcHJvZmlsZSAtLXdpbmRvdy1zaXplPTEyODAsODAwCmVudmlyb25tZW50PURJU1BMQVk9Ijo5OSIKYXV0b3Jlc3RhcnQ9dHJ1ZQpwcmlvcml0eT0zMApzdGFydHNlY3M9OAoKW3Byb2dyYW06cGxheXdyaWdodC1tY3BdCmNvbW1hbmQ9L3Vzci9sb2NhbC9iaW4vbnB4IEBwbGF5d3JpZ2h0L21jcEBsYXRlc3QgLS1ob3N0IDAuMC4wLjAgLS1wb3J0IDMyMDAgLS1hbGxvd2VkLWhvc3RzPSogLS1hbGxvdy11bnJlc3RyaWN0ZWQtZmlsZS1hY2Nlc3MgLS1jYXBzPXBkZix2aXNpb24gLS1icm93c2VyIGNocm9taXVtIC0tY2RwLWVuZHBvaW50IGh0dHA6Ly8xMjcuMC4wLjE6OTIyMgphdXRvcmVzdGFydD10cnVlCnByaW9yaXR5PTQwCnN0YXJ0c2Vjcz04CgpbcHJvZ3JhbTp4MTF2bmNdCmNvbW1hbmQ9L3Vzci9iaW4veDExdm5jIC1kaXNwbGF5IDo5OSAtZm9yZXZlciAtc2hhcmVkIC1ub3B3IC1yZmJwb3J0IDU5MDAKYXV0b3Jlc3RhcnQ9dHJ1ZQpwcmlvcml0eT01MAoKW3Byb2dyYW06bm92bmNdCmNvbW1hbmQ9L29wdC93ZWJzb2NraWZ5L3J1biAtLXdlYj0vb3B0L25vdm5jIDYwODAgbG9jYWxob3N0OjU5MDAKYXV0b3Jlc3RhcnQ9dHJ1ZQpwcmlvcml0eT02MAo= | base64 -d > /etc/supervisor/conf.d/browser.conf"
|
|
65
|
+
|
|
66
|
+
# Boot supervisord once during build so verify can hit the ports.
|
|
67
|
+
- supervisord -c /etc/supervisor/conf.d/browser.conf
|
|
68
|
+
- sleep 18
|
|
69
|
+
|
|
70
|
+
# === Verify ============================================================
|
|
71
|
+
# Carry-over from task-runner: those tools must still work.
|
|
72
|
+
- bash -c "node --version && python3 --version && pip3 --version && python3 -c 'import pandas, docx, pptx; print(\"py-libs ok\")'"
|
|
73
|
+
# New layer: browser stack alive.
|
|
74
|
+
- bash -c "/opt/cloakbrowser/chrome --version | head -1"
|
|
75
|
+
- bash -c "supervisorctl -c /etc/supervisor/conf.d/browser.conf status; supervisorctl -c /etc/supervisor/conf.d/browser.conf status | grep -E 'FATAL|EXITED|STOPPED' && exit 1 || true"
|
|
76
|
+
- bash -c "test $(supervisorctl -c /etc/supervisor/conf.d/browser.conf status | grep -c RUNNING) -eq 6"
|
|
77
|
+
- bash -c "curl -sS --max-time 8 http://127.0.0.1:9222/json/version | grep -q Browser"
|
|
78
|
+
- bash -c "curl -sS --max-time 8 http://127.0.0.1:6080/vnc_lite.html | grep -qi DOCTYPE"
|
|
79
|
+
- bash -c "code=$(curl -sS --max-time 8 -o /dev/null -w '%{http_code}' http://127.0.0.1:3200/); echo MCP HTTP code=$code; test \"$code\" != \"000\""
|
|
80
|
+
- echo OK
|