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.
Files changed (527) hide show
  1. package/README.md +41 -29
  2. package/dist/agents/launch/chat.d.ts +23 -0
  3. package/dist/agents/launch/chat.js +44 -0
  4. package/dist/agents/launch/environment.d.ts +8 -0
  5. package/dist/{commands/run/agents/workspace-prep.js → agents/launch/environment.js} +5 -27
  6. package/dist/agents/launch/prompt.d.ts +6 -0
  7. package/dist/agents/launch/prompt.js +12 -0
  8. package/dist/agents/launch/provider-state.d.ts +39 -0
  9. package/dist/agents/launch/provider-state.js +103 -0
  10. package/dist/agents/runtime/auth.d.ts +27 -0
  11. package/dist/agents/runtime/auth.js +72 -0
  12. package/dist/agents/runtime/chat.d.ts +5 -0
  13. package/dist/agents/runtime/chat.js +7 -0
  14. package/dist/agents/runtime/errors.d.ts +27 -0
  15. package/dist/agents/runtime/errors.js +51 -0
  16. package/dist/{commands/run/agents → agents/runtime}/failures.d.ts +0 -1
  17. package/dist/agents/runtime/failures.js +136 -0
  18. package/dist/agents/runtime/harness.d.ts +2 -0
  19. package/dist/agents/runtime/harness.js +119 -0
  20. package/dist/{commands/run/agents/sandbox-launcher.d.ts → agents/runtime/launcher.d.ts} +18 -6
  21. package/dist/{commands/run/agents/sandbox-launcher.js → agents/runtime/launcher.js} +17 -39
  22. package/dist/{commands/run/agents/workspace-prep.d.ts → agents/runtime/manifest.d.ts} +6 -6
  23. package/dist/agents/runtime/manifest.js +34 -0
  24. package/dist/agents/runtime/policy.d.ts +32 -0
  25. package/dist/agents/runtime/policy.js +240 -0
  26. package/dist/agents/runtime/registry.d.ts +4 -0
  27. package/dist/agents/runtime/registry.js +54 -0
  28. package/dist/{commands/run → agents/runtime}/sandbox.d.ts +8 -2
  29. package/dist/{commands/run → agents/runtime}/sandbox.js +28 -67
  30. package/dist/agents/runtime/shim/run-agent-shim.d.ts +1 -0
  31. package/dist/agents/runtime/shim/run-agent-shim.js +276 -0
  32. package/dist/agents/runtime/types.d.ts +91 -0
  33. package/dist/{commands/run/agents → agents/runtime}/watchdog.d.ts +4 -3
  34. package/dist/{commands/run/agents → agents/runtime}/watchdog.js +155 -26
  35. package/dist/auth/providers/codex.js +7 -2
  36. package/dist/auth/providers/gemini.js +14 -6
  37. package/dist/auth/providers/types.d.ts +1 -0
  38. package/dist/auth/providers/utils.d.ts +0 -1
  39. package/dist/auth/providers/utils.js +1 -49
  40. package/dist/bin.js +369 -71
  41. package/dist/cli/apply.d.ts +4 -0
  42. package/dist/cli/apply.js +28 -9
  43. package/dist/cli/auto.d.ts +32 -0
  44. package/dist/cli/auto.js +232 -0
  45. package/dist/cli/contract.d.ts +328 -0
  46. package/dist/cli/contract.js +480 -0
  47. package/dist/cli/errors.d.ts +3 -0
  48. package/dist/cli/errors.js +21 -3
  49. package/dist/cli/init.d.ts +5 -0
  50. package/dist/cli/init.js +34 -6
  51. package/dist/cli/list.d.ts +6 -4
  52. package/dist/cli/list.js +39 -16
  53. package/dist/cli/mcp.d.ts +2 -0
  54. package/dist/cli/mcp.js +16 -0
  55. package/dist/cli/message.d.ts +28 -0
  56. package/dist/cli/message.js +147 -0
  57. package/dist/cli/operator-envelope.d.ts +180 -0
  58. package/dist/cli/operator-envelope.js +425 -0
  59. package/dist/cli/output.d.ts +15 -1
  60. package/dist/cli/output.js +153 -5
  61. package/dist/cli/prune.d.ts +7 -3
  62. package/dist/cli/prune.js +57 -12
  63. package/dist/cli/reduce.d.ts +29 -0
  64. package/dist/cli/reduce.js +211 -0
  65. package/dist/cli/root-launcher.d.ts +4 -0
  66. package/dist/cli/root-launcher.js +15 -0
  67. package/dist/cli/run.d.ts +27 -1
  68. package/dist/cli/run.js +108 -16
  69. package/dist/cli/spec.d.ts +31 -0
  70. package/dist/cli/spec.js +180 -0
  71. package/dist/cli/verify.d.ts +35 -0
  72. package/dist/cli/verify.js +297 -0
  73. package/dist/commands/apply/command.d.ts +2 -0
  74. package/dist/commands/apply/command.js +145 -6
  75. package/dist/commands/apply/errors.d.ts +43 -4
  76. package/dist/commands/apply/errors.js +100 -22
  77. package/dist/commands/apply/types.d.ts +2 -1
  78. package/dist/commands/auto/command.d.ts +145 -0
  79. package/dist/commands/auto/command.js +433 -0
  80. package/dist/commands/auto/errors.d.ts +19 -0
  81. package/dist/commands/auto/errors.js +19 -0
  82. package/dist/commands/auto/validation.d.ts +14 -0
  83. package/dist/commands/auto/validation.js +90 -0
  84. package/dist/commands/fetch.d.ts +2 -2
  85. package/dist/commands/fetch.js +4 -4
  86. package/dist/commands/init/agents.d.ts +2 -1
  87. package/dist/commands/init/agents.js +66 -63
  88. package/dist/commands/init/command.js +300 -16
  89. package/dist/commands/init/types.d.ts +18 -7
  90. package/dist/commands/interactive/lifecycle.d.ts +15 -0
  91. package/dist/commands/interactive/lifecycle.js +141 -0
  92. package/dist/commands/list/command.d.ts +10 -3
  93. package/dist/commands/list/command.js +597 -40
  94. package/dist/commands/message/command.d.ts +23 -0
  95. package/dist/commands/message/command.js +215 -0
  96. package/dist/commands/message/errors.d.ts +9 -0
  97. package/dist/commands/message/errors.js +20 -0
  98. package/dist/commands/message/lifecycle.d.ts +14 -0
  99. package/dist/commands/message/lifecycle.js +128 -0
  100. package/dist/commands/prune/command.d.ts +2 -1
  101. package/dist/commands/prune/command.js +61 -10
  102. package/dist/commands/prune/errors.d.ts +1 -1
  103. package/dist/commands/prune/errors.js +5 -5
  104. package/dist/commands/prune/types.d.ts +21 -0
  105. package/dist/commands/reduce/command.d.ts +26 -0
  106. package/dist/commands/reduce/command.js +145 -0
  107. package/dist/commands/reduce/errors.d.ts +17 -0
  108. package/dist/commands/reduce/errors.js +32 -0
  109. package/dist/commands/reduce/targets.d.ts +11 -0
  110. package/dist/commands/reduce/targets.js +271 -0
  111. package/dist/commands/root-launcher/command.d.ts +31 -0
  112. package/dist/commands/root-launcher/command.js +233 -0
  113. package/dist/commands/run/command.d.ts +6 -1
  114. package/dist/commands/run/command.js +70 -40
  115. package/dist/commands/run/lifecycle.d.ts +7 -5
  116. package/dist/commands/run/lifecycle.js +45 -23
  117. package/dist/commands/run/record-init.d.ts +4 -1
  118. package/dist/commands/run/record-init.js +5 -2
  119. package/dist/commands/run/shim/run-agent-shim.d.ts +2 -1
  120. package/dist/commands/run/shim/run-agent-shim.js +4 -219
  121. package/dist/commands/run/validation.d.ts +2 -3
  122. package/dist/commands/run/validation.js +54 -25
  123. package/dist/commands/shared/max-parallel.d.ts +5 -0
  124. package/dist/commands/shared/max-parallel.js +15 -0
  125. package/dist/commands/shared/preview.d.ts +10 -0
  126. package/dist/commands/shared/preview.js +60 -0
  127. package/dist/commands/shared/resolve-reduction-competitors.d.ts +15 -0
  128. package/dist/commands/shared/resolve-reduction-competitors.js +13 -0
  129. package/dist/commands/shared/resolve-stage-competitors.d.ts +19 -0
  130. package/dist/commands/shared/resolve-stage-competitors.js +171 -0
  131. package/dist/commands/shared/session-id.d.ts +1 -0
  132. package/dist/commands/shared/session-id.js +1 -0
  133. package/dist/commands/spec/command.d.ts +22 -0
  134. package/dist/commands/spec/command.js +330 -0
  135. package/dist/commands/spec/errors.d.ts +11 -0
  136. package/dist/commands/spec/errors.js +23 -0
  137. package/dist/commands/verify/agents.d.ts +8 -0
  138. package/dist/commands/verify/agents.js +29 -0
  139. package/dist/commands/verify/command.d.ts +23 -0
  140. package/dist/commands/verify/command.js +168 -0
  141. package/dist/commands/verify/lifecycle.d.ts +14 -0
  142. package/dist/commands/verify/lifecycle.js +229 -0
  143. package/dist/commands/verify/max-parallel.d.ts +7 -0
  144. package/dist/commands/verify/max-parallel.js +15 -0
  145. package/dist/commands/verify/targets.d.ts +18 -0
  146. package/dist/commands/verify/targets.js +420 -0
  147. package/dist/competition/command-adapter.d.ts +35 -0
  148. package/dist/competition/command-adapter.js +20 -0
  149. package/dist/competition/core.d.ts +41 -0
  150. package/dist/competition/core.js +181 -0
  151. package/dist/competition/shared/extra-context.d.ts +14 -0
  152. package/dist/competition/shared/extra-context.js +100 -0
  153. package/dist/competition/shared/preflight.d.ts +11 -0
  154. package/dist/competition/shared/preflight.js +39 -0
  155. package/dist/competition/shared/prompt-helpers.d.ts +16 -0
  156. package/dist/competition/shared/prompt-helpers.js +27 -0
  157. package/dist/competition/shared/prune.d.ts +1 -0
  158. package/dist/competition/shared/prune.js +4 -0
  159. package/dist/competition/shared/sandbox-policy.d.ts +9 -0
  160. package/dist/competition/shared/sandbox-policy.js +7 -0
  161. package/dist/competition/shared/teardown.d.ts +36 -0
  162. package/dist/competition/shared/teardown.js +101 -0
  163. package/dist/configs/agents/defaults.d.ts +31 -2
  164. package/dist/configs/agents/defaults.js +346 -30
  165. package/dist/configs/agents/errors.js +14 -11
  166. package/dist/configs/agents/loader.d.ts +11 -1
  167. package/dist/configs/agents/loader.js +71 -4
  168. package/dist/configs/agents/types.js +2 -2
  169. package/dist/configs/environment/detect.js +9 -4
  170. package/dist/configs/environment/errors.js +4 -4
  171. package/dist/configs/environment/loader.d.ts +1 -1
  172. package/dist/configs/environment/loader.js +3 -3
  173. package/dist/configs/orchestration/bootstrap.d.ts +16 -0
  174. package/dist/configs/orchestration/bootstrap.js +122 -0
  175. package/dist/configs/orchestration/errors.d.ts +15 -0
  176. package/dist/configs/orchestration/errors.js +28 -0
  177. package/dist/configs/orchestration/loader.d.ts +9 -0
  178. package/dist/configs/orchestration/loader.js +148 -0
  179. package/dist/configs/orchestration/types.d.ts +102 -0
  180. package/dist/configs/orchestration/types.js +65 -0
  181. package/dist/configs/sandbox/defaults.js +14 -4
  182. package/dist/configs/sandbox/errors.d.ts +1 -1
  183. package/dist/configs/sandbox/errors.js +1 -1
  184. package/dist/configs/sandbox/loader.js +6 -4
  185. package/dist/configs/sandbox/schemas.js +4 -2
  186. package/dist/configs/settings/loader.d.ts +7 -0
  187. package/dist/configs/settings/loader.js +81 -0
  188. package/dist/configs/settings/types.d.ts +47 -0
  189. package/dist/configs/settings/types.js +23 -0
  190. package/dist/configs/verification/errors.d.ts +11 -0
  191. package/dist/configs/verification/errors.js +21 -0
  192. package/dist/configs/verification/loader.d.ts +8 -0
  193. package/dist/configs/verification/loader.js +43 -0
  194. package/dist/configs/verification/methods.d.ts +35 -0
  195. package/dist/configs/verification/methods.js +41 -0
  196. package/dist/configs/verification/programmatic-defaults.d.ts +10 -0
  197. package/dist/configs/verification/programmatic-defaults.js +42 -0
  198. package/dist/configs/verification/programmatic-detect.d.ts +10 -0
  199. package/dist/configs/{evals/detect.js → verification/programmatic-detect.js} +22 -33
  200. package/dist/configs/verification/types.d.ts +49 -0
  201. package/dist/configs/verification/types.js +45 -0
  202. package/dist/contracts/list.d.ts +207 -0
  203. package/dist/contracts/list.js +154 -0
  204. package/dist/domain/interactive/model/types.d.ts +104 -0
  205. package/dist/domain/interactive/model/types.js +83 -0
  206. package/dist/domain/interactive/persistence/adapter.d.ts +39 -0
  207. package/dist/domain/interactive/persistence/adapter.js +144 -0
  208. package/dist/domain/interactive/prompt.d.ts +3 -0
  209. package/dist/domain/interactive/prompt.js +7 -0
  210. package/dist/domain/message/competition/adapter.d.ts +36 -0
  211. package/dist/domain/message/competition/adapter.js +197 -0
  212. package/dist/domain/message/competition/prompt.d.ts +8 -0
  213. package/dist/domain/message/competition/prompt.js +29 -0
  214. package/dist/domain/message/model/mutators.d.ts +17 -0
  215. package/dist/domain/message/model/mutators.js +107 -0
  216. package/dist/domain/message/model/types.d.ts +100 -0
  217. package/dist/domain/message/model/types.js +87 -0
  218. package/dist/domain/message/persistence/adapter.d.ts +43 -0
  219. package/dist/domain/message/persistence/adapter.js +124 -0
  220. package/dist/domain/reduce/competition/adapter.d.ts +42 -0
  221. package/dist/domain/reduce/competition/adapter.js +826 -0
  222. package/dist/domain/reduce/competition/output-validation.d.ts +4 -0
  223. package/dist/domain/reduce/competition/output-validation.js +18 -0
  224. package/dist/domain/reduce/competition/prompt.d.ts +10 -0
  225. package/dist/domain/reduce/competition/prompt.js +96 -0
  226. package/dist/domain/reduce/competition/reduction.d.ts +9 -0
  227. package/dist/domain/reduce/competition/reduction.js +32 -0
  228. package/dist/domain/reduce/model/types.d.ts +122 -0
  229. package/dist/domain/reduce/model/types.js +84 -0
  230. package/dist/domain/reduce/persistence/adapter.d.ts +43 -0
  231. package/dist/domain/reduce/persistence/adapter.js +126 -0
  232. package/dist/domain/run/competition/adapter.d.ts +30 -0
  233. package/dist/domain/run/competition/adapter.js +39 -0
  234. package/dist/domain/run/competition/agent-execution.d.ts +20 -0
  235. package/dist/domain/run/competition/agent-execution.js +45 -0
  236. package/dist/domain/run/competition/agent-preparation.d.ts +12 -0
  237. package/dist/domain/run/competition/agent-preparation.js +24 -0
  238. package/dist/domain/run/competition/agents/artifacts.d.ts +17 -0
  239. package/dist/domain/run/competition/agents/artifacts.js +173 -0
  240. package/dist/{commands/run → domain/run/competition}/agents/lifecycle.d.ts +3 -3
  241. package/dist/{commands/run → domain/run/competition}/agents/lifecycle.js +84 -64
  242. package/dist/domain/run/competition/agents/post-processing.d.ts +12 -0
  243. package/dist/domain/run/competition/agents/post-processing.js +4 -0
  244. package/dist/domain/run/competition/agents/preparation.js +64 -0
  245. package/dist/{commands/run → domain/run/competition}/agents/run-context.d.ts +9 -16
  246. package/dist/{commands/run → domain/run/competition}/agents/run-context.js +22 -70
  247. package/dist/{commands/run → domain/run/competition}/agents/types.d.ts +10 -13
  248. package/dist/domain/run/competition/agents/workspace.d.ts +21 -0
  249. package/dist/domain/run/competition/agents/workspace.js +47 -0
  250. package/dist/{commands/run → domain/run/competition}/errors.d.ts +8 -1
  251. package/dist/{commands/run → domain/run/competition}/errors.js +39 -9
  252. package/dist/{commands/run → domain/run/competition}/phases.d.ts +1 -2
  253. package/dist/domain/run/competition/phases.js +1 -0
  254. package/dist/domain/run/competition/prompt.d.ts +7 -0
  255. package/dist/domain/run/competition/prompt.js +27 -0
  256. package/dist/{commands/run → domain/run/competition}/reports.d.ts +5 -3
  257. package/dist/{commands/run → domain/run/competition}/reports.js +7 -19
  258. package/dist/domain/run/competition/termination-state.d.ts +4 -0
  259. package/dist/domain/run/competition/termination-state.js +12 -0
  260. package/dist/{records → domain/run/model}/enhanced.d.ts +6 -7
  261. package/dist/{records → domain/run/model}/enhanced.js +11 -11
  262. package/dist/{records → domain/run/model}/errors.d.ts +1 -1
  263. package/dist/{records → domain/run/model}/errors.js +5 -5
  264. package/dist/{records → domain/run/model}/mutators.d.ts +4 -3
  265. package/dist/{records → domain/run/model}/mutators.js +58 -36
  266. package/dist/domain/run/model/types.d.ts +376 -0
  267. package/dist/domain/run/model/types.js +192 -0
  268. package/dist/{records/persistence.d.ts → domain/run/persistence/adapter.d.ts} +9 -3
  269. package/dist/domain/run/persistence/adapter.js +340 -0
  270. package/dist/domain/run/persistence/error-mapping.d.ts +2 -0
  271. package/dist/domain/run/persistence/error-mapping.js +17 -0
  272. package/dist/domain/shared/lifecycle.d.ts +54 -0
  273. package/dist/domain/shared/lifecycle.js +165 -0
  274. package/dist/domain/shared/token-usage.d.ts +21 -0
  275. package/dist/domain/shared/token-usage.js +38 -0
  276. package/dist/domain/spec/competition/adapter.d.ts +31 -0
  277. package/dist/domain/spec/competition/adapter.js +196 -0
  278. package/dist/domain/spec/competition/prompt.d.ts +11 -0
  279. package/dist/domain/spec/competition/prompt.js +44 -0
  280. package/dist/domain/spec/model/output.d.ts +13 -0
  281. package/dist/domain/spec/model/output.js +36 -0
  282. package/dist/domain/spec/model/types.d.ts +98 -0
  283. package/dist/domain/spec/model/types.js +84 -0
  284. package/dist/domain/spec/persistence/adapter.d.ts +51 -0
  285. package/dist/domain/spec/persistence/adapter.js +140 -0
  286. package/dist/domain/verify/blinding/aliases.d.ts +7 -0
  287. package/dist/domain/verify/blinding/aliases.js +23 -0
  288. package/dist/domain/verify/competition/adapter.d.ts +54 -0
  289. package/dist/domain/verify/competition/adapter.js +444 -0
  290. package/dist/domain/verify/competition/artifacts.d.ts +6 -0
  291. package/dist/domain/verify/competition/artifacts.js +7 -0
  292. package/dist/domain/verify/competition/blinding.d.ts +24 -0
  293. package/dist/domain/verify/competition/blinding.js +109 -0
  294. package/dist/domain/verify/competition/finalize.d.ts +11 -0
  295. package/dist/domain/verify/competition/finalize.js +65 -0
  296. package/dist/domain/verify/competition/programmatic.d.ts +15 -0
  297. package/dist/domain/verify/competition/programmatic.js +352 -0
  298. package/dist/domain/verify/competition/prompt.d.ts +19 -0
  299. package/dist/domain/verify/competition/prompt.js +63 -0
  300. package/dist/domain/verify/competition/rubric.d.ts +23 -0
  301. package/dist/domain/verify/competition/rubric.js +77 -0
  302. package/dist/domain/verify/competition/shared-layout.d.ts +121 -0
  303. package/dist/domain/verify/competition/shared-layout.js +365 -0
  304. package/dist/domain/verify/competition/target.d.ts +47 -0
  305. package/dist/domain/verify/competition/target.js +1 -0
  306. package/dist/domain/verify/model/mutators.d.ts +16 -0
  307. package/dist/domain/verify/model/mutators.js +126 -0
  308. package/dist/domain/verify/model/types.d.ts +408 -0
  309. package/dist/domain/verify/model/types.js +289 -0
  310. package/dist/domain/verify/persistence/adapter.d.ts +43 -0
  311. package/dist/domain/verify/persistence/adapter.js +126 -0
  312. package/dist/domain/verify/programmatic/runner.d.ts +22 -0
  313. package/dist/domain/verify/programmatic/runner.js +209 -0
  314. package/dist/domain/verify/rubric-result.d.ts +28 -0
  315. package/dist/domain/verify/rubric-result.js +121 -0
  316. package/dist/extra-context/contract.d.ts +17 -0
  317. package/dist/extra-context/contract.js +60 -0
  318. package/dist/interactive/index.d.ts +2 -0
  319. package/dist/interactive/index.js +1 -0
  320. package/dist/interactive/providers/launch.d.ts +23 -0
  321. package/dist/interactive/providers/launch.js +203 -0
  322. package/dist/interactive/providers/mcp.d.ts +13 -0
  323. package/dist/interactive/providers/mcp.js +547 -0
  324. package/dist/interactive/providers/shared.d.ts +2 -0
  325. package/dist/interactive/providers/shared.js +1 -0
  326. package/dist/interactive/providers.d.ts +3 -0
  327. package/dist/interactive/providers.js +3 -0
  328. package/dist/interactive/records.d.ts +2 -0
  329. package/dist/interactive/records.js +1 -0
  330. package/dist/interactive/substrate.d.ts +21 -0
  331. package/dist/interactive/substrate.js +522 -0
  332. package/dist/interactive/types.d.ts +101 -0
  333. package/dist/interactive/types.js +1 -0
  334. package/dist/mcp/server.d.ts +88 -0
  335. package/dist/mcp/server.js +790 -0
  336. package/dist/persistence/error-mapping.d.ts +19 -0
  337. package/dist/persistence/error-mapping.js +44 -0
  338. package/dist/persistence/errors.d.ts +26 -0
  339. package/dist/persistence/errors.js +49 -0
  340. package/dist/persistence/extra-context.d.ts +9 -0
  341. package/dist/persistence/extra-context.js +60 -0
  342. package/dist/{records → persistence}/history-lock.js +2 -2
  343. package/dist/persistence/record-path-schema.d.ts +3 -0
  344. package/dist/persistence/record-path-schema.js +16 -0
  345. package/dist/persistence/session-store.d.ts +92 -0
  346. package/dist/persistence/session-store.js +412 -0
  347. package/dist/policy/auto.d.ts +13 -0
  348. package/dist/policy/auto.js +22 -0
  349. package/dist/policy/index.d.ts +5 -0
  350. package/dist/policy/index.js +5 -0
  351. package/dist/policy/resolution.d.ts +6 -0
  352. package/dist/policy/resolution.js +23 -0
  353. package/dist/policy/result.d.ts +53 -0
  354. package/dist/policy/result.js +15 -0
  355. package/dist/policy/selector.d.ts +11 -0
  356. package/dist/policy/selector.js +57 -0
  357. package/dist/policy/verification.d.ts +77 -0
  358. package/dist/policy/verification.js +365 -0
  359. package/dist/policy/verifier-selection.d.ts +13 -0
  360. package/dist/policy/verifier-selection.js +78 -0
  361. package/dist/preflight/branch.d.ts +9 -0
  362. package/dist/preflight/branch.js +48 -0
  363. package/dist/preflight/errors.d.ts +3 -0
  364. package/dist/preflight/errors.js +10 -3
  365. package/dist/preflight/index.d.ts +13 -0
  366. package/dist/preflight/index.js +43 -8
  367. package/dist/render/interactions/confirmation.js +4 -2
  368. package/dist/render/transcripts/apply.js +9 -10
  369. package/dist/render/transcripts/auto.d.ts +27 -0
  370. package/dist/render/transcripts/auto.js +21 -0
  371. package/dist/render/transcripts/init.d.ts +4 -15
  372. package/dist/render/transcripts/init.js +71 -72
  373. package/dist/render/transcripts/list.d.ts +10 -1
  374. package/dist/render/transcripts/list.js +121 -15
  375. package/dist/render/transcripts/message.d.ts +72 -0
  376. package/dist/render/transcripts/message.js +362 -0
  377. package/dist/render/transcripts/prune.d.ts +7 -2
  378. package/dist/render/transcripts/prune.js +64 -17
  379. package/dist/render/transcripts/reduce.d.ts +74 -0
  380. package/dist/render/transcripts/reduce.js +395 -0
  381. package/dist/render/transcripts/root-launcher.d.ts +19 -0
  382. package/dist/render/transcripts/root-launcher.js +40 -0
  383. package/dist/render/transcripts/run.d.ts +35 -6
  384. package/dist/render/transcripts/run.js +241 -165
  385. package/dist/render/transcripts/shared.d.ts +2 -0
  386. package/dist/render/transcripts/shared.js +11 -4
  387. package/dist/render/transcripts/spec.d.ts +74 -0
  388. package/dist/render/transcripts/spec.js +394 -0
  389. package/dist/render/transcripts/stage-progress.d.ts +22 -0
  390. package/dist/render/transcripts/stage-progress.js +6 -0
  391. package/dist/render/transcripts/update-check.d.ts +2 -0
  392. package/dist/render/transcripts/update-check.js +22 -0
  393. package/dist/render/transcripts/verify.d.ts +74 -0
  394. package/dist/render/transcripts/verify.js +409 -0
  395. package/dist/render/utils/agents.d.ts +10 -9
  396. package/dist/render/utils/agents.js +30 -82
  397. package/dist/render/utils/badges.d.ts +3 -20
  398. package/dist/render/utils/badges.js +3 -36
  399. package/dist/render/utils/duration.d.ts +12 -0
  400. package/dist/render/utils/duration.js +37 -0
  401. package/dist/render/utils/interactive-frame.d.ts +6 -0
  402. package/dist/render/utils/interactive-frame.js +38 -0
  403. package/dist/render/utils/records.js +4 -4
  404. package/dist/render/utils/runs.d.ts +3 -9
  405. package/dist/render/utils/runs.js +16 -48
  406. package/dist/render/utils/stage-output.d.ts +20 -0
  407. package/dist/render/utils/stage-output.js +44 -0
  408. package/dist/render/utils/timezone.d.ts +2 -0
  409. package/dist/render/utils/timezone.js +42 -0
  410. package/dist/render/utils/transcript-shell.d.ts +66 -0
  411. package/dist/render/utils/transcript-shell.js +155 -0
  412. package/dist/render/utils/transcript.d.ts +7 -1
  413. package/dist/render/utils/transcript.js +12 -2
  414. package/dist/render/utils/wrap.d.ts +1 -0
  415. package/dist/render/utils/wrap.js +20 -0
  416. package/dist/status/colors.d.ts +2 -3
  417. package/dist/status/colors.js +3 -3
  418. package/dist/status/index.d.ts +108 -8
  419. package/dist/status/index.js +164 -5
  420. package/dist/update-check/checker.d.ts +24 -0
  421. package/dist/update-check/checker.js +130 -0
  422. package/dist/update-check/prompt.d.ts +25 -0
  423. package/dist/update-check/prompt.js +62 -0
  424. package/dist/update-check/semver.d.ts +17 -0
  425. package/dist/update-check/semver.js +36 -0
  426. package/dist/update-check/state-path.d.ts +8 -0
  427. package/dist/update-check/state-path.js +18 -0
  428. package/dist/utils/binaries.js +14 -8
  429. package/dist/utils/errors.d.ts +3 -1
  430. package/dist/utils/errors.js +3 -1
  431. package/dist/utils/git.d.ts +10 -0
  432. package/dist/utils/git.js +15 -3
  433. package/dist/utils/output.d.ts +5 -1
  434. package/dist/utils/output.js +4 -2
  435. package/dist/utils/process.d.ts +2 -1
  436. package/dist/utils/process.js +7 -3
  437. package/dist/utils/session-id.d.ts +1 -0
  438. package/dist/utils/session-id.js +22 -0
  439. package/dist/utils/slug.d.ts +2 -0
  440. package/dist/utils/slug.js +15 -0
  441. package/dist/utils/voratiq-cli-target.d.ts +9 -0
  442. package/dist/utils/voratiq-cli-target.js +58 -0
  443. package/dist/workspace/agents.d.ts +13 -16
  444. package/dist/workspace/agents.js +22 -147
  445. package/dist/workspace/chat/artifacts.d.ts +9 -0
  446. package/dist/workspace/chat/artifacts.js +82 -12
  447. package/dist/workspace/chat/native-usage.d.ts +13 -0
  448. package/dist/workspace/chat/native-usage.js +60 -0
  449. package/dist/workspace/chat/sources.d.ts +9 -5
  450. package/dist/workspace/chat/sources.js +89 -23
  451. package/dist/workspace/chat/token-usage-result.d.ts +23 -0
  452. package/dist/workspace/chat/token-usage-result.js +7 -0
  453. package/dist/workspace/chat/usage-extractor.d.ts +30 -0
  454. package/dist/workspace/chat/usage-extractor.js +461 -0
  455. package/dist/workspace/chat/usage-mappings.d.ts +20 -0
  456. package/dist/workspace/chat/usage-mappings.js +136 -0
  457. package/dist/workspace/credential-guard.js +1 -1
  458. package/dist/workspace/dependencies.js +4 -4
  459. package/dist/workspace/errors.d.ts +5 -0
  460. package/dist/workspace/errors.js +13 -3
  461. package/dist/workspace/layout.d.ts +17 -6
  462. package/dist/workspace/layout.js +51 -32
  463. package/dist/workspace/promotion.d.ts +32 -0
  464. package/dist/workspace/promotion.js +34 -0
  465. package/dist/workspace/prune.d.ts +1 -1
  466. package/dist/workspace/run.d.ts +1 -3
  467. package/dist/workspace/run.js +6 -15
  468. package/dist/workspace/setup.d.ts +8 -0
  469. package/dist/workspace/setup.js +359 -56
  470. package/dist/workspace/shim.js +1 -1
  471. package/dist/workspace/structure.d.ts +91 -26
  472. package/dist/workspace/structure.js +227 -43
  473. package/dist/workspace/templates.d.ts +9 -3
  474. package/dist/workspace/templates.js +26 -15
  475. package/dist/workspace/verification-defaults.d.ts +12 -0
  476. package/dist/workspace/verification-defaults.js +1017 -0
  477. package/package.json +30 -24
  478. package/dist/cli/review.d.ts +0 -12
  479. package/dist/cli/review.js +0 -33
  480. package/dist/commands/errors.d.ts +0 -4
  481. package/dist/commands/errors.js +0 -7
  482. package/dist/commands/init/evals.d.ts +0 -4
  483. package/dist/commands/init/evals.js +0 -219
  484. package/dist/commands/review/command.d.ts +0 -10
  485. package/dist/commands/review/command.js +0 -26
  486. package/dist/commands/run/agent-execution.d.ts +0 -19
  487. package/dist/commands/run/agent-execution.js +0 -63
  488. package/dist/commands/run/agents/auth-stage.d.ts +0 -23
  489. package/dist/commands/run/agents/auth-stage.js +0 -108
  490. package/dist/commands/run/agents/chat-preserver.d.ts +0 -9
  491. package/dist/commands/run/agents/chat-preserver.js +0 -35
  492. package/dist/commands/run/agents/eval-runner.d.ts +0 -19
  493. package/dist/commands/run/agents/eval-runner.js +0 -27
  494. package/dist/commands/run/agents/failures.js +0 -32
  495. package/dist/commands/run/agents/preparation.js +0 -123
  496. package/dist/commands/run/agents.d.ts +0 -14
  497. package/dist/commands/run/agents.js +0 -47
  498. package/dist/commands/run/prompts.d.ts +0 -4
  499. package/dist/commands/run/prompts.js +0 -16
  500. package/dist/commands/run/sandbox-registry.d.ts +0 -4
  501. package/dist/commands/run/sandbox-registry.js +0 -54
  502. package/dist/configs/evals/defaults.d.ts +0 -8
  503. package/dist/configs/evals/defaults.js +0 -28
  504. package/dist/configs/evals/detect.d.ts +0 -10
  505. package/dist/configs/evals/errors.d.ts +0 -16
  506. package/dist/configs/evals/errors.js +0 -29
  507. package/dist/configs/evals/loader.d.ts +0 -9
  508. package/dist/configs/evals/loader.js +0 -46
  509. package/dist/configs/evals/types.d.ts +0 -42
  510. package/dist/configs/evals/types.js +0 -74
  511. package/dist/evals/runner.d.ts +0 -16
  512. package/dist/evals/runner.js +0 -132
  513. package/dist/records/persistence.js +0 -469
  514. package/dist/records/types.d.ts +0 -255
  515. package/dist/records/types.js +0 -160
  516. package/dist/render/transcripts/review.d.ts +0 -2
  517. package/dist/render/transcripts/review.js +0 -36
  518. /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.d.ts +0 -0
  519. /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.js +0 -0
  520. /package/dist/{commands/run → agents/runtime/shim}/argv.d.ts +0 -0
  521. /package/dist/{commands/run → agents/runtime/shim}/argv.js +0 -0
  522. /package/dist/{commands/run/agents → agents/runtime}/types.js +0 -0
  523. /package/dist/{commands/run → domain/run/competition}/agents/preparation.d.ts +0 -0
  524. /package/dist/{commands/run/phases.js → domain/run/competition/agents/types.js} +0 -0
  525. /package/dist/{commands/run → domain/run/model}/id.d.ts +0 -0
  526. /package/dist/{commands/run → domain/run/model}/id.js +0 -0
  527. /package/dist/{records → persistence}/history-lock.d.ts +0 -0
@@ -1,4 +1,5 @@
1
1
  import { stat } from "node:fs/promises";
2
+ import { renderBlocks } from "../../render/utils/transcript.js";
2
3
  import { pathExists } from "../../utils/fs.js";
3
4
  import { resolvePath } from "../../utils/path.js";
4
5
  import { normalizeEnvironmentConfig } from "./types.js";
@@ -31,10 +32,14 @@ export async function detectEnvironmentConfig(options) {
31
32
  const selection = (await promptPath({
32
33
  message: "Enter the path to an existing Python virtual environment (press Enter to skip)",
33
34
  defaultValue: ".venv",
34
- prefaceLines: [
35
- "",
36
- "Detected Python project markers but no virtual environment directory.",
37
- ],
35
+ prefaceLines: renderBlocks({
36
+ sections: [
37
+ [
38
+ "Detected Python project markers but no virtual environment directory.",
39
+ ],
40
+ ],
41
+ leadingBlankLine: true,
42
+ }),
38
43
  })).trim();
39
44
  if (selection.length > 0) {
40
45
  config.python = { path: selection };
@@ -1,5 +1,5 @@
1
1
  import { WorkspaceError } from "../../workspace/errors.js";
2
- const DEFAULT_ENVIRONMENT_ERROR_CONTEXT = "Invalid workspace environment configuration";
2
+ const DEFAULT_ENVIRONMENT_ERROR_CONTEXT = "Invalid `environment.yaml`";
3
3
  export class EnvironmentConfigError extends WorkspaceError {
4
4
  constructor(message) {
5
5
  super(message);
@@ -9,7 +9,7 @@ export class EnvironmentConfigError extends WorkspaceError {
9
9
  export class MissingEnvironmentConfigError extends EnvironmentConfigError {
10
10
  filePath;
11
11
  constructor(filePath) {
12
- super(`Missing workspace environment configuration at ${filePath}`);
12
+ super("Missing `environment.yaml`.");
13
13
  this.filePath = filePath;
14
14
  this.name = "MissingEnvironmentConfigError";
15
15
  }
@@ -18,8 +18,8 @@ export class EnvironmentConfigParseError extends EnvironmentConfigError {
18
18
  filePath;
19
19
  constructor(filePath, detail) {
20
20
  super(detail
21
- ? `${DEFAULT_ENVIRONMENT_ERROR_CONTEXT} (${filePath}): ${detail}`
22
- : `${DEFAULT_ENVIRONMENT_ERROR_CONTEXT} at ${filePath}`);
21
+ ? `${DEFAULT_ENVIRONMENT_ERROR_CONTEXT}: ${detail}`
22
+ : DEFAULT_ENVIRONMENT_ERROR_CONTEXT);
23
23
  this.filePath = filePath;
24
24
  this.name = "EnvironmentConfigParseError";
25
25
  }
@@ -1,5 +1,5 @@
1
1
  import { type EnvironmentConfig } from "./types.js";
2
- export declare const DEFAULT_ENVIRONMENT_FILE_DISPLAY: string;
2
+ export declare const DEFAULT_ENVIRONMENT_FILE_DISPLAY = "environment.yaml";
3
3
  export interface LoadEnvironmentConfigOptions {
4
4
  root?: string;
5
5
  filePath?: string;
@@ -1,11 +1,11 @@
1
1
  import { parseYamlDocument, } from "../../utils/yaml-reader.js";
2
- import { formatWorkspacePath, resolveWorkspacePath, VORATIQ_ENVIRONMENT_FILE, } from "../../workspace/structure.js";
2
+ import { resolveWorkspacePath, VORATIQ_ENVIRONMENT_FILE, } from "../../workspace/structure.js";
3
3
  import { createConfigLoader } from "../shared/loader-factory.js";
4
4
  import { formatYamlErrorDetail } from "../shared/yaml-error-formatter.js";
5
5
  import { EnvironmentConfigParseError, MissingEnvironmentConfigError, } from "./errors.js";
6
6
  import { environmentConfigSchema, getNodeDependencyRoots, getPythonEnvironmentPath, isNodeEnvironmentDisabled, isPythonEnvironmentDisabled, normalizeEnvironmentConfig, } from "./types.js";
7
- export const DEFAULT_ENVIRONMENT_FILE_DISPLAY = formatWorkspacePath(VORATIQ_ENVIRONMENT_FILE);
8
- const DEFAULT_ENVIRONMENT_ERROR_CONTEXT = "Failed to parse workspace environment configuration";
7
+ export const DEFAULT_ENVIRONMENT_FILE_DISPLAY = VORATIQ_ENVIRONMENT_FILE;
8
+ const DEFAULT_ENVIRONMENT_ERROR_CONTEXT = "Invalid `environment.yaml`";
9
9
  const loadEnvironmentConfigInternal = createConfigLoader({
10
10
  resolveFilePath: (root, options) => options.filePath ?? resolveWorkspacePath(root, VORATIQ_ENVIRONMENT_FILE),
11
11
  handleMissing: ({ filePath, options }) => {
@@ -0,0 +1,16 @@
1
+ import { type AgentPreset } from "../agents/defaults.js";
2
+ import type { AgentConfigEntry, AgentsConfig } from "../agents/types.js";
3
+ export interface ResolvedPresetAgent {
4
+ readonly id: string;
5
+ readonly runOnly?: true;
6
+ }
7
+ export interface BootstrapOrchestrationProfiles {
8
+ readonly default: readonly ResolvedPresetAgent[];
9
+ readonly pro: readonly ResolvedPresetAgent[];
10
+ readonly lite: readonly ResolvedPresetAgent[];
11
+ }
12
+ export declare function collectEnabledAgentIdsForBootstrap(agents: readonly Pick<AgentConfigEntry, "id" | "enabled">[]): string[];
13
+ export declare function serializeDefaultOrchestrationYaml(profiles: BootstrapOrchestrationProfiles): string;
14
+ export declare function listEnabledAgentIdsForOrchestrationBootstrap(config: AgentsConfig): string[];
15
+ export declare function listPresetStageAgentsForOrchestrationBootstrap(config: AgentsConfig, preset: AgentPreset): ResolvedPresetAgent[];
16
+ export declare function buildDefaultOrchestrationTemplate(config: AgentsConfig, preset?: AgentPreset): string;
@@ -0,0 +1,122 @@
1
+ import { getAgentDefaultId, getAgentDefaultsForPreset, } from "../agents/defaults.js";
2
+ const ORCHESTRATION_BOOTSTRAP_STAGE_IDS = [
3
+ "spec",
4
+ "run",
5
+ "reduce",
6
+ "verify",
7
+ "message",
8
+ ];
9
+ const ORCHESTRATION_BOOTSTRAP_PRESET_PROFILES = ["pro", "lite"];
10
+ export function collectEnabledAgentIdsForBootstrap(agents) {
11
+ const seen = new Set();
12
+ const enabledAgentIds = [];
13
+ for (const entry of agents) {
14
+ if (entry.enabled === false) {
15
+ continue;
16
+ }
17
+ if (seen.has(entry.id)) {
18
+ continue;
19
+ }
20
+ seen.add(entry.id);
21
+ enabledAgentIds.push(entry.id);
22
+ }
23
+ return enabledAgentIds;
24
+ }
25
+ export function serializeDefaultOrchestrationYaml(profiles) {
26
+ const lines = ["profiles:"];
27
+ const profileNames = [
28
+ "default",
29
+ ...ORCHESTRATION_BOOTSTRAP_PRESET_PROFILES,
30
+ ];
31
+ for (const [index, profileName] of profileNames.entries()) {
32
+ if (index > 0) {
33
+ lines.push("");
34
+ }
35
+ appendProfileYaml(lines, profileName, profiles[profileName]);
36
+ }
37
+ lines.push("");
38
+ return lines.join("\n");
39
+ }
40
+ function appendProfileYaml(lines, profileName, presetAgents) {
41
+ lines.push(` ${profileName}:`);
42
+ for (const stageId of ORCHESTRATION_BOOTSTRAP_STAGE_IDS) {
43
+ lines.push(` ${stageId}:`);
44
+ const agents = stageId === "run" ? presetAgents : presetAgents.filter((a) => !a.runOnly);
45
+ if (agents.length === 0) {
46
+ lines.push(" agents: []");
47
+ }
48
+ else {
49
+ lines.push(" agents:");
50
+ for (const agent of agents) {
51
+ lines.push(` - id: ${formatYamlScalar(agent.id)}`);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ function formatYamlScalar(value) {
57
+ if (/^[a-z0-9_-]{1,64}$/u.test(value)) {
58
+ return value;
59
+ }
60
+ const escaped = value.replaceAll('"', '\\"');
61
+ return `"${escaped}"`;
62
+ }
63
+ export function listEnabledAgentIdsForOrchestrationBootstrap(config) {
64
+ return collectEnabledAgentIdsForBootstrap(config.agents);
65
+ }
66
+ export function listPresetStageAgentsForOrchestrationBootstrap(config, preset) {
67
+ if (preset === "manual") {
68
+ return [];
69
+ }
70
+ const enabledByProvider = groupEnabledAgentsByProvider(config.agents);
71
+ const seenAgentIds = new Set();
72
+ const stageAgents = [];
73
+ for (const agentDefault of getAgentDefaultsForPreset(preset)) {
74
+ const candidates = enabledByProvider.get(agentDefault.provider);
75
+ if (!candidates || candidates.length === 0) {
76
+ continue;
77
+ }
78
+ const defaultId = getAgentDefaultId(agentDefault);
79
+ const preferred = candidates.find((entry) => entry.id === defaultId);
80
+ const selectedId = preferred?.id ?? candidates[0]?.id;
81
+ if (!selectedId || seenAgentIds.has(selectedId)) {
82
+ continue;
83
+ }
84
+ seenAgentIds.add(selectedId);
85
+ stageAgents.push({
86
+ id: selectedId,
87
+ ...(agentDefault.runOnly ? { runOnly: true } : {}),
88
+ });
89
+ }
90
+ return stageAgents;
91
+ }
92
+ function groupEnabledAgentsByProvider(agents) {
93
+ const grouped = new Map();
94
+ for (const entry of agents) {
95
+ if (entry.enabled === false) {
96
+ continue;
97
+ }
98
+ if (!hasBinary(entry.binary)) {
99
+ continue;
100
+ }
101
+ const existing = grouped.get(entry.provider);
102
+ if (existing) {
103
+ existing.push(entry);
104
+ continue;
105
+ }
106
+ grouped.set(entry.provider, [entry]);
107
+ }
108
+ return grouped;
109
+ }
110
+ function hasBinary(binary) {
111
+ return typeof binary === "string" && binary.trim().length > 0;
112
+ }
113
+ export function buildDefaultOrchestrationTemplate(config, preset = "pro") {
114
+ const proAgents = listPresetStageAgentsForOrchestrationBootstrap(config, "pro");
115
+ const liteAgents = listPresetStageAgentsForOrchestrationBootstrap(config, "lite");
116
+ const defaultAgents = preset === "lite" ? liteAgents : preset === "manual" ? [] : proAgents;
117
+ return serializeDefaultOrchestrationYaml({
118
+ default: defaultAgents,
119
+ pro: proAgents,
120
+ lite: liteAgents,
121
+ });
122
+ }
@@ -0,0 +1,15 @@
1
+ import { WorkspaceSetupError } from "../../workspace/errors.js";
2
+ export declare const DEFAULT_ORCHESTRATION_ERROR_CONTEXT: "Invalid `orchestration.yaml`";
3
+ export declare class OrchestrationConfigError extends WorkspaceSetupError {
4
+ constructor(message: string);
5
+ }
6
+ export declare class MissingOrchestrationConfigError extends OrchestrationConfigError {
7
+ readonly filePath: string;
8
+ constructor(filePath: string);
9
+ }
10
+ export declare class OrchestrationYamlParseError extends OrchestrationConfigError {
11
+ constructor(message: string);
12
+ }
13
+ export declare class OrchestrationSchemaValidationError extends OrchestrationConfigError {
14
+ constructor(message: string);
15
+ }
@@ -0,0 +1,28 @@
1
+ import { WorkspaceSetupError } from "../../workspace/errors.js";
2
+ export const DEFAULT_ORCHESTRATION_ERROR_CONTEXT = "Invalid `orchestration.yaml`";
3
+ export class OrchestrationConfigError extends WorkspaceSetupError {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = "OrchestrationConfigError";
7
+ }
8
+ }
9
+ export class MissingOrchestrationConfigError extends OrchestrationConfigError {
10
+ filePath;
11
+ constructor(filePath) {
12
+ super("Missing `orchestration.yaml`.");
13
+ this.filePath = filePath;
14
+ this.name = "MissingOrchestrationConfigError";
15
+ }
16
+ }
17
+ export class OrchestrationYamlParseError extends OrchestrationConfigError {
18
+ constructor(message) {
19
+ super(message);
20
+ this.name = "OrchestrationYamlParseError";
21
+ }
22
+ }
23
+ export class OrchestrationSchemaValidationError extends OrchestrationConfigError {
24
+ constructor(message) {
25
+ super(message);
26
+ this.name = "OrchestrationSchemaValidationError";
27
+ }
28
+ }
@@ -0,0 +1,9 @@
1
+ import { type OrchestrationConfig } from "./types.js";
2
+ export interface LoadOrchestrationConfigOptions {
3
+ root?: string;
4
+ filePath?: string;
5
+ agentsFilePath?: string;
6
+ readFile?: (path: string) => string;
7
+ }
8
+ export declare function loadOrchestrationConfig(options?: LoadOrchestrationConfigOptions): OrchestrationConfig;
9
+ export declare function readOrchestrationConfig(content: string): OrchestrationConfig;
@@ -0,0 +1,148 @@
1
+ import { readAgentsConfig } from "../../configs/agents/loader.js";
2
+ import { isMissing, readUtf8File } from "../../utils/fs.js";
3
+ import { parseYamlDocument, } from "../../utils/yaml-reader.js";
4
+ import { resolveWorkspacePath, VORATIQ_AGENTS_FILE, VORATIQ_ORCHESTRATION_FILE, } from "../../workspace/structure.js";
5
+ import { createConfigLoader } from "../shared/loader-factory.js";
6
+ import { DEFAULT_ORCHESTRATION_ERROR_CONTEXT, MissingOrchestrationConfigError, OrchestrationSchemaValidationError, OrchestrationYamlParseError, } from "./errors.js";
7
+ import { ORCHESTRATION_STAGE_IDS, orchestrationConfigSchema, } from "./types.js";
8
+ const loadOrchestrationConfigInternal = createConfigLoader({
9
+ resolveFilePath: (root, options) => options.filePath ?? resolveWorkspacePath(root, VORATIQ_ORCHESTRATION_FILE),
10
+ selectReadFile: (options) => options.readFile,
11
+ handleMissing: ({ filePath }) => {
12
+ throw new MissingOrchestrationConfigError(filePath);
13
+ },
14
+ parse: (content, context) => {
15
+ const config = readOrchestrationConfig(content);
16
+ validateStageAgentReferences(config, {
17
+ root: context.root,
18
+ agentsFilePath: context.options.agentsFilePath,
19
+ readFile: context.options.readFile,
20
+ });
21
+ return config;
22
+ },
23
+ });
24
+ export function loadOrchestrationConfig(options = {}) {
25
+ return loadOrchestrationConfigInternal(options);
26
+ }
27
+ export function readOrchestrationConfig(content) {
28
+ const parsed = parseYamlDocument(content, {
29
+ formatError: (detail) => formatOrchestrationYamlError(detail),
30
+ });
31
+ const result = orchestrationConfigSchema.safeParse(parsed);
32
+ if (!result.success) {
33
+ const message = formatSchemaValidationErrorMessage(result.error.issues);
34
+ throw new OrchestrationSchemaValidationError(message);
35
+ }
36
+ return result.data;
37
+ }
38
+ function validateStageAgentReferences(config, context) {
39
+ const agentsById = loadAgentsById(context);
40
+ for (const profile of Object.values(config.profiles)) {
41
+ for (const stageId of ORCHESTRATION_STAGE_IDS) {
42
+ const stage = profile[stageId];
43
+ for (const stageAgent of stage.agents) {
44
+ assertAgentEnabled(stageAgent.id, agentsById);
45
+ }
46
+ }
47
+ }
48
+ }
49
+ function assertAgentEnabled(agentId, agentsById) {
50
+ const matchingAgent = agentsById.get(agentId);
51
+ if (!matchingAgent) {
52
+ throw new OrchestrationSchemaValidationError(`${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: Agent ${formatAgentId(agentId)} is not defined in \`agents.yaml\`.`);
53
+ }
54
+ if (matchingAgent.enabled === false) {
55
+ throw new OrchestrationSchemaValidationError(`${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: Agent ${formatAgentId(agentId)} is disabled in \`agents.yaml\`.`);
56
+ }
57
+ }
58
+ function loadAgentsById(context) {
59
+ const { root, readFile } = context;
60
+ const agentsFilePath = context.agentsFilePath ?? resolveWorkspacePath(root, VORATIQ_AGENTS_FILE);
61
+ const read = readFile ?? defaultReadFile;
62
+ const agentsDisplayPath = VORATIQ_AGENTS_FILE;
63
+ let content;
64
+ try {
65
+ content = read(agentsFilePath);
66
+ }
67
+ catch (error) {
68
+ if (isMissing(error)) {
69
+ throw new OrchestrationSchemaValidationError(`${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: Cannot validate stage agents because \`${agentsDisplayPath}\` is missing.`);
70
+ }
71
+ throw error;
72
+ }
73
+ let agentsConfig;
74
+ try {
75
+ agentsConfig = readAgentsConfig(content);
76
+ }
77
+ catch (error) {
78
+ const message = error instanceof Error && error.message
79
+ ? normalizeMessage(error.message)
80
+ : "unknown error";
81
+ throw new OrchestrationSchemaValidationError(`${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: Cannot validate stage agents because \`${agentsDisplayPath}\` is invalid (${message}).`);
82
+ }
83
+ const agentsById = new Map();
84
+ for (const [index, agent] of agentsConfig.agents.entries()) {
85
+ if (agentsById.has(agent.id)) {
86
+ throw new OrchestrationSchemaValidationError(`${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: Cannot validate stage agents because \`${agentsDisplayPath}\` has duplicate id ${formatAgentId(agent.id)} at \`agents[${index}]\`.`);
87
+ }
88
+ agentsById.set(agent.id, { enabled: agent.enabled !== false });
89
+ }
90
+ return agentsById;
91
+ }
92
+ function defaultReadFile(path) {
93
+ return readUtf8File(path, "utf8");
94
+ }
95
+ function formatOrchestrationYamlError(detail) {
96
+ const parseReason = normalizeMessage(detail.reason ??
97
+ detail.message ??
98
+ `${VORATIQ_ORCHESTRATION_FILE} contains invalid YAML`);
99
+ return new OrchestrationYamlParseError(`${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: ${parseReason}.`);
100
+ }
101
+ function formatSchemaValidationErrorMessage(issues) {
102
+ const issue = selectMostActionableIssue(issues);
103
+ if (!issue) {
104
+ return `${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: invalid value.`;
105
+ }
106
+ const path = formatIssuePath(issue.path);
107
+ if (issue.code === "unrecognized_keys") {
108
+ const keys = issue.keys
109
+ .slice()
110
+ .sort()
111
+ .map((key) => `\`${key}\``)
112
+ .join(", ");
113
+ const noun = issue.keys.length > 1 ? "keys" : "key";
114
+ return `${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: ${path}: unknown ${noun} ${keys}.`;
115
+ }
116
+ return `${DEFAULT_ORCHESTRATION_ERROR_CONTEXT}: ${path}: ${normalizeMessage(issue.message)}.`;
117
+ }
118
+ function selectMostActionableIssue(issues) {
119
+ const unrecognizedKeyIssue = issues.find((issue) => issue.code === "unrecognized_keys");
120
+ return unrecognizedKeyIssue ?? issues[0];
121
+ }
122
+ function formatIssuePath(path) {
123
+ if (path.length === 0) {
124
+ return "<root>";
125
+ }
126
+ let formatted = "";
127
+ for (const segment of path) {
128
+ if (typeof segment === "number") {
129
+ formatted += `[${segment}]`;
130
+ continue;
131
+ }
132
+ if (typeof segment === "symbol") {
133
+ const symbolLabel = segment.description ?? segment.toString();
134
+ formatted =
135
+ formatted.length === 0 ? symbolLabel : `${formatted}.${symbolLabel}`;
136
+ continue;
137
+ }
138
+ formatted = formatted.length === 0 ? segment : `${formatted}.${segment}`;
139
+ }
140
+ return formatted;
141
+ }
142
+ function normalizeMessage(message) {
143
+ const compact = message.replace(/\s+/gu, " ").trim();
144
+ return compact.replace(/[.]$/u, "");
145
+ }
146
+ function formatAgentId(agentId) {
147
+ return `\`${agentId}\``;
148
+ }
@@ -0,0 +1,102 @@
1
+ import { z } from "zod";
2
+ export declare const ORCHESTRATION_STAGE_IDS: readonly ["spec", "run", "reduce", "verify", "message"];
3
+ export type OrchestrationStageId = (typeof ORCHESTRATION_STAGE_IDS)[number];
4
+ export declare const orchestrationStageAgentSchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ }, z.core.$strict>;
7
+ export type OrchestrationStageAgent = z.infer<typeof orchestrationStageAgentSchema>;
8
+ export declare const orchestrationStageSchema: z.ZodObject<{
9
+ agents: z.ZodArray<z.ZodObject<{
10
+ id: z.ZodString;
11
+ }, z.core.$strict>>;
12
+ }, z.core.$strict>;
13
+ export type OrchestrationStageConfig = z.infer<typeof orchestrationStageSchema>;
14
+ export declare const orchestrationProfileSchema: z.ZodObject<{
15
+ spec: z.ZodObject<{
16
+ agents: z.ZodArray<z.ZodObject<{
17
+ id: z.ZodString;
18
+ }, z.core.$strict>>;
19
+ }, z.core.$strict>;
20
+ run: z.ZodObject<{
21
+ agents: z.ZodArray<z.ZodObject<{
22
+ id: z.ZodString;
23
+ }, z.core.$strict>>;
24
+ }, z.core.$strict>;
25
+ reduce: z.ZodObject<{
26
+ agents: z.ZodArray<z.ZodObject<{
27
+ id: z.ZodString;
28
+ }, z.core.$strict>>;
29
+ }, z.core.$strict>;
30
+ verify: z.ZodObject<{
31
+ agents: z.ZodArray<z.ZodObject<{
32
+ id: z.ZodString;
33
+ }, z.core.$strict>>;
34
+ }, z.core.$strict>;
35
+ message: z.ZodDefault<z.ZodObject<{
36
+ agents: z.ZodArray<z.ZodObject<{
37
+ id: z.ZodString;
38
+ }, z.core.$strict>>;
39
+ }, z.core.$strict>>;
40
+ }, z.core.$strict>;
41
+ export type OrchestrationProfile = z.infer<typeof orchestrationProfileSchema>;
42
+ export declare const ORCHESTRATION_PROFILE_NAME_PATTERN: RegExp;
43
+ export declare const ORCHESTRATION_PROFILE_NAME_MAX_LENGTH = 64;
44
+ export declare const orchestrationProfileNameSchema: z.ZodString;
45
+ export declare const orchestrationProfilesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
46
+ spec: z.ZodObject<{
47
+ agents: z.ZodArray<z.ZodObject<{
48
+ id: z.ZodString;
49
+ }, z.core.$strict>>;
50
+ }, z.core.$strict>;
51
+ run: z.ZodObject<{
52
+ agents: z.ZodArray<z.ZodObject<{
53
+ id: z.ZodString;
54
+ }, z.core.$strict>>;
55
+ }, z.core.$strict>;
56
+ reduce: z.ZodObject<{
57
+ agents: z.ZodArray<z.ZodObject<{
58
+ id: z.ZodString;
59
+ }, z.core.$strict>>;
60
+ }, z.core.$strict>;
61
+ verify: z.ZodObject<{
62
+ agents: z.ZodArray<z.ZodObject<{
63
+ id: z.ZodString;
64
+ }, z.core.$strict>>;
65
+ }, z.core.$strict>;
66
+ message: z.ZodDefault<z.ZodObject<{
67
+ agents: z.ZodArray<z.ZodObject<{
68
+ id: z.ZodString;
69
+ }, z.core.$strict>>;
70
+ }, z.core.$strict>>;
71
+ }, z.core.$strict>>;
72
+ export type OrchestrationProfiles = z.infer<typeof orchestrationProfilesSchema>;
73
+ export declare const orchestrationConfigSchema: z.ZodObject<{
74
+ profiles: z.ZodRecord<z.ZodString, z.ZodObject<{
75
+ spec: z.ZodObject<{
76
+ agents: z.ZodArray<z.ZodObject<{
77
+ id: z.ZodString;
78
+ }, z.core.$strict>>;
79
+ }, z.core.$strict>;
80
+ run: z.ZodObject<{
81
+ agents: z.ZodArray<z.ZodObject<{
82
+ id: z.ZodString;
83
+ }, z.core.$strict>>;
84
+ }, z.core.$strict>;
85
+ reduce: z.ZodObject<{
86
+ agents: z.ZodArray<z.ZodObject<{
87
+ id: z.ZodString;
88
+ }, z.core.$strict>>;
89
+ }, z.core.$strict>;
90
+ verify: z.ZodObject<{
91
+ agents: z.ZodArray<z.ZodObject<{
92
+ id: z.ZodString;
93
+ }, z.core.$strict>>;
94
+ }, z.core.$strict>;
95
+ message: z.ZodDefault<z.ZodObject<{
96
+ agents: z.ZodArray<z.ZodObject<{
97
+ id: z.ZodString;
98
+ }, z.core.$strict>>;
99
+ }, z.core.$strict>>;
100
+ }, z.core.$strict>>;
101
+ }, z.core.$strict>;
102
+ export type OrchestrationConfig = z.infer<typeof orchestrationConfigSchema>;
@@ -0,0 +1,65 @@
1
+ import { z } from "zod";
2
+ import { agentIdSchema } from "../agents/types.js";
3
+ export const ORCHESTRATION_STAGE_IDS = [
4
+ "spec",
5
+ "run",
6
+ "reduce",
7
+ "verify",
8
+ "message",
9
+ ];
10
+ export const orchestrationStageAgentSchema = z
11
+ .object({
12
+ id: agentIdSchema,
13
+ })
14
+ .strict();
15
+ export const orchestrationStageSchema = z
16
+ .object({
17
+ agents: z.array(orchestrationStageAgentSchema),
18
+ })
19
+ .strict()
20
+ .superRefine((value, ctx) => {
21
+ const seen = new Set();
22
+ value.agents.forEach((agent, index) => {
23
+ if (seen.has(agent.id)) {
24
+ ctx.addIssue({
25
+ code: z.ZodIssueCode.custom,
26
+ path: ["agents", index, "id"],
27
+ message: `duplicate stage agent id \`${agent.id}\``,
28
+ });
29
+ return;
30
+ }
31
+ seen.add(agent.id);
32
+ });
33
+ });
34
+ const orchestrationProfileShape = {
35
+ spec: orchestrationStageSchema,
36
+ run: orchestrationStageSchema,
37
+ reduce: orchestrationStageSchema,
38
+ verify: orchestrationStageSchema,
39
+ message: orchestrationStageSchema.default({ agents: [] }),
40
+ };
41
+ export const orchestrationProfileSchema = z
42
+ .object(orchestrationProfileShape)
43
+ .strict();
44
+ export const ORCHESTRATION_PROFILE_NAME_PATTERN = /^[a-z0-9][a-z0-9-]*$/u;
45
+ export const ORCHESTRATION_PROFILE_NAME_MAX_LENGTH = 64;
46
+ export const orchestrationProfileNameSchema = z
47
+ .string()
48
+ .max(ORCHESTRATION_PROFILE_NAME_MAX_LENGTH, `profile name must be ${ORCHESTRATION_PROFILE_NAME_MAX_LENGTH} characters or fewer`)
49
+ .regex(ORCHESTRATION_PROFILE_NAME_PATTERN, "profile name must match /^[a-z0-9][a-z0-9-]*$/");
50
+ export const orchestrationProfilesSchema = z
51
+ .record(orchestrationProfileNameSchema, orchestrationProfileSchema)
52
+ .superRefine((profiles, ctx) => {
53
+ if (!Object.hasOwn(profiles, "default")) {
54
+ ctx.addIssue({
55
+ code: z.ZodIssueCode.custom,
56
+ path: ["default"],
57
+ message: "required",
58
+ });
59
+ }
60
+ });
61
+ export const orchestrationConfigSchema = z
62
+ .object({
63
+ profiles: orchestrationProfilesSchema,
64
+ })
65
+ .strict();
@@ -2,7 +2,12 @@ export const DEFAULT_SANDBOX_PROVIDERS = [
2
2
  {
3
3
  id: "claude",
4
4
  network: {
5
- allowedDomains: ["api.anthropic.com", "console.anthropic.com"],
5
+ allowedDomains: [
6
+ "api.anthropic.com",
7
+ "console.anthropic.com",
8
+ "mcp-proxy.anthropic.com",
9
+ "platform.claude.com",
10
+ ],
6
11
  deniedDomains: [],
7
12
  allowLocalBinding: false,
8
13
  },
@@ -10,7 +15,12 @@ export const DEFAULT_SANDBOX_PROVIDERS = [
10
15
  {
11
16
  id: "codex",
12
17
  network: {
13
- allowedDomains: ["api.openai.com", "chatgpt.com", "auth.openai.com"],
18
+ allowedDomains: [
19
+ "ab.chatgpt.com",
20
+ "api.openai.com",
21
+ "auth.openai.com",
22
+ "chatgpt.com",
23
+ ],
14
24
  deniedDomains: [],
15
25
  allowLocalBinding: false,
16
26
  },
@@ -19,10 +29,10 @@ export const DEFAULT_SANDBOX_PROVIDERS = [
19
29
  id: "gemini",
20
30
  network: {
21
31
  allowedDomains: [
22
- "oauth2.googleapis.com",
23
32
  "cloudcode-pa.googleapis.com",
24
- "play.googleapis.com",
25
33
  "generativelanguage.googleapis.com",
34
+ "oauth2.googleapis.com",
35
+ "play.googleapis.com",
26
36
  ],
27
37
  deniedDomains: [],
28
38
  allowLocalBinding: false,
@@ -1,5 +1,5 @@
1
1
  import { WorkspaceSetupError } from "../../workspace/errors.js";
2
- export declare const DEFAULT_SANDBOX_ERROR_CONTEXT: "Invalid `.voratiq/sandbox.yaml`";
2
+ export declare const DEFAULT_SANDBOX_ERROR_CONTEXT: "Invalid `sandbox.yaml`";
3
3
  export declare class SandboxConfigurationError extends WorkspaceSetupError {
4
4
  constructor(detail: string);
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import { WorkspaceSetupError } from "../../workspace/errors.js";
2
- export const DEFAULT_SANDBOX_ERROR_CONTEXT = "Invalid `.voratiq/sandbox.yaml`";
2
+ export const DEFAULT_SANDBOX_ERROR_CONTEXT = "Invalid `sandbox.yaml`";
3
3
  export class SandboxConfigurationError extends WorkspaceSetupError {
4
4
  constructor(detail) {
5
5
  super(detail);