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
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* Both are generated from the same sources as everything else — the public-page registry, the
|
|
6
6
|
* node config — so a page added in one place appears here without a second edit.
|
|
7
7
|
*
|
|
8
|
-
* These sit alongside
|
|
9
|
-
*
|
|
10
|
-
* "what is here and where do I start" that
|
|
11
|
-
*
|
|
8
|
+
* These sit alongside the documents we already serve. `sitemap.xml` addresses a crawler,
|
|
9
|
+
* `llms-full.txt` is the full builder's manual with `llms.txt` as its index, and `sitemap.md` is
|
|
10
|
+
* the one-page answer to "what is here and where do I start" that none of those gives: 989
|
|
11
|
+
* OpenAPI operations and a 124 kB manual are both poor first reads.
|
|
12
12
|
*
|
|
13
13
|
* @structure
|
|
14
14
|
* - agentDocsRouter(config) — mounts the GET endpoints
|
|
@@ -43,152 +43,152 @@ function buildSitemapMarkdown(config) {
|
|
|
43
43
|
.filter((p) => p.path !== '/')
|
|
44
44
|
.map((p) => `- [${p.title}](${b}${p.path}): ${p.description}`)
|
|
45
45
|
.join('\n');
|
|
46
|
-
return `# AIMEAT node \`${config.nodeId}\` — site map
|
|
47
|
-
|
|
48
|
-
> Everything this node serves, on one page: the pages a person reads, the documents an agent
|
|
49
|
-
> reads, and the machine-readable discovery endpoints. Start here, then follow one link.
|
|
50
|
-
|
|
51
|
-
## Pages
|
|
52
|
-
|
|
53
|
-
- [Home](${b}/): what this node is
|
|
54
|
-
${pages}
|
|
55
|
-
|
|
56
|
-
## Agent documentation
|
|
57
|
-
|
|
58
|
-
- [llms.txt](${b}/llms.txt): the
|
|
59
|
-
- [llms-full.txt](${b}/llms-full.txt): the
|
|
60
|
-
- [AGENTS.md](${b}/AGENTS.md): short orientation for a coding agent meeting this node
|
|
61
|
-
- [OpenAPI contract](${b}/v1/spec): the canonical API contract this node is held to
|
|
62
|
-
- [API documentation](${b}/v1/docs): browsable endpoint reference
|
|
63
|
-
- [Agent registration](${b}/auth.md): RFC 8628 device flow, owner-approved
|
|
64
|
-
- [App building prompt](${b}/v1/prompts/build-app): the canonical spec for single-file AIMEAT apps
|
|
65
|
-
- [App templates](${b}/v1/app-templates): starter skeletons
|
|
66
|
-
- [App-build pitfalls](${b}/v1/appdev/pitfalls): the curated registry of what breaks app builds
|
|
67
|
-
- [Glossary](${b}/v1/glossary.md): the vocabulary, in markdown
|
|
68
|
-
|
|
69
|
-
## Machine-readable discovery
|
|
70
|
-
|
|
71
|
-
- [Node descriptor](${b}/.well-known/aimeat): node id, type, public key, capabilities, federation settings
|
|
72
|
-
- [AI transparency statement](${b}/v1/ai-transparency): what this node marks as AI-generated, how, and in which posture ([markdown](${b}/v1/ai-transparency.md))
|
|
73
|
-
- [MCP Server Card](${b}/.well-known/mcp.json): the MCP server at \`${b}/v1/mcp\`, its transport and auth
|
|
74
|
-
- [API catalog](${b}/.well-known/api-catalog): RFC 9727 linkset over the contract, docs and descriptors
|
|
75
|
-
- [Agent Skills index](${b}/.well-known/agent-skills/index.json): the skill packs published here
|
|
76
|
-
- [UCP profile](${b}/.well-known/ucp): commerce transports, checkout capability, payment handlers
|
|
77
|
-
- [ACP profile](${b}/.well-known/acp.json): agentic-commerce discovery and the product feed
|
|
78
|
-
- [Web Bot Auth directory](${b}/.well-known/http-message-signatures-directory): the keys this node signs outbound requests with
|
|
79
|
-
- [sitemap.xml](${b}/sitemap.xml): the same pages, for crawlers
|
|
80
|
-
- [robots.txt](${b}/robots.txt): crawl policy, including the content signals this node sets
|
|
81
|
-
|
|
82
|
-
## Where to start
|
|
83
|
-
|
|
84
|
-
- **You are a person.** [The portal](${b}/v1/portal) — register, then connect an assistant.
|
|
85
|
-
- **You are an assistant helping a person build something.** [llms.txt](${b}/llms.txt).
|
|
86
|
-
- **You are an agent joining this node under your own identity.** [auth.md](${b}/auth.md) — device
|
|
87
|
-
flow, the owner approves you and picks your scopes.
|
|
88
|
-
- **You are a coding agent meeting AIMEAT as a dependency.** [AGENTS.md](${b}/AGENTS.md).
|
|
46
|
+
return `# AIMEAT node \`${config.nodeId}\` — site map
|
|
47
|
+
|
|
48
|
+
> Everything this node serves, on one page: the pages a person reads, the documents an agent
|
|
49
|
+
> reads, and the machine-readable discovery endpoints. Start here, then follow one link.
|
|
50
|
+
|
|
51
|
+
## Pages
|
|
52
|
+
|
|
53
|
+
- [Home](${b}/): what this node is
|
|
54
|
+
${pages}
|
|
55
|
+
|
|
56
|
+
## Agent documentation
|
|
57
|
+
|
|
58
|
+
- [llms.txt](${b}/llms.txt): the curated index over everything below
|
|
59
|
+
- [llms-full.txt](${b}/llms-full.txt): the full builder's manual — SDK libraries, app templates, API reference
|
|
60
|
+
- [AGENTS.md](${b}/AGENTS.md): short orientation for a coding agent meeting this node
|
|
61
|
+
- [OpenAPI contract](${b}/v1/spec): the canonical API contract this node is held to
|
|
62
|
+
- [API documentation](${b}/v1/docs): browsable endpoint reference
|
|
63
|
+
- [Agent registration](${b}/auth.md): RFC 8628 device flow, owner-approved
|
|
64
|
+
- [App building prompt](${b}/v1/prompts/build-app): the canonical spec for single-file AIMEAT apps
|
|
65
|
+
- [App templates](${b}/v1/app-templates): starter skeletons
|
|
66
|
+
- [App-build pitfalls](${b}/v1/appdev/pitfalls): the curated registry of what breaks app builds
|
|
67
|
+
- [Glossary](${b}/v1/glossary.md): the vocabulary, in markdown
|
|
68
|
+
|
|
69
|
+
## Machine-readable discovery
|
|
70
|
+
|
|
71
|
+
- [Node descriptor](${b}/.well-known/aimeat): node id, type, public key, capabilities, federation settings
|
|
72
|
+
- [AI transparency statement](${b}/v1/ai-transparency): what this node marks as AI-generated, how, and in which posture ([markdown](${b}/v1/ai-transparency.md))
|
|
73
|
+
- [MCP Server Card](${b}/.well-known/mcp.json): the MCP server at \`${b}/v1/mcp\`, its transport and auth
|
|
74
|
+
- [API catalog](${b}/.well-known/api-catalog): RFC 9727 linkset over the contract, docs and descriptors
|
|
75
|
+
- [Agent Skills index](${b}/.well-known/agent-skills/index.json): the skill packs published here
|
|
76
|
+
- [UCP profile](${b}/.well-known/ucp): commerce transports, checkout capability, payment handlers
|
|
77
|
+
- [ACP profile](${b}/.well-known/acp.json): agentic-commerce discovery and the product feed
|
|
78
|
+
- [Web Bot Auth directory](${b}/.well-known/http-message-signatures-directory): the keys this node signs outbound requests with
|
|
79
|
+
- [sitemap.xml](${b}/sitemap.xml): the same pages, for crawlers
|
|
80
|
+
- [robots.txt](${b}/robots.txt): crawl policy, including the content signals this node sets
|
|
81
|
+
|
|
82
|
+
## Where to start
|
|
83
|
+
|
|
84
|
+
- **You are a person.** [The portal](${b}/v1/portal) — register, then connect an assistant.
|
|
85
|
+
- **You are an assistant helping a person build something.** [llms-full.txt](${b}/llms-full.txt).
|
|
86
|
+
- **You are an agent joining this node under your own identity.** [auth.md](${b}/auth.md) — device
|
|
87
|
+
flow, the owner approves you and picks your scopes.
|
|
88
|
+
- **You are a coding agent meeting AIMEAT as a dependency.** [AGENTS.md](${b}/AGENTS.md).
|
|
89
89
|
`;
|
|
90
90
|
}
|
|
91
91
|
/** The coding-agent orientation document. */
|
|
92
92
|
function buildAgentsMarkdown(config) {
|
|
93
93
|
const b = config.baseUrl;
|
|
94
|
-
return `# AIMEAT node \`${config.nodeId}\`
|
|
95
|
-
|
|
96
|
-
> Persistent memory, identity, shared workspaces and a usage meter for AI agents and the humans
|
|
97
|
-
> who own them, over REST and MCP. This document orients a coding agent that has met this node as
|
|
98
|
-
> a dependency or an integration target. It is deliberately short; every section links to the
|
|
99
|
-
> full reference.
|
|
100
|
-
|
|
101
|
-
## What this is
|
|
102
|
-
|
|
103
|
-
AIMEAT gives an AI agent three things it does not otherwise have: memory that survives the
|
|
104
|
-
session, an identity its owner can grant and revoke, and a place to work alongside other agents
|
|
105
|
-
and people. A node is a plain HTTP service. Everything below is available over REST, and the same
|
|
106
|
-
surface is exposed over MCP.
|
|
107
|
-
|
|
108
|
-
It is the right tool when an agent needs state across sessions, when a human must stay in control
|
|
109
|
-
of what an agent can reach, or when several agents and people work on the same material. It is
|
|
110
|
-
the wrong tool for a one-shot script.
|
|
111
|
-
|
|
112
|
-
## Installation
|
|
113
|
-
|
|
114
|
-
Nothing to install. Get an identity:
|
|
115
|
-
|
|
116
|
-
1. \`POST ${b}/v1/agents/device-authorize\` with \`{ "agent_name": "...", "owner": "..." }\`
|
|
117
|
-
2. The owner approves in their portal and picks the scopes
|
|
118
|
-
3. Poll \`POST ${b}/v1/agents/device-token\` for an EdDSA JWT
|
|
119
|
-
|
|
120
|
-
This is RFC 8628 device authorization. **Agents are never created implicitly** — an owner approves
|
|
121
|
-
every one. Full flow: \`GET ${b}/auth.md\`
|
|
122
|
-
|
|
123
|
-
For an MCP-capable platform (Claude Desktop, claude.ai, Cursor), point it at \`${b}/v1/mcp\` and
|
|
124
|
-
authenticate with OAuth 2.1. The server card is at \`${b}/.well-known/mcp.json\`.
|
|
125
|
-
|
|
126
|
-
## Configuration
|
|
127
|
-
|
|
128
|
-
- **Scopes.** Your token carries the scope set the owner approved. A call outside it answers 403
|
|
129
|
-
naming the scope, never an empty result — a silent empty answer would read as "no data".
|
|
130
|
-
- **Envelope.** Every response is \`{ success, node_id, data|error, next_actions }\`.
|
|
131
|
-
- **Discovery headers.** Every GET carries \`Link\` headers to the API catalog and the contract.
|
|
132
|
-
|
|
133
|
-
## Concepts you need before your first call
|
|
134
|
-
|
|
135
|
-
| Term | Form | What it is |
|
|
136
|
-
|---|---|---|
|
|
137
|
-
| GHII | \`owner@node-id\` | a human. Owns everything: data, balance, trust |
|
|
138
|
-
| GAII | \`agent#owner@node-id\` | an AI agent. Scoped permissions, its own trust score |
|
|
139
|
-
| GEAI | \`eco:app#owner@node-id\` | an ecosystem app, consented like an agent |
|
|
140
|
-
| morsel | integer | the usage meter. The human pays; agent balances are always 0 |
|
|
141
|
-
| organism | | a shared space: workspaces, records, documents, members |
|
|
142
|
-
| scope | \`memory:write\` | what your token may do. Set by the owner at approval |
|
|
143
|
-
|
|
144
|
-
The three identity forms are not interchangeable, and confusing them is the most common first
|
|
145
|
-
mistake: data written under the wrong one is invisible to the reader who expects it.
|
|
146
|
-
|
|
147
|
-
Full vocabulary: [the glossary](${b}/v1/glossary), also at \`${b}/v1/glossary.md\`.
|
|
148
|
-
|
|
149
|
-
## Usage
|
|
150
|
-
|
|
151
|
-
Write and read memory:
|
|
152
|
-
|
|
153
|
-
\`\`\`bash
|
|
154
|
-
curl -X POST ${b}/v1/memory -H "Authorization: Bearer $TOKEN" \\
|
|
155
|
-
-H 'Content-Type: application/json' \\
|
|
156
|
-
-d '{"key":"notes.today","value":{"text":"..."},"visibility":"private"}'
|
|
157
|
-
|
|
158
|
-
curl ${b}/v1/memory/notes.today -H "Authorization: Bearer $TOKEN"
|
|
159
|
-
\`\`\`
|
|
160
|
-
|
|
161
|
-
List what you can see, search across it, read someone's public record:
|
|
162
|
-
|
|
163
|
-
\`\`\`bash
|
|
164
|
-
curl "${b}/v1/memory?prefix=notes.&limit=50" -H "Authorization: Bearer $TOKEN"
|
|
165
|
-
curl "${b}/v1/discover?q=..." -H "Authorization: Bearer $TOKEN"
|
|
166
|
-
curl ${b}/v1/memory/public/alice@${config.nodeId}/profile
|
|
167
|
-
\`\`\`
|
|
168
|
-
|
|
169
|
-
Work with tasks, workflows, organisms and skills through the same pattern. The full endpoint list
|
|
170
|
-
with request and response shapes is in the OpenAPI contract.
|
|
171
|
-
|
|
172
|
-
## Conventions
|
|
173
|
-
|
|
174
|
-
- **Every response is enveloped:** \`{ "success": true, "node_id": "...", "data": {...},
|
|
175
|
-
"next_actions": [...] }\`. Errors carry \`{ "success": false, "error": { "code", "message" } }\`.
|
|
176
|
-
\`next_actions\` names what to do next, so an agent can follow the API without a map.
|
|
177
|
-
- **Scopes are enforced per call.** A missing scope is a 403 naming the scope, not a silent empty
|
|
178
|
-
result.
|
|
179
|
-
- **Content negotiation.** Public pages answer \`Accept: text/markdown\` with markdown; API
|
|
180
|
-
endpoints answer JSON.
|
|
181
|
-
- **Discovery headers.** Every GET response carries \`Link\` headers pointing at the API catalog
|
|
182
|
-
and the OpenAPI contract, so you can find the contract from any response.
|
|
183
|
-
|
|
184
|
-
## Where the rest is
|
|
185
|
-
|
|
186
|
-
- Full builder's manual: \`GET ${b}/llms.txt\`
|
|
187
|
-
- OpenAPI contract: \`GET ${b}/v1/spec\`
|
|
188
|
-
- Site map: \`GET ${b}/sitemap.md\`
|
|
189
|
-
- Glossary: \`GET ${b}/v1/glossary.md\`
|
|
190
|
-
- Registration: \`GET ${b}/auth.md\`
|
|
191
|
-
- Skill packs published here: \`GET ${b}/.well-known/agent-skills/index.json\`
|
|
94
|
+
return `# AIMEAT node \`${config.nodeId}\`
|
|
95
|
+
|
|
96
|
+
> Persistent memory, identity, shared workspaces and a usage meter for AI agents and the humans
|
|
97
|
+
> who own them, over REST and MCP. This document orients a coding agent that has met this node as
|
|
98
|
+
> a dependency or an integration target. It is deliberately short; every section links to the
|
|
99
|
+
> full reference.
|
|
100
|
+
|
|
101
|
+
## What this is
|
|
102
|
+
|
|
103
|
+
AIMEAT gives an AI agent three things it does not otherwise have: memory that survives the
|
|
104
|
+
session, an identity its owner can grant and revoke, and a place to work alongside other agents
|
|
105
|
+
and people. A node is a plain HTTP service. Everything below is available over REST, and the same
|
|
106
|
+
surface is exposed over MCP.
|
|
107
|
+
|
|
108
|
+
It is the right tool when an agent needs state across sessions, when a human must stay in control
|
|
109
|
+
of what an agent can reach, or when several agents and people work on the same material. It is
|
|
110
|
+
the wrong tool for a one-shot script.
|
|
111
|
+
|
|
112
|
+
## Installation
|
|
113
|
+
|
|
114
|
+
Nothing to install. Get an identity:
|
|
115
|
+
|
|
116
|
+
1. \`POST ${b}/v1/agents/device-authorize\` with \`{ "agent_name": "...", "owner": "..." }\`
|
|
117
|
+
2. The owner approves in their portal and picks the scopes
|
|
118
|
+
3. Poll \`POST ${b}/v1/agents/device-token\` for an EdDSA JWT
|
|
119
|
+
|
|
120
|
+
This is RFC 8628 device authorization. **Agents are never created implicitly** — an owner approves
|
|
121
|
+
every one. Full flow: \`GET ${b}/auth.md\`
|
|
122
|
+
|
|
123
|
+
For an MCP-capable platform (Claude Desktop, claude.ai, Cursor), point it at \`${b}/v1/mcp\` and
|
|
124
|
+
authenticate with OAuth 2.1. The server card is at \`${b}/.well-known/mcp.json\`.
|
|
125
|
+
|
|
126
|
+
## Configuration
|
|
127
|
+
|
|
128
|
+
- **Scopes.** Your token carries the scope set the owner approved. A call outside it answers 403
|
|
129
|
+
naming the scope, never an empty result — a silent empty answer would read as "no data".
|
|
130
|
+
- **Envelope.** Every response is \`{ success, node_id, data|error, next_actions }\`.
|
|
131
|
+
- **Discovery headers.** Every GET carries \`Link\` headers to the API catalog and the contract.
|
|
132
|
+
|
|
133
|
+
## Concepts you need before your first call
|
|
134
|
+
|
|
135
|
+
| Term | Form | What it is |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| GHII | \`owner@node-id\` | a human. Owns everything: data, balance, trust |
|
|
138
|
+
| GAII | \`agent#owner@node-id\` | an AI agent. Scoped permissions, its own trust score |
|
|
139
|
+
| GEAI | \`eco:app#owner@node-id\` | an ecosystem app, consented like an agent |
|
|
140
|
+
| morsel | integer | the usage meter. The human pays; agent balances are always 0 |
|
|
141
|
+
| organism | | a shared space: workspaces, records, documents, members |
|
|
142
|
+
| scope | \`memory:write\` | what your token may do. Set by the owner at approval |
|
|
143
|
+
|
|
144
|
+
The three identity forms are not interchangeable, and confusing them is the most common first
|
|
145
|
+
mistake: data written under the wrong one is invisible to the reader who expects it.
|
|
146
|
+
|
|
147
|
+
Full vocabulary: [the glossary](${b}/v1/glossary), also at \`${b}/v1/glossary.md\`.
|
|
148
|
+
|
|
149
|
+
## Usage
|
|
150
|
+
|
|
151
|
+
Write and read memory:
|
|
152
|
+
|
|
153
|
+
\`\`\`bash
|
|
154
|
+
curl -X POST ${b}/v1/memory -H "Authorization: Bearer $TOKEN" \\
|
|
155
|
+
-H 'Content-Type: application/json' \\
|
|
156
|
+
-d '{"key":"notes.today","value":{"text":"..."},"visibility":"private"}'
|
|
157
|
+
|
|
158
|
+
curl ${b}/v1/memory/notes.today -H "Authorization: Bearer $TOKEN"
|
|
159
|
+
\`\`\`
|
|
160
|
+
|
|
161
|
+
List what you can see, search across it, read someone's public record:
|
|
162
|
+
|
|
163
|
+
\`\`\`bash
|
|
164
|
+
curl "${b}/v1/memory?prefix=notes.&limit=50" -H "Authorization: Bearer $TOKEN"
|
|
165
|
+
curl "${b}/v1/discover?q=..." -H "Authorization: Bearer $TOKEN"
|
|
166
|
+
curl ${b}/v1/memory/public/alice@${config.nodeId}/profile
|
|
167
|
+
\`\`\`
|
|
168
|
+
|
|
169
|
+
Work with tasks, workflows, organisms and skills through the same pattern. The full endpoint list
|
|
170
|
+
with request and response shapes is in the OpenAPI contract.
|
|
171
|
+
|
|
172
|
+
## Conventions
|
|
173
|
+
|
|
174
|
+
- **Every response is enveloped:** \`{ "success": true, "node_id": "...", "data": {...},
|
|
175
|
+
"next_actions": [...] }\`. Errors carry \`{ "success": false, "error": { "code", "message" } }\`.
|
|
176
|
+
\`next_actions\` names what to do next, so an agent can follow the API without a map.
|
|
177
|
+
- **Scopes are enforced per call.** A missing scope is a 403 naming the scope, not a silent empty
|
|
178
|
+
result.
|
|
179
|
+
- **Content negotiation.** Public pages answer \`Accept: text/markdown\` with markdown; API
|
|
180
|
+
endpoints answer JSON.
|
|
181
|
+
- **Discovery headers.** Every GET response carries \`Link\` headers pointing at the API catalog
|
|
182
|
+
and the OpenAPI contract, so you can find the contract from any response.
|
|
183
|
+
|
|
184
|
+
## Where the rest is
|
|
185
|
+
|
|
186
|
+
- Full builder's manual: \`GET ${b}/llms-full.txt\` (its index: \`GET ${b}/llms.txt\`)
|
|
187
|
+
- OpenAPI contract: \`GET ${b}/v1/spec\`
|
|
188
|
+
- Site map: \`GET ${b}/sitemap.md\`
|
|
189
|
+
- Glossary: \`GET ${b}/v1/glossary.md\`
|
|
190
|
+
- Registration: \`GET ${b}/auth.md\`
|
|
191
|
+
- Skill packs published here: \`GET ${b}/.well-known/agent-skills/index.json\`
|
|
192
192
|
`;
|
|
193
193
|
}
|
|
194
194
|
export function agentDocsRouter(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-docs.js","sourceRoot":"","sources":["../../../src/routes/agent-docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,IAAc,EAAE,IAAkB;IACvE,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACrE,IAAI,EAAE,CAAC;AACT,CAAC;AAED,6BAA6B;AAC7B,SAAS,oBAAoB,CAAC,MAAoB;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,KAAK,GAAG,YAAY,EAAE;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;SAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,mBAAmB,MAAM,CAAC,MAAM;;;;;;;WAO9B,CAAC;EACV,KAAK;;;;eAIQ,CAAC;oBACI,CAAC;gBACL,CAAC;uBACM,CAAC;wBACA,CAAC;yBACA,CAAC;0BACA,CAAC;oBACP,CAAC;yBACI,CAAC;eACX,CAAC;;;;sBAIM,CAAC;gCACS,CAAC,qGAAqG,CAAC;sBACjH,CAAC,+CAA+C,CAAC;kBACrD,CAAC;yBACM,CAAC;kBACR,CAAC;kBACD,CAAC;6BACU,CAAC;kBACZ,CAAC;iBACF,CAAC;;;;uCAIqB,CAAC
|
|
1
|
+
{"version":3,"file":"agent-docs.js","sourceRoot":"","sources":["../../../src/routes/agent-docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,IAAc,EAAE,IAAkB;IACvE,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACrE,IAAI,EAAE,CAAC;AACT,CAAC;AAED,6BAA6B;AAC7B,SAAS,oBAAoB,CAAC,MAAoB;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,KAAK,GAAG,YAAY,EAAE;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;SAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,mBAAmB,MAAM,CAAC,MAAM;;;;;;;WAO9B,CAAC;EACV,KAAK;;;;eAIQ,CAAC;oBACI,CAAC;gBACL,CAAC;uBACM,CAAC;wBACA,CAAC;yBACA,CAAC;0BACA,CAAC;oBACP,CAAC;yBACI,CAAC;eACX,CAAC;;;;sBAIM,CAAC;gCACS,CAAC,qGAAqG,CAAC;sBACjH,CAAC,+CAA+C,CAAC;kBACrD,CAAC;yBACM,CAAC;kBACR,CAAC;kBACD,CAAC;6BACU,CAAC;kBACZ,CAAC;iBACF,CAAC;;;;uCAIqB,CAAC;+EACuC,CAAC;8EACF,CAAC;;2EAEJ,CAAC;CAC3E,CAAC;AACF,CAAC;AAED,6CAA6C;AAC7C,SAAS,mBAAmB,CAAC,MAAoB;IAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,OAAO,mBAAmB,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;YAsB7B,CAAC;;iBAEI,CAAC;;;8BAGY,CAAC;;iFAEkD,CAAC;uDAC3B,CAAC;;;;;;;;;;;;;;;;;;;;;;;kCAuBtB,CAAC,4BAA4B,CAAC;;;;;;;eAOjD,CAAC;;;;OAIT,CAAC;;;;;;QAMA,CAAC;QACD,CAAC;OACF,CAAC,2BAA2B,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;iCAoBf,CAAC,sCAAsC,CAAC;4BAC7C,CAAC;oBACT,CAAC;oBACD,CAAC;wBACG,CAAC;sCACa,CAAC;CACtC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAChD,YAAY,CAAC,GAAG,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,6FAA6F;IAC7F,4FAA4F;IAC5F,mEAAmE;IACnE,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/D,YAAY,CAAC,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
* - GET /v1/agents/:name/messages -- List message history
|
|
9
9
|
* - PATCH /v1/agents/:name/messages/:id -- Update message status
|
|
10
10
|
* @version-history
|
|
11
|
+
* v1.6.0 -- 2026-08-15 -- PATCH /:name/messages/:id authorizes against the MESSAGE, not just the
|
|
12
|
+
* agent name in the path. canAccessAgent() answers "may you act as this agent", built against
|
|
13
|
+
* the caller's own owner, and the message id was a second, unchecked coordinate — so any agent
|
|
14
|
+
* could flip the status of any message on the node by id, and the response returns the whole
|
|
15
|
+
* updated row, which made the write a read of somebody else's message too. E2E test-quality
|
|
16
|
+
* audit finding A11.
|
|
11
17
|
* v1.5.0 -- 2026-08-11 -- The send is one implementation again: validation, the record build, the
|
|
12
18
|
* provenance stamp, the message.inbound webhook, the MCP resource notification and the live-update
|
|
13
19
|
* emit moved to services/agent-message-send.ts, which aimeat_message_send now calls as well. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-messages.d.ts","sourceRoot":"","sources":["../../../src/routes/agent-messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-messages.d.ts","sourceRoot":"","sources":["../../../src/routes/agent-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,yBAAyB,CAAC;AAU3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAGjF,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,MAAM,CA0OzH"}
|
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
* - GET /v1/agents/:name/messages -- List message history
|
|
9
9
|
* - PATCH /v1/agents/:name/messages/:id -- Update message status
|
|
10
10
|
* @version-history
|
|
11
|
+
* v1.6.0 -- 2026-08-15 -- PATCH /:name/messages/:id authorizes against the MESSAGE, not just the
|
|
12
|
+
* agent name in the path. canAccessAgent() answers "may you act as this agent", built against
|
|
13
|
+
* the caller's own owner, and the message id was a second, unchecked coordinate — so any agent
|
|
14
|
+
* could flip the status of any message on the node by id, and the response returns the whole
|
|
15
|
+
* updated row, which made the write a read of somebody else's message too. E2E test-quality
|
|
16
|
+
* audit finding A11.
|
|
11
17
|
* v1.5.0 -- 2026-08-11 -- The send is one implementation again: validation, the record build, the
|
|
12
18
|
* provenance stamp, the message.inbound webhook, the MCP resource notification and the live-update
|
|
13
19
|
* emit moved to services/agent-message-send.ts, which aimeat_message_send now calls as well. The
|
|
@@ -29,7 +35,7 @@
|
|
|
29
35
|
import { Router } from 'express';
|
|
30
36
|
import { requireAuth } from '../auth/middleware.js';
|
|
31
37
|
import { success, error } from '../middleware/envelope.js';
|
|
32
|
-
import { resolveIdentity, buildGAII } from '../utils/gaii.js';
|
|
38
|
+
import { resolveIdentity, buildGAII, isSameOwner } from '../utils/gaii.js';
|
|
33
39
|
import { emitChange } from '../services/event-bus.js';
|
|
34
40
|
import { emitResourceUpdated } from '../mcp/index.js';
|
|
35
41
|
import { AgentMessageStatusSchema } from '../models/agent-message-schemas.js';
|
|
@@ -210,6 +216,22 @@ export function agentMessagesRouter(config, storage, webhookDispatcher) {
|
|
|
210
216
|
const processedAt = status === 'delivered' || status === 'error'
|
|
211
217
|
? new Date().toISOString()
|
|
212
218
|
: undefined;
|
|
219
|
+
// canAccessAgent() above answers "may you act as the agent NAMED IN THE PATH", and it builds
|
|
220
|
+
// that name against the caller's OWN owner — so it is a real check and it is not this one. The
|
|
221
|
+
// message id is a separate, client-supplied coordinate, and updateMessageStatus took it on its
|
|
222
|
+
// own: any agent could flip the status of any message on the node by id, and the response hands
|
|
223
|
+
// back the whole updated row, so the write doubled as a read of somebody else's message. The
|
|
224
|
+
// record decides now, which is the rule the identity model states — authorize against the
|
|
225
|
+
// resolved identity, never against a name in the request.
|
|
226
|
+
const existing = await storage.getMessage(id);
|
|
227
|
+
if (!existing || !isSameOwner(existing.agentGaii, resolve(req))) {
|
|
228
|
+
res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Message not found'));
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
if (req.auth.roles.includes('agent') && existing.agentGaii !== req.auth.sub) {
|
|
232
|
+
res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Message not found'));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
213
235
|
const updated = await storage.updateMessageStatus(id, status, processedAt);
|
|
214
236
|
if (!updated) {
|
|
215
237
|
res.status(404).json(error(config.nodeId, 'NOT_FOUND', 'Message not found'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-messages.js","sourceRoot":"","sources":["../../../src/routes/agent-messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-messages.js","sourceRoot":"","sources":["../../../src/routes/agent-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-read.d.ts","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/create-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-read.d.ts","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/create-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAC;AAQ3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAChF,IAAI,CA0NN"}
|
|
@@ -20,6 +20,7 @@ import { logger } from '../../utils/logger.js';
|
|
|
20
20
|
import { emitResourceUpdated } from '../../mcp/index.js';
|
|
21
21
|
import { createTask } from '../../services/agent-task-write.js';
|
|
22
22
|
import { taskWithFileHandles } from '../../services/task-files.js';
|
|
23
|
+
import { taskOutcome } from '../../services/task-outcome.js';
|
|
23
24
|
import { respondDeduplicated } from './dedupe.js';
|
|
24
25
|
export function registerTaskCreateReadRoutes(router, config, storage, helpers) {
|
|
25
26
|
const { resolve, resolveAgentGaii, tokenHasScope, canReadTask, deriveTaskBucket, webhookDispatcher } = helpers;
|
|
@@ -215,7 +216,13 @@ export function registerTaskCreateReadRoutes(router, config, storage, helpers) {
|
|
|
215
216
|
const withFiles = await taskWithFileHandles(storage, config, task, {
|
|
216
217
|
gaii: resolve(req), sub: req.auth.sub, owner: req.auth.owner,
|
|
217
218
|
});
|
|
218
|
-
|
|
219
|
+
// …and WHAT IT PRODUCED, on the same read. Both doors, because a finished task whose result
|
|
220
|
+
// nobody can reach is indistinguishable from one that produced nothing, and which door the
|
|
221
|
+
// caller happened to use should not decide whether they can find out.
|
|
222
|
+
const outcome = await taskOutcome(storage, task);
|
|
223
|
+
res.json(success(config.nodeId, { task: withFiles, ...(outcome ? { outcome } : {}) }, outcome?.deliverable_url
|
|
224
|
+
? [{ description: 'The deliverable this task published', method: 'GET', url: outcome.deliverable_url }]
|
|
225
|
+
: []));
|
|
219
226
|
});
|
|
220
227
|
}
|
|
221
228
|
//# sourceMappingURL=create-read.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-read.js","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/create-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-read.js","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/create-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file src/routes/agent-tasks/lifecycle.ts
|
|
3
|
-
* @description Agent-task lifecycle routes (update, delete, start, propose-todos, request-changes, pause). Extracted from agent-tasks.ts to satisfy max-file-lines.
|
|
3
|
+
* @description Agent-task lifecycle routes (update, delete, queue, start, propose-todos, request-changes, pause). Extracted from agent-tasks.ts to satisfy max-file-lines.
|
|
4
4
|
* @version-history
|
|
5
|
+
* v1.3.0 — 2026-08-16 — POST .../queue: the exit a draft never had. Reported by crewaimeat-dev,
|
|
6
|
+
* who created a task over REST, got 'draft' from the body-schema default, and found nothing
|
|
7
|
+
* anywhere that could move it out again.
|
|
5
8
|
* v1.2.0 — 2026-08-11 — The propose-todos WRITE moves to services/agent-task-write.ts, so
|
|
6
9
|
* aimeat_task_propose_todos stops keeping its own copy of the plan build. Behaviour here is
|
|
7
10
|
* unchanged.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/lifecycle.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAsD,MAAM,4BAA4B,CAAC;AAU9G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAChF,IAAI,CA+jBN"}
|