@capybara-hq/kernel 0.1.0-rc.3 → 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 +47 -16
- package/dist/admin/admin.controller.js +44 -19
- package/dist/admin/extensions.controller.d.ts +24 -3
- package/dist/admin/extensions.controller.js +48 -8
- 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 +19 -0
- package/dist/agents/agent-lookup.js +21 -0
- package/dist/agents/agent-profile.service.d.ts +29 -0
- package/dist/agents/agent-profile.service.js +117 -0
- package/dist/agents/agents.controller.d.ts +168 -3
- package/dist/agents/agents.controller.js +201 -12
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +36 -6
- package/dist/agents/agents.service.d.ts +64 -27
- package/dist/agents/agents.service.js +199 -74
- package/dist/agents/definition.d.ts +53 -0
- package/dist/agents/definition.js +55 -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/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +9 -3
- package/dist/agents/models.controller.js +19 -4
- 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/profile.d.ts +96 -0
- package/dist/agents/profile.js +51 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +86 -5
- package/dist/agents/templates.controller.js +171 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +476 -53
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +87 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +94 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +36 -0
- package/dist/background/launch.js +70 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +190 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +79 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +243 -0
- package/dist/background/store.d.ts +162 -0
- package/dist/background/store.js +357 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +211 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +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/claude/agents.js +2 -0
- 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 +623 -83
- 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 +1148 -1137
- 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 +21 -3
- package/dist/channels/channels.module.js +2 -0
- package/dist/channels/connections.service.d.ts +16 -1
- package/dist/channels/connections.service.js +38 -4
- 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/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/config/docs.js +3 -1
- package/dist/config/schema.d.ts +24 -2
- package/dist/config/schema.js +145 -19
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -23
- package/dist/conversations/conversations.controller.js +141 -50
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.service.d.ts +108 -9
- package/dist/conversations/conversations.service.js +237 -30
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +21 -6
- package/dist/conversations/event-log.js +70 -1
- package/dist/conversations/events.d.ts +140 -0
- package/dist/conversations/events.js +142 -13
- package/dist/conversations/queue.d.ts +3 -1
- package/dist/conversations/queue.js +13 -2
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +8 -1
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +36 -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 +420 -20
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- 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 +90 -2
- package/dist/errors.js +90 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +7 -2
- package/dist/evals/run-replay.js +42 -7
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.js +13 -7
- package/dist/evals/trajectory.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 +67 -42
- package/dist/extensions/admin-view.d.ts +39 -10
- package/dist/extensions/admin-view.js +111 -20
- package/dist/extensions/blobs.js +1 -0
- 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-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +78 -8
- package/dist/extensions/deployment-config.js +172 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +14 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +45 -2
- package/dist/extensions/host.js +112 -16
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +81 -6
- package/dist/extensions/org-config.js +195 -44
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +19 -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.controller.d.ts +34 -0
- package/dist/extensions/point-defaults.controller.js +71 -0
- package/dist/extensions/point-defaults.d.ts +71 -0
- package/dist/extensions/point-defaults.js +234 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- 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 +31 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- 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.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/cookies.d.ts +20 -5
- package/dist/identity/cookies.js +44 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.d.ts +5 -1
- package/dist/identity/me.controller.js +12 -3
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- 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 +2 -2
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +27 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +19 -2
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- 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/log.d.ts +13 -1
- package/dist/log.js +93 -17
- 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 +43 -9
- package/dist/models/purposes.js +48 -18
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.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 +20 -3
- package/dist/orgs/settings.service.js +19 -4
- 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 +15 -1
- package/dist/runtime/context/build.d.ts +11 -7
- package/dist/runtime/context/build.js +46 -19
- package/dist/runtime/context/claude-tools.d.ts +3 -1
- package/dist/runtime/context/claude-tools.js +8 -6
- package/dist/runtime/context/compaction.js +13 -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 +36 -17
- package/dist/runtime/loop.d.ts +34 -5
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +46 -8
- package/dist/runtime/model-call.js +72 -21
- package/dist/runtime/providers.d.ts +6 -0
- package/dist/runtime/providers.js +8 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +3 -7
- package/dist/runtime/run-queue.d.ts +59 -2
- package/dist/runtime/run-queue.js +311 -38
- package/dist/runtime/run-worker.d.ts +11 -5
- package/dist/runtime/run-worker.js +69 -33
- package/dist/runtime/runtime.module.js +11 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +12 -3
- package/dist/runtime/subagents/definition.js +44 -28
- 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.d.ts +2 -1
- package/dist/runtime/usage-report.js +19 -13
- package/dist/runtime/waits.d.ts +145 -36
- package/dist/runtime/waits.js +423 -109
- 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 +10 -4
- package/dist/sandbox/sandbox.service.d.ts +282 -129
- package/dist/sandbox/sandbox.service.js +736 -381
- 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 +25 -4
- package/dist/tools/builtin-names.d.ts +41 -7
- package/dist/tools/builtin-names.js +59 -7
- 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 +19 -1
- package/dist/tools/builtins/builtin-tools.js +59 -2
- 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.d.ts +1 -1
- package/dist/tools/builtins/sandbox/bash.js +241 -4
- package/dist/tools/builtins/sandbox/common.d.ts +69 -27
- package/dist/tools/builtins/sandbox/common.js +87 -48
- package/dist/tools/builtins/sandbox/deliver.js +1 -1
- 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 +3 -1
- package/dist/tools/builtins/sandbox/index.js +7 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
- package/dist/tools/builtins/sandbox/task-output.js +329 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.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/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/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/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -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 +202 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +120 -8
- package/dist/tools/registry.js +112 -19
- package/dist/tools/tools.module.js +24 -2
- package/dist/tools/validate.js +1 -1
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
|
@@ -1,26 +1,33 @@
|
|
|
1
|
-
import { type AgentTemplate, type AgentTemplateTier, type LocalizedName } from "@capybara-hq/plugin-sdk";
|
|
1
|
+
import { type AgentTemplate, type AgentTemplateTier, type LocalizedName, type PluginManifest } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { Queue } from "bullmq";
|
|
2
3
|
import { ApiError } from "../errors.js";
|
|
3
4
|
import { ExtensionAdminOps } from "../extensions/admin-ops.js";
|
|
5
|
+
import { ExtensionAdmin } from "../extensions/admin-view.js";
|
|
4
6
|
import { ExtensionBlobs } from "../extensions/blobs.js";
|
|
5
7
|
import { ExtensionInstalls } from "../extensions/installs.js";
|
|
6
8
|
import { PluginApproveLock, PluginInstallLock } from "../extensions/locks.js";
|
|
7
9
|
import { ExtensionPackageError } from "../extensions/package.js";
|
|
8
10
|
import { type PackageWarning, type PermissionGroup, type PermissionItem } from "../extensions/permission-view.js";
|
|
9
11
|
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
10
|
-
import {
|
|
12
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
11
13
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
12
14
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
13
15
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
14
16
|
import type { KernelLogger } from "../log.js";
|
|
17
|
+
import { OrgLock } from "../orgs/org-lock.js";
|
|
15
18
|
import type { ProvenanceResult } from "../packages/provenance.js";
|
|
16
19
|
import { type PrefixedStorage, StorageService } from "../storage/storage.service.js";
|
|
17
20
|
import type { ActorOpts, CatalogItemView, PermissionsMismatch, SourceDetail } from "./catalog.service.js";
|
|
18
21
|
import { type ClaudeEntryOverlay } from "./claude/manifest.js";
|
|
19
22
|
import { type TranslationReport } from "./claude/report.js";
|
|
20
23
|
import { CatalogItemLock } from "./locks.js";
|
|
24
|
+
import { PlatformComponents } from "./platform-components.js";
|
|
21
25
|
import { PluginPackageError } from "./plugin-package.js";
|
|
26
|
+
import type { PluginScope } from "./scope.js";
|
|
27
|
+
/** How long after a failed post-import platform sync the migration job runs for the item. */
|
|
28
|
+
export declare const PLATFORM_SYNC_RETRY_MS = 60000;
|
|
22
29
|
/**
|
|
23
|
-
*
|
|
30
|
+
* Platform import of a plugin (package ecosystem spec §4.3): one review for every plugin, whatever
|
|
24
31
|
* it contains (an extension, skills, connector templates, dependencies), confirmed once.
|
|
25
32
|
*
|
|
26
33
|
* prepare: the tgz is always hostile input, and **nothing is written until every check passes**
|
|
@@ -30,7 +37,7 @@ import { PluginPackageError } from "./plugin-package.js";
|
|
|
30
37
|
* refused; name ownership; a downgrade to a version with unrun migrations is refused), each skill by
|
|
31
38
|
* the skill package rules, each connector template against the connector loaded on this replica (or
|
|
32
39
|
* statically when the connector is provided by the plugin's own extension or by a dependency), the
|
|
33
|
-
* catalog name / version conflicts and the actor still
|
|
40
|
+
* catalog name / version conflicts and the actor still a super admin. Dependencies are only
|
|
34
41
|
* resolved against the imported catalog versions for the review (an unresolved one does not block
|
|
35
42
|
* the import, spec §4.1); they are never fetched. Only then is the extension handed to
|
|
36
43
|
* `ExtensionInstalls.ingest` (source `catalog`), the skill / template / icon files written to object
|
|
@@ -39,13 +46,13 @@ import { PluginPackageError } from "./plugin-package.js";
|
|
|
39
46
|
* confirm: `reviewHash` must match the staging; in one transaction it deletes the staging row
|
|
40
47
|
* (confirm works once), locks the extension name and recomputes its deployment state (installed /
|
|
41
48
|
* upgraded / swapped after the review -> `plugin.review_stale`), writes the extension's permission
|
|
42
|
-
* snapshot when it is installed by this import (
|
|
43
|
-
* `extension.permissions_approved` carrying the plugin), and creates the item
|
|
44
|
-
* (`manifest` = the normalized plugin.json,
|
|
45
|
-
*
|
|
46
|
-
* deployment and enabled (`ExtensionAdminOps.install` + `enable`;
|
|
47
|
-
* restart); a failure is returned, not thrown, and an upgrade that was
|
|
48
|
-
* snapshot back.
|
|
49
|
+
* snapshot when it is installed or upgraded by this import (source web, audit
|
|
50
|
+
* `extension.permissions_approved` carrying the plugin), and creates the item (with the scope the
|
|
51
|
+
* admin chose, default `optional`) or adds the version (`manifest` = the normalized plugin.json,
|
|
52
|
+
* `extension_sha256`, the files under the staging prefix). After the commit the plugin's own
|
|
53
|
+
* extension is installed on the deployment and enabled (`ExtensionAdminOps.install` + `enable`;
|
|
54
|
+
* each replica reconciles, no restart); a failure is returned, not thrown, and an upgrade that was
|
|
55
|
+
* not installed gets its old snapshot back.
|
|
49
56
|
*
|
|
50
57
|
* Expired staging is cleaned by the maintenance job `app-staging-cleanup`
|
|
51
58
|
* ({@link PluginImport.cleanupExpired}): it deletes the staging row and its object prefix; a stored
|
|
@@ -54,7 +61,7 @@ import { PluginPackageError } from "./plugin-package.js";
|
|
|
54
61
|
*/
|
|
55
62
|
/** How long a staged import is kept. */
|
|
56
63
|
export declare const PLUGIN_STAGING_TTL_MS: number;
|
|
57
|
-
/** The deployment state of the plugin's extension and what confirming with
|
|
64
|
+
/** The deployment state of the plugin's extension and what confirming does with it. */
|
|
58
65
|
export type ExtensionReviewAction = "install" | "upgrade" | "keep";
|
|
59
66
|
/** The plugin's extension in a review. */
|
|
60
67
|
export interface PluginReviewExtension {
|
|
@@ -63,10 +70,17 @@ export interface PluginReviewExtension {
|
|
|
63
70
|
/** sha256 of the plugin tgz (the package store key). */
|
|
64
71
|
sha256: string;
|
|
65
72
|
/**
|
|
66
|
-
* install: not on the deployment; upgrade: installed from another package
|
|
67
|
-
* import's package replaces it when
|
|
73
|
+
* install: not on the deployment; upgrade: installed from another package whose version is not
|
|
74
|
+
* above the import's, the import's package replaces it when confirmed; keep: this exact package is
|
|
75
|
+
* installed, or the installed version is newer (`olderThanDeployed`): the confirm records the
|
|
76
|
+
* version in the catalog only and never downgrades the deployment.
|
|
68
77
|
*/
|
|
69
78
|
action: ExtensionReviewAction;
|
|
79
|
+
/**
|
|
80
|
+
* The import's version is below the one deployed: the review warns that confirming keeps the
|
|
81
|
+
* deployed extension (action `keep`); absent otherwise.
|
|
82
|
+
*/
|
|
83
|
+
olderThanDeployed?: true;
|
|
70
84
|
/** Installed on the deployment (any version). */
|
|
71
85
|
deployed: boolean;
|
|
72
86
|
/** The installed version (null when not installed). */
|
|
@@ -131,11 +145,19 @@ export interface PluginImportSource {
|
|
|
131
145
|
/** Where it came from (stored on the catalog version as `source_detail`). */
|
|
132
146
|
detail?: SourceDetail;
|
|
133
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* An org upload (spec §14, rulings P3-7, P3-8): the org that will own the plugin. Its admin is
|
|
150
|
+
* authorized (`catalog.upload`) instead of the super admin, its staging is its own, and the new
|
|
151
|
+
* item is owned by it with scope `named: [orgId]`.
|
|
152
|
+
*/
|
|
153
|
+
export interface ImportOwner {
|
|
154
|
+
orgId: string;
|
|
155
|
+
}
|
|
134
156
|
/** The format a plugin was read from: a Capybara plugin, or a translated Claude Code plugin. */
|
|
135
157
|
export type PluginSourceFormat = "capybara" | "claude-code";
|
|
136
158
|
/** The largest license text stored (bytes); a longer one is omitted (`licenseTruncated`). */
|
|
137
159
|
export declare const LICENSE_TEXT_MAX_BYTES = 65536;
|
|
138
|
-
/** The one review of a plugin (the
|
|
160
|
+
/** The one review of a plugin (the super admin sees every component before confirming). */
|
|
139
161
|
export interface PluginReview {
|
|
140
162
|
name: string;
|
|
141
163
|
/** `claude-code`: translated from a Claude Code plugin (no extension; see `translation`). */
|
|
@@ -166,7 +188,10 @@ export interface PluginReview {
|
|
|
166
188
|
/** package.json `name`; null for a git plugin without package.json. */
|
|
167
189
|
packageName: string | null;
|
|
168
190
|
publisher: string;
|
|
191
|
+
/** The plugin.json description's English text (a plain string description is English). */
|
|
169
192
|
description: string;
|
|
193
|
+
/** Its Chinese text (`description.zh`); null without one. */
|
|
194
|
+
descriptionZh: string | null;
|
|
170
195
|
displayName?: LocalizedName;
|
|
171
196
|
license?: string;
|
|
172
197
|
homepage?: string;
|
|
@@ -209,7 +234,7 @@ export interface PluginReview {
|
|
|
209
234
|
/** Digest of everything above that confirm depends on; sent back on confirm. */
|
|
210
235
|
reviewHash: string;
|
|
211
236
|
}
|
|
212
|
-
/** The deploy result of the plugin's extension
|
|
237
|
+
/** The deploy result of the plugin's extension at confirm. */
|
|
213
238
|
export interface ExtensionDeployResult {
|
|
214
239
|
name: string;
|
|
215
240
|
action: "install" | "upgrade";
|
|
@@ -229,8 +254,21 @@ export interface ExtensionDeployResult {
|
|
|
229
254
|
/** The result of {@link PluginImport.confirm}. */
|
|
230
255
|
export interface PluginConfirmResult {
|
|
231
256
|
item: CatalogItemView;
|
|
232
|
-
/**
|
|
257
|
+
/** This confirm created the item (a first import of the name), else it added a version. */
|
|
258
|
+
created: boolean;
|
|
259
|
+
/** null when there is nothing to deploy (no extension, or keep). */
|
|
233
260
|
deploy: ExtensionDeployResult | null;
|
|
261
|
+
/**
|
|
262
|
+
* An org upload with an extension: the version waits for the super admin's confirmation
|
|
263
|
+
* (ruling P3-10); nothing was approved, installed or synced.
|
|
264
|
+
*/
|
|
265
|
+
pending: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* The confirm made the item's first usable version: it created the item, or it replaced an org
|
|
268
|
+
* upload's first version that was still waiting for the super admin with a version without an
|
|
269
|
+
* extension (applied at once, plan Task 6).
|
|
270
|
+
*/
|
|
271
|
+
firstVersion: boolean;
|
|
234
272
|
}
|
|
235
273
|
/** What prepare checks besides the package itself (npm and marketplace imports). */
|
|
236
274
|
export interface PluginPrepareExpect {
|
|
@@ -252,6 +290,33 @@ export interface ReviewProvenance {
|
|
|
252
290
|
provenance: ProvenanceResult;
|
|
253
291
|
warning?: "repository_mismatch";
|
|
254
292
|
}
|
|
293
|
+
/** What an org's staged upload targets (see {@link PluginImport.stagedTarget}). */
|
|
294
|
+
export interface StagedTarget {
|
|
295
|
+
itemId: string;
|
|
296
|
+
version: string;
|
|
297
|
+
/** The review's own hash (an org's review of an update shows a combined one, P3-12). */
|
|
298
|
+
reviewHash: string;
|
|
299
|
+
/** The review has an extension. */
|
|
300
|
+
extension: boolean;
|
|
301
|
+
/** The live item exists already (a new version), owned by the staging's org. */
|
|
302
|
+
existing: boolean;
|
|
303
|
+
/** That item's first version still waits for the super admin (P3-9). */
|
|
304
|
+
awaiting: boolean;
|
|
305
|
+
/** The version is imported already (pre-flight F4). */
|
|
306
|
+
retry: boolean;
|
|
307
|
+
/** The target as the platform updater reads it (the staged manifest and files). */
|
|
308
|
+
target: {
|
|
309
|
+
version: string;
|
|
310
|
+
manifest: PluginManifest;
|
|
311
|
+
object_prefix: string | null;
|
|
312
|
+
files: {
|
|
313
|
+
path: string;
|
|
314
|
+
size: number;
|
|
315
|
+
sha256: string;
|
|
316
|
+
}[];
|
|
317
|
+
extension_sha256: string | null;
|
|
318
|
+
};
|
|
319
|
+
}
|
|
255
320
|
/**
|
|
256
321
|
* The API error of a plugin package that cannot be read in a catalog path: the pre-0.1.0 format ->
|
|
257
322
|
* `catalog.legacy_format`, anything else -> `catalog.invalid_manifest` (issues as details).
|
|
@@ -259,20 +324,27 @@ export interface ReviewProvenance {
|
|
|
259
324
|
export declare function catalogPackageError(e: PluginPackageError | ExtensionPackageError): ApiError;
|
|
260
325
|
export declare class PluginImport {
|
|
261
326
|
private readonly kdb;
|
|
262
|
-
/** The
|
|
327
|
+
/** The super admin lock (identity/super-admin.ts): joins the caller's transaction. */
|
|
263
328
|
private readonly adminLock;
|
|
329
|
+
/** The owner org's lock: an org upload re-checks its admin under it (ruling P3-7). */
|
|
330
|
+
private readonly orgLock;
|
|
264
331
|
private readonly installLock;
|
|
265
332
|
private readonly approveLock;
|
|
266
333
|
private readonly itemLock;
|
|
267
334
|
private readonly config;
|
|
268
335
|
private readonly installs;
|
|
269
336
|
private readonly ops;
|
|
337
|
+
private readonly admin;
|
|
270
338
|
/** Reads a package from the package store (confirm recomputes the permission set). */
|
|
271
339
|
private readonly blobs;
|
|
272
340
|
/** Config-declared names, loaded connectors and extension versions (the extension registry). */
|
|
273
341
|
private readonly registry;
|
|
274
342
|
private readonly log;
|
|
275
343
|
readonly txHost: TransactionHost;
|
|
344
|
+
/** The platform rows of a new item's components, written after the confirm's commit. */
|
|
345
|
+
private readonly platform;
|
|
346
|
+
/** A failed platform sync enqueues a run of the migration job here (it heals the item). */
|
|
347
|
+
private readonly maintenance;
|
|
276
348
|
/** Where plugin files go (the kernel's object storage; the CLI's own, see {@link useCliStorage}). */
|
|
277
349
|
private files;
|
|
278
350
|
/**
|
|
@@ -282,12 +354,18 @@ export declare class PluginImport {
|
|
|
282
354
|
*/
|
|
283
355
|
private connectorsLoaded;
|
|
284
356
|
constructor(kdb: KernelDb,
|
|
285
|
-
/** The
|
|
286
|
-
adminLock:
|
|
357
|
+
/** The super admin lock (identity/super-admin.ts): joins the caller's transaction. */
|
|
358
|
+
adminLock: SuperAdminLock,
|
|
359
|
+
/** The owner org's lock: an org upload re-checks its admin under it (ruling P3-7). */
|
|
360
|
+
orgLock: OrgLock, installLock: PluginInstallLock, approveLock: PluginApproveLock, itemLock: CatalogItemLock, config: KernelConfigService, storage: StorageService, installs: ExtensionInstalls, ops: ExtensionAdminOps, admin: ExtensionAdmin,
|
|
287
361
|
/** Reads a package from the package store (confirm recomputes the permission set). */
|
|
288
362
|
blobs: ExtensionBlobs,
|
|
289
363
|
/** Config-declared names, loaded connectors and extension versions (the extension registry). */
|
|
290
|
-
registry: ExtensionRegistry, log: KernelLogger, txHost: TransactionHost
|
|
364
|
+
registry: ExtensionRegistry, log: KernelLogger, txHost: TransactionHost,
|
|
365
|
+
/** The platform rows of a new item's components, written after the confirm's commit. */
|
|
366
|
+
platform: PlatformComponents,
|
|
367
|
+
/** A failed platform sync enqueues a run of the migration job here (it heals the item). */
|
|
368
|
+
maintenance: Pick<Queue, "add">);
|
|
291
369
|
/** The kernel-schema handle of the current context (the transaction, else the pool). */
|
|
292
370
|
private get db();
|
|
293
371
|
/**
|
|
@@ -297,9 +375,11 @@ export declare class PluginImport {
|
|
|
297
375
|
*/
|
|
298
376
|
useCliStorage(storage: PrefixedStorage): void;
|
|
299
377
|
/**
|
|
300
|
-
* The
|
|
378
|
+
* The super-admin re-check under the lock, in the caller's transaction. `actor` null is the
|
|
301
379
|
* CLI (the operator of the deployment: no account to re-check, audits carry no actor), like
|
|
302
|
-
* `ExtensionInstalls.ingest`.
|
|
380
|
+
* `ExtensionInstalls.ingest`. An org upload (`owner`) re-checks the actor as an admin of the
|
|
381
|
+
* owner org under the org row lock instead (`catalog.upload`; an org deleted meanwhile -> 404
|
|
382
|
+
* `org.not_found`).
|
|
303
383
|
*/
|
|
304
384
|
private authorizeActor;
|
|
305
385
|
/** The re-check alone, in a transaction of its own (before anything is written). */
|
|
@@ -318,6 +398,8 @@ export declare class PluginImport {
|
|
|
318
398
|
};
|
|
319
399
|
provenance?: ReviewProvenance;
|
|
320
400
|
claudeManifestIgnored?: true;
|
|
401
|
+
/** An org upload (a `file` source only, ruling P3-7). */
|
|
402
|
+
owner?: ImportOwner;
|
|
321
403
|
}): Promise<{
|
|
322
404
|
stagingId: string;
|
|
323
405
|
review: PluginReview;
|
|
@@ -371,39 +453,90 @@ export declare class PluginImport {
|
|
|
371
453
|
/**
|
|
372
454
|
* A staged import's review, as prepare returned it, with a marketplace import's permission
|
|
373
455
|
* mismatch when there is one (the import page loads `?staging=<id>` with it). Unknown, expired or
|
|
374
|
-
* already confirmed -> 404 `plugin.staging_not_found`.
|
|
456
|
+
* already confirmed -> 404 `plugin.staging_not_found`. Each sees only its own staging (P3-8):
|
|
457
|
+
* the super admin's routes the platform's (no `owner`), an org's routes that org's.
|
|
375
458
|
*/
|
|
376
|
-
staged(stagingId: string): Promise<{
|
|
459
|
+
staged(stagingId: string, owner?: ImportOwner): Promise<{
|
|
377
460
|
stagingId: string;
|
|
378
461
|
review: PluginReview;
|
|
379
462
|
permissionsMismatch?: PermissionsMismatch;
|
|
380
463
|
}>;
|
|
381
464
|
/**
|
|
382
|
-
*
|
|
383
|
-
*
|
|
465
|
+
* What an org's staged upload targets (P3-12, pre-flight F3): its item, version and review hash,
|
|
466
|
+
* whether the item exists (a new version of the org's own plugin) or the version is imported
|
|
467
|
+
* already (F4), and the target as the platform updater reads it: the staged manifest and files,
|
|
468
|
+
* or the imported version's for a retry. Another org's staging -> 404 `plugin.staging_not_found`.
|
|
469
|
+
*/
|
|
470
|
+
stagedTarget(stagingId: string, owner: ImportOwner): Promise<StagedTarget>;
|
|
471
|
+
/** The catalog item's view (as a confirm returns it). */
|
|
472
|
+
view(itemId: string): Promise<CatalogItemView>;
|
|
473
|
+
/**
|
|
474
|
+
* Confirms a staged import (see the file header). Returns the committed catalog item and the
|
|
475
|
+
* extension's deploy result (a failed deploy is returned, not thrown). `scope` (default
|
|
476
|
+
* `optional`) and `orgs` (only with `named`; each an existing org, else `validation_failed`) are
|
|
477
|
+
* written when this confirm creates the item; a new version of an existing item keeps its scope.
|
|
478
|
+
* The caller enqueues the scope sync of the item after this returns.
|
|
479
|
+
*
|
|
480
|
+
* An org upload (`opts.owner`, spec §14): only that org's staging; the actor re-checked as its
|
|
481
|
+
* admin; `scope` / `orgs` are not taken: a new item is owned by the org, scope `named: [owner]`,
|
|
482
|
+
* not shown to other orgs, `shareable` as given (default false). Custom deny, the name owner and
|
|
483
|
+
* the dependencies are checked again under the item name's lock. A package with an extension
|
|
484
|
+
* is stored and its extension name claimed, nothing approved or installed: the version waits
|
|
485
|
+
* for the super admin (`pending`, ruling P3-10; see {@link commit}).
|
|
384
486
|
*/
|
|
385
487
|
confirm(actor: string | null, stagingId: string, input: {
|
|
386
488
|
reviewHash: string;
|
|
387
|
-
deployExtension: boolean;
|
|
388
489
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
490
|
+
* Enable the extension after installing it (default true). false keeps the install record's
|
|
491
|
+
* desired state (a new install stays disabled), for the bootstrap step's upgrades of a
|
|
492
|
+
* plugin a super admin may have disabled.
|
|
392
493
|
*/
|
|
393
494
|
enable?: boolean;
|
|
495
|
+
/** The new item's scope (default `optional`). */
|
|
496
|
+
scope?: PluginScope;
|
|
497
|
+
/** The orgs of a `named` scope. */
|
|
498
|
+
orgs?: string[];
|
|
394
499
|
/**
|
|
395
500
|
* The skills (by name, each in the review) suggested as pinned when an agent selects them
|
|
396
501
|
* (spec §9.1); replaces the plugin's `pinned` flags in the stored manifest. Omitted keeps
|
|
397
|
-
* them. An admin decision like
|
|
502
|
+
* them. An admin decision like the scope, so not part of `reviewHash`.
|
|
398
503
|
*/
|
|
399
504
|
pinnedSuggestions?: string[];
|
|
400
|
-
|
|
505
|
+
/** An org upload's new item: shared with other orgs by its owner (default false, P3-16). */
|
|
506
|
+
shareable?: boolean;
|
|
507
|
+
}, opts?: ActorOpts & {
|
|
508
|
+
owner?: ImportOwner;
|
|
509
|
+
}): Promise<PluginConfirmResult>;
|
|
510
|
+
/**
|
|
511
|
+
* Writes the platform components of an item's first usable version after a commit made
|
|
512
|
+
* elsewhere (the super admin's confirmation of an org upload, `CatalogScopeService`); a failure
|
|
513
|
+
* is logged and retried by the migration job (see {@link syncPlatform}).
|
|
514
|
+
*/
|
|
515
|
+
writePlatformComponents(itemId: string, version: string): Promise<void>;
|
|
401
516
|
/**
|
|
402
517
|
* The confirm's transaction: the staging row consumed, the extension's action recomputed under
|
|
403
518
|
* its install lock (stale -> `plugin.review_stale`), its snapshot approved, and the catalog
|
|
404
519
|
* version written under the item name's lock.
|
|
520
|
+
*
|
|
521
|
+
* An org upload with an extension (ruling P3-10) approves nothing: under the install lock it
|
|
522
|
+
* claims the extension name for its package (another package's -> 409
|
|
523
|
+
* `extension.name_conflict` naming its owner, before anything is written), and the version
|
|
524
|
+
* written becomes the item's pending one (`pending_version` / `_by` / `_at`; a first version
|
|
525
|
+
* also `awaiting_confirmation`). A later upload replaces the pending version (P3-11). An org
|
|
526
|
+
* upload without an extension for an item whose first version still waits (plan Task 6) replaces
|
|
527
|
+
* that upload and applies at once: the item stops waiting and the claim is released (nothing
|
|
528
|
+
* was installed under it).
|
|
405
529
|
*/
|
|
406
530
|
private commit;
|
|
531
|
+
/**
|
|
532
|
+
* The platform components of a new item. The item is committed already, so a failure is logged
|
|
533
|
+
* and not thrown (like a failed deploy, the import itself succeeded); a run of the platform
|
|
534
|
+
* components migration job (which writes what is missing) is enqueued on `cap-kernel-maintenance`
|
|
535
|
+
* after {@link PLATFORM_SYNC_RETRY_MS}, one per item (deterministic job id). If that run fails
|
|
536
|
+
* too, its `itemsFailed` shows in the super admin's inbox; the daily run and every worker start
|
|
537
|
+
* try again.
|
|
538
|
+
*/
|
|
539
|
+
private syncPlatform;
|
|
407
540
|
/**
|
|
408
541
|
* Writes the extension's permission snapshot for the version being imported (source web; cli
|
|
409
542
|
* without an actor; bootstrap for the bootstrap step), after
|
|
@@ -437,6 +570,14 @@ export declare class PluginImport {
|
|
|
437
570
|
* replica has it or it is gone.
|
|
438
571
|
*/
|
|
439
572
|
private cleanupOne;
|
|
573
|
+
/**
|
|
574
|
+
* An expired org staging's extension package (an org upload stores it at prepare, P3-10): removed
|
|
575
|
+
* with the staging unless something else uses it — an install (running or migrated), a catalog
|
|
576
|
+
* version, another staging — or it was stored by anyone else (the package row's source must be
|
|
577
|
+
* this staging's own `catalog` ref). A platform staging keeps its package, as before. Its object
|
|
578
|
+
* is deleted after the commit.
|
|
579
|
+
*/
|
|
580
|
+
private dropOrgPackage;
|
|
440
581
|
/** npm / marketplace imports: the package must be the one that was asked for. */
|
|
441
582
|
private checkExpected;
|
|
442
583
|
/** A config-declared extension's name cannot be taken by an imported plugin. */
|
|
@@ -448,7 +589,10 @@ export declare class PluginImport {
|
|
|
448
589
|
private checkContent;
|
|
449
590
|
/**
|
|
450
591
|
* The highest imported, non-deleted catalog version satisfying each dependency's range (null when
|
|
451
|
-
* none does).
|
|
592
|
+
* none does). An org upload (`owner`, P3-13) resolves only against items the org can use
|
|
593
|
+
* ({@link usableBy}: confirmed, not disabled, offered to it), and any dependency left unresolved
|
|
594
|
+
* -> 409 `plugin.dependency_unavailable` (details `[{ dependencies }]`, their names): an org
|
|
595
|
+
* upload never brings in anything the org could not install itself.
|
|
452
596
|
*/
|
|
453
597
|
private resolveDependencies;
|
|
454
598
|
/**
|