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
package/dist/workspace/errors.js
CHANGED
|
@@ -11,15 +11,25 @@ export class WorkspaceError extends HintedError {
|
|
|
11
11
|
export class WorkspaceMissingEntryError extends WorkspaceError {
|
|
12
12
|
entryPath;
|
|
13
13
|
constructor(entryPath) {
|
|
14
|
-
super(`Missing workspace entry:
|
|
14
|
+
super(`Missing workspace entry: \`${entryPath}\`.`);
|
|
15
15
|
this.entryPath = entryPath;
|
|
16
16
|
this.name = "WorkspaceMissingEntryError";
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
export class WorkspaceWrongTypeEntryError extends WorkspaceError {
|
|
20
|
+
entryPath;
|
|
21
|
+
expectedType;
|
|
22
|
+
constructor(entryPath, expectedType) {
|
|
23
|
+
super(`Wrong workspace entry type: \`${entryPath}\` must be a ${expectedType}.`);
|
|
24
|
+
this.entryPath = entryPath;
|
|
25
|
+
this.expectedType = expectedType;
|
|
26
|
+
this.name = "WorkspaceWrongTypeEntryError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
19
29
|
export class WorkspaceNotInitializedError extends WorkspaceError {
|
|
20
30
|
missingEntries;
|
|
21
31
|
constructor(missingEntries) {
|
|
22
|
-
super("Voratiq workspace not
|
|
32
|
+
super("Voratiq workspace is not initialized.", buildMissingEntryDetailLines(missingEntries), ["Run `voratiq init` from the repository root, then retry."]);
|
|
23
33
|
this.missingEntries = missingEntries;
|
|
24
34
|
this.name = "WorkspaceNotInitializedError";
|
|
25
35
|
}
|
|
@@ -38,6 +48,6 @@ function buildMissingEntryDetailLines(entries) {
|
|
|
38
48
|
}
|
|
39
49
|
return [
|
|
40
50
|
"Missing workspace entries:",
|
|
41
|
-
...entries.map((entry) => ` -
|
|
51
|
+
...entries.map((entry) => ` - \`${entry}\``),
|
|
42
52
|
];
|
|
43
53
|
}
|
|
@@ -5,16 +5,13 @@ export interface RunWorkspacePaths {
|
|
|
5
5
|
}
|
|
6
6
|
export declare function resolveRunWorkspacePaths(root: string, runId: string): RunWorkspacePaths;
|
|
7
7
|
export declare function formatRunWorkspaceRelative(runId: string): string;
|
|
8
|
-
export declare const WORKSPACE_SUMMARY_FILENAME: ".summary.txt";
|
|
9
8
|
export interface AgentWorkspacePaths {
|
|
10
9
|
agentRoot: string;
|
|
10
|
+
artifactsPath: string;
|
|
11
|
+
contextPath: string;
|
|
11
12
|
stdoutPath: string;
|
|
12
13
|
stderrPath: string;
|
|
13
|
-
diffPath: string;
|
|
14
|
-
summaryPath: string;
|
|
15
14
|
workspacePath: string;
|
|
16
|
-
evalsDirPath: string;
|
|
17
|
-
promptPath: string;
|
|
18
15
|
runtimeManifestPath: string;
|
|
19
16
|
sandboxPath: string;
|
|
20
17
|
sandboxHomePath: string;
|
|
@@ -26,5 +23,19 @@ export declare function buildAgentWorkspacePaths(options: {
|
|
|
26
23
|
runId: string;
|
|
27
24
|
agentId: AgentId;
|
|
28
25
|
}): AgentWorkspacePaths;
|
|
29
|
-
export declare function
|
|
26
|
+
export declare function buildAgentSessionWorkspacePaths(options: {
|
|
27
|
+
root: string;
|
|
28
|
+
domain: string;
|
|
29
|
+
sessionId: string;
|
|
30
|
+
agentId: AgentId;
|
|
31
|
+
}): AgentWorkspacePaths;
|
|
32
|
+
export declare function buildScopedAgentWorkspacePaths(options: {
|
|
33
|
+
agentRoot: string;
|
|
34
|
+
}): AgentWorkspacePaths;
|
|
30
35
|
export declare function scaffoldAgentWorkspace(paths: AgentWorkspacePaths): Promise<void>;
|
|
36
|
+
export declare function scaffoldAgentSessionWorkspace(options: {
|
|
37
|
+
root: string;
|
|
38
|
+
domain: string;
|
|
39
|
+
sessionId: string;
|
|
40
|
+
agentId: AgentId;
|
|
41
|
+
}): Promise<AgentWorkspacePaths>;
|
package/dist/workspace/layout.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
import { normalizePathForDisplay, resolvePath } from "../utils/path.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ARTIFACTS_DIRNAME, CONTEXT_DIRNAME, getAgentSessionArtifactsDirectoryPath, getAgentSessionContextDirectoryPath, getAgentSessionDirectoryPath, getAgentSessionManifestPath, getAgentSessionRuntimeDirectoryPath, getAgentSessionSandboxDirectoryPath, getAgentSessionSandboxHomePath, getAgentSessionSandboxSettingsPath, getAgentSessionStderrPath, getAgentSessionStdoutPath, getAgentSessionWorkspaceDirectoryPath, getRunDirectoryPath, MANIFEST_FILENAME, RUNTIME_DIRNAME, SANDBOX_DIRNAME, SANDBOX_SETTINGS_FILENAME, STDERR_FILENAME, STDOUT_FILENAME, VORATIQ_RUN_DIR, WORKSPACE_DIRNAME, } from "./structure.js";
|
|
5
5
|
export function resolveRunWorkspacePaths(root, runId) {
|
|
6
6
|
const relative = normalizePathForDisplay(getRunDirectoryPath(runId));
|
|
7
7
|
const absolute = resolvePath(root, relative);
|
|
@@ -10,63 +10,55 @@ export function resolveRunWorkspacePaths(root, runId) {
|
|
|
10
10
|
export function formatRunWorkspaceRelative(runId) {
|
|
11
11
|
return normalizePathForDisplay(getRunDirectoryPath(runId));
|
|
12
12
|
}
|
|
13
|
-
export const WORKSPACE_SUMMARY_FILENAME = ".summary.txt";
|
|
14
13
|
const AGENT_WORKSPACE_ARTIFACTS = {
|
|
15
|
-
|
|
16
|
-
getRelativePath: ({
|
|
17
|
-
|
|
14
|
+
artifactsPath: {
|
|
15
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionArtifactsDirectoryPath(domain, sessionId, agentId),
|
|
16
|
+
ensureDir: true,
|
|
18
17
|
},
|
|
19
|
-
|
|
20
|
-
getRelativePath: ({
|
|
21
|
-
|
|
18
|
+
contextPath: {
|
|
19
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionContextDirectoryPath(domain, sessionId, agentId),
|
|
20
|
+
ensureDir: true,
|
|
22
21
|
},
|
|
23
|
-
|
|
24
|
-
getRelativePath: ({
|
|
22
|
+
stdoutPath: {
|
|
23
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionStdoutPath(domain, sessionId, agentId),
|
|
25
24
|
initializeEmptyFile: true,
|
|
26
25
|
},
|
|
27
|
-
|
|
28
|
-
getRelativePath: ({
|
|
26
|
+
stderrPath: {
|
|
27
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionStderrPath(domain, sessionId, agentId),
|
|
29
28
|
initializeEmptyFile: true,
|
|
30
29
|
},
|
|
31
30
|
workspacePath: {
|
|
32
|
-
getRelativePath: ({
|
|
33
|
-
ensureDir: true,
|
|
34
|
-
},
|
|
35
|
-
evalsDirPath: {
|
|
36
|
-
getRelativePath: ({ runId, agentId }) => getAgentEvalsDirectoryPath(runId, agentId),
|
|
31
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionWorkspaceDirectoryPath(domain, sessionId, agentId),
|
|
37
32
|
ensureDir: true,
|
|
38
33
|
},
|
|
39
|
-
promptPath: {
|
|
40
|
-
getRelativePath: ({ runId }) => getRunPromptPath(runId),
|
|
41
|
-
},
|
|
42
34
|
runtimeManifestPath: {
|
|
43
|
-
getRelativePath: ({
|
|
35
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionManifestPath(domain, sessionId, agentId),
|
|
44
36
|
},
|
|
45
37
|
runtimePath: {
|
|
46
|
-
getRelativePath: ({
|
|
38
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionRuntimeDirectoryPath(domain, sessionId, agentId),
|
|
47
39
|
ensureDir: true,
|
|
48
40
|
},
|
|
49
41
|
sandboxPath: {
|
|
50
|
-
getRelativePath: ({
|
|
42
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionSandboxDirectoryPath(domain, sessionId, agentId),
|
|
51
43
|
ensureDir: true,
|
|
52
44
|
},
|
|
53
45
|
sandboxHomePath: {
|
|
54
|
-
getRelativePath: ({
|
|
46
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionSandboxHomePath(domain, sessionId, agentId),
|
|
55
47
|
ensureDir: true,
|
|
56
48
|
},
|
|
57
49
|
sandboxSettingsPath: {
|
|
58
|
-
getRelativePath: ({
|
|
50
|
+
getRelativePath: ({ domain, sessionId, agentId }) => getAgentSessionSandboxSettingsPath(domain, sessionId, agentId),
|
|
59
51
|
},
|
|
60
52
|
};
|
|
61
53
|
function getAgentWorkspaceArtifactDescriptorEntries() {
|
|
62
54
|
return Object.entries(AGENT_WORKSPACE_ARTIFACTS);
|
|
63
55
|
}
|
|
64
56
|
function resolveAgentWorkspaceArtifactPaths(options) {
|
|
65
|
-
const { root,
|
|
57
|
+
const { root, domain, sessionId, agentId } = options;
|
|
66
58
|
const entries = getAgentWorkspaceArtifactDescriptorEntries();
|
|
67
59
|
const map = Object.create(null);
|
|
68
60
|
for (const [key, descriptor] of entries) {
|
|
69
|
-
const relative = normalizePathForDisplay(descriptor.getRelativePath({
|
|
61
|
+
const relative = normalizePathForDisplay(descriptor.getRelativePath({ domain, sessionId, agentId }));
|
|
70
62
|
map[key] = {
|
|
71
63
|
relative,
|
|
72
64
|
absolute: resolvePath(root, relative),
|
|
@@ -83,22 +75,44 @@ function buildAbsoluteArtifactPathMap(artifactPaths) {
|
|
|
83
75
|
}
|
|
84
76
|
export function buildAgentWorkspacePaths(options) {
|
|
85
77
|
const { root, runId, agentId } = options;
|
|
78
|
+
return buildAgentSessionWorkspacePaths({
|
|
79
|
+
root,
|
|
80
|
+
domain: VORATIQ_RUN_DIR,
|
|
81
|
+
sessionId: runId,
|
|
82
|
+
agentId,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
export function buildAgentSessionWorkspacePaths(options) {
|
|
86
|
+
const { root, domain, sessionId, agentId } = options;
|
|
86
87
|
const artifactPaths = resolveAgentWorkspaceArtifactPaths({
|
|
87
88
|
root,
|
|
88
|
-
|
|
89
|
+
domain,
|
|
90
|
+
sessionId,
|
|
89
91
|
agentId,
|
|
90
92
|
});
|
|
91
93
|
const absoluteArtifacts = buildAbsoluteArtifactPathMap(artifactPaths);
|
|
92
|
-
const agentRelative = normalizePathForDisplay(
|
|
94
|
+
const agentRelative = normalizePathForDisplay(getAgentSessionDirectoryPath(domain, sessionId, agentId));
|
|
93
95
|
const agentRoot = resolvePath(root, agentRelative);
|
|
94
96
|
return {
|
|
95
97
|
agentRoot,
|
|
96
98
|
...absoluteArtifacts,
|
|
97
99
|
};
|
|
98
100
|
}
|
|
99
|
-
export function
|
|
100
|
-
const
|
|
101
|
-
return
|
|
101
|
+
export function buildScopedAgentWorkspacePaths(options) {
|
|
102
|
+
const { agentRoot } = options;
|
|
103
|
+
return {
|
|
104
|
+
agentRoot,
|
|
105
|
+
artifactsPath: resolvePath(agentRoot, ARTIFACTS_DIRNAME),
|
|
106
|
+
contextPath: resolvePath(agentRoot, CONTEXT_DIRNAME),
|
|
107
|
+
stdoutPath: resolvePath(agentRoot, ARTIFACTS_DIRNAME, STDOUT_FILENAME),
|
|
108
|
+
stderrPath: resolvePath(agentRoot, ARTIFACTS_DIRNAME, STDERR_FILENAME),
|
|
109
|
+
workspacePath: resolvePath(agentRoot, WORKSPACE_DIRNAME),
|
|
110
|
+
runtimeManifestPath: resolvePath(agentRoot, RUNTIME_DIRNAME, MANIFEST_FILENAME),
|
|
111
|
+
sandboxPath: resolvePath(agentRoot, SANDBOX_DIRNAME),
|
|
112
|
+
sandboxHomePath: resolvePath(agentRoot, SANDBOX_DIRNAME),
|
|
113
|
+
sandboxSettingsPath: resolvePath(agentRoot, RUNTIME_DIRNAME, SANDBOX_SETTINGS_FILENAME),
|
|
114
|
+
runtimePath: resolvePath(agentRoot, RUNTIME_DIRNAME),
|
|
115
|
+
};
|
|
102
116
|
}
|
|
103
117
|
export async function scaffoldAgentWorkspace(paths) {
|
|
104
118
|
await mkdir(paths.agentRoot, { recursive: true });
|
|
@@ -124,3 +138,8 @@ export async function scaffoldAgentWorkspace(paths) {
|
|
|
124
138
|
await writeFile(filePath, "", { encoding: "utf8" });
|
|
125
139
|
}
|
|
126
140
|
}
|
|
141
|
+
export async function scaffoldAgentSessionWorkspace(options) {
|
|
142
|
+
const paths = buildAgentSessionWorkspacePaths(options);
|
|
143
|
+
await scaffoldAgentWorkspace(paths);
|
|
144
|
+
return paths;
|
|
145
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface PromoteWorkspaceFileOptions {
|
|
2
|
+
/** Absolute path to the writable workspace root. */
|
|
3
|
+
workspacePath: string;
|
|
4
|
+
/** Absolute path to the artifacts directory for the agent. */
|
|
5
|
+
artifactsPath: string;
|
|
6
|
+
/** Relative path (within workspace) to the staged file. */
|
|
7
|
+
stagedRelativePath: string;
|
|
8
|
+
/** Relative path (within artifacts/) where the file should be promoted. */
|
|
9
|
+
artifactRelativePath: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optional transform applied to the staged file contents before writing to
|
|
12
|
+
* artifacts. Receives the raw bytes read from the staged file.
|
|
13
|
+
*/
|
|
14
|
+
transform?: (content: Buffer) => string | Buffer | Promise<string | Buffer>;
|
|
15
|
+
/**
|
|
16
|
+
* When the transform returns a string, this encoding is used when writing the
|
|
17
|
+
* artifact (defaults to utf8).
|
|
18
|
+
*/
|
|
19
|
+
stringEncoding?: NodeJS.BufferEncoding;
|
|
20
|
+
/** Whether to delete the staged file after promotion (default: true). */
|
|
21
|
+
deleteStaged?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface PromoteWorkspaceFileResult {
|
|
24
|
+
stagedPath: string;
|
|
25
|
+
artifactPath: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Promote a staged file written inside the sandboxed workspace into the
|
|
29
|
+
* trusted artifacts directory. This helper enforces path containment for both
|
|
30
|
+
* the source and destination and optionally transforms content before writing.
|
|
31
|
+
*/
|
|
32
|
+
export declare function promoteWorkspaceFile(options: PromoteWorkspaceFileOptions): Promise<PromoteWorkspaceFileResult>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, resolve as resolvePath } from "node:path";
|
|
3
|
+
import { assertPathWithinRoot } from "../utils/path.js";
|
|
4
|
+
/**
|
|
5
|
+
* Promote a staged file written inside the sandboxed workspace into the
|
|
6
|
+
* trusted artifacts directory. This helper enforces path containment for both
|
|
7
|
+
* the source and destination and optionally transforms content before writing.
|
|
8
|
+
*/
|
|
9
|
+
export async function promoteWorkspaceFile(options) {
|
|
10
|
+
const workspacePath = options.workspacePath;
|
|
11
|
+
const artifactsPath = options.artifactsPath;
|
|
12
|
+
const stagedRelativePath = options.stagedRelativePath;
|
|
13
|
+
const artifactRelativePath = options.artifactRelativePath;
|
|
14
|
+
const transform = options.transform;
|
|
15
|
+
const stringEncoding = options.stringEncoding ?? "utf8";
|
|
16
|
+
const deleteStaged = options.deleteStaged !== false;
|
|
17
|
+
const stagedPath = assertPathWithinRoot(workspacePath, resolvePath(workspacePath, stagedRelativePath), {
|
|
18
|
+
message: `Staged path "${stagedRelativePath}" must stay inside workspace "${workspacePath}".`,
|
|
19
|
+
});
|
|
20
|
+
const artifactPath = assertPathWithinRoot(artifactsPath, resolvePath(artifactsPath, artifactRelativePath), {
|
|
21
|
+
message: `Artifact path "${artifactRelativePath}" must stay inside artifacts directory "${artifactsPath}".`,
|
|
22
|
+
});
|
|
23
|
+
const raw = await readFile(stagedPath);
|
|
24
|
+
const transformed = transform ? await transform(raw) : raw;
|
|
25
|
+
const payload = typeof transformed === "string"
|
|
26
|
+
? Buffer.from(transformed, stringEncoding)
|
|
27
|
+
: transformed;
|
|
28
|
+
await mkdir(dirname(artifactPath), { recursive: true });
|
|
29
|
+
await writeFile(artifactPath, payload);
|
|
30
|
+
if (deleteStaged) {
|
|
31
|
+
await rm(stagedPath, { force: true }).catch(() => { });
|
|
32
|
+
}
|
|
33
|
+
return { stagedPath, artifactPath };
|
|
34
|
+
}
|
package/dist/workspace/run.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import type { RunWorkspacePaths } from "./layout.js";
|
|
2
2
|
export interface RunWorkspaceSetupResult {
|
|
3
3
|
readonly runWorkspace: RunWorkspacePaths;
|
|
4
|
-
readonly prompt: string;
|
|
5
4
|
}
|
|
6
5
|
export interface WorkspaceSetupInput {
|
|
7
6
|
readonly root: string;
|
|
8
7
|
readonly runId: string;
|
|
9
|
-
readonly prompt: string;
|
|
10
8
|
}
|
|
11
9
|
/**
|
|
12
|
-
* Prepare run workspace directory
|
|
10
|
+
* Prepare run workspace directory.
|
|
13
11
|
*/
|
|
14
12
|
export declare function prepareRunWorkspace(input: WorkspaceSetupInput): Promise<RunWorkspaceSetupResult>;
|
package/dist/workspace/run.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { mkdir
|
|
2
|
-
import { RunDirectoryExistsError } from "../
|
|
1
|
+
import { mkdir } from "node:fs/promises";
|
|
2
|
+
import { RunDirectoryExistsError } from "../domain/run/competition/errors.js";
|
|
3
3
|
import { pathExists } from "../utils/fs.js";
|
|
4
4
|
import { normalizePathForDisplay, relativeToRoot } from "../utils/path.js";
|
|
5
|
-
import {
|
|
6
|
-
import { resolveRunPromptPath, resolveRunWorkspacePaths } from "./layout.js";
|
|
5
|
+
import { resolveRunWorkspacePaths } from "./layout.js";
|
|
7
6
|
/**
|
|
8
|
-
* Prepare run workspace directory
|
|
7
|
+
* Prepare run workspace directory.
|
|
9
8
|
*/
|
|
10
9
|
export async function prepareRunWorkspace(input) {
|
|
11
|
-
const { root, runId
|
|
10
|
+
const { root, runId } = input;
|
|
12
11
|
const runWorkspace = resolveRunWorkspacePaths(root, runId);
|
|
13
12
|
const runRoot = runWorkspace.absolute;
|
|
14
13
|
if (await pathExists(runRoot)) {
|
|
@@ -16,13 +15,5 @@ export async function prepareRunWorkspace(input) {
|
|
|
16
15
|
throw new RunDirectoryExistsError(runId, displayPath);
|
|
17
16
|
}
|
|
18
17
|
await mkdir(runRoot, { recursive: true });
|
|
19
|
-
|
|
20
|
-
const promptPath = resolveRunPromptPath(root, runId);
|
|
21
|
-
await writeFile(promptPath, prompt, { encoding: "utf8" });
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
await cleanupRunWorkspace(runRoot);
|
|
25
|
-
throw error;
|
|
26
|
-
}
|
|
27
|
-
return { runWorkspace, prompt };
|
|
18
|
+
return { runWorkspace };
|
|
28
19
|
}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import type { CreateWorkspaceResult } from "./types.js";
|
|
2
|
+
export interface RepairWorkspaceStructureResult {
|
|
3
|
+
readonly repaired: boolean;
|
|
4
|
+
readonly createdDirectories: string[];
|
|
5
|
+
readonly createdFiles: string[];
|
|
6
|
+
}
|
|
2
7
|
export declare function createWorkspace(root: string): Promise<CreateWorkspaceResult>;
|
|
8
|
+
export declare function repairWorkspaceStructure(root: string, options?: {
|
|
9
|
+
restoreShippedVerificationTemplates?: boolean;
|
|
10
|
+
}): Promise<RepairWorkspaceStructureResult>;
|
|
3
11
|
export declare function validateWorkspace(root: string): Promise<void>;
|