aimeat 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -84
- package/dist/.env.example +47 -11
- package/dist/locales/en.json +251 -371
- package/dist/locales/fi.json +255 -375
- package/dist/public/components/ContactCard.js +30 -5
- package/dist/public/components/ContactPicker.js +3 -2
- package/dist/public/components/ImageDeliverable.js +2 -1
- package/dist/public/components/JsonView.js +1 -0
- package/dist/public/components/LinkPreview.js +1 -1
- package/dist/public/components/NotificationBell.js +6 -4
- package/dist/public/components/UsageChart.js +2 -1
- package/dist/public/css/theme.css +1516 -1432
- package/dist/public/css/views/app-grant.css +95 -36
- package/dist/public/css/views/help.css +28 -0
- package/dist/public/css/views/landing.css +20 -0
- package/dist/public/css/views/members.css +40 -10
- package/dist/public/css/views/portal-dev.css +64 -45
- package/dist/public/css/views/profile.css +8 -0
- package/dist/public/js/api.js +1 -0
- package/dist/public/js/app-sandbox.js +1 -0
- package/dist/public/js/components/auth-image.js +3 -1
- package/dist/public/js/i18n.js +3 -1
- package/dist/public/js/presence-store.js +3 -1
- package/dist/public/js/recents.js +2 -0
- package/dist/public/js/services/agent-activity.js +2 -1
- package/dist/public/js/services/agent-directives.js +2 -1
- package/dist/public/js/services/agent-integration.js +2 -1
- package/dist/public/js/services/agent-messages.js +2 -1
- package/dist/public/js/services/agent-tasks.js +2 -1
- package/dist/public/js/services/agents.js +3 -2
- package/dist/public/js/services/calibrator.js +2 -1
- package/dist/public/js/services/consent.js +2 -1
- package/dist/public/js/services/contacts.js +2 -1
- package/dist/public/js/services/cortex.js +5 -4
- package/dist/public/js/services/ecosystem.js +2 -1
- package/dist/public/js/services/knowledge.js +2 -1
- package/dist/public/js/services/ledger.js +2 -1
- package/dist/public/js/services/living.js +10 -9
- package/dist/public/js/services/memory.js +2 -1
- package/dist/public/js/services/messages.js +53 -8
- package/dist/public/js/services/nodes.js +3 -2
- package/dist/public/js/services/notebook-plan.js +2 -1
- package/dist/public/js/services/notebook.js +6 -5
- package/dist/public/js/services/offers.js +6 -5
- package/dist/public/js/services/organisms.js +26 -25
- package/dist/public/js/services/organisms.prompts.js +3 -2
- package/dist/public/js/services/organisms.shared.js +2 -1
- package/dist/public/js/services/organisms.workspace-gen.js +3 -2
- package/dist/public/js/services/packages.js +1 -0
- package/dist/public/js/services/schedules.js +2 -1
- package/dist/public/js/services/security.js +3 -2
- package/dist/public/js/services/skills.js +1 -0
- package/dist/public/js/services/tracked-responses.js +4 -3
- package/dist/public/js/services/unfurl.js +4 -4
- package/dist/public/js/services/work.js +2 -1
- package/dist/public/js/site.js +74 -0
- package/dist/public/js/swallowed.js +69 -0
- package/dist/public/js/theme.js +2 -1
- package/dist/public/js/utils.js +3 -1
- package/dist/public/lib/VENDORED.md +1 -0
- package/dist/public/lib/aimeat-game/board.css +262 -0
- package/dist/public/lib/aimeat-game/progress.css +406 -0
- package/dist/public/lib/aimeat-game/shell.css +388 -0
- package/dist/public/lib/aimeat-game.css +394 -0
- package/dist/public/lib/pdfjs@6/pdf.min.mjs +29 -0
- package/dist/public/lib/pdfjs@6/pdf.worker.min.mjs +29 -0
- package/dist/public/privacy.fi.html +1 -1
- package/dist/public/privacy.html +1 -1
- package/dist/public/spa.html +885 -793
- package/dist/public/sw.js +4 -2
- package/dist/public/views/admin/agent-integration-tab.js +7 -6
- package/dist/public/views/admin/ai-usage-tab.js +2 -1
- package/dist/public/views/admin/cortex-tab.js +2 -1
- package/dist/public/views/admin/economy-tab.js +0 -1
- package/dist/public/views/admin/email-tab.js +4 -2
- package/dist/public/views/admin/federation-tab.js +3 -2
- package/dist/public/views/admin/feedback-tab.js +2 -1
- package/dist/public/views/admin/knowledge-tab.js +2 -1
- package/dist/public/views/admin/messages-tab.js +2 -1
- package/dist/public/views/admin/msm-tab.js +2 -1
- package/dist/public/views/admin/packages-tab.js +3 -2
- package/dist/public/views/admin/portal-tab.js +7 -2
- package/dist/public/views/admin/push-tab.js +9 -4
- package/dist/public/views/admin/stats-tab.js +2 -1
- package/dist/public/views/admin/usage-tab.js +4 -3
- package/dist/public/views/admin.js +6 -4
- package/dist/public/views/agent-solo.js +4 -3
- package/dist/public/views/app-grant.js +105 -32
- package/dist/public/views/business.js +139 -55
- package/dist/public/views/command-palette.js +5 -3
- package/dist/public/views/companies.js +3 -2
- package/dist/public/views/doc-solo.js +2 -1
- package/dist/public/views/help.js +95 -15
- package/dist/public/views/how-it-works.js +41 -8
- package/dist/public/views/invite-accept.js +3 -2
- package/dist/public/views/landing-activity.js +3 -2
- package/dist/public/views/landing-node-totals.js +2 -1
- package/dist/public/views/landing.js +75 -152
- package/dist/public/views/members.js +29 -2
- package/dist/public/views/my-company.js +9 -7
- package/dist/public/views/my-company.payments.js +2 -1
- package/dist/public/views/portal-classic.js +2 -1
- package/dist/public/views/portal-dev.js +64 -35
- package/dist/public/views/portal-dev.panels.js +39 -2
- package/dist/public/views/portal-dev.upload.js +25 -196
- package/dist/public/views/portal.components.js +4 -3
- package/dist/public/views/portfolio.js +5 -4
- package/dist/public/views/profile/access-tab/access-tokens.js +2 -1
- package/dist/public/views/profile/access-tab/agent-defaults.js +3 -1
- package/dist/public/views/profile/access-tab/connected-apps.js +72 -3
- package/dist/public/views/profile/access-tab/sharing-groups.js +4 -1
- package/dist/public/views/profile/access-tab.js +3 -1
- package/dist/public/views/profile/agents/agent-card.js +6 -5
- package/dist/public/views/profile/agents/tab-activity.js +10 -8
- package/dist/public/views/profile/agents/tab-agent-config.js +3 -1
- package/dist/public/views/profile/agents/tab-contracts.js +2 -1
- package/dist/public/views/profile/agents/tab-data-access.js +10 -7
- package/dist/public/views/profile/agents/tab-helpers.js +5 -0
- package/dist/public/views/profile/agents/tab-integration.js +12 -9
- package/dist/public/views/profile/agents/tab-messages.js +6 -4
- package/dist/public/views/profile/agents/tab-quality.js +3 -2
- package/dist/public/views/profile/agents/tab-usage.js +5 -3
- package/dist/public/views/profile/agents/task-item.js +12 -7
- package/dist/public/views/profile/agents-activity-subtab.js +5 -2
- package/dist/public/views/profile/agents-capabilities-subtab.js +4 -2
- package/dist/public/views/profile/agents-messages-subtab.js +5 -2
- package/dist/public/views/profile/agents-services-subtab.js +1 -0
- package/dist/public/views/profile/agents-tab.js +11 -7
- package/dist/public/views/profile/appdev-tab.js +3 -2
- package/dist/public/views/profile/apps-tab.js +10 -8
- package/dist/public/views/profile/boards-tab.js +5 -4
- package/dist/public/views/profile/calibrator-batch.helpers.js +3 -2
- package/dist/public/views/profile/calibrator-batch.js +3 -1
- package/dist/public/views/profile/calibrator-llm-editor.js +3 -2
- package/dist/public/views/profile/calibrator-tab.js +5 -4
- package/dist/public/views/profile/capabilities-tab.js +2 -1
- package/dist/public/views/profile/chat-sessions-tab.js +6 -3
- package/dist/public/views/profile/contacts-tab.js +2 -1
- package/dist/public/views/profile/data-wallet-tab.js +5 -4
- package/dist/public/views/profile/discover-tab.js +4 -1
- package/dist/public/views/profile/ecosystem-tab.automation.js +13 -9
- package/dist/public/views/profile/ecosystem-tab.cards.js +3 -2
- package/dist/public/views/profile/ecosystem-tab.js +10 -7
- package/dist/public/views/profile/email-tab.js +2 -1
- package/dist/public/views/profile/extensions-tab.js +7 -6
- package/dist/public/views/profile/extensions-tab.maturity.js +2 -1
- package/dist/public/views/profile/extensions-tab.prompts.js +24 -0
- package/dist/public/views/profile/federation-tab.js +2 -1
- package/dist/public/views/profile/inbox-tab/components.js +13 -10
- package/dist/public/views/profile/inbox-tab/helpers.js +15 -1
- package/dist/public/views/profile/inbox-tab/use-thread-ux.js +1 -1
- package/dist/public/views/profile/inbox-tab.js +33 -30
- package/dist/public/views/profile/inline-panels.js +5 -4
- package/dist/public/views/profile/knowledge-tab.js +15 -13
- package/dist/public/views/profile/landing-page.cards.js +14 -9
- package/dist/public/views/profile/landing-page.helpers.js +5 -2
- package/dist/public/views/profile/landing-page.js +11 -7
- package/dist/public/views/profile/landing-page.modals.js +8 -5
- package/dist/public/views/profile/living-tab.js +3 -2
- package/dist/public/views/profile/mcp-tab.js +4 -2
- package/dist/public/views/profile/memory-tab/browse-view.js +3 -2
- package/dist/public/views/profile/memory-tab/components.js +4 -3
- package/dist/public/views/profile/memory-tab/entries-view.js +3 -2
- package/dist/public/views/profile/memory-tab.js +18 -16
- package/dist/public/views/profile/nodes-tab.js +2 -1
- package/dist/public/views/profile/notebook-card.js +4 -3
- package/dist/public/views/profile/notebook-tab.js +7 -5
- package/dist/public/views/profile/notifications-tab.js +9 -5
- package/dist/public/views/profile/offers-tab.js +5 -4
- package/dist/public/views/profile/openrouter-settings.js +5 -4
- package/dist/public/views/profile/organisms/activity-panel.js +2 -1
- package/dist/public/views/profile/organisms/agents.js +2 -1
- package/dist/public/views/profile/organisms/document.js +13 -12
- package/dist/public/views/profile/organisms/helpers.js +2 -1
- package/dist/public/views/profile/organisms/home.js +7 -6
- package/dist/public/views/profile/organisms/invite-panel.js +1 -1
- package/dist/public/views/profile/organisms/members.js +7 -6
- package/dist/public/views/profile/organisms/mindmap.js +1 -1
- package/dist/public/views/profile/organisms/panels.js +4 -3
- package/dist/public/views/profile/organisms/participants-panel.js +11 -10
- package/dist/public/views/profile/organisms/readme-panel.js +1 -0
- package/dist/public/views/profile/organisms/sources-panel.js +2 -1
- package/dist/public/views/profile/organisms/workspace/doc-space.js +2 -1
- package/dist/public/views/profile/organisms/workspace/model.js +1 -0
- package/dist/public/views/profile/organisms/workspace-apps.js +4 -2
- package/dist/public/views/profile/organisms/workspace-comments.js +3 -2
- package/dist/public/views/profile/organisms/workspace-list.js +5 -4
- package/dist/public/views/profile/organisms/workspace.js +19 -16
- package/dist/public/views/profile/organisms-tab.js +20 -12
- package/dist/public/views/profile/packages-tab.js +6 -4
- package/dist/public/views/profile/portfolio-tab.js +1 -1
- package/dist/public/views/profile/scheduler-calendar.js +2 -1
- package/dist/public/views/profile/scheduler-tab.js +2 -1
- package/dist/public/views/profile/security-tab.js +2 -1
- package/dist/public/views/profile/services-tab.js +4 -3
- package/dist/public/views/profile/wallet-tab.js +90 -84
- package/dist/public/views/profile/work-tab.js +3 -2
- package/dist/public/views/profile/workflows-form.js +2 -1
- package/dist/public/views/profile/workflows-tab.js +3 -2
- package/dist/public/views/public-workspace-viewer.js +7 -4
- package/dist/scripts/build-sdk-libs.d.ts.map +1 -1
- package/dist/scripts/build-sdk-libs.js +4 -0
- package/dist/scripts/build-sdk-libs.js.map +1 -1
- package/dist/scripts/check-silent-catch.d.ts +2 -0
- package/dist/scripts/check-silent-catch.d.ts.map +1 -0
- package/dist/scripts/check-silent-catch.js +159 -0
- package/dist/scripts/check-silent-catch.js.map +1 -0
- package/dist/src/auth/jwt.d.ts +2 -0
- package/dist/src/auth/jwt.d.ts.map +1 -1
- package/dist/src/auth/jwt.js +15 -3
- package/dist/src/auth/jwt.js.map +1 -1
- package/dist/src/auth/keypair.d.ts.map +1 -1
- package/dist/src/auth/keypair.js +3 -0
- package/dist/src/auth/keypair.js.map +1 -1
- package/dist/src/auth/middleware.d.ts +2 -0
- package/dist/src/auth/middleware.d.ts.map +1 -1
- package/dist/src/auth/middleware.js +33 -14
- package/dist/src/auth/middleware.js.map +1 -1
- package/dist/src/auth/node-keys.d.ts.map +1 -1
- package/dist/src/auth/node-keys.js +59 -16
- package/dist/src/auth/node-keys.js.map +1 -1
- package/dist/src/cli/config-import.d.ts.map +1 -1
- package/dist/src/cli/config-import.js +3 -1
- package/dist/src/cli/config-import.js.map +1 -1
- package/dist/src/cli/connect/auth.d.ts.map +1 -1
- package/dist/src/cli/connect/auth.js +1 -0
- package/dist/src/cli/connect/auth.js.map +1 -1
- package/dist/src/cli/connect/config.d.ts.map +1 -1
- package/dist/src/cli/connect/config.js +3 -1
- package/dist/src/cli/connect/config.js.map +1 -1
- package/dist/src/cli/connect/keychain.d.ts.map +1 -1
- package/dist/src/cli/connect/keychain.js +6 -2
- package/dist/src/cli/connect/keychain.js.map +1 -1
- package/dist/src/cli/connect/mcp/local-server.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/local-server.js +9 -2
- package/dist/src/cli/connect/mcp/local-server.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.js +2 -0
- package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
- package/dist/src/cli/connect/task-runner.d.ts.map +1 -1
- package/dist/src/cli/connect/task-runner.js +11 -4
- package/dist/src/cli/connect/task-runner.js.map +1 -1
- package/dist/src/cli/connect/tool-call-helpers.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-helpers.js +1 -0
- package/dist/src/cli/connect/tool-call-helpers.js.map +1 -1
- package/dist/src/cli/connect/tunnel-client.d.ts.map +1 -1
- package/dist/src/cli/connect/tunnel-client.js +26 -8
- package/dist/src/cli/connect/tunnel-client.js.map +1 -1
- package/dist/src/cli/federation-join.d.ts.map +1 -1
- package/dist/src/cli/federation-join.js +7 -3
- package/dist/src/cli/federation-join.js.map +1 -1
- package/dist/src/cli/init-wizard/presets.d.ts.map +1 -1
- package/dist/src/cli/init-wizard/presets.js +21 -0
- package/dist/src/cli/init-wizard/presets.js.map +1 -1
- package/dist/src/cli/init-wizard/steps-advanced.d.ts.map +1 -1
- package/dist/src/cli/init-wizard/steps-advanced.js +2 -0
- package/dist/src/cli/init-wizard/steps-advanced.js.map +1 -1
- package/dist/src/cli/init-wizard/steps-operator.d.ts.map +1 -1
- package/dist/src/cli/init-wizard/steps-operator.js +10 -0
- package/dist/src/cli/init-wizard/steps-operator.js.map +1 -1
- package/dist/src/commerce/invoice-handler.d.ts +5 -0
- package/dist/src/commerce/invoice-handler.d.ts.map +1 -0
- package/dist/src/commerce/invoice-handler.js +41 -0
- package/dist/src/commerce/invoice-handler.js.map +1 -0
- package/dist/src/commerce/payable-book.d.ts +31 -0
- package/dist/src/commerce/payable-book.d.ts.map +1 -0
- package/dist/src/commerce/payable-book.js +27 -0
- package/dist/src/commerce/payable-book.js.map +1 -0
- package/dist/src/commerce/payment-handlers.d.ts.map +1 -1
- package/dist/src/commerce/payment-handlers.js +8 -4
- package/dist/src/commerce/payment-handlers.js.map +1 -1
- package/dist/src/commerce/sellable-resolvers.d.ts +6 -6
- package/dist/src/commerce/sellable-resolvers.d.ts.map +1 -1
- package/dist/src/commerce/sellable-resolvers.js +17 -4
- package/dist/src/commerce/sellable-resolvers.js.map +1 -1
- package/dist/src/commerce/session-service.js +2 -2
- package/dist/src/commerce/session-service.js.map +1 -1
- package/dist/src/commerce/stripe-handler.d.ts +33 -0
- package/dist/src/commerce/stripe-handler.d.ts.map +1 -0
- package/dist/src/commerce/stripe-handler.js +108 -0
- package/dist/src/commerce/stripe-handler.js.map +1 -0
- package/dist/src/commerce/types.d.ts +10 -12
- package/dist/src/commerce/types.d.ts.map +1 -1
- package/dist/src/commerce/x402-facilitator.d.ts.map +1 -1
- package/dist/src/commerce/x402-facilitator.js +1 -0
- package/dist/src/commerce/x402-facilitator.js.map +1 -1
- package/dist/src/config-types.d.ts +66 -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 +62 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/data/library-packs/sdk.d.ts +4 -0
- package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
- package/dist/src/data/library-packs/sdk.js +46 -0
- package/dist/src/data/library-packs/sdk.js.map +1 -1
- package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
- package/dist/src/data/library-packs/vendored.js +88 -0
- package/dist/src/data/library-packs/vendored.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +472 -26
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/index-connect.d.ts.map +1 -1
- package/dist/src/index-connect.js +4 -1
- package/dist/src/index-connect.js.map +1 -1
- package/dist/src/index-start.d.ts.map +1 -1
- package/dist/src/index-start.js +10 -6
- package/dist/src/index-start.js.map +1 -1
- package/dist/src/mcp/app-template-proposals.d.ts.map +1 -1
- package/dist/src/mcp/app-template-proposals.js +2 -1
- package/dist/src/mcp/app-template-proposals.js.map +1 -1
- package/dist/src/mcp/apps.d.ts.map +1 -1
- package/dist/src/mcp/apps.js +4 -3
- package/dist/src/mcp/apps.js.map +1 -1
- package/dist/src/mcp/capabilities.d.ts.map +1 -1
- package/dist/src/mcp/capabilities.js +3 -2
- package/dist/src/mcp/capabilities.js.map +1 -1
- package/dist/src/mcp/catalog/scopes.d.ts +0 -1
- package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
- package/dist/src/mcp/catalog/scopes.js +2 -11
- package/dist/src/mcp/catalog/scopes.js.map +1 -1
- package/dist/src/mcp/catalog/surfaces.d.ts +1 -7
- package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
- package/dist/src/mcp/catalog/surfaces.js +10 -16
- 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 +35 -3
- package/dist/src/mcp/commerce.js.map +1 -1
- package/dist/src/mcp/core.d.ts.map +1 -1
- package/dist/src/mcp/core.js +3 -2
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/mcp/exchange-run.d.ts +28 -0
- package/dist/src/mcp/exchange-run.d.ts.map +1 -1
- package/dist/src/mcp/exchange-run.js +58 -37
- package/dist/src/mcp/exchange-run.js.map +1 -1
- package/dist/src/mcp/exchange.d.ts.map +1 -1
- package/dist/src/mcp/exchange.js +9 -7
- package/dist/src/mcp/exchange.js.map +1 -1
- package/dist/src/mcp/extensions.d.ts.map +1 -1
- package/dist/src/mcp/extensions.js +60 -106
- package/dist/src/mcp/extensions.js.map +1 -1
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +1 -5
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/knowledge.d.ts.map +1 -1
- package/dist/src/mcp/knowledge.js +1 -0
- package/dist/src/mcp/knowledge.js.map +1 -1
- package/dist/src/mcp/oauth.d.ts +3 -0
- package/dist/src/mcp/oauth.d.ts.map +1 -1
- package/dist/src/mcp/oauth.js +13 -8
- package/dist/src/mcp/oauth.js.map +1 -1
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +7 -4
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/middleware/cors.d.ts.map +1 -1
- package/dist/src/middleware/cors.js +3 -1
- package/dist/src/middleware/cors.js.map +1 -1
- package/dist/src/middleware/subdomain.d.ts +4 -0
- package/dist/src/middleware/subdomain.d.ts.map +1 -1
- package/dist/src/middleware/subdomain.js +23 -2
- package/dist/src/middleware/subdomain.js.map +1 -1
- package/dist/src/models/app-tool-schemas.d.ts +35 -0
- package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
- package/dist/src/models/app-tool-schemas.js +44 -0
- package/dist/src/models/app-tool-schemas.js.map +1 -1
- package/dist/src/routes/admin-config.d.ts.map +1 -1
- package/dist/src/routes/admin-config.js +4 -1
- package/dist/src/routes/admin-config.js.map +1 -1
- package/dist/src/routes/admin-extensions.d.ts.map +1 -1
- package/dist/src/routes/admin-extensions.js +2 -1
- package/dist/src/routes/admin-extensions.js.map +1 -1
- package/dist/src/routes/admin-monitoring.js +14 -5
- package/dist/src/routes/admin-monitoring.js.map +1 -1
- package/dist/src/routes/admin-security.d.ts.map +1 -1
- package/dist/src/routes/admin-security.js +4 -1
- package/dist/src/routes/admin-security.js.map +1 -1
- package/dist/src/routes/admin.d.ts.map +1 -1
- package/dist/src/routes/admin.js +6 -4
- package/dist/src/routes/admin.js.map +1 -1
- package/dist/src/routes/agent-activity.d.ts.map +1 -1
- package/dist/src/routes/agent-activity.js +4 -1
- package/dist/src/routes/agent-activity.js.map +1 -1
- package/dist/src/routes/agent-directives.d.ts +3 -10
- package/dist/src/routes/agent-directives.d.ts.map +1 -1
- package/dist/src/routes/agent-directives.js +7 -12
- package/dist/src/routes/agent-directives.js.map +1 -1
- package/dist/src/routes/agent-integration.d.ts.map +1 -1
- package/dist/src/routes/agent-integration.js +3 -1
- package/dist/src/routes/agent-integration.js.map +1 -1
- package/dist/src/routes/agent-messages.d.ts.map +1 -1
- package/dist/src/routes/agent-messages.js +5 -2
- package/dist/src/routes/agent-messages.js.map +1 -1
- package/dist/src/routes/agent-onboarding.d.ts.map +1 -1
- package/dist/src/routes/agent-onboarding.js +19 -6
- package/dist/src/routes/agent-onboarding.js.map +1 -1
- package/dist/src/routes/agent-skills-discovery.d.ts.map +1 -1
- package/dist/src/routes/agent-skills-discovery.js +2 -1
- package/dist/src/routes/agent-skills-discovery.js.map +1 -1
- package/dist/src/routes/agent-tasks/completion.js +1 -1
- package/dist/src/routes/agent-tasks/completion.js.map +1 -1
- package/dist/src/routes/agent-tasks/create-read.js +3 -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 +28 -9
- package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
- package/dist/src/routes/agents/management.d.ts.map +1 -1
- package/dist/src/routes/agents/management.js +4 -1
- package/dist/src/routes/agents/management.js.map +1 -1
- 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/agents/profile-metadata.d.ts.map +1 -1
- package/dist/src/routes/agents/profile-metadata.js +2 -1
- package/dist/src/routes/agents/profile-metadata.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts +7 -0
- package/dist/src/routes/app-grants.d.ts.map +1 -1
- package/dist/src/routes/app-grants.js +69 -4
- package/dist/src/routes/app-grants.js.map +1 -1
- package/dist/src/routes/appdev-overview.d.ts.map +1 -1
- package/dist/src/routes/appdev-overview.js +2 -1
- package/dist/src/routes/appdev-overview.js.map +1 -1
- package/dist/src/routes/apps/catalogue-admin.d.ts.map +1 -1
- package/dist/src/routes/apps/catalogue-admin.js +2 -1
- package/dist/src/routes/apps/catalogue-admin.js.map +1 -1
- package/dist/src/routes/apps/drafts.d.ts.map +1 -1
- package/dist/src/routes/apps/drafts.js +2 -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 +6 -3
- package/dist/src/routes/apps/fork-manage.js.map +1 -1
- package/dist/src/routes/apps/helpers.d.ts.map +1 -1
- package/dist/src/routes/apps/helpers.js +5 -1
- package/dist/src/routes/apps/helpers.js.map +1 -1
- package/dist/src/routes/apps/publish.d.ts.map +1 -1
- package/dist/src/routes/apps/publish.js +8 -3
- package/dist/src/routes/apps/publish.js.map +1 -1
- package/dist/src/routes/apps/read.d.ts.map +1 -1
- package/dist/src/routes/apps/read.js +2 -1
- package/dist/src/routes/apps/read.js.map +1 -1
- package/dist/src/routes/auth.d.ts.map +1 -1
- package/dist/src/routes/auth.js +2 -1
- package/dist/src/routes/auth.js.map +1 -1
- package/dist/src/routes/boards.js +1 -1
- package/dist/src/routes/boards.js.map +1 -1
- package/dist/src/routes/bootstrap.d.ts.map +1 -1
- package/dist/src/routes/bootstrap.js +8 -3
- package/dist/src/routes/bootstrap.js.map +1 -1
- package/dist/src/routes/capabilities.d.ts.map +1 -1
- package/dist/src/routes/capabilities.js +4 -3
- package/dist/src/routes/capabilities.js.map +1 -1
- package/dist/src/routes/commerce-acp.js +1 -1
- package/dist/src/routes/commerce-acp.js.map +1 -1
- package/dist/src/routes/commerce-ucp.d.ts +2 -3
- package/dist/src/routes/commerce-ucp.d.ts.map +1 -1
- package/dist/src/routes/commerce-ucp.js +6 -12
- package/dist/src/routes/commerce-ucp.js.map +1 -1
- package/dist/src/routes/commerce.d.ts +7 -1
- package/dist/src/routes/commerce.d.ts.map +1 -1
- package/dist/src/routes/commerce.js +65 -15
- package/dist/src/routes/commerce.js.map +1 -1
- package/dist/src/routes/csm.d.ts.map +1 -1
- package/dist/src/routes/csm.js +3 -1
- package/dist/src/routes/csm.js.map +1 -1
- package/dist/src/routes/ecosystem-apps.d.ts.map +1 -1
- package/dist/src/routes/ecosystem-apps.js +7 -6
- package/dist/src/routes/ecosystem-apps.js.map +1 -1
- package/dist/src/routes/exchange-market.d.ts.map +1 -1
- package/dist/src/routes/exchange-market.js +10 -6
- package/dist/src/routes/exchange-market.js.map +1 -1
- package/dist/src/routes/exchange.d.ts +10 -1
- package/dist/src/routes/exchange.d.ts.map +1 -1
- package/dist/src/routes/exchange.js +344 -9
- package/dist/src/routes/exchange.js.map +1 -1
- package/dist/src/routes/extensions/actions.d.ts +2 -0
- package/dist/src/routes/extensions/actions.d.ts.map +1 -1
- package/dist/src/routes/extensions/actions.js +47 -8
- package/dist/src/routes/extensions/actions.js.map +1 -1
- package/dist/src/routes/extensions/entitlement-gate.d.ts +44 -7
- package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -1
- package/dist/src/routes/extensions/entitlement-gate.js +21 -142
- package/dist/src/routes/extensions/entitlement-gate.js.map +1 -1
- package/dist/src/routes/extensions/internal-pass.d.ts +23 -0
- package/dist/src/routes/extensions/internal-pass.d.ts.map +1 -0
- package/dist/src/routes/extensions/internal-pass.js +70 -0
- package/dist/src/routes/extensions/internal-pass.js.map +1 -0
- package/dist/src/routes/extensions/manifest.d.ts +4 -0
- package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
- package/dist/src/routes/extensions/manifest.js +68 -4
- package/dist/src/routes/extensions/manifest.js.map +1 -1
- package/dist/src/routes/extensions/metered-response.d.ts +37 -0
- package/dist/src/routes/extensions/metered-response.d.ts.map +1 -0
- package/dist/src/routes/extensions/metered-response.js +60 -0
- package/dist/src/routes/extensions/metered-response.js.map +1 -0
- package/dist/src/routes/extensions/pacing.d.ts +31 -0
- package/dist/src/routes/extensions/pacing.d.ts.map +1 -1
- package/dist/src/routes/extensions/pacing.js +5 -33
- package/dist/src/routes/extensions/pacing.js.map +1 -1
- package/dist/src/routes/extensions/paywall.d.ts +16 -0
- package/dist/src/routes/extensions/paywall.d.ts.map +1 -1
- package/dist/src/routes/extensions/paywall.js +157 -8
- package/dist/src/routes/extensions/paywall.js.map +1 -1
- package/dist/src/routes/extensions/priced-binding.d.ts +50 -0
- package/dist/src/routes/extensions/priced-binding.d.ts.map +1 -0
- package/dist/src/routes/extensions/priced-binding.js +46 -0
- package/dist/src/routes/extensions/priced-binding.js.map +1 -0
- package/dist/src/routes/federation-genesis.d.ts.map +1 -1
- package/dist/src/routes/federation-genesis.js +14 -5
- package/dist/src/routes/federation-genesis.js.map +1 -1
- package/dist/src/routes/federation-peer/introduce.d.ts.map +1 -1
- package/dist/src/routes/federation-peer/introduce.js +3 -1
- package/dist/src/routes/federation-peer/introduce.js.map +1 -1
- package/dist/src/routes/federation-peer/lifecycle.d.ts.map +1 -1
- package/dist/src/routes/federation-peer/lifecycle.js +3 -2
- package/dist/src/routes/federation-peer/lifecycle.js.map +1 -1
- package/dist/src/routes/federation-peer/peers.d.ts.map +1 -1
- package/dist/src/routes/federation-peer/peers.js +5 -3
- package/dist/src/routes/federation-peer/peers.js.map +1 -1
- package/dist/src/routes/federation-peer/policy-book.d.ts.map +1 -1
- package/dist/src/routes/federation-peer/policy-book.js +2 -1
- package/dist/src/routes/federation-peer/policy-book.js.map +1 -1
- package/dist/src/routes/federation-peer/promotion.d.ts.map +1 -1
- package/dist/src/routes/federation-peer/promotion.js +4 -1
- package/dist/src/routes/federation-peer/promotion.js.map +1 -1
- package/dist/src/routes/federation-settlements.js +2 -2
- package/dist/src/routes/federation-settlements.js.map +1 -1
- package/dist/src/routes/federation-sync/catalogue-trust.js +5 -3
- package/dist/src/routes/federation-sync/catalogue-trust.js.map +1 -1
- package/dist/src/routes/federation-sync/messaging.js +5 -3
- package/dist/src/routes/federation-sync/messaging.js.map +1 -1
- package/dist/src/routes/federation-sync/routing.d.ts.map +1 -1
- package/dist/src/routes/federation-sync/routing.js +7 -5
- package/dist/src/routes/federation-sync/routing.js.map +1 -1
- package/dist/src/routes/flags.d.ts.map +1 -1
- package/dist/src/routes/flags.js +3 -1
- package/dist/src/routes/flags.js.map +1 -1
- package/dist/src/routes/ghii/register-login.js +1 -1
- package/dist/src/routes/ghii/register-login.js.map +1 -1
- package/dist/src/routes/instances/install.d.ts.map +1 -1
- package/dist/src/routes/instances/install.js +2 -1
- package/dist/src/routes/instances/install.js.map +1 -1
- package/dist/src/routes/instances/manage.d.ts.map +1 -1
- package/dist/src/routes/instances/manage.js +2 -1
- package/dist/src/routes/instances/manage.js.map +1 -1
- package/dist/src/routes/knowledge/packages-core.d.ts.map +1 -1
- package/dist/src/routes/knowledge/packages-core.js +2 -1
- package/dist/src/routes/knowledge/packages-core.js.map +1 -1
- package/dist/src/routes/knowledge/sharing.d.ts.map +1 -1
- package/dist/src/routes/knowledge/sharing.js +2 -1
- package/dist/src/routes/knowledge/sharing.js.map +1 -1
- package/dist/src/routes/library-packs.d.ts.map +1 -1
- package/dist/src/routes/library-packs.js +10 -3
- package/dist/src/routes/library-packs.js.map +1 -1
- package/dist/src/routes/libs.d.ts +9 -0
- package/dist/src/routes/libs.d.ts.map +1 -1
- package/dist/src/routes/libs.js +11 -2
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/matches.d.ts.map +1 -1
- package/dist/src/routes/matches.js +7 -3
- package/dist/src/routes/matches.js.map +1 -1
- package/dist/src/routes/memory/bulk.d.ts.map +1 -1
- package/dist/src/routes/memory/bulk.js +3 -1
- package/dist/src/routes/memory/bulk.js.map +1 -1
- package/dist/src/routes/memory/crud.d.ts.map +1 -1
- package/dist/src/routes/memory/crud.js +4 -2
- package/dist/src/routes/memory/crud.js.map +1 -1
- package/dist/src/routes/memory/federation.d.ts.map +1 -1
- package/dist/src/routes/memory/federation.js +5 -0
- package/dist/src/routes/memory/federation.js.map +1 -1
- package/dist/src/routes/memory/key.d.ts.map +1 -1
- package/dist/src/routes/memory/key.js +9 -4
- package/dist/src/routes/memory/key.js.map +1 -1
- package/dist/src/routes/messages.d.ts.map +1 -1
- package/dist/src/routes/messages.js +2 -1
- package/dist/src/routes/messages.js.map +1 -1
- package/dist/src/routes/msm.d.ts.map +1 -1
- package/dist/src/routes/msm.js +3 -1
- package/dist/src/routes/msm.js.map +1 -1
- package/dist/src/routes/oauth-login.d.ts.map +1 -1
- package/dist/src/routes/oauth-login.js +1 -0
- package/dist/src/routes/oauth-login.js.map +1 -1
- package/dist/src/routes/openrouter.js +2 -2
- package/dist/src/routes/openrouter.js.map +1 -1
- package/dist/src/routes/organisms/crud.d.ts.map +1 -1
- package/dist/src/routes/organisms/crud.js +3 -2
- package/dist/src/routes/organisms/crud.js.map +1 -1
- package/dist/src/routes/organisms/gates.d.ts.map +1 -1
- package/dist/src/routes/organisms/gates.js +3 -2
- package/dist/src/routes/organisms/gates.js.map +1 -1
- package/dist/src/routes/organisms/intake.d.ts.map +1 -1
- package/dist/src/routes/organisms/intake.js +13 -1
- package/dist/src/routes/organisms/intake.js.map +1 -1
- package/dist/src/routes/organisms/shared.d.ts.map +1 -1
- package/dist/src/routes/organisms/shared.js +7 -3
- package/dist/src/routes/organisms/shared.js.map +1 -1
- package/dist/src/routes/organisms/workspace-ops.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-ops.js +6 -5
- package/dist/src/routes/organisms/workspace-ops.js.map +1 -1
- package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-read.js +4 -2
- package/dist/src/routes/organisms/workspace-read.js.map +1 -1
- package/dist/src/routes/owners.d.ts.map +1 -1
- package/dist/src/routes/owners.js +37 -12
- package/dist/src/routes/owners.js.map +1 -1
- package/dist/src/routes/personal.js +3 -1
- package/dist/src/routes/personal.js.map +1 -1
- package/dist/src/routes/portal.d.ts +6 -1
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +75 -10
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/routes/portfolio.d.ts.map +1 -1
- package/dist/src/routes/portfolio.js +5 -1
- package/dist/src/routes/portfolio.js.map +1 -1
- package/dist/src/routes/prompts.d.ts.map +1 -1
- package/dist/src/routes/prompts.js +36 -2
- package/dist/src/routes/prompts.js.map +1 -1
- package/dist/src/routes/public-events.d.ts.map +1 -1
- package/dist/src/routes/public-events.js +4 -1
- package/dist/src/routes/public-events.js.map +1 -1
- package/dist/src/routes/public-stats.d.ts.map +1 -1
- package/dist/src/routes/public-stats.js +29 -10
- package/dist/src/routes/public-stats.js.map +1 -1
- package/dist/src/routes/schedules.d.ts +3 -0
- package/dist/src/routes/schedules.d.ts.map +1 -1
- package/dist/src/routes/schedules.js +14 -1
- package/dist/src/routes/schedules.js.map +1 -1
- package/dist/src/routes/stats.d.ts.map +1 -1
- package/dist/src/routes/stats.js +5 -1
- package/dist/src/routes/stats.js.map +1 -1
- package/dist/src/routes/storage-files.d.ts +4 -0
- package/dist/src/routes/storage-files.d.ts.map +1 -1
- package/dist/src/routes/storage-files.js +11 -0
- package/dist/src/routes/storage-files.js.map +1 -1
- package/dist/src/routes/subdomains.d.ts +9 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +66 -5
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/routes/unfurl.d.ts.map +1 -1
- package/dist/src/routes/unfurl.js +13 -3
- package/dist/src/routes/unfurl.js.map +1 -1
- package/dist/src/routes/upload.d.ts +11 -0
- package/dist/src/routes/upload.d.ts.map +1 -1
- package/dist/src/routes/upload.js +99 -9
- package/dist/src/routes/upload.js.map +1 -1
- package/dist/src/routes/wallet.d.ts +3 -0
- package/dist/src/routes/wallet.d.ts.map +1 -1
- package/dist/src/routes/wallet.js +6 -1
- package/dist/src/routes/wallet.js.map +1 -1
- package/dist/src/routes/webmcp.d.ts +8 -0
- package/dist/src/routes/webmcp.d.ts.map +1 -1
- package/dist/src/routes/webmcp.js +96 -49
- package/dist/src/routes/webmcp.js.map +1 -1
- package/dist/src/routes/wellknown.d.ts.map +1 -1
- package/dist/src/routes/wellknown.js +1 -0
- package/dist/src/routes/wellknown.js.map +1 -1
- package/dist/src/server-bootstrap/config-init.d.ts.map +1 -1
- package/dist/src/server-bootstrap/config-init.js +2 -0
- package/dist/src/server-bootstrap/config-init.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts +4 -2
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +11 -22
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/server-bootstrap/service-init.js +3 -1
- package/dist/src/server-bootstrap/service-init.js.map +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +3 -1
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/services/agent-statistics.d.ts.map +1 -1
- package/dist/src/services/agent-statistics.js +4 -1
- package/dist/src/services/agent-statistics.js.map +1 -1
- package/dist/src/services/app-agent-deploy.d.ts.map +1 -1
- package/dist/src/services/app-agent-deploy.js +4 -1
- package/dist/src/services/app-agent-deploy.js.map +1 -1
- package/dist/src/services/app-agent-surface.d.ts +78 -0
- package/dist/src/services/app-agent-surface.d.ts.map +1 -0
- package/dist/src/services/app-agent-surface.js +74 -0
- package/dist/src/services/app-agent-surface.js.map +1 -0
- package/dist/src/services/app-tool-names.d.ts +15 -0
- package/dist/src/services/app-tool-names.d.ts.map +1 -0
- package/dist/src/services/app-tool-names.js +24 -0
- package/dist/src/services/app-tool-names.js.map +1 -0
- package/dist/src/services/appdev-overview.d.ts.map +1 -1
- package/dist/src/services/appdev-overview.js +3 -2
- package/dist/src/services/appdev-overview.js.map +1 -1
- package/dist/src/services/attachment-duplication.js +3 -3
- package/dist/src/services/attachment-duplication.js.map +1 -1
- package/dist/src/services/build-extension-prompt.d.ts +40 -0
- package/dist/src/services/build-extension-prompt.d.ts.map +1 -0
- package/dist/src/services/build-extension-prompt.js +253 -0
- package/dist/src/services/build-extension-prompt.js.map +1 -0
- package/dist/src/services/cache-cleanup.d.ts.map +1 -1
- package/dist/src/services/cache-cleanup.js +2 -1
- package/dist/src/services/cache-cleanup.js.map +1 -1
- package/dist/src/services/call-timing.d.ts.map +1 -1
- package/dist/src/services/call-timing.js +2 -1
- package/dist/src/services/call-timing.js.map +1 -1
- package/dist/src/services/capability-invoke.d.ts +6 -1
- package/dist/src/services/capability-invoke.d.ts.map +1 -1
- package/dist/src/services/capability-invoke.js +14 -2
- package/dist/src/services/capability-invoke.js.map +1 -1
- package/dist/src/services/catalogue-sync.d.ts.map +1 -1
- package/dist/src/services/catalogue-sync.js +1 -0
- package/dist/src/services/catalogue-sync.js.map +1 -1
- package/dist/src/services/component-registrar.d.ts.map +1 -1
- package/dist/src/services/component-registrar.js +22 -6
- package/dist/src/services/component-registrar.js.map +1 -1
- package/dist/src/services/config-loader.d.ts.map +1 -1
- package/dist/src/services/config-loader.js +6 -1
- package/dist/src/services/config-loader.js.map +1 -1
- package/dist/src/services/config-schema.d.ts.map +1 -1
- package/dist/src/services/config-schema.js +1 -0
- package/dist/src/services/config-schema.js.map +1 -1
- package/dist/src/services/connect-tunnel.d.ts.map +1 -1
- package/dist/src/services/connect-tunnel.js +17 -6
- package/dist/src/services/connect-tunnel.js.map +1 -1
- package/dist/src/services/consent.d.ts.map +1 -1
- package/dist/src/services/consent.js +3 -1
- package/dist/src/services/consent.js.map +1 -1
- package/dist/src/services/consul-config.d.ts.map +1 -1
- package/dist/src/services/consul-config.js +7 -2
- package/dist/src/services/consul-config.js.map +1 -1
- package/dist/src/services/contacts.js +4 -2
- package/dist/src/services/contacts.js.map +1 -1
- package/dist/src/services/core-jobs.js +1 -1
- package/dist/src/services/core-jobs.js.map +1 -1
- package/dist/src/services/db/agent-messages-overview-db-service.d.ts.map +1 -1
- package/dist/src/services/db/agent-messages-overview-db-service.js +2 -1
- package/dist/src/services/db/agent-messages-overview-db-service.js.map +1 -1
- package/dist/src/services/db/agent-quality-overview-db-service.d.ts.map +1 -1
- package/dist/src/services/db/agent-quality-overview-db-service.js +2 -1
- package/dist/src/services/db/agent-quality-overview-db-service.js.map +1 -1
- package/dist/src/services/db/messages-inbox-db-service.d.ts.map +1 -1
- package/dist/src/services/db/messages-inbox-db-service.js +3 -2
- package/dist/src/services/db/messages-inbox-db-service.js.map +1 -1
- package/dist/src/services/db/messaging-db-service.d.ts.map +1 -1
- package/dist/src/services/db/messaging-db-service.js +3 -2
- package/dist/src/services/db/messaging-db-service.js.map +1 -1
- package/dist/src/services/db/wallet-tab-db-service.d.ts +3 -3
- package/dist/src/services/doc-images.d.ts.map +1 -1
- package/dist/src/services/doc-images.js +7 -4
- package/dist/src/services/doc-images.js.map +1 -1
- package/dist/src/services/ecosystem-automation-notify.d.ts.map +1 -1
- package/dist/src/services/ecosystem-automation-notify.js +10 -4
- package/dist/src/services/ecosystem-automation-notify.js.map +1 -1
- package/dist/src/services/ecosystem-automation.d.ts.map +1 -1
- package/dist/src/services/ecosystem-automation.js +3 -2
- package/dist/src/services/ecosystem-automation.js.map +1 -1
- package/dist/src/services/ecosystem-events.js +1 -1
- package/dist/src/services/ecosystem-events.js.map +1 -1
- package/dist/src/services/entitlement-merge.d.ts +50 -0
- package/dist/src/services/entitlement-merge.d.ts.map +1 -0
- package/dist/src/services/entitlement-merge.js +116 -0
- package/dist/src/services/entitlement-merge.js.map +1 -0
- package/dist/src/services/entitlement-money.d.ts.map +1 -1
- package/dist/src/services/entitlement-money.js +4 -1
- package/dist/src/services/entitlement-money.js.map +1 -1
- package/dist/src/services/exchange-market.d.ts +47 -2
- package/dist/src/services/exchange-market.d.ts.map +1 -1
- package/dist/src/services/exchange-market.js +80 -9
- package/dist/src/services/exchange-market.js.map +1 -1
- package/dist/src/services/exchange-projection.d.ts +8 -2
- package/dist/src/services/exchange-projection.d.ts.map +1 -1
- package/dist/src/services/exchange-projection.js +146 -21
- package/dist/src/services/exchange-projection.js.map +1 -1
- package/dist/src/services/exchange-proposals.d.ts.map +1 -1
- package/dist/src/services/exchange-proposals.js +4 -2
- package/dist/src/services/exchange-proposals.js.map +1 -1
- package/dist/src/services/extension-purchase.d.ts +36 -0
- package/dist/src/services/extension-purchase.d.ts.map +1 -0
- package/dist/src/services/extension-purchase.js +110 -0
- package/dist/src/services/extension-purchase.js.map +1 -0
- package/dist/src/services/extension-runtime.d.ts +23 -1
- package/dist/src/services/extension-runtime.d.ts.map +1 -1
- package/dist/src/services/extension-runtime.js +21 -4
- package/dist/src/services/extension-runtime.js.map +1 -1
- package/dist/src/services/extension-secrets.d.ts +8 -0
- package/dist/src/services/extension-secrets.d.ts.map +1 -1
- package/dist/src/services/extension-secrets.js +14 -0
- package/dist/src/services/extension-secrets.js.map +1 -1
- package/dist/src/services/federation-availability.d.ts.map +1 -1
- package/dist/src/services/federation-availability.js +1 -0
- package/dist/src/services/federation-availability.js.map +1 -1
- package/dist/src/services/federation-book.js +15 -7
- package/dist/src/services/federation-book.js.map +1 -1
- package/dist/src/services/federation-helpers.d.ts.map +1 -1
- package/dist/src/services/federation-helpers.js +1 -0
- package/dist/src/services/federation-helpers.js.map +1 -1
- package/dist/src/services/federation.d.ts.map +1 -1
- package/dist/src/services/federation.js +8 -6
- package/dist/src/services/federation.js.map +1 -1
- package/dist/src/services/gate-expiry.d.ts.map +1 -1
- package/dist/src/services/gate-expiry.js +2 -1
- package/dist/src/services/gate-expiry.js.map +1 -1
- package/dist/src/services/genesis-sync.d.ts.map +1 -1
- package/dist/src/services/genesis-sync.js +9 -4
- package/dist/src/services/genesis-sync.js.map +1 -1
- package/dist/src/services/handbooks/commerce.d.ts +13 -0
- package/dist/src/services/handbooks/commerce.d.ts.map +1 -0
- package/dist/src/services/handbooks/commerce.js +60 -0
- package/dist/src/services/handbooks/commerce.js.map +1 -0
- package/dist/src/services/handbooks/index.d.ts +1 -0
- package/dist/src/services/handbooks/index.d.ts.map +1 -1
- package/dist/src/services/handbooks/index.js +2 -2
- package/dist/src/services/handbooks/index.js.map +1 -1
- package/dist/src/services/hooks.d.ts.map +1 -1
- package/dist/src/services/hooks.js +2 -0
- package/dist/src/services/hooks.js.map +1 -1
- package/dist/src/services/invitations.d.ts.map +1 -1
- package/dist/src/services/invitations.js +2 -0
- package/dist/src/services/invitations.js.map +1 -1
- package/dist/src/services/living-author.d.ts.map +1 -1
- package/dist/src/services/living-author.js +4 -1
- package/dist/src/services/living-author.js.map +1 -1
- package/dist/src/services/living-pulse.js +18 -6
- package/dist/src/services/living-pulse.js.map +1 -1
- package/dist/src/services/mailbox-notification.d.ts.map +1 -1
- package/dist/src/services/mailbox-notification.js +1 -0
- package/dist/src/services/mailbox-notification.js.map +1 -1
- package/dist/src/services/match-notification.d.ts.map +1 -1
- package/dist/src/services/match-notification.js +2 -1
- package/dist/src/services/match-notification.js.map +1 -1
- package/dist/src/services/matching.d.ts.map +1 -1
- package/dist/src/services/matching.js +5 -2
- package/dist/src/services/matching.js.map +1 -1
- package/dist/src/services/memory-replication.d.ts.map +1 -1
- package/dist/src/services/memory-replication.js +3 -1
- package/dist/src/services/memory-replication.js.map +1 -1
- package/dist/src/services/message-broadcast.d.ts.map +1 -1
- package/dist/src/services/message-broadcast.js +2 -1
- package/dist/src/services/message-broadcast.js.map +1 -1
- package/dist/src/services/message-delivery.d.ts.map +1 -1
- package/dist/src/services/message-delivery.js +9 -4
- package/dist/src/services/message-delivery.js.map +1 -1
- package/dist/src/services/metered-access.d.ts +148 -0
- package/dist/src/services/metered-access.d.ts.map +1 -0
- package/dist/src/services/metered-access.js +128 -0
- package/dist/src/services/metered-access.js.map +1 -0
- package/dist/src/services/metered-entitlements.d.ts +140 -5
- package/dist/src/services/metered-entitlements.d.ts.map +1 -1
- package/dist/src/services/metered-entitlements.js +247 -30
- package/dist/src/services/metered-entitlements.js.map +1 -1
- package/dist/src/services/metered-settlement.d.ts +45 -0
- package/dist/src/services/metered-settlement.d.ts.map +1 -0
- package/dist/src/services/metered-settlement.js +117 -0
- package/dist/src/services/metered-settlement.js.map +1 -0
- package/dist/src/services/network-policy.d.ts.map +1 -1
- package/dist/src/services/network-policy.js +6 -2
- package/dist/src/services/network-policy.js.map +1 -1
- package/dist/src/services/notebook-classify.d.ts.map +1 -1
- package/dist/src/services/notebook-classify.js +7 -2
- package/dist/src/services/notebook-classify.js.map +1 -1
- package/dist/src/services/notebook-plan.d.ts.map +1 -1
- package/dist/src/services/notebook-plan.js +4 -1
- package/dist/src/services/notebook-plan.js.map +1 -1
- package/dist/src/services/notify.d.ts.map +1 -1
- package/dist/src/services/notify.js +6 -3
- package/dist/src/services/notify.js.map +1 -1
- package/dist/src/services/openrouter.d.ts.map +1 -1
- package/dist/src/services/openrouter.js +1 -0
- package/dist/src/services/openrouter.js.map +1 -1
- package/dist/src/services/organism-export.d.ts.map +1 -1
- package/dist/src/services/organism-export.js +4 -1
- package/dist/src/services/organism-export.js.map +1 -1
- package/dist/src/services/organism-import.d.ts.map +1 -1
- package/dist/src/services/organism-import.js +5 -1
- package/dist/src/services/organism-import.js.map +1 -1
- package/dist/src/services/perf-trace.js +3 -1
- package/dist/src/services/perf-trace.js.map +1 -1
- package/dist/src/services/personal-tunnel.js +14 -8
- package/dist/src/services/personal-tunnel.js.map +1 -1
- package/dist/src/services/presence.d.ts.map +1 -1
- package/dist/src/services/presence.js +11 -5
- package/dist/src/services/presence.js.map +1 -1
- package/dist/src/services/protected-resource.d.ts +60 -0
- package/dist/src/services/protected-resource.d.ts.map +1 -0
- package/dist/src/services/protected-resource.js +137 -0
- package/dist/src/services/protected-resource.js.map +1 -0
- package/dist/src/services/realtime-manager.d.ts.map +1 -1
- package/dist/src/services/realtime-manager.js +8 -5
- package/dist/src/services/realtime-manager.js.map +1 -1
- package/dist/src/services/safe-zip.d.ts.map +1 -1
- package/dist/src/services/safe-zip.js +4 -1
- package/dist/src/services/safe-zip.js.map +1 -1
- package/dist/src/services/scheduler-extension-job.js +2 -2
- package/dist/src/services/scheduler-extension-job.js.map +1 -1
- package/dist/src/services/scheduler.js +13 -7
- package/dist/src/services/scheduler.js.map +1 -1
- package/dist/src/services/security-incident.d.ts.map +1 -1
- package/dist/src/services/security-incident.js +7 -2
- package/dist/src/services/security-incident.js.map +1 -1
- package/dist/src/services/site-sync.d.ts.map +1 -1
- package/dist/src/services/site-sync.js +1 -0
- package/dist/src/services/site-sync.js.map +1 -1
- package/dist/src/services/site.d.ts +1 -1
- package/dist/src/services/site.d.ts.map +1 -1
- package/dist/src/services/site.js +29 -8
- package/dist/src/services/site.js.map +1 -1
- package/dist/src/services/structure-overview.d.ts.map +1 -1
- package/dist/src/services/structure-overview.js +4 -1
- package/dist/src/services/structure-overview.js.map +1 -1
- package/dist/src/services/structure-snapshot.d.ts.map +1 -1
- package/dist/src/services/structure-snapshot.js +3 -2
- package/dist/src/services/structure-snapshot.js.map +1 -1
- package/dist/src/services/sync-scheduler.js +3 -2
- package/dist/src/services/sync-scheduler.js.map +1 -1
- package/dist/src/services/tracked-response.js +1 -1
- package/dist/src/services/tracked-response.js.map +1 -1
- package/dist/src/services/trust-broadcast.d.ts.map +1 -1
- package/dist/src/services/trust-broadcast.js +1 -0
- package/dist/src/services/trust-broadcast.js.map +1 -1
- package/dist/src/services/upload-zip.d.ts +7 -0
- package/dist/src/services/upload-zip.d.ts.map +1 -1
- package/dist/src/services/upload-zip.js +19 -85
- package/dist/src/services/upload-zip.js.map +1 -1
- package/dist/src/services/web-bot-auth.d.ts.map +1 -1
- package/dist/src/services/web-bot-auth.js +1 -0
- package/dist/src/services/web-bot-auth.js.map +1 -1
- package/dist/src/services/workflow/engine-steps.d.ts.map +1 -1
- package/dist/src/services/workflow/engine-steps.js +12 -6
- package/dist/src/services/workflow/engine-steps.js.map +1 -1
- package/dist/src/services/workspace-export.d.ts.map +1 -1
- package/dist/src/services/workspace-export.js +5 -2
- package/dist/src/services/workspace-export.js.map +1 -1
- package/dist/src/services/workspace-import.d.ts.map +1 -1
- package/dist/src/services/workspace-import.js +2 -1
- package/dist/src/services/workspace-import.js.map +1 -1
- package/dist/src/services/workspace-versions.d.ts.map +1 -1
- package/dist/src/services/workspace-versions.js +0 -0
- package/dist/src/services/workspace-versions.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +5 -0
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/helpers.d.ts +11 -0
- package/dist/src/storage/providers/postgres-kysely/helpers.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/helpers.js +14 -0
- package/dist/src/storage/providers/postgres-kysely/helpers.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +1 -1
- 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 +6 -0
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js +3 -3
- package/dist/src/storage/providers/postgres-kysely/methods/capabilities.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js +3 -3
- package/dist/src/storage/providers/postgres-kysely/methods/ecosystem.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/federation.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/federation.js +12 -10
- package/dist/src/storage/providers/postgres-kysely/methods/federation.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.js +26 -12
- package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js +5 -5
- package/dist/src/storage/providers/postgres-kysely/methods/marketplace.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts +9 -0
- package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.js +31 -27
- package/dist/src/storage/providers/postgres-kysely/methods/node-ext-escrow.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 +10 -14
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/otk.js +3 -3
- package/dist/src/storage/providers/postgres-kysely/methods/otk.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/packages.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/packages.js +4 -14
- package/dist/src/storage/providers/postgres-kysely/methods/packages.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/template-listings.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js +11 -10
- package/dist/src/storage/providers/postgres-kysely/methods/template-listings.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/wallet.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/wallet.js +3 -1
- package/dist/src/storage/providers/postgres-kysely/methods/wallet.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrate.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrate.js +3 -0
- package/dist/src/storage/providers/postgres-kysely/migrate.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrations/0013_ghii_password_lockout.sql +12 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0014_transaction_initiator.sql +6 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0015_app_grant_spend_cap.sql +5 -0
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts +1 -1
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/apps.js +12 -2
- package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/community.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/community.js +6 -1
- package/dist/src/storage/providers/sqlite/methods/community.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.js +9 -2
- package/dist/src/storage/providers/sqlite/methods/identity-nodes.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/work.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/work.js +4 -2
- package/dist/src/storage/providers/sqlite/methods/work.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/community.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/community.js +6 -1
- package/dist/src/storage/providers/sqlite/repos/community.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/identity.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/repos/identity.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/identity.js +13 -4
- package/dist/src/storage/providers/sqlite/repos/identity.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/work.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/work.js +4 -2
- package/dist/src/storage/providers/sqlite/repos/work.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-1.js +1 -0
- package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-2.js +2 -0
- package/dist/src/storage/providers/sqlite/schema-tables-2.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +14 -1
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts +1 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
- package/dist/src/storage/types/auth.d.ts +9 -0
- package/dist/src/storage/types/auth.d.ts.map +1 -1
- package/dist/src/storage/types/commerce.d.ts +13 -0
- package/dist/src/storage/types/commerce.d.ts.map +1 -1
- package/dist/src/utils/app-agent-discovery.d.ts +31 -0
- package/dist/src/utils/app-agent-discovery.d.ts.map +1 -0
- package/dist/src/utils/app-agent-discovery.js +96 -0
- package/dist/src/utils/app-agent-discovery.js.map +1 -0
- package/dist/src/utils/app-protect.d.ts.map +1 -1
- package/dist/src/utils/app-protect.js +1 -0
- package/dist/src/utils/app-protect.js.map +1 -1
- package/dist/src/utils/env-validator.d.ts.map +1 -1
- package/dist/src/utils/env-validator.js +5 -1
- package/dist/src/utils/env-validator.js.map +1 -1
- package/dist/src/utils/gaii.d.ts +50 -0
- package/dist/src/utils/gaii.d.ts.map +1 -1
- package/dist/src/utils/gaii.js +66 -0
- package/dist/src/utils/gaii.js.map +1 -1
- package/dist/src/utils/url-validator.d.ts.map +1 -1
- package/dist/src/utils/url-validator.js +4 -1
- package/dist/src/utils/url-validator.js.map +1 -1
- package/dist/src/utils/version.d.ts.map +1 -1
- package/dist/src/utils/version.js +1 -0
- package/dist/src/utils/version.js.map +1 -1
- package/dist/static/sdk-libs/auth/session.js +7 -3
- package/dist/static/sdk-libs/dist/aimeat-auth.js +1 -1
- package/dist/static/sdk-libs/dist/aimeat-exchange.js +675 -0
- package/dist/static/sdk-libs/dist/aimeat-game.js +1555 -0
- package/dist/static/sdk-libs/dist/aimeat-webmcp.js +46 -0
- package/dist/static/sdk-libs/exchange/browse.js +81 -0
- package/dist/static/sdk-libs/exchange/client.js +131 -0
- package/dist/static/sdk-libs/exchange/contracts.js +228 -0
- package/dist/static/sdk-libs/exchange/demand.js +106 -0
- package/dist/static/sdk-libs/exchange/earnings.js +39 -0
- package/dist/static/sdk-libs/exchange/format.js +51 -0
- package/dist/static/sdk-libs/exchange/index.js +70 -0
- package/dist/static/sdk-libs/exchange/odps-completeness.js +177 -0
- package/dist/static/sdk-libs/exchange/sell.js +253 -0
- package/dist/static/sdk-libs/game/board.js +331 -0
- package/dist/static/sdk-libs/game/dom.js +223 -0
- package/dist/static/sdk-libs/game/i18n.js +201 -0
- package/dist/static/sdk-libs/game/index.js +72 -0
- package/dist/static/sdk-libs/game/markers.js +150 -0
- package/dist/static/sdk-libs/game/menu.js +260 -0
- package/dist/static/sdk-libs/game/overlay.js +193 -0
- package/dist/static/sdk-libs/game/progress.js +280 -0
- package/dist/static/sdk-libs/game/score.js +134 -0
- package/dist/static/sdk-libs/game/screen.js +120 -0
- package/dist/static/sdk-libs/game/units.js +55 -0
- package/dist/static/sdk-libs/webmcp/index.js +63 -0
- package/package.json +2 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/routes/extensions/internal-pass.ts
|
|
3
|
+
* @description A one-shot, in-process pass saying "this call was already settled upstream, do not
|
|
4
|
+
* charge it again".
|
|
5
|
+
*
|
|
6
|
+
* An extension-backed capability runs behind this node's OWN authenticated HTTP surface: the
|
|
7
|
+
* app-tool route settles the contract and then invokes the capability over loopback, which walks
|
|
8
|
+
* straight back into the raw-invoke paywall. Once that paywall started charging for actions a
|
|
9
|
+
* priced app-tool sells (it had to — the raw route was a free door onto every priced product on
|
|
10
|
+
* the node), one call would settle twice.
|
|
11
|
+
*
|
|
12
|
+
* The settlement belongs to the app-tool route, because that route KNOWS which product was
|
|
13
|
+
* bought. The raw route cannot: one extension action can be sold under several tools, and a
|
|
14
|
+
* caller holding contracts for two of them gives no clue which one they meant. So the app-tool
|
|
15
|
+
* route charges, and hands the invoke a pass.
|
|
16
|
+
*
|
|
17
|
+
* The pass is a random token held in this process's memory, consumed on first use and expiring in
|
|
18
|
+
* seconds. It is never minted from user input, never returned to a client, and travels only on
|
|
19
|
+
* the loopback request the node makes to itself. A pass that arrives from anywhere else does not
|
|
20
|
+
* exist in the map, so it does nothing — the header cannot be forged into a free call, only into
|
|
21
|
+
* a normal paid one.
|
|
22
|
+
* @structure mintInternalPass(coordExt, coordAction, kind) · consumeInternalPass(token) · INTERNAL_PASS_HEADER
|
|
23
|
+
* @usage
|
|
24
|
+
* const pass = mintInternalPass(coordExt, toolName); // after settling the contract
|
|
25
|
+
* const pass = mintInternalPass(coordExt, toolName, 'unpriced'); // the manifest prices this tool at nothing
|
|
26
|
+
* headers[INTERNAL_PASS_HEADER] = pass; // on the loopback invoke
|
|
27
|
+
* const upstream = consumeInternalPass(req.header(INTERNAL_PASS_HEADER)); // paywall
|
|
28
|
+
* @version-history
|
|
29
|
+
* v1.1.0 — 2026-07-27 — A pass says WHICH decision was made. `unpriced` retires only the app-tool
|
|
30
|
+
* question; an action's own `commercial` terms survive a free tool in front of it.
|
|
31
|
+
* v1.0.0 — 2026-07-27 — Initial: one settlement per call once the raw door became chargeable.
|
|
32
|
+
*/
|
|
33
|
+
import { randomBytes } from 'node:crypto';
|
|
34
|
+
/** Header the loopback invoke carries. Meaningless to an outside caller — see the file note. */
|
|
35
|
+
export const INTERNAL_PASS_HEADER = 'x-aimeat-internal-pass';
|
|
36
|
+
/**
|
|
37
|
+
* Passes live milliseconds in practice — the loopback request is the very next thing that happens.
|
|
38
|
+
* Ten seconds is generous for a slow event loop and short enough that a leaked map entry is a
|
|
39
|
+
* rounding error rather than a lingering credential.
|
|
40
|
+
*/
|
|
41
|
+
const TTL_MS = 10_000;
|
|
42
|
+
const passes = new Map();
|
|
43
|
+
/** Drop anything expired. Cheap: the map holds at most the calls in flight. */
|
|
44
|
+
function sweep(now) {
|
|
45
|
+
for (const [token, held] of passes) {
|
|
46
|
+
if (held.expiresAt <= now)
|
|
47
|
+
passes.delete(token);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function mintInternalPass(coordExt, coordAction, kind = 'settled') {
|
|
51
|
+
const now = Date.now();
|
|
52
|
+
sweep(now);
|
|
53
|
+
const token = randomBytes(24).toString('base64url');
|
|
54
|
+
passes.set(token, { pass: { kind, coordExt, coordAction }, expiresAt: now + TTL_MS });
|
|
55
|
+
return token;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Consume a pass. Returns what it covered, or null if it is absent, unknown, expired or already
|
|
59
|
+
* used — every one of which means "charge this call normally", never "let it through free".
|
|
60
|
+
*/
|
|
61
|
+
export function consumeInternalPass(token) {
|
|
62
|
+
if (!token)
|
|
63
|
+
return null;
|
|
64
|
+
const held = passes.get(token);
|
|
65
|
+
if (!held)
|
|
66
|
+
return null;
|
|
67
|
+
passes.delete(token); // single use, even when expired
|
|
68
|
+
return held.expiresAt > Date.now() ? held.pass : null;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=internal-pass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-pass.js","sourceRoot":"","sources":["../../../../src/routes/extensions/internal-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,gGAAgG;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAiB7D;;;;GAIG;AACH,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqD,CAAC;AAE5E,+EAA+E;AAC/E,SAAS,KAAK,CAAC,GAAW;IACxB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAAmB,EAAE,OAA6B,SAAS;IAC5G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,CAAC,GAAG,CAAC,CAAC;IACX,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgC;IAClE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAuB,gCAAgC;IAC5E,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC"}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* @description Shared extension-manifest validator/builder — validates a YAML manifest + scripts map
|
|
4
4
|
* and builds the ExtensionRecord it describes. Extracted from src/routes/extensions.ts to satisfy max-file-lines.
|
|
5
5
|
* @version-history
|
|
6
|
+
* v1.2.0 — 2026-07-26 — validateManifestShape: type-check every field the builder later reads as a
|
|
7
|
+
* string. `(a.method as string).toUpperCase()` on a mis-typed field threw a TypeError out of the
|
|
8
|
+
* builder, which the presigned-upload router turned into a bare 500 with no mention of the
|
|
9
|
+
* manifest. Mis-typed fields are now a 400 naming the field and what the YAML produced.
|
|
6
10
|
* v1.1.0 — 2026-07-17 — Per-action pricing: validate + carry `tollMorsels` (anti-abuse burn) and
|
|
7
11
|
* `commercial` {payMorsels, payMoney} for priced raw calls (design notes doc-r6tyr3o, C1/M1)
|
|
8
12
|
* v1.0.0 — 2026-07-13 — Extracted from src/routes/extensions.ts (max-file-lines)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/manifest.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKlE,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoCjE;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CASvF;AAsED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAsD9G;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,cAAc,CA+JhB"}
|
|
@@ -51,6 +51,68 @@ export function scanSandboxCapabilityWarnings(scripts) {
|
|
|
51
51
|
}
|
|
52
52
|
const isNonNegInt = (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && Number.isFinite(v);
|
|
53
53
|
const fail = (message) => ({ ok: false, status: 400, code: 'INVALID_MANIFEST', message });
|
|
54
|
+
const isNonEmptyString = (v) => typeof v === 'string' && v.trim().length > 0;
|
|
55
|
+
/**
|
|
56
|
+
* Describe what a manifest field actually turned out to be, so the error names the mistake instead
|
|
57
|
+
* of the type. A YAML flow map (`input: { type: object, description: a, b }`) is the usual way a
|
|
58
|
+
* field silently becomes the wrong shape: the comma starts a new entry, and what the author read as
|
|
59
|
+
* prose ends up as a key.
|
|
60
|
+
*/
|
|
61
|
+
function describeYamlValue(v) {
|
|
62
|
+
if (v === undefined)
|
|
63
|
+
return 'missing';
|
|
64
|
+
if (v === null)
|
|
65
|
+
return 'null';
|
|
66
|
+
if (Array.isArray(v))
|
|
67
|
+
return 'a list';
|
|
68
|
+
if (typeof v === 'object')
|
|
69
|
+
return `a map (${Object.keys(v).slice(0, 4).join(', ')})`;
|
|
70
|
+
return `${typeof v} (${JSON.stringify(v)})`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Every manifest field this builder later treats as a string MUST be checked here first.
|
|
74
|
+
*
|
|
75
|
+
* The bug this closes: `actions[].method` was read as `(a.method as string).toUpperCase()` with no
|
|
76
|
+
* check, so a manifest where the field parsed as anything else threw a TypeError out of the whole
|
|
77
|
+
* builder. On the REST/MCP paths that surfaced as a message; on the presigned ZIP path the router's
|
|
78
|
+
* catch-all turned it into a bare `500 PROCESSING_FAILED`, which tells the author nothing about
|
|
79
|
+
* their manifest. A mis-typed field is the author's mistake to fix, so it must be a 400 that names
|
|
80
|
+
* the field, the action and what the YAML actually produced.
|
|
81
|
+
*/
|
|
82
|
+
function validateManifestShape(metadata, actions) {
|
|
83
|
+
for (const field of ['name', 'description', 'author']) {
|
|
84
|
+
if (!isNonEmptyString(metadata[field])) {
|
|
85
|
+
return fail(`metadata.${field} must be a non-empty string, got ${describeYamlValue(metadata[field])}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// A YAML scalar like `version: 1.0` parses as a number, which is a legitimate thing to write.
|
|
89
|
+
// Accept it and coerce at build time; refuse the shapes that cannot be a version at all.
|
|
90
|
+
if (!isNonEmptyString(metadata.version) && typeof metadata.version !== 'number') {
|
|
91
|
+
return fail(`metadata.version must be a string (quote it, e.g. "1.0.0"), got ${describeYamlValue(metadata.version)}`);
|
|
92
|
+
}
|
|
93
|
+
for (const [i, action] of actions.entries()) {
|
|
94
|
+
if (typeof action !== 'object' || action === null || Array.isArray(action)) {
|
|
95
|
+
return fail(`actions[${i}] must be a map with id, method, path and script, got ${describeYamlValue(action)}`);
|
|
96
|
+
}
|
|
97
|
+
const label = isNonEmptyString(action.id) ? `"${action.id}"` : `at index ${i}`;
|
|
98
|
+
for (const field of ['id', 'method', 'path', 'script']) {
|
|
99
|
+
if (!isNonEmptyString(action[field])) {
|
|
100
|
+
return fail(`Action ${label}: ${field} must be a non-empty string, got ${describeYamlValue(action[field])}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// input/output are JSON Schema documents. A comma inside an unquoted flow-map description is
|
|
104
|
+
// the common way these stop being maps, and storing the wreckage means the action advertises
|
|
105
|
+
// an input contract nobody wrote.
|
|
106
|
+
for (const field of ['input', 'output']) {
|
|
107
|
+
const v = action[field];
|
|
108
|
+
if (v !== undefined && (typeof v !== 'object' || v === null || Array.isArray(v))) {
|
|
109
|
+
return fail(`Action ${label}: ${field} must be a JSON Schema map, got ${describeYamlValue(v)}`
|
|
110
|
+
+ '. A comma inside an unquoted flow map splits it into another entry — quote the text.');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
54
116
|
/**
|
|
55
117
|
* Validate a raw action's pricing (design: notes doc-r6tyr3o). `tollMorsels` is an optional
|
|
56
118
|
* anti-abuse burn (non-negative integer). `commercial` (optional) prices the call: `payMorsels`
|
|
@@ -150,10 +212,11 @@ export function buildExtensionRecordFromManifest(manifestYaml, scripts, config,
|
|
|
150
212
|
if (!Array.isArray(actions) || actions.length === 0) {
|
|
151
213
|
return { ok: false, status: 400, code: 'INVALID_MANIFEST', message: 'actions array is required and must not be empty' };
|
|
152
214
|
}
|
|
215
|
+
// Type-check before ANY field is read as a string — see validateManifestShape.
|
|
216
|
+
const shapeErr = validateManifestShape(metadata, actions);
|
|
217
|
+
if (shapeErr)
|
|
218
|
+
return shapeErr;
|
|
153
219
|
for (const action of actions) {
|
|
154
|
-
if (!action.id || !action.method || !action.path || !action.script) {
|
|
155
|
-
return { ok: false, status: 400, code: 'INVALID_MANIFEST', message: 'Each action must have id, method, path, and script fields' };
|
|
156
|
-
}
|
|
157
220
|
if (!scripts[action.script]) {
|
|
158
221
|
return { ok: false, status: 400, code: 'MISSING_SCRIPT',
|
|
159
222
|
message: `Script "${action.script}" referenced in action "${action.id}" not found in scripts object` };
|
|
@@ -186,7 +249,8 @@ export function buildExtensionRecordFromManifest(manifestYaml, scripts, config,
|
|
|
186
249
|
const manifestSchedules = manifest.schedules;
|
|
187
250
|
const record = {
|
|
188
251
|
name: metadata.name,
|
|
189
|
-
version:
|
|
252
|
+
// Coerced, not cast: `version: 1.0` is a number in YAML and validateManifestShape allows it.
|
|
253
|
+
version: String(metadata.version),
|
|
190
254
|
description: metadata.description,
|
|
191
255
|
author: metadata.author,
|
|
192
256
|
status: 'inactive',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../src/routes/extensions/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../src/routes/extensions/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/routes/extensions/metered-response.ts
|
|
3
|
+
* @description Turning one {@link MeteredOutcome} into an HTTP response.
|
|
4
|
+
*
|
|
5
|
+
* The decision is made once, in `services/metered-access.ts`. This is the other side of that split:
|
|
6
|
+
* status codes and wording, which are genuinely a door's business and differ between them — the raw
|
|
7
|
+
* route names the listings to contract, the app-tool route offers a checkout, MCP renders text. What
|
|
8
|
+
* must NOT differ is whether the call was allowed and what it cost, and keeping that out of here is
|
|
9
|
+
* the point.
|
|
10
|
+
*
|
|
11
|
+
* `no_right` is deliberately absent: it is the one outcome every door answers differently, and a
|
|
12
|
+
* default would let a door skip saying anything useful.
|
|
13
|
+
* @structure respondMeteredRefusal · meteredRefusalText
|
|
14
|
+
* @version-history
|
|
15
|
+
* v1.0.0 — 2026-07-28 — Split out when the metered chokepoint stopped writing HTTP itself.
|
|
16
|
+
*/
|
|
17
|
+
import type { Response } from 'express';
|
|
18
|
+
import type { AimeatConfig } from '../../config.js';
|
|
19
|
+
import type { MeteredOutcome } from '../../services/metered-access.js';
|
|
20
|
+
/** A refusal is anything that is neither a settled call, a free one, nor "you hold no right". */
|
|
21
|
+
type Refusal = Exclude<MeteredOutcome, {
|
|
22
|
+
kind: 'settled';
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'free_owner';
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'no_right';
|
|
27
|
+
}>;
|
|
28
|
+
/** The status + code + human sentence for one refusal, without deciding how to transmit it. */
|
|
29
|
+
export declare function meteredRefusalText(outcome: Refusal, label: string): {
|
|
30
|
+
status: number;
|
|
31
|
+
code: string;
|
|
32
|
+
message: string;
|
|
33
|
+
};
|
|
34
|
+
/** Send a refusal. Payment-shaped refusals carry the x402 challenge; a rate limit and a failure do not. */
|
|
35
|
+
export declare function respondMeteredRefusal(config: AimeatConfig, res: Response, outcome: Refusal, label: string): void;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=metered-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metered-response.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/metered-response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,iGAAiG;AACjG,KAAK,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAE5G,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAgDrH;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIhH"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { error } from '../../middleware/envelope.js';
|
|
2
|
+
import { paymentChallenge } from '../../commerce/x402.js';
|
|
3
|
+
import { formatMoneyMajor } from '../../commerce/money.js';
|
|
4
|
+
/** The status + code + human sentence for one refusal, without deciding how to transmit it. */
|
|
5
|
+
export function meteredRefusalText(outcome, label) {
|
|
6
|
+
switch (outcome.kind) {
|
|
7
|
+
case 'inactive': {
|
|
8
|
+
const e = outcome.entitlement;
|
|
9
|
+
return { status: 402, code: 'ENTITLEMENT_INACTIVE',
|
|
10
|
+
message: `Your EXCHANGE entitlement for ${label} is ${e.state} (contract ${e.contractRef}).` };
|
|
11
|
+
}
|
|
12
|
+
case 'refused_rate': {
|
|
13
|
+
const e = outcome.entitlement;
|
|
14
|
+
return { status: 429, code: 'RATE_LIMITED',
|
|
15
|
+
message: `Your EXCHANGE subscription for ${label} is over its rate limit — retry shortly (contract ${e.contractRef}).` };
|
|
16
|
+
}
|
|
17
|
+
case 'refused_budget': {
|
|
18
|
+
const e = outcome.entitlement;
|
|
19
|
+
const cap = e.unit === 'money'
|
|
20
|
+
? `${formatMoneyMajor(e.budget.capUnits ?? 0)} ${e.currency ?? ''}`.trim()
|
|
21
|
+
: `${e.budget.capUnits} morsel`;
|
|
22
|
+
return { status: 402, code: 'BUDGET_EXHAUSTED',
|
|
23
|
+
message: `Your EXCHANGE entitlement for ${label} has spent its ${cap} budget (contract ${e.contractRef}).` };
|
|
24
|
+
}
|
|
25
|
+
case 'refused_grant_cap': {
|
|
26
|
+
const g = outcome.entitlement.grant;
|
|
27
|
+
const unit = outcome.entitlement.unit === 'money' ? (outcome.entitlement.currency ?? '') : 'morsel';
|
|
28
|
+
return { status: 402, code: 'GRANT_EXHAUSTED',
|
|
29
|
+
message: `Your access to ${label} is carried by the provider, and that grant has reached the `
|
|
30
|
+
+ `${g.capCarriedUnits} ${unit} ceiling they set. Ask them to extend it, or take a contract of your own.` };
|
|
31
|
+
}
|
|
32
|
+
case 'insufficient':
|
|
33
|
+
return { status: 402, code: 'INSUFFICIENT_MORSELS',
|
|
34
|
+
message: outcome.carried
|
|
35
|
+
? `This call burns a ${outcome.needed}-morsel pacing toll, which the provider carries for you `
|
|
36
|
+
+ 'under their grant, and their balance does not cover it right now. Morsels replenish daily.'
|
|
37
|
+
: `This call needs ${outcome.needed} morsels and the balance does not cover it. Morsels replenish `
|
|
38
|
+
+ 'daily; the pacing toll bounds how fast a capability can be called, whatever it is paid in.' };
|
|
39
|
+
case 'scope_required':
|
|
40
|
+
return { status: 403, code: 'SCOPE_DENIED',
|
|
41
|
+
message: `This app may not spend on your behalf. It needs the "${outcome.scope}" permission, `
|
|
42
|
+
+ 'which you can grant it from Profile > Access. Reading your data and buying with your '
|
|
43
|
+
+ 'money are separate permissions.' };
|
|
44
|
+
case 'app_cap_reached':
|
|
45
|
+
return { status: 402, code: 'APP_SPEND_CAP',
|
|
46
|
+
message: `This app has spent the ${outcome.capMorsels}-morsel limit you set for it `
|
|
47
|
+
+ `(${outcome.spentMorsels} used). Raise or clear the limit in Profile > Access to let it `
|
|
48
|
+
+ 'keep buying on your behalf.' };
|
|
49
|
+
case 'settlement_failed':
|
|
50
|
+
return { status: 500, code: 'SETTLEMENT_FAILED',
|
|
51
|
+
message: `Payment for ${label} could not be settled (${outcome.reason}); you were not charged.` };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Send a refusal. Payment-shaped refusals carry the x402 challenge; a rate limit and a failure do not. */
|
|
55
|
+
export function respondMeteredRefusal(config, res, outcome, label) {
|
|
56
|
+
const { status, code, message } = meteredRefusalText(outcome, label);
|
|
57
|
+
const body = error(config.nodeId, code, message);
|
|
58
|
+
res.status(status).json(status === 402 ? { ...body, ...paymentChallenge(config) } : body);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=metered-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metered-response.js","sourceRoot":"","sources":["../../../../src/routes/extensions/metered-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/routes/extensions/pacing.ts
|
|
3
|
+
* @description The pacing burn: morsels spent per metered call to bound the RATE at which a capability
|
|
4
|
+
* can be consumed, independent of how it is paid for.
|
|
5
|
+
*
|
|
6
|
+
* Morsels and money are two different things doing two different jobs. Money moves value to the
|
|
7
|
+
* provider. Morsels regenerate on a daily allowance with a hard ceiling, so burning them per call puts
|
|
8
|
+
* an absolute floor under how fast anything can be consumed — which is the one property money does not
|
|
9
|
+
* have. A runaway loop against a money-priced capability drains a budget at machine speed and stops
|
|
10
|
+
* only when the money runs out; the same loop against a paced capability stops at the daily ceiling.
|
|
11
|
+
*
|
|
12
|
+
* WHY THIS FILE EXISTS. The toll used to live inside `enforcePaywall`, which guards exactly one of the
|
|
13
|
+
* four metered call paths (raw extension invokes). App-tool calls, exchange runs, agent work and the
|
|
14
|
+
* MCP run tools all reach settlement through `settleMeteredCoordinate` directly and were never paced at
|
|
15
|
+
* all. The rule this file encodes: money, metering and abuse limits belong at the chokepoint EVERY path
|
|
16
|
+
* shares, never on one surface. Adding a new metered surface must not mean re-deriving this.
|
|
17
|
+
* @structure resolvePacingToll · burnPacingToll (express wrapper over the shared burn)
|
|
18
|
+
* @usage
|
|
19
|
+
* const paced = await burnPacingToll({ config, storage, callerGaii, providerOwner, label, toll, res });
|
|
20
|
+
* if (!paced.ok) return { ok: false }; // 402 already sent
|
|
21
|
+
* @version-history
|
|
22
|
+
* v1.3.0 — 2026-07-28 — The burn moved to services/metered-settlement.ts so the chokepoint can
|
|
23
|
+
* reach it without an Express response; this is a wrapper over it, not a second implementation.
|
|
24
|
+
* v1.2.0 — 2026-07-27 — The burn is filed under the OWNER whose balance moved, with the caller named
|
|
25
|
+
* as initiator — an agent's toll used to land in a ledger its payer never reads.
|
|
26
|
+
* v1.1.0 — 2026-07-27 — `payerGaii`: on an EXCHANGE grant the PROVIDER burns the toll, because a
|
|
27
|
+
* member carried by a provider is not paying half a price they were told was covered — and dropping
|
|
28
|
+
* the burn instead would hand them the one thing a money budget cannot bound.
|
|
29
|
+
* v1.0.0 — 2026-07-25 — Extracted from the extension paywall and moved to the shared chokepoint, so a
|
|
30
|
+
* money-only contract is paced too (it previously had no morsel brake of any kind).
|
|
31
|
+
*/
|
|
1
32
|
import type { Response } from 'express';
|
|
2
33
|
import type { AimeatConfig } from '../../config.js';
|
|
3
34
|
import type { Storage } from '../../storage/interface.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pacing.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/pacing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pacing.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/pacing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAM1D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAMnG;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACzF,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;CAC5C,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAgB3B"}
|
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file src/routes/extensions/pacing.ts
|
|
3
|
-
* @description The pacing burn: morsels spent per metered call to bound the RATE at which a capability
|
|
4
|
-
* can be consumed, independent of how it is paid for.
|
|
5
|
-
*
|
|
6
|
-
* Morsels and money are two different things doing two different jobs. Money moves value to the
|
|
7
|
-
* provider. Morsels regenerate on a daily allowance with a hard ceiling, so burning them per call puts
|
|
8
|
-
* an absolute floor under how fast anything can be consumed — which is the one property money does not
|
|
9
|
-
* have. A runaway loop against a money-priced capability drains a budget at machine speed and stops
|
|
10
|
-
* only when the money runs out; the same loop against a paced capability stops at the daily ceiling.
|
|
11
|
-
*
|
|
12
|
-
* WHY THIS FILE EXISTS. The toll used to live inside `enforcePaywall`, which guards exactly one of the
|
|
13
|
-
* four metered call paths (raw extension invokes). App-tool calls, exchange runs, agent work and the
|
|
14
|
-
* MCP run tools all reach settlement through `settleMeteredCoordinate` directly and were never paced at
|
|
15
|
-
* all. The rule this file encodes: money, metering and abuse limits belong at the chokepoint EVERY path
|
|
16
|
-
* shares, never on one surface. Adding a new metered surface must not mean re-deriving this.
|
|
17
|
-
* @structure resolvePacingToll · burnPacingToll
|
|
18
|
-
* @usage
|
|
19
|
-
* const paced = await burnPacingToll({ config, storage, callerGaii, providerOwner, label, toll, res });
|
|
20
|
-
* if (!paced.ok) return { ok: false }; // 402 already sent
|
|
21
|
-
* @version-history
|
|
22
|
-
* v1.0.0 — 2026-07-25 — Extracted from the extension paywall and moved to the shared chokepoint, so a
|
|
23
|
-
* money-only contract is paced too (it previously had no morsel brake of any kind).
|
|
24
|
-
*/
|
|
25
|
-
import { randomUUID } from 'node:crypto';
|
|
26
1
|
import { error } from '../../middleware/envelope.js';
|
|
27
2
|
import { paymentChallenge } from '../../commerce/x402.js';
|
|
3
|
+
import { burnPacingTollFor } from '../../services/metered-settlement.js';
|
|
4
|
+
import { ownerGhiiOf } from '../../utils/gaii.js';
|
|
28
5
|
/**
|
|
29
6
|
* How many morsels this call burns. A per-capability value wins when the source declares one; otherwise
|
|
30
7
|
* the node's default applies, so pacing is a property of the NODE rather than of each seller's memory.
|
|
@@ -52,10 +29,9 @@ export async function burnPacingToll(args) {
|
|
|
52
29
|
const { config, storage, callerGaii, providerOwner, label, toll, res } = args;
|
|
53
30
|
if (toll <= 0)
|
|
54
31
|
return { ok: true };
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const burned = await storage.debitBalance(callerGaii, toll);
|
|
32
|
+
if (providerOwner && ownerGhiiOf(callerGaii).split('@')[0] === providerOwner)
|
|
33
|
+
return { ok: true };
|
|
34
|
+
const burned = await burnPacingTollFor({ config, storage, caller: callerGaii, label, toll, payer: null });
|
|
59
35
|
if (!burned) {
|
|
60
36
|
res.status(402).json({
|
|
61
37
|
...error(config.nodeId, 'INSUFFICIENT_MORSELS', `This call burns a ${toll}-morsel pacing toll and your balance does not cover it. Morsels replenish `
|
|
@@ -64,10 +40,6 @@ export async function burnPacingToll(args) {
|
|
|
64
40
|
});
|
|
65
41
|
return { ok: false };
|
|
66
42
|
}
|
|
67
|
-
await storage.addTransaction({
|
|
68
|
-
id: `pacing-${randomUUID()}`, gaii: callerGaii, type: 'extension_toll', amount: -toll,
|
|
69
|
-
trackingCode: `pacing:${label}`, timestamp: new Date().toISOString(),
|
|
70
|
-
});
|
|
71
43
|
return { ok: true };
|
|
72
44
|
}
|
|
73
45
|
//# sourceMappingURL=pacing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pacing.js","sourceRoot":"","sources":["../../../../src/routes/extensions/pacing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pacing.js","sourceRoot":"","sources":["../../../../src/routes/extensions/pacing.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoB,EAAE,QAAmC;IACzF,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC;QACvF,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAGpC;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9E,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,aAAa,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAElG,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAC5C,qBAAqB,IAAI,4EAA4E;kBACnG,qFAAqF,CAAC;YAC1F,GAAG,gBAAgB,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -12,6 +12,12 @@ export interface PaywallOutcome {
|
|
|
12
12
|
ok: boolean;
|
|
13
13
|
refund?: () => Promise<void>;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* How a caller names WHICH product a shared capability is being called as. A header rather than a body
|
|
17
|
+
* field: the body of a raw invoke is the extension's own input, governed by the action's input schema,
|
|
18
|
+
* and a routing hint has no business inside data the provider validates.
|
|
19
|
+
*/
|
|
20
|
+
export declare const APP_TOOL_HEADER = "x-aimeat-app-tool";
|
|
15
21
|
/**
|
|
16
22
|
* Gate a raw extension invoke. Order: owner-free → anti-abuse toll (burn) → free (no commercial) →
|
|
17
23
|
* money token (Phase 3; currently 402) → morsel payment (atomic debit-caller + credit-owner).
|
|
@@ -25,6 +31,16 @@ export declare function enforcePaywall(args: {
|
|
|
25
31
|
res: Response;
|
|
26
32
|
/** `x-aimeat-pay-token` header — a one-time token minted by a settled ext-call checkout (D1). */
|
|
27
33
|
payToken?: string;
|
|
34
|
+
/** `x-aimeat-internal-pass` header — this call was already settled by the app-tool route. */
|
|
35
|
+
internalPass?: string;
|
|
36
|
+
/** `x-aimeat-app-tool` header — which product a caller holding several means. Validated, never trusted. */
|
|
37
|
+
namedAppTool?: string;
|
|
38
|
+
/** The session behind the request — a hosted app needs an explicit permission to spend. */
|
|
39
|
+
session?: {
|
|
40
|
+
roles: string[];
|
|
41
|
+
scopes: string[];
|
|
42
|
+
appGrantId?: string | null;
|
|
43
|
+
} | null;
|
|
28
44
|
}): Promise<PaywallOutcome>;
|
|
29
45
|
export {};
|
|
30
46
|
//# sourceMappingURL=paywall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paywall.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/paywall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paywall.d.ts","sourceRoot":"","sources":["../../../../src/routes/extensions/paywall.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAYlE,KAAK,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAID;;;;GAIG;AACH,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAiDnD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACpF,GAAG,OAAO,CAAC,cAAc,CAAC,CAkL1B"}
|