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
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/storage/providers/sqlite/repos/usage.ts
|
|
3
|
+
* @description SQLite implementation of usage telemetry's three layers: the hot call stream, the
|
|
4
|
+
* archive sweep, and the discriminated serving rollup with its transactional fold.
|
|
5
|
+
* Design: docs/internal/telemetria/02-design.md
|
|
6
|
+
*
|
|
7
|
+
* SYNCHRONOUS BY NATURE. better-sqlite3 is sync, so these are plain functions; the storage class
|
|
8
|
+
* wraps them in the async Storage surface. The fold's atomicity therefore comes from
|
|
9
|
+
* db.transaction(), which better-sqlite3 runs synchronously — no await can slip between the
|
|
10
|
+
* deltas and the watermark, which is stronger than the Postgres side needs to be explicit about.
|
|
11
|
+
* @structure
|
|
12
|
+
* - appendUsageCall / listUsageCalls / listUsageCallsForFold / listUsageEventsForFold
|
|
13
|
+
* - archiveUsageRows
|
|
14
|
+
* - getUsageCursor / setUsageCursor / advanceUsageRollup
|
|
15
|
+
* - queryUsageRollup / clearUsageRollupRange
|
|
16
|
+
* @version-history
|
|
17
|
+
* v1.0.0 — 2026-08-14 — Initial: three-layer usage telemetry substrate.
|
|
18
|
+
*/
|
|
19
|
+
import { randomUUID } from 'node:crypto';
|
|
20
|
+
import { logger } from '../../../../utils/logger.js';
|
|
21
|
+
function num(v) {
|
|
22
|
+
if (typeof v === 'number')
|
|
23
|
+
return Number.isFinite(v) ? v : 0;
|
|
24
|
+
if (typeof v === 'bigint')
|
|
25
|
+
return Number(v);
|
|
26
|
+
if (typeof v === 'string') {
|
|
27
|
+
const n = Number(v);
|
|
28
|
+
return Number.isFinite(n) ? n : 0;
|
|
29
|
+
}
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
/** SQLite stores JSON as TEXT. A malformed blob is a lost detail, never a thrown read. */
|
|
33
|
+
function parseObj(v) {
|
|
34
|
+
if (typeof v !== 'string' || !v)
|
|
35
|
+
return {};
|
|
36
|
+
try {
|
|
37
|
+
const p = JSON.parse(v);
|
|
38
|
+
return p && typeof p === 'object' && !Array.isArray(p) ? p : {};
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
// A malformed meta/extra blob costs ONE row its detail; throwing would cost the whole report.
|
|
42
|
+
// Logged rather than swallowed: the only way this happens is a writer putting something other
|
|
43
|
+
// than JSON in the column, and that is a defect someone should see.
|
|
44
|
+
logger.warn('usage: unparseable JSON column, returning empty', { error: String(err) });
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function numObj(v) {
|
|
49
|
+
const out = {};
|
|
50
|
+
for (const [k, val] of Object.entries(parseObj(v)))
|
|
51
|
+
out[k] = num(val);
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
function toCall(r) {
|
|
55
|
+
return {
|
|
56
|
+
id: r.id,
|
|
57
|
+
ts: r.ts,
|
|
58
|
+
ownerGhii: r.ownerGhii,
|
|
59
|
+
actorGaii: r.actorGaii ?? '',
|
|
60
|
+
actorKind: (r.actorKind || 'owner'),
|
|
61
|
+
surface: r.surface,
|
|
62
|
+
coordinate: r.coordinate ?? '',
|
|
63
|
+
appId: r.appId ?? '',
|
|
64
|
+
counterpartyGhii: r.counterpartyGhii ?? '',
|
|
65
|
+
outcome: (r.outcome || 'ok'),
|
|
66
|
+
reason: r.reason ?? '',
|
|
67
|
+
durationMs: num(r.durationMs),
|
|
68
|
+
chargedUnits: num(r.chargedUnits),
|
|
69
|
+
unit: (r.unit ?? ''),
|
|
70
|
+
currency: r.currency ?? '',
|
|
71
|
+
entitlementId: r.entitlementId ?? '',
|
|
72
|
+
runId: r.runId ?? '',
|
|
73
|
+
meta: parseObj(r.meta),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function toRollup(r) {
|
|
77
|
+
return {
|
|
78
|
+
id: r.id,
|
|
79
|
+
cut: r.cut,
|
|
80
|
+
grain: r.grain,
|
|
81
|
+
bucket: r.bucket,
|
|
82
|
+
ownerGhii: r.ownerGhii ?? '',
|
|
83
|
+
actorGaii: r.actorGaii ?? '',
|
|
84
|
+
appId: r.appId ?? '',
|
|
85
|
+
model: r.model ?? '',
|
|
86
|
+
provider: r.provider ?? '',
|
|
87
|
+
surface: r.surface ?? '',
|
|
88
|
+
outcome: r.outcome ?? '',
|
|
89
|
+
coordinate: r.coordinate ?? '',
|
|
90
|
+
counterpartyGhii: r.counterpartyGhii ?? '',
|
|
91
|
+
calls: num(r.calls),
|
|
92
|
+
errors: num(r.errors),
|
|
93
|
+
refusals: num(r.refusals),
|
|
94
|
+
tokensIn: num(r.tokensIn),
|
|
95
|
+
tokensOut: num(r.tokensOut),
|
|
96
|
+
costUsd: num(r.costUsd),
|
|
97
|
+
unpricedCalls: num(r.unpricedCalls),
|
|
98
|
+
chargedUnits: num(r.chargedUnits),
|
|
99
|
+
durationMsSum: num(r.durationMsSum),
|
|
100
|
+
durationMsMax: num(r.durationMsMax),
|
|
101
|
+
actorsSeen: num(r.actorsSeen),
|
|
102
|
+
extra: numObj(r.extra),
|
|
103
|
+
updatedAt: r.updatedAt,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function toEvent(r) {
|
|
107
|
+
return {
|
|
108
|
+
id: r.id,
|
|
109
|
+
ts: r.ts,
|
|
110
|
+
agentGaii: r.agentGaii,
|
|
111
|
+
ownerGhii: r.ownerGhii,
|
|
112
|
+
runId: r.runId ?? undefined,
|
|
113
|
+
model: r.model,
|
|
114
|
+
provider: r.provider,
|
|
115
|
+
promptTokens: num(r.promptTokens),
|
|
116
|
+
completionTokens: num(r.completionTokens),
|
|
117
|
+
costUsd: r.costUsd == null ? null : num(r.costUsd),
|
|
118
|
+
priceRef: r.priceRef ?? null,
|
|
119
|
+
source: r.source,
|
|
120
|
+
apiKeyScope: r.apiKeyScope,
|
|
121
|
+
organismId: r.organismId ?? undefined,
|
|
122
|
+
workspaceId: r.workspaceId ?? undefined,
|
|
123
|
+
capabilityId: r.capabilityId ?? undefined,
|
|
124
|
+
consumerGhii: r.consumerGhii ?? undefined,
|
|
125
|
+
provenanceId: r.provenanceId ?? undefined,
|
|
126
|
+
appId: r.appId ?? '',
|
|
127
|
+
surface: r.surface ?? '',
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
// ── Layer 1 ──
|
|
131
|
+
export function appendUsageCall(db, rows) {
|
|
132
|
+
if (!rows.length)
|
|
133
|
+
return;
|
|
134
|
+
const stmt = db.prepare(`INSERT INTO usage_calls
|
|
135
|
+
(id, ts, ownerGhii, actorGaii, actorKind, surface, coordinate, appId, counterpartyGhii,
|
|
136
|
+
outcome, reason, durationMs, chargedUnits, unit, currency, entitlementId, runId, meta)
|
|
137
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
138
|
+
const insertAll = db.transaction((batch) => {
|
|
139
|
+
for (const r of batch) {
|
|
140
|
+
stmt.run(r.id, r.ts, r.ownerGhii, r.actorGaii, r.actorKind, r.surface, r.coordinate, r.appId, r.counterpartyGhii, r.outcome, r.reason, r.durationMs, r.chargedUnits, r.unit, r.currency, r.entitlementId, r.runId, JSON.stringify(r.meta));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
insertAll(rows);
|
|
144
|
+
}
|
|
145
|
+
export function listUsageCalls(db, filter) {
|
|
146
|
+
// NOT owner-scoped unless the filter says so: the route gates on the operator role.
|
|
147
|
+
const clauses = [];
|
|
148
|
+
const params = [];
|
|
149
|
+
if (filter.ownerGhii) {
|
|
150
|
+
clauses.push('ownerGhii = ?');
|
|
151
|
+
params.push(filter.ownerGhii);
|
|
152
|
+
}
|
|
153
|
+
if (filter.actorGaii) {
|
|
154
|
+
clauses.push('actorGaii = ?');
|
|
155
|
+
params.push(filter.actorGaii);
|
|
156
|
+
}
|
|
157
|
+
if (filter.surface) {
|
|
158
|
+
clauses.push('surface = ?');
|
|
159
|
+
params.push(filter.surface);
|
|
160
|
+
}
|
|
161
|
+
if (filter.appId) {
|
|
162
|
+
clauses.push('appId = ?');
|
|
163
|
+
params.push(filter.appId);
|
|
164
|
+
}
|
|
165
|
+
if (filter.outcome) {
|
|
166
|
+
clauses.push('outcome = ?');
|
|
167
|
+
params.push(filter.outcome);
|
|
168
|
+
}
|
|
169
|
+
if (filter.from) {
|
|
170
|
+
clauses.push('ts >= ?');
|
|
171
|
+
params.push(filter.from);
|
|
172
|
+
}
|
|
173
|
+
if (filter.to) {
|
|
174
|
+
clauses.push('ts <= ?');
|
|
175
|
+
params.push(filter.to);
|
|
176
|
+
}
|
|
177
|
+
const where = clauses.length ? `WHERE ${clauses.join(' AND ')}` : '';
|
|
178
|
+
const limit = Math.min(Math.max(filter.limit ?? 200, 1), 2000);
|
|
179
|
+
const rows = db.prepare(`SELECT * FROM usage_calls ${where} ORDER BY ts DESC LIMIT ?`)
|
|
180
|
+
.all(...params, limit);
|
|
181
|
+
return rows.map(toCall);
|
|
182
|
+
}
|
|
183
|
+
/** Strictly after (lastTs, lastId) in the stream's total order. */
|
|
184
|
+
export function listUsageCallsForFold(db, c) {
|
|
185
|
+
const limit = Math.min(Math.max(c.limit, 1), 20_000);
|
|
186
|
+
const rows = db.prepare(`SELECT * FROM usage_calls
|
|
187
|
+
WHERE ts > ? OR (ts = ? AND id > ?)
|
|
188
|
+
ORDER BY ts ASC, id ASC LIMIT ?`).all(c.lastTs, c.lastTs, c.lastId, limit);
|
|
189
|
+
return rows.map(toCall);
|
|
190
|
+
}
|
|
191
|
+
export function listUsageEventsForFold(db, c) {
|
|
192
|
+
const limit = Math.min(Math.max(c.limit, 1), 20_000);
|
|
193
|
+
const rows = db.prepare(`SELECT * FROM agent_usage_event
|
|
194
|
+
WHERE ts > ? OR (ts = ? AND id > ?)
|
|
195
|
+
ORDER BY ts ASC, id ASC LIMIT ?`).all(c.lastTs, c.lastTs, c.lastId, limit);
|
|
196
|
+
return rows.map(toEvent);
|
|
197
|
+
}
|
|
198
|
+
// ── Layer 2 ──
|
|
199
|
+
/** Columns are NAMED rather than copied positionally, so a later ALTER on a hot table cannot
|
|
200
|
+
* silently shift values into the wrong archive columns. */
|
|
201
|
+
const CALL_COLS = 'id, ts, ownerGhii, actorGaii, actorKind, surface, coordinate, appId, counterpartyGhii, ' +
|
|
202
|
+
'outcome, reason, durationMs, chargedUnits, unit, currency, entitlementId, runId, meta';
|
|
203
|
+
const EVENT_COLS = 'id, ts, agentGaii, ownerGhii, runId, model, provider, promptTokens, completionTokens, ' +
|
|
204
|
+
'costUsd, priceRef, source, apiKeyScope, organismId, workspaceId, capabilityId, ' +
|
|
205
|
+
'consumerGhii, provenanceId, appId, surface';
|
|
206
|
+
export function archiveUsageRows(db, args) {
|
|
207
|
+
const batch = Math.min(Math.max(args.batch, 1), 20_000);
|
|
208
|
+
const archivedAt = new Date().toISOString();
|
|
209
|
+
const moveCalls = db.transaction(() => {
|
|
210
|
+
const ids = db.prepare('SELECT id FROM usage_calls WHERE ts < ? ORDER BY ts ASC LIMIT ?')
|
|
211
|
+
.all(args.before, batch).map(r => r.id);
|
|
212
|
+
if (!ids.length)
|
|
213
|
+
return 0;
|
|
214
|
+
const holes = ids.map(() => '?').join(',');
|
|
215
|
+
db.prepare(`INSERT OR IGNORE INTO usage_calls_archive (${CALL_COLS}, archivedAt)
|
|
216
|
+
SELECT ${CALL_COLS}, ? FROM usage_calls WHERE id IN (${holes})`).run(archivedAt, ...ids);
|
|
217
|
+
db.prepare(`DELETE FROM usage_calls WHERE id IN (${holes})`).run(...ids);
|
|
218
|
+
return ids.length;
|
|
219
|
+
});
|
|
220
|
+
const moveEvents = db.transaction(() => {
|
|
221
|
+
const ids = db.prepare('SELECT id FROM agent_usage_event WHERE ts < ? ORDER BY ts ASC LIMIT ?')
|
|
222
|
+
.all(args.before, batch).map(r => r.id);
|
|
223
|
+
if (!ids.length)
|
|
224
|
+
return 0;
|
|
225
|
+
const holes = ids.map(() => '?').join(',');
|
|
226
|
+
db.prepare(`INSERT OR IGNORE INTO agent_usage_event_archive (${EVENT_COLS}, archivedAt)
|
|
227
|
+
SELECT ${EVENT_COLS}, ? FROM agent_usage_event WHERE id IN (${holes})`).run(archivedAt, ...ids);
|
|
228
|
+
db.prepare(`DELETE FROM agent_usage_event WHERE id IN (${holes})`).run(...ids);
|
|
229
|
+
return ids.length;
|
|
230
|
+
});
|
|
231
|
+
const usageCalls = moveCalls();
|
|
232
|
+
const usageEvents = moveEvents();
|
|
233
|
+
// Hour-grain rollups are the live-dashboard resolution; the day grain carries the history.
|
|
234
|
+
// Deleted rather than archived — derived data, rebuildable from raw.
|
|
235
|
+
const pruned = db.prepare("DELETE FROM usage_rollup WHERE grain = 'hour' AND bucket < ?")
|
|
236
|
+
.run(args.pruneHourBefore);
|
|
237
|
+
return { usageCalls, usageEvents, hourRollupsPruned: pruned.changes };
|
|
238
|
+
}
|
|
239
|
+
export function pruneUsageArchive(db, before) {
|
|
240
|
+
const calls = db.prepare('DELETE FROM usage_calls_archive WHERE ts < ?').run(before).changes;
|
|
241
|
+
const events = db.prepare('DELETE FROM agent_usage_event_archive WHERE ts < ?').run(before).changes;
|
|
242
|
+
return { usageCalls: calls, usageEvents: events };
|
|
243
|
+
}
|
|
244
|
+
// ── Layer 3 ──
|
|
245
|
+
export function getUsageCursor(db, stream) {
|
|
246
|
+
const row = db.prepare('SELECT * FROM usage_rollup_state WHERE stream = ?').get(stream);
|
|
247
|
+
if (!row)
|
|
248
|
+
return null;
|
|
249
|
+
return {
|
|
250
|
+
stream,
|
|
251
|
+
lastTs: row.lastTs ?? '',
|
|
252
|
+
lastId: row.lastId ?? '',
|
|
253
|
+
updatedAt: row.updatedAt,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
export function setUsageCursor(db, stream, lastTs, lastId) {
|
|
257
|
+
db.prepare(`INSERT INTO usage_rollup_state (stream, lastTs, lastId, updatedAt) VALUES (?, ?, ?, ?)
|
|
258
|
+
ON CONFLICT(stream) DO UPDATE SET lastTs = excluded.lastTs, lastId = excluded.lastId,
|
|
259
|
+
updatedAt = excluded.updatedAt`).run(stream, lastTs, lastId, new Date().toISOString());
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Apply every delta and advance the cursor in ONE transaction. That is the whole exactly-once
|
|
263
|
+
* guarantee: a crash before commit replays these rows, a crash after commit continues past them.
|
|
264
|
+
*/
|
|
265
|
+
export function advanceUsageRollup(db, args) {
|
|
266
|
+
const updatedAt = new Date().toISOString();
|
|
267
|
+
const upsert = db.prepare(`INSERT INTO usage_rollup
|
|
268
|
+
(id, cut, grain, bucket, ownerGhii, actorGaii, appId, model, provider, surface, outcome,
|
|
269
|
+
coordinate, counterpartyGhii, calls, errors, refusals, tokensIn, tokensOut, costUsd,
|
|
270
|
+
unpricedCalls, chargedUnits, durationMsSum, durationMsMax, actorsSeen, extra, updatedAt)
|
|
271
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
272
|
+
ON CONFLICT(cut, grain, bucket, ownerGhii, actorGaii, appId, model, provider, surface,
|
|
273
|
+
outcome, coordinate, counterpartyGhii)
|
|
274
|
+
DO UPDATE SET
|
|
275
|
+
calls = usage_rollup.calls + excluded.calls,
|
|
276
|
+
errors = usage_rollup.errors + excluded.errors,
|
|
277
|
+
refusals = usage_rollup.refusals + excluded.refusals,
|
|
278
|
+
tokensIn = usage_rollup.tokensIn + excluded.tokensIn,
|
|
279
|
+
tokensOut = usage_rollup.tokensOut + excluded.tokensOut,
|
|
280
|
+
costUsd = usage_rollup.costUsd + excluded.costUsd,
|
|
281
|
+
unpricedCalls = usage_rollup.unpricedCalls + excluded.unpricedCalls,
|
|
282
|
+
chargedUnits = usage_rollup.chargedUnits + excluded.chargedUnits,
|
|
283
|
+
durationMsSum = usage_rollup.durationMsSum + excluded.durationMsSum,
|
|
284
|
+
-- A maximum is not a sum. This is the one metric that does not add.
|
|
285
|
+
durationMsMax = MAX(usage_rollup.durationMsMax, excluded.durationMsMax),
|
|
286
|
+
actorsSeen = usage_rollup.actorsSeen + excluded.actorsSeen,
|
|
287
|
+
extra = json_patch(usage_rollup.extra, excluded.extra),
|
|
288
|
+
updatedAt = excluded.updatedAt`);
|
|
289
|
+
const cursor = db.prepare(`INSERT INTO usage_rollup_state (stream, lastTs, lastId, updatedAt) VALUES (?, ?, ?, ?)
|
|
290
|
+
ON CONFLICT(stream) DO UPDATE SET lastTs = excluded.lastTs, lastId = excluded.lastId,
|
|
291
|
+
updatedAt = excluded.updatedAt`);
|
|
292
|
+
db.transaction(() => {
|
|
293
|
+
for (const d of args.deltas) {
|
|
294
|
+
upsert.run(randomUUID(), d.cut, d.grain, d.bucket, d.ownerGhii, d.actorGaii, d.appId, d.model, d.provider, d.surface, d.outcome, d.coordinate, d.counterpartyGhii, d.calls, d.errors, d.refusals, d.tokensIn, d.tokensOut, d.costUsd, d.unpricedCalls, d.chargedUnits, d.durationMsSum, d.durationMsMax, d.actorsSeen, JSON.stringify(d.extra ?? {}), updatedAt);
|
|
295
|
+
}
|
|
296
|
+
cursor.run(args.stream, args.lastTs, args.lastId, updatedAt);
|
|
297
|
+
})();
|
|
298
|
+
}
|
|
299
|
+
export function queryUsageRollup(db, filter) {
|
|
300
|
+
const clauses = ['cut = ?'];
|
|
301
|
+
const params = [filter.cut];
|
|
302
|
+
if (filter.grain) {
|
|
303
|
+
clauses.push('grain = ?');
|
|
304
|
+
params.push(filter.grain);
|
|
305
|
+
}
|
|
306
|
+
if (filter.from) {
|
|
307
|
+
clauses.push('bucket >= ?');
|
|
308
|
+
params.push(filter.from);
|
|
309
|
+
}
|
|
310
|
+
if (filter.to) {
|
|
311
|
+
clauses.push('bucket <= ?');
|
|
312
|
+
params.push(filter.to);
|
|
313
|
+
}
|
|
314
|
+
if (filter.ownerGhii) {
|
|
315
|
+
clauses.push('ownerGhii = ?');
|
|
316
|
+
params.push(filter.ownerGhii);
|
|
317
|
+
}
|
|
318
|
+
if (filter.appId) {
|
|
319
|
+
clauses.push('appId = ?');
|
|
320
|
+
params.push(filter.appId);
|
|
321
|
+
}
|
|
322
|
+
if (filter.actorGaii) {
|
|
323
|
+
clauses.push('actorGaii = ?');
|
|
324
|
+
params.push(filter.actorGaii);
|
|
325
|
+
}
|
|
326
|
+
if (filter.counterpartyGhii) {
|
|
327
|
+
clauses.push('counterpartyGhii = ?');
|
|
328
|
+
params.push(filter.counterpartyGhii);
|
|
329
|
+
}
|
|
330
|
+
const limit = Math.min(Math.max(filter.limit ?? 5000, 1), 50_000);
|
|
331
|
+
const rows = db.prepare(`SELECT * FROM usage_rollup WHERE ${clauses.join(' AND ')} ORDER BY bucket ASC LIMIT ?`).all(...params, limit);
|
|
332
|
+
return rows.map(toRollup);
|
|
333
|
+
}
|
|
334
|
+
export function clearUsageRollupRange(db, args) {
|
|
335
|
+
const clauses = [];
|
|
336
|
+
const params = [];
|
|
337
|
+
if (args.grain) {
|
|
338
|
+
clauses.push('grain = ?');
|
|
339
|
+
params.push(args.grain);
|
|
340
|
+
}
|
|
341
|
+
if (args.from) {
|
|
342
|
+
clauses.push('bucket >= ?');
|
|
343
|
+
params.push(args.from);
|
|
344
|
+
}
|
|
345
|
+
if (args.to) {
|
|
346
|
+
clauses.push('bucket <= ?');
|
|
347
|
+
params.push(args.to);
|
|
348
|
+
}
|
|
349
|
+
const where = clauses.length ? `WHERE ${clauses.join(' AND ')}` : '';
|
|
350
|
+
return db.prepare(`DELETE FROM usage_rollup ${where}`).run(...params).changes;
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../../../../src/storage/providers/sqlite/repos/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tables-1.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"schema-tables-1.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAopB9D"}
|
|
@@ -469,6 +469,8 @@ export function applySchemaTables1(db) {
|
|
|
469
469
|
location TEXT,
|
|
470
470
|
interests TEXT NOT NULL DEFAULT '[]',
|
|
471
471
|
creatorGhii TEXT NOT NULL,
|
|
472
|
+
createdBy TEXT,
|
|
473
|
+
owners TEXT NOT NULL DEFAULT '[]',
|
|
472
474
|
admins TEXT NOT NULL DEFAULT '[]',
|
|
473
475
|
members TEXT NOT NULL DEFAULT '[]',
|
|
474
476
|
agentGaiis TEXT NOT NULL DEFAULT '[]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tables-1.js","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-1.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,kBAAkB,CAAC,EAAqB;IACtD,EAAE,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"schema-tables-1.js","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-1.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,kBAAkB,CAAC,EAAqB;IACtD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkpBP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* to satisfy max-file-lines. Idempotent (IF NOT EXISTS); applied in numeric order so
|
|
5
5
|
* the on-disk DDL order is byte-for-byte unchanged from the original single exec block.
|
|
6
6
|
* @version-history
|
|
7
|
+
* 2026-08-15 — agent_tasks.createdBy (fresh installs; schema.ts adds it to existing databases).
|
|
7
8
|
* v1.1.0 — 2026-08-13 — Both provider_clients indexes move to schema.ts, after the rebuild that
|
|
8
9
|
* adds `principal`. They named a column an upgraded table did not have yet, so a SQLite node
|
|
9
10
|
* created before that column crashed on boot with "no such column: principal".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tables-3.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-3.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema-tables-3.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-3.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAgrB9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tables-3.js","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-3.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-tables-3.js","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-3.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,kBAAkB,CAAC,EAAqB;IACtD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8qBP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* domain and the outbound door). Split from schema-tables-3.ts at the max-file-lines
|
|
5
5
|
* boundary; idempotent (IF NOT EXISTS), applied after part 3.
|
|
6
6
|
* @version-history
|
|
7
|
+
* v1.1.0 — 2026-08-14 — Usage telemetry: the hot call stream, the two archive tables, the
|
|
8
|
+
* discriminated serving rollup and its watermark. Mirrors Postgres 0036.
|
|
7
9
|
* v1.0.0 — 2026-08-06 — Finance (invoices/vouchers/VAT/fiscal years/counters) + outbound
|
|
8
10
|
* (contacts/send log), moved from schema-tables-3.ts.
|
|
9
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tables-4.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-4.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema-tables-4.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-4.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAmW9D"}
|
|
@@ -221,6 +221,137 @@ export function applySchemaTables4(db) {
|
|
|
221
221
|
);
|
|
222
222
|
CREATE INDEX IF NOT EXISTS idx_company_smtp_owner ON company_smtp(ownerGhii);
|
|
223
223
|
|
|
224
|
+
-- ── Usage telemetry ───────────────────────────────────────────────────────
|
|
225
|
+
-- Three layers, mirroring Postgres 0036. Full rationale:
|
|
226
|
+
-- docs/internal/telemetria/02-design.md
|
|
227
|
+
-- hot raw usage_calls (+ the existing agent_usage_event), 90 days
|
|
228
|
+
-- cold usage_calls_archive, agent_usage_event_archive — storage, never a data source
|
|
229
|
+
-- serving usage_rollup — everything a dashboard reads, precomputed incrementally
|
|
230
|
+
|
|
231
|
+
-- One row per observable call, whichever door it came through. The outcome and reason columns are the
|
|
232
|
+
-- point of the table: a refused call is the record that a capability was wanted and not
|
|
233
|
+
-- delivered, and nothing recorded that before.
|
|
234
|
+
CREATE TABLE IF NOT EXISTS usage_calls (
|
|
235
|
+
id TEXT PRIMARY KEY,
|
|
236
|
+
ts TEXT NOT NULL,
|
|
237
|
+
ownerGhii TEXT NOT NULL,
|
|
238
|
+
actorGaii TEXT NOT NULL DEFAULT '',
|
|
239
|
+
actorKind TEXT NOT NULL DEFAULT 'owner',
|
|
240
|
+
surface TEXT NOT NULL,
|
|
241
|
+
coordinate TEXT NOT NULL DEFAULT '',
|
|
242
|
+
appId TEXT NOT NULL DEFAULT '',
|
|
243
|
+
counterpartyGhii TEXT NOT NULL DEFAULT '',
|
|
244
|
+
outcome TEXT NOT NULL DEFAULT 'ok',
|
|
245
|
+
reason TEXT NOT NULL DEFAULT '',
|
|
246
|
+
durationMs INTEGER NOT NULL DEFAULT 0,
|
|
247
|
+
chargedUnits INTEGER NOT NULL DEFAULT 0,
|
|
248
|
+
unit TEXT NOT NULL DEFAULT '',
|
|
249
|
+
currency TEXT NOT NULL DEFAULT '',
|
|
250
|
+
entitlementId TEXT NOT NULL DEFAULT '',
|
|
251
|
+
runId TEXT NOT NULL DEFAULT '',
|
|
252
|
+
meta TEXT NOT NULL DEFAULT '{}'
|
|
253
|
+
);
|
|
254
|
+
-- (ts, id) is a total order over the stream, so the fold's watermark can resume exactly.
|
|
255
|
+
CREATE INDEX IF NOT EXISTS idx_usage_calls_cursor ON usage_calls(ts, id);
|
|
256
|
+
CREATE INDEX IF NOT EXISTS idx_usage_calls_owner ON usage_calls(ownerGhii, ts DESC);
|
|
257
|
+
|
|
258
|
+
CREATE TABLE IF NOT EXISTS usage_calls_archive (
|
|
259
|
+
id TEXT PRIMARY KEY,
|
|
260
|
+
ts TEXT NOT NULL,
|
|
261
|
+
ownerGhii TEXT NOT NULL,
|
|
262
|
+
actorGaii TEXT NOT NULL DEFAULT '',
|
|
263
|
+
actorKind TEXT NOT NULL DEFAULT 'owner',
|
|
264
|
+
surface TEXT NOT NULL,
|
|
265
|
+
coordinate TEXT NOT NULL DEFAULT '',
|
|
266
|
+
appId TEXT NOT NULL DEFAULT '',
|
|
267
|
+
counterpartyGhii TEXT NOT NULL DEFAULT '',
|
|
268
|
+
outcome TEXT NOT NULL DEFAULT 'ok',
|
|
269
|
+
reason TEXT NOT NULL DEFAULT '',
|
|
270
|
+
durationMs INTEGER NOT NULL DEFAULT 0,
|
|
271
|
+
chargedUnits INTEGER NOT NULL DEFAULT 0,
|
|
272
|
+
unit TEXT NOT NULL DEFAULT '',
|
|
273
|
+
currency TEXT NOT NULL DEFAULT '',
|
|
274
|
+
entitlementId TEXT NOT NULL DEFAULT '',
|
|
275
|
+
runId TEXT NOT NULL DEFAULT '',
|
|
276
|
+
meta TEXT NOT NULL DEFAULT '{}',
|
|
277
|
+
archivedAt TEXT NOT NULL
|
|
278
|
+
);
|
|
279
|
+
CREATE INDEX IF NOT EXISTS idx_usage_calls_archive_owner ON usage_calls_archive(ownerGhii, ts);
|
|
280
|
+
|
|
281
|
+
CREATE TABLE IF NOT EXISTS agent_usage_event_archive (
|
|
282
|
+
id TEXT PRIMARY KEY,
|
|
283
|
+
ts TEXT NOT NULL,
|
|
284
|
+
agentGaii TEXT NOT NULL,
|
|
285
|
+
ownerGhii TEXT NOT NULL,
|
|
286
|
+
runId TEXT,
|
|
287
|
+
model TEXT NOT NULL,
|
|
288
|
+
provider TEXT NOT NULL,
|
|
289
|
+
promptTokens INTEGER NOT NULL DEFAULT 0,
|
|
290
|
+
completionTokens INTEGER NOT NULL DEFAULT 0,
|
|
291
|
+
costUsd REAL,
|
|
292
|
+
priceRef TEXT,
|
|
293
|
+
source TEXT NOT NULL,
|
|
294
|
+
apiKeyScope TEXT NOT NULL DEFAULT 'own',
|
|
295
|
+
organismId TEXT,
|
|
296
|
+
workspaceId TEXT,
|
|
297
|
+
capabilityId TEXT,
|
|
298
|
+
consumerGhii TEXT,
|
|
299
|
+
provenanceId TEXT,
|
|
300
|
+
appId TEXT NOT NULL DEFAULT '',
|
|
301
|
+
surface TEXT NOT NULL DEFAULT '',
|
|
302
|
+
archivedAt TEXT NOT NULL
|
|
303
|
+
);
|
|
304
|
+
CREATE INDEX IF NOT EXISTS idx_agent_usage_event_archive_owner ON agent_usage_event_archive(ownerGhii, ts);
|
|
305
|
+
|
|
306
|
+
-- The one table every dashboard reads. The cut column names which dimensions this row is keyed by;
|
|
307
|
+
-- a dimension outside the cut holds '' (never NULL) so the unique key is total and the
|
|
308
|
+
-- upsert is a plain ON CONFLICT DO UPDATE SET x = x + excluded.x.
|
|
309
|
+
CREATE TABLE IF NOT EXISTS usage_rollup (
|
|
310
|
+
id TEXT PRIMARY KEY,
|
|
311
|
+
cut TEXT NOT NULL,
|
|
312
|
+
grain TEXT NOT NULL,
|
|
313
|
+
bucket TEXT NOT NULL,
|
|
314
|
+
ownerGhii TEXT NOT NULL DEFAULT '',
|
|
315
|
+
actorGaii TEXT NOT NULL DEFAULT '',
|
|
316
|
+
appId TEXT NOT NULL DEFAULT '',
|
|
317
|
+
model TEXT NOT NULL DEFAULT '',
|
|
318
|
+
provider TEXT NOT NULL DEFAULT '',
|
|
319
|
+
surface TEXT NOT NULL DEFAULT '',
|
|
320
|
+
outcome TEXT NOT NULL DEFAULT '',
|
|
321
|
+
coordinate TEXT NOT NULL DEFAULT '',
|
|
322
|
+
counterpartyGhii TEXT NOT NULL DEFAULT '',
|
|
323
|
+
calls INTEGER NOT NULL DEFAULT 0,
|
|
324
|
+
errors INTEGER NOT NULL DEFAULT 0,
|
|
325
|
+
refusals INTEGER NOT NULL DEFAULT 0,
|
|
326
|
+
tokensIn INTEGER NOT NULL DEFAULT 0,
|
|
327
|
+
tokensOut INTEGER NOT NULL DEFAULT 0,
|
|
328
|
+
costUsd REAL NOT NULL DEFAULT 0,
|
|
329
|
+
unpricedCalls INTEGER NOT NULL DEFAULT 0,
|
|
330
|
+
chargedUnits INTEGER NOT NULL DEFAULT 0,
|
|
331
|
+
durationMsSum INTEGER NOT NULL DEFAULT 0,
|
|
332
|
+
durationMsMax INTEGER NOT NULL DEFAULT 0,
|
|
333
|
+
-- Distinct actors within one fold batch, summed across batches: an approximation FROM
|
|
334
|
+
-- BELOW. Labelled as such wherever it is served, never used for billing.
|
|
335
|
+
actorsSeen INTEGER NOT NULL DEFAULT 0,
|
|
336
|
+
extra TEXT NOT NULL DEFAULT '{}',
|
|
337
|
+
updatedAt TEXT NOT NULL
|
|
338
|
+
);
|
|
339
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_usage_rollup_key ON usage_rollup(
|
|
340
|
+
cut, grain, bucket, ownerGhii, actorGaii, appId, model, provider,
|
|
341
|
+
surface, outcome, coordinate, counterpartyGhii
|
|
342
|
+
);
|
|
343
|
+
CREATE INDEX IF NOT EXISTS idx_usage_rollup_read ON usage_rollup(cut, grain, bucket);
|
|
344
|
+
CREATE INDEX IF NOT EXISTS idx_usage_rollup_owner ON usage_rollup(cut, ownerGhii, grain, bucket);
|
|
345
|
+
|
|
346
|
+
-- One row per raw stream. Advanced in the SAME transaction as the deltas it accounts for,
|
|
347
|
+
-- which is what makes the fold exactly-once.
|
|
348
|
+
CREATE TABLE IF NOT EXISTS usage_rollup_state (
|
|
349
|
+
stream TEXT PRIMARY KEY,
|
|
350
|
+
lastTs TEXT NOT NULL DEFAULT '',
|
|
351
|
+
lastId TEXT NOT NULL DEFAULT '',
|
|
352
|
+
updatedAt TEXT NOT NULL
|
|
353
|
+
);
|
|
354
|
+
|
|
224
355
|
`);
|
|
225
356
|
}
|
|
226
357
|
//# sourceMappingURL=schema-tables-4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-tables-4.js","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-4.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-tables-4.js","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema-tables-4.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,kBAAkB,CAAC,EAAqB;IACtD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiWP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* block 1), or upgrades crash with "no such column" before the ALTER runs.
|
|
11
11
|
* @usage initializeSchema(db) from sqlite/index.ts constructor.
|
|
12
12
|
* @version-history
|
|
13
|
+
* v1.11.0 — 2026-08-14 — Usage telemetry: agent_usage_event.appId/.surface for existing databases,
|
|
14
|
+
* plus the fold's (ts, id) cursor index. Tables themselves are in schema-tables-4.
|
|
13
15
|
* v1.10.0 — 2026-08-13 — agents.registeredBy for existing databases too.
|
|
14
16
|
* v1.9.0 — 2026-08-13 — agents.consoleUrl, so an existing database gets the column too.
|
|
15
17
|
* v1.8.0 — 2026-08-13 — Two more index-before-ALTER crashes, both moved here from block 1: the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/storage/providers/sqlite/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAmhB5D"}
|