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,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: AIMEAT Protocol Node — index
|
|
3
|
+
version: v2
|
|
4
|
+
downloadedFrom: {{BASE_URL}}/llms.txt
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AIMEAT Protocol Node
|
|
8
|
+
|
|
9
|
+
> This page is the index. The full builder's manual is at {{BASE_URL}}/llms-full.txt, and that is
|
|
10
|
+
> the document to fetch when you are helping someone build an app or calling this API directly.
|
|
11
|
+
> An AIMEAT node holds persistent memory, identity for humans and their AI agents (GHII/GAII),
|
|
12
|
+
> shared workspaces, skills, tasks and a usage meter, reachable over REST and MCP. The person who
|
|
13
|
+
> owns an account here owns what is stored under it and grants or revokes each agent's reach, one
|
|
14
|
+
> scope at a time.
|
|
15
|
+
|
|
16
|
+
- Node URL: {{BASE_URL}}
|
|
17
|
+
- Node ID: {{NODE_ID}}
|
|
18
|
+
- Protocol: AIMEAT v1
|
|
19
|
+
|
|
20
|
+
## Start here
|
|
21
|
+
|
|
22
|
+
- [You are a person]({{BASE_URL}}/v1/portal): register in the portal, then connect an assistant
|
|
23
|
+
- [You are an assistant helping someone build]({{BASE_URL}}/llms-full.txt): the manual, with SDK libraries, app templates and worked examples
|
|
24
|
+
- [You are an agent joining under your own identity]({{BASE_URL}}/auth.md): RFC 8628 device flow, the owner approves you and picks your scopes
|
|
25
|
+
- [You are a coding agent meeting AIMEAT as a dependency]({{BASE_URL}}/AGENTS.md): short orientation, installation and configuration
|
|
26
|
+
|
|
27
|
+
## Documentation
|
|
28
|
+
|
|
29
|
+
- [Full builder's manual]({{BASE_URL}}/llms-full.txt): everything below in one document — SDK libraries, app templates, core concepts, connection flows and the complete endpoint reference
|
|
30
|
+
- [Site map]({{BASE_URL}}/sitemap.md): every page and endpoint on this node, one page
|
|
31
|
+
- [Glossary]({{BASE_URL}}/v1/glossary): GHII, GAII, GEAI, morsels, organisms and the rest, defined
|
|
32
|
+
- [OpenAPI contract]({{BASE_URL}}/v1/spec): the canonical API contract this node is held to
|
|
33
|
+
- [API documentation]({{BASE_URL}}/v1/docs): browsable endpoint reference
|
|
34
|
+
- [Agent registration]({{BASE_URL}}/auth.md): RFC 8628 device flow, owner-approved
|
|
35
|
+
- [App building prompt]({{BASE_URL}}/v1/prompts/build-app): the canonical single-file app spec
|
|
36
|
+
- [App templates]({{BASE_URL}}/v1/app-templates): starter skeletons
|
|
37
|
+
- [App-build pitfalls]({{BASE_URL}}/v1/appdev/pitfalls): what breaks app builds, curated
|
|
38
|
+
|
|
39
|
+
## Discovery
|
|
40
|
+
|
|
41
|
+
- [Node descriptor]({{BASE_URL}}/.well-known/aimeat): id, type, public key, capabilities
|
|
42
|
+
- [MCP Server Card]({{BASE_URL}}/.well-known/mcp.json): the MCP server, its transport and auth
|
|
43
|
+
- [Machine-readable bootstrap]({{BASE_URL}}/?format=json): what this node is and what to call next
|
|
44
|
+
- [API catalog]({{BASE_URL}}/.well-known/api-catalog): RFC 9727 linkset
|
|
45
|
+
- [Agent Skills index]({{BASE_URL}}/.well-known/agent-skills/index.json): skill packs published here
|
|
46
|
+
- [Crawl policy]({{BASE_URL}}/robots.txt): the content signals this node sets
|
|
47
|
+
|
|
48
|
+
## Human pages
|
|
49
|
+
|
|
50
|
+
{{HUMAN_PAGES}}
|
|
51
|
+
|
|
52
|
+
## Optional
|
|
53
|
+
|
|
54
|
+
Secondary reading. Skip these when you need a shorter context.
|
|
55
|
+
|
|
56
|
+
{{OPTIONAL_PAGES}}
|
|
57
|
+
- [AI transparency]({{BASE_URL}}/v1/ai-transparency): what this node marks as AI-generated, how, and in which posture. Content generated here carries an `aimeat.provenance/v1` record on every surface; ask {{BASE_URL}}/v1/provenance/by-hash/<sha256> about bytes you hold, no account needed
|
|
58
|
+
- [UCP profile]({{BASE_URL}}/.well-known/ucp): commerce transports, checkout capability, payment handlers
|
|
59
|
+
- [ACP profile]({{BASE_URL}}/.well-known/acp.json): agentic-commerce discovery and the product feed
|
|
60
|
+
- [Web Bot Auth directory]({{BASE_URL}}/.well-known/http-message-signatures-directory): the keys this node signs outbound requests with
|
|
@@ -23,52 +23,93 @@ User-agent: *
|
|
|
23
23
|
Content-Signal: search=yes, ai-input=yes, ai-train=no
|
|
24
24
|
Allow: /
|
|
25
25
|
|
|
26
|
-
# ──
|
|
27
|
-
#
|
|
26
|
+
# ── Search and retrieval ────────────────────────────────────────────────────
|
|
27
|
+
# These are the bots that decide whether an AI assistant can answer a live question about this
|
|
28
|
+
# node correctly. Every one of them is allowed, on every node, and that is not operator-tunable:
|
|
29
|
+
# a node nobody can look up is a node nobody can join.
|
|
30
|
+
#
|
|
31
|
+
# Two kinds are mixed here on purpose, because blocking them has different costs. A SEARCH bot
|
|
32
|
+
# feeds the index an assistant queries; blocking it removes this node from that assistant's
|
|
33
|
+
# answers. A USER bot fetches one page because a human asked for it, and the vendors document
|
|
34
|
+
# that those may ignore robots.txt precisely because a person asked.
|
|
35
|
+
|
|
36
|
+
# OpenAI — OAI-SearchBot powers ChatGPT search results; blocking it removes this node from them.
|
|
28
37
|
User-agent: OAI-SearchBot
|
|
29
38
|
Allow: /
|
|
30
39
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Disallow: /
|
|
40
|
+
User-agent: ChatGPT-User
|
|
41
|
+
Allow: /
|
|
34
42
|
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
User-agent: OAI-AdsBot
|
|
44
|
+
Allow: /
|
|
45
|
+
|
|
46
|
+
# Anthropic — rules apply per subdomain, which is why app origins serve their own robots.txt.
|
|
37
47
|
User-agent: Claude-SearchBot
|
|
38
48
|
Allow: /
|
|
39
49
|
|
|
40
|
-
# Claude-User: user-initiated fetches (cowork, claude.ai browsing)
|
|
41
50
|
User-agent: Claude-User
|
|
42
51
|
Allow: /
|
|
43
52
|
|
|
44
|
-
#
|
|
45
|
-
User-agent: ClaudeBot
|
|
46
|
-
Disallow: /
|
|
47
|
-
|
|
48
|
-
# ── Perplexity ───────────────────────────────────────────────────────────────
|
|
49
|
-
# PerplexityBot: search indexing (respects robots.txt)
|
|
53
|
+
# Perplexity
|
|
50
54
|
User-agent: PerplexityBot
|
|
51
55
|
Allow: /
|
|
52
56
|
|
|
53
|
-
# Perplexity-User: user-initiated fetches (typically ignores robots.txt anyway)
|
|
54
57
|
User-agent: Perplexity-User
|
|
55
58
|
Allow: /
|
|
56
59
|
|
|
57
|
-
#
|
|
58
|
-
#
|
|
60
|
+
# Google — Googlebot feeds Search, and therefore AI Overviews and AI Mode, which are retrieval
|
|
61
|
+
# over the Search index. Google-Extended is a separate decision and sits in the training block.
|
|
59
62
|
User-agent: Googlebot
|
|
60
63
|
Allow: /
|
|
61
64
|
|
|
62
|
-
#
|
|
65
|
+
# Microsoft — bingbot feeds both Bing Search and Copilot.
|
|
66
|
+
User-agent: Bingbot
|
|
67
|
+
Allow: /
|
|
68
|
+
|
|
69
|
+
# Apple — Applebot indexes for Siri and Spotlight. Applebot-Extended does not crawl at all; it is
|
|
70
|
+
# the training opt-out token, so it belongs in the block below.
|
|
71
|
+
User-agent: Applebot
|
|
72
|
+
Allow: /
|
|
73
|
+
|
|
74
|
+
# Meta — meta-externalfetcher is the user-requested single-link fetch.
|
|
75
|
+
User-agent: meta-externalfetcher
|
|
76
|
+
Allow: /
|
|
77
|
+
|
|
78
|
+
# xAI / Grok: deliberately absent. No vendor-documented crawler token exists — none appears in
|
|
79
|
+
# x.ai/robots.txt, grok.com/robots.txt or Cloudflare's bot reference — so there is nothing to name
|
|
80
|
+
# here that would not be a guess. The `User-agent: *` rule above covers Grok, and every other
|
|
81
|
+
# undocumented crawler, which is the whole of the available answer.
|
|
82
|
+
|
|
83
|
+
# ── AI training crawlers ────────────────────────────────────────────────────
|
|
84
|
+
# A separate decision from the block above, and an operator's to make: AIMEAT_AI_TRAINING=allow
|
|
85
|
+
# flips every Disallow between the markers to Allow and pairs the Content-Signal line to
|
|
86
|
+
# ai-train=yes. The default is deny, because a personal node holds one person's data and a safe
|
|
87
|
+
# default has to assume that case.
|
|
88
|
+
#
|
|
89
|
+
# The cost of denying, stated plainly so the choice is an informed one: it keeps this node out of
|
|
90
|
+
# what the models know without being pointed at it, and it is a stated preference rather than an
|
|
91
|
+
# enforceable control. It protects a right; it does not protect bytes.
|
|
92
|
+
#AIMEAT-TRAINING-BEGIN
|
|
93
|
+
User-agent: GPTBot
|
|
94
|
+
Disallow: /
|
|
95
|
+
|
|
96
|
+
User-agent: ClaudeBot
|
|
97
|
+
Disallow: /
|
|
98
|
+
|
|
99
|
+
# Google-Extended controls Gemini training and grounding ONLY. Per Google's own documentation it
|
|
100
|
+
# does not affect Google Search, and it does not remove this node from AI Overviews.
|
|
63
101
|
User-agent: Google-Extended
|
|
64
102
|
Disallow: /
|
|
65
103
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
104
|
+
User-agent: Applebot-Extended
|
|
105
|
+
Disallow: /
|
|
106
|
+
|
|
107
|
+
User-agent: meta-externalagent
|
|
108
|
+
Disallow: /
|
|
109
|
+
#AIMEAT-TRAINING-END
|
|
69
110
|
|
|
70
111
|
# ── AI agents: machine-readable docs ────────────────────────────────────────
|
|
71
|
-
#
|
|
112
|
+
# /llms.txt is the curated index; /llms-full.txt is the full builder's manual.
|
|
72
113
|
# API entry point for AI agents: GET /?format=json
|
|
73
114
|
|
|
74
|
-
Sitemap:
|
|
115
|
+
Sitemap: {{BASE_URL}}/sitemap.xml
|
package/dist/public/spa.html
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
-
<!-- AI: To help this user build apps on AIMEAT, fetch
|
|
4
|
+
<!-- AI: /llms.txt is the index of this node. To help this user build apps on AIMEAT, fetch
|
|
5
|
+
/llms-full.txt for templates and API docs, then ask what they want to build. -->
|
|
5
6
|
<meta charset="UTF-8">
|
|
6
7
|
<!-- interactive-widget=resizes-content: the on-screen keyboard resizes the layout viewport so dvh units
|
|
7
8
|
+ sticky/bottom-pinned composers stay above the keyboard. viewport-fit=cover exposes env(safe-area-*)
|
|
@@ -67,6 +68,7 @@
|
|
|
67
68
|
checks whether a site points at its own llms.txt finds the pointer. -->
|
|
68
69
|
<link rel="alternate" type="text/plain" href="/llms.txt" title="LLM-friendly description">
|
|
69
70
|
<link rel="alternate" type="text/plain" href="/llms-full.txt" title="Full content for LLMs">
|
|
71
|
+
<link rel="describedby" type="text/plain" href="/llms.txt">
|
|
70
72
|
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
71
73
|
<link rel="manifest" href="/manifest.json">
|
|
72
74
|
<!-- WebMCP bridge (TARGET-034 phase C): registers node-level tools (commerce feed, node info)
|
|
@@ -116,6 +118,7 @@
|
|
|
116
118
|
<link rel="stylesheet" href="/css/views/portfolio.css">
|
|
117
119
|
<link rel="stylesheet" href="/css/views/members.css">
|
|
118
120
|
<link rel="stylesheet" href="/css/views/inbox.css">
|
|
121
|
+
<link rel="stylesheet" href="/css/views/chat.css">
|
|
119
122
|
<link rel="stylesheet" href="/css/views/glossary.css">
|
|
120
123
|
<link rel="stylesheet" href="/css/components/tags.css">
|
|
121
124
|
<link rel="stylesheet" href="/css/components/image-deliverable.css">
|
|
@@ -158,6 +161,7 @@
|
|
|
158
161
|
"/js/use-session.js": "/js/use-session.js",
|
|
159
162
|
"/js/services/boards.js": "/js/services/boards.js",
|
|
160
163
|
"/js/services/catalogue.js": "/js/services/catalogue.js",
|
|
164
|
+
"/js/services/chat.js": "/js/services/chat.js",
|
|
161
165
|
"/js/services/consent.js": "/js/services/consent.js",
|
|
162
166
|
"/js/services/cortex.js": "/js/services/cortex.js",
|
|
163
167
|
"/js/services/extensions.js": "/js/services/extensions.js",
|
|
@@ -174,6 +178,7 @@
|
|
|
174
178
|
"/js/services/notebook-plan.js": "/js/services/notebook-plan.js",
|
|
175
179
|
"/js/services/nodes.js": "/js/services/nodes.js",
|
|
176
180
|
"/js/services/organisms.js": "/js/services/organisms.js",
|
|
181
|
+
"/js/services/organism-roles.js": "/js/services/organism-roles.js",
|
|
177
182
|
"/js/services/hello-mcp.js": "/js/services/hello-mcp.js",
|
|
178
183
|
"/js/services/offers.js": "/js/services/offers.js",
|
|
179
184
|
"/js/services/offers-grouping.js": "/js/services/offers-grouping.js",
|
|
@@ -429,6 +434,7 @@
|
|
|
429
434
|
'/v1/glossary': () => import('/views/glossary.js' + B),
|
|
430
435
|
'/v1/business': () => import('/views/business.js' + B),
|
|
431
436
|
'/v1/transparency': () => import('/views/transparency.js' + B),
|
|
437
|
+
'/v1/chat': () => import('/views/chat.js' + B),
|
|
432
438
|
'/v1/profile': () => import('/views/profile.js' + B),
|
|
433
439
|
'/v1/home': () => import('/views/home/index.js' + B),
|
|
434
440
|
'/v1/app-grant': () => import('/views/app-grant.js' + B),
|
|
@@ -809,6 +815,8 @@
|
|
|
809
815
|
only existed because the bar was carrying the marketing links at the same
|
|
810
816
|
time. Those links are anon-only now, so these three fit on the row. -->
|
|
811
817
|
${session && html`
|
|
818
|
+
<a href="/v1/chat" class="${currentPath === '/v1/chat' ? 'active' : ''}"
|
|
819
|
+
onClick=${(e) => { handleNav(e, '/v1/chat'); setMenuOpen(false); }}>${t('nav.chat') || 'Chat'}</a>
|
|
812
820
|
<a href="/app-catalog.html" target="_blank" onClick=${() => setMenuOpen(false)}
|
|
813
821
|
class="${currentPath === '/app-catalog.html' ? 'active' : ''}">${t('nav.apps') || 'Apps'}</a>
|
|
814
822
|
<a href="/v1/profile" class="profile-link visible ${currentPath === '/v1/profile' ? 'active' : ''}"
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file organism-ownership-tab.js
|
|
3
|
+
* @description The operator's break-glass over an organism's ownership, on a screen. Look up an
|
|
4
|
+
* organism by id, see who holds it and who made it, and add an owner to one whose own owners can
|
|
5
|
+
* no longer be reached.
|
|
6
|
+
*
|
|
7
|
+
* Why an operator screen exists for this at all: every gate inside an organism defers to its
|
|
8
|
+
* owners, so an organism whose owners are unreachable cannot be repaired from the inside, and the
|
|
9
|
+
* node operator had no override either. The repair used to be a hand-written SQL transaction
|
|
10
|
+
* against the production database.
|
|
11
|
+
*
|
|
12
|
+
* It is ADDITIVE. Adding an owner takes nothing from the people already there, so the operator
|
|
13
|
+
* never has to decide who loses their organism in order to fix it.
|
|
14
|
+
* @structure OrganismOwnershipTab — lookup form, ownership card, add-owner form
|
|
15
|
+
* @usage registered in views/admin.js under the Identity group
|
|
16
|
+
* @version-history
|
|
17
|
+
* v1.0.0 — 2026-08-15 — Initial, beside POST /v1/admin/organisms/:id/ownership.
|
|
18
|
+
*/
|
|
19
|
+
import { h } from 'preact';
|
|
20
|
+
import { useState, useCallback } from 'preact/hooks';
|
|
21
|
+
import htm from 'htm';
|
|
22
|
+
const html = htm.bind(h);
|
|
23
|
+
import { t } from '/js/i18n.js';
|
|
24
|
+
import { dt, Empty, DataTable } from './shared.js';
|
|
25
|
+
import { KeyValueRow } from '/components/KeyValueRow.js';
|
|
26
|
+
import { apiGet, apiPost } from '/js/api.js';
|
|
27
|
+
|
|
28
|
+
export default function OrganismOwnershipTab() {
|
|
29
|
+
const [orgId, setOrgId] = useState('');
|
|
30
|
+
const [state, setState] = useState(null); // { id, name, owners, created_by, admins, members }
|
|
31
|
+
const [candidate, setCandidate] = useState('');
|
|
32
|
+
const [busy, setBusy] = useState(false);
|
|
33
|
+
const [msg, setMsg] = useState(null); // { text, bad }
|
|
34
|
+
|
|
35
|
+
const load = useCallback(async (id) => {
|
|
36
|
+
const target = (id ?? orgId).trim();
|
|
37
|
+
if (!target) return;
|
|
38
|
+
setBusy(true);
|
|
39
|
+
setMsg(null);
|
|
40
|
+
try {
|
|
41
|
+
const r = await apiGet(`/v1/admin/organisms/${encodeURIComponent(target)}/ownership`);
|
|
42
|
+
if (r?.data) { setState(r.data); }
|
|
43
|
+
else { setState(null); setMsg({ text: r?.error?.message || t('admin.orgOwnership.notFound') || 'Organism not found', bad: true }); }
|
|
44
|
+
} catch (e) {
|
|
45
|
+
setState(null);
|
|
46
|
+
setMsg({ text: e?.message || 'Lookup failed', bad: true });
|
|
47
|
+
}
|
|
48
|
+
setBusy(false);
|
|
49
|
+
}, [orgId]);
|
|
50
|
+
|
|
51
|
+
const addOwner = useCallback(async () => {
|
|
52
|
+
const name = candidate.trim();
|
|
53
|
+
if (!name || !state) return;
|
|
54
|
+
setBusy(true);
|
|
55
|
+
setMsg(null);
|
|
56
|
+
try {
|
|
57
|
+
const r = await apiPost(`/v1/admin/organisms/${encodeURIComponent(state.id)}/ownership`, { ghii: name });
|
|
58
|
+
if (r?.data) {
|
|
59
|
+
setMsg({ text: (t('admin.orgOwnership.added') || 'Added {name} as an owner').replace('{name}', name), bad: false });
|
|
60
|
+
setCandidate('');
|
|
61
|
+
await load(state.id);
|
|
62
|
+
} else {
|
|
63
|
+
setMsg({ text: r?.error?.message || 'Failed', bad: true });
|
|
64
|
+
}
|
|
65
|
+
} catch (e) {
|
|
66
|
+
setMsg({ text: e?.message || 'Failed', bad: true });
|
|
67
|
+
}
|
|
68
|
+
setBusy(false);
|
|
69
|
+
}, [candidate, state, load]);
|
|
70
|
+
|
|
71
|
+
const rows = (state?.members || []).map(m => [
|
|
72
|
+
m.ghii,
|
|
73
|
+
(state.owners || []).includes(m.ghii)
|
|
74
|
+
? html`<span class="badge badge-success">${t('admin.orgOwnership.owner') || 'owner'}</span>`
|
|
75
|
+
: m.role,
|
|
76
|
+
m.status,
|
|
77
|
+
dt(m.joined_at),
|
|
78
|
+
]);
|
|
79
|
+
|
|
80
|
+
return html`
|
|
81
|
+
<div class="admin-section">
|
|
82
|
+
<p class="section-desc">
|
|
83
|
+
${t('admin.orgOwnership.desc')
|
|
84
|
+
|| 'Put an owner back on an organism whose own owners can no longer be reached. Adding is additive: nobody inside loses anything.'}
|
|
85
|
+
</p>
|
|
86
|
+
|
|
87
|
+
<div class="adm-oo-row">
|
|
88
|
+
<input class="input-field" type="text" value=${orgId} placeholder=${t('admin.orgOwnership.idPlaceholder') || 'Organism id'}
|
|
89
|
+
onInput=${(e) => setOrgId(e.target.value)} onKeyDown=${(e) => { if (e.key === 'Enter') load(); }} />
|
|
90
|
+
<button class="btn-outline" disabled=${busy || !orgId.trim()} onClick=${() => load()}>
|
|
91
|
+
${t('admin.orgOwnership.look') || 'Look up'}
|
|
92
|
+
</button>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
${msg ? html`<p class=${msg.bad ? 'form-error' : 'form-note'}>${msg.text}</p>` : null}
|
|
96
|
+
|
|
97
|
+
${state ? html`
|
|
98
|
+
<div class="adm-oo-card">
|
|
99
|
+
<${KeyValueRow} label=${t('admin.orgOwnership.name') || 'Organism'} value=${state.name} />
|
|
100
|
+
<${KeyValueRow} label=${t('admin.orgOwnership.owners') || 'Owners'} value=${(state.owners || []).join(', ')} />
|
|
101
|
+
<${KeyValueRow} label=${t('admin.orgOwnership.createdBy') || 'Created by'} value=${state.created_by || '—'} />
|
|
102
|
+
<${KeyValueRow} label=${t('admin.orgOwnership.created') || 'Created'} value=${dt(state.created_at)} />
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div class="adm-oo-row">
|
|
106
|
+
<input class="input-field" type="text" value=${candidate}
|
|
107
|
+
placeholder=${t('admin.orgOwnership.addPlaceholder') || 'Owner name to add'}
|
|
108
|
+
onInput=${(e) => setCandidate(e.target.value)} onKeyDown=${(e) => { if (e.key === 'Enter') addOwner(); }} />
|
|
109
|
+
<button class="btn-primary" disabled=${busy || !candidate.trim()} onClick=${addOwner}>
|
|
110
|
+
${t('admin.orgOwnership.add') || 'Add owner'}
|
|
111
|
+
</button>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
${rows.length
|
|
115
|
+
? html`<${DataTable} headers=${[
|
|
116
|
+
t('admin.orgOwnership.member') || 'Member',
|
|
117
|
+
t('admin.orgOwnership.role') || 'Role',
|
|
118
|
+
t('admin.orgOwnership.status') || 'Status',
|
|
119
|
+
t('admin.orgOwnership.joined') || 'Joined',
|
|
120
|
+
]} rows=${rows} />`
|
|
121
|
+
: html`<${Empty} text=${t('admin.orgOwnership.noMembers') || 'This organism has no members.'} />`}
|
|
122
|
+
` : null}
|
|
123
|
+
</div>`;
|
|
124
|
+
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file public/views/admin/owners-tab.js
|
|
3
3
|
* @description Admin dashboard tab listing registered owners (name, display name, roles,
|
|
4
|
-
* agent count, created date) with
|
|
4
|
+
* agent count, created date) with operator actions to grant and revoke the operator role.
|
|
5
5
|
*
|
|
6
6
|
* @structure
|
|
7
7
|
* - OwnersTab({ data, reload }): renders the owners table
|
|
8
8
|
* - doGrant(name): confirms then grants the operator role via grantRole and reloads
|
|
9
|
+
* - doRevoke(name): confirms then removes the operator role via revokeRole and reloads
|
|
9
10
|
*
|
|
10
11
|
* @version-history
|
|
11
|
-
* v1.
|
|
12
|
+
* v1.2.0 — 2026-08-14 — Revoke Operator action next to Grant Operator.
|
|
12
13
|
* v1.1.0 — 2026-07-18 — Vaihe 2d: hand-rolled <table> → canonical admin <DataTable> (rows/headers
|
|
13
14
|
* model); cell content preserved verbatim.
|
|
15
|
+
* v1.0.0 — 2026-07-13 — Header added; file pre-dates header standard
|
|
14
16
|
*/
|
|
15
17
|
import { h } from 'preact';
|
|
16
18
|
import htm from 'htm';
|
|
@@ -18,7 +20,7 @@ const html = htm.bind(h);
|
|
|
18
20
|
import { t } from '/js/i18n.js';
|
|
19
21
|
import { escHtml } from '/js/utils.js';
|
|
20
22
|
import { dt, Empty, useToast, Toast, DataTable } from './shared.js';
|
|
21
|
-
import { grantRole } from '/js/services/admin.js';
|
|
23
|
+
import { grantRole, revokeRole } from '/js/services/admin.js';
|
|
22
24
|
import { useConfirm } from '/components/Modal.js';
|
|
23
25
|
|
|
24
26
|
export default function OwnersTab({ data, reload }) {
|
|
@@ -34,6 +36,13 @@ export default function OwnersTab({ data, reload }) {
|
|
|
34
36
|
});
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
function doRevoke(name) {
|
|
40
|
+
confirm(t('dashboard.revokeConfirm').replace('{name}', name), async () => {
|
|
41
|
+
try { await revokeRole(name, 'operator'); reload(); }
|
|
42
|
+
catch (e) { showErr(e.message); }
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
37
46
|
return html`
|
|
38
47
|
${toast && html`<${Toast} ...${toast} onDismiss=${clearToast} />`}
|
|
39
48
|
<${DataTable}
|
|
@@ -48,7 +57,9 @@ export default function OwnersTab({ data, reload }) {
|
|
|
48
57
|
roles.length ? html`${roles.map(r => html`<span class="tag" style="font-size:.75rem">${r}</span> `)}` : html`<span style="color:var(--text-dim)">—</span>`,
|
|
49
58
|
ow.agents ? ow.agents.length : 0,
|
|
50
59
|
html`<span style="color:var(--text-dim)">${dt(ow.created_at)}</span>`,
|
|
51
|
-
|
|
60
|
+
isOp
|
|
61
|
+
? html`<button class="adm-btn-sm" onClick=${() => doRevoke(ow.name)}>${t('dashboard.revokeOperator')}</button>`
|
|
62
|
+
: html`<button class="adm-btn-sm" onClick=${() => doGrant(ow.name)}>${t('dashboard.grantOperator')}</button>`,
|
|
52
63
|
];
|
|
53
64
|
})}
|
|
54
65
|
/>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file usage-tab.calls.js
|
|
3
|
+
* @description Admin Usage tab, section 3 — the CALL stream. The other two sections count LLM
|
|
4
|
+
* spend; this one counts what was actually invoked on the node: which surface carried the work,
|
|
5
|
+
* which tools get called, which apps are alive, and how much of it was REFUSED.
|
|
6
|
+
*
|
|
7
|
+
* REFUSALS ARE THE POINT. Before the usage-telemetry layer, a call the node declined left no
|
|
8
|
+
* record anywhere, so demand that was not served was the one thing an operator could never see.
|
|
9
|
+
* It gets its own column beside errors on every table here, because a refusal is the system
|
|
10
|
+
* working and an error is it failing, and one number covering both is useless for either.
|
|
11
|
+
*
|
|
12
|
+
* IT IS A SEPARATE FILE, NOT MORE OF usage-tab.js. That file is at the size where a fourth
|
|
13
|
+
* concern makes it unreadable; the split is a pure extraction with its own heading.
|
|
14
|
+
* @structure
|
|
15
|
+
* - CallsSection({ data }) — three tables over GET /v1/admin/usage/summary reports
|
|
16
|
+
* @usage Imported by views/admin/usage-tab.js and rendered under the shared time range.
|
|
17
|
+
* @version-history
|
|
18
|
+
* v1.1.0 — 2026-08-15 — Drop the local per-surface collapsing: the read service no longer groups
|
|
19
|
+
* by outcome, so one surface is one row before it gets here.
|
|
20
|
+
* v1.0.0 — 2026-08-14 — Initial: the call stream reaches the operator dashboard.
|
|
21
|
+
*/
|
|
22
|
+
import { h } from 'preact';
|
|
23
|
+
import htm from 'htm';
|
|
24
|
+
const html = htm.bind(h);
|
|
25
|
+
import { t } from '/js/i18n.js';
|
|
26
|
+
import { num, StatsGrid, DataTable, Empty } from './shared.js';
|
|
27
|
+
|
|
28
|
+
function ms(n) {
|
|
29
|
+
const v = Number(n) || 0;
|
|
30
|
+
return v >= 1000 ? (v / 1000).toFixed(1) + ' s' : Math.round(v) + ' ms';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** A percentage that stays honest at small n: 0 calls is a dash, not 0 %. */
|
|
34
|
+
function rate(part, whole) {
|
|
35
|
+
const w = Number(whole) || 0;
|
|
36
|
+
if (w === 0) return '—';
|
|
37
|
+
return Math.round(((Number(part) || 0) / w) * 100) + '%';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @param {object} props
|
|
42
|
+
* @param {{surface: object|null, tool: object|null, apps: object|null}} props.data
|
|
43
|
+
* Three already-fetched report payloads from GET /v1/admin/usage/summary.
|
|
44
|
+
*/
|
|
45
|
+
export function CallsSection({ data }) {
|
|
46
|
+
const heading = html`<h2 class="adm-section-purple">${t('dashboard.callsSection')}</h2>`;
|
|
47
|
+
const surface = data?.surface;
|
|
48
|
+
const tool = data?.tool;
|
|
49
|
+
const apps = data?.apps;
|
|
50
|
+
|
|
51
|
+
const totals = surface?.totals;
|
|
52
|
+
if (!totals || (totals.calls || 0) === 0) {
|
|
53
|
+
return html`<div>${heading}<${Empty} text=${t('dashboard.callsEmpty')} /></div>`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const statItems = [
|
|
57
|
+
{ label: t('dashboard.callsTotal'), value: num(totals.calls || 0), tone: 'blue' },
|
|
58
|
+
{ label: t('dashboard.callsRefused'), value: num(totals.refusals || 0), tone: 'purple' },
|
|
59
|
+
{ label: t('dashboard.callsFailed'), value: num(totals.errors || 0), tone: 'red' },
|
|
60
|
+
{ label: t('dashboard.callsSlowest'), value: ms(totals.duration_ms_max), tone: 'cyan' },
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
// One row per surface already: the read service treats `outcome` as a qualifier rather than a
|
|
64
|
+
// grouping key, because `refusals` and `errors` are metrics on every row. Before that it split one
|
|
65
|
+
// surface into an ok row and an error row that both read "mcp".
|
|
66
|
+
const surfaceRows = (surface.groups || []).map(g => [
|
|
67
|
+
g.key,
|
|
68
|
+
{ text: num(g.calls || 0), mono: true },
|
|
69
|
+
{ text: num(g.refusals || 0), mono: true },
|
|
70
|
+
{ text: num(g.errors || 0), mono: true },
|
|
71
|
+
{ text: rate((g.errors || 0) + (g.refusals || 0), g.calls), mono: true },
|
|
72
|
+
{ text: ms(g.duration_ms_max), mono: true },
|
|
73
|
+
]);
|
|
74
|
+
|
|
75
|
+
const toolRows = (tool?.groups || []).slice(0, 50).map(g => [
|
|
76
|
+
{ text: g.key, mono: true },
|
|
77
|
+
g.dims?.surface || '',
|
|
78
|
+
{ text: num(g.calls || 0), mono: true },
|
|
79
|
+
{ text: num(g.refusals || 0), mono: true },
|
|
80
|
+
{ text: num(g.errors || 0), mono: true },
|
|
81
|
+
{ text: ms(g.duration_ms_avg), mono: true },
|
|
82
|
+
]);
|
|
83
|
+
|
|
84
|
+
// A row with no app id is not an app open — it is a call that happened to be counted in the same
|
|
85
|
+
// cut. Showing it here would put a row in an "apps opened" table that names no app.
|
|
86
|
+
const appRows = (apps?.groups || []).filter(g => !!g.dims?.appId).slice(0, 50).map(g => [
|
|
87
|
+
{ text: g.key, mono: true },
|
|
88
|
+
{ text: num(g.calls || 0), mono: true },
|
|
89
|
+
{ text: num(g.actors_seen_approx || 0), mono: true },
|
|
90
|
+
]);
|
|
91
|
+
|
|
92
|
+
return html`
|
|
93
|
+
<div>
|
|
94
|
+
${heading}
|
|
95
|
+
<p class="adm-text-sm">${t('dashboard.callsIntro')}</p>
|
|
96
|
+
<${StatsGrid} items=${statItems} />
|
|
97
|
+
|
|
98
|
+
<h3 class="adm-mt-lg adm-text-sm adm-section-cyan">${t('dashboard.callsBySurface')}</h3>
|
|
99
|
+
<${DataTable}
|
|
100
|
+
headers=${[
|
|
101
|
+
t('dashboard.callsColSurface'), t('dashboard.callsTotal'), t('dashboard.callsRefused'),
|
|
102
|
+
t('dashboard.callsFailed'), t('dashboard.callsColNotServed'), t('dashboard.callsSlowest'),
|
|
103
|
+
]}
|
|
104
|
+
rows=${surfaceRows} scroll=${true} />
|
|
105
|
+
|
|
106
|
+
<h3 class="adm-mt-lg adm-text-sm adm-section-purple">${t('dashboard.callsByTool')}</h3>
|
|
107
|
+
<${DataTable}
|
|
108
|
+
headers=${[
|
|
109
|
+
t('dashboard.callsColTool'), t('dashboard.callsColSurface'), t('dashboard.callsTotal'),
|
|
110
|
+
t('dashboard.callsRefused'), t('dashboard.callsFailed'), t('dashboard.callsColAvgTime'),
|
|
111
|
+
]}
|
|
112
|
+
rows=${toolRows} scroll=${true} />
|
|
113
|
+
|
|
114
|
+
<h3 class="adm-mt-lg adm-text-sm adm-section-cyan">${t('dashboard.callsByApp')}</h3>
|
|
115
|
+
<${DataTable}
|
|
116
|
+
headers=${[t('dashboard.callsColApp'), t('dashboard.callsColOpens'), t('dashboard.callsColUsers')]}
|
|
117
|
+
rows=${appRows} scroll=${true} />
|
|
118
|
+
<p class="adm-text-sm">${t('dashboard.callsUsersNote')}</p>
|
|
119
|
+
</div>`;
|
|
120
|
+
}
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
* @usage Registered in views/admin.js NAV_GROUPS (replaces the old ai-usage entry); rendered with
|
|
16
16
|
* the shared admin tab props.
|
|
17
17
|
* @version-history
|
|
18
|
+
* v1.1.0 — 2026-08-14 — Third section: the CALL stream (surfaces, tools, apps, refusals) from
|
|
19
|
+
* GET /v1/admin/usage/summary. It counts invocations, never spend, so it is never summed with
|
|
20
|
+
* the two above. Body in usage-tab.calls.js.
|
|
18
21
|
* v1.0.0 — 2026-07-11 — Initial: unified operator usage tab (agent LLM ledger + AI apps spend),
|
|
19
22
|
* with per-user drill-down on the ledger's top-spenders table.
|
|
20
23
|
*/
|
|
@@ -27,6 +30,7 @@ import { num, StatsGrid, DataTable, Spinner, Empty } from './shared.js';
|
|
|
27
30
|
import { UsageChart, colorForIndex } from '/components/UsageChart.js';
|
|
28
31
|
import * as api from '/js/services/admin.js';
|
|
29
32
|
import { swallowed } from '/js/swallowed.js';
|
|
33
|
+
import { CallsSection } from './usage-tab.calls.js';
|
|
30
34
|
|
|
31
35
|
const usd = (n) => { const v = Number(n) || 0; return '$' + (v < 1 ? v.toFixed(4) : v.toFixed(2)); };
|
|
32
36
|
function fmtCompact(n) {
|
|
@@ -58,17 +62,25 @@ export default function UsageTab() {
|
|
|
58
62
|
const [aiUsage, setAiUsage] = useState(null);
|
|
59
63
|
const [loading, setLoading] = useState(true);
|
|
60
64
|
const [selectedUser, setSelectedUser] = useState(null);
|
|
65
|
+
const [calls, setCalls] = useState(null);
|
|
61
66
|
|
|
62
67
|
const load = useCallback(async (p) => {
|
|
63
68
|
setLoading(true);
|
|
64
69
|
try {
|
|
65
70
|
const range = getDateRange(p);
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
const quiet = (err) => { swallowed('usage-tab: UsageTab', err); return null; };
|
|
72
|
+
// Five reads in parallel rather than in sequence: they are independent, and the tab is only as
|
|
73
|
+
// fast as its slowest one either way.
|
|
74
|
+
const [lr, ar, cs, ct, ca] = await Promise.all([
|
|
75
|
+
api.getLedger(range.from, range.to).catch(quiet),
|
|
76
|
+
api.getAiUsage(range.from, range.to).catch(quiet),
|
|
77
|
+
api.getUsageSummary('surface', range.from, range.to).catch(quiet),
|
|
78
|
+
api.getUsageSummary('tool', range.from, range.to).catch(quiet),
|
|
79
|
+
api.getUsageSummary('apps-used', range.from, range.to).catch(quiet),
|
|
69
80
|
]);
|
|
70
81
|
if (lr && lr.data) setLedger(lr.data);
|
|
71
82
|
if (ar && ar.data) setAiUsage(ar.data);
|
|
83
|
+
setCalls({ surface: cs?.data ?? null, tool: ct?.data ?? null, apps: ca?.data ?? null });
|
|
72
84
|
} catch (err) { swallowed('usage-tab: UsageTab', err); }
|
|
73
85
|
setLoading(false);
|
|
74
86
|
}, []);
|
|
@@ -101,7 +113,7 @@ export default function UsageTab() {
|
|
|
101
113
|
</span>
|
|
102
114
|
</div>`;
|
|
103
115
|
|
|
104
|
-
if (!ledger && !aiUsage) {
|
|
116
|
+
if (!ledger && !aiUsage && !calls) {
|
|
105
117
|
return html`<div>${timeRange}${loading ? html`<${Spinner} />` : html`<${Empty} text=${t('dashboard.aiUsageEmpty') || 'No AI usage yet.'} />`}</div>`;
|
|
106
118
|
}
|
|
107
119
|
|
|
@@ -111,6 +123,8 @@ export default function UsageTab() {
|
|
|
111
123
|
${renderLedgerSection(ledger, metric, selectedUser, setSelectedUser)}
|
|
112
124
|
<hr class="adm-mt-lg" />
|
|
113
125
|
${renderAiAppsSection(aiUsage, metric)}
|
|
126
|
+
<hr class="adm-mt-lg" />
|
|
127
|
+
<${CallsSection} data=${calls} />
|
|
114
128
|
</div>`;
|
|
115
129
|
}
|
|
116
130
|
|
|
@@ -39,6 +39,7 @@ import UsageTab from './admin/usage-tab.js';
|
|
|
39
39
|
import OwnersTab from './admin/owners-tab.js';
|
|
40
40
|
import AgentsTab from './admin/agents-tab.js';
|
|
41
41
|
import GhiiTab from './admin/ghii-tab.js';
|
|
42
|
+
import OrganismOwnershipTab from './admin/organism-ownership-tab.js';
|
|
42
43
|
import ActionsTab from './admin/actions-tab.js';
|
|
43
44
|
import BoardsTab from './admin/boards-tab.js';
|
|
44
45
|
import ChatInstancesTab from './admin/chat-instances-tab.js';
|
|
@@ -92,6 +93,7 @@ const NAV_GROUPS = [
|
|
|
92
93
|
{ id: 'agents', key: 'dashboard.agents', component: AgentsTab, count: 'agents' },
|
|
93
94
|
{ id: 'ghii', key: 'dashboard.ghii', component: GhiiTab, count: 'ghii' },
|
|
94
95
|
{ id: 'agent-integration', key: 'admin.tabs.agentIntegration', component: AgentIntegrationAdminTab },
|
|
96
|
+
{ id: 'org-ownership', key: 'admin.tabs.orgOwnership', component: OrganismOwnershipTab },
|
|
95
97
|
]},
|
|
96
98
|
{ key: 'dashboard.navData', items: [
|
|
97
99
|
{ id: 'actions', key: 'dashboard.actions', component: ActionsTab, count: 'actions' },
|