@capybara-hq/kernel 0.1.0-rc.0 → 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 +92 -8
- 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 -201
- 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 +51 -3
- package/dist/config/schema.js +269 -27
- 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 -70
- 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/queue.js +3 -2
- 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 +136 -2
- package/dist/errors.js +136 -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 -123
- 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 +136 -46
- package/dist/extensions/bootstrap.js +417 -167
- 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 +83 -52
- 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 +25 -14
- package/dist/index.js +20 -9
- 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 -241
- 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-config.d.ts +9 -0
- package/dist/log-config.js +27 -0
- package/dist/log-context.d.ts +34 -0
- package/dist/log-context.js +44 -0
- package/dist/log-loki.d.ts +34 -0
- package/dist/log-loki.js +145 -0
- package/dist/log.d.ts +53 -10
- package/dist/log.js +168 -18
- 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/net/public-address.js +3 -2
- 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 -136
- 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 -236
- 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 -180
- 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 +142 -40
- package/dist/tools/builtins/sandbox/common.js +227 -65
- 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 +15 -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
|
@@ -1,11 +1,30 @@
|
|
|
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
|
+
};
|
|
1
10
|
import { isModelError, } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import {
|
|
11
|
+
import { getQueueToken } from "@nestjs/bullmq";
|
|
12
|
+
import { Inject, Injectable, Module } from "@nestjs/common";
|
|
3
13
|
import { sql } from "kysely";
|
|
14
|
+
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
15
|
+
import { ExtensionHost } from "../extensions/host.js";
|
|
4
16
|
import { audit } from "../identity/audit.js";
|
|
5
|
-
import {
|
|
17
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
18
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
19
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
20
|
+
import { QueueModule } from "../infra/queue/queue.module.js";
|
|
21
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
22
|
+
import { ModelsModule } from "../models/models.module.js";
|
|
23
|
+
import { ModelPurposesService, PurposeAttemptError } from "../models/purposes.js";
|
|
6
24
|
import { fireObserve, hookDeniedAudit, hookDeniedEvent, hookRequestOf, } from "../runtime/hook-calls.js";
|
|
7
|
-
import {
|
|
25
|
+
import { UsageReporter, UsageReportModule } from "../runtime/usage-report.js";
|
|
8
26
|
import { HIDDEN_FORMAT_RE } from "../text.js";
|
|
27
|
+
import { EventLog, EventLogModule } from "./event-log.js";
|
|
9
28
|
import { typedInvocation } from "./events.js";
|
|
10
29
|
/**
|
|
11
30
|
* Model-generated conversation titles (UI refresh B, spec §5.1 "Titles").
|
|
@@ -28,10 +47,17 @@ export const titleJobId = (conversationId, attempt) => `title-${conversationId}-
|
|
|
28
47
|
export const TITLE_MAX_ATTEMPTS = 3;
|
|
29
48
|
/** Output cap of the title call. */
|
|
30
49
|
export const TITLE_MAX_OUTPUT_TOKENS = 32;
|
|
31
|
-
/** The longest
|
|
50
|
+
/** The longest title a person can give by renaming (characters). */
|
|
32
51
|
export const TITLE_MAX_CHARS = 120;
|
|
52
|
+
/** The longest generated title by display width (CJK and emoji count 2: ~24 CJK / 48 Latin). */
|
|
53
|
+
export const TITLE_MAX_WIDTH = 48;
|
|
33
54
|
/** Each side of the excerpt is cut to this many characters. */
|
|
34
55
|
export const TITLE_EXCERPT_CHARS = 1000;
|
|
56
|
+
/**
|
|
57
|
+
* Parameters of the title call where the target model declares them and the `title` purpose does
|
|
58
|
+
* not set them: no thinking, so the {@link TITLE_MAX_OUTPUT_TOKENS} budget goes to the title.
|
|
59
|
+
*/
|
|
60
|
+
export const TITLE_PARAM_DEFAULTS = { thinking: "off" };
|
|
35
61
|
/** Time limit of one title call. */
|
|
36
62
|
export const TITLE_TIMEOUT_MS = 60_000;
|
|
37
63
|
/** How far into the log the excerpt is looked for (events). */
|
|
@@ -39,8 +65,13 @@ const EXCERPT_SCAN_EVENTS = 2000;
|
|
|
39
65
|
const PAGE = 500;
|
|
40
66
|
const JOB = "title";
|
|
41
67
|
/** The system prompt of the title call (model-facing, English). */
|
|
42
|
-
export const TITLE_PROMPT = "Write a
|
|
68
|
+
export const TITLE_PROMPT = "Write a short topic of what the user asked, not the reply, as a title for this conversation, " +
|
|
69
|
+
"in the language the user writes in. Use a noun phrase of at most 6 words or about 16 CJK " +
|
|
70
|
+
"characters: no sentence, no list. " +
|
|
43
71
|
"Reply with the title only, no quotes or punctuation at the end.";
|
|
72
|
+
const WIDE_RE = /[\u1100-\u115F\u2E80-\u303E\u3041-\u33FF\u3400-\u4DBF\u4E00-\u9FFF\uA000-\uA4CF\uAC00-\uD7A3\uF900-\uFAFF\uFE30-\uFE6F\uFF00-\uFF60\uFFE0-\uFFE6]|\p{Extended_Pictographic}|[\u{20000}-\u{3FFFD}]/u;
|
|
73
|
+
/** Display width of a character: 2 for CJK, fullwidth forms and emoji, else 1. */
|
|
74
|
+
const widthOf = (ch) => (WIDE_RE.test(ch) ? 2 : 1);
|
|
44
75
|
const cut = (s) => {
|
|
45
76
|
const cps = Array.from(s);
|
|
46
77
|
return cps.length <= TITLE_EXCERPT_CHARS ? s : `${cps.slice(0, TITLE_EXCERPT_CHARS).join("")}…`;
|
|
@@ -51,8 +82,8 @@ export function titleExcerpt(firstUser, firstReply) {
|
|
|
51
82
|
}
|
|
52
83
|
/**
|
|
53
84
|
* The title from a model reply: the first non-empty line, without control or format characters,
|
|
54
|
-
* wrapping quotes or trailing punctuation, at most {@link
|
|
55
|
-
* nothing is left.
|
|
85
|
+
* wrapping quotes or trailing punctuation, at most {@link TITLE_MAX_WIDTH} display width (cut on a
|
|
86
|
+
* character boundary, no ellipsis); null when nothing is left.
|
|
56
87
|
*/
|
|
57
88
|
export function cleanTitle(reply) {
|
|
58
89
|
const line = reply
|
|
@@ -67,10 +98,16 @@ export function cleanTitle(reply) {
|
|
|
67
98
|
.replace(/^["'“”‘’「」《》`*]+|["'“”‘’「」《》`*]+$/gu, "")
|
|
68
99
|
.replace(/[.。!!??,,;;::]+$/u, "")
|
|
69
100
|
.trim();
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
101
|
+
// cut by display width over code points, so a cut never splits a surrogate pair
|
|
102
|
+
let width = 0;
|
|
103
|
+
let out = "";
|
|
104
|
+
for (const ch of t) {
|
|
105
|
+
width += widthOf(ch);
|
|
106
|
+
if (width > TITLE_MAX_WIDTH)
|
|
107
|
+
break;
|
|
108
|
+
out += ch;
|
|
109
|
+
}
|
|
110
|
+
t = out.trimEnd();
|
|
74
111
|
return t === "" ? null : t;
|
|
75
112
|
}
|
|
76
113
|
const textOf = (content) => content.flatMap((b) => (b.type === "text" ? [b.text] : [])).join("");
|
|
@@ -185,6 +222,8 @@ export async function runTitleJob(d, conversationId, attempt) {
|
|
|
185
222
|
maxOutputTokens: TITLE_MAX_OUTPUT_TOKENS,
|
|
186
223
|
}, signal, {
|
|
187
224
|
...(fallback && { fallback: { model: fallback, params: {} } }),
|
|
225
|
+
// a thinking model spends the small output budget on thinking and returns no text
|
|
226
|
+
paramDefaults: TITLE_PARAM_DEFAULTS,
|
|
188
227
|
beforeSend: async (target, request) => {
|
|
189
228
|
await checkTitleHooks(d, scope, target, request, signal);
|
|
190
229
|
sent = { ...target, at: Date.now() };
|
|
@@ -227,23 +266,15 @@ export async function runTitleJob(d, conversationId, attempt) {
|
|
|
227
266
|
if (sent && d.hooks)
|
|
228
267
|
observeTitle(d, scope, sent, out, null, signal);
|
|
229
268
|
const title = cleanTitle(textOf(out.content));
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
.updateTable("conversations")
|
|
240
|
-
.set({ title, title_source: "generated" })
|
|
241
|
-
.where("id", "=", conversationId)
|
|
242
|
-
.where("title_source", "is", null)
|
|
243
|
-
.returning("id")
|
|
244
|
-
.executeTakeFirst();
|
|
245
|
-
return { written: row !== undefined, usage: ev };
|
|
246
|
-
});
|
|
269
|
+
if (title === null) {
|
|
270
|
+
d.log.warn("conversation title call returned no title", {
|
|
271
|
+
conversationId,
|
|
272
|
+
attempt,
|
|
273
|
+
stopReason: out.stopReason,
|
|
274
|
+
outputTokens: out.usage.outputTokens,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
const { written, usage } = await d.writes.writeResult(conversationId, attempt, out, title);
|
|
247
278
|
if (usage) {
|
|
248
279
|
await d.eventLog.notify(conversationId, usage.seq);
|
|
249
280
|
void d.usageReport?.enqueue(conversationId, usage.seq);
|
|
@@ -312,7 +343,7 @@ async function checkTitleHooks(d, scope, target, request, signal) {
|
|
|
312
343
|
};
|
|
313
344
|
const entry = hookDeniedAudit(site, hookDeniedEvent(site, "model.request", verdict, { step: 0, attempt: 1 }).payload, verdict);
|
|
314
345
|
entry.detail = { ...entry.detail, purpose: "title" };
|
|
315
|
-
await d.
|
|
346
|
+
await d.writes.auditDenied(entry);
|
|
316
347
|
d.log.warn("conversation title blocked by a policy hook", {
|
|
317
348
|
conversationId: scope.conversationId,
|
|
318
349
|
plugin: verdict.plugin,
|
|
@@ -343,31 +374,118 @@ function observeTitle(d, scope, sent, out, err, signal) {
|
|
|
343
374
|
...(out === null && { errorCode: errorCodeOf(err) }),
|
|
344
375
|
}, signal, d.log);
|
|
345
376
|
}
|
|
377
|
+
/**
|
|
378
|
+
* One title attempt's work ({@link runTitleJob}) over the injected services, with its writes in
|
|
379
|
+
* transactions of their own: the title with the call's usage event, and a policy denial's audit row.
|
|
380
|
+
*/
|
|
381
|
+
let TitleGenerator = class TitleGenerator {
|
|
382
|
+
kdb;
|
|
383
|
+
eventLog;
|
|
384
|
+
purposes;
|
|
385
|
+
host;
|
|
386
|
+
usageReport;
|
|
387
|
+
log;
|
|
388
|
+
txHost;
|
|
389
|
+
constructor(kdb, eventLog, purposes,
|
|
390
|
+
/** The title call fires the plugin hooks (`model.request`, `model.response`). */
|
|
391
|
+
host, usageReport, log, txHost) {
|
|
392
|
+
this.kdb = kdb;
|
|
393
|
+
this.eventLog = eventLog;
|
|
394
|
+
this.purposes = purposes;
|
|
395
|
+
this.host = host;
|
|
396
|
+
this.usageReport = usageReport;
|
|
397
|
+
this.log = log;
|
|
398
|
+
this.txHost = txHost;
|
|
399
|
+
}
|
|
400
|
+
/** One attempt ({@link runTitleJob}); `signal` aborts the call (the worker stopping). */
|
|
401
|
+
run(conversationId, attempt, signal) {
|
|
402
|
+
const kdb = this.kdb;
|
|
403
|
+
const hooks = this.host?.hooks;
|
|
404
|
+
return runTitleJob({
|
|
405
|
+
get db() {
|
|
406
|
+
return kdb.db;
|
|
407
|
+
},
|
|
408
|
+
eventLog: this.eventLog,
|
|
409
|
+
purposes: this.purposes,
|
|
410
|
+
log: this.log,
|
|
411
|
+
...(hooks !== undefined && { hooks }),
|
|
412
|
+
...(this.usageReport !== undefined && { usageReport: this.usageReport }),
|
|
413
|
+
...(signal !== undefined && { signal }),
|
|
414
|
+
writes: this,
|
|
415
|
+
}, conversationId, attempt);
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Appends the call's `usage` event and writes the title while `title_source IS NULL` (a rename
|
|
419
|
+
* wins), in one transaction.
|
|
420
|
+
*/
|
|
421
|
+
async writeResult(conversationId, attempt, out, title) {
|
|
422
|
+
// Append first: it locks the conversation row FOR UPDATE before this transaction touches it.
|
|
423
|
+
// Updating the title first held the row FOR NO KEY UPDATE, which lets in another
|
|
424
|
+
// transaction's foreign key check (FOR KEY SHARE, e.g. inserting an approval); the append's
|
|
425
|
+
// FOR UPDATE then waited for that one while it waited for the title row: 40P01
|
|
426
|
+
const [ev] = await this.eventLog.appendIn(conversationId, [usageEvent(attempt, out)]);
|
|
427
|
+
const row = title === null
|
|
428
|
+
? undefined
|
|
429
|
+
: await this.kdb.db
|
|
430
|
+
.updateTable("conversations")
|
|
431
|
+
.set({ title, title_source: "generated" })
|
|
432
|
+
.where("id", "=", conversationId)
|
|
433
|
+
.where("title_source", "is", null)
|
|
434
|
+
.returning("id")
|
|
435
|
+
.executeTakeFirst();
|
|
436
|
+
return { written: row !== undefined, usage: ev };
|
|
437
|
+
}
|
|
438
|
+
/** The `hook.denied` audit row of a denied title call. */
|
|
439
|
+
async auditDenied(entry) {
|
|
440
|
+
await audit(this.kdb.db, entry);
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
__decorate([
|
|
444
|
+
Transactional({ propagation: "requires_new" })
|
|
445
|
+
], TitleGenerator.prototype, "writeResult", null);
|
|
446
|
+
__decorate([
|
|
447
|
+
Transactional({ propagation: "requires_new" })
|
|
448
|
+
], TitleGenerator.prototype, "auditDenied", null);
|
|
449
|
+
TitleGenerator = __decorate([
|
|
450
|
+
Injectable(),
|
|
451
|
+
__param(0, Inject(KernelDb)),
|
|
452
|
+
__param(1, Inject(EventLog)),
|
|
453
|
+
__param(2, Inject(ModelPurposesService)),
|
|
454
|
+
__param(3, Inject(ExtensionHost)),
|
|
455
|
+
__param(4, Inject(UsageReporter)),
|
|
456
|
+
__param(5, Inject(KERNEL_LOGGER)),
|
|
457
|
+
__param(6, Inject(TransactionHost))
|
|
458
|
+
], TitleGenerator);
|
|
459
|
+
export { TitleGenerator };
|
|
346
460
|
/**
|
|
347
461
|
* The title queue: `maybeEnqueue` on any role (called by the run worker after a completed run),
|
|
348
|
-
*
|
|
349
|
-
* enqueues the next attempt.
|
|
462
|
+
* consumed on the `worker` role by its `@Processor`. One attempt per job, no BullMQ retries: the
|
|
463
|
+
* next completed run enqueues the next attempt.
|
|
350
464
|
*/
|
|
351
|
-
|
|
352
|
-
|
|
465
|
+
let TitleQueue = class TitleQueue {
|
|
466
|
+
kdb;
|
|
353
467
|
queue;
|
|
354
|
-
|
|
468
|
+
generator;
|
|
469
|
+
log;
|
|
355
470
|
worker;
|
|
356
|
-
workerConn;
|
|
357
471
|
closed = false;
|
|
358
472
|
stopping = new AbortController();
|
|
359
|
-
constructor(
|
|
360
|
-
this.
|
|
473
|
+
constructor(kdb, queue, generator, log) {
|
|
474
|
+
this.kdb = kdb;
|
|
475
|
+
this.queue = queue;
|
|
476
|
+
this.generator = generator;
|
|
477
|
+
this.log = log;
|
|
478
|
+
queue.on("error", (err) => this.log.error("title queue error", { err }));
|
|
361
479
|
}
|
|
362
480
|
/** Enqueues the next title attempt when one is due. Never throws (logs instead). */
|
|
363
481
|
async maybeEnqueue(conversationId) {
|
|
364
482
|
if (this.closed)
|
|
365
483
|
return;
|
|
366
484
|
try {
|
|
367
|
-
const attempt = await titleAttemptDue(this.
|
|
485
|
+
const attempt = await titleAttemptDue(this.kdb.db, conversationId);
|
|
368
486
|
if (attempt === null)
|
|
369
487
|
return;
|
|
370
|
-
await this.
|
|
488
|
+
await this.queue.add(JOB, { conversationId, attempt }, {
|
|
371
489
|
jobId: titleJobId(conversationId, attempt),
|
|
372
490
|
attempts: 1,
|
|
373
491
|
removeOnComplete: true,
|
|
@@ -375,48 +493,55 @@ export class TitleQueue {
|
|
|
375
493
|
});
|
|
376
494
|
}
|
|
377
495
|
catch (err) {
|
|
378
|
-
this.
|
|
496
|
+
this.log.warn("cannot enqueue conversation title", { conversationId, err });
|
|
379
497
|
}
|
|
380
498
|
}
|
|
381
|
-
|
|
499
|
+
/** Starts consuming (worker role only): `worker` is the `@Processor` worker of {@link TITLE_QUEUE}. */
|
|
500
|
+
startWorker(worker) {
|
|
382
501
|
if (this.worker || this.closed)
|
|
383
502
|
return;
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
stalledInterval: stalledIntervalMs,
|
|
391
|
-
maxStalledCount: 1,
|
|
392
|
-
});
|
|
393
|
-
this.worker.on("error", (err) => this.d.log.error("title worker error", { err }));
|
|
503
|
+
this.worker = worker;
|
|
504
|
+
void worker.run().catch((err) => this.log.error("title worker error", { err }));
|
|
505
|
+
}
|
|
506
|
+
/** The worker's `error` event. */
|
|
507
|
+
onError(err) {
|
|
508
|
+
this.log.error("title worker error", { err });
|
|
394
509
|
}
|
|
510
|
+
/** One title job (the `@Processor` calls it). */
|
|
395
511
|
async process(j) {
|
|
396
|
-
await
|
|
512
|
+
await this.generator.run(j.data.conversationId, j.data.attempt, this.stopping.signal);
|
|
397
513
|
}
|
|
514
|
+
/** Stops: no more enqueues, the call in flight is aborted, the worker closes. */
|
|
398
515
|
async stop() {
|
|
399
516
|
this.closed = true;
|
|
400
517
|
this.stopping.abort();
|
|
401
518
|
const w = this.worker;
|
|
402
519
|
this.worker = undefined;
|
|
403
520
|
await w?.close().catch(() => { });
|
|
404
|
-
const q = this.queue;
|
|
405
|
-
this.queue = undefined;
|
|
406
|
-
await q?.close().catch(() => { });
|
|
407
|
-
for (const c of [this.workerConn, this.queueConn]) {
|
|
408
|
-
if (c)
|
|
409
|
-
await c.quit().catch(() => c.disconnect());
|
|
410
|
-
}
|
|
411
|
-
this.workerConn = undefined;
|
|
412
|
-
this.queueConn = undefined;
|
|
413
|
-
}
|
|
414
|
-
getQueue() {
|
|
415
|
-
if (!this.queue) {
|
|
416
|
-
this.queueConn = bullConnection(this.d.redisUrl, this.d.log);
|
|
417
|
-
this.queue = new Queue(TITLE_QUEUE, { connection: this.queueConn });
|
|
418
|
-
this.queue.on("error", (err) => this.d.log.error("title queue error", { err }));
|
|
419
|
-
}
|
|
420
|
-
return this.queue;
|
|
421
521
|
}
|
|
422
|
-
}
|
|
522
|
+
};
|
|
523
|
+
TitleQueue = __decorate([
|
|
524
|
+
Injectable(),
|
|
525
|
+
__param(0, Inject(KernelDb)),
|
|
526
|
+
__param(1, Inject(getQueueToken(TITLE_QUEUE))),
|
|
527
|
+
__param(2, Inject(TitleGenerator)),
|
|
528
|
+
__param(3, Inject(KERNEL_LOGGER))
|
|
529
|
+
], TitleQueue);
|
|
530
|
+
export { TitleQueue };
|
|
531
|
+
/** Conversation titles: the queue and the job (consumed on the worker role). */
|
|
532
|
+
let TitlesModule = class TitlesModule {
|
|
533
|
+
};
|
|
534
|
+
TitlesModule = __decorate([
|
|
535
|
+
Module({
|
|
536
|
+
imports: [
|
|
537
|
+
EventLogModule,
|
|
538
|
+
ModelsModule,
|
|
539
|
+
ExtensionsModule,
|
|
540
|
+
UsageReportModule,
|
|
541
|
+
QueueModule.registerQueue(TITLE_QUEUE),
|
|
542
|
+
],
|
|
543
|
+
providers: [TitleGenerator, TitleQueue],
|
|
544
|
+
exports: [TitleQueue],
|
|
545
|
+
})
|
|
546
|
+
], TitlesModule);
|
|
547
|
+
export { TitlesModule };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* A conversation and every sub-agent conversation below it (agent map spec §6: its children,
|
|
4
|
+
* grandchildren and so on, through `conversations.parent_conversation_id`), each with its level
|
|
5
|
+
* below `conversationId` (0 for the conversation itself), shallowest first. Deleted conversations
|
|
6
|
+
* are included (a deleted root's tree is still stopped); an unknown id yields nothing.
|
|
7
|
+
*/
|
|
8
|
+
export declare function conversationTree(db: KernelSchemaDb, conversationId: string): Promise<{
|
|
9
|
+
id: string;
|
|
10
|
+
level: number;
|
|
11
|
+
}[]>;
|
|
12
|
+
/**
|
|
13
|
+
* The ancestors of a conversation (agent map spec §8: live progress reaches every level above a
|
|
14
|
+
* sub-agent), nearest first: its parent, the parent's parent and so on up to the root, through
|
|
15
|
+
* `conversations.parent_conversation_id`. Empty for a root or an unknown id.
|
|
16
|
+
*/
|
|
17
|
+
export declare function conversationAncestors(db: KernelSchemaDb, conversationId: string): Promise<string[]>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { sql } from "kysely";
|
|
2
|
+
/**
|
|
3
|
+
* How many levels below a conversation the tree reads walk at most: far above
|
|
4
|
+
* `subagents.maxDepth`'s bound of 5, so a corrupt parent chain cannot loop forever.
|
|
5
|
+
*/
|
|
6
|
+
const TREE_MAX_LEVELS = 16;
|
|
7
|
+
/**
|
|
8
|
+
* A conversation and every sub-agent conversation below it (agent map spec §6: its children,
|
|
9
|
+
* grandchildren and so on, through `conversations.parent_conversation_id`), each with its level
|
|
10
|
+
* below `conversationId` (0 for the conversation itself), shallowest first. Deleted conversations
|
|
11
|
+
* are included (a deleted root's tree is still stopped); an unknown id yields nothing.
|
|
12
|
+
*/
|
|
13
|
+
export async function conversationTree(db, conversationId) {
|
|
14
|
+
const r = await sql `
|
|
15
|
+
WITH RECURSIVE tree(id, level) AS (
|
|
16
|
+
SELECT c.id, 0 FROM capybara.conversations c WHERE c.id = ${conversationId}
|
|
17
|
+
UNION ALL
|
|
18
|
+
SELECT c.id, t.level + 1
|
|
19
|
+
FROM capybara.conversations c JOIN tree t ON c.parent_conversation_id = t.id
|
|
20
|
+
WHERE c.kind = 'subagent' AND t.level < ${TREE_MAX_LEVELS}
|
|
21
|
+
)
|
|
22
|
+
SELECT id, level FROM tree ORDER BY level, id`.execute(db);
|
|
23
|
+
return r.rows;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The ancestors of a conversation (agent map spec §8: live progress reaches every level above a
|
|
27
|
+
* sub-agent), nearest first: its parent, the parent's parent and so on up to the root, through
|
|
28
|
+
* `conversations.parent_conversation_id`. Empty for a root or an unknown id.
|
|
29
|
+
*/
|
|
30
|
+
export async function conversationAncestors(db, conversationId) {
|
|
31
|
+
const r = await sql `
|
|
32
|
+
WITH RECURSIVE up(id, parent, level) AS (
|
|
33
|
+
SELECT c.id, c.parent_conversation_id, 0 FROM capybara.conversations c
|
|
34
|
+
WHERE c.id = ${conversationId}
|
|
35
|
+
UNION ALL
|
|
36
|
+
SELECT c.id, c.parent_conversation_id, up.level + 1
|
|
37
|
+
FROM capybara.conversations c JOIN up ON c.id = up.parent
|
|
38
|
+
WHERE up.level < ${TREE_MAX_LEVELS}
|
|
39
|
+
)
|
|
40
|
+
SELECT id FROM up WHERE level > 0 ORDER BY level`.execute(db);
|
|
41
|
+
return r.rows.map((row) => row.id);
|
|
42
|
+
}
|
package/dist/ctx/bus.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { runOutsideTransaction } from "../infra/database/transaction-host.js";
|
|
2
|
+
import { withoutLogContext } from "../log-context.js";
|
|
1
3
|
import { assertNamespace } from "./namespace.js";
|
|
2
4
|
/** 未注入 logger 时的兜底:输出到 stderr。 */
|
|
3
5
|
const consoleLog = {
|
|
@@ -19,9 +21,13 @@ export function createBusSubscriber(subFactory, log = consoleLog) {
|
|
|
19
21
|
return conn;
|
|
20
22
|
const c = subFactory();
|
|
21
23
|
c.on("message", (channel, message) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
// the connection's callbacks carry the async context of the first subscribe (a request's
|
|
25
|
+
// log fields, possibly an open transaction): every handler starts from an empty one
|
|
26
|
+
runOutsideTransaction(() => withoutLogContext(() => {
|
|
27
|
+
for (const h of [...(channels.get(channel)?.handlers ?? [])]) {
|
|
28
|
+
invokeIsolated(log, channel, () => h(message));
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
25
31
|
});
|
|
26
32
|
c.on("error", (err) => log.error("bus subscriber connection error", { err }));
|
|
27
33
|
conn = c;
|
package/dist/ctx/create-ctx.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ import type { Redis } from "ioredis";
|
|
|
3
3
|
import { Kysely } from "kysely";
|
|
4
4
|
import { type RegisteredHook } from "../extensions/hooks.js";
|
|
5
5
|
import { RegistrationLedger } from "../extensions/ledger.js";
|
|
6
|
+
import type { LockService } from "../infra/lock/lock.service.js";
|
|
7
|
+
import type { ModelEmbeddings } from "../models/embeddings.js";
|
|
8
|
+
import type { HookRunner } from "../runtime/hook-calls.js";
|
|
9
|
+
import type { EmbedTokens } from "../ui/embed-token.js";
|
|
6
10
|
import { type UiActionHandler, type UiRender } from "../ui/registry.js";
|
|
7
11
|
import { type BusSubscriber } from "./bus.js";
|
|
8
12
|
import { type Keyring } from "./secrets.js";
|
|
@@ -13,9 +17,24 @@ export interface KernelDeps {
|
|
|
13
17
|
/** PG 建立连接的超时(迁移器的独立连接使用)。 */
|
|
14
18
|
connectTimeoutMs?: number;
|
|
15
19
|
redis: Redis;
|
|
20
|
+
/** The kernel's lock primitives (`ctx.lock`, the dedupe markers). */
|
|
21
|
+
locks: Pick<LockService, "lease" | "renew" | "releaseIf">;
|
|
16
22
|
busSubscriber: BusSubscriber;
|
|
17
23
|
redisUrl: string;
|
|
18
24
|
keyring: Keyring;
|
|
25
|
+
/** Verifies embed tokens (`ctx.ui` embed requests; the one `EmbedTokens` provider). */
|
|
26
|
+
embedTokens: Pick<EmbedTokens, "verify">;
|
|
27
|
+
/**
|
|
28
|
+
* The `ctx.models` broker (the one `ModelEmbeddings` provider). Absent (a ctx built alone in a
|
|
29
|
+
* test): `ctx.models` calls reject.
|
|
30
|
+
*/
|
|
31
|
+
models?: Pick<ModelEmbeddings, "embed" | "describe">;
|
|
32
|
+
/**
|
|
33
|
+
* The host's hook registry: `ctx.models.embed` fires `model.request` through it (spec B §5.4).
|
|
34
|
+
* A required key, so no builder leaves policy hooks out by omission (fail closed by
|
|
35
|
+
* construction); only a ctx built alone in a test passes `undefined` (no hooks fire).
|
|
36
|
+
*/
|
|
37
|
+
hooks: HookRunner | undefined;
|
|
19
38
|
runWorkers: boolean;
|
|
20
39
|
/** 内核 logger(`debug` 可选:插件 Logger 没有它,测试可不给)。 */
|
|
21
40
|
log: Logger & {
|
|
@@ -42,6 +61,11 @@ export interface ExtensionPointAccess {
|
|
|
42
61
|
}[];
|
|
43
62
|
/** Names of the extensions enabled in the organization (`extension_org_configs.enabled` plus required bootstrap plugins, `enabled.ts`); queried every time, not cached. */
|
|
44
63
|
enabledPlugins(orgId: string): Promise<Set<string>>;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the extension's effective config is valid in the organization (layering spec A §6):
|
|
66
|
+
* a provider that is not is excluded from point resolution for that org.
|
|
67
|
+
*/
|
|
68
|
+
configOk(orgId: string, plugin: string): Promise<boolean>;
|
|
45
69
|
}
|
|
46
70
|
/**
|
|
47
71
|
* Queries the names of the extensions enabled in the organization (org config rows plus the
|
|
@@ -91,7 +115,8 @@ export declare class LiveConfig {
|
|
|
91
115
|
* `deploymentConfig` may be a {@link LiveConfig} (shared by the instance, replaceable in place);
|
|
92
116
|
* otherwise a fixed value is wrapped.
|
|
93
117
|
* - Granted automatically: `kv`, `lock`, `bus`, `queue`, `log`, `db`, `config`, `provide`;
|
|
94
|
-
* - `secrets` only with `permissions.secrets`, `storage` only with `permissions.storage
|
|
118
|
+
* - `secrets` only with `permissions.secrets`, `storage` only with `permissions.storage`, `models`
|
|
119
|
+
* only with `permissions.models` (and only its `embedding` purposes, through `deps.models`); `http.route`
|
|
95
120
|
* only the method + path declared in `permissions.http`; `tools.register` only names declared in
|
|
96
121
|
* `permissions.tools`; `ui.view` / `ui.action` only ids declared in `permissions.ui.views` (during
|
|
97
122
|
* setup only); `ui.invalidate` sends a refresh over the kernel bus (namespace `kernel`), across
|
package/dist/ctx/create-ctx.js
CHANGED
|
@@ -6,8 +6,7 @@ import { enabledExtensionsQuery, isExtensionEnabled } from "../extensions/enable
|
|
|
6
6
|
import { checkHookRegistration } from "../extensions/hooks.js";
|
|
7
7
|
import { RegistrationLedger } from "../extensions/ledger.js";
|
|
8
8
|
import { audit } from "../identity/audit.js";
|
|
9
|
-
import {
|
|
10
|
-
import { EmbedTokens } from "../ui/embed-token.js";
|
|
9
|
+
import { PrefixedStorage } from "../storage/storage.service.js";
|
|
11
10
|
import { canUsePlace, orgUiTopic, PluginUiRegistration, } from "../ui/registry.js";
|
|
12
11
|
import { createBus } from "./bus.js";
|
|
13
12
|
import { createKv } from "./kv.js";
|
|
@@ -58,16 +57,15 @@ async function invalidateTargetOk(db, plugin, orgId, conversationId) {
|
|
|
58
57
|
/** 越权审计去重键的 TTL:同一插件同一项在此期间只记一次。 */
|
|
59
58
|
const DENIAL_DEDUPE_TTL_SECONDS = 30 * 24 * 3600;
|
|
60
59
|
/**
|
|
61
|
-
* Records one `extension.permission_denied` audit, deduplicated per (extension, item) through
|
|
62
|
-
*
|
|
60
|
+
* Records one `extension.permission_denied` audit, deduplicated per (extension, item) through a
|
|
61
|
+
* Redis marker set unless present (`LockService.lease`; once across replicas). When the audit write fails, the dedup key is removed (the next
|
|
63
62
|
* violation tries again) and a warning is logged; nothing is thrown to the extension (it already got
|
|
64
63
|
* an ExtensionPermissionError).
|
|
65
64
|
*/
|
|
66
65
|
async function recordDenial(deps, plugin, item) {
|
|
67
66
|
const key = `capk:plugin-permission-denied:${plugin}:${item}`;
|
|
68
67
|
try {
|
|
69
|
-
|
|
70
|
-
if (first !== "OK")
|
|
68
|
+
if (!(await deps.locks.lease(key, "1", DENIAL_DEDUPE_TTL_SECONDS * 1000)))
|
|
71
69
|
return;
|
|
72
70
|
try {
|
|
73
71
|
await audit(kernelDb(deps.db), {
|
|
@@ -148,6 +146,7 @@ function guardBuilder(builder, plugin) {
|
|
|
148
146
|
const noProviders = (deps) => ({
|
|
149
147
|
providers: () => [],
|
|
150
148
|
enabledPlugins: (orgId) => queryEnabledPlugins(deps.db, orgId),
|
|
149
|
+
configOk: async () => true,
|
|
151
150
|
});
|
|
152
151
|
/**
|
|
153
152
|
* 插件实例的部署配置(已校验):`ctx.config` 是读它的 getter。hot 字段改动时宿主替换 `value`(C10),
|
|
@@ -165,7 +164,8 @@ export class LiveConfig {
|
|
|
165
164
|
* `deploymentConfig` may be a {@link LiveConfig} (shared by the instance, replaceable in place);
|
|
166
165
|
* otherwise a fixed value is wrapped.
|
|
167
166
|
* - Granted automatically: `kv`, `lock`, `bus`, `queue`, `log`, `db`, `config`, `provide`;
|
|
168
|
-
* - `secrets` only with `permissions.secrets`, `storage` only with `permissions.storage
|
|
167
|
+
* - `secrets` only with `permissions.secrets`, `storage` only with `permissions.storage`, `models`
|
|
168
|
+
* only with `permissions.models` (and only its `embedding` purposes, through `deps.models`); `http.route`
|
|
169
169
|
* only the method + path declared in `permissions.http`; `tools.register` only names declared in
|
|
170
170
|
* `permissions.tools`; `ui.view` / `ui.action` only ids declared in `permissions.ui.views` (during
|
|
171
171
|
* setup only); `ui.invalidate` sends a refresh over the kernel bus (namespace `kernel`), across
|
|
@@ -195,7 +195,7 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
195
195
|
const lifecycle = new AbortController();
|
|
196
196
|
/** 撤销时队列 worker 排空的截止时刻(epoch 毫秒);undefined = 一直等(停机路径)。 */
|
|
197
197
|
let drainDeadline;
|
|
198
|
-
const lock = createLock(deps.
|
|
198
|
+
const lock = createLock(deps.locks, name);
|
|
199
199
|
const tag = (fields) => ({ ...fields, plugin: name });
|
|
200
200
|
let closing;
|
|
201
201
|
const perms = manifest.permissions ?? {};
|
|
@@ -214,11 +214,29 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
214
214
|
// 键加前缀 plugins/<name>/<orgId>/。没有提供方时各方法 reject storage.unavailable
|
|
215
215
|
// (宿主不会加载这样的插件,见 approvals.ts;单独构造 ctx 的测试会走到这里)
|
|
216
216
|
const storageApi = perms.storage
|
|
217
|
-
? new
|
|
217
|
+
? new PrefixedStorage({
|
|
218
218
|
provider: () => extensionPointAccess.providers(OBJECT_STORE_EXTENSION_POINT)[0]?.impl,
|
|
219
219
|
plugins: async () => [name],
|
|
220
220
|
}).forPlugin(name)
|
|
221
221
|
: undefined;
|
|
222
|
+
// ctx.models: only with permissions.models; the broker accepts only the purposes declared there
|
|
223
|
+
// with kind embedding (spec B §5.4), aborted by this instance's signal
|
|
224
|
+
// a frozen copy: the approved manifest, not an object the extension could change later
|
|
225
|
+
const declaredModels = Object.freeze(structuredClone(perms.models ?? []).map((m) => Object.freeze(m)));
|
|
226
|
+
const modelsApi = declaredModels.length > 0
|
|
227
|
+
? {
|
|
228
|
+
embed: async (req) => {
|
|
229
|
+
if (!deps.models)
|
|
230
|
+
throw new Error(`plugin ${name}: ctx.models is not available`);
|
|
231
|
+
return deps.models.embed(name, declaredModels, req, lifecycle.signal, deps.hooks);
|
|
232
|
+
},
|
|
233
|
+
describe: async (req) => {
|
|
234
|
+
if (!deps.models)
|
|
235
|
+
throw new Error(`plugin ${name}: ctx.models is not available`);
|
|
236
|
+
return deps.models.describe(name, declaredModels, req);
|
|
237
|
+
},
|
|
238
|
+
}
|
|
239
|
+
: undefined;
|
|
222
240
|
const declaredRoutes = new Set((perms.http ?? []).map((r) => `${r.method} ${r.path}`));
|
|
223
241
|
const declaredTools = new Set(perms.tools ?? []);
|
|
224
242
|
const declaredHooks = new Set(perms.hooks ?? []);
|
|
@@ -229,7 +247,7 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
229
247
|
...(manifest.optional ?? []),
|
|
230
248
|
]);
|
|
231
249
|
const uiReg = new PluginUiRegistration(manifest, deny);
|
|
232
|
-
const embedTokens =
|
|
250
|
+
const embedTokens = deps.embedTokens;
|
|
233
251
|
const uiPlaces = new Map((manifest.ui ?? []).map((c) => [c.id, c.place]));
|
|
234
252
|
/** 校验能力可取用(非 brokered、已在清单声明),返回其登记信息。 */
|
|
235
253
|
const checkExtensionPoint = (ref) => {
|
|
@@ -262,12 +280,21 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
262
280
|
throw new ExtensionPointUnavailableError(`extension point ${ref} has no provider`);
|
|
263
281
|
return { info, chosen };
|
|
264
282
|
};
|
|
265
|
-
/**
|
|
283
|
+
/**
|
|
284
|
+
* The org's view of the providers: an orgScoped point keeps only those the org enabled (queried
|
|
285
|
+
* every time, not cached), and every point drops those whose effective config is not valid in
|
|
286
|
+
* the org (layering spec A §6: a call on behalf of an org never reaches such a provider).
|
|
287
|
+
*/
|
|
266
288
|
const forOrg = async (orgScoped, orgId, entries) => {
|
|
267
|
-
if (
|
|
289
|
+
if (entries.length === 0)
|
|
268
290
|
return entries;
|
|
269
|
-
|
|
270
|
-
|
|
291
|
+
let out = entries;
|
|
292
|
+
if (orgScoped) {
|
|
293
|
+
const enabled = await extensionPointAccess.enabledPlugins(orgId);
|
|
294
|
+
out = out.filter((e) => enabled.has(e.plugin));
|
|
295
|
+
}
|
|
296
|
+
const ok = await Promise.all(out.map((e) => extensionPointAccess.configOk(orgId, e.plugin)));
|
|
297
|
+
return out.filter((_, i) => ok[i]);
|
|
271
298
|
};
|
|
272
299
|
const listAll = (ref) => {
|
|
273
300
|
const info = checkExtensionPoint(ref);
|
|
@@ -282,7 +309,7 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
282
309
|
return (async () => {
|
|
283
310
|
const { info, chosen } = pick(ref, provider);
|
|
284
311
|
if ((await forOrg(info.orgScoped, orgId, [chosen])).length === 0) {
|
|
285
|
-
throw new ExtensionPointUnavailableError(`extension point ${ref} provider ${chosen.plugin} is not
|
|
312
|
+
throw new ExtensionPointUnavailableError(`extension point ${ref} provider ${chosen.plugin} is not available in organization ${orgId} (not enabled there, or its configuration is not valid there)`);
|
|
286
313
|
}
|
|
287
314
|
return chosen.impl;
|
|
288
315
|
})();
|
|
@@ -553,7 +580,8 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
553
580
|
return closing;
|
|
554
581
|
},
|
|
555
582
|
};
|
|
556
|
-
//
|
|
583
|
+
// secrets / storage / models: a plain property when declared; otherwise a non-enumerable getter
|
|
584
|
+
// that throws, so spreading or printing ctx triggers no denial and no audit
|
|
557
585
|
const gated = (key, api) => {
|
|
558
586
|
if (api) {
|
|
559
587
|
Object.assign(ctx, { [key]: api });
|
|
@@ -567,6 +595,7 @@ export function createExtensionContext(deps, manifest, deploymentConfig, extensi
|
|
|
567
595
|
};
|
|
568
596
|
gated("secrets", secretsApi);
|
|
569
597
|
gated("storage", storageApi);
|
|
598
|
+
gated("models", modelsApi);
|
|
570
599
|
return ctx;
|
|
571
600
|
}
|
|
572
601
|
/**
|