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
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
@usage Loaded first in spa.html <head>; the theme is toggled by /js/theme.js
|
|
11
11
|
which flips the data-theme attribute on <html>.
|
|
12
12
|
@version-history
|
|
13
|
+
v1.24.0 — 2026-07-21 — App-shell scroll model: html/body no longer scroll (height:100%;
|
|
14
|
+
overflow:hidden); #app is a full-viewport (100dvh) flex column with the topnav as a fixed-height
|
|
15
|
+
row and .page-content as the sole overflow-y:auto scroll region. Removes the ~nav-height phantom
|
|
16
|
+
overscroll and stops view content sliding under the (formerly sticky, now in-frame) header. Coupled
|
|
17
|
+
offset fixes: .pf-sidebar/.adm-sidebar stick to top:0 of the region and cap at 100dvh−nav-height.
|
|
18
|
+
v1.23.1 — 2026-07-20 — Mobile: pin .notif-dropdown to fixed viewport insets under 560px (the
|
|
19
|
+
320px, right:0-anchored panel ran off the LEFT edge — the bell sits mid-right of the bar — and
|
|
20
|
+
got clipped by body{overflow-x:hidden}); long notif titles/bodies wrap (overflow-wrap:anywhere).
|
|
13
21
|
v1.23.0 — 2026-07-18 — Notification bell inline actions: split .notif-item into a clickable
|
|
14
22
|
.notif-item-main + an actions row; add .notif-actions/.notif-action-btn/.notif-reply*/.notif-result.
|
|
15
23
|
v1.22.0 — 2026-07-17 — UI-unification foundation: extend the spacing scale (--sp-5=20/--sp-6=24/
|
|
@@ -307,15 +315,22 @@
|
|
|
307
315
|
}
|
|
308
316
|
|
|
309
317
|
/* ── Base ── */
|
|
310
|
-
html { scroll-behavior: smooth; }
|
|
318
|
+
html { scroll-behavior: smooth; height: 100%; }
|
|
311
319
|
|
|
312
320
|
body {
|
|
313
321
|
font-family: var(--font);
|
|
314
322
|
background: var(--bg);
|
|
315
323
|
color: var(--text);
|
|
316
324
|
line-height: 1.6;
|
|
317
|
-
|
|
318
|
-
|
|
325
|
+
height: 100%;
|
|
326
|
+
margin: 0; /* zero the UA default 8px — with the fixed app-shell frame it would push #app past the viewport */
|
|
327
|
+
/* App-shell: the page (html/body) never scrolls. The topnav is a fixed-height
|
|
328
|
+
flex row and .page-content owns the ONLY scroll region (see #app +
|
|
329
|
+
.page-content). This is what stops view content sliding under the header and
|
|
330
|
+
removes the ~nav-height phantom overscroll that body-scroll + an in-flow
|
|
331
|
+
(sticky) header produced — the content fills the space below the header and
|
|
332
|
+
scrolls within it. overflow:hidden also subsumes the old overflow-x clip. */
|
|
333
|
+
overflow: hidden;
|
|
319
334
|
-webkit-font-smoothing: antialiased;
|
|
320
335
|
}
|
|
321
336
|
|
|
@@ -402,14 +417,28 @@ a { color: inherit; text-decoration: none; }
|
|
|
402
417
|
#app {
|
|
403
418
|
position: relative;
|
|
404
419
|
z-index: 1;
|
|
420
|
+
/* App-shell frame: a full-viewport flex column — topnav (fixed height) on top,
|
|
421
|
+
.page-content (the scroll region) filling the rest. dvh keeps the frame flush
|
|
422
|
+
with the visual viewport as mobile browser chrome shows/hides. */
|
|
423
|
+
height: 100vh;
|
|
424
|
+
height: 100dvh;
|
|
425
|
+
display: flex;
|
|
426
|
+
flex-direction: column;
|
|
405
427
|
}
|
|
406
428
|
|
|
407
429
|
/* ── Top Navigation ── */
|
|
408
430
|
.topnav {
|
|
409
|
-
|
|
410
|
-
|
|
431
|
+
/* App-shell: a fixed-height flex row inside #app (no longer sticky — #app
|
|
432
|
+
itself doesn't scroll, so the header stays put for free). z-index keeps the
|
|
433
|
+
header's own dropdowns (notifications, mobile menu) above .page-content. */
|
|
434
|
+
position: relative;
|
|
411
435
|
z-index: 100;
|
|
436
|
+
flex: 0 0 auto;
|
|
412
437
|
height: var(--nav-height);
|
|
438
|
+
/* border-box so the 1px border-bottom is INCLUDED in --nav-height — otherwise the
|
|
439
|
+
header renders 1px taller than the token and every `100dvh - var(--nav-height)`
|
|
440
|
+
scroll region (sidebars) is 1px too tall and can't stay pinned. */
|
|
441
|
+
box-sizing: border-box;
|
|
413
442
|
display: flex;
|
|
414
443
|
align-items: center;
|
|
415
444
|
justify-content: space-between;
|
|
@@ -481,7 +510,10 @@ a { color: inherit; text-decoration: none; }
|
|
|
481
510
|
.notif-bell-btn:hover { background: var(--bg-dim); }
|
|
482
511
|
.notif-badge { position: absolute; top: -1px; right: -1px; background: var(--accent); color: #fff; border-radius: 10px; font-size: 0.6rem; font-weight: 700; min-width: 15px; height: 15px; padding: 0 3px; display: flex; align-items: center; justify-content: center; }
|
|
483
512
|
.notif-dropdown { position: absolute; right: 0; top: calc(100% + 6px); width: 320px; max-height: 60vh; overflow-y: auto; background: var(--card); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,0.18); z-index: 1200; }
|
|
484
|
-
.notif-dropdown-head { font-weight: 700; font-size: 0.9rem; color: var(--text); padding: 0.6rem 0.85rem; border-bottom: 1px solid var(--border-subtle); position: sticky; top: 0; background: var(--card); }
|
|
513
|
+
.notif-dropdown-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; font-weight: 700; font-size: 0.9rem; color: var(--text); padding: 0.6rem 0.85rem; border-bottom: 1px solid var(--border-subtle); position: sticky; top: 0; background: var(--card); z-index: 1; }
|
|
514
|
+
.notif-clear-all { font-weight: 600; font-size: 0.78rem; color: var(--muted); background: none; border: none; padding: 0.15rem 0.35rem; border-radius: 6px; cursor: pointer; }
|
|
515
|
+
.notif-clear-all:hover:not(:disabled) { color: var(--brand); background: var(--bg-dim); }
|
|
516
|
+
.notif-clear-all:disabled { opacity: 0.6; cursor: default; }
|
|
485
517
|
.notif-empty { padding: 1rem 0.85rem; color: var(--muted); font-size: 0.85rem; }
|
|
486
518
|
.notif-item { display: block; border-bottom: 1px solid var(--border-subtle); }
|
|
487
519
|
.notif-item.unread { background: var(--accent-subtle); }
|
|
@@ -499,6 +531,21 @@ a { color: inherit; text-decoration: none; }
|
|
|
499
531
|
.notif-result { font-size: 0.76rem; padding: 0.3rem 0.85rem 0.55rem; }
|
|
500
532
|
.notif-result.ok { color: var(--success, #4caf50); }
|
|
501
533
|
.notif-result.err { color: var(--danger, #e0564a); }
|
|
534
|
+
/* Long sender GHIIs / subjects wrap instead of forcing the panel wider than the screen. */
|
|
535
|
+
.notif-item-title, .notif-item-body { overflow-wrap: anywhere; }
|
|
536
|
+
/* Mobile: the 320px-wide, right:0-anchored dropdown runs off the LEFT edge (the bell sits
|
|
537
|
+
mid-right of the bar) and gets clipped by body{overflow-x:hidden}. Pin it to fixed viewport
|
|
538
|
+
insets so it spans the screen width minus small margins, regardless of the bell's position. */
|
|
539
|
+
@media (max-width: 560px) {
|
|
540
|
+
.notif-dropdown {
|
|
541
|
+
position: fixed;
|
|
542
|
+
top: calc(var(--nav-height, 56px) + 4px);
|
|
543
|
+
right: 8px;
|
|
544
|
+
left: 8px;
|
|
545
|
+
width: auto;
|
|
546
|
+
max-height: 72vh;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
502
549
|
|
|
503
550
|
.topnav-right a {
|
|
504
551
|
font-size: 0.84rem;
|
|
@@ -1277,7 +1324,10 @@ select.input-field { cursor: pointer; }
|
|
|
1277
1324
|
}
|
|
1278
1325
|
|
|
1279
1326
|
/* ── Page entrance ── */
|
|
1280
|
-
|
|
1327
|
+
/* App-shell scroll region: fills the space under the topnav and owns the only
|
|
1328
|
+
scroll. min-height:0 lets the flex child shrink so overflow-y actually scrolls;
|
|
1329
|
+
overflow-x:hidden replaces the clip that used to live on body. */
|
|
1330
|
+
.page-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; animation: pageIn 0.8s ease; }
|
|
1281
1331
|
|
|
1282
1332
|
/* ── Responsive ── */
|
|
1283
1333
|
@media (max-width: 480px) {
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* its distinct indigo accent and a permanently-dark sidebar, but all content
|
|
5
5
|
* surfaces map to global theme.css tokens so they flip with dark/light mode.
|
|
6
6
|
* @version-history
|
|
7
|
+
* v1.10.0 — 2026-07-21 — App-shell scroll model (theme.css v1.24.0): .adm-sidebar height 100vh →
|
|
8
|
+
* calc(100dvh − nav-height) so the sticky sidebar fills the .page-content scroll region instead of
|
|
9
|
+
* overflowing the frame by the header's height.
|
|
7
10
|
* v1.9.0 — 2026-07-16 — Drop the dead .adm-nav-item .icon rule (nav is label-only now).
|
|
8
11
|
* v1.8.0 — 2026-06-25 — Applications tab: .adm-apps-rowactions (Hide/Restore + Delete row).
|
|
9
12
|
* v1.7.0 — 2026-06-24 — Applications moderation tab: .adm-apps-* (filters row,
|
|
@@ -53,9 +56,13 @@
|
|
|
53
56
|
border-right: none;
|
|
54
57
|
padding: 16px 0;
|
|
55
58
|
flex-shrink: 0;
|
|
59
|
+
/* App-shell: sticks to the top of the .page-content scroll region; height caps
|
|
60
|
+
at that region (viewport minus the fixed header) so the sidebar's own nav
|
|
61
|
+
scrolls instead of overflowing past the frame by the header's height. */
|
|
56
62
|
position: sticky;
|
|
57
63
|
top: 0;
|
|
58
|
-
height:
|
|
64
|
+
height: calc(100dvh - var(--nav-height, 56px));
|
|
65
|
+
box-sizing: border-box; /* fold the 16px vertical padding into the height so it fits the scroll region */
|
|
59
66
|
overflow-y: auto;
|
|
60
67
|
display: flex;
|
|
61
68
|
flex-direction: column;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* screen where an owner reviews a published app's requested scopes (H-2 Phase 3).
|
|
5
5
|
* @version-history
|
|
6
6
|
* v1.0.0 — 2026-06-20 — Initial (H-2 app-origin isolation, Phase 3).
|
|
7
|
+
* v1.1.0 — 2026-07-19 — Own-app badge variant + "new" chip for newly requested scopes.
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
.agr-wrap { max-width: 540px; margin: 3rem auto; padding: 0 1.25rem; }
|
|
@@ -64,6 +65,23 @@
|
|
|
64
65
|
padding: 0.18rem 0.6rem;
|
|
65
66
|
margin-bottom: 0.6rem;
|
|
66
67
|
}
|
|
68
|
+
/* The signed-in owner's OWN app — reassuring, not warning */
|
|
69
|
+
.agr-badge-own { color: var(--success, #3dbf6e); }
|
|
70
|
+
|
|
71
|
+
/* Chip on a scope the app requests but the existing grant doesn't hold yet */
|
|
72
|
+
.agr-scope-newbadge {
|
|
73
|
+
display: inline-block;
|
|
74
|
+
font-size: 0.68rem;
|
|
75
|
+
font-weight: 700;
|
|
76
|
+
letter-spacing: 0.04em;
|
|
77
|
+
text-transform: uppercase;
|
|
78
|
+
color: var(--accent);
|
|
79
|
+
border: 1px solid var(--accent);
|
|
80
|
+
border-radius: 999px;
|
|
81
|
+
padding: 0 0.4rem;
|
|
82
|
+
margin-left: 0.45rem;
|
|
83
|
+
vertical-align: 0.08em;
|
|
84
|
+
}
|
|
67
85
|
|
|
68
86
|
/* Advanced toggle (link-style button) */
|
|
69
87
|
.agr-advanced-toggle {
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* ticks, and a sticky composer. All colors/spacing use theme.css variables (dark-mode safe).
|
|
6
6
|
* Classes are `inbox-` prefixed. NOTE: this file must be linked in spa.html (useViewCSS is a no-op).
|
|
7
7
|
* @version-history
|
|
8
|
+
* v1.7.0 -- 2026-07-21 -- Link-preview (unfurl) cards under a pasted link (.inbox-linkcard*) + the
|
|
9
|
+
* thread-head show/hide toggle (.inbox-linkprev-toggle).
|
|
8
10
|
* v1.6.0 -- 2026-07-18 -- TRUE full-screen mobile chat: ≤760px open panel becomes `position:fixed;inset:0`
|
|
9
11
|
* over the whole viewport (covers the app shell nav/menu/breadcrumb); body height var(--inbox-avail,
|
|
10
12
|
* 100dvh) + safe-area padding under the composer. ← Back drops `.inbox--panel` → shell returns. Pairs
|
|
@@ -485,7 +487,14 @@
|
|
|
485
487
|
font-size: 14px;
|
|
486
488
|
}
|
|
487
489
|
|
|
490
|
+
/* Expanded composer (the ⤢ toggle): grow the fallback/simple textarea + preview to ~60vh so a long or
|
|
491
|
+
formatted draft is fully visible. The rich Toast UI editor is resized in JS via setHeight instead. */
|
|
492
|
+
.inbox-composer--tall .inbox-textarea { min-height: 60vh; }
|
|
493
|
+
.inbox-composer--tall .inbox-textarea--chat { max-height: 60vh; }
|
|
494
|
+
.inbox-composer--tall .inbox-md-preview { max-height: 60vh; }
|
|
495
|
+
|
|
488
496
|
.inbox-composer-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
497
|
+
.inbox-bar-left { display: flex; align-items: center; gap: 8px; }
|
|
489
498
|
.inbox-attach-btn {
|
|
490
499
|
display: inline-flex;
|
|
491
500
|
align-items: center;
|
|
@@ -519,7 +528,7 @@
|
|
|
519
528
|
box-shadow: var(--shadow-md);
|
|
520
529
|
}
|
|
521
530
|
.inbox-row:hover .inbox-bubble-actions { opacity: 1; pointer-events: auto; }
|
|
522
|
-
/* Touch devices have no hover — the per-message actions (↩ reply, ⭐, 🔗, 📓, ✨) would be unreachable.
|
|
531
|
+
/* Touch devices have no hover — the per-message actions (↩ reply, ⧉ copy, ⭐, 🔗, 📓, ✨) would be unreachable.
|
|
523
532
|
Reveal them permanently there so a phone user can actually reply to / act on a message by tapping. */
|
|
524
533
|
@media (hover: none) {
|
|
525
534
|
.inbox-bubble-actions { opacity: 1; pointer-events: auto; }
|
|
@@ -743,3 +752,40 @@
|
|
|
743
752
|
.inbox-sched-new { display: flex; flex-direction: column; gap: 6px; }
|
|
744
753
|
.inbox-sched-new .btn-primary { align-self: flex-start; }
|
|
745
754
|
.inbox-sched-desc { min-height: 38px; resize: vertical; }
|
|
755
|
+
|
|
756
|
+
/* ── Link previews (unfurl cards) — a rich card under a pasted link in a message bubble. The card is a
|
|
757
|
+
* clickable row (thumbnail · site · title · description) plus a ✕ to hide it. Theme tokens only. ── */
|
|
758
|
+
.inbox-linkcards { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
|
|
759
|
+
.inbox-linkcard {
|
|
760
|
+
position: relative; display: flex; align-items: stretch;
|
|
761
|
+
border: 1px solid var(--border-subtle); border-radius: var(--radius-sm);
|
|
762
|
+
background: var(--card-bg-alt); overflow: hidden;
|
|
763
|
+
}
|
|
764
|
+
.inbox-linkcard-main {
|
|
765
|
+
display: flex; align-items: stretch; gap: 10px; min-width: 0; flex: 1;
|
|
766
|
+
padding: 8px 10px; text-decoration: none; color: inherit;
|
|
767
|
+
}
|
|
768
|
+
.inbox-linkcard-main:hover { background: var(--surface-hover); }
|
|
769
|
+
.inbox-linkcard-thumb { flex: none; width: 72px; display: flex; align-items: center; justify-content: center; }
|
|
770
|
+
.inbox-linkcard-thumb img {
|
|
771
|
+
width: 72px; height: 72px; object-fit: cover; border-radius: var(--radius-xs); display: block; margin: 0;
|
|
772
|
+
}
|
|
773
|
+
.inbox-linkcard-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; justify-content: center; }
|
|
774
|
+
.inbox-linkcard-site { font-size: 11px; color: var(--text-dim); text-transform: uppercase; letter-spacing: .02em; }
|
|
775
|
+
.inbox-linkcard-title {
|
|
776
|
+
font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.3;
|
|
777
|
+
overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
|
|
778
|
+
}
|
|
779
|
+
.inbox-linkcard-desc {
|
|
780
|
+
font-size: 12px; color: var(--text-dim); line-height: 1.35;
|
|
781
|
+
overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
|
|
782
|
+
}
|
|
783
|
+
.inbox-linkcard-x {
|
|
784
|
+
flex: none; align-self: flex-start; border: none; background: transparent; cursor: pointer;
|
|
785
|
+
color: var(--text-dim); font-size: 12px; line-height: 1; padding: 6px 8px; border-radius: var(--radius-xs);
|
|
786
|
+
}
|
|
787
|
+
.inbox-linkcard-x:hover { color: var(--text); background: var(--surface-hover); }
|
|
788
|
+
|
|
789
|
+
/* Thread-head toggle: show/hide all link previews (persisted). --on marks the active state. */
|
|
790
|
+
.inbox-linkprev-toggle { flex: none; white-space: nowrap; }
|
|
791
|
+
.inbox-linkprev-toggle--on { background: var(--accent-subtle); border-color: var(--accent-border); color: var(--accent); }
|
|
@@ -317,6 +317,52 @@
|
|
|
317
317
|
margin-bottom: 0.5rem;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
+
/* ── Promoted apps (public profile) ── */
|
|
321
|
+
.portfolio-profile-head {
|
|
322
|
+
text-align: center;
|
|
323
|
+
padding: 3rem 2rem 1rem;
|
|
324
|
+
color: var(--text-dim, #6B7280);
|
|
325
|
+
}
|
|
326
|
+
.portfolio-profile-head h2 { color: var(--text, #1A1A2E); margin-bottom: 0.5rem; }
|
|
327
|
+
.portfolio-promoted {
|
|
328
|
+
max-width: 900px;
|
|
329
|
+
margin: 0 auto;
|
|
330
|
+
padding: 0 1.5rem 1rem;
|
|
331
|
+
}
|
|
332
|
+
.portfolio-promoted-title {
|
|
333
|
+
font-size: 1rem;
|
|
334
|
+
color: var(--text, #1A1A2E);
|
|
335
|
+
margin: 0 0 0.75rem;
|
|
336
|
+
}
|
|
337
|
+
.portfolio-promoted-grid {
|
|
338
|
+
display: grid;
|
|
339
|
+
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
|
|
340
|
+
gap: 0.75rem;
|
|
341
|
+
}
|
|
342
|
+
.portfolio-promoted-card {
|
|
343
|
+
display: block;
|
|
344
|
+
text-decoration: none;
|
|
345
|
+
border: 1px solid var(--border, #E5E7EB);
|
|
346
|
+
border-radius: 12px;
|
|
347
|
+
padding: 0.85rem 1rem;
|
|
348
|
+
background: var(--card, #fff);
|
|
349
|
+
transition: border-color 0.15s, transform 0.15s;
|
|
350
|
+
}
|
|
351
|
+
.portfolio-promoted-card:hover {
|
|
352
|
+
border-color: var(--accent, #E8564A);
|
|
353
|
+
transform: translateY(-1px);
|
|
354
|
+
}
|
|
355
|
+
.portfolio-promoted-name {
|
|
356
|
+
font-weight: 700;
|
|
357
|
+
color: var(--text, #1A1A2E);
|
|
358
|
+
margin-bottom: 0.3rem;
|
|
359
|
+
}
|
|
360
|
+
.portfolio-promoted-pitch {
|
|
361
|
+
font-size: 0.85rem;
|
|
362
|
+
color: var(--text-dim, #6B7280);
|
|
363
|
+
line-height: 1.4;
|
|
364
|
+
}
|
|
365
|
+
|
|
320
366
|
/* ── Upload Section ── */
|
|
321
367
|
.portfolio-upload-zone {
|
|
322
368
|
border: 2px dashed var(--border, #E5E7EB);
|
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
* wallet, memory, agents, extensions, packages, knowledge, generator, and
|
|
5
5
|
* edit panels. Consumes theme.css tokens so it flips with dark/light mode.
|
|
6
6
|
* @version-history
|
|
7
|
+
* v2.17.0 — 2026-07-25 — .ag-scope-toggle: the Connected Apps scope count is now the disclosure
|
|
8
|
+
* button for its badge list (button reset so it still renders as a plain .badge).
|
|
9
|
+
* v2.16.2 — 2026-07-21 — App-shell scroll model (theme.css v1.24.0): .pf-sidebar sticks to top:0 of
|
|
10
|
+
* the new .page-content scroll region (was top:var(--nav-height) against the window) and caps at
|
|
11
|
+
* calc(100dvh − nav-height) so its nav list scrolls without a header-height gap.
|
|
12
|
+
* v2.16.1 — 2026-07-20 — Mobile home-dashboard overflow fix: .pf-home-card (and the spend/quota
|
|
13
|
+
* tiles, chips, and long app-name row) get min-width:0 so unbreakable inner content no longer
|
|
14
|
+
* forces a card — and the whole home grid — wider than a narrow phone (content ran off the right
|
|
15
|
+
* edge, clipped by body{overflow-x:hidden}). .pf-usage-head wraps a very long quota value.
|
|
7
16
|
* v2.16.0 — 2026-07-19 — AppDev tab (pf-adk-*): prompt cards, learned-pitfall rows,
|
|
8
17
|
* chips (model/shared/tier/proof), severity badges (AppDev KB UI phase).
|
|
9
18
|
* v2.15.0 — 2026-07-16 — Drop the dead .pf-side-ico rule (sidebar nav is label-only now).
|
|
@@ -219,6 +228,9 @@
|
|
|
219
228
|
.pf .wallet-psp{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}
|
|
220
229
|
.pf .wallet-psp-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
|
|
221
230
|
.pf .wallet-psp-input{flex:1;min-width:240px}
|
|
231
|
+
/* Payout rails: the chips that say WHICH rail a sale settles on (fiat via provider vs USDC on-chain). */
|
|
232
|
+
.pf .wallet-rail-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
|
|
233
|
+
.pf .wallet-rail-row code{font-size:.8em;word-break:break-all}
|
|
222
234
|
.pf .pf-psp-chip{display:inline-block;padding:.1rem .55rem;border-radius:var(--radius-full,999px);border:1px solid var(--border);font-size:.72rem;width:fit-content}
|
|
223
235
|
.pf .pf-psp-chip--ok{color:var(--success,#22c55e);border-color:var(--success,#22c55e)}
|
|
224
236
|
.pf .pf-psp-chip--warn{color:var(--warning,#f59e0b);border-color:var(--warning,#f59e0b)}
|
|
@@ -1608,6 +1620,10 @@
|
|
|
1608
1620
|
|
|
1609
1621
|
/* ── Access tab ── */
|
|
1610
1622
|
.pf .access-mono { font-family: monospace; font-size: .75rem; word-break: break-all; color: var(--muted); }
|
|
1623
|
+
/* Scope count doubles as the disclosure control for the badge list it summarises: button reset so a
|
|
1624
|
+
<button> carrying .badge looks exactly like the static badges elsewhere in the card. */
|
|
1625
|
+
.pf .ag-scope-toggle { border: 0; font-family: inherit; font-size: .66rem; font-weight: 600; cursor: pointer; }
|
|
1626
|
+
.pf .ag-scope-toggle:hover { filter: brightness(1.1); }
|
|
1611
1627
|
.pf .access-key-blur { filter: blur(4px); transition: filter .2s; }
|
|
1612
1628
|
.pf .access-key-blur.revealed { filter: none; }
|
|
1613
1629
|
.pf .access-card-warn { border-color: var(--warn); cursor: pointer; }
|
|
@@ -2239,8 +2255,15 @@
|
|
|
2239
2255
|
|
|
2240
2256
|
.pf-sidebar {
|
|
2241
2257
|
width: 240px; flex: 0 0 240px;
|
|
2242
|
-
|
|
2243
|
-
|
|
2258
|
+
/* App-shell: the scroll region is now .page-content (the header lives OUTSIDE
|
|
2259
|
+
it), so the sidebar sticks to the top of that region (top:0), not below the
|
|
2260
|
+
header. Height caps at the region's height so its own nav list scrolls.
|
|
2261
|
+
border-box folds the vertical padding INTO max-height — without it the padding
|
|
2262
|
+
stacks on top, making the sidebar taller than the scroll region so sticky can't
|
|
2263
|
+
hold it (it drifts up and the identity slides under the header when you scroll). */
|
|
2264
|
+
position: sticky; top: 0;
|
|
2265
|
+
box-sizing: border-box;
|
|
2266
|
+
max-height: calc(100dvh - var(--nav-height, 56px));
|
|
2244
2267
|
overflow-y: auto;
|
|
2245
2268
|
padding: 0.75rem 0.5rem 2rem;
|
|
2246
2269
|
border-right: 1px solid var(--border);
|
|
@@ -2977,7 +3000,11 @@
|
|
|
2977
3000
|
.pf-waiting-where { color: var(--muted); }
|
|
2978
3001
|
.pf-home-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0; }
|
|
2979
3002
|
@media (max-width: 760px) { .pf-home-grid { grid-template-columns: 1fr; } }
|
|
2980
|
-
|
|
3003
|
+
/* min-width:0 is load-bearing: grid/flex items default to min-width:auto and refuse to shrink
|
|
3004
|
+
below their content's intrinsic width. Without it, a card with unbreakable inner content (long
|
|
3005
|
+
app names, the 3-col number grid, the chart canvas) forces its grid column — and thus the whole
|
|
3006
|
+
home dashboard — wider than a narrow phone, overflowing the right edge. */
|
|
3007
|
+
.pf-home-card { border: 1px solid var(--border); border-radius: 12px; background: var(--card); padding: 0.8rem 1rem; min-width: 0; }
|
|
2981
3008
|
.pf-home-card-title { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 0.5rem; background: none; border: none; padding: 0; text-align: left; }
|
|
2982
3009
|
.pf-home-card-link { cursor: pointer; }
|
|
2983
3010
|
.pf-home-card-link:hover { color: var(--text); }
|
|
@@ -3017,7 +3044,14 @@
|
|
|
3017
3044
|
.pf-ai-apps-head { font-size: 0.75rem; font-weight: 600; color: var(--muted); margin-bottom: 0.35rem; }
|
|
3018
3045
|
.pf-ai-app-row { display: flex; align-items: center; gap: 0.5rem; padding: 0.2rem 0; font-size: 0.82rem; }
|
|
3019
3046
|
.pf-ai-app-dot { width: 10px; height: 10px; border-radius: 3px; flex: none; }
|
|
3020
|
-
|
|
3047
|
+
/* min-width:0 lets the flex:1 item actually shrink so the ellipsis engages on a long app name
|
|
3048
|
+
(a bare flex:1 keeps min-width:auto and would overflow the card on a narrow screen instead). */
|
|
3049
|
+
.pf-ai-app-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
|
|
3050
|
+
/* Let the spend tiles / quota chips shrink to their column on a narrow screen (tabular numbers
|
|
3051
|
+
otherwise hold an intrinsic min-width and push the card past the viewport). */
|
|
3052
|
+
.pf-ai-win, .pf-usage-chip { min-width: 0; }
|
|
3053
|
+
/* A very long quota value wraps under its label instead of forcing the row wider than the screen. */
|
|
3054
|
+
.pf-usage-head { flex-wrap: wrap; }
|
|
3021
3055
|
.pf-ai-app-cost { color: var(--text); font-variant-numeric: tabular-nums; }
|
|
3022
3056
|
.pf-ai-app-pct { width: 3ch; text-align: right; color: var(--muted); font-variant-numeric: tabular-nums; }
|
|
3023
3057
|
.pf-ai-app-meta { color: var(--muted); font-size: 0.72rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
* crew-defs an app declares (manifest.cortex.agents) onto YOUR OWN fleet + read liveness
|
|
13
13
|
*
|
|
14
14
|
* @version-history
|
|
15
|
+
* v1.2.0 — 2026-07-21 — listApps() paginates through ALL apps (was capped at the server
|
|
16
|
+
* default of 50, silently truncating the Apps tab / gallery).
|
|
15
17
|
* v1.1.0 — 2026-07-16 — Agent-Bundled Apps Slice 1: deploy/undeploy/status service calls
|
|
16
18
|
* v1.0.0 — 2026-07-13 — Header added; file pre-dates header standard
|
|
17
19
|
*/
|
|
@@ -19,10 +21,24 @@ import { apiGet, apiDelete, apiPatch, api } from '/js/api.js';
|
|
|
19
21
|
|
|
20
22
|
/** List apps. Returns array. The server decides visibility from who is
|
|
21
23
|
* authenticated: the owner sees their own parked/operator-hidden apps (the latter
|
|
22
|
-
* flagged operator_hidden so the UI can badge them); everyone else does not.
|
|
24
|
+
* flagged operator_hidden so the UI can badge them); everyone else does not.
|
|
25
|
+
*
|
|
26
|
+
* Paginates through EVERY app: a single /v1/apps request caps at the server default
|
|
27
|
+
* (50), so this loops by offset (200/page) until it has the server-reported `total`.
|
|
28
|
+
* Otherwise the Apps tab / gallery silently stopped at 50. A guard bounds the loop. */
|
|
23
29
|
export async function listApps() {
|
|
24
|
-
const
|
|
25
|
-
|
|
30
|
+
const LIMIT = 200;
|
|
31
|
+
let all = [];
|
|
32
|
+
let offset = 0;
|
|
33
|
+
for (let page = 0; page < 100; page++) { // guard: ≤ 100 pages (20k apps)
|
|
34
|
+
const data = await apiGet(`/v1/apps?limit=${LIMIT}&offset=${offset}`);
|
|
35
|
+
const apps = data?.data?.apps || [];
|
|
36
|
+
all = all.concat(apps);
|
|
37
|
+
const total = typeof data?.data?.total === 'number' ? data.data.total : all.length;
|
|
38
|
+
if (apps.length < LIMIT || all.length >= total) break;
|
|
39
|
+
offset += LIMIT;
|
|
40
|
+
}
|
|
41
|
+
return all;
|
|
26
42
|
}
|
|
27
43
|
|
|
28
44
|
/** Upload an app (HTML file + optional screenshot). */
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
* - handleOf(id) / peerLabel(id) — short label helpers (mirrors inbox-tab peerName)
|
|
20
20
|
* - buildConversationReplyPrompt({ peerGhii, subject, conversationId, thread }, mode)
|
|
21
21
|
* - buildMessageReplyPrompt({ peerGhii, subject, conversationId, message }, mode)
|
|
22
|
+
* - buildConversationSummaryPrompt({ peerGhii, subject, thread, peerName }) — distill a whole thread
|
|
23
|
+
* into a filo-ready note (summary/decisions/open-questions/actions/ideas) for the Notebook capture.
|
|
22
24
|
* @usage
|
|
23
25
|
* import { buildConversationReplyPrompt, MODES } from '/js/services/messages-ai-prompts.js';
|
|
24
26
|
* const text = buildConversationReplyPrompt({ peerGhii, subject, conversationId, thread }, MODES.COPY);
|
|
@@ -31,6 +33,9 @@
|
|
|
31
33
|
* v1.2.0 -- 2026-07-12 -- MCP mode sends AS THE OWNER via aimeat_dm_send_as_owner (consent-gated
|
|
32
34
|
* delegation, scope messages:send-as-owner), landing the reply in the owner's thread from the owner.
|
|
33
35
|
* Graceful fallback to "hand me the reply" when the scope isn't granted; still never aimeat_dm_send.
|
|
36
|
+
* v1.3.0 -- 2026-07-19 -- buildConversationSummaryPrompt: distill a whole thread into a knowledge note
|
|
37
|
+
* (summary/decisions/open-questions/actions/ideas). One prompt, two deliveries — the server-side
|
|
38
|
+
* /v1/ai/complete summary AND the copy-paste "run it in my own chat" mode of the Notebook capture.
|
|
34
39
|
*/
|
|
35
40
|
|
|
36
41
|
export const MODES = { COPY: 'copy', MCP: 'mcp' };
|
|
@@ -165,6 +170,39 @@ export function buildConversationReplyPrompt({ peerGhii, subject, conversationId
|
|
|
165
170
|
].join('\n');
|
|
166
171
|
}
|
|
167
172
|
|
|
173
|
+
/**
|
|
174
|
+
* Distill a whole conversation into a self-contained knowledge note — the prompt behind the Inbox
|
|
175
|
+
* "→ Notebook" capture. Used two ways with the SAME text: sent to /v1/ai/complete (server-side, the
|
|
176
|
+
* owner's own key) and shown for copy-paste into the owner's own AI chat. English framing (house rule);
|
|
177
|
+
* the model answers in the conversation's language.
|
|
178
|
+
* @param {ConversationSource} [src]
|
|
179
|
+
*/
|
|
180
|
+
export function buildConversationSummaryPrompt({ peerGhii, subject, thread, peerName } = {}) {
|
|
181
|
+
const them = peerLabel(peerGhii, peerName);
|
|
182
|
+
const topic = subject ? ` (topic: "${subject}")` : '';
|
|
183
|
+
const convo = transcript(thread, peerGhii, peerName || handleOf(peerGhii));
|
|
184
|
+
return [
|
|
185
|
+
'# Summarize this conversation for my knowledge base',
|
|
186
|
+
'',
|
|
187
|
+
`This is my AIMEAT conversation with **${them}**${topic}. Distill it into a clean, self-contained`,
|
|
188
|
+
'Markdown note I can file into my workspace. Write in the SAME language as the conversation.',
|
|
189
|
+
'',
|
|
190
|
+
'## Produce these sections (drop a heading only when it would be genuinely empty)',
|
|
191
|
+
'1. **Summary** — 2-4 sentences on what this conversation was about.',
|
|
192
|
+
'2. **Decisions** — concrete decisions that were made (bullet list).',
|
|
193
|
+
'3. **Open questions** — anything still unresolved or awaiting an answer.',
|
|
194
|
+
'4. **Action items** — who does what next, if stated (name the owner when known).',
|
|
195
|
+
'5. **Ideas worth keeping** — proposals, concepts, or directions raised that are worth revisiting.',
|
|
196
|
+
'',
|
|
197
|
+
'Stay faithful to what was actually said — do not invent decisions or facts. Images shown as',
|
|
198
|
+
'`` were shared but you cannot see them — reference them by name, never guess their',
|
|
199
|
+
'contents. Start the note with a single H1 title line.',
|
|
200
|
+
'',
|
|
201
|
+
'## The conversation',
|
|
202
|
+
convo,
|
|
203
|
+
].join('\n');
|
|
204
|
+
}
|
|
205
|
+
|
|
168
206
|
/**
|
|
169
207
|
* Single-message reply prompt — scoped to one message the user pointed at.
|
|
170
208
|
* @param {MessageSource} [src]
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* v1.1.0 -- 2026-06-23 -- send() carries the optional `interactive` payload (federated AskUserQuestion).
|
|
14
14
|
* v1.1.1 -- 2026-07-17 -- uploadAttachment: add a random suffix to the storage key so same-named files
|
|
15
15
|
* uploaded in the same millisecond (two clipboard "image.png" pastes) don't overwrite each other.
|
|
16
|
+
* v1.2.0 -- 2026-07-21 -- getConversation(…, all): default loads the newest 50 (server page); all=true
|
|
17
|
+
* walks every page (per_page=200) so long threads show their FULL history instead of only the last 50.
|
|
16
18
|
*/
|
|
17
19
|
import { api, apiGet } from '/js/api.js';
|
|
18
20
|
|
|
@@ -54,10 +56,30 @@ export async function listConversations() {
|
|
|
54
56
|
return r?.data?.conversations || [];
|
|
55
57
|
}
|
|
56
58
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Fetch a conversation thread. Default = the newest page (server default 50). Pass all=true to load the
|
|
61
|
+
* ENTIRE history: it walks every page (per_page=200) so long threads are never truncated — no message is
|
|
62
|
+
* hidden, only paged. Returns the messages array newest-first (the caller reverses for chat display);
|
|
63
|
+
* dedupes by id so a message arriving mid-walk can't double-render.
|
|
64
|
+
*/
|
|
65
|
+
export async function getConversation(conversationId, viaAgent, all = false) {
|
|
66
|
+
const base = `/v1/messages/conversations/${enc(conversationId)}`;
|
|
67
|
+
const agent = viaAgent ? `&agent=${enc(viaAgent)}` : '';
|
|
68
|
+
const perPage = all ? 200 : 50;
|
|
69
|
+
const first = await apiGet(`${base}?per_page=${perPage}&page=1${agent}`);
|
|
70
|
+
const data = first?.data || {};
|
|
71
|
+
let messages = data.messages || [];
|
|
72
|
+
const total = Number(data.total) || messages.length;
|
|
73
|
+
if (all && total > messages.length) {
|
|
74
|
+
const pages = Math.ceil(total / perPage);
|
|
75
|
+
for (let p = 2; p <= pages; p++) {
|
|
76
|
+
const r = await apiGet(`${base}?per_page=${perPage}&page=${p}${agent}`);
|
|
77
|
+
messages = messages.concat(r?.data?.messages || []);
|
|
78
|
+
}
|
|
79
|
+
const seen = new Set();
|
|
80
|
+
messages = messages.filter(m => m && m.id && !seen.has(m.id) && seen.add(m.id));
|
|
81
|
+
}
|
|
82
|
+
return messages;
|
|
61
83
|
}
|
|
62
84
|
|
|
63
85
|
export async function markConversationRead(conversationId) {
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
* - distributeNote(text) — POST /v1/librarian/distribute (split into placed chunks)
|
|
12
12
|
* - materializeDocument(plan) — resolve/create org → ws → document space → draft→publish doc → drop source
|
|
13
13
|
* - distributeChunks(chunks, sourceKey, onProgress) — materialize each chunk to its home
|
|
14
|
+
* - parkMessageToNotebook(msg) — park ONE inbox message for later processing
|
|
15
|
+
* - parkConversationToNotebook({conv,thread,peerName,summary,images}) — park a WHOLE thread (transcript +
|
|
16
|
+
* inline image embeds, optional AI/pasted summary) as one entry, ready for classify/distribute
|
|
14
17
|
* - getNotebookSettings/saveNotebookSettings — the per-owner trust toggles (notebook.settings)
|
|
15
18
|
* @version-history
|
|
16
19
|
* v1.0.0 — 2026-06-19 — Initial: classify + materialize-document orchestration (slice B).
|
|
@@ -21,10 +24,13 @@
|
|
|
21
24
|
* v1.3.0 — 2026-06-23 — materializeDocument now writes via writeDraft + publishDraft (was a raw
|
|
22
25
|
* `.latest` memory write) so notebook documents get version history and appear in the workspace
|
|
23
26
|
* activity log/heatmap — the document-path counterpart to the v1.2.0 record fix.
|
|
27
|
+
* v1.4.0 — 2026-07-19 — parkConversationToNotebook: capture a whole inbox thread (transcript + inline
|
|
28
|
+
* image embeds, optional summary) as one notebook entry for the "→ Notebook" conversation capture.
|
|
24
29
|
*/
|
|
25
30
|
import { api, apiPost } from '/js/api.js';
|
|
26
31
|
import { createMemory, getMemory, deleteMemory } from '/js/services/memory.js';
|
|
27
32
|
import { createOrganism, saveManifest, listWorkspaces, saveWorkspaceRegistry, wsRoot, writeDraft, publishDraft } from '/js/services/organisms.js';
|
|
33
|
+
import { handleOf } from '/js/services/messages-ai-prompts.js';
|
|
28
34
|
|
|
29
35
|
const DOC_SPACE = 'pages';
|
|
30
36
|
|
|
@@ -82,6 +88,76 @@ export async function parkMessageToNotebook(msg, opts = {}) {
|
|
|
82
88
|
return { key };
|
|
83
89
|
}
|
|
84
90
|
|
|
91
|
+
/** A short, stable UTC timestamp for a transcript line (locale-independent so the note is reproducible). */
|
|
92
|
+
function nbStamp(iso) {
|
|
93
|
+
if (!iso) return '';
|
|
94
|
+
const d = new Date(iso);
|
|
95
|
+
return Number.isFinite(d.getTime()) ? d.toISOString().replace('T', ' ').slice(0, 16) + ' UTC' : '';
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Render a whole thread as a Markdown transcript, embedding each message's image attachments inline
|
|
99
|
+
* (by url) so they survive into the materialized workspace document. `images` groups by messageId. */
|
|
100
|
+
function renderConversationMarkdown(thread, peerGhii, peerName, images) {
|
|
101
|
+
const them = peerName || handleOf(peerGhii);
|
|
102
|
+
const byMsg = {};
|
|
103
|
+
for (const im of (images || [])) (byMsg[im.messageId] || (byMsg[im.messageId] = [])).push(im);
|
|
104
|
+
return (thread || []).map((m) => {
|
|
105
|
+
const who = m.direction === 'outbound' ? 'Me' : them;
|
|
106
|
+
const when = nbStamp(m.createdAt);
|
|
107
|
+
const body = String(m.body || '').trim();
|
|
108
|
+
const imgs = (byMsg[m.id] || []).map((im) => `\n\n`).join('');
|
|
109
|
+
return `**${who}**${when ? ` — ${when}` : ''}\n\n${body}${imgs}`;
|
|
110
|
+
}).join('\n\n---\n\n');
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Pull an H1/first line out of a summary to use as the note title, or null. */
|
|
114
|
+
function summaryTitle(summary) {
|
|
115
|
+
const first = String(summary || '').split('\n').map((l) => l.trim()).find(Boolean);
|
|
116
|
+
if (!first) return null;
|
|
117
|
+
return first.replace(/^#+\s*/, '').slice(0, 120) || null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Park a WHOLE conversation into the notebook as one entry (text + inline image embeds), ready for the
|
|
122
|
+
* existing classify/distribute enrichment. The three inbox capture modes all land here:
|
|
123
|
+
* - a server-side / pasted AI summary → stored above a "Full transcript" section, or
|
|
124
|
+
* - raw (no summary) → just the transcript.
|
|
125
|
+
* @param {object} [args]
|
|
126
|
+
* @param {{ conversationId?:string, peerGhii?:string, subject?:string }} [args.conv]
|
|
127
|
+
* @param {Array} [args.thread] The loaded thread messages.
|
|
128
|
+
* @param {string} [args.peerName]
|
|
129
|
+
* @param {string} [args.summary] An AI (server or pasted) summary markdown; omit for a raw capture.
|
|
130
|
+
* @param {Array<{messageId:string,id:string,name?:string,url:string}>} [args.images] Image attachments.
|
|
131
|
+
*/
|
|
132
|
+
export async function parkConversationToNotebook({ conv, thread, peerName, summary, images } = {}) {
|
|
133
|
+
const peerGhii = conv?.peerGhii || '';
|
|
134
|
+
const transcriptMd = renderConversationMarkdown(thread, peerGhii, peerName, images);
|
|
135
|
+
const sum = (summary || '').trim();
|
|
136
|
+
const text = sum
|
|
137
|
+
? `${sum}\n\n---\n\n## Full transcript\n\n${transcriptMd}`
|
|
138
|
+
: transcriptMd;
|
|
139
|
+
const title = summaryTitle(sum) || `Conversation with ${peerName || handleOf(peerGhii)}`;
|
|
140
|
+
const key = 'notebook.inbox.' + Date.now();
|
|
141
|
+
const value = {
|
|
142
|
+
text,
|
|
143
|
+
title,
|
|
144
|
+
capturedAt: new Date().toISOString(),
|
|
145
|
+
source: {
|
|
146
|
+
kind: 'conversation',
|
|
147
|
+
conversationId: conv?.conversationId,
|
|
148
|
+
peerGhii,
|
|
149
|
+
originNodeId: (peerGhii.split('@')[1] || ''),
|
|
150
|
+
messageCount: (thread || []).length,
|
|
151
|
+
attachments: (images || []).map((im) => ({ messageId: im.messageId, id: im.id, name: im.name, url: im.url })),
|
|
152
|
+
},
|
|
153
|
+
// A summarized thread is a knowledge capture, not an unanswered message — it owes no reply.
|
|
154
|
+
trackedResponseIntent: { owes: false, mode: 'approve' },
|
|
155
|
+
};
|
|
156
|
+
const resp = await createMemory(key, value, 'private');
|
|
157
|
+
if (resp?.ok === false) throw new Error(resp.error?.message || 'Could not park conversation to notebook');
|
|
158
|
+
return { key };
|
|
159
|
+
}
|
|
160
|
+
|
|
85
161
|
/** The per-owner notebook trust toggles ({ autoDetectIntent, autoRunPlan, autoDistribute }). */
|
|
86
162
|
export async function getNotebookSettings() {
|
|
87
163
|
try { const r = await getMemory('notebook.settings'); return (r?.data?.value) || {}; }
|