@iowarp/clio-coder 0.3.9 → 0.4.1

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 (733) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/NOTICE +33 -0
  3. package/README.md +121 -16
  4. package/dist/{acp-7LOELQFP.js → acp-ZILU3AUO.js} +19 -18
  5. package/dist/{agents-FIBG2SHA.js → agents-HYWGBGQR.js} +53 -39
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-OI4LIH2I.js → auth-N3QT7CBO.js} +24 -21
  8. package/dist/{builtins-AD25UL3C.js → builtins-UJLMOVOV.js} +6 -6
  9. package/dist/{chunk-I4HZDVNP.js → chunk-2LEAKD4C.js} +2 -3
  10. package/dist/{chunk-465CC7FK.js → chunk-2NM363SV.js} +60 -64
  11. package/dist/{chunk-4H6ULJ3H.js → chunk-2VG7KLYV.js} +1046 -1370
  12. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  13. package/dist/{chunk-NZU6YDNV.js → chunk-3I5NY75V.js} +5 -5
  14. package/dist/{chunk-47CMYGET.js → chunk-3QSOM6PA.js} +2 -2
  15. package/dist/chunk-42FMPA75.js +101 -0
  16. package/dist/{chunk-HAY4ZE2P.js → chunk-5PSMVOLM.js} +2 -2
  17. package/dist/{chunk-IHKBWSXF.js → chunk-5QIAJV2D.js} +3 -3
  18. package/dist/chunk-5YHDIDBP.js +97 -0
  19. package/dist/chunk-6CCS4G3W.js +1529 -0
  20. package/dist/{chunk-2JDWVJND.js → chunk-6DWBAZ5U.js} +2 -2
  21. package/dist/{chunk-BVDVID7E.js → chunk-6FN3E6KX.js} +6 -6
  22. package/dist/{chunk-DG4M6ZUE.js → chunk-6HMJX2VU.js} +59 -59
  23. package/dist/{chunk-3MRC2YSQ.js → chunk-6I5ILFOF.js} +3 -2
  24. package/dist/chunk-6NJQITNH.js +1412 -0
  25. package/dist/chunk-6VC4OV3Z.js +365 -0
  26. package/dist/{chunk-LU7P4LHA.js → chunk-72GZI5EV.js} +2 -2
  27. package/dist/{chunk-5T7RBWN2.js → chunk-74YWRRU5.js} +9 -8
  28. package/dist/{chunk-VPTUJU4P.js → chunk-7EPLI7VL.js} +2 -2
  29. package/dist/{chunk-CA42X6KT.js → chunk-7OBGU7UB.js} +7 -7
  30. package/dist/{chunk-56KB5IJP.js → chunk-7PWAODYW.js} +3 -3
  31. package/dist/chunk-7RY5VZPH.js +573 -0
  32. package/dist/{chunk-OEDBCISO.js → chunk-ABLSQ6JX.js} +3 -3
  33. package/dist/{chunk-5HFBWUMU.js → chunk-AFKWHWXF.js} +13 -23
  34. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  35. package/dist/{chunk-WXCJ7VME.js → chunk-AKB4GYDL.js} +7 -7
  36. package/dist/chunk-AP73CFDC.js +308 -0
  37. package/dist/{chunk-4LJX2PUC.js → chunk-BBTJOK6Y.js} +5 -5
  38. package/dist/{chunk-QQ7EKM72.js → chunk-BDPT6GTK.js} +13 -61
  39. package/dist/chunk-BJGUKIG4.js +302 -0
  40. package/dist/chunk-BMS5RKQY.js +27 -0
  41. package/dist/{chunk-TD7UE2L5.js → chunk-BTGG6BG2.js} +81 -40
  42. package/dist/chunk-BTK3SSSK.js +67 -0
  43. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  44. package/dist/chunk-BWW4HLO4.js +301 -0
  45. package/dist/{chunk-BNAZZHFG.js → chunk-BYP5D4HI.js} +1 -1
  46. package/dist/{chunk-HJB5IUKP.js → chunk-C537JADH.js} +18 -18
  47. package/dist/{chunk-774ILSRL.js → chunk-CDNVLKUX.js} +5 -4
  48. package/dist/{chunk-HPCTNZM2.js → chunk-CTJ4RNAA.js} +4 -4
  49. package/dist/{chunk-AEYBF3TB.js → chunk-CWVRRIEI.js} +2 -2
  50. package/dist/chunk-D4CJV46V.js +462 -0
  51. package/dist/chunk-D7E7WCDF.js +27 -0
  52. package/dist/{chunk-5PVQ4SRS.js → chunk-E67WX76H.js} +10 -126
  53. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  54. package/dist/chunk-EIMVLWB3.js +1842 -0
  55. package/dist/{chunk-AMKHQW3C.js → chunk-FEFIFZTL.js} +3 -3
  56. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  57. package/dist/{chunk-3DUR4WUA.js → chunk-FYUN5KZ3.js} +25 -25
  58. package/dist/{chunk-MV3K5QF2.js → chunk-GCSMB2KY.js} +2 -2
  59. package/dist/chunk-GIZNH63R.js +40 -0
  60. package/dist/chunk-GPPB3JBE.js +688 -0
  61. package/dist/{chunk-B5XRQOLB.js → chunk-GVQJ5CCZ.js} +17 -11
  62. package/dist/chunk-HHV2GANA.js +88 -0
  63. package/dist/chunk-HJWWJ6IL.js +184 -0
  64. package/dist/{chunk-RKRLDWD3.js → chunk-HLW2MRKE.js} +1 -1
  65. package/dist/chunk-HRQMFLJP.js +75 -0
  66. package/dist/{chunk-AD7Y7STJ.js → chunk-HUAS7ITX.js} +107 -97
  67. package/dist/{chunk-O6I4CIEU.js → chunk-I66EAJFY.js} +6 -6
  68. package/dist/{chunk-S4COXYBG.js → chunk-IG7BCQBA.js} +129 -106
  69. package/dist/{chunk-N3PBVRTZ.js → chunk-IXJT6DCX.js} +9 -7
  70. package/dist/chunk-J4HBWF6Y.js +2635 -0
  71. package/dist/chunk-J5LZHVIT.js +284 -0
  72. package/dist/{chunk-GAYUJ7LE.js → chunk-JA5QWE4Z.js} +544 -227
  73. package/dist/{chunk-B5CSFE7B.js → chunk-JIEGK6UF.js} +6 -174
  74. package/dist/{chunk-VKBMFOYV.js → chunk-JZWT5J3Y.js} +23 -27
  75. package/dist/chunk-K6BF4U2H.js +1785 -0
  76. package/dist/{chunk-CGKSTWHD.js → chunk-K6BSR66V.js} +2 -1
  77. package/dist/{chunk-YSEHGPCT.js → chunk-MA3H6DM5.js} +6 -6
  78. package/dist/{chunk-EBOC7MT3.js → chunk-MOPSG2X7.js} +9 -9
  79. package/dist/{chunk-KV2AOLDF.js → chunk-MQXIVJ35.js} +18 -29
  80. package/dist/{chunk-P3JGPQFL.js → chunk-N5UK64DP.js} +4 -4
  81. package/dist/chunk-NDDGJUXD.js +81 -0
  82. package/dist/chunk-NEKRRTYW.js +56 -0
  83. package/dist/{chunk-4ZG3XFUR.js → chunk-NLFAQR7Z.js} +12 -1
  84. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  85. package/dist/{chunk-T3Z6VAAF.js → chunk-OJTRZGR3.js} +53 -92
  86. package/dist/{chunk-5DQRIYDZ.js → chunk-PBP4B7XR.js} +3 -3
  87. package/dist/{chunk-NQ6UCCOD.js → chunk-PJJ6MY27.js} +8 -8
  88. package/dist/chunk-PMZCIOCJ.js +25 -0
  89. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  90. package/dist/{chunk-7C6RYZGQ.js → chunk-PVAMAVBB.js} +5 -4
  91. package/dist/chunk-QDC3K2U3.js +262 -0
  92. package/dist/{chunk-JEQQR47K.js → chunk-QKIFBZKT.js} +173 -14
  93. package/dist/{chunk-R7LNVMCS.js → chunk-QMXC4JB7.js} +70 -78
  94. package/dist/chunk-QSNYB6ZV.js +195 -0
  95. package/dist/chunk-QTFGO774.js +644 -0
  96. package/dist/{chunk-ODFEOB4F.js → chunk-R23Z6K6I.js} +27 -9
  97. package/dist/{chunk-3UUY7R3Z.js → chunk-R32CLGZ6.js} +14 -14
  98. package/dist/chunk-R346GLFC.js +31 -0
  99. package/dist/chunk-RKSR6VSF.js +132 -0
  100. package/dist/{chunk-N5XKWMDW.js → chunk-SCYB3HA4.js} +73 -27
  101. package/dist/{chunk-PZ4I4JE2.js → chunk-SINK3QR6.js} +135 -125
  102. package/dist/{chunk-5QKCQQ3E.js → chunk-SUW5DORT.js} +2 -2
  103. package/dist/chunk-T56WDKA5.js +183 -0
  104. package/dist/{chunk-ECUO3KDP.js → chunk-TD3PGPQA.js} +87 -26
  105. package/dist/{chunk-HKO36JWF.js → chunk-THYWACCR.js} +31 -3
  106. package/dist/{chunk-LXPJXFM5.js → chunk-TVH4ONAM.js} +18 -12
  107. package/dist/chunk-TVHHYFHE.js +255 -0
  108. package/dist/chunk-U2WB7TZS.js +271 -0
  109. package/dist/{chunk-NNNWO6F2.js → chunk-UAPGZHYC.js} +237 -33
  110. package/dist/{chunk-MIX5N5AC.js → chunk-UEDMSP56.js} +415 -160
  111. package/dist/{chunk-WIE7ZOSW.js → chunk-UXN6JT4W.js} +3 -3
  112. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  113. package/dist/{chunk-MV2VUEJC.js → chunk-VEGN6WIQ.js} +2 -2
  114. package/dist/chunk-VKFQTNDV.js +66 -0
  115. package/dist/{chunk-FALJGAWU.js → chunk-VKRH2TCS.js} +2 -2
  116. package/dist/{chunk-A2NJGIB3.js → chunk-VN3SHNBN.js} +2 -2
  117. package/dist/{chunk-XK56QHLX.js → chunk-VPKWYKEY.js} +19 -5
  118. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  119. package/dist/{chunk-EQ63NRB7.js → chunk-WNP7O5WZ.js} +3 -3
  120. package/dist/chunk-WR6U3OVP.js +45 -0
  121. package/dist/{chunk-TEO2TLVN.js → chunk-XKA2ICR3.js} +1051 -1196
  122. package/dist/{chunk-3V5AYSEQ.js → chunk-Y45G3AXC.js} +72 -65
  123. package/dist/{chunk-J5Q24KAG.js → chunk-Y4CAGMM6.js} +2 -2
  124. package/dist/chunk-YAKGTXEV.js +17 -0
  125. package/dist/{chunk-ZI647VB5.js → chunk-YPI3QQCF.js} +2 -2
  126. package/dist/{chunk-YW7UVM5V.js → chunk-ZAZB4JMW.js} +55 -11
  127. package/dist/{chunk-HCBCAYZU.js → chunk-ZJLUDYFY.js} +11 -11
  128. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  129. package/dist/{chunk-IFBNV6H6.js → chunk-ZW55JB7N.js} +3 -3
  130. package/dist/cli/index.js +48 -37
  131. package/dist/clio-IT3G3VQH.js +25 -0
  132. package/dist/{code-nav-LMW275PA.js → code-nav-RK6S7F6E.js} +8 -8
  133. package/dist/codewiki/build-worker.js +1 -1
  134. package/dist/{compile-cache-CVJMMODC.js → compile-cache-OQAVB7Y5.js} +3 -5
  135. package/dist/{components-ZFA3SAER.js → components-UBWCQSRW.js} +6 -6
  136. package/dist/{config-RXS5T3JT.js → config-3QZRWZJF.js} +73 -61
  137. package/dist/configure-FL7Y3KJF.js +54 -0
  138. package/dist/{context-MVOORGMF.js → context-5HE7ODYK.js} +61 -49
  139. package/dist/{context-I3BTOTCS.js → context-KYQFRVDC.js} +11 -11
  140. package/dist/{context-PALKKQYL.js → context-XNHL75JV.js} +43 -28
  141. package/dist/{context-clear-N2WOYZ2K.js → context-clear-N545L53A.js} +60 -48
  142. package/dist/{context-working-set-MIEVECVZ.js → context-working-set-QHKXSV2F.js} +15 -13
  143. package/dist/{dispatch-runner-VVA4SRRH.js → dispatch-runner-RGIE5PCT.js} +109 -72
  144. package/dist/{docs-7LQ23DLM.js → docs-5NAF6AU7.js} +7 -13
  145. package/dist/doctor-ZGPEGHIP.js +772 -0
  146. package/dist/{eval-IJ5VEZDJ.js → eval-GXLL44RD.js} +106 -86
  147. package/dist/eval-inventory-HBWSWQOK.js +315 -0
  148. package/dist/{evidence-L5APPXNV.js → evidence-HWLBRH3Q.js} +209 -51
  149. package/dist/{evolve-RGNKFJ52.js → evolve-FTZBMNVW.js} +57 -45
  150. package/dist/{extensions-7WYWUX5A.js → extensions-VHRBEID7.js} +7 -7
  151. package/dist/{fleet-6CNVBZZP.js → fleet-CKZHJWZJ.js} +215 -114
  152. package/dist/{fleet-commands-L2SXSYEI.js → fleet-commands-EXDXBMV6.js} +13 -12
  153. package/dist/fleet-decisions-OTHB6KRL.js +157 -0
  154. package/dist/{fleet-graph-2J3OOIPO.js → fleet-graph-YTEZUCUT.js} +20 -17
  155. package/dist/fleet-inspect-SS6YMDCK.js +445 -0
  156. package/dist/{fleet-preflight-CZRJ4JP5.js → fleet-preflight-PBY4VYOM.js} +6 -9
  157. package/dist/{fleet-validate-C5RI6DP7.js → fleet-validate-KMEM5L3S.js} +25 -20
  158. package/dist/fleet-verify-QD5M7E7Q.js +178 -0
  159. package/dist/fleet-view-WAMJYNDT.js +94 -0
  160. package/dist/{init-VBN2ACVA.js → init-5XQRBOFV.js} +79 -66
  161. package/dist/install-NKNG7KD4.js +13 -0
  162. package/dist/interop-34TVO25M.js +116 -0
  163. package/dist/{library-JHGUMLY2.js → library-3QY6KF57.js} +25 -21
  164. package/dist/{memory-K4OQIYWG.js → memory-L4UTIIIW.js} +59 -47
  165. package/dist/{models-2NCZUWDD.js → models-ZVX3QOWE.js} +47 -37
  166. package/dist/{monitor-MMVTJABD.js → monitor-CEKVSYTS.js} +67 -57
  167. package/dist/{orchestrator-ZKBPCHW6.js → orchestrator-77BAP6BC.js} +7633 -7699
  168. package/dist/panes-7STHOAUJ.js +103 -0
  169. package/dist/panes-SHAUIRXY.js +60 -0
  170. package/dist/{paths-DBXMZMDU.js → paths-L7LGY6RN.js} +6 -6
  171. package/dist/{reset-DD5JGOY3.js → reset-EOLM7GVE.js} +15 -14
  172. package/dist/resources-74GKTLSF.js +115 -0
  173. package/dist/{run-QEGNX7FL.js → run-HBAUJNNZ.js} +139 -98
  174. package/dist/{share-JKD3BQMW.js → share-G3APVLVP.js} +25 -21
  175. package/dist/{skills-LMQIKDOZ.js → skills-35HHUKCR.js} +37 -27
  176. package/dist/{skills-eval-I7X2774U.js → skills-eval-QN4HSHDC.js} +80 -73
  177. package/dist/skills-inventory-J357J34F.js +129 -0
  178. package/dist/slash-commands-JZZCQA32.js +79 -0
  179. package/dist/{steer-CF5TDANS.js → steer-XAVHJM22.js} +4 -4
  180. package/dist/{support-I7LOJLIF.js → support-U7QOWY26.js} +7 -7
  181. package/dist/{targets-RUSR6B5Z.js → targets-DSM6CY3M.js} +67 -59
  182. package/dist/{terminal-lease-QYVORFR4.js → terminal-lease-JOPFUVEM.js} +15 -10
  183. package/dist/tools-MKNWVPBH.js +29 -0
  184. package/dist/{trace-ODOQIVIW.js → trace-ECQ7TIYZ.js} +194 -7
  185. package/dist/tui-primitives-K5PASC3O.js +17 -0
  186. package/dist/{uninstall-ZJF5H5ZN.js → uninstall-N34PCTGJ.js} +6 -8
  187. package/dist/{upgrade-XANW3FXB.js → upgrade-H7TOM7YL.js} +37 -62
  188. package/dist/{usage-4H7ZRXQT.js → usage-X52N3IDJ.js} +70 -59
  189. package/dist/{verifiers-UZXNBZEB.js → verifiers-EJTVVSMA.js} +174 -14
  190. package/dist/{verify-BVKWTNDL.js → verify-YJL6XET2.js} +12 -11
  191. package/dist/{web-fetch-2YHJ3KTG.js → web-fetch-MPIFL3LL.js} +3 -4
  192. package/dist/{wiki-generate-MY7WV2QI.js → wiki-generate-4NDZTQ4B.js} +86 -75
  193. package/dist/with-panes-OBOBFIIR.js +818 -0
  194. package/dist/worker/entry.js +131 -91
  195. package/docs/README.md +3 -2
  196. package/docs/acp.md +25 -4
  197. package/docs/alcf-provider.md +1 -1
  198. package/docs/architecture.md +2 -2
  199. package/docs/artifact-versions.md +4 -1
  200. package/docs/built-in-agents.md +40 -32
  201. package/docs/capacity-and-scheduling.md +43 -5
  202. package/docs/commands-and-modes.md +39 -4
  203. package/docs/config-knobs-audit.md +3 -0
  204. package/docs/configuration-and-targets.md +138 -167
  205. package/docs/context-engine.md +1 -1
  206. package/docs/development-pipeline.md +19 -0
  207. package/docs/dispatch-typed-intent.md +385 -0
  208. package/docs/documentation-coverage.md +2 -2
  209. package/docs/documentation-guide.md +1 -1
  210. package/docs/environment-variables.md +3 -1
  211. package/docs/eval-runner.md +1 -1
  212. package/docs/evals-internal.md +1 -1
  213. package/docs/evidence-and-memory.md +2 -2
  214. package/docs/evolution.md +1 -1
  215. package/docs/exit-codes-and-output.md +3 -1
  216. package/docs/extensions-and-sharing.md +25 -1
  217. package/docs/fleet-demo-runbook.md +6 -3
  218. package/docs/fleet-dispatch.md +30 -7
  219. package/docs/installation-and-lifecycle.md +16 -3
  220. package/docs/middleware-and-components.md +1 -1
  221. package/docs/model-catalog.md +10 -1
  222. package/docs/observability.md +3 -3
  223. package/docs/proactive-memory.md +1 -1
  224. package/docs/prompt-envelope-and-tools.md +1 -1
  225. package/docs/provider-adapter-cookbook.md +1 -1
  226. package/docs/release-cut-checklist.md +164 -177
  227. package/docs/safety-model.md +2 -2
  228. package/docs/scientific-validation.md +3 -3
  229. package/docs/session-lifecycle.md +1 -1
  230. package/docs/skills-marketplace.md +1 -1
  231. package/docs/tool-usage.md +18 -8
  232. package/docs/trace-store.md +16 -11
  233. package/docs/troubleshooting.md +2 -2
  234. package/docs/tui-design.md +1 -1
  235. package/docs/worker-dispatch-mechanics.md +1 -1
  236. package/evals/README.md +5 -0
  237. package/evals/behavioral-corpus-grader.mjs +103 -0
  238. package/evals/behavioral-machinery-baseline.json +2276 -0
  239. package/evals/behavioral-machinery-driver.ts +250 -0
  240. package/evals/behavioral-machinery-support.ts +253 -0
  241. package/evals/behavioral-machinery.yaml +614 -0
  242. package/evals/behavioral-model-negative-control.yaml +68 -0
  243. package/evals/behavioral-model.yaml +216 -0
  244. package/evals/fixtures/behavioral-facts.txt +3 -0
  245. package/evals/fixtures/behavioral-main.ts +7 -0
  246. package/evals/fixtures/decoy/note.txt +2 -0
  247. package/evals/fixtures/private/credentials.txt +1 -0
  248. package/evals/tracked-metrics-baseline.yaml +229 -0
  249. package/evals/tracked-metrics-grader.mjs +129 -0
  250. package/package.json +8 -16
  251. package/skills/README.md +6 -6
  252. package/skills/coding/ast-grep/SKILL.md +8 -2
  253. package/skills/coding/coding-standards/SKILL.md +8 -2
  254. package/skills/coding/prototype/SKILL.md +8 -2
  255. package/skills/coding/tdd/SKILL.md +8 -2
  256. package/skills/context/context-handoff/SKILL.md +12 -3
  257. package/skills/context/context-handoff/evals.md +3 -3
  258. package/skills/context/context-prime/SKILL.md +8 -2
  259. package/skills/context/context-prime/evals.md +2 -2
  260. package/skills/git/file-ticket/SKILL.md +9 -4
  261. package/skills/git/file-ticket/evals.md +2 -2
  262. package/skills/git/fix-issue/SKILL.md +12 -5
  263. package/skills/git/fix-issue/evals.md +4 -4
  264. package/skills/git/resolve-merge-conflicts/SKILL.md +8 -2
  265. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  266. package/skills/git/ship/SKILL.md +9 -3
  267. package/skills/git/ship/evals.md +4 -4
  268. package/skills/git/worktree-create/SKILL.md +7 -2
  269. package/skills/git/worktree-create/evals.md +6 -6
  270. package/skills/git/worktree-merge/SKILL.md +7 -2
  271. package/skills/git/worktree-merge/evals.md +6 -6
  272. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +14 -8
  273. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +3 -3
  274. package/skills/meta/{clio-test → clio-coder-test}/SKILL.md +11 -5
  275. package/skills/meta/{clio-test → clio-coder-test}/evals.md +1 -1
  276. package/skills/meta/credentials/SKILL.md +9 -2
  277. package/skills/meta/find-skills/SKILL.md +8 -2
  278. package/skills/meta/herdr/SKILL.md +8 -2
  279. package/skills/meta/skill-craft/SKILL.md +21 -4
  280. package/skills/planning/architecture/SKILL.md +9 -3
  281. package/skills/planning/backlog/SKILL.md +8 -2
  282. package/skills/planning/prd/SKILL.md +8 -2
  283. package/skills/planning/product-intent/SKILL.md +8 -2
  284. package/skills/planning/tech-spec/SKILL.md +9 -3
  285. package/skills/registry.yaml +66 -66
  286. package/skills/research/arxiv-literature/SKILL.md +8 -2
  287. package/skills/research/experiment-protocol/SKILL.md +9 -2
  288. package/skills/research/scientific-debugging/SKILL.md +9 -2
  289. package/skills/research/scientific-debugging/evals.md +2 -2
  290. package/skills/research/scientific-modernization/SKILL.md +9 -2
  291. package/skills/skill-marketplace.json +257 -38
  292. package/skills/workflow/cut-it/SKILL.md +10 -2
  293. package/skills/workflow/design-council/SKILL.md +11 -2
  294. package/skills/workflow/grill-me/SKILL.md +8 -2
  295. package/skills/workflow/workflow-distiller/SKILL.md +8 -2
  296. package/src/cli/acp.ts +8 -4
  297. package/src/cli/argv.ts +25 -0
  298. package/src/cli/auth.ts +2 -2
  299. package/src/cli/bootstrap-generate.ts +5 -5
  300. package/src/cli/clio.ts +6 -1
  301. package/src/cli/config-inspect.ts +3 -3
  302. package/src/cli/configure-interop.ts +1 -1
  303. package/src/cli/configure.ts +50 -48
  304. package/src/cli/default-target.ts +1 -1
  305. package/src/cli/docs.ts +6 -6
  306. package/src/cli/doctor-naming.ts +323 -0
  307. package/src/cli/doctor-panes.ts +156 -0
  308. package/src/cli/doctor-toolchain.ts +78 -0
  309. package/src/cli/doctor.ts +34 -1
  310. package/src/cli/eval-inventory.ts +436 -0
  311. package/src/cli/eval.ts +13 -0
  312. package/src/cli/evidence-detail.ts +88 -0
  313. package/src/cli/evidence-inventory.ts +183 -0
  314. package/src/cli/evidence.ts +30 -5
  315. package/src/cli/fleet-decisions.ts +69 -0
  316. package/src/cli/fleet-inspect.ts +334 -0
  317. package/src/cli/fleet-preflight.ts +1 -1
  318. package/src/cli/fleet-verify.ts +133 -0
  319. package/src/cli/fleet-view.ts +827 -0
  320. package/src/cli/fleet.ts +154 -40
  321. package/src/cli/index.ts +14 -2
  322. package/src/cli/interop-inspect.ts +128 -0
  323. package/src/cli/interop.ts +34 -0
  324. package/src/cli/models.ts +3 -3
  325. package/src/cli/modes/print.ts +1 -1
  326. package/src/cli/panes.ts +35 -0
  327. package/src/cli/reset.ts +6 -3
  328. package/src/cli/run.ts +67 -13
  329. package/src/cli/share.ts +1 -1
  330. package/src/cli/skills-eval.ts +11 -11
  331. package/src/cli/skills-inventory.ts +185 -0
  332. package/src/cli/skills.ts +16 -13
  333. package/src/cli/targets.ts +23 -24
  334. package/src/cli/tools.ts +321 -0
  335. package/src/cli/trace-inspect.ts +252 -0
  336. package/src/cli/trace.ts +64 -2
  337. package/src/cli/uninstall.ts +2 -2
  338. package/src/cli/upgrade.ts +29 -34
  339. package/src/cli/usage.ts +2 -2
  340. package/src/cli/validate-model.ts +1 -1
  341. package/src/cli/verifiers-inspect.ts +347 -0
  342. package/src/cli/verifiers.ts +9 -0
  343. package/src/cli/wiki-generate.ts +5 -5
  344. package/src/core/bash-exec.ts +1 -1
  345. package/src/core/boot-trace.ts +3 -3
  346. package/src/core/bus-events.ts +4 -0
  347. package/src/core/bus-trace.ts +2 -2
  348. package/src/core/compile-cache.ts +1 -1
  349. package/src/core/config.ts +1070 -845
  350. package/src/core/defaults.ts +342 -463
  351. package/src/core/domain-loader.ts +6 -4
  352. package/src/core/event-bus.ts +1 -1
  353. package/src/core/file-references.ts +78 -88
  354. package/src/core/git-commit-attribution.ts +3 -9
  355. package/src/core/guardrails.ts +24 -4
  356. package/src/core/naming-compat.ts +45 -0
  357. package/src/core/naming-events.ts +62 -0
  358. package/src/core/recent-models.ts +1 -7
  359. package/src/core/residency-protection.ts +4 -8
  360. package/src/core/resolve-config-value.ts +1 -1
  361. package/src/core/response-model-id.ts +0 -14
  362. package/src/core/response-schema.ts +44 -4
  363. package/src/core/session-routing.ts +84 -74
  364. package/src/core/skill-activation.ts +18 -0
  365. package/src/core/termination.ts +4 -4
  366. package/src/core/theme-token-hex.ts +43 -0
  367. package/src/core/timers.ts +2 -12
  368. package/src/core/tool-names.ts +2 -1
  369. package/src/core/xdg.ts +1 -1
  370. package/src/domains/agents/catalog.ts +2 -12
  371. package/src/domains/agents/extension.ts +3 -3
  372. package/src/domains/agents/fleets/build-review.md +0 -3
  373. package/src/domains/agents/fleets/build-test.md +0 -3
  374. package/src/domains/agents/registry.ts +7 -7
  375. package/src/domains/agents/result-contract-filesystem.ts +32 -0
  376. package/src/domains/agents/result-contract.ts +165 -36
  377. package/src/domains/agents/spec.ts +0 -11
  378. package/src/domains/config/classify.ts +37 -46
  379. package/src/domains/config/extension.ts +5 -5
  380. package/src/domains/config/keybindings.ts +48 -47
  381. package/src/domains/config/watcher.ts +1 -1
  382. package/src/domains/context/codewiki/indexer.ts +1 -1
  383. package/src/domains/context/extension.ts +3 -3
  384. package/src/domains/context/prompt-context.ts +1 -1
  385. package/src/domains/context/wiki/assemble.ts +2 -2
  386. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  387. package/src/domains/context/working-set/replay/report.ts +1 -1
  388. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  389. package/src/domains/dispatch/active-route-planner.ts +2 -2
  390. package/src/domains/dispatch/admission-error.ts +9 -0
  391. package/src/domains/dispatch/admission.ts +22 -21
  392. package/src/domains/dispatch/agent-candidates.ts +1 -1
  393. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  394. package/src/domains/dispatch/agent-ledger.ts +1 -1
  395. package/src/domains/dispatch/assignment.ts +5 -5
  396. package/src/domains/dispatch/capacity-lease.ts +23 -6
  397. package/src/domains/dispatch/code-step.ts +1 -1
  398. package/src/domains/dispatch/contract.ts +2 -2
  399. package/src/domains/dispatch/council-topology.ts +398 -0
  400. package/src/domains/dispatch/extension.ts +287 -111
  401. package/src/domains/dispatch/fleet-node-prompt.ts +62 -0
  402. package/src/domains/dispatch/fleet-plan.ts +7 -2
  403. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  404. package/src/domains/dispatch/fleet-run.ts +59 -3
  405. package/src/domains/dispatch/gate-decisions.ts +36 -15
  406. package/src/domains/dispatch/gate-role-prompts.ts +9 -0
  407. package/src/domains/dispatch/gate-topology.ts +289 -0
  408. package/src/domains/dispatch/index.ts +19 -0
  409. package/src/domains/dispatch/intent-compatibility.ts +330 -0
  410. package/src/domains/dispatch/intent.ts +85 -1
  411. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  412. package/src/domains/dispatch/path-scope.ts +0 -61
  413. package/src/domains/dispatch/placement.ts +2 -2
  414. package/src/domains/dispatch/receipt-findings.ts +1 -1
  415. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  416. package/src/domains/dispatch/reservation-store.ts +24 -27
  417. package/src/domains/dispatch/route-decision.ts +1 -1
  418. package/src/domains/dispatch/route-history.ts +1 -1
  419. package/src/domains/dispatch/route-policy.ts +1 -1
  420. package/src/domains/dispatch/route-readiness.ts +0 -28
  421. package/src/domains/dispatch/run-event-journal-bridge.ts +149 -0
  422. package/src/domains/dispatch/run-event-journal.ts +599 -0
  423. package/src/domains/dispatch/state.ts +45 -1
  424. package/src/domains/dispatch/tool-stats.ts +1 -1
  425. package/src/domains/dispatch/transport.ts +2 -19
  426. package/src/domains/dispatch/types.ts +16 -3
  427. package/src/domains/dispatch/validation.ts +33 -8
  428. package/src/domains/dispatch/worker-protocol.ts +2 -2
  429. package/src/domains/eval/artifacts/store.ts +5 -4
  430. package/src/domains/eval/compare/compare.ts +3 -16
  431. package/src/domains/eval/compare/thresholds.ts +0 -8
  432. package/src/domains/eval/execution-provenance.ts +1 -1
  433. package/src/domains/eval/inventory.ts +113 -0
  434. package/src/domains/eval/metrics/token-stream.ts +0 -7
  435. package/src/domains/eval/report.ts +1 -1
  436. package/src/domains/eval/runner.ts +1 -1
  437. package/src/domains/eval/runners/clio-run.ts +7 -6
  438. package/src/domains/eval/runners/external-command.ts +4 -3
  439. package/src/domains/eval/schema/artifact.ts +1 -1
  440. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  441. package/src/domains/eval/schema/behavioral.ts +7 -6
  442. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  443. package/src/domains/eval/schema/naming.ts +10 -0
  444. package/src/domains/eval/schema/serving.ts +31 -0
  445. package/src/domains/eval/schema/suite.ts +2 -2
  446. package/src/domains/eval/schema/validate.ts +9 -5
  447. package/src/domains/eval/schema/verdict.ts +4 -2
  448. package/src/domains/eval/store.ts +12 -2
  449. package/src/domains/eval/suites/run.ts +12 -6
  450. package/src/domains/eval/types.ts +1 -1
  451. package/src/domains/eval/workspaces/git.ts +1 -1
  452. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  453. package/src/domains/evidence/build.ts +13 -5
  454. package/src/domains/evidence/store.ts +6 -0
  455. package/src/domains/interop/consent.ts +7 -7
  456. package/src/domains/interop/extension.ts +1 -1
  457. package/src/domains/lifecycle/doctor.ts +27 -21
  458. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  459. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  460. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  461. package/src/domains/lifecycle/migrations/index.ts +20 -1
  462. package/src/domains/lifecycle/naming-history.ts +153 -0
  463. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  464. package/src/domains/lifecycle/naming-resources.ts +261 -0
  465. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  466. package/src/domains/lifecycle/naming-yazi.ts +81 -0
  467. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  468. package/src/domains/memory/index.ts +0 -1
  469. package/src/domains/memory/task-memory-handoff.ts +6 -3
  470. package/src/domains/memory/task-memory-policy.ts +6 -10
  471. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  472. package/src/domains/middleware/index.ts +7 -0
  473. package/src/domains/middleware/marketplace-offer.ts +339 -0
  474. package/src/domains/middleware/memory-intervention.ts +33 -21
  475. package/src/domains/middleware/runtime.ts +2 -2
  476. package/src/domains/mux/contract.ts +566 -0
  477. package/src/domains/mux/detect.ts +182 -0
  478. package/src/domains/mux/dock-controller.ts +365 -0
  479. package/src/domains/mux/extension.ts +53 -0
  480. package/src/domains/mux/index.ts +116 -0
  481. package/src/domains/mux/manifest.ts +6 -0
  482. package/src/domains/mux/operations.ts +192 -0
  483. package/src/domains/mux/pane-registry.ts +90 -0
  484. package/src/domains/mux/protocol.ts +62 -0
  485. package/src/domains/mux/socket-client.ts +964 -0
  486. package/src/domains/mux/types.ts +265 -0
  487. package/src/domains/mux/viewer-command.ts +59 -0
  488. package/src/domains/mux/yazi/assets/init.lua +2 -0
  489. package/src/domains/mux/yazi/assets/plugins/git.yazi/LICENSE +21 -0
  490. package/src/domains/mux/yazi/assets/plugins/git.yazi/README.md +78 -0
  491. package/src/domains/mux/yazi/assets/plugins/git.yazi/main.lua +255 -0
  492. package/src/domains/mux/yazi/assets/plugins/git.yazi/types.lua +12 -0
  493. package/src/domains/mux/yazi/assets/yazi.toml +17 -0
  494. package/src/domains/mux/yazi/event-stream.ts +182 -0
  495. package/src/domains/mux/yazi/profile.ts +299 -0
  496. package/src/domains/mux/yazi/session.ts +251 -0
  497. package/src/domains/mux/yazi/theme.ts +30 -0
  498. package/src/domains/observability/cost.ts +21 -0
  499. package/src/domains/observability/extension.ts +1 -1
  500. package/src/domains/observability/index.ts +2 -0
  501. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  502. package/src/domains/observability/projection.ts +1 -1
  503. package/src/domains/observability/trace-store.ts +63 -11
  504. package/src/domains/prompts/compiler.ts +2 -2
  505. package/src/domains/prompts/extension.ts +3 -3
  506. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -1
  507. package/src/domains/prompts/fragments/operating/skills.md +25 -18
  508. package/src/domains/providers/endpoint-capacity.ts +154 -22
  509. package/src/domains/providers/endpoint-slots-store.ts +189 -0
  510. package/src/domains/providers/extension.ts +25 -8
  511. package/src/domains/providers/index.ts +22 -0
  512. package/src/domains/providers/knowledge-base-path.ts +1 -1
  513. package/src/domains/providers/model-runtime-capabilities.ts +46 -2
  514. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  515. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +4 -4
  516. package/src/domains/providers/plugins.ts +1 -1
  517. package/src/domains/providers/resolver.ts +1 -1
  518. package/src/domains/providers/runtimes/boot-manifest.ts +1 -0
  519. package/src/domains/providers/runtimes/builtins.ts +2 -0
  520. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  521. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  522. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  523. package/src/domains/providers/runtimes/common/probe-helpers.ts +2 -2
  524. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  525. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  526. package/src/domains/providers/runtimes/protocol/litellm.ts +285 -0
  527. package/src/domains/providers/support.ts +1 -0
  528. package/src/domains/providers/target-model-cache.ts +124 -0
  529. package/src/domains/providers/types/knowledge-base.ts +13 -0
  530. package/src/domains/providers/types/local-model-quirks.ts +2 -2
  531. package/src/domains/providers/types/target-descriptor.ts +3 -3
  532. package/src/domains/resources/extension.ts +1 -1
  533. package/src/domains/resources/index.ts +3 -0
  534. package/src/domains/resources/library.ts +6 -6
  535. package/src/domains/resources/prompts/loader.ts +1 -1
  536. package/src/domains/resources/skills/content-hash.ts +7 -6
  537. package/src/domains/resources/skills/evals.ts +1 -1
  538. package/src/domains/resources/skills/install.ts +36 -12
  539. package/src/domains/resources/skills/loader.ts +72 -13
  540. package/src/domains/resources/skills/marketplace.ts +21 -2
  541. package/src/domains/resources/skills/promotion.ts +214 -0
  542. package/src/domains/safety/action-classifier.ts +6 -0
  543. package/src/domains/safety/audit.ts +2 -2
  544. package/src/domains/safety/finish-contract.ts +2 -1
  545. package/src/domains/safety/run-effects.ts +1 -1
  546. package/src/domains/scheduling/extension.ts +4 -4
  547. package/src/domains/session/archive-readers.ts +9 -1
  548. package/src/domains/session/compaction/branch-summary.ts +4 -0
  549. package/src/domains/session/compaction/compact.ts +1 -1
  550. package/src/domains/session/compaction/tokens.ts +4 -0
  551. package/src/domains/session/context-accounting.ts +1 -1
  552. package/src/domains/session/decision-board.ts +1 -1
  553. package/src/domains/session/extension.ts +1 -1
  554. package/src/domains/session/handoff.ts +2 -2
  555. package/src/domains/session/prompt-manifest.ts +0 -5
  556. package/src/domains/session/protected-artifact-journal.ts +12 -6
  557. package/src/domains/session/retry.ts +1 -1
  558. package/src/domains/share/archive.ts +85 -36
  559. package/src/domains/toolchain/archive.ts +175 -0
  560. package/src/domains/toolchain/contract.ts +28 -0
  561. package/src/domains/toolchain/extension.ts +47 -0
  562. package/src/domains/toolchain/index.ts +39 -0
  563. package/src/domains/toolchain/install.ts +327 -0
  564. package/src/domains/toolchain/manifest.ts +8 -0
  565. package/src/domains/toolchain/paths.ts +34 -0
  566. package/src/domains/toolchain/registry.ts +265 -0
  567. package/src/domains/toolchain/remove.ts +218 -0
  568. package/src/domains/toolchain/resolve.ts +182 -0
  569. package/src/domains/toolchain/types.ts +113 -0
  570. package/src/domains/toolchain/version.ts +88 -0
  571. package/src/engine/acp/adapter.ts +3 -3
  572. package/src/engine/acp/event-mapper.ts +3 -3
  573. package/src/engine/acp/server.ts +440 -96
  574. package/src/engine/acp/tool-mediator.ts +2 -2
  575. package/src/engine/acp/types.ts +20 -2
  576. package/src/engine/alcf-oauth.ts +5 -5
  577. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  578. package/src/engine/api-registry.ts +1 -1
  579. package/src/engine/apis/llamacpp-residency.ts +1 -19
  580. package/src/engine/apis/lmstudio.ts +1 -6
  581. package/src/engine/apis/ollama-native.ts +3 -3
  582. package/src/engine/apis/openai-completions.ts +2 -2
  583. package/src/engine/apis/residency.ts +3 -9
  584. package/src/engine/claude/sdk-module.ts +87 -0
  585. package/src/engine/claude/sdk-runtime.ts +25 -17
  586. package/src/engine/claude/subprocess-runtime.ts +1 -1
  587. package/src/engine/claude/tool-safety.ts +4 -4
  588. package/src/engine/loop-guard.ts +0 -5
  589. package/src/engine/session.ts +14 -7
  590. package/src/engine/tui-primitives.ts +21 -0
  591. package/src/engine/tui.ts +1 -0
  592. package/src/engine/worker-events.ts +6 -6
  593. package/src/engine/worker-runtime.ts +16 -26
  594. package/src/entry/boot-options.ts +2 -0
  595. package/src/entry/orchestrator.ts +207 -90
  596. package/src/entry/panes-activation.ts +31 -0
  597. package/src/entry/with-panes.ts +20 -0
  598. package/src/interactive/application-controller.ts +21 -21
  599. package/src/interactive/bus-notices.ts +2 -2
  600. package/src/interactive/chat-loop.ts +8 -8
  601. package/src/interactive/chat-panel.ts +1 -1
  602. package/src/interactive/clio-editor.ts +105 -1
  603. package/src/interactive/context-activity.ts +8 -6
  604. package/src/interactive/context-meter.ts +3 -6
  605. package/src/interactive/context-overlay.ts +2 -1
  606. package/src/interactive/cost-overlay.ts +3 -1
  607. package/src/interactive/council-grid.ts +3 -5
  608. package/src/interactive/council.ts +11 -0
  609. package/src/interactive/dispatch-board.ts +56 -49
  610. package/src/interactive/editor-bash.ts +21 -0
  611. package/src/interactive/editor-steer.ts +9 -4
  612. package/src/interactive/editor-submit.ts +24 -18
  613. package/src/interactive/external-editor.ts +1 -1
  614. package/src/interactive/file-reference-completion.ts +360 -0
  615. package/src/interactive/footer/dashboard.ts +15 -17
  616. package/src/interactive/footer/notifications.ts +14 -8
  617. package/src/interactive/footer/widgets.ts +2 -44
  618. package/src/interactive/interactive-application.ts +229 -62
  619. package/src/interactive/interactive-event-projection.ts +1 -1
  620. package/src/interactive/interactive-input-runtime.ts +9 -2
  621. package/src/interactive/interactive-presentation.ts +21 -16
  622. package/src/interactive/interactive-shell.ts +2 -2
  623. package/src/interactive/interactive-slash-runtime.ts +99 -23
  624. package/src/interactive/interactive-subscriptions.ts +1 -1
  625. package/src/interactive/interactive-tickers.ts +1 -1
  626. package/src/interactive/keybinding-manager.ts +4 -4
  627. package/src/interactive/layout.ts +1 -1
  628. package/src/interactive/memory-overlay.ts +3 -2
  629. package/src/interactive/modal-marker.ts +151 -0
  630. package/src/interactive/mutation-preview.ts +1 -1
  631. package/src/interactive/mux-bridge.ts +214 -0
  632. package/src/interactive/overlay-frame.ts +62 -14
  633. package/src/interactive/overlay-general-openers.ts +7 -2
  634. package/src/interactive/overlay-key-routing.ts +21 -10
  635. package/src/interactive/overlay-lifecycle.ts +20 -4
  636. package/src/interactive/overlay-model-selectors.ts +43 -6
  637. package/src/interactive/overlay-permission-lifecycle.ts +90 -22
  638. package/src/interactive/overlay-transitions.ts +18 -4
  639. package/src/interactive/overlays/agents.ts +3 -2
  640. package/src/interactive/overlays/ask-user.ts +161 -41
  641. package/src/interactive/overlays/auth-dialog.ts +1 -0
  642. package/src/interactive/overlays/context-reset.ts +29 -4
  643. package/src/interactive/overlays/cwd-fallback.ts +29 -4
  644. package/src/interactive/overlays/decisions.ts +15 -13
  645. package/src/interactive/overlays/extensions.ts +1 -0
  646. package/src/interactive/overlays/fleet-run-approval.ts +4 -3
  647. package/src/interactive/overlays/handoff-review.ts +3 -2
  648. package/src/interactive/overlays/help-reference.ts +2 -0
  649. package/src/interactive/overlays/interop.ts +2 -1
  650. package/src/interactive/overlays/library-install-confirm.ts +2 -1
  651. package/src/interactive/overlays/library-tabs.ts +28 -0
  652. package/src/interactive/overlays/list-overlay.ts +10 -1
  653. package/src/interactive/overlays/message-picker.ts +2 -1
  654. package/src/interactive/overlays/model-scope.ts +86 -0
  655. package/src/interactive/overlays/model-selector.ts +40 -31
  656. package/src/interactive/overlays/prompts.ts +11 -4
  657. package/src/interactive/overlays/session-selector.ts +3 -2
  658. package/src/interactive/overlays/settings-sections.ts +30 -0
  659. package/src/interactive/overlays/settings.ts +849 -268
  660. package/src/interactive/overlays/side-question.ts +3 -2
  661. package/src/interactive/overlays/skills-hub.ts +11 -19
  662. package/src/interactive/overlays/tree-selector.ts +3 -2
  663. package/src/interactive/pane-policy.ts +46 -0
  664. package/src/interactive/panes-runtime.ts +318 -0
  665. package/src/interactive/permission-overlay.ts +2 -2
  666. package/src/interactive/renderers/compaction-summary.ts +29 -0
  667. package/src/interactive/renderers/retry-status.ts +12 -4
  668. package/src/interactive/renderers/tool-execution.ts +4 -4
  669. package/src/interactive/renderers/worker-entry.ts +122 -14
  670. package/src/interactive/session-transcript.ts +3 -3
  671. package/src/interactive/slash-autocomplete.ts +454 -165
  672. package/src/interactive/slash-commands.ts +521 -189
  673. package/src/interactive/slash-spec.ts +160 -17
  674. package/src/interactive/status/controller.ts +2 -2
  675. package/src/interactive/stream-pacing-policy.ts +1 -1
  676. package/src/interactive/tasks-overlay.ts +21 -13
  677. package/src/interactive/terminal-lease.ts +6 -7
  678. package/src/interactive/theme/tokens.ts +3 -14
  679. package/src/interactive/turn-context.ts +58 -13
  680. package/src/interactive/turn-persistence.ts +2 -2
  681. package/src/interactive/turn-prewarm.ts +2 -2
  682. package/src/interactive/turn-runtime.ts +8 -8
  683. package/src/interactive/turn-state.ts +1 -1
  684. package/src/interactive/view/artifacts.ts +120 -9
  685. package/src/interactive/view/view-overlay.ts +14 -10
  686. package/src/interactive/watch-pane.ts +180 -0
  687. package/src/interactive/welcome-dashboard.ts +15 -15
  688. package/src/interactive/worker-progress.ts +11 -5
  689. package/src/interactive/worker-receipts.ts +20 -2
  690. package/src/interactive/worker-stream.ts +6 -4
  691. package/src/interactive/yazi-bridge.ts +451 -0
  692. package/src/tools/ask-user.ts +3 -3
  693. package/src/tools/bash.ts +1 -1
  694. package/src/tools/bootstrap.ts +26 -2
  695. package/src/tools/builtin-tool-catalog.ts +16 -1
  696. package/src/tools/compete-worktrees.ts +108 -17
  697. package/src/tools/context/index.ts +15 -1
  698. package/src/tools/core-bootstrap.ts +2 -1
  699. package/src/tools/dispatch-admission.ts +18 -5
  700. package/src/tools/dispatch-arguments.ts +21 -21
  701. package/src/tools/dispatch-plan.ts +0 -11
  702. package/src/tools/dispatch-run-events.ts +145 -28
  703. package/src/tools/dispatch-runner.ts +40 -13
  704. package/src/tools/dispatch-types.ts +15 -3
  705. package/src/tools/dispatch.ts +2 -2
  706. package/src/tools/executables.ts +17 -14
  707. package/src/tools/find.ts +1 -6
  708. package/src/tools/monitor.ts +4 -4
  709. package/src/tools/observation.ts +54 -4
  710. package/src/tools/observers.ts +0 -33
  711. package/src/tools/panes-surface.ts +38 -0
  712. package/src/tools/panes.ts +112 -0
  713. package/src/tools/policy.ts +10 -1
  714. package/src/tools/presentation.ts +1 -0
  715. package/src/tools/task-worktree.ts +28 -7
  716. package/src/tools/verify/authoring.ts +3 -6
  717. package/src/tools/verify/frontend.ts +1 -1
  718. package/src/tools/web-fetch.ts +1 -1
  719. package/src/worker/entry.ts +4 -3
  720. package/src/worker/protocol.ts +16 -14
  721. package/src/worker/spec-contract.ts +2 -2
  722. package/src/worker/stdin-demux.ts +2 -2
  723. package/dist/chunk-D73KXYPF.js +0 -37
  724. package/dist/chunk-MLOK6ZOS.js +0 -2888
  725. package/dist/chunk-PNY46YEY.js +0 -1581
  726. package/dist/chunk-XDOQXGFO.js +0 -515
  727. package/dist/chunk-YKOFT37S.js +0 -279
  728. package/dist/clio-LT5V7SSZ.js +0 -26
  729. package/dist/configure-2WYWSCSD.js +0 -49
  730. package/dist/doctor-TWBWFK5V.js +0 -165
  731. package/src/engine/apis/degraded-inference.ts +0 -95
  732. /package/skills/meta/{clio-test → clio-coder-test}/references/harness.md +0 -0
  733. /package/skills/meta/{clio-test → clio-coder-test}/references/test-map.md +0 -0
@@ -5,19 +5,26 @@ import {
5
5
  import {
6
6
  hashToolCall
7
7
  } from "./chunk-UOV2BYIW.js";
8
+ import {
9
+ resolveFdBinary,
10
+ resolveRgBinary
11
+ } from "./chunk-BMS5RKQY.js";
12
+ import {
13
+ webFetchToolSurface
14
+ } from "./chunk-YPI3QQCF.js";
8
15
  import {
9
16
  gitTool,
10
17
  verifyToolSurface
11
- } from "./chunk-CA42X6KT.js";
18
+ } from "./chunk-7OBGU7UB.js";
12
19
  import {
13
20
  codeNavToolSurface
14
- } from "./chunk-OEDBCISO.js";
21
+ } from "./chunk-ABLSQ6JX.js";
15
22
  import {
16
23
  contextToolSurface
17
- } from "./chunk-5DQRIYDZ.js";
24
+ } from "./chunk-PBP4B7XR.js";
18
25
  import {
19
26
  describeDispatchPlan
20
- } from "./chunk-VKBMFOYV.js";
27
+ } from "./chunk-JZWT5J3Y.js";
21
28
  import {
22
29
  compileGlobRegex,
23
30
  fallbackIgnoredDirs,
@@ -27,37 +34,31 @@ import {
27
34
  } from "./chunk-VG7TBQIY.js";
28
35
  import {
29
36
  RESPONSE_SCHEMA_RUNTIME_ID,
30
- applyToolProfile,
31
37
  bashTool,
32
38
  builtin,
33
- describeCallAction,
34
39
  networkToolsDisabled,
35
40
  readMaxBytes,
36
41
  readTool,
37
42
  renderAgentLedger
38
- } from "./chunk-4H6ULJ3H.js";
43
+ } from "./chunk-2VG7KLYV.js";
39
44
  import {
40
45
  createTaskBoardStore,
41
46
  taskBoardCounts
42
- } from "./chunk-2JDWVJND.js";
47
+ } from "./chunk-6DWBAZ5U.js";
43
48
  import {
44
49
  formatModelRejection
45
- } from "./chunk-N3PBVRTZ.js";
50
+ } from "./chunk-IXJT6DCX.js";
51
+ import {
52
+ describeCallAction
53
+ } from "./chunk-TVHHYFHE.js";
54
+ import {
55
+ applyToolProfile
56
+ } from "./chunk-42FMPA75.js";
46
57
  import {
47
58
  resolveReadPath,
48
59
  resolveToCwd,
49
60
  toPosixPath
50
61
  } from "./chunk-OQE5J4C6.js";
51
- import {
52
- classify
53
- } from "./chunk-S4COXYBG.js";
54
- import {
55
- CLIO_ARTIFACT_DIR,
56
- artifactDefaultPath,
57
- detectValidationCommand,
58
- protectArtifact,
59
- protectedArtifactMutationBlockReason
60
- } from "./chunk-MV3K5QF2.js";
61
62
  import {
62
63
  DEFAULT_AUTONOMY_EXPOSURE,
63
64
  DEFAULT_AUTONOMY_LEVEL,
@@ -66,7 +67,7 @@ import {
66
67
  evaluateSkillToolSurface,
67
68
  mapAutonomy,
68
69
  skillActivationFromToolDetails
69
- } from "./chunk-RAPCMZL4.js";
70
+ } from "./chunk-FSP7CMNU.js";
70
71
  import {
71
72
  DEFAULT_TOOL_RESULT_MAX_BYTES,
72
73
  OBSERVATION_POLICY_SLACK_BYTES,
@@ -81,36 +82,43 @@ import {
81
82
  toolResultContextText,
82
83
  toolResultDigestFor,
83
84
  truncateHead
84
- } from "./chunk-ODFEOB4F.js";
85
+ } from "./chunk-R23Z6K6I.js";
85
86
  import {
86
87
  GREP_MAX_LINE_LENGTH,
87
88
  truncateLine
88
89
  } from "./chunk-OZNBF4L3.js";
90
+ import {
91
+ truncateUtf8
92
+ } from "./chunk-6XLNIQDB.js";
89
93
  import {
90
94
  parseAgentLedgerBody
91
- } from "./chunk-CMZWFGD2.js";
95
+ } from "./chunk-VAVR4IJY.js";
92
96
  import {
93
- webFetchToolSurface
94
- } from "./chunk-ZI647VB5.js";
97
+ classify
98
+ } from "./chunk-IG7BCQBA.js";
95
99
  import {
96
- truncateUtf8
97
- } from "./chunk-6XLNIQDB.js";
100
+ CLIO_ARTIFACT_DIR,
101
+ artifactDefaultPath,
102
+ detectValidationCommand,
103
+ protectArtifact,
104
+ protectedArtifactMutationBlockReason
105
+ } from "./chunk-GCSMB2KY.js";
98
106
  import {
99
107
  typebox_exports
100
108
  } from "./chunk-5B2AEOW5.js";
101
109
  import {
102
110
  ToolNames,
103
111
  isBuiltinToolName
104
- } from "./chunk-CGKSTWHD.js";
112
+ } from "./chunk-K6BSR66V.js";
105
113
  import {
106
114
  incompleteInstallationAdvice
107
115
  } from "./chunk-65DEGPJ6.js";
108
- import {
109
- buildSafeToolEnv
110
- } from "./chunk-B5CSFE7B.js";
111
116
  import {
112
117
  BusChannels
113
- } from "./chunk-RKRLDWD3.js";
118
+ } from "./chunk-HLW2MRKE.js";
119
+ import {
120
+ buildSafeToolEnv
121
+ } from "./chunk-HJWWJ6IL.js";
114
122
  import {
115
123
  GUARDRAIL_DEFAULTS,
116
124
  isWorkerToolCallCapExceededReason,
@@ -119,14 +127,14 @@ import {
119
127
  workerSynthesisReserveDirective,
120
128
  workerToolCallCapExceededReason,
121
129
  workerToolCallCapSynthesisReason
122
- } from "./chunk-4ZG3XFUR.js";
130
+ } from "./chunk-NLFAQR7Z.js";
123
131
  import {
124
132
  clioStateDir
125
- } from "./chunk-BNAZZHFG.js";
133
+ } from "./chunk-BYP5D4HI.js";
126
134
  import {
127
135
  StringEnum,
128
136
  engineStreamSimple
129
- } from "./chunk-UOSL25KY.js";
137
+ } from "./chunk-VXMFAE2W.js";
130
138
  import {
131
139
  init_esm_shims
132
140
  } from "./chunk-3R73A4XB.js";
@@ -757,7 +765,7 @@ async function persistAskUserTranscript(policy, options) {
757
765
  await mkdir(dir, { recursive: true });
758
766
  if (!policy.transcriptPath) policy.transcriptPath = path.join(dir, transcriptFileName(policy));
759
767
  const transcript = {
760
- schema: "clio.ask_user.interview.v1",
768
+ schema: "clio-coder.ask_user.interview.v1",
761
769
  id: policy.id,
762
770
  status: policy.status,
763
771
  startedAt: policy.startedAt,
@@ -3740,31 +3748,9 @@ var editTool = {
3740
3748
 
3741
3749
  // src/tools/find.ts
3742
3750
  init_esm_shims();
3743
- import { existsSync, statSync as statSync2 } from "node:fs";
3751
+ import { existsSync, statSync } from "node:fs";
3744
3752
  import { readdir } from "node:fs/promises";
3745
- import { join as join2, relative } from "node:path";
3746
-
3747
- // src/tools/executables.ts
3748
- init_esm_shims();
3749
- import { statSync } from "node:fs";
3750
- import { delimiter, join } from "node:path";
3751
- function findExecutableOnPath(name) {
3752
- const pathEnv = process.env.PATH;
3753
- if (!pathEnv) return null;
3754
- for (const dir of pathEnv.split(delimiter)) {
3755
- if (!dir) continue;
3756
- const candidate = join(dir, name);
3757
- const stat = statSync(candidate, { throwIfNoEntry: false });
3758
- if (stat?.isFile() && (stat.mode & 73) !== 0) return candidate;
3759
- }
3760
- return null;
3761
- }
3762
- function resolveFdBinary() {
3763
- return findExecutableOnPath("fd") ?? findExecutableOnPath("fdfind");
3764
- }
3765
- function resolveRgBinary() {
3766
- return findExecutableOnPath("rg");
3767
- }
3753
+ import { join, relative } from "node:path";
3768
3754
 
3769
3755
  // src/tools/spawn-hygiene.ts
3770
3756
  init_esm_shims();
@@ -3940,7 +3926,7 @@ async function fallbackFind(pattern, searchPath, collectLimit, includeIgnored, s
3940
3926
  }
3941
3927
  for (const entry of entries) {
3942
3928
  if (out.length >= collectLimit || signal?.aborted) return;
3943
- const absPath = join2(dir, entry.name);
3929
+ const absPath = join(dir, entry.name);
3944
3930
  if (entry.isDirectory() && !entry.isSymbolicLink()) {
3945
3931
  if (ignored.has(entry.name)) continue;
3946
3932
  const relDir = `${toPosixPath(relative(searchPath, absPath))}/`;
@@ -3961,7 +3947,7 @@ function orderByMtime(paths, searchPath, limit, candidateCap) {
3961
3947
  const stamped = paths.map((relPath) => {
3962
3948
  let mtimeMs = 0;
3963
3949
  try {
3964
- mtimeMs = statSync2(join2(searchPath, relPath)).mtimeMs;
3950
+ mtimeMs = statSync(join(searchPath, relPath)).mtimeMs;
3965
3951
  } catch {
3966
3952
  }
3967
3953
  return { relPath, mtimeMs };
@@ -4042,7 +4028,7 @@ var findTool = {
4042
4028
  }
4043
4029
  const searchPath = resolveReadPath(typeof args.path === "string" && args.path.length > 0 ? args.path : ".");
4044
4030
  if (!existsSync(searchPath)) return { kind: "error", message: `find: path not found: ${searchPath}` };
4045
- if (!statSync2(searchPath).isDirectory()) return { kind: "error", message: `find: not a directory: ${searchPath}` };
4031
+ if (!statSync(searchPath).isDirectory()) return { kind: "error", message: `find: not a directory: ${searchPath}` };
4046
4032
  const limit = typeof args.limit === "number" && args.limit > 0 ? Math.floor(args.limit) : DEFAULT_LIMIT;
4047
4033
  const includeIgnored = args.include_ignored === true;
4048
4034
  const reservation = reserveObservation(OBSERVE_SELF_CAPS.find, options);
@@ -4090,8 +4076,8 @@ var findTool = {
4090
4076
 
4091
4077
  // src/tools/grep.ts
4092
4078
  init_esm_shims();
4093
- import { readdirSync, readFileSync as readFileSync2, statSync as statSync3 } from "node:fs";
4094
- import path3, { join as join3, relative as relative2 } from "node:path";
4079
+ import { readdirSync, readFileSync as readFileSync2, statSync as statSync2 } from "node:fs";
4080
+ import path3, { join as join2, relative as relative2 } from "node:path";
4095
4081
  var DEFAULT_LIMIT2 = 100;
4096
4082
  var FALLBACK_MAX_FILE_BYTES = 2e7;
4097
4083
  var MODE_UNITS = {
@@ -4113,7 +4099,7 @@ function formatPath(filePath, searchPath, isDirectory) {
4113
4099
  }
4114
4100
  function statIsDirectory(searchPath) {
4115
4101
  try {
4116
- return { ok: true, isDirectory: statSync3(searchPath).isDirectory() };
4102
+ return { ok: true, isDirectory: statSync2(searchPath).isDirectory() };
4117
4103
  } catch (err) {
4118
4104
  const message = err instanceof Error ? err.message : String(err);
4119
4105
  return { ok: false, message };
@@ -4313,7 +4299,7 @@ function fallbackGrep(input) {
4313
4299
  if (limitHit) return;
4314
4300
  let buffer;
4315
4301
  try {
4316
- const stat = statSync3(filePath);
4302
+ const stat = statSync2(filePath);
4317
4303
  if (!stat.isFile() || stat.size > FALLBACK_MAX_FILE_BYTES) return;
4318
4304
  buffer = readFileSync2(filePath);
4319
4305
  } catch {
@@ -4365,7 +4351,7 @@ function fallbackGrep(input) {
4365
4351
  }
4366
4352
  for (const entry of entries) {
4367
4353
  if (limitHit || signal?.aborted) return;
4368
- const absPath = join3(dir, entry.name);
4354
+ const absPath = join2(dir, entry.name);
4369
4355
  if (entry.isDirectory()) {
4370
4356
  if (ignored.has(entry.name)) continue;
4371
4357
  walk(absPath);
@@ -4617,7 +4603,7 @@ ${output}`,
4617
4603
 
4618
4604
  // src/tools/ls.ts
4619
4605
  init_esm_shims();
4620
- import { readdirSync as readdirSync2, statSync as statSync4 } from "node:fs";
4606
+ import { readdirSync as readdirSync2, statSync as statSync3 } from "node:fs";
4621
4607
  import path4 from "node:path";
4622
4608
  var DEFAULT_LIMIT3 = 500;
4623
4609
  function parseLimit(value) {
@@ -4637,7 +4623,7 @@ var lsTool = {
4637
4623
  const root = resolveReadPath(rootArg);
4638
4624
  const limit = parseLimit(args.limit);
4639
4625
  try {
4640
- const rootStat = statSync4(root);
4626
+ const rootStat = statSync3(root);
4641
4627
  if (!rootStat.isDirectory()) {
4642
4628
  return { kind: "error", message: `ls: not a directory: ${root}` };
4643
4629
  }
@@ -4665,7 +4651,7 @@ var lsTool = {
4665
4651
  break;
4666
4652
  }
4667
4653
  try {
4668
- const entryStat = statSync4(path4.join(root, entry));
4654
+ const entryStat = statSync3(path4.join(root, entry));
4669
4655
  outputEntries.push(entryStat.isDirectory() ? `${entry}/` : entry);
4670
4656
  } catch {
4671
4657
  }
@@ -4740,6 +4726,10 @@ var TOOL_PLANES = {
4740
4726
  // review the board depends on. Sequential so two posts in one batch do not
4741
4727
  // interleave against the local post cap.
4742
4728
  [ToolNames.Ledger]: { plane: "orchestrate", actionClass: "read", executionMode: "sequential" },
4729
+ // panes projects Clio's own runs onto a pane host and opens preset utility
4730
+ // panes. It mutates no workspace, so it stays read class; sequential because
4731
+ // two pane operations in one batch would race the same pane registry.
4732
+ [ToolNames.Panes]: { plane: "orchestrate", actionClass: "read", executionMode: "sequential" },
4743
4733
  [ToolNames.WebFetch]: { plane: "retrieve", actionClass: "read", executionMode: "parallel" },
4744
4734
  [ToolNames.AskUser]: { plane: "interact", actionClass: "read", executionMode: "sequential" },
4745
4735
  [ToolNames.Artifact]: { plane: "artifact", actionClass: "write", executionMode: "sequential" }
@@ -4758,6 +4748,7 @@ var OBSERVE_ENVELOPE_SELF_CAPS = [
4758
4748
  var SESSION_BOUND_TOOLS = /* @__PURE__ */ new Set([]);
4759
4749
  var DISPATCH_BOUND_TOOLS = /* @__PURE__ */ new Set([ToolNames.Dispatch, ToolNames.Monitor, ToolNames.Steer]);
4760
4750
  var INTERACTIVE_BOUND_TOOLS = /* @__PURE__ */ new Set([ToolNames.AskUser]);
4751
+ var PANES_BOUND_TOOLS = /* @__PURE__ */ new Set([ToolNames.Panes]);
4761
4752
  var NETWORK_BOUND_TOOLS = /* @__PURE__ */ new Set([ToolNames.WebFetch]);
4762
4753
  function validateBuiltinToolPolicy(specs, options = {}) {
4763
4754
  const errors = [];
@@ -4796,12 +4787,14 @@ function validateBuiltinToolPolicy(specs, options = {}) {
4796
4787
  const includeSessionTools = options.includeSessionTools ?? false;
4797
4788
  const includeDispatchTools = options.includeDispatchTools ?? false;
4798
4789
  const includeInteractiveTools = options.includeInteractiveTools ?? false;
4790
+ const includePanesTools = options.includePanesTools ?? false;
4799
4791
  const includeNetworkTools = options.includeNetworkTools ?? true;
4800
4792
  const required = new Set(Object.values(ToolNames));
4801
4793
  for (const tool of [...required]) {
4802
4794
  if (!includeSessionTools && SESSION_BOUND_TOOLS.has(tool)) required.delete(tool);
4803
4795
  if (!includeDispatchTools && DISPATCH_BOUND_TOOLS.has(tool)) required.delete(tool);
4804
4796
  if (!includeInteractiveTools && INTERACTIVE_BOUND_TOOLS.has(tool)) required.delete(tool);
4797
+ if (!includePanesTools && PANES_BOUND_TOOLS.has(tool)) required.delete(tool);
4805
4798
  if (!includeNetworkTools && NETWORK_BOUND_TOOLS.has(tool)) required.delete(tool);
4806
4799
  }
4807
4800
  for (const tool of required) {
@@ -5099,7 +5092,7 @@ function registerCoreTools(registry, deps = {}) {
5099
5092
  if (includeNetworkTools) {
5100
5093
  registry.register({
5101
5094
  ...builtin(
5102
- lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-2YHJ3KTG.js")).webFetchTool),
5095
+ lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-MPIFL3LL.js")).webFetchTool),
5103
5096
  { path: "src/tools/web-fetch.ts", scope: "core" }
5104
5097
  )
5105
5098
  });
@@ -5109,13 +5102,13 @@ function registerCoreTools(registry, deps = {}) {
5109
5102
  });
5110
5103
  registry.register({
5111
5104
  ...builtin(
5112
- lazyTool(verifyToolSurface, async () => (await import("./verify-BVKWTNDL.js")).verifyTool),
5105
+ lazyTool(verifyToolSurface, async () => (await import("./verify-YJL6XET2.js")).verifyTool),
5113
5106
  { path: "src/tools/verify/index.ts", scope: "core" }
5114
5107
  )
5115
5108
  });
5116
5109
  registry.register({
5117
5110
  ...builtin(
5118
- lazyTool(codeNavToolSurface, async () => (await import("./code-nav-LMW275PA.js")).codeNavTool),
5111
+ lazyTool(codeNavToolSurface, async () => (await import("./code-nav-RK6S7F6E.js")).codeNavTool),
5119
5112
  { path: "src/tools/codewiki/code-nav.ts", scope: "core" }
5120
5113
  )
5121
5114
  });
@@ -5140,7 +5133,7 @@ function registerCoreTools(registry, deps = {}) {
5140
5133
  registry.register({
5141
5134
  ...builtin(
5142
5135
  lazyTool(contextToolSurface, async () => {
5143
- const { createContextTool } = await import("./context-PALKKQYL.js");
5136
+ const { createContextTool } = await import("./context-XNHL75JV.js");
5144
5137
  if (!session) return createContextTool(skillToolDeps);
5145
5138
  const { probeWorkspace } = await import("./workspace-ZJ6BFM3Q.js");
5146
5139
  return createContextTool({
@@ -5199,8 +5192,8 @@ function registerCoreTools(registry, deps = {}) {
5199
5192
  includeInteractiveTools: Boolean(deps.askUser)
5200
5193
  };
5201
5194
  }
5202
- function assertRegisteredBuiltinTools(registry, registration, includeDispatchTools) {
5203
- assertBuiltinToolPolicy(registry.listAll(), { ...registration, includeDispatchTools });
5195
+ function assertRegisteredBuiltinTools(registry, registration, includeDispatchTools, includePanesTools = false) {
5196
+ assertBuiltinToolPolicy(registry.listAll(), { ...registration, includeDispatchTools, includePanesTools });
5204
5197
  }
5205
5198
 
5206
5199
  export {
@@ -5237,10 +5230,9 @@ export {
5237
5230
  applyEditsToNormalizedContent,
5238
5231
  generateDiffString,
5239
5232
  askAxis,
5240
- resolveFdBinary,
5241
5233
  lazyTool,
5242
5234
  registerCoreTools,
5243
5235
  assertRegisteredBuiltinTools,
5244
5236
  createRegistry
5245
5237
  };
5246
- //# sourceMappingURL=chunk-R7LNVMCS.js.map
5238
+ //# sourceMappingURL=chunk-QMXC4JB7.js.map
@@ -0,0 +1,195 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ PINNED_TOOLS,
4
+ currentToolPlatform,
5
+ findPinnedTool,
6
+ findPinnedToolByBinary,
7
+ toolVersionDir,
8
+ vendoredBinaryPath
9
+ } from "./chunk-QDC3K2U3.js";
10
+ import {
11
+ init_esm_shims
12
+ } from "./chunk-3R73A4XB.js";
13
+
14
+ // src/domains/toolchain/resolve.ts
15
+ init_esm_shims();
16
+ import { statSync } from "node:fs";
17
+ import { delimiter, join } from "node:path";
18
+
19
+ // src/domains/toolchain/version.ts
20
+ init_esm_shims();
21
+ import { spawnSync } from "node:child_process";
22
+ var VERSION_PATTERN = /(\d+)\.(\d+)\.(\d+)/;
23
+ var PROBE_TIMEOUT_MS = 2e3;
24
+ function parseVersion(output) {
25
+ const match = VERSION_PATTERN.exec(output);
26
+ if (!match) return null;
27
+ return `${match[1]}.${match[2]}.${match[3]}`;
28
+ }
29
+ function compareVersions(a, b) {
30
+ const left = numericParts(a);
31
+ const right = numericParts(b);
32
+ for (let i = 0; i < 3; i += 1) {
33
+ const diff = (left[i] ?? 0) - (right[i] ?? 0);
34
+ if (diff !== 0) return diff;
35
+ }
36
+ return 0;
37
+ }
38
+ function satisfiesMinimum(found, minimum) {
39
+ if (found === null) return false;
40
+ return compareVersions(found, minimum) >= 0;
41
+ }
42
+ function probeBinaryVersion(binaryPath, args) {
43
+ const cached = probeCache.get(binaryPath);
44
+ if (cached !== void 0) return cached;
45
+ let version = null;
46
+ try {
47
+ const result = spawnSync(binaryPath, [...args], {
48
+ timeout: PROBE_TIMEOUT_MS,
49
+ encoding: "utf8",
50
+ // A version probe must never inherit a terminal or wait on input: some
51
+ // of these binaries are full-screen programs when given a tty.
52
+ stdio: ["ignore", "pipe", "pipe"]
53
+ });
54
+ if (result.error === void 0) {
55
+ version = parseVersion(`${result.stdout ?? ""}
56
+ ${result.stderr ?? ""}`);
57
+ }
58
+ } catch {
59
+ version = null;
60
+ }
61
+ probeCache.set(binaryPath, version);
62
+ return version;
63
+ }
64
+ var probeCache = /* @__PURE__ */ new Map();
65
+ function numericParts(value) {
66
+ const match = VERSION_PATTERN.exec(value);
67
+ if (!match) return [0, 0, 0];
68
+ return [Number(match[1]), Number(match[2]), Number(match[3])];
69
+ }
70
+
71
+ // src/domains/toolchain/resolve.ts
72
+ function findExecutableOnPath(name) {
73
+ const pathEnv = process.env.PATH;
74
+ if (!pathEnv) return null;
75
+ const candidates = process.platform === "win32" ? [`${name}.exe`, name] : [name];
76
+ for (const dir of pathEnv.split(delimiter)) {
77
+ if (!dir) continue;
78
+ for (const candidate of candidates) {
79
+ const full = join(dir, candidate);
80
+ const stat = statSync(full, { throwIfNoEntry: false });
81
+ if (stat?.isFile() && (process.platform === "win32" || (stat.mode & 73) !== 0)) return full;
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ function resolveToolBinary(name) {
87
+ const entry = findPinnedToolByBinary(name) ?? findPinnedTool(name);
88
+ if (entry === null) {
89
+ const found = findExecutableOnPath(name);
90
+ return {
91
+ source: found === null ? "none" : "path",
92
+ binaryPath: found,
93
+ version: null,
94
+ entry: null,
95
+ pathCandidate: found === null ? null : { path: found, version: null, satisfiesMinimum: true },
96
+ vendoredPath: null
97
+ };
98
+ }
99
+ const binary = entry.binaries.includes(name) ? name : entry.primaryBinary;
100
+ return resolveEntryBinary(entry, binary);
101
+ }
102
+ function resolveEntryBinary(entry, binary) {
103
+ const pathCandidate = probePathCandidate(entry, binary);
104
+ const vendored = vendoredBinaryPath(entry.id, entry.version, binary);
105
+ const vendoredStat = statSync(vendored, { throwIfNoEntry: false });
106
+ const vendoredPath = vendoredStat?.isFile() ? vendored : null;
107
+ if (pathCandidate?.satisfiesMinimum) {
108
+ return {
109
+ source: "path",
110
+ binaryPath: pathCandidate.path,
111
+ version: pathCandidate.version,
112
+ entry,
113
+ pathCandidate,
114
+ vendoredPath
115
+ };
116
+ }
117
+ if (vendoredPath !== null) {
118
+ return {
119
+ source: "vendored",
120
+ binaryPath: vendoredPath,
121
+ version: entry.version,
122
+ entry,
123
+ pathCandidate,
124
+ vendoredPath
125
+ };
126
+ }
127
+ return { source: "none", binaryPath: null, version: null, entry, pathCandidate, vendoredPath: null };
128
+ }
129
+ function toolStatus(entry) {
130
+ const platform = currentToolPlatform();
131
+ const supported = platform !== null && entry.downloads[platform] !== void 0;
132
+ const resolution = resolveEntryBinary(entry, entry.primaryBinary);
133
+ return {
134
+ id: entry.id,
135
+ version: entry.version,
136
+ license: entry.license,
137
+ platform,
138
+ supported,
139
+ installed: resolution.vendoredPath !== null,
140
+ installDir: toolVersionDir(entry.id, entry.version),
141
+ resolution
142
+ };
143
+ }
144
+ function toolStatuses() {
145
+ return PINNED_TOOLS.map((entry) => toolStatus(entry));
146
+ }
147
+ function installRemedy(id) {
148
+ return `clio-coder tools install ${id}`;
149
+ }
150
+ function describeFloorRejection(status) {
151
+ const candidate = status.resolution.pathCandidate;
152
+ if (candidate === null || candidate.satisfiesMinimum) return null;
153
+ const floor = status.resolution.entry?.minimumVersion ?? status.version;
154
+ const found = candidate.version === null ? "an unreadable version" : candidate.version;
155
+ return `PATH copy ${candidate.path} is ${found}, below the ${floor} floor`;
156
+ }
157
+ function describeResolution(status) {
158
+ const { resolution } = status;
159
+ const rejection = describeFloorRejection(status);
160
+ if (resolution.source === "path") {
161
+ const version = resolution.version ?? "unreadable version";
162
+ return `PATH ${resolution.binaryPath} (${version}, pin ${status.version})`;
163
+ }
164
+ if (resolution.source === "vendored") {
165
+ const rejected = rejection === null ? "" : `; ${rejection}, so Clio runs the vendored copy`;
166
+ return `vendored ${resolution.binaryPath} (${status.version})${rejected}`;
167
+ }
168
+ if (!status.supported) {
169
+ const platform = status.platform ?? `${process.platform}-${process.arch}`;
170
+ const rejected = rejection === null ? "" : `; ${rejection}`;
171
+ return `not installed and no pinned asset for this platform (${platform})${rejected}`;
172
+ }
173
+ if (rejection !== null) {
174
+ return `${rejection}, and nothing is vendored (install with \`${installRemedy(status.id)}\`)`;
175
+ }
176
+ return `not found (install with \`${installRemedy(status.id)}\`)`;
177
+ }
178
+ function probePathCandidate(entry, binary) {
179
+ const found = findExecutableOnPath(binary);
180
+ if (found === null) return null;
181
+ const probeTarget = binary === entry.primaryBinary ? found : findExecutableOnPath(entry.primaryBinary) ?? found;
182
+ const version = probeBinaryVersion(probeTarget, entry.versionArgs);
183
+ return { path: found, version, satisfiesMinimum: satisfiesMinimum(version, entry.minimumVersion) };
184
+ }
185
+
186
+ export {
187
+ findExecutableOnPath,
188
+ resolveToolBinary,
189
+ toolStatus,
190
+ toolStatuses,
191
+ installRemedy,
192
+ describeFloorRejection,
193
+ describeResolution
194
+ };
195
+ //# sourceMappingURL=chunk-QSNYB6ZV.js.map