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,547 @@
1
+ import { spawn } from "node:child_process";
2
+ import { setTimeout as delay } from "node:timers/promises";
3
+ import { loadRepoSettings } from "../../configs/settings/loader.js";
4
+ import { BUNDLED_VORATIQ_TOOL_TARGET_NAME, } from "./shared.js";
5
+ const FIRST_PARTY_MCP_VERIFY_DELAYS_MS = [
6
+ 0, 250, 500, 1_000, 2_000, 4_000, 8_000,
7
+ ];
8
+ const firstPartyMcpAdapters = {
9
+ codex: {
10
+ providerCommand: "codex",
11
+ installPromptMessage: "Would you like to install the Voratiq MCP?",
12
+ inspectHintCommand: (toolName) => `codex mcp get --json ${toolName}`,
13
+ inspectTools: inspectCodexMcpTools,
14
+ buildAddArgs: buildCodexMcpAddArgs,
15
+ },
16
+ claude: {
17
+ providerCommand: "claude",
18
+ installPromptMessage: "Would you like to install the Voratiq MCP?",
19
+ inspectHintCommand: (toolName) => `claude mcp get ${toolName}`,
20
+ inspectTools: inspectClaudeMcpTools,
21
+ buildAddArgs: buildClaudeMcpAddArgs,
22
+ },
23
+ gemini: {
24
+ providerCommand: "gemini",
25
+ installPromptMessage: "Would you like to install the Voratiq MCP?",
26
+ inspectHintCommand: () => "gemini mcp list",
27
+ inspectTools: inspectGeminiMcpTools,
28
+ buildAddArgs: buildGeminiMcpAddArgs,
29
+ },
30
+ };
31
+ export async function resolveFirstPartyMcpStatus(options) {
32
+ if (options.toolDeclarations.length === 0) {
33
+ return {
34
+ toolAttachmentStatus: "not-requested",
35
+ additionalArgs: [],
36
+ };
37
+ }
38
+ const settings = loadRepoSettings({ root: options.root });
39
+ if (settings.mcp[options.providerId] === "never") {
40
+ return {
41
+ toolAttachmentStatus: "failed",
42
+ additionalArgs: [],
43
+ };
44
+ }
45
+ const runCommand = options.mcpCommandRunner ?? runProviderMcpCommand;
46
+ const adapter = firstPartyMcpAdapters[options.providerId];
47
+ const initialInspection = summarizeFirstPartyMcpInspection({
48
+ toolDeclarations: options.toolDeclarations,
49
+ inspections: await adapter.inspectTools({
50
+ root: options.root,
51
+ toolDeclarations: options.toolDeclarations,
52
+ runCommand,
53
+ }),
54
+ });
55
+ if (initialInspection.conflict) {
56
+ throw new Error(buildFirstPartyMcpConflictMessage({
57
+ adapter,
58
+ tool: initialInspection.conflict.tool,
59
+ detail: initialInspection.conflict.detail,
60
+ }));
61
+ }
62
+ if (initialInspection.missingToolDeclarations.length === 0) {
63
+ return {
64
+ toolAttachmentStatus: "attached",
65
+ additionalArgs: [],
66
+ };
67
+ }
68
+ if (!options.promptForMcpInstall) {
69
+ return {
70
+ toolAttachmentStatus: "failed",
71
+ additionalArgs: [],
72
+ };
73
+ }
74
+ const shouldInstall = await options.promptForMcpInstall({
75
+ providerId: options.providerId,
76
+ message: adapter.installPromptMessage,
77
+ defaultValue: true,
78
+ });
79
+ if (!shouldInstall) {
80
+ return {
81
+ toolAttachmentStatus: "failed",
82
+ additionalArgs: [],
83
+ };
84
+ }
85
+ await installVoratiqMcpForProvider({
86
+ adapter,
87
+ root: options.root,
88
+ toolDeclarations: initialInspection.missingToolDeclarations,
89
+ runCommand,
90
+ });
91
+ const verifiedInspection = await verifyFirstPartyMcpStatus({
92
+ adapter,
93
+ root: options.root,
94
+ toolDeclarations: options.toolDeclarations,
95
+ runCommand,
96
+ });
97
+ if (verifiedInspection.conflict) {
98
+ throw new Error(buildFirstPartyMcpConflictMessage({
99
+ adapter,
100
+ tool: verifiedInspection.conflict.tool,
101
+ detail: verifiedInspection.conflict.detail,
102
+ }));
103
+ }
104
+ if (verifiedInspection.missingToolDeclarations.length > 0) {
105
+ throw new Error(buildFirstPartyMcpInstallVerificationMessage({
106
+ adapter,
107
+ missingToolDeclarations: verifiedInspection.missingToolDeclarations,
108
+ }));
109
+ }
110
+ return {
111
+ toolAttachmentStatus: "attached",
112
+ additionalArgs: [],
113
+ };
114
+ }
115
+ function summarizeFirstPartyMcpInspection(options) {
116
+ const missingToolDeclarations = [];
117
+ for (const tool of options.toolDeclarations) {
118
+ const inspection = options.inspections.get(tool.name);
119
+ if (!inspection || inspection.state === "missing") {
120
+ missingToolDeclarations.push(tool);
121
+ continue;
122
+ }
123
+ if (inspection.state === "conflicting") {
124
+ return {
125
+ missingToolDeclarations,
126
+ conflict: {
127
+ tool,
128
+ detail: inspection.detail,
129
+ },
130
+ };
131
+ }
132
+ }
133
+ return { missingToolDeclarations };
134
+ }
135
+ async function verifyFirstPartyMcpStatus(options) {
136
+ let lastSummary;
137
+ for (const waitMs of FIRST_PARTY_MCP_VERIFY_DELAYS_MS) {
138
+ if (waitMs > 0) {
139
+ await delay(waitMs);
140
+ }
141
+ lastSummary = summarizeFirstPartyMcpInspection({
142
+ toolDeclarations: options.toolDeclarations,
143
+ inspections: await options.adapter.inspectTools({
144
+ root: options.root,
145
+ toolDeclarations: options.toolDeclarations,
146
+ runCommand: options.runCommand,
147
+ }),
148
+ });
149
+ if (lastSummary.conflict ||
150
+ lastSummary.missingToolDeclarations.length === 0) {
151
+ return lastSummary;
152
+ }
153
+ }
154
+ return (lastSummary ?? { missingToolDeclarations: [...options.toolDeclarations] });
155
+ }
156
+ function buildFirstPartyMcpConflictMessage(options) {
157
+ const detailLine = options.detail ? ` ${options.detail}` : "";
158
+ return [
159
+ `A conflicting effective \`${options.tool.name}\` MCP entry is already configured for ${options.adapter.providerCommand}.${detailLine}`.trim(),
160
+ `Inspect it with \`${options.adapter.inspectHintCommand(options.tool.name)}\`, then update or remove the conflicting entry and retry.`,
161
+ ].join(" ");
162
+ }
163
+ function buildFirstPartyMcpInstallVerificationMessage(options) {
164
+ const [firstTool] = options.missingToolDeclarations;
165
+ const toolList = options.missingToolDeclarations
166
+ .map((tool) => `\`${tool.name}\``)
167
+ .join(", ");
168
+ return [
169
+ `Installed ${toolList}, but ${options.adapter.providerCommand} still does not resolve the expected Voratiq MCP configuration.`,
170
+ `Inspect the effective entry with \`${options.adapter.inspectHintCommand(firstTool?.name ?? BUNDLED_VORATIQ_TOOL_TARGET_NAME)}\` and retry.`,
171
+ ].join(" ");
172
+ }
173
+ async function inspectGeminiMcpTools(options) {
174
+ const inspections = new Map();
175
+ if (options.toolDeclarations.length === 0) {
176
+ return inspections;
177
+ }
178
+ const result = await options.runCommand({
179
+ command: "gemini",
180
+ args: ["mcp", "list"],
181
+ cwd: options.root,
182
+ });
183
+ if (result.exitCode !== 0) {
184
+ throw new Error(buildProviderMcpInspectionError("gemini", result));
185
+ }
186
+ const entries = parseGeminiMcpListEntries([result.stdout, result.stderr].filter((part) => part.length > 0).join("\n"));
187
+ for (const tool of options.toolDeclarations) {
188
+ const entry = entries.get(tool.name);
189
+ if (!entry) {
190
+ inspections.set(tool.name, { state: "missing" });
191
+ continue;
192
+ }
193
+ inspections.set(tool.name, matchesDeclarationCommandAndArgs(tool, entry)
194
+ ? { state: "matched" }
195
+ : {
196
+ state: "conflicting",
197
+ detail: buildCommandMismatchDetail(tool, entry),
198
+ });
199
+ }
200
+ return inspections;
201
+ }
202
+ async function inspectCliMcpToolsViaGet(options) {
203
+ const inspections = new Map();
204
+ for (const tool of options.toolDeclarations) {
205
+ inspections.set(tool.name, await inspectCliMcpTool({
206
+ providerCommand: options.providerCommand,
207
+ root: options.root,
208
+ declaration: tool,
209
+ runCommand: options.runCommand,
210
+ }));
211
+ }
212
+ return inspections;
213
+ }
214
+ async function inspectCodexMcpTools(options) {
215
+ return await inspectCliMcpToolsViaGet({
216
+ providerCommand: "codex",
217
+ root: options.root,
218
+ toolDeclarations: options.toolDeclarations,
219
+ runCommand: options.runCommand,
220
+ });
221
+ }
222
+ async function inspectClaudeMcpTools(options) {
223
+ return await inspectCliMcpToolsViaGet({
224
+ providerCommand: "claude",
225
+ root: options.root,
226
+ toolDeclarations: options.toolDeclarations,
227
+ runCommand: options.runCommand,
228
+ });
229
+ }
230
+ async function inspectCliMcpTool(options) {
231
+ if (options.providerCommand === "codex") {
232
+ const result = await options.runCommand({
233
+ command: "codex",
234
+ args: ["mcp", "get", "--json", options.declaration.name],
235
+ cwd: options.root,
236
+ });
237
+ if (result.exitCode !== 0) {
238
+ if (isMissingMcpServerResult(result)) {
239
+ return { state: "missing" };
240
+ }
241
+ throw new Error(buildProviderMcpInspectionError("codex", result));
242
+ }
243
+ const parsed = tryParseJson(result.stdout);
244
+ if (parsed !== undefined) {
245
+ const candidate = findCommandArgsPair(parsed);
246
+ if (candidate) {
247
+ return matchesDeclarationCommandAndArgs(options.declaration, candidate)
248
+ ? { state: "matched" }
249
+ : {
250
+ state: "conflicting",
251
+ detail: buildCommandMismatchDetail(options.declaration, candidate),
252
+ };
253
+ }
254
+ }
255
+ return textContainsCommandAndArgs(result.stdout, options.declaration)
256
+ ? { state: "matched" }
257
+ : {
258
+ state: "conflicting",
259
+ detail: "Configured entry does not match the expected Voratiq command.",
260
+ };
261
+ }
262
+ const result = await options.runCommand({
263
+ command: "claude",
264
+ args: ["mcp", "get", options.declaration.name],
265
+ cwd: options.root,
266
+ });
267
+ if (result.exitCode !== 0) {
268
+ if (isMissingMcpServerResult(result)) {
269
+ return { state: "missing" };
270
+ }
271
+ throw new Error(buildProviderMcpInspectionError("claude", result));
272
+ }
273
+ const candidate = parseSeparatedCommandAndArgs(result.stdout, {
274
+ commandLabel: "Command",
275
+ argsLabel: "Args",
276
+ }) ?? parseCommandLineValue(result.stdout, "Command");
277
+ if (candidate) {
278
+ return matchesDeclarationCommandAndArgs(options.declaration, candidate)
279
+ ? { state: "matched" }
280
+ : {
281
+ state: "conflicting",
282
+ detail: buildCommandMismatchDetail(options.declaration, candidate),
283
+ };
284
+ }
285
+ return textContainsCommandAndArgs(result.stdout, options.declaration)
286
+ ? { state: "matched" }
287
+ : {
288
+ state: "conflicting",
289
+ detail: "Configured entry does not match the expected Voratiq command.",
290
+ };
291
+ }
292
+ function buildProviderMcpInspectionError(providerCommand, result) {
293
+ const output = result.stderr.trim() || result.stdout.trim() || "Unknown error";
294
+ return `Failed to inspect ${providerCommand} MCP configuration: ${output}`;
295
+ }
296
+ function isMissingMcpServerResult(result) {
297
+ const output = `${result.stdout}\n${result.stderr}`.toLowerCase();
298
+ return (output.includes("no mcp server found") ||
299
+ output.includes("no mcp server named") ||
300
+ output.includes("not found") ||
301
+ output.includes("no server found"));
302
+ }
303
+ function tryParseJson(value) {
304
+ try {
305
+ return JSON.parse(value);
306
+ }
307
+ catch {
308
+ return undefined;
309
+ }
310
+ }
311
+ function findCommandArgsPair(value) {
312
+ if (!value || typeof value !== "object") {
313
+ return undefined;
314
+ }
315
+ if (Array.isArray(value)) {
316
+ for (const entry of value) {
317
+ const nested = findCommandArgsPair(entry);
318
+ if (nested) {
319
+ return nested;
320
+ }
321
+ }
322
+ return undefined;
323
+ }
324
+ const candidate = value;
325
+ const command = typeof candidate.command === "string" ? candidate.command : undefined;
326
+ const args = normalizeStringArray(candidate.args);
327
+ if (command && args) {
328
+ return { command, args };
329
+ }
330
+ for (const nestedValue of Object.values(candidate)) {
331
+ const nested = findCommandArgsPair(nestedValue);
332
+ if (nested) {
333
+ return nested;
334
+ }
335
+ }
336
+ return undefined;
337
+ }
338
+ function normalizeStringArray(value) {
339
+ if (!Array.isArray(value)) {
340
+ return undefined;
341
+ }
342
+ if (!value.every((entry) => typeof entry === "string")) {
343
+ return undefined;
344
+ }
345
+ return [...value];
346
+ }
347
+ function matchesDeclarationCommandAndArgs(declaration, value) {
348
+ if (value.command !== declaration.command) {
349
+ return false;
350
+ }
351
+ const expectedArgs = declaration.args ? [...declaration.args] : [];
352
+ return areStringArraysEqual(value.args, expectedArgs);
353
+ }
354
+ function areStringArraysEqual(left, right) {
355
+ if (left.length !== right.length) {
356
+ return false;
357
+ }
358
+ for (let index = 0; index < left.length; index += 1) {
359
+ if (left[index] !== right[index]) {
360
+ return false;
361
+ }
362
+ }
363
+ return true;
364
+ }
365
+ function buildCommandMismatchDetail(declaration, actual) {
366
+ return [
367
+ `Expected \`${formatCommandAndArgs(declaration.command, declaration.args ?? [])}\`,`,
368
+ `found \`${formatCommandAndArgs(actual.command, actual.args)}\`.`,
369
+ ].join(" ");
370
+ }
371
+ function formatCommandAndArgs(command, args) {
372
+ return [command, ...args].join(" ");
373
+ }
374
+ function textContainsCommandAndArgs(text, declaration) {
375
+ const normalized = text.replaceAll(/\s+/gu, " ");
376
+ const commandIndex = normalized.indexOf(declaration.command);
377
+ if (commandIndex < 0) {
378
+ return false;
379
+ }
380
+ let cursor = commandIndex + declaration.command.length;
381
+ for (const arg of declaration.args ?? []) {
382
+ const index = normalized.indexOf(arg, cursor);
383
+ if (index < 0) {
384
+ return false;
385
+ }
386
+ cursor = index + arg.length;
387
+ }
388
+ return true;
389
+ }
390
+ function parseCommandLineValue(text, label) {
391
+ const pattern = new RegExp(`^${label}:\\s+(.+)$`, "mu");
392
+ const match = text.match(pattern);
393
+ if (!match?.[1]) {
394
+ return undefined;
395
+ }
396
+ return splitCommandLine(match[1]);
397
+ }
398
+ function parseSeparatedCommandAndArgs(text, labels) {
399
+ const commandLine = parseLabeledLine(text, labels.commandLabel);
400
+ if (!commandLine) {
401
+ return undefined;
402
+ }
403
+ const argsLine = parseLabeledLine(text, labels.argsLabel);
404
+ return {
405
+ command: commandLine,
406
+ args: argsLine
407
+ ? argsLine.split(/\s+/u).filter((part) => part.length > 0)
408
+ : [],
409
+ };
410
+ }
411
+ function parseLabeledLine(text, label) {
412
+ const pattern = new RegExp(`^${label}:\\s*(.+)$`, "mu");
413
+ const match = text.match(pattern);
414
+ return match?.[1]?.trim() || undefined;
415
+ }
416
+ function splitCommandLine(value) {
417
+ const trimmed = value.trim();
418
+ const withoutSuffix = trimmed.replace(/\s+\((?:stdio|sse|http)\)(?:\s+-\s+.+)?$/u, "");
419
+ const parts = withoutSuffix.split(/\s+/u).filter((part) => part.length > 0);
420
+ return {
421
+ command: parts[0] ?? "",
422
+ args: parts.slice(1),
423
+ };
424
+ }
425
+ async function installVoratiqMcpForProvider(options) {
426
+ for (const toolDeclaration of options.toolDeclarations) {
427
+ const result = await options.runCommand({
428
+ command: options.adapter.providerCommand,
429
+ args: options.adapter.buildAddArgs(toolDeclaration),
430
+ cwd: options.root,
431
+ });
432
+ if (result.exitCode !== 0) {
433
+ const stderr = result.stderr.trim();
434
+ const stdout = result.stdout.trim();
435
+ const output = stderr || stdout || `${options.adapter.providerCommand} mcp add failed`;
436
+ throw new Error(output);
437
+ }
438
+ }
439
+ }
440
+ function buildGeminiMcpAddArgs(tool) {
441
+ const args = ["mcp", "add", "--scope", "user", "--trust"];
442
+ if (tool.env) {
443
+ for (const [key, value] of Object.entries(tool.env)) {
444
+ args.push("-e", `${key}=${value}`);
445
+ }
446
+ }
447
+ args.push(tool.name, tool.command);
448
+ if (tool.args && tool.args.length > 0) {
449
+ args.push(...tool.args);
450
+ }
451
+ return args;
452
+ }
453
+ function buildCodexMcpAddArgs(tool) {
454
+ const args = ["mcp", "add"];
455
+ if (tool.env) {
456
+ for (const [key, value] of Object.entries(tool.env)) {
457
+ args.push("--env", `${key}=${value}`);
458
+ }
459
+ }
460
+ args.push(tool.name, "--", tool.command);
461
+ if (tool.args && tool.args.length > 0) {
462
+ args.push(...tool.args);
463
+ }
464
+ return args;
465
+ }
466
+ function buildClaudeMcpAddArgs(tool) {
467
+ const args = ["mcp", "add", "--scope", "user"];
468
+ if (tool.env) {
469
+ for (const [key, value] of Object.entries(tool.env)) {
470
+ args.push("-e", `${key}=${value}`);
471
+ }
472
+ }
473
+ args.push(tool.name, "--", tool.command);
474
+ if (tool.args && tool.args.length > 0) {
475
+ args.push(...tool.args);
476
+ }
477
+ return args;
478
+ }
479
+ function parseGeminiMcpListEntries(stdout) {
480
+ const entries = new Map();
481
+ for (const rawLine of stdout.split(/\r?\n/u)) {
482
+ const line = rawLine.trim();
483
+ if (!line || line.toLowerCase() === "no mcp servers configured.") {
484
+ continue;
485
+ }
486
+ const entry = parseGeminiMcpListEntry(line);
487
+ if (entry) {
488
+ entries.set(entry.name, entry.commandLine);
489
+ }
490
+ }
491
+ return entries;
492
+ }
493
+ function parseGeminiMcpListEntry(line) {
494
+ let normalized = line;
495
+ while (normalized.startsWith("✓") ||
496
+ normalized.startsWith("✗") ||
497
+ normalized.startsWith("-") ||
498
+ normalized.startsWith("*")) {
499
+ normalized = normalized.slice(1).trimStart();
500
+ }
501
+ const colonIndex = normalized.indexOf(":");
502
+ const candidate = (colonIndex >= 0 ? normalized.slice(0, colonIndex) : normalized).trim();
503
+ if (!candidate) {
504
+ return undefined;
505
+ }
506
+ if (!/^[A-Za-z0-9._-]+$/u.test(candidate)) {
507
+ return undefined;
508
+ }
509
+ if (colonIndex < 0) {
510
+ return undefined;
511
+ }
512
+ const commandText = normalized.slice(colonIndex + 1).trim();
513
+ if (!commandText) {
514
+ return undefined;
515
+ }
516
+ return {
517
+ name: candidate,
518
+ commandLine: splitCommandLine(commandText),
519
+ };
520
+ }
521
+ async function runProviderMcpCommand(input) {
522
+ const child = spawn(input.command, [...input.args], {
523
+ cwd: input.cwd,
524
+ env: input.env ?? process.env,
525
+ stdio: ["ignore", "pipe", "pipe"],
526
+ });
527
+ let stdout = "";
528
+ let stderr = "";
529
+ child.stdout?.setEncoding("utf8");
530
+ child.stderr?.setEncoding("utf8");
531
+ child.stdout?.on("data", (chunk) => {
532
+ stdout += chunk;
533
+ });
534
+ child.stderr?.on("data", (chunk) => {
535
+ stderr += chunk;
536
+ });
537
+ const exitCode = await new Promise((resolve) => {
538
+ child.on("close", (code) => {
539
+ resolve(typeof code === "number" ? code : null);
540
+ });
541
+ });
542
+ return {
543
+ exitCode,
544
+ stdout,
545
+ stderr,
546
+ };
547
+ }
@@ -0,0 +1,2 @@
1
+ export declare const BUNDLED_VORATIQ_TOOL_TARGET_NAME: "voratiq";
2
+ export type FirstPartyProviderId = "codex" | "claude" | "gemini";
@@ -0,0 +1 @@
1
+ export const BUNDLED_VORATIQ_TOOL_TARGET_NAME = "voratiq";
@@ -0,0 +1,3 @@
1
+ export { createBundledVoratiqToolDeclaration, prepareProviderNativeLaunch, type ProviderLaunchPreparationInput, type ProviderLaunchPreparationResult, } from "./providers/launch.js";
2
+ export { type FirstPartyMcpStatusAndArgs, resolveFirstPartyMcpStatus, } from "./providers/mcp.js";
3
+ export { BUNDLED_VORATIQ_TOOL_TARGET_NAME } from "./providers/shared.js";
@@ -0,0 +1,3 @@
1
+ export { createBundledVoratiqToolDeclaration, prepareProviderNativeLaunch, } from "./providers/launch.js";
2
+ export { resolveFirstPartyMcpStatus, } from "./providers/mcp.js";
3
+ export { BUNDLED_VORATIQ_TOOL_TARGET_NAME } from "./providers/shared.js";
@@ -0,0 +1,2 @@
1
+ export type { InteractiveSessionPaths } from "../domain/interactive/persistence/adapter.js";
2
+ export { appendInteractiveSessionRecord, disposeInteractiveSessionBuffer, ensureInteractiveSessionDirectories, flushAllInteractiveSessionBuffers, getInteractiveSessionRecordSnapshot, resolveInteractiveSessionPaths, rewriteInteractiveSessionRecord, toInteractiveSessionRelativePath, updateInteractiveSessionStatus, } from "../domain/interactive/persistence/adapter.js";
@@ -0,0 +1 @@
1
+ export { appendInteractiveSessionRecord, disposeInteractiveSessionBuffer, ensureInteractiveSessionDirectories, flushAllInteractiveSessionBuffers, getInteractiveSessionRecordSnapshot, resolveInteractiveSessionPaths, rewriteInteractiveSessionRecord, toInteractiveSessionRelativePath, updateInteractiveSessionStatus, } from "../domain/interactive/persistence/adapter.js";
@@ -0,0 +1,21 @@
1
+ import { loadAgentById } from "../configs/agents/loader.js";
2
+ import type { InteractiveLaunchFailure, PrepareAndSpawnNativeSessionResult, PreparedInteractiveSession, PrepareNativeSessionOptions, PrepareNativeSessionResult, SpawnPreparedSessionOptions, SpawnPreparedSessionResult } from "./types.js";
3
+ interface ResolvedInteractiveAgentProvider {
4
+ agent: ReturnType<typeof loadAgentById>;
5
+ providerId: string;
6
+ }
7
+ export type ResolveInteractiveAgentProviderResult = {
8
+ ok: true;
9
+ value: ResolvedInteractiveAgentProvider;
10
+ } | {
11
+ ok: false;
12
+ failure: InteractiveLaunchFailure;
13
+ };
14
+ export declare function resolveInteractiveAgentProvider(options: {
15
+ root: string;
16
+ agentId: string;
17
+ }): ResolveInteractiveAgentProviderResult;
18
+ export declare function prepareNativeInteractiveSession(options: PrepareNativeSessionOptions): Promise<PrepareNativeSessionResult>;
19
+ export declare function spawnPreparedInteractiveSession(prepared: PreparedInteractiveSession, options?: SpawnPreparedSessionOptions): Promise<SpawnPreparedSessionResult>;
20
+ export declare function prepareAndSpawnNativeInteractiveSession(options: PrepareNativeSessionOptions & SpawnPreparedSessionOptions): Promise<PrepareAndSpawnNativeSessionResult>;
21
+ export {};