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,136 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { CLAUDE_OAUTH_RELOGIN_HINT, CLAUDE_PROVIDER_ID, } from "../../auth/providers/claude/constants.js";
3
+ const GEMINI_PROVIDER_ID = "gemini";
4
+ const CODEX_PROVIDER_ID = "codex";
5
+ const CLAUDE_FAILURE_PATTERNS = [
6
+ /Please run \/login/i,
7
+ /OAuth token has expired/i,
8
+ ];
9
+ const JSON_MESSAGE_PATTERN = /"message"\s*:\s*"((?:\\.|[^"\\])*)"/;
10
+ const JSON_RESULT_PATTERN = /"result"\s*:\s*"((?:\\.|[^"\\])*)"/;
11
+ export async function detectAgentProcessFailureDetail(input) {
12
+ if (input.provider !== CLAUDE_PROVIDER_ID &&
13
+ input.provider !== GEMINI_PROVIDER_ID &&
14
+ input.provider !== CODEX_PROVIDER_ID) {
15
+ return undefined;
16
+ }
17
+ const combinedLogs = await readCombinedLogs(input.stdoutPath, input.stderrPath);
18
+ if (!combinedLogs) {
19
+ return undefined;
20
+ }
21
+ if (input.provider === CLAUDE_PROVIDER_ID) {
22
+ if (CLAUDE_FAILURE_PATTERNS.some((pattern) => pattern.test(combinedLogs))) {
23
+ return CLAUDE_OAUTH_RELOGIN_HINT;
24
+ }
25
+ return (extractFirstJsonResult(combinedLogs) ??
26
+ extractFirstJsonMessage(combinedLogs) ??
27
+ extractClaudeFallbackLine(combinedLogs));
28
+ }
29
+ if (input.provider === GEMINI_PROVIDER_ID) {
30
+ return (extractFirstJsonMessage(combinedLogs) ??
31
+ extractGeminiFallbackLine(combinedLogs));
32
+ }
33
+ if (input.provider === CODEX_PROVIDER_ID) {
34
+ return (extractFirstJsonMessage(combinedLogs) ??
35
+ findFirstMatchingLine(combinedLogs, [
36
+ /invalid_request_error/,
37
+ /unsupported_value/,
38
+ /thread .* panicked/i,
39
+ ]));
40
+ }
41
+ return undefined;
42
+ }
43
+ function extractFirstJsonMessage(text) {
44
+ return extractFirstJsonStringField(text, JSON_MESSAGE_PATTERN);
45
+ }
46
+ function extractFirstJsonResult(text) {
47
+ return extractFirstJsonStringField(text, JSON_RESULT_PATTERN);
48
+ }
49
+ function extractFirstJsonStringField(text, pattern) {
50
+ const match = pattern.exec(text);
51
+ if (!match) {
52
+ return undefined;
53
+ }
54
+ const raw = match[1]?.trim();
55
+ if (!raw) {
56
+ return undefined;
57
+ }
58
+ try {
59
+ const parsed = JSON.parse(`"${raw}"`);
60
+ return isMeaningfulMessage(parsed) ? parsed : undefined;
61
+ }
62
+ catch {
63
+ return isMeaningfulMessage(raw) ? raw : undefined;
64
+ }
65
+ }
66
+ function isMeaningfulMessage(message) {
67
+ const normalized = message.trim();
68
+ if (!normalized) {
69
+ return false;
70
+ }
71
+ if (normalized === "[object Object]") {
72
+ return false;
73
+ }
74
+ return true;
75
+ }
76
+ function findFirstMatchingLine(text, matchers) {
77
+ const lines = text.split(/\r?\n/);
78
+ for (const line of lines) {
79
+ const trimmed = line.trim();
80
+ if (!trimmed)
81
+ continue;
82
+ for (const matcher of matchers) {
83
+ const match = matcher.exec(trimmed);
84
+ if (match) {
85
+ return trimmed.slice(match.index).trim();
86
+ }
87
+ }
88
+ }
89
+ return undefined;
90
+ }
91
+ function extractGeminiFallbackLine(text) {
92
+ return findFirstMatchingLine(text, [
93
+ /TerminalQuotaError:/,
94
+ /PERMISSION_DENIED/,
95
+ /RESOURCE_EXHAUSTED/,
96
+ /No capacity available/i,
97
+ /You have exhausted your capacity/i,
98
+ /exhausted your capacity/i,
99
+ ]);
100
+ }
101
+ function extractClaudeFallbackLine(text) {
102
+ const matched = findFirstMatchingLine(text, [
103
+ /.*hit your limit.*/i,
104
+ /.*usage limit.*/i,
105
+ /.*quota.*/i,
106
+ /.*capacity.*/i,
107
+ /.*rate limit.*/i,
108
+ /.*resource[_\s-]*exhausted.*/i,
109
+ ]);
110
+ if (matched) {
111
+ return matched;
112
+ }
113
+ return findFirstMatchingLine(text, [
114
+ /hit your limit/i,
115
+ /usage limit/i,
116
+ /quota/i,
117
+ /capacity/i,
118
+ /rate limit/i,
119
+ /resource[_\s-]*exhausted/i,
120
+ ]);
121
+ }
122
+ async function readCombinedLogs(stdoutPath, stderrPath) {
123
+ const [stdout, stderr] = await Promise.all([
124
+ safeRead(stdoutPath),
125
+ safeRead(stderrPath),
126
+ ]);
127
+ return `${stdout}\n${stderr}`;
128
+ }
129
+ async function safeRead(path) {
130
+ try {
131
+ return await readFile(path, "utf8");
132
+ }
133
+ catch {
134
+ return "";
135
+ }
136
+ }
@@ -0,0 +1,2 @@
1
+ import type { AgentRuntimeHarnessInput, AgentRuntimeHarnessResult } from "./types.js";
2
+ export declare function runSandboxedAgent(input: AgentRuntimeHarnessInput): Promise<AgentRuntimeHarnessResult>;
@@ -0,0 +1,119 @@
1
+ import { mkdir, rm } from "node:fs/promises";
2
+ import { dirname } from "node:path";
3
+ import { loadSandboxProviderConfig } from "../../configs/sandbox/loader.js";
4
+ import { toErrorMessage } from "../../utils/errors.js";
5
+ import { writeStagedPrompt } from "../launch/prompt.js";
6
+ import { stageAgentAuth } from "./auth.js";
7
+ import { captureAgentChatArtifacts } from "./chat.js";
8
+ import { AgentRuntimeError, AgentRuntimeProcessError, AgentRuntimeSandboxError, } from "./errors.js";
9
+ import { configureSandboxSettings, runAgentProcess } from "./launcher.js";
10
+ import { writeAgentManifest } from "./manifest.js";
11
+ import { registerStagedAuthContext, teardownRegisteredAuthContext, } from "./registry.js";
12
+ import { DEFAULT_DENIAL_BACKOFF } from "./sandbox.js";
13
+ export async function runSandboxedAgent(input) {
14
+ const { root, agent, prompt, environment, paths, sandboxStageId = "run", sessionId, sandboxProviderId, sandboxPolicyOverrides, extraWriteProtectedPaths, extraReadProtectedPaths, captureChat = true, teardownAuthOnExit = true, onWatchdogTrigger, } = input;
15
+ const providerId = sandboxProviderId ?? agent.provider ?? "";
16
+ if (!providerId) {
17
+ throw new AgentRuntimeSandboxError(`Agent \`${agent.id}\` is missing a provider.`);
18
+ }
19
+ await mkdir(dirname(paths.runtimeManifestPath), { recursive: true });
20
+ await mkdir(dirname(paths.sandboxSettingsPath), { recursive: true });
21
+ await mkdir(dirname(paths.stdoutPath), { recursive: true });
22
+ await mkdir(dirname(paths.stderrPath), { recursive: true });
23
+ const promptPath = await writeStagedPrompt({
24
+ runtimePath: paths.runtimePath,
25
+ prompt,
26
+ });
27
+ let authContext;
28
+ try {
29
+ const staged = await stageAgentAuth({
30
+ agent,
31
+ agentRoot: paths.agentRoot,
32
+ root,
33
+ runId: sessionId,
34
+ });
35
+ authContext = staged.context;
36
+ if (sessionId) {
37
+ registerStagedAuthContext(sessionId, authContext);
38
+ }
39
+ const manifestEnv = await writeAgentManifest({
40
+ agent,
41
+ runtimeManifestPath: paths.runtimeManifestPath,
42
+ promptPath,
43
+ workspacePath: paths.workspacePath,
44
+ env: staged.env,
45
+ environment,
46
+ });
47
+ const denialBackoff = resolveDenialBackoff({
48
+ root,
49
+ providerId,
50
+ override: input.denialBackoff,
51
+ });
52
+ const { sandboxSettings } = await configureSandboxSettings({
53
+ sandboxHomePath: paths.sandboxHomePath,
54
+ workspacePath: paths.workspacePath,
55
+ providerId,
56
+ stageId: sandboxStageId,
57
+ root,
58
+ sandboxSettingsPath: paths.sandboxSettingsPath,
59
+ runtimePath: paths.runtimePath,
60
+ artifactsPath: paths.artifactsPath,
61
+ policyOverrides: sandboxPolicyOverrides,
62
+ extraWriteProtectedPaths,
63
+ extraReadProtectedPaths,
64
+ });
65
+ const processResult = await runAgentProcess({
66
+ runtimeManifestPath: paths.runtimeManifestPath,
67
+ agentRoot: paths.agentRoot,
68
+ stdoutPath: paths.stdoutPath,
69
+ stderrPath: paths.stderrPath,
70
+ sandboxSettingsPath: paths.sandboxSettingsPath,
71
+ providerId,
72
+ denialBackoff,
73
+ onWatchdogTrigger,
74
+ });
75
+ const chat = captureChat
76
+ ? await captureAgentChatArtifacts({
77
+ providerId: agent.provider,
78
+ agentRoot: paths.agentRoot,
79
+ })
80
+ : undefined;
81
+ return {
82
+ exitCode: processResult.exitCode,
83
+ errorMessage: processResult.errorMessage,
84
+ signal: processResult.signal,
85
+ watchdog: processResult.watchdog,
86
+ failFast: processResult.failFast,
87
+ sandboxSettings,
88
+ manifestEnv,
89
+ ...(chat ? { chat } : {}),
90
+ };
91
+ }
92
+ catch (error) {
93
+ if (error instanceof AgentRuntimeError) {
94
+ throw error;
95
+ }
96
+ throw new AgentRuntimeProcessError(error instanceof Error ? error.message : toErrorMessage(error));
97
+ }
98
+ finally {
99
+ await rm(promptPath, { force: true }).catch(() => { });
100
+ if (teardownAuthOnExit || !sessionId) {
101
+ await teardownRegisteredAuthContext(sessionId ?? "runtime", authContext).catch(() => { });
102
+ }
103
+ }
104
+ }
105
+ function resolveDenialBackoff(options) {
106
+ if (options.override) {
107
+ return options.override;
108
+ }
109
+ try {
110
+ const config = loadSandboxProviderConfig({
111
+ root: options.root,
112
+ providerId: options.providerId,
113
+ });
114
+ return config.denialBackoff;
115
+ }
116
+ catch {
117
+ return DEFAULT_DENIAL_BACKOFF;
118
+ }
119
+ }
@@ -1,7 +1,8 @@
1
- import type { DenialBackoffConfig } from "../../../configs/sandbox/types.js";
2
- import type { WatchdogMetadata } from "../../../records/types.js";
3
- import type { AgentWorkspacePaths } from "../../../workspace/layout.js";
4
- import { type SandboxFailFastInfo } from "../sandbox.js";
1
+ import type { DenialBackoffConfig } from "../../configs/sandbox/types.js";
2
+ import type { WatchdogMetadata } from "../../domain/run/model/types.js";
3
+ import type { SandboxStageId } from "./policy.js";
4
+ import { generateSandboxSettings, type SandboxFailFastInfo } from "./sandbox.js";
5
+ import type { SandboxPolicyOverrides } from "./types.js";
5
6
  import { type WatchdogTrigger } from "./watchdog.js";
6
7
  export interface AgentProcessOptions {
7
8
  runtimeManifestPath: string;
@@ -37,11 +38,22 @@ export interface RunInvocation {
37
38
  }
38
39
  export type RunInvocationResolver = (context: RunInvocationContext) => Promise<RunInvocation> | RunInvocation;
39
40
  export interface SandboxSettingsInput {
40
- workspacePaths: AgentWorkspacePaths;
41
+ stageId?: SandboxStageId;
42
+ sandboxHomePath: string;
43
+ workspacePath: string;
41
44
  providerId: string;
42
45
  root: string;
46
+ repoRootPath?: string;
47
+ sandboxSettingsPath: string;
48
+ runtimePath: string;
49
+ artifactsPath: string;
50
+ policyOverrides?: SandboxPolicyOverrides;
51
+ extraWriteProtectedPaths?: readonly string[];
52
+ extraReadProtectedPaths?: readonly string[];
43
53
  }
44
- export declare function configureSandboxSettings(input: SandboxSettingsInput): Promise<void>;
54
+ export declare function configureSandboxSettings(input: SandboxSettingsInput): Promise<{
55
+ sandboxSettings: ReturnType<typeof generateSandboxSettings>;
56
+ }>;
45
57
  export declare function getRunCommand(): Promise<string>;
46
58
  export declare function runAgentProcess(options: AgentProcessOptions): Promise<AgentProcessResult>;
47
59
  export declare function stageManifestForSandbox(options: {
@@ -1,31 +1,21 @@
1
1
  import { constants as fsConstants, createWriteStream, existsSync, } from "node:fs";
2
2
  import { access, readFile, writeFile } from "node:fs/promises";
3
3
  import { dirname, isAbsolute, relative as relativePath } from "node:path";
4
- import { getCliAssetPath, resolveCliAssetRoot, } from "../../../utils/cli-root.js";
5
- import { resolvePath } from "../../../utils/path.js";
6
- import { spawnStreamingProcess } from "../../../utils/process.js";
7
- import { ARTIFACTS_DIRNAME, EVALS_DIRNAME, } from "../../../workspace/structure.js";
8
- import { AgentProcessError } from "../errors.js";
9
- import { generateSandboxSettings, resolveSrtBinary, writeSandboxSettings, } from "../sandbox.js";
4
+ import { getCliAssetPath, resolveCliAssetRoot } from "../../utils/cli-root.js";
5
+ import { resolvePath } from "../../utils/path.js";
6
+ import { spawnStreamingProcess, } from "../../utils/process.js";
7
+ import { AgentRuntimeProcessError } from "./errors.js";
8
+ import { generateSandboxSettings, resolveSrtBinary, writeSandboxSettings, } from "./sandbox.js";
10
9
  import { createWatchdog, WATCHDOG_DEFAULTS, } from "./watchdog.js";
11
- const DEFAULT_SRT_ARGUMENTS = ["--debug"];
12
10
  const SRT_BINARY_ENV = "VORATIQ_SRT_BINARY";
13
11
  let cachedSrtBinaryPath;
14
12
  export async function configureSandboxSettings(input) {
15
- const { workspacePaths, providerId, root } = input;
16
- const artifactsPath = resolvePath(workspacePaths.agentRoot, ARTIFACTS_DIRNAME);
17
- const evalsPath = resolvePath(workspacePaths.agentRoot, EVALS_DIRNAME);
18
13
  const sandboxSettings = generateSandboxSettings({
19
- sandboxHomePath: workspacePaths.sandboxHomePath,
20
- workspacePath: workspacePaths.workspacePath,
21
- provider: providerId,
22
- root,
23
- sandboxSettingsPath: workspacePaths.sandboxSettingsPath,
24
- runtimePath: workspacePaths.runtimePath,
25
- artifactsPath,
26
- evalsPath,
14
+ ...input,
15
+ repoRootPath: input.repoRootPath ?? input.root,
27
16
  });
28
- await writeSandboxSettings(workspacePaths.sandboxSettingsPath, sandboxSettings);
17
+ await writeSandboxSettings(input.sandboxSettingsPath, sandboxSettings);
18
+ return { sandboxSettings };
29
19
  }
30
20
  export async function getRunCommand() {
31
21
  const { X_OK } = fsConstants;
@@ -34,14 +24,13 @@ export async function getRunCommand() {
34
24
  await access(binaryPath, X_OK);
35
25
  }
36
26
  catch {
37
- throw new Error(`Sandbox Runtime binary not found or not executable at ${binaryPath}. Please reinstall dependencies with 'npm install'.`);
27
+ throw new Error(`Sandbox runtime binary is missing or not executable at \`${binaryPath}\`. Run \`npm install\` to reinstall dependencies.`);
38
28
  }
39
29
  return binaryPath;
40
30
  }
41
31
  function getRunArgs(options) {
42
32
  const { settingsArg, configArg, shimEntryPath } = options;
43
33
  return [
44
- ...DEFAULT_SRT_ARGUMENTS,
45
34
  "--settings",
46
35
  settingsArg,
47
36
  "--",
@@ -66,9 +55,7 @@ export async function runAgentProcess(options) {
66
55
  const stderrStream = createWriteStream(stderrPath, { flags: "w" });
67
56
  const shimEntryPath = resolveShimEntryPath();
68
57
  if (!existsSync(shimEntryPath)) {
69
- throw new AgentProcessError({
70
- detail: `Shim entry point missing at ${shimEntryPath}`,
71
- });
58
+ throw new AgentRuntimeProcessError(`Shim entry point is missing at \`${shimEntryPath}\`.`);
72
59
  }
73
60
  const manifestArgPath = await stageManifestForSandbox({
74
61
  runtimeManifestPath,
@@ -85,9 +72,7 @@ export async function runAgentProcess(options) {
85
72
  shimEntryPath,
86
73
  });
87
74
  let watchdogController;
88
- // Track abort signal subscription for cleanup
89
75
  let abortSignalHandler;
90
- // Shared abort controller - watchdog will fire it, spawnStreamingProcess will listen
91
76
  const forceAbortController = new AbortController();
92
77
  let exitCode;
93
78
  let signal;
@@ -97,9 +82,9 @@ export async function runAgentProcess(options) {
97
82
  command,
98
83
  args,
99
84
  cwd: agentRoot,
85
+ env: { SRT_DEBUG: process.env.SRT_DEBUG ?? "1" },
100
86
  stdout: { writable: stdoutStream },
101
87
  stderr: { writable: stderrStream },
102
- // Spawn in new process group to enable killing entire process tree
103
88
  detached: true,
104
89
  onSpawn: (child) => {
105
90
  watchdogController = createWatchdog(child, stderrStream, {
@@ -107,12 +92,11 @@ export async function runAgentProcess(options) {
107
92
  onWatchdogTrigger,
108
93
  denialBackoff,
109
94
  });
110
- // Bridge watchdog's abort signal to our shared abort controller
111
95
  abortSignalHandler = () => forceAbortController.abort();
112
96
  watchdogController.abortSignal.addEventListener("abort", abortSignalHandler, { once: true });
113
97
  },
114
- onData: (chunk) => {
115
- watchdogController?.handleOutput(chunk);
98
+ onData: (chunk, source) => {
99
+ watchdogController?.handleOutput(chunk, source);
116
100
  },
117
101
  abortSignal: forceAbortController.signal,
118
102
  });
@@ -121,12 +105,10 @@ export async function runAgentProcess(options) {
121
105
  aborted = result.aborted ?? false;
122
106
  }
123
107
  finally {
124
- // Clean up abort signal listener
125
108
  if (abortSignalHandler && watchdogController) {
126
109
  watchdogController.abortSignal.removeEventListener("abort", abortSignalHandler);
127
110
  }
128
111
  watchdogController?.cleanup();
129
- // Ensure streams are fully closed to prevent hanging on exit
130
112
  if (!stdoutStream.closed) {
131
113
  stdoutStream.end();
132
114
  }
@@ -152,7 +134,7 @@ export async function runAgentProcess(options) {
152
134
  const watchdog = {
153
135
  silenceTimeoutMs: WATCHDOG_DEFAULTS.silenceTimeoutMs,
154
136
  wallClockCapMs: WATCHDOG_DEFAULTS.wallClockCapMs,
155
- trigger: watchdogTrigger,
137
+ ...(watchdogTrigger ? { trigger: watchdogTrigger } : {}),
156
138
  };
157
139
  return { exitCode, errorMessage, signal, watchdog, failFast };
158
140
  }
@@ -164,9 +146,7 @@ export async function stageManifestForSandbox(options) {
164
146
  }
165
147
  catch (error) {
166
148
  const detail = error instanceof Error ? error.message : String(error);
167
- throw new AgentProcessError({
168
- detail: `Failed to read manifest at "${runtimeManifestPath}": ${detail}`,
169
- });
149
+ throw new AgentRuntimeProcessError(`Failed to read manifest at \`${runtimeManifestPath}\`: ${detail}`);
170
150
  }
171
151
  let manifest;
172
152
  try {
@@ -174,9 +154,7 @@ export async function stageManifestForSandbox(options) {
174
154
  }
175
155
  catch (error) {
176
156
  const detail = error instanceof Error ? error.message : String(error);
177
- throw new AgentProcessError({
178
- detail: `Manifest JSON at "${runtimeManifestPath}" is invalid: ${detail}`,
179
- });
157
+ throw new AgentRuntimeProcessError(`Manifest JSON at \`${runtimeManifestPath}\` is invalid: ${detail}`);
180
158
  }
181
159
  const manifestDir = dirname(runtimeManifestPath);
182
160
  const promptAbsolute = isAbsolute(manifest.promptPath)
@@ -1,9 +1,10 @@
1
- import type { AgentDefinition } from "../../../configs/agents/types.js";
2
- import { type EnvironmentConfig } from "../../../configs/environment/types.js";
3
- import type { AgentWorkspacePaths } from "../../../workspace/layout.js";
1
+ import type { AgentDefinition } from "../../configs/agents/types.js";
2
+ import type { EnvironmentConfig } from "../../configs/environment/types.js";
4
3
  export interface ManifestWriteOptions {
5
4
  agent: AgentDefinition;
6
- workspacePaths: AgentWorkspacePaths;
5
+ runtimeManifestPath: string;
6
+ promptPath: string;
7
+ workspacePath: string;
7
8
  env?: Record<string, string>;
8
9
  environment: EnvironmentConfig;
9
10
  }
@@ -13,5 +14,4 @@ export declare function composeManifestEnvironment(options: {
13
14
  workspacePath: string;
14
15
  environment: EnvironmentConfig;
15
16
  }): Promise<Record<string, string>>;
16
- export declare function mergePathEntries(prepends: readonly string[], existing: string): string;
17
- export declare function normalizeRelative(origin: string, target: string): string;
17
+ export { mergePathEntries, normalizeRelative } from "../launch/environment.js";
@@ -0,0 +1,34 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import { dirname } from "node:path";
3
+ import { composeLaunchEnvironment, normalizeRelative as normalizeRelativePath, } from "../launch/environment.js";
4
+ import { AgentRuntimeManifestError } from "./errors.js";
5
+ export async function writeAgentManifest(options) {
6
+ const { agent, runtimeManifestPath, promptPath, workspacePath, env = {}, environment, } = options;
7
+ const manifestDir = dirname(runtimeManifestPath);
8
+ const manifestEnv = await composeManifestEnvironment({
9
+ baseEnv: env,
10
+ workspacePath,
11
+ environment,
12
+ });
13
+ const manifest = {
14
+ binary: agent.binary,
15
+ argv: [...agent.argv],
16
+ // Keep relative paths for readability; the launcher will normalize to absolutes.
17
+ promptPath: normalizeRelativePath(manifestDir, promptPath),
18
+ workspace: normalizeRelativePath(manifestDir, workspacePath),
19
+ env: manifestEnv,
20
+ };
21
+ try {
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
+ catch (error) {
28
+ throw new AgentRuntimeManifestError(error instanceof Error ? error.message : String(error));
29
+ }
30
+ }
31
+ export async function composeManifestEnvironment(options) {
32
+ return await composeLaunchEnvironment(options);
33
+ }
34
+ export { mergePathEntries, normalizeRelative } from "../launch/environment.js";
@@ -0,0 +1,32 @@
1
+ import type { SandboxFilesystemConfig, SandboxNetworkConfig } from "../../configs/sandbox/types.js";
2
+ import type { SandboxPolicyOverrides } from "./types.js";
3
+ export type SandboxStageId = "spec" | "run" | "reduce" | "verify" | "message";
4
+ export interface BuildSandboxPolicyInput {
5
+ stageId: SandboxStageId;
6
+ root: string;
7
+ workspacePath: string;
8
+ sandboxHomePath: string;
9
+ sandboxSettingsPath: string;
10
+ runtimePath: string;
11
+ artifactsPath: string;
12
+ repoRootPath?: string;
13
+ providerFilesystem: SandboxFilesystemConfig;
14
+ providerNetwork: SandboxNetworkConfig;
15
+ policyOverrides?: SandboxPolicyOverrides;
16
+ stageDenyWritePaths?: readonly string[];
17
+ stageDenyReadPaths?: readonly string[];
18
+ }
19
+ export interface NormalizeFilesystemPolicyInput {
20
+ workspacePath: string;
21
+ filesystem: SandboxFilesystemConfig;
22
+ }
23
+ export interface NormalizeNetworkPolicyInput {
24
+ workspacePath: string;
25
+ network: SandboxNetworkConfig;
26
+ }
27
+ export declare function buildSandboxPolicy(input: BuildSandboxPolicyInput): {
28
+ filesystem: SandboxFilesystemConfig;
29
+ network: SandboxNetworkConfig;
30
+ };
31
+ export declare function normalizeFilesystemPolicy(input: NormalizeFilesystemPolicyInput): SandboxFilesystemConfig;
32
+ export declare function normalizeNetworkPolicy(input: NormalizeNetworkPolicyInput): SandboxNetworkConfig;