@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.10
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 +85 -5
- package/dist/admin/admin.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +57 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- 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 +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- 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 +868 -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 +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -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 +77 -0
- package/dist/background/tasks.service.js +216 -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 +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +232 -0
- package/dist/catalog/catalog-content.js +367 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +290 -0
- package/dist/catalog/catalog-items.js +676 -0
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1124 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +141 -206
- package/dist/catalog/catalog.service.js +237 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- 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 +90 -0
- package/dist/catalog/component-scope.controller.js +234 -0
- package/dist/catalog/component-scope.schemas.d.ts +114 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +327 -0
- package/dist/catalog/component-scope.service.js +990 -0
- package/dist/catalog/component-state.d.ts +188 -0
- package/dist/catalog/component-state.js +455 -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 +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -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 +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +431 -472
- 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 +113 -0
- package/dist/catalog/org-extension.controller.js +271 -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 +801 -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 +223 -0
- package/dist/catalog/platform-components.js +763 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +270 -68
- package/dist/catalog/plugin-import.js +1004 -277
- package/dist/catalog/plugin-install.d.ts +251 -65
- package/dist/catalog/plugin-install.js +1128 -344
- package/dist/catalog/plugin-package.js +14 -1
- package/dist/catalog/plugin-upgrade.d.ts +301 -188
- package/dist/catalog/plugin-upgrade.js +1256 -1068
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- 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 +118 -0
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +550 -25
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +135 -2
- package/dist/errors.js +135 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -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 +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- 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 +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- 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 +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -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 +50 -2
- package/dist/extensions/registry.js +91 -4
- 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 +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +86 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- 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 +130 -38
- package/dist/identity/accounts.js +373 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- 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 +32 -15
- package/dist/identity/me.controller.js +78 -33
- package/dist/identity/me.schemas.d.ts +14 -0
- package/dist/identity/me.schemas.js +17 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +42 -23
- package/dist/identity/settings.js +137 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- 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 +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -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/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -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 +7 -0
- package/dist/models/models.module.js +36 -0
- 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 +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -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 +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +45 -14
- package/dist/orgs/settings.service.js +110 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -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 +667 -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 +90 -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.ops.d.ts +36 -0
- package/dist/platform/ops/admin.ops.js +389 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -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 +717 -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 +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -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 +853 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.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 +378 -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 +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -0
- package/dist/platform/ops/org-settings.ops.d.ts +16 -0
- package/dist/platform/ops/org-settings.ops.js +102 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +295 -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 +28 -0
- package/dist/platform/ops/platform.ops.js +204 -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/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +216 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -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 +39 -0
- package/dist/platform/platform-ops.module.js +122 -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 +63 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- 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/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-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/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- 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 +43 -0
- package/dist/runtime/run-control.js +89 -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 +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- 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 +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- 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 +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- 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 +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -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 +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- 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 +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- 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 +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- 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 +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- 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 +30 -20
- 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 +52 -45
- 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 +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- 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/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- 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 +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- 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 +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -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/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { TASK_ID_RE, TASKS_DIR } from "./launch.js";
|
|
2
|
+
import { decodeTail, killSessionScript, SID_RE, tailCommand } from "./session.js";
|
|
3
|
+
import { exitedAs } from "./stop.js";
|
|
4
|
+
/**
|
|
5
|
+
* The poll exec of one sandbox: for every task one line `<id> <exit code or -> <1|0> <tail or ->`.
|
|
6
|
+
* Liveness is asked before the exit file: a task ending in between is seen by its exit file, never
|
|
7
|
+
* as a task without process and exit file. A task whose command exited while its session still has
|
|
8
|
+
* processes (it left `server &` running) has the session killed in the same exec (so under the
|
|
9
|
+
* caller's lease), and is reported without a process once the session was confirmed empty: the
|
|
10
|
+
* task ends when its command exits, and nothing of it runs on untracked. The tail (base64) is read
|
|
11
|
+
* only for a task that exited or has no process left. Relative to the workspace root.
|
|
12
|
+
*/
|
|
13
|
+
export function pollScript(tasks) {
|
|
14
|
+
const lines = tasks.map(({ id, sid }) => {
|
|
15
|
+
if (!TASK_ID_RE.test(id) || !SID_RE.test(sid)) {
|
|
16
|
+
throw new Error(`invalid background task ${JSON.stringify(id)} / ${JSON.stringify(sid)}`);
|
|
17
|
+
}
|
|
18
|
+
const f = `${TASKS_DIR}/${id}`;
|
|
19
|
+
return [
|
|
20
|
+
`if pgrep -s ${sid} >/dev/null 2>&1; then a=1; else a=0; fi`,
|
|
21
|
+
`if [ -s ${f}.exit ]; then c=$(tr -dc '0-9-' < ${f}.exit); else c=-; fi`,
|
|
22
|
+
`[ -n "$c" ] || c=-`,
|
|
23
|
+
`if [ "$c" != - ] && [ "$a" = 1 ]; then ${killSessionScript(sid)}; [ "$ks" = 0 ] && a=0; fi`,
|
|
24
|
+
`if [ "$c" != - ] || [ "$a" = 0 ]; then t=$(${tailCommand(id)}); else t=; fi`,
|
|
25
|
+
`echo "${id} $c $a \${t:--}"`,
|
|
26
|
+
].join("\n");
|
|
27
|
+
});
|
|
28
|
+
return lines.join("\n");
|
|
29
|
+
}
|
|
30
|
+
/** Parses {@link pollScript}'s output; a task missing from it is absent from the map. */
|
|
31
|
+
export function parsePollOutput(stdout) {
|
|
32
|
+
const out = new Map();
|
|
33
|
+
for (const line of stdout.split("\n")) {
|
|
34
|
+
const m = /^(bt_[a-z2-7]{6}) (-?[0-9]+|-) ([01]) (\S+)$/.exec(line.trim());
|
|
35
|
+
if (!m)
|
|
36
|
+
continue;
|
|
37
|
+
const [, id, code, alive, tail] = m;
|
|
38
|
+
out.set(id, {
|
|
39
|
+
exitCode: code === "-" ? null : Number(code),
|
|
40
|
+
alive: alive === "1",
|
|
41
|
+
lastLines: tail === "-" ? "" : decodeTail(tail),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* How a polled task ends, or null while it runs (spec §4.3). A task whose command exited but whose
|
|
48
|
+
* leftover processes could not be confirmed killed ({@link pollScript}) stays running: the next
|
|
49
|
+
* poll kills them again before it finishes.
|
|
50
|
+
*/
|
|
51
|
+
export function polledAs(task, r, now) {
|
|
52
|
+
if (r.exitCode !== null)
|
|
53
|
+
return r.alive ? null : exitedAs(task, r.exitCode, now);
|
|
54
|
+
if (r.alive)
|
|
55
|
+
return null;
|
|
56
|
+
return { status: "lost", lostReason: "process_gone", killPending: false };
|
|
57
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
2
|
+
import type { KernelLogger } from "../log.js";
|
|
3
|
+
import { SandboxService } from "../sandbox/sandbox.service.js";
|
|
4
|
+
import { type BackgroundFinish, BackgroundTaskFinisher } from "./finish.js";
|
|
5
|
+
import { type BackgroundTaskRow, BackgroundTaskStore } from "./store.js";
|
|
6
|
+
/** Why a task is stopped. */
|
|
7
|
+
export type StopReason = "tool" | "person" | "subagent_end" | "conversation_deleted";
|
|
8
|
+
/** How long a stop waits after SIGTERM before SIGKILL (spec §2.3). */
|
|
9
|
+
export declare const STOP_GRACE_MS = 5000;
|
|
10
|
+
/** How a task that exited by itself ends (spec §4.3): exit 137 past its deadline timed out. */
|
|
11
|
+
export declare function exitedAs(task: BackgroundTaskRow, code: number, now: Date): BackgroundFinish;
|
|
12
|
+
/** How a task whose sandbox is not running ends (`ifRunning`'s `not_running` status). */
|
|
13
|
+
export declare function notRunningAs(status: string, killPending: boolean): BackgroundFinish;
|
|
14
|
+
/** A task found in another sandbox instance (a rebuild): its processes are gone with the old one. */
|
|
15
|
+
export declare const RECREATED: BackgroundFinish;
|
|
16
|
+
/**
|
|
17
|
+
* Stops background tasks (spec 2026-11-05-background-bash-design §2.3, §4.3): SIGTERM to the
|
|
18
|
+
* task's session, up to 5 s for it to empty, then SIGKILL until it is empty, all through
|
|
19
|
+
* `SandboxService.ifRunning` (it never creates or resumes a sandbox); the task then finishes as
|
|
20
|
+
* `stopped` with its last 20 lines. A task that had already exited finishes as its exit says. When
|
|
21
|
+
* the sandbox is not running the task finishes as `lost` with `kill_pending` (killed right after a
|
|
22
|
+
* resume); in a rebuilt sandbox as `lost` (`sandbox_recreated`). Processes a task that had
|
|
23
|
+
* already exited left running are killed as well.
|
|
24
|
+
*/
|
|
25
|
+
export declare class BackgroundTaskStopper {
|
|
26
|
+
private readonly store;
|
|
27
|
+
private readonly finisher;
|
|
28
|
+
private readonly sandbox;
|
|
29
|
+
private readonly db;
|
|
30
|
+
private readonly log;
|
|
31
|
+
constructor(store: Pick<BackgroundTaskStore, "get" | "runningOwnedBy" | "runningIn" | "claimStop" | "releaseStop">, finisher: BackgroundTaskFinisher, sandbox: Pick<SandboxService, "ifRunning">, db: KernelDb, log: Pick<KernelLogger, "warn">);
|
|
32
|
+
/**
|
|
33
|
+
* Stops `task` and returns its row afterwards. A task that is no longer running, or that another
|
|
34
|
+
* live stop already claimed, is returned as it is now.
|
|
35
|
+
*
|
|
36
|
+
* The stop first claims the task (`stopping_at`), so the poller leaves it alone while the
|
|
37
|
+
* signals take effect and the stop's finish is its only one. A reservation whose launch has not
|
|
38
|
+
* started the command yet (no `sid`) is only claimed: the launch then kills what it starts and
|
|
39
|
+
* finishes the row `stopped`. When the stop fails while the sandbox runs (busy, a provider
|
|
40
|
+
* error, a session that could not be confirmed empty), the claim is given up, the task stays
|
|
41
|
+
* `running` and the error is thrown.
|
|
42
|
+
*/
|
|
43
|
+
stop(task: BackgroundTaskRow, why: StopReason, signal?: AbortSignal): Promise<BackgroundTaskRow>;
|
|
44
|
+
/**
|
|
45
|
+
* SIGTERM, the grace period, SIGKILL until the session is empty, then the last lines: in the
|
|
46
|
+
* task's own instance only (`ifRunning`); a task from before environments has none.
|
|
47
|
+
*/
|
|
48
|
+
private signalTask;
|
|
49
|
+
/**
|
|
50
|
+
* After a sub-agent run ended (spec §4.3): stops the running tasks of `conversationId` when it
|
|
51
|
+
* is a sub-agent's conversation; any other conversation is left alone. With `runId`, only the
|
|
52
|
+
* tasks that run started (a fork child's run: a later run of the same child keeps its own when
|
|
53
|
+
* an older run's end is handled late); without, all of them (a stopped background child, agent
|
|
54
|
+
* map spec §6). Their finish is marked `stoppedBy: "subagent_end"`, so it never wakes the child.
|
|
55
|
+
* Never throws (see {@link stopAll}).
|
|
56
|
+
*/
|
|
57
|
+
stopSubagentTasks(conversationId: string, runId?: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Before a conversation is deleted: stops every running task in its sandbox (its own and its
|
|
60
|
+
* sub-agents'). Never throws (see {@link stopAll}).
|
|
61
|
+
*/
|
|
62
|
+
stopForDeletedConversation(conversationId: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Stops `tasks` side by side. A stop that fails while the sandbox runs leaves its task running
|
|
65
|
+
* (logged): the poller still checks it and it ends at its own deadline at the latest.
|
|
66
|
+
*/
|
|
67
|
+
private stopAll;
|
|
68
|
+
}
|
|
@@ -0,0 +1,244 @@
|
|
|
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 { rootsOf } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
13
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
14
|
+
import { SandboxService } from "../sandbox/sandbox.service.js";
|
|
15
|
+
import { BackgroundTaskFinisher, } from "./finish.js";
|
|
16
|
+
import { TASKS_DIR } from "./launch.js";
|
|
17
|
+
import { actingAs, assertTaskRef, decodeTail, killSession, tailCommand, taskActor, } from "./session.js";
|
|
18
|
+
import { BackgroundTaskStore } from "./store.js";
|
|
19
|
+
/** How long a stop waits after SIGTERM before SIGKILL (spec §2.3). */
|
|
20
|
+
export const STOP_GRACE_MS = 5000;
|
|
21
|
+
/** The time limit of the SIGTERM exec: the grace period plus some room. */
|
|
22
|
+
const TERM_EXEC_TIMEOUT_MS = STOP_GRACE_MS + 5000;
|
|
23
|
+
/** The time limit of reading the last lines after a stop. */
|
|
24
|
+
const TAIL_EXEC_TIMEOUT_MS = 10_000;
|
|
25
|
+
/**
|
|
26
|
+
* Exit code 0 with `exited <code>` when the task had already finished (its exit file exists),
|
|
27
|
+
* else sends SIGTERM to the session and waits up to {@link STOP_GRACE_MS} for it to empty, then
|
|
28
|
+
* prints `term`. Relative to the workspace root.
|
|
29
|
+
*/
|
|
30
|
+
function termScript(id, sid) {
|
|
31
|
+
const f = `${TASKS_DIR}/${id}`;
|
|
32
|
+
const tries = Math.ceil(STOP_GRACE_MS / 200);
|
|
33
|
+
return [
|
|
34
|
+
`if [ -s ${f}.exit ]; then echo "exited $(cat ${f}.exit)"; exit 0; fi`,
|
|
35
|
+
`pkill -TERM -s ${sid} >/dev/null 2>&1`,
|
|
36
|
+
`i=0; while [ "$i" -lt ${tries} ] && pgrep -s ${sid} >/dev/null 2>&1; do sleep 0.2; i=$((i+1)); done`,
|
|
37
|
+
"echo term",
|
|
38
|
+
].join("\n");
|
|
39
|
+
}
|
|
40
|
+
/** How a task that exited by itself ends (spec §4.3): exit 137 past its deadline timed out. */
|
|
41
|
+
export function exitedAs(task, code, now) {
|
|
42
|
+
if (code === 0)
|
|
43
|
+
return { status: "completed", exitCode: 0 };
|
|
44
|
+
if (code === 137 && now.getTime() >= task.deadlineAt.getTime()) {
|
|
45
|
+
return { status: "timed_out", exitCode: 137 };
|
|
46
|
+
}
|
|
47
|
+
return { status: "failed", exitCode: code };
|
|
48
|
+
}
|
|
49
|
+
/** How a task whose sandbox is not running ends (`ifRunning`'s `not_running` status). */
|
|
50
|
+
export function notRunningAs(status, killPending) {
|
|
51
|
+
return {
|
|
52
|
+
status: "lost",
|
|
53
|
+
lostReason: status === "suspended" ? "sandbox_suspended" : "sandbox_gone",
|
|
54
|
+
killPending,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** A task found in another sandbox instance (a rebuild): its processes are gone with the old one. */
|
|
58
|
+
export const RECREATED = {
|
|
59
|
+
status: "lost",
|
|
60
|
+
lostReason: "sandbox_recreated",
|
|
61
|
+
killPending: false,
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Stops background tasks (spec 2026-11-05-background-bash-design §2.3, §4.3): SIGTERM to the
|
|
65
|
+
* task's session, up to 5 s for it to empty, then SIGKILL until it is empty, all through
|
|
66
|
+
* `SandboxService.ifRunning` (it never creates or resumes a sandbox); the task then finishes as
|
|
67
|
+
* `stopped` with its last 20 lines. A task that had already exited finishes as its exit says. When
|
|
68
|
+
* the sandbox is not running the task finishes as `lost` with `kill_pending` (killed right after a
|
|
69
|
+
* resume); in a rebuilt sandbox as `lost` (`sandbox_recreated`). Processes a task that had
|
|
70
|
+
* already exited left running are killed as well.
|
|
71
|
+
*/
|
|
72
|
+
let BackgroundTaskStopper = class BackgroundTaskStopper {
|
|
73
|
+
store;
|
|
74
|
+
finisher;
|
|
75
|
+
sandbox;
|
|
76
|
+
db;
|
|
77
|
+
log;
|
|
78
|
+
constructor(store, finisher, sandbox, db, log) {
|
|
79
|
+
this.store = store;
|
|
80
|
+
this.finisher = finisher;
|
|
81
|
+
this.sandbox = sandbox;
|
|
82
|
+
this.db = db;
|
|
83
|
+
this.log = log;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Stops `task` and returns its row afterwards. A task that is no longer running, or that another
|
|
87
|
+
* live stop already claimed, is returned as it is now.
|
|
88
|
+
*
|
|
89
|
+
* The stop first claims the task (`stopping_at`), so the poller leaves it alone while the
|
|
90
|
+
* signals take effect and the stop's finish is its only one. A reservation whose launch has not
|
|
91
|
+
* started the command yet (no `sid`) is only claimed: the launch then kills what it starts and
|
|
92
|
+
* finishes the row `stopped`. When the stop fails while the sandbox runs (busy, a provider
|
|
93
|
+
* error, a session that could not be confirmed empty), the claim is given up, the task stays
|
|
94
|
+
* `running` and the error is thrown.
|
|
95
|
+
*/
|
|
96
|
+
async stop(task, why, signal) {
|
|
97
|
+
if (!(await this.store.claimStop(task.id)))
|
|
98
|
+
return (await this.store.get(task.id)) ?? task;
|
|
99
|
+
// read after the claim: a launch recording its session before the claim is seen here, one
|
|
100
|
+
// recording it after sees the claim (both are single-row updates of the same row)
|
|
101
|
+
const cur = (await this.store.get(task.id)) ?? task;
|
|
102
|
+
if (cur.status !== "running" || cur.sid === null || cur.sandboxCreatedAt === null)
|
|
103
|
+
return cur;
|
|
104
|
+
const started = { ...cur, sandboxCreatedAt: cur.sandboxCreatedAt };
|
|
105
|
+
const sid = cur.sid;
|
|
106
|
+
assertTaskRef(cur.id, sid);
|
|
107
|
+
const reported = why === "tool";
|
|
108
|
+
// a person's stop never wakes the conversation (background Bash §3, fix round 1), nor does
|
|
109
|
+
// the stop of a conversation being deleted or of a sub-agent that ended (agent map spec §5.3)
|
|
110
|
+
const stoppedBy = why === "person"
|
|
111
|
+
? "person"
|
|
112
|
+
: why === "conversation_deleted"
|
|
113
|
+
? "deletion"
|
|
114
|
+
: why === "subagent_end"
|
|
115
|
+
? "subagent_end"
|
|
116
|
+
: undefined;
|
|
117
|
+
const opts = stoppedBy === undefined ? {} : { stoppedBy };
|
|
118
|
+
let r;
|
|
119
|
+
try {
|
|
120
|
+
r = await this.signalTask(started, sid, signal);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
await this.store
|
|
124
|
+
.releaseStop(cur.id)
|
|
125
|
+
.catch((e) => this.log.warn("cannot release a background task stop", { taskId: cur.id, err: e }));
|
|
126
|
+
throw err;
|
|
127
|
+
}
|
|
128
|
+
if (r.kind === "ran") {
|
|
129
|
+
await this.finisher.finish(cur, r.value.to, r.value.lastLines, reported, opts);
|
|
130
|
+
}
|
|
131
|
+
else if (r.kind === "not_running") {
|
|
132
|
+
await this.finisher.finish(cur, notRunningAs(r.status, true), "", reported, opts);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
await this.finisher.finish(cur, RECREATED, "", reported, opts);
|
|
136
|
+
}
|
|
137
|
+
return (await this.store.get(cur.id)) ?? cur;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* SIGTERM, the grace period, SIGKILL until the session is empty, then the last lines: in the
|
|
141
|
+
* task's own instance only (`ifRunning`); a task from before environments has none.
|
|
142
|
+
*/
|
|
143
|
+
async signalTask(cur, sid, signal) {
|
|
144
|
+
if (cur.environmentId === null)
|
|
145
|
+
return { kind: "not_running", status: "gone" };
|
|
146
|
+
return this.sandbox.ifRunning(cur.environmentId, { createdAt: cur.sandboxCreatedAt }, async (tp, h, sig) => {
|
|
147
|
+
const p = actingAs(tp, taskActor(cur));
|
|
148
|
+
const term = await p.exec(h, {
|
|
149
|
+
command: termScript(cur.id, sid),
|
|
150
|
+
cwd: rootsOf(h).workspace,
|
|
151
|
+
timeoutMs: TERM_EXEC_TIMEOUT_MS,
|
|
152
|
+
maxOutputBytes: 4096,
|
|
153
|
+
signal: sig,
|
|
154
|
+
});
|
|
155
|
+
const exited = /^exited (-?[0-9]+)$/.exec(term.stdout.trim());
|
|
156
|
+
if (term.exitCode !== 0 || (!exited && term.stdout.trim() !== "term")) {
|
|
157
|
+
throw new Error(`the stop of background task ${cur.id} failed (${term.exitCode})`);
|
|
158
|
+
}
|
|
159
|
+
// also after an exit: processes the command left running are stopped with the task
|
|
160
|
+
if (!(await killSession(p, h, sid))) {
|
|
161
|
+
throw new Error(`background task ${cur.id} could not be confirmed stopped`);
|
|
162
|
+
}
|
|
163
|
+
const tail = await p.exec(h, {
|
|
164
|
+
command: tailCommand(cur.id),
|
|
165
|
+
cwd: rootsOf(h).workspace,
|
|
166
|
+
timeoutMs: TAIL_EXEC_TIMEOUT_MS,
|
|
167
|
+
maxOutputBytes: 64 * 1024,
|
|
168
|
+
signal: sig,
|
|
169
|
+
});
|
|
170
|
+
const lastLines = tail.exitCode === 0 ? decodeTail(tail.stdout) : "";
|
|
171
|
+
// a task that had exited before the signal ends as its exit says
|
|
172
|
+
const to = exited
|
|
173
|
+
? exitedAs(cur, Number(exited[1]), new Date())
|
|
174
|
+
: { status: "stopped" };
|
|
175
|
+
return { to, lastLines };
|
|
176
|
+
}, signal);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* After a sub-agent run ended (spec §4.3): stops the running tasks of `conversationId` when it
|
|
180
|
+
* is a sub-agent's conversation; any other conversation is left alone. With `runId`, only the
|
|
181
|
+
* tasks that run started (a fork child's run: a later run of the same child keeps its own when
|
|
182
|
+
* an older run's end is handled late); without, all of them (a stopped background child, agent
|
|
183
|
+
* map spec §6). Their finish is marked `stoppedBy: "subagent_end"`, so it never wakes the child.
|
|
184
|
+
* Never throws (see {@link stopAll}).
|
|
185
|
+
*/
|
|
186
|
+
async stopSubagentTasks(conversationId, runId) {
|
|
187
|
+
try {
|
|
188
|
+
const conv = await this.db
|
|
189
|
+
.selectFrom("conversations")
|
|
190
|
+
.select("kind")
|
|
191
|
+
.where("id", "=", conversationId)
|
|
192
|
+
.executeTakeFirst();
|
|
193
|
+
if (conv?.kind !== "subagent")
|
|
194
|
+
return;
|
|
195
|
+
const tasks = (await this.store.runningOwnedBy(conversationId)).filter((t) => runId === undefined || t.runId === runId);
|
|
196
|
+
await this.stopAll(tasks, "subagent_end");
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
this.log.warn("cannot stop the background tasks of a finished sub-agent run", {
|
|
200
|
+
conversationId,
|
|
201
|
+
runId,
|
|
202
|
+
err,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Before a conversation is deleted: stops every running task in its sandbox (its own and its
|
|
208
|
+
* sub-agents'). Never throws (see {@link stopAll}).
|
|
209
|
+
*/
|
|
210
|
+
async stopForDeletedConversation(conversationId) {
|
|
211
|
+
try {
|
|
212
|
+
await this.stopAll(await this.store.runningIn(conversationId), "conversation_deleted");
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
this.log.warn("cannot stop the background tasks of a deleted conversation", {
|
|
216
|
+
conversationId,
|
|
217
|
+
err,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Stops `tasks` side by side. A stop that fails while the sandbox runs leaves its task running
|
|
223
|
+
* (logged): the poller still checks it and it ends at its own deadline at the latest.
|
|
224
|
+
*/
|
|
225
|
+
async stopAll(tasks, why) {
|
|
226
|
+
await Promise.all(tasks.map(async (t) => {
|
|
227
|
+
try {
|
|
228
|
+
await this.stop(t, why);
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
this.log.warn("cannot stop a background task; it keeps running", { taskId: t.id, err });
|
|
232
|
+
}
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
BackgroundTaskStopper = __decorate([
|
|
237
|
+
Injectable(),
|
|
238
|
+
__param(0, Inject(BackgroundTaskStore)),
|
|
239
|
+
__param(1, Inject(BackgroundTaskFinisher)),
|
|
240
|
+
__param(2, Inject(SandboxService)),
|
|
241
|
+
__param(3, Inject(KernelDb)),
|
|
242
|
+
__param(4, Inject(KERNEL_LOGGER))
|
|
243
|
+
], BackgroundTaskStopper);
|
|
244
|
+
export { BackgroundTaskStopper };
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
2
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
3
|
+
import { BackgroundLaunchLock } from "./launch-lock.js";
|
|
4
|
+
export type BackgroundTaskStatus = "running" | "completed" | "failed" | "stopped" | "timed_out" | "lost";
|
|
5
|
+
/** A task as the kernel reads it: the columns of `capybara.background_tasks`, camel-cased. */
|
|
6
|
+
export interface BackgroundTaskRow {
|
|
7
|
+
id: string;
|
|
8
|
+
orgId: string;
|
|
9
|
+
/** The owner: the child conversation for a sub-agent. */
|
|
10
|
+
conversationId: string;
|
|
11
|
+
/**
|
|
12
|
+
* The root conversation of the owner's tree: `sandbox.background.maxTasks` counts per root
|
|
13
|
+
* conversation.
|
|
14
|
+
*/
|
|
15
|
+
sandboxConversationId: string;
|
|
16
|
+
/**
|
|
17
|
+
* The environment the task runs in (the root conversation's when it was launched): its instance
|
|
18
|
+
* is where the task's processes are. Null only for tasks from before environments (all finished).
|
|
19
|
+
*/
|
|
20
|
+
environmentId: string | null;
|
|
21
|
+
runId: string;
|
|
22
|
+
callId: string;
|
|
23
|
+
triggerAccountId: string;
|
|
24
|
+
description: string;
|
|
25
|
+
command: string;
|
|
26
|
+
/**
|
|
27
|
+
* The session id (the pid `setsid` started). Null while the launch is reserved but has not
|
|
28
|
+
* started: readers that act on the process (the poller, stops) skip such a row.
|
|
29
|
+
*/
|
|
30
|
+
sid: string | null;
|
|
31
|
+
/**
|
|
32
|
+
* The output file: absolute once the task started (`markStarted` records it under its
|
|
33
|
+
* instance's workspace root), relative to the workspace root while reserved
|
|
34
|
+
* (`taskOutputFile` in launch.ts).
|
|
35
|
+
*/
|
|
36
|
+
outputPath: string;
|
|
37
|
+
status: BackgroundTaskStatus;
|
|
38
|
+
lostReason: string | null;
|
|
39
|
+
exitCode: number | null;
|
|
40
|
+
startedAt: Date;
|
|
41
|
+
finishedAt: Date | null;
|
|
42
|
+
deadlineAt: Date;
|
|
43
|
+
/** The sandbox instance the task started in; null while reserved, like `sid`. */
|
|
44
|
+
sandboxCreatedAt: Date | null;
|
|
45
|
+
/** Marked lost while its process may still exist. */
|
|
46
|
+
killPending: boolean;
|
|
47
|
+
/** The bytes `TaskOutput` has already returned. */
|
|
48
|
+
readOffset: number;
|
|
49
|
+
/** When a stop claimed the task ({@link BackgroundTaskStore.claimStop}); null otherwise. */
|
|
50
|
+
stoppingAt: Date | null;
|
|
51
|
+
}
|
|
52
|
+
export type BackgroundTaskInsert = Omit<BackgroundTaskRow, "status" | "finishedAt" | "exitCode" | "lostReason" | "killPending" | "readOffset" | "stoppingAt">;
|
|
53
|
+
/** A launch's reservation: the row before the command started (no `sid`, no instance yet). */
|
|
54
|
+
export type BackgroundTaskReservation = Omit<BackgroundTaskInsert, "sid" | "sandboxCreatedAt">;
|
|
55
|
+
/**
|
|
56
|
+
* How long a stop's claim holds: a claim older than this is abandoned (its stopper died), so the
|
|
57
|
+
* poller checks the task again and another stop may claim it. Longer than any stop takes (the
|
|
58
|
+
* lease wait, the SIGTERM grace, the kill and the tail).
|
|
59
|
+
*/
|
|
60
|
+
export declare const STOP_CLAIM_TTL_MS: number;
|
|
61
|
+
/**
|
|
62
|
+
* Background Bash tasks (spec §4.1): one `capybara.background_tasks` row per command started with
|
|
63
|
+
* `run_in_background`. The store only reads and writes rows; the launch, the poller and the tools
|
|
64
|
+
* that drive them are other providers.
|
|
65
|
+
*
|
|
66
|
+
* A launch first reserves its row ({@link BackgroundTaskStore.reserve}: `running`, `sid` null),
|
|
67
|
+
* then starts the command and sets `sid` ({@link BackgroundTaskStore.markStarted}), or finishes
|
|
68
|
+
* the row as `failed` ({@link BackgroundTaskStore.failLaunch}). A running row with a null `sid`
|
|
69
|
+
* counts against `maxTasks` but has no process to check or stop: the poller and stops must skip
|
|
70
|
+
* it (the launch that reserved it settles it; one left over by a launch that died is failed by the
|
|
71
|
+
* poller, {@link BackgroundTaskStore.failAbandonedLaunches}).
|
|
72
|
+
*/
|
|
73
|
+
export declare class BackgroundTaskStore {
|
|
74
|
+
private readonly db;
|
|
75
|
+
readonly txHost: TransactionHost;
|
|
76
|
+
private readonly launchLock;
|
|
77
|
+
constructor(db: KernelDb, txHost: TransactionHost, launchLock: BackgroundLaunchLock);
|
|
78
|
+
/**
|
|
79
|
+
* Reserves a launch: under the root conversation's launch lock, counts the running tasks of
|
|
80
|
+
* `row.sandboxConversationId` and inserts `row` as `running` (no `sid`) when fewer than
|
|
81
|
+
* `maxTasks` run. False (nothing written) when that conversation tree already runs `maxTasks`.
|
|
82
|
+
*/
|
|
83
|
+
reserve(row: BackgroundTaskReservation, maxTasks: number): Promise<boolean>;
|
|
84
|
+
/**
|
|
85
|
+
* Records the started command of a reserved row: `started`, or `stopping` when a stop claimed the
|
|
86
|
+
* reservation meanwhile (the launch then kills the command and finishes the row with
|
|
87
|
+
* {@link finishStoppedLaunch}); false when the row is no longer running.
|
|
88
|
+
*/
|
|
89
|
+
markStarted(id: string, to: {
|
|
90
|
+
sid: string;
|
|
91
|
+
sandboxCreatedAt: Date;
|
|
92
|
+
outputPath?: string;
|
|
93
|
+
}): Promise<"started" | "stopping" | false>;
|
|
94
|
+
/**
|
|
95
|
+
* Finishes a launch whose reservation a stop claimed, once the launch killed what it started:
|
|
96
|
+
* `stopped`. No `background_task_finished` event: the launching call reports it itself.
|
|
97
|
+
*/
|
|
98
|
+
finishStoppedLaunch(id: string): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Claims a running task for a stop (`stopping_at`): false when it is no longer running or another
|
|
101
|
+
* live stop claimed it ({@link STOP_CLAIM_TTL_MS}). While claimed the poller leaves it alone.
|
|
102
|
+
*/
|
|
103
|
+
claimStop(id: string): Promise<boolean>;
|
|
104
|
+
/** Gives up a stop's claim (the stop failed while the sandbox runs: the task keeps running). */
|
|
105
|
+
releaseStop(id: string): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Finishes a reserved row whose launch failed as `failed`, with `reason` in `lost_reason` (and a
|
|
108
|
+
* stop's claim cleared); a row that already has its sid (the command started and is tracked) is
|
|
109
|
+
* left as it is. No `background_task_finished` event: the launching call reports the failure
|
|
110
|
+
* itself.
|
|
111
|
+
*/
|
|
112
|
+
failLaunch(id: string, reason: string): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Finishes as `failed` (`lost_reason` `launch_abandoned`) every reservation that started before
|
|
115
|
+
* `before`, never got its sid and is not claimed by a live stop: the launch that reserved it died
|
|
116
|
+
* (a crashed replica). A stop's claim older than {@link STOP_CLAIM_TTL_MS} does not hold it: a
|
|
117
|
+
* stop only claims a reservation and leaves the rest to the launch, so a dead launch would keep
|
|
118
|
+
* it (and its slot of `maxTasks`) forever. Conditional on `sid` still null, so a launch
|
|
119
|
+
* completing at that moment wins. No `background_task_finished` event: the command never
|
|
120
|
+
* started and the model never saw its id. Returns the rows it finished (their owner and sandbox
|
|
121
|
+
* conversations, for the caller's `changed: "background"` frames).
|
|
122
|
+
*/
|
|
123
|
+
failAbandonedLaunches(before: Date): Promise<{
|
|
124
|
+
id: string;
|
|
125
|
+
conversationId: string;
|
|
126
|
+
sandboxConversationId: string;
|
|
127
|
+
}[]>;
|
|
128
|
+
insert(row: BackgroundTaskInsert): Promise<void>;
|
|
129
|
+
get(id: string): Promise<BackgroundTaskRow | undefined>;
|
|
130
|
+
/** The running tasks of one root conversation's tree, oldest first. */
|
|
131
|
+
runningIn(sandboxConversationId: string): Promise<BackgroundTaskRow[]>;
|
|
132
|
+
/**
|
|
133
|
+
* Every running task that has started (its `sid` is set) and no live stop claimed, across
|
|
134
|
+
* sandboxes, oldest first: what the poller checks. A reservation still launching (`sid` null) is
|
|
135
|
+
* left to its launch, a claimed task to its stop.
|
|
136
|
+
*/
|
|
137
|
+
runningStarted(): Promise<BackgroundTaskRow[]>;
|
|
138
|
+
/** The running tasks one conversation owns (not those of its sub-agents), oldest first. */
|
|
139
|
+
runningOwnedBy(conversationId: string): Promise<BackgroundTaskRow[]>;
|
|
140
|
+
/** The running tasks of one root conversation's tree (what `maxTasks` limits). */
|
|
141
|
+
countRunning(sandboxConversationId: string): Promise<number>;
|
|
142
|
+
/** The tasks owned by any of the conversations, newest first. */
|
|
143
|
+
listFor(conversationIds: string[]): Promise<BackgroundTaskRow[]>;
|
|
144
|
+
/**
|
|
145
|
+
* Conditional `running` to a final status; false when the row was no longer running (another
|
|
146
|
+
* path finished it first), or, with `opts.unclaimed` (the poller), when a live stop claimed it.
|
|
147
|
+
* The caller's transaction also appends the finished event.
|
|
148
|
+
*/
|
|
149
|
+
finish(id: string, to: {
|
|
150
|
+
status: Exclude<BackgroundTaskStatus, "running">;
|
|
151
|
+
exitCode?: number | null;
|
|
152
|
+
lostReason?: string;
|
|
153
|
+
killPending?: boolean;
|
|
154
|
+
}, opts?: {
|
|
155
|
+
unclaimed?: boolean;
|
|
156
|
+
}): Promise<boolean>;
|
|
157
|
+
/** Moves the read offset forward only (a concurrent reader never moves it back). */
|
|
158
|
+
advanceOffset(id: string, to: number): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Finished tasks of an environment whose process may still exist (any conversation's: they
|
|
161
|
+
* share the instance).
|
|
162
|
+
*/
|
|
163
|
+
pendingKills(environmentId: string): Promise<BackgroundTaskRow[]>;
|
|
164
|
+
clearKill(ids: string[]): Promise<void>;
|
|
165
|
+
/** Deletes finished tasks that ended before `before`; a running one is never deleted. */
|
|
166
|
+
pruneFinished(before: Date): Promise<number>;
|
|
167
|
+
}
|