@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,4 +1,4 @@
|
|
|
1
|
-
import { type PluginExtensionSection } from "@capybara-hq/plugin-sdk";
|
|
1
|
+
import { type LocalizedName, type PluginExtensionSection } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { ApiError } from "../errors.js";
|
|
3
3
|
import { HOST_ZOD_VERSION, type PackageTgzLimits } from "../packages/tgz.js";
|
|
4
4
|
import { type PermissionSet } from "./permission-set.js";
|
|
@@ -29,10 +29,11 @@ export { HOST_ZOD_VERSION };
|
|
|
29
29
|
/** Unpack limits: `maxBytes` is `packages.maxBytes`; the rest default to {@link EXTENSION_PACKAGE_LIMITS}. */
|
|
30
30
|
export type ExtensionPackageLimits = PackageTgzLimits;
|
|
31
31
|
/**
|
|
32
|
-
* Codes of {@link ExtensionPackageError}: an invalid package, a tgz in the pre-0.1.0 format,
|
|
33
|
-
* plugin without an extension (nothing to install on the deployment)
|
|
32
|
+
* Codes of {@link ExtensionPackageError}: an invalid package, a tgz in the pre-0.1.0 format, a
|
|
33
|
+
* plugin without an extension (nothing to install on the deployment), or client code the
|
|
34
|
+
* extension manifest does not declare.
|
|
34
35
|
*/
|
|
35
|
-
export type ExtensionPackageErrorCode = "extension.package_invalid" | "extension.legacy_format" | "extension.no_extension";
|
|
36
|
+
export type ExtensionPackageErrorCode = "extension.package_invalid" | "extension.legacy_format" | "extension.no_extension" | "client.undeclared";
|
|
36
37
|
/** The extension package is invalid; `issues` lists the problems (English, shown to the admin). */
|
|
37
38
|
export declare class ExtensionPackageError extends Error {
|
|
38
39
|
readonly code: ExtensionPackageErrorCode;
|
|
@@ -57,6 +58,8 @@ export interface ExtensionPackage {
|
|
|
57
58
|
size: number;
|
|
58
59
|
packageJson: Record<string, unknown>;
|
|
59
60
|
section: ExtensionPackageSection;
|
|
61
|
+
/** The plugin.json `displayName`, when the plugin has one. */
|
|
62
|
+
displayName?: LocalizedName;
|
|
60
63
|
files: {
|
|
61
64
|
path: string;
|
|
62
65
|
size: number;
|
|
@@ -105,6 +108,17 @@ export declare function readMigrationSql(root: string, section: Pick<PluginExten
|
|
|
105
108
|
file: string;
|
|
106
109
|
sql: string;
|
|
107
110
|
}[]>;
|
|
111
|
+
/**
|
|
112
|
+
* The plugin.json `displayName` of the plugin a config-declared extension module belongs to: the
|
|
113
|
+
* `.capybara-plugin/plugin.json` beside the nearest `package.json` above the module's directory
|
|
114
|
+
* `dir`. Nothing when there is no such file or it names another plugin than the extension `name`
|
|
115
|
+
* (a module inside some other plugin's directory); `problem` when it cannot be read or is not a
|
|
116
|
+
* valid plugin.json (the extension then has no display name of its own).
|
|
117
|
+
*/
|
|
118
|
+
export declare function declaredDisplayName(dir: string, name: string): Promise<{
|
|
119
|
+
displayName?: LocalizedName;
|
|
120
|
+
problem?: string;
|
|
121
|
+
}>;
|
|
108
122
|
/**
|
|
109
123
|
* Unpacks the package into `dir` (dropping the `package/` prefix). `dir` must not exist or be empty;
|
|
110
124
|
* the unpack rules and limits are the same as {@link readExtensionPackage} (paths, file types, entry
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
-
import { dirname, posix, relative, resolve as resolvePath } from "node:path";
|
|
3
|
-
import { checkEntryImports, isSafePackagePath, PLUGIN_MANIFEST_FILE, } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { dirname, join, posix, relative, resolve as resolvePath } from "node:path";
|
|
3
|
+
import { checkEntryImports, isSafePackagePath, PLUGIN_MANIFEST_FILE, parsePluginManifest, } from "@capybara-hq/plugin-sdk";
|
|
4
4
|
import { init as lexerInit, parse as lexerParse } from "es-module-lexer";
|
|
5
5
|
import { PluginPackageError, readPluginPackage } from "../catalog/plugin-package.js";
|
|
6
6
|
import { pluginSchemaName } from "../ctx/create-ctx.js";
|
|
@@ -111,7 +111,11 @@ function checkModuleGraph(entry, byPath) {
|
|
|
111
111
|
return issues;
|
|
112
112
|
}
|
|
113
113
|
/** Maps an error of `readPluginPackage` to the extension package error. */
|
|
114
|
-
const fromPluginPackageError = (e) => new ExtensionPackageError(e.issues, e.code === "catalog.legacy_format"
|
|
114
|
+
const fromPluginPackageError = (e) => new ExtensionPackageError(e.issues, e.code === "catalog.legacy_format"
|
|
115
|
+
? "extension.legacy_format"
|
|
116
|
+
: e.code === "client.undeclared"
|
|
117
|
+
? "client.undeclared"
|
|
118
|
+
: "extension.package_invalid");
|
|
115
119
|
/**
|
|
116
120
|
* Reads and validates an extension package without running any code from it: a plugin tgz
|
|
117
121
|
* (`readPluginPackage`) with an `extension` section, whose entry's module graph passes the import
|
|
@@ -159,6 +163,7 @@ export async function readExtensionPackage(bytes, opts) {
|
|
|
159
163
|
size: plugin.size,
|
|
160
164
|
packageJson: plugin.packageJson,
|
|
161
165
|
section: { ...ext, name: manifest.name, version: manifest.version },
|
|
166
|
+
...(manifest.displayName !== undefined && { displayName: manifest.displayName }),
|
|
162
167
|
files: [...files].map(([path, data]) => ({ path, size: data.byteLength })),
|
|
163
168
|
migrationSql,
|
|
164
169
|
};
|
|
@@ -206,6 +211,54 @@ export async function readMigrationSql(root, section) {
|
|
|
206
211
|
out.push({ file, sql: await readFile(resolvePath(dir, file), "utf8") });
|
|
207
212
|
return out;
|
|
208
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* The plugin.json `displayName` of the plugin a config-declared extension module belongs to: the
|
|
216
|
+
* `.capybara-plugin/plugin.json` beside the nearest `package.json` above the module's directory
|
|
217
|
+
* `dir`. Nothing when there is no such file or it names another plugin than the extension `name`
|
|
218
|
+
* (a module inside some other plugin's directory); `problem` when it cannot be read or is not a
|
|
219
|
+
* valid plugin.json (the extension then has no display name of its own).
|
|
220
|
+
*/
|
|
221
|
+
export async function declaredDisplayName(dir, name) {
|
|
222
|
+
let root;
|
|
223
|
+
for (let d = resolvePath(dir);;) {
|
|
224
|
+
try {
|
|
225
|
+
await readFile(join(d, "package.json"));
|
|
226
|
+
root = d;
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// none here: go up
|
|
231
|
+
}
|
|
232
|
+
const up = dirname(d);
|
|
233
|
+
if (up === d)
|
|
234
|
+
return {};
|
|
235
|
+
d = up;
|
|
236
|
+
}
|
|
237
|
+
let text;
|
|
238
|
+
try {
|
|
239
|
+
text = await readFile(join(root, PLUGIN_MANIFEST_FILE), "utf8");
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
return {};
|
|
243
|
+
}
|
|
244
|
+
let json;
|
|
245
|
+
try {
|
|
246
|
+
json = JSON.parse(text);
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
return { problem: `${PLUGIN_MANIFEST_FILE} is not valid JSON: ${errMsg(e)}` };
|
|
250
|
+
}
|
|
251
|
+
// another plugin's plugin.json (valid or not) says nothing about this extension
|
|
252
|
+
const named = json?.name;
|
|
253
|
+
if (typeof named === "string" && named !== name)
|
|
254
|
+
return {};
|
|
255
|
+
const m = parsePluginManifest(json);
|
|
256
|
+
if ("errors" in m)
|
|
257
|
+
return { problem: m.errors.slice(0, 3).join("; ") };
|
|
258
|
+
if (m.name !== name)
|
|
259
|
+
return {};
|
|
260
|
+
return m.displayName === undefined ? {} : { displayName: m.displayName };
|
|
261
|
+
}
|
|
209
262
|
/**
|
|
210
263
|
* Unpacks the package into `dir` (dropping the `package/` prefix). `dir` must not exist or be empty;
|
|
211
264
|
* the unpack rules and limits are the same as {@link readExtensionPackage} (paths, file types, entry
|
|
@@ -42,13 +42,27 @@ export interface PermissionSet {
|
|
|
42
42
|
}[];
|
|
43
43
|
network: string[];
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
45
|
+
* Client code (`permissions.client`, client extensions spec §5.4): the plugin ships a browser
|
|
46
|
+
* bundle that runs with full trust in members' browsers. Sensitive and blocking. Older snapshots
|
|
47
|
+
* lack it (read as false).
|
|
48
|
+
*/
|
|
49
|
+
client: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* UI contributions (`permissions.ui`): `views` are recorded in the snapshot without blocking the
|
|
52
|
+
* load (added to the snapshot automatically on upgrade); `embeds` and `components` block the
|
|
53
|
+
* load like any other permission. Older snapshots lack `ui` or `components` (read as empty).
|
|
47
54
|
*/
|
|
48
55
|
ui: {
|
|
49
56
|
views: string[];
|
|
50
57
|
embeds: string[];
|
|
58
|
+
components: string[];
|
|
51
59
|
};
|
|
60
|
+
/**
|
|
61
|
+
* Setup check ids (`permissions.setupChecks`, setup guides v2 §10.2): recorded and shown at
|
|
62
|
+
* review but never blocking loading, like `ui.views` (a check gets only data the extension
|
|
63
|
+
* already gets for the same target). Absent when none are declared (and in older snapshots).
|
|
64
|
+
*/
|
|
65
|
+
setupChecks?: string[];
|
|
52
66
|
};
|
|
53
67
|
/**
|
|
54
68
|
* 安装记录包迁移警告的摘要(`warningsDigest`,Ruling P4);没有警告或不是安装记录时省略。
|
|
@@ -94,7 +108,8 @@ export declare function buildPermissionSet(input: {
|
|
|
94
108
|
}): PermissionSet;
|
|
95
109
|
/**
|
|
96
110
|
* 权限集合的稳定字符串键(排序),如 `provides:channel@1`、`config.org.secret:apiKey`、`table:todos`、
|
|
97
|
-
* `permissions.tools:write`、`permissions.http.public:POST /events`、`ui.view:tasks`、`ui.embed:board
|
|
111
|
+
* `permissions.tools:write`、`permissions.http.public:POST /events`、`ui.view:tasks`、`ui.embed:board`,
|
|
112
|
+
* `permissions.client`, `ui.component:hud`.
|
|
98
113
|
* 容忍旧快照缺字段(按空处理),快照格式演进时不会抛错。
|
|
99
114
|
*/
|
|
100
115
|
export declare function permissionKeys(set: PermissionSet): string[];
|
|
@@ -103,11 +118,26 @@ export declare function permissionKeys(set: PermissionSet): string[];
|
|
|
103
118
|
* Lower-case letters and dots only, as catalog permission keys require (`PERMISSION_KEY_RE`).
|
|
104
119
|
*/
|
|
105
120
|
export declare const POLICY_HOOK_KEY_PREFIX = "permissions.hooks.policy:";
|
|
121
|
+
/**
|
|
122
|
+
* Permission key of client code (`permissions.client`): sensitive and blocking. The key, not the
|
|
123
|
+
* bundle's bytes, is reviewed: an upgrade that only changes the bundle adds no key.
|
|
124
|
+
*/
|
|
125
|
+
export declare const CLIENT_KEY = "permissions.client";
|
|
126
|
+
/** Key prefix of a client component (`ui.component:<id>`): sensitive and blocking. */
|
|
127
|
+
export declare const UI_COMPONENT_KEY_PREFIX = "ui.component:";
|
|
106
128
|
/** 渲染 schema 视图的权限键前缀:记入快照但不卡加载(见 {@link blockingKeys})。 */
|
|
107
129
|
export declare const UI_VIEW_KEY_PREFIX = "ui.view:";
|
|
108
130
|
/**
|
|
109
|
-
*
|
|
110
|
-
*
|
|
131
|
+
* Key prefix of a setup check id (`permissions.setupChecks`): recorded but never blocking
|
|
132
|
+
* ({@link blockingKeys}). Lower-case letters and dots before the colon, as catalog permission keys
|
|
133
|
+
* require (`PERMISSION_KEY_RE` of the marketplace format).
|
|
134
|
+
*/
|
|
135
|
+
export declare const SETUP_CHECK_KEY_PREFIX = "setup.check:";
|
|
136
|
+
/**
|
|
137
|
+
* 新增项里需要批准(卡加载)的部分:除 `ui.view:*` 与 `setup.check:*` 之外的全部。视图只是把插件已有的数据交给
|
|
138
|
+
* 内核组件来画,不给插件新能力(spec §4.1);setup checks get only data the extension already gets
|
|
139
|
+
* for the same target (setup guides v2 §10.2). An upgrade adding either loads as usual and the
|
|
140
|
+
* snapshot takes them.
|
|
111
141
|
*/
|
|
112
142
|
export declare function blockingKeys(added: readonly string[]): string[];
|
|
113
143
|
/** 两份权限集合的差异(按 {@link permissionKeys});`prev` 为空(无快照)时全部算新增。 */
|
|
@@ -107,14 +107,24 @@ export function buildPermissionSet(input) {
|
|
|
107
107
|
.map((m) => ({ purpose: m.purpose, kind: m.kind }))
|
|
108
108
|
.sort((a, b) => cmp(a.purpose, b.purpose)),
|
|
109
109
|
network: sortedUnique(p.network),
|
|
110
|
-
|
|
110
|
+
client: p.client === true,
|
|
111
|
+
ui: {
|
|
112
|
+
views: sortedUnique(p.ui?.views),
|
|
113
|
+
embeds: sortedUnique(p.ui?.embeds),
|
|
114
|
+
components: sortedUnique(p.ui?.components),
|
|
115
|
+
},
|
|
116
|
+
// only when declared: sets (and snapshots) of plugins without setup checks stay as they were
|
|
117
|
+
...(p.setupChecks && p.setupChecks.length > 0
|
|
118
|
+
? { setupChecks: sortedUnique(p.setupChecks) }
|
|
119
|
+
: {}),
|
|
111
120
|
},
|
|
112
121
|
...(input.warningsDigest ? { warningsDigest: input.warningsDigest } : {}),
|
|
113
122
|
};
|
|
114
123
|
}
|
|
115
124
|
/**
|
|
116
125
|
* 权限集合的稳定字符串键(排序),如 `provides:channel@1`、`config.org.secret:apiKey`、`table:todos`、
|
|
117
|
-
* `permissions.tools:write`、`permissions.http.public:POST /events`、`ui.view:tasks`、`ui.embed:board
|
|
126
|
+
* `permissions.tools:write`、`permissions.http.public:POST /events`、`ui.view:tasks`、`ui.embed:board`,
|
|
127
|
+
* `permissions.client`, `ui.component:hud`.
|
|
118
128
|
* 容忍旧快照缺字段(按空处理),快照格式演进时不会抛错。
|
|
119
129
|
*/
|
|
120
130
|
export function permissionKeys(set) {
|
|
@@ -151,10 +161,16 @@ export function permissionKeys(set) {
|
|
|
151
161
|
keys.push(`permissions.models:${m.purpose} (${m.kind})`);
|
|
152
162
|
for (const d of p.network ?? [])
|
|
153
163
|
keys.push(`permissions.network:${d}`);
|
|
164
|
+
if (p.client)
|
|
165
|
+
keys.push(CLIENT_KEY);
|
|
154
166
|
for (const v of p.ui?.views ?? [])
|
|
155
167
|
keys.push(`${UI_VIEW_KEY_PREFIX}${v}`);
|
|
156
168
|
for (const e of p.ui?.embeds ?? [])
|
|
157
169
|
keys.push(`ui.embed:${e}`);
|
|
170
|
+
for (const c of p.ui?.components ?? [])
|
|
171
|
+
keys.push(`${UI_COMPONENT_KEY_PREFIX}${c}`);
|
|
172
|
+
for (const c of p.setupChecks ?? [])
|
|
173
|
+
keys.push(`${SETUP_CHECK_KEY_PREFIX}${c}`);
|
|
158
174
|
if (s.warningsDigest)
|
|
159
175
|
keys.push(`${WARNINGS_KEY_PREFIX}${s.warningsDigest}`);
|
|
160
176
|
return sortedUnique(keys);
|
|
@@ -164,14 +180,29 @@ export function permissionKeys(set) {
|
|
|
164
180
|
* Lower-case letters and dots only, as catalog permission keys require (`PERMISSION_KEY_RE`).
|
|
165
181
|
*/
|
|
166
182
|
export const POLICY_HOOK_KEY_PREFIX = "permissions.hooks.policy:";
|
|
183
|
+
/**
|
|
184
|
+
* Permission key of client code (`permissions.client`): sensitive and blocking. The key, not the
|
|
185
|
+
* bundle's bytes, is reviewed: an upgrade that only changes the bundle adds no key.
|
|
186
|
+
*/
|
|
187
|
+
export const CLIENT_KEY = "permissions.client";
|
|
188
|
+
/** Key prefix of a client component (`ui.component:<id>`): sensitive and blocking. */
|
|
189
|
+
export const UI_COMPONENT_KEY_PREFIX = "ui.component:";
|
|
167
190
|
/** 渲染 schema 视图的权限键前缀:记入快照但不卡加载(见 {@link blockingKeys})。 */
|
|
168
191
|
export const UI_VIEW_KEY_PREFIX = "ui.view:";
|
|
169
192
|
/**
|
|
170
|
-
*
|
|
171
|
-
*
|
|
193
|
+
* Key prefix of a setup check id (`permissions.setupChecks`): recorded but never blocking
|
|
194
|
+
* ({@link blockingKeys}). Lower-case letters and dots before the colon, as catalog permission keys
|
|
195
|
+
* require (`PERMISSION_KEY_RE` of the marketplace format).
|
|
196
|
+
*/
|
|
197
|
+
export const SETUP_CHECK_KEY_PREFIX = "setup.check:";
|
|
198
|
+
/**
|
|
199
|
+
* 新增项里需要批准(卡加载)的部分:除 `ui.view:*` 与 `setup.check:*` 之外的全部。视图只是把插件已有的数据交给
|
|
200
|
+
* 内核组件来画,不给插件新能力(spec §4.1);setup checks get only data the extension already gets
|
|
201
|
+
* for the same target (setup guides v2 §10.2). An upgrade adding either loads as usual and the
|
|
202
|
+
* snapshot takes them.
|
|
172
203
|
*/
|
|
173
204
|
export function blockingKeys(added) {
|
|
174
|
-
return added.filter((k) => !k.startsWith(UI_VIEW_KEY_PREFIX));
|
|
205
|
+
return added.filter((k) => !k.startsWith(UI_VIEW_KEY_PREFIX) && !k.startsWith(SETUP_CHECK_KEY_PREFIX));
|
|
175
206
|
}
|
|
176
207
|
/** 两份权限集合的差异(按 {@link permissionKeys});`prev` 为空(无快照)时全部算新增。 */
|
|
177
208
|
export function diffPermissions(prev, next) {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { LocalizedName, UiDropReason } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { PluginScope } from "../catalog/scope.js";
|
|
1
3
|
import { type PermissionSet } from "./permission-set.js";
|
|
2
4
|
import type { ExtensionSource } from "./sources.js";
|
|
3
5
|
/**
|
|
@@ -10,11 +12,11 @@ import type { ExtensionSource } from "./sources.js";
|
|
|
10
12
|
export declare function reviewHash(set: PermissionSet, warnings?: readonly PackageWarning[]): string;
|
|
11
13
|
/** 权限清单展示用的一组:按类别分组,`sensitive` 标出需要管理员特别留意的类别。 */
|
|
12
14
|
export interface PermissionGroup {
|
|
13
|
-
category: "provides" | "requires" | "optional" | "config" | "tables" | "secrets" | "storage" | "http" | "publicRoutes" | "tools" | "hooks" | "models" | "network" | "ui";
|
|
15
|
+
category: "provides" | "requires" | "optional" | "config" | "tables" | "secrets" | "storage" | "http" | "publicRoutes" | "tools" | "hooks" | "models" | "network" | "ui" | "components" | "client";
|
|
14
16
|
/**
|
|
15
|
-
* Sensitive category: secrets, public routes, tools, hooks
|
|
16
|
-
* one of {@link SENSITIVE_EXTENSION_POINTS}, and the "UI" group
|
|
17
|
-
* (embed: the extension's own page in an iframe).
|
|
17
|
+
* Sensitive category: secrets, public routes, tools, hooks, client components, client code; also
|
|
18
|
+
* the "provides" group when it holds one of {@link SENSITIVE_EXTENSION_POINTS}, and the "UI" group
|
|
19
|
+
* (views and embeds) when it holds an embedded app (embed: the extension's own page in an iframe).
|
|
18
20
|
*/
|
|
19
21
|
sensitive: boolean;
|
|
20
22
|
items: string[];
|
|
@@ -23,10 +25,12 @@ export interface PermissionGroup {
|
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Sensitive reason codes (the UI translates them by code): secrets, public routes, tools, hooks,
|
|
26
|
-
* embedded apps, and
|
|
27
|
-
*
|
|
28
|
+
* embedded apps, client code and client components (client extensions spec §5.4: code that runs with
|
|
29
|
+
* full trust in members' browsers), and sensitive extension points
|
|
30
|
+
* ({@link SENSITIVE_EXTENSION_POINTS}; the code is the extension point name without `@<major>`, with
|
|
31
|
+
* `-` replaced by `_`).
|
|
28
32
|
*/
|
|
29
|
-
export type SensitiveReason = "secrets" | "public_routes" | "tools" | "hooks" | "ui_embed" | "channel" | "directory" | "identity_source" | "sandbox" | "object_store" | "migration_warnings";
|
|
33
|
+
export type SensitiveReason = "secrets" | "public_routes" | "tools" | "hooks" | "ui_embed" | "client_code" | "ui_component" | "channel" | "directory" | "identity_source" | "sandbox" | "object_store" | "migration_warnings";
|
|
30
34
|
/** 权限清单里的一项(分组里的一项,或 `added` 里的一个权限键)。 */
|
|
31
35
|
export interface PermissionItem {
|
|
32
36
|
value: string;
|
|
@@ -35,10 +39,10 @@ export interface PermissionItem {
|
|
|
35
39
|
reason?: SensitiveReason;
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
38
|
-
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@
|
|
42
|
+
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@2` 在部署里执行任意命令、`object-store@1` 保管全部附件与插件包(D10);
|
|
39
43
|
* `channel@1` 收到组织在 IM 里的对话内容(Ruling A33)、`directory@1` 能把人加进组织(并为其建账号、建身份)、
|
|
40
44
|
* `identity-source@1` 决定谁能登录成哪个账号。插件提供其中任何一个时,「提供」一组标为敏感,
|
|
41
|
-
* 后台插件列表的 `sensitive`
|
|
45
|
+
* 后台插件列表的 `sensitive` 为真,须超级管理员批准。只影响展示,不改权限快照的键。
|
|
42
46
|
*/
|
|
43
47
|
export declare const SENSITIVE_EXTENSION_POINTS: readonly string[];
|
|
44
48
|
/**
|
|
@@ -53,18 +57,27 @@ export declare function permissionGroups(set: PermissionSet): PermissionGroup[];
|
|
|
53
57
|
/**
|
|
54
58
|
* 部署级插件状态(后台展示;F-I:副本行存原因,这里推导展示用的状态)。
|
|
55
59
|
* `dependency`:必需能力没有(加载着的)提供方(F-M:排在 `failed` 之后、`pending_approval` 之前)。
|
|
60
|
+
* `conflict`: it provides a single-provider extension point another loaded extension provides (same
|
|
61
|
+
* rank as `dependency`); it loads once that one is disabled.
|
|
56
62
|
*/
|
|
57
|
-
export type DeploymentExtensionStatus = "enabled" | "disabled" | "pending_approval" | "pending_config" | "pending_migration" | "converging" | "failed" | "dependency"
|
|
63
|
+
export type DeploymentExtensionStatus = "enabled" | "disabled" | "pending_approval" | "pending_config" | "pending_migration" | "converging" | "failed" | "dependency" | "conflict"
|
|
58
64
|
/** The stored package is in the pre-0.1.0 format: reinstall it from a repacked tgz. */
|
|
59
65
|
| "legacy_format";
|
|
60
66
|
/**
|
|
61
|
-
*
|
|
67
|
+
* 需要超级管理员处理的状态(后台概览「需要处理的插件」):待批准、待配置、失败、依赖缺失,以及副本不一致
|
|
62
68
|
* (`converging` 收敛中、`pending_migration` 待迁移)。
|
|
63
69
|
*/
|
|
64
70
|
export declare function extensionNeedsAction(status: DeploymentExtensionStatus): boolean;
|
|
65
71
|
/** One item of the admin extension list (`GET /api/v1/admin/extensions`). */
|
|
66
72
|
export interface AdminExtensionView {
|
|
67
73
|
name: string;
|
|
74
|
+
/** The plugin's display name (`ExtensionDisplayNames`); null when it has none. */
|
|
75
|
+
displayName: LocalizedName | null;
|
|
76
|
+
/**
|
|
77
|
+
* The URL of its plugin's icon on the admin catalog route (`PluginIcons`); null when the plugin's
|
|
78
|
+
* latest version has none or there is no catalog item; absent on a degraded view (the read failed).
|
|
79
|
+
*/
|
|
80
|
+
icon?: string | null;
|
|
68
81
|
version: string;
|
|
69
82
|
source: ExtensionSource;
|
|
70
83
|
/** 安装记录的包;配置声明为 null。 */
|
|
@@ -111,15 +124,95 @@ export interface AdminExtensionView {
|
|
|
111
124
|
/** 有部署级配置字段。 */
|
|
112
125
|
configurable: boolean;
|
|
113
126
|
configValid: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Only when the platform config leaves required overridable fields empty (spec A §5.4a; the
|
|
129
|
+
* extension still runs): the number of orgs where it is on and that still need their own config.
|
|
130
|
+
*/
|
|
131
|
+
orgsNeedingConfig?: number;
|
|
114
132
|
/** 能从部署卸载(只有安装记录,必需的引导插件除外;卸载前须先停用)。 */
|
|
115
133
|
removable: boolean;
|
|
116
134
|
/**
|
|
117
135
|
* A required bootstrap plugin (package ecosystem spec §7): enabled in every org, cannot be
|
|
118
|
-
* disabled or uninstalled;
|
|
136
|
+
* disabled or uninstalled; a super admin may upgrade it.
|
|
119
137
|
*/
|
|
120
138
|
required: boolean;
|
|
139
|
+
/** The scope of the catalog plugin the extension ships in (builtin: `all`); null without one. */
|
|
140
|
+
scope: PluginScope | null;
|
|
141
|
+
/** Orgs where the extension is enabled (a required plugin: every org). */
|
|
142
|
+
enabledOrgs: number;
|
|
143
|
+
/** Shipped with the deployment (a builtin plugin or a required bootstrap plugin). */
|
|
144
|
+
builtin: boolean;
|
|
121
145
|
/** Where the install record came from (`bootstrap` for the bootstrap step); null for config-declared. */
|
|
122
146
|
installSource: "npm" | "file" | "catalog" | "bootstrap" | null;
|
|
147
|
+
/**
|
|
148
|
+
* UI contributions this replica's loaded instance left out at load (UI slots spec §3.2): a slot the
|
|
149
|
+
* catalog does not know, or not at that version. `[]` when the extension is not loaded here.
|
|
150
|
+
*/
|
|
151
|
+
uiDropped: {
|
|
152
|
+
id: string;
|
|
153
|
+
ref: string;
|
|
154
|
+
reason: UiDropReason;
|
|
155
|
+
}[];
|
|
156
|
+
/**
|
|
157
|
+
* The client build that runs (client extensions spec §9.1, §9.3, §10.4): the one a live replica
|
|
158
|
+
* serves (the install's own package when it runs, else the older one still served beside an
|
|
159
|
+
* upgrade awaiting approval or failed), or the install record package's build when no replica
|
|
160
|
+
* serves one; its id (the package sha256), every file with its size, and the client API
|
|
161
|
+
* version; null when that package has no client code (or the view is degraded).
|
|
162
|
+
*/
|
|
163
|
+
client: {
|
|
164
|
+
build: string;
|
|
165
|
+
files: {
|
|
166
|
+
path: string;
|
|
167
|
+
bytes: number;
|
|
168
|
+
}[];
|
|
169
|
+
apiVersion: number;
|
|
170
|
+
} | null;
|
|
171
|
+
/**
|
|
172
|
+
* Crash and load reports of that build, newest first, at most 50: `orgId` is null for admin
|
|
173
|
+
* pages and may name an org deleted since (rows stay until the 30-day prune). Empty without a
|
|
174
|
+
* client build.
|
|
175
|
+
*/
|
|
176
|
+
clientReports: {
|
|
177
|
+
orgId: string | null;
|
|
178
|
+
contribution: string | null;
|
|
179
|
+
kind: string;
|
|
180
|
+
count: number;
|
|
181
|
+
firstAt: string;
|
|
182
|
+
lastAt: string;
|
|
183
|
+
lastMessage: string;
|
|
184
|
+
}[];
|
|
185
|
+
/**
|
|
186
|
+
* Only with status `conflict`: the single-provider extension point and the other extensions that
|
|
187
|
+
* provide it (they keep this one from loading; disabling them loads it, no restart).
|
|
188
|
+
*/
|
|
189
|
+
conflict?: {
|
|
190
|
+
extensionPoint: string;
|
|
191
|
+
providers: {
|
|
192
|
+
name: string;
|
|
193
|
+
displayName: LocalizedName | null;
|
|
194
|
+
}[];
|
|
195
|
+
/**
|
|
196
|
+
* The provider the single-provider election picked (the first of `providers`) is not loaded
|
|
197
|
+
* (failed, pending), so the point has no running provider: an admin warning.
|
|
198
|
+
*/
|
|
199
|
+
unprovided?: true;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Only on a disabled install record: another enabled extension provides a single-provider
|
|
203
|
+
* extension point this one provides, so enabling it is refused (409
|
|
204
|
+
* `extension.single_provider_enabled`) until that one is disabled; `required`: that one is a
|
|
205
|
+
* required bootstrap plugin, which cannot be disabled, so this one cannot replace it (409
|
|
206
|
+
* `extension.single_provider_required`).
|
|
207
|
+
*/
|
|
208
|
+
enableBlocked?: {
|
|
209
|
+
extensionPoint: string;
|
|
210
|
+
enabled: {
|
|
211
|
+
name: string;
|
|
212
|
+
displayName: LocalizedName | null;
|
|
213
|
+
};
|
|
214
|
+
required?: true;
|
|
215
|
+
};
|
|
123
216
|
/**
|
|
124
217
|
* Why the install record's package cannot be read (bytes missing or corrupt, over the current
|
|
125
218
|
* size limit; status failed), or the legacy-format message (status `legacy_format`); permissions
|
|
@@ -149,7 +242,7 @@ export interface StatusInput {
|
|
|
149
242
|
}
|
|
150
243
|
/**
|
|
151
244
|
* 由期望状态、快照、配置校验、`migrated_sha` 与各副本状态推出部署级状态,优先级:
|
|
152
|
-
* `failed` > `dependency` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
245
|
+
* `failed` > `dependency` > `conflict` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
153
246
|
* - 安装记录只看目标包(`desired.sha256`)的副本行:旧包的失败不算;
|
|
154
247
|
* - 停用的安装记录不看迁移;仍有副本加载着时为 `converging`;
|
|
155
248
|
* - 配置声明始终期望启用。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { pluginSchemaName } from "../ctx/create-ctx.js";
|
|
3
3
|
import { isDestructiveSql, splitSqlStatements } from "../db/sql-statements.js";
|
|
4
|
-
import { permissionKeys, WARNINGS_KEY_PREFIX } from "./permission-set.js";
|
|
4
|
+
import { CLIENT_KEY, permissionKeys, UI_COMPONENT_KEY_PREFIX, WARNINGS_KEY_PREFIX, } from "./permission-set.js";
|
|
5
5
|
/**
|
|
6
6
|
* Review digest: the first 16 hex digits of `sha256(permissionKeys(set).join("\n"))`; with migration
|
|
7
7
|
* warnings their digest (kind, file, line and statement) is folded in, without warnings it equals the
|
|
@@ -18,35 +18,42 @@ export function reviewHash(set, warnings = []) {
|
|
|
18
18
|
return h.digest("hex").slice(0, 16);
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@
|
|
21
|
+
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@2` 在部署里执行任意命令、`object-store@1` 保管全部附件与插件包(D10);
|
|
22
22
|
* `channel@1` 收到组织在 IM 里的对话内容(Ruling A33)、`directory@1` 能把人加进组织(并为其建账号、建身份)、
|
|
23
23
|
* `identity-source@1` 决定谁能登录成哪个账号。插件提供其中任何一个时,「提供」一组标为敏感,
|
|
24
|
-
* 后台插件列表的 `sensitive`
|
|
24
|
+
* 后台插件列表的 `sensitive` 为真,须超级管理员批准。只影响展示,不改权限快照的键。
|
|
25
25
|
*/
|
|
26
26
|
export const SENSITIVE_EXTENSION_POINTS = [
|
|
27
27
|
"channel@1",
|
|
28
28
|
"directory@1",
|
|
29
29
|
"identity-source@1",
|
|
30
|
-
"sandbox@
|
|
30
|
+
"sandbox@2",
|
|
31
31
|
"object-store@1",
|
|
32
32
|
];
|
|
33
|
+
/** The one item of the "client" group (client extensions spec §5.4). */
|
|
34
|
+
const CLIENT_ITEM = "client code";
|
|
33
35
|
/** 总是敏感的类别。 */
|
|
34
36
|
const ALWAYS_SENSITIVE = new Set([
|
|
35
37
|
"secrets",
|
|
36
38
|
"publicRoutes",
|
|
37
39
|
"tools",
|
|
38
40
|
"hooks",
|
|
41
|
+
"components",
|
|
42
|
+
"client",
|
|
39
43
|
]);
|
|
40
44
|
const CATEGORY_REASON = {
|
|
41
45
|
secrets: "secrets",
|
|
42
46
|
publicRoutes: "public_routes",
|
|
43
47
|
tools: "tools",
|
|
44
48
|
hooks: "hooks",
|
|
49
|
+
components: "ui_component",
|
|
50
|
+
client: "client_code",
|
|
45
51
|
};
|
|
46
52
|
/**
|
|
47
53
|
* Why an item in a category is sensitive (undefined when it is not; shared by the grouped list, the
|
|
48
|
-
* per-item `added` and the CLI markers): secrets, public routes, tools and
|
|
49
|
-
* sensitive
|
|
54
|
+
* per-item `added` and the CLI markers): secrets, public routes, tools, hooks and client code are
|
|
55
|
+
* always sensitive, and so are client components (their own group, items are the component ids);
|
|
56
|
+
* {@link SENSITIVE_EXTENSION_POINTS} in "provides"; embedded apps (`embed:<id>`) in "UI".
|
|
50
57
|
*/
|
|
51
58
|
function itemReason(category, item) {
|
|
52
59
|
// storage 不算敏感:ctx.storage 的键由内核加前缀 `plugins/<插件>/<orgId>/`,插件只能读写自己的前缀
|
|
@@ -55,8 +62,11 @@ function itemReason(category, item) {
|
|
|
55
62
|
? item.split("@")[0].replaceAll("-", "_")
|
|
56
63
|
: undefined;
|
|
57
64
|
}
|
|
58
|
-
if (category === "ui")
|
|
59
|
-
|
|
65
|
+
if (category === "ui") {
|
|
66
|
+
if (item.startsWith("embed:"))
|
|
67
|
+
return "ui_embed";
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
60
70
|
return ALWAYS_SENSITIVE.has(category) ? CATEGORY_REASON[category] : undefined;
|
|
61
71
|
}
|
|
62
72
|
const itemOf = (category, value) => {
|
|
@@ -68,6 +78,8 @@ function keyItem(key) {
|
|
|
68
78
|
const after = (prefix) => (key.startsWith(prefix) ? key.slice(prefix.length) : null);
|
|
69
79
|
if (key === "permissions.secrets")
|
|
70
80
|
return { category: "secrets", item: "secret store" };
|
|
81
|
+
if (key === CLIENT_KEY)
|
|
82
|
+
return { category: "client", item: CLIENT_ITEM };
|
|
71
83
|
if (/^config\.(deployment|org)\.secret:/.test(key))
|
|
72
84
|
return { category: "secrets", item: key.slice(key.indexOf(":") + 1) };
|
|
73
85
|
const table = [
|
|
@@ -77,6 +89,7 @@ function keyItem(key) {
|
|
|
77
89
|
["permissions.hooks:", "hooks", ""],
|
|
78
90
|
["permissions.hooks.policy:", "hooks", "policy:"],
|
|
79
91
|
["ui.embed:", "ui", "embed:"],
|
|
92
|
+
[UI_COMPONENT_KEY_PREFIX, "components", ""],
|
|
80
93
|
["ui.view:", "ui", "view:"],
|
|
81
94
|
];
|
|
82
95
|
for (const [prefix, category, itemPrefix] of table) {
|
|
@@ -113,11 +126,12 @@ export function permissionKeyItems(keys) {
|
|
|
113
126
|
/** 把权限集合整理成分组清单(固定顺序,空组省略)。纯函数。 */
|
|
114
127
|
export function permissionGroups(set) {
|
|
115
128
|
const p = set.permissions;
|
|
116
|
-
//
|
|
117
|
-
const ui = p.ui ?? { views: [], embeds: [] };
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
129
|
+
// older snapshots lack `ui`, `ui.components` and `client` (read as empty / false)
|
|
130
|
+
const ui = p.ui ?? { views: [], embeds: [], components: [] };
|
|
131
|
+
const components = ui.components ?? [];
|
|
132
|
+
// Level-prefixed like the config group: a field at both levels (an overridable secret such as
|
|
133
|
+
// `appSecret`) is two items, not one name listed twice.
|
|
134
|
+
const secretFields = ["deployment", "org"].flatMap((level) => set.config[level].filter((f) => f.secret).map((f) => `${level}:${f.path || "<root>"}`));
|
|
121
135
|
const configFields = ["deployment", "org"].flatMap((level) => set.config[level].map((f) => `${level}:${f.path || "<root>"}`));
|
|
122
136
|
const secretItems = [...(p.secrets ? ["secret store"] : []), ...secretFields];
|
|
123
137
|
const groups = [
|
|
@@ -150,6 +164,8 @@ export function permissionGroups(set) {
|
|
|
150
164
|
category: "ui",
|
|
151
165
|
items: [...ui.views.map((v) => `view:${v}`), ...ui.embeds.map((e) => `embed:${e}`)],
|
|
152
166
|
},
|
|
167
|
+
{ category: "components", items: components },
|
|
168
|
+
{ category: "client", items: p.client === true ? [CLIENT_ITEM] : [] },
|
|
153
169
|
];
|
|
154
170
|
return groups
|
|
155
171
|
.filter((g) => g.items.length > 0)
|
|
@@ -159,7 +175,7 @@ export function permissionGroups(set) {
|
|
|
159
175
|
});
|
|
160
176
|
}
|
|
161
177
|
/**
|
|
162
|
-
*
|
|
178
|
+
* 需要超级管理员处理的状态(后台概览「需要处理的插件」):待批准、待配置、失败、依赖缺失,以及副本不一致
|
|
163
179
|
* (`converging` 收敛中、`pending_migration` 待迁移)。
|
|
164
180
|
*/
|
|
165
181
|
export function extensionNeedsAction(status) {
|
|
@@ -167,7 +183,7 @@ export function extensionNeedsAction(status) {
|
|
|
167
183
|
}
|
|
168
184
|
/**
|
|
169
185
|
* 由期望状态、快照、配置校验、`migrated_sha` 与各副本状态推出部署级状态,优先级:
|
|
170
|
-
* `failed` > `dependency` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
186
|
+
* `failed` > `dependency` > `conflict` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
171
187
|
* - 安装记录只看目标包(`desired.sha256`)的副本行:旧包的失败不算;
|
|
172
188
|
* - 停用的安装记录不看迁移;仍有副本加载着时为 `converging`;
|
|
173
189
|
* - 配置声明始终期望启用。
|
|
@@ -179,6 +195,8 @@ export function deriveExtensionStatus(i) {
|
|
|
179
195
|
return "failed";
|
|
180
196
|
if (rows.some((r) => r.reason === "dependency" && (r.state === "pending" || r.state === "unloaded")))
|
|
181
197
|
return "dependency";
|
|
198
|
+
if (rows.some((r) => r.reason === "conflict" && r.state === "pending"))
|
|
199
|
+
return "conflict";
|
|
182
200
|
if (i.pendingApproval)
|
|
183
201
|
return "pending_approval";
|
|
184
202
|
if (!i.configValid)
|