@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +85 -5
- package/dist/admin/admin-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +876 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +109 -0
- package/dist/background/tasks.service.js +271 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -1
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +102 -0
- package/dist/catalog/component-scope.controller.js +257 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +30 -0
- package/dist/catalog/job-ids.js +25 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +133 -0
- package/dist/catalog/org-extension.controller.js +313 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -343
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +41 -5
- package/dist/extensions/bootstrap.js +121 -19
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +94 -9
- package/dist/extensions/deployment-config.js +255 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +77 -31
- package/dist/identity/accounts.js +133 -52
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +17 -1
- package/dist/identity/me.controller.js +45 -4
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- package/dist/inbox/inbox.service.js +74 -4
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
- package/dist/lifecycle/kernel-lifecycle.js +35 -7
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +5 -1
- package/dist/models/models.module.js +16 -4
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +774 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +102 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +730 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +381 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +298 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +43 -0
- package/dist/platform/platform-ops.module.js +142 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +21 -1
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.js +2 -1
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +33 -0
- package/dist/themes/themes-public.controller.js +98 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +29 -19
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +51 -44
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +61 -4
- package/dist/tools/info.js +119 -33
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -0,0 +1,554 @@
|
|
|
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
|
+
var PluginGuides_1;
|
|
11
|
+
import { renderSetupGuide, SETUP_GUIDE_PLACE_INFO, SETUP_GUIDE_PLACES, setupGuideDocPath, setupGuideDocProblem, setupGuideHash, } from "@capybara-hq/plugin-sdk";
|
|
12
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
13
|
+
import { sql } from "kysely";
|
|
14
|
+
import { readCatalogDisplayFiles } from "../catalog/catalog-content.js";
|
|
15
|
+
import { readDisplayFiles } from "../catalog/catalog-files.js";
|
|
16
|
+
import { ApiError } from "../errors.js";
|
|
17
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
18
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
19
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
20
|
+
import { can, roleAtLeast } from "../orgs/roles.js";
|
|
21
|
+
import { PLACE_ACTIONS, resolvePlace, } from "./guide-places.js";
|
|
22
|
+
import { orgVisibleItems } from "./plugin-icons.js";
|
|
23
|
+
export { PLACE_ACTIONS } from "./guide-places.js";
|
|
24
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
25
|
+
const GUIDE_ID_RE = /^[a-z0-9][a-z0-9-]{0,63}$/;
|
|
26
|
+
const GUIDE_KEYS = new Set(["id", "place", "template"]);
|
|
27
|
+
const itemNotFound = () => new ApiError("catalog.item_not_found", "Catalog item not found");
|
|
28
|
+
const guideNotFound = () => new ApiError("catalog.guide_not_found", "The plugin has no such setup guide");
|
|
29
|
+
const invalidQuery = (path, message) => new ApiError("validation_failed", "Request validation failed", [{ path, message }]);
|
|
30
|
+
/** The live items (with their latest version) by name or id. */
|
|
31
|
+
function latestItems(db, by, keys) {
|
|
32
|
+
return db
|
|
33
|
+
.selectFrom("catalog_items as i")
|
|
34
|
+
.innerJoin("catalog_item_versions as v", (j) => j.onRef("v.item_id", "=", "i.id").onRef("v.version", "=", "i.latest_version"))
|
|
35
|
+
.select([
|
|
36
|
+
"i.id",
|
|
37
|
+
"i.name",
|
|
38
|
+
"i.scope",
|
|
39
|
+
"i.builtin",
|
|
40
|
+
"i.disabled",
|
|
41
|
+
"i.shown_to_others",
|
|
42
|
+
"i.owner_org_id",
|
|
43
|
+
"i.shareable",
|
|
44
|
+
"i.awaiting_confirmation",
|
|
45
|
+
"i.latest_version",
|
|
46
|
+
"v.manifest",
|
|
47
|
+
"v.files",
|
|
48
|
+
])
|
|
49
|
+
.where(by === "name" ? "i.name" : "i.id", "in", [...new Set(keys)])
|
|
50
|
+
.where("i.deleted_at", "is", null)
|
|
51
|
+
.execute();
|
|
52
|
+
}
|
|
53
|
+
/** Whether a stored `setupGuides` entry is a v2 one (the SDK's strict shape). */
|
|
54
|
+
function isV2Guide(g) {
|
|
55
|
+
if (typeof g !== "object" || g === null || Array.isArray(g))
|
|
56
|
+
return false;
|
|
57
|
+
const o = g;
|
|
58
|
+
return (Object.keys(o).every((k) => GUIDE_KEYS.has(k)) &&
|
|
59
|
+
typeof o.id === "string" &&
|
|
60
|
+
GUIDE_ID_RE.test(o.id) &&
|
|
61
|
+
SETUP_GUIDE_PLACES.includes(o.place) &&
|
|
62
|
+
(o.template === undefined || (typeof o.template === "string" && GUIDE_ID_RE.test(o.template))));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A version's v2 guides and the entries skipped: a version imported before setup guides v2 keeps
|
|
66
|
+
* v1-shaped entries, which render no guide (spec §15; not a compatibility layer).
|
|
67
|
+
*/
|
|
68
|
+
function guidesOf(manifest) {
|
|
69
|
+
const raw = manifest.setupGuides;
|
|
70
|
+
if (!Array.isArray(raw))
|
|
71
|
+
return { guides: [], skipped: 0 };
|
|
72
|
+
const guides = raw.filter(isV2Guide);
|
|
73
|
+
return { guides, skipped: raw.length - guides.length };
|
|
74
|
+
}
|
|
75
|
+
/** A plugin's guide for a place (and template): the manifest allows at most one. */
|
|
76
|
+
const guideFor = (manifest, place, templateId) => guidesOf(manifest).guides.find((g) => g.place === place && (templateId === undefined || g.template === templateId));
|
|
77
|
+
/**
|
|
78
|
+
* A connector template's guide in a version's manifest (v2 entries only), for callers that already
|
|
79
|
+
* hold the manifest (the org catalog detail).
|
|
80
|
+
*/
|
|
81
|
+
export const templateGuideOf = (manifest, templateId) => guideFor(manifest, "connector-template", templateId);
|
|
82
|
+
/** The stored file of a guide document, or undefined when the version has none. */
|
|
83
|
+
const docMeta = (row, id, locale) => {
|
|
84
|
+
const path = setupGuideDocPath(id, locale);
|
|
85
|
+
return row.files.find((f) => f.path === path);
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Plugin setup guides v2 (spec `2026-11-09-setup-guides-v2-design.md`): resolves an extension's
|
|
89
|
+
* catalog item (the item of the same name, its latest version), renders a guide document for a
|
|
90
|
+
* place, audience, mode and target with the place's safe variables (`guide-places.ts`; never a
|
|
91
|
+
* secret), and computes the drift hashes targets record to tell when an upgrade changed their
|
|
92
|
+
* setup. Org reads follow the catalog icon's visibility ({@link orgVisibleItems}), the platform
|
|
93
|
+
* preview any live item. Stateless: everything comes from PG (version rows, target rows, the
|
|
94
|
+
* documents in `catalog_files`).
|
|
95
|
+
*/
|
|
96
|
+
let PluginGuides = PluginGuides_1 = class PluginGuides {
|
|
97
|
+
db;
|
|
98
|
+
config;
|
|
99
|
+
log;
|
|
100
|
+
constructor(db, config, log) {
|
|
101
|
+
this.db = db;
|
|
102
|
+
this.config = config;
|
|
103
|
+
this.log = log;
|
|
104
|
+
}
|
|
105
|
+
latest(by, keys) {
|
|
106
|
+
return latestItems(this.db, by, keys);
|
|
107
|
+
}
|
|
108
|
+
/** The rows the org's catalog shows ({@link orgVisibleItems}); all of them without an org. */
|
|
109
|
+
visibleTo(rows, org) {
|
|
110
|
+
return org === undefined
|
|
111
|
+
? rows
|
|
112
|
+
: orgVisibleItems(this.db, rows, org.orgId, roleAtLeast(org.role, "admin"));
|
|
113
|
+
}
|
|
114
|
+
/** The English documents of guides, by `<itemId>/<guideId>` (one PG read); absent when not stored. */
|
|
115
|
+
async englishSources(pairs) {
|
|
116
|
+
const metas = pairs.flatMap(({ row, guide }) => {
|
|
117
|
+
const meta = docMeta(row, guide.id, "en");
|
|
118
|
+
return meta === undefined ? [] : [{ key: `${row.id}/${guide.id}`, meta }];
|
|
119
|
+
});
|
|
120
|
+
const out = new Map();
|
|
121
|
+
if (metas.length === 0)
|
|
122
|
+
return out;
|
|
123
|
+
const files = await readCatalogDisplayFiles(this.db, metas.map((m) => m.meta));
|
|
124
|
+
metas.forEach((m, i) => {
|
|
125
|
+
const data = files[i]?.data;
|
|
126
|
+
if (data !== undefined && setupGuideDocProblem(m.meta.path, data) === undefined) {
|
|
127
|
+
out.set(m.key, new TextDecoder().decode(data));
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
/** The admin drift hash of a guide for a mode. */
|
|
133
|
+
static hashOf(enSource, guide, mode) {
|
|
134
|
+
return setupGuideHash(enSource, {
|
|
135
|
+
place: guide.place,
|
|
136
|
+
guideId: guide.id,
|
|
137
|
+
mode,
|
|
138
|
+
audience: "admin",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* The ack of a plugin's current guide for a place (and template) and mode, admin audience:
|
|
143
|
+
* recorded on a target when it is created or switches mode. Null when the plugin has no catalog
|
|
144
|
+
* item, no such guide or no stored document. Without `org` kernel-internal (no org visibility:
|
|
145
|
+
* the target belongs to the plugin either way); with `org` (a person acking the guide) null
|
|
146
|
+
* also when the org's catalog does not show the item, the guide read's rule.
|
|
147
|
+
*/
|
|
148
|
+
async currentAck(plugin, place, o) {
|
|
149
|
+
const [row] = await this.visibleTo(await this.latest("name", [plugin]), o.org);
|
|
150
|
+
const guide = row && guideFor(row.manifest, place, o.templateId);
|
|
151
|
+
if (!row || !guide)
|
|
152
|
+
return null;
|
|
153
|
+
const en = (await this.englishSources([{ row, guide }])).get(`${row.id}/${guide.id}`);
|
|
154
|
+
if (en === undefined)
|
|
155
|
+
return null;
|
|
156
|
+
return {
|
|
157
|
+
guideId: guide.id,
|
|
158
|
+
version: row.latest_version,
|
|
159
|
+
hash: PluginGuides_1.hashOf(en, guide, o.mode),
|
|
160
|
+
mode: o.mode,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Whether an ack is behind the plugin's current guide (spec §11): the same guide whose hash for
|
|
165
|
+
* the ack's mode changed. False without an ack, a catalog item or the guide. Kernel-internal: no
|
|
166
|
+
* org visibility.
|
|
167
|
+
*/
|
|
168
|
+
async ackDrifted(plugin, place, ack, o = {}) {
|
|
169
|
+
if (ack === null)
|
|
170
|
+
return false;
|
|
171
|
+
const current = await this.currentAck(plugin, place, {
|
|
172
|
+
mode: ack.mode,
|
|
173
|
+
...(o.templateId !== undefined && { templateId: o.templateId }),
|
|
174
|
+
});
|
|
175
|
+
return current !== null && current.guideId === ack.guideId && current.hash !== ack.hash;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* The ack of a connector template's current guide (admin audience, no mode): recorded on a
|
|
179
|
+
* connector when it is created from the template. Null when the item has no guide for the
|
|
180
|
+
* template or no stored document. Without `org` kernel-internal (no org visibility: the caller is
|
|
181
|
+
* creating or reading the org's own connector of that template); with `org` (a person acking the
|
|
182
|
+
* guide) null also when the org's catalog does not show the item.
|
|
183
|
+
*/
|
|
184
|
+
async templateAck(itemId, templateId, org) {
|
|
185
|
+
if (!UUID_RE.test(itemId))
|
|
186
|
+
return null;
|
|
187
|
+
const [row] = await this.visibleTo(await this.latest("id", [itemId]), org);
|
|
188
|
+
const guide = row && guideFor(row.manifest, "connector-template", templateId);
|
|
189
|
+
if (!row || !guide)
|
|
190
|
+
return null;
|
|
191
|
+
const en = (await this.englishSources([{ row, guide }])).get(`${row.id}/${guide.id}`);
|
|
192
|
+
if (en === undefined)
|
|
193
|
+
return null;
|
|
194
|
+
return {
|
|
195
|
+
guideId: guide.id,
|
|
196
|
+
version: row.latest_version,
|
|
197
|
+
hash: PluginGuides_1.hashOf(en, guide, null),
|
|
198
|
+
mode: null,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* `<itemId>/<templateId>` -> the template's guide in the item's latest version, for the template
|
|
203
|
+
* entries of the catalog detail and the components list; templates without one are absent.
|
|
204
|
+
* Kernel-internal: callers list only items and templates the org already sees.
|
|
205
|
+
*/
|
|
206
|
+
async templateGuides(pairs) {
|
|
207
|
+
const out = new Map();
|
|
208
|
+
const ids = [...new Set(pairs.map((p) => p.itemId))].filter((id) => UUID_RE.test(id));
|
|
209
|
+
if (ids.length === 0)
|
|
210
|
+
return out;
|
|
211
|
+
const rows = new Map((await this.latest("id", ids)).map((r) => [r.id, r]));
|
|
212
|
+
for (const p of pairs) {
|
|
213
|
+
const row = rows.get(p.itemId);
|
|
214
|
+
const guide = row && guideFor(row.manifest, "connector-template", p.templateId);
|
|
215
|
+
if (guide)
|
|
216
|
+
out.set(`${p.itemId}/${p.templateId}`, { itemId: p.itemId, guideId: guide.id });
|
|
217
|
+
}
|
|
218
|
+
return out;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* The guide fields of connectors (spec §9.3, §11): a connector made from a template
|
|
222
|
+
* (`itemId` / `templateId` of its platform template) whose item the org's catalog shows gets the
|
|
223
|
+
* template's guide; drift = an ack of the same guide whose admin hash changed. Custom connectors
|
|
224
|
+
* (no template) get nulls. One query each for items and documents.
|
|
225
|
+
*/
|
|
226
|
+
async connectorStates(connectors, org) {
|
|
227
|
+
const out = new Map();
|
|
228
|
+
const none = { setupGuide: null, guideDrift: null };
|
|
229
|
+
const ids = [
|
|
230
|
+
...new Set(connectors.flatMap((c) => (c.itemId !== null && c.templateId !== null ? [c.itemId] : []))),
|
|
231
|
+
].filter((id) => UUID_RE.test(id));
|
|
232
|
+
const rows = ids.length === 0
|
|
233
|
+
? []
|
|
234
|
+
: await orgVisibleItems(this.db, await this.latest("id", ids), org.orgId, roleAtLeast(org.role, "admin"));
|
|
235
|
+
const byId = new Map(rows.map((r) => [r.id, r]));
|
|
236
|
+
const guideOf = (c) => {
|
|
237
|
+
const row = c.itemId === null ? undefined : byId.get(c.itemId);
|
|
238
|
+
const guide = row && c.templateId !== null
|
|
239
|
+
? guideFor(row.manifest, "connector-template", c.templateId)
|
|
240
|
+
: undefined;
|
|
241
|
+
return row && guide ? { row, guide } : undefined;
|
|
242
|
+
};
|
|
243
|
+
// documents only for the guides an ack is compared with
|
|
244
|
+
const compared = new Map();
|
|
245
|
+
for (const c of connectors) {
|
|
246
|
+
const g = guideOf(c);
|
|
247
|
+
if (g && c.guideAck !== null && c.guideAck.guideId === g.guide.id) {
|
|
248
|
+
compared.set(`${g.row.id}/${g.guide.id}`, g);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const sources = await this.englishSources([...compared.values()]);
|
|
252
|
+
for (const c of connectors) {
|
|
253
|
+
const g = guideOf(c);
|
|
254
|
+
if (!g) {
|
|
255
|
+
out.set(c.id, none);
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
const ack = c.guideAck;
|
|
259
|
+
const en = sources.get(`${g.row.id}/${g.guide.id}`);
|
|
260
|
+
const drifted = en !== undefined &&
|
|
261
|
+
ack !== null &&
|
|
262
|
+
ack.guideId === g.guide.id &&
|
|
263
|
+
PluginGuides_1.hashOf(en, g.guide, null) !== ack.hash;
|
|
264
|
+
out.set(c.id, {
|
|
265
|
+
setupGuide: { itemId: g.row.id, guideId: g.guide.id, version: g.row.latest_version },
|
|
266
|
+
guideDrift: drifted && ack !== null ? { from: ack.version, to: g.row.latest_version } : null,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return out;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* The connector template guides an update of an item changes (the platform update preview,
|
|
273
|
+
* {@link TemplateGuideChange}): per template guide of the target whose admin hash differs from
|
|
274
|
+
* the platform's current version's (a guide new in the target counts only when connectors hold
|
|
275
|
+
* an ack of it). Documents a version does not store are skipped. Kernel-internal (the super
|
|
276
|
+
* admin's or the owner's preview).
|
|
277
|
+
*/
|
|
278
|
+
async templateGuideChanges(itemId, from, to) {
|
|
279
|
+
const targets = guidesOf(to.manifest).guides.filter((g) => g.place === "connector-template" && g.template !== undefined);
|
|
280
|
+
if (targets.length === 0)
|
|
281
|
+
return [];
|
|
282
|
+
const fromRow = from === null
|
|
283
|
+
? undefined
|
|
284
|
+
: await this.db
|
|
285
|
+
.selectFrom("catalog_item_versions")
|
|
286
|
+
.select(["manifest", "files"])
|
|
287
|
+
.where("item_id", "=", itemId)
|
|
288
|
+
.where("version", "=", from)
|
|
289
|
+
.executeTakeFirst();
|
|
290
|
+
const out = [];
|
|
291
|
+
for (const guide of targets) {
|
|
292
|
+
const templateId = guide.template;
|
|
293
|
+
const toHash = await this.storedHash(to, guide);
|
|
294
|
+
if (toHash === undefined)
|
|
295
|
+
continue;
|
|
296
|
+
const before = fromRow && guideFor(fromRow.manifest, "connector-template", templateId);
|
|
297
|
+
const fromHash = fromRow && before?.id === guide.id ? await this.storedHash(fromRow, before) : undefined;
|
|
298
|
+
if (fromHash === toHash)
|
|
299
|
+
continue;
|
|
300
|
+
const counted = await this.db
|
|
301
|
+
.selectFrom("connectors as c")
|
|
302
|
+
.innerJoin("platform_connector_templates as t", "t.id", "c.platform_template_id")
|
|
303
|
+
.innerJoin("orgs as o", "o.id", "c.org_id")
|
|
304
|
+
.select((eb) => eb.fn.count("c.org_id").distinct().as("orgs"))
|
|
305
|
+
.where("t.catalog_item_id", "=", itemId)
|
|
306
|
+
.where("t.template_id", "=", templateId)
|
|
307
|
+
.where("c.deleted_at", "is", null)
|
|
308
|
+
.where("o.deleted_at", "is", null)
|
|
309
|
+
.where(sql `c.guide_ack->>'guideId' = ${guide.id}`)
|
|
310
|
+
.where(sql `c.guide_ack->>'hash' <> ${toHash}`)
|
|
311
|
+
.executeTakeFirst();
|
|
312
|
+
const orgs = Number(counted?.orgs ?? 0);
|
|
313
|
+
if (fromHash === undefined && orgs === 0)
|
|
314
|
+
continue;
|
|
315
|
+
out.push({ templateId, guideId: guide.id, from, to: to.version, orgs });
|
|
316
|
+
}
|
|
317
|
+
return out;
|
|
318
|
+
}
|
|
319
|
+
/** The admin drift hash of a guide in a version (no mode), or undefined when not stored. */
|
|
320
|
+
async storedHash(row, guide) {
|
|
321
|
+
const meta = docMeta(row, guide.id, "en");
|
|
322
|
+
if (meta === undefined)
|
|
323
|
+
return undefined;
|
|
324
|
+
const data = (await readDisplayFiles(this.db, [meta])).get(meta.path)?.data;
|
|
325
|
+
if (data === undefined || setupGuideDocProblem(meta.path, data) !== undefined)
|
|
326
|
+
return undefined;
|
|
327
|
+
return PluginGuides_1.hashOf(new TextDecoder().decode(data), guide, null);
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Plugin name -> its channel-connection guide, for plugins whose item the org's catalog shows
|
|
331
|
+
* (`GET channels/schema/:plugin` and the connection pages); others are absent.
|
|
332
|
+
*/
|
|
333
|
+
async channelGuides(names, org) {
|
|
334
|
+
const out = new Map();
|
|
335
|
+
if (names.length === 0)
|
|
336
|
+
return out;
|
|
337
|
+
const rows = (await this.latest("name", names)).filter((r) => guideFor(r.manifest, "channel-connection") !== undefined);
|
|
338
|
+
const visible = await orgVisibleItems(this.db, rows, org.orgId, roleAtLeast(org.role, "admin"));
|
|
339
|
+
for (const r of visible) {
|
|
340
|
+
const guide = guideFor(r.manifest, "channel-connection");
|
|
341
|
+
out.set(r.name, {
|
|
342
|
+
itemId: r.id,
|
|
343
|
+
guideId: guide.id,
|
|
344
|
+
version: r.latest_version,
|
|
345
|
+
guide,
|
|
346
|
+
row: r,
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
return out;
|
|
350
|
+
}
|
|
351
|
+
/** The guide fields of channel connections (one query each for guides and documents; spec §11). */
|
|
352
|
+
async connectionStates(connections, org) {
|
|
353
|
+
const guides = await this.channelGuides(connections.map((c) => c.plugin), org);
|
|
354
|
+
// documents only for the guides an ack is compared with
|
|
355
|
+
const compared = [
|
|
356
|
+
...new Set(connections
|
|
357
|
+
.filter((c) => c.guideAck !== null && guides.get(c.plugin)?.guideId === c.guideAck.guideId)
|
|
358
|
+
.map((c) => c.plugin)),
|
|
359
|
+
].map((p) => guides.get(p));
|
|
360
|
+
const sources = await this.englishSources(compared);
|
|
361
|
+
const out = new Map();
|
|
362
|
+
for (const c of connections) {
|
|
363
|
+
const g = guides.get(c.plugin);
|
|
364
|
+
const ack = c.guideAck;
|
|
365
|
+
const en = g && sources.get(`${g.itemId}/${g.guideId}`);
|
|
366
|
+
const drifted = g !== undefined &&
|
|
367
|
+
en !== undefined &&
|
|
368
|
+
ack !== null &&
|
|
369
|
+
ack.guideId === g.guideId &&
|
|
370
|
+
PluginGuides_1.hashOf(en, g.guide, ack.mode) !== ack.hash;
|
|
371
|
+
out.set(c.id, {
|
|
372
|
+
setupGuide: g ? { itemId: g.itemId, guideId: g.guideId, version: g.version } : null,
|
|
373
|
+
guideDrift: drifted ? { from: ack.version, to: g.version } : null,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
return out;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* The documents of a guide of an item's latest version (no visibility check: callers check it):
|
|
380
|
+
* the source in `locale` (falling back to English), the English source (hashes, check lookup) and
|
|
381
|
+
* the locale actually read. 404 `catalog.item_not_found` / `catalog.guide_not_found`.
|
|
382
|
+
*/
|
|
383
|
+
async loadDocument(itemId, guideId, locale) {
|
|
384
|
+
if (!UUID_RE.test(itemId))
|
|
385
|
+
throw itemNotFound();
|
|
386
|
+
const [row] = await this.latest("id", [itemId]);
|
|
387
|
+
if (!row)
|
|
388
|
+
throw itemNotFound();
|
|
389
|
+
const guide = guidesOf(row.manifest).guides.find((g) => g.id === guideId);
|
|
390
|
+
if (!guide)
|
|
391
|
+
throw guideNotFound();
|
|
392
|
+
return { row, guide, ...(await this.documents(row, guide, locale)) };
|
|
393
|
+
}
|
|
394
|
+
/** Reads and checks a guide's stored documents (one PG read). */
|
|
395
|
+
async documents(row, guide, locale) {
|
|
396
|
+
const en = docMeta(row, guide.id, "en");
|
|
397
|
+
// stored at import with the version; a missing one means tampered or lost storage
|
|
398
|
+
if (en === undefined) {
|
|
399
|
+
throw new ApiError("internal", `Setup guide document ${setupGuideDocPath(guide.id, "en")} is not stored`);
|
|
400
|
+
}
|
|
401
|
+
const zh = locale === "zh" ? docMeta(row, guide.id, "zh") : undefined;
|
|
402
|
+
const files = await readCatalogDisplayFiles(this.db, zh === undefined ? [en] : [en, zh]);
|
|
403
|
+
const text = (f, path) => {
|
|
404
|
+
const problem = setupGuideDocProblem(path, f?.data);
|
|
405
|
+
if (problem !== undefined) {
|
|
406
|
+
throw new ApiError("internal", `Stored setup guide document is invalid: ${problem}`);
|
|
407
|
+
}
|
|
408
|
+
return new TextDecoder().decode(f?.data);
|
|
409
|
+
};
|
|
410
|
+
const enSource = text(files[0], en.path);
|
|
411
|
+
if (zh === undefined)
|
|
412
|
+
return { source: enSource, enSource, locale: "en" };
|
|
413
|
+
return { source: text(files[1], zh.path), enSource, locale: "zh" };
|
|
414
|
+
}
|
|
415
|
+
/** Logs the stored guide entries a version skips (once per render). */
|
|
416
|
+
warnSkipped(row) {
|
|
417
|
+
const { skipped } = guidesOf(row.manifest);
|
|
418
|
+
if (skipped > 0) {
|
|
419
|
+
this.log.warn("setup guide entries skipped: not in the v2 format (update the plugin)", {
|
|
420
|
+
plugin: row.name,
|
|
421
|
+
version: row.latest_version,
|
|
422
|
+
skipped,
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Renders a guide for an org (`GET /orgs/:orgId/catalog/:itemId/guides/:guideId`): the item must
|
|
428
|
+
* be one the org's catalog shows (else `catalog.item_not_found`), the guide one its latest
|
|
429
|
+
* version has (else `catalog.guide_not_found`), `mode` and `audience` the place's (else
|
|
430
|
+
* `validation_failed`), and the caller must hold the place and audience's action
|
|
431
|
+
* ({@link PLACE_ACTIONS}, else `forbidden`). The target parameters are the place's
|
|
432
|
+
* (`guide-places.ts`): a target must be a live object of the org on the plugin, else 404.
|
|
433
|
+
*/
|
|
434
|
+
async render(org, itemId, guideId, q) {
|
|
435
|
+
if (!UUID_RE.test(itemId))
|
|
436
|
+
throw itemNotFound();
|
|
437
|
+
const rows = await this.latest("id", [itemId]);
|
|
438
|
+
const [row] = await orgVisibleItems(this.db, rows, org.orgId, roleAtLeast(org.role, "admin"));
|
|
439
|
+
if (!row)
|
|
440
|
+
throw itemNotFound();
|
|
441
|
+
this.warnSkipped(row);
|
|
442
|
+
const guide = guidesOf(row.manifest).guides.find((g) => g.id === guideId);
|
|
443
|
+
if (!guide)
|
|
444
|
+
throw guideNotFound();
|
|
445
|
+
const audience = this.checkQuery(guide, q);
|
|
446
|
+
const action = PLACE_ACTIONS[guide.place][audience];
|
|
447
|
+
if (action === undefined || !can(org.role, action)) {
|
|
448
|
+
throw new ApiError("forbidden", "Insufficient organization role");
|
|
449
|
+
}
|
|
450
|
+
const docs = await this.documents(row, guide, q.locale ?? "en");
|
|
451
|
+
const orgRow = await this.db
|
|
452
|
+
.selectFrom("orgs")
|
|
453
|
+
.select("name")
|
|
454
|
+
.where("id", "=", org.orgId)
|
|
455
|
+
.executeTakeFirst();
|
|
456
|
+
const resolution = await resolvePlace({
|
|
457
|
+
db: this.db,
|
|
458
|
+
config: this.config.get(),
|
|
459
|
+
item: { id: row.id, name: row.name, version: row.latest_version },
|
|
460
|
+
guide,
|
|
461
|
+
locale: docs.locale,
|
|
462
|
+
org: { orgId: org.orgId, name: orgRow?.name ?? "" },
|
|
463
|
+
query: { connectionId: q.connectionId, name: q.name, connectorId: q.connectorId },
|
|
464
|
+
});
|
|
465
|
+
return this.renderDoc(row, guide, docs, resolution, { mode: q.mode, audience });
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Renders a guide for the platform (the super admin's preview, `GET /admin/catalog/:itemId/guides/
|
|
469
|
+
* :guideId`): any live item, the admin audience, no org (`orgName` unresolved) and no target.
|
|
470
|
+
*/
|
|
471
|
+
async renderForPlatform(itemId, guideId, q) {
|
|
472
|
+
if (!UUID_RE.test(itemId))
|
|
473
|
+
throw itemNotFound();
|
|
474
|
+
const [row] = await this.latest("id", [itemId]);
|
|
475
|
+
if (!row)
|
|
476
|
+
throw itemNotFound();
|
|
477
|
+
this.warnSkipped(row);
|
|
478
|
+
const guide = guidesOf(row.manifest).guides.find((g) => g.id === guideId);
|
|
479
|
+
if (!guide)
|
|
480
|
+
throw guideNotFound();
|
|
481
|
+
const docs = await this.documents(row, guide, q.locale ?? "en");
|
|
482
|
+
const resolution = await resolvePlace({
|
|
483
|
+
db: this.db,
|
|
484
|
+
config: this.config.get(),
|
|
485
|
+
item: { id: row.id, name: row.name, version: row.latest_version },
|
|
486
|
+
guide,
|
|
487
|
+
locale: docs.locale,
|
|
488
|
+
org: null,
|
|
489
|
+
query: {},
|
|
490
|
+
});
|
|
491
|
+
return this.renderDoc(row, guide, docs, resolution, { mode: undefined, audience: "admin" });
|
|
492
|
+
}
|
|
493
|
+
/** The audience asked for, after checking `mode` and `audience` against the place. */
|
|
494
|
+
checkQuery(guide, q) {
|
|
495
|
+
const info = SETUP_GUIDE_PLACE_INFO[guide.place];
|
|
496
|
+
const audience = q.audience ?? "admin";
|
|
497
|
+
if (!info.audiences.includes(audience)) {
|
|
498
|
+
throw invalidQuery("audience", `audience must be one of ${info.audiences.join(", ")} for a ${guide.place} guide`);
|
|
499
|
+
}
|
|
500
|
+
if (q.mode !== undefined && !info.modes.includes(q.mode)) {
|
|
501
|
+
throw invalidQuery("mode", info.modes.length === 0
|
|
502
|
+
? `a ${guide.place} guide has no modes`
|
|
503
|
+
: `mode must be one of ${info.modes.join(", ")}`);
|
|
504
|
+
}
|
|
505
|
+
return audience;
|
|
506
|
+
}
|
|
507
|
+
/** The rendered guide: the mode picked, the document rendered, the hash and the reasons. */
|
|
508
|
+
renderDoc(row, guide, docs, resolution, o) {
|
|
509
|
+
const info = SETUP_GUIDE_PLACE_INFO[guide.place];
|
|
510
|
+
// the asked mode, else the target's stored one, else the place's first (spec §8)
|
|
511
|
+
const mode = info.modes.length === 0 ? null : (o.mode ?? resolution.storedMode ?? info.modes[0] ?? null);
|
|
512
|
+
const doc = renderSetupGuide(docs.source, {
|
|
513
|
+
place: guide.place,
|
|
514
|
+
mode,
|
|
515
|
+
audience: o.audience,
|
|
516
|
+
values: { ...resolution.values, mode },
|
|
517
|
+
});
|
|
518
|
+
return {
|
|
519
|
+
itemId: row.id,
|
|
520
|
+
plugin: row.name,
|
|
521
|
+
version: row.latest_version,
|
|
522
|
+
id: guide.id,
|
|
523
|
+
place: guide.place,
|
|
524
|
+
template: guide.template ?? null,
|
|
525
|
+
locale: docs.locale,
|
|
526
|
+
title: doc.title,
|
|
527
|
+
modes: doc.modes,
|
|
528
|
+
mode,
|
|
529
|
+
audiences: doc.audiences,
|
|
530
|
+
audience: o.audience,
|
|
531
|
+
blocks: doc.blocks,
|
|
532
|
+
checks: doc.checks,
|
|
533
|
+
// `mode` without a value (a place without modes) has no reason anyone can act on
|
|
534
|
+
unresolved: doc.unresolved.flatMap((name) => {
|
|
535
|
+
const reason = resolution.reasons[name];
|
|
536
|
+
return reason === undefined ? [] : [{ name, reason }];
|
|
537
|
+
}),
|
|
538
|
+
hash: setupGuideHash(docs.enSource, {
|
|
539
|
+
place: guide.place,
|
|
540
|
+
guideId: guide.id,
|
|
541
|
+
mode,
|
|
542
|
+
audience: o.audience,
|
|
543
|
+
}),
|
|
544
|
+
target: resolution.target,
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
};
|
|
548
|
+
PluginGuides = PluginGuides_1 = __decorate([
|
|
549
|
+
Injectable(),
|
|
550
|
+
__param(0, Inject(KernelDb)),
|
|
551
|
+
__param(1, Inject(KernelConfigService)),
|
|
552
|
+
__param(2, Inject(KERNEL_LOGGER))
|
|
553
|
+
], PluginGuides);
|
|
554
|
+
export { PluginGuides };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type PluginScope } from "../catalog/scope.js";
|
|
2
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
3
|
+
import { type OrgRole } from "../orgs/roles.js";
|
|
4
|
+
/** Who reads the icons: the super admin (admin routes) or one org (its routes, its visibility). */
|
|
5
|
+
export type PluginIconScope = {
|
|
6
|
+
kind: "admin";
|
|
7
|
+
} | {
|
|
8
|
+
kind: "org";
|
|
9
|
+
orgId: string;
|
|
10
|
+
isAdmin: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** The icon scope of an org route's caller (its org and role). */
|
|
13
|
+
export declare const orgIconScope: (org: {
|
|
14
|
+
orgId: string;
|
|
15
|
+
role: OrgRole;
|
|
16
|
+
}) => PluginIconScope;
|
|
17
|
+
/** The catalog item columns {@link orgVisibleItems} reads. */
|
|
18
|
+
export interface OrgVisibilityRow {
|
|
19
|
+
id: string;
|
|
20
|
+
scope: PluginScope;
|
|
21
|
+
builtin: boolean;
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
shown_to_others: boolean;
|
|
24
|
+
owner_org_id: string | null;
|
|
25
|
+
shareable: boolean;
|
|
26
|
+
awaiting_confirmation: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The rows of live catalog items the org's catalog shows (one query for the org's list rows):
|
|
30
|
+
* members never see disabled items, an upload waiting for confirmation only its owner, another
|
|
31
|
+
* org's item only when shareable or listed here (the share gate), a `named` item only its listed
|
|
32
|
+
* orgs or as requestable. Shared by the plugin icons and the setup guides.
|
|
33
|
+
*/
|
|
34
|
+
export declare function orgVisibleItems<T extends OrgVisibilityRow>(db: KernelDb, rows: T[], orgId: string, isAdmin: boolean): Promise<T[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Plugin icons for the things a plugin brings (channels, extensions, model providers; maintainer
|
|
37
|
+
* decision 2026-11-08): extension name -> the URL of its plugin's icon, the catalog item of the
|
|
38
|
+
* same name (one live item per name). A name is present only when the item's latest version has
|
|
39
|
+
* an icon and the reader may load it: the admin scope gets `GET /api/v1/admin/catalog/items/:id/icon`
|
|
40
|
+
* for every live item; an org gets `GET /api/v1/orgs/:orgId/catalog/:itemId/icon` only for items
|
|
41
|
+
* its catalog shows (members never see disabled items, a `named` item only for its listed orgs or
|
|
42
|
+
* as requestable, an org-owned item only for its owner or through the share gate, an upload
|
|
43
|
+
* waiting for confirmation only for its owner). The URL carries the version, so a new icon is not
|
|
44
|
+
* hidden by the browser cache. Stateless; one query per call (two for an org: its list rows).
|
|
45
|
+
*/
|
|
46
|
+
export declare class PluginIcons {
|
|
47
|
+
private readonly db;
|
|
48
|
+
constructor(db: KernelDb);
|
|
49
|
+
/** Extension (plugin) name -> its icon's URL; names without one are absent. */
|
|
50
|
+
many(names: string[], scope: PluginIconScope): Promise<Map<string, string>>;
|
|
51
|
+
/** Catalog item id -> its icon's URL (a list of items); items without one are absent. */
|
|
52
|
+
ofItems(ids: string[], scope: PluginIconScope): Promise<Map<string, string>>;
|
|
53
|
+
private resolve;
|
|
54
|
+
}
|