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,480 @@
1
+ import { z } from "zod";
2
+ import { listModes, listOperators, } from "../contracts/list.js";
3
+ const nonEmptyStringSchema = z.string().min(1, "must not be empty");
4
+ const positiveIntegerSchema = z
5
+ .number()
6
+ .int("must be an integer")
7
+ .positive("must be greater than 0");
8
+ const optionalNonEmptyStringArraySchema = z
9
+ .array(nonEmptyStringSchema)
10
+ .min(1, "must include at least one value")
11
+ .optional();
12
+ export const externalExecutionOperators = [
13
+ "spec",
14
+ "run",
15
+ "reduce",
16
+ "verify",
17
+ "message",
18
+ "apply",
19
+ "prune",
20
+ ];
21
+ export const externalInspectionOperators = listOperators;
22
+ export const externalInspectionModes = listModes;
23
+ export const externalExecutionOperatorSchema = z.enum(externalExecutionOperators);
24
+ export const externalInspectionOperatorSchema = z.enum(externalInspectionOperators);
25
+ export const externalInspectionModeSchema = z.enum(externalInspectionModes);
26
+ export const externalSpecExecutionInputSchema = z
27
+ .object({
28
+ description: nonEmptyStringSchema,
29
+ agentIds: optionalNonEmptyStringArraySchema,
30
+ profile: nonEmptyStringSchema.optional(),
31
+ maxParallel: positiveIntegerSchema.optional(),
32
+ title: nonEmptyStringSchema.optional(),
33
+ extraContext: optionalNonEmptyStringArraySchema,
34
+ })
35
+ .strict();
36
+ export const externalRunExecutionInputSchema = z
37
+ .object({
38
+ specPath: nonEmptyStringSchema,
39
+ agentIds: optionalNonEmptyStringArraySchema,
40
+ profile: nonEmptyStringSchema.optional(),
41
+ maxParallel: positiveIntegerSchema.optional(),
42
+ branch: z.boolean().optional(),
43
+ extraContext: optionalNonEmptyStringArraySchema,
44
+ })
45
+ .strict();
46
+ export const externalReduceExecutionInputSchema = z
47
+ .object({
48
+ target: z
49
+ .object({
50
+ type: z.enum(["spec", "run", "reduce", "verify", "message"]),
51
+ id: nonEmptyStringSchema,
52
+ })
53
+ .strict(),
54
+ agentIds: optionalNonEmptyStringArraySchema,
55
+ profile: nonEmptyStringSchema.optional(),
56
+ maxParallel: positiveIntegerSchema.optional(),
57
+ extraContext: optionalNonEmptyStringArraySchema,
58
+ })
59
+ .strict();
60
+ export const externalMessageExecutionInputSchema = z
61
+ .object({
62
+ prompt: nonEmptyStringSchema,
63
+ agentIds: optionalNonEmptyStringArraySchema,
64
+ profile: nonEmptyStringSchema.optional(),
65
+ maxParallel: positiveIntegerSchema.optional(),
66
+ extraContext: optionalNonEmptyStringArraySchema,
67
+ })
68
+ .strict();
69
+ export const externalVerifyExecutionInputSchema = z
70
+ .object({
71
+ target: z
72
+ .object({
73
+ kind: z.enum(["spec", "run", "reduce", "message"]),
74
+ sessionId: nonEmptyStringSchema,
75
+ })
76
+ .strict(),
77
+ agentIds: optionalNonEmptyStringArraySchema,
78
+ profile: nonEmptyStringSchema.optional(),
79
+ maxParallel: positiveIntegerSchema.optional(),
80
+ extraContext: optionalNonEmptyStringArraySchema,
81
+ })
82
+ .strict();
83
+ export const externalApplyExecutionInputSchema = z
84
+ .object({
85
+ runId: nonEmptyStringSchema,
86
+ agentId: nonEmptyStringSchema,
87
+ ignoreBaseMismatch: z.boolean().optional(),
88
+ commit: z.boolean().optional(),
89
+ })
90
+ .strict();
91
+ const externalPruneExecutionBaseSchema = z
92
+ .object({
93
+ purge: z.boolean().optional(),
94
+ confirmed: z.literal(true),
95
+ })
96
+ .strict();
97
+ export const externalPruneExecutionInputSchema = z.discriminatedUnion("scope", [
98
+ externalPruneExecutionBaseSchema.extend({
99
+ scope: z.literal("run"),
100
+ runId: nonEmptyStringSchema,
101
+ }),
102
+ externalPruneExecutionBaseSchema.extend({
103
+ scope: z.literal("all"),
104
+ }),
105
+ ]);
106
+ const externalListInspectionBaseSchema = z
107
+ .object({
108
+ operator: externalInspectionOperatorSchema,
109
+ verbose: z.boolean().optional(),
110
+ limit: positiveIntegerSchema.optional(),
111
+ })
112
+ .strict();
113
+ export const externalListTableInputSchema = externalListInspectionBaseSchema.extend({
114
+ mode: z.literal("table"),
115
+ });
116
+ export const externalListDetailInputSchema = externalListInspectionBaseSchema.extend({
117
+ mode: z.literal("detail"),
118
+ sessionId: nonEmptyStringSchema,
119
+ });
120
+ export const externalListInspectionInputSchema = z.discriminatedUnion("mode", [
121
+ externalListTableInputSchema,
122
+ externalListDetailInputSchema,
123
+ ]);
124
+ export const externalExecutionInputSchemas = {
125
+ spec: externalSpecExecutionInputSchema,
126
+ run: externalRunExecutionInputSchema,
127
+ reduce: externalReduceExecutionInputSchema,
128
+ verify: externalVerifyExecutionInputSchema,
129
+ message: externalMessageExecutionInputSchema,
130
+ apply: externalApplyExecutionInputSchema,
131
+ prune: externalPruneExecutionInputSchema,
132
+ };
133
+ export const externalInspectionInputSchemas = {
134
+ list: {
135
+ table: externalListTableInputSchema,
136
+ detail: externalListDetailInputSchema,
137
+ union: externalListInspectionInputSchema,
138
+ },
139
+ };
140
+ export const externalAdapterContractReference = {
141
+ execution: {
142
+ operators: externalExecutionOperators,
143
+ envelope: {
144
+ authoritativeType: "OperatorResultEnvelope",
145
+ versioned: true,
146
+ },
147
+ exitCodesAreContract: true,
148
+ },
149
+ inspection: {
150
+ command: "list",
151
+ jsonOnly: true,
152
+ operators: externalInspectionOperators,
153
+ modes: externalInspectionModes,
154
+ authoritativeType: "ListJsonOutput",
155
+ versioned: false,
156
+ },
157
+ excludedCommands: ["init", "auto"],
158
+ compatibility: {
159
+ additiveChangesAreNonBreaking: true,
160
+ breakingChangesRequireExecutionEnvelopeVersionBump: true,
161
+ breakingChanges: [
162
+ "remove an existing field",
163
+ "change a field type",
164
+ "change the semantic meaning of an existing field",
165
+ "change required-vs-optional status in a way that breaks clients",
166
+ ],
167
+ },
168
+ semantics: {
169
+ executionWarningsField: "alerts",
170
+ executionFailuresField: "error",
171
+ inspectionWarningsField: "warnings",
172
+ listNotFoundReturnsDetailWithNullSession: true,
173
+ listNotFoundExitCode: 0,
174
+ adaptersMustNotParseHumanTranscriptOutput: true,
175
+ },
176
+ };
177
+ const specCommandActionOptionsSchema = z
178
+ .object({
179
+ description: nonEmptyStringSchema,
180
+ agent: z.array(nonEmptyStringSchema).optional(),
181
+ profile: nonEmptyStringSchema.optional(),
182
+ maxParallel: positiveIntegerSchema.optional(),
183
+ title: nonEmptyStringSchema.optional(),
184
+ extraContext: z.array(nonEmptyStringSchema).optional(),
185
+ json: z.boolean().optional(),
186
+ })
187
+ .strict();
188
+ const runCommandActionOptionsSchema = z
189
+ .object({
190
+ spec: nonEmptyStringSchema,
191
+ agent: z.array(nonEmptyStringSchema).optional(),
192
+ profile: nonEmptyStringSchema.optional(),
193
+ maxParallel: positiveIntegerSchema.optional(),
194
+ branch: z.boolean().optional(),
195
+ extraContext: z.array(nonEmptyStringSchema).optional(),
196
+ json: z.boolean().optional(),
197
+ })
198
+ .strict();
199
+ const reduceCommandActionOptionsSchema = z
200
+ .object({
201
+ spec: nonEmptyStringSchema.optional(),
202
+ run: nonEmptyStringSchema.optional(),
203
+ reduce: nonEmptyStringSchema.optional(),
204
+ verify: nonEmptyStringSchema.optional(),
205
+ message: nonEmptyStringSchema.optional(),
206
+ agent: z.array(nonEmptyStringSchema).optional(),
207
+ profile: nonEmptyStringSchema.optional(),
208
+ maxParallel: positiveIntegerSchema.optional(),
209
+ extraContext: z.array(nonEmptyStringSchema).optional(),
210
+ json: z.boolean().optional(),
211
+ })
212
+ .strict();
213
+ const messageCommandActionOptionsSchema = z
214
+ .object({
215
+ prompt: nonEmptyStringSchema,
216
+ agent: z.array(nonEmptyStringSchema).optional(),
217
+ profile: nonEmptyStringSchema.optional(),
218
+ maxParallel: positiveIntegerSchema.optional(),
219
+ extraContext: z.array(nonEmptyStringSchema).optional(),
220
+ json: z.boolean().optional(),
221
+ })
222
+ .strict();
223
+ const verifyCommandActionOptionsSchema = z
224
+ .object({
225
+ spec: nonEmptyStringSchema.optional(),
226
+ run: nonEmptyStringSchema.optional(),
227
+ reduce: nonEmptyStringSchema.optional(),
228
+ message: nonEmptyStringSchema.optional(),
229
+ agent: z.array(nonEmptyStringSchema).optional(),
230
+ profile: nonEmptyStringSchema.optional(),
231
+ maxParallel: positiveIntegerSchema.optional(),
232
+ extraContext: z.array(nonEmptyStringSchema).optional(),
233
+ json: z.boolean().optional(),
234
+ })
235
+ .strict();
236
+ const applyCommandActionOptionsSchema = z
237
+ .object({
238
+ run: nonEmptyStringSchema,
239
+ agent: nonEmptyStringSchema,
240
+ ignoreBaseMismatch: z.boolean().optional(),
241
+ commit: z.boolean().optional(),
242
+ json: z.boolean().optional(),
243
+ })
244
+ .strict();
245
+ const listCommandActionOptionsSchema = z
246
+ .object({
247
+ spec: z.union([z.literal(true), nonEmptyStringSchema]).optional(),
248
+ run: z.union([z.literal(true), nonEmptyStringSchema]).optional(),
249
+ reduce: z.union([z.literal(true), nonEmptyStringSchema]).optional(),
250
+ verify: z.union([z.literal(true), nonEmptyStringSchema]).optional(),
251
+ message: z.union([z.literal(true), nonEmptyStringSchema]).optional(),
252
+ limit: positiveIntegerSchema.optional(),
253
+ verbose: z.boolean().optional(),
254
+ json: z.boolean().optional(),
255
+ })
256
+ .strict();
257
+ const pruneCommandActionOptionsSchema = z
258
+ .object({
259
+ run: nonEmptyStringSchema.optional(),
260
+ all: z.boolean().optional(),
261
+ purge: z.boolean().optional(),
262
+ yes: z.boolean().optional(),
263
+ json: z.boolean().optional(),
264
+ })
265
+ .strict();
266
+ export function parseSpecExecutionCommandOptions(options, command) {
267
+ const parsed = parseCommandOptions(specCommandActionOptionsSchema, options, command);
268
+ return parseCommandOptions(externalSpecExecutionInputSchema, {
269
+ description: parsed.description,
270
+ agentIds: normalizeOptionalStringArray(parsed.agent),
271
+ profile: parsed.profile,
272
+ maxParallel: parsed.maxParallel,
273
+ title: parsed.title,
274
+ extraContext: normalizeOptionalStringArray(parsed.extraContext),
275
+ }, command);
276
+ }
277
+ export function parseRunExecutionCommandOptions(options, command) {
278
+ const parsed = parseCommandOptions(runCommandActionOptionsSchema, options, command);
279
+ return parseCommandOptions(externalRunExecutionInputSchema, {
280
+ specPath: parsed.spec,
281
+ agentIds: normalizeOptionalStringArray(parsed.agent),
282
+ profile: parsed.profile,
283
+ maxParallel: parsed.maxParallel,
284
+ branch: normalizeOptionalBoolean(parsed.branch),
285
+ extraContext: normalizeOptionalStringArray(parsed.extraContext),
286
+ }, command);
287
+ }
288
+ export function parseReduceExecutionCommandOptions(options, command) {
289
+ const parsed = parseCommandOptions(reduceCommandActionOptionsSchema, options, command);
290
+ const selected = resolveExclusiveStringSelection([
291
+ { key: "spec", flag: "--spec", value: "spec" },
292
+ { key: "run", flag: "--run", value: "run" },
293
+ { key: "reduce", flag: "--reduce", value: "reduce" },
294
+ { key: "verify", flag: "--verify", value: "verify" },
295
+ { key: "message", flag: "--message", value: "message" },
296
+ ], parsed, command, "target flag");
297
+ return parseCommandOptions(externalReduceExecutionInputSchema, {
298
+ target: {
299
+ type: selected.value,
300
+ id: selected.argument,
301
+ },
302
+ agentIds: normalizeOptionalStringArray(parsed.agent),
303
+ profile: parsed.profile,
304
+ maxParallel: parsed.maxParallel,
305
+ extraContext: normalizeOptionalStringArray(parsed.extraContext),
306
+ }, command);
307
+ }
308
+ export function parseMessageExecutionCommandOptions(options, command) {
309
+ const parsed = parseCommandOptions(messageCommandActionOptionsSchema, options, command);
310
+ return parseCommandOptions(externalMessageExecutionInputSchema, {
311
+ prompt: parsed.prompt,
312
+ agentIds: normalizeOptionalStringArray(parsed.agent),
313
+ profile: parsed.profile,
314
+ maxParallel: parsed.maxParallel,
315
+ extraContext: normalizeOptionalStringArray(parsed.extraContext),
316
+ }, command);
317
+ }
318
+ export function parseVerifyExecutionCommandOptions(options, command) {
319
+ const parsed = parseCommandOptions(verifyCommandActionOptionsSchema, options, command);
320
+ const selected = resolveExclusiveStringSelection([
321
+ { key: "spec", flag: "--spec", value: "spec" },
322
+ { key: "run", flag: "--run", value: "run" },
323
+ { key: "reduce", flag: "--reduce", value: "reduce" },
324
+ { key: "message", flag: "--message", value: "message" },
325
+ ], parsed, command, "target flag");
326
+ return parseCommandOptions(externalVerifyExecutionInputSchema, {
327
+ target: {
328
+ kind: selected.value,
329
+ sessionId: selected.argument,
330
+ },
331
+ agentIds: normalizeOptionalStringArray(parsed.agent),
332
+ profile: parsed.profile,
333
+ maxParallel: parsed.maxParallel,
334
+ extraContext: normalizeOptionalStringArray(parsed.extraContext),
335
+ }, command);
336
+ }
337
+ export function parseApplyExecutionCommandOptions(options, command) {
338
+ const parsed = parseCommandOptions(applyCommandActionOptionsSchema, options, command);
339
+ return parseCommandOptions(externalApplyExecutionInputSchema, {
340
+ runId: parsed.run,
341
+ agentId: parsed.agent,
342
+ ignoreBaseMismatch: normalizeOptionalBoolean(parsed.ignoreBaseMismatch),
343
+ commit: normalizeOptionalBoolean(parsed.commit),
344
+ }, command);
345
+ }
346
+ export function parseExternalPruneExecutionInput(input) {
347
+ const result = externalPruneExecutionInputSchema.safeParse(input);
348
+ if (result.success) {
349
+ return result.data;
350
+ }
351
+ const requiresConfirmation = result.error.issues.some((issue) => issue.path.length === 1 &&
352
+ issue.path[0] === "confirmed" &&
353
+ issue.code === "invalid_value");
354
+ if (requiresConfirmation) {
355
+ throw new Error("JSON-mode prune requires explicit confirmation.");
356
+ }
357
+ const firstIssue = result.error.issues[0];
358
+ throw new Error(firstIssue?.message ?? "Invalid external prune execution input.");
359
+ }
360
+ export function parseListInspectionCommandOptions(options, command) {
361
+ const parsed = parseCommandOptions(listCommandActionOptionsSchema, options, command);
362
+ const selected = resolveExclusiveOptionalStringSelection([
363
+ { key: "spec", flag: "--spec", value: "spec" },
364
+ { key: "run", flag: "--run", value: "run" },
365
+ { key: "reduce", flag: "--reduce", value: "reduce" },
366
+ { key: "verify", flag: "--verify", value: "verify" },
367
+ { key: "message", flag: "--message", value: "message" },
368
+ ], parsed, command, "operator flag");
369
+ return parseCommandOptions(externalListInspectionInputSchema, {
370
+ operator: selected.value,
371
+ mode: selected.argument ? "detail" : "table",
372
+ ...(selected.argument ? { sessionId: selected.argument } : {}),
373
+ limit: parsed.limit,
374
+ verbose: normalizeOptionalBoolean(parsed.verbose),
375
+ }, command);
376
+ }
377
+ export function parsePruneCommandSelection(options, command) {
378
+ const parsed = parseCommandOptions(pruneCommandActionOptionsSchema, options, command);
379
+ const hasRun = typeof parsed.run === "string" && parsed.run.length > 0;
380
+ const wantsAll = Boolean(parsed.all);
381
+ if (!hasRun && !wantsAll) {
382
+ failCommand(command, "either --run <run-id> or --all must be provided");
383
+ }
384
+ return {
385
+ runId: parsed.run,
386
+ all: wantsAll,
387
+ purge: normalizeOptionalBoolean(parsed.purge),
388
+ yes: normalizeOptionalBoolean(parsed.yes),
389
+ };
390
+ }
391
+ function parseCommandOptions(schema, input, command) {
392
+ const result = schema.safeParse(input);
393
+ if (result.success) {
394
+ return result.data;
395
+ }
396
+ const firstIssue = result.error.issues[0];
397
+ const path = firstIssue && firstIssue.path.length > 0
398
+ ? `${formatIssuePath(firstIssue.path)} `
399
+ : "";
400
+ failCommand(command, `${path}${firstIssue?.message ?? "contains invalid values"}`.trim());
401
+ }
402
+ function resolveExclusiveStringSelection(definitions, options, command, subject) {
403
+ const entries = definitions
404
+ .map((definition) => ({
405
+ ...definition,
406
+ argument: options[definition.key],
407
+ }))
408
+ .filter((entry) => typeof entry.argument === "string" && entry.argument.length > 0);
409
+ if (entries.length !== 1) {
410
+ failExclusiveSelection(command, subject, definitions, entries);
411
+ }
412
+ const selected = entries[0];
413
+ if (!selected) {
414
+ failExclusiveSelection(command, subject, definitions, entries);
415
+ }
416
+ return selected;
417
+ }
418
+ function resolveExclusiveOptionalStringSelection(definitions, options, command, subject) {
419
+ const entries = definitions
420
+ .map((definition) => ({
421
+ ...definition,
422
+ raw: options[definition.key],
423
+ }))
424
+ .filter((entry) => entry.raw !== undefined);
425
+ if (entries.length !== 1) {
426
+ failExclusiveSelection(command, subject, definitions, entries);
427
+ }
428
+ const selected = entries[0];
429
+ if (!selected) {
430
+ failExclusiveSelection(command, subject, definitions, entries);
431
+ }
432
+ return {
433
+ value: selected.value,
434
+ argument: typeof selected.raw === "string" ? selected.raw : undefined,
435
+ };
436
+ }
437
+ function failExclusiveSelection(command, subject, definitions, entries) {
438
+ const flags = formatFlagList(definitions.map((definition) => definition.flag));
439
+ const detail = entries.length === 0
440
+ ? `No ${subject} was provided.`
441
+ : `Provided: ${entries.map((entry) => entry.flag).join(", ")}.`;
442
+ failCommand(command, `exactly one ${subject} is required: ${flags} (${detail})`);
443
+ }
444
+ function failCommand(command, message) {
445
+ command.error(`error: ${message}`, { exitCode: 1 });
446
+ throw new Error("Unreachable");
447
+ }
448
+ function formatFlagList(flags) {
449
+ if (flags.length === 0) {
450
+ return "";
451
+ }
452
+ if (flags.length === 1) {
453
+ return `\`${flags[0]}\``;
454
+ }
455
+ if (flags.length === 2) {
456
+ return `\`${flags[0]}\` or \`${flags[1]}\``;
457
+ }
458
+ const head = flags
459
+ .slice(0, -1)
460
+ .map((flag) => `\`${flag}\``)
461
+ .join(", ");
462
+ const tail = flags[flags.length - 1];
463
+ return `${head}, or \`${tail}\``;
464
+ }
465
+ function formatIssuePath(path) {
466
+ if (path.length === 0) {
467
+ return "input";
468
+ }
469
+ const rendered = path
470
+ .filter((part) => typeof part !== "symbol")
471
+ .map(String)
472
+ .join(".");
473
+ return `${rendered} must`;
474
+ }
475
+ function normalizeOptionalStringArray(value) {
476
+ return value && value.length > 0 ? [...value] : undefined;
477
+ }
478
+ function normalizeOptionalBoolean(value) {
479
+ return value ? true : undefined;
480
+ }
@@ -5,4 +5,7 @@ export declare class CliError extends HintedError {
5
5
  export declare class NonInteractiveShellError extends CliError {
6
6
  constructor();
7
7
  }
8
+ export declare class RunNotFoundCliError extends CliError {
9
+ constructor(runId: string);
10
+ }
8
11
  export declare function toCliError(error: unknown): CliError;
@@ -1,16 +1,28 @@
1
1
  import { HintedError, toErrorMessage } from "../utils/errors.js";
2
+ const DEFAULT_CLI_ERROR_HINT = "Inspect the error details and retry.";
2
3
  export class CliError extends HintedError {
3
- constructor(headline, detailLines = [], hintLines = []) {
4
- super(headline, { detailLines, hintLines });
4
+ constructor(headline, detailLines = [], hintLines) {
5
+ super(headline, {
6
+ detailLines,
7
+ hintLines: hintLines === undefined
8
+ ? [DEFAULT_CLI_ERROR_HINT]
9
+ : Array.from(hintLines),
10
+ });
5
11
  this.name = "CliError";
6
12
  }
7
13
  }
8
14
  export class NonInteractiveShellError extends CliError {
9
15
  constructor() {
10
- super("Non-interactive shell detected; re-run with --yes to accept defaults.");
16
+ super("Interactive confirmation is required.", [], ["Re-run with `--yes` to accept defaults."]);
11
17
  this.name = "NonInteractiveShellError";
12
18
  }
13
19
  }
20
+ export class RunNotFoundCliError extends CliError {
21
+ constructor(runId) {
22
+ super(`Run \`${runId}\` not found.`, [], ["Check available runs with `voratiq list --run`."]);
23
+ this.name = "RunNotFoundCliError";
24
+ }
25
+ }
14
26
  export function toCliError(error) {
15
27
  if (error instanceof CliError) {
16
28
  return error;
@@ -18,5 +30,11 @@ export function toCliError(error) {
18
30
  if (error instanceof HintedError) {
19
31
  return new CliError(error.headline, error.detailLines, error.hintLines);
20
32
  }
33
+ if (error instanceof AggregateError) {
34
+ const detailLines = error.errors
35
+ .slice(0, 3)
36
+ .map((entry) => toErrorMessage(entry));
37
+ return new CliError("Multiple errors occurred.", detailLines);
38
+ }
21
39
  return new CliError(toErrorMessage(error));
22
40
  }
@@ -1,10 +1,15 @@
1
1
  import { Command } from "commander";
2
2
  import type { InitCommandResult } from "../commands/init/types.js";
3
+ import type { AgentPreset } from "../workspace/templates.js";
4
+ import { type CommandOutputWriter } from "./output.js";
3
5
  export interface RunInitCommandResult extends InitCommandResult {
4
6
  body: string;
5
7
  }
6
8
  export interface InitCommandOptions {
7
9
  yes?: boolean;
10
+ preset?: AgentPreset;
11
+ presetProvided?: boolean;
12
+ writeOutput?: CommandOutputWriter;
8
13
  }
9
14
  export declare function runInitCommand(options?: InitCommandOptions): Promise<RunInitCommandResult>;
10
15
  export declare function createInitCommand(): Command;
package/dist/cli/init.js CHANGED
@@ -1,27 +1,46 @@
1
- import { Command } from "commander";
1
+ import { Command, Option } from "commander";
2
2
  import { executeInitCommand } from "../commands/init/command.js";
3
3
  import { resolveCliContext } from "../preflight/index.js";
4
4
  import { renderInitTranscript } from "../render/transcripts/init.js";
5
+ import { AGENT_PRESET_CHOICES } from "../workspace/templates.js";
5
6
  import { createConfirmationWorkflow } from "./confirmation.js";
6
7
  import { NonInteractiveShellError } from "./errors.js";
7
8
  import { writeCommandOutput } from "./output.js";
8
9
  export async function runInitCommand(options = {}) {
10
+ const { writeOutput = writeCommandOutput } = options;
11
+ writeOutput({
12
+ alerts: [{ severity: "info", message: "Initializing Voratiq…" }],
13
+ });
9
14
  const { root } = await resolveCliContext({ requireWorkspace: false });
10
15
  const assumeYes = Boolean(options.yes);
16
+ const preset = options.preset ?? "pro";
17
+ const presetProvided = Boolean(options.presetProvided);
11
18
  const confirmation = createConfirmationWorkflow({
12
19
  assumeYes,
13
20
  onUnavailable: () => {
14
21
  throw new NonInteractiveShellError();
15
22
  },
16
23
  });
24
+ let wroteConfiguringPreface = false;
17
25
  try {
18
26
  const initResult = await executeInitCommand({
19
27
  root,
28
+ preset,
29
+ presetProvided,
30
+ onPresetResolved: () => {
31
+ writeOutput({
32
+ alerts: [{ severity: "info", message: "Configuring workspace…" }],
33
+ });
34
+ wroteConfiguringPreface = true;
35
+ },
36
+ assumeYes,
20
37
  interactive: confirmation.interactive,
21
38
  confirm: confirmation.confirm,
22
39
  prompt: confirmation.prompt,
23
40
  });
24
- const body = renderInitTranscript(initResult);
41
+ const body = renderInitTranscript(initResult, {
42
+ includeConfigurationHeading: !wroteConfiguringPreface,
43
+ });
25
44
  return { ...initResult, body };
26
45
  }
27
46
  finally {
@@ -29,12 +48,21 @@ export async function runInitCommand(options = {}) {
29
48
  }
30
49
  }
31
50
  export function createInitCommand() {
51
+ const presetOption = new Option("--preset <preset>", "Select a preset")
52
+ .choices(AGENT_PRESET_CHOICES)
53
+ .default("pro");
32
54
  return new Command("init")
33
- .description("Bootstrap the Voratiq workspace")
34
- .option("-y, --yes", "Assume yes for all prompts")
55
+ .description("Initialize the Voratiq workspace")
56
+ .addOption(presetOption)
57
+ .option("-y, --yes", "Assume yes and accept defaults")
35
58
  .allowExcessArguments(false)
36
- .action(async (commandOptions) => {
37
- const result = await runInitCommand(commandOptions);
59
+ .action(async (commandOptions, command) => {
60
+ const presetSource = command.getOptionValueSource("preset");
61
+ const presetProvided = typeof presetSource === "string" && presetSource !== "default";
62
+ const result = await runInitCommand({
63
+ ...commandOptions,
64
+ presetProvided,
65
+ });
38
66
  writeCommandOutput({
39
67
  body: result.body,
40
68
  });
@@ -1,14 +1,16 @@
1
1
  import { Command } from "commander";
2
+ import type { ListJsonOutput, ListOperator } from "../contracts/list.js";
2
3
  import { type Alert } from "./output.js";
3
4
  export interface ListCommandOptions {
5
+ operator: ListOperator;
6
+ sessionId?: string;
4
7
  limit?: number;
5
- spec?: string;
6
- run?: string;
7
- includePruned?: boolean;
8
+ verbose?: boolean;
8
9
  }
9
10
  export interface ListCommandResult {
10
11
  alerts: Alert[];
11
12
  body: string;
13
+ json: ListJsonOutput;
12
14
  }
13
- export declare function runListCommand(options?: ListCommandOptions): Promise<ListCommandResult>;
15
+ export declare function runListCommand(options: ListCommandOptions): Promise<ListCommandResult>;
14
16
  export declare function createListCommand(): Command;