@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap.json +10 -6
- package/dist/admin/admin.controller.d.ts +17 -17
- package/dist/admin/admin.controller.js +43 -26
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/extensions.controller.d.ts +14 -14
- package/dist/admin/extensions.controller.js +30 -17
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +8 -8
- package/dist/admin/setup.controller.js +27 -25
- package/dist/admin/setup.service.d.ts +19 -27
- package/dist/admin/setup.service.js +61 -61
- package/dist/agents/agent-lookup.d.ts +53 -0
- package/dist/agents/agent-lookup.js +179 -0
- package/dist/agents/agents.controller.d.ts +1 -1
- package/dist/agents/agents.controller.js +14 -8
- package/dist/agents/agents.module.d.ts +7 -0
- package/dist/agents/agents.module.js +41 -0
- package/dist/agents/agents.service.d.ts +39 -58
- package/dist/agents/agents.service.js +261 -329
- package/dist/agents/definition.d.ts +8 -0
- package/dist/agents/definition.js +8 -0
- package/dist/agents/models.controller.d.ts +1 -1
- package/dist/agents/models.controller.js +2 -2
- package/dist/agents/templates.controller.d.ts +1 -1
- package/dist/agents/templates.controller.js +2 -2
- package/dist/agents/templates.d.ts +6 -8
- package/dist/agents/templates.js +20 -4
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/catalog/admin-catalog.controller.d.ts +3 -3
- package/dist/catalog/admin-catalog.controller.js +27 -13
- package/dist/catalog/catalog-content.d.ts +185 -0
- package/dist/catalog/catalog-content.js +323 -0
- package/dist/catalog/catalog-items.d.ts +186 -0
- package/dist/catalog/catalog-items.js +410 -0
- package/dist/catalog/catalog.module.d.ts +14 -0
- package/dist/catalog/catalog.module.js +71 -0
- package/dist/catalog/catalog.service.d.ts +34 -188
- package/dist/catalog/catalog.service.js +155 -489
- package/dist/catalog/cli.d.ts +3 -2
- package/dist/catalog/cli.js +13 -31
- package/dist/catalog/job-ids.d.ts +15 -0
- package/dist/catalog/job-ids.js +15 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplaces.controller.d.ts +4 -4
- package/dist/catalog/marketplaces.controller.js +22 -11
- package/dist/catalog/marketplaces.service.d.ts +30 -13
- package/dist/catalog/marketplaces.service.js +330 -256
- package/dist/catalog/org-catalog.controller.d.ts +4 -3
- package/dist/catalog/org-catalog.controller.js +29 -14
- package/dist/catalog/org-catalog.service.d.ts +32 -198
- package/dist/catalog/org-catalog.service.js +159 -400
- package/dist/catalog/plugin-import.d.ts +73 -34
- package/dist/catalog/plugin-import.js +356 -217
- package/dist/catalog/plugin-install.d.ts +83 -41
- package/dist/catalog/plugin-install.js +421 -269
- package/dist/catalog/plugin-upgrade.d.ts +59 -4
- package/dist/catalog/plugin-upgrade.js +407 -282
- package/dist/catalog/requests.service.d.ts +27 -15
- package/dist/catalog/requests.service.js +201 -145
- package/dist/catalog/upgrade-targets.d.ts +4 -7
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +1 -1
- package/dist/channels/cards.d.ts +2 -2
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +128 -0
- package/dist/channels/connections.controller.d.ts +1 -1
- package/dist/channels/connections.controller.js +11 -6
- package/dist/channels/connections.service.d.ts +43 -21
- package/dist/channels/connections.service.js +236 -131
- package/dist/channels/inbound.d.ts +34 -38
- package/dist/channels/inbound.js +107 -41
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +60 -82
- package/dist/channels/outbound.js +165 -193
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +29 -8
- package/dist/channels/threads.js +71 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +16 -1
- package/dist/config/schema.js +54 -7
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +10 -10
- package/dist/conversations/artifacts.js +35 -9
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +30 -22
- package/dist/conversations/attachments.service.js +119 -46
- package/dist/conversations/conversations.controller.d.ts +8 -7
- package/dist/conversations/conversations.controller.js +59 -29
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +69 -0
- package/dist/conversations/conversations.service.d.ts +40 -38
- package/dist/conversations/conversations.service.js +130 -140
- package/dist/conversations/event-log.d.ts +28 -18
- package/dist/conversations/event-log.js +74 -27
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +48 -56
- package/dist/conversations/queue.js +13 -289
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +343 -0
- package/dist/conversations/sandbox-status.d.ts +13 -10
- package/dist/conversations/sandbox-status.js +36 -8
- package/dist/conversations/titles.d.ts +71 -24
- package/dist/conversations/titles.js +159 -62
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +6 -0
- package/dist/ctx/create-ctx.js +7 -9
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/queue.js +3 -2
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +2 -2
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +1 -0
- package/dist/errors.d.ts +2 -0
- package/dist/errors.js +2 -0
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/run-replay.d.ts +56 -8
- package/dist/evals/run-replay.js +140 -80
- package/dist/evals/runs.controller.d.ts +1 -1
- package/dist/evals/runs.controller.js +17 -8
- package/dist/evals/runs.service.d.ts +23 -45
- package/dist/evals/runs.service.js +245 -234
- package/dist/evals/sets.controller.d.ts +1 -1
- package/dist/evals/sets.controller.js +17 -8
- package/dist/evals/sets.service.d.ts +22 -6
- package/dist/evals/sets.service.js +248 -194
- package/dist/evals/snapshot.d.ts +2 -2
- package/dist/evals/step-replay.d.ts +2 -2
- package/dist/evals/step-replay.js +1 -1
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.service.d.ts +5 -4
- package/dist/evals/trajectory.service.js +30 -7
- package/dist/evals/worker.d.ts +44 -27
- package/dist/evals/worker.js +220 -120
- package/dist/extensions/admin-ops.d.ts +61 -33
- package/dist/extensions/admin-ops.js +248 -154
- package/dist/extensions/admin-view.d.ts +38 -27
- package/dist/extensions/admin-view.js +126 -55
- package/dist/extensions/approvals.d.ts +12 -8
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +111 -45
- package/dist/extensions/bootstrap.d.ts +96 -42
- package/dist/extensions/bootstrap.js +303 -155
- package/dist/extensions/cli.d.ts +20 -10
- package/dist/extensions/cli.js +41 -96
- package/dist/extensions/config-issues.d.ts +7 -0
- package/dist/extensions/config-issues.js +31 -0
- package/dist/extensions/deployment-config-store.d.ts +49 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +58 -67
- package/dist/extensions/deployment-config.js +202 -230
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +77 -0
- package/dist/extensions/hooks.d.ts +3 -2
- package/dist/extensions/hooks.js +1 -1
- package/dist/extensions/host.d.ts +72 -68
- package/dist/extensions/host.js +191 -152
- package/dist/extensions/installs.d.ts +49 -16
- package/dist/extensions/installs.js +128 -32
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +33 -0
- package/dist/extensions/locks.js +86 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.controller.d.ts +1 -1
- package/dist/extensions/org-config.controller.js +8 -5
- package/dist/extensions/org-config.d.ts +48 -46
- package/dist/extensions/org-config.js +284 -226
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +89 -4
- package/dist/extensions/sources.d.ts +12 -8
- package/dist/extensions/sources.js +34 -13
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +17 -9
- package/dist/files/previewers.d.ts +13 -18
- package/dist/files/previewers.js +83 -36
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +47 -355
- package/dist/http/app.d.ts +11 -15
- package/dist/http/app.js +52 -47
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/identity/accounts.d.ts +82 -29
- package/dist/identity/accounts.js +294 -175
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +7 -4
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +31 -25
- package/dist/identity/auth.guard.d.ts +3 -3
- package/dist/identity/auth.guard.js +6 -4
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/enterprise-admin.d.ts +18 -12
- package/dist/identity/enterprise-admin.js +67 -13
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +56 -0
- package/dist/identity/me.controller.d.ts +16 -15
- package/dist/identity/me.controller.js +37 -31
- package/dist/identity/sessions.d.ts +12 -10
- package/dist/identity/sessions.js +74 -42
- package/dist/identity/settings.d.ts +20 -14
- package/dist/identity/settings.js +85 -57
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/inbox/inbox.module.d.ts +3 -0
- package/dist/inbox/inbox.module.js +22 -0
- package/dist/inbox/inbox.service.d.ts +7 -9
- package/dist/inbox/inbox.service.js +32 -11
- package/dist/index.d.ts +19 -12
- package/dist/index.js +13 -8
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +165 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +126 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +90 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +96 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +86 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +16 -0
- package/dist/infra/logging/logging.module.js +34 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +7 -0
- package/dist/infra/queue/redis-connection.js +18 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +87 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +31 -0
- package/dist/infra/throttler/named-throttlers.js +119 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +15 -0
- package/dist/infra/tokens.js +15 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -241
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +136 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +451 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-config.d.ts +9 -0
- package/dist/log-config.js +27 -0
- package/dist/log-context.d.ts +34 -0
- package/dist/log-context.js +44 -0
- package/dist/log-loki.d.ts +34 -0
- package/dist/log-loki.js +145 -0
- package/dist/log.d.ts +41 -10
- package/dist/log.js +91 -17
- package/dist/models/models.module.d.ts +3 -0
- package/dist/models/models.module.js +24 -0
- package/dist/models/prices.d.ts +8 -2
- package/dist/models/prices.js +65 -37
- package/dist/models/purposes.controller.d.ts +1 -1
- package/dist/models/purposes.controller.js +5 -6
- package/dist/models/purposes.d.ts +35 -13
- package/dist/models/purposes.js +101 -51
- package/dist/net/public-address.js +3 -2
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +61 -31
- package/dist/orgs/directory-sync.js +212 -125
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +54 -57
- package/dist/orgs/offboarding.js +161 -71
- package/dist/orgs/org-lock.d.ts +28 -19
- package/dist/orgs/org-lock.js +81 -35
- package/dist/orgs/org.guard.d.ts +1 -1
- package/dist/orgs/org.guard.js +2 -2
- package/dist/orgs/orgs.controller.d.ts +13 -13
- package/dist/orgs/orgs.controller.js +29 -17
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +68 -0
- package/dist/orgs/orgs.service.d.ts +30 -19
- package/dist/orgs/orgs.service.js +139 -86
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +14 -8
- package/dist/orgs/settings.service.js +75 -46
- package/dist/overrides.d.ts +56 -0
- package/dist/overrides.js +30 -0
- package/dist/roles/gateway-role.d.ts +43 -0
- package/dist/roles/gateway-role.js +98 -0
- package/dist/roles/gateway.module.d.ts +8 -0
- package/dist/roles/gateway.module.js +28 -0
- package/dist/roles/worker-role.d.ts +63 -0
- package/dist/roles/worker-role.js +144 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +90 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +3 -3
- package/dist/runtime/hook-calls.js +1 -6
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.js +1 -1
- package/dist/runtime/loop.d.ts +7 -0
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +45 -74
- package/dist/runtime/maintenance.js +139 -136
- package/dist/runtime/model-call.d.ts +7 -4
- package/dist/runtime/model-call.js +24 -57
- package/dist/runtime/providers.d.ts +17 -6
- package/dist/runtime/providers.js +66 -25
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-control.d.ts +33 -0
- package/dist/runtime/run-control.js +77 -0
- package/dist/runtime/run-finish.d.ts +26 -17
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +48 -0
- package/dist/runtime/run-jobs.js +95 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +32 -57
- package/dist/runtime/run-queue.js +291 -295
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +121 -75
- package/dist/runtime/run-worker.js +340 -225
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +112 -0
- package/dist/runtime/step-log.d.ts +40 -0
- package/dist/runtime/step-log.js +94 -0
- package/dist/runtime/stream.controller.d.ts +5 -8
- package/dist/runtime/stream.controller.js +14 -12
- package/dist/runtime/stream.d.ts +24 -6
- package/dist/runtime/stream.js +78 -7
- package/dist/runtime/subagents/child.d.ts +3 -44
- package/dist/runtime/subagents/child.js +0 -79
- package/dist/runtime/subagents/definition.d.ts +4 -4
- package/dist/runtime/subagents/definition.js +2 -2
- package/dist/runtime/subagents/dispatch.d.ts +87 -6
- package/dist/runtime/subagents/dispatch.js +135 -140
- package/dist/runtime/subagents/limits.d.ts +9 -4
- package/dist/runtime/subagents/limits.js +4 -2
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +1 -1
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +3 -3
- package/dist/runtime/subagents/roster.js +1 -1
- package/dist/runtime/subagents/skill-fork.d.ts +6 -7
- package/dist/runtime/subagents/skill-fork.js +16 -5
- package/dist/runtime/subagents/subagents.service.d.ts +40 -0
- package/dist/runtime/subagents/subagents.service.js +101 -0
- package/dist/runtime/usage-report.d.ts +94 -52
- package/dist/runtime/usage-report.js +200 -99
- package/dist/runtime/waits.d.ts +125 -57
- package/dist/runtime/waits.js +431 -208
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +41 -0
- package/dist/sandbox/jobs.js +113 -0
- package/dist/sandbox/leases.d.ts +39 -31
- package/dist/sandbox/leases.js +117 -257
- package/dist/sandbox/providers.d.ts +19 -0
- package/dist/sandbox/providers.js +38 -0
- package/dist/sandbox/sandbox.module.d.ts +8 -0
- package/dist/sandbox/sandbox.module.js +30 -0
- package/dist/sandbox/sandbox.service.d.ts +24 -29
- package/dist/sandbox/sandbox.service.js +106 -75
- package/dist/skills/catalog.d.ts +33 -20
- package/dist/skills/catalog.js +96 -53
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +28 -18
- package/dist/skills/changes.service.js +421 -364
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invoke.d.ts +16 -15
- package/dist/skills/invoke.js +48 -17
- package/dist/skills/skills.controller.d.ts +1 -1
- package/dist/skills/skills.controller.js +11 -6
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +30 -0
- package/dist/skills/skills.service.d.ts +47 -30
- package/dist/skills/skills.service.js +221 -158
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +12 -8
- package/dist/tools/approvals.service.d.ts +27 -25
- package/dist/tools/approvals.service.js +324 -258
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtins/ask-user.d.ts +2 -2
- package/dist/tools/builtins/ask-user.js +1 -1
- package/dist/tools/builtins/builtin-tools.d.ts +21 -0
- package/dist/tools/builtins/builtin-tools.js +80 -0
- package/dist/tools/builtins/read-tool-output.d.ts +2 -2
- package/dist/tools/builtins/read-tool-output.js +1 -1
- package/dist/tools/builtins/sandbox/bash.js +2 -2
- package/dist/tools/builtins/sandbox/common.d.ts +7 -4
- package/dist/tools/builtins/sandbox/common.js +5 -3
- package/dist/tools/builtins/sandbox/deliver.js +2 -2
- package/dist/tools/builtins/sandbox/edit.js +1 -1
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -2
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/write.js +1 -1
- package/dist/tools/builtins/skill-load.d.ts +3 -3
- package/dist/tools/builtins/skill-load.js +1 -1
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +1 -1
- package/dist/tools/connectors.controller.js +21 -10
- package/dist/tools/connectors.service.d.ts +31 -13
- package/dist/tools/connectors.service.js +434 -344
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +111 -79
- package/dist/tools/info.d.ts +12 -9
- package/dist/tools/info.js +33 -7
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +11 -3
- package/dist/tools/oauth/tokens.js +15 -14
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +47 -3
- package/dist/tools/pipeline.d.ts +62 -46
- package/dist/tools/pipeline.js +145 -64
- package/dist/tools/policy.d.ts +2 -2
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +8 -5
- package/dist/tools/questions.service.d.ts +25 -24
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +30 -20
- package/dist/tools/registry.js +73 -37
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +91 -0
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +9 -57
- package/dist/ui/views.js +43 -45
- package/package.json +11 -2
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
- /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
|
@@ -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,8 +1,8 @@
|
|
|
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";
|
|
@@ -29,11 +29,11 @@ export interface EffectiveDefinition {
|
|
|
29
29
|
warnings: string[];
|
|
30
30
|
}
|
|
31
31
|
export interface EffectiveDefinitionDeps {
|
|
32
|
-
db:
|
|
32
|
+
db: KernelSchemaDb;
|
|
33
33
|
purposes: Pick<ModelPurposesService, "resolve">;
|
|
34
34
|
/** Reads the resolved model's parameter declarations (a template `effort`). */
|
|
35
35
|
registry: Pick<ProviderRegistry, "resolve">;
|
|
36
|
-
config:
|
|
36
|
+
config: Pick<KernelConfigService, "get">;
|
|
37
37
|
}
|
|
38
38
|
type Policy = "ask" | "deny";
|
|
39
39
|
/**
|
|
@@ -246,7 +246,7 @@ function orgAgentDefinition(d, a) {
|
|
|
246
246
|
return {
|
|
247
247
|
definition,
|
|
248
248
|
template: { source: "agent", id: agentId, version: a.orgAgent.version },
|
|
249
|
-
maxSteps: d.config().runtime.maxSteps,
|
|
249
|
+
maxSteps: d.config.get().runtime.maxSteps,
|
|
250
250
|
warnings: [],
|
|
251
251
|
model: own.model,
|
|
252
252
|
tierFallback: false,
|
|
@@ -268,7 +268,7 @@ function orgAgentDefinition(d, a) {
|
|
|
268
268
|
export async function effectiveDefinition(d, a) {
|
|
269
269
|
if (a.entry.source === "agent")
|
|
270
270
|
return orgAgentDefinition(d, a);
|
|
271
|
-
const runtimeMax = d.config().runtime.maxSteps;
|
|
271
|
+
const runtimeMax = d.config.get().runtime.maxSteps;
|
|
272
272
|
const { parent, entry } = a;
|
|
273
273
|
let template = null;
|
|
274
274
|
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;
|
|
@@ -44,6 +64,24 @@ 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
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
|
|
@@ -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>;
|
|
@@ -4,7 +4,7 @@ import { normalizeStoredDefinition } from "../../agents/definition.js";
|
|
|
4
4
|
import { audit } from "../../identity/audit.js";
|
|
5
5
|
import { forkAgentUnknownText } from "../../skills/invoke.js";
|
|
6
6
|
import { AGENT_REFUSALS } from "../../tools/builtins/agent.js";
|
|
7
|
-
import { ACTIVE_RUN_STATUSES, runJobId } from "../run-
|
|
7
|
+
import { ACTIVE_RUN_STATUSES, runJobId } from "../run-jobs.js";
|
|
8
8
|
import { effectiveDefinition, narrowFollowUp, SubagentTypeGoneError, } from "./definition.js";
|
|
9
9
|
import { subagentLimits } from "./limits.js";
|
|
10
10
|
import { auditRefusal, checkOrgAgent, currentAgentDefinition } from "./org-agents.js";
|
|
@@ -118,7 +118,7 @@ export async function dispatchSubagent(d, a) {
|
|
|
118
118
|
subagent_type: entry.type,
|
|
119
119
|
})
|
|
120
120
|
.execute();
|
|
121
|
-
const [, task] = await d.eventLog.
|
|
121
|
+
const [, task] = await d.eventLog.appendIn(childId, [
|
|
122
122
|
{
|
|
123
123
|
type: "subagent_started",
|
|
124
124
|
idemKey: "subagent_started",
|
|
@@ -149,7 +149,7 @@ export async function dispatchSubagent(d, a) {
|
|
|
149
149
|
},
|
|
150
150
|
},
|
|
151
151
|
taskMessage(ctx, a.callId, fork === undefined ? input.prompt : fork.task(eff.definition), undefined, fork?.skill),
|
|
152
|
-
]
|
|
152
|
+
]);
|
|
153
153
|
return task;
|
|
154
154
|
});
|
|
155
155
|
// a new sub-agent's writer never refuses
|
|
@@ -234,7 +234,9 @@ async function resume(d, a) {
|
|
|
234
234
|
.executeTakeFirst();
|
|
235
235
|
if (await activeRun())
|
|
236
236
|
return null;
|
|
237
|
-
const [task] = await d.eventLog.
|
|
237
|
+
const [task] = await d.eventLog.appendIn(child.id, [
|
|
238
|
+
taskMessage(ctx, a.callId, a.input.prompt, narrowFollowUp(frozen, current)),
|
|
239
|
+
]);
|
|
238
240
|
return task;
|
|
239
241
|
}).then((r) => r ?? refused(AGENT_REFUSALS.stillRunning(a.id)));
|
|
240
242
|
}
|
|
@@ -290,153 +292,145 @@ skill) => ({
|
|
|
290
292
|
},
|
|
291
293
|
});
|
|
292
294
|
/**
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* runs `child` (writes the child conversation's first events and returns the task message, or
|
|
296
|
-
* null to refuse), then inserts the child run and the dispatch row, appends `subagent_dispatched`
|
|
297
|
-
* and the audit row. After commit: notifies both conversations and enqueues the child run.
|
|
298
|
-
* Returns null when `child` refused.
|
|
299
|
-
*
|
|
300
|
-
* Under the parent run's row lock it first re-checks what the pipeline checked without it: a call
|
|
301
|
-
* already dispatched (a second holder of the same step, e.g. after a stalled-job takeover) gets
|
|
302
|
-
* the existing child run back and writes nothing, and a parent run that is no longer `running`
|
|
303
|
-
* (stopped, orphaned) dispatches nothing. Then the run's limits (§8.2, {@link subagentLimits}),
|
|
304
|
-
* read fresh: its children's token counter at or over the cap, its dispatches (follow-ups
|
|
305
|
-
* included) at the cap, or as many active children as may run at once each refuse with the §4.5
|
|
306
|
-
* text. The lock serializes the dispatches of one run, so the counts cannot race.
|
|
295
|
+
* {@link commit}'s transaction (run by `SubagentsService.commitDispatch`, `d.db` its handle).
|
|
296
|
+
* Null when `child` refused.
|
|
307
297
|
*/
|
|
308
|
-
async function
|
|
309
|
-
/** Writes the child's events; `checked` is the org agent version the in-lock gates passed. */
|
|
310
|
-
child) {
|
|
298
|
+
export async function commitDispatchIn(d, a, plan, child) {
|
|
311
299
|
const { ctx, callId, input } = a;
|
|
312
300
|
const childRunId = randomUUID();
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
301
|
+
const t = d.db;
|
|
302
|
+
// the documented order, conversation row then run row (run-finish.ts, abortWaiting): the
|
|
303
|
+
// append to the parent below takes the conversation row, so it is taken first here, or a stop
|
|
304
|
+
// racing this commit could deadlock (final review m2); the child's row comes last
|
|
305
|
+
await t
|
|
306
|
+
.selectFrom("conversations")
|
|
307
|
+
.select("id")
|
|
308
|
+
.where("id", "=", ctx.conversationId)
|
|
309
|
+
.forUpdate()
|
|
310
|
+
.executeTakeFirst();
|
|
311
|
+
const parent = await t
|
|
312
|
+
.selectFrom("runs")
|
|
313
|
+
.select(["status", "subagent_tokens_used"])
|
|
314
|
+
.where("id", "=", ctx.runId)
|
|
315
|
+
.forUpdate()
|
|
316
|
+
.executeTakeFirst();
|
|
317
|
+
const existing = await t
|
|
318
|
+
.selectFrom("subagent_dispatches as sd")
|
|
319
|
+
.leftJoin("runs as cr", "cr.id", "sd.child_run_id")
|
|
320
|
+
.select(["sd.child_run_id", "sd.child_conversation_id", "cr.status", "cr.trigger_seq"])
|
|
321
|
+
.where("sd.parent_run_id", "=", ctx.runId)
|
|
322
|
+
.where("sd.parent_call_id", "=", callId)
|
|
323
|
+
.executeTakeFirst();
|
|
324
|
+
if (existing) {
|
|
325
|
+
return {
|
|
326
|
+
kind: "existing",
|
|
327
|
+
childRunId: existing.child_run_id,
|
|
328
|
+
// still queued: the first holder may have died before its enqueue (review M4)
|
|
329
|
+
requeue: existing.status === "queued" && existing.trigger_seq !== null
|
|
330
|
+
? {
|
|
331
|
+
conversationId: existing.child_conversation_id,
|
|
332
|
+
seq: Number(existing.trigger_seq),
|
|
333
|
+
}
|
|
334
|
+
: null,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
if (parent?.status !== "running")
|
|
338
|
+
return { kind: "stopped" };
|
|
339
|
+
const limit = await limitRefusal(t, d, ctx, parent.subagent_tokens_used);
|
|
340
|
+
if (limit !== null)
|
|
341
|
+
return { kind: "limit", content: limit };
|
|
342
|
+
let checked;
|
|
343
|
+
if (plan.source === "agent") {
|
|
344
|
+
// the org agent's gates again, under the parent run's lock, with both agents' rows held
|
|
345
|
+
// FOR SHARE (in id order) so a concurrent save of either serializes with this dispatch
|
|
317
346
|
await t
|
|
318
|
-
.selectFrom("
|
|
347
|
+
.selectFrom("agents")
|
|
319
348
|
.select("id")
|
|
320
|
-
.where("id", "
|
|
321
|
-
.
|
|
322
|
-
.
|
|
323
|
-
const parent = await t
|
|
324
|
-
.selectFrom("runs")
|
|
325
|
-
.select(["status", "subagent_tokens_used"])
|
|
326
|
-
.where("id", "=", ctx.runId)
|
|
327
|
-
.forUpdate()
|
|
328
|
-
.executeTakeFirst();
|
|
329
|
-
const existing = await t
|
|
330
|
-
.selectFrom("subagent_dispatches as sd")
|
|
331
|
-
.leftJoin("runs as cr", "cr.id", "sd.child_run_id")
|
|
332
|
-
.select(["sd.child_run_id", "sd.child_conversation_id", "cr.status", "cr.trigger_seq"])
|
|
333
|
-
.where("sd.parent_run_id", "=", ctx.runId)
|
|
334
|
-
.where("sd.parent_call_id", "=", callId)
|
|
335
|
-
.executeTakeFirst();
|
|
336
|
-
if (existing) {
|
|
337
|
-
return {
|
|
338
|
-
kind: "existing",
|
|
339
|
-
childRunId: existing.child_run_id,
|
|
340
|
-
// still queued: the first holder may have died before its enqueue (review M4)
|
|
341
|
-
requeue: existing.status === "queued" && existing.trigger_seq !== null
|
|
342
|
-
? {
|
|
343
|
-
conversationId: existing.child_conversation_id,
|
|
344
|
-
seq: Number(existing.trigger_seq),
|
|
345
|
-
}
|
|
346
|
-
: null,
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
if (parent?.status !== "running")
|
|
350
|
-
return { kind: "stopped" };
|
|
351
|
-
const limit = await limitRefusal(t, d, ctx, parent.subagent_tokens_used);
|
|
352
|
-
if (limit !== null)
|
|
353
|
-
return { kind: "limit", content: limit };
|
|
354
|
-
let checked;
|
|
355
|
-
if (plan.source === "agent") {
|
|
356
|
-
// the org agent's gates again, under the parent run's lock, with both agents' rows held
|
|
357
|
-
// FOR SHARE (in id order) so a concurrent save of either serializes with this dispatch
|
|
358
|
-
await t
|
|
359
|
-
.selectFrom("agents")
|
|
360
|
-
.select("id")
|
|
361
|
-
.where("id", "in", [ctx.agentId, plan.agentId])
|
|
362
|
-
.orderBy("id")
|
|
363
|
-
.forShare()
|
|
364
|
-
.execute();
|
|
365
|
-
const gates = await orgAgentGates(t, a, plan.agentId, plan.agentType, plan.resumed);
|
|
366
|
-
if ("refused" in gates)
|
|
367
|
-
return { kind: "gate", outcome: gates.refused };
|
|
368
|
-
checked = gates.checked;
|
|
369
|
-
}
|
|
370
|
-
const task = await child(t, checked);
|
|
371
|
-
if (task === null)
|
|
372
|
-
return null;
|
|
373
|
-
await t
|
|
374
|
-
.insertInto("runs")
|
|
375
|
-
.values({
|
|
376
|
-
id: childRunId,
|
|
377
|
-
conversation_id: plan.childConversationId,
|
|
378
|
-
status: "queued",
|
|
379
|
-
agent_version: plan.agentVersion,
|
|
380
|
-
trigger_account_id: ctx.accountId,
|
|
381
|
-
trigger_seq: task.seq,
|
|
382
|
-
})
|
|
349
|
+
.where("id", "in", [ctx.agentId, plan.agentId])
|
|
350
|
+
.orderBy("id")
|
|
351
|
+
.forShare()
|
|
383
352
|
.execute();
|
|
384
|
-
await t
|
|
385
|
-
|
|
386
|
-
.
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
parentRunId: ctx.runId,
|
|
353
|
+
const gates = await orgAgentGates(t, a, plan.agentId, plan.agentType, plan.resumed);
|
|
354
|
+
if ("refused" in gates)
|
|
355
|
+
return { kind: "gate", outcome: gates.refused };
|
|
356
|
+
checked = gates.checked;
|
|
357
|
+
}
|
|
358
|
+
const task = await child(t, checked);
|
|
359
|
+
if (task === null)
|
|
360
|
+
return null;
|
|
361
|
+
await t
|
|
362
|
+
.insertInto("runs")
|
|
363
|
+
.values({
|
|
364
|
+
id: childRunId,
|
|
365
|
+
conversation_id: plan.childConversationId,
|
|
366
|
+
status: "queued",
|
|
367
|
+
agent_version: plan.agentVersion,
|
|
368
|
+
trigger_account_id: ctx.accountId,
|
|
369
|
+
trigger_seq: task.seq,
|
|
370
|
+
})
|
|
371
|
+
.execute();
|
|
372
|
+
await t
|
|
373
|
+
.insertInto("subagent_dispatches")
|
|
374
|
+
.values({
|
|
375
|
+
parent_run_id: ctx.runId,
|
|
376
|
+
parent_call_id: callId,
|
|
377
|
+
parent_conversation_id: ctx.conversationId,
|
|
378
|
+
step: ctx.step,
|
|
379
|
+
child_conversation_id: plan.childConversationId,
|
|
380
|
+
child_run_id: childRunId,
|
|
381
|
+
resumed: plan.resumed,
|
|
382
|
+
})
|
|
383
|
+
.execute();
|
|
384
|
+
const [dispatched] = await d.eventLog.appendIn(ctx.conversationId, [
|
|
385
|
+
{
|
|
386
|
+
type: "subagent_dispatched",
|
|
387
|
+
runId: ctx.runId,
|
|
388
|
+
idemKey: dispatchedIdemKey(ctx.runId, callId),
|
|
389
|
+
payload: {
|
|
390
|
+
step: ctx.step,
|
|
423
391
|
callId,
|
|
392
|
+
subagentId: plan.childConversationId,
|
|
393
|
+
childRunId,
|
|
424
394
|
agentType: plan.agentType,
|
|
425
|
-
|
|
426
|
-
...(plan.source === "agent" && {
|
|
427
|
-
agentId: plan.agentId,
|
|
428
|
-
agentVersion: plan.agentVersion,
|
|
429
|
-
}),
|
|
395
|
+
description: input.description,
|
|
430
396
|
resumed: plan.resumed,
|
|
431
|
-
|
|
397
|
+
model: { provider: plan.model.provider, model: plan.model.model },
|
|
398
|
+
...(plan.tierFallback && { tierFallback: true }),
|
|
399
|
+
...(a.forSkill !== undefined && { invokedSeq: a.forSkill.seq }),
|
|
432
400
|
},
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
401
|
+
},
|
|
402
|
+
]);
|
|
403
|
+
await audit(t, {
|
|
404
|
+
actorAccountId: ctx.accountId,
|
|
405
|
+
orgId: ctx.orgId,
|
|
406
|
+
action: "subagent.dispatched",
|
|
407
|
+
target: plan.childConversationId,
|
|
408
|
+
detail: {
|
|
409
|
+
parentConversationId: ctx.conversationId,
|
|
410
|
+
parentRunId: ctx.runId,
|
|
411
|
+
callId,
|
|
412
|
+
agentType: plan.agentType,
|
|
413
|
+
source: plan.source,
|
|
414
|
+
...(plan.source === "agent" && {
|
|
415
|
+
agentId: plan.agentId,
|
|
416
|
+
agentVersion: plan.agentVersion,
|
|
417
|
+
}),
|
|
418
|
+
resumed: plan.resumed,
|
|
419
|
+
childRunId,
|
|
420
|
+
},
|
|
439
421
|
});
|
|
422
|
+
return {
|
|
423
|
+
kind: "written",
|
|
424
|
+
childRunId,
|
|
425
|
+
childSeq: task.seq,
|
|
426
|
+
parentSeq: dispatched.seq,
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
async function commit(d, a, plan,
|
|
430
|
+
/** Writes the child's events; `checked` is the org agent version the in-lock gates passed. */
|
|
431
|
+
child) {
|
|
432
|
+
const { ctx } = a;
|
|
433
|
+
const out = await d.commitDispatch(a, plan, child);
|
|
440
434
|
if (out === null)
|
|
441
435
|
return null;
|
|
442
436
|
if (out.kind === "existing") {
|
|
@@ -464,6 +458,7 @@ child) {
|
|
|
464
458
|
return out.outcome;
|
|
465
459
|
await d.eventLog.notify(plan.childConversationId, out.childSeq);
|
|
466
460
|
await d.eventLog.notify(ctx.conversationId, out.parentSeq);
|
|
461
|
+
const childRunId = out.childRunId;
|
|
467
462
|
const jobId = runJobId(plan.childConversationId, out.childSeq);
|
|
468
463
|
try {
|
|
469
464
|
await d.enqueue({ runId: childRunId, conversationId: plan.childConversationId }, jobId, "subagent");
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import type { Transaction } from "kysely";
|
|
2
1
|
import { type KernelConfig } from "../../config/schema.js";
|
|
3
|
-
import type {
|
|
2
|
+
import type { KernelSchemaDb } from "../../db/kernel-schema.js";
|
|
3
|
+
/** The config the limits read (`KernelConfigService`, live: `subagents.*` is hot). */
|
|
4
|
+
export interface SubagentsConfig {
|
|
5
|
+
get(): Pick<KernelConfig, "subagents">;
|
|
6
|
+
}
|
|
4
7
|
/** The sub-agent limits of one parent run (sub-agents spec §8.2). */
|
|
5
8
|
export interface SubagentLimits {
|
|
6
9
|
maxConcurrentPerRun: number;
|
|
@@ -14,10 +17,12 @@ export declare const SUBAGENT_LIMIT_DEFAULTS: SubagentLimits;
|
|
|
14
17
|
* `subagentLimitOverrides`, value by value, over the hot config `subagents.*`. Read live (no cache),
|
|
15
18
|
* in the caller's transaction when one is given, so every replica applies a change at once.
|
|
16
19
|
*/
|
|
17
|
-
export declare function subagentLimits(
|
|
20
|
+
export declare function subagentLimits(
|
|
21
|
+
/** The pool, or the context's handle (a `@Transactional` caller's transaction). */
|
|
22
|
+
db: KernelSchemaDb, config: SubagentsConfig, orgId: string): Promise<SubagentLimits>;
|
|
18
23
|
/**
|
|
19
24
|
* Whether the sub-agents of `parentRunId` have used their token budget (§8.3): its
|
|
20
25
|
* `subagent_tokens_used`, read fresh, at or over `maxTokensPerRun`. A sub-agent's step checks it
|
|
21
26
|
* before every model request and ends its run with `budget` when it is.
|
|
22
27
|
*/
|
|
23
|
-
export declare function subagentBudgetUsedUp(db:
|
|
28
|
+
export declare function subagentBudgetUsedUp(db: KernelSchemaDb, config: SubagentsConfig, orgId: string, parentRunId: string): Promise<boolean>;
|
|
@@ -7,8 +7,10 @@ export const SUBAGENT_LIMIT_DEFAULTS = KernelConfigSchema.shape.subagents.parse(
|
|
|
7
7
|
* `subagentLimitOverrides`, value by value, over the hot config `subagents.*`. Read live (no cache),
|
|
8
8
|
* in the caller's transaction when one is given, so every replica applies a change at once.
|
|
9
9
|
*/
|
|
10
|
-
export async function subagentLimits(
|
|
11
|
-
|
|
10
|
+
export async function subagentLimits(
|
|
11
|
+
/** The pool, or the context's handle (a `@Transactional` caller's transaction). */
|
|
12
|
+
db, config, orgId) {
|
|
13
|
+
const base = config.get().subagents;
|
|
12
14
|
const over = await readSubagentLimitOverride(db, orgId);
|
|
13
15
|
return {
|
|
14
16
|
maxConcurrentPerRun: over?.maxConcurrentPerRun ?? base.maxConcurrentPerRun,
|
|
@@ -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 gates an org agent sub-agent passes (spec §5.5), checked at every dispatch and every
|
|
5
5
|
* follow-up: `deleted` (the agent is gone, or not of this org), `allowlist` (the parent agent's
|
|
@@ -22,7 +22,7 @@ export type OrgAgentCheck = {
|
|
|
22
22
|
* dispatches at once). On success returns the agent's current version and definition, which the
|
|
23
23
|
* caller freezes as is (never read again, so the frozen version is the one the gates saw).
|
|
24
24
|
*/
|
|
25
|
-
export declare function checkOrgAgent(db:
|
|
25
|
+
export declare function checkOrgAgent(db: KernelSchemaDb, a: {
|
|
26
26
|
orgId: string;
|
|
27
27
|
parentDefinition: Pick<AgentDefinition, "subagents">;
|
|
28
28
|
agentId: string;
|
|
@@ -32,12 +32,12 @@ export declare function checkOrgAgent(db: KernelDb, a: {
|
|
|
32
32
|
* The parent agent's current definition (the allowlist gate reads it, not the run's version), or
|
|
33
33
|
* null when the agent no longer exists or is deleted.
|
|
34
34
|
*/
|
|
35
|
-
export declare function currentAgentDefinition(db:
|
|
35
|
+
export declare function currentAgentDefinition(db: KernelSchemaDb, agentId: string): Promise<AgentDefinition | null>;
|
|
36
36
|
/**
|
|
37
37
|
* Audits a refused org agent dispatch (`subagent.refused`, spec §5.5): actor the person who
|
|
38
38
|
* started the parent run, target the refused agent, so its owner can see attempts to use it.
|
|
39
39
|
*/
|
|
40
|
-
export declare function auditRefusal(db:
|
|
40
|
+
export declare function auditRefusal(db: KernelSchemaDb, a: {
|
|
41
41
|
orgId: string;
|
|
42
42
|
triggerAccountId: string;
|
|
43
43
|
agentId: string;
|