@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.20
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-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- 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 +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- 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 +876 -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 +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -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 +109 -0
- package/dist/background/tasks.service.js +271 -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 +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -1
- 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 +102 -0
- package/dist/catalog/component-scope.controller.js +257 -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 +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -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 +30 -0
- package/dist/catalog/job-ids.js +25 -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 +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- 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 +133 -0
- package/dist/catalog/org-extension.controller.js +313 -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 +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -343
- 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.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -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 +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +41 -5
- package/dist/extensions/bootstrap.js +121 -19
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- 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 +6 -0
- package/dist/extensions/deployment-config.d.ts +94 -9
- package/dist/extensions/deployment-config.js +255 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- 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 +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -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 +1 -1
- package/dist/extensions/registry.js +2 -0
- 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 +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- 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 +77 -31
- package/dist/identity/accounts.js +133 -52
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- 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 +17 -1
- package/dist/identity/me.controller.js +45 -4
- 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 +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- package/dist/inbox/inbox.service.js +74 -4
- 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 +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -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/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
- package/dist/lifecycle/kernel-lifecycle.js +35 -7
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -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 +5 -1
- package/dist/models/models.module.js +16 -4
- 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 +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -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 +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -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 +774 -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 +102 -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-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -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 +730 -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 +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -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 +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.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 +381 -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 +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -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 +298 -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/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -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/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -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 +43 -0
- package/dist/platform/platform-ops.module.js +142 -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 +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +21 -1
- 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/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-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/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- 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 +11 -1
- package/dist/runtime/run-control.js +12 -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 +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.js +2 -1
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- 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 +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- 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 +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- 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 +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -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 +33 -0
- package/dist/themes/themes-public.controller.js +98 -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/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -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 +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- 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 +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- 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 +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- 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 +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- 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 +29 -19
- 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 +51 -44
- 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 +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- 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/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- 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 +61 -4
- package/dist/tools/info.js +119 -33
- 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 +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -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/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -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 {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Controller, Inject, Patch } from "@nestjs/common";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
13
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
14
|
+
import { ZBody, ZParam } from "../infra/validation/zod-params.js";
|
|
15
|
+
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
16
|
+
import { ModelEnablement } from "./enablement.js";
|
|
17
|
+
/** `:provider` of a disabled-list route. */
|
|
18
|
+
export const ModelProviderParams = z.object({ provider: z.string().min(1).max(200) });
|
|
19
|
+
export class ModelProviderParamsDto extends createZodDto(ModelProviderParams, "ModelProviderParams") {
|
|
20
|
+
}
|
|
21
|
+
const modelIds = z.array(z.string().min(1).max(200)).max(5000).default([]);
|
|
22
|
+
/**
|
|
23
|
+
* The body of a disabled-list PATCH: the model ids of the provider to disable and to enable. An id
|
|
24
|
+
* in neither list keeps its stored state (a page never drops ids it does not show); an id in both
|
|
25
|
+
* is a 400 `validation_failed`.
|
|
26
|
+
*/
|
|
27
|
+
export const ModelDisabledPatch = z
|
|
28
|
+
.object({ disable: modelIds, enable: modelIds })
|
|
29
|
+
.strict()
|
|
30
|
+
.superRefine((v, ctx) => {
|
|
31
|
+
const disable = new Set(v.disable);
|
|
32
|
+
const both = [...new Set(v.enable.filter((m) => disable.has(m)))];
|
|
33
|
+
if (both.length > 0) {
|
|
34
|
+
ctx.addIssue({
|
|
35
|
+
code: "custom",
|
|
36
|
+
path: ["enable"],
|
|
37
|
+
message: `A model cannot be both disabled and enabled: ${both.join(", ")}`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
export class ModelDisabledPatchDto extends createZodDto(ModelDisabledPatch, "ModelDisabledPatch") {
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The org's disabled models of one provider (`PATCH /api/v1/orgs/:orgId/models/:provider/disabled`,
|
|
45
|
+
* spec B §5.3): `org.models.manage`, people only. Disables and enables the ids the body names; the
|
|
46
|
+
* response lists the org's agents and purposes that now point at a newly disabled model (the
|
|
47
|
+
* disable is not refused for them).
|
|
48
|
+
*/
|
|
49
|
+
let ModelEnablementController = class ModelEnablementController {
|
|
50
|
+
enablement;
|
|
51
|
+
constructor(enablement) {
|
|
52
|
+
this.enablement = enablement;
|
|
53
|
+
}
|
|
54
|
+
async patch(principal, org, params, body) {
|
|
55
|
+
const p = requireUser(principal);
|
|
56
|
+
return this.enablement.setOrg(org.orgId, params.provider, body, {
|
|
57
|
+
accountId: p.account.id,
|
|
58
|
+
tokenId: patTokenId(p),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
__decorate([
|
|
63
|
+
Patch(":provider/disabled"),
|
|
64
|
+
OrgAction("org.models.manage"),
|
|
65
|
+
__param(0, CurrentPrincipal()),
|
|
66
|
+
__param(1, CurrentOrg()),
|
|
67
|
+
__param(2, ZParam(ModelProviderParamsDto)),
|
|
68
|
+
__param(3, ZBody(ModelDisabledPatchDto))
|
|
69
|
+
], ModelEnablementController.prototype, "patch", null);
|
|
70
|
+
ModelEnablementController = __decorate([
|
|
71
|
+
Controller("api/v1/orgs/:orgId/models"),
|
|
72
|
+
__param(0, Inject(ModelEnablement))
|
|
73
|
+
], ModelEnablementController);
|
|
74
|
+
export { ModelEnablementController };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
2
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
3
|
+
import { CacheService } from "../infra/cache/cache.service.js";
|
|
4
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
6
|
+
import { OrgLock } from "../orgs/org-lock.js";
|
|
7
|
+
/** The key of a model in a disabled set: `provider\u0000model`. */
|
|
8
|
+
export declare const modelKey: (provider: string, model: string) => string;
|
|
9
|
+
/** An agent whose current version uses a newly disabled model as its main model or fallback. */
|
|
10
|
+
export interface AffectedModelAgent {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
orgId: string;
|
|
14
|
+
}
|
|
15
|
+
/** A purpose mapping targeting a newly disabled model: a deployment default (`orgId` null) or an org override. */
|
|
16
|
+
export interface AffectedModelPurpose {
|
|
17
|
+
purpose: string;
|
|
18
|
+
orgId: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** The result of a disabled-list write: what now points at a model it disabled (spec B §5.3). */
|
|
21
|
+
export interface ModelDisableResult {
|
|
22
|
+
affected: {
|
|
23
|
+
agents: AffectedModelAgent[];
|
|
24
|
+
purposes: AffectedModelPurpose[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A change to one layer's disabled list of a provider: ids to disable and ids to enable. An id in
|
|
29
|
+
* neither list keeps its stored state; an id in both is refused.
|
|
30
|
+
*/
|
|
31
|
+
export interface ModelDisableChange {
|
|
32
|
+
disable: string[];
|
|
33
|
+
enable: string[];
|
|
34
|
+
}
|
|
35
|
+
/** The acting person of a write. */
|
|
36
|
+
export interface ModelDisableActor {
|
|
37
|
+
accountId: string;
|
|
38
|
+
tokenId?: string | undefined;
|
|
39
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
40
|
+
auditDetail?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Models disabled on two layers (spec B §5.3, table `model_disabled`): the platform's list (the
|
|
44
|
+
* super admin; such a model is invisible to every org) and each org's (an org admin). Every model a
|
|
45
|
+
* provider lists is enabled unless a layer disabled it; a row keys on the model id, so it applies to
|
|
46
|
+
* whichever list the org sees, and an id the list does not contain is kept harmlessly. Disabling
|
|
47
|
+
* never creates an org config copy.
|
|
48
|
+
*
|
|
49
|
+
* The lists are read from PG and cached in Redis (`@Cacheable`, evicted after the commit of each
|
|
50
|
+
* write), never in process memory. `ProviderRegistry` filters its lists and `resolve` with them;
|
|
51
|
+
* purposes check their targets with {@link isEnabled}.
|
|
52
|
+
*/
|
|
53
|
+
export declare class ModelEnablement {
|
|
54
|
+
private readonly kdb;
|
|
55
|
+
readonly txHost: TransactionHost;
|
|
56
|
+
readonly cacheService: CacheService;
|
|
57
|
+
private readonly extensions;
|
|
58
|
+
private readonly adminLock;
|
|
59
|
+
private readonly orgLock;
|
|
60
|
+
constructor(kdb: KernelDb, txHost: TransactionHost, cacheService: CacheService, extensions: Pick<ExtensionRegistry, "list">, adminLock: Pick<SuperAdminLock, "lockAndAuthorize">, orgLock: Pick<OrgLock, "lockAndAuthorize">);
|
|
61
|
+
private get db();
|
|
62
|
+
/** One layer's disabled models (keys {@link modelKey}): the platform's (`null`) or the org's own. */
|
|
63
|
+
disabled(orgId: string | null): Promise<Set<string>>;
|
|
64
|
+
private disabledKeys;
|
|
65
|
+
private rowsOf;
|
|
66
|
+
/**
|
|
67
|
+
* The extensions `orgId` explicitly turned off: a row of the org's own switch
|
|
68
|
+
* (`extension_org_configs.enabled = false`, what the org's extension or plugin switch writes when
|
|
69
|
+
* an org admin turns it off), never a required bootstrap plugin. An extension with no row for the
|
|
70
|
+
* org is not in the set (it keeps working as before: spec A §8 with B's no-breakage anti-goal).
|
|
71
|
+
* Read from PG on every call (one small query; the switch has its own writers, nothing to evict).
|
|
72
|
+
*/
|
|
73
|
+
switchedOff(orgId: string): Promise<Set<string>>;
|
|
74
|
+
/** Whether neither the platform nor `orgId` disabled the model (the lists only; see the class). */
|
|
75
|
+
isEnabled(orgId: string, provider: string, model: string): Promise<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Changes the platform's disabled ids of `provider` by `change` (super admin, re-checked under
|
|
78
|
+
* the lock): ids in neither list keep their stored state. Returns what now points at a newly
|
|
79
|
+
* disabled model, across orgs.
|
|
80
|
+
*/
|
|
81
|
+
setPlatform(provider: string, change: ModelDisableChange, actor: ModelDisableActor): Promise<ModelDisableResult>;
|
|
82
|
+
/**
|
|
83
|
+
* Changes the org's disabled ids of `provider` by `change` (`org.models.manage`, re-checked under
|
|
84
|
+
* the org lock): ids in neither list keep their stored state, so rows for models the org's page
|
|
85
|
+
* does not show (platform-disabled, or no longer listed) survive. Returns what in the org now
|
|
86
|
+
* points at a newly disabled model (its agents, its overrides and the deployment defaults it uses).
|
|
87
|
+
*/
|
|
88
|
+
setOrg(orgId: string, provider: string, change: ModelDisableChange, actor: ModelDisableActor): Promise<ModelDisableResult>;
|
|
89
|
+
private apply;
|
|
90
|
+
/** Live agents (of `orgId`, or of every org) whose current version uses one of `models`. */
|
|
91
|
+
private agentsUsing;
|
|
92
|
+
/**
|
|
93
|
+
* Purpose mappings targeting one of `models`: for the platform every default and override, for
|
|
94
|
+
* an org its overrides and the deployment defaults (an org that disabled a default's model has
|
|
95
|
+
* that purpose unconfigured).
|
|
96
|
+
*/
|
|
97
|
+
private purposesUsing;
|
|
98
|
+
}
|
|
99
|
+
/** The one {@link ModelEnablement}: the provider registry, purposes and the controllers read it. */
|
|
100
|
+
export declare class ModelEnablementModule {
|
|
101
|
+
}
|