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
@@ -0,0 +1 @@
1
+ export { generateSessionId } from "../../utils/session-id.js";
@@ -0,0 +1 @@
1
+ export { generateSessionId } from "../../utils/session-id.js";
@@ -0,0 +1,22 @@
1
+ import type { ResolvedExtraContextFile } from "../../competition/shared/extra-context.js";
2
+ import { type SpecAgentEntry, type SpecRecord } from "../../domain/spec/model/types.js";
3
+ import type { SpecProgressRenderer } from "../../render/transcripts/spec.js";
4
+ export interface ExecuteSpecCommandInput {
5
+ root: string;
6
+ specsFilePath: string;
7
+ description: string;
8
+ agentIds?: readonly string[];
9
+ profileName?: string;
10
+ maxParallel?: number;
11
+ title?: string;
12
+ extraContextFiles?: readonly ResolvedExtraContextFile[];
13
+ onStatus?: (message: string) => void;
14
+ renderer?: SpecProgressRenderer;
15
+ }
16
+ export interface ExecuteSpecCommandResult {
17
+ sessionId: string;
18
+ status: string;
19
+ record: SpecRecord;
20
+ agents: readonly SpecAgentEntry[];
21
+ }
22
+ export declare function executeSpecCommand(input: ExecuteSpecCommandInput): Promise<ExecuteSpecCommandResult>;
@@ -0,0 +1,330 @@
1
+ import { executeCompetitionWithAdapter } from "../../competition/command-adapter.js";
2
+ import { AgentNotFoundError } from "../../configs/agents/errors.js";
3
+ import { loadEnvironmentConfig } from "../../configs/environment/loader.js";
4
+ import { buildLifecycleStartFields, buildOperationLifecycleCompleteFields, } from "../../domain/shared/lifecycle.js";
5
+ import { createSpecCompetitionAdapter, } from "../../domain/spec/competition/adapter.js";
6
+ import { deriveSpecStatusFromAgents, } from "../../domain/spec/model/types.js";
7
+ import { appendSpecRecord, finalizeSpecRecord, flushSpecRecordBuffer, rewriteSpecRecord, } from "../../domain/spec/persistence/adapter.js";
8
+ import { buildPersistedExtraContextFields } from "../../extra-context/contract.js";
9
+ import { toErrorMessage } from "../../utils/errors.js";
10
+ import { getHeadRevision } from "../../utils/git.js";
11
+ import { resolveEffectiveMaxParallel } from "../shared/max-parallel.js";
12
+ import { resolveStageCompetitors } from "../shared/resolve-stage-competitors.js";
13
+ import { generateSessionId } from "../shared/session-id.js";
14
+ import { SpecAgentNotFoundError, SpecGenerationFailedError } from "./errors.js";
15
+ export async function executeSpecCommand(input) {
16
+ const { root, specsFilePath, description, agentIds: cliAgentIds, profileName, maxParallel: requestedMaxParallel, title: providedTitle, extraContextFiles = [], onStatus, renderer, } = input;
17
+ let competitors;
18
+ try {
19
+ const normalizedCliIds = cliAgentIds && cliAgentIds.length > 0 ? [...cliAgentIds] : undefined;
20
+ const resolution = resolveStageCompetitors({
21
+ root,
22
+ stageId: "spec",
23
+ cliAgentIds: normalizedCliIds,
24
+ profileName,
25
+ });
26
+ competitors = resolution.competitors;
27
+ if (competitors.length === 0) {
28
+ throw new SpecGenerationFailedError(["Spec agent resolution failed."]);
29
+ }
30
+ }
31
+ catch (error) {
32
+ if (error instanceof AgentNotFoundError) {
33
+ throw new SpecAgentNotFoundError(error.agentId);
34
+ }
35
+ throw error;
36
+ }
37
+ const environment = loadEnvironmentConfig({ root });
38
+ const effectiveMaxParallel = resolveEffectiveMaxParallel({
39
+ competitorCount: competitors.length,
40
+ requestedMaxParallel,
41
+ });
42
+ const specTitle = providedTitle && providedTitle.trim().length > 0
43
+ ? providedTitle.trim()
44
+ : undefined;
45
+ const baseRevisionSha = await getHeadRevision(root);
46
+ const sessionId = generateSessionId();
47
+ const startedAt = new Date().toISOString();
48
+ const createdAt = startedAt;
49
+ const initialAgents = competitors.map((agent) => ({
50
+ agentId: agent.id,
51
+ status: "queued",
52
+ }));
53
+ const record = {
54
+ sessionId,
55
+ createdAt,
56
+ startedAt,
57
+ status: "running",
58
+ baseRevisionSha,
59
+ description,
60
+ agents: initialAgents,
61
+ ...buildPersistedExtraContextFields(extraContextFiles),
62
+ };
63
+ await appendSpecRecord({
64
+ root,
65
+ specsFilePath,
66
+ record,
67
+ });
68
+ let currentAgents = [...initialAgents];
69
+ onStatus?.("Generating specification…");
70
+ renderer?.begin({
71
+ sessionId,
72
+ createdAt,
73
+ startedAt,
74
+ workspacePath: `.voratiq/spec/sessions/${sessionId}`,
75
+ status: "running",
76
+ });
77
+ let executionResults;
78
+ try {
79
+ const baseAdapter = createSpecCompetitionAdapter({
80
+ root,
81
+ sessionId,
82
+ description,
83
+ specTitle,
84
+ environment,
85
+ extraContextFiles,
86
+ });
87
+ executionResults = await executeCompetitionWithAdapter({
88
+ candidates: [...competitors],
89
+ maxParallel: effectiveMaxParallel,
90
+ adapter: {
91
+ ...baseAdapter,
92
+ onPreparationFailure: async (result) => {
93
+ currentAgents = await persistSpecAgentFailure({
94
+ root,
95
+ specsFilePath,
96
+ sessionId,
97
+ agentId: result.agentId,
98
+ tokenUsage: result.tokenUsage,
99
+ error: result.error ?? null,
100
+ });
101
+ const failedAgent = currentAgents.find((agent) => agent.agentId === result.agentId);
102
+ renderer?.update({
103
+ agentId: result.agentId,
104
+ status: "failed",
105
+ startedAt: failedAgent?.startedAt,
106
+ completedAt: failedAgent?.completedAt,
107
+ tokenUsage: result.tokenUsage,
108
+ tokenUsageResult: result.tokenUsageResult,
109
+ });
110
+ },
111
+ onCandidateRunning: async (prepared, index) => {
112
+ await baseAdapter.onCandidateRunning?.(prepared, index);
113
+ currentAgents = await persistSpecAgentRunning({
114
+ root,
115
+ specsFilePath,
116
+ sessionId,
117
+ agentId: prepared.candidate.id,
118
+ });
119
+ const runningAgent = currentAgents.find((agent) => agent.agentId === prepared.candidate.id);
120
+ renderer?.update({
121
+ agentId: prepared.candidate.id,
122
+ status: "running",
123
+ startedAt: runningAgent?.startedAt,
124
+ });
125
+ },
126
+ onCandidateCompleted: async (_prepared, result) => {
127
+ currentAgents = await persistSpecAgentCompletion({
128
+ root,
129
+ specsFilePath,
130
+ sessionId,
131
+ result,
132
+ });
133
+ const completedAgent = currentAgents.find((agent) => agent.agentId === result.agentId);
134
+ renderer?.update({
135
+ agentId: result.agentId,
136
+ status: completedAgent?.status ?? result.status,
137
+ startedAt: completedAgent?.startedAt,
138
+ completedAt: completedAgent?.completedAt,
139
+ tokenUsage: result.tokenUsage,
140
+ tokenUsageResult: result.tokenUsageResult,
141
+ });
142
+ },
143
+ },
144
+ });
145
+ }
146
+ catch (error) {
147
+ const detail = toErrorMessage(error);
148
+ await finalizeSpecRecord({
149
+ root,
150
+ specsFilePath,
151
+ sessionId,
152
+ status: "failed",
153
+ error: detail,
154
+ });
155
+ renderer?.complete("failed");
156
+ await flushSpecRecordBuffer({ specsFilePath, sessionId });
157
+ throw new SpecGenerationFailedError([detail]);
158
+ }
159
+ const agentEntries = currentAgents.some((agent) => agent.status === "succeeded" || agent.status === "failed")
160
+ ? currentAgents
161
+ : mapExecutionResultsToSpecAgents(executionResults, startedAt);
162
+ // Derive session status from agent outcomes.
163
+ const sessionStatus = deriveSpecStatusFromAgents(agentEntries.map((a) => a.status));
164
+ const latestRecord = await finalizeSpecRecord({
165
+ root,
166
+ specsFilePath,
167
+ sessionId,
168
+ status: sessionStatus,
169
+ agents: agentEntries,
170
+ error: sessionStatus === "failed" ? collectAgentErrors(agentEntries) : undefined,
171
+ });
172
+ await flushSpecRecordBuffer({ specsFilePath, sessionId });
173
+ renderer?.complete(latestRecord.status, {
174
+ startedAt: latestRecord.startedAt,
175
+ completedAt: latestRecord.completedAt,
176
+ });
177
+ if (sessionStatus === "failed") {
178
+ const errorDetails = agentEntries
179
+ .filter((a) => a.error)
180
+ .map((a) => `${a.agentId}: ${a.error}`);
181
+ throw new SpecGenerationFailedError(errorDetails.length > 0
182
+ ? errorDetails
183
+ : ["All agents failed to generate a specification."]);
184
+ }
185
+ return {
186
+ sessionId,
187
+ status: latestRecord.status,
188
+ record: latestRecord,
189
+ agents: latestRecord.agents,
190
+ };
191
+ }
192
+ function collectAgentErrors(agents) {
193
+ const errors = agents
194
+ .filter((a) => a.error)
195
+ .map((a) => `${a.agentId}: ${a.error}`);
196
+ return errors.length > 0 ? errors.join("; ") : null;
197
+ }
198
+ async function persistSpecAgentRunning(options) {
199
+ const { root, specsFilePath, sessionId, agentId } = options;
200
+ const timestamp = new Date().toISOString();
201
+ const updated = await rewriteSpecRecord({
202
+ root,
203
+ specsFilePath,
204
+ sessionId,
205
+ mutate: (record) => ({
206
+ ...record,
207
+ agents: record.agents.map((agent) => agent.agentId === agentId
208
+ ? {
209
+ ...agent,
210
+ status: "running",
211
+ ...buildLifecycleStartFields({
212
+ existingStartedAt: agent.startedAt,
213
+ timestamp,
214
+ }),
215
+ completedAt: undefined,
216
+ error: null,
217
+ }
218
+ : agent),
219
+ }),
220
+ });
221
+ return [...updated.agents];
222
+ }
223
+ async function persistSpecAgentCompletion(options) {
224
+ const { root, specsFilePath, sessionId, result } = options;
225
+ const completedAt = new Date().toISOString();
226
+ const updated = await rewriteSpecRecord({
227
+ root,
228
+ specsFilePath,
229
+ sessionId,
230
+ mutate: (record) => ({
231
+ ...record,
232
+ agents: record.agents.map((agent) => {
233
+ if (agent.agentId !== result.agentId) {
234
+ return agent;
235
+ }
236
+ const startedAt = buildLifecycleStartFields({
237
+ existingStartedAt: agent.startedAt,
238
+ timestamp: completedAt,
239
+ }).startedAt;
240
+ const completeFields = buildOperationLifecycleCompleteFields({
241
+ existing: {
242
+ startedAt,
243
+ completedAt: agent.completedAt,
244
+ },
245
+ completedAt,
246
+ });
247
+ if (result.status === "succeeded") {
248
+ return {
249
+ ...agent,
250
+ status: "succeeded",
251
+ ...completeFields,
252
+ outputPath: result.outputPath,
253
+ dataPath: result.dataPath,
254
+ tokenUsage: result.tokenUsage,
255
+ error: null,
256
+ };
257
+ }
258
+ return {
259
+ ...agent,
260
+ status: "failed",
261
+ ...completeFields,
262
+ tokenUsage: result.tokenUsage,
263
+ error: result.error ?? null,
264
+ };
265
+ }),
266
+ }),
267
+ });
268
+ return [...updated.agents];
269
+ }
270
+ async function persistSpecAgentFailure(options) {
271
+ const { root, specsFilePath, sessionId, agentId, tokenUsage, error } = options;
272
+ const completedAt = new Date().toISOString();
273
+ const updated = await rewriteSpecRecord({
274
+ root,
275
+ specsFilePath,
276
+ sessionId,
277
+ mutate: (record) => ({
278
+ ...record,
279
+ agents: record.agents.map((agent) => {
280
+ if (agent.agentId !== agentId) {
281
+ return agent;
282
+ }
283
+ const startedAt = buildLifecycleStartFields({
284
+ existingStartedAt: agent.startedAt,
285
+ timestamp: completedAt,
286
+ }).startedAt;
287
+ const completeFields = buildOperationLifecycleCompleteFields({
288
+ existing: {
289
+ startedAt,
290
+ completedAt: agent.completedAt,
291
+ },
292
+ completedAt,
293
+ });
294
+ return {
295
+ ...agent,
296
+ status: "failed",
297
+ ...completeFields,
298
+ ...(tokenUsage ? { tokenUsage } : {}),
299
+ error: error ?? null,
300
+ };
301
+ }),
302
+ }),
303
+ });
304
+ return [...updated.agents];
305
+ }
306
+ function mapExecutionResultsToSpecAgents(executionResults, startedAt) {
307
+ return executionResults.map((result) => {
308
+ const completedAt = new Date().toISOString();
309
+ const base = {
310
+ agentId: result.agentId,
311
+ startedAt,
312
+ completedAt,
313
+ };
314
+ if (result.status === "succeeded") {
315
+ return {
316
+ ...base,
317
+ status: "succeeded",
318
+ outputPath: result.outputPath,
319
+ dataPath: result.dataPath,
320
+ tokenUsage: result.tokenUsage,
321
+ };
322
+ }
323
+ return {
324
+ ...base,
325
+ status: "failed",
326
+ tokenUsage: result.tokenUsage,
327
+ error: result.error ?? null,
328
+ };
329
+ });
330
+ }
@@ -0,0 +1,11 @@
1
+ import { CliError } from "../../cli/errors.js";
2
+ export declare class SpecError extends CliError {
3
+ constructor(headline: string, detailLines?: readonly string[], hintLines?: readonly string[]);
4
+ }
5
+ export declare class SpecAgentNotFoundError extends SpecError {
6
+ readonly agentId: string;
7
+ constructor(agentId: string);
8
+ }
9
+ export declare class SpecGenerationFailedError extends SpecError {
10
+ constructor(detailLines?: readonly string[]);
11
+ }
@@ -0,0 +1,23 @@
1
+ import { CliError } from "../../cli/errors.js";
2
+ export class SpecError extends CliError {
3
+ constructor(headline, detailLines = [], hintLines = []) {
4
+ super(headline, detailLines, hintLines);
5
+ this.name = "SpecError";
6
+ }
7
+ }
8
+ export class SpecAgentNotFoundError extends SpecError {
9
+ agentId;
10
+ constructor(agentId) {
11
+ super(`Agent \`${agentId}\` not found in \`agents.yaml\`.`, [], ["Add this agent to `agents.yaml`."]);
12
+ this.agentId = agentId;
13
+ this.name = "SpecAgentNotFoundError";
14
+ }
15
+ }
16
+ export class SpecGenerationFailedError extends SpecError {
17
+ constructor(detailLines = []) {
18
+ super("Specification generation failed.", detailLines, [
19
+ "Inspect `stderr.log` to diagnose the failure.",
20
+ ]);
21
+ this.name = "SpecGenerationFailedError";
22
+ }
23
+ }
@@ -0,0 +1,8 @@
1
+ import type { AgentDefinition } from "../../configs/agents/types.js";
2
+ export declare function resolveVerificationAgents(options: {
3
+ agentIds?: readonly string[];
4
+ root: string;
5
+ agentOverrideFlag?: string;
6
+ profileName?: string;
7
+ }): AgentDefinition[];
8
+ export declare function assertVerifierPreflight(agents: readonly AgentDefinition[]): Promise<void>;
@@ -0,0 +1,29 @@
1
+ import { verifyAgentProviders } from "../../agents/runtime/auth.js";
2
+ import { AgentNotFoundError } from "../../configs/agents/errors.js";
3
+ import { resolveStageCompetitors } from "../shared/resolve-stage-competitors.js";
4
+ export function resolveVerificationAgents(options) {
5
+ const { agentIds, root, agentOverrideFlag, profileName } = options;
6
+ try {
7
+ const resolution = resolveStageCompetitors({
8
+ root,
9
+ stageId: "verify",
10
+ cliAgentIds: agentIds,
11
+ cliOverrideFlag: agentOverrideFlag,
12
+ profileName,
13
+ });
14
+ return [...resolution.competitors];
15
+ }
16
+ catch (error) {
17
+ if (error instanceof AgentNotFoundError) {
18
+ throw new Error(`Verifier agent not found: ${error.agentId}`);
19
+ }
20
+ throw error;
21
+ }
22
+ }
23
+ export async function assertVerifierPreflight(agents) {
24
+ const providerIssues = await verifyAgentProviders(agents.map((agent) => ({ id: agent.id, provider: agent.provider })));
25
+ if (providerIssues.length > 0) {
26
+ const detail = providerIssues.map((issue) => issue.message).join("; ");
27
+ throw new Error(`Verifier preflight failed: ${detail}`);
28
+ }
29
+ }
@@ -0,0 +1,23 @@
1
+ import type { VerificationRecord } from "../../domain/verify/model/types.js";
2
+ import type { VerifyProgressRenderer } from "../../render/transcripts/verify.js";
3
+ import { type VerifyTargetSelection } from "./targets.js";
4
+ export interface VerifyCommandInput {
5
+ root: string;
6
+ specsFilePath: string;
7
+ runsFilePath: string;
8
+ reductionsFilePath: string;
9
+ messagesFilePath: string;
10
+ verificationsFilePath: string;
11
+ target: VerifyTargetSelection;
12
+ agentIds?: readonly string[];
13
+ agentOverrideFlag?: string;
14
+ profileName?: string;
15
+ maxParallel?: number;
16
+ extraContextFiles?: readonly import("../../competition/shared/extra-context.js").ResolvedExtraContextFile[];
17
+ renderer?: VerifyProgressRenderer;
18
+ }
19
+ export interface VerifyCommandResult {
20
+ verificationId: string;
21
+ record: VerificationRecord;
22
+ }
23
+ export declare function executeVerifyCommand(input: VerifyCommandInput): Promise<VerifyCommandResult>;
@@ -0,0 +1,168 @@
1
+ import { teardownSessionAuth } from "../../agents/runtime/registry.js";
2
+ import { createTeardownController } from "../../competition/shared/teardown.js";
3
+ import { loadEnvironmentConfig } from "../../configs/environment/loader.js";
4
+ import { loadVerificationConfig } from "../../configs/verification/loader.js";
5
+ import { buildBlindedAliasMap } from "../../domain/verify/competition/blinding.js";
6
+ import { deriveVerificationStatusFromMethods, maybePersistSelectedSpecPath, } from "../../domain/verify/competition/finalize.js";
7
+ import { executeAndPersistProgrammaticMethod } from "../../domain/verify/competition/programmatic.js";
8
+ import { executeAndPersistRubricMethods } from "../../domain/verify/competition/rubric.js";
9
+ import { createVerificationRecordMutators } from "../../domain/verify/model/mutators.js";
10
+ import { appendVerificationRecord, flushVerificationRecordBuffer, } from "../../domain/verify/persistence/adapter.js";
11
+ import { buildPersistedExtraContextFields } from "../../extra-context/contract.js";
12
+ import { toErrorMessage } from "../../utils/errors.js";
13
+ import { normalizePathForDisplay, relativeToRoot } from "../../utils/path.js";
14
+ import { resolveWorkspacePath, VORATIQ_VERIFICATION_SESSIONS_DIR, } from "../../workspace/structure.js";
15
+ import { generateSessionId } from "../shared/session-id.js";
16
+ import { assertVerifierPreflight, resolveVerificationAgents, } from "./agents.js";
17
+ import { finalizeActiveVerification, registerActiveVerification, } from "./lifecycle.js";
18
+ import { resolveVerifyRubricMaxParallel } from "./max-parallel.js";
19
+ import { resolveVerifyTarget } from "./targets.js";
20
+ export async function executeVerifyCommand(input) {
21
+ const { root, specsFilePath, runsFilePath, reductionsFilePath, messagesFilePath, verificationsFilePath, target, agentIds, agentOverrideFlag, profileName, maxParallel, extraContextFiles = [], renderer, } = input;
22
+ const resolvedTarget = await resolveVerifyTarget({
23
+ root,
24
+ specsFilePath,
25
+ runsFilePath,
26
+ reductionsFilePath,
27
+ messagesFilePath,
28
+ verificationsFilePath,
29
+ target,
30
+ });
31
+ const verificationConfig = loadVerificationConfig({ root });
32
+ const verificationAgents = resolveVerificationAgents({
33
+ agentIds,
34
+ root,
35
+ agentOverrideFlag,
36
+ profileName,
37
+ });
38
+ await assertVerifierPreflight(verificationAgents);
39
+ const environment = loadEnvironmentConfig({ root });
40
+ const verificationId = generateSessionId();
41
+ const createdAt = new Date().toISOString();
42
+ const aliasMap = buildBlindedAliasMap(resolvedTarget);
43
+ const rubricMaxParallel = resolveVerifyRubricMaxParallel({
44
+ targetKind: resolvedTarget.target.kind,
45
+ verificationConfig,
46
+ verifierAgentCount: verificationAgents.length,
47
+ requestedMaxParallel: maxParallel,
48
+ });
49
+ await appendVerificationRecord({
50
+ root,
51
+ verificationsFilePath,
52
+ record: {
53
+ sessionId: verificationId,
54
+ createdAt,
55
+ status: "queued",
56
+ target: resolvedTarget.target,
57
+ ...buildPersistedExtraContextFields(extraContextFiles),
58
+ ...(aliasMap ? { blinded: { enabled: true, aliasMap } } : {}),
59
+ methods: [],
60
+ },
61
+ });
62
+ renderer?.begin({
63
+ verificationId,
64
+ createdAt,
65
+ startedAt: createdAt,
66
+ workspacePath: normalizePathForDisplay(relativeToRoot(root, resolveWorkspacePath(root, VORATIQ_VERIFICATION_SESSIONS_DIR, verificationId))),
67
+ status: "running",
68
+ });
69
+ const teardown = createTeardownController(`verify \`${verificationId}\``);
70
+ teardown.addAction({
71
+ key: `verify-auth:${verificationId}`,
72
+ label: "session auth",
73
+ cleanup: async () => {
74
+ await teardownSessionAuth(verificationId);
75
+ },
76
+ });
77
+ registerActiveVerification({
78
+ root,
79
+ verificationsFilePath,
80
+ verificationId,
81
+ teardown,
82
+ });
83
+ const mutators = createVerificationRecordMutators({
84
+ root,
85
+ verificationsFilePath,
86
+ verificationId,
87
+ });
88
+ await mutators.recordVerificationRunning(createdAt);
89
+ try {
90
+ const [programmaticResult, rubricResult] = await Promise.allSettled([
91
+ executeAndPersistProgrammaticMethod({
92
+ root,
93
+ verificationId,
94
+ resolvedTarget,
95
+ verificationConfig,
96
+ environment,
97
+ mutators,
98
+ renderer,
99
+ }),
100
+ executeAndPersistRubricMethods({
101
+ root,
102
+ verificationId,
103
+ resolvedTarget,
104
+ verificationConfig,
105
+ verifierAgents: verificationAgents,
106
+ aliasMap,
107
+ environment,
108
+ extraContextFiles,
109
+ maxParallel: rubricMaxParallel,
110
+ teardown,
111
+ mutators,
112
+ renderer,
113
+ }),
114
+ ]);
115
+ if (programmaticResult.status === "rejected") {
116
+ throw programmaticResult.reason;
117
+ }
118
+ if (rubricResult.status === "rejected") {
119
+ throw rubricResult.reason;
120
+ }
121
+ const persistedRecord = await mutators.readRecord();
122
+ if (!persistedRecord) {
123
+ throw new Error(`Verification record \`${verificationId}\` not found after method execution.`);
124
+ }
125
+ await maybePersistSelectedSpecPath({
126
+ root,
127
+ verificationsFilePath,
128
+ verificationId,
129
+ resolvedTarget,
130
+ aliasMap,
131
+ methods: persistedRecord.methods,
132
+ });
133
+ const record = await completeVerificationRecord({
134
+ mutators,
135
+ status: deriveVerificationStatusFromMethods(persistedRecord.methods),
136
+ });
137
+ renderer?.complete(record.status, {
138
+ startedAt: record.startedAt,
139
+ completedAt: record.completedAt,
140
+ });
141
+ return { verificationId, record };
142
+ }
143
+ catch (error) {
144
+ const failedRecord = await completeVerificationRecord({
145
+ mutators,
146
+ status: "failed",
147
+ error: toErrorMessage(error),
148
+ }).catch(() => undefined);
149
+ if (failedRecord) {
150
+ renderer?.complete(failedRecord.status, {
151
+ startedAt: failedRecord.startedAt,
152
+ completedAt: failedRecord.completedAt,
153
+ });
154
+ await flushVerificationRecordBuffer({
155
+ verificationsFilePath,
156
+ sessionId: verificationId,
157
+ }).catch(() => { });
158
+ }
159
+ throw error;
160
+ }
161
+ finally {
162
+ await finalizeActiveVerification(verificationId);
163
+ }
164
+ }
165
+ async function completeVerificationRecord(options) {
166
+ const { mutators, status, error } = options;
167
+ return await mutators.completeVerification({ status, error });
168
+ }
@@ -0,0 +1,14 @@
1
+ import type { TeardownController } from "../../competition/shared/teardown.js";
2
+ import type { VerificationStatus } from "../../status/index.js";
3
+ export declare const VERIFY_ABORT_DETAIL = "Verification aborted before completion.";
4
+ interface ActiveVerificationContext {
5
+ root: string;
6
+ verificationsFilePath: string;
7
+ verificationId: string;
8
+ teardown?: TeardownController;
9
+ }
10
+ export declare function registerActiveVerification(context: ActiveVerificationContext): void;
11
+ export declare function clearActiveVerification(verificationId: string): void;
12
+ export declare function terminateActiveVerification(status: Extract<VerificationStatus, "failed" | "aborted">): Promise<void>;
13
+ export declare function finalizeActiveVerification(verificationId: string): Promise<void>;
14
+ export {};