aimeat 2.0.0 → 2.2.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 +9 -4
- package/dist/locales/en.json +63 -1
- package/dist/locales/fi.json +63 -1
- package/dist/public/components/LinkPreview.js +101 -0
- package/dist/public/components/NotificationBell.js +18 -1
- package/dist/public/cortex-bundled/aimeat-charts.js +158 -10
- package/dist/public/cortex-bundled/aimeat-charts.yaml +1 -1
- package/dist/public/cortex-bundled/aimeat-dag.js +515 -173
- package/dist/public/cortex-bundled/aimeat-dag.yaml +1 -1
- package/dist/public/cortex-bundled/aimeat-i18n.js +6 -1
- package/dist/public/cortex-bundled/aimeat-i18n.yaml +1 -1
- package/dist/public/cortex-bundled/aimeat-surface.js +577 -0
- package/dist/public/cortex-bundled/aimeat-surface.yaml +107 -0
- package/dist/public/cortex-bundled/aimeat-viewport.js +405 -0
- package/dist/public/cortex-bundled/aimeat-viewport.yaml +100 -0
- package/dist/public/css/theme.css +57 -7
- package/dist/public/css/views/admin.css +8 -1
- package/dist/public/css/views/app-grant.css +18 -0
- package/dist/public/css/views/inbox.css +47 -1
- package/dist/public/css/views/portfolio.css +46 -0
- package/dist/public/css/views/profile.css +38 -4
- package/dist/public/js/services/apps.js +19 -3
- package/dist/public/js/services/messages-ai-prompts.js +38 -0
- package/dist/public/js/services/messages.js +26 -4
- package/dist/public/js/services/notebook.js +76 -0
- package/dist/public/js/services/unfurl.js +43 -0
- package/dist/public/lib/VENDORED.md +6 -3
- package/dist/public/lib/aimeat-daisyui-bridge.css +39 -2
- package/dist/public/lib/aimeat-theme.css +538 -0
- package/dist/public/lib/fonts/LICENSE.md +11 -4
- package/dist/public/lib/fonts/fraunces-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/fraunces-var-latin.woff2 +0 -0
- package/dist/public/lib/fonts/inter-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/inter-var-latin.woff2 +0 -0
- package/dist/public/lib/fonts/jetbrains-mono-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/jetbrains-mono-var-latin.woff2 +0 -0
- package/dist/public/lib/fonts/space-grotesk-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/space-grotesk-var-latin.woff2 +0 -0
- package/dist/public/lib/samples/LICENSE.md +11 -0
- package/dist/public/lib/samples/bass/A1.mp3 +0 -0
- package/dist/public/lib/samples/bass/B2.mp3 +0 -0
- package/dist/public/lib/samples/bass/D2.mp3 +0 -0
- package/dist/public/lib/samples/bass/E1.mp3 +0 -0
- package/dist/public/lib/samples/bass/E3.mp3 +0 -0
- package/dist/public/lib/samples/bass/G2.mp3 +0 -0
- package/dist/public/lib/samples/epiano/C2.mp3 +0 -0
- package/dist/public/lib/samples/epiano/C3.mp3 +0 -0
- package/dist/public/lib/samples/epiano/C4.mp3 +0 -0
- package/dist/public/lib/samples/epiano/C5.mp3 +0 -0
- package/dist/public/lib/samples/epiano/C6.mp3 +0 -0
- package/dist/public/lib/samples/epiano/G2.mp3 +0 -0
- package/dist/public/lib/samples/epiano/G3.mp3 +0 -0
- package/dist/public/lib/samples/epiano/G4.mp3 +0 -0
- package/dist/public/lib/samples/epiano/G5.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/A2.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/A4.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/B3.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/D3.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/E2.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/E4.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/E5.mp3 +0 -0
- package/dist/public/lib/samples/guitar-steel/G3.mp3 +0 -0
- package/dist/public/lib/samples/organ/C2.mp3 +0 -0
- package/dist/public/lib/samples/organ/C3.mp3 +0 -0
- package/dist/public/lib/samples/organ/C4.mp3 +0 -0
- package/dist/public/lib/samples/organ/C5.mp3 +0 -0
- package/dist/public/lib/samples/organ/C6.mp3 +0 -0
- package/dist/public/lib/samples/organ/G2.mp3 +0 -0
- package/dist/public/lib/samples/organ/G3.mp3 +0 -0
- package/dist/public/lib/samples/organ/G4.mp3 +0 -0
- package/dist/public/lib/samples/organ/G5.mp3 +0 -0
- package/dist/public/lib/samples/strings/C2.mp3 +0 -0
- package/dist/public/lib/samples/strings/C3.mp3 +0 -0
- package/dist/public/lib/samples/strings/C4.mp3 +0 -0
- package/dist/public/lib/samples/strings/C5.mp3 +0 -0
- package/dist/public/lib/samples/strings/C6.mp3 +0 -0
- package/dist/public/lib/samples/strings/G2.mp3 +0 -0
- package/dist/public/lib/samples/strings/G3.mp3 +0 -0
- package/dist/public/lib/samples/strings/G4.mp3 +0 -0
- package/dist/public/lib/samples/strings/G5.mp3 +0 -0
- package/dist/public/lib/samples/theme-check.html +92 -0
- package/dist/public/lib/samples/themes-boot.js +20 -0
- package/dist/public/lib/samples/themes.html +154 -0
- package/dist/public/lib/samples/themes.js +60 -0
- package/dist/public/lib/samples/trumpet/A3.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/A4.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/A5.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/C4.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/C5.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/E3.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/E4.mp3 +0 -0
- package/dist/public/lib/samples/trumpet/E5.mp3 +0 -0
- package/dist/public/spa.html +2 -0
- package/dist/public/views/app-grant.js +24 -4
- package/dist/public/views/portfolio.js +61 -6
- package/dist/public/views/profile/access-tab/connected-apps.js +81 -5
- package/dist/public/views/profile/apps-tab.js +18 -1
- package/dist/public/views/profile/extensions-tab.maturity.js +4 -1
- package/dist/public/views/profile/inbox-tab/ai-actions.js +86 -0
- package/dist/public/views/profile/inbox-tab/components.js +141 -10
- package/dist/public/views/profile/inbox-tab/helpers.js +26 -0
- package/dist/public/views/profile/inbox-tab/panels.js +18 -3
- package/dist/public/views/profile/inbox-tab/use-thread-ux.js +47 -3
- package/dist/public/views/profile/inbox-tab.js +46 -49
- package/dist/public/views/profile/landing-page.cards.js +7 -0
- package/dist/public/views/profile/landing-page.js +12 -1
- package/dist/public/views/profile/libraries-tab.js +10 -2
- package/dist/public/views/profile/skills-tab.js +1 -1
- package/dist/public/views/profile/wallet-tab.js +64 -0
- package/dist/public/views/public-workspace-viewer.js +1 -1
- package/dist/public/views/start.js +2 -1
- package/dist/scripts/build-sdk-libs.d.ts +16 -0
- package/dist/scripts/build-sdk-libs.d.ts.map +1 -0
- package/dist/scripts/build-sdk-libs.js +112 -0
- package/dist/scripts/build-sdk-libs.js.map +1 -0
- package/dist/scripts/check-openapi.d.ts +2 -0
- package/dist/scripts/check-openapi.d.ts.map +1 -0
- package/dist/scripts/check-openapi.js +139 -0
- package/dist/scripts/check-openapi.js.map +1 -0
- package/dist/scripts/embed-viewport.d.ts +23 -0
- package/dist/scripts/embed-viewport.d.ts.map +1 -0
- package/dist/scripts/embed-viewport.js +116 -0
- package/dist/scripts/embed-viewport.js.map +1 -0
- package/dist/src/auth/sse-domain-scopes.d.ts +50 -0
- package/dist/src/auth/sse-domain-scopes.d.ts.map +1 -0
- package/dist/src/auth/sse-domain-scopes.js +111 -0
- package/dist/src/auth/sse-domain-scopes.js.map +1 -0
- package/dist/src/cli/connect/auth.d.ts +15 -0
- package/dist/src/cli/connect/auth.d.ts.map +1 -1
- package/dist/src/cli/connect/auth.js +25 -6
- package/dist/src/cli/connect/auth.js.map +1 -1
- package/dist/src/cli/connect/keychain.d.ts +9 -0
- package/dist/src/cli/connect/keychain.d.ts.map +1 -1
- package/dist/src/cli/connect/keychain.js +21 -8
- package/dist/src/cli/connect/keychain.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js +4 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.js +14 -3
- package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/exchange.d.ts +18 -0
- package/dist/src/cli/connect/mcp/tools/exchange.d.ts.map +1 -0
- package/dist/src/cli/connect/mcp/tools/exchange.js +170 -0
- package/dist/src/cli/connect/mcp/tools/exchange.js.map +1 -0
- package/dist/src/cli/connect/mcp/tools/index.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/index.js +2 -0
- package/dist/src/cli/connect/mcp/tools/index.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts +3 -0
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.js +4 -2
- package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-core.js +13 -1
- package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-exchange.d.ts +3 -0
- package/dist/src/cli/connect/tool-call-defs-exchange.d.ts.map +1 -0
- package/dist/src/cli/connect/tool-call-defs-exchange.js +146 -0
- package/dist/src/cli/connect/tool-call-defs-exchange.js.map +1 -0
- 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/commerce/__tests__/x402-registry.test.d.ts +2 -0
- package/dist/src/commerce/__tests__/x402-registry.test.d.ts.map +1 -0
- package/dist/src/commerce/__tests__/x402-registry.test.js +105 -0
- package/dist/src/commerce/__tests__/x402-registry.test.js.map +1 -0
- package/dist/src/commerce/evm-address.d.ts +21 -0
- package/dist/src/commerce/evm-address.d.ts.map +1 -0
- package/dist/src/commerce/evm-address.js +94 -0
- package/dist/src/commerce/evm-address.js.map +1 -0
- package/dist/src/commerce/money.d.ts +18 -5
- package/dist/src/commerce/money.d.ts.map +1 -1
- package/dist/src/commerce/money.js +27 -6
- package/dist/src/commerce/money.js.map +1 -1
- package/dist/src/commerce/session-service.d.ts +14 -0
- package/dist/src/commerce/session-service.d.ts.map +1 -1
- package/dist/src/commerce/session-service.js +1 -1
- package/dist/src/commerce/session-service.js.map +1 -1
- package/dist/src/commerce/x402-facilitator.d.ts +64 -13
- package/dist/src/commerce/x402-facilitator.d.ts.map +1 -1
- package/dist/src/commerce/x402-facilitator.js +71 -19
- package/dist/src/commerce/x402-facilitator.js.map +1 -1
- package/dist/src/commerce/x402-handler.d.ts +13 -7
- package/dist/src/commerce/x402-handler.d.ts.map +1 -1
- package/dist/src/commerce/x402-handler.js +23 -10
- package/dist/src/commerce/x402-handler.js.map +1 -1
- package/dist/src/commerce/x402.d.ts +11 -6
- package/dist/src/commerce/x402.d.ts.map +1 -1
- package/dist/src/commerce/x402.js +10 -7
- package/dist/src/commerce/x402.js.map +1 -1
- package/dist/src/config-types.d.ts +12 -0
- package/dist/src/config-types.d.ts.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +8 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/data/app-templates/shells.d.ts +15 -3
- package/dist/src/data/app-templates/shells.d.ts.map +1 -1
- package/dist/src/data/app-templates/shells.js +97 -12
- package/dist/src/data/app-templates/shells.js.map +1 -1
- package/dist/src/data/app-templates.js +2 -2
- package/dist/src/data/app-templates.js.map +1 -1
- package/dist/src/data/appdev-pitfalls.d.ts +2 -0
- package/dist/src/data/appdev-pitfalls.d.ts.map +1 -1
- package/dist/src/data/appdev-pitfalls.js +24 -1
- package/dist/src/data/appdev-pitfalls.js.map +1 -1
- package/dist/src/data/library-packs/cortex.d.ts.map +1 -1
- package/dist/src/data/library-packs/cortex.js +108 -5
- package/dist/src/data/library-packs/cortex.js.map +1 -1
- package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
- package/dist/src/data/library-packs/sdk.js +32 -8
- 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 +83 -6
- package/dist/src/data/library-packs/vendored.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +2039 -24
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/mcp/agent-tasks.d.ts +4 -0
- package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
- package/dist/src/mcp/agent-tasks.js +20 -2
- package/dist/src/mcp/agent-tasks.js.map +1 -1
- package/dist/src/mcp/annotations.d.ts.map +1 -1
- package/dist/src/mcp/annotations.js +20 -0
- package/dist/src/mcp/annotations.js.map +1 -1
- package/dist/src/mcp/apps.d.ts.map +1 -1
- package/dist/src/mcp/apps.js +8 -4
- package/dist/src/mcp/apps.js.map +1 -1
- package/dist/src/mcp/capabilities.d.ts +7 -1
- package/dist/src/mcp/capabilities.d.ts.map +1 -1
- package/dist/src/mcp/capabilities.js +5 -2
- package/dist/src/mcp/capabilities.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/commerce.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/commerce.js +4 -2
- package/dist/src/mcp/catalog/definitions/commerce.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.js +4 -3
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/exchange.d.ts +18 -0
- package/dist/src/mcp/catalog/definitions/exchange.d.ts.map +1 -0
- package/dist/src/mcp/catalog/definitions/exchange.js +182 -0
- package/dist/src/mcp/catalog/definitions/exchange.js.map +1 -0
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +1 -1
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +3 -2
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
- package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +2 -0
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/catalog/output-schemas.d.ts +6 -1
- package/dist/src/mcp/catalog/output-schemas.d.ts.map +1 -1
- package/dist/src/mcp/catalog/output-schemas.js +6 -1
- package/dist/src/mcp/catalog/output-schemas.js.map +1 -1
- package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
- package/dist/src/mcp/catalog/scopes.js +22 -0
- 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 +14 -0
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/mcp/commerce.d.ts.map +1 -1
- package/dist/src/mcp/commerce.js +15 -3
- package/dist/src/mcp/commerce.js.map +1 -1
- package/dist/src/mcp/core-storage.d.ts +23 -0
- package/dist/src/mcp/core-storage.d.ts.map +1 -0
- package/dist/src/mcp/core-storage.js +157 -0
- package/dist/src/mcp/core-storage.js.map +1 -0
- package/dist/src/mcp/core.d.ts +16 -0
- package/dist/src/mcp/core.d.ts.map +1 -1
- package/dist/src/mcp/core.js +75 -119
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/mcp/dm-messages.d.ts +4 -0
- package/dist/src/mcp/dm-messages.d.ts.map +1 -1
- package/dist/src/mcp/dm-messages.js +43 -2
- package/dist/src/mcp/dm-messages.js.map +1 -1
- package/dist/src/mcp/exchange-run.d.ts +5 -0
- package/dist/src/mcp/exchange-run.d.ts.map +1 -0
- package/dist/src/mcp/exchange-run.js +226 -0
- package/dist/src/mcp/exchange-run.js.map +1 -0
- package/dist/src/mcp/exchange.d.ts +5 -0
- package/dist/src/mcp/exchange.d.ts.map +1 -0
- package/dist/src/mcp/exchange.js +352 -0
- package/dist/src/mcp/exchange.js.map +1 -0
- package/dist/src/mcp/extensions.d.ts.map +1 -1
- package/dist/src/mcp/extensions.js +17 -2
- package/dist/src/mcp/extensions.js.map +1 -1
- package/dist/src/mcp/index.d.ts +5 -0
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +26 -3
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/memory-namespace-hints.d.ts +33 -0
- package/dist/src/mcp/memory-namespace-hints.d.ts.map +1 -0
- package/dist/src/mcp/memory-namespace-hints.js +60 -0
- package/dist/src/mcp/memory-namespace-hints.js.map +1 -0
- package/dist/src/mcp/workspaces.d.ts +5 -0
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +5 -3
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/models/agent-task-schemas.d.ts +25 -3
- package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
- package/dist/src/models/agent-task-schemas.js +16 -0
- package/dist/src/models/agent-task-schemas.js.map +1 -1
- package/dist/src/models/app-tool-schemas.d.ts +573 -2
- package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
- package/dist/src/models/app-tool-schemas.js +73 -2
- package/dist/src/models/app-tool-schemas.js.map +1 -1
- package/dist/src/models/odps-schemas.d.ts +305 -0
- package/dist/src/models/odps-schemas.d.ts.map +1 -0
- package/dist/src/models/odps-schemas.js +182 -0
- package/dist/src/models/odps-schemas.js.map +1 -0
- package/dist/src/models/offer-schemas.d.ts +359 -4
- package/dist/src/models/offer-schemas.d.ts.map +1 -1
- package/dist/src/models/offer-schemas.js +37 -0
- package/dist/src/models/offer-schemas.js.map +1 -1
- package/dist/src/models/schemas.d.ts +7 -3
- package/dist/src/models/schemas.d.ts.map +1 -1
- package/dist/src/models/schemas.js +13 -1
- package/dist/src/models/schemas.js.map +1 -1
- package/dist/src/models/webhook-schemas.d.ts +8 -8
- package/dist/src/routes/agent-tasks/create-read.d.ts +4 -0
- package/dist/src/routes/agent-tasks/create-read.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/create-read.js +20 -1
- package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
- package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/lifecycle.js +10 -0
- package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
- package/dist/src/routes/agents/device-auth.d.ts +4 -0
- package/dist/src/routes/agents/device-auth.d.ts.map +1 -1
- package/dist/src/routes/agents/device-auth.js +19 -4
- package/dist/src/routes/agents/device-auth.js.map +1 -1
- package/dist/src/routes/agents/offers.d.ts +2 -0
- package/dist/src/routes/agents/offers.d.ts.map +1 -1
- package/dist/src/routes/agents/offers.js +0 -0
- package/dist/src/routes/agents/offers.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts +12 -0
- package/dist/src/routes/app-grants.d.ts.map +1 -1
- package/dist/src/routes/app-grants.js +90 -27
- package/dist/src/routes/app-grants.js.map +1 -1
- package/dist/src/routes/apps/drafts.d.ts +3 -0
- package/dist/src/routes/apps/drafts.d.ts.map +1 -1
- package/dist/src/routes/apps/drafts.js +63 -1
- package/dist/src/routes/apps/drafts.js.map +1 -1
- package/dist/src/routes/apps/fork-manage.d.ts.map +1 -1
- package/dist/src/routes/apps/fork-manage.js +24 -1
- package/dist/src/routes/apps/fork-manage.js.map +1 -1
- package/dist/src/routes/apps/publish.d.ts +4 -0
- package/dist/src/routes/apps/publish.d.ts.map +1 -1
- package/dist/src/routes/apps/publish.js +44 -3
- package/dist/src/routes/apps/publish.js.map +1 -1
- package/dist/src/routes/apps-cost.d.ts +25 -0
- package/dist/src/routes/apps-cost.d.ts.map +1 -0
- package/dist/src/routes/apps-cost.js +107 -0
- package/dist/src/routes/apps-cost.js.map +1 -0
- package/dist/src/routes/commerce.d.ts.map +1 -1
- package/dist/src/routes/commerce.js +122 -2
- package/dist/src/routes/commerce.js.map +1 -1
- package/dist/src/routes/exchange-market.d.ts +32 -0
- package/dist/src/routes/exchange-market.d.ts.map +1 -0
- package/dist/src/routes/exchange-market.js +580 -0
- package/dist/src/routes/exchange-market.js.map +1 -0
- package/dist/src/routes/exchange.d.ts +33 -0
- package/dist/src/routes/exchange.d.ts.map +1 -0
- package/dist/src/routes/exchange.js +398 -0
- package/dist/src/routes/exchange.js.map +1 -0
- package/dist/src/routes/extensions/actions.d.ts.map +1 -1
- package/dist/src/routes/extensions/actions.js +18 -0
- package/dist/src/routes/extensions/actions.js.map +1 -1
- package/dist/src/routes/extensions/crud.d.ts.map +1 -1
- package/dist/src/routes/extensions/crud.js +36 -3
- package/dist/src/routes/extensions/crud.js.map +1 -1
- package/dist/src/routes/extensions/entitlement-gate.d.ts +33 -0
- package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -0
- package/dist/src/routes/extensions/entitlement-gate.js +156 -0
- package/dist/src/routes/extensions/entitlement-gate.js.map +1 -0
- package/dist/src/routes/extensions/manifest.d.ts +15 -0
- package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
- package/dist/src/routes/extensions/manifest.js +101 -2
- package/dist/src/routes/extensions/manifest.js.map +1 -1
- package/dist/src/routes/extensions/pacing.d.ts +31 -0
- package/dist/src/routes/extensions/pacing.d.ts.map +1 -0
- package/dist/src/routes/extensions/pacing.js +73 -0
- package/dist/src/routes/extensions/pacing.js.map +1 -0
- package/dist/src/routes/extensions/paywall.d.ts.map +1 -1
- package/dist/src/routes/extensions/paywall.js +20 -11
- package/dist/src/routes/extensions/paywall.js.map +1 -1
- package/dist/src/routes/federation-sync/messaging.d.ts.map +1 -1
- package/dist/src/routes/federation-sync/messaging.js +3 -1
- package/dist/src/routes/federation-sync/messaging.js.map +1 -1
- package/dist/src/routes/ghii/recovery.d.ts +2 -0
- package/dist/src/routes/ghii/recovery.d.ts.map +1 -1
- package/dist/src/routes/ghii/recovery.js +7 -0
- package/dist/src/routes/ghii/recovery.js.map +1 -1
- package/dist/src/routes/ghii/register-login.d.ts +4 -0
- package/dist/src/routes/ghii/register-login.d.ts.map +1 -1
- package/dist/src/routes/ghii/register-login.js +45 -22
- package/dist/src/routes/ghii/register-login.js.map +1 -1
- package/dist/src/routes/ghii/web-verify.d.ts +5 -0
- package/dist/src/routes/ghii/web-verify.d.ts.map +1 -1
- package/dist/src/routes/ghii/web-verify.js +24 -3
- package/dist/src/routes/ghii/web-verify.js.map +1 -1
- package/dist/src/routes/libs/sdk-serve.d.ts +11 -0
- package/dist/src/routes/libs/sdk-serve.d.ts.map +1 -0
- package/dist/src/routes/libs/sdk-serve.js +53 -0
- package/dist/src/routes/libs/sdk-serve.js.map +1 -0
- package/dist/src/routes/libs.d.ts +7 -1
- package/dist/src/routes/libs.d.ts.map +1 -1
- package/dist/src/routes/libs.js +65 -146
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/memory/crud.d.ts.map +1 -1
- package/dist/src/routes/memory/crud.js +10 -0
- package/dist/src/routes/memory/crud.js.map +1 -1
- package/dist/src/routes/messages.d.ts +3 -0
- package/dist/src/routes/messages.d.ts.map +1 -1
- package/dist/src/routes/messages.js +9 -0
- package/dist/src/routes/messages.js.map +1 -1
- package/dist/src/routes/notifications.d.ts +6 -3
- package/dist/src/routes/notifications.d.ts.map +1 -1
- package/dist/src/routes/notifications.js +32 -3
- package/dist/src/routes/notifications.js.map +1 -1
- package/dist/src/routes/organisms/crud.d.ts +3 -0
- package/dist/src/routes/organisms/crud.d.ts.map +1 -1
- package/dist/src/routes/organisms/crud.js +5 -2
- package/dist/src/routes/organisms/crud.js.map +1 -1
- package/dist/src/routes/organisms/workspace-access.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-access.js +38 -20
- package/dist/src/routes/organisms/workspace-access.js.map +1 -1
- package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-read.js +7 -2
- package/dist/src/routes/organisms/workspace-read.js.map +1 -1
- package/dist/src/routes/public-stats.d.ts +7 -0
- package/dist/src/routes/public-stats.d.ts.map +1 -1
- package/dist/src/routes/public-stats.js +28 -7
- package/dist/src/routes/public-stats.js.map +1 -1
- package/dist/src/routes/sse.d.ts +7 -0
- package/dist/src/routes/sse.d.ts.map +1 -1
- package/dist/src/routes/sse.js +36 -6
- package/dist/src/routes/sse.js.map +1 -1
- package/dist/src/routes/storage-files.d.ts +11 -0
- package/dist/src/routes/storage-files.d.ts.map +1 -1
- package/dist/src/routes/storage-files.js +58 -51
- package/dist/src/routes/storage-files.js.map +1 -1
- package/dist/src/routes/subdomains.d.ts +4 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +42 -5
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/routes/unfurl.d.ts +27 -0
- package/dist/src/routes/unfurl.d.ts.map +1 -0
- package/dist/src/routes/unfurl.js +180 -0
- package/dist/src/routes/unfurl.js.map +1 -0
- package/dist/src/routes/upload.d.ts +13 -0
- package/dist/src/routes/upload.d.ts.map +1 -1
- package/dist/src/routes/upload.js +115 -28
- package/dist/src/routes/upload.js.map +1 -1
- package/dist/src/routes/webmcp.d.ts +3 -0
- package/dist/src/routes/webmcp.d.ts.map +1 -1
- package/dist/src/routes/webmcp.js +59 -0
- package/dist/src/routes/webmcp.js.map +1 -1
- package/dist/src/schemas/knowledge-package.d.ts +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts +1 -0
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +8 -0
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts +4 -0
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +11 -0
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/services/agent-face.d.ts +10 -2
- package/dist/src/services/agent-face.d.ts.map +1 -1
- package/dist/src/services/agent-face.js +10 -4
- package/dist/src/services/agent-face.js.map +1 -1
- package/dist/src/services/app-tool-interfaces.d.ts +37 -0
- package/dist/src/services/app-tool-interfaces.d.ts.map +1 -0
- package/dist/src/services/app-tool-interfaces.js +101 -0
- package/dist/src/services/app-tool-interfaces.js.map +1 -0
- package/dist/src/services/build-app-prompt.d.ts +22 -0
- package/dist/src/services/build-app-prompt.d.ts.map +1 -1
- package/dist/src/services/build-app-prompt.js +108 -11
- package/dist/src/services/build-app-prompt.js.map +1 -1
- package/dist/src/services/call-timing.d.ts +51 -0
- package/dist/src/services/call-timing.d.ts.map +1 -0
- package/dist/src/services/call-timing.js +91 -0
- package/dist/src/services/call-timing.js.map +1 -0
- package/dist/src/services/capability-invoke.d.ts +2 -0
- package/dist/src/services/capability-invoke.d.ts.map +1 -1
- package/dist/src/services/capability-invoke.js +10 -0
- package/dist/src/services/capability-invoke.js.map +1 -1
- package/dist/src/services/config-schema.d.ts.map +1 -1
- package/dist/src/services/config-schema.js +6 -0
- package/dist/src/services/config-schema.js.map +1 -1
- package/dist/src/services/contacts.d.ts +25 -1
- package/dist/src/services/contacts.d.ts.map +1 -1
- package/dist/src/services/contacts.js +30 -0
- package/dist/src/services/contacts.js.map +1 -1
- package/dist/src/services/draft-token.d.ts +22 -2
- package/dist/src/services/draft-token.d.ts.map +1 -1
- package/dist/src/services/draft-token.js +52 -3
- package/dist/src/services/draft-token.js.map +1 -1
- package/dist/src/services/entitlement-money.d.ts +55 -0
- package/dist/src/services/entitlement-money.d.ts.map +1 -0
- package/dist/src/services/entitlement-money.js +68 -0
- package/dist/src/services/entitlement-money.js.map +1 -0
- package/dist/src/services/exchange-market.d.ts +280 -0
- package/dist/src/services/exchange-market.d.ts.map +1 -0
- package/dist/src/services/exchange-market.js +276 -0
- package/dist/src/services/exchange-market.js.map +1 -0
- package/dist/src/services/exchange-odps.d.ts +58 -0
- package/dist/src/services/exchange-odps.d.ts.map +1 -0
- package/dist/src/services/exchange-odps.js +400 -0
- package/dist/src/services/exchange-odps.js.map +1 -0
- package/dist/src/services/exchange-projection.d.ts +61 -0
- package/dist/src/services/exchange-projection.d.ts.map +1 -0
- package/dist/src/services/exchange-projection.js +504 -0
- package/dist/src/services/exchange-projection.js.map +1 -0
- package/dist/src/services/exchange-proposals.d.ts +47 -0
- package/dist/src/services/exchange-proposals.d.ts.map +1 -0
- package/dist/src/services/exchange-proposals.js +73 -0
- package/dist/src/services/exchange-proposals.js.map +1 -0
- package/dist/src/services/exchange-work.d.ts +30 -0
- package/dist/src/services/exchange-work.d.ts.map +1 -0
- package/dist/src/services/exchange-work.js +43 -0
- package/dist/src/services/exchange-work.js.map +1 -0
- package/dist/src/services/extension-files.d.ts +64 -0
- package/dist/src/services/extension-files.d.ts.map +1 -0
- package/dist/src/services/extension-files.js +88 -0
- package/dist/src/services/extension-files.js.map +1 -0
- package/dist/src/services/extension-runtime.d.ts +33 -0
- package/dist/src/services/extension-runtime.d.ts.map +1 -1
- package/dist/src/services/extension-runtime.js +52 -0
- package/dist/src/services/extension-runtime.js.map +1 -1
- package/dist/src/services/file-refs.d.ts +105 -0
- package/dist/src/services/file-refs.d.ts.map +1 -0
- package/dist/src/services/file-refs.js +106 -0
- package/dist/src/services/file-refs.js.map +1 -0
- package/dist/src/services/message-send.d.ts.map +1 -1
- package/dist/src/services/message-send.js +4 -1
- package/dist/src/services/message-send.js.map +1 -1
- package/dist/src/services/metered-entitlements.d.ts +210 -0
- package/dist/src/services/metered-entitlements.d.ts.map +1 -0
- package/dist/src/services/metered-entitlements.js +268 -0
- package/dist/src/services/metered-entitlements.js.map +1 -0
- package/dist/src/services/notify.d.ts +7 -0
- package/dist/src/services/notify.d.ts.map +1 -1
- package/dist/src/services/notify.js +35 -0
- package/dist/src/services/notify.js.map +1 -1
- package/dist/src/services/owner-memory.d.ts +30 -1
- package/dist/src/services/owner-memory.d.ts.map +1 -1
- package/dist/src/services/owner-memory.js +31 -14
- package/dist/src/services/owner-memory.js.map +1 -1
- package/dist/src/services/owner-provisioning.d.ts +5 -0
- package/dist/src/services/owner-provisioning.d.ts.map +1 -1
- package/dist/src/services/owner-provisioning.js +20 -2
- package/dist/src/services/owner-provisioning.js.map +1 -1
- package/dist/src/services/task-files.d.ts +51 -0
- package/dist/src/services/task-files.d.ts.map +1 -0
- package/dist/src/services/task-files.js +58 -0
- package/dist/src/services/task-files.js.map +1 -0
- package/dist/src/services/upload-token.d.ts +29 -0
- package/dist/src/services/upload-token.d.ts.map +1 -1
- package/dist/src/services/upload-token.js +37 -0
- package/dist/src/services/upload-token.js.map +1 -1
- package/dist/src/services/upload-zip.d.ts +2 -0
- package/dist/src/services/upload-zip.d.ts.map +1 -1
- package/dist/src/services/upload-zip.js +5 -1
- package/dist/src/services/upload-zip.js.map +1 -1
- package/dist/src/services/workspace-meta.d.ts +15 -0
- package/dist/src/services/workspace-meta.d.ts.map +1 -1
- package/dist/src/services/workspace-meta.js +17 -0
- package/dist/src/services/workspace-meta.js.map +1 -1
- package/dist/src/services/workspace-provision.d.ts +3 -0
- package/dist/src/services/workspace-provision.d.ts.map +1 -1
- package/dist/src/services/workspace-provision.js +5 -3
- package/dist/src/services/workspace-provision.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 +10 -0
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/apps.d.ts +1 -0
- package/dist/src/storage/providers/postgres-kysely/methods/apps.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/apps.js +2 -0
- package/dist/src/storage/providers/postgres-kysely/methods/apps.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts +1 -0
- package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.js +4 -0
- package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts +2 -0
- package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/memory.js +12 -1
- package/dist/src/storage/providers/postgres-kysely/methods/memory.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 +5 -1
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrations/0011_unique_verified_email.sql +25 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0012_unique_live_app_grant.sql +29 -0
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts +4 -0
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/apps.js +9 -0
- package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/governance.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/governance.js +4 -1
- package/dist/src/storage/providers/sqlite/methods/governance.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +4 -0
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/owner.d.ts +5 -0
- package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/owner.js +8 -0
- package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +40 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts +9 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/app.repository.d.ts +0 -0
- package/dist/src/storage/repositories/app.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/identity.repository.d.ts +6 -0
- package/dist/src/storage/repositories/identity.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/memory.repository.d.ts +14 -0
- package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories-impl/memory-repository.d.ts +8 -1
- package/dist/src/storage/repositories-impl/memory-repository.d.ts.map +1 -1
- package/dist/src/storage/repositories-impl/memory-repository.js +15 -4
- package/dist/src/storage/repositories-impl/memory-repository.js.map +1 -1
- package/dist/src/storage/types/agents-messaging.d.ts +19 -0
- package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
- package/dist/src/storage/types/agents-messaging.js.map +1 -1
- package/dist/src/storage/types/apps.d.ts +1 -0
- package/dist/src/storage/types/apps.d.ts.map +1 -1
- package/dist/src/storage/types/organisms-federation.d.ts +50 -0
- package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
- package/dist/src/utils/app-badge.d.ts.map +1 -1
- package/dist/src/utils/app-badge.js +7 -3
- package/dist/src/utils/app-badge.js.map +1 -1
- package/dist/src/utils/app-mobile-lint.d.ts +17 -0
- package/dist/src/utils/app-mobile-lint.d.ts.map +1 -0
- package/dist/src/utils/app-mobile-lint.js +40 -0
- package/dist/src/utils/app-mobile-lint.js.map +1 -0
- package/dist/static/app-catalog/_template.html +18 -82
- package/dist/static/app-catalog/js/apps-io.js +51 -165
- package/dist/static/app-catalog/js/cortex.js +3 -1
- package/dist/static/app-catalog/js/cost.js +100 -0
- package/dist/static/app-catalog/js/db.js +23 -93
- package/dist/static/app-catalog/js/detail.js +568 -59
- package/dist/static/app-catalog/js/favorites.js +71 -0
- package/dist/static/app-catalog/js/i18n-data.js +369 -19
- package/dist/static/app-catalog/js/main.js +50 -139
- package/dist/static/app-catalog/js/migrate.js +88 -0
- package/dist/static/app-catalog/js/monetize.js +205 -17
- package/dist/static/app-catalog/js/odps.js +489 -0
- package/dist/static/app-catalog/js/promote.js +70 -0
- package/dist/static/app-catalog/js/render.js +29 -139
- package/dist/static/app-catalog/js/server-io.js +126 -223
- package/dist/static/app-catalog/js/settings.js +11 -204
- package/dist/static/app-catalog/js/workcopy.js +198 -0
- package/dist/static/app-catalog/styles/app-catalog.css +100 -0
- package/dist/static/app-catalog.html +2220 -1029
- package/dist/static/sdk-libs/_core/config.js +52 -0
- package/dist/static/sdk-libs/_core/http.js +52 -0
- package/dist/static/sdk-libs/_core/namespace.js +33 -0
- package/dist/static/sdk-libs/_core/sdk-globals.d.ts +50 -0
- package/dist/static/sdk-libs/_core/session.js +66 -0
- package/dist/static/sdk-libs/agentface/index.js +102 -0
- package/dist/static/sdk-libs/agents/index.js +305 -0
- package/dist/static/sdk-libs/ai/index.js +153 -0
- package/dist/static/sdk-libs/audio/core.js +111 -0
- package/dist/static/sdk-libs/audio/index.js +380 -0
- package/dist/static/sdk-libs/audio/instruments.js +369 -0
- package/dist/static/sdk-libs/auth/cluster.js +97 -0
- package/dist/static/sdk-libs/auth/config.js +46 -0
- package/dist/static/sdk-libs/auth/crypto.js +166 -0
- package/dist/static/sdk-libs/auth/events.js +27 -0
- package/dist/static/sdk-libs/auth/i18n.js +64 -0
- package/dist/static/sdk-libs/auth/index.js +61 -0
- package/dist/static/sdk-libs/auth/locale.js +151 -0
- package/dist/static/sdk-libs/auth/modal.js +554 -0
- package/dist/static/sdk-libs/auth/palette.js +172 -0
- package/dist/static/sdk-libs/auth/pill.js +198 -0
- package/dist/static/sdk-libs/auth/session.js +792 -0
- package/dist/static/sdk-libs/auth/signup.js +232 -0
- package/dist/static/sdk-libs/auth/theme.js +137 -0
- package/dist/static/sdk-libs/capabilities/index.js +179 -0
- package/dist/static/sdk-libs/commerce/index.js +243 -0
- package/dist/static/sdk-libs/data/index.js +250 -0
- package/dist/static/sdk-libs/dist/aimeat-agentface.js +91 -0
- package/dist/static/sdk-libs/dist/aimeat-agents.js +348 -0
- package/dist/static/sdk-libs/dist/aimeat-ai.js +168 -0
- package/dist/static/sdk-libs/dist/aimeat-audio.js +979 -0
- package/dist/static/sdk-libs/dist/aimeat-auth.js +2232 -0
- package/dist/static/sdk-libs/dist/aimeat-capabilities.js +177 -0
- package/dist/static/sdk-libs/dist/aimeat-commerce.js +265 -0
- package/dist/static/sdk-libs/dist/aimeat-data.js +247 -0
- package/dist/static/sdk-libs/dist/aimeat-editor.js +299 -0
- package/dist/static/sdk-libs/dist/aimeat-header.js +270 -0
- package/dist/static/sdk-libs/dist/aimeat-intake.js +94 -0
- package/dist/static/sdk-libs/dist/aimeat-live.js +317 -0
- package/dist/static/sdk-libs/dist/aimeat-markdown.js +633 -0
- package/dist/static/sdk-libs/dist/aimeat-organism.js +394 -0
- package/dist/static/sdk-libs/dist/aimeat-portfolio-standalone.js +90 -0
- package/dist/static/sdk-libs/dist/aimeat-social.js +157 -0
- package/dist/static/sdk-libs/dist/aimeat-speech.js +300 -0
- package/dist/static/sdk-libs/dist/aimeat-storage.js +210 -0
- package/dist/static/sdk-libs/dist/aimeat-tunnel.js +383 -0
- package/dist/static/sdk-libs/dist/aimeat-wallet.js +118 -0
- package/dist/static/sdk-libs/dist/aimeat-webmcp.js +187 -0
- package/dist/static/sdk-libs/dist/aimeat-work.js +213 -0
- package/dist/static/sdk-libs/dist/aimeat-workflows.js +147 -0
- package/dist/static/sdk-libs/editor/index.js +229 -0
- package/dist/static/sdk-libs/header/index.js +249 -0
- package/dist/static/sdk-libs/intake/index.js +75 -0
- package/dist/static/sdk-libs/live/index.js +223 -0
- package/dist/static/sdk-libs/markdown/index.js +570 -0
- package/dist/static/sdk-libs/organism/index.js +381 -0
- package/dist/static/sdk-libs/portfolio-standalone/index.js +78 -0
- package/dist/static/sdk-libs/social/index.js +140 -0
- package/dist/static/sdk-libs/speech/index.js +321 -0
- package/dist/static/sdk-libs/storage/index.js +189 -0
- package/dist/static/sdk-libs/tunnel/index.js +428 -0
- package/dist/static/sdk-libs/wallet/index.js +115 -0
- package/dist/static/sdk-libs/webmcp/index.js +185 -0
- package/dist/static/sdk-libs/work/index.js +191 -0
- package/dist/static/sdk-libs/workflows/index.js +113 -0
- package/package.json +10 -3
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/services/file-refs.ts
|
|
3
|
+
* @description One place that turns a FILE REFERENCE into either an authorized handle or a legible
|
|
4
|
+
* refusal. A reference is `"<gaii>/<key>"` (a bare key means the caller's own storage) — the same
|
|
5
|
+
* form `ctx.files.read` already takes, so an extension, an MCP tool, a task attachment and a DM
|
|
6
|
+
* attachment all name a file the same way.
|
|
7
|
+
*
|
|
8
|
+
* Why this exists: storage is keyed by (ownerGaii, key), and every agent-facing read path used to
|
|
9
|
+
* look up ONLY the caller's own namespace. A file the owner uploaded answered "not found" to that
|
|
10
|
+
* owner's own agent, so a PDF could be handed to an agent as a reference it could never open. The
|
|
11
|
+
* authorization was never the problem — `visibility:'owner'` and consent grants already cover it;
|
|
12
|
+
* the lookup was. Reads here go through the same authorizeRead() the /v1/pub route uses, as the
|
|
13
|
+
* CALLER, so an agent sees exactly what the principal invoking it could see and nothing more.
|
|
14
|
+
*
|
|
15
|
+
* Bytes never travel through this module: it answers with a presigned, TTL-limited download_url.
|
|
16
|
+
* A FOREIGN file gets a deliberately shorter TTL than the caller's own — the handle outlives a
|
|
17
|
+
* revoked grant until it expires, so the window for someone else's data is kept small.
|
|
18
|
+
* @structure
|
|
19
|
+
* - parseFileRef(ref, callerGaii) — split "<gaii>/<key>" (bare key → caller's namespace)
|
|
20
|
+
* - resolveFileRef(...) — locate + authorize, never throws, returns a typed access verdict
|
|
21
|
+
* - fileHandleFor(...) — resolveFileRef + mint the presigned download handle
|
|
22
|
+
* - OWN_HANDLE_TTL_SECONDS / FOREIGN_HANDLE_TTL_SECONDS
|
|
23
|
+
* @usage
|
|
24
|
+
* import { fileHandleFor } from '../services/file-refs.js';
|
|
25
|
+
* const h = await fileHandleFor(storage, config, `${ownerGhii}/${key}`, { gaii: agentGaii });
|
|
26
|
+
* if (h.access !== 'granted') return refuse(h.reason);
|
|
27
|
+
* @version-history
|
|
28
|
+
* v1.0.0 — 2026-07-26 — Initial: shared file-reference resolution so an agent can read a file it
|
|
29
|
+
* does not own (owner-uploaded PDFs, DM attachments, task attachments) through one guard.
|
|
30
|
+
*/
|
|
31
|
+
import type { AimeatConfig } from '../config.js';
|
|
32
|
+
import type { Storage, StorageFileRecord } from '../storage/interface.js';
|
|
33
|
+
/** A handle for one of the caller's OWN files may live an hour (parity with GET /v1/storage?mode=handle). */
|
|
34
|
+
export declare const OWN_HANDLE_TTL_SECONDS = 3600;
|
|
35
|
+
/** Someone else's file: short enough that a revoked grant stops mattering quickly. */
|
|
36
|
+
export declare const FOREIGN_HANDLE_TTL_SECONDS = 900;
|
|
37
|
+
export interface FileRefAccessor {
|
|
38
|
+
/** The resolved identity of the caller (GHII / GAII / GEAI) — never a client-supplied id. */
|
|
39
|
+
gaii: string;
|
|
40
|
+
/** `req.auth.sub` when there is one (threaded into the workspace read gate). */
|
|
41
|
+
sub?: string;
|
|
42
|
+
/** The caller's bare owner name (threaded into the workspace read gate). */
|
|
43
|
+
owner?: string;
|
|
44
|
+
}
|
|
45
|
+
export type FileRefAccess = 'granted' | 'denied' | 'missing';
|
|
46
|
+
export interface ResolvedFileRef {
|
|
47
|
+
access: FileRefAccess;
|
|
48
|
+
/** Canonical "<gaii>/<key>" form of what was asked for. */
|
|
49
|
+
ref: string;
|
|
50
|
+
ownerGaii: string;
|
|
51
|
+
key: string;
|
|
52
|
+
/** Present only when access === 'granted'. */
|
|
53
|
+
file?: StorageFileRecord;
|
|
54
|
+
/** Machine-readable cause on a non-granted verdict. */
|
|
55
|
+
reason?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface FileHandle {
|
|
58
|
+
access: FileRefAccess;
|
|
59
|
+
ref: string;
|
|
60
|
+
owner_gaii: string;
|
|
61
|
+
key: string;
|
|
62
|
+
mime_type?: string;
|
|
63
|
+
size?: number;
|
|
64
|
+
name?: string;
|
|
65
|
+
/** Presigned, no-auth GET. Absent unless access === 'granted'. */
|
|
66
|
+
download_url?: string;
|
|
67
|
+
expires_in_seconds?: number;
|
|
68
|
+
reason?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Split `"<gaii>/<key>"` into its parts. A GAII always carries an `@node` (and an extension namespace
|
|
72
|
+
* starts with `ext:`), so the first path segment is an owner ONLY when it looks like one — a plain
|
|
73
|
+
* `dm-out/invoice.pdf` stays a key in the caller's own namespace.
|
|
74
|
+
*/
|
|
75
|
+
export declare function parseFileRef(ref: string, callerGaii: string): {
|
|
76
|
+
gaii: string;
|
|
77
|
+
key: string;
|
|
78
|
+
};
|
|
79
|
+
/** Build the canonical reference string for a stored file. */
|
|
80
|
+
export declare function fileRefFor(ownerGaii: string, key: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* Locate the file a reference names and decide whether `accessor` may read it. Never throws: a
|
|
83
|
+
* missing file, an unreadable one and a malformed reference all come back as a verdict, because
|
|
84
|
+
* every caller here is a tool or a route that owes the agent a legible answer rather than a stack
|
|
85
|
+
* trace. Existence is NOT disclosed to a caller who may not read the file — a denied read reports
|
|
86
|
+
* 'denied' whether or not the bytes exist, matching GET /v1/pub.
|
|
87
|
+
*/
|
|
88
|
+
export declare function resolveFileRef(storage: Storage, config: AimeatConfig, ref: string, accessor: FileRefAccessor): Promise<ResolvedFileRef>;
|
|
89
|
+
/**
|
|
90
|
+
* Turn an already-resolved reference into a handle. Split out from fileHandleFor so a caller that
|
|
91
|
+
* needs the record for something else (an inline text read, a byte stream) pays for ONE lookup —
|
|
92
|
+
* getStorageFile loads the data, and resolving twice would read a large file twice.
|
|
93
|
+
*/
|
|
94
|
+
export declare function handleFromResolved(config: AimeatConfig, resolved: ResolvedFileRef, accessorGaii: string, opts?: {
|
|
95
|
+
name?: string;
|
|
96
|
+
}): Promise<FileHandle>;
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a reference and, when the read is allowed, mint the presigned download handle. This is what
|
|
99
|
+
* every agent-facing surface returns: the agent gets a URL it can hand to a fetch, a document parser
|
|
100
|
+
* or a human, and the bytes never enter a model context.
|
|
101
|
+
*/
|
|
102
|
+
export declare function fileHandleFor(storage: Storage, config: AimeatConfig, ref: string, accessor: FileRefAccessor, opts?: {
|
|
103
|
+
name?: string;
|
|
104
|
+
}): Promise<FileHandle>;
|
|
105
|
+
//# sourceMappingURL=file-refs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-refs.d.ts","sourceRoot":"","sources":["../../../src/services/file-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI1E,6GAA6G;AAC7G,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAS3F;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,eAAe,GAC1B,OAAO,CAAC,eAAe,CAAC,CAsC1B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC,UAAU,CAAC,CAyBrB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,eAAe,EACzB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC,UAAU,CAAC,CAGrB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { authorizeRead } from './access-guard.js';
|
|
2
|
+
import { generateDownloadToken } from './download-token.js';
|
|
3
|
+
/** A handle for one of the caller's OWN files may live an hour (parity with GET /v1/storage?mode=handle). */
|
|
4
|
+
export const OWN_HANDLE_TTL_SECONDS = 3600;
|
|
5
|
+
/** Someone else's file: short enough that a revoked grant stops mattering quickly. */
|
|
6
|
+
export const FOREIGN_HANDLE_TTL_SECONDS = 900;
|
|
7
|
+
/**
|
|
8
|
+
* Split `"<gaii>/<key>"` into its parts. A GAII always carries an `@node` (and an extension namespace
|
|
9
|
+
* starts with `ext:`), so the first path segment is an owner ONLY when it looks like one — a plain
|
|
10
|
+
* `dm-out/invoice.pdf` stays a key in the caller's own namespace.
|
|
11
|
+
*/
|
|
12
|
+
export function parseFileRef(ref, callerGaii) {
|
|
13
|
+
const slash = String(ref ?? '').indexOf('/');
|
|
14
|
+
if (slash > 0) {
|
|
15
|
+
const head = ref.slice(0, slash);
|
|
16
|
+
if (head.includes('@') || head.startsWith('ext:')) {
|
|
17
|
+
return { gaii: head, key: ref.slice(slash + 1) };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return { gaii: callerGaii, key: String(ref ?? '') };
|
|
21
|
+
}
|
|
22
|
+
/** Build the canonical reference string for a stored file. */
|
|
23
|
+
export function fileRefFor(ownerGaii, key) {
|
|
24
|
+
return `${ownerGaii}/${key}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Locate the file a reference names and decide whether `accessor` may read it. Never throws: a
|
|
28
|
+
* missing file, an unreadable one and a malformed reference all come back as a verdict, because
|
|
29
|
+
* every caller here is a tool or a route that owes the agent a legible answer rather than a stack
|
|
30
|
+
* trace. Existence is NOT disclosed to a caller who may not read the file — a denied read reports
|
|
31
|
+
* 'denied' whether or not the bytes exist, matching GET /v1/pub.
|
|
32
|
+
*/
|
|
33
|
+
export async function resolveFileRef(storage, config, ref, accessor) {
|
|
34
|
+
const { gaii, key } = parseFileRef(ref, accessor.gaii);
|
|
35
|
+
const canonical = fileRefFor(gaii, key);
|
|
36
|
+
if (!key) {
|
|
37
|
+
return { access: 'missing', ref: canonical, ownerGaii: gaii, key, reason: 'empty_key' };
|
|
38
|
+
}
|
|
39
|
+
const file = await storage.getStorageFile(gaii, key);
|
|
40
|
+
const own = gaii === accessor.gaii;
|
|
41
|
+
if (!file) {
|
|
42
|
+
return {
|
|
43
|
+
access: 'missing',
|
|
44
|
+
ref: canonical,
|
|
45
|
+
ownerGaii: gaii,
|
|
46
|
+
key,
|
|
47
|
+
// The single most common mistake: naming a bare key for a file that belongs to the OWNER.
|
|
48
|
+
reason: own
|
|
49
|
+
? 'not_found_in_your_namespace'
|
|
50
|
+
: 'not_found',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const decision = await authorizeRead(storage, config, {
|
|
54
|
+
ownerGaii: gaii,
|
|
55
|
+
accessorGaii: accessor.gaii,
|
|
56
|
+
resourceKey: `storage:${key}`,
|
|
57
|
+
visibility: file.visibility,
|
|
58
|
+
groupId: file.groupId,
|
|
59
|
+
workspaceRef: file.workspaceRef,
|
|
60
|
+
accessorSub: accessor.sub,
|
|
61
|
+
accessorOwner: accessor.owner,
|
|
62
|
+
action: 'read',
|
|
63
|
+
});
|
|
64
|
+
if (!decision.allowed) {
|
|
65
|
+
return { access: 'denied', ref: canonical, ownerGaii: gaii, key, reason: decision.reason ?? 'not_permitted' };
|
|
66
|
+
}
|
|
67
|
+
return { access: 'granted', ref: canonical, ownerGaii: gaii, key, file };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Turn an already-resolved reference into a handle. Split out from fileHandleFor so a caller that
|
|
71
|
+
* needs the record for something else (an inline text read, a byte stream) pays for ONE lookup —
|
|
72
|
+
* getStorageFile loads the data, and resolving twice would read a large file twice.
|
|
73
|
+
*/
|
|
74
|
+
export async function handleFromResolved(config, resolved, accessorGaii, opts) {
|
|
75
|
+
const base = {
|
|
76
|
+
access: resolved.access,
|
|
77
|
+
ref: resolved.ref,
|
|
78
|
+
owner_gaii: resolved.ownerGaii,
|
|
79
|
+
key: resolved.key,
|
|
80
|
+
};
|
|
81
|
+
if (opts?.name)
|
|
82
|
+
base.name = opts.name;
|
|
83
|
+
if (resolved.access !== 'granted' || !resolved.file) {
|
|
84
|
+
return { ...base, reason: resolved.reason };
|
|
85
|
+
}
|
|
86
|
+
const file = resolved.file;
|
|
87
|
+
const ttl = resolved.ownerGaii === accessorGaii ? OWN_HANDLE_TTL_SECONDS : FOREIGN_HANDLE_TTL_SECONDS;
|
|
88
|
+
const token = await generateDownloadToken({ sub: file.ownerGaii, key: file.key, mimeType: file.mimeType, size: file.size }, ttl);
|
|
89
|
+
return {
|
|
90
|
+
...base,
|
|
91
|
+
mime_type: file.mimeType,
|
|
92
|
+
size: file.size,
|
|
93
|
+
download_url: `${config.baseUrl}/v1/download/${token}`,
|
|
94
|
+
expires_in_seconds: ttl,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a reference and, when the read is allowed, mint the presigned download handle. This is what
|
|
99
|
+
* every agent-facing surface returns: the agent gets a URL it can hand to a fetch, a document parser
|
|
100
|
+
* or a human, and the bytes never enter a model context.
|
|
101
|
+
*/
|
|
102
|
+
export async function fileHandleFor(storage, config, ref, accessor, opts) {
|
|
103
|
+
const resolved = await resolveFileRef(storage, config, ref, accessor);
|
|
104
|
+
return handleFromResolved(config, resolved, accessor.gaii, opts);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=file-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-refs.js","sourceRoot":"","sources":["../../../src/services/file-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-send.d.ts","sourceRoot":"","sources":["../../../src/services/message-send.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAK3E,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;mFAC+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yGAAyG;IACzG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,EAAE,EAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,uBAAuB,EAAE,CAa3B;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3D;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"message-send.d.ts","sourceRoot":"","sources":["../../../src/services/message-send.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAK3E,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;mFAC+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yGAAyG;IACzG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,EAAE,EAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,uBAAuB,EAAE,CAa3B;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3D;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8I7G"}
|
|
@@ -143,7 +143,10 @@ export async function sendDirectMessage(ctx, input) {
|
|
|
143
143
|
type: isRequest ? 'direct_message_request' : 'direct_message',
|
|
144
144
|
title: isRequest ? `${senderGhii} wants to message you` : `New message from ${senderGhii}`,
|
|
145
145
|
body: messagePreview(body),
|
|
146
|
-
|
|
146
|
+
// Request → 'req:<conversationId>': while pending it lands on the inbox requests list, but once
|
|
147
|
+
// the request is accepted the same notification opens the now-existing thread (see inbox-tab
|
|
148
|
+
// consumeDeepLink). A delivered DM deep-links straight to its conversation.
|
|
149
|
+
link: isRequest ? `/v1/profile#inbox/req:${conversationId}` : `/v1/profile#inbox/${conversationId}`,
|
|
147
150
|
// A delivered DM gets an inline reply box in the bell (POST /v1/messages back to the sender).
|
|
148
151
|
// A pending request has no thread to reply into yet — it keeps its navigate-to-requests link.
|
|
149
152
|
actions: isRequest ? undefined : [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-send.js","sourceRoot":"","sources":["../../../src/services/message-send.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message-send.js","sourceRoot":"","sources":["../../../src/services/message-send.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import type { Storage } from '../storage/interface.js';
|
|
2
|
+
/** The unit an entitlement is priced + budgeted in. Kept single-unit-per-entitlement so money micros and
|
|
3
|
+
* morsels are NEVER conflated (commerce `money.ts` micros ≠ morsel counts). `money` prices are integer
|
|
4
|
+
* 6-decimal MICRO-units; `morsels` prices are whole morsels. Slice-1 uses `morsels` (fully in-repo,
|
|
5
|
+
* atomic settlement); the `money` rail (Stripe Connect, EE) is the identical seam. */
|
|
6
|
+
export type EntitlementUnit = 'money' | 'morsels';
|
|
7
|
+
/**
|
|
8
|
+
* The PRICING MODEL — what triggers a charge, orthogonal to the settlement rail (unit). Carries its own
|
|
9
|
+
* mutable state so the gateway can advance it per call. Amounts are in the entitlement's `unit`.
|
|
10
|
+
* - `per_call` — charge `pricePerCall` every call (the base model).
|
|
11
|
+
* - `bundle` — buy a block of `blockSize` calls for `blockPrice`; each call draws down
|
|
12
|
+
* `callsRemaining`; hitting 0 refills (charges another `blockPrice`).
|
|
13
|
+
* - `subscription` — pay `periodPrice` per `periodSeconds` window; within the period calls are free but
|
|
14
|
+
* rate-limited to `callsPerWindow` per `windowSeconds`; period expiry renews (charges again).
|
|
15
|
+
*/
|
|
16
|
+
export type PricingSpec = {
|
|
17
|
+
model: 'per_call';
|
|
18
|
+
} | {
|
|
19
|
+
model: 'bundle';
|
|
20
|
+
blockSize: number;
|
|
21
|
+
blockPrice: number;
|
|
22
|
+
callsRemaining: number;
|
|
23
|
+
} | {
|
|
24
|
+
model: 'subscription';
|
|
25
|
+
periodSeconds: number;
|
|
26
|
+
periodPrice: number;
|
|
27
|
+
callsPerWindow: number;
|
|
28
|
+
windowSeconds: number;
|
|
29
|
+
validUntil: string;
|
|
30
|
+
windowStart: string;
|
|
31
|
+
windowCount: number;
|
|
32
|
+
};
|
|
33
|
+
/** What to charge for ONE call + the advanced pricing state to persist (computed by {@link computeCharge}). */
|
|
34
|
+
export interface ChargeDecision {
|
|
35
|
+
allowed: boolean;
|
|
36
|
+
reason?: string;
|
|
37
|
+
chargeUnits: number;
|
|
38
|
+
pricing: PricingSpec;
|
|
39
|
+
}
|
|
40
|
+
/** Per-entitlement spend ceiling, expressed in the entitlement's `unit`. `capUnits: null` = uncapped. */
|
|
41
|
+
export interface EntitlementBudget {
|
|
42
|
+
capUnits: number | null;
|
|
43
|
+
spentUnits: number;
|
|
44
|
+
calls: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The sellable surface a contract binds to when it is NOT a raw extension action — an app-tool a provider
|
|
48
|
+
* app sells cross-app (TARGET-045 Gap 1). The metered coordinate (`ext`/`action`) stays the shared key; this
|
|
49
|
+
* pins the immutable INTERFACE VERSION so the metered call routes to the frozen snapshot's binding even after
|
|
50
|
+
* the provider ships a new app version. `null`/absent = the classic ext-action surface.
|
|
51
|
+
*/
|
|
52
|
+
export interface AppToolSurface {
|
|
53
|
+
kind: 'app-tool';
|
|
54
|
+
ownerName: string;
|
|
55
|
+
appId: string;
|
|
56
|
+
tool: string;
|
|
57
|
+
ifaceVersion: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The sellable surface for AGENT WORK (TARGET-045 Gap 2) — a provider agent sells a TASK TYPE it performs.
|
|
61
|
+
* Unlike a data/app-tool call (synchronous), agent work is ASYNC: a task is started, the agent delivers, and
|
|
62
|
+
* the per-task price is metered ON DELIVERY. The metered coordinate is `agentwork:{owner}/{agent}` + taskType.
|
|
63
|
+
*/
|
|
64
|
+
export interface AgentWorkSurface {
|
|
65
|
+
kind: 'agent-work';
|
|
66
|
+
ownerName: string;
|
|
67
|
+
agentName: string;
|
|
68
|
+
taskType: string;
|
|
69
|
+
}
|
|
70
|
+
/** The sellable surface a contract binds to when it is not a raw ext-action. */
|
|
71
|
+
export type SellableSurface = AppToolSurface | AgentWorkSurface;
|
|
72
|
+
/** The stored shape of one entitlement (the `value` of the memory record). */
|
|
73
|
+
export interface MeteredEntitlement {
|
|
74
|
+
entitlementId: string;
|
|
75
|
+
/** Who may call: an app GEAI, an owner GHII, or a full GAII. Verified against the caller on every charge. */
|
|
76
|
+
consumerGaii: string;
|
|
77
|
+
/** The consuming app id ("owner/filename") when the consumer is an app — powers the per-app cost surface (G3). */
|
|
78
|
+
appId: string | null;
|
|
79
|
+
/** Who gets paid (the seller GHII). */
|
|
80
|
+
providerGhii: string;
|
|
81
|
+
/** Provider capability coordinates. Slice-1 = an extension action; a hop = one (ext, action) pair. */
|
|
82
|
+
ext: string;
|
|
83
|
+
action: string;
|
|
84
|
+
/** Human/machine label, e.g. `fi.ytunnus.validate`. */
|
|
85
|
+
capabilityLabel: string;
|
|
86
|
+
/** The unit price + budget are expressed in. */
|
|
87
|
+
unit: EntitlementUnit;
|
|
88
|
+
/** Base per-call price, in `unit` (micros for money, whole morsels for morsels). Charged directly for
|
|
89
|
+
* `per_call`; the reference/base for other models (bundle/subscription set their own amounts). */
|
|
90
|
+
pricePerCall: number;
|
|
91
|
+
/** Currency when `unit === 'money'` (e.g. EUR/USD); ignored for morsels. */
|
|
92
|
+
currency: string | null;
|
|
93
|
+
/** The pricing model + its mutable state. Defaults to `{ model: 'per_call' }`. */
|
|
94
|
+
pricing: PricingSpec;
|
|
95
|
+
budget: EntitlementBudget;
|
|
96
|
+
/** Platform cut override (0–100). `null` = use the node's configured marketplace fee. */
|
|
97
|
+
rakePercent: number | null;
|
|
98
|
+
/**
|
|
99
|
+
* Morsels burned per call to PACE this contract, pinned at accept time like the price is. Null
|
|
100
|
+
* means the capability declared none and the node's default applies. A burn, never revenue: it
|
|
101
|
+
* bounds the call RATE, which is the one thing a money budget cannot do.
|
|
102
|
+
*/
|
|
103
|
+
tollMorsels?: number | null;
|
|
104
|
+
/** The sellable surface when this contract is for an app-tool (Gap 1) or agent-work (Gap 2); absent for a
|
|
105
|
+
* raw ext-action. App-tool calls route to the pinned interface binding; agent-work settles on delivery. */
|
|
106
|
+
surface?: SellableSurface | null;
|
|
107
|
+
/** The contract this entitlement was minted under (an EXCHANGE contract or a `wsengage.*` id). */
|
|
108
|
+
contractRef: string;
|
|
109
|
+
/** Who carries the trust-ramp / escrow risk, per the contract. */
|
|
110
|
+
escrowParty: 'consumer' | 'provider' | null;
|
|
111
|
+
state: 'active' | 'paused' | 'exhausted' | 'revoked';
|
|
112
|
+
createdAt: string;
|
|
113
|
+
createdBy: string;
|
|
114
|
+
updatedAt: string;
|
|
115
|
+
}
|
|
116
|
+
/** Deterministic, dot-safe key: a call `(consumer, ext, action)` maps to exactly one entitlement, so the
|
|
117
|
+
* gateway does an O(1) `getMemory` lookup (no scan). GAII contains `@`/`#` — hashing sidesteps key-segment
|
|
118
|
+
* rules while staying reproducible. The full identifiers live in the value for verification. */
|
|
119
|
+
export declare function entitlementKey(consumerGaii: string, ext: string, action: string): string;
|
|
120
|
+
/** Look up the live entitlement authorising this exact call, or null. */
|
|
121
|
+
export declare function readEntitlementForCall(storage: Storage, consumerGaii: string, ext: string, action: string): Promise<MeteredEntitlement | null>;
|
|
122
|
+
/** Every entitlement a consumer holds (for the app cost/contract surface, G3). Filtered prefix scan. */
|
|
123
|
+
export declare function listEntitlementsByConsumer(storage: Storage, consumerGaii: string): Promise<MeteredEntitlement[]>;
|
|
124
|
+
/** Every entitlement a provider sells (for the provider/earnings view). Filtered prefix scan. */
|
|
125
|
+
export declare function listEntitlementsByProvider(storage: Storage, providerGhii: string): Promise<MeteredEntitlement[]>;
|
|
126
|
+
/** Every entitlement a consuming app holds (the per-app cost/contract surface, G3). Filtered prefix scan. */
|
|
127
|
+
export declare function listEntitlementsByApp(storage: Storage, appId: string): Promise<MeteredEntitlement[]>;
|
|
128
|
+
/** Mint (or overwrite) an entitlement — called by the contract-acceptance flow after both sides agree.
|
|
129
|
+
* One `(consumer, ext, action)` triple has one entitlement; re-minting replaces it (e.g. renegotiated price),
|
|
130
|
+
* carrying spend forward only when explicitly asked. */
|
|
131
|
+
export declare function createEntitlement(storage: Storage, input: {
|
|
132
|
+
consumerGaii: string;
|
|
133
|
+
appId?: string | null;
|
|
134
|
+
providerGhii: string;
|
|
135
|
+
ext: string;
|
|
136
|
+
action: string;
|
|
137
|
+
capabilityLabel?: string;
|
|
138
|
+
unit: EntitlementUnit;
|
|
139
|
+
pricePerCall: number;
|
|
140
|
+
currency?: string | null;
|
|
141
|
+
pricing?: PricingSpec | null;
|
|
142
|
+
capUnits?: number | null;
|
|
143
|
+
rakePercent?: number | null;
|
|
144
|
+
contractRef: string;
|
|
145
|
+
surface?: SellableSurface | null;
|
|
146
|
+
tollMorsels?: number | null;
|
|
147
|
+
escrowParty?: 'consumer' | 'provider' | null;
|
|
148
|
+
createdBy: string;
|
|
149
|
+
carrySpend?: MeteredEntitlement | null;
|
|
150
|
+
}): Promise<MeteredEntitlement>;
|
|
151
|
+
/**
|
|
152
|
+
* Authorize a single metered call and record its spend against the budget.
|
|
153
|
+
*
|
|
154
|
+
* Returns `{ ok: true, entitlement }` when the entitlement is `active` and the (money) price fits under the
|
|
155
|
+
* remaining cap; the caller (the G2 gateway) then executes and settles. The budget counter is incremented
|
|
156
|
+
* here so an exhausted entitlement flips to `exhausted` and stops authorising.
|
|
157
|
+
*
|
|
158
|
+
* CONCURRENCY: this is a read-modify-write on a memory record — under heavy simultaneous calls on the SAME
|
|
159
|
+
* entitlement the cap can be marginally overshot. The cap is an *authorization ceiling*, not a fund gate:
|
|
160
|
+
* every actual payment still moves through the atomic debit/credit settle path per call, so no funds are
|
|
161
|
+
* lost — only the ceiling can be exceeded by a few in-flight calls. A dedicated atomic counter (or table)
|
|
162
|
+
* is deferred to G5. The per-call price is read from the entitlement itself (`pricePerCall`, in its `unit`).
|
|
163
|
+
*/
|
|
164
|
+
export declare function authorizeAndCharge(storage: Storage, consumerGaii: string, ext: string, action: string): Promise<{
|
|
165
|
+
ok: true;
|
|
166
|
+
entitlement: MeteredEntitlement;
|
|
167
|
+
} | {
|
|
168
|
+
ok: false;
|
|
169
|
+
reason: string;
|
|
170
|
+
}>;
|
|
171
|
+
/**
|
|
172
|
+
* Compute what THIS call costs + the advanced pricing state, per the entitlement's pricing model. Pure —
|
|
173
|
+
* no mutation, no I/O (`nowMs` is passed in so it stays testable). The gate uses the result to check the
|
|
174
|
+
* budget, settle `chargeUnits`, and then {@link commitSpend} the advanced `pricing`. `allowed:false` means
|
|
175
|
+
* the call is refused without charge (a subscription rate-limit window is full).
|
|
176
|
+
*/
|
|
177
|
+
export declare function computeCharge(ent: MeteredEntitlement, nowMs: number): ChargeDecision;
|
|
178
|
+
/** Peek: would a charge of `chargeUnits` fit under the cap right now? (No mutation — the G2 gate checks this
|
|
179
|
+
* BEFORE moving money, then calls {@link commitSpend} only after settlement succeeds, so a failed debit
|
|
180
|
+
* never leaves a phantom spend.) */
|
|
181
|
+
export declare function budgetAllows(ent: MeteredEntitlement, chargeUnits: number): boolean;
|
|
182
|
+
/** Commit one call AFTER settlement succeeded: add `chargeUnits` to spend, bump calls, advance the pricing
|
|
183
|
+
* state, flip to `exhausted` at the cap. (Read-modify-write — see the concurrency note on {@link authorizeAndCharge}.) */
|
|
184
|
+
export declare function commitSpend(storage: Storage, ent: MeteredEntitlement, chargeUnits: number, pricing?: PricingSpec): Promise<MeteredEntitlement>;
|
|
185
|
+
/** Roll back one call's spend by `chargeUnits` (the gate calls this when the sandbox script throws AFTER
|
|
186
|
+
* settlement, in lockstep with the money refund). Floors at 0 and un-exhausts if this frees headroom. Does
|
|
187
|
+
* NOT rewind the pricing quota/window (a thrown call still consumed its slot — conservative). No-op if gone. */
|
|
188
|
+
export declare function refundSpend(storage: Storage, consumerGaii: string, ext: string, action: string, chargeUnits: number): Promise<void>;
|
|
189
|
+
/** Pause (owner off-switch) — stops authorising without losing the record/spend history. */
|
|
190
|
+
export declare function pauseEntitlement(storage: Storage, consumerGaii: string, ext: string, action: string): Promise<boolean>;
|
|
191
|
+
/** Revoke — terminal; the entitlement no longer authorises and must be re-minted to resume. */
|
|
192
|
+
export declare function revokeEntitlement(storage: Storage, consumerGaii: string, ext: string, action: string): Promise<boolean>;
|
|
193
|
+
/** An archived (past) contract — a superseded entitlement snapshot kept for the history view. */
|
|
194
|
+
export interface EntitlementHistoryEntry extends MeteredEntitlement {
|
|
195
|
+
archivedId: string;
|
|
196
|
+
archivedAt: string;
|
|
197
|
+
archiveReason: 'superseded' | 'revoked';
|
|
198
|
+
supersededByProposal: string | null;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Archive a copy of an entitlement to history (append-only) before the live record is overwritten by a
|
|
202
|
+
* renegotiation (supersede) — so the old terms + final spend/period survive for the "past contracts" view.
|
|
203
|
+
* Does NOT touch the live record. The `from → to` period is `createdAt → archivedAt`.
|
|
204
|
+
*/
|
|
205
|
+
export declare function archiveEntitlement(storage: Storage, ent: MeteredEntitlement, reason: 'superseded' | 'revoked', proposalId?: string | null): Promise<void>;
|
|
206
|
+
/** Past (archived) contracts a consumer held — newest first. */
|
|
207
|
+
export declare function listEntitlementHistoryByConsumer(storage: Storage, consumerGaii: string): Promise<EntitlementHistoryEntry[]>;
|
|
208
|
+
/** Past (archived) contracts a provider sold — newest first. */
|
|
209
|
+
export declare function listEntitlementHistoryByProvider(storage: Storage, providerGhii: string): Promise<EntitlementHistoryEntry[]>;
|
|
210
|
+
//# sourceMappingURL=metered-entitlements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metered-entitlements.d.ts","sourceRoot":"","sources":["../../../src/services/metered-entitlements.ts"],"names":[],"mappings":"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"}
|