voratiq 0.1.0-beta.2 → 0.1.0-beta.20
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 +338 -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 +298 -0
- package/dist/cli/contract.js +443 -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 +36 -16
- package/dist/cli/mcp.d.ts +2 -0
- package/dist/cli/mcp.js +16 -0
- package/dist/cli/operator-envelope.d.ts +159 -0
- package/dist/cli/operator-envelope.js +380 -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 +208 -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 +293 -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 +9 -3
- package/dist/commands/list/command.js +487 -40
- 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 +25 -0
- package/dist/commands/reduce/command.js +143 -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 +10 -0
- package/dist/commands/reduce/targets.js +225 -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 +168 -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 +22 -0
- package/dist/commands/verify/command.js +167 -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 +13 -0
- package/dist/commands/verify/targets.d.ts +17 -0
- package/dist/commands/verify/targets.js +288 -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 +11 -0
- package/dist/configs/orchestration/bootstrap.js +101 -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 +87 -0
- package/dist/configs/orchestration/types.js +61 -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 +44 -0
- package/dist/configs/verification/types.js +42 -0
- package/dist/contracts/list.d.ts +173 -0
- package/dist/contracts/list.js +125 -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/reduce/competition/adapter.d.ts +41 -0
- package/dist/domain/reduce/competition/adapter.js +773 -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 +119 -0
- package/dist/domain/reduce/model/types.js +83 -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 +441 -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 +349 -0
- package/dist/domain/verify/competition/prompt.d.ts +19 -0
- package/dist/domain/verify/competition/prompt.js +57 -0
- package/dist/domain/verify/competition/rubric.d.ts +23 -0
- package/dist/domain/verify/competition/rubric.js +71 -0
- package/dist/domain/verify/competition/shared-layout.d.ts +81 -0
- package/dist/domain/verify/competition/shared-layout.js +294 -0
- package/dist/domain/verify/competition/target.d.ts +30 -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 +390 -0
- package/dist/domain/verify/model/types.js +276 -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 +773 -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 +363 -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 +11 -0
- package/dist/preflight/index.js +41 -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 +8 -1
- package/dist/render/transcripts/list.js +97 -15
- 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 +70 -0
- package/dist/render/transcripts/verify.js +403 -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 +149 -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 +87 -8
- package/dist/status/index.js +134 -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 +353 -56
- package/dist/workspace/shim.js +1 -1
- package/dist/workspace/structure.d.ts +83 -26
- package/dist/workspace/structure.js +211 -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 +762 -0
- package/package.json +17 -10
- 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
package/README.md
CHANGED
|
@@ -1,58 +1,70 @@
|
|
|
1
1
|
# Voratiq
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agent ensembles to design, generate, and select the best code for every task.
|
|
4
4
|
|
|
5
|
-

|
|
6
|
+
|
|
7
|
+
No single model wins every task. Run several, keep the best result. [Here's why that works](https://voratiq.com/blog/selection-rather-than-prediction/).
|
|
6
8
|
|
|
7
9
|
## Installation
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Install via npm:
|
|
10
12
|
|
|
11
13
|
```bash
|
|
12
|
-
npm install -g voratiq
|
|
14
|
+
npm install -g voratiq
|
|
13
15
|
```
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Core:
|
|
17
|
+
<details>
|
|
18
|
+
<summary>Requirements</summary>
|
|
18
19
|
|
|
19
20
|
- Node 20+
|
|
20
21
|
- git
|
|
21
|
-
- 1+ AI coding agent (Claude [
|
|
22
|
-
|
|
23
|
-
Platform-specific:
|
|
24
|
-
|
|
22
|
+
- 1+ AI coding agent (Claude [>=2.1.63](https://github.com/anthropics/claude-code?tab=readme-ov-file#get-started), Codex [>=0.107.0](https://github.com/openai/codex?tab=readme-ov-file#quickstart), or Gemini [>=0.31.0](https://github.com/google-gemini/gemini-cli?tab=readme-ov-file#quick-install))
|
|
25
23
|
- macOS: `ripgrep`
|
|
26
24
|
- Linux (Debian/Ubuntu): `bubblewrap`, `socat`, `ripgrep`
|
|
27
25
|
|
|
28
|
-
See the [sandbox runtime docs](https://github.com/anthropic-experimental/sandbox-runtime/blob/1bafa66a2c3ebc52569fc0c1a868e85e778f66a0/README.md#platform-specific-dependencies) for
|
|
26
|
+
See the [sandbox runtime docs](https://github.com/anthropic-experimental/sandbox-runtime/blob/1bafa66a2c3ebc52569fc0c1a868e85e778f66a0/README.md#platform-specific-dependencies) for guidance on the platform-specific dependencies.
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
Windows is not currently supported.
|
|
29
|
+
|
|
30
|
+
</details>
|
|
31
31
|
|
|
32
32
|
## Quick Start
|
|
33
33
|
|
|
34
|
+
Get started with a single command:
|
|
35
|
+
|
|
34
36
|
```bash
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
voratiq
|
|
38
|
+
```
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
cat > specs/fix-auth.md <<EOF
|
|
40
|
-
# Fix Session Timeout Bug
|
|
41
|
-
Users are logged out after 5 minutes instead of 30.
|
|
42
|
-
Sessions should honor SESSION_TIMEOUT_MS (default 30 minutes).
|
|
43
|
-
EOF
|
|
40
|
+
This drops you into an interactive session with an agent of your choice.
|
|
44
41
|
|
|
45
|
-
|
|
46
|
-
voratiq run --spec specs/fix-auth.md
|
|
42
|
+
That agent gets access to Voratiq tools for orchestration and verification.
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
voratiq review --run <run-id>
|
|
44
|
+
Describe what you want built, and the agent can use those tools to:
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
- turn your request into a structured execution plan
|
|
47
|
+
- delegate work to a custom-designed swarm or a multi-stage workflow
|
|
48
|
+
- verify outputs and compare alternatives before choosing what to keep
|
|
49
|
+
- track outcomes across runs to learn which agents and workflows work best
|
|
50
|
+
|
|
51
|
+
You keep the native interactive workflow, with more execution depth and control.
|
|
52
|
+
|
|
53
|
+
## Documentation
|
|
54
|
+
|
|
55
|
+
Start here:
|
|
56
|
+
|
|
57
|
+
- [Tutorial](https://github.com/voratiq/voratiq/blob/main/docs/tutorial.md) - End-to-end walkthrough
|
|
58
|
+
- [CLI Reference](https://github.com/voratiq/voratiq/blob/main/docs/cli-reference.md) - Commands and options
|
|
59
|
+
- [Core Concepts](https://github.com/voratiq/voratiq/blob/main/docs/core-concepts.md) - Workflow model and design rationale
|
|
60
|
+
|
|
61
|
+
Configuration:
|
|
54
62
|
|
|
55
|
-
|
|
63
|
+
- [Agents](https://github.com/voratiq/voratiq/blob/main/docs/configs/agents.md) - Agent catalog and invocation details
|
|
64
|
+
- [Orchestration](https://github.com/voratiq/voratiq/blob/main/docs/configs/orchestration.md) - Which agents run at each stage
|
|
65
|
+
- [Verification](https://github.com/voratiq/voratiq/blob/main/docs/configs/verification.md) - How agent outputs are checked and scored before selection
|
|
66
|
+
- [Environment](https://github.com/voratiq/voratiq/blob/main/docs/configs/environment.md) - Runtime dependencies for agents
|
|
67
|
+
- [Sandbox](https://github.com/voratiq/voratiq/blob/main/docs/configs/sandbox.md) - Network and filesystem restrictions
|
|
56
68
|
|
|
57
69
|
## License
|
|
58
70
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ProviderTranscriptBaseline } from "../../workspace/chat/artifacts.js";
|
|
2
|
+
import type { ChatArtifactFormat } from "../../workspace/chat/types.js";
|
|
3
|
+
export interface LaunchArtifactCaptureResult {
|
|
4
|
+
readonly captured: boolean;
|
|
5
|
+
readonly format?: ChatArtifactFormat;
|
|
6
|
+
readonly artifactPath?: string;
|
|
7
|
+
readonly sourceCount?: number;
|
|
8
|
+
readonly error?: unknown;
|
|
9
|
+
}
|
|
10
|
+
export interface LaunchArtifactCaptureContext {
|
|
11
|
+
readonly searchEnv?: NodeJS.ProcessEnv;
|
|
12
|
+
readonly baseline?: ProviderTranscriptBaseline;
|
|
13
|
+
}
|
|
14
|
+
export declare function prepareProviderArtifactCaptureContext(options: {
|
|
15
|
+
providerId: string | undefined;
|
|
16
|
+
sessionRoot: string;
|
|
17
|
+
searchEnv?: NodeJS.ProcessEnv;
|
|
18
|
+
}): Promise<LaunchArtifactCaptureContext | undefined>;
|
|
19
|
+
export declare function collectProviderArtifacts(options: {
|
|
20
|
+
providerId: string | undefined;
|
|
21
|
+
sessionRoot: string;
|
|
22
|
+
captureContext?: LaunchArtifactCaptureContext;
|
|
23
|
+
}): Promise<LaunchArtifactCaptureResult>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { preserveProviderChatTranscripts, snapshotProviderTranscripts, } from "../../workspace/chat/artifacts.js";
|
|
2
|
+
export async function prepareProviderArtifactCaptureContext(options) {
|
|
3
|
+
const providerId = options.providerId ?? "";
|
|
4
|
+
if (!providerId) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
searchEnv: options.searchEnv,
|
|
9
|
+
baseline: await snapshotProviderTranscripts({
|
|
10
|
+
providerId,
|
|
11
|
+
agentRoot: options.sessionRoot,
|
|
12
|
+
searchEnv: options.searchEnv,
|
|
13
|
+
}),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export async function collectProviderArtifacts(options) {
|
|
17
|
+
const providerId = options.providerId ?? "";
|
|
18
|
+
if (!providerId) {
|
|
19
|
+
return { captured: false };
|
|
20
|
+
}
|
|
21
|
+
const result = await preserveProviderChatTranscripts({
|
|
22
|
+
providerId,
|
|
23
|
+
agentRoot: options.sessionRoot,
|
|
24
|
+
searchEnv: options.captureContext?.searchEnv,
|
|
25
|
+
baseline: options.captureContext?.baseline,
|
|
26
|
+
});
|
|
27
|
+
const format = result.format;
|
|
28
|
+
if ((result.status === "captured" || result.status === "already-exists") &&
|
|
29
|
+
format) {
|
|
30
|
+
return {
|
|
31
|
+
captured: true,
|
|
32
|
+
format,
|
|
33
|
+
artifactPath: result.artifactPath,
|
|
34
|
+
sourceCount: result.sourceCount,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (result.status === "not-found") {
|
|
38
|
+
return { captured: false };
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
captured: false,
|
|
42
|
+
error: result.status === "error" ? result.error : undefined,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type EnvironmentConfig } from "../../configs/environment/types.js";
|
|
2
|
+
export declare function composeLaunchEnvironment(options: {
|
|
3
|
+
baseEnv: Record<string, string>;
|
|
4
|
+
workspacePath: string;
|
|
5
|
+
environment: EnvironmentConfig;
|
|
6
|
+
}): Promise<Record<string, string>>;
|
|
7
|
+
export declare function mergePathEntries(prepends: readonly string[], existing: string): string;
|
|
8
|
+
export declare function normalizeRelative(origin: string, target: string): string;
|
|
@@ -1,30 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
export async function writeAgentManifest(options) {
|
|
7
|
-
const { agent, workspacePaths, env = {}, environment } = options;
|
|
8
|
-
const { promptPath, runtimeManifestPath, workspacePath } = workspacePaths;
|
|
9
|
-
const manifestDir = dirname(runtimeManifestPath);
|
|
10
|
-
const manifestEnv = await composeManifestEnvironment({
|
|
11
|
-
baseEnv: env,
|
|
12
|
-
workspacePath,
|
|
13
|
-
environment,
|
|
14
|
-
});
|
|
15
|
-
const manifest = {
|
|
16
|
-
binary: agent.binary,
|
|
17
|
-
argv: [...agent.argv],
|
|
18
|
-
promptPath: normalizeRelative(manifestDir, promptPath),
|
|
19
|
-
workspace: normalizeRelative(manifestDir, workspacePath),
|
|
20
|
-
env: manifestEnv,
|
|
21
|
-
};
|
|
22
|
-
const manifestJson = `${JSON.stringify(manifest, null, 2)}\n`;
|
|
23
|
-
await mkdir(dirname(runtimeManifestPath), { recursive: true });
|
|
24
|
-
await writeFile(runtimeManifestPath, manifestJson, { encoding: "utf8" });
|
|
25
|
-
return manifestEnv;
|
|
26
|
-
}
|
|
27
|
-
export async function composeManifestEnvironment(options) {
|
|
1
|
+
import { delimiter, relative as relativePath } from "node:path";
|
|
2
|
+
import { getNodeDependencyRoots, getPythonEnvironmentPath, } from "../../configs/environment/types.js";
|
|
3
|
+
import { pathExists } from "../../utils/fs.js";
|
|
4
|
+
import { resolvePath } from "../../utils/path.js";
|
|
5
|
+
export async function composeLaunchEnvironment(options) {
|
|
28
6
|
const { baseEnv, workspacePath, environment } = options;
|
|
29
7
|
const result = { ...baseEnv };
|
|
30
8
|
const pathPrepends = [];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
const PROMPT_TMP_PREFIX = "prompt.ephemeral";
|
|
5
|
+
export async function writeStagedPrompt(options) {
|
|
6
|
+
const { runtimePath, prompt, prefix = PROMPT_TMP_PREFIX } = options;
|
|
7
|
+
const nonce = randomBytes(8).toString("hex");
|
|
8
|
+
const path = join(runtimePath, `${prefix}.${nonce}.txt`);
|
|
9
|
+
await mkdir(dirname(path), { recursive: true });
|
|
10
|
+
await writeFile(path, prompt, { encoding: "utf8" });
|
|
11
|
+
return path;
|
|
12
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { AuthProvider, AuthRuntimeContext } from "../../auth/providers/types.js";
|
|
2
|
+
import type { AgentDefinition } from "../../configs/agents/types.js";
|
|
3
|
+
export interface StagedProviderStateContext {
|
|
4
|
+
provider: AuthProvider;
|
|
5
|
+
sandboxPath: string;
|
|
6
|
+
runtime: AuthRuntimeContext;
|
|
7
|
+
agentId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface StageProviderStateOptions {
|
|
10
|
+
agent: AgentDefinition;
|
|
11
|
+
agentRoot: string;
|
|
12
|
+
root: string;
|
|
13
|
+
runId?: string;
|
|
14
|
+
runtime?: AuthRuntimeContext;
|
|
15
|
+
includeConfigToml?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface StageProviderStateResult {
|
|
18
|
+
env: Record<string, string>;
|
|
19
|
+
context: StagedProviderStateContext;
|
|
20
|
+
}
|
|
21
|
+
export type AgentProviderResolutionCode = "missing_provider" | "unknown_provider";
|
|
22
|
+
export interface AgentProviderResolutionFailure {
|
|
23
|
+
ok: false;
|
|
24
|
+
code: AgentProviderResolutionCode;
|
|
25
|
+
message: string;
|
|
26
|
+
}
|
|
27
|
+
export interface AgentProviderResolutionSuccess {
|
|
28
|
+
ok: true;
|
|
29
|
+
provider: AuthProvider;
|
|
30
|
+
}
|
|
31
|
+
export type AgentProviderResolutionResult = AgentProviderResolutionFailure | AgentProviderResolutionSuccess;
|
|
32
|
+
export declare function resolveAgentProviderForDefinition(agent: Pick<AgentDefinition, "id" | "provider">): AgentProviderResolutionResult;
|
|
33
|
+
export declare function stageAgentProviderState(options: StageProviderStateOptions): Promise<StageProviderStateResult>;
|
|
34
|
+
export declare function teardownProviderState(context: StagedProviderStateContext | undefined): Promise<void>;
|
|
35
|
+
export declare function extractProviderErrorMessage(error: unknown): string;
|
|
36
|
+
export declare class ProviderResolutionError extends Error {
|
|
37
|
+
readonly code: AgentProviderResolutionCode;
|
|
38
|
+
constructor(code: AgentProviderResolutionCode, message: string);
|
|
39
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { rm } from "node:fs/promises";
|
|
2
|
+
import { resolveAuthProvider } from "../../auth/providers/index.js";
|
|
3
|
+
import { buildAuthRuntimeContext } from "../../auth/runtime.js";
|
|
4
|
+
import { loadRepoSettings } from "../../configs/settings/loader.js";
|
|
5
|
+
import { toErrorMessage } from "../../utils/errors.js";
|
|
6
|
+
import { isFileSystemError } from "../../utils/fs.js";
|
|
7
|
+
export function resolveAgentProviderForDefinition(agent) {
|
|
8
|
+
const providerId = agent.provider?.trim();
|
|
9
|
+
if (!providerId) {
|
|
10
|
+
return {
|
|
11
|
+
ok: false,
|
|
12
|
+
code: "missing_provider",
|
|
13
|
+
message: `Agent \`${agent.id}\` is missing a provider.`,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const provider = resolveAuthProvider(providerId);
|
|
17
|
+
if (!provider) {
|
|
18
|
+
return {
|
|
19
|
+
ok: false,
|
|
20
|
+
code: "unknown_provider",
|
|
21
|
+
message: `Unknown auth provider \`${providerId}\`.`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return { ok: true, provider };
|
|
25
|
+
}
|
|
26
|
+
export async function stageAgentProviderState(options) {
|
|
27
|
+
const runtime = options.runtime ?? buildAuthRuntimeContext();
|
|
28
|
+
const resolution = resolveAgentProviderForDefinition(options.agent);
|
|
29
|
+
if (!resolution.ok) {
|
|
30
|
+
throw new ProviderResolutionError(resolution.code, resolution.message);
|
|
31
|
+
}
|
|
32
|
+
const includeConfigToml = options.includeConfigToml ?? shouldIncludeCodexConfigToml(options.root);
|
|
33
|
+
const stageResult = await resolution.provider.stage({
|
|
34
|
+
agentId: options.agent.id,
|
|
35
|
+
agentRoot: options.agentRoot,
|
|
36
|
+
runtime,
|
|
37
|
+
runId: options.runId ?? "runtime",
|
|
38
|
+
root: options.root,
|
|
39
|
+
includeConfigToml,
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
env: stageResult.env,
|
|
43
|
+
context: {
|
|
44
|
+
provider: resolution.provider,
|
|
45
|
+
sandboxPath: stageResult.sandboxPath,
|
|
46
|
+
runtime,
|
|
47
|
+
agentId: options.agent.id,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export async function teardownProviderState(context) {
|
|
52
|
+
if (!context) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (tornDownContexts.has(context)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
tornDownContexts.add(context);
|
|
59
|
+
try {
|
|
60
|
+
if (context.provider.teardown) {
|
|
61
|
+
try {
|
|
62
|
+
await context.provider.teardown({
|
|
63
|
+
sandboxPath: context.sandboxPath,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (!isIgnorableTeardownError(error)) {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
await rm(context.sandboxPath, { recursive: true, force: true });
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
tornDownContexts.delete(context);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export function extractProviderErrorMessage(error) {
|
|
80
|
+
if (error instanceof Error && error.message) {
|
|
81
|
+
return error.message;
|
|
82
|
+
}
|
|
83
|
+
return toErrorMessage(error);
|
|
84
|
+
}
|
|
85
|
+
const tornDownContexts = new WeakSet();
|
|
86
|
+
function shouldIncludeCodexConfigToml(root) {
|
|
87
|
+
const settings = loadRepoSettings({ root });
|
|
88
|
+
return settings.bounded.codex.globalConfigPolicy !== "ignore";
|
|
89
|
+
}
|
|
90
|
+
function isIgnorableTeardownError(error) {
|
|
91
|
+
if (!isFileSystemError(error)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return error.code === "ENOENT";
|
|
95
|
+
}
|
|
96
|
+
export class ProviderResolutionError extends Error {
|
|
97
|
+
code;
|
|
98
|
+
constructor(code, message) {
|
|
99
|
+
super(message);
|
|
100
|
+
this.code = code;
|
|
101
|
+
this.name = "ProviderResolutionError";
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AuthRuntimeContext } from "../../auth/providers/types.js";
|
|
2
|
+
import type { AgentDefinition } from "../../configs/agents/types.js";
|
|
3
|
+
import { type StagedProviderStateContext } from "../launch/provider-state.js";
|
|
4
|
+
export interface StagedAuthContext {
|
|
5
|
+
provider: StagedProviderStateContext["provider"];
|
|
6
|
+
sandboxPath: StagedProviderStateContext["sandboxPath"];
|
|
7
|
+
runtime: StagedProviderStateContext["runtime"];
|
|
8
|
+
agentId: StagedProviderStateContext["agentId"];
|
|
9
|
+
}
|
|
10
|
+
export interface StageAuthOptions {
|
|
11
|
+
agent: AgentDefinition;
|
|
12
|
+
agentRoot: string;
|
|
13
|
+
root: string;
|
|
14
|
+
runId?: string;
|
|
15
|
+
runtime?: AuthRuntimeContext;
|
|
16
|
+
}
|
|
17
|
+
export interface StageAuthResult {
|
|
18
|
+
env: Record<string, string>;
|
|
19
|
+
context: StagedAuthContext;
|
|
20
|
+
}
|
|
21
|
+
export interface AgentProviderPreflightIssue {
|
|
22
|
+
readonly agentId: string;
|
|
23
|
+
readonly message: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function verifyAgentProviders(agents: readonly Pick<AgentDefinition, "id" | "provider">[]): Promise<readonly AgentProviderPreflightIssue[]>;
|
|
26
|
+
export declare function stageAgentAuth(options: StageAuthOptions): Promise<StageAuthResult>;
|
|
27
|
+
export declare function teardownAuthContext(context: StagedAuthContext | undefined): Promise<void>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { resolveAuthProvider } from "../../auth/providers/index.js";
|
|
2
|
+
import { buildAuthRuntimeContext } from "../../auth/runtime.js";
|
|
3
|
+
import { extractProviderErrorMessage, ProviderResolutionError, stageAgentProviderState, teardownProviderState, } from "../launch/provider-state.js";
|
|
4
|
+
import { AuthProviderStageError, MissingAgentProviderError, UnknownAuthProviderError, } from "./errors.js";
|
|
5
|
+
import { getRunCommand } from "./launcher.js";
|
|
6
|
+
import { checkPlatformSupport } from "./sandbox.js";
|
|
7
|
+
export async function verifyAgentProviders(agents) {
|
|
8
|
+
if (agents.length === 0) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
// Ensure platform and runtime dependencies are present.
|
|
12
|
+
checkPlatformSupport();
|
|
13
|
+
await getRunCommand();
|
|
14
|
+
const runtime = buildAuthRuntimeContext();
|
|
15
|
+
const issues = [];
|
|
16
|
+
for (const agent of agents) {
|
|
17
|
+
const providerId = agent.provider?.trim();
|
|
18
|
+
if (!providerId) {
|
|
19
|
+
issues.push({ agentId: agent.id, message: "missing `provider`" });
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const provider = resolveAuthProvider(providerId);
|
|
23
|
+
if (!provider) {
|
|
24
|
+
issues.push({
|
|
25
|
+
agentId: agent.id,
|
|
26
|
+
message: `unknown auth provider \`${providerId}\``,
|
|
27
|
+
});
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
await provider.verify({ agentId: agent.id, runtime });
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
pushIssueLines(issues, agent.id, extractAuthProviderMessage(error));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return issues;
|
|
38
|
+
}
|
|
39
|
+
export async function stageAgentAuth(options) {
|
|
40
|
+
try {
|
|
41
|
+
return await stageAgentProviderState(options);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (error instanceof ProviderResolutionError) {
|
|
45
|
+
if (error.code === "missing_provider") {
|
|
46
|
+
throw new MissingAgentProviderError(options.agent.id);
|
|
47
|
+
}
|
|
48
|
+
const providerId = options.agent.provider?.trim() ?? "";
|
|
49
|
+
throw new UnknownAuthProviderError(providerId);
|
|
50
|
+
}
|
|
51
|
+
throw new AuthProviderStageError(extractAuthProviderMessage(error));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export async function teardownAuthContext(context) {
|
|
55
|
+
await teardownProviderState(context);
|
|
56
|
+
}
|
|
57
|
+
function extractAuthProviderMessage(error) {
|
|
58
|
+
return extractProviderErrorMessage(error);
|
|
59
|
+
}
|
|
60
|
+
function pushIssueLines(issues, agentId, message) {
|
|
61
|
+
const lines = message
|
|
62
|
+
.split(/\r?\n/u)
|
|
63
|
+
.map((line) => line.trim())
|
|
64
|
+
.filter((line) => line.length > 0);
|
|
65
|
+
if (lines.length === 0) {
|
|
66
|
+
issues.push({ agentId, message: "unknown error" });
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for (const line of lines) {
|
|
70
|
+
issues.push({ agentId, message: line });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DisplayableError } from "../../utils/errors.js";
|
|
2
|
+
export type AgentRuntimeErrorKind = "auth" | "manifest" | "sandbox" | "process";
|
|
3
|
+
export declare class AgentRuntimeError extends DisplayableError {
|
|
4
|
+
readonly kind: AgentRuntimeErrorKind;
|
|
5
|
+
constructor(kind: AgentRuntimeErrorKind, message: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class MissingAgentProviderError extends AgentRuntimeError {
|
|
8
|
+
constructor(agentId: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class UnknownAuthProviderError extends AgentRuntimeError {
|
|
11
|
+
constructor(providerId: string);
|
|
12
|
+
}
|
|
13
|
+
export declare class AuthProviderVerificationError extends AgentRuntimeError {
|
|
14
|
+
constructor(detail: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class AuthProviderStageError extends AgentRuntimeError {
|
|
17
|
+
constructor(detail: string);
|
|
18
|
+
}
|
|
19
|
+
export declare class AgentRuntimeManifestError extends AgentRuntimeError {
|
|
20
|
+
constructor(detail: string);
|
|
21
|
+
}
|
|
22
|
+
export declare class AgentRuntimeSandboxError extends AgentRuntimeError {
|
|
23
|
+
constructor(detail: string);
|
|
24
|
+
}
|
|
25
|
+
export declare class AgentRuntimeProcessError extends AgentRuntimeError {
|
|
26
|
+
constructor(detail: string);
|
|
27
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { DisplayableError } from "../../utils/errors.js";
|
|
2
|
+
export class AgentRuntimeError extends DisplayableError {
|
|
3
|
+
kind;
|
|
4
|
+
constructor(kind, message) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.kind = kind;
|
|
7
|
+
this.name = "AgentRuntimeError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export class MissingAgentProviderError extends AgentRuntimeError {
|
|
11
|
+
constructor(agentId) {
|
|
12
|
+
super("auth", `Agent \`${agentId}\` is missing a provider.`);
|
|
13
|
+
this.name = "MissingAgentProviderError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class UnknownAuthProviderError extends AgentRuntimeError {
|
|
17
|
+
constructor(providerId) {
|
|
18
|
+
super("auth", `Unknown auth provider \`${providerId}\`.`);
|
|
19
|
+
this.name = "UnknownAuthProviderError";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class AuthProviderVerificationError extends AgentRuntimeError {
|
|
23
|
+
constructor(detail) {
|
|
24
|
+
super("auth", detail);
|
|
25
|
+
this.name = "AuthProviderVerificationError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class AuthProviderStageError extends AgentRuntimeError {
|
|
29
|
+
constructor(detail) {
|
|
30
|
+
super("auth", detail);
|
|
31
|
+
this.name = "AuthProviderStageError";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class AgentRuntimeManifestError extends AgentRuntimeError {
|
|
35
|
+
constructor(detail) {
|
|
36
|
+
super("manifest", detail);
|
|
37
|
+
this.name = "AgentRuntimeManifestError";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export class AgentRuntimeSandboxError extends AgentRuntimeError {
|
|
41
|
+
constructor(detail) {
|
|
42
|
+
super("sandbox", detail);
|
|
43
|
+
this.name = "AgentRuntimeSandboxError";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export class AgentRuntimeProcessError extends AgentRuntimeError {
|
|
47
|
+
constructor(detail) {
|
|
48
|
+
super("process", detail);
|
|
49
|
+
this.name = "AgentRuntimeProcessError";
|
|
50
|
+
}
|
|
51
|
+
}
|