@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.3
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 +187 -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 +280 -335
- package/dist/agents/definition.d.ts +39 -8
- package/dist/agents/definition.js +201 -17
- 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 +39 -8
- 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 +326 -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/claude/agents.js +13 -10
- 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 +31 -14
- 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 +10 -4
- package/dist/channels/cards.js +16 -8
- 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 +12 -6
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +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 +39 -18
- package/dist/conversations/event-log.js +93 -27
- package/dist/conversations/events.d.ts +23 -3
- package/dist/conversations/events.js +26 -14
- 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 +4 -4
- 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/recorded-tools.d.ts +27 -1
- package/dist/evals/recorded-tools.js +85 -10
- package/dist/evals/run-replay.d.ts +61 -8
- package/dist/evals/run-replay.js +159 -85
- 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.d.ts +2 -2
- 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 +86 -58
- 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 +456 -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 +16 -10
- package/dist/orgs/settings.service.js +77 -48
- 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/context/build.d.ts +6 -6
- package/dist/runtime/context/build.js +18 -8
- package/dist/runtime/context/claude-tools.d.ts +2 -1
- package/dist/runtime/context/claude-tools.js +9 -10
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +37 -30
- 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 +8 -1
- 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 +25 -58
- 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 +27 -18
- 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 +122 -76
- package/dist/runtime/run-worker.js +343 -229
- 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 +5 -10
- package/dist/runtime/subagents/definition.js +13 -14
- package/dist/runtime/subagents/dispatch.d.ts +89 -8
- package/dist/runtime/subagents/dispatch.js +137 -142
- 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 +3 -2
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +4 -4
- package/dist/runtime/subagents/roster.js +2 -2
- package/dist/runtime/subagents/skill-fork.d.ts +8 -9
- package/dist/runtime/subagents/skill-fork.js +17 -6
- 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 +127 -59
- package/dist/runtime/waits.js +433 -210
- 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 +37 -24
- package/dist/skills/catalog.js +100 -57
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +30 -20
- package/dist/skills/changes.service.js +425 -367
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +17 -16
- package/dist/skills/invoke.js +53 -21
- 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 +33 -25
- package/dist/tools/approvals.service.js +343 -259
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +73 -0
- package/dist/tools/builtin-names.js +116 -0
- package/dist/tools/builtins/agent.d.ts +7 -7
- package/dist/tools/builtins/agent.js +7 -11
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +21 -0
- package/dist/tools/builtins/builtin-tools.js +80 -0
- package/dist/tools/builtins/read-tool-output.d.ts +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +33 -30
- package/dist/tools/builtins/sandbox/common.d.ts +5 -4
- package/dist/tools/builtins/sandbox/common.js +2 -2
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +13 -13
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +42 -31
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +6 -6
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +149 -32
- package/dist/tools/builtins/sandbox/index.d.ts +1 -1
- package/dist/tools/builtins/sandbox/index.js +1 -1
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +22 -15
- package/dist/tools/builtins/sandbox/write.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +38 -34
- package/dist/tools/builtins/skill-load.d.ts +6 -6
- package/dist/tools/builtins/skill-load.js +33 -17
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +10 -10
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- 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 +438 -348
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- package/dist/tools/info.d.ts +32 -13
- package/dist/tools/info.js +88 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +11 -3
- package/dist/tools/oauth/tokens.js +15 -14
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +72 -50
- package/dist/tools/pipeline.js +239 -100
- package/dist/tools/policy.d.ts +3 -16
- package/dist/tools/policy.js +13 -19
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +43 -38
- package/dist/tools/registry.js +100 -72
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +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 +10 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- 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/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
- /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,7 +1,5 @@
|
|
|
1
1
|
import { usageTokens } from "../../evals/budget.js";
|
|
2
2
|
import { agentResultText } from "../../tools/builtins/agent.js";
|
|
3
|
-
import { TERMINAL_STATUSES } from "../run-finish.js";
|
|
4
|
-
import { ACTIVE_RUN_STATUSES } from "../run-queue.js";
|
|
5
3
|
/** Idempotency key of the parent's `subagent_finished` event. */
|
|
6
4
|
export const finishedIdemKey = (childRunId) => `subagent_finished:${childRunId}`;
|
|
7
5
|
const DISPATCH_COLUMNS = [
|
|
@@ -146,80 +144,3 @@ export const finishedEvent = (row, finished) => ({
|
|
|
146
144
|
idemKey: finishedIdemKey(row.childRunId),
|
|
147
145
|
payload: finished,
|
|
148
146
|
});
|
|
149
|
-
/**
|
|
150
|
-
* After a child run's terminal state committed (spec §7.3): appends `subagent_finished` to the
|
|
151
|
-
* parent log (idempotent; allowed while the parent waits, it is not model-visible) and tries
|
|
152
|
-
* `Waits.resume(parentRunId, childRunId)`. Every finishing child tries; the conditional resume lets
|
|
153
|
-
* exactly one succeed, the last to see all its siblings terminal. A run that is not a dispatched
|
|
154
|
-
* child, or not terminal yet, is left alone. A crash in between is repaired by the wait sweep and
|
|
155
|
-
* by the parent's tools node, which writes a missing `subagent_finished` itself.
|
|
156
|
-
*/
|
|
157
|
-
export async function onChildFinished(d, childRunId) {
|
|
158
|
-
const row = await dispatchOfChildRun(d.db, childRunId);
|
|
159
|
-
if (!row)
|
|
160
|
-
return;
|
|
161
|
-
const run = await d.db
|
|
162
|
-
.selectFrom("runs")
|
|
163
|
-
.select("status")
|
|
164
|
-
.where("id", "=", childRunId)
|
|
165
|
-
.executeTakeFirst();
|
|
166
|
-
if (!run || !TERMINAL_STATUSES.has(run.status))
|
|
167
|
-
return;
|
|
168
|
-
const r = await childResult(d.eventLog, row);
|
|
169
|
-
if (!r) {
|
|
170
|
-
d.log.warn("sub-agent run is terminal without a terminal event", { childRunId });
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
await d.eventLog.append(row.parentConversationId, [finishedEvent(row, r.finished)]);
|
|
174
|
-
await d.waits.resume(row.parentRunId, childRunId);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Stops the active children of a parent run (sub-agents spec §12), or only those dispatched in
|
|
178
|
-
* `opts.step`: a `waiting` child through its own `abortWaiting`, a `queued` / `running` one that
|
|
179
|
-
* no worker holds directly (`abortIfOrphaned`), any other through `RunAbort.request` (the
|
|
180
|
-
* cross-replica broadcast plus the marker key, so a child that starts later still sees it), after
|
|
181
|
-
* which a child found `waiting` is stopped through `abortWaiting` too. A child stopped here is
|
|
182
|
-
* reported to the parent at once (by `abortWaiting` itself, or {@link onChildFinished} after
|
|
183
|
-
* `abortIfOrphaned`); one stopped by its worker is reported by that worker. Returns the number of
|
|
184
|
-
* children asked to stop.
|
|
185
|
-
*
|
|
186
|
-
* `byAccountId` is the person whose action stops them, or null when the kernel stops them on the
|
|
187
|
-
* parent's behalf; a child stopped with null reports the §4.4 "parent's stop" text.
|
|
188
|
-
*/
|
|
189
|
-
export async function stopChildren(d, parentRunId, byAccountId, opts = {}) {
|
|
190
|
-
let q = d.db
|
|
191
|
-
.selectFrom("subagent_dispatches as sd")
|
|
192
|
-
.innerJoin("runs as cr", "cr.id", "sd.child_run_id")
|
|
193
|
-
.select(["sd.child_conversation_id", "sd.child_run_id", "cr.status"])
|
|
194
|
-
.where("sd.parent_run_id", "=", parentRunId)
|
|
195
|
-
.where("cr.status", "in", ACTIVE_RUN_STATUSES);
|
|
196
|
-
if (opts.step !== undefined)
|
|
197
|
-
q = q.where("sd.step", "=", opts.step);
|
|
198
|
-
const children = await q.execute();
|
|
199
|
-
for (const c of children) {
|
|
200
|
-
const conv = c.child_conversation_id;
|
|
201
|
-
const runId = c.child_run_id;
|
|
202
|
-
// abortWaiting reports the stopped child to the parent itself (Waits.subagents.finished)
|
|
203
|
-
if (c.status === "waiting" &&
|
|
204
|
-
(await d.waits.abortWaiting(conv, runId, byAccountId, opts.detail))) {
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
if (await d.runQueue.abortIfOrphaned(conv, runId, byAccountId, opts.detail)) {
|
|
208
|
-
await onChildFinished(d, runId);
|
|
209
|
-
continue;
|
|
210
|
-
}
|
|
211
|
-
await d.abort.request(runId, byAccountId, opts.detail);
|
|
212
|
-
// the suspend handshake (see Waits.suspend): a child that became `waiting` after the read
|
|
213
|
-
// above may have checked the marker before it was set, so check `waiting` again after setting
|
|
214
|
-
// it (review M1)
|
|
215
|
-
const now = await d.db
|
|
216
|
-
.selectFrom("runs")
|
|
217
|
-
.select("status")
|
|
218
|
-
.where("id", "=", runId)
|
|
219
|
-
.executeTakeFirst();
|
|
220
|
-
if (now?.status === "waiting") {
|
|
221
|
-
await d.waits.abortWaiting(conv, runId, byAccountId, opts.detail);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return children.length;
|
|
225
|
-
}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { type AgentTemplateTier } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import type { AgentDefinition, AgentToolRef, ModelRef } from "../../agents/definition.js";
|
|
3
|
-
import type { KernelConfig } from "../../config/schema.js";
|
|
4
3
|
import type { EventPayload } from "../../conversations/events.js";
|
|
5
|
-
import type {
|
|
4
|
+
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
5
|
+
import type { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
6
6
|
import type { ModelPurposesService } from "../../models/purposes.js";
|
|
7
7
|
import type { ProviderRegistry } from "../providers.js";
|
|
8
8
|
import type { RosterEntry } from "./roster.js";
|
|
9
|
-
|
|
10
|
-
* Tools a sub-agent never gets (spec §5.3, §5.5): `agent` (depth 1), `ask_user` (the person does not
|
|
11
|
-
* see the child), `sandbox_deliver` (delivering files is the parent's job) and `skill_write`.
|
|
12
|
-
*/
|
|
13
|
-
export declare const CHILD_REMOVED_TOOLS: readonly ["agent", "ask_user", "sandbox_deliver", "skill_write"];
|
|
9
|
+
export { CHILD_REMOVED_TOOLS } from "../../tools/builtin-names.js";
|
|
14
10
|
/**
|
|
15
11
|
* The roster entry's template is gone (an inline template edited away, a plugin template
|
|
16
12
|
* uninstalled) between resolving the roster and reading it. The dispatch refuses the call as an
|
|
@@ -29,11 +25,11 @@ export interface EffectiveDefinition {
|
|
|
29
25
|
warnings: string[];
|
|
30
26
|
}
|
|
31
27
|
export interface EffectiveDefinitionDeps {
|
|
32
|
-
db:
|
|
28
|
+
db: KernelSchemaDb;
|
|
33
29
|
purposes: Pick<ModelPurposesService, "resolve">;
|
|
34
30
|
/** Reads the resolved model's parameter declarations (a template `effort`). */
|
|
35
31
|
registry: Pick<ProviderRegistry, "resolve">;
|
|
36
|
-
config:
|
|
32
|
+
config: Pick<KernelConfigService, "get">;
|
|
37
33
|
}
|
|
38
34
|
type Policy = "ask" | "deny";
|
|
39
35
|
/**
|
|
@@ -100,4 +96,3 @@ export declare function intersectTools(frozen: readonly AgentToolRef[], current:
|
|
|
100
96
|
export declare function narrowFollowUp(frozen: Pick<AgentDefinition, "tools" | "skills">, current: Pick<AgentDefinition, "tools" | "skills">): FollowUpNarrowing;
|
|
101
97
|
/** The definition a child run uses: the frozen one with its trigger's follow-up narrowing. */
|
|
102
98
|
export declare function childRunDefinition(frozen: AgentDefinition, narrowed: FollowUpNarrowing | undefined): AgentDefinition;
|
|
103
|
-
export {};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { SKILL_ENTRY_FILE, sanitizeParams, } from "@capybara-hq/plugin-sdk";
|
|
1
|
+
import { connectorToolKey, extensionToolKey, parseToolKey, SKILL_ENTRY_FILE, sanitizeParams, } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { loadTemplates } from "../../agents/templates.js";
|
|
3
3
|
import { ApiError } from "../../errors.js";
|
|
4
4
|
import { PINNED_SKILLS_LIMITS } from "../../skills/catalog.js";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
* Tools a sub-agent never gets (spec §5.3, §5.5): `agent` (depth 1), `ask_user` (the person does not
|
|
8
|
-
* see the child), `sandbox_deliver` (delivering files is the parent's job) and `skill_write`.
|
|
9
|
-
*/
|
|
10
|
-
export const CHILD_REMOVED_TOOLS = ["agent", "ask_user", "sandbox_deliver", "skill_write"];
|
|
5
|
+
import { CHILD_REMOVED_TOOLS } from "../../tools/builtin-names.js";
|
|
6
|
+
export { CHILD_REMOVED_TOOLS } from "../../tools/builtin-names.js";
|
|
11
7
|
/**
|
|
12
8
|
* The roster entry's template is gone (an inline template edited away, a plugin template
|
|
13
9
|
* uninstalled) between resolving the roster and reading it. The dispatch refuses the call as an
|
|
@@ -72,7 +68,7 @@ async function loadConnectors(db, orgId, refs) {
|
|
|
72
68
|
/**
|
|
73
69
|
* Narrows tool refs by resolved key (spec §5.3): keeps a key when `allow` (if given) lists it and
|
|
74
70
|
* neither `deny` nor {@link CHILD_REMOVED_TOOLS} does. A connector ref with `tools: "all"` stays
|
|
75
|
-
* live only when nothing can narrow it (no allowlist and no deny key under
|
|
71
|
+
* live only when nothing can narrow it (no allowlist and no deny key under `mcp__<slug>__`), so a tool
|
|
76
72
|
* the connector gains later never slips past the template; otherwise it becomes the kept names, or
|
|
77
73
|
* is dropped. A connector that no longer exists keeps its ref only without an allowlist.
|
|
78
74
|
*/
|
|
@@ -86,7 +82,7 @@ function narrowTools(refs, connectors, allow, deny) {
|
|
|
86
82
|
out.push(ref);
|
|
87
83
|
}
|
|
88
84
|
else if (ref.kind === "plugin") {
|
|
89
|
-
if (keep(
|
|
85
|
+
if (keep(extensionToolKey(ref.plugin, ref.name)))
|
|
90
86
|
out.push(ref);
|
|
91
87
|
}
|
|
92
88
|
else {
|
|
@@ -96,13 +92,16 @@ function narrowTools(refs, connectors, allow, deny) {
|
|
|
96
92
|
out.push(ref);
|
|
97
93
|
continue;
|
|
98
94
|
}
|
|
99
|
-
const
|
|
100
|
-
|
|
95
|
+
const ownsKey = (k) => {
|
|
96
|
+
const parsed = parseToolKey(k);
|
|
97
|
+
return parsed?.kind === "connector" && parsed.slug === c.slug;
|
|
98
|
+
};
|
|
99
|
+
if (ref.tools === "all" && allow === null && ![...deny].some(ownsKey)) {
|
|
101
100
|
out.push(ref);
|
|
102
101
|
continue;
|
|
103
102
|
}
|
|
104
103
|
const names = ref.tools === "all" ? c.tools : ref.tools;
|
|
105
|
-
const kept = names.filter((name) => keep(
|
|
104
|
+
const kept = names.filter((name) => keep(connectorToolKey(c.slug, name)));
|
|
106
105
|
if (kept.length > 0)
|
|
107
106
|
out.push({ ...ref, tools: kept });
|
|
108
107
|
}
|
|
@@ -246,7 +245,7 @@ function orgAgentDefinition(d, a) {
|
|
|
246
245
|
return {
|
|
247
246
|
definition,
|
|
248
247
|
template: { source: "agent", id: agentId, version: a.orgAgent.version },
|
|
249
|
-
maxSteps: d.config().runtime.maxSteps,
|
|
248
|
+
maxSteps: d.config.get().runtime.maxSteps,
|
|
250
249
|
warnings: [],
|
|
251
250
|
model: own.model,
|
|
252
251
|
tierFallback: false,
|
|
@@ -268,7 +267,7 @@ function orgAgentDefinition(d, a) {
|
|
|
268
267
|
export async function effectiveDefinition(d, a) {
|
|
269
268
|
if (a.entry.source === "agent")
|
|
270
269
|
return orgAgentDefinition(d, a);
|
|
271
|
-
const runtimeMax = d.config().runtime.maxSteps;
|
|
270
|
+
const runtimeMax = d.config.get().runtime.maxSteps;
|
|
272
271
|
const { parent, entry } = a;
|
|
273
272
|
let template = null;
|
|
274
273
|
let ref = { source: entry.source };
|
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
2
|
import { type AgentDefinition } from "../../agents/definition.js";
|
|
3
|
-
import type { KernelConfig } from "../../config/schema.js";
|
|
4
3
|
import type { EventLog } from "../../conversations/event-log.js";
|
|
5
|
-
import type { EventPayload } from "../../conversations/events.js";
|
|
6
|
-
import type { ConversationKind,
|
|
4
|
+
import type { ConversationEvent, EventPayload } from "../../conversations/events.js";
|
|
5
|
+
import type { ConversationKind, KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
6
|
+
import type { KernelConfigService } from "../../infra/config/kernel-config.service.js";
|
|
7
7
|
import type { ModelPurposesService } from "../../models/purposes.js";
|
|
8
8
|
import { type AgentToolInputT } from "../../tools/builtins/agent.js";
|
|
9
9
|
import type { ToolStepContext } from "../../tools/pipeline.js";
|
|
10
10
|
import type { ProviderRegistry } from "../providers.js";
|
|
11
|
-
import { type RunJobData } from "../run-
|
|
11
|
+
import { type RunJobData } from "../run-jobs.js";
|
|
12
|
+
import { type CheckedOrgAgent } from "./definition.js";
|
|
13
|
+
import { type RosterEntry } from "./roster.js";
|
|
12
14
|
export interface DispatchDeps {
|
|
13
|
-
|
|
15
|
+
/** The context's handle: inside {@link commitDispatchIn} it is the dispatch's transaction. */
|
|
16
|
+
db: KernelSchemaDb;
|
|
14
17
|
eventLog: EventLog;
|
|
15
18
|
purposes: Pick<ModelPurposesService, "resolve">;
|
|
16
19
|
registry: Pick<ProviderRegistry, "resolve">;
|
|
17
|
-
config:
|
|
20
|
+
config: Pick<KernelConfigService, "get">;
|
|
18
21
|
/** Enqueues a child run (on the sub-agent run queue: `kind` is always `subagent`). */
|
|
19
22
|
enqueue: (data: RunJobData, jobId: string, kind: ConversationKind) => Promise<void>;
|
|
20
23
|
log: Pick<Logger, "error" | "warn">;
|
|
24
|
+
/**
|
|
25
|
+
* Runs {@link commitDispatchIn} in a transaction of its own (`SubagentsService.commitDispatch`,
|
|
26
|
+
* a `@Transactional` method).
|
|
27
|
+
*/
|
|
28
|
+
commitDispatch: (a: DispatchArgs, plan: DispatchPlan, child: ChildWriter) => Promise<DispatchCommit | null>;
|
|
21
29
|
}
|
|
30
|
+
/** One dispatch's call. */
|
|
31
|
+
export interface DispatchArgs {
|
|
32
|
+
ctx: ToolStepContext;
|
|
33
|
+
callId: string;
|
|
34
|
+
input: AgentToolInputT;
|
|
35
|
+
forSkill?: SkillForkDispatch;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Writes the child's events in the dispatch's transaction (`db` is its handle); `checked` is the
|
|
39
|
+
* org agent version the in-lock gates passed. Null refuses.
|
|
40
|
+
*/
|
|
41
|
+
export type ChildWriter = (db: KernelSchemaDb, checked?: CheckedOrgAgent) => Promise<ConversationEvent | null>;
|
|
22
42
|
export type DispatchOutcome = {
|
|
23
43
|
kind: "dispatched";
|
|
24
44
|
childRunId: string;
|
|
@@ -28,7 +48,7 @@ export type DispatchOutcome = {
|
|
|
28
48
|
};
|
|
29
49
|
/**
|
|
30
50
|
* A dispatch for a person's fork invocation (phase D spec §6.2, `advanceSkillForks`), not for a
|
|
31
|
-
* model's `
|
|
51
|
+
* model's `Agent` call: `general-purpose` is always available (the `Agent` tool and
|
|
32
52
|
* `subagents.general` do not gate it), an unknown type falls back to it with a warning, and the
|
|
33
53
|
* child records the invoked skill.
|
|
34
54
|
*/
|
|
@@ -44,8 +64,26 @@ export interface SkillForkDispatch {
|
|
|
44
64
|
}
|
|
45
65
|
/** Idempotency key of the parent's `subagent_dispatched` event. */
|
|
46
66
|
export declare const dispatchedIdemKey: (runId: string, callId: string) => string;
|
|
67
|
+
/** What one dispatch writes, decided before its transaction. */
|
|
68
|
+
export interface DispatchPlan {
|
|
69
|
+
childConversationId: string;
|
|
70
|
+
agentType: string;
|
|
71
|
+
source: RosterEntry["source"];
|
|
72
|
+
/**
|
|
73
|
+
* The child conversation's agent and its run's `agent_version`: the parent's for
|
|
74
|
+
* general-purpose and templates, the dispatched agent's frozen version for an org agent (§5.5).
|
|
75
|
+
*/
|
|
76
|
+
agentId: string;
|
|
77
|
+
agentVersion: number;
|
|
78
|
+
resumed: boolean;
|
|
79
|
+
model: {
|
|
80
|
+
provider: string;
|
|
81
|
+
model: string;
|
|
82
|
+
};
|
|
83
|
+
tierFallback: boolean;
|
|
84
|
+
}
|
|
47
85
|
/**
|
|
48
|
-
* Dispatches the sub-agent of one `
|
|
86
|
+
* Dispatches the sub-agent of one `Agent` call (spec §7.1), after the pipeline's validation,
|
|
49
87
|
* policy, approval and `tool.preExecute` stages. A new sub-agent: resolves its type and effective
|
|
50
88
|
* definition, then in one transaction (holding the parent run's row lock, so the dispatches of one
|
|
51
89
|
* run serialize) inserts the child conversation, appends `subagent_started` and the task message,
|
|
@@ -67,3 +105,46 @@ export declare function dispatchSubagent(d: DispatchDeps, a: {
|
|
|
67
105
|
/** Phase D: a person's fork invocation (see {@link SkillForkDispatch}). */
|
|
68
106
|
forSkill?: SkillForkDispatch;
|
|
69
107
|
}): Promise<DispatchOutcome>;
|
|
108
|
+
/**
|
|
109
|
+
* The dispatch transaction shared by new sub-agents and follow-ups: locks the parent conversation
|
|
110
|
+
* row, then the parent run row (the order every terminal path uses),
|
|
111
|
+
* runs `child` (writes the child conversation's first events and returns the task message, or
|
|
112
|
+
* null to refuse), then inserts the child run and the dispatch row, appends `subagent_dispatched`
|
|
113
|
+
* and the audit row. After commit: notifies both conversations and enqueues the child run.
|
|
114
|
+
* Returns null when `child` refused.
|
|
115
|
+
*
|
|
116
|
+
* Under the parent run's row lock it first re-checks what the pipeline checked without it: a call
|
|
117
|
+
* already dispatched (a second holder of the same step, e.g. after a stalled-job takeover) gets
|
|
118
|
+
* the existing child run back and writes nothing, and a parent run that is no longer `running`
|
|
119
|
+
* (stopped, orphaned) dispatches nothing. Then the run's limits (§8.2, {@link subagentLimits}),
|
|
120
|
+
* read fresh: its children's token counter at or over the cap, its dispatches (follow-ups
|
|
121
|
+
* included) at the cap, or as many active children as may run at once each refuse with the §4.5
|
|
122
|
+
* text. The lock serializes the dispatches of one run, so the counts cannot race.
|
|
123
|
+
*/
|
|
124
|
+
/** What the dispatch transaction did. */
|
|
125
|
+
export type DispatchCommit = {
|
|
126
|
+
kind: "existing";
|
|
127
|
+
childRunId: string;
|
|
128
|
+
requeue: {
|
|
129
|
+
conversationId: string;
|
|
130
|
+
seq: number;
|
|
131
|
+
} | null;
|
|
132
|
+
} | {
|
|
133
|
+
kind: "stopped";
|
|
134
|
+
} | {
|
|
135
|
+
kind: "limit";
|
|
136
|
+
content: string;
|
|
137
|
+
} | {
|
|
138
|
+
kind: "gate";
|
|
139
|
+
outcome: DispatchOutcome;
|
|
140
|
+
} | {
|
|
141
|
+
kind: "written";
|
|
142
|
+
childRunId: string;
|
|
143
|
+
childSeq: number;
|
|
144
|
+
parentSeq: number;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* {@link commit}'s transaction (run by `SubagentsService.commitDispatch`, `d.db` its handle).
|
|
148
|
+
* Null when `child` refused.
|
|
149
|
+
*/
|
|
150
|
+
export declare function commitDispatchIn(d: Pick<DispatchDeps, "db" | "eventLog" | "config">, a: DispatchArgs, plan: DispatchPlan, child: ChildWriter): Promise<DispatchCommit | null>;
|