@iowarp/clio-coder 0.4.1 → 0.4.3

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 (604) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/CONTRIBUTING.md +142 -52
  3. package/README.md +434 -473
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
  6. package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
  9. package/dist/builtins-IA7V7FUC.js +22 -0
  10. package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
  11. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  12. package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
  13. package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
  14. package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
  15. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  16. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  17. package/dist/chunk-3EBYEESD.js +314 -0
  18. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  19. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  20. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  21. package/dist/chunk-4UVU7BJ5.js +39 -0
  22. package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
  23. package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
  24. package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
  25. package/dist/chunk-5MEZN6CB.js +1334 -0
  26. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  27. package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
  28. package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
  29. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  30. package/dist/chunk-7DRAWPTZ.js +360 -0
  31. package/dist/chunk-7E7I3WLS.js +3762 -0
  32. package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
  33. package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
  34. package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
  35. package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
  36. package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
  37. package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
  38. package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
  39. package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
  40. package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
  41. package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
  42. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  43. package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
  44. package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
  45. package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
  46. package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
  47. package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
  48. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  49. package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
  50. package/dist/chunk-GYV6VZOC.js +26 -0
  51. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  52. package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
  53. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  54. package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
  55. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  56. package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
  57. package/dist/chunk-IJNZMHLA.js +101 -0
  58. package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
  59. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  60. package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
  61. package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
  62. package/dist/chunk-JEQ3XTHC.js +42 -0
  63. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  64. package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
  65. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  66. package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
  67. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  68. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
  70. package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
  71. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  72. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  73. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  74. package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
  75. package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
  76. package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
  77. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  78. package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
  79. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  80. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  81. package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
  82. package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
  83. package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
  84. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  85. package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
  86. package/dist/chunk-R6Q67RJH.js +134 -0
  87. package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
  88. package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
  89. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  90. package/dist/chunk-SKHCAU7K.js +385 -0
  91. package/dist/chunk-SZAA6XDG.js +30 -0
  92. package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
  93. package/dist/chunk-UOIZ7DA4.js +41 -0
  94. package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
  95. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  96. package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
  97. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  98. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  99. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  100. package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
  101. package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
  102. package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
  103. package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
  104. package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
  105. package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
  106. package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
  107. package/dist/chunk-XRZT5WY5.js +47 -0
  108. package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
  109. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  110. package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
  111. package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
  112. package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
  113. package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
  114. package/dist/cli/index.js +41 -39
  115. package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
  116. package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
  117. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  118. package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
  119. package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
  120. package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
  121. package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
  122. package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
  123. package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
  126. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
  127. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  128. package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
  129. package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
  130. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
  131. package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
  132. package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
  133. package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
  134. package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
  135. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
  136. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
  137. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
  138. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
  139. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
  140. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
  141. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
  142. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
  143. package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
  144. package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
  145. package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
  146. package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
  147. package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
  148. package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
  149. package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
  150. package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
  151. package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
  152. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  153. package/dist/reset-EAJFFJVB.js +344 -0
  154. package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
  155. package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
  156. package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
  157. package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
  158. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
  159. package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
  160. package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
  161. package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
  162. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  163. package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
  164. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
  165. package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
  166. package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
  167. package/dist/uninstall-5PEVOE5B.js +408 -0
  168. package/dist/upgrade-M4WXY6KN.js +303 -0
  169. package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
  170. package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
  171. package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
  172. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  173. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
  174. package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
  175. package/dist/worker/entry.js +90 -74
  176. package/docs/README.md +176 -81
  177. package/docs/{acp.md → architecture/acp.md} +36 -20
  178. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  179. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  180. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +27 -23
  181. package/docs/architecture/artifact-versions.md +90 -0
  182. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  183. package/docs/{context-engine.md → architecture/context-engine.md} +29 -25
  184. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  185. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  186. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  187. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  188. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  189. package/docs/{model-catalog.md → architecture/model-catalog.md} +61 -27
  190. package/docs/{observability.md → architecture/observability.md} +38 -14
  191. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  192. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
  193. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
  194. package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
  195. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  196. package/docs/architecture/time-conventions.md +125 -0
  197. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  198. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  199. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  200. package/docs/{built-in-agents.md → guide/built-in-agents.md} +65 -35
  201. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
  202. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
  203. package/docs/guide/configuration-reference.md +1163 -0
  204. package/docs/{environment-variables.md → guide/environment-variables.md} +33 -28
  205. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  206. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  207. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  208. package/docs/{glossary.md → guide/glossary.md} +14 -11
  209. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +81 -17
  210. package/docs/guide/panes-and-files.md +290 -0
  211. package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
  212. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  213. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -3
  214. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  215. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  216. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  217. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  218. package/docs/process/development-pipeline.md +152 -0
  219. package/docs/process/documentation-coverage.md +100 -0
  220. package/docs/process/documentation-guide.md +187 -0
  221. package/docs/{eval-runner.md → process/eval-runner.md} +108 -53
  222. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  223. package/docs/{evolution.md → process/evolution.md} +2 -2
  224. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  225. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  226. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  227. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  228. package/evals/README.md +2 -2
  229. package/evals/behavioral-model.yaml +3 -2
  230. package/package.json +10 -8
  231. package/skills/README.md +52 -41
  232. package/skills/coding/ast-grep/SKILL.md +102 -31
  233. package/skills/coding/ast-grep/evals.md +26 -0
  234. package/skills/coding/coding-standards/SKILL.md +41 -6
  235. package/skills/coding/coding-standards/evals.md +23 -0
  236. package/skills/coding/prototype/SKILL.md +88 -29
  237. package/skills/coding/prototype/evals.md +19 -0
  238. package/skills/coding/tdd/SKILL.md +81 -54
  239. package/skills/coding/tdd/evals.md +20 -0
  240. package/skills/context/context-handoff/SKILL.md +44 -3
  241. package/skills/context/context-handoff/evals.md +44 -0
  242. package/skills/context/context-prime/SKILL.md +46 -16
  243. package/skills/context/context-prime/evals.md +45 -0
  244. package/skills/git/branch-closeout/SKILL.md +132 -0
  245. package/skills/git/branch-closeout/evals.md +133 -0
  246. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  247. package/skills/git/file-ticket/SKILL.md +78 -64
  248. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  249. package/skills/git/file-ticket/evals.md +31 -26
  250. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  251. package/skills/git/fix-issue/SKILL.md +88 -65
  252. package/skills/git/fix-issue/evals.md +35 -31
  253. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  254. package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
  255. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  256. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  257. package/skills/git/ship/SKILL.md +103 -67
  258. package/skills/git/ship/assets/pr-template.md +21 -0
  259. package/skills/git/ship/evals.md +44 -28
  260. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  261. package/skills/git/worktree-create/SKILL.md +80 -50
  262. package/skills/git/worktree-create/evals.md +40 -33
  263. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  264. package/skills/git/worktree-merge/SKILL.md +112 -65
  265. package/skills/git/worktree-merge/evals.md +42 -34
  266. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  267. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  268. package/skills/meta/clio-coder-dev/evals.md +3 -2
  269. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  270. package/skills/meta/clio-coder-test/evals.md +9 -4
  271. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  272. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  273. package/skills/meta/credentials/SKILL.md +2 -2
  274. package/skills/meta/find-skills/SKILL.md +2 -2
  275. package/skills/meta/herdr/SKILL.md +2 -2
  276. package/skills/meta/skill-craft/SKILL.md +22 -16
  277. package/skills/planning/archify/SKILL.md +196 -0
  278. package/skills/planning/archify/evals.md +65 -0
  279. package/skills/planning/architecture/SKILL.md +62 -13
  280. package/skills/planning/architecture/evals.md +65 -0
  281. package/skills/planning/backlog/SKILL.md +131 -15
  282. package/skills/planning/backlog/evals.md +142 -0
  283. package/skills/planning/prd/SKILL.md +47 -7
  284. package/skills/planning/prd/evals.md +54 -0
  285. package/skills/planning/product-intent/SKILL.md +58 -3
  286. package/skills/planning/product-intent/evals.md +70 -0
  287. package/skills/planning/tech-spec/SKILL.md +54 -3
  288. package/skills/planning/tech-spec/evals.md +73 -0
  289. package/skills/registry.yaml +70 -62
  290. package/skills/remote.yaml +13 -0
  291. package/skills/research/arxiv-literature/SKILL.md +77 -19
  292. package/skills/research/arxiv-literature/evals.md +50 -0
  293. package/skills/research/experiment-protocol/SKILL.md +21 -2
  294. package/skills/research/experiment-protocol/evals.md +23 -0
  295. package/skills/research/scientific-debugging/SKILL.md +24 -2
  296. package/skills/research/scientific-debugging/evals.md +18 -0
  297. package/skills/research/scientific-modernization/SKILL.md +27 -2
  298. package/skills/research/scientific-modernization/evals.md +27 -0
  299. package/skills/skill-marketplace.json +97 -62
  300. package/skills/workflow/cut-it/SKILL.md +66 -6
  301. package/skills/workflow/cut-it/evals.md +101 -0
  302. package/skills/workflow/design-council/SKILL.md +118 -28
  303. package/skills/workflow/design-council/evals.md +161 -0
  304. package/skills/workflow/grill-me/SKILL.md +87 -11
  305. package/skills/workflow/grill-me/evals.md +153 -0
  306. package/skills/workflow/workflow-distiller/SKILL.md +77 -18
  307. package/skills/workflow/workflow-distiller/evals.md +118 -0
  308. package/src/cli/args.ts +2 -2
  309. package/src/cli/bootstrap-generate.ts +1 -1
  310. package/src/cli/config-inspect.ts +65 -12
  311. package/src/cli/configure-interop.ts +105 -13
  312. package/src/cli/configure-oauth.ts +57 -0
  313. package/src/cli/configure-onboarding.ts +980 -0
  314. package/src/cli/configure-target.ts +594 -0
  315. package/src/cli/configure.ts +1082 -532
  316. package/src/cli/context-map.ts +114 -0
  317. package/src/cli/context.ts +4 -0
  318. package/src/cli/docs.ts +22 -14
  319. package/src/cli/doctor-naming.ts +5 -5
  320. package/src/cli/doctor-toolchain.ts +3 -3
  321. package/src/cli/eval.ts +1 -2
  322. package/src/cli/extensions.ts +2 -1
  323. package/src/cli/fleet.ts +1 -1
  324. package/src/cli/index.ts +3 -1
  325. package/src/cli/internal-dispatch.ts +3 -4
  326. package/src/cli/lifecycle-presenter.ts +436 -0
  327. package/src/cli/models.ts +10 -2
  328. package/src/cli/modes/print.ts +5 -1
  329. package/src/cli/panes.ts +19 -5
  330. package/src/cli/reset.ts +228 -106
  331. package/src/cli/run.ts +9 -4
  332. package/src/cli/select.ts +664 -0
  333. package/src/cli/share.ts +5 -1
  334. package/src/cli/skills-eval.ts +3 -3
  335. package/src/cli/skills.ts +9 -2
  336. package/src/cli/targets.ts +5 -6
  337. package/src/cli/trace.ts +55 -4
  338. package/src/cli/uninstall.ts +233 -165
  339. package/src/cli/upgrade.ts +204 -149
  340. package/src/cli/usage.ts +86 -27
  341. package/src/cli/validate-model.ts +3 -3
  342. package/src/cli/wiki-generate.ts +1 -1
  343. package/src/core/artifact-paths.ts +1 -1
  344. package/src/core/bash-exec.ts +131 -86
  345. package/src/core/bus-events.ts +51 -6
  346. package/src/core/config.ts +61 -1
  347. package/src/core/defaults.ts +7 -4
  348. package/src/core/dispatch-outcome.ts +16 -0
  349. package/src/core/external-diagnostic.ts +44 -0
  350. package/src/core/gateway-routing.ts +157 -0
  351. package/src/core/guardrails.ts +10 -49
  352. package/src/core/prompt-hint.ts +9 -0
  353. package/src/core/safe-exec.ts +17 -2
  354. package/src/core/skill-activation.ts +89 -2
  355. package/src/domains/agents/builtins/architect.md +2 -3
  356. package/src/domains/agents/builtins/coder.md +3 -2
  357. package/src/domains/agents/builtins/debugger.md +2 -2
  358. package/src/domains/agents/builtins/documenter.md +2 -2
  359. package/src/domains/agents/builtins/git-master.md +1 -1
  360. package/src/domains/agents/builtins/oracle.md +1 -1
  361. package/src/domains/agents/builtins/provenance.md +1 -1
  362. package/src/domains/agents/builtins/researcher.md +1 -1
  363. package/src/domains/agents/builtins/scout.md +1 -1
  364. package/src/domains/agents/builtins/tester.md +2 -2
  365. package/src/domains/agents/builtins/verifier.md +2 -2
  366. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  367. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  368. package/src/domains/agents/catalog.ts +13 -15
  369. package/src/domains/agents/contract.ts +2 -0
  370. package/src/domains/agents/extension.ts +23 -1
  371. package/src/domains/agents/result-contract.ts +70 -0
  372. package/src/domains/config/keybindings.ts +8 -0
  373. package/src/domains/context/extension.ts +0 -3
  374. package/src/domains/context/wiki/map-seed.ts +589 -0
  375. package/src/domains/context/wiki/plan.ts +2 -2
  376. package/src/domains/context/working-set/path-index.ts +1 -0
  377. package/src/domains/dispatch/admission.ts +29 -0
  378. package/src/domains/dispatch/agent-candidates.ts +10 -0
  379. package/src/domains/dispatch/budget-envelope.ts +86 -1
  380. package/src/domains/dispatch/capability-match.ts +11 -0
  381. package/src/domains/dispatch/capacity-lease.ts +17 -0
  382. package/src/domains/dispatch/contract.ts +11 -1
  383. package/src/domains/dispatch/extension.ts +237 -49
  384. package/src/domains/dispatch/host-verification.ts +435 -39
  385. package/src/domains/dispatch/intent-requirements.ts +10 -0
  386. package/src/domains/dispatch/intent.ts +18 -1
  387. package/src/domains/dispatch/path-scope.ts +235 -24
  388. package/src/domains/dispatch/run-event-journal.ts +4 -15
  389. package/src/domains/dispatch/state.ts +2 -3
  390. package/src/domains/dispatch/transport.ts +45 -21
  391. package/src/domains/dispatch/types.ts +58 -3
  392. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  393. package/src/domains/eval/artifacts/store.ts +5 -0
  394. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  395. package/src/domains/eval/metrics/token-stream.ts +201 -31
  396. package/src/domains/eval/metrics/tracked.ts +40 -4
  397. package/src/domains/eval/runners/clio-run.ts +5 -2
  398. package/src/domains/eval/schema/suite.ts +28 -0
  399. package/src/domains/eval/schema/verdict.ts +2 -2
  400. package/src/domains/eval/store.ts +8 -1
  401. package/src/domains/eval/suites/resolve.ts +13 -1
  402. package/src/domains/eval/suites/run.ts +24 -3
  403. package/src/domains/evidence/trust-status.ts +10 -1
  404. package/src/domains/extensions/contract.ts +15 -1
  405. package/src/domains/extensions/discovery.ts +238 -41
  406. package/src/domains/extensions/extension.ts +105 -6
  407. package/src/domains/extensions/index.ts +24 -0
  408. package/src/domains/extensions/integrity.ts +189 -0
  409. package/src/domains/extensions/manager.ts +17 -1
  410. package/src/domains/extensions/resource-path.ts +27 -0
  411. package/src/domains/extensions/resources.ts +18 -38
  412. package/src/domains/extensions/snapshot-store.ts +39 -0
  413. package/src/domains/extensions/snapshot.ts +180 -0
  414. package/src/domains/extensions/state.ts +385 -57
  415. package/src/domains/extensions/types.ts +118 -1
  416. package/src/domains/interop/registry.ts +6 -2
  417. package/src/domains/interop/types.ts +4 -0
  418. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  419. package/src/domains/lifecycle/migrations/index.ts +6 -0
  420. package/src/domains/lifecycle/naming-resources.ts +19 -4
  421. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  422. package/src/domains/memory/task-memory-policy.ts +70 -26
  423. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  424. package/src/domains/middleware/contract.ts +26 -0
  425. package/src/domains/middleware/extension.ts +24 -24
  426. package/src/domains/middleware/hook-receipts.ts +27 -4
  427. package/src/domains/middleware/hooks-io.ts +65 -32
  428. package/src/domains/middleware/hooks.ts +64 -0
  429. package/src/domains/middleware/index.ts +28 -5
  430. package/src/domains/middleware/marketplace-offer.ts +3 -35
  431. package/src/domains/middleware/memory-intervention.ts +127 -32
  432. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  433. package/src/domains/middleware/registrations.ts +326 -0
  434. package/src/domains/middleware/runtime.ts +28 -0
  435. package/src/domains/middleware/skills-reminder.ts +31 -2
  436. package/src/domains/middleware/snapshot.ts +20 -7
  437. package/src/domains/mux/contract.ts +38 -0
  438. package/src/domains/mux/detect.ts +6 -13
  439. package/src/domains/mux/index.ts +1 -1
  440. package/src/domains/mux/operations.ts +44 -5
  441. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  442. package/src/domains/mux/yazi/session.ts +53 -4
  443. package/src/domains/mux/yazi/theme.ts +117 -17
  444. package/src/domains/observability/compaction-usage.ts +118 -0
  445. package/src/domains/observability/contract.ts +10 -11
  446. package/src/domains/observability/cost.ts +1 -1
  447. package/src/domains/observability/extension.ts +17 -4
  448. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  449. package/src/domains/observability/projection.ts +14 -90
  450. package/src/domains/observability/trace-store.ts +43 -7
  451. package/src/domains/prompts/compiler.ts +73 -53
  452. package/src/domains/prompts/contract.ts +15 -3
  453. package/src/domains/prompts/extension.ts +97 -9
  454. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  455. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  456. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  457. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  458. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  459. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  460. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  461. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  462. package/src/domains/providers/contract.ts +4 -1
  463. package/src/domains/providers/extension.ts +40 -9
  464. package/src/domains/providers/index.ts +1 -1
  465. package/src/domains/providers/model-capabilities.ts +9 -0
  466. package/src/domains/providers/model-discovery.ts +2 -0
  467. package/src/domains/providers/model-runtime-capabilities.ts +99 -25
  468. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
  469. package/src/domains/providers/runtime-resolution.ts +31 -0
  470. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  471. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  472. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  473. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  474. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  475. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  476. package/src/domains/providers/support.ts +11 -5
  477. package/src/domains/providers/target-model-cache.ts +25 -2
  478. package/src/domains/providers/types/capability-flags.ts +2 -0
  479. package/src/domains/providers/types/cost-provenance.ts +19 -0
  480. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  481. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  482. package/src/domains/providers/types/target-descriptor.ts +19 -0
  483. package/src/domains/resources/index.ts +3 -0
  484. package/src/domains/resources/skills/install.ts +72 -7
  485. package/src/domains/resources/skills/loader.ts +23 -19
  486. package/src/domains/resources/skills/marketplace.ts +63 -11
  487. package/src/domains/safety/autonomy.ts +15 -0
  488. package/src/domains/safety/call-target.ts +1 -1
  489. package/src/domains/safety/index.ts +1 -0
  490. package/src/domains/safety/loop-detector.ts +7 -4
  491. package/src/domains/safety/path-policy.ts +1 -1
  492. package/src/domains/safety/policy-engine.ts +34 -11
  493. package/src/domains/safety/protected-artifacts.ts +191 -88
  494. package/src/domains/safety/run-effects.ts +2 -22
  495. package/src/domains/safety/skill-authority.ts +55 -0
  496. package/src/domains/session/compaction/compact.ts +72 -22
  497. package/src/domains/session/entries.ts +6 -0
  498. package/src/domains/session/task-board.ts +10 -9
  499. package/src/domains/session/usage.ts +3 -3
  500. package/src/domains/share/archive.ts +164 -7
  501. package/src/engine/acp/server.ts +62 -9
  502. package/src/engine/agent.ts +13 -3
  503. package/src/engine/ai.ts +26 -8
  504. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  505. package/src/engine/api-registry.ts +3 -0
  506. package/src/engine/apis/llamacpp-residency.ts +3 -4
  507. package/src/engine/apis/lmstudio.ts +3 -3
  508. package/src/engine/apis/ollama-native.ts +6 -6
  509. package/src/engine/apis/openai-completions.ts +145 -39
  510. package/src/engine/apis/output-budget.ts +8 -18
  511. package/src/engine/apis/residency.ts +8 -27
  512. package/src/engine/external-subprocess.ts +114 -6
  513. package/src/engine/gemma-channel-filter.ts +19 -0
  514. package/src/engine/loop-guard.ts +92 -12
  515. package/src/engine/worker-runtime.ts +40 -11
  516. package/src/engine/worker-tools.ts +3 -1
  517. package/src/entry/background-model-metadata.ts +18 -0
  518. package/src/entry/compaction-prompt.ts +57 -0
  519. package/src/entry/extension-hook-sources.ts +28 -0
  520. package/src/entry/extension-reload.ts +309 -0
  521. package/src/entry/orchestrator.ts +464 -251
  522. package/src/entry/task-memory-lifecycle.ts +35 -0
  523. package/src/interactive/application-controller.ts +2 -1
  524. package/src/interactive/bus-notices.ts +8 -1
  525. package/src/interactive/chat-loop-messages.ts +16 -17
  526. package/src/interactive/chat-loop.ts +75 -3
  527. package/src/interactive/chat-panel.ts +36 -13
  528. package/src/interactive/chat-renderer.ts +72 -7
  529. package/src/interactive/cost-overlay.ts +26 -2
  530. package/src/interactive/dispatch-board.ts +6 -11
  531. package/src/interactive/footer/widgets.ts +13 -0
  532. package/src/interactive/interactive-application.ts +39 -4
  533. package/src/interactive/interactive-input-runtime.ts +4 -0
  534. package/src/interactive/interactive-presentation.ts +2 -2
  535. package/src/interactive/interactive-slash-runtime.ts +4 -1
  536. package/src/interactive/overlays/extensions.ts +9 -1
  537. package/src/interactive/overlays/help-reference.ts +13 -0
  538. package/src/interactive/overlays/settings.ts +27 -16
  539. package/src/interactive/panes-runtime.ts +111 -35
  540. package/src/interactive/prompt-cache-identity.ts +88 -0
  541. package/src/interactive/renderers/worker-entry.ts +32 -0
  542. package/src/interactive/slash-commands.ts +153 -20
  543. package/src/interactive/stream-pacing-policy.ts +0 -23
  544. package/src/interactive/theme/labels.ts +19 -13
  545. package/src/interactive/turn-context.ts +39 -20
  546. package/src/interactive/turn-recovery.ts +8 -0
  547. package/src/interactive/turn-runtime.ts +27 -11
  548. package/src/interactive/turn-state.ts +7 -0
  549. package/src/interactive/worker-receipts.ts +1 -0
  550. package/src/interactive/worker-stream.ts +6 -1
  551. package/src/interactive/yazi-bridge.ts +60 -6
  552. package/src/tools/agent-tools.ts +30 -1
  553. package/src/tools/artifact.ts +2 -2
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/bootstrap.ts +4 -0
  557. package/src/tools/builtin-tool-catalog.ts +52 -22
  558. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  559. package/src/tools/codewiki/code-nav.ts +99 -13
  560. package/src/tools/context/docs-engine.ts +20 -7
  561. package/src/tools/context/index.ts +59 -21
  562. package/src/tools/core-bootstrap.ts +28 -6
  563. package/src/tools/credential-present.ts +1 -2
  564. package/src/tools/dispatch-arguments.ts +6 -1
  565. package/src/tools/dispatch-event-text.ts +10 -0
  566. package/src/tools/dispatch-plan.ts +49 -4
  567. package/src/tools/dispatch-run-events.ts +1 -1
  568. package/src/tools/dispatch-runner.ts +12 -0
  569. package/src/tools/dispatch-schema.ts +338 -0
  570. package/src/tools/dispatch-types.ts +3 -0
  571. package/src/tools/dispatch.ts +9 -254
  572. package/src/tools/ledger.ts +3 -5
  573. package/src/tools/monitor-surface.ts +5 -13
  574. package/src/tools/observation.ts +4 -5
  575. package/src/tools/panes-surface.ts +4 -11
  576. package/src/tools/panes.ts +4 -2
  577. package/src/tools/policy.ts +15 -2
  578. package/src/tools/read.ts +5 -6
  579. package/src/tools/registry.ts +41 -12
  580. package/src/tools/result-shaping.ts +18 -14
  581. package/src/tools/steer-surface.ts +1 -1
  582. package/src/tools/tasks.ts +1 -1
  583. package/src/tools/truncate.ts +6 -5
  584. package/src/tools/verify/surface.ts +6 -12
  585. package/src/tools/web-fetch-surface.ts +1 -3
  586. package/src/tools/worker-evidence.ts +3 -1
  587. package/src/worker/spec-contract.ts +4 -0
  588. package/dist/builtins-UJLMOVOV.js +0 -17
  589. package/dist/chunk-5QIAJV2D.js +0 -48
  590. package/dist/chunk-JZWT5J3Y.js +0 -814
  591. package/dist/chunk-K7VKOLQQ.js +0 -15
  592. package/dist/chunk-PMZCIOCJ.js +0 -25
  593. package/dist/chunk-SUW5DORT.js +0 -819
  594. package/dist/chunk-UOV2BYIW.js +0 -107
  595. package/dist/chunk-WR6U3OVP.js +0 -45
  596. package/dist/chunk-Y45G3AXC.js +0 -1558
  597. package/dist/reset-EOLM7GVE.js +0 -230
  598. package/dist/uninstall-N34PCTGJ.js +0 -331
  599. package/dist/upgrade-H7TOM7YL.js +0 -323
  600. package/docs/artifact-versions.md +0 -67
  601. package/docs/development-pipeline.md +0 -121
  602. package/docs/documentation-coverage.md +0 -46
  603. package/docs/documentation-guide.md +0 -167
  604. package/docs/time-conventions.md +0 -101
@@ -252,6 +252,7 @@ function observedPath(op, args, cwd) {
252
252
  return explicit === null ? "" : canonicalize(explicit, cwd);
253
253
  }
254
254
  if (op === "code_nav") {
255
+ if (stringField2(args, "source") === "clio") return "";
255
256
  const mode = stringField2(args, "mode");
256
257
  if (mode === null || !CODE_NAV_PATH_MODES.has(mode)) return "";
257
258
  const query = stringField2(args, "query");
@@ -431,4 +432,4 @@ export {
431
432
  callPathsByToolCallId,
432
433
  buildPathIndex
433
434
  };
434
- //# sourceMappingURL=chunk-TZSKNMZG.js.map
435
+ //# sourceMappingURL=chunk-GTUD2WMY.js.map
@@ -1,20 +1,23 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ settings_v2_default
4
+ } from "./chunk-5ICU3EUH.js";
2
5
  import {
3
6
  clio_coder_naming_default
4
- } from "./chunk-QTFGO774.js";
7
+ } from "./chunk-IGLP3ODT.js";
5
8
  import {
6
- settings_v2_default
7
- } from "./chunk-AP73CFDC.js";
9
+ upgradeLegacyExtensionInstallState
10
+ } from "./chunk-5MEZN6CB.js";
8
11
  import {
9
12
  readSettings,
10
13
  settingsPath,
11
14
  updateSettings,
12
15
  withSettingsLock
13
- } from "./chunk-EIMVLWB3.js";
16
+ } from "./chunk-GHS5EBTQ.js";
14
17
  import {
15
18
  authStoragePath,
16
19
  openAuthStorage
17
- } from "./chunk-WNP7O5WZ.js";
20
+ } from "./chunk-ID64D7PE.js";
18
21
  import {
19
22
  require_dist
20
23
  } from "./chunk-APJ265NV.js";
@@ -28,8 +31,8 @@ import {
28
31
 
29
32
  // src/domains/lifecycle/migrations/index.ts
30
33
  init_esm_shims();
31
- import { existsSync as existsSync3, mkdirSync, readFileSync as readFileSync2, writeFileSync } from "node:fs";
32
- import { join } from "node:path";
34
+ import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync as readFileSync2, writeFileSync } from "node:fs";
35
+ import { join as join2 } from "node:path";
33
36
 
34
37
  // src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts
35
38
  init_esm_shims();
@@ -69,6 +72,30 @@ var migration = {
69
72
  };
70
73
  var lmstudio_runtime_id_default = migration;
71
74
 
75
+ // src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts
76
+ init_esm_shims();
77
+ import { mkdirSync } from "node:fs";
78
+ import { join } from "node:path";
79
+ var EXTENSION_INSTALL_DIGESTS_MIGRATION_ID = "2026-09-01-extension-install-digests";
80
+ function migrateExtensionInstallDigests(stateDir, cwd = process.cwd()) {
81
+ const scopes = upgradeLegacyExtensionInstallState(cwd);
82
+ const reportDir = join(stateDir, "migration-reports");
83
+ mkdirSync(reportDir, { recursive: true });
84
+ safeResourceWrite(
85
+ join(reportDir, `${EXTENSION_INSTALL_DIGESTS_MIGRATION_ID}.json`),
86
+ `${JSON.stringify({ migration: EXTENSION_INSTALL_DIGESTS_MIGRATION_ID, scopes }, null, 2)}
87
+ `,
88
+ { encoding: "utf8", mode: 420 }
89
+ );
90
+ }
91
+ var migration2 = {
92
+ id: EXTENSION_INSTALL_DIGESTS_MIGRATION_ID,
93
+ async up(stateDir) {
94
+ migrateExtensionInstallDigests(stateDir);
95
+ }
96
+ };
97
+ var extension_install_digests_default = migration2;
98
+
72
99
  // src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts
73
100
  init_esm_shims();
74
101
  var import_yaml = __toESM(require_dist(), 1);
@@ -77,7 +104,7 @@ var RETIRED_PANE_KEYS = ["agents", "keepFailed"];
77
104
  function isPlainObject(value) {
78
105
  return typeof value === "object" && value !== null && !Array.isArray(value);
79
106
  }
80
- var migration2 = {
107
+ var migration3 = {
81
108
  id: "2026-09-01-retire-panes-knobs",
82
109
  async up() {
83
110
  withSettingsLock(() => {
@@ -100,11 +127,12 @@ var migration2 = {
100
127
  });
101
128
  }
102
129
  };
103
- var retire_panes_knobs_default = migration2;
130
+ var retire_panes_knobs_default = migration3;
104
131
 
105
132
  // src/domains/lifecycle/migrations/index.ts
106
133
  var REGISTRY = Object.freeze([
107
134
  settings_v2_default,
135
+ extension_install_digests_default,
108
136
  clio_coder_naming_default,
109
137
  retire_panes_knobs_default,
110
138
  lmstudio_runtime_id_default
@@ -112,8 +140,11 @@ var REGISTRY = Object.freeze([
112
140
  function listMigrations() {
113
141
  return REGISTRY;
114
142
  }
143
+ function readMigrationManifest(stateDir) {
144
+ return readManifest(manifestPath(stateDir));
145
+ }
115
146
  function manifestPath(stateDir) {
116
- return join(stateDir, "migrations.json");
147
+ return join2(stateDir, "migrations.json");
117
148
  }
118
149
  function readManifest(path) {
119
150
  if (!existsSync3(path)) return { applied: [] };
@@ -133,7 +164,7 @@ function writeManifest(path, manifest) {
133
164
  `, { encoding: "utf8", mode: 420 });
134
165
  }
135
166
  async function runPending(stateDir, migrations = REGISTRY) {
136
- mkdirSync(stateDir, { recursive: true });
167
+ mkdirSync2(stateDir, { recursive: true });
137
168
  const path = manifestPath(stateDir);
138
169
  const manifest = readManifest(path);
139
170
  const applied = new Set(manifest.applied);
@@ -156,6 +187,7 @@ async function runPending(stateDir, migrations = REGISTRY) {
156
187
 
157
188
  export {
158
189
  listMigrations,
190
+ readMigrationManifest,
159
191
  runPending
160
192
  };
161
- //# sourceMappingURL=chunk-6HMJX2VU.js.map
193
+ //# sourceMappingURL=chunk-GWZNEVM2.js.map
@@ -0,0 +1,26 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-3R73A4XB.js";
5
+
6
+ // src/core/artifact-paths.ts
7
+ init_esm_shims();
8
+ var CLIO_PROJECT_DIR = ".clio-coder";
9
+ var CLIO_ARTIFACT_DIR = `${CLIO_PROJECT_DIR}/artifacts`;
10
+ var KIND_FILENAMES = {
11
+ plan: "PLAN.md",
12
+ review: "REVIEW.md",
13
+ report: "REPORT.md"
14
+ };
15
+ var DEFAULT_FILENAME = KIND_FILENAMES.plan;
16
+ function artifactDefaultPath(kind) {
17
+ const filename = typeof kind === "string" ? KIND_FILENAMES[kind] ?? DEFAULT_FILENAME : DEFAULT_FILENAME;
18
+ return `${CLIO_ARTIFACT_DIR}/${filename}`;
19
+ }
20
+
21
+ export {
22
+ CLIO_PROJECT_DIR,
23
+ CLIO_ARTIFACT_DIR,
24
+ artifactDefaultPath
25
+ };
26
+ //# sourceMappingURL=chunk-GYV6VZOC.js.map
@@ -9,14 +9,14 @@ import {
9
9
  readClioVersion,
10
10
  readPiMonoVersion
11
11
  } from "./chunk-IWHMRKLL.js";
12
- import {
13
- clioStateDir,
14
- stateRootRemoved
15
- } from "./chunk-BYP5D4HI.js";
16
12
  import {
17
13
  fsyncDirectory,
18
14
  safeResourceWrite
19
15
  } from "./chunk-WEPFGWHJ.js";
16
+ import {
17
+ clioStateDir,
18
+ stateRootRemoved
19
+ } from "./chunk-BYP5D4HI.js";
20
20
  import {
21
21
  init_esm_shims
22
22
  } from "./chunk-3R73A4XB.js";
@@ -576,4 +576,4 @@ export {
576
576
  openSession,
577
577
  resumeSession
578
578
  };
579
- //# sourceMappingURL=chunk-MQXIVJ35.js.map
579
+ //# sourceMappingURL=chunk-HAXOFFRH.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-K6BSR66V.js";
8
8
  import {
9
9
  StringEnum
10
- } from "./chunk-VXMFAE2W.js";
10
+ } from "./chunk-YPC6ZR5L.js";
11
11
  import {
12
12
  init_esm_shims
13
13
  } from "./chunk-3R73A4XB.js";
@@ -16,7 +16,7 @@ import {
16
16
  init_esm_shims();
17
17
  var steerToolSurface = {
18
18
  name: ToolNames.Steer,
19
- description: "Control a running native worker whose run id is already available. Parent-model mid-run control requires detach:true because ordinary dispatch auto-waits and dispatch/steer are sequential; the interactive operator/TUI may steer an active synchronous native run through the dispatch contract. ACP runs have no input channel.",
19
+ description: "Guide or cancel a running native worker by run id. Only a detached run can be steered from here, because an ordinary dispatch auto-waits; ACP runs have no input channel.",
20
20
  parameters: typebox_exports.Object({
21
21
  run_id: typebox_exports.String({ description: "Run id from dispatch output or monitor list." }),
22
22
  action: StringEnum(["guide", "cancel"], { description: "What to do." }),
@@ -29,4 +29,4 @@ var steerToolSurface = {
29
29
  export {
30
30
  steerToolSurface
31
31
  };
32
- //# sourceMappingURL=chunk-UXN6JT4W.js.map
32
+ //# sourceMappingURL=chunk-HEQY7ZFI.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-IWHMRKLL.js";
5
5
  import {
6
6
  DEFAULT_SETTINGS_YAML
7
- } from "./chunk-BWW4HLO4.js";
7
+ } from "./chunk-UXCU4E3T.js";
8
8
  import {
9
9
  clioCacheDir,
10
10
  clioConfigDir,
@@ -143,4 +143,4 @@ function enforceHomePrefixGuard() {
143
143
  export {
144
144
  initializeClioHome
145
145
  };
146
- //# sourceMappingURL=chunk-7PWAODYW.js.map
146
+ //# sourceMappingURL=chunk-I7XBWTYH.js.map
@@ -1,4 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ artifactDefaultPath
4
+ } from "./chunk-GYV6VZOC.js";
2
5
  import {
3
6
  isVerificationScriptName
4
7
  } from "./chunk-UL3WSD3F.js";
@@ -12,26 +15,13 @@ import {
12
15
  init_esm_shims
13
16
  } from "./chunk-3R73A4XB.js";
14
17
 
15
- // src/core/artifact-paths.ts
16
- init_esm_shims();
17
- var CLIO_PROJECT_DIR = ".clio-coder";
18
- var CLIO_ARTIFACT_DIR = `${CLIO_PROJECT_DIR}/artifacts`;
19
- var KIND_FILENAMES = {
20
- plan: "PLAN.md",
21
- review: "REVIEW.md",
22
- report: "REPORT.md"
23
- };
24
- var DEFAULT_FILENAME = KIND_FILENAMES.plan;
25
- function artifactDefaultPath(kind) {
26
- const filename = typeof kind === "string" ? KIND_FILENAMES[kind] ?? DEFAULT_FILENAME : DEFAULT_FILENAME;
27
- return `${CLIO_ARTIFACT_DIR}/${filename}`;
28
- }
29
-
30
18
  // src/domains/safety/protected-artifacts.ts
31
19
  init_esm_shims();
32
20
  import path from "node:path";
33
- var COMMAND_SEPARATORS = /* @__PURE__ */ new Set([";", "&&", "||", "|"]);
21
+ var COMMAND_SEPARATORS = /* @__PURE__ */ new Set([";", "&", "&&", "||", "|"]);
34
22
  var SHELL_WRAPPERS = /* @__PURE__ */ new Set(["command", "builtin", "sudo", "doas"]);
23
+ var SHELL_REDIRECTIONS = /* @__PURE__ */ new Set([">", ">>", "<", "<<", "<<<", "<&", ">&", "<>", ">|", "&>", "&>>"]);
24
+ var SHELL_WRITE_REDIRECTIONS = /* @__PURE__ */ new Set([">", ">>", ">&", "<>", ">|", "&>", "&>>"]);
35
25
  function toolMutationPaths(toolName, args) {
36
26
  if (toolName === ToolNames.Artifact) {
37
27
  return [mutationPathArg(args) ?? artifactDefaultPath(args?.kind)];
@@ -79,9 +69,9 @@ function isProtectedPath(state, artifactPath) {
79
69
  function classifyDestructiveCommand(command, protectedArtifacts) {
80
70
  const artifacts = normalizedArtifacts(protectedArtifacts);
81
71
  if (artifacts.length === 0) return { kind: "benign", matches: [] };
82
- const tokens = tokenizeShellLike(command);
83
- for (const segment of splitSegments(tokens)) {
84
- const redirect = classifyRedirect(segment, artifacts);
72
+ for (const tokens of splitSegments(scanShellLike(command))) {
73
+ const segment = shellCommandArguments(tokens);
74
+ const redirect = classifyRedirect(tokens, artifacts);
85
75
  if (redirect.kind === "destructive") return redirect;
86
76
  const commandIndex = commandTokenIndex(segment);
87
77
  if (commandIndex === null) continue;
@@ -141,8 +131,8 @@ function classifyDestructiveCommand(command, protectedArtifacts) {
141
131
  return { kind: "benign", matches: [] };
142
132
  }
143
133
  function detectValidationCommand(command, scope = "finish-contract") {
144
- const tokens = tokenizeShellLike(command);
145
- for (const segment of splitSegments(tokens)) {
134
+ for (const tokens of splitSegments(scanShellLike(command))) {
135
+ const segment = shellCommandArguments(tokens);
146
136
  const commandIndex = commandTokenIndex(segment);
147
137
  if (commandIndex === null) continue;
148
138
  const executable = basenameToken(segment[commandIndex]);
@@ -154,10 +144,11 @@ function detectValidationCommand(command, scope = "finish-contract") {
154
144
  }
155
145
  function extractCommandWriteTargets(command) {
156
146
  const targets = [];
157
- for (const segment of expandedSegments(command)) {
147
+ for (const segment of expandedShellSegments(command)) {
158
148
  collectRedirectTargets(segment, targets);
159
- collectInvokedWriteTargets(segment, targets);
160
- collectInPlaceEditTargets(segment, targets);
149
+ const argv = shellCommandArguments(segment);
150
+ collectInvokedWriteTargets(argv, targets);
151
+ collectInPlaceEditTargets(argv, targets);
161
152
  }
162
153
  return targets.filter(isInterestingWriteTarget);
163
154
  }
@@ -179,27 +170,28 @@ function segmentShellScript(segment) {
179
170
  }
180
171
  return null;
181
172
  }
182
- function expandedSegments(command, depth = 0) {
183
- const segments = splitSegments(tokenizeShellLike(command));
173
+ function expandedShellSegments(command, depth = 0) {
174
+ const segments = splitSegments(scanShellLike(command));
184
175
  if (depth >= INNER_SHELL_MAX_DEPTH) return segments;
185
176
  const out = [];
186
177
  for (const segment of segments) {
187
178
  out.push(segment);
188
- const script = segmentShellScript(segment);
189
- if (script !== null) out.push(...expandedSegments(script, depth + 1));
179
+ const script = segmentShellScript(shellCommandArguments(segment));
180
+ if (script !== null) out.push(...expandedShellSegments(script, depth + 1));
190
181
  }
191
182
  return out;
192
183
  }
193
184
  function inlineShellScript(command) {
194
- const segments = splitSegments(tokenizeShellLike(command));
185
+ const segments = splitSegments(scanShellLike(command));
195
186
  if (segments.length !== 1) return null;
196
187
  const segment = segments[0];
197
188
  if (segment === void 0) return null;
198
- return segmentShellScript(segment);
189
+ return segmentShellScript(shellCommandArguments(segment));
199
190
  }
200
191
  function extractCommandCdTargets(command) {
201
192
  const targets = [];
202
- for (const segment of expandedSegments(command)) {
193
+ for (const tokens of expandedShellSegments(command)) {
194
+ const segment = shellCommandArguments(tokens);
203
195
  const commandIndex = commandTokenIndex(segment);
204
196
  if (commandIndex === null) continue;
205
197
  const executable = basenameToken(segment[commandIndex]);
@@ -211,7 +203,8 @@ function extractCommandCdTargets(command) {
211
203
  }
212
204
  function extractCommandDeleteTargets(command) {
213
205
  const targets = [];
214
- for (const segment of expandedSegments(command)) {
206
+ for (const tokens of expandedShellSegments(command)) {
207
+ const segment = shellCommandArguments(tokens);
215
208
  const commandIndex = commandTokenIndex(segment);
216
209
  if (commandIndex === null) continue;
217
210
  const executable = basenameToken(segment[commandIndex]);
@@ -230,15 +223,85 @@ function extractCommandDeleteTargets(command) {
230
223
  }
231
224
  return targets.filter(isInterestingWriteTarget);
232
225
  }
226
+ function invokesClioSkillMutation(command) {
227
+ for (const segment of expandedShellSegments(command)) {
228
+ const argv = shellCommandArguments(segment);
229
+ const index = commandTokenIndex(argv);
230
+ if (index === null) continue;
231
+ let args = argv.slice(index);
232
+ const executable = basenameToken(args[0]);
233
+ if (executable === "npx" || executable === "npm" && args[1] === "exec") {
234
+ args = args.slice(executable === "npm" ? 2 : 1);
235
+ while (args[0]?.startsWith("-")) args = args.slice(1);
236
+ }
237
+ const program = args[0] ?? "";
238
+ if (basenameToken(program) === "node" || basenameToken(program) === "tsx") {
239
+ if (!/(?:^|\/)(?:src|dist)\/cli\/index\.(?:js|ts)$/.test(args[1] ?? "")) continue;
240
+ args = args.slice(2);
241
+ } else if (/^(?:@iowarp\/)?clio-coder(?:@[^/]+)?$/.test(program) || basenameToken(program) === "clio-coder") {
242
+ args = args.slice(1);
243
+ } else continue;
244
+ if (args.includes("--version") || args.includes("-v")) continue;
245
+ let rootHelp = false;
246
+ let firstRootFlag;
247
+ while (args[0]?.startsWith("-")) {
248
+ const flag = args[0];
249
+ if (flag === "--all" || flag === "--help" || flag === "-h") firstRootFlag ??= flag;
250
+ rootHelp = firstRootFlag === "--help" || firstRootFlag === "-h";
251
+ args = args.slice(flag === "--skill" || flag === "--api-key" ? 2 : 1);
252
+ }
253
+ if (rootHelp) continue;
254
+ if (args[0] !== "skills" && args[0] !== "library") continue;
255
+ if (resourceCliMutatesSkills(args[0], args.slice(1))) return true;
256
+ }
257
+ return false;
258
+ }
259
+ function shellCommandArguments(segment) {
260
+ const args = [];
261
+ for (let index = 0; index < segment.length; index += 1) {
262
+ const token = segment[index];
263
+ if (token === void 0) continue;
264
+ if (token.operator && SHELL_REDIRECTIONS.has(token.value)) {
265
+ const previous = args.at(-1);
266
+ if (previous && previous.end === token.start && !previous.quoted && /^\d+$/.test(previous.value)) args.pop();
267
+ if (segment[index + 1]?.operator === false) index += 1;
268
+ continue;
269
+ }
270
+ args.push(token);
271
+ }
272
+ return args.map((token) => token.value);
273
+ }
274
+ function resourceCliMutatesSkills(resource, args) {
275
+ const valueOptions = resource === "skills" ? ["--name", "--category", "--scenario", "--target", "--workspace", "--timeout"] : ["--kind", "--from"];
276
+ let verb;
277
+ let confirmed = false;
278
+ for (let index = 0; index < args.length; index += 1) {
279
+ const arg = args[index];
280
+ if (arg === void 0) continue;
281
+ if (valueOptions.includes(arg)) {
282
+ index += 1;
283
+ continue;
284
+ }
285
+ if (arg === "--help" || arg === "-h") return false;
286
+ if (arg === "--yes") confirmed = true;
287
+ if (!arg.startsWith("-")) verb ??= arg;
288
+ }
289
+ if (resource === "skills") return verb === "install" || verb === "update" || verb === "sync";
290
+ return verb === "add" && confirmed;
291
+ }
233
292
  var STANDARD_DEV_TARGETS = /* @__PURE__ */ new Set(["/dev/null", "/dev/stdout", "/dev/stderr", "/dev/tty", "/dev/zero"]);
234
293
  function collectRedirectTargets(segment, out) {
235
294
  for (let index = 0; index < segment.length - 1; index += 1) {
236
- const token = segment[index];
237
- if (token !== ">" && token !== ">>") continue;
238
- const target = segment[index + 1];
239
- if (target !== void 0) out.push(target);
295
+ const target = redirectWriteTarget(segment[index], segment[index + 1]);
296
+ if (target !== null) out.push(target);
240
297
  }
241
298
  }
299
+ function redirectWriteTarget(operator, target) {
300
+ if (!operator?.operator || target === void 0 || target.operator || !SHELL_WRITE_REDIRECTIONS.has(operator.value))
301
+ return null;
302
+ if (operator.value === ">&" && /^(?:\d+-?|-)$/u.test(target.value)) return null;
303
+ return target.value;
304
+ }
242
305
  function collectInvokedWriteTargets(segment, out) {
243
306
  const cmdIndex = commandTokenIndex(segment);
244
307
  if (cmdIndex === null) return;
@@ -274,7 +337,6 @@ function hasSedInPlaceFlag(segment, cmdIndex) {
274
337
  for (let index = cmdIndex + 1; index < segment.length; index += 1) {
275
338
  const token = segment[index];
276
339
  if (token === void 0) continue;
277
- if (COMMAND_SEPARATORS.has(token)) break;
278
340
  if (token === "--") break;
279
341
  if (token === "--in-place" || token.startsWith("--in-place=")) return true;
280
342
  if (token.startsWith("--")) continue;
@@ -289,7 +351,6 @@ function sedFileOperands(segment, cmdIndex) {
289
351
  for (let index = cmdIndex + 1; index < segment.length; index += 1) {
290
352
  const token = segment[index];
291
353
  if (token === void 0) continue;
292
- if (COMMAND_SEPARATORS.has(token)) break;
293
354
  if (!endOfOptions && token === "--") {
294
355
  endOfOptions = true;
295
356
  continue;
@@ -322,16 +383,15 @@ function sedFileOperands(segment, cmdIndex) {
322
383
  }
323
384
  function isInterestingWriteTarget(target) {
324
385
  if (target.length === 0) return false;
325
- if (target.startsWith("&")) return false;
326
386
  if (STANDARD_DEV_TARGETS.has(target)) return false;
327
387
  if (target.startsWith("/dev/fd/")) return false;
328
388
  return true;
329
389
  }
330
390
  function classifyRedirect(segment, artifacts) {
331
391
  for (let index = 0; index < segment.length; index += 1) {
332
- if (segment[index] !== ">") continue;
333
- const target = segment[index + 1];
334
- if (target === void 0) continue;
392
+ if (segment[index]?.value === ">>" || segment[index]?.value === "&>>") continue;
393
+ const target = redirectWriteTarget(segment[index], segment[index + 1]);
394
+ if (target === null) continue;
335
395
  const matches = matchesForPaths([target], artifacts, "target", "redirect can overwrite protected artifacts");
336
396
  if (matches.length > 0) {
337
397
  return {
@@ -528,28 +588,30 @@ function pathArgs(segment, commandIndex) {
528
588
  for (let index = commandIndex + 1; index < segment.length; index += 1) {
529
589
  const token = segment[index];
530
590
  if (token === void 0) continue;
531
- if (COMMAND_SEPARATORS.has(token)) break;
532
591
  if (!endOfOptions && token === "--") {
533
592
  endOfOptions = true;
534
593
  continue;
535
594
  }
536
595
  if (!endOfOptions && token.startsWith("-")) continue;
537
- if (token === ">" || token === ">>" || token === "<" || token === "<<") {
538
- index += 1;
539
- continue;
540
- }
541
596
  args.push(token);
542
597
  }
543
598
  return args;
544
599
  }
545
- function tokenizeShellLike(command) {
600
+ function commandArgumentSegments(command) {
601
+ return splitSegments(scanShellLike(command)).map(shellCommandArguments);
602
+ }
603
+ function scanShellLike(command) {
546
604
  const tokens = [];
547
605
  let current = "";
606
+ let wordStart = null;
607
+ let quoted = false;
548
608
  let quote = null;
549
- const pushCurrent = () => {
550
- if (current.length === 0) return;
551
- tokens.push(current);
609
+ const pushCurrent = (end) => {
610
+ if (wordStart === null) return;
611
+ tokens.push({ value: current, operator: false, quoted, start: wordStart, end });
552
612
  current = "";
613
+ wordStart = null;
614
+ quoted = false;
553
615
  };
554
616
  for (let index = 0; index < command.length; index += 1) {
555
617
  const char = command[index];
@@ -560,78 +622,60 @@ function tokenizeShellLike(command) {
560
622
  continue;
561
623
  }
562
624
  if (quote === '"' && char === "\\" && index + 1 < command.length) {
563
- index += 1;
564
- current += command[index] ?? "";
565
- continue;
625
+ const next = command[index + 1] ?? "";
626
+ if (next === "\n" || '$`"\\'.includes(next)) {
627
+ index += 1;
628
+ if (next !== "\n") current += next;
629
+ continue;
630
+ }
566
631
  }
567
632
  current += char;
568
633
  continue;
569
634
  }
570
635
  if (char === "'" || char === '"') {
636
+ wordStart ??= index;
637
+ quoted = true;
571
638
  quote = char;
572
639
  continue;
573
640
  }
574
641
  if (char === "\\" && index + 1 < command.length) {
575
- index += 1;
576
- current += command[index] ?? "";
577
- continue;
578
- }
579
- if (/\s/.test(char)) {
580
- pushCurrent();
581
- if (char === "\n") tokens.push(";");
582
- continue;
583
- }
584
- if (char === ";") {
585
- pushCurrent();
586
- tokens.push(";");
587
- continue;
588
- }
589
- if (char === "&" && command[index + 1] === "&") {
590
- pushCurrent();
591
- tokens.push("&&");
642
+ if (command[index + 1] !== "\n") {
643
+ wordStart ??= index;
644
+ quoted = true;
645
+ current += command[index + 1] ?? "";
646
+ }
592
647
  index += 1;
593
648
  continue;
594
649
  }
595
- if (char === "|") {
596
- pushCurrent();
597
- if (command[index + 1] === "|") {
598
- tokens.push("||");
599
- index += 1;
600
- } else {
601
- tokens.push("|");
602
- }
650
+ if (char === "#" && wordStart === null) {
651
+ while (index + 1 < command.length && command[index + 1] !== "\n") index += 1;
603
652
  continue;
604
653
  }
605
- if (char === ">") {
606
- pushCurrent();
607
- if (command[index + 1] === ">") {
608
- tokens.push(">>");
609
- index += 1;
610
- } else {
611
- tokens.push(">");
612
- }
654
+ if (/\s/.test(char)) {
655
+ pushCurrent(index);
656
+ if (char === "\n") tokens.push({ value: ";", operator: true, quoted: false, start: index, end: index + 1 });
613
657
  continue;
614
658
  }
615
- if (char === "<") {
616
- pushCurrent();
617
- if (command[index + 1] === "<") {
618
- tokens.push("<<");
619
- index += 1;
620
- } else {
621
- tokens.push("<");
622
- }
659
+ if (";&|><".includes(char)) {
660
+ pushCurrent(index);
661
+ const three = command.slice(index, index + 3);
662
+ const two = command.slice(index, index + 2);
663
+ const value = SHELL_REDIRECTIONS.has(three) || COMMAND_SEPARATORS.has(three) ? three : SHELL_REDIRECTIONS.has(two) || COMMAND_SEPARATORS.has(two) ? two : char;
664
+ tokens.push({ value, operator: true, quoted: false, start: index, end: index + value.length });
665
+ index += value.length - 1;
623
666
  continue;
624
667
  }
668
+ wordStart ??= index;
625
669
  current += char;
626
670
  }
627
- pushCurrent();
671
+ pushCurrent(command.length);
628
672
  return tokens;
629
673
  }
630
674
  function splitSegments(tokens) {
631
675
  const segments = [];
632
676
  let current = [];
633
677
  for (const token of tokens) {
634
- if (COMMAND_SEPARATORS.has(token)) {
678
+ if (token.operator && COMMAND_SEPARATORS.has(token.value)) {
635
679
  if (current.length > 0) segments.push(current);
636
680
  current = [];
637
681
  continue;
@@ -748,9 +792,6 @@ function compareStrings(left, right) {
748
792
  }
749
793
 
750
794
  export {
751
- CLIO_PROJECT_DIR,
752
- CLIO_ARTIFACT_DIR,
753
- artifactDefaultPath,
754
795
  toolMutationPaths,
755
796
  protectedArtifactMutationBlockReason,
756
797
  protectArtifact,
@@ -759,6 +800,8 @@ export {
759
800
  inlineShellScript,
760
801
  extractCommandCdTargets,
761
802
  extractCommandDeleteTargets,
762
- tokenizeShellLike
803
+ invokesClioSkillMutation,
804
+ commandArgumentSegments,
805
+ scanShellLike
763
806
  };
764
- //# sourceMappingURL=chunk-GCSMB2KY.js.map
807
+ //# sourceMappingURL=chunk-I7ZPNEJM.js.map
@@ -9,9 +9,6 @@ import {
9
9
  import {
10
10
  require_dist
11
11
  } from "./chunk-APJ265NV.js";
12
- import {
13
- clioConfigDir
14
- } from "./chunk-BYP5D4HI.js";
15
12
  import {
16
13
  safeResourceWrite
17
14
  } from "./chunk-WEPFGWHJ.js";
@@ -19,6 +16,9 @@ import {
19
16
  findEngineEnvKeys,
20
17
  getEngineEnvApiKey
21
18
  } from "./chunk-YXLYO42X.js";
19
+ import {
20
+ clioConfigDir
21
+ } from "./chunk-BYP5D4HI.js";
22
22
  import {
23
23
  __toESM,
24
24
  init_esm_shims
@@ -959,4 +959,4 @@ export {
959
959
  authNotRequiredStatus,
960
960
  openAuthStorage
961
961
  };
962
- //# sourceMappingURL=chunk-WNP7O5WZ.js.map
962
+ //# sourceMappingURL=chunk-ID64D7PE.js.map