@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
|
@@ -1,277 +1,312 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import type { PluginManifest } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { ExtensionAdminOps } from "../extensions/admin-ops.js";
|
|
3
|
+
import { ExtensionBlobs } from "../extensions/blobs.js";
|
|
4
4
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
5
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
6
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
5
7
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
6
8
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
9
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
7
10
|
import type { KernelLogger } from "../log.js";
|
|
8
11
|
import { OrgLock } from "../orgs/org-lock.js";
|
|
9
|
-
import type { OrgAction } from "../orgs/roles.js";
|
|
10
|
-
import { SkillsService } from "../skills/skills.service.js";
|
|
11
12
|
import { StorageService } from "../storage/storage.service.js";
|
|
12
|
-
import type { CreateConnectorInput, TemplateUpdateInput } from "../tools/connectors.service.js";
|
|
13
13
|
import { ConnectorsService } from "../tools/connectors.service.js";
|
|
14
|
-
import type
|
|
15
|
-
import { type
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export interface UpgradeComponent {
|
|
14
|
+
import { type CatalogVersionFiles } from "./catalog-content.js";
|
|
15
|
+
import { type ComponentKind } from "./component-state.js";
|
|
16
|
+
import { CatalogItemLock } from "./locks.js";
|
|
17
|
+
import { PlatformComponents } from "./platform-components.js";
|
|
18
|
+
import { PluginInstaller } from "./plugin-install.js";
|
|
19
|
+
import { PluginScopeSync } from "./scope-sync.js";
|
|
20
|
+
/** How a component differs between the platform's current and the target version (spec §7.1). */
|
|
21
|
+
export type UpdateChange = "added" | "removed" | "upgrade" | "downgrade" | "same";
|
|
22
|
+
/** One component of an update preview. */
|
|
23
|
+
export interface PlatformUpdateComponent {
|
|
25
24
|
kind: ComponentKind;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
/** The platform component (null: added by the target). */
|
|
26
|
+
id: string | null;
|
|
27
|
+
/** Skill or agent template name; a connector template's id. */
|
|
28
|
+
name: string;
|
|
29
|
+
change: UpdateChange;
|
|
30
|
+
/** The catalog version of the component's current version (null: added, or no catalog version). */
|
|
31
|
+
from: string | null;
|
|
32
|
+
/** The target version (null: removed). */
|
|
33
|
+
to: string | null;
|
|
34
|
+
/** The current version was updated on its own (spec §7.2): the confirm moves it to the plugin's. */
|
|
35
|
+
updatedOnOwn: boolean;
|
|
36
|
+
/** The component has its own scope (spec §5 rule 2); the update keeps it. */
|
|
37
|
+
ownScope: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* The orgs where the component is on whose linked copy is pinned to its own version (ruling B2):
|
|
40
|
+
* the confirm clears those pins, except for a removed component (the copy keeps its version).
|
|
41
|
+
*/
|
|
42
|
+
pinnedOrgs: string[];
|
|
43
|
+
/**
|
|
44
|
+
* A removed skill or agent template agents use: it stays (spec §7.3), listed with the orgs and
|
|
45
|
+
* agents using it. Absent otherwise.
|
|
46
|
+
*/
|
|
47
|
+
kept?: {
|
|
48
|
+
orgId: string;
|
|
49
|
+
agents: {
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
}[];
|
|
53
|
+
}[];
|
|
29
54
|
}
|
|
30
|
-
/**
|
|
31
|
-
export interface
|
|
32
|
-
|
|
33
|
-
to: string;
|
|
34
|
-
/** Confirm with it; it changes when the target, the install's components or the inputs change. */
|
|
35
|
-
diffHash: string;
|
|
36
|
-
components: UpgradeComponent[];
|
|
37
|
-
inputs: {
|
|
38
|
-
/** Added templates: their connectors are created with the org's input (as at install). */
|
|
39
|
-
connectors: string[];
|
|
40
|
-
/** Changed templates whose auth method or required credentials changed: re-entry needed. */
|
|
41
|
-
credentialsChanged: string[];
|
|
42
|
-
/** The extension is added and not yet enabled in the org: its org config may be given. */
|
|
43
|
-
extensionConfig: boolean;
|
|
44
|
-
};
|
|
55
|
+
/** The org connectors an update touches (ruling E2, spec §6). */
|
|
56
|
+
export interface PlatformUpdateConnectorOrg {
|
|
57
|
+
orgId: string;
|
|
45
58
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
59
|
+
* Connectors made from a changed template: they get the template's endpoint preset (the org's
|
|
60
|
+
* values at the editable paths), auth preset and default policies; `credentialsReset` when the
|
|
61
|
+
* auth method or the credentials it needs changed (cleared: the org re-enters them).
|
|
49
62
|
*/
|
|
50
|
-
|
|
63
|
+
connectors: {
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
templateId: string;
|
|
67
|
+
credentialsReset: boolean;
|
|
68
|
+
}[];
|
|
69
|
+
/**
|
|
70
|
+
* Added templates on in the org where the plugin is on: their connectors need the org's input
|
|
71
|
+
* (endpoint, credentials), so the update creates none.
|
|
72
|
+
*/
|
|
73
|
+
needsConfig: string[];
|
|
51
74
|
}
|
|
52
|
-
/**
|
|
53
|
-
export interface
|
|
54
|
-
|
|
75
|
+
/** `POST /api/v1/admin/catalog/items/:id/update/preview`. */
|
|
76
|
+
export interface PlatformUpdatePreview {
|
|
77
|
+
itemId: string;
|
|
78
|
+
name: string;
|
|
79
|
+
/** The platform's current version (null: never synced). */
|
|
80
|
+
from: string | null;
|
|
81
|
+
to: string;
|
|
82
|
+
components: PlatformUpdateComponent[];
|
|
83
|
+
/**
|
|
84
|
+
* The deployment's extension moves (`from` null: installed by the update); null: unchanged.
|
|
85
|
+
* `orgs`: the orgs using it (where the plugin is on; spec §7.4, one version for all of them);
|
|
86
|
+
* `needsApproval`: the new version asks for permissions the approved snapshot does not cover,
|
|
87
|
+
* so it waits as `pending_approval` until the super admin approves them.
|
|
88
|
+
*/
|
|
89
|
+
extension: {
|
|
90
|
+
from: string | null;
|
|
91
|
+
/** null: the target drops the extension (an owner update only, ruling P3-12'). */
|
|
92
|
+
to: string | null;
|
|
93
|
+
orgs: string[];
|
|
94
|
+
needsApproval: boolean;
|
|
95
|
+
} | null;
|
|
96
|
+
connectorOrgs: PlatformUpdateConnectorOrg[];
|
|
97
|
+
/**
|
|
98
|
+
* An owner's update preview only ({@link PlatformPluginUpdater.previewForOwner}): the name of
|
|
99
|
+
* every org the preview mentions, by id. An org admin cannot read other orgs, and these names
|
|
100
|
+
* are already disclosed to the owner (rulings P3-14, P3-19). Not covered by `diffHash`.
|
|
101
|
+
*/
|
|
102
|
+
orgNames?: Record<string, string>;
|
|
103
|
+
/** Confirm with it; recomputed under the item lock at the confirm. */
|
|
55
104
|
diffHash: string;
|
|
56
105
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
106
|
+
/** `PUT /api/v1/admin/catalog/items/:id/update`. */
|
|
107
|
+
export interface PlatformUpdateResult {
|
|
108
|
+
itemId: string;
|
|
109
|
+
version: string;
|
|
110
|
+
components: PlatformUpdateComponent[];
|
|
111
|
+
extension: PlatformUpdatePreview["extension"];
|
|
112
|
+
connectorOrgs: PlatformUpdateConnectorOrg[];
|
|
64
113
|
}
|
|
65
114
|
interface VersionRow extends CatalogVersionFiles {
|
|
66
115
|
version: string;
|
|
67
116
|
manifest: PluginManifest;
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
interface SkillDiff {
|
|
71
|
-
name: string;
|
|
72
|
-
change: UpgradeChange;
|
|
73
|
-
/** The skill directory in the target version (added / changed / unchanged). */
|
|
74
|
-
dir?: string;
|
|
75
|
-
/** The target version suggests pinning the skill (spec §9.1). */
|
|
76
|
-
suggestPinned?: boolean;
|
|
77
|
-
/** The ledger row of the org skill (by skill id), when the install has one that is live. */
|
|
78
|
-
ledger?: LedgerRow;
|
|
79
|
-
}
|
|
80
|
-
interface AgentTemplateDiff {
|
|
81
|
-
name: string;
|
|
82
|
-
change: UpgradeChange;
|
|
83
|
-
/** The target version's template (added / changed / unchanged). */
|
|
84
|
-
template?: AgentTemplate;
|
|
85
|
-
/** The ledger row of the org template, when the install has one that is live. */
|
|
86
|
-
ledger?: LedgerRow;
|
|
87
|
-
}
|
|
88
|
-
interface TemplateDiff {
|
|
89
|
-
id: string;
|
|
90
|
-
change: UpgradeChange;
|
|
91
|
-
target?: ConnectorTemplateFile;
|
|
92
|
-
/** The org connector created from the template (live), when the install has one. */
|
|
93
|
-
connector?: {
|
|
94
|
-
id: string;
|
|
95
|
-
connector: string;
|
|
96
|
-
endpoint: unknown;
|
|
97
|
-
auth: ConnectorAuth;
|
|
98
|
-
};
|
|
99
|
-
ledger?: LedgerRow;
|
|
100
|
-
credentialsChanged: boolean;
|
|
101
|
-
}
|
|
102
|
-
interface DependencyDiff {
|
|
103
|
-
name: string;
|
|
104
|
-
change: UpgradeChange;
|
|
105
|
-
range?: string;
|
|
106
|
-
fromRange?: string;
|
|
107
|
-
resolved?: ResolvedDependency;
|
|
108
|
-
/** The dependency install recorded in the ledger. */
|
|
109
|
-
child?: {
|
|
110
|
-
installId: string;
|
|
111
|
-
version: string;
|
|
112
|
-
ledger: LedgerRow;
|
|
113
|
-
};
|
|
114
|
-
/** Added: null when already installed in the org (recorded created=false). */
|
|
115
|
-
plan?: InstallPlan | null;
|
|
117
|
+
extension_sha256: string | null;
|
|
116
118
|
}
|
|
117
119
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
+
* An update's target read from somewhere other than `catalog_item_versions`: an org upload's
|
|
121
|
+
* staging (pre-flight F3), so the org's review can show the update before the version is imported.
|
|
122
|
+
* Its files are at `object_prefix`, where the confirm's version row will point too.
|
|
120
123
|
*/
|
|
121
|
-
export
|
|
122
|
-
installId: string;
|
|
123
|
-
itemId: string;
|
|
124
|
-
name: string;
|
|
125
|
-
from: VersionRow;
|
|
126
|
-
to: VersionRow;
|
|
127
|
-
ledger: LedgerRow[];
|
|
128
|
-
extension: {
|
|
129
|
-
change: UpgradeChange;
|
|
130
|
-
name: string;
|
|
131
|
-
} | null;
|
|
132
|
-
skills: SkillDiff[];
|
|
133
|
-
agentTemplates: AgentTemplateDiff[];
|
|
134
|
-
templates: TemplateDiff[];
|
|
135
|
-
dependencies: DependencyDiff[];
|
|
136
|
-
components: UpgradeComponent[];
|
|
137
|
-
inputs: UpgradePreview["inputs"];
|
|
138
|
-
diffHash: string;
|
|
139
|
-
ledgerHash: string;
|
|
140
|
-
actions: OrgAction[];
|
|
141
|
-
/** With input: the connectors to create and the template updates to prepare. */
|
|
142
|
-
creates: Map<string, CreateConnectorInput>;
|
|
143
|
-
updates: Map<string, TemplateUpdateInput>;
|
|
144
|
-
}
|
|
124
|
+
export type UpdateTarget = VersionRow;
|
|
145
125
|
/**
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* `
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
126
|
+
* The platform plugin update (spec §7; ruling F2 retires the per-org upgrades):
|
|
127
|
+
* - **preview** diffs the platform's current components of the plugin (the version recorded in
|
|
128
|
+
* `catalog_items.platform_synced_version`, components updated on their own included) against a
|
|
129
|
+
* catalog version: each skill (by name, by its files' digest), agent template (by name, canonical
|
|
130
|
+
* definition) and connector template (by id, canonical file) is `added`, `removed`, `same`, or
|
|
131
|
+
* `upgrade` / `downgrade` (the target's direction from the component's catalog version). It marks
|
|
132
|
+
* components updated on their own, components with their own scope and the orgs whose linked
|
|
133
|
+
* copy is pinned; lists removed components agents still use (they stay, spec §7.3), the org
|
|
134
|
+
* connectors made from changed templates (all orgs, ruling E2; `credentialsReset` when the
|
|
135
|
+
* credential shape changed) and the added templates that will need an org's input, the
|
|
136
|
+
* deployment's extension move, and a `diffHash`. Refused: same version, a disabled or deleted
|
|
137
|
+
* item, a target without the extension the deployment runs for it or moving a config-declared
|
|
138
|
+
* one, a template moving to another connector, a plugin another platform plugin depends on
|
|
139
|
+
* outside its range, and an added skill whose name is taken where the plugin is on (rule 10).
|
|
140
|
+
* - **update** runs under a Redis lock per item (another update -> `plugin.install_in_progress`):
|
|
141
|
+
* the extension first (`ExtensionAdminOps.install`, enabled when the update installs it; added
|
|
142
|
+
* permissions wait for the admin's approval as for any extension upgrade), then one transaction
|
|
143
|
+
* under the item name's lock that recomputes the diff (`plugin.upgrade_stale` on a difference)
|
|
144
|
+
* and writes the platform versions (`PlatformComponents.syncFromVersion`, which records
|
|
145
|
+
* `platform_synced_version`), the pinned suggestions of unchanged skills, the removals (a
|
|
146
|
+
* component no agent uses is soft-deleted, so unpinned linked copies go with it; pinned copies
|
|
147
|
+
* keep their own version; a removed connector template leaves its connectors as the orgs' own),
|
|
148
|
+
* clears the pins of linked copies, fans changed templates out to every connector made from them
|
|
149
|
+
* (`applyTemplateIn`, under each org's row lock, credentials cleared only for a changed
|
|
150
|
+
* credential shape), moves every org install to the version and audits
|
|
151
|
+
* `plugin.platform_updated`; the scope sync of the item and its dependencies is enqueued after
|
|
152
|
+
* the commit (orgs get new dependencies by rule 9). A failure rolls the transaction back and
|
|
153
|
+
* puts the extension back where it was (audit `plugin.platform_update_failed`, 502
|
|
154
|
+
* `plugin.upgrade_failed`); files copied to `deployment/platform/` stay unreferenced.
|
|
155
|
+
* Storage is never read or written inside the transaction: the target's contents (and the
|
|
156
|
+
* extension package, for `needsApproval`) are read and the platform files copied
|
|
157
|
+
* (`PlatformComponents.prepareSync`) after the Redis lock is taken and before the transaction,
|
|
158
|
+
* which reuses them and writes rows only (`applySyncIn`). The confirm-time diff treats the
|
|
159
|
+
* extension this update moved as expected (the install record must point at that package).
|
|
160
|
+
* Recovery: a process that dies between the extension step and the transaction leaves the
|
|
161
|
+
* deployment on the target's extension with the platform components unchanged; a new preview
|
|
162
|
+
* then shows the extension unchanged (`extension: null`) and the components still to move, and
|
|
163
|
+
* confirming it completes the update (or an update back to the old version moves it back).
|
|
164
|
+
* No in-process state.
|
|
169
165
|
*/
|
|
170
|
-
export declare class
|
|
171
|
-
/** Planning, installs, the ledger and the uninstall rules are the installer's. */
|
|
172
|
-
private readonly installer;
|
|
166
|
+
export declare class PlatformPluginUpdater {
|
|
173
167
|
private readonly kdb;
|
|
174
|
-
|
|
168
|
+
readonly txHost: TransactionHost;
|
|
169
|
+
private readonly adminLock;
|
|
170
|
+
private readonly itemLock;
|
|
175
171
|
private readonly orgLock;
|
|
172
|
+
private readonly locks;
|
|
176
173
|
private readonly storage;
|
|
177
174
|
private readonly registry;
|
|
178
|
-
private readonly
|
|
179
|
-
|
|
180
|
-
private readonly
|
|
181
|
-
|
|
175
|
+
private readonly ops;
|
|
176
|
+
/** Reads the target's extension package (its permissions, for `needsApproval`). */
|
|
177
|
+
private readonly blobs;
|
|
178
|
+
private readonly config;
|
|
179
|
+
private readonly platform;
|
|
180
|
+
/** Template dependencies (the deployed connector kinds). */
|
|
181
|
+
private readonly installer;
|
|
182
182
|
private readonly connectors;
|
|
183
|
+
private readonly sync;
|
|
183
184
|
private readonly log;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
orgLock: OrgLock, storage: StorageService, registry: ExtensionRegistry, skills: SkillsService, orgConfigs: OrgExtensionConfigs, requests: CatalogRequestsService,
|
|
190
|
-
/** Org connectors: installs create, upgrade and remove them. */
|
|
191
|
-
connectors: ConnectorsService, log: KernelLogger, txHost: TransactionHost);
|
|
192
|
-
/** The kernel-schema handle of the current context (the transaction, else the pool). */
|
|
185
|
+
constructor(kdb: KernelDb, txHost: TransactionHost, adminLock: SuperAdminLock, itemLock: CatalogItemLock, orgLock: OrgLock, locks: LockService, storage: StorageService, registry: ExtensionRegistry, ops: ExtensionAdminOps,
|
|
186
|
+
/** Reads the target's extension package (its permissions, for `needsApproval`). */
|
|
187
|
+
blobs: ExtensionBlobs, config: KernelConfigService, platform: PlatformComponents,
|
|
188
|
+
/** Template dependencies (the deployed connector kinds). */
|
|
189
|
+
installer: PluginInstaller, connectors: ConnectorsService, sync: PluginScopeSync, log: KernelLogger);
|
|
193
190
|
private get db();
|
|
194
|
-
/** The
|
|
195
|
-
preview(
|
|
196
|
-
/** Re-checks the actor's org actions under the org row lock (a transaction of its own). */
|
|
197
|
-
private authorizeActions;
|
|
191
|
+
/** The update preview (see the class comment); writes nothing. */
|
|
192
|
+
preview(itemId: string, version: string): Promise<PlatformUpdatePreview>;
|
|
198
193
|
/**
|
|
199
|
-
* The
|
|
200
|
-
*
|
|
201
|
-
*
|
|
194
|
+
* The update preview of a new version of an org's own plugin (ruling P3-12): the item must be
|
|
195
|
+
* owned by `orgId` (else 404, as for any item the org cannot see), the target carries no
|
|
196
|
+
* extension (an extension-bearing version waits for the super admin, plan Task 6), and a target
|
|
197
|
+
* dropping the deployment's extension is allowed (P3-12'). `staged` is the target read from the
|
|
198
|
+
* org's staging (pre-flight F3); without it the imported version `version` is read. The route
|
|
199
|
+
* authorizes the org admin; writes nothing.
|
|
202
200
|
*/
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
201
|
+
previewForOwner(orgId: string, itemId: string, version: string, staged?: UpdateTarget): Promise<PlatformUpdatePreview>;
|
|
202
|
+
/**
|
|
203
|
+
* Locks, in sorted order and before the item (ruling P3-50), every live org the update may
|
|
204
|
+
* write in: the orgs with connectors made from the plugin's connector templates and the item's
|
|
205
|
+
* owner org. `acting`: the owner org an owner update acts for, locked with its admin re-checked
|
|
206
|
+
* (`catalog.upload`; deleted -> 404 `org.not_found`). Returns the live orgs locked; another
|
|
207
|
+
* deleted one is skipped.
|
|
208
|
+
*/
|
|
209
|
+
private lockUpdateOrgs;
|
|
210
|
+
/** The names of the orgs a preview mentions, by id (an owner's preview, see `orgNames`). */
|
|
211
|
+
private orgNamesOf;
|
|
212
|
+
/**
|
|
213
|
+
* Applies a new version of an org's own plugin for its owner (ruling P3-12, see
|
|
214
|
+
* {@link previewForOwner}): the actor must be an admin of the owner org (`catalog.upload`,
|
|
215
|
+
* re-checked under the org row lock in the transaction), then the platform update as
|
|
216
|
+
* {@link update} does, also removing the extension when the target drops it. In the update's
|
|
217
|
+
* transaction the orgs using the shared plugin are told (`shared_item_updated`, one notice per
|
|
218
|
+
* plugin) and a pending version is cleared (pre-flight F7: the new version replaces it).
|
|
219
|
+
*/
|
|
220
|
+
updateAsOwner(orgId: string, actor: string, itemId: string, version: string, diffHash: string, opts?: {
|
|
221
|
+
actorTokenId?: string;
|
|
222
|
+
}): Promise<PlatformUpdateResult>;
|
|
223
|
+
/** The actor is an admin of the owner org (a read of the membership under the org row lock). */
|
|
224
|
+
private authorizeOwner;
|
|
225
|
+
/** Runs `f` holding the item's update lock (another update -> `plugin.install_in_progress`). */
|
|
226
|
+
private locked;
|
|
209
227
|
/**
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
228
|
+
* The super admin's confirmation of an org upload's pending new version (rulings P3-10, P3-21,
|
|
229
|
+
* pre-flight F8): the update to `version` as {@link update} does it (the super admin's, the
|
|
230
|
+
* extension installed or upgraded on the deployment), with the version allowed although it is
|
|
231
|
+
* pending. Its transaction re-reads the item under the row lock: removed meanwhile -> 409
|
|
232
|
+
* `catalog.item_removed`, the pending version replaced -> 409 `extension.approval_stale` (both
|
|
233
|
+
* undo the extension step); then the pending state is cleared and the owner told
|
|
234
|
+
* (`upload_confirmed`). The caller checked the digest of the version's package.
|
|
213
235
|
*/
|
|
214
|
-
|
|
236
|
+
updateToPending(actor: string, itemId: string, version: string, opts?: {
|
|
215
237
|
actorTokenId?: string;
|
|
216
|
-
}
|
|
238
|
+
}): Promise<PlatformUpdateResult>;
|
|
217
239
|
/**
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
* journaled), only the step whose journal write failed is undone and the install row is left as
|
|
222
|
-
* the cleanup set it. Returns the error to throw: 502 `plugin.upgrade_failed` (a dependency
|
|
223
|
-
* another install is still installing: its 409 as it is).
|
|
240
|
+
* {@link updateToPending} for a caller already holding the item's update lock
|
|
241
|
+
* ({@link withItemLock}): the super admin's confirmation runs all its steps under it (ruling
|
|
242
|
+
* P3-35).
|
|
224
243
|
*/
|
|
225
|
-
|
|
244
|
+
updateToPendingLocked(actor: string, itemId: string, version: string, opts?: {
|
|
245
|
+
actorTokenId?: string;
|
|
246
|
+
}): Promise<PlatformUpdateResult>;
|
|
226
247
|
/**
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
248
|
+
* Runs `f` holding the item's update lock (the one every platform update of the item takes;
|
|
249
|
+
* another holder -> 409 `plugin.install_in_progress`): the super admin's confirmation of an org
|
|
250
|
+
* upload runs every step under it (ruling P3-35).
|
|
230
251
|
*/
|
|
231
|
-
|
|
232
|
-
/** The upgrade's start: the install `upgrading` with an empty journal (a transaction of its own). */
|
|
233
|
-
private start;
|
|
234
|
-
/** A skill step's ledger and journal rows, in a transaction of their own. */
|
|
235
|
-
private journalSkill;
|
|
252
|
+
withItemLock<T>(itemId: string, f: () => Promise<T>): Promise<T>;
|
|
236
253
|
/**
|
|
237
|
-
*
|
|
238
|
-
*
|
|
254
|
+
* Runs an update confirmed with the preview's `diffHash` (see the class comment). A version an
|
|
255
|
+
* org upload waits with, or an item whose first version waits, -> 409 `catalog.item_pending`
|
|
256
|
+
* (confirmed in 待确认 instead, pre-flight F8).
|
|
239
257
|
*/
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
258
|
+
update(actor: string, itemId: string, input: {
|
|
259
|
+
version: string;
|
|
260
|
+
diffHash: string;
|
|
261
|
+
}, opts?: {
|
|
262
|
+
actorTokenId?: string;
|
|
263
|
+
auditDetail?: Record<string, unknown>;
|
|
264
|
+
}): Promise<PlatformUpdateResult>;
|
|
265
|
+
private updateLocked;
|
|
266
|
+
/** `plugin.platform_update_failed`, in a transaction of its own. */
|
|
267
|
+
private auditFailure;
|
|
245
268
|
/**
|
|
246
|
-
* The
|
|
247
|
-
* the
|
|
248
|
-
* once the connectors are applied.
|
|
269
|
+
* The update's transaction (see the class comment): the super admin re-checked, the diff
|
|
270
|
+
* recomputed under the item name's lock, then every write. Returns the diff it applied.
|
|
249
271
|
*/
|
|
250
|
-
private
|
|
251
|
-
/** Undoes a failed upgrade's journal (see {@link failed}) in a transaction of its own. */
|
|
252
|
-
private undoFailed;
|
|
253
|
-
/** Undoes an interrupted upgrade (see {@link recoverInterrupted}) in a transaction of its own. */
|
|
254
|
-
private undoInterrupted;
|
|
272
|
+
private commit;
|
|
255
273
|
/**
|
|
256
|
-
* The
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
* ledger marked `dropped` ("no longer in the plugin", still this install's), every other removed
|
|
260
|
-
* component leaves the ledger; a dropped component the target brings back is un-dropped. A dependency
|
|
261
|
-
* install is uninstalled by the same rules (another install using it takes it over). Skills ->
|
|
262
|
-
* connectors -> extension -> dependencies.
|
|
274
|
+
* The template update of one connector: the new endpoint preset with the org's values at the
|
|
275
|
+
* editable paths, the auth preset and default policies; credentials cleared (no new ones: they
|
|
276
|
+
* are the org's) when the credential shape changed.
|
|
263
277
|
*/
|
|
264
|
-
private
|
|
278
|
+
private prepare;
|
|
265
279
|
/**
|
|
266
|
-
* Computes an
|
|
267
|
-
*
|
|
280
|
+
* Computes an update (see the class comment). `target`: the target read from an org's staging
|
|
281
|
+
* instead of `catalog_item_versions` (pre-flight F3). `owner`: an owner update (P3-12): the item
|
|
282
|
+
* must be the org's, an extension-bearing target is refused, and a target dropping the
|
|
283
|
+
* extension removes it.
|
|
268
284
|
*/
|
|
269
285
|
private diff;
|
|
286
|
+
/** The target's skill names, agent templates and connector templates, from object storage. */
|
|
287
|
+
private readContents;
|
|
288
|
+
/**
|
|
289
|
+
* Whether the target's extension package asks for permissions the approved snapshot does not
|
|
290
|
+
* cover (no snapshot, or a blocking addition): it then loads only once approved (§7.4).
|
|
291
|
+
*/
|
|
292
|
+
private needsApproval;
|
|
293
|
+
/**
|
|
294
|
+
* The deployment's extension step: none when the target carries the extension the deployment
|
|
295
|
+
* runs; a version without the extension the deployment runs for the plugin is refused, except
|
|
296
|
+
* for an owner update (`allowRemove`, ruling P3-12': removing code runs none), which removes an
|
|
297
|
+
* installed one; a move of a config-declared extension is refused.
|
|
298
|
+
*/
|
|
299
|
+
private extensionTarget;
|
|
270
300
|
/**
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
301
|
+
* Other platform plugins depending on this one must accept the target (their platform version's
|
|
302
|
+
* dependency range); returns the catalog items of the target's own dependencies (their scope
|
|
303
|
+
* sync is enqueued after the update: rule 9).
|
|
274
304
|
*/
|
|
275
|
-
private
|
|
305
|
+
private checkDependents;
|
|
306
|
+
/** The plugin's live platform components with their current versions. */
|
|
307
|
+
private liveComponents;
|
|
308
|
+
/** The orgs where the plugin is on: a live install (builtin: every live org). */
|
|
309
|
+
private pluginOrgs;
|
|
310
|
+
private liveOrgs;
|
|
276
311
|
}
|
|
277
312
|
export {};
|