@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6
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 +61 -5
- package/dist/admin/admin.controller.d.ts +51 -14
- package/dist/admin/admin.controller.js +60 -19
- package/dist/admin/extensions.controller.d.ts +16 -2
- package/dist/admin/extensions.controller.js +26 -6
- 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/agents/agent-lookup.d.ts +16 -0
- package/dist/agents/agent-lookup.js +11 -0
- package/dist/agents/agents.controller.d.ts +76 -1
- package/dist/agents/agents.controller.js +90 -11
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +32 -6
- package/dist/agents/agents.service.d.ts +54 -23
- package/dist/agents/agents.service.js +180 -76
- package/dist/agents/definition.d.ts +49 -0
- package/dist/agents/definition.js +45 -0
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +649 -0
- package/dist/agents/from-template.service.d.ts +60 -0
- package/dist/agents/from-template.service.js +161 -0
- package/dist/agents/models.controller.d.ts +34 -5
- package/dist/agents/models.controller.js +50 -6
- package/dist/agents/org-templates.d.ts +176 -0
- package/dist/agents/org-templates.js +827 -0
- package/dist/agents/pending-connector-requests.d.ts +77 -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/readiness.controller.d.ts +5 -5
- package/dist/agents/readiness.controller.js +6 -6
- package/dist/agents/templates.controller.d.ts +86 -5
- package/dist/agents/templates.controller.js +171 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +475 -52
- package/dist/background/background.module.js +8 -1
- package/dist/background/finish.d.ts +3 -2
- package/dist/background/launch-lock.d.ts +4 -3
- package/dist/background/launch-lock.js +4 -3
- package/dist/background/poll.job.d.ts +9 -6
- package/dist/background/poll.job.js +30 -22
- package/dist/background/session.d.ts +13 -2
- package/dist/background/session.js +13 -0
- package/dist/background/stop.d.ts +12 -6
- package/dist/background/stop.js +57 -39
- package/dist/background/store.d.ts +18 -6
- package/dist/background/store.js +12 -6
- package/dist/background/tasks.service.d.ts +15 -5
- package/dist/background/tasks.service.js +42 -17
- package/dist/background/wake-rules.d.ts +27 -18
- package/dist/background/wake-rules.js +52 -22
- package/dist/background/wake.d.ts +13 -11
- package/dist/background/wake.js +20 -14
- package/dist/catalog/admin-catalog.controller.d.ts +129 -30
- package/dist/catalog/admin-catalog.controller.js +213 -42
- package/dist/catalog/catalog-content.d.ts +58 -32
- package/dist/catalog/catalog-content.js +34 -8
- 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 +111 -7
- package/dist/catalog/catalog-items.js +279 -13
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1116 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +41 -31
- package/dist/catalog/catalog.service.d.ts +101 -29
- package/dist/catalog/catalog.service.js +104 -106
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +26 -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 +152 -0
- package/dist/catalog/component-scope.controller.js +287 -0
- package/dist/catalog/component-scope.service.d.ts +303 -0
- package/dist/catalog/component-scope.service.js +936 -0
- package/dist/catalog/component-state.d.ts +174 -0
- package/dist/catalog/component-state.js +437 -0
- 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/marketplaces.controller.d.ts +22 -5
- package/dist/catalog/marketplaces.controller.js +56 -7
- package/dist/catalog/marketplaces.service.d.ts +54 -14
- package/dist/catalog/marketplaces.service.js +71 -22
- package/dist/catalog/org-catalog.controller.d.ts +125 -34
- package/dist/catalog/org-catalog.controller.js +181 -65
- package/dist/catalog/org-catalog.service.d.ts +65 -33
- package/dist/catalog/org-catalog.service.js +324 -157
- 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 +119 -0
- package/dist/catalog/org-extension.controller.js +266 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
- package/dist/catalog/org-plugin-uploads.controller.js +213 -0
- package/dist/catalog/org-plugin-uploads.d.ts +63 -0
- package/dist/catalog/org-plugin-uploads.js +116 -0
- package/dist/catalog/owned-items.d.ts +184 -0
- package/dist/catalog/owned-items.js +789 -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 +221 -0
- package/dist/catalog/platform-components.js +761 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +178 -34
- package/dist/catalog/plugin-import.js +622 -82
- package/dist/catalog/plugin-install.d.ts +185 -41
- package/dist/catalog/plugin-install.js +758 -126
- package/dist/catalog/plugin-upgrade.d.ts +260 -225
- package/dist/catalog/plugin-upgrade.js +1147 -1136
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +193 -118
- package/dist/catalog/requests.service.js +526 -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 +118 -0
- package/dist/channels/actions.js +1 -0
- package/dist/channels/cards.js +20 -2
- package/dist/channels/channels.module.js +2 -0
- package/dist/channels/inbound.d.ts +9 -1
- package/dist/channels/inbound.js +67 -5
- package/dist/channels/phrases.d.ts +35 -0
- package/dist/channels/phrases.js +29 -0
- package/dist/config/docs.js +3 -1
- package/dist/config/schema.d.ts +10 -2
- package/dist/config/schema.js +70 -22
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +27 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/conversations.controller.d.ts +43 -18
- package/dist/conversations/conversations.controller.js +79 -38
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +7 -7
- package/dist/conversations/conversations.service.d.ts +73 -15
- package/dist/conversations/conversations.service.js +115 -35
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +20 -5
- package/dist/conversations/event-log.js +60 -0
- package/dist/conversations/events.d.ts +84 -2
- package/dist/conversations/events.js +91 -17
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +5 -0
- package/dist/conversations/titles.d.ts +5 -3
- package/dist/conversations/titles.js +21 -8
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +20 -1
- package/dist/ctx/create-ctx.js +38 -7
- package/dist/db/kernel-schema.d.ts +386 -18
- package/dist/environments/access.d.ts +41 -0
- package/dist/environments/access.js +77 -0
- package/dist/environments/conversation-environments.d.ts +61 -0
- package/dist/environments/conversation-environments.js +170 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +33 -0
- package/dist/environments/environments.controller.js +110 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +27 -0
- package/dist/environments/environments.service.d.ts +153 -0
- package/dist/environments/environments.service.js +541 -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 +85 -2
- package/dist/errors.js +85 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +4 -2
- package/dist/evals/run-replay.js +20 -6
- package/dist/evals/runs.service.d.ts +2 -1
- package/dist/evals/runs.service.js +13 -12
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +4 -3
- 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 +36 -10
- package/dist/extensions/admin-ops.js +65 -42
- package/dist/extensions/admin-view.d.ts +37 -10
- package/dist/extensions/admin-view.js +103 -20
- package/dist/extensions/bootstrap.d.ts +17 -4
- package/dist/extensions/bootstrap.js +70 -9
- 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/deployment-config.d.ts +28 -5
- package/dist/extensions/deployment-config.js +48 -7
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +11 -11
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +24 -10
- package/dist/extensions/host.js +49 -54
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +75 -6
- package/dist/extensions/org-config.js +184 -32
- 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/permission-view.d.ts +16 -4
- package/dist/extensions/permission-view.js +4 -4
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.d.ts +12 -5
- package/dist/extensions/point-defaults.js +37 -9
- package/dist/extensions/resolve.d.ts +5 -1
- package/dist/extensions/resolve.js +15 -2
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +25 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +29 -29
- package/dist/identity/accounts.js +47 -47
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.js +1 -1
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- package/dist/identity/settings.d.ts +22 -11
- package/dist/identity/settings.js +53 -18
- 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/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.service.d.ts +62 -3
- 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 +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 +1 -1
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +24 -1
- 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 +19 -2
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/kernel.module.js +6 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
- package/dist/lifecycle/kernel-lifecycle.js +4 -4
- 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 +99 -0
- package/dist/models/enablement.js +263 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/prices.d.ts +5 -5
- package/dist/models/prices.js +4 -4
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +37 -12
- package/dist/models/purposes.js +63 -17
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +9 -7
- package/dist/orgs/offboarding.js +28 -17
- 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.module.js +3 -0
- package/dist/orgs/orgs.service.d.ts +20 -7
- package/dist/orgs/orgs.service.js +32 -12
- 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 +15 -3
- package/dist/orgs/settings.service.js +6 -2
- package/dist/overrides.d.ts +3 -0
- package/dist/overrides.js +2 -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 +11 -0
- package/dist/platform/errors.js +26 -0
- package/dist/platform/exclusions.d.ts +12 -0
- package/dist/platform/exclusions.js +1405 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +92 -0
- package/dist/platform/operation.js +35 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
- package/dist/platform/ops/agent-templates.ops.js +92 -0
- package/dist/platform/ops/agents.ops.d.ts +19 -0
- package/dist/platform/ops/agents.ops.js +294 -0
- package/dist/platform/ops/connectors.ops.d.ts +15 -0
- package/dist/platform/ops/connectors.ops.js +126 -0
- package/dist/platform/ops/errors.d.ts +11 -0
- package/dist/platform/ops/errors.js +22 -0
- package/dist/platform/ops/extensions.ops.d.ts +19 -0
- package/dist/platform/ops/extensions.ops.js +116 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
- package/dist/platform/ops/marketplaces.ops.js +157 -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 +23 -0
- package/dist/platform/ops/platform.ops.js +158 -0
- package/dist/platform/ops/plugins.ops.d.ts +33 -0
- package/dist/platform/ops/plugins.ops.js +377 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +153 -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 +13 -0
- package/dist/platform/ops/skills.ops.js +98 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/platform-ops.module.d.ts +7 -0
- package/dist/platform/platform-ops.module.js +55 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/redact-orgs.d.ts +7 -0
- package/dist/platform/redact-orgs.js +52 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- 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 +9 -1
- package/dist/runtime/context/build.d.ts +6 -4
- package/dist/runtime/context/build.js +26 -7
- package/dist/runtime/context/claude-tools.d.ts +2 -1
- package/dist/runtime/context/claude-tools.js +5 -4
- package/dist/runtime/context/compaction.js +9 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/skills.js +9 -2
- 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 +35 -17
- package/dist/runtime/loop.d.ts +32 -4
- package/dist/runtime/maintenance.d.ts +7 -4
- package/dist/runtime/maintenance.js +23 -8
- package/dist/runtime/model-call.d.ts +38 -11
- package/dist/runtime/model-call.js +97 -24
- package/dist/runtime/providers.d.ts +146 -32
- package/dist/runtime/providers.js +321 -67
- 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-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +3 -7
- package/dist/runtime/run-queue.d.ts +37 -3
- package/dist/runtime/run-queue.js +188 -11
- package/dist/runtime/run-worker.d.ts +12 -6
- package/dist/runtime/run-worker.js +58 -35
- package/dist/runtime/runtime.module.js +3 -0
- package/dist/runtime/step-log.d.ts +9 -4
- package/dist/runtime/step-log.js +8 -5
- 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 +12 -3
- package/dist/runtime/subagents/definition.js +46 -32
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +115 -26
- package/dist/runtime/subagents/dispatch.js +212 -141
- 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/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 +24 -7
- package/dist/runtime/subagents/roster.js +47 -11
- package/dist/runtime/subagents/skill-fork.d.ts +3 -2
- package/dist/runtime/subagents/skill-fork.js +8 -4
- 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 +7 -4
- package/dist/runtime/subagents/subagents.service.js +11 -6
- 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 +33 -38
- package/dist/runtime/usage-report.js +169 -96
- package/dist/runtime/waits.d.ts +140 -37
- package/dist/runtime/waits.js +394 -106
- 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 +2 -2
- package/dist/sandbox/providers.js +1 -1
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +4 -3
- package/dist/sandbox/sandbox.service.d.ts +229 -134
- package/dist/sandbox/sandbox.service.js +630 -409
- package/dist/skills/catalog.d.ts +3 -2
- package/dist/skills/catalog.js +21 -43
- package/dist/skills/changes.controller.d.ts +7 -0
- package/dist/skills/changes.controller.js +19 -1
- package/dist/skills/invoke.js +8 -3
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +39 -4
- package/dist/skills/skills.controller.js +88 -10
- package/dist/skills/skills.module.js +10 -1
- package/dist/skills/skills.service.d.ts +106 -26
- package/dist/skills/skills.service.js +421 -75
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/tools/approvals.service.d.ts +20 -2
- package/dist/tools/approvals.service.js +23 -4
- package/dist/tools/builtin-names.d.ts +21 -5
- package/dist/tools/builtin-names.js +30 -5
- package/dist/tools/builtins/agent.d.ts +23 -21
- package/dist/tools/builtins/agent.js +62 -55
- package/dist/tools/builtins/builtin-tools.d.ts +6 -2
- package/dist/tools/builtins/builtin-tools.js +37 -12
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +34 -0
- package/dist/tools/builtins/platform.js +362 -0
- package/dist/tools/builtins/sandbox/bash.js +13 -3
- package/dist/tools/builtins/sandbox/common.d.ts +43 -24
- package/dist/tools/builtins/sandbox/common.js +80 -45
- package/dist/tools/builtins/sandbox/edit.js +2 -2
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -4
- package/dist/tools/builtins/sandbox/index.d.ts +1 -1
- package/dist/tools/builtins/sandbox/index.js +1 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
- package/dist/tools/builtins/sandbox/task-output.js +30 -5
- package/dist/tools/builtins/sandbox/task-stop.js +2 -1
- package/dist/tools/builtins/sandbox/write.js +2 -2
- 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 +22 -14
- package/dist/tools/builtins/skill-load.js +86 -57
- package/dist/tools/builtins/skill-write.js +1 -1
- package/dist/tools/builtins/web/extract.js +5 -1
- package/dist/tools/builtins/web/fetch.js +1 -0
- package/dist/tools/builtins/web/search.js +1 -0
- package/dist/tools/connectors.controller.d.ts +10 -0
- package/dist/tools/connectors.controller.js +12 -0
- package/dist/tools/connectors.service.d.ts +46 -5
- package/dist/tools/connectors.service.js +94 -15
- 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 +42 -1
- package/dist/tools/info.js +64 -1
- package/dist/tools/org-tool-switches.d.ts +74 -0
- package/dist/tools/org-tool-switches.js +184 -0
- package/dist/tools/pipeline.d.ts +46 -40
- package/dist/tools/pipeline.js +193 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +98 -5
- package/dist/tools/registry.js +87 -9
- package/dist/tools/tools.module.js +12 -2
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- 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/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 -32
- package/dist/extensions/org-config.controller.js +0 -70
package/dist/index.d.ts
CHANGED
|
@@ -71,4 +71,4 @@ export { SANDBOX_DESTROY_JOB, SANDBOX_SUSPEND_JOB, } from "./sandbox/jobs.js";
|
|
|
71
71
|
export { SANDBOX_LOCK_TTL_MS, SandboxService, type SandboxUseInfo, } from "./sandbox/sandbox.service.js";
|
|
72
72
|
export { MAX_STORAGE_KEY_BYTES, StorageKeyError, } from "./storage/prefix.js";
|
|
73
73
|
export { PrefixedStorage, StorageService, type StorageSource, } from "./storage/storage.service.js";
|
|
74
|
-
export {
|
|
74
|
+
export { SANDBOX_RESTARTED_NOTICE, SANDBOX_STARTED_NOTICE, } from "./tools/builtins/sandbox/common.js";
|
package/dist/index.js
CHANGED
|
@@ -67,4 +67,4 @@ export { SANDBOX_DESTROY_JOB, SANDBOX_SUSPEND_JOB, } from "./sandbox/jobs.js";
|
|
|
67
67
|
export { SANDBOX_LOCK_TTL_MS, SandboxService, } from "./sandbox/sandbox.service.js";
|
|
68
68
|
export { MAX_STORAGE_KEY_BYTES, StorageKeyError, } from "./storage/prefix.js";
|
|
69
69
|
export { PrefixedStorage, StorageService, } from "./storage/storage.service.js";
|
|
70
|
-
export {
|
|
70
|
+
export { SANDBOX_RESTARTED_NOTICE, SANDBOX_STARTED_NOTICE, } from "./tools/builtins/sandbox/common.js";
|
|
@@ -13,6 +13,7 @@ import { NestFactory } from "@nestjs/core";
|
|
|
13
13
|
import { Redis } from "ioredis";
|
|
14
14
|
import { createBus } from "../../ctx/bus.js";
|
|
15
15
|
import { KERNEL_APP_OPTIONS } from "../../lifecycle/tokens.js";
|
|
16
|
+
import { CacheModule } from "../cache/cache.module.js";
|
|
16
17
|
import { ConfigModule } from "../config/config.module.js";
|
|
17
18
|
import { KernelConfigService } from "../config/kernel-config.service.js";
|
|
18
19
|
import { DatabaseModule } from "../database/database.module.js";
|
|
@@ -20,6 +21,7 @@ import { KernelEventsModule } from "../events/kernel-events.js";
|
|
|
20
21
|
import { GracefulShutdownModule } from "../lifecycle/graceful-shutdown.module.js";
|
|
21
22
|
import { LockModule } from "../lock/lock.module.js";
|
|
22
23
|
import { LoggingModule } from "../logging/logging.module.js";
|
|
24
|
+
import { QueueModule } from "../queue/queue.module.js";
|
|
23
25
|
import { KERNEL_BUS, KERNEL_LOGGER, REDIS, REDIS_SUBSCRIBER } from "../tokens.js";
|
|
24
26
|
/** How long the CLI's Redis connection may take before a command fails (a publish only warns). */
|
|
25
27
|
const CLI_REDIS_CONNECT_TIMEOUT_MS = 3_000;
|
|
@@ -108,7 +110,13 @@ let KernelCliModule = KernelCliModule_1 = class KernelCliModule {
|
|
|
108
110
|
ConfigModule.forRoot(config, opts.env !== undefined ? { env: opts.env } : {}),
|
|
109
111
|
GracefulShutdownModule,
|
|
110
112
|
DatabaseModule.forRoot(),
|
|
111
|
-
|
|
113
|
+
// QueueModule's root gives the queues a command's modules register (the catalog's scope
|
|
114
|
+
// sync and maintenance queues) the configured Redis; without it BullMQ would connect to
|
|
115
|
+
// its default 127.0.0.1:6379
|
|
116
|
+
// CacheModule: `@Cacheable` providers of the domain modules (EffectiveConfigs) need it
|
|
117
|
+
...(opts.redis === false
|
|
118
|
+
? []
|
|
119
|
+
: [CliRedisModule, LockModule, CacheModule, QueueModule.forRoot()]),
|
|
112
120
|
KernelEventsModule,
|
|
113
121
|
...opts.modules,
|
|
114
122
|
],
|
|
@@ -28,10 +28,16 @@ const HOT_APPLIERS = {
|
|
|
28
28
|
"auth.trustedIdentitySources": () => { },
|
|
29
29
|
// The hook registry reads the time limit on every run.
|
|
30
30
|
"hooks.timeoutMs": () => { },
|
|
31
|
+
// The provider registry reads the list time limit at every listModels call.
|
|
32
|
+
"models.listTimeoutMs": () => { },
|
|
33
|
+
"models.embedTimeoutMs": () => { },
|
|
31
34
|
// SandboxService reads the shared-lease cap at every acquisition.
|
|
32
35
|
"sandbox.maxConcurrentCommands": () => { },
|
|
36
|
+
// The environments service reads the personal limit at every create.
|
|
37
|
+
"environments.maxPersonal": () => { },
|
|
33
38
|
// Sub-agent limits are read at every dispatch, child step and tool resolution.
|
|
34
|
-
"subagents.
|
|
39
|
+
"subagents.maxDepth": () => { },
|
|
40
|
+
"subagents.maxConcurrentPerConversation": () => { },
|
|
35
41
|
"subagents.maxDispatchesPerRun": () => { },
|
|
36
42
|
"subagents.maxTokensPerRun": () => { },
|
|
37
43
|
// The web tools read these limits through the config service on every call.
|
|
@@ -41,6 +47,18 @@ const HOT_APPLIERS = {
|
|
|
41
47
|
"web.fetch.cacheSeconds": () => { },
|
|
42
48
|
"web.fetch.timeoutMs": () => { },
|
|
43
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Environment variables of renamed config keys, with their replacements: warned about once when
|
|
52
|
+
* the service starts (agent map spec §6: `subagents.maxConcurrentPerRun` became
|
|
53
|
+
* `subagents.maxConcurrentPerConversation`). A retired file or Nacos key cannot be told here: the
|
|
54
|
+
* schema strips unknown keys before the kernel receives its config.
|
|
55
|
+
*/
|
|
56
|
+
const RETIRED_ENV = [
|
|
57
|
+
[
|
|
58
|
+
"CAPYBARA_SUBAGENTS__MAX_CONCURRENT_PER_RUN",
|
|
59
|
+
"CAPYBARA_SUBAGENTS__MAX_CONCURRENT_PER_CONVERSATION",
|
|
60
|
+
],
|
|
61
|
+
];
|
|
44
62
|
const HOT_PATHS = configFields(KernelConfigSchema)
|
|
45
63
|
.filter((f) => f.meta?.hot)
|
|
46
64
|
.map((f) => f.path);
|
|
@@ -61,6 +79,11 @@ let KernelConfigService = class KernelConfigService {
|
|
|
61
79
|
this.env = input.env ?? process.env;
|
|
62
80
|
log.setLevel(input.config.log.level);
|
|
63
81
|
log.addSecrets(secretValues(KernelConfigSchema, input.config));
|
|
82
|
+
for (const [old, now] of RETIRED_ENV) {
|
|
83
|
+
if (this.env[old] !== undefined) {
|
|
84
|
+
log.warn(`${old} is no longer read and is ignored; set ${now} instead`, { env: old });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
64
87
|
}
|
|
65
88
|
get() {
|
|
66
89
|
return this.current;
|
|
@@ -4,7 +4,7 @@ import { TransactionHost } from "./transaction-host.js";
|
|
|
4
4
|
* Transaction-scoped advisory locks (decision R9 of the Nest kernel spec): `pg_advisory_xact_lock`
|
|
5
5
|
* is transaction semantics, like `FOR UPDATE`. It is held by the caller's transaction and released
|
|
6
6
|
* at its COMMIT or ROLLBACK, so it serializes writers whose invariant is checked inside that same
|
|
7
|
-
* transaction ("never zero active
|
|
7
|
+
* transaction ("never zero active super admins", "set up once", "one account per external
|
|
8
8
|
* identity"). The one place that takes such a lock; `propagation: "mandatory"` makes a call outside
|
|
9
9
|
* a transaction (where the lock would be released at once) throw.
|
|
10
10
|
*/
|
|
@@ -16,7 +16,7 @@ import { Transactional } from "./transactional.decorator.js";
|
|
|
16
16
|
* Transaction-scoped advisory locks (decision R9 of the Nest kernel spec): `pg_advisory_xact_lock`
|
|
17
17
|
* is transaction semantics, like `FOR UPDATE`. It is held by the caller's transaction and released
|
|
18
18
|
* at its COMMIT or ROLLBACK, so it serializes writers whose invariant is checked inside that same
|
|
19
|
-
* transaction ("never zero active
|
|
19
|
+
* transaction ("never zero active super admins", "set up once", "one account per external
|
|
20
20
|
* identity"). The one place that takes such a lock; `propagation: "mandatory"` makes a call outside
|
|
21
21
|
* a transaction (where the lock would be released at once) throw.
|
|
22
22
|
*/
|
|
@@ -72,12 +72,21 @@ export interface KernelEventMap {
|
|
|
72
72
|
runId: string;
|
|
73
73
|
};
|
|
74
74
|
/**
|
|
75
|
-
* `ensureRun` marked an orphaned run failed (after the commit): the waits stop its active
|
|
76
|
-
* sub-
|
|
75
|
+
* `ensureRun` marked an orphaned run failed (after the commit): the waits stop its active fork
|
|
76
|
+
* sub-agent at once (background sub-agents keep running, agent map spec §5.4). A lost event is
|
|
77
|
+
* repaired by the wait sweep (fork children of finished runs).
|
|
77
78
|
*/
|
|
78
79
|
"run.orphaned": {
|
|
79
80
|
runId: string;
|
|
80
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* A sub-agent's `subagent_delivery` was appended to its parent conversation (after the commit;
|
|
84
|
+
* `SubagentDeliveries`). Waking an idle parent follows it; a lost event is re-derived by the
|
|
85
|
+
* next `ensureRun` (a message, the end of a run, a page opening).
|
|
86
|
+
*/
|
|
87
|
+
"subagent.delivered": {
|
|
88
|
+
conversationId: string;
|
|
89
|
+
};
|
|
81
90
|
/**
|
|
82
91
|
* A background task of the conversation finished (after the commit of its
|
|
83
92
|
* `background_task_finished` event). `BackgroundWake` asks the run queue for a wake run; a lost
|
|
@@ -86,6 +95,14 @@ export interface KernelEventMap {
|
|
|
86
95
|
"background_task.finished": {
|
|
87
96
|
conversationId: string;
|
|
88
97
|
};
|
|
98
|
+
/**
|
|
99
|
+
* An extension's `ctx.models.embed` call wrote a `model_usage` row (after the commit, spec B
|
|
100
|
+
* §5.4). The usage reporter enqueues its `usage.report` delivery; a lost event is re-derived by
|
|
101
|
+
* the usage sweep (rows whose `reported_at` is still null).
|
|
102
|
+
*/
|
|
103
|
+
"model_usage.recorded": {
|
|
104
|
+
id: string;
|
|
105
|
+
};
|
|
89
106
|
}
|
|
90
107
|
type Handler<K extends keyof KernelEventMap> = (payload: KernelEventMap[K]) => Promise<void> | void;
|
|
91
108
|
/** Typed in-process event emitter; handlers run in order, a failing one is logged and skipped. */
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type JobsOptions } from "bullmq";
|
|
2
|
+
import type { Redis } from "ioredis";
|
|
3
|
+
/** One job to add: its name, data and options (a deterministic `jobId` makes the add idempotent). */
|
|
4
|
+
export interface OneJob<T> {
|
|
5
|
+
name: string;
|
|
6
|
+
data: T;
|
|
7
|
+
opts: JobsOptions;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Adds one job to a kernel queue from a process that hosts no queue of its own (a CLI command),
|
|
11
|
+
* over the caller's Redis connection (left open), with BullMQ's default key prefix like the
|
|
12
|
+
* kernel's queues. The queue handle is closed again before returning.
|
|
13
|
+
*/
|
|
14
|
+
export declare function addJobOnce<T>(connection: Redis, queue: string, job: OneJob<T>): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Queue } from "bullmq";
|
|
2
|
+
/**
|
|
3
|
+
* Adds one job to a kernel queue from a process that hosts no queue of its own (a CLI command),
|
|
4
|
+
* over the caller's Redis connection (left open), with BullMQ's default key prefix like the
|
|
5
|
+
* kernel's queues. The queue handle is closed again before returning.
|
|
6
|
+
*/
|
|
7
|
+
export async function addJobOnce(connection, queue, job) {
|
|
8
|
+
const q = new Queue(queue, { connection });
|
|
9
|
+
try {
|
|
10
|
+
// biome-ignore lint/suspicious/noExplicitAny: BullMQ's name and data generics do not line up here
|
|
11
|
+
await q.add(job.name, job.data, job.opts);
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
await q.close();
|
|
15
|
+
}
|
|
16
|
+
}
|
package/dist/kernel.module.js
CHANGED
|
@@ -33,6 +33,8 @@ import { KernelLifecycle } from "./lifecycle/kernel-lifecycle.js";
|
|
|
33
33
|
import { KERNEL_APP_OPTIONS } from "./lifecycle/tokens.js";
|
|
34
34
|
import { createConfiguredLogger } from "./log-config.js";
|
|
35
35
|
import { KERNEL_OVERRIDE_TOKENS } from "./overrides.js";
|
|
36
|
+
import { PlatformModule } from "./platform/platform.module.js";
|
|
37
|
+
import { PlatformOpsModule } from "./platform/platform-ops.module.js";
|
|
36
38
|
import { GatewayModule } from "./roles/gateway.module.js";
|
|
37
39
|
import { WorkerModule } from "./roles/worker.module.js";
|
|
38
40
|
import { UsageReportModule } from "./runtime/usage-report.js";
|
|
@@ -108,6 +110,10 @@ let KernelModule = KernelModule_1 = class KernelModule {
|
|
|
108
110
|
TitlesModule,
|
|
109
111
|
UsageReportModule,
|
|
110
112
|
ChannelsModule,
|
|
113
|
+
// the Platform tool's operation registry and actor facts
|
|
114
|
+
PlatformModule,
|
|
115
|
+
// its operations (skills, agents, ...), registered at start on every role
|
|
116
|
+
PlatformOpsModule,
|
|
111
117
|
// the role modules, by `roles` (nest kernel spec §2)
|
|
112
118
|
...(config.roles.includes("api") ? [ApiModule] : []),
|
|
113
119
|
...(config.roles.includes("worker") ? [WorkerModule.forRoot(config)] : []),
|
|
@@ -123,7 +123,7 @@ export declare class KernelLifecycle implements OnApplicationBootstrap, BeforeAp
|
|
|
123
123
|
* and the next start tries again while it stays incomplete.
|
|
124
124
|
*/
|
|
125
125
|
private runBootstrap;
|
|
126
|
-
/**
|
|
126
|
+
/** 部署尚无活跃超级管理员时提示去初始化;查询失败只记日志,不影响启动。 */
|
|
127
127
|
private warnIfSetupPending;
|
|
128
128
|
beforeApplicationShutdown(): Promise<void>;
|
|
129
129
|
/** Logs the end of the stop phases (Redis and the pool close right after, in the infra modules). */
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import { SANDBOX_EXTENSION_POINT
|
|
10
|
+
import { SANDBOX_EXTENSION_POINT } from "@capybara-hq/plugin-sdk";
|
|
11
11
|
import { Inject, Injectable, Optional, } from "@nestjs/common";
|
|
12
12
|
import { sql } from "kysely";
|
|
13
13
|
import { MarketplacesService } from "../catalog/marketplaces.service.js";
|
|
@@ -237,7 +237,7 @@ let KernelLifecycle = class KernelLifecycle {
|
|
|
237
237
|
.list("sandbox")
|
|
238
238
|
.find((x) => x.capability === SANDBOX_EXTENSION_POINT);
|
|
239
239
|
if (sandboxEntry !== undefined) {
|
|
240
|
-
for (const w of sandboxConfigWarnings(cfg(), sandboxEntry.plugin
|
|
240
|
+
for (const w of sandboxConfigWarnings(cfg(), sandboxEntry.plugin)) {
|
|
241
241
|
this.log[w.level](w.message);
|
|
242
242
|
}
|
|
243
243
|
}
|
|
@@ -318,10 +318,10 @@ let KernelLifecycle = class KernelLifecycle {
|
|
|
318
318
|
throw e;
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
|
-
/**
|
|
321
|
+
/** 部署尚无活跃超级管理员时提示去初始化;查询失败只记日志,不影响启动。 */
|
|
322
322
|
async warnIfSetupPending() {
|
|
323
323
|
try {
|
|
324
|
-
if ((await this.accounts.
|
|
324
|
+
if ((await this.accounts.countSuperAdmins()) === 0) {
|
|
325
325
|
this.log.warn("deployment is not set up; open the setup wizard or run `capybara admin create`");
|
|
326
326
|
}
|
|
327
327
|
}
|
|
@@ -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
|
+
}
|