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
|
@@ -27,6 +27,7 @@ import { PresenceDot } from '/components/PresenceDot.js';
|
|
|
27
27
|
import * as orgService from '/js/services/organisms.js';
|
|
28
28
|
import { fmtDate, orgInitials, relTime } from '/views/profile/organisms/helpers.js';
|
|
29
29
|
import { InvitePanel, PendingInvites } from '/views/profile/organisms/invite-panel.js';
|
|
30
|
+
import { swallowed } from '/js/swallowed.js';
|
|
30
31
|
|
|
31
32
|
/** Inline per-member workspace-role editor: every manageable workspace with a
|
|
32
33
|
* none/viewer/contributor select. Changes apply immediately (grant replaces, none revokes). */
|
|
@@ -92,13 +93,13 @@ export function OrgMemberManager({ org, ghii, canManage, isCreator, showToast, c
|
|
|
92
93
|
const [accessEditFor, setAccessEditFor] = useState(null); // bare owner name whose access panel is open
|
|
93
94
|
|
|
94
95
|
const load = useCallback(async () => {
|
|
95
|
-
const tasks = [orgService.listMembers(orgId).catch(()
|
|
96
|
+
const tasks = [orgService.listMembers(orgId).catch(err => { swallowed('members: toGhii', err); return null; })];
|
|
96
97
|
if (canManage) {
|
|
97
98
|
tasks.push(
|
|
98
|
-
orgService.listJoinRequests(orgId).catch(()
|
|
99
|
-
orgService.listMembers(orgId, 'banned').catch(()
|
|
100
|
-
orgService.listInvitations(orgId).catch(()
|
|
101
|
-
orgService.listEmailInvitations(orgId).catch(()
|
|
99
|
+
orgService.listJoinRequests(orgId).catch(err => { swallowed('members: toGhii', err); return null; }),
|
|
100
|
+
orgService.listMembers(orgId, 'banned').catch(err => { swallowed('members: toGhii', err); return null; }),
|
|
101
|
+
orgService.listInvitations(orgId).catch(err => { swallowed('members: toGhii', err); return null; }),
|
|
102
|
+
orgService.listEmailInvitations(orgId).catch(err => { swallowed('members: toGhii', err); return null; }),
|
|
102
103
|
);
|
|
103
104
|
}
|
|
104
105
|
const [mb, rq, bn, inv, eminv] = await Promise.all(tasks);
|
|
@@ -142,7 +143,7 @@ export function OrgMemberManager({ org, ghii, canManage, isCreator, showToast, c
|
|
|
142
143
|
setWsAccess(map);
|
|
143
144
|
setWsOptions((wss || []).map(w => ({ id: w.id, name: w.name || w.id })));
|
|
144
145
|
}
|
|
145
|
-
} catch {
|
|
146
|
+
} catch (err) { swallowed('members: add', err); }
|
|
146
147
|
})();
|
|
147
148
|
return () => { cancelled = true; };
|
|
148
149
|
}, [orgId, show, accessTick]);
|
|
@@ -232,7 +232,7 @@ function loadOpts(storageKey) {
|
|
|
232
232
|
}
|
|
233
233
|
function saveOpts(storageKey, opts) {
|
|
234
234
|
if (!storageKey) return;
|
|
235
|
-
try { localStorage.setItem(`aimeat.mm.${storageKey}`, JSON.stringify(opts)); } catch { /* quota/private mode — non-fatal */ }
|
|
235
|
+
try { localStorage.setItem(`aimeat.mm.${storageKey}`, JSON.stringify(opts)); } catch { /* quota/private mode — non-fatal */ } // eslint-disable-line aimeat/no-silent-catch -- quota/private mode — non-fatal
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
/**
|
|
@@ -23,6 +23,7 @@ import * as orgService from '/js/services/organisms.js';
|
|
|
23
23
|
import { listPosts, createPost } from '/js/services/boards.js';
|
|
24
24
|
import { copyToClipboard } from '/js/utils.js';
|
|
25
25
|
import { relTime } from '/views/profile/organisms/helpers.js';
|
|
26
|
+
import { swallowed } from '/js/swallowed.js';
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* Content search inside an organism — case-insensitive substring over the records + documents of
|
|
@@ -42,7 +43,7 @@ export function OrgSearch({ orgId, onOpenWorkspace }) {
|
|
|
42
43
|
setBusy(true);
|
|
43
44
|
const tid = setTimeout(async () => {
|
|
44
45
|
try { const r = await orgService.searchOrganism(orgId, query); if (!cancelled) setResults(r?.data?.results || []); }
|
|
45
|
-
catch { if (!cancelled) setResults([]); }
|
|
46
|
+
catch (err) { swallowed('panels', err); if (!cancelled) setResults([]); }
|
|
46
47
|
finally { if (!cancelled) setBusy(false); }
|
|
47
48
|
}, 220);
|
|
48
49
|
return () => { cancelled = true; clearTimeout(tid); };
|
|
@@ -51,7 +52,7 @@ export function OrgSearch({ orgId, onOpenWorkspace }) {
|
|
|
51
52
|
// Open a hit at the exact record/document: stash the deep-link the workspace reads on mount, then
|
|
52
53
|
// navigate to that workspace (its openDoc effect resolves namespace → space tab + opens the item).
|
|
53
54
|
const openHit = (r) => {
|
|
54
|
-
try { sessionStorage.setItem(`aimeat.ws.${orgId}.${r.ws}.openDoc`, JSON.stringify({ namespace: r.namespace, id: r.id })); } catch { /* noop */ }
|
|
55
|
+
try { sessionStorage.setItem(`aimeat.ws.${orgId}.${r.ws}.openDoc`, JSON.stringify({ namespace: r.namespace, id: r.id })); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
55
56
|
onOpenWorkspace?.(r.ws);
|
|
56
57
|
};
|
|
57
58
|
|
|
@@ -90,7 +91,7 @@ export function IncomingInvitations({ showToast, onChanged }) {
|
|
|
90
91
|
const [invites, setInvites] = useState([]);
|
|
91
92
|
const [busy, setBusy] = useState(false);
|
|
92
93
|
const load = useCallback(async () => {
|
|
93
|
-
const r = await orgService.listMyInvitations().catch(()
|
|
94
|
+
const r = await orgService.listMyInvitations().catch(err => { swallowed('panels: IncomingInvitations', err); return null; });
|
|
94
95
|
setInvites(r?.data?.invitations || []);
|
|
95
96
|
}, []);
|
|
96
97
|
useEffect(() => { load(); }, [load]);
|
|
@@ -31,6 +31,7 @@ import * as orgService from '/js/services/organisms.js';
|
|
|
31
31
|
import { listAgents, offersWorkspaceContract, contractNamesOf, adoptContractTask } from '/js/services/agents.js';
|
|
32
32
|
import { Mermaid } from '/components/Mermaid.js';
|
|
33
33
|
import { ContactPicker } from '/components/ContactPicker.js';
|
|
34
|
+
import { swallowed } from '/js/swallowed.js';
|
|
34
35
|
|
|
35
36
|
/* Participants panel — who takes part in this workspace, as a node → owner → agents chart plus a
|
|
36
37
|
* listing. Built from the records' identity traces (humans + their agents) + organism membership.
|
|
@@ -53,7 +54,7 @@ export function ParticipantsPanel({ orgId, wsId, showToast }) {
|
|
|
53
54
|
const [engagements, setEngagements] = useState([]);
|
|
54
55
|
const [retireBusy, setRetireBusy] = useState('');
|
|
55
56
|
useEffect(() => {
|
|
56
|
-
listAgents().then(a => setContractAgents((a || []).filter(offersWorkspaceContract))).catch(
|
|
57
|
+
listAgents().then(a => setContractAgents((a || []).filter(offersWorkspaceContract))).catch(err => { swallowed('participants-panel: ParticipantsPanel', err); });
|
|
57
58
|
}, []);
|
|
58
59
|
// The engagement for (agent, contract) in THIS workspace, or undefined. contract '' = bare marker.
|
|
59
60
|
const engFor = (a, contract) => engagements.find(e => e.agent === a.gaii && (e.contract || '') === (contract || ''));
|
|
@@ -64,7 +65,7 @@ export function ParticipantsPanel({ orgId, wsId, showToast }) {
|
|
|
64
65
|
const key = `${a.gaii}:${contract || ''}`;
|
|
65
66
|
setAdoptBusy(key);
|
|
66
67
|
try {
|
|
67
|
-
await orgService.activateEngagement(orgId, wsId, a.gaii, contract).catch(
|
|
68
|
+
await orgService.activateEngagement(orgId, wsId, a.gaii, contract).catch(err => { swallowed('participants-panel: adopt', err); });
|
|
68
69
|
const r = await adoptContractTask(a.name, { organismId: orgId, ws: wsId, contract });
|
|
69
70
|
if (r?.ok === false) showToast?.(r?.error?.message || (t('organisms.adoptFailed') || 'Could not queue the adoption task'));
|
|
70
71
|
else showToast?.((t('organisms.adoptQueued') || 'Adoption task queued for {agent} — it provisions the contract and reports back').replace('{agent}', a.display_name || a.name));
|
|
@@ -93,7 +94,7 @@ export function ParticipantsPanel({ orgId, wsId, showToast }) {
|
|
|
93
94
|
const actions = names.length ? names : [''];
|
|
94
95
|
setRetireBusy(`${a.gaii}:*`);
|
|
95
96
|
try {
|
|
96
|
-
for (const c of actions) await orgService.retireEngagement(orgId, wsId, a.gaii, c).catch(
|
|
97
|
+
for (const c of actions) await orgService.retireEngagement(orgId, wsId, a.gaii, c).catch(err => { swallowed('participants-panel: retireAll', err); });
|
|
97
98
|
showToast?.((t('organisms.retired') || '{agent} retired from this workspace').replace('{agent}', a.display_name || a.name));
|
|
98
99
|
await refreshEngagements();
|
|
99
100
|
} finally { setRetireBusy(''); }
|
|
@@ -105,30 +106,30 @@ export function ParticipantsPanel({ orgId, wsId, showToast }) {
|
|
|
105
106
|
const actions = names.length ? names : [''];
|
|
106
107
|
setAdoptBusy(`${a.gaii}:*`);
|
|
107
108
|
try {
|
|
108
|
-
for (const c of actions) await orgService.activateEngagement(orgId, wsId, a.gaii, c).catch(
|
|
109
|
-
await adoptContractTask(a.name, { organismId: orgId, ws: wsId, contract: actions[0] }).catch(
|
|
109
|
+
for (const c of actions) await orgService.activateEngagement(orgId, wsId, a.gaii, c).catch(err => { swallowed('participants-panel: readoptAll', err); });
|
|
110
|
+
await adoptContractTask(a.name, { organismId: orgId, ws: wsId, contract: actions[0] }).catch(err => { swallowed('participants-panel: readoptAll', err); });
|
|
110
111
|
showToast?.((t('organisms.broughtBack') || '{agent} is working here again').replace('{agent}', a.display_name || a.name));
|
|
111
112
|
await refreshEngagements();
|
|
112
113
|
} finally { setAdoptBusy(''); }
|
|
113
114
|
};
|
|
114
|
-
const refreshEngagements = () => orgService.getWorkspaceEngagements(orgId, wsId).then(setEngagements).catch(
|
|
115
|
+
const refreshEngagements = () => orgService.getWorkspaceEngagements(orgId, wsId).then(setEngagements).catch(err => { swallowed('participants-panel: refreshEngagements', err); });
|
|
115
116
|
useEffect(() => {
|
|
116
117
|
let cancelled = false;
|
|
117
118
|
const fetchIt = () => {
|
|
118
|
-
orgService.getWorkspaceParticipants(orgId, wsId).then(d => { if (!cancelled) setData(d); }).catch(
|
|
119
|
-
orgService.getWorkspaceEngagements(orgId, wsId).then(e => { if (!cancelled) setEngagements(e); }).catch(
|
|
119
|
+
orgService.getWorkspaceParticipants(orgId, wsId).then(d => { if (!cancelled) setData(d); }).catch(err => { swallowed('participants-panel: fetchIt', err); });
|
|
120
|
+
orgService.getWorkspaceEngagements(orgId, wsId).then(e => { if (!cancelled) setEngagements(e); }).catch(err => { swallowed('participants-panel: fetchIt', err); });
|
|
120
121
|
};
|
|
121
122
|
fetchIt();
|
|
122
123
|
const off = onLiveUpdate(['organisms'], fetchIt);
|
|
123
124
|
return () => { cancelled = true; off(); };
|
|
124
125
|
}, [orgId, wsId]);
|
|
125
126
|
const isManager = !!(data && (data.nodes || []).some(n => (n.owners || []).some(o => o.isSelf && o.isCreator)));
|
|
126
|
-
const loadAccess = useCallback(() => orgService.getWorkspaceAccess(orgId, wsId).then(setAccess).catch(
|
|
127
|
+
const loadAccess = useCallback(() => orgService.getWorkspaceAccess(orgId, wsId).then(setAccess).catch(err => { swallowed('participants-panel: fetchIt', err); }), [orgId, wsId]);
|
|
127
128
|
useEffect(() => { if (isManager) loadAccess(); }, [isManager, orgId, wsId, data, loadAccess]); if (!data || !(data.nodes || []).length) return null;
|
|
128
129
|
const owners = [];
|
|
129
130
|
for (const n of data.nodes) for (const o of (n.owners || [])) owners.push({ ...o, node: n.id, isLocalNode: n.isLocal });
|
|
130
131
|
|
|
131
|
-
const after = async (p) => { setBusy(true); try { await p; await loadAccess(); } catch {
|
|
132
|
+
const after = async (p) => { setBusy(true); try { await p; await loadAccess(); } catch (err) { swallowed('participants-panel: after', err); } finally { setBusy(false); } };
|
|
132
133
|
const doGrant = (g, r) => { const name = (g || '').trim(); if (name) { after(orgService.grantWorkspaceRole(orgId, wsId, name, r)); setGrantee(''); } };
|
|
133
134
|
const doRevoke = (g) => after(orgService.revokeWorkspaceRole(orgId, wsId, g));
|
|
134
135
|
const doDecide = (requester, decision) => after(orgService.decideWorkspaceAccess(orgId, wsId, requester, decision));
|
|
@@ -52,6 +52,7 @@ export function ReadmePanel({ markdown, canEdit, onSave, aiPromptSeed, kind, nam
|
|
|
52
52
|
const copyPrompt = async () => {
|
|
53
53
|
const prompt = buildAiPrompt(kind, name, aiPromptSeed);
|
|
54
54
|
try { await navigator.clipboard.writeText(prompt); setCopied(true); setTimeout(() => setCopied(false), 2500); }
|
|
55
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- clipboard may be blocked; the user can still type the README
|
|
55
56
|
catch { /* clipboard may be blocked; the user can still type the README */ }
|
|
56
57
|
};
|
|
57
58
|
|
|
@@ -21,6 +21,7 @@ import * as knowledgeService from '/js/services/knowledge.js';
|
|
|
21
21
|
import { EmptyState } from '/components/EmptyState.js';
|
|
22
22
|
import { SearchBar } from '/components/SearchBar.js';
|
|
23
23
|
import { fmtBytes } from '/js/format.js';
|
|
24
|
+
import { swallowed } from '/js/swallowed.js';
|
|
24
25
|
|
|
25
26
|
const SRC_ICON = { memory: '🧠', storage: '📎', knowledge: '📚' };
|
|
26
27
|
|
|
@@ -70,7 +71,7 @@ export function SourcesPanel({ orgId, wsId, showToast }) {
|
|
|
70
71
|
const r = await knowledgeService.discoverPackages({ limit: 50, sort: 'recent' });
|
|
71
72
|
setResults((r?.data?.packages || []).filter(p => !ql || String(p.name || '').toLowerCase().includes(ql)));
|
|
72
73
|
}
|
|
73
|
-
} catch { setResults([]); }
|
|
74
|
+
} catch (err) { swallowed('sources-panel', err); setResults([]); }
|
|
74
75
|
finally { setLoading(false); }
|
|
75
76
|
};
|
|
76
77
|
const searchRef = useRef(doSearch); searchRef.current = doSearch;
|
|
@@ -20,6 +20,7 @@ import { DocumentView, DocumentEditor } from '/views/profile/organisms/document.
|
|
|
20
20
|
import { WorkspaceComments } from '/views/profile/organisms/workspace-comments.js';
|
|
21
21
|
import { ColorPicker } from './color-picker.js';
|
|
22
22
|
import { groupDocs } from './helpers.js';
|
|
23
|
+
import { swallowed } from '/js/swallowed.js';
|
|
23
24
|
|
|
24
25
|
// A document-space: left index (section tree + documents, with an Unsorted group) + a main
|
|
25
26
|
// area showing the active document (view/edit). Sections nest via parentId; documents are
|
|
@@ -43,7 +44,7 @@ export function renderDocSpace(ctx, ot) {
|
|
|
43
44
|
const docItem = (d) => html`
|
|
44
45
|
<div class="pj-doc-item ${isActive(d) ? 'active' : ''} ${itemColor(ot.name, d.id) ? 'pj-colored pj-tag-' + itemColor(ot.name, d.id) : ''}" key=${'di' + d.id}
|
|
45
46
|
draggable=${true}
|
|
46
|
-
onDragStart=${(e) => { draggedDoc.current = { type: ot.name, id: d.id }; if (e.dataTransfer) { e.dataTransfer.effectAllowed = 'move'; try { e.dataTransfer.setData('text/plain', d.id); } catch {
|
|
47
|
+
onDragStart=${(e) => { draggedDoc.current = { type: ot.name, id: d.id }; if (e.dataTransfer) { e.dataTransfer.effectAllowed = 'move'; try { e.dataTransfer.setData('text/plain', d.id); } catch (err) { swallowed('doc-space: docItem', err); } } }}
|
|
47
48
|
onDragEnd=${() => { draggedDoc.current = null; }}>
|
|
48
49
|
<span class="pj-grip" title=${t('organisms.dragHint') || 'Drag into a section'}>⠿</span>
|
|
49
50
|
<${ColorPicker} value=${itemColor(ot.name, d.id)} onPick=${(c) => setItemColor(ot.name, d.id, c)} />
|
|
@@ -92,6 +92,7 @@ export function buildWorkspaceModel(ctx) {
|
|
|
92
92
|
|| Object.values(share.spaces || {}).some(Boolean) || Object.values(share.docs || {}).some(Boolean));
|
|
93
93
|
const copyShareLink = async (url) => {
|
|
94
94
|
try { await navigator.clipboard.writeText(window.location.origin + url); showToast(t('organisms.linkCopied') || 'Link copied'); }
|
|
95
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
|
|
95
96
|
catch { showToast(t('organisms.copyFailed') || 'Copy failed'); }
|
|
96
97
|
};
|
|
97
98
|
|
|
@@ -19,6 +19,7 @@ import { t } from '/js/i18n.js';
|
|
|
19
19
|
import { openAppSandboxed } from '/js/app-sandbox.js';
|
|
20
20
|
import { listApps } from '/js/services/apps.js';
|
|
21
21
|
import { saveWorkspaceApps } from '/js/services/organisms.js';
|
|
22
|
+
import { swallowed } from '/js/swallowed.js';
|
|
22
23
|
|
|
23
24
|
/** The launch URL for a pinned app, carrying the workspace context in the fragment. */
|
|
24
25
|
function launchHref(orgId, wsId, b) {
|
|
@@ -38,7 +39,7 @@ export function WorkspaceApps({ orgId, wsId, apps, canEdit, showToast, onChanged
|
|
|
38
39
|
useEffect(() => {
|
|
39
40
|
if (bound.length === 0 && !showPicker) return undefined;
|
|
40
41
|
let cancelled = false;
|
|
41
|
-
listApps().then(a => { if (!cancelled) setCatalog(a); }).catch(() => { if (!cancelled) setCatalog([]); });
|
|
42
|
+
listApps().then(a => { if (!cancelled) setCatalog(a); }).catch((err) => { swallowed('workspace-apps', err); if (!cancelled) setCatalog([]); });
|
|
42
43
|
return () => { cancelled = true; };
|
|
43
44
|
}, [bound.length, showPicker]);
|
|
44
45
|
|
|
@@ -58,7 +59,8 @@ export function WorkspaceApps({ orgId, wsId, apps, canEdit, showToast, onChanged
|
|
|
58
59
|
await saveWorkspaceApps(orgId, wsId, next.map(b => ({ owner: b.owner, filename: b.filename, ...(b.label ? { label: b.label } : {}) })));
|
|
59
60
|
showToast?.(t('organisms.apps.saved') || 'Workspace apps updated', 'success');
|
|
60
61
|
onChanged?.();
|
|
61
|
-
} catch {
|
|
62
|
+
} catch (err) {
|
|
63
|
+
swallowed('workspace-apps: save', err);
|
|
62
64
|
showToast?.(t('organisms.apps.saveError') || 'Could not update apps', 'error');
|
|
63
65
|
} finally { setBusy(false); }
|
|
64
66
|
};
|
|
@@ -19,6 +19,7 @@ const html = htm.bind(h);
|
|
|
19
19
|
import { t } from '/js/i18n.js';
|
|
20
20
|
import { dt } from '/js/format.js';
|
|
21
21
|
import * as orgService from '/js/services/organisms.js';
|
|
22
|
+
import { swallowed } from '/js/swallowed.js';
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Comment thread on one workspace object (record or document). Targeted by orgId+ws+space+instanceId.
|
|
@@ -36,13 +37,13 @@ export function WorkspaceComments({ orgId, ws, space, instanceId, showToast, bat
|
|
|
36
37
|
const [anchorQuote, setAnchorQuote] = useState('');
|
|
37
38
|
const [replyTo, setReplyTo] = useState(null); // { id, body } of the comment being replied to
|
|
38
39
|
const [busy, setBusy] = useState(false);
|
|
39
|
-
const me = (() => { try { return window.AIMEAT?.auth?.getSession?.() || {}; } catch { return {}; } })();
|
|
40
|
+
const me = (() => { try { return window.AIMEAT?.auth?.getSession?.() || {}; } catch (err) { swallowed('workspace-comments', err); return { }; } })();
|
|
40
41
|
const mine = (author) => author && (author === me.gaii || author === me.ghii);
|
|
41
42
|
|
|
42
43
|
const load = useCallback(async () => {
|
|
43
44
|
if (batched) { await onReload?.(); return; } // parent re-runs the batch → flows back via initialComments
|
|
44
45
|
if (!ws || !space || !instanceId) return;
|
|
45
|
-
const r = await orgService.listComments(orgId, ws, space, instanceId).catch(()
|
|
46
|
+
const r = await orgService.listComments(orgId, ws, space, instanceId).catch(err => { swallowed('workspace-comments: mine', err); return null; });
|
|
46
47
|
setComments(r?.data?.comments || []);
|
|
47
48
|
}, [orgId, ws, space, instanceId, batched, onReload]);
|
|
48
49
|
// Batched: keep local view in sync with the prop (undefined = still loading → null). Standalone: self-fetch.
|
|
@@ -34,6 +34,7 @@ import * as orgService from '/js/services/organisms.js';
|
|
|
34
34
|
import * as memoryService from '/js/services/memory.js';
|
|
35
35
|
import { fmtDate, relTime } from '/views/profile/organisms/helpers.js';
|
|
36
36
|
import { OrgSearch } from '/views/profile/organisms/panels.js';
|
|
37
|
+
import { swallowed } from '/js/swallowed.js';
|
|
37
38
|
|
|
38
39
|
/* Workspace list — an organism contains many workspaces (each an independent manifest + data set,
|
|
39
40
|
* namespaced under organism.{id}.w.{wsId}.*). Lists the registry (organism.{id}.meta.workspaces),
|
|
@@ -77,12 +78,12 @@ export function WorkspaceList({ org, showToast, onOpen, onCount }) {
|
|
|
77
78
|
if (Array.isArray(v.order)) setCustomOrder(v.order.filter(x => typeof x === 'string'));
|
|
78
79
|
if (['custom', 'name', 'newest'].includes(v.sort)) setSortMode(v.sort);
|
|
79
80
|
}
|
|
80
|
-
} catch {
|
|
81
|
+
} catch (err) { swallowed('workspace-list: WorkspaceList', err); }
|
|
81
82
|
})();
|
|
82
83
|
return () => { alive = false; };
|
|
83
84
|
}, [UI_PREFS_KEY]);
|
|
84
85
|
const savePrefs = useCallback((order, sort) => {
|
|
85
|
-
memoryService.createMemory(UI_PREFS_KEY, { order, sort }, 'private').catch(
|
|
86
|
+
memoryService.createMemory(UI_PREFS_KEY, { order, sort }, 'private').catch(err => { swallowed('workspace-list: WorkspaceList', err); });
|
|
86
87
|
}, [UI_PREFS_KEY]);
|
|
87
88
|
|
|
88
89
|
// Active workspaces sorted for display; archived ones stay in server order in their own section.
|
|
@@ -171,7 +172,7 @@ export function WorkspaceList({ org, showToast, onOpen, onCount }) {
|
|
|
171
172
|
useEffect(() => {
|
|
172
173
|
if (!showOverview) return;
|
|
173
174
|
let cancelled = false;
|
|
174
|
-
orgService.buildOrganismOverviewMermaid(orgId).then(c => { if (!cancelled) setOverview(c); }).catch(
|
|
175
|
+
orgService.buildOrganismOverviewMermaid(orgId).then(c => { if (!cancelled) setOverview(c); }).catch(err => { swallowed('workspace-list: decide', err); });
|
|
175
176
|
return () => { cancelled = true; };
|
|
176
177
|
}, [orgId, list, showOverview]);
|
|
177
178
|
// Re-load on organism changes, but DEBOUNCE: on a busy node dozens of agents emit 'organisms'
|
|
@@ -223,7 +224,7 @@ export function WorkspaceList({ org, showToast, onOpen, onCount }) {
|
|
|
223
224
|
};
|
|
224
225
|
|
|
225
226
|
// ── Export (download ZIP backup) + Import (upload a ZIP as a new workspace) ──
|
|
226
|
-
const jwt = () => { try { return window.AIMEAT?.auth?.getSession?.()?.jwt || ''; } catch { return ''; } };
|
|
227
|
+
const jwt = () => { try { return window.AIMEAT?.auth?.getSession?.()?.jwt || ''; } catch (err) { swallowed('workspace-list', err); return ''; } };
|
|
227
228
|
const fileRef = useRef(null);
|
|
228
229
|
const doExport = async (w) => {
|
|
229
230
|
try {
|
|
@@ -70,6 +70,7 @@ import { renderRecordSpace } from './workspace/record-space.js';
|
|
|
70
70
|
import { renderOverview, renderObjectives, renderWsSearchResults, renderOvSection } from './workspace/overview.js';
|
|
71
71
|
import { renderTabsNav, renderSpacesAdd, renderSettingsPanel, renderShareTab, renderReviewTab, renderActivityTab } from './workspace/panels.js';
|
|
72
72
|
import { buildBreadcrumb, buildWorkspaceModel } from './workspace/model.js';
|
|
73
|
+
import { swallowed } from '/js/swallowed.js';
|
|
73
74
|
|
|
74
75
|
/* ───────────────── Organism workspace (manifest-driven) ─────────────────
|
|
75
76
|
* Any organism can have a governed workspace. If it has no manifest yet, offer
|
|
@@ -89,7 +90,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
89
90
|
setWsName(name);
|
|
90
91
|
// Feed the home page's "Continue" list with a real display name.
|
|
91
92
|
recordRecent({ type: 'workspace', id: `${orgId}/${wsId}`, label: name || wsId, sub: org.name || '', data: { orgId, wsId } });
|
|
92
|
-
}).catch(
|
|
93
|
+
}).catch(err => { swallowed('workspace: name', err); });
|
|
93
94
|
return () => { cancelled = true; };
|
|
94
95
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- org.name only feeds recordRecent's display sub; the workspace-name fetch is intentionally keyed to orgId/wsId.
|
|
95
96
|
}, [orgId, wsId]); // Pop a document out into its own window (served by doc-solo.js) so several can sit side by side,
|
|
@@ -121,6 +122,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
121
122
|
try {
|
|
122
123
|
const raw = sessionStorage.getItem(docKey);
|
|
123
124
|
if (raw) { const v = JSON.parse(raw); if (v && v.type && v.id) return { type: v.type, mode: v.mode === 'edit' ? 'edit' : 'view', page: { id: v.id } }; }
|
|
125
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- noop
|
|
124
126
|
} catch { /* noop */ }
|
|
125
127
|
return null;
|
|
126
128
|
});
|
|
@@ -157,11 +159,11 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
157
159
|
// history never shows as unseen. Neutral gray badges only — red is reserved for errors.
|
|
158
160
|
const seenKey = 'aimeat.ws.' + orgId + '.' + wsId + '.seen';
|
|
159
161
|
const [seen, setSeen] = useState(() => {
|
|
160
|
-
try { const raw = localStorage.getItem(seenKey); return raw ? JSON.parse(raw) : null; } catch { return null; }
|
|
162
|
+
try { const raw = localStorage.getItem(seenKey); return raw ? JSON.parse(raw) : null; } catch { return null; } // eslint-disable-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
|
|
161
163
|
});
|
|
162
164
|
const markSeen = useCallback((tabId) => setSeen(prev => {
|
|
163
165
|
const next = { ...(prev || {}), [tabId]: new Date().toISOString() };
|
|
164
|
-
try { localStorage.setItem(seenKey, JSON.stringify(next)); } catch { /* noop */ }
|
|
166
|
+
try { localStorage.setItem(seenKey, JSON.stringify(next)); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
165
167
|
return next;
|
|
166
168
|
}), [seenKey]);
|
|
167
169
|
// Items (not raw events) changed since the tab's seen mark. The user's own non-agent edits
|
|
@@ -182,14 +184,14 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
182
184
|
|
|
183
185
|
const load = useCallback(async () => {
|
|
184
186
|
// In the archived view, request ONLY archived content (read-only); otherwise the normal active set.
|
|
185
|
-
const w = await orgService.getWorkspace(orgId, wsId, showArchived ? { archived: 'only' } : undefined).catch(()
|
|
187
|
+
const w = await orgService.getWorkspace(orgId, wsId, showArchived ? { archived: 'only' } : undefined).catch(err => { swallowed('workspace', err); return null; });
|
|
186
188
|
if (w && w.manifest) {
|
|
187
189
|
const [ap, cfg, secs, act, cols] = await Promise.all([
|
|
188
|
-
orgService.listApprovals(orgId, 'pending').catch(()
|
|
189
|
-
orgService.getConfig(orgId).catch(()
|
|
190
|
-
orgService.getAllSections(orgId, wsId).catch(()
|
|
190
|
+
orgService.listApprovals(orgId, 'pending').catch(err => { swallowed('workspace', err); return []; }),
|
|
191
|
+
orgService.getConfig(orgId).catch(err => { swallowed('workspace', err); return ({}); }),
|
|
192
|
+
orgService.getAllSections(orgId, wsId).catch(err => { swallowed('workspace', err); return ({}); }),
|
|
191
193
|
orgService.getWorkspaceActivity(orgId, wsId).catch(() => ({ events: [] })),
|
|
192
|
-
orgService.getAllColors(orgId, wsId).catch(()
|
|
194
|
+
orgService.getAllColors(orgId, wsId).catch(err => { swallowed('workspace', err); return ({}); }),
|
|
193
195
|
]);
|
|
194
196
|
setApprovals(ap); setGateOn(!!(cfg?.gates?.publish?.enabled)); setSectionsByType(secs);
|
|
195
197
|
setWsEvents(act?.events || []); setColorsByType(cols);
|
|
@@ -208,7 +210,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
208
210
|
let cancelled = false;
|
|
209
211
|
const loadGraph = async () => {
|
|
210
212
|
const [g, ov] = await Promise.all([
|
|
211
|
-
orgService.getWorkspaceGraph(orgId, wsId).catch(()
|
|
213
|
+
orgService.getWorkspaceGraph(orgId, wsId).catch(err => { swallowed('workspace: loadGraph', err); return null; }),
|
|
212
214
|
orgService.getWorkspaceOverviewFull(orgId, wsId).catch(() => ({ markdown: '', objectives: [] })),
|
|
213
215
|
]);
|
|
214
216
|
if (cancelled) return;
|
|
@@ -241,7 +243,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
241
243
|
let cancelled = false;
|
|
242
244
|
setWsSearching(true);
|
|
243
245
|
const tid = setTimeout(async () => {
|
|
244
|
-
const r = await orgService.searchOrganism(orgId, q, wsId).catch(()
|
|
246
|
+
const r = await orgService.searchOrganism(orgId, q, wsId).catch(err => { swallowed('workspace: onWsMapNav', err); return null; });
|
|
245
247
|
if (!cancelled) { setWsHits((r?.data?.results) || []); setWsSearching(false); }
|
|
246
248
|
}, 220); // debounce — instant feel without a request per keystroke
|
|
247
249
|
return () => { cancelled = true; clearTimeout(tid); };
|
|
@@ -251,7 +253,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
251
253
|
// filtered result list for the query you jumped from.
|
|
252
254
|
useEffect(() => {
|
|
253
255
|
const k = `aimeat.ws.${orgId}.${wsId}.search`;
|
|
254
|
-
try { const v = sessionStorage.getItem(k); if (v) { setWsQuery(v); sessionStorage.removeItem(k); } } catch { /* noop */ }
|
|
256
|
+
try { const v = sessionStorage.getItem(k); if (v) { setWsQuery(v); sessionStorage.removeItem(k); } } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
255
257
|
}, [orgId, wsId]);
|
|
256
258
|
|
|
257
259
|
// Deep-link from the librarian "Open" button: aimeat.ws.{org}.{ws}.openDoc = { namespace, id }.
|
|
@@ -261,11 +263,11 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
261
263
|
useEffect(() => {
|
|
262
264
|
if (!ws?.manifest) return;
|
|
263
265
|
let req = null;
|
|
264
|
-
try { req = JSON.parse(sessionStorage.getItem(openDocKey) || 'null'); } catch { req = null; }
|
|
266
|
+
try { req = JSON.parse(sessionStorage.getItem(openDocKey) || 'null'); } catch { req = null; } // eslint-disable-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
|
|
265
267
|
if (!req || !req.namespace || !req.id) return;
|
|
266
268
|
const ot = (ws.manifest.objectTypes || []).find(o => o.namespace === req.namespace);
|
|
267
269
|
if (ot) { setTab('space:' + ot.name); setActiveDoc({ type: ot.name, mode: 'view', page: { id: req.id } }); }
|
|
268
|
-
try { sessionStorage.removeItem(openDocKey); } catch { /* noop */ }
|
|
270
|
+
try { sessionStorage.removeItem(openDocKey); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
269
271
|
}, [ws, openDocKey]);
|
|
270
272
|
|
|
271
273
|
// Persist the open document (id only) so an F5 returns to it. Skip unsaved new docs (no id yet).
|
|
@@ -273,6 +275,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
273
275
|
try {
|
|
274
276
|
if (activeDoc?.type && activeDoc.page?.id) sessionStorage.setItem(docKey, JSON.stringify({ type: activeDoc.type, id: activeDoc.page.id, mode: activeDoc.mode }));
|
|
275
277
|
else sessionStorage.removeItem(docKey);
|
|
278
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- noop
|
|
276
279
|
} catch { /* noop */ }
|
|
277
280
|
}, [activeDoc, docKey]);
|
|
278
281
|
|
|
@@ -334,7 +337,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
334
337
|
useEffect(() => {
|
|
335
338
|
if (seen !== null || ws === undefined) return;
|
|
336
339
|
const next = { __base: new Date().toISOString() };
|
|
337
|
-
try { localStorage.setItem(seenKey, JSON.stringify(next)); } catch { /* noop */ }
|
|
340
|
+
try { localStorage.setItem(seenKey, JSON.stringify(next)); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
338
341
|
setSeen(next);
|
|
339
342
|
}, [seen, ws, seenKey]);
|
|
340
343
|
// Changes landing on the tab the user is LOOKING at are seen immediately — otherwise a draft
|
|
@@ -405,7 +408,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
405
408
|
if (sectionId) {
|
|
406
409
|
const secs = (sectionsByType[ot.name] || []).map(s => s.id === sectionId
|
|
407
410
|
? { ...s, documents: [...(s.documents || []).filter(d => d !== id), id] } : s);
|
|
408
|
-
await orgService.saveSections(orgId, wsId, ot.name, secs).catch(
|
|
411
|
+
await orgService.saveSections(orgId, wsId, ot.name, secs).catch(err => { swallowed('workspace: secs', err); });
|
|
409
412
|
}
|
|
410
413
|
// Reload, then open the just-saved document (view mode). renderDocSpace re-resolves the id
|
|
411
414
|
// to the fresh merged entry, so the new draft shows with its badge instead of the empty state.
|
|
@@ -441,7 +444,7 @@ export function Workspace({ org, wsId, showToast, onBack, onBackToList, initialS
|
|
|
441
444
|
const sectionsRef = useRef(sectionsByType); sectionsRef.current = sectionsByType;
|
|
442
445
|
const setSecName = (typeName, secId, name) =>
|
|
443
446
|
setSectionsByType(s => ({ ...s, [typeName]: (s[typeName] || []).map(x => x.id === secId ? { ...x, name } : x) }));
|
|
444
|
-
const commitSecName = (typeName) => { setEditingSec(null); orgService.saveSections(orgId, wsId, typeName, sectionsRef.current[typeName] || []).catch(
|
|
447
|
+
const commitSecName = (typeName) => { setEditingSec(null); orgService.saveSections(orgId, wsId, typeName, sectionsRef.current[typeName] || []).catch(err => { swallowed('workspace: commitSecName', err); }); };
|
|
445
448
|
|
|
446
449
|
// ── Optional color tags. Section colors live on the section object (persisted via updateSections);
|
|
447
450
|
// per-document/record colors live in a parallel meta.colors map (persisted via saveColors). ──
|
|
@@ -51,6 +51,7 @@ import { fmtDate, orgInitials, exportOrganismZip } from '/views/profile/organism
|
|
|
51
51
|
import { IncomingInvitations } from '/views/profile/organisms/panels.js';
|
|
52
52
|
import { OrganismHome } from '/views/profile/organisms/home.js';
|
|
53
53
|
import { Workspace } from '/views/profile/organisms/workspace.js';
|
|
54
|
+
import { swallowed } from '/js/swallowed.js';
|
|
54
55
|
|
|
55
56
|
export default function OrganismsTab({ session, showToast, onStats }) {
|
|
56
57
|
const { confirm, ConfirmUI } = useConfirm();
|
|
@@ -60,7 +61,9 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
60
61
|
const [archivedOpen, setArchivedOpen] = useState(false); // collapsible "Archived" section (closed by default)
|
|
61
62
|
// organism whose workspaces are open, then the specific workspace within it — both restored from
|
|
62
63
|
// sessionStorage so an F5 returns to where you were. openId set + openWs null = the workspace LIST.
|
|
64
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
|
|
63
65
|
const [openId, setOpenId] = useState(() => { try { return sessionStorage.getItem('aimeat.ws.openId') || null; } catch { return null; } });
|
|
66
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- a browser API refusing here IS the answer
|
|
64
67
|
const [openWs, setOpenWs] = useState(() => { try { return sessionStorage.getItem('aimeat.ws.openWs') || null; } catch { return null; } });
|
|
65
68
|
// Transient deep-link target from the organism mindmap: open this space's tab on first render of the
|
|
66
69
|
// workspace. In-memory only (not persisted) — an F5 lands on the workspace overview, not a stale tab.
|
|
@@ -123,8 +126,9 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
123
126
|
setPublicOrganisms((pubResp?.data?.organisms || []).filter(o => !mineIds.has(o.id)));
|
|
124
127
|
onStats?.({ organisms: mine.length });
|
|
125
128
|
setWsCounts(Object.fromEntries(mine.map(o => [o.id, o.workspace_count ?? 0])));
|
|
126
|
-
try { const r = await memoryService.getMemory('organisms.ui', { soft: true }); applyPrefs(r?.data?.value); } catch {
|
|
127
|
-
} catch {
|
|
129
|
+
try { const r = await memoryService.getMemory('organisms.ui', { soft: true }); applyPrefs(r?.data?.value); } catch (err) { swallowed('organisms-tab: applyPrefs', err); }
|
|
130
|
+
} catch (err) {
|
|
131
|
+
swallowed('organisms-tab: applyPrefs', err);
|
|
128
132
|
setMyOrganisms([]);
|
|
129
133
|
setPublicOrganisms([]);
|
|
130
134
|
}
|
|
@@ -138,7 +142,7 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
138
142
|
// Read as part of loadData's mount composite (above); this key backs savePrefs.
|
|
139
143
|
const UI_PREFS_KEY = 'organisms.ui';
|
|
140
144
|
const savePrefs = useCallback((order, sort) => {
|
|
141
|
-
memoryService.createMemory(UI_PREFS_KEY, { order, sort }, 'private').catch(
|
|
145
|
+
memoryService.createMemory(UI_PREFS_KEY, { order, sort }, 'private').catch(err => { swallowed('organisms-tab: applyPrefs', err); });
|
|
142
146
|
}, []);
|
|
143
147
|
|
|
144
148
|
// Stable sort keeps server order for ids missing from the saved manual order (appended at the end).
|
|
@@ -189,10 +193,10 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
189
193
|
|
|
190
194
|
// Persist the open organism + workspace (F5 restore), and drop a restored id the user can no longer open.
|
|
191
195
|
useEffect(() => {
|
|
192
|
-
try { if (openId) sessionStorage.setItem('aimeat.ws.openId', openId); else sessionStorage.removeItem('aimeat.ws.openId'); } catch { /* noop */ }
|
|
196
|
+
try { if (openId) sessionStorage.setItem('aimeat.ws.openId', openId); else sessionStorage.removeItem('aimeat.ws.openId'); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
193
197
|
}, [openId]);
|
|
194
198
|
useEffect(() => {
|
|
195
|
-
try { if (openWs) sessionStorage.setItem('aimeat.ws.openWs', openWs); else sessionStorage.removeItem('aimeat.ws.openWs'); } catch { /* noop */ }
|
|
199
|
+
try { if (openWs) sessionStorage.setItem('aimeat.ws.openWs', openWs); else sessionStorage.removeItem('aimeat.ws.openWs'); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
196
200
|
}, [openWs]);
|
|
197
201
|
useEffect(() => {
|
|
198
202
|
if (openId && myOrganisms && !myOrganisms.some(o => o.id === openId)) { setOpenId(null); setOpenWs(null); }
|
|
@@ -217,7 +221,7 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
217
221
|
const params = new URLSearchParams(window.location.search);
|
|
218
222
|
const org = params.get('org');
|
|
219
223
|
if (org) { setOpenId(org); setOpenWs(params.get('ws') || null); setOpenSpace(null); setOpenSettings(false); }
|
|
220
|
-
} catch {
|
|
224
|
+
} catch (err) { swallowed('organisms-tab: onOpen', err); }
|
|
221
225
|
}, []);
|
|
222
226
|
|
|
223
227
|
// Cross-organism content search (debounced) — librarian FTS across all my own content.
|
|
@@ -227,7 +231,7 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
227
231
|
let cancelled = false;
|
|
228
232
|
setGBusy(true);
|
|
229
233
|
const tid = setTimeout(async () => {
|
|
230
|
-
const hits = await memoryService.librarianSearch(query, 60, 'own').catch(()
|
|
234
|
+
const hits = await memoryService.librarianSearch(query, 60, 'own').catch(err => { swallowed('organisms-tab: onOpen', err); return []; });
|
|
231
235
|
if (!cancelled) { setGHits(hits || []); setGBusy(false); }
|
|
232
236
|
}, 220);
|
|
233
237
|
return () => { cancelled = true; clearTimeout(tid); };
|
|
@@ -262,7 +266,8 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
262
266
|
} else {
|
|
263
267
|
showToast(result?.error?.message || (t('organisms.createError') || 'Failed to create'));
|
|
264
268
|
}
|
|
265
|
-
} catch {
|
|
269
|
+
} catch (err) {
|
|
270
|
+
swallowed('organisms-tab: onOpen', err);
|
|
266
271
|
showToast(t('organisms.createError') || 'Failed to create');
|
|
267
272
|
} finally { setCreating(false); }
|
|
268
273
|
}, [formName, formDesc, formType, formPolicy, formVisibility, formInterests, showToast, loadData]);
|
|
@@ -278,7 +283,8 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
278
283
|
showToast(result?.error?.message || 'Could not join');
|
|
279
284
|
}
|
|
280
285
|
loadData();
|
|
281
|
-
} catch {
|
|
286
|
+
} catch (err) {
|
|
287
|
+
swallowed('organisms-tab: onOpen', err);
|
|
282
288
|
showToast(t('organisms.joinError') || 'Failed to join');
|
|
283
289
|
}
|
|
284
290
|
}, [showToast, loadData]);
|
|
@@ -290,7 +296,8 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
290
296
|
showToast(t('organisms.left') || 'Left organism');
|
|
291
297
|
setOpenId(null); setOpenWs(null);
|
|
292
298
|
loadData();
|
|
293
|
-
} catch {
|
|
299
|
+
} catch (err) {
|
|
300
|
+
swallowed('organisms-tab: onOpen', err);
|
|
294
301
|
showToast(t('organisms.leaveError') || 'Failed to leave');
|
|
295
302
|
}
|
|
296
303
|
}, { danger: true });
|
|
@@ -304,7 +311,8 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
304
311
|
setExpanded(null);
|
|
305
312
|
setOpenId(null); setOpenWs(null);
|
|
306
313
|
loadData();
|
|
307
|
-
} catch {
|
|
314
|
+
} catch (err) {
|
|
315
|
+
swallowed('organisms-tab: onOpen', err);
|
|
308
316
|
showToast(t('organisms.deleteError') || 'Failed to delete');
|
|
309
317
|
}
|
|
310
318
|
}, { danger: true });
|
|
@@ -455,7 +463,7 @@ export default function OrganismsTab({ session, showToast, onStats }) {
|
|
|
455
463
|
// Open a cross-organism search hit: jump to its organism + workspace, pre-filling the in-workspace
|
|
456
464
|
// search with the query so you land on the filtered result list (reuses Kerros 1).
|
|
457
465
|
const openGHit = (hit) => {
|
|
458
|
-
try { if (hit.workspaceId) sessionStorage.setItem(`aimeat.ws.${hit.organismId}.${hit.workspaceId}.search`, gQuery.trim()); } catch { /* noop */ }
|
|
466
|
+
try { if (hit.workspaceId) sessionStorage.setItem(`aimeat.ws.${hit.organismId}.${hit.workspaceId}.search`, gQuery.trim()); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
459
467
|
setOpenId(hit.organismId);
|
|
460
468
|
setOpenWs(hit.workspaceId || null);
|
|
461
469
|
setOpenSpace(null);
|
|
@@ -34,6 +34,7 @@ import { Spinner } from './shared.js';
|
|
|
34
34
|
import { useConfirm } from '/components/Modal.js';
|
|
35
35
|
import * as pkgService from '/js/services/packages.js';
|
|
36
36
|
import { apiGet } from '/js/api.js';
|
|
37
|
+
import { swallowed } from '/js/swallowed.js';
|
|
37
38
|
|
|
38
39
|
// ─── InstanceCard ───────────────────────────────────────────────────────────
|
|
39
40
|
// Expanded card for one installed package instance: shows every component's
|
|
@@ -169,7 +170,7 @@ export default function PackagesTab({ session, showToast, navigate }) {
|
|
|
169
170
|
// Mount: ONE composite (GET /v1/packages/tab) seeds the three LOCAL sections (installed instances +
|
|
170
171
|
// owner's packages + newest templates). Falls back to the three individual reads on failure. The
|
|
171
172
|
// cross-node federation-templates call below stays separate (best-effort outbound).
|
|
172
|
-
const ov = await apiGet('/v1/packages/tab').then(r => r?.data).catch(()
|
|
173
|
+
const ov = await apiGet('/v1/packages/tab').then(r => r?.data).catch(err => { swallowed('packages-tab: PackagesTab', err); return null; });
|
|
173
174
|
if (ov) {
|
|
174
175
|
setInstances(ov.instances?.instances ?? []);
|
|
175
176
|
setPackages(ov.packages?.packages ?? []);
|
|
@@ -188,8 +189,8 @@ export default function PackagesTab({ session, showToast, navigate }) {
|
|
|
188
189
|
try {
|
|
189
190
|
const fedRes = await pkgService.listFederationTemplates({ limit: 50 });
|
|
190
191
|
if (fedRes.ok) setRemoteTemplates(fedRes.data?.templates ?? []);
|
|
191
|
-
} catch {
|
|
192
|
-
} catch {
|
|
192
|
+
} catch (err) { swallowed('packages-tab: PackagesTab', err); }
|
|
193
|
+
} catch (err) { swallowed('packages-tab: PackagesTab', err); }
|
|
193
194
|
setLoading(false);
|
|
194
195
|
}, [session?.owner]);
|
|
195
196
|
|
|
@@ -350,7 +351,8 @@ export default function PackagesTab({ session, showToast, navigate }) {
|
|
|
350
351
|
} else {
|
|
351
352
|
showToast('Failed to load prompt', true);
|
|
352
353
|
}
|
|
353
|
-
} catch {
|
|
354
|
+
} catch (err) {
|
|
355
|
+
swallowed('packages-tab: copyPackagePrompt', err);
|
|
354
356
|
showToast('Failed to load prompt', true);
|
|
355
357
|
}
|
|
356
358
|
};
|
|
@@ -42,7 +42,7 @@ export default function PortfolioTab({ session, navigate, showToast }) {
|
|
|
42
42
|
// prop function of uncertain stability, and adding it could re-fire the forward before unmount.
|
|
43
43
|
useEffect(() => {
|
|
44
44
|
if (cfg !== undefined && !cfg?.enabled) {
|
|
45
|
-
try { sessionStorage.removeItem('aimeat-profile-tab'); } catch { /* noop */ }
|
|
45
|
+
try { sessionStorage.removeItem('aimeat-profile-tab'); } catch { /* noop */ } // eslint-disable-line aimeat/no-silent-catch -- noop
|
|
46
46
|
navigate('/v1/portfolio');
|
|
47
47
|
}
|
|
48
48
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -23,6 +23,7 @@ import htm from 'htm';
|
|
|
23
23
|
import { useState, useMemo, useEffect, useCallback } from 'preact/hooks';
|
|
24
24
|
import { t } from '/js/i18n.js';
|
|
25
25
|
import { listScheduleOccurrences } from '/js/services/schedules.js';
|
|
26
|
+
import { swallowed } from '/js/swallowed.js';
|
|
26
27
|
|
|
27
28
|
const html = htm.bind(h);
|
|
28
29
|
|
|
@@ -112,7 +113,7 @@ export default function SchedulerCalendar({ schedules = [], reloadKey = 0, onJum
|
|
|
112
113
|
setFreq(res?.data?.frequent || []);
|
|
113
114
|
setTruncated(!!res?.data?.truncated);
|
|
114
115
|
})
|
|
115
|
-
.catch(() => { if (alive) { setOcc([]); setFreq([]); setTruncated(false); } })
|
|
116
|
+
.catch((err) => { swallowed('scheduler-calendar', err); if (alive) { setOcc([]); setFreq([]); setTruncated(false); } })
|
|
116
117
|
.finally(() => { if (alive) setLoading(false); });
|
|
117
118
|
return () => { alive = false; };
|
|
118
119
|
}, [startMs, endMs, reloadKey]);
|