@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.10
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 +92 -8
- 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 +57 -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 +232 -0
- package/dist/catalog/catalog-content.js +367 -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 +676 -0
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1124 -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 +141 -206
- package/dist/catalog/catalog.service.js +237 -528
- package/dist/catalog/claude/agents.js +15 -10
- 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 +114 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +327 -0
- package/dist/catalog/component-scope.service.js +990 -0
- package/dist/catalog/component-state.d.ts +188 -0
- package/dist/catalog/component-state.js +455 -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 +431 -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 +801 -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 +223 -0
- package/dist/catalog/platform-components.js +763 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +270 -68
- package/dist/catalog/plugin-import.js +1004 -277
- package/dist/catalog/plugin-install.d.ts +251 -65
- package/dist/catalog/plugin-install.js +1128 -344
- package/dist/catalog/plugin-package.js +14 -1
- package/dist/catalog/plugin-upgrade.d.ts +301 -188
- package/dist/catalog/plugin-upgrade.js +1256 -1068
- 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 +118 -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 -201
- 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 +51 -3
- package/dist/config/schema.js +269 -27
- 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 -70
- 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/queue.js +3 -2
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +550 -25
- 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 +136 -2
- package/dist/errors.js +136 -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 -123
- 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 +136 -46
- package/dist/extensions/bootstrap.js +417 -167
- 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 +86 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +83 -52
- 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 +130 -38
- package/dist/identity/accounts.js +373 -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 +78 -33
- package/dist/identity/me.schemas.d.ts +14 -0
- package/dist/identity/me.schemas.js +17 -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 +42 -23
- package/dist/identity/settings.js +137 -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 +25 -14
- package/dist/index.js +20 -9
- 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 -241
- 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-config.d.ts +9 -0
- package/dist/log-config.js +27 -0
- package/dist/log-context.d.ts +34 -0
- package/dist/log-context.js +44 -0
- package/dist/log-loki.d.ts +34 -0
- package/dist/log-loki.js +145 -0
- package/dist/log.d.ts +53 -10
- package/dist/log.js +168 -18
- 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/net/public-address.js +3 -2
- 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 +45 -14
- package/dist/orgs/settings.service.js +110 -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 +667 -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 +90 -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 +36 -0
- package/dist/platform/ops/admin.ops.js +389 -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 +853 -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 +16 -0
- package/dist/platform/ops/org-settings.ops.js +102 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +295 -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 +28 -0
- package/dist/platform/ops/platform.ops.js +204 -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/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 +39 -0
- package/dist/platform/platform-ops.module.js +122 -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 +63 -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 -136
- 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 -236
- 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 -180
- 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/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 +142 -40
- package/dist/tools/builtins/sandbox/common.js +227 -65
- 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 +15 -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/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
|
@@ -13,16 +13,21 @@ import { item } from "./report.js";
|
|
|
13
13
|
export const GENERATED_AGENTS_DIR = ".capybara-generated/agents";
|
|
14
14
|
/** Claude Code tool names -> Capybara tool keys (spec §16.4; anything else is dropped). */
|
|
15
15
|
const TOOL_MAP = {
|
|
16
|
-
Bash: "
|
|
17
|
-
Read: "
|
|
18
|
-
Write: "
|
|
19
|
-
Edit: "
|
|
20
|
-
MultiEdit: "
|
|
21
|
-
Glob: "
|
|
22
|
-
Grep: "
|
|
23
|
-
Skill: "
|
|
24
|
-
|
|
25
|
-
ToolSearch: "
|
|
16
|
+
Bash: "Bash",
|
|
17
|
+
Read: "Read",
|
|
18
|
+
Write: "Write",
|
|
19
|
+
Edit: "Edit",
|
|
20
|
+
MultiEdit: "Edit",
|
|
21
|
+
Glob: "Glob",
|
|
22
|
+
Grep: "Grep",
|
|
23
|
+
Skill: "Skill",
|
|
24
|
+
AskUserQuestion: "AskUserQuestion",
|
|
25
|
+
ToolSearch: "ToolSearch",
|
|
26
|
+
Agent: "Agent",
|
|
27
|
+
Task: "Agent",
|
|
28
|
+
TodoWrite: "plugin__todo__write",
|
|
29
|
+
WebFetch: "WebFetch",
|
|
30
|
+
WebSearch: "WebSearch",
|
|
26
31
|
};
|
|
27
32
|
/** Claude ignores these for plugin agents: `not_applicable`. */
|
|
28
33
|
const NOT_APPLICABLE = new Set(["permissionMode", "hooks", "mcpServers"]);
|
package/dist/catalog/cli.d.ts
CHANGED
|
@@ -4,11 +4,21 @@ import { type ExtensionCli } from "../extensions/cli.js";
|
|
|
4
4
|
import type { KernelLogger } from "../log.js";
|
|
5
5
|
import { CatalogService } from "./catalog.service.js";
|
|
6
6
|
import { PluginImport } from "./plugin-import.js";
|
|
7
|
+
import type { PluginScope } from "./scope.js";
|
|
7
8
|
/** {@link openCatalogCli}'s result: the extension CLI context plus the catalog services. */
|
|
8
9
|
export interface CatalogCli extends ExtensionCli {
|
|
9
10
|
catalog: CatalogService;
|
|
10
11
|
/** Plugin import (prepare / confirm). The CLI acts without an account (actor `null`). */
|
|
11
12
|
imports: PluginImport;
|
|
13
|
+
/**
|
|
14
|
+
* After an import's confirm: enqueues the item's plugin scope sync, as the admin console's
|
|
15
|
+
* confirm does, when its scope turns it on by itself (`all` or `named`). A failure only warns
|
|
16
|
+
* (the next worker start enqueues every item); returns whether it was enqueued.
|
|
17
|
+
*/
|
|
18
|
+
enqueueScopeSync(item: {
|
|
19
|
+
id: string;
|
|
20
|
+
scope: PluginScope;
|
|
21
|
+
}): Promise<boolean>;
|
|
12
22
|
}
|
|
13
23
|
/** What the CLI can do with the deployment's object store, and why not when it cannot. */
|
|
14
24
|
export type CliObjectStore = {
|
|
@@ -32,9 +42,10 @@ export type CliObjectStore = {
|
|
|
32
42
|
*/
|
|
33
43
|
export declare function loadCliObjectStore(cli: Pick<ExtensionCli, "inspected" | "deploymentConfigs" | "deploymentConfigOf" | "approvals" | "config" | "configIssues" | "installs" | "packageSet" | "readPackage">, log: Pick<KernelLogger, "warn">, syncDir: string): Promise<CliObjectStore>;
|
|
34
44
|
/**
|
|
35
|
-
* The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli}
|
|
36
|
-
* {@link PluginImport} and {@link CatalogService}
|
|
37
|
-
*
|
|
45
|
+
* The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli} with the
|
|
46
|
+
* catalog's {@link CatalogImportModule}, so {@link PluginImport} and {@link CatalogService} are the
|
|
47
|
+
* kernel's providers. Imports run with actor `null` (the operator of the
|
|
48
|
+
* deployment, like `capybara extensions install`: no super-admin re-check, audits without an
|
|
38
49
|
* actor, permission snapshots written with source `cli`). Files of the plugin (skills, connector
|
|
39
50
|
* templates, icons) go to the deployment's object store, set up in-process from the declared or
|
|
40
51
|
* installed object-store extension (see {@link loadCliObjectStore}; an installed package is synced
|
package/dist/catalog/cli.js
CHANGED
|
@@ -8,10 +8,15 @@ import { openExtensionCli } from "../extensions/cli.js";
|
|
|
8
8
|
import { assertSecretsReachable } from "../extensions/host.js";
|
|
9
9
|
import { importExtensionModule, matchesSection } from "../extensions/instance.js";
|
|
10
10
|
import { packageRootOf, syncPackage } from "../extensions/sync.js";
|
|
11
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
12
|
+
import { addJobOnce } from "../infra/queue/add-job-once.js";
|
|
13
|
+
import { REDIS } from "../infra/tokens.js";
|
|
11
14
|
import { packagePath } from "../packages/tgz.js";
|
|
12
|
-
import {
|
|
15
|
+
import { PrefixedStorage } from "../storage/storage.service.js";
|
|
16
|
+
import { CatalogImportModule } from "./catalog.module.js";
|
|
13
17
|
import { CatalogService } from "./catalog.service.js";
|
|
14
18
|
import { PluginImport } from "./plugin-import.js";
|
|
19
|
+
import { PLUGIN_SCOPE_QUEUE, scopeItemJob } from "./scope-sync.js";
|
|
15
20
|
/**
|
|
16
21
|
* Sets up the deployment's object-store extension inside the CLI process. The CLI hosts no
|
|
17
22
|
* extensions, so this runs only the provider's `setup` with a context that offers `config` and
|
|
@@ -131,7 +136,7 @@ export async function loadCliObjectStore(cli, log, syncDir) {
|
|
|
131
136
|
return { store: undefined, reason: reasons.join("; ") };
|
|
132
137
|
}
|
|
133
138
|
/** `storage.unavailable` with the CLI's constraint spelled out (the generic text points to a plugin install). */
|
|
134
|
-
class CliStorage extends
|
|
139
|
+
class CliStorage extends PrefixedStorage {
|
|
135
140
|
reason;
|
|
136
141
|
constructor(deps, reason) {
|
|
137
142
|
super(deps);
|
|
@@ -144,9 +149,10 @@ class CliStorage extends StorageService {
|
|
|
144
149
|
}
|
|
145
150
|
}
|
|
146
151
|
/**
|
|
147
|
-
* The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli}
|
|
148
|
-
* {@link PluginImport} and {@link CatalogService}
|
|
149
|
-
*
|
|
152
|
+
* The CLI's plugin catalog context (`capybara plugins *`): {@link openExtensionCli} with the
|
|
153
|
+
* catalog's {@link CatalogImportModule}, so {@link PluginImport} and {@link CatalogService} are the
|
|
154
|
+
* kernel's providers. Imports run with actor `null` (the operator of the
|
|
155
|
+
* deployment, like `capybara extensions install`: no super-admin re-check, audits without an
|
|
150
156
|
* actor, permission snapshots written with source `cli`). Files of the plugin (skills, connector
|
|
151
157
|
* templates, icons) go to the deployment's object store, set up in-process from the declared or
|
|
152
158
|
* installed object-store extension (see {@link loadCliObjectStore}; an installed package is synced
|
|
@@ -154,7 +160,7 @@ class CliStorage extends StorageService {
|
|
|
154
160
|
* plugin does not bring are checked statically only (the CLI loads no connector).
|
|
155
161
|
*/
|
|
156
162
|
export async function openCatalogCli(config, log, opts = {}) {
|
|
157
|
-
const cli = await openExtensionCli(config, log, opts);
|
|
163
|
+
const cli = await openExtensionCli(config, log, { ...opts, modules: [CatalogImportModule] });
|
|
158
164
|
let syncDir;
|
|
159
165
|
const removeSyncDir = async () => {
|
|
160
166
|
if (syncDir !== undefined)
|
|
@@ -167,36 +173,37 @@ export async function openCatalogCli(config, log, opts = {}) {
|
|
|
167
173
|
provider: () => store,
|
|
168
174
|
plugins: async () => cli.inspected.map((p) => p.manifest.name),
|
|
169
175
|
}, "reason" in rest ? rest.reason : undefined);
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
declared: () => declared,
|
|
179
|
-
// The CLI loads no connectors: templates get static checks only (the org install re-checks)
|
|
180
|
-
findConnector: () => undefined,
|
|
181
|
-
connectorsLoaded: false,
|
|
182
|
-
log,
|
|
183
|
-
});
|
|
184
|
-
const catalog = new CatalogService({
|
|
185
|
-
db: cli.db,
|
|
186
|
-
config: () => config,
|
|
187
|
-
installs: cli.installs,
|
|
188
|
-
ops: cli.ops,
|
|
189
|
-
pluginImport: imports,
|
|
190
|
-
// Unreachable from the CLI: only marketplace imports (CatalogService.importFromMarketplace)
|
|
191
|
-
// download archives, and the CLI offers file, npm and direct git imports only.
|
|
192
|
-
fetchArchive: () => Promise.reject(new ApiError("internal", "marketplace imports are not available in the CLI")),
|
|
193
|
-
// Only marketplace imports send a marketplace token; a direct git import has none
|
|
194
|
-
marketplaceToken: async () => undefined,
|
|
195
|
-
});
|
|
176
|
+
// Plugin files go to that store; connector templates get static checks only (the CLI loads
|
|
177
|
+
// no connector; the org install re-checks them). Config-declared names come from the
|
|
178
|
+
// inspection (the registry), marketplace imports are not offered by the CLI.
|
|
179
|
+
const imports = cli.app.get(PluginImport);
|
|
180
|
+
imports.useCliStorage(storage);
|
|
181
|
+
const catalog = cli.app.get(CatalogService);
|
|
182
|
+
const db = cli.app.get(KernelDb);
|
|
183
|
+
const redis = cli.app.get(REDIS);
|
|
196
184
|
return {
|
|
197
185
|
...cli,
|
|
198
186
|
catalog,
|
|
199
187
|
imports,
|
|
188
|
+
async enqueueScopeSync(item) {
|
|
189
|
+
if (item.scope === "optional")
|
|
190
|
+
return false;
|
|
191
|
+
try {
|
|
192
|
+
const row = await db.db
|
|
193
|
+
.selectFrom("catalog_items")
|
|
194
|
+
.select("scope_version")
|
|
195
|
+
.where("id", "=", item.id)
|
|
196
|
+
.executeTakeFirst();
|
|
197
|
+
if (!row)
|
|
198
|
+
return false;
|
|
199
|
+
await addJobOnce(redis, PLUGIN_SCOPE_QUEUE, scopeItemJob(item.id, row.scope_version));
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
log.warn("cannot enqueue the plugin scope sync; the next worker start converges the orgs", { itemId: item.id, err });
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
},
|
|
200
207
|
async close() {
|
|
201
208
|
await cli.close();
|
|
202
209
|
await removeSyncDir();
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
2
|
+
import { ApiError } from "../errors.js";
|
|
3
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
|
+
import { StorageService } from "../storage/storage.service.js";
|
|
6
|
+
/** The kinds an org owns as rows of its own (connector templates have none). */
|
|
7
|
+
export type PromotableKind = "skill" | "agent_template";
|
|
8
|
+
/**
|
|
9
|
+
* An org's own skill (org scope) or agent template, as the admin component routes see it: not
|
|
10
|
+
* linked (`link` null), or linked to a platform row the same org owns (`link`: that row, already
|
|
11
|
+
* promoted). A copy linked to a platform row of another owner is never an `OrgRow`.
|
|
12
|
+
*/
|
|
13
|
+
export interface OrgRow {
|
|
14
|
+
kind: PromotableKind;
|
|
15
|
+
id: string;
|
|
16
|
+
orgId: string;
|
|
17
|
+
name: string;
|
|
18
|
+
/** The roster plugin of an agent template (null: a bare `<name>`); null for skills. */
|
|
19
|
+
plugin: string | null;
|
|
20
|
+
version: number;
|
|
21
|
+
shareable: boolean;
|
|
22
|
+
/** The platform row the org promoted it to, or null while it is an org row only. */
|
|
23
|
+
link: string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Content the org created itself (ruling P3-46): a skill without plugin provenance
|
|
26
|
+
* (`catalog_item_id` null); an agent template without a plugin and a catalog item (an org
|
|
27
|
+
* template saved from an agent, ruling P4-13). Anything else is refused with 409
|
|
28
|
+
* `catalog.not_owned`.
|
|
29
|
+
*/
|
|
30
|
+
ownable: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** A promotion whose files are copied ({@link ComponentPromotion.prepare}), waiting for its rows. */
|
|
33
|
+
export interface PreparedPromotion {
|
|
34
|
+
readonly kind: PromotableKind;
|
|
35
|
+
readonly orgRowId: string;
|
|
36
|
+
readonly orgId: string;
|
|
37
|
+
/** The platform id it gets (the existing one when the row is promoted already). */
|
|
38
|
+
readonly platformId: string;
|
|
39
|
+
/** The org row's version the files were copied from. */
|
|
40
|
+
readonly version: number;
|
|
41
|
+
readonly already: boolean;
|
|
42
|
+
/** Where the files were copied (a fresh prefix, ruling P3-45); null: nothing copied. */
|
|
43
|
+
readonly prefix: string | null;
|
|
44
|
+
}
|
|
45
|
+
/** The org row changed between {@link ComponentPromotion.prepare} and its transaction: prepare again. */
|
|
46
|
+
export declare class PromotionStale extends Error {
|
|
47
|
+
}
|
|
48
|
+
/** How many times a caller prepares again after {@link PromotionStale}. */
|
|
49
|
+
export declare const PROMOTION_ATTEMPTS = 3;
|
|
50
|
+
/** 409 `catalog.not_owned`: only the org's own rows can be shared (P3-6). */
|
|
51
|
+
export declare function notOwnedError(what: string): ApiError;
|
|
52
|
+
/** 409 `component.version_stale`: the org row kept changing while it was being promoted. */
|
|
53
|
+
export declare const promotionStaleError: () => ApiError;
|
|
54
|
+
/**
|
|
55
|
+
* Promotes an org's own skill or agent template to a platform row when it is first shared
|
|
56
|
+
* (ruling P3-3). Stateless, shared by every replica.
|
|
57
|
+
*/
|
|
58
|
+
export declare class ComponentPromotion {
|
|
59
|
+
private readonly kdb;
|
|
60
|
+
/** Where files are read and written (the kernel's object storage). */
|
|
61
|
+
private readonly files;
|
|
62
|
+
readonly txHost: TransactionHost;
|
|
63
|
+
constructor(kdb: KernelDb,
|
|
64
|
+
/** Where files are read and written (the kernel's object storage). */
|
|
65
|
+
files: StorageService, txHost: TransactionHost);
|
|
66
|
+
private get db();
|
|
67
|
+
/**
|
|
68
|
+
* The live org row `id` of `kind` (an org-scope skill, an agent template) of a live org, when it
|
|
69
|
+
* is the org's own (see {@link OrgRow}); undefined otherwise.
|
|
70
|
+
*/
|
|
71
|
+
orgRow(kind: PromotableKind, id: string, forUpdate?: boolean): Promise<OrgRow | undefined>;
|
|
72
|
+
/**
|
|
73
|
+
* The first phase, outside any transaction: reads the org row and (a skill) copies its current
|
|
74
|
+
* version's files to `deployment/platform/skills/<platformId>/<version>/`, checking each file
|
|
75
|
+
* against the manifest. A row promoted already needs nothing. A failed copy throws and nothing is
|
|
76
|
+
* linked (the copied files stay unreferenced). Missing or not the org's own -> 404.
|
|
77
|
+
*/
|
|
78
|
+
prepare(kind: PromotableKind, orgRowId: string): Promise<PreparedPromotion>;
|
|
79
|
+
/** Deletes a prepared promotion's files after its transaction failed (best effort, P3-45). */
|
|
80
|
+
discard(p: PreparedPromotion): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* The second phase, in the caller's transaction: re-reads the org row under its lock (after the
|
|
83
|
+
* org row, so an org deletion is serialized), checks the share gate on it (409
|
|
84
|
+
* `catalog.not_shareable`) and writes the platform row (`current_version` = the org row's, one
|
|
85
|
+
* version row at that number), its list `[owner]`, and the link (no pin). Idempotent: a row the
|
|
86
|
+
* org promoted already returns its platform id. A version written since {@link prepare} ->
|
|
87
|
+
* {@link PromotionStale}; a live platform row of the same name created in this org already (a
|
|
88
|
+
* shared item whose owner deleted it and then made a new one) -> 409 `plugin.skill_conflict`.
|
|
89
|
+
* Audits `component.promoted`. Returns the platform id.
|
|
90
|
+
*/
|
|
91
|
+
promote(p: PreparedPromotion, actor: string | null): Promise<string>;
|
|
92
|
+
/** Copies the skill's current version files to its platform prefix (outside any transaction). */
|
|
93
|
+
private copySkillFiles;
|
|
94
|
+
}
|
|
95
|
+
/** {@link ComponentPromotion.orgRow} through `db` (readers outside the provider). */
|
|
96
|
+
export declare function readOrgRow(db: KernelSchemaDb, kind: PromotableKind, id: string, forUpdate?: boolean): Promise<OrgRow | undefined>;
|
|
@@ -0,0 +1,395 @@
|
|
|
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
|
+
// Promote on share (plugin scope phase 3, spec §14, rulings P3-3 to P3-6, P3-23): an org's own
|
|
11
|
+
// skill or agent template stays an org row (`skills` / `agent_templates`) until the super admin
|
|
12
|
+
// first shows it to other orgs or associates it with one. That action promotes it, in its own
|
|
13
|
+
// transaction: a platform row owned by the org (`owner_org_id` = `origin_org_id` = the org,
|
|
14
|
+
// `scope_mode own`, `named: [owner]`, `shown_to_others false`) at the org row's version number,
|
|
15
|
+
// and the org row linked to it without a pin (ruling B2). The owner's agents keep referencing the
|
|
16
|
+
// org row's id; `skills/usable.ts` and `agents/templates.ts` serve that row its own stored version
|
|
17
|
+
// while it is the platform row's current one, so nothing the owner's agents see changes (no
|
|
18
|
+
// "Updated skills" line, same `subagent_started` reference). Other orgs reference the platform id.
|
|
19
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
20
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
21
|
+
import { sql } from "kysely";
|
|
22
|
+
import { ApiError } from "../errors.js";
|
|
23
|
+
import { audit } from "../identity/audit.js";
|
|
24
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
25
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
26
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
27
|
+
import { StorageService } from "../storage/storage.service.js";
|
|
28
|
+
import { putCatalogFiles } from "./catalog-items.js";
|
|
29
|
+
import { platformSkillPrefix, uniqueVersionPrefix } from "./platform-components.js";
|
|
30
|
+
/** The org row changed between {@link ComponentPromotion.prepare} and its transaction: prepare again. */
|
|
31
|
+
export class PromotionStale extends Error {
|
|
32
|
+
}
|
|
33
|
+
/** How many times a caller prepares again after {@link PromotionStale}. */
|
|
34
|
+
export const PROMOTION_ATTEMPTS = 3;
|
|
35
|
+
const notFound = () => new ApiError("component.not_found", "Component not found");
|
|
36
|
+
/** 409 `catalog.not_owned`: only the org's own rows can be shared (P3-6). */
|
|
37
|
+
export function notOwnedError(what) {
|
|
38
|
+
return new ApiError("catalog.not_owned", `${what} is not this organization's own: only its own org skills and agent templates can be shared`);
|
|
39
|
+
}
|
|
40
|
+
/** 409 `component.version_stale`: the org row kept changing while it was being promoted. */
|
|
41
|
+
export const promotionStaleError = () => new ApiError("component.version_stale", "The skill or agent template changed while it was being shared; try again");
|
|
42
|
+
/** The platform table of a kind. */
|
|
43
|
+
const PLATFORM_TABLE = {
|
|
44
|
+
skill: "platform_skills",
|
|
45
|
+
agent_template: "platform_agent_templates",
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Promotes an org's own skill or agent template to a platform row when it is first shared
|
|
49
|
+
* (ruling P3-3). Stateless, shared by every replica.
|
|
50
|
+
*/
|
|
51
|
+
let ComponentPromotion = class ComponentPromotion {
|
|
52
|
+
kdb;
|
|
53
|
+
files;
|
|
54
|
+
txHost;
|
|
55
|
+
constructor(kdb,
|
|
56
|
+
/** Where files are read and written (the kernel's object storage). */
|
|
57
|
+
files, txHost) {
|
|
58
|
+
this.kdb = kdb;
|
|
59
|
+
this.files = files;
|
|
60
|
+
this.txHost = txHost;
|
|
61
|
+
}
|
|
62
|
+
get db() {
|
|
63
|
+
return this.kdb.db;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The live org row `id` of `kind` (an org-scope skill, an agent template) of a live org, when it
|
|
67
|
+
* is the org's own (see {@link OrgRow}); undefined otherwise.
|
|
68
|
+
*/
|
|
69
|
+
async orgRow(kind, id, forUpdate = false) {
|
|
70
|
+
return readOrgRow(this.db, kind, id, forUpdate);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The first phase, outside any transaction: reads the org row and (a skill) copies its current
|
|
74
|
+
* version's files to `deployment/platform/skills/<platformId>/<version>/`, checking each file
|
|
75
|
+
* against the manifest. A row promoted already needs nothing. A failed copy throws and nothing is
|
|
76
|
+
* linked (the copied files stay unreferenced). Missing or not the org's own -> 404.
|
|
77
|
+
*/
|
|
78
|
+
async prepare(kind, orgRowId) {
|
|
79
|
+
const row = await this.orgRow(kind, orgRowId);
|
|
80
|
+
if (!row)
|
|
81
|
+
throw notFound();
|
|
82
|
+
if (row.link !== null) {
|
|
83
|
+
return {
|
|
84
|
+
kind,
|
|
85
|
+
orgRowId,
|
|
86
|
+
orgId: row.orgId,
|
|
87
|
+
platformId: row.link,
|
|
88
|
+
version: row.version,
|
|
89
|
+
already: true,
|
|
90
|
+
prefix: null,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
if (!row.ownable)
|
|
94
|
+
throw notOwnedError(row.name);
|
|
95
|
+
const platformId = randomUUID();
|
|
96
|
+
const prefix = kind === "skill" ? uniqueVersionPrefix(platformSkillPrefix(platformId, row.version)) : null;
|
|
97
|
+
if (prefix !== null)
|
|
98
|
+
await this.copySkillFiles(row, prefix);
|
|
99
|
+
return {
|
|
100
|
+
kind,
|
|
101
|
+
orgRowId,
|
|
102
|
+
orgId: row.orgId,
|
|
103
|
+
platformId,
|
|
104
|
+
version: row.version,
|
|
105
|
+
already: false,
|
|
106
|
+
prefix,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Deletes a prepared promotion's files after its transaction failed (best effort, P3-45). */
|
|
110
|
+
async discard(p) {
|
|
111
|
+
if (p.prefix === null)
|
|
112
|
+
return;
|
|
113
|
+
try {
|
|
114
|
+
await this.files.deployment().deletePrefix(p.prefix);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// unreferenced objects only: nothing reads them
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The second phase, in the caller's transaction: re-reads the org row under its lock (after the
|
|
122
|
+
* org row, so an org deletion is serialized), checks the share gate on it (409
|
|
123
|
+
* `catalog.not_shareable`) and writes the platform row (`current_version` = the org row's, one
|
|
124
|
+
* version row at that number), its list `[owner]`, and the link (no pin). Idempotent: a row the
|
|
125
|
+
* org promoted already returns its platform id. A version written since {@link prepare} ->
|
|
126
|
+
* {@link PromotionStale}; a live platform row of the same name created in this org already (a
|
|
127
|
+
* shared item whose owner deleted it and then made a new one) -> 409 `plugin.skill_conflict`.
|
|
128
|
+
* Audits `component.promoted`. Returns the platform id.
|
|
129
|
+
*/
|
|
130
|
+
async promote(p, actor) {
|
|
131
|
+
const org = await this.db
|
|
132
|
+
.selectFrom("orgs")
|
|
133
|
+
.select("id")
|
|
134
|
+
.where("id", "=", p.orgId)
|
|
135
|
+
.where("deleted_at", "is", null)
|
|
136
|
+
.forShare()
|
|
137
|
+
.executeTakeFirst();
|
|
138
|
+
if (!org)
|
|
139
|
+
throw notFound();
|
|
140
|
+
const row = await this.orgRow(p.kind, p.orgRowId, true);
|
|
141
|
+
if (!row)
|
|
142
|
+
throw notFound();
|
|
143
|
+
if (row.link !== null)
|
|
144
|
+
return row.link;
|
|
145
|
+
if (!row.ownable)
|
|
146
|
+
throw notOwnedError(row.name);
|
|
147
|
+
if (!row.shareable) {
|
|
148
|
+
throw new ApiError("catalog.not_shareable", `${row.name} is owned by an organization that has not made it shareable`);
|
|
149
|
+
}
|
|
150
|
+
if (p.already || p.version !== row.version)
|
|
151
|
+
throw new PromotionStale();
|
|
152
|
+
const table = PLATFORM_TABLE[p.kind];
|
|
153
|
+
const taken = await this.db
|
|
154
|
+
.selectFrom(table)
|
|
155
|
+
.select("id")
|
|
156
|
+
.where("name", "=", row.name)
|
|
157
|
+
.where("origin_org_id", "=", row.orgId)
|
|
158
|
+
.where(sql `coalesce(plugin_name, '')`, "=", row.plugin ?? "")
|
|
159
|
+
.where("deleted_at", "is", null)
|
|
160
|
+
.executeTakeFirst();
|
|
161
|
+
if (taken) {
|
|
162
|
+
throw new ApiError("plugin.skill_conflict", `A shared ${p.kind === "skill" ? "skill" : "agent template"} named "${row.name}" from this organization already exists on the platform`, [{ skill: row.name, orgId: row.orgId, skills: [taken.id], source: { kind: "org" } }]);
|
|
163
|
+
}
|
|
164
|
+
const owned = {
|
|
165
|
+
owner_org_id: row.orgId,
|
|
166
|
+
origin_org_id: row.orgId,
|
|
167
|
+
shareable: row.shareable,
|
|
168
|
+
shown_to_others: false,
|
|
169
|
+
scope_mode: "own",
|
|
170
|
+
scope: "named",
|
|
171
|
+
};
|
|
172
|
+
if (p.kind === "skill") {
|
|
173
|
+
const v = await this.db
|
|
174
|
+
.selectFrom("skill_versions")
|
|
175
|
+
.select(["manifest", "source_format", "suggest_pinned", "created_by"])
|
|
176
|
+
.where("skill_id", "=", row.id)
|
|
177
|
+
.where("version", "=", row.version)
|
|
178
|
+
.executeTakeFirstOrThrow();
|
|
179
|
+
await this.db
|
|
180
|
+
.insertInto("platform_skills")
|
|
181
|
+
.values({
|
|
182
|
+
id: p.platformId,
|
|
183
|
+
catalog_item_id: null,
|
|
184
|
+
plugin_name: null,
|
|
185
|
+
name: row.name,
|
|
186
|
+
description: v.manifest.description,
|
|
187
|
+
description_zh: null,
|
|
188
|
+
current_version: row.version,
|
|
189
|
+
...owned,
|
|
190
|
+
})
|
|
191
|
+
.execute();
|
|
192
|
+
await this.db
|
|
193
|
+
.insertInto("platform_skill_versions")
|
|
194
|
+
.values({
|
|
195
|
+
skill_id: p.platformId,
|
|
196
|
+
version: row.version,
|
|
197
|
+
manifest: JSON.stringify(v.manifest),
|
|
198
|
+
object_prefix: p.prefix,
|
|
199
|
+
catalog_version: null,
|
|
200
|
+
source_format: v.source_format,
|
|
201
|
+
suggest_pinned: v.suggest_pinned,
|
|
202
|
+
created_by: v.created_by,
|
|
203
|
+
})
|
|
204
|
+
.execute();
|
|
205
|
+
await this.db
|
|
206
|
+
.updateTable("skills")
|
|
207
|
+
.set({ platform_skill_id: p.platformId, updated_at: sql `now()` })
|
|
208
|
+
.where("id", "=", row.id)
|
|
209
|
+
.execute();
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const v = await this.db
|
|
213
|
+
.selectFrom("agent_template_versions")
|
|
214
|
+
.select(["definition", "source_format", "catalog_version"])
|
|
215
|
+
.where("template_id", "=", row.id)
|
|
216
|
+
.where("version", "=", row.version)
|
|
217
|
+
.executeTakeFirstOrThrow();
|
|
218
|
+
const description = v.definition?.description;
|
|
219
|
+
await this.db
|
|
220
|
+
.insertInto("platform_agent_templates")
|
|
221
|
+
.values({
|
|
222
|
+
id: p.platformId,
|
|
223
|
+
catalog_item_id: null,
|
|
224
|
+
// the roster type `<plugin>:<name>` is model-visible: other orgs see the same type
|
|
225
|
+
plugin_name: row.plugin,
|
|
226
|
+
name: row.name,
|
|
227
|
+
description: typeof description === "string" ? description : null,
|
|
228
|
+
current_version: row.version,
|
|
229
|
+
...owned,
|
|
230
|
+
})
|
|
231
|
+
.execute();
|
|
232
|
+
await this.db
|
|
233
|
+
.insertInto("platform_agent_template_versions")
|
|
234
|
+
.values({
|
|
235
|
+
template_id: p.platformId,
|
|
236
|
+
version: row.version,
|
|
237
|
+
// the stored definition as it is (its tool keys are normalized when read)
|
|
238
|
+
definition: JSON.stringify(v.definition),
|
|
239
|
+
// an org template has no file: only its parsed definition is stored
|
|
240
|
+
object_prefix: null,
|
|
241
|
+
catalog_version: v.catalog_version,
|
|
242
|
+
source_format: v.source_format,
|
|
243
|
+
})
|
|
244
|
+
.execute();
|
|
245
|
+
await this.db
|
|
246
|
+
.updateTable("agent_templates")
|
|
247
|
+
.set({ platform_template_id: p.platformId, updated_at: new Date() })
|
|
248
|
+
.where("id", "=", row.id)
|
|
249
|
+
.execute();
|
|
250
|
+
}
|
|
251
|
+
await this.db
|
|
252
|
+
.insertInto("component_scope_orgs")
|
|
253
|
+
.values({ kind: p.kind, component_id: p.platformId, org_id: row.orgId })
|
|
254
|
+
.execute();
|
|
255
|
+
await audit(this.db, {
|
|
256
|
+
actorAccountId: actor,
|
|
257
|
+
orgId: row.orgId,
|
|
258
|
+
action: "component.promoted",
|
|
259
|
+
target: p.platformId,
|
|
260
|
+
detail: { kind: p.kind, name: row.name, from: row.id, version: row.version },
|
|
261
|
+
});
|
|
262
|
+
return p.platformId;
|
|
263
|
+
}
|
|
264
|
+
/** Copies the skill's current version files to its platform prefix (outside any transaction). */
|
|
265
|
+
async copySkillFiles(row, prefix) {
|
|
266
|
+
const v = await this.db
|
|
267
|
+
.selectFrom("skill_versions")
|
|
268
|
+
.select(["manifest", "object_prefix"])
|
|
269
|
+
.where("skill_id", "=", row.id)
|
|
270
|
+
.where("version", "=", row.version)
|
|
271
|
+
.executeTakeFirst();
|
|
272
|
+
if (!v)
|
|
273
|
+
throw notFound();
|
|
274
|
+
this.files.assertAvailable();
|
|
275
|
+
const store = this.files.kernel(row.orgId);
|
|
276
|
+
const out = [];
|
|
277
|
+
for (const f of v.manifest.files) {
|
|
278
|
+
const got = await store.get(`${v.object_prefix}${f.path}`);
|
|
279
|
+
if (!got)
|
|
280
|
+
throw new ApiError("internal", `Stored skill file ${f.path} is missing`);
|
|
281
|
+
const data = new Uint8Array(await new Response(got.body).arrayBuffer());
|
|
282
|
+
if (createHash("sha256").update(data).digest("hex") !== f.sha256) {
|
|
283
|
+
throw new ApiError("internal", `Stored skill file ${f.path} does not match its manifest`);
|
|
284
|
+
}
|
|
285
|
+
out.push({ path: f.path, size: data.byteLength, data });
|
|
286
|
+
}
|
|
287
|
+
await putCatalogFiles(this.files, prefix, out);
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
__decorate([
|
|
291
|
+
Transactional({ propagation: "mandatory" })
|
|
292
|
+
], ComponentPromotion.prototype, "promote", null);
|
|
293
|
+
ComponentPromotion = __decorate([
|
|
294
|
+
Injectable(),
|
|
295
|
+
__param(0, Inject(KernelDb)),
|
|
296
|
+
__param(1, Inject(StorageService)),
|
|
297
|
+
__param(2, Inject(TransactionHost))
|
|
298
|
+
], ComponentPromotion);
|
|
299
|
+
export { ComponentPromotion };
|
|
300
|
+
/** {@link ComponentPromotion.orgRow} through `db` (readers outside the provider). */
|
|
301
|
+
export async function readOrgRow(db, kind, id, forUpdate = false) {
|
|
302
|
+
if (kind === "skill") {
|
|
303
|
+
let q = db
|
|
304
|
+
.selectFrom("skills as s")
|
|
305
|
+
.innerJoin("orgs as o", "o.id", "s.org_id")
|
|
306
|
+
.leftJoin("platform_skills as p", "p.id", "s.platform_skill_id")
|
|
307
|
+
.select([
|
|
308
|
+
"s.id",
|
|
309
|
+
"s.org_id",
|
|
310
|
+
"s.name",
|
|
311
|
+
"s.current_version",
|
|
312
|
+
"s.shareable",
|
|
313
|
+
"s.platform_skill_id",
|
|
314
|
+
"s.pinned_version",
|
|
315
|
+
"s.catalog_item_id",
|
|
316
|
+
"p.owner_org_id",
|
|
317
|
+
"p.deleted_at as p_deleted_at",
|
|
318
|
+
])
|
|
319
|
+
.where("s.id", "=", id)
|
|
320
|
+
.where("s.scope", "=", "org")
|
|
321
|
+
.where("s.deleted_at", "is", null)
|
|
322
|
+
.where("o.deleted_at", "is", null);
|
|
323
|
+
if (forUpdate)
|
|
324
|
+
q = q.forUpdate("s");
|
|
325
|
+
const r = await q.executeTakeFirst();
|
|
326
|
+
if (!r)
|
|
327
|
+
return undefined;
|
|
328
|
+
const link = ownedLink(r);
|
|
329
|
+
if (link === false)
|
|
330
|
+
return undefined;
|
|
331
|
+
return {
|
|
332
|
+
kind,
|
|
333
|
+
id: r.id,
|
|
334
|
+
orgId: r.org_id,
|
|
335
|
+
name: r.name,
|
|
336
|
+
plugin: null,
|
|
337
|
+
version: r.current_version,
|
|
338
|
+
shareable: r.shareable,
|
|
339
|
+
link,
|
|
340
|
+
ownable: r.catalog_item_id === null,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
let q = db
|
|
344
|
+
.selectFrom("agent_templates as t")
|
|
345
|
+
.innerJoin("orgs as o", "o.id", "t.org_id")
|
|
346
|
+
.leftJoin("platform_agent_templates as p", "p.id", "t.platform_template_id")
|
|
347
|
+
.select([
|
|
348
|
+
"t.id",
|
|
349
|
+
"t.org_id",
|
|
350
|
+
"t.name",
|
|
351
|
+
"t.plugin_name",
|
|
352
|
+
"t.current_version",
|
|
353
|
+
"t.shareable",
|
|
354
|
+
"t.platform_template_id as platform_skill_id",
|
|
355
|
+
"t.pinned_version",
|
|
356
|
+
"t.catalog_item_id",
|
|
357
|
+
"p.owner_org_id",
|
|
358
|
+
"p.deleted_at as p_deleted_at",
|
|
359
|
+
])
|
|
360
|
+
.where("t.id", "=", id)
|
|
361
|
+
.where("t.deleted_at", "is", null)
|
|
362
|
+
.where("o.deleted_at", "is", null);
|
|
363
|
+
if (forUpdate)
|
|
364
|
+
q = q.forUpdate("t");
|
|
365
|
+
const r = await q.executeTakeFirst();
|
|
366
|
+
if (!r)
|
|
367
|
+
return undefined;
|
|
368
|
+
const link = ownedLink(r);
|
|
369
|
+
if (link === false)
|
|
370
|
+
return undefined;
|
|
371
|
+
return {
|
|
372
|
+
kind,
|
|
373
|
+
id: r.id,
|
|
374
|
+
orgId: r.org_id,
|
|
375
|
+
name: r.name,
|
|
376
|
+
plugin: r.plugin_name,
|
|
377
|
+
version: r.current_version,
|
|
378
|
+
shareable: r.shareable,
|
|
379
|
+
link,
|
|
380
|
+
// an org template (ruling P4-13); a plugin's template keeps its roster type and is not
|
|
381
|
+
ownable: r.catalog_item_id === null && r.plugin_name === null,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* The platform row an org row is promoted to (null: not linked), or false when the row is a copy
|
|
386
|
+
* of a platform row the org does not own (P3-6: not the org's own).
|
|
387
|
+
*/
|
|
388
|
+
function ownedLink(r) {
|
|
389
|
+
if (r.platform_skill_id === null)
|
|
390
|
+
return null;
|
|
391
|
+
if (r.pinned_version === null && r.owner_org_id === r.org_id && r.p_deleted_at === null) {
|
|
392
|
+
return r.platform_skill_id;
|
|
393
|
+
}
|
|
394
|
+
return false;
|
|
395
|
+
}
|