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
|
@@ -1,10 +1,39 @@
|
|
|
1
1
|
export declare const MODEL_PLACEHOLDER: "{{MODEL}}";
|
|
2
2
|
export interface AgentDefault {
|
|
3
|
+
readonly id: string;
|
|
3
4
|
readonly provider: string;
|
|
4
5
|
readonly model: string;
|
|
6
|
+
readonly extraArgs?: readonly string[];
|
|
5
7
|
readonly argv: readonly string[];
|
|
8
|
+
readonly runOnly?: true;
|
|
9
|
+
}
|
|
10
|
+
export declare const AGENT_PRESET_CHOICES: readonly ["pro", "lite", "manual"];
|
|
11
|
+
export type AgentPreset = (typeof AGENT_PRESET_CHOICES)[number];
|
|
12
|
+
export type BuiltinAgentProvider = "claude" | "codex" | "gemini";
|
|
13
|
+
export interface AgentCatalogEntry {
|
|
14
|
+
readonly provider: BuiltinAgentProvider;
|
|
15
|
+
readonly model: string;
|
|
16
|
+
readonly id?: string;
|
|
17
|
+
readonly extraArgs?: readonly string[];
|
|
18
|
+
readonly runOnly?: true;
|
|
6
19
|
}
|
|
7
20
|
export declare function sanitizeAgentIdFromModel(model: string): string;
|
|
8
|
-
export declare
|
|
21
|
+
export declare function getAgentDefaultId(agentDefault: {
|
|
22
|
+
readonly id: string;
|
|
23
|
+
}): string;
|
|
24
|
+
export declare const PRO_AGENT_DEFAULTS: readonly AgentDefault[];
|
|
25
|
+
export declare const LITE_AGENT_DEFAULTS: readonly AgentDefault[];
|
|
26
|
+
export declare const BUILTIN_AGENT_DEFAULTS: readonly AgentDefault[];
|
|
27
|
+
interface AgentCatalogGuardrailInput {
|
|
28
|
+
readonly builtinCatalog: readonly AgentCatalogEntry[];
|
|
29
|
+
readonly presetCatalogs: readonly {
|
|
30
|
+
readonly presetName: Exclude<AgentPreset, "manual">;
|
|
31
|
+
readonly catalog: readonly AgentCatalogEntry[];
|
|
32
|
+
}[];
|
|
33
|
+
}
|
|
34
|
+
export declare function assertAgentCatalogGuardrails(input: AgentCatalogGuardrailInput): void;
|
|
9
35
|
export declare function getDefaultAgentIdByProvider(provider: string): string | undefined;
|
|
10
|
-
export declare function getAgentDefault(
|
|
36
|
+
export declare function getAgentDefault(reference: string): AgentDefault | undefined;
|
|
37
|
+
export declare function getAgentDefaultsForPreset(preset: AgentPreset): readonly AgentDefault[];
|
|
38
|
+
export declare function getSupportedAgentDefaults(): readonly AgentDefault[];
|
|
39
|
+
export {};
|
|
@@ -1,59 +1,375 @@
|
|
|
1
|
+
import { sanitizeSlug } from "../../utils/slug.js";
|
|
1
2
|
export const MODEL_PLACEHOLDER = "{{MODEL}}";
|
|
3
|
+
export const AGENT_PRESET_CHOICES = ["pro", "lite", "manual"];
|
|
4
|
+
const CLAUDE_DEFAULT_ARGV = [
|
|
5
|
+
"--model",
|
|
6
|
+
MODEL_PLACEHOLDER,
|
|
7
|
+
"--output-format",
|
|
8
|
+
"json",
|
|
9
|
+
"--dangerously-skip-permissions",
|
|
10
|
+
"-p",
|
|
11
|
+
];
|
|
12
|
+
const CODEX_DEFAULT_ARGV = [
|
|
13
|
+
"exec",
|
|
14
|
+
"--model",
|
|
15
|
+
MODEL_PLACEHOLDER,
|
|
16
|
+
"--experimental-json",
|
|
17
|
+
"--dangerously-bypass-approvals-and-sandbox",
|
|
18
|
+
];
|
|
19
|
+
const GEMINI_DEFAULT_ARGV = [
|
|
20
|
+
"--model",
|
|
21
|
+
MODEL_PLACEHOLDER,
|
|
22
|
+
"--output-format",
|
|
23
|
+
"json",
|
|
24
|
+
"--yolo",
|
|
25
|
+
];
|
|
26
|
+
const DEFAULT_ARGV_BY_PROVIDER = {
|
|
27
|
+
claude: CLAUDE_DEFAULT_ARGV,
|
|
28
|
+
codex: CODEX_DEFAULT_ARGV,
|
|
29
|
+
gemini: GEMINI_DEFAULT_ARGV,
|
|
30
|
+
};
|
|
2
31
|
export function sanitizeAgentIdFromModel(model) {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
32
|
+
const sanitized = sanitizeSlug(model);
|
|
33
|
+
if (!sanitized) {
|
|
34
|
+
throw new Error(`Unable to derive agent id from model "${model}". Provide a model identifier with at least one alphanumeric character.`);
|
|
35
|
+
}
|
|
36
|
+
return sanitized;
|
|
37
|
+
}
|
|
38
|
+
export function getAgentDefaultId(agentDefault) {
|
|
39
|
+
return agentDefault.id;
|
|
40
|
+
}
|
|
41
|
+
function resolveAgentCatalogEntryId(entry) {
|
|
42
|
+
const explicit = entry.id?.trim();
|
|
43
|
+
if (explicit) {
|
|
44
|
+
return explicit;
|
|
9
45
|
}
|
|
10
|
-
return
|
|
46
|
+
return sanitizeAgentIdFromModel(entry.model);
|
|
11
47
|
}
|
|
12
|
-
|
|
48
|
+
function generateAgentDefaults(entries) {
|
|
49
|
+
return entries.map(({ provider, model, id, extraArgs, runOnly }) => ({
|
|
50
|
+
id: resolveAgentCatalogEntryId({ id, model }),
|
|
51
|
+
provider,
|
|
52
|
+
model,
|
|
53
|
+
extraArgs: extraArgs && extraArgs.length > 0 ? [...extraArgs] : undefined,
|
|
54
|
+
argv: DEFAULT_ARGV_BY_PROVIDER[provider],
|
|
55
|
+
...(runOnly ? { runOnly } : {}),
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
const DEFAULT_AGENT_CATALOG_ENTRIES = [
|
|
59
|
+
{
|
|
60
|
+
id: "claude-haiku-4-5-20251001",
|
|
61
|
+
provider: "claude",
|
|
62
|
+
model: "claude-haiku-4-5-20251001",
|
|
63
|
+
extraArgs: ["--effort", "high"],
|
|
64
|
+
},
|
|
13
65
|
{
|
|
66
|
+
id: "claude-sonnet-4-5-20250929",
|
|
14
67
|
provider: "claude",
|
|
15
68
|
model: "claude-sonnet-4-5-20250929",
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
69
|
+
extraArgs: ["--effort", "high"],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: "claude-sonnet-4-6",
|
|
73
|
+
provider: "claude",
|
|
74
|
+
model: "claude-sonnet-4-6",
|
|
75
|
+
extraArgs: ["--effort", "high"],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: "claude-opus-4-5-20251101",
|
|
79
|
+
provider: "claude",
|
|
80
|
+
model: "claude-opus-4-5-20251101",
|
|
81
|
+
extraArgs: ["--effort", "high"],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "claude-opus-4-6",
|
|
85
|
+
provider: "claude",
|
|
86
|
+
model: "claude-opus-4-6",
|
|
87
|
+
extraArgs: ["--effort", "high"],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: "gpt-5-codex",
|
|
91
|
+
provider: "codex",
|
|
92
|
+
model: "gpt-5-codex",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "gpt-5-1-codex-mini",
|
|
96
|
+
provider: "codex",
|
|
97
|
+
model: "gpt-5.1-codex-mini",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: "gpt-5-1-codex",
|
|
101
|
+
provider: "codex",
|
|
102
|
+
model: "gpt-5.1-codex",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "gpt-5-1-codex-max",
|
|
106
|
+
provider: "codex",
|
|
107
|
+
model: "gpt-5.1-codex-max",
|
|
24
108
|
},
|
|
25
109
|
{
|
|
110
|
+
id: "gpt-5-1-codex-max-xhigh",
|
|
111
|
+
provider: "codex",
|
|
112
|
+
model: "gpt-5.1-codex-max",
|
|
113
|
+
extraArgs: ["--config", "model_reasoning_effort=xhigh"],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: "gpt-5-2",
|
|
117
|
+
provider: "codex",
|
|
118
|
+
model: "gpt-5.2",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: "gpt-5-2-high",
|
|
122
|
+
provider: "codex",
|
|
123
|
+
model: "gpt-5.2",
|
|
124
|
+
extraArgs: ["--config", "model_reasoning_effort=high"],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: "gpt-5-2-xhigh",
|
|
128
|
+
provider: "codex",
|
|
129
|
+
model: "gpt-5.2",
|
|
130
|
+
extraArgs: ["--config", "model_reasoning_effort=xhigh"],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: "gpt-5-2-codex",
|
|
134
|
+
provider: "codex",
|
|
135
|
+
model: "gpt-5.2-codex",
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: "gpt-5-2-codex-high",
|
|
139
|
+
provider: "codex",
|
|
140
|
+
model: "gpt-5.2-codex",
|
|
141
|
+
extraArgs: ["--config", "model_reasoning_effort=high"],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: "gpt-5-2-codex-xhigh",
|
|
26
145
|
provider: "codex",
|
|
27
146
|
model: "gpt-5.2-codex",
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"-c",
|
|
35
|
-
"mcp_servers={}",
|
|
36
|
-
],
|
|
147
|
+
extraArgs: ["--config", "model_reasoning_effort=xhigh"],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: "gpt-5-3-codex-spark",
|
|
151
|
+
provider: "codex",
|
|
152
|
+
model: "gpt-5.3-codex-spark",
|
|
37
153
|
},
|
|
38
154
|
{
|
|
155
|
+
id: "gpt-5-3-codex",
|
|
156
|
+
provider: "codex",
|
|
157
|
+
model: "gpt-5.3-codex",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
id: "gpt-5-3-codex-high",
|
|
161
|
+
provider: "codex",
|
|
162
|
+
model: "gpt-5.3-codex",
|
|
163
|
+
extraArgs: ["--config", "model_reasoning_effort=high"],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: "gpt-5-3-codex-xhigh",
|
|
167
|
+
provider: "codex",
|
|
168
|
+
model: "gpt-5.3-codex",
|
|
169
|
+
extraArgs: ["--config", "model_reasoning_effort=xhigh"],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
id: "gpt-5-4-mini",
|
|
173
|
+
provider: "codex",
|
|
174
|
+
model: "gpt-5.4-mini",
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
id: "gpt-5-4",
|
|
178
|
+
provider: "codex",
|
|
179
|
+
model: "gpt-5.4",
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
id: "gpt-5-4-high",
|
|
183
|
+
provider: "codex",
|
|
184
|
+
model: "gpt-5.4",
|
|
185
|
+
extraArgs: ["--config", "model_reasoning_effort=high"],
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: "gpt-5-4-xhigh",
|
|
189
|
+
provider: "codex",
|
|
190
|
+
model: "gpt-5.4",
|
|
191
|
+
extraArgs: ["--config", "model_reasoning_effort=xhigh"],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: "gemini-2-5-flash",
|
|
195
|
+
provider: "gemini",
|
|
196
|
+
model: "gemini-2.5-flash",
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: "gemini-2-5-flash-lite",
|
|
200
|
+
provider: "gemini",
|
|
201
|
+
model: "gemini-2.5-flash-lite",
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: "gemini-3-flash-preview",
|
|
205
|
+
provider: "gemini",
|
|
206
|
+
model: "gemini-3-flash-preview",
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
id: "gemini-2-5-pro",
|
|
39
210
|
provider: "gemini",
|
|
40
211
|
model: "gemini-2.5-pro",
|
|
41
|
-
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: "gemini-3-1-pro-preview",
|
|
215
|
+
provider: "gemini",
|
|
216
|
+
model: "gemini-3.1-pro-preview",
|
|
217
|
+
},
|
|
218
|
+
];
|
|
219
|
+
const PRO_AGENT_PRESET_ENTRIES = [
|
|
220
|
+
{
|
|
221
|
+
id: "claude-opus-4-6",
|
|
222
|
+
provider: "claude",
|
|
223
|
+
model: "claude-opus-4-6",
|
|
224
|
+
extraArgs: ["--effort", "high"],
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
id: "gpt-5-4-high",
|
|
228
|
+
provider: "codex",
|
|
229
|
+
model: "gpt-5.4",
|
|
230
|
+
extraArgs: ["--config", "model_reasoning_effort=high"],
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: "gemini-3-1-pro-preview",
|
|
234
|
+
provider: "gemini",
|
|
235
|
+
model: "gemini-3.1-pro-preview",
|
|
236
|
+
runOnly: true,
|
|
237
|
+
},
|
|
238
|
+
];
|
|
239
|
+
const LITE_AGENT_PRESET_ENTRIES = [
|
|
240
|
+
{
|
|
241
|
+
id: "claude-haiku-4-5-20251001",
|
|
242
|
+
provider: "claude",
|
|
243
|
+
model: "claude-haiku-4-5-20251001",
|
|
244
|
+
extraArgs: ["--effort", "high"],
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
id: "gpt-5-3-codex-spark",
|
|
248
|
+
provider: "codex",
|
|
249
|
+
model: "gpt-5.3-codex-spark",
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
id: "gemini-3-flash-preview",
|
|
253
|
+
provider: "gemini",
|
|
254
|
+
model: "gemini-3-flash-preview",
|
|
255
|
+
runOnly: true,
|
|
42
256
|
},
|
|
43
257
|
];
|
|
44
|
-
const
|
|
258
|
+
export const PRO_AGENT_DEFAULTS = generateAgentDefaults(PRO_AGENT_PRESET_ENTRIES);
|
|
259
|
+
export const LITE_AGENT_DEFAULTS = generateAgentDefaults(LITE_AGENT_PRESET_ENTRIES);
|
|
260
|
+
export const BUILTIN_AGENT_DEFAULTS = generateAgentDefaults(DEFAULT_AGENT_CATALOG_ENTRIES);
|
|
261
|
+
export function assertAgentCatalogGuardrails(input) {
|
|
262
|
+
const supportedDefaults = generateAgentDefaults(input.builtinCatalog);
|
|
263
|
+
const byId = new Map();
|
|
264
|
+
for (const agentDefault of supportedDefaults) {
|
|
265
|
+
const existing = byId.get(agentDefault.id);
|
|
266
|
+
if (existing) {
|
|
267
|
+
throw new Error(`SUPPORTED_AGENT_CATALOG contains duplicate agent id "${agentDefault.id}" for "${existing.model}" and "${agentDefault.model}".`);
|
|
268
|
+
}
|
|
269
|
+
byId.set(agentDefault.id, agentDefault);
|
|
270
|
+
}
|
|
271
|
+
for (const { presetName, catalog } of input.presetCatalogs) {
|
|
272
|
+
const presetDefaults = generateAgentDefaults(catalog);
|
|
273
|
+
const seenPresetIds = new Set();
|
|
274
|
+
for (const presetDefault of presetDefaults) {
|
|
275
|
+
if (seenPresetIds.has(presetDefault.id)) {
|
|
276
|
+
throw new Error(`${presetName.toUpperCase()}_AGENT_PRESET contains duplicate agent id "${presetDefault.id}".`);
|
|
277
|
+
}
|
|
278
|
+
seenPresetIds.add(presetDefault.id);
|
|
279
|
+
const supported = byId.get(presetDefault.id);
|
|
280
|
+
if (!supported) {
|
|
281
|
+
throw new Error(`${presetName.toUpperCase()}_AGENT_PRESET entry "${presetDefault.id}" is not present in SUPPORTED_AGENT_CATALOG.`);
|
|
282
|
+
}
|
|
283
|
+
if (supported.provider !== presetDefault.provider ||
|
|
284
|
+
supported.model !== presetDefault.model ||
|
|
285
|
+
!stringListsEqual(supported.extraArgs, presetDefault.extraArgs)) {
|
|
286
|
+
throw new Error(`${presetName.toUpperCase()}_AGENT_PRESET entry "${presetDefault.id}" must exactly match SUPPORTED_AGENT_CATALOG (provider/model/extraArgs).`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
function stringListsEqual(left, right) {
|
|
292
|
+
const leftList = left ?? [];
|
|
293
|
+
const rightList = right ?? [];
|
|
294
|
+
if (leftList.length !== rightList.length) {
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
for (const [index, value] of leftList.entries()) {
|
|
298
|
+
if (value !== rightList[index]) {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
assertAgentCatalogGuardrails({
|
|
305
|
+
builtinCatalog: DEFAULT_AGENT_CATALOG_ENTRIES,
|
|
306
|
+
presetCatalogs: [
|
|
307
|
+
{ presetName: "pro", catalog: PRO_AGENT_PRESET_ENTRIES },
|
|
308
|
+
{ presetName: "lite", catalog: LITE_AGENT_PRESET_ENTRIES },
|
|
309
|
+
],
|
|
310
|
+
});
|
|
311
|
+
function buildAgentDefaultsByProvider(agentDefaults) {
|
|
312
|
+
const map = new Map();
|
|
313
|
+
for (const agentDefault of agentDefaults) {
|
|
314
|
+
const existing = map.get(agentDefault.provider);
|
|
315
|
+
if (existing) {
|
|
316
|
+
throw new Error(`Duplicate agent defaults for provider "${agentDefault.provider}": "${existing.model}" and "${agentDefault.model}".`);
|
|
317
|
+
}
|
|
318
|
+
map.set(agentDefault.provider, agentDefault);
|
|
319
|
+
}
|
|
320
|
+
return map;
|
|
321
|
+
}
|
|
322
|
+
function buildAgentDefaultsByReference(agentDefaults) {
|
|
323
|
+
const map = new Map();
|
|
324
|
+
for (const agentDefault of agentDefaults) {
|
|
325
|
+
const keys = [agentDefault.provider, agentDefault.id];
|
|
326
|
+
for (const key of keys) {
|
|
327
|
+
const existing = map.get(key);
|
|
328
|
+
if (existing && existing.provider !== agentDefault.provider) {
|
|
329
|
+
throw new Error(`Agent default reference "${key}" is ambiguous: "${existing.provider}" and "${agentDefault.provider}".`);
|
|
330
|
+
}
|
|
331
|
+
map.set(key, agentDefault);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return map;
|
|
335
|
+
}
|
|
336
|
+
const AGENT_DEFAULTS_BY_PROVIDER = buildAgentDefaultsByProvider(PRO_AGENT_DEFAULTS);
|
|
337
|
+
const AGENT_DEFAULTS_BY_REFERENCE = buildAgentDefaultsByReference(PRO_AGENT_DEFAULTS);
|
|
45
338
|
export function getDefaultAgentIdByProvider(provider) {
|
|
46
339
|
const entry = AGENT_DEFAULTS_BY_PROVIDER.get(provider);
|
|
47
|
-
return entry ?
|
|
340
|
+
return entry ? entry.id : undefined;
|
|
48
341
|
}
|
|
49
|
-
export function getAgentDefault(
|
|
50
|
-
const agentDefault =
|
|
342
|
+
export function getAgentDefault(reference) {
|
|
343
|
+
const agentDefault = AGENT_DEFAULTS_BY_REFERENCE.get(reference);
|
|
51
344
|
return agentDefault ? cloneAgentDefault(agentDefault) : undefined;
|
|
52
345
|
}
|
|
346
|
+
export function getAgentDefaultsForPreset(preset) {
|
|
347
|
+
switch (preset) {
|
|
348
|
+
case "pro":
|
|
349
|
+
return PRO_AGENT_DEFAULTS;
|
|
350
|
+
case "lite":
|
|
351
|
+
return LITE_AGENT_DEFAULTS;
|
|
352
|
+
case "manual":
|
|
353
|
+
return [];
|
|
354
|
+
default:
|
|
355
|
+
return assertNever(preset);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
export function getSupportedAgentDefaults() {
|
|
359
|
+
return BUILTIN_AGENT_DEFAULTS;
|
|
360
|
+
}
|
|
53
361
|
function cloneAgentDefault(agentDefault) {
|
|
54
362
|
return {
|
|
363
|
+
id: agentDefault.id,
|
|
55
364
|
provider: agentDefault.provider,
|
|
56
365
|
model: agentDefault.model,
|
|
366
|
+
extraArgs: agentDefault.extraArgs && agentDefault.extraArgs.length > 0
|
|
367
|
+
? [...agentDefault.extraArgs]
|
|
368
|
+
: undefined,
|
|
57
369
|
argv: [...agentDefault.argv],
|
|
58
370
|
};
|
|
59
371
|
}
|
|
372
|
+
function assertNever(_value) {
|
|
373
|
+
void _value;
|
|
374
|
+
throw new Error("Unsupported agent preset.");
|
|
375
|
+
}
|
|
@@ -15,7 +15,7 @@ export class AgentsConfigError extends AgentsError {
|
|
|
15
15
|
export class MissingAgentsConfigError extends AgentsConfigError {
|
|
16
16
|
filePath;
|
|
17
17
|
constructor(filePath) {
|
|
18
|
-
super(
|
|
18
|
+
super("Missing `agents.yaml`.");
|
|
19
19
|
this.filePath = filePath;
|
|
20
20
|
this.name = "MissingAgentsConfigError";
|
|
21
21
|
}
|
|
@@ -30,7 +30,7 @@ export class DuplicateAgentIdError extends AgentsConfigError {
|
|
|
30
30
|
agentId;
|
|
31
31
|
displayPath;
|
|
32
32
|
constructor(agentId, displayPath) {
|
|
33
|
-
super(`${DEFAULT_ERROR_CONTEXT}: Duplicate enabled agent id
|
|
33
|
+
super(`${DEFAULT_ERROR_CONTEXT}: Duplicate enabled agent id \`${agentId}\` in \`${displayPath}\`. Agent ids must be unique.`);
|
|
34
34
|
this.agentId = agentId;
|
|
35
35
|
this.displayPath = displayPath;
|
|
36
36
|
this.name = "DuplicateAgentIdError";
|
|
@@ -40,10 +40,13 @@ export class AgentNotFoundError extends AgentsConfigError {
|
|
|
40
40
|
agentId;
|
|
41
41
|
enabledAgentIds;
|
|
42
42
|
constructor(agentId, enabledAgentIds) {
|
|
43
|
-
const enabledList = enabledAgentIds
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
const enabledList = enabledAgentIds
|
|
44
|
+
.slice()
|
|
45
|
+
.sort((left, right) => left.localeCompare(right))
|
|
46
|
+
.map((id) => `\`${id}\``)
|
|
47
|
+
.join(", ");
|
|
48
|
+
const enabledSuffix = enabledList.length > 0 ? ` Enabled agents: ${enabledList}.` : "";
|
|
49
|
+
super(`${DEFAULT_ERROR_CONTEXT}: Agent \`${agentId}\` is not defined in \`agents.yaml\`.${enabledSuffix}`);
|
|
47
50
|
this.agentId = agentId;
|
|
48
51
|
this.enabledAgentIds = enabledAgentIds;
|
|
49
52
|
this.name = "AgentNotFoundError";
|
|
@@ -52,7 +55,7 @@ export class AgentNotFoundError extends AgentsConfigError {
|
|
|
52
55
|
export class AgentDisabledError extends AgentsConfigError {
|
|
53
56
|
agentId;
|
|
54
57
|
constructor(agentId) {
|
|
55
|
-
super(`${DEFAULT_ERROR_CONTEXT}: Agent
|
|
58
|
+
super(`${DEFAULT_ERROR_CONTEXT}: Agent \`${agentId}\` is disabled in \`agents.yaml\`.`);
|
|
56
59
|
this.agentId = agentId;
|
|
57
60
|
this.name = "AgentDisabledError";
|
|
58
61
|
}
|
|
@@ -61,7 +64,7 @@ export class ModelPlaceholderMissingError extends AgentsError {
|
|
|
61
64
|
agentId;
|
|
62
65
|
placeholder;
|
|
63
66
|
constructor(agentId, placeholder) {
|
|
64
|
-
super(`Expected argv for agent
|
|
67
|
+
super(`Expected argv for agent \`${agentId}\` to include \`${placeholder}\`.`);
|
|
65
68
|
this.agentId = agentId;
|
|
66
69
|
this.placeholder = placeholder;
|
|
67
70
|
this.name = "ModelPlaceholderMissingError";
|
|
@@ -71,7 +74,7 @@ export class UnknownAgentProviderTemplateError extends AgentsConfigError {
|
|
|
71
74
|
agentId;
|
|
72
75
|
provider;
|
|
73
76
|
constructor(agentId, provider) {
|
|
74
|
-
super(`${DEFAULT_ERROR_CONTEXT}: Unknown provider
|
|
77
|
+
super(`${DEFAULT_ERROR_CONTEXT}: Unknown provider \`${provider}\` referenced by agent \`${agentId}\` in \`agents.yaml\`.`);
|
|
75
78
|
this.agentId = agentId;
|
|
76
79
|
this.provider = provider;
|
|
77
80
|
this.name = "UnknownAgentProviderTemplateError";
|
|
@@ -80,7 +83,7 @@ export class UnknownAgentProviderTemplateError extends AgentsConfigError {
|
|
|
80
83
|
export class AgentBinaryMissingError extends AgentsConfigError {
|
|
81
84
|
agentId;
|
|
82
85
|
constructor(agentId) {
|
|
83
|
-
super(`${DEFAULT_ERROR_CONTEXT}: Agent
|
|
86
|
+
super(`${DEFAULT_ERROR_CONTEXT}: Agent \`${agentId}\` must define a binary path in \`agents.yaml\`.`);
|
|
84
87
|
this.agentId = agentId;
|
|
85
88
|
this.name = "AgentBinaryMissingError";
|
|
86
89
|
}
|
|
@@ -90,7 +93,7 @@ export class AgentBinaryAccessError extends AgentsConfigError {
|
|
|
90
93
|
binaryPath;
|
|
91
94
|
detail;
|
|
92
95
|
constructor(agentId, binaryPath, detail) {
|
|
93
|
-
super(`${DEFAULT_ERROR_CONTEXT}: Agent
|
|
96
|
+
super(`${DEFAULT_ERROR_CONTEXT}: Agent \`${agentId}\` binary \`${binaryPath}\` is not executable (${detail}).`);
|
|
94
97
|
this.agentId = agentId;
|
|
95
98
|
this.binaryPath = binaryPath;
|
|
96
99
|
this.detail = detail;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AgentCatalog, type AgentDefinition, type AgentsConfig } from "./types.js";
|
|
1
|
+
import { type AgentCatalog, type AgentConfigEntry, type AgentDefinition, type AgentsConfig } from "./types.js";
|
|
2
2
|
export declare function readAgentsConfig(content: string): AgentsConfig;
|
|
3
3
|
export interface LoadAgentCatalogOptions {
|
|
4
4
|
root?: string;
|
|
@@ -6,4 +6,14 @@ export interface LoadAgentCatalogOptions {
|
|
|
6
6
|
readFile?: (path: string) => string;
|
|
7
7
|
}
|
|
8
8
|
export declare function loadAgentCatalog(options?: LoadAgentCatalogOptions): AgentCatalog;
|
|
9
|
+
export interface AgentCatalogDiagnostics {
|
|
10
|
+
readonly enabledAgents: readonly AgentConfigEntry[];
|
|
11
|
+
readonly catalog: AgentCatalog;
|
|
12
|
+
readonly issues: readonly AgentCatalogIssue[];
|
|
13
|
+
}
|
|
14
|
+
export interface AgentCatalogIssue {
|
|
15
|
+
readonly agentId: string;
|
|
16
|
+
readonly message: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function loadAgentCatalogDiagnostics(options?: LoadAgentCatalogOptions): AgentCatalogDiagnostics;
|
|
9
19
|
export declare function loadAgentById(id: string, options?: LoadAgentCatalogOptions): AgentDefinition;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { accessSync, constants as fsConstants } from "node:fs";
|
|
2
|
+
import { basename } from "node:path";
|
|
3
|
+
import { toErrorMessage } from "../../utils/errors.js";
|
|
2
4
|
import { isFileSystemError } from "../../utils/fs.js";
|
|
3
|
-
import { relativeToRoot } from "../../utils/path.js";
|
|
4
5
|
import { parseYamlDocument, } from "../../utils/yaml-reader.js";
|
|
5
6
|
import { resolveWorkspacePath } from "../../workspace/structure.js";
|
|
6
7
|
import { createConfigLoader } from "../shared/loader-factory.js";
|
|
@@ -30,7 +31,7 @@ const loadAgentsConfigInternal = createConfigLoader({
|
|
|
30
31
|
parse: (content, context) => {
|
|
31
32
|
const config = readAgentsConfig(content);
|
|
32
33
|
const enabledAgents = config.agents.filter((entry) => entry.enabled !== false);
|
|
33
|
-
const displayPath =
|
|
34
|
+
const displayPath = basename(context.filePath);
|
|
34
35
|
const seenAgentIds = new Set();
|
|
35
36
|
for (const entry of enabledAgents) {
|
|
36
37
|
if (seenAgentIds.has(entry.id)) {
|
|
@@ -50,6 +51,29 @@ export function loadAgentCatalog(options = {}) {
|
|
|
50
51
|
validateAgentBinaries(catalog);
|
|
51
52
|
return catalog;
|
|
52
53
|
}
|
|
54
|
+
export function loadAgentCatalogDiagnostics(options = {}) {
|
|
55
|
+
const { enabledAgents } = loadAgentsConfig(options);
|
|
56
|
+
const catalog = [];
|
|
57
|
+
const issues = [];
|
|
58
|
+
for (const entry of enabledAgents) {
|
|
59
|
+
let definition;
|
|
60
|
+
try {
|
|
61
|
+
definition = buildAgentDefinition(entry);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
issues.push(...coerceAgentIssues(entry.id, error));
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
assertAgentBinary(definition);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
issues.push(...coerceAgentIssues(entry.id, error));
|
|
72
|
+
}
|
|
73
|
+
catalog.push(definition);
|
|
74
|
+
}
|
|
75
|
+
return { enabledAgents, catalog, issues };
|
|
76
|
+
}
|
|
53
77
|
export function loadAgentById(id, options = {}) {
|
|
54
78
|
const { config, enabledAgents } = loadAgentsConfig(options);
|
|
55
79
|
const entry = config.agents.find((agent) => agent.id === id);
|
|
@@ -89,6 +113,49 @@ function formatBinaryAccessError(error) {
|
|
|
89
113
|
}
|
|
90
114
|
return "unknown error";
|
|
91
115
|
}
|
|
116
|
+
function coerceAgentIssues(agentId, error) {
|
|
117
|
+
if (error instanceof AgentBinaryMissingError) {
|
|
118
|
+
return [{ agentId, message: "missing binary path" }];
|
|
119
|
+
}
|
|
120
|
+
if (error instanceof AgentBinaryAccessError) {
|
|
121
|
+
return [
|
|
122
|
+
{
|
|
123
|
+
agentId,
|
|
124
|
+
message: `binary \`${error.binaryPath}\` is not executable (${error.detail})`,
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
}
|
|
128
|
+
if (error instanceof UnknownAgentProviderTemplateError) {
|
|
129
|
+
return [
|
|
130
|
+
{
|
|
131
|
+
agentId,
|
|
132
|
+
message: `unknown provider \`${error.provider}\` referenced in \`agents.yaml\``,
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
}
|
|
136
|
+
if (error instanceof ModelPlaceholderMissingError) {
|
|
137
|
+
return [
|
|
138
|
+
{
|
|
139
|
+
agentId,
|
|
140
|
+
message: `argv missing \`${error.placeholder}\``,
|
|
141
|
+
},
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
if (error instanceof AgentsYamlParseError) {
|
|
145
|
+
const normalized = stripPrefix(error.message, `${DEFAULT_ERROR_CONTEXT}: `);
|
|
146
|
+
return [{ agentId, message: normalized }];
|
|
147
|
+
}
|
|
148
|
+
if (error instanceof Error && error.message) {
|
|
149
|
+
return [{ agentId, message: error.message }];
|
|
150
|
+
}
|
|
151
|
+
return [{ agentId, message: toErrorMessage(error) }];
|
|
152
|
+
}
|
|
153
|
+
function stripPrefix(message, prefix) {
|
|
154
|
+
if (message.startsWith(prefix)) {
|
|
155
|
+
return message.slice(prefix.length);
|
|
156
|
+
}
|
|
157
|
+
return message;
|
|
158
|
+
}
|
|
92
159
|
function buildAgentDefinition(entry) {
|
|
93
160
|
const template = resolveTemplateForEntry(entry);
|
|
94
161
|
const argv = substituteModelPlaceholder(template.argv, entry.model, entry.id);
|
|
@@ -108,10 +175,10 @@ function validateExtraArgs(extraArgs, agentId) {
|
|
|
108
175
|
return;
|
|
109
176
|
}
|
|
110
177
|
if (extraArgs.includes(MODEL_PLACEHOLDER)) {
|
|
111
|
-
throw new AgentsYamlParseError(`${DEFAULT_ERROR_CONTEXT}: Agent
|
|
178
|
+
throw new AgentsYamlParseError(`${DEFAULT_ERROR_CONTEXT}: Agent \`${agentId}\` extraArgs cannot include bare \`${MODEL_PLACEHOLDER}\`.`);
|
|
112
179
|
}
|
|
113
180
|
if (extraArgs.some((arg) => arg === "--model")) {
|
|
114
|
-
throw new AgentsYamlParseError(`${DEFAULT_ERROR_CONTEXT}: Agent
|
|
181
|
+
throw new AgentsYamlParseError(`${DEFAULT_ERROR_CONTEXT}: Agent \`${agentId}\` extraArgs cannot override \`--model\`. Remove \`--model\` from extraArgs.`);
|
|
115
182
|
}
|
|
116
183
|
}
|
|
117
184
|
function resolveTemplateForEntry(entry) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export const agentIdSchema = z.string().regex(/^[a-z0-9_-]{1,
|
|
3
|
-
message: "Agent id must match /^[a-z0-9_-]{1,
|
|
2
|
+
export const agentIdSchema = z.string().regex(/^[a-z0-9_-]{1,64}$/u, {
|
|
3
|
+
message: "Agent id must match /^[a-z0-9_-]{1,64}$/",
|
|
4
4
|
});
|
|
5
5
|
export const agentConfigEntrySchema = z.object({
|
|
6
6
|
id: agentIdSchema,
|