@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,11 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { sql } from "kysely";
|
|
3
|
-
import { normalizeStoredDefinition } from "../../agents/definition.js";
|
|
4
3
|
import { audit } from "../../identity/audit.js";
|
|
5
4
|
import { forkAgentUnknownText } from "../../skills/invoke.js";
|
|
6
|
-
import {
|
|
5
|
+
import { SEND_MESSAGE } from "../../tools/builtin-names.js";
|
|
6
|
+
import { AGENT_REFUSALS, AGENT_TOOL, agentStartedText, } from "../../tools/builtins/agent.js";
|
|
7
7
|
import { ACTIVE_RUN_STATUSES, runJobId } from "../run-jobs.js";
|
|
8
|
-
import {
|
|
8
|
+
import { childResult, finishedEvent } from "./child.js";
|
|
9
|
+
import { effectiveDefinition, SubagentTypeGoneError, } from "./definition.js";
|
|
9
10
|
import { subagentLimits } from "./limits.js";
|
|
10
11
|
import { auditRefusal, checkOrgAgent, currentAgentDefinition } from "./org-agents.js";
|
|
11
12
|
import { SUBAGENT_PREAMBLE } from "./preamble.js";
|
|
@@ -17,38 +18,40 @@ const GENERAL_ENTRY = {
|
|
|
17
18
|
source: "general",
|
|
18
19
|
description: GENERAL_PURPOSE_DESCRIPTION,
|
|
19
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* The depth of the run behind `ctx` below the root (agent map spec §6): 0 for a root
|
|
23
|
+
* conversation's run, its parent's depth plus one for a sub-agent's.
|
|
24
|
+
*/
|
|
25
|
+
export const runDepth = (ctx) => ctx.parent === undefined ? 0 : ctx.parent.depth + 1;
|
|
20
26
|
/** Idempotency key of the parent's `subagent_dispatched` event. */
|
|
21
27
|
export const dispatchedIdemKey = (runId, callId) => `subagent_dispatched:${runId}:${callId}`;
|
|
22
28
|
/**
|
|
23
|
-
* Dispatches the sub-agent of one `
|
|
24
|
-
* policy, approval and `tool.preExecute` stages
|
|
25
|
-
* definition, then in one transaction (holding the parent run's row lock, so the
|
|
26
|
-
* run serialize) inserts the child conversation, appends `subagent_started` and
|
|
27
|
-
* inserts the child run (`queued`) and the `subagent_dispatches` row, appends
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* enqueue only logs (the dispatch is durable, the wait
|
|
29
|
+
* Dispatches the sub-agent of one `Agent` call (spec §7.1, agent map spec §4.1), after the
|
|
30
|
+
* pipeline's validation, policy, approval and `tool.preExecute` stages: resolves its type and
|
|
31
|
+
* effective definition, then in one transaction (holding the parent run's row lock, so the
|
|
32
|
+
* dispatches of one run serialize) inserts the child conversation, appends `subagent_started` and
|
|
33
|
+
* the task message, inserts the child run (`queued`) and the `subagent_dispatches` row, appends
|
|
34
|
+
* `subagent_dispatched` and the call's `tool_result` ({@link agentStartedText}: the sub-agent runs
|
|
35
|
+
* in the background) to the parent and audits `subagent.dispatched` and `tool.called`. After
|
|
36
|
+
* commit the child run is enqueued; a failed enqueue only logs (the dispatch is durable, the wait
|
|
37
|
+
* sweep re-enqueues it). A fork invocation (`forSkill`) writes no `tool_result`: its run waits on
|
|
38
|
+
* the child (`advanceSkillForks`).
|
|
31
39
|
*
|
|
32
|
-
* Refusals (§4.5) start nothing: a call from a
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* or one whose run is still active.
|
|
40
|
+
* Refusals (§4.5) start nothing: a call from a run at `subagents.maxDepth` (agent map spec §4.1:
|
|
41
|
+
* its definition has no `Agent`, so only a forged call or a lowered limit gets here), an unknown
|
|
42
|
+
* type, or an org agent that fails one of its gates ({@link orgAgentGates}, checked at every
|
|
43
|
+
* level; audited `subagent.refused`).
|
|
37
44
|
*/
|
|
38
45
|
export async function dispatchSubagent(d, a) {
|
|
39
46
|
const { ctx, input } = a;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
return refused(AGENT_REFUSALS.resumeWithType);
|
|
45
|
-
}
|
|
46
|
-
return resume(d, { ...a, id: input.resume });
|
|
47
|
-
}
|
|
47
|
+
const { maxDepth } = await subagentLimits(d.db, d.config, ctx.orgId);
|
|
48
|
+
const childDepth = runDepth(ctx) + 1;
|
|
49
|
+
if (childDepth > maxDepth)
|
|
50
|
+
return refused(AGENT_REFUSALS.depthLimit(maxDepth));
|
|
48
51
|
const requested = input.subagent_type ?? "general-purpose";
|
|
49
52
|
const unknown = (types) => refused(AGENT_REFUSALS.unknownType(requested, types.map((e) => e.type)));
|
|
50
53
|
const fork = a.forSkill;
|
|
51
|
-
const listed = await resolveRoster(d.db, ctx.orgId, ctx.agent);
|
|
54
|
+
const listed = await resolveRoster(d.db, ctx.orgId, ctx.agent, d.log);
|
|
52
55
|
const roster = fork !== undefined && !listed.some((e) => e.type === GENERAL_ENTRY.type)
|
|
53
56
|
? [GENERAL_ENTRY, ...listed]
|
|
54
57
|
: listed;
|
|
@@ -75,6 +78,8 @@ export async function dispatchSubagent(d, a) {
|
|
|
75
78
|
parent: ctx.agent,
|
|
76
79
|
parentAgentId: ctx.agentId,
|
|
77
80
|
entry,
|
|
81
|
+
childDepth,
|
|
82
|
+
maxDepth,
|
|
78
83
|
...(input.model !== undefined && { tier: input.model }),
|
|
79
84
|
...(orgAgent !== undefined && { orgAgent }),
|
|
80
85
|
});
|
|
@@ -84,7 +89,7 @@ export async function dispatchSubagent(d, a) {
|
|
|
84
89
|
// the template went away since the roster was read (spec §13: refuse, never fail the run);
|
|
85
90
|
// the list offered instead is read again, without it
|
|
86
91
|
if (e instanceof SubagentTypeGoneError) {
|
|
87
|
-
return unknown(await resolveRoster(d.db, ctx.orgId, ctx.agent));
|
|
92
|
+
return unknown(await resolveRoster(d.db, ctx.orgId, ctx.agent, d.log));
|
|
88
93
|
}
|
|
89
94
|
throw e;
|
|
90
95
|
}
|
|
@@ -116,6 +121,7 @@ export async function dispatchSubagent(d, a) {
|
|
|
116
121
|
kind: "subagent",
|
|
117
122
|
parent_conversation_id: ctx.conversationId,
|
|
118
123
|
subagent_type: entry.type,
|
|
124
|
+
subagent_depth: childDepth,
|
|
119
125
|
})
|
|
120
126
|
.execute();
|
|
121
127
|
const [, task] = await d.eventLog.appendIn(childId, [
|
|
@@ -155,91 +161,6 @@ export async function dispatchSubagent(d, a) {
|
|
|
155
161
|
// a new sub-agent's writer never refuses
|
|
156
162
|
return out ?? refused(AGENT_REFUSALS.notAvailableHere);
|
|
157
163
|
}
|
|
158
|
-
/**
|
|
159
|
-
* A follow-up to an existing sub-agent of this conversation (§4.2 `resume`). It keeps the frozen
|
|
160
|
-
* definition's instructions and model (replay), but is checked against what the parent may use
|
|
161
|
-
* now (final review I1): a `general` / inline / plugin child's type must still be in the roster
|
|
162
|
-
* of the dispatching run's version (a plugin template by its template id), else the call is
|
|
163
|
-
* refused as an unknown type; an org agent child passes its gates. Its tools and org skills are
|
|
164
|
-
* intersected with the current version ({@link narrowFollowUp}: the dispatching run's version,
|
|
165
|
-
* or the org agent's current version as the gates read it under the lock), and the result is
|
|
166
|
-
* recorded on the follow-up's task message for the run and for replay.
|
|
167
|
-
*/
|
|
168
|
-
async function resume(d, a) {
|
|
169
|
-
const { ctx } = a;
|
|
170
|
-
const child = await d.db
|
|
171
|
-
.selectFrom("conversations")
|
|
172
|
-
.select(["id", "subagent_type"])
|
|
173
|
-
.where("id", "=", a.id)
|
|
174
|
-
.where("org_id", "=", ctx.orgId)
|
|
175
|
-
.where("kind", "=", "subagent")
|
|
176
|
-
.where("parent_conversation_id", "=", ctx.conversationId)
|
|
177
|
-
.executeTakeFirst();
|
|
178
|
-
if (!child)
|
|
179
|
-
return refused(AGENT_REFUSALS.noSuchAgent(a.id));
|
|
180
|
-
const started = await d.eventLog.findByIdem(child.id, "subagent_started");
|
|
181
|
-
if (started?.type !== "subagent_started")
|
|
182
|
-
return refused(AGENT_REFUSALS.noSuchAgent(a.id));
|
|
183
|
-
const { template } = started.payload;
|
|
184
|
-
const agentType = child.subagent_type ?? started.payload.agentType;
|
|
185
|
-
// an org agent's gates hold for every follow-up too (§5.5); it keeps its frozen version
|
|
186
|
-
if (template.source === "agent") {
|
|
187
|
-
const gates = await orgAgentGates(d.db, a, template.id ?? "", agentType, true);
|
|
188
|
-
if ("refused" in gates)
|
|
189
|
-
return gates.refused;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
const roster = await resolveRoster(d.db, ctx.orgId, ctx.agent);
|
|
193
|
-
const entry = template.source === "plugin"
|
|
194
|
-
? roster.find((e) => e.source === "plugin" && e.templateId === template.id)
|
|
195
|
-
: findType(roster, agentType);
|
|
196
|
-
if (entry?.source !== template.source) {
|
|
197
|
-
return refused(AGENT_REFUSALS.unknownType(agentType, roster.map((e) => e.type)));
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
const frozen = normalizeStoredDefinition(started.payload.definition);
|
|
201
|
-
const plan = {
|
|
202
|
-
childConversationId: child.id,
|
|
203
|
-
agentType,
|
|
204
|
-
source: template.source,
|
|
205
|
-
agentId: template.source === "agent" ? (template.id ?? "") : ctx.agentId,
|
|
206
|
-
agentVersion: template.source === "agent" ? (template.version ?? ctx.agentVersion) : ctx.agentVersion,
|
|
207
|
-
resumed: true,
|
|
208
|
-
model: started.payload.definition.model,
|
|
209
|
-
tierFallback: false,
|
|
210
|
-
};
|
|
211
|
-
return commit(d, a, plan, async (t, checked) => {
|
|
212
|
-
const current = template.source === "agent" ? checked?.definition : ctx.agent;
|
|
213
|
-
if (current === undefined)
|
|
214
|
-
throw new Error("org agent follow-up without its checked version");
|
|
215
|
-
const activeRun = () => t
|
|
216
|
-
.selectFrom("runs")
|
|
217
|
-
.select("id")
|
|
218
|
-
.where("conversation_id", "=", child.id)
|
|
219
|
-
.where("status", "in", ACTIVE_RUN_STATUSES)
|
|
220
|
-
.executeTakeFirst();
|
|
221
|
-
// An active child is refused before its row is locked: a running child's token append locks
|
|
222
|
-
// its conversation row and then this parent run's row, which `commit` already holds, so
|
|
223
|
-
// waiting for the child's row here would be a lock-order cycle (review I1). The parent row
|
|
224
|
-
// lock serializes this parent's dispatches, so an earlier follow-up's run is visible here.
|
|
225
|
-
if (await activeRun())
|
|
226
|
-
return null;
|
|
227
|
-
// the child's row lock serializes follow-ups to one sub-agent; no run holds it now, so it is
|
|
228
|
-
// never held by an append waiting for the parent row
|
|
229
|
-
await t
|
|
230
|
-
.selectFrom("conversations")
|
|
231
|
-
.select("id")
|
|
232
|
-
.where("id", "=", child.id)
|
|
233
|
-
.forUpdate()
|
|
234
|
-
.executeTakeFirst();
|
|
235
|
-
if (await activeRun())
|
|
236
|
-
return null;
|
|
237
|
-
const [task] = await d.eventLog.appendIn(child.id, [
|
|
238
|
-
taskMessage(ctx, a.callId, a.input.prompt, narrowFollowUp(frozen, current)),
|
|
239
|
-
]);
|
|
240
|
-
return task;
|
|
241
|
-
}).then((r) => r ?? refused(AGENT_REFUSALS.stillRunning(a.id)));
|
|
242
|
-
}
|
|
243
164
|
/**
|
|
244
165
|
* The gates of an org agent sub-agent (§5.5) for this call: the allowlist of the parent agent's
|
|
245
166
|
* **current** version (R5), the agent's `dispatchable`, its visibility to the person who started
|
|
@@ -248,7 +169,7 @@ async function resume(d, a) {
|
|
|
248
169
|
* sub-agent freezes the definition read here) and again inside it under the parent run's row lock
|
|
249
170
|
* ({@link commit}), so a gate revoked in between refuses (batch 9 review M1).
|
|
250
171
|
*/
|
|
251
|
-
async function orgAgentGates(db, a, agentId, agentType, resumed) {
|
|
172
|
+
export async function orgAgentGates(db, a, agentId, agentType, resumed) {
|
|
252
173
|
const { ctx } = a;
|
|
253
174
|
const parentDefinition = (await currentAgentDefinition(db, ctx.agentId)) ?? {};
|
|
254
175
|
const check = await checkOrgAgent(db, {
|
|
@@ -272,13 +193,19 @@ async function orgAgentGates(db, a, agentId, agentType, resumed) {
|
|
|
272
193
|
});
|
|
273
194
|
return { refused: refused(AGENT_REFUSALS.agentNotAvailable(agentType)) };
|
|
274
195
|
}
|
|
275
|
-
const taskMessage = (ctx, callId, prompt, narrowed,
|
|
276
196
|
/**
|
|
277
|
-
* A
|
|
197
|
+
* A sub-agent's task message, or (`message`) a `SendMessage` from its parent (agent map spec
|
|
198
|
+
* §5.1: `dispatch.kind: "message"`, idempotent by the sending call, with the follow-up narrowing
|
|
199
|
+
* the run it triggers uses).
|
|
200
|
+
*/
|
|
201
|
+
export const taskMessage = (ctx, callId, prompt, narrowed,
|
|
202
|
+
/**
|
|
203
|
+
* A fork invocation's record: the child's log then holds the invocation, so its `Skill`
|
|
278
204
|
* is offered and resolves the invoked version (phase D).
|
|
279
205
|
*/
|
|
280
|
-
skill) => ({
|
|
206
|
+
skill, message = false) => ({
|
|
281
207
|
type: "user_message",
|
|
208
|
+
...(message && { idemKey: sentMessageIdemKey(ctx.runId, callId) }),
|
|
282
209
|
payload: {
|
|
283
210
|
content: [{ type: "text", text: prompt }],
|
|
284
211
|
...(skill !== undefined && { skill }),
|
|
@@ -287,10 +214,39 @@ skill) => ({
|
|
|
287
214
|
parentConversationId: ctx.conversationId,
|
|
288
215
|
parentRunId: ctx.runId,
|
|
289
216
|
callId,
|
|
217
|
+
...(message && { kind: "message" }),
|
|
290
218
|
...(narrowed !== undefined && { narrowed }),
|
|
291
219
|
},
|
|
292
220
|
},
|
|
293
221
|
});
|
|
222
|
+
/** Idempotency key of a `SendMessage`'s `user_message` in the sub-agent's log. */
|
|
223
|
+
export const sentMessageIdemKey = (runId, callId) => `send_message:${runId}:${callId}`;
|
|
224
|
+
const isActiveStatus = (status) => ACTIVE_RUN_STATUSES.includes(status);
|
|
225
|
+
/**
|
|
226
|
+
* The result text of a child run that ended before its parent's call got a result and was never
|
|
227
|
+
* delivered (agent map spec, rc upgrade: a foreground-era dispatch whose rc finisher wrote
|
|
228
|
+
* `subagent_finished` and resumed the parent): the child's report (`childResult`), with the
|
|
229
|
+
* parent's `subagent_finished` appended in this transaction when it is missing (idempotent by its
|
|
230
|
+
* key), so the undelivered sweep never delivers it a second time. Null when the parent already
|
|
231
|
+
* has a delivery for the run (it carries the result) or the run has no terminal event yet.
|
|
232
|
+
*/
|
|
233
|
+
async function rcFinishedResult(d, row) {
|
|
234
|
+
const delivered = await d.db
|
|
235
|
+
.selectFrom("conversation_events")
|
|
236
|
+
.select("seq")
|
|
237
|
+
.where("conversation_id", "=", row.parentConversationId)
|
|
238
|
+
.where("type", "=", "subagent_delivery")
|
|
239
|
+
.where(sql `payload ->> 'childRunId'`, "=", row.childRunId)
|
|
240
|
+
.limit(1)
|
|
241
|
+
.executeTakeFirst();
|
|
242
|
+
if (delivered)
|
|
243
|
+
return null;
|
|
244
|
+
const r = await childResult(d.eventLog, row);
|
|
245
|
+
if (!r)
|
|
246
|
+
return null;
|
|
247
|
+
await d.eventLog.appendIn(row.parentConversationId, [finishedEvent(row, r.finished)]);
|
|
248
|
+
return r.content;
|
|
249
|
+
}
|
|
294
250
|
/**
|
|
295
251
|
* {@link commit}'s transaction (run by `SubagentsService.commitDispatch`, `d.db` its handle).
|
|
296
252
|
* Null when `child` refused.
|
|
@@ -310,7 +266,7 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
310
266
|
.executeTakeFirst();
|
|
311
267
|
const parent = await t
|
|
312
268
|
.selectFrom("runs")
|
|
313
|
-
.select(["status", "subagent_tokens_used"])
|
|
269
|
+
.select(["status", "subagent_tokens_used", "budget_run_id"])
|
|
314
270
|
.where("id", "=", ctx.runId)
|
|
315
271
|
.forUpdate()
|
|
316
272
|
.executeTakeFirst();
|
|
@@ -322,9 +278,41 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
322
278
|
.where("sd.parent_call_id", "=", callId)
|
|
323
279
|
.executeTakeFirst();
|
|
324
280
|
if (existing) {
|
|
281
|
+
// An `Agent` call's result was written with its first dispatch (this returns it). A call
|
|
282
|
+
// dispatched before `Agent` ran in the background (a foreground wait in flight across the
|
|
283
|
+
// upgrade) gets the immediate result now, so the log never keeps it unpaired; such a call
|
|
284
|
+
// reaches here again through the pipeline's policy stages, so it may ask for approval again.
|
|
285
|
+
let result = null;
|
|
286
|
+
if (a.forSkill === undefined) {
|
|
287
|
+
// an rc child that already ended under the foreground wait, whose rc finisher wrote
|
|
288
|
+
// `subagent_finished` and resumed this run (no delivery; the sweep never delivers a run with
|
|
289
|
+
// `subagent_finished`): its report is this call's result, as the rc gave it, or it is lost.
|
|
290
|
+
// Only while the call has no result: a call that has one (a background dispatch's second
|
|
291
|
+
// holder) keeps it, and its child's finish stays to its delivery or the undelivered sweep.
|
|
292
|
+
const resultKey = resultEvent(ctx, callId, AGENT_TOOL, "").idemKey;
|
|
293
|
+
const finished = a.sent === undefined &&
|
|
294
|
+
existing.status !== null &&
|
|
295
|
+
!isActiveStatus(existing.status) &&
|
|
296
|
+
(await d.eventLog.findByIdem(ctx.conversationId, resultKey)) === undefined
|
|
297
|
+
? await rcFinishedResult(d, {
|
|
298
|
+
parentRunId: ctx.runId,
|
|
299
|
+
parentCallId: callId,
|
|
300
|
+
parentConversationId: ctx.conversationId,
|
|
301
|
+
childConversationId: existing.child_conversation_id,
|
|
302
|
+
childRunId: existing.child_run_id,
|
|
303
|
+
})
|
|
304
|
+
: null;
|
|
305
|
+
const [ev] = await d.eventLog.appendIn(ctx.conversationId, [
|
|
306
|
+
resultEvent(ctx, callId, a.call?.toolKey ?? AGENT_TOOL, finished ?? a.sent?.content ?? agentStartedText(existing.child_conversation_id)),
|
|
307
|
+
]);
|
|
308
|
+
if (ev?.type === "tool_result")
|
|
309
|
+
result = { content: ev.payload.content, seq: ev.seq };
|
|
310
|
+
}
|
|
325
311
|
return {
|
|
326
312
|
kind: "existing",
|
|
327
313
|
childRunId: existing.child_run_id,
|
|
314
|
+
childConversationId: existing.child_conversation_id,
|
|
315
|
+
result,
|
|
328
316
|
// still queued: the first holder may have died before its enqueue (review M4)
|
|
329
317
|
requeue: existing.status === "queued" && existing.trigger_seq !== null
|
|
330
318
|
? {
|
|
@@ -336,7 +324,18 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
336
324
|
}
|
|
337
325
|
if (parent?.status !== "running")
|
|
338
326
|
return { kind: "stopped" };
|
|
339
|
-
|
|
327
|
+
// the tree's budget run (agent map spec §6), locked after the parent run so the dispatches of
|
|
328
|
+
// every run of one tree serialize on it; the parent run itself when it opened the window
|
|
329
|
+
const budgetRunId = parent.budget_run_id ?? ctx.runId;
|
|
330
|
+
const tokensUsed = budgetRunId === ctx.runId
|
|
331
|
+
? parent.subagent_tokens_used
|
|
332
|
+
: ((await t
|
|
333
|
+
.selectFrom("runs")
|
|
334
|
+
.select("subagent_tokens_used")
|
|
335
|
+
.where("id", "=", budgetRunId)
|
|
336
|
+
.forUpdate()
|
|
337
|
+
.executeTakeFirst())?.subagent_tokens_used ?? 0);
|
|
338
|
+
const limit = await limitRefusal(t, d, ctx, budgetRunId, tokensUsed, a.sent?.refusals ?? AGENT_REFUSALS);
|
|
340
339
|
if (limit !== null)
|
|
341
340
|
return { kind: "limit", content: limit };
|
|
342
341
|
let checked;
|
|
@@ -367,6 +366,7 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
367
366
|
agent_version: plan.agentVersion,
|
|
368
367
|
trigger_account_id: ctx.accountId,
|
|
369
368
|
trigger_seq: task.seq,
|
|
369
|
+
budget_run_id: budgetRunId,
|
|
370
370
|
})
|
|
371
371
|
.execute();
|
|
372
372
|
await t
|
|
@@ -379,9 +379,14 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
379
379
|
child_conversation_id: plan.childConversationId,
|
|
380
380
|
child_run_id: childRunId,
|
|
381
381
|
resumed: plan.resumed,
|
|
382
|
+
budget_run_id: budgetRunId,
|
|
383
|
+
for_skill: a.forSkill !== undefined,
|
|
382
384
|
})
|
|
383
385
|
.execute();
|
|
384
|
-
|
|
386
|
+
// an org agent runs on its own model (§5.4): a `model` on the call was ignored
|
|
387
|
+
const ownModel = plan.source === "agent" && input.model !== undefined;
|
|
388
|
+
const content = a.sent?.content ?? agentStartedText(plan.childConversationId, { ownModel });
|
|
389
|
+
const parentEvents = await d.eventLog.appendIn(ctx.conversationId, [
|
|
385
390
|
{
|
|
386
391
|
type: "subagent_dispatched",
|
|
387
392
|
runId: ctx.runId,
|
|
@@ -399,6 +404,11 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
399
404
|
...(a.forSkill !== undefined && { invokedSeq: a.forSkill.seq }),
|
|
400
405
|
},
|
|
401
406
|
},
|
|
407
|
+
// an `Agent` call's result is immediate (agent map spec §4.1): the sub-agent works in the
|
|
408
|
+
// background and reports through `subagent_delivery`; a fork invocation has no tool call
|
|
409
|
+
...(a.forSkill === undefined
|
|
410
|
+
? [resultEvent(ctx, callId, a.call?.toolKey ?? AGENT_TOOL, content)]
|
|
411
|
+
: []),
|
|
402
412
|
]);
|
|
403
413
|
await audit(t, {
|
|
404
414
|
actorAccountId: ctx.accountId,
|
|
@@ -419,14 +429,44 @@ export async function commitDispatchIn(d, a, plan, child) {
|
|
|
419
429
|
childRunId,
|
|
420
430
|
},
|
|
421
431
|
});
|
|
432
|
+
if (a.forSkill === undefined) {
|
|
433
|
+
await audit(t, {
|
|
434
|
+
actorAccountId: ctx.accountId,
|
|
435
|
+
orgId: ctx.orgId,
|
|
436
|
+
action: "tool.called",
|
|
437
|
+
target: ctx.conversationId,
|
|
438
|
+
detail: {
|
|
439
|
+
toolKey: a.sent !== undefined ? SEND_MESSAGE : AGENT_TOOL,
|
|
440
|
+
isError: false,
|
|
441
|
+
durationMs: a.call === undefined ? null : Math.max(0, Date.now() - a.call.startedAt),
|
|
442
|
+
agentId: ctx.agentId,
|
|
443
|
+
agentVersion: ctx.agentVersion,
|
|
444
|
+
conversationId: ctx.conversationId,
|
|
445
|
+
runId: ctx.runId,
|
|
446
|
+
callId,
|
|
447
|
+
...a.call?.authorization,
|
|
448
|
+
},
|
|
449
|
+
});
|
|
450
|
+
}
|
|
422
451
|
return {
|
|
423
452
|
kind: "written",
|
|
424
453
|
childRunId,
|
|
425
454
|
childSeq: task.seq,
|
|
426
|
-
parentSeq:
|
|
455
|
+
parentSeq: Math.max(...parentEvents.map((e) => e.seq)),
|
|
456
|
+
content,
|
|
427
457
|
};
|
|
428
458
|
}
|
|
429
|
-
|
|
459
|
+
/**
|
|
460
|
+
* The immediate `tool_result` of an `Agent` call ({@link agentStartedText}) or of a `SendMessage`
|
|
461
|
+
* that started an idle sub-agent, idempotent by the call.
|
|
462
|
+
*/
|
|
463
|
+
const resultEvent = (ctx, callId, toolKey, content) => ({
|
|
464
|
+
type: "tool_result",
|
|
465
|
+
runId: ctx.runId,
|
|
466
|
+
idemKey: `tool_result:${ctx.runId}:${callId}`,
|
|
467
|
+
payload: { step: ctx.step, callId, toolKey, content, isError: false },
|
|
468
|
+
});
|
|
469
|
+
export async function commit(d, a, plan,
|
|
430
470
|
/** Writes the child's events; `checked` is the org agent version the in-lock gates passed. */
|
|
431
471
|
child) {
|
|
432
472
|
const { ctx } = a;
|
|
@@ -447,11 +487,19 @@ child) {
|
|
|
447
487
|
err,
|
|
448
488
|
}));
|
|
449
489
|
}
|
|
450
|
-
|
|
490
|
+
if (out.result !== null)
|
|
491
|
+
await d.eventLog.notify(ctx.conversationId, out.result.seq);
|
|
492
|
+
return {
|
|
493
|
+
kind: "dispatched",
|
|
494
|
+
childRunId: out.childRunId,
|
|
495
|
+
childConversationId: out.childConversationId,
|
|
496
|
+
content: out.result?.content ?? a.sent?.content ?? agentStartedText(out.childConversationId),
|
|
497
|
+
};
|
|
451
498
|
}
|
|
452
499
|
// the result is never read: the run is over
|
|
453
|
-
if (out.kind === "stopped")
|
|
454
|
-
return refused(AGENT_REFUSALS.notAvailableHere);
|
|
500
|
+
if (out.kind === "stopped") {
|
|
501
|
+
return refused((a.sent?.refusals ?? AGENT_REFUSALS).notAvailableHere);
|
|
502
|
+
}
|
|
455
503
|
if (out.kind === "limit")
|
|
456
504
|
return refused(out.content);
|
|
457
505
|
if (out.kind === "gate")
|
|
@@ -467,31 +515,54 @@ child) {
|
|
|
467
515
|
// the dispatch is committed: the wait sweep re-enqueues the queued child run
|
|
468
516
|
d.log.error("cannot enqueue sub-agent run; the sweep retries", { childRunId, jobId, err });
|
|
469
517
|
}
|
|
470
|
-
return {
|
|
518
|
+
return {
|
|
519
|
+
kind: "dispatched",
|
|
520
|
+
childRunId,
|
|
521
|
+
childConversationId: plan.childConversationId,
|
|
522
|
+
content: out.content,
|
|
523
|
+
};
|
|
471
524
|
}
|
|
472
525
|
/**
|
|
473
|
-
* The §4.5 refusal of a dispatch the
|
|
474
|
-
* run's row
|
|
526
|
+
* The §4.5 refusal of a dispatch the limits forbid, or null (agent map spec §6). Runs under the
|
|
527
|
+
* parent conversation's, the parent run's and the budget run's row locks; `tokensUsed` is the
|
|
528
|
+
* budget run's counter read with its lock. A dispatch from a run at `maxDepth` is refused (the
|
|
529
|
+
* limit may have been lowered since the call's definition was frozen); tokens and dispatches
|
|
530
|
+
* (follow-ups included) count the whole tree on its budget run; concurrency counts the child
|
|
531
|
+
* conversations of the parent conversation that have an active run, whatever started that run.
|
|
475
532
|
*/
|
|
476
|
-
async function limitRefusal(t, d, ctx, tokensUsed) {
|
|
533
|
+
async function limitRefusal(t, d, ctx, budgetRunId, tokensUsed, texts) {
|
|
477
534
|
const limits = await subagentLimits(t, d.config, ctx.orgId);
|
|
478
|
-
if (
|
|
479
|
-
return
|
|
535
|
+
if (runDepth(ctx) >= limits.maxDepth)
|
|
536
|
+
return texts.depthLimit(limits.maxDepth);
|
|
537
|
+
// 0: no limit (the deployment config or the org's override)
|
|
538
|
+
if (limits.maxTokensPerRun > 0 && Number(tokensUsed) >= limits.maxTokensPerRun) {
|
|
539
|
+
return texts.budget(limits.maxTokensPerRun);
|
|
480
540
|
}
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
if (Number(counts.total) >= limits.maxDispatchesPerRun) {
|
|
491
|
-
return AGENT_REFUSALS.tooManyDispatches(limits.maxDispatchesPerRun);
|
|
541
|
+
if (limits.maxDispatchesPerRun > 0) {
|
|
542
|
+
const total = await t
|
|
543
|
+
.selectFrom("subagent_dispatches")
|
|
544
|
+
.select(sql `count(*)`.as("n"))
|
|
545
|
+
.where("budget_run_id", "=", budgetRunId)
|
|
546
|
+
.executeTakeFirstOrThrow();
|
|
547
|
+
if (Number(total.n) >= limits.maxDispatchesPerRun) {
|
|
548
|
+
return texts.tooManyDispatches(limits.maxDispatchesPerRun);
|
|
549
|
+
}
|
|
492
550
|
}
|
|
493
|
-
|
|
494
|
-
|
|
551
|
+
// every child conversation with an active run of any origin: a dispatch, a message it never
|
|
552
|
+
// absorbed (a continuation run) or a wake run all hold its slot
|
|
553
|
+
const active = await t
|
|
554
|
+
.selectFrom("conversations as c")
|
|
555
|
+
.select(sql `count(*)`.as("n"))
|
|
556
|
+
.where("c.parent_conversation_id", "=", ctx.conversationId)
|
|
557
|
+
.where("c.kind", "=", "subagent")
|
|
558
|
+
.where("c.deleted_at", "is", null)
|
|
559
|
+
.where(({ exists, selectFrom }) => exists(selectFrom("runs as cr")
|
|
560
|
+
.select(sql `1`.as("one"))
|
|
561
|
+
.whereRef("cr.conversation_id", "=", "c.id")
|
|
562
|
+
.where("cr.status", "in", ACTIVE_RUN_STATUSES)))
|
|
563
|
+
.executeTakeFirstOrThrow();
|
|
564
|
+
if (Number(active.n) >= limits.maxConcurrentPerConversation) {
|
|
565
|
+
return texts.tooManyConcurrent(limits.maxConcurrentPerConversation);
|
|
495
566
|
}
|
|
496
567
|
return null;
|
|
497
568
|
}
|
|
@@ -4,9 +4,15 @@ import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
|
4
4
|
export interface SubagentsConfig {
|
|
5
5
|
get(): Pick<KernelConfig, "subagents">;
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* The sub-agent limits of an organization (sub-agents spec §8.2, agent map spec §6): the depth
|
|
9
|
+
* below the root, the active children of one conversation, and the dispatches and tokens of one
|
|
10
|
+
* tree, counted on its budget run ({@link budgetRunOf}). `maxDispatchesPerRun` and
|
|
11
|
+
* `maxTokensPerRun` of 0 mean no limit.
|
|
12
|
+
*/
|
|
8
13
|
export interface SubagentLimits {
|
|
9
|
-
|
|
14
|
+
maxDepth: number;
|
|
15
|
+
maxConcurrentPerConversation: number;
|
|
10
16
|
maxDispatchesPerRun: number;
|
|
11
17
|
maxTokensPerRun: number;
|
|
12
18
|
}
|
|
@@ -21,8 +27,21 @@ export declare function subagentLimits(
|
|
|
21
27
|
/** The pool, or the context's handle (a `@Transactional` caller's transaction). */
|
|
22
28
|
db: KernelSchemaDb, config: SubagentsConfig, orgId: string): Promise<SubagentLimits>;
|
|
23
29
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
30
|
+
* The budget run of `runId` (agent map spec §6): its `budget_run_id`, or the run itself when it has
|
|
31
|
+
* none (a person-triggered run opens its own window) or does not exist. The dispatch count and the
|
|
32
|
+
* token counter of a whole tree live on this run.
|
|
33
|
+
*/
|
|
34
|
+
export declare function budgetRunOf(db: KernelSchemaDb, runId: string): Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* The current budget window of the tree rooted at `rootConversationId` (agent map spec §6): its
|
|
37
|
+
* newest run that opened its own window (`budget_run_id` null: a person-triggered run), or null
|
|
38
|
+
* when it has none. A wake run of any conversation of the tree carries it as its `budget_run_id`,
|
|
39
|
+
* so a chain of wakes never opens a new window.
|
|
40
|
+
*/
|
|
41
|
+
export declare function budgetWindowOf(db: KernelSchemaDb, rootConversationId: string): Promise<string | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Whether the sub-agents of a tree have used their token budget (§8.3): the budget run's
|
|
44
|
+
* `subagent_tokens_used`, read fresh, at or over `maxTokensPerRun` (never when it is 0: no limit). A sub-agent's step checks it
|
|
26
45
|
* before every model request and ends its run with `budget` when it is.
|
|
27
46
|
*/
|
|
28
|
-
export declare function subagentBudgetUsedUp(db: KernelSchemaDb, config: SubagentsConfig, orgId: string,
|
|
47
|
+
export declare function subagentBudgetUsedUp(db: KernelSchemaDb, config: SubagentsConfig, orgId: string, budgetRunId: string): Promise<boolean>;
|
|
@@ -13,24 +13,58 @@ db, config, orgId) {
|
|
|
13
13
|
const base = config.get().subagents;
|
|
14
14
|
const over = await readSubagentLimitOverride(db, orgId);
|
|
15
15
|
return {
|
|
16
|
-
|
|
16
|
+
maxDepth: over?.maxDepth ?? base.maxDepth,
|
|
17
|
+
maxConcurrentPerConversation: over?.maxConcurrentPerConversation ?? base.maxConcurrentPerConversation,
|
|
17
18
|
maxDispatchesPerRun: over?.maxDispatchesPerRun ?? base.maxDispatchesPerRun,
|
|
18
19
|
maxTokensPerRun: over?.maxTokensPerRun ?? base.maxTokensPerRun,
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
23
|
+
* The budget run of `runId` (agent map spec §6): its `budget_run_id`, or the run itself when it has
|
|
24
|
+
* none (a person-triggered run opens its own window) or does not exist. The dispatch count and the
|
|
25
|
+
* token counter of a whole tree live on this run.
|
|
26
|
+
*/
|
|
27
|
+
export async function budgetRunOf(db, runId) {
|
|
28
|
+
const row = await db
|
|
29
|
+
.selectFrom("runs")
|
|
30
|
+
.select("budget_run_id")
|
|
31
|
+
.where("id", "=", runId)
|
|
32
|
+
.executeTakeFirst();
|
|
33
|
+
return row?.budget_run_id ?? runId;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The current budget window of the tree rooted at `rootConversationId` (agent map spec §6): its
|
|
37
|
+
* newest run that opened its own window (`budget_run_id` null: a person-triggered run), or null
|
|
38
|
+
* when it has none. A wake run of any conversation of the tree carries it as its `budget_run_id`,
|
|
39
|
+
* so a chain of wakes never opens a new window.
|
|
40
|
+
*/
|
|
41
|
+
export async function budgetWindowOf(db, rootConversationId) {
|
|
42
|
+
const row = await db
|
|
43
|
+
.selectFrom("runs")
|
|
44
|
+
.select("id")
|
|
45
|
+
.where("conversation_id", "=", rootConversationId)
|
|
46
|
+
.where("budget_run_id", "is", null)
|
|
47
|
+
.orderBy("created_at", "desc")
|
|
48
|
+
.limit(1)
|
|
49
|
+
.executeTakeFirst();
|
|
50
|
+
return row?.id ?? null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Whether the sub-agents of a tree have used their token budget (§8.3): the budget run's
|
|
54
|
+
* `subagent_tokens_used`, read fresh, at or over `maxTokensPerRun` (never when it is 0: no limit). A sub-agent's step checks it
|
|
24
55
|
* before every model request and ends its run with `budget` when it is.
|
|
25
56
|
*/
|
|
26
|
-
export async function subagentBudgetUsedUp(db, config, orgId,
|
|
57
|
+
export async function subagentBudgetUsedUp(db, config, orgId, budgetRunId) {
|
|
58
|
+
const { maxTokensPerRun } = await subagentLimits(db, config, orgId);
|
|
59
|
+
// 0: no limit
|
|
60
|
+
if (maxTokensPerRun === 0)
|
|
61
|
+
return false;
|
|
27
62
|
const row = await db
|
|
28
63
|
.selectFrom("runs")
|
|
29
64
|
.select("subagent_tokens_used")
|
|
30
|
-
.where("id", "=",
|
|
65
|
+
.where("id", "=", budgetRunId)
|
|
31
66
|
.executeTakeFirst();
|
|
32
67
|
if (!row)
|
|
33
68
|
return false;
|
|
34
|
-
const { maxTokensPerRun } = await subagentLimits(db, config, orgId);
|
|
35
69
|
return Number(row.subagent_tokens_used) >= maxTokensPerRun;
|
|
36
70
|
}
|