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,37 @@
1
+ import { resolveLifecycleExecutionDurationMs, } from "../../domain/shared/lifecycle.js";
2
+ export function resolveRenderLifecycleDurationMs(options) {
3
+ return resolveLifecycleExecutionDurationMs(options.lifecycle, {
4
+ statusGroups: {
5
+ running: ["running"],
6
+ terminal: options.terminalStatuses,
7
+ },
8
+ now: options.now,
9
+ });
10
+ }
11
+ export function formatRenderLifecycleDuration(options) {
12
+ const durationMs = resolveRenderLifecycleDurationMs(options);
13
+ if (durationMs === undefined) {
14
+ return undefined;
15
+ }
16
+ return formatDurationLabel(durationMs);
17
+ }
18
+ export function formatDurationLabel(durationMs) {
19
+ if (!Number.isFinite(durationMs) || durationMs < 0) {
20
+ return undefined;
21
+ }
22
+ const totalSeconds = Math.round(durationMs / 1000);
23
+ const hours = Math.floor(totalSeconds / 3600);
24
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
25
+ const seconds = totalSeconds % 60;
26
+ const parts = [];
27
+ if (hours > 0) {
28
+ parts.push(`${hours}h`);
29
+ }
30
+ if (minutes > 0) {
31
+ parts.push(`${minutes}m`);
32
+ }
33
+ if (seconds > 0 || parts.length === 0) {
34
+ parts.push(`${seconds}s`);
35
+ }
36
+ return parts.join(" ");
37
+ }
@@ -0,0 +1,6 @@
1
+ type CliWriter = Pick<NodeJS.WriteStream, "write">;
2
+ export interface InteractiveFrameRenderer {
3
+ render(lines: readonly string[]): void;
4
+ }
5
+ export declare function createInteractiveFrameRenderer(stdout: CliWriter): InteractiveFrameRenderer;
6
+ export {};
@@ -0,0 +1,38 @@
1
+ const ERASE_LINE = "\u001b[2K";
2
+ const CURSOR_COLUMN_START = "\u001b[0G";
3
+ export function createInteractiveFrameRenderer(stdout) {
4
+ let blockInitialized = false;
5
+ let lastRenderedLines = 0;
6
+ return {
7
+ render(lines) {
8
+ if (lines.length === 0) {
9
+ return;
10
+ }
11
+ if (!blockInitialized) {
12
+ stdout.write(lines.join("\n"));
13
+ lastRenderedLines = lines.length;
14
+ blockInitialized = true;
15
+ return;
16
+ }
17
+ const linesToRewind = Math.max(0, lastRenderedLines - 1);
18
+ if (linesToRewind > 0) {
19
+ stdout.write(cursorUp(linesToRewind));
20
+ }
21
+ stdout.write(CURSOR_COLUMN_START);
22
+ const totalLines = Math.max(lastRenderedLines, lines.length);
23
+ const rewrittenLines = [];
24
+ for (let index = 0; index < totalLines; index += 1) {
25
+ const line = lines[index] ?? "";
26
+ rewrittenLines.push(CURSOR_COLUMN_START, ERASE_LINE, line);
27
+ if (index < totalLines - 1) {
28
+ rewrittenLines.push("\n");
29
+ }
30
+ }
31
+ stdout.write(rewrittenLines.join(""));
32
+ lastRenderedLines = totalLines;
33
+ },
34
+ };
35
+ }
36
+ function cursorUp(lines) {
37
+ return `\u001b[${lines}F`;
38
+ }
@@ -1,6 +1,5 @@
1
- const RUN_TIME_ZONE = "America/Los_Angeles";
2
- const RUN_TIMESTAMP_FORMAT = new Intl.DateTimeFormat("en-CA", {
3
- timeZone: RUN_TIME_ZONE,
1
+ import { createLocalDateTimeFormatter, formatLocalTimeZoneLabel, } from "./timezone.js";
2
+ const RUN_TIMESTAMP_FORMAT = createLocalDateTimeFormatter({
4
3
  year: "numeric",
5
4
  month: "2-digit",
6
5
  day: "2-digit",
@@ -24,7 +23,8 @@ export function formatRunTimestamp(isoTimestamp) {
24
23
  if (!year || !month || !day || !hour || !minute) {
25
24
  return isoTimestamp;
26
25
  }
27
- return `${year}-${month}-${day} ${hour}:${minute}`;
26
+ const timeZoneLabel = formatLocalTimeZoneLabel(date);
27
+ return `${year}-${month}-${day} ${hour}:${minute} ${timeZoneLabel}`;
28
28
  }
29
29
  catch {
30
30
  return isoTimestamp;
@@ -1,16 +1,10 @@
1
1
  import type { RunStatus } from "../../status/index.js";
2
+ import type { TranscriptShellStyleOptions } from "./transcript-shell.js";
2
3
  export interface RunDisplayInfo {
3
4
  runId: string;
4
5
  status?: RunStatus;
5
- specPath?: string;
6
6
  workspacePath?: string;
7
+ elapsed?: string;
7
8
  createdAt?: string;
8
- baseRevisionSha?: string;
9
9
  }
10
- type RunMetadataRow = {
11
- label: string;
12
- value: string;
13
- };
14
- export declare function getRunMetadata(info: RunDisplayInfo): RunMetadataRow[];
15
- export declare function buildRunMetadataSection(info: RunDisplayInfo): string[];
16
- export {};
10
+ export declare function buildRunMetadataSectionWithStyle(info: RunDisplayInfo, style?: TranscriptShellStyleOptions): string[];
@@ -1,50 +1,18 @@
1
1
  import { getRunStatusStyle } from "../../status/colors.js";
2
- import { colorize } from "../../utils/colors.js";
3
- import { formatRunBadge } from "./badges.js";
4
- import { renderTable } from "./table.js";
5
- export function getRunMetadata(info) {
6
- const detailRows = [
7
- { label: "Created", value: info.createdAt },
8
- { label: "Spec", value: info.specPath },
9
- { label: "Workspace", value: info.workspacePath },
10
- {
11
- label: "Base Revision",
12
- value: info.baseRevisionSha
13
- ? info.baseRevisionSha.slice(0, 8)
14
- : undefined,
15
- },
16
- ];
17
- return detailRows.filter((row) => typeof row.value === "string" && row.value.length > 0);
18
- }
19
- export function buildRunMetadataSection(info) {
20
- const lines = [];
21
- const badge = formatRunBadge(info.runId);
22
- if (info.status) {
23
- const statusStyle = getRunStatusStyle(info.status);
24
- lines.push(`${badge} ${colorize(info.status.toUpperCase(), statusStyle.cli)}`);
25
- }
26
- else {
27
- lines.push(badge);
28
- }
29
- const detailRows = getRunMetadata(info);
30
- if (detailRows.length > 0) {
31
- const tableLines = renderTable({
32
- columns: [
33
- {
34
- header: "FIELD",
35
- accessor: (row) => row.label,
36
- },
37
- {
38
- header: "VALUE",
39
- accessor: (row) => row.value ?? "—",
40
- },
41
- ],
42
- rows: detailRows,
43
- });
44
- const [, ...bodyLines] = tableLines;
45
- if (bodyLines.length > 0) {
46
- lines.push("", ...bodyLines);
47
- }
48
- }
49
- return lines;
2
+ import { buildStandardSessionShellSection } from "./transcript-shell.js";
3
+ export function buildRunMetadataSectionWithStyle(info, style = {}) {
4
+ return buildStandardSessionShellSection({
5
+ badgeText: info.runId,
6
+ badgeVariant: "run",
7
+ status: info.status
8
+ ? {
9
+ value: info.status,
10
+ color: getRunStatusStyle(info.status).cli,
11
+ }
12
+ : undefined,
13
+ elapsed: info.elapsed,
14
+ createdAt: info.createdAt,
15
+ workspacePath: info.workspacePath,
16
+ style,
17
+ });
50
18
  }
@@ -0,0 +1,20 @@
1
+ import type { TranscriptHintOptions } from "./transcript.js";
2
+ export interface StageFrameShell {
3
+ metadataLines: readonly string[];
4
+ statusTableLines?: readonly string[];
5
+ footerLines?: readonly string[];
6
+ }
7
+ export declare function buildStageFrameSections(options: StageFrameShell): string[][];
8
+ export interface StageFrameLinesOptions extends StageFrameShell {
9
+ leadingBlankLine?: boolean;
10
+ trailingBlankLine?: boolean;
11
+ }
12
+ export declare function buildStageFrameLines(options: StageFrameLinesOptions): string[];
13
+ export interface StageFinalFrameOptions extends StageFrameShell {
14
+ hint?: TranscriptHintOptions;
15
+ }
16
+ export declare function renderStageFinalFrame(options: StageFinalFrameOptions): string;
17
+ export interface StageStartLineEmitter {
18
+ emit(copy: string): void;
19
+ }
20
+ export declare function createStageStartLineEmitter(writeLine: (copy: string) => void): StageStartLineEmitter;
@@ -0,0 +1,44 @@
1
+ import { renderBlocks, renderTranscript } from "./transcript.js";
2
+ export function buildStageFrameSections(options) {
3
+ const sections = [];
4
+ if (options.metadataLines.length > 0) {
5
+ sections.push([...options.metadataLines]);
6
+ }
7
+ if (options.statusTableLines && options.statusTableLines.length > 0) {
8
+ sections.push([...options.statusTableLines]);
9
+ }
10
+ if (options.footerLines && options.footerLines.length > 0) {
11
+ sections.push([...options.footerLines]);
12
+ }
13
+ return sections;
14
+ }
15
+ export function buildStageFrameLines(options) {
16
+ const sections = buildStageFrameSections(options);
17
+ return renderBlocks({
18
+ sections,
19
+ leadingBlankLine: options.leadingBlankLine,
20
+ trailingBlankLine: options.trailingBlankLine,
21
+ trimTrailingBlankLines: false,
22
+ });
23
+ }
24
+ export function renderStageFinalFrame(options) {
25
+ return renderTranscript({
26
+ sections: buildStageFrameSections(options),
27
+ hint: options.hint,
28
+ });
29
+ }
30
+ export function createStageStartLineEmitter(writeLine) {
31
+ let emitted = false;
32
+ return {
33
+ emit(copy) {
34
+ if (emitted) {
35
+ return;
36
+ }
37
+ if (copy.trim().length === 0) {
38
+ return;
39
+ }
40
+ emitted = true;
41
+ writeLine(copy);
42
+ },
43
+ };
44
+ }
@@ -0,0 +1,2 @@
1
+ export declare function createLocalDateTimeFormatter(options: Intl.DateTimeFormatOptions, locales?: Intl.LocalesArgument): Intl.DateTimeFormat;
2
+ export declare function formatLocalTimeZoneLabel(date: Date): string;
@@ -0,0 +1,42 @@
1
+ const resolvedTimeZone = (() => {
2
+ try {
3
+ const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
4
+ return typeof timeZone === "string" && timeZone.length > 0
5
+ ? timeZone
6
+ : undefined;
7
+ }
8
+ catch {
9
+ return undefined;
10
+ }
11
+ })();
12
+ export function createLocalDateTimeFormatter(options, locales = "en-CA") {
13
+ if (resolvedTimeZone) {
14
+ return new Intl.DateTimeFormat(locales, {
15
+ timeZone: resolvedTimeZone,
16
+ ...options,
17
+ });
18
+ }
19
+ return new Intl.DateTimeFormat(locales, options);
20
+ }
21
+ export function formatLocalTimeZoneLabel(date) {
22
+ try {
23
+ const parts = createLocalDateTimeFormatter({
24
+ timeZoneName: "short",
25
+ }).formatToParts(date);
26
+ const label = parts.find((part) => part.type === "timeZoneName")?.value;
27
+ if (label && label.length > 0) {
28
+ return label;
29
+ }
30
+ }
31
+ catch {
32
+ // Fall through to offset-based formatting.
33
+ }
34
+ const offsetMinutes = -date.getTimezoneOffset();
35
+ const sign = offsetMinutes >= 0 ? "+" : "-";
36
+ const absoluteMinutes = Math.abs(offsetMinutes);
37
+ const hours = String(Math.floor(absoluteMinutes / 60)).padStart(2, "0");
38
+ const minutes = String(absoluteMinutes % 60).padStart(2, "0");
39
+ return minutes === "00"
40
+ ? `GMT${sign}${hours}`
41
+ : `GMT${sign}${hours}:${minutes}`;
42
+ }
@@ -0,0 +1,66 @@
1
+ import type { TerminalColor } from "../../utils/colors.js";
2
+ export interface TranscriptShellStyleOptions {
3
+ isTty?: boolean;
4
+ columns?: number;
5
+ }
6
+ export interface TranscriptShellStyle {
7
+ isTty: boolean;
8
+ columns?: number;
9
+ }
10
+ type TerminalLikeWriter = {
11
+ isTTY?: boolean;
12
+ columns?: number;
13
+ };
14
+ export declare function resolveTranscriptShellStyle(options?: TranscriptShellStyleOptions): TranscriptShellStyle;
15
+ export declare function resolveTranscriptShellStyleFromWriter(writer: TerminalLikeWriter, options?: {
16
+ forceTty?: boolean;
17
+ }): TranscriptShellStyleOptions;
18
+ export type TranscriptBadgeVariant = "run" | "verify" | "reduce" | "spec" | "message" | "agent";
19
+ export declare function formatTranscriptBadge(text: string, variant: TranscriptBadgeVariant, style: TranscriptShellStyle): string;
20
+ export declare function formatTranscriptStatusLabel(status: string, color: TerminalColor, style: TranscriptShellStyle): string;
21
+ export declare function formatTranscriptErrorLine(message: string, style: TranscriptShellStyle): string;
22
+ export type TranscriptDetailRow = {
23
+ label: string;
24
+ value: string;
25
+ };
26
+ export declare function buildStandardSessionDetailRows(options: {
27
+ elapsed?: string;
28
+ createdAt?: string;
29
+ workspacePath?: string;
30
+ }): TranscriptDetailRow[];
31
+ export declare function buildTranscriptDetailBodyRows(rows: readonly TranscriptDetailRow[]): string[];
32
+ export declare function buildTranscriptShellSection(options: {
33
+ badgeText: string;
34
+ badgeVariant: TranscriptBadgeVariant;
35
+ status?: {
36
+ value: string;
37
+ color: TerminalColor;
38
+ };
39
+ detailRows?: readonly TranscriptDetailRow[];
40
+ style?: TranscriptShellStyleOptions;
41
+ }): string[];
42
+ export declare function buildStandardSessionShellSection(options: {
43
+ badgeText: string;
44
+ badgeVariant: TranscriptBadgeVariant;
45
+ status?: {
46
+ value: string;
47
+ color: TerminalColor;
48
+ };
49
+ elapsed?: string;
50
+ createdAt?: string;
51
+ workspacePath?: string;
52
+ style?: TranscriptShellStyleOptions;
53
+ }): string[];
54
+ export interface TranscriptStatusTableColumn<Row> {
55
+ header: string;
56
+ accessor: (row: Row) => string;
57
+ align?: "left" | "right";
58
+ }
59
+ export declare function renderTranscriptStatusTable<Row>(options: {
60
+ rows: readonly Row[];
61
+ agent: (row: Row) => string;
62
+ status: (row: Row) => string;
63
+ duration: (row: Row) => string;
64
+ extras?: readonly TranscriptStatusTableColumn<Row>[];
65
+ }): string[];
66
+ export {};
@@ -0,0 +1,155 @@
1
+ import { colorize } from "../../utils/colors.js";
2
+ import { formatAlertMessage } from "../../utils/output.js";
3
+ import { formatRunTimestamp } from "./records.js";
4
+ import { renderTable } from "./table.js";
5
+ export function resolveTranscriptShellStyle(options = {}) {
6
+ return {
7
+ isTty: options.isTty ?? Boolean(process.stdout.isTTY),
8
+ columns: options.columns,
9
+ };
10
+ }
11
+ export function resolveTranscriptShellStyleFromWriter(writer, options = {}) {
12
+ return {
13
+ isTty: options.forceTty === true ? true : Boolean(writer.isTTY),
14
+ columns: writer.columns,
15
+ };
16
+ }
17
+ const ANSI_RESET = "\u001B[0m";
18
+ const ANSI_BOLD = "\u001B[1m";
19
+ const ESC = "\u001B[";
20
+ const BRAND_COLOR = "164;203;153";
21
+ const VERIFY_COLOR = "255;238;140";
22
+ const REDUCE_COLOR = "226;159;115";
23
+ const SPEC_COLOR = "144;190;228";
24
+ const MESSAGE_COLOR = "245;242;235";
25
+ const BADGE_STYLES = {
26
+ run: {
27
+ foreground: `${ESC}38;2;0;0;0m`,
28
+ background: `${ESC}48;2;${BRAND_COLOR}m`,
29
+ bold: true,
30
+ },
31
+ verify: {
32
+ foreground: `${ESC}38;2;0;0;0m`,
33
+ background: `${ESC}48;2;${VERIFY_COLOR}m`,
34
+ bold: true,
35
+ },
36
+ reduce: {
37
+ foreground: `${ESC}38;2;0;0;0m`,
38
+ background: `${ESC}48;2;${REDUCE_COLOR}m`,
39
+ bold: true,
40
+ },
41
+ spec: {
42
+ foreground: `${ESC}38;2;0;0;0m`,
43
+ background: `${ESC}48;2;${SPEC_COLOR}m`,
44
+ bold: true,
45
+ },
46
+ message: {
47
+ foreground: `${ESC}38;2;0;0;0m`,
48
+ background: `${ESC}48;2;${MESSAGE_COLOR}m`,
49
+ bold: true,
50
+ },
51
+ agent: {
52
+ bold: true,
53
+ },
54
+ };
55
+ function applyBadgeStyle(text, style) {
56
+ const padding = Math.max(0, style.padding ?? 0);
57
+ const pad = padding === 0 ? "" : " ".repeat(padding);
58
+ const padded = `${pad}${text}${pad}`;
59
+ const parts = [];
60
+ if (typeof style.background === "string" && style.background.length > 0) {
61
+ parts.push(style.background);
62
+ }
63
+ if (typeof style.foreground === "string" && style.foreground.length > 0) {
64
+ parts.push(style.foreground);
65
+ }
66
+ if (style.bold === true) {
67
+ parts.push(ANSI_BOLD);
68
+ }
69
+ parts.push(padded, ANSI_RESET);
70
+ return parts.join("");
71
+ }
72
+ export function formatTranscriptBadge(text, variant, style) {
73
+ if (!style.isTty) {
74
+ return text;
75
+ }
76
+ return applyBadgeStyle(text, BADGE_STYLES[variant]);
77
+ }
78
+ export function formatTranscriptStatusLabel(status, color, style) {
79
+ const label = status.toUpperCase();
80
+ return style.isTty ? colorize(label, color) : label;
81
+ }
82
+ export function formatTranscriptErrorLine(message, style) {
83
+ if (!style.isTty) {
84
+ return `Error: ${message}`;
85
+ }
86
+ return formatAlertMessage("Error", "red", message);
87
+ }
88
+ export function buildStandardSessionDetailRows(options) {
89
+ const rows = [
90
+ { label: "Elapsed", value: options.elapsed },
91
+ {
92
+ label: "Created",
93
+ value: options.createdAt
94
+ ? formatRunTimestamp(options.createdAt)
95
+ : undefined,
96
+ },
97
+ { label: "Workspace", value: options.workspacePath },
98
+ ];
99
+ return rows.filter((row) => typeof row.value === "string" && row.value.length > 0);
100
+ }
101
+ export function buildTranscriptDetailBodyRows(rows) {
102
+ if (rows.length === 0) {
103
+ return [];
104
+ }
105
+ const labelWidth = rows.reduce((max, row) => Math.max(max, row.label.length), 0);
106
+ const bodyLines = [];
107
+ for (const row of rows) {
108
+ const value = row.value ?? "—";
109
+ const prefix = `${row.label.padEnd(labelWidth)} `;
110
+ bodyLines.push(`${prefix}${value}`.trimEnd());
111
+ }
112
+ return bodyLines;
113
+ }
114
+ export function buildTranscriptShellSection(options) {
115
+ const style = resolveTranscriptShellStyle(options.style);
116
+ const lines = [];
117
+ const badge = formatTranscriptBadge(options.badgeText, options.badgeVariant, style);
118
+ if (options.status) {
119
+ const statusLabel = formatTranscriptStatusLabel(options.status.value, options.status.color, style);
120
+ lines.push(`${badge} ${statusLabel}`);
121
+ }
122
+ else {
123
+ lines.push(badge);
124
+ }
125
+ const detailBody = buildTranscriptDetailBodyRows(options.detailRows ?? []);
126
+ if (detailBody.length > 0) {
127
+ lines.push("", ...detailBody);
128
+ }
129
+ return lines;
130
+ }
131
+ export function buildStandardSessionShellSection(options) {
132
+ return buildTranscriptShellSection({
133
+ badgeText: options.badgeText,
134
+ badgeVariant: options.badgeVariant,
135
+ status: options.status,
136
+ detailRows: buildStandardSessionDetailRows({
137
+ elapsed: options.elapsed,
138
+ createdAt: options.createdAt,
139
+ workspacePath: options.workspacePath,
140
+ }),
141
+ style: options.style,
142
+ });
143
+ }
144
+ export function renderTranscriptStatusTable(options) {
145
+ const extras = options.extras ?? [];
146
+ return renderTable({
147
+ columns: [
148
+ { header: "AGENT", accessor: options.agent },
149
+ { header: "STATUS", accessor: options.status },
150
+ { header: "DURATION", accessor: options.duration },
151
+ ...extras,
152
+ ],
153
+ rows: options.rows,
154
+ });
155
+ }
@@ -11,4 +11,10 @@ export interface TranscriptOptions {
11
11
  sections?: string[][];
12
12
  hint?: TranscriptHintOptions;
13
13
  }
14
- export declare function renderTranscript({ metadata, sections, hint, }: TranscriptOptions): string;
14
+ export interface RenderBlocksOptions extends TranscriptOptions {
15
+ leadingBlankLine?: boolean;
16
+ trailingBlankLine?: boolean;
17
+ trimTrailingBlankLines?: boolean;
18
+ }
19
+ export declare function renderBlocks({ metadata, sections, hint, leadingBlankLine, trailingBlankLine, trimTrailingBlankLines: shouldTrim, }: RenderBlocksOptions): string[];
20
+ export declare function renderTranscript(options: TranscriptOptions): string;
@@ -1,10 +1,13 @@
1
- export function renderTranscript({ metadata = [], sections = [], hint, }) {
1
+ export function renderBlocks({ metadata = [], sections = [], hint, leadingBlankLine = false, trailingBlankLine = false, trimTrailingBlankLines: shouldTrim = true, }) {
2
2
  const lines = [];
3
3
  const metadataLines = metadata
4
4
  .filter((entry) => {
5
5
  return typeof entry.value === "string" && entry.value.length > 0;
6
6
  })
7
7
  .map((entry) => `${entry.label}: ${entry.value}`);
8
+ if (leadingBlankLine) {
9
+ lines.push("");
10
+ }
8
11
  if (metadataLines.length > 0) {
9
12
  lines.push(...metadataLines, "");
10
13
  }
@@ -24,7 +27,14 @@ export function renderTranscript({ metadata = [], sections = [], hint, }) {
24
27
  }
25
28
  lines.push(resolvedHint);
26
29
  }
27
- return trimTrailingBlankLines(lines).join("\n");
30
+ const trimmed = shouldTrim ? trimTrailingBlankLines(lines) : lines;
31
+ if (trailingBlankLine) {
32
+ trimmed.push("");
33
+ }
34
+ return trimmed;
35
+ }
36
+ export function renderTranscript(options) {
37
+ return renderBlocks(options).join("\n");
28
38
  }
29
39
  function withRerunHint(message) {
30
40
  return message.endsWith(" and rerun.") ? message : `${message} and rerun.`;
@@ -0,0 +1 @@
1
+ export declare function wrapWords(text: string, maxWidth: number): string[];
@@ -0,0 +1,20 @@
1
+ export function wrapWords(text, maxWidth) {
2
+ const trimmed = text.trim();
3
+ if (trimmed.length === 0) {
4
+ return [];
5
+ }
6
+ const words = trimmed.split(/\s+/);
7
+ const lines = [];
8
+ let current = words[0] ?? "";
9
+ for (const word of words.slice(1)) {
10
+ const candidate = `${current} ${word}`;
11
+ if (candidate.length <= maxWidth) {
12
+ current = candidate;
13
+ continue;
14
+ }
15
+ lines.push(current);
16
+ current = word;
17
+ }
18
+ lines.push(current);
19
+ return lines;
20
+ }
@@ -1,10 +1,9 @@
1
- import type { EvalStatus } from "../configs/evals/types.js";
2
1
  import type { TerminalColor } from "../utils/colors.js";
3
- import type { AgentStatus, RunStatus } from "./index.js";
2
+ import type { AgentStatus, CheckStatus, RunStatus } from "./index.js";
4
3
  interface StatusStyle {
5
4
  cli: TerminalColor;
6
5
  }
7
6
  export declare function getAgentStatusStyle(status: AgentStatus): StatusStyle;
8
- export declare function getEvalStatusStyle(status: EvalStatus): StatusStyle;
7
+ export declare function getCheckStatusStyle(status: CheckStatus): StatusStyle;
9
8
  export declare function getRunStatusStyle(status: RunStatus): StatusStyle;
10
9
  export {};
@@ -7,7 +7,7 @@ const agentStatusStyles = {
7
7
  running: { cli: "cyan" },
8
8
  queued: { cli: "gray" },
9
9
  };
10
- const evalStatusStyles = {
10
+ const checkStatusStyles = {
11
11
  succeeded: { cli: "green" },
12
12
  failed: { cli: "red" },
13
13
  errored: { cli: "red" },
@@ -25,8 +25,8 @@ const runStatusStyles = {
25
25
  export function getAgentStatusStyle(status) {
26
26
  return agentStatusStyles[status];
27
27
  }
28
- export function getEvalStatusStyle(status) {
29
- return evalStatusStyles[status];
28
+ export function getCheckStatusStyle(status) {
29
+ return checkStatusStyles[status];
30
30
  }
31
31
  export function getRunStatusStyle(status) {
32
32
  return runStatusStyles[status];