@capybara-hq/kernel 0.1.0-rc.1 → 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 +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 +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 -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 +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 +135 -2
- package/dist/errors.js +135 -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 +86 -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 +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 +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 +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 -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/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/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
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Logger, ObjectStore } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import type { KernelSchemaDb, SkillManifest, SourceFormat } from "../db/kernel-schema.js";
|
|
3
|
+
/** The `source` prefix of a platform skill version in a snapshot or an invocation record. */
|
|
4
|
+
export declare const PLATFORM_SOURCE = "platform:";
|
|
5
|
+
/** The snapshot `source` of a platform skill version stored at `prefix` (in `deployment/`). */
|
|
6
|
+
export declare const platformSource: (prefix: string) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Where the files of a skill version with snapshot `source` live: `deployment/` for a platform
|
|
9
|
+
* version (`platform:<prefix>`), else the org's `kernel/<orgId>/`; `prefix` is the key prefix in
|
|
10
|
+
* that store.
|
|
11
|
+
*/
|
|
12
|
+
export declare function skillFileStore(storage: {
|
|
13
|
+
kernel(orgId: string): ObjectStore;
|
|
14
|
+
deployment(): ObjectStore;
|
|
15
|
+
}, orgId: string, source: string): {
|
|
16
|
+
store: ObjectStore;
|
|
17
|
+
prefix: string;
|
|
18
|
+
};
|
|
19
|
+
/** A skill the org can use: one of its own, or a platform skill that is on in the org. */
|
|
20
|
+
export interface UsableSkill {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
version: number;
|
|
25
|
+
/** The object prefix of the version (`platform:<prefix>` for a platform version). */
|
|
26
|
+
source: string;
|
|
27
|
+
/** The plugin it came from (a platform skill's plugin, an org skill's provenance). */
|
|
28
|
+
plugin: string | null;
|
|
29
|
+
origin: "org" | "platform";
|
|
30
|
+
/** The platform skill whose content this is (a platform skill, or a linked org copy). */
|
|
31
|
+
platformSkillId?: string;
|
|
32
|
+
}
|
|
33
|
+
/** A usable or selected skill with what the resolvers need beyond {@link UsableSkill}. */
|
|
34
|
+
export interface SkillVersionRow extends UsableSkill {
|
|
35
|
+
/** `agent`: an agent's own skill (never in the org library). Platform skills are `org`. */
|
|
36
|
+
scope: "org" | "agent";
|
|
37
|
+
agentId: string | null;
|
|
38
|
+
manifest: SkillManifest;
|
|
39
|
+
format: SourceFormat;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The ids among `ids` of the platform skills on in the org (see {@link platformOn}), whatever the
|
|
43
|
+
* org's own skills are named: a skill of the org with the same name would clash with them.
|
|
44
|
+
*/
|
|
45
|
+
export declare function platformSkillsOn(db: KernelSchemaDb, orgId: string, ids: readonly string[]): Promise<Set<string>>;
|
|
46
|
+
/**
|
|
47
|
+
* The ids among `ids` (platform skills that org copies are pinned to) whose pinned copies the org
|
|
48
|
+
* may use (ruling P2-18): the platform skill is on in the org ({@link platformSkillsOn}), or it was
|
|
49
|
+
* removed by a plugin update (soft-deleted, ruling P2-7: a pinned copy then keeps its own version
|
|
50
|
+
* as the org's).
|
|
51
|
+
*/
|
|
52
|
+
export declare function pinnedSkillLinksServed(db: KernelSchemaDb, orgId: string, ids: readonly string[]): Promise<Set<string>>;
|
|
53
|
+
/**
|
|
54
|
+
* The org's live skills by id (`ids`; ids that are no usable skill are missing from the map): an
|
|
55
|
+
* agent's own skill or an org skill with its current version; an org copy linked to a platform
|
|
56
|
+
* skill without a pin (ruling B2) as that platform skill's current version under the copy's id,
|
|
57
|
+
* while the platform skill is on in the org; a pinned copy as its own version, while its platform
|
|
58
|
+
* skill is on in the org (ruling P2-18); a platform skill id while it is on in the org.
|
|
59
|
+
*/
|
|
60
|
+
export declare function skillVersionsById(db: KernelSchemaDb, orgId: string, ids: readonly string[], log?: Pick<Logger, "warn">): Promise<Map<string, SkillVersionRow>>;
|
|
61
|
+
/**
|
|
62
|
+
* The skills an agent selects, sorted by id: its own skills (`scope = 'agent'`) and the ids of
|
|
63
|
+
* `orgSkills` that resolve ({@link skillVersionsById}: org skills, linked copies, platform skills
|
|
64
|
+
* on in the org). Not deduplicated by name.
|
|
65
|
+
*/
|
|
66
|
+
export declare function selectedSkills(db: KernelSchemaDb, a: {
|
|
67
|
+
orgId: string;
|
|
68
|
+
agentId: string;
|
|
69
|
+
orgSkills: readonly string[];
|
|
70
|
+
}, log?: Pick<Logger, "warn">): Promise<SkillVersionRow[]>;
|
|
71
|
+
/**
|
|
72
|
+
* The org's usable skills, sorted by name: its own live org skills (`scope = 'org'`, unlinked, or
|
|
73
|
+
* pinned while their platform skill is on in the org, ruling P2-18) and the platform skills on in
|
|
74
|
+
* the org (see {@link platformOn}). An org copy linked
|
|
75
|
+
* without a pin is not listed: its platform skill is; except the org's own skill it promoted
|
|
76
|
+
* (ruling P3-3), listed once under its own id instead of the platform skill.
|
|
77
|
+
* `log` receives the name-clash warnings.
|
|
78
|
+
*/
|
|
79
|
+
export declare function usableSkills(db: KernelSchemaDb, orgId: string, log?: Pick<Logger, "warn">): Promise<UsableSkill[]>;
|
|
80
|
+
/** {@link usableSkills} with each skill's manifest and format. */
|
|
81
|
+
export declare function usableSkillVersions(db: KernelSchemaDb, orgId: string, log?: Pick<Logger, "warn">): Promise<SkillVersionRow[]>;
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
import { componentOn } from "../catalog/component-state.js";
|
|
2
|
+
/** The `source` prefix of a platform skill version in a snapshot or an invocation record. */
|
|
3
|
+
export const PLATFORM_SOURCE = "platform:";
|
|
4
|
+
/** The snapshot `source` of a platform skill version stored at `prefix` (in `deployment/`). */
|
|
5
|
+
export const platformSource = (prefix) => `${PLATFORM_SOURCE}${prefix}`;
|
|
6
|
+
/**
|
|
7
|
+
* Where the files of a skill version with snapshot `source` live: `deployment/` for a platform
|
|
8
|
+
* version (`platform:<prefix>`), else the org's `kernel/<orgId>/`; `prefix` is the key prefix in
|
|
9
|
+
* that store.
|
|
10
|
+
*/
|
|
11
|
+
export function skillFileStore(storage, orgId, source) {
|
|
12
|
+
return source.startsWith(PLATFORM_SOURCE)
|
|
13
|
+
? { store: storage.deployment(), prefix: source.slice(PLATFORM_SOURCE.length) }
|
|
14
|
+
: { store: storage.kernel(orgId), prefix: source };
|
|
15
|
+
}
|
|
16
|
+
/** Plugin install statuses that make a plugin on in the org (phase 1, org catalog state). */
|
|
17
|
+
const LIVE_INSTALL = ["installing", "installed", "upgrading"];
|
|
18
|
+
const byNameThenId = (a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
19
|
+
/** The live platform skill rows on in the org (`ids`: only those), before any name clash. */
|
|
20
|
+
async function platformRowsOn(db, orgId, ids) {
|
|
21
|
+
if (ids !== undefined && ids.length === 0)
|
|
22
|
+
return [];
|
|
23
|
+
let q = db
|
|
24
|
+
.selectFrom("platform_skills as p")
|
|
25
|
+
.innerJoin("platform_skill_versions as v", (j) => j.onRef("v.skill_id", "=", "p.id").onRef("v.version", "=", "p.current_version"))
|
|
26
|
+
.leftJoin("catalog_items as c", (j) => j.onRef("c.id", "=", "p.catalog_item_id").on("c.deleted_at", "is", null))
|
|
27
|
+
.select((eb) => [
|
|
28
|
+
"p.id",
|
|
29
|
+
"p.name",
|
|
30
|
+
"p.plugin_name",
|
|
31
|
+
"p.catalog_item_id",
|
|
32
|
+
"p.current_version",
|
|
33
|
+
"p.scope_mode",
|
|
34
|
+
"p.scope",
|
|
35
|
+
"v.manifest",
|
|
36
|
+
"v.object_prefix",
|
|
37
|
+
"v.source_format",
|
|
38
|
+
"c.id as item_id",
|
|
39
|
+
"c.disabled as item_disabled",
|
|
40
|
+
"c.builtin as item_builtin",
|
|
41
|
+
eb
|
|
42
|
+
.exists(eb
|
|
43
|
+
.selectFrom("plugin_installs as a")
|
|
44
|
+
.select("a.id")
|
|
45
|
+
.whereRef("a.item_id", "=", "p.catalog_item_id")
|
|
46
|
+
.where("a.org_id", "=", orgId)
|
|
47
|
+
.where("a.status", "in", [...LIVE_INSTALL]))
|
|
48
|
+
.as("installed"),
|
|
49
|
+
eb
|
|
50
|
+
.exists(eb
|
|
51
|
+
.selectFrom("component_scope_orgs as l")
|
|
52
|
+
.select("l.org_id")
|
|
53
|
+
.where("l.kind", "=", "skill")
|
|
54
|
+
.whereRef("l.component_id", "=", "p.id")
|
|
55
|
+
.where("l.org_id", "=", orgId))
|
|
56
|
+
.as("listed"),
|
|
57
|
+
eb
|
|
58
|
+
.selectFrom("component_org_switches as w")
|
|
59
|
+
.select("w.enabled")
|
|
60
|
+
.where("w.kind", "=", "skill")
|
|
61
|
+
.whereRef("w.component_id", "=", "p.id")
|
|
62
|
+
.where("w.org_id", "=", orgId)
|
|
63
|
+
.as("switch"),
|
|
64
|
+
])
|
|
65
|
+
.where("p.deleted_at", "is", null)
|
|
66
|
+
.where("p.disabled", "=", false);
|
|
67
|
+
if (ids !== undefined)
|
|
68
|
+
q = q.where("p.id", "in", [...ids]);
|
|
69
|
+
// the predicate of component scope (catalog/component-state.ts); `disabled` is filtered above
|
|
70
|
+
return (await q.execute()).filter((r) => componentOn({ scopeMode: r.scope_mode, scope: r.scope, disabled: false, itemId: r.catalog_item_id }, r.catalog_item_id === null
|
|
71
|
+
? null
|
|
72
|
+
: {
|
|
73
|
+
live: r.item_id !== null,
|
|
74
|
+
disabled: r.item_disabled === true,
|
|
75
|
+
builtin: r.item_builtin === true,
|
|
76
|
+
// the plugin's own scope and list do not decide whether a component is on
|
|
77
|
+
scope: "optional",
|
|
78
|
+
listed: false,
|
|
79
|
+
installed: Boolean(r.installed),
|
|
80
|
+
}, Boolean(r.listed), r.switch ?? null));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The ids among `ids` of the platform skills on in the org (see {@link platformOn}), whatever the
|
|
84
|
+
* org's own skills are named: a skill of the org with the same name would clash with them.
|
|
85
|
+
*/
|
|
86
|
+
export async function platformSkillsOn(db, orgId, ids) {
|
|
87
|
+
return new Set((await platformRowsOn(db, orgId, ids)).map((r) => r.id));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The ids among `ids` (platform skills that org copies are pinned to) whose pinned copies the org
|
|
91
|
+
* may use (ruling P2-18): the platform skill is on in the org ({@link platformSkillsOn}), or it was
|
|
92
|
+
* removed by a plugin update (soft-deleted, ruling P2-7: a pinned copy then keeps its own version
|
|
93
|
+
* as the org's).
|
|
94
|
+
*/
|
|
95
|
+
export async function pinnedSkillLinksServed(db, orgId, ids) {
|
|
96
|
+
if (ids.length === 0)
|
|
97
|
+
return new Set();
|
|
98
|
+
const removed = await db
|
|
99
|
+
.selectFrom("platform_skills")
|
|
100
|
+
.select("id")
|
|
101
|
+
.where("id", "in", [...ids])
|
|
102
|
+
.where("deleted_at", "is not", null)
|
|
103
|
+
.execute();
|
|
104
|
+
return new Set([...(await platformSkillsOn(db, orgId, ids)), ...removed.map((r) => r.id)]);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The platform skills on in the org (`ids`: only those), minus the ones whose name an org skill of
|
|
108
|
+
* its own already uses (rule 10: the org's wins; logged unless that skill is a copy of the same
|
|
109
|
+
* component: linked to it, or carrying the same plugin's provenance before the migration linked
|
|
110
|
+
* it). On in the org:
|
|
111
|
+
* - never when the skill or its plugin is disabled (or its plugin is deleted);
|
|
112
|
+
* - `follow`: its plugin is on in the org (a live install, or builtin) and no component switch of
|
|
113
|
+
* the org says off;
|
|
114
|
+
* - `own`: `wantedOn` over the skill's own scope, the org's list membership and its switch.
|
|
115
|
+
* One query for the skills with their plugin and org state, one for the org's names.
|
|
116
|
+
*/
|
|
117
|
+
async function platformOn(db, orgId, ids, log) {
|
|
118
|
+
const rows = await platformRowsOn(db, orgId, ids);
|
|
119
|
+
if (rows.length === 0)
|
|
120
|
+
return [];
|
|
121
|
+
const own = await db
|
|
122
|
+
.selectFrom("skills")
|
|
123
|
+
.select(["id", "name", "platform_skill_id", "catalog_item_id"])
|
|
124
|
+
.where("org_id", "=", orgId)
|
|
125
|
+
.where("scope", "=", "org")
|
|
126
|
+
.where("deleted_at", "is", null)
|
|
127
|
+
.where((eb) => eb.or([eb("platform_skill_id", "is", null), eb("pinned_version", "is not", null)]))
|
|
128
|
+
.where("name", "in", [...new Set(rows.map((r) => r.name))])
|
|
129
|
+
.execute();
|
|
130
|
+
const ownByName = new Map(own.map((r) => [r.name, r]));
|
|
131
|
+
const out = [];
|
|
132
|
+
const taken = new Map();
|
|
133
|
+
rows.sort((a, b) => (a.plugin_name ?? "") < (b.plugin_name ?? "")
|
|
134
|
+
? -1
|
|
135
|
+
: (a.plugin_name ?? "") > (b.plugin_name ?? "")
|
|
136
|
+
? 1
|
|
137
|
+
: a.id < b.id
|
|
138
|
+
? -1
|
|
139
|
+
: 1);
|
|
140
|
+
for (const r of rows) {
|
|
141
|
+
const o = ownByName.get(r.name);
|
|
142
|
+
if (o) {
|
|
143
|
+
const sameComponent = o.platform_skill_id === r.id ||
|
|
144
|
+
(o.catalog_item_id !== null && o.catalog_item_id === r.catalog_item_id);
|
|
145
|
+
if (!sameComponent) {
|
|
146
|
+
log?.warn("platform skill shadowed by an org skill of the same name", {
|
|
147
|
+
orgId,
|
|
148
|
+
name: r.name,
|
|
149
|
+
platformSkillId: r.id,
|
|
150
|
+
skillId: o.id,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const first = taken.get(r.name);
|
|
156
|
+
if (first !== undefined) {
|
|
157
|
+
log?.warn("platform skills share a name in one org", {
|
|
158
|
+
orgId,
|
|
159
|
+
name: r.name,
|
|
160
|
+
kept: first,
|
|
161
|
+
dropped: r.id,
|
|
162
|
+
});
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
taken.set(r.name, r.id);
|
|
166
|
+
out.push({
|
|
167
|
+
id: r.id,
|
|
168
|
+
name: r.name,
|
|
169
|
+
description: r.manifest.description,
|
|
170
|
+
version: r.current_version,
|
|
171
|
+
source: platformSource(r.object_prefix),
|
|
172
|
+
plugin: r.plugin_name,
|
|
173
|
+
origin: "platform",
|
|
174
|
+
platformSkillId: r.id,
|
|
175
|
+
scope: "org",
|
|
176
|
+
agentId: null,
|
|
177
|
+
manifest: r.manifest,
|
|
178
|
+
format: r.source_format,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
return out;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The org's live skills by id (`ids`; ids that are no usable skill are missing from the map): an
|
|
185
|
+
* agent's own skill or an org skill with its current version; an org copy linked to a platform
|
|
186
|
+
* skill without a pin (ruling B2) as that platform skill's current version under the copy's id,
|
|
187
|
+
* while the platform skill is on in the org; a pinned copy as its own version, while its platform
|
|
188
|
+
* skill is on in the org (ruling P2-18); a platform skill id while it is on in the org.
|
|
189
|
+
*/
|
|
190
|
+
export async function skillVersionsById(db, orgId, ids, log) {
|
|
191
|
+
const unique = [...new Set(ids)];
|
|
192
|
+
const out = new Map();
|
|
193
|
+
if (unique.length === 0)
|
|
194
|
+
return out;
|
|
195
|
+
const rows = await db
|
|
196
|
+
.selectFrom("skills as s")
|
|
197
|
+
.innerJoin("skill_versions as v", (j) => j.onRef("v.skill_id", "=", "s.id").onRef("v.version", "=", "s.current_version"))
|
|
198
|
+
.leftJoin("catalog_items as c", "c.id", "s.catalog_item_id")
|
|
199
|
+
.select([
|
|
200
|
+
"s.id",
|
|
201
|
+
"s.scope",
|
|
202
|
+
"s.agent_id",
|
|
203
|
+
"s.name",
|
|
204
|
+
"s.current_version",
|
|
205
|
+
"s.platform_skill_id",
|
|
206
|
+
"s.pinned_version",
|
|
207
|
+
"v.manifest",
|
|
208
|
+
"v.object_prefix",
|
|
209
|
+
"v.source_format",
|
|
210
|
+
"c.name as item_name",
|
|
211
|
+
])
|
|
212
|
+
.where("s.org_id", "=", orgId)
|
|
213
|
+
.where("s.deleted_at", "is", null)
|
|
214
|
+
.where("s.id", "in", unique)
|
|
215
|
+
.execute();
|
|
216
|
+
const linked = rows.filter((r) => r.scope === "org" && r.platform_skill_id !== null && r.pinned_version === null);
|
|
217
|
+
const pinned = rows.filter((r) => r.scope === "org" && r.platform_skill_id !== null && r.pinned_version !== null);
|
|
218
|
+
const known = new Set(rows.map((r) => r.id));
|
|
219
|
+
const platformIds = [
|
|
220
|
+
...new Set([
|
|
221
|
+
...unique.filter((id) => !known.has(id)),
|
|
222
|
+
...linked.map((r) => r.platform_skill_id),
|
|
223
|
+
]),
|
|
224
|
+
];
|
|
225
|
+
const platform = new Map((await platformOn(db, orgId, platformIds, log)).map((p) => [p.id, p]));
|
|
226
|
+
const owned = await ownedPlatformIds(db, orgId, linked.map((r) => r.platform_skill_id));
|
|
227
|
+
// ruling P2-18: a pinned copy serves its own version while its platform skill is on in the org
|
|
228
|
+
const pinnedOn = await pinnedSkillLinksServed(db, orgId, pinned.map((r) => r.platform_skill_id));
|
|
229
|
+
for (const r of rows) {
|
|
230
|
+
if (linked.includes(r)) {
|
|
231
|
+
const p = platform.get(r.platform_skill_id);
|
|
232
|
+
if (!p)
|
|
233
|
+
continue;
|
|
234
|
+
if (!owned.has(p.id)) {
|
|
235
|
+
out.set(r.id, { ...p, id: r.id });
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
// the org's own skill, promoted (ruling P3-3): promotion copied its current version to the
|
|
239
|
+
// platform under the same number, so while that is still the platform's current version it
|
|
240
|
+
// serves its own stored version (its snapshot source stays); a newer platform version (the
|
|
241
|
+
// owner's later upload, ruling P3-4) serves under its id. Either way it is the org's own.
|
|
242
|
+
if (r.current_version !== p.version) {
|
|
243
|
+
out.set(r.id, { ...p, id: r.id, origin: "org", plugin: r.item_name });
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (pinned.includes(r) && !pinnedOn.has(r.platform_skill_id))
|
|
248
|
+
continue;
|
|
249
|
+
out.set(r.id, {
|
|
250
|
+
id: r.id,
|
|
251
|
+
name: r.name,
|
|
252
|
+
description: r.manifest.description,
|
|
253
|
+
version: r.current_version,
|
|
254
|
+
source: r.object_prefix,
|
|
255
|
+
plugin: r.item_name,
|
|
256
|
+
origin: "org",
|
|
257
|
+
...(r.platform_skill_id !== null && { platformSkillId: r.platform_skill_id }),
|
|
258
|
+
scope: r.scope,
|
|
259
|
+
agentId: r.agent_id,
|
|
260
|
+
manifest: r.manifest,
|
|
261
|
+
format: r.source_format,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
for (const id of unique) {
|
|
265
|
+
const p = platform.get(id);
|
|
266
|
+
if (p && !known.has(id))
|
|
267
|
+
out.set(id, p);
|
|
268
|
+
}
|
|
269
|
+
return out;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* The ids among `platformIds` of the live platform skills owned by `orgId` (promoted from its own
|
|
273
|
+
* skills, ruling P3-3).
|
|
274
|
+
*/
|
|
275
|
+
async function ownedPlatformIds(db, orgId, platformIds) {
|
|
276
|
+
if (platformIds.length === 0)
|
|
277
|
+
return new Set();
|
|
278
|
+
const rows = await db
|
|
279
|
+
.selectFrom("platform_skills")
|
|
280
|
+
.select("id")
|
|
281
|
+
.where("id", "in", [...new Set(platformIds)])
|
|
282
|
+
.where("owner_org_id", "=", orgId)
|
|
283
|
+
.where("deleted_at", "is", null)
|
|
284
|
+
.execute();
|
|
285
|
+
return new Set(rows.map((r) => r.id));
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* The skills an agent selects, sorted by id: its own skills (`scope = 'agent'`) and the ids of
|
|
289
|
+
* `orgSkills` that resolve ({@link skillVersionsById}: org skills, linked copies, platform skills
|
|
290
|
+
* on in the org). Not deduplicated by name.
|
|
291
|
+
*/
|
|
292
|
+
export async function selectedSkills(db, a, log) {
|
|
293
|
+
const agentOwn = await db
|
|
294
|
+
.selectFrom("skills")
|
|
295
|
+
.select("id")
|
|
296
|
+
.where("org_id", "=", a.orgId)
|
|
297
|
+
.where("scope", "=", "agent")
|
|
298
|
+
.where("agent_id", "=", a.agentId)
|
|
299
|
+
.where("deleted_at", "is", null)
|
|
300
|
+
.execute();
|
|
301
|
+
const orgSkills = new Set(a.orgSkills);
|
|
302
|
+
const byId = await skillVersionsById(db, a.orgId, [...agentOwn.map((r) => r.id), ...orgSkills], log);
|
|
303
|
+
return [...byId.values()]
|
|
304
|
+
.filter((r) => (r.scope === "agent" ? r.agentId === a.agentId : orgSkills.has(r.id)))
|
|
305
|
+
.sort((x, y) => (x.id < y.id ? -1 : x.id > y.id ? 1 : 0));
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* The org's usable skills, sorted by name: its own live org skills (`scope = 'org'`, unlinked, or
|
|
309
|
+
* pinned while their platform skill is on in the org, ruling P2-18) and the platform skills on in
|
|
310
|
+
* the org (see {@link platformOn}). An org copy linked
|
|
311
|
+
* without a pin is not listed: its platform skill is; except the org's own skill it promoted
|
|
312
|
+
* (ruling P3-3), listed once under its own id instead of the platform skill.
|
|
313
|
+
* `log` receives the name-clash warnings.
|
|
314
|
+
*/
|
|
315
|
+
export async function usableSkills(db, orgId, log) {
|
|
316
|
+
return (await usableSkillVersions(db, orgId, log)).map(({ scope: _s, agentId: _a, manifest: _m, format: _f, ...u }) => u);
|
|
317
|
+
}
|
|
318
|
+
/** {@link usableSkills} with each skill's manifest and format. */
|
|
319
|
+
export async function usableSkillVersions(db, orgId, log) {
|
|
320
|
+
const own = await db
|
|
321
|
+
.selectFrom("skills as s")
|
|
322
|
+
.innerJoin("skill_versions as v", (j) => j.onRef("v.skill_id", "=", "s.id").onRef("v.version", "=", "s.current_version"))
|
|
323
|
+
.leftJoin("catalog_items as c", "c.id", "s.catalog_item_id")
|
|
324
|
+
.select([
|
|
325
|
+
"s.id",
|
|
326
|
+
"s.name",
|
|
327
|
+
"s.current_version",
|
|
328
|
+
"s.platform_skill_id",
|
|
329
|
+
"v.manifest",
|
|
330
|
+
"v.object_prefix",
|
|
331
|
+
"v.source_format",
|
|
332
|
+
"c.name as item_name",
|
|
333
|
+
])
|
|
334
|
+
.where("s.org_id", "=", orgId)
|
|
335
|
+
.where("s.scope", "=", "org")
|
|
336
|
+
.where("s.deleted_at", "is", null)
|
|
337
|
+
.where((eb) => eb.or([eb("s.platform_skill_id", "is", null), eb("s.pinned_version", "is not", null)]))
|
|
338
|
+
.execute();
|
|
339
|
+
// ruling P2-18: a pinned copy follows its platform skill's availability (the pin fixes the
|
|
340
|
+
// version only)
|
|
341
|
+
const pinnedOn = await pinnedSkillLinksServed(db, orgId, [
|
|
342
|
+
...new Set(own.flatMap((r) => (r.platform_skill_id === null ? [] : [r.platform_skill_id]))),
|
|
343
|
+
]);
|
|
344
|
+
const rows = own
|
|
345
|
+
.filter((r) => r.platform_skill_id === null || pinnedOn.has(r.platform_skill_id))
|
|
346
|
+
.map((r) => ({
|
|
347
|
+
id: r.id,
|
|
348
|
+
name: r.name,
|
|
349
|
+
description: r.manifest.description,
|
|
350
|
+
version: r.current_version,
|
|
351
|
+
source: r.object_prefix,
|
|
352
|
+
plugin: r.item_name,
|
|
353
|
+
origin: "org",
|
|
354
|
+
...(r.platform_skill_id !== null && { platformSkillId: r.platform_skill_id }),
|
|
355
|
+
scope: "org",
|
|
356
|
+
agentId: null,
|
|
357
|
+
manifest: r.manifest,
|
|
358
|
+
format: r.source_format,
|
|
359
|
+
}));
|
|
360
|
+
// the org's own skills it promoted: under their own ids, instead of their platform skills
|
|
361
|
+
const promoted = await db
|
|
362
|
+
.selectFrom("skills as s")
|
|
363
|
+
.innerJoin("platform_skills as p", "p.id", "s.platform_skill_id")
|
|
364
|
+
.select(["s.id", "s.platform_skill_id"])
|
|
365
|
+
.where("s.org_id", "=", orgId)
|
|
366
|
+
.where("s.scope", "=", "org")
|
|
367
|
+
.where("s.deleted_at", "is", null)
|
|
368
|
+
.where("s.pinned_version", "is", null)
|
|
369
|
+
.where("p.owner_org_id", "=", orgId)
|
|
370
|
+
.where("p.deleted_at", "is", null)
|
|
371
|
+
.execute();
|
|
372
|
+
const promotedTo = new Set(promoted.map((r) => r.platform_skill_id));
|
|
373
|
+
if (promoted.length > 0) {
|
|
374
|
+
const served = await skillVersionsById(db, orgId, promoted.map((r) => r.id), log);
|
|
375
|
+
rows.push(...served.values());
|
|
376
|
+
}
|
|
377
|
+
rows.push(...(await platformOn(db, orgId, undefined, log)).filter((p) => !promotedTo.has(p.id)));
|
|
378
|
+
return rows.sort(byNameThenId);
|
|
379
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The maintenance job scheduler ids the storage purge had before becoming `@LockedCron` /
|
|
3
|
+
* `@LockedInterval` jobs (retired at worker start, `RETIRED_SCHEDULER_IDS`). A leaf module.
|
|
4
|
+
*/
|
|
5
|
+
/** The maintenance job scheduler id it had before it became a cron (retired at worker start). */
|
|
6
|
+
export declare const STORAGE_PURGE_SCHEDULER_ID = "storage-org-purge-hourly";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The maintenance job scheduler ids the storage purge had before becoming `@LockedCron` /
|
|
3
|
+
* `@LockedInterval` jobs (retired at worker start, `RETIRED_SCHEDULER_IDS`). A leaf module.
|
|
4
|
+
*/
|
|
5
|
+
/** The maintenance job scheduler id it had before it became a cron (retired at worker start). */
|
|
6
|
+
export const STORAGE_PURGE_SCHEDULER_ID = "storage-org-purge-hourly";
|
package/dist/storage/purge.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type {
|
|
3
|
-
import
|
|
4
|
-
|
|
2
|
+
import type { KernelSchemaDb } 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 { LockService } from "../infra/lock/lock.service.js";
|
|
6
|
+
import type { KernelLogger } from "../log.js";
|
|
7
|
+
import { type PrefixedStorage, StorageService } from "./storage.service.js";
|
|
8
|
+
/** 定时任务:清理已删除组织的对象存储(名字不含 `:`),每小时整点。 */
|
|
5
9
|
export declare const STORAGE_PURGE_JOB = "storage-org-purge";
|
|
6
|
-
export declare const STORAGE_PURGE_SCHEDULER_ID = "storage-org-purge-hourly";
|
|
7
|
-
export declare const STORAGE_PURGE_EVERY_MS = 3600000;
|
|
8
10
|
/**
|
|
9
11
|
* 删除「软删除超过 `afterDays` 天、尚未清理存储」的组织的全部对象(`StorageService.deleteOrg`),
|
|
10
12
|
* 成功后写 `orgs.storage_purged_at`,之后不再处理。返回本次清理的组织数。
|
|
@@ -20,8 +22,21 @@ export declare const STORAGE_PURGE_EVERY_MS = 3600000;
|
|
|
20
22
|
* 3. 成功:写 `storage_purged_at` 并清空认领;失败:清空认领(下一次运行重试),本次运行不再碰它。
|
|
21
23
|
*/
|
|
22
24
|
export declare function purgeDeletedOrgStorage(d: {
|
|
23
|
-
db:
|
|
24
|
-
storage:
|
|
25
|
+
db: Pick<KernelSchemaDb, "updateTable" | "selectFrom">;
|
|
26
|
+
storage: PrefixedStorage;
|
|
25
27
|
afterDays: number;
|
|
26
28
|
log: Pick<Logger, "info" | "warn">;
|
|
27
29
|
}): Promise<number>;
|
|
30
|
+
/**
|
|
31
|
+
* The hourly `storage-org-purge` job (fixed period: `@LockedCron`, once per tick across replicas):
|
|
32
|
+
* {@link purgeDeletedOrgStorage} with `storage.purgeDeletedOrgsAfterDays`.
|
|
33
|
+
*/
|
|
34
|
+
export declare class StoragePurgeJob {
|
|
35
|
+
private readonly db;
|
|
36
|
+
private readonly storage;
|
|
37
|
+
private readonly config;
|
|
38
|
+
readonly lockService: LockService;
|
|
39
|
+
readonly log: KernelLogger;
|
|
40
|
+
constructor(db: KernelDb, storage: StorageService, config: KernelConfigService, lockService: LockService, log: KernelLogger);
|
|
41
|
+
run(): Promise<void>;
|
|
42
|
+
}
|
package/dist/storage/purge.js
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
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 { Inject, Injectable } from "@nestjs/common";
|
|
1
11
|
import { sql } from "kysely";
|
|
2
|
-
|
|
12
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
13
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
14
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
15
|
+
import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
|
|
16
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
17
|
+
import { StorageService } from "./storage.service.js";
|
|
18
|
+
/** 定时任务:清理已删除组织的对象存储(名字不含 `:`),每小时整点。 */
|
|
3
19
|
export const STORAGE_PURGE_JOB = "storage-org-purge";
|
|
4
|
-
export const STORAGE_PURGE_SCHEDULER_ID = "storage-org-purge-hourly";
|
|
5
|
-
export const STORAGE_PURGE_EVERY_MS = 3_600_000;
|
|
6
20
|
/** 每次运行最多处理的组织数(成功与失败合计)。 */
|
|
7
21
|
const PURGE_BATCH = 100;
|
|
8
22
|
/** 认领超过这么久仍未完成(运行中途退出)就可被重新认领。 */
|
|
@@ -73,3 +87,41 @@ export async function purgeDeletedOrgStorage(d) {
|
|
|
73
87
|
}
|
|
74
88
|
return purged;
|
|
75
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* The hourly `storage-org-purge` job (fixed period: `@LockedCron`, once per tick across replicas):
|
|
92
|
+
* {@link purgeDeletedOrgStorage} with `storage.purgeDeletedOrgsAfterDays`.
|
|
93
|
+
*/
|
|
94
|
+
let StoragePurgeJob = class StoragePurgeJob {
|
|
95
|
+
db;
|
|
96
|
+
storage;
|
|
97
|
+
config;
|
|
98
|
+
lockService;
|
|
99
|
+
log;
|
|
100
|
+
constructor(db, storage, config, lockService, log) {
|
|
101
|
+
this.db = db;
|
|
102
|
+
this.storage = storage;
|
|
103
|
+
this.config = config;
|
|
104
|
+
this.lockService = lockService;
|
|
105
|
+
this.log = log;
|
|
106
|
+
}
|
|
107
|
+
async run() {
|
|
108
|
+
await purgeDeletedOrgStorage({
|
|
109
|
+
db: this.db,
|
|
110
|
+
storage: this.storage,
|
|
111
|
+
afterDays: this.config.get().storage.purgeDeletedOrgsAfterDays,
|
|
112
|
+
log: this.log,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
__decorate([
|
|
117
|
+
LockedCron("0 * * * *", { name: STORAGE_PURGE_JOB })
|
|
118
|
+
], StoragePurgeJob.prototype, "run", null);
|
|
119
|
+
StoragePurgeJob = __decorate([
|
|
120
|
+
Injectable(),
|
|
121
|
+
__param(0, Inject(KernelDb)),
|
|
122
|
+
__param(1, Inject(StorageService)),
|
|
123
|
+
__param(2, Inject(KernelConfigService)),
|
|
124
|
+
__param(3, Inject(LockService)),
|
|
125
|
+
__param(4, Inject(KERNEL_LOGGER))
|
|
126
|
+
], StoragePurgeJob);
|
|
127
|
+
export { StoragePurgeJob };
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
import { Module } from "@nestjs/common";
|
|
8
|
+
import { ExtensionRegistryModule } from "../extensions/registry.js";
|
|
9
|
+
import { StorageService } from "./storage.service.js";
|
|
10
|
+
/**
|
|
11
|
+
* Object storage (`object-store@1` with the kernel's key prefixes): the one {@link StorageService}
|
|
12
|
+
* (the hourly `storage-org-purge` job, `StoragePurgeJob`, is the worker role's: `WorkerModule`).
|
|
13
|
+
*/
|
|
14
|
+
let StorageModule = class StorageModule {
|
|
15
|
+
};
|
|
16
|
+
StorageModule = __decorate([
|
|
17
|
+
Module({
|
|
18
|
+
imports: [ExtensionRegistryModule],
|
|
19
|
+
providers: [StorageService],
|
|
20
|
+
exports: [StorageService],
|
|
21
|
+
})
|
|
22
|
+
], StorageModule);
|
|
23
|
+
export { StorageModule };
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ExtensionPointUnavailableError, type ExtensionStorage, type ObjectStore } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { ExtensionRegistry } from "../extensions/registry.js";
|
|
3
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
2
4
|
export { StorageKeyError } from "./prefix.js";
|
|
3
5
|
/** 部署级对象的键前缀(见 {@link StorageService.deployment})。 */
|
|
4
6
|
export declare const DEPLOYMENT_PREFIX = "deployment/";
|
|
@@ -8,22 +10,25 @@ export declare const storageUnavailable: () => ExtensionPointUnavailableError;
|
|
|
8
10
|
export declare const MAX_PRESIGN_TTL_SECONDS = 604800;
|
|
9
11
|
/** 把预签名有效期取整并限制在 1..{@link MAX_PRESIGN_TTL_SECONDS};不是有限数时抛 RangeError。 */
|
|
10
12
|
export declare function clampPresignTtl(ttlSeconds: number): number;
|
|
11
|
-
|
|
13
|
+
/** Where a {@link PrefixedStorage} gets its object store and the extensions that may hold data. */
|
|
14
|
+
export interface StorageSource {
|
|
12
15
|
/** 当前的 `object-store@1` 提供方;每次调用时取(提供方在插件加载过程中才就绪)。 */
|
|
13
16
|
provider: () => ObjectStore | undefined;
|
|
14
17
|
/** 可能存过数据的插件名(删除组织数据时逐个删 `plugins/<插件>/<orgId>/`)。 */
|
|
15
18
|
plugins: () => Promise<string[]>;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
|
-
*
|
|
21
|
+
* 前缀隔离的对象存储(扩展模型 §5):在 `object-store@1` 提供方之上加前缀隔离。A plain class over a
|
|
22
|
+
* {@link StorageSource}: the kernel's one instance is the {@link StorageService} provider; an
|
|
23
|
+
* extension's `ctx.storage` and the CLI build their own over their own source.
|
|
19
24
|
* - 插件经 {@link forPlugin} 拿到 `ctx.storage`:键落在 `plugins/<插件>/<orgId>/` 下;
|
|
20
25
|
* - 内核功能经 {@link kernel} 用 `kernel/<orgId>/`;
|
|
21
26
|
* - 返回给调用方的键(`head` / `get` / `put` / `list`)都去掉前缀,列举结果只保留本前缀下的对象。
|
|
22
27
|
* 没有提供方时各方法 reject `storage.unavailable`({@link available} 为 false)。本身无状态,可多副本共用。
|
|
23
28
|
*/
|
|
24
|
-
export declare class
|
|
29
|
+
export declare class PrefixedStorage {
|
|
25
30
|
private readonly d;
|
|
26
|
-
constructor(d:
|
|
31
|
+
constructor(d: StorageSource);
|
|
27
32
|
/** 是否有对象存储提供方。 */
|
|
28
33
|
get available(): boolean;
|
|
29
34
|
/** 依赖存储的 HTTP 功能在入口调用:没有提供方时抛 `ApiError("storage.unavailable")`(503)。 */
|
|
@@ -42,3 +47,12 @@ export declare class StorageService {
|
|
|
42
47
|
deleteOrg(orgId: string): Promise<number>;
|
|
43
48
|
private require;
|
|
44
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* The kernel's object storage (one provider): the object store is the first loaded `object-store@1`
|
|
52
|
+
* provider in the {@link ExtensionRegistry} (read per call: it is ready only after the extensions
|
|
53
|
+
* load); the extensions that may hold data are those ever approved (permission snapshots, including
|
|
54
|
+
* uninstalled ones) plus the loaded ones.
|
|
55
|
+
*/
|
|
56
|
+
export declare class StorageService extends PrefixedStorage {
|
|
57
|
+
constructor(registry: ExtensionRegistry, db: KernelDb);
|
|
58
|
+
}
|