@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.21
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 +94 -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 +85 -10
- package/dist/extensions/bootstrap.js +215 -36
- 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 +9 -3
- package/dist/lifecycle/kernel-lifecycle.js +51 -11
- 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,15 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
2
2
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
3
3
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
4
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
5
|
import type { KernelLogger } from "../log.js";
|
|
6
6
|
import { ExtensionApprovals } from "./approvals.js";
|
|
7
7
|
import { ExtensionBlobs } from "./blobs.js";
|
|
8
|
+
import { ExtensionDeploymentConfigService } from "./deployment-config.js";
|
|
9
|
+
import { ExtensionDisplayNames } from "./display-name.js";
|
|
10
|
+
import { EffectiveConfigs } from "./effective-config.js";
|
|
8
11
|
import { ExtensionHost } from "./host.js";
|
|
9
12
|
import { ExtensionInstalls } from "./installs.js";
|
|
10
13
|
import { ExtensionLifecycle, PLUGINS_CHANGED_TOPIC } from "./lifecycle.js";
|
|
11
14
|
import { PluginApproveLock } from "./locks.js";
|
|
12
15
|
import { type AdminExtensionView } from "./permission-view.js";
|
|
16
|
+
import { PluginIcons } from "./plugin-icons.js";
|
|
17
|
+
import { SingleProviderGuard } from "./single-provider.js";
|
|
13
18
|
export { PLUGINS_CHANGED_TOPIC };
|
|
14
19
|
/** The web approval request body (`POST /api/v1/admin/extensions/:name/approve`). */
|
|
15
20
|
export interface ApproveBody {
|
|
@@ -22,13 +27,13 @@ export interface PublishBus {
|
|
|
22
27
|
publish(topic: string, payload: unknown): Promise<void>;
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
|
-
*
|
|
30
|
+
* 部署级插件后台(超级管理员):列表 / 详情与网页批准权限(D8)。无状态,多副本共用;
|
|
26
31
|
* 状态由 PG(安装记录、快照、各副本状态行)与本副本宿主(配置声明插件的清单)推出。
|
|
27
32
|
*/
|
|
28
33
|
export declare class ExtensionAdmin {
|
|
29
34
|
private readonly kdb;
|
|
30
35
|
readonly txHost: TransactionHost;
|
|
31
|
-
/** The
|
|
36
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
32
37
|
private readonly adminLock;
|
|
33
38
|
private readonly approveLock;
|
|
34
39
|
private readonly blobs;
|
|
@@ -41,17 +46,38 @@ export declare class ExtensionAdmin {
|
|
|
41
46
|
private readonly config;
|
|
42
47
|
private readonly bus;
|
|
43
48
|
private readonly log;
|
|
49
|
+
private readonly displayNames;
|
|
50
|
+
/** Which required overridable fields the platform left empty (spec A §5.4a). */
|
|
51
|
+
private readonly deploymentConfig;
|
|
52
|
+
/** How many orgs still need their own config for such an extension. */
|
|
53
|
+
private readonly effectiveConfigs;
|
|
54
|
+
/** Which enabled extension keeps a disabled one from being enabled (`enableBlocked`). */
|
|
55
|
+
private readonly singleProvider;
|
|
56
|
+
/** The plugins' icons (admin catalog routes). */
|
|
57
|
+
private readonly icons;
|
|
44
58
|
private readonly packageSets;
|
|
45
59
|
constructor(kdb: KernelDb, txHost: TransactionHost,
|
|
46
|
-
/** The
|
|
47
|
-
adminLock:
|
|
60
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
61
|
+
adminLock: SuperAdminLock, approveLock: PluginApproveLock, blobs: ExtensionBlobs, installs: ExtensionInstalls, approvals: ExtensionApprovals,
|
|
48
62
|
/** The config-declared extensions (this replica's host; the CLI fills it from its inspection). */
|
|
49
63
|
host: ExtensionHost,
|
|
50
64
|
/** This replica's reconcile after an approval (a no-op where the lifecycle never started: the CLI). */
|
|
51
|
-
lifecycle: ExtensionLifecycle, config: KernelConfigService, bus: PublishBus, log: KernelLogger
|
|
65
|
+
lifecycle: ExtensionLifecycle, config: KernelConfigService, bus: PublishBus, log: KernelLogger, displayNames: ExtensionDisplayNames,
|
|
66
|
+
/** Which required overridable fields the platform left empty (spec A §5.4a). */
|
|
67
|
+
deploymentConfig: ExtensionDeploymentConfigService,
|
|
68
|
+
/** How many orgs still need their own config for such an extension. */
|
|
69
|
+
effectiveConfigs: EffectiveConfigs,
|
|
70
|
+
/** Which enabled extension keeps a disabled one from being enabled (`enableBlocked`). */
|
|
71
|
+
singleProvider: SingleProviderGuard,
|
|
72
|
+
/** The plugins' icons (admin catalog routes). */
|
|
73
|
+
icons: PluginIcons);
|
|
52
74
|
private get db();
|
|
53
|
-
/**
|
|
54
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Every extension (config-declared, then install records, each by name). With `names`, only
|
|
77
|
+
* those: no other package is read, so a caller that needs a few items (the catalog's pending
|
|
78
|
+
* check) neither pays for nor logs about the packages of unrelated extensions.
|
|
79
|
+
*/
|
|
80
|
+
list(names?: ReadonlySet<string>): Promise<AdminExtensionView[]>;
|
|
55
81
|
/**
|
|
56
82
|
* A single extension; unknown -> `extension.not_found`; package unreadable ->
|
|
57
83
|
* `extension.package_unavailable`. With `allowUnreadable` an unreadable package returns the same
|
|
@@ -64,7 +90,12 @@ export declare class ExtensionAdmin {
|
|
|
64
90
|
allowUnreadable?: boolean;
|
|
65
91
|
}): Promise<AdminExtensionView>;
|
|
66
92
|
/**
|
|
67
|
-
*
|
|
93
|
+
* The review digest of a stored package (the `reviewHash` its extension would show once
|
|
94
|
+
* installed); null when the package cannot be read.
|
|
95
|
+
*/
|
|
96
|
+
packageReviewHash(sha256: string): Promise<string | null>;
|
|
97
|
+
/**
|
|
98
|
+
* Web approval: re-checks the super admin under the lock, compares the reviewed package
|
|
68
99
|
* (`sha256`) and permission digest (`reviewHash`), writes the snapshot (source web) and the
|
|
69
100
|
* `extension.permissions_approved` audit; after the commit publishes `kernel.plugins.changed` (a
|
|
70
101
|
* failure only warns) and waits for one reconcile on this replica (other replicas converge through
|
|
@@ -74,10 +105,12 @@ export declare class ExtensionAdmin {
|
|
|
74
105
|
* recomputed now -> `extension.approval_stale`; a config-declared extension's `sha256` must be
|
|
75
106
|
* null (otherwise `validation_failed`);
|
|
76
107
|
* - the snapshot already covers the current permission set (nothing to approve, F-N) ->
|
|
77
|
-
* `extension.not_pending
|
|
108
|
+
* `extension.not_pending`, except with `confirmBootstrap` when the snapshot is the bootstrap
|
|
109
|
+
* step's (the catalog's confirm re-writes it with source web).
|
|
78
110
|
*/
|
|
79
111
|
approve(actor: string, name: string, body: ApproveBody, opts?: {
|
|
80
112
|
actorTokenId?: string;
|
|
113
|
+
confirmBootstrap?: boolean;
|
|
81
114
|
}): Promise<AdminExtensionView>;
|
|
82
115
|
private writeApproval;
|
|
83
116
|
/** 配置声明 → 安装记录(与配置声明重名的安装记录不生效,不单列)。`only` 给出时只取这一个。 */
|
|
@@ -86,5 +119,19 @@ export declare class ExtensionAdmin {
|
|
|
86
119
|
* 包的权限集合(静态清单 + 迁移 SQL,与上传时的审阅相同)、迁移审阅警告与是否有部署级配置字段;按 sha256 缓存。
|
|
87
120
|
*/
|
|
88
121
|
private packageInfo;
|
|
122
|
+
/**
|
|
123
|
+
* For each configurable, readable extension whose platform config leaves required overridable
|
|
124
|
+
* fields empty (spec A §5.4a): the number of orgs still needing their own config. Extensions
|
|
125
|
+
* without overridable fields cost no read.
|
|
126
|
+
*/
|
|
127
|
+
private orgsNeedingConfig;
|
|
89
128
|
private views;
|
|
129
|
+
/**
|
|
130
|
+
* The client build of each subject and its newest reports (at most {@link CLIENT_REPORTS_SHOWN}
|
|
131
|
+
* per extension, limited in SQL), in two queries over all subjects. The build is the one a live
|
|
132
|
+
* replica serves (`serving_sha256` of the fresh rows `live`, like the shell reads: the install's
|
|
133
|
+
* own package when it runs, else the newest still served, e.g. the old one beside an upgrade
|
|
134
|
+
* awaiting approval or failed); with none served, the install record package's build.
|
|
135
|
+
*/
|
|
136
|
+
private clientsOf;
|
|
90
137
|
}
|
|
@@ -11,7 +11,7 @@ import { SDK_VERSION } from "@capybara-hq/plugin-sdk";
|
|
|
11
11
|
import { Inject, Injectable } from "@nestjs/common";
|
|
12
12
|
import { sql } from "kysely";
|
|
13
13
|
import { ApiError } from "../errors.js";
|
|
14
|
-
import {
|
|
14
|
+
import { SuperAdminLock } from "../identity/super-admin.js";
|
|
15
15
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
16
16
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
17
17
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -19,6 +19,10 @@ import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
|
19
19
|
import { KERNEL_BUS, KERNEL_LOGGER } from "../infra/tokens.js";
|
|
20
20
|
import { ExtensionApprovals, snapshotCovers, writeSnapshot, } from "./approvals.js";
|
|
21
21
|
import { ExtensionBlobs } from "./blobs.js";
|
|
22
|
+
import { ExtensionDeploymentConfigService } from "./deployment-config.js";
|
|
23
|
+
import { ExtensionDisplayNames } from "./display-name.js";
|
|
24
|
+
import { EffectiveConfigs } from "./effective-config.js";
|
|
25
|
+
import { enabledExtensionsByOrg } from "./enabled.js";
|
|
22
26
|
import { ExtensionHost } from "./host.js";
|
|
23
27
|
import { ExtensionInstalls } from "./installs.js";
|
|
24
28
|
import { ExtensionLifecycle, PLUGINS_CHANGED_TOPIC, STALE_RECONCILE_PERIODS } from "./lifecycle.js";
|
|
@@ -26,9 +30,15 @@ import { PluginApproveLock } from "./locks.js";
|
|
|
26
30
|
import { ExtensionPackageError, permissionSetOfPackage, readExtensionPackage } from "./package.js";
|
|
27
31
|
import { buildPermissionSet, diffPermissions } from "./permission-set.js";
|
|
28
32
|
import { deriveExtensionStatus, migrationWarnings, permissionGroups, permissionKeyItems, reviewHash, } from "./permission-view.js";
|
|
33
|
+
import { PluginIcons } from "./plugin-icons.js";
|
|
34
|
+
import { pluginItemsOf } from "./plugin-items.js";
|
|
35
|
+
import { parseProviderConflict } from "./resolve.js";
|
|
36
|
+
import { SingleProviderGuard } from "./single-provider.js";
|
|
29
37
|
export { PLUGINS_CHANGED_TOPIC };
|
|
30
38
|
/** 内容寻址的包 → 权限集合(包不可变,缓存安全;只作缓存,不是跨副本状态)。 */
|
|
31
39
|
const PACKAGE_SET_CACHE_MAX = 256;
|
|
40
|
+
/** The most client reports an extension view lists (the newest). */
|
|
41
|
+
const CLIENT_REPORTS_SHOWN = 50;
|
|
32
42
|
/** 空权限集合(包读不到的降级项)。 */
|
|
33
43
|
const EMPTY_SET = buildPermissionSet({
|
|
34
44
|
provides: [],
|
|
@@ -47,7 +57,7 @@ function assertReadable(s) {
|
|
|
47
57
|
}
|
|
48
58
|
}
|
|
49
59
|
/**
|
|
50
|
-
*
|
|
60
|
+
* 部署级插件后台(超级管理员):列表 / 详情与网页批准权限(D8)。无状态,多副本共用;
|
|
51
61
|
* 状态由 PG(安装记录、快照、各副本状态行)与本副本宿主(配置声明插件的清单)推出。
|
|
52
62
|
*/
|
|
53
63
|
let ExtensionAdmin = class ExtensionAdmin {
|
|
@@ -63,14 +73,27 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
63
73
|
config;
|
|
64
74
|
bus;
|
|
65
75
|
log;
|
|
76
|
+
displayNames;
|
|
77
|
+
deploymentConfig;
|
|
78
|
+
effectiveConfigs;
|
|
79
|
+
singleProvider;
|
|
80
|
+
icons;
|
|
66
81
|
packageSets = new Map();
|
|
67
82
|
constructor(kdb, txHost,
|
|
68
|
-
/** The
|
|
83
|
+
/** The super admin lock (identity/super-admin.ts): joins the transaction. */
|
|
69
84
|
adminLock, approveLock, blobs, installs, approvals,
|
|
70
85
|
/** The config-declared extensions (this replica's host; the CLI fills it from its inspection). */
|
|
71
86
|
host,
|
|
72
87
|
/** This replica's reconcile after an approval (a no-op where the lifecycle never started: the CLI). */
|
|
73
|
-
lifecycle, config, bus, log
|
|
88
|
+
lifecycle, config, bus, log, displayNames,
|
|
89
|
+
/** Which required overridable fields the platform left empty (spec A §5.4a). */
|
|
90
|
+
deploymentConfig,
|
|
91
|
+
/** How many orgs still need their own config for such an extension. */
|
|
92
|
+
effectiveConfigs,
|
|
93
|
+
/** Which enabled extension keeps a disabled one from being enabled (`enableBlocked`). */
|
|
94
|
+
singleProvider,
|
|
95
|
+
/** The plugins' icons (admin catalog routes). */
|
|
96
|
+
icons) {
|
|
74
97
|
this.kdb = kdb;
|
|
75
98
|
this.txHost = txHost;
|
|
76
99
|
this.adminLock = adminLock;
|
|
@@ -83,13 +106,22 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
83
106
|
this.config = config;
|
|
84
107
|
this.bus = bus;
|
|
85
108
|
this.log = log;
|
|
109
|
+
this.displayNames = displayNames;
|
|
110
|
+
this.deploymentConfig = deploymentConfig;
|
|
111
|
+
this.effectiveConfigs = effectiveConfigs;
|
|
112
|
+
this.singleProvider = singleProvider;
|
|
113
|
+
this.icons = icons;
|
|
86
114
|
}
|
|
87
115
|
get db() {
|
|
88
116
|
return this.kdb.db;
|
|
89
117
|
}
|
|
90
|
-
/**
|
|
91
|
-
|
|
92
|
-
|
|
118
|
+
/**
|
|
119
|
+
* Every extension (config-declared, then install records, each by name). With `names`, only
|
|
120
|
+
* those: no other package is read, so a caller that needs a few items (the catalog's pending
|
|
121
|
+
* check) neither pays for nor logs about the packages of unrelated extensions.
|
|
122
|
+
*/
|
|
123
|
+
async list(names) {
|
|
124
|
+
const subjects = await this.subjects(undefined, names);
|
|
93
125
|
return this.views(subjects);
|
|
94
126
|
}
|
|
95
127
|
/**
|
|
@@ -109,7 +141,20 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
109
141
|
return (await this.views([s]))[0];
|
|
110
142
|
}
|
|
111
143
|
/**
|
|
112
|
-
*
|
|
144
|
+
* The review digest of a stored package (the `reviewHash` its extension would show once
|
|
145
|
+
* installed); null when the package cannot be read.
|
|
146
|
+
*/
|
|
147
|
+
async packageReviewHash(sha256) {
|
|
148
|
+
try {
|
|
149
|
+
const { set, warnings } = await this.packageInfo(sha256);
|
|
150
|
+
return reviewHash(set, warnings);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Web approval: re-checks the super admin under the lock, compares the reviewed package
|
|
113
158
|
* (`sha256`) and permission digest (`reviewHash`), writes the snapshot (source web) and the
|
|
114
159
|
* `extension.permissions_approved` audit; after the commit publishes `kernel.plugins.changed` (a
|
|
115
160
|
* failure only warns) and waits for one reconcile on this replica (other replicas converge through
|
|
@@ -119,7 +164,8 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
119
164
|
* recomputed now -> `extension.approval_stale`; a config-declared extension's `sha256` must be
|
|
120
165
|
* null (otherwise `validation_failed`);
|
|
121
166
|
* - the snapshot already covers the current permission set (nothing to approve, F-N) ->
|
|
122
|
-
* `extension.not_pending
|
|
167
|
+
* `extension.not_pending`, except with `confirmBootstrap` when the snapshot is the bootstrap
|
|
168
|
+
* step's (the catalog's confirm re-writes it with source web).
|
|
123
169
|
*/
|
|
124
170
|
async approve(actor, name, body, opts = {}) {
|
|
125
171
|
const s = (await this.subjects(name))[0];
|
|
@@ -134,7 +180,7 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
134
180
|
throw stale();
|
|
135
181
|
if (body.reviewHash !== reviewHash(s.set, s.warnings))
|
|
136
182
|
throw stale();
|
|
137
|
-
await this.writeApproval(actor, name, s, opts.actorTokenId, stale);
|
|
183
|
+
await this.writeApproval(actor, name, s, opts.actorTokenId, stale, opts.confirmBootstrap === true);
|
|
138
184
|
try {
|
|
139
185
|
await this.bus.publish(PLUGINS_CHANGED_TOPIC, { plugin: name });
|
|
140
186
|
}
|
|
@@ -150,7 +196,7 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
150
196
|
}
|
|
151
197
|
return this.get(name);
|
|
152
198
|
}
|
|
153
|
-
async writeApproval(actor, name, s, actorTokenId, stale) {
|
|
199
|
+
async writeApproval(actor, name, s, actorTokenId, stale, confirmBootstrap) {
|
|
154
200
|
const db = this.db;
|
|
155
201
|
await this.adminLock.lockAndAuthorize(actor);
|
|
156
202
|
await this.approveLock.lock(name);
|
|
@@ -167,7 +213,7 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
167
213
|
}
|
|
168
214
|
const snapRow = await db
|
|
169
215
|
.selectFrom("extension_permission_snapshots")
|
|
170
|
-
.select(["version", "permissions"])
|
|
216
|
+
.select(["version", "permissions", "source"])
|
|
171
217
|
.where("plugin", "=", name)
|
|
172
218
|
.forUpdate()
|
|
173
219
|
.executeTakeFirst();
|
|
@@ -175,7 +221,9 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
175
221
|
version: snapRow.version,
|
|
176
222
|
permissions: snapRow.permissions,
|
|
177
223
|
};
|
|
178
|
-
|
|
224
|
+
// `confirmBootstrap` (the catalog's confirm): a snapshot the bootstrap step wrote was never
|
|
225
|
+
// confirmed by a person, so a covered one is still taken over
|
|
226
|
+
if (snapshotCovers(snap, s.set) && !(confirmBootstrap && snapRow?.source === "bootstrap")) {
|
|
179
227
|
throw new ApiError("extension.not_pending", `Extension ${name} ${s.version} has no new permissions awaiting approval`);
|
|
180
228
|
}
|
|
181
229
|
const { added, removed } = diffPermissions(snap?.permissions, s.set);
|
|
@@ -187,10 +235,9 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
187
235
|
});
|
|
188
236
|
}
|
|
189
237
|
/** 配置声明 → 安装记录(与配置声明重名的安装记录不生效,不单列)。`only` 给出时只取这一个。 */
|
|
190
|
-
async subjects(only) {
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
.filter((p) => only === undefined || p.name === only);
|
|
238
|
+
async subjects(only, names) {
|
|
239
|
+
const wanted = (name) => (only === undefined || name === only) && (names === undefined || names.has(name));
|
|
240
|
+
const declared = this.host.declaredPlugins().filter((p) => wanted(p.name));
|
|
194
241
|
const taken = new Set(this.host.declaredPlugins().map((p) => p.name));
|
|
195
242
|
const out = [...declared]
|
|
196
243
|
.sort((a, b) => a.name.localeCompare(b.name))
|
|
@@ -206,7 +253,7 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
206
253
|
}));
|
|
207
254
|
if (only !== undefined && out.length > 0)
|
|
208
255
|
return out;
|
|
209
|
-
const rows = (await this.installs.list()).filter((r) => !taken.has(r.name) && (
|
|
256
|
+
const rows = (await this.installs.list()).filter((r) => !taken.has(r.name) && wanted(r.name));
|
|
210
257
|
for (const r of rows) {
|
|
211
258
|
let info;
|
|
212
259
|
try {
|
|
@@ -273,11 +320,41 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
273
320
|
}
|
|
274
321
|
return { ...cached, configurable: cached.set.config.deployment.length > 0 };
|
|
275
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* For each configurable, readable extension whose platform config leaves required overridable
|
|
325
|
+
* fields empty (spec A §5.4a): the number of orgs still needing their own config. Extensions
|
|
326
|
+
* without overridable fields cost no read.
|
|
327
|
+
*/
|
|
328
|
+
async orgsNeedingConfig(subjects) {
|
|
329
|
+
const out = new Map();
|
|
330
|
+
for (const s of subjects) {
|
|
331
|
+
if (!s.configurable || s.broken !== undefined)
|
|
332
|
+
continue;
|
|
333
|
+
try {
|
|
334
|
+
const missing = await this.deploymentConfig.orgMustConfigure(s.name);
|
|
335
|
+
if (missing.length > 0) {
|
|
336
|
+
out.set(s.name, await this.effectiveConfigs.countNeedingConfig(s.name));
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
catch (err) {
|
|
340
|
+
// the list never fails for one extension's config; the field is then left out
|
|
341
|
+
this.log.warn("cannot tell whether orgs must configure the extension", {
|
|
342
|
+
plugin: s.name,
|
|
343
|
+
err,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return out;
|
|
348
|
+
}
|
|
276
349
|
async views(subjects) {
|
|
277
350
|
if (subjects.length === 0)
|
|
278
351
|
return [];
|
|
279
352
|
const names = subjects.map((s) => s.name);
|
|
280
353
|
const snapshots = await this.approvals.all();
|
|
354
|
+
const [displayNames, icons] = await Promise.all([
|
|
355
|
+
this.displayNames.many(names),
|
|
356
|
+
this.icons.many(names, { kind: "admin" }),
|
|
357
|
+
]);
|
|
281
358
|
const staleSeconds = STALE_RECONCILE_PERIODS * this.config.get().extensionHost.reconcileIntervalSeconds;
|
|
282
359
|
const rows = await this.db
|
|
283
360
|
.selectFrom("extension_replica_status")
|
|
@@ -286,7 +363,52 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
286
363
|
.where("heartbeat_at", ">", sql `now() - make_interval(secs => ${staleSeconds})`)
|
|
287
364
|
.orderBy("replica_id")
|
|
288
365
|
.execute();
|
|
366
|
+
const items = await pluginItemsOf(this.db, names);
|
|
367
|
+
// The other providers named by a `conflict` row, for their display names.
|
|
368
|
+
const conflicts = new Map(rows.flatMap((r) => {
|
|
369
|
+
const c = r.state === "pending" && r.reason === "conflict" && parseProviderConflict(r.detail);
|
|
370
|
+
return c ? [[r.plugin, c]] : [];
|
|
371
|
+
}));
|
|
372
|
+
const otherNames = [
|
|
373
|
+
...new Set([...conflicts].flatMap(([n, c]) => c.providers.filter((p) => p !== n))),
|
|
374
|
+
];
|
|
375
|
+
const otherDisplay = otherNames.length > 0 ? await this.displayNames.many(otherNames) : null;
|
|
376
|
+
const needing = await this.orgsNeedingConfig(subjects);
|
|
377
|
+
// A disabled install whose single-provider point another enabled extension provides: enabling
|
|
378
|
+
// it would be refused, so the view says which one to disable first.
|
|
379
|
+
const blocked = new Map();
|
|
380
|
+
for (const s of subjects) {
|
|
381
|
+
if (s.install?.desiredState !== "disabled" || s.broken !== undefined)
|
|
382
|
+
continue;
|
|
383
|
+
const block = await this.singleProvider.occupant(s.name, s.set.provides);
|
|
384
|
+
if (block)
|
|
385
|
+
blocked.set(s.name, block);
|
|
386
|
+
}
|
|
387
|
+
const counts = new Map((await this.db
|
|
388
|
+
.selectFrom(enabledExtensionsByOrg(this.db).as("en"))
|
|
389
|
+
.innerJoin("orgs", "orgs.id", "en.org_id")
|
|
390
|
+
.select(["en.plugin", (eb) => eb.fn.countAll().as("n")])
|
|
391
|
+
.where("orgs.deleted_at", "is", null)
|
|
392
|
+
.where("en.plugin", "in", names)
|
|
393
|
+
.groupBy("en.plugin")
|
|
394
|
+
.execute()).map((r) => [r.plugin, Number(r.n)]));
|
|
395
|
+
const { clients, reports } = await this.clientsOf(subjects, rows);
|
|
289
396
|
return subjects.map((s) => {
|
|
397
|
+
const of = items.get(s.name);
|
|
398
|
+
const clientFields = {
|
|
399
|
+
client: clients.get(s.name) ?? null,
|
|
400
|
+
clientReports: reports.get(s.name) ?? [],
|
|
401
|
+
};
|
|
402
|
+
const builtin = of?.some((i) => i.builtin) === true || s.install?.required === true;
|
|
403
|
+
const scopeInfo = {
|
|
404
|
+
scope: of?.[0]
|
|
405
|
+
? builtin || of.some((i) => i.scope === "all")
|
|
406
|
+
? "all"
|
|
407
|
+
: of[0].scope
|
|
408
|
+
: null,
|
|
409
|
+
enabledOrgs: counts.get(s.name) ?? 0,
|
|
410
|
+
builtin,
|
|
411
|
+
};
|
|
290
412
|
const replicas = rows.filter((r) => r.plugin === s.name);
|
|
291
413
|
const snap = snapshots.get(s.name);
|
|
292
414
|
const { added, removed } = diffPermissions(snap?.permissions, s.set);
|
|
@@ -294,9 +416,13 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
294
416
|
const configValid = s.configValid ??
|
|
295
417
|
!replicas.some((r) => r.state === "pending" && r.reason === "config" && r.sha256 === target);
|
|
296
418
|
const install = s.install;
|
|
419
|
+
const displayName = displayNames.get(s.name) ?? null;
|
|
420
|
+
const icon = icons.get(s.name) ?? null;
|
|
297
421
|
if (s.broken !== undefined) {
|
|
298
422
|
return {
|
|
299
423
|
name: s.name,
|
|
424
|
+
displayName,
|
|
425
|
+
icon,
|
|
300
426
|
version: s.version,
|
|
301
427
|
source: s.source,
|
|
302
428
|
sha256: target,
|
|
@@ -319,24 +445,42 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
319
445
|
configValid,
|
|
320
446
|
removable: install?.required !== true,
|
|
321
447
|
required: install?.required === true,
|
|
448
|
+
...scopeInfo,
|
|
322
449
|
installSource: install?.source ?? null,
|
|
450
|
+
uiDropped: this.host.uiDropped(s.name),
|
|
451
|
+
...clientFields,
|
|
323
452
|
error: s.broken,
|
|
324
453
|
};
|
|
325
454
|
}
|
|
326
455
|
const permissions = permissionGroups(s.set);
|
|
456
|
+
const status = deriveExtensionStatus({
|
|
457
|
+
source: s.source,
|
|
458
|
+
desired: install && { sha256: install.sha256, state: install.desiredState },
|
|
459
|
+
pendingApproval: !snapshotCovers(snap, s.set),
|
|
460
|
+
configValid,
|
|
461
|
+
migratedSha: install?.migratedSha ?? null,
|
|
462
|
+
replicas: replicas.map((r) => ({ state: r.state, reason: r.reason, sha256: r.sha256 })),
|
|
463
|
+
});
|
|
464
|
+
const conflict = status === "conflict" ? conflicts.get(s.name) : undefined;
|
|
465
|
+
const enableBlocked = blocked.get(s.name);
|
|
327
466
|
return {
|
|
328
467
|
name: s.name,
|
|
468
|
+
displayName,
|
|
469
|
+
icon,
|
|
329
470
|
version: s.version,
|
|
330
471
|
source: s.source,
|
|
331
472
|
sha256: target,
|
|
332
|
-
status
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
473
|
+
status,
|
|
474
|
+
...(conflict && {
|
|
475
|
+
conflict: {
|
|
476
|
+
extensionPoint: conflict.extensionPoint,
|
|
477
|
+
providers: conflict.providers
|
|
478
|
+
.filter((p) => p !== s.name)
|
|
479
|
+
.map((p) => ({ name: p, displayName: otherDisplay?.get(p) ?? null })),
|
|
480
|
+
...(conflict.unprovided && { unprovided: true }),
|
|
481
|
+
},
|
|
339
482
|
}),
|
|
483
|
+
...(enableBlocked && { enableBlocked }),
|
|
340
484
|
desired: install && {
|
|
341
485
|
version: install.version,
|
|
342
486
|
sha256: install.sha256,
|
|
@@ -353,12 +497,85 @@ let ExtensionAdmin = class ExtensionAdmin {
|
|
|
353
497
|
snapshot: snapshotView(snap),
|
|
354
498
|
configurable: s.configurable,
|
|
355
499
|
configValid,
|
|
500
|
+
...(needing.has(s.name) && { orgsNeedingConfig: needing.get(s.name) }),
|
|
356
501
|
removable: s.source === "install" && install?.required !== true,
|
|
357
502
|
required: install?.required === true,
|
|
503
|
+
...scopeInfo,
|
|
358
504
|
installSource: install?.source ?? null,
|
|
505
|
+
uiDropped: this.host.uiDropped(s.name),
|
|
506
|
+
...clientFields,
|
|
359
507
|
};
|
|
360
508
|
});
|
|
361
509
|
}
|
|
510
|
+
/**
|
|
511
|
+
* The client build of each subject and its newest reports (at most {@link CLIENT_REPORTS_SHOWN}
|
|
512
|
+
* per extension, limited in SQL), in two queries over all subjects. The build is the one a live
|
|
513
|
+
* replica serves (`serving_sha256` of the fresh rows `live`, like the shell reads: the install's
|
|
514
|
+
* own package when it runs, else the newest still served, e.g. the old one beside an upgrade
|
|
515
|
+
* awaiting approval or failed); with none served, the install record package's build.
|
|
516
|
+
*/
|
|
517
|
+
async clientsOf(subjects, live) {
|
|
518
|
+
const targets = subjects.flatMap((s) => {
|
|
519
|
+
if (s.install === undefined || s.install === null || s.broken !== undefined)
|
|
520
|
+
return [];
|
|
521
|
+
const serving = new Set(live.flatMap((r) => r.plugin === s.name && r.serving_sha256 !== null ? [r.serving_sha256] : []));
|
|
522
|
+
return [{ plugin: s.name, sha: s.install.sha256, serving }];
|
|
523
|
+
});
|
|
524
|
+
const clients = new Map();
|
|
525
|
+
const reports = new Map();
|
|
526
|
+
if (targets.length === 0)
|
|
527
|
+
return { clients, reports };
|
|
528
|
+
const shas = [...new Set(targets.flatMap((t) => [t.sha, ...t.serving]))];
|
|
529
|
+
const builds = await this.db
|
|
530
|
+
.selectFrom("extension_client_builds")
|
|
531
|
+
.select(["package_sha256", "plugin", "sizes", "api_version", "created_at"])
|
|
532
|
+
.where("package_sha256", "in", shas)
|
|
533
|
+
.orderBy("created_at", "desc")
|
|
534
|
+
.execute();
|
|
535
|
+
for (const t of targets) {
|
|
536
|
+
const mine = builds.filter((x) => x.plugin === t.plugin);
|
|
537
|
+
const b = (t.serving.has(t.sha) ? mine.find((x) => x.package_sha256 === t.sha) : undefined) ??
|
|
538
|
+
mine.find((x) => t.serving.has(x.package_sha256)) ??
|
|
539
|
+
(t.serving.size === 0 ? mine.find((x) => x.package_sha256 === t.sha) : undefined);
|
|
540
|
+
if (b === undefined)
|
|
541
|
+
continue;
|
|
542
|
+
clients.set(t.plugin, {
|
|
543
|
+
build: b.package_sha256,
|
|
544
|
+
files: Object.entries(b.sizes)
|
|
545
|
+
.map(([path, bytes]) => ({ path, bytes }))
|
|
546
|
+
.sort((x, y) => x.path.localeCompare(y.path)),
|
|
547
|
+
apiVersion: b.api_version,
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
const built = [...clients].map(([plugin, c]) => ({ plugin, build: c.build }));
|
|
551
|
+
if (built.length === 0)
|
|
552
|
+
return { clients, reports };
|
|
553
|
+
const ranked = this.db
|
|
554
|
+
.selectFrom("extension_client_reports")
|
|
555
|
+
.selectAll()
|
|
556
|
+
.select(sql `row_number() over (partition by plugin order by last_at desc)`.as("rank"))
|
|
557
|
+
.where((eb) => eb.or(built.map((c) => eb.and([eb("plugin", "=", c.plugin), eb("build", "=", c.build)]))));
|
|
558
|
+
const rows = await this.db
|
|
559
|
+
.selectFrom(ranked.as("r"))
|
|
560
|
+
.selectAll()
|
|
561
|
+
.where("r.rank", "<=", CLIENT_REPORTS_SHOWN)
|
|
562
|
+
.orderBy("r.last_at", "desc")
|
|
563
|
+
.execute();
|
|
564
|
+
for (const r of rows) {
|
|
565
|
+
const list = reports.get(r.plugin) ?? [];
|
|
566
|
+
list.push({
|
|
567
|
+
orgId: r.org_id,
|
|
568
|
+
contribution: r.contribution,
|
|
569
|
+
kind: r.kind,
|
|
570
|
+
count: r.count,
|
|
571
|
+
firstAt: r.first_at.toISOString(),
|
|
572
|
+
lastAt: r.last_at.toISOString(),
|
|
573
|
+
lastMessage: r.last_message,
|
|
574
|
+
});
|
|
575
|
+
reports.set(r.plugin, list);
|
|
576
|
+
}
|
|
577
|
+
return { clients, reports };
|
|
578
|
+
}
|
|
362
579
|
};
|
|
363
580
|
__decorate([
|
|
364
581
|
Transactional()
|
|
@@ -367,7 +584,7 @@ ExtensionAdmin = __decorate([
|
|
|
367
584
|
Injectable(),
|
|
368
585
|
__param(0, Inject(KernelDb)),
|
|
369
586
|
__param(1, Inject(TransactionHost)),
|
|
370
|
-
__param(2, Inject(
|
|
587
|
+
__param(2, Inject(SuperAdminLock)),
|
|
371
588
|
__param(3, Inject(PluginApproveLock)),
|
|
372
589
|
__param(4, Inject(ExtensionBlobs)),
|
|
373
590
|
__param(5, Inject(ExtensionInstalls)),
|
|
@@ -376,7 +593,12 @@ ExtensionAdmin = __decorate([
|
|
|
376
593
|
__param(8, Inject(ExtensionLifecycle)),
|
|
377
594
|
__param(9, Inject(KernelConfigService)),
|
|
378
595
|
__param(10, Inject(KERNEL_BUS)),
|
|
379
|
-
__param(11, Inject(KERNEL_LOGGER))
|
|
596
|
+
__param(11, Inject(KERNEL_LOGGER)),
|
|
597
|
+
__param(12, Inject(ExtensionDisplayNames)),
|
|
598
|
+
__param(13, Inject(ExtensionDeploymentConfigService)),
|
|
599
|
+
__param(14, Inject(EffectiveConfigs)),
|
|
600
|
+
__param(15, Inject(SingleProviderGuard)),
|
|
601
|
+
__param(16, Inject(PluginIcons))
|
|
380
602
|
], ExtensionAdmin);
|
|
381
603
|
export { ExtensionAdmin };
|
|
382
604
|
const replicaView = (r) => ({
|
|
@@ -19,14 +19,15 @@ export interface PermissionSnapshot {
|
|
|
19
19
|
* reason: new = no snapshot (first seen); added = more permissions than the snapshot;
|
|
20
20
|
* dependency = needs no approval itself, but an extension point it `requires` is provided only by
|
|
21
21
|
* extensions pending approval (or not loaded because of that); the same when it declares
|
|
22
|
-
* `permissions.storage` and `object-store@1` has no provider that will load (providers may be empty)
|
|
22
|
+
* `permissions.storage` and `object-store@1` has no provider that will load (providers may be empty);
|
|
23
|
+
* conflict = see {@link PendingExtension.conflicts}.
|
|
23
24
|
*/
|
|
24
25
|
export interface PendingExtension {
|
|
25
26
|
plugin: string;
|
|
26
27
|
version: string;
|
|
27
28
|
added: string[];
|
|
28
29
|
removed: string[];
|
|
29
|
-
reason: "new" | "added" | "dependency";
|
|
30
|
+
reason: "new" | "added" | "dependency" | "conflict";
|
|
30
31
|
/**
|
|
31
32
|
* When reason is dependency: the extension points blocking it and their providers (only providers
|
|
32
33
|
* that are not loading; empty when there is no provider at all).
|
|
@@ -35,6 +36,15 @@ export interface PendingExtension {
|
|
|
35
36
|
extensionPoint: string;
|
|
36
37
|
providers: string[];
|
|
37
38
|
}[];
|
|
39
|
+
/**
|
|
40
|
+
* When reason is conflict (an installed extension, not an approval matter): the single-provider
|
|
41
|
+
* extension points it provides that other extensions already provide, and those providers. It
|
|
42
|
+
* loads once they are disabled or uninstalled.
|
|
43
|
+
*/
|
|
44
|
+
conflicts?: {
|
|
45
|
+
extensionPoint: string;
|
|
46
|
+
providers: string[];
|
|
47
|
+
}[];
|
|
38
48
|
}
|
|
39
49
|
/** {@link planApprovals} 对单个插件的结论。 */
|
|
40
50
|
export type ApprovalDecision = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ClientBuilds } from "../client/client-builds.service.js";
|
|
1
2
|
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
2
3
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
3
4
|
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
@@ -10,6 +11,13 @@ import type { ExtensionPackage } from "./package.js";
|
|
|
10
11
|
* extension, F-Q): PG `extension_blobs` (`blob_store = pg`, also limited by `packages.maxBytes`).
|
|
11
12
|
* Each package's location is recorded in `extension_packages.blob_store`; reads follow the record and
|
|
12
13
|
* check the sha256.
|
|
14
|
+
*
|
|
15
|
+
* A package with an `extension.client` section also stores its client build (`ClientBuilds`,
|
|
16
|
+
* client extensions spec §9.1): the client files are read again from the bytes being stored,
|
|
17
|
+
* checked against the section and written to object storage before the package row's transaction,
|
|
18
|
+
* and the build row is inserted in that transaction, all under the build's lock. Without object
|
|
19
|
+
* storage (`ClientBuilds`' own, which the CLI points at its store) such a package is refused
|
|
20
|
+
* (`storage.unavailable`), so a stored build always has its files.
|
|
13
21
|
*/
|
|
14
22
|
/** 取到的包与 sha256 不符(存储里的字节被篡改或损坏)。 */
|
|
15
23
|
export declare class ExtensionBlobIntegrityError extends Error {
|
|
@@ -31,6 +39,7 @@ export declare class ExtensionBlobs {
|
|
|
31
39
|
/** Without an object-store extension (the CLI) packages go to PG. */
|
|
32
40
|
private readonly storage;
|
|
33
41
|
private readonly config;
|
|
42
|
+
private readonly clientBuilds;
|
|
34
43
|
/**
|
|
35
44
|
* CLI only: packages the CLI process imported itself and reads back before the store, since such
|
|
36
45
|
* a package may be recorded in an object store the CLI cannot read. Each entry's sha256 was
|
|
@@ -40,7 +49,7 @@ export declare class ExtensionBlobs {
|
|
|
40
49
|
private readonly local;
|
|
41
50
|
constructor(db: KernelDb, txHost: TransactionHost,
|
|
42
51
|
/** Without an object-store extension (the CLI) packages go to PG. */
|
|
43
|
-
storage: StorageService, config: KernelConfigService);
|
|
52
|
+
storage: StorageService, config: KernelConfigService, clientBuilds: ClientBuilds);
|
|
44
53
|
/** `packages.maxBytes` (read at every call). */
|
|
45
54
|
private maxBytes;
|
|
46
55
|
/**
|
|
@@ -54,6 +63,10 @@ export declare class ExtensionBlobs {
|
|
|
54
63
|
* (content-addressed, idempotent; replicas writing the same package concurrently is harmless).
|
|
55
64
|
*/
|
|
56
65
|
put(p: ExtensionPackage, bytes: Uint8Array, src: ExtensionBlobSource): Promise<void>;
|
|
66
|
+
/** {@link put} after its checks; `client` for a package with client code (under its lock). */
|
|
67
|
+
private store;
|
|
68
|
+
/** The files under `dist/client/` of a package's bytes (sha256 already checked by the caller). */
|
|
69
|
+
private clientFiles;
|
|
57
70
|
private record;
|
|
58
71
|
/** 已有记录的包:按记录的存放位置检查字节在不在,不在就写回(调用方已校验 sha256)。 */
|
|
59
72
|
private repair;
|