@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.21
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/bootstrap.json +94 -5
- package/dist/admin/admin-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +876 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +109 -0
- package/dist/background/tasks.service.js +271 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -1
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +102 -0
- package/dist/catalog/component-scope.controller.js +257 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +30 -0
- package/dist/catalog/job-ids.js +25 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +133 -0
- package/dist/catalog/org-extension.controller.js +313 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -343
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +85 -10
- package/dist/extensions/bootstrap.js +215 -36
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +94 -9
- package/dist/extensions/deployment-config.js +255 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +77 -31
- package/dist/identity/accounts.js +133 -52
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +17 -1
- package/dist/identity/me.controller.js +45 -4
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- package/dist/inbox/inbox.service.js +74 -4
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +9 -3
- package/dist/lifecycle/kernel-lifecycle.js +51 -11
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +774 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +102 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +730 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +381 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +298 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +43 -0
- package/dist/platform/platform-ops.module.js +142 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +21 -1
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.js +2 -1
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +33 -0
- package/dist/themes/themes-public.controller.js +98 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +29 -19
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +51 -44
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +61 -4
- package/dist/tools/info.js +119 -33
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// The kernel side of the setup guide places (spec 2026-11-09-setup-guides-v2-design.md §6.3, §9):
|
|
2
|
+
// the SDK registry (`SETUP_GUIDE_PLACE_INFO`) says which modes, audiences and variables a place
|
|
3
|
+
// has; this module adds, per place, the org action each audience needs, the target lookup (a live
|
|
4
|
+
// object of the org on the guide's plugin, else 404) and the variable values with the reason a
|
|
5
|
+
// known variable has no value. No value ever comes from a target's config, a secret, a token or a
|
|
6
|
+
// client id: only names, ids, versions and the two URL settings.
|
|
7
|
+
import { SETUP_GUIDE_PLACE_INFO, } from "@capybara-hq/plugin-sdk";
|
|
8
|
+
import { webhookBase, webhookUrlOf } from "../channels/webhook-url.js";
|
|
9
|
+
import { ApiError } from "../errors.js";
|
|
10
|
+
import { OAUTH_CALLBACK_PATH } from "../tools/oauth/flow-paths.js";
|
|
11
|
+
/** The org action each audience of a place needs besides `catalog.read` (spec §9.1). */
|
|
12
|
+
export const PLACE_ACTIONS = {
|
|
13
|
+
"channel-connection": { admin: "channels.manage" },
|
|
14
|
+
"connector-template": { admin: "connectors.manage", member: "connectors.use" },
|
|
15
|
+
};
|
|
16
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
17
|
+
const invalidQuery = (path, message) => new ApiError("validation_failed", "Request validation failed", [{ path, message }]);
|
|
18
|
+
/** The target parameters each place takes; another place's parameter is 400. */
|
|
19
|
+
const TARGET_PARAMS = {
|
|
20
|
+
"channel-connection": ["connectionId", "name"],
|
|
21
|
+
"connector-template": ["connectorId"],
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The variable values of a place for one rendering (spec §6.3): the common ones, then the place's
|
|
25
|
+
* own from its target. Throws 400 `validation_failed` for another place's target parameter and 404
|
|
26
|
+
* (`channel.not_found`, `connector.not_found`) for a target that is not a live object of the org on
|
|
27
|
+
* the guide's plugin.
|
|
28
|
+
*/
|
|
29
|
+
export async function resolvePlace(ctx) {
|
|
30
|
+
const place = ctx.guide.place;
|
|
31
|
+
for (const key of Object.keys(ctx.query)) {
|
|
32
|
+
if (ctx.query[key] !== undefined && !TARGET_PARAMS[place].includes(key)) {
|
|
33
|
+
throw invalidQuery(key, `${key} is not a target of a ${place} guide`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const publicUrl = ctx.config.http.publicUrl?.replace(/\/+$/, "") ?? null;
|
|
37
|
+
const values = {
|
|
38
|
+
publicUrl,
|
|
39
|
+
orgName: ctx.org?.name ?? null,
|
|
40
|
+
pluginName: ctx.item.name,
|
|
41
|
+
pluginVersion: ctx.item.version,
|
|
42
|
+
};
|
|
43
|
+
const reasons = {};
|
|
44
|
+
const signIn = publicUrl === null
|
|
45
|
+
? null
|
|
46
|
+
: `${publicUrl}/api/v1/auth/sso/${encodeURIComponent(ctx.item.name)}/callback`;
|
|
47
|
+
let target = null;
|
|
48
|
+
let storedMode = null;
|
|
49
|
+
if (place === "channel-connection") {
|
|
50
|
+
const connection = ctx.query.connectionId === undefined
|
|
51
|
+
? undefined
|
|
52
|
+
: await liveConnection(ctx, ctx.query.connectionId);
|
|
53
|
+
const base = webhookBase(ctx.config);
|
|
54
|
+
values.webhookUrl =
|
|
55
|
+
connection !== undefined && base !== undefined ? webhookUrlOf(base, connection.id) : null;
|
|
56
|
+
reasons.webhookUrl = connection === undefined ? "not_saved" : "webhook_base";
|
|
57
|
+
values.signInCallbackUrl = signIn;
|
|
58
|
+
const typed = ctx.query.name?.trim();
|
|
59
|
+
values.connectionName =
|
|
60
|
+
connection?.name ?? (typed === undefined || typed === "" ? null : typed);
|
|
61
|
+
reasons.connectionName = "no_name";
|
|
62
|
+
if (connection !== undefined) {
|
|
63
|
+
target = { kind: "channel-connection", id: connection.id };
|
|
64
|
+
storedMode = connection.inbound_mode;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const connector = ctx.query.connectorId === undefined
|
|
69
|
+
? undefined
|
|
70
|
+
: await liveConnector(ctx, ctx.query.connectorId);
|
|
71
|
+
values.oauthCallbackUrl = publicUrl === null ? null : `${publicUrl}${OAUTH_CALLBACK_PATH}`;
|
|
72
|
+
values.signInCallbackUrl = signIn;
|
|
73
|
+
values.templateId = ctx.guide.template ?? null;
|
|
74
|
+
values.templateName = await templateName(ctx);
|
|
75
|
+
values.connectorName = connector?.name ?? null;
|
|
76
|
+
reasons.connectorName = "no_connector";
|
|
77
|
+
if (connector !== undefined)
|
|
78
|
+
target = { kind: "connector", id: connector.id };
|
|
79
|
+
}
|
|
80
|
+
reasons.publicUrl = "public_url";
|
|
81
|
+
reasons.signInCallbackUrl = "public_url";
|
|
82
|
+
reasons.oauthCallbackUrl = "public_url";
|
|
83
|
+
reasons.orgName = "no_org";
|
|
84
|
+
// keep only the reasons of variables that are the place's and have no value
|
|
85
|
+
const known = SETUP_GUIDE_PLACE_INFO[place].variables;
|
|
86
|
+
for (const name of Object.keys(reasons)) {
|
|
87
|
+
if (!Object.hasOwn(known, name) || values[name] !== null)
|
|
88
|
+
delete reasons[name];
|
|
89
|
+
}
|
|
90
|
+
return { values, reasons, target, storedMode };
|
|
91
|
+
}
|
|
92
|
+
/** A live connection of the org on the guide's plugin; otherwise `channel.not_found`. */
|
|
93
|
+
async function liveConnection(ctx, id) {
|
|
94
|
+
const notFound = () => new ApiError("channel.not_found", "Channel connection not found");
|
|
95
|
+
if (ctx.org === null || !UUID_RE.test(id))
|
|
96
|
+
throw notFound();
|
|
97
|
+
const c = await ctx.db
|
|
98
|
+
.selectFrom("channel_connections")
|
|
99
|
+
.select(["id", "name", "inbound_mode"])
|
|
100
|
+
.where("id", "=", id)
|
|
101
|
+
.where("org_id", "=", ctx.org.orgId)
|
|
102
|
+
.where("plugin", "=", ctx.item.name)
|
|
103
|
+
.where("deleted_at", "is", null)
|
|
104
|
+
.executeTakeFirst();
|
|
105
|
+
if (!c)
|
|
106
|
+
throw notFound();
|
|
107
|
+
return c;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* A live connector of the org made from the guide's template (`connectors.platform_template_id` ->
|
|
111
|
+
* the platform component of the item's template, org-owned plugins included); otherwise
|
|
112
|
+
* `connector.not_found`, also for a custom connector or one made from another template.
|
|
113
|
+
*/
|
|
114
|
+
async function liveConnector(ctx, id) {
|
|
115
|
+
const notFound = () => new ApiError("connector.not_found", "Connector not found");
|
|
116
|
+
const template = ctx.guide.template;
|
|
117
|
+
if (ctx.org === null || template === undefined || !UUID_RE.test(id))
|
|
118
|
+
throw notFound();
|
|
119
|
+
const c = await ctx.db
|
|
120
|
+
.selectFrom("connectors as c")
|
|
121
|
+
.innerJoin("platform_connector_templates as t", "t.id", "c.platform_template_id")
|
|
122
|
+
.select(["c.id", "c.name"])
|
|
123
|
+
.where("c.id", "=", id)
|
|
124
|
+
.where("c.org_id", "=", ctx.org.orgId)
|
|
125
|
+
.where("c.deleted_at", "is", null)
|
|
126
|
+
.where("t.catalog_item_id", "=", ctx.item.id)
|
|
127
|
+
.where("t.template_id", "=", template)
|
|
128
|
+
.executeTakeFirst();
|
|
129
|
+
if (!c)
|
|
130
|
+
throw notFound();
|
|
131
|
+
return c;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The template's display name in the document's language, from the platform component made from
|
|
135
|
+
* it at import (`platform_connector_templates.file`); the template id when there is none.
|
|
136
|
+
*/
|
|
137
|
+
async function templateName(ctx) {
|
|
138
|
+
const id = ctx.guide.template;
|
|
139
|
+
if (id === undefined)
|
|
140
|
+
return null;
|
|
141
|
+
const row = await ctx.db
|
|
142
|
+
.selectFrom("platform_connector_templates")
|
|
143
|
+
.select("file")
|
|
144
|
+
.where("catalog_item_id", "=", ctx.item.id)
|
|
145
|
+
.where("template_id", "=", id)
|
|
146
|
+
.where("deleted_at", "is", null)
|
|
147
|
+
.executeTakeFirst();
|
|
148
|
+
const name = row?.file
|
|
149
|
+
?.displayName;
|
|
150
|
+
const localized = ctx.locale === "zh" ? name?.zh : name?.en;
|
|
151
|
+
return typeof localized === "string" && localized !== "" ? localized : id;
|
|
152
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type AvailableHook, type HookHandler, type HookOptions, type HookPayloads, type Logger, type PolicyHook } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { KernelConfig } from "../config/schema.js";
|
|
3
3
|
import type { LockService } from "../infra/lock/lock.service.js";
|
|
4
|
+
import { type EffectiveConfig } from "./effective-config.js";
|
|
4
5
|
import { type InflightTracker } from "./inflight.js";
|
|
5
6
|
/** Default of `hooks.timeoutMs` (used when a host is built without kernel config, e.g. in tests). */
|
|
6
7
|
export declare const DEFAULT_HOOK_TIMEOUT_MS = 5000;
|
|
@@ -27,8 +28,8 @@ export type HookOutcome = {
|
|
|
27
28
|
cause: "deny" | "hook_error" | "timeout";
|
|
28
29
|
detail?: string;
|
|
29
30
|
/**
|
|
30
|
-
* R10: the hooks could not run at all (organization lookup or payload copy
|
|
31
|
-
* only the first policy plugin on the mount, not the cause.
|
|
31
|
+
* R10: the hooks could not run at all (organization lookup, config read or payload copy
|
|
32
|
+
* failed); `plugin` is only the first policy plugin on the mount, not the cause.
|
|
32
33
|
*/
|
|
33
34
|
preflight?: true;
|
|
34
35
|
/**
|
|
@@ -36,7 +37,21 @@ export type HookOutcome = {
|
|
|
36
37
|
* approved, but is not loaded on this replica: the call fails closed without running any hook.
|
|
37
38
|
*/
|
|
38
39
|
notLoaded?: true;
|
|
40
|
+
/**
|
|
41
|
+
* Layering spec A §6: `plugin` has a policy hook on this mount but its effective config is not
|
|
42
|
+
* valid in the organization, so it behaves as if not loaded: the call fails closed without
|
|
43
|
+
* running any policy hook.
|
|
44
|
+
*/
|
|
45
|
+
needsConfig?: true;
|
|
39
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Thrown by a `usage.report` handler wrapper (see {@link HookRegistry.handlers}) instead of calling
|
|
49
|
+
* a handler whose extension's effective config is not valid in the payload's organization.
|
|
50
|
+
*/
|
|
51
|
+
export declare class HookNeedsConfigError extends Error {
|
|
52
|
+
readonly plugin: string;
|
|
53
|
+
constructor(plugin: string);
|
|
54
|
+
}
|
|
40
55
|
/** A hook a plugin instance registered through `ctx.hooks.on` (kept on the instance, like tools). */
|
|
41
56
|
export interface RegisteredHook {
|
|
42
57
|
mount: AvailableHook;
|
|
@@ -80,7 +95,12 @@ export declare const HOOK_DETAIL_MAX_CHARS = 2048;
|
|
|
80
95
|
* If a plugin the organization enabled is expected to run policy hooks on the mount (deployment
|
|
81
96
|
* state, `expectedPolicy`) but is not loaded on this replica, deny with a generic reason
|
|
82
97
|
* (`hook_error`, `notLoaded`) without running any policy hook (M-1: fail closed). Observe hooks
|
|
83
|
-
* of plugins that are not loaded are simply missing.
|
|
98
|
+
* of plugins that are not loaded are simply missing. Then each enabled plugin with a hook on the
|
|
99
|
+
* mount gets its effective config for the organization (layering spec A §6; one read per plugin
|
|
100
|
+
* and call, failing like the lookup above). A plugin whose config is not valid behaves as one
|
|
101
|
+
* that is not loaded: with a policy hook on the mount the call is denied (`hook_error`,
|
|
102
|
+
* `needsConfig`) without running any policy hook, and its observe hooks are skipped. Every
|
|
103
|
+
* hook is called with `{ config }` as its third argument.
|
|
84
104
|
* 3. Policy hooks run serially by plugin name (registration order within a plugin), each limited
|
|
85
105
|
* by `hooks.timeoutMs` (read on every run, hot). `{ deny }`, an error or a timeout stops the chain
|
|
86
106
|
* and denies (`deny` / `hook_error` / `timeout`). A policy hook cut off by its instance being
|
|
@@ -112,6 +132,12 @@ export declare class HookRegistry {
|
|
|
112
132
|
*/
|
|
113
133
|
expectedPolicy?(mount: PolicyHook): readonly string[];
|
|
114
134
|
enabledPlugins(orgId: string): Promise<Set<string>>;
|
|
135
|
+
/**
|
|
136
|
+
* The effective deployment config of a plugin for an organization (`EffectiveConfigs.get`):
|
|
137
|
+
* passed to every hook call, and no hook of the plugin runs for the organization when it is
|
|
138
|
+
* not valid.
|
|
139
|
+
*/
|
|
140
|
+
effectiveConfig(orgId: string, plugin: string): Promise<EffectiveConfig>;
|
|
115
141
|
/** The warn-once markers (`lease`: set unless present, with a TTL). */
|
|
116
142
|
locks: Pick<LockService, "lease">;
|
|
117
143
|
config: () => {
|
|
@@ -132,7 +158,9 @@ export declare class HookRegistry {
|
|
|
132
158
|
private unloadedPolicy;
|
|
133
159
|
/**
|
|
134
160
|
* `usage.report` handlers by plugin name (delivered by the usage queue, not by {@link run}); each
|
|
135
|
-
* call runs through the instance's `inflight.run
|
|
161
|
+
* call runs through the instance's `inflight.run` with the plugin's effective config for the
|
|
162
|
+
* payload's organization, and throws {@link HookNeedsConfigError} without calling the handler
|
|
163
|
+
* when that config is not valid (layering spec A §6).
|
|
136
164
|
*/
|
|
137
165
|
handlers(mount: "usage.report"): {
|
|
138
166
|
plugin: string;
|
|
@@ -146,6 +174,11 @@ export declare class HookRegistry {
|
|
|
146
174
|
* admin.
|
|
147
175
|
*/
|
|
148
176
|
private notLoadedDenial;
|
|
177
|
+
/**
|
|
178
|
+
* The layering spec A §6 denial: `needy` (sorted) are enabled policy plugins whose effective
|
|
179
|
+
* config is not valid in the organization. Generic model-visible reason, as for M-1.
|
|
180
|
+
*/
|
|
181
|
+
private needsConfigDenial;
|
|
149
182
|
/** Active entries of a mount point, sorted by plugin name (stable: registration order within). */
|
|
150
183
|
private entries;
|
|
151
184
|
/** One plugin's policy hooks in registration order; reruns once on a newer generation if revoked. */
|
package/dist/extensions/hooks.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HOOKS_AVAILABLE, POLICY_HOOKS, } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { NEEDS_CONFIG_REASON } from "./effective-config.js";
|
|
2
3
|
import { ExtensionUnloadedError } from "./inflight.js";
|
|
3
4
|
/** Default of `hooks.timeoutMs` (used when a host is built without kernel config, e.g. in tests). */
|
|
4
5
|
export const DEFAULT_HOOK_TIMEOUT_MS = 5000;
|
|
@@ -13,6 +14,18 @@ export const OBSERVE_INFLIGHT_MAX = 64;
|
|
|
13
14
|
export const EMPTY_DENY_REASON = "(no reason given)";
|
|
14
15
|
/** Warnings about a plugin's hooks are logged at most once per plugin, mount and kind in this window. */
|
|
15
16
|
const WARN_WINDOW_MS = 60_000;
|
|
17
|
+
/**
|
|
18
|
+
* Thrown by a `usage.report` handler wrapper (see {@link HookRegistry.handlers}) instead of calling
|
|
19
|
+
* a handler whose extension's effective config is not valid in the payload's organization.
|
|
20
|
+
*/
|
|
21
|
+
export class HookNeedsConfigError extends Error {
|
|
22
|
+
plugin;
|
|
23
|
+
constructor(plugin) {
|
|
24
|
+
super(`extension ${plugin} ${NEEDS_CONFIG_REASON}`);
|
|
25
|
+
this.plugin = plugin;
|
|
26
|
+
this.name = "HookNeedsConfigError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
16
29
|
const AVAILABLE = new Set(HOOKS_AVAILABLE);
|
|
17
30
|
const POLICY = new Set(POLICY_HOOKS);
|
|
18
31
|
/** Error text that never throws itself (a hostile `message` getter or `toString`). */
|
|
@@ -110,7 +123,12 @@ const clipDetail = (s) => clipText(s, HOOK_DETAIL_MAX_CHARS);
|
|
|
110
123
|
* If a plugin the organization enabled is expected to run policy hooks on the mount (deployment
|
|
111
124
|
* state, `expectedPolicy`) but is not loaded on this replica, deny with a generic reason
|
|
112
125
|
* (`hook_error`, `notLoaded`) without running any policy hook (M-1: fail closed). Observe hooks
|
|
113
|
-
* of plugins that are not loaded are simply missing.
|
|
126
|
+
* of plugins that are not loaded are simply missing. Then each enabled plugin with a hook on the
|
|
127
|
+
* mount gets its effective config for the organization (layering spec A §6; one read per plugin
|
|
128
|
+
* and call, failing like the lookup above). A plugin whose config is not valid behaves as one
|
|
129
|
+
* that is not loaded: with a policy hook on the mount the call is denied (`hook_error`,
|
|
130
|
+
* `needsConfig`) without running any policy hook, and its observe hooks are skipped. Every
|
|
131
|
+
* hook is called with `{ config }` as its third argument.
|
|
114
132
|
* 3. Policy hooks run serially by plugin name (registration order within a plugin), each limited
|
|
115
133
|
* by `hooks.timeoutMs` (read on every run, hot). `{ deny }`, an error or a timeout stops the chain
|
|
116
134
|
* and denies (`deny` / `hook_error` / `timeout`). A policy hook cut off by its instance being
|
|
@@ -156,13 +174,18 @@ export class HookRegistry {
|
|
|
156
174
|
}
|
|
157
175
|
/**
|
|
158
176
|
* `usage.report` handlers by plugin name (delivered by the usage queue, not by {@link run}); each
|
|
159
|
-
* call runs through the instance's `inflight.run
|
|
177
|
+
* call runs through the instance's `inflight.run` with the plugin's effective config for the
|
|
178
|
+
* payload's organization, and throws {@link HookNeedsConfigError} without calling the handler
|
|
179
|
+
* when that config is not valid (layering spec A §6).
|
|
160
180
|
*/
|
|
161
181
|
handlers(mount) {
|
|
162
182
|
return this.entries(mount).map(({ src, hook }) => ({
|
|
163
183
|
plugin: src.name,
|
|
164
184
|
handler: (payload, signal) => src.inflight.run(signal, async (s) => {
|
|
165
|
-
await
|
|
185
|
+
const effective = await this.d.effectiveConfig(payload.orgId, src.name);
|
|
186
|
+
if (!effective.ok)
|
|
187
|
+
throw new HookNeedsConfigError(src.name);
|
|
188
|
+
await hook.handler(payload, s, { config: effective.config });
|
|
166
189
|
}),
|
|
167
190
|
}));
|
|
168
191
|
}
|
|
@@ -177,6 +200,8 @@ export class HookRegistry {
|
|
|
177
200
|
let enabled;
|
|
178
201
|
let frozen;
|
|
179
202
|
let missing;
|
|
203
|
+
/** Effective config per enabled plugin with a hook here; null = not valid in the org. */
|
|
204
|
+
const configs = new Map();
|
|
180
205
|
try {
|
|
181
206
|
const abort = abortOf(signal);
|
|
182
207
|
try {
|
|
@@ -194,6 +219,19 @@ export class HookRegistry {
|
|
|
194
219
|
}
|
|
195
220
|
if (!all.some((e) => enabled.has(e.src.name)))
|
|
196
221
|
return { allowed: true };
|
|
222
|
+
for (const name of new Set(all.map((e) => e.src.name).filter((n) => enabled.has(n)))) {
|
|
223
|
+
const abortCfg = abortOf(signal);
|
|
224
|
+
try {
|
|
225
|
+
const e = await Promise.race([
|
|
226
|
+
this.d.effectiveConfig(payload.orgId, name),
|
|
227
|
+
abortCfg.aborted,
|
|
228
|
+
]);
|
|
229
|
+
configs.set(name, e.ok ? { config: e.config } : null);
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
abortCfg.cleanup();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
197
235
|
// Cost: one clone + deep-freeze per call. The model.request payload carries no media bytes
|
|
198
236
|
// (hookRequestOf, I-3), so it stays small. Freezing in place would freeze the logged object.
|
|
199
237
|
// The clone is skipped when has() is false or no enabled plugin has a hook on this mount.
|
|
@@ -207,7 +245,7 @@ export class HookRegistry {
|
|
|
207
245
|
if (firstPolicy !== undefined) {
|
|
208
246
|
// R10: no plugin ran; the named plugin is only the first policy plugin on this mount, so
|
|
209
247
|
// the detail says so instead of blaming it
|
|
210
|
-
const detail = clipDetail(`Hooks could not run (organization lookup or payload copy failed) before any plugin was called; ${firstPolicy} is named only as the first policy plugin on ${mount}: ${raw}`);
|
|
248
|
+
const detail = clipDetail(`Hooks could not run (organization lookup, config read or payload copy failed) before any plugin was called; ${firstPolicy} is named only as the first policy plugin on ${mount}: ${raw}`);
|
|
211
249
|
this.d.log.warn("plugin hooks could not run; denying the call", {
|
|
212
250
|
mount,
|
|
213
251
|
firstPolicyPlugin: firstPolicy,
|
|
@@ -227,9 +265,19 @@ export class HookRegistry {
|
|
|
227
265
|
}
|
|
228
266
|
return { allowed: true };
|
|
229
267
|
}
|
|
230
|
-
const active = all.filter((e) => enabled.has(e.src.name));
|
|
268
|
+
const active = all.filter((e) => enabled.has(e.src.name) && configs.get(e.src.name));
|
|
231
269
|
const timeoutMs = this.d.config().hooks.timeoutMs;
|
|
232
|
-
|
|
270
|
+
// spec A §6: a policy plugin without a valid config in the org behaves as one not loaded
|
|
271
|
+
const needy = [
|
|
272
|
+
...new Set(all
|
|
273
|
+
.filter((e) => e.hook.mode === "policy" && configs.get(e.src.name) === null)
|
|
274
|
+
.map((e) => e.src.name)),
|
|
275
|
+
];
|
|
276
|
+
let outcome = missing.length > 0
|
|
277
|
+
? this.notLoadedDenial(mount, missing)
|
|
278
|
+
: needy.length > 0
|
|
279
|
+
? this.needsConfigDenial(mount, needy)
|
|
280
|
+
: { allowed: true };
|
|
233
281
|
// policy hooks grouped per plugin (entries are sorted, so groups are contiguous)
|
|
234
282
|
const groups = [];
|
|
235
283
|
for (const e of active) {
|
|
@@ -242,7 +290,8 @@ export class HookRegistry {
|
|
|
242
290
|
groups.push({ src: e.src, hooks: [e.hook] });
|
|
243
291
|
}
|
|
244
292
|
for (const g of outcome.allowed ? groups : []) {
|
|
245
|
-
const
|
|
293
|
+
const call = configs.get(g.src.name);
|
|
294
|
+
const denied = await this.runPolicies(mount, g.src, g.hooks, frozen, call, signal, timeoutMs);
|
|
246
295
|
if (denied) {
|
|
247
296
|
outcome = denied;
|
|
248
297
|
break;
|
|
@@ -251,8 +300,10 @@ export class HookRegistry {
|
|
|
251
300
|
// observe hooks are resolved again now: if the plugin was upgraded while the policy hooks ran,
|
|
252
301
|
// the current generation observes (the retiring one no longer accepts calls)
|
|
253
302
|
for (const e of this.entries(mount)) {
|
|
254
|
-
|
|
255
|
-
|
|
303
|
+
const call = configs.get(e.src.name);
|
|
304
|
+
// no config read for it (not valid in the org, or a plugin that appeared meanwhile): skipped
|
|
305
|
+
if (e.hook.mode === "observe" && enabled.has(e.src.name) && call) {
|
|
306
|
+
this.dispatchObserve(mount, e.src, e.hook, frozen, call, signal);
|
|
256
307
|
}
|
|
257
308
|
}
|
|
258
309
|
return outcome;
|
|
@@ -277,6 +328,21 @@ export class HookRegistry {
|
|
|
277
328
|
notLoaded: true,
|
|
278
329
|
};
|
|
279
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* The layering spec A §6 denial: `needy` (sorted) are enabled policy plugins whose effective
|
|
333
|
+
* config is not valid in the organization. Generic model-visible reason, as for M-1.
|
|
334
|
+
*/
|
|
335
|
+
needsConfigDenial(mount, needy) {
|
|
336
|
+
const plugin = needy[0];
|
|
337
|
+
return {
|
|
338
|
+
allowed: false,
|
|
339
|
+
plugin,
|
|
340
|
+
reason: unavailableReason(plugin),
|
|
341
|
+
cause: "hook_error",
|
|
342
|
+
detail: `extension ${needy.join(", ")} declares a policy hook on ${mount} but ${NEEDS_CONFIG_REASON}; the call was denied without running any policy hook`,
|
|
343
|
+
needsConfig: true,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
280
346
|
/** Active entries of a mount point, sorted by plugin name (stable: registration order within). */
|
|
281
347
|
entries(mount) {
|
|
282
348
|
return this.d
|
|
@@ -285,14 +351,14 @@ export class HookRegistry {
|
|
|
285
351
|
.sort((a, b) => (a.src.name < b.src.name ? -1 : a.src.name > b.src.name ? 1 : 0));
|
|
286
352
|
}
|
|
287
353
|
/** One plugin's policy hooks in registration order; reruns once on a newer generation if revoked. */
|
|
288
|
-
async runPolicies(mount, src, hooks, payload, signal, timeoutMs, rerun = false) {
|
|
354
|
+
async runPolicies(mount, src, hooks, payload, call, signal, timeoutMs, rerun = false) {
|
|
289
355
|
const plugin = src.name;
|
|
290
356
|
for (const hook of hooks) {
|
|
291
357
|
if (signal.aborted)
|
|
292
358
|
throw signal.reason;
|
|
293
359
|
let r;
|
|
294
360
|
try {
|
|
295
|
-
r = await src.inflight.run(signal, (s) => this.call(hook, payload, s, timeoutMs));
|
|
361
|
+
r = await src.inflight.run(signal, (s) => this.call(hook, payload, call, s, timeoutMs));
|
|
296
362
|
}
|
|
297
363
|
catch (err) {
|
|
298
364
|
if (signal.aborted)
|
|
@@ -301,7 +367,7 @@ export class HookRegistry {
|
|
|
301
367
|
const cur = this.d.current(plugin);
|
|
302
368
|
if (!rerun && cur && cur !== src) {
|
|
303
369
|
const again = cur.hooks.filter((h) => h.mount === mount && h.mode === "policy");
|
|
304
|
-
return this.runPolicies(mount, cur, again, payload, signal, timeoutMs, true);
|
|
370
|
+
return this.runPolicies(mount, cur, again, payload, call, signal, timeoutMs, true);
|
|
305
371
|
}
|
|
306
372
|
}
|
|
307
373
|
r = { kind: "error", message: errMsg(err) };
|
|
@@ -338,7 +404,7 @@ export class HookRegistry {
|
|
|
338
404
|
return undefined;
|
|
339
405
|
}
|
|
340
406
|
/** Fire-and-forget observe call through the instance's in-flight tracker, capped per plugin. */
|
|
341
|
-
dispatchObserve(mount, src, hook, payload, signal) {
|
|
407
|
+
dispatchObserve(mount, src, hook, payload, call, signal) {
|
|
342
408
|
const plugin = src.name;
|
|
343
409
|
const n = this.observing.get(plugin) ?? 0;
|
|
344
410
|
if (n >= OBSERVE_INFLIGHT_MAX) {
|
|
@@ -349,7 +415,7 @@ export class HookRegistry {
|
|
|
349
415
|
this.observing.set(plugin, n + 1);
|
|
350
416
|
void (async () => {
|
|
351
417
|
try {
|
|
352
|
-
const r = await src.inflight.run(signal, (s) => this.call(hook, payload, s, timeoutMs));
|
|
418
|
+
const r = await src.inflight.run(signal, (s) => this.call(hook, payload, call, s, timeoutMs));
|
|
353
419
|
if (r.kind === "error" || r.kind === "timeout") {
|
|
354
420
|
await this.warnOnce(plugin, mount, "failed", "plugin observe hook failed; the call continued", r.kind === "timeout" ? `timed out after ${timeoutMs} ms` : r.message);
|
|
355
421
|
}
|
|
@@ -371,7 +437,7 @@ export class HookRegistry {
|
|
|
371
437
|
* Calls one handler with its own signal (aborted on timeout or when `s` aborts). Rejects with
|
|
372
438
|
* `s.reason` when `s` aborts first, so callers can tell an abort from a hook failure.
|
|
373
439
|
*/
|
|
374
|
-
async call(hook, payload, s, timeoutMs) {
|
|
440
|
+
async call(hook, payload, call, s, timeoutMs) {
|
|
375
441
|
const ac = new AbortController();
|
|
376
442
|
const onAbort = () => ac.abort(s.reason);
|
|
377
443
|
if (s.aborted)
|
|
@@ -385,7 +451,7 @@ export class HookRegistry {
|
|
|
385
451
|
timer = setTimeout(() => resolve("timeout"), timeoutMs);
|
|
386
452
|
});
|
|
387
453
|
const handled = Promise.resolve()
|
|
388
|
-
.then(() => hook.handler(payload, ac.signal))
|
|
454
|
+
.then(() => hook.handler(payload, ac.signal, { config: call.config }))
|
|
389
455
|
.then((v) => ({ v }), (err) => ({ err }));
|
|
390
456
|
const result = await Promise.race([handled, timedOut, abort.aborted]);
|
|
391
457
|
if (result === "timeout") {
|