@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.20
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 +85 -5
- package/dist/admin/admin-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- 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/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -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 +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +876 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -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 +114 -0
- package/dist/agents/profile.js +55 -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 +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -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 +80 -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 +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -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 +109 -0
- package/dist/background/tasks.service.js +271 -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 +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -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 +102 -0
- package/dist/catalog/component-scope.controller.js +257 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- 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/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- 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 +133 -0
- package/dist/catalog/org-extension.controller.js +313 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -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 +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -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 +119 -0
- package/dist/channels/actions.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- 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/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- 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 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -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 +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +41 -5
- package/dist/extensions/bootstrap.js +121 -19
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/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 +94 -9
- package/dist/extensions/deployment-config.js +255 -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 +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- 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 +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- 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 +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +77 -31
- package/dist/identity/accounts.js +133 -52
- 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 +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +17 -1
- package/dist/identity/me.controller.js +45 -4
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- 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/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- 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 +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -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 +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -0
- 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/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
- package/dist/lifecycle/kernel-lifecycle.js +35 -7
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- 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.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- 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 +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -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 +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +774 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +102 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +730 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +381 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +298 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -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 +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +43 -0
- package/dist/platform/platform-ops.module.js +142 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- 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 +21 -1
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -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-finish.d.ts +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -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 +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- 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/org-agents.js +2 -1
- 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 +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- 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 +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- 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 +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +33 -0
- package/dist/themes/themes-public.controller.js +98 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +29 -19
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -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.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +51 -44
- 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 +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- 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/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- package/dist/tools/elicitation.js +1 -1
- 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 +61 -4
- package/dist/tools/info.js +119 -33
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- 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/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -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
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -1,28 +1,55 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiError } from "../errors.js";
|
|
2
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
2
3
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
3
4
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
5
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
6
|
import type { KernelLogger } from "../log.js";
|
|
7
|
+
import { OrgLock } from "../orgs/org-lock.js";
|
|
6
8
|
import { ExtensionAdmin, type PublishBus } from "./admin-view.js";
|
|
7
9
|
import { ExtensionBlobs } from "./blobs.js";
|
|
8
10
|
import { ExtensionLifecycle } from "./lifecycle.js";
|
|
9
11
|
import { PluginInstallLock } from "./locks.js";
|
|
10
12
|
import type { AdminExtensionView } from "./permission-view.js";
|
|
11
13
|
import { ExtensionRegistry } from "./registry.js";
|
|
14
|
+
import { SingleProviderGuard, type SingleProviderNote } from "./single-provider.js";
|
|
12
15
|
/**
|
|
13
16
|
* Deployment-level extension install / enable / disable / uninstall (C16 / D15): writes only the PG
|
|
14
17
|
* desired state (`extension_installs`) and the audit, then publishes `kernel.plugins.changed` after
|
|
15
18
|
* the commit (a failure only warns; the periodic reconcile catches up); replicas converge through
|
|
16
19
|
* reconcile, no restart. It does not wait for replicas: the returned view may say `converging`.
|
|
17
20
|
* Stateless, shared by every replica; the CLI uses it too (`actor` is null).
|
|
18
|
-
* Every write runs in a transaction: first `
|
|
21
|
+
* Every write runs in a transaction: first `lockSuperAdminsAndAuthorize` (skipped by the CLI),
|
|
19
22
|
* then an advisory lock by extension name and a lock on the install record row.
|
|
20
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* An operation an org admin runs as the owner of an org plugin (an owner update removing or putting
|
|
26
|
+
* back its extension, ruling P3-12'): the actor is re-checked as an admin of `orgId`
|
|
27
|
+
* (`catalog.upload`, under the org row lock) instead of as a super admin, and the audit records
|
|
28
|
+
* the actor with `ownerOrgId`.
|
|
29
|
+
*/
|
|
30
|
+
export interface ExtensionOpsOwner {
|
|
31
|
+
orgId: string;
|
|
32
|
+
/**
|
|
33
|
+
* Putting the extension back after a failed owner update: the actor was authorized when the
|
|
34
|
+
* update started, so no role is checked again (a demotion meanwhile must not leave the
|
|
35
|
+
* deployment without the extension it had); the audit keeps the actor, marked `rollback`.
|
|
36
|
+
*/
|
|
37
|
+
rollback?: true;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The admin view after an install; `leftDisabled`: this version change left the enabled extension
|
|
41
|
+
* disabled because its new version provides a single-provider point another extension holds.
|
|
42
|
+
*/
|
|
43
|
+
export type InstallView = AdminExtensionView & {
|
|
44
|
+
leftDisabled?: SingleProviderNote;
|
|
45
|
+
};
|
|
21
46
|
export declare class ExtensionAdminOps {
|
|
22
47
|
private readonly kdb;
|
|
23
48
|
readonly txHost: TransactionHost;
|
|
24
|
-
/** The
|
|
49
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
25
50
|
private readonly adminLock;
|
|
51
|
+
/** The owner org's lock: an owner's operation re-checks its admin under it. */
|
|
52
|
+
private readonly orgLock;
|
|
26
53
|
private readonly installLock;
|
|
27
54
|
/**
|
|
28
55
|
* The admin view after the operation, degraded when the package cannot be read
|
|
@@ -44,9 +71,13 @@ export declare class ExtensionAdminOps {
|
|
|
44
71
|
*/
|
|
45
72
|
private readonly lifecycle;
|
|
46
73
|
private readonly log;
|
|
74
|
+
/** One enabled provider per single-provider extension point (checked in the enable). */
|
|
75
|
+
private readonly singleProvider;
|
|
47
76
|
constructor(kdb: KernelDb, txHost: TransactionHost,
|
|
48
|
-
/** The
|
|
49
|
-
adminLock:
|
|
77
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
78
|
+
adminLock: SuperAdminLock,
|
|
79
|
+
/** The owner org's lock: an owner's operation re-checks its admin under it. */
|
|
80
|
+
orgLock: OrgLock, installLock: PluginInstallLock,
|
|
50
81
|
/**
|
|
51
82
|
* The admin view after the operation, degraded when the package cannot be read
|
|
52
83
|
* (`get(name, { allowUnreadable: true })`). If it throws, the operation has already committed:
|
|
@@ -64,13 +95,15 @@ export declare class ExtensionAdminOps {
|
|
|
64
95
|
* When the publish fails this replica reconciles itself (not awaited; other replicas catch up
|
|
65
96
|
* periodically). A no-op where the lifecycle never started (the CLI).
|
|
66
97
|
*/
|
|
67
|
-
lifecycle: ExtensionLifecycle, log: KernelLogger
|
|
98
|
+
lifecycle: ExtensionLifecycle, log: KernelLogger,
|
|
99
|
+
/** One enabled provider per single-provider extension point (checked in the enable). */
|
|
100
|
+
singleProvider: SingleProviderGuard);
|
|
68
101
|
private get db();
|
|
69
102
|
/**
|
|
70
103
|
* New install or version change (upgrade / downgrade): the install record points at package
|
|
71
104
|
* `sha256`; the desired state is unchanged (a new install is disabled). Audit `extension.installed`.
|
|
72
105
|
* - Config-declared -> `extension.config_declared`; a required bootstrap plugin may be
|
|
73
|
-
* installed at another version (
|
|
106
|
+
* installed at another version (a super admin upgrades it; `required` is kept);
|
|
74
107
|
* - package not in the package store -> `extension.package_not_found`; the extension name in the
|
|
75
108
|
* package is not `name` -> `extension.name_mismatch`;
|
|
76
109
|
* - an install record of the same name exists but comes from another npm package ->
|
|
@@ -86,27 +119,56 @@ export declare class ExtensionAdminOps {
|
|
|
86
119
|
* go back to a version whose migrations are a subset of those already run).
|
|
87
120
|
* Already pointing at the same package: nothing changes (no audit; for a changed source item only,
|
|
88
121
|
* see below).
|
|
89
|
-
* `opts.catalogItemId`: the source item when installing through the
|
|
122
|
+
* `opts.catalogItemId`: the source item when installing through the platform catalog, stored
|
|
90
123
|
* in `extension_installs.catalog_item_id` (F-AA) and registered in `extension_catalog_sources`;
|
|
91
124
|
* installing outside the catalog (upload / npm / CLI) **keeps** the existing source items (T26
|
|
92
125
|
* fix: clearing them would let org enablement bypass catalog policy, C22). The detail of the
|
|
93
126
|
* `extension.installed` audit carries `catalogItemId`; when it already points at the same package
|
|
94
127
|
* and only the source item changed, only that column changes, audit
|
|
95
|
-
* `extension.install_source_changed`.
|
|
128
|
+
* `extension.install_source_changed`. With `opts.liveItem` (an org upload's confirmation) a
|
|
129
|
+
* source item gone or removed when its row lock is granted -> 409 `catalog.item_removed`, before
|
|
130
|
+
* anything is written.
|
|
131
|
+
* A version change of an enabled extension whose new version provides a single-provider
|
|
132
|
+
* extension point the old one did not, while another extension holds it: the new version is
|
|
133
|
+
* installed **disabled** (`enabled_at` cleared, audit `extension.disabled` with `singleProvider`)
|
|
134
|
+
* rather than the upgrade refused, so the package moves and the provider running keeps the point;
|
|
135
|
+
* the result's `leftDisabled` says why (the shape of `enableUnlessOccupied`'s refusal). Checked
|
|
136
|
+
* under the point's lock after the install lock (the enable's order).
|
|
96
137
|
*/
|
|
97
138
|
install(name: string, sha256: string, actor: string | null, actorTokenId?: string, opts?: {
|
|
98
139
|
catalogItemId?: string;
|
|
99
|
-
|
|
140
|
+
liveItem?: true;
|
|
141
|
+
owner?: ExtensionOpsOwner;
|
|
142
|
+
}): Promise<InstallView>;
|
|
100
143
|
private writeInstall;
|
|
101
|
-
/**
|
|
102
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Enable on the deployment (audit `extension.enabled`); no change when already enabled. Org
|
|
146
|
+
* enablement is unchanged. Another enabled extension providing one of its single-provider
|
|
147
|
+
* extension points -> 409 `extension.single_provider_enabled` (the super admin disables that one
|
|
148
|
+
* first; checked under the point's lock, see {@link SingleProviderGuard}).
|
|
149
|
+
*/
|
|
150
|
+
enable(name: string, actor: string | null, actorTokenId?: string, owner?: ExtensionOpsOwner,
|
|
151
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
152
|
+
auditDetail?: Record<string, unknown>): Promise<AdminExtensionView>;
|
|
153
|
+
/**
|
|
154
|
+
* The enable of an install or import path: like {@link enable}, but an occupied single-provider
|
|
155
|
+
* extension point leaves the extension disabled instead of failing, and returns the refusal
|
|
156
|
+
* (`enabled: false`) for the caller to report. Every other error is thrown.
|
|
157
|
+
*/
|
|
158
|
+
enableUnlessOccupied(name: string, actor: string | null, actorTokenId?: string, owner?: ExtensionOpsOwner): Promise<{
|
|
159
|
+
enabled: true;
|
|
160
|
+
} | {
|
|
161
|
+
enabled: false;
|
|
162
|
+
refusal: ApiError;
|
|
163
|
+
note: SingleProviderNote;
|
|
164
|
+
}>;
|
|
103
165
|
/**
|
|
104
166
|
* Disables on the deployment (audit `extension.disabled`); no change when already disabled. Every
|
|
105
167
|
* replica unloads it (draining in-flight calls), and the extensions that `requires` it unload with
|
|
106
168
|
* it; the org enablement switch is unchanged and the org page shows it as unavailable. A required
|
|
107
169
|
* bootstrap plugin -> `extension.required`.
|
|
108
170
|
*/
|
|
109
|
-
disable(name: string, actor: string | null, actorTokenId?: string): Promise<AdminExtensionView>;
|
|
171
|
+
disable(name: string, actor: string | null, actorTokenId?: string, owner?: ExtensionOpsOwner, auditDetail?: Record<string, unknown>): Promise<AdminExtensionView>;
|
|
110
172
|
/**
|
|
111
173
|
* Uninstall: a required bootstrap plugin -> `extension.required`; must be disabled first
|
|
112
174
|
* (otherwise `extension.not_disabled`); deletes the install record
|
|
@@ -115,7 +177,7 @@ export declare class ExtensionAdminOps {
|
|
|
115
177
|
* permission snapshot and the package in the package store are untouched (a reinstall picks them
|
|
116
178
|
* up).
|
|
117
179
|
*/
|
|
118
|
-
uninstall(name: string, actor: string | null, actorTokenId?: string): Promise<void>;
|
|
180
|
+
uninstall(name: string, actor: string | null, actorTokenId?: string, owner?: ExtensionOpsOwner, auditDetail?: Record<string, unknown>): Promise<void>;
|
|
119
181
|
private writeUninstall;
|
|
120
182
|
private setState;
|
|
121
183
|
private writeState;
|
|
@@ -123,6 +185,11 @@ export declare class ExtensionAdminOps {
|
|
|
123
185
|
* 提交后的视图:拼视图失败(读包、查状态行出错)时操作已经生效,不能再报失败——记 error,返回降级视图。
|
|
124
186
|
*/
|
|
125
187
|
private viewAfterCommit;
|
|
188
|
+
/**
|
|
189
|
+
* Re-checks the actor in the operation's transaction: a super admin, or for an owner's operation
|
|
190
|
+
* an admin of the owner org; no account (the CLI, the kernel itself) is not checked.
|
|
191
|
+
*/
|
|
192
|
+
private authorize;
|
|
126
193
|
/** 配置声明的插件不经安装记录管理。 */
|
|
127
194
|
private assertInstallable;
|
|
128
195
|
/** 按插件名串行(`PluginInstallLock`,覆盖「还没有行」的新装),再锁住已有的安装记录行。 */
|
|
@@ -14,13 +14,14 @@ import semver from "semver";
|
|
|
14
14
|
import { pluginSchemaName } from "../ctx/create-ctx.js";
|
|
15
15
|
import { ApiError } from "../errors.js";
|
|
16
16
|
import { audit } from "../identity/audit.js";
|
|
17
|
-
import {
|
|
17
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
18
18
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
19
19
|
import { afterCommit } from "../infra/database/after-commit.js";
|
|
20
20
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
21
21
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
22
22
|
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
23
23
|
import { KERNEL_BUS, KERNEL_LOGGER } from "../infra/tokens.js";
|
|
24
|
+
import { OrgLock } from "../orgs/org-lock.js";
|
|
24
25
|
import { ExtensionAdmin } from "./admin-view.js";
|
|
25
26
|
import { ExtensionBlobs } from "./blobs.js";
|
|
26
27
|
import { ExtensionLifecycle, PLUGINS_CHANGED_TOPIC } from "./lifecycle.js";
|
|
@@ -28,19 +29,12 @@ import { PluginInstallLock } from "./locks.js";
|
|
|
28
29
|
import { unrunMigrations } from "./migrate-lock.js";
|
|
29
30
|
import { ExtensionPackageError, extensionPackageApiError, readExtensionPackage, } from "./package.js";
|
|
30
31
|
import { ExtensionRegistry } from "./registry.js";
|
|
31
|
-
|
|
32
|
-
* Deployment-level extension install / enable / disable / uninstall (C16 / D15): writes only the PG
|
|
33
|
-
* desired state (`extension_installs`) and the audit, then publishes `kernel.plugins.changed` after
|
|
34
|
-
* the commit (a failure only warns; the periodic reconcile catches up); replicas converge through
|
|
35
|
-
* reconcile, no restart. It does not wait for replicas: the returned view may say `converging`.
|
|
36
|
-
* Stateless, shared by every replica; the CLI uses it too (`actor` is null).
|
|
37
|
-
* Every write runs in a transaction: first `lockEnterpriseAdminsAndAuthorize` (skipped by the CLI),
|
|
38
|
-
* then an advisory lock by extension name and a lock on the install record row.
|
|
39
|
-
*/
|
|
32
|
+
import { isSingleProviderCode, SingleProviderGuard, singleProviderNote, } from "./single-provider.js";
|
|
40
33
|
let ExtensionAdminOps = class ExtensionAdminOps {
|
|
41
34
|
kdb;
|
|
42
35
|
txHost;
|
|
43
36
|
adminLock;
|
|
37
|
+
orgLock;
|
|
44
38
|
installLock;
|
|
45
39
|
admin;
|
|
46
40
|
registry;
|
|
@@ -49,9 +43,12 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
49
43
|
bus;
|
|
50
44
|
lifecycle;
|
|
51
45
|
log;
|
|
46
|
+
singleProvider;
|
|
52
47
|
constructor(kdb, txHost,
|
|
53
|
-
/** The
|
|
54
|
-
adminLock,
|
|
48
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
49
|
+
adminLock,
|
|
50
|
+
/** The owner org's lock: an owner's operation re-checks its admin under it. */
|
|
51
|
+
orgLock, installLock,
|
|
55
52
|
/**
|
|
56
53
|
* The admin view after the operation, degraded when the package cannot be read
|
|
57
54
|
* (`get(name, { allowUnreadable: true })`). If it throws, the operation has already committed:
|
|
@@ -69,10 +66,13 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
69
66
|
* When the publish fails this replica reconciles itself (not awaited; other replicas catch up
|
|
70
67
|
* periodically). A no-op where the lifecycle never started (the CLI).
|
|
71
68
|
*/
|
|
72
|
-
lifecycle, log
|
|
69
|
+
lifecycle, log,
|
|
70
|
+
/** One enabled provider per single-provider extension point (checked in the enable). */
|
|
71
|
+
singleProvider) {
|
|
73
72
|
this.kdb = kdb;
|
|
74
73
|
this.txHost = txHost;
|
|
75
74
|
this.adminLock = adminLock;
|
|
75
|
+
this.orgLock = orgLock;
|
|
76
76
|
this.installLock = installLock;
|
|
77
77
|
this.admin = admin;
|
|
78
78
|
this.registry = registry;
|
|
@@ -81,6 +81,7 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
81
81
|
this.bus = bus;
|
|
82
82
|
this.lifecycle = lifecycle;
|
|
83
83
|
this.log = log;
|
|
84
|
+
this.singleProvider = singleProvider;
|
|
84
85
|
}
|
|
85
86
|
get db() {
|
|
86
87
|
return this.kdb.db;
|
|
@@ -89,7 +90,7 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
89
90
|
* New install or version change (upgrade / downgrade): the install record points at package
|
|
90
91
|
* `sha256`; the desired state is unchanged (a new install is disabled). Audit `extension.installed`.
|
|
91
92
|
* - Config-declared -> `extension.config_declared`; a required bootstrap plugin may be
|
|
92
|
-
* installed at another version (
|
|
93
|
+
* installed at another version (a super admin upgrades it; `required` is kept);
|
|
93
94
|
* - package not in the package store -> `extension.package_not_found`; the extension name in the
|
|
94
95
|
* package is not `name` -> `extension.name_mismatch`;
|
|
95
96
|
* - an install record of the same name exists but comes from another npm package ->
|
|
@@ -105,19 +106,27 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
105
106
|
* go back to a version whose migrations are a subset of those already run).
|
|
106
107
|
* Already pointing at the same package: nothing changes (no audit; for a changed source item only,
|
|
107
108
|
* see below).
|
|
108
|
-
* `opts.catalogItemId`: the source item when installing through the
|
|
109
|
+
* `opts.catalogItemId`: the source item when installing through the platform catalog, stored
|
|
109
110
|
* in `extension_installs.catalog_item_id` (F-AA) and registered in `extension_catalog_sources`;
|
|
110
111
|
* installing outside the catalog (upload / npm / CLI) **keeps** the existing source items (T26
|
|
111
112
|
* fix: clearing them would let org enablement bypass catalog policy, C22). The detail of the
|
|
112
113
|
* `extension.installed` audit carries `catalogItemId`; when it already points at the same package
|
|
113
114
|
* and only the source item changed, only that column changes, audit
|
|
114
|
-
* `extension.install_source_changed`.
|
|
115
|
+
* `extension.install_source_changed`. With `opts.liveItem` (an org upload's confirmation) a
|
|
116
|
+
* source item gone or removed when its row lock is granted -> 409 `catalog.item_removed`, before
|
|
117
|
+
* anything is written.
|
|
118
|
+
* A version change of an enabled extension whose new version provides a single-provider
|
|
119
|
+
* extension point the old one did not, while another extension holds it: the new version is
|
|
120
|
+
* installed **disabled** (`enabled_at` cleared, audit `extension.disabled` with `singleProvider`)
|
|
121
|
+
* rather than the upgrade refused, so the package moves and the provider running keeps the point;
|
|
122
|
+
* the result's `leftDisabled` says why (the shape of `enableUnlessOccupied`'s refusal). Checked
|
|
123
|
+
* under the point's lock after the install lock (the enable's order).
|
|
115
124
|
*/
|
|
116
125
|
async install(name, sha256, actor, actorTokenId, opts = {}) {
|
|
117
126
|
this.assertInstallable(name);
|
|
118
127
|
const pkg = await this.db
|
|
119
128
|
.selectFrom("extension_packages")
|
|
120
|
-
.select(["sha256", "name", "package_name", "version", "source"])
|
|
129
|
+
.select(["sha256", "name", "package_name", "version", "source", "section"])
|
|
121
130
|
.where("sha256", "=", sha256)
|
|
122
131
|
.executeTakeFirst();
|
|
123
132
|
if (!pkg) {
|
|
@@ -136,12 +145,39 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
136
145
|
throw e instanceof ExtensionPackageError ? extensionPackageApiError(e) : e;
|
|
137
146
|
});
|
|
138
147
|
const changed = await this.writeInstall(name, sha256, pkg, target, actor, actorTokenId, opts);
|
|
139
|
-
|
|
148
|
+
const view = await this.viewAfterCommit(name, {
|
|
149
|
+
version: pkg.version,
|
|
150
|
+
sha256,
|
|
151
|
+
state: changed.state,
|
|
152
|
+
});
|
|
153
|
+
if (changed.leftDisabled === undefined)
|
|
154
|
+
return view;
|
|
155
|
+
this.log.info("extension upgraded but left disabled: its single-provider extension point is taken", {
|
|
156
|
+
plugin: name,
|
|
157
|
+
details: changed.leftDisabled.singleProvider,
|
|
158
|
+
});
|
|
159
|
+
return { ...view, leftDisabled: changed.leftDisabled };
|
|
140
160
|
}
|
|
141
161
|
async writeInstall(name, sha256, pkg, target, actor, actorTokenId, opts) {
|
|
142
162
|
const db = this.db;
|
|
143
|
-
|
|
144
|
-
|
|
163
|
+
await this.authorize(actor, opts.owner);
|
|
164
|
+
// The source item's row before the install lock (the global lock order: the item, then the
|
|
165
|
+
// install lock; ruling P3-50): the catalog source and install rows written below check it by
|
|
166
|
+
// foreign key (FOR KEY SHARE), and an org deletion or an item removal holds it FOR UPDATE
|
|
167
|
+
// while it waits for the install lock (CatalogService.removeIn). Taken after the install lock
|
|
168
|
+
// instead, the two deadlock (40P01).
|
|
169
|
+
if (opts.catalogItemId !== undefined) {
|
|
170
|
+
const item = await db
|
|
171
|
+
.selectFrom("catalog_items")
|
|
172
|
+
.select("deleted_at")
|
|
173
|
+
.where("id", "=", opts.catalogItemId)
|
|
174
|
+
.forKeyShare()
|
|
175
|
+
.executeTakeFirst();
|
|
176
|
+
// The lock waits out a removal holding the row; the row read then is the removed one
|
|
177
|
+
if (opts.liveItem && (item === undefined || item.deleted_at !== null)) {
|
|
178
|
+
throw new ApiError("catalog.item_removed", `${name} was removed while its confirmation was running; nothing of it stays installed`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
145
181
|
const row = await this.lockRow(name);
|
|
146
182
|
// 不经目录重装时保留原来的来源条目(不清空,C22)
|
|
147
183
|
const catalogItemId = opts.catalogItemId ?? row?.catalog_item_id ?? null;
|
|
@@ -198,6 +234,26 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
198
234
|
throw new ApiError("extension.downgrade_unsupported", `Extension ${name} ${pkg.version} has migrations that were never run here (${unrun.join(", ")}); extension migrations only expand, so downgrade only to a version whose migrations have all been applied`, unrun.map((file) => ({ file })));
|
|
199
235
|
}
|
|
200
236
|
}
|
|
237
|
+
// An enabled extension whose new version newly provides a single-provider point another one
|
|
238
|
+
// holds: installed disabled (the provider running keeps the point), and the result says why
|
|
239
|
+
let leftDisabled;
|
|
240
|
+
if (row?.desired_state === "enabled") {
|
|
241
|
+
const before = new Set(providesOf(row.section));
|
|
242
|
+
const added = providesOf(pkg.section).filter((p) => !before.has(p));
|
|
243
|
+
const block = await this.singleProvider.lockedOccupant(name, added);
|
|
244
|
+
if (block) {
|
|
245
|
+
leftDisabled = await this.singleProvider.note(block, name);
|
|
246
|
+
await db
|
|
247
|
+
.updateTable("extension_installs")
|
|
248
|
+
.set({ desired_state: "disabled", enabled_at: null })
|
|
249
|
+
.where("name", "=", name)
|
|
250
|
+
.execute();
|
|
251
|
+
await this.audit(actor, actorTokenId, "extension.disabled", name, row.version, row.sha256, {
|
|
252
|
+
singleProvider: block,
|
|
253
|
+
...ownerDetail(opts.owner),
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
201
257
|
await db
|
|
202
258
|
.insertInto("extension_installs")
|
|
203
259
|
.values({
|
|
@@ -221,13 +277,44 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
221
277
|
.execute();
|
|
222
278
|
await this.audit(actor, actorTokenId, "extension.installed", name, pkg.version, sha256, {
|
|
223
279
|
catalogItemId,
|
|
280
|
+
...ownerDetail(opts.owner),
|
|
224
281
|
});
|
|
225
282
|
afterCommit(() => this.notify(name));
|
|
283
|
+
if (leftDisabled !== undefined)
|
|
284
|
+
return { changed: true, state: "disabled", leftDisabled };
|
|
226
285
|
return { changed: true, state: row?.desired_state ?? "disabled" };
|
|
227
286
|
}
|
|
228
|
-
/**
|
|
229
|
-
|
|
230
|
-
|
|
287
|
+
/**
|
|
288
|
+
* Enable on the deployment (audit `extension.enabled`); no change when already enabled. Org
|
|
289
|
+
* enablement is unchanged. Another enabled extension providing one of its single-provider
|
|
290
|
+
* extension points -> 409 `extension.single_provider_enabled` (the super admin disables that one
|
|
291
|
+
* first; checked under the point's lock, see {@link SingleProviderGuard}).
|
|
292
|
+
*/
|
|
293
|
+
enable(name, actor, actorTokenId, owner,
|
|
294
|
+
/** Merged into the audit detail (a write made through the Platform tool). */
|
|
295
|
+
auditDetail) {
|
|
296
|
+
return this.setState(name, "enabled", actor, actorTokenId, owner, auditDetail);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* The enable of an install or import path: like {@link enable}, but an occupied single-provider
|
|
300
|
+
* extension point leaves the extension disabled instead of failing, and returns the refusal
|
|
301
|
+
* (`enabled: false`) for the caller to report. Every other error is thrown.
|
|
302
|
+
*/
|
|
303
|
+
async enableUnlessOccupied(name, actor, actorTokenId, owner) {
|
|
304
|
+
try {
|
|
305
|
+
await this.enable(name, actor, actorTokenId, owner);
|
|
306
|
+
return { enabled: true };
|
|
307
|
+
}
|
|
308
|
+
catch (e) {
|
|
309
|
+
if (e instanceof ApiError && isSingleProviderCode(e.code)) {
|
|
310
|
+
this.log.info("extension installed disabled: its single-provider extension point is taken", {
|
|
311
|
+
plugin: name,
|
|
312
|
+
details: e.details,
|
|
313
|
+
});
|
|
314
|
+
return { enabled: false, refusal: e, note: singleProviderNote(e) };
|
|
315
|
+
}
|
|
316
|
+
throw e;
|
|
317
|
+
}
|
|
231
318
|
}
|
|
232
319
|
/**
|
|
233
320
|
* Disables on the deployment (audit `extension.disabled`); no change when already disabled. Every
|
|
@@ -235,8 +322,8 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
235
322
|
* it; the org enablement switch is unchanged and the org page shows it as unavailable. A required
|
|
236
323
|
* bootstrap plugin -> `extension.required`.
|
|
237
324
|
*/
|
|
238
|
-
disable(name, actor, actorTokenId) {
|
|
239
|
-
return this.setState(name, "disabled", actor, actorTokenId);
|
|
325
|
+
disable(name, actor, actorTokenId, owner, auditDetail) {
|
|
326
|
+
return this.setState(name, "disabled", actor, actorTokenId, owner, auditDetail);
|
|
240
327
|
}
|
|
241
328
|
/**
|
|
242
329
|
* Uninstall: a required bootstrap plugin -> `extension.required`; must be disabled first
|
|
@@ -246,14 +333,13 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
246
333
|
* permission snapshot and the package in the package store are untouched (a reinstall picks them
|
|
247
334
|
* up).
|
|
248
335
|
*/
|
|
249
|
-
async uninstall(name, actor, actorTokenId) {
|
|
336
|
+
async uninstall(name, actor, actorTokenId, owner, auditDetail) {
|
|
250
337
|
this.assertInstallable(name);
|
|
251
|
-
await this.writeUninstall(name, actor, actorTokenId);
|
|
338
|
+
await this.writeUninstall(name, actor, actorTokenId, owner, auditDetail);
|
|
252
339
|
}
|
|
253
|
-
async writeUninstall(name, actor, actorTokenId) {
|
|
340
|
+
async writeUninstall(name, actor, actorTokenId, owner, auditDetail) {
|
|
254
341
|
const db = this.db;
|
|
255
|
-
|
|
256
|
-
await this.adminLock.lockAndAuthorize(actor);
|
|
342
|
+
await this.authorize(actor, owner);
|
|
257
343
|
const row = await this.lockRow(name);
|
|
258
344
|
if (!row)
|
|
259
345
|
throw notFound(name);
|
|
@@ -265,22 +351,24 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
265
351
|
await db.deleteFrom("extension_installs").where("name", "=", name).execute();
|
|
266
352
|
// 来源条目随安装记录一起删:之后不经目录重新安装时不再受旧条目的策略约束(T26 裁决)
|
|
267
353
|
await db.deleteFrom("extension_catalog_sources").where("plugin", "=", name).execute();
|
|
268
|
-
await this.audit(actor, actorTokenId, "extension.uninstalled", name, row.version, row.sha256
|
|
354
|
+
await this.audit(actor, actorTokenId, "extension.uninstalled", name, row.version, row.sha256, {
|
|
355
|
+
...ownerDetail(owner),
|
|
356
|
+
...auditDetail,
|
|
357
|
+
});
|
|
269
358
|
afterCommit(() => this.notify(name));
|
|
270
359
|
}
|
|
271
|
-
async setState(name, state, actor, actorTokenId) {
|
|
360
|
+
async setState(name, state, actor, actorTokenId, owner, auditDetail) {
|
|
272
361
|
this.assertInstallable(name);
|
|
273
|
-
const result = await this.writeState(name, state, actor, actorTokenId);
|
|
362
|
+
const result = await this.writeState(name, state, actor, actorTokenId, owner, auditDetail);
|
|
274
363
|
return this.viewAfterCommit(name, {
|
|
275
364
|
version: result.row.version,
|
|
276
365
|
sha256: result.row.sha256,
|
|
277
366
|
state,
|
|
278
367
|
});
|
|
279
368
|
}
|
|
280
|
-
async writeState(name, state, actor, actorTokenId) {
|
|
369
|
+
async writeState(name, state, actor, actorTokenId, owner, auditDetail) {
|
|
281
370
|
const db = this.db;
|
|
282
|
-
|
|
283
|
-
await this.adminLock.lockAndAuthorize(actor);
|
|
371
|
+
await this.authorize(actor, owner);
|
|
284
372
|
const row = await this.lockRow(name);
|
|
285
373
|
if (!row)
|
|
286
374
|
throw notFound(name);
|
|
@@ -288,16 +376,22 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
288
376
|
throw required(name);
|
|
289
377
|
if (row.desired_state === state)
|
|
290
378
|
return { row, changed: false };
|
|
379
|
+
if (state === "enabled") {
|
|
380
|
+
await this.singleProvider.assertFree(name, providesOf(row.section));
|
|
381
|
+
}
|
|
291
382
|
await db
|
|
292
383
|
.updateTable("extension_installs")
|
|
293
384
|
.set({
|
|
294
385
|
desired_state: state,
|
|
386
|
+
// When it became enabled: the earliest enabled of two providers of a single-provider point
|
|
387
|
+
// is the one replicas load (only state left from before a second enable was refused)
|
|
388
|
+
enabled_at: state === "enabled" ? sql `now()` : null,
|
|
295
389
|
updated_by: actor,
|
|
296
390
|
updated_at: sql `now()`,
|
|
297
391
|
})
|
|
298
392
|
.where("name", "=", name)
|
|
299
393
|
.execute();
|
|
300
|
-
await this.audit(actor, actorTokenId, state === "enabled" ? "extension.enabled" : "extension.disabled", name, row.version, row.sha256);
|
|
394
|
+
await this.audit(actor, actorTokenId, state === "enabled" ? "extension.enabled" : "extension.disabled", name, row.version, row.sha256, { ...ownerDetail(owner), ...auditDetail });
|
|
301
395
|
afterCommit(() => this.notify(name));
|
|
302
396
|
return { row, changed: true };
|
|
303
397
|
}
|
|
@@ -316,6 +410,22 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
316
410
|
return fallbackView(name, known, err);
|
|
317
411
|
}
|
|
318
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Re-checks the actor in the operation's transaction: a super admin, or for an owner's operation
|
|
415
|
+
* an admin of the owner org; no account (the CLI, the kernel itself) is not checked.
|
|
416
|
+
*/
|
|
417
|
+
async authorize(actor, owner) {
|
|
418
|
+
if (owner?.rollback === true)
|
|
419
|
+
return;
|
|
420
|
+
if (owner !== undefined) {
|
|
421
|
+
if (actor === null)
|
|
422
|
+
throw new Error("an owner's extension operation has an actor");
|
|
423
|
+
await this.orgLock.lockAndAuthorize(owner.orgId, actor, "catalog.upload");
|
|
424
|
+
}
|
|
425
|
+
else if (actor !== null) {
|
|
426
|
+
await this.adminLock.lockAndAuthorize(actor);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
319
429
|
/** 配置声明的插件不经安装记录管理。 */
|
|
320
430
|
assertInstallable(name) {
|
|
321
431
|
const declared = this.registry.declared().get(name);
|
|
@@ -336,6 +446,7 @@ let ExtensionAdminOps = class ExtensionAdminOps {
|
|
|
336
446
|
"extension_installs.catalog_item_id",
|
|
337
447
|
"extension_installs.required",
|
|
338
448
|
"extension_packages.package_name",
|
|
449
|
+
"extension_packages.section",
|
|
339
450
|
])
|
|
340
451
|
.where("extension_installs.name", "=", name)
|
|
341
452
|
.forUpdate("extension_installs")
|
|
@@ -372,6 +483,9 @@ __decorate([
|
|
|
372
483
|
__decorate([
|
|
373
484
|
Transactional()
|
|
374
485
|
], ExtensionAdminOps.prototype, "writeState", null);
|
|
486
|
+
__decorate([
|
|
487
|
+
Transactional({ propagation: "mandatory" })
|
|
488
|
+
], ExtensionAdminOps.prototype, "authorize", null);
|
|
375
489
|
__decorate([
|
|
376
490
|
Transactional({ propagation: "mandatory" })
|
|
377
491
|
], ExtensionAdminOps.prototype, "lockRow", null);
|
|
@@ -379,15 +493,17 @@ ExtensionAdminOps = __decorate([
|
|
|
379
493
|
Injectable(),
|
|
380
494
|
__param(0, Inject(KernelDb)),
|
|
381
495
|
__param(1, Inject(TransactionHost)),
|
|
382
|
-
__param(2, Inject(
|
|
383
|
-
__param(3, Inject(
|
|
384
|
-
__param(4, Inject(
|
|
385
|
-
__param(5, Inject(
|
|
386
|
-
__param(6, Inject(
|
|
387
|
-
__param(7, Inject(
|
|
388
|
-
__param(8, Inject(
|
|
389
|
-
__param(9, Inject(
|
|
390
|
-
__param(10, Inject(
|
|
496
|
+
__param(2, Inject(SuperAdminLock)),
|
|
497
|
+
__param(3, Inject(OrgLock)),
|
|
498
|
+
__param(4, Inject(PluginInstallLock)),
|
|
499
|
+
__param(5, Inject(ExtensionAdmin)),
|
|
500
|
+
__param(6, Inject(ExtensionRegistry)),
|
|
501
|
+
__param(7, Inject(ExtensionBlobs)),
|
|
502
|
+
__param(8, Inject(KernelConfigService)),
|
|
503
|
+
__param(9, Inject(KERNEL_BUS)),
|
|
504
|
+
__param(10, Inject(ExtensionLifecycle)),
|
|
505
|
+
__param(11, Inject(KERNEL_LOGGER)),
|
|
506
|
+
__param(12, Inject(SingleProviderGuard))
|
|
391
507
|
], ExtensionAdminOps);
|
|
392
508
|
export { ExtensionAdminOps };
|
|
393
509
|
/**
|
|
@@ -396,6 +512,8 @@ export { ExtensionAdminOps };
|
|
|
396
512
|
function fallbackView(name, known, err) {
|
|
397
513
|
return {
|
|
398
514
|
name,
|
|
515
|
+
// the degraded item reads nothing more (the read that failed may be the database)
|
|
516
|
+
displayName: null,
|
|
399
517
|
version: known.version,
|
|
400
518
|
source: "install",
|
|
401
519
|
sha256: known.sha256,
|
|
@@ -416,7 +534,13 @@ function fallbackView(name, known, err) {
|
|
|
416
534
|
configValid: true,
|
|
417
535
|
removable: true,
|
|
418
536
|
required: false,
|
|
537
|
+
scope: null,
|
|
538
|
+
enabledOrgs: 0,
|
|
539
|
+
builtin: false,
|
|
419
540
|
installSource: null,
|
|
541
|
+
uiDropped: [],
|
|
542
|
+
client: null,
|
|
543
|
+
clientReports: [],
|
|
420
544
|
error: `the change was saved, but its current status cannot be read: ${err instanceof Error ? err.message : String(err)}`,
|
|
421
545
|
};
|
|
422
546
|
}
|
|
@@ -441,7 +565,17 @@ async function hasRetainedData(db, name) {
|
|
|
441
565
|
.executeTakeFirst();
|
|
442
566
|
return hit !== undefined;
|
|
443
567
|
}
|
|
444
|
-
const required = (name) => new ApiError("extension.required", `Extension ${name} is required by this deployment (a bootstrap plugin): it is enabled in every organization and cannot be disabled or uninstalled;
|
|
568
|
+
const required = (name) => new ApiError("extension.required", `Extension ${name} is required by this deployment (a bootstrap plugin): it is enabled in every organization and cannot be disabled or uninstalled; a super admin can upgrade it`);
|
|
445
569
|
const notFound = (name) => new ApiError("extension.not_found", `Extension ${name} is not installed in this deployment`);
|
|
446
570
|
/** `to` 比 `from` 旧(任一方不是合法 semver 时不算降级)。 */
|
|
447
571
|
const isDowngrade = (to, from) => semver.valid(to) !== null && semver.valid(from) !== null && semver.lt(to, from);
|
|
572
|
+
/** The extension points a stored package's reviewed manifest provides. */
|
|
573
|
+
function providesOf(section) {
|
|
574
|
+
return section?.manifest?.provides ?? [];
|
|
575
|
+
}
|
|
576
|
+
/** The audit detail of an owner's operation. */
|
|
577
|
+
function ownerDetail(owner) {
|
|
578
|
+
if (owner === undefined)
|
|
579
|
+
return {};
|
|
580
|
+
return { ownerOrgId: owner.orgId, ...(owner.rollback === true && { rollback: true }) };
|
|
581
|
+
}
|