@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.2
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 +10 -6
- package/dist/admin/admin.controller.d.ts +17 -17
- package/dist/admin/admin.controller.js +43 -26
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/extensions.controller.d.ts +14 -14
- package/dist/admin/extensions.controller.js +30 -17
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +8 -8
- package/dist/admin/setup.controller.js +27 -25
- package/dist/admin/setup.service.d.ts +19 -27
- package/dist/admin/setup.service.js +61 -61
- package/dist/agents/agent-lookup.d.ts +53 -0
- package/dist/agents/agent-lookup.js +179 -0
- package/dist/agents/agents.controller.d.ts +1 -1
- package/dist/agents/agents.controller.js +14 -8
- package/dist/agents/agents.module.d.ts +7 -0
- package/dist/agents/agents.module.js +41 -0
- package/dist/agents/agents.service.d.ts +39 -58
- package/dist/agents/agents.service.js +261 -329
- package/dist/agents/definition.d.ts +8 -0
- package/dist/agents/definition.js +8 -0
- package/dist/agents/models.controller.d.ts +1 -1
- package/dist/agents/models.controller.js +2 -2
- package/dist/agents/templates.controller.d.ts +1 -1
- package/dist/agents/templates.controller.js +2 -2
- package/dist/agents/templates.d.ts +6 -8
- package/dist/agents/templates.js +20 -4
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/catalog/admin-catalog.controller.d.ts +3 -3
- package/dist/catalog/admin-catalog.controller.js +27 -13
- package/dist/catalog/catalog-content.d.ts +185 -0
- package/dist/catalog/catalog-content.js +323 -0
- package/dist/catalog/catalog-items.d.ts +186 -0
- package/dist/catalog/catalog-items.js +410 -0
- package/dist/catalog/catalog.module.d.ts +14 -0
- package/dist/catalog/catalog.module.js +71 -0
- package/dist/catalog/catalog.service.d.ts +34 -188
- package/dist/catalog/catalog.service.js +155 -489
- package/dist/catalog/cli.d.ts +3 -2
- package/dist/catalog/cli.js +13 -31
- package/dist/catalog/job-ids.d.ts +15 -0
- package/dist/catalog/job-ids.js +15 -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/marketplaces.controller.d.ts +4 -4
- package/dist/catalog/marketplaces.controller.js +22 -11
- package/dist/catalog/marketplaces.service.d.ts +30 -13
- package/dist/catalog/marketplaces.service.js +330 -256
- package/dist/catalog/org-catalog.controller.d.ts +4 -3
- package/dist/catalog/org-catalog.controller.js +29 -14
- package/dist/catalog/org-catalog.service.d.ts +32 -198
- package/dist/catalog/org-catalog.service.js +159 -400
- package/dist/catalog/plugin-import.d.ts +73 -34
- package/dist/catalog/plugin-import.js +356 -217
- package/dist/catalog/plugin-install.d.ts +83 -41
- package/dist/catalog/plugin-install.js +421 -269
- package/dist/catalog/plugin-upgrade.d.ts +59 -4
- package/dist/catalog/plugin-upgrade.js +407 -282
- package/dist/catalog/requests.service.d.ts +27 -15
- package/dist/catalog/requests.service.js +201 -145
- package/dist/catalog/upgrade-targets.d.ts +4 -7
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +1 -1
- package/dist/channels/cards.d.ts +2 -2
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +128 -0
- package/dist/channels/connections.controller.d.ts +1 -1
- package/dist/channels/connections.controller.js +11 -6
- package/dist/channels/connections.service.d.ts +43 -21
- package/dist/channels/connections.service.js +236 -131
- package/dist/channels/inbound.d.ts +34 -38
- package/dist/channels/inbound.js +107 -41
- 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 +60 -82
- package/dist/channels/outbound.js +165 -193
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +29 -8
- package/dist/channels/threads.js +71 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- 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 +16 -1
- package/dist/config/schema.js +54 -7
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +10 -10
- package/dist/conversations/artifacts.js +35 -9
- 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 +30 -22
- package/dist/conversations/attachments.service.js +119 -46
- package/dist/conversations/conversations.controller.d.ts +8 -7
- package/dist/conversations/conversations.controller.js +59 -29
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +69 -0
- package/dist/conversations/conversations.service.d.ts +40 -38
- package/dist/conversations/conversations.service.js +130 -140
- package/dist/conversations/event-log.d.ts +28 -18
- package/dist/conversations/event-log.js +74 -27
- 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/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +48 -56
- package/dist/conversations/queue.js +13 -289
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +343 -0
- package/dist/conversations/sandbox-status.d.ts +13 -10
- package/dist/conversations/sandbox-status.js +36 -8
- package/dist/conversations/titles.d.ts +71 -24
- package/dist/conversations/titles.js +159 -62
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +6 -0
- package/dist/ctx/create-ctx.js +7 -9
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/queue.js +3 -2
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +2 -2
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +1 -0
- package/dist/errors.d.ts +2 -0
- package/dist/errors.js +2 -0
- 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/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/run-replay.d.ts +56 -8
- package/dist/evals/run-replay.js +140 -80
- package/dist/evals/runs.controller.d.ts +1 -1
- package/dist/evals/runs.controller.js +17 -8
- package/dist/evals/runs.service.d.ts +23 -45
- package/dist/evals/runs.service.js +245 -234
- package/dist/evals/sets.controller.d.ts +1 -1
- package/dist/evals/sets.controller.js +17 -8
- package/dist/evals/sets.service.d.ts +22 -6
- package/dist/evals/sets.service.js +248 -194
- package/dist/evals/snapshot.d.ts +2 -2
- package/dist/evals/step-replay.d.ts +2 -2
- package/dist/evals/step-replay.js +1 -1
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.service.d.ts +5 -4
- package/dist/evals/trajectory.service.js +30 -7
- package/dist/evals/worker.d.ts +44 -27
- package/dist/evals/worker.js +220 -120
- package/dist/extensions/admin-ops.d.ts +61 -33
- package/dist/extensions/admin-ops.js +248 -154
- package/dist/extensions/admin-view.d.ts +38 -27
- package/dist/extensions/admin-view.js +126 -55
- package/dist/extensions/approvals.d.ts +12 -8
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +111 -45
- package/dist/extensions/bootstrap.d.ts +96 -42
- package/dist/extensions/bootstrap.js +303 -155
- package/dist/extensions/cli.d.ts +20 -10
- package/dist/extensions/cli.js +41 -96
- package/dist/extensions/config-issues.d.ts +7 -0
- package/dist/extensions/config-issues.js +31 -0
- package/dist/extensions/deployment-config-store.d.ts +49 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +58 -67
- package/dist/extensions/deployment-config.js +202 -230
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +77 -0
- package/dist/extensions/hooks.d.ts +3 -2
- package/dist/extensions/hooks.js +1 -1
- package/dist/extensions/host.d.ts +72 -68
- package/dist/extensions/host.js +191 -152
- package/dist/extensions/installs.d.ts +49 -16
- package/dist/extensions/installs.js +128 -32
- 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 +33 -0
- package/dist/extensions/locks.js +86 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.controller.d.ts +1 -1
- package/dist/extensions/org-config.controller.js +8 -5
- package/dist/extensions/org-config.d.ts +48 -46
- package/dist/extensions/org-config.js +284 -226
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +89 -4
- package/dist/extensions/sources.d.ts +12 -8
- package/dist/extensions/sources.js +34 -13
- 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 +17 -9
- package/dist/files/previewers.d.ts +13 -18
- package/dist/files/previewers.js +83 -36
- 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 +47 -355
- package/dist/http/app.d.ts +11 -15
- package/dist/http/app.js +52 -47
- 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/identity/accounts.d.ts +82 -29
- package/dist/identity/accounts.js +294 -175
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +7 -4
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +31 -25
- package/dist/identity/auth.guard.d.ts +3 -3
- package/dist/identity/auth.guard.js +6 -4
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/enterprise-admin.d.ts +18 -12
- package/dist/identity/enterprise-admin.js +67 -13
- 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 +56 -0
- package/dist/identity/me.controller.d.ts +16 -15
- package/dist/identity/me.controller.js +37 -31
- package/dist/identity/sessions.d.ts +12 -10
- package/dist/identity/sessions.js +74 -42
- package/dist/identity/settings.d.ts +20 -14
- package/dist/identity/settings.js +85 -57
- 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/inbox/inbox.module.d.ts +3 -0
- package/dist/inbox/inbox.module.js +22 -0
- package/dist/inbox/inbox.service.d.ts +7 -9
- package/dist/inbox/inbox.service.js +32 -11
- package/dist/index.d.ts +19 -12
- package/dist/index.js +13 -8
- 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 +165 -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 +126 -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 +90 -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 +96 -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 +86 -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 +16 -0
- package/dist/infra/logging/logging.module.js +34 -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 +7 -0
- package/dist/infra/queue/redis-connection.js +18 -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 +87 -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 +31 -0
- package/dist/infra/throttler/named-throttlers.js +119 -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 +15 -0
- package/dist/infra/tokens.js +15 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -241
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +136 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +451 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-config.d.ts +9 -0
- package/dist/log-config.js +27 -0
- package/dist/log-context.d.ts +34 -0
- package/dist/log-context.js +44 -0
- package/dist/log-loki.d.ts +34 -0
- package/dist/log-loki.js +145 -0
- package/dist/log.d.ts +41 -10
- package/dist/log.js +91 -17
- package/dist/models/models.module.d.ts +3 -0
- package/dist/models/models.module.js +24 -0
- package/dist/models/prices.d.ts +8 -2
- package/dist/models/prices.js +65 -37
- package/dist/models/purposes.controller.d.ts +1 -1
- package/dist/models/purposes.controller.js +5 -6
- package/dist/models/purposes.d.ts +35 -13
- package/dist/models/purposes.js +101 -51
- package/dist/net/public-address.js +3 -2
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +61 -31
- package/dist/orgs/directory-sync.js +212 -125
- 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 +54 -57
- package/dist/orgs/offboarding.js +161 -71
- package/dist/orgs/org-lock.d.ts +28 -19
- package/dist/orgs/org-lock.js +81 -35
- package/dist/orgs/org.guard.d.ts +1 -1
- package/dist/orgs/org.guard.js +2 -2
- package/dist/orgs/orgs.controller.d.ts +13 -13
- package/dist/orgs/orgs.controller.js +29 -17
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +68 -0
- package/dist/orgs/orgs.service.d.ts +30 -19
- package/dist/orgs/orgs.service.js +139 -86
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +14 -8
- package/dist/orgs/settings.service.js +75 -46
- package/dist/overrides.d.ts +56 -0
- package/dist/overrides.js +30 -0
- package/dist/roles/gateway-role.d.ts +43 -0
- package/dist/roles/gateway-role.js +98 -0
- package/dist/roles/gateway.module.d.ts +8 -0
- package/dist/roles/gateway.module.js +28 -0
- package/dist/roles/worker-role.d.ts +63 -0
- package/dist/roles/worker-role.js +144 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +90 -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/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +3 -3
- package/dist/runtime/hook-calls.js +1 -6
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.js +1 -1
- package/dist/runtime/loop.d.ts +7 -0
- 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 +45 -74
- package/dist/runtime/maintenance.js +139 -136
- package/dist/runtime/model-call.d.ts +7 -4
- package/dist/runtime/model-call.js +24 -57
- package/dist/runtime/providers.d.ts +17 -6
- package/dist/runtime/providers.js +66 -25
- 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-control.d.ts +33 -0
- package/dist/runtime/run-control.js +77 -0
- package/dist/runtime/run-finish.d.ts +26 -17
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +48 -0
- package/dist/runtime/run-jobs.js +95 -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 +32 -57
- package/dist/runtime/run-queue.js +291 -295
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +121 -75
- package/dist/runtime/run-worker.js +340 -225
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +112 -0
- package/dist/runtime/step-log.d.ts +40 -0
- package/dist/runtime/step-log.js +94 -0
- package/dist/runtime/stream.controller.d.ts +5 -8
- package/dist/runtime/stream.controller.js +14 -12
- package/dist/runtime/stream.d.ts +24 -6
- package/dist/runtime/stream.js +78 -7
- package/dist/runtime/subagents/child.d.ts +3 -44
- package/dist/runtime/subagents/child.js +0 -79
- package/dist/runtime/subagents/definition.d.ts +4 -4
- package/dist/runtime/subagents/definition.js +2 -2
- package/dist/runtime/subagents/dispatch.d.ts +87 -6
- package/dist/runtime/subagents/dispatch.js +135 -140
- package/dist/runtime/subagents/limits.d.ts +9 -4
- package/dist/runtime/subagents/limits.js +4 -2
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +1 -1
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +3 -3
- package/dist/runtime/subagents/roster.js +1 -1
- package/dist/runtime/subagents/skill-fork.d.ts +6 -7
- package/dist/runtime/subagents/skill-fork.js +16 -5
- package/dist/runtime/subagents/subagents.service.d.ts +40 -0
- package/dist/runtime/subagents/subagents.service.js +101 -0
- package/dist/runtime/usage-report.d.ts +94 -52
- package/dist/runtime/usage-report.js +200 -99
- package/dist/runtime/waits.d.ts +125 -57
- package/dist/runtime/waits.js +431 -208
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +41 -0
- package/dist/sandbox/jobs.js +113 -0
- package/dist/sandbox/leases.d.ts +39 -31
- package/dist/sandbox/leases.js +117 -257
- package/dist/sandbox/providers.d.ts +19 -0
- package/dist/sandbox/providers.js +38 -0
- package/dist/sandbox/sandbox.module.d.ts +8 -0
- package/dist/sandbox/sandbox.module.js +30 -0
- package/dist/sandbox/sandbox.service.d.ts +24 -29
- package/dist/sandbox/sandbox.service.js +106 -75
- package/dist/skills/catalog.d.ts +33 -20
- package/dist/skills/catalog.js +96 -53
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +28 -18
- package/dist/skills/changes.service.js +421 -364
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invoke.d.ts +16 -15
- package/dist/skills/invoke.js +48 -17
- package/dist/skills/skills.controller.d.ts +1 -1
- package/dist/skills/skills.controller.js +11 -6
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +30 -0
- package/dist/skills/skills.service.d.ts +47 -30
- package/dist/skills/skills.service.js +221 -158
- 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/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +12 -8
- package/dist/tools/approvals.service.d.ts +27 -25
- package/dist/tools/approvals.service.js +324 -258
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtins/ask-user.d.ts +2 -2
- package/dist/tools/builtins/ask-user.js +1 -1
- package/dist/tools/builtins/builtin-tools.d.ts +21 -0
- package/dist/tools/builtins/builtin-tools.js +80 -0
- package/dist/tools/builtins/read-tool-output.d.ts +2 -2
- package/dist/tools/builtins/read-tool-output.js +1 -1
- package/dist/tools/builtins/sandbox/bash.js +2 -2
- package/dist/tools/builtins/sandbox/common.d.ts +7 -4
- package/dist/tools/builtins/sandbox/common.js +5 -3
- package/dist/tools/builtins/sandbox/deliver.js +2 -2
- package/dist/tools/builtins/sandbox/edit.js +1 -1
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -2
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/write.js +1 -1
- package/dist/tools/builtins/skill-load.d.ts +3 -3
- package/dist/tools/builtins/skill-load.js +1 -1
- 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 +1 -1
- package/dist/tools/connectors.controller.js +21 -10
- package/dist/tools/connectors.service.d.ts +31 -13
- package/dist/tools/connectors.service.js +434 -344
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +111 -79
- package/dist/tools/info.d.ts +12 -9
- package/dist/tools/info.js +33 -7
- 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/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 +11 -3
- package/dist/tools/oauth/tokens.js +15 -14
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +47 -3
- package/dist/tools/pipeline.d.ts +62 -46
- package/dist/tools/pipeline.js +145 -64
- package/dist/tools/policy.d.ts +2 -2
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +8 -5
- package/dist/tools/questions.service.d.ts +25 -24
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +30 -20
- package/dist/tools/registry.js +73 -37
- 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 +91 -0
- 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 +9 -57
- package/dist/ui/views.js +43 -45
- package/package.json +11 -2
- 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/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/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
- /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
|
@@ -7,12 +7,14 @@ 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 {
|
|
11
|
-
import { ORG_SETTINGS } from "../http/tokens.js";
|
|
12
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
10
|
+
import { Controller, Get, Inject, Patch } from "@nestjs/common";
|
|
13
11
|
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
12
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
13
|
+
import { ZBody } from "../infra/validation/zod-params.js";
|
|
14
14
|
import { CurrentOrg, OrgAction } from "./org.guard.js";
|
|
15
|
-
import { OrgSettingsPatchSchema, } from "./settings.service.js";
|
|
15
|
+
import { OrgSettingsPatchSchema, OrgSettingsService, } from "./settings.service.js";
|
|
16
|
+
class OrgSettingsPatchBody extends createZodDto(OrgSettingsPatchSchema, "OrgSettingsPatch") {
|
|
17
|
+
}
|
|
16
18
|
let OrgSettingsController = class OrgSettingsController {
|
|
17
19
|
settings;
|
|
18
20
|
constructor(settings) {
|
|
@@ -44,10 +46,10 @@ __decorate([
|
|
|
44
46
|
OrgAction("org.update"),
|
|
45
47
|
__param(0, CurrentPrincipal()),
|
|
46
48
|
__param(1, CurrentOrg()),
|
|
47
|
-
__param(2,
|
|
49
|
+
__param(2, ZBody(OrgSettingsPatchBody))
|
|
48
50
|
], OrgSettingsController.prototype, "update", null);
|
|
49
51
|
OrgSettingsController = __decorate([
|
|
50
52
|
Controller("api/v1/orgs/:orgId/settings"),
|
|
51
|
-
__param(0, Inject(
|
|
53
|
+
__param(0, Inject(OrgSettingsService))
|
|
52
54
|
], OrgSettingsController);
|
|
53
55
|
export { OrgSettingsController };
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type SandboxLimits } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
3
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
4
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
5
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
6
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
7
|
+
import { OrgLock } from "./org-lock.js";
|
|
5
8
|
/**
|
|
6
9
|
* 组织设置(`capybara.orgs.settings` jsonb)。读取宽松:缺失或非法的字段按默认值,未知键保留不动
|
|
7
10
|
* (更新时与存量合并),新版本加字段不需要迁移。
|
|
@@ -102,19 +105,22 @@ export interface OrgSettingsDeployment {
|
|
|
102
105
|
/** 把存储的 jsonb 解析为设置(宽松,见 {@link OrgSettingsSchema})。 */
|
|
103
106
|
export declare function parseOrgSettings(raw: unknown): OrgSettings;
|
|
104
107
|
/** 读组织设置(每次实时读 PG,多副本下改动立即生效);组织不存在或已删除按默认值。 */
|
|
105
|
-
export declare function readOrgSettings(db:
|
|
108
|
+
export declare function readOrgSettings(db: KernelSchemaDb, orgId: string): Promise<OrgSettings>;
|
|
106
109
|
/** 组织设置服务:读取与修改(修改需 `org.update`,锁内实时复核角色,写审计)。 */
|
|
107
110
|
export declare class OrgSettingsService {
|
|
108
111
|
private readonly db;
|
|
109
|
-
|
|
110
|
-
private readonly
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
readonly txHost: TransactionHost;
|
|
113
|
+
private readonly orgLock;
|
|
114
|
+
/** The deployment config (`sandboxEgress` may not exceed the deployment's). */
|
|
115
|
+
private readonly config;
|
|
116
|
+
constructor(db: KernelDb, txHost: TransactionHost, orgLock: OrgLock,
|
|
117
|
+
/** The deployment config (`sandboxEgress` may not exceed the deployment's). */
|
|
118
|
+
config: Pick<KernelConfigService, "get">);
|
|
114
119
|
/** 部署默认值(设置页展示「跟随部署」时的实际取值)。 */
|
|
115
120
|
deployment(): OrgSettingsDeployment;
|
|
116
121
|
/** 组织实际生效的沙箱 cpu / 内存(只读;由企业管理员在部署设置里覆盖)。 */
|
|
117
122
|
sandboxLimits(orgId: string): Promise<OrgSandboxLimits>;
|
|
118
123
|
get(orgId: string): Promise<OrgSettings>;
|
|
119
124
|
update(orgId: string, patch: OrgSettingsPatch, actorAccountId: string, actorTokenId?: string): Promise<OrgSettings>;
|
|
125
|
+
private updateIn;
|
|
120
126
|
}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
1
10
|
import { validateAllowHost } from "@capybara-hq/plugin-sdk";
|
|
11
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
2
12
|
import { z } from "zod";
|
|
3
13
|
import { ApiError } from "../errors.js";
|
|
4
14
|
import { audit } from "../identity/audit.js";
|
|
5
15
|
import { readSandboxLimitOverride } from "../identity/settings.js";
|
|
6
|
-
import {
|
|
16
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
17
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
18
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
19
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
20
|
+
import { OrgLock } from "./org-lock.js";
|
|
7
21
|
/**
|
|
8
22
|
* 组织设置(`capybara.orgs.settings` jsonb)。读取宽松:缺失或非法的字段按默认值,未知键保留不动
|
|
9
23
|
* (更新时与存量合并),新版本加字段不需要迁移。
|
|
@@ -96,30 +110,33 @@ export async function readOrgSettings(db, orgId) {
|
|
|
96
110
|
return parseOrgSettings(row?.settings);
|
|
97
111
|
}
|
|
98
112
|
/** 组织设置服务:读取与修改(修改需 `org.update`,锁内实时复核角色,写审计)。 */
|
|
99
|
-
|
|
113
|
+
let OrgSettingsService = class OrgSettingsService {
|
|
100
114
|
db;
|
|
115
|
+
txHost;
|
|
116
|
+
orgLock;
|
|
101
117
|
config;
|
|
102
|
-
constructor(db,
|
|
103
|
-
/**
|
|
118
|
+
constructor(db, txHost, orgLock,
|
|
119
|
+
/** The deployment config (`sandboxEgress` may not exceed the deployment's). */
|
|
104
120
|
config) {
|
|
105
121
|
this.db = db;
|
|
122
|
+
this.txHost = txHost;
|
|
123
|
+
this.orgLock = orgLock;
|
|
106
124
|
this.config = config;
|
|
107
125
|
}
|
|
108
126
|
/** 部署默认值(设置页展示「跟随部署」时的实际取值)。 */
|
|
109
127
|
deployment() {
|
|
110
|
-
const lim = this.config
|
|
128
|
+
const lim = this.config.get().sandbox.limits;
|
|
111
129
|
return {
|
|
112
|
-
sandboxEgress: { mode: lim
|
|
130
|
+
sandboxEgress: { mode: lim.egress, allowHosts: [...lim.allowHosts] },
|
|
113
131
|
};
|
|
114
132
|
}
|
|
115
133
|
/** 组织实际生效的沙箱 cpu / 内存(只读;由企业管理员在部署设置里覆盖)。 */
|
|
116
134
|
async sandboxLimits(orgId) {
|
|
117
|
-
const lim = this.config
|
|
118
|
-
const override = await readSandboxLimitOverride(this.db, orgId);
|
|
135
|
+
const lim = this.config.get().sandbox.limits;
|
|
136
|
+
const override = await readSandboxLimitOverride(this.db.db, orgId);
|
|
119
137
|
return {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
memoryMb: override?.memoryMb ?? lim?.memoryMb ?? 2048,
|
|
138
|
+
cpu: override?.cpu ?? lim.cpu,
|
|
139
|
+
memoryMb: override?.memoryMb ?? lim.memoryMb,
|
|
123
140
|
source: override === undefined ? "deployment" : "override",
|
|
124
141
|
};
|
|
125
142
|
}
|
|
@@ -139,40 +156,52 @@ export class OrgSettingsService {
|
|
|
139
156
|
this.deployment().sandboxEgress.mode === "none") {
|
|
140
157
|
throw new ApiError("org.sandbox_egress_not_allowed", "This deployment disables sandbox network access (sandbox.limits.egress is none); an organization can only set sandboxEgress to none");
|
|
141
158
|
}
|
|
142
|
-
return this.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
159
|
+
return this.updateIn(orgId, patch, actorAccountId, actorTokenId);
|
|
160
|
+
}
|
|
161
|
+
async updateIn(orgId, patch, actorAccountId, actorTokenId) {
|
|
162
|
+
await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "org.update");
|
|
163
|
+
const row = await this.db
|
|
164
|
+
.selectFrom("orgs")
|
|
165
|
+
.select("settings")
|
|
166
|
+
.where("id", "=", orgId)
|
|
167
|
+
.executeTakeFirstOrThrow();
|
|
168
|
+
const stored = asObject(row.settings);
|
|
169
|
+
const before = parseOrgSettings(stored);
|
|
170
|
+
const changes = Object.fromEntries(Object.entries(patch)
|
|
171
|
+
.filter(([, v]) => v !== undefined)
|
|
172
|
+
// null 清除 sandboxEgress:恢复跟随部署默认
|
|
173
|
+
.map(([k, v]) => [k, v === null ? undefined : v]));
|
|
174
|
+
const after = { ...before, ...changes };
|
|
175
|
+
if (after.sandboxEgress === undefined)
|
|
176
|
+
delete after.sandboxEgress;
|
|
177
|
+
if (sameSettings(before, after))
|
|
178
|
+
return before;
|
|
179
|
+
// 与存量合并:保留本版本不认识的键(清除的 sandboxEgress 不留在存量里)
|
|
180
|
+
const { sandboxEgress: _old, ...rest } = stored;
|
|
181
|
+
await this.db
|
|
182
|
+
.updateTable("orgs")
|
|
183
|
+
.set({ settings: JSON.stringify({ ...rest, ...after }) })
|
|
184
|
+
.where("id", "=", orgId)
|
|
185
|
+
.execute();
|
|
186
|
+
await audit(this.db.db, {
|
|
187
|
+
actorAccountId,
|
|
188
|
+
...(actorTokenId !== undefined && { actorTokenId }),
|
|
189
|
+
orgId,
|
|
190
|
+
action: "org.settings_updated",
|
|
191
|
+
target: orgId,
|
|
192
|
+
detail: { before, after },
|
|
176
193
|
});
|
|
194
|
+
return after;
|
|
177
195
|
}
|
|
178
|
-
}
|
|
196
|
+
};
|
|
197
|
+
__decorate([
|
|
198
|
+
Transactional()
|
|
199
|
+
], OrgSettingsService.prototype, "updateIn", null);
|
|
200
|
+
OrgSettingsService = __decorate([
|
|
201
|
+
Injectable(),
|
|
202
|
+
__param(0, Inject(KernelDb)),
|
|
203
|
+
__param(1, Inject(TransactionHost)),
|
|
204
|
+
__param(2, Inject(OrgLock)),
|
|
205
|
+
__param(3, Inject(KernelConfigService))
|
|
206
|
+
], OrgSettingsService);
|
|
207
|
+
export { OrgSettingsService };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { NestInterceptor } from "@nestjs/common";
|
|
2
|
+
import { APP_INTERCEPTOR } from "@nestjs/core";
|
|
3
|
+
import { CHANNEL_WEBHOOK_TIMINGS, type ChannelWebhookTimings } from "./channels/webhook.js";
|
|
4
|
+
import type { EvalReplayHooks } from "./evals/run-replay.js";
|
|
5
|
+
import { EVAL_REPLAY_HOOKS } from "./evals/worker.js";
|
|
6
|
+
import { BOOTSTRAP_LOCK_TTL } from "./extensions/bootstrap.js";
|
|
7
|
+
import { FILE_PREVIEW_TIMEOUT } from "./files/previewers.js";
|
|
8
|
+
import { LIST_MODELS_TIMEOUT } from "./runtime/providers.js";
|
|
9
|
+
import { AGENT_LOOP_FACTORY, type AgentLoopFactory } from "./runtime/run-steps.js";
|
|
10
|
+
import { RUN_HOOKS, type RunHooks } from "./runtime/run-worker.js";
|
|
11
|
+
import { USAGE_REPORT_RETRY, type UsageReportRetry } from "./runtime/usage-report.js";
|
|
12
|
+
import { SANDBOX_LEASE_TIMINGS, type SandboxLeaseTimings } from "./sandbox/leases.js";
|
|
13
|
+
import { TOOL_PIPELINE_HOOKS, type ToolPipelineHooks } from "./tools/pipeline.js";
|
|
14
|
+
import { EMBED_TOKEN_CLOCK } from "./ui/embed-token.js";
|
|
15
|
+
/**
|
|
16
|
+
* The value each seam token takes. Every token is an optional provider the kernel itself never
|
|
17
|
+
* provides (its consumer falls back to the production default):
|
|
18
|
+
*
|
|
19
|
+
* - `AGENT_LOOP_FACTORY`: the agent loop runs execute (default the LangGraph loop);
|
|
20
|
+
* - `RUN_HOOKS`: the run worker's hooks;
|
|
21
|
+
* - `EVAL_REPLAY_HOOKS`: the hooks of the eval full-run replay and the judge;
|
|
22
|
+
* - `TOOL_PIPELINE_HOOKS`: the tool pipeline's hooks and policy decision;
|
|
23
|
+
* - `BOOTSTRAP_LOCK_TTL`, `FILE_PREVIEW_TIMEOUT`, `LIST_MODELS_TIMEOUT`, `USAGE_REPORT_RETRY`,
|
|
24
|
+
* `SANDBOX_LEASE_TIMINGS`, `CHANNEL_WEBHOOK_TIMINGS`: shorter timings;
|
|
25
|
+
* - `EMBED_TOKEN_CLOCK`: the clock embed tokens are issued and checked with;
|
|
26
|
+
* - `APP_INTERCEPTOR`: one more global interceptor (a probe of the matched routes).
|
|
27
|
+
*/
|
|
28
|
+
interface KernelSeams {
|
|
29
|
+
[AGENT_LOOP_FACTORY]: AgentLoopFactory;
|
|
30
|
+
[RUN_HOOKS]: RunHooks;
|
|
31
|
+
[EVAL_REPLAY_HOOKS]: EvalReplayHooks;
|
|
32
|
+
[TOOL_PIPELINE_HOOKS]: ToolPipelineHooks;
|
|
33
|
+
[BOOTSTRAP_LOCK_TTL]: number;
|
|
34
|
+
[FILE_PREVIEW_TIMEOUT]: number;
|
|
35
|
+
[LIST_MODELS_TIMEOUT]: number;
|
|
36
|
+
[USAGE_REPORT_RETRY]: UsageReportRetry;
|
|
37
|
+
[SANDBOX_LEASE_TIMINGS]: Partial<SandboxLeaseTimings>;
|
|
38
|
+
[CHANNEL_WEBHOOK_TIMINGS]: Partial<ChannelWebhookTimings>;
|
|
39
|
+
[EMBED_TOKEN_CLOCK]: () => number;
|
|
40
|
+
[APP_INTERCEPTOR]: NestInterceptor;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A seam of the kernel's own tests (`KernelAppOptions.overrides`): a value for one of the named
|
|
44
|
+
* seam tokens of {@link KernelSeams}. Domain classes cannot be replaced this way. The tokens are
|
|
45
|
+
* not exported from the package, and `@capybara-hq/testing`'s `startTestKernel` takes no
|
|
46
|
+
* overrides (decision R22 of the Nest kernel spec).
|
|
47
|
+
*/
|
|
48
|
+
export type KernelOverride = {
|
|
49
|
+
[K in keyof KernelSeams]: {
|
|
50
|
+
provide: K;
|
|
51
|
+
useValue: KernelSeams[K];
|
|
52
|
+
};
|
|
53
|
+
}[keyof KernelSeams];
|
|
54
|
+
/** The tokens {@link KernelOverride} may name; any other token is refused when the application is built. */
|
|
55
|
+
export declare const KERNEL_OVERRIDE_TOKENS: ReadonlySet<unknown>;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { APP_INTERCEPTOR } from "@nestjs/core";
|
|
2
|
+
import { CHANNEL_WEBHOOK_TIMINGS } from "./channels/webhook.js";
|
|
3
|
+
import { EVAL_REPLAY_HOOKS } from "./evals/worker.js";
|
|
4
|
+
import { BOOTSTRAP_LOCK_TTL } from "./extensions/bootstrap.js";
|
|
5
|
+
import { FILE_PREVIEW_TIMEOUT } from "./files/previewers.js";
|
|
6
|
+
import { LIST_MODELS_TIMEOUT } from "./runtime/providers.js";
|
|
7
|
+
import { AGENT_LOOP_FACTORY } from "./runtime/run-steps.js";
|
|
8
|
+
import { RUN_HOOKS } from "./runtime/run-worker.js";
|
|
9
|
+
import { USAGE_REPORT_RETRY } from "./runtime/usage-report.js";
|
|
10
|
+
import { SANDBOX_LEASE_TIMINGS } from "./sandbox/leases.js";
|
|
11
|
+
import { TOOL_PIPELINE_HOOKS } from "./tools/pipeline.js";
|
|
12
|
+
import { EMBED_TOKEN_CLOCK } from "./ui/embed-token.js";
|
|
13
|
+
const SEAM_TOKENS = [
|
|
14
|
+
AGENT_LOOP_FACTORY,
|
|
15
|
+
RUN_HOOKS,
|
|
16
|
+
EVAL_REPLAY_HOOKS,
|
|
17
|
+
TOOL_PIPELINE_HOOKS,
|
|
18
|
+
BOOTSTRAP_LOCK_TTL,
|
|
19
|
+
FILE_PREVIEW_TIMEOUT,
|
|
20
|
+
LIST_MODELS_TIMEOUT,
|
|
21
|
+
USAGE_REPORT_RETRY,
|
|
22
|
+
SANDBOX_LEASE_TIMINGS,
|
|
23
|
+
CHANNEL_WEBHOOK_TIMINGS,
|
|
24
|
+
EMBED_TOKEN_CLOCK,
|
|
25
|
+
APP_INTERCEPTOR,
|
|
26
|
+
];
|
|
27
|
+
const allSeamsListed = true;
|
|
28
|
+
void allSeamsListed;
|
|
29
|
+
/** The tokens {@link KernelOverride} may name; any other token is refused when the application is built. */
|
|
30
|
+
export const KERNEL_OVERRIDE_TOKENS = new Set(SEAM_TOKENS);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ExtensionContext } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { ChannelSupervisor } from "../channels/supervisor.js";
|
|
3
|
+
import { ChannelWebhooks } from "../channels/webhook.js";
|
|
4
|
+
import { ExtensionHost } from "../extensions/host.js";
|
|
5
|
+
import type { GatewayRoutes } from "../http/gateway-routes.js";
|
|
6
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
7
|
+
/**
|
|
8
|
+
* The gateway role's parts, driven by `KernelLifecycle` at fixed points of its start order and
|
|
9
|
+
* stop phases: the channel long-connection supervisor (leader election and share) and the webhook
|
|
10
|
+
* inbound (its raw Fastify route, {@link routes}, and its runtime cache's invalidation). Provided
|
|
11
|
+
* only by `GatewayModule`, so a process without the gateway role has none of them.
|
|
12
|
+
*/
|
|
13
|
+
export declare class GatewayRole {
|
|
14
|
+
private readonly config;
|
|
15
|
+
private readonly host;
|
|
16
|
+
private readonly bus;
|
|
17
|
+
private readonly supervisor;
|
|
18
|
+
private readonly webhooks;
|
|
19
|
+
/** The supervisor's subscription to extension instance changes. */
|
|
20
|
+
private unwatchPlugins;
|
|
21
|
+
private unwatchWebhooks;
|
|
22
|
+
/** The webhook cache's `channel.changed` subscription (a field: a test replaces it). */
|
|
23
|
+
private unsubscribeWebhooks;
|
|
24
|
+
/** The supervisor was started: the runs phase stops it. */
|
|
25
|
+
private supervisorStarted;
|
|
26
|
+
constructor(config: KernelConfigService, host: ExtensionHost, bus: Pick<ExtensionContext["bus"], "subscribe">, supervisor: ChannelSupervisor, webhooks: ChannelWebhooks);
|
|
27
|
+
/** The gateway role's HTTP routes (the channel webhook), registered when the app is built. */
|
|
28
|
+
routes(): GatewayRoutes;
|
|
29
|
+
/**
|
|
30
|
+
* Starts the supervisor and the webhook cache invalidation (after the extension load).
|
|
31
|
+
* `checkpoint` throws when a stop began meanwhile.
|
|
32
|
+
*/
|
|
33
|
+
start(checkpoint: () => void): Promise<void>;
|
|
34
|
+
/** Stops watching extension instance changes (the stop's first step). */
|
|
35
|
+
unwatch(): void;
|
|
36
|
+
/** Ends the webhook cache's `channel.changed` subscription. */
|
|
37
|
+
unsubscribe(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* The runs phase: the supervisor aborts its connects and hands back its leases (undefined: never
|
|
40
|
+
* started).
|
|
41
|
+
*/
|
|
42
|
+
stopSupervisor(): Promise<void> | undefined;
|
|
43
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
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 { CHANNEL_CHANGED_TOPIC } from "../channels/connections.service.js";
|
|
12
|
+
import { ChannelSupervisor } from "../channels/supervisor.js";
|
|
13
|
+
import { ChannelWebhooks } from "../channels/webhook.js";
|
|
14
|
+
import { ExtensionHost } from "../extensions/host.js";
|
|
15
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
16
|
+
import { KERNEL_BUS } from "../infra/tokens.js";
|
|
17
|
+
/**
|
|
18
|
+
* The gateway role's parts, driven by `KernelLifecycle` at fixed points of its start order and
|
|
19
|
+
* stop phases: the channel long-connection supervisor (leader election and share) and the webhook
|
|
20
|
+
* inbound (its raw Fastify route, {@link routes}, and its runtime cache's invalidation). Provided
|
|
21
|
+
* only by `GatewayModule`, so a process without the gateway role has none of them.
|
|
22
|
+
*/
|
|
23
|
+
let GatewayRole = class GatewayRole {
|
|
24
|
+
config;
|
|
25
|
+
host;
|
|
26
|
+
bus;
|
|
27
|
+
supervisor;
|
|
28
|
+
webhooks;
|
|
29
|
+
/** The supervisor's subscription to extension instance changes. */
|
|
30
|
+
unwatchPlugins;
|
|
31
|
+
unwatchWebhooks;
|
|
32
|
+
/** The webhook cache's `channel.changed` subscription (a field: a test replaces it). */
|
|
33
|
+
unsubscribeWebhooks;
|
|
34
|
+
/** The supervisor was started: the runs phase stops it. */
|
|
35
|
+
supervisorStarted = false;
|
|
36
|
+
constructor(config, host, bus, supervisor, webhooks) {
|
|
37
|
+
this.config = config;
|
|
38
|
+
this.host = host;
|
|
39
|
+
this.bus = bus;
|
|
40
|
+
this.supervisor = supervisor;
|
|
41
|
+
this.webhooks = webhooks;
|
|
42
|
+
}
|
|
43
|
+
/** The gateway role's HTTP routes (the channel webhook), registered when the app is built. */
|
|
44
|
+
routes() {
|
|
45
|
+
return {
|
|
46
|
+
webhooks: this.webhooks,
|
|
47
|
+
webhookMaxBodyBytes: this.config.get().channels.webhookMaxBodyBytes,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Starts the supervisor and the webhook cache invalidation (after the extension load).
|
|
52
|
+
* `checkpoint` throws when a stop began meanwhile.
|
|
53
|
+
*/
|
|
54
|
+
async start(checkpoint) {
|
|
55
|
+
const supervisor = this.supervisor;
|
|
56
|
+
this.supervisorStarted = true;
|
|
57
|
+
await supervisor.start();
|
|
58
|
+
// An extension instance revoked or replaced: hand back the long connections it holds and
|
|
59
|
+
// elect again on the new instance (C17)
|
|
60
|
+
this.unwatchPlugins = this.host.onChange((plugin) => supervisor.pluginChanged(plugin));
|
|
61
|
+
checkpoint();
|
|
62
|
+
// The webhook runtime cache is read-through only: drop entries on every connection change and
|
|
63
|
+
// whenever a plugin instance changes
|
|
64
|
+
const webhooks = this.webhooks;
|
|
65
|
+
this.unsubscribeWebhooks = await this.bus.subscribe(CHANNEL_CHANGED_TOPIC, (payload) => {
|
|
66
|
+
const id = payload?.connectionId;
|
|
67
|
+
if (typeof id === "string")
|
|
68
|
+
webhooks.invalidate(id);
|
|
69
|
+
});
|
|
70
|
+
this.unwatchWebhooks = this.host.onChange(() => webhooks.invalidateAll());
|
|
71
|
+
checkpoint();
|
|
72
|
+
}
|
|
73
|
+
/** Stops watching extension instance changes (the stop's first step). */
|
|
74
|
+
unwatch() {
|
|
75
|
+
this.unwatchPlugins?.();
|
|
76
|
+
this.unwatchWebhooks?.();
|
|
77
|
+
}
|
|
78
|
+
/** Ends the webhook cache's `channel.changed` subscription. */
|
|
79
|
+
unsubscribe() {
|
|
80
|
+
return this.unsubscribeWebhooks?.() ?? Promise.resolve();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The runs phase: the supervisor aborts its connects and hands back its leases (undefined: never
|
|
84
|
+
* started).
|
|
85
|
+
*/
|
|
86
|
+
stopSupervisor() {
|
|
87
|
+
return this.supervisorStarted ? this.supervisor.stop() : undefined;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
GatewayRole = __decorate([
|
|
91
|
+
Injectable(),
|
|
92
|
+
__param(0, Inject(KernelConfigService)),
|
|
93
|
+
__param(1, Inject(ExtensionHost)),
|
|
94
|
+
__param(2, Inject(KERNEL_BUS)),
|
|
95
|
+
__param(3, Inject(ChannelSupervisor)),
|
|
96
|
+
__param(4, Inject(ChannelWebhooks))
|
|
97
|
+
], GatewayRole);
|
|
98
|
+
export { GatewayRole };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The gateway role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
|
|
3
|
+
* `gateway`: the channel long-connection supervisor, the webhook inbound (served as a raw Fastify
|
|
4
|
+
* route, `http/gateway-routes.ts`) and {@link GatewayRole}, which `KernelLifecycle` drives. It runs
|
|
5
|
+
* no cron and no queue consumer (those are the worker role's).
|
|
6
|
+
*/
|
|
7
|
+
export declare class GatewayModule {
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { ChannelsModule } from "../channels/channels.module.js";
|
|
9
|
+
import { ChannelSupervisor } from "../channels/supervisor.js";
|
|
10
|
+
import { ChannelWebhooks } from "../channels/webhook.js";
|
|
11
|
+
import { ExtensionsModule } from "../extensions/extensions.module.js";
|
|
12
|
+
import { GatewayRole } from "./gateway-role.js";
|
|
13
|
+
/**
|
|
14
|
+
* The gateway role (nest kernel spec §2), imported by `KernelModule` only when `roles` includes
|
|
15
|
+
* `gateway`: the channel long-connection supervisor, the webhook inbound (served as a raw Fastify
|
|
16
|
+
* route, `http/gateway-routes.ts`) and {@link GatewayRole}, which `KernelLifecycle` drives. It runs
|
|
17
|
+
* no cron and no queue consumer (those are the worker role's).
|
|
18
|
+
*/
|
|
19
|
+
let GatewayModule = class GatewayModule {
|
|
20
|
+
};
|
|
21
|
+
GatewayModule = __decorate([
|
|
22
|
+
Module({
|
|
23
|
+
imports: [ChannelsModule, ExtensionsModule],
|
|
24
|
+
providers: [ChannelSupervisor, ChannelWebhooks, GatewayRole],
|
|
25
|
+
exports: [GatewayRole],
|
|
26
|
+
})
|
|
27
|
+
], GatewayModule);
|
|
28
|
+
export { GatewayModule };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ChannelsProcessor } from "../channels/channels.module.js";
|
|
2
|
+
import { ChannelOutbound } from "../channels/outbound.js";
|
|
3
|
+
import { TitleQueue } from "../conversations/titles.js";
|
|
4
|
+
import { EvalsProcessor } from "../evals/evals.module.js";
|
|
5
|
+
import { EvalWorker } from "../evals/worker.js";
|
|
6
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
7
|
+
import { LockedIntervalScheduler } from "../infra/schedule/locked-interval.js";
|
|
8
|
+
import { ScheduledRuns } from "../infra/schedule/scheduled-runs.js";
|
|
9
|
+
import type { KernelLogger } from "../log.js";
|
|
10
|
+
import { MaintenanceProcessor } from "../runtime/maintenance.js";
|
|
11
|
+
import { RunsProcessor, SubagentRunsProcessor, TitleProcessor, UsageReportProcessor } from "../runtime/run-processors.js";
|
|
12
|
+
import { RunWorker } from "../runtime/run-worker.js";
|
|
13
|
+
import { UsageReporter } from "../runtime/usage-report.js";
|
|
14
|
+
/**
|
|
15
|
+
* The worker role's parts, driven by `KernelLifecycle` at fixed points of its start order and stop
|
|
16
|
+
* phases (so they stay ordered after the extension load and before the extension host closes): the
|
|
17
|
+
* queue consumers (runs, sub-agent runs, evals, maintenance, channel deliveries, `usage.report`,
|
|
18
|
+
* titles) and the schedulers of the `@LockedCron` / `@LockedInterval` jobs. Provided only by
|
|
19
|
+
* `WorkerModule`, so a process without the worker role has none of them.
|
|
20
|
+
*/
|
|
21
|
+
export declare class WorkerRole {
|
|
22
|
+
private readonly log;
|
|
23
|
+
private readonly intervals;
|
|
24
|
+
private readonly scheduledRuns;
|
|
25
|
+
private readonly runWorker;
|
|
26
|
+
private readonly evalWorker;
|
|
27
|
+
private readonly usageReport;
|
|
28
|
+
private readonly titles;
|
|
29
|
+
private readonly channelOutbound;
|
|
30
|
+
private readonly runsProcessor;
|
|
31
|
+
private readonly subagentRunsProcessor;
|
|
32
|
+
private readonly usageProcessor;
|
|
33
|
+
private readonly titleProcessor;
|
|
34
|
+
private readonly channelsProcessor;
|
|
35
|
+
private readonly evalsProcessor;
|
|
36
|
+
private readonly maintenanceProcessor;
|
|
37
|
+
/** The startup config (the roles). */
|
|
38
|
+
private readonly config;
|
|
39
|
+
/** The run worker was started: the runs phase drains it. */
|
|
40
|
+
private runsStarted;
|
|
41
|
+
/** The eval worker was started: the runs phase drains it. */
|
|
42
|
+
private evalsStarted;
|
|
43
|
+
constructor(config: KernelConfigService, log: KernelLogger, intervals: LockedIntervalScheduler, scheduledRuns: ScheduledRuns, runWorker: RunWorker, evalWorker: EvalWorker, usageReport: UsageReporter, titles: TitleQueue, channelOutbound: ChannelOutbound, runsProcessor: RunsProcessor, subagentRunsProcessor: SubagentRunsProcessor, usageProcessor: UsageReportProcessor, titleProcessor: TitleProcessor, channelsProcessor: ChannelsProcessor, evalsProcessor: EvalsProcessor, maintenanceProcessor: MaintenanceProcessor);
|
|
44
|
+
/**
|
|
45
|
+
* Starts the queue consumers (after the extension load), then opens the schedules' start gate:
|
|
46
|
+
* the cron and interval timers were armed at application bootstrap, but every tick before this
|
|
47
|
+
* point skipped (decision R21 of the Nest kernel spec); the `@LockedInterval({ runOnStart })`
|
|
48
|
+
* jobs run now, in the background (once across replicas starting together). `checkpoint` throws
|
|
49
|
+
* when a stop began meanwhile.
|
|
50
|
+
*/
|
|
51
|
+
start(checkpoint: () => void): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Closes the start gate and stops the schedulers (no new tick; the runs in progress get the stop
|
|
54
|
+
* signal) and returns the wait for those runs, at most `budgetMs`.
|
|
55
|
+
*/
|
|
56
|
+
stopSchedules(budgetMs: number): Promise<void>;
|
|
57
|
+
/** The runs phase: this process's runs stop at their next step boundary (undefined: never started). */
|
|
58
|
+
drainRuns(budgetMs: number): Promise<void> | undefined;
|
|
59
|
+
/** The eval cases in progress stop (undefined: never started). */
|
|
60
|
+
drainEvals(budgetMs: number): Promise<void> | undefined;
|
|
61
|
+
/** Closes the maintenance queue's worker. */
|
|
62
|
+
closeMaintenance(): Promise<void>;
|
|
63
|
+
}
|