voratiq 0.1.0-beta.2 → 0.1.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/README.md +41 -29
  2. package/dist/agents/launch/chat.d.ts +23 -0
  3. package/dist/agents/launch/chat.js +44 -0
  4. package/dist/agents/launch/environment.d.ts +8 -0
  5. package/dist/{commands/run/agents/workspace-prep.js → agents/launch/environment.js} +5 -27
  6. package/dist/agents/launch/prompt.d.ts +6 -0
  7. package/dist/agents/launch/prompt.js +12 -0
  8. package/dist/agents/launch/provider-state.d.ts +39 -0
  9. package/dist/agents/launch/provider-state.js +103 -0
  10. package/dist/agents/runtime/auth.d.ts +27 -0
  11. package/dist/agents/runtime/auth.js +72 -0
  12. package/dist/agents/runtime/chat.d.ts +5 -0
  13. package/dist/agents/runtime/chat.js +7 -0
  14. package/dist/agents/runtime/errors.d.ts +27 -0
  15. package/dist/agents/runtime/errors.js +51 -0
  16. package/dist/{commands/run/agents → agents/runtime}/failures.d.ts +0 -1
  17. package/dist/agents/runtime/failures.js +136 -0
  18. package/dist/agents/runtime/harness.d.ts +2 -0
  19. package/dist/agents/runtime/harness.js +119 -0
  20. package/dist/{commands/run/agents/sandbox-launcher.d.ts → agents/runtime/launcher.d.ts} +18 -6
  21. package/dist/{commands/run/agents/sandbox-launcher.js → agents/runtime/launcher.js} +17 -39
  22. package/dist/{commands/run/agents/workspace-prep.d.ts → agents/runtime/manifest.d.ts} +6 -6
  23. package/dist/agents/runtime/manifest.js +34 -0
  24. package/dist/agents/runtime/policy.d.ts +32 -0
  25. package/dist/agents/runtime/policy.js +240 -0
  26. package/dist/agents/runtime/registry.d.ts +4 -0
  27. package/dist/agents/runtime/registry.js +54 -0
  28. package/dist/{commands/run → agents/runtime}/sandbox.d.ts +8 -2
  29. package/dist/{commands/run → agents/runtime}/sandbox.js +28 -67
  30. package/dist/agents/runtime/shim/run-agent-shim.d.ts +1 -0
  31. package/dist/agents/runtime/shim/run-agent-shim.js +276 -0
  32. package/dist/agents/runtime/types.d.ts +91 -0
  33. package/dist/{commands/run/agents → agents/runtime}/watchdog.d.ts +4 -3
  34. package/dist/{commands/run/agents → agents/runtime}/watchdog.js +155 -26
  35. package/dist/auth/providers/codex.js +7 -2
  36. package/dist/auth/providers/gemini.js +14 -6
  37. package/dist/auth/providers/types.d.ts +1 -0
  38. package/dist/auth/providers/utils.d.ts +0 -1
  39. package/dist/auth/providers/utils.js +1 -49
  40. package/dist/bin.js +369 -71
  41. package/dist/cli/apply.d.ts +4 -0
  42. package/dist/cli/apply.js +28 -9
  43. package/dist/cli/auto.d.ts +32 -0
  44. package/dist/cli/auto.js +232 -0
  45. package/dist/cli/contract.d.ts +328 -0
  46. package/dist/cli/contract.js +480 -0
  47. package/dist/cli/errors.d.ts +3 -0
  48. package/dist/cli/errors.js +21 -3
  49. package/dist/cli/init.d.ts +5 -0
  50. package/dist/cli/init.js +34 -6
  51. package/dist/cli/list.d.ts +6 -4
  52. package/dist/cli/list.js +39 -16
  53. package/dist/cli/mcp.d.ts +2 -0
  54. package/dist/cli/mcp.js +16 -0
  55. package/dist/cli/message.d.ts +28 -0
  56. package/dist/cli/message.js +147 -0
  57. package/dist/cli/operator-envelope.d.ts +180 -0
  58. package/dist/cli/operator-envelope.js +425 -0
  59. package/dist/cli/output.d.ts +15 -1
  60. package/dist/cli/output.js +153 -5
  61. package/dist/cli/prune.d.ts +7 -3
  62. package/dist/cli/prune.js +57 -12
  63. package/dist/cli/reduce.d.ts +29 -0
  64. package/dist/cli/reduce.js +211 -0
  65. package/dist/cli/root-launcher.d.ts +4 -0
  66. package/dist/cli/root-launcher.js +15 -0
  67. package/dist/cli/run.d.ts +27 -1
  68. package/dist/cli/run.js +108 -16
  69. package/dist/cli/spec.d.ts +31 -0
  70. package/dist/cli/spec.js +180 -0
  71. package/dist/cli/verify.d.ts +35 -0
  72. package/dist/cli/verify.js +297 -0
  73. package/dist/commands/apply/command.d.ts +2 -0
  74. package/dist/commands/apply/command.js +145 -6
  75. package/dist/commands/apply/errors.d.ts +43 -4
  76. package/dist/commands/apply/errors.js +100 -22
  77. package/dist/commands/apply/types.d.ts +2 -1
  78. package/dist/commands/auto/command.d.ts +145 -0
  79. package/dist/commands/auto/command.js +433 -0
  80. package/dist/commands/auto/errors.d.ts +19 -0
  81. package/dist/commands/auto/errors.js +19 -0
  82. package/dist/commands/auto/validation.d.ts +14 -0
  83. package/dist/commands/auto/validation.js +90 -0
  84. package/dist/commands/fetch.d.ts +2 -2
  85. package/dist/commands/fetch.js +4 -4
  86. package/dist/commands/init/agents.d.ts +2 -1
  87. package/dist/commands/init/agents.js +66 -63
  88. package/dist/commands/init/command.js +300 -16
  89. package/dist/commands/init/types.d.ts +18 -7
  90. package/dist/commands/interactive/lifecycle.d.ts +15 -0
  91. package/dist/commands/interactive/lifecycle.js +141 -0
  92. package/dist/commands/list/command.d.ts +10 -3
  93. package/dist/commands/list/command.js +597 -40
  94. package/dist/commands/message/command.d.ts +23 -0
  95. package/dist/commands/message/command.js +215 -0
  96. package/dist/commands/message/errors.d.ts +9 -0
  97. package/dist/commands/message/errors.js +20 -0
  98. package/dist/commands/message/lifecycle.d.ts +14 -0
  99. package/dist/commands/message/lifecycle.js +128 -0
  100. package/dist/commands/prune/command.d.ts +2 -1
  101. package/dist/commands/prune/command.js +61 -10
  102. package/dist/commands/prune/errors.d.ts +1 -1
  103. package/dist/commands/prune/errors.js +5 -5
  104. package/dist/commands/prune/types.d.ts +21 -0
  105. package/dist/commands/reduce/command.d.ts +26 -0
  106. package/dist/commands/reduce/command.js +145 -0
  107. package/dist/commands/reduce/errors.d.ts +17 -0
  108. package/dist/commands/reduce/errors.js +32 -0
  109. package/dist/commands/reduce/targets.d.ts +11 -0
  110. package/dist/commands/reduce/targets.js +271 -0
  111. package/dist/commands/root-launcher/command.d.ts +31 -0
  112. package/dist/commands/root-launcher/command.js +233 -0
  113. package/dist/commands/run/command.d.ts +6 -1
  114. package/dist/commands/run/command.js +70 -40
  115. package/dist/commands/run/lifecycle.d.ts +7 -5
  116. package/dist/commands/run/lifecycle.js +45 -23
  117. package/dist/commands/run/record-init.d.ts +4 -1
  118. package/dist/commands/run/record-init.js +5 -2
  119. package/dist/commands/run/shim/run-agent-shim.d.ts +2 -1
  120. package/dist/commands/run/shim/run-agent-shim.js +4 -219
  121. package/dist/commands/run/validation.d.ts +2 -3
  122. package/dist/commands/run/validation.js +54 -25
  123. package/dist/commands/shared/max-parallel.d.ts +5 -0
  124. package/dist/commands/shared/max-parallel.js +15 -0
  125. package/dist/commands/shared/preview.d.ts +10 -0
  126. package/dist/commands/shared/preview.js +60 -0
  127. package/dist/commands/shared/resolve-reduction-competitors.d.ts +15 -0
  128. package/dist/commands/shared/resolve-reduction-competitors.js +13 -0
  129. package/dist/commands/shared/resolve-stage-competitors.d.ts +19 -0
  130. package/dist/commands/shared/resolve-stage-competitors.js +171 -0
  131. package/dist/commands/shared/session-id.d.ts +1 -0
  132. package/dist/commands/shared/session-id.js +1 -0
  133. package/dist/commands/spec/command.d.ts +22 -0
  134. package/dist/commands/spec/command.js +330 -0
  135. package/dist/commands/spec/errors.d.ts +11 -0
  136. package/dist/commands/spec/errors.js +23 -0
  137. package/dist/commands/verify/agents.d.ts +8 -0
  138. package/dist/commands/verify/agents.js +29 -0
  139. package/dist/commands/verify/command.d.ts +23 -0
  140. package/dist/commands/verify/command.js +168 -0
  141. package/dist/commands/verify/lifecycle.d.ts +14 -0
  142. package/dist/commands/verify/lifecycle.js +229 -0
  143. package/dist/commands/verify/max-parallel.d.ts +7 -0
  144. package/dist/commands/verify/max-parallel.js +15 -0
  145. package/dist/commands/verify/targets.d.ts +18 -0
  146. package/dist/commands/verify/targets.js +420 -0
  147. package/dist/competition/command-adapter.d.ts +35 -0
  148. package/dist/competition/command-adapter.js +20 -0
  149. package/dist/competition/core.d.ts +41 -0
  150. package/dist/competition/core.js +181 -0
  151. package/dist/competition/shared/extra-context.d.ts +14 -0
  152. package/dist/competition/shared/extra-context.js +100 -0
  153. package/dist/competition/shared/preflight.d.ts +11 -0
  154. package/dist/competition/shared/preflight.js +39 -0
  155. package/dist/competition/shared/prompt-helpers.d.ts +16 -0
  156. package/dist/competition/shared/prompt-helpers.js +27 -0
  157. package/dist/competition/shared/prune.d.ts +1 -0
  158. package/dist/competition/shared/prune.js +4 -0
  159. package/dist/competition/shared/sandbox-policy.d.ts +9 -0
  160. package/dist/competition/shared/sandbox-policy.js +7 -0
  161. package/dist/competition/shared/teardown.d.ts +36 -0
  162. package/dist/competition/shared/teardown.js +101 -0
  163. package/dist/configs/agents/defaults.d.ts +31 -2
  164. package/dist/configs/agents/defaults.js +346 -30
  165. package/dist/configs/agents/errors.js +14 -11
  166. package/dist/configs/agents/loader.d.ts +11 -1
  167. package/dist/configs/agents/loader.js +71 -4
  168. package/dist/configs/agents/types.js +2 -2
  169. package/dist/configs/environment/detect.js +9 -4
  170. package/dist/configs/environment/errors.js +4 -4
  171. package/dist/configs/environment/loader.d.ts +1 -1
  172. package/dist/configs/environment/loader.js +3 -3
  173. package/dist/configs/orchestration/bootstrap.d.ts +16 -0
  174. package/dist/configs/orchestration/bootstrap.js +122 -0
  175. package/dist/configs/orchestration/errors.d.ts +15 -0
  176. package/dist/configs/orchestration/errors.js +28 -0
  177. package/dist/configs/orchestration/loader.d.ts +9 -0
  178. package/dist/configs/orchestration/loader.js +148 -0
  179. package/dist/configs/orchestration/types.d.ts +102 -0
  180. package/dist/configs/orchestration/types.js +65 -0
  181. package/dist/configs/sandbox/defaults.js +14 -4
  182. package/dist/configs/sandbox/errors.d.ts +1 -1
  183. package/dist/configs/sandbox/errors.js +1 -1
  184. package/dist/configs/sandbox/loader.js +6 -4
  185. package/dist/configs/sandbox/schemas.js +4 -2
  186. package/dist/configs/settings/loader.d.ts +7 -0
  187. package/dist/configs/settings/loader.js +81 -0
  188. package/dist/configs/settings/types.d.ts +47 -0
  189. package/dist/configs/settings/types.js +23 -0
  190. package/dist/configs/verification/errors.d.ts +11 -0
  191. package/dist/configs/verification/errors.js +21 -0
  192. package/dist/configs/verification/loader.d.ts +8 -0
  193. package/dist/configs/verification/loader.js +43 -0
  194. package/dist/configs/verification/methods.d.ts +35 -0
  195. package/dist/configs/verification/methods.js +41 -0
  196. package/dist/configs/verification/programmatic-defaults.d.ts +10 -0
  197. package/dist/configs/verification/programmatic-defaults.js +42 -0
  198. package/dist/configs/verification/programmatic-detect.d.ts +10 -0
  199. package/dist/configs/{evals/detect.js → verification/programmatic-detect.js} +22 -33
  200. package/dist/configs/verification/types.d.ts +49 -0
  201. package/dist/configs/verification/types.js +45 -0
  202. package/dist/contracts/list.d.ts +207 -0
  203. package/dist/contracts/list.js +154 -0
  204. package/dist/domain/interactive/model/types.d.ts +104 -0
  205. package/dist/domain/interactive/model/types.js +83 -0
  206. package/dist/domain/interactive/persistence/adapter.d.ts +39 -0
  207. package/dist/domain/interactive/persistence/adapter.js +144 -0
  208. package/dist/domain/interactive/prompt.d.ts +3 -0
  209. package/dist/domain/interactive/prompt.js +7 -0
  210. package/dist/domain/message/competition/adapter.d.ts +36 -0
  211. package/dist/domain/message/competition/adapter.js +197 -0
  212. package/dist/domain/message/competition/prompt.d.ts +8 -0
  213. package/dist/domain/message/competition/prompt.js +29 -0
  214. package/dist/domain/message/model/mutators.d.ts +17 -0
  215. package/dist/domain/message/model/mutators.js +107 -0
  216. package/dist/domain/message/model/types.d.ts +100 -0
  217. package/dist/domain/message/model/types.js +87 -0
  218. package/dist/domain/message/persistence/adapter.d.ts +43 -0
  219. package/dist/domain/message/persistence/adapter.js +124 -0
  220. package/dist/domain/reduce/competition/adapter.d.ts +42 -0
  221. package/dist/domain/reduce/competition/adapter.js +826 -0
  222. package/dist/domain/reduce/competition/output-validation.d.ts +4 -0
  223. package/dist/domain/reduce/competition/output-validation.js +18 -0
  224. package/dist/domain/reduce/competition/prompt.d.ts +10 -0
  225. package/dist/domain/reduce/competition/prompt.js +96 -0
  226. package/dist/domain/reduce/competition/reduction.d.ts +9 -0
  227. package/dist/domain/reduce/competition/reduction.js +32 -0
  228. package/dist/domain/reduce/model/types.d.ts +122 -0
  229. package/dist/domain/reduce/model/types.js +84 -0
  230. package/dist/domain/reduce/persistence/adapter.d.ts +43 -0
  231. package/dist/domain/reduce/persistence/adapter.js +126 -0
  232. package/dist/domain/run/competition/adapter.d.ts +30 -0
  233. package/dist/domain/run/competition/adapter.js +39 -0
  234. package/dist/domain/run/competition/agent-execution.d.ts +20 -0
  235. package/dist/domain/run/competition/agent-execution.js +45 -0
  236. package/dist/domain/run/competition/agent-preparation.d.ts +12 -0
  237. package/dist/domain/run/competition/agent-preparation.js +24 -0
  238. package/dist/domain/run/competition/agents/artifacts.d.ts +17 -0
  239. package/dist/domain/run/competition/agents/artifacts.js +173 -0
  240. package/dist/{commands/run → domain/run/competition}/agents/lifecycle.d.ts +3 -3
  241. package/dist/{commands/run → domain/run/competition}/agents/lifecycle.js +84 -64
  242. package/dist/domain/run/competition/agents/post-processing.d.ts +12 -0
  243. package/dist/domain/run/competition/agents/post-processing.js +4 -0
  244. package/dist/domain/run/competition/agents/preparation.js +64 -0
  245. package/dist/{commands/run → domain/run/competition}/agents/run-context.d.ts +9 -16
  246. package/dist/{commands/run → domain/run/competition}/agents/run-context.js +22 -70
  247. package/dist/{commands/run → domain/run/competition}/agents/types.d.ts +10 -13
  248. package/dist/domain/run/competition/agents/workspace.d.ts +21 -0
  249. package/dist/domain/run/competition/agents/workspace.js +47 -0
  250. package/dist/{commands/run → domain/run/competition}/errors.d.ts +8 -1
  251. package/dist/{commands/run → domain/run/competition}/errors.js +39 -9
  252. package/dist/{commands/run → domain/run/competition}/phases.d.ts +1 -2
  253. package/dist/domain/run/competition/phases.js +1 -0
  254. package/dist/domain/run/competition/prompt.d.ts +7 -0
  255. package/dist/domain/run/competition/prompt.js +27 -0
  256. package/dist/{commands/run → domain/run/competition}/reports.d.ts +5 -3
  257. package/dist/{commands/run → domain/run/competition}/reports.js +7 -19
  258. package/dist/domain/run/competition/termination-state.d.ts +4 -0
  259. package/dist/domain/run/competition/termination-state.js +12 -0
  260. package/dist/{records → domain/run/model}/enhanced.d.ts +6 -7
  261. package/dist/{records → domain/run/model}/enhanced.js +11 -11
  262. package/dist/{records → domain/run/model}/errors.d.ts +1 -1
  263. package/dist/{records → domain/run/model}/errors.js +5 -5
  264. package/dist/{records → domain/run/model}/mutators.d.ts +4 -3
  265. package/dist/{records → domain/run/model}/mutators.js +58 -36
  266. package/dist/domain/run/model/types.d.ts +376 -0
  267. package/dist/domain/run/model/types.js +192 -0
  268. package/dist/{records/persistence.d.ts → domain/run/persistence/adapter.d.ts} +9 -3
  269. package/dist/domain/run/persistence/adapter.js +340 -0
  270. package/dist/domain/run/persistence/error-mapping.d.ts +2 -0
  271. package/dist/domain/run/persistence/error-mapping.js +17 -0
  272. package/dist/domain/shared/lifecycle.d.ts +54 -0
  273. package/dist/domain/shared/lifecycle.js +165 -0
  274. package/dist/domain/shared/token-usage.d.ts +21 -0
  275. package/dist/domain/shared/token-usage.js +38 -0
  276. package/dist/domain/spec/competition/adapter.d.ts +31 -0
  277. package/dist/domain/spec/competition/adapter.js +196 -0
  278. package/dist/domain/spec/competition/prompt.d.ts +11 -0
  279. package/dist/domain/spec/competition/prompt.js +44 -0
  280. package/dist/domain/spec/model/output.d.ts +13 -0
  281. package/dist/domain/spec/model/output.js +36 -0
  282. package/dist/domain/spec/model/types.d.ts +98 -0
  283. package/dist/domain/spec/model/types.js +84 -0
  284. package/dist/domain/spec/persistence/adapter.d.ts +51 -0
  285. package/dist/domain/spec/persistence/adapter.js +140 -0
  286. package/dist/domain/verify/blinding/aliases.d.ts +7 -0
  287. package/dist/domain/verify/blinding/aliases.js +23 -0
  288. package/dist/domain/verify/competition/adapter.d.ts +54 -0
  289. package/dist/domain/verify/competition/adapter.js +444 -0
  290. package/dist/domain/verify/competition/artifacts.d.ts +6 -0
  291. package/dist/domain/verify/competition/artifacts.js +7 -0
  292. package/dist/domain/verify/competition/blinding.d.ts +24 -0
  293. package/dist/domain/verify/competition/blinding.js +109 -0
  294. package/dist/domain/verify/competition/finalize.d.ts +11 -0
  295. package/dist/domain/verify/competition/finalize.js +65 -0
  296. package/dist/domain/verify/competition/programmatic.d.ts +15 -0
  297. package/dist/domain/verify/competition/programmatic.js +352 -0
  298. package/dist/domain/verify/competition/prompt.d.ts +19 -0
  299. package/dist/domain/verify/competition/prompt.js +63 -0
  300. package/dist/domain/verify/competition/rubric.d.ts +23 -0
  301. package/dist/domain/verify/competition/rubric.js +77 -0
  302. package/dist/domain/verify/competition/shared-layout.d.ts +121 -0
  303. package/dist/domain/verify/competition/shared-layout.js +365 -0
  304. package/dist/domain/verify/competition/target.d.ts +47 -0
  305. package/dist/domain/verify/competition/target.js +1 -0
  306. package/dist/domain/verify/model/mutators.d.ts +16 -0
  307. package/dist/domain/verify/model/mutators.js +126 -0
  308. package/dist/domain/verify/model/types.d.ts +408 -0
  309. package/dist/domain/verify/model/types.js +289 -0
  310. package/dist/domain/verify/persistence/adapter.d.ts +43 -0
  311. package/dist/domain/verify/persistence/adapter.js +126 -0
  312. package/dist/domain/verify/programmatic/runner.d.ts +22 -0
  313. package/dist/domain/verify/programmatic/runner.js +209 -0
  314. package/dist/domain/verify/rubric-result.d.ts +28 -0
  315. package/dist/domain/verify/rubric-result.js +121 -0
  316. package/dist/extra-context/contract.d.ts +17 -0
  317. package/dist/extra-context/contract.js +60 -0
  318. package/dist/interactive/index.d.ts +2 -0
  319. package/dist/interactive/index.js +1 -0
  320. package/dist/interactive/providers/launch.d.ts +23 -0
  321. package/dist/interactive/providers/launch.js +203 -0
  322. package/dist/interactive/providers/mcp.d.ts +13 -0
  323. package/dist/interactive/providers/mcp.js +547 -0
  324. package/dist/interactive/providers/shared.d.ts +2 -0
  325. package/dist/interactive/providers/shared.js +1 -0
  326. package/dist/interactive/providers.d.ts +3 -0
  327. package/dist/interactive/providers.js +3 -0
  328. package/dist/interactive/records.d.ts +2 -0
  329. package/dist/interactive/records.js +1 -0
  330. package/dist/interactive/substrate.d.ts +21 -0
  331. package/dist/interactive/substrate.js +522 -0
  332. package/dist/interactive/types.d.ts +101 -0
  333. package/dist/interactive/types.js +1 -0
  334. package/dist/mcp/server.d.ts +88 -0
  335. package/dist/mcp/server.js +790 -0
  336. package/dist/persistence/error-mapping.d.ts +19 -0
  337. package/dist/persistence/error-mapping.js +44 -0
  338. package/dist/persistence/errors.d.ts +26 -0
  339. package/dist/persistence/errors.js +49 -0
  340. package/dist/persistence/extra-context.d.ts +9 -0
  341. package/dist/persistence/extra-context.js +60 -0
  342. package/dist/{records → persistence}/history-lock.js +2 -2
  343. package/dist/persistence/record-path-schema.d.ts +3 -0
  344. package/dist/persistence/record-path-schema.js +16 -0
  345. package/dist/persistence/session-store.d.ts +92 -0
  346. package/dist/persistence/session-store.js +412 -0
  347. package/dist/policy/auto.d.ts +13 -0
  348. package/dist/policy/auto.js +22 -0
  349. package/dist/policy/index.d.ts +5 -0
  350. package/dist/policy/index.js +5 -0
  351. package/dist/policy/resolution.d.ts +6 -0
  352. package/dist/policy/resolution.js +23 -0
  353. package/dist/policy/result.d.ts +53 -0
  354. package/dist/policy/result.js +15 -0
  355. package/dist/policy/selector.d.ts +11 -0
  356. package/dist/policy/selector.js +57 -0
  357. package/dist/policy/verification.d.ts +77 -0
  358. package/dist/policy/verification.js +365 -0
  359. package/dist/policy/verifier-selection.d.ts +13 -0
  360. package/dist/policy/verifier-selection.js +78 -0
  361. package/dist/preflight/branch.d.ts +9 -0
  362. package/dist/preflight/branch.js +48 -0
  363. package/dist/preflight/errors.d.ts +3 -0
  364. package/dist/preflight/errors.js +10 -3
  365. package/dist/preflight/index.d.ts +13 -0
  366. package/dist/preflight/index.js +43 -8
  367. package/dist/render/interactions/confirmation.js +4 -2
  368. package/dist/render/transcripts/apply.js +9 -10
  369. package/dist/render/transcripts/auto.d.ts +27 -0
  370. package/dist/render/transcripts/auto.js +21 -0
  371. package/dist/render/transcripts/init.d.ts +4 -15
  372. package/dist/render/transcripts/init.js +71 -72
  373. package/dist/render/transcripts/list.d.ts +10 -1
  374. package/dist/render/transcripts/list.js +121 -15
  375. package/dist/render/transcripts/message.d.ts +72 -0
  376. package/dist/render/transcripts/message.js +362 -0
  377. package/dist/render/transcripts/prune.d.ts +7 -2
  378. package/dist/render/transcripts/prune.js +64 -17
  379. package/dist/render/transcripts/reduce.d.ts +74 -0
  380. package/dist/render/transcripts/reduce.js +395 -0
  381. package/dist/render/transcripts/root-launcher.d.ts +19 -0
  382. package/dist/render/transcripts/root-launcher.js +40 -0
  383. package/dist/render/transcripts/run.d.ts +35 -6
  384. package/dist/render/transcripts/run.js +241 -165
  385. package/dist/render/transcripts/shared.d.ts +2 -0
  386. package/dist/render/transcripts/shared.js +11 -4
  387. package/dist/render/transcripts/spec.d.ts +74 -0
  388. package/dist/render/transcripts/spec.js +394 -0
  389. package/dist/render/transcripts/stage-progress.d.ts +22 -0
  390. package/dist/render/transcripts/stage-progress.js +6 -0
  391. package/dist/render/transcripts/update-check.d.ts +2 -0
  392. package/dist/render/transcripts/update-check.js +22 -0
  393. package/dist/render/transcripts/verify.d.ts +74 -0
  394. package/dist/render/transcripts/verify.js +409 -0
  395. package/dist/render/utils/agents.d.ts +10 -9
  396. package/dist/render/utils/agents.js +30 -82
  397. package/dist/render/utils/badges.d.ts +3 -20
  398. package/dist/render/utils/badges.js +3 -36
  399. package/dist/render/utils/duration.d.ts +12 -0
  400. package/dist/render/utils/duration.js +37 -0
  401. package/dist/render/utils/interactive-frame.d.ts +6 -0
  402. package/dist/render/utils/interactive-frame.js +38 -0
  403. package/dist/render/utils/records.js +4 -4
  404. package/dist/render/utils/runs.d.ts +3 -9
  405. package/dist/render/utils/runs.js +16 -48
  406. package/dist/render/utils/stage-output.d.ts +20 -0
  407. package/dist/render/utils/stage-output.js +44 -0
  408. package/dist/render/utils/timezone.d.ts +2 -0
  409. package/dist/render/utils/timezone.js +42 -0
  410. package/dist/render/utils/transcript-shell.d.ts +66 -0
  411. package/dist/render/utils/transcript-shell.js +155 -0
  412. package/dist/render/utils/transcript.d.ts +7 -1
  413. package/dist/render/utils/transcript.js +12 -2
  414. package/dist/render/utils/wrap.d.ts +1 -0
  415. package/dist/render/utils/wrap.js +20 -0
  416. package/dist/status/colors.d.ts +2 -3
  417. package/dist/status/colors.js +3 -3
  418. package/dist/status/index.d.ts +108 -8
  419. package/dist/status/index.js +164 -5
  420. package/dist/update-check/checker.d.ts +24 -0
  421. package/dist/update-check/checker.js +130 -0
  422. package/dist/update-check/prompt.d.ts +25 -0
  423. package/dist/update-check/prompt.js +62 -0
  424. package/dist/update-check/semver.d.ts +17 -0
  425. package/dist/update-check/semver.js +36 -0
  426. package/dist/update-check/state-path.d.ts +8 -0
  427. package/dist/update-check/state-path.js +18 -0
  428. package/dist/utils/binaries.js +14 -8
  429. package/dist/utils/errors.d.ts +3 -1
  430. package/dist/utils/errors.js +3 -1
  431. package/dist/utils/git.d.ts +10 -0
  432. package/dist/utils/git.js +15 -3
  433. package/dist/utils/output.d.ts +5 -1
  434. package/dist/utils/output.js +4 -2
  435. package/dist/utils/process.d.ts +2 -1
  436. package/dist/utils/process.js +7 -3
  437. package/dist/utils/session-id.d.ts +1 -0
  438. package/dist/utils/session-id.js +22 -0
  439. package/dist/utils/slug.d.ts +2 -0
  440. package/dist/utils/slug.js +15 -0
  441. package/dist/utils/voratiq-cli-target.d.ts +9 -0
  442. package/dist/utils/voratiq-cli-target.js +58 -0
  443. package/dist/workspace/agents.d.ts +13 -16
  444. package/dist/workspace/agents.js +22 -147
  445. package/dist/workspace/chat/artifacts.d.ts +9 -0
  446. package/dist/workspace/chat/artifacts.js +82 -12
  447. package/dist/workspace/chat/native-usage.d.ts +13 -0
  448. package/dist/workspace/chat/native-usage.js +60 -0
  449. package/dist/workspace/chat/sources.d.ts +9 -5
  450. package/dist/workspace/chat/sources.js +89 -23
  451. package/dist/workspace/chat/token-usage-result.d.ts +23 -0
  452. package/dist/workspace/chat/token-usage-result.js +7 -0
  453. package/dist/workspace/chat/usage-extractor.d.ts +30 -0
  454. package/dist/workspace/chat/usage-extractor.js +461 -0
  455. package/dist/workspace/chat/usage-mappings.d.ts +20 -0
  456. package/dist/workspace/chat/usage-mappings.js +136 -0
  457. package/dist/workspace/credential-guard.js +1 -1
  458. package/dist/workspace/dependencies.js +4 -4
  459. package/dist/workspace/errors.d.ts +5 -0
  460. package/dist/workspace/errors.js +13 -3
  461. package/dist/workspace/layout.d.ts +17 -6
  462. package/dist/workspace/layout.js +51 -32
  463. package/dist/workspace/promotion.d.ts +32 -0
  464. package/dist/workspace/promotion.js +34 -0
  465. package/dist/workspace/prune.d.ts +1 -1
  466. package/dist/workspace/run.d.ts +1 -3
  467. package/dist/workspace/run.js +6 -15
  468. package/dist/workspace/setup.d.ts +8 -0
  469. package/dist/workspace/setup.js +359 -56
  470. package/dist/workspace/shim.js +1 -1
  471. package/dist/workspace/structure.d.ts +91 -26
  472. package/dist/workspace/structure.js +227 -43
  473. package/dist/workspace/templates.d.ts +9 -3
  474. package/dist/workspace/templates.js +26 -15
  475. package/dist/workspace/verification-defaults.d.ts +12 -0
  476. package/dist/workspace/verification-defaults.js +1017 -0
  477. package/package.json +30 -24
  478. package/dist/cli/review.d.ts +0 -12
  479. package/dist/cli/review.js +0 -33
  480. package/dist/commands/errors.d.ts +0 -4
  481. package/dist/commands/errors.js +0 -7
  482. package/dist/commands/init/evals.d.ts +0 -4
  483. package/dist/commands/init/evals.js +0 -219
  484. package/dist/commands/review/command.d.ts +0 -10
  485. package/dist/commands/review/command.js +0 -26
  486. package/dist/commands/run/agent-execution.d.ts +0 -19
  487. package/dist/commands/run/agent-execution.js +0 -63
  488. package/dist/commands/run/agents/auth-stage.d.ts +0 -23
  489. package/dist/commands/run/agents/auth-stage.js +0 -108
  490. package/dist/commands/run/agents/chat-preserver.d.ts +0 -9
  491. package/dist/commands/run/agents/chat-preserver.js +0 -35
  492. package/dist/commands/run/agents/eval-runner.d.ts +0 -19
  493. package/dist/commands/run/agents/eval-runner.js +0 -27
  494. package/dist/commands/run/agents/failures.js +0 -32
  495. package/dist/commands/run/agents/preparation.js +0 -123
  496. package/dist/commands/run/agents.d.ts +0 -14
  497. package/dist/commands/run/agents.js +0 -47
  498. package/dist/commands/run/prompts.d.ts +0 -4
  499. package/dist/commands/run/prompts.js +0 -16
  500. package/dist/commands/run/sandbox-registry.d.ts +0 -4
  501. package/dist/commands/run/sandbox-registry.js +0 -54
  502. package/dist/configs/evals/defaults.d.ts +0 -8
  503. package/dist/configs/evals/defaults.js +0 -28
  504. package/dist/configs/evals/detect.d.ts +0 -10
  505. package/dist/configs/evals/errors.d.ts +0 -16
  506. package/dist/configs/evals/errors.js +0 -29
  507. package/dist/configs/evals/loader.d.ts +0 -9
  508. package/dist/configs/evals/loader.js +0 -46
  509. package/dist/configs/evals/types.d.ts +0 -42
  510. package/dist/configs/evals/types.js +0 -74
  511. package/dist/evals/runner.d.ts +0 -16
  512. package/dist/evals/runner.js +0 -132
  513. package/dist/records/persistence.js +0 -469
  514. package/dist/records/types.d.ts +0 -255
  515. package/dist/records/types.js +0 -160
  516. package/dist/render/transcripts/review.d.ts +0 -2
  517. package/dist/render/transcripts/review.js +0 -36
  518. /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.d.ts +0 -0
  519. /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.js +0 -0
  520. /package/dist/{commands/run → agents/runtime/shim}/argv.d.ts +0 -0
  521. /package/dist/{commands/run → agents/runtime/shim}/argv.js +0 -0
  522. /package/dist/{commands/run/agents → agents/runtime}/types.js +0 -0
  523. /package/dist/{commands/run → domain/run/competition}/agents/preparation.d.ts +0 -0
  524. /package/dist/{commands/run/phases.js → domain/run/competition/agents/types.js} +0 -0
  525. /package/dist/{commands/run → domain/run/model}/id.d.ts +0 -0
  526. /package/dist/{commands/run → domain/run/model}/id.js +0 -0
  527. /package/dist/{records → persistence}/history-lock.d.ts +0 -0
@@ -1,20 +1,29 @@
1
- import { buildRunRecordEnhanced } from "../../records/enhanced.js";
2
- import { rewriteRunRecord } from "../../records/persistence.js";
1
+ import { readFile } from "node:fs/promises";
2
+ import { buildRunRecordEnhanced } from "../../domain/run/model/enhanced.js";
3
+ import { rewriteRunRecord } from "../../domain/run/persistence/adapter.js";
4
+ import { readVerificationRecords } from "../../domain/verify/persistence/adapter.js";
5
+ import { buildVerificationSelectorSource, deriveSelectorSelectionDecision, loadVerificationSelectionPolicyOutput, } from "../../policy/index.js";
3
6
  import { toErrorMessage } from "../../utils/errors.js";
4
7
  import { ensureFileExists } from "../../utils/fs.js";
5
8
  import { getGitStderr, getHeadRevision, runGitCommand, } from "../../utils/git.js";
6
9
  import { resolveDisplayPath } from "../../utils/path.js";
7
10
  import { fetchRunSafely } from "../fetch.js";
8
- import { ApplyAgentDiffMissingOnDiskError, ApplyAgentDiffNotRecordedError, ApplyAgentNotFoundError, ApplyBaseMismatchError, ApplyPatchApplicationError, ApplyRunDeletedError, } from "./errors.js";
11
+ import { ApplyAgentDiffMissingOnDiskError, ApplyAgentDiffNotRecordedError, ApplyAgentNotFoundError, ApplyAgentSelectorAmbiguousError, ApplyAgentSelectorUnresolvedError, ApplyAgentSummaryEmptyError, ApplyAgentSummaryMissingOnDiskError, ApplyAgentSummaryNotRecordedError, ApplyBaseMismatchError, ApplyGitCommitError, ApplyPatchApplicationError, ApplyVerificationPolicyLoadError, } from "./errors.js";
9
12
  export async function executeApplyCommand(input) {
10
- const { root, runsFilePath, runId, agentId, ignoreBaseMismatch } = input;
13
+ const { root, runsFilePath, verificationsFilePath, runId, agentId: selector, ignoreBaseMismatch, commit = false, } = input;
11
14
  const runRecord = await fetchRunSafely({
12
15
  root,
13
16
  runsFilePath,
14
17
  runId,
15
- onDeleted: (record) => new ApplyRunDeletedError(record.runId),
16
18
  });
17
19
  const enhanced = buildRunRecordEnhanced(runRecord);
20
+ const agentId = await resolveApplyAgentSelector({
21
+ root,
22
+ runId,
23
+ selector,
24
+ canonicalAgentIds: runRecord.agents.map((agent) => agent.agentId),
25
+ verificationsFilePath,
26
+ });
18
27
  const agentRecord = runRecord.agents.find((agent) => agent.agentId === agentId);
19
28
  if (!agentRecord) {
20
29
  throw new ApplyAgentNotFoundError(runId, agentId);
@@ -30,6 +39,8 @@ export async function executeApplyCommand(input) {
30
39
  }
31
40
  const diffAbsolutePath = resolveDisplayPath(root, diffDisplayPath) ?? diffDisplayPath;
32
41
  await ensureFileExists(diffAbsolutePath, () => new ApplyAgentDiffMissingOnDiskError(diffDisplayPath));
42
+ const summaryRecorded = agentRecord.artifacts?.summaryCaptured ?? false;
43
+ const summaryDisplayPath = enhancedAgent.assets.summaryPath;
33
44
  const headRevision = await getHeadRevision(root);
34
45
  const baseRevisionSha = runRecord.baseRevisionSha;
35
46
  const baseMismatch = headRevision !== baseRevisionSha;
@@ -63,6 +74,30 @@ export async function executeApplyCommand(input) {
63
74
  }
64
75
  throw error;
65
76
  }
77
+ let appliedCommitSha;
78
+ if (commit) {
79
+ try {
80
+ appliedCommitSha = await commitAppliedDiff({
81
+ root,
82
+ runId,
83
+ agentId,
84
+ summaryRecorded,
85
+ summaryDisplayPath,
86
+ });
87
+ }
88
+ catch (error) {
89
+ await recordApplyStatus({
90
+ root,
91
+ runsFilePath,
92
+ runId,
93
+ agentId,
94
+ ignoredBaseMismatch,
95
+ status: "failed",
96
+ detail: extractCommitFailureDetail(error),
97
+ });
98
+ throw error;
99
+ }
100
+ }
66
101
  await recordApplyStatus({
67
102
  root,
68
103
  runsFilePath,
@@ -70,6 +105,7 @@ export async function executeApplyCommand(input) {
70
105
  agentId,
71
106
  ignoredBaseMismatch,
72
107
  status: "succeeded",
108
+ appliedCommitSha,
73
109
  });
74
110
  return {
75
111
  runId: runRecord.runId,
@@ -81,8 +117,70 @@ export async function executeApplyCommand(input) {
81
117
  agent: agentRecord,
82
118
  diffPath: diffDisplayPath,
83
119
  ignoredBaseMismatch,
120
+ ...(appliedCommitSha ? { appliedCommitSha } : {}),
84
121
  };
85
122
  }
123
+ async function resolveApplyAgentSelector(options) {
124
+ const { root, runId, selector, canonicalAgentIds, verificationsFilePath } = options;
125
+ if (canonicalAgentIds.includes(selector)) {
126
+ return selector;
127
+ }
128
+ const effectiveVerificationsPath = verificationsFilePath ?? `${root}/.voratiq/verify/index.json`;
129
+ const verificationRecords = await readVerificationRecords({
130
+ root,
131
+ verificationsFilePath: effectiveVerificationsPath,
132
+ predicate: (record) => record.target.kind === "run" && record.target.sessionId === runId,
133
+ }).catch(() => []);
134
+ const verificationFailures = [];
135
+ const sources = (await Promise.all(verificationRecords.map(async (record) => {
136
+ try {
137
+ const output = await loadVerificationSelectionPolicyOutput({
138
+ root,
139
+ record,
140
+ });
141
+ return buildVerificationSelectorSource(output);
142
+ }
143
+ catch (error) {
144
+ verificationFailures.push({
145
+ verificationId: record.sessionId,
146
+ detail: toErrorMessage(error),
147
+ });
148
+ return undefined;
149
+ }
150
+ }))).filter((source) => source !== undefined);
151
+ const selectorDecision = deriveSelectorSelectionDecision({
152
+ selector,
153
+ canonicalAgentIds,
154
+ sources,
155
+ });
156
+ if (selectorDecision.state === "resolvable") {
157
+ return selectorDecision.selectedCanonicalAgentId;
158
+ }
159
+ if (verificationFailures.length > 0) {
160
+ throw new ApplyVerificationPolicyLoadError({
161
+ runId,
162
+ verificationFailures,
163
+ });
164
+ }
165
+ const ambiguousReason = selectorDecision.unresolvedReasons.find((reason) => reason.code === "selector_ambiguous");
166
+ if (ambiguousReason) {
167
+ throw new ApplyAgentSelectorAmbiguousError({
168
+ runId,
169
+ selector,
170
+ matches: ambiguousReason.resolutions.map((resolution) => ({
171
+ verificationId: resolution.sourceId,
172
+ agentId: resolution.selectedCanonicalAgentId,
173
+ })),
174
+ });
175
+ }
176
+ const unresolvedReason = selectorDecision.unresolvedReasons.find((reason) => reason.code === "selector_unresolved");
177
+ throw new ApplyAgentSelectorUnresolvedError({
178
+ runId,
179
+ selector,
180
+ canonicalAgentIds,
181
+ aliases: unresolvedReason?.availableAliases ?? [],
182
+ });
183
+ }
86
184
  async function applyPatch(options) {
87
185
  const { root, diffAbsolutePath, diffDisplayPath, runId, agentId } = options;
88
186
  try {
@@ -96,7 +194,7 @@ async function applyPatch(options) {
96
194
  }
97
195
  }
98
196
  async function recordApplyStatus(options) {
99
- const { root, runsFilePath, runId, agentId, status, ignoredBaseMismatch, detail, } = options;
197
+ const { root, runsFilePath, runId, agentId, status, ignoredBaseMismatch, appliedCommitSha, detail, } = options;
100
198
  const appliedAt = new Date().toISOString();
101
199
  const normalizedDetail = typeof detail === "string" && detail.length > 0
102
200
  ? truncateDetail(detail)
@@ -115,11 +213,15 @@ async function recordApplyStatus(options) {
115
213
  if (normalizedDetail !== undefined) {
116
214
  applyStatus.detail = normalizedDetail;
117
215
  }
216
+ if (typeof appliedCommitSha === "string" && appliedCommitSha.length > 0) {
217
+ applyStatus.appliedCommitSha = appliedCommitSha;
218
+ }
118
219
  return {
119
220
  ...record,
120
221
  applyStatus,
121
222
  };
122
223
  },
224
+ forceFlush: true,
123
225
  });
124
226
  }
125
227
  function extractApplyFailureDetail(error) {
@@ -129,7 +231,44 @@ function extractApplyFailureDetail(error) {
129
231
  }
130
232
  return error.message;
131
233
  }
234
+ function extractCommitFailureDetail(error) {
235
+ const stderr = getGitStderr(error);
236
+ if (stderr && stderr.trim().length > 0) {
237
+ const [firstLine] = stderr.split(/\r?\n/);
238
+ if (firstLine && firstLine.trim().length > 0) {
239
+ return firstLine.trim();
240
+ }
241
+ return stderr.trim();
242
+ }
243
+ return toErrorMessage(error);
244
+ }
132
245
  function truncateDetail(detail) {
133
246
  const trimmed = detail.trim();
134
247
  return trimmed.length > 256 ? trimmed.slice(0, 256) : trimmed;
135
248
  }
249
+ async function commitAppliedDiff(options) {
250
+ const { root, runId, agentId, summaryRecorded, summaryDisplayPath } = options;
251
+ if (!summaryRecorded || !summaryDisplayPath) {
252
+ throw new ApplyAgentSummaryNotRecordedError(runId, agentId);
253
+ }
254
+ const summaryAbsolutePath = resolveDisplayPath(root, summaryDisplayPath) ?? summaryDisplayPath;
255
+ await ensureFileExists(summaryAbsolutePath, () => new ApplyAgentSummaryMissingOnDiskError(summaryDisplayPath));
256
+ const rawSummary = await readFile(summaryAbsolutePath, "utf8");
257
+ const commitSubject = normalizeCommitSubject(rawSummary);
258
+ if (!commitSubject) {
259
+ throw new ApplyAgentSummaryEmptyError(summaryDisplayPath);
260
+ }
261
+ try {
262
+ await runGitCommand(["add", "-A"], { cwd: root });
263
+ await runGitCommand(["commit", "-m", commitSubject], { cwd: root });
264
+ return await runGitCommand(["rev-parse", "HEAD"], { cwd: root });
265
+ }
266
+ catch (error) {
267
+ const detail = getGitStderr(error) ?? toErrorMessage(error);
268
+ throw new ApplyGitCommitError(detail);
269
+ }
270
+ }
271
+ function normalizeCommitSubject(summary) {
272
+ const normalized = summary.trim().replace(/\s+/gu, " ");
273
+ return normalized.length > 0 ? normalized : "";
274
+ }
@@ -2,10 +2,6 @@ import { CliError } from "../../cli/errors.js";
2
2
  export declare class ApplyError extends CliError {
3
3
  constructor(headline: string, detailLines?: readonly string[], hintLines?: readonly string[]);
4
4
  }
5
- export declare class ApplyRunDeletedError extends ApplyError {
6
- readonly runId: string;
7
- constructor(runId: string);
8
- }
9
5
  export declare class ApplyRunMetadataCorruptedError extends ApplyError {
10
6
  constructor(detail: string);
11
7
  }
@@ -14,6 +10,33 @@ export declare class ApplyAgentNotFoundError extends ApplyError {
14
10
  readonly agentId: string;
15
11
  constructor(runId: string, agentId: string);
16
12
  }
13
+ export declare class ApplyAgentSelectorUnresolvedError extends ApplyError {
14
+ constructor(options: {
15
+ runId: string;
16
+ selector: string;
17
+ canonicalAgentIds: readonly string[];
18
+ aliases: readonly string[];
19
+ });
20
+ }
21
+ export declare class ApplyAgentSelectorAmbiguousError extends ApplyError {
22
+ constructor(options: {
23
+ runId: string;
24
+ selector: string;
25
+ matches: Array<{
26
+ verificationId: string;
27
+ agentId: string;
28
+ }>;
29
+ });
30
+ }
31
+ export declare class ApplyVerificationPolicyLoadError extends ApplyError {
32
+ constructor(options: {
33
+ runId: string;
34
+ verificationFailures: readonly {
35
+ verificationId: string;
36
+ detail: string;
37
+ }[];
38
+ });
39
+ }
17
40
  export declare class ApplyAgentDiffNotRecordedError extends ApplyError {
18
41
  readonly runId: string;
19
42
  readonly agentId: string;
@@ -23,6 +46,22 @@ export declare class ApplyAgentDiffMissingOnDiskError extends ApplyError {
23
46
  readonly diffPath: string;
24
47
  constructor(diffPath: string);
25
48
  }
49
+ export declare class ApplyAgentSummaryNotRecordedError extends ApplyError {
50
+ readonly runId: string;
51
+ readonly agentId: string;
52
+ constructor(runId: string, agentId: string);
53
+ }
54
+ export declare class ApplyAgentSummaryMissingOnDiskError extends ApplyError {
55
+ readonly summaryPath: string;
56
+ constructor(summaryPath: string);
57
+ }
58
+ export declare class ApplyAgentSummaryEmptyError extends ApplyError {
59
+ readonly summaryPath: string;
60
+ constructor(summaryPath: string);
61
+ }
62
+ export declare class ApplyGitCommitError extends ApplyError {
63
+ constructor(detail: string);
64
+ }
26
65
  export interface ApplyBaseMismatchOptions {
27
66
  baseRevisionSha: string;
28
67
  headRevision: string;
@@ -5,19 +5,9 @@ export class ApplyError extends CliError {
5
5
  this.name = "ApplyError";
6
6
  }
7
7
  }
8
- export class ApplyRunDeletedError extends ApplyError {
9
- runId;
10
- constructor(runId) {
11
- super(`Run ${runId} has been deleted.`, [], ["Re-run the spec to generate fresh artifacts before applying."]);
12
- this.runId = runId;
13
- this.name = "ApplyRunDeletedError";
14
- }
15
- }
16
8
  export class ApplyRunMetadataCorruptedError extends ApplyError {
17
9
  constructor(detail) {
18
- super("Run history is corrupted; cannot apply.", [detail], [
19
- "Inspect `.voratiq/runs/index.json` and the affected run directory under `.voratiq/runs/sessions/<id>` or regenerate the run with `voratiq run`.",
20
- ]);
10
+ super("Run history is corrupted.", [detail], ["Check `run/index.json` and the affected session directory."]);
21
11
  this.name = "ApplyRunMetadataCorruptedError";
22
12
  }
23
13
  }
@@ -25,19 +15,75 @@ export class ApplyAgentNotFoundError extends ApplyError {
25
15
  runId;
26
16
  agentId;
27
17
  constructor(runId, agentId) {
28
- super(`Agent ${agentId} not found in run ${runId}.`, [], [`To review run information: voratiq review --run ${runId}.`]);
18
+ super(`Agent \`${agentId}\` not found in run \`${runId}\`.`, [], ["Check available agents with `voratiq list --run <run-id>`."]);
29
19
  this.runId = runId;
30
20
  this.agentId = agentId;
31
21
  this.name = "ApplyAgentNotFoundError";
32
22
  }
33
23
  }
24
+ export class ApplyAgentSelectorUnresolvedError extends ApplyError {
25
+ constructor(options) {
26
+ const { runId, selector, canonicalAgentIds, aliases } = options;
27
+ const canonicalPreview = canonicalAgentIds
28
+ .slice(0, 20)
29
+ .map((agentId) => `\`${agentId}\``)
30
+ .join(", ");
31
+ const aliasPreview = aliases
32
+ .slice(0, 20)
33
+ .map((alias) => `\`${alias}\``)
34
+ .join(", ");
35
+ const detailLines = [
36
+ ...(canonicalAgentIds.length > 0
37
+ ? [
38
+ `Available agent ids: ${canonicalPreview}${canonicalAgentIds.length > 20 ? ", ..." : ""}.`,
39
+ ]
40
+ : []),
41
+ ...(aliases.length > 0
42
+ ? [
43
+ `Available blinded aliases: ${aliasPreview}${aliases.length > 20 ? ", ..." : ""}.`,
44
+ ]
45
+ : []),
46
+ ];
47
+ super(`Agent selector \`${selector}\` did not match run \`${runId}\`.`, detailLines, [
48
+ "Use an agent id or a verification-selected blinded alias for this run.",
49
+ ]);
50
+ this.name = "ApplyAgentSelectorUnresolvedError";
51
+ }
52
+ }
53
+ export class ApplyAgentSelectorAmbiguousError extends ApplyError {
54
+ constructor(options) {
55
+ const { runId, selector, matches } = options;
56
+ const lines = matches
57
+ .slice(0, 10)
58
+ .map((match) => `- \`${match.verificationId}\`: \`${match.agentId}\``);
59
+ super(`Blinded alias \`${selector}\` is ambiguous for run \`${runId}\`.`, [
60
+ "This alias resolves differently across verification sessions:",
61
+ ...lines,
62
+ matches.length > 10 ? "- ..." : "",
63
+ ].filter((line) => line.length > 0), ["Use a canonical agent id for this run."]);
64
+ this.name = "ApplyAgentSelectorAmbiguousError";
65
+ }
66
+ }
67
+ export class ApplyVerificationPolicyLoadError extends ApplyError {
68
+ constructor(options) {
69
+ const { runId, verificationFailures } = options;
70
+ const detailLines = verificationFailures
71
+ .slice(0, 10)
72
+ .flatMap((failure) => [
73
+ `Verification: \`${failure.verificationId}\`.`,
74
+ failure.detail,
75
+ ]);
76
+ super(`Failed to load verification policy data for run \`${runId}\`.`, detailLines, [
77
+ "Re-run `voratiq verify` for this run to regenerate verification artifacts.",
78
+ ]);
79
+ this.name = "ApplyVerificationPolicyLoadError";
80
+ }
81
+ }
34
82
  export class ApplyAgentDiffNotRecordedError extends ApplyError {
35
83
  runId;
36
84
  agentId;
37
85
  constructor(runId, agentId) {
38
- super(`Agent ${agentId} did not record a diff for run ${runId}.`, [
39
- `Select an agent that produced a diff via \`voratiq review --run ${runId}\`.`,
40
- ]);
86
+ super(`Agent \`${agentId}\` did not record a diff for run \`${runId}\`.`, [], ["Select an agent that produced a diff in the recorded run."]);
41
87
  this.runId = runId;
42
88
  this.agentId = agentId;
43
89
  this.name = "ApplyAgentDiffNotRecordedError";
@@ -46,25 +92,57 @@ export class ApplyAgentDiffNotRecordedError extends ApplyError {
46
92
  export class ApplyAgentDiffMissingOnDiskError extends ApplyError {
47
93
  diffPath;
48
94
  constructor(diffPath) {
49
- super("Recorded diff is missing from disk.", [`Expected diff at ${diffPath} but it was not found.`], ["Ensure the run directory still exists or re-run the agents."]);
95
+ super("Recorded diff is missing from disk.", [`Expected diff: \`${diffPath}\`.`], ["Re-run to regenerate artifacts."]);
50
96
  this.diffPath = diffPath;
51
97
  this.name = "ApplyAgentDiffMissingOnDiskError";
52
98
  }
53
99
  }
100
+ export class ApplyAgentSummaryNotRecordedError extends ApplyError {
101
+ runId;
102
+ agentId;
103
+ constructor(runId, agentId) {
104
+ super(`Agent \`${agentId}\` did not record a summary for run \`${runId}\`.`, ["A summary artifact is required when using `--commit`."], ["Apply without `--commit` and write the commit message manually."]);
105
+ this.runId = runId;
106
+ this.agentId = agentId;
107
+ this.name = "ApplyAgentSummaryNotRecordedError";
108
+ }
109
+ }
110
+ export class ApplyAgentSummaryMissingOnDiskError extends ApplyError {
111
+ summaryPath;
112
+ constructor(summaryPath) {
113
+ super("Recorded summary is missing from disk.", [`Expected summary: \`${summaryPath}\`.`], ["Re-run to regenerate artifacts."]);
114
+ this.summaryPath = summaryPath;
115
+ this.name = "ApplyAgentSummaryMissingOnDiskError";
116
+ }
117
+ }
118
+ export class ApplyAgentSummaryEmptyError extends ApplyError {
119
+ summaryPath;
120
+ constructor(summaryPath) {
121
+ super("Recorded summary is empty.", [`Expected summary with a commit subject: \`${summaryPath}\`.`], ["Apply without `--commit` and write the commit message manually."]);
122
+ this.summaryPath = summaryPath;
123
+ this.name = "ApplyAgentSummaryEmptyError";
124
+ }
125
+ }
126
+ export class ApplyGitCommitError extends ApplyError {
127
+ constructor(detail) {
128
+ super("Failed to create git commit.", [detail], ["The diff remains applied; resolve the issue and commit manually."]);
129
+ this.name = "ApplyGitCommitError";
130
+ }
131
+ }
54
132
  export class ApplyBaseMismatchError extends ApplyError {
55
133
  constructor(options) {
56
134
  const { baseRevisionSha, headRevision } = options;
57
- super(`Repository HEAD (${shortSha(headRevision)}) no longer matches the run's base revision (${shortSha(baseRevisionSha)}).`, [
58
- "Reset to the recorded base or rerun the specification, or pass `--ignore-base-mismatch` to proceed at your own risk.",
59
- ]);
135
+ super(`Repository HEAD \`${shortSha(headRevision)}\` no longer matches run base \`${shortSha(baseRevisionSha)}\`.`, [], ["Use `--ignore-base-mismatch` to apply anyway (conflicts may occur)."]);
60
136
  this.name = "ApplyBaseMismatchError";
61
137
  }
62
138
  }
63
139
  export class ApplyPatchApplicationError extends ApplyError {
64
140
  constructor(detail, diffPath, runId, agentId) {
65
- super("Failed to apply the recorded diff.", [detail, `Inspect the patch at ${diffPath} for additional context.`], [
66
- `Resolve the conflict and rerun \`voratiq apply --run ${runId} --agent ${agentId}\`.`,
67
- ]);
141
+ super("Failed to apply recorded diff.", [
142
+ detail,
143
+ `Run: \`${runId}\`, agent: \`${agentId}\`.`,
144
+ `Patch: \`${diffPath}\`.`,
145
+ ], ["Resolve the conflict, then re-run apply for the same run and agent."]);
68
146
  this.name = "ApplyPatchApplicationError";
69
147
  }
70
148
  }
@@ -1,4 +1,4 @@
1
- import type { AgentInvocationRecord } from "../../records/types.js";
1
+ import type { AgentInvocationRecord } from "../../domain/run/model/types.js";
2
2
  import type { RunStatus } from "../../status/index.js";
3
3
  export interface ApplyResult {
4
4
  runId: string;
@@ -10,4 +10,5 @@ export interface ApplyResult {
10
10
  agent: AgentInvocationRecord;
11
11
  diffPath: string;
12
12
  ignoredBaseMismatch: boolean;
13
+ appliedCommitSha?: string;
13
14
  }
@@ -0,0 +1,145 @@
1
+ import type { AutoApplyStatus, AutoTerminalStatus } from "../../domain/run/model/types.js";
2
+ import type { SelectionDecision } from "../../policy/index.js";
3
+ import { type RunStatus } from "../../status/index.js";
4
+ export interface ExecuteAutoCommandInput {
5
+ specPath?: string;
6
+ description?: string;
7
+ runAgentIds?: readonly string[];
8
+ verifyAgentIds?: readonly string[];
9
+ profile?: string;
10
+ maxParallel?: number;
11
+ branch?: boolean;
12
+ apply?: boolean;
13
+ commit?: boolean;
14
+ }
15
+ export interface AutoSpecStageInput {
16
+ description: string;
17
+ profile?: string;
18
+ maxParallel?: number;
19
+ suppressHint: boolean;
20
+ }
21
+ export interface AutoSpecStageResult {
22
+ body: string;
23
+ sessionId: string;
24
+ generatedSpecPaths?: readonly string[];
25
+ specPath?: string;
26
+ }
27
+ export interface AutoRunAgentResult {
28
+ agentId: string;
29
+ }
30
+ export interface AutoRunStageReport {
31
+ runId: string;
32
+ status: RunStatus;
33
+ createdAt: string;
34
+ baseRevisionSha: string;
35
+ spec?: {
36
+ path?: string;
37
+ };
38
+ agents: readonly AutoRunAgentResult[];
39
+ }
40
+ export interface AutoRunStageInput {
41
+ specPath: string;
42
+ agentIds?: readonly string[];
43
+ agentOverrideFlag: string;
44
+ profile?: string;
45
+ maxParallel?: number;
46
+ branch?: boolean;
47
+ }
48
+ export interface AutoRunStageResult {
49
+ report: AutoRunStageReport;
50
+ body: string;
51
+ exitCode?: number;
52
+ }
53
+ export interface AutoVerifyStageInput {
54
+ target: {
55
+ kind: "spec" | "run";
56
+ sessionId: string;
57
+ };
58
+ agentIds?: readonly string[];
59
+ agentOverrideFlag: string;
60
+ profile?: string;
61
+ maxParallel?: number;
62
+ suppressHint: boolean;
63
+ }
64
+ export interface AutoVerifyStageResult {
65
+ verificationId?: string;
66
+ body: string;
67
+ stderr?: string;
68
+ exitCode?: number;
69
+ selectedSpecPath?: string;
70
+ selection?: SelectionDecision;
71
+ selectionWarnings?: readonly string[];
72
+ }
73
+ export interface AutoApplyStageInput {
74
+ runId: string;
75
+ agentId: string;
76
+ commit: boolean;
77
+ }
78
+ export interface AutoApplyStageResult {
79
+ body: string;
80
+ exitCode?: number;
81
+ }
82
+ export type AutoCommandEvent = {
83
+ kind: "body";
84
+ body: string;
85
+ stderr?: string;
86
+ exitCode?: number;
87
+ } | {
88
+ kind: "warning";
89
+ detail: string;
90
+ separateWithDivider: boolean;
91
+ } | {
92
+ kind: "error";
93
+ error: unknown;
94
+ } | {
95
+ kind: "action_required";
96
+ detail: string;
97
+ separateWithDivider: boolean;
98
+ };
99
+ export interface AutoPhaseSummary {
100
+ status: "succeeded" | "failed" | "skipped";
101
+ durationMs?: number;
102
+ detail?: string;
103
+ }
104
+ export interface AutoExecutionSummary {
105
+ status: AutoTerminalStatus;
106
+ totalDurationMs: number;
107
+ spec: AutoPhaseSummary & {
108
+ specPath?: string;
109
+ };
110
+ run: AutoPhaseSummary & {
111
+ runId?: string;
112
+ runStatus?: RunStatus;
113
+ createdAt?: string;
114
+ specPath?: string;
115
+ baseRevisionSha?: string;
116
+ };
117
+ verify: AutoPhaseSummary;
118
+ apply: AutoPhaseSummary & {
119
+ agentId?: string;
120
+ };
121
+ }
122
+ export interface ExecuteAutoCommandResult {
123
+ exitCode: number;
124
+ runId?: string;
125
+ appliedAgentId?: string;
126
+ auto: {
127
+ status: AutoTerminalStatus;
128
+ detail?: string;
129
+ };
130
+ apply: {
131
+ status: AutoApplyStatus;
132
+ detail?: string;
133
+ };
134
+ summary: AutoExecutionSummary;
135
+ events: readonly AutoCommandEvent[];
136
+ }
137
+ export interface AutoCommandDependencies {
138
+ now?: () => number;
139
+ onEvent?: (event: AutoCommandEvent) => void;
140
+ runSpecStage: (input: AutoSpecStageInput) => Promise<AutoSpecStageResult>;
141
+ runRunStage: (input: AutoRunStageInput) => Promise<AutoRunStageResult>;
142
+ runVerifyStage: (input: AutoVerifyStageInput) => Promise<AutoVerifyStageResult>;
143
+ runApplyStage: (input: AutoApplyStageInput) => Promise<AutoApplyStageResult>;
144
+ }
145
+ export declare function executeAutoCommand(options: ExecuteAutoCommandInput, dependencies: AutoCommandDependencies): Promise<ExecuteAutoCommandResult>;