@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,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.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-config
|
|
3
|
+
description: How to change the sandbox VM image / cpus / memory using `update_sandbox_config`, and when a `reset_sandbox` is needed for the change to take effect.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: update_sandbox_config
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`update_sandbox_config` writes the tenant config file. The currently-running
|
|
9
|
+
VM is **not** restarted automatically; call `reset_sandbox` after this if you
|
|
10
|
+
want the new settings live now.
|
|
11
|
+
|
|
12
|
+
## Configurable fields
|
|
13
|
+
|
|
14
|
+
| Field | Default | Reset needed? |
|
|
15
|
+
|-------|---------|---------------|
|
|
16
|
+
| `image` | `python:3.12-slim` | yes (rebuilds VM) |
|
|
17
|
+
| `cpus` | 2 | yes |
|
|
18
|
+
| `memory_mib` | 2048 | yes |
|
|
19
|
+
| `sandbox_name` | `tianshu-<tenantId>` | yes (rarely useful) |
|
|
20
|
+
| `idle_shutdown_ms` | 14400000 (4h) | no (read live) |
|
|
21
|
+
| `exec_timeout_ms` | 300000 (5min) | no (read live per call) |
|
|
22
|
+
|
|
23
|
+
The result returns `reset_required: true/false` so you know whether to call
|
|
24
|
+
`reset_sandbox` next.
|
|
25
|
+
|
|
26
|
+
## Common changes
|
|
27
|
+
|
|
28
|
+
- Need a different OS / pre-installed packages: change `image`, then
|
|
29
|
+
`reset_sandbox`. Image pulls happen on next `exec` (cold start cost).
|
|
30
|
+
- Memory pressure: bump `memory_mib`, `reset_sandbox`.
|
|
31
|
+
- Idle reaping too aggressive: raise `idle_shutdown_ms`. No reset needed.
|
|
32
|
+
|
|
33
|
+
## What NOT to do
|
|
34
|
+
|
|
35
|
+
- Don't set `image` to something you haven't verified locally first — a
|
|
36
|
+
bad image leaves the sandbox in `state: "error"` and the agent loses
|
|
37
|
+
`exec` until you fix the config.
|
|
38
|
+
- Don't set `cpus` higher than the host has free.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-exec-howto
|
|
3
|
+
description: How to use `exec` effectively — default workdir, timeouts, output truncation, when to call `reset_sandbox` vs retrying.
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: exec
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`exec` runs a command inside a per-tenant microVM started lazily on first use.
|
|
9
|
+
|
|
10
|
+
## Default working dir
|
|
11
|
+
|
|
12
|
+
`exec` defaults `cwd` to your user home inside the sandbox
|
|
13
|
+
(`/workspace/users/<your-userId>/`), the SAME dir `read_file`/`write_file`
|
|
14
|
+
operate on. So a relative path means the same file on both sides:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
write_file("/hello.py", "print('hi')")
|
|
18
|
+
exec("python3 hello.py") # → "hi"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Pass an absolute path in `workdir` to step outside (e.g. `/etc`, `/usr`,
|
|
22
|
+
`/tmp`).
|
|
23
|
+
|
|
24
|
+
## Timeouts
|
|
25
|
+
|
|
26
|
+
- Default: 5 minutes.
|
|
27
|
+
- Cap: 30 minutes (`timeout_ms` is clamped).
|
|
28
|
+
- Use `timeout_ms` for slow tasks: `pip install`, `npm install`, builds,
|
|
29
|
+
data processing.
|
|
30
|
+
- A timed-out call returns `timed_out: true` and `exit_code: -1`. Retry with
|
|
31
|
+
a larger timeout if the command is legitimately slow.
|
|
32
|
+
|
|
33
|
+
## Starting servers / long-running processes
|
|
34
|
+
|
|
35
|
+
**Don't run a foreground server with `exec`.** A command like
|
|
36
|
+
`python -m http.server 8000` or `npm start` never returns; the
|
|
37
|
+
`exec` call hangs until the host timeout, then your turn dies
|
|
38
|
+
with no useful output AND the server keeps running, tying up
|
|
39
|
+
the port for the next attempt.
|
|
40
|
+
|
|
41
|
+
Three safe shapes, in order of preference:
|
|
42
|
+
|
|
43
|
+
### 1. Skip the server (best)
|
|
44
|
+
|
|
45
|
+
If you only need to verify the file works in a browser, write
|
|
46
|
+
it and tell the user the path. Don't "verify by starting a
|
|
47
|
+
server" — the user will open it themselves. This is the
|
|
48
|
+
default for static sites, single-file games, demos.
|
|
49
|
+
|
|
50
|
+
### 2. Background + readiness check
|
|
51
|
+
|
|
52
|
+
When the verification truly needs the server up:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# detach completely so exec returns immediately
|
|
56
|
+
nohup setsid python -m http.server 8000 \
|
|
57
|
+
> /tmp/srv.log 2>&1 < /dev/null &
|
|
58
|
+
|
|
59
|
+
# wait briefly, then probe
|
|
60
|
+
sleep 2
|
|
61
|
+
curl -sS --max-time 5 http://127.0.0.1:8000/ | head -20
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Key moves: `nohup setsid ... &` detaches from this shell;
|
|
65
|
+
`> /tmp/srv.log 2>&1 < /dev/null` closes stdin and redirects
|
|
66
|
+
output so the parent shell can exit cleanly. Without these the
|
|
67
|
+
fd connection keeps `exec` waiting.
|
|
68
|
+
|
|
69
|
+
### 3. Bounded foreground (rarely useful)
|
|
70
|
+
|
|
71
|
+
If you need to capture output and the command will exit on its
|
|
72
|
+
own after some short time (a one-shot test runner, a CLI tool):
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
timeout 30 ./run-tests.sh 2>&1 | tail -50
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`timeout` guarantees the call returns; the trailing `tail`
|
|
79
|
+
keeps stdout under the truncation cap.
|
|
80
|
+
|
|
81
|
+
### Stopping a server you started
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pkill -f 'python -m http.server' || true
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Or just `reset_sandbox` if it's gotten messy — your files in
|
|
88
|
+
`/workspace` survive.
|
|
89
|
+
|
|
90
|
+
## Output truncation
|
|
91
|
+
|
|
92
|
+
stdout/stderr each truncated at 200 lines / 8 KB. If output is bigger:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
exec("long-running-thing > /workspace/out.log 2>&1")
|
|
96
|
+
read_file("/out.log")
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
…or pipe through `tail`/`sed` inline.
|
|
100
|
+
|
|
101
|
+
## Pre-installed tools (don't `apt install` / `pip install` what's already there)
|
|
102
|
+
|
|
103
|
+
The sandbox image ships with these out of the box. Use them
|
|
104
|
+
directly instead of installing alternatives:
|
|
105
|
+
|
|
106
|
+
- **`soffice`** (LibreOffice 25.2) — headless docx / xlsx / pptx /
|
|
107
|
+
pdf conversion. See `microsandbox-libreoffice` for the full
|
|
108
|
+
conversion table, sandbox-specific gotchas (single-instance
|
|
109
|
+
lock, AF_UNIX status, font cache), and "when soffice is the
|
|
110
|
+
WRONG tool".
|
|
111
|
+
- **`chromium` / Playwright MCP** — see `microsandbox-browser-howto`.
|
|
112
|
+
Don't `playwright install chromium`; the sandbox already has it
|
|
113
|
+
on CDP 9222 + MCP 3200.
|
|
114
|
+
- **`node`, `npm`, `npx`** — Node 22 LTS, configured to npmmirror
|
|
115
|
+
in CN. `npm install <pkg>` works; just don't try to upgrade
|
|
116
|
+
Node itself.
|
|
117
|
+
- **`fc-cache`** — already run at build time, so CJK fonts render
|
|
118
|
+
in `soffice` and `chromium` without a 30s cold start.
|
|
119
|
+
- **`pdftoppm`** (Poppler) — PDF → PNG / JPEG, the right tool
|
|
120
|
+
for multi-page rasterisation (used by the LibreOffice and
|
|
121
|
+
PPTX flows).
|
|
122
|
+
|
|
123
|
+
If you need something not on this list and it's a one-shot:
|
|
124
|
+
`apt-get install -y <pkg>` works in the running VM but won't
|
|
125
|
+
survive a `reset_sandbox`. For persistence, edit Sandboxfile
|
|
126
|
+
and rebuild (see `microsandbox-build-use`).
|
|
127
|
+
|
|
128
|
+
## When to reset
|
|
129
|
+
|
|
130
|
+
Call `reset_sandbox` only when:
|
|
131
|
+
|
|
132
|
+
- `exec` keeps timing out (process stuck, kernel deadlocked).
|
|
133
|
+
- A long-running daemon (e.g. `python -m http.server`) is in your way.
|
|
134
|
+
- `get_sandbox_status` shows `state: "error"`.
|
|
135
|
+
- You broke something in `/etc` / `/usr` and want a clean slate.
|
|
136
|
+
|
|
137
|
+
`reset_sandbox` destroys the VM and re-creates it. **Files under
|
|
138
|
+
`/workspace` survive**; everything else (installed packages, `/tmp`, running
|
|
139
|
+
processes) does not.
|
|
140
|
+
|
|
141
|
+
## Cold start
|
|
142
|
+
|
|
143
|
+
The sandbox boots on first `exec` (≈10s the first time per session).
|
|
144
|
+
Subsequent calls in the same conversation are sub-second.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: microsandbox-libreoffice
|
|
3
|
+
description: How to convert / read / extract Office documents inside the sandbox using the pre-installed LibreOffice (soffice). Covers docx / xlsx / pptx / odt round-trips, PDF rendering, slide-deck text extraction with markitdown, and the sandbox-specific gotchas (AF_UNIX shim, font cache, single-process mode, output paths).
|
|
4
|
+
when:
|
|
5
|
+
toolPresent: exec
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# LibreOffice in the sandbox
|
|
9
|
+
|
|
10
|
+
The sandbox image ships LibreOffice 25.2 (`writer / calc /
|
|
11
|
+
impress`) plus its CLI alias `soffice`. Use it directly — don't
|
|
12
|
+
`pip install python-docx` / `openpyxl` / `python-pptx` for tasks
|
|
13
|
+
that are basically format conversion. They're worth their weight
|
|
14
|
+
when you need cell-level edits or programmatic slide construction;
|
|
15
|
+
for "give me the text", "convert to PDF", "extract slide images",
|
|
16
|
+
`soffice` is one shell call away.
|
|
17
|
+
|
|
18
|
+
## Conversion table
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Office → text
|
|
22
|
+
soffice --headless --convert-to txt input.docx --outdir /tmp/
|
|
23
|
+
soffice --headless --convert-to txt input.xlsx --outdir /tmp/ # cells joined by tabs
|
|
24
|
+
soffice --headless --convert-to txt input.pptx --outdir /tmp/ # slides as paragraphs
|
|
25
|
+
|
|
26
|
+
# Office → PDF (the workhorse: any → pdf, lossless layout)
|
|
27
|
+
soffice --headless --convert-to pdf input.docx --outdir /tmp/
|
|
28
|
+
soffice --headless --convert-to pdf input.xlsx --outdir /tmp/
|
|
29
|
+
soffice --headless --convert-to pdf input.pptx --outdir /tmp/
|
|
30
|
+
|
|
31
|
+
# Office round-trips
|
|
32
|
+
soffice --headless --convert-to docx input.odt --outdir /tmp/
|
|
33
|
+
soffice --headless --convert-to xlsx input.csv --outdir /tmp/
|
|
34
|
+
soffice --headless --convert-to csv input.xlsx --outdir /tmp/
|
|
35
|
+
|
|
36
|
+
# PDF → image (multi-page; use pdftoppm, NOT soffice)
|
|
37
|
+
soffice --headless --convert-to pdf input.pptx --outdir /tmp/
|
|
38
|
+
pdftoppm -jpeg -r 150 /tmp/input.pdf /tmp/slide
|
|
39
|
+
# → /tmp/slide-01.jpg, /tmp/slide-02.jpg, ...
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**`--outdir` is required.** Without it `soffice` writes the
|
|
43
|
+
output next to the input, which means a relative input path that
|
|
44
|
+
resolves anywhere unexpected (your `cwd` in the sandbox is
|
|
45
|
+
`/workspace`, not `/tmp`). Always pass `--outdir`.
|
|
46
|
+
|
|
47
|
+
## Reading content (text extraction)
|
|
48
|
+
|
|
49
|
+
For "what does this document say?" — skip the conversion step
|
|
50
|
+
and use `markitdown`, which understands docx / xlsx / pptx /
|
|
51
|
+
pdf natively and outputs structured Markdown:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install --quiet "markitdown[all]" # already in image cache; first call ~1s
|
|
55
|
+
python -m markitdown report.docx
|
|
56
|
+
python -m markitdown deck.pptx # slide titles + body text + speaker notes
|
|
57
|
+
python -m markitdown sheet.xlsx # tabular Markdown
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Markitdown is the right pick when you need to **summarise** the
|
|
61
|
+
document or pass content to another LLM call. `soffice
|
|
62
|
+
--convert-to txt` is the right pick when you need a raw textual
|
|
63
|
+
artefact for an export pipeline.
|
|
64
|
+
|
|
65
|
+
## Multi-page slide / PDF preview
|
|
66
|
+
|
|
67
|
+
For visual QA of generated decks (the agent decides "did the
|
|
68
|
+
bullets I generated actually fit?"), render every page to JPEG
|
|
69
|
+
and inspect with the vision model:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
soffice --headless --convert-to pdf deck.pptx --outdir /tmp/
|
|
73
|
+
pdftoppm -jpeg -r 150 /tmp/deck.pdf /tmp/slide
|
|
74
|
+
ls /tmp/slide-*.jpg
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`-r 150` is a good visual-QA DPI; bump to 300 for print review,
|
|
78
|
+
drop to 96 if you only want a thumbnail grid.
|
|
79
|
+
|
|
80
|
+
To re-render a single slide after a fix:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pdftoppm -jpeg -r 150 -f 7 -l 7 /tmp/deck.pdf /tmp/slide-7-fixed
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Sandbox-specific gotchas
|
|
87
|
+
|
|
88
|
+
### Single-instance lock
|
|
89
|
+
|
|
90
|
+
`soffice` uses an X server profile + an internal lock file under
|
|
91
|
+
`~/.config/libreoffice/`. If two `soffice --headless` calls run
|
|
92
|
+
concurrently in the same VM, the second one waits for the first.
|
|
93
|
+
Two safe options:
|
|
94
|
+
|
|
95
|
+
- **Sequential calls** (default; just don't background them).
|
|
96
|
+
- **Per-call user profile** when you legitimately need parallel:
|
|
97
|
+
```bash
|
|
98
|
+
soffice --headless \
|
|
99
|
+
-env:UserInstallation=file:///tmp/lo-$$ \
|
|
100
|
+
--convert-to pdf input.docx --outdir /tmp/
|
|
101
|
+
```
|
|
102
|
+
`$$` is the shell's PID; one fresh profile per invocation. Costs
|
|
103
|
+
~200 ms of cold start per call.
|
|
104
|
+
|
|
105
|
+
### AF_UNIX socket shim (probably NOT needed here)
|
|
106
|
+
|
|
107
|
+
Some sandbox runtimes block `socket(AF_UNIX, ...)`, which makes
|
|
108
|
+
`soffice --headless` hang waiting on its internal IPC. Microsandbox
|
|
109
|
+
on macOS / Linux **does NOT block AF_UNIX** (verified), so you
|
|
110
|
+
don't need a shim. If a future runtime change breaks this, the
|
|
111
|
+
diagnostic is:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
python3 -c 'import socket; socket.socket(socket.AF_UNIX); print("OK")'
|
|
115
|
+
# OK → no shim needed
|
|
116
|
+
# OSError → AF_UNIX blocked, build an LD_PRELOAD shim that falls
|
|
117
|
+
# back to socketpair (see Anthropic pptx skill for the C source)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Java warning is benign
|
|
121
|
+
|
|
122
|
+
You'll see `Warning: failed to launch javaldx - java may not
|
|
123
|
+
function correctly`. Java is only needed for the optional
|
|
124
|
+
spreadsheet macro / form-controls path, which we don't use.
|
|
125
|
+
Ignore.
|
|
126
|
+
|
|
127
|
+
### CJK font rendering
|
|
128
|
+
|
|
129
|
+
The image build runs `fc-cache -fv` so first-call rendering is
|
|
130
|
+
fast and Chinese / Japanese / Korean glyphs render properly.
|
|
131
|
+
If a build skips that step, the first `soffice` call eats 30+s
|
|
132
|
+
synchronising fonts.
|
|
133
|
+
|
|
134
|
+
### `--outdir` and absolute paths
|
|
135
|
+
|
|
136
|
+
`soffice` resolves `--outdir` against the sandbox's `cwd`
|
|
137
|
+
(`/workspace` by default). When the agent's `exec` runs from a
|
|
138
|
+
project subdirectory, prefer absolute paths in BOTH `--outdir`
|
|
139
|
+
and the input filename so the output lands where you expect.
|
|
140
|
+
|
|
141
|
+
## When LibreOffice is the WRONG tool
|
|
142
|
+
|
|
143
|
+
- **Cell-level editing / formulas in xlsx**: use `openpyxl` or
|
|
144
|
+
Pandas. `soffice` rewrites the whole file; structural metadata
|
|
145
|
+
(named ranges, conditional formatting) can shift.
|
|
146
|
+
- **Programmatic slide creation from scratch**: use `pptxgenjs`
|
|
147
|
+
(Node) or `python-pptx`. `soffice` is for converting an
|
|
148
|
+
existing deck, not authoring one.
|
|
149
|
+
- **Markdown / text reports**: don't bounce through Office. Just
|
|
150
|
+
write `.md`.
|
|
151
|
+
|
|
152
|
+
## Cleanup
|
|
153
|
+
|
|
154
|
+
`soffice` leaves `~/.config/libreoffice/`, `~/.cache/libreoffice/`,
|
|
155
|
+
and any per-call `/tmp/lo-*` profile dirs around. Sandbox `/tmp`
|
|
156
|
+
is wiped on `reset_sandbox`; `~` (root) survives. If you're
|
|
157
|
+
running thousands of conversions in one session, `rm -rf
|
|
158
|
+
~/.cache/libreoffice/` periodically to keep disk usage from
|
|
159
|
+
creeping.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Sandboxfile templates
|
|
2
|
+
|
|
3
|
+
Each `*.yaml` here is a starting-point Sandboxfile a user can load
|
|
4
|
+
into the admin Sandbox page (or the agent can author via
|
|
5
|
+
`write_file`). Templates surface through the host:
|
|
6
|
+
|
|
7
|
+
- `GET /api/p/microsandbox/sandboxfile/templates` returns
|
|
8
|
+
`{ templates: [{ id, displayName, description, content }, ...] }`.
|
|
9
|
+
- The admin page's "Load template" dropdown reads that list and
|
|
10
|
+
pastes the picked template into the editor (replacing the
|
|
11
|
+
current draft only after the user clicks Save).
|
|
12
|
+
|
|
13
|
+
Templates are not enforced — they're just curated examples that
|
|
14
|
+
follow the patterns from `skills/microsandbox-build-use.md` (use
|
|
15
|
+
`bash -c` for verification, regional mirrors for slow apt, etc.).
|
|
16
|
+
|
|
17
|
+
## When to add a new template
|
|
18
|
+
|
|
19
|
+
A new template earns its slot when:
|
|
20
|
+
1. Multiple users have hit the same "what packages do I need" wall
|
|
21
|
+
for a real workload (Office automation, browser, data science),
|
|
22
|
+
AND
|
|
23
|
+
2. The recipe survives a real `build & use` test on Apple Silicon
|
|
24
|
+
arm64.
|
|
25
|
+
|
|
26
|
+
Otherwise leave it as a skill paragraph; less surface to maintain.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAI7B,QAAA,MAAM,MAAM,EAAE,kBA6Db,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Server side of the `web-search` plugin.
|
|
2
|
+
//
|
|
3
|
+
// One agent tool (`web_search`), backed by Tavily / Brave Search
|
|
4
|
+
// JSON APIs. The plugin's `activate()` reads its API keys from
|
|
5
|
+
// `ctx.pluginConfig` (cleartext at this layer; the host has
|
|
6
|
+
// already merged secrets/ into pluginConfig before calling us)
|
|
7
|
+
// and bakes them into a closure handed to the tool builder.
|
|
8
|
+
//
|
|
9
|
+
// The plugin also keeps a `ProviderHealth` cache shared by every
|
|
10
|
+
// invocation in this activation, so a worker that searches ten
|
|
11
|
+
// times in a row pays the round-trip on a known-bad key only
|
|
12
|
+
// once. The cache is cleared automatically when the plugin
|
|
13
|
+
// re-activates (any config change does this) and via the
|
|
14
|
+
// `POST /health/reset` admin route below.
|
|
15
|
+
import { buildWebSearchTool, readWebSearchConfig } from "./tools/index.js";
|
|
16
|
+
import { ProviderHealth } from "./tools/health.js";
|
|
17
|
+
const plugin = {
|
|
18
|
+
activate(ctx) {
|
|
19
|
+
const cfg = readWebSearchConfig(ctx.pluginConfig);
|
|
20
|
+
const haveTavily = !!cfg.tavilyApiKey;
|
|
21
|
+
const haveBrave = !!cfg.braveApiKey;
|
|
22
|
+
if (!haveTavily && !haveBrave) {
|
|
23
|
+
ctx.log.warn("web-search: no API keys configured. Open Settings → Plugins → Web Search and add a Tavily or Brave key.");
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
ctx.log.info(`web-search: enabled with ${[haveTavily && "Tavily", haveBrave && "Brave"]
|
|
27
|
+
.filter(Boolean)
|
|
28
|
+
.join(" + ") || "(no providers)"}`);
|
|
29
|
+
}
|
|
30
|
+
const health = new ProviderHealth();
|
|
31
|
+
return {
|
|
32
|
+
tools: {
|
|
33
|
+
WebSearchTool: buildWebSearchTool(cfg, health),
|
|
34
|
+
},
|
|
35
|
+
routes: {
|
|
36
|
+
// GET /api/p/web-search/health
|
|
37
|
+
getHealth: (_req, res) => {
|
|
38
|
+
res.json({
|
|
39
|
+
ok: true,
|
|
40
|
+
providers: {
|
|
41
|
+
tavily: { configured: haveTavily },
|
|
42
|
+
brave: { configured: haveBrave },
|
|
43
|
+
},
|
|
44
|
+
preferredProvider: cfg.preferredProvider ?? "tavily",
|
|
45
|
+
timeoutMs: cfg.timeoutMs ?? 8000,
|
|
46
|
+
dead: health.snapshot(),
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
// POST /api/p/web-search/health/reset
|
|
50
|
+
// Body is optional: { provider?: "tavily" | "brave" }.
|
|
51
|
+
// Without `provider` the whole cache clears.
|
|
52
|
+
resetHealth: (req, res) => {
|
|
53
|
+
const body = req.body;
|
|
54
|
+
const target = body?.provider;
|
|
55
|
+
if (target === "tavily" || target === "brave") {
|
|
56
|
+
health.resetOne(target);
|
|
57
|
+
res.json({ ok: true, cleared: [target] });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const before = health.snapshot().map((e) => e.provider);
|
|
61
|
+
health.reset();
|
|
62
|
+
res.json({ ok: true, cleared: before });
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
async deactivate() {
|
|
68
|
+
// ProviderHealth is per-activation; the GC takes care of it
|
|
69
|
+
// when activate() is called again (registry invalidate cycle).
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
export default plugin;
|
|
73
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,iEAAiE;AACjE,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAC/D,4DAA4D;AAC5D,EAAE;AACF,iEAAiE;AACjE,+DAA+D;AAC/D,6DAA6D;AAC7D,2DAA2D;AAC3D,yDAAyD;AACzD,0CAA0C;AAQ1C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,GAAuB;IACjC,QAAQ,CAAC,GAAkB;QACzB,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACtC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,yGAAyG,CAC1G,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,4BACE,CAAC,UAAU,IAAI,QAAQ,EAAE,SAAS,IAAI,OAAO,CAAC;iBAC3C,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,KAAK,CAAC,IAAI,gBACpB,EAAE,CACH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAEpC,OAAO;YACL,KAAK,EAAE;gBACL,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;aAC/C;YACD,MAAM,EAAE;gBACN,+BAA+B;gBAC/B,SAAS,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;oBAC1C,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,IAAI;wBACR,SAAS,EAAE;4BACT,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;4BAClC,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;yBACjC;wBACD,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,QAAQ;wBACpD,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;wBAChC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;qBACxB,CAAC,CAAC;gBACL,CAAC;gBACD,sCAAsC;gBACtC,uDAAuD;gBACvD,6CAA6C;gBAC7C,WAAW,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;oBAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAA0C,CAAC;oBAC5D,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC;oBAC9B,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;wBAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC1C,OAAO;oBACT,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACxD,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,UAAU;QACd,4DAA4D;QAC5D,+DAA+D;IACjE,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|