voratiq 0.1.0-beta.2 → 0.1.0-beta.20

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 (507) 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 +338 -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 +298 -0
  46. package/dist/cli/contract.js +443 -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 +36 -16
  53. package/dist/cli/mcp.d.ts +2 -0
  54. package/dist/cli/mcp.js +16 -0
  55. package/dist/cli/operator-envelope.d.ts +159 -0
  56. package/dist/cli/operator-envelope.js +380 -0
  57. package/dist/cli/output.d.ts +15 -1
  58. package/dist/cli/output.js +153 -5
  59. package/dist/cli/prune.d.ts +7 -3
  60. package/dist/cli/prune.js +57 -12
  61. package/dist/cli/reduce.d.ts +29 -0
  62. package/dist/cli/reduce.js +208 -0
  63. package/dist/cli/root-launcher.d.ts +4 -0
  64. package/dist/cli/root-launcher.js +15 -0
  65. package/dist/cli/run.d.ts +27 -1
  66. package/dist/cli/run.js +108 -16
  67. package/dist/cli/spec.d.ts +31 -0
  68. package/dist/cli/spec.js +180 -0
  69. package/dist/cli/verify.d.ts +35 -0
  70. package/dist/cli/verify.js +293 -0
  71. package/dist/commands/apply/command.d.ts +2 -0
  72. package/dist/commands/apply/command.js +145 -6
  73. package/dist/commands/apply/errors.d.ts +43 -4
  74. package/dist/commands/apply/errors.js +100 -22
  75. package/dist/commands/apply/types.d.ts +2 -1
  76. package/dist/commands/auto/command.d.ts +145 -0
  77. package/dist/commands/auto/command.js +433 -0
  78. package/dist/commands/auto/errors.d.ts +19 -0
  79. package/dist/commands/auto/errors.js +19 -0
  80. package/dist/commands/auto/validation.d.ts +14 -0
  81. package/dist/commands/auto/validation.js +90 -0
  82. package/dist/commands/fetch.d.ts +2 -2
  83. package/dist/commands/fetch.js +4 -4
  84. package/dist/commands/init/agents.d.ts +2 -1
  85. package/dist/commands/init/agents.js +66 -63
  86. package/dist/commands/init/command.js +300 -16
  87. package/dist/commands/init/types.d.ts +18 -7
  88. package/dist/commands/interactive/lifecycle.d.ts +15 -0
  89. package/dist/commands/interactive/lifecycle.js +141 -0
  90. package/dist/commands/list/command.d.ts +9 -3
  91. package/dist/commands/list/command.js +487 -40
  92. package/dist/commands/prune/command.d.ts +2 -1
  93. package/dist/commands/prune/command.js +61 -10
  94. package/dist/commands/prune/errors.d.ts +1 -1
  95. package/dist/commands/prune/errors.js +5 -5
  96. package/dist/commands/prune/types.d.ts +21 -0
  97. package/dist/commands/reduce/command.d.ts +25 -0
  98. package/dist/commands/reduce/command.js +143 -0
  99. package/dist/commands/reduce/errors.d.ts +17 -0
  100. package/dist/commands/reduce/errors.js +32 -0
  101. package/dist/commands/reduce/targets.d.ts +10 -0
  102. package/dist/commands/reduce/targets.js +225 -0
  103. package/dist/commands/root-launcher/command.d.ts +31 -0
  104. package/dist/commands/root-launcher/command.js +233 -0
  105. package/dist/commands/run/command.d.ts +6 -1
  106. package/dist/commands/run/command.js +70 -40
  107. package/dist/commands/run/lifecycle.d.ts +7 -5
  108. package/dist/commands/run/lifecycle.js +45 -23
  109. package/dist/commands/run/record-init.d.ts +4 -1
  110. package/dist/commands/run/record-init.js +5 -2
  111. package/dist/commands/run/shim/run-agent-shim.d.ts +2 -1
  112. package/dist/commands/run/shim/run-agent-shim.js +4 -219
  113. package/dist/commands/run/validation.d.ts +2 -3
  114. package/dist/commands/run/validation.js +54 -25
  115. package/dist/commands/shared/max-parallel.d.ts +5 -0
  116. package/dist/commands/shared/max-parallel.js +15 -0
  117. package/dist/commands/shared/preview.d.ts +10 -0
  118. package/dist/commands/shared/preview.js +60 -0
  119. package/dist/commands/shared/resolve-reduction-competitors.d.ts +15 -0
  120. package/dist/commands/shared/resolve-reduction-competitors.js +13 -0
  121. package/dist/commands/shared/resolve-stage-competitors.d.ts +19 -0
  122. package/dist/commands/shared/resolve-stage-competitors.js +168 -0
  123. package/dist/commands/shared/session-id.d.ts +1 -0
  124. package/dist/commands/shared/session-id.js +1 -0
  125. package/dist/commands/spec/command.d.ts +22 -0
  126. package/dist/commands/spec/command.js +330 -0
  127. package/dist/commands/spec/errors.d.ts +11 -0
  128. package/dist/commands/spec/errors.js +23 -0
  129. package/dist/commands/verify/agents.d.ts +8 -0
  130. package/dist/commands/verify/agents.js +29 -0
  131. package/dist/commands/verify/command.d.ts +22 -0
  132. package/dist/commands/verify/command.js +167 -0
  133. package/dist/commands/verify/lifecycle.d.ts +14 -0
  134. package/dist/commands/verify/lifecycle.js +229 -0
  135. package/dist/commands/verify/max-parallel.d.ts +7 -0
  136. package/dist/commands/verify/max-parallel.js +13 -0
  137. package/dist/commands/verify/targets.d.ts +17 -0
  138. package/dist/commands/verify/targets.js +288 -0
  139. package/dist/competition/command-adapter.d.ts +35 -0
  140. package/dist/competition/command-adapter.js +20 -0
  141. package/dist/competition/core.d.ts +41 -0
  142. package/dist/competition/core.js +181 -0
  143. package/dist/competition/shared/extra-context.d.ts +14 -0
  144. package/dist/competition/shared/extra-context.js +100 -0
  145. package/dist/competition/shared/preflight.d.ts +11 -0
  146. package/dist/competition/shared/preflight.js +39 -0
  147. package/dist/competition/shared/prompt-helpers.d.ts +16 -0
  148. package/dist/competition/shared/prompt-helpers.js +27 -0
  149. package/dist/competition/shared/prune.d.ts +1 -0
  150. package/dist/competition/shared/prune.js +4 -0
  151. package/dist/competition/shared/sandbox-policy.d.ts +9 -0
  152. package/dist/competition/shared/sandbox-policy.js +7 -0
  153. package/dist/competition/shared/teardown.d.ts +36 -0
  154. package/dist/competition/shared/teardown.js +101 -0
  155. package/dist/configs/agents/defaults.d.ts +31 -2
  156. package/dist/configs/agents/defaults.js +346 -30
  157. package/dist/configs/agents/errors.js +14 -11
  158. package/dist/configs/agents/loader.d.ts +11 -1
  159. package/dist/configs/agents/loader.js +71 -4
  160. package/dist/configs/agents/types.js +2 -2
  161. package/dist/configs/environment/detect.js +9 -4
  162. package/dist/configs/environment/errors.js +4 -4
  163. package/dist/configs/environment/loader.d.ts +1 -1
  164. package/dist/configs/environment/loader.js +3 -3
  165. package/dist/configs/orchestration/bootstrap.d.ts +11 -0
  166. package/dist/configs/orchestration/bootstrap.js +101 -0
  167. package/dist/configs/orchestration/errors.d.ts +15 -0
  168. package/dist/configs/orchestration/errors.js +28 -0
  169. package/dist/configs/orchestration/loader.d.ts +9 -0
  170. package/dist/configs/orchestration/loader.js +148 -0
  171. package/dist/configs/orchestration/types.d.ts +87 -0
  172. package/dist/configs/orchestration/types.js +61 -0
  173. package/dist/configs/sandbox/defaults.js +14 -4
  174. package/dist/configs/sandbox/errors.d.ts +1 -1
  175. package/dist/configs/sandbox/errors.js +1 -1
  176. package/dist/configs/sandbox/loader.js +6 -4
  177. package/dist/configs/sandbox/schemas.js +4 -2
  178. package/dist/configs/settings/loader.d.ts +7 -0
  179. package/dist/configs/settings/loader.js +81 -0
  180. package/dist/configs/settings/types.d.ts +47 -0
  181. package/dist/configs/settings/types.js +23 -0
  182. package/dist/configs/verification/errors.d.ts +11 -0
  183. package/dist/configs/verification/errors.js +21 -0
  184. package/dist/configs/verification/loader.d.ts +8 -0
  185. package/dist/configs/verification/loader.js +43 -0
  186. package/dist/configs/verification/methods.d.ts +35 -0
  187. package/dist/configs/verification/methods.js +41 -0
  188. package/dist/configs/verification/programmatic-defaults.d.ts +10 -0
  189. package/dist/configs/verification/programmatic-defaults.js +42 -0
  190. package/dist/configs/verification/programmatic-detect.d.ts +10 -0
  191. package/dist/configs/{evals/detect.js → verification/programmatic-detect.js} +22 -33
  192. package/dist/configs/verification/types.d.ts +44 -0
  193. package/dist/configs/verification/types.js +42 -0
  194. package/dist/contracts/list.d.ts +173 -0
  195. package/dist/contracts/list.js +125 -0
  196. package/dist/domain/interactive/model/types.d.ts +104 -0
  197. package/dist/domain/interactive/model/types.js +83 -0
  198. package/dist/domain/interactive/persistence/adapter.d.ts +39 -0
  199. package/dist/domain/interactive/persistence/adapter.js +144 -0
  200. package/dist/domain/interactive/prompt.d.ts +3 -0
  201. package/dist/domain/interactive/prompt.js +7 -0
  202. package/dist/domain/reduce/competition/adapter.d.ts +41 -0
  203. package/dist/domain/reduce/competition/adapter.js +773 -0
  204. package/dist/domain/reduce/competition/output-validation.d.ts +4 -0
  205. package/dist/domain/reduce/competition/output-validation.js +18 -0
  206. package/dist/domain/reduce/competition/prompt.d.ts +10 -0
  207. package/dist/domain/reduce/competition/prompt.js +96 -0
  208. package/dist/domain/reduce/competition/reduction.d.ts +9 -0
  209. package/dist/domain/reduce/competition/reduction.js +32 -0
  210. package/dist/domain/reduce/model/types.d.ts +119 -0
  211. package/dist/domain/reduce/model/types.js +83 -0
  212. package/dist/domain/reduce/persistence/adapter.d.ts +43 -0
  213. package/dist/domain/reduce/persistence/adapter.js +126 -0
  214. package/dist/domain/run/competition/adapter.d.ts +30 -0
  215. package/dist/domain/run/competition/adapter.js +39 -0
  216. package/dist/domain/run/competition/agent-execution.d.ts +20 -0
  217. package/dist/domain/run/competition/agent-execution.js +45 -0
  218. package/dist/domain/run/competition/agent-preparation.d.ts +12 -0
  219. package/dist/domain/run/competition/agent-preparation.js +24 -0
  220. package/dist/domain/run/competition/agents/artifacts.d.ts +17 -0
  221. package/dist/domain/run/competition/agents/artifacts.js +173 -0
  222. package/dist/{commands/run → domain/run/competition}/agents/lifecycle.d.ts +3 -3
  223. package/dist/{commands/run → domain/run/competition}/agents/lifecycle.js +84 -64
  224. package/dist/domain/run/competition/agents/post-processing.d.ts +12 -0
  225. package/dist/domain/run/competition/agents/post-processing.js +4 -0
  226. package/dist/domain/run/competition/agents/preparation.js +64 -0
  227. package/dist/{commands/run → domain/run/competition}/agents/run-context.d.ts +9 -16
  228. package/dist/{commands/run → domain/run/competition}/agents/run-context.js +22 -70
  229. package/dist/{commands/run → domain/run/competition}/agents/types.d.ts +10 -13
  230. package/dist/domain/run/competition/agents/workspace.d.ts +21 -0
  231. package/dist/domain/run/competition/agents/workspace.js +47 -0
  232. package/dist/{commands/run → domain/run/competition}/errors.d.ts +8 -1
  233. package/dist/{commands/run → domain/run/competition}/errors.js +39 -9
  234. package/dist/{commands/run → domain/run/competition}/phases.d.ts +1 -2
  235. package/dist/domain/run/competition/phases.js +1 -0
  236. package/dist/domain/run/competition/prompt.d.ts +7 -0
  237. package/dist/domain/run/competition/prompt.js +27 -0
  238. package/dist/{commands/run → domain/run/competition}/reports.d.ts +5 -3
  239. package/dist/{commands/run → domain/run/competition}/reports.js +7 -19
  240. package/dist/domain/run/competition/termination-state.d.ts +4 -0
  241. package/dist/domain/run/competition/termination-state.js +12 -0
  242. package/dist/{records → domain/run/model}/enhanced.d.ts +6 -7
  243. package/dist/{records → domain/run/model}/enhanced.js +11 -11
  244. package/dist/{records → domain/run/model}/errors.d.ts +1 -1
  245. package/dist/{records → domain/run/model}/errors.js +5 -5
  246. package/dist/{records → domain/run/model}/mutators.d.ts +4 -3
  247. package/dist/{records → domain/run/model}/mutators.js +58 -36
  248. package/dist/domain/run/model/types.d.ts +376 -0
  249. package/dist/domain/run/model/types.js +192 -0
  250. package/dist/{records/persistence.d.ts → domain/run/persistence/adapter.d.ts} +9 -3
  251. package/dist/domain/run/persistence/adapter.js +340 -0
  252. package/dist/domain/run/persistence/error-mapping.d.ts +2 -0
  253. package/dist/domain/run/persistence/error-mapping.js +17 -0
  254. package/dist/domain/shared/lifecycle.d.ts +54 -0
  255. package/dist/domain/shared/lifecycle.js +165 -0
  256. package/dist/domain/shared/token-usage.d.ts +21 -0
  257. package/dist/domain/shared/token-usage.js +38 -0
  258. package/dist/domain/spec/competition/adapter.d.ts +31 -0
  259. package/dist/domain/spec/competition/adapter.js +196 -0
  260. package/dist/domain/spec/competition/prompt.d.ts +11 -0
  261. package/dist/domain/spec/competition/prompt.js +44 -0
  262. package/dist/domain/spec/model/output.d.ts +13 -0
  263. package/dist/domain/spec/model/output.js +36 -0
  264. package/dist/domain/spec/model/types.d.ts +98 -0
  265. package/dist/domain/spec/model/types.js +84 -0
  266. package/dist/domain/spec/persistence/adapter.d.ts +51 -0
  267. package/dist/domain/spec/persistence/adapter.js +140 -0
  268. package/dist/domain/verify/blinding/aliases.d.ts +7 -0
  269. package/dist/domain/verify/blinding/aliases.js +23 -0
  270. package/dist/domain/verify/competition/adapter.d.ts +54 -0
  271. package/dist/domain/verify/competition/adapter.js +441 -0
  272. package/dist/domain/verify/competition/artifacts.d.ts +6 -0
  273. package/dist/domain/verify/competition/artifacts.js +7 -0
  274. package/dist/domain/verify/competition/blinding.d.ts +24 -0
  275. package/dist/domain/verify/competition/blinding.js +109 -0
  276. package/dist/domain/verify/competition/finalize.d.ts +11 -0
  277. package/dist/domain/verify/competition/finalize.js +65 -0
  278. package/dist/domain/verify/competition/programmatic.d.ts +15 -0
  279. package/dist/domain/verify/competition/programmatic.js +349 -0
  280. package/dist/domain/verify/competition/prompt.d.ts +19 -0
  281. package/dist/domain/verify/competition/prompt.js +57 -0
  282. package/dist/domain/verify/competition/rubric.d.ts +23 -0
  283. package/dist/domain/verify/competition/rubric.js +71 -0
  284. package/dist/domain/verify/competition/shared-layout.d.ts +81 -0
  285. package/dist/domain/verify/competition/shared-layout.js +294 -0
  286. package/dist/domain/verify/competition/target.d.ts +30 -0
  287. package/dist/domain/verify/competition/target.js +1 -0
  288. package/dist/domain/verify/model/mutators.d.ts +16 -0
  289. package/dist/domain/verify/model/mutators.js +126 -0
  290. package/dist/domain/verify/model/types.d.ts +390 -0
  291. package/dist/domain/verify/model/types.js +276 -0
  292. package/dist/domain/verify/persistence/adapter.d.ts +43 -0
  293. package/dist/domain/verify/persistence/adapter.js +126 -0
  294. package/dist/domain/verify/programmatic/runner.d.ts +22 -0
  295. package/dist/domain/verify/programmatic/runner.js +209 -0
  296. package/dist/domain/verify/rubric-result.d.ts +28 -0
  297. package/dist/domain/verify/rubric-result.js +121 -0
  298. package/dist/extra-context/contract.d.ts +17 -0
  299. package/dist/extra-context/contract.js +60 -0
  300. package/dist/interactive/index.d.ts +2 -0
  301. package/dist/interactive/index.js +1 -0
  302. package/dist/interactive/providers/launch.d.ts +23 -0
  303. package/dist/interactive/providers/launch.js +203 -0
  304. package/dist/interactive/providers/mcp.d.ts +13 -0
  305. package/dist/interactive/providers/mcp.js +547 -0
  306. package/dist/interactive/providers/shared.d.ts +2 -0
  307. package/dist/interactive/providers/shared.js +1 -0
  308. package/dist/interactive/providers.d.ts +3 -0
  309. package/dist/interactive/providers.js +3 -0
  310. package/dist/interactive/records.d.ts +2 -0
  311. package/dist/interactive/records.js +1 -0
  312. package/dist/interactive/substrate.d.ts +21 -0
  313. package/dist/interactive/substrate.js +522 -0
  314. package/dist/interactive/types.d.ts +101 -0
  315. package/dist/interactive/types.js +1 -0
  316. package/dist/mcp/server.d.ts +88 -0
  317. package/dist/mcp/server.js +773 -0
  318. package/dist/persistence/error-mapping.d.ts +19 -0
  319. package/dist/persistence/error-mapping.js +44 -0
  320. package/dist/persistence/errors.d.ts +26 -0
  321. package/dist/persistence/errors.js +49 -0
  322. package/dist/persistence/extra-context.d.ts +9 -0
  323. package/dist/persistence/extra-context.js +60 -0
  324. package/dist/{records → persistence}/history-lock.js +2 -2
  325. package/dist/persistence/record-path-schema.d.ts +3 -0
  326. package/dist/persistence/record-path-schema.js +16 -0
  327. package/dist/persistence/session-store.d.ts +92 -0
  328. package/dist/persistence/session-store.js +412 -0
  329. package/dist/policy/auto.d.ts +13 -0
  330. package/dist/policy/auto.js +22 -0
  331. package/dist/policy/index.d.ts +5 -0
  332. package/dist/policy/index.js +5 -0
  333. package/dist/policy/resolution.d.ts +6 -0
  334. package/dist/policy/resolution.js +23 -0
  335. package/dist/policy/result.d.ts +53 -0
  336. package/dist/policy/result.js +15 -0
  337. package/dist/policy/selector.d.ts +11 -0
  338. package/dist/policy/selector.js +57 -0
  339. package/dist/policy/verification.d.ts +77 -0
  340. package/dist/policy/verification.js +363 -0
  341. package/dist/policy/verifier-selection.d.ts +13 -0
  342. package/dist/policy/verifier-selection.js +78 -0
  343. package/dist/preflight/branch.d.ts +9 -0
  344. package/dist/preflight/branch.js +48 -0
  345. package/dist/preflight/errors.d.ts +3 -0
  346. package/dist/preflight/errors.js +10 -3
  347. package/dist/preflight/index.d.ts +11 -0
  348. package/dist/preflight/index.js +41 -8
  349. package/dist/render/interactions/confirmation.js +4 -2
  350. package/dist/render/transcripts/apply.js +9 -10
  351. package/dist/render/transcripts/auto.d.ts +27 -0
  352. package/dist/render/transcripts/auto.js +21 -0
  353. package/dist/render/transcripts/init.d.ts +4 -15
  354. package/dist/render/transcripts/init.js +71 -72
  355. package/dist/render/transcripts/list.d.ts +8 -1
  356. package/dist/render/transcripts/list.js +97 -15
  357. package/dist/render/transcripts/prune.d.ts +7 -2
  358. package/dist/render/transcripts/prune.js +64 -17
  359. package/dist/render/transcripts/reduce.d.ts +74 -0
  360. package/dist/render/transcripts/reduce.js +395 -0
  361. package/dist/render/transcripts/root-launcher.d.ts +19 -0
  362. package/dist/render/transcripts/root-launcher.js +40 -0
  363. package/dist/render/transcripts/run.d.ts +35 -6
  364. package/dist/render/transcripts/run.js +241 -165
  365. package/dist/render/transcripts/shared.d.ts +2 -0
  366. package/dist/render/transcripts/shared.js +11 -4
  367. package/dist/render/transcripts/spec.d.ts +74 -0
  368. package/dist/render/transcripts/spec.js +394 -0
  369. package/dist/render/transcripts/stage-progress.d.ts +22 -0
  370. package/dist/render/transcripts/stage-progress.js +6 -0
  371. package/dist/render/transcripts/update-check.d.ts +2 -0
  372. package/dist/render/transcripts/update-check.js +22 -0
  373. package/dist/render/transcripts/verify.d.ts +70 -0
  374. package/dist/render/transcripts/verify.js +403 -0
  375. package/dist/render/utils/agents.d.ts +10 -9
  376. package/dist/render/utils/agents.js +30 -82
  377. package/dist/render/utils/badges.d.ts +3 -20
  378. package/dist/render/utils/badges.js +3 -36
  379. package/dist/render/utils/duration.d.ts +12 -0
  380. package/dist/render/utils/duration.js +37 -0
  381. package/dist/render/utils/interactive-frame.d.ts +6 -0
  382. package/dist/render/utils/interactive-frame.js +38 -0
  383. package/dist/render/utils/records.js +4 -4
  384. package/dist/render/utils/runs.d.ts +3 -9
  385. package/dist/render/utils/runs.js +16 -48
  386. package/dist/render/utils/stage-output.d.ts +20 -0
  387. package/dist/render/utils/stage-output.js +44 -0
  388. package/dist/render/utils/timezone.d.ts +2 -0
  389. package/dist/render/utils/timezone.js +42 -0
  390. package/dist/render/utils/transcript-shell.d.ts +66 -0
  391. package/dist/render/utils/transcript-shell.js +149 -0
  392. package/dist/render/utils/transcript.d.ts +7 -1
  393. package/dist/render/utils/transcript.js +12 -2
  394. package/dist/render/utils/wrap.d.ts +1 -0
  395. package/dist/render/utils/wrap.js +20 -0
  396. package/dist/status/colors.d.ts +2 -3
  397. package/dist/status/colors.js +3 -3
  398. package/dist/status/index.d.ts +87 -8
  399. package/dist/status/index.js +134 -5
  400. package/dist/update-check/checker.d.ts +24 -0
  401. package/dist/update-check/checker.js +130 -0
  402. package/dist/update-check/prompt.d.ts +25 -0
  403. package/dist/update-check/prompt.js +62 -0
  404. package/dist/update-check/semver.d.ts +17 -0
  405. package/dist/update-check/semver.js +36 -0
  406. package/dist/update-check/state-path.d.ts +8 -0
  407. package/dist/update-check/state-path.js +18 -0
  408. package/dist/utils/binaries.js +14 -8
  409. package/dist/utils/errors.d.ts +3 -1
  410. package/dist/utils/errors.js +3 -1
  411. package/dist/utils/git.d.ts +10 -0
  412. package/dist/utils/git.js +15 -3
  413. package/dist/utils/output.d.ts +5 -1
  414. package/dist/utils/output.js +4 -2
  415. package/dist/utils/process.d.ts +2 -1
  416. package/dist/utils/process.js +7 -3
  417. package/dist/utils/session-id.d.ts +1 -0
  418. package/dist/utils/session-id.js +22 -0
  419. package/dist/utils/slug.d.ts +2 -0
  420. package/dist/utils/slug.js +15 -0
  421. package/dist/utils/voratiq-cli-target.d.ts +9 -0
  422. package/dist/utils/voratiq-cli-target.js +58 -0
  423. package/dist/workspace/agents.d.ts +13 -16
  424. package/dist/workspace/agents.js +22 -147
  425. package/dist/workspace/chat/artifacts.d.ts +9 -0
  426. package/dist/workspace/chat/artifacts.js +82 -12
  427. package/dist/workspace/chat/native-usage.d.ts +13 -0
  428. package/dist/workspace/chat/native-usage.js +60 -0
  429. package/dist/workspace/chat/sources.d.ts +9 -5
  430. package/dist/workspace/chat/sources.js +89 -23
  431. package/dist/workspace/chat/token-usage-result.d.ts +23 -0
  432. package/dist/workspace/chat/token-usage-result.js +7 -0
  433. package/dist/workspace/chat/usage-extractor.d.ts +30 -0
  434. package/dist/workspace/chat/usage-extractor.js +461 -0
  435. package/dist/workspace/chat/usage-mappings.d.ts +20 -0
  436. package/dist/workspace/chat/usage-mappings.js +136 -0
  437. package/dist/workspace/credential-guard.js +1 -1
  438. package/dist/workspace/dependencies.js +4 -4
  439. package/dist/workspace/errors.d.ts +5 -0
  440. package/dist/workspace/errors.js +13 -3
  441. package/dist/workspace/layout.d.ts +17 -6
  442. package/dist/workspace/layout.js +51 -32
  443. package/dist/workspace/promotion.d.ts +32 -0
  444. package/dist/workspace/promotion.js +34 -0
  445. package/dist/workspace/prune.d.ts +1 -1
  446. package/dist/workspace/run.d.ts +1 -3
  447. package/dist/workspace/run.js +6 -15
  448. package/dist/workspace/setup.d.ts +8 -0
  449. package/dist/workspace/setup.js +353 -56
  450. package/dist/workspace/shim.js +1 -1
  451. package/dist/workspace/structure.d.ts +83 -26
  452. package/dist/workspace/structure.js +211 -43
  453. package/dist/workspace/templates.d.ts +9 -3
  454. package/dist/workspace/templates.js +26 -15
  455. package/dist/workspace/verification-defaults.d.ts +12 -0
  456. package/dist/workspace/verification-defaults.js +762 -0
  457. package/package.json +17 -10
  458. package/dist/cli/review.d.ts +0 -12
  459. package/dist/cli/review.js +0 -33
  460. package/dist/commands/errors.d.ts +0 -4
  461. package/dist/commands/errors.js +0 -7
  462. package/dist/commands/init/evals.d.ts +0 -4
  463. package/dist/commands/init/evals.js +0 -219
  464. package/dist/commands/review/command.d.ts +0 -10
  465. package/dist/commands/review/command.js +0 -26
  466. package/dist/commands/run/agent-execution.d.ts +0 -19
  467. package/dist/commands/run/agent-execution.js +0 -63
  468. package/dist/commands/run/agents/auth-stage.d.ts +0 -23
  469. package/dist/commands/run/agents/auth-stage.js +0 -108
  470. package/dist/commands/run/agents/chat-preserver.d.ts +0 -9
  471. package/dist/commands/run/agents/chat-preserver.js +0 -35
  472. package/dist/commands/run/agents/eval-runner.d.ts +0 -19
  473. package/dist/commands/run/agents/eval-runner.js +0 -27
  474. package/dist/commands/run/agents/failures.js +0 -32
  475. package/dist/commands/run/agents/preparation.js +0 -123
  476. package/dist/commands/run/agents.d.ts +0 -14
  477. package/dist/commands/run/agents.js +0 -47
  478. package/dist/commands/run/prompts.d.ts +0 -4
  479. package/dist/commands/run/prompts.js +0 -16
  480. package/dist/commands/run/sandbox-registry.d.ts +0 -4
  481. package/dist/commands/run/sandbox-registry.js +0 -54
  482. package/dist/configs/evals/defaults.d.ts +0 -8
  483. package/dist/configs/evals/defaults.js +0 -28
  484. package/dist/configs/evals/detect.d.ts +0 -10
  485. package/dist/configs/evals/errors.d.ts +0 -16
  486. package/dist/configs/evals/errors.js +0 -29
  487. package/dist/configs/evals/loader.d.ts +0 -9
  488. package/dist/configs/evals/loader.js +0 -46
  489. package/dist/configs/evals/types.d.ts +0 -42
  490. package/dist/configs/evals/types.js +0 -74
  491. package/dist/evals/runner.d.ts +0 -16
  492. package/dist/evals/runner.js +0 -132
  493. package/dist/records/persistence.js +0 -469
  494. package/dist/records/types.d.ts +0 -255
  495. package/dist/records/types.js +0 -160
  496. package/dist/render/transcripts/review.d.ts +0 -2
  497. package/dist/render/transcripts/review.js +0 -36
  498. /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.d.ts +0 -0
  499. /package/dist/{commands/run → agents/runtime}/shim/agent-manifest.js +0 -0
  500. /package/dist/{commands/run → agents/runtime/shim}/argv.d.ts +0 -0
  501. /package/dist/{commands/run → agents/runtime/shim}/argv.js +0 -0
  502. /package/dist/{commands/run/agents → agents/runtime}/types.js +0 -0
  503. /package/dist/{commands/run → domain/run/competition}/agents/preparation.d.ts +0 -0
  504. /package/dist/{commands/run/phases.js → domain/run/competition/agents/types.js} +0 -0
  505. /package/dist/{commands/run → domain/run/model}/id.d.ts +0 -0
  506. /package/dist/{commands/run → domain/run/model}/id.js +0 -0
  507. /package/dist/{records → persistence}/history-lock.d.ts +0 -0
package/README.md CHANGED
@@ -1,58 +1,70 @@
1
1
  # Voratiq
2
2
 
3
- Run agents in parallel, compare results, and apply the best solution.
3
+ Agent ensembles to design, generate, and select the best code for every task.
4
4
 
5
- ![`voratiq run --spec specs/p1/agent-workspace-guardrails.md`](https://raw.githubusercontent.com/voratiq/voratiq/main/assets/run-demo.png)
5
+ ![`voratiq auto --spec .voratiq/spec/categorical-performance-by-taxonomy.md`](https://raw.githubusercontent.com/voratiq/voratiq/main/assets/run-demo.png)
6
+
7
+ No single model wins every task. Run several, keep the best result. [Here's why that works](https://voratiq.com/blog/selection-rather-than-prediction/).
6
8
 
7
9
  ## Installation
8
10
 
9
- Voratiq is in public beta. Install via npm:
11
+ Install via npm:
10
12
 
11
13
  ```bash
12
- npm install -g voratiq@beta
14
+ npm install -g voratiq
13
15
  ```
14
16
 
15
- ### Requirements
16
-
17
- Core:
17
+ <details>
18
+ <summary>Requirements</summary>
18
19
 
19
20
  - Node 20+
20
21
  - git
21
- - 1+ AI coding agent (Claude [(>=2.0.55)](https://github.com/anthropics/claude-code?tab=readme-ov-file#get-started), Codex [(>=0.66.0)](https://github.com/openai/codex?tab=readme-ov-file#quickstart), or Gemini [(>=0.19.4)](https://github.com/google-gemini/gemini-cli?tab=readme-ov-file#quick-install))
22
-
23
- Platform-specific:
24
-
22
+ - 1+ AI coding agent (Claude [>=2.1.63](https://github.com/anthropics/claude-code?tab=readme-ov-file#get-started), Codex [>=0.107.0](https://github.com/openai/codex?tab=readme-ov-file#quickstart), or Gemini [>=0.31.0](https://github.com/google-gemini/gemini-cli?tab=readme-ov-file#quick-install))
25
23
  - macOS: `ripgrep`
26
24
  - Linux (Debian/Ubuntu): `bubblewrap`, `socat`, `ripgrep`
27
25
 
28
- See the [sandbox runtime docs](https://github.com/anthropic-experimental/sandbox-runtime/blob/1bafa66a2c3ebc52569fc0c1a868e85e778f66a0/README.md#platform-specific-dependencies) for installation instructions.
26
+ See the [sandbox runtime docs](https://github.com/anthropic-experimental/sandbox-runtime/blob/1bafa66a2c3ebc52569fc0c1a868e85e778f66a0/README.md#platform-specific-dependencies) for guidance on the platform-specific dependencies.
29
27
 
30
- Note: Windows is not currently supported.
28
+ Windows is not currently supported.
29
+
30
+ </details>
31
31
 
32
32
  ## Quick Start
33
33
 
34
+ Get started with a single command:
35
+
34
36
  ```bash
35
- # Initialize workspace
36
- voratiq init
37
+ voratiq
38
+ ```
37
39
 
38
- # Write a spec
39
- cat > specs/fix-auth.md <<EOF
40
- # Fix Session Timeout Bug
41
- Users are logged out after 5 minutes instead of 30.
42
- Sessions should honor SESSION_TIMEOUT_MS (default 30 minutes).
43
- EOF
40
+ This drops you into an interactive session with an agent of your choice.
44
41
 
45
- # Run agents in parallel
46
- voratiq run --spec specs/fix-auth.md
42
+ That agent gets access to Voratiq tools for orchestration and verification.
47
43
 
48
- # Review results
49
- voratiq review --run <run-id>
44
+ Describe what you want built, and the agent can use those tools to:
50
45
 
51
- # Apply the best solution
52
- voratiq apply --run <run-id> --agent <agent-id>
53
- ```
46
+ - turn your request into a structured execution plan
47
+ - delegate work to a custom-designed swarm or a multi-stage workflow
48
+ - verify outputs and compare alternatives before choosing what to keep
49
+ - track outcomes across runs to learn which agents and workflows work best
50
+
51
+ You keep the native interactive workflow, with more execution depth and control.
52
+
53
+ ## Documentation
54
+
55
+ Start here:
56
+
57
+ - [Tutorial](https://github.com/voratiq/voratiq/blob/main/docs/tutorial.md) - End-to-end walkthrough
58
+ - [CLI Reference](https://github.com/voratiq/voratiq/blob/main/docs/cli-reference.md) - Commands and options
59
+ - [Core Concepts](https://github.com/voratiq/voratiq/blob/main/docs/core-concepts.md) - Workflow model and design rationale
60
+
61
+ Configuration:
54
62
 
55
- See the [docs](https://github.com/voratiq/voratiq/blob/main/docs/index.md) for core concepts, CLI reference, and guides on configuring agents, evals, runtime environments, and sandbox restrictions.
63
+ - [Agents](https://github.com/voratiq/voratiq/blob/main/docs/configs/agents.md) - Agent catalog and invocation details
64
+ - [Orchestration](https://github.com/voratiq/voratiq/blob/main/docs/configs/orchestration.md) - Which agents run at each stage
65
+ - [Verification](https://github.com/voratiq/voratiq/blob/main/docs/configs/verification.md) - How agent outputs are checked and scored before selection
66
+ - [Environment](https://github.com/voratiq/voratiq/blob/main/docs/configs/environment.md) - Runtime dependencies for agents
67
+ - [Sandbox](https://github.com/voratiq/voratiq/blob/main/docs/configs/sandbox.md) - Network and filesystem restrictions
56
68
 
57
69
  ## License
58
70
 
@@ -0,0 +1,23 @@
1
+ import { type ProviderTranscriptBaseline } from "../../workspace/chat/artifacts.js";
2
+ import type { ChatArtifactFormat } from "../../workspace/chat/types.js";
3
+ export interface LaunchArtifactCaptureResult {
4
+ readonly captured: boolean;
5
+ readonly format?: ChatArtifactFormat;
6
+ readonly artifactPath?: string;
7
+ readonly sourceCount?: number;
8
+ readonly error?: unknown;
9
+ }
10
+ export interface LaunchArtifactCaptureContext {
11
+ readonly searchEnv?: NodeJS.ProcessEnv;
12
+ readonly baseline?: ProviderTranscriptBaseline;
13
+ }
14
+ export declare function prepareProviderArtifactCaptureContext(options: {
15
+ providerId: string | undefined;
16
+ sessionRoot: string;
17
+ searchEnv?: NodeJS.ProcessEnv;
18
+ }): Promise<LaunchArtifactCaptureContext | undefined>;
19
+ export declare function collectProviderArtifacts(options: {
20
+ providerId: string | undefined;
21
+ sessionRoot: string;
22
+ captureContext?: LaunchArtifactCaptureContext;
23
+ }): Promise<LaunchArtifactCaptureResult>;
@@ -0,0 +1,44 @@
1
+ import { preserveProviderChatTranscripts, snapshotProviderTranscripts, } from "../../workspace/chat/artifacts.js";
2
+ export async function prepareProviderArtifactCaptureContext(options) {
3
+ const providerId = options.providerId ?? "";
4
+ if (!providerId) {
5
+ return undefined;
6
+ }
7
+ return {
8
+ searchEnv: options.searchEnv,
9
+ baseline: await snapshotProviderTranscripts({
10
+ providerId,
11
+ agentRoot: options.sessionRoot,
12
+ searchEnv: options.searchEnv,
13
+ }),
14
+ };
15
+ }
16
+ export async function collectProviderArtifacts(options) {
17
+ const providerId = options.providerId ?? "";
18
+ if (!providerId) {
19
+ return { captured: false };
20
+ }
21
+ const result = await preserveProviderChatTranscripts({
22
+ providerId,
23
+ agentRoot: options.sessionRoot,
24
+ searchEnv: options.captureContext?.searchEnv,
25
+ baseline: options.captureContext?.baseline,
26
+ });
27
+ const format = result.format;
28
+ if ((result.status === "captured" || result.status === "already-exists") &&
29
+ format) {
30
+ return {
31
+ captured: true,
32
+ format,
33
+ artifactPath: result.artifactPath,
34
+ sourceCount: result.sourceCount,
35
+ };
36
+ }
37
+ if (result.status === "not-found") {
38
+ return { captured: false };
39
+ }
40
+ return {
41
+ captured: false,
42
+ error: result.status === "error" ? result.error : undefined,
43
+ };
44
+ }
@@ -0,0 +1,8 @@
1
+ import { type EnvironmentConfig } from "../../configs/environment/types.js";
2
+ export declare function composeLaunchEnvironment(options: {
3
+ baseEnv: Record<string, string>;
4
+ workspacePath: string;
5
+ environment: EnvironmentConfig;
6
+ }): Promise<Record<string, string>>;
7
+ export declare function mergePathEntries(prepends: readonly string[], existing: string): string;
8
+ export declare function normalizeRelative(origin: string, target: string): string;
@@ -1,30 +1,8 @@
1
- import { mkdir, writeFile } from "node:fs/promises";
2
- import { delimiter, dirname, relative as relativePath } from "node:path";
3
- import { getNodeDependencyRoots, getPythonEnvironmentPath, } from "../../../configs/environment/types.js";
4
- import { pathExists } from "../../../utils/fs.js";
5
- import { resolvePath } from "../../../utils/path.js";
6
- export async function writeAgentManifest(options) {
7
- const { agent, workspacePaths, env = {}, environment } = options;
8
- const { promptPath, runtimeManifestPath, workspacePath } = workspacePaths;
9
- const manifestDir = dirname(runtimeManifestPath);
10
- const manifestEnv = await composeManifestEnvironment({
11
- baseEnv: env,
12
- workspacePath,
13
- environment,
14
- });
15
- const manifest = {
16
- binary: agent.binary,
17
- argv: [...agent.argv],
18
- promptPath: normalizeRelative(manifestDir, promptPath),
19
- workspace: normalizeRelative(manifestDir, workspacePath),
20
- env: manifestEnv,
21
- };
22
- const manifestJson = `${JSON.stringify(manifest, null, 2)}\n`;
23
- await mkdir(dirname(runtimeManifestPath), { recursive: true });
24
- await writeFile(runtimeManifestPath, manifestJson, { encoding: "utf8" });
25
- return manifestEnv;
26
- }
27
- export async function composeManifestEnvironment(options) {
1
+ import { delimiter, relative as relativePath } from "node:path";
2
+ import { getNodeDependencyRoots, getPythonEnvironmentPath, } from "../../configs/environment/types.js";
3
+ import { pathExists } from "../../utils/fs.js";
4
+ import { resolvePath } from "../../utils/path.js";
5
+ export async function composeLaunchEnvironment(options) {
28
6
  const { baseEnv, workspacePath, environment } = options;
29
7
  const result = { ...baseEnv };
30
8
  const pathPrepends = [];
@@ -0,0 +1,6 @@
1
+ export interface WriteStagedPromptOptions {
2
+ runtimePath: string;
3
+ prompt: string;
4
+ prefix?: string;
5
+ }
6
+ export declare function writeStagedPrompt(options: WriteStagedPromptOptions): Promise<string>;
@@ -0,0 +1,12 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
+ import { dirname, join } from "node:path";
4
+ const PROMPT_TMP_PREFIX = "prompt.ephemeral";
5
+ export async function writeStagedPrompt(options) {
6
+ const { runtimePath, prompt, prefix = PROMPT_TMP_PREFIX } = options;
7
+ const nonce = randomBytes(8).toString("hex");
8
+ const path = join(runtimePath, `${prefix}.${nonce}.txt`);
9
+ await mkdir(dirname(path), { recursive: true });
10
+ await writeFile(path, prompt, { encoding: "utf8" });
11
+ return path;
12
+ }
@@ -0,0 +1,39 @@
1
+ import type { AuthProvider, AuthRuntimeContext } from "../../auth/providers/types.js";
2
+ import type { AgentDefinition } from "../../configs/agents/types.js";
3
+ export interface StagedProviderStateContext {
4
+ provider: AuthProvider;
5
+ sandboxPath: string;
6
+ runtime: AuthRuntimeContext;
7
+ agentId: string;
8
+ }
9
+ export interface StageProviderStateOptions {
10
+ agent: AgentDefinition;
11
+ agentRoot: string;
12
+ root: string;
13
+ runId?: string;
14
+ runtime?: AuthRuntimeContext;
15
+ includeConfigToml?: boolean;
16
+ }
17
+ export interface StageProviderStateResult {
18
+ env: Record<string, string>;
19
+ context: StagedProviderStateContext;
20
+ }
21
+ export type AgentProviderResolutionCode = "missing_provider" | "unknown_provider";
22
+ export interface AgentProviderResolutionFailure {
23
+ ok: false;
24
+ code: AgentProviderResolutionCode;
25
+ message: string;
26
+ }
27
+ export interface AgentProviderResolutionSuccess {
28
+ ok: true;
29
+ provider: AuthProvider;
30
+ }
31
+ export type AgentProviderResolutionResult = AgentProviderResolutionFailure | AgentProviderResolutionSuccess;
32
+ export declare function resolveAgentProviderForDefinition(agent: Pick<AgentDefinition, "id" | "provider">): AgentProviderResolutionResult;
33
+ export declare function stageAgentProviderState(options: StageProviderStateOptions): Promise<StageProviderStateResult>;
34
+ export declare function teardownProviderState(context: StagedProviderStateContext | undefined): Promise<void>;
35
+ export declare function extractProviderErrorMessage(error: unknown): string;
36
+ export declare class ProviderResolutionError extends Error {
37
+ readonly code: AgentProviderResolutionCode;
38
+ constructor(code: AgentProviderResolutionCode, message: string);
39
+ }
@@ -0,0 +1,103 @@
1
+ import { rm } from "node:fs/promises";
2
+ import { resolveAuthProvider } from "../../auth/providers/index.js";
3
+ import { buildAuthRuntimeContext } from "../../auth/runtime.js";
4
+ import { loadRepoSettings } from "../../configs/settings/loader.js";
5
+ import { toErrorMessage } from "../../utils/errors.js";
6
+ import { isFileSystemError } from "../../utils/fs.js";
7
+ export function resolveAgentProviderForDefinition(agent) {
8
+ const providerId = agent.provider?.trim();
9
+ if (!providerId) {
10
+ return {
11
+ ok: false,
12
+ code: "missing_provider",
13
+ message: `Agent \`${agent.id}\` is missing a provider.`,
14
+ };
15
+ }
16
+ const provider = resolveAuthProvider(providerId);
17
+ if (!provider) {
18
+ return {
19
+ ok: false,
20
+ code: "unknown_provider",
21
+ message: `Unknown auth provider \`${providerId}\`.`,
22
+ };
23
+ }
24
+ return { ok: true, provider };
25
+ }
26
+ export async function stageAgentProviderState(options) {
27
+ const runtime = options.runtime ?? buildAuthRuntimeContext();
28
+ const resolution = resolveAgentProviderForDefinition(options.agent);
29
+ if (!resolution.ok) {
30
+ throw new ProviderResolutionError(resolution.code, resolution.message);
31
+ }
32
+ const includeConfigToml = options.includeConfigToml ?? shouldIncludeCodexConfigToml(options.root);
33
+ const stageResult = await resolution.provider.stage({
34
+ agentId: options.agent.id,
35
+ agentRoot: options.agentRoot,
36
+ runtime,
37
+ runId: options.runId ?? "runtime",
38
+ root: options.root,
39
+ includeConfigToml,
40
+ });
41
+ return {
42
+ env: stageResult.env,
43
+ context: {
44
+ provider: resolution.provider,
45
+ sandboxPath: stageResult.sandboxPath,
46
+ runtime,
47
+ agentId: options.agent.id,
48
+ },
49
+ };
50
+ }
51
+ export async function teardownProviderState(context) {
52
+ if (!context) {
53
+ return;
54
+ }
55
+ if (tornDownContexts.has(context)) {
56
+ return;
57
+ }
58
+ tornDownContexts.add(context);
59
+ try {
60
+ if (context.provider.teardown) {
61
+ try {
62
+ await context.provider.teardown({
63
+ sandboxPath: context.sandboxPath,
64
+ });
65
+ }
66
+ catch (error) {
67
+ if (!isIgnorableTeardownError(error)) {
68
+ throw error;
69
+ }
70
+ }
71
+ }
72
+ await rm(context.sandboxPath, { recursive: true, force: true });
73
+ }
74
+ catch (error) {
75
+ tornDownContexts.delete(context);
76
+ throw error;
77
+ }
78
+ }
79
+ export function extractProviderErrorMessage(error) {
80
+ if (error instanceof Error && error.message) {
81
+ return error.message;
82
+ }
83
+ return toErrorMessage(error);
84
+ }
85
+ const tornDownContexts = new WeakSet();
86
+ function shouldIncludeCodexConfigToml(root) {
87
+ const settings = loadRepoSettings({ root });
88
+ return settings.bounded.codex.globalConfigPolicy !== "ignore";
89
+ }
90
+ function isIgnorableTeardownError(error) {
91
+ if (!isFileSystemError(error)) {
92
+ return false;
93
+ }
94
+ return error.code === "ENOENT";
95
+ }
96
+ export class ProviderResolutionError extends Error {
97
+ code;
98
+ constructor(code, message) {
99
+ super(message);
100
+ this.code = code;
101
+ this.name = "ProviderResolutionError";
102
+ }
103
+ }
@@ -0,0 +1,27 @@
1
+ import type { AuthRuntimeContext } from "../../auth/providers/types.js";
2
+ import type { AgentDefinition } from "../../configs/agents/types.js";
3
+ import { type StagedProviderStateContext } from "../launch/provider-state.js";
4
+ export interface StagedAuthContext {
5
+ provider: StagedProviderStateContext["provider"];
6
+ sandboxPath: StagedProviderStateContext["sandboxPath"];
7
+ runtime: StagedProviderStateContext["runtime"];
8
+ agentId: StagedProviderStateContext["agentId"];
9
+ }
10
+ export interface StageAuthOptions {
11
+ agent: AgentDefinition;
12
+ agentRoot: string;
13
+ root: string;
14
+ runId?: string;
15
+ runtime?: AuthRuntimeContext;
16
+ }
17
+ export interface StageAuthResult {
18
+ env: Record<string, string>;
19
+ context: StagedAuthContext;
20
+ }
21
+ export interface AgentProviderPreflightIssue {
22
+ readonly agentId: string;
23
+ readonly message: string;
24
+ }
25
+ export declare function verifyAgentProviders(agents: readonly Pick<AgentDefinition, "id" | "provider">[]): Promise<readonly AgentProviderPreflightIssue[]>;
26
+ export declare function stageAgentAuth(options: StageAuthOptions): Promise<StageAuthResult>;
27
+ export declare function teardownAuthContext(context: StagedAuthContext | undefined): Promise<void>;
@@ -0,0 +1,72 @@
1
+ import { resolveAuthProvider } from "../../auth/providers/index.js";
2
+ import { buildAuthRuntimeContext } from "../../auth/runtime.js";
3
+ import { extractProviderErrorMessage, ProviderResolutionError, stageAgentProviderState, teardownProviderState, } from "../launch/provider-state.js";
4
+ import { AuthProviderStageError, MissingAgentProviderError, UnknownAuthProviderError, } from "./errors.js";
5
+ import { getRunCommand } from "./launcher.js";
6
+ import { checkPlatformSupport } from "./sandbox.js";
7
+ export async function verifyAgentProviders(agents) {
8
+ if (agents.length === 0) {
9
+ return [];
10
+ }
11
+ // Ensure platform and runtime dependencies are present.
12
+ checkPlatformSupport();
13
+ await getRunCommand();
14
+ const runtime = buildAuthRuntimeContext();
15
+ const issues = [];
16
+ for (const agent of agents) {
17
+ const providerId = agent.provider?.trim();
18
+ if (!providerId) {
19
+ issues.push({ agentId: agent.id, message: "missing `provider`" });
20
+ continue;
21
+ }
22
+ const provider = resolveAuthProvider(providerId);
23
+ if (!provider) {
24
+ issues.push({
25
+ agentId: agent.id,
26
+ message: `unknown auth provider \`${providerId}\``,
27
+ });
28
+ continue;
29
+ }
30
+ try {
31
+ await provider.verify({ agentId: agent.id, runtime });
32
+ }
33
+ catch (error) {
34
+ pushIssueLines(issues, agent.id, extractAuthProviderMessage(error));
35
+ }
36
+ }
37
+ return issues;
38
+ }
39
+ export async function stageAgentAuth(options) {
40
+ try {
41
+ return await stageAgentProviderState(options);
42
+ }
43
+ catch (error) {
44
+ if (error instanceof ProviderResolutionError) {
45
+ if (error.code === "missing_provider") {
46
+ throw new MissingAgentProviderError(options.agent.id);
47
+ }
48
+ const providerId = options.agent.provider?.trim() ?? "";
49
+ throw new UnknownAuthProviderError(providerId);
50
+ }
51
+ throw new AuthProviderStageError(extractAuthProviderMessage(error));
52
+ }
53
+ }
54
+ export async function teardownAuthContext(context) {
55
+ await teardownProviderState(context);
56
+ }
57
+ function extractAuthProviderMessage(error) {
58
+ return extractProviderErrorMessage(error);
59
+ }
60
+ function pushIssueLines(issues, agentId, message) {
61
+ const lines = message
62
+ .split(/\r?\n/u)
63
+ .map((line) => line.trim())
64
+ .filter((line) => line.length > 0);
65
+ if (lines.length === 0) {
66
+ issues.push({ agentId, message: "unknown error" });
67
+ return;
68
+ }
69
+ for (const line of lines) {
70
+ issues.push({ agentId, message: line });
71
+ }
72
+ }
@@ -0,0 +1,5 @@
1
+ import type { AgentRuntimeChatResult } from "./types.js";
2
+ export declare function captureAgentChatArtifacts(options: {
3
+ providerId: string | undefined;
4
+ agentRoot: string;
5
+ }): Promise<AgentRuntimeChatResult>;
@@ -0,0 +1,7 @@
1
+ import { collectProviderArtifacts } from "../launch/chat.js";
2
+ export async function captureAgentChatArtifacts(options) {
3
+ return await collectProviderArtifacts({
4
+ providerId: options.providerId,
5
+ sessionRoot: options.agentRoot,
6
+ });
7
+ }
@@ -0,0 +1,27 @@
1
+ import { DisplayableError } from "../../utils/errors.js";
2
+ export type AgentRuntimeErrorKind = "auth" | "manifest" | "sandbox" | "process";
3
+ export declare class AgentRuntimeError extends DisplayableError {
4
+ readonly kind: AgentRuntimeErrorKind;
5
+ constructor(kind: AgentRuntimeErrorKind, message: string);
6
+ }
7
+ export declare class MissingAgentProviderError extends AgentRuntimeError {
8
+ constructor(agentId: string);
9
+ }
10
+ export declare class UnknownAuthProviderError extends AgentRuntimeError {
11
+ constructor(providerId: string);
12
+ }
13
+ export declare class AuthProviderVerificationError extends AgentRuntimeError {
14
+ constructor(detail: string);
15
+ }
16
+ export declare class AuthProviderStageError extends AgentRuntimeError {
17
+ constructor(detail: string);
18
+ }
19
+ export declare class AgentRuntimeManifestError extends AgentRuntimeError {
20
+ constructor(detail: string);
21
+ }
22
+ export declare class AgentRuntimeSandboxError extends AgentRuntimeError {
23
+ constructor(detail: string);
24
+ }
25
+ export declare class AgentRuntimeProcessError extends AgentRuntimeError {
26
+ constructor(detail: string);
27
+ }
@@ -0,0 +1,51 @@
1
+ import { DisplayableError } from "../../utils/errors.js";
2
+ export class AgentRuntimeError extends DisplayableError {
3
+ kind;
4
+ constructor(kind, message) {
5
+ super(message);
6
+ this.kind = kind;
7
+ this.name = "AgentRuntimeError";
8
+ }
9
+ }
10
+ export class MissingAgentProviderError extends AgentRuntimeError {
11
+ constructor(agentId) {
12
+ super("auth", `Agent \`${agentId}\` is missing a provider.`);
13
+ this.name = "MissingAgentProviderError";
14
+ }
15
+ }
16
+ export class UnknownAuthProviderError extends AgentRuntimeError {
17
+ constructor(providerId) {
18
+ super("auth", `Unknown auth provider \`${providerId}\`.`);
19
+ this.name = "UnknownAuthProviderError";
20
+ }
21
+ }
22
+ export class AuthProviderVerificationError extends AgentRuntimeError {
23
+ constructor(detail) {
24
+ super("auth", detail);
25
+ this.name = "AuthProviderVerificationError";
26
+ }
27
+ }
28
+ export class AuthProviderStageError extends AgentRuntimeError {
29
+ constructor(detail) {
30
+ super("auth", detail);
31
+ this.name = "AuthProviderStageError";
32
+ }
33
+ }
34
+ export class AgentRuntimeManifestError extends AgentRuntimeError {
35
+ constructor(detail) {
36
+ super("manifest", detail);
37
+ this.name = "AgentRuntimeManifestError";
38
+ }
39
+ }
40
+ export class AgentRuntimeSandboxError extends AgentRuntimeError {
41
+ constructor(detail) {
42
+ super("sandbox", detail);
43
+ this.name = "AgentRuntimeSandboxError";
44
+ }
45
+ }
46
+ export class AgentRuntimeProcessError extends AgentRuntimeError {
47
+ constructor(detail) {
48
+ super("process", detail);
49
+ this.name = "AgentRuntimeProcessError";
50
+ }
51
+ }
@@ -1,5 +1,4 @@
1
1
  export interface AgentFailureDetectionInput {
2
- agentId: string;
3
2
  provider: string;
4
3
  stdoutPath: string;
5
4
  stderrPath: string;