@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.5
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 +39 -13
- package/dist/admin/admin.controller.js +33 -17
- 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 +51 -22
- package/dist/agents/agents.service.js +172 -70
- 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/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/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 +6 -2
- package/dist/config/schema.js +46 -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 +69 -12
- package/dist/conversations/conversations.service.js +106 -27
- 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 +5 -0
- package/dist/ctx/create-ctx.js +15 -5
- package/dist/db/kernel-schema.d.ts +362 -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 +82 -2
- package/dist/errors.js +82 -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 +16 -4
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.js +1 -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 +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/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 +8 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +19 -1
- package/dist/extensions/host.js +30 -7
- 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/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +23 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- 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 +21 -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 +11 -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/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 +20 -9
- package/dist/models/purposes.js +17 -8
- 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 +1387 -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.js +2 -0
- 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 +30 -8
- package/dist/runtime/model-call.js +69 -19
- 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 +11 -5
- package/dist/runtime/run-worker.js +54 -31
- 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 +43 -29
- 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.js +17 -12
- 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 +187 -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/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
|
@@ -4,7 +4,7 @@ import type { KernelAppOptions } from "../app.js";
|
|
|
4
4
|
import { type ConfigSourceKind } from "../config/sources.js";
|
|
5
5
|
import { type Keyring } from "../ctx/secrets.js";
|
|
6
6
|
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
7
|
-
import {
|
|
7
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
8
8
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
9
9
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
10
10
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -20,6 +20,7 @@ import { ExtensionLifecycle } from "./lifecycle.js";
|
|
|
20
20
|
import { PLUGIN_DEPLOYMENT_CONFIG_TOPIC } from "./lifecycle-topics.js";
|
|
21
21
|
import { PluginDeploymentConfigLock } from "./locks.js";
|
|
22
22
|
export { DEPLOYMENT_SECRETS_ORG, type DeploymentSchemaInfo, mergeDeploymentConfig, readStoredDeploymentConfig, schemaFields, secretPathsOf, };
|
|
23
|
+
type Obj = Record<string, unknown>;
|
|
23
24
|
export type { ConfigIssue };
|
|
24
25
|
export { PLUGIN_DEPLOYMENT_CONFIG_TOPIC };
|
|
25
26
|
/** 后台一个部署配置字段:来源、是否只读;非密钥字段给出生效值,密钥字段只给 `set`。 */
|
|
@@ -41,6 +42,11 @@ export interface DeploymentConfigField {
|
|
|
41
42
|
* (item names, not secret values; spec §4.3). Other secret fields report only `set`.
|
|
42
43
|
*/
|
|
43
44
|
keys?: string[];
|
|
45
|
+
/**
|
|
46
|
+
* What orgs may do with the field (spec A §5.1, the level of its top-level key): `readonly` (they
|
|
47
|
+
* see it) or `override` (they may bring their own value); absent = hidden from orgs.
|
|
48
|
+
*/
|
|
49
|
+
org?: "readonly" | "override";
|
|
44
50
|
}
|
|
45
51
|
/**
|
|
46
52
|
* One operation on a secret record drawn per item (spec §4.3), only for a path some
|
|
@@ -76,6 +82,11 @@ export interface DeploymentConfigView {
|
|
|
76
82
|
validated: boolean;
|
|
77
83
|
/** 校验失败的原因(只有路径与说明,不含值)。 */
|
|
78
84
|
issues: ConfigIssue[];
|
|
85
|
+
/**
|
|
86
|
+
* The required `override` fields the platform left empty (spec A §5.4a): the extension still
|
|
87
|
+
* loads, and every org that follows the platform must configure them itself.
|
|
88
|
+
*/
|
|
89
|
+
orgMustConfigure: string[];
|
|
79
90
|
}
|
|
80
91
|
/**
|
|
81
92
|
* Deployment-level extension config (D8 / C10): non-secret fields are stored in
|
|
@@ -88,7 +99,7 @@ export interface DeploymentConfigView {
|
|
|
88
99
|
export declare class ExtensionDeploymentConfigService {
|
|
89
100
|
private readonly kdb;
|
|
90
101
|
readonly txHost: TransactionHost;
|
|
91
|
-
/** The
|
|
102
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
92
103
|
private readonly adminLock;
|
|
93
104
|
private readonly configLock;
|
|
94
105
|
private readonly keyring;
|
|
@@ -106,8 +117,8 @@ export declare class ExtensionDeploymentConfigService {
|
|
|
106
117
|
/** Where each startup-config field comes from (see `extensionConfigSources`); those fields are read-only. */
|
|
107
118
|
private readonly sources;
|
|
108
119
|
constructor(kdb: KernelDb, txHost: TransactionHost,
|
|
109
|
-
/** The
|
|
110
|
-
adminLock:
|
|
120
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
121
|
+
adminLock: SuperAdminLock, configLock: PluginDeploymentConfigLock, keyring: Keyring, config: KernelConfigService,
|
|
111
122
|
/** This replica's extension schemas (loaded, config-declared or prepared install records). */
|
|
112
123
|
host: ExtensionHost,
|
|
113
124
|
/** The effective (stored plus startup) deployment config. */
|
|
@@ -142,7 +153,7 @@ export declare class ExtensionDeploymentConfigService {
|
|
|
142
153
|
* is re-encrypted whole, then validated with `values`; the audit lists the record's path, no keys.
|
|
143
154
|
* A path no hint names -> 400 `validation_failed`; one in the startup config -> 409
|
|
144
155
|
* `extension.config_readonly`.
|
|
145
|
-
* In a transaction, first `
|
|
156
|
+
* In a transaction, first `lockSuperAdminsAndAuthorize` (re-checks the super admin under
|
|
146
157
|
* the lock), then an advisory lock per extension; audit `extension.deployment_config_updated`
|
|
147
158
|
* (detail only `changedPaths`). After the commit publishes {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC} and
|
|
148
159
|
* applies it on this replica right away.
|
|
@@ -157,6 +168,12 @@ export declare class ExtensionDeploymentConfigService {
|
|
|
157
168
|
private write;
|
|
158
169
|
private info;
|
|
159
170
|
private render;
|
|
171
|
+
/**
|
|
172
|
+
* The required `override` fields the platform left empty ({@link DeploymentConfigView}
|
|
173
|
+
* `orgMustConfigure`); reads nothing when the extension has no `override` field. Unknown to the
|
|
174
|
+
* deployment -> `extension.not_found`.
|
|
175
|
+
*/
|
|
176
|
+
orgMustConfigure(plugin: string): Promise<string[]>;
|
|
160
177
|
/**
|
|
161
178
|
* The form JSON Schema of the description: the zod schema's, else the package's static one. A
|
|
162
179
|
* hint conversion that throws (a hand-made package) drops the hints: the plain schema, or none
|
|
@@ -167,6 +184,12 @@ export declare class ExtensionDeploymentConfigService {
|
|
|
167
184
|
/** The secret record paths some hint of the form schema names. */
|
|
168
185
|
private hintedPaths;
|
|
169
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Applies secret entries in order to the decrypted config `next` (in place): each record is read
|
|
189
|
+
* from `next` at its path, renamed, set or removed, and put back; an empty record is removed (the
|
|
190
|
+
* field falls back to its default).
|
|
191
|
+
*/
|
|
192
|
+
export declare function applySecretEntries(next: Obj, entries: readonly SecretEntry[]): void;
|
|
170
193
|
/**
|
|
171
194
|
* 本副本拿不到模块时(未加载的安装记录)按包内审阅过的静态清单给出字段(没有 zod schema:不校验,加载时再校验)。
|
|
172
195
|
* The package's `extension.configSchemas.deployment` (written by the packer) is the form schema;
|
|
@@ -14,7 +14,7 @@ import { configSourceKind, extensionConfigSources, fieldSource, } from "../confi
|
|
|
14
14
|
import { createSecrets } from "../ctx/secrets.js";
|
|
15
15
|
import { ApiError } from "../errors.js";
|
|
16
16
|
import { audit } from "../identity/audit.js";
|
|
17
|
-
import {
|
|
17
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
18
18
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
19
19
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
20
20
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -30,6 +30,7 @@ import { ExtensionInstalls } from "./installs.js";
|
|
|
30
30
|
import { ExtensionLifecycle } from "./lifecycle.js";
|
|
31
31
|
import { PLUGIN_DEPLOYMENT_CONFIG_TOPIC } from "./lifecycle-topics.js";
|
|
32
32
|
import { PluginDeploymentConfigLock } from "./locks.js";
|
|
33
|
+
import { fieldLevels, jsonSchemaFieldLevels, missingOverridable, parseLoadGate, } from "./org-levels.js";
|
|
33
34
|
export { DEPLOYMENT_SECRETS_ORG, mergeDeploymentConfig, readStoredDeploymentConfig, schemaFields, secretPathsOf, };
|
|
34
35
|
export { PLUGIN_DEPLOYMENT_CONFIG_TOPIC };
|
|
35
36
|
/** 某字段 zod 叶子上的默认值(整份配置不合法、校验没能补上默认值时,视图仍按它显示)。 */
|
|
@@ -64,7 +65,7 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
64
65
|
/** Where each startup-config field comes from (see `extensionConfigSources`); those fields are read-only. */
|
|
65
66
|
sources;
|
|
66
67
|
constructor(kdb, txHost,
|
|
67
|
-
/** The
|
|
68
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
68
69
|
adminLock, configLock, keyring, config,
|
|
69
70
|
/** This replica's extension schemas (loaded, config-declared or prepared install records). */
|
|
70
71
|
host,
|
|
@@ -142,7 +143,7 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
142
143
|
* is re-encrypted whole, then validated with `values`; the audit lists the record's path, no keys.
|
|
143
144
|
* A path no hint names -> 400 `validation_failed`; one in the startup config -> 409
|
|
144
145
|
* `extension.config_readonly`.
|
|
145
|
-
* In a transaction, first `
|
|
146
|
+
* In a transaction, first `lockSuperAdminsAndAuthorize` (re-checks the super admin under
|
|
146
147
|
* the lock), then an advisory lock per extension; audit `extension.deployment_config_updated`
|
|
147
148
|
* (detail only `changedPaths`). After the commit publishes {@link PLUGIN_DEPLOYMENT_CONFIG_TOPIC} and
|
|
148
149
|
* applies it on this replica right away.
|
|
@@ -241,7 +242,8 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
241
242
|
applySecretEntries(next, secretEntries);
|
|
242
243
|
const touched = new Set([...Object.keys(values), ...secretEntries.map((e) => e.path)]);
|
|
243
244
|
if (info.schema) {
|
|
244
|
-
|
|
245
|
+
// overridable fields may stay empty on the platform (spec A §5.4a)
|
|
246
|
+
const r = parseLoadGate(info.schema, mergeDeploymentConfig(next, fileValue, fieldPaths));
|
|
245
247
|
if (!r.success) {
|
|
246
248
|
// 启动配置里只读字段自己的问题这里改不了(照样保存,插件保持待配置),其余拒绝
|
|
247
249
|
const issues = toIssues(r.error, this.messagesOf(plugin, info)).filter((i) => i.path === "" || fieldSource(sources, i.path) === undefined);
|
|
@@ -303,7 +305,8 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
303
305
|
let valid = true;
|
|
304
306
|
let issues = [];
|
|
305
307
|
if (info.schema) {
|
|
306
|
-
|
|
308
|
+
// the load gate: overridable fields may stay empty (spec A §5.4a)
|
|
309
|
+
const r = parseLoadGate(info.schema, raw);
|
|
307
310
|
if (r.success)
|
|
308
311
|
effective = r.data;
|
|
309
312
|
else {
|
|
@@ -313,6 +316,7 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
313
316
|
}
|
|
314
317
|
const formSchema = this.formSchemaOf(plugin, info);
|
|
315
318
|
const hinted = formSchema ? hintedSecretPaths(formSchema) : new Set();
|
|
319
|
+
const levels = levelsOf(info);
|
|
316
320
|
const fields = info.fields.map((f) => {
|
|
317
321
|
const from = fieldSource(sources, f.path);
|
|
318
322
|
let value = getPath(effective, f.path);
|
|
@@ -327,12 +331,14 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
327
331
|
value = d.value;
|
|
328
332
|
source = value === undefined ? "unset" : "default";
|
|
329
333
|
}
|
|
334
|
+
const level = levels.get(f.path.split(".")[0]);
|
|
330
335
|
const base = {
|
|
331
336
|
path: f.path,
|
|
332
337
|
secret: f.secret,
|
|
333
338
|
hot: f.hot,
|
|
334
339
|
source,
|
|
335
340
|
readonly: from !== undefined,
|
|
341
|
+
...(level !== undefined && level !== "hidden" && { org: level }),
|
|
336
342
|
};
|
|
337
343
|
// a schema default (e.g. `secret(record).default({})`) is no secret anybody set
|
|
338
344
|
const set = value !== undefined && source !== "default";
|
|
@@ -354,8 +360,23 @@ let ExtensionDeploymentConfigService = class ExtensionDeploymentConfigService {
|
|
|
354
360
|
valid,
|
|
355
361
|
validated: info.schema !== undefined,
|
|
356
362
|
issues,
|
|
363
|
+
orgMustConfigure: orgMustConfigureOf(info, raw, levels),
|
|
357
364
|
};
|
|
358
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* The required `override` fields the platform left empty ({@link DeploymentConfigView}
|
|
368
|
+
* `orgMustConfigure`); reads nothing when the extension has no `override` field. Unknown to the
|
|
369
|
+
* deployment -> `extension.not_found`.
|
|
370
|
+
*/
|
|
371
|
+
async orgMustConfigure(plugin) {
|
|
372
|
+
const info = await this.info(plugin);
|
|
373
|
+
const levels = levelsOf(info);
|
|
374
|
+
if (![...levels.values()].includes("override"))
|
|
375
|
+
return [];
|
|
376
|
+
const stored = await this.readStored(plugin, info);
|
|
377
|
+
const raw = mergeDeploymentConfig(stored, this.fileConfig()[plugin], info.fields.map((f) => f.path));
|
|
378
|
+
return orgMustConfigureOf(info, raw, levels);
|
|
379
|
+
}
|
|
359
380
|
/**
|
|
360
381
|
* The form JSON Schema of the description: the zod schema's, else the package's static one. A
|
|
361
382
|
* hint conversion that throws (a hand-made package) drops the hints: the plain schema, or none
|
|
@@ -391,7 +412,7 @@ ExtensionDeploymentConfigService = __decorate([
|
|
|
391
412
|
Injectable(),
|
|
392
413
|
__param(0, Inject(KernelDb)),
|
|
393
414
|
__param(1, Inject(TransactionHost)),
|
|
394
|
-
__param(2, Inject(
|
|
415
|
+
__param(2, Inject(SuperAdminLock)),
|
|
395
416
|
__param(3, Inject(PluginDeploymentConfigLock)),
|
|
396
417
|
__param(4, Inject(KEYRING)),
|
|
397
418
|
__param(5, Inject(KernelConfigService)),
|
|
@@ -404,12 +425,32 @@ ExtensionDeploymentConfigService = __decorate([
|
|
|
404
425
|
__param(12, Inject(ExtensionDisplayNames))
|
|
405
426
|
], ExtensionDeploymentConfigService);
|
|
406
427
|
export { ExtensionDeploymentConfigService };
|
|
428
|
+
/** The org level of each top-level key: from the zod schema, else the package's form schema. */
|
|
429
|
+
function levelsOf(info) {
|
|
430
|
+
return info.schema
|
|
431
|
+
? fieldLevels(info.schema)
|
|
432
|
+
: jsonSchemaFieldLevels(info.jsonSchema);
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* The required `override` keys `raw` leaves empty: by the zod schema, else (a static form schema)
|
|
436
|
+
* the `required` keys marked `override` that have no value.
|
|
437
|
+
*/
|
|
438
|
+
function orgMustConfigureOf(info, raw, levels) {
|
|
439
|
+
if (info.schema)
|
|
440
|
+
return missingOverridable(info.schema, raw);
|
|
441
|
+
const required = info.jsonSchema?.required;
|
|
442
|
+
if (!Array.isArray(required))
|
|
443
|
+
return [];
|
|
444
|
+
return [...levels]
|
|
445
|
+
.filter(([k, l]) => l === "override" && required.includes(k) && getPath(raw, k) === undefined)
|
|
446
|
+
.map(([k]) => k);
|
|
447
|
+
}
|
|
407
448
|
/**
|
|
408
449
|
* Applies secret entries in order to the decrypted config `next` (in place): each record is read
|
|
409
450
|
* from `next` at its path, renamed, set or removed, and put back; an empty record is removed (the
|
|
410
451
|
* field falls back to its default).
|
|
411
452
|
*/
|
|
412
|
-
function applySecretEntries(next, entries) {
|
|
453
|
+
export function applySecretEntries(next, entries) {
|
|
413
454
|
for (const e of entries) {
|
|
414
455
|
const cur = getPath(next, e.path);
|
|
415
456
|
const rec = isObj(cur) ? { ...cur } : {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import { type Keyring } from "../ctx/secrets.js";
|
|
3
|
+
import { CacheService } from "../infra/cache/cache.service.js";
|
|
4
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
5
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
6
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
7
|
+
import type { KernelLogger } from "../log.js";
|
|
8
|
+
import { type ConfigIssue } from "./config-issues.js";
|
|
9
|
+
import { ExtensionInstalls } from "./installs.js";
|
|
10
|
+
import { type FieldLevel } from "./org-levels.js";
|
|
11
|
+
import { ExtensionRegistry } from "./registry.js";
|
|
12
|
+
type Obj = Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Why an org-bound call is not made (spec A §6): the extension's effective config for the org is
|
|
15
|
+
* not valid. Model-visible as a tool's unavailable reason (English).
|
|
16
|
+
*/
|
|
17
|
+
export declare const NEEDS_CONFIG_REASON = "needs configuration in this organization";
|
|
18
|
+
/** The kernel's own secrets namespace (`kernel` is a reserved plugin name). */
|
|
19
|
+
export declare const OVERRIDE_SECRETS_NAMESPACE = "kernel";
|
|
20
|
+
/**
|
|
21
|
+
* Where a copy's secret field lives in `capybara.secrets` (under the org): a namespace of its own,
|
|
22
|
+
* distinct from the org-only `plugin-config:<plugin>:<path>` (spec A §5.8).
|
|
23
|
+
*/
|
|
24
|
+
export declare const overrideSecretKey: (plugin: string, path: string) => string;
|
|
25
|
+
/**
|
|
26
|
+
* The effective deployment config of an extension for an org (spec A §6): `ok` with the config
|
|
27
|
+
* and where its overridable fields come from, or the validation issues (paths only, no values).
|
|
28
|
+
*/
|
|
29
|
+
export type EffectiveConfig = {
|
|
30
|
+
ok: true;
|
|
31
|
+
config: unknown;
|
|
32
|
+
source: "platform" | "copy";
|
|
33
|
+
}
|
|
34
|
+
/** `notRunning`: the extension is not running on this replica (not a configuration problem). */
|
|
35
|
+
| {
|
|
36
|
+
ok: false;
|
|
37
|
+
issues: ConfigIssue[];
|
|
38
|
+
notRunning?: true;
|
|
39
|
+
};
|
|
40
|
+
/** An org's stored copy: its non-secret values and its secrets by field dot path. */
|
|
41
|
+
export interface StoredCopy {
|
|
42
|
+
config: Obj;
|
|
43
|
+
secrets: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
/** The secret leaf paths of a deployment schema. */
|
|
46
|
+
export declare function secretLeafPaths(schema: z.ZodTypeAny): string[];
|
|
47
|
+
/** The secret leaf paths under the `override` top-level keys (the secrets a copy may hold). */
|
|
48
|
+
export declare function overrideSecretPaths(schema: z.ZodTypeAny, levels?: Map<string, FieldLevel>): string[];
|
|
49
|
+
/**
|
|
50
|
+
* The platform's non-secret values of the `override` keys: what a new copy starts from (spec A
|
|
51
|
+
* §5.4, platform secrets never enter a copy).
|
|
52
|
+
*/
|
|
53
|
+
export declare function platformOverrideValues(schema: z.ZodTypeAny, platform: unknown): Obj;
|
|
54
|
+
/**
|
|
55
|
+
* The deployment config an org with a copy runs with, before validation (spec A §5.4): the
|
|
56
|
+
* platform's values of the hidden and read-only keys, and for each `override` key the copy's value
|
|
57
|
+
* (its non-secret part and its own secrets). An `override` key the copy does not hold (one that
|
|
58
|
+
* became overridable after the copy was made) takes the platform's value with every secret leaf
|
|
59
|
+
* removed: a copy never falls back to a platform secret, required or not. Copy values of keys that
|
|
60
|
+
* are no longer `override` are ignored.
|
|
61
|
+
*/
|
|
62
|
+
export declare function mergeCopy(schema: z.ZodTypeAny, platform: unknown, copy: StoredCopy): Obj;
|
|
63
|
+
/**
|
|
64
|
+
* The effective extension config of an org (spec A §5.3, §5.4, §6): the platform's deployment
|
|
65
|
+
* config while the org follows it, or the platform's values with the org's copy applied to the
|
|
66
|
+
* overridable fields. Every org-bound call takes its config from here.
|
|
67
|
+
*
|
|
68
|
+
* Following orgs get this replica's running config (`ctx.config`), so a platform change reaches
|
|
69
|
+
* them as soon as the instance has it. For a copy, the platform's raw (unparsed) deployment config
|
|
70
|
+
* and the copy's raw values are merged and parsed once, so a schema transform runs exactly once.
|
|
71
|
+
* The org half (the copy row and its secrets) is cached in Redis through `@Cacheable`, sealed with
|
|
72
|
+
* a key derived from the master keyring so no secret sits in Redis in clear, under a per-(org,
|
|
73
|
+
* plugin) generation token that every copy write replaces after its commit: a read that started
|
|
74
|
+
* before the write can only cache under the old token, which nobody reads any more. No
|
|
75
|
+
* in-process state.
|
|
76
|
+
*
|
|
77
|
+
* It reads the running instances from the {@link ExtensionRegistry} and the raw platform config
|
|
78
|
+
* from the install records (not through the host), so the host can inject it for its hook
|
|
79
|
+
* dispatcher.
|
|
80
|
+
*/
|
|
81
|
+
export declare class EffectiveConfigs {
|
|
82
|
+
private readonly kdb;
|
|
83
|
+
readonly txHost: TransactionHost;
|
|
84
|
+
readonly cacheService: CacheService;
|
|
85
|
+
private readonly keyring;
|
|
86
|
+
private readonly registry;
|
|
87
|
+
private readonly installs;
|
|
88
|
+
private readonly kernelConfig;
|
|
89
|
+
/** Secret values of a copy read here are masked in the logs. */
|
|
90
|
+
private readonly log;
|
|
91
|
+
constructor(kdb: KernelDb, txHost: TransactionHost, cacheService: CacheService, keyring: Keyring, registry: Pick<ExtensionRegistry, "current">, installs: Pick<ExtensionInstalls, "effectiveDeploymentConfig">, kernelConfig: Pick<KernelConfigService, "get">,
|
|
92
|
+
/** Secret values of a copy read here are masked in the logs. */
|
|
93
|
+
log: KernelLogger);
|
|
94
|
+
private get db();
|
|
95
|
+
/**
|
|
96
|
+
* The effective config of `plugin` for `orgId`. Following: the running platform config, `ok:
|
|
97
|
+
* false` when it leaves a required overridable field empty (the host loaded it with those
|
|
98
|
+
* fields optional, so that is the only way the full schema can refuse it). Copy: the platform's
|
|
99
|
+
* raw config with the copy applied ({@link mergeCopy}), parsed once with the full schema. An
|
|
100
|
+
* extension not running on this replica -> `ok: false`, `notRunning`, with a root issue.
|
|
101
|
+
*/
|
|
102
|
+
get(orgId: string, plugin: string): Promise<EffectiveConfig>;
|
|
103
|
+
/** The org's copy (decrypted), or undefined while it follows the platform. */
|
|
104
|
+
copyOf(orgId: string, plugin: string): Promise<StoredCopy | undefined>;
|
|
105
|
+
/**
|
|
106
|
+
* Makes every cached copy of (org, plugin) unreachable: a new generation token, and the entry of
|
|
107
|
+
* the old one deleted. Call it after the write committed (`afterCommit`), never inside it.
|
|
108
|
+
*/
|
|
109
|
+
invalidate(orgId: string, plugin: string): Promise<void>;
|
|
110
|
+
/** Keyed by the generation token read just before the PG read. */
|
|
111
|
+
private cachedCopy;
|
|
112
|
+
/**
|
|
113
|
+
* The copy row and its secrets from one snapshot (joins the caller's transaction, so a write
|
|
114
|
+
* sees what it just wrote).
|
|
115
|
+
*/
|
|
116
|
+
private readCopy;
|
|
117
|
+
/**
|
|
118
|
+
* The number of orgs (not deleted) where the extension is on and has no valid effective config
|
|
119
|
+
* (spec A §5.4a). Following orgs share the platform's result; each copy is checked on its own.
|
|
120
|
+
* 0 when the extension is not running on this replica.
|
|
121
|
+
*/
|
|
122
|
+
countNeedingConfig(plugin: string): Promise<number>;
|
|
123
|
+
private cacheKey;
|
|
124
|
+
private seal;
|
|
125
|
+
private open;
|
|
126
|
+
}
|
|
127
|
+
export {};
|