@iowarp/clio-coder 0.4.3 → 0.4.4

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 (340) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +1 -1
  3. package/dist/{acp-H2NGRPWO.js → acp-WNAYYF4F.js} +4 -5
  4. package/dist/{agents-TL5LLUQP.js → agents-3OKXHLOI.js} +33 -31
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-E5SW4HMS.js → auth-VKNNMGPU.js} +10 -11
  7. package/dist/{builtins-IA7V7FUC.js → builtins-WGALA46I.js} +4 -4
  8. package/dist/{chunk-F5JHEYZM.js → chunk-23L32XTI.js} +10 -7
  9. package/dist/{chunk-DWUOQKRU.js → chunk-25QBEXRS.js} +2 -2
  10. package/dist/{chunk-LLDJM5XK.js → chunk-26QSH3EJ.js} +2 -2
  11. package/dist/{chunk-N2Z7HLVY.js → chunk-2ASED4PZ.js} +10 -10
  12. package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
  13. package/dist/chunk-2DSOYNFC.js +108 -0
  14. package/dist/{chunk-LDJG7DW3.js → chunk-2ZSONWVL.js} +4 -4
  15. package/dist/{chunk-GI7YYQ3F.js → chunk-36CT5VVL.js} +324 -41
  16. package/dist/{chunk-4UVU7BJ5.js → chunk-3GY4F45V.js} +2 -2
  17. package/dist/{chunk-PUVDKJ2Y.js → chunk-3ODX73FK.js} +3 -5
  18. package/dist/{chunk-IUE3Y34X.js → chunk-3UNOLWNZ.js} +2 -2
  19. package/dist/{chunk-6PTFB5VS.js → chunk-3UUXNFEX.js} +8 -4
  20. package/dist/{chunk-2APPQIER.js → chunk-4M6Z5QVF.js} +4 -4
  21. package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
  22. package/dist/{chunk-JGRC33J2.js → chunk-54X7T7DK.js} +12 -3
  23. package/dist/{chunk-YQWYVTMC.js → chunk-5636DCO5.js} +4 -4
  24. package/dist/{chunk-7E7I3WLS.js → chunk-57XXR6DR.js} +23 -22
  25. package/dist/{chunk-7ZYNNDKC.js → chunk-5TUB6SLS.js} +2 -2
  26. package/dist/{chunk-VW6DOEDG.js → chunk-6OSVSQL5.js} +11 -2
  27. package/dist/{chunk-L47TF46W.js → chunk-6PAZTBPA.js} +14 -2
  28. package/dist/{chunk-XIVNBFZS.js → chunk-6Q3CYFD3.js} +34 -16
  29. package/dist/{chunk-RSJ25QSL.js → chunk-6QOTUPRG.js} +155 -36
  30. package/dist/{chunk-JKKCYP3C.js → chunk-6UINWWS6.js} +10 -4
  31. package/dist/{chunk-WBKFA554.js → chunk-72YIHOZQ.js} +2 -2
  32. package/dist/{chunk-PAJQJ7BS.js → chunk-75W7L2E2.js} +246 -697
  33. package/dist/{chunk-RRNP2ANY.js → chunk-7UGL4MB5.js} +4 -4
  34. package/dist/{chunk-EKCHAPYA.js → chunk-AUPNRN7C.js} +2 -2
  35. package/dist/{chunk-ZDN3Y73Y.js → chunk-BJVFZO5U.js} +6 -48
  36. package/dist/{chunk-IWT4SF4R.js → chunk-CUSRQKPU.js} +64 -2
  37. package/dist/{chunk-SKHCAU7K.js → chunk-DQOVN6KV.js} +3 -2
  38. package/dist/{chunk-ZWPRK62N.js → chunk-DT3LWJOB.js} +4 -4
  39. package/dist/chunk-DXKJURES.js +671 -0
  40. package/dist/{chunk-BEPZRGGU.js → chunk-EL24TAU4.js} +2 -2
  41. package/dist/{chunk-OML5D5V5.js → chunk-ELWDPP3Y.js} +5 -5
  42. package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
  43. package/dist/chunk-EXLD33WO.js +381 -0
  44. package/dist/{chunk-IJNZMHLA.js → chunk-FEAXX7B6.js} +2 -2
  45. package/dist/{chunk-TM6LQDI3.js → chunk-FFUPXJC4.js} +74 -323
  46. package/dist/chunk-GX5WYQO4.js +59 -0
  47. package/dist/chunk-I2DWJ4GM.js +390 -0
  48. package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
  49. package/dist/chunk-IRXAATOX.js +539 -0
  50. package/dist/chunk-IXIY2H4R.js +44 -0
  51. package/dist/{chunk-KK4JZPBQ.js → chunk-IZXGRF7P.js} +76 -10
  52. package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
  53. package/dist/{chunk-INY6HTFL.js → chunk-JEIYHLOR.js} +2 -2
  54. package/dist/{chunk-MUW2BDDH.js → chunk-JQLNNIKT.js} +2 -2
  55. package/dist/{chunk-XPWWI35G.js → chunk-JSD46VO2.js} +19 -8
  56. package/dist/{chunk-VA5FNYMT.js → chunk-JT2RFCC5.js} +39 -2
  57. package/dist/{chunk-V2ANDPVT.js → chunk-K6T2ZAMZ.js} +168 -6
  58. package/dist/{chunk-B4OAX3SI.js → chunk-KFV5L5SK.js} +13 -6
  59. package/dist/{chunk-JEQ3XTHC.js → chunk-LLXSDWXS.js} +2 -2
  60. package/dist/{chunk-E3TPLWFX.js → chunk-LTIKRKFL.js} +3 -3
  61. package/dist/{chunk-NIQJ66N4.js → chunk-N56KALIC.js} +17 -17
  62. package/dist/{chunk-JDAY6FIL.js → chunk-NAI6ZFCY.js} +13 -9
  63. package/dist/{chunk-AF4YM7Z4.js → chunk-NRO2BJRH.js} +2490 -2182
  64. package/dist/{chunk-WRBAGUNF.js → chunk-NXIMQY5W.js} +2 -2
  65. package/dist/{chunk-I7ZPNEJM.js → chunk-NXYCB2VD.js} +5 -5
  66. package/dist/chunk-ODGTEFFI.js +50 -0
  67. package/dist/{chunk-2VIKGWFZ.js → chunk-OEJSLEPW.js} +2 -2
  68. package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
  69. package/dist/{chunk-54CBCGIR.js → chunk-Q4WO54TA.js} +132 -77
  70. package/dist/{chunk-B4VEBZKF.js → chunk-QUFRYSWI.js} +12 -6
  71. package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
  72. package/dist/{chunk-HEQY7ZFI.js → chunk-RAY4OVGZ.js} +2 -2
  73. package/dist/{chunk-G76U63X4.js → chunk-RQCKCSRL.js} +7 -7
  74. package/dist/{chunk-64I3JVYM.js → chunk-RXTN6AKH.js} +2 -2
  75. package/dist/{chunk-UPZU6GE4.js → chunk-RZDWV63N.js} +3 -3
  76. package/dist/{chunk-2UH2KFUP.js → chunk-S6PYF2XF.js} +2 -2
  77. package/dist/{chunk-JSC3U7TI.js → chunk-TOIVGRUX.js} +2 -2
  78. package/dist/{chunk-7DRAWPTZ.js → chunk-TQAHXW6Y.js} +1 -1
  79. package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
  80. package/dist/{chunk-AX2THNSA.js → chunk-UEPWCCTY.js} +4 -4
  81. package/dist/{chunk-QWGDJJYJ.js → chunk-USR47QNF.js} +4 -4
  82. package/dist/{chunk-Y3CBHOR6.js → chunk-V6HJFQZE.js} +2 -2
  83. package/dist/chunk-V76WTFTW.js +318 -0
  84. package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
  85. package/dist/{chunk-2UG5F4C5.js → chunk-XULDXHTN.js} +24 -12
  86. package/dist/chunk-XXYSBZIQ.js +283 -0
  87. package/dist/{chunk-MWUZBSAQ.js → chunk-Y55JBDO5.js} +331 -51
  88. package/dist/{chunk-W6RRQCPQ.js → chunk-YD5GIKET.js} +4 -4
  89. package/dist/{chunk-CE5AX47J.js → chunk-YECAMM3D.js} +2 -2
  90. package/dist/{chunk-WCXUNS7U.js → chunk-YNFKXPEC.js} +6 -6
  91. package/dist/cli/index.js +36 -35
  92. package/dist/{clio-CMMK4KRR.js → clio-QLICPCF5.js} +2 -2
  93. package/dist/{code-nav-MDZNQS33.js → code-nav-IJR2DBPR.js} +6 -6
  94. package/dist/{components-UCUQ4QXW.js → components-2TGAI2RC.js} +3 -4
  95. package/dist/{config-SVM5P5YI.js → config-IUA6OYNS.js} +52 -47
  96. package/dist/{configure-LE3IK2TJ.js → configure-VEPX4NMX.js} +14 -15
  97. package/dist/{context-VNCR7KAG.js → context-2DKHWH2T.js} +23 -23
  98. package/dist/{context-2OHRKS42.js → context-4MPR7WKB.js} +48 -42
  99. package/dist/{context-E3VC7RX5.js → context-BOYF5EJM.js} +11 -11
  100. package/dist/{context-clear-BW4O37TG.js → context-clear-S4ZJCQUX.js} +48 -42
  101. package/dist/{context-working-set-VDS25HXZ.js → context-working-set-3I3FYX6Y.js} +8 -8
  102. package/dist/detail-A7JAVSIG.js +98 -0
  103. package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-RJ5I2F2O.js} +71 -58
  104. package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
  105. package/dist/{doctor-WNNVO6FY.js → doctor-DKICC2SN.js} +54 -31
  106. package/dist/{eval-7G7SGAYO.js → eval-OQOQUDHK.js} +47 -56
  107. package/dist/{evidence-VD6736FQ.js → evidence-4DQ25GUQ.js} +53 -150
  108. package/dist/evidence-4F5USFKH.js +208 -0
  109. package/dist/{evolve-AL3NGVRL.js → evolve-GSS52E5J.js} +44 -41
  110. package/dist/{extensions-MOVJ32NM.js → extensions-G7MFLYHT.js} +4 -5
  111. package/dist/{fleet-QZHUMAGI.js → fleet-Q37YHHAQ.js} +74 -68
  112. package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-G7E4N7SM.js} +14 -11
  113. package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-O7M6QBA2.js} +6 -6
  114. package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-TOUBW6OW.js} +13 -13
  115. package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-SW33JJNI.js} +43 -39
  116. package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-CV2655TW.js} +2 -3
  117. package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-KESZX2YH.js} +16 -16
  118. package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-UQPMTVE3.js} +42 -38
  119. package/dist/{fleet-view-SWBR3VGQ.js → fleet-view-MN2VG4MR.js} +43 -39
  120. package/dist/{init-J477LKZH.js → init-PXEXQSBF.js} +60 -54
  121. package/dist/{interop-3FCM6XLG.js → interop-ZG5T62U3.js} +6 -7
  122. package/dist/inventory-C26CFDRR.js +101 -0
  123. package/dist/{library-QUQEIUG6.js → library-B2W4N74O.js} +16 -17
  124. package/dist/{memory-SGGSEP65.js → memory-YCANYS5A.js} +45 -42
  125. package/dist/{models-HEKUAXXK.js → models-GERTU3YI.js} +20 -22
  126. package/dist/{monitor-HKU57TYQ.js → monitor-CPNIUULB.js} +50 -44
  127. package/dist/{orchestrator-VDFAEFAI.js → orchestrator-J4BSH4WQ.js} +491 -1182
  128. package/dist/{panes-DN2SSFOH.js → panes-BOHAEGYC.js} +3 -3
  129. package/dist/{panes-TALGNPZT.js → panes-NXSLDQZ2.js} +5 -6
  130. package/dist/{paths-NBMFAIEZ.js → paths-VSUWNC22.js} +3 -4
  131. package/dist/{reset-EAJFFJVB.js → reset-TNWTB5LU.js} +5 -6
  132. package/dist/{resources-OVKSEFVE.js → resources-4PXNMD5G.js} +14 -14
  133. package/dist/{run-7DP7ZF2J.js → run-D6XJ34CN.js} +79 -83
  134. package/dist/{share-WML67FT3.js → share-2NWMJJEE.js} +14 -15
  135. package/dist/{skills-SG662R2K.js → skills-KR7WON5G.js} +18 -19
  136. package/dist/{skills-eval-VVZEUU46.js → skills-eval-O2ZNOLDS.js} +49 -46
  137. package/dist/{skills-inventory-I2E23GET.js → skills-inventory-ZZOUBK7O.js} +14 -14
  138. package/dist/{slash-commands-S7MBJDQK.js → slash-commands-ZXPJD64J.js} +32 -23
  139. package/dist/{steer-2LQOMCPB.js → steer-XA25PSCS.js} +3 -3
  140. package/dist/{support-CC2UJBJ6.js → support-7EMVWYG2.js} +2 -2
  141. package/dist/{targets-4QC3HIEW.js → targets-OMH2XCSN.js} +25 -27
  142. package/dist/tasks-IPAGMEIX.js +36 -0
  143. package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-C2J3JYRE.js} +4 -4
  144. package/dist/{tools-TFGJICCU.js → tools-EFFEAIDP.js} +5 -6
  145. package/dist/{uninstall-5PEVOE5B.js → uninstall-HALS6BLF.js} +7 -8
  146. package/dist/{upgrade-M4WXY6KN.js → upgrade-MS72RJEP.js} +14 -11
  147. package/dist/{usage-N7ZNVLEM.js → usage-NHG6MCJM.js} +60 -51
  148. package/dist/{verifiers-DJTP4XX6.js → verifiers-7AUNVXDY.js} +150 -17
  149. package/dist/{verify-RWE4PPEK.js → verify-FWYGPKMR.js} +12 -10
  150. package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
  151. package/dist/{wiki-generate-C7IQOXSP.js → wiki-generate-743CIGJW.js} +63 -56
  152. package/dist/{with-panes-4GCGSL7J.js → with-panes-BDQEWBRT.js} +2 -2
  153. package/dist/worker/entry.js +36 -33
  154. package/docs/README.md +3 -2
  155. package/docs/architecture/acp.md +17 -0
  156. package/docs/architecture/artifact-versions.md +1 -1
  157. package/docs/architecture/dispatch-typed-intent.md +1 -1
  158. package/docs/architecture/evidence-and-memory.md +1 -1
  159. package/docs/architecture/observability.md +7 -1
  160. package/docs/architecture/prompt-envelope-and-tools.md +15 -5
  161. package/docs/architecture/safety-model.md +10 -17
  162. package/docs/architecture/tui-design.md +1 -1
  163. package/docs/guide/built-in-agents.md +8 -8
  164. package/docs/guide/commands-and-modes.md +17 -2
  165. package/docs/guide/configuration-and-targets.md +3 -1
  166. package/docs/guide/configuration-reference.md +10 -5
  167. package/docs/guide/environment-variables.md +2 -2
  168. package/docs/guide/tool-usage.md +78 -3
  169. package/docs/history/config-knobs-audit.md +2 -2
  170. package/docs/process/development-pipeline.md +6 -1
  171. package/docs/process/git-commit-provenance.md +15 -0
  172. package/docs/process/release-cut-checklist.md +207 -0
  173. package/docs/process/scientific-validation.md +18 -17
  174. package/evals/behavioral-machinery-support.ts +1 -0
  175. package/evals/behavioral-machinery.yaml +1 -1
  176. package/package.json +1 -1
  177. package/skills/coding/coding-standards/SKILL.md +14 -4
  178. package/skills/context/context-handoff/SKILL.md +3 -3
  179. package/skills/context/context-prime/SKILL.md +3 -3
  180. package/skills/planning/architecture/SKILL.md +5 -5
  181. package/skills/planning/backlog/SKILL.md +4 -4
  182. package/skills/planning/prd/SKILL.md +4 -3
  183. package/skills/planning/product-intent/SKILL.md +8 -8
  184. package/skills/planning/tech-spec/SKILL.md +4 -4
  185. package/skills/registry.yaml +32 -32
  186. package/skills/research/arxiv-literature/SKILL.md +3 -3
  187. package/skills/research/experiment-protocol/SKILL.md +3 -3
  188. package/skills/research/scientific-debugging/SKILL.md +3 -2
  189. package/skills/research/scientific-modernization/SKILL.md +3 -3
  190. package/skills/skill-marketplace.json +16 -16
  191. package/skills/workflow/cut-it/SKILL.md +3 -4
  192. package/skills/workflow/design-council/SKILL.md +5 -10
  193. package/skills/workflow/grill-me/SKILL.md +14 -15
  194. package/skills/workflow/workflow-distiller/SKILL.md +4 -4
  195. package/src/cli/args.ts +0 -8
  196. package/src/cli/configure.ts +2 -1
  197. package/src/cli/doctor-state-size.ts +1 -12
  198. package/src/cli/doctor-validation-contract.ts +28 -0
  199. package/src/cli/doctor.ts +5 -0
  200. package/src/cli/evidence-detail.ts +1 -75
  201. package/src/cli/evidence-inventory.ts +1 -167
  202. package/src/cli/index.ts +2 -0
  203. package/src/cli/run.ts +0 -2
  204. package/src/cli/targets.ts +1 -1
  205. package/src/cli/tasks.ts +84 -0
  206. package/src/cli/upgrade.ts +10 -5
  207. package/src/cli/usage.ts +6 -0
  208. package/src/cli/verifiers.ts +147 -1
  209. package/src/cli/wiki-generate.ts +1 -0
  210. package/src/core/commit-attribution.ts +41 -1
  211. package/src/core/git-commit-attribution.ts +46 -3
  212. package/src/core/run-overrides.ts +0 -5
  213. package/src/core/skill-activation.ts +3 -0
  214. package/src/core/tool-names.ts +5 -2
  215. package/src/domains/agents/builtins/architect.md +1 -1
  216. package/src/domains/agents/builtins/coder.md +1 -1
  217. package/src/domains/agents/builtins/documenter.md +1 -1
  218. package/src/domains/agents/builtins/git-master.md +1 -1
  219. package/src/domains/agents/builtins/provenance.md +7 -7
  220. package/src/domains/agents/builtins/tester.md +1 -1
  221. package/src/domains/agents/builtins/verifier.md +2 -2
  222. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  223. package/src/domains/context/extension.ts +31 -7
  224. package/src/domains/context/refresh.ts +3 -0
  225. package/src/domains/context/wiki/frontmatter.ts +5 -2
  226. package/src/domains/context/wiki/generate.ts +6 -0
  227. package/src/domains/context/wiki/prompts.ts +43 -0
  228. package/src/domains/dispatch/active-route-planner.ts +4 -0
  229. package/src/domains/dispatch/code-step.ts +11 -4
  230. package/src/domains/dispatch/contract.ts +31 -7
  231. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  232. package/src/domains/dispatch/extension.ts +50 -27
  233. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  234. package/src/domains/dispatch/fleet-run.ts +1 -0
  235. package/src/domains/dispatch/host-verification.ts +114 -13
  236. package/src/domains/dispatch/intent.ts +28 -18
  237. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  238. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  239. package/src/domains/dispatch/reservation-store.ts +5 -3
  240. package/src/domains/dispatch/state.ts +15 -2
  241. package/src/domains/dispatch/types.ts +17 -2
  242. package/src/domains/eval/runners/clio-run.ts +12 -9
  243. package/src/domains/eval/runners/context-index.ts +2 -7
  244. package/src/domains/eval/runners/context-init.ts +3 -6
  245. package/src/domains/eval/runners/external-command.ts +29 -11
  246. package/src/domains/evidence/build.ts +102 -15
  247. package/src/domains/evidence/detail.ts +69 -0
  248. package/src/domains/evidence/eval.ts +13 -1
  249. package/src/domains/evidence/finish-contract-map.ts +5 -1
  250. package/src/domains/evidence/inventory.ts +167 -0
  251. package/src/domains/evidence/store.ts +16 -0
  252. package/src/domains/evidence/types.ts +12 -0
  253. package/src/domains/extensions/resources.ts +7 -0
  254. package/src/domains/middleware/marketplace-offer.ts +20 -1
  255. package/src/domains/middleware/runtime.ts +7 -3
  256. package/src/domains/mux/detect.ts +3 -6
  257. package/src/domains/observability/accountability.ts +15 -1
  258. package/src/domains/observability/contract.ts +52 -7
  259. package/src/domains/observability/evidence-index.ts +10 -0
  260. package/src/domains/observability/extension.ts +9 -5
  261. package/src/domains/observability/projection.ts +394 -45
  262. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  263. package/src/domains/prompts/fragments/operating/contract.md +2 -0
  264. package/src/domains/prompts/fragments/wiki/page.md +8 -0
  265. package/src/domains/providers/model-discovery.ts +1 -4
  266. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
  267. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  268. package/src/domains/providers/support.ts +1 -1
  269. package/src/domains/providers/types/runtime-descriptor.ts +1 -1
  270. package/src/domains/safety/action-classifier.ts +7 -0
  271. package/src/domains/safety/default-path-policy.ts +2 -0
  272. package/src/domains/safety/finish-contract-registration.ts +29 -14
  273. package/src/domains/safety/finish-contract.ts +252 -40
  274. package/src/domains/safety/index.ts +20 -1
  275. package/src/domains/safety/policy-engine.ts +26 -6
  276. package/src/domains/safety/rigor.ts +53 -39
  277. package/src/domains/safety/validation-contract.ts +388 -0
  278. package/src/domains/session/archive-readers.ts +10 -1
  279. package/src/domains/session/decision-board.ts +101 -2
  280. package/src/domains/session/entries.ts +44 -7
  281. package/src/domains/session/extension.ts +4 -4
  282. package/src/domains/session/handoff.ts +2 -1
  283. package/src/domains/session/manager.ts +2 -3
  284. package/src/domains/session/task-board.ts +14 -1
  285. package/src/domains/session/tree/fork.ts +1 -2
  286. package/src/domains/session/tree/navigator.ts +1 -1
  287. package/src/domains/user-tasks/acceptance.ts +56 -0
  288. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  289. package/src/domains/user-tasks/store.ts +34 -3
  290. package/src/engine/acp/adapter.ts +24 -6
  291. package/src/engine/acp/server.ts +21 -4
  292. package/src/engine/acp/transport.ts +53 -8
  293. package/src/engine/acp/types.ts +4 -0
  294. package/src/engine/apis/ollama-native.ts +15 -0
  295. package/src/engine/claude/subprocess-runtime.ts +107 -60
  296. package/src/engine/external-subprocess.ts +12 -4
  297. package/src/entry/orchestrator.ts +11 -2
  298. package/src/interactive/dispatch-board.ts +46 -717
  299. package/src/interactive/fleet-run-preview.ts +2 -1
  300. package/src/interactive/interactive-application.ts +3 -2
  301. package/src/interactive/interactive-presentation.ts +55 -12
  302. package/src/interactive/interactive-slash-runtime.ts +2 -1
  303. package/src/interactive/oracle.ts +5 -2
  304. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  305. package/src/interactive/overlays/message-picker.ts +2 -2
  306. package/src/interactive/overlays/settings.ts +2 -2
  307. package/src/interactive/overlays/tree-selector.ts +2 -2
  308. package/src/interactive/renderers/branch-summary.ts +1 -1
  309. package/src/interactive/slash-autocomplete.ts +4 -6
  310. package/src/interactive/slash-commands.ts +25 -39
  311. package/src/interactive/slash-spec.ts +28 -0
  312. package/src/interactive/view/artifacts.ts +2 -0
  313. package/src/interactive/worker-stream.ts +7 -3
  314. package/src/tools/bootstrap.ts +4 -0
  315. package/src/tools/builtin-tool-catalog.ts +31 -0
  316. package/src/tools/compete-worktrees.ts +7 -1
  317. package/src/tools/core-bootstrap.ts +16 -0
  318. package/src/tools/decide.ts +136 -0
  319. package/src/tools/dispatch-admission.ts +21 -0
  320. package/src/tools/dispatch-plan.ts +5 -2
  321. package/src/tools/dispatch-runner.ts +15 -1
  322. package/src/tools/dispatch-types.ts +6 -0
  323. package/src/tools/evidence.ts +96 -0
  324. package/src/tools/limitation.ts +76 -0
  325. package/src/tools/policy.ts +9 -0
  326. package/src/tools/presentation.ts +3 -0
  327. package/src/tools/registry.ts +1 -1
  328. package/src/tools/result-shaping.ts +17 -5
  329. package/src/tools/task-worktree.ts +13 -3
  330. package/src/tools/tasks.ts +10 -1
  331. package/src/tools/verify/authoring.ts +170 -83
  332. package/src/tools/verify/catalog.ts +122 -5
  333. package/src/tools/verify/index.ts +2 -1
  334. package/src/tools/verify/numeric.ts +298 -0
  335. package/src/tools/verify/perf.ts +143 -0
  336. package/src/tools/verify/scripts.ts +229 -2
  337. package/dist/chunk-7DICMOS6.js +0 -313
  338. package/dist/chunk-RVG5JXAL.js +0 -41
  339. package/dist/chunk-T56WDKA5.js +0 -183
  340. package/dist/chunk-VPKWYKEY.js +0 -169
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import "./chunk-S6PYF2XF.js";
2
3
  import {
3
4
  SPOT_CHECK_GUIDANCE,
4
5
  receiptEvidenceLabels,
5
6
  workerTextLabel,
6
7
  workerTextNonEvidenceNotices
7
- } from "./chunk-ZWPRK62N.js";
8
- import "./chunk-2UH2KFUP.js";
8
+ } from "./chunk-DT3LWJOB.js";
9
9
  import {
10
10
  UNVERIFIABLE_RECEIPT_VERIFICATION,
11
11
  closeAgentLedger,
@@ -16,7 +16,20 @@ import {
16
16
  provenanceCompactSuffix,
17
17
  renderAgentLedgerBoard,
18
18
  renderDispatchReviewerTask
19
- } from "./chunk-AF4YM7Z4.js";
19
+ } from "./chunk-NRO2BJRH.js";
20
+ import {
21
+ decideReviewGate,
22
+ finalizePendingGateDecision,
23
+ materializePendingGateDecision,
24
+ parseCompeteGateResult,
25
+ preflightPendingGateDecisionMaterialization,
26
+ preparePendingGateDecisionRecovery,
27
+ readGateDecisionArtifacts,
28
+ resolvePendingGateDecision,
29
+ stagePendingGateDecision,
30
+ stagePendingGateOutput
31
+ } from "./chunk-NXIMQY5W.js";
32
+ import "./chunk-XRZT5WY5.js";
20
33
  import {
21
34
  candidateDiffStat,
22
35
  claimCompeteGroup,
@@ -35,43 +48,32 @@ import {
35
48
  removeCandidateWorktreeMapped,
36
49
  settleCompeteGroupRun,
37
50
  settleRecoveredCompeteDecision
38
- } from "./chunk-B4VEBZKF.js";
51
+ } from "./chunk-QUFRYSWI.js";
39
52
  import {
40
53
  compileExecutionPlan,
41
54
  requireAgentSteps
42
- } from "./chunk-E3TPLWFX.js";
43
- import {
44
- decideReviewGate,
45
- finalizePendingGateDecision,
46
- materializePendingGateDecision,
47
- parseCompeteGateResult,
48
- preflightPendingGateDecisionMaterialization,
49
- preparePendingGateDecisionRecovery,
50
- readGateDecisionArtifacts,
51
- resolvePendingGateDecision,
52
- stagePendingGateDecision,
53
- stagePendingGateOutput
54
- } from "./chunk-WRBAGUNF.js";
55
+ } from "./chunk-LTIKRKFL.js";
56
+ import "./chunk-ODGTEFFI.js";
55
57
  import {
56
58
  adaptRunReceiptTrustStatus,
57
59
  summarizeTrustStatus,
58
60
  verifyReceiptIntegrity
59
- } from "./chunk-IWT4SF4R.js";
60
- import "./chunk-JKKCYP3C.js";
61
+ } from "./chunk-CUSRQKPU.js";
62
+ import "./chunk-6UINWWS6.js";
61
63
  import "./chunk-FTMGRKEF.js";
62
- import "./chunk-XRZT5WY5.js";
63
- import "./chunk-RVG5JXAL.js";
64
64
  import "./chunk-VIA6RFQZ.js";
65
+ import "./chunk-W6GROXXM.js";
65
66
  import {
67
+ activeDecisionRefs,
66
68
  durableAssistantTextFromEvent
67
- } from "./chunk-T56WDKA5.js";
68
- import "./chunk-W6GROXXM.js";
69
- import "./chunk-2VIKGWFZ.js";
69
+ } from "./chunk-I2DWJ4GM.js";
70
+ import "./chunk-OEJSLEPW.js";
70
71
  import "./chunk-RKKLTLYB.js";
71
- import "./chunk-6PTFB5VS.js";
72
- import "./chunk-TXOTCRLG.js";
72
+ import "./chunk-K6T2ZAMZ.js";
73
+ import "./chunk-3UUXNFEX.js";
74
+ import "./chunk-V76WTFTW.js";
73
75
  import "./chunk-3DPEIQKN.js";
74
- import "./chunk-7DRAWPTZ.js";
76
+ import "./chunk-TQAHXW6Y.js";
75
77
  import "./chunk-5MEZN6CB.js";
76
78
  import "./chunk-HVDIIIQW.js";
77
79
  import {
@@ -81,55 +83,59 @@ import {
81
83
  RESOLVED_DISPATCH_PLAN_ARGUMENT,
82
84
  REVIEWER_GATE_PROMPT,
83
85
  describeDispatchPlan,
84
- narrowDispatchIntentToReadOnly,
85
86
  renderCouncilVoteMemberTask,
86
87
  withResolvedPlanTaskPin
87
- } from "./chunk-PAJQJ7BS.js";
88
+ } from "./chunk-75W7L2E2.js";
89
+ import "./chunk-6QOTUPRG.js";
88
90
  import {
89
91
  explainRouteDecision
90
- } from "./chunk-EKCHAPYA.js";
91
- import "./chunk-L47TF46W.js";
92
- import "./chunk-RSJ25QSL.js";
93
- import "./chunk-XIVNBFZS.js";
92
+ } from "./chunk-AUPNRN7C.js";
93
+ import "./chunk-6PAZTBPA.js";
94
+ import "./chunk-6Q3CYFD3.js";
94
95
  import "./chunk-NEDJ26B5.js";
95
- import "./chunk-42FMPA75.js";
96
+ import "./chunk-OQE5J4C6.js";
97
+ import "./chunk-NAI6ZFCY.js";
98
+ import "./chunk-OZNBF4L3.js";
99
+ import "./chunk-QZWQA4DE.js";
96
100
  import {
97
101
  gateDeciderAgentId,
98
102
  gateRouteCorrelation
99
103
  } from "./chunk-H7IXIC72.js";
100
- import "./chunk-7DICMOS6.js";
101
- import "./chunk-OQE5J4C6.js";
102
- import "./chunk-HHV2GANA.js";
103
104
  import {
104
105
  parseJsonObjectPayload,
105
106
  parseScoutResult,
106
107
  resultContractSourceId
107
- } from "./chunk-B4OAX3SI.js";
108
- import "./chunk-I7ZPNEJM.js";
109
- import "./chunk-GYV6VZOC.js";
110
- import "./chunk-UL3WSD3F.js";
111
- import "./chunk-JDAY6FIL.js";
112
- import "./chunk-OZNBF4L3.js";
108
+ } from "./chunk-KFV5L5SK.js";
109
+ import "./chunk-NXYCB2VD.js";
113
110
  import "./chunk-ECH6PKUQ.js";
114
111
  import {
115
- truncateUtf8
116
- } from "./chunk-6XLNIQDB.js";
112
+ narrowDispatchIntentToReadOnly
113
+ } from "./chunk-IRXAATOX.js";
114
+ import "./chunk-BJVFZO5U.js";
115
+ import "./chunk-DXKJURES.js";
116
+ import "./chunk-HHV2GANA.js";
117
+ import "./chunk-GYV6VZOC.js";
118
+ import "./chunk-UL3WSD3F.js";
117
119
  import "./chunk-5B2AEOW5.js";
118
120
  import "./chunk-VAVR4IJY.js";
119
- import "./chunk-JGRC33J2.js";
120
121
  import "./chunk-4BJ5BYCE.js";
121
- import "./chunk-K6BSR66V.js";
122
- import "./chunk-XPWWI35G.js";
122
+ import "./chunk-54X7T7DK.js";
123
+ import "./chunk-I5FWO7L5.js";
124
+ import {
125
+ truncateUtf8
126
+ } from "./chunk-6XLNIQDB.js";
127
+ import "./chunk-4NSRCOYP.js";
128
+ import "./chunk-JSD46VO2.js";
123
129
  import "./chunk-CFGTUFWB.js";
124
130
  import "./chunk-NZMNUPZZ.js";
125
131
  import "./chunk-2JH2WHGE.js";
126
- import "./chunk-HAXOFFRH.js";
127
- import "./chunk-R346GLFC.js";
128
132
  import "./chunk-KXDSS5WJ.js";
129
133
  import "./chunk-GHS5EBTQ.js";
130
134
  import "./chunk-D7E7WCDF.js";
135
+ import "./chunk-HAXOFFRH.js";
136
+ import "./chunk-R346GLFC.js";
131
137
  import "./chunk-BTK3SSSK.js";
132
- import "./chunk-NMJXSHBJ.js";
138
+ import "./chunk-W54I7H25.js";
133
139
  import "./chunk-PMZVFWSR.js";
134
140
  import {
135
141
  BusChannels
@@ -139,15 +145,15 @@ import "./chunk-33YXPOE3.js";
139
145
  import "./chunk-7CR24IG7.js";
140
146
  import "./chunk-XPLRXC72.js";
141
147
  import "./chunk-IWHMRKLL.js";
142
- import "./chunk-VW6DOEDG.js";
148
+ import "./chunk-6OSVSQL5.js";
143
149
  import "./chunk-UXCU4E3T.js";
144
150
  import "./chunk-LL4KHSZI.js";
145
- import "./chunk-JSC3U7TI.js";
146
151
  import "./chunk-S66XZJOF.js";
147
- import "./chunk-JIEGK6UF.js";
152
+ import "./chunk-TOIVGRUX.js";
153
+ import "./chunk-U6TMQNSI.js";
148
154
  import "./chunk-EBY63B7G.js";
149
155
  import "./chunk-6EJMN2Y3.js";
150
- import "./chunk-LLDJM5XK.js";
156
+ import "./chunk-26QSH3EJ.js";
151
157
  import "./chunk-ID64D7PE.js";
152
158
  import "./chunk-336NSSKI.js";
153
159
  import "./chunk-IKCO5N3L.js";
@@ -762,6 +768,7 @@ async function runReviewGated(deps, base, review, timeoutMs, signal) {
762
768
  ...review.target !== void 0 ? { target: review.target } : {},
763
769
  ...base.plan !== void 0 ? { plan: base.plan } : {},
764
770
  ...base.parentToolCallId !== void 0 ? { parentToolCallId: base.parentToolCallId } : {},
771
+ ...base.decisionRefs !== void 0 ? { decisionRefs: base.decisionRefs } : {},
765
772
  ...base.reservation !== void 0 ? { reservation: { ownerId: base.reservation.ownerId, memberId: base.reservation.memberId } } : {}
766
773
  };
767
774
  const reviewer = await runOne(
@@ -1164,7 +1171,9 @@ async function runCompete(deps, base, compete, autonomy, timeoutMs, signal) {
1164
1171
  const receipt = candidateRuns[index]?.receipt;
1165
1172
  const failed = receipt !== void 0 && isPipelineStepFailure(receipt);
1166
1173
  if (failed) return "builder failed";
1167
- commitCandidateWork(worktree, `clio-coder compete ${group} candidate ${worktree.index}`);
1174
+ if (receipt?.autonomyEnforcement?.autonomy !== "read-only") {
1175
+ commitCandidateWork(worktree, `clio-coder compete ${group} candidate ${worktree.index}`);
1176
+ }
1168
1177
  return candidateDiffStat(root, worktree.branch);
1169
1178
  });
1170
1179
  if (candidateRuns.every((run) => isPipelineStepFailure(run.receipt))) {
@@ -1197,6 +1206,7 @@ async function runCompete(deps, base, compete, autonomy, timeoutMs, signal) {
1197
1206
  ...compete.judge?.node !== void 0 ? { node: compete.judge.node } : {},
1198
1207
  ...base.plan !== void 0 ? { plan: base.plan } : {},
1199
1208
  ...base.parentToolCallId !== void 0 ? { parentToolCallId: base.parentToolCallId } : {},
1209
+ ...base.decisionRefs !== void 0 ? { decisionRefs: base.decisionRefs } : {},
1200
1210
  ...base.reservation !== void 0 ? { reservation: { ownerId: base.reservation.ownerId, memberId: base.reservation.memberId } } : {}
1201
1211
  };
1202
1212
  throwIfStopped();
@@ -1758,7 +1768,8 @@ ${base.task}`,
1758
1768
  ...council.judge?.model ? { model: council.judge.model } : {},
1759
1769
  ...council.judge?.node ? { node: council.judge.node } : {},
1760
1770
  ...base.plan ? { plan: base.plan } : {},
1761
- ...base.parentToolCallId ? { parentToolCallId: base.parentToolCallId } : {}
1771
+ ...base.parentToolCallId ? { parentToolCallId: base.parentToolCallId } : {},
1772
+ ...base.decisionRefs !== void 0 ? { decisionRefs: base.decisionRefs } : {}
1762
1773
  };
1763
1774
  const pinned = council.resolvedTasks?.find((task) => task.role === "synthesis");
1764
1775
  const judgeRun = await runMember(
@@ -1897,6 +1908,8 @@ async function runDispatchTool(inputDeps, admissionState, args, options) {
1897
1908
  const reservationOwnerId = admissionState.trustedReservationOwners.get(args);
1898
1909
  const parentToolCallId = options?.toolCallId;
1899
1910
  let requests = parentToolCallId === void 0 || parentToolCallId.length === 0 ? structuredClone(snapshot.requests) : snapshot.requests.map((request) => ({ ...structuredClone(request), parentToolCallId }));
1911
+ const decisionRefs = activeDecisionRefs(deps.getDecisionBoard?.() ?? []);
1912
+ if (decisionRefs.length > 0) requests = requests.map((request) => ({ ...request, decisionRefs }));
1900
1913
  if (planView.planScale && deps.dispatch.preview !== void 0 && resolvedPlan === null) {
1901
1914
  return { kind: "error", message: "dispatch: resolved plan is missing after admission" };
1902
1915
  }
@@ -2346,4 +2359,4 @@ async function runWriterLimitedBatch(deps, requests, timeoutMs, signal) {
2346
2359
  export {
2347
2360
  runDispatchTool
2348
2361
  };
2349
- //# sourceMappingURL=dispatch-runner-5AHT53RF.js.map
2362
+ //# sourceMappingURL=dispatch-runner-RJ5I2F2O.js.map
@@ -1,11 +1,9 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  printError,
4
- printHeader
5
- } from "./chunk-VPKWYKEY.js";
6
- import {
4
+ printHeader,
7
5
  source_default
8
- } from "./chunk-5TSRNF4G.js";
6
+ } from "./chunk-JCI2ROMZ.js";
9
7
  import {
10
8
  resolvePackageRoot
11
9
  } from "./chunk-IWHMRKLL.js";
@@ -291,4 +289,4 @@ export {
291
289
  runDocsCommand,
292
290
  waitForShutdown
293
291
  };
294
- //# sourceMappingURL=docs-PD3EXDKU.js.map
292
+ //# sourceMappingURL=docs-SPOV3BAN.js.map
@@ -3,7 +3,7 @@ import {
3
3
  MUX_METHOD_MIN_PROTOCOL,
4
4
  detectMux,
5
5
  resolveSocketCandidates
6
- } from "./chunk-KKOJXO6R.js";
6
+ } from "./chunk-OMQNJVKW.js";
7
7
  import "./chunk-HRQMFLJP.js";
8
8
  import {
9
9
  formatDoctorReport,
@@ -13,7 +13,7 @@ import {
13
13
  runDoctorInteropChecks,
14
14
  runDoctorModelChecks,
15
15
  runDoctorRuntimeChecks
16
- } from "./chunk-N2Z7HLVY.js";
16
+ } from "./chunk-2ASED4PZ.js";
17
17
  import {
18
18
  inspectInstalledNamingResources,
19
19
  inspectModelOverlayNaming,
@@ -24,59 +24,68 @@ import {
24
24
  regenerateYaziNamingProfile,
25
25
  transformNamingSettingsDocument
26
26
  } from "./chunk-IGLP3ODT.js";
27
- import {
28
- TraceReader
29
- } from "./chunk-VKPAQYEB.js";
30
27
  import {
31
28
  describeYaziProfile,
32
29
  inspectCurrentYaziProfile,
33
30
  userYaziConfigDir,
34
31
  yaziProfileDir
35
32
  } from "./chunk-3M6DQK6S.js";
33
+ import {
34
+ TraceReader
35
+ } from "./chunk-VKPAQYEB.js";
36
36
  import "./chunk-LCGCVYZ4.js";
37
- import "./chunk-LDJG7DW3.js";
37
+ import "./chunk-2ZSONWVL.js";
38
38
  import "./chunk-NDDGJUXD.js";
39
- import "./chunk-CE5AX47J.js";
39
+ import "./chunk-YECAMM3D.js";
40
+ import {
41
+ describeValidationContract,
42
+ loadValidationContract
43
+ } from "./chunk-V76WTFTW.js";
40
44
  import "./chunk-3DPEIQKN.js";
41
- import "./chunk-7DRAWPTZ.js";
45
+ import "./chunk-TQAHXW6Y.js";
42
46
  import "./chunk-5MEZN6CB.js";
43
47
  import "./chunk-D4CJV46V.js";
48
+ import {
49
+ formatBytes
50
+ } from "./chunk-DQOVN6KV.js";
44
51
  import "./chunk-NEKRRTYW.js";
45
- import "./chunk-INY6HTFL.js";
52
+ import "./chunk-JEIYHLOR.js";
46
53
  import "./chunk-I7XBWTYH.js";
47
- import "./chunk-PUVDKJ2Y.js";
54
+ import "./chunk-2IR2NMPA.js";
55
+ import "./chunk-3ODX73FK.js";
48
56
  import {
49
57
  printError
50
- } from "./chunk-VPKWYKEY.js";
51
- import "./chunk-5TSRNF4G.js";
58
+ } from "./chunk-JCI2ROMZ.js";
52
59
  import {
53
60
  describeResolution,
54
61
  toolStatus,
55
62
  toolStatuses
56
63
  } from "./chunk-QSNYB6ZV.js";
57
- import "./chunk-JGRC33J2.js";
58
64
  import "./chunk-4BJ5BYCE.js";
59
- import "./chunk-K6BSR66V.js";
65
+ import "./chunk-54X7T7DK.js";
66
+ import "./chunk-I5FWO7L5.js";
67
+ import "./chunk-6XLNIQDB.js";
68
+ import "./chunk-4NSRCOYP.js";
60
69
  import {
61
70
  findPinnedTool
62
71
  } from "./chunk-QDC3K2U3.js";
63
72
  import "./chunk-2JH2WHGE.js";
64
- import "./chunk-HAXOFFRH.js";
65
- import "./chunk-R346GLFC.js";
66
73
  import "./chunk-KXDSS5WJ.js";
67
74
  import {
68
75
  readSettings,
69
76
  withSettingsLock
70
77
  } from "./chunk-GHS5EBTQ.js";
71
78
  import "./chunk-D7E7WCDF.js";
79
+ import "./chunk-HAXOFFRH.js";
80
+ import "./chunk-R346GLFC.js";
72
81
  import "./chunk-BTK3SSSK.js";
73
82
  import "./chunk-XPLRXC72.js";
74
83
  import "./chunk-IWHMRKLL.js";
75
84
  import "./chunk-UXCU4E3T.js";
76
85
  import "./chunk-LL4KHSZI.js";
77
- import "./chunk-JSC3U7TI.js";
78
86
  import "./chunk-S66XZJOF.js";
79
- import "./chunk-JIEGK6UF.js";
87
+ import "./chunk-TOIVGRUX.js";
88
+ import "./chunk-U6TMQNSI.js";
80
89
  import "./chunk-EBY63B7G.js";
81
90
  import "./chunk-6EJMN2Y3.js";
82
91
  import "./chunk-ID64D7PE.js";
@@ -653,17 +662,6 @@ function measureEntry(path) {
653
662
  }
654
663
  return { bytes, error: null };
655
664
  }
656
- function formatBytes(bytes) {
657
- if (bytes < 1024) return `${bytes} B`;
658
- const units = ["KiB", "MiB", "GiB", "TiB"];
659
- let value = bytes;
660
- let unit = -1;
661
- do {
662
- value /= 1024;
663
- unit += 1;
664
- } while (value >= 1024 && unit < units.length - 1);
665
- return `${value.toFixed(value >= 10 ? 1 : 2)} ${units[unit]}`;
666
- }
667
665
 
668
666
  // src/cli/doctor-toolchain.ts
669
667
  init_esm_shims();
@@ -706,6 +704,29 @@ function toolchainFindings(options = {}) {
706
704
  return [...tools, yaziProfileFinding(filesEnabled)];
707
705
  }
708
706
 
707
+ // src/cli/doctor-validation-contract.ts
708
+ init_esm_shims();
709
+ function validationContractFinding(workspaceRoot = process.cwd()) {
710
+ const name = "validation contract";
711
+ const loaded = loadValidationContract(workspaceRoot);
712
+ if (!loaded.ok) {
713
+ return { ok: false, name, detail: `invalid: ${describeValidationContract(loaded)}; rigor default stays normal` };
714
+ }
715
+ if (loaded.contract === null) {
716
+ if ("advisory" in loaded) {
717
+ return { ok: true, name, level: "warn", detail: `markdown-only: ${describeValidationContract(loaded)}` };
718
+ }
719
+ return { ok: true, name, detail: "none at the workspace root; rigor default normal" };
720
+ }
721
+ const artifacts = loaded.contract.artifacts?.length ?? 0;
722
+ const validators = loaded.contract.validators?.length ?? 0;
723
+ return {
724
+ ok: true,
725
+ name,
726
+ detail: `valid: ${loaded.path} (version ${loaded.contract.version}, ${artifacts} artifact(s), ${validators} validator(s)); rigor default high`
727
+ };
728
+ }
729
+
709
730
  // src/cli/doctor.ts
710
731
  var HELP = `clio-coder doctor [--fix] [--json]
711
732
 
@@ -746,6 +767,7 @@ async function runDoctorCommand(args = []) {
746
767
  const toolChecks = untouched ? [] : toolchainFindings({ panesEnabled, filesEnabled });
747
768
  const paneChecks = untouched ? [] : await panesFindings();
748
769
  const namingChecks = namingFootprintFindings({ fix, yaziEnabled: filesEnabled });
770
+ const contractChecks = [validationContractFinding()];
749
771
  const all = [
750
772
  ...findings,
751
773
  ...storageChecks,
@@ -755,7 +777,8 @@ async function runDoctorCommand(args = []) {
755
777
  ...fleetChecks,
756
778
  ...toolChecks,
757
779
  ...paneChecks,
758
- ...namingChecks
780
+ ...namingChecks,
781
+ ...contractChecks
759
782
  ];
760
783
  const ok = all.every((f) => f.ok);
761
784
  if (json) {
@@ -770,4 +793,4 @@ async function runDoctorCommand(args = []) {
770
793
  export {
771
794
  runDoctorCommand
772
795
  };
773
- //# sourceMappingURL=doctor-WNNVO6FY.js.map
796
+ //# sourceMappingURL=doctor-DKICC2SN.js.map
@@ -5,10 +5,10 @@ import {
5
5
  import {
6
6
  loadFragments,
7
7
  renderCodewikiDigest
8
- } from "./chunk-Y3CBHOR6.js";
8
+ } from "./chunk-V6HJFQZE.js";
9
9
  import {
10
10
  discoverAgentRecipes
11
- } from "./chunk-RRNP2ANY.js";
11
+ } from "./chunk-7UGL4MB5.js";
12
12
  import {
13
13
  EvalTaskFileError,
14
14
  TRUST_STATUS_AXES,
@@ -23,11 +23,11 @@ import {
23
23
  loadEvalTaskFile,
24
24
  summarizeTrustStatus,
25
25
  verifyReceiptIntegrity
26
- } from "./chunk-IWT4SF4R.js";
26
+ } from "./chunk-CUSRQKPU.js";
27
27
  import {
28
28
  listSessionLedgerRefs,
29
29
  parseSessionEntries
30
- } from "./chunk-JKKCYP3C.js";
30
+ } from "./chunk-6UINWWS6.js";
31
31
  import {
32
32
  EVAL_BEHAVIOR_METRIC_DEFINITIONS_V1,
33
33
  EVAL_EXECUTION_ENVELOPE_SCHEMA_V1,
@@ -51,52 +51,49 @@ import {
51
51
  } from "./chunk-FTMGRKEF.js";
52
52
  import "./chunk-W6GROXXM.js";
53
53
  import "./chunk-RKKLTLYB.js";
54
- import {
55
- shellQuote
56
- } from "./chunk-TXOTCRLG.js";
57
- import "./chunk-LDJG7DW3.js";
54
+ import "./chunk-2ZSONWVL.js";
58
55
  import "./chunk-NDDGJUXD.js";
59
- import "./chunk-CE5AX47J.js";
56
+ import "./chunk-YECAMM3D.js";
60
57
  import "./chunk-3DPEIQKN.js";
61
- import "./chunk-7DRAWPTZ.js";
58
+ import "./chunk-TQAHXW6Y.js";
62
59
  import "./chunk-5MEZN6CB.js";
63
- import "./chunk-PUVDKJ2Y.js";
60
+ import "./chunk-3ODX73FK.js";
64
61
  import "./chunk-HVDIIIQW.js";
65
62
  import {
66
63
  printError
67
- } from "./chunk-VPKWYKEY.js";
68
- import "./chunk-5TSRNF4G.js";
69
- import "./chunk-EKCHAPYA.js";
70
- import "./chunk-L47TF46W.js";
64
+ } from "./chunk-JCI2ROMZ.js";
65
+ import "./chunk-AUPNRN7C.js";
66
+ import "./chunk-6PAZTBPA.js";
71
67
  import {
72
68
  createSafetyPolicyEngine
73
- } from "./chunk-XIVNBFZS.js";
69
+ } from "./chunk-6Q3CYFD3.js";
74
70
  import "./chunk-H7IXIC72.js";
75
- import "./chunk-7DICMOS6.js";
76
- import "./chunk-HHV2GANA.js";
77
71
  import {
78
72
  agentSpecFingerprint,
79
73
  normalizeAgentSpec
80
- } from "./chunk-B4OAX3SI.js";
81
- import "./chunk-I7ZPNEJM.js";
74
+ } from "./chunk-KFV5L5SK.js";
75
+ import "./chunk-NXYCB2VD.js";
76
+ import "./chunk-ECH6PKUQ.js";
77
+ import "./chunk-DXKJURES.js";
78
+ import "./chunk-HHV2GANA.js";
82
79
  import "./chunk-GYV6VZOC.js";
83
80
  import "./chunk-UL3WSD3F.js";
84
- import "./chunk-ECH6PKUQ.js";
85
- import "./chunk-JGRC33J2.js";
86
- import "./chunk-K6BSR66V.js";
81
+ import "./chunk-54X7T7DK.js";
82
+ import "./chunk-I5FWO7L5.js";
83
+ import "./chunk-4NSRCOYP.js";
87
84
  import "./chunk-CFGTUFWB.js";
88
85
  import {
89
86
  extractReasoningTokens
90
87
  } from "./chunk-NZMNUPZZ.js";
91
- import "./chunk-HAXOFFRH.js";
92
- import {
93
- InvalidIdError
94
- } from "./chunk-R346GLFC.js";
95
88
  import "./chunk-KXDSS5WJ.js";
96
89
  import "./chunk-GHS5EBTQ.js";
97
90
  import {
98
91
  namingCompatibilityEnvironment
99
92
  } from "./chunk-D7E7WCDF.js";
93
+ import "./chunk-HAXOFFRH.js";
94
+ import {
95
+ InvalidIdError
96
+ } from "./chunk-R346GLFC.js";
100
97
  import {
101
98
  normalizeClioCoderEventRecord,
102
99
  normalizeClioCoderEventType
@@ -117,9 +114,9 @@ import "./chunk-XPLRXC72.js";
117
114
  import "./chunk-IWHMRKLL.js";
118
115
  import "./chunk-UXCU4E3T.js";
119
116
  import "./chunk-LL4KHSZI.js";
120
- import "./chunk-JSC3U7TI.js";
121
117
  import "./chunk-S66XZJOF.js";
122
- import "./chunk-JIEGK6UF.js";
118
+ import "./chunk-TOIVGRUX.js";
119
+ import "./chunk-U6TMQNSI.js";
123
120
  import "./chunk-EBY63B7G.js";
124
121
  import "./chunk-6EJMN2Y3.js";
125
122
  import "./chunk-ID64D7PE.js";
@@ -3016,6 +3013,7 @@ var OUTPUT_HEAD_LIMIT = 2e4;
3016
3013
  var OUTPUT_TRUNCATION_MARKER = "\n[output middle truncated; tail preserved]\n";
3017
3014
  var METRIC_JSONL_LIMIT = 256e3;
3018
3015
  var METRIC_JSONL_LINE_LIMIT = 64e3;
3016
+ var TIMEOUT_KILL_GRACE_MS = 5e3;
3019
3017
  async function runExternalCommandRunner(runner, cwd, timeoutMs, env) {
3020
3018
  const runnerCommands = runner.commands ?? [];
3021
3019
  const commands = runnerCommands.length > 0 ? runnerCommands : runner.command === void 0 ? [] : [runner.command];
@@ -3085,14 +3083,10 @@ function runShellCommand(command, cwd, timeoutMs, env) {
3085
3083
  const callLedgerFold = createEvalCallLedgerFold();
3086
3084
  let timedOut = false;
3087
3085
  let settled = false;
3088
- const child = spawn(command, {
3089
- cwd,
3090
- shell: true,
3091
- stdio: ["ignore", "pipe", "pipe"],
3092
- // The overlay is additive: an eval item pins where Clio writes its
3093
- // journal, and inherits everything else the operator's shell provides.
3094
- env: env === void 0 ? process.env : { ...process.env, ...env }
3095
- });
3086
+ const spawnEnv = env === void 0 ? process.env : { ...process.env, ...env };
3087
+ const [file, args, shell] = typeof command === "string" ? [command, [], true] : [command[0], command.slice(1), false];
3088
+ const child = spawn(file, args, { cwd, shell, stdio: ["ignore", "pipe", "pipe"], env: spawnEnv });
3089
+ const commandLine = typeof command === "string" ? command : command.join(" ");
3096
3090
  child.stdout.setEncoding("utf8");
3097
3091
  child.stderr.setEncoding("utf8");
3098
3092
  child.stdout.on("data", (chunk) => {
@@ -3109,14 +3103,14 @@ function runShellCommand(command, cwd, timeoutMs, env) {
3109
3103
  const timer = setTimeout(() => {
3110
3104
  timedOut = true;
3111
3105
  child.kill("SIGTERM");
3112
- setTimeout(() => child.kill("SIGKILL"), 1e3);
3106
+ setTimeout(() => child.kill("SIGKILL"), TIMEOUT_KILL_GRACE_MS);
3113
3107
  }, timeoutMs);
3114
3108
  const finish = (exitCode) => {
3115
3109
  if (settled) return;
3116
3110
  settled = true;
3117
3111
  clearTimeout(timer);
3118
3112
  resolve9({
3119
- command,
3113
+ command: commandLine,
3120
3114
  exitCode,
3121
3115
  stdout,
3122
3116
  metricJsonl: metricCapture.finish(),
@@ -3252,18 +3246,19 @@ function stringField(record, field) {
3252
3246
  async function runClioRunRunner(runner, cwd, clioEntry, timeoutMs, target, env, readObservation) {
3253
3247
  const prompt = runner.prompt ?? "";
3254
3248
  const args = [
3255
- shellQuote(clioEntry),
3249
+ process.execPath,
3250
+ clioEntry,
3256
3251
  "run",
3257
3252
  "--json",
3258
- ...runner.agent === void 0 ? [] : ["--agent", shellQuote(runner.agent)],
3253
+ ...runner.agent === void 0 ? [] : ["--agent", runner.agent],
3259
3254
  "--target",
3260
- shellQuote(target.id),
3261
- ...target.model === void 0 ? [] : ["--model", shellQuote(target.model)],
3262
- ...target.thinking === void 0 ? [] : ["--thinking", shellQuote(target.thinking)],
3255
+ target.id,
3256
+ ...target.model === void 0 ? [] : ["--model", target.model],
3257
+ ...target.thinking === void 0 ? [] : ["--thinking", target.thinking],
3263
3258
  ...runner.autonomy === void 0 ? [] : ["--autonomy", runner.autonomy],
3264
- shellQuote(prompt)
3259
+ prompt
3265
3260
  ];
3266
- const result = await runShellCommand(`${process.execPath} ${args.join(" ")}`, cwd, runner.timeoutMs ?? timeoutMs, env);
3261
+ const result = await runShellCommand(args, cwd, runner.timeoutMs ?? timeoutMs, env);
3267
3262
  const tokens = result.usage;
3268
3263
  const toolMetricStream = result.metricJsonl.length > 0 ? result.metricJsonl : result.stdout;
3269
3264
  const tools = toolCallMetricsFromJsonl(toolMetricStream);
@@ -3449,12 +3444,8 @@ function isRecord9(value) {
3449
3444
  // src/domains/eval/runners/context-index.ts
3450
3445
  init_esm_shims();
3451
3446
  async function runContextIndexRunner(cwd, clioEntry, timeoutMs, target, env) {
3452
- const result = await runShellCommand(
3453
- `${shellQuote(process.execPath)} ${shellQuote(clioEntry)} context index --json`,
3454
- cwd,
3455
- timeoutMs,
3456
- env
3457
- );
3447
+ const args = [process.execPath, clioEntry, "context", "index", "--json"];
3448
+ const result = await runShellCommand(args, cwd, timeoutMs, env);
3458
3449
  const parsed = parseContextIndexOutput(result.stdout);
3459
3450
  return {
3460
3451
  assignmentId: null,
@@ -3496,7 +3487,7 @@ import { existsSync as existsSync2, statSync } from "node:fs";
3496
3487
  import { join as join4 } from "node:path";
3497
3488
  async function runContextInitRunner(runner, cwd, clioEntry, timeoutMs, target, env) {
3498
3489
  const extraArgs = runner.args ?? [];
3499
- const command = [
3490
+ const args = [
3500
3491
  process.execPath,
3501
3492
  clioEntry,
3502
3493
  "context",
@@ -3508,8 +3499,8 @@ async function runContextInitRunner(runner, cwd, clioEntry, timeoutMs, target, e
3508
3499
  ...target.model === void 0 ? [] : ["--model", target.model],
3509
3500
  ...target.thinking === void 0 ? [] : ["--thinking", target.thinking],
3510
3501
  ...extraArgs
3511
- ].map(shellQuote).join(" ");
3512
- const result = await runShellCommand(command, cwd, runner.timeoutMs ?? timeoutMs, env);
3502
+ ];
3503
+ const result = await runShellCommand(args, cwd, runner.timeoutMs ?? timeoutMs, env);
3513
3504
  const payload = parseInitPayload(result.stdout);
3514
3505
  const candidateGeneration = recordField2(payload, "generation");
3515
3506
  const generation = isValidGenerationPayload(payload, candidateGeneration) ? candidateGeneration : null;
@@ -4672,4 +4663,4 @@ function comparisonFormat(value) {
4672
4663
  export {
4673
4664
  runEvalCommand
4674
4665
  };
4675
- //# sourceMappingURL=eval-7G7SGAYO.js.map
4666
+ //# sourceMappingURL=eval-OQOQUDHK.js.map