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,180 @@
1
+ import { Command, Option } from "commander";
2
+ import { checkPlatformSupport } from "../agents/runtime/sandbox.js";
3
+ import { buildMarkdownPreviewLines } from "../commands/shared/preview.js";
4
+ import { executeSpecCommand } from "../commands/spec/command.js";
5
+ import { resolveExtraContextFiles } from "../competition/shared/extra-context.js";
6
+ import { readSpecData } from "../domain/spec/model/output.js";
7
+ import { ensureSandboxDependencies, resolveCliContext, } from "../preflight/index.js";
8
+ import { renderWorkspaceAutoInitializedNotice } from "../render/transcripts/shared.js";
9
+ import { createSpecRenderer, formatSpecAgentDuration, formatSpecElapsed, renderSpecTranscript, } from "../render/transcripts/spec.js";
10
+ import { createStageStartLineEmitter } from "../render/utils/stage-output.js";
11
+ import { resolvePath } from "../utils/path.js";
12
+ import { parsePositiveInteger } from "../utils/validators.js";
13
+ import { getSpecSessionDirectoryPath } from "../workspace/structure.js";
14
+ import { parseSpecExecutionCommandOptions } from "./contract.js";
15
+ import { buildSpecOperatorEnvelope, createSilentCliWriter, writeOperatorResultEnvelope, } from "./operator-envelope.js";
16
+ import { writeCommandOutput } from "./output.js";
17
+ export async function runSpecCommand(options) {
18
+ const { description, agentIds, profile, maxParallel, title, extraContext, json = false, suppressHint, suppressLeadingBlankLine, suppressTrailingBlankLine, stdout, stderr, writeOutput, } = options;
19
+ const effectiveWriteOutput = json
20
+ ? undefined
21
+ : (writeOutput ?? writeCommandOutput);
22
+ const rendererStdout = json ? createSilentCliWriter() : stdout;
23
+ const rendererStderr = json ? createSilentCliWriter() : stderr;
24
+ const { root, workspacePaths, workspaceAutoInitialized } = await resolveCliContext({
25
+ workspaceAutoInitMode: "when-missing",
26
+ });
27
+ const workspaceNotice = workspaceAutoInitialized
28
+ ? renderWorkspaceAutoInitializedNotice()
29
+ : undefined;
30
+ if (workspaceNotice && effectiveWriteOutput) {
31
+ effectiveWriteOutput({
32
+ alerts: [{ severity: "info", message: workspaceNotice }],
33
+ leadingNewline: false,
34
+ });
35
+ }
36
+ checkPlatformSupport();
37
+ ensureSandboxDependencies();
38
+ const extraContextFiles = await resolveExtraContextFiles({
39
+ root,
40
+ paths: extraContext,
41
+ });
42
+ const startLine = createStageStartLineEmitter((message) => {
43
+ effectiveWriteOutput?.({
44
+ alerts: [{ severity: "info", message }],
45
+ });
46
+ });
47
+ const renderer = createSpecRenderer({
48
+ stdout: rendererStdout,
49
+ stderr: rendererStderr,
50
+ suppressLeadingBlankLine,
51
+ suppressTrailingBlankLine,
52
+ });
53
+ const result = await executeSpecCommand({
54
+ root,
55
+ specsFilePath: workspacePaths.specsFile,
56
+ description,
57
+ agentIds,
58
+ profileName: profile,
59
+ maxParallel,
60
+ title,
61
+ extraContextFiles,
62
+ onStatus: (message) => {
63
+ startLine.emit(message);
64
+ },
65
+ renderer,
66
+ });
67
+ const body = renderSpecTranscript({
68
+ sessionId: result.sessionId,
69
+ createdAt: result.record.createdAt,
70
+ elapsed: formatSpecElapsed({
71
+ status: result.record.status,
72
+ startedAt: result.record.startedAt,
73
+ completedAt: result.record.completedAt,
74
+ }) ?? "—",
75
+ workspacePath: `.voratiq/spec/sessions/${result.sessionId}`,
76
+ status: result.record.status,
77
+ agents: await Promise.all(result.agents.map(async (agent) => ({
78
+ agentId: agent.agentId,
79
+ status: agent.status,
80
+ duration: formatSpecAgentDuration({
81
+ status: agent.status,
82
+ startedAt: agent.startedAt,
83
+ completedAt: agent.completedAt,
84
+ }),
85
+ outputPath: agent.outputPath,
86
+ dataPath: agent.dataPath,
87
+ previewLines: agent.status === "succeeded" && agent.dataPath
88
+ ? buildMarkdownPreviewLines(formatSpecPreview(await readSpecData(resolvePath(root, agent.dataPath))))
89
+ : undefined,
90
+ errorLine: agent.error ?? undefined,
91
+ }))),
92
+ nextCommandLines: ["voratiq run --spec <path>"],
93
+ isTty: stdout?.isTTY ?? process.stdout.isTTY,
94
+ includeSummarySection: !(stdout?.isTTY ?? process.stdout.isTTY),
95
+ }, { suppressHint });
96
+ const generatedSpecPaths = result.agents
97
+ .filter((agent) => agent.status === "succeeded" && agent.outputPath)
98
+ .map((agent) => agent.outputPath)
99
+ .filter((outputPath) => outputPath !== undefined);
100
+ return {
101
+ body,
102
+ sessionId: result.sessionId,
103
+ generatedSpecPaths,
104
+ specPath: generatedSpecPaths.length === 1 ? generatedSpecPaths[0] : undefined,
105
+ sessionPath: getSpecSessionDirectoryPath(result.sessionId),
106
+ };
107
+ }
108
+ function formatSpecPreview(spec) {
109
+ const lines = [`# ${spec.title}`, "", "## Objective", "", spec.objective];
110
+ if (spec.scope.length > 0) {
111
+ lines.push("", "## Scope");
112
+ for (const item of spec.scope) {
113
+ lines.push(`- ${item}`);
114
+ }
115
+ }
116
+ if (spec.acceptanceCriteria.length > 0) {
117
+ lines.push("", "## Acceptance Criteria");
118
+ for (const criterion of spec.acceptanceCriteria) {
119
+ lines.push(`- ${criterion}`);
120
+ }
121
+ }
122
+ if (spec.constraints.length > 0) {
123
+ lines.push("", "## Constraints");
124
+ for (const item of spec.constraints) {
125
+ lines.push(`- ${item}`);
126
+ }
127
+ }
128
+ if (spec.outOfScope && spec.outOfScope.length > 0) {
129
+ lines.push("", "## Out of Scope");
130
+ for (const item of spec.outOfScope) {
131
+ lines.push(`- ${item}`);
132
+ }
133
+ }
134
+ lines.push("", "## Exit Signal", "", spec.exitSignal);
135
+ return lines.join("\n");
136
+ }
137
+ export function createSpecCommand() {
138
+ const parseMaxParallelOption = (value) => parsePositiveInteger(value, "Expected positive integer after --max-parallel", "--max-parallel must be greater than 0");
139
+ const collectAgentOption = (value, previous) => [
140
+ ...previous,
141
+ value,
142
+ ];
143
+ const collectExtraContextOption = (value, previous) => [...previous, value];
144
+ return new Command("spec")
145
+ .description("Generate a spec from a task description")
146
+ .requiredOption("--description <text>", "Task description")
147
+ .addOption(new Option("--agent <agent-id>", "Set agents directly (repeatable; order preserved)")
148
+ .default([], "")
149
+ .argParser(collectAgentOption))
150
+ .option("--profile <name>", 'Orchestration profile (default: "default")')
151
+ .addOption(new Option("--max-parallel <count>", "Max concurrent agents")
152
+ .argParser(parseMaxParallelOption)
153
+ .hideHelp())
154
+ .option("--title <text>", "Spec title; agent infers if omitted")
155
+ .addOption(new Option("--extra-context <path>", "Stage an extra context file into the spec workspace (repeatable)")
156
+ .default([], "")
157
+ .argParser(collectExtraContextOption))
158
+ .option("--json", "Emit a machine-readable result envelope")
159
+ .allowExcessArguments(false)
160
+ .action(async (options, command) => {
161
+ const input = parseSpecExecutionCommandOptions(options, command);
162
+ const result = await runSpecCommand({
163
+ description: input.description,
164
+ agentIds: input.agentIds,
165
+ profile: input.profile,
166
+ maxParallel: input.maxParallel,
167
+ title: input.title,
168
+ extraContext: input.extraContext,
169
+ json: Boolean(options.json),
170
+ });
171
+ if (options.json) {
172
+ writeOperatorResultEnvelope(buildSpecOperatorEnvelope({
173
+ sessionId: result.sessionId,
174
+ generatedSpecPaths: result.generatedSpecPaths,
175
+ }));
176
+ return;
177
+ }
178
+ writeCommandOutput({ body: result.body });
179
+ });
180
+ }
@@ -0,0 +1,35 @@
1
+ import { Command } from "commander";
2
+ import type { VerifyTargetSelection } from "../commands/verify/targets.js";
3
+ import { type VerificationRecord } from "../domain/verify/model/types.js";
4
+ import { type VerificationSelectionPolicyOutput } from "../policy/index.js";
5
+ import type { CommandOutputWriter } from "./output.js";
6
+ export interface VerifyCommandOptions {
7
+ target: VerifyTargetSelection;
8
+ agentIds?: string[];
9
+ agentOverrideFlag?: string;
10
+ profile?: string;
11
+ maxParallel?: number;
12
+ extraContext?: string[];
13
+ json?: boolean;
14
+ suppressHint?: boolean;
15
+ stdout?: Pick<NodeJS.WriteStream, "write"> & {
16
+ isTTY?: boolean;
17
+ };
18
+ stderr?: Pick<NodeJS.WriteStream, "write"> & {
19
+ isTTY?: boolean;
20
+ };
21
+ writeOutput?: CommandOutputWriter;
22
+ }
23
+ export interface VerifyCommandResult {
24
+ verificationId: string;
25
+ status: VerificationRecord["status"];
26
+ target: VerificationRecord["target"];
27
+ body: string;
28
+ exitCode?: number;
29
+ outputPath: string;
30
+ selectedSpecPath?: string;
31
+ selection?: VerificationSelectionPolicyOutput;
32
+ warningMessage?: string;
33
+ }
34
+ export declare function runVerifyCommand(options: VerifyCommandOptions): Promise<VerifyCommandResult>;
35
+ export declare function createVerifyCommand(): Command;
@@ -0,0 +1,297 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { Command, Option } from "commander";
3
+ import { checkPlatformSupport } from "../agents/runtime/sandbox.js";
4
+ import { buildMarkdownPreviewLines } from "../commands/shared/preview.js";
5
+ import { executeVerifyCommand } from "../commands/verify/command.js";
6
+ import { resolveExtraContextFiles } from "../competition/shared/extra-context.js";
7
+ import { isBlindedCandidateAlias } from "../domain/verify/blinding/aliases.js";
8
+ import { verificationResultArtifactSchema, } from "../domain/verify/model/types.js";
9
+ import { readRubricResultNarrative, readRubricResultNextActions, readRubricResultPreferred, readRubricResultRationale, } from "../domain/verify/rubric-result.js";
10
+ import { loadVerificationSelectionPolicyOutput, } from "../policy/index.js";
11
+ import { ensureSandboxDependencies, resolveCliContext, } from "../preflight/index.js";
12
+ import { createVerifyRenderer, formatVerifyElapsed, renderVerifyTranscript, } from "../render/transcripts/verify.js";
13
+ import { formatRenderLifecycleDuration } from "../render/utils/duration.js";
14
+ import { createStageStartLineEmitter } from "../render/utils/stage-output.js";
15
+ import { renderTable } from "../render/utils/table.js";
16
+ import { getCheckStatusStyle } from "../status/colors.js";
17
+ import { TERMINAL_VERIFICATION_STATUSES } from "../status/index.js";
18
+ import { colorize } from "../utils/colors.js";
19
+ import { toErrorMessage } from "../utils/errors.js";
20
+ import { normalizePathForDisplay, relativeToRoot, resolvePath, } from "../utils/path.js";
21
+ import { parsePositiveInteger } from "../utils/validators.js";
22
+ import { resolveWorkspacePath, VORATIQ_MESSAGE_FILE, VORATIQ_REDUCTION_FILE, VORATIQ_VERIFICATION_FILE, VORATIQ_VERIFICATION_SESSIONS_DIR, } from "../workspace/structure.js";
23
+ import { parseVerifyExecutionCommandOptions } from "./contract.js";
24
+ import { buildVerifyOperatorEnvelope, createSilentCliWriter, writeOperatorResultEnvelope, } from "./operator-envelope.js";
25
+ import { writeCommandOutput } from "./output.js";
26
+ export async function runVerifyCommand(options) {
27
+ const { target, agentIds, agentOverrideFlag, profile, maxParallel, extraContext, json = false, suppressHint, stdout, stderr, writeOutput, } = options;
28
+ const effectiveWriteOutput = json
29
+ ? undefined
30
+ : (writeOutput ?? writeCommandOutput);
31
+ const rendererStdout = json ? createSilentCliWriter() : stdout;
32
+ const rendererStderr = json ? createSilentCliWriter() : stderr;
33
+ const { root, workspacePaths } = await resolveCliContext();
34
+ checkPlatformSupport();
35
+ ensureSandboxDependencies();
36
+ const extraContextFiles = await resolveExtraContextFiles({
37
+ root,
38
+ paths: extraContext,
39
+ });
40
+ const startLine = createStageStartLineEmitter((message) => {
41
+ effectiveWriteOutput?.({
42
+ alerts: [{ severity: "info", message }],
43
+ });
44
+ });
45
+ if (effectiveWriteOutput) {
46
+ startLine.emit("Verifying…");
47
+ }
48
+ const renderer = createVerifyRenderer({
49
+ stdout: rendererStdout,
50
+ stderr: rendererStderr,
51
+ });
52
+ const isTty = json ? false : (stdout?.isTTY ?? process.stdout.isTTY);
53
+ const execution = await executeVerifyCommand({
54
+ root,
55
+ specsFilePath: workspacePaths.specsFile,
56
+ runsFilePath: workspacePaths.runsFile,
57
+ reductionsFilePath: workspacePaths.reductionsFile ??
58
+ resolveWorkspacePath(root, VORATIQ_REDUCTION_FILE),
59
+ messagesFilePath: workspacePaths.messagesFile ??
60
+ resolveWorkspacePath(root, VORATIQ_MESSAGE_FILE),
61
+ verificationsFilePath: workspacePaths.verificationsFile ??
62
+ resolveWorkspacePath(root, VORATIQ_VERIFICATION_FILE),
63
+ target,
64
+ agentIds,
65
+ agentOverrideFlag,
66
+ profileName: profile,
67
+ maxParallel,
68
+ extraContextFiles,
69
+ renderer,
70
+ });
71
+ const methodBlocks = await Promise.all(execution.record.methods.map(async (method) => {
72
+ const bodyLines = await buildMethodBodyLines({
73
+ root,
74
+ aliasMap: execution.record.blinded?.aliasMap,
75
+ method,
76
+ isTty,
77
+ });
78
+ return {
79
+ verifierLabel: formatMethodVerifierLabel(method),
80
+ agentLabel: formatMethodAgentLabel(method),
81
+ status: method.status,
82
+ duration: formatMethodDuration(method),
83
+ artifactPath: method.artifactPath,
84
+ bodyLines,
85
+ errorLine: method.error ?? undefined,
86
+ };
87
+ }));
88
+ let selectionPolicyWarning;
89
+ const selection = await loadVerificationSelectionPolicyOutput({
90
+ root,
91
+ record: execution.record,
92
+ }).catch((error) => {
93
+ selectionPolicyWarning = [
94
+ "Warning: failed to load verification selection policy output; apply hint unavailable.",
95
+ toErrorMessage(error),
96
+ ].join("\n");
97
+ return undefined;
98
+ });
99
+ const selectionWarnings = (selection?.warnings ?? []).map((warning) => `Warning: ${warning}`);
100
+ const warningMessage = [
101
+ ...selectionWarnings,
102
+ ...(selectionPolicyWarning ? [selectionPolicyWarning] : []),
103
+ ].join("\n");
104
+ const recommendedRunAgent = execution.record.target.kind === "run" &&
105
+ selection !== undefined &&
106
+ selection.decision.state === "resolvable"
107
+ ? selection.decision.selectedCanonicalAgentId
108
+ : undefined;
109
+ const hintMessage = suppressHint ||
110
+ selectionPolicyWarning ||
111
+ execution.record.target.kind !== "run" ||
112
+ execution.record.status !== "succeeded"
113
+ ? undefined
114
+ : `To apply a solution:\n voratiq apply --run ${execution.record.target.sessionId} --agent ${recommendedRunAgent ?? "<agent-id>"}`;
115
+ const outputPath = normalizePathForDisplay(relativeToRoot(root, resolveWorkspacePath(root, VORATIQ_VERIFICATION_SESSIONS_DIR, execution.verificationId)));
116
+ const body = renderVerifyTranscript({
117
+ verificationId: execution.verificationId,
118
+ createdAt: execution.record.createdAt,
119
+ elapsed: formatVerifyElapsed({
120
+ status: execution.record.status,
121
+ startedAt: execution.record.startedAt,
122
+ completedAt: execution.record.completedAt,
123
+ }) ?? "—",
124
+ workspacePath: normalizePathForDisplay(relativeToRoot(root, resolveWorkspacePath(root, VORATIQ_VERIFICATION_SESSIONS_DIR, execution.verificationId))),
125
+ target: execution.record.target,
126
+ status: execution.record.status,
127
+ methods: methodBlocks,
128
+ suppressHint,
129
+ ...(warningMessage ? { warningMessage } : {}),
130
+ hintMessage,
131
+ isTty,
132
+ includeSummarySection: !isTty,
133
+ });
134
+ return {
135
+ verificationId: execution.verificationId,
136
+ status: execution.record.status,
137
+ target: execution.record.target,
138
+ body,
139
+ exitCode: execution.record.status === "succeeded" ? 0 : 1,
140
+ outputPath,
141
+ ...(execution.record.target.kind === "spec" &&
142
+ typeof execution.record.target.specPath === "string"
143
+ ? { selectedSpecPath: execution.record.target.specPath }
144
+ : {}),
145
+ selection,
146
+ ...(warningMessage ? { warningMessage } : {}),
147
+ };
148
+ }
149
+ function collectAgentOption(value, previous) {
150
+ return [...previous, value];
151
+ }
152
+ function collectExtraContextOption(value, previous) {
153
+ return [...previous, value];
154
+ }
155
+ function parseMaxParallelOption(value) {
156
+ return parsePositiveInteger(value, "Expected positive integer after --max-parallel", "--max-parallel must be greater than 0");
157
+ }
158
+ export function createVerifyCommand() {
159
+ return new Command("verify")
160
+ .description("Verify a recorded spec, run, reduction, or message session")
161
+ .addOption(new Option("--spec <spec-id>", "Spec to verify"))
162
+ .addOption(new Option("--run <run-id>", "Run to verify"))
163
+ .addOption(new Option("--reduce <reduce-id>", "Reduction to verify"))
164
+ .addOption(new Option("--message <message-id>", "Message session to verify"))
165
+ .addOption(new Option("--agent <agent-id>", "Set verifiers directly (repeatable; order preserved)")
166
+ .default([], "")
167
+ .argParser(collectAgentOption))
168
+ .option("--profile <name>", 'Orchestration profile (default: "default")')
169
+ .option("--max-parallel <count>", "Max concurrent verifiers (default: all)", parseMaxParallelOption)
170
+ .addOption(new Option("--extra-context <path>", "Stage an extra context file into each verifier workspace (repeatable)")
171
+ .default([], "")
172
+ .argParser(collectExtraContextOption))
173
+ .option("--json", "Emit a machine-readable result envelope")
174
+ .allowExcessArguments(false)
175
+ .action(async (options, command) => {
176
+ const input = parseVerifyExecutionCommandOptions(options, command);
177
+ const result = await runVerifyCommand({
178
+ target: input.target,
179
+ agentIds: input.agentIds,
180
+ profile: input.profile,
181
+ maxParallel: input.maxParallel,
182
+ extraContext: input.extraContext,
183
+ json: Boolean(options.json),
184
+ });
185
+ if (options.json) {
186
+ writeOperatorResultEnvelope(buildVerifyOperatorEnvelope({
187
+ verificationId: result.verificationId,
188
+ target: result.target,
189
+ outputPath: result.outputPath,
190
+ status: result.status,
191
+ selection: result.selection?.decision,
192
+ selectedSpecPath: result.selectedSpecPath,
193
+ warningMessage: result.warningMessage,
194
+ }), result.exitCode);
195
+ return;
196
+ }
197
+ writeCommandOutput({ body: result.body, exitCode: result.exitCode });
198
+ });
199
+ }
200
+ function formatMethodDuration(method) {
201
+ return (formatRenderLifecycleDuration({
202
+ lifecycle: {
203
+ status: method.status,
204
+ startedAt: method.startedAt,
205
+ completedAt: method.completedAt,
206
+ },
207
+ terminalStatuses: TERMINAL_VERIFICATION_STATUSES,
208
+ }) ?? "—");
209
+ }
210
+ function formatMethodVerifierLabel(method) {
211
+ if (method.method === "programmatic") {
212
+ return "programmatic";
213
+ }
214
+ return method.template ?? "rubric";
215
+ }
216
+ function formatMethodAgentLabel(method) {
217
+ if (method.method === "programmatic") {
218
+ return undefined;
219
+ }
220
+ return method.verifierId;
221
+ }
222
+ async function buildMethodBodyLines(options) {
223
+ const { root, aliasMap, method, isTty } = options;
224
+ if (!method.artifactPath) {
225
+ return undefined;
226
+ }
227
+ try {
228
+ const raw = await readFile(resolvePath(root, method.artifactPath), "utf8");
229
+ const parsed = JSON.parse(raw);
230
+ const validation = verificationResultArtifactSchema.safeParse(parsed);
231
+ if (!validation.success) {
232
+ return undefined;
233
+ }
234
+ const artifact = validation.data;
235
+ if (artifact.method === "programmatic") {
236
+ if (artifact.scope === "run") {
237
+ return renderTable({
238
+ columns: [
239
+ {
240
+ header: "AGENT",
241
+ accessor: (row) => row.candidateId,
242
+ },
243
+ {
244
+ header: "CHECKS",
245
+ accessor: (row) => row.results
246
+ .map((result) => isTty
247
+ ? colorize(result.slug, getCheckStatusStyle(result.status).cli)
248
+ : result.slug)
249
+ .join(" "),
250
+ },
251
+ ],
252
+ rows: [...artifact.candidates],
253
+ });
254
+ }
255
+ return [`Results: ${artifact.results.length}`];
256
+ }
257
+ const lines = [];
258
+ const preferred = readRubricResultPreferred(artifact.result);
259
+ const rationale = readRubricResultRationale(artifact.result);
260
+ const nextActions = readRubricResultNextActions(artifact.result);
261
+ if (preferred) {
262
+ lines.push(`**Preferred**: ${deblindText(preferred, aliasMap)}`);
263
+ }
264
+ if (rationale) {
265
+ lines.push(`**Rationale**: ${deblindText(rationale, aliasMap)}`);
266
+ }
267
+ if (nextActions && nextActions.length > 0) {
268
+ lines.push("**Next Actions**:");
269
+ lines.push(...nextActions.map((action) => deblindText(action, aliasMap)));
270
+ }
271
+ if (lines.length > 0) {
272
+ return buildMarkdownPreviewLines(lines.join("\n"));
273
+ }
274
+ if (lines.length === 0) {
275
+ const narrative = readRubricResultNarrative(artifact.result);
276
+ if (narrative) {
277
+ lines.push(deblindText(narrative, aliasMap));
278
+ }
279
+ }
280
+ return lines.length > 0 ? lines : undefined;
281
+ }
282
+ catch {
283
+ return undefined;
284
+ }
285
+ }
286
+ function deblindText(value, aliasMap) {
287
+ if (!aliasMap) {
288
+ return value;
289
+ }
290
+ let result = value;
291
+ for (const [alias, canonicalId] of Object.entries(aliasMap).sort((a, b) => b[0].length - a[0].length)) {
292
+ result = result.split(alias).join(canonicalId);
293
+ }
294
+ return result.replace(/v_[a-z0-9]{10,16}/gu, (selector) => isBlindedCandidateAlias(selector)
295
+ ? `[unknown blinded alias: ${selector}]`
296
+ : selector);
297
+ }
@@ -2,8 +2,10 @@ import type { ApplyResult } from "./types.js";
2
2
  export interface ApplyCommandInput {
3
3
  root: string;
4
4
  runsFilePath: string;
5
+ verificationsFilePath?: string;
5
6
  runId: string;
6
7
  agentId: string;
7
8
  ignoreBaseMismatch: boolean;
9
+ commit?: boolean;
8
10
  }
9
11
  export declare function executeApplyCommand(input: ApplyCommandInput): Promise<ApplyResult>;