aimeat 3.2.0 → 3.3.1
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/README.md +1 -1
- 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 +50 -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.d.ts +1 -1
- package/dist/scripts/check-ai-disclosure.d.ts.map +1 -1
- package/dist/scripts/check-ai-disclosure.js +30 -3
- 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/ai-gate.d.ts +25 -0
- package/dist/src/auth/ai-gate.d.ts.map +1 -0
- package/dist/src/auth/ai-gate.js +21 -0
- package/dist/src/auth/ai-gate.js.map +1 -0
- 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-agent.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-agent.js +38 -9
- package/dist/src/cli/connect/tool-call-defs-agent.js.map +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-apps.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-apps.js +114 -25
- package/dist/src/cli/connect/tool-call-defs-apps.js.map +1 -1
- 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 +179 -26
- package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-organism.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-organism.js +20 -3
- package/dist/src/cli/connect/tool-call-defs-organism.js.map +1 -1
- package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call.js +52 -1
- 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 +1808 -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 +55 -16
- 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/llm-proxy.d.ts +34 -0
- package/dist/src/routes/llm-proxy.d.ts.map +1 -0
- package/dist/src/routes/llm-proxy.js +258 -0
- package/dist/src/routes/llm-proxy.js.map +1 -0
- 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 +22 -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 +102 -0
- package/dist/src/services/ai-completion.d.ts.map +1 -1
- package/dist/src/services/ai-completion.js +131 -67
- 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 +43 -1
- package/dist/src/services/openrouter.d.ts.map +1 -1
- package/dist/src/services/openrouter.js +98 -1
- 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/methods/wallet.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/wallet.js +23 -4
- package/dist/src/storage/providers/postgres-kysely/methods/wallet.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/methods/work.d.ts +5 -0
- package/dist/src/storage/providers/sqlite/methods/work.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/work.js +34 -22
- package/dist/src/storage/providers/sqlite/methods/work.js.map +1 -1
- 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":"AA6BA;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,KAAK,eAAe,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,KAAK,WAAW,CAAC;AACxE,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,GAAa,EAAE,QAAgB,EAAE,YAAqB;IACjF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnB,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,2FAA2F;AAC3F,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,cAAc,GAA2B;IAC7C,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;IACjD,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IACzD,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;CACpE,CAAC;AAEF,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,CAAC;SACL,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;SACD,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;SACD,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;SACrF,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,yCAAyC;IACzC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8DAA8D,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACtC,2EAA2E;IAC3E,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8DAA8D,EAC1E,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAW,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAc,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IACL,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,uCAAuC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,IAAc,CAAC,IAAI,CAAC,CAAC;IAC9G,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mCAAmC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAc,CAAC,GAAG,CAAC,CAAC;IACxG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mCAAmC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,IAAc,CAAC,IAAI,CAAC,CAAC;IACtG,mBAAmB;IACnB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,sCAAsC,EAClD,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAc,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,IAAc,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mFAAmF,EAAE,MAAM,CAAC,CAAC;IAC3G,2DAA2D;IAC3D,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,2DAA2D;IAC3D,OAAO,CAAC;SACL,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SAClD,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,GAAG,IAAI,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAoB;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,OAAO,mBAAmB,MAAM,CAAC,MAAM;;uBAElB,CAAC;;;;;;uDAM+B,CAAC;0CACd,CAAC;aAC9B,CAAC,wBAAwB,CAAC;;;;4CAIK,CAAC;6BAChB,CAAC;
|
|
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 {
|
|
@@ -86,6 +105,13 @@ export type ProviderType = 'openrouter' | 'lmstudio' | 'custom';
|
|
|
86
105
|
* the right home because it is the module that actually makes the request.
|
|
87
106
|
*/
|
|
88
107
|
export declare const DEFAULT_BASE_URLS: Record<ProviderType, string>;
|
|
108
|
+
/** Auth + the OpenRouter-only attribution headers (which a non-OpenRouter endpoint has no use for). */
|
|
109
|
+
/**
|
|
110
|
+
* The headers every outbound call to the provider carries. Exported because the chat proxy sends the
|
|
111
|
+
* request itself rather than through complete(), and two places building these by hand is how the
|
|
112
|
+
* attribution headers end up on one door and not the other.
|
|
113
|
+
*/
|
|
114
|
+
export declare function providerHeaders(apiKey: string | undefined, baseUrl: string): Record<string, string>;
|
|
89
115
|
/**
|
|
90
116
|
* Call an OpenAI-compatible chat completions API.
|
|
91
117
|
*/
|
|
@@ -109,6 +135,22 @@ export declare function complete(apiKey: string | undefined, model: string, prom
|
|
|
109
135
|
* Content-Type is deliberately NOT set: fetch derives it from the FormData together with the
|
|
110
136
|
* multipart boundary, and setting it by hand produces a body the provider cannot parse.
|
|
111
137
|
*/
|
|
138
|
+
/**
|
|
139
|
+
* Send a chat-completion request exactly as given, and hand back the provider's own response.
|
|
140
|
+
*
|
|
141
|
+
* `complete()` above builds the request and parses the answer, which is what a caller wanting a
|
|
142
|
+
* string needs. The chat proxy needs neither: it already has an OpenAI-shaped body from its caller
|
|
143
|
+
* and it forwards the provider's bytes untouched, streamed frames included. So this returns the raw
|
|
144
|
+
* `Response`.
|
|
145
|
+
*
|
|
146
|
+
* It lives here because this file is the node's only HTTP transport to a model provider, and that is
|
|
147
|
+
* enforced rather than agreed (`pnpm check:llm-transport`). A second place speaking to a provider is
|
|
148
|
+
* a second place that can forget to meter the call.
|
|
149
|
+
*
|
|
150
|
+
* Deciding whether the call may happen, whose key pays and what it cost is NOT this function's job —
|
|
151
|
+
* that is services/ai-completion.ts, and every caller of this goes through it first.
|
|
152
|
+
*/
|
|
153
|
+
export declare function chatCompletionRaw(apiKey: string | undefined, baseUrl: string, body: Record<string, unknown>, signal?: AbortSignal): Promise<Response>;
|
|
112
154
|
export declare function transcribe(apiKey: string | undefined, model: string, audio: TranscriptionAudio, baseUrl?: string, opts?: {
|
|
113
155
|
language?: string;
|
|
114
156
|
temperature?: number;
|
|
@@ -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,15 @@
|
|
|
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
|
+
* v3.1.0 — 2026-08-16 — chatCompletionRaw(): the request as given, the provider's response as it
|
|
10
|
+
* came. The chat proxy forwards both untouched, and this file is the node's only HTTP transport
|
|
11
|
+
* to a provider, which is a checked rule rather than a convention.
|
|
12
|
+
* v1.6.0 — 2026-08-16 — generateImage(): POST {baseUrl}/images/generations, and 'image' joins
|
|
13
|
+
* ModelModality so the picker can list image models the same way it lists whisper ones. The
|
|
14
|
+
* three-attempt retry is not padding: some providers' moderation throws false positives and the
|
|
15
|
+
* SAME prompt passes on the next attempt, which scripts/gen_image.py has worked around since it
|
|
16
|
+
* was written. Only moderation is retried; every other failure is reported at once, because
|
|
17
|
+
* retrying a real error only makes the person wait longer for it.
|
|
9
18
|
* v1.5.0 — 2026-08-01 — Speech-to-text: transcribe() posts multipart/form-data to
|
|
10
19
|
* `${baseUrl}/audio/transcriptions` (OpenAI-compatible, so it also reaches a local whisper.cpp /
|
|
11
20
|
* faster-whisper server), and listModels() takes a modality. The modality is not cosmetic:
|
|
@@ -30,6 +39,66 @@
|
|
|
30
39
|
* dropdown for custom providers). `owned_by` is carried into `description` when present.
|
|
31
40
|
*/
|
|
32
41
|
import { logger } from '../utils/logger.js';
|
|
42
|
+
/** How many times a moderation refusal is retried before the model is given up on. */
|
|
43
|
+
const IMAGE_MODERATION_ATTEMPTS = 3;
|
|
44
|
+
/**
|
|
45
|
+
* Generate an image, OpenAI-compatible (`POST {baseUrl}/images/generations`).
|
|
46
|
+
*
|
|
47
|
+
* The retry is not defensive padding. Some providers' moderation throws false positives on ordinary
|
|
48
|
+
* prompts and the SAME prompt passes on the next attempt, which scripts/gen_image.py has been
|
|
49
|
+
* working around since it was written. Only a moderation refusal is retried; every other failure is
|
|
50
|
+
* reported at once, because retrying a real error just makes the person wait longer for it.
|
|
51
|
+
*/
|
|
52
|
+
export async function generateImage(apiKey, model, prompt, baseUrl = OPENROUTER_BASE, opts) {
|
|
53
|
+
const controller = new AbortController();
|
|
54
|
+
const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
55
|
+
logger.info(`[openrouter] image: model=${model}, size=${opts?.size ?? 'default'}`);
|
|
56
|
+
try {
|
|
57
|
+
let lastErr = null;
|
|
58
|
+
for (let attempt = 1; attempt <= IMAGE_MODERATION_ATTEMPTS; attempt++) {
|
|
59
|
+
const resp = await fetch(`${baseUrl}/images/generations`, {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: { ...providerHeaders(apiKey, baseUrl), 'Content-Type': 'application/json' },
|
|
62
|
+
body: JSON.stringify({ model, prompt, ...(opts?.size ? { size: opts.size } : {}), usage: { include: true } }),
|
|
63
|
+
signal: controller.signal,
|
|
64
|
+
});
|
|
65
|
+
if (!resp.ok) {
|
|
66
|
+
// 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
|
|
67
|
+
const body = await resp.text().catch(() => '');
|
|
68
|
+
const err = new Error(`OpenRouter ${resp.status}: ${body}`);
|
|
69
|
+
err.status = resp.status;
|
|
70
|
+
if (!/moderat/i.test(body) || attempt === IMAGE_MODERATION_ATTEMPTS)
|
|
71
|
+
throw err;
|
|
72
|
+
lastErr = err;
|
|
73
|
+
logger.info(`[openrouter] image: moderation refusal on attempt ${attempt}, retrying`);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const json = await resp.json();
|
|
77
|
+
if (json.error?.message)
|
|
78
|
+
throw new Error(`OpenRouter: ${json.error.message}`);
|
|
79
|
+
const first = json.data?.[0];
|
|
80
|
+
// Providers answer with either a base64 field or a data: URL carrying the same bytes.
|
|
81
|
+
const b64 = first?.b64_json
|
|
82
|
+
?? (first?.url?.startsWith('data:') ? first.url.split('base64,', 2)[1] : undefined);
|
|
83
|
+
if (!b64)
|
|
84
|
+
throw new Error('OpenRouter returned no image data.');
|
|
85
|
+
const data = Buffer.from(b64, 'base64');
|
|
86
|
+
// Sniff rather than trust: the response does not say which format came back, and a wrong
|
|
87
|
+
// Content-Type on the stored file is what makes an image fail to render later.
|
|
88
|
+
const isPng = data.length > 8 && data[0] === 0x89 && data[1] === 0x50 && data[2] === 0x4e && data[3] === 0x47;
|
|
89
|
+
return {
|
|
90
|
+
data,
|
|
91
|
+
mime: isPng ? 'image/png' : 'image/jpeg',
|
|
92
|
+
model,
|
|
93
|
+
costUsd: typeof json.usage?.cost === 'number' ? json.usage.cost : undefined,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
throw lastErr ?? new Error('OpenRouter: image generation failed.');
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
clearTimeout(timeout);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
33
102
|
/**
|
|
34
103
|
* Where each provider lives when the owner has not overridden it.
|
|
35
104
|
*
|
|
@@ -49,7 +118,12 @@ const TIMEOUT_MS = 1_800_000; // 30 minutes
|
|
|
49
118
|
* A 30-minute ceiling here would only keep a dead socket open. */
|
|
50
119
|
const STT_TIMEOUT_MS = 120_000;
|
|
51
120
|
/** Auth + the OpenRouter-only attribution headers (which a non-OpenRouter endpoint has no use for). */
|
|
52
|
-
|
|
121
|
+
/**
|
|
122
|
+
* The headers every outbound call to the provider carries. Exported because the chat proxy sends the
|
|
123
|
+
* request itself rather than through complete(), and two places building these by hand is how the
|
|
124
|
+
* attribution headers end up on one door and not the other.
|
|
125
|
+
*/
|
|
126
|
+
export function providerHeaders(apiKey, baseUrl) {
|
|
53
127
|
const headers = {};
|
|
54
128
|
if (apiKey)
|
|
55
129
|
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
@@ -146,6 +220,29 @@ export async function complete(apiKey, model, prompt, systemPrompt, baseUrl = OP
|
|
|
146
220
|
* Content-Type is deliberately NOT set: fetch derives it from the FormData together with the
|
|
147
221
|
* multipart boundary, and setting it by hand produces a body the provider cannot parse.
|
|
148
222
|
*/
|
|
223
|
+
/**
|
|
224
|
+
* Send a chat-completion request exactly as given, and hand back the provider's own response.
|
|
225
|
+
*
|
|
226
|
+
* `complete()` above builds the request and parses the answer, which is what a caller wanting a
|
|
227
|
+
* string needs. The chat proxy needs neither: it already has an OpenAI-shaped body from its caller
|
|
228
|
+
* and it forwards the provider's bytes untouched, streamed frames included. So this returns the raw
|
|
229
|
+
* `Response`.
|
|
230
|
+
*
|
|
231
|
+
* It lives here because this file is the node's only HTTP transport to a model provider, and that is
|
|
232
|
+
* enforced rather than agreed (`pnpm check:llm-transport`). A second place speaking to a provider is
|
|
233
|
+
* a second place that can forget to meter the call.
|
|
234
|
+
*
|
|
235
|
+
* Deciding whether the call may happen, whose key pays and what it cost is NOT this function's job —
|
|
236
|
+
* that is services/ai-completion.ts, and every caller of this goes through it first.
|
|
237
|
+
*/
|
|
238
|
+
export async function chatCompletionRaw(apiKey, baseUrl, body, signal) {
|
|
239
|
+
return fetch(`${baseUrl}/chat/completions`, {
|
|
240
|
+
method: 'POST',
|
|
241
|
+
headers: { 'Content-Type': 'application/json', ...providerHeaders(apiKey, baseUrl) },
|
|
242
|
+
body: JSON.stringify(body),
|
|
243
|
+
signal,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
149
246
|
export async function transcribe(apiKey, model, audio, baseUrl = OPENROUTER_BASE, opts) {
|
|
150
247
|
const form = new FormData();
|
|
151
248
|
form.append('file', new Blob([new Uint8Array(audio.data)], { type: audio.mime }), audio.filename);
|
|
@@ -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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"}
|