@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,6 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type Principal } from "../identity/principal.js";
|
|
3
3
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
4
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
|
+
import { type OrgContext } from "../orgs/org.guard.js";
|
|
4
6
|
import { CatalogService, type MarketplaceImportResult } from "./catalog.service.js";
|
|
5
7
|
import { type MarketplaceEntryView, MarketplacesService, type MarketplaceView } from "./marketplaces.service.js";
|
|
6
8
|
declare const AddBody: z.ZodObject<{
|
|
@@ -34,9 +36,9 @@ declare const ImportBody: z.ZodObject<{
|
|
|
34
36
|
version: z.ZodOptional<z.ZodString>;
|
|
35
37
|
}, z.core.$strip>;
|
|
36
38
|
/**
|
|
37
|
-
* Marketplaces (`/api/v1/admin/marketplaces/*`,
|
|
38
|
-
* refresh the official and
|
|
39
|
-
* Writes re-check the
|
|
39
|
+
* Marketplaces (`/api/v1/admin/marketplaces/*`, super admins): create, update, delete and
|
|
40
|
+
* refresh the official and custom marketplaces, browse entries, import from a marketplace.
|
|
41
|
+
* Writes re-check the super admin inside the service's lock and are audited.
|
|
40
42
|
*/
|
|
41
43
|
export declare class MarketplacesController {
|
|
42
44
|
private readonly marketplaces;
|
|
@@ -49,7 +51,7 @@ export declare class MarketplacesController {
|
|
|
49
51
|
offline: boolean;
|
|
50
52
|
}>;
|
|
51
53
|
/**
|
|
52
|
-
* Adds
|
|
54
|
+
* Adds a custom marketplace (https URL and mirrors; the token is kept in secrets and sent only
|
|
53
55
|
* to the URL's origin). A git URL (`…/*.git`, `owner/repo`, or any URL with `form: "git"`) is a
|
|
54
56
|
* git marketplace with an optional `ref`; anything else is a marketplace.json URL.
|
|
55
57
|
*/
|
|
@@ -71,7 +73,7 @@ export declare class MarketplacesController {
|
|
|
71
73
|
*/
|
|
72
74
|
update(principal: Principal, id: string, body: z.infer<typeof PatchBody>): Promise<MarketplaceView>;
|
|
73
75
|
/**
|
|
74
|
-
* Deletes
|
|
76
|
+
* Deletes a custom marketplace (imported catalog items are kept); official -> 409
|
|
75
77
|
* `marketplace.builtin`.
|
|
76
78
|
*/
|
|
77
79
|
remove(principal: Principal, id: string): Promise<void>;
|
|
@@ -94,4 +96,19 @@ export declare class MarketplacesController {
|
|
|
94
96
|
*/
|
|
95
97
|
importEntry(principal: Principal, id: string, name: string, body: z.infer<typeof ImportBody>): Promise<MarketplaceImportResult>;
|
|
96
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Org admins browse the marketplaces read-only (`GET /api/v1/orgs/:orgId/marketplaces/entries`,
|
|
101
|
+
* `catalog.decide`; plugin scope spec §5.1 rule 3) to request an import. The deployment setting
|
|
102
|
+
* `orgMarketplaceBrowse` off -> 404 `not_found`. An entry imported as an item the org can neither
|
|
103
|
+
* see nor request (a hidden `named` item) reads as not imported (`adopted: null`).
|
|
104
|
+
*/
|
|
105
|
+
export declare class OrgMarketplacesController {
|
|
106
|
+
private readonly marketplaces;
|
|
107
|
+
private readonly kdb;
|
|
108
|
+
constructor(marketplaces: MarketplacesService, kdb: KernelDb);
|
|
109
|
+
entries(org: OrgContext, q: z.infer<typeof EntriesQuery>): Promise<{
|
|
110
|
+
items: MarketplaceEntryView[];
|
|
111
|
+
truncated: boolean;
|
|
112
|
+
}>;
|
|
113
|
+
}
|
|
97
114
|
export {};
|
|
@@ -10,12 +10,17 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
10
10
|
import { Controller, Delete, Get, HttpCode, Inject, Param, Patch, Post } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { MARKETPLACE_MAX_MIRRORS } from "../config/schema.js";
|
|
13
|
-
import {
|
|
13
|
+
import { ApiError } from "../errors.js";
|
|
14
|
+
import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
|
|
15
|
+
import { readOrgMarketplaceBrowse } from "../identity/settings.js";
|
|
14
16
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
17
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
15
18
|
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
16
19
|
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
20
|
+
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
17
21
|
import { CatalogService } from "./catalog.service.js";
|
|
18
22
|
import { MarketplacesService, } from "./marketplaces.service.js";
|
|
23
|
+
import { itemsSeenBy } from "./scope-state.js";
|
|
19
24
|
const Url = z.string().min(1).max(2000);
|
|
20
25
|
const Form = z.enum(["http", "git"]);
|
|
21
26
|
const Ref = z.string().min(1).max(256);
|
|
@@ -58,9 +63,9 @@ class MarketplaceImportBody extends createZodDto(ImportBody, "MarketplaceImportB
|
|
|
58
63
|
class MarketplacePatchBody extends createZodDto(PatchBody, "MarketplacePatchBody") {
|
|
59
64
|
}
|
|
60
65
|
/**
|
|
61
|
-
* Marketplaces (`/api/v1/admin/marketplaces/*`,
|
|
62
|
-
* refresh the official and
|
|
63
|
-
* Writes re-check the
|
|
66
|
+
* Marketplaces (`/api/v1/admin/marketplaces/*`, super admins): create, update, delete and
|
|
67
|
+
* refresh the official and custom marketplaces, browse entries, import from a marketplace.
|
|
68
|
+
* Writes re-check the super admin inside the service's lock and are audited.
|
|
64
69
|
*/
|
|
65
70
|
let MarketplacesController = class MarketplacesController {
|
|
66
71
|
marketplaces;
|
|
@@ -79,7 +84,7 @@ let MarketplacesController = class MarketplacesController {
|
|
|
79
84
|
};
|
|
80
85
|
}
|
|
81
86
|
/**
|
|
82
|
-
* Adds
|
|
87
|
+
* Adds a custom marketplace (https URL and mirrors; the token is kept in secrets and sent only
|
|
83
88
|
* to the URL's origin). A git URL (`…/*.git`, `owner/repo`, or any URL with `form: "git"`) is a
|
|
84
89
|
* git marketplace with an optional `ref`; anything else is a marketplace.json URL.
|
|
85
90
|
*/
|
|
@@ -124,7 +129,7 @@ let MarketplacesController = class MarketplacesController {
|
|
|
124
129
|
}, actorOpts(actor));
|
|
125
130
|
}
|
|
126
131
|
/**
|
|
127
|
-
* Deletes
|
|
132
|
+
* Deletes a custom marketplace (imported catalog items are kept); official -> 409
|
|
128
133
|
* `marketplace.builtin`.
|
|
129
134
|
*/
|
|
130
135
|
async remove(principal, id) {
|
|
@@ -200,9 +205,53 @@ __decorate([
|
|
|
200
205
|
], MarketplacesController.prototype, "importEntry", null);
|
|
201
206
|
MarketplacesController = __decorate([
|
|
202
207
|
Controller("api/v1/admin/marketplaces"),
|
|
203
|
-
|
|
208
|
+
SuperAdmin(),
|
|
204
209
|
__param(0, Inject(MarketplacesService)),
|
|
205
210
|
__param(1, Inject(CatalogService)),
|
|
206
211
|
__param(2, Inject(KernelConfigService))
|
|
207
212
|
], MarketplacesController);
|
|
208
213
|
export { MarketplacesController };
|
|
214
|
+
/**
|
|
215
|
+
* Org admins browse the marketplaces read-only (`GET /api/v1/orgs/:orgId/marketplaces/entries`,
|
|
216
|
+
* `catalog.decide`; plugin scope spec §5.1 rule 3) to request an import. The deployment setting
|
|
217
|
+
* `orgMarketplaceBrowse` off -> 404 `not_found`. An entry imported as an item the org can neither
|
|
218
|
+
* see nor request (a hidden `named` item) reads as not imported (`adopted: null`).
|
|
219
|
+
*/
|
|
220
|
+
let OrgMarketplacesController = class OrgMarketplacesController {
|
|
221
|
+
marketplaces;
|
|
222
|
+
kdb;
|
|
223
|
+
constructor(marketplaces, kdb) {
|
|
224
|
+
this.marketplaces = marketplaces;
|
|
225
|
+
this.kdb = kdb;
|
|
226
|
+
}
|
|
227
|
+
async entries(org, q) {
|
|
228
|
+
if (!(await readOrgMarketplaceBrowse(this.kdb.db))) {
|
|
229
|
+
throw new ApiError("not_found", "Marketplace browsing is off for organizations");
|
|
230
|
+
}
|
|
231
|
+
const r = await this.marketplaces.entries({
|
|
232
|
+
...(q.sourceId !== undefined && { marketplaceId: q.sourceId }),
|
|
233
|
+
...(q.q !== undefined && { q: q.q }),
|
|
234
|
+
});
|
|
235
|
+
// A hidden `named` item the org is not listed on stays unknown to it: the entry reads as not
|
|
236
|
+
// imported
|
|
237
|
+
const seen = await itemsSeenBy(this.kdb.db, org.orgId, r.items.flatMap((e) => (e.adopted ? [e.adopted.itemId] : [])));
|
|
238
|
+
return {
|
|
239
|
+
...r,
|
|
240
|
+
items: r.items.map((e) => e.adopted === null || seen.has(e.adopted.itemId)
|
|
241
|
+
? e
|
|
242
|
+
: { ...e, adopted: null, newerAvailable: false, contentChanged: false }),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
__decorate([
|
|
247
|
+
Get("entries"),
|
|
248
|
+
OrgAction("catalog.decide"),
|
|
249
|
+
__param(0, CurrentOrg()),
|
|
250
|
+
__param(1, ZQuery(MarketplaceEntriesQuery))
|
|
251
|
+
], OrgMarketplacesController.prototype, "entries", null);
|
|
252
|
+
OrgMarketplacesController = __decorate([
|
|
253
|
+
Controller("api/v1/orgs/:orgId/marketplaces"),
|
|
254
|
+
__param(0, Inject(MarketplacesService)),
|
|
255
|
+
__param(1, Inject(KernelDb))
|
|
256
|
+
], OrgMarketplacesController);
|
|
257
|
+
export { OrgMarketplacesController };
|
|
@@ -2,7 +2,7 @@ import { type MarketplaceEntry, type MarketplaceSource } from "@capybara-hq/plug
|
|
|
2
2
|
import { type KernelConfig } from "../config/schema.js";
|
|
3
3
|
import { type Keyring } from "../ctx/secrets.js";
|
|
4
4
|
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
5
|
-
import {
|
|
5
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
6
6
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
7
7
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
8
8
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -74,6 +74,11 @@ export interface MarketplaceEntryView {
|
|
|
74
74
|
en: string;
|
|
75
75
|
zh?: string;
|
|
76
76
|
};
|
|
77
|
+
/** The entry's display name (copied from the plugin's `plugin.json`); null without one. */
|
|
78
|
+
displayName: {
|
|
79
|
+
zh: string;
|
|
80
|
+
en: string;
|
|
81
|
+
} | null;
|
|
77
82
|
minKernel: string | null;
|
|
78
83
|
homepage: string | null;
|
|
79
84
|
permissions: {
|
|
@@ -83,6 +88,13 @@ export interface MarketplaceEntryView {
|
|
|
83
88
|
source: MarketplaceSource;
|
|
84
89
|
/** `claude-code` for an entry of a Claude Code marketplace (`.claude-plugin/marketplace.json`). */
|
|
85
90
|
format: "capybara" | "claude-code";
|
|
91
|
+
/**
|
|
92
|
+
* The marketplace deprecates this version (`deprecated`, spec ruling Task 13): its reason, `null`
|
|
93
|
+
* without one; `null` when not deprecated. Importing it is refused (`marketplace.entry_deprecated`).
|
|
94
|
+
*/
|
|
95
|
+
deprecated: {
|
|
96
|
+
reason: string | null;
|
|
97
|
+
} | null;
|
|
86
98
|
/** `minKernel` is satisfied by this deployment. */
|
|
87
99
|
compatible: boolean;
|
|
88
100
|
/** The kernel can import this entry's source now. */
|
|
@@ -93,7 +105,10 @@ export interface MarketplaceEntryView {
|
|
|
93
105
|
itemId: string;
|
|
94
106
|
versions: string[];
|
|
95
107
|
} | null;
|
|
96
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Adopted, and this compatible entry, not deprecated, is newer than the newest imported version
|
|
110
|
+
* (never automatic).
|
|
111
|
+
*/
|
|
97
112
|
newerAvailable: boolean;
|
|
98
113
|
/**
|
|
99
114
|
* "Content changed at the same version" (spec §5.3): a version of this entry's release is
|
|
@@ -106,6 +121,8 @@ export interface MarketplaceEntryView {
|
|
|
106
121
|
}
|
|
107
122
|
export interface ActorOpts {
|
|
108
123
|
actorTokenId?: string;
|
|
124
|
+
/** Merged into the audit detail (a write made through the Platform tool: `via`, …). */
|
|
125
|
+
auditDetail?: Record<string, unknown>;
|
|
109
126
|
}
|
|
110
127
|
/** A plugin name from a repo URL or path segment (lower case, invalid characters as `-`). */
|
|
111
128
|
export declare function pluginNameFrom(segment: string): string;
|
|
@@ -164,10 +181,17 @@ export declare function headsToResolve(entries: readonly MarketplaceEntry[], imp
|
|
|
164
181
|
/** The host versions (an entry's `minKernel` is judged against them). */
|
|
165
182
|
export declare const HOST_VERSIONS: {
|
|
166
183
|
readonly kernel: string;
|
|
167
|
-
readonly sdk: "0.1.0-rc.
|
|
184
|
+
readonly sdk: "0.1.0-rc.3";
|
|
168
185
|
};
|
|
169
186
|
/** Whether this deployment satisfies the entry's `minKernel`. */
|
|
170
187
|
export declare const entryCompatible: (e: Pick<MarketplaceEntry, "minKernel">) => boolean;
|
|
188
|
+
/** Whether the marketplace marks the entry deprecated (`deprecated: true` or with a reason). */
|
|
189
|
+
export declare const entryDeprecated: (e: MarketplaceEntry) => boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Refuses importing (or requesting) a deprecated marketplace entry: 409
|
|
192
|
+
* `marketplace.entry_deprecated`, its reason in the message and details.
|
|
193
|
+
*/
|
|
194
|
+
export declare function assertEntryNotDeprecated(e: MarketplaceEntry): void;
|
|
171
195
|
/**
|
|
172
196
|
* The form of a marketplace address (spec §5.1): `owner/repo` (expanded to GitHub), an https URL
|
|
173
197
|
* whose path ends in `.git`, or any URL with `form: "git"` is a git repository; anything else
|
|
@@ -181,6 +205,8 @@ export declare function marketplaceForm(url: string, form?: MarketplaceForm): {
|
|
|
181
205
|
export declare function entrySourceHost(e: Pick<MarketplaceEntry, "source">): string | undefined;
|
|
182
206
|
/** Whether `marketplaces.allowedHosts` lets an entry download from `host` (empty: any host). */
|
|
183
207
|
export declare function hostAllowed(host: string, config: KernelConfig): boolean;
|
|
208
|
+
/** Why an entry is not importable from a marketplace of `form`, or undefined when it is. */
|
|
209
|
+
export declare function unimportable(e: MarketplaceEntry, form: MarketplaceForm, config: KernelConfig): MarketplaceEntryUnimportable | undefined;
|
|
184
210
|
/** What an import needs to know about the marketplace of an entry. */
|
|
185
211
|
export interface MarketplaceOfEntry {
|
|
186
212
|
url: string;
|
|
@@ -195,10 +221,24 @@ export declare const sourceEffective: (row: {
|
|
|
195
221
|
builtin: boolean;
|
|
196
222
|
enabled: boolean;
|
|
197
223
|
}, config: KernelConfig) => boolean;
|
|
224
|
+
/**
|
|
225
|
+
* The default entry of a marketplace plugin (`version` `""`: the entry without a version), the
|
|
226
|
+
* same order as the web's market row (`groupMarketplaceEntries`, apps/web/src/lib/catalog.ts):
|
|
227
|
+
* the newest `usable` versioned entry, a stable version before a prerelease; else the entry
|
|
228
|
+
* without a version that is not deprecated; else the newest versioned one that is not deprecated;
|
|
229
|
+
* else the entry without a version; else the newest.
|
|
230
|
+
*/
|
|
231
|
+
export declare function pickDefaultEntry<T extends {
|
|
232
|
+
version: string;
|
|
233
|
+
}>(entries: readonly T[], o: {
|
|
234
|
+
usable: (e: T) => boolean;
|
|
235
|
+
deprecated: (e: T) => boolean;
|
|
236
|
+
}): T | undefined;
|
|
198
237
|
/**
|
|
199
238
|
* Reads a marketplace entry for import: `version` given -> the entry listing that version; omitted
|
|
200
|
-
* ->
|
|
201
|
-
*
|
|
239
|
+
* -> {@link pickDefaultEntry} over the compatible, importable entries that are not deprecated
|
|
240
|
+
* (a fallback is refused later as incompatible or deprecated). Marketplace missing ->
|
|
241
|
+
* `marketplace.not_found`;
|
|
202
242
|
* marketplace disabled (official offline included), entry or version missing ->
|
|
203
243
|
* `marketplace.entry_not_found`.
|
|
204
244
|
*/
|
|
@@ -209,9 +249,9 @@ export declare function loadMarketplaceEntry(db: KernelSchemaDb, config: KernelC
|
|
|
209
249
|
claude?: ClaudeEntryOverlay;
|
|
210
250
|
}>;
|
|
211
251
|
/**
|
|
212
|
-
* Marketplaces (D16 / C25 / C26, `/api/v1/admin/marketplaces/*`,
|
|
252
|
+
* Marketplaces (D16 / C25 / C26, `/api/v1/admin/marketplaces/*`, super admins only): the official
|
|
213
253
|
* marketplace (config `marketplaces.official.*`, synced at startup into the marketplace with id
|
|
214
|
-
* `official`) and
|
|
254
|
+
* `official`) and custom marketplaces (PG, optional token in secrets). A refresh (maintenance
|
|
215
255
|
* job `catalogs-refresh` every `marketplaces.refreshIntervalMinutes` minutes, or manual) tries the main
|
|
216
256
|
* URL and then the mirrors with If-None-Match; on success it replaces that marketplace's cached
|
|
217
257
|
* entries as a whole, when all fail (an invalid manifest included) it keeps the previous ones with
|
|
@@ -220,7 +260,7 @@ export declare function loadMarketplaceEntry(db: KernelSchemaDb, config: KernelC
|
|
|
220
260
|
*/
|
|
221
261
|
export declare class MarketplacesService {
|
|
222
262
|
private readonly kdb;
|
|
223
|
-
/** The
|
|
263
|
+
/** The super admin lock (identity/super-admin.ts): joins the caller's transaction. */
|
|
224
264
|
private readonly adminLock;
|
|
225
265
|
private readonly sourceLock;
|
|
226
266
|
private readonly config;
|
|
@@ -228,8 +268,8 @@ export declare class MarketplacesService {
|
|
|
228
268
|
private readonly log;
|
|
229
269
|
readonly txHost: TransactionHost;
|
|
230
270
|
constructor(kdb: KernelDb,
|
|
231
|
-
/** The
|
|
232
|
-
adminLock:
|
|
271
|
+
/** The super admin lock (identity/super-admin.ts): joins the caller's transaction. */
|
|
272
|
+
adminLock: SuperAdminLock, sourceLock: CatalogSourceLock, config: KernelConfigService, keyring: Keyring, log: KernelLogger, txHost: TransactionHost);
|
|
233
273
|
/** The kernel-schema handle of the current context (the transaction, else the pool). */
|
|
234
274
|
private get db();
|
|
235
275
|
/**
|
|
@@ -245,7 +285,7 @@ export declare class MarketplacesService {
|
|
|
245
285
|
list(): Promise<MarketplaceView[]>;
|
|
246
286
|
get(id: string): Promise<MarketplaceView>;
|
|
247
287
|
/**
|
|
248
|
-
* Adds
|
|
288
|
+
* Adds a custom marketplace (audit `marketplace.added`). URL and mirrors must be https,
|
|
249
289
|
* without user info. The form follows {@link marketplaceForm}; a git marketplace may name a `ref`
|
|
250
290
|
* (branch or tag, default the remote HEAD) and has no mirrors.
|
|
251
291
|
*/
|
|
@@ -259,7 +299,7 @@ export declare class MarketplacesService {
|
|
|
259
299
|
}, opts?: ActorOpts): Promise<MarketplaceView>;
|
|
260
300
|
private writeAdd;
|
|
261
301
|
/**
|
|
262
|
-
* Updates
|
|
302
|
+
* Updates a custom marketplace (audit `marketplace.updated`, listing the changed fields, the
|
|
263
303
|
* token's value never recorded; not written when unchanged). `token: null` clears the token.
|
|
264
304
|
* Official only takes `enabled`, any other field -> `marketplace.builtin`. Changing the URL, form
|
|
265
305
|
* or ref clears the ETag and the last commit (the next refresh reads everything again); a new URL
|
|
@@ -278,7 +318,7 @@ export declare class MarketplacesService {
|
|
|
278
318
|
}, opts?: ActorOpts): Promise<MarketplaceView>;
|
|
279
319
|
private writeUpdate;
|
|
280
320
|
/**
|
|
281
|
-
* Deletes
|
|
321
|
+
* Deletes a custom marketplace (audit `marketplace.removed`): its cached entries and token
|
|
282
322
|
* are deleted; imported catalog items are kept (their marketplace becomes null). Official can
|
|
283
323
|
* only be disabled -> `marketplace.builtin`.
|
|
284
324
|
*/
|
|
@@ -318,7 +358,7 @@ export declare class MarketplacesService {
|
|
|
318
358
|
* entry unknown (never fails the refresh). Returns `name\0version` -> head.
|
|
319
359
|
*/
|
|
320
360
|
private resolveHeads;
|
|
321
|
-
/** The token of
|
|
361
|
+
/** The token of a custom marketplace (undefined without one; official never has one). */
|
|
322
362
|
token(id: string): Promise<string | undefined>;
|
|
323
363
|
/** Refreshes every effective marketplace (maintenance job `catalogs-refresh`), one failing not stopping the rest. */
|
|
324
364
|
refreshAll(signal: AbortSignal): Promise<void>;
|
|
@@ -8,7 +8,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
11
|
-
import { CATALOG_ITEM_NAME_RE, marketplaceEntryVersion, PLUGIN_MANIFEST_FILE, parseMarketplaceManifest, parsePluginManifest, SDK_VERSION, SEMVER_VERSION_RE, } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { CATALOG_ITEM_NAME_RE, marketplaceEntryDeprecation, marketplaceEntryVersion, PLUGIN_MANIFEST_FILE, parseMarketplaceManifest, parsePluginManifest, pluginDescription, SDK_VERSION, SEMVER_VERSION_RE, } from "@capybara-hq/plugin-sdk";
|
|
12
12
|
import { Inject, Injectable } from "@nestjs/common";
|
|
13
13
|
import { sql } from "kysely";
|
|
14
14
|
import semver from "semver";
|
|
@@ -18,7 +18,7 @@ import { createSecrets } from "../ctx/secrets.js";
|
|
|
18
18
|
import { ApiError } from "../errors.js";
|
|
19
19
|
import { DEPLOYMENT_SECRETS_ORG } from "../extensions/deployment-config-store.js";
|
|
20
20
|
import { audit } from "../identity/audit.js";
|
|
21
|
-
import {
|
|
21
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
22
22
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
23
23
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
24
24
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -243,6 +243,20 @@ export function headsToResolve(entries, imported, config, max) {
|
|
|
243
243
|
export const HOST_VERSIONS = { kernel: KERNEL_VERSION, sdk: SDK_VERSION };
|
|
244
244
|
/** Whether this deployment satisfies the entry's `minKernel`. */
|
|
245
245
|
export const entryCompatible = (e) => e.minKernel === undefined || semver.gte(HOST_VERSIONS.kernel, e.minKernel);
|
|
246
|
+
/** Whether the marketplace marks the entry deprecated (`deprecated: true` or with a reason). */
|
|
247
|
+
export const entryDeprecated = (e) => marketplaceEntryDeprecation(e) !== null;
|
|
248
|
+
/**
|
|
249
|
+
* Refuses importing (or requesting) a deprecated marketplace entry: 409
|
|
250
|
+
* `marketplace.entry_deprecated`, its reason in the message and details.
|
|
251
|
+
*/
|
|
252
|
+
export function assertEntryNotDeprecated(e) {
|
|
253
|
+
const d = marketplaceEntryDeprecation(e);
|
|
254
|
+
if (d === null)
|
|
255
|
+
return;
|
|
256
|
+
const version = marketplaceEntryVersion(e);
|
|
257
|
+
throw new ApiError("marketplace.entry_deprecated", `${e.name}${version !== null ? `@${version}` : ""} is deprecated by its marketplace` +
|
|
258
|
+
`${d.reason !== null ? `: ${d.reason}` : ""}; import another version`, [{ entry: e.name, version, reason: d.reason }]);
|
|
259
|
+
}
|
|
246
260
|
/**
|
|
247
261
|
* The form of a marketplace address (spec §5.1): `owner/repo` (expanded to GitHub), an https URL
|
|
248
262
|
* whose path ends in `.git`, or any URL with `form: "git"` is a git repository; anything else
|
|
@@ -282,7 +296,7 @@ export function hostAllowed(host, config) {
|
|
|
282
296
|
return allowed.length === 0 || allowed.includes(host.toLowerCase());
|
|
283
297
|
}
|
|
284
298
|
/** Why an entry is not importable from a marketplace of `form`, or undefined when it is. */
|
|
285
|
-
function unimportable(e, form, config) {
|
|
299
|
+
export function unimportable(e, form, config) {
|
|
286
300
|
if ("path" in e.source && form !== "git")
|
|
287
301
|
return "path_needs_git_marketplace";
|
|
288
302
|
const host = entrySourceHost(e);
|
|
@@ -292,10 +306,30 @@ function unimportable(e, form, config) {
|
|
|
292
306
|
}
|
|
293
307
|
/** 来源是否生效:本身启用,official 还要配置没关。 */
|
|
294
308
|
export const sourceEffective = (row, config) => row.enabled && (!row.builtin || config.marketplaces.official.enabled);
|
|
309
|
+
/**
|
|
310
|
+
* The default entry of a marketplace plugin (`version` `""`: the entry without a version), the
|
|
311
|
+
* same order as the web's market row (`groupMarketplaceEntries`, apps/web/src/lib/catalog.ts):
|
|
312
|
+
* the newest `usable` versioned entry, a stable version before a prerelease; else the entry
|
|
313
|
+
* without a version that is not deprecated; else the newest versioned one that is not deprecated;
|
|
314
|
+
* else the entry without a version; else the newest.
|
|
315
|
+
*/
|
|
316
|
+
export function pickDefaultEntry(entries, o) {
|
|
317
|
+
const versioned = entries
|
|
318
|
+
.filter((e) => e.version !== "")
|
|
319
|
+
.sort((a, b) => newestFirst(a.version, b.version));
|
|
320
|
+
const bare = entries.filter((e) => e.version === "");
|
|
321
|
+
return (versioned.find((e) => o.usable(e) && semver.prerelease(e.version) === null) ??
|
|
322
|
+
versioned.find(o.usable) ??
|
|
323
|
+
bare.find((e) => !o.deprecated(e)) ??
|
|
324
|
+
versioned.find((e) => !o.deprecated(e)) ??
|
|
325
|
+
bare[0] ??
|
|
326
|
+
versioned[0]);
|
|
327
|
+
}
|
|
295
328
|
/**
|
|
296
329
|
* Reads a marketplace entry for import: `version` given -> the entry listing that version; omitted
|
|
297
|
-
* ->
|
|
298
|
-
*
|
|
330
|
+
* -> {@link pickDefaultEntry} over the compatible, importable entries that are not deprecated
|
|
331
|
+
* (a fallback is refused later as incompatible or deprecated). Marketplace missing ->
|
|
332
|
+
* `marketplace.not_found`;
|
|
299
333
|
* marketplace disabled (official offline included), entry or version missing ->
|
|
300
334
|
* `marketplace.entry_not_found`.
|
|
301
335
|
*/
|
|
@@ -325,13 +359,13 @@ export async function loadMarketplaceEntry(db, config, sourceId, name, version)
|
|
|
325
359
|
pickedRow = entries.find((e) => e.version === version);
|
|
326
360
|
}
|
|
327
361
|
else {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
362
|
+
pickedRow = pickDefaultEntry(entries, {
|
|
363
|
+
// compatible, importable, not deprecated
|
|
364
|
+
usable: (e) => entryCompatible(e.entry) &&
|
|
365
|
+
unimportable(e.entry, src.form, config) === undefined &&
|
|
366
|
+
!entryDeprecated(e.entry),
|
|
367
|
+
deprecated: (e) => entryDeprecated(e.entry),
|
|
368
|
+
});
|
|
335
369
|
}
|
|
336
370
|
const picked = pickedRow?.entry;
|
|
337
371
|
if (!picked) {
|
|
@@ -353,9 +387,9 @@ export async function loadMarketplaceEntry(db, config, sourceId, name, version)
|
|
|
353
387
|
};
|
|
354
388
|
}
|
|
355
389
|
/**
|
|
356
|
-
* Marketplaces (D16 / C25 / C26, `/api/v1/admin/marketplaces/*`,
|
|
390
|
+
* Marketplaces (D16 / C25 / C26, `/api/v1/admin/marketplaces/*`, super admins only): the official
|
|
357
391
|
* marketplace (config `marketplaces.official.*`, synced at startup into the marketplace with id
|
|
358
|
-
* `official`) and
|
|
392
|
+
* `official`) and custom marketplaces (PG, optional token in secrets). A refresh (maintenance
|
|
359
393
|
* job `catalogs-refresh` every `marketplaces.refreshIntervalMinutes` minutes, or manual) tries the main
|
|
360
394
|
* URL and then the mirrors with If-None-Match; on success it replaces that marketplace's cached
|
|
361
395
|
* entries as a whole, when all fail (an invalid manifest included) it keeps the previous ones with
|
|
@@ -371,7 +405,7 @@ let MarketplacesService = class MarketplacesService {
|
|
|
371
405
|
log;
|
|
372
406
|
txHost;
|
|
373
407
|
constructor(kdb,
|
|
374
|
-
/** The
|
|
408
|
+
/** The super admin lock (identity/super-admin.ts): joins the caller's transaction. */
|
|
375
409
|
adminLock, sourceLock, config, keyring, log, txHost) {
|
|
376
410
|
this.kdb = kdb;
|
|
377
411
|
this.adminLock = adminLock;
|
|
@@ -447,7 +481,7 @@ let MarketplacesService = class MarketplacesService {
|
|
|
447
481
|
return (await this.views([row]))[0];
|
|
448
482
|
}
|
|
449
483
|
/**
|
|
450
|
-
* Adds
|
|
484
|
+
* Adds a custom marketplace (audit `marketplace.added`). URL and mirrors must be https,
|
|
451
485
|
* without user info. The form follows {@link marketplaceForm}; a git marketplace may name a `ref`
|
|
452
486
|
* (branch or tag, default the remote HEAD) and has no mirrors.
|
|
453
487
|
*/
|
|
@@ -495,11 +529,12 @@ let MarketplacesService = class MarketplacesService {
|
|
|
495
529
|
...(input.ref !== undefined && { ref: input.ref }),
|
|
496
530
|
mirrors: input.mirrors ?? [],
|
|
497
531
|
hasToken: input.token !== undefined,
|
|
532
|
+
...opts.auditDetail,
|
|
498
533
|
},
|
|
499
534
|
});
|
|
500
535
|
}
|
|
501
536
|
/**
|
|
502
|
-
* Updates
|
|
537
|
+
* Updates a custom marketplace (audit `marketplace.updated`, listing the changed fields, the
|
|
503
538
|
* token's value never recorded; not written when unchanged). `token: null` clears the token.
|
|
504
539
|
* Official only takes `enabled`, any other field -> `marketplace.builtin`. Changing the URL, form
|
|
505
540
|
* or ref clears the ETag and the last commit (the next refresh reads everything again); a new URL
|
|
@@ -608,7 +643,7 @@ let MarketplacesService = class MarketplacesService {
|
|
|
608
643
|
});
|
|
609
644
|
}
|
|
610
645
|
/**
|
|
611
|
-
* Deletes
|
|
646
|
+
* Deletes a custom marketplace (audit `marketplace.removed`): its cached entries and token
|
|
612
647
|
* are deleted; imported catalog items are kept (their marketplace becomes null). Official can
|
|
613
648
|
* only be disabled -> `marketplace.builtin`.
|
|
614
649
|
*/
|
|
@@ -847,9 +882,14 @@ let MarketplacesService = class MarketplacesService {
|
|
|
847
882
|
if ("errors" in m) {
|
|
848
883
|
throw new MarketplaceInvalidError(`the repository is a single plugin, but its ${PLUGIN_MANIFEST_FILE} is invalid: ${m.errors.slice(0, 5).join("; ")}`, m.errors);
|
|
849
884
|
}
|
|
885
|
+
const d = pluginDescription(m.description);
|
|
850
886
|
entry = {
|
|
851
887
|
name: m.name,
|
|
852
|
-
summary: {
|
|
888
|
+
summary: {
|
|
889
|
+
en: d.en.slice(0, SUMMARY_MAX),
|
|
890
|
+
...(d.zh !== undefined && { zh: d.zh.slice(0, SUMMARY_MAX) }),
|
|
891
|
+
},
|
|
892
|
+
...(m.displayName !== undefined && { displayName: m.displayName }),
|
|
853
893
|
version: m.version,
|
|
854
894
|
source: { path: "." },
|
|
855
895
|
};
|
|
@@ -935,7 +975,7 @@ let MarketplacesService = class MarketplacesService {
|
|
|
935
975
|
}));
|
|
936
976
|
return out;
|
|
937
977
|
}
|
|
938
|
-
/** The token of
|
|
978
|
+
/** The token of a custom marketplace (undefined without one; official never has one). */
|
|
939
979
|
async token(id) {
|
|
940
980
|
return (await this.secrets().get(DEPLOYMENT_SECRETS_ORG, tokenKey(id))) ?? undefined;
|
|
941
981
|
}
|
|
@@ -1000,6 +1040,8 @@ let MarketplacesService = class MarketplacesService {
|
|
|
1000
1040
|
eb(sql `coalesce(e.npm, '')`, "ilike", like),
|
|
1001
1041
|
eb(sql `e.entry->'summary'->>'en'`, "ilike", like),
|
|
1002
1042
|
eb(sql `coalesce(e.entry->'summary'->>'zh', '')`, "ilike", like),
|
|
1043
|
+
eb(sql `coalesce(e.entry->'displayName'->>'en', '')`, "ilike", like),
|
|
1044
|
+
eb(sql `coalesce(e.entry->'displayName'->>'zh', '')`, "ilike", like),
|
|
1003
1045
|
]));
|
|
1004
1046
|
}
|
|
1005
1047
|
const fetched = await query.execute();
|
|
@@ -1058,17 +1100,24 @@ let MarketplacesService = class MarketplacesService {
|
|
|
1058
1100
|
name: r.name,
|
|
1059
1101
|
version,
|
|
1060
1102
|
summary: e.summary,
|
|
1103
|
+
displayName: e.displayName ?? null,
|
|
1061
1104
|
minKernel: e.minKernel ?? null,
|
|
1062
1105
|
homepage: e.homepage ?? null,
|
|
1063
1106
|
permissions: e.permissions ?? null,
|
|
1064
1107
|
source: e.source,
|
|
1108
|
+
deprecated: marketplaceEntryDeprecation(e),
|
|
1065
1109
|
format: r.claude === null ? "capybara" : "claude-code",
|
|
1066
1110
|
compatible,
|
|
1067
1111
|
importable,
|
|
1068
1112
|
...(reason !== undefined && { reason }),
|
|
1069
1113
|
adopted: adopted ? { itemId: adopted.itemId, versions: [...adopted.versions] } : null,
|
|
1070
|
-
newerAvailable: compatible &&
|
|
1114
|
+
newerAvailable: compatible &&
|
|
1115
|
+
!entryDeprecated(e) &&
|
|
1116
|
+
version !== null &&
|
|
1117
|
+
top !== undefined &&
|
|
1118
|
+
compareVersions(version, top) > 0,
|
|
1071
1119
|
contentChanged: adopted !== null &&
|
|
1120
|
+
!entryDeprecated(e) &&
|
|
1072
1121
|
entryContentChanged(e, {
|
|
1073
1122
|
marketplaceId: r.source_id,
|
|
1074
1123
|
headCommit: r.head_commit,
|
|
@@ -1281,7 +1330,7 @@ __decorate([
|
|
|
1281
1330
|
MarketplacesService = __decorate([
|
|
1282
1331
|
Injectable(),
|
|
1283
1332
|
__param(0, Inject(KernelDb)),
|
|
1284
|
-
__param(1, Inject(
|
|
1333
|
+
__param(1, Inject(SuperAdminLock)),
|
|
1285
1334
|
__param(2, Inject(CatalogSourceLock)),
|
|
1286
1335
|
__param(3, Inject(KernelConfigService)),
|
|
1287
1336
|
__param(4, Inject(KEYRING)),
|