@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
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
1
2
|
import type { AgentDefinition } from "../../agents/definition.js";
|
|
3
|
+
import { templateTypeOf } from "../../agents/templates.js";
|
|
2
4
|
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
3
5
|
/**
|
|
4
6
|
* The sub-agent roster of an agent version (phase C, spec §4.3, §5.1): the agent types its `agent`
|
|
@@ -10,8 +12,18 @@ export interface RosterEntry {
|
|
|
10
12
|
source: "general" | "inline" | "plugin" | "agent";
|
|
11
13
|
/** When to use it (shown in the tool description), cut to {@link ROSTER_DESCRIPTION_MAX}. */
|
|
12
14
|
description: string;
|
|
13
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Plugin templates: the selected id (an org template's, a linked copy's own, or a platform
|
|
17
|
+
* template's; `subagent_started.template.id`).
|
|
18
|
+
*/
|
|
14
19
|
templateId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Plugin templates: other selected ids this entry stands for: ids resolving to the same platform
|
|
22
|
+
* template under this type (an org copy linked since the save), or a selected platform id an org
|
|
23
|
+
* row of the same component shadows (the entry is that row); a follow-up recorded under one of
|
|
24
|
+
* them finds this entry.
|
|
25
|
+
*/
|
|
26
|
+
aliasTemplateIds?: string[];
|
|
15
27
|
/** Org agents: the allowlisted agent id. */
|
|
16
28
|
agentId?: string;
|
|
17
29
|
/** Org agents: the agent's current name, when it is still a live agent of the org. */
|
|
@@ -22,16 +34,21 @@ export interface RosterEntry {
|
|
|
22
34
|
export declare const ROSTER_DESCRIPTION_MAX = 1024;
|
|
23
35
|
/** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
|
|
24
36
|
export declare const GENERAL_PURPOSE_DESCRIPTION = "a copy of you with your tools and skills, for multi-step work.";
|
|
25
|
-
/** Plugin template type: `<plugin>:<name
|
|
26
|
-
export declare const templateType:
|
|
37
|
+
/** Plugin template type: `<plugin>:<name>`; the bare `<name>` for a template without a plugin. */
|
|
38
|
+
export declare const templateType: typeof templateTypeOf;
|
|
27
39
|
/**
|
|
28
40
|
* Resolves the roster of `parent` (spec §4.3): `general-purpose` first unless
|
|
29
41
|
* `subagents.general === false`, then the plugin templates, inline templates and allowlisted org
|
|
30
|
-
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates
|
|
31
|
-
*
|
|
32
|
-
*
|
|
42
|
+
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates are
|
|
43
|
+
* the org's and the platform's ({@link loadTemplates}); ones deleted or off since the save are
|
|
44
|
+
* skipped. A template whose type is taken (`general-purpose`, an earlier template, an inline
|
|
45
|
+
* template's name; only a bare `<name>` can clash with the last two kinds, and the save refuses
|
|
46
|
+
* every clash) is skipped with a warning; when it resolves to the same platform template as the
|
|
47
|
+
* entry kept, its id becomes that entry's alias. Allowlisted org agents stay listed (the dispatch
|
|
48
|
+
* checks their gates and refuses with the §4.5 text), with `agentName` only while the agent is
|
|
49
|
+
* live.
|
|
33
50
|
*/
|
|
34
|
-
export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">): Promise<RosterEntry[]>;
|
|
51
|
+
export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, log?: Pick<Logger, "warn">): Promise<RosterEntry[]>;
|
|
35
52
|
/**
|
|
36
53
|
* The roster entry for a requested `subagent_type`: an exact type first; else a bare `<name>`
|
|
37
54
|
* matches the plugin template `<plugin>:<name>` when exactly one has it (as Claude Code accepts
|
|
@@ -45,7 +62,7 @@ export declare const isGeneralAlias: (agent: string) => boolean;
|
|
|
45
62
|
* `general-purpose` for no `agent` and Claude's built-in types; else a roster type (a bare name
|
|
46
63
|
* prefers the skill's own plugin's template `<plugin>:<name>`, then {@link findType}). An `agent`
|
|
47
64
|
* that does not resolve falls back to `general-purpose` and is returned as `unknown`. `inRoster`:
|
|
48
|
-
* the type is one the parent's `
|
|
65
|
+
* the type is one the parent's `Agent` tool offers (`general-purpose` is not when
|
|
49
66
|
* `subagents.general === false`, which does not block a person's fork invocation).
|
|
50
67
|
*/
|
|
51
68
|
export declare function resolveSkillForkType(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, agent: string | undefined, plugin: string | undefined): Promise<{
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { SUBAGENT_ROSTER_MAX } from "../../agents/definition.js";
|
|
2
|
-
import { loadTemplates } from "../../agents/templates.js";
|
|
2
|
+
import { loadTemplates, templateTypeOf } from "../../agents/templates.js";
|
|
3
3
|
export const ROSTER_DESCRIPTION_MAX = 1024;
|
|
4
4
|
/** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
|
|
5
5
|
export const GENERAL_PURPOSE_DESCRIPTION = "a copy of you with your tools and skills, for multi-step work.";
|
|
6
6
|
const cut = (s) => s.slice(0, ROSTER_DESCRIPTION_MAX);
|
|
7
|
-
/** Plugin template type: `<plugin>:<name
|
|
8
|
-
export const templateType =
|
|
7
|
+
/** Plugin template type: `<plugin>:<name>`; the bare `<name>` for a template without a plugin. */
|
|
8
|
+
export const templateType = templateTypeOf;
|
|
9
9
|
/**
|
|
10
10
|
* Resolves the roster of `parent` (spec §4.3): `general-purpose` first unless
|
|
11
11
|
* `subagents.general === false`, then the plugin templates, inline templates and allowlisted org
|
|
12
|
-
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* agents, each in the owner's order, at most {@link SUBAGENT_ROSTER_MAX} entries. Templates are
|
|
13
|
+
* the org's and the platform's ({@link loadTemplates}); ones deleted or off since the save are
|
|
14
|
+
* skipped. A template whose type is taken (`general-purpose`, an earlier template, an inline
|
|
15
|
+
* template's name; only a bare `<name>` can clash with the last two kinds, and the save refuses
|
|
16
|
+
* every clash) is skipped with a warning; when it resolves to the same platform template as the
|
|
17
|
+
* entry kept, its id becomes that entry's alias. Allowlisted org agents stay listed (the dispatch
|
|
18
|
+
* checks their gates and refuses with the §4.5 text), with `agentName` only while the agent is
|
|
19
|
+
* live.
|
|
15
20
|
*/
|
|
16
|
-
export async function resolveRoster(db, orgId, parent) {
|
|
21
|
+
export async function resolveRoster(db, orgId, parent, log) {
|
|
17
22
|
const sub = parent.subagents;
|
|
18
23
|
const out = [];
|
|
19
24
|
if (sub?.general !== false) {
|
|
@@ -24,19 +29,50 @@ export async function resolveRoster(db, orgId, parent) {
|
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
31
|
const templateIds = sub?.templates ?? [];
|
|
27
|
-
const templates = await loadTemplates(db, orgId, templateIds);
|
|
32
|
+
const templates = await loadTemplates(db, orgId, templateIds, log);
|
|
33
|
+
const inlineNames = new Set((sub?.inline ?? []).map((t) => t.name));
|
|
34
|
+
const kept = new Map();
|
|
35
|
+
const alias = (e, id) => {
|
|
36
|
+
if (e.templateId !== id && !e.aliasTemplateIds?.includes(id)) {
|
|
37
|
+
e.aliasTemplateIds = [...(e.aliasTemplateIds ?? []), id];
|
|
38
|
+
}
|
|
39
|
+
};
|
|
28
40
|
for (const id of templateIds) {
|
|
29
41
|
const r = templates.get(id);
|
|
30
42
|
if (!r)
|
|
31
43
|
continue;
|
|
44
|
+
const type = templateType(r.plugin, r.name);
|
|
45
|
+
const first = kept.get(type);
|
|
46
|
+
if (first !== undefined || type === "general-purpose" || inlineNames.has(type)) {
|
|
47
|
+
if (first !== undefined &&
|
|
48
|
+
(first.entry.templateId === r.id ||
|
|
49
|
+
(r.platformTemplateId !== undefined && first.platformTemplateId === r.platformTemplateId))) {
|
|
50
|
+
alias(first.entry, id);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
log?.warn("agent template skipped in the roster: its type is taken", {
|
|
54
|
+
orgId,
|
|
55
|
+
type,
|
|
56
|
+
templateId: r.id,
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
32
60
|
const description = r.template.description;
|
|
33
|
-
|
|
34
|
-
type
|
|
61
|
+
const entry = {
|
|
62
|
+
type,
|
|
35
63
|
source: "plugin",
|
|
36
64
|
description: cut(typeof description === "string" ? description : ""),
|
|
37
65
|
templateId: r.id,
|
|
38
|
-
plugin: r.plugin,
|
|
66
|
+
...(r.plugin ? { plugin: r.plugin } : {}),
|
|
67
|
+
};
|
|
68
|
+
// a selected platform id that an org row of the same component shadows resolves to that row
|
|
69
|
+
if (r.id !== id)
|
|
70
|
+
alias(entry, id);
|
|
71
|
+
kept.set(type, {
|
|
72
|
+
entry,
|
|
73
|
+
...(r.platformTemplateId !== undefined && { platformTemplateId: r.platformTemplateId }),
|
|
39
74
|
});
|
|
75
|
+
out.push(entry);
|
|
40
76
|
}
|
|
41
77
|
for (const t of sub?.inline ?? []) {
|
|
42
78
|
out.push({ type: t.name, source: "inline", description: cut(t.description) });
|
|
@@ -90,7 +126,7 @@ export const isGeneralAlias = (agent) => GENERAL_ALIASES.has(agent);
|
|
|
90
126
|
* `general-purpose` for no `agent` and Claude's built-in types; else a roster type (a bare name
|
|
91
127
|
* prefers the skill's own plugin's template `<plugin>:<name>`, then {@link findType}). An `agent`
|
|
92
128
|
* that does not resolve falls back to `general-purpose` and is returned as `unknown`. `inRoster`:
|
|
93
|
-
* the type is one the parent's `
|
|
129
|
+
* the type is one the parent's `Agent` tool offers (`general-purpose` is not when
|
|
94
130
|
* `subagents.general === false`, which does not block a person's fork invocation).
|
|
95
131
|
*/
|
|
96
132
|
export async function resolveSkillForkType(db, orgId, parent, agent, plugin) {
|
|
@@ -8,8 +8,9 @@ import { type DispatchDeps } from "./dispatch.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
|
|
10
10
|
* run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
|
|
11
|
-
* through phase C's `dispatchSubagent` before any model call and waits on it
|
|
12
|
-
*
|
|
11
|
+
* through phase C's `dispatchSubagent` before any model call and waits on it (`subagents` wait
|
|
12
|
+
* `sa-<runId>-0`; the dispatch row has `for_skill`, agent map spec §5.4: a fork stays in the
|
|
13
|
+
* foreground while `Agent` calls run in the background). When the child has ended, `prepare` appends the model-visible
|
|
13
14
|
* `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
|
|
14
15
|
* sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
|
|
15
16
|
* a fork lead whose report is missing before the next model call.
|
|
@@ -110,7 +111,7 @@ export declare const recordedSkillForks: (eventLog: Pick<EventLog, "append" | "f
|
|
|
110
111
|
* In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
|
|
111
112
|
* (its trigger message, by the run boundary) without a report gets one now: the ended child's
|
|
112
113
|
* result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
|
|
113
|
-
* child still active (the caller stops it after its commit, as for `
|
|
114
|
+
* child still active (the caller stops it after its commit, as for `Agent` calls), or
|
|
114
115
|
* {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
|
|
115
116
|
* (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
|
|
116
117
|
*/
|
|
@@ -7,8 +7,9 @@ import { dispatchSubagent } from "./dispatch.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
|
|
9
9
|
* run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
|
|
10
|
-
* through phase C's `dispatchSubagent` before any model call and waits on it
|
|
11
|
-
*
|
|
10
|
+
* through phase C's `dispatchSubagent` before any model call and waits on it (`subagents` wait
|
|
11
|
+
* `sa-<runId>-0`; the dispatch row has `for_skill`, agent map spec §5.4: a fork stays in the
|
|
12
|
+
* foreground while `Agent` calls run in the background). When the child has ended, `prepare` appends the model-visible
|
|
12
13
|
* `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
|
|
13
14
|
* sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
|
|
14
15
|
* a fork lead whose report is missing before the next model call.
|
|
@@ -92,7 +93,7 @@ export async function advanceSkillForks(d, a) {
|
|
|
92
93
|
const callId = skillCallId(seq);
|
|
93
94
|
const row = await dispatchOfCall(d.db, ctx.runId, callId);
|
|
94
95
|
if (row) {
|
|
95
|
-
const r = await childResult(d.eventLog, row
|
|
96
|
+
const r = await childResult(d.eventLog, row);
|
|
96
97
|
if (!r)
|
|
97
98
|
return ctx.signal.aborted ? { kind: "aborted" } : suspend(d, ctx);
|
|
98
99
|
await report(r.content, row, [finishedEvent(row, r.finished)]);
|
|
@@ -190,7 +191,7 @@ export const recordedSkillForks = (eventLog, recorded) => ({
|
|
|
190
191
|
* In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
|
|
191
192
|
* (its trigger message, by the run boundary) without a report gets one now: the ended child's
|
|
192
193
|
* result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
|
|
193
|
-
* child still active (the caller stops it after its commit, as for `
|
|
194
|
+
* child still active (the caller stops it after its commit, as for `Agent` calls), or
|
|
194
195
|
* {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
|
|
195
196
|
* (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
|
|
196
197
|
*/
|
|
@@ -236,6 +237,7 @@ t, eventLog, runId) {
|
|
|
236
237
|
"parent_conversation_id",
|
|
237
238
|
"child_conversation_id",
|
|
238
239
|
"child_run_id",
|
|
240
|
+
"budget_run_id",
|
|
239
241
|
])
|
|
240
242
|
.where("parent_run_id", "=", runId)
|
|
241
243
|
.where("parent_call_id", "=", callId)
|
|
@@ -251,6 +253,8 @@ t, eventLog, runId) {
|
|
|
251
253
|
parentConversationId: d.parent_conversation_id,
|
|
252
254
|
childConversationId: d.child_conversation_id,
|
|
253
255
|
childRunId: d.child_run_id,
|
|
256
|
+
budgetRunId: d.budget_run_id,
|
|
257
|
+
forSkill: true,
|
|
254
258
|
};
|
|
255
259
|
const child = await t
|
|
256
260
|
.selectFrom("runs")
|
|
@@ -259,7 +263,7 @@ t, eventLog, runId) {
|
|
|
259
263
|
.executeTakeFirst();
|
|
260
264
|
// a child that already ended keeps its own result (its log is committed)
|
|
261
265
|
const ended = child !== undefined && TERMINAL_STATUSES.has(child.status)
|
|
262
|
-
? await childResult(eventLog, row
|
|
266
|
+
? await childResult(eventLog, row)
|
|
263
267
|
: null;
|
|
264
268
|
if (ended)
|
|
265
269
|
events.push(finishedEvent(row, ended.finished));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EventPayload } from "../../conversations/events.js";
|
|
2
|
+
/** How a sub-agent's run ended (`subagent_finished.status`, a finished `subagent_delivery`). */
|
|
3
|
+
export type SubagentStatus = EventPayload<"subagent_finished">["status"];
|
|
4
|
+
/** Who stopped an aborted sub-agent: a person, or the kernel on its parent run's behalf. */
|
|
5
|
+
export type SubagentAbortedBy = "user" | "parent";
|
|
6
|
+
/**
|
|
7
|
+
* How a sub-agent's run ended, as the model reads it: the status of `agentResultText`'s bracket
|
|
8
|
+
* line (a fork invocation's report) and of a finished `subagent_delivery`
|
|
9
|
+
* (`renderSubagentDelivery`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function subagentStatusText(status: SubagentStatus, opts?: {
|
|
12
|
+
errorCode?: string | undefined;
|
|
13
|
+
abortedBy?: SubagentAbortedBy | undefined;
|
|
14
|
+
}): string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a sub-agent's run ended, as the model reads it: the status of `agentResultText`'s bracket
|
|
3
|
+
* line (a fork invocation's report) and of a finished `subagent_delivery`
|
|
4
|
+
* (`renderSubagentDelivery`).
|
|
5
|
+
*/
|
|
6
|
+
export function subagentStatusText(status, opts = {}) {
|
|
7
|
+
switch (status) {
|
|
8
|
+
case "completed":
|
|
9
|
+
return "completed";
|
|
10
|
+
case "max_steps":
|
|
11
|
+
return "stopped at the step limit; the reply may be partial";
|
|
12
|
+
case "max_duration":
|
|
13
|
+
return "stopped at the time limit; the reply may be partial";
|
|
14
|
+
case "budget":
|
|
15
|
+
return "stopped: token budget used up";
|
|
16
|
+
case "aborted":
|
|
17
|
+
return opts.abortedBy === "parent" ? "stopped with this run" : "stopped by the user";
|
|
18
|
+
case "timed_out":
|
|
19
|
+
return "timed out";
|
|
20
|
+
case "failed":
|
|
21
|
+
return opts.errorCode === undefined ? "failed" : `failed (${opts.errorCode})`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -12,12 +12,12 @@ import { type ChildWriter, type DispatchArgs, type DispatchCommit, type Dispatch
|
|
|
12
12
|
import { type SubagentStep } from "./progress.js";
|
|
13
13
|
import { type SkillForkDeps, type SkillForks } from "./skill-fork.js";
|
|
14
14
|
/**
|
|
15
|
-
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `
|
|
15
|
+
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `Agent` tool's dispatch (the
|
|
16
16
|
* tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
|
|
17
17
|
* `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
|
|
18
|
-
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch
|
|
19
|
-
*
|
|
20
|
-
* (
|
|
18
|
+
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch is the
|
|
19
|
+
* waits' (`Waits.childFinished`): a background child's finish is delivered to its parent
|
|
20
|
+
* ({@link SubagentDeliveries}), a fork invocation's child resumes its waiting parent run.
|
|
21
21
|
*/
|
|
22
22
|
export declare class SubagentsService {
|
|
23
23
|
private readonly bus;
|
|
@@ -28,13 +28,16 @@ export declare class SubagentsService {
|
|
|
28
28
|
/** The live fork handler of the loop (`LoopDeps.skillForks`). */
|
|
29
29
|
readonly skillForks: SkillForks;
|
|
30
30
|
constructor(kdb: KernelDb, eventLog: EventLog, purposes: ModelPurposesService, registry: ProviderRegistry, config: KernelConfigService, jobs: RunJobs, invoker: SkillInvoker, bus: ExtensionContext["bus"], log: KernelLogger, txHost: TransactionHost);
|
|
31
|
-
/** Dispatches the sub-agent of one `
|
|
31
|
+
/** Dispatches the sub-agent of one `Agent` call (`dispatchSubagent`). */
|
|
32
32
|
dispatch(a: DispatchArgs): Promise<DispatchOutcome>;
|
|
33
33
|
/** The dispatch's writes in a transaction of their own (see `commitDispatchIn`). */
|
|
34
34
|
commitDispatch(a: DispatchArgs, plan: DispatchPlan, child: ChildWriter): Promise<DispatchCommit | null>;
|
|
35
35
|
/** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
|
|
36
36
|
progress(s: SubagentStep): Promise<void>;
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Sub-agent dispatch, deliveries and messages (the tools domain's `Agent`, `SendMessage` and
|
|
40
|
+
* `SubagentHandback`, the run loop, the waits).
|
|
41
|
+
*/
|
|
39
42
|
export declare class SubagentsModule {
|
|
40
43
|
}
|
|
@@ -20,16 +20,18 @@ import { SkillInvoker } from "../../skills/invoke.js";
|
|
|
20
20
|
import { SkillsModule } from "../../skills/skills.module.js";
|
|
21
21
|
import { ProviderRegistry, ProvidersModule } from "../providers.js";
|
|
22
22
|
import { RunJobs, RunJobsModule } from "../run-jobs.js";
|
|
23
|
+
import { SubagentDeliveries } from "./deliveries.js";
|
|
23
24
|
import { commitDispatchIn, dispatchSubagent, } from "./dispatch.js";
|
|
25
|
+
import { SubagentMessages } from "./messages.js";
|
|
24
26
|
import { publishSubagentProgress } from "./progress.js";
|
|
25
27
|
import { liveSkillForks } from "./skill-fork.js";
|
|
26
28
|
/**
|
|
27
|
-
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `
|
|
29
|
+
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `Agent` tool's dispatch (the
|
|
28
30
|
* tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
|
|
29
31
|
* `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
|
|
30
|
-
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch
|
|
31
|
-
*
|
|
32
|
-
* (
|
|
32
|
+
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch is the
|
|
33
|
+
* waits' (`Waits.childFinished`): a background child's finish is delivered to its parent
|
|
34
|
+
* ({@link SubagentDeliveries}), a fork invocation's child resumes its waiting parent run.
|
|
33
35
|
*/
|
|
34
36
|
let SubagentsService = class SubagentsService {
|
|
35
37
|
bus;
|
|
@@ -58,7 +60,7 @@ let SubagentsService = class SubagentsService {
|
|
|
58
60
|
};
|
|
59
61
|
this.skillForks = liveSkillForks(this.deps);
|
|
60
62
|
}
|
|
61
|
-
/** Dispatches the sub-agent of one `
|
|
63
|
+
/** Dispatches the sub-agent of one `Agent` call (`dispatchSubagent`). */
|
|
62
64
|
dispatch(a) {
|
|
63
65
|
return dispatchSubagent(this.deps, a);
|
|
64
66
|
}
|
|
@@ -88,14 +90,17 @@ SubagentsService = __decorate([
|
|
|
88
90
|
__param(9, Inject(TransactionHost))
|
|
89
91
|
], SubagentsService);
|
|
90
92
|
export { SubagentsService };
|
|
91
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* Sub-agent dispatch, deliveries and messages (the tools domain's `Agent`, `SendMessage` and
|
|
95
|
+
* `SubagentHandback`, the run loop, the waits).
|
|
96
|
+
*/
|
|
92
97
|
let SubagentsModule = class SubagentsModule {
|
|
93
98
|
};
|
|
94
99
|
SubagentsModule = __decorate([
|
|
95
100
|
Module({
|
|
96
101
|
imports: [EventLogModule, ModelsModule, ProvidersModule, RunJobsModule, SkillsModule],
|
|
97
|
-
providers: [SubagentsService],
|
|
98
|
-
exports: [SubagentsService],
|
|
102
|
+
providers: [SubagentsService, SubagentDeliveries, SubagentMessages],
|
|
103
|
+
exports: [SubagentsService, SubagentDeliveries, SubagentMessages],
|
|
99
104
|
})
|
|
100
105
|
], SubagentsModule);
|
|
101
106
|
export { SubagentsModule };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { type OnApplicationShutdown } from "@nestjs/common";
|
|
3
|
+
import type { JobsOptions, Queue } from "bullmq";
|
|
4
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
5
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
6
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
7
|
+
import { KernelEvents } from "../infra/events/kernel-events.js";
|
|
8
|
+
/**
|
|
9
|
+
* The producer half of `usage.report` delivery for `model_usage` rows, and the queue's ids and job
|
|
10
|
+
* options shared with the reporter (`usage-report.ts`). The `ctx.models` broker sits below the
|
|
11
|
+
* extension host and must not register a queue there (CLI contexts that build the extensions
|
|
12
|
+
* module never connect to Redis eagerly), so it only announces a row (`model_usage.recorded`) and
|
|
13
|
+
* {@link ModelUsageJobs} enqueues it here.
|
|
14
|
+
*/
|
|
15
|
+
/** Queue of `usage.report` deliveries (no `:` in the name). */
|
|
16
|
+
export declare const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
|
|
17
|
+
/** The job name of every delivery. */
|
|
18
|
+
export declare const USAGE_REPORT_JOB = "usage-report";
|
|
19
|
+
/** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
|
|
20
|
+
export declare const usageReportJobId: (conversationId: string, seq: number) => string;
|
|
21
|
+
/** One job per `model_usage` row (spec B §5.4; row ids are UUIDs, so no clash with the above). */
|
|
22
|
+
export declare const modelUsageJobId: (usageId: string) => string;
|
|
23
|
+
/**
|
|
24
|
+
* Job data: ids only (the payload is read when the job runs): a conversation `usage` event
|
|
25
|
+
* (`conversationId` + `seq`), or a `model_usage` row (`usageId`).
|
|
26
|
+
*/
|
|
27
|
+
export type UsageReportJob = ({
|
|
28
|
+
conversationId: string;
|
|
29
|
+
seq: number;
|
|
30
|
+
usageId?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
usageId: string;
|
|
33
|
+
conversationId?: undefined;
|
|
34
|
+
seq?: undefined;
|
|
35
|
+
}) & {
|
|
36
|
+
/** Plugins not yet succeeded; absent = every subscriber (decided on the first attempt). */
|
|
37
|
+
pending?: string[];
|
|
38
|
+
/**
|
|
39
|
+
* Targets dropped so far (plugin → why), accumulated across attempts (m-2): when the job would
|
|
40
|
+
* otherwise complete it fails naming them, and `pending` is then exactly these plugins, so a
|
|
41
|
+
* manual retry reaches only them (m-1). A later delivery to one of them removes it.
|
|
42
|
+
*/
|
|
43
|
+
dropped?: Record<string, string>;
|
|
44
|
+
};
|
|
45
|
+
/** First attempt plus 5 retries (F11). */
|
|
46
|
+
export declare const USAGE_REPORT_ATTEMPTS = 6;
|
|
47
|
+
/** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
|
|
48
|
+
export declare const USAGE_REPORT_BACKOFF_MS = 2000;
|
|
49
|
+
/** The delivery retry policy: attempts and the first exponential backoff. */
|
|
50
|
+
export interface UsageReportRetry {
|
|
51
|
+
attempts: number;
|
|
52
|
+
backoffMs: number;
|
|
53
|
+
}
|
|
54
|
+
/** Optional provider: the {@link UsageReportRetry} instead of the defaults above (tests). */
|
|
55
|
+
export declare const USAGE_REPORT_RETRY: unique symbol;
|
|
56
|
+
/** The options of one delivery job: its id, the retry policy and the retention of finished jobs. */
|
|
57
|
+
export declare function usageReportJobOpts(jobId: string, retry: UsageReportRetry, keepHours: number): JobsOptions;
|
|
58
|
+
/**
|
|
59
|
+
* Plugins that subscribe to `usage.report` according to deployment state: an approved permission
|
|
60
|
+
* snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
|
|
61
|
+
* install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
|
|
62
|
+
* the organization enabled (org config rows and required bootstrap plugins).
|
|
63
|
+
*/
|
|
64
|
+
export declare function queryUsageSubscribers(db: KernelSchemaDb, orgId?: string): Promise<Set<string>>;
|
|
65
|
+
/**
|
|
66
|
+
* Enqueues the `usage.report` delivery of `model_usage` rows on `model_usage.recorded` (fast path;
|
|
67
|
+
* the reporter's sweep re-enqueues rows still unreported, so a lost event or enqueue is caught up).
|
|
68
|
+
*/
|
|
69
|
+
export declare class ModelUsageJobs implements OnApplicationShutdown {
|
|
70
|
+
private readonly kdb;
|
|
71
|
+
private readonly queue;
|
|
72
|
+
private readonly config;
|
|
73
|
+
private readonly log;
|
|
74
|
+
private readonly retry;
|
|
75
|
+
private readonly unsubscribe;
|
|
76
|
+
/** Set at shutdown: a late event enqueues nothing (the sweep offers the row later). */
|
|
77
|
+
private closed;
|
|
78
|
+
constructor(kdb: KernelDb, queue: Queue<UsageReportJob>, config: Pick<KernelConfigService, "get">, log: Logger, retry: UsageReportRetry | undefined, events: KernelEvents);
|
|
79
|
+
onApplicationShutdown(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Enqueues the delivery of one row (job `usage-model-<rowId>`). Without any subscriber nothing is
|
|
82
|
+
* enqueued (the sweep marks the row). Never throws: a failure only logs; the sweep catches up.
|
|
83
|
+
*/
|
|
84
|
+
enqueue(usageId: string): Promise<void>;
|
|
85
|
+
}
|
|
86
|
+
/** The usage report queue and its `model_usage` producer (no dependency on the extension host). */
|
|
87
|
+
export declare class UsageReportJobsModule {
|
|
88
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { getQueueToken } from "@nestjs/bullmq";
|
|
11
|
+
import { Inject, Injectable, Module, Optional } from "@nestjs/common";
|
|
12
|
+
import { sql } from "kysely";
|
|
13
|
+
import { enabledExtensionsQuery } from "../extensions/enabled.js";
|
|
14
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
15
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
16
|
+
import { KernelEvents } from "../infra/events/kernel-events.js";
|
|
17
|
+
import { QueueModule } from "../infra/queue/queue.module.js";
|
|
18
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
19
|
+
/**
|
|
20
|
+
* The producer half of `usage.report` delivery for `model_usage` rows, and the queue's ids and job
|
|
21
|
+
* options shared with the reporter (`usage-report.ts`). The `ctx.models` broker sits below the
|
|
22
|
+
* extension host and must not register a queue there (CLI contexts that build the extensions
|
|
23
|
+
* module never connect to Redis eagerly), so it only announces a row (`model_usage.recorded`) and
|
|
24
|
+
* {@link ModelUsageJobs} enqueues it here.
|
|
25
|
+
*/
|
|
26
|
+
/** Queue of `usage.report` deliveries (no `:` in the name). */
|
|
27
|
+
export const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
|
|
28
|
+
/** The job name of every delivery. */
|
|
29
|
+
export const USAGE_REPORT_JOB = "usage-report";
|
|
30
|
+
/** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
|
|
31
|
+
export const usageReportJobId = (conversationId, seq) => `usage-${conversationId}-${seq}`;
|
|
32
|
+
/** One job per `model_usage` row (spec B §5.4; row ids are UUIDs, so no clash with the above). */
|
|
33
|
+
export const modelUsageJobId = (usageId) => `usage-model-${usageId}`;
|
|
34
|
+
/** First attempt plus 5 retries (F11). */
|
|
35
|
+
export const USAGE_REPORT_ATTEMPTS = 6;
|
|
36
|
+
/** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
|
|
37
|
+
export const USAGE_REPORT_BACKOFF_MS = 2000;
|
|
38
|
+
/** Optional provider: the {@link UsageReportRetry} instead of the defaults above (tests). */
|
|
39
|
+
export const USAGE_REPORT_RETRY = Symbol("USAGE_REPORT_RETRY");
|
|
40
|
+
/** Failed jobs (given up) are kept for inspection, at most {@link KEEP_FAILED_MAX} of them. */
|
|
41
|
+
const KEEP_FAILED_S = 7 * 86_400;
|
|
42
|
+
/** Upper bound on kept failed jobs (I-2): a long outage of a billing endpoint cannot grow Redis. */
|
|
43
|
+
const KEEP_FAILED_MAX = 100_000;
|
|
44
|
+
/**
|
|
45
|
+
* Upper bound on kept finished jobs (Redis memory). At the default retention it only bites above
|
|
46
|
+
* ~1.1 usage events per second sustained for a day; dedupe needs the jobs only for the sweeper overlap.
|
|
47
|
+
*/
|
|
48
|
+
const KEEP_COMPLETED_MAX = 100_000;
|
|
49
|
+
/** The options of one delivery job: its id, the retry policy and the retention of finished jobs. */
|
|
50
|
+
export function usageReportJobOpts(jobId, retry, keepHours) {
|
|
51
|
+
return {
|
|
52
|
+
jobId,
|
|
53
|
+
attempts: retry.attempts,
|
|
54
|
+
backoff: { type: "exponential", delay: retry.backoffMs },
|
|
55
|
+
removeOnComplete: { age: keepHours * 3600, count: KEEP_COMPLETED_MAX },
|
|
56
|
+
removeOnFail: { age: KEEP_FAILED_S, count: KEEP_FAILED_MAX },
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Plugins that subscribe to `usage.report` according to deployment state: an approved permission
|
|
61
|
+
* snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
|
|
62
|
+
* install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
|
|
63
|
+
* the organization enabled (org config rows and required bootstrap plugins).
|
|
64
|
+
*/
|
|
65
|
+
export async function queryUsageSubscribers(db, orgId) {
|
|
66
|
+
let q = db
|
|
67
|
+
.selectFrom("extension_permission_snapshots as s")
|
|
68
|
+
.select("s.plugin")
|
|
69
|
+
.where(sql `s.permissions -> 'permissions' -> 'hooks' ? 'usage.report'`)
|
|
70
|
+
.where((eb) => eb.or([
|
|
71
|
+
eb.exists(eb
|
|
72
|
+
.selectFrom("extension_installs as i")
|
|
73
|
+
.select(sql `1`.as("one"))
|
|
74
|
+
.whereRef("i.name", "=", "s.plugin")
|
|
75
|
+
.where("i.desired_state", "=", "enabled")),
|
|
76
|
+
// config-declared plugins still declared (and not unloaded) on some replica; installs are
|
|
77
|
+
// covered by desired_state above (their replica rows linger as `unloaded` when disabled)
|
|
78
|
+
eb.exists(eb
|
|
79
|
+
.selectFrom("extension_replica_status as r")
|
|
80
|
+
.select(sql `1`.as("one"))
|
|
81
|
+
.whereRef("r.plugin", "=", "s.plugin")
|
|
82
|
+
.where("r.source", "=", "config")
|
|
83
|
+
.where("r.state", "<>", "unloaded")),
|
|
84
|
+
]));
|
|
85
|
+
if (orgId !== undefined) {
|
|
86
|
+
q = q.where("s.plugin", "in", enabledExtensionsQuery(db, orgId));
|
|
87
|
+
}
|
|
88
|
+
return new Set((await q.execute()).map((r) => r.plugin));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Enqueues the `usage.report` delivery of `model_usage` rows on `model_usage.recorded` (fast path;
|
|
92
|
+
* the reporter's sweep re-enqueues rows still unreported, so a lost event or enqueue is caught up).
|
|
93
|
+
*/
|
|
94
|
+
let ModelUsageJobs = class ModelUsageJobs {
|
|
95
|
+
kdb;
|
|
96
|
+
queue;
|
|
97
|
+
config;
|
|
98
|
+
log;
|
|
99
|
+
retry;
|
|
100
|
+
unsubscribe;
|
|
101
|
+
/** Set at shutdown: a late event enqueues nothing (the sweep offers the row later). */
|
|
102
|
+
closed = false;
|
|
103
|
+
constructor(kdb, queue, config, log, retry = {
|
|
104
|
+
attempts: USAGE_REPORT_ATTEMPTS,
|
|
105
|
+
backoffMs: USAGE_REPORT_BACKOFF_MS,
|
|
106
|
+
}, events) {
|
|
107
|
+
this.kdb = kdb;
|
|
108
|
+
this.queue = queue;
|
|
109
|
+
this.config = config;
|
|
110
|
+
this.log = log;
|
|
111
|
+
this.retry = retry;
|
|
112
|
+
this.unsubscribe = events.on("model_usage.recorded", ({ id }) => this.enqueue(id));
|
|
113
|
+
}
|
|
114
|
+
onApplicationShutdown() {
|
|
115
|
+
this.closed = true;
|
|
116
|
+
this.unsubscribe();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Enqueues the delivery of one row (job `usage-model-<rowId>`). Without any subscriber nothing is
|
|
120
|
+
* enqueued (the sweep marks the row). Never throws: a failure only logs; the sweep catches up.
|
|
121
|
+
*/
|
|
122
|
+
async enqueue(usageId) {
|
|
123
|
+
if (this.closed)
|
|
124
|
+
return;
|
|
125
|
+
try {
|
|
126
|
+
if ((await queryUsageSubscribers(this.kdb.db)).size === 0)
|
|
127
|
+
return;
|
|
128
|
+
await this.queue.add(USAGE_REPORT_JOB, { usageId }, usageReportJobOpts(modelUsageJobId(usageId), this.retry, this.config.get().hooks.usageReportKeepHours));
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
this.log.warn("cannot enqueue model usage report", { usageId, err });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
ModelUsageJobs = __decorate([
|
|
136
|
+
Injectable(),
|
|
137
|
+
__param(0, Inject(KernelDb)),
|
|
138
|
+
__param(1, Inject(getQueueToken(USAGE_REPORT_QUEUE))),
|
|
139
|
+
__param(2, Inject(KernelConfigService)),
|
|
140
|
+
__param(3, Inject(KERNEL_LOGGER)),
|
|
141
|
+
__param(4, Optional()),
|
|
142
|
+
__param(4, Inject(USAGE_REPORT_RETRY)),
|
|
143
|
+
__param(5, Inject(KernelEvents))
|
|
144
|
+
], ModelUsageJobs);
|
|
145
|
+
export { ModelUsageJobs };
|
|
146
|
+
/** The usage report queue's registration, shared by the producer and the reporter's module. */
|
|
147
|
+
const USAGE_REPORT_QUEUE_MODULE = QueueModule.registerQueue(USAGE_REPORT_QUEUE);
|
|
148
|
+
/** The usage report queue and its `model_usage` producer (no dependency on the extension host). */
|
|
149
|
+
let UsageReportJobsModule = class UsageReportJobsModule {
|
|
150
|
+
};
|
|
151
|
+
UsageReportJobsModule = __decorate([
|
|
152
|
+
Module({
|
|
153
|
+
imports: [USAGE_REPORT_QUEUE_MODULE],
|
|
154
|
+
providers: [ModelUsageJobs],
|
|
155
|
+
exports: [ModelUsageJobs, USAGE_REPORT_QUEUE_MODULE],
|
|
156
|
+
})
|
|
157
|
+
], UsageReportJobsModule);
|
|
158
|
+
export { UsageReportJobsModule };
|