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,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file check-commit-msg.ts
|
|
3
|
+
* @description Guard for the commit MESSAGE, run from the `commit-msg` hook.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS. On 2026-08-13 three commits landed on main whose subject line was the single
|
|
6
|
+
* character `@`, with the real subject pushed down to line two. The cause is worth stating plainly,
|
|
7
|
+
* because it will happen again and it is invisible until someone looks at `git log --oneline`:
|
|
8
|
+
*
|
|
9
|
+
* git commit -m @'
|
|
10
|
+
* feat(agents): …
|
|
11
|
+
* '@
|
|
12
|
+
*
|
|
13
|
+
* That is PowerShell here-string syntax. This repo has two shells — PowerShell is the primary one
|
|
14
|
+
* on Windows and Bash is beside it — and in Bash `@'` is not syntax, it is the character `@`
|
|
15
|
+
* followed by a quote. The shell dutifully passed a message that begins and ends with `@`. Nothing
|
|
16
|
+
* was malformed enough to fail: git accepted it, the pre-commit hook passed, the push worked, and
|
|
17
|
+
* the damage was a history where three commits are titled `@`.
|
|
18
|
+
*
|
|
19
|
+
* The durable answer is not "remember which shell you are in". It is to stop routing multi-line
|
|
20
|
+
* text through a shell at all (scripts/git-commit.sh writes a file and uses `git commit -F`), and
|
|
21
|
+
* to have a gate that reads the message AFTER every quoting layer has had its say — which is what
|
|
22
|
+
* this file is. It runs on the real thing: the file git is about to commit from, whatever produced
|
|
23
|
+
* it, whichever shell, whether a person or an assistant typed it.
|
|
24
|
+
*
|
|
25
|
+
* The checks are structural, never stylistic. A commit message is prose and this is not a style
|
|
26
|
+
* gate; it refuses only the shapes that mean something upstream mangled the text.
|
|
27
|
+
* @structure lintCommitMessage(raw) → string[] of problems · main(): reads argv[2], exits 1 on any
|
|
28
|
+
* @usage
|
|
29
|
+
* pnpm check:commit-msg .git/COMMIT_EDITMSG # what the hook runs
|
|
30
|
+
* Unit-tested in test/unit/commit-msg.test.ts — the validator is a pure function on purpose.
|
|
31
|
+
* @version-history
|
|
32
|
+
* v1.0.0 — 2026-08-14 — Initial, after three `@`-titled commits reached main.
|
|
33
|
+
*/
|
|
34
|
+
import { readFileSync } from 'node:fs';
|
|
35
|
+
/**
|
|
36
|
+
* Runaway guard, not a style rule.
|
|
37
|
+
*
|
|
38
|
+
* A short subject is better writing and this is not the place to enforce it: swept over the last
|
|
39
|
+
* forty commits, a real one runs to 131 characters, and a gate that refuses the repo's own history
|
|
40
|
+
* teaches people to bypass the gate. What this catches is a whole MESSAGE collapsed onto one line,
|
|
41
|
+
* which is what a lost newline looks like — hundreds of characters, not a hundred and thirty.
|
|
42
|
+
*/
|
|
43
|
+
const MAX_SUBJECT = 250;
|
|
44
|
+
/**
|
|
45
|
+
* Quoting wreckage: a line that is nothing but the leftovers of a shell string form. Each of these
|
|
46
|
+
* is a character sequence that carries meaning in one shell and none in another, so seeing one
|
|
47
|
+
* ALONE on a line means the text arrived through the wrong one.
|
|
48
|
+
*/
|
|
49
|
+
const QUOTING_WRECKAGE = /^\s*(@['"]|['"]@|@|EOF|['"`]|\\)\s*$/;
|
|
50
|
+
/**
|
|
51
|
+
* Read one commit message and list everything wrong with it.
|
|
52
|
+
*
|
|
53
|
+
* Comment lines (`#`) and everything from the scissors line down are dropped first, exactly as git
|
|
54
|
+
* does, so a template or a verbose diff never counts as content.
|
|
55
|
+
*/
|
|
56
|
+
export function lintCommitMessage(raw) {
|
|
57
|
+
const problems = [];
|
|
58
|
+
const scissors = raw.indexOf('\n# ------------------------ >8 ------------------------');
|
|
59
|
+
const body = scissors === -1 ? raw : raw.slice(0, scissors);
|
|
60
|
+
const lines = body.split('\n').filter(l => !l.startsWith('#'));
|
|
61
|
+
// Leading blank lines are not an error on their own (git strips them), but they must not hide a
|
|
62
|
+
// wrecked first line, so find the first line with content and judge THAT as the subject.
|
|
63
|
+
const firstIndex = lines.findIndex(l => l.trim() !== '');
|
|
64
|
+
if (firstIndex === -1) {
|
|
65
|
+
return ['The commit message is empty.'];
|
|
66
|
+
}
|
|
67
|
+
const subject = lines[firstIndex].trim();
|
|
68
|
+
if (QUOTING_WRECKAGE.test(subject)) {
|
|
69
|
+
problems.push(`The subject line is "${subject}", which is shell quoting, not a subject.\n` +
|
|
70
|
+
' This is the 2026-08-13 failure: PowerShell here-string syntax (@\'…\'@) used in Bash,\n' +
|
|
71
|
+
' where it is not syntax. Write the message to a file and use scripts/git-commit.sh,\n' +
|
|
72
|
+
' or `git commit -F <file>` — a multi-line message should never be a shell argument.');
|
|
73
|
+
}
|
|
74
|
+
if (subject.length > MAX_SUBJECT) {
|
|
75
|
+
problems.push(`The subject line is ${subject.length} characters; keep it under ${MAX_SUBJECT}.`);
|
|
76
|
+
}
|
|
77
|
+
// A body must be separated from the subject by ONE blank line. Without it, `git log --oneline`
|
|
78
|
+
// and every tool that reads a subject swallow the first sentence of the body.
|
|
79
|
+
const second = lines[firstIndex + 1];
|
|
80
|
+
if (second !== undefined && second.trim() !== '') {
|
|
81
|
+
problems.push('Line 2 must be blank: the subject is the first line, the body starts on line 3.');
|
|
82
|
+
}
|
|
83
|
+
// The same wreckage at the END is the closing half of the same mistake, and it is easy to miss
|
|
84
|
+
// because nothing displays the last line of a commit message.
|
|
85
|
+
const lastIndex = lines.map(l => l.trim()).reduce((acc, l, i) => (l !== '' ? i : acc), -1);
|
|
86
|
+
if (lastIndex > firstIndex && QUOTING_WRECKAGE.test(lines[lastIndex])) {
|
|
87
|
+
problems.push(`The last line is "${lines[lastIndex].trim()}" — the closing half of a shell quote, not part of the message.`);
|
|
88
|
+
}
|
|
89
|
+
// CLAUDE.md: no Co-Authored-By trailer on this project.
|
|
90
|
+
if (lines.some(l => /^\s*Co-Authored-By:/i.test(l))) {
|
|
91
|
+
problems.push('Remove the Co-Authored-By trailer — this project does not use it.');
|
|
92
|
+
}
|
|
93
|
+
return problems;
|
|
94
|
+
}
|
|
95
|
+
function main() {
|
|
96
|
+
const path = process.argv[2];
|
|
97
|
+
if (!path) {
|
|
98
|
+
console.error('usage: check-commit-msg <path to commit message file>');
|
|
99
|
+
process.exit(2);
|
|
100
|
+
}
|
|
101
|
+
const problems = lintCommitMessage(readFileSync(path, 'utf-8'));
|
|
102
|
+
if (problems.length === 0)
|
|
103
|
+
return;
|
|
104
|
+
console.error('');
|
|
105
|
+
console.error(' Commit message rejected');
|
|
106
|
+
console.error(' ' + '─'.repeat(62));
|
|
107
|
+
for (const p of problems)
|
|
108
|
+
console.error(` • ${p}`);
|
|
109
|
+
console.error('');
|
|
110
|
+
console.error(' The message is still in ' + path + ' — fix it and commit again, or use:');
|
|
111
|
+
console.error(' bash scripts/git-commit.sh <message-file>');
|
|
112
|
+
console.error('');
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
// Only run when invoked directly, so the unit test can import the validator.
|
|
116
|
+
if (process.argv[1] && process.argv[1].endsWith('check-commit-msg.ts'))
|
|
117
|
+
main();
|
|
118
|
+
//# sourceMappingURL=check-commit-msg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-commit-msg.js","sourceRoot":"","sources":["../../scripts/check-commit-msg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The suites the runner actually executes. Parsed from the array text rather than imported, because
|
|
3
|
+
* importing run-e2e-ci.ts runs it. Commented-out entries are skipped the same way the runner skips
|
|
4
|
+
* them — a disabled suite is not a suite that lacks a denial, it is a suite that lacks a run.
|
|
5
|
+
*/
|
|
6
|
+
export declare function registeredSuites(runnerSource: string): string[];
|
|
7
|
+
/**
|
|
8
|
+
* Does this suite assert a refusal?
|
|
9
|
+
*
|
|
10
|
+
* The CONDITION of the assert has to mention the refusal, not the message. `assert(ok, 'expected 403
|
|
11
|
+
* eventually')` is a sentence about a wish; `assert(r.status === 403, …)` is the test. Everything up
|
|
12
|
+
* to the first top-level comma is the condition, so a message that happens to name a status cannot
|
|
13
|
+
* make an unrelated assertion look like a denial case.
|
|
14
|
+
*
|
|
15
|
+
* TWO SHAPES COUNT, because this node has two surfaces and they refuse differently.
|
|
16
|
+
*
|
|
17
|
+
* HTTP answers with a status. 401 and 403 both count: which one a door sends is a design choice (a
|
|
18
|
+
* 404 that refuses to confirm existence is a third), and this gate asks whether the suite ever asks
|
|
19
|
+
* about refusal at all.
|
|
20
|
+
*
|
|
21
|
+
* MCP does not send a status. A tools/call that is refused comes back as a JSON-RPC error, which
|
|
22
|
+
* every suite here reads as `isError`, so a status-only detector reported the MCP suites as having no
|
|
23
|
+
* denial case while they were doing nothing else. It said so about test/e2e-mcp-cross-owner.ts — a
|
|
24
|
+
* file that exists solely to prove owner B is refused seventeen ways — the first time that file was
|
|
25
|
+
* edited after the seed. A gate that is wrong about its best example teaches people to route around
|
|
26
|
+
* it, so it now measures the refusal rather than the transport that carries it.
|
|
27
|
+
*/
|
|
28
|
+
export declare function hasDenialAssertion(source: string): boolean;
|
|
29
|
+
//# sourceMappingURL=check-denial-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-denial-coverage.d.ts","sourceRoot":"","sources":["../../scripts/check-denial-coverage.ts"],"names":[],"mappings":"AA2DA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/D;AAmBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAoB1D"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file scripts/check-denial-coverage.ts
|
|
3
|
+
* @description The gate for the largest class the August 2026 E2E test-quality audit measured:
|
|
4
|
+
* 197 of 591 findings were `missing-denial` — a suite that drives a surface with ONE principal and
|
|
5
|
+
* never asks what happens to a second. A suite like that proves the feature and cannot prove the
|
|
6
|
+
* fence, so deleting a scope check leaves it green. Independently reproduced before this script
|
|
7
|
+
* was written: 89 of 234 registered E2E files contained no assertion about a 401 or a 403.
|
|
8
|
+
*
|
|
9
|
+
* WHY THE EXEMPTION EXPIRES, which is the whole design. `check-route-scopes.ts` was seeded with
|
|
10
|
+
* 340 offenders on 2026-08-10 so it could only ratchet down, and by 2026-08-15 it was still 340:
|
|
11
|
+
* every entry carried the same generated sentence, nobody owned any of them, and the gate was
|
|
12
|
+
* green the entire time. A backlog nobody is ever forced to look at is not a backlog. Here the
|
|
13
|
+
* exemption is pinned to the suite's CONTENT: edit the file and its exemption stops covering it.
|
|
14
|
+
* You are not asked to fix the backlog; you are asked to leave the file you touched better than
|
|
15
|
+
* you found it, which is the one moment you already have the context to do it.
|
|
16
|
+
* @structure
|
|
17
|
+
* - registeredSuites(): the ALL_SUITES list in test/run-e2e-ci.ts, parsed as text (the runner is
|
|
18
|
+
* the source of truth for what actually executes; a file on no list is silent, not skipped)
|
|
19
|
+
* - hasDenialAssertion(): an `assert(...)` whose CONDITION mentions 401 or 403
|
|
20
|
+
* - main(): compare against security/denial-coverage-exemptions.json; --strict exits 1
|
|
21
|
+
* @usage
|
|
22
|
+
* cd aimeat && pnpm check:denial-coverage # report
|
|
23
|
+
* cd aimeat && pnpm check:denial-coverage --strict # the hook/CI gate
|
|
24
|
+
* cd aimeat && pnpm check:denial-coverage --seed # rewrite the file from today's state
|
|
25
|
+
* @version-history
|
|
26
|
+
* v1.1.0 — 2026-08-15 — The detector reads an MCP refusal too, not only an HTTP status. A refused
|
|
27
|
+
* tools/call comes back as a JSON-RPC error, which every suite here reads as `isError`, so a
|
|
28
|
+
* status-only test reported twenty MCP suites as having no denial case while refusal was the only
|
|
29
|
+
* thing several of them did. It said so about test/e2e-mcp-cross-owner.ts — seventeen assertions,
|
|
30
|
+
* every one of them owner B being refused — the first time that file was edited after the seed.
|
|
31
|
+
* A gate that is wrong about its best example teaches people to route around it. The negation is
|
|
32
|
+
* read as well: `assert(!r.isError, …)` is the positive control and must not count. Backlog 89 →
|
|
33
|
+
* 69, and those twenty were never uncovered — the instrument was.
|
|
34
|
+
* v1.0.0 — 2026-08-15 — Initial (E2E test-quality audit, the missing-denial class).
|
|
35
|
+
* v1.0.1 — 2026-08-15 — Hash with line endings normalised. The shas were seeded from an LF tree
|
|
36
|
+
* and a Windows checkout hands readFileSync CRLF, so every seeded sha mismatched there and the
|
|
37
|
+
* gate reported two suites as EXPIRED — "you edited this" — with nobody having touched them.
|
|
38
|
+
* A gate that cannot go green on one of the platforms it runs on is a gate people route around.
|
|
39
|
+
*/
|
|
40
|
+
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
41
|
+
import { join, relative } from 'node:path';
|
|
42
|
+
import { createHash } from 'node:crypto';
|
|
43
|
+
const ROOT = process.cwd();
|
|
44
|
+
const RUNNER = join(ROOT, 'test', 'run-e2e-ci.ts');
|
|
45
|
+
const EXEMPTIONS = join(ROOT, 'security', 'denial-coverage-exemptions.json');
|
|
46
|
+
/**
|
|
47
|
+
* The suites the runner actually executes. Parsed from the array text rather than imported, because
|
|
48
|
+
* importing run-e2e-ci.ts runs it. Commented-out entries are skipped the same way the runner skips
|
|
49
|
+
* them — a disabled suite is not a suite that lacks a denial, it is a suite that lacks a run.
|
|
50
|
+
*/
|
|
51
|
+
export function registeredSuites(runnerSource) {
|
|
52
|
+
const block = /const ALL_SUITES = \[([\s\S]*?)\n\];/.exec(runnerSource);
|
|
53
|
+
if (!block)
|
|
54
|
+
throw new Error('ALL_SUITES not found in test/run-e2e-ci.ts');
|
|
55
|
+
return block[1]
|
|
56
|
+
.split('\n')
|
|
57
|
+
.filter(line => !line.trim().startsWith('//'))
|
|
58
|
+
.flatMap(line => [...line.matchAll(/'(test\/[^']+)'/g)].map(m => m[1]));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Is this occurrence of `isError` negated — `!r.isError` rather than `r.isError`?
|
|
62
|
+
*
|
|
63
|
+
* The difference is the whole meaning. `assert(r.isError, …)` says the call had to be refused;
|
|
64
|
+
* `assert(!r.isError, …)` is the positive control saying the same call had to WORK. Counting the
|
|
65
|
+
* second as a denial case would let a suite that only ever succeeds look fenced.
|
|
66
|
+
*
|
|
67
|
+
* Walk back over the identifier chain (`r.`, `theirs.`, `res.body.`) and any whitespace; the token
|
|
68
|
+
* before it decides.
|
|
69
|
+
*/
|
|
70
|
+
function isNegatedAt(condition, at) {
|
|
71
|
+
let i = at - 1;
|
|
72
|
+
while (i >= 0 && /[\w.$[\]]/.test(condition[i]))
|
|
73
|
+
i--;
|
|
74
|
+
while (i >= 0 && /\s/.test(condition[i]))
|
|
75
|
+
i--;
|
|
76
|
+
return i >= 0 && condition[i] === '!';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Does this suite assert a refusal?
|
|
80
|
+
*
|
|
81
|
+
* The CONDITION of the assert has to mention the refusal, not the message. `assert(ok, 'expected 403
|
|
82
|
+
* eventually')` is a sentence about a wish; `assert(r.status === 403, …)` is the test. Everything up
|
|
83
|
+
* to the first top-level comma is the condition, so a message that happens to name a status cannot
|
|
84
|
+
* make an unrelated assertion look like a denial case.
|
|
85
|
+
*
|
|
86
|
+
* TWO SHAPES COUNT, because this node has two surfaces and they refuse differently.
|
|
87
|
+
*
|
|
88
|
+
* HTTP answers with a status. 401 and 403 both count: which one a door sends is a design choice (a
|
|
89
|
+
* 404 that refuses to confirm existence is a third), and this gate asks whether the suite ever asks
|
|
90
|
+
* about refusal at all.
|
|
91
|
+
*
|
|
92
|
+
* MCP does not send a status. A tools/call that is refused comes back as a JSON-RPC error, which
|
|
93
|
+
* every suite here reads as `isError`, so a status-only detector reported the MCP suites as having no
|
|
94
|
+
* denial case while they were doing nothing else. It said so about test/e2e-mcp-cross-owner.ts — a
|
|
95
|
+
* file that exists solely to prove owner B is refused seventeen ways — the first time that file was
|
|
96
|
+
* edited after the seed. A gate that is wrong about its best example teaches people to route around
|
|
97
|
+
* it, so it now measures the refusal rather than the transport that carries it.
|
|
98
|
+
*/
|
|
99
|
+
export function hasDenialAssertion(source) {
|
|
100
|
+
const re = /\bassert\s*\(/g;
|
|
101
|
+
let m;
|
|
102
|
+
while ((m = re.exec(source))) {
|
|
103
|
+
let depth = 1;
|
|
104
|
+
let i = m.index + m[0].length;
|
|
105
|
+
const start = i;
|
|
106
|
+
for (; i < source.length && depth > 0; i++) {
|
|
107
|
+
const c = source[i];
|
|
108
|
+
if (c === '(' || c === '[' || c === '{')
|
|
109
|
+
depth++;
|
|
110
|
+
else if (c === ')' || c === ']' || c === '}')
|
|
111
|
+
depth--;
|
|
112
|
+
else if (c === ',' && depth === 1)
|
|
113
|
+
break; // end of the condition
|
|
114
|
+
}
|
|
115
|
+
const condition = source.slice(start, i);
|
|
116
|
+
if (/\b40[13]\b/.test(condition))
|
|
117
|
+
return true;
|
|
118
|
+
for (const hit of condition.matchAll(/\bisError\b/g)) {
|
|
119
|
+
if (!isNegatedAt(condition, hit.index))
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* The suite's content, hashed with LINE ENDINGS NORMALISED.
|
|
127
|
+
*
|
|
128
|
+
* Without the replace this gate cannot go green on Windows. The exemptions were seeded on a tree
|
|
129
|
+
* with LF endings, `.gitattributes` normalises on `git add` so the committed bytes are LF, and a
|
|
130
|
+
* Windows checkout puts CRLF in the worktree — which is what readFileSync hands us. Every seeded
|
|
131
|
+
* sha therefore mismatched on that platform and two suites reported EXPIRED ("the file was edited")
|
|
132
|
+
* with nobody having touched them since the seed, on a gate whose whole message is that you edited
|
|
133
|
+
* something. Measured: test/e2e-portal.ts hashes 7834c004b9ccc67a as LF, which IS its stored sha,
|
|
134
|
+
* and b6823b21d23de6d1 as it sits on disk.
|
|
135
|
+
*
|
|
136
|
+
* The line ending is not part of what an exemption is about — the reason is pinned to what the
|
|
137
|
+
* suite ASSERTS — so normalising here is the fix rather than re-seeding the file per platform.
|
|
138
|
+
*/
|
|
139
|
+
const sha = (text) => createHash('sha256').update(text.replace(/\r\n/g, '\n')).digest('hex').slice(0, 16);
|
|
140
|
+
function loadExemptions() {
|
|
141
|
+
if (!existsSync(EXEMPTIONS))
|
|
142
|
+
return { note: '', exempt: {} };
|
|
143
|
+
return JSON.parse(readFileSync(EXEMPTIONS, 'utf-8'));
|
|
144
|
+
}
|
|
145
|
+
function main() {
|
|
146
|
+
const strict = process.argv.includes('--strict');
|
|
147
|
+
const seed = process.argv.includes('--seed');
|
|
148
|
+
const suites = registeredSuites(readFileSync(RUNNER, 'utf-8'));
|
|
149
|
+
const missing = [];
|
|
150
|
+
for (const suite of suites) {
|
|
151
|
+
const full = join(ROOT, suite);
|
|
152
|
+
if (!existsSync(full))
|
|
153
|
+
continue; // check:e2e-registry owns "the list names a file that is gone"
|
|
154
|
+
const source = readFileSync(full, 'utf-8');
|
|
155
|
+
if (!hasDenialAssertion(source))
|
|
156
|
+
missing.push({ suite, sha: sha(source) });
|
|
157
|
+
}
|
|
158
|
+
if (seed) {
|
|
159
|
+
const exempt = {};
|
|
160
|
+
for (const m of missing) {
|
|
161
|
+
exempt[m.suite] = {
|
|
162
|
+
reason: 'Seeded 2026-08-15 from the E2E test-quality audit. NOT YET REVIEWED: this suite '
|
|
163
|
+
+ 'drives its surface with one principal and never asks what a second one gets. Either add a '
|
|
164
|
+
+ 'cross-owner or cross-scope refusal, or replace this line with why the surface has no '
|
|
165
|
+
+ 'refusal to test.',
|
|
166
|
+
sha: m.sha,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
const out = {
|
|
170
|
+
note: 'Registered E2E suites with no assertion about a 401 or 403. Seeded from the state on '
|
|
171
|
+
+ '2026-08-15 so the gate can only ratchet down. The `sha` pins the reason to the file it was '
|
|
172
|
+
+ 'written about: EDIT THE SUITE AND ITS EXEMPTION EXPIRES, because the person editing it is '
|
|
173
|
+
+ 'the one person who has the context to add the missing case. Re-stamping the sha without '
|
|
174
|
+
+ 'adding a denial is available and is a decision someone has to write down.',
|
|
175
|
+
exempt,
|
|
176
|
+
};
|
|
177
|
+
writeFileSync(EXEMPTIONS, JSON.stringify(out, null, 2) + '\n');
|
|
178
|
+
console.log(`Seeded ${missing.length} exemptions into ${relative(ROOT, EXEMPTIONS)}`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const { exempt } = loadExemptions();
|
|
182
|
+
const fresh = [];
|
|
183
|
+
const expired = [];
|
|
184
|
+
for (const m of missing) {
|
|
185
|
+
const e = exempt[m.suite];
|
|
186
|
+
if (!e)
|
|
187
|
+
fresh.push(m.suite);
|
|
188
|
+
else if (e.sha !== m.sha)
|
|
189
|
+
expired.push(m.suite);
|
|
190
|
+
}
|
|
191
|
+
const stale = Object.keys(exempt).filter(k => !missing.some(m => m.suite === k));
|
|
192
|
+
console.log('');
|
|
193
|
+
console.log(' Denial coverage — does the suite ever ask what a second principal gets?');
|
|
194
|
+
console.log(' ' + '─'.repeat(62));
|
|
195
|
+
console.log(` registered suites ${String(suites.length).padStart(5)}`);
|
|
196
|
+
console.log(` with a denial case ${String(suites.length - missing.length).padStart(5)}`);
|
|
197
|
+
console.log(` without one ${String(missing.length).padStart(5)}`);
|
|
198
|
+
console.log(` of those, exempt ${String(missing.length - fresh.length - expired.length).padStart(5)} (seeded backlog, may only shrink)`);
|
|
199
|
+
console.log(` EXPIRED (file edited) ${String(expired.length).padStart(5)}`);
|
|
200
|
+
console.log(` NEW, not exempt ${String(fresh.length).padStart(5)}`);
|
|
201
|
+
if (stale.length)
|
|
202
|
+
console.log(` exemptions now fixed ${String(stale.length).padStart(5)} (remove them from the file)`);
|
|
203
|
+
console.log('');
|
|
204
|
+
if (fresh.length) {
|
|
205
|
+
console.log(' A suite that drives a surface with ONE principal proves the feature and cannot prove');
|
|
206
|
+
console.log(' the fence: delete a scope check and it stays green. Add a cross-owner or cross-scope');
|
|
207
|
+
console.log(' refusal, or record in security/denial-coverage-exemptions.json why there is none.');
|
|
208
|
+
console.log('');
|
|
209
|
+
for (const s of fresh)
|
|
210
|
+
console.log(` NEW ${s}`);
|
|
211
|
+
console.log('');
|
|
212
|
+
}
|
|
213
|
+
if (expired.length) {
|
|
214
|
+
console.log(' These suites were EDITED while still carrying no denial case. The exemption was pinned');
|
|
215
|
+
console.log(' to the old content on purpose: you are in the file, you have the context, add the case.');
|
|
216
|
+
console.log(' If the surface genuinely has no refusal to test, rewrite the reason and re-seed its sha.');
|
|
217
|
+
console.log('');
|
|
218
|
+
for (const s of expired)
|
|
219
|
+
console.log(` EXPIRED ${s}`);
|
|
220
|
+
console.log('');
|
|
221
|
+
}
|
|
222
|
+
if (stale.length) {
|
|
223
|
+
console.log(' Now covered, so these entries can go from security/denial-coverage-exemptions.json:');
|
|
224
|
+
console.log('');
|
|
225
|
+
for (const s of stale.sort())
|
|
226
|
+
console.log(` ${s}`);
|
|
227
|
+
console.log('');
|
|
228
|
+
}
|
|
229
|
+
const blocking = fresh.length + expired.length;
|
|
230
|
+
if (strict && blocking) {
|
|
231
|
+
console.error(`✖ ${fresh.length} new and ${expired.length} expired suite(s) with no denial case.`);
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
console.log(blocking ? ' (report only — pass --strict to gate)' : ' ✓ every registered suite either tests a refusal or says why it does not');
|
|
235
|
+
}
|
|
236
|
+
main();
|
|
237
|
+
//# sourceMappingURL=check-denial-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-denial-coverage.js","sourceRoot":"","sources":["../../scripts/check-denial-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
* v1.1.0 — 2026-08-10 — Step 4 landed: the invariant is now "get the context from the builder"
|
|
23
23
|
* rather than "import the guards here", since the guards moved inside it.
|
|
24
24
|
* Gating from this version — every entry point complies.
|
|
25
|
+
* v1.2.0 — 2026-08-15 — The paywall exemption follows the road: the two unattended paths now share
|
|
26
|
+
* services/extension-system-run.ts, and scheduler-extension-job.ts no longer
|
|
27
|
+
* runs the engine at all. The reason now also names what stands in for the
|
|
28
|
+
* paywall there (the owner fence), because "no payer" excuses a charge and
|
|
29
|
+
* never a check.
|
|
25
30
|
*/
|
|
26
31
|
import { readFileSync, readdirSync, statSync, existsSync } from 'node:fs';
|
|
27
32
|
import { join, relative } from 'node:path';
|
|
@@ -29,9 +34,16 @@ const ROOT = process.cwd();
|
|
|
29
34
|
const SRC = join(ROOT, 'src');
|
|
30
35
|
/** The builder every entry point must take its sandbox context from. */
|
|
31
36
|
const BUILDER = 'buildExtensionCtx';
|
|
32
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Roads that genuinely have nobody to charge, each with the reason — and with what stands in for the
|
|
39
|
+
* paywall there, because "no payer" is a reason to skip a CHARGE, never a reason to skip a check.
|
|
40
|
+
*/
|
|
33
41
|
const PAYWALL_EXEMPT = {
|
|
34
|
-
'src/services/
|
|
42
|
+
'src/services/extension-system-run.ts': 'the two unattended roads (a schedule firing, a workflow step reaching its turn) have no caller '
|
|
43
|
+
+ 'and no payer, and the owner is not charged for their own clock. What replaces the paywall is '
|
|
44
|
+
+ 'the owner fence enforced in this file: an unattended run may only call an extension the '
|
|
45
|
+
+ 'requesting owner installed, so there is no cross-owner call for a price to be asked about. '
|
|
46
|
+
+ 'Formerly keyed to scheduler-extension-job.ts, which no longer runs the engine itself.',
|
|
35
47
|
};
|
|
36
48
|
/** Files that mention the engine but do not run it. */
|
|
37
49
|
const NOT_A_CALLER = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-ext-entrypoints.js","sourceRoot":"","sources":["../../scripts/check-ext-entrypoints.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"check-ext-entrypoints.js","sourceRoot":"","sources":["../../scripts/check-ext-entrypoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
* cd aimeat && pnpm check:liaison-surface --strict # the hook/CI gate
|
|
27
27
|
* cd aimeat && pnpm check:liaison-surface --record # after publishing, write the new baseline
|
|
28
28
|
* @version-history
|
|
29
|
+
* v1.1.0 — 2026-08-15 — Say when a release is STAGED but not out. A bumped version with a moved
|
|
30
|
+
* fingerprint satisfied neither failure condition, so the reminder vanished the moment somebody
|
|
31
|
+
* edited package.json and nothing mentioned it again. Reported every run, never fatal.
|
|
29
32
|
* v1.0.0 — 2026-08-11 — Initial (August 2026 audit: the surfaces the drift map could not see).
|
|
30
33
|
*/
|
|
31
34
|
import { readFileSync, writeFileSync, readdirSync, statSync, existsSync } from 'node:fs';
|
|
@@ -164,9 +167,31 @@ function main() {
|
|
|
164
167
|
else {
|
|
165
168
|
console.log(' baseline none yet — run --record once to establish it');
|
|
166
169
|
}
|
|
167
|
-
|
|
170
|
+
// A version bumped but not yet published is invisible to the checks above: the fingerprint moved
|
|
171
|
+
// AND the version moved, so neither condition fires, and the reminder disappears the moment
|
|
172
|
+
// somebody edits package.json. That is the state this repo is in between deciding to release and
|
|
173
|
+
// actually releasing, and it can last indefinitely with nothing saying so. It is NOT a failure —
|
|
174
|
+
// blocking every commit until a publish happens would be worse than the drift — but it is said
|
|
175
|
+
// out loud, every run, until the baseline catches up.
|
|
176
|
+
const pending = [];
|
|
177
|
+
if (base) {
|
|
178
|
+
if (base.npm.fingerprint !== now.npm.fingerprint && base.npm.version !== now.npm.version) {
|
|
179
|
+
pending.push(`npm aimeat@${now.npm.version} is staged (baseline records ${base.npm.version}, `
|
|
180
|
+
+ `${base.npm.toolCount} → ${now.npm.toolCount} tools)`);
|
|
181
|
+
}
|
|
182
|
+
if (base.pypi.fingerprint !== now.pypi.fingerprint && base.pypi.version !== now.pypi.version) {
|
|
183
|
+
pending.push(`pypi aimeat-crewai@${now.pypi.version} is staged (baseline records ${base.pypi.version}, `
|
|
184
|
+
+ `${base.pypi.toolCount} → ${now.pypi.toolCount} tools)`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
for (const p of pending)
|
|
188
|
+
console.log(` ⏳ ${p} — publish it, then \`pnpm check:liaison-surface --record\``);
|
|
189
|
+
if (pending.length)
|
|
190
|
+
console.log('');
|
|
168
191
|
if (!problems.length) {
|
|
169
|
-
console.log(
|
|
192
|
+
console.log(pending.length
|
|
193
|
+
? ' ✓ no surface is out of step with an unbumped version — one release is still waiting to go out'
|
|
194
|
+
: ' ✓ both published surfaces match what this node registers, and neither needs a release');
|
|
170
195
|
return;
|
|
171
196
|
}
|
|
172
197
|
for (const p of problems)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-liaison-surface.js","sourceRoot":"","sources":["../../scripts/check-liaison-surface.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"check-liaison-surface.js","sourceRoot":"","sources":["../../scripts/check-liaison-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,40 @@
|
|
|
19
19
|
* v1.1.0 — 2026-08-13 — Rules moved into lib/locale-files.ts, shared with locale:extract and
|
|
20
20
|
* locale:merge so the three tools cannot disagree about what a valid translation is.
|
|
21
21
|
*/
|
|
22
|
+
import { readFileSync } from 'node:fs';
|
|
23
|
+
import { dirname, join } from 'node:path';
|
|
24
|
+
import { fileURLToPath } from 'node:url';
|
|
22
25
|
import { shippedLocales, loadLocale, flatten, findDefects } from './lib/locale-files.js';
|
|
26
|
+
/**
|
|
27
|
+
* The agent permission editor builds its labels from key NAMES: a domain `share` is rendered with
|
|
28
|
+
* `profile.agents.scopeUi.domainShare`, and each permission with `scopeUi.scopeText.<domain>.<perm>`.
|
|
29
|
+
* A missing key therefore does not fall back to English — t() returns the key itself, and the owner
|
|
30
|
+
* reads `profile.agents.scopeUi.domainShare` as a section heading over their permissions.
|
|
31
|
+
*
|
|
32
|
+
* This is a different failure from the one the rest of this file guards. en.json is the source of
|
|
33
|
+
* truth for what keys EXIST, so nothing can notice a key that was never written in any language.
|
|
34
|
+
* Here the source of truth is the code: SCOPE_DOMAINS says which labels the editor is going to ask
|
|
35
|
+
* for, and this checks that en.json has them. Found on 2026-08-14 in production UI, where the
|
|
36
|
+
* `share` domain — added with the audit's out-of-wildcard words — had never had a heading.
|
|
37
|
+
*/
|
|
38
|
+
function missingScopeLabels(en) {
|
|
39
|
+
const modelPath = join(dirname(fileURLToPath(import.meta.url)), '..', 'public', 'views', 'profile', 'agents', 'scope-model.js');
|
|
40
|
+
const src = readFileSync(modelPath, 'utf-8');
|
|
41
|
+
const out = [];
|
|
42
|
+
for (const m of src.matchAll(/\{\s*key:\s*'([a-z-]+)',\s*permissions:\s*\[([^\]]*)\]/g)) {
|
|
43
|
+
const [, domain, permsRaw] = m;
|
|
44
|
+
const cap = domain[0].toUpperCase() + domain.slice(1);
|
|
45
|
+
if (!(`profile.agents.scopeUi.domain${cap}` in en)) {
|
|
46
|
+
out.push(`profile.agents.scopeUi.domain${cap} — the heading for the "${domain}" permission group`);
|
|
47
|
+
}
|
|
48
|
+
for (const p of permsRaw.matchAll(/'([a-z:-]+)'/g)) {
|
|
49
|
+
const key = `profile.agents.scopeUi.scopeText.${domain}.${p[1]}`;
|
|
50
|
+
if (!(key in en))
|
|
51
|
+
out.push(`${key} — what "${domain}:${p[1]}" lets an agent do`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
23
56
|
const listOnly = process.argv.includes('--list');
|
|
24
57
|
const [, ...others] = shippedLocales();
|
|
25
58
|
const en = flatten(loadLocale('en'));
|
|
@@ -36,6 +69,11 @@ for (const tag of others) {
|
|
|
36
69
|
}
|
|
37
70
|
if (listOnly)
|
|
38
71
|
process.exit(0);
|
|
72
|
+
// The scope editor's labels are keyed by NAME, so a missing one renders the raw key to the owner
|
|
73
|
+
// rather than falling back to English. en.json cannot notice a key nobody ever wrote; the code can.
|
|
74
|
+
for (const missing of missingScopeLabels(en)) {
|
|
75
|
+
failures.push(`✖ [en] the agent permission editor will render a raw key: ${missing}\n → add it to locales/en.json (and fi/es), beside the other scopeUi labels`);
|
|
76
|
+
}
|
|
39
77
|
if (failures.length) {
|
|
40
78
|
console.error(`\n✖ ${failures.length} locale violation(s):\n`);
|
|
41
79
|
for (const f of failures)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-locales.js","sourceRoot":"","sources":["../../scripts/check-locales.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjD,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;AACvC,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AAErC,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,6BAA6B,CAAC,CAAC;AAEpE,MAAM,QAAQ,GAAa,EAAE,CAAC;AAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,UAAU,UAAU,gBAAgB,KAAK,GAAG,UAAU,6BAA6B,GAAG,KAAK,CAAC,CAAC;IACvH,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,CAAC;AAED,IAAI,QAAQ;IAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE9B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"check-locales.js","sourceRoot":"","sources":["../../scripts/check-locales.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-outbound-fetch.d.ts","sourceRoot":"","sources":["../../scripts/check-outbound-fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-outbound-fetch.d.ts","sourceRoot":"","sources":["../../scripts/check-outbound-fetch.ts"],"names":[],"mappings":"AAmCA,UAAU,OAAO;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAyBjE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CA8BzD"}
|