@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +85 -5
- package/dist/admin/admin.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +60 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +868 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +114 -0
- package/dist/agents/profile.js +55 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +80 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +216 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +264 -0
- package/dist/catalog/catalog-content.js +430 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +290 -0
- package/dist/catalog/catalog-items.js +677 -0
- package/dist/catalog/catalog-scope.service.d.ts +286 -0
- package/dist/catalog/catalog-scope.service.js +1196 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +144 -207
- package/dist/catalog/catalog.service.js +258 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +90 -0
- package/dist/catalog/component-scope.controller.js +234 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +366 -0
- package/dist/catalog/component-scope.service.js +1115 -0
- package/dist/catalog/component-state.d.ts +197 -0
- package/dist/catalog/component-state.js +473 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +434 -472
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +113 -0
- package/dist/catalog/org-extension.controller.js +271 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +293 -71
- package/dist/catalog/plugin-import.js +1039 -281
- package/dist/catalog/plugin-install.d.ts +271 -66
- package/dist/catalog/plugin-install.js +1198 -344
- package/dist/catalog/plugin-package.d.ts +41 -4
- package/dist/catalog/plugin-package.js +140 -7
- package/dist/catalog/plugin-upgrade.d.ts +312 -188
- package/dist/catalog/plugin-upgrade.js +1371 -1065
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +119 -0
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +589 -27
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +160 -2
- package/dist/errors.js +160 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +91 -4
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +93 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +137 -38
- package/dist/identity/accounts.js +386 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +32 -15
- package/dist/identity/me.controller.js +80 -33
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +69 -23
- package/dist/identity/settings.js +201 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -0
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +7 -0
- package/dist/models/models.module.js +36 -0
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +76 -14
- package/dist/orgs/settings.service.js +140 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +683 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +94 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +407 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +717 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +378 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +296 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +216 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +40 -0
- package/dist/platform/platform-ops.module.js +127 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +66 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +43 -0
- package/dist/runtime/run-control.js +89 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/themes/render-css.d.ts +12 -0
- package/dist/themes/render-css.js +132 -0
- package/dist/themes/theme-delivery.service.d.ts +34 -0
- package/dist/themes/theme-delivery.service.js +111 -0
- package/dist/themes/theme-state.d.ts +95 -0
- package/dist/themes/theme-state.js +203 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +28 -0
- package/dist/themes/themes-public.controller.js +92 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +30 -20
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +52 -45
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
|
@@ -115,13 +115,21 @@ export type ReadGitTreeOptions = GitOptions & {
|
|
|
115
115
|
* {@link readGitTree}, plus the git tree oids of directories at the same commit: `trees` gets the
|
|
116
116
|
* files read and returns directory paths relative to the repository root (`.` is the root); each
|
|
117
117
|
* one that exists and is a directory gets its tree oid (equal oids mean equal contents, so a
|
|
118
|
-
* plugin directory that did not change keeps its oid across commits).
|
|
118
|
+
* plugin directory that did not change keeps its oid across commits). `blobs` likewise names more
|
|
119
|
+
* files (paths relative to the root, from the same fetched commit, nothing else is downloaded):
|
|
120
|
+
* each that exists as a plain file of at most `maxBytes` is in `blobs` of the result; a missing
|
|
121
|
+
* path, a directory, a symlink, a submodule or a larger file is left out (never an error).
|
|
119
122
|
*/
|
|
120
123
|
export declare function readGitTreeAndOids(loc: GitLocation & {
|
|
121
124
|
commit: string;
|
|
122
125
|
}, o: ReadGitTreeOptions & {
|
|
123
126
|
trees?: (files: Map<string, Uint8Array>) => string[];
|
|
127
|
+
blobs?: {
|
|
128
|
+
paths: (files: Map<string, Uint8Array>) => string[];
|
|
129
|
+
maxBytes: number;
|
|
130
|
+
};
|
|
124
131
|
}): Promise<{
|
|
125
132
|
files: Map<string, Uint8Array>;
|
|
126
133
|
trees: Map<string, string>;
|
|
134
|
+
blobs: Map<string, Uint8Array>;
|
|
127
135
|
}>;
|
|
@@ -373,7 +373,10 @@ export async function readGitTree(loc, o) {
|
|
|
373
373
|
* {@link readGitTree}, plus the git tree oids of directories at the same commit: `trees` gets the
|
|
374
374
|
* files read and returns directory paths relative to the repository root (`.` is the root); each
|
|
375
375
|
* one that exists and is a directory gets its tree oid (equal oids mean equal contents, so a
|
|
376
|
-
* plugin directory that did not change keeps its oid across commits).
|
|
376
|
+
* plugin directory that did not change keeps its oid across commits). `blobs` likewise names more
|
|
377
|
+
* files (paths relative to the root, from the same fetched commit, nothing else is downloaded):
|
|
378
|
+
* each that exists as a plain file of at most `maxBytes` is in `blobs` of the result; a missing
|
|
379
|
+
* path, a directory, a symlink, a submodule or a larger file is left out (never an error).
|
|
377
380
|
*/
|
|
378
381
|
export async function readGitTreeAndOids(loc, o) {
|
|
379
382
|
if (!SHA_RE.test(loc.commit))
|
|
@@ -509,7 +512,31 @@ export async function readGitTreeAndOids(loc, o) {
|
|
|
509
512
|
if (oid !== undefined)
|
|
510
513
|
trees.set(dir, oid);
|
|
511
514
|
}
|
|
512
|
-
|
|
515
|
+
const blobs = new Map();
|
|
516
|
+
const wanted = o.blobs;
|
|
517
|
+
for (const path of wanted?.paths(sorted).slice(0, GIT_LIMITS.maxFiles) ?? []) {
|
|
518
|
+
const want = pathSegments(path);
|
|
519
|
+
if (want === undefined || want.length === 0 || blobs.has(path))
|
|
520
|
+
continue;
|
|
521
|
+
let oid = c.tree;
|
|
522
|
+
for (const [i, seg] of want.entries()) {
|
|
523
|
+
const { tree: entries } = await git.readTree({ fs, gitdir, oid, cache });
|
|
524
|
+
const e = entries.find((x) => x.path === seg);
|
|
525
|
+
const last = i === want.length - 1;
|
|
526
|
+
oid =
|
|
527
|
+
e !== undefined && e.mode !== "120000" && e.type === (last ? "blob" : "tree")
|
|
528
|
+
? e.oid
|
|
529
|
+
: undefined;
|
|
530
|
+
if (oid === undefined)
|
|
531
|
+
break;
|
|
532
|
+
}
|
|
533
|
+
if (oid === undefined)
|
|
534
|
+
continue;
|
|
535
|
+
const { blob } = await git.readBlob({ fs, gitdir, oid, cache });
|
|
536
|
+
if (wanted !== undefined && blob.byteLength <= wanted.maxBytes)
|
|
537
|
+
blobs.set(path, blob);
|
|
538
|
+
}
|
|
539
|
+
return { files: sorted, trees, blobs };
|
|
513
540
|
}
|
|
514
541
|
catch (e) {
|
|
515
542
|
throw mapError(e, op, o, what);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** The catalog's periodic jobs (a leaf module: no imports). */
|
|
2
|
+
/**
|
|
3
|
+
* Periodic marketplace refresh (C26), every `marketplaces.refreshIntervalMinutes` (a
|
|
4
|
+
* `@LockedInterval`, once per tick across replicas): refreshes each enabled marketplace in turn.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MARKETPLACES_REFRESH_JOB = "catalogs-refresh";
|
|
7
|
+
/** The BullMQ repeatable scheduler the refresh had before it became `@LockedInterval` (retired). */
|
|
8
|
+
export declare const MARKETPLACES_REFRESH_SCHEDULER_ID = "catalogs-refresh-every";
|
|
9
|
+
/**
|
|
10
|
+
* Hourly cleanup of plugin import staging (T25, F-AE; a `@LockedCron`): deletes expired (24-hour)
|
|
11
|
+
* staging rows and their object storage prefixes (`PluginImport.cleanupExpired`).
|
|
12
|
+
*/
|
|
13
|
+
export declare const PLUGIN_STAGING_CLEANUP_JOB = "app-staging-cleanup";
|
|
14
|
+
/** The BullMQ repeatable scheduler the cleanup had before it became `@LockedCron` (retired). */
|
|
15
|
+
export declare const PLUGIN_STAGING_CLEANUP_SCHEDULER_ID = "app-staging-cleanup-hourly";
|
|
16
|
+
/**
|
|
17
|
+
* The one-off job that takes out the extension of a removed org-owned plugin (spec §14, P3-20,
|
|
18
|
+
* P3-21; `OwnedPluginCleanup.run`), on `cap-kernel-maintenance`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const OWNED_PLUGIN_CLEANUP_JOB = "owned-plugin-cleanup";
|
|
21
|
+
/** The daily `@LockedCron` repairing lost {@link OWNED_PLUGIN_CLEANUP_JOB} enqueues. */
|
|
22
|
+
export declare const OWNED_PLUGIN_CLEANUP_SWEEP_JOB = "owned-plugin-cleanup-sweep";
|
|
23
|
+
/** The data of an {@link OWNED_PLUGIN_CLEANUP_JOB}. */
|
|
24
|
+
export interface OwnedPluginCleanupData {
|
|
25
|
+
itemId: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The cleanup job of one removed item: id `owned-plugin-cleanup-<itemId>` (no `:`: item ids are
|
|
29
|
+
* UUIDs), removed when done so a later enqueue of the same item is not swallowed; the job is
|
|
30
|
+
* idempotent, so a few retries are safe.
|
|
31
|
+
*/
|
|
32
|
+
export declare function ownedPluginCleanupJob(itemId: string): {
|
|
33
|
+
name: string;
|
|
34
|
+
data: OwnedPluginCleanupData;
|
|
35
|
+
opts: {
|
|
36
|
+
jobId: string;
|
|
37
|
+
attempts: number;
|
|
38
|
+
backoff: {
|
|
39
|
+
type: "exponential";
|
|
40
|
+
delay: number;
|
|
41
|
+
};
|
|
42
|
+
removeOnComplete: true;
|
|
43
|
+
removeOnFail: true;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** The catalog's periodic jobs (a leaf module: no imports). */
|
|
2
|
+
/**
|
|
3
|
+
* Periodic marketplace refresh (C26), every `marketplaces.refreshIntervalMinutes` (a
|
|
4
|
+
* `@LockedInterval`, once per tick across replicas): refreshes each enabled marketplace in turn.
|
|
5
|
+
*/
|
|
6
|
+
export const MARKETPLACES_REFRESH_JOB = "catalogs-refresh";
|
|
7
|
+
/** The BullMQ repeatable scheduler the refresh had before it became `@LockedInterval` (retired). */
|
|
8
|
+
export const MARKETPLACES_REFRESH_SCHEDULER_ID = "catalogs-refresh-every";
|
|
9
|
+
/**
|
|
10
|
+
* Hourly cleanup of plugin import staging (T25, F-AE; a `@LockedCron`): deletes expired (24-hour)
|
|
11
|
+
* staging rows and their object storage prefixes (`PluginImport.cleanupExpired`).
|
|
12
|
+
*/
|
|
13
|
+
export const PLUGIN_STAGING_CLEANUP_JOB = "app-staging-cleanup";
|
|
14
|
+
/** The BullMQ repeatable scheduler the cleanup had before it became `@LockedCron` (retired). */
|
|
15
|
+
export const PLUGIN_STAGING_CLEANUP_SCHEDULER_ID = "app-staging-cleanup-hourly";
|
|
16
|
+
/**
|
|
17
|
+
* The one-off job that takes out the extension of a removed org-owned plugin (spec §14, P3-20,
|
|
18
|
+
* P3-21; `OwnedPluginCleanup.run`), on `cap-kernel-maintenance`.
|
|
19
|
+
*/
|
|
20
|
+
export const OWNED_PLUGIN_CLEANUP_JOB = "owned-plugin-cleanup";
|
|
21
|
+
/** The daily `@LockedCron` repairing lost {@link OWNED_PLUGIN_CLEANUP_JOB} enqueues. */
|
|
22
|
+
export const OWNED_PLUGIN_CLEANUP_SWEEP_JOB = "owned-plugin-cleanup-sweep";
|
|
23
|
+
/**
|
|
24
|
+
* The cleanup job of one removed item: id `owned-plugin-cleanup-<itemId>` (no `:`: item ids are
|
|
25
|
+
* UUIDs), removed when done so a later enqueue of the same item is not swallowed; the job is
|
|
26
|
+
* idempotent, so a few retries are safe.
|
|
27
|
+
*/
|
|
28
|
+
export function ownedPluginCleanupJob(itemId) {
|
|
29
|
+
return {
|
|
30
|
+
name: OWNED_PLUGIN_CLEANUP_JOB,
|
|
31
|
+
data: { itemId },
|
|
32
|
+
opts: {
|
|
33
|
+
jobId: `${OWNED_PLUGIN_CLEANUP_JOB}-${itemId}`,
|
|
34
|
+
attempts: 3,
|
|
35
|
+
backoff: { type: "exponential", delay: 5_000 },
|
|
36
|
+
removeOnComplete: true,
|
|
37
|
+
removeOnFail: true,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
2
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
3
|
+
import type { KernelLogger } from "../log.js";
|
|
4
|
+
import { MarketplacesService } from "./marketplaces.service.js";
|
|
5
|
+
import { PluginImport } from "./plugin-import.js";
|
|
6
|
+
/**
|
|
7
|
+
* The catalog's periodic jobs, each run once per tick across replicas: the marketplace refresh
|
|
8
|
+
* (`catalogs-refresh`, every `marketplaces.refreshIntervalMinutes` and once after the start:
|
|
9
|
+
* `@LockedInterval` with `runOnStart`) and the
|
|
10
|
+
* hourly cleanup of expired plugin import staging (`app-staging-cleanup`: `@LockedCron`).
|
|
11
|
+
*/
|
|
12
|
+
export declare class CatalogJobs {
|
|
13
|
+
private readonly marketplaces;
|
|
14
|
+
private readonly imports;
|
|
15
|
+
readonly config: KernelConfigService;
|
|
16
|
+
readonly lockService: LockService;
|
|
17
|
+
readonly log: KernelLogger;
|
|
18
|
+
constructor(marketplaces: MarketplacesService, imports: PluginImport, config: KernelConfigService, lockService: LockService, log: KernelLogger);
|
|
19
|
+
/**
|
|
20
|
+
* Refreshes every enabled marketplace in turn (overall deadline
|
|
21
|
+
* {@link MARKETPLACES_REFRESH_DEADLINE_MS}; the job's signal aborts it: the stop, or the run
|
|
22
|
+
* lock lost).
|
|
23
|
+
*/
|
|
24
|
+
refreshMarketplaces(stop?: AbortSignal): Promise<void>;
|
|
25
|
+
/** Deletes expired staging rows and their objects. */
|
|
26
|
+
cleanupStaging(): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
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";
|
|
11
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
12
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
13
|
+
import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
|
|
14
|
+
import { LockedInterval } from "../infra/schedule/locked-interval.js";
|
|
15
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
16
|
+
import { MARKETPLACES_REFRESH_JOB, PLUGIN_STAGING_CLEANUP_JOB } from "./job-ids.js";
|
|
17
|
+
import { MARKETPLACES_REFRESH_DEADLINE_MS, MarketplacesService } from "./marketplaces.service.js";
|
|
18
|
+
import { PluginImport } from "./plugin-import.js";
|
|
19
|
+
/**
|
|
20
|
+
* The catalog's periodic jobs, each run once per tick across replicas: the marketplace refresh
|
|
21
|
+
* (`catalogs-refresh`, every `marketplaces.refreshIntervalMinutes` and once after the start:
|
|
22
|
+
* `@LockedInterval` with `runOnStart`) and the
|
|
23
|
+
* hourly cleanup of expired plugin import staging (`app-staging-cleanup`: `@LockedCron`).
|
|
24
|
+
*/
|
|
25
|
+
let CatalogJobs = class CatalogJobs {
|
|
26
|
+
marketplaces;
|
|
27
|
+
imports;
|
|
28
|
+
config;
|
|
29
|
+
lockService;
|
|
30
|
+
log;
|
|
31
|
+
constructor(marketplaces, imports, config, lockService, log) {
|
|
32
|
+
this.marketplaces = marketplaces;
|
|
33
|
+
this.imports = imports;
|
|
34
|
+
this.config = config;
|
|
35
|
+
this.lockService = lockService;
|
|
36
|
+
this.log = log;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Refreshes every enabled marketplace in turn (overall deadline
|
|
40
|
+
* {@link MARKETPLACES_REFRESH_DEADLINE_MS}; the job's signal aborts it: the stop, or the run
|
|
41
|
+
* lock lost).
|
|
42
|
+
*/
|
|
43
|
+
async refreshMarketplaces(stop) {
|
|
44
|
+
const deadline = AbortSignal.timeout(MARKETPLACES_REFRESH_DEADLINE_MS);
|
|
45
|
+
await this.marketplaces.refreshAll(stop ? AbortSignal.any([deadline, stop]) : deadline);
|
|
46
|
+
}
|
|
47
|
+
/** Deletes expired staging rows and their objects. */
|
|
48
|
+
async cleanupStaging() {
|
|
49
|
+
const n = await this.imports.cleanupExpired();
|
|
50
|
+
if (n > 0)
|
|
51
|
+
this.log.info("expired plugin imports cleaned up", { count: n });
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
__decorate([
|
|
55
|
+
LockedInterval(MARKETPLACES_REFRESH_JOB, (c) => c.marketplaces.refreshIntervalMinutes * 60_000,
|
|
56
|
+
// a fresh deployment's marketplaces are refreshed right after the start
|
|
57
|
+
{ runOnStart: true })
|
|
58
|
+
], CatalogJobs.prototype, "refreshMarketplaces", null);
|
|
59
|
+
__decorate([
|
|
60
|
+
LockedCron("0 * * * *", { name: PLUGIN_STAGING_CLEANUP_JOB })
|
|
61
|
+
], CatalogJobs.prototype, "cleanupStaging", null);
|
|
62
|
+
CatalogJobs = __decorate([
|
|
63
|
+
Injectable(),
|
|
64
|
+
__param(0, Inject(MarketplacesService)),
|
|
65
|
+
__param(1, Inject(PluginImport)),
|
|
66
|
+
__param(2, Inject(KernelConfigService)),
|
|
67
|
+
__param(3, Inject(LockService)),
|
|
68
|
+
__param(4, Inject(KERNEL_LOGGER))
|
|
69
|
+
], CatalogJobs);
|
|
70
|
+
export { CatalogJobs };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
2
|
+
import { XactLock } from "../infra/database/xact-lock.js";
|
|
3
|
+
/**
|
|
4
|
+
* Serializes the writes of one marketplace's cached entries and refresh status (a refresh's
|
|
5
|
+
* result against concurrent refreshes and the admin's changes). Joins the caller's transaction
|
|
6
|
+
* (`mandatory`), which holds the lock until it ends.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CatalogSourceLock {
|
|
9
|
+
private readonly xactLock;
|
|
10
|
+
readonly txHost: TransactionHost;
|
|
11
|
+
constructor(xactLock: XactLock, txHost: TransactionHost);
|
|
12
|
+
lock(marketplaceId: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Serializes the imports of one catalog item name (the conflict re-check and the item / version
|
|
16
|
+
* write of a confirm), including a first import that has no item row to lock yet. Joins the
|
|
17
|
+
* caller's transaction (`mandatory`).
|
|
18
|
+
*/
|
|
19
|
+
export declare class CatalogItemLock {
|
|
20
|
+
private readonly xactLock;
|
|
21
|
+
readonly txHost: TransactionHost;
|
|
22
|
+
constructor(xactLock: XactLock, txHost: TransactionHost);
|
|
23
|
+
lock(name: string): Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
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";
|
|
11
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
12
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
13
|
+
import { XactLock } from "../infra/database/xact-lock.js";
|
|
14
|
+
/**
|
|
15
|
+
* Serializes the writes of one marketplace's cached entries and refresh status (a refresh's
|
|
16
|
+
* result against concurrent refreshes and the admin's changes). Joins the caller's transaction
|
|
17
|
+
* (`mandatory`), which holds the lock until it ends.
|
|
18
|
+
*/
|
|
19
|
+
let CatalogSourceLock = class CatalogSourceLock {
|
|
20
|
+
xactLock;
|
|
21
|
+
txHost;
|
|
22
|
+
constructor(xactLock, txHost) {
|
|
23
|
+
this.xactLock = xactLock;
|
|
24
|
+
this.txHost = txHost;
|
|
25
|
+
}
|
|
26
|
+
async lock(marketplaceId) {
|
|
27
|
+
await this.xactLock.lock(`capybara.catalog-source:${marketplaceId}`);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
__decorate([
|
|
31
|
+
Transactional({ propagation: "mandatory" })
|
|
32
|
+
], CatalogSourceLock.prototype, "lock", null);
|
|
33
|
+
CatalogSourceLock = __decorate([
|
|
34
|
+
Injectable(),
|
|
35
|
+
__param(0, Inject(XactLock)),
|
|
36
|
+
__param(1, Inject(TransactionHost))
|
|
37
|
+
], CatalogSourceLock);
|
|
38
|
+
export { CatalogSourceLock };
|
|
39
|
+
/**
|
|
40
|
+
* Serializes the imports of one catalog item name (the conflict re-check and the item / version
|
|
41
|
+
* write of a confirm), including a first import that has no item row to lock yet. Joins the
|
|
42
|
+
* caller's transaction (`mandatory`).
|
|
43
|
+
*/
|
|
44
|
+
let CatalogItemLock = class CatalogItemLock {
|
|
45
|
+
xactLock;
|
|
46
|
+
txHost;
|
|
47
|
+
constructor(xactLock, txHost) {
|
|
48
|
+
this.xactLock = xactLock;
|
|
49
|
+
this.txHost = txHost;
|
|
50
|
+
}
|
|
51
|
+
async lock(name) {
|
|
52
|
+
await this.xactLock.lock(`capybara.directory-item:${name}`);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
__decorate([
|
|
56
|
+
Transactional({ propagation: "mandatory" })
|
|
57
|
+
], CatalogItemLock.prototype, "lock", null);
|
|
58
|
+
CatalogItemLock = __decorate([
|
|
59
|
+
Injectable(),
|
|
60
|
+
__param(0, Inject(XactLock)),
|
|
61
|
+
__param(1, Inject(TransactionHost))
|
|
62
|
+
], CatalogItemLock);
|
|
63
|
+
export { CatalogItemLock };
|
|
@@ -3,7 +3,7 @@ import type { KernelConfig } from "../config/schema.js";
|
|
|
3
3
|
import { type LookupFn, NetDeniedError, type NetPolicy } from "../net/public-address.js";
|
|
4
4
|
/**
|
|
5
5
|
* Fetching a marketplace manifest `marketplace.json` (C26, spec §5.2) and a marketplace's archive
|
|
6
|
-
* sources. The URLs come from
|
|
6
|
+
* sources. The URLs come from a super admin or the config, but responses are always hostile
|
|
7
7
|
* input:
|
|
8
8
|
* - https only (`allowInsecureLoopback`, tests only, allows http on loopback addresses), no user
|
|
9
9
|
* info in the URL;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type MarketplaceEntry } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { type LookupFn, type NetPolicy } from "../net/public-address.js";
|
|
3
|
+
/**
|
|
4
|
+
* Marketplace entry icons (maintainer decision 2026-11-08; plugin component management spec §16):
|
|
5
|
+
* the icon a marketplace entry names for its plugin before it is imported. An entry's `icon` is an
|
|
6
|
+
* https URL or a path in a git marketplace's repository (SDK `MarketplaceEntry.icon`). The refresh
|
|
7
|
+
* reads each one (a URL through `net/safeFetch` under the marketplace network rules and
|
|
8
|
+
* `marketplaces.allowedHosts`, never with the marketplace token; a path from the commit it fetched
|
|
9
|
+
* anyway), keeps those that really are an svg / png of at most 64 KiB in `marketplace_icons`, and
|
|
10
|
+
* the admin market list serves them like plugin icons (`sendCatalogIcon`). A failed or invalid
|
|
11
|
+
* icon is only logged: the entry has no icon and the list shows its initial.
|
|
12
|
+
*/
|
|
13
|
+
/** The timeout of one icon download. */
|
|
14
|
+
export declare const MARKETPLACE_ICON_TIMEOUT_MS = 10000;
|
|
15
|
+
/** At most this many icon URLs are downloaded per refresh (the rest wait for the next one). */
|
|
16
|
+
export declare const MARKETPLACE_ICON_FETCHES_MAX = 100;
|
|
17
|
+
/** How long after a failed download an icon URL is tried again (by a later refresh). */
|
|
18
|
+
export declare const MARKETPLACE_ICON_RETRY_MS: number;
|
|
19
|
+
/** Parallel icon downloads of one refresh. */
|
|
20
|
+
export declare const MARKETPLACE_ICON_CONCURRENCY = 4;
|
|
21
|
+
/** The largest icon (the plugin icon limit). */
|
|
22
|
+
export declare const MARKETPLACE_ICON_MAX_BYTES: number;
|
|
23
|
+
/** A stored icon: its content type and sha256 (the address the admin route serves it at). */
|
|
24
|
+
export interface CheckedIcon {
|
|
25
|
+
contentType: "image/svg+xml" | "image/png";
|
|
26
|
+
sha256: string;
|
|
27
|
+
data: Uint8Array;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Whether `data` is an icon the kernel serves, by the extension of `name` (a URL's path or a
|
|
31
|
+
* repository path) and its content, like a plugin icon ({@link iconProblem}): the checked icon, or
|
|
32
|
+
* the problem (English).
|
|
33
|
+
*/
|
|
34
|
+
export declare function checkMarketplaceIcon(name: string, data: Uint8Array): CheckedIcon | string;
|
|
35
|
+
/**
|
|
36
|
+
* Downloads one icon URL under the marketplace network rules (https, public addresses or
|
|
37
|
+
* `allowPrivateHosts`, `net.httpsProxy`, no redirects, {@link MARKETPLACE_ICON_TIMEOUT_MS}, at
|
|
38
|
+
* most {@link MARKETPLACE_ICON_MAX_BYTES}) and checks it: the icon, or why it was not kept. Never
|
|
39
|
+
* throws (an abort of `signal` is a problem too).
|
|
40
|
+
*/
|
|
41
|
+
export declare function fetchMarketplaceIcon(url: string, o: {
|
|
42
|
+
net: NetPolicy;
|
|
43
|
+
signal: AbortSignal;
|
|
44
|
+
lookup?: LookupFn;
|
|
45
|
+
}): Promise<CheckedIcon | string>;
|
|
46
|
+
/**
|
|
47
|
+
* The repository paths (relative to the root, without `./`) of the icons a git marketplace's
|
|
48
|
+
* manifest names, read leniently (the manifest is validated afterwards); for a single-plugin repo
|
|
49
|
+
* (no manifest) the root `plugin.json`'s icon. At most `max` paths.
|
|
50
|
+
*/
|
|
51
|
+
export declare function gitIconPaths(files: Map<string, Uint8Array>, manifestPath: string, maxIndexBytes: number, max: number): string[];
|
|
52
|
+
/**
|
|
53
|
+
* The icons a refresh has to have for `entries` of a marketplace of `form`, as the entries write
|
|
54
|
+
* them (the stored `ref`): repository paths `./…` (git marketplaces only; an http marketplace has
|
|
55
|
+
* no repository) and URLs, each once.
|
|
56
|
+
*/
|
|
57
|
+
export declare function wantedIcons(entries: Pick<MarketplaceEntry, "icon">[], form: "http" | "git"): {
|
|
58
|
+
paths: Set<string>;
|
|
59
|
+
urls: Set<string>;
|
|
60
|
+
};
|
|
61
|
+
/** The admin route of a stored icon (content addressed: the URL changes with the bytes). */
|
|
62
|
+
export declare const marketplaceIconUrl: (sourceId: string, sha256: string) => string;
|
|
63
|
+
/** The org browse route of a stored icon (org admins of `orgId`, like the org browse). */
|
|
64
|
+
export declare const orgMarketplaceIconUrl: (orgId: string) => (sourceId: string, sha256: string) => string;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { MARKETPLACE_ICON_RE, MARKETPLACE_LIMITS, marketplaceEntryIcon, PLUGIN_MANIFEST_FILE, } from "@capybara-hq/plugin-sdk";
|
|
3
|
+
import { NetDeniedError } from "../net/public-address.js";
|
|
4
|
+
import { safeFetch } from "../net/safe-fetch.js";
|
|
5
|
+
import { packagePath } from "../packages/tgz.js";
|
|
6
|
+
import { marketplaceUrlProblem } from "./marketplace-fetch.js";
|
|
7
|
+
import { iconProblem } from "./plugin-package.js";
|
|
8
|
+
/**
|
|
9
|
+
* Marketplace entry icons (maintainer decision 2026-11-08; plugin component management spec §16):
|
|
10
|
+
* the icon a marketplace entry names for its plugin before it is imported. An entry's `icon` is an
|
|
11
|
+
* https URL or a path in a git marketplace's repository (SDK `MarketplaceEntry.icon`). The refresh
|
|
12
|
+
* reads each one (a URL through `net/safeFetch` under the marketplace network rules and
|
|
13
|
+
* `marketplaces.allowedHosts`, never with the marketplace token; a path from the commit it fetched
|
|
14
|
+
* anyway), keeps those that really are an svg / png of at most 64 KiB in `marketplace_icons`, and
|
|
15
|
+
* the admin market list serves them like plugin icons (`sendCatalogIcon`). A failed or invalid
|
|
16
|
+
* icon is only logged: the entry has no icon and the list shows its initial.
|
|
17
|
+
*/
|
|
18
|
+
/** The timeout of one icon download. */
|
|
19
|
+
export const MARKETPLACE_ICON_TIMEOUT_MS = 10_000;
|
|
20
|
+
/** At most this many icon URLs are downloaded per refresh (the rest wait for the next one). */
|
|
21
|
+
export const MARKETPLACE_ICON_FETCHES_MAX = 100;
|
|
22
|
+
/** How long after a failed download an icon URL is tried again (by a later refresh). */
|
|
23
|
+
export const MARKETPLACE_ICON_RETRY_MS = 6 * 3600_000;
|
|
24
|
+
/** Parallel icon downloads of one refresh. */
|
|
25
|
+
export const MARKETPLACE_ICON_CONCURRENCY = 4;
|
|
26
|
+
/** The largest icon (the plugin icon limit). */
|
|
27
|
+
export const MARKETPLACE_ICON_MAX_BYTES = MARKETPLACE_LIMITS.iconBytes;
|
|
28
|
+
/**
|
|
29
|
+
* Whether `data` is an icon the kernel serves, by the extension of `name` (a URL's path or a
|
|
30
|
+
* repository path) and its content, like a plugin icon ({@link iconProblem}): the checked icon, or
|
|
31
|
+
* the problem (English).
|
|
32
|
+
*/
|
|
33
|
+
export function checkMarketplaceIcon(name, data) {
|
|
34
|
+
if (!MARKETPLACE_ICON_RE.test(name))
|
|
35
|
+
return `${name} is not a .svg or .png file`;
|
|
36
|
+
const problem = iconProblem(name, data);
|
|
37
|
+
if (problem !== undefined)
|
|
38
|
+
return problem;
|
|
39
|
+
return {
|
|
40
|
+
contentType: /\.svg$/i.test(name) ? "image/svg+xml" : "image/png",
|
|
41
|
+
sha256: createHash("sha256").update(data).digest("hex"),
|
|
42
|
+
data,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Downloads one icon URL under the marketplace network rules (https, public addresses or
|
|
47
|
+
* `allowPrivateHosts`, `net.httpsProxy`, no redirects, {@link MARKETPLACE_ICON_TIMEOUT_MS}, at
|
|
48
|
+
* most {@link MARKETPLACE_ICON_MAX_BYTES}) and checks it: the icon, or why it was not kept. Never
|
|
49
|
+
* throws (an abort of `signal` is a problem too).
|
|
50
|
+
*/
|
|
51
|
+
export async function fetchMarketplaceIcon(url, o) {
|
|
52
|
+
const problem = marketplaceUrlProblem(url, o.net.allowInsecureLoopback);
|
|
53
|
+
if (problem !== null)
|
|
54
|
+
return `invalid icon URL: ${problem}`;
|
|
55
|
+
const target = new URL(url);
|
|
56
|
+
const signal = AbortSignal.any([o.signal, AbortSignal.timeout(MARKETPLACE_ICON_TIMEOUT_MS)]);
|
|
57
|
+
try {
|
|
58
|
+
const res = await safeFetch(target.href, { signal }, o.net, {
|
|
59
|
+
maxBytes: MARKETPLACE_ICON_MAX_BYTES,
|
|
60
|
+
...(o.lookup !== undefined && { lookup: o.lookup }),
|
|
61
|
+
});
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
await res.body?.cancel().catch(() => { });
|
|
64
|
+
return `the icon URL responded with HTTP ${res.status}`;
|
|
65
|
+
}
|
|
66
|
+
const data = new Uint8Array(await res.arrayBuffer());
|
|
67
|
+
return checkMarketplaceIcon(target.pathname, data);
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
if (e instanceof NetDeniedError)
|
|
71
|
+
return `icon download refused: ${e.message}`;
|
|
72
|
+
return `cannot fetch the icon: ${e instanceof Error ? e.message : String(e)}`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The repository paths (relative to the root, without `./`) of the icons a git marketplace's
|
|
77
|
+
* manifest names, read leniently (the manifest is validated afterwards); for a single-plugin repo
|
|
78
|
+
* (no manifest) the root `plugin.json`'s icon. At most `max` paths.
|
|
79
|
+
*/
|
|
80
|
+
export function gitIconPaths(files, manifestPath, maxIndexBytes, max) {
|
|
81
|
+
const json = (raw) => {
|
|
82
|
+
if (raw === undefined || raw.byteLength > maxIndexBytes)
|
|
83
|
+
return undefined;
|
|
84
|
+
try {
|
|
85
|
+
return JSON.parse(new TextDecoder().decode(raw));
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
const paths = new Set();
|
|
92
|
+
const manifest = json(files.get(manifestPath));
|
|
93
|
+
if (files.has(manifestPath)) {
|
|
94
|
+
if (!Array.isArray(manifest?.plugins))
|
|
95
|
+
return [];
|
|
96
|
+
for (const p of manifest.plugins) {
|
|
97
|
+
const icon = p?.icon;
|
|
98
|
+
if (typeof icon === "string" && icon.startsWith("./") && MARKETPLACE_ICON_RE.test(icon)) {
|
|
99
|
+
paths.add(icon.slice(2));
|
|
100
|
+
}
|
|
101
|
+
if (paths.size >= max)
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
return [...paths];
|
|
105
|
+
}
|
|
106
|
+
const icon = json(files.get(PLUGIN_MANIFEST_FILE))?.icon;
|
|
107
|
+
return typeof icon === "string" && MARKETPLACE_ICON_RE.test(icon) ? [packagePath(icon)] : [];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The icons a refresh has to have for `entries` of a marketplace of `form`, as the entries write
|
|
111
|
+
* them (the stored `ref`): repository paths `./…` (git marketplaces only; an http marketplace has
|
|
112
|
+
* no repository) and URLs, each once.
|
|
113
|
+
*/
|
|
114
|
+
export function wantedIcons(entries, form) {
|
|
115
|
+
const paths = new Set();
|
|
116
|
+
const urls = new Set();
|
|
117
|
+
for (const e of entries) {
|
|
118
|
+
const icon = marketplaceEntryIcon(e);
|
|
119
|
+
if (icon === null)
|
|
120
|
+
continue;
|
|
121
|
+
if ("url" in icon)
|
|
122
|
+
urls.add(icon.url);
|
|
123
|
+
else if (form === "git")
|
|
124
|
+
paths.add(`./${icon.path}`);
|
|
125
|
+
}
|
|
126
|
+
return { paths, urls };
|
|
127
|
+
}
|
|
128
|
+
/** The admin route of a stored icon (content addressed: the URL changes with the bytes). */
|
|
129
|
+
export const marketplaceIconUrl = (sourceId, sha256) => `/api/v1/admin/marketplaces/${encodeURIComponent(sourceId)}/icons/${sha256}`;
|
|
130
|
+
/** The org browse route of a stored icon (org admins of `orgId`, like the org browse). */
|
|
131
|
+
export const orgMarketplaceIconUrl = (orgId) => (sourceId, sha256) => `/api/v1/orgs/${encodeURIComponent(orgId)}/marketplaces/${encodeURIComponent(sourceId)}/icons/${sha256}`;
|