@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.20
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-agents.controller.d.ts +28 -0
- package/dist/admin/admin-agents.controller.js +79 -0
- package/dist/admin/admin-connectors.controller.d.ts +29 -0
- package/dist/admin/admin-connectors.controller.js +79 -0
- package/dist/admin/admin-items.schemas.d.ts +42 -0
- package/dist/admin/admin-items.schemas.js +48 -0
- package/dist/admin/admin.controller.d.ts +52 -80
- package/dist/admin/admin.controller.js +112 -81
- package/dist/admin/admin.module.d.ts +4 -1
- package/dist/admin/admin.module.js +50 -4
- package/dist/admin/admin.schemas.d.ts +69 -0
- package/dist/admin/admin.schemas.js +53 -0
- package/dist/admin/audit.controller.d.ts +14 -0
- package/dist/admin/audit.controller.js +42 -0
- package/dist/admin/audit.schemas.d.ts +8 -0
- package/dist/admin/audit.schemas.js +17 -0
- package/dist/admin/extensions.controller.d.ts +34 -3
- package/dist/admin/extensions.controller.js +66 -8
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/health.service.d.ts +104 -0
- package/dist/admin/health.service.js +246 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/overview.controller.d.ts +31 -0
- package/dist/admin/overview.controller.js +78 -0
- package/dist/admin/overview.schemas.d.ts +8 -0
- package/dist/admin/overview.schemas.js +13 -0
- package/dist/admin/overview.service.d.ts +112 -0
- package/dist/admin/overview.service.js +223 -0
- package/dist/admin/platform-audit.service.d.ts +41 -0
- package/dist/admin/platform-audit.service.js +70 -0
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/admin/usage.service.d.ts +149 -0
- package/dist/admin/usage.service.js +321 -0
- package/dist/agents/admin-agents.d.ts +92 -0
- package/dist/agents/admin-agents.js +170 -0
- package/dist/agents/agent-lookup.d.ts +24 -0
- package/dist/agents/agent-lookup.js +46 -2
- 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 +53 -168
- package/dist/agents/agents.controller.js +163 -34
- package/dist/agents/agents.module.d.ts +6 -2
- package/dist/agents/agents.module.js +41 -7
- package/dist/agents/agents.schemas.d.ts +392 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +121 -36
- package/dist/agents/agents.service.js +411 -121
- package/dist/agents/definition.d.ts +142 -21
- package/dist/agents/definition.js +389 -43
- 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 +876 -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 +77 -5
- package/dist/agents/templates.controller.js +153 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +482 -44
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -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 +109 -0
- package/dist/background/tasks.service.js +271 -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 +136 -52
- package/dist/catalog/admin-catalog.controller.js +275 -65
- package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
- package/dist/catalog/admin-catalog.schemas.js +99 -0
- package/dist/catalog/appearance.schemas.d.ts +10 -0
- package/dist/catalog/appearance.schemas.js +20 -0
- package/dist/catalog/appearance.service.d.ts +105 -0
- package/dist/catalog/appearance.service.js +306 -0
- package/dist/catalog/catalog-content.d.ts +122 -35
- package/dist/catalog/catalog-content.js +122 -14
- package/dist/catalog/catalog-files.d.ts +42 -0
- package/dist/catalog/catalog-files.js +89 -0
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +63 -0
- package/dist/catalog/catalog-items.d.ts +122 -7
- package/dist/catalog/catalog-items.js +301 -13
- package/dist/catalog/catalog-scope.service.d.ts +293 -0
- package/dist/catalog/catalog-scope.service.js +1236 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +47 -31
- package/dist/catalog/catalog.service.d.ts +122 -31
- package/dist/catalog/catalog.service.js +177 -105
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +29 -1
- 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 +102 -0
- package/dist/catalog/component-scope.controller.js +257 -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 +394 -0
- package/dist/catalog/component-scope.service.js +1133 -0
- package/dist/catalog/component-state.d.ts +207 -0
- package/dist/catalog/component-state.js +484 -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 +30 -0
- package/dist/catalog/job-ids.js +25 -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 +50 -41
- package/dist/catalog/marketplaces.controller.js +130 -46
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +110 -17
- package/dist/catalog/marketplaces.service.js +337 -29
- package/dist/catalog/org-catalog.controller.d.ts +114 -62
- package/dist/catalog/org-catalog.controller.js +191 -98
- package/dist/catalog/org-catalog.schemas.d.ts +104 -0
- package/dist/catalog/org-catalog.schemas.js +107 -0
- package/dist/catalog/org-catalog.service.d.ts +72 -33
- package/dist/catalog/org-catalog.service.js +367 -158
- 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 +133 -0
- package/dist/catalog/org-extension.controller.js +313 -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 +254 -47
- package/dist/catalog/plugin-import.js +810 -112
- package/dist/catalog/plugin-install.d.ts +205 -42
- package/dist/catalog/plugin-install.js +828 -126
- package/dist/catalog/plugin-package.d.ts +43 -4
- package/dist/catalog/plugin-package.js +194 -7
- package/dist/catalog/plugin-upgrade.d.ts +308 -225
- package/dist/catalog/plugin-upgrade.js +1325 -1131
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +194 -118
- package/dist/catalog/requests.service.js +530 -343
- 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.js +10 -3
- package/dist/channels/cards.d.ts +36 -10
- package/dist/channels/cards.js +100 -25
- package/dist/channels/channels.module.js +13 -2
- package/dist/channels/channels.schemas.d.ts +41 -0
- package/dist/channels/channels.schemas.js +40 -0
- package/dist/channels/connections.controller.d.ts +46 -37
- package/dist/channels/connections.controller.js +76 -34
- package/dist/channels/connections.service.d.ts +102 -10
- package/dist/channels/connections.service.js +271 -24
- package/dist/channels/inbound.d.ts +11 -1
- package/dist/channels/inbound.js +87 -7
- package/dist/channels/outbound.d.ts +14 -1
- package/dist/channels/outbound.js +64 -15
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +2 -0
- package/dist/channels/supervisor.js +4 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/channels/webhook.d.ts +21 -1
- package/dist/channels/webhook.js +39 -4
- package/dist/client/client-access.service.d.ts +102 -0
- package/dist/client/client-access.service.js +303 -0
- package/dist/client/client-builds.service.d.ts +109 -0
- package/dist/client/client-builds.service.js +229 -0
- package/dist/client/client-delivery.controller.d.ts +25 -0
- package/dist/client/client-delivery.controller.js +66 -0
- package/dist/client/client-files.d.ts +48 -0
- package/dist/client/client-files.js +136 -0
- package/dist/client/client-reports.cron.d.ts +13 -0
- package/dist/client/client-reports.cron.js +42 -0
- package/dist/client/client-reports.service.d.ts +30 -0
- package/dist/client/client-reports.service.js +102 -0
- package/dist/client/client-sign-in.service.d.ts +21 -0
- package/dist/client/client-sign-in.service.js +49 -0
- package/dist/client/client.controller.d.ts +49 -0
- package/dist/client/client.controller.js +129 -0
- package/dist/client/client.module.d.ts +8 -0
- package/dist/client/client.module.js +28 -0
- package/dist/client/client.schemas.d.ts +61 -0
- package/dist/client/client.schemas.js +27 -0
- package/dist/config/docs.js +5 -1
- package/dist/config/schema.d.ts +35 -2
- package/dist/config/schema.js +216 -21
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +1 -1
- package/dist/conversations/artifacts.js +1 -1
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -44
- package/dist/conversations/conversations.controller.js +133 -82
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +161 -13
- package/dist/conversations/conversations.service.js +329 -57
- package/dist/conversations/device-status.d.ts +24 -0
- package/dist/conversations/device-status.js +71 -0
- package/dist/conversations/event-log.d.ts +45 -9
- package/dist/conversations/event-log.js +113 -6
- package/dist/conversations/events.d.ts +255 -9
- package/dist/conversations/events.js +250 -34
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/queue.d.ts +5 -2
- package/dist/conversations/queue.js +24 -4
- package/dist/conversations/queue.service.d.ts +2 -2
- package/dist/conversations/queue.service.js +21 -3
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +40 -16
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +48 -5
- package/dist/ctx/create-ctx.js +174 -34
- package/dist/db/kernel-schema.d.ts +668 -27
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/devices/access.d.ts +66 -0
- package/dist/devices/access.js +113 -0
- package/dist/devices/conversation-devices.d.ts +75 -0
- package/dist/devices/conversation-devices.js +230 -0
- package/dist/devices/devices.controller.d.ts +36 -0
- package/dist/devices/devices.controller.js +124 -0
- package/dist/devices/devices.module.d.ts +8 -0
- package/dist/devices/devices.module.js +34 -0
- package/dist/devices/devices.schemas.d.ts +3 -0
- package/dist/devices/devices.schemas.js +14 -0
- package/dist/devices/devices.service.d.ts +251 -0
- package/dist/devices/devices.service.js +791 -0
- package/dist/devices/dto.d.ts +25 -0
- package/dist/devices/dto.js +12 -0
- package/dist/devices/label.d.ts +11 -0
- package/dist/devices/label.js +25 -0
- package/dist/devices/legacy-cleanup.job.d.ts +34 -0
- package/dist/devices/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +215 -3
- package/dist/errors.js +215 -3
- package/dist/evals/evals.module.js +11 -2
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -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 +20 -3
- package/dist/evals/run-replay.js +78 -14
- package/dist/evals/runs.controller.d.ts +2 -57
- package/dist/evals/runs.controller.js +1 -42
- package/dist/evals/runs.service.d.ts +8 -7
- package/dist/evals/runs.service.js +45 -30
- package/dist/evals/sets.controller.d.ts +2 -28
- package/dist/evals/sets.controller.js +1 -31
- package/dist/evals/sets.service.d.ts +7 -7
- package/dist/evals/sets.service.js +23 -17
- package/dist/evals/snapshot.d.ts +3 -2
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +4 -6
- package/dist/evals/step-replay.js +16 -9
- package/dist/evals/trajectory.d.ts +5 -3
- package/dist/evals/trajectory.js +4 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +81 -14
- package/dist/extensions/admin-ops.js +181 -47
- package/dist/extensions/admin-view.d.ts +57 -10
- package/dist/extensions/admin-view.js +249 -27
- package/dist/extensions/approvals.d.ts +12 -2
- package/dist/extensions/blobs.d.ts +14 -1
- package/dist/extensions/blobs.js +49 -5
- package/dist/extensions/bootstrap.d.ts +41 -5
- package/dist/extensions/bootstrap.js +121 -19
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- 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 +6 -0
- package/dist/extensions/deployment-config.d.ts +94 -9
- package/dist/extensions/deployment-config.js +255 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +133 -0
- package/dist/extensions/effective-config.js +379 -0
- package/dist/extensions/extensions.module.js +31 -12
- package/dist/extensions/guide-places.d.ts +68 -0
- package/dist/extensions/guide-places.js +152 -0
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +105 -12
- package/dist/extensions/host.js +372 -87
- package/dist/extensions/installs.d.ts +30 -9
- package/dist/extensions/installs.js +57 -16
- package/dist/extensions/instance.d.ts +17 -2
- package/dist/extensions/instance.js +21 -0
- package/dist/extensions/ledger.d.ts +1 -1
- package/dist/extensions/locks.d.ts +12 -0
- package/dist/extensions/locks.js +26 -0
- package/dist/extensions/org-config.d.ts +97 -7
- package/dist/extensions/org-config.js +215 -45
- 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 +18 -4
- package/dist/extensions/package.js +56 -3
- package/dist/extensions/permission-set.d.ts +35 -5
- package/dist/extensions/permission-set.js +36 -5
- package/dist/extensions/permission-view.d.ts +106 -13
- package/dist/extensions/permission-view.js +33 -15
- package/dist/extensions/plugin-guides.d.ts +282 -0
- package/dist/extensions/plugin-guides.js +554 -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 +1 -1
- package/dist/extensions/registry.js +2 -0
- 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 +13 -2
- package/dist/extensions/sources.js +2 -0
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +46 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/previewers.controller.js +2 -3
- package/dist/files/previewers.d.ts +10 -3
- package/dist/files/previewers.js +40 -11
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/api.module.js +76 -4
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/gateway-routes.d.ts +7 -3
- package/dist/http/gateway-routes.js +6 -3
- 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 +77 -31
- package/dist/identity/accounts.js +133 -52
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +35 -9
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +7 -4
- 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 +17 -1
- package/dist/identity/me.controller.js +45 -4
- 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 +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +99 -12
- package/dist/identity/settings.js +234 -25
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/identity/write-actor.d.ts +11 -0
- package/dist/identity/write-actor.js +7 -0
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +64 -4
- package/dist/inbox/inbox.service.js +74 -4
- 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 +157 -0
- package/dist/inbox/platform-inbox.service.js +281 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +32 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +31 -3
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/lock/lock.service.d.ts +8 -0
- package/dist/infra/lock/lock.service.js +27 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/presence/presence.module.d.ts +6 -0
- package/dist/infra/presence/presence.module.js +22 -0
- package/dist/infra/presence/replica-presence.d.ts +87 -0
- package/dist/infra/presence/replica-presence.js +189 -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/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/throttler/named-throttlers.d.ts +12 -0
- package/dist/infra/throttler/named-throttlers.js +67 -0
- package/dist/infra/throttler/throttler.guard.js +1 -1
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +15 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
- package/dist/lifecycle/kernel-lifecycle.js +35 -7
- package/dist/local-devices/device-auth.controller.d.ts +42 -0
- package/dist/local-devices/device-auth.controller.js +116 -0
- package/dist/local-devices/device-auth.d.ts +119 -0
- package/dist/local-devices/device-auth.js +401 -0
- package/dist/local-devices/device-auth.module.d.ts +7 -0
- package/dist/local-devices/device-auth.module.js +25 -0
- package/dist/local-devices/device-routes.d.ts +36 -0
- package/dist/local-devices/device-routes.js +90 -0
- package/dist/local-devices/dto.d.ts +66 -0
- package/dist/local-devices/dto.js +44 -0
- package/dist/local-devices/keys.d.ts +25 -0
- package/dist/local-devices/keys.js +25 -0
- package/dist/local-devices/local-device-gateway.d.ts +134 -0
- package/dist/local-devices/local-device-gateway.js +542 -0
- package/dist/local-devices/local-device-provider.d.ts +89 -0
- package/dist/local-devices/local-device-provider.js +151 -0
- package/dist/local-devices/local-devices.module.d.ts +16 -0
- package/dist/local-devices/local-devices.module.js +44 -0
- package/dist/local-devices/machines.d.ts +118 -0
- package/dist/local-devices/machines.js +366 -0
- package/dist/local-devices/relay.d.ts +100 -0
- package/dist/local-devices/relay.js +373 -0
- package/dist/local-devices/targets.d.ts +28 -0
- package/dist/local-devices/targets.js +73 -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 +5 -1
- package/dist/models/models.module.js +16 -4
- 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 +8 -6
- package/dist/models/prices.js +11 -9
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +72 -14
- package/dist/models/purposes.js +115 -34
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.controller.d.ts +2 -5
- package/dist/orgs/orgs.controller.js +3 -6
- package/dist/orgs/orgs.module.js +3 -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 +23 -8
- package/dist/orgs/orgs.service.js +38 -16
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +66 -6
- package/dist/orgs/settings.service.js +89 -10
- package/dist/overrides.d.ts +16 -1
- package/dist/overrides.js +10 -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 +774 -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 +102 -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-items.ops.d.ts +37 -0
- package/dist/platform/ops/admin-items.ops.js +278 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +497 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
- package/dist/platform/ops/agent-skills.ops.js +509 -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 +730 -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 +92 -0
- package/dist/platform/ops/catalog-admin.ops.js +682 -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 +190 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/devices.ops.d.ts +26 -0
- package/dist/platform/ops/devices.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 +381 -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 +35 -0
- package/dist/platform/ops/org-plugins.ops.js +388 -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 +298 -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/setup.ops.d.ts +24 -0
- package/dist/platform/ops/setup.ops.js +212 -0
- package/dist/platform/ops/skills.ops.d.ts +17 -0
- package/dist/platform/ops/skills.ops.js +160 -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/ui.ops.d.ts +8 -0
- package/dist/platform/ops/ui.ops.js +41 -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 +43 -0
- package/dist/platform/platform-ops.module.js +142 -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 +85 -0
- package/dist/roles/gateway-role.d.ts +18 -3
- package/dist/roles/gateway-role.js +33 -5
- package/dist/roles/gateway.module.d.ts +2 -1
- package/dist/roles/gateway.module.js +6 -3
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +21 -1
- 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/device-paths.d.ts +40 -0
- package/dist/runtime/context/device-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/hook-calls.d.ts +8 -1
- package/dist/runtime/hook-calls.js +40 -7
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +35 -6
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +54 -11
- package/dist/runtime/model-call.js +105 -28
- package/dist/runtime/providers.d.ts +149 -29
- package/dist/runtime/providers.js +332 -63
- 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 +11 -1
- package/dist/runtime/run-control.js +12 -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 +1 -1
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +7 -9
- package/dist/runtime/run-queue.d.ts +62 -5
- package/dist/runtime/run-queue.js +313 -40
- package/dist/runtime/run-worker.d.ts +19 -8
- package/dist/runtime/run-worker.js +105 -44
- package/dist/runtime/runtime.module.js +13 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +31 -26
- package/dist/runtime/subagents/definition.js +89 -142
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +116 -27
- package/dist/runtime/subagents/dispatch.js +213 -142
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.js +2 -1
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- 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 +25 -8
- package/dist/runtime/subagents/roster.js +48 -12
- package/dist/runtime/subagents/skill-fork.d.ts +4 -3
- package/dist/runtime/subagents/skill-fork.js +9 -5
- 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 +9 -6
- package/dist/runtime/subagents/subagents.service.js +13 -8
- 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 +35 -39
- package/dist/runtime/usage-report.js +171 -97
- package/dist/runtime/waits.d.ts +148 -39
- package/dist/runtime/waits.js +426 -112
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +34 -7
- package/dist/sandbox/providers.js +54 -9
- package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
- package/dist/sandbox/sandbox-file-reader.js +98 -0
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +345 -132
- package/dist/sandbox/sandbox.service.js +883 -399
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/setup/kernel-checks.d.ts +91 -0
- package/dist/setup/kernel-checks.js +295 -0
- package/dist/setup/oauth-token-probe.d.ts +47 -0
- package/dist/setup/oauth-token-probe.js +108 -0
- package/dist/setup/redact-check.d.ts +18 -0
- package/dist/setup/redact-check.js +46 -0
- package/dist/setup/setup-check-registry.d.ts +86 -0
- package/dist/setup/setup-check-registry.js +75 -0
- package/dist/setup/setup-checks.controller.d.ts +28 -0
- package/dist/setup/setup-checks.controller.js +78 -0
- package/dist/setup/setup-checks.schemas.d.ts +38 -0
- package/dist/setup/setup-checks.schemas.js +43 -0
- package/dist/setup/setup-checks.service.d.ts +144 -0
- package/dist/setup/setup-checks.service.js +683 -0
- package/dist/setup/setup-guides.controller.d.ts +18 -0
- package/dist/setup/setup-guides.controller.js +48 -0
- package/dist/setup/setup-guides.schemas.d.ts +10 -0
- package/dist/setup/setup-guides.schemas.js +6 -0
- package/dist/setup/setup-guides.service.d.ts +126 -0
- package/dist/setup/setup-guides.service.js +315 -0
- package/dist/setup/setup.module.d.ts +8 -0
- package/dist/setup/setup.module.js +31 -0
- package/dist/skills/agent-skills.controller.d.ts +48 -0
- package/dist/skills/agent-skills.controller.js +131 -0
- package/dist/skills/agent-skills.service.d.ts +262 -0
- package/dist/skills/agent-skills.service.js +996 -0
- package/dist/skills/catalog.d.ts +14 -11
- package/dist/skills/catalog.js +32 -50
- package/dist/skills/changes.controller.d.ts +12 -22
- package/dist/skills/changes.controller.js +27 -56
- package/dist/skills/changes.service.d.ts +69 -115
- package/dist/skills/changes.service.js +249 -598
- package/dist/skills/conversation-catalog.d.ts +53 -0
- package/dist/skills/conversation-catalog.js +149 -0
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +2 -2
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +3 -3
- package/dist/skills/invoke.js +21 -8
- package/dist/skills/package.d.ts +15 -1
- package/dist/skills/package.js +14 -1
- package/dist/skills/skills.controller.d.ts +32 -6
- package/dist/skills/skills.controller.js +64 -11
- package/dist/skills/skills.module.js +25 -3
- package/dist/skills/skills.schemas.d.ts +44 -0
- package/dist/skills/skills.schemas.js +68 -0
- package/dist/skills/skills.service.d.ts +123 -26
- package/dist/skills/skills.service.js +493 -76
- package/dist/skills/usable.d.ts +82 -0
- package/dist/skills/usable.js +388 -0
- package/dist/themes/render-css.d.ts +13 -0
- package/dist/themes/render-css.js +135 -0
- package/dist/themes/theme-delivery.service.d.ts +36 -0
- package/dist/themes/theme-delivery.service.js +116 -0
- package/dist/themes/theme-state.d.ts +116 -0
- package/dist/themes/theme-state.js +221 -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 +33 -0
- package/dist/themes/themes-public.controller.js +98 -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/admin-connectors.d.ts +69 -0
- package/dist/tools/admin-connectors.js +135 -0
- package/dist/tools/approvals.controller.js +2 -3
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +26 -2
- package/dist/tools/approvals.service.js +44 -5
- package/dist/tools/builtin-names.d.ts +104 -0
- package/dist/tools/builtin-names.js +164 -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 +1 -1
- package/dist/tools/builtins/ask-user.js +5 -4
- package/dist/tools/builtins/builtin-tools.d.ts +23 -4
- package/dist/tools/builtins/builtin-tools.js +78 -12
- 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 +1 -1
- package/dist/tools/builtins/read-tool-output.js +2 -2
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +291 -39
- package/dist/tools/builtins/sandbox/common.d.ts +135 -36
- 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 +19 -16
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +64 -50
- 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 +17 -12
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +153 -34
- 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 +29 -19
- 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 +51 -44
- 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 +29 -18
- package/dist/tools/builtins/skill-load.js +125 -73
- 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/connector-account-policies.d.ts +51 -0
- package/dist/tools/connector-account-policies.js +165 -0
- package/dist/tools/connectors.controller.d.ts +74 -9
- package/dist/tools/connectors.controller.js +133 -16
- package/dist/tools/connectors.schemas.d.ts +27 -0
- package/dist/tools/connectors.schemas.js +34 -0
- package/dist/tools/connectors.service.d.ts +101 -8
- package/dist/tools/connectors.service.js +266 -28
- package/dist/tools/credentials.d.ts +23 -0
- package/dist/tools/credentials.js +90 -1
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.js +5 -5
- 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 +61 -4
- package/dist/tools/info.js +119 -33
- 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 +114 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/oauth/flow.js +1 -1
- package/dist/tools/oauth/tokens.d.ts +54 -7
- package/dist/tools/oauth/tokens.js +87 -17
- package/dist/tools/org-tool-switches.d.ts +89 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.js +1 -1
- package/dist/tools/pipeline.d.ts +67 -47
- package/dist/tools/pipeline.js +319 -380
- package/dist/tools/policy.d.ts +30 -23
- package/dist/tools/policy.js +142 -64
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +1 -1
- package/dist/tools/questions.service.d.ts +23 -2
- package/dist/tools/questions.service.js +104 -2
- package/dist/tools/registry.d.ts +189 -68
- package/dist/tools/registry.js +318 -236
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/tools.module.js +31 -3
- package/dist/tools/validate.js +1 -1
- package/dist/ui/admin-ui.controller.d.ts +56 -0
- package/dist/ui/admin-ui.controller.js +192 -0
- package/dist/ui/arrangement.d.ts +65 -0
- package/dist/ui/arrangement.js +171 -0
- package/dist/ui/embed-token.d.ts +2 -2
- package/dist/ui/embed-token.js +30 -5
- package/dist/ui/registry.d.ts +42 -17
- package/dist/ui/registry.js +46 -14
- package/dist/ui/slots.controller.d.ts +11 -0
- package/dist/ui/slots.controller.js +25 -0
- package/dist/ui/ui-stream.d.ts +20 -3
- package/dist/ui/ui-stream.js +25 -7
- package/dist/ui/ui.schemas.d.ts +70 -0
- package/dist/ui/ui.schemas.js +65 -0
- package/dist/ui/views.controller.d.ts +35 -49
- package/dist/ui/views.controller.js +48 -70
- package/dist/ui/views.d.ts +112 -18
- package/dist/ui/views.js +254 -47
- package/package.json +6 -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/src/migrations/0104_connector_tool_account_policies.sql +16 -0
- package/src/migrations/0105_devices_rename.sql +136 -0
- package/src/migrations/0106_setup_guides_v2.sql +10 -0
- package/src/migrations/0107_extension_client_builds.sql +50 -0
- package/src/migrations/0108_question_skipped.sql +6 -0
- package/src/migrations/0109_audit_platform_idx.sql +5 -0
- package/src/migrations/0110_usage_time_idx.sql +8 -0
- package/src/migrations/0111_agent_skill_sharing.sql +22 -0
- package/src/migrations/0112_skill_share_requests.sql +4 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- package/dist/tools/builtins/skill-write.d.ts +0 -59
- package/dist/tools/builtins/skill-write.js +0 -244
|
@@ -5,12 +5,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var LoggingModule_1;
|
|
8
|
-
import { Global, Module } from "@nestjs/common";
|
|
8
|
+
import { Global, Module, Scope } from "@nestjs/common";
|
|
9
|
+
import { INQUIRER } from "@nestjs/core";
|
|
9
10
|
import { createConfiguredLogger } from "../../log-config.js";
|
|
10
|
-
import { KERNEL_LOGGER } from "../tokens.js";
|
|
11
|
+
import { KERNEL_LOGGER, KERNEL_ROOT_LOGGER } from "../tokens.js";
|
|
11
12
|
/**
|
|
12
|
-
* Provides the process logger as `
|
|
13
|
-
*
|
|
13
|
+
* Provides the process logger as `KERNEL_ROOT_LOGGER` and, as `KERNEL_LOGGER`, one child per injecting
|
|
14
|
+
* class with `context` = the class name (the `[context=…]` of the pretty output; octok's
|
|
15
|
+
* per-class Nest logger context). The logger is created before the Nest context (it must exist for
|
|
16
|
+
* startup errors), so it is passed in or derived from the startup config here.
|
|
14
17
|
*/
|
|
15
18
|
let LoggingModule = LoggingModule_1 = class LoggingModule {
|
|
16
19
|
static forRoot(config, opts = {}) {
|
|
@@ -21,8 +24,16 @@ let LoggingModule = LoggingModule_1 = class LoggingModule {
|
|
|
21
24
|
return {
|
|
22
25
|
module: LoggingModule_1,
|
|
23
26
|
global: true,
|
|
24
|
-
providers: [
|
|
25
|
-
|
|
27
|
+
providers: [
|
|
28
|
+
{ provide: KERNEL_ROOT_LOGGER, useValue: logger },
|
|
29
|
+
{
|
|
30
|
+
provide: KERNEL_LOGGER,
|
|
31
|
+
scope: Scope.TRANSIENT,
|
|
32
|
+
inject: [KERNEL_ROOT_LOGGER, INQUIRER],
|
|
33
|
+
useFactory: (root, inquirer) => contextLogger(root, inquirer),
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
exports: [KERNEL_ROOT_LOGGER, KERNEL_LOGGER],
|
|
26
37
|
};
|
|
27
38
|
}
|
|
28
39
|
};
|
|
@@ -32,3 +43,10 @@ LoggingModule = LoggingModule_1 = __decorate([
|
|
|
32
43
|
// biome-ignore lint/complexity/noStaticOnlyClass: a Nest dynamic module
|
|
33
44
|
], LoggingModule);
|
|
34
45
|
export { LoggingModule };
|
|
46
|
+
/** The child of `root` for the class instance `inquirer`; `root` itself for a factory provider. */
|
|
47
|
+
function contextLogger(root, inquirer) {
|
|
48
|
+
const name = inquirer?.constructor?.name;
|
|
49
|
+
return typeof name === "string" && name !== "" && name !== "Object"
|
|
50
|
+
? root.child({ context: name })
|
|
51
|
+
: root;
|
|
52
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Global, Module } from "@nestjs/common";
|
|
8
|
+
import { ReplicaPresence } from "./replica-presence.js";
|
|
9
|
+
/**
|
|
10
|
+
* Global: {@link ReplicaPresence}, on every role (each process reports itself; `KernelLifecycle`
|
|
11
|
+
* starts and stops it), read by the admin health overview.
|
|
12
|
+
*/
|
|
13
|
+
let PresenceModule = class PresenceModule {
|
|
14
|
+
};
|
|
15
|
+
PresenceModule = __decorate([
|
|
16
|
+
Global(),
|
|
17
|
+
Module({
|
|
18
|
+
providers: [ReplicaPresence],
|
|
19
|
+
exports: [ReplicaPresence],
|
|
20
|
+
})
|
|
21
|
+
], PresenceModule);
|
|
22
|
+
export { PresenceModule };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { Redis } from "ioredis";
|
|
2
|
+
import type { KernelLogger } from "../../log.js";
|
|
3
|
+
import { KernelConfigService } from "../config/kernel-config.service.js";
|
|
4
|
+
/** How often each process writes its presence (admin overview spec §5.1). */
|
|
5
|
+
export declare const PRESENCE_DEFAULT_INTERVAL_MS = 15000;
|
|
6
|
+
/** Optional provider: the presence interval (ms) instead of {@link PRESENCE_DEFAULT_INTERVAL_MS} (tests). */
|
|
7
|
+
export declare const PRESENCE_INTERVAL_MS: unique symbol;
|
|
8
|
+
/** The ZSET of live replicas: member = replica id, score = last beat (Redis server clock, ms). */
|
|
9
|
+
export declare const REPLICAS_KEY = "capk:replicas";
|
|
10
|
+
/** One replica's facts: `capk:replica:<replicaId>`. */
|
|
11
|
+
export declare const replicaKey: (replicaId: string) => string;
|
|
12
|
+
/** A kernel role (`roles` in the config). */
|
|
13
|
+
export type ReplicaRole = "api" | "worker" | "gateway";
|
|
14
|
+
/** What a live replica last reported about itself. */
|
|
15
|
+
export interface LiveReplica {
|
|
16
|
+
/** The process id (`ReplicaStatusStore.replicaId`, the gateway heartbeat's member). */
|
|
17
|
+
id: string;
|
|
18
|
+
roles: ReplicaRole[];
|
|
19
|
+
/** `KERNEL_VERSION` of the process. */
|
|
20
|
+
version: string;
|
|
21
|
+
/** When the process's start sequence was done, before it listens (ISO 8601). */
|
|
22
|
+
startedAt: string;
|
|
23
|
+
/** The configured `http.replicaId` (the `x-capybara-replica` header), null when unset. */
|
|
24
|
+
httpReplicaId: string | null;
|
|
25
|
+
/** Channel long connections this process holds (0 without the gateway role). */
|
|
26
|
+
channelsHeld: number;
|
|
27
|
+
/** Device sockets open on this process (0 without the gateway role). */
|
|
28
|
+
devicesConnected: number;
|
|
29
|
+
}
|
|
30
|
+
/** The per-process facts the presence reports, read at every beat. */
|
|
31
|
+
export interface PresenceSources {
|
|
32
|
+
/** This process's replica id (`ReplicaStatusStore.replicaId`). */
|
|
33
|
+
replicaId: string;
|
|
34
|
+
channelsHeld(): number;
|
|
35
|
+
devicesConnected(): number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The replicas with a beat newer than `windowMs` (Redis server clock): one script for the members,
|
|
39
|
+
* then one pipelined HGETALL each. A member whose facts already expired is left out. Sorted by
|
|
40
|
+
* start time, then id.
|
|
41
|
+
*/
|
|
42
|
+
export declare function readLiveReplicas(redis: Pick<Redis, "eval" | "pipeline">, windowMs: number): Promise<LiveReplica[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Replica presence (admin overview spec §5.1): every process, whatever its roles, says every
|
|
45
|
+
* {@link PRESENCE_DEFAULT_INTERVAL_MS} that it is alive, with its roles, version, start time and
|
|
46
|
+
* the connections it holds, so the admin console can tell which replicas run in which role.
|
|
47
|
+
*
|
|
48
|
+
* Multi-replica: the state lives only in Redis, with a TTL of three intervals on both keys; the
|
|
49
|
+
* score is the Redis server clock (replica clocks may drift), as in the gateway heartbeat. Each
|
|
50
|
+
* process writes only its own entry and holds nothing other processes need: no lock, no
|
|
51
|
+
* transaction, no shared job. So it is not a `@LockedInterval` (that runs once across replicas)
|
|
52
|
+
* but a `setTimeout` chain of this process (`unref`), started by `KernelLifecycle` at the end of
|
|
53
|
+
* the start (after the start gate opened) and stopped first thing in the stop, which removes the
|
|
54
|
+
* entry at once; a crashed process ages out of {@link live} within the window. A failing beat is
|
|
55
|
+
* logged at warn and never thrown.
|
|
56
|
+
*/
|
|
57
|
+
export declare class ReplicaPresence {
|
|
58
|
+
private readonly redis;
|
|
59
|
+
private readonly config;
|
|
60
|
+
private readonly log;
|
|
61
|
+
/** The beat interval; the window (and the TTL) is three of them. */
|
|
62
|
+
readonly intervalMs: number;
|
|
63
|
+
private sources;
|
|
64
|
+
private startedAt;
|
|
65
|
+
private timer;
|
|
66
|
+
private running;
|
|
67
|
+
private halted;
|
|
68
|
+
constructor(redis: Redis, config: Pick<KernelConfigService, "get">, log: Pick<KernelLogger, "warn">, intervalMs?: number);
|
|
69
|
+
/** How long an entry stays live without a beat (ms). */
|
|
70
|
+
get windowMs(): number;
|
|
71
|
+
/** Starts beating (the first beat at once). Called once, at the end of the start. */
|
|
72
|
+
start(sources: PresenceSources): void;
|
|
73
|
+
private schedule;
|
|
74
|
+
private beat;
|
|
75
|
+
/**
|
|
76
|
+
* Stops beating and waits for a beat in flight, leaving the entry to age out (a crash looks like
|
|
77
|
+
* this; the tests use it as one). Idempotent.
|
|
78
|
+
*/
|
|
79
|
+
halt(): Promise<void>;
|
|
80
|
+
/** The stop: {@link halt}, then removes this process's entry at once (best effort). Idempotent. */
|
|
81
|
+
stop(): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* The live replicas (a beat within the window, by the Redis server clock), sorted by start time.
|
|
84
|
+
* Throws when Redis does not answer.
|
|
85
|
+
*/
|
|
86
|
+
live(): Promise<LiveReplica[]>;
|
|
87
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
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, Optional } from "@nestjs/common";
|
|
11
|
+
import { KERNEL_VERSION } from "../../version.js";
|
|
12
|
+
import { KernelConfigService } from "../config/kernel-config.service.js";
|
|
13
|
+
import { KERNEL_LOGGER, REDIS } from "../tokens.js";
|
|
14
|
+
/** How often each process writes its presence (admin overview spec §5.1). */
|
|
15
|
+
export const PRESENCE_DEFAULT_INTERVAL_MS = 15_000;
|
|
16
|
+
/** Optional provider: the presence interval (ms) instead of {@link PRESENCE_DEFAULT_INTERVAL_MS} (tests). */
|
|
17
|
+
export const PRESENCE_INTERVAL_MS = Symbol("PRESENCE_INTERVAL_MS");
|
|
18
|
+
/** The ZSET of live replicas: member = replica id, score = last beat (Redis server clock, ms). */
|
|
19
|
+
export const REPLICAS_KEY = "capk:replicas";
|
|
20
|
+
/** One replica's facts: `capk:replica:<replicaId>`. */
|
|
21
|
+
export const replicaKey = (replicaId) => `capk:replica:${replicaId}`;
|
|
22
|
+
/**
|
|
23
|
+
* One beat: ZADD the member at the server clock, write the facts, give both keys a TTL of the
|
|
24
|
+
* window and trim members older than it. KEYS: the ZSET, the replica's hash. ARGV: the replica id,
|
|
25
|
+
* the window (ms), then the hash's field / value pairs.
|
|
26
|
+
*/
|
|
27
|
+
const BEAT = `
|
|
28
|
+
local t = redis.call('TIME')
|
|
29
|
+
local now = tonumber(t[1]) * 1000 + math.floor(tonumber(t[2]) / 1000)
|
|
30
|
+
local ttl = tonumber(ARGV[2])
|
|
31
|
+
redis.call('ZADD', KEYS[1], now, ARGV[1])
|
|
32
|
+
redis.call('HSET', KEYS[2], unpack(ARGV, 3))
|
|
33
|
+
redis.call('PEXPIRE', KEYS[2], ttl)
|
|
34
|
+
redis.call('PEXPIRE', KEYS[1], ttl)
|
|
35
|
+
redis.call('ZREMRANGEBYSCORE', KEYS[1], '-inf', now - ttl)
|
|
36
|
+
return now
|
|
37
|
+
`;
|
|
38
|
+
/** The members newer than the window (ARGV[1], ms) by the Redis server clock. */
|
|
39
|
+
const LIVE = `
|
|
40
|
+
local t = redis.call('TIME')
|
|
41
|
+
local now = tonumber(t[1]) * 1000 + math.floor(tonumber(t[2]) / 1000)
|
|
42
|
+
return redis.call('ZRANGEBYSCORE', KEYS[1], '(' .. (now - tonumber(ARGV[1])), '+inf')
|
|
43
|
+
`;
|
|
44
|
+
const ROLES = ["api", "worker", "gateway"];
|
|
45
|
+
const count = (v) => {
|
|
46
|
+
const n = Number(v);
|
|
47
|
+
return Number.isInteger(n) && n >= 0 ? n : 0;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* The replicas with a beat newer than `windowMs` (Redis server clock): one script for the members,
|
|
51
|
+
* then one pipelined HGETALL each. A member whose facts already expired is left out. Sorted by
|
|
52
|
+
* start time, then id.
|
|
53
|
+
*/
|
|
54
|
+
export async function readLiveReplicas(redis, windowMs) {
|
|
55
|
+
const ids = (await redis.eval(LIVE, 1, REPLICAS_KEY, windowMs));
|
|
56
|
+
if (ids.length === 0)
|
|
57
|
+
return [];
|
|
58
|
+
const pipe = redis.pipeline();
|
|
59
|
+
for (const id of ids)
|
|
60
|
+
pipe.hgetall(replicaKey(id));
|
|
61
|
+
const res = (await pipe.exec()) ?? [];
|
|
62
|
+
const out = [];
|
|
63
|
+
ids.forEach((id, i) => {
|
|
64
|
+
const [err, h] = res[i] ?? [null, null];
|
|
65
|
+
if (err)
|
|
66
|
+
throw err;
|
|
67
|
+
const f = h;
|
|
68
|
+
if (f === null || f.version === undefined)
|
|
69
|
+
return;
|
|
70
|
+
out.push({
|
|
71
|
+
id,
|
|
72
|
+
roles: (f.roles ?? "")
|
|
73
|
+
.split(",")
|
|
74
|
+
.filter((r) => ROLES.includes(r)),
|
|
75
|
+
version: f.version,
|
|
76
|
+
startedAt: f.startedAt ?? "",
|
|
77
|
+
httpReplicaId: f.httpReplicaId ? f.httpReplicaId : null,
|
|
78
|
+
channelsHeld: count(f.channelsHeld),
|
|
79
|
+
devicesConnected: count(f.devicesConnected),
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
return out.sort((a, b) => a.startedAt.localeCompare(b.startedAt) || a.id.localeCompare(b.id));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Replica presence (admin overview spec §5.1): every process, whatever its roles, says every
|
|
86
|
+
* {@link PRESENCE_DEFAULT_INTERVAL_MS} that it is alive, with its roles, version, start time and
|
|
87
|
+
* the connections it holds, so the admin console can tell which replicas run in which role.
|
|
88
|
+
*
|
|
89
|
+
* Multi-replica: the state lives only in Redis, with a TTL of three intervals on both keys; the
|
|
90
|
+
* score is the Redis server clock (replica clocks may drift), as in the gateway heartbeat. Each
|
|
91
|
+
* process writes only its own entry and holds nothing other processes need: no lock, no
|
|
92
|
+
* transaction, no shared job. So it is not a `@LockedInterval` (that runs once across replicas)
|
|
93
|
+
* but a `setTimeout` chain of this process (`unref`), started by `KernelLifecycle` at the end of
|
|
94
|
+
* the start (after the start gate opened) and stopped first thing in the stop, which removes the
|
|
95
|
+
* entry at once; a crashed process ages out of {@link live} within the window. A failing beat is
|
|
96
|
+
* logged at warn and never thrown.
|
|
97
|
+
*/
|
|
98
|
+
let ReplicaPresence = class ReplicaPresence {
|
|
99
|
+
redis;
|
|
100
|
+
config;
|
|
101
|
+
log;
|
|
102
|
+
/** The beat interval; the window (and the TTL) is three of them. */
|
|
103
|
+
intervalMs;
|
|
104
|
+
sources;
|
|
105
|
+
startedAt = "";
|
|
106
|
+
timer;
|
|
107
|
+
running;
|
|
108
|
+
halted = false;
|
|
109
|
+
constructor(redis, config, log, intervalMs) {
|
|
110
|
+
this.redis = redis;
|
|
111
|
+
this.config = config;
|
|
112
|
+
this.log = log;
|
|
113
|
+
this.intervalMs = intervalMs ?? PRESENCE_DEFAULT_INTERVAL_MS;
|
|
114
|
+
}
|
|
115
|
+
/** How long an entry stays live without a beat (ms). */
|
|
116
|
+
get windowMs() {
|
|
117
|
+
return this.intervalMs * 3;
|
|
118
|
+
}
|
|
119
|
+
/** Starts beating (the first beat at once). Called once, at the end of the start. */
|
|
120
|
+
start(sources) {
|
|
121
|
+
if (this.sources !== undefined || this.halted)
|
|
122
|
+
return;
|
|
123
|
+
this.sources = sources;
|
|
124
|
+
this.startedAt = new Date().toISOString();
|
|
125
|
+
this.schedule(0);
|
|
126
|
+
}
|
|
127
|
+
schedule(ms) {
|
|
128
|
+
if (this.halted)
|
|
129
|
+
return;
|
|
130
|
+
this.timer = setTimeout(() => {
|
|
131
|
+
this.running = this.beat().finally(() => {
|
|
132
|
+
this.running = undefined;
|
|
133
|
+
this.schedule(this.intervalMs);
|
|
134
|
+
});
|
|
135
|
+
}, ms);
|
|
136
|
+
this.timer.unref?.();
|
|
137
|
+
}
|
|
138
|
+
async beat() {
|
|
139
|
+
const s = this.sources;
|
|
140
|
+
if (s === undefined || this.halted)
|
|
141
|
+
return;
|
|
142
|
+
try {
|
|
143
|
+
const http = this.config.get().http.replicaId;
|
|
144
|
+
await this.redis.eval(BEAT, 2, REPLICAS_KEY, replicaKey(s.replicaId), s.replicaId, this.windowMs, "roles", this.config.get().roles.join(","), "version", KERNEL_VERSION, "startedAt", this.startedAt, "httpReplicaId", http === undefined ? "" : String(http), "channelsHeld", s.channelsHeld(), "devicesConnected", s.devicesConnected());
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
this.log.warn("replica presence beat failed", { err });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Stops beating and waits for a beat in flight, leaving the entry to age out (a crash looks like
|
|
152
|
+
* this; the tests use it as one). Idempotent.
|
|
153
|
+
*/
|
|
154
|
+
async halt() {
|
|
155
|
+
this.halted = true;
|
|
156
|
+
clearTimeout(this.timer);
|
|
157
|
+
await this.running;
|
|
158
|
+
}
|
|
159
|
+
/** The stop: {@link halt}, then removes this process's entry at once (best effort). Idempotent. */
|
|
160
|
+
async stop() {
|
|
161
|
+
await this.halt();
|
|
162
|
+
const s = this.sources;
|
|
163
|
+
if (s === undefined)
|
|
164
|
+
return;
|
|
165
|
+
this.sources = undefined;
|
|
166
|
+
try {
|
|
167
|
+
await this.redis.multi().zrem(REPLICAS_KEY, s.replicaId).del(replicaKey(s.replicaId)).exec();
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
this.log.warn("cannot remove replica presence", { err });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* The live replicas (a beat within the window, by the Redis server clock), sorted by start time.
|
|
175
|
+
* Throws when Redis does not answer.
|
|
176
|
+
*/
|
|
177
|
+
live() {
|
|
178
|
+
return readLiveReplicas(this.redis, this.windowMs);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
ReplicaPresence = __decorate([
|
|
182
|
+
Injectable(),
|
|
183
|
+
__param(0, Inject(REDIS)),
|
|
184
|
+
__param(1, Inject(KernelConfigService)),
|
|
185
|
+
__param(2, Inject(KERNEL_LOGGER)),
|
|
186
|
+
__param(3, Optional()),
|
|
187
|
+
__param(3, Inject(PRESENCE_INTERVAL_MS))
|
|
188
|
+
], ReplicaPresence);
|
|
189
|
+
export { ReplicaPresence };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type JobsOptions } from "bullmq";
|
|
2
|
+
import type { Redis } from "ioredis";
|
|
3
|
+
/** One job to add: its name, data and options (a deterministic `jobId` makes the add idempotent). */
|
|
4
|
+
export interface OneJob<T> {
|
|
5
|
+
name: string;
|
|
6
|
+
data: T;
|
|
7
|
+
opts: JobsOptions;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Adds one job to a kernel queue from a process that hosts no queue of its own (a CLI command),
|
|
11
|
+
* over the caller's Redis connection (left open), with BullMQ's default key prefix like the
|
|
12
|
+
* kernel's queues. The queue handle is closed again before returning.
|
|
13
|
+
*/
|
|
14
|
+
export declare function addJobOnce<T>(connection: Redis, queue: string, job: OneJob<T>): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Queue } from "bullmq";
|
|
2
|
+
/**
|
|
3
|
+
* Adds one job to a kernel queue from a process that hosts no queue of its own (a CLI command),
|
|
4
|
+
* over the caller's Redis connection (left open), with BullMQ's default key prefix like the
|
|
5
|
+
* kernel's queues. The queue handle is closed again before returning.
|
|
6
|
+
*/
|
|
7
|
+
export async function addJobOnce(connection, queue, job) {
|
|
8
|
+
const q = new Queue(queue, { connection });
|
|
9
|
+
try {
|
|
10
|
+
// biome-ignore lint/suspicious/noExplicitAny: BullMQ's name and data generics do not line up here
|
|
11
|
+
await q.add(job.name, job.data, job.opts);
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
await q.close();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { RedisOptions } from "bullmq";
|
|
2
|
+
/**
|
|
3
|
+
* TCP keepalive of every long-lived kernel Redis connection: probes start after 10 s idle (the OS
|
|
4
|
+
* default is 2 hours), so a connection a dropped network left half-open is found and reconnected
|
|
5
|
+
* before a command waits on it, not at the next write (EPIPE).
|
|
6
|
+
*/
|
|
7
|
+
export declare const REDIS_KEEPALIVE_MS = 10000;
|
|
2
8
|
/**
|
|
3
9
|
* BullMQ connection options from the kernel's Redis URL, the same connection the hand-made
|
|
4
10
|
* `new Redis(url, { maxRetriesPerRequest: null })` workers use: BullMQ requires
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TCP keepalive of every long-lived kernel Redis connection: probes start after 10 s idle (the OS
|
|
3
|
+
* default is 2 hours), so a connection a dropped network left half-open is found and reconnected
|
|
4
|
+
* before a command waits on it, not at the next write (EPIPE).
|
|
5
|
+
*/
|
|
6
|
+
export const REDIS_KEEPALIVE_MS = 10_000;
|
|
1
7
|
/**
|
|
2
8
|
* BullMQ connection options from the kernel's Redis URL, the same connection the hand-made
|
|
3
9
|
* `new Redis(url, { maxRetriesPerRequest: null })` workers use: BullMQ requires
|
|
@@ -14,5 +20,6 @@ export function bullConnectionOptions(url) {
|
|
|
14
20
|
...(db !== undefined && Number.isInteger(db) && { db }),
|
|
15
21
|
...(u.protocol === "rediss:" && { tls: {} }),
|
|
16
22
|
maxRetriesPerRequest: null,
|
|
23
|
+
keepAlive: REDIS_KEEPALIVE_MS,
|
|
17
24
|
};
|
|
18
25
|
}
|
|
@@ -14,6 +14,7 @@ import { closeWithin } from "../close-within.js";
|
|
|
14
14
|
import { KernelConfigService } from "../config/kernel-config.service.js";
|
|
15
15
|
import { GracefulShutdownModule } from "../lifecycle/graceful-shutdown.module.js";
|
|
16
16
|
import { GracefulShutdown } from "../lifecycle/graceful-shutdown.service.js";
|
|
17
|
+
import { REDIS_KEEPALIVE_MS } from "../queue/redis-connection.js";
|
|
17
18
|
import { KERNEL_BUS, KERNEL_LOGGER, REDIS, REDIS_SUBSCRIBER } from "../tokens.js";
|
|
18
19
|
/**
|
|
19
20
|
* Closes the bus subscriber, then the main connection, at the end of the shutdown
|
|
@@ -64,7 +65,10 @@ RedisModule = __decorate([
|
|
|
64
65
|
provide: REDIS,
|
|
65
66
|
inject: [KernelConfigService, KERNEL_LOGGER],
|
|
66
67
|
useFactory: (config, log) => {
|
|
67
|
-
const redis = new Redis(config.get().redis.url, {
|
|
68
|
+
const redis = new Redis(config.get().redis.url, {
|
|
69
|
+
lazyConnect: true,
|
|
70
|
+
keepAlive: REDIS_KEEPALIVE_MS,
|
|
71
|
+
});
|
|
68
72
|
redis.on("error", (err) => log.error("redis connection error", { err }));
|
|
69
73
|
return redis;
|
|
70
74
|
},
|
|
@@ -72,7 +76,7 @@ RedisModule = __decorate([
|
|
|
72
76
|
{
|
|
73
77
|
provide: REDIS_SUBSCRIBER,
|
|
74
78
|
inject: [KernelConfigService, KERNEL_LOGGER],
|
|
75
|
-
useFactory: (config, log) => createBusSubscriber(() => new Redis(config.get().redis.url), log),
|
|
79
|
+
useFactory: (config, log) => createBusSubscriber(() => new Redis(config.get().redis.url, { keepAlive: REDIS_KEEPALIVE_MS }), log),
|
|
76
80
|
},
|
|
77
81
|
{
|
|
78
82
|
provide: KERNEL_BUS,
|
|
@@ -8,6 +8,8 @@ export interface NamedThrottler {
|
|
|
8
8
|
ttl: number;
|
|
9
9
|
/** The 429 message (today's text of the route that used the limiter). */
|
|
10
10
|
message: string;
|
|
11
|
+
/** The 429 error code; default `auth.rate_limited` (the credential routes'). */
|
|
12
|
+
code?: "auth.rate_limited" | "rate_limited";
|
|
11
13
|
/** The credential group: throttlers of one group are reserved together (one Redis hash tag). */
|
|
12
14
|
group: string;
|
|
13
15
|
/** What a successful attempt does to this counter: delete it, or give one attempt back. */
|
|
@@ -25,6 +27,16 @@ export interface NamedThrottler {
|
|
|
25
27
|
* | `PUT /api/v1/me/password` | `change-password`, `change-password-ip` |
|
|
26
28
|
* | `POST /api/v1/setup` | `setup-token`, `setup-ip` |
|
|
27
29
|
* | `POST /api/v1/invitations/:token/accept` | `invitation`, `invitation-ip` |
|
|
30
|
+
* | `GET /api/v1/device/pending/:userCode`, `POST /api/v1/device/confirm`, `POST /api/v1/device/deny` | `device-code-account` |
|
|
31
|
+
*
|
|
32
|
+
* `POST /api/v1/orgs/:orgId/ui/client/reports` and `POST /api/v1/admin/ui/client/reports` opt in to
|
|
33
|
+
* `client-reports` with `@Throttled` (20 per minute per account: a crash loop in a browser must
|
|
34
|
+
* not flood the table).
|
|
35
|
+
*
|
|
36
|
+
* `POST /api/v1/device/authorize` and `POST /api/v1/device/token` opt in to `device-authorize-ip`
|
|
37
|
+
* and `device-token-ip` with `@Throttled` (every request counts; neither checks a guessable
|
|
38
|
+
* credential: the device code is 32 random bytes). `POST …/guides/:guideId/checks/:checkId/run`
|
|
39
|
+
* opts in to `setup-check` (setup guides v2 §10.3: each run may call a third party).
|
|
28
40
|
*/
|
|
29
41
|
export declare const NAMED_THROTTLERS: readonly NamedThrottler[];
|
|
30
42
|
/** The storage key of a named throttler's counter for a tracker (shared by the guard and success paths). */
|
|
@@ -28,6 +28,16 @@ const LOGIN_MSG = "Too many failed login attempts; try again later";
|
|
|
28
28
|
* | `PUT /api/v1/me/password` | `change-password`, `change-password-ip` |
|
|
29
29
|
* | `POST /api/v1/setup` | `setup-token`, `setup-ip` |
|
|
30
30
|
* | `POST /api/v1/invitations/:token/accept` | `invitation`, `invitation-ip` |
|
|
31
|
+
* | `GET /api/v1/device/pending/:userCode`, `POST /api/v1/device/confirm`, `POST /api/v1/device/deny` | `device-code-account` |
|
|
32
|
+
*
|
|
33
|
+
* `POST /api/v1/orgs/:orgId/ui/client/reports` and `POST /api/v1/admin/ui/client/reports` opt in to
|
|
34
|
+
* `client-reports` with `@Throttled` (20 per minute per account: a crash loop in a browser must
|
|
35
|
+
* not flood the table).
|
|
36
|
+
*
|
|
37
|
+
* `POST /api/v1/device/authorize` and `POST /api/v1/device/token` opt in to `device-authorize-ip`
|
|
38
|
+
* and `device-token-ip` with `@Throttled` (every request counts; neither checks a guessable
|
|
39
|
+
* credential: the device code is 32 random bytes). `POST …/guides/:guideId/checks/:checkId/run`
|
|
40
|
+
* opts in to `setup-check` (setup guides v2 §10.3: each run may call a third party).
|
|
31
41
|
*/
|
|
32
42
|
export const NAMED_THROTTLERS = [
|
|
33
43
|
// (login, IP): 10; an attacker filling one login from one IP leaves the owner's other IPs alone (R25)
|
|
@@ -114,6 +124,63 @@ export const NAMED_THROTTLERS = [
|
|
|
114
124
|
message: "Too many invitation attempts; try again later",
|
|
115
125
|
getTracker: ip,
|
|
116
126
|
},
|
|
127
|
+
// device sign-in codes issued per client address (each one holds Redis state for its TTL): 20.
|
|
128
|
+
// Opted in with @Throttled, which counts every request before the handler: group and onSuccess
|
|
129
|
+
// are unused (they matter only to CredentialThrottler).
|
|
130
|
+
{
|
|
131
|
+
name: "device-authorize-ip",
|
|
132
|
+
group: "device-authorize",
|
|
133
|
+
onSuccess: "clear",
|
|
134
|
+
limit: 20,
|
|
135
|
+
ttl: CREDENTIAL_WINDOW_MS,
|
|
136
|
+
message: "Too many device sign-in attempts; try again later",
|
|
137
|
+
getTracker: ip,
|
|
138
|
+
},
|
|
139
|
+
// device token polls per client address (@Throttled like device-authorize-ip): 600, one login
|
|
140
|
+
// polls up to 120 times (600 s / 5 s), so several machines behind one NAT address fit
|
|
141
|
+
{
|
|
142
|
+
name: "device-token-ip",
|
|
143
|
+
group: "device-token",
|
|
144
|
+
onSuccess: "clear",
|
|
145
|
+
limit: 600,
|
|
146
|
+
ttl: CREDENTIAL_WINDOW_MS,
|
|
147
|
+
message: "Too many device sign-in polls; try again later",
|
|
148
|
+
getTracker: ip,
|
|
149
|
+
},
|
|
150
|
+
// user codes tried per signed-in person (guessing another machine's code): 10, refunded on success
|
|
151
|
+
{
|
|
152
|
+
name: "device-code-account",
|
|
153
|
+
group: "device-code",
|
|
154
|
+
onSuccess: "refund",
|
|
155
|
+
limit: 10,
|
|
156
|
+
ttl: CREDENTIAL_WINDOW_MS,
|
|
157
|
+
message: "Too many device code attempts; try again later",
|
|
158
|
+
getTracker: (req) => sha256(principalAccountId(req)),
|
|
159
|
+
},
|
|
160
|
+
// client code crash reports per signed-in account (counted before the handler): 20 / minute
|
|
161
|
+
{
|
|
162
|
+
name: "client-reports",
|
|
163
|
+
group: "client-reports",
|
|
164
|
+
onSuccess: "clear",
|
|
165
|
+
limit: 20,
|
|
166
|
+
ttl: 60_000,
|
|
167
|
+
message: "Too many client reports; try again later",
|
|
168
|
+
getTracker: (req) => sha256(principalAccountId(req)),
|
|
169
|
+
},
|
|
170
|
+
// setup check runs per signed-in person (setup guides v2 §10.5): 30 a minute, every request
|
|
171
|
+
// counts (@Throttled); a cached answer costs no third-party call but still counts, as the page
|
|
172
|
+
// asks at most once per row and stale result. The edge of the route (with `retry-after`): the
|
|
173
|
+
// budget shared with the Platform tool's setup.check is SetupChecksService's own counter
|
|
174
|
+
{
|
|
175
|
+
name: "setup-check",
|
|
176
|
+
group: "setup-check",
|
|
177
|
+
onSuccess: "clear",
|
|
178
|
+
limit: 30,
|
|
179
|
+
ttl: 60_000,
|
|
180
|
+
message: "Too many setup check runs; try again in a minute",
|
|
181
|
+
code: "rate_limited",
|
|
182
|
+
getTracker: (req) => sha256(principalAccountId(req)),
|
|
183
|
+
},
|
|
117
184
|
];
|
|
118
185
|
/** The storage key of a named throttler's counter for a tracker (shared by the guard and success paths). */
|
|
119
186
|
export const throttlerKey = (name, tracker) => sha256(`${name}:${tracker}`);
|
|
@@ -56,7 +56,7 @@ let KernelThrottlerGuard = class KernelThrottlerGuard extends ThrottlerGuard {
|
|
|
56
56
|
const known = NAMED_THROTTLERS.find((t) => t.name === name);
|
|
57
57
|
if (!known)
|
|
58
58
|
throw new Error(`unknown throttler "${name}"`);
|
|
59
|
-
throw new ApiError("auth.rate_limited", known.message);
|
|
59
|
+
throw new ApiError(known.code ?? "auth.rate_limited", known.message);
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
KernelThrottlerGuard = __decorate([
|
package/dist/infra/tokens.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/** Injection tokens of the global infra modules. */
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* A class's logger (`KernelLogger`): the process logger with `context` set to the injecting class's
|
|
4
|
+
* name. Transient, so `app.get` cannot resolve it; use `KERNEL_ROOT_LOGGER` outside an injection.
|
|
5
|
+
*/
|
|
3
6
|
export declare const KERNEL_LOGGER: unique symbol;
|
|
7
|
+
/** The process logger itself (`KernelLogger`), without a context. */
|
|
8
|
+
export declare const KERNEL_ROOT_LOGGER: unique symbol;
|
|
4
9
|
/** The startup input of `KernelConfigService`: `{ config, env }`. */
|
|
5
10
|
export declare const KERNEL_CONFIG_INPUT: unique symbol;
|
|
6
11
|
/** The Kysely pool, untyped (`Kysely<any>`); infra only, services inject `KernelDb`. */
|
package/dist/infra/tokens.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/** Injection tokens of the global infra modules. */
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* A class's logger (`KernelLogger`): the process logger with `context` set to the injecting class's
|
|
4
|
+
* name. Transient, so `app.get` cannot resolve it; use `KERNEL_ROOT_LOGGER` outside an injection.
|
|
5
|
+
*/
|
|
3
6
|
export const KERNEL_LOGGER = Symbol("KERNEL_LOGGER");
|
|
7
|
+
/** The process logger itself (`KernelLogger`), without a context. */
|
|
8
|
+
export const KERNEL_ROOT_LOGGER = Symbol("KERNEL_ROOT_LOGGER");
|
|
4
9
|
/** The startup input of `KernelConfigService`: `{ config, env }`. */
|
|
5
10
|
export const KERNEL_CONFIG_INPUT = Symbol("KERNEL_CONFIG_INPUT");
|
|
6
11
|
/** The Kysely pool, untyped (`Kysely<any>`); infra only, services inject `KernelDb`. */
|
package/dist/kernel.module.js
CHANGED
|
@@ -9,6 +9,7 @@ import { Global, Module } from "@nestjs/common";
|
|
|
9
9
|
import { APP_INTERCEPTOR } from "@nestjs/core";
|
|
10
10
|
import { CatalogModule } from "./catalog/catalog.module.js";
|
|
11
11
|
import { ChannelsModule } from "./channels/channels.module.js";
|
|
12
|
+
import { ClientModule } from "./client/client.module.js";
|
|
12
13
|
import { TitlesModule } from "./conversations/titles.js";
|
|
13
14
|
import { ExtensionsModule } from "./extensions/extensions.module.js";
|
|
14
15
|
import { ApiModule } from "./http/api.module.js";
|
|
@@ -24,6 +25,7 @@ import { databaseCheck, HEALTH_CHECKS, redisCheck } from "./infra/health/health.
|
|
|
24
25
|
import { GracefulShutdownModule } from "./infra/lifecycle/graceful-shutdown.module.js";
|
|
25
26
|
import { LockModule } from "./infra/lock/lock.module.js";
|
|
26
27
|
import { LoggingModule } from "./infra/logging/logging.module.js";
|
|
28
|
+
import { PresenceModule } from "./infra/presence/presence.module.js";
|
|
27
29
|
import { QueueModule } from "./infra/queue/queue.module.js";
|
|
28
30
|
import { RedisModule } from "./infra/redis/redis.module.js";
|
|
29
31
|
import { KernelThrottlerModule } from "./infra/throttler/throttler.module.js";
|
|
@@ -31,8 +33,11 @@ import { KERNEL_POOL, REDIS } from "./infra/tokens.js";
|
|
|
31
33
|
import { ValidationModule } from "./infra/validation/validation.module.js";
|
|
32
34
|
import { KernelLifecycle } from "./lifecycle/kernel-lifecycle.js";
|
|
33
35
|
import { KERNEL_APP_OPTIONS } from "./lifecycle/tokens.js";
|
|
36
|
+
import { LocalDevicesModule } from "./local-devices/local-devices.module.js";
|
|
34
37
|
import { createConfiguredLogger } from "./log-config.js";
|
|
35
38
|
import { KERNEL_OVERRIDE_TOKENS } from "./overrides.js";
|
|
39
|
+
import { PlatformModule } from "./platform/platform.module.js";
|
|
40
|
+
import { PlatformOpsModule } from "./platform/platform-ops.module.js";
|
|
36
41
|
import { GatewayModule } from "./roles/gateway.module.js";
|
|
37
42
|
import { WorkerModule } from "./roles/worker.module.js";
|
|
38
43
|
import { UsageReportModule } from "./runtime/usage-report.js";
|
|
@@ -97,6 +102,8 @@ let KernelModule = KernelModule_1 = class KernelModule {
|
|
|
97
102
|
QueueModule.forRoot(),
|
|
98
103
|
KernelThrottlerModule,
|
|
99
104
|
HealthModule,
|
|
105
|
+
// every process's presence beat (admin overview spec §5.1), whatever its roles
|
|
106
|
+
PresenceModule,
|
|
100
107
|
ValidationModule,
|
|
101
108
|
ErrorFilterModule,
|
|
102
109
|
KernelAppOptionsModule.forRoot({ ...options, logger }),
|
|
@@ -108,6 +115,14 @@ let KernelModule = KernelModule_1 = class KernelModule {
|
|
|
108
115
|
TitlesModule,
|
|
109
116
|
UsageReportModule,
|
|
110
117
|
ChannelsModule,
|
|
118
|
+
// client extensions: the client builds stored with extension packages
|
|
119
|
+
ClientModule,
|
|
120
|
+
// the @local sandbox provider, registered on every role (any replica may relay to a machine)
|
|
121
|
+
LocalDevicesModule,
|
|
122
|
+
// the Platform tool's operation registry and actor facts
|
|
123
|
+
PlatformModule,
|
|
124
|
+
// its operations (skills, agents, ...), registered at start on every role
|
|
125
|
+
PlatformOpsModule,
|
|
111
126
|
// the role modules, by `roles` (nest kernel spec §2)
|
|
112
127
|
...(config.roles.includes("api") ? [ApiModule] : []),
|
|
113
128
|
...(config.roles.includes("worker") ? [WorkerModule.forRoot(config)] : []),
|