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,45 @@
1
+ import { executeCompetitionWithAdapter } from "../../../competition/command-adapter.js";
2
+ import { createRunCompetitionAdapter } from "../../../domain/run/competition/adapter.js";
3
+ import { RunProcessStreamError } from "../../../domain/run/competition/errors.js";
4
+ import { toError } from "../../../utils/errors.js";
5
+ /**
6
+ * Execute all agents and aggregate results.
7
+ */
8
+ export async function executeAgents(input) {
9
+ const { agents, baseRevisionSha, runId, root, specContent, extraContextFiles, effectiveMaxParallel, mutators, environment, } = input;
10
+ let executionError;
11
+ let phaseResult;
12
+ try {
13
+ const sortedExecutions = await executeCompetitionWithAdapter({
14
+ candidates: agents,
15
+ maxParallel: effectiveMaxParallel,
16
+ adapter: createRunCompetitionAdapter({
17
+ baseRevisionSha,
18
+ runId,
19
+ root,
20
+ specContent,
21
+ extraContextFiles,
22
+ mutators,
23
+ environment,
24
+ }),
25
+ });
26
+ const agentRecords = sortedExecutions.map((execution) => execution.record);
27
+ const agentReports = sortedExecutions.map((execution) => execution.report);
28
+ const hadAgentFailure = agentReports.some((report) => report.status === "failed" || report.status === "errored");
29
+ phaseResult = {
30
+ agentRecords,
31
+ agentReports,
32
+ hadAgentFailure,
33
+ };
34
+ }
35
+ catch (error) {
36
+ executionError = error;
37
+ }
38
+ if (executionError) {
39
+ throw new RunProcessStreamError(toError(executionError).message);
40
+ }
41
+ if (!phaseResult) {
42
+ throw new RunProcessStreamError(`Agent execution did not produce a result for run \`${runId}\`.`);
43
+ }
44
+ return phaseResult;
45
+ }
@@ -0,0 +1,12 @@
1
+ import type { AgentDefinition } from "../../../configs/agents/types.js";
2
+ import type { EnvironmentConfig } from "../../../configs/environment/types.js";
3
+ import type { AgentPreparationResult } from "./agents/types.js";
4
+ export declare function prepareAgents(options: {
5
+ agents: readonly AgentDefinition[];
6
+ baseRevisionSha: string;
7
+ runId: string;
8
+ root: string;
9
+ specContent: string;
10
+ extraContextFiles: readonly import("../../../competition/shared/extra-context.js").ResolvedExtraContextFile[];
11
+ environment: EnvironmentConfig;
12
+ }): Promise<AgentPreparationResult>;
@@ -0,0 +1,24 @@
1
+ import { prepareAgentForExecution } from "./agents/preparation.js";
2
+ export async function prepareAgents(options) {
3
+ const { agents, baseRevisionSha, runId, root, specContent, extraContextFiles, environment, } = options;
4
+ const ready = [];
5
+ const failures = [];
6
+ for (const agent of agents) {
7
+ const preparation = await prepareAgentForExecution({
8
+ agent,
9
+ baseRevisionSha,
10
+ runId,
11
+ root,
12
+ specContent,
13
+ extraContextFiles,
14
+ environment,
15
+ });
16
+ if (preparation.status === "ready") {
17
+ ready.push(preparation.prepared);
18
+ }
19
+ else {
20
+ failures.push(preparation.result);
21
+ }
22
+ }
23
+ return { ready, failures };
24
+ }
@@ -0,0 +1,17 @@
1
+ import type { EnvironmentConfig } from "../../../../configs/environment/types.js";
2
+ import type { SandboxPersona } from "../../../../workspace/agents.js";
3
+ import { type RunAgentWorkspacePaths } from "./workspace.js";
4
+ export interface ArtifactCollectionResult {
5
+ summaryCaptured: boolean;
6
+ diffStatistics?: string;
7
+ commitSha?: string;
8
+ diffAttempted: boolean;
9
+ diffCaptured: boolean;
10
+ }
11
+ export declare function collectAgentArtifacts(options: {
12
+ baseRevisionSha: string;
13
+ workspacePaths: RunAgentWorkspacePaths;
14
+ root: string;
15
+ environment: EnvironmentConfig;
16
+ persona: SandboxPersona;
17
+ }): Promise<ArtifactCollectionResult>;
@@ -0,0 +1,173 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { relative } from "node:path";
3
+ import { AgentProcessError, GitOperationError, } from "../../../../domain/run/competition/errors.js";
4
+ import { toErrorMessage } from "../../../../utils/errors.js";
5
+ import { isFileSystemError } from "../../../../utils/fs.js";
6
+ import { gitAddAll, gitCommitAll, gitDiff, gitDiffShortStat, gitHasStagedChanges, runGitCommand, } from "../../../../utils/git.js";
7
+ import { enforceCredentialExclusion } from "../../../../workspace/credential-guard.js";
8
+ import { cleanupWorkspaceDependencies, ensureWorkspaceDependencies, WorkspaceDependencyCleanupError, } from "../../../../workspace/dependencies.js";
9
+ import { promoteWorkspaceFile } from "../../../../workspace/promotion.js";
10
+ import { WORKSPACE_SUMMARY_FILENAME, } from "./workspace.js";
11
+ export async function collectAgentArtifacts(options) {
12
+ const { baseRevisionSha, workspacePaths, root, environment, persona } = options;
13
+ const { workspacePath, artifactsPath, summaryPath, diffPath } = workspacePaths;
14
+ let dependenciesCleanup = {
15
+ nodeRemoved: false,
16
+ pythonRemoved: false,
17
+ };
18
+ let cleanupFailed = false;
19
+ try {
20
+ dependenciesCleanup = await cleanupWorkspaceDependencies({
21
+ root,
22
+ workspacePath,
23
+ environment,
24
+ });
25
+ }
26
+ catch (error) {
27
+ cleanupFailed = true;
28
+ if (error instanceof WorkspaceDependencyCleanupError) {
29
+ dependenciesCleanup = error.cleanup;
30
+ }
31
+ }
32
+ let runFailed = true;
33
+ let artifactResult;
34
+ let dependencyRestoreError;
35
+ try {
36
+ await runGitStep("Git add failed", async () => gitAddAll(workspacePath));
37
+ const hasChangesBeforeSummary = await gitHasStagedChanges(workspacePath);
38
+ if (!hasChangesBeforeSummary) {
39
+ throw new AgentProcessError({
40
+ detail: "Agent process failed. No workspace changes detected.",
41
+ });
42
+ }
43
+ const { summary } = await harvestSummary({
44
+ workspacePath,
45
+ artifactsPath,
46
+ summaryPath,
47
+ });
48
+ await runGitStep("Git add failed", async () => gitAddAll(workspacePath));
49
+ const hasChanges = await gitHasStagedChanges(workspacePath);
50
+ if (!hasChanges) {
51
+ throw new AgentProcessError({
52
+ detail: "Agent process failed. No workspace changes detected.",
53
+ });
54
+ }
55
+ let diffStatistics;
56
+ let commitSha;
57
+ await runGitStep("Git commit failed", async () => gitCommitAll({
58
+ cwd: workspacePath,
59
+ message: summary,
60
+ authorName: persona.authorName,
61
+ authorEmail: persona.authorEmail,
62
+ bypassHooks: true,
63
+ }));
64
+ commitSha = await runGitStep("Git rev-parse failed", async () => runGitCommand(["rev-parse", "HEAD"], { cwd: workspacePath }));
65
+ const diffContent = await runGitStep("Git diff failed", async () => gitDiff({
66
+ cwd: workspacePath,
67
+ baseRevision: baseRevisionSha,
68
+ targetRevision: "HEAD",
69
+ }));
70
+ await enforceCredentialExclusion({
71
+ workspacePath,
72
+ diffContent,
73
+ });
74
+ await writeFile(diffPath, diffContent, { encoding: "utf8" });
75
+ diffStatistics = await runGitStep("Git diff --shortstat failed", async () => gitDiffShortStat({
76
+ cwd: workspacePath,
77
+ baseRevision: baseRevisionSha,
78
+ targetRevision: "HEAD",
79
+ }));
80
+ runFailed = false;
81
+ artifactResult = {
82
+ summaryCaptured: true,
83
+ diffStatistics,
84
+ commitSha,
85
+ diffAttempted: true,
86
+ diffCaptured: true,
87
+ };
88
+ }
89
+ finally {
90
+ const cleanupTouched = dependenciesCleanup.nodeRemoved || dependenciesCleanup.pythonRemoved;
91
+ const shouldRestoreDependencies = cleanupTouched || cleanupFailed;
92
+ if (shouldRestoreDependencies) {
93
+ try {
94
+ await ensureWorkspaceDependencies({
95
+ root,
96
+ workspacePath,
97
+ environment,
98
+ });
99
+ }
100
+ catch (error) {
101
+ if (!runFailed) {
102
+ dependencyRestoreError = new AgentProcessError({
103
+ detail: `[voratiq] Failed to restore workspace dependencies after export: ${toErrorMessage(error)}`,
104
+ });
105
+ }
106
+ }
107
+ }
108
+ }
109
+ if (dependencyRestoreError) {
110
+ throw dependencyRestoreError;
111
+ }
112
+ if (!artifactResult) {
113
+ throw new AgentProcessError({
114
+ detail: "Agent process failed before artifacts were collected.",
115
+ });
116
+ }
117
+ return artifactResult;
118
+ }
119
+ const NO_CHANGE_SUMMARY_DETAIL = "Agent process failed. No change summary detected.";
120
+ async function harvestSummary(options) {
121
+ const { workspacePath, artifactsPath, summaryPath } = options;
122
+ try {
123
+ const { summary } = await promoteSummary({
124
+ workspacePath,
125
+ artifactsPath,
126
+ summaryPath,
127
+ });
128
+ return { summary };
129
+ }
130
+ catch (error) {
131
+ if (error instanceof AgentProcessError) {
132
+ throw error;
133
+ }
134
+ if (isFileSystemError(error) && error.code === "ENOENT") {
135
+ throw new AgentProcessError({ detail: NO_CHANGE_SUMMARY_DETAIL });
136
+ }
137
+ throw new AgentProcessError({ detail: toErrorMessage(error) });
138
+ }
139
+ }
140
+ async function promoteSummary(options) {
141
+ const { workspacePath, artifactsPath, summaryPath } = options;
142
+ let trimmed;
143
+ const promoteResult = await promoteWorkspaceFile({
144
+ workspacePath,
145
+ artifactsPath,
146
+ stagedRelativePath: WORKSPACE_SUMMARY_FILENAME,
147
+ artifactRelativePath: relative(artifactsPath, summaryPath),
148
+ transform: (raw) => {
149
+ const candidate = raw.toString("utf8").trim();
150
+ if (!candidate) {
151
+ throw new AgentProcessError({
152
+ detail: NO_CHANGE_SUMMARY_DETAIL,
153
+ });
154
+ }
155
+ trimmed = candidate;
156
+ return `${candidate}\n`;
157
+ },
158
+ });
159
+ return {
160
+ summary: trimmed ?? (await readFile(promoteResult.artifactPath, "utf8")).trim(),
161
+ };
162
+ }
163
+ async function runGitStep(operationMessage, step) {
164
+ try {
165
+ return await step();
166
+ }
167
+ catch (error) {
168
+ throw new GitOperationError({
169
+ operation: operationMessage,
170
+ detail: toErrorMessage(error),
171
+ });
172
+ }
173
+ }
@@ -1,6 +1,6 @@
1
- import type { AgentInvocationRecord } from "../../../records/types.js";
2
- import { RunCommandError } from "../errors.js";
3
- import type { AgentExecutionResult } from "../reports.js";
1
+ import { RunCommandError } from "../../../../domain/run/competition/errors.js";
2
+ import type { AgentExecutionResult } from "../../../../domain/run/competition/reports.js";
3
+ import type { AgentInvocationRecord } from "../../../../domain/run/model/types.js";
4
4
  import { AgentRunContext } from "./run-context.js";
5
5
  import type { PreparedAgentExecution } from "./types.js";
6
6
  export declare function runPreparedAgent(execution: PreparedAgentExecution): Promise<AgentExecutionResult>;
@@ -1,24 +1,19 @@
1
- import { loadSandboxProviderConfig } from "../../../configs/sandbox/loader.js";
2
- import { toErrorMessage } from "../../../utils/errors.js";
3
- import { GIT_AUTHOR_EMAIL, GIT_AUTHOR_NAME } from "../../../utils/git.js";
4
- import { AgentProcessError, GitOperationError, RunCommandError, } from "../errors.js";
5
- import { DEFAULT_DENIAL_BACKOFF, } from "../sandbox.js";
6
- import { teardownRegisteredSandboxContext } from "../sandbox-registry.js";
7
- import { captureAgentChatTranscripts } from "./chat-preserver.js";
8
- import { runPostProcessingAndEvaluations } from "./eval-runner.js";
9
- import { detectAgentProcessFailureDetail } from "./failures.js";
10
- import { runAgentProcess } from "./sandbox-launcher.js";
11
- import { WATCHDOG_DEFAULTS } from "./watchdog.js";
1
+ import { detectAgentProcessFailureDetail } from "../../../../agents/runtime/failures.js";
2
+ import { runSandboxedAgent } from "../../../../agents/runtime/harness.js";
3
+ import { WATCHDOG_DEFAULTS, } from "../../../../agents/runtime/watchdog.js";
4
+ import { composeStageSandboxPolicy } from "../../../../competition/shared/sandbox-policy.js";
5
+ import { AgentProcessError, GitOperationError, RunCommandError, } from "../../../../domain/run/competition/errors.js";
6
+ import { toErrorMessage } from "../../../../utils/errors.js";
7
+ import { GIT_AUTHOR_EMAIL, GIT_AUTHOR_NAME } from "../../../../utils/git.js";
8
+ import { extractProviderNativeTokenUsageForSession } from "../../../../workspace/chat/native-usage.js";
9
+ import { VORATIQ_RUN_DIR } from "../../../../workspace/structure.js";
10
+ import { runPostProcessingAndCollectArtifacts } from "./post-processing.js";
12
11
  export async function runPreparedAgent(execution) {
13
- try {
14
- return await executeAgentLifecycle(execution);
15
- }
16
- finally {
17
- await teardownRegisteredSandboxContext(execution.authContext);
18
- }
12
+ return await executeAgentLifecycle(execution);
19
13
  }
20
14
  export async function executeAgentLifecycle(execution) {
21
- const { agentContext, agent, workspacePaths, baseRevisionSha, root, evalPlan, runtimeManifestPath, environment, manifestEnv, } = execution;
15
+ const { agentContext, agent, workspacePaths, baseRevisionSha, root, prompt, environment, } = execution;
16
+ let manifestEnv = {};
22
17
  // Set initial watchdog metadata (will be updated with trigger if fired)
23
18
  const initialWatchdog = {
24
19
  silenceTimeoutMs: WATCHDOG_DEFAULTS.silenceTimeoutMs,
@@ -46,28 +41,30 @@ export async function executeAgentLifecycle(execution) {
46
41
  void execution.progress.onEarlyFailure(earlyRecord);
47
42
  }
48
43
  };
49
- let denialBackoff = DEFAULT_DENIAL_BACKOFF;
50
- try {
51
- const sandboxProviderConfig = loadSandboxProviderConfig({
52
- root,
53
- providerId: agent.provider,
54
- });
55
- denialBackoff = sandboxProviderConfig.denialBackoff;
56
- }
57
- catch {
58
- // If sandbox.yaml is missing or invalid, fall back to defaults rather than
59
- // failing the entire agent lifecycle.
60
- }
61
- const processResult = await runAgentProcess({
62
- runtimeManifestPath,
63
- agentRoot: workspacePaths.agentRoot,
64
- stdoutPath: workspacePaths.stdoutPath,
65
- stderrPath: workspacePaths.stderrPath,
66
- sandboxSettingsPath: workspacePaths.sandboxSettingsPath,
67
- providerId: agent.provider,
44
+ const processResult = await runSandboxedAgent({
45
+ root,
46
+ sessionId: execution.runId,
47
+ sandboxStageId: "run",
48
+ agent,
49
+ prompt,
50
+ environment,
51
+ paths: {
52
+ agentRoot: workspacePaths.agentRoot,
53
+ workspacePath: workspacePaths.workspacePath,
54
+ sandboxHomePath: workspacePaths.sandboxHomePath,
55
+ runtimeManifestPath: workspacePaths.runtimeManifestPath,
56
+ sandboxSettingsPath: workspacePaths.sandboxSettingsPath,
57
+ runtimePath: workspacePaths.runtimePath,
58
+ artifactsPath: workspacePaths.artifactsPath,
59
+ stdoutPath: workspacePaths.stdoutPath,
60
+ stderrPath: workspacePaths.stderrPath,
61
+ },
62
+ captureChat: true,
63
+ teardownAuthOnExit: false,
64
+ ...composeStageSandboxPolicy({}),
68
65
  onWatchdogTrigger,
69
- denialBackoff,
70
66
  });
67
+ manifestEnv = processResult.manifestEnv;
71
68
  // Update watchdog metadata from process result (in case trigger came via watchdog)
72
69
  if (processResult.watchdog) {
73
70
  agentContext.setWatchdogMetadata(processResult.watchdog);
@@ -76,21 +73,33 @@ export async function executeAgentLifecycle(execution) {
76
73
  agentContext.setFailFastTriggered(processResult.failFast);
77
74
  }
78
75
  if (processResult.exitCode !== 0 || processResult.errorMessage) {
79
- // Use watchdog error message if available, otherwise detect from logs
80
- const failureDetail = processResult.watchdog?.trigger && processResult.errorMessage
81
- ? processResult.errorMessage
82
- : await detectAgentProcessFailureDetail({
83
- agentId: agent.id,
84
- provider: agent.provider,
85
- stdoutPath: workspacePaths.stdoutPath,
86
- stderrPath: workspacePaths.stderrPath,
87
- });
76
+ const watchdogTrigger = processResult.watchdog?.trigger;
77
+ const extractedDetail = await detectAgentProcessFailureDetail({
78
+ provider: agent.provider,
79
+ stdoutPath: workspacePaths.stdoutPath,
80
+ stderrPath: workspacePaths.stderrPath,
81
+ });
82
+ const fallbackError = processResult.errorMessage &&
83
+ isGenericProcessFailure(processResult.errorMessage)
84
+ ? undefined
85
+ : processResult.errorMessage;
86
+ const failureDetail = watchdogTrigger === "fatal-pattern"
87
+ ? (extractedDetail ?? fallbackError)
88
+ : (fallbackError ?? extractedDetail);
88
89
  const failure = new AgentProcessError({
89
90
  exitCode: processResult.exitCode,
90
91
  detail: failureDetail,
91
92
  });
92
93
  agentContext.markFailure(failure);
93
94
  }
95
+ if (processResult.chat?.captured && processResult.chat.format) {
96
+ agentContext.markChatArtifact(processResult.chat.format);
97
+ await tryExtractProviderNativeTokenUsage({
98
+ execution,
99
+ artifactPath: processResult.chat.artifactPath,
100
+ format: processResult.chat.format,
101
+ });
102
+ }
94
103
  }
95
104
  catch (rawError) {
96
105
  const failure = rawError instanceof RunCommandError
@@ -100,34 +109,19 @@ export async function executeAgentLifecycle(execution) {
100
109
  });
101
110
  agentContext.markFailure(failure);
102
111
  }
103
- await captureAgentChatTranscripts({
104
- agent,
105
- agentContext,
106
- agentRoot: workspacePaths.agentRoot,
107
- reason: "post-run",
108
- });
109
112
  if (agentContext.isFailed()) {
110
113
  agentContext.setCompleted();
111
114
  return finalizeExecution(execution, () => agentContext.finalize());
112
115
  }
113
116
  try {
114
- const postProcessResult = await runPostProcessingAndEvaluations({
115
- evalPlan,
117
+ const artifacts = await runPostProcessingAndCollectArtifacts({
116
118
  workspacePaths,
117
119
  baseRevisionSha,
118
120
  root,
119
- manifestEnv,
120
121
  environment,
121
122
  persona: resolveSandboxPersona(manifestEnv),
122
123
  });
123
- agentContext.applyArtifacts(postProcessResult.artifacts);
124
- if (postProcessResult.warnings.length > 0) {
125
- for (const warning of postProcessResult.warnings) {
126
- console.warn(`[voratiq] ${warning}`);
127
- }
128
- agentContext.recordEvalWarnings(postProcessResult.warnings);
129
- }
130
- agentContext.applyEvaluations(postProcessResult.evaluations);
124
+ agentContext.applyArtifacts(artifacts);
131
125
  }
132
126
  catch (rawError) {
133
127
  const failure = classifyPostProcessError(rawError);
@@ -161,6 +155,16 @@ export function classifyPostProcessError(error) {
161
155
  detail,
162
156
  });
163
157
  }
158
+ function isGenericProcessFailure(message) {
159
+ const trimmed = message.trim();
160
+ if (trimmed.startsWith("Agent exited with code ")) {
161
+ return true;
162
+ }
163
+ if (trimmed.startsWith("Agent terminated by signal ")) {
164
+ return true;
165
+ }
166
+ return false;
167
+ }
164
168
  async function finalizeExecution(execution, finalize) {
165
169
  const result = await finalize();
166
170
  if (execution.progress?.onCompleted) {
@@ -176,3 +180,19 @@ function resolveSandboxPersona(env) {
176
180
  authorEmail: env["GIT_AUTHOR_EMAIL"] ?? GIT_AUTHOR_EMAIL,
177
181
  };
178
182
  }
183
+ async function tryExtractProviderNativeTokenUsage(options) {
184
+ const { execution, artifactPath, format } = options;
185
+ const { agent, root, runId, agentContext } = execution;
186
+ const extracted = await extractProviderNativeTokenUsageForSession({
187
+ root,
188
+ domain: VORATIQ_RUN_DIR,
189
+ sessionId: runId,
190
+ agentId: agent.id,
191
+ provider: agent.provider,
192
+ modelId: agent.model,
193
+ chatCaptured: true,
194
+ format,
195
+ artifactPath,
196
+ });
197
+ agentContext.setTokenUsageResult(extracted);
198
+ }
@@ -0,0 +1,12 @@
1
+ import type { EnvironmentConfig } from "../../../../configs/environment/types.js";
2
+ import type { SandboxPersona } from "../../../../workspace/agents.js";
3
+ import { type ArtifactCollectionResult } from "./artifacts.js";
4
+ import type { RunAgentWorkspacePaths } from "./workspace.js";
5
+ export interface RunPostProcessingInput {
6
+ workspacePaths: RunAgentWorkspacePaths;
7
+ baseRevisionSha: string;
8
+ root: string;
9
+ environment: EnvironmentConfig;
10
+ persona: SandboxPersona;
11
+ }
12
+ export declare function runPostProcessingAndCollectArtifacts(input: RunPostProcessingInput): Promise<ArtifactCollectionResult>;
@@ -0,0 +1,4 @@
1
+ import { collectAgentArtifacts, } from "./artifacts.js";
2
+ export async function runPostProcessingAndCollectArtifacts(input) {
3
+ return await collectAgentArtifacts(input);
4
+ }
@@ -0,0 +1,64 @@
1
+ import { stageExtraContextFiles } from "../../../../competition/shared/extra-context.js";
2
+ import { RunCommandError } from "../../../../domain/run/competition/errors.js";
3
+ import { ensureWorkspaceError } from "../../../../workspace/agents.js";
4
+ import { buildRunPrompt } from "../prompt.js";
5
+ import { AgentRunContext } from "./run-context.js";
6
+ import { buildRunAgentWorkspace } from "./workspace.js";
7
+ export async function prepareAgentForExecution(context) {
8
+ const { agent, baseRevisionSha, runId, root, specContent, extraContextFiles, environment, } = context;
9
+ const startedAt = new Date().toISOString();
10
+ const agentContext = new AgentRunContext({
11
+ agent,
12
+ runId,
13
+ startedAt,
14
+ });
15
+ let workspacePaths;
16
+ try {
17
+ workspacePaths = await buildRunAgentWorkspace({
18
+ root,
19
+ runId,
20
+ agentId: agent.id,
21
+ baseRevisionSha,
22
+ environment,
23
+ });
24
+ }
25
+ catch (error) {
26
+ return {
27
+ status: "failed",
28
+ result: await agentContext.failWith(ensureWorkspaceFailure(error)),
29
+ };
30
+ }
31
+ try {
32
+ await stageExtraContextFiles({
33
+ contextPath: workspacePaths.contextPath,
34
+ files: extraContextFiles,
35
+ });
36
+ }
37
+ catch (error) {
38
+ return {
39
+ status: "failed",
40
+ result: await agentContext.failWith(ensureWorkspaceFailure(error)),
41
+ };
42
+ }
43
+ const prompt = buildRunPrompt({
44
+ specContent,
45
+ workspacePath: workspacePaths.workspacePath,
46
+ extraContextFiles,
47
+ });
48
+ return {
49
+ status: "ready",
50
+ prepared: {
51
+ agent,
52
+ agentContext,
53
+ workspacePaths: workspacePaths,
54
+ baseRevisionSha,
55
+ root,
56
+ runId,
57
+ prompt,
58
+ environment,
59
+ },
60
+ };
61
+ }
62
+ function ensureWorkspaceFailure(error) {
63
+ return error instanceof RunCommandError ? error : ensureWorkspaceError(error);
64
+ }
@@ -1,31 +1,27 @@
1
- import type { AgentDefinition } from "../../../configs/agents/types.js";
2
- import type { AgentEvalResult, EvalDefinition } from "../../../configs/evals/types.js";
3
- import type { AgentInvocationRecord, AgentStatus, WatchdogMetadata } from "../../../records/types.js";
4
- import type { ArtifactCollectionResult } from "../../../workspace/agents.js";
5
- import type { ChatArtifactFormat } from "../../../workspace/chat/types.js";
6
- import type { RunCommandError } from "../errors.js";
7
- import { type AgentExecutionResult, type AgentExecutionState } from "../reports.js";
8
- import type { SandboxFailFastInfo } from "../sandbox.js";
1
+ import type { SandboxFailFastInfo } from "../../../../agents/runtime/sandbox.js";
2
+ import type { AgentDefinition } from "../../../../configs/agents/types.js";
3
+ import type { RunCommandError } from "../../../../domain/run/competition/errors.js";
4
+ import { type AgentExecutionResult, type AgentExecutionState } from "../../../../domain/run/competition/reports.js";
5
+ import type { AgentInvocationRecord, AgentStatus, WatchdogMetadata } from "../../../../domain/run/model/types.js";
6
+ import type { TokenUsageResult } from "../../../../workspace/chat/token-usage-result.js";
7
+ import type { ChatArtifactFormat } from "../../../../workspace/chat/types.js";
8
+ import type { ArtifactCollectionResult } from "./artifacts.js";
9
9
  export declare class AgentRunContext {
10
10
  readonly state: AgentExecutionState;
11
11
  status: AgentStatus;
12
12
  commitSha: string | undefined;
13
- evalResults: AgentEvalResult[];
14
13
  errorMessage: string | undefined;
15
14
  watchdogMetadata: WatchdogMetadata | undefined;
16
15
  private failFast;
17
16
  private completedAt;
18
17
  private startedAt;
19
- private readonly evalPlan;
20
18
  private readonly runId;
21
19
  private readonly agent;
22
20
  private artifactState;
23
- private evalWarnings;
24
21
  constructor(params: {
25
22
  agent: AgentDefinition;
26
23
  runId: string;
27
24
  startedAt: string;
28
- evalPlan: readonly EvalDefinition[];
29
25
  });
30
26
  markFailure(error: RunCommandError): void;
31
27
  failWith(error: RunCommandError): Promise<AgentExecutionResult>;
@@ -34,16 +30,13 @@ export declare class AgentRunContext {
34
30
  markStarted(): void;
35
31
  getStartedAt(): string | undefined;
36
32
  applyArtifacts(result: ArtifactCollectionResult): void;
37
- applyEvaluations(results: AgentEvalResult[]): void;
38
33
  markChatArtifact(format: ChatArtifactFormat): void;
39
- recordEvalWarnings(warnings: readonly string[]): void;
40
34
  setWatchdogMetadata(metadata: WatchdogMetadata): void;
41
35
  setFailFastTriggered(info: SandboxFailFastInfo): void;
36
+ setTokenUsageResult(result: TokenUsageResult): void;
42
37
  finalize(): AgentExecutionResult;
43
38
  /**
44
39
  * Build an early failure record for immediate UI surfacing when watchdog triggers.
45
- * Includes placeholder evals so the record satisfies agentInvocationRecordSchema.
46
40
  */
47
41
  buildEarlyFailureRecord(errorMessage: string): AgentInvocationRecord;
48
42
  }
49
- export declare function buildDefaultEvalResults(definitions: readonly EvalDefinition[]): AgentEvalResult[];