aimeat 3.1.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 +9225 -9103
- package/dist/locales/es.json +9217 -9095
- package/dist/locales/fi.json +9225 -9103
- package/dist/public/changelog.json +12 -0
- package/dist/public/css/views/admin.css +11 -0
- package/dist/public/css/views/chat.css +388 -0
- package/dist/public/css/views/profile.css +41 -0
- package/dist/public/js/services/admin.js +346 -331
- package/dist/public/js/services/chat.js +190 -0
- package/dist/public/js/services/organism-roles.js +51 -0
- package/dist/public/js/services/organisms.js +5 -25
- 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 +9 -1
- package/dist/public/views/admin/organism-ownership-tab.js +124 -0
- package/dist/public/views/admin/owners-tab.js +15 -4
- package/dist/public/views/admin/usage-tab.calls.js +120 -0
- package/dist/public/views/admin/usage-tab.js +18 -4
- package/dist/public/views/admin.js +2 -0
- 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 -296
- package/dist/public/views/profile/landing-page.cards.js +1 -0
- package/dist/public/views/profile/organisms/home.js +3 -1
- package/dist/public/views/profile/organisms/members.js +29 -4
- package/dist/public/views/profile/usage-tab.js +204 -0
- package/dist/public/views/profile.js +2 -0
- 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-commit-msg.d.ts +8 -0
- package/dist/scripts/check-commit-msg.d.ts.map +1 -0
- package/dist/scripts/check-commit-msg.js +118 -0
- package/dist/scripts/check-commit-msg.js.map +1 -0
- 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-liaison-surface.js +27 -2
- package/dist/scripts/check-liaison-surface.js.map +1 -1
- package/dist/scripts/check-locales.js +38 -0
- package/dist/scripts/check-locales.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-route-scopes.d.ts.map +1 -1
- package/dist/scripts/check-route-scopes.js +33 -4
- package/dist/scripts/check-route-scopes.js.map +1 -1
- package/dist/scripts/check-shared-implementation.js +28 -11
- package/dist/scripts/check-shared-implementation.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/check-trusted-keys.d.ts +90 -1
- package/dist/scripts/check-trusted-keys.d.ts.map +1 -1
- package/dist/scripts/check-trusted-keys.js +521 -52
- package/dist/scripts/check-trusted-keys.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 +69 -6
- package/dist/src/auth/middleware.d.ts.map +1 -1
- package/dist/src/auth/middleware.js +130 -28
- package/dist/src/auth/middleware.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts +5 -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 +20 -2
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-telemetry.d.ts +7 -1
- package/dist/src/cli/connect/mcp/tools/agent-telemetry.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-telemetry.js +24 -0
- package/dist/src/cli/connect/mcp/tools/agent-telemetry.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/mcp/tools/organisms.d.ts +2 -0
- package/dist/src/cli/connect/mcp/tools/organisms.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/organisms.js +16 -0
- package/dist/src/cli/connect/mcp/tools/organisms.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 +1 -0
- package/dist/src/cli/connect/tool-call-defs-agent.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-agent.js +6 -0
- 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-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/appdev-pitfalls.d.ts +1 -0
- package/dist/src/data/appdev-pitfalls.d.ts.map +1 -1
- package/dist/src/data/appdev-pitfalls.js +11 -0
- package/dist/src/data/appdev-pitfalls.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 +2251 -102
- 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 +21 -1
- package/dist/src/index-start.js.map +1 -1
- package/dist/src/mcp/agent-tasks.d.ts +16 -0
- package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
- package/dist/src/mcp/agent-tasks.js +84 -54
- package/dist/src/mcp/agent-tasks.js.map +1 -1
- package/dist/src/mcp/agent-telemetry.d.ts +6 -1
- package/dist/src/mcp/agent-telemetry.d.ts.map +1 -1
- package/dist/src/mcp/agent-telemetry.js +37 -1
- package/dist/src/mcp/agent-telemetry.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 +23 -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/agent-messaging.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/agent-messaging.js +18 -0
- package/dist/src/mcp/catalog/definitions/agent-messaging.js.map +1 -1
- 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 +59 -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 +96 -2
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts +2 -0
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +7 -3
- 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 +34 -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 +26 -7
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/mcp/core-admin.d.ts +7 -3
- package/dist/src/mcp/core-admin.d.ts.map +1 -1
- package/dist/src/mcp/core-admin.js +60 -3
- package/dist/src/mcp/core-admin.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 +43 -2
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/organisms-email-invites.d.ts.map +1 -1
- package/dist/src/mcp/organisms-email-invites.js +2 -1
- package/dist/src/mcp/organisms-email-invites.js.map +1 -1
- package/dist/src/mcp/organisms-name-invites.d.ts.map +1 -1
- package/dist/src/mcp/organisms-name-invites.js +40 -1
- package/dist/src/mcp/organisms-name-invites.js.map +1 -1
- package/dist/src/mcp/organisms.d.ts.map +1 -1
- package/dist/src/mcp/organisms.js +6 -1
- package/dist/src/mcp/organisms.js.map +1 -1
- package/dist/src/mcp/tool-usage-wrap.d.ts +9 -0
- package/dist/src/mcp/tool-usage-wrap.d.ts.map +1 -0
- package/dist/src/mcp/tool-usage-wrap.js +87 -0
- package/dist/src/mcp/tool-usage-wrap.js.map +1 -0
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +9 -0
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/middleware/idempotency.d.ts +6 -0
- package/dist/src/middleware/idempotency.d.ts.map +1 -1
- package/dist/src/middleware/idempotency.js +23 -2
- package/dist/src/middleware/idempotency.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/webhook-schemas.d.ts +2 -2
- 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/admin-monitoring.d.ts +2 -0
- package/dist/src/routes/admin-monitoring.d.ts.map +1 -1
- package/dist/src/routes/admin-monitoring.js +32 -0
- package/dist/src/routes/admin-monitoring.js.map +1 -1
- package/dist/src/routes/admin-organisms.d.ts +28 -0
- package/dist/src/routes/admin-organisms.d.ts.map +1 -0
- package/dist/src/routes/admin-organisms.js +99 -0
- package/dist/src/routes/admin-organisms.js.map +1 -0
- package/dist/src/routes/admin-usage.d.ts +33 -0
- package/dist/src/routes/admin-usage.d.ts.map +1 -0
- package/dist/src/routes/admin-usage.js +198 -0
- package/dist/src/routes/admin-usage.js.map +1 -0
- 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/completion.d.ts +5 -0
- package/dist/src/routes/agent-tasks/completion.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/completion.js +35 -54
- package/dist/src/routes/agent-tasks/completion.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/agents/device-auth.d.ts.map +1 -1
- package/dist/src/routes/agents/device-auth.js +27 -4
- package/dist/src/routes/agents/device-auth.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 +4 -0
- package/dist/src/routes/apps/read.d.ts.map +1 -1
- package/dist/src/routes/apps/read.js +47 -2
- 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/capabilities.d.ts +17 -0
- package/dist/src/routes/capabilities.d.ts.map +1 -1
- package/dist/src/routes/capabilities.js +187 -4
- package/dist/src/routes/capabilities.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 +27 -0
- package/dist/src/routes/disputes.d.ts.map +1 -1
- package/dist/src/routes/disputes.js +74 -79
- 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/messaging.d.ts +6 -0
- package/dist/src/routes/federation-sync/messaging.d.ts.map +1 -1
- package/dist/src/routes/federation-sync/messaging.js +22 -1
- package/dist/src/routes/federation-sync/messaging.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 +7 -0
- package/dist/src/routes/instances/install.d.ts.map +1 -1
- package/dist/src/routes/instances/install.js +31 -24
- package/dist/src/routes/instances/install.js.map +1 -1
- package/dist/src/routes/library-packs.d.ts +7 -0
- package/dist/src/routes/library-packs.d.ts.map +1 -1
- package/dist/src/routes/library-packs.js +32 -8
- package/dist/src/routes/library-packs.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/messages.d.ts +6 -0
- package/dist/src/routes/messages.d.ts.map +1 -1
- package/dist/src/routes/messages.js +15 -3
- package/dist/src/routes/messages.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/crud.d.ts +4 -0
- package/dist/src/routes/organisms/crud.d.ts.map +1 -1
- package/dist/src/routes/organisms/crud.js +25 -7
- package/dist/src/routes/organisms/crud.js.map +1 -1
- package/dist/src/routes/organisms/gates.d.ts.map +1 -1
- package/dist/src/routes/organisms/gates.js +19 -2
- package/dist/src/routes/organisms/gates.js.map +1 -1
- package/dist/src/routes/organisms/membership.d.ts +4 -0
- package/dist/src/routes/organisms/membership.d.ts.map +1 -1
- package/dist/src/routes/organisms/membership.js +88 -36
- package/dist/src/routes/organisms/membership.js.map +1 -1
- package/dist/src/routes/organisms/shared.d.ts.map +1 -1
- package/dist/src/routes/organisms/shared.js +2 -1
- package/dist/src/routes/organisms/shared.js.map +1 -1
- package/dist/src/routes/organisms/workspace-access.d.ts +5 -0
- package/dist/src/routes/organisms/workspace-access.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-access.js +41 -2
- package/dist/src/routes/organisms/workspace-access.js.map +1 -1
- package/dist/src/routes/organisms/workspace-ops.d.ts +2 -0
- package/dist/src/routes/organisms/workspace-ops.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-ops.js +10 -6
- package/dist/src/routes/organisms/workspace-ops.js.map +1 -1
- package/dist/src/routes/organisms/workspace-read.d.ts +3 -0
- package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-read.js +13 -7
- package/dist/src/routes/organisms/workspace-read.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/subdomains.d.ts +9 -1
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +55 -1
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/routes/usage-reports.d.ts +31 -0
- package/dist/src/routes/usage-reports.d.ts.map +1 -0
- package/dist/src/routes/usage-reports.js +107 -0
- package/dist/src/routes/usage-reports.js.map +1 -0
- package/dist/src/routes/validate.d.ts.map +1 -1
- package/dist/src/routes/validate.js +1 -0
- package/dist/src/routes/validate.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 +32 -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/agent-task-fanout.d.ts +61 -0
- package/dist/src/services/agent-task-fanout.d.ts.map +1 -1
- package/dist/src/services/agent-task-fanout.js +114 -2
- package/dist/src/services/agent-task-fanout.js.map +1 -1
- package/dist/src/services/agent-task-write.d.ts.map +1 -1
- package/dist/src/services/agent-task-write.js +6 -0
- package/dist/src/services/agent-task-write.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 +39 -0
- package/dist/src/services/ai-completion.d.ts.map +1 -1
- package/dist/src/services/ai-completion.js +77 -10
- 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 +10 -2
- package/dist/src/services/ai-transcription.js.map +1 -1
- package/dist/src/services/ai-usage-admin.d.ts +19 -8
- package/dist/src/services/ai-usage-admin.d.ts.map +1 -1
- package/dist/src/services/ai-usage-admin.js +30 -35
- package/dist/src/services/ai-usage-admin.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-artifact-lint.d.ts +4 -0
- package/dist/src/services/app-artifact-lint.d.ts.map +1 -1
- package/dist/src/services/app-artifact-lint.js +49 -0
- package/dist/src/services/app-artifact-lint.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/app-spec-gate.d.ts +4 -0
- package/dist/src/services/app-spec-gate.d.ts.map +1 -1
- package/dist/src/services/app-spec-gate.js +16 -1
- package/dist/src/services/app-spec-gate.js.map +1 -1
- package/dist/src/services/attachment-duplication.d.ts +4 -0
- package/dist/src/services/attachment-duplication.d.ts.map +1 -1
- package/dist/src/services/attachment-duplication.js +15 -0
- package/dist/src/services/attachment-duplication.js.map +1 -1
- 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/capability-record.d.ts.map +1 -1
- package/dist/src/services/capability-record.js +22 -9
- package/dist/src/services/capability-record.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/core-jobs.d.ts +2 -0
- package/dist/src/services/core-jobs.d.ts.map +1 -1
- package/dist/src/services/core-jobs.js +11 -0
- package/dist/src/services/core-jobs.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/invitations.d.ts +0 -20
- package/dist/src/services/invitations.d.ts.map +1 -1
- package/dist/src/services/invitations.js +30 -0
- package/dist/src/services/invitations.js.map +1 -1
- package/dist/src/services/job-seeding.d.ts +1 -0
- package/dist/src/services/job-seeding.d.ts.map +1 -1
- package/dist/src/services/job-seeding.js +6 -0
- package/dist/src/services/job-seeding.js.map +1 -1
- package/dist/src/services/ledger-admin.d.ts +18 -4
- package/dist/src/services/ledger-admin.d.ts.map +1 -1
- package/dist/src/services/ledger-admin.js +47 -33
- package/dist/src/services/ledger-admin.js.map +1 -1
- package/dist/src/services/markdown-negotiation.js +1 -1
- package/dist/src/services/markdown-negotiation.js.map +1 -1
- package/dist/src/services/message-broadcast.d.ts.map +1 -1
- package/dist/src/services/message-broadcast.js +29 -1
- package/dist/src/services/message-broadcast.js.map +1 -1
- package/dist/src/services/metered-access.d.ts +9 -2
- package/dist/src/services/metered-access.d.ts.map +1 -1
- package/dist/src/services/metered-access.js +92 -12
- package/dist/src/services/metered-access.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/organism-import.d.ts.map +1 -1
- package/dist/src/services/organism-import.js +4 -1
- package/dist/src/services/organism-import.js.map +1 -1
- package/dist/src/services/organism-lifecycle.d.ts.map +1 -1
- package/dist/src/services/organism-lifecycle.js +5 -1
- package/dist/src/services/organism-lifecycle.js.map +1 -1
- package/dist/src/services/organism-ownership.d.ts +56 -0
- package/dist/src/services/organism-ownership.d.ts.map +1 -0
- package/dist/src/services/organism-ownership.js +174 -0
- package/dist/src/services/organism-ownership.js.map +1 -0
- package/dist/src/services/organism-privacy.d.ts.map +1 -1
- package/dist/src/services/organism-privacy.js +2 -1
- package/dist/src/services/organism-privacy.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 +54 -1
- package/dist/src/services/scope-vocabulary-migration.d.ts.map +1 -1
- package/dist/src/services/scope-vocabulary-migration.js +101 -6
- 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/usage/archive-job.d.ts +25 -0
- package/dist/src/services/usage/archive-job.d.ts.map +1 -0
- package/dist/src/services/usage/archive-job.js +36 -0
- package/dist/src/services/usage/archive-job.js.map +1 -0
- package/dist/src/services/usage/record-app-open.d.ts +8 -0
- package/dist/src/services/usage/record-app-open.d.ts.map +1 -0
- package/dist/src/services/usage/record-app-open.js +52 -0
- package/dist/src/services/usage/record-app-open.js.map +1 -0
- package/dist/src/services/usage/rollup-cuts.d.ts +44 -0
- package/dist/src/services/usage/rollup-cuts.d.ts.map +1 -0
- package/dist/src/services/usage/rollup-cuts.js +81 -0
- package/dist/src/services/usage/rollup-cuts.js.map +1 -0
- package/dist/src/services/usage/rollup-engine.d.ts +71 -0
- package/dist/src/services/usage/rollup-engine.d.ts.map +1 -0
- package/dist/src/services/usage/rollup-engine.js +237 -0
- package/dist/src/services/usage/rollup-engine.js.map +1 -0
- package/dist/src/services/usage/usage-buffer.d.ts +25 -0
- package/dist/src/services/usage/usage-buffer.d.ts.map +1 -0
- package/dist/src/services/usage/usage-buffer.js +146 -0
- package/dist/src/services/usage/usage-buffer.js.map +1 -0
- package/dist/src/services/usage/usage-read.d.ts +115 -0
- package/dist/src/services/usage/usage-read.d.ts.map +1 -0
- package/dist/src/services/usage/usage-read.js +246 -0
- package/dist/src/services/usage/usage-read.js.map +1 -0
- package/dist/src/services/usage-metering.d.ts +5 -0
- package/dist/src/services/usage-metering.d.ts.map +1 -1
- package/dist/src/services/usage-metering.js +7 -0
- package/dist/src/services/usage-metering.js.map +1 -1
- 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/interface.d.ts +4 -1
- package/dist/src/storage/interface.d.ts.map +1 -1
- package/dist/src/storage/interface.js +1 -0
- package/dist/src/storage/interface.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +119 -0
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/index.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/index.js +2 -1
- package/dist/src/storage/providers/postgres-kysely/index.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.js +3 -0
- package/dist/src/storage/providers/postgres-kysely/methods/agent-tasks.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.js +4 -0
- package/dist/src/storage/providers/postgres-kysely/methods/agent-usage.js.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/organisms.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +11 -2
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/usage.d.ts +32 -0
- package/dist/src/storage/providers/postgres-kysely/methods/usage.d.ts.map +1 -0
- package/dist/src/storage/providers/postgres-kysely/methods/usage.js +336 -0
- package/dist/src/storage/providers/postgres-kysely/methods/usage.js.map +1 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0036_usage_telemetry.sql +181 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0037_task_created_by.sql +18 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0038_organism_owners.sql +31 -0
- 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 +3 -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/governance.d.ts +2 -0
- package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/governance.js +25 -4
- package/dist/src/storage/providers/sqlite/methods/governance.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/usage.d.ts +43 -0
- package/dist/src/storage/providers/sqlite/methods/usage.d.ts.map +1 -0
- package/dist/src/storage/providers/sqlite/methods/usage.js +37 -0
- package/dist/src/storage/providers/sqlite/methods/usage.js.map +1 -0
- package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/repos/agent-task.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-task.js +4 -2
- package/dist/src/storage/providers/sqlite/repos/agent-task.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-usage.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/agent-usage.js +4 -2
- package/dist/src/storage/providers/sqlite/repos/agent-usage.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/community.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/community.js +20 -0
- package/dist/src/storage/providers/sqlite/repos/community.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/usage.d.ts +35 -0
- package/dist/src/storage/providers/sqlite/repos/usage.d.ts.map +1 -0
- package/dist/src/storage/providers/sqlite/repos/usage.js +352 -0
- package/dist/src/storage/providers/sqlite/repos/usage.js.map +1 -0
- package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-1.js +2 -0
- package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-3.js +1 -0
- package/dist/src/storage/providers/sqlite/schema-tables-3.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-4.d.ts +2 -0
- package/dist/src/storage/providers/sqlite/schema-tables-4.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-4.js +131 -0
- package/dist/src/storage/providers/sqlite/schema-tables-4.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts +2 -0
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +155 -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/repositories/usage.repository.d.ts +80 -0
- package/dist/src/storage/repositories/usage.repository.d.ts.map +1 -0
- package/dist/src/storage/repositories/usage.repository.js +23 -0
- package/dist/src/storage/repositories/usage.repository.js.map +1 -0
- package/dist/src/storage/types/agents-messaging.d.ts +24 -0
- package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
- package/dist/src/storage/types/agents-messaging.js +1 -0
- package/dist/src/storage/types/agents-messaging.js.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/storage/types/organisms-federation.d.ts +21 -0
- package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
- package/dist/src/storage/types/usage.d.ts +186 -0
- package/dist/src/storage/types/usage.d.ts.map +1 -0
- package/dist/src/storage/types/usage.js +24 -0
- package/dist/src/storage/types/usage.js.map +1 -0
- 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/src/utils/scope-coverage.d.ts +21 -0
- package/dist/src/utils/scope-coverage.d.ts.map +1 -1
- package/dist/src/utils/scope-coverage.js +22 -1
- package/dist/src/utils/scope-coverage.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 +13 -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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"}
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
* @file src/routes/agent-tasks/completion.ts
|
|
3
3
|
* @description Agent-task completion + review routes (event, complete, fail, rate, triage, todos, events, deliverables). Extracted from agent-tasks.ts to satisfy max-file-lines.
|
|
4
4
|
* @version-history
|
|
5
|
+
* v1.5.0 — 2026-08-14 — /complete and /fail are now nothing but the door: the state gate, the
|
|
6
|
+
* records and the tail all live in services/agent-task-fanout.ts, which aimeat_task_complete and
|
|
7
|
+
* aimeat_task_fail call as well. One behaviour change reaches this side of the pair: an AGENT
|
|
8
|
+
* completing over REST now gets the provenance stamp it has always got over MCP. A human owner
|
|
9
|
+
* is untouched, because the stamp is decided by the writing principal rather than by the door.
|
|
5
10
|
* v1.4.0 — 2026-08-12 — /complete answers after the fan-out rather than before it. The response
|
|
6
11
|
* used to overtake the agent's own counters, so a caller reading them back saw the pre-completion
|
|
7
12
|
* numbers on Postgres and the post-completion ones on SQLite.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/completion.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../../src/routes/agent-tasks/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAA+C,MAAM,4BAA4B,CAAC;AAWvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAChF,IAAI,CA0VN"}
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
* @file src/routes/agent-tasks/completion.ts
|
|
3
3
|
* @description Agent-task completion + review routes (event, complete, fail, rate, triage, todos, events, deliverables). Extracted from agent-tasks.ts to satisfy max-file-lines.
|
|
4
4
|
* @version-history
|
|
5
|
+
* v1.5.0 — 2026-08-14 — /complete and /fail are now nothing but the door: the state gate, the
|
|
6
|
+
* records and the tail all live in services/agent-task-fanout.ts, which aimeat_task_complete and
|
|
7
|
+
* aimeat_task_fail call as well. One behaviour change reaches this side of the pair: an AGENT
|
|
8
|
+
* completing over REST now gets the provenance stamp it has always got over MCP. A human owner
|
|
9
|
+
* is untouched, because the stamp is decided by the writing principal rather than by the door.
|
|
5
10
|
* v1.4.0 — 2026-08-12 — /complete answers after the fan-out rather than before it. The response
|
|
6
11
|
* used to overtake the agent's own counters, so a caller reading them back saw the pre-completion
|
|
7
12
|
* numbers on Postgres and the post-completion ones on SQLite.
|
|
@@ -24,7 +29,7 @@ import { success, error } from '../../middleware/envelope.js';
|
|
|
24
29
|
import { requireAuth, requireRole } from '../../auth/middleware.js';
|
|
25
30
|
import { emitChange } from '../../services/event-bus.js';
|
|
26
31
|
import { logger } from '../../utils/logger.js';
|
|
27
|
-
import {
|
|
32
|
+
import { completeTask, failTask } from '../../services/agent-task-fanout.js';
|
|
28
33
|
import { recomputeAndCacheStatistics } from '../../services/agent-statistics.js';
|
|
29
34
|
import { recordTaskEvent, setTodoStatus } from '../../services/agent-task-write.js';
|
|
30
35
|
import { AgentTaskRateSchema, AgentTaskTriageSchema } from '../../models/agent-task-schemas.js';
|
|
@@ -66,53 +71,33 @@ export function registerTaskCompletionRoutes(router, config, storage, helpers) {
|
|
|
66
71
|
res.status(403).json(error(config.nodeId, 'FORBIDDEN', 'Access denied'));
|
|
67
72
|
return;
|
|
68
73
|
}
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
// the
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
// The whole completion is services/agent-task-fanout.ts, because it belongs to COMPLETING rather
|
|
75
|
+
// than to this door: which states may complete (active AND stalled, so an agent that came back
|
|
76
|
+
// after a stall still gets to hand its work in), the record, the provenance stamp on the message
|
|
77
|
+
// the owner reads, the 'completed' event, and the eight things a completion sets off: the
|
|
78
|
+
// workflow run advances, the open item behind it closes, the agent's counters move, the runner's
|
|
79
|
+
// live-trace key is reclaimed, the automation report is sent and its advisory outbox drained, and
|
|
80
|
+
// a public deliverable reaches the feed.
|
|
81
|
+
//
|
|
82
|
+
// The door answers AFTER all of it. Only the agent's counters are awaited inside the fan-out; the
|
|
83
|
+
// slow steps stay fire-and-forget. Answering first made those counters a race against whatever
|
|
84
|
+
// the caller does next, and the next thing is always a read: the Activity tab reloads on the
|
|
85
|
+
// change event, and an agent that just finished asks for its own /capabilities. On SQLite the
|
|
86
|
+
// counter write landed inside the same tick and the race was invisible; on Postgres every query
|
|
87
|
+
// is a round trip, the read arrived first and activityStats came back null for a task the caller
|
|
88
|
+
// had been told was done.
|
|
89
|
+
const done = await completeTask({ storage, config }, task, {
|
|
90
|
+
message: typeof req.body?.message === 'string' ? req.body.message : undefined,
|
|
91
|
+
// The memory key, under the agent's namespace, where the deliverable was published. Lets the
|
|
92
|
+
// owner UI link straight to the output, and puts a PUBLIC deliverable on the activity feed.
|
|
93
|
+
deliverableKey: typeof req.body?.deliverable_key === 'string' ? req.body.deliverable_key : undefined,
|
|
94
|
+
pipeline: 'rest.task_complete',
|
|
95
|
+
}, resolve(req));
|
|
96
|
+
if (!done.ok) {
|
|
97
|
+
res.status(done.status).json(error(config.nodeId, done.code, done.message));
|
|
77
98
|
return;
|
|
78
99
|
}
|
|
79
|
-
|
|
80
|
-
const message = typeof req.body?.message === 'string' ? req.body.message : 'Task completed';
|
|
81
|
-
// Optional: the memory key (under the agent's namespace) where the agent
|
|
82
|
-
// published the deliverable. Lets the owner UI link straight to the output.
|
|
83
|
-
const rawDeliverable = req.body?.deliverable_key;
|
|
84
|
-
const deliverableKey = (typeof rawDeliverable === 'string' && rawDeliverable.trim())
|
|
85
|
-
? rawDeliverable.trim().slice(0, 256)
|
|
86
|
-
: undefined;
|
|
87
|
-
const updated = await storage.updateAgentTask(id, {
|
|
88
|
-
status: 'done',
|
|
89
|
-
completedAt: now,
|
|
90
|
-
lastEventAt: now,
|
|
91
|
-
updatedAt: now,
|
|
92
|
-
...(deliverableKey ? { deliverableKey } : {}),
|
|
93
|
-
});
|
|
94
|
-
await storage.appendTaskEvent({
|
|
95
|
-
id: randomUUID(),
|
|
96
|
-
taskId: id,
|
|
97
|
-
type: 'completed',
|
|
98
|
-
message,
|
|
99
|
-
timestamp: now,
|
|
100
|
-
});
|
|
101
|
-
// Everything a completion sets off is services/agent-task-fanout.ts, because it belongs to
|
|
102
|
-
// COMPLETING rather than to this door: the workflow run that dispatched the task advances, the
|
|
103
|
-
// open item behind it closes, the agent's counters move, the runner's live-trace key is
|
|
104
|
-
// reclaimed, the automation report is sent and its advisory outbox drained, and a public
|
|
105
|
-
// deliverable reaches the feed. aimeat_task_complete did none of it.
|
|
106
|
-
//
|
|
107
|
-
// The door answers AFTER it. Only the agent's counters are awaited inside; the slow steps stay
|
|
108
|
-
// fire-and-forget. Answering first made those counters a race against whatever the caller does
|
|
109
|
-
// next, and the next thing is always a read: the Activity tab reloads on the change event, and
|
|
110
|
-
// an agent that just finished asks for its own /capabilities. On SQLite the counter write landed
|
|
111
|
-
// inside the same tick and the race was invisible; on Postgres every query is a round trip, the
|
|
112
|
-
// read arrived first and activityStats came back null for a task the caller had been told was
|
|
113
|
-
// done. The MCP door has always awaited this before replying — this is the same order.
|
|
114
|
-
await afterTaskCompleted({ storage, config }, task, updated ?? null, message, deliverableKey, resolve(req));
|
|
115
|
-
res.json(success(config.nodeId, { task: updated }));
|
|
100
|
+
res.json(success(config.nodeId, { task: done.task }));
|
|
116
101
|
});
|
|
117
102
|
/* ── POST /v1/agents/:name/tasks/:id/fail -- Fail task (active -> failed) ── */
|
|
118
103
|
router.post('/v1/agents/:name/tasks/:id/fail', requireAuth(), async (req, res) => {
|
|
@@ -126,15 +111,11 @@ export function registerTaskCompletionRoutes(router, config, storage, helpers) {
|
|
|
126
111
|
res.status(403).json(error(config.nodeId, 'FORBIDDEN', 'Access denied'));
|
|
127
112
|
return;
|
|
128
113
|
}
|
|
129
|
-
// Stalled tasks can also be marked failed -- e.g. the agent realises it
|
|
130
|
-
// can't recover and explicitly reports failure rather than letting the
|
|
131
|
-
// task linger in stalled state forever.
|
|
132
|
-
if (task.status !== 'active' && task.status !== 'stalled') {
|
|
133
|
-
res.status(409).json(error(config.nodeId, 'INVALID_STATE', `Only active or stalled tasks can be failed (current: ${task.status})`));
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
114
|
const message = typeof req.body?.message === 'string' ? req.body.message : 'Task failed';
|
|
137
|
-
// services/agent-task-fanout.ts
|
|
115
|
+
// services/agent-task-fanout.ts, which aimeat_task_fail calls for the same transition. The state
|
|
116
|
+
// gate that used to stand here as well (active or stalled, because an agent that cannot recover
|
|
117
|
+
// still gets to say so rather than leaving the task stalled forever) was a second copy of
|
|
118
|
+
// FAILABLE_STATES, the shape this whole pass exists to remove. failTask answers with the same 409.
|
|
138
119
|
const failed = await failTask({ storage, config }, task, message, resolve(req));
|
|
139
120
|
if (!failed.ok) {
|
|
140
121
|
res.status(failed.status).json(error(config.nodeId, failed.code, failed.message));
|