@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
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import { type Keyring } from "../ctx/secrets.js";
|
|
3
|
+
import { CacheService } from "../infra/cache/cache.service.js";
|
|
4
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
5
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
6
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
7
|
+
import type { KernelLogger } from "../log.js";
|
|
8
|
+
import { type ConfigIssue } from "./config-issues.js";
|
|
9
|
+
import { ExtensionInstalls } from "./installs.js";
|
|
10
|
+
import { type FieldLevel } from "./org-levels.js";
|
|
11
|
+
import { ExtensionRegistry } from "./registry.js";
|
|
12
|
+
type Obj = Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Why an org-bound call is not made (spec A §6): the extension's effective config for the org is
|
|
15
|
+
* not valid. Model-visible as a tool's unavailable reason (English).
|
|
16
|
+
*/
|
|
17
|
+
export declare const NEEDS_CONFIG_REASON = "needs configuration in this organization";
|
|
18
|
+
/** The kernel's own secrets namespace (`kernel` is a reserved plugin name). */
|
|
19
|
+
export declare const OVERRIDE_SECRETS_NAMESPACE = "kernel";
|
|
20
|
+
/**
|
|
21
|
+
* Where a copy's secret field lives in `capybara.secrets` (under the org): a namespace of its own,
|
|
22
|
+
* distinct from the org-only `plugin-config:<plugin>:<path>` (spec A §5.8).
|
|
23
|
+
*/
|
|
24
|
+
export declare const overrideSecretKey: (plugin: string, path: string) => string;
|
|
25
|
+
/**
|
|
26
|
+
* The effective deployment config of an extension for an org (spec A §6): `ok` with the config
|
|
27
|
+
* and where its overridable fields come from, or the validation issues (paths only, no values).
|
|
28
|
+
*/
|
|
29
|
+
export type EffectiveConfig = {
|
|
30
|
+
ok: true;
|
|
31
|
+
config: unknown;
|
|
32
|
+
source: "platform" | "copy";
|
|
33
|
+
}
|
|
34
|
+
/** `notRunning`: the extension is not running on this replica (not a configuration problem). */
|
|
35
|
+
| {
|
|
36
|
+
ok: false;
|
|
37
|
+
issues: ConfigIssue[];
|
|
38
|
+
notRunning?: true;
|
|
39
|
+
};
|
|
40
|
+
/** An org's stored copy: its non-secret values and its secrets by field dot path. */
|
|
41
|
+
export interface StoredCopy {
|
|
42
|
+
config: Obj;
|
|
43
|
+
secrets: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
/** The secret leaf paths of a deployment schema. */
|
|
46
|
+
export declare function secretLeafPaths(schema: z.ZodTypeAny): string[];
|
|
47
|
+
/** The secret leaf paths under the `override` top-level keys (the secrets a copy may hold). */
|
|
48
|
+
export declare function overrideSecretPaths(schema: z.ZodTypeAny, levels?: Map<string, FieldLevel>): string[];
|
|
49
|
+
/**
|
|
50
|
+
* The platform's non-secret values of the `override` keys: what a new copy starts from (spec A
|
|
51
|
+
* §5.4, platform secrets never enter a copy).
|
|
52
|
+
*/
|
|
53
|
+
export declare function platformOverrideValues(schema: z.ZodTypeAny, platform: unknown): Obj;
|
|
54
|
+
/**
|
|
55
|
+
* The deployment config an org with a copy runs with, before validation (spec A §5.4): the
|
|
56
|
+
* platform's values of the hidden and read-only keys, and for each `override` key the copy's value
|
|
57
|
+
* (its non-secret part and its own secrets). An `override` key the copy does not hold (one that
|
|
58
|
+
* became overridable after the copy was made) takes the platform's value with every secret leaf
|
|
59
|
+
* removed: a copy never falls back to a platform secret, required or not. Copy values of keys that
|
|
60
|
+
* are no longer `override` are ignored.
|
|
61
|
+
*/
|
|
62
|
+
export declare function mergeCopy(schema: z.ZodTypeAny, platform: unknown, copy: StoredCopy): Obj;
|
|
63
|
+
/**
|
|
64
|
+
* The effective extension config of an org (spec A §5.3, §5.4, §6): the platform's deployment
|
|
65
|
+
* config while the org follows it, or the platform's values with the org's copy applied to the
|
|
66
|
+
* overridable fields. Every org-bound call takes its config from here.
|
|
67
|
+
*
|
|
68
|
+
* Following orgs get this replica's running config (`ctx.config`), so a platform change reaches
|
|
69
|
+
* them as soon as the instance has it. For a copy, the platform's raw (unparsed) deployment config
|
|
70
|
+
* and the copy's raw values are merged and parsed once, so a schema transform runs exactly once.
|
|
71
|
+
* The org half (the copy row and its secrets) is cached in Redis through `@Cacheable`, sealed with
|
|
72
|
+
* a key derived from the master keyring so no secret sits in Redis in clear, under a per-(org,
|
|
73
|
+
* plugin) generation token that every copy write replaces after its commit: a read that started
|
|
74
|
+
* before the write can only cache under the old token, which nobody reads any more. No
|
|
75
|
+
* in-process state.
|
|
76
|
+
*
|
|
77
|
+
* It reads the running instances from the {@link ExtensionRegistry} and the raw platform config
|
|
78
|
+
* from the install records (not through the host), so the host can inject it for its hook
|
|
79
|
+
* dispatcher.
|
|
80
|
+
*/
|
|
81
|
+
export declare class EffectiveConfigs {
|
|
82
|
+
private readonly kdb;
|
|
83
|
+
readonly txHost: TransactionHost;
|
|
84
|
+
readonly cacheService: CacheService;
|
|
85
|
+
private readonly keyring;
|
|
86
|
+
private readonly registry;
|
|
87
|
+
private readonly installs;
|
|
88
|
+
private readonly kernelConfig;
|
|
89
|
+
/** Secret values of a copy read here are masked in the logs. */
|
|
90
|
+
private readonly log;
|
|
91
|
+
constructor(kdb: KernelDb, txHost: TransactionHost, cacheService: CacheService, keyring: Keyring, registry: Pick<ExtensionRegistry, "current">, installs: Pick<ExtensionInstalls, "effectiveDeploymentConfig">, kernelConfig: Pick<KernelConfigService, "get">,
|
|
92
|
+
/** Secret values of a copy read here are masked in the logs. */
|
|
93
|
+
log: KernelLogger);
|
|
94
|
+
private get db();
|
|
95
|
+
/**
|
|
96
|
+
* The config of `plugin` for work done for the platform (a `platform.page` view, UI slots spec
|
|
97
|
+
* §7): the running instance's deployment config, no org copy applies; `notRunning` when the
|
|
98
|
+
* extension is not running on this replica.
|
|
99
|
+
*/
|
|
100
|
+
platform(plugin: string): EffectiveConfig;
|
|
101
|
+
/**
|
|
102
|
+
* The effective config of `plugin` for `orgId`. Following: the running platform config, `ok:
|
|
103
|
+
* false` when it leaves a required overridable field empty (the host loaded it with those
|
|
104
|
+
* fields optional, so that is the only way the full schema can refuse it). Copy: the platform's
|
|
105
|
+
* raw config with the copy applied ({@link mergeCopy}), parsed once with the full schema. An
|
|
106
|
+
* extension not running on this replica -> `ok: false`, `notRunning`, with a root issue.
|
|
107
|
+
*/
|
|
108
|
+
get(orgId: string, plugin: string): Promise<EffectiveConfig>;
|
|
109
|
+
/** The org's copy (decrypted), or undefined while it follows the platform. */
|
|
110
|
+
copyOf(orgId: string, plugin: string): Promise<StoredCopy | undefined>;
|
|
111
|
+
/**
|
|
112
|
+
* Makes every cached copy of (org, plugin) unreachable: a new generation token, and the entry of
|
|
113
|
+
* the old one deleted. Call it after the write committed (`afterCommit`), never inside it.
|
|
114
|
+
*/
|
|
115
|
+
invalidate(orgId: string, plugin: string): Promise<void>;
|
|
116
|
+
/** Keyed by the generation token read just before the PG read. */
|
|
117
|
+
private cachedCopy;
|
|
118
|
+
/**
|
|
119
|
+
* The copy row and its secrets from one snapshot (joins the caller's transaction, so a write
|
|
120
|
+
* sees what it just wrote).
|
|
121
|
+
*/
|
|
122
|
+
private readCopy;
|
|
123
|
+
/**
|
|
124
|
+
* The number of orgs (not deleted) where the extension is on and has no valid effective config
|
|
125
|
+
* (spec A §5.4a). Following orgs share the platform's result; each copy is checked on its own.
|
|
126
|
+
* 0 when the extension is not running on this replica.
|
|
127
|
+
*/
|
|
128
|
+
countNeedingConfig(plugin: string): Promise<number>;
|
|
129
|
+
private cacheKey;
|
|
130
|
+
private seal;
|
|
131
|
+
private open;
|
|
132
|
+
}
|
|
133
|
+
export {};
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { createCipheriv, createDecipheriv, randomBytes, randomUUID } from "node:crypto";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { configFields } from "../config/fields.js";
|
|
13
|
+
import { createSecrets } from "../ctx/secrets.js";
|
|
14
|
+
import { CacheService } from "../infra/cache/cache.service.js";
|
|
15
|
+
import { Cacheable } from "../infra/cache/cacheable.decorator.js";
|
|
16
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
17
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
18
|
+
import { currentStore, TransactionHost } from "../infra/database/transaction-host.js";
|
|
19
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
20
|
+
import { KERNEL_LOGGER, KEYRING } from "../infra/tokens.js";
|
|
21
|
+
import { toIssues } from "./config-issues.js";
|
|
22
|
+
import { deleteDeep, isObj, setDeep } from "./deployment-config-store.js";
|
|
23
|
+
import { enabledExtensionsByOrg } from "./enabled.js";
|
|
24
|
+
import { ExtensionInstalls } from "./installs.js";
|
|
25
|
+
import { fieldLevels, missingOverridable } from "./org-levels.js";
|
|
26
|
+
import { ExtensionRegistry } from "./registry.js";
|
|
27
|
+
/**
|
|
28
|
+
* Why an org-bound call is not made (spec A §6): the extension's effective config for the org is
|
|
29
|
+
* not valid. Model-visible as a tool's unavailable reason (English).
|
|
30
|
+
*/
|
|
31
|
+
export const NEEDS_CONFIG_REASON = "needs configuration in this organization";
|
|
32
|
+
/** The kernel's own secrets namespace (`kernel` is a reserved plugin name). */
|
|
33
|
+
export const OVERRIDE_SECRETS_NAMESPACE = "kernel";
|
|
34
|
+
const OVERRIDE_KEY_PREFIX = "plugin-override:";
|
|
35
|
+
/**
|
|
36
|
+
* Where a copy's secret field lives in `capybara.secrets` (under the org): a namespace of its own,
|
|
37
|
+
* distinct from the org-only `plugin-config:<plugin>:<path>` (spec A §5.8).
|
|
38
|
+
*/
|
|
39
|
+
export const overrideSecretKey = (plugin, path) => `${OVERRIDE_KEY_PREFIX}${plugin}:${path}`;
|
|
40
|
+
const notRunning = () => ({
|
|
41
|
+
ok: false,
|
|
42
|
+
notRunning: true,
|
|
43
|
+
issues: [{ path: "", segments: [], message: "the extension is not running" }],
|
|
44
|
+
});
|
|
45
|
+
/** The secret leaf paths of a deployment schema. */
|
|
46
|
+
export function secretLeafPaths(schema) {
|
|
47
|
+
return configFields(schema)
|
|
48
|
+
.filter((f) => f.meta?.secret === true)
|
|
49
|
+
.map((f) => f.path);
|
|
50
|
+
}
|
|
51
|
+
const under = (path, key) => path === key || path.startsWith(`${key}.`);
|
|
52
|
+
/** The secret leaf paths under the `override` top-level keys (the secrets a copy may hold). */
|
|
53
|
+
export function overrideSecretPaths(schema, levels = fieldLevels(schema)) {
|
|
54
|
+
const keys = [...levels].filter(([, l]) => l === "override").map(([k]) => k);
|
|
55
|
+
return secretLeafPaths(schema).filter((p) => keys.some((k) => under(p, k)));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The platform's non-secret values of the `override` keys: what a new copy starts from (spec A
|
|
59
|
+
* §5.4, platform secrets never enter a copy).
|
|
60
|
+
*/
|
|
61
|
+
export function platformOverrideValues(schema, platform) {
|
|
62
|
+
const levels = fieldLevels(schema);
|
|
63
|
+
const secrets = secretLeafPaths(schema);
|
|
64
|
+
const out = {};
|
|
65
|
+
for (const [key, level] of levels) {
|
|
66
|
+
if (level !== "override")
|
|
67
|
+
continue;
|
|
68
|
+
const v = isObj(platform) ? platform[key] : undefined;
|
|
69
|
+
if (v === undefined)
|
|
70
|
+
continue;
|
|
71
|
+
const tmp = { [key]: structuredClone(v) };
|
|
72
|
+
for (const p of secrets)
|
|
73
|
+
if (under(p, key))
|
|
74
|
+
deleteDeep(tmp, p);
|
|
75
|
+
if (tmp[key] !== undefined)
|
|
76
|
+
out[key] = tmp[key];
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The deployment config an org with a copy runs with, before validation (spec A §5.4): the
|
|
82
|
+
* platform's values of the hidden and read-only keys, and for each `override` key the copy's value
|
|
83
|
+
* (its non-secret part and its own secrets). An `override` key the copy does not hold (one that
|
|
84
|
+
* became overridable after the copy was made) takes the platform's value with every secret leaf
|
|
85
|
+
* removed: a copy never falls back to a platform secret, required or not. Copy values of keys that
|
|
86
|
+
* are no longer `override` are ignored.
|
|
87
|
+
*/
|
|
88
|
+
export function mergeCopy(schema, platform, copy) {
|
|
89
|
+
const levels = fieldLevels(schema);
|
|
90
|
+
const secrets = secretLeafPaths(schema);
|
|
91
|
+
const plat = isObj(platform) ? platform : {};
|
|
92
|
+
const out = {};
|
|
93
|
+
for (const [key, level] of levels) {
|
|
94
|
+
if (level !== "override") {
|
|
95
|
+
if (plat[key] !== undefined)
|
|
96
|
+
out[key] = structuredClone(plat[key]);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const own = {};
|
|
100
|
+
if (copy.config[key] !== undefined)
|
|
101
|
+
own[key] = structuredClone(copy.config[key]);
|
|
102
|
+
const keySecrets = secrets.filter((p) => under(p, key));
|
|
103
|
+
// a secret never comes from the non-secret part, even a hand-edited one
|
|
104
|
+
for (const p of keySecrets)
|
|
105
|
+
deleteDeep(own, p);
|
|
106
|
+
for (const p of keySecrets) {
|
|
107
|
+
const v = copy.secrets[p];
|
|
108
|
+
if (v !== undefined)
|
|
109
|
+
setDeep(own, p, structuredClone(v));
|
|
110
|
+
}
|
|
111
|
+
if (own[key] !== undefined) {
|
|
112
|
+
out[key] = own[key];
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (plat[key] === undefined)
|
|
116
|
+
continue;
|
|
117
|
+
const fallback = { [key]: structuredClone(plat[key]) };
|
|
118
|
+
for (const p of keySecrets)
|
|
119
|
+
deleteDeep(fallback, p);
|
|
120
|
+
if (fallback[key] !== undefined)
|
|
121
|
+
out[key] = fallback[key];
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
const CACHE_KEY_INFO = "org-override-cache";
|
|
126
|
+
/** Lifetime of a cached copy (seconds). */
|
|
127
|
+
const COPY_TTL = 300;
|
|
128
|
+
/**
|
|
129
|
+
* Lifetime of a generation token (seconds): far longer than {@link COPY_TTL}, so a copy cached
|
|
130
|
+
* under the token-less generation `"0"` has expired long before a token lapses back to `"0"`.
|
|
131
|
+
*/
|
|
132
|
+
const GENERATION_TTL = 86_400;
|
|
133
|
+
/** The Redis key of the cache generation of (org, plugin); a copy write replaces it. */
|
|
134
|
+
const generationKey = (orgId, plugin) => `effective-config-gen:${orgId}:${plugin}`;
|
|
135
|
+
const IV_LEN = 12;
|
|
136
|
+
const TAG_LEN = 16;
|
|
137
|
+
/**
|
|
138
|
+
* The effective extension config of an org (spec A §5.3, §5.4, §6): the platform's deployment
|
|
139
|
+
* config while the org follows it, or the platform's values with the org's copy applied to the
|
|
140
|
+
* overridable fields. Every org-bound call takes its config from here.
|
|
141
|
+
*
|
|
142
|
+
* Following orgs get this replica's running config (`ctx.config`), so a platform change reaches
|
|
143
|
+
* them as soon as the instance has it. For a copy, the platform's raw (unparsed) deployment config
|
|
144
|
+
* and the copy's raw values are merged and parsed once, so a schema transform runs exactly once.
|
|
145
|
+
* The org half (the copy row and its secrets) is cached in Redis through `@Cacheable`, sealed with
|
|
146
|
+
* a key derived from the master keyring so no secret sits in Redis in clear, under a per-(org,
|
|
147
|
+
* plugin) generation token that every copy write replaces after its commit: a read that started
|
|
148
|
+
* before the write can only cache under the old token, which nobody reads any more. No
|
|
149
|
+
* in-process state.
|
|
150
|
+
*
|
|
151
|
+
* It reads the running instances from the {@link ExtensionRegistry} and the raw platform config
|
|
152
|
+
* from the install records (not through the host), so the host can inject it for its hook
|
|
153
|
+
* dispatcher.
|
|
154
|
+
*/
|
|
155
|
+
let EffectiveConfigs = class EffectiveConfigs {
|
|
156
|
+
kdb;
|
|
157
|
+
txHost;
|
|
158
|
+
cacheService;
|
|
159
|
+
keyring;
|
|
160
|
+
registry;
|
|
161
|
+
installs;
|
|
162
|
+
kernelConfig;
|
|
163
|
+
log;
|
|
164
|
+
constructor(kdb, txHost, cacheService, keyring, registry, installs, kernelConfig,
|
|
165
|
+
/** Secret values of a copy read here are masked in the logs. */
|
|
166
|
+
log) {
|
|
167
|
+
this.kdb = kdb;
|
|
168
|
+
this.txHost = txHost;
|
|
169
|
+
this.cacheService = cacheService;
|
|
170
|
+
this.keyring = keyring;
|
|
171
|
+
this.registry = registry;
|
|
172
|
+
this.installs = installs;
|
|
173
|
+
this.kernelConfig = kernelConfig;
|
|
174
|
+
this.log = log;
|
|
175
|
+
}
|
|
176
|
+
get db() {
|
|
177
|
+
return this.kdb.db;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The config of `plugin` for work done for the platform (a `platform.page` view, UI slots spec
|
|
181
|
+
* §7): the running instance's deployment config, no org copy applies; `notRunning` when the
|
|
182
|
+
* extension is not running on this replica.
|
|
183
|
+
*/
|
|
184
|
+
platform(plugin) {
|
|
185
|
+
const inst = this.registry.current(plugin);
|
|
186
|
+
if (!inst)
|
|
187
|
+
return notRunning();
|
|
188
|
+
return { ok: true, config: inst.config, source: "platform" };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The effective config of `plugin` for `orgId`. Following: the running platform config, `ok:
|
|
192
|
+
* false` when it leaves a required overridable field empty (the host loaded it with those
|
|
193
|
+
* fields optional, so that is the only way the full schema can refuse it). Copy: the platform's
|
|
194
|
+
* raw config with the copy applied ({@link mergeCopy}), parsed once with the full schema. An
|
|
195
|
+
* extension not running on this replica -> `ok: false`, `notRunning`, with a root issue.
|
|
196
|
+
*/
|
|
197
|
+
async get(orgId, plugin) {
|
|
198
|
+
const inst = this.registry.current(plugin);
|
|
199
|
+
if (!inst)
|
|
200
|
+
return notRunning();
|
|
201
|
+
const schema = inst.manifest.config?.deployment;
|
|
202
|
+
if (!schema)
|
|
203
|
+
return { ok: true, config: inst.config, source: "platform" };
|
|
204
|
+
const levels = fieldLevels(schema);
|
|
205
|
+
// without an overridable field there is no copy to apply, and the loaded config is complete
|
|
206
|
+
if (![...levels.values()].includes("override")) {
|
|
207
|
+
return { ok: true, config: inst.config, source: "platform" };
|
|
208
|
+
}
|
|
209
|
+
const copy = await this.copyOf(orgId, plugin);
|
|
210
|
+
if (!copy) {
|
|
211
|
+
const missing = missingOverridable(schema, inst.config);
|
|
212
|
+
if (missing.length === 0)
|
|
213
|
+
return { ok: true, config: inst.config, source: "platform" };
|
|
214
|
+
return {
|
|
215
|
+
ok: false,
|
|
216
|
+
issues: missing.map((path) => ({
|
|
217
|
+
path,
|
|
218
|
+
segments: [path],
|
|
219
|
+
message: "required: the platform leaves it empty",
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
const values = Object.values(copy.secrets);
|
|
224
|
+
if (values.length > 0)
|
|
225
|
+
this.log.addOrgSecrets(values);
|
|
226
|
+
// the host's raw read (ExtensionHost.rawDeploymentConfig): startup config plus the PG values
|
|
227
|
+
const raw = await this.installs.effectiveDeploymentConfig(plugin, this.kernelConfig.get().extensionConfig[plugin], schema);
|
|
228
|
+
// the full schema, object-level refinements included: zod runs them only once every field
|
|
229
|
+
// parsed, so a refinement never sees an absent required field
|
|
230
|
+
const r = schema.safeParse(mergeCopy(schema, raw, copy));
|
|
231
|
+
return r.success
|
|
232
|
+
? { ok: true, config: r.data, source: "copy" }
|
|
233
|
+
: { ok: false, issues: toIssues(r.error) };
|
|
234
|
+
}
|
|
235
|
+
/** The org's copy (decrypted), or undefined while it follows the platform. */
|
|
236
|
+
async copyOf(orgId, plugin) {
|
|
237
|
+
// inside a transaction: no Redis, read what the transaction sees
|
|
238
|
+
if (currentStore())
|
|
239
|
+
return (await this.readCopy(orgId, plugin)) ?? undefined;
|
|
240
|
+
const gen = (await this.cacheService.get(generationKey(orgId, plugin))) ?? "0";
|
|
241
|
+
const cached = await this.cachedCopy(orgId, plugin, gen);
|
|
242
|
+
if (!cached.copy)
|
|
243
|
+
return undefined;
|
|
244
|
+
const opened = this.open(orgId, plugin, cached.sealed);
|
|
245
|
+
// sealed with a key no longer in the keyring: read through
|
|
246
|
+
if (opened)
|
|
247
|
+
return opened;
|
|
248
|
+
const fresh = await this.readCopy(orgId, plugin);
|
|
249
|
+
return fresh ?? undefined;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Makes every cached copy of (org, plugin) unreachable: a new generation token, and the entry of
|
|
253
|
+
* the old one deleted. Call it after the write committed (`afterCommit`), never inside it.
|
|
254
|
+
*/
|
|
255
|
+
async invalidate(orgId, plugin) {
|
|
256
|
+
const key = generationKey(orgId, plugin);
|
|
257
|
+
const old = (await this.cacheService.get(key)) ?? "0";
|
|
258
|
+
await this.cacheService.set(key, randomUUID(), GENERATION_TTL);
|
|
259
|
+
await this.cacheService.del(copyCacheKey(orgId, plugin, old));
|
|
260
|
+
}
|
|
261
|
+
/** Keyed by the generation token read just before the PG read. */
|
|
262
|
+
async cachedCopy(orgId, plugin, _gen) {
|
|
263
|
+
const copy = await this.readCopy(orgId, plugin);
|
|
264
|
+
return copy ? { copy: true, sealed: this.seal(orgId, plugin, copy) } : { copy: false };
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* The copy row and its secrets from one snapshot (joins the caller's transaction, so a write
|
|
268
|
+
* sees what it just wrote).
|
|
269
|
+
*/
|
|
270
|
+
async readCopy(orgId, plugin) {
|
|
271
|
+
const t = this.db;
|
|
272
|
+
const row = await t
|
|
273
|
+
.selectFrom("extension_org_overrides")
|
|
274
|
+
.select("config")
|
|
275
|
+
.where("plugin", "=", plugin)
|
|
276
|
+
.where("org_id", "=", orgId)
|
|
277
|
+
.executeTakeFirst();
|
|
278
|
+
if (!row)
|
|
279
|
+
return null;
|
|
280
|
+
const prefix = overrideSecretKey(plugin, "");
|
|
281
|
+
const keys = await t
|
|
282
|
+
.selectFrom("secrets")
|
|
283
|
+
.select("key")
|
|
284
|
+
.where("namespace", "=", OVERRIDE_SECRETS_NAMESPACE)
|
|
285
|
+
.where("org_id", "=", orgId)
|
|
286
|
+
.where("key", "like", `${prefix}%`)
|
|
287
|
+
.execute();
|
|
288
|
+
const store = createSecrets(t, this.keyring, OVERRIDE_SECRETS_NAMESPACE);
|
|
289
|
+
const secrets = {};
|
|
290
|
+
for (const { key } of keys) {
|
|
291
|
+
if (!key.startsWith(prefix))
|
|
292
|
+
continue;
|
|
293
|
+
const v = await store.get(orgId, key);
|
|
294
|
+
if (v !== null)
|
|
295
|
+
secrets[key.slice(prefix.length)] = JSON.parse(v);
|
|
296
|
+
}
|
|
297
|
+
return { config: row.config ?? {}, secrets };
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* The number of orgs (not deleted) where the extension is on and has no valid effective config
|
|
301
|
+
* (spec A §5.4a). Following orgs share the platform's result; each copy is checked on its own.
|
|
302
|
+
* 0 when the extension is not running on this replica.
|
|
303
|
+
*/
|
|
304
|
+
async countNeedingConfig(plugin) {
|
|
305
|
+
if (!this.registry.current(plugin))
|
|
306
|
+
return 0;
|
|
307
|
+
const rows = await this.db
|
|
308
|
+
.selectFrom(enabledExtensionsByOrg(this.db).as("en"))
|
|
309
|
+
.innerJoin("orgs", "orgs.id", "en.org_id")
|
|
310
|
+
.leftJoin("extension_org_overrides as ov", (j) => j.onRef("ov.org_id", "=", "en.org_id").onRef("ov.plugin", "=", "en.plugin"))
|
|
311
|
+
.select(["en.org_id as orgId", "ov.org_id as copyOrg"])
|
|
312
|
+
.where("orgs.deleted_at", "is", null)
|
|
313
|
+
.where("en.plugin", "=", plugin)
|
|
314
|
+
.execute();
|
|
315
|
+
let n = 0;
|
|
316
|
+
let following;
|
|
317
|
+
for (const r of rows) {
|
|
318
|
+
if (r.copyOrg === null) {
|
|
319
|
+
following ??= (await this.get(r.orgId, plugin)).ok;
|
|
320
|
+
if (!following)
|
|
321
|
+
n++;
|
|
322
|
+
}
|
|
323
|
+
else if (!(await this.get(r.orgId, plugin)).ok)
|
|
324
|
+
n++;
|
|
325
|
+
}
|
|
326
|
+
return n;
|
|
327
|
+
}
|
|
328
|
+
cacheKey() {
|
|
329
|
+
return this.keyring.deriveKey(CACHE_KEY_INFO);
|
|
330
|
+
}
|
|
331
|
+
seal(orgId, plugin, copy) {
|
|
332
|
+
const keys = this.cacheKey();
|
|
333
|
+
const iv = randomBytes(IV_LEN);
|
|
334
|
+
const cipher = createCipheriv("aes-256-gcm", keys.current, iv);
|
|
335
|
+
cipher.setAAD(Buffer.from(`${orgId}\0${plugin}`, "utf8"));
|
|
336
|
+
const data = Buffer.concat([cipher.update(JSON.stringify(copy), "utf8"), cipher.final()]);
|
|
337
|
+
return `${keys.currentId}:${Buffer.concat([iv, cipher.getAuthTag(), data]).toString("base64")}`;
|
|
338
|
+
}
|
|
339
|
+
open(orgId, plugin, sealed) {
|
|
340
|
+
const at = sealed.indexOf(":");
|
|
341
|
+
const key = at > 0 ? this.cacheKey().byId(sealed.slice(0, at)) : undefined;
|
|
342
|
+
if (!key)
|
|
343
|
+
return undefined;
|
|
344
|
+
try {
|
|
345
|
+
const blob = Buffer.from(sealed.slice(at + 1), "base64");
|
|
346
|
+
const decipher = createDecipheriv("aes-256-gcm", key, blob.subarray(0, IV_LEN));
|
|
347
|
+
decipher.setAAD(Buffer.from(`${orgId}\0${plugin}`, "utf8"));
|
|
348
|
+
decipher.setAuthTag(blob.subarray(IV_LEN, IV_LEN + TAG_LEN));
|
|
349
|
+
const plain = Buffer.concat([
|
|
350
|
+
decipher.update(blob.subarray(IV_LEN + TAG_LEN)),
|
|
351
|
+
decipher.final(),
|
|
352
|
+
]).toString("utf8");
|
|
353
|
+
return JSON.parse(plain);
|
|
354
|
+
}
|
|
355
|
+
catch {
|
|
356
|
+
return undefined;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
__decorate([
|
|
361
|
+
Cacheable({ key: "effective-config:#{0}:#{1}:#{2}", ttl: COPY_TTL })
|
|
362
|
+
], EffectiveConfigs.prototype, "cachedCopy", null);
|
|
363
|
+
__decorate([
|
|
364
|
+
Transactional({ isolationLevel: "repeatable read" })
|
|
365
|
+
], EffectiveConfigs.prototype, "readCopy", null);
|
|
366
|
+
EffectiveConfigs = __decorate([
|
|
367
|
+
Injectable(),
|
|
368
|
+
__param(0, Inject(KernelDb)),
|
|
369
|
+
__param(1, Inject(TransactionHost)),
|
|
370
|
+
__param(2, Inject(CacheService)),
|
|
371
|
+
__param(3, Inject(KEYRING)),
|
|
372
|
+
__param(4, Inject(ExtensionRegistry)),
|
|
373
|
+
__param(5, Inject(ExtensionInstalls)),
|
|
374
|
+
__param(6, Inject(KernelConfigService)),
|
|
375
|
+
__param(7, Inject(KERNEL_LOGGER))
|
|
376
|
+
], EffectiveConfigs);
|
|
377
|
+
export { EffectiveConfigs };
|
|
378
|
+
/** The cache key of a copy under a generation (the `@Cacheable` key of `cachedCopy`). */
|
|
379
|
+
const copyCacheKey = (orgId, plugin, gen) => `effective-config:${orgId}:${plugin}:${gen}`;
|
|
@@ -5,23 +5,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Module } from "@nestjs/common";
|
|
8
|
-
import {
|
|
8
|
+
import { SuperAdminLockModule } from "../identity/super-admin.js";
|
|
9
|
+
import { ModelsModule } from "../models/models.module.js";
|
|
9
10
|
import { OrgLockModule } from "../orgs/org-lock.js";
|
|
10
11
|
import { StorageModule } from "../storage/storage.module.js";
|
|
11
12
|
import { EmbedTokensModule } from "../ui/embed-token.js";
|
|
12
13
|
import { ExtensionAdminOps } from "./admin-ops.js";
|
|
13
14
|
import { ExtensionAdmin } from "./admin-view.js";
|
|
14
|
-
import { ExtensionApprovals } from "./approvals.js";
|
|
15
|
-
import { ExtensionBlobs } from "./blobs.js";
|
|
16
15
|
import { BootstrapService } from "./bootstrap.js";
|
|
17
16
|
import { ExtensionDeploymentConfigService } from "./deployment-config.js";
|
|
17
|
+
import { ExtensionDisplayNames } from "./display-name.js";
|
|
18
18
|
import { ExtensionHost } from "./host.js";
|
|
19
|
-
import { ExtensionInstalls } from "./installs.js";
|
|
20
19
|
import { ExtensionLifecycle } from "./lifecycle.js";
|
|
21
|
-
import { PluginApproveLock, PluginDeploymentConfigLock, PluginInstallLock } from "./locks.js";
|
|
20
|
+
import { PluginApproveLock, PluginDeploymentConfigLock, PluginInstallLock, SingleProviderLock, } from "./locks.js";
|
|
22
21
|
import { OrgExtensionConfigs } from "./org-config.js";
|
|
22
|
+
import { OrgOverrides } from "./org-overrides.js";
|
|
23
|
+
import { PluginGuides } from "./plugin-guides.js";
|
|
24
|
+
import { PluginIcons } from "./plugin-icons.js";
|
|
25
|
+
import { ExtensionPointDefaults } from "./point-defaults.js";
|
|
23
26
|
import { ExtensionRegistryModule } from "./registry.js";
|
|
27
|
+
import { SingleProviderGuard } from "./single-provider.js";
|
|
24
28
|
import { ReplicaStatusStore } from "./sources.js";
|
|
29
|
+
import { ExtensionStateModule } from "./state.module.js";
|
|
30
|
+
import { ExtensionAvailability } from "./unavailable.js";
|
|
25
31
|
/**
|
|
26
32
|
* The extensions domain: the extension host (it builds each `ctx` from the injected kernel
|
|
27
33
|
* services), the package store and install records (the desired state the host converges to, one
|
|
@@ -34,43 +40,56 @@ ExtensionsModule = __decorate([
|
|
|
34
40
|
Module({
|
|
35
41
|
imports: [
|
|
36
42
|
ExtensionRegistryModule,
|
|
37
|
-
|
|
43
|
+
SuperAdminLockModule,
|
|
38
44
|
OrgLockModule,
|
|
39
45
|
StorageModule,
|
|
40
46
|
// ctx.ui verifies embed tokens with the one provider the UI routes issue them with
|
|
41
47
|
EmbedTokensModule,
|
|
48
|
+
ExtensionStateModule,
|
|
49
|
+
// ctx.models: the embeddings broker (models domain, below the host through ExtensionStateModule)
|
|
50
|
+
ModelsModule,
|
|
42
51
|
],
|
|
43
52
|
providers: [
|
|
44
53
|
PluginInstallLock,
|
|
45
54
|
PluginApproveLock,
|
|
46
55
|
PluginDeploymentConfigLock,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
ExtensionInstalls,
|
|
56
|
+
SingleProviderLock,
|
|
57
|
+
SingleProviderGuard,
|
|
50
58
|
ReplicaStatusStore,
|
|
51
59
|
ExtensionHost,
|
|
52
60
|
ExtensionLifecycle,
|
|
53
61
|
ExtensionAdmin,
|
|
54
62
|
ExtensionAdminOps,
|
|
63
|
+
ExtensionDisplayNames,
|
|
64
|
+
PluginIcons,
|
|
65
|
+
PluginGuides,
|
|
55
66
|
ExtensionDeploymentConfigService,
|
|
56
67
|
OrgExtensionConfigs,
|
|
68
|
+
OrgOverrides,
|
|
69
|
+
ExtensionPointDefaults,
|
|
57
70
|
BootstrapService,
|
|
71
|
+
ExtensionAvailability,
|
|
58
72
|
],
|
|
59
73
|
exports: [
|
|
60
74
|
ExtensionRegistryModule,
|
|
75
|
+
ExtensionStateModule,
|
|
61
76
|
PluginInstallLock,
|
|
62
77
|
PluginApproveLock,
|
|
63
|
-
ExtensionApprovals,
|
|
64
|
-
ExtensionBlobs,
|
|
65
|
-
ExtensionInstalls,
|
|
66
78
|
ReplicaStatusStore,
|
|
67
79
|
ExtensionHost,
|
|
68
80
|
ExtensionLifecycle,
|
|
69
81
|
ExtensionAdmin,
|
|
70
82
|
ExtensionAdminOps,
|
|
83
|
+
ExtensionDisplayNames,
|
|
84
|
+
PluginIcons,
|
|
85
|
+
PluginGuides,
|
|
71
86
|
ExtensionDeploymentConfigService,
|
|
72
87
|
OrgExtensionConfigs,
|
|
88
|
+
OrgOverrides,
|
|
89
|
+
ExtensionPointDefaults,
|
|
73
90
|
BootstrapService,
|
|
91
|
+
ExtensionAvailability,
|
|
92
|
+
SingleProviderGuard,
|
|
74
93
|
],
|
|
75
94
|
})
|
|
76
95
|
], ExtensionsModule);
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type PluginSetupGuide, type SetupGuideAudience, type SetupGuidePlace } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { KernelConfig } from "../config/schema.js";
|
|
3
|
+
import type { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
|
+
import type { OrgAction } from "../orgs/roles.js";
|
|
5
|
+
/** Why a known variable has no value: what the web and the `Platform` tool tell the reader. */
|
|
6
|
+
export type UnresolvedReason =
|
|
7
|
+
/** The target is not saved yet (the webhook URL). */
|
|
8
|
+
"not_saved"
|
|
9
|
+
/** No name typed yet on the new target's form (a connection name on 新建渠道). */
|
|
10
|
+
| "no_name"
|
|
11
|
+
/** `http.publicUrl` is not set (the URLs built from it). */
|
|
12
|
+
| "public_url"
|
|
13
|
+
/** `channels.webhookBaseUrl` is not set or unusable. */
|
|
14
|
+
| "webhook_base"
|
|
15
|
+
/** No connector is made from the template yet. */
|
|
16
|
+
| "no_connector"
|
|
17
|
+
/** Rendered for the platform (the super admin's preview), not for an org. */
|
|
18
|
+
| "no_org";
|
|
19
|
+
/** The org action each audience of a place needs besides `catalog.read` (spec §9.1). */
|
|
20
|
+
export declare const PLACE_ACTIONS: Readonly<Record<SetupGuidePlace, Readonly<Partial<Record<SetupGuideAudience, OrgAction>>>>>;
|
|
21
|
+
/** The object a guide is rendered for. */
|
|
22
|
+
export interface GuideTarget {
|
|
23
|
+
kind: "channel-connection" | "connector";
|
|
24
|
+
id: string;
|
|
25
|
+
}
|
|
26
|
+
/** The target parameters of the guide route, per place. */
|
|
27
|
+
export interface GuideTargetQuery {
|
|
28
|
+
connectionId?: string | undefined;
|
|
29
|
+
name?: string | undefined;
|
|
30
|
+
connectorId?: string | undefined;
|
|
31
|
+
}
|
|
32
|
+
/** What a place resolves for one rendering (the mode is the caller's: it picks it from these). */
|
|
33
|
+
export interface PlaceResolution {
|
|
34
|
+
/** Every variable of the place except `mode`; null = known without a value. */
|
|
35
|
+
values: Record<string, string | null>;
|
|
36
|
+
/** The reason of each variable that is null in `values`. */
|
|
37
|
+
reasons: Record<string, UnresolvedReason>;
|
|
38
|
+
target: GuideTarget | null;
|
|
39
|
+
/** The target's stored mode (a channel connection's `inbound_mode`), null without one. */
|
|
40
|
+
storedMode: string | null;
|
|
41
|
+
}
|
|
42
|
+
/** Where the values come from. */
|
|
43
|
+
export interface PlaceContext {
|
|
44
|
+
db: KernelDb;
|
|
45
|
+
config: Pick<KernelConfig, "http" | "channels"> & {
|
|
46
|
+
tools: Pick<KernelConfig["tools"], "oauthAllowInsecureLoopback">;
|
|
47
|
+
};
|
|
48
|
+
item: {
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
version: string;
|
|
52
|
+
};
|
|
53
|
+
guide: PluginSetupGuide;
|
|
54
|
+
locale: "en" | "zh";
|
|
55
|
+
/** The org rendered for; null for the platform preview (no org, no target). */
|
|
56
|
+
org: {
|
|
57
|
+
orgId: string;
|
|
58
|
+
name: string;
|
|
59
|
+
} | null;
|
|
60
|
+
query: GuideTargetQuery;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The variable values of a place for one rendering (spec §6.3): the common ones, then the place's
|
|
64
|
+
* own from its target. Throws 400 `validation_failed` for another place's target parameter and 404
|
|
65
|
+
* (`channel.not_found`, `connector.not_found`) for a target that is not a live object of the org on
|
|
66
|
+
* the guide's plugin.
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolvePlace(ctx: PlaceContext): Promise<PlaceResolution>;
|