@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +85 -5
- package/dist/admin/admin.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +60 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +868 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +216 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +264 -0
- package/dist/catalog/catalog-content.js +430 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +290 -0
- package/dist/catalog/catalog-items.js +677 -0
- package/dist/catalog/catalog-scope.service.d.ts +286 -0
- package/dist/catalog/catalog-scope.service.js +1196 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +144 -207
- package/dist/catalog/catalog.service.js +258 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +90 -0
- package/dist/catalog/component-scope.controller.js +234 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +366 -0
- package/dist/catalog/component-scope.service.js +1115 -0
- package/dist/catalog/component-state.d.ts +197 -0
- package/dist/catalog/component-state.js +473 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +434 -472
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +113 -0
- package/dist/catalog/org-extension.controller.js +271 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +293 -71
- package/dist/catalog/plugin-import.js +1039 -281
- package/dist/catalog/plugin-install.d.ts +271 -66
- package/dist/catalog/plugin-install.js +1198 -344
- package/dist/catalog/plugin-package.d.ts +41 -4
- package/dist/catalog/plugin-package.js +140 -7
- package/dist/catalog/plugin-upgrade.d.ts +312 -188
- package/dist/catalog/plugin-upgrade.js +1371 -1065
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +589 -27
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +160 -2
- package/dist/errors.js +160 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +91 -4
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +93 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +137 -38
- package/dist/identity/accounts.js +386 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +32 -15
- package/dist/identity/me.controller.js +80 -33
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +69 -23
- package/dist/identity/settings.js +201 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +7 -0
- package/dist/models/models.module.js +36 -0
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +76 -14
- package/dist/orgs/settings.service.js +140 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +683 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +94 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +407 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +717 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +378 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +296 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +216 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +40 -0
- package/dist/platform/platform-ops.module.js +127 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +66 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +43 -0
- package/dist/runtime/run-control.js +89 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/themes/render-css.d.ts +12 -0
- package/dist/themes/render-css.js +132 -0
- package/dist/themes/theme-delivery.service.d.ts +34 -0
- package/dist/themes/theme-delivery.service.js +111 -0
- package/dist/themes/theme-state.d.ts +95 -0
- package/dist/themes/theme-state.js +203 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +28 -0
- package/dist/themes/themes-public.controller.js +92 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +30 -20
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +52 -45
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
|
@@ -1,25 +1,108 @@
|
|
|
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 { createHash } from "node:crypto";
|
|
1
11
|
import { assertValidDeclarations, EFFORT_VALUES, parseExtensionPoint, } from "@capybara-hq/plugin-sdk";
|
|
12
|
+
import { Inject, Injectable, Module, Optional } from "@nestjs/common";
|
|
2
13
|
import { ApiError } from "../errors.js";
|
|
14
|
+
import { deploymentConfigHash } from "../extensions/config-hash.js";
|
|
15
|
+
import { EffectiveConfigs } from "../extensions/effective-config.js";
|
|
16
|
+
import { missingOverridable } from "../extensions/org-levels.js";
|
|
17
|
+
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
18
|
+
import { ExtensionStateModule } from "../extensions/state.module.js";
|
|
19
|
+
import { CacheService } from "../infra/cache/cache.service.js";
|
|
20
|
+
import { Cacheable } from "../infra/cache/cacheable.decorator.js";
|
|
21
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
22
|
+
import { KERNEL_LOGGER, REDIS } from "../infra/tokens.js";
|
|
23
|
+
import { ModelEnablement, ModelEnablementModule, modelKey } from "../models/enablement.js";
|
|
3
24
|
/** 供应商模型列表在 Redis 中的缓存时长(秒)。 */
|
|
4
25
|
const MODELS_TTL_SECONDS = 600;
|
|
5
|
-
/**
|
|
6
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Optional provider: the `listModels()` time limit (ms) instead of the config's
|
|
28
|
+
* `models.listTimeoutMs` (tests).
|
|
29
|
+
*/
|
|
30
|
+
export const LIST_MODELS_TIMEOUT = Symbol("LIST_MODELS_TIMEOUT");
|
|
7
31
|
/**
|
|
8
32
|
* 列表视图(后台模型页、组织模型页)里列模型失败的供应商在这么多秒内直接标 error、不再请求(Redis,多副本共享)。
|
|
9
33
|
* 只用于列表;`resolve`(运行时)照常每次请求,失败由降级梯子重试。
|
|
10
34
|
*/
|
|
11
35
|
export const LIST_FAILURE_TTL_SECONDS = 15;
|
|
12
36
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
37
|
+
* How long the "model dropped from the list" warn is not repeated for the same (provider, model,
|
|
38
|
+
* config digest): the list is re-read every {@link MODELS_TTL_SECONDS}, the warn is not.
|
|
39
|
+
*/
|
|
40
|
+
const DROPPED_WARN_TTL_SECONDS = 24 * 3600;
|
|
41
|
+
/**
|
|
42
|
+
* The shape of a cached model list. 2: every entry carries its normalised `kind` (model platform
|
|
43
|
+
* providers); a format-1 entry has none, and a kernel reading it found no chat model at all.
|
|
44
|
+
*/
|
|
45
|
+
const MODELS_CACHE_FORMAT = 2;
|
|
46
|
+
/**
|
|
47
|
+
* The model list's cache key (`@Cacheable` stores it as `cache:<key>`). It carries the provider's
|
|
48
|
+
* contract major: after a plugin moves from `@1` to `@2` it never reads the list written through
|
|
49
|
+
* the `@1` adapter (both are `@2`-shaped, the shape cannot tell them apart). It also carries the
|
|
50
|
+
* plugin version and the digest of the effective config the list was read with (see
|
|
51
|
+
* {@link ProviderRegistry}): after an upgrade (the parameter declarations may have changed) or a
|
|
52
|
+
* config change (models added or removed) every replica validates the new list at once instead of
|
|
53
|
+
* waiting for the old entry's TTL. The digest is only a hash, never config text (no secret in the
|
|
54
|
+
* key). Old keys expire by TTL. Entries without a version / digest (test doubles) use `-`.
|
|
55
|
+
* `f<n>` is the shape of the cached entry ({@link MODELS_CACHE_FORMAT}): a kernel that changes what
|
|
56
|
+
* it caches bumps it, so during a rolling upgrade it never reads a list an older kernel wrote.
|
|
18
57
|
*/
|
|
19
|
-
const modelsKey = (p) => `capk:models:${p.plugin}:v${p.major}:${p.version ?? "-"}:${
|
|
58
|
+
const modelsKey = (p, hash) => `capk:models:${p.plugin}:v${p.major}:f${MODELS_CACHE_FORMAT}:${p.version ?? "-"}:${hash ?? "-"}`;
|
|
20
59
|
/** 列表视图的失败标记({@link LIST_FAILURE_TTL_SECONDS}),与模型列表同样按版本与配置摘要区分。 */
|
|
21
|
-
const listFailedKey = (p) => `capk:models-failed:${p.plugin}:v${p.major}:${p.version ?? "-"}:${
|
|
60
|
+
const listFailedKey = (p, hash) => `capk:models-failed:${p.plugin}:v${p.major}:${p.version ?? "-"}:${hash ?? "-"}`;
|
|
61
|
+
const droppedKey = (plugin, hash, model) => `capk:models-dropped:${plugin}:${hash ?? "-"}:${model}`;
|
|
62
|
+
/**
|
|
63
|
+
* The digest of an org's own copy of the config. `deploymentConfigHash` masks secrets, and a copy
|
|
64
|
+
* usually differs from the platform only by its key, so the org id goes into the digest: a copy
|
|
65
|
+
* never shares the platform's list (or another org's), whose key may see other models.
|
|
66
|
+
*/
|
|
67
|
+
const copyHash = (orgId, schema, config) => createHash("sha256")
|
|
68
|
+
.update(`${orgId}\0${deploymentConfigHash(schema, config)}`)
|
|
69
|
+
.digest("hex")
|
|
70
|
+
.slice(0, 16);
|
|
22
71
|
const CAPABILITY = "model-provider";
|
|
72
|
+
/** The model kinds this kernel knows; another kind (a newer plugin) is listed as `other`. */
|
|
73
|
+
const KNOWN_KINDS = new Set([
|
|
74
|
+
"chat",
|
|
75
|
+
"embedding",
|
|
76
|
+
"rerank",
|
|
77
|
+
"image_generation",
|
|
78
|
+
"video_generation",
|
|
79
|
+
"speech_to_text",
|
|
80
|
+
"text_to_speech",
|
|
81
|
+
]);
|
|
82
|
+
function bindProvider(impl, call) {
|
|
83
|
+
const bound = {
|
|
84
|
+
stream: (req, opts) => impl.stream(req, { signal: opts.signal, ...call }),
|
|
85
|
+
};
|
|
86
|
+
if (typeof impl.embed === "function") {
|
|
87
|
+
bound.embed = (req, opts) => impl.embed(req, { signal: opts.signal, ...call });
|
|
88
|
+
}
|
|
89
|
+
return bound;
|
|
90
|
+
}
|
|
91
|
+
const positiveInt = (n) => typeof n === "number" && Number.isInteger(n) && n > 0;
|
|
92
|
+
/**
|
|
93
|
+
* Whether an embedding model's info is usable: at least one dimension, every dimension and the
|
|
94
|
+
* limits positive integers, and `defaultDimensions` one of `dimensions`. A model failing this is
|
|
95
|
+
* dropped from the list (every default call on it would fail validation).
|
|
96
|
+
*/
|
|
97
|
+
function isValidEmbeddingInfo(e) {
|
|
98
|
+
return (Array.isArray(e.dimensions) &&
|
|
99
|
+
e.dimensions.length > 0 &&
|
|
100
|
+
e.dimensions.every(positiveInt) &&
|
|
101
|
+
positiveInt(e.defaultDimensions) &&
|
|
102
|
+
e.dimensions.includes(e.defaultDimensions) &&
|
|
103
|
+
positiveInt(e.maxInputTokens) &&
|
|
104
|
+
positiveInt(e.maxBatch));
|
|
105
|
+
}
|
|
23
106
|
/**
|
|
24
107
|
* 供应商的 `listModels()` 失败(上游不可用等)。仍是 `agent.model_unavailable`,HTTP 调用方照常
|
|
25
108
|
* 得到该错误码;运行时(`runModelStep`)据此类型把它当作可重试的失败交给降级梯子,
|
|
@@ -47,14 +130,16 @@ const V1_EFFORT_KNOB = {
|
|
|
47
130
|
/**
|
|
48
131
|
* 把 `model-provider@1` 实现包成 `@2`:
|
|
49
132
|
* - `listModels`:`parameters` 由 `capabilities.effort` 推导(为真时只有 effort 旋钮,否则为空);
|
|
133
|
+
* an `@1` model is always a chat model: `kind` and `embedding` are dropped (an `@1` provider has
|
|
134
|
+
* no `embed`); the per-call options are not passed (an `@1` provider reads `ctx.config`);
|
|
50
135
|
* - `stream`:`params.effort` 映射为 `req.effort`,其余参数丢弃(`@1` 没有对应字段);
|
|
51
|
-
* 没有 `params.effort` 时保留请求自带的 `effort
|
|
136
|
+
* 没有 `params.effort` 时保留请求自带的 `effort`;only the signal is passed.
|
|
52
137
|
*/
|
|
53
138
|
export function adaptModelProviderV1(impl) {
|
|
54
139
|
return {
|
|
55
140
|
async listModels() {
|
|
56
141
|
const models = await impl.listModels();
|
|
57
|
-
return models.map((m) => ({
|
|
142
|
+
return models.map(({ kind: _kind, embedding: _embedding, ...m }) => ({
|
|
58
143
|
...m,
|
|
59
144
|
parameters: m.capabilities.effort ? [structuredClone(V1_EFFORT_KNOB)] : [],
|
|
60
145
|
}));
|
|
@@ -67,41 +152,61 @@ export function adaptModelProviderV1(impl) {
|
|
|
67
152
|
if (typeof effort === "string" && EFFORT_VALUES.includes(effort)) {
|
|
68
153
|
out.effort = effort;
|
|
69
154
|
}
|
|
70
|
-
return impl.stream(out, opts);
|
|
155
|
+
return impl.stream(out, { signal: opts.signal });
|
|
71
156
|
},
|
|
72
157
|
};
|
|
73
158
|
}
|
|
74
|
-
/** 缓存里的条目必须是 `@2` 形状(旧版本内核写入的 `@1` 原始结果没有 `parameters`,视为未命中)。 */
|
|
75
|
-
const isCurrentShape = (models) => Array.isArray(models) &&
|
|
76
|
-
models.every((m) => typeof m === "object" && m !== null && Array.isArray(m.parameters));
|
|
77
159
|
/**
|
|
78
160
|
* 模型供应商注册表:供应商即提供 `model-provider` 能力的插件(以插件名为供应商名)。
|
|
79
161
|
* 同时支持 `model-provider@1`(经 {@link adaptModelProviderV1} 适配)与 `@2`;
|
|
80
|
-
* 同一插件两者都提供时用 `@2
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
162
|
+
* 同一插件两者都提供时用 `@2`。
|
|
163
|
+
*
|
|
164
|
+
* Org-bound (spec B §5.5, A §6): every list and call is made for an org with the provider's
|
|
165
|
+
* effective config there (`EffectiveConfigs.get`), passed as `{ orgId, config }`; a provider whose
|
|
166
|
+
* effective config is not valid in the org offers no models there, and neither does one the org
|
|
167
|
+
* explicitly turned off (its own extension switch row off, spec A §8; a provider with no switch row
|
|
168
|
+
* stays usable). The admin view (no org) lists with the platform config.
|
|
169
|
+
*
|
|
170
|
+
* Each list is validated per model (spec B §5.1): kinds are normalised (absent = `chat`, unknown =
|
|
171
|
+
* `other`); a chat model failing `assertValidDeclarations`, or an `embedding` model without
|
|
172
|
+
* `embedding` info or from a provider without `embed`, is dropped with a warn, the rest of the
|
|
173
|
+
* provider stays usable. Only `chat` and `embedding` models resolve.
|
|
174
|
+
*
|
|
175
|
+
* Each list (`@2`-shaped) is cached in Redis (`@Cacheable`, key
|
|
176
|
+
* `cache:capk:models:<provider>:v<major>:<plugin version>:<config digest>`, 600 s), never in
|
|
177
|
+
* process memory: every replica shares it. The digest is the platform config's for every org that
|
|
178
|
+
* follows the platform (one shared list), and a per-org digest for an org's own copy.
|
|
84
179
|
*/
|
|
85
|
-
|
|
180
|
+
let ProviderRegistry = class ProviderRegistry {
|
|
86
181
|
host;
|
|
182
|
+
effective;
|
|
183
|
+
cacheService;
|
|
87
184
|
kv;
|
|
185
|
+
config;
|
|
186
|
+
enablement;
|
|
88
187
|
log;
|
|
89
|
-
|
|
90
|
-
constructor(host, kv,
|
|
188
|
+
listTimeoutOverride;
|
|
189
|
+
constructor(host, effective, cacheService, kv, config, enablement, log,
|
|
190
|
+
/** Overrides `models.listTimeoutMs` (tests). */
|
|
191
|
+
listTimeoutOverride) {
|
|
91
192
|
this.host = host;
|
|
193
|
+
this.effective = effective;
|
|
194
|
+
this.cacheService = cacheService;
|
|
92
195
|
this.kv = kv;
|
|
196
|
+
this.config = config;
|
|
197
|
+
this.enablement = enablement;
|
|
93
198
|
this.log = log;
|
|
94
|
-
this.
|
|
199
|
+
this.listTimeoutOverride = listTimeoutOverride;
|
|
95
200
|
}
|
|
96
201
|
/** `listModels()` 加时限(到时按失败处理,供应商的调用留在后台、结果丢弃)。 */
|
|
97
|
-
async listModelsWithTimeout(impl) {
|
|
98
|
-
const ms = this.
|
|
202
|
+
async listModelsWithTimeout(impl, call) {
|
|
203
|
+
const ms = this.listTimeoutOverride ?? this.config.get().models.listTimeoutMs;
|
|
99
204
|
let timer;
|
|
100
|
-
const call = Promise.resolve().then(() => impl.listModels());
|
|
101
|
-
call
|
|
205
|
+
const call$ = Promise.resolve().then(() => impl.listModels(call));
|
|
206
|
+
call$.catch(() => { });
|
|
102
207
|
try {
|
|
103
208
|
return await Promise.race([
|
|
104
|
-
call
|
|
209
|
+
call$,
|
|
105
210
|
new Promise((_, reject) => {
|
|
106
211
|
timer = setTimeout(() => reject(new Error(`listModels timed out after ${ms}ms`)), ms);
|
|
107
212
|
}),
|
|
@@ -111,6 +216,20 @@ export class ProviderRegistry {
|
|
|
111
216
|
clearTimeout(timer);
|
|
112
217
|
}
|
|
113
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Whether at least one model-provider extension is loaded on this replica (enabled, configured,
|
|
221
|
+
* set up) with a valid effective config in `orgId`. Read from extension state and the org's
|
|
222
|
+
* config only: never calls a vendor, so a provider whose vendor is down still counts (org
|
|
223
|
+
* readiness, web-order spec §3.8).
|
|
224
|
+
*/
|
|
225
|
+
async hasProvider(orgId) {
|
|
226
|
+
const off = await this.enablement.switchedOff(orgId);
|
|
227
|
+
for (const p of this.providers()) {
|
|
228
|
+
if ((await this.target(p, orgId, off)).ok)
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
114
233
|
/** 每个插件取一个实现(`@2` 优先),按插件首次出现的顺序;不支持的主版本记 warn 后忽略。 */
|
|
115
234
|
providers() {
|
|
116
235
|
const chosen = new Map();
|
|
@@ -141,57 +260,174 @@ export class ProviderRegistry {
|
|
|
141
260
|
impl: major === 2 ? impl : adaptModelProviderV1(impl),
|
|
142
261
|
}));
|
|
143
262
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
263
|
+
/**
|
|
264
|
+
* The call options and list digest of `p` for `orgId`, or for the platform when `orgId` is
|
|
265
|
+
* undefined (the admin view). An org: its effective config (not valid -> `needs_config`); the
|
|
266
|
+
* platform's digest while it follows the platform, a per-org one for its copy. The platform: its
|
|
267
|
+
* own config (a required overridable field left empty -> `org_configured`). `off`: the
|
|
268
|
+
* extensions the org explicitly turned off (`ModelEnablement.switchedOff`) -> `switched_off`.
|
|
269
|
+
*/
|
|
270
|
+
async target(p, orgId, off = new Set()) {
|
|
271
|
+
const inst = this.host.current?.(p.plugin);
|
|
272
|
+
const schema = inst?.manifest.config?.deployment;
|
|
273
|
+
if (orgId === undefined) {
|
|
274
|
+
if (schema && missingOverridable(schema, inst?.config).length > 0) {
|
|
275
|
+
return { ok: false, reason: "org_configured" };
|
|
276
|
+
}
|
|
277
|
+
return { ok: true, call: { config: inst?.config }, hash: p.configHash };
|
|
152
278
|
}
|
|
279
|
+
if (off.has(p.plugin))
|
|
280
|
+
return { ok: false, reason: "switched_off" };
|
|
281
|
+
const eff = await this.effective.get(orgId, p.plugin);
|
|
282
|
+
if (!eff.ok)
|
|
283
|
+
return { ok: false, reason: "needs_config" };
|
|
284
|
+
// an `@1` provider ignores the per-call options (it reads `ctx.config`): the org's own copy
|
|
285
|
+
// could not be honoured, its calls would go out with the platform's config
|
|
286
|
+
if (eff.source === "copy" && p.major === 1)
|
|
287
|
+
return { ok: false, reason: "needs_config" };
|
|
288
|
+
return {
|
|
289
|
+
ok: true,
|
|
290
|
+
call: { orgId, config: eff.config },
|
|
291
|
+
hash: eff.source === "platform" ? p.configHash : copyHash(orgId, schema, eff.config),
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
models(p, t) {
|
|
295
|
+
return this.validatedModels(modelsKey(p, t.hash), p, t.call, t.hash);
|
|
296
|
+
}
|
|
297
|
+
/** The provider's validated model list, cached under `key` (see {@link modelsKey}). */
|
|
298
|
+
async validatedModels(_key, p, call, hash) {
|
|
299
|
+
const { plugin: provider, impl } = p;
|
|
153
300
|
let models;
|
|
154
301
|
try {
|
|
155
|
-
models = await this.listModelsWithTimeout(impl);
|
|
302
|
+
models = await this.listModelsWithTimeout(impl, call);
|
|
156
303
|
}
|
|
157
304
|
catch (err) {
|
|
158
305
|
throw new ProviderListError(provider, err);
|
|
159
306
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
307
|
+
const out = [];
|
|
308
|
+
for (const m of models) {
|
|
309
|
+
const kind = m.kind === undefined ? "chat" : KNOWN_KINDS.has(m.kind) ? m.kind : "other";
|
|
310
|
+
let problem;
|
|
311
|
+
let cause;
|
|
312
|
+
if (kind === "chat") {
|
|
313
|
+
try {
|
|
163
314
|
assertValidDeclarations(provider, m.parameters);
|
|
315
|
+
}
|
|
316
|
+
catch (err) {
|
|
317
|
+
problem = "invalid parameter declarations";
|
|
318
|
+
cause = err;
|
|
319
|
+
}
|
|
164
320
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
321
|
+
else if (kind === "embedding") {
|
|
322
|
+
if (!m.embedding)
|
|
323
|
+
problem = "an embedding model without embedding info";
|
|
324
|
+
else if (!isValidEmbeddingInfo(m.embedding))
|
|
325
|
+
problem = "malformed embedding info";
|
|
326
|
+
else if (typeof impl.embed !== "function") {
|
|
327
|
+
problem = "an embedding model from a provider without embed";
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (problem !== undefined) {
|
|
331
|
+
await this.warnDropped(provider, m.id, hash, problem, cause);
|
|
332
|
+
continue;
|
|
169
333
|
}
|
|
334
|
+
out.push({ ...m, kind });
|
|
170
335
|
}
|
|
171
|
-
|
|
172
|
-
|
|
336
|
+
return out;
|
|
337
|
+
}
|
|
338
|
+
/** One warn per (provider, model, config digest) within {@link DROPPED_WARN_TTL_SECONDS}. */
|
|
339
|
+
async warnDropped(provider, model, hash, problem, cause) {
|
|
340
|
+
const key = droppedKey(provider, hash, model);
|
|
341
|
+
if ((await this.kv.get(key)) !== null)
|
|
342
|
+
return;
|
|
343
|
+
await this.kv.set(key, "1", "EX", DROPPED_WARN_TTL_SECONDS);
|
|
344
|
+
this.log?.warn("model dropped from the provider's list", {
|
|
345
|
+
provider,
|
|
346
|
+
model,
|
|
347
|
+
problem,
|
|
348
|
+
...(cause !== undefined && { err: cause }),
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* 每个供应商及其模型(按插件加载顺序),for `orgId`:列模型失败或在该组织需要配置的供应商跳过。Only
|
|
353
|
+
* enabled models (neither the platform nor the org disabled them, spec B §5.3), optionally of
|
|
354
|
+
* one `kind`.
|
|
355
|
+
*/
|
|
356
|
+
async list(orgId, opts = {}) {
|
|
357
|
+
return (await this.listWithStatus(orgId)).flatMap((p) => p.status === "ok"
|
|
358
|
+
? [
|
|
359
|
+
{
|
|
360
|
+
provider: p.provider,
|
|
361
|
+
models: opts.kind === undefined ? p.models : p.models.filter((m) => m.kind === opts.kind),
|
|
362
|
+
},
|
|
363
|
+
]
|
|
364
|
+
: []);
|
|
173
365
|
}
|
|
174
|
-
/**
|
|
175
|
-
|
|
176
|
-
|
|
366
|
+
/**
|
|
367
|
+
* An org's catalog (the org settings page, spec B §5.3): every provider as in
|
|
368
|
+
* {@link listWithStatus} for the org, with every model the platform left on, each carrying
|
|
369
|
+
* `disabled` for the org's own list. Reads the same cached lists (no extra provider call).
|
|
370
|
+
*/
|
|
371
|
+
async catalog(orgId) {
|
|
372
|
+
const [statuses, platform, org] = await Promise.all([
|
|
373
|
+
this.statuses(orgId),
|
|
374
|
+
this.enablement.disabled(null),
|
|
375
|
+
this.enablement.disabled(orgId),
|
|
376
|
+
]);
|
|
377
|
+
return statuses.map((p) => ({
|
|
378
|
+
...p,
|
|
379
|
+
models: p.models
|
|
380
|
+
.filter((m) => !platform.has(modelKey(p.provider, m.id)))
|
|
381
|
+
.map((m) => ({ ...m, disabled: org.has(modelKey(p.provider, m.id)) })),
|
|
382
|
+
}));
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* 每个已安装供应商及其状态(按插件加载顺序),for `orgId` (enabled models only), or the platform
|
|
386
|
+
* view when undefined (`/admin/models`: every model, `disabled` from the platform's list only).
|
|
387
|
+
* See {@link statuses} for the statuses.
|
|
388
|
+
*/
|
|
389
|
+
async listWithStatus(orgId) {
|
|
390
|
+
const [statuses, platform, org] = await Promise.all([
|
|
391
|
+
this.statuses(orgId),
|
|
392
|
+
this.enablement.disabled(null),
|
|
393
|
+
orgId === undefined ? Promise.resolve(new Set()) : this.enablement.disabled(orgId),
|
|
394
|
+
]);
|
|
395
|
+
return statuses.map((p) => ({
|
|
396
|
+
...p,
|
|
397
|
+
models: orgId === undefined
|
|
398
|
+
? p.models.map((m) => ({ ...m, disabled: platform.has(modelKey(p.provider, m.id)) }))
|
|
399
|
+
: p.models.filter((m) => {
|
|
400
|
+
const key = modelKey(p.provider, m.id);
|
|
401
|
+
return !platform.has(key) && !org.has(key);
|
|
402
|
+
}),
|
|
403
|
+
}));
|
|
177
404
|
}
|
|
178
405
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
406
|
+
* 每个已安装供应商的完整列表与状态,for `orgId` or the platform: 列模型失败(含超过
|
|
407
|
+
* `models.listTimeoutMs`)的标 `error`、`models` 为空,不影响其他供应商;列模型失败的在
|
|
408
|
+
* {@link LIST_FAILURE_TTL_SECONDS} 秒内不再请求。An org where the provider needs configuration gets
|
|
409
|
+
* `error`; the platform view of a provider whose platform config leaves a required overridable
|
|
410
|
+
* field empty gets `org_configured`. `error` 只是内核自己的英文说明(不透出上游错误原文,原文记 warn
|
|
411
|
+
* 日志)。No disabled list applied.
|
|
181
412
|
*/
|
|
182
|
-
async
|
|
413
|
+
async statuses(orgId) {
|
|
183
414
|
const providers = this.providers();
|
|
415
|
+
const off = orgId === undefined ? new Set() : await this.enablement.switchedOff(orgId);
|
|
184
416
|
const settled = await Promise.allSettled(providers.map(async (p) => {
|
|
417
|
+
const t = await this.target(p, orgId, off);
|
|
418
|
+
if (!t.ok)
|
|
419
|
+
return t.reason;
|
|
420
|
+
const failed = listFailedKey(p, t.hash);
|
|
185
421
|
// 刚失败过的供应商:短时间内直接标 error,不再等它(每个供应商另有时限)
|
|
186
|
-
if ((await this.kv.get(
|
|
422
|
+
if ((await this.kv.get(failed)) !== null) {
|
|
187
423
|
throw new ProviderListError(p.plugin, new Error("listModels failed recently"));
|
|
188
424
|
}
|
|
189
425
|
try {
|
|
190
|
-
return await this.models(p);
|
|
426
|
+
return await this.models(p, t);
|
|
191
427
|
}
|
|
192
428
|
catch (err) {
|
|
193
429
|
if (err instanceof ProviderListError) {
|
|
194
|
-
await this.kv.set(
|
|
430
|
+
await this.kv.set(failed, "1", "EX", LIST_FAILURE_TTL_SECONDS);
|
|
195
431
|
}
|
|
196
432
|
throw err;
|
|
197
433
|
}
|
|
@@ -199,6 +435,17 @@ export class ProviderRegistry {
|
|
|
199
435
|
return settled.map((r, i) => {
|
|
200
436
|
const provider = providers[i].plugin;
|
|
201
437
|
if (r.status === "fulfilled") {
|
|
438
|
+
if (r.value === "org_configured") {
|
|
439
|
+
return { provider, plugin: provider, status: "org_configured", models: [] };
|
|
440
|
+
}
|
|
441
|
+
if (r.value === "needs_config") {
|
|
442
|
+
const error = `Model provider ${provider} needs configuration in this organization`;
|
|
443
|
+
return { provider, plugin: provider, status: "error", error, models: [] };
|
|
444
|
+
}
|
|
445
|
+
if (r.value === "switched_off") {
|
|
446
|
+
const error = `Model provider ${provider} is turned off in this organization`;
|
|
447
|
+
return { provider, plugin: provider, status: "error", error, models: [] };
|
|
448
|
+
}
|
|
202
449
|
return { provider, plugin: provider, status: "ok", models: r.value };
|
|
203
450
|
}
|
|
204
451
|
this.log?.warn("model provider listModels failed; skipped", { provider, err: r.reason });
|
|
@@ -209,16 +456,79 @@ export class ProviderRegistry {
|
|
|
209
456
|
});
|
|
210
457
|
}
|
|
211
458
|
/**
|
|
212
|
-
*
|
|
213
|
-
*
|
|
459
|
+
* 解析模型引用 for `orgId`,返回绑定到该组织调用选项的供应商与模型信息。
|
|
460
|
+
* 供应商未安装、在该组织需要配置、模型不存在(或被丢弃)、不是 `opts.kind`(default `chat`: a
|
|
461
|
+
* streaming caller never gets an embedding model)或被平台 / 该组织停用 → `agent.model_unavailable`;
|
|
214
462
|
* 供应商 `listModels()` 失败 → `ProviderListError`(同一错误码,运行时视为可重试)。
|
|
215
463
|
*/
|
|
216
|
-
async resolve(ref) {
|
|
464
|
+
async resolve(orgId, ref, opts = {}) {
|
|
465
|
+
const { p, t, info } = await this.lookup(orgId, ref, opts.kind ?? "chat");
|
|
466
|
+
return { provider: bindProvider(p.impl, t.call), info };
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* The model's info in the platform view (deployment-level settings such as a purpose's
|
|
470
|
+
* deployment default; no call is ever made there), by {@link resolve}'s rules. A provider each
|
|
471
|
+
* org configures itself has no platform list: `agent.model_unavailable`. Only the platform's
|
|
472
|
+
* disabled list applies.
|
|
473
|
+
*/
|
|
474
|
+
async platformInfo(ref, opts = {}) {
|
|
475
|
+
return (await this.lookup(undefined, ref, opts.kind ?? "chat")).info;
|
|
476
|
+
}
|
|
477
|
+
async lookup(orgId, ref, kind) {
|
|
478
|
+
const unavailable = () => new ApiError("agent.model_unavailable", `Model ${ref.provider}/${ref.model} is not available`);
|
|
217
479
|
const p = this.providers().find((x) => x.plugin === ref.provider);
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
480
|
+
if (!p)
|
|
481
|
+
throw unavailable();
|
|
482
|
+
const off = orgId === undefined ? new Set() : await this.enablement.switchedOff(orgId);
|
|
483
|
+
const t = await this.target(p, orgId, off);
|
|
484
|
+
if (!t.ok) {
|
|
485
|
+
throw new ApiError("agent.model_unavailable", t.reason === "org_configured"
|
|
486
|
+
? `Model provider ${ref.provider} is configured by each organization`
|
|
487
|
+
: t.reason === "switched_off"
|
|
488
|
+
? `Model provider ${ref.provider} is turned off in this organization`
|
|
489
|
+
: `Model provider ${ref.provider} needs configuration in this organization`);
|
|
490
|
+
}
|
|
491
|
+
const info = (await this.models(p, t)).find((m) => m.id === ref.model);
|
|
492
|
+
if (!info || (info.kind !== "chat" && info.kind !== "embedding"))
|
|
493
|
+
throw unavailable();
|
|
494
|
+
if (kind !== "callable" && info.kind !== kind) {
|
|
495
|
+
throw new ApiError("agent.model_unavailable", `Model ${ref.provider}/${ref.model} is not ${kind === "embedding" ? "an" : "a"} ${kind} model`);
|
|
496
|
+
}
|
|
497
|
+
const key = modelKey(ref.provider, ref.model);
|
|
498
|
+
const [platform, org] = await Promise.all([
|
|
499
|
+
this.enablement.disabled(null),
|
|
500
|
+
orgId === undefined ? Promise.resolve(new Set()) : this.enablement.disabled(orgId),
|
|
501
|
+
]);
|
|
502
|
+
if (platform.has(key) || org.has(key)) {
|
|
503
|
+
throw new ApiError("agent.model_unavailable", `Model ${ref.provider}/${ref.model} is disabled`);
|
|
221
504
|
}
|
|
222
|
-
return {
|
|
505
|
+
return { p, t, info: info };
|
|
223
506
|
}
|
|
224
|
-
}
|
|
507
|
+
};
|
|
508
|
+
__decorate([
|
|
509
|
+
Cacheable({ key: "#{0}", ttl: MODELS_TTL_SECONDS })
|
|
510
|
+
], ProviderRegistry.prototype, "validatedModels", null);
|
|
511
|
+
ProviderRegistry = __decorate([
|
|
512
|
+
Injectable(),
|
|
513
|
+
__param(0, Inject(ExtensionRegistry)),
|
|
514
|
+
__param(1, Inject(EffectiveConfigs)),
|
|
515
|
+
__param(2, Inject(CacheService)),
|
|
516
|
+
__param(3, Inject(REDIS)),
|
|
517
|
+
__param(4, Inject(KernelConfigService)),
|
|
518
|
+
__param(5, Inject(ModelEnablement)),
|
|
519
|
+
__param(6, Inject(KERNEL_LOGGER)),
|
|
520
|
+
__param(7, Optional()),
|
|
521
|
+
__param(7, Inject(LIST_MODELS_TIMEOUT))
|
|
522
|
+
], ProviderRegistry);
|
|
523
|
+
export { ProviderRegistry };
|
|
524
|
+
/** The model provider registry (one instance; the models and agents domains read it). */
|
|
525
|
+
let ProvidersModule = class ProvidersModule {
|
|
526
|
+
};
|
|
527
|
+
ProvidersModule = __decorate([
|
|
528
|
+
Module({
|
|
529
|
+
imports: [ExtensionStateModule, ModelEnablementModule],
|
|
530
|
+
providers: [ProviderRegistry],
|
|
531
|
+
exports: [ProviderRegistry],
|
|
532
|
+
})
|
|
533
|
+
], ProvidersModule);
|
|
534
|
+
export { ProvidersModule };
|
package/dist/runtime/quota.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Redis } from "ioredis";
|
|
2
|
-
import type { KernelConfig } from "../config/schema.js";
|
|
3
2
|
import type { SettingsService } from "../identity/settings.js";
|
|
3
|
+
import type { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
4
|
+
import type { LeaseHandle, LockService } from "../infra/lock/lock.service.js";
|
|
4
5
|
/** 组织配额租约的默认时长(毫秒):持有方每 `leaseMs / 3` 续租一次。 */
|
|
5
6
|
export declare const ORG_QUOTA_LEASE_MS = 60000;
|
|
6
7
|
/** 运行配额的键前缀(`capk:org-runs:<orgId>`);评测运行用 {@link EVAL_QUOTA_PREFIX}。 */
|
|
@@ -11,19 +12,32 @@ export declare const EVAL_QUOTA_PREFIX = "capk:org-evals:";
|
|
|
11
12
|
* 组织级运行并发配额(spec 4.3):Redis ZSET `<keyPrefix><orgId>`(默认 `capk:org-runs:<orgId>`),
|
|
12
13
|
* 成员 runId(评测为 jobId)、分数为租约到期时间。
|
|
13
14
|
* 持有方崩溃时不 `leave`,成员在租约到期后被下一次 `tryEnter` 清理,名额不泄漏。
|
|
15
|
+
* One instance per key prefix, provided under {@link RUN_QUOTA} / {@link EVAL_QUOTA}.
|
|
14
16
|
*/
|
|
15
17
|
export declare class OrgQuota {
|
|
16
18
|
private readonly redis;
|
|
17
19
|
private readonly keyPrefix;
|
|
18
|
-
|
|
20
|
+
private readonly locks?;
|
|
21
|
+
constructor(redis: Redis, keyPrefix?: string, locks?: LockService | undefined);
|
|
19
22
|
private key;
|
|
20
23
|
tryEnter(orgId: string, runId: string, limit: number, leaseMs?: number): Promise<boolean>;
|
|
21
24
|
/** 续期;成员已过期被清理 → false。 */
|
|
22
25
|
renew(orgId: string, runId: string, leaseMs?: number): Promise<boolean>;
|
|
23
26
|
leave(orgId: string, runId: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Takes a slot ({@link tryEnter}) and keeps it while held: renewed every `leaseMs / 3` by the
|
|
29
|
+
* lock service's watchdog; `release()` leaves. Undefined when the organization is at its limit.
|
|
30
|
+
* A slot that could not be renewed (it expired meanwhile) aborts `lost` with one WARN; the
|
|
31
|
+
* holder may go on (the slot is a fair-share limit, not mutual exclusion).
|
|
32
|
+
*/
|
|
33
|
+
enter(orgId: string, runId: string, limit: number, leaseMs?: number): Promise<LeaseHandle | undefined>;
|
|
24
34
|
}
|
|
35
|
+
/** The organization run quota (`capk:org-runs:<orgId>`). */
|
|
36
|
+
export declare const RUN_QUOTA: unique symbol;
|
|
37
|
+
/** The organization eval quota (`capk:org-evals:<orgId>`). */
|
|
38
|
+
export declare const EVAL_QUOTA: unique symbol;
|
|
25
39
|
/**
|
|
26
40
|
* 组织的运行并发上限:部署设置 `runConcurrencyOverrides[orgId]`,没有则用 `runtime.orgConcurrency`
|
|
27
41
|
* (热更新字段,每次经 `config()` 读当前值)。
|
|
28
42
|
*/
|
|
29
|
-
export declare function orgRunLimit(settings: Pick<SettingsService, "get">, config:
|
|
43
|
+
export declare function orgRunLimit(settings: Pick<SettingsService, "get">, config: Pick<KernelConfigService, "get">, orgId: string): Promise<number>;
|
package/dist/runtime/quota.js
CHANGED
|
@@ -38,13 +38,16 @@ return 0
|
|
|
38
38
|
* 组织级运行并发配额(spec 4.3):Redis ZSET `<keyPrefix><orgId>`(默认 `capk:org-runs:<orgId>`),
|
|
39
39
|
* 成员 runId(评测为 jobId)、分数为租约到期时间。
|
|
40
40
|
* 持有方崩溃时不 `leave`,成员在租约到期后被下一次 `tryEnter` 清理,名额不泄漏。
|
|
41
|
+
* One instance per key prefix, provided under {@link RUN_QUOTA} / {@link EVAL_QUOTA}.
|
|
41
42
|
*/
|
|
42
43
|
export class OrgQuota {
|
|
43
44
|
redis;
|
|
44
45
|
keyPrefix;
|
|
45
|
-
|
|
46
|
+
locks;
|
|
47
|
+
constructor(redis, keyPrefix = RUN_QUOTA_PREFIX, locks) {
|
|
46
48
|
this.redis = redis;
|
|
47
49
|
this.keyPrefix = keyPrefix;
|
|
50
|
+
this.locks = locks;
|
|
48
51
|
}
|
|
49
52
|
key(orgId) {
|
|
50
53
|
return `${this.keyPrefix}${orgId}`;
|
|
@@ -59,12 +62,34 @@ export class OrgQuota {
|
|
|
59
62
|
async leave(orgId, runId) {
|
|
60
63
|
await this.redis.zrem(this.key(orgId), runId);
|
|
61
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Takes a slot ({@link tryEnter}) and keeps it while held: renewed every `leaseMs / 3` by the
|
|
67
|
+
* lock service's watchdog; `release()` leaves. Undefined when the organization is at its limit.
|
|
68
|
+
* A slot that could not be renewed (it expired meanwhile) aborts `lost` with one WARN; the
|
|
69
|
+
* holder may go on (the slot is a fair-share limit, not mutual exclusion).
|
|
70
|
+
*/
|
|
71
|
+
async enter(orgId, runId, limit, leaseMs = ORG_QUOTA_LEASE_MS) {
|
|
72
|
+
const locks = this.locks;
|
|
73
|
+
if (!locks)
|
|
74
|
+
throw new Error("OrgQuota.enter needs the lock service");
|
|
75
|
+
const sentAt = Date.now();
|
|
76
|
+
if (!(await this.tryEnter(orgId, runId, limit, leaseMs)))
|
|
77
|
+
return undefined;
|
|
78
|
+
return locks.keepAlive(`${this.key(orgId)}/${runId}`, leaseMs, {
|
|
79
|
+
renew: () => this.renew(orgId, runId, leaseMs),
|
|
80
|
+
release: () => this.leave(orgId, runId),
|
|
81
|
+
}, sentAt);
|
|
82
|
+
}
|
|
62
83
|
}
|
|
84
|
+
/** The organization run quota (`capk:org-runs:<orgId>`). */
|
|
85
|
+
export const RUN_QUOTA = Symbol("RUN_QUOTA");
|
|
86
|
+
/** The organization eval quota (`capk:org-evals:<orgId>`). */
|
|
87
|
+
export const EVAL_QUOTA = Symbol("EVAL_QUOTA");
|
|
63
88
|
/**
|
|
64
89
|
* 组织的运行并发上限:部署设置 `runConcurrencyOverrides[orgId]`,没有则用 `runtime.orgConcurrency`
|
|
65
90
|
* (热更新字段,每次经 `config()` 读当前值)。
|
|
66
91
|
*/
|
|
67
92
|
export async function orgRunLimit(settings, config, orgId) {
|
|
68
93
|
const { runConcurrencyOverrides } = await settings.get();
|
|
69
|
-
return runConcurrencyOverrides[orgId] ?? config().runtime.orgConcurrency;
|
|
94
|
+
return runConcurrencyOverrides[orgId] ?? config.get().runtime.orgConcurrency;
|
|
70
95
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Job scheduler ids of the maintenance queue's fixed-period jobs before they became `@LockedCron` /
|
|
3
|
+
* `@LockedInterval` jobs: an upgraded deployment still has them in Redis, so a starting worker
|
|
4
|
+
* role removes them (else BullMQ keeps firing a job no handler knows). Each id
|
|
5
|
+
* comes from its domain's leaf `job-ids.ts`, so this module imports no domain code.
|
|
6
|
+
*/
|
|
7
|
+
export declare const RETIRED_SCHEDULER_IDS: readonly string[];
|