@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +94 -5
- package/dist/admin/admin-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +876 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +109 -0
- package/dist/background/tasks.service.js +271 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -1
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +102 -0
- package/dist/catalog/component-scope.controller.js +257 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +30 -0
- package/dist/catalog/job-ids.js +25 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +133 -0
- package/dist/catalog/org-extension.controller.js +313 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -343
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +85 -10
- package/dist/extensions/bootstrap.js +215 -36
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +94 -9
- package/dist/extensions/deployment-config.js +255 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +77 -31
- package/dist/identity/accounts.js +133 -52
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +17 -1
- package/dist/identity/me.controller.js +45 -4
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- package/dist/inbox/inbox.service.js +74 -4
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +9 -3
- package/dist/lifecycle/kernel-lifecycle.js +51 -11
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +774 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +102 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +730 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +381 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +298 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +43 -0
- package/dist/platform/platform-ops.module.js +142 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +21 -1
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.js +2 -1
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +33 -0
- package/dist/themes/themes-public.controller.js +98 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +29 -19
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +51 -44
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +61 -4
- package/dist/tools/info.js +119 -33
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -0,0 +1,195 @@
|
|
|
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 { EventLog } from "../conversations/event-log.js";
|
|
13
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
14
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
15
|
+
import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
|
|
16
|
+
import { LockedInterval } from "../infra/schedule/locked-interval.js";
|
|
17
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
18
|
+
import { SandboxService, } from "../sandbox/sandbox.service.js";
|
|
19
|
+
import { sandboxBaseTimeoutMs } from "../tools/builtins/sandbox/common.js";
|
|
20
|
+
import { BackgroundTaskFinisher } from "./finish.js";
|
|
21
|
+
import { LAUNCH_EXEC_TIMEOUT_MS } from "./launch.js";
|
|
22
|
+
import { actingAs, taskActor } from "./session.js";
|
|
23
|
+
import { parsePollOutput, polledAs, pollScript } from "./status.js";
|
|
24
|
+
import { notRunningAs, RECREATED } from "./stop.js";
|
|
25
|
+
import { BackgroundTaskStore } from "./store.js";
|
|
26
|
+
/** The poll of the running background tasks (`@LockedInterval`, every `pollSeconds`). */
|
|
27
|
+
export const BACKGROUND_POLL_JOB = "background-task-poll";
|
|
28
|
+
/** The daily prune of finished background tasks older than `tools.outputRetentionDays`. */
|
|
29
|
+
export const BACKGROUND_PRUNE_JOB = "background-task-prune";
|
|
30
|
+
/** The least age at which a reservation counts as abandoned, whatever the config. */
|
|
31
|
+
const LAUNCH_ABANDONED_FLOOR_MS = 120_000;
|
|
32
|
+
/**
|
|
33
|
+
* A reservation (`sid` null) older than this has lost its launch. The slowest legitimate launch
|
|
34
|
+
* is the pipeline's own limit for a background `Bash` call ({@link LAUNCH_EXEC_TIMEOUT_MS} plus
|
|
35
|
+
* {@link sandboxBaseTimeoutMs}: the tool timeout, `sandbox.lockWaitSeconds` and the setup margin),
|
|
36
|
+
* so twice that (never under 2 minutes) leaves a wide margin: only a launching process that died
|
|
37
|
+
* leaves a reservation this old.
|
|
38
|
+
*/
|
|
39
|
+
export const launchAbandonedAfterMs = (cfg) => Math.max(LAUNCH_ABANDONED_FLOOR_MS, 2 * (LAUNCH_EXEC_TIMEOUT_MS + sandboxBaseTimeoutMs(cfg)));
|
|
40
|
+
/** The time limit of one sandbox's poll exec. */
|
|
41
|
+
const POLL_EXEC_TIMEOUT_MS = 30_000;
|
|
42
|
+
/** The most output one poll exec keeps (a line per task, with a tail when it ended). */
|
|
43
|
+
const POLL_MAX_OUTPUT_BYTES = 4 * 1024 * 1024;
|
|
44
|
+
/**
|
|
45
|
+
* The worker's background task jobs (spec 2026-11-05-background-bash-design §4.3), each once per
|
|
46
|
+
* tick across replicas:
|
|
47
|
+
* - `background-task-poll` (every `sandbox.background.pollSeconds`): for every device
|
|
48
|
+
* instance with running tasks (of any conversation using it), one exec through
|
|
49
|
+
* `SandboxService.ifRunning` (which never creates or resumes an instance) reports each task's
|
|
50
|
+
* exit file and liveness; ended tasks finish through {@link BackgroundTaskFinisher}. Each poll
|
|
51
|
+
* takes and releases a lease, so `last_used_at` stays fresh and an instance with running tasks
|
|
52
|
+
* is never idle-suspended;
|
|
53
|
+
* - `background-task-prune` (daily): deletes finished tasks older than `tools.outputRetentionDays`.
|
|
54
|
+
*/
|
|
55
|
+
let BackgroundTaskPollJob = class BackgroundTaskPollJob {
|
|
56
|
+
store;
|
|
57
|
+
finisher;
|
|
58
|
+
eventLog;
|
|
59
|
+
sandbox;
|
|
60
|
+
config;
|
|
61
|
+
lockService;
|
|
62
|
+
log;
|
|
63
|
+
constructor(store, finisher, eventLog, sandbox, config, lockService, log) {
|
|
64
|
+
this.store = store;
|
|
65
|
+
this.finisher = finisher;
|
|
66
|
+
this.eventLog = eventLog;
|
|
67
|
+
this.sandbox = sandbox;
|
|
68
|
+
this.config = config;
|
|
69
|
+
this.lockService = lockService;
|
|
70
|
+
this.log = log;
|
|
71
|
+
}
|
|
72
|
+
async poll(signal) {
|
|
73
|
+
await this.pollOnce(signal);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* One poll of every running task (the body of {@link poll}); returns how many tasks finished.
|
|
77
|
+
* A sandbox whose poll fails (busy, a provider error) is logged and tried again next tick.
|
|
78
|
+
* First, reservations abandoned by a launch that died ({@link launchAbandonedAfterMs}) are
|
|
79
|
+
* failed, so they stop holding a slot of `sandbox.background.maxTasks` (not counted in the
|
|
80
|
+
* result: they never started), with a `changed: "background"` frame to their conversations.
|
|
81
|
+
*/
|
|
82
|
+
async pollOnce(signal = new AbortController().signal) {
|
|
83
|
+
const abandoned = await this.store.failAbandonedLaunches(new Date(Date.now() - launchAbandonedAfterMs(this.config.get())));
|
|
84
|
+
if (abandoned.length > 0) {
|
|
85
|
+
this.log.warn("abandoned background launches failed", { count: abandoned.length });
|
|
86
|
+
// a client that listed the reservation as running refreshes (the owner and, for a
|
|
87
|
+
// sub-agent's task, the conversation that owns the sandbox); a failed publish only logs
|
|
88
|
+
const conversations = new Set(abandoned.flatMap((t) => [t.conversationId, t.sandboxConversationId]));
|
|
89
|
+
for (const c of conversations)
|
|
90
|
+
await this.eventLog.publishChanged(c, "background");
|
|
91
|
+
}
|
|
92
|
+
const groups = new Map();
|
|
93
|
+
for (const t of await this.store.runningStarted()) {
|
|
94
|
+
if (t.sid === null || t.sandboxCreatedAt === null)
|
|
95
|
+
continue;
|
|
96
|
+
// one exec per instance: the tasks of every conversation sharing the device
|
|
97
|
+
const key = `${t.deviceId} ${t.sandboxCreatedAt.getTime()}`;
|
|
98
|
+
groups.set(key, [...(groups.get(key) ?? []), t]);
|
|
99
|
+
}
|
|
100
|
+
let finished = 0;
|
|
101
|
+
for (const tasks of groups.values()) {
|
|
102
|
+
if (signal.aborted)
|
|
103
|
+
break;
|
|
104
|
+
try {
|
|
105
|
+
// the device's provider is not there (no cloud provider, `@local` not served):
|
|
106
|
+
// its tasks stay as they are until it is
|
|
107
|
+
const env = tasks[0]?.deviceId ?? null;
|
|
108
|
+
if (env === null ? !this.sandbox.cloudAvailable : !(await this.sandbox.availableFor(env))) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
finished += await this.pollSandbox(tasks, signal);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
if (signal.aborted)
|
|
115
|
+
break;
|
|
116
|
+
this.log.warn("cannot poll background tasks; retrying next tick", {
|
|
117
|
+
deviceId: tasks[0]?.deviceId,
|
|
118
|
+
err,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (finished > 0)
|
|
123
|
+
this.log.info("background tasks finished", { count: finished });
|
|
124
|
+
return finished;
|
|
125
|
+
}
|
|
126
|
+
/** Polls the tasks of one device instance; returns how many finished. */
|
|
127
|
+
async pollSandbox(tasks, signal) {
|
|
128
|
+
const [first] = tasks;
|
|
129
|
+
// a task from before devices has no instance any more
|
|
130
|
+
const r = first.deviceId === null
|
|
131
|
+
? { kind: "not_running", status: "gone" }
|
|
132
|
+
: await this.sandbox.ifRunning(first.deviceId, { createdAt: first.sandboxCreatedAt }, (p, h, sig) => this.pollExec(actingAs(p, taskActor(first)), h, tasks, sig), signal);
|
|
133
|
+
const now = new Date();
|
|
134
|
+
let n = 0;
|
|
135
|
+
for (const t of tasks) {
|
|
136
|
+
let to;
|
|
137
|
+
let lastLines = "";
|
|
138
|
+
if (r.kind === "ran") {
|
|
139
|
+
const report = r.value.get(t.id);
|
|
140
|
+
// a task the exec did not report is checked again next tick
|
|
141
|
+
to = report ? polledAs(t, report, now) : null;
|
|
142
|
+
lastLines = report?.lastLines ?? "";
|
|
143
|
+
}
|
|
144
|
+
else if (r.kind === "not_running") {
|
|
145
|
+
// a suspended sandbox may keep the processes (E2B's pause): killed after its next resume
|
|
146
|
+
to = notRunningAs(r.status, r.status === "suspended");
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
to = RECREATED;
|
|
150
|
+
}
|
|
151
|
+
// a stop that claimed the task after the read above finishes it itself
|
|
152
|
+
if (to && (await this.finisher.finish(t, to, lastLines, false, { unclaimed: true })))
|
|
153
|
+
n++;
|
|
154
|
+
}
|
|
155
|
+
return n;
|
|
156
|
+
}
|
|
157
|
+
/** The poll exec of one instance: each task's report by id. */
|
|
158
|
+
async pollExec(p, h, tasks, signal) {
|
|
159
|
+
const res = await p.exec(h, {
|
|
160
|
+
command: pollScript(tasks.map((t) => ({ id: t.id, sid: t.sid }))),
|
|
161
|
+
cwd: rootsOf(h).workspace,
|
|
162
|
+
timeoutMs: POLL_EXEC_TIMEOUT_MS,
|
|
163
|
+
maxOutputBytes: POLL_MAX_OUTPUT_BYTES,
|
|
164
|
+
signal,
|
|
165
|
+
});
|
|
166
|
+
if (res.exitCode !== 0 || res.truncated) {
|
|
167
|
+
throw new Error(`the poll exec failed (exit ${res.exitCode}${res.truncated ? ", truncated" : ""}): ${res.stderr.slice(0, 500)}`);
|
|
168
|
+
}
|
|
169
|
+
return parsePollOutput(res.stdout);
|
|
170
|
+
}
|
|
171
|
+
/** Deletes the finished tasks older than `tools.outputRetentionDays` (their rows only). */
|
|
172
|
+
async prune() {
|
|
173
|
+
const days = this.config.get().tools.outputRetentionDays;
|
|
174
|
+
const n = await this.store.pruneFinished(new Date(Date.now() - days * 86_400_000));
|
|
175
|
+
if (n > 0)
|
|
176
|
+
this.log.info("finished background tasks pruned", { count: n });
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
__decorate([
|
|
180
|
+
LockedInterval(BACKGROUND_POLL_JOB, (cfg) => cfg.sandbox.background.pollSeconds * 1000)
|
|
181
|
+
], BackgroundTaskPollJob.prototype, "poll", null);
|
|
182
|
+
__decorate([
|
|
183
|
+
LockedCron("30 3 * * *", { name: BACKGROUND_PRUNE_JOB })
|
|
184
|
+
], BackgroundTaskPollJob.prototype, "prune", null);
|
|
185
|
+
BackgroundTaskPollJob = __decorate([
|
|
186
|
+
Injectable(),
|
|
187
|
+
__param(0, Inject(BackgroundTaskStore)),
|
|
188
|
+
__param(1, Inject(BackgroundTaskFinisher)),
|
|
189
|
+
__param(2, Inject(EventLog)),
|
|
190
|
+
__param(3, Inject(SandboxService)),
|
|
191
|
+
__param(4, Inject(KernelConfigService)),
|
|
192
|
+
__param(5, Inject(LockService)),
|
|
193
|
+
__param(6, Inject(KERNEL_LOGGER))
|
|
194
|
+
], BackgroundTaskPollJob);
|
|
195
|
+
export { BackgroundTaskPollJob };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EventPayload } from "../conversations/events.js";
|
|
2
|
+
/** `42s`, `2m05s`, `1h02m05s`. */
|
|
3
|
+
export declare function formatElapsed(ms: number): string;
|
|
4
|
+
/** Why a task was lost, as the model reads it (an unknown reason as is). */
|
|
5
|
+
export declare const lostReasonText: (reason: string) => string;
|
|
6
|
+
type Finished = EventPayload<"background_task_finished">;
|
|
7
|
+
/**
|
|
8
|
+
* The model-visible text of a `background_task_finished` event, rendered as a system message (spec
|
|
9
|
+
* 2026-11-05-background-bash-design §2.4):
|
|
10
|
+
*
|
|
11
|
+
* ```
|
|
12
|
+
* Background task bt_k3f9a2 ("Run the test suite") completed with exit code 1 after 4m12s.
|
|
13
|
+
* Last lines:
|
|
14
|
+
* …
|
|
15
|
+
* Full output: /workspace/.capybara/tasks/bt_k3f9a2.out
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Without an exit code the first line has no "with exit code"; without output the last lines are
|
|
19
|
+
* `Last lines: (none)`. A finish a tool call already reported (`reported`) is one short line.
|
|
20
|
+
* Read only from the payload, so a replay renders it identically.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderBackgroundFinished(p: Finished): string;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** `42s`, `2m05s`, `1h02m05s`. */
|
|
2
|
+
export function formatElapsed(ms) {
|
|
3
|
+
const s = Math.max(0, Math.floor(ms / 1000));
|
|
4
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
5
|
+
if (s < 60)
|
|
6
|
+
return `${s}s`;
|
|
7
|
+
if (s < 3600)
|
|
8
|
+
return `${Math.floor(s / 60)}m${pad(s % 60)}s`;
|
|
9
|
+
return `${Math.floor(s / 3600)}h${pad(Math.floor((s % 3600) / 60))}m${pad(s % 60)}s`;
|
|
10
|
+
}
|
|
11
|
+
const LOST_REASONS = {
|
|
12
|
+
sandbox_suspended: "the sandbox was suspended",
|
|
13
|
+
sandbox_gone: "the sandbox is gone",
|
|
14
|
+
sandbox_recreated: "the sandbox was recreated",
|
|
15
|
+
process_gone: "its processes ended without an exit code",
|
|
16
|
+
launch_abandoned: "its launch was interrupted",
|
|
17
|
+
};
|
|
18
|
+
/** Why a task was lost, as the model reads it (an unknown reason as is). */
|
|
19
|
+
export const lostReasonText = (reason) => LOST_REASONS[reason] ?? reason;
|
|
20
|
+
const statusWord = (status) => status === "timed_out" ? "timed out" : status;
|
|
21
|
+
/**
|
|
22
|
+
* The model-visible text of a `background_task_finished` event, rendered as a system message (spec
|
|
23
|
+
* 2026-11-05-background-bash-design §2.4):
|
|
24
|
+
*
|
|
25
|
+
* ```
|
|
26
|
+
* Background task bt_k3f9a2 ("Run the test suite") completed with exit code 1 after 4m12s.
|
|
27
|
+
* Last lines:
|
|
28
|
+
* …
|
|
29
|
+
* Full output: /workspace/.capybara/tasks/bt_k3f9a2.out
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* Without an exit code the first line has no "with exit code"; without output the last lines are
|
|
33
|
+
* `Last lines: (none)`. A finish a tool call already reported (`reported`) is one short line.
|
|
34
|
+
* Read only from the payload, so a replay renders it identically.
|
|
35
|
+
*/
|
|
36
|
+
export function renderBackgroundFinished(p) {
|
|
37
|
+
const head = `Background task ${p.taskId} (${JSON.stringify(p.description)}) ${statusWord(p.status)}`;
|
|
38
|
+
if (p.reported)
|
|
39
|
+
return `${head}; already reported.`;
|
|
40
|
+
const lost = p.lostReason === undefined ? "" : ` (${lostReasonText(p.lostReason)})`;
|
|
41
|
+
const exit = p.exitCode === null ? "" : ` with exit code ${p.exitCode}`;
|
|
42
|
+
const lines = p.lastLines.replace(/\n+$/, "");
|
|
43
|
+
return [
|
|
44
|
+
`${head}${lost}${exit} after ${formatElapsed(p.elapsedMs)}.`,
|
|
45
|
+
lines === "" ? "Last lines: (none)" : `Last lines:\n${lines}`,
|
|
46
|
+
`Full output: ${p.outputPath}`,
|
|
47
|
+
].join("\n");
|
|
48
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type SandboxActor, type SandboxHandle } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { HeldProvider, TaggedProvider } from "../sandbox/sandbox.service.js";
|
|
3
|
+
/**
|
|
4
|
+
* A background task's session inside the sandbox (spec 2026-11-05-background-bash-design §4.2):
|
|
5
|
+
* every process of a task is in the session `setsid` started, so liveness is `pgrep -s <sid>` and
|
|
6
|
+
* stopping is `pkill -s <sid>` (never `kill -0` or `/proc`, which disagree between sandbox-fake and
|
|
7
|
+
* Linux).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* `p` with every `exec` carrying `actor` (`SandboxService.ifRunning` tags execs but leaves the
|
|
11
|
+
* actor to the caller): the provider then reads like a `withSandbox` holder's.
|
|
12
|
+
*/
|
|
13
|
+
export declare function actingAs(p: TaggedProvider, actor: SandboxActor): HeldProvider;
|
|
14
|
+
/** Who a background task's own execs (poll, stop, reads) act for: its trigger and its owner. */
|
|
15
|
+
export declare const taskActor: (task: {
|
|
16
|
+
triggerAccountId: string;
|
|
17
|
+
conversationId: string;
|
|
18
|
+
}) => SandboxActor;
|
|
19
|
+
/** A session id (the pid `setsid` started). */
|
|
20
|
+
export declare const SID_RE: RegExp;
|
|
21
|
+
/** The time limit of one kill of a session ({@link killSession}). */
|
|
22
|
+
export declare const KILL_SESSION_TIMEOUT_MS = 10000;
|
|
23
|
+
/** Throws unless `id` is a task id and `sid` a session id (both go into scripts unquoted). */
|
|
24
|
+
export declare function assertTaskRef(id: string, sid: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* A shell fragment that kills every process of the session `sid` with SIGKILL, repeated until the
|
|
27
|
+
* session is empty (pkill exits 1: no process left): a process may fork between pkill's listing
|
|
28
|
+
* and its signals, and the child would live on. Sets `ks` to 0 when the session was confirmed
|
|
29
|
+
* empty, else to pkill's failing status (3 when it was still not empty after 10 tries). Uses only
|
|
30
|
+
* the variables `ks`, `kc` and `ki`. `sid` must be a session id.
|
|
31
|
+
*/
|
|
32
|
+
export declare function killSessionScript(sid: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Kills every process of the session `sid` ({@link killSessionScript}) in an exec of its own. Any
|
|
35
|
+
* pkill status other than 0 and 1 is a failure. Runs with a fresh signal of its own (a command
|
|
36
|
+
* must be killed even when the caller was just aborted). True when the session was confirmed
|
|
37
|
+
* empty; false when it could not be (an error is never thrown).
|
|
38
|
+
*/
|
|
39
|
+
export declare function killSession(p: Pick<HeldProvider, "exec">, h: SandboxHandle, sid: string): Promise<boolean>;
|
|
40
|
+
/** The longest `lastLines` of a finished task (spec §2.4). */
|
|
41
|
+
export declare const LAST_LINES_MAX_CHARS = 4000;
|
|
42
|
+
/**
|
|
43
|
+
* A shell pipeline printing the last 20 lines of task `id`'s output (at most {@link TAIL_BYTES}),
|
|
44
|
+
* base64 on one line (empty when there is no output file). Relative to the workspace root.
|
|
45
|
+
*/
|
|
46
|
+
export declare function tailCommand(id: string): string;
|
|
47
|
+
/** Decodes a {@link tailCommand} result into `lastLines`: its end, at most 4 000 characters. */
|
|
48
|
+
export declare function decodeTail(b64: string): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { rootsOf } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { TASK_ID_RE, TASKS_DIR } from "./launch.js";
|
|
3
|
+
/**
|
|
4
|
+
* A background task's session inside the sandbox (spec 2026-11-05-background-bash-design §4.2):
|
|
5
|
+
* every process of a task is in the session `setsid` started, so liveness is `pgrep -s <sid>` and
|
|
6
|
+
* stopping is `pkill -s <sid>` (never `kill -0` or `/proc`, which disagree between sandbox-fake and
|
|
7
|
+
* Linux).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* `p` with every `exec` carrying `actor` (`SandboxService.ifRunning` tags execs but leaves the
|
|
11
|
+
* actor to the caller): the provider then reads like a `withSandbox` holder's.
|
|
12
|
+
*/
|
|
13
|
+
export function actingAs(p, actor) {
|
|
14
|
+
const wrapped = Object.create(p);
|
|
15
|
+
Object.defineProperty(wrapped, "exec", {
|
|
16
|
+
value: (h, args) => p.exec(h, { ...args, actor }),
|
|
17
|
+
});
|
|
18
|
+
return wrapped;
|
|
19
|
+
}
|
|
20
|
+
/** Who a background task's own execs (poll, stop, reads) act for: its trigger and its owner. */
|
|
21
|
+
export const taskActor = (task) => ({ accountId: task.triggerAccountId, conversationId: task.conversationId });
|
|
22
|
+
/** A session id (the pid `setsid` started). */
|
|
23
|
+
export const SID_RE = /^[1-9][0-9]*$/;
|
|
24
|
+
/** The time limit of one kill of a session ({@link killSession}). */
|
|
25
|
+
export const KILL_SESSION_TIMEOUT_MS = 10_000;
|
|
26
|
+
/** Throws unless `id` is a task id and `sid` a session id (both go into scripts unquoted). */
|
|
27
|
+
export function assertTaskRef(id, sid) {
|
|
28
|
+
if (!TASK_ID_RE.test(id))
|
|
29
|
+
throw new Error(`invalid background task id: ${JSON.stringify(id)}`);
|
|
30
|
+
if (!SID_RE.test(sid))
|
|
31
|
+
throw new Error(`invalid background task session: ${JSON.stringify(sid)}`);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A shell fragment that kills every process of the session `sid` with SIGKILL, repeated until the
|
|
35
|
+
* session is empty (pkill exits 1: no process left): a process may fork between pkill's listing
|
|
36
|
+
* and its signals, and the child would live on. Sets `ks` to 0 when the session was confirmed
|
|
37
|
+
* empty, else to pkill's failing status (3 when it was still not empty after 10 tries). Uses only
|
|
38
|
+
* the variables `ks`, `kc` and `ki`. `sid` must be a session id.
|
|
39
|
+
*/
|
|
40
|
+
export function killSessionScript(sid) {
|
|
41
|
+
if (!SID_RE.test(sid))
|
|
42
|
+
throw new Error(`invalid background task session: ${JSON.stringify(sid)}`);
|
|
43
|
+
return `ks=3; for ki in 1 2 3 4 5 6 7 8 9 10; do pkill -KILL -s ${sid}; kc=$?; if [ "$kc" -eq 1 ]; then ks=0; break; fi; if [ "$kc" -ne 0 ]; then ks=$kc; break; fi; sleep 0.2; done`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Kills every process of the session `sid` ({@link killSessionScript}) in an exec of its own. Any
|
|
47
|
+
* pkill status other than 0 and 1 is a failure. Runs with a fresh signal of its own (a command
|
|
48
|
+
* must be killed even when the caller was just aborted). True when the session was confirmed
|
|
49
|
+
* empty; false when it could not be (an error is never thrown).
|
|
50
|
+
*/
|
|
51
|
+
export async function killSession(p, h, sid) {
|
|
52
|
+
if (!SID_RE.test(sid))
|
|
53
|
+
return false;
|
|
54
|
+
const r = await p
|
|
55
|
+
.exec(h, {
|
|
56
|
+
command: `${killSessionScript(sid)}; exit "$ks"`,
|
|
57
|
+
cwd: rootsOf(h).workspace,
|
|
58
|
+
timeoutMs: KILL_SESSION_TIMEOUT_MS,
|
|
59
|
+
maxOutputBytes: 4096,
|
|
60
|
+
signal: AbortSignal.timeout(KILL_SESSION_TIMEOUT_MS),
|
|
61
|
+
})
|
|
62
|
+
.catch(() => undefined);
|
|
63
|
+
return r?.exitCode === 0;
|
|
64
|
+
}
|
|
65
|
+
/** The most bytes of a task's output end a tail reads (the event keeps at most 4 000 characters). */
|
|
66
|
+
const TAIL_BYTES = 12_000;
|
|
67
|
+
/** The longest `lastLines` of a finished task (spec §2.4). */
|
|
68
|
+
export const LAST_LINES_MAX_CHARS = 4000;
|
|
69
|
+
/**
|
|
70
|
+
* A shell pipeline printing the last 20 lines of task `id`'s output (at most {@link TAIL_BYTES}),
|
|
71
|
+
* base64 on one line (empty when there is no output file). Relative to the workspace root.
|
|
72
|
+
*/
|
|
73
|
+
export function tailCommand(id) {
|
|
74
|
+
return `{ tail -n 20 ${TASKS_DIR}/${id}.out 2>/dev/null | tail -c ${TAIL_BYTES} | base64 | tr -d '\\n'; }`;
|
|
75
|
+
}
|
|
76
|
+
/** Decodes a {@link tailCommand} result into `lastLines`: its end, at most 4 000 characters. */
|
|
77
|
+
export function decodeTail(b64) {
|
|
78
|
+
const text = Buffer.from(b64.trim(), "base64").toString("utf8");
|
|
79
|
+
return text.length > LAST_LINES_MAX_CHARS ? text.slice(-LAST_LINES_MAX_CHARS) : text;
|
|
80
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { BackgroundFinish } from "./finish.js";
|
|
2
|
+
import type { BackgroundTaskRow } from "./store.js";
|
|
3
|
+
/** What the poll exec reports for one task. */
|
|
4
|
+
export interface TaskReport {
|
|
5
|
+
/** The exit file's code; null while there is none. */
|
|
6
|
+
exitCode: number | null;
|
|
7
|
+
/**
|
|
8
|
+
* Whether the session still has a process: `pgrep -s <sid>`, or, for a task whose command
|
|
9
|
+
* exited, whether its leftover processes could not be confirmed killed.
|
|
10
|
+
*/
|
|
11
|
+
alive: boolean;
|
|
12
|
+
/** The last lines (decoded), read when the task exited or no process was left. */
|
|
13
|
+
lastLines: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The poll exec of one sandbox: for every task one line `<id> <exit code or -> <1|0> <tail or ->`.
|
|
17
|
+
* Liveness is asked before the exit file: a task ending in between is seen by its exit file, never
|
|
18
|
+
* as a task without process and exit file. A task whose command exited while its session still has
|
|
19
|
+
* processes (it left `server &` running) has the session killed in the same exec (so under the
|
|
20
|
+
* caller's lease), and is reported without a process once the session was confirmed empty: the
|
|
21
|
+
* task ends when its command exits, and nothing of it runs on untracked. The tail (base64) is read
|
|
22
|
+
* only for a task that exited or has no process left. Relative to the workspace root.
|
|
23
|
+
*/
|
|
24
|
+
export declare function pollScript(tasks: {
|
|
25
|
+
id: string;
|
|
26
|
+
sid: string;
|
|
27
|
+
}[]): string;
|
|
28
|
+
/** Parses {@link pollScript}'s output; a task missing from it is absent from the map. */
|
|
29
|
+
export declare function parsePollOutput(stdout: string): Map<string, TaskReport>;
|
|
30
|
+
/**
|
|
31
|
+
* How a polled task ends, or null while it runs (spec §4.3). A task whose command exited but whose
|
|
32
|
+
* leftover processes could not be confirmed killed ({@link pollScript}) stays running: the next
|
|
33
|
+
* poll kills them again before it finishes.
|
|
34
|
+
*/
|
|
35
|
+
export declare function polledAs(task: BackgroundTaskRow, r: TaskReport, now: Date): BackgroundFinish | null;
|
|
@@ -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 devices 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
|
+
}
|