@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,13 +1,17 @@
|
|
|
1
1
|
import { type ContentBlock, type Logger, type ModelUsage, type StopReason } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
2
|
+
import { type ModelRef } from "../agents/definition.js";
|
|
3
|
+
import { EventLog } from "../conversations/event-log.js";
|
|
4
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
5
|
+
import type { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
6
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
7
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
5
8
|
import type { KyselyCheckpointSaver } from "../runtime/checkpointer.js";
|
|
6
9
|
import type { LoopDeps } from "../runtime/langgraph-loop.js";
|
|
7
10
|
import type { AgentLoop, LoopOutcome } from "../runtime/loop.js";
|
|
8
11
|
import { type MediaSourceDeps } from "../runtime/model-call.js";
|
|
9
12
|
import type { ProviderRegistry } from "../runtime/providers.js";
|
|
10
|
-
import type {
|
|
13
|
+
import type { RunFinish } from "../runtime/run-finish.js";
|
|
14
|
+
import type { CaseSnapshot, SnapshotEvent } from "./snapshot.js";
|
|
11
15
|
import type { ResolvedCandidate } from "./step-replay.js";
|
|
12
16
|
/**
|
|
13
17
|
* 整轮回放(D2 / C6):在 `kind = 'eval'` 的隐藏对话里跑**同一个** `LangGraphLoop`,工具管线换成
|
|
@@ -33,6 +37,11 @@ export interface RunReplayResult {
|
|
|
33
37
|
usage: ModelUsage;
|
|
34
38
|
steps: number;
|
|
35
39
|
unmatched: number;
|
|
40
|
+
/**
|
|
41
|
+
* Set when a call was matched with a recording made under the release-candidate tool names
|
|
42
|
+
* (`sandbox_edit` for `Edit`, `docs__search` for `mcp__docs__search`, old parameter names).
|
|
43
|
+
*/
|
|
44
|
+
legacyKeyMatch?: true;
|
|
36
45
|
}
|
|
37
46
|
/** 原运行(基线)的同形摘要。 */
|
|
38
47
|
export type RunBaseline = Omit<RunReplayResult, "conversationId" | "outcome" | "unmatched">;
|
|
@@ -50,9 +59,14 @@ export interface EvalReplayHooks {
|
|
|
50
59
|
beforeJudge?(evalRunId: string): Promise<void>;
|
|
51
60
|
}
|
|
52
61
|
export interface RunReplayDeps {
|
|
53
|
-
|
|
62
|
+
/** The context-aware handle (reads, the eval conversation's cleanup). */
|
|
63
|
+
readonly db: KernelSchemaDb;
|
|
54
64
|
eventLog: EventLog;
|
|
55
|
-
|
|
65
|
+
/** Writes the seed (the eval conversation, its events, the run) in a transaction of its own. */
|
|
66
|
+
seeder: Pick<EvalReplaySeeder, "seed">;
|
|
67
|
+
/** Writes the replayed run's terminal state. */
|
|
68
|
+
runFinish: Pick<RunFinish, "finish">;
|
|
69
|
+
config: Pick<KernelConfigService, "get">;
|
|
56
70
|
log: Logger;
|
|
57
71
|
registry: Pick<ProviderRegistry, "resolve">;
|
|
58
72
|
media?: MediaSourceDeps;
|
|
@@ -64,15 +78,54 @@ export interface RunReplayDeps {
|
|
|
64
78
|
/** 本次执行是否仍持有结果的认领(失去认领 → 不再发请求);不给 = 不检查。 */
|
|
65
79
|
stillClaimed?: () => Promise<boolean>;
|
|
66
80
|
/**
|
|
67
|
-
*
|
|
81
|
+
* 种子事务内调用(its queries join the seed's transaction through the context-aware handle):把评测对话记到结果上
|
|
82
|
+
* (以认领为条件)。返回 false = 已失去认领,种子回滚、抛 {@link ReplayClaimLost}。
|
|
68
83
|
*/
|
|
69
|
-
onSeeded?: (
|
|
84
|
+
onSeeded?: (conversationId: string) => Promise<boolean>;
|
|
70
85
|
hooks?: EvalReplayHooks;
|
|
71
86
|
}
|
|
72
87
|
/** 写种子时发现已失去认领或运行已不在执行:本次执行停下,不留评测对话。 */
|
|
73
88
|
export declare class ReplayClaimLost extends Error {
|
|
74
89
|
constructor();
|
|
75
90
|
}
|
|
91
|
+
/** What {@link EvalReplaySeeder.seed} writes. */
|
|
92
|
+
export interface ReplaySeed {
|
|
93
|
+
evalRunId: string;
|
|
94
|
+
orgId: string;
|
|
95
|
+
agentId: string;
|
|
96
|
+
accountId: string;
|
|
97
|
+
conversationId: string;
|
|
98
|
+
runId: string;
|
|
99
|
+
/** The original run's `run_started` seq: the seeds are the events before it. */
|
|
100
|
+
runStartedSeq: number;
|
|
101
|
+
/** The conversation's `consumed_seq` when the original run started. */
|
|
102
|
+
consumed: number;
|
|
103
|
+
seeds: SnapshotEvent[];
|
|
104
|
+
/** The run's trigger seq (the last user message before it). */
|
|
105
|
+
trigger: number;
|
|
106
|
+
agentVersion: number;
|
|
107
|
+
model: ModelRef;
|
|
108
|
+
/** The original run's `skills_catalog` event, its payload copied as is. */
|
|
109
|
+
catalog: {
|
|
110
|
+
payload: unknown;
|
|
111
|
+
} | undefined;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The seed of a full-run replay (C6): the `kind = 'eval'` conversation with the events before the
|
|
115
|
+
* original run at their original seqs, the run row and its `run_started` (and the original
|
|
116
|
+
* `skills_catalog`), in one transaction of its own.
|
|
117
|
+
*/
|
|
118
|
+
export declare class EvalReplaySeeder {
|
|
119
|
+
private readonly db;
|
|
120
|
+
private readonly eventLog;
|
|
121
|
+
readonly txHost: TransactionHost;
|
|
122
|
+
constructor(db: KernelDb, eventLog: Pick<EventLog, "appendIn">, txHost: TransactionHost);
|
|
123
|
+
/**
|
|
124
|
+
* Writes the seed; `onSeeded` runs inside the same transaction (false = the claim is lost: the
|
|
125
|
+
* seed rolls back and {@link ReplayClaimLost} is thrown).
|
|
126
|
+
*/
|
|
127
|
+
seed(p: ReplaySeed, onSeeded?: (conversationId: string) => Promise<boolean>): Promise<void>;
|
|
128
|
+
}
|
|
76
129
|
/** 整轮回放被停下的原因(`run_aborted.detail`)。 */
|
|
77
130
|
export type StopDetail = "cancelled" | "capped" | "too_many_errors" | "claim_lost" | "shutdown";
|
|
78
131
|
/** 原运行(快照)的摘要,作为整轮回放的基线。 */
|
package/dist/evals/run-replay.js
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
1
10
|
import { randomUUID } from "node:crypto";
|
|
2
11
|
import { ModelError, } from "@capybara-hq/plugin-sdk";
|
|
12
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
3
13
|
import { sql } from "kysely";
|
|
4
14
|
import { normalizeStoredDefinition } from "../agents/definition.js";
|
|
15
|
+
import { EventLog } from "../conversations/event-log.js";
|
|
5
16
|
import { ApiError } from "../errors.js";
|
|
17
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
18
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
19
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
6
20
|
import { estimateTokens } from "../runtime/context/tokens.js";
|
|
7
21
|
import { RunError } from "../runtime/model-call.js";
|
|
8
|
-
import { finishRun } from "../runtime/run-finish.js";
|
|
9
22
|
import { recordedSkillForks } from "../runtime/subagents/skill-fork.js";
|
|
10
23
|
import { skillsCatalogIdemKey } from "../skills/catalog.js";
|
|
11
24
|
import { ACTIVE_EVAL_STATUSES, addUsage, consumeTokens, TOO_MANY_ERRORS, usageTokens, } from "./budget.js";
|
|
12
|
-
import { RecordedToolPipeline, recordedCalls } from "./recorded-tools.js";
|
|
25
|
+
import { currentCall, legacyScopeOf, RecordedToolPipeline, recordedCalls, } from "./recorded-tools.js";
|
|
13
26
|
/** 写种子时发现已失去认领或运行已不在执行:本次执行停下,不留评测对话。 */
|
|
14
27
|
export class ReplayClaimLost extends Error {
|
|
15
28
|
constructor() {
|
|
@@ -17,6 +30,111 @@ export class ReplayClaimLost extends Error {
|
|
|
17
30
|
this.name = "ReplayClaimLost";
|
|
18
31
|
}
|
|
19
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* The seed of a full-run replay (C6): the `kind = 'eval'` conversation with the events before the
|
|
35
|
+
* original run at their original seqs, the run row and its `run_started` (and the original
|
|
36
|
+
* `skills_catalog`), in one transaction of its own.
|
|
37
|
+
*/
|
|
38
|
+
let EvalReplaySeeder = class EvalReplaySeeder {
|
|
39
|
+
db;
|
|
40
|
+
eventLog;
|
|
41
|
+
txHost;
|
|
42
|
+
constructor(db, eventLog, txHost) {
|
|
43
|
+
this.db = db;
|
|
44
|
+
this.eventLog = eventLog;
|
|
45
|
+
this.txHost = txHost;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Writes the seed; `onSeeded` runs inside the same transaction (false = the claim is lost: the
|
|
49
|
+
* seed rolls back and {@link ReplayClaimLost} is thrown).
|
|
50
|
+
*/
|
|
51
|
+
async seed(p, onSeeded) {
|
|
52
|
+
const { conversationId, runId, evalRunId } = p;
|
|
53
|
+
// 运行行加共享锁并复核仍在执行:与取消 / 删除评测集(UPDATE 持行锁)互斥,删除之后不会再长出评测对话
|
|
54
|
+
const live = await this.db
|
|
55
|
+
.selectFrom("eval_runs")
|
|
56
|
+
.select("id")
|
|
57
|
+
.where("id", "=", evalRunId)
|
|
58
|
+
.where("status", "in", [...ACTIVE_EVAL_STATUSES])
|
|
59
|
+
.forShare()
|
|
60
|
+
.executeTakeFirst();
|
|
61
|
+
if (!live)
|
|
62
|
+
throw new ReplayClaimLost();
|
|
63
|
+
await this.db
|
|
64
|
+
.insertInto("conversations")
|
|
65
|
+
.values({
|
|
66
|
+
id: conversationId,
|
|
67
|
+
org_id: p.orgId,
|
|
68
|
+
agent_id: p.agentId,
|
|
69
|
+
account_id: p.accountId,
|
|
70
|
+
last_seq: p.runStartedSeq - 1,
|
|
71
|
+
consumed_seq: p.consumed,
|
|
72
|
+
kind: "eval",
|
|
73
|
+
eval_run_id: evalRunId,
|
|
74
|
+
})
|
|
75
|
+
.execute();
|
|
76
|
+
for (let i = 0; i < p.seeds.length; i += SEED_BATCH) {
|
|
77
|
+
await this.db
|
|
78
|
+
.insertInto("conversation_events")
|
|
79
|
+
.values(p.seeds.slice(i, i + SEED_BATCH).map((e) => ({
|
|
80
|
+
conversation_id: conversationId,
|
|
81
|
+
seq: e.seq,
|
|
82
|
+
type: e.type,
|
|
83
|
+
run_id: e.runId,
|
|
84
|
+
idem_key: null,
|
|
85
|
+
payload: JSON.stringify(e.payload),
|
|
86
|
+
created_at: new Date(e.createdAt),
|
|
87
|
+
})))
|
|
88
|
+
.execute();
|
|
89
|
+
}
|
|
90
|
+
await this.db
|
|
91
|
+
.insertInto("runs")
|
|
92
|
+
.values({
|
|
93
|
+
id: runId,
|
|
94
|
+
conversation_id: conversationId,
|
|
95
|
+
status: "running",
|
|
96
|
+
agent_version: p.agentVersion,
|
|
97
|
+
trigger_account_id: p.accountId,
|
|
98
|
+
trigger_seq: p.trigger,
|
|
99
|
+
started_at: new Date(),
|
|
100
|
+
})
|
|
101
|
+
.execute();
|
|
102
|
+
await this.eventLog.appendIn(conversationId, [
|
|
103
|
+
{
|
|
104
|
+
type: "run_started",
|
|
105
|
+
runId,
|
|
106
|
+
idemKey: `run_started:${runId}`,
|
|
107
|
+
payload: {
|
|
108
|
+
agentVersion: p.agentVersion,
|
|
109
|
+
model: p.model,
|
|
110
|
+
triggerAccountId: p.accountId,
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
...(p.catalog
|
|
114
|
+
? [
|
|
115
|
+
{
|
|
116
|
+
type: "skills_catalog",
|
|
117
|
+
runId,
|
|
118
|
+
idemKey: skillsCatalogIdemKey(runId),
|
|
119
|
+
payload: p.catalog.payload,
|
|
120
|
+
},
|
|
121
|
+
]
|
|
122
|
+
: []),
|
|
123
|
+
]);
|
|
124
|
+
if (onSeeded && !(await onSeeded(conversationId)))
|
|
125
|
+
throw new ReplayClaimLost();
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
__decorate([
|
|
129
|
+
Transactional({ propagation: "requires_new" })
|
|
130
|
+
], EvalReplaySeeder.prototype, "seed", null);
|
|
131
|
+
EvalReplaySeeder = __decorate([
|
|
132
|
+
Injectable(),
|
|
133
|
+
__param(0, Inject(KernelDb)),
|
|
134
|
+
__param(1, Inject(EventLog)),
|
|
135
|
+
__param(2, Inject(TransactionHost))
|
|
136
|
+
], EvalReplaySeeder);
|
|
137
|
+
export { EvalReplaySeeder };
|
|
20
138
|
/** 运行不再执行或失去认领时的原因;还能继续为 null。 */
|
|
21
139
|
async function stopReason(db, evalRunId, stillClaimed) {
|
|
22
140
|
const r = await db
|
|
@@ -59,7 +177,7 @@ const ZERO = {
|
|
|
59
177
|
cacheWriteTokens: 0,
|
|
60
178
|
};
|
|
61
179
|
/** 一次运行的工具调用序列、最后的回复、停止原因、用量与步数(基线与候选同一算法)。 */
|
|
62
|
-
function summarize(events, runId) {
|
|
180
|
+
function summarize(events, runId, scope) {
|
|
63
181
|
const toolCalls = [];
|
|
64
182
|
let usage = ZERO;
|
|
65
183
|
let last = null;
|
|
@@ -71,8 +189,14 @@ function summarize(events, runId) {
|
|
|
71
189
|
const p = e.payload;
|
|
72
190
|
steps.add(p.step);
|
|
73
191
|
for (const b of p.content) {
|
|
74
|
-
if (b.type
|
|
192
|
+
if (b.type !== "tool_call")
|
|
193
|
+
continue;
|
|
194
|
+
if (scope === undefined)
|
|
75
195
|
toolCalls.push({ name: b.name, input: b.input });
|
|
196
|
+
else {
|
|
197
|
+
const { name, input } = currentCall(b.name, b.input, scope);
|
|
198
|
+
toolCalls.push({ name, input });
|
|
199
|
+
}
|
|
76
200
|
}
|
|
77
201
|
last = { content: p.content, stopReason: p.stopReason };
|
|
78
202
|
}
|
|
@@ -96,7 +220,9 @@ function summarize(events, runId) {
|
|
|
96
220
|
}
|
|
97
221
|
/** 原运行(快照)的摘要,作为整轮回放的基线。 */
|
|
98
222
|
export function runBaseline(s) {
|
|
99
|
-
|
|
223
|
+
// an rc recording is read in the current tool names, so the diff against a candidate only
|
|
224
|
+
// shows real differences
|
|
225
|
+
return summarize(s.events, s.runId, legacyScopeOf(s));
|
|
100
226
|
}
|
|
101
227
|
/**
|
|
102
228
|
* 删掉一个评测对话(崩溃重跑前清掉上一次的残留):先删它各次运行的 checkpoint,再删对话(事件、运行随之级联删除)。
|
|
@@ -183,81 +309,21 @@ export async function replayRun(d, s, candidate, evalRunId, signal) {
|
|
|
183
309
|
};
|
|
184
310
|
const conversationId = randomUUID();
|
|
185
311
|
const runId = randomUUID();
|
|
186
|
-
await
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
org_id: s.orgId,
|
|
202
|
-
agent_id: s.agentId,
|
|
203
|
-
account_id: accountId,
|
|
204
|
-
last_seq: R - 1,
|
|
205
|
-
consumed_seq: consumed,
|
|
206
|
-
kind: "eval",
|
|
207
|
-
eval_run_id: evalRunId,
|
|
208
|
-
})
|
|
209
|
-
.execute();
|
|
210
|
-
for (let i = 0; i < seeds.length; i += SEED_BATCH) {
|
|
211
|
-
await t
|
|
212
|
-
.insertInto("conversation_events")
|
|
213
|
-
.values(seeds.slice(i, i + SEED_BATCH).map((e) => ({
|
|
214
|
-
conversation_id: conversationId,
|
|
215
|
-
seq: e.seq,
|
|
216
|
-
type: e.type,
|
|
217
|
-
run_id: e.runId,
|
|
218
|
-
idem_key: null,
|
|
219
|
-
payload: JSON.stringify(e.payload),
|
|
220
|
-
created_at: new Date(e.createdAt),
|
|
221
|
-
})))
|
|
222
|
-
.execute();
|
|
223
|
-
}
|
|
224
|
-
await t
|
|
225
|
-
.insertInto("runs")
|
|
226
|
-
.values({
|
|
227
|
-
id: runId,
|
|
228
|
-
conversation_id: conversationId,
|
|
229
|
-
status: "running",
|
|
230
|
-
agent_version: candidate.agentVersion,
|
|
231
|
-
trigger_account_id: accountId,
|
|
232
|
-
trigger_seq: trigger,
|
|
233
|
-
started_at: new Date(),
|
|
234
|
-
})
|
|
235
|
-
.execute();
|
|
236
|
-
await eventLog.append(conversationId, [
|
|
237
|
-
{
|
|
238
|
-
type: "run_started",
|
|
239
|
-
runId,
|
|
240
|
-
idemKey: `run_started:${runId}`,
|
|
241
|
-
payload: {
|
|
242
|
-
agentVersion: candidate.agentVersion,
|
|
243
|
-
model: agent.model,
|
|
244
|
-
triggerAccountId: accountId,
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
...(catalog
|
|
248
|
-
? [
|
|
249
|
-
{
|
|
250
|
-
type: "skills_catalog",
|
|
251
|
-
runId,
|
|
252
|
-
idemKey: skillsCatalogIdemKey(runId),
|
|
253
|
-
payload: catalog.payload,
|
|
254
|
-
},
|
|
255
|
-
]
|
|
256
|
-
: []),
|
|
257
|
-
], t);
|
|
258
|
-
if (d.onSeeded && !(await d.onSeeded(t, conversationId)))
|
|
259
|
-
throw new ReplayClaimLost();
|
|
260
|
-
});
|
|
312
|
+
await d.seeder.seed({
|
|
313
|
+
evalRunId,
|
|
314
|
+
orgId: s.orgId,
|
|
315
|
+
agentId: s.agentId,
|
|
316
|
+
accountId,
|
|
317
|
+
conversationId,
|
|
318
|
+
runId,
|
|
319
|
+
runStartedSeq: R,
|
|
320
|
+
consumed,
|
|
321
|
+
seeds,
|
|
322
|
+
trigger,
|
|
323
|
+
agentVersion: candidate.agentVersion,
|
|
324
|
+
model: agent.model,
|
|
325
|
+
catalog,
|
|
326
|
+
}, d.onSeeded);
|
|
261
327
|
await d.hooks?.afterRunSeeded?.(evalRunId, conversationId);
|
|
262
328
|
// 停止:取消 / 越限 / 熔断 / 失去认领 / 截止时间 → 中止 loop(进行中的请求立即停下,loop 以 aborted 返回)
|
|
263
329
|
const stopper = new AbortController();
|
|
@@ -412,7 +478,7 @@ export async function replayRun(d, s, candidate, evalRunId, signal) {
|
|
|
412
478
|
}
|
|
413
479
|
return out;
|
|
414
480
|
};
|
|
415
|
-
const runtime = d.config().runtime;
|
|
481
|
+
const runtime = d.config.get().runtime;
|
|
416
482
|
const deadline = Date.now() + runtime.maxRunSeconds * 1000;
|
|
417
483
|
let deadlineHit = false;
|
|
418
484
|
const timer = setTimeout(() => {
|
|
@@ -447,13 +513,15 @@ export async function replayRun(d, s, candidate, evalRunId, signal) {
|
|
|
447
513
|
}
|
|
448
514
|
catch (e) {
|
|
449
515
|
const err = e instanceof RunError ? e : new RunError("run.internal", "The run failed unexpectedly");
|
|
450
|
-
await
|
|
516
|
+
await d.runFinish
|
|
517
|
+
.finish({
|
|
451
518
|
conversationId,
|
|
452
519
|
runId,
|
|
453
520
|
status: "failed",
|
|
454
521
|
consumed: null,
|
|
455
522
|
event: { type: "run_failed", payload: { error: { code: err.code, message: err.message } } },
|
|
456
|
-
})
|
|
523
|
+
})
|
|
524
|
+
.catch((x) => d.log.warn("cannot finish eval replay run", { runId, err: x }));
|
|
457
525
|
await Promise.allSettled([...charges]);
|
|
458
526
|
throw crash ?? e;
|
|
459
527
|
}
|
|
@@ -472,7 +540,7 @@ export async function replayRun(d, s, candidate, evalRunId, signal) {
|
|
|
472
540
|
if (outcome.kind === "aborted" && stopped === undefined && signal.aborted)
|
|
473
541
|
stopped = "shutdown";
|
|
474
542
|
const finalConsumed = Math.max(0, ...fed.values(), trigger);
|
|
475
|
-
await
|
|
543
|
+
await d.runFinish.finish({
|
|
476
544
|
conversationId,
|
|
477
545
|
runId,
|
|
478
546
|
status: outcome.kind === "aborted" ? "aborted" : "completed",
|
|
@@ -498,5 +566,11 @@ export async function replayRun(d, s, candidate, evalRunId, signal) {
|
|
|
498
566
|
});
|
|
499
567
|
await Promise.allSettled([...charges]);
|
|
500
568
|
const summary = summarize(await readAll(eventLog, conversationId), runId);
|
|
501
|
-
return {
|
|
569
|
+
return {
|
|
570
|
+
conversationId,
|
|
571
|
+
outcome: outcome.kind,
|
|
572
|
+
...summary,
|
|
573
|
+
unmatched: pipeline.unmatched(),
|
|
574
|
+
...(pipeline.legacyMatches() > 0 && { legacyKeyMatch: true }),
|
|
575
|
+
};
|
|
502
576
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type Principal } from "../identity/principal.js";
|
|
3
3
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type EvalEstimate, type EvalResultLight, type EvalResultView, EvalRunsService, type EvalRunView, type EvalTokenCaps } from "./runs.service.js";
|
|
5
5
|
/** `tokenCap` 只校验类型,范围由服务判定(`eval.token_cap_invalid`)。 */
|
|
6
6
|
declare const EstimateBody: z.ZodObject<{
|
|
7
7
|
mode: z.ZodEnum<{
|
|
@@ -7,13 +7,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { Controller, Get, HttpCode, Inject, Param, Post, Put } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { ModelRef } from "../agents/definition.js";
|
|
13
|
-
import { EVAL_RUNS } from "../http/tokens.js";
|
|
14
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
15
13
|
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
14
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
15
|
+
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
16
16
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
17
|
+
import { EvalRunsService, } from "./runs.service.js";
|
|
17
18
|
const Candidate = z
|
|
18
19
|
.object({
|
|
19
20
|
agentVersion: z.number().int().min(1).optional(),
|
|
@@ -63,6 +64,14 @@ function candidateOf(c) {
|
|
|
63
64
|
...(c.instructions !== undefined && { instructions: c.instructions }),
|
|
64
65
|
};
|
|
65
66
|
}
|
|
67
|
+
class EstimateBodyDto extends createZodDto(EstimateBody, "EvalRunEstimateBody") {
|
|
68
|
+
}
|
|
69
|
+
class StartBodyDto extends createZodDto(StartBody, "EvalRunStartBody") {
|
|
70
|
+
}
|
|
71
|
+
class ResultsQueryDto extends createZodDto(ResultsQuery, "EvalRunResultsQuery") {
|
|
72
|
+
}
|
|
73
|
+
class LabelBodyDto extends createZodDto(LabelBody, "EvalRunLabelBody") {
|
|
74
|
+
}
|
|
66
75
|
/**
|
|
67
76
|
* 评测运行(`/api/v1/orgs/:orgId/eval-sets/:setId/runs`、`/api/v1/orgs/:orgId/eval-runs/:runId[/results[/:resultId]]`)与
|
|
68
77
|
* 结果的人工标注(`/api/v1/orgs/:orgId/eval-results/:resultId/label`):
|
|
@@ -136,7 +145,7 @@ __decorate([
|
|
|
136
145
|
__param(0, CurrentPrincipal()),
|
|
137
146
|
__param(1, CurrentOrg()),
|
|
138
147
|
__param(2, Param("setId")),
|
|
139
|
-
__param(3,
|
|
148
|
+
__param(3, ZBody(EstimateBodyDto))
|
|
140
149
|
], EvalRunsController.prototype, "estimate", null);
|
|
141
150
|
__decorate([
|
|
142
151
|
Post("eval-sets/:setId/runs"),
|
|
@@ -144,7 +153,7 @@ __decorate([
|
|
|
144
153
|
__param(0, CurrentPrincipal()),
|
|
145
154
|
__param(1, CurrentOrg()),
|
|
146
155
|
__param(2, Param("setId")),
|
|
147
|
-
__param(3,
|
|
156
|
+
__param(3, ZBody(StartBodyDto))
|
|
148
157
|
], EvalRunsController.prototype, "start", null);
|
|
149
158
|
__decorate([
|
|
150
159
|
Get("eval-sets/:setId/runs"),
|
|
@@ -166,7 +175,7 @@ __decorate([
|
|
|
166
175
|
__param(0, CurrentPrincipal()),
|
|
167
176
|
__param(1, CurrentOrg()),
|
|
168
177
|
__param(2, Param("runId")),
|
|
169
|
-
__param(3,
|
|
178
|
+
__param(3, ZQuery(ResultsQueryDto))
|
|
170
179
|
], EvalRunsController.prototype, "results", null);
|
|
171
180
|
__decorate([
|
|
172
181
|
Get("eval-runs/:runId/results/:resultId"),
|
|
@@ -190,10 +199,10 @@ __decorate([
|
|
|
190
199
|
__param(0, CurrentPrincipal()),
|
|
191
200
|
__param(1, CurrentOrg()),
|
|
192
201
|
__param(2, Param("resultId")),
|
|
193
|
-
__param(3,
|
|
202
|
+
__param(3, ZBody(LabelBodyDto))
|
|
194
203
|
], EvalRunsController.prototype, "label", null);
|
|
195
204
|
EvalRunsController = __decorate([
|
|
196
205
|
Controller("api/v1/orgs/:orgId"),
|
|
197
|
-
__param(0, Inject(
|
|
206
|
+
__param(0, Inject(EvalRunsService))
|
|
198
207
|
], EvalRunsController);
|
|
199
208
|
export { EvalRunsController };
|
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import type { Logger } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import type { Redis } from "ioredis";
|
|
3
1
|
import { type AgentDefinition } from "../agents/definition.js";
|
|
4
|
-
import type { KernelConfig } from "../config/schema.js";
|
|
5
2
|
import { type Selection } from "../conversations/selection.js";
|
|
6
|
-
import type { EvalResultStatus, EvalRunStatus, JudgeStatus,
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
3
|
+
import type { EvalResultStatus, EvalRunStatus, JudgeStatus, KernelSchemaDb } from "../db/kernel-schema.js";
|
|
4
|
+
import { SettingsService } from "../identity/settings.js";
|
|
5
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
6
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
7
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
8
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
9
|
+
import { PricesService } from "../models/prices.js";
|
|
10
|
+
import { ModelPurposesService } from "../models/purposes.js";
|
|
11
|
+
import { OrgLock } from "../orgs/org-lock.js";
|
|
12
|
+
import { ProviderRegistry } from "../runtime/providers.js";
|
|
13
|
+
import { EvalBudget } from "./budget.js";
|
|
14
|
+
import { EvalJobs } from "./jobs.js";
|
|
11
15
|
import type { CaseSnapshot } from "./snapshot.js";
|
|
12
16
|
import { type EvalCandidate } from "./step-replay.js";
|
|
17
|
+
export { EVAL_QUEUE_NAME, type EvalJobData, evalJobId } from "./jobs.js";
|
|
13
18
|
export type { EvalCandidate, EvalResultStatus, EvalRunStatus };
|
|
14
|
-
/** 评测队列的 BullMQ 队列名(不含 `:`,C7)。 */
|
|
15
|
-
export declare const EVAL_QUEUE_NAME = "cap-kernel-evals";
|
|
16
|
-
/** 每个用例一个任务(C7;不含 `:`)。 */
|
|
17
|
-
export declare const evalJobId: (runId: string, caseId: string) => string;
|
|
18
|
-
/** 评测任务的数据。 */
|
|
19
|
-
export interface EvalJobData {
|
|
20
|
-
runId: string;
|
|
21
|
-
caseId: string;
|
|
22
|
-
orgId: string;
|
|
23
|
-
}
|
|
24
19
|
/** 运行前的估算(D5:运行前显示预计请求数)。 */
|
|
25
20
|
export interface EvalEstimate {
|
|
26
21
|
cases: number;
|
|
@@ -126,54 +121,31 @@ export interface EvalResultView {
|
|
|
126
121
|
labeledBy: string | null;
|
|
127
122
|
labeledAt: string | null;
|
|
128
123
|
}
|
|
129
|
-
/** 评测队列(生产方):懒建连接;`close()` 关闭。 */
|
|
130
|
-
export declare class EvalQueue {
|
|
131
|
-
private readonly redisUrl;
|
|
132
|
-
private readonly log;
|
|
133
|
-
private queue;
|
|
134
|
-
private conn;
|
|
135
|
-
private closed;
|
|
136
|
-
constructor(redisUrl: string, log: Pick<Logger, "error">);
|
|
137
|
-
private get;
|
|
138
|
-
enqueue(jobs: EvalJobData[]): Promise<void>;
|
|
139
|
-
close(): Promise<void>;
|
|
140
|
-
}
|
|
141
124
|
/**
|
|
142
125
|
* 用例的原版本与定义:快照里的;快照缺(较早的快照)时查 `agent_versions`。The definition is the
|
|
143
126
|
* one the run used: with the person's model / effort switch in effect at its `run_started`
|
|
144
127
|
* applied (UI refresh B, `selectionAt`), which is also returned as `selection`.
|
|
145
128
|
*/
|
|
146
|
-
export declare function caseBase(db:
|
|
129
|
+
export declare function caseBase(db: KernelSchemaDb, s: CaseSnapshot): Promise<{
|
|
147
130
|
definition: AgentDefinition;
|
|
148
131
|
agentVersion: number;
|
|
149
132
|
selection: Selection;
|
|
150
133
|
} | null>;
|
|
151
134
|
/** 候选 agent 版本的定义(没给版本 → undefined)。 */
|
|
152
|
-
export declare function versionDefinition(db:
|
|
135
|
+
export declare function versionDefinition(db: KernelSchemaDb, agentId: string, version: number | undefined): Promise<AgentDefinition | undefined>;
|
|
153
136
|
/**
|
|
154
137
|
* 轻量列表的 `asOf`:本次读取时数据库的当前时间往前留的余量(毫秒)。下一次轮询以它为 `updatedSince`:
|
|
155
138
|
* 写结果的事务在读取之前开始、之后才提交时,`updated_at` 早于读取时间,留出余量才不会漏掉;重复的行由调用方按 id 合并。
|
|
156
139
|
*/
|
|
157
140
|
export declare const RESULTS_ASOF_OVERLAP_MS = 15000;
|
|
158
|
-
export interface EvalRunsDeps {
|
|
159
|
-
db: KernelDb;
|
|
160
|
-
/** 查看结果审计的去重(`SET NX EX`);不给时每次查看都写审计。 */
|
|
161
|
-
redis?: Pick<Redis, "set">;
|
|
162
|
-
config: () => KernelConfig;
|
|
163
|
-
registry: Pick<ProviderRegistry, "resolve">;
|
|
164
|
-
prices: Pick<PricesService, "table">;
|
|
165
|
-
settings: Pick<SettingsService, "get">;
|
|
166
|
-
queue: Pick<EvalQueue, "enqueue">;
|
|
167
|
-
/** 模型用途映射:开评委时 `eval` 用途必须已映射(否则 `model.unconfigured`);估算按它给评委定价。 */
|
|
168
|
-
purposes: Pick<ModelPurposesService, "resolve">;
|
|
169
|
-
}
|
|
170
141
|
/**
|
|
171
142
|
* 评测运行(D5、C7):估算、启动(校验候选、预建结果、每个用例入队一个任务)、查看、结果分页、取消。
|
|
172
143
|
* 执行在 `evals/worker.ts`。写操作在事务里锁组织行并复核角色(`evals.manage`)。
|
|
173
144
|
*/
|
|
174
145
|
export declare class EvalRunsService {
|
|
146
|
+
readonly txHost: TransactionHost;
|
|
175
147
|
private readonly d;
|
|
176
|
-
constructor(
|
|
148
|
+
constructor(kdb: KernelDb, orgLock: OrgLock, locks: LockService, config: KernelConfigService, registry: ProviderRegistry, prices: PricesService, settings: SettingsService, queue: EvalJobs, budget: EvalBudget, purposes: ModelPurposesService, txHost: TransactionHost);
|
|
177
149
|
private liveSet;
|
|
178
150
|
/**
|
|
179
151
|
* 解析模型;不存在 / 不可用 → `eval.candidate_invalid`(供应商列表暂时失败照常抛出)。
|
|
@@ -223,6 +195,10 @@ export declare class EvalRunsService {
|
|
|
223
195
|
judge: boolean;
|
|
224
196
|
tokenCap?: number;
|
|
225
197
|
}, actorTokenId?: string): Promise<EvalRunView>;
|
|
198
|
+
/** The run row and its pending results, in a transaction of their own (enqueued after the commit). */
|
|
199
|
+
private startIn;
|
|
200
|
+
/** The enqueue failed: the run is `failed`, its pending results `skipped`. */
|
|
201
|
+
private failStartIn;
|
|
226
202
|
/** 各运行的汇总(只算已结束的)。 */
|
|
227
203
|
private summaries;
|
|
228
204
|
private static toView;
|
|
@@ -272,4 +248,6 @@ export declare class EvalRunsService {
|
|
|
272
248
|
label: "pass" | "fail" | null;
|
|
273
249
|
note?: string;
|
|
274
250
|
}, actorTokenId?: string): Promise<EvalResultView>;
|
|
251
|
+
private cancelIn;
|
|
252
|
+
private labelIn;
|
|
275
253
|
}
|