@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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Job, Queue } from "bullmq";
|
|
2
|
+
import type { ConversationKind } from "../db/kernel-schema.js";
|
|
3
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
4
|
+
import type { KernelLogger } from "../log.js";
|
|
5
|
+
/** 内核运行队列的 BullMQ 队列名(不含 `:`;与插件队列 `cap.<插件>.<名>` 不会重名)。 */
|
|
6
|
+
export declare const RUN_QUEUE_NAME = "cap-kernel-runs";
|
|
7
|
+
/**
|
|
8
|
+
* Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
|
|
9
|
+
* sub-agents never takes a child job, and child load shows apart from conversations.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
|
|
12
|
+
/** The run queue of a conversation kind: sub-agent conversations have their own. */
|
|
13
|
+
export declare const runQueueNameFor: (kind: ConversationKind) => string;
|
|
14
|
+
/** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
|
|
15
|
+
export declare const ACTIVE_RUN_STATUSES: readonly ["queued", "running", "waiting"];
|
|
16
|
+
/** 运行任务的数据。 */
|
|
17
|
+
export interface RunJobData {
|
|
18
|
+
runId: string;
|
|
19
|
+
conversationId: string;
|
|
20
|
+
}
|
|
21
|
+
/** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
|
|
22
|
+
export declare const runJobId: (conversationId: string, maxUserSeq: number) => string;
|
|
23
|
+
/**
|
|
24
|
+
* The producer side of the two run queues (`cap-kernel-runs`, `cap-kernel-subagent-runs`): adds
|
|
25
|
+
* run jobs under the caller's job id and looks them up. The run queue (`ensureRun`, orphan
|
|
26
|
+
* repairs), the waits (resumes) and the sub-agent dispatch enqueue through it; the run worker
|
|
27
|
+
* consumes both queues.
|
|
28
|
+
*/
|
|
29
|
+
export declare class RunJobs {
|
|
30
|
+
private readonly kdb;
|
|
31
|
+
private readonly queues;
|
|
32
|
+
constructor(kdb: KernelDb, runs: Queue<RunJobData>, subagentRuns: Queue<RunJobData>, log: KernelLogger);
|
|
33
|
+
/** The BullMQ queue `name` (default: conversation runs). */
|
|
34
|
+
queue(name?: string): Queue<RunJobData>;
|
|
35
|
+
/** A run job by id on the queue `name`, or undefined. */
|
|
36
|
+
getJob(jobId: string, name?: string): Promise<Job<RunJobData> | undefined>;
|
|
37
|
+
/** Adds a conversation run job (`ensureRun`'s own enqueue). */
|
|
38
|
+
add(data: RunJobData, jobId: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Enqueues a run job under the caller's job id (resumes, dispatches, repairs). The queue follows
|
|
41
|
+
* the conversation's kind (a sub-agent's runs go to {@link SUBAGENT_RUN_QUEUE_NAME}); pass
|
|
42
|
+
* `kind` when the caller knows it, else it is read.
|
|
43
|
+
*/
|
|
44
|
+
enqueue(data: RunJobData, jobId: string, kind?: ConversationKind): Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
/** The run queues' producer (the sub-agent dispatch, the run queue and the waits use it). */
|
|
47
|
+
export declare class RunJobsModule {
|
|
48
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
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 { getQueueToken } from "@nestjs/bullmq";
|
|
11
|
+
import { Inject, Injectable, Module } from "@nestjs/common";
|
|
12
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
13
|
+
import { QueueModule } from "../infra/queue/queue.module.js";
|
|
14
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
15
|
+
/** 内核运行队列的 BullMQ 队列名(不含 `:`;与插件队列 `cap.<插件>.<名>` 不会重名)。 */
|
|
16
|
+
export const RUN_QUEUE_NAME = "cap-kernel-runs";
|
|
17
|
+
/**
|
|
18
|
+
* Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
|
|
19
|
+
* sub-agents never takes a child job, and child load shows apart from conversations.
|
|
20
|
+
*/
|
|
21
|
+
export const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
|
|
22
|
+
/** The run queue of a conversation kind: sub-agent conversations have their own. */
|
|
23
|
+
export const runQueueNameFor = (kind) => kind === "subagent" ? SUBAGENT_RUN_QUEUE_NAME : RUN_QUEUE_NAME;
|
|
24
|
+
/** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
|
|
25
|
+
export const ACTIVE_RUN_STATUSES = ["queued", "running", "waiting"];
|
|
26
|
+
/** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
|
|
27
|
+
export const runJobId = (conversationId, maxUserSeq) => `run-${conversationId}-${maxUserSeq}`;
|
|
28
|
+
/** The options of every run job: one attempt (the run's own paths handle failures), not kept. */
|
|
29
|
+
const RUN_JOB_OPTIONS = { attempts: 1, removeOnComplete: true, removeOnFail: true };
|
|
30
|
+
/**
|
|
31
|
+
* The producer side of the two run queues (`cap-kernel-runs`, `cap-kernel-subagent-runs`): adds
|
|
32
|
+
* run jobs under the caller's job id and looks them up. The run queue (`ensureRun`, orphan
|
|
33
|
+
* repairs), the waits (resumes) and the sub-agent dispatch enqueue through it; the run worker
|
|
34
|
+
* consumes both queues.
|
|
35
|
+
*/
|
|
36
|
+
let RunJobs = class RunJobs {
|
|
37
|
+
kdb;
|
|
38
|
+
queues;
|
|
39
|
+
constructor(kdb, runs, subagentRuns, log) {
|
|
40
|
+
this.kdb = kdb;
|
|
41
|
+
this.queues = { [RUN_QUEUE_NAME]: runs, [SUBAGENT_RUN_QUEUE_NAME]: subagentRuns };
|
|
42
|
+
for (const [name, q] of Object.entries(this.queues)) {
|
|
43
|
+
q.on("error", (err) => log.error("run queue error", { err, queue: name }));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** The BullMQ queue `name` (default: conversation runs). */
|
|
47
|
+
queue(name = RUN_QUEUE_NAME) {
|
|
48
|
+
const q = this.queues[name];
|
|
49
|
+
if (!q)
|
|
50
|
+
throw new Error(`unknown run queue ${name}`);
|
|
51
|
+
return q;
|
|
52
|
+
}
|
|
53
|
+
/** A run job by id on the queue `name`, or undefined. */
|
|
54
|
+
getJob(jobId, name = RUN_QUEUE_NAME) {
|
|
55
|
+
return this.queue(name).getJob(jobId);
|
|
56
|
+
}
|
|
57
|
+
/** Adds a conversation run job (`ensureRun`'s own enqueue). */
|
|
58
|
+
async add(data, jobId) {
|
|
59
|
+
await this.queue().add("run", data, { jobId, ...RUN_JOB_OPTIONS });
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Enqueues a run job under the caller's job id (resumes, dispatches, repairs). The queue follows
|
|
63
|
+
* the conversation's kind (a sub-agent's runs go to {@link SUBAGENT_RUN_QUEUE_NAME}); pass
|
|
64
|
+
* `kind` when the caller knows it, else it is read.
|
|
65
|
+
*/
|
|
66
|
+
async enqueue(data, jobId, kind) {
|
|
67
|
+
const k = kind ??
|
|
68
|
+
(await this.kdb.db
|
|
69
|
+
.selectFrom("conversations")
|
|
70
|
+
.select("kind")
|
|
71
|
+
.where("id", "=", data.conversationId)
|
|
72
|
+
.executeTakeFirst())?.kind ??
|
|
73
|
+
"chat";
|
|
74
|
+
await this.queue(runQueueNameFor(k)).add("run", data, { jobId, ...RUN_JOB_OPTIONS });
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
RunJobs = __decorate([
|
|
78
|
+
Injectable(),
|
|
79
|
+
__param(0, Inject(KernelDb)),
|
|
80
|
+
__param(1, Inject(getQueueToken(RUN_QUEUE_NAME))),
|
|
81
|
+
__param(2, Inject(getQueueToken(SUBAGENT_RUN_QUEUE_NAME))),
|
|
82
|
+
__param(3, Inject(KERNEL_LOGGER))
|
|
83
|
+
], RunJobs);
|
|
84
|
+
export { RunJobs };
|
|
85
|
+
/** The run queues' producer (the sub-agent dispatch, the run queue and the waits use it). */
|
|
86
|
+
let RunJobsModule = class RunJobsModule {
|
|
87
|
+
};
|
|
88
|
+
RunJobsModule = __decorate([
|
|
89
|
+
Module({
|
|
90
|
+
imports: [QueueModule.registerQueue(RUN_QUEUE_NAME, SUBAGENT_RUN_QUEUE_NAME)],
|
|
91
|
+
providers: [RunJobs],
|
|
92
|
+
exports: [RunJobs],
|
|
93
|
+
})
|
|
94
|
+
], RunJobsModule);
|
|
95
|
+
export { RunJobsModule };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { WorkerHost } from "@nestjs/bullmq";
|
|
2
|
+
import { type DynamicModule } from "@nestjs/common";
|
|
3
|
+
import type { Job, Worker } from "bullmq";
|
|
4
|
+
import type { KernelConfig } from "../config/schema.js";
|
|
5
|
+
import { TitleQueue } from "../conversations/titles.js";
|
|
6
|
+
import { type RunJobData } from "./run-jobs.js";
|
|
7
|
+
import { RunWorker } from "./run-worker.js";
|
|
8
|
+
import { UsageReporter, type UsageReportJob } from "./usage-report.js";
|
|
9
|
+
type RunResult = Awaited<ReturnType<RunWorker["process"]>>;
|
|
10
|
+
/** The consumer of `cap-kernel-runs` (conversation runs): {@link RunWorker}. */
|
|
11
|
+
export declare class RunsProcessor extends WorkerHost<Worker<RunJobData, RunResult>> {
|
|
12
|
+
private readonly runs;
|
|
13
|
+
constructor(runs: RunWorker);
|
|
14
|
+
process(job: Job<RunJobData>, token?: string): Promise<RunResult>;
|
|
15
|
+
completed(job: Job<RunJobData>, result: RunResult): void;
|
|
16
|
+
failed(job: Job<RunJobData> | undefined, err: Error): void;
|
|
17
|
+
error(err: Error): void;
|
|
18
|
+
}
|
|
19
|
+
/** The consumer of `cap-kernel-subagent-runs` (sub-agent runs, spec §7.4): {@link RunWorker}. */
|
|
20
|
+
export declare class SubagentRunsProcessor extends WorkerHost<Worker<RunJobData, RunResult>> {
|
|
21
|
+
private readonly runs;
|
|
22
|
+
constructor(runs: RunWorker);
|
|
23
|
+
process(job: Job<RunJobData>, token?: string): Promise<RunResult>;
|
|
24
|
+
completed(job: Job<RunJobData>, result: RunResult): void;
|
|
25
|
+
failed(job: Job<RunJobData> | undefined, err: Error): void;
|
|
26
|
+
error(err: Error): void;
|
|
27
|
+
}
|
|
28
|
+
/** The consumer of `cap-kernel-usage-report`: {@link UsageReporter}. */
|
|
29
|
+
export declare class UsageReportProcessor extends WorkerHost<Worker<UsageReportJob>> {
|
|
30
|
+
private readonly reporter;
|
|
31
|
+
constructor(reporter: UsageReporter);
|
|
32
|
+
process(job: Job<UsageReportJob>, token?: string): Promise<void>;
|
|
33
|
+
failed(job: Job<UsageReportJob> | undefined, err: Error): void;
|
|
34
|
+
error(err: Error): void;
|
|
35
|
+
}
|
|
36
|
+
/** The consumer of `cap-kernel-titles`: {@link TitleQueue}. */
|
|
37
|
+
export declare class TitleProcessor extends WorkerHost<Worker<{
|
|
38
|
+
conversationId: string;
|
|
39
|
+
attempt: number;
|
|
40
|
+
}>> {
|
|
41
|
+
private readonly titles;
|
|
42
|
+
constructor(titles: TitleQueue);
|
|
43
|
+
process(job: Job<{
|
|
44
|
+
conversationId: string;
|
|
45
|
+
attempt: number;
|
|
46
|
+
}>): Promise<void>;
|
|
47
|
+
error(err: Error): void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The runtime's queue consumers: the run worker on both run queues, `usage.report` deliveries and
|
|
51
|
+
* conversation titles. Imported only by the worker role (`WorkerModule`), so other roles get no
|
|
52
|
+
* processor and no BullMQ worker. Their worker options come from the startup config (concurrency
|
|
53
|
+
* per queue, the run queues' job lock and stalled detection, which the usage and title workers
|
|
54
|
+
* follow). The workers never start by themselves: the worker role (`WorkerRole`) starts them after
|
|
55
|
+
* the extensions loaded, and pauses them on stop.
|
|
56
|
+
*/
|
|
57
|
+
export declare class RuntimeWorkersModule {
|
|
58
|
+
static forRoot(config: KernelConfig): DynamicModule;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -0,0 +1,185 @@
|
|
|
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
|
+
var RuntimeWorkersModule_1;
|
|
11
|
+
import { hostname } from "node:os";
|
|
12
|
+
import { OnWorkerEvent, WorkerHost } from "@nestjs/bullmq";
|
|
13
|
+
import { Inject, Injectable, Module } from "@nestjs/common";
|
|
14
|
+
import { TITLE_QUEUE, TitleQueue, TitlesModule } from "../conversations/titles.js";
|
|
15
|
+
import { configuredProcessor } from "../infra/queue/configured-processor.js";
|
|
16
|
+
import { runJob } from "../infra/queue/run-job.js";
|
|
17
|
+
import { RUN_QUEUE_NAME, SUBAGENT_RUN_QUEUE_NAME } from "./run-jobs.js";
|
|
18
|
+
import { MAX_STALLED_COUNT, RunWorker } from "./run-worker.js";
|
|
19
|
+
import { RuntimeModule } from "./runtime.module.js";
|
|
20
|
+
import { USAGE_REPORT_QUEUE, UsageReporter, UsageReportModule, } from "./usage-report.js";
|
|
21
|
+
/** The consumer of `cap-kernel-runs` (conversation runs): {@link RunWorker}. */
|
|
22
|
+
let RunsProcessor = class RunsProcessor extends WorkerHost {
|
|
23
|
+
runs;
|
|
24
|
+
constructor(runs) {
|
|
25
|
+
super();
|
|
26
|
+
this.runs = runs;
|
|
27
|
+
}
|
|
28
|
+
process(job, token) {
|
|
29
|
+
return runJob(RUN_QUEUE_NAME, job, () => this.runs.process(job, token));
|
|
30
|
+
}
|
|
31
|
+
completed(job, result) {
|
|
32
|
+
this.runs.onCompleted(job, result);
|
|
33
|
+
}
|
|
34
|
+
failed(job, err) {
|
|
35
|
+
this.runs.onFailed(job, err);
|
|
36
|
+
}
|
|
37
|
+
error(err) {
|
|
38
|
+
this.runs.onError(err, RUN_QUEUE_NAME);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
__decorate([
|
|
42
|
+
OnWorkerEvent("completed")
|
|
43
|
+
], RunsProcessor.prototype, "completed", null);
|
|
44
|
+
__decorate([
|
|
45
|
+
OnWorkerEvent("failed")
|
|
46
|
+
], RunsProcessor.prototype, "failed", null);
|
|
47
|
+
__decorate([
|
|
48
|
+
OnWorkerEvent("error")
|
|
49
|
+
], RunsProcessor.prototype, "error", null);
|
|
50
|
+
RunsProcessor = __decorate([
|
|
51
|
+
Injectable(),
|
|
52
|
+
__param(0, Inject(RunWorker))
|
|
53
|
+
], RunsProcessor);
|
|
54
|
+
export { RunsProcessor };
|
|
55
|
+
/** The consumer of `cap-kernel-subagent-runs` (sub-agent runs, spec §7.4): {@link RunWorker}. */
|
|
56
|
+
let SubagentRunsProcessor = class SubagentRunsProcessor extends WorkerHost {
|
|
57
|
+
runs;
|
|
58
|
+
constructor(runs) {
|
|
59
|
+
super();
|
|
60
|
+
this.runs = runs;
|
|
61
|
+
}
|
|
62
|
+
process(job, token) {
|
|
63
|
+
return runJob(SUBAGENT_RUN_QUEUE_NAME, job, () => this.runs.process(job, token));
|
|
64
|
+
}
|
|
65
|
+
completed(job, result) {
|
|
66
|
+
this.runs.onCompleted(job, result);
|
|
67
|
+
}
|
|
68
|
+
failed(job, err) {
|
|
69
|
+
this.runs.onFailed(job, err);
|
|
70
|
+
}
|
|
71
|
+
error(err) {
|
|
72
|
+
this.runs.onError(err, SUBAGENT_RUN_QUEUE_NAME);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
__decorate([
|
|
76
|
+
OnWorkerEvent("completed")
|
|
77
|
+
], SubagentRunsProcessor.prototype, "completed", null);
|
|
78
|
+
__decorate([
|
|
79
|
+
OnWorkerEvent("failed")
|
|
80
|
+
], SubagentRunsProcessor.prototype, "failed", null);
|
|
81
|
+
__decorate([
|
|
82
|
+
OnWorkerEvent("error")
|
|
83
|
+
], SubagentRunsProcessor.prototype, "error", null);
|
|
84
|
+
SubagentRunsProcessor = __decorate([
|
|
85
|
+
Injectable(),
|
|
86
|
+
__param(0, Inject(RunWorker))
|
|
87
|
+
], SubagentRunsProcessor);
|
|
88
|
+
export { SubagentRunsProcessor };
|
|
89
|
+
/** The consumer of `cap-kernel-usage-report`: {@link UsageReporter}. */
|
|
90
|
+
let UsageReportProcessor = class UsageReportProcessor extends WorkerHost {
|
|
91
|
+
reporter;
|
|
92
|
+
constructor(reporter) {
|
|
93
|
+
super();
|
|
94
|
+
this.reporter = reporter;
|
|
95
|
+
}
|
|
96
|
+
process(job, token) {
|
|
97
|
+
return runJob(USAGE_REPORT_QUEUE, job, () => this.reporter.process(job, token));
|
|
98
|
+
}
|
|
99
|
+
failed(job, err) {
|
|
100
|
+
this.reporter.onFailed(job, err);
|
|
101
|
+
}
|
|
102
|
+
error(err) {
|
|
103
|
+
this.reporter.onError(err);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
__decorate([
|
|
107
|
+
OnWorkerEvent("failed")
|
|
108
|
+
], UsageReportProcessor.prototype, "failed", null);
|
|
109
|
+
__decorate([
|
|
110
|
+
OnWorkerEvent("error")
|
|
111
|
+
], UsageReportProcessor.prototype, "error", null);
|
|
112
|
+
UsageReportProcessor = __decorate([
|
|
113
|
+
Injectable(),
|
|
114
|
+
__param(0, Inject(UsageReporter))
|
|
115
|
+
], UsageReportProcessor);
|
|
116
|
+
export { UsageReportProcessor };
|
|
117
|
+
/** The consumer of `cap-kernel-titles`: {@link TitleQueue}. */
|
|
118
|
+
let TitleProcessor = class TitleProcessor extends WorkerHost {
|
|
119
|
+
titles;
|
|
120
|
+
constructor(titles) {
|
|
121
|
+
super();
|
|
122
|
+
this.titles = titles;
|
|
123
|
+
}
|
|
124
|
+
process(job) {
|
|
125
|
+
return runJob(TITLE_QUEUE, job, () => this.titles.process(job));
|
|
126
|
+
}
|
|
127
|
+
error(err) {
|
|
128
|
+
this.titles.onError(err);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
__decorate([
|
|
132
|
+
OnWorkerEvent("error")
|
|
133
|
+
], TitleProcessor.prototype, "error", null);
|
|
134
|
+
TitleProcessor = __decorate([
|
|
135
|
+
Injectable(),
|
|
136
|
+
__param(0, Inject(TitleQueue))
|
|
137
|
+
], TitleProcessor);
|
|
138
|
+
export { TitleProcessor };
|
|
139
|
+
/**
|
|
140
|
+
* The runtime's queue consumers: the run worker on both run queues, `usage.report` deliveries and
|
|
141
|
+
* conversation titles. Imported only by the worker role (`WorkerModule`), so other roles get no
|
|
142
|
+
* processor and no BullMQ worker. Their worker options come from the startup config (concurrency
|
|
143
|
+
* per queue, the run queues' job lock and stalled detection, which the usage and title workers
|
|
144
|
+
* follow). The workers never start by themselves: the worker role (`WorkerRole`) starts them after
|
|
145
|
+
* the extensions loaded, and pauses them on stop.
|
|
146
|
+
*/
|
|
147
|
+
let RuntimeWorkersModule = RuntimeWorkersModule_1 = class RuntimeWorkersModule {
|
|
148
|
+
static forRoot(config) {
|
|
149
|
+
const { workerConcurrency, jobLockMs, stalledIntervalMs } = config.runtime;
|
|
150
|
+
const runs = {
|
|
151
|
+
// the worker name is recorded on the job (BullMQ processedBy): which replica ran it
|
|
152
|
+
name: `${hostname()}-${process.pid}`,
|
|
153
|
+
concurrency: workerConcurrency,
|
|
154
|
+
lockDuration: jobLockMs,
|
|
155
|
+
stalledInterval: stalledIntervalMs,
|
|
156
|
+
maxStalledCount: MAX_STALLED_COUNT,
|
|
157
|
+
};
|
|
158
|
+
return {
|
|
159
|
+
module: RuntimeWorkersModule_1,
|
|
160
|
+
imports: [RuntimeModule, TitlesModule, UsageReportModule],
|
|
161
|
+
providers: [
|
|
162
|
+
configuredProcessor(RunsProcessor, RUN_QUEUE_NAME, runs),
|
|
163
|
+
configuredProcessor(SubagentRunsProcessor, SUBAGENT_RUN_QUEUE_NAME, runs),
|
|
164
|
+
configuredProcessor(UsageReportProcessor, USAGE_REPORT_QUEUE, {
|
|
165
|
+
concurrency: config.hooks.usageReportConcurrency,
|
|
166
|
+
lockDuration: jobLockMs,
|
|
167
|
+
stalledInterval: stalledIntervalMs,
|
|
168
|
+
maxStalledCount: 3,
|
|
169
|
+
}),
|
|
170
|
+
configuredProcessor(TitleProcessor, TITLE_QUEUE, {
|
|
171
|
+
concurrency: 4,
|
|
172
|
+
lockDuration: jobLockMs,
|
|
173
|
+
stalledInterval: stalledIntervalMs,
|
|
174
|
+
maxStalledCount: 1,
|
|
175
|
+
}),
|
|
176
|
+
],
|
|
177
|
+
exports: [RunsProcessor, SubagentRunsProcessor, UsageReportProcessor, TitleProcessor],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
RuntimeWorkersModule = RuntimeWorkersModule_1 = __decorate([
|
|
182
|
+
Module({})
|
|
183
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: a Nest dynamic module
|
|
184
|
+
], RuntimeWorkersModule);
|
|
185
|
+
export { RuntimeWorkersModule };
|
|
@@ -1,71 +1,45 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import { EventLog } from "../conversations/event-log.js";
|
|
3
|
+
import type { ConversationKind } from "../db/kernel-schema.js";
|
|
4
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
5
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
6
|
+
import { KernelEvents } from "../infra/events/kernel-events.js";
|
|
7
|
+
import { ToolPipeline } from "../tools/pipeline.js";
|
|
6
8
|
import type { RunAbortDetail } from "./abort.js";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* Queue of sub-agent (child) runs (sub-agents spec §7.4): a replica still on a version without
|
|
13
|
-
* sub-agents never takes a child job, and child load shows apart from conversations.
|
|
14
|
-
*/
|
|
15
|
-
export declare const SUBAGENT_RUN_QUEUE_NAME = "cap-kernel-subagent-runs";
|
|
16
|
-
/** The run queue of a conversation kind: sub-agent conversations have their own. */
|
|
17
|
-
export declare const runQueueNameFor: (kind: ConversationKind) => string;
|
|
18
|
-
/** 运行任务的数据。 */
|
|
19
|
-
export interface RunJobData {
|
|
20
|
-
runId: string;
|
|
21
|
-
conversationId: string;
|
|
22
|
-
}
|
|
23
|
-
/** 同一触发点(会话 + 最新用户消息 seq)只投递一次。 */
|
|
24
|
-
export declare const runJobId: (conversationId: string, maxUserSeq: number) => string;
|
|
25
|
-
/** 未结束的运行状态(waiting:等人处理审批 / 输入请求,没有任务、不占会话锁与配额)。 */
|
|
26
|
-
export declare const ACTIVE_RUN_STATUSES: readonly ["queued", "running", "waiting"];
|
|
27
|
-
type KernelTrx = Transaction<KernelDatabase>;
|
|
28
|
-
/** What an orphan repair does for a parent's sub-agents (wired by the kernel). */
|
|
29
|
-
export interface OrphanSubagents {
|
|
30
|
-
/** `ToolPipeline.stopOpenAgentCalls`: the run's open `agent` call results, in `t`. */
|
|
31
|
-
stopOpenCalls(t: KernelTrx, runId: string): Promise<{
|
|
32
|
-
fire: () => void;
|
|
33
|
-
}>;
|
|
34
|
-
/** `stopChildren(runId, null)`: after the commit, its active children stop. */
|
|
35
|
-
stopChildren(runId: string): Promise<unknown>;
|
|
36
|
-
}
|
|
37
|
-
/** BullMQ 连接要求 maxRetriesPerRequest 为 null(Worker 的阻塞连接);Queue 复用同样的配置。 */
|
|
38
|
-
export declare function bullConnection(redisUrl: string, log: Pick<Logger, "error">): Redis;
|
|
9
|
+
import { KyselyCheckpointSaver } from "./checkpointer.js";
|
|
10
|
+
import { ConversationLock } from "./conversation-lock.js";
|
|
11
|
+
import { RunFinish } from "./run-finish.js";
|
|
12
|
+
import { type RunJobData, RunJobs } from "./run-jobs.js";
|
|
13
|
+
export { ACTIVE_RUN_STATUSES, RUN_QUEUE_NAME, type RunJobData, runJobId, runQueueNameFor, SUBAGENT_RUN_QUEUE_NAME, } from "./run-jobs.js";
|
|
39
14
|
/**
|
|
40
15
|
* 运行队列(生产方):`ensureRun` 在会话有未消费的用户消息、且没有进行中的运行时插入 `runs` 行并投递任务。
|
|
41
16
|
* 「是否已有运行」以 PG 为准(会话行锁内检查 `runs` 中的 queued / running),并参考会话锁的持有者;
|
|
42
17
|
* 多副本并发调用对同一会话串行化,同一时刻至多一个未结束的运行。
|
|
43
18
|
*/
|
|
44
19
|
export declare class RunQueue {
|
|
45
|
-
private readonly
|
|
20
|
+
private readonly kdb;
|
|
46
21
|
private readonly eventLog;
|
|
47
22
|
private readonly lock;
|
|
48
|
-
private readonly
|
|
49
|
-
private readonly
|
|
23
|
+
private readonly jobs;
|
|
24
|
+
private readonly finisher;
|
|
50
25
|
/** 运行以孤儿结束(标记失败 / 直接中止)后删除它的 checkpoint thread(thread_id = runId)。 */
|
|
51
|
-
private readonly checkpoints
|
|
52
|
-
/**
|
|
53
|
-
private readonly
|
|
54
|
-
private readonly
|
|
55
|
-
private
|
|
56
|
-
|
|
57
|
-
constructor(
|
|
26
|
+
private readonly checkpoints;
|
|
27
|
+
/** The run's open `agent` call results, in the orphan repair's transaction (sub-agents spec §12). */
|
|
28
|
+
private readonly pipeline;
|
|
29
|
+
private readonly events;
|
|
30
|
+
private readonly log;
|
|
31
|
+
readonly txHost: TransactionHost;
|
|
32
|
+
constructor(kdb: KernelDb, eventLog: EventLog, lock: Pick<ConversationLock, "holder">, jobs: RunJobs, finisher: Pick<RunFinish, "finishIn">,
|
|
58
33
|
/** 运行以孤儿结束(标记失败 / 直接中止)后删除它的 checkpoint thread(thread_id = runId)。 */
|
|
59
|
-
checkpoints
|
|
60
|
-
/**
|
|
61
|
-
|
|
34
|
+
checkpoints: Pick<KyselyCheckpointSaver, "deleteThread">,
|
|
35
|
+
/** The run's open `agent` call results, in the orphan repair's transaction (sub-agents spec §12). */
|
|
36
|
+
pipeline: Pick<ToolPipeline, "stopOpenAgentCalls">, events: KernelEvents, log: Pick<Logger, "error" | "warn">, txHost: TransactionHost);
|
|
37
|
+
private get db();
|
|
62
38
|
/**
|
|
63
|
-
* The `beforeTerminal` of an orphan repair: writes the run's open `agent` call results in
|
|
64
|
-
* `fire()` runs their observe hooks after the commit (review m1).
|
|
39
|
+
* The `beforeTerminal` of an orphan repair: writes the run's open `agent` call results in the
|
|
40
|
+
* repair's transaction; `fire()` runs their observe hooks after the commit (review m1).
|
|
65
41
|
*/
|
|
66
42
|
private stopOpenCalls;
|
|
67
|
-
/** The BullMQ queue `name` (default: conversation runs); both share one connection. */
|
|
68
|
-
private getQueue;
|
|
69
43
|
/**
|
|
70
44
|
* 有未消费的用户消息(最新 user_message 的 seq > `consumed_seq`)、会话锁无人持有、
|
|
71
45
|
* 且没有 queued / running / waiting 的运行时:插入 `runs`(queued)并投递任务,返回 runId;否则返回 null。
|
|
@@ -79,10 +53,11 @@ export declare class RunQueue {
|
|
|
79
53
|
* agent 已软删除的会话不起新运行(孤儿清理照常进行)。
|
|
80
54
|
*/
|
|
81
55
|
ensureRun(conversationId: string): Promise<string | null>;
|
|
56
|
+
/** {@link ensureRun}'s transaction: what it decided goes back through `st`. */
|
|
57
|
+
private ensureRunIn;
|
|
82
58
|
/**
|
|
83
59
|
* Enqueues a run job under the caller's job id (resumes, dispatches, repairs), with the same
|
|
84
|
-
* options as {@link ensureRun}
|
|
85
|
-
* to {@link SUBAGENT_RUN_QUEUE_NAME}); pass `kind` when the caller knows it, else it is read.
|
|
60
|
+
* options as {@link ensureRun} (see {@link RunJobs.enqueue}).
|
|
86
61
|
*/
|
|
87
62
|
enqueue(data: RunJobData, jobId: string, kind?: ConversationKind): Promise<void>;
|
|
88
63
|
/**
|
|
@@ -92,6 +67,7 @@ export declare class RunQueue {
|
|
|
92
67
|
* 不是孤儿(有人在执行或即将执行)或运行已结束 → 返回 false,由调用方走广播中止。
|
|
93
68
|
*/
|
|
94
69
|
abortIfOrphaned(conversationId: string, runId: string, byAccountId: string | null, detail?: RunAbortDetail): Promise<boolean>;
|
|
70
|
+
private abortOrphanIn;
|
|
95
71
|
/**
|
|
96
72
|
* Repairs an orphaned run of a conversation nobody else repairs on demand (a sub-agent's: no
|
|
97
73
|
* `ensureRun` ever runs for it; sub-agents spec §7.5), with the same orphan test as
|
|
@@ -105,6 +81,7 @@ export declare class RunQueue {
|
|
|
105
81
|
* Not an orphan, or already finished → null.
|
|
106
82
|
*/
|
|
107
83
|
repairOrphan(conversationId: string, runId: string): Promise<"requeued" | "failed" | null>;
|
|
84
|
+
private repairOrphanIn;
|
|
108
85
|
/** 会话当前未结束的运行(调用方已持有会话行锁)。 */
|
|
109
86
|
private activeRun;
|
|
110
87
|
/**
|
|
@@ -116,6 +93,4 @@ export declare class RunQueue {
|
|
|
116
93
|
/** 删除已结束运行的 checkpoint thread(失败只记日志)。 */
|
|
117
94
|
private dropCheckpoints;
|
|
118
95
|
private deleteQueued;
|
|
119
|
-
close(): Promise<void>;
|
|
120
96
|
}
|
|
121
|
-
export {};
|