@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11
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.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +60 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- 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 +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- 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 +868 -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 +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -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 +77 -0
- package/dist/background/tasks.service.js +216 -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 +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +264 -0
- package/dist/catalog/catalog-content.js +430 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +290 -0
- package/dist/catalog/catalog-items.js +677 -0
- package/dist/catalog/catalog-scope.service.d.ts +286 -0
- package/dist/catalog/catalog-scope.service.js +1196 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +144 -207
- package/dist/catalog/catalog.service.js +258 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- 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 +90 -0
- package/dist/catalog/component-scope.controller.js +234 -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 +366 -0
- package/dist/catalog/component-scope.service.js +1115 -0
- package/dist/catalog/component-state.d.ts +197 -0
- package/dist/catalog/component-state.js +473 -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 +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -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 +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +434 -472
- 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 +113 -0
- package/dist/catalog/org-extension.controller.js +271 -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 +293 -71
- package/dist/catalog/plugin-import.js +1039 -281
- package/dist/catalog/plugin-install.d.ts +271 -66
- package/dist/catalog/plugin-install.js +1198 -344
- package/dist/catalog/plugin-package.d.ts +41 -4
- package/dist/catalog/plugin-package.js +140 -7
- package/dist/catalog/plugin-upgrade.d.ts +312 -188
- package/dist/catalog/plugin-upgrade.js +1371 -1065
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- 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.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +589 -27
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +160 -2
- package/dist/errors.js +160 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -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 +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- 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 +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- 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 +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -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 +50 -2
- package/dist/extensions/registry.js +91 -4
- 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 +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +93 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- 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 +137 -38
- package/dist/identity/accounts.js +386 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- 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 +32 -15
- package/dist/identity/me.controller.js +80 -33
- 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 +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +69 -23
- package/dist/identity/settings.js +201 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- 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 +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -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/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -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 +7 -0
- package/dist/models/models.module.js +36 -0
- 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 +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -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 +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +76 -14
- package/dist/orgs/settings.service.js +140 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -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 +683 -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 +94 -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.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +407 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -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 +717 -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 +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -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 +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.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 +378 -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 +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -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 +296 -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/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +216 -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/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 +40 -0
- package/dist/platform/platform-ops.module.js +127 -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 +66 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- 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/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-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/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- 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 +43 -0
- package/dist/runtime/run-control.js +89 -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 +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- 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 +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- 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 +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- 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 +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/themes/render-css.d.ts +12 -0
- package/dist/themes/render-css.js +132 -0
- package/dist/themes/theme-delivery.service.d.ts +34 -0
- package/dist/themes/theme-delivery.service.js +111 -0
- package/dist/themes/theme-state.d.ts +95 -0
- package/dist/themes/theme-state.js +203 -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 +28 -0
- package/dist/themes/themes-public.controller.js +92 -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/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -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 +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- 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 +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- 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 +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- 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 +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- 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 +30 -20
- 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 +52 -45
- 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 +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- 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/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- 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 +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- 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 +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -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/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { LocalizedName } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { PluginScope } from "../catalog/scope.js";
|
|
1
3
|
import { type PermissionSet } from "./permission-set.js";
|
|
2
4
|
import type { ExtensionSource } from "./sources.js";
|
|
3
5
|
/**
|
|
@@ -35,10 +37,10 @@ export interface PermissionItem {
|
|
|
35
37
|
reason?: SensitiveReason;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
|
-
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@
|
|
40
|
+
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@2` 在部署里执行任意命令、`object-store@1` 保管全部附件与插件包(D10);
|
|
39
41
|
* `channel@1` 收到组织在 IM 里的对话内容(Ruling A33)、`directory@1` 能把人加进组织(并为其建账号、建身份)、
|
|
40
42
|
* `identity-source@1` 决定谁能登录成哪个账号。插件提供其中任何一个时,「提供」一组标为敏感,
|
|
41
|
-
* 后台插件列表的 `sensitive`
|
|
43
|
+
* 后台插件列表的 `sensitive` 为真,须超级管理员批准。只影响展示,不改权限快照的键。
|
|
42
44
|
*/
|
|
43
45
|
export declare const SENSITIVE_EXTENSION_POINTS: readonly string[];
|
|
44
46
|
/**
|
|
@@ -53,18 +55,27 @@ export declare function permissionGroups(set: PermissionSet): PermissionGroup[];
|
|
|
53
55
|
/**
|
|
54
56
|
* 部署级插件状态(后台展示;F-I:副本行存原因,这里推导展示用的状态)。
|
|
55
57
|
* `dependency`:必需能力没有(加载着的)提供方(F-M:排在 `failed` 之后、`pending_approval` 之前)。
|
|
58
|
+
* `conflict`: it provides a single-provider extension point another loaded extension provides (same
|
|
59
|
+
* rank as `dependency`); it loads once that one is disabled.
|
|
56
60
|
*/
|
|
57
|
-
export type DeploymentExtensionStatus = "enabled" | "disabled" | "pending_approval" | "pending_config" | "pending_migration" | "converging" | "failed" | "dependency"
|
|
61
|
+
export type DeploymentExtensionStatus = "enabled" | "disabled" | "pending_approval" | "pending_config" | "pending_migration" | "converging" | "failed" | "dependency" | "conflict"
|
|
58
62
|
/** The stored package is in the pre-0.1.0 format: reinstall it from a repacked tgz. */
|
|
59
63
|
| "legacy_format";
|
|
60
64
|
/**
|
|
61
|
-
*
|
|
65
|
+
* 需要超级管理员处理的状态(后台概览「需要处理的插件」):待批准、待配置、失败、依赖缺失,以及副本不一致
|
|
62
66
|
* (`converging` 收敛中、`pending_migration` 待迁移)。
|
|
63
67
|
*/
|
|
64
68
|
export declare function extensionNeedsAction(status: DeploymentExtensionStatus): boolean;
|
|
65
69
|
/** One item of the admin extension list (`GET /api/v1/admin/extensions`). */
|
|
66
70
|
export interface AdminExtensionView {
|
|
67
71
|
name: string;
|
|
72
|
+
/** The plugin's display name (`ExtensionDisplayNames`); null when it has none. */
|
|
73
|
+
displayName: LocalizedName | null;
|
|
74
|
+
/**
|
|
75
|
+
* The URL of its plugin's icon on the admin catalog route (`PluginIcons`); null when the plugin's
|
|
76
|
+
* latest version has none or there is no catalog item; absent on a degraded view (the read failed).
|
|
77
|
+
*/
|
|
78
|
+
icon?: string | null;
|
|
68
79
|
version: string;
|
|
69
80
|
source: ExtensionSource;
|
|
70
81
|
/** 安装记录的包;配置声明为 null。 */
|
|
@@ -111,15 +122,57 @@ export interface AdminExtensionView {
|
|
|
111
122
|
/** 有部署级配置字段。 */
|
|
112
123
|
configurable: boolean;
|
|
113
124
|
configValid: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Only when the platform config leaves required overridable fields empty (spec A §5.4a; the
|
|
127
|
+
* extension still runs): the number of orgs where it is on and that still need their own config.
|
|
128
|
+
*/
|
|
129
|
+
orgsNeedingConfig?: number;
|
|
114
130
|
/** 能从部署卸载(只有安装记录,必需的引导插件除外;卸载前须先停用)。 */
|
|
115
131
|
removable: boolean;
|
|
116
132
|
/**
|
|
117
133
|
* A required bootstrap plugin (package ecosystem spec §7): enabled in every org, cannot be
|
|
118
|
-
* disabled or uninstalled;
|
|
134
|
+
* disabled or uninstalled; a super admin may upgrade it.
|
|
119
135
|
*/
|
|
120
136
|
required: boolean;
|
|
137
|
+
/** The scope of the catalog plugin the extension ships in (builtin: `all`); null without one. */
|
|
138
|
+
scope: PluginScope | null;
|
|
139
|
+
/** Orgs where the extension is enabled (a required plugin: every org). */
|
|
140
|
+
enabledOrgs: number;
|
|
141
|
+
/** Shipped with the deployment (a builtin plugin or a required bootstrap plugin). */
|
|
142
|
+
builtin: boolean;
|
|
121
143
|
/** Where the install record came from (`bootstrap` for the bootstrap step); null for config-declared. */
|
|
122
144
|
installSource: "npm" | "file" | "catalog" | "bootstrap" | null;
|
|
145
|
+
/**
|
|
146
|
+
* Only with status `conflict`: the single-provider extension point and the other extensions that
|
|
147
|
+
* provide it (they keep this one from loading; disabling them loads it, no restart).
|
|
148
|
+
*/
|
|
149
|
+
conflict?: {
|
|
150
|
+
extensionPoint: string;
|
|
151
|
+
providers: {
|
|
152
|
+
name: string;
|
|
153
|
+
displayName: LocalizedName | null;
|
|
154
|
+
}[];
|
|
155
|
+
/**
|
|
156
|
+
* The provider the single-provider election picked (the first of `providers`) is not loaded
|
|
157
|
+
* (failed, pending), so the point has no running provider: an admin warning.
|
|
158
|
+
*/
|
|
159
|
+
unprovided?: true;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Only on a disabled install record: another enabled extension provides a single-provider
|
|
163
|
+
* extension point this one provides, so enabling it is refused (409
|
|
164
|
+
* `extension.single_provider_enabled`) until that one is disabled; `required`: that one is a
|
|
165
|
+
* required bootstrap plugin, which cannot be disabled, so this one cannot replace it (409
|
|
166
|
+
* `extension.single_provider_required`).
|
|
167
|
+
*/
|
|
168
|
+
enableBlocked?: {
|
|
169
|
+
extensionPoint: string;
|
|
170
|
+
enabled: {
|
|
171
|
+
name: string;
|
|
172
|
+
displayName: LocalizedName | null;
|
|
173
|
+
};
|
|
174
|
+
required?: true;
|
|
175
|
+
};
|
|
123
176
|
/**
|
|
124
177
|
* Why the install record's package cannot be read (bytes missing or corrupt, over the current
|
|
125
178
|
* size limit; status failed), or the legacy-format message (status `legacy_format`); permissions
|
|
@@ -149,7 +202,7 @@ export interface StatusInput {
|
|
|
149
202
|
}
|
|
150
203
|
/**
|
|
151
204
|
* 由期望状态、快照、配置校验、`migrated_sha` 与各副本状态推出部署级状态,优先级:
|
|
152
|
-
* `failed` > `dependency` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
205
|
+
* `failed` > `dependency` > `conflict` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
153
206
|
* - 安装记录只看目标包(`desired.sha256`)的副本行:旧包的失败不算;
|
|
154
207
|
* - 停用的安装记录不看迁移;仍有副本加载着时为 `converging`;
|
|
155
208
|
* - 配置声明始终期望启用。
|
|
@@ -18,16 +18,16 @@ export function reviewHash(set, warnings = []) {
|
|
|
18
18
|
return h.digest("hex").slice(0, 16);
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@
|
|
21
|
+
* 敏感的能力(D10 + 计划扩展,F-AI):`sandbox@2` 在部署里执行任意命令、`object-store@1` 保管全部附件与插件包(D10);
|
|
22
22
|
* `channel@1` 收到组织在 IM 里的对话内容(Ruling A33)、`directory@1` 能把人加进组织(并为其建账号、建身份)、
|
|
23
23
|
* `identity-source@1` 决定谁能登录成哪个账号。插件提供其中任何一个时,「提供」一组标为敏感,
|
|
24
|
-
* 后台插件列表的 `sensitive`
|
|
24
|
+
* 后台插件列表的 `sensitive` 为真,须超级管理员批准。只影响展示,不改权限快照的键。
|
|
25
25
|
*/
|
|
26
26
|
export const SENSITIVE_EXTENSION_POINTS = [
|
|
27
27
|
"channel@1",
|
|
28
28
|
"directory@1",
|
|
29
29
|
"identity-source@1",
|
|
30
|
-
"sandbox@
|
|
30
|
+
"sandbox@2",
|
|
31
31
|
"object-store@1",
|
|
32
32
|
];
|
|
33
33
|
/** 总是敏感的类别。 */
|
|
@@ -159,7 +159,7 @@ export function permissionGroups(set) {
|
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
161
|
/**
|
|
162
|
-
*
|
|
162
|
+
* 需要超级管理员处理的状态(后台概览「需要处理的插件」):待批准、待配置、失败、依赖缺失,以及副本不一致
|
|
163
163
|
* (`converging` 收敛中、`pending_migration` 待迁移)。
|
|
164
164
|
*/
|
|
165
165
|
export function extensionNeedsAction(status) {
|
|
@@ -167,7 +167,7 @@ export function extensionNeedsAction(status) {
|
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
169
|
* 由期望状态、快照、配置校验、`migrated_sha` 与各副本状态推出部署级状态,优先级:
|
|
170
|
-
* `failed` > `dependency` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
170
|
+
* `failed` > `dependency` > `conflict` > `pending_approval` > `pending_config` > `pending_migration` > `converging` > `enabled` / `disabled`。
|
|
171
171
|
* - 安装记录只看目标包(`desired.sha256`)的副本行:旧包的失败不算;
|
|
172
172
|
* - 停用的安装记录不看迁移;仍有副本加载着时为 `converging`;
|
|
173
173
|
* - 配置声明始终期望启用。
|
|
@@ -179,6 +179,8 @@ export function deriveExtensionStatus(i) {
|
|
|
179
179
|
return "failed";
|
|
180
180
|
if (rows.some((r) => r.reason === "dependency" && (r.state === "pending" || r.state === "unloaded")))
|
|
181
181
|
return "dependency";
|
|
182
|
+
if (rows.some((r) => r.reason === "conflict" && r.state === "pending"))
|
|
183
|
+
return "conflict";
|
|
182
184
|
if (i.pendingApproval)
|
|
183
185
|
return "pending_approval";
|
|
184
186
|
if (!i.configValid)
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { type PluginSetupGuide, type SetupGuideLanguage, type SetupGuidePlace, type SetupGuideText } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { GuideAckJson } from "../db/kernel-schema.js";
|
|
3
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
4
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
|
+
import { type OrgRole } from "../orgs/roles.js";
|
|
6
|
+
/** The setup guide a channel connection was set up with (`channel_connections.guide_ack`). */
|
|
7
|
+
export type GuideAck = GuideAckJson;
|
|
8
|
+
/** Where a channel page finds its plugin's guide (`GET /orgs/:orgId/catalog/:itemId/guides/:guideId`). */
|
|
9
|
+
export interface SetupGuideRef {
|
|
10
|
+
itemId: string;
|
|
11
|
+
guideId: string;
|
|
12
|
+
/** The item's latest version (the guide's). */
|
|
13
|
+
version: string;
|
|
14
|
+
}
|
|
15
|
+
/** The guide fields of a channel connection page. */
|
|
16
|
+
export interface ConnectionGuideState {
|
|
17
|
+
/** The plugin's channel-connection guide the org may see, null without one. */
|
|
18
|
+
setupGuide: SetupGuideRef | null;
|
|
19
|
+
/**
|
|
20
|
+
* The plugin changed the guide's templates since the connection was set up (its ack): the
|
|
21
|
+
* version acked and the current one; null otherwise (or without an ack).
|
|
22
|
+
*/
|
|
23
|
+
guideDrift: {
|
|
24
|
+
from: string;
|
|
25
|
+
to: string;
|
|
26
|
+
} | null;
|
|
27
|
+
}
|
|
28
|
+
/** A guide rendered for an org (spec 2026-11-08-plugin-setup-guides-design.md §4). */
|
|
29
|
+
export interface RenderedSetupGuide {
|
|
30
|
+
itemId: string;
|
|
31
|
+
plugin: string;
|
|
32
|
+
version: string;
|
|
33
|
+
id: string;
|
|
34
|
+
place: SetupGuidePlace;
|
|
35
|
+
title: SetupGuideText;
|
|
36
|
+
/** The modes the guide's steps and files use; empty = no mode switch. */
|
|
37
|
+
modes: string[];
|
|
38
|
+
/** The mode rendered (null for a guide without modes and no connection). */
|
|
39
|
+
mode: string | null;
|
|
40
|
+
steps: SetupGuideText[];
|
|
41
|
+
files: {
|
|
42
|
+
title: SetupGuideText;
|
|
43
|
+
language: SetupGuideLanguage;
|
|
44
|
+
fileName: string;
|
|
45
|
+
content: string;
|
|
46
|
+
}[];
|
|
47
|
+
/** Known variables without a value here (left as written, e.g. webhookUrl before saving). */
|
|
48
|
+
unresolved: string[];
|
|
49
|
+
/** The template hash of this mode (what an ack records). */
|
|
50
|
+
hash: string;
|
|
51
|
+
}
|
|
52
|
+
type VersionFile = {
|
|
53
|
+
path: string;
|
|
54
|
+
size: number;
|
|
55
|
+
sha256: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* The template hash of a guide for a mode (spec §6): sha256 over `path NUL sha256 LF` of the files
|
|
59
|
+
* that apply to it, from the version's file list (no storage read). Equal hashes = the same
|
|
60
|
+
* rendered files for the same variables.
|
|
61
|
+
*/
|
|
62
|
+
export declare function setupGuideHash(guide: PluginSetupGuide, files: VersionFile[], mode: string | null): string;
|
|
63
|
+
/**
|
|
64
|
+
* Plugin setup guides (spec `2026-11-08-plugin-setup-guides-design.md`): resolves an extension's
|
|
65
|
+
* catalog item (the item of the same name, its latest version), renders a guide's steps and
|
|
66
|
+
* template files with the place's fixed variables (public URLs, names, versions, the mode; never a
|
|
67
|
+
* secret), and computes the template hashes channel connections record to tell when an upgrade
|
|
68
|
+
* changed their setup. Org reads follow the catalog icon's visibility ({@link orgVisibleItems}).
|
|
69
|
+
* Stateless: everything comes from PG (version rows, connection rows, the guide files in
|
|
70
|
+
* `catalog_files`).
|
|
71
|
+
*/
|
|
72
|
+
export declare class PluginGuides {
|
|
73
|
+
private readonly db;
|
|
74
|
+
private readonly config;
|
|
75
|
+
constructor(db: KernelDb, config: Pick<KernelConfigService, "get">);
|
|
76
|
+
/** The live items (with their latest version) by name or id. */
|
|
77
|
+
private latest;
|
|
78
|
+
/**
|
|
79
|
+
* The ack of a plugin's current channel-connection guide for a mode (recorded on a connection
|
|
80
|
+
* when it is created or switches mode); null when the plugin has no catalog item or no guide.
|
|
81
|
+
* Kernel-internal: no org visibility (the connection belongs to the plugin either way).
|
|
82
|
+
*/
|
|
83
|
+
currentAck(plugin: string, mode: string): Promise<GuideAck | null>;
|
|
84
|
+
/**
|
|
85
|
+
* Whether an ack is behind the plugin's current guide (the drift rule of spec §6, as the
|
|
86
|
+
* connection pages compute it): the same guide whose templates for the ack's mode changed. False
|
|
87
|
+
* without an ack, a catalog item or the guide. Kernel-internal: no org visibility.
|
|
88
|
+
*/
|
|
89
|
+
ackDrifted(plugin: string, ack: GuideAck | null): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Plugin name -> its channel-connection guide, for plugins whose item the org's catalog shows
|
|
92
|
+
* (`GET channels/schema/:plugin` and the connection pages); others are absent.
|
|
93
|
+
*/
|
|
94
|
+
channelGuides(names: string[], org: {
|
|
95
|
+
orgId: string;
|
|
96
|
+
role: OrgRole;
|
|
97
|
+
}): Promise<Map<string, SetupGuideRef & {
|
|
98
|
+
guide: PluginSetupGuide;
|
|
99
|
+
files: VersionFile[];
|
|
100
|
+
}>>;
|
|
101
|
+
/** The guide fields of channel connections (one query for all; spec §6 for the drift rule). */
|
|
102
|
+
connectionStates(connections: {
|
|
103
|
+
id: string;
|
|
104
|
+
plugin: string;
|
|
105
|
+
guideAck: GuideAck | null;
|
|
106
|
+
}[], org: {
|
|
107
|
+
orgId: string;
|
|
108
|
+
role: OrgRole;
|
|
109
|
+
}): Promise<Map<string, ConnectionGuideState>>;
|
|
110
|
+
/**
|
|
111
|
+
* Renders a guide for an org (`GET /orgs/:orgId/catalog/:itemId/guides/:guideId`): the item must
|
|
112
|
+
* be one the org's catalog shows (else `catalog.item_not_found`), the guide one its latest
|
|
113
|
+
* version has (else `catalog.guide_not_found`), and the caller must hold the place's action
|
|
114
|
+
* (`channels.manage` for `channel-connection`, else `forbidden`). `connectionId` (a live
|
|
115
|
+
* connection of the org on this plugin, else `channel.not_found`) supplies the connection's name,
|
|
116
|
+
* webhook URL and default mode; `name` stands in for the name on 新建渠道.
|
|
117
|
+
*/
|
|
118
|
+
render(org: {
|
|
119
|
+
orgId: string;
|
|
120
|
+
role: OrgRole;
|
|
121
|
+
}, itemId: string, guideId: string, q: {
|
|
122
|
+
mode?: string | undefined;
|
|
123
|
+
connectionId?: string | undefined;
|
|
124
|
+
name?: string | undefined;
|
|
125
|
+
}): Promise<RenderedSetupGuide>;
|
|
126
|
+
/** A live connection of the org on the plugin; otherwise `channel.not_found`. */
|
|
127
|
+
private connection;
|
|
128
|
+
}
|
|
129
|
+
export {};
|
|
@@ -0,0 +1,283 @@
|
|
|
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 { createHash } from "node:crypto";
|
|
11
|
+
import { renderSetupGuideText, SETUP_GUIDE_MODES, SETUP_GUIDE_VARIABLES, setupGuideFileProblem, setupGuideModes, } from "@capybara-hq/plugin-sdk";
|
|
12
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
13
|
+
import { readCatalogDisplayFiles } from "../catalog/catalog-content.js";
|
|
14
|
+
import { webhookBase, webhookUrlOf } from "../channels/webhook-url.js";
|
|
15
|
+
import { ApiError } from "../errors.js";
|
|
16
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
17
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
18
|
+
import { can, roleAtLeast } from "../orgs/roles.js";
|
|
19
|
+
import { packagePath } from "../packages/tgz.js";
|
|
20
|
+
import { orgVisibleItems } from "./plugin-icons.js";
|
|
21
|
+
/** The org action each place's page needs besides `catalog.read`. */
|
|
22
|
+
const PLACE_ACTION = {
|
|
23
|
+
"channel-connection": "channels.manage",
|
|
24
|
+
};
|
|
25
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
26
|
+
const itemNotFound = () => new ApiError("catalog.item_not_found", "Catalog item not found");
|
|
27
|
+
const guideNotFound = () => new ApiError("catalog.guide_not_found", "The plugin has no such setup guide");
|
|
28
|
+
/** The items of a guide (steps or files) that apply to a mode: those without one, and its own. */
|
|
29
|
+
const forMode = (items, mode) => (items ?? []).filter((x) => x.mode === undefined || x.mode === mode);
|
|
30
|
+
/**
|
|
31
|
+
* The template hash of a guide for a mode (spec §6): sha256 over `path NUL sha256 LF` of the files
|
|
32
|
+
* that apply to it, from the version's file list (no storage read). Equal hashes = the same
|
|
33
|
+
* rendered files for the same variables.
|
|
34
|
+
*/
|
|
35
|
+
export function setupGuideHash(guide, files, mode) {
|
|
36
|
+
const h = createHash("sha256");
|
|
37
|
+
for (const f of forMode(guide.files, mode)) {
|
|
38
|
+
const path = packagePath(f.path);
|
|
39
|
+
h.update(`${path}\0${files.find((x) => x.path === path)?.sha256 ?? "missing"}\n`);
|
|
40
|
+
}
|
|
41
|
+
return h.digest("hex");
|
|
42
|
+
}
|
|
43
|
+
/** A plugin's guide for a place: its first one there (a plugin normally has one per place). */
|
|
44
|
+
const guideOf = (manifest, place) => (manifest.setupGuides ?? []).find((g) => g.place === place);
|
|
45
|
+
/**
|
|
46
|
+
* Plugin setup guides (spec `2026-11-08-plugin-setup-guides-design.md`): resolves an extension's
|
|
47
|
+
* catalog item (the item of the same name, its latest version), renders a guide's steps and
|
|
48
|
+
* template files with the place's fixed variables (public URLs, names, versions, the mode; never a
|
|
49
|
+
* secret), and computes the template hashes channel connections record to tell when an upgrade
|
|
50
|
+
* changed their setup. Org reads follow the catalog icon's visibility ({@link orgVisibleItems}).
|
|
51
|
+
* Stateless: everything comes from PG (version rows, connection rows, the guide files in
|
|
52
|
+
* `catalog_files`).
|
|
53
|
+
*/
|
|
54
|
+
let PluginGuides = class PluginGuides {
|
|
55
|
+
db;
|
|
56
|
+
config;
|
|
57
|
+
constructor(db, config) {
|
|
58
|
+
this.db = db;
|
|
59
|
+
this.config = config;
|
|
60
|
+
}
|
|
61
|
+
/** The live items (with their latest version) by name or id. */
|
|
62
|
+
latest(by, keys) {
|
|
63
|
+
return this.db
|
|
64
|
+
.selectFrom("catalog_items as i")
|
|
65
|
+
.innerJoin("catalog_item_versions as v", (j) => j.onRef("v.item_id", "=", "i.id").onRef("v.version", "=", "i.latest_version"))
|
|
66
|
+
.select([
|
|
67
|
+
"i.id",
|
|
68
|
+
"i.name",
|
|
69
|
+
"i.scope",
|
|
70
|
+
"i.builtin",
|
|
71
|
+
"i.disabled",
|
|
72
|
+
"i.shown_to_others",
|
|
73
|
+
"i.owner_org_id",
|
|
74
|
+
"i.shareable",
|
|
75
|
+
"i.awaiting_confirmation",
|
|
76
|
+
"i.latest_version",
|
|
77
|
+
"v.manifest",
|
|
78
|
+
"v.files",
|
|
79
|
+
])
|
|
80
|
+
.where(by === "name" ? "i.name" : "i.id", "in", [...new Set(keys)])
|
|
81
|
+
.where("i.deleted_at", "is", null)
|
|
82
|
+
.execute();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The ack of a plugin's current channel-connection guide for a mode (recorded on a connection
|
|
86
|
+
* when it is created or switches mode); null when the plugin has no catalog item or no guide.
|
|
87
|
+
* Kernel-internal: no org visibility (the connection belongs to the plugin either way).
|
|
88
|
+
*/
|
|
89
|
+
async currentAck(plugin, mode) {
|
|
90
|
+
const [row] = await this.latest("name", [plugin]);
|
|
91
|
+
const guide = row && guideOf(row.manifest, "channel-connection");
|
|
92
|
+
if (!row || !guide)
|
|
93
|
+
return null;
|
|
94
|
+
return {
|
|
95
|
+
guideId: guide.id,
|
|
96
|
+
version: row.latest_version,
|
|
97
|
+
hash: setupGuideHash(guide, row.files, mode),
|
|
98
|
+
mode,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Whether an ack is behind the plugin's current guide (the drift rule of spec §6, as the
|
|
103
|
+
* connection pages compute it): the same guide whose templates for the ack's mode changed. False
|
|
104
|
+
* without an ack, a catalog item or the guide. Kernel-internal: no org visibility.
|
|
105
|
+
*/
|
|
106
|
+
async ackDrifted(plugin, ack) {
|
|
107
|
+
if (ack === null)
|
|
108
|
+
return false;
|
|
109
|
+
const current = await this.currentAck(plugin, ack.mode);
|
|
110
|
+
return current !== null && current.guideId === ack.guideId && current.hash !== ack.hash;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Plugin name -> its channel-connection guide, for plugins whose item the org's catalog shows
|
|
114
|
+
* (`GET channels/schema/:plugin` and the connection pages); others are absent.
|
|
115
|
+
*/
|
|
116
|
+
async channelGuides(names, org) {
|
|
117
|
+
const out = new Map();
|
|
118
|
+
if (names.length === 0)
|
|
119
|
+
return out;
|
|
120
|
+
const rows = (await this.latest("name", names)).filter((r) => guideOf(r.manifest, "channel-connection") !== undefined);
|
|
121
|
+
const visible = await orgVisibleItems(this.db, rows, org.orgId, roleAtLeast(org.role, "admin"));
|
|
122
|
+
for (const r of visible) {
|
|
123
|
+
const guide = guideOf(r.manifest, "channel-connection");
|
|
124
|
+
out.set(r.name, {
|
|
125
|
+
itemId: r.id,
|
|
126
|
+
guideId: guide.id,
|
|
127
|
+
version: r.latest_version,
|
|
128
|
+
guide,
|
|
129
|
+
files: r.files,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
/** The guide fields of channel connections (one query for all; spec §6 for the drift rule). */
|
|
135
|
+
async connectionStates(connections, org) {
|
|
136
|
+
const guides = await this.channelGuides(connections.map((c) => c.plugin), org);
|
|
137
|
+
const out = new Map();
|
|
138
|
+
for (const c of connections) {
|
|
139
|
+
const g = guides.get(c.plugin);
|
|
140
|
+
const ack = c.guideAck;
|
|
141
|
+
const drifted = g !== undefined &&
|
|
142
|
+
ack !== null &&
|
|
143
|
+
ack.guideId === g.guideId &&
|
|
144
|
+
setupGuideHash(g.guide, g.files, ack.mode) !== ack.hash;
|
|
145
|
+
out.set(c.id, {
|
|
146
|
+
setupGuide: g ? { itemId: g.itemId, guideId: g.guideId, version: g.version } : null,
|
|
147
|
+
guideDrift: drifted ? { from: ack.version, to: g.version } : null,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Renders a guide for an org (`GET /orgs/:orgId/catalog/:itemId/guides/:guideId`): the item must
|
|
154
|
+
* be one the org's catalog shows (else `catalog.item_not_found`), the guide one its latest
|
|
155
|
+
* version has (else `catalog.guide_not_found`), and the caller must hold the place's action
|
|
156
|
+
* (`channels.manage` for `channel-connection`, else `forbidden`). `connectionId` (a live
|
|
157
|
+
* connection of the org on this plugin, else `channel.not_found`) supplies the connection's name,
|
|
158
|
+
* webhook URL and default mode; `name` stands in for the name on 新建渠道.
|
|
159
|
+
*/
|
|
160
|
+
async render(org, itemId, guideId, q) {
|
|
161
|
+
if (!UUID_RE.test(itemId))
|
|
162
|
+
throw itemNotFound();
|
|
163
|
+
const rows = await this.latest("id", [itemId]);
|
|
164
|
+
const [row] = await orgVisibleItems(this.db, rows, org.orgId, roleAtLeast(org.role, "admin"));
|
|
165
|
+
if (!row)
|
|
166
|
+
throw itemNotFound();
|
|
167
|
+
const guide = (row.manifest.setupGuides ?? []).find((g) => g.id === guideId);
|
|
168
|
+
if (!guide)
|
|
169
|
+
throw guideNotFound();
|
|
170
|
+
if (!can(org.role, PLACE_ACTION[guide.place])) {
|
|
171
|
+
throw new ApiError("forbidden", "Insufficient organization role");
|
|
172
|
+
}
|
|
173
|
+
if (q.mode !== undefined && !SETUP_GUIDE_MODES[guide.place].includes(q.mode)) {
|
|
174
|
+
throw new ApiError("validation_failed", "Request validation failed", [
|
|
175
|
+
{
|
|
176
|
+
path: "mode",
|
|
177
|
+
message: `mode must be one of ${SETUP_GUIDE_MODES[guide.place].join(", ")}`,
|
|
178
|
+
},
|
|
179
|
+
]);
|
|
180
|
+
}
|
|
181
|
+
const connection = q.connectionId === undefined
|
|
182
|
+
? undefined
|
|
183
|
+
: await this.connection(org.orgId, row.name, q.connectionId);
|
|
184
|
+
const modes = setupGuideModes(guide);
|
|
185
|
+
const mode = q.mode ?? connection?.inbound_mode ?? modes[0] ?? null;
|
|
186
|
+
const cfg = this.config.get();
|
|
187
|
+
const publicUrl = cfg.http.publicUrl?.replace(/\/+$/, "") ?? null;
|
|
188
|
+
const base = webhookBase(cfg);
|
|
189
|
+
const orgRow = await this.db
|
|
190
|
+
.selectFrom("orgs")
|
|
191
|
+
.select("name")
|
|
192
|
+
.where("id", "=", org.orgId)
|
|
193
|
+
.executeTakeFirst();
|
|
194
|
+
const values = {
|
|
195
|
+
publicUrl,
|
|
196
|
+
webhookUrl: connection && base !== undefined ? webhookUrlOf(base, connection.id) : null,
|
|
197
|
+
signInCallbackUrl: publicUrl === null
|
|
198
|
+
? null
|
|
199
|
+
: `${publicUrl}/api/v1/auth/sso/${encodeURIComponent(row.name)}/callback`,
|
|
200
|
+
connectionName: connection?.name ?? q.name?.trim() ?? null,
|
|
201
|
+
orgName: orgRow?.name ?? null,
|
|
202
|
+
pluginName: row.name,
|
|
203
|
+
pluginVersion: row.latest_version,
|
|
204
|
+
mode,
|
|
205
|
+
};
|
|
206
|
+
if (values.connectionName === "")
|
|
207
|
+
values.connectionName = null;
|
|
208
|
+
const known = SETUP_GUIDE_VARIABLES[guide.place];
|
|
209
|
+
const unresolved = new Set();
|
|
210
|
+
const render = (text, language) => {
|
|
211
|
+
const r = renderSetupGuideText(text, values, language, known);
|
|
212
|
+
for (const u of r.unresolved)
|
|
213
|
+
unresolved.add(u);
|
|
214
|
+
return r.text;
|
|
215
|
+
};
|
|
216
|
+
const localized = (t, language) => ({
|
|
217
|
+
en: render(t.en, language),
|
|
218
|
+
...(t.zh !== undefined && { zh: render(t.zh, language) }),
|
|
219
|
+
});
|
|
220
|
+
const versionFiles = row.files;
|
|
221
|
+
const selected = forMode(guide.files, mode);
|
|
222
|
+
const metas = selected.map((f) => {
|
|
223
|
+
const path = packagePath(f.path);
|
|
224
|
+
const meta = versionFiles.find((x) => x.path === path);
|
|
225
|
+
// stored at import with the version; a missing one means tampered or lost storage
|
|
226
|
+
if (!meta)
|
|
227
|
+
throw new ApiError("internal", `Setup guide file ${path} is not stored`);
|
|
228
|
+
return meta;
|
|
229
|
+
});
|
|
230
|
+
const stored = await readCatalogDisplayFiles(this.db, metas);
|
|
231
|
+
const files = selected.map((f) => {
|
|
232
|
+
const path = packagePath(f.path);
|
|
233
|
+
const data = stored.find((x) => x.path === path)?.data;
|
|
234
|
+
const problem = setupGuideFileProblem(path, data);
|
|
235
|
+
if (problem !== undefined) {
|
|
236
|
+
throw new ApiError("internal", `Stored setup guide file is invalid: ${problem}`);
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
title: f.title,
|
|
240
|
+
language: f.language,
|
|
241
|
+
fileName: path.split("/").pop().replace(/\.tmpl$/i, ""),
|
|
242
|
+
content: render(new TextDecoder().decode(data), f.language),
|
|
243
|
+
};
|
|
244
|
+
});
|
|
245
|
+
return {
|
|
246
|
+
itemId: row.id,
|
|
247
|
+
plugin: row.name,
|
|
248
|
+
version: row.latest_version,
|
|
249
|
+
id: guide.id,
|
|
250
|
+
place: guide.place,
|
|
251
|
+
title: guide.title,
|
|
252
|
+
modes,
|
|
253
|
+
mode,
|
|
254
|
+
steps: forMode(guide.steps, mode).map((s) => localized({ en: s.en, ...(s.zh !== undefined && { zh: s.zh }) }, "text")),
|
|
255
|
+
files,
|
|
256
|
+
unresolved: known.filter((k) => unresolved.has(k)),
|
|
257
|
+
hash: setupGuideHash(guide, versionFiles, mode),
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
/** A live connection of the org on the plugin; otherwise `channel.not_found`. */
|
|
261
|
+
async connection(orgId, plugin, id) {
|
|
262
|
+
const notFound = () => new ApiError("channel.not_found", "Channel connection not found");
|
|
263
|
+
if (!UUID_RE.test(id))
|
|
264
|
+
throw notFound();
|
|
265
|
+
const c = await this.db
|
|
266
|
+
.selectFrom("channel_connections")
|
|
267
|
+
.select(["id", "name", "inbound_mode"])
|
|
268
|
+
.where("id", "=", id)
|
|
269
|
+
.where("org_id", "=", orgId)
|
|
270
|
+
.where("plugin", "=", plugin)
|
|
271
|
+
.where("deleted_at", "is", null)
|
|
272
|
+
.executeTakeFirst();
|
|
273
|
+
if (!c)
|
|
274
|
+
throw notFound();
|
|
275
|
+
return c;
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
PluginGuides = __decorate([
|
|
279
|
+
Injectable(),
|
|
280
|
+
__param(0, Inject(KernelDb)),
|
|
281
|
+
__param(1, Inject(KernelConfigService))
|
|
282
|
+
], PluginGuides);
|
|
283
|
+
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
|
+
}
|