@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +85 -5
- package/dist/admin/admin.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +57 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +868 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +216 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +232 -0
- package/dist/catalog/catalog-content.js +367 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +290 -0
- package/dist/catalog/catalog-items.js +676 -0
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1124 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +141 -206
- package/dist/catalog/catalog.service.js +237 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +90 -0
- package/dist/catalog/component-scope.controller.js +234 -0
- package/dist/catalog/component-scope.schemas.d.ts +114 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +327 -0
- package/dist/catalog/component-scope.service.js +990 -0
- package/dist/catalog/component-state.d.ts +188 -0
- package/dist/catalog/component-state.js +455 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +431 -472
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +113 -0
- package/dist/catalog/org-extension.controller.js +271 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +801 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +223 -0
- package/dist/catalog/platform-components.js +763 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +270 -68
- package/dist/catalog/plugin-import.js +1004 -277
- package/dist/catalog/plugin-install.d.ts +251 -65
- package/dist/catalog/plugin-install.js +1128 -344
- package/dist/catalog/plugin-package.js +14 -1
- package/dist/catalog/plugin-upgrade.d.ts +301 -188
- package/dist/catalog/plugin-upgrade.js +1256 -1068
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +118 -0
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +550 -25
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +135 -2
- package/dist/errors.js +135 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +91 -4
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +86 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +130 -38
- package/dist/identity/accounts.js +373 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +32 -15
- package/dist/identity/me.controller.js +78 -33
- package/dist/identity/me.schemas.d.ts +14 -0
- package/dist/identity/me.schemas.js +17 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +42 -23
- package/dist/identity/settings.js +137 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +7 -0
- package/dist/models/models.module.js +36 -0
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +45 -14
- package/dist/orgs/settings.service.js +110 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +667 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +90 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin.ops.d.ts +36 -0
- package/dist/platform/ops/admin.ops.js +389 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +717 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +853 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +378 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -0
- package/dist/platform/ops/org-settings.ops.d.ts +16 -0
- package/dist/platform/ops/org-settings.ops.js +102 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +295 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +28 -0
- package/dist/platform/ops/platform.ops.js +204 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +216 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +39 -0
- package/dist/platform/platform-ops.module.js +122 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +63 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +43 -0
- package/dist/runtime/run-control.js +89 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +30 -20
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +52 -45
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { KernelLogger } from "../../log.js";
|
|
2
|
+
/**
|
|
3
|
+
* The kernel's in-process domain events (nest kernel spec §3b): a domain announces what happened,
|
|
4
|
+
* and another domain reacts without the first depending on it. Same-process only, so only for
|
|
5
|
+
* notifications that may be lost and are re-derived elsewhere; anything that must reach every
|
|
6
|
+
* replica goes over the kernel bus (`KERNEL_BUS`).
|
|
7
|
+
*/
|
|
8
|
+
export interface KernelEventMap {
|
|
9
|
+
/**
|
|
10
|
+
* An organization was soft-deleted (after the commit). Channel connections drop their long
|
|
11
|
+
* connections (the connection reads also filter deleted orgs, so a lost event only delays it).
|
|
12
|
+
*/
|
|
13
|
+
"org.deleted": {
|
|
14
|
+
orgId: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* An organization disabled an extension (after the commit). Its channel connections in the org
|
|
18
|
+
* drop their long connections at once (the supervisor's periodic re-check is the fallback).
|
|
19
|
+
*/
|
|
20
|
+
"extension.org-disabled": {
|
|
21
|
+
orgId: string;
|
|
22
|
+
plugin: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A person decided a tool call approval (after the commit, exactly once: only the decision that
|
|
26
|
+
* changed it from pending). The run's waits resume it and its IM delivery is enqueued; a lost
|
|
27
|
+
* event is re-derived by the wait sweep (runs waiting on a decided approval are resumed).
|
|
28
|
+
*/
|
|
29
|
+
"approval.decided": {
|
|
30
|
+
id: string;
|
|
31
|
+
orgId: string;
|
|
32
|
+
conversationId: string;
|
|
33
|
+
runId: string;
|
|
34
|
+
status: "approved" | "denied";
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* A person answered a tool call's input request (after the commit, exactly once). Same
|
|
38
|
+
* consumers and the same re-derivation as `approval.decided`.
|
|
39
|
+
*/
|
|
40
|
+
"question.answered": {
|
|
41
|
+
id: string;
|
|
42
|
+
orgId: string;
|
|
43
|
+
conversationId: string;
|
|
44
|
+
runId: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* EventAppended: a conversation's event log advanced to `toSeq` (after the commit, from
|
|
48
|
+
* `EventLog.notify`, right after the bus publish). The channel outbound delivery enqueues a job
|
|
49
|
+
* for a conversation with an IM target; a lost event is re-derived by the next append's (and the
|
|
50
|
+
* finished delivery job re-checks the log for content it has not delivered).
|
|
51
|
+
*/
|
|
52
|
+
"conversation.event-appended": {
|
|
53
|
+
conversationId: string;
|
|
54
|
+
toSeq: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* A run started executing on this replica (its first start, a resume, or a takeover after a
|
|
58
|
+
* stall), after it took the conversation lock and an org quota slot. The channel outbound
|
|
59
|
+
* enqueues the conversation's IM delivery; a lost event is re-derived by the run's next append.
|
|
60
|
+
*/
|
|
61
|
+
"run.started": {
|
|
62
|
+
conversationId: string;
|
|
63
|
+
runId: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* A stop of a run waiting on a person was handled (`RunControl.abortWaiting`, whether or not it
|
|
67
|
+
* still waited): its approval and question cards change, so the channel outbound enqueues the
|
|
68
|
+
* conversation's IM delivery (re-derived by the next append when lost).
|
|
69
|
+
*/
|
|
70
|
+
"run.wait-stopped": {
|
|
71
|
+
conversationId: string;
|
|
72
|
+
runId: string;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* `ensureRun` marked an orphaned run failed (after the commit): the waits stop its active fork
|
|
76
|
+
* sub-agent at once (background sub-agents keep running, agent map spec §5.4). A lost event is
|
|
77
|
+
* repaired by the wait sweep (fork children of finished runs).
|
|
78
|
+
*/
|
|
79
|
+
"run.orphaned": {
|
|
80
|
+
runId: string;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* A sub-agent's `subagent_delivery` was appended to its parent conversation (after the commit;
|
|
84
|
+
* `SubagentDeliveries`). Waking an idle parent follows it; a lost event is re-derived by the
|
|
85
|
+
* next `ensureRun` (a message, the end of a run, a page opening).
|
|
86
|
+
*/
|
|
87
|
+
"subagent.delivered": {
|
|
88
|
+
conversationId: string;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* A background task of the conversation finished (after the commit of its
|
|
92
|
+
* `background_task_finished` event). `BackgroundWake` asks the run queue for a wake run; a lost
|
|
93
|
+
* event is re-derived by the next `ensureRun` (a message, the end of a run, a page opening).
|
|
94
|
+
*/
|
|
95
|
+
"background_task.finished": {
|
|
96
|
+
conversationId: string;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* An extension's `ctx.models.embed` call wrote a `model_usage` row (after the commit, spec B
|
|
100
|
+
* §5.4). The usage reporter enqueues its `usage.report` delivery; a lost event is re-derived by
|
|
101
|
+
* the usage sweep (rows whose `reported_at` is still null).
|
|
102
|
+
*/
|
|
103
|
+
"model_usage.recorded": {
|
|
104
|
+
id: string;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
type Handler<K extends keyof KernelEventMap> = (payload: KernelEventMap[K]) => Promise<void> | void;
|
|
108
|
+
/** Typed in-process event emitter; handlers run in order, a failing one is logged and skipped. */
|
|
109
|
+
export declare class KernelEvents {
|
|
110
|
+
private readonly log;
|
|
111
|
+
private readonly handlers;
|
|
112
|
+
constructor(log: Pick<KernelLogger, "warn">);
|
|
113
|
+
/** Subscribes; returns the unsubscribe function. */
|
|
114
|
+
on<K extends keyof KernelEventMap>(event: K, handler: Handler<K>): () => void;
|
|
115
|
+
/** Runs every handler of `event` and waits for them. */
|
|
116
|
+
emit<K extends keyof KernelEventMap>(event: K, payload: KernelEventMap[K]): Promise<void>;
|
|
117
|
+
}
|
|
118
|
+
/** Global: the one {@link KernelEvents}. */
|
|
119
|
+
export declare class KernelEventsModule {
|
|
120
|
+
}
|
|
121
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Global, Inject, Injectable, Module } from "@nestjs/common";
|
|
11
|
+
import { KERNEL_LOGGER } from "../tokens.js";
|
|
12
|
+
/** The payload's id for the failure log (`approvalId` / `questionId`, as the old hooks logged). */
|
|
13
|
+
function idFields(event, payload) {
|
|
14
|
+
const id = payload.id;
|
|
15
|
+
if (typeof id !== "string")
|
|
16
|
+
return {};
|
|
17
|
+
if (event === "approval.decided")
|
|
18
|
+
return { approvalId: id };
|
|
19
|
+
if (event === "question.answered")
|
|
20
|
+
return { questionId: id };
|
|
21
|
+
return { id };
|
|
22
|
+
}
|
|
23
|
+
/** Typed in-process event emitter; handlers run in order, a failing one is logged and skipped. */
|
|
24
|
+
let KernelEvents = class KernelEvents {
|
|
25
|
+
log;
|
|
26
|
+
handlers = new Map();
|
|
27
|
+
constructor(log) {
|
|
28
|
+
this.log = log;
|
|
29
|
+
}
|
|
30
|
+
/** Subscribes; returns the unsubscribe function. */
|
|
31
|
+
on(event, handler) {
|
|
32
|
+
const list = this.handlers.get(event) ?? [];
|
|
33
|
+
list.push(handler);
|
|
34
|
+
this.handlers.set(event, list);
|
|
35
|
+
return () => {
|
|
36
|
+
const at = list.indexOf(handler);
|
|
37
|
+
if (at >= 0)
|
|
38
|
+
list.splice(at, 1);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Runs every handler of `event` and waits for them. */
|
|
42
|
+
async emit(event, payload) {
|
|
43
|
+
for (const h of [...(this.handlers.get(event) ?? [])]) {
|
|
44
|
+
try {
|
|
45
|
+
await h(payload);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
this.log.warn("kernel event handler failed", { event, ...idFields(event, payload), err });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
KernelEvents = __decorate([
|
|
54
|
+
Injectable(),
|
|
55
|
+
__param(0, Inject(KERNEL_LOGGER))
|
|
56
|
+
], KernelEvents);
|
|
57
|
+
export { KernelEvents };
|
|
58
|
+
/** Global: the one {@link KernelEvents}. */
|
|
59
|
+
let KernelEventsModule = class KernelEventsModule {
|
|
60
|
+
};
|
|
61
|
+
KernelEventsModule = __decorate([
|
|
62
|
+
Global(),
|
|
63
|
+
Module({ providers: [KernelEvents], exports: [KernelEvents] })
|
|
64
|
+
], KernelEventsModule);
|
|
65
|
+
export { KernelEventsModule };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { HealthCheckService, HealthIndicatorService } from "@nestjs/terminus";
|
|
3
|
+
import type { FastifyReply } from "fastify";
|
|
4
|
+
import { type ReadinessCheck } from "./health.options.js";
|
|
5
|
+
import { type ShutdownState } from "./shutdown-state.js";
|
|
6
|
+
/** A dependency that hangs (Redis reconnecting, commands in the offline queue) must still give 503 fast. */
|
|
7
|
+
export declare const CHECK_TIMEOUT_MS = 2000;
|
|
8
|
+
/**
|
|
9
|
+
* `GET /healthz` (process alive, always 200) and `GET /readyz` (dependencies ready).
|
|
10
|
+
* The readyz body only names each check as `"ok"` / `"error"`; the failure reason goes to the log
|
|
11
|
+
* (redacted) and never into the response: driver errors can carry connection strings. Once a stop
|
|
12
|
+
* has begun readyz answers 503 at once and runs no check. `@Public()`: the global auth guard
|
|
13
|
+
* applies here too when the kernel API is mounted.
|
|
14
|
+
*/
|
|
15
|
+
export declare class HealthController {
|
|
16
|
+
private readonly health;
|
|
17
|
+
private readonly indicators;
|
|
18
|
+
private readonly checks;
|
|
19
|
+
private readonly shutdown;
|
|
20
|
+
private readonly log;
|
|
21
|
+
constructor(health: HealthCheckService, indicators: HealthIndicatorService, checks: Record<string, ReadinessCheck>, shutdown: ShutdownState, log: Logger);
|
|
22
|
+
healthz(): {
|
|
23
|
+
ok: true;
|
|
24
|
+
};
|
|
25
|
+
readyz(reply: FastifyReply): Promise<Record<string, unknown>>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Controller, Get, Inject, Res } from "@nestjs/common";
|
|
11
|
+
import { HealthCheckService, HealthIndicatorService, } from "@nestjs/terminus";
|
|
12
|
+
import { Public } from "../../identity/principal.js";
|
|
13
|
+
import { KERNEL_LOGGER } from "../tokens.js";
|
|
14
|
+
import { HEALTH_CHECKS } from "./health.options.js";
|
|
15
|
+
import { SHUTDOWN_STATE } from "./shutdown-state.js";
|
|
16
|
+
/** A dependency that hangs (Redis reconnecting, commands in the offline queue) must still give 503 fast. */
|
|
17
|
+
export const CHECK_TIMEOUT_MS = 2_000;
|
|
18
|
+
/**
|
|
19
|
+
* `GET /healthz` (process alive, always 200) and `GET /readyz` (dependencies ready).
|
|
20
|
+
* The readyz body only names each check as `"ok"` / `"error"`; the failure reason goes to the log
|
|
21
|
+
* (redacted) and never into the response: driver errors can carry connection strings. Once a stop
|
|
22
|
+
* has begun readyz answers 503 at once and runs no check. `@Public()`: the global auth guard
|
|
23
|
+
* applies here too when the kernel API is mounted.
|
|
24
|
+
*/
|
|
25
|
+
let HealthController = class HealthController {
|
|
26
|
+
health;
|
|
27
|
+
indicators;
|
|
28
|
+
checks;
|
|
29
|
+
shutdown;
|
|
30
|
+
log;
|
|
31
|
+
constructor(health, indicators, checks, shutdown, log) {
|
|
32
|
+
this.health = health;
|
|
33
|
+
this.indicators = indicators;
|
|
34
|
+
this.checks = checks;
|
|
35
|
+
this.shutdown = shutdown;
|
|
36
|
+
this.log = log;
|
|
37
|
+
}
|
|
38
|
+
healthz() {
|
|
39
|
+
return { ok: true };
|
|
40
|
+
}
|
|
41
|
+
async readyz(reply) {
|
|
42
|
+
const stopping = () => {
|
|
43
|
+
reply.code(503);
|
|
44
|
+
return { ok: false, stopping: true };
|
|
45
|
+
};
|
|
46
|
+
if (this.shutdown.isShuttingDown())
|
|
47
|
+
return stopping();
|
|
48
|
+
const names = Object.keys(this.checks);
|
|
49
|
+
const logged = new Set();
|
|
50
|
+
const fns = names.map((name) => () => this.indicators
|
|
51
|
+
.check(name)
|
|
52
|
+
.attempt(async () => {
|
|
53
|
+
try {
|
|
54
|
+
await this.checks[name]();
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
logged.add(name);
|
|
58
|
+
this.log.warn("readiness check failed", { check: name, err });
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
.withTimeout(CHECK_TIMEOUT_MS));
|
|
63
|
+
// `check` throws a 503 exception carrying the same `details` when any indicator is down
|
|
64
|
+
const details = await this.health.check(fns).then((r) => r.details, (e) => {
|
|
65
|
+
const d = e.getResponse?.().details;
|
|
66
|
+
if (d === undefined)
|
|
67
|
+
throw e;
|
|
68
|
+
return d;
|
|
69
|
+
});
|
|
70
|
+
if (this.shutdown.isShuttingDown())
|
|
71
|
+
return stopping();
|
|
72
|
+
const body = {};
|
|
73
|
+
let ok = true;
|
|
74
|
+
for (const name of names) {
|
|
75
|
+
const up = details[name]?.status === "up";
|
|
76
|
+
if (!up) {
|
|
77
|
+
ok = false;
|
|
78
|
+
// A timeout never reaches the wrapper's catch in time
|
|
79
|
+
if (!logged.has(name))
|
|
80
|
+
this.log.warn("readiness check failed", { check: name, err: details[name] });
|
|
81
|
+
}
|
|
82
|
+
body[name] = up ? "ok" : "error";
|
|
83
|
+
}
|
|
84
|
+
reply.code(ok ? 200 : 503);
|
|
85
|
+
return { ok, ...body };
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
__decorate([
|
|
89
|
+
Get("healthz")
|
|
90
|
+
], HealthController.prototype, "healthz", null);
|
|
91
|
+
__decorate([
|
|
92
|
+
Get("readyz"),
|
|
93
|
+
__param(0, Res({ passthrough: true }))
|
|
94
|
+
], HealthController.prototype, "readyz", null);
|
|
95
|
+
HealthController = __decorate([
|
|
96
|
+
Controller(),
|
|
97
|
+
Public(),
|
|
98
|
+
__param(0, Inject(HealthCheckService)),
|
|
99
|
+
__param(1, Inject(HealthIndicatorService)),
|
|
100
|
+
__param(2, Inject(HEALTH_CHECKS)),
|
|
101
|
+
__param(3, Inject(SHUTDOWN_STATE)),
|
|
102
|
+
__param(4, Inject(KERNEL_LOGGER))
|
|
103
|
+
], HealthController);
|
|
104
|
+
export { HealthController };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The terminus machinery behind `/healthz` and `/readyz`. The controller
|
|
3
|
+
* ({@link HealthController}) is registered by the root module, which also provides
|
|
4
|
+
* `HEALTH_CHECKS`; `SHUTDOWN_STATE` is the global `GracefulShutdown`. Terminus' own error logging
|
|
5
|
+
* is off: the
|
|
6
|
+
* controller logs a failed check once, with the redacted error, and never puts it in the body.
|
|
7
|
+
*/
|
|
8
|
+
export declare class HealthModule {
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Module } from "@nestjs/common";
|
|
8
|
+
import { TerminusModule } from "@nestjs/terminus";
|
|
9
|
+
/**
|
|
10
|
+
* The terminus machinery behind `/healthz` and `/readyz`. The controller
|
|
11
|
+
* ({@link HealthController}) is registered by the root module, which also provides
|
|
12
|
+
* `HEALTH_CHECKS`; `SHUTDOWN_STATE` is the global `GracefulShutdown`. Terminus' own error logging
|
|
13
|
+
* is off: the
|
|
14
|
+
* controller logs a failed check once, with the redacted error, and never puts it in the body.
|
|
15
|
+
*/
|
|
16
|
+
let HealthModule = class HealthModule {
|
|
17
|
+
};
|
|
18
|
+
HealthModule = __decorate([
|
|
19
|
+
Module({
|
|
20
|
+
imports: [TerminusModule.forRoot({ logger: false })],
|
|
21
|
+
exports: [TerminusModule],
|
|
22
|
+
})
|
|
23
|
+
], HealthModule);
|
|
24
|
+
export { HealthModule };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Redis } from "ioredis";
|
|
2
|
+
import { type Kysely } from "kysely";
|
|
3
|
+
/** One readiness check: resolves when the dependency is ready, rejects when it is not. */
|
|
4
|
+
export type ReadinessCheck = () => Promise<void>;
|
|
5
|
+
/** Injection token of the named readiness checks (`Record<string, ReadinessCheck>`). */
|
|
6
|
+
export declare const HEALTH_CHECKS: unique symbol;
|
|
7
|
+
/** `select 1` on the pool. */
|
|
8
|
+
export declare const databaseCheck: (pool: Kysely<any>) => ReadinessCheck;
|
|
9
|
+
/** PING on a connection that must already be `ready` (a reconnecting client is not ready). */
|
|
10
|
+
export declare const redisCheck: (redis: Redis) => ReadinessCheck;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { sql } from "kysely";
|
|
2
|
+
/** Injection token of the named readiness checks (`Record<string, ReadinessCheck>`). */
|
|
3
|
+
export const HEALTH_CHECKS = Symbol("HEALTH_CHECKS");
|
|
4
|
+
/** `select 1` on the pool. */
|
|
5
|
+
export const databaseCheck =
|
|
6
|
+
// biome-ignore lint/suspicious/noExplicitAny: the pool carries no schema types
|
|
7
|
+
(pool) => async () => {
|
|
8
|
+
await sql `select 1`.execute(pool);
|
|
9
|
+
};
|
|
10
|
+
/** PING on a connection that must already be `ready` (a reconnecting client is not ready). */
|
|
11
|
+
export const redisCheck = (redis) => async () => {
|
|
12
|
+
if (redis.status !== "ready")
|
|
13
|
+
throw new Error(`redis status ${redis.status}`);
|
|
14
|
+
await redis.ping();
|
|
15
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Whether the process is shutting down; readiness answers 503 from then on. */
|
|
2
|
+
export interface ShutdownState {
|
|
3
|
+
isShuttingDown(): boolean;
|
|
4
|
+
}
|
|
5
|
+
/** Injection token of the {@link ShutdownState}: `GracefulShutdown` (`GracefulShutdownModule`). */
|
|
6
|
+
export declare const SHUTDOWN_STATE: unique symbol;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Global, Module } from "@nestjs/common";
|
|
8
|
+
import { SHUTDOWN_STATE } from "../health/shutdown-state.js";
|
|
9
|
+
import { GracefulShutdown } from "./graceful-shutdown.service.js";
|
|
10
|
+
/**
|
|
11
|
+
* Global: {@link GracefulShutdown}, also as the health endpoints' `SHUTDOWN_STATE`. The infra
|
|
12
|
+
* modules that close resources at shutdown (Redis, the pool) import it for the shared stop budget.
|
|
13
|
+
*/
|
|
14
|
+
let GracefulShutdownModule = class GracefulShutdownModule {
|
|
15
|
+
};
|
|
16
|
+
GracefulShutdownModule = __decorate([
|
|
17
|
+
Global(),
|
|
18
|
+
Module({
|
|
19
|
+
providers: [GracefulShutdown, { provide: SHUTDOWN_STATE, useExisting: GracefulShutdown }],
|
|
20
|
+
exports: [GracefulShutdown, SHUTDOWN_STATE],
|
|
21
|
+
})
|
|
22
|
+
], GracefulShutdownModule);
|
|
23
|
+
export { GracefulShutdownModule };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type BeforeApplicationShutdown, type OnApplicationShutdown } from "@nestjs/common";
|
|
2
|
+
import type { KernelLogger } from "../../log.js";
|
|
3
|
+
import type { ShutdownState } from "../health/shutdown-state.js";
|
|
4
|
+
/**
|
|
5
|
+
* The total stop budget: from the moment the shutdown begins, the stop phases and the infra closes
|
|
6
|
+
* (bus, Redis, pool) share these 30 s; whatever is still open after it is abandoned.
|
|
7
|
+
*/
|
|
8
|
+
export declare const STOP_TIMEOUT_MS = 30000;
|
|
9
|
+
/**
|
|
10
|
+
* The process's shutdown state, the one source of "are we stopping" (nest kernel spec §4).
|
|
11
|
+
*
|
|
12
|
+
* {@link begin} (idempotent, synchronous) flips readiness to 503 ({@link isShuttingDown}, read by
|
|
13
|
+
* `/readyz`), aborts {@link signal} (the start sequence stops at its next checkpoint, an extension
|
|
14
|
+
* migration of the start is aborted, the SSE stream registries close and refuse new streams) and
|
|
15
|
+
* starts the {@link STOP_TIMEOUT_MS} deadline that every later stop step takes its share of
|
|
16
|
+
* ({@link remainingMs}).
|
|
17
|
+
*
|
|
18
|
+
* {@link trackInFlight} registers work the stop must let finish before it closes what that work
|
|
19
|
+
* uses; {@link drain} waits for the set to empty, re-reading it each round (work registered by
|
|
20
|
+
* tracked work while draining is waited for too), up to a budget, and reports a timeout instead of
|
|
21
|
+
* hanging. The kernel's stop phases (`KernelLifecycle`) call `begin()` first and drain at their
|
|
22
|
+
* start-work step; components with their own close (the run workers, the extension host, Fastify)
|
|
23
|
+
* keep draining themselves within their phase budgets.
|
|
24
|
+
*
|
|
25
|
+
* `beforeApplicationShutdown` runs `begin()` and a final drain bounded by the remaining budget, so
|
|
26
|
+
* a Nest application without `KernelLifecycle` (or whose stop phases already drained) behaves the
|
|
27
|
+
* same: the readiness flip happens while the port is still open, before `dispose()` closes it.
|
|
28
|
+
*
|
|
29
|
+
* {@link closeLast} registers the close of an infra connection (the bus and Redis, the pool);
|
|
30
|
+
* `onApplicationShutdown` runs them all at once. This is a global module's hook, so it runs after
|
|
31
|
+
* every other module's stop hooks: nothing uses those connections once they start closing, and a
|
|
32
|
+
* close that hangs (Redis down) does not hold back the others, which share what is left of the
|
|
33
|
+
* same budget.
|
|
34
|
+
*/
|
|
35
|
+
export declare class GracefulShutdown implements BeforeApplicationShutdown, OnApplicationShutdown, ShutdownState {
|
|
36
|
+
private readonly log;
|
|
37
|
+
private shuttingDown;
|
|
38
|
+
private deadline;
|
|
39
|
+
private readonly abort;
|
|
40
|
+
private readonly inFlight;
|
|
41
|
+
private readonly lastCloses;
|
|
42
|
+
constructor(log: KernelLogger);
|
|
43
|
+
/** True from the moment the shutdown began; readiness answers 503 from then on. */
|
|
44
|
+
isShuttingDown(): boolean;
|
|
45
|
+
/** Aborted when the shutdown begins. */
|
|
46
|
+
get signal(): AbortSignal;
|
|
47
|
+
/** Begins the shutdown (idempotent): readiness 503, {@link signal} aborted, the deadline set. */
|
|
48
|
+
begin(): void;
|
|
49
|
+
/** What is left of the total stop budget (the whole budget before the shutdown began). */
|
|
50
|
+
remainingMs(): number;
|
|
51
|
+
/** Registers work the stop waits for (see {@link drain}); returns `p`. */
|
|
52
|
+
trackInFlight<T>(p: Promise<T>): Promise<T>;
|
|
53
|
+
/** The number of tracked promises not settled yet. */
|
|
54
|
+
get inFlightCount(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Waits until no tracked work is left, at most `budgetMs` (capped by {@link remainingMs} once the
|
|
57
|
+
* shutdown began). Resolves true when everything settled, false on timeout: what is left is
|
|
58
|
+
* logged and abandoned (no later drain waits for it again). Rejections of tracked work are not
|
|
59
|
+
* this wait's business: they only count as settled.
|
|
60
|
+
*/
|
|
61
|
+
drain(budgetMs: number): Promise<boolean>;
|
|
62
|
+
beforeApplicationShutdown(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Registers the close of an infra connection, run at the very end of the shutdown together with
|
|
65
|
+
* the others (see the class comment). `close` bounds itself by {@link remainingMs} and never
|
|
66
|
+
* throws.
|
|
67
|
+
*/
|
|
68
|
+
closeLast(close: () => Promise<void>): void;
|
|
69
|
+
onApplicationShutdown(): Promise<void>;
|
|
70
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
// Ported from octok-platform libs/service-rpc/src/shutdown/graceful-shutdown.service.ts (owner-approved, 2026-10-28).
|
|
11
|
+
import { Inject, Injectable, } from "@nestjs/common";
|
|
12
|
+
import { waitWithin } from "../close-within.js";
|
|
13
|
+
import { KERNEL_LOGGER } from "../tokens.js";
|
|
14
|
+
/**
|
|
15
|
+
* The total stop budget: from the moment the shutdown begins, the stop phases and the infra closes
|
|
16
|
+
* (bus, Redis, pool) share these 30 s; whatever is still open after it is abandoned.
|
|
17
|
+
*/
|
|
18
|
+
export const STOP_TIMEOUT_MS = 30_000;
|
|
19
|
+
/**
|
|
20
|
+
* The process's shutdown state, the one source of "are we stopping" (nest kernel spec §4).
|
|
21
|
+
*
|
|
22
|
+
* {@link begin} (idempotent, synchronous) flips readiness to 503 ({@link isShuttingDown}, read by
|
|
23
|
+
* `/readyz`), aborts {@link signal} (the start sequence stops at its next checkpoint, an extension
|
|
24
|
+
* migration of the start is aborted, the SSE stream registries close and refuse new streams) and
|
|
25
|
+
* starts the {@link STOP_TIMEOUT_MS} deadline that every later stop step takes its share of
|
|
26
|
+
* ({@link remainingMs}).
|
|
27
|
+
*
|
|
28
|
+
* {@link trackInFlight} registers work the stop must let finish before it closes what that work
|
|
29
|
+
* uses; {@link drain} waits for the set to empty, re-reading it each round (work registered by
|
|
30
|
+
* tracked work while draining is waited for too), up to a budget, and reports a timeout instead of
|
|
31
|
+
* hanging. The kernel's stop phases (`KernelLifecycle`) call `begin()` first and drain at their
|
|
32
|
+
* start-work step; components with their own close (the run workers, the extension host, Fastify)
|
|
33
|
+
* keep draining themselves within their phase budgets.
|
|
34
|
+
*
|
|
35
|
+
* `beforeApplicationShutdown` runs `begin()` and a final drain bounded by the remaining budget, so
|
|
36
|
+
* a Nest application without `KernelLifecycle` (or whose stop phases already drained) behaves the
|
|
37
|
+
* same: the readiness flip happens while the port is still open, before `dispose()` closes it.
|
|
38
|
+
*
|
|
39
|
+
* {@link closeLast} registers the close of an infra connection (the bus and Redis, the pool);
|
|
40
|
+
* `onApplicationShutdown` runs them all at once. This is a global module's hook, so it runs after
|
|
41
|
+
* every other module's stop hooks: nothing uses those connections once they start closing, and a
|
|
42
|
+
* close that hangs (Redis down) does not hold back the others, which share what is left of the
|
|
43
|
+
* same budget.
|
|
44
|
+
*/
|
|
45
|
+
let GracefulShutdown = class GracefulShutdown {
|
|
46
|
+
log;
|
|
47
|
+
shuttingDown = false;
|
|
48
|
+
deadline;
|
|
49
|
+
abort = new AbortController();
|
|
50
|
+
inFlight = new Set();
|
|
51
|
+
lastCloses = [];
|
|
52
|
+
constructor(log) {
|
|
53
|
+
this.log = log;
|
|
54
|
+
}
|
|
55
|
+
/** True from the moment the shutdown began; readiness answers 503 from then on. */
|
|
56
|
+
isShuttingDown() {
|
|
57
|
+
return this.shuttingDown;
|
|
58
|
+
}
|
|
59
|
+
/** Aborted when the shutdown begins. */
|
|
60
|
+
get signal() {
|
|
61
|
+
return this.abort.signal;
|
|
62
|
+
}
|
|
63
|
+
/** Begins the shutdown (idempotent): readiness 503, {@link signal} aborted, the deadline set. */
|
|
64
|
+
begin() {
|
|
65
|
+
if (this.shuttingDown)
|
|
66
|
+
return;
|
|
67
|
+
this.shuttingDown = true;
|
|
68
|
+
this.deadline = Date.now() + STOP_TIMEOUT_MS;
|
|
69
|
+
this.abort.abort();
|
|
70
|
+
}
|
|
71
|
+
/** What is left of the total stop budget (the whole budget before the shutdown began). */
|
|
72
|
+
remainingMs() {
|
|
73
|
+
return this.deadline === undefined ? STOP_TIMEOUT_MS : Math.max(0, this.deadline - Date.now());
|
|
74
|
+
}
|
|
75
|
+
/** Registers work the stop waits for (see {@link drain}); returns `p`. */
|
|
76
|
+
trackInFlight(p) {
|
|
77
|
+
this.inFlight.add(p);
|
|
78
|
+
const forget = () => {
|
|
79
|
+
this.inFlight.delete(p);
|
|
80
|
+
};
|
|
81
|
+
p.then(forget, forget);
|
|
82
|
+
return p;
|
|
83
|
+
}
|
|
84
|
+
/** The number of tracked promises not settled yet. */
|
|
85
|
+
get inFlightCount() {
|
|
86
|
+
return this.inFlight.size;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Waits until no tracked work is left, at most `budgetMs` (capped by {@link remainingMs} once the
|
|
90
|
+
* shutdown began). Resolves true when everything settled, false on timeout: what is left is
|
|
91
|
+
* logged and abandoned (no later drain waits for it again). Rejections of tracked work are not
|
|
92
|
+
* this wait's business: they only count as settled.
|
|
93
|
+
*/
|
|
94
|
+
async drain(budgetMs) {
|
|
95
|
+
if (this.inFlight.size === 0)
|
|
96
|
+
return true;
|
|
97
|
+
const waitMs = Math.max(0, Math.min(budgetMs, this.remainingMs()));
|
|
98
|
+
const end = Date.now() + waitMs;
|
|
99
|
+
while (this.inFlight.size > 0) {
|
|
100
|
+
const left = Math.max(0, end - Date.now());
|
|
101
|
+
if (!(await waitWithin(Promise.allSettled([...this.inFlight]), left)))
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (this.inFlight.size > 0) {
|
|
105
|
+
this.log.warn("shutdown: in-flight work did not finish in time; abandoned", {
|
|
106
|
+
inFlight: this.inFlight.size,
|
|
107
|
+
budgetMs: waitMs,
|
|
108
|
+
});
|
|
109
|
+
// Abandoned: a later drain (the final one of beforeApplicationShutdown) does not wait again
|
|
110
|
+
this.inFlight.clear();
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
async beforeApplicationShutdown() {
|
|
116
|
+
this.begin();
|
|
117
|
+
await this.drain(this.remainingMs());
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Registers the close of an infra connection, run at the very end of the shutdown together with
|
|
121
|
+
* the others (see the class comment). `close` bounds itself by {@link remainingMs} and never
|
|
122
|
+
* throws.
|
|
123
|
+
*/
|
|
124
|
+
closeLast(close) {
|
|
125
|
+
this.lastCloses.push(close);
|
|
126
|
+
}
|
|
127
|
+
async onApplicationShutdown() {
|
|
128
|
+
await Promise.all(this.lastCloses.splice(0).map((close) => close()));
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
GracefulShutdown = __decorate([
|
|
132
|
+
Injectable(),
|
|
133
|
+
__param(0, Inject(KERNEL_LOGGER))
|
|
134
|
+
], GracefulShutdown);
|
|
135
|
+
export { GracefulShutdown };
|