@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +85 -5
- package/dist/admin/admin.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +60 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +868 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +216 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +264 -0
- package/dist/catalog/catalog-content.js +430 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +290 -0
- package/dist/catalog/catalog-items.js +677 -0
- package/dist/catalog/catalog-scope.service.d.ts +286 -0
- package/dist/catalog/catalog-scope.service.js +1196 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +144 -207
- package/dist/catalog/catalog.service.js +258 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +90 -0
- package/dist/catalog/component-scope.controller.js +234 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +366 -0
- package/dist/catalog/component-scope.service.js +1115 -0
- package/dist/catalog/component-state.d.ts +197 -0
- package/dist/catalog/component-state.js +473 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +434 -472
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +113 -0
- package/dist/catalog/org-extension.controller.js +271 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +293 -71
- package/dist/catalog/plugin-import.js +1039 -281
- package/dist/catalog/plugin-install.d.ts +271 -66
- package/dist/catalog/plugin-install.js +1198 -344
- package/dist/catalog/plugin-package.d.ts +41 -4
- package/dist/catalog/plugin-package.js +140 -7
- package/dist/catalog/plugin-upgrade.d.ts +312 -188
- package/dist/catalog/plugin-upgrade.js +1371 -1065
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +589 -27
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +160 -2
- package/dist/errors.js +160 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +91 -4
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +93 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +137 -38
- package/dist/identity/accounts.js +386 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +32 -15
- package/dist/identity/me.controller.js +80 -33
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +69 -23
- package/dist/identity/settings.js +201 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +7 -0
- package/dist/models/models.module.js +36 -0
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +76 -14
- package/dist/orgs/settings.service.js +140 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +683 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +94 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +407 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +717 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +378 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +296 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +216 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +40 -0
- package/dist/platform/platform-ops.module.js +127 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +66 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +43 -0
- package/dist/runtime/run-control.js +89 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/themes/render-css.d.ts +12 -0
- package/dist/themes/render-css.js +132 -0
- package/dist/themes/theme-delivery.service.d.ts +34 -0
- package/dist/themes/theme-delivery.service.js +111 -0
- package/dist/themes/theme-state.d.ts +95 -0
- package/dist/themes/theme-state.js +203 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +28 -0
- package/dist/themes/themes-public.controller.js +92 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +30 -20
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +52 -45
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
package/dist/log.js
CHANGED
|
@@ -105,15 +105,16 @@ function expandSecret(value) {
|
|
|
105
105
|
}
|
|
106
106
|
return out;
|
|
107
107
|
}
|
|
108
|
-
/** Console format: `pretty` (pino-pretty
|
|
108
|
+
/** Console format: `pretty` (pino-pretty), `json`, or `auto` (pretty on a TTY). */
|
|
109
109
|
export const LOG_FORMATS = ["auto", "pretty", "json"];
|
|
110
|
-
/** Fields shown in the pretty prefix instead of the
|
|
111
|
-
const PREFIX_FIELDS = ["reqId", "
|
|
112
|
-
/**
|
|
110
|
+
/** Fields shown in the pretty prefix instead of the lines below, in this order. */
|
|
111
|
+
const PREFIX_FIELDS = ["traceId", "reqId", "queue", "jobId", "runId", "context", "plugin"];
|
|
112
|
+
/**
|
|
113
|
+
* pino-pretty's message format, the octok layout:
|
|
114
|
+
* `[pid=…] - [traceId=…] [reqId=…] [context=…] msg`, each bracket only when present.
|
|
115
|
+
*/
|
|
113
116
|
function prettyMessage(log, messageKey) {
|
|
114
|
-
const parts = [];
|
|
115
|
-
if (typeof log.role === "string")
|
|
116
|
-
parts.push(`[${log.role}]`);
|
|
117
|
+
const parts = [`[pid=${process.pid}] -`];
|
|
117
118
|
for (const k of PREFIX_FIELDS) {
|
|
118
119
|
const v = log[k];
|
|
119
120
|
if (typeof v === "string" || typeof v === "number")
|
|
@@ -122,6 +123,24 @@ function prettyMessage(log, messageKey) {
|
|
|
122
123
|
parts.push(String(log[messageKey] ?? ""));
|
|
123
124
|
return parts.join(" ");
|
|
124
125
|
}
|
|
126
|
+
/** The HTTP access record (`http/app.ts`) as one sentence: method, path, status and duration. */
|
|
127
|
+
function foldAccessLine(log) {
|
|
128
|
+
if (log.msg !== "request" || typeof log.method !== "string" || typeof log.url !== "string") {
|
|
129
|
+
return log;
|
|
130
|
+
}
|
|
131
|
+
const { method, url, status, ms, ...rest } = log;
|
|
132
|
+
return { ...rest, msg: `${method} ${url} ${status} ${ms}ms` };
|
|
133
|
+
}
|
|
134
|
+
function colorsOn(opts, isTTY) {
|
|
135
|
+
if (opts.colors !== undefined)
|
|
136
|
+
return opts.colors;
|
|
137
|
+
const force = process.env.FORCE_COLOR;
|
|
138
|
+
if (force !== undefined && force !== "0")
|
|
139
|
+
return true;
|
|
140
|
+
if (process.env.NO_COLOR)
|
|
141
|
+
return false;
|
|
142
|
+
return isTTY;
|
|
143
|
+
}
|
|
125
144
|
function consoleStream(opts) {
|
|
126
145
|
if (opts.write) {
|
|
127
146
|
const write = opts.write;
|
|
@@ -132,23 +151,50 @@ function consoleStream(opts) {
|
|
|
132
151
|
if (!LOG_FORMATS.includes(format)) {
|
|
133
152
|
throw new Error(`invalid log.format "${format}" (expected ${LOG_FORMATS.join(", ")})`);
|
|
134
153
|
}
|
|
135
|
-
const
|
|
154
|
+
const target = opts.out ?? process.stdout;
|
|
155
|
+
// A console whose reader is gone (the `tee` of `pnpm dev:kernel` stopped by Ctrl-C, a closed
|
|
156
|
+
// pipe) fails every write with EPIPE. Unhandled, each failure is an uncaught exception the
|
|
157
|
+
// process guard logs, which writes again: an endless chain that starves the event loop. So the
|
|
158
|
+
// first stream error ends console output for good (Loki, when configured, still gets records).
|
|
159
|
+
let broken = false;
|
|
160
|
+
target.on?.("error", () => {
|
|
161
|
+
broken = true;
|
|
162
|
+
});
|
|
163
|
+
const out = {
|
|
164
|
+
write: (s) => {
|
|
165
|
+
if (!broken)
|
|
166
|
+
target.write(s);
|
|
167
|
+
},
|
|
168
|
+
};
|
|
136
169
|
const isTTY = opts.isTTY ?? process.stdout.isTTY === true;
|
|
137
170
|
const pretty = format === "pretty" || (format === "auto" && isTTY);
|
|
138
171
|
if (!pretty)
|
|
139
172
|
return { write: (s) => out.write(s) };
|
|
140
|
-
|
|
173
|
+
const colors = colorsOn(opts, isTTY);
|
|
174
|
+
// In process (no worker thread): pino-pretty formats each record synchronously. The layout follows
|
|
175
|
+
// octok's buildPinoPrettyOptions: full local time, colored level, the bracket prefix, and
|
|
176
|
+
// the remaining fields as indented `key: value` lines below the message (errors with their stack).
|
|
141
177
|
const format_ = prettyFactory({
|
|
142
|
-
colorize:
|
|
143
|
-
colorizeObjects:
|
|
144
|
-
singleLine:
|
|
145
|
-
|
|
146
|
-
errorLikeObjectKeys: [],
|
|
147
|
-
translateTime: "SYS:HH:MM:ss.l",
|
|
178
|
+
colorize: colors,
|
|
179
|
+
colorizeObjects: colors,
|
|
180
|
+
singleLine: false,
|
|
181
|
+
translateTime: "SYS:standard",
|
|
148
182
|
ignore: ["pid", "hostname", "role", "spanId", ...PREFIX_FIELDS].join(","),
|
|
149
183
|
messageFormat: (log, messageKey) => prettyMessage(log, messageKey),
|
|
150
184
|
});
|
|
151
|
-
return {
|
|
185
|
+
return {
|
|
186
|
+
write: (s) => {
|
|
187
|
+
let record;
|
|
188
|
+
try {
|
|
189
|
+
record = JSON.parse(s);
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
out.write(s);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
out.write(format_(foldAccessLine(record)));
|
|
196
|
+
},
|
|
197
|
+
};
|
|
152
198
|
}
|
|
153
199
|
/**
|
|
154
200
|
* Creates the kernel logger on pino. Each record is `{ time, level, msg, ...base, ...fields }` with
|
|
@@ -254,7 +300,7 @@ export function createLogger(level = "info", opts = {}) {
|
|
|
254
300
|
}
|
|
255
301
|
sink[lvl](obj, redactMsg(msg));
|
|
256
302
|
};
|
|
257
|
-
|
|
303
|
+
const root = {
|
|
258
304
|
debug: (msg, fields) => emit("debug", msg, fields),
|
|
259
305
|
info: (msg, fields) => emit("info", msg, fields),
|
|
260
306
|
warn: (msg, fields) => emit("warn", msg, fields),
|
|
@@ -299,5 +345,35 @@ export function createLogger(level = "info", opts = {}) {
|
|
|
299
345
|
}
|
|
300
346
|
}
|
|
301
347
|
},
|
|
348
|
+
// a method, so a wrapper of this logger (a test proxy) is the parent its children forward to
|
|
349
|
+
child(fields) {
|
|
350
|
+
return childLogger(this, fields);
|
|
351
|
+
},
|
|
352
|
+
};
|
|
353
|
+
return root;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* A logger that adds `bound` to every record and forwards it to `parent`'s public methods (so a spy
|
|
357
|
+
* on the parent sees its children's records); call fields cannot overwrite the bound ones.
|
|
358
|
+
*/
|
|
359
|
+
function childLogger(parent, bound) {
|
|
360
|
+
const merged = (fields) => ({ ...fields, ...bound });
|
|
361
|
+
const child = {
|
|
362
|
+
debug: (msg, fields) => parent.debug(msg, merged(fields)),
|
|
363
|
+
info: (msg, fields) => parent.info(msg, merged(fields)),
|
|
364
|
+
warn: (msg, fields) => parent.warn(msg, merged(fields)),
|
|
365
|
+
error: (msg, fields) => parent.error(msg, merged(fields)),
|
|
366
|
+
get level() {
|
|
367
|
+
return parent.level;
|
|
368
|
+
},
|
|
369
|
+
setLevel: (level) => parent.setLevel(level),
|
|
370
|
+
addSecrets: (values) => parent.addSecrets(values),
|
|
371
|
+
addOrgSecrets: (values) => parent.addOrgSecrets(values),
|
|
372
|
+
redact: (text) => parent.redact(text),
|
|
373
|
+
flush: () => parent.flush(),
|
|
374
|
+
child(fields) {
|
|
375
|
+
return childLogger(this, fields);
|
|
376
|
+
},
|
|
302
377
|
};
|
|
378
|
+
return child;
|
|
303
379
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type ExtensionEmbedRequest, type ExtensionEmbedResult, type ExtensionModelTarget, type ExtensionPermissions, type Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
3
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
|
+
import { KernelEvents } from "../infra/events/kernel-events.js";
|
|
6
|
+
import { type HookRunner } from "../runtime/hook-calls.js";
|
|
7
|
+
import { ProviderRegistry } from "../runtime/providers.js";
|
|
8
|
+
import { ModelPurposesService } from "./purposes.js";
|
|
9
|
+
/** An extension's `permissions.models` (what it declared, as approved in its manifest). */
|
|
10
|
+
export type DeclaredModelPurposes = readonly NonNullable<ExtensionPermissions["models"]>[number][];
|
|
11
|
+
/** Most texts one `ctx.models.embed` call may carry (the kernel splits them by `maxBatch`). */
|
|
12
|
+
export declare const EMBED_MAX_INPUTS = 2048;
|
|
13
|
+
/**
|
|
14
|
+
* The `ctx.models` broker for embeddings (model platform spec B §5.4). Every call:
|
|
15
|
+
* - accepts only a purpose the calling extension declared in `permissions.models` with
|
|
16
|
+
* `kind: "embedding"` (`model.purpose_unknown` otherwise: the manifest is what was approved), for
|
|
17
|
+
* an org that enabled the extension (`extension.not_enabled`);
|
|
18
|
+
* - resolves the org's effective target ({@link ModelPurposesService.resolve}: unmapped, or mapped
|
|
19
|
+
* to a model the org cannot use, is `model.unconfigured`) and the model in the org's view, enabled
|
|
20
|
+
* and of kind `embedding` ({@link ProviderRegistry.resolve}, bound to the org's effective config);
|
|
21
|
+
* - fires `model.request` once (`purpose: "embedding"`, every text of the call, no conversation
|
|
22
|
+
* fields) through the host's hook registry before anything is sent; a policy denial (a deny, a
|
|
23
|
+
* hook error or timeout, a policy extension not loaded here or without a valid config in the org)
|
|
24
|
+
* writes one `hook.denied` audit row and rejects with `ApiError("model.hook_denied")` (403) whose
|
|
25
|
+
* message is the one a denied run step fails with: no provider call, no usage row. A call with no input sends nothing
|
|
26
|
+
* and fires nothing;
|
|
27
|
+
* - splits the input into batches of the model's `maxBatch`, calls the provider's `embed` once per
|
|
28
|
+
* batch in order with the extension's signal (plus the request's own `signal`), each batch
|
|
29
|
+
* limited by `models.embedTimeoutMs` (`ModelError("timeout")`), checks each result ({@link validateEmbedResult}: a
|
|
30
|
+
* wrong count, dimension or a non-finite number is a `ModelError` of kind `server`), and
|
|
31
|
+
* concatenates the vectors; no retries (an extension retries itself if it wants to);
|
|
32
|
+
* - writes one `model_usage` row (the sum of the batches' input tokens) and announces it after the
|
|
33
|
+
* commit (`model_usage.recorded`: the usage reporter's `ModelUsageJobs` enqueues its
|
|
34
|
+
* `usage.report` delivery; the usage sweep catches up a lost one). A call that fails after the
|
|
35
|
+
* provider answered some batches (an invalid result, a later batch failing) still records their
|
|
36
|
+
* input tokens before the error reaches the extension; one that fails before any answer records
|
|
37
|
+
* nothing.
|
|
38
|
+
* Purpose params are not sent: an `embed` request carries none (`EmbedRequest`).
|
|
39
|
+
*/
|
|
40
|
+
export declare class ModelEmbeddings {
|
|
41
|
+
private readonly kdb;
|
|
42
|
+
readonly txHost: TransactionHost;
|
|
43
|
+
private readonly purposes;
|
|
44
|
+
private readonly providers;
|
|
45
|
+
/** `model_usage.recorded`: the usage reporter enqueues the row's delivery. */
|
|
46
|
+
private readonly events;
|
|
47
|
+
private readonly log;
|
|
48
|
+
/** `models.embedTimeoutMs` (hot). */
|
|
49
|
+
private readonly config;
|
|
50
|
+
constructor(kdb: KernelDb, txHost: TransactionHost, purposes: Pick<ModelPurposesService, "resolve">, providers: Pick<ProviderRegistry, "resolve">,
|
|
51
|
+
/** `model_usage.recorded`: the usage reporter enqueues the row's delivery. */
|
|
52
|
+
events: Pick<KernelEvents, "emit">, log: Pick<Logger, "warn">,
|
|
53
|
+
/** `models.embedTimeoutMs` (hot). */
|
|
54
|
+
config: Pick<KernelConfigService, "get">);
|
|
55
|
+
/** Refuses a purpose `plugin` did not declare with kind `embedding`, or an org it is off in. */
|
|
56
|
+
private admit;
|
|
57
|
+
/** The org's target for the purpose and the model bound to the org's config. */
|
|
58
|
+
private target;
|
|
59
|
+
/**
|
|
60
|
+
* One batch to the provider, limited by `models.embedTimeoutMs` (hot, read per call): at the limit
|
|
61
|
+
* the call's signal aborts and the batch fails with `ModelError("timeout")`, even when the
|
|
62
|
+
* provider ignores the signal (its late answer is dropped).
|
|
63
|
+
*/
|
|
64
|
+
private callWithTimeout;
|
|
65
|
+
/**
|
|
66
|
+
* `ctx.models.embed` for `plugin` (its declared purposes), aborted by `signal`; `hooks` is the
|
|
67
|
+
* host's hook registry (`model.request`), absent only for a ctx built without a host (tests).
|
|
68
|
+
*/
|
|
69
|
+
embed(plugin: string, declared: DeclaredModelPurposes, request: ExtensionEmbedRequest, signal: AbortSignal, hooks: HookRunner | undefined): Promise<ExtensionEmbedResult>;
|
|
70
|
+
/**
|
|
71
|
+
* `model.request` for an embed call (policy hooks may deny it). Rejects with the caller's abort
|
|
72
|
+
* reason when `signal` aborts while the hooks run (an abort is never a deny).
|
|
73
|
+
*/
|
|
74
|
+
private checkHooks;
|
|
75
|
+
/** `ctx.models.describe` for `plugin`: null when the purpose maps to no model the org can use. */
|
|
76
|
+
describe(plugin: string, declared: DeclaredModelPurposes, req: {
|
|
77
|
+
orgId: string;
|
|
78
|
+
purpose: string;
|
|
79
|
+
}): Promise<ExtensionModelTarget | null>;
|
|
80
|
+
/** One `model_usage` row; its `usage.report` delivery is enqueued after the commit. */
|
|
81
|
+
private record;
|
|
82
|
+
}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { ModelError, validateEmbedResult, } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { ApiError } from "../errors.js";
|
|
13
|
+
import { isExtensionEnabled } from "../extensions/enabled.js";
|
|
14
|
+
import { audit } from "../identity/audit.js";
|
|
15
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
16
|
+
import { afterCommit } from "../infra/database/after-commit.js";
|
|
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 { KernelEvents } from "../infra/events/kernel-events.js";
|
|
21
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
22
|
+
import { embeddingDeniedAudit } from "../runtime/hook-calls.js";
|
|
23
|
+
import { modelDeniedText } from "../runtime/model-call.js";
|
|
24
|
+
import { ProviderRegistry } from "../runtime/providers.js";
|
|
25
|
+
import { ModelPurposesService } from "./purposes.js";
|
|
26
|
+
/** Most texts one `ctx.models.embed` call may carry (the kernel splits them by `maxBatch`). */
|
|
27
|
+
export const EMBED_MAX_INPUTS = 2048;
|
|
28
|
+
/**
|
|
29
|
+
* The `ctx.models` broker for embeddings (model platform spec B §5.4). Every call:
|
|
30
|
+
* - accepts only a purpose the calling extension declared in `permissions.models` with
|
|
31
|
+
* `kind: "embedding"` (`model.purpose_unknown` otherwise: the manifest is what was approved), for
|
|
32
|
+
* an org that enabled the extension (`extension.not_enabled`);
|
|
33
|
+
* - resolves the org's effective target ({@link ModelPurposesService.resolve}: unmapped, or mapped
|
|
34
|
+
* to a model the org cannot use, is `model.unconfigured`) and the model in the org's view, enabled
|
|
35
|
+
* and of kind `embedding` ({@link ProviderRegistry.resolve}, bound to the org's effective config);
|
|
36
|
+
* - fires `model.request` once (`purpose: "embedding"`, every text of the call, no conversation
|
|
37
|
+
* fields) through the host's hook registry before anything is sent; a policy denial (a deny, a
|
|
38
|
+
* hook error or timeout, a policy extension not loaded here or without a valid config in the org)
|
|
39
|
+
* writes one `hook.denied` audit row and rejects with `ApiError("model.hook_denied")` (403) whose
|
|
40
|
+
* message is the one a denied run step fails with: no provider call, no usage row. A call with no input sends nothing
|
|
41
|
+
* and fires nothing;
|
|
42
|
+
* - splits the input into batches of the model's `maxBatch`, calls the provider's `embed` once per
|
|
43
|
+
* batch in order with the extension's signal (plus the request's own `signal`), each batch
|
|
44
|
+
* limited by `models.embedTimeoutMs` (`ModelError("timeout")`), checks each result ({@link validateEmbedResult}: a
|
|
45
|
+
* wrong count, dimension or a non-finite number is a `ModelError` of kind `server`), and
|
|
46
|
+
* concatenates the vectors; no retries (an extension retries itself if it wants to);
|
|
47
|
+
* - writes one `model_usage` row (the sum of the batches' input tokens) and announces it after the
|
|
48
|
+
* commit (`model_usage.recorded`: the usage reporter's `ModelUsageJobs` enqueues its
|
|
49
|
+
* `usage.report` delivery; the usage sweep catches up a lost one). A call that fails after the
|
|
50
|
+
* provider answered some batches (an invalid result, a later batch failing) still records their
|
|
51
|
+
* input tokens before the error reaches the extension; one that fails before any answer records
|
|
52
|
+
* nothing.
|
|
53
|
+
* Purpose params are not sent: an `embed` request carries none (`EmbedRequest`).
|
|
54
|
+
*/
|
|
55
|
+
let ModelEmbeddings = class ModelEmbeddings {
|
|
56
|
+
kdb;
|
|
57
|
+
txHost;
|
|
58
|
+
purposes;
|
|
59
|
+
providers;
|
|
60
|
+
events;
|
|
61
|
+
log;
|
|
62
|
+
config;
|
|
63
|
+
constructor(kdb, txHost, purposes, providers,
|
|
64
|
+
/** `model_usage.recorded`: the usage reporter enqueues the row's delivery. */
|
|
65
|
+
events, log,
|
|
66
|
+
/** `models.embedTimeoutMs` (hot). */
|
|
67
|
+
config) {
|
|
68
|
+
this.kdb = kdb;
|
|
69
|
+
this.txHost = txHost;
|
|
70
|
+
this.purposes = purposes;
|
|
71
|
+
this.providers = providers;
|
|
72
|
+
this.events = events;
|
|
73
|
+
this.log = log;
|
|
74
|
+
this.config = config;
|
|
75
|
+
}
|
|
76
|
+
/** Refuses a purpose `plugin` did not declare with kind `embedding`, or an org it is off in. */
|
|
77
|
+
async admit(plugin, declared, orgId, purpose) {
|
|
78
|
+
if (!declared.some((d) => d.purpose === purpose && d.kind === "embedding")) {
|
|
79
|
+
throw new ApiError("model.purpose_unknown", `Extension ${plugin} declared no embedding purpose "${purpose}" in permissions.models`);
|
|
80
|
+
}
|
|
81
|
+
if (!(await isExtensionEnabled(this.kdb.db, orgId, plugin))) {
|
|
82
|
+
throw new ApiError("extension.not_enabled", `Extension ${plugin} is not enabled in organization ${orgId}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** The org's target for the purpose and the model bound to the org's config. */
|
|
86
|
+
async target(orgId, purpose) {
|
|
87
|
+
const target = await this.purposes.resolve(orgId, purpose);
|
|
88
|
+
const { provider, info } = await this.providers.resolve(orgId, target.model, {
|
|
89
|
+
kind: "embedding",
|
|
90
|
+
});
|
|
91
|
+
if (info.embedding === undefined || provider.embed === undefined) {
|
|
92
|
+
// the registry drops such models from the list; kept as a guard
|
|
93
|
+
throw new ApiError("model.unconfigured", `The model configured for the "${purpose}" purpose cannot embed`);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
ref: target.model,
|
|
97
|
+
info: info.embedding,
|
|
98
|
+
embed: provider.embed.bind(provider),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* One batch to the provider, limited by `models.embedTimeoutMs` (hot, read per call): at the limit
|
|
103
|
+
* the call's signal aborts and the batch fails with `ModelError("timeout")`, even when the
|
|
104
|
+
* provider ignores the signal (its late answer is dropped).
|
|
105
|
+
*/
|
|
106
|
+
async callWithTimeout(embed, batch, signal, model) {
|
|
107
|
+
const ms = this.config.get().models.embedTimeoutMs;
|
|
108
|
+
const timer = new AbortController();
|
|
109
|
+
const both = AbortSignal.any([signal, timer.signal]);
|
|
110
|
+
let handle;
|
|
111
|
+
let onAbort;
|
|
112
|
+
const call = Promise.resolve().then(() => embed(batch, { signal: both }));
|
|
113
|
+
call.catch(() => { });
|
|
114
|
+
try {
|
|
115
|
+
return await Promise.race([
|
|
116
|
+
call,
|
|
117
|
+
new Promise((_, reject) => {
|
|
118
|
+
handle = setTimeout(() => {
|
|
119
|
+
const err = new ModelError("timeout", `Model ${model.provider}/${model.id} did not answer an embed call within ${ms} ms`);
|
|
120
|
+
timer.abort(err);
|
|
121
|
+
reject(err);
|
|
122
|
+
}, ms);
|
|
123
|
+
onAbort = () => reject(signal.reason);
|
|
124
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
125
|
+
}),
|
|
126
|
+
]);
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
clearTimeout(handle);
|
|
130
|
+
// ctx.signal lives as long as the instance: never leave a listener per batch on it
|
|
131
|
+
if (onAbort)
|
|
132
|
+
signal.removeEventListener("abort", onAbort);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* `ctx.models.embed` for `plugin` (its declared purposes), aborted by `signal`; `hooks` is the
|
|
137
|
+
* host's hook registry (`model.request`), absent only for a ctx built without a host (tests).
|
|
138
|
+
*/
|
|
139
|
+
async embed(plugin, declared, request, signal, hooks) {
|
|
140
|
+
checkRequest(request);
|
|
141
|
+
// a copy, read once: the texts the hooks see are the texts sent, whatever the extension does
|
|
142
|
+
// with its own request object meanwhile
|
|
143
|
+
const req = { ...request, input: request.input.slice() };
|
|
144
|
+
await this.admit(plugin, declared, req.orgId, req.purpose);
|
|
145
|
+
const t = await this.target(req.orgId, req.purpose);
|
|
146
|
+
const dimensions = req.dimensions ?? t.info.defaultDimensions;
|
|
147
|
+
if (!t.info.dimensions.includes(dimensions)) {
|
|
148
|
+
throw new ApiError("validation_failed", `Model ${t.ref.provider}/${t.ref.model} cannot produce ${dimensions} dimensions (it offers ${t.info.dimensions.join(", ")})`);
|
|
149
|
+
}
|
|
150
|
+
const model = { provider: t.ref.provider, id: t.ref.model };
|
|
151
|
+
if (req.input.length === 0)
|
|
152
|
+
return { vectors: [], model, dimensions };
|
|
153
|
+
const vectors = [];
|
|
154
|
+
/** Input tokens of the batches the provider answered (billed even if the call fails later). */
|
|
155
|
+
let inputTokens = 0;
|
|
156
|
+
let answered = 0;
|
|
157
|
+
const size = Math.max(1, t.info.maxBatch);
|
|
158
|
+
// the instance's signal (revocation) and the caller's own (e.g. its tool call aborted)
|
|
159
|
+
const callSignal = req.signal ? AbortSignal.any([signal, req.signal]) : signal;
|
|
160
|
+
await this.checkHooks(hooks, plugin, req, model, callSignal);
|
|
161
|
+
try {
|
|
162
|
+
for (let i = 0; i < req.input.length; i += size) {
|
|
163
|
+
callSignal.throwIfAborted();
|
|
164
|
+
const batch = {
|
|
165
|
+
model: t.ref.model,
|
|
166
|
+
input: req.input.slice(i, i + size),
|
|
167
|
+
...(req.dimensions !== undefined && { dimensions: req.dimensions }),
|
|
168
|
+
...(req.inputType !== undefined && { inputType: req.inputType }),
|
|
169
|
+
};
|
|
170
|
+
const res = await this.callWithTimeout(t.embed, batch, callSignal, model);
|
|
171
|
+
answered++;
|
|
172
|
+
inputTokens += tokensOf(res);
|
|
173
|
+
const problem = checkResult(batch, t.info, res);
|
|
174
|
+
if (problem !== null) {
|
|
175
|
+
throw new ModelError("server", `Model ${model.provider}/${model.id} returned an invalid embedding: ${problem}`);
|
|
176
|
+
}
|
|
177
|
+
for (const v of res.vectors)
|
|
178
|
+
vectors.push(v);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
// the batches already answered were billed by the provider: recorded, then the error
|
|
183
|
+
if (answered > 0) {
|
|
184
|
+
await this.record(plugin, req.orgId, req.purpose, model, inputTokens).catch((e) => this.log.warn("cannot record the usage of a failed embed call", {
|
|
185
|
+
plugin,
|
|
186
|
+
orgId: req.orgId,
|
|
187
|
+
err: e,
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
throw err;
|
|
191
|
+
}
|
|
192
|
+
await this.record(plugin, req.orgId, req.purpose, model, inputTokens);
|
|
193
|
+
return { vectors, model, dimensions };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* `model.request` for an embed call (policy hooks may deny it). Rejects with the caller's abort
|
|
197
|
+
* reason when `signal` aborts while the hooks run (an abort is never a deny).
|
|
198
|
+
*/
|
|
199
|
+
async checkHooks(hooks, plugin, req, model, signal) {
|
|
200
|
+
if (!hooks?.has("model.request"))
|
|
201
|
+
return;
|
|
202
|
+
const call = {
|
|
203
|
+
purpose: "embedding",
|
|
204
|
+
orgId: req.orgId,
|
|
205
|
+
extension: plugin,
|
|
206
|
+
embeddingPurpose: req.purpose,
|
|
207
|
+
provider: model.provider,
|
|
208
|
+
model: model.id,
|
|
209
|
+
input: req.input,
|
|
210
|
+
...(req.dimensions !== undefined && { dimensions: req.dimensions }),
|
|
211
|
+
...(req.inputType !== undefined && { inputType: req.inputType }),
|
|
212
|
+
};
|
|
213
|
+
const verdict = await hooks.run("model.request", call, signal);
|
|
214
|
+
if (verdict.allowed)
|
|
215
|
+
return;
|
|
216
|
+
await audit(this.kdb.db, embeddingDeniedAudit(call, verdict));
|
|
217
|
+
this.log.warn("embed call blocked by a policy hook", {
|
|
218
|
+
plugin,
|
|
219
|
+
orgId: req.orgId,
|
|
220
|
+
hookPlugin: verdict.plugin,
|
|
221
|
+
cause: verdict.cause,
|
|
222
|
+
});
|
|
223
|
+
throw new ApiError("model.hook_denied", modelDeniedText(verdict.plugin, verdict.reason));
|
|
224
|
+
}
|
|
225
|
+
/** `ctx.models.describe` for `plugin`: null when the purpose maps to no model the org can use. */
|
|
226
|
+
async describe(plugin, declared, req) {
|
|
227
|
+
if (typeof req?.orgId !== "string" || typeof req.purpose !== "string") {
|
|
228
|
+
throw new ApiError("validation_failed", "describe needs orgId and purpose strings");
|
|
229
|
+
}
|
|
230
|
+
await this.admit(plugin, declared, req.orgId, req.purpose);
|
|
231
|
+
try {
|
|
232
|
+
const t = await this.target(req.orgId, req.purpose);
|
|
233
|
+
return {
|
|
234
|
+
provider: t.ref.provider,
|
|
235
|
+
id: t.ref.model,
|
|
236
|
+
kind: "embedding",
|
|
237
|
+
embedding: structuredClone(t.info),
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
catch (e) {
|
|
241
|
+
if (e instanceof ApiError && e.code === "model.unconfigured")
|
|
242
|
+
return null;
|
|
243
|
+
throw e;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/** One `model_usage` row; its `usage.report` delivery is enqueued after the commit. */
|
|
247
|
+
async record(plugin, orgId, purpose, model, inputTokens) {
|
|
248
|
+
const row = await this.kdb.db
|
|
249
|
+
.insertInto("model_usage")
|
|
250
|
+
.values({
|
|
251
|
+
org_id: orgId,
|
|
252
|
+
extension: plugin,
|
|
253
|
+
purpose,
|
|
254
|
+
provider: model.provider,
|
|
255
|
+
model: model.id,
|
|
256
|
+
input_tokens: Math.round(inputTokens),
|
|
257
|
+
})
|
|
258
|
+
.returning("id")
|
|
259
|
+
.executeTakeFirstOrThrow();
|
|
260
|
+
// fire and forget: the extension's call never waits on the enqueue (PG, Redis); a lost one is
|
|
261
|
+
// caught up by the usage sweep
|
|
262
|
+
afterCommit(() => {
|
|
263
|
+
void this.events
|
|
264
|
+
.emit("model_usage.recorded", { id: row.id })
|
|
265
|
+
.catch((err) => this.log.warn("model usage event failed", { usageId: row.id, err }));
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
__decorate([
|
|
270
|
+
Transactional()
|
|
271
|
+
], ModelEmbeddings.prototype, "record", null);
|
|
272
|
+
ModelEmbeddings = __decorate([
|
|
273
|
+
Injectable(),
|
|
274
|
+
__param(0, Inject(KernelDb)),
|
|
275
|
+
__param(1, Inject(TransactionHost)),
|
|
276
|
+
__param(2, Inject(ModelPurposesService)),
|
|
277
|
+
__param(3, Inject(ProviderRegistry)),
|
|
278
|
+
__param(4, Inject(KernelEvents)),
|
|
279
|
+
__param(5, Inject(KERNEL_LOGGER)),
|
|
280
|
+
__param(6, Inject(KernelConfigService))
|
|
281
|
+
], ModelEmbeddings);
|
|
282
|
+
export { ModelEmbeddings };
|
|
283
|
+
/** A result's input tokens when it reports a usable number, else 0 (an invalid result). */
|
|
284
|
+
function tokensOf(res) {
|
|
285
|
+
const n = res?.usage?.inputTokens;
|
|
286
|
+
return typeof n === "number" && Number.isFinite(n) && n > 0 ? n : 0;
|
|
287
|
+
}
|
|
288
|
+
/** The request's shape (an extension is untyped JavaScript at run time). */
|
|
289
|
+
function checkRequest(req) {
|
|
290
|
+
const bad = (why) => {
|
|
291
|
+
throw new ApiError("validation_failed", `Invalid embed request: ${why}`);
|
|
292
|
+
};
|
|
293
|
+
if (typeof req !== "object" || req === null)
|
|
294
|
+
bad("expected an object");
|
|
295
|
+
if (typeof req.orgId !== "string" || req.orgId === "")
|
|
296
|
+
bad("orgId must be a string");
|
|
297
|
+
if (typeof req.purpose !== "string" || req.purpose === "")
|
|
298
|
+
bad("purpose must be a string");
|
|
299
|
+
if (!Array.isArray(req.input) || req.input.some((t) => typeof t !== "string")) {
|
|
300
|
+
bad("input must be an array of strings");
|
|
301
|
+
}
|
|
302
|
+
if (req.input.length > EMBED_MAX_INPUTS)
|
|
303
|
+
bad(`at most ${EMBED_MAX_INPUTS} inputs per call`);
|
|
304
|
+
if (req.dimensions !== undefined && !Number.isInteger(req.dimensions)) {
|
|
305
|
+
bad("dimensions must be an integer");
|
|
306
|
+
}
|
|
307
|
+
if (req.signal !== undefined && !(req.signal instanceof AbortSignal)) {
|
|
308
|
+
bad("signal must be an AbortSignal");
|
|
309
|
+
}
|
|
310
|
+
if (req.inputType !== undefined && req.inputType !== "query" && req.inputType !== "document") {
|
|
311
|
+
bad('inputType must be "query" or "document"');
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/** {@link validateEmbedResult}, plus the result's own shape (a provider is untyped at run time). */
|
|
315
|
+
function checkResult(req, info, res) {
|
|
316
|
+
const r = res;
|
|
317
|
+
if (typeof r !== "object" || r === null || !Array.isArray(r.vectors))
|
|
318
|
+
return "no vectors";
|
|
319
|
+
if (!r.vectors.every((v) => Array.isArray(v)))
|
|
320
|
+
return "a vector is not an array";
|
|
321
|
+
const tokens = r.usage?.inputTokens;
|
|
322
|
+
if (typeof tokens !== "number" || !Number.isFinite(tokens) || tokens < 0) {
|
|
323
|
+
return "usage.inputTokens is not a non-negative number";
|
|
324
|
+
}
|
|
325
|
+
return validateEmbedResult(req, info, r);
|
|
326
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type Principal } from "../identity/principal.js";
|
|
3
|
+
import { type OrgContext } from "../orgs/org.guard.js";
|
|
4
|
+
import { type ModelDisableResult, ModelEnablement } from "./enablement.js";
|
|
5
|
+
/** `:provider` of a disabled-list route. */
|
|
6
|
+
export declare const ModelProviderParams: z.ZodObject<{
|
|
7
|
+
provider: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
declare const ModelProviderParamsDto_base: import("../infra/validation/create-zod-dto.js").ZodDtoClass<z.ZodObject<{
|
|
10
|
+
provider: z.ZodString;
|
|
11
|
+
}, z.core.$strip>>;
|
|
12
|
+
export declare class ModelProviderParamsDto extends ModelProviderParamsDto_base {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The body of a disabled-list PATCH: the model ids of the provider to disable and to enable. An id
|
|
16
|
+
* in neither list keeps its stored state (a page never drops ids it does not show); an id in both
|
|
17
|
+
* is a 400 `validation_failed`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ModelDisabledPatch: z.ZodObject<{
|
|
20
|
+
disable: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
21
|
+
enable: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
22
|
+
}, z.core.$strict>;
|
|
23
|
+
declare const ModelDisabledPatchDto_base: import("../infra/validation/create-zod-dto.js").ZodDtoClass<z.ZodObject<{
|
|
24
|
+
disable: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
25
|
+
enable: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
26
|
+
}, z.core.$strict>>;
|
|
27
|
+
export declare class ModelDisabledPatchDto extends ModelDisabledPatchDto_base {
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The org's disabled models of one provider (`PATCH /api/v1/orgs/:orgId/models/:provider/disabled`,
|
|
31
|
+
* spec B §5.3): `org.models.manage`, people only. Disables and enables the ids the body names; the
|
|
32
|
+
* response lists the org's agents and purposes that now point at a newly disabled model (the
|
|
33
|
+
* disable is not refused for them).
|
|
34
|
+
*/
|
|
35
|
+
export declare class ModelEnablementController {
|
|
36
|
+
private readonly enablement;
|
|
37
|
+
constructor(enablement: ModelEnablement);
|
|
38
|
+
patch(principal: Principal, org: OrgContext, params: z.infer<typeof ModelProviderParams>, body: z.infer<typeof ModelDisabledPatch>): Promise<ModelDisableResult>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|