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
|
@@ -42,10 +42,18 @@ export const geminiAuthProvider = {
|
|
|
42
42
|
},
|
|
43
43
|
async stage(options) {
|
|
44
44
|
const apiKey = resolveGeminiApiKey(options.runtime.env);
|
|
45
|
+
const sandboxPaths = createSandboxPaths(options.agentRoot, {
|
|
46
|
+
gemini: [".gemini"],
|
|
47
|
+
tmp: ["tmp"],
|
|
48
|
+
});
|
|
49
|
+
await ensureDirectories([...Object.values(sandboxPaths)]);
|
|
45
50
|
if (apiKey) {
|
|
46
|
-
return composeSandboxEnvResult(
|
|
51
|
+
return composeSandboxEnvResult(sandboxPaths.home, {
|
|
47
52
|
GEMINI_API_KEY: apiKey,
|
|
48
53
|
GOOGLE_API_KEY: apiKey,
|
|
54
|
+
TMPDIR: sandboxPaths.tmp,
|
|
55
|
+
TEMP: sandboxPaths.tmp,
|
|
56
|
+
TMP: sandboxPaths.tmp,
|
|
49
57
|
});
|
|
50
58
|
}
|
|
51
59
|
const homeDir = options.runtime.homeDir;
|
|
@@ -57,10 +65,6 @@ export const geminiAuthProvider = {
|
|
|
57
65
|
const source = resolveChildPath(geminiHome, filename);
|
|
58
66
|
await assertReadableFileOrThrow(source, (cause) => new GeminiAuthProviderError(GEMINI_LOGIN_HINT, { cause }));
|
|
59
67
|
}
|
|
60
|
-
const sandboxPaths = createSandboxPaths(options.agentRoot, {
|
|
61
|
-
gemini: [".gemini"],
|
|
62
|
-
});
|
|
63
|
-
await ensureDirectories([...Object.values(sandboxPaths)]);
|
|
64
68
|
const secretHandles = await stageRequiredFiles(geminiHome, sandboxPaths.gemini, sandboxPaths.home);
|
|
65
69
|
try {
|
|
66
70
|
await stageOptionalFiles(geminiHome, sandboxPaths.gemini, sandboxPaths.home);
|
|
@@ -70,7 +74,11 @@ export const geminiAuthProvider = {
|
|
|
70
74
|
throw error;
|
|
71
75
|
}
|
|
72
76
|
registerSandboxSecrets(sandboxPaths.home, secretHandles);
|
|
73
|
-
return composeSandboxEnvResult(sandboxPaths.home, {
|
|
77
|
+
return composeSandboxEnvResult(sandboxPaths.home, {
|
|
78
|
+
TMPDIR: sandboxPaths.tmp,
|
|
79
|
+
TEMP: sandboxPaths.tmp,
|
|
80
|
+
TMP: sandboxPaths.tmp,
|
|
81
|
+
});
|
|
74
82
|
},
|
|
75
83
|
async teardown(options) {
|
|
76
84
|
await teardownAuthProvider(options);
|
|
@@ -15,6 +15,5 @@ export declare function assertReadableFileOrThrow(path: string, createError: Err
|
|
|
15
15
|
export declare function copyFileWithPermissions(source: string, destination: string, mode?: number): Promise<void>;
|
|
16
16
|
export declare function writeFileWithPermissions(destination: string, data: string | NodeJS.ArrayBufferView, options?: Parameters<typeof writeFile>[2], mode?: number): Promise<void>;
|
|
17
17
|
export declare function copyOptionalFileWithPermissions(source: string, destination: string, createError?: ErrorFactory): Promise<void>;
|
|
18
|
-
export declare function copyOptionalDirectoryWithPermissions(source: string, destination: string, createError?: ErrorFactory, fileMode?: number, dirMode?: number): Promise<void>;
|
|
19
18
|
export declare function composeSandboxEnvResult(sandboxPath: string, env: Record<string, string>): StageResult;
|
|
20
19
|
export declare function teardownSandbox({ sandboxPath, }: TeardownOptions): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { constants as fsConstants } from "node:fs";
|
|
2
|
-
import { access, chmod, copyFile, mkdir,
|
|
2
|
+
import { access, chmod, copyFile, mkdir, rm, stat, writeFile, } from "node:fs/promises";
|
|
3
3
|
import { isAbsolute, resolve as resolveNative } from "node:path";
|
|
4
4
|
import { isMissing } from "../../utils/fs.js";
|
|
5
5
|
import { SANDBOX_DIRNAME } from "../../workspace/structure.js";
|
|
@@ -86,54 +86,6 @@ export async function copyOptionalFileWithPermissions(source, destination, creat
|
|
|
86
86
|
throw error;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
export async function copyOptionalDirectoryWithPermissions(source, destination, createError, fileMode = STAGED_FILE_MODE, dirMode = 0o700) {
|
|
90
|
-
try {
|
|
91
|
-
const sourceStats = await stat(source);
|
|
92
|
-
if (!sourceStats.isDirectory()) {
|
|
93
|
-
if (createError) {
|
|
94
|
-
throw createError();
|
|
95
|
-
}
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
if (isMissing(error)) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (createError) {
|
|
104
|
-
throw createError(error);
|
|
105
|
-
}
|
|
106
|
-
throw error;
|
|
107
|
-
}
|
|
108
|
-
try {
|
|
109
|
-
await copyDirectoryRecursive(source, destination, fileMode, dirMode);
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (isMissing(error)) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
if (createError) {
|
|
116
|
-
throw createError(error);
|
|
117
|
-
}
|
|
118
|
-
throw error;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
async function copyDirectoryRecursive(source, destination, fileMode, dirMode) {
|
|
122
|
-
await mkdir(destination, { recursive: true, mode: dirMode });
|
|
123
|
-
await chmod(destination, dirMode).catch(() => { });
|
|
124
|
-
const entries = await readdir(source, { withFileTypes: true });
|
|
125
|
-
for (const entry of entries) {
|
|
126
|
-
const sourcePath = resolveChildPath(source, entry.name);
|
|
127
|
-
const destinationPath = resolveChildPath(destination, entry.name);
|
|
128
|
-
if (entry.isDirectory()) {
|
|
129
|
-
await copyDirectoryRecursive(sourcePath, destinationPath, fileMode, dirMode);
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
if (entry.isFile()) {
|
|
133
|
-
await copyFileWithPermissions(sourcePath, destinationPath, fileMode);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
89
|
export function composeSandboxEnvResult(sandboxPath, env) {
|
|
138
90
|
return {
|
|
139
91
|
sandboxPath,
|
package/dist/bin.js
CHANGED
|
@@ -3,119 +3,416 @@ import { realpathSync } from "node:fs";
|
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import process from "node:process";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
-
import { Command, CommanderError } from "commander";
|
|
7
|
-
import { createApplyCommand } from "./cli/apply.js";
|
|
8
|
-
import { commanderAlreadyRendered } from "./cli/commander-utils.js";
|
|
9
|
-
import { CliError, toCliError } from "./cli/errors.js";
|
|
10
|
-
import { createInitCommand } from "./cli/init.js";
|
|
11
|
-
import { createListCommand } from "./cli/list.js";
|
|
12
|
-
import { writeCommandOutput } from "./cli/output.js";
|
|
13
|
-
import { createPruneCommand } from "./cli/prune.js";
|
|
14
|
-
import { createReviewCommand } from "./cli/review.js";
|
|
15
|
-
import { createRunCommand } from "./cli/run.js";
|
|
16
|
-
import { terminateActiveRun } from "./commands/run/lifecycle.js";
|
|
17
|
-
import { flushAllRunRecordBuffers } from "./records/persistence.js";
|
|
18
|
-
import { renderCliError } from "./render/utils/errors.js";
|
|
19
|
-
import { toErrorMessage } from "./utils/errors.js";
|
|
20
|
-
import { getVoratiqVersion } from "./utils/version.js";
|
|
21
6
|
const SIGNAL_EXIT_CODES = {
|
|
7
|
+
SIGHUP: 129,
|
|
22
8
|
SIGINT: 130,
|
|
23
9
|
SIGTERM: 143,
|
|
24
10
|
};
|
|
11
|
+
let activeJsonEnvelopeOperator;
|
|
12
|
+
let processGuardsInstalled = false;
|
|
25
13
|
function installProcessGuards() {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
void terminateActiveRun("failed")
|
|
34
|
-
.catch((teardownError) => {
|
|
35
|
-
console.error(`[voratiq] Failed to teardown run after uncaught exception: ${toErrorMessage(teardownError)}`);
|
|
36
|
-
})
|
|
37
|
-
.finally(async () => {
|
|
38
|
-
await flushPendingHistory();
|
|
39
|
-
console.error(error);
|
|
40
|
-
process.exit(1);
|
|
14
|
+
if (processGuardsInstalled) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
processGuardsInstalled = true;
|
|
18
|
+
for (const signal of ["SIGHUP", "SIGINT", "SIGTERM"]) {
|
|
19
|
+
process.once(signal, () => {
|
|
20
|
+
void handleSignal(signal);
|
|
41
21
|
});
|
|
22
|
+
}
|
|
23
|
+
process.on("uncaughtException", (error) => {
|
|
24
|
+
void handleFatalError("uncaught exception", error);
|
|
42
25
|
});
|
|
43
26
|
process.on("unhandledRejection", (reason) => {
|
|
44
|
-
void
|
|
45
|
-
.catch((teardownError) => {
|
|
46
|
-
console.error(`[voratiq] Failed to teardown run after unhandled rejection: ${toErrorMessage(teardownError)}`);
|
|
47
|
-
})
|
|
48
|
-
.finally(async () => {
|
|
49
|
-
await flushPendingHistory();
|
|
50
|
-
console.error(reason);
|
|
51
|
-
process.exit(1);
|
|
52
|
-
});
|
|
27
|
+
void handleFatalError("unhandled rejection", reason);
|
|
53
28
|
});
|
|
54
29
|
}
|
|
30
|
+
async function handleFatalError(context, error) {
|
|
31
|
+
await terminateActiveSessionsSafe("failed", context);
|
|
32
|
+
await flushPendingHistory();
|
|
33
|
+
if (activeJsonEnvelopeOperator) {
|
|
34
|
+
const { buildFailedOperatorEnvelope, writeOperatorResultEnvelope } = await import("./cli/operator-envelope.js");
|
|
35
|
+
writeOperatorResultEnvelope(buildFailedOperatorEnvelope({
|
|
36
|
+
operator: activeJsonEnvelopeOperator,
|
|
37
|
+
error,
|
|
38
|
+
}), 1);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const { CliError, toCliError } = await import("./cli/errors.js");
|
|
43
|
+
const { renderCliError } = await import("./render/utils/errors.js");
|
|
44
|
+
const normalized = toCliError(error);
|
|
45
|
+
const rendered = renderCliError(new CliError(normalized.headline, [`Context: ${context}.`, ...normalized.detailLines], normalized.hintLines));
|
|
46
|
+
console.error(rendered);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
55
49
|
async function handleSignal(signal) {
|
|
56
50
|
const exitCode = SIGNAL_EXIT_CODES[signal] ?? 1;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.error(`[voratiq] Failed to teardown run after ${signal}: ${toErrorMessage(error)}`);
|
|
51
|
+
const teardownError = await terminateActiveSessionsSafe("aborted", signal);
|
|
52
|
+
if (teardownError) {
|
|
62
53
|
await flushPendingHistory();
|
|
63
54
|
process.exit(1);
|
|
64
55
|
return;
|
|
65
56
|
}
|
|
66
57
|
await flushPendingHistory();
|
|
58
|
+
if (activeJsonEnvelopeOperator) {
|
|
59
|
+
const { buildFailedOperatorEnvelope, writeOperatorResultEnvelope } = await import("./cli/operator-envelope.js");
|
|
60
|
+
writeOperatorResultEnvelope(buildFailedOperatorEnvelope({
|
|
61
|
+
operator: activeJsonEnvelopeOperator,
|
|
62
|
+
error: new Error(`Signal received: ${signal}`),
|
|
63
|
+
}), exitCode);
|
|
64
|
+
}
|
|
67
65
|
process.exit(exitCode);
|
|
68
66
|
}
|
|
69
67
|
async function flushPendingHistory() {
|
|
70
68
|
try {
|
|
69
|
+
const { flushAllSpecRecordBuffers } = await import("./domain/spec/persistence/adapter.js");
|
|
70
|
+
await flushAllSpecRecordBuffers();
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.warn(`[voratiq] Failed to flush spec history buffers: ${error.message}`);
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const { flushAllRunRecordBuffers } = await import("./domain/run/persistence/adapter.js");
|
|
71
77
|
await flushAllRunRecordBuffers();
|
|
72
78
|
}
|
|
73
79
|
catch (error) {
|
|
74
80
|
console.warn(`[voratiq] Failed to flush run history buffers: ${error.message}`);
|
|
75
81
|
}
|
|
82
|
+
try {
|
|
83
|
+
const { flushAllReductionRecordBuffers } = await import("./domain/reduce/persistence/adapter.js");
|
|
84
|
+
await flushAllReductionRecordBuffers();
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.warn(`[voratiq] Failed to flush reduction history buffers: ${error.message}`);
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const { flushAllVerificationRecordBuffers } = await import("./domain/verify/persistence/adapter.js");
|
|
91
|
+
await flushAllVerificationRecordBuffers();
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.warn(`[voratiq] Failed to flush verification history buffers: ${error.message}`);
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const { flushAllMessageRecordBuffers } = await import("./domain/message/persistence/adapter.js");
|
|
98
|
+
await flushAllMessageRecordBuffers();
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.warn(`[voratiq] Failed to flush message history buffers: ${error.message}`);
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const { flushAllInteractiveSessionBuffers } = await import("./domain/interactive/persistence/adapter.js");
|
|
105
|
+
await flushAllInteractiveSessionBuffers();
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.warn(`[voratiq] Failed to flush interactive history buffers: ${error.message}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function terminateActiveRunSafe(status, context) {
|
|
112
|
+
try {
|
|
113
|
+
const { terminateActiveRun } = await import("./commands/run/lifecycle.js");
|
|
114
|
+
await terminateActiveRun(status);
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
const { toErrorMessage } = await import("./utils/errors.js");
|
|
119
|
+
const normalizedError = error instanceof Error ? error : new Error(toErrorMessage(error));
|
|
120
|
+
console.error(`[voratiq] Failed to teardown run after ${context}: ${toErrorMessage(error)}`);
|
|
121
|
+
return normalizedError;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async function terminateActiveVerificationSafe(status, context) {
|
|
125
|
+
try {
|
|
126
|
+
const { terminateActiveVerification } = await import("./commands/verify/lifecycle.js");
|
|
127
|
+
await terminateActiveVerification(status);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
const { toErrorMessage } = await import("./utils/errors.js");
|
|
132
|
+
const normalizedError = error instanceof Error ? error : new Error(toErrorMessage(error));
|
|
133
|
+
console.error(`[voratiq] Failed to teardown verification after ${context}: ${toErrorMessage(error)}`);
|
|
134
|
+
return normalizedError;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async function terminateActiveInteractiveSafe(status, context) {
|
|
138
|
+
try {
|
|
139
|
+
const { terminateActiveInteractive } = await import("./commands/interactive/lifecycle.js");
|
|
140
|
+
await terminateActiveInteractive(status, context);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
const { toErrorMessage } = await import("./utils/errors.js");
|
|
145
|
+
const normalizedError = error instanceof Error ? error : new Error(toErrorMessage(error));
|
|
146
|
+
console.error(`[voratiq] Failed to teardown interactive session after ${context}: ${toErrorMessage(error)}`);
|
|
147
|
+
return normalizedError;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
async function terminateActiveMessageSafe(status, context) {
|
|
151
|
+
try {
|
|
152
|
+
const { terminateActiveMessage } = await import("./commands/message/lifecycle.js");
|
|
153
|
+
await terminateActiveMessage(status);
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
const { toErrorMessage } = await import("./utils/errors.js");
|
|
158
|
+
const normalizedError = error instanceof Error ? error : new Error(toErrorMessage(error));
|
|
159
|
+
console.error(`[voratiq] Failed to teardown message after ${context}: ${toErrorMessage(error)}`);
|
|
160
|
+
return normalizedError;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async function terminateActiveSessionsSafe(status, context) {
|
|
164
|
+
const runError = await terminateActiveRunSafe(status, context);
|
|
165
|
+
const verificationError = await terminateActiveVerificationSafe(status, context);
|
|
166
|
+
const interactiveError = await terminateActiveInteractiveSafe(status, context);
|
|
167
|
+
const messageError = await terminateActiveMessageSafe(status, context);
|
|
168
|
+
const errors = [
|
|
169
|
+
runError,
|
|
170
|
+
verificationError,
|
|
171
|
+
interactiveError,
|
|
172
|
+
messageError,
|
|
173
|
+
].filter((error) => error instanceof Error);
|
|
174
|
+
if (errors.length > 1) {
|
|
175
|
+
return new AggregateError(errors, `Failed to teardown active sessions after ${context}`);
|
|
176
|
+
}
|
|
177
|
+
return errors[0] ?? null;
|
|
76
178
|
}
|
|
77
|
-
installProcessGuards();
|
|
78
179
|
export async function runCli(argv = process.argv) {
|
|
180
|
+
installProcessGuards();
|
|
181
|
+
const { Command, CommanderError } = await import("commander");
|
|
79
182
|
const program = new Command();
|
|
183
|
+
const effectiveArgv = argv;
|
|
184
|
+
const { resolveJsonEnvelopeOperator } = await import("./cli/operator-envelope.js");
|
|
185
|
+
const jsonEnvelopeOperator = resolveJsonEnvelopeOperator(effectiveArgv);
|
|
186
|
+
activeJsonEnvelopeOperator = jsonEnvelopeOperator;
|
|
187
|
+
const commandName = findCommandName(effectiveArgv);
|
|
188
|
+
const localVersion = (await import("./utils/version.js")).getVoratiqVersion();
|
|
80
189
|
program
|
|
81
190
|
.name("voratiq")
|
|
82
|
-
.description("
|
|
83
|
-
.
|
|
191
|
+
.description("Agent ensembles to design, generate, and select the best code for every task.")
|
|
192
|
+
.enablePositionalOptions()
|
|
193
|
+
.version(localVersion, "-v, --version", "print the Voratiq version")
|
|
84
194
|
.exitOverride()
|
|
85
195
|
.showHelpAfterError()
|
|
86
196
|
.helpCommand(false);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (argv.length <= 2) {
|
|
94
|
-
writeCommandOutput({ body: program.helpInformation() });
|
|
95
|
-
return;
|
|
197
|
+
if (jsonEnvelopeOperator) {
|
|
198
|
+
program.configureOutput({
|
|
199
|
+
writeOut: () => { },
|
|
200
|
+
writeErr: () => { },
|
|
201
|
+
outputError: () => { },
|
|
202
|
+
});
|
|
96
203
|
}
|
|
204
|
+
const isMcpCommand = commandName === "mcp";
|
|
205
|
+
const updateHandle = isMcpCommand
|
|
206
|
+
? undefined
|
|
207
|
+
: (await import("./update-check/checker.js")).startUpdateCheck(localVersion, {
|
|
208
|
+
isTty: Boolean(process.stdin.isTTY && process.stdout.isTTY),
|
|
209
|
+
env: process.env,
|
|
210
|
+
cachePath: (await import("./update-check/state-path.js")).resolveUpdateStatePath(process.env),
|
|
211
|
+
});
|
|
97
212
|
try {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
213
|
+
if (!isMcpCommand) {
|
|
214
|
+
// Show update prompt if a cached notice is available
|
|
215
|
+
const updateNotice = updateHandle?.peekNotice();
|
|
216
|
+
if (updateNotice) {
|
|
217
|
+
const { showUpdatePrompt } = await import("./update-check/prompt.js");
|
|
218
|
+
const { createConfirmationInteractor } = await import("./render/interactions/confirmation.js");
|
|
219
|
+
const { writeCommandOutput } = await import("./cli/output.js");
|
|
220
|
+
const interactor = createConfirmationInteractor();
|
|
221
|
+
try {
|
|
222
|
+
const result = await showUpdatePrompt(updateNotice, {
|
|
223
|
+
prompt: (opts) => interactor.prompt(opts),
|
|
224
|
+
write: (text) => process.stdout.write(text),
|
|
225
|
+
writeCommandOutput,
|
|
226
|
+
});
|
|
227
|
+
if (result.shouldExit) {
|
|
228
|
+
if (result.exitCode !== undefined && result.exitCode !== 0) {
|
|
229
|
+
process.exitCode = result.exitCode;
|
|
230
|
+
}
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
finally {
|
|
235
|
+
interactor.close();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
await registerCommands(program, effectiveArgv);
|
|
240
|
+
const { shouldStartRootLauncher } = await import("./cli/root-launcher.js");
|
|
241
|
+
if (shouldStartRootLauncher(effectiveArgv)) {
|
|
242
|
+
try {
|
|
243
|
+
const { runInteractiveRootLauncher } = await import("./cli/root-launcher.js");
|
|
244
|
+
const { createEntrypointVoratiqCliTarget } = await import("./utils/voratiq-cli-target.js");
|
|
245
|
+
await runInteractiveRootLauncher({
|
|
246
|
+
selfCliTarget: createEntrypointVoratiqCliTarget({
|
|
247
|
+
cliEntrypoint: effectiveArgv[1],
|
|
248
|
+
}),
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
const { GitRepositoryError } = await import("./utils/errors.js");
|
|
253
|
+
if (error instanceof GitRepositoryError &&
|
|
254
|
+
(error.reason === "no_repository" ||
|
|
255
|
+
error.reason === "not_repository_root")) {
|
|
256
|
+
const { writeCommandOutput } = await import("./cli/output.js");
|
|
257
|
+
writeCommandOutput({ body: program.helpInformation() });
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
const { toCliError } = await import("./cli/errors.js");
|
|
261
|
+
const { renderCliError } = await import("./render/utils/errors.js");
|
|
262
|
+
const { writeCommandOutput } = await import("./cli/output.js");
|
|
263
|
+
const cliError = toCliError(error);
|
|
264
|
+
writeCommandOutput({
|
|
265
|
+
body: renderCliError(cliError),
|
|
266
|
+
exitCode: 1,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (effectiveArgv.length <= 2) {
|
|
272
|
+
const { writeCommandOutput } = await import("./cli/output.js");
|
|
273
|
+
writeCommandOutput({ body: program.helpInformation() });
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
await program.parseAsync(effectiveArgv);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
if (error instanceof CommanderError) {
|
|
281
|
+
if (jsonEnvelopeOperator) {
|
|
282
|
+
const { buildFailedOperatorEnvelope, writeOperatorResultEnvelope } = await import("./cli/operator-envelope.js");
|
|
283
|
+
writeOperatorResultEnvelope(buildFailedOperatorEnvelope({
|
|
284
|
+
operator: jsonEnvelopeOperator,
|
|
285
|
+
error,
|
|
286
|
+
}), error.exitCode ?? 1);
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
const { commanderAlreadyRendered } = await import("./cli/commander-utils.js");
|
|
290
|
+
if (commanderAlreadyRendered(error)) {
|
|
291
|
+
process.exitCode = error.exitCode ?? 0;
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const { CliError } = await import("./cli/errors.js");
|
|
295
|
+
const { renderCliError } = await import("./render/utils/errors.js");
|
|
296
|
+
const { toErrorMessage } = await import("./utils/errors.js");
|
|
297
|
+
const { writeCommandOutput } = await import("./cli/output.js");
|
|
298
|
+
writeCommandOutput({
|
|
299
|
+
body: renderCliError(new CliError(toErrorMessage(error))),
|
|
300
|
+
exitCode: error.exitCode ?? 1,
|
|
301
|
+
});
|
|
104
302
|
return;
|
|
105
303
|
}
|
|
304
|
+
if (jsonEnvelopeOperator) {
|
|
305
|
+
const { buildFailedOperatorEnvelope, writeOperatorResultEnvelope } = await import("./cli/operator-envelope.js");
|
|
306
|
+
writeOperatorResultEnvelope(buildFailedOperatorEnvelope({
|
|
307
|
+
operator: jsonEnvelopeOperator,
|
|
308
|
+
error,
|
|
309
|
+
}), 1);
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const { toCliError } = await import("./cli/errors.js");
|
|
313
|
+
const { renderCliError } = await import("./render/utils/errors.js");
|
|
314
|
+
const { writeCommandOutput } = await import("./cli/output.js");
|
|
315
|
+
const cliError = toCliError(error);
|
|
316
|
+
const body = renderCliError(cliError);
|
|
106
317
|
writeCommandOutput({
|
|
107
|
-
body
|
|
108
|
-
exitCode:
|
|
318
|
+
body,
|
|
319
|
+
exitCode: 1,
|
|
109
320
|
});
|
|
110
|
-
return;
|
|
111
321
|
}
|
|
112
|
-
const cliError = toCliError(error);
|
|
113
|
-
const body = renderCliError(cliError);
|
|
114
|
-
writeCommandOutput({
|
|
115
|
-
body,
|
|
116
|
-
exitCode: 1,
|
|
117
|
-
});
|
|
118
322
|
}
|
|
323
|
+
finally {
|
|
324
|
+
activeJsonEnvelopeOperator = undefined;
|
|
325
|
+
updateHandle?.finish();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
async function registerCommands(program, argv) {
|
|
329
|
+
const commandName = findCommandName(argv);
|
|
330
|
+
const wantsHelp = argv.includes("--help") || argv.includes("-h");
|
|
331
|
+
const wantsVersion = argv.includes("--version") || argv.includes("-v");
|
|
332
|
+
const knownCommandNames = new Set([
|
|
333
|
+
"init",
|
|
334
|
+
"spec",
|
|
335
|
+
"run",
|
|
336
|
+
"reduce",
|
|
337
|
+
"verify",
|
|
338
|
+
"message",
|
|
339
|
+
"auto",
|
|
340
|
+
"apply",
|
|
341
|
+
"list",
|
|
342
|
+
"prune",
|
|
343
|
+
"mcp",
|
|
344
|
+
]);
|
|
345
|
+
const loadAll = commandName === undefined ||
|
|
346
|
+
(wantsHelp && commandName === undefined) ||
|
|
347
|
+
(commandName !== undefined && !knownCommandNames.has(commandName));
|
|
348
|
+
if (commandName === undefined && wantsVersion && !wantsHelp) {
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (loadAll) {
|
|
352
|
+
program.addCommand((await import("./cli/init.js")).createInitCommand());
|
|
353
|
+
program.addCommand((await import("./cli/spec.js")).createSpecCommand());
|
|
354
|
+
program.addCommand((await import("./cli/run.js")).createRunCommand());
|
|
355
|
+
program.addCommand((await import("./cli/reduce.js")).createReduceCommand());
|
|
356
|
+
program.addCommand((await import("./cli/verify.js")).createVerifyCommand());
|
|
357
|
+
program.addCommand((await import("./cli/message.js")).createMessageCommand());
|
|
358
|
+
program.addCommand((await import("./cli/auto.js")).createAutoCommand());
|
|
359
|
+
program.addCommand((await import("./cli/apply.js")).createApplyCommand());
|
|
360
|
+
program.addCommand((await import("./cli/list.js")).createListCommand());
|
|
361
|
+
program.addCommand((await import("./cli/prune.js")).createPruneCommand());
|
|
362
|
+
program.addCommand((await import("./cli/mcp.js")).createMcpCommand());
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
switch (commandName) {
|
|
366
|
+
case "init":
|
|
367
|
+
program.addCommand((await import("./cli/init.js")).createInitCommand());
|
|
368
|
+
break;
|
|
369
|
+
case "spec":
|
|
370
|
+
program.addCommand((await import("./cli/spec.js")).createSpecCommand());
|
|
371
|
+
break;
|
|
372
|
+
case "run":
|
|
373
|
+
program.addCommand((await import("./cli/run.js")).createRunCommand());
|
|
374
|
+
break;
|
|
375
|
+
case "reduce":
|
|
376
|
+
program.addCommand((await import("./cli/reduce.js")).createReduceCommand());
|
|
377
|
+
break;
|
|
378
|
+
case "verify":
|
|
379
|
+
program.addCommand((await import("./cli/verify.js")).createVerifyCommand());
|
|
380
|
+
break;
|
|
381
|
+
case "message":
|
|
382
|
+
program.addCommand((await import("./cli/message.js")).createMessageCommand());
|
|
383
|
+
break;
|
|
384
|
+
case "auto":
|
|
385
|
+
program.addCommand((await import("./cli/auto.js")).createAutoCommand());
|
|
386
|
+
break;
|
|
387
|
+
case "apply":
|
|
388
|
+
program.addCommand((await import("./cli/apply.js")).createApplyCommand());
|
|
389
|
+
break;
|
|
390
|
+
case "list":
|
|
391
|
+
program.addCommand((await import("./cli/list.js")).createListCommand());
|
|
392
|
+
break;
|
|
393
|
+
case "prune":
|
|
394
|
+
program.addCommand((await import("./cli/prune.js")).createPruneCommand());
|
|
395
|
+
break;
|
|
396
|
+
case "mcp":
|
|
397
|
+
program.addCommand((await import("./cli/mcp.js")).createMcpCommand());
|
|
398
|
+
break;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
function findCommandName(argv) {
|
|
402
|
+
for (let index = 2; index < argv.length; index += 1) {
|
|
403
|
+
const entry = argv[index];
|
|
404
|
+
if (!entry) {
|
|
405
|
+
continue;
|
|
406
|
+
}
|
|
407
|
+
if (entry === "--") {
|
|
408
|
+
return argv[index + 1];
|
|
409
|
+
}
|
|
410
|
+
if (entry.startsWith("-")) {
|
|
411
|
+
continue;
|
|
412
|
+
}
|
|
413
|
+
return entry;
|
|
414
|
+
}
|
|
415
|
+
return undefined;
|
|
119
416
|
}
|
|
120
417
|
function shouldAutorun() {
|
|
121
418
|
if (process.env.VORATIQ_CLI_SKIP_AUTORUN === "1") {
|
|
@@ -139,5 +436,6 @@ function safeRealpath(path) {
|
|
|
139
436
|
}
|
|
140
437
|
}
|
|
141
438
|
if (shouldAutorun()) {
|
|
439
|
+
installProcessGuards();
|
|
142
440
|
void runCli();
|
|
143
441
|
}
|
package/dist/cli/apply.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import type { ApplyResult } from "../commands/apply/types.js";
|
|
3
|
+
import { type CommandOutputWriter } from "./output.js";
|
|
3
4
|
export interface ApplyCommandOptions {
|
|
4
5
|
runId: string;
|
|
5
6
|
agentId: string;
|
|
6
7
|
ignoreBaseMismatch?: boolean;
|
|
8
|
+
commit?: boolean;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
writeOutput?: CommandOutputWriter;
|
|
7
11
|
}
|
|
8
12
|
export interface ApplyCommandResult {
|
|
9
13
|
result: ApplyResult;
|