@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
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
2
|
+
import { ApiError } from "../errors.js";
|
|
3
|
+
/** Where a theme is chosen (spec §7). */
|
|
4
|
+
export interface ThemeUsage {
|
|
5
|
+
/** It is the platform default (`uiTheme.id`). */
|
|
6
|
+
platformDefault: boolean;
|
|
7
|
+
/** The live orgs whose default it is, by name. */
|
|
8
|
+
orgDefaults: {
|
|
9
|
+
orgId: string;
|
|
10
|
+
orgName: string;
|
|
11
|
+
}[];
|
|
12
|
+
/** The accounts that picked it (`accounts.theme`). */
|
|
13
|
+
pickedBy: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* One theme a change takes away from some orgs, as a preview lists it (`themes?` of the scope,
|
|
17
|
+
* disable, uninstall and update previews): the orgs among those losing it whose default it is, and
|
|
18
|
+
* the number of people who picked it among those orgs' members (a preview never counts people of
|
|
19
|
+
* orgs it does not name).
|
|
20
|
+
*/
|
|
21
|
+
export interface ThemePreview {
|
|
22
|
+
id: string;
|
|
23
|
+
orgDefaults: {
|
|
24
|
+
orgId: string;
|
|
25
|
+
orgName: string;
|
|
26
|
+
}[];
|
|
27
|
+
pickedBy: number;
|
|
28
|
+
}
|
|
29
|
+
/** What a theme's availability is after a change: still `all`, narrower, or gone. */
|
|
30
|
+
export type ThemeAfter = "all" | "narrower" | "gone";
|
|
31
|
+
/**
|
|
32
|
+
* The platform default theme's id (null: the built-in theme, or not set), through the setting's
|
|
33
|
+
* typed reader; `lock`: the row is read FOR SHARE, so a concurrent write of the setting (which
|
|
34
|
+
* locks it FOR UPDATE first, see `SettingsService`) waits for the caller's transaction, and the
|
|
35
|
+
* reverse.
|
|
36
|
+
*/
|
|
37
|
+
export declare function platformDefaultThemeId(db: KernelSchemaDb, opts?: {
|
|
38
|
+
lock?: boolean;
|
|
39
|
+
}): Promise<string | null>;
|
|
40
|
+
/** Where theme `themeId` (a `platform_themes` id) is chosen: see {@link ThemeUsage}. */
|
|
41
|
+
export declare function themeUsage(db: KernelSchemaDb, themeId: string): Promise<ThemeUsage>;
|
|
42
|
+
/**
|
|
43
|
+
* The `themes` block of a preview: for each theme of `lost` (theme id -> the orgs losing it) that
|
|
44
|
+
* some org loses, the orgs among those whose default it is and how many of their members picked
|
|
45
|
+
* it, by id.
|
|
46
|
+
* Undefined when no theme is lost, so a preview without themes keeps its shape and its hash.
|
|
47
|
+
*/
|
|
48
|
+
export declare function themesPreview(db: KernelSchemaDb, lost: ReadonlyMap<string, ReadonlySet<string>>): Promise<ThemePreview[] | undefined>;
|
|
49
|
+
/** How many members of `orgs` (each counted once) picked theme `id`. */
|
|
50
|
+
export declare function pickedByIn(db: KernelSchemaDb, id: string, orgs: ReadonlySet<string>): Promise<number>;
|
|
51
|
+
/** 409 `theme.platform_default`: theme `theme` is the platform default (spec §7). */
|
|
52
|
+
export declare const platformDefaultError: (theme: string) => ApiError;
|
|
53
|
+
/**
|
|
54
|
+
* Refuses a change that takes the platform default theme away from any org (spec §7): when one of
|
|
55
|
+
* `themeIds` is the platform default and `after` says it would no longer be `all` (narrower, or
|
|
56
|
+
* gone), 409 `theme.platform_default`. Call it in the change's transaction before anything is
|
|
57
|
+
* written, after locking the catalog item or theme rows the change touches (the one theme lock
|
|
58
|
+
* order: catalog item, theme row, then the `uiTheme` row, which this reads FOR SHARE; the setting's
|
|
59
|
+
* write takes them in the same order).
|
|
60
|
+
*/
|
|
61
|
+
export declare function assertNotPlatformDefault(db: KernelSchemaDb, themeIds: readonly string[], after: (id: string) => ThemeAfter): Promise<void>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Who uses a theme (themes spec §6 "Losing access", §7): the platform default (`deployment_settings`
|
|
2
|
+
// key `uiTheme`), the orgs whose default it is (`orgs.settings.theme.id`) and the people who picked
|
|
3
|
+
// it (`accounts.theme`); the previews of changes that take a theme away list them, and the guard
|
|
4
|
+
// refuses any change that takes the platform default away from an org. Plain reads in the caller's
|
|
5
|
+
// context (a transaction's connection when there is one). The settings are read through the same
|
|
6
|
+
// readers and schemas as their services (`readUiTheme`, `parseOrgSettings`), so the two never drift.
|
|
7
|
+
import { sql } from "kysely";
|
|
8
|
+
import { ApiError } from "../errors.js";
|
|
9
|
+
import { readUiTheme, UI_THEME_SETTING } from "../identity/settings.js";
|
|
10
|
+
import { parseOrgSettings } from "../orgs/settings.service.js";
|
|
11
|
+
/**
|
|
12
|
+
* The platform default theme's id (null: the built-in theme, or not set), through the setting's
|
|
13
|
+
* typed reader; `lock`: the row is read FOR SHARE, so a concurrent write of the setting (which
|
|
14
|
+
* locks it FOR UPDATE first, see `SettingsService`) waits for the caller's transaction, and the
|
|
15
|
+
* reverse.
|
|
16
|
+
*/
|
|
17
|
+
export async function platformDefaultThemeId(db, opts = {}) {
|
|
18
|
+
return (await readUiTheme(db, opts)).id;
|
|
19
|
+
}
|
|
20
|
+
/** Where theme `themeId` (a `platform_themes` id) is chosen: see {@link ThemeUsage}. */
|
|
21
|
+
export async function themeUsage(db, themeId) {
|
|
22
|
+
const platformDefault = (await platformDefaultThemeId(db)) === themeId;
|
|
23
|
+
// the jsonb filter narrows the rows; the typed parse decides (an invalid stored value is no default)
|
|
24
|
+
const orgs = (await db
|
|
25
|
+
.selectFrom("orgs")
|
|
26
|
+
.select(["id", "name", "settings"])
|
|
27
|
+
.where("deleted_at", "is", null)
|
|
28
|
+
.where(sql `settings -> 'theme' ->> 'id'`, "=", themeId)
|
|
29
|
+
.orderBy("name")
|
|
30
|
+
.orderBy("id")
|
|
31
|
+
.execute()).filter((o) => parseOrgSettings(o.settings).theme?.id === themeId);
|
|
32
|
+
const picked = await db
|
|
33
|
+
.selectFrom("accounts")
|
|
34
|
+
.select((eb) => eb.fn.countAll().as("n"))
|
|
35
|
+
.where("theme", "=", themeId)
|
|
36
|
+
.executeTakeFirstOrThrow();
|
|
37
|
+
return {
|
|
38
|
+
platformDefault,
|
|
39
|
+
orgDefaults: orgs.map((o) => ({ orgId: o.id, orgName: o.name })),
|
|
40
|
+
pickedBy: Number(picked.n),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The `themes` block of a preview: for each theme of `lost` (theme id -> the orgs losing it) that
|
|
45
|
+
* some org loses, the orgs among those whose default it is and how many of their members picked
|
|
46
|
+
* it, by id.
|
|
47
|
+
* Undefined when no theme is lost, so a preview without themes keeps its shape and its hash.
|
|
48
|
+
*/
|
|
49
|
+
export async function themesPreview(db, lost) {
|
|
50
|
+
const out = [];
|
|
51
|
+
for (const id of [...lost.keys()].sort()) {
|
|
52
|
+
const orgs = lost.get(id);
|
|
53
|
+
if (!orgs || orgs.size === 0)
|
|
54
|
+
continue;
|
|
55
|
+
const u = await themeUsage(db, id);
|
|
56
|
+
out.push({
|
|
57
|
+
id,
|
|
58
|
+
orgDefaults: u.orgDefaults.filter((o) => orgs.has(o.orgId)),
|
|
59
|
+
pickedBy: await pickedByIn(db, id, orgs),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return out.length > 0 ? out : undefined;
|
|
63
|
+
}
|
|
64
|
+
/** How many members of `orgs` (each counted once) picked theme `id`. */
|
|
65
|
+
export async function pickedByIn(db, id, orgs) {
|
|
66
|
+
if (orgs.size === 0)
|
|
67
|
+
return 0;
|
|
68
|
+
const picked = await db
|
|
69
|
+
.selectFrom("accounts as a")
|
|
70
|
+
.select((eb) => eb.fn.count("a.id").distinct().as("n"))
|
|
71
|
+
.where("a.theme", "=", id)
|
|
72
|
+
.where((eb) => eb.exists(eb
|
|
73
|
+
.selectFrom("memberships as m")
|
|
74
|
+
.select("m.account_id")
|
|
75
|
+
.whereRef("m.account_id", "=", "a.id")
|
|
76
|
+
.where("m.org_id", "in", [...orgs])))
|
|
77
|
+
.executeTakeFirstOrThrow();
|
|
78
|
+
return Number(picked.n);
|
|
79
|
+
}
|
|
80
|
+
/** 409 `theme.platform_default`: theme `theme` is the platform default (spec §7). */
|
|
81
|
+
export const platformDefaultError = (theme) => new ApiError("theme.platform_default", `Theme ${theme} is the platform default theme (setting ${UI_THEME_SETTING}): it must stay on in every organization. Choose another platform default theme first, then narrow, disable or remove this one`, [{ theme, setting: UI_THEME_SETTING }]);
|
|
82
|
+
/**
|
|
83
|
+
* Refuses a change that takes the platform default theme away from any org (spec §7): when one of
|
|
84
|
+
* `themeIds` is the platform default and `after` says it would no longer be `all` (narrower, or
|
|
85
|
+
* gone), 409 `theme.platform_default`. Call it in the change's transaction before anything is
|
|
86
|
+
* written, after locking the catalog item or theme rows the change touches (the one theme lock
|
|
87
|
+
* order: catalog item, theme row, then the `uiTheme` row, which this reads FOR SHARE; the setting's
|
|
88
|
+
* write takes them in the same order).
|
|
89
|
+
*/
|
|
90
|
+
export async function assertNotPlatformDefault(db, themeIds, after) {
|
|
91
|
+
if (themeIds.length === 0)
|
|
92
|
+
return;
|
|
93
|
+
const id = await platformDefaultThemeId(db, { lock: true });
|
|
94
|
+
if (id === null || !themeIds.includes(id))
|
|
95
|
+
return;
|
|
96
|
+
if (after(id) !== "all")
|
|
97
|
+
throw platformDefaultError(id);
|
|
98
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FastifyReply } from "fastify";
|
|
2
|
+
import { ThemeDeliveryService } from "./theme-delivery.service.js";
|
|
3
|
+
import type { ThemeRef } from "./theme-state.js";
|
|
4
|
+
import { ThemesService } from "./themes.service.js";
|
|
5
|
+
/**
|
|
6
|
+
* Theme delivery (themes spec §8): every theme version's stylesheet and assets, public (styles are
|
|
7
|
+
* not sensitive; the URLs reveal only that the theme exists) and immutable. The URLs are the ones
|
|
8
|
+
* `themeUrl` builds; an unknown theme, version or file is 404 `theme.not_found`.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ThemeDeliveryController {
|
|
11
|
+
private readonly delivery;
|
|
12
|
+
constructor(delivery: ThemeDeliveryService);
|
|
13
|
+
/** The version's stylesheet: scheme overrides, `@font-face` rules and font stacks. */
|
|
14
|
+
css(id: string, version: string, reply: FastifyReply): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* A font (`font/woff2`) or logo (`image/svg+xml`, sanitized at import, served under a CSP
|
|
17
|
+
* sandbox; `image/png`) the version names; `file` is its plugin path as one segment
|
|
18
|
+
* (`fonts%2FMiSans.woff2`).
|
|
19
|
+
*/
|
|
20
|
+
asset(id: string, version: string, file: string, reply: FastifyReply): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/** The platform default theme for pages before sign-in (themes spec §8-§9), public. */
|
|
23
|
+
export declare class PlatformThemeController {
|
|
24
|
+
private readonly themes;
|
|
25
|
+
constructor(themes: ThemesService);
|
|
26
|
+
/** The platform default's reference while it is eligible; null: the built-in theme. */
|
|
27
|
+
platformTheme(): Promise<ThemeRef | null>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
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 { Controller, Get, Header, Inject, Param, Res } from "@nestjs/common";
|
|
11
|
+
import { Public } from "../identity/principal.js";
|
|
12
|
+
import { ThemeDeliveryService } from "./theme-delivery.service.js";
|
|
13
|
+
import { ThemesService } from "./themes.service.js";
|
|
14
|
+
/** A theme version's stylesheet and assets never change (the version is in the URL). */
|
|
15
|
+
const IMMUTABLE = "public, max-age=31536000, immutable";
|
|
16
|
+
/**
|
|
17
|
+
* Theme delivery (themes spec §8): every theme version's stylesheet and assets, public (styles are
|
|
18
|
+
* not sensitive; the URLs reveal only that the theme exists) and immutable. The URLs are the ones
|
|
19
|
+
* `themeUrl` builds; an unknown theme, version or file is 404 `theme.not_found`.
|
|
20
|
+
*/
|
|
21
|
+
let ThemeDeliveryController = class ThemeDeliveryController {
|
|
22
|
+
delivery;
|
|
23
|
+
constructor(delivery) {
|
|
24
|
+
this.delivery = delivery;
|
|
25
|
+
}
|
|
26
|
+
/** The version's stylesheet: scheme overrides, `@font-face` rules and font stacks. */
|
|
27
|
+
async css(id, version, reply) {
|
|
28
|
+
const css = await this.delivery.stylesheet(id, version);
|
|
29
|
+
await reply
|
|
30
|
+
.header("content-type", "text/css; charset=utf-8")
|
|
31
|
+
.header("x-content-type-options", "nosniff")
|
|
32
|
+
.header("cache-control", IMMUTABLE)
|
|
33
|
+
.send(css);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A font (`font/woff2`) or logo (`image/svg+xml`, sanitized at import, served under a CSP
|
|
37
|
+
* sandbox; `image/png`) the version names; `file` is its plugin path as one segment
|
|
38
|
+
* (`fonts%2FMiSans.woff2`).
|
|
39
|
+
*/
|
|
40
|
+
async asset(id, version, file, reply) {
|
|
41
|
+
const a = await this.delivery.asset(id, version, file);
|
|
42
|
+
reply
|
|
43
|
+
.header("content-type", a.contentType)
|
|
44
|
+
.header("x-content-type-options", "nosniff")
|
|
45
|
+
.header("cache-control", IMMUTABLE);
|
|
46
|
+
if (a.contentType === "image/svg+xml") {
|
|
47
|
+
reply.header("content-security-policy", "default-src 'none'; sandbox");
|
|
48
|
+
}
|
|
49
|
+
await reply.send(Buffer.from(a.data.buffer, a.data.byteOffset, a.data.byteLength));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
__decorate([
|
|
53
|
+
Public(),
|
|
54
|
+
Get("theme.css"),
|
|
55
|
+
__param(0, Param("id")),
|
|
56
|
+
__param(1, Param("version")),
|
|
57
|
+
__param(2, Res())
|
|
58
|
+
], ThemeDeliveryController.prototype, "css", null);
|
|
59
|
+
__decorate([
|
|
60
|
+
Public(),
|
|
61
|
+
Get("assets/:file"),
|
|
62
|
+
__param(0, Param("id")),
|
|
63
|
+
__param(1, Param("version")),
|
|
64
|
+
__param(2, Param("file")),
|
|
65
|
+
__param(3, Res())
|
|
66
|
+
], ThemeDeliveryController.prototype, "asset", null);
|
|
67
|
+
ThemeDeliveryController = __decorate([
|
|
68
|
+
Controller("api/v1/themes/:id/:version"),
|
|
69
|
+
__param(0, Inject(ThemeDeliveryService))
|
|
70
|
+
], ThemeDeliveryController);
|
|
71
|
+
export { ThemeDeliveryController };
|
|
72
|
+
/** The platform default theme for pages before sign-in (themes spec §8-§9), public. */
|
|
73
|
+
let PlatformThemeController = class PlatformThemeController {
|
|
74
|
+
themes;
|
|
75
|
+
constructor(themes) {
|
|
76
|
+
this.themes = themes;
|
|
77
|
+
}
|
|
78
|
+
/** The platform default's reference while it is eligible; null: the built-in theme. */
|
|
79
|
+
platformTheme() {
|
|
80
|
+
return this.themes.platformDefault();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
__decorate([
|
|
84
|
+
Public(),
|
|
85
|
+
Get(),
|
|
86
|
+
Header("cache-control", "no-store")
|
|
87
|
+
], PlatformThemeController.prototype, "platformTheme", null);
|
|
88
|
+
PlatformThemeController = __decorate([
|
|
89
|
+
Controller("api/v1/platform/theme"),
|
|
90
|
+
__param(0, Inject(ThemesService))
|
|
91
|
+
], PlatformThemeController);
|
|
92
|
+
export { PlatformThemeController };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Principal } from "../identity/principal.js";
|
|
2
|
+
import { type OrgContext } from "../orgs/org.guard.js";
|
|
3
|
+
import { type OrgThemes, ThemesService } from "./themes.service.js";
|
|
4
|
+
/** The org's themes (`/api/v1/orgs/:orgId/themes`, themes spec §9): members only. */
|
|
5
|
+
export declare class OrgThemesController {
|
|
6
|
+
private readonly themes;
|
|
7
|
+
constructor(themes: ThemesService);
|
|
8
|
+
/**
|
|
9
|
+
* `{ themes, resolved, org }`: the themes on in the org (with swatches), the viewer's resolved
|
|
10
|
+
* theme (null: the built-in one) and the org's default and personal lock.
|
|
11
|
+
*/
|
|
12
|
+
list(principal: Principal, org: OrgContext): Promise<OrgThemes>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 { Controller, Get, Inject } from "@nestjs/common";
|
|
11
|
+
import { CurrentPrincipal } from "../identity/principal.js";
|
|
12
|
+
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
13
|
+
import { ThemesService } from "./themes.service.js";
|
|
14
|
+
/** The org's themes (`/api/v1/orgs/:orgId/themes`, themes spec §9): members only. */
|
|
15
|
+
let OrgThemesController = class OrgThemesController {
|
|
16
|
+
themes;
|
|
17
|
+
constructor(themes) {
|
|
18
|
+
this.themes = themes;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* `{ themes, resolved, org }`: the themes on in the org (with swatches), the viewer's resolved
|
|
22
|
+
* theme (null: the built-in one) and the org's default and personal lock.
|
|
23
|
+
*/
|
|
24
|
+
async list(principal, org) {
|
|
25
|
+
return this.themes.forOrg(org.orgId, principal.kind === "user" ? principal.account.id : null);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
__decorate([
|
|
29
|
+
Get(),
|
|
30
|
+
OrgAction("org.read"),
|
|
31
|
+
__param(0, CurrentPrincipal()),
|
|
32
|
+
__param(1, CurrentOrg())
|
|
33
|
+
], OrgThemesController.prototype, "list", null);
|
|
34
|
+
OrgThemesController = __decorate([
|
|
35
|
+
Controller("api/v1/orgs/:orgId/themes"),
|
|
36
|
+
__param(0, Inject(ThemesService))
|
|
37
|
+
], OrgThemesController);
|
|
38
|
+
export { OrgThemesController };
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { StorageModule } from "../storage/storage.module.js";
|
|
9
|
+
import { ThemeDeliveryService } from "./theme-delivery.service.js";
|
|
10
|
+
import { ThemesService } from "./themes.service.js";
|
|
11
|
+
/** Themes (themes spec §7-§9): resolution, the org's theme listing and delivery. */
|
|
12
|
+
let ThemesModule = class ThemesModule {
|
|
13
|
+
};
|
|
14
|
+
ThemesModule = __decorate([
|
|
15
|
+
Module({
|
|
16
|
+
imports: [StorageModule],
|
|
17
|
+
providers: [ThemesService, ThemeDeliveryService],
|
|
18
|
+
exports: [ThemesService, ThemeDeliveryService],
|
|
19
|
+
})
|
|
20
|
+
], ThemesModule);
|
|
21
|
+
export { ThemesModule };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { LocalizedName } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
3
|
+
import { type ListedTheme, type ThemeRef } from "./theme-state.js";
|
|
4
|
+
/** `GET /api/v1/orgs/:orgId/themes` (themes spec §9). */
|
|
5
|
+
export interface OrgThemes {
|
|
6
|
+
/** The themes on in the org, by English name. */
|
|
7
|
+
themes: ListedTheme[];
|
|
8
|
+
/** The viewer's theme ({@link ThemesService.resolve}); null: the built-in theme. */
|
|
9
|
+
resolved: ThemeRef | null;
|
|
10
|
+
/**
|
|
11
|
+
* The org's setting as stored: its default (null: follow the platform) and the personal lock.
|
|
12
|
+
* The stored id may name a theme absent from `themes` (it went off in the org after it was
|
|
13
|
+
* chosen; resolution skips it): the UI shows it as unavailable, not as selected.
|
|
14
|
+
*/
|
|
15
|
+
org: {
|
|
16
|
+
id: string | null;
|
|
17
|
+
personal: "allowed" | "locked";
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Which theme applies (themes spec §7) and the org's theme listing. Read-only; the levels are
|
|
22
|
+
* written by their settings services (deployment, org, person), which check availability with the
|
|
23
|
+
* same predicates (`theme-state.ts`).
|
|
24
|
+
*/
|
|
25
|
+
export declare class ThemesService {
|
|
26
|
+
private readonly db;
|
|
27
|
+
constructor(db: KernelDb);
|
|
28
|
+
/** The themes on in the org with their references and swatches, by English name then id. */
|
|
29
|
+
listForOrg(orgId: string): Promise<ListedTheme[]>;
|
|
30
|
+
/**
|
|
31
|
+
* The theme of a signed-in page in the org (spec §7): the person's pick if it is on in the org
|
|
32
|
+
* and the org does not lock; else the org's default if on; else the platform default if on in
|
|
33
|
+
* the org; else null (the built-in theme). An unavailable choice is skipped, never an error.
|
|
34
|
+
* `accountId` null (a service token): no personal pick.
|
|
35
|
+
*/
|
|
36
|
+
resolve(orgId: string, accountId: string | null): Promise<ThemeRef | null>;
|
|
37
|
+
/** The platform default for pages before sign-in, when it is still eligible (spec §7); else null. */
|
|
38
|
+
platformDefault(): Promise<ThemeRef | null>;
|
|
39
|
+
/**
|
|
40
|
+
* The listing, the viewer's resolved theme and the org's setting. Separate reads, not one
|
|
41
|
+
* snapshot: a change committed between them shows at the next read.
|
|
42
|
+
*/
|
|
43
|
+
forOrg(orgId: string, accountId: string | null): Promise<OrgThemes>;
|
|
44
|
+
/** A live theme's name (the super admin's summaries); null when there is no such theme. */
|
|
45
|
+
nameOf(id: string): Promise<LocalizedName | null>;
|
|
46
|
+
/** Theme `id`'s name if it is on in the org, else null (a summary never names another org's theme). */
|
|
47
|
+
nameIn(orgId: string, id: string): Promise<LocalizedName | null>;
|
|
48
|
+
/** Theme `id`'s name if it is on in one of the person's orgs, else null (same reason). */
|
|
49
|
+
nameForAccount(accountId: string, id: string): Promise<LocalizedName | null>;
|
|
50
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
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 { readUiTheme } from "../identity/settings.js";
|
|
12
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
13
|
+
import { DEFAULT_ORG_THEME, readOrgSettings } from "../orgs/settings.service.js";
|
|
14
|
+
import { eligiblePlatformDefault, themeDefinitions, themeOnForAccount, themeOnIn, themeRefOf, themeSwatches, themesOnIn, } from "./theme-state.js";
|
|
15
|
+
/**
|
|
16
|
+
* Which theme applies (themes spec §7) and the org's theme listing. Read-only; the levels are
|
|
17
|
+
* written by their settings services (deployment, org, person), which check availability with the
|
|
18
|
+
* same predicates (`theme-state.ts`).
|
|
19
|
+
*/
|
|
20
|
+
let ThemesService = class ThemesService {
|
|
21
|
+
db;
|
|
22
|
+
constructor(db) {
|
|
23
|
+
this.db = db;
|
|
24
|
+
}
|
|
25
|
+
/** The themes on in the org with their references and swatches, by English name then id. */
|
|
26
|
+
async listForOrg(orgId) {
|
|
27
|
+
const on = await themesOnIn(this.db.db, orgId);
|
|
28
|
+
const defs = await themeDefinitions(this.db.db, on.map((c) => c.id));
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const c of on) {
|
|
31
|
+
const d = defs.get(c.id);
|
|
32
|
+
if (!d)
|
|
33
|
+
continue;
|
|
34
|
+
out.push({
|
|
35
|
+
...themeRefOf(c.id, d.version, d.definition),
|
|
36
|
+
swatches: themeSwatches(d.definition),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return out.sort((a, b) => a.name.en < b.name.en ? -1 : a.name.en > b.name.en ? 1 : a.id < b.id ? -1 : 1);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The theme of a signed-in page in the org (spec §7): the person's pick if it is on in the org
|
|
43
|
+
* and the org does not lock; else the org's default if on; else the platform default if on in
|
|
44
|
+
* the org; else null (the built-in theme). An unavailable choice is skipped, never an error.
|
|
45
|
+
* `accountId` null (a service token): no personal pick.
|
|
46
|
+
*/
|
|
47
|
+
async resolve(orgId, accountId) {
|
|
48
|
+
return (await this.forOrg(orgId, accountId)).resolved;
|
|
49
|
+
}
|
|
50
|
+
/** The platform default for pages before sign-in, when it is still eligible (spec §7); else null. */
|
|
51
|
+
async platformDefault() {
|
|
52
|
+
const { id } = await readUiTheme(this.db.db);
|
|
53
|
+
if (id === null || (await eligiblePlatformDefault(this.db.db, id)) === null)
|
|
54
|
+
return null;
|
|
55
|
+
const d = (await themeDefinitions(this.db.db, [id])).get(id);
|
|
56
|
+
return d ? themeRefOf(id, d.version, d.definition) : null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The listing, the viewer's resolved theme and the org's setting. Separate reads, not one
|
|
60
|
+
* snapshot: a change committed between them shows at the next read.
|
|
61
|
+
*/
|
|
62
|
+
async forOrg(orgId, accountId) {
|
|
63
|
+
const themes = await this.listForOrg(orgId);
|
|
64
|
+
const org = (await readOrgSettings(this.db.db, orgId)).theme ?? DEFAULT_ORG_THEME;
|
|
65
|
+
const pick = accountId === null || org.personal === "locked"
|
|
66
|
+
? null
|
|
67
|
+
: ((await this.db
|
|
68
|
+
.selectFrom("accounts")
|
|
69
|
+
.select("theme")
|
|
70
|
+
.where("id", "=", accountId)
|
|
71
|
+
.executeTakeFirst())?.theme ?? null);
|
|
72
|
+
const platform = (await readUiTheme(this.db.db)).id;
|
|
73
|
+
const on = (id) => (id === null ? undefined : themes.find((t) => t.id === id));
|
|
74
|
+
const hit = on(pick) ?? on(org.id) ?? on(platform);
|
|
75
|
+
let resolved = null;
|
|
76
|
+
if (hit) {
|
|
77
|
+
const { swatches: _swatches, ...ref } = hit;
|
|
78
|
+
resolved = ref;
|
|
79
|
+
}
|
|
80
|
+
return { themes, resolved, org: { id: org.id, personal: org.personal } };
|
|
81
|
+
}
|
|
82
|
+
/** A live theme's name (the super admin's summaries); null when there is no such theme. */
|
|
83
|
+
async nameOf(id) {
|
|
84
|
+
return (await themeDefinitions(this.db.db, [id])).get(id)?.definition.name ?? null;
|
|
85
|
+
}
|
|
86
|
+
/** Theme `id`'s name if it is on in the org, else null (a summary never names another org's theme). */
|
|
87
|
+
async nameIn(orgId, id) {
|
|
88
|
+
return (await themeOnIn(this.db.db, orgId, id)) ? this.nameOf(id) : null;
|
|
89
|
+
}
|
|
90
|
+
/** Theme `id`'s name if it is on in one of the person's orgs, else null (same reason). */
|
|
91
|
+
async nameForAccount(accountId, id) {
|
|
92
|
+
return (await themeOnForAccount(this.db.db, accountId, id)) ? this.nameOf(id) : null;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
ThemesService = __decorate([
|
|
96
|
+
Injectable(),
|
|
97
|
+
__param(0, Inject(KernelDb))
|
|
98
|
+
], ThemesService);
|
|
99
|
+
export { ThemesService };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Whether `tz` is an IANA time zone this runtime knows (run context spec §3.3, §3.4). */
|
|
3
|
+
export declare function isTimeZone(tz: string): boolean;
|
|
4
|
+
/** An IANA time zone name, checked with `Intl.DateTimeFormat`. */
|
|
5
|
+
export declare const IanaTimeZone: z.ZodString;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Whether `tz` is an IANA time zone this runtime knows (run context spec §3.3, §3.4). */
|
|
3
|
+
export function isTimeZone(tz) {
|
|
4
|
+
if (tz === "" || tz.length > 64)
|
|
5
|
+
return false;
|
|
6
|
+
try {
|
|
7
|
+
new Intl.DateTimeFormat("en", { timeZone: tz });
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** An IANA time zone name, checked with `Intl.DateTimeFormat`. */
|
|
15
|
+
export const IanaTimeZone = z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.max(64)
|
|
19
|
+
.refine(isTimeZone, "must be an IANA time zone name, such as Asia/Shanghai");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type Principal } from "../identity/principal.js";
|
|
3
3
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
4
|
-
import { type ApprovalRecord,
|
|
4
|
+
import { type ApprovalRecord, ApprovalsService, type ApprovalView, type ToolGrantView } from "./approvals.service.js";
|
|
5
5
|
declare const ListQuery: z.ZodObject<{
|
|
6
6
|
status: z.ZodOptional<z.ZodEnum<{
|
|
7
7
|
approved: "approved";
|
|
@@ -7,17 +7,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { Controller, Delete, Get, HttpCode, Inject, Param, Post } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
|
-
import { APPROVALS } from "../http/tokens.js";
|
|
13
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
14
12
|
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
13
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
14
|
+
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
15
15
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
16
16
|
import { CONTROL_OR_HIDDEN_RE } from "../text.js";
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.strict();
|
|
17
|
+
import { ApprovalsListQuerySchema } from "./approvals.schemas.js";
|
|
18
|
+
import { APPROVAL_DENY_REASON_MAX_CHARS, ApprovalsService, } from "./approvals.service.js";
|
|
19
|
+
const ListQuery = ApprovalsListQuerySchema;
|
|
21
20
|
const DecisionBody = z
|
|
22
21
|
.object({
|
|
23
22
|
decision: z.enum(["approve", "deny"]),
|
|
@@ -39,6 +38,10 @@ const DecisionBody = z
|
|
|
39
38
|
path: ["reason"],
|
|
40
39
|
message: "A reason can only be given with deny",
|
|
41
40
|
});
|
|
41
|
+
class ApprovalsListQuery extends createZodDto(ListQuery, "ApprovalsListQuery") {
|
|
42
|
+
}
|
|
43
|
+
class ApprovalDecisionBody extends createZodDto(DecisionBody, "ApprovalDecisionBody") {
|
|
44
|
+
}
|
|
42
45
|
/**
|
|
43
46
|
* 工具调用审批(`/api/v1/orgs/:orgId/approvals`,`approvals.decide`:访客起、仅限用户主体——agent 不能审批,R2)。
|
|
44
47
|
* 能否看到 / 处理某条审批由 `requested_for` / `approver_role` 判定(见 `ApprovalsService`),看不到的一律 404。
|
|
@@ -68,7 +71,7 @@ __decorate([
|
|
|
68
71
|
OrgAction("approvals.decide"),
|
|
69
72
|
__param(0, CurrentPrincipal()),
|
|
70
73
|
__param(1, CurrentOrg()),
|
|
71
|
-
__param(2,
|
|
74
|
+
__param(2, ZQuery(ApprovalsListQuery))
|
|
72
75
|
], ApprovalsController.prototype, "list", null);
|
|
73
76
|
__decorate([
|
|
74
77
|
Get(":id"),
|
|
@@ -84,11 +87,11 @@ __decorate([
|
|
|
84
87
|
__param(0, CurrentPrincipal()),
|
|
85
88
|
__param(1, CurrentOrg()),
|
|
86
89
|
__param(2, Param("id")),
|
|
87
|
-
__param(3,
|
|
90
|
+
__param(3, ZBody(ApprovalDecisionBody))
|
|
88
91
|
], ApprovalsController.prototype, "decide", null);
|
|
89
92
|
ApprovalsController = __decorate([
|
|
90
93
|
Controller("api/v1/orgs/:orgId/approvals"),
|
|
91
|
-
__param(0, Inject(
|
|
94
|
+
__param(0, Inject(ApprovalsService))
|
|
92
95
|
], ApprovalsController);
|
|
93
96
|
export { ApprovalsController };
|
|
94
97
|
/** 本人的「以后都允许」授权(`/api/v1/orgs/:orgId/me/tool-grants`):查看与撤销,只动自己的。 */
|
|
@@ -123,6 +126,6 @@ __decorate([
|
|
|
123
126
|
], ToolGrantsController.prototype, "revoke", null);
|
|
124
127
|
ToolGrantsController = __decorate([
|
|
125
128
|
Controller("api/v1/orgs/:orgId/me/tool-grants"),
|
|
126
|
-
__param(0, Inject(
|
|
129
|
+
__param(0, Inject(ApprovalsService))
|
|
127
130
|
], ToolGrantsController);
|
|
128
131
|
export { ToolGrantsController };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { RouteSchemas } from "../platform/route-schemas.js";
|
|
3
|
+
/** `GET /approvals?status=`: absent lists every status. */
|
|
4
|
+
export declare const ApprovalsListQuerySchema: z.ZodObject<{
|
|
5
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
6
|
+
approved: "approved";
|
|
7
|
+
cancelled: "cancelled";
|
|
8
|
+
denied: "denied";
|
|
9
|
+
expired: "expired";
|
|
10
|
+
pending: "pending";
|
|
11
|
+
}>>;
|
|
12
|
+
}, z.core.$strict>;
|
|
13
|
+
/** `:id` of `GET /approvals/:id`, as the route takes it (`@Param`). */
|
|
14
|
+
export declare const ApprovalPathParams: z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
/**
|
|
18
|
+
* The approval reads a Platform operation mirrors. Deciding (`POST /approvals/:id/decision`) is a
|
|
19
|
+
* person's act and stays excluded (spec §6.4, §14.1 item 2), so it has no entry here.
|
|
20
|
+
*/
|
|
21
|
+
export declare const APPROVAL_ROUTES: readonly RouteSchemas[];
|