@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11
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 +60 -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 +264 -0
- package/dist/catalog/catalog-content.js +430 -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 +677 -0
- package/dist/catalog/catalog-scope.service.d.ts +286 -0
- package/dist/catalog/catalog-scope.service.js +1196 -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 +144 -207
- package/dist/catalog/catalog.service.js +258 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- 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 +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +366 -0
- package/dist/catalog/component-scope.service.js +1115 -0
- package/dist/catalog/component-state.d.ts +197 -0
- package/dist/catalog/component-state.js +473 -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 +434 -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 +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 +293 -71
- package/dist/catalog/plugin-import.js +1039 -281
- package/dist/catalog/plugin-install.d.ts +271 -66
- package/dist/catalog/plugin-install.js +1198 -344
- package/dist/catalog/plugin-package.d.ts +41 -4
- package/dist/catalog/plugin-package.js +140 -7
- package/dist/catalog/plugin-upgrade.d.ts +312 -188
- package/dist/catalog/plugin-upgrade.js +1371 -1065
- 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 +119 -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 +589 -27
- 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 +160 -2
- package/dist/errors.js +160 -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 +93 -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 +137 -38
- package/dist/identity/accounts.js +386 -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 +80 -33
- 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 +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +69 -23
- package/dist/identity/settings.js +201 -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 +76 -14
- package/dist/orgs/settings.service.js +140 -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 +683 -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 +94 -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 +38 -0
- package/dist/platform/ops/admin.ops.js +407 -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 +854 -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 +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 +296 -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/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/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -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 +40 -0
- package/dist/platform/platform-ops.module.js +127 -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 +66 -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/themes/render-css.d.ts +12 -0
- package/dist/themes/render-css.js +132 -0
- package/dist/themes/theme-delivery.service.d.ts +34 -0
- package/dist/themes/theme-delivery.service.js +111 -0
- package/dist/themes/theme-state.d.ts +95 -0
- package/dist/themes/theme-state.js +203 -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 +28 -0
- package/dist/themes/themes-public.controller.js +92 -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/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/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -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
|
@@ -1,249 +1,457 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ExecResult, type SandboxActor, type SandboxHandle, type SandboxLimits, type SandboxProvider, type SandboxRoots } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { Redis } from "ioredis";
|
|
3
3
|
import { type Selectable } from "kysely";
|
|
4
|
+
import { BackgroundTaskStore } from "../background/store.js";
|
|
4
5
|
import { type KernelConfig } from "../config/schema.js";
|
|
5
|
-
import type {
|
|
6
|
+
import type { EnvironmentInstancesTable } from "../db/kernel-schema.js";
|
|
6
7
|
import { ApiError } from "../errors.js";
|
|
8
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
9
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
10
|
+
import type { KernelLogger } from "../log.js";
|
|
7
11
|
import { SandboxLeases, type SandboxPathLease } from "./leases.js";
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
import { SandboxProviders } from "./providers.js";
|
|
13
|
+
export { SANDBOX_LOCK_PREFIX, SANDBOX_LOCK_TTL_MS, SandboxLockLostError, sandboxBusy, } from "./leases.js";
|
|
14
|
+
/** The third argument of the `withSandbox` callback. */
|
|
10
15
|
export interface SandboxUseInfo {
|
|
11
|
-
/**
|
|
16
|
+
/** This call created the instance (first use, or a rebuild). */
|
|
12
17
|
fresh: boolean;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
/**
|
|
19
|
+
* The environment had an instance before that is no longer there (destroyed after inactivity,
|
|
20
|
+
* gone at the provider, or rebuilt by another holder since this holder last used it): this is a
|
|
21
|
+
* new instance on the kept files, so earlier processes are gone.
|
|
22
|
+
*/
|
|
23
|
+
restarted: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The environment's files were reset since this holder last used it (on request, or after they
|
|
26
|
+
* were lost): earlier files are gone too. Set only when true; `restarted` is then false.
|
|
27
|
+
*/
|
|
28
|
+
filesReset?: true;
|
|
29
|
+
/**
|
|
30
|
+
* The instance's roots ({@link rootsOf} of its handle): every model-visible path is built from
|
|
31
|
+
* them (environments spec §13.1; a connected machine's real paths).
|
|
32
|
+
*/
|
|
33
|
+
roots: SandboxRoots;
|
|
20
34
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
log: Pick<Logger, "info" | "warn">;
|
|
30
|
-
/** Poll interval while waiting for a lease (ms), default 100; tests make it shorter. */
|
|
31
|
-
lockPollMs?: number;
|
|
32
|
-
/** Lease TTL (ms), default {@link SANDBOX_LOCK_TTL_MS}; tests make it shorter to notice a lost lease quickly. */
|
|
33
|
-
lockTtlMs?: number;
|
|
34
|
-
/** Lease implementation, default a {@link SandboxLeases} on `redis` (tests may wrap one). */
|
|
35
|
-
leases?: SandboxLeases;
|
|
35
|
+
/** Who uses the sandbox in {@link SandboxService.withSandbox}. */
|
|
36
|
+
export interface SandboxUseContext {
|
|
37
|
+
orgId: string;
|
|
38
|
+
environmentId: string;
|
|
39
|
+
/** The agent conversation using it (a sub-agent's own for a child): what it last saw is tracked. */
|
|
40
|
+
holderConversationId: string;
|
|
41
|
+
/** Passed with every `exec` (audit and attribution). */
|
|
42
|
+
actor: SandboxActor;
|
|
36
43
|
}
|
|
37
|
-
type
|
|
44
|
+
export type { SandboxProviderEntry } from "./providers.js";
|
|
45
|
+
type Row = Selectable<EnvironmentInstancesTable>;
|
|
46
|
+
type ExecArgs = Parameters<SandboxProvider["exec"]>[1];
|
|
38
47
|
/**
|
|
39
|
-
* One instance of
|
|
40
|
-
*
|
|
41
|
-
*
|
|
48
|
+
* One instance of an environment: its handle and the row's `created_at`, which the fenced write
|
|
49
|
+
* after every `create` sets. The handle alone is not enough: sandbox-docker's handle is the
|
|
50
|
+
* instance name, the same after a rebuild (spec §10.10).
|
|
42
51
|
*/
|
|
43
52
|
interface Instance {
|
|
44
53
|
handle: SandboxHandle;
|
|
45
54
|
createdAt: number;
|
|
46
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* The provider {@link SandboxService.withSandbox} passes to its callback: every `exec` carries the
|
|
58
|
+
* holder's tag and the caller's actor, so the callback passes neither.
|
|
59
|
+
*/
|
|
60
|
+
export type HeldProvider = Omit<SandboxProvider, "exec"> & {
|
|
61
|
+
exec(h: SandboxHandle, args: Omit<ExecArgs, "tag" | "actor">): Promise<ExecResult>;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* The provider {@link SandboxService.ifRunning} passes to its callback: every `exec` carries the
|
|
65
|
+
* holder's tag; the caller names the actor.
|
|
66
|
+
*/
|
|
67
|
+
export type TaggedProvider = Omit<SandboxProvider, "exec"> & {
|
|
68
|
+
exec(h: SandboxHandle, args: Omit<ExecArgs, "tag">): Promise<ExecResult>;
|
|
69
|
+
};
|
|
70
|
+
/** What {@link SandboxService.ifRunning} did. */
|
|
71
|
+
export type IfRunningResult<T> = {
|
|
72
|
+
kind: "ran";
|
|
73
|
+
value: T;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* No instance, or it is not running: `status` is the instance row's (`none`, `suspended`,
|
|
77
|
+
* `creating`, `destroyed`, or `running` recorded with another provider), `gone` without a row.
|
|
78
|
+
*/
|
|
79
|
+
| {
|
|
80
|
+
kind: "not_running";
|
|
81
|
+
status: Row["status"] | "gone";
|
|
82
|
+
}
|
|
83
|
+
/** The environment now records another instance (a rebuild). */
|
|
84
|
+
| {
|
|
85
|
+
kind: "other_instance";
|
|
86
|
+
};
|
|
87
|
+
/** The provider-side name of an environment's file system and instance. */
|
|
88
|
+
export declare const environmentResourceName: (environmentId: string) => string;
|
|
89
|
+
/** The environment is missing, deleted, or not in the caller's org (404; ids cannot be probed). */
|
|
90
|
+
export declare const environmentNotFound: () => ApiError;
|
|
91
|
+
/**
|
|
92
|
+
* The environment's file system is gone at the provider (409); never replaced silently. On a
|
|
93
|
+
* connected machine (`device`, details `[{ source: "device" }]`) the directory is the machine
|
|
94
|
+
* owner's: `capybara-device logout`, then `login` into the environment, recreates it (ruling R24).
|
|
95
|
+
*/
|
|
96
|
+
export declare const environmentFilesLost: (device?: boolean) => ApiError;
|
|
47
97
|
/**
|
|
48
98
|
* The row still records the instance `gone` (same handle and same `created_at`). Handles compare
|
|
49
99
|
* canonically: a jsonb round trip reorders a multi-key handle's keys (final review m9).
|
|
50
100
|
*/
|
|
51
101
|
export declare const isInstance: (row: Pick<Row, "handle" | "created_at">, gone: Instance | null) => boolean;
|
|
52
102
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* - `sandbox.limits.egress` 为 open、但当前提供方插件没打开 `allowOpenEgress`:每次创建沙箱都会被拒。
|
|
61
|
-
* 两个时限都是默认值(900 < 7200,已知的取舍)时只记 info;运维改过其中一个却仍不一致时才 warn。
|
|
62
|
-
* - the provider declares only one of `concurrentExec` and `killTagged`: it is used one call at a
|
|
63
|
-
* time (spec §10.7).
|
|
103
|
+
* Sandbox config problems to tell operators at startup (English log lines):
|
|
104
|
+
* - `runtime.maxRunSeconds` below `sandbox.limits.maxCommandSeconds`: long commands are cut by the
|
|
105
|
+
* run time limit (Ruling M20);
|
|
106
|
+
* - `sandbox.limits.egress` is open but the current provider plugin has no `allowOpenEgress`: every
|
|
107
|
+
* instance creation is refused.
|
|
108
|
+
* With both time limits at their defaults (900 < 7200, a known trade-off) it is only info; warn
|
|
109
|
+
* when an operator changed one and they still disagree.
|
|
64
110
|
*/
|
|
65
|
-
export declare function sandboxConfigWarnings(cfg: Pick<KernelConfig, "runtime" | "sandbox" | "extensionConfig">, providerPlugin?: string
|
|
111
|
+
export declare function sandboxConfigWarnings(cfg: Pick<KernelConfig, "runtime" | "sandbox" | "extensionConfig">, providerPlugin?: string): {
|
|
66
112
|
level: "info" | "warn";
|
|
67
113
|
message: string;
|
|
68
114
|
}[];
|
|
69
|
-
/**
|
|
115
|
+
/** No sandbox provider (503). */
|
|
70
116
|
export declare const sandboxUnavailable: () => ApiError;
|
|
71
117
|
/**
|
|
72
|
-
*
|
|
118
|
+
* The kernel's sandbox service over the `sandbox@2` provider, keyed by **environment** (spec
|
|
119
|
+
* 2026-11-07-environments-design §4.2, §5.1): one file system kept until the environment is
|
|
120
|
+
* deleted, plus one instance attached to it that comes and goes; all conversations bound to the
|
|
121
|
+
* environment (and their sub-agents) share both.
|
|
73
122
|
*
|
|
74
|
-
* -
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* `
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
123
|
+
* - **Lazy creation**: the first {@link withSandbox} creates the file system
|
|
124
|
+
* (`createFileSystem`, name `cap-env-<environmentId>`) and then the instance on it; state lives
|
|
125
|
+
* in `environment_instances`. A file system gone at the provider is never replaced silently:
|
|
126
|
+
* `fs_status` becomes `lost` and uses fail with `environment.files_lost` until
|
|
127
|
+
* {@link resetFileSystem}.
|
|
128
|
+
* - **Leases** (phase C, spec §10, {@link SandboxLeases}), keyed by environment id: using an
|
|
129
|
+
* instance recorded `running` with the current provider takes a **shared** lease, so up to
|
|
130
|
+
* `sandbox.maxConcurrentCommands` holders (all sessions of the environment) run at once. Every
|
|
131
|
+
* lifecycle change (create, resume, rebuild, suspend, destroy, reset) takes the **exclusive**
|
|
132
|
+
* lease, alone; a caller that needs one on the use path sets the intent so new shared leases wait
|
|
133
|
+
* for it, and downgrades to a shared lease to run its own command once the instance runs.
|
|
134
|
+
* Waiting is capped at `sandbox.lockWaitSeconds` (`sandbox.busy`); two replicas using it for the
|
|
135
|
+
* first time at once still build only one.
|
|
136
|
+
* - **Fencing**: exclusive holders read `generation` and compare-and-increment it with every state
|
|
137
|
+
* write ({@link SandboxLockLostError}); every acquisition (shared ones too) bumps it first, so a
|
|
138
|
+
* stale exclusive holder's later writes fail. Shared holders write nothing else but
|
|
139
|
+
* `last_used_at` (monotonic). A lost lease aborts the signal passed to `fn` and to maintenance
|
|
140
|
+
* provider calls.
|
|
141
|
+
* - **Suspension and destruction**: the sweeps (`SandboxSweepJobs`, crons) call
|
|
142
|
+
* {@link suspendIdle} / {@link destroyInactive}; they try the exclusive lease once and skip an
|
|
143
|
+
* environment with any holder; one past `maxRunningMinutes` gets the intent for a short window
|
|
144
|
+
* (about a second) so the suspension can get in when its commands end. Inactivity destroys only
|
|
145
|
+
* the instance (files kept); a deleted environment or org loses its files too.
|
|
146
|
+
* - **Transparent recovery**: a suspended instance is resumed on next use; when `resume` returns
|
|
147
|
+
* `gone`, the instance was destroyed, or `fn` throws `SandboxGoneError` (retried once), a new
|
|
148
|
+
* instance is created on the kept files and `restarted` is true. Several holders hitting `gone`
|
|
149
|
+
* together rebuild once: the others find the new instance.
|
|
150
|
+
* - **Takeover** (spec §10.5; environments spec §4.2): every holder records itself in
|
|
151
|
+
* `capk:sandbox-holders:<env>` (again before each `exec`) and its commands carry its lease token
|
|
152
|
+
* as `tag`. An acquirer that finds a record without a live lease (a crashed holder) kills only
|
|
153
|
+
* that holder's commands (`killTagged`): other conversations of the environment may be running
|
|
154
|
+
* commands. `killAll` runs only under the exclusive lease, before the downgrade, on an instance
|
|
155
|
+
* this holder just resumed from `suspended` (nobody else can hold it; a provider that keeps
|
|
156
|
+
* memory across a pause brings old commands back); it also covers crashed holders' records,
|
|
157
|
+
* which it claims. A freshly created instance has nothing to kill. Failures are only warned (the
|
|
158
|
+
* in-sandbox time limit is the backstop).
|
|
103
159
|
* - **Instance identity**: a holder that hits `gone` names the instance by its handle and the
|
|
104
160
|
* row's `created_at` (set by the fenced write after each `create`); the handle alone is the same
|
|
105
161
|
* after a rebuild on providers whose handle is the instance name (sandbox-docker).
|
|
106
162
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
163
|
+
* - **Provider per environment** (environments spec §6): each call resolves the provider from
|
|
164
|
+
* the environment's `environments.provider` ({@link providerForEnvironment}): a `device`
|
|
165
|
+
* environment runs on the kernel-internal `@device` provider (never the cloud one), a cloud
|
|
166
|
+
* environment on the loaded `sandbox@2` extension. A `@device` instance is never suspended or
|
|
167
|
+
* destroyed for inactivity; a deleted `@device` environment (or one of a deleted org) is
|
|
168
|
+
* destroyed by the sweep like any other.
|
|
169
|
+
*
|
|
170
|
+
* Files kept by another provider than the current one make the environment unusable
|
|
171
|
+
* (`environment.unavailable`) until that provider is back; deleting it still works while that
|
|
172
|
+
* provider is loaded ({@link SandboxProviders.forName}). Without the environment's provider
|
|
173
|
+
* {@link availableFor} is false and uses throw `sandbox.unavailable` (503). No in-process state:
|
|
174
|
+
* replicas share it through PG and Redis.
|
|
109
175
|
*/
|
|
110
176
|
export declare class SandboxService {
|
|
111
|
-
private readonly
|
|
177
|
+
private readonly db;
|
|
178
|
+
/** The record of the instance each holder last used (`capk:sandbox-seen:…`). */
|
|
179
|
+
private readonly redis;
|
|
112
180
|
private readonly leases;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
|
|
181
|
+
/** The providers (read at every call: providers are ready after the extension load). */
|
|
182
|
+
private readonly providers;
|
|
183
|
+
private readonly config;
|
|
184
|
+
private readonly log;
|
|
185
|
+
/** Background tasks lost while their process may live on (killed after a resume). */
|
|
186
|
+
private readonly background;
|
|
187
|
+
constructor(db: KernelDb,
|
|
188
|
+
/** The record of the instance each holder last used (`capk:sandbox-seen:…`). */
|
|
189
|
+
redis: Pick<Redis, "set">, leases: SandboxLeases,
|
|
190
|
+
/** The providers (read at every call: providers are ready after the extension load). */
|
|
191
|
+
providers: Pick<SandboxProviders, "cloud" | "forName">, config: Pick<KernelConfigService, "get">, log: Pick<KernelLogger, "info" | "warn">,
|
|
192
|
+
/** Background tasks lost while their process may live on (killed after a resume). */
|
|
193
|
+
background: Pick<BackgroundTaskStore, "pendingKills" | "clearKill">);
|
|
194
|
+
/** Poll interval while waiting for a lease (the leases' own). */
|
|
195
|
+
private get pollMs();
|
|
196
|
+
/**
|
|
197
|
+
* Whether there is a cloud sandbox provider (a loaded `sandbox@2` extension). For gates that have
|
|
198
|
+
* no environment yet (tool listing, skill files); a call on an environment asks
|
|
199
|
+
* {@link availableFor}.
|
|
200
|
+
*/
|
|
201
|
+
get cloudAvailable(): boolean;
|
|
202
|
+
/** Whether the environment's provider is there (`@device` registered, or a cloud provider). */
|
|
203
|
+
availableFor(environmentId: string): Promise<boolean>;
|
|
119
204
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
205
|
+
* The provider the environment works with, read from its row ({@link providerForEnvironment});
|
|
206
|
+
* a missing row (or one of another org, with `orgId`) reads as a cloud environment, whose use
|
|
207
|
+
* then fails as not found.
|
|
122
208
|
*/
|
|
123
|
-
|
|
209
|
+
private providerOf;
|
|
210
|
+
/** {@link providerOf}, or `sandbox.unavailable` (503) without it. */
|
|
211
|
+
private require;
|
|
212
|
+
/** Concurrent holders of one environment (`sandbox.maxConcurrentCommands`, read at every use). */
|
|
213
|
+
private get cap();
|
|
214
|
+
/**
|
|
215
|
+
* The org's effective sandbox limits (spec §8.4): the deployment's `sandbox.limits`, egress
|
|
216
|
+
* narrowed by the org setting `sandboxEgress` (Ruling M19), cpu / memory per the super admin's
|
|
217
|
+
* org override (C19 / Ruling M16). Instances are created with them; phase 1 environments use
|
|
218
|
+
* them unchanged.
|
|
219
|
+
*/
|
|
220
|
+
orgLimits(orgId: string): Promise<SandboxLimits>;
|
|
221
|
+
/**
|
|
222
|
+
* The environment's instance state as shown to people (read only, no lease): `running` /
|
|
223
|
+
* `suspended` and the last use. No instance, a destroyed one, or one stuck in `creating` (being
|
|
224
|
+
* created, or a failed create the next use retries) is null.
|
|
225
|
+
*/
|
|
226
|
+
status(orgId: string, environmentId: string): Promise<{
|
|
124
227
|
status: "running" | "suspended";
|
|
125
228
|
lastUsedAt: Date;
|
|
126
229
|
} | null>;
|
|
127
230
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
* `
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
*
|
|
154
|
-
|
|
155
|
-
|
|
231
|
+
* The instance the environment records now (its `created_at`), while it has one that runs or is
|
|
232
|
+
* suspended; null otherwise. Read without a lease: a caller inside `withSandbox` reads the
|
|
233
|
+
* instance its own lease keeps.
|
|
234
|
+
*/
|
|
235
|
+
currentInstance(environmentId: string): Promise<{
|
|
236
|
+
createdAt: Date;
|
|
237
|
+
} | null>;
|
|
238
|
+
/**
|
|
239
|
+
* Runs `fn` on the environment's instance only while it runs the instance created at
|
|
240
|
+
* `instance.createdAt` (background tasks, spec 2026-11-05-background-bash-design §4.3). It never
|
|
241
|
+
* creates, resumes or rebuilds one: an instance that is missing, suspended, being created or
|
|
242
|
+
* destroyed (or recorded with another provider) is `not_running`, one that records another
|
|
243
|
+
* instance is `other_instance`. Otherwise `fn` runs under a shared lease, as a `withSandbox`
|
|
244
|
+
* holder does (its tag on every exec, crashed holders' commands killed), and `last_used_at`
|
|
245
|
+
* moves forward when it ends. Waits for the lease up to `sandbox.lockWaitSeconds`
|
|
246
|
+
* (`sandbox.busy`); `signal` (optional) ends the wait with its abort reason. The signal passed
|
|
247
|
+
* to `fn` aborts with `signal` or when the lease is lost. Errors of `fn` (`SandboxGoneError`
|
|
248
|
+
* too) are thrown as they are.
|
|
249
|
+
*/
|
|
250
|
+
ifRunning<T>(environmentId: string, instance: {
|
|
251
|
+
createdAt: Date;
|
|
252
|
+
}, fn: (p: TaggedProvider, h: SandboxHandle, signal: AbortSignal) => Promise<T>, signal?: AbortSignal): Promise<IfRunningResult<T>>;
|
|
253
|
+
/**
|
|
254
|
+
* A short lease on one path of the environment around the kernel's own read-modify-write of
|
|
255
|
+
* that file (spec §10.4); waits up to 30 s, then throws `SandboxPathBusyError`. Its `signal`
|
|
256
|
+
* aborts when a renewal finds it lost.
|
|
257
|
+
*/
|
|
258
|
+
pathLease(environmentId: string, path: string, signal: AbortSignal): Promise<SandboxPathLease>;
|
|
259
|
+
/**
|
|
260
|
+
* Runs `fn` on the environment's instance: take a lease → make sure the instance runs (file
|
|
261
|
+
* system, create / resume / rebuild, under the exclusive lease) → `fn` under a shared lease →
|
|
262
|
+
* update `last_used_at` → release.
|
|
263
|
+
* - Waiting longer than `sandbox.lockWaitSeconds` throws `sandbox.busy` (409); `signal` aborts
|
|
264
|
+
* the wait and the creation / resume.
|
|
265
|
+
* - The fourth argument of `fn` combines `signal` with the lease's: use it for commands, so they
|
|
266
|
+
* stop when the lease is lost.
|
|
267
|
+
* - The provider passed to `fn` labels every `exec` with this holder's tag and `ctx.actor`.
|
|
268
|
+
* - When `fn` throws `SandboxGoneError` (the instance is gone) the instance is rebuilt on the
|
|
269
|
+
* kept files (or the one another holder rebuilt is taken) and `fn` runs once more with
|
|
270
|
+
* `restarted: true`; a second `gone` is thrown. Other errors are thrown as they are.
|
|
271
|
+
* - Lost files throw `environment.files_lost` (409), also when `fn` throws
|
|
272
|
+
* `FileSystemGoneError` (the files are then recorded lost, ruling R24).
|
|
273
|
+
* - When `ctx.holderConversationId` last used another instance (another holder rebuilt it
|
|
274
|
+
* meanwhile), `info.restarted` is true, so it learns its processes are gone (final review m5).
|
|
275
|
+
*/
|
|
276
|
+
withSandbox<T>(ctx: SandboxUseContext, fn: (h: SandboxHandle, p: HeldProvider, info: SandboxUseInfo, signal: AbortSignal) => Promise<T>, signal: AbortSignal): Promise<T>;
|
|
277
|
+
/**
|
|
278
|
+
* Ruling R24: an operation on the held instance `e` found its file system gone. Records
|
|
279
|
+
* `fs_status = 'lost'` while the row still records that instance on its file system (the
|
|
280
|
+
* instance handle stays, so a reset still destroys it), moving the fence on, and returns
|
|
281
|
+
* `environment.files_lost` to throw. Uses then fail until the files are reset (a connected
|
|
282
|
+
* machine: until a new login, which resets the row). A failed write only logs.
|
|
283
|
+
*/
|
|
284
|
+
private filesGone;
|
|
285
|
+
/**
|
|
286
|
+
* Records that `holder` uses the instance of `e` (`capk:sandbox-seen:<env>:<holder>` =
|
|
287
|
+
* `<created_at>:<fs_resets>`, with a TTL of the inactivity destruction plus a day). When the
|
|
288
|
+
* holder last used another instance under the same reset count `e` is marked restarted (files
|
|
289
|
+
* kept); under another count it is marked `filesReset` instead. The count, not the provider's
|
|
290
|
+
* file system id, tells them apart: a provider may give the new file system the old id
|
|
291
|
+
* (sandbox-docker's volumes are named after the environment). Best effort: a Redis error only
|
|
292
|
+
* logs.
|
|
156
293
|
*/
|
|
157
294
|
private seenBy;
|
|
158
|
-
/** Runs `fn` as the holder `e`: its tag on every exec, its lease's signal. */
|
|
295
|
+
/** Runs `fn` as the holder `e`: its tag and the caller's actor on every exec, its lease's signal. */
|
|
159
296
|
private runAs;
|
|
160
297
|
/**
|
|
161
298
|
* Becomes a holder: loops until it has a shared lease on a running instance, or `sandbox.busy`.
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
299
|
+
* An instance recorded `running` (with the current provider, not the `gone` instance) is used
|
|
300
|
+
* under a shared lease; otherwise the exclusive lease (with intent) makes it run and is
|
|
301
|
+
* downgraded. One token serves both, so the waiter passes its own intent.
|
|
165
302
|
*/
|
|
166
303
|
private enter;
|
|
167
304
|
private clearIntent;
|
|
168
305
|
private readRow;
|
|
169
|
-
/**
|
|
306
|
+
/** The instance row belongs to another org: reported as not found, so ids cannot be probed. */
|
|
307
|
+
private foreign;
|
|
308
|
+
/**
|
|
309
|
+
* Recorded running with the current provider on files not lost (lost ones go through the
|
|
310
|
+
* exclusive path, which refuses them), and not the instance found gone.
|
|
311
|
+
*/
|
|
170
312
|
private usable;
|
|
171
313
|
/**
|
|
172
|
-
* Under a just-taken shared lease: confirms the row is still
|
|
173
|
-
* null), records the holder and kills crashed holders' commands.
|
|
314
|
+
* Under a just-taken shared lease: confirms the row is still `accept`ed (else releases and
|
|
315
|
+
* returns null), records the holder and kills crashed holders' commands.
|
|
174
316
|
*/
|
|
175
317
|
private asShared;
|
|
176
318
|
/**
|
|
177
|
-
* Under a just-taken exclusive lease: makes the
|
|
178
|
-
* recorded instance is the one found gone), kills leftovers, then downgrades to
|
|
319
|
+
* Under a just-taken exclusive lease: makes the instance run (file system, create / resume /
|
|
320
|
+
* rebuild when the recorded instance is the one found gone), kills leftovers, then downgrades to
|
|
321
|
+
* a shared lease. Crashed holders' records are claimed here: on an instance just resumed from
|
|
322
|
+
* `suspended` one `killAll` covers them and anything else left (nobody else holds the instance),
|
|
323
|
+
* on a new instance there is nothing to kill, and on one that already ran their tags are killed.
|
|
179
324
|
*/
|
|
180
325
|
private asExclusive;
|
|
181
326
|
/** Ends a holder: unregisters it before releasing its lease, then moves `last_used_at` forward. */
|
|
182
327
|
private leave;
|
|
183
328
|
private register;
|
|
184
329
|
private unregister;
|
|
185
|
-
/**
|
|
186
|
-
* Crashed holders' tags (claimed), and an older kernel's busy marker when `exclusiveToken` is
|
|
187
|
-
* the caller's exclusive lease; a Redis error counts as none.
|
|
188
|
-
*/
|
|
330
|
+
/** Crashed holders' tags (claimed); a Redis error counts as none. */
|
|
189
331
|
private claim;
|
|
332
|
+
/** Kills the commands of crashed holders by their tags (`killTagged`); nothing without tags. */
|
|
333
|
+
private killTagged;
|
|
190
334
|
/** Runs one kill call: gone and abort are thrown, other failures only warned. */
|
|
191
335
|
private kill;
|
|
192
336
|
/**
|
|
193
|
-
*
|
|
194
|
-
* Skips
|
|
195
|
-
* window (about a second) first.
|
|
337
|
+
* Suspends running instances idle longer than `suspendAfterIdleMinutes` or running continuously
|
|
338
|
+
* longer than `maxRunningMinutes`. Skips an environment with any holder; one past
|
|
339
|
+
* `maxRunningMinutes` gets the intent for one poll window (about a second) first. Returns how
|
|
340
|
+
* many it suspended. Called every minute by the `sandbox-suspend-idle` cron.
|
|
196
341
|
*/
|
|
197
342
|
suspendIdle(now: Date): Promise<number>;
|
|
198
343
|
/**
|
|
199
|
-
*
|
|
200
|
-
*
|
|
344
|
+
* Destruction sweep: an instance unused for longer than `destroyAfterInactiveDays` is destroyed
|
|
345
|
+
* (the instance only; the file system is kept and the next use builds a new instance on it); an
|
|
346
|
+
* environment that was deleted, or whose org was deleted, loses its instance and its file system
|
|
347
|
+
* and its row is deleted (as {@link destroyEnvironment} does). Environments with any holder are
|
|
348
|
+
* skipped. Inactivity never destroys a `@device` instance; a gone `@device` environment is
|
|
349
|
+
* destroyed like any other while `@device` is registered. Returns how many it destroyed. Called
|
|
350
|
+
* hourly by the `sandbox-destroy-inactive` cron.
|
|
201
351
|
*/
|
|
202
352
|
destroyInactive(now: Date): Promise<number>;
|
|
203
353
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
* to 10 minutes.
|
|
354
|
+
* Destroys the environment's instance, then its file system, then deletes its instance row
|
|
355
|
+
* (environment deletion, offboarding); nothing to do without a row. Waits for the exclusive lease
|
|
356
|
+
* (with intent, so running commands finish and new ones wait) up to 10 minutes. Without the
|
|
357
|
+
* environment's provider it throws and the row stays, marked `sweep_failed_at` (the job is
|
|
358
|
+
* retried, and the destruction sweep finishes a deleted environment once the provider is back).
|
|
359
|
+
* Files kept by another provider that is not loaded cannot be destroyed: it throws and the row
|
|
360
|
+
* stays.
|
|
361
|
+
*/
|
|
362
|
+
destroyEnvironment(environmentId: string): Promise<void>;
|
|
363
|
+
/**
|
|
364
|
+
* Starts the environment over with empty files (after `environment.files_lost`, or on request):
|
|
365
|
+
* under the exclusive lease (waited for like {@link destroyEnvironment}) destroys any instance and
|
|
366
|
+
* the file system (a `lost` one is only dropped), and records no file system; the next use
|
|
367
|
+
* creates a new one. Nothing to do without a row. Throws `sandbox.unavailable` without a provider.
|
|
207
368
|
*/
|
|
208
|
-
|
|
369
|
+
resetFileSystem(environmentId: string): Promise<void>;
|
|
209
370
|
/**
|
|
210
|
-
*
|
|
211
|
-
*
|
|
371
|
+
* Under the exclusive lease (before the downgrade), on an instance just resumed from
|
|
372
|
+
* `suspended`: kills every command left in it (`killAll`), crashed holders' (`dead`, already
|
|
373
|
+
* claimed) included. Never on the shared path: other holders may be running commands. A gone
|
|
374
|
+
* instance (`SandboxGoneError`) and an abort are thrown (`withSandbox` rebuilds / ends); other
|
|
375
|
+
* failures are only warned.
|
|
212
376
|
*/
|
|
213
377
|
private killLeftovers;
|
|
214
|
-
private require;
|
|
215
378
|
/**
|
|
216
|
-
*
|
|
379
|
+
* Under the exclusive lease, right after a resume or a (re)build: kills the sessions of the
|
|
380
|
+
* background tasks marked lost while their process may live on (`kill_pending`), in one exec of
|
|
381
|
+
* `pkill -KILL -s <sid>`, then clears their flags. Tasks of another instance have no process
|
|
382
|
+
* here and are only cleared. A gone instance and an abort are thrown; another failure is warned
|
|
383
|
+
* and leaves the flags of this instance's tasks for the next resume.
|
|
384
|
+
*/
|
|
385
|
+
private killPendingTasks;
|
|
386
|
+
/**
|
|
387
|
+
* A fenced write: only while the lease holds and the row's generation is still the one read
|
|
388
|
+
* under it (and incremented); otherwise {@link SandboxLockLostError}.
|
|
217
389
|
*/
|
|
218
390
|
private fenced;
|
|
219
|
-
/**
|
|
391
|
+
/** Sweep candidates: those whose last sweep failed come last, the rest least recently used first. */
|
|
220
392
|
private candidates;
|
|
221
393
|
/**
|
|
222
394
|
* One try at the exclusive lease: null → false; else runs `fn`. With `overdue` (past
|
|
223
|
-
* `maxRunningMinutes`) a busy
|
|
224
|
-
* briefly and the sweep gets in if the running ones end. Failures are warned, recorded in
|
|
395
|
+
* `maxRunningMinutes`) a busy environment gets the intent for about a second, so new commands
|
|
396
|
+
* wait briefly and the sweep gets in if the running ones end. Failures are warned, recorded in
|
|
225
397
|
* `sweep_failed_at` (sorted last next time) and return false.
|
|
226
398
|
*/
|
|
227
399
|
private tryLocked;
|
|
228
400
|
/**
|
|
229
|
-
* Under the exclusive lease: make the
|
|
401
|
+
* Under the exclusive lease: make the environment's instance run. `gone`: the instance a holder
|
|
230
402
|
* found gone; when it is still the recorded one it is rebuilt, when another holder already
|
|
231
403
|
* rebuilt it the new one is used.
|
|
232
404
|
*/
|
|
233
405
|
private ensure;
|
|
234
406
|
/**
|
|
235
|
-
*
|
|
236
|
-
*
|
|
407
|
+
* Under the lease: fenced reset to `creating`, the file system when there is none
|
|
408
|
+
* (`createFileSystem`, its handle written fenced), then the instance on it, then a fenced write
|
|
409
|
+
* of the instance handle. `FileSystemGoneError` from `create` records `fs_status = 'lost'` and
|
|
410
|
+
* throws `environment.files_lost`. When the instance handle cannot be written (lease lost), the
|
|
411
|
+
* new instance is destroyed (best effort) before {@link SandboxLockLostError} is thrown.
|
|
237
412
|
*/
|
|
238
413
|
private create;
|
|
239
414
|
/**
|
|
240
|
-
*
|
|
415
|
+
* Destroys the file system another provider may have made under the environment's name without
|
|
416
|
+
* the kernel recording it (`destroyFileSystemByName`; not there is success). That provider not
|
|
417
|
+
* loaded, or a failure, is only warned (the files may leak there) so the environment stays
|
|
418
|
+
* usable; an abort is thrown.
|
|
419
|
+
*/
|
|
420
|
+
private dropUnrecordedFiles;
|
|
421
|
+
/**
|
|
422
|
+
* Destroys an instance of another provider with that provider: still loaded and destroyed →
|
|
423
|
+
* false; otherwise warns and returns true (the record must be kept).
|
|
241
424
|
*/
|
|
242
425
|
private retire;
|
|
243
|
-
/**
|
|
426
|
+
/**
|
|
427
|
+
* Under the lease: destroys the row's instance (and a leaked one of an earlier provider). An
|
|
428
|
+
* instance without a handle (a create that ended before the handle was recorded) is destroyed by
|
|
429
|
+
* name. Returns the `prev_*` patch for instances that could not be destroyed.
|
|
430
|
+
*/
|
|
431
|
+
private destroyInstance;
|
|
432
|
+
/**
|
|
433
|
+
* Under the lease: destroys the row's file system with the provider that made it (by name when
|
|
434
|
+
* no handle was recorded: `createFileSystem` may have finished before the kernel stopped). With
|
|
435
|
+
* that provider not loaded it throws (the row must stay for a retry), or with `lenient` only
|
|
436
|
+
* warns (the files leak at that provider).
|
|
437
|
+
*/
|
|
438
|
+
private destroyFiles;
|
|
439
|
+
/**
|
|
440
|
+
* Under the lease: `instance` destroys the instance and marks the row `destroyed` (the file
|
|
441
|
+
* system stays); `environment` also destroys the file system and deletes the row.
|
|
442
|
+
*/
|
|
244
443
|
private destroyRow;
|
|
245
|
-
/**
|
|
444
|
+
/** Due for suspension: made by this provider, running, and idle or running for too long. */
|
|
246
445
|
private suspendDue;
|
|
247
|
-
/**
|
|
248
|
-
private
|
|
446
|
+
/** The provider of an instance row: an internal one (`@device`) by name, else the cloud one. */
|
|
447
|
+
private rowProvider;
|
|
448
|
+
/**
|
|
449
|
+
* A row the idle sweeps may touch: not on a kernel-internal provider (`@device` instances live on
|
|
450
|
+
* people's machines and are never suspended or destroyed for inactivity).
|
|
451
|
+
*/
|
|
452
|
+
private cloudRow;
|
|
453
|
+
/** The environment was deleted, or its org was: the instance and the files go. */
|
|
454
|
+
private environmentGone;
|
|
455
|
+
/** Due for instance destruction: an instance (or a create in progress) unused for too long. */
|
|
456
|
+
private instanceDue;
|
|
249
457
|
}
|