@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,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "files",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"displayName": "Workspace Files",
|
|
5
|
+
"description": "Browse, read, and upload files in the tenant workspace.",
|
|
6
|
+
"author": "tianshu-ai",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"permissions": ["workspace.read", "workspace.write"],
|
|
9
|
+
"client": { "entry": "@tianshu-builtin/plugin-files/client" },
|
|
10
|
+
"server": { "entry": "@tianshu-builtin/plugin-files/server" },
|
|
11
|
+
"contributes": {
|
|
12
|
+
"topBarButtons": [
|
|
13
|
+
{
|
|
14
|
+
"id": "toggle",
|
|
15
|
+
"icon": "FolderOpen",
|
|
16
|
+
"tooltip": "Workspace files",
|
|
17
|
+
"opensPanel": "files.main",
|
|
18
|
+
"order": 100
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"rightPanels": [
|
|
22
|
+
{
|
|
23
|
+
"id": "main",
|
|
24
|
+
"displayName": "Files",
|
|
25
|
+
"component": "FilesPanel"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"composerActions": [
|
|
29
|
+
{
|
|
30
|
+
"id": "attach",
|
|
31
|
+
"icon": "Paperclip",
|
|
32
|
+
"tooltip": "Attach file",
|
|
33
|
+
"component": "UploadButton",
|
|
34
|
+
"order": 100
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"attachmentRenderers": [
|
|
38
|
+
{
|
|
39
|
+
"id": "image",
|
|
40
|
+
"mimePattern": "image/*",
|
|
41
|
+
"component": "ImageAttachment",
|
|
42
|
+
"order": 100
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "any",
|
|
46
|
+
"mimePattern": "*/*",
|
|
47
|
+
"component": "FileAttachment",
|
|
48
|
+
"order": 999
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"apiRoutes": [
|
|
52
|
+
{ "method": "GET", "path": "/list", "handler": "list" },
|
|
53
|
+
{ "method": "GET", "path": "/read", "handler": "read" },
|
|
54
|
+
{ "method": "GET", "path": "/raw", "handler": "raw" },
|
|
55
|
+
{ "method": "POST", "path": "/upload", "handler": "upload" }
|
|
56
|
+
],
|
|
57
|
+
"tools": [
|
|
58
|
+
{ "id": "list_dir", "module": "ListDirTool" },
|
|
59
|
+
{ "id": "read_file", "module": "ReadFileTool" },
|
|
60
|
+
{ "id": "write_file", "module": "WriteFileTool" },
|
|
61
|
+
{ "id": "edit_file", "module": "EditFileTool" },
|
|
62
|
+
{ "id": "glob", "module": "GlobTool" },
|
|
63
|
+
{ "id": "tenant_config_list", "module": "TenantConfigListTool" },
|
|
64
|
+
{ "id": "tenant_config_read", "module": "TenantConfigReadTool" },
|
|
65
|
+
{ "id": "tenant_config_write", "module": "TenantConfigWriteTool" },
|
|
66
|
+
{ "id": "tenant_config_edit", "module": "TenantConfigEditTool" },
|
|
67
|
+
{ "id": "tenant_config_delete", "module": "TenantConfigDeleteTool" },
|
|
68
|
+
{ "id": "tenant_config_glob", "module": "TenantConfigGlobTool" }
|
|
69
|
+
],
|
|
70
|
+
"skills": [
|
|
71
|
+
{ "id": "workspace-layout", "path": "skills/files-workspace-layout.md" }
|
|
72
|
+
],
|
|
73
|
+
"systemPromptFragments": [
|
|
74
|
+
{
|
|
75
|
+
"id": "workspace-layout",
|
|
76
|
+
"text": "WORKSPACE LAYOUT\nYour default working directory is the user's private home in this tenant.\n\nPersonal directories (use freely):\n ./projects/<slug>/ active work; reports, code, deliverables go here.\n ./uploads/ files the user uploaded for you to look at.\n ./tmp/ scratch space; clean up after yourself.\n ./trash/ soft-delete; move things here instead of removing them.\n ./USER.md personal preferences (read on demand)."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "workspace-conventions",
|
|
80
|
+
"text": "Conventions:\n - Deliverables go to ./projects/<slug>/, never the home root.\n - When the user uploads a file, expect it under ./uploads/.\n - Don't leave scratch artefacts in ./projects/ or the root \u2014 use ./tmp/.\n - Other users' homes in this tenant are off-limits; you cannot reach them."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "workspace-references",
|
|
84
|
+
"text": "Referencing files in your reply:\n - When you point at a workspace file in your response (e.g. an image you just wrote, a generated report, an attachment), use the workspace:// URI you got back from the fs tool, e.g. ``.\n - The chat UI knows how to render those; absolute host paths or bare \"./foo\" links won't preview."
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "edit-vs-write",
|
|
88
|
+
"text": "- `edit_file` is for changes to an existing file (in-place exact-text replace, atomic). `write_file` is for new files or full rewrites of the entire file. Prefer editing existing files; do not create new files unless asked."
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "edit-old-text-uniqueness",
|
|
92
|
+
"text": "- Each `edit_file` `old_text` must appear exactly once in the file. Keep `old_text` as small as possible while still being unique \u2014 don't pad with large unchanged regions to \"connect\" two distant changes; emit two separate edits in the same `edits[]` batch instead."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "read-before-edit",
|
|
96
|
+
"text": "- Before `edit_file` (or `write_file` overwrite) on a file you haven't seen yet in this session, call `read_file` once. The host tracks reads per session, so a single full-file read covers any number of follow-up `edit_file` / `write_file` calls on that same path \u2014 don't re-read between edits. Files you just created with `write_file` count as already-read; you can `edit_file` them right away without reading first."
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: files-workspace-layout
|
|
3
|
+
description: Conventions for the per-user workspace this `files` plugin manages — directory roles (projects, uploads, tmp, trash), where deliverables go, what NOT to touch.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: read_file
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Your default working directory is the user's private home in this tenant.
|
|
9
|
+
Filesystem tools (`list_dir`, `read_file`, `write_file`, `edit_file`, `glob`)
|
|
10
|
+
operate relative to this home (`/` = home).
|
|
11
|
+
|
|
12
|
+
## Personal directories
|
|
13
|
+
|
|
14
|
+
| Path | Role |
|
|
15
|
+
|------|------|
|
|
16
|
+
| `./projects/<slug>/` | Active work. Reports, code, deliverables go here. |
|
|
17
|
+
| `./uploads/` | Files the user uploaded for you to look at. |
|
|
18
|
+
| `./tmp/` | Scratch space. Clean up after yourself. |
|
|
19
|
+
| `./trash/` | Soft-delete. Move things here instead of removing them. |
|
|
20
|
+
| `./USER.md` | Personal preferences (read on demand). |
|
|
21
|
+
|
|
22
|
+
## Conventions
|
|
23
|
+
|
|
24
|
+
- Deliverables go to `./projects/<slug>/`, never the home root.
|
|
25
|
+
- When the user uploads a file, expect it under `./uploads/`.
|
|
26
|
+
- Don't leave scratch artefacts in `./projects/` or the root — use `./tmp/`.
|
|
27
|
+
- Other users' homes in this tenant are off-limits; you cannot reach them via
|
|
28
|
+
these tools.
|
|
29
|
+
- When you make changes, briefly say what you changed in your reply.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "microsandbox",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"displayName": "MicroSandbox",
|
|
5
|
+
"description": "Per-tenant shell sandbox running on microsandbox (Apple Virtualization.framework / KVM). Provides sandbox.shell + an opt-in browser.cdp sidecar (Stealth Chromium via CloakBrowser + Playwright MCP + noVNC; lit up by a follow-up PR).",
|
|
6
|
+
"author": "tianshu-ai",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"permissions": ["workspace.read", "workspace.write", "process.spawn"],
|
|
9
|
+
"provides": ["sandbox.shell", "sandbox.taskPool", "browser.cdp"],
|
|
10
|
+
"client": { "entry": "@tianshu-builtin/plugin-microsandbox/client" },
|
|
11
|
+
"server": { "entry": "@tianshu-builtin/plugin-microsandbox/server" },
|
|
12
|
+
"contributes": {
|
|
13
|
+
"topBarButtons": [
|
|
14
|
+
{
|
|
15
|
+
"id": "browser",
|
|
16
|
+
"icon": "Globe",
|
|
17
|
+
"tooltip": "Browser viewport (noVNC)",
|
|
18
|
+
"opensPanel": "microsandbox.browser",
|
|
19
|
+
"order": 210
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"rightPanels": [
|
|
23
|
+
{
|
|
24
|
+
"id": "browser",
|
|
25
|
+
"displayName": "Browser",
|
|
26
|
+
"component": "BrowserViewportPanel"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"adminPages": [
|
|
30
|
+
{
|
|
31
|
+
"id": "main",
|
|
32
|
+
"displayName": "Sandbox",
|
|
33
|
+
"icon": "Box",
|
|
34
|
+
"component": "MicroSandboxAdminPage",
|
|
35
|
+
"group": "Plugins",
|
|
36
|
+
"order": 100
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"sandboxes": [
|
|
40
|
+
{
|
|
41
|
+
"id": "main",
|
|
42
|
+
"kind": "shell",
|
|
43
|
+
"displayName": "MicroSandbox",
|
|
44
|
+
"module": "MicroSandboxRunner"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"tools": [
|
|
48
|
+
{ "id": "exec", "module": "ExecTool" },
|
|
49
|
+
{ "id": "reset_sandbox", "module": "ResetSandboxTool" },
|
|
50
|
+
{ "id": "get_sandbox_status", "module": "GetSandboxStatusTool" },
|
|
51
|
+
{ "id": "update_sandbox_config", "module": "UpdateSandboxConfigTool" },
|
|
52
|
+
{ "id": "build_sandbox", "module": "BuildSandboxTool" },
|
|
53
|
+
{ "id": "list_sandbox_builds", "module": "ListSandboxBuildsTool" },
|
|
54
|
+
{ "id": "use_sandbox_build", "module": "UseSandboxBuildTool" },
|
|
55
|
+
{ "id": "browser_health_check", "module": "BrowserHealthCheckTool" }
|
|
56
|
+
],
|
|
57
|
+
"toolsets": [
|
|
58
|
+
{ "id": "browser", "module": "BrowserToolset", "displayName": "Playwright (Browser)" }
|
|
59
|
+
],
|
|
60
|
+
"skills": [
|
|
61
|
+
{ "id": "exec-howto", "path": "skills/microsandbox-exec-howto.md" },
|
|
62
|
+
{ "id": "config", "path": "skills/microsandbox-config.md" },
|
|
63
|
+
{ "id": "build-use", "path": "skills/microsandbox-build-use.md" },
|
|
64
|
+
{ "id": "browser-howto", "path": "skills/microsandbox-browser-howto.md" },
|
|
65
|
+
{ "id": "libreoffice", "path": "skills/microsandbox-libreoffice.md" }
|
|
66
|
+
],
|
|
67
|
+
"systemPromptFragments": [
|
|
68
|
+
{
|
|
69
|
+
"id": "no-foreground-servers",
|
|
70
|
+
"text": "- Long-running servers (`python -m http.server`, `npm start`, `npm run dev`, anything that listens on a port and never returns) WILL hang the `exec` call until the host's per-call timeout fires (5 min default). Even with `nohup` alone the call hangs because microsandbox's exec channel waits for the started process tree's stdio to close, and nohup doesn't close stdin or detach from the controlling terminal.\n\n If you need to start a server, the ONLY safe pattern is:\n\n nohup setsid <cmd> > /tmp/srv.log 2>&1 < /dev/null &\n\n All four pieces are required: `setsid` puts the process in a new session (no controlling terminal); `< /dev/null` closes stdin; `>/tmp/srv.log 2>&1` redirects stdout AND stderr; trailing `&` puts it in the shell background. Skip any one and exec hangs.\n\n Then verify with `curl http://localhost:<port>/...` in a separate exec call. Don't background-then-curl in the same shell line \u2014 the shell process itself becomes the parent and won't exit."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "already-installed-runtimes",
|
|
74
|
+
"text": "- The sandbox already ships chromium (CDP 9222), Playwright MCP (3200), LibreOffice, Node 22, and Python 3.12. Don't `apt install` / `pip install` / `playwright install` what's already there."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "task-sandbox-is-ephemeral",
|
|
78
|
+
"text": "- If you are running as a workboard task worker (you have a workboard task id and your run will end with `task_complete`), the sandbox you `exec` in is per-task and gets stopped the moment the task terminates. Anything you nohup / setsid / disown into the background dies with the sandbox \u2014 don't try to leave servers / queues / cron jobs / file watchers running for someone else to consume. Run the work inline, capture its output to a file under your home, then `task_complete` with the file path.\n\n Concrete VERIFY-task pattern: if the deliverable is an HTML / PDF / image file and you want to confirm it renders, DON'T spin up `python -m http.server` to serve it. Either (a) use a Playwright MCP `browser_navigate` to `file:///workspace/users/<self>/projects/<slug>/report.html` directly (Playwright MCP is configured with `--allow-unrestricted-file-access`, so file:// URLs work), or (b) `cat` / `head` the file and inspect the structure inline, or (c) for charts, check the rendered file's size + that it contains expected canvas/svg/img markup (`grep -c '<canvas\\|<svg\\|<img' report.html`). Spinning up a transient http server adds a process that has to be cleanly torn down before task_complete, and the typical agent forgets the `setsid + </dev/null` pattern and hangs the run.\n\n Long-lived background services belong in a chat session (the long-lived sandbox there survives between turns), not in a task. Installed packages, files you wrote, and other on-disk state DO survive across attempts of the same task \u2014 only running processes don't."
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"apiRoutes": [
|
|
82
|
+
{ "method": "GET", "path": "/status", "handler": "status" },
|
|
83
|
+
{ "method": "GET", "path": "/sandboxfile", "handler": "getSandboxfile" },
|
|
84
|
+
{ "method": "PUT", "path": "/sandboxfile", "handler": "putSandboxfile" },
|
|
85
|
+
{ "method": "GET", "path": "/sandboxfile/templates", "handler": "getSandboxfileTemplates" },
|
|
86
|
+
{ "method": "GET", "path": "/builds", "handler": "getBuilds" },
|
|
87
|
+
{ "method": "POST", "path": "/builds", "handler": "postBuilds" },
|
|
88
|
+
{ "method": "POST", "path": "/builds/use", "handler": "postUseBuild" },
|
|
89
|
+
{ "method": "POST", "path": "/reset", "handler": "postReset" },
|
|
90
|
+
{ "method": "POST", "path": "/exec", "handler": "postExec" },
|
|
91
|
+
{ "method": "GET", "path": "/task-pool", "handler": "getTaskPool" },
|
|
92
|
+
{ "method": "POST", "path": "/task-pool/destroy", "handler": "postTaskPoolDestroy" },
|
|
93
|
+
{ "method": "GET", "path": "/browser/status", "handler": "getBrowserStatus" },
|
|
94
|
+
{ "method": "POST", "path": "/browser/restart", "handler": "postBrowserRestart" },
|
|
95
|
+
{ "method": "POST", "path": "/browser/resize", "handler": "postBrowserResize" }
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"configSchema": {
|
|
99
|
+
"fields": [
|
|
100
|
+
{
|
|
101
|
+
"key": "memoryMib",
|
|
102
|
+
"label": "Browser sandbox memory",
|
|
103
|
+
"kind": "number",
|
|
104
|
+
"unit": "MiB",
|
|
105
|
+
"min": 512,
|
|
106
|
+
"max": 65536,
|
|
107
|
+
"step": 512,
|
|
108
|
+
"default": 2048,
|
|
109
|
+
"description": "RAM allotted to the long-lived Browser sandbox VM. Increase to 8192+ MiB for browser-heavy workloads (chromium + Playwright MCP), 12288+ for build-time pip / npm of large stacks. Restart the sandbox (Reset) for the new value to take effect."
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"key": "cpus",
|
|
113
|
+
"label": "Browser sandbox vCPU count",
|
|
114
|
+
"kind": "number",
|
|
115
|
+
"min": 1,
|
|
116
|
+
"max": 16,
|
|
117
|
+
"step": 1,
|
|
118
|
+
"default": 2,
|
|
119
|
+
"description": "Logical CPU count handed to the long-lived Browser sandbox VM. Reset the sandbox after changing."
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"key": "execTimeoutMs",
|
|
123
|
+
"label": "Per-exec timeout (Browser)",
|
|
124
|
+
"kind": "number",
|
|
125
|
+
"unit": "ms",
|
|
126
|
+
"min": 5000,
|
|
127
|
+
"max": 1800000,
|
|
128
|
+
"step": 5000,
|
|
129
|
+
"default": 300000,
|
|
130
|
+
"description": "Max wall-clock time for one Browser `exec` call before it's force-killed. Bump this for long-running installers; consider running them with `nohup setsid … &` instead."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"key": "taskMemoryMib",
|
|
134
|
+
"label": "Task sandbox memory",
|
|
135
|
+
"kind": "number",
|
|
136
|
+
"unit": "MiB",
|
|
137
|
+
"min": 512,
|
|
138
|
+
"max": 65536,
|
|
139
|
+
"step": 512,
|
|
140
|
+
"default": 2048,
|
|
141
|
+
"description": "RAM allotted to per-task sandbox VMs (forked from the Task snapshot). Set lower than the Browser value to fit more parallel tasks; raise it for tasks that need a heavy data-science stack. Effective on the next task acquire."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"key": "taskCpus",
|
|
145
|
+
"label": "Task sandbox vCPU count",
|
|
146
|
+
"kind": "number",
|
|
147
|
+
"min": 1,
|
|
148
|
+
"max": 16,
|
|
149
|
+
"step": 1,
|
|
150
|
+
"default": 2,
|
|
151
|
+
"description": "Logical CPU count handed to each per-task sandbox VM. Effective on the next task acquire."
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"key": "taskExecTimeoutMs",
|
|
155
|
+
"label": "Per-exec timeout (Task)",
|
|
156
|
+
"kind": "number",
|
|
157
|
+
"unit": "ms",
|
|
158
|
+
"min": 5000,
|
|
159
|
+
"max": 1800000,
|
|
160
|
+
"step": 5000,
|
|
161
|
+
"default": 300000,
|
|
162
|
+
"description": "Max wall-clock time for one Task `exec` call before it's force-killed. Per-task sandboxes typically run shorter, more focused commands than the Browser sandbox."
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"key": "taskIdleShutdownMs",
|
|
166
|
+
"label": "Task sandbox idle shutdown",
|
|
167
|
+
"kind": "number",
|
|
168
|
+
"unit": "ms",
|
|
169
|
+
"min": 0,
|
|
170
|
+
"max": 86400000,
|
|
171
|
+
"step": 60000,
|
|
172
|
+
"default": 600000,
|
|
173
|
+
"description": "How long a task sandbox stays alive after its task ends before it's stopped. 0 = stop immediately on release. Higher values trade RAM for faster reuse when the same kind of task runs again soon."
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
}
|
package/packages/server/builtinConfig/plugins/microsandbox/skills/microsandbox-browser-howto.md
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-browser-howto
|
|
3
|
+
description: How the embedded browser surface works — three agent tools (browser_navigate / browser_snapshot / browser_screenshot), when each is the right pick, and what to do when the tools are not yet available.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: browser_navigate
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The microsandbox plugin ships an embedded **Stealth Chromium**
|
|
9
|
+
(CloakBrowser) reachable through Playwright MCP, plus a noVNC
|
|
10
|
+
viewport in the admin Browser page. Three agent tools surface that
|
|
11
|
+
stack:
|
|
12
|
+
|
|
13
|
+
| Tool | Use when |
|
|
14
|
+
|------|----------|
|
|
15
|
+
| `browser_navigate(url)` | You need a real page render — JS, redirects, cookies. Equivalent to `page.goto()`. |
|
|
16
|
+
| `browser_snapshot()` | You want to *act on* the page next. Returns an accessibility tree (roles, names, refs). Cheap, structured, easy to reason about. |
|
|
17
|
+
| `browser_screenshot()` | You need pixels — visual diffing, vision-model prompting, sharing a screenshot back to the user. |
|
|
18
|
+
|
|
19
|
+
## Don't install another browser
|
|
20
|
+
|
|
21
|
+
The sandbox **already has** a chromium running on port 9222 (CDP),
|
|
22
|
+
a Playwright MCP server on 3200, and noVNC on 6080. You will
|
|
23
|
+
sometimes feel like reaching for `pip install playwright &&
|
|
24
|
+
playwright install chromium` or `npx playwright install` to do
|
|
25
|
+
your own scripted scrape — don't.
|
|
26
|
+
|
|
27
|
+
- `playwright install chromium` downloads ~200 MB to the sandbox
|
|
28
|
+
every time. The sandbox is ephemeral; the next reset throws
|
|
29
|
+
the download away. Network egress is restricted; the install
|
|
30
|
+
often hangs or 403s.
|
|
31
|
+
- A second chromium would race the first for `--user-data-dir`,
|
|
32
|
+
CDP port 9222, and X11 display :99.
|
|
33
|
+
- The MCP tools (`browser_navigate`, etc.) already cover the 90%
|
|
34
|
+
case more cheaply than a hand-rolled Playwright script.
|
|
35
|
+
|
|
36
|
+
Use the MCP tools first. If you genuinely need scripted control
|
|
37
|
+
(login flows with conditional logic, multi-step forms),
|
|
38
|
+
connect to the existing chromium via CDP from inside the sandbox
|
|
39
|
+
shell:
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from playwright.sync_api import sync_playwright
|
|
43
|
+
with sync_playwright() as p:
|
|
44
|
+
# Reuse the already-running browser — no install step.
|
|
45
|
+
browser = p.chromium.connect_over_cdp("http://127.0.0.1:9222")
|
|
46
|
+
page = browser.contexts[0].new_page()
|
|
47
|
+
page.goto("https://example.com")
|
|
48
|
+
print(page.title())
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`pip install playwright` (the Python package) is fine — it's
|
|
52
|
+
small. **Skip the `playwright install` step**. You're connecting
|
|
53
|
+
to an existing browser, not launching a new one.
|
|
54
|
+
|
|
55
|
+
## Default workflow
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
1. browser_navigate("https://…")
|
|
59
|
+
2. browser_snapshot() # find the element to act on
|
|
60
|
+
3. browser_screenshot() # only if you need the picture
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Snapshots beat screenshots whenever the model needs to *interact*
|
|
64
|
+
or *extract*. Screenshots are best treated as a presentation
|
|
65
|
+
format, not a comprehension format.
|
|
66
|
+
|
|
67
|
+
## Tool availability
|
|
68
|
+
|
|
69
|
+
These tools are gated on the BrowserSidecar reporting a live
|
|
70
|
+
Playwright MCP port. If the chromium stack isn't built into the
|
|
71
|
+
tenant's Sandboxfile yet, the tools won't show up in your tool
|
|
72
|
+
list — there's no point trying to fall back to them.
|
|
73
|
+
|
|
74
|
+
If the user wants to use the browser:
|
|
75
|
+
|
|
76
|
+
1. They open `/admin/microsandbox/browser` and check **Status**.
|
|
77
|
+
2. If "not running", they edit the Sandboxfile (Sandbox admin
|
|
78
|
+
page) to include the browser layer (CloakBrowser + Xvfb +
|
|
79
|
+
x11vnc + noVNC + Playwright MCP), build, then `use & reset`.
|
|
80
|
+
3. Once the admin page reports `ready: true` with three live
|
|
81
|
+
ports, your tool list reloads and `browser_*` tools show up.
|
|
82
|
+
|
|
83
|
+
Don't tell the user "I'll navigate" before the tools are available
|
|
84
|
+
— the call will return a structured error and waste a turn.
|
|
85
|
+
|
|
86
|
+
## Coordinates and viewports
|
|
87
|
+
|
|
88
|
+
When the user has the admin Browser page open, the noVNC iframe
|
|
89
|
+
reports its size back to the host via a ResizeObserver, and that
|
|
90
|
+
viewport is reachable through `browser.cdp`'s `getLastViewport()`.
|
|
91
|
+
The browser tools auto-set Playwright's viewport from this before
|
|
92
|
+
each navigation, so screenshots match what the user sees.
|
|
93
|
+
|
|
94
|
+
If the user is **not** watching the page (no admin tab open), the
|
|
95
|
+
viewport falls back to `1280x800`. Don't write skills that
|
|
96
|
+
hard-code coordinates — they'll only work for one viewport.
|
|
97
|
+
|
|
98
|
+
## When the browser tools hang
|
|
99
|
+
|
|
100
|
+
If a `browser_*` call returns a confusing timeout / error, or
|
|
101
|
+
`exec` itself sticks (the symptom is "the conversation just
|
|
102
|
+
stops emitting tokens for 30+s"), call:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
browser_health_check()
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
It probes CDP `/json/version` with a 2.5s timeout and returns
|
|
109
|
+
`{ok, latencyMs, error?, suggestion?}`. The `suggestion` field
|
|
110
|
+
tells you the next concrete recovery step:
|
|
111
|
+
|
|
112
|
+
- **CDP host port not mapped**: the snapshot you booted doesn't
|
|
113
|
+
ship the browser stack. Build one that does (template
|
|
114
|
+
`browser.yaml`).
|
|
115
|
+
- **CDP not reachable / connect refused**: chromium or
|
|
116
|
+
supervisord crashed inside the guest. Try `browser_restart`
|
|
117
|
+
first (cheap, ~5s). If the next `browser_health_check` still
|
|
118
|
+
fails, escalate to `reset_sandbox`.
|
|
119
|
+
- **CDP probe timed out**: the sandbox VM itself is wedged.
|
|
120
|
+
Skip `browser_restart` (it'll hang too) and go straight to
|
|
121
|
+
`reset_sandbox`. Files under `/workspace` survive.
|
|
122
|
+
|
|
123
|
+
Don't loop the probe — call once, act on the suggestion, call
|
|
124
|
+
again only after attempting recovery.
|
|
125
|
+
|
|
126
|
+
## What NOT to do
|
|
127
|
+
|
|
128
|
+
- Don't `browser_navigate` to user input as a URL without
|
|
129
|
+
validating the scheme. Stick to `https://` for arbitrary user
|
|
130
|
+
input; if the user explicitly asks for a local resource (a
|
|
131
|
+
service running in the same sandbox), confirm `http://localhost`
|
|
132
|
+
is intended.
|
|
133
|
+
- Don't `browser_screenshot` without `browser_navigate` first —
|
|
134
|
+
the tool will return whatever the page state was, which may be
|
|
135
|
+
blank or the previous user's content.
|
|
136
|
+
- Don't paste large snapshot blobs back into the chat verbatim.
|
|
137
|
+
Summarise: "the page has a search box (ref=e3) and a list of 12
|
|
138
|
+
results (refs=e7..e18)" is much more useful than 4 KB of AX
|
|
139
|
+
JSON.
|
|
140
|
+
- Don't expect the embedded chromium to share cookies with the
|
|
141
|
+
user's host browser. Each sandbox has an isolated profile;
|
|
142
|
+
authenticated sessions need to be performed inside the sandbox
|
|
143
|
+
(e.g. via `browser_navigate` to a login URL the user trusts).
|
|
144
|
+
|
|
145
|
+
## Why CloakBrowser instead of stock Chromium
|
|
146
|
+
|
|
147
|
+
Stock headless chromium leaks several automation tells (navigator.
|
|
148
|
+
webdriver, headless UA, missing GPU/WebGL profile, abnormal
|
|
149
|
+
plugin/font lists). CloakBrowser patches those at the C++ source
|
|
150
|
+
level, so common bot-detection sites don't refuse the page. Same
|
|
151
|
+
Playwright API, drop-in `launch()` replacement.
|
|
152
|
+
|
|
153
|
+
This does **not** mean you can ignore site terms of service.
|
|
154
|
+
Realistic fingerprints help compatibility, not authorisation. If a
|
|
155
|
+
site's TOS forbids automated access, that's still a no.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-build-use
|
|
3
|
+
description: How to author a Sandboxfile, build a snapshot, sanity-check it, then switch the tenant to use it. Covers the build → preview → use → reset loop and the common failure modes.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: build_sandbox
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The sandbox image you customize via a Sandboxfile. Three tools cooperate:
|
|
9
|
+
|
|
10
|
+
| Tool | What it does |
|
|
11
|
+
|------|--------------|
|
|
12
|
+
| `build_sandbox` | reads the Sandboxfile, boots a builder VM, runs the steps, captures a snapshot, writes build metadata. **Does not** affect the live sandbox. |
|
|
13
|
+
| `list_sandbox_builds` | lists past builds (newest first), with which one is currently in use. |
|
|
14
|
+
| `use_sandbox_build(build_id)` | switches the tenant pointer to that build. The next `reset_sandbox` (or process restart) boots the new VM `fromSnapshot(...)`. Tenant-scoped — does not publish anything outside the tenant. |
|
|
15
|
+
|
|
16
|
+
## Sandboxfile location
|
|
17
|
+
|
|
18
|
+
`<your-userHomeDir>/sandbox/Sandboxfile`. Use `write_file("/sandbox/Sandboxfile", "...")` to author it; `build_sandbox` reads from there by default.
|
|
19
|
+
|
|
20
|
+
## Sandboxfile grammar (v0)
|
|
21
|
+
|
|
22
|
+
```yaml
|
|
23
|
+
image: python:3.12-slim # required: any OCI image microsandbox can pull
|
|
24
|
+
cpus: 4 # optional, default 4
|
|
25
|
+
memory_mib: 4096 # optional, default 4096
|
|
26
|
+
|
|
27
|
+
# Pre-installed layers, applied in this order. All optional.
|
|
28
|
+
apt:
|
|
29
|
+
- libreoffice-writer
|
|
30
|
+
- fonts-noto-cjk
|
|
31
|
+
pip:
|
|
32
|
+
- pandas
|
|
33
|
+
- numpy
|
|
34
|
+
npm:
|
|
35
|
+
- tsx
|
|
36
|
+
- typescript
|
|
37
|
+
|
|
38
|
+
# Free-form shell commands, run last, in array order.
|
|
39
|
+
exec:
|
|
40
|
+
- sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources
|
|
41
|
+
# Multi-source fallback for the Node tarball. nodejs.org first,
|
|
42
|
+
# npmmirror as backup. --connect-timeout / --max-time keep curl
|
|
43
|
+
# from hanging when a mirror RSTs mid-download.
|
|
44
|
+
- |
|
|
45
|
+
bash -c '
|
|
46
|
+
set -eu; VER=v22.20.0; F=node-${VER}-linux-arm64.tar.xz
|
|
47
|
+
for u in https://nodejs.org/dist/${VER}/${F} \
|
|
48
|
+
https://npmmirror.com/mirrors/node/${VER}/${F} \
|
|
49
|
+
https://registry.npmmirror.com/-/binary/node/${VER}/${F}; do
|
|
50
|
+
echo "[node] trying $u"
|
|
51
|
+
if curl -fsSL --retry 3 --retry-delay 5 --retry-all-errors \
|
|
52
|
+
--connect-timeout 30 --max-time 600 "$u" \
|
|
53
|
+
| tar -xJ -C /usr/local --strip-components=1; then
|
|
54
|
+
echo "[node] installed from $u"; exit 0
|
|
55
|
+
fi
|
|
56
|
+
done
|
|
57
|
+
echo "[node] all sources exhausted" >&2; exit 1
|
|
58
|
+
'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The four list slots are convenience wrappers: `apt`/`pip`/`npm` produce one
|
|
62
|
+
combined `apt-get install -y --no-install-recommends ...` (or pip / npm)
|
|
63
|
+
call. Anything more complex goes in `exec`.
|
|
64
|
+
|
|
65
|
+
## The full lifecycle
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
1. write_file("/sandbox/Sandboxfile", "...")
|
|
69
|
+
2. build_sandbox() # 30s–10min; returns build_id
|
|
70
|
+
3. (sanity-check via the admin /shell preview, or via tools below)
|
|
71
|
+
4. use_sandbox_build(build_id) # writes tenant pointer
|
|
72
|
+
5. reset_sandbox() # live VM picks up the new snapshot
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
You can also sanity-check from the agent: tools work the same against
|
|
76
|
+
the build snapshot as against any image (the agent doesn't have a
|
|
77
|
+
preview-exec equivalent yet — that's an admin UI feature). For agent
|
|
78
|
+
flow, the cheap heuristic is: trust the build log tail
|
|
79
|
+
(`build_sandbox` returns it) for "did the install command succeed?",
|
|
80
|
+
then `use_sandbox_build` + `reset_sandbox`, then run real verification
|
|
81
|
+
commands via `exec`.
|
|
82
|
+
|
|
83
|
+
## Common failure modes
|
|
84
|
+
|
|
85
|
+
### apt step "succeeds" but the package isn't there
|
|
86
|
+
Usual cause: a step like `echo node=$(node --version)` swallows the
|
|
87
|
+
inner failure because `echo` exits 0 even with `$()` empty. **Verify
|
|
88
|
+
with `bash -c`**:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
exec:
|
|
92
|
+
- bash -c "node --version && npm --version && libreoffice --version | head -1"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`bash -c` propagates the inner `&&` failure; the build fails properly.
|
|
96
|
+
|
|
97
|
+
### Slow apt
|
|
98
|
+
Default Debian mirrors are slow from CN. First exec step should swap to
|
|
99
|
+
a regional mirror:
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
exec:
|
|
103
|
+
- sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources
|
|
104
|
+
- apt-get update -qq
|
|
105
|
+
# …rest of your apt installs as a *single* exec line, or via the apt: list
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If you're using the `apt:` list slot, the runner already issues
|
|
109
|
+
`apt-get update`; the `sed` line in `exec` happens before that, so the
|
|
110
|
+
update sees the fast mirror.
|
|
111
|
+
|
|
112
|
+
### apt's nodejs is too old
|
|
113
|
+
Debian bookworm ships Node 18; modern packages need 20+. Skip the apt
|
|
114
|
+
nodejs and grab a binary from a CN mirror:
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
exec:
|
|
118
|
+
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl ca-certificates xz-utils
|
|
119
|
+
# Multi-source fallback — don't rely on a single CN mirror; it
|
|
120
|
+
# WILL flake. nodejs.org first, npmmirror as backup.
|
|
121
|
+
- |
|
|
122
|
+
bash -c '
|
|
123
|
+
set -eu; VER=v22.20.0; F=node-${VER}-linux-arm64.tar.xz
|
|
124
|
+
for u in https://nodejs.org/dist/${VER}/${F} \
|
|
125
|
+
https://npmmirror.com/mirrors/node/${VER}/${F} \
|
|
126
|
+
https://registry.npmmirror.com/-/binary/node/${VER}/${F}; do
|
|
127
|
+
echo "[node] trying $u"
|
|
128
|
+
if curl -fsSL --retry 3 --retry-delay 5 --retry-all-errors \
|
|
129
|
+
--connect-timeout 30 --max-time 600 "$u" \
|
|
130
|
+
| tar -xJ -C /usr/local --strip-components=1; then
|
|
131
|
+
echo "[node] installed from $u"; exit 0
|
|
132
|
+
fi
|
|
133
|
+
done
|
|
134
|
+
echo "[node] all sources exhausted" >&2; exit 1
|
|
135
|
+
'
|
|
136
|
+
- npm config set registry https://registry.npmmirror.com
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
(`linux-arm64` because microsandbox on Apple Silicon is arm64; for
|
|
140
|
+
x86_64 hosts use `linux-x64`.)
|
|
141
|
+
|
|
142
|
+
### LibreOffice + CJK font rendering hangs
|
|
143
|
+
You also need `fontconfig` and a fontconfig refresh:
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
exec:
|
|
147
|
+
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig fonts-noto-cjk libreoffice-writer
|
|
148
|
+
- fc-cache -fv
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Without `fc-cache`, the first LibreOffice invocation can spend 30+s
|
|
152
|
+
rebuilding the font index (and sometimes hangs in our setup).
|
|
153
|
+
|
|
154
|
+
### Snapshot lost between sessions
|
|
155
|
+
`use_sandbox_build` writes a tenant pointer; the live VM only picks
|
|
156
|
+
it up on `reset_sandbox`. If you switch but skip the reset, the next
|
|
157
|
+
agent turn still runs the old image. The user's admin UI has a
|
|
158
|
+
one-click "Use & Reset" button that does both; from the agent always
|
|
159
|
+
pair them.
|
|
160
|
+
|
|
161
|
+
## Snapshot retention
|
|
162
|
+
|
|
163
|
+
Snapshots live in microsandbox's local store under
|
|
164
|
+
`~/.microsandbox/snapshots/<name>/`. They are *not* garbage-collected
|
|
165
|
+
automatically in v0; build a lot and you'll fill the disk. Old builds
|
|
166
|
+
can be removed manually with `rm -rf` on that path (no agent tool yet).
|
|
167
|
+
|
|
168
|
+
The disk-format pointer file (`<tenant>/_tenant/sandbox/current.json`)
|
|
169
|
+
still uses the field names `publishedAt`/`publishedBy` for backwards
|
|
170
|
+
compatibility with existing tenants. The user-facing terminology is
|
|
171
|
+
"in use" / "switch"; the on-disk fields are an implementation detail.
|
|
172
|
+
|
|
173
|
+
## Pre-flight checklist
|
|
174
|
+
|
|
175
|
+
Before calling `build_sandbox`, double-check:
|
|
176
|
+
|
|
177
|
+
- [ ] You wrote the Sandboxfile (`write_file("/sandbox/Sandboxfile", ...)`),
|
|
178
|
+
not just discussed it.
|
|
179
|
+
- [ ] Final verification step uses `bash -c "<chained checks>"`, not bare
|
|
180
|
+
`echo $(...)` (silent-failure trap).
|
|
181
|
+
- [ ] If installing user-space binaries (Node, Go, …) you used a regional
|
|
182
|
+
mirror — default mirrors are too slow inside the sandbox network.
|
|
183
|
+
- [ ] You explicitly want this image — check with the user if you're
|
|
184
|
+
switching the tenant's in-use build; that affects every future
|
|
185
|
+
agent turn.
|
|
186
|
+
|
|
187
|
+
## What NOT to do
|
|
188
|
+
|
|
189
|
+
- Don't call `use_sandbox_build(build_id)` without first reading
|
|
190
|
+
`list_sandbox_builds` to confirm the snapshot still exists.
|
|
191
|
+
- Don't run multi-stage workflows (download → compile → install) inline
|
|
192
|
+
in the verification step — separate them. A failed download in line
|
|
193
|
+
N+1 is much easier to debug than one of three commands chained
|
|
194
|
+
through `&&`.
|
|
195
|
+
- Don't rely on `apt-get install` exit code alone to confirm the
|
|
196
|
+
package works; the install can succeed but the binary may not be on
|
|
197
|
+
`PATH`. Always test with `which <bin>` or `<bin> --version`.
|
|
198
|
+
- Don't `npm install -g <pkg>` immediately after `npm install -g
|
|
199
|
+
npm@latest` in the same `exec` line — npm may relink during upgrade
|
|
200
|
+
and the second call sees a half-installed registry. Split into two
|
|
201
|
+
`exec` lines.
|