aimeat 3.2.0 → 3.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/dist/.env.example +58 -1
- package/dist/build-stamp.json +4 -4
- package/dist/locales/en.json +41 -1
- package/dist/locales/es.json +41 -1
- package/dist/locales/fi.json +43 -3
- package/dist/public/changelog.json +12 -0
- package/dist/public/css/views/chat.css +388 -0
- package/dist/public/js/services/chat.js +190 -0
- package/dist/public/js/services/speech-reader.js +26 -0
- package/dist/public/lib/VENDORED.md +1 -0
- package/dist/public/lib/duckdb-wasm@1.32.0/duckdb-browser-eh.worker.js +14 -0
- package/dist/public/lib/duckdb-wasm@1.32.0/duckdb-browser.js +23 -0
- package/dist/public/lib/duckdb-wasm@1.32.0/duckdb-eh.wasm +0 -0
- package/dist/public/lib/duckdb-wasm@1.32.0/extensions/v1.4.3/wasm_eh/parquet.duckdb_extension.wasm +0 -0
- package/dist/public/lib/vendored-assets.json +19 -0
- package/dist/public/llms-full-template.txt +2706 -0
- package/dist/public/llms-index-template.txt +60 -0
- package/dist/public/robots.node.txt +64 -23
- package/dist/public/spa.html +8 -1
- package/dist/public/views/chat/parts.js +257 -0
- package/dist/public/views/chat.js +327 -0
- package/dist/public/views/landing.js +24 -1
- package/dist/public/views/profile/agents/scope-model.js +320 -315
- package/dist/scripts/audit-mcp-schemas.js +41 -0
- package/dist/scripts/audit-mcp-schemas.js.map +1 -1
- package/dist/scripts/build-sdk-libs.d.ts.map +1 -1
- package/dist/scripts/build-sdk-libs.js +1 -0
- package/dist/scripts/build-sdk-libs.js.map +1 -1
- package/dist/scripts/check-ai-disclosure.js +11 -0
- package/dist/scripts/check-ai-disclosure.js.map +1 -1
- package/dist/scripts/check-denial-coverage.d.ts +29 -0
- package/dist/scripts/check-denial-coverage.d.ts.map +1 -0
- package/dist/scripts/check-denial-coverage.js +237 -0
- package/dist/scripts/check-denial-coverage.js.map +1 -0
- package/dist/scripts/check-ext-entrypoints.js +14 -2
- package/dist/scripts/check-ext-entrypoints.js.map +1 -1
- package/dist/scripts/check-outbound-fetch.d.ts.map +1 -1
- package/dist/scripts/check-outbound-fetch.js +16 -2
- package/dist/scripts/check-outbound-fetch.js.map +1 -1
- package/dist/scripts/check-sse-parity.js +14 -0
- package/dist/scripts/check-sse-parity.js.map +1 -1
- package/dist/scripts/indexnow.js +9 -7
- package/dist/scripts/indexnow.js.map +1 -1
- package/dist/src/auth/middleware.d.ts +7 -0
- package/dist/src/auth/middleware.d.ts.map +1 -1
- package/dist/src/auth/middleware.js +15 -21
- package/dist/src/auth/middleware.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts +4 -0
- package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js +11 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/apps.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/apps.js +88 -0
- package/dist/src/cli/connect/mcp/tools/apps.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.d.ts +7 -0
- package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.js +83 -4
- package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
- package/dist/src/cli/connect/onboarding-prompt.js +1 -1
- package/dist/src/cli/connect/skill-bundle.js +1 -1
- package/dist/src/cli/connect/tool-call-defs-app-draft-edit.d.ts +21 -0
- package/dist/src/cli/connect/tool-call-defs-app-draft-edit.d.ts.map +1 -0
- package/dist/src/cli/connect/tool-call-defs-app-draft-edit.js +137 -0
- package/dist/src/cli/connect/tool-call-defs-app-draft-edit.js.map +1 -0
- package/dist/src/cli/connect/tool-call-defs-core.d.ts +1 -0
- package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-core.js +30 -0
- package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
- package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call.js +2 -0
- package/dist/src/cli/connect/tool-call.js.map +1 -1
- package/dist/src/config-types-ai.d.ts +76 -0
- package/dist/src/config-types-ai.d.ts.map +1 -0
- package/dist/src/config-types-ai.js +15 -0
- package/dist/src/config-types-ai.js.map +1 -0
- package/dist/src/config-types.d.ts +11 -2
- package/dist/src/config-types.d.ts.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +25 -4
- package/dist/src/config.js.map +1 -1
- package/dist/src/data/builtin-skills.d.ts.map +1 -1
- package/dist/src/data/builtin-skills.js +3 -2
- package/dist/src/data/builtin-skills.js.map +1 -1
- package/dist/src/data/digital-signage-package.js +1 -1
- package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
- package/dist/src/data/library-packs/sdk.js +76 -0
- package/dist/src/data/library-packs/sdk.js.map +1 -1
- package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
- package/dist/src/data/library-packs/vendored.js +81 -0
- package/dist/src/data/library-packs/vendored.js.map +1 -1
- package/dist/src/data/library-packs.d.ts +2 -2
- package/dist/src/data/library-packs.js +2 -2
- package/dist/src/data/public-pages.d.ts +13 -0
- package/dist/src/data/public-pages.d.ts.map +1 -1
- package/dist/src/data/public-pages.js +153 -113
- package/dist/src/data/public-pages.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +1652 -36
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/index-start.d.ts.map +1 -1
- package/dist/src/index-start.js +3 -0
- package/dist/src/index-start.js.map +1 -1
- package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
- package/dist/src/mcp/agent-tasks.js +5 -0
- package/dist/src/mcp/agent-tasks.js.map +1 -1
- package/dist/src/mcp/ai-image.d.ts +22 -0
- package/dist/src/mcp/ai-image.d.ts.map +1 -0
- package/dist/src/mcp/ai-image.js +60 -0
- package/dist/src/mcp/ai-image.js.map +1 -0
- package/dist/src/mcp/annotations.d.ts +5 -0
- package/dist/src/mcp/annotations.d.ts.map +1 -1
- package/dist/src/mcp/annotations.js +18 -0
- package/dist/src/mcp/annotations.js.map +1 -1
- package/dist/src/mcp/apps-draft-edit.d.ts +28 -0
- package/dist/src/mcp/apps-draft-edit.d.ts.map +1 -0
- package/dist/src/mcp/apps-draft-edit.js +164 -0
- package/dist/src/mcp/apps-draft-edit.js.map +1 -0
- package/dist/src/mcp/apps-screenshot.d.ts +26 -0
- package/dist/src/mcp/apps-screenshot.d.ts.map +1 -0
- package/dist/src/mcp/apps-screenshot.js +39 -0
- package/dist/src/mcp/apps-screenshot.js.map +1 -0
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts +1 -0
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.js +40 -0
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.d.ts +3 -0
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +74 -0
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +1 -0
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
- package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
- package/dist/src/mcp/catalog/scopes.js +19 -1
- package/dist/src/mcp/catalog/scopes.js.map +1 -1
- package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
- package/dist/src/mcp/catalog/surfaces.js +18 -4
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/mcp/core-datapackage.d.ts +32 -0
- package/dist/src/mcp/core-datapackage.d.ts.map +1 -0
- package/dist/src/mcp/core-datapackage.js +188 -0
- package/dist/src/mcp/core-datapackage.js.map +1 -0
- package/dist/src/mcp/core-storage.d.ts +7 -3
- package/dist/src/mcp/core-storage.d.ts.map +1 -1
- package/dist/src/mcp/core-storage.js +27 -4
- package/dist/src/mcp/core-storage.js.map +1 -1
- package/dist/src/mcp/core.d.ts.map +1 -1
- package/dist/src/mcp/core.js +3 -0
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/mcp/extensions.d.ts.map +1 -1
- package/dist/src/mcp/extensions.js +11 -1
- package/dist/src/mcp/extensions.js.map +1 -1
- package/dist/src/mcp/index.d.ts +9 -0
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +34 -0
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
- package/dist/src/models/agent-task-schemas.js +12 -1
- package/dist/src/models/agent-task-schemas.js.map +1 -1
- package/dist/src/models/workflow-schemas.d.ts +178 -1
- package/dist/src/models/workflow-schemas.d.ts.map +1 -1
- package/dist/src/models/workflow-schemas.js +75 -0
- package/dist/src/models/workflow-schemas.js.map +1 -1
- package/dist/src/routes/admin-extensions.d.ts +4 -0
- package/dist/src/routes/admin-extensions.d.ts.map +1 -1
- package/dist/src/routes/admin-extensions.js +135 -142
- package/dist/src/routes/admin-extensions.js.map +1 -1
- package/dist/src/routes/agent-conventions.d.ts.map +1 -1
- package/dist/src/routes/agent-conventions.js +4 -2
- package/dist/src/routes/agent-conventions.js.map +1 -1
- package/dist/src/routes/agent-docs.d.ts +4 -4
- package/dist/src/routes/agent-docs.js +145 -145
- package/dist/src/routes/agent-docs.js.map +1 -1
- package/dist/src/routes/agent-messages.d.ts +6 -0
- package/dist/src/routes/agent-messages.d.ts.map +1 -1
- package/dist/src/routes/agent-messages.js +23 -1
- package/dist/src/routes/agent-messages.js.map +1 -1
- package/dist/src/routes/agent-tasks/create-read.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/create-read.js +8 -1
- package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
- package/dist/src/routes/agent-tasks/lifecycle.d.ts +4 -1
- package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/lifecycle.js +80 -2
- package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
- package/dist/src/routes/ai.d.ts +5 -0
- package/dist/src/routes/ai.d.ts.map +1 -1
- package/dist/src/routes/ai.js +51 -1
- package/dist/src/routes/ai.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts.map +1 -1
- package/dist/src/routes/app-grants.js +5 -0
- package/dist/src/routes/app-grants.js.map +1 -1
- package/dist/src/routes/apps/drafts.d.ts +6 -0
- package/dist/src/routes/apps/drafts.d.ts.map +1 -1
- package/dist/src/routes/apps/drafts.js +133 -1
- package/dist/src/routes/apps/drafts.js.map +1 -1
- package/dist/src/routes/apps/read.d.ts.map +1 -1
- package/dist/src/routes/apps/read.js +38 -1
- package/dist/src/routes/apps/read.js.map +1 -1
- package/dist/src/routes/auth-otk.d.ts +28 -0
- package/dist/src/routes/auth-otk.d.ts.map +1 -0
- package/dist/src/routes/auth-otk.js +190 -0
- package/dist/src/routes/auth-otk.js.map +1 -0
- package/dist/src/routes/auth.d.ts +17 -0
- package/dist/src/routes/auth.d.ts.map +1 -1
- package/dist/src/routes/auth.js +44 -153
- package/dist/src/routes/auth.js.map +1 -1
- package/dist/src/routes/bootstrap.d.ts +6 -0
- package/dist/src/routes/bootstrap.d.ts.map +1 -1
- package/dist/src/routes/bootstrap.js +47 -20
- package/dist/src/routes/bootstrap.js.map +1 -1
- package/dist/src/routes/chat.d.ts +23 -0
- package/dist/src/routes/chat.d.ts.map +1 -0
- package/dist/src/routes/chat.js +165 -0
- package/dist/src/routes/chat.js.map +1 -0
- package/dist/src/routes/commerce.js +4 -4
- package/dist/src/routes/commerce.js.map +1 -1
- package/dist/src/routes/datapackages.d.ts +35 -0
- package/dist/src/routes/datapackages.d.ts.map +1 -0
- package/dist/src/routes/datapackages.js +217 -0
- package/dist/src/routes/datapackages.js.map +1 -0
- package/dist/src/routes/disputes.d.ts +8 -0
- package/dist/src/routes/disputes.d.ts.map +1 -1
- package/dist/src/routes/disputes.js +52 -1
- package/dist/src/routes/disputes.js.map +1 -1
- package/dist/src/routes/ecosystem-apps-advisories.d.ts +16 -0
- package/dist/src/routes/ecosystem-apps-advisories.d.ts.map +1 -0
- package/dist/src/routes/ecosystem-apps-advisories.js +104 -0
- package/dist/src/routes/ecosystem-apps-advisories.js.map +1 -0
- package/dist/src/routes/ecosystem-apps.d.ts +6 -0
- package/dist/src/routes/ecosystem-apps.d.ts.map +1 -1
- package/dist/src/routes/ecosystem-apps.js +31 -99
- package/dist/src/routes/ecosystem-apps.js.map +1 -1
- package/dist/src/routes/extensions/actions.d.ts.map +1 -1
- package/dist/src/routes/extensions/actions.js +29 -1
- package/dist/src/routes/extensions/actions.js.map +1 -1
- package/dist/src/routes/federation-sync/routing.d.ts.map +1 -1
- package/dist/src/routes/federation-sync/routing.js +12 -3
- package/dist/src/routes/federation-sync/routing.js.map +1 -1
- package/dist/src/routes/glossary.js +1 -1
- package/dist/src/routes/glossary.js.map +1 -1
- package/dist/src/routes/home/track.d.ts +5 -1
- package/dist/src/routes/home/track.d.ts.map +1 -1
- package/dist/src/routes/home/track.js +20 -6
- package/dist/src/routes/home/track.js.map +1 -1
- package/dist/src/routes/instances/install.d.ts +3 -0
- package/dist/src/routes/instances/install.d.ts.map +1 -1
- package/dist/src/routes/instances/install.js +17 -24
- package/dist/src/routes/instances/install.js.map +1 -1
- package/dist/src/routes/libs.js +1 -1
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/markdown-mirrors.js +1 -1
- package/dist/src/routes/markdown-mirrors.js.map +1 -1
- package/dist/src/routes/odata.d.ts +36 -0
- package/dist/src/routes/odata.d.ts.map +1 -0
- package/dist/src/routes/odata.js +143 -0
- package/dist/src/routes/odata.js.map +1 -0
- package/dist/src/routes/openrouter.d.ts +4 -0
- package/dist/src/routes/openrouter.d.ts.map +1 -1
- package/dist/src/routes/openrouter.js +10 -1
- package/dist/src/routes/openrouter.js.map +1 -1
- package/dist/src/routes/organisms/gates.d.ts.map +1 -1
- package/dist/src/routes/organisms/gates.js +9 -2
- package/dist/src/routes/organisms/gates.js.map +1 -1
- package/dist/src/routes/portal.d.ts +1 -0
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +13 -0
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/routes/schedules.d.ts +4 -0
- package/dist/src/routes/schedules.d.ts.map +1 -1
- package/dist/src/routes/schedules.js +9 -1
- package/dist/src/routes/schedules.js.map +1 -1
- package/dist/src/routes/storage-files.d.ts +23 -0
- package/dist/src/routes/storage-files.d.ts.map +1 -1
- package/dist/src/routes/storage-files.js +103 -82
- package/dist/src/routes/storage-files.js.map +1 -1
- package/dist/src/routes/workflows.d.ts.map +1 -1
- package/dist/src/routes/workflows.js +9 -1
- package/dist/src/routes/workflows.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts +2 -0
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +20 -2
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
- package/dist/src/server-bootstrap/service-init.js +12 -7
- package/dist/src/server-bootstrap/service-init.js.map +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +44 -10
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/services/ai-allowance.d.ts +82 -0
- package/dist/src/services/ai-allowance.d.ts.map +1 -0
- package/dist/src/services/ai-allowance.js +117 -0
- package/dist/src/services/ai-allowance.js.map +1 -0
- package/dist/src/services/ai-completion.d.ts +26 -0
- package/dist/src/services/ai-completion.d.ts.map +1 -1
- package/dist/src/services/ai-completion.js +41 -13
- package/dist/src/services/ai-completion.js.map +1 -1
- package/dist/src/services/ai-image.d.ts +70 -0
- package/dist/src/services/ai-image.d.ts.map +1 -0
- package/dist/src/services/ai-image.js +104 -0
- package/dist/src/services/ai-image.js.map +1 -0
- package/dist/src/services/ai-model-defaults.d.ts +45 -0
- package/dist/src/services/ai-model-defaults.d.ts.map +1 -0
- package/dist/src/services/ai-model-defaults.js +42 -0
- package/dist/src/services/ai-model-defaults.js.map +1 -0
- package/dist/src/services/ai-tool-setup.d.ts +5 -1
- package/dist/src/services/ai-tool-setup.d.ts.map +1 -1
- package/dist/src/services/ai-tool-setup.js +36 -0
- package/dist/src/services/ai-tool-setup.js.map +1 -1
- package/dist/src/services/ai-transcription.d.ts +5 -0
- package/dist/src/services/ai-transcription.d.ts.map +1 -1
- package/dist/src/services/ai-transcription.js +5 -2
- package/dist/src/services/ai-transcription.js.map +1 -1
- package/dist/src/services/app-agent-surfaces.js +4 -4
- package/dist/src/services/app-agent-surfaces.js.map +1 -1
- package/dist/src/services/app-draft-edit.d.ts +144 -0
- package/dist/src/services/app-draft-edit.d.ts.map +1 -0
- package/dist/src/services/app-draft-edit.js +203 -0
- package/dist/src/services/app-draft-edit.js.map +1 -0
- package/dist/src/services/auth-md.js +2 -2
- package/dist/src/services/auth-md.js.map +1 -1
- package/dist/src/services/board-write.d.ts +11 -3
- package/dist/src/services/board-write.d.ts.map +1 -1
- package/dist/src/services/board-write.js +24 -3
- package/dist/src/services/board-write.js.map +1 -1
- package/dist/src/services/chat-agent.d.ts +36 -0
- package/dist/src/services/chat-agent.d.ts.map +1 -0
- package/dist/src/services/chat-agent.js +123 -0
- package/dist/src/services/chat-agent.js.map +1 -0
- package/dist/src/services/chat-session.d.ts +58 -0
- package/dist/src/services/chat-session.d.ts.map +1 -0
- package/dist/src/services/chat-session.js +151 -0
- package/dist/src/services/chat-session.js.map +1 -0
- package/dist/src/services/chat-threads.d.ts +61 -0
- package/dist/src/services/chat-threads.d.ts.map +1 -0
- package/dist/src/services/chat-threads.js +137 -0
- package/dist/src/services/chat-threads.js.map +1 -0
- package/dist/src/services/config-schema.d.ts.map +1 -1
- package/dist/src/services/config-schema.js +2 -1
- package/dist/src/services/config-schema.js.map +1 -1
- package/dist/src/services/datapackage/contract.d.ts +198 -0
- package/dist/src/services/datapackage/contract.d.ts.map +1 -0
- package/dist/src/services/datapackage/contract.js +140 -0
- package/dist/src/services/datapackage/contract.js.map +1 -0
- package/dist/src/services/datapackage/ext-capability.d.ts +85 -0
- package/dist/src/services/datapackage/ext-capability.d.ts.map +1 -0
- package/dist/src/services/datapackage/ext-capability.js +72 -0
- package/dist/src/services/datapackage/ext-capability.js.map +1 -0
- package/dist/src/services/datapackage/odata.d.ts +92 -0
- package/dist/src/services/datapackage/odata.d.ts.map +1 -0
- package/dist/src/services/datapackage/odata.js +256 -0
- package/dist/src/services/datapackage/odata.js.map +1 -0
- package/dist/src/services/datapackage/odps.d.ts +24 -0
- package/dist/src/services/datapackage/odps.d.ts.map +1 -0
- package/dist/src/services/datapackage/odps.js +183 -0
- package/dist/src/services/datapackage/odps.js.map +1 -0
- package/dist/src/services/datapackage/store.d.ts +143 -0
- package/dist/src/services/datapackage/store.d.ts.map +1 -0
- package/dist/src/services/datapackage/store.js +533 -0
- package/dist/src/services/datapackage/store.js.map +1 -0
- package/dist/src/services/datapackage/table.d.ts +67 -0
- package/dist/src/services/datapackage/table.d.ts.map +1 -0
- package/dist/src/services/datapackage/table.js +0 -0
- package/dist/src/services/datapackage/table.js.map +1 -0
- package/dist/src/services/extension-ctx.d.ts +1 -0
- package/dist/src/services/extension-ctx.d.ts.map +1 -1
- package/dist/src/services/extension-ctx.js +31 -6
- package/dist/src/services/extension-ctx.js.map +1 -1
- package/dist/src/services/extension-files.d.ts +20 -0
- package/dist/src/services/extension-files.d.ts.map +1 -1
- package/dist/src/services/extension-files.js +9 -2
- package/dist/src/services/extension-files.js.map +1 -1
- package/dist/src/services/extension-lifecycle.d.ts +3 -0
- package/dist/src/services/extension-lifecycle.d.ts.map +1 -1
- package/dist/src/services/extension-lifecycle.js +2 -26
- package/dist/src/services/extension-lifecycle.js.map +1 -1
- package/dist/src/services/extension-runtime.d.ts +28 -2
- package/dist/src/services/extension-runtime.d.ts.map +1 -1
- package/dist/src/services/extension-runtime.js +22 -0
- package/dist/src/services/extension-runtime.js.map +1 -1
- package/dist/src/services/extension-schedules.d.ts +90 -0
- package/dist/src/services/extension-schedules.d.ts.map +1 -0
- package/dist/src/services/extension-schedules.js +123 -0
- package/dist/src/services/extension-schedules.js.map +1 -0
- package/dist/src/services/extension-system-run.d.ts +91 -0
- package/dist/src/services/extension-system-run.d.ts.map +1 -0
- package/dist/src/services/extension-system-run.js +100 -0
- package/dist/src/services/extension-system-run.js.map +1 -0
- package/dist/src/services/extension-upsert.d.ts +2 -0
- package/dist/src/services/extension-upsert.d.ts.map +1 -1
- package/dist/src/services/extension-upsert.js +6 -24
- package/dist/src/services/extension-upsert.js.map +1 -1
- package/dist/src/services/goose-acp.d.ts +84 -0
- package/dist/src/services/goose-acp.d.ts.map +1 -0
- package/dist/src/services/goose-acp.js +304 -0
- package/dist/src/services/goose-acp.js.map +1 -0
- package/dist/src/services/markdown-negotiation.js +1 -1
- package/dist/src/services/markdown-negotiation.js.map +1 -1
- package/dist/src/services/openrouter.d.ts +20 -1
- package/dist/src/services/openrouter.d.ts.map +1 -1
- package/dist/src/services/openrouter.js +66 -0
- package/dist/src/services/openrouter.js.map +1 -1
- package/dist/src/services/prompt-defaults/tiers-core.js +4 -4
- package/dist/src/services/scheduler-extension-job.d.ts +29 -6
- package/dist/src/services/scheduler-extension-job.d.ts.map +1 -1
- package/dist/src/services/scheduler-extension-job.js +29 -75
- package/dist/src/services/scheduler-extension-job.js.map +1 -1
- package/dist/src/services/scope-vocabulary-migration.d.ts +34 -1
- package/dist/src/services/scope-vocabulary-migration.d.ts.map +1 -1
- package/dist/src/services/scope-vocabulary-migration.js +60 -0
- package/dist/src/services/scope-vocabulary-migration.js.map +1 -1
- package/dist/src/services/screenshot-capture.d.ts +40 -1
- package/dist/src/services/screenshot-capture.d.ts.map +1 -1
- package/dist/src/services/screenshot-capture.js +142 -60
- package/dist/src/services/screenshot-capture.js.map +1 -1
- package/dist/src/services/skill-bundle/generator.js +1 -1
- package/dist/src/services/skill-bundle/generic-adapter.js +1 -1
- package/dist/src/services/skill-bundle/hermes-adapter.js +1 -1
- package/dist/src/services/storage-file-write.d.ts +36 -1
- package/dist/src/services/storage-file-write.d.ts.map +1 -1
- package/dist/src/services/storage-file-write.js +49 -3
- package/dist/src/services/storage-file-write.js.map +1 -1
- package/dist/src/services/task-outcome.d.ts +53 -0
- package/dist/src/services/task-outcome.d.ts.map +1 -0
- package/dist/src/services/task-outcome.js +28 -0
- package/dist/src/services/task-outcome.js.map +1 -0
- package/dist/src/services/workflow/engine-human.d.ts +15 -0
- package/dist/src/services/workflow/engine-human.d.ts.map +1 -1
- package/dist/src/services/workflow/engine-human.js +10 -1
- package/dist/src/services/workflow/engine-human.js.map +1 -1
- package/dist/src/services/workflow/engine-steps.d.ts +48 -3
- package/dist/src/services/workflow/engine-steps.d.ts.map +1 -1
- package/dist/src/services/workflow/engine-steps.js +361 -0
- package/dist/src/services/workflow/engine-steps.js.map +1 -1
- package/dist/src/services/workflow/engine.d.ts +1 -0
- package/dist/src/services/workflow/engine.d.ts.map +1 -1
- package/dist/src/services/workflow/engine.js +2 -1
- package/dist/src/services/workflow/engine.js.map +1 -1
- package/dist/src/services/workflow/store.d.ts.map +1 -1
- package/dist/src/services/workflow/store.js +60 -4
- package/dist/src/services/workflow/store.js.map +1 -1
- package/dist/src/services/write-guards.d.ts +27 -1
- package/dist/src/services/write-guards.d.ts.map +1 -1
- package/dist/src/services/write-guards.js +39 -9
- package/dist/src/services/write-guards.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +1 -0
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +1 -0
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +3 -0
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/files.d.ts +2 -0
- package/dist/src/storage/providers/postgres-kysely/methods/files.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/files.js +34 -2
- package/dist/src/storage/providers/postgres-kysely/methods/files.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrations/0039_storage_file_utf8_verified.sql +19 -0
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +2 -1
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/apps.js +33 -28
- package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts +1 -12
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +28 -135
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/storage-files.d.ts +38 -0
- package/dist/src/storage/providers/sqlite/methods/storage-files.d.ts.map +1 -0
- package/dist/src/storage/providers/sqlite/methods/storage-files.js +109 -0
- package/dist/src/storage/providers/sqlite/methods/storage-files.js.map +1 -0
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +134 -130
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts +11 -0
- package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/file.repository.d.ts +13 -0
- package/dist/src/storage/repositories/file.repository.d.ts.map +1 -1
- package/dist/src/storage/types/commerce.d.ts +6 -0
- package/dist/src/storage/types/commerce.d.ts.map +1 -1
- package/dist/src/utils/agent-footer.d.ts.map +1 -1
- package/dist/src/utils/agent-footer.js +1 -0
- package/dist/src/utils/agent-footer.js.map +1 -1
- package/dist/src/utils/app-content-type.d.ts +57 -3
- package/dist/src/utils/app-content-type.d.ts.map +1 -1
- package/dist/src/utils/app-content-type.js +81 -12
- package/dist/src/utils/app-content-type.js.map +1 -1
- package/dist/src/utils/env-config/sections-features.d.ts.map +1 -1
- package/dist/src/utils/env-config/sections-features.js +9 -3
- package/dist/src/utils/env-config/sections-features.js.map +1 -1
- package/dist/src/utils/file-download-headers.d.ts +5 -3
- package/dist/src/utils/file-download-headers.d.ts.map +1 -1
- package/dist/src/utils/file-download-headers.js +18 -5
- package/dist/src/utils/file-download-headers.js.map +1 -1
- package/dist/src/utils/http-range.d.ts +151 -0
- package/dist/src/utils/http-range.d.ts.map +1 -0
- package/dist/src/utils/http-range.js +190 -0
- package/dist/src/utils/http-range.js.map +1 -0
- package/dist/src/utils/page-head.d.ts +5 -0
- package/dist/src/utils/page-head.d.ts.map +1 -1
- package/dist/src/utils/page-head.js +10 -1
- package/dist/src/utils/page-head.js.map +1 -1
- package/dist/src/utils/reserved-keys.d.ts +4 -1
- package/dist/src/utils/reserved-keys.d.ts.map +1 -1
- package/dist/src/utils/reserved-keys.js +4 -1
- package/dist/src/utils/reserved-keys.js.map +1 -1
- package/dist/static/sdk-libs/datapackage/index.js +336 -0
- package/dist/static/sdk-libs/dist/aimeat-datapackage.js +305 -0
- package/package.json +10 -2
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file goose-acp.ts
|
|
3
|
+
* @description An ACP client for a goose agent, over stdio, that answers the agent's callbacks.
|
|
4
|
+
*
|
|
5
|
+
* The callbacks are why this is not thirty lines. ACP is bidirectional: the agent calls BACK
|
|
6
|
+
* mid-turn to ask permission for a tool call or to read a file, and a client that never answers
|
|
7
|
+
* leaves the turn hanging forever with no error and no output.
|
|
8
|
+
*
|
|
9
|
+
* STDIO, NOT HTTP, and that was measured rather than chosen for taste. `goose serve` exposes the
|
|
10
|
+
* same protocol over HTTP and its transport works for requests — initialize, session/new, even a
|
|
11
|
+
* clean -32601 for an unknown method — but it never delivers a single `session/update`
|
|
12
|
+
* notification, so a turn produces nothing and hangs. The identical prompt over `goose acp` on
|
|
13
|
+
* stdio answers in 5.2 s with agent_message_chunk and a stopReason. Measured on goose 1.45.0 and
|
|
14
|
+
* 1.46.0, with the model call visible on the provider's side in both cases.
|
|
15
|
+
*
|
|
16
|
+
* Stdio is also the better fit here: no port, no shared secret, no loopback surface to protect,
|
|
17
|
+
* and the lifetime of the agent is a plain child process.
|
|
18
|
+
* @structure
|
|
19
|
+
* - GooseAcpClient — start(), newSession(), prompt(), cancel(), close()
|
|
20
|
+
* - SessionUpdate — what a turn emits, normalised for the chat surface
|
|
21
|
+
* @usage
|
|
22
|
+
* const acp = await GooseAcpClient.start(config);
|
|
23
|
+
* const sessionId = await acp.newSession({ mcpServers: [aimeatMcpServer(base, token)] });
|
|
24
|
+
* for await (const u of acp.prompt(sessionId, 'build me a pong game')) { … }
|
|
25
|
+
* @version-history
|
|
26
|
+
* v2.0.1 — 2026-08-16 — Listen for the child's `error` event. A binary that cannot be spawned
|
|
27
|
+
* emits `error` rather than `exit`, and an unlistened `error` is thrown: one wrong character in
|
|
28
|
+
* an operator's path took the whole node down on the first person who said hello, and the turn
|
|
29
|
+
* waited out the 30 s handshake timeout first.
|
|
30
|
+
* v2.0.0 — 2026-08-16 — Stdio replaces HTTP. `goose serve` delivers no session/update over its
|
|
31
|
+
* HTTP transport, which makes every turn silent; `goose acp` on stdio delivers them and the
|
|
32
|
+
* same turn completes in seconds. The dispatch, the callback answers and the update
|
|
33
|
+
* normalisation are unchanged — only the pipe moved.
|
|
34
|
+
* v1.0.0 — 2026-08-16 — Initial, over `goose serve` HTTP.
|
|
35
|
+
*/
|
|
36
|
+
import { spawn } from 'node:child_process';
|
|
37
|
+
import { EventEmitter } from 'node:events';
|
|
38
|
+
import { logger } from '../utils/logger.js';
|
|
39
|
+
/** How long one turn may run. Turns take minutes when an agent is building something. */
|
|
40
|
+
const TURN_TIMEOUT_MS = 15 * 60_000;
|
|
41
|
+
/** How long the handshake may take before the child is considered broken. */
|
|
42
|
+
const HANDSHAKE_TIMEOUT_MS = 30_000;
|
|
43
|
+
export class GooseAcpClient {
|
|
44
|
+
child;
|
|
45
|
+
nextId = 100;
|
|
46
|
+
pending = new Map();
|
|
47
|
+
bus = new EventEmitter();
|
|
48
|
+
buffer = '';
|
|
49
|
+
closed = false;
|
|
50
|
+
constructor(child) {
|
|
51
|
+
this.child = child;
|
|
52
|
+
// One listener per in-flight turn; the default of 10 is too few once a handful of people are
|
|
53
|
+
// talking at once, and the warning it prints is not a real leak.
|
|
54
|
+
this.bus.setMaxListeners(256);
|
|
55
|
+
child.stdout.setEncoding('utf8');
|
|
56
|
+
child.stdout.on('data', (chunk) => this.onData(chunk));
|
|
57
|
+
child.stderr.setEncoding('utf8');
|
|
58
|
+
child.stderr.on('data', (d) => {
|
|
59
|
+
const line = d.trim();
|
|
60
|
+
if (line)
|
|
61
|
+
logger.warn(`[goose] ${line.slice(0, 500)}`);
|
|
62
|
+
});
|
|
63
|
+
child.on('exit', (code, signal) => {
|
|
64
|
+
this.closed = true;
|
|
65
|
+
this.failAllPending(new Error(`goose exited (code ${code}, signal ${signal})`));
|
|
66
|
+
logger.warn(`[goose] agent process exited: code ${code}, signal ${signal}`);
|
|
67
|
+
});
|
|
68
|
+
// A child process that cannot be spawned at all — a path that names no binary — emits `error`
|
|
69
|
+
// rather than `exit`, and an `error` nobody listens for is thrown. Without this line one
|
|
70
|
+
// wrong character in the operator's configuration takes the whole node down on the first
|
|
71
|
+
// person who says hello, instead of failing that one turn with the reason.
|
|
72
|
+
child.on('error', (err) => {
|
|
73
|
+
this.closed = true;
|
|
74
|
+
this.failAllPending(new Error(`goose could not be started: ${err.message}`));
|
|
75
|
+
logger.warn(`[goose] agent process could not be started: ${err.message}`);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Start the agent and shake hands.
|
|
80
|
+
*
|
|
81
|
+
* Client capabilities are declared HONESTLY: no filesystem, no terminal. The node has neither to
|
|
82
|
+
* offer a hosted agent, and claiming otherwise then failing the callback is worse than saying no
|
|
83
|
+
* up front — the agent plans around what the client says it can do.
|
|
84
|
+
*/
|
|
85
|
+
static async start(config) {
|
|
86
|
+
const bin = config.gooseBin || 'goose';
|
|
87
|
+
const env = { ...process.env };
|
|
88
|
+
if (config.goosePathRoot)
|
|
89
|
+
env.GOOSE_PATH_ROOT = config.goosePathRoot;
|
|
90
|
+
// Every model call this agent makes is billed to whoever owns this key. The node decides who
|
|
91
|
+
// may spend it before a turn is ever started; goose only sees the key.
|
|
92
|
+
if (config.gooseProviderApiKey)
|
|
93
|
+
env.OPENROUTER_API_KEY = config.gooseProviderApiKey;
|
|
94
|
+
const child = spawn(bin, ['acp'], { stdio: ['pipe', 'pipe', 'pipe'], env });
|
|
95
|
+
const client = new GooseAcpClient(child);
|
|
96
|
+
const info = await client.call('initialize', {
|
|
97
|
+
protocolVersion: 1,
|
|
98
|
+
clientCapabilities: { fs: { readTextFile: false, writeTextFile: false } },
|
|
99
|
+
}, HANDSHAKE_TIMEOUT_MS);
|
|
100
|
+
logger.info(`[goose] agent ready: ${info.agentInfo?.name ?? 'goose'} ${info.agentInfo?.version ?? ''}`);
|
|
101
|
+
return client;
|
|
102
|
+
}
|
|
103
|
+
/** Split the stream into lines; every line is one JSON-RPC message. */
|
|
104
|
+
onData(chunk) {
|
|
105
|
+
this.buffer += chunk;
|
|
106
|
+
let cut;
|
|
107
|
+
while ((cut = this.buffer.indexOf('\n')) !== -1) {
|
|
108
|
+
const line = this.buffer.slice(0, cut).trim();
|
|
109
|
+
this.buffer = this.buffer.slice(cut + 1);
|
|
110
|
+
if (!line)
|
|
111
|
+
continue;
|
|
112
|
+
try {
|
|
113
|
+
this.dispatch(JSON.parse(line));
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// goose writes the occasional human line to stdout; it is not a protocol error.
|
|
117
|
+
logger.info(`[goose] ${line.slice(0, 300)}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** A reply to us, a request FROM the agent that must be answered, or a notification. */
|
|
122
|
+
dispatch(msg) {
|
|
123
|
+
if (msg.id !== undefined && !msg.method) {
|
|
124
|
+
const waiter = this.pending.get(msg.id);
|
|
125
|
+
if (!waiter)
|
|
126
|
+
return;
|
|
127
|
+
this.pending.delete(msg.id);
|
|
128
|
+
if (msg.error) {
|
|
129
|
+
const detail = msg.error.data ? ` (${JSON.stringify(msg.error.data)})` : '';
|
|
130
|
+
waiter.reject(new Error(`${msg.error.code}: ${msg.error.message}${detail}`));
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
waiter.resolve(msg.result);
|
|
134
|
+
}
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (msg.method && msg.id !== undefined) {
|
|
138
|
+
this.answerAgentRequest(msg);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (msg.method === 'session/update') {
|
|
142
|
+
const params = msg.params;
|
|
143
|
+
if (params?.sessionId)
|
|
144
|
+
this.bus.emit(`update:${params.sessionId}`, params.update ?? {});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Answer the agent's callbacks.
|
|
149
|
+
*
|
|
150
|
+
* Permission is granted, because the node already decided what this session may do: the session's
|
|
151
|
+
* MCP token carries the owner's scopes and the tool surface refuses what it must. A second
|
|
152
|
+
* yes/no here would be a permission model in a place that cannot see the identity.
|
|
153
|
+
*
|
|
154
|
+
* Filesystem and terminal are refused, matching what start() declared.
|
|
155
|
+
*/
|
|
156
|
+
answerAgentRequest(msg) {
|
|
157
|
+
const method = msg.method;
|
|
158
|
+
if (method === 'session/request_permission') {
|
|
159
|
+
const opts = msg.params?.options ?? [];
|
|
160
|
+
const allow = opts.find((o) => o.kind === 'allow_always')
|
|
161
|
+
?? opts.find((o) => o.kind === 'allow_once')
|
|
162
|
+
?? opts[0];
|
|
163
|
+
this.write({
|
|
164
|
+
jsonrpc: '2.0', id: msg.id,
|
|
165
|
+
result: { outcome: { outcome: 'selected', optionId: allow?.optionId ?? 'allow' } },
|
|
166
|
+
});
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
this.write({
|
|
170
|
+
jsonrpc: '2.0', id: msg.id,
|
|
171
|
+
error: { code: -32601, message: 'This client has no filesystem or terminal.' },
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
write(msg) {
|
|
175
|
+
if (this.closed)
|
|
176
|
+
return;
|
|
177
|
+
this.child.stdin.write(`${JSON.stringify(msg)}\n`);
|
|
178
|
+
}
|
|
179
|
+
failAllPending(err) {
|
|
180
|
+
for (const [, waiter] of this.pending)
|
|
181
|
+
waiter.reject(err);
|
|
182
|
+
this.pending.clear();
|
|
183
|
+
}
|
|
184
|
+
call(method, params, timeoutMs = 60_000) {
|
|
185
|
+
if (this.closed)
|
|
186
|
+
return Promise.reject(new Error('goose agent is not running'));
|
|
187
|
+
const id = this.nextId++;
|
|
188
|
+
const done = new Promise((resolve, reject) => {
|
|
189
|
+
this.pending.set(id, { resolve, reject });
|
|
190
|
+
setTimeout(() => {
|
|
191
|
+
if (this.pending.delete(id))
|
|
192
|
+
reject(new Error(`goose ${method} timed out after ${timeoutMs}ms`));
|
|
193
|
+
}, timeoutMs).unref?.();
|
|
194
|
+
});
|
|
195
|
+
this.write({ jsonrpc: '2.0', id, method, params });
|
|
196
|
+
return done;
|
|
197
|
+
}
|
|
198
|
+
/** Start a session with its own MCP servers. `cwd` is required by the protocol and unused here. */
|
|
199
|
+
async newSession(opts) {
|
|
200
|
+
const result = await this.call('session/new', {
|
|
201
|
+
cwd: opts.cwd ?? process.cwd(),
|
|
202
|
+
mcpServers: opts.mcpServers,
|
|
203
|
+
});
|
|
204
|
+
// A session is created even when an MCP server failed to load, so the failure shows only in
|
|
205
|
+
// this list. Reading it is the difference between "the chat has its tools" and "the chat
|
|
206
|
+
// exists"; measured against a node that was down, where the session came back fine and empty.
|
|
207
|
+
for (const ext of result.extensionLoadResults ?? []) {
|
|
208
|
+
if (!ext.success)
|
|
209
|
+
logger.warn(`[goose] extension "${ext.name}" failed to load: ${ext.error ?? 'unknown'}`);
|
|
210
|
+
}
|
|
211
|
+
if (!result.sessionId)
|
|
212
|
+
throw new Error('goose session/new returned no sessionId');
|
|
213
|
+
return result.sessionId;
|
|
214
|
+
}
|
|
215
|
+
/** Run one turn, yielding what happens as it happens. */
|
|
216
|
+
async *prompt(sessionId, text) {
|
|
217
|
+
const queue = [];
|
|
218
|
+
let wake = null;
|
|
219
|
+
const push = (u) => { queue.push(u); wake?.(); wake = null; };
|
|
220
|
+
const onUpdate = (update) => push(normalise(update));
|
|
221
|
+
this.bus.on(`update:${sessionId}`, onUpdate);
|
|
222
|
+
void this.call('session/prompt', { sessionId, prompt: [{ type: 'text', text }] }, TURN_TIMEOUT_MS)
|
|
223
|
+
.then((r) => {
|
|
224
|
+
const res = r;
|
|
225
|
+
push({ kind: 'done', stopReason: String(res?.stopReason ?? 'end_turn'), tokens: res?.usage?.totalTokens });
|
|
226
|
+
})
|
|
227
|
+
.catch((e) => push({ kind: 'error', message: e.message }));
|
|
228
|
+
try {
|
|
229
|
+
for (;;) {
|
|
230
|
+
if (queue.length === 0)
|
|
231
|
+
await new Promise((resolve) => { wake = resolve; });
|
|
232
|
+
const next = queue.shift();
|
|
233
|
+
if (!next)
|
|
234
|
+
continue;
|
|
235
|
+
yield next;
|
|
236
|
+
if (next.kind === 'done' || next.kind === 'error')
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
finally {
|
|
241
|
+
this.bus.off(`update:${sessionId}`, onUpdate);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/** Ask the agent to stop the current turn. */
|
|
245
|
+
async cancel(sessionId) {
|
|
246
|
+
await this.call('session/cancel', { sessionId }, 15_000).catch((e) => {
|
|
247
|
+
logger.warn(`[goose] cancel failed: ${e.message}`);
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
/** Stop the agent. SIGTERM first; a child that ignores it is killed after a grace period. */
|
|
251
|
+
close() {
|
|
252
|
+
if (this.closed)
|
|
253
|
+
return;
|
|
254
|
+
this.closed = true;
|
|
255
|
+
this.failAllPending(new Error('goose client closed'));
|
|
256
|
+
try {
|
|
257
|
+
this.child.kill('SIGTERM');
|
|
258
|
+
setTimeout(() => {
|
|
259
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- the child is already gone, which is the outcome this line wanted
|
|
260
|
+
try {
|
|
261
|
+
this.child.kill('SIGKILL');
|
|
262
|
+
}
|
|
263
|
+
catch { /* exited on SIGTERM */ }
|
|
264
|
+
}, 5_000).unref?.();
|
|
265
|
+
}
|
|
266
|
+
catch (err) {
|
|
267
|
+
logger.warn(`[goose] could not stop the agent: ${String(err)}`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/** Flatten one session/update into something the chat surface can render without knowing ACP. */
|
|
272
|
+
function normalise(update) {
|
|
273
|
+
const kind = String(update.sessionUpdate ?? 'unknown');
|
|
274
|
+
const content = update.content;
|
|
275
|
+
switch (kind) {
|
|
276
|
+
case 'agent_message_chunk':
|
|
277
|
+
return { kind: 'text', text: content?.text ?? '' };
|
|
278
|
+
case 'agent_thought_chunk':
|
|
279
|
+
return { kind: 'thought', text: content?.text ?? '' };
|
|
280
|
+
case 'tool_call':
|
|
281
|
+
case 'tool_call_update':
|
|
282
|
+
return {
|
|
283
|
+
kind: 'tool_call',
|
|
284
|
+
id: String(update.toolCallId ?? ''),
|
|
285
|
+
title: String(update.title ?? ''),
|
|
286
|
+
status: String(update.status ?? 'pending'),
|
|
287
|
+
raw: update,
|
|
288
|
+
};
|
|
289
|
+
default:
|
|
290
|
+
// usage_update, session_info_update, available_commands_update and whatever goose adds
|
|
291
|
+
// next. Kept rather than dropped: the chat shows spend and the work log from these.
|
|
292
|
+
return { kind: 'other', type: kind, raw: update };
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/** The aimeat MCP server, as one session's tool surface, carrying that person's own agent token. */
|
|
296
|
+
export function aimeatMcpServer(baseUrl, agentToken) {
|
|
297
|
+
return {
|
|
298
|
+
name: 'aimeat',
|
|
299
|
+
type: 'http',
|
|
300
|
+
url: `${baseUrl.replace(/\/+$/, '')}/v1/mcp`,
|
|
301
|
+
headers: [{ name: 'Authorization', value: `Bearer ${agentToken}` }],
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=goose-acp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goose-acp.js","sourceRoot":"","sources":["../../../src/services/goose-acp.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,7 +115,7 @@ their AI agents, over REST and MCP.
|
|
|
115
115
|
## For AI agents
|
|
116
116
|
|
|
117
117
|
- Machine-readable getting-started: \`GET ${b}/?format=json\`
|
|
118
|
-
- Full agent manual: \`GET ${b}/llms.txt\`
|
|
118
|
+
- Full agent manual: \`GET ${b}/llms-full.txt\` (index: \`GET ${b}/llms.txt\`)
|
|
119
119
|
- Register (RFC 8628 device flow, owner-approved): \`GET ${b}/auth.md\`
|
|
120
120
|
- OpenAPI contract: \`GET ${b}/v1/spec\` · MCP server: \`POST ${b}/v1/mcp\`
|
|
121
121
|
- Public skills index: \`GET ${b}/.well-known/agent-skills/index.json\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-negotiation.js","sourceRoot":"","sources":["../../../src/services/markdown-negotiation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"markdown-negotiation.js","sourceRoot":"","sources":["../../../src/services/markdown-negotiation.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,25 @@ export interface OpenRouterModel {
|
|
|
37
37
|
/** What the model PRODUCES (`text`, `transcription`, `speech`, `image`). */
|
|
38
38
|
output_modalities?: string[];
|
|
39
39
|
}
|
|
40
|
+
/** What an image generation returns: the bytes, what they are, and what the provider charged. */
|
|
41
|
+
export interface ImageGenerationResult {
|
|
42
|
+
data: Buffer;
|
|
43
|
+
mime: string;
|
|
44
|
+
model: string;
|
|
45
|
+
/** Provider-reported cost in USD when it says; undefined otherwise, never estimated. */
|
|
46
|
+
costUsd?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Generate an image, OpenAI-compatible (`POST {baseUrl}/images/generations`).
|
|
50
|
+
*
|
|
51
|
+
* The retry is not defensive padding. Some providers' moderation throws false positives on ordinary
|
|
52
|
+
* prompts and the SAME prompt passes on the next attempt, which scripts/gen_image.py has been
|
|
53
|
+
* working around since it was written. Only a moderation refusal is retried; every other failure is
|
|
54
|
+
* reported at once, because retrying a real error just makes the person wait longer for it.
|
|
55
|
+
*/
|
|
56
|
+
export declare function generateImage(apiKey: string | undefined, model: string, prompt: string, baseUrl?: string, opts?: {
|
|
57
|
+
size?: string;
|
|
58
|
+
}): Promise<ImageGenerationResult>;
|
|
40
59
|
/**
|
|
41
60
|
* Which slice of a provider's catalogue to list.
|
|
42
61
|
*
|
|
@@ -44,7 +63,7 @@ export interface OpenRouterModel {
|
|
|
44
63
|
* OpenRouter's `output_modalities` filter — they are NOT in the default listing, so asking for the
|
|
45
64
|
* default and filtering client-side returns nothing.
|
|
46
65
|
*/
|
|
47
|
-
export type ModelModality = 'chat' | 'transcription' | 'speech';
|
|
66
|
+
export type ModelModality = 'chat' | 'transcription' | 'speech' | 'image';
|
|
48
67
|
/** Audio bytes handed to transcribe(). `filename` only decides the multipart part name the provider
|
|
49
68
|
* sees; `mime` is what actually tells it how to decode. */
|
|
50
69
|
export interface TranscriptionAudio {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/services/openrouter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/services/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
* - transcribe(apiKey, model, audio, baseUrl?, opts?) — call audio transcriptions (STT)
|
|
7
7
|
* - listModels(apiKey, baseUrl?, modality?) — fetch available models
|
|
8
8
|
* @version-history
|
|
9
|
+
* v1.6.0 — 2026-08-16 — generateImage(): POST {baseUrl}/images/generations, and 'image' joins
|
|
10
|
+
* ModelModality so the picker can list image models the same way it lists whisper ones. The
|
|
11
|
+
* three-attempt retry is not padding: some providers' moderation throws false positives and the
|
|
12
|
+
* SAME prompt passes on the next attempt, which scripts/gen_image.py has worked around since it
|
|
13
|
+
* was written. Only moderation is retried; every other failure is reported at once, because
|
|
14
|
+
* retrying a real error only makes the person wait longer for it.
|
|
9
15
|
* v1.5.0 — 2026-08-01 — Speech-to-text: transcribe() posts multipart/form-data to
|
|
10
16
|
* `${baseUrl}/audio/transcriptions` (OpenAI-compatible, so it also reaches a local whisper.cpp /
|
|
11
17
|
* faster-whisper server), and listModels() takes a modality. The modality is not cosmetic:
|
|
@@ -30,6 +36,66 @@
|
|
|
30
36
|
* dropdown for custom providers). `owned_by` is carried into `description` when present.
|
|
31
37
|
*/
|
|
32
38
|
import { logger } from '../utils/logger.js';
|
|
39
|
+
/** How many times a moderation refusal is retried before the model is given up on. */
|
|
40
|
+
const IMAGE_MODERATION_ATTEMPTS = 3;
|
|
41
|
+
/**
|
|
42
|
+
* Generate an image, OpenAI-compatible (`POST {baseUrl}/images/generations`).
|
|
43
|
+
*
|
|
44
|
+
* The retry is not defensive padding. Some providers' moderation throws false positives on ordinary
|
|
45
|
+
* prompts and the SAME prompt passes on the next attempt, which scripts/gen_image.py has been
|
|
46
|
+
* working around since it was written. Only a moderation refusal is retried; every other failure is
|
|
47
|
+
* reported at once, because retrying a real error just makes the person wait longer for it.
|
|
48
|
+
*/
|
|
49
|
+
export async function generateImage(apiKey, model, prompt, baseUrl = OPENROUTER_BASE, opts) {
|
|
50
|
+
const controller = new AbortController();
|
|
51
|
+
const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
52
|
+
logger.info(`[openrouter] image: model=${model}, size=${opts?.size ?? 'default'}`);
|
|
53
|
+
try {
|
|
54
|
+
let lastErr = null;
|
|
55
|
+
for (let attempt = 1; attempt <= IMAGE_MODERATION_ATTEMPTS; attempt++) {
|
|
56
|
+
const resp = await fetch(`${baseUrl}/images/generations`, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers: { ...providerHeaders(apiKey, baseUrl), 'Content-Type': 'application/json' },
|
|
59
|
+
body: JSON.stringify({ model, prompt, ...(opts?.size ? { size: opts.size } : {}), usage: { include: true } }),
|
|
60
|
+
signal: controller.signal,
|
|
61
|
+
});
|
|
62
|
+
if (!resp.ok) {
|
|
63
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- the body only enriches an error already being reported; an unreadable body is honestly reported as empty
|
|
64
|
+
const body = await resp.text().catch(() => '');
|
|
65
|
+
const err = new Error(`OpenRouter ${resp.status}: ${body}`);
|
|
66
|
+
err.status = resp.status;
|
|
67
|
+
if (!/moderat/i.test(body) || attempt === IMAGE_MODERATION_ATTEMPTS)
|
|
68
|
+
throw err;
|
|
69
|
+
lastErr = err;
|
|
70
|
+
logger.info(`[openrouter] image: moderation refusal on attempt ${attempt}, retrying`);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const json = await resp.json();
|
|
74
|
+
if (json.error?.message)
|
|
75
|
+
throw new Error(`OpenRouter: ${json.error.message}`);
|
|
76
|
+
const first = json.data?.[0];
|
|
77
|
+
// Providers answer with either a base64 field or a data: URL carrying the same bytes.
|
|
78
|
+
const b64 = first?.b64_json
|
|
79
|
+
?? (first?.url?.startsWith('data:') ? first.url.split('base64,', 2)[1] : undefined);
|
|
80
|
+
if (!b64)
|
|
81
|
+
throw new Error('OpenRouter returned no image data.');
|
|
82
|
+
const data = Buffer.from(b64, 'base64');
|
|
83
|
+
// Sniff rather than trust: the response does not say which format came back, and a wrong
|
|
84
|
+
// Content-Type on the stored file is what makes an image fail to render later.
|
|
85
|
+
const isPng = data.length > 8 && data[0] === 0x89 && data[1] === 0x50 && data[2] === 0x4e && data[3] === 0x47;
|
|
86
|
+
return {
|
|
87
|
+
data,
|
|
88
|
+
mime: isPng ? 'image/png' : 'image/jpeg',
|
|
89
|
+
model,
|
|
90
|
+
costUsd: typeof json.usage?.cost === 'number' ? json.usage.cost : undefined,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
throw lastErr ?? new Error('OpenRouter: image generation failed.');
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
clearTimeout(timeout);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
33
99
|
/**
|
|
34
100
|
* Where each provider lives when the owner has not overridden it.
|
|
35
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/services/openrouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/services/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ Wallet: You share your owner's wallet ({{daily_allowance}} morsels/day). All spe
|
|
|
52
52
|
== API REFERENCE ==
|
|
53
53
|
|
|
54
54
|
Full API documentation with request/response examples is available at:
|
|
55
|
-
GET /llms.txt
|
|
55
|
+
GET /llms-full.txt
|
|
56
56
|
Read this BEFORE you start building anything. It contains every endpoint, parameter, and response format you need.
|
|
57
57
|
|
|
58
58
|
== BOOT SEQUENCE / STARTUP CHECKLIST ==
|
|
@@ -88,7 +88,7 @@ STEP 3: Complete Hello Integration.
|
|
|
88
88
|
- Register the actual owner-facing slash commands you can handle at agents.{{agent_name}}.commands. Use a flat array of { name, description, category }. Do not copy sample commands or list internal MCP tools as message commands.
|
|
89
89
|
- Publish actual runtime/config artifacts under agents.config.*. If you only use aimeat connect serve, describe that connector accurately; do not invent a watchdog file.
|
|
90
90
|
- If the owner assigned shared tags in Data Access, use agents.tag.<tag>.* keys for same-owner handoff notes, project state, queues, and team context. Write shared entries with visibility "owner" and tags ["<tag>"], then list with owner_scope=true plus prefix agents.tag.<tag>. when coordinating with sibling agents.
|
|
91
|
-
- If you produced research, docs, datasets, or reusable knowledge, create or update a real knowledge package using /llms.txt, POST /v1/knowledge/import, aimeat_knowledge_contribute, and aimeat_storage_upload as appropriate. Do not use a placeholder research.* key as a substitute.
|
|
91
|
+
- If you produced research, docs, datasets, or reusable knowledge, create or update a real knowledge package using /llms-full.txt, POST /v1/knowledge/import, aimeat_knowledge_contribute, and aimeat_storage_upload as appropriate. Do not use a placeholder research.* key as a substitute.
|
|
92
92
|
|
|
93
93
|
STEP 4: Load EXTEND modules.
|
|
94
94
|
GET /v1/agents/me/handbook/work
|
|
@@ -265,11 +265,11 @@ PHASE 2 -- EXECUTE (active tasks)
|
|
|
265
265
|
== AIMEAT-FIRST PRINCIPLE ==
|
|
266
266
|
|
|
267
267
|
Your todo plan MUST prefer AIMEAT's native systems. This is a rule, not a suggestion.
|
|
268
|
-
Full API docs for all AIMEAT tools are at GET /llms.txt -- read it when planning your approach.
|
|
268
|
+
Full API docs for all AIMEAT tools are at GET /llms-full.txt -- read it when planning your approach.
|
|
269
269
|
|
|
270
270
|
USE AIMEAT (environment: "aimeat") when possible:
|
|
271
271
|
- Extensions: server-side WASM scripts with schedules (zero tokens per run, survives agent disconnect)
|
|
272
|
-
Install via POST /v1/extensions, schedule with cron. See /llms.txt for full API.
|
|
272
|
+
Install via POST /v1/extensions, schedule with cron. See /llms-full.txt for full API.
|
|
273
273
|
- Memory: persistent key-value storage (ctx.memory.set/get in extensions, /v1/memory via API)
|
|
274
274
|
- Cortex: browser-side UI components that read extension/memory data and render it
|
|
275
275
|
Register via POST /v1/cortex/register. Cortex runs in the owner's browser, no agent tokens.
|
|
@@ -1,21 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file src/services/scheduler-extension-job.ts
|
|
3
|
-
* @description Scheduled `extension` job executor:
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* @description Scheduled `extension` job executor: turns a ScheduledJobRecord into one unattended
|
|
4
|
+
* extension run. The run itself — resolving the extension and action, the owner fence, secrets,
|
|
5
|
+
* the instance, the sandbox context — is services/extension-system-run.ts, shared with the
|
|
6
|
+
* workflow engine's `extension` step.
|
|
6
7
|
* @version-history
|
|
7
8
|
* v1.0.0 — 2026-07-13 — Extracted from scheduler.ts (max-file-lines)
|
|
8
9
|
* v1.1.0 — 2026-08-10 — Context comes from buildExtensionCtx instead of 174 hand-written lines.
|
|
9
10
|
* Fixes what the copy had been missing: memory writes now go through the
|
|
10
11
|
* size and key-count limits, and outbound calls through safeFetch.
|
|
12
|
+
* v1.2.0 — 2026-08-15 — TARGET-063 A2: the scheduled road gets `ctx.files`, writing into the
|
|
13
|
+
* INSTALLER's namespace. It was the only road without it, so an extension on
|
|
14
|
+
* a clock could hold memory records and reach the internet and could not put
|
|
15
|
+
* one byte into storage — "produce a file on a schedule" did not exist, and
|
|
16
|
+
* the reason was a missing argument rather than anything about clocks. The
|
|
17
|
+
* namespace is the installer's GHII on purpose: `scheduler@<node>` owns no
|
|
18
|
+
* storage, and a package written under it would sit at a different permanent
|
|
19
|
+
* URL than the same package written from the app or by an agent.
|
|
20
|
+
* v1.3.0 — 2026-08-15 — TARGET-063 A3: the body moved to services/extension-system-run.ts so the
|
|
21
|
+
* workflow engine's new `extension` step runs the identical sequence rather
|
|
22
|
+
* than growing a second copy of it. Two things this road gains on the way:
|
|
23
|
+
* the owner fence is now re-checked at RUN time (it was create-time only, and
|
|
24
|
+
* a delete-and-reinstall by another owner outlives a create-time gate), and
|
|
25
|
+
* the sandbox limits go through sandboxLimits() like every other road — the
|
|
26
|
+
* ceiling was already applied at install (routes/extensions/manifest.ts), so
|
|
27
|
+
* this only adds the small floors that keep a sandbox large enough to start.
|
|
28
|
+
* v1.3.1 — 2026-08-16 — The owner scope reading it needs is now WRITTEN: no install door stamped it
|
|
29
|
+
* on a manifest-declared job, so from v1.3.0 every scheduled extension on the
|
|
30
|
+
* node refused before it started. See services/extension-schedules.ts, which
|
|
31
|
+
* also backfills the jobs stored before the stamp existed. The refusal names
|
|
32
|
+
* the repair rather than only the missing field.
|
|
11
33
|
*/
|
|
12
34
|
import type { AimeatConfig } from '../config.js';
|
|
13
35
|
import type { Storage, ScheduledJobRecord } from '../storage/interface.js';
|
|
14
36
|
import type { EmailService } from './email.js';
|
|
15
37
|
/**
|
|
16
|
-
* Execute a scheduled `extension` job
|
|
17
|
-
*
|
|
18
|
-
*
|
|
38
|
+
* Execute a scheduled `extension` job and return the tracked memory reads/writes for the run log.
|
|
39
|
+
*
|
|
40
|
+
* Every refusal throws: the scheduler records a thrown error as `lastRunResult: 'error'`, leaves the
|
|
41
|
+
* run count alone and notifies the owner, while any normal return is recorded as a successful run.
|
|
19
42
|
*/
|
|
20
43
|
export declare function runExtensionJob(storage: Storage, config: AimeatConfig, emailService: EmailService | undefined, job: ScheduledJobRecord): Promise<{
|
|
21
44
|
reads: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler-extension-job.d.ts","sourceRoot":"","sources":["../../../src/services/scheduler-extension-job.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scheduler-extension-job.d.ts","sourceRoot":"","sources":["../../../src/services/scheduler-extension-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgChD"}
|