@capybara-hq/kernel 0.1.0-rc.1 → 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/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 -194
- 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 +1 -0
- package/dist/config/schema.js +10 -4
- 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 -63
- 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/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 +1 -0
- package/dist/errors.js +1 -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 -121
- 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 +58 -31
- package/dist/extensions/bootstrap.js +175 -121
- 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 +17 -62
- 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 +16 -11
- package/dist/index.js +9 -6
- 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 -244
- 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-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- 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/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 -137
- 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 -226
- 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 -100
- 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 +2 -1
- 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 +9 -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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type {
|
|
2
|
+
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
3
3
|
/** A finished step of a sub-agent run, as the loop reports it. */
|
|
4
4
|
export interface SubagentStep {
|
|
5
5
|
/** The parent conversation, whose topic gets the message. */
|
|
@@ -10,7 +10,7 @@ export interface SubagentStep {
|
|
|
10
10
|
step: number;
|
|
11
11
|
}
|
|
12
12
|
export interface SubagentProgressDeps {
|
|
13
|
-
db:
|
|
13
|
+
db: KernelSchemaDb;
|
|
14
14
|
bus: {
|
|
15
15
|
publish(topic: string, payload: unknown): Promise<void>;
|
|
16
16
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentDefinition } from "../../agents/definition.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
3
3
|
/**
|
|
4
4
|
* The sub-agent roster of an agent version (phase C, spec §4.3, §5.1): the agent types its `agent`
|
|
5
5
|
* tool offers, in the order the description lists them.
|
|
@@ -31,7 +31,7 @@ export declare const templateType: (plugin: string, name: string) => string;
|
|
|
31
31
|
* since the save are skipped; allowlisted org agents stay listed (the dispatch checks their gates
|
|
32
32
|
* and refuses with the §4.5 text), with `agentName` only while the agent is live.
|
|
33
33
|
*/
|
|
34
|
-
export declare function resolveRoster(db:
|
|
34
|
+
export declare function resolveRoster(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">): Promise<RosterEntry[]>;
|
|
35
35
|
/**
|
|
36
36
|
* The roster entry for a requested `subagent_type`: an exact type first; else a bare `<name>`
|
|
37
37
|
* matches the plugin template `<plugin>:<name>` when exactly one has it (as Claude Code accepts
|
|
@@ -48,7 +48,7 @@ export declare const isGeneralAlias: (agent: string) => boolean;
|
|
|
48
48
|
* the type is one the parent's `agent` tool offers (`general-purpose` is not when
|
|
49
49
|
* `subagents.general === false`, which does not block a person's fork invocation).
|
|
50
50
|
*/
|
|
51
|
-
export declare function resolveSkillForkType(db:
|
|
51
|
+
export declare function resolveSkillForkType(db: KernelSchemaDb, orgId: string, parent: Pick<AgentDefinition, "subagents">, agent: string | undefined, plugin: string | undefined): Promise<{
|
|
52
52
|
agentType: string;
|
|
53
53
|
unknown?: string;
|
|
54
54
|
inRoster: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SUBAGENT_ROSTER_MAX } from "../../agents/
|
|
1
|
+
import { SUBAGENT_ROSTER_MAX } from "../../agents/definition.js";
|
|
2
2
|
import { loadTemplates } from "../../agents/templates.js";
|
|
3
3
|
export const ROSTER_DESCRIPTION_MAX = 1024;
|
|
4
4
|
/** The description of `general-purpose` in the roster (spec §4.3, model-visible). */
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { Transaction } from "kysely";
|
|
2
1
|
import type { EventLog } from "../../conversations/event-log.js";
|
|
3
2
|
import type { ConversationEvent, EventPayload } from "../../conversations/events.js";
|
|
4
|
-
import type {
|
|
3
|
+
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
5
4
|
import { ApiError } from "../../errors.js";
|
|
6
5
|
import type { SkillInvoker } from "../../skills/invoke.js";
|
|
7
|
-
import type
|
|
6
|
+
import { type LoopContext, type WaitingFor } from "../loop.js";
|
|
8
7
|
import { type DispatchDeps } from "./dispatch.js";
|
|
9
8
|
/**
|
|
10
9
|
* Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
|
|
@@ -15,7 +14,6 @@ import { type DispatchDeps } from "./dispatch.js";
|
|
|
15
14
|
* sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
|
|
16
15
|
* a fork lead whose report is missing before the next model call.
|
|
17
16
|
*/
|
|
18
|
-
type KernelTrx = Transaction<KernelDatabase>;
|
|
19
17
|
/** The dispatch's parent call id (no `:`; there is no tool call). */
|
|
20
18
|
export declare const skillCallId: (seq: number) => string;
|
|
21
19
|
/** Idempotency key of a fork invocation's report (one per invocation, whatever the run). */
|
|
@@ -109,15 +107,16 @@ export declare const recordedSkillForks: (eventLog: Pick<EventLog, "append" | "f
|
|
|
109
107
|
payload: unknown;
|
|
110
108
|
}[]) => SkillForks;
|
|
111
109
|
/**
|
|
112
|
-
* In the transaction
|
|
110
|
+
* In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
|
|
113
111
|
* (its trigger message, by the run boundary) without a report gets one now: the ended child's
|
|
114
112
|
* result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
|
|
115
113
|
* child still active (the caller stops it after its commit, as for `agent` calls), or
|
|
116
114
|
* {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
|
|
117
115
|
* (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
|
|
118
116
|
*/
|
|
119
|
-
export declare function pairStoppedForks(
|
|
117
|
+
export declare function pairStoppedForks(
|
|
118
|
+
/** The caller's transaction (the context's handle). */
|
|
119
|
+
t: KernelSchemaDb, eventLog: EventLog, runId: string): Promise<{
|
|
120
120
|
callIds: string[];
|
|
121
121
|
toSeq: number | null;
|
|
122
122
|
}>;
|
|
123
|
-
export {};
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { ApiError } from "../../errors.js";
|
|
2
2
|
import { AGENT_STOPPED_WITH_RUN_TEXT } from "../../tools/builtins/agent.js";
|
|
3
|
-
import { subagentsWait } from "
|
|
3
|
+
import { subagentsWait } from "../loop.js";
|
|
4
4
|
import { TERMINAL_STATUSES } from "../run-finish.js";
|
|
5
5
|
import { childResult, dispatchOfCall, finishedEvent } from "./child.js";
|
|
6
6
|
import { dispatchSubagent } from "./dispatch.js";
|
|
7
|
+
/**
|
|
8
|
+
* Forked skills (phase D spec §6): a person's invocation of a `context: fork` skill starts its own
|
|
9
|
+
* run (the run boundary, {@link forkBoundary}), whose `prepare` node dispatches the sub-agent
|
|
10
|
+
* through phase C's `dispatchSubagent` before any model call and waits on it like an `agent` call
|
|
11
|
+
* (`subagents` wait `sa-<runId>-0`). When the child has ended, `prepare` appends the model-visible
|
|
12
|
+
* `skill_fork_result` and the parent's model answers. Every terminal path of the run (and the wait
|
|
13
|
+
* sweep) pairs a fork invocation without a report ({@link pairStoppedForks}), so the log never holds
|
|
14
|
+
* a fork lead whose report is missing before the next model call.
|
|
15
|
+
*/
|
|
7
16
|
/** The dispatch's parent call id (no `:`; there is no tool call). */
|
|
8
17
|
export const skillCallId = (seq) => `skill-${seq}`;
|
|
9
18
|
/** Idempotency key of a fork invocation's report (one per invocation, whatever the run). */
|
|
@@ -146,7 +155,7 @@ export async function advanceSkillForks(d, a) {
|
|
|
146
155
|
}
|
|
147
156
|
const suspend = (d, ctx) => ({
|
|
148
157
|
kind: "suspend",
|
|
149
|
-
waitingFor: subagentsWait(ctx.runId, FORK_STEP, d.config()),
|
|
158
|
+
waitingFor: subagentsWait(ctx.runId, FORK_STEP, d.config.get()),
|
|
150
159
|
});
|
|
151
160
|
/** The live handler for the loop (`LoopDeps.skillForks`). */
|
|
152
161
|
export const liveSkillForks = (d) => ({
|
|
@@ -178,14 +187,16 @@ export const recordedSkillForks = (eventLog, recorded) => ({
|
|
|
178
187
|
},
|
|
179
188
|
});
|
|
180
189
|
/**
|
|
181
|
-
* In the transaction
|
|
190
|
+
* In the transaction of a run's terminal path (or the wait sweep): the run's fork invocation
|
|
182
191
|
* (its trigger message, by the run boundary) without a report gets one now: the ended child's
|
|
183
192
|
* result (and the parent's missing `subagent_finished`), {@link AGENT_STOPPED_WITH_RUN_TEXT} for a
|
|
184
193
|
* child still active (the caller stops it after its commit, as for `agent` calls), or
|
|
185
194
|
* {@link FORK_NOT_STARTED_TEXT} when nothing was dispatched. Returns the call ids written
|
|
186
195
|
* (`skill-<seq>`) and the highest seq; the caller notifies after its commit.
|
|
187
196
|
*/
|
|
188
|
-
export async function pairStoppedForks(
|
|
197
|
+
export async function pairStoppedForks(
|
|
198
|
+
/** The caller's transaction (the context's handle). */
|
|
199
|
+
t, eventLog, runId) {
|
|
189
200
|
const none = { callIds: [], toSeq: null };
|
|
190
201
|
const run = await t
|
|
191
202
|
.selectFrom("runs as r")
|
|
@@ -254,6 +265,6 @@ export async function pairStoppedForks(t, eventLog, runId) {
|
|
|
254
265
|
events.push(finishedEvent(row, ended.finished));
|
|
255
266
|
events.push(reportEvent(runId, seq, forkReportText(skill.name, ended ? ended.content : AGENT_STOPPED_WITH_RUN_TEXT), row));
|
|
256
267
|
}
|
|
257
|
-
const out = await eventLog.
|
|
268
|
+
const out = await eventLog.appendIn(conversationId, events);
|
|
258
269
|
return { callIds: [callId], toSeq: Math.max(...out.map((e) => e.seq)) };
|
|
259
270
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ExtensionContext } from "@capybara-hq/plugin-sdk";
|
|
2
|
+
import { EventLog } from "../../conversations/event-log.js";
|
|
3
|
+
import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
4
|
+
import { KernelDb } from "../../infra/database/kernel-db.js";
|
|
5
|
+
import { TransactionHost } from "../../infra/database/transaction-host.js";
|
|
6
|
+
import type { KernelLogger } from "../../log.js";
|
|
7
|
+
import { ModelPurposesService } from "../../models/purposes.js";
|
|
8
|
+
import { SkillInvoker } from "../../skills/invoke.js";
|
|
9
|
+
import { ProviderRegistry } from "../providers.js";
|
|
10
|
+
import { RunJobs } from "../run-jobs.js";
|
|
11
|
+
import { type ChildWriter, type DispatchArgs, type DispatchCommit, type DispatchOutcome, type DispatchPlan } from "./dispatch.js";
|
|
12
|
+
import { type SubagentStep } from "./progress.js";
|
|
13
|
+
import { type SkillForkDeps, type SkillForks } from "./skill-fork.js";
|
|
14
|
+
/**
|
|
15
|
+
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `agent` tool's dispatch (the
|
|
16
|
+
* tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
|
|
17
|
+
* `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
|
|
18
|
+
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch (a
|
|
19
|
+
* finished child resumes its parent, a stopped parent stops its children) is the waits'
|
|
20
|
+
* (`Waits.childFinished` / `stopChildren`).
|
|
21
|
+
*/
|
|
22
|
+
export declare class SubagentsService {
|
|
23
|
+
private readonly bus;
|
|
24
|
+
private readonly log;
|
|
25
|
+
readonly txHost: TransactionHost;
|
|
26
|
+
/** The dispatch's dependencies (`dispatch.ts`, `skill-fork.ts`). */
|
|
27
|
+
readonly deps: SkillForkDeps;
|
|
28
|
+
/** The live fork handler of the loop (`LoopDeps.skillForks`). */
|
|
29
|
+
readonly skillForks: SkillForks;
|
|
30
|
+
constructor(kdb: KernelDb, eventLog: EventLog, purposes: ModelPurposesService, registry: ProviderRegistry, config: KernelConfigService, jobs: RunJobs, invoker: SkillInvoker, bus: ExtensionContext["bus"], log: KernelLogger, txHost: TransactionHost);
|
|
31
|
+
/** Dispatches the sub-agent of one `agent` call (`dispatchSubagent`). */
|
|
32
|
+
dispatch(a: DispatchArgs): Promise<DispatchOutcome>;
|
|
33
|
+
/** The dispatch's writes in a transaction of their own (see `commitDispatchIn`). */
|
|
34
|
+
commitDispatch(a: DispatchArgs, plan: DispatchPlan, child: ChildWriter): Promise<DispatchCommit | null>;
|
|
35
|
+
/** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
|
|
36
|
+
progress(s: SubagentStep): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
/** Sub-agent dispatch (the tools domain's `agent` tool and the run loop use it). */
|
|
39
|
+
export declare class SubagentsModule {
|
|
40
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
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, Module } from "@nestjs/common";
|
|
11
|
+
import { EventLog, EventLogModule } from "../../conversations/event-log.js";
|
|
12
|
+
import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
13
|
+
import { KernelDb } from "../../infra/database/kernel-db.js";
|
|
14
|
+
import { TransactionHost } from "../../infra/database/transaction-host.js";
|
|
15
|
+
import { Transactional } from "../../infra/database/transactional.decorator.js";
|
|
16
|
+
import { KERNEL_BUS, KERNEL_LOGGER } from "../../infra/tokens.js";
|
|
17
|
+
import { ModelsModule } from "../../models/models.module.js";
|
|
18
|
+
import { ModelPurposesService } from "../../models/purposes.js";
|
|
19
|
+
import { SkillInvoker } from "../../skills/invoke.js";
|
|
20
|
+
import { SkillsModule } from "../../skills/skills.module.js";
|
|
21
|
+
import { ProviderRegistry, ProvidersModule } from "../providers.js";
|
|
22
|
+
import { RunJobs, RunJobsModule } from "../run-jobs.js";
|
|
23
|
+
import { commitDispatchIn, dispatchSubagent, } from "./dispatch.js";
|
|
24
|
+
import { publishSubagentProgress } from "./progress.js";
|
|
25
|
+
import { liveSkillForks } from "./skill-fork.js";
|
|
26
|
+
/**
|
|
27
|
+
* Sub-agents (phase C, spec §7) and forked skills (phase D): the `agent` tool's dispatch (the
|
|
28
|
+
* tool pipeline calls {@link dispatch}), a run's fork invocation ({@link skillForks}, the loop's
|
|
29
|
+
* `prepare`) and a child step's progress on the parent's stream ({@link progress}). Child runs go
|
|
30
|
+
* to the sub-agent run queue through {@link RunJobs}. The child lifecycle after dispatch (a
|
|
31
|
+
* finished child resumes its parent, a stopped parent stops its children) is the waits'
|
|
32
|
+
* (`Waits.childFinished` / `stopChildren`).
|
|
33
|
+
*/
|
|
34
|
+
let SubagentsService = class SubagentsService {
|
|
35
|
+
bus;
|
|
36
|
+
log;
|
|
37
|
+
txHost;
|
|
38
|
+
/** The dispatch's dependencies (`dispatch.ts`, `skill-fork.ts`). */
|
|
39
|
+
deps;
|
|
40
|
+
/** The live fork handler of the loop (`LoopDeps.skillForks`). */
|
|
41
|
+
skillForks;
|
|
42
|
+
constructor(kdb, eventLog, purposes, registry, config, jobs, invoker, bus, log, txHost) {
|
|
43
|
+
this.bus = bus;
|
|
44
|
+
this.log = log;
|
|
45
|
+
this.txHost = txHost;
|
|
46
|
+
this.deps = {
|
|
47
|
+
get db() {
|
|
48
|
+
return kdb.db;
|
|
49
|
+
},
|
|
50
|
+
eventLog,
|
|
51
|
+
purposes,
|
|
52
|
+
registry,
|
|
53
|
+
config,
|
|
54
|
+
enqueue: (data, jobId, kind) => jobs.enqueue(data, jobId, kind),
|
|
55
|
+
log,
|
|
56
|
+
invoker,
|
|
57
|
+
commitDispatch: (a, plan, child) => this.commitDispatch(a, plan, child),
|
|
58
|
+
};
|
|
59
|
+
this.skillForks = liveSkillForks(this.deps);
|
|
60
|
+
}
|
|
61
|
+
/** Dispatches the sub-agent of one `agent` call (`dispatchSubagent`). */
|
|
62
|
+
dispatch(a) {
|
|
63
|
+
return dispatchSubagent(this.deps, a);
|
|
64
|
+
}
|
|
65
|
+
/** The dispatch's writes in a transaction of their own (see `commitDispatchIn`). */
|
|
66
|
+
commitDispatch(a, plan, child) {
|
|
67
|
+
return commitDispatchIn(this.deps, a, plan, child);
|
|
68
|
+
}
|
|
69
|
+
/** A sub-agent's finished step on its parent's stream (sub-agents spec §14.2). Never throws. */
|
|
70
|
+
progress(s) {
|
|
71
|
+
return publishSubagentProgress({ db: this.deps.db, bus: this.bus, log: this.log }, s);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
__decorate([
|
|
75
|
+
Transactional({ propagation: "requires_new" })
|
|
76
|
+
], SubagentsService.prototype, "commitDispatch", null);
|
|
77
|
+
SubagentsService = __decorate([
|
|
78
|
+
Injectable(),
|
|
79
|
+
__param(0, Inject(KernelDb)),
|
|
80
|
+
__param(1, Inject(EventLog)),
|
|
81
|
+
__param(2, Inject(ModelPurposesService)),
|
|
82
|
+
__param(3, Inject(ProviderRegistry)),
|
|
83
|
+
__param(4, Inject(KernelConfigService)),
|
|
84
|
+
__param(5, Inject(RunJobs)),
|
|
85
|
+
__param(6, Inject(SkillInvoker)),
|
|
86
|
+
__param(7, Inject(KERNEL_BUS)),
|
|
87
|
+
__param(8, Inject(KERNEL_LOGGER)),
|
|
88
|
+
__param(9, Inject(TransactionHost))
|
|
89
|
+
], SubagentsService);
|
|
90
|
+
export { SubagentsService };
|
|
91
|
+
/** Sub-agent dispatch (the tools domain's `agent` tool and the run loop use it). */
|
|
92
|
+
let SubagentsModule = class SubagentsModule {
|
|
93
|
+
};
|
|
94
|
+
SubagentsModule = __decorate([
|
|
95
|
+
Module({
|
|
96
|
+
imports: [EventLogModule, ModelsModule, ProvidersModule, RunJobsModule, SkillsModule],
|
|
97
|
+
providers: [SubagentsService],
|
|
98
|
+
exports: [SubagentsService],
|
|
99
|
+
})
|
|
100
|
+
], SubagentsModule);
|
|
101
|
+
export { SubagentsModule };
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
2
|
+
import { Job, type Queue, type Worker } from "bullmq";
|
|
3
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
4
|
+
import { ExtensionHost } from "../extensions/host.js";
|
|
5
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
6
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
7
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
8
|
+
import type { KernelLogger } from "../log.js";
|
|
5
9
|
/** Queue of `usage.report` deliveries (no `:` in the name). */
|
|
6
10
|
export declare const USAGE_REPORT_QUEUE = "cap-kernel-usage-report";
|
|
7
11
|
/** One job per `usage` event (no `:`: conversation ids are UUIDs, seq is a number). */
|
|
@@ -23,10 +27,17 @@ export interface UsageReportJob {
|
|
|
23
27
|
export declare const USAGE_REPORT_ATTEMPTS = 6;
|
|
24
28
|
/** Retry backoff: 2 s, doubling (2, 4, 8, 16, 32 s). */
|
|
25
29
|
export declare const USAGE_REPORT_BACKOFF_MS = 2000;
|
|
26
|
-
/**
|
|
30
|
+
/** The delivery retry policy of {@link UsageReporter}: attempts and the first exponential backoff. */
|
|
31
|
+
export interface UsageReportRetry {
|
|
32
|
+
attempts: number;
|
|
33
|
+
backoffMs: number;
|
|
34
|
+
}
|
|
35
|
+
/** Optional provider: the {@link UsageReportRetry} instead of the defaults above (tests). */
|
|
36
|
+
export declare const USAGE_REPORT_RETRY: unique symbol;
|
|
37
|
+
/** The sweeper's cron job name (no `:`; every minute, once across replicas). */
|
|
27
38
|
export declare const USAGE_SWEEP_JOB = "usage-report-sweep";
|
|
28
|
-
|
|
29
|
-
export
|
|
39
|
+
/** The maintenance scheduler the sweep ran on before it became a `@LockedCron` (retired). */
|
|
40
|
+
export { USAGE_SWEEP_SCHEDULER_ID } from "./job-ids.js";
|
|
30
41
|
/** The sweep leaves the newest events to the fast path (and to transactions still committing). */
|
|
31
42
|
export declare const USAGE_SWEEP_LAG_MS = 30000;
|
|
32
43
|
/**
|
|
@@ -35,45 +46,13 @@ export declare const USAGE_SWEEP_LAG_MS = 30000;
|
|
|
35
46
|
* (`hooks.usageReportKeepHours` ≥ 1 h), so re-enqueued events dedupe on the kept job.
|
|
36
47
|
*/
|
|
37
48
|
export declare const USAGE_SWEEP_OVERLAP_MS: number;
|
|
38
|
-
export interface UsageReporterDeps {
|
|
39
|
-
db: KernelDb;
|
|
40
|
-
redisUrl: string;
|
|
41
|
-
/**
|
|
42
|
-
* The host's registry: handlers of the current local plugin generations (through inflight.run), and
|
|
43
|
-
* `has("usage.report")`, the in-process check that lets `enqueue` skip all I/O without handlers.
|
|
44
|
-
*/
|
|
45
|
-
hooks: Pick<HookRegistry, "handlers" | "has">;
|
|
46
|
-
/**
|
|
47
|
-
* Whether the plugin's current instance is active on this replica (I-2): an active instance that
|
|
48
|
-
* registered no `usage.report` handler is not a subscriber, and its target is dropped. Absent: never.
|
|
49
|
-
*/
|
|
50
|
-
isActive?(plugin: string): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Of these plugins, the ones no replica can serve right now (I-2): replicas report them (live
|
|
53
|
-
* `extension_replica_status` rows) and none has them loaded. Their targets are dropped at once instead
|
|
54
|
-
* of failing every attempt. See {@link queryUnservable}. Absent: none.
|
|
55
|
-
*/
|
|
56
|
-
unservable?(plugins: readonly string[]): Promise<Set<string>>;
|
|
57
|
-
/**
|
|
58
|
-
* Plugins that subscribe to `usage.report`, from deployment state (approved manifests in PG), not from this replica's loaded handlers. With `orgId`: only those the
|
|
59
|
-
* organization enabled. See {@link queryUsageSubscribers}.
|
|
60
|
-
*/
|
|
61
|
-
subscribers(orgId?: string): Promise<Set<string>>;
|
|
62
|
-
config: () => KernelConfig;
|
|
63
|
-
log: Logger;
|
|
64
|
-
/** Tests: retry policy (defaults {@link USAGE_REPORT_ATTEMPTS} / {@link USAGE_REPORT_BACKOFF_MS}). */
|
|
65
|
-
retry?: {
|
|
66
|
-
attempts: number;
|
|
67
|
-
backoffMs: number;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
49
|
/**
|
|
71
50
|
* Plugins that subscribe to `usage.report` according to deployment state: an approved permission
|
|
72
51
|
* snapshot that declares the `usage.report` hook, for a plugin the deployment still knows: an enabled
|
|
73
52
|
* install, or a config-declared plugin with a replica status row that is not `unloaded`. With `orgId`, only plugins
|
|
74
53
|
* the organization enabled (org config rows and required bootstrap plugins).
|
|
75
54
|
*/
|
|
76
|
-
export declare function queryUsageSubscribers(db:
|
|
55
|
+
export declare function queryUsageSubscribers(db: KernelSchemaDb, orgId?: string): Promise<Set<string>>;
|
|
77
56
|
/**
|
|
78
57
|
* Of `plugins`, those that are **definitely** unservable right now (I-2, N-3): live replicas report
|
|
79
58
|
* them (a `extension_replica_status` row with a heartbeat newer than `staleSeconds`), no live row is
|
|
@@ -82,7 +61,7 @@ export declare function queryUsageSubscribers(db: KernelDb, orgId?: string): Pro
|
|
|
82
61
|
* reconcile). A plugin with no live row at all is unknown too (slow to load, or a host without a
|
|
83
62
|
* status store). Unknown plugins are never listed.
|
|
84
63
|
*/
|
|
85
|
-
export declare function queryUnservable(db:
|
|
64
|
+
export declare function queryUnservable(db: KernelSchemaDb, plugins: readonly string[], staleSeconds: number): Promise<Set<string>>;
|
|
86
65
|
/**
|
|
87
66
|
* The next `pending` set (m-2 fence): plugins that failed now, narrowed to what the stored job data
|
|
88
67
|
* still lists. A plugin another (stalled-over) execution already delivered never comes back.
|
|
@@ -118,14 +97,50 @@ export declare function narrowPending(stored: readonly string[] | undefined, fai
|
|
|
118
97
|
* Single-step eval replays and judge requests log no usage: not reported (M7).
|
|
119
98
|
*/
|
|
120
99
|
export declare class UsageReporter {
|
|
121
|
-
private readonly
|
|
122
|
-
private queue;
|
|
123
|
-
|
|
100
|
+
private readonly kdb;
|
|
101
|
+
private readonly queue;
|
|
102
|
+
/**
|
|
103
|
+
* The host's hook registry: handlers of the current local plugin generations (through
|
|
104
|
+
* inflight.run), and `has("usage.report")`, the in-process check that lets `enqueue` skip all
|
|
105
|
+
* I/O without handlers; and whether a plugin's current instance is active here.
|
|
106
|
+
*/
|
|
107
|
+
private readonly host;
|
|
108
|
+
private readonly config;
|
|
109
|
+
/** The warning throttle's markers (`capk:usage-warn:<plugin>:<kind>`, SET NX PX). */
|
|
110
|
+
private readonly locks;
|
|
111
|
+
private readonly log;
|
|
112
|
+
private readonly retry;
|
|
124
113
|
private worker;
|
|
125
|
-
private workerConn;
|
|
126
114
|
private closed;
|
|
127
115
|
private readonly stopping;
|
|
128
|
-
constructor(
|
|
116
|
+
constructor(kdb: KernelDb, queue: Queue<UsageReportJob>,
|
|
117
|
+
/**
|
|
118
|
+
* The host's hook registry: handlers of the current local plugin generations (through
|
|
119
|
+
* inflight.run), and `has("usage.report")`, the in-process check that lets `enqueue` skip all
|
|
120
|
+
* I/O without handlers; and whether a plugin's current instance is active here.
|
|
121
|
+
*/
|
|
122
|
+
host: Pick<ExtensionHost, "hooks" | "current">, config: Pick<KernelConfigService, "get">,
|
|
123
|
+
/** The warning throttle's markers (`capk:usage-warn:<plugin>:<kind>`, SET NX PX). */
|
|
124
|
+
locks: Pick<LockService, "lease">, log: Logger, retry?: UsageReportRetry);
|
|
125
|
+
private get db();
|
|
126
|
+
private get hooks();
|
|
127
|
+
/**
|
|
128
|
+
* Whether the plugin's current instance is active on this replica (I-2): an active instance that
|
|
129
|
+
* registered no `usage.report` handler is not a subscriber, and its target is dropped.
|
|
130
|
+
*/
|
|
131
|
+
isActive(plugin: string): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Of these plugins, the ones no replica can serve right now (I-2): replicas report them (live
|
|
134
|
+
* `extension_replica_status` rows) and none has them loaded. Their targets are dropped at once
|
|
135
|
+
* instead of failing every attempt. See {@link queryUnservable}.
|
|
136
|
+
*/
|
|
137
|
+
unservable(plugins: readonly string[]): Promise<Set<string>>;
|
|
138
|
+
/**
|
|
139
|
+
* Plugins that subscribe to `usage.report`, from deployment state (approved manifests in PG),
|
|
140
|
+
* not from this replica's loaded handlers. With `orgId`: only those the organization enabled.
|
|
141
|
+
* See {@link queryUsageSubscribers}.
|
|
142
|
+
*/
|
|
143
|
+
subscribers(orgId?: string): Promise<Set<string>>;
|
|
129
144
|
private jobOpts;
|
|
130
145
|
/**
|
|
131
146
|
* Enqueues the delivery of one `usage` event. Returns without a job when no plugin subscribes.
|
|
@@ -140,11 +155,20 @@ export declare class UsageReporter {
|
|
|
140
155
|
sweep(opts?: {
|
|
141
156
|
now?: number;
|
|
142
157
|
}): Promise<number>;
|
|
143
|
-
/**
|
|
144
|
-
|
|
145
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Starts consuming (worker role only): `worker` is the `@Processor` worker of
|
|
160
|
+
* {@link USAGE_REPORT_QUEUE} (built with the run queue's job lock and stalled detection).
|
|
161
|
+
*/
|
|
162
|
+
startWorker(worker: Worker<UsageReportJob>): void;
|
|
163
|
+
/** The worker's `error` event. */
|
|
164
|
+
onError(err: Error): void;
|
|
165
|
+
/** A job failed (the worker's `failed` event): logs retries and the final failure. */
|
|
166
|
+
onFailed(j: Job<UsageReportJob> | undefined, err: Error): void;
|
|
167
|
+
/**
|
|
168
|
+
* Stops: no more enqueues, in-flight calls are aborted (their jobs requeued) and the worker
|
|
169
|
+
* closes. The queue itself closes with the application.
|
|
170
|
+
*/
|
|
146
171
|
stop(): Promise<void>;
|
|
147
|
-
private getQueue;
|
|
148
172
|
/** The payload of one usage event, read from the log; null when the event no longer exists. */
|
|
149
173
|
private payloadOf;
|
|
150
174
|
/**
|
|
@@ -153,11 +177,29 @@ export declare class UsageReporter {
|
|
|
153
177
|
* dropped can stay, so a plugin another execution delivered never comes back.
|
|
154
178
|
*/
|
|
155
179
|
private writePending;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
180
|
+
/** One delivery job (the `@Processor` of {@link USAGE_REPORT_QUEUE} calls it). */
|
|
181
|
+
process(j: Job<UsageReportJob>, token: string | undefined): Promise<void>;
|
|
182
|
+
/** {@link unservable}; a lookup failure counts as "unknown" (keep retrying). */
|
|
183
|
+
private unservableOrNone;
|
|
159
184
|
/** Logs a warning at most once per plugin and kind per minute (Redis key with a TTL). */
|
|
160
185
|
private warnOnce;
|
|
161
186
|
/** One handler call with its own signal (timeout or replica stop aborts it); rejects on either. */
|
|
162
187
|
private call;
|
|
163
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* The usage sweeper (R13), every minute, once across replicas: {@link UsageReporter.sweep}.
|
|
191
|
+
* Replaces the maintenance scheduler `usage-report-sweep-every` (retired at worker start).
|
|
192
|
+
*/
|
|
193
|
+
export declare class UsageSweepJob {
|
|
194
|
+
private readonly reporter;
|
|
195
|
+
readonly lockService: LockService;
|
|
196
|
+
readonly log: KernelLogger;
|
|
197
|
+
constructor(reporter: Pick<UsageReporter, "sweep">, lockService: LockService, log: KernelLogger);
|
|
198
|
+
run(): Promise<void>;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* `usage.report` delivery: the producer on every role; the consumer and the sweep ({@link UsageSweepJob})
|
|
202
|
+
* on the worker role (`WorkerModule`).
|
|
203
|
+
*/
|
|
204
|
+
export declare class UsageReportModule {
|
|
205
|
+
}
|