voratiq 0.1.0-beta.2 → 0.1.0-beta.21
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/README.md +41 -29
- package/dist/agents/launch/chat.d.ts +23 -0
- package/dist/agents/launch/chat.js +44 -0
- package/dist/agents/launch/environment.d.ts +8 -0
- package/dist/{commands/run/agents/workspace-prep.js → agents/launch/environment.js} +5 -27
- package/dist/agents/launch/prompt.d.ts +6 -0
- package/dist/agents/launch/prompt.js +12 -0
- package/dist/agents/launch/provider-state.d.ts +39 -0
- package/dist/agents/launch/provider-state.js +103 -0
- package/dist/agents/runtime/auth.d.ts +27 -0
- package/dist/agents/runtime/auth.js +72 -0
- package/dist/agents/runtime/chat.d.ts +5 -0
- package/dist/agents/runtime/chat.js +7 -0
- package/dist/agents/runtime/errors.d.ts +27 -0
- package/dist/agents/runtime/errors.js +51 -0
- package/dist/{commands/run/agents → agents/runtime}/failures.d.ts +0 -1
- package/dist/agents/runtime/failures.js +136 -0
- package/dist/agents/runtime/harness.d.ts +2 -0
- package/dist/agents/runtime/harness.js +119 -0
- package/dist/{commands/run/agents/sandbox-launcher.d.ts → agents/runtime/launcher.d.ts} +18 -6
- package/dist/{commands/run/agents/sandbox-launcher.js → agents/runtime/launcher.js} +17 -39
- package/dist/{commands/run/agents/workspace-prep.d.ts → agents/runtime/manifest.d.ts} +6 -6
- package/dist/agents/runtime/manifest.js +34 -0
- package/dist/agents/runtime/policy.d.ts +32 -0
- package/dist/agents/runtime/policy.js +240 -0
- package/dist/agents/runtime/registry.d.ts +4 -0
- package/dist/agents/runtime/registry.js +54 -0
- package/dist/{commands/run → agents/runtime}/sandbox.d.ts +8 -2
- package/dist/{commands/run → agents/runtime}/sandbox.js +28 -67
- package/dist/agents/runtime/shim/run-agent-shim.d.ts +1 -0
- package/dist/agents/runtime/shim/run-agent-shim.js +276 -0
- package/dist/agents/runtime/types.d.ts +91 -0
- package/dist/{commands/run/agents → agents/runtime}/watchdog.d.ts +4 -3
- package/dist/{commands/run/agents → agents/runtime}/watchdog.js +155 -26
- package/dist/auth/providers/codex.js +7 -2
- package/dist/auth/providers/gemini.js +14 -6
- package/dist/auth/providers/types.d.ts +1 -0
- package/dist/auth/providers/utils.d.ts +0 -1
- package/dist/auth/providers/utils.js +1 -49
- package/dist/bin.js +369 -71
- package/dist/cli/apply.d.ts +4 -0
- package/dist/cli/apply.js +28 -9
- package/dist/cli/auto.d.ts +32 -0
- package/dist/cli/auto.js +232 -0
- package/dist/cli/contract.d.ts +328 -0
- package/dist/cli/contract.js +480 -0
- package/dist/cli/errors.d.ts +3 -0
- package/dist/cli/errors.js +21 -3
- package/dist/cli/init.d.ts +5 -0
- package/dist/cli/init.js +34 -6
- package/dist/cli/list.d.ts +6 -4
- package/dist/cli/list.js +39 -16
- package/dist/cli/mcp.d.ts +2 -0
- package/dist/cli/mcp.js +16 -0
- package/dist/cli/message.d.ts +28 -0
- package/dist/cli/message.js +147 -0
- package/dist/cli/operator-envelope.d.ts +180 -0
- package/dist/cli/operator-envelope.js +425 -0
- package/dist/cli/output.d.ts +15 -1
- package/dist/cli/output.js +153 -5
- package/dist/cli/prune.d.ts +7 -3
- package/dist/cli/prune.js +57 -12
- package/dist/cli/reduce.d.ts +29 -0
- package/dist/cli/reduce.js +211 -0
- package/dist/cli/root-launcher.d.ts +4 -0
- package/dist/cli/root-launcher.js +15 -0
- package/dist/cli/run.d.ts +27 -1
- package/dist/cli/run.js +108 -16
- package/dist/cli/spec.d.ts +31 -0
- package/dist/cli/spec.js +180 -0
- package/dist/cli/verify.d.ts +35 -0
- package/dist/cli/verify.js +297 -0
- package/dist/commands/apply/command.d.ts +2 -0
- package/dist/commands/apply/command.js +145 -6
- package/dist/commands/apply/errors.d.ts +43 -4
- package/dist/commands/apply/errors.js +100 -22
- package/dist/commands/apply/types.d.ts +2 -1
- package/dist/commands/auto/command.d.ts +145 -0
- package/dist/commands/auto/command.js +433 -0
- package/dist/commands/auto/errors.d.ts +19 -0
- package/dist/commands/auto/errors.js +19 -0
- package/dist/commands/auto/validation.d.ts +14 -0
- package/dist/commands/auto/validation.js +90 -0
- package/dist/commands/fetch.d.ts +2 -2
- package/dist/commands/fetch.js +4 -4
- package/dist/commands/init/agents.d.ts +2 -1
- package/dist/commands/init/agents.js +66 -63
- package/dist/commands/init/command.js +300 -16
- package/dist/commands/init/types.d.ts +18 -7
- package/dist/commands/interactive/lifecycle.d.ts +15 -0
- package/dist/commands/interactive/lifecycle.js +141 -0
- package/dist/commands/list/command.d.ts +10 -3
- package/dist/commands/list/command.js +597 -40
- package/dist/commands/message/command.d.ts +23 -0
- package/dist/commands/message/command.js +215 -0
- package/dist/commands/message/errors.d.ts +9 -0
- package/dist/commands/message/errors.js +20 -0
- package/dist/commands/message/lifecycle.d.ts +14 -0
- package/dist/commands/message/lifecycle.js +128 -0
- package/dist/commands/prune/command.d.ts +2 -1
- package/dist/commands/prune/command.js +61 -10
- package/dist/commands/prune/errors.d.ts +1 -1
- package/dist/commands/prune/errors.js +5 -5
- package/dist/commands/prune/types.d.ts +21 -0
- package/dist/commands/reduce/command.d.ts +26 -0
- package/dist/commands/reduce/command.js +145 -0
- package/dist/commands/reduce/errors.d.ts +17 -0
- package/dist/commands/reduce/errors.js +32 -0
- package/dist/commands/reduce/targets.d.ts +11 -0
- package/dist/commands/reduce/targets.js +271 -0
- package/dist/commands/root-launcher/command.d.ts +31 -0
- package/dist/commands/root-launcher/command.js +233 -0
- package/dist/commands/run/command.d.ts +6 -1
- package/dist/commands/run/command.js +70 -40
- package/dist/commands/run/lifecycle.d.ts +7 -5
- package/dist/commands/run/lifecycle.js +45 -23
- package/dist/commands/run/record-init.d.ts +4 -1
- package/dist/commands/run/record-init.js +5 -2
- package/dist/commands/run/shim/run-agent-shim.d.ts +2 -1
- package/dist/commands/run/shim/run-agent-shim.js +4 -219
- package/dist/commands/run/validation.d.ts +2 -3
- package/dist/commands/run/validation.js +54 -25
- package/dist/commands/shared/max-parallel.d.ts +5 -0
- package/dist/commands/shared/max-parallel.js +15 -0
- package/dist/commands/shared/preview.d.ts +10 -0
- package/dist/commands/shared/preview.js +60 -0
- package/dist/commands/shared/resolve-reduction-competitors.d.ts +15 -0
- package/dist/commands/shared/resolve-reduction-competitors.js +13 -0
- package/dist/commands/shared/resolve-stage-competitors.d.ts +19 -0
- package/dist/commands/shared/resolve-stage-competitors.js +171 -0
- package/dist/commands/shared/session-id.d.ts +1 -0
- package/dist/commands/shared/session-id.js +1 -0
- package/dist/commands/spec/command.d.ts +22 -0
- package/dist/commands/spec/command.js +330 -0
- package/dist/commands/spec/errors.d.ts +11 -0
- package/dist/commands/spec/errors.js +23 -0
- package/dist/commands/verify/agents.d.ts +8 -0
- package/dist/commands/verify/agents.js +29 -0
- package/dist/commands/verify/command.d.ts +23 -0
- package/dist/commands/verify/command.js +168 -0
- package/dist/commands/verify/lifecycle.d.ts +14 -0
- package/dist/commands/verify/lifecycle.js +229 -0
- package/dist/commands/verify/max-parallel.d.ts +7 -0
- package/dist/commands/verify/max-parallel.js +15 -0
- package/dist/commands/verify/targets.d.ts +18 -0
- package/dist/commands/verify/targets.js +420 -0
- package/dist/competition/command-adapter.d.ts +35 -0
- package/dist/competition/command-adapter.js +20 -0
- package/dist/competition/core.d.ts +41 -0
- package/dist/competition/core.js +181 -0
- package/dist/competition/shared/extra-context.d.ts +14 -0
- package/dist/competition/shared/extra-context.js +100 -0
- package/dist/competition/shared/preflight.d.ts +11 -0
- package/dist/competition/shared/preflight.js +39 -0
- package/dist/competition/shared/prompt-helpers.d.ts +16 -0
- package/dist/competition/shared/prompt-helpers.js +27 -0
- package/dist/competition/shared/prune.d.ts +1 -0
- package/dist/competition/shared/prune.js +4 -0
- package/dist/competition/shared/sandbox-policy.d.ts +9 -0
- package/dist/competition/shared/sandbox-policy.js +7 -0
- package/dist/competition/shared/teardown.d.ts +36 -0
- package/dist/competition/shared/teardown.js +101 -0
- package/dist/configs/agents/defaults.d.ts +31 -2
- package/dist/configs/agents/defaults.js +346 -30
- package/dist/configs/agents/errors.js +14 -11
- package/dist/configs/agents/loader.d.ts +11 -1
- package/dist/configs/agents/loader.js +71 -4
- package/dist/configs/agents/types.js +2 -2
- package/dist/configs/environment/detect.js +9 -4
- package/dist/configs/environment/errors.js +4 -4
- package/dist/configs/environment/loader.d.ts +1 -1
- package/dist/configs/environment/loader.js +3 -3
- package/dist/configs/orchestration/bootstrap.d.ts +16 -0
- package/dist/configs/orchestration/bootstrap.js +122 -0
- package/dist/configs/orchestration/errors.d.ts +15 -0
- package/dist/configs/orchestration/errors.js +28 -0
- package/dist/configs/orchestration/loader.d.ts +9 -0
- package/dist/configs/orchestration/loader.js +148 -0
- package/dist/configs/orchestration/types.d.ts +102 -0
- package/dist/configs/orchestration/types.js +65 -0
- package/dist/configs/sandbox/defaults.js +14 -4
- package/dist/configs/sandbox/errors.d.ts +1 -1
- package/dist/configs/sandbox/errors.js +1 -1
- package/dist/configs/sandbox/loader.js +6 -4
- package/dist/configs/sandbox/schemas.js +4 -2
- package/dist/configs/settings/loader.d.ts +7 -0
- package/dist/configs/settings/loader.js +81 -0
- package/dist/configs/settings/types.d.ts +47 -0
- package/dist/configs/settings/types.js +23 -0
- package/dist/configs/verification/errors.d.ts +11 -0
- package/dist/configs/verification/errors.js +21 -0
- package/dist/configs/verification/loader.d.ts +8 -0
- package/dist/configs/verification/loader.js +43 -0
- package/dist/configs/verification/methods.d.ts +35 -0
- package/dist/configs/verification/methods.js +41 -0
- package/dist/configs/verification/programmatic-defaults.d.ts +10 -0
- package/dist/configs/verification/programmatic-defaults.js +42 -0
- package/dist/configs/verification/programmatic-detect.d.ts +10 -0
- package/dist/configs/{evals/detect.js → verification/programmatic-detect.js} +22 -33
- package/dist/configs/verification/types.d.ts +49 -0
- package/dist/configs/verification/types.js +45 -0
- package/dist/contracts/list.d.ts +207 -0
- package/dist/contracts/list.js +154 -0
- package/dist/domain/interactive/model/types.d.ts +104 -0
- package/dist/domain/interactive/model/types.js +83 -0
- package/dist/domain/interactive/persistence/adapter.d.ts +39 -0
- package/dist/domain/interactive/persistence/adapter.js +144 -0
- package/dist/domain/interactive/prompt.d.ts +3 -0
- package/dist/domain/interactive/prompt.js +7 -0
- package/dist/domain/message/competition/adapter.d.ts +36 -0
- package/dist/domain/message/competition/adapter.js +197 -0
- package/dist/domain/message/competition/prompt.d.ts +8 -0
- package/dist/domain/message/competition/prompt.js +29 -0
- package/dist/domain/message/model/mutators.d.ts +17 -0
- package/dist/domain/message/model/mutators.js +107 -0
- package/dist/domain/message/model/types.d.ts +100 -0
- package/dist/domain/message/model/types.js +87 -0
- package/dist/domain/message/persistence/adapter.d.ts +43 -0
- package/dist/domain/message/persistence/adapter.js +124 -0
- package/dist/domain/reduce/competition/adapter.d.ts +42 -0
- package/dist/domain/reduce/competition/adapter.js +826 -0
- package/dist/domain/reduce/competition/output-validation.d.ts +4 -0
- package/dist/domain/reduce/competition/output-validation.js +18 -0
- package/dist/domain/reduce/competition/prompt.d.ts +10 -0
- package/dist/domain/reduce/competition/prompt.js +96 -0
- package/dist/domain/reduce/competition/reduction.d.ts +9 -0
- package/dist/domain/reduce/competition/reduction.js +32 -0
- package/dist/domain/reduce/model/types.d.ts +122 -0
- package/dist/domain/reduce/model/types.js +84 -0
- package/dist/domain/reduce/persistence/adapter.d.ts +43 -0
- package/dist/domain/reduce/persistence/adapter.js +126 -0
- package/dist/domain/run/competition/adapter.d.ts +30 -0
- package/dist/domain/run/competition/adapter.js +39 -0
- package/dist/domain/run/competition/agent-execution.d.ts +20 -0
- package/dist/domain/run/competition/agent-execution.js +45 -0
- package/dist/domain/run/competition/agent-preparation.d.ts +12 -0
- package/dist/domain/run/competition/agent-preparation.js +24 -0
- package/dist/domain/run/competition/agents/artifacts.d.ts +17 -0
- package/dist/domain/run/competition/agents/artifacts.js +173 -0
- package/dist/{commands/run → domain/run/competition}/agents/lifecycle.d.ts +3 -3
- package/dist/{commands/run → domain/run/competition}/agents/lifecycle.js +84 -64
- package/dist/domain/run/competition/agents/post-processing.d.ts +12 -0
- package/dist/domain/run/competition/agents/post-processing.js +4 -0
- package/dist/domain/run/competition/agents/preparation.js +64 -0
- package/dist/{commands/run → domain/run/competition}/agents/run-context.d.ts +9 -16
- package/dist/{commands/run → domain/run/competition}/agents/run-context.js +22 -70
- package/dist/{commands/run → domain/run/competition}/agents/types.d.ts +10 -13
- package/dist/domain/run/competition/agents/workspace.d.ts +21 -0
- package/dist/domain/run/competition/agents/workspace.js +47 -0
- package/dist/{commands/run → domain/run/competition}/errors.d.ts +8 -1
- package/dist/{commands/run → domain/run/competition}/errors.js +39 -9
- package/dist/{commands/run → domain/run/competition}/phases.d.ts +1 -2
- package/dist/domain/run/competition/phases.js +1 -0
- package/dist/domain/run/competition/prompt.d.ts +7 -0
- package/dist/domain/run/competition/prompt.js +27 -0
- package/dist/{commands/run → domain/run/competition}/reports.d.ts +5 -3
- package/dist/{commands/run → domain/run/competition}/reports.js +7 -19
- package/dist/domain/run/competition/termination-state.d.ts +4 -0
- package/dist/domain/run/competition/termination-state.js +12 -0
- package/dist/{records → domain/run/model}/enhanced.d.ts +6 -7
- package/dist/{records → domain/run/model}/enhanced.js +11 -11
- package/dist/{records → domain/run/model}/errors.d.ts +1 -1
- package/dist/{records → domain/run/model}/errors.js +5 -5
- package/dist/{records → domain/run/model}/mutators.d.ts +4 -3
- package/dist/{records → domain/run/model}/mutators.js +58 -36
- package/dist/domain/run/model/types.d.ts +376 -0
- package/dist/domain/run/model/types.js +192 -0
- package/dist/{records/persistence.d.ts → domain/run/persistence/adapter.d.ts} +9 -3
- package/dist/domain/run/persistence/adapter.js +340 -0
- package/dist/domain/run/persistence/error-mapping.d.ts +2 -0
- package/dist/domain/run/persistence/error-mapping.js +17 -0
- package/dist/domain/shared/lifecycle.d.ts +54 -0
- package/dist/domain/shared/lifecycle.js +165 -0
- package/dist/domain/shared/token-usage.d.ts +21 -0
- package/dist/domain/shared/token-usage.js +38 -0
- package/dist/domain/spec/competition/adapter.d.ts +31 -0
- package/dist/domain/spec/competition/adapter.js +196 -0
- package/dist/domain/spec/competition/prompt.d.ts +11 -0
- package/dist/domain/spec/competition/prompt.js +44 -0
- package/dist/domain/spec/model/output.d.ts +13 -0
- package/dist/domain/spec/model/output.js +36 -0
- package/dist/domain/spec/model/types.d.ts +98 -0
- package/dist/domain/spec/model/types.js +84 -0
- package/dist/domain/spec/persistence/adapter.d.ts +51 -0
- package/dist/domain/spec/persistence/adapter.js +140 -0
- package/dist/domain/verify/blinding/aliases.d.ts +7 -0
- package/dist/domain/verify/blinding/aliases.js +23 -0
- package/dist/domain/verify/competition/adapter.d.ts +54 -0
- package/dist/domain/verify/competition/adapter.js +444 -0
- package/dist/domain/verify/competition/artifacts.d.ts +6 -0
- package/dist/domain/verify/competition/artifacts.js +7 -0
- package/dist/domain/verify/competition/blinding.d.ts +24 -0
- package/dist/domain/verify/competition/blinding.js +109 -0
- package/dist/domain/verify/competition/finalize.d.ts +11 -0
- package/dist/domain/verify/competition/finalize.js +65 -0
- package/dist/domain/verify/competition/programmatic.d.ts +15 -0
- package/dist/domain/verify/competition/programmatic.js +352 -0
- package/dist/domain/verify/competition/prompt.d.ts +19 -0
- package/dist/domain/verify/competition/prompt.js +63 -0
- package/dist/domain/verify/competition/rubric.d.ts +23 -0
- package/dist/domain/verify/competition/rubric.js +77 -0
- package/dist/domain/verify/competition/shared-layout.d.ts +121 -0
- package/dist/domain/verify/competition/shared-layout.js +365 -0
- package/dist/domain/verify/competition/target.d.ts +47 -0
- package/dist/domain/verify/competition/target.js +1 -0
- package/dist/domain/verify/model/mutators.d.ts +16 -0
- package/dist/domain/verify/model/mutators.js +126 -0
- package/dist/domain/verify/model/types.d.ts +408 -0
- package/dist/domain/verify/model/types.js +289 -0
- package/dist/domain/verify/persistence/adapter.d.ts +43 -0
- package/dist/domain/verify/persistence/adapter.js +126 -0
- package/dist/domain/verify/programmatic/runner.d.ts +22 -0
- package/dist/domain/verify/programmatic/runner.js +209 -0
- package/dist/domain/verify/rubric-result.d.ts +28 -0
- package/dist/domain/verify/rubric-result.js +121 -0
- package/dist/extra-context/contract.d.ts +17 -0
- package/dist/extra-context/contract.js +60 -0
- package/dist/interactive/index.d.ts +2 -0
- package/dist/interactive/index.js +1 -0
- package/dist/interactive/providers/launch.d.ts +23 -0
- package/dist/interactive/providers/launch.js +203 -0
- package/dist/interactive/providers/mcp.d.ts +13 -0
- package/dist/interactive/providers/mcp.js +547 -0
- package/dist/interactive/providers/shared.d.ts +2 -0
- package/dist/interactive/providers/shared.js +1 -0
- package/dist/interactive/providers.d.ts +3 -0
- package/dist/interactive/providers.js +3 -0
- package/dist/interactive/records.d.ts +2 -0
- package/dist/interactive/records.js +1 -0
- package/dist/interactive/substrate.d.ts +21 -0
- package/dist/interactive/substrate.js +522 -0
- package/dist/interactive/types.d.ts +101 -0
- package/dist/interactive/types.js +1 -0
- package/dist/mcp/server.d.ts +88 -0
- package/dist/mcp/server.js +790 -0
- package/dist/persistence/error-mapping.d.ts +19 -0
- package/dist/persistence/error-mapping.js +44 -0
- package/dist/persistence/errors.d.ts +26 -0
- package/dist/persistence/errors.js +49 -0
- package/dist/persistence/extra-context.d.ts +9 -0
- package/dist/persistence/extra-context.js +60 -0
- package/dist/{records → persistence}/history-lock.js +2 -2
- package/dist/persistence/record-path-schema.d.ts +3 -0
- package/dist/persistence/record-path-schema.js +16 -0
- package/dist/persistence/session-store.d.ts +92 -0
- package/dist/persistence/session-store.js +412 -0
- package/dist/policy/auto.d.ts +13 -0
- package/dist/policy/auto.js +22 -0
- package/dist/policy/index.d.ts +5 -0
- package/dist/policy/index.js +5 -0
- package/dist/policy/resolution.d.ts +6 -0
- package/dist/policy/resolution.js +23 -0
- package/dist/policy/result.d.ts +53 -0
- package/dist/policy/result.js +15 -0
- package/dist/policy/selector.d.ts +11 -0
- package/dist/policy/selector.js +57 -0
- package/dist/policy/verification.d.ts +77 -0
- package/dist/policy/verification.js +365 -0
- package/dist/policy/verifier-selection.d.ts +13 -0
- package/dist/policy/verifier-selection.js +78 -0
- package/dist/preflight/branch.d.ts +9 -0
- package/dist/preflight/branch.js +48 -0
- package/dist/preflight/errors.d.ts +3 -0
- package/dist/preflight/errors.js +10 -3
- package/dist/preflight/index.d.ts +13 -0
- package/dist/preflight/index.js +43 -8
- package/dist/render/interactions/confirmation.js +4 -2
- package/dist/render/transcripts/apply.js +9 -10
- package/dist/render/transcripts/auto.d.ts +27 -0
- package/dist/render/transcripts/auto.js +21 -0
- package/dist/render/transcripts/init.d.ts +4 -15
- package/dist/render/transcripts/init.js +71 -72
- package/dist/render/transcripts/list.d.ts +10 -1
- package/dist/render/transcripts/list.js +121 -15
- package/dist/render/transcripts/message.d.ts +72 -0
- package/dist/render/transcripts/message.js +362 -0
- package/dist/render/transcripts/prune.d.ts +7 -2
- package/dist/render/transcripts/prune.js +64 -17
- package/dist/render/transcripts/reduce.d.ts +74 -0
- package/dist/render/transcripts/reduce.js +395 -0
- package/dist/render/transcripts/root-launcher.d.ts +19 -0
- package/dist/render/transcripts/root-launcher.js +40 -0
- package/dist/render/transcripts/run.d.ts +35 -6
- package/dist/render/transcripts/run.js +241 -165
- package/dist/render/transcripts/shared.d.ts +2 -0
- package/dist/render/transcripts/shared.js +11 -4
- package/dist/render/transcripts/spec.d.ts +74 -0
- package/dist/render/transcripts/spec.js +394 -0
- package/dist/render/transcripts/stage-progress.d.ts +22 -0
- package/dist/render/transcripts/stage-progress.js +6 -0
- package/dist/render/transcripts/update-check.d.ts +2 -0
- package/dist/render/transcripts/update-check.js +22 -0
- package/dist/render/transcripts/verify.d.ts +74 -0
- package/dist/render/transcripts/verify.js +409 -0
- package/dist/render/utils/agents.d.ts +10 -9
- package/dist/render/utils/agents.js +30 -82
- package/dist/render/utils/badges.d.ts +3 -20
- package/dist/render/utils/badges.js +3 -36
- package/dist/render/utils/duration.d.ts +12 -0
- package/dist/render/utils/duration.js +37 -0
- package/dist/render/utils/interactive-frame.d.ts +6 -0
- package/dist/render/utils/interactive-frame.js +38 -0
- package/dist/render/utils/records.js +4 -4
- package/dist/render/utils/runs.d.ts +3 -9
- package/dist/render/utils/runs.js +16 -48
- package/dist/render/utils/stage-output.d.ts +20 -0
- package/dist/render/utils/stage-output.js +44 -0
- package/dist/render/utils/timezone.d.ts +2 -0
- package/dist/render/utils/timezone.js +42 -0
- package/dist/render/utils/transcript-shell.d.ts +66 -0
- package/dist/render/utils/transcript-shell.js +155 -0
- package/dist/render/utils/transcript.d.ts +7 -1
- package/dist/render/utils/transcript.js +12 -2
- package/dist/render/utils/wrap.d.ts +1 -0
- package/dist/render/utils/wrap.js +20 -0
- package/dist/status/colors.d.ts +2 -3
- package/dist/status/colors.js +3 -3
- package/dist/status/index.d.ts +108 -8
- package/dist/status/index.js +164 -5
- package/dist/update-check/checker.d.ts +24 -0
- package/dist/update-check/checker.js +130 -0
- package/dist/update-check/prompt.d.ts +25 -0
- package/dist/update-check/prompt.js +62 -0
- package/dist/update-check/semver.d.ts +17 -0
- package/dist/update-check/semver.js +36 -0
- package/dist/update-check/state-path.d.ts +8 -0
- package/dist/update-check/state-path.js +18 -0
- package/dist/utils/binaries.js +14 -8
- package/dist/utils/errors.d.ts +3 -1
- package/dist/utils/errors.js +3 -1
- package/dist/utils/git.d.ts +10 -0
- package/dist/utils/git.js +15 -3
- package/dist/utils/output.d.ts +5 -1
- package/dist/utils/output.js +4 -2
- package/dist/utils/process.d.ts +2 -1
- package/dist/utils/process.js +7 -3
- package/dist/utils/session-id.d.ts +1 -0
- package/dist/utils/session-id.js +22 -0
- package/dist/utils/slug.d.ts +2 -0
- package/dist/utils/slug.js +15 -0
- package/dist/utils/voratiq-cli-target.d.ts +9 -0
- package/dist/utils/voratiq-cli-target.js +58 -0
- package/dist/workspace/agents.d.ts +13 -16
- package/dist/workspace/agents.js +22 -147
- package/dist/workspace/chat/artifacts.d.ts +9 -0
- package/dist/workspace/chat/artifacts.js +82 -12
- package/dist/workspace/chat/native-usage.d.ts +13 -0
- package/dist/workspace/chat/native-usage.js +60 -0
- package/dist/workspace/chat/sources.d.ts +9 -5
- package/dist/workspace/chat/sources.js +89 -23
- package/dist/workspace/chat/token-usage-result.d.ts +23 -0
- package/dist/workspace/chat/token-usage-result.js +7 -0
- package/dist/workspace/chat/usage-extractor.d.ts +30 -0
- package/dist/workspace/chat/usage-extractor.js +461 -0
- package/dist/workspace/chat/usage-mappings.d.ts +20 -0
- package/dist/workspace/chat/usage-mappings.js +136 -0
- package/dist/workspace/credential-guard.js +1 -1
- package/dist/workspace/dependencies.js +4 -4
- package/dist/workspace/errors.d.ts +5 -0
- package/dist/workspace/errors.js +13 -3
- package/dist/workspace/layout.d.ts +17 -6
- package/dist/workspace/layout.js +51 -32
- package/dist/workspace/promotion.d.ts +32 -0
- package/dist/workspace/promotion.js +34 -0
- package/dist/workspace/prune.d.ts +1 -1
- package/dist/workspace/run.d.ts +1 -3
- package/dist/workspace/run.js +6 -15
- package/dist/workspace/setup.d.ts +8 -0
- package/dist/workspace/setup.js +359 -56
- package/dist/workspace/shim.js +1 -1
- package/dist/workspace/structure.d.ts +91 -26
- package/dist/workspace/structure.js +227 -43
- package/dist/workspace/templates.d.ts +9 -3
- package/dist/workspace/templates.js +26 -15
- package/dist/workspace/verification-defaults.d.ts +12 -0
- package/dist/workspace/verification-defaults.js +1017 -0
- package/package.json +30 -24
- package/dist/cli/review.d.ts +0 -12
- package/dist/cli/review.js +0 -33
- package/dist/commands/errors.d.ts +0 -4
- package/dist/commands/errors.js +0 -7
- package/dist/commands/init/evals.d.ts +0 -4
- package/dist/commands/init/evals.js +0 -219
- package/dist/commands/review/command.d.ts +0 -10
- package/dist/commands/review/command.js +0 -26
- package/dist/commands/run/agent-execution.d.ts +0 -19
- package/dist/commands/run/agent-execution.js +0 -63
- package/dist/commands/run/agents/auth-stage.d.ts +0 -23
- package/dist/commands/run/agents/auth-stage.js +0 -108
- package/dist/commands/run/agents/chat-preserver.d.ts +0 -9
- package/dist/commands/run/agents/chat-preserver.js +0 -35
- package/dist/commands/run/agents/eval-runner.d.ts +0 -19
- package/dist/commands/run/agents/eval-runner.js +0 -27
- package/dist/commands/run/agents/failures.js +0 -32
- package/dist/commands/run/agents/preparation.js +0 -123
- package/dist/commands/run/agents.d.ts +0 -14
- package/dist/commands/run/agents.js +0 -47
- package/dist/commands/run/prompts.d.ts +0 -4
- package/dist/commands/run/prompts.js +0 -16
- package/dist/commands/run/sandbox-registry.d.ts +0 -4
- package/dist/commands/run/sandbox-registry.js +0 -54
- package/dist/configs/evals/defaults.d.ts +0 -8
- package/dist/configs/evals/defaults.js +0 -28
- package/dist/configs/evals/detect.d.ts +0 -10
- package/dist/configs/evals/errors.d.ts +0 -16
- package/dist/configs/evals/errors.js +0 -29
- package/dist/configs/evals/loader.d.ts +0 -9
- package/dist/configs/evals/loader.js +0 -46
- package/dist/configs/evals/types.d.ts +0 -42
- package/dist/configs/evals/types.js +0 -74
- package/dist/evals/runner.d.ts +0 -16
- package/dist/evals/runner.js +0 -132
- package/dist/records/persistence.js +0 -469
- package/dist/records/types.d.ts +0 -255
- package/dist/records/types.js +0 -160
- package/dist/render/transcripts/review.d.ts +0 -2
- package/dist/render/transcripts/review.js +0 -36
- /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.d.ts +0 -0
- /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.js +0 -0
- /package/dist/{commands/run → agents/runtime/shim}/argv.d.ts +0 -0
- /package/dist/{commands/run → agents/runtime/shim}/argv.js +0 -0
- /package/dist/{commands/run/agents → agents/runtime}/types.js +0 -0
- /package/dist/{commands/run → domain/run/competition}/agents/preparation.d.ts +0 -0
- /package/dist/{commands/run/phases.js → domain/run/competition/agents/types.js} +0 -0
- /package/dist/{commands/run → domain/run/model}/id.d.ts +0 -0
- /package/dist/{commands/run → domain/run/model}/id.js +0 -0
- /package/dist/{records → persistence}/history-lock.d.ts +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { executeCompetitionWithAdapter } from "../../../competition/command-adapter.js";
|
|
2
|
+
import { createRunCompetitionAdapter } from "../../../domain/run/competition/adapter.js";
|
|
3
|
+
import { RunProcessStreamError } from "../../../domain/run/competition/errors.js";
|
|
4
|
+
import { toError } from "../../../utils/errors.js";
|
|
5
|
+
/**
|
|
6
|
+
* Execute all agents and aggregate results.
|
|
7
|
+
*/
|
|
8
|
+
export async function executeAgents(input) {
|
|
9
|
+
const { agents, baseRevisionSha, runId, root, specContent, extraContextFiles, effectiveMaxParallel, mutators, environment, } = input;
|
|
10
|
+
let executionError;
|
|
11
|
+
let phaseResult;
|
|
12
|
+
try {
|
|
13
|
+
const sortedExecutions = await executeCompetitionWithAdapter({
|
|
14
|
+
candidates: agents,
|
|
15
|
+
maxParallel: effectiveMaxParallel,
|
|
16
|
+
adapter: createRunCompetitionAdapter({
|
|
17
|
+
baseRevisionSha,
|
|
18
|
+
runId,
|
|
19
|
+
root,
|
|
20
|
+
specContent,
|
|
21
|
+
extraContextFiles,
|
|
22
|
+
mutators,
|
|
23
|
+
environment,
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
const agentRecords = sortedExecutions.map((execution) => execution.record);
|
|
27
|
+
const agentReports = sortedExecutions.map((execution) => execution.report);
|
|
28
|
+
const hadAgentFailure = agentReports.some((report) => report.status === "failed" || report.status === "errored");
|
|
29
|
+
phaseResult = {
|
|
30
|
+
agentRecords,
|
|
31
|
+
agentReports,
|
|
32
|
+
hadAgentFailure,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
executionError = error;
|
|
37
|
+
}
|
|
38
|
+
if (executionError) {
|
|
39
|
+
throw new RunProcessStreamError(toError(executionError).message);
|
|
40
|
+
}
|
|
41
|
+
if (!phaseResult) {
|
|
42
|
+
throw new RunProcessStreamError(`Agent execution did not produce a result for run \`${runId}\`.`);
|
|
43
|
+
}
|
|
44
|
+
return phaseResult;
|
|
45
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgentDefinition } from "../../../configs/agents/types.js";
|
|
2
|
+
import type { EnvironmentConfig } from "../../../configs/environment/types.js";
|
|
3
|
+
import type { AgentPreparationResult } from "./agents/types.js";
|
|
4
|
+
export declare function prepareAgents(options: {
|
|
5
|
+
agents: readonly AgentDefinition[];
|
|
6
|
+
baseRevisionSha: string;
|
|
7
|
+
runId: string;
|
|
8
|
+
root: string;
|
|
9
|
+
specContent: string;
|
|
10
|
+
extraContextFiles: readonly import("../../../competition/shared/extra-context.js").ResolvedExtraContextFile[];
|
|
11
|
+
environment: EnvironmentConfig;
|
|
12
|
+
}): Promise<AgentPreparationResult>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { prepareAgentForExecution } from "./agents/preparation.js";
|
|
2
|
+
export async function prepareAgents(options) {
|
|
3
|
+
const { agents, baseRevisionSha, runId, root, specContent, extraContextFiles, environment, } = options;
|
|
4
|
+
const ready = [];
|
|
5
|
+
const failures = [];
|
|
6
|
+
for (const agent of agents) {
|
|
7
|
+
const preparation = await prepareAgentForExecution({
|
|
8
|
+
agent,
|
|
9
|
+
baseRevisionSha,
|
|
10
|
+
runId,
|
|
11
|
+
root,
|
|
12
|
+
specContent,
|
|
13
|
+
extraContextFiles,
|
|
14
|
+
environment,
|
|
15
|
+
});
|
|
16
|
+
if (preparation.status === "ready") {
|
|
17
|
+
ready.push(preparation.prepared);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
failures.push(preparation.result);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return { ready, failures };
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EnvironmentConfig } from "../../../../configs/environment/types.js";
|
|
2
|
+
import type { SandboxPersona } from "../../../../workspace/agents.js";
|
|
3
|
+
import { type RunAgentWorkspacePaths } from "./workspace.js";
|
|
4
|
+
export interface ArtifactCollectionResult {
|
|
5
|
+
summaryCaptured: boolean;
|
|
6
|
+
diffStatistics?: string;
|
|
7
|
+
commitSha?: string;
|
|
8
|
+
diffAttempted: boolean;
|
|
9
|
+
diffCaptured: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function collectAgentArtifacts(options: {
|
|
12
|
+
baseRevisionSha: string;
|
|
13
|
+
workspacePaths: RunAgentWorkspacePaths;
|
|
14
|
+
root: string;
|
|
15
|
+
environment: EnvironmentConfig;
|
|
16
|
+
persona: SandboxPersona;
|
|
17
|
+
}): Promise<ArtifactCollectionResult>;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { relative } from "node:path";
|
|
3
|
+
import { AgentProcessError, GitOperationError, } from "../../../../domain/run/competition/errors.js";
|
|
4
|
+
import { toErrorMessage } from "../../../../utils/errors.js";
|
|
5
|
+
import { isFileSystemError } from "../../../../utils/fs.js";
|
|
6
|
+
import { gitAddAll, gitCommitAll, gitDiff, gitDiffShortStat, gitHasStagedChanges, runGitCommand, } from "../../../../utils/git.js";
|
|
7
|
+
import { enforceCredentialExclusion } from "../../../../workspace/credential-guard.js";
|
|
8
|
+
import { cleanupWorkspaceDependencies, ensureWorkspaceDependencies, WorkspaceDependencyCleanupError, } from "../../../../workspace/dependencies.js";
|
|
9
|
+
import { promoteWorkspaceFile } from "../../../../workspace/promotion.js";
|
|
10
|
+
import { WORKSPACE_SUMMARY_FILENAME, } from "./workspace.js";
|
|
11
|
+
export async function collectAgentArtifacts(options) {
|
|
12
|
+
const { baseRevisionSha, workspacePaths, root, environment, persona } = options;
|
|
13
|
+
const { workspacePath, artifactsPath, summaryPath, diffPath } = workspacePaths;
|
|
14
|
+
let dependenciesCleanup = {
|
|
15
|
+
nodeRemoved: false,
|
|
16
|
+
pythonRemoved: false,
|
|
17
|
+
};
|
|
18
|
+
let cleanupFailed = false;
|
|
19
|
+
try {
|
|
20
|
+
dependenciesCleanup = await cleanupWorkspaceDependencies({
|
|
21
|
+
root,
|
|
22
|
+
workspacePath,
|
|
23
|
+
environment,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
cleanupFailed = true;
|
|
28
|
+
if (error instanceof WorkspaceDependencyCleanupError) {
|
|
29
|
+
dependenciesCleanup = error.cleanup;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
let runFailed = true;
|
|
33
|
+
let artifactResult;
|
|
34
|
+
let dependencyRestoreError;
|
|
35
|
+
try {
|
|
36
|
+
await runGitStep("Git add failed", async () => gitAddAll(workspacePath));
|
|
37
|
+
const hasChangesBeforeSummary = await gitHasStagedChanges(workspacePath);
|
|
38
|
+
if (!hasChangesBeforeSummary) {
|
|
39
|
+
throw new AgentProcessError({
|
|
40
|
+
detail: "Agent process failed. No workspace changes detected.",
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
const { summary } = await harvestSummary({
|
|
44
|
+
workspacePath,
|
|
45
|
+
artifactsPath,
|
|
46
|
+
summaryPath,
|
|
47
|
+
});
|
|
48
|
+
await runGitStep("Git add failed", async () => gitAddAll(workspacePath));
|
|
49
|
+
const hasChanges = await gitHasStagedChanges(workspacePath);
|
|
50
|
+
if (!hasChanges) {
|
|
51
|
+
throw new AgentProcessError({
|
|
52
|
+
detail: "Agent process failed. No workspace changes detected.",
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
let diffStatistics;
|
|
56
|
+
let commitSha;
|
|
57
|
+
await runGitStep("Git commit failed", async () => gitCommitAll({
|
|
58
|
+
cwd: workspacePath,
|
|
59
|
+
message: summary,
|
|
60
|
+
authorName: persona.authorName,
|
|
61
|
+
authorEmail: persona.authorEmail,
|
|
62
|
+
bypassHooks: true,
|
|
63
|
+
}));
|
|
64
|
+
commitSha = await runGitStep("Git rev-parse failed", async () => runGitCommand(["rev-parse", "HEAD"], { cwd: workspacePath }));
|
|
65
|
+
const diffContent = await runGitStep("Git diff failed", async () => gitDiff({
|
|
66
|
+
cwd: workspacePath,
|
|
67
|
+
baseRevision: baseRevisionSha,
|
|
68
|
+
targetRevision: "HEAD",
|
|
69
|
+
}));
|
|
70
|
+
await enforceCredentialExclusion({
|
|
71
|
+
workspacePath,
|
|
72
|
+
diffContent,
|
|
73
|
+
});
|
|
74
|
+
await writeFile(diffPath, diffContent, { encoding: "utf8" });
|
|
75
|
+
diffStatistics = await runGitStep("Git diff --shortstat failed", async () => gitDiffShortStat({
|
|
76
|
+
cwd: workspacePath,
|
|
77
|
+
baseRevision: baseRevisionSha,
|
|
78
|
+
targetRevision: "HEAD",
|
|
79
|
+
}));
|
|
80
|
+
runFailed = false;
|
|
81
|
+
artifactResult = {
|
|
82
|
+
summaryCaptured: true,
|
|
83
|
+
diffStatistics,
|
|
84
|
+
commitSha,
|
|
85
|
+
diffAttempted: true,
|
|
86
|
+
diffCaptured: true,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
const cleanupTouched = dependenciesCleanup.nodeRemoved || dependenciesCleanup.pythonRemoved;
|
|
91
|
+
const shouldRestoreDependencies = cleanupTouched || cleanupFailed;
|
|
92
|
+
if (shouldRestoreDependencies) {
|
|
93
|
+
try {
|
|
94
|
+
await ensureWorkspaceDependencies({
|
|
95
|
+
root,
|
|
96
|
+
workspacePath,
|
|
97
|
+
environment,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (!runFailed) {
|
|
102
|
+
dependencyRestoreError = new AgentProcessError({
|
|
103
|
+
detail: `[voratiq] Failed to restore workspace dependencies after export: ${toErrorMessage(error)}`,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (dependencyRestoreError) {
|
|
110
|
+
throw dependencyRestoreError;
|
|
111
|
+
}
|
|
112
|
+
if (!artifactResult) {
|
|
113
|
+
throw new AgentProcessError({
|
|
114
|
+
detail: "Agent process failed before artifacts were collected.",
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return artifactResult;
|
|
118
|
+
}
|
|
119
|
+
const NO_CHANGE_SUMMARY_DETAIL = "Agent process failed. No change summary detected.";
|
|
120
|
+
async function harvestSummary(options) {
|
|
121
|
+
const { workspacePath, artifactsPath, summaryPath } = options;
|
|
122
|
+
try {
|
|
123
|
+
const { summary } = await promoteSummary({
|
|
124
|
+
workspacePath,
|
|
125
|
+
artifactsPath,
|
|
126
|
+
summaryPath,
|
|
127
|
+
});
|
|
128
|
+
return { summary };
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
if (error instanceof AgentProcessError) {
|
|
132
|
+
throw error;
|
|
133
|
+
}
|
|
134
|
+
if (isFileSystemError(error) && error.code === "ENOENT") {
|
|
135
|
+
throw new AgentProcessError({ detail: NO_CHANGE_SUMMARY_DETAIL });
|
|
136
|
+
}
|
|
137
|
+
throw new AgentProcessError({ detail: toErrorMessage(error) });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async function promoteSummary(options) {
|
|
141
|
+
const { workspacePath, artifactsPath, summaryPath } = options;
|
|
142
|
+
let trimmed;
|
|
143
|
+
const promoteResult = await promoteWorkspaceFile({
|
|
144
|
+
workspacePath,
|
|
145
|
+
artifactsPath,
|
|
146
|
+
stagedRelativePath: WORKSPACE_SUMMARY_FILENAME,
|
|
147
|
+
artifactRelativePath: relative(artifactsPath, summaryPath),
|
|
148
|
+
transform: (raw) => {
|
|
149
|
+
const candidate = raw.toString("utf8").trim();
|
|
150
|
+
if (!candidate) {
|
|
151
|
+
throw new AgentProcessError({
|
|
152
|
+
detail: NO_CHANGE_SUMMARY_DETAIL,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
trimmed = candidate;
|
|
156
|
+
return `${candidate}\n`;
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
summary: trimmed ?? (await readFile(promoteResult.artifactPath, "utf8")).trim(),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
async function runGitStep(operationMessage, step) {
|
|
164
|
+
try {
|
|
165
|
+
return await step();
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
throw new GitOperationError({
|
|
169
|
+
operation: operationMessage,
|
|
170
|
+
detail: toErrorMessage(error),
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import type {
|
|
1
|
+
import { RunCommandError } from "../../../../domain/run/competition/errors.js";
|
|
2
|
+
import type { AgentExecutionResult } from "../../../../domain/run/competition/reports.js";
|
|
3
|
+
import type { AgentInvocationRecord } from "../../../../domain/run/model/types.js";
|
|
4
4
|
import { AgentRunContext } from "./run-context.js";
|
|
5
5
|
import type { PreparedAgentExecution } from "./types.js";
|
|
6
6
|
export declare function runPreparedAgent(execution: PreparedAgentExecution): Promise<AgentExecutionResult>;
|
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { WATCHDOG_DEFAULTS } from "./watchdog.js";
|
|
1
|
+
import { detectAgentProcessFailureDetail } from "../../../../agents/runtime/failures.js";
|
|
2
|
+
import { runSandboxedAgent } from "../../../../agents/runtime/harness.js";
|
|
3
|
+
import { WATCHDOG_DEFAULTS, } from "../../../../agents/runtime/watchdog.js";
|
|
4
|
+
import { composeStageSandboxPolicy } from "../../../../competition/shared/sandbox-policy.js";
|
|
5
|
+
import { AgentProcessError, GitOperationError, RunCommandError, } from "../../../../domain/run/competition/errors.js";
|
|
6
|
+
import { toErrorMessage } from "../../../../utils/errors.js";
|
|
7
|
+
import { GIT_AUTHOR_EMAIL, GIT_AUTHOR_NAME } from "../../../../utils/git.js";
|
|
8
|
+
import { extractProviderNativeTokenUsageForSession } from "../../../../workspace/chat/native-usage.js";
|
|
9
|
+
import { VORATIQ_RUN_DIR } from "../../../../workspace/structure.js";
|
|
10
|
+
import { runPostProcessingAndCollectArtifacts } from "./post-processing.js";
|
|
12
11
|
export async function runPreparedAgent(execution) {
|
|
13
|
-
|
|
14
|
-
return await executeAgentLifecycle(execution);
|
|
15
|
-
}
|
|
16
|
-
finally {
|
|
17
|
-
await teardownRegisteredSandboxContext(execution.authContext);
|
|
18
|
-
}
|
|
12
|
+
return await executeAgentLifecycle(execution);
|
|
19
13
|
}
|
|
20
14
|
export async function executeAgentLifecycle(execution) {
|
|
21
|
-
const { agentContext, agent, workspacePaths, baseRevisionSha, root,
|
|
15
|
+
const { agentContext, agent, workspacePaths, baseRevisionSha, root, prompt, environment, } = execution;
|
|
16
|
+
let manifestEnv = {};
|
|
22
17
|
// Set initial watchdog metadata (will be updated with trigger if fired)
|
|
23
18
|
const initialWatchdog = {
|
|
24
19
|
silenceTimeoutMs: WATCHDOG_DEFAULTS.silenceTimeoutMs,
|
|
@@ -46,28 +41,30 @@ export async function executeAgentLifecycle(execution) {
|
|
|
46
41
|
void execution.progress.onEarlyFailure(earlyRecord);
|
|
47
42
|
}
|
|
48
43
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
44
|
+
const processResult = await runSandboxedAgent({
|
|
45
|
+
root,
|
|
46
|
+
sessionId: execution.runId,
|
|
47
|
+
sandboxStageId: "run",
|
|
48
|
+
agent,
|
|
49
|
+
prompt,
|
|
50
|
+
environment,
|
|
51
|
+
paths: {
|
|
52
|
+
agentRoot: workspacePaths.agentRoot,
|
|
53
|
+
workspacePath: workspacePaths.workspacePath,
|
|
54
|
+
sandboxHomePath: workspacePaths.sandboxHomePath,
|
|
55
|
+
runtimeManifestPath: workspacePaths.runtimeManifestPath,
|
|
56
|
+
sandboxSettingsPath: workspacePaths.sandboxSettingsPath,
|
|
57
|
+
runtimePath: workspacePaths.runtimePath,
|
|
58
|
+
artifactsPath: workspacePaths.artifactsPath,
|
|
59
|
+
stdoutPath: workspacePaths.stdoutPath,
|
|
60
|
+
stderrPath: workspacePaths.stderrPath,
|
|
61
|
+
},
|
|
62
|
+
captureChat: true,
|
|
63
|
+
teardownAuthOnExit: false,
|
|
64
|
+
...composeStageSandboxPolicy({}),
|
|
68
65
|
onWatchdogTrigger,
|
|
69
|
-
denialBackoff,
|
|
70
66
|
});
|
|
67
|
+
manifestEnv = processResult.manifestEnv;
|
|
71
68
|
// Update watchdog metadata from process result (in case trigger came via watchdog)
|
|
72
69
|
if (processResult.watchdog) {
|
|
73
70
|
agentContext.setWatchdogMetadata(processResult.watchdog);
|
|
@@ -76,21 +73,33 @@ export async function executeAgentLifecycle(execution) {
|
|
|
76
73
|
agentContext.setFailFastTriggered(processResult.failFast);
|
|
77
74
|
}
|
|
78
75
|
if (processResult.exitCode !== 0 || processResult.errorMessage) {
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
76
|
+
const watchdogTrigger = processResult.watchdog?.trigger;
|
|
77
|
+
const extractedDetail = await detectAgentProcessFailureDetail({
|
|
78
|
+
provider: agent.provider,
|
|
79
|
+
stdoutPath: workspacePaths.stdoutPath,
|
|
80
|
+
stderrPath: workspacePaths.stderrPath,
|
|
81
|
+
});
|
|
82
|
+
const fallbackError = processResult.errorMessage &&
|
|
83
|
+
isGenericProcessFailure(processResult.errorMessage)
|
|
84
|
+
? undefined
|
|
85
|
+
: processResult.errorMessage;
|
|
86
|
+
const failureDetail = watchdogTrigger === "fatal-pattern"
|
|
87
|
+
? (extractedDetail ?? fallbackError)
|
|
88
|
+
: (fallbackError ?? extractedDetail);
|
|
88
89
|
const failure = new AgentProcessError({
|
|
89
90
|
exitCode: processResult.exitCode,
|
|
90
91
|
detail: failureDetail,
|
|
91
92
|
});
|
|
92
93
|
agentContext.markFailure(failure);
|
|
93
94
|
}
|
|
95
|
+
if (processResult.chat?.captured && processResult.chat.format) {
|
|
96
|
+
agentContext.markChatArtifact(processResult.chat.format);
|
|
97
|
+
await tryExtractProviderNativeTokenUsage({
|
|
98
|
+
execution,
|
|
99
|
+
artifactPath: processResult.chat.artifactPath,
|
|
100
|
+
format: processResult.chat.format,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
94
103
|
}
|
|
95
104
|
catch (rawError) {
|
|
96
105
|
const failure = rawError instanceof RunCommandError
|
|
@@ -100,34 +109,19 @@ export async function executeAgentLifecycle(execution) {
|
|
|
100
109
|
});
|
|
101
110
|
agentContext.markFailure(failure);
|
|
102
111
|
}
|
|
103
|
-
await captureAgentChatTranscripts({
|
|
104
|
-
agent,
|
|
105
|
-
agentContext,
|
|
106
|
-
agentRoot: workspacePaths.agentRoot,
|
|
107
|
-
reason: "post-run",
|
|
108
|
-
});
|
|
109
112
|
if (agentContext.isFailed()) {
|
|
110
113
|
agentContext.setCompleted();
|
|
111
114
|
return finalizeExecution(execution, () => agentContext.finalize());
|
|
112
115
|
}
|
|
113
116
|
try {
|
|
114
|
-
const
|
|
115
|
-
evalPlan,
|
|
117
|
+
const artifacts = await runPostProcessingAndCollectArtifacts({
|
|
116
118
|
workspacePaths,
|
|
117
119
|
baseRevisionSha,
|
|
118
120
|
root,
|
|
119
|
-
manifestEnv,
|
|
120
121
|
environment,
|
|
121
122
|
persona: resolveSandboxPersona(manifestEnv),
|
|
122
123
|
});
|
|
123
|
-
agentContext.applyArtifacts(
|
|
124
|
-
if (postProcessResult.warnings.length > 0) {
|
|
125
|
-
for (const warning of postProcessResult.warnings) {
|
|
126
|
-
console.warn(`[voratiq] ${warning}`);
|
|
127
|
-
}
|
|
128
|
-
agentContext.recordEvalWarnings(postProcessResult.warnings);
|
|
129
|
-
}
|
|
130
|
-
agentContext.applyEvaluations(postProcessResult.evaluations);
|
|
124
|
+
agentContext.applyArtifacts(artifacts);
|
|
131
125
|
}
|
|
132
126
|
catch (rawError) {
|
|
133
127
|
const failure = classifyPostProcessError(rawError);
|
|
@@ -161,6 +155,16 @@ export function classifyPostProcessError(error) {
|
|
|
161
155
|
detail,
|
|
162
156
|
});
|
|
163
157
|
}
|
|
158
|
+
function isGenericProcessFailure(message) {
|
|
159
|
+
const trimmed = message.trim();
|
|
160
|
+
if (trimmed.startsWith("Agent exited with code ")) {
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
if (trimmed.startsWith("Agent terminated by signal ")) {
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
164
168
|
async function finalizeExecution(execution, finalize) {
|
|
165
169
|
const result = await finalize();
|
|
166
170
|
if (execution.progress?.onCompleted) {
|
|
@@ -176,3 +180,19 @@ function resolveSandboxPersona(env) {
|
|
|
176
180
|
authorEmail: env["GIT_AUTHOR_EMAIL"] ?? GIT_AUTHOR_EMAIL,
|
|
177
181
|
};
|
|
178
182
|
}
|
|
183
|
+
async function tryExtractProviderNativeTokenUsage(options) {
|
|
184
|
+
const { execution, artifactPath, format } = options;
|
|
185
|
+
const { agent, root, runId, agentContext } = execution;
|
|
186
|
+
const extracted = await extractProviderNativeTokenUsageForSession({
|
|
187
|
+
root,
|
|
188
|
+
domain: VORATIQ_RUN_DIR,
|
|
189
|
+
sessionId: runId,
|
|
190
|
+
agentId: agent.id,
|
|
191
|
+
provider: agent.provider,
|
|
192
|
+
modelId: agent.model,
|
|
193
|
+
chatCaptured: true,
|
|
194
|
+
format,
|
|
195
|
+
artifactPath,
|
|
196
|
+
});
|
|
197
|
+
agentContext.setTokenUsageResult(extracted);
|
|
198
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EnvironmentConfig } from "../../../../configs/environment/types.js";
|
|
2
|
+
import type { SandboxPersona } from "../../../../workspace/agents.js";
|
|
3
|
+
import { type ArtifactCollectionResult } from "./artifacts.js";
|
|
4
|
+
import type { RunAgentWorkspacePaths } from "./workspace.js";
|
|
5
|
+
export interface RunPostProcessingInput {
|
|
6
|
+
workspacePaths: RunAgentWorkspacePaths;
|
|
7
|
+
baseRevisionSha: string;
|
|
8
|
+
root: string;
|
|
9
|
+
environment: EnvironmentConfig;
|
|
10
|
+
persona: SandboxPersona;
|
|
11
|
+
}
|
|
12
|
+
export declare function runPostProcessingAndCollectArtifacts(input: RunPostProcessingInput): Promise<ArtifactCollectionResult>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { stageExtraContextFiles } from "../../../../competition/shared/extra-context.js";
|
|
2
|
+
import { RunCommandError } from "../../../../domain/run/competition/errors.js";
|
|
3
|
+
import { ensureWorkspaceError } from "../../../../workspace/agents.js";
|
|
4
|
+
import { buildRunPrompt } from "../prompt.js";
|
|
5
|
+
import { AgentRunContext } from "./run-context.js";
|
|
6
|
+
import { buildRunAgentWorkspace } from "./workspace.js";
|
|
7
|
+
export async function prepareAgentForExecution(context) {
|
|
8
|
+
const { agent, baseRevisionSha, runId, root, specContent, extraContextFiles, environment, } = context;
|
|
9
|
+
const startedAt = new Date().toISOString();
|
|
10
|
+
const agentContext = new AgentRunContext({
|
|
11
|
+
agent,
|
|
12
|
+
runId,
|
|
13
|
+
startedAt,
|
|
14
|
+
});
|
|
15
|
+
let workspacePaths;
|
|
16
|
+
try {
|
|
17
|
+
workspacePaths = await buildRunAgentWorkspace({
|
|
18
|
+
root,
|
|
19
|
+
runId,
|
|
20
|
+
agentId: agent.id,
|
|
21
|
+
baseRevisionSha,
|
|
22
|
+
environment,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return {
|
|
27
|
+
status: "failed",
|
|
28
|
+
result: await agentContext.failWith(ensureWorkspaceFailure(error)),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
await stageExtraContextFiles({
|
|
33
|
+
contextPath: workspacePaths.contextPath,
|
|
34
|
+
files: extraContextFiles,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return {
|
|
39
|
+
status: "failed",
|
|
40
|
+
result: await agentContext.failWith(ensureWorkspaceFailure(error)),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const prompt = buildRunPrompt({
|
|
44
|
+
specContent,
|
|
45
|
+
workspacePath: workspacePaths.workspacePath,
|
|
46
|
+
extraContextFiles,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
status: "ready",
|
|
50
|
+
prepared: {
|
|
51
|
+
agent,
|
|
52
|
+
agentContext,
|
|
53
|
+
workspacePaths: workspacePaths,
|
|
54
|
+
baseRevisionSha,
|
|
55
|
+
root,
|
|
56
|
+
runId,
|
|
57
|
+
prompt,
|
|
58
|
+
environment,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function ensureWorkspaceFailure(error) {
|
|
63
|
+
return error instanceof RunCommandError ? error : ensureWorkspaceError(error);
|
|
64
|
+
}
|
|
@@ -1,31 +1,27 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
7
|
-
import
|
|
8
|
-
import type {
|
|
1
|
+
import type { SandboxFailFastInfo } from "../../../../agents/runtime/sandbox.js";
|
|
2
|
+
import type { AgentDefinition } from "../../../../configs/agents/types.js";
|
|
3
|
+
import type { RunCommandError } from "../../../../domain/run/competition/errors.js";
|
|
4
|
+
import { type AgentExecutionResult, type AgentExecutionState } from "../../../../domain/run/competition/reports.js";
|
|
5
|
+
import type { AgentInvocationRecord, AgentStatus, WatchdogMetadata } from "../../../../domain/run/model/types.js";
|
|
6
|
+
import type { TokenUsageResult } from "../../../../workspace/chat/token-usage-result.js";
|
|
7
|
+
import type { ChatArtifactFormat } from "../../../../workspace/chat/types.js";
|
|
8
|
+
import type { ArtifactCollectionResult } from "./artifacts.js";
|
|
9
9
|
export declare class AgentRunContext {
|
|
10
10
|
readonly state: AgentExecutionState;
|
|
11
11
|
status: AgentStatus;
|
|
12
12
|
commitSha: string | undefined;
|
|
13
|
-
evalResults: AgentEvalResult[];
|
|
14
13
|
errorMessage: string | undefined;
|
|
15
14
|
watchdogMetadata: WatchdogMetadata | undefined;
|
|
16
15
|
private failFast;
|
|
17
16
|
private completedAt;
|
|
18
17
|
private startedAt;
|
|
19
|
-
private readonly evalPlan;
|
|
20
18
|
private readonly runId;
|
|
21
19
|
private readonly agent;
|
|
22
20
|
private artifactState;
|
|
23
|
-
private evalWarnings;
|
|
24
21
|
constructor(params: {
|
|
25
22
|
agent: AgentDefinition;
|
|
26
23
|
runId: string;
|
|
27
24
|
startedAt: string;
|
|
28
|
-
evalPlan: readonly EvalDefinition[];
|
|
29
25
|
});
|
|
30
26
|
markFailure(error: RunCommandError): void;
|
|
31
27
|
failWith(error: RunCommandError): Promise<AgentExecutionResult>;
|
|
@@ -34,16 +30,13 @@ export declare class AgentRunContext {
|
|
|
34
30
|
markStarted(): void;
|
|
35
31
|
getStartedAt(): string | undefined;
|
|
36
32
|
applyArtifacts(result: ArtifactCollectionResult): void;
|
|
37
|
-
applyEvaluations(results: AgentEvalResult[]): void;
|
|
38
33
|
markChatArtifact(format: ChatArtifactFormat): void;
|
|
39
|
-
recordEvalWarnings(warnings: readonly string[]): void;
|
|
40
34
|
setWatchdogMetadata(metadata: WatchdogMetadata): void;
|
|
41
35
|
setFailFastTriggered(info: SandboxFailFastInfo): void;
|
|
36
|
+
setTokenUsageResult(result: TokenUsageResult): void;
|
|
42
37
|
finalize(): AgentExecutionResult;
|
|
43
38
|
/**
|
|
44
39
|
* Build an early failure record for immediate UI surfacing when watchdog triggers.
|
|
45
|
-
* Includes placeholder evals so the record satisfies agentInvocationRecordSchema.
|
|
46
40
|
*/
|
|
47
41
|
buildEarlyFailureRecord(errorMessage: string): AgentInvocationRecord;
|
|
48
42
|
}
|
|
49
|
-
export declare function buildDefaultEvalResults(definitions: readonly EvalDefinition[]): AgentEvalResult[];
|