@iowarp/clio-coder 0.4.2 → 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 (369) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/CONTRIBUTING.md +86 -19
  3. package/README.md +35 -6
  4. package/dist/{acp-TMDQZDIG.js → acp-H2NGRPWO.js} +11 -11
  5. package/dist/{agents-5N5NG3XG.js → agents-TL5LLUQP.js} +54 -53
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-Z5CCBXKQ.js → auth-E5SW4HMS.js} +19 -16
  8. package/dist/{builtins-K6TNDT24.js → builtins-IA7V7FUC.js} +9 -4
  9. package/dist/{chunk-ZW4HH5JJ.js → chunk-2APPQIER.js} +6 -6
  10. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  11. package/dist/{chunk-UBRFI4HS.js → chunk-2UG5F4C5.js} +127 -47
  12. package/dist/{chunk-UH632ZYL.js → chunk-2UH2KFUP.js} +2 -2
  13. package/dist/{chunk-3F7VUY77.js → chunk-2VIKGWFZ.js} +2 -2
  14. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  15. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  16. package/dist/{chunk-2X4RYJTJ.js → chunk-4UVU7BJ5.js} +2 -2
  17. package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
  18. package/dist/{chunk-5KW52TEP.js → chunk-54CBCGIR.js} +5 -5
  19. package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
  20. package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
  21. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  22. package/dist/{chunk-LJID3DYZ.js → chunk-64I3JVYM.js} +2 -2
  23. package/dist/{chunk-4JDLP6ZS.js → chunk-6PTFB5VS.js} +7 -7
  24. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  25. package/dist/{chunk-HLAFFSEK.js → chunk-7DRAWPTZ.js} +2 -2
  26. package/dist/chunk-7E7I3WLS.js +3762 -0
  27. package/dist/{chunk-YJISEZKC.js → chunk-7ZYNNDKC.js} +6 -6
  28. package/dist/{chunk-I66ZTYNP.js → chunk-AF4YM7Z4.js} +236 -101
  29. package/dist/{chunk-2HFQNRV3.js → chunk-AX2THNSA.js} +12 -12
  30. package/dist/{chunk-PGF63K6I.js → chunk-B4OAX3SI.js} +65 -3
  31. package/dist/{chunk-W6NIE6OW.js → chunk-B4VEBZKF.js} +3 -3
  32. package/dist/{chunk-JBCS7CRR.js → chunk-BEPZRGGU.js} +10 -10
  33. package/dist/{chunk-XGDPUNND.js → chunk-CE5AX47J.js} +2 -2
  34. package/dist/{chunk-I64IFBLB.js → chunk-DWUOQKRU.js} +17 -10
  35. package/dist/{chunk-DZAW46HP.js → chunk-E3TPLWFX.js} +3 -3
  36. package/dist/{chunk-HIICAHCJ.js → chunk-EKCHAPYA.js} +2 -2
  37. package/dist/{chunk-XE3PCIXH.js → chunk-F5JHEYZM.js} +7 -7
  38. package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
  39. package/dist/{chunk-ZNT2M6TG.js → chunk-G76U63X4.js} +17 -17
  40. package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
  41. package/dist/{chunk-2NHR3NAY.js → chunk-GI7YYQ3F.js} +40 -34
  42. package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
  43. package/dist/chunk-GYV6VZOC.js +26 -0
  44. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  45. package/dist/{chunk-W4YEMFBX.js → chunk-HEQY7ZFI.js} +2 -2
  46. package/dist/{chunk-IKOZFYBN.js → chunk-I7ZPNEJM.js} +145 -102
  47. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  48. package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
  49. package/dist/chunk-IJNZMHLA.js +101 -0
  50. package/dist/{chunk-JWJGP5DQ.js → chunk-INY6HTFL.js} +7 -7
  51. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  52. package/dist/{chunk-B74PXLU7.js → chunk-IWT4SF4R.js} +3 -3
  53. package/dist/{chunk-B7HM5Z7T.js → chunk-JDAY6FIL.js} +5 -5
  54. package/dist/{chunk-PJX3WQUQ.js → chunk-JEQ3XTHC.js} +2 -2
  55. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  56. package/dist/{chunk-X7IARSHT.js → chunk-JKKCYP3C.js} +9 -9
  57. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  58. package/dist/{chunk-SSEYRH53.js → chunk-KK4JZPBQ.js} +19 -140
  59. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  60. package/dist/{chunk-Q4XWMHX6.js → chunk-L47TF46W.js} +2 -2
  61. package/dist/{chunk-O3YUNJZ2.js → chunk-LDJG7DW3.js} +81 -24
  62. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  63. package/dist/{chunk-F2I26BDK.js → chunk-MUW2BDDH.js} +4 -4
  64. package/dist/{chunk-HKMD33FO.js → chunk-MWUZBSAQ.js} +79 -76
  65. package/dist/{chunk-QQLGQY2A.js → chunk-N2Z7HLVY.js} +20 -20
  66. package/dist/{chunk-DZEK6CJN.js → chunk-NIQJ66N4.js} +19 -19
  67. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  68. package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
  69. package/dist/{chunk-TPEQIQIE.js → chunk-OML5D5V5.js} +8 -8
  70. package/dist/{chunk-IKSLQ4XV.js → chunk-PAJQJ7BS.js} +558 -216
  71. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  72. package/dist/{chunk-UH347SHR.js → chunk-QWGDJJYJ.js} +11 -11
  73. package/dist/chunk-R6Q67RJH.js +134 -0
  74. package/dist/{chunk-CRFOIAX3.js → chunk-RRNP2ANY.js} +6 -6
  75. package/dist/{chunk-IDNA72AH.js → chunk-RSJ25QSL.js} +2 -2
  76. package/dist/chunk-SKHCAU7K.js +385 -0
  77. package/dist/{chunk-RLYRBIYQ.js → chunk-TM6LQDI3.js} +20 -12
  78. package/dist/chunk-UOIZ7DA4.js +41 -0
  79. package/dist/{chunk-P75RZCJW.js → chunk-UPZU6GE4.js} +3 -3
  80. package/dist/{chunk-MCMZMDAC.js → chunk-V2ANDPVT.js} +4 -4
  81. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  82. package/dist/{chunk-IMXMHHMQ.js → chunk-VW6DOEDG.js} +332 -57
  83. package/dist/{chunk-XOXV5GKE.js → chunk-W6RRQCPQ.js} +16 -7
  84. package/dist/{chunk-CYZW7JHJ.js → chunk-WBKFA554.js} +8 -8
  85. package/dist/{chunk-BO7Y52RY.js → chunk-WCXUNS7U.js} +7 -7
  86. package/dist/{chunk-ZGNYYXQ6.js → chunk-WRBAGUNF.js} +3 -3
  87. package/dist/{chunk-FVDGR2ZL.js → chunk-XIVNBFZS.js} +85 -30
  88. package/dist/{chunk-BYMNWQ7O.js → chunk-XPWWI35G.js} +299 -58
  89. package/dist/{chunk-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
  90. package/dist/{chunk-AZ4WMN4W.js → chunk-Y3CBHOR6.js} +2 -2
  91. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  92. package/dist/{chunk-54ODD65L.js → chunk-YQWYVTMC.js} +4 -4
  93. package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
  94. package/dist/{chunk-7BHIY2MW.js → chunk-ZDN3Y73Y.js} +6 -6
  95. package/dist/{chunk-E7GT7O5N.js → chunk-ZWPRK62N.js} +7 -4
  96. package/dist/cli/index.js +38 -37
  97. package/dist/{clio-7VB377CC.js → clio-CMMK4KRR.js} +7 -7
  98. package/dist/{code-nav-YVLCYA7V.js → code-nav-MDZNQS33.js} +7 -7
  99. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  100. package/dist/{config-4HVOS65E.js → config-SVM5P5YI.js} +76 -74
  101. package/dist/{configure-PIWO7B24.js → configure-LE3IK2TJ.js} +26 -24
  102. package/dist/{context-IYEHL3WQ.js → context-2OHRKS42.js} +66 -63
  103. package/dist/{context-N6ZE3LGJ.js → context-E3VC7RX5.js} +15 -11
  104. package/dist/{context-KQYIWPWT.js → context-VNCR7KAG.js} +60 -45
  105. package/dist/{context-clear-G4OGZJDS.js → context-clear-BW4O37TG.js} +61 -59
  106. package/dist/context-map-COB37XXN.js +505 -0
  107. package/dist/{context-working-set-BWLF6LJP.js → context-working-set-VDS25HXZ.js} +17 -16
  108. package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-5AHT53RF.js} +85 -74
  109. package/dist/{doctor-LHBD36VU.js → doctor-WNNVO6FY.js} +37 -37
  110. package/dist/{eval-C45FYRJ6.js → eval-7G7SGAYO.js} +285 -114
  111. package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
  112. package/dist/{evidence-6SHONYAF.js → evidence-VD6736FQ.js} +63 -62
  113. package/dist/{evolve-KRKMV72X.js → evolve-AL3NGVRL.js} +62 -61
  114. package/dist/{extensions-KPZ2UHBB.js → extensions-MOVJ32NM.js} +7 -7
  115. package/dist/{fleet-IVTCKDHT.js → fleet-QZHUMAGI.js} +110 -108
  116. package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-BAYT5FJZ.js} +10 -10
  117. package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-IREVMRU4.js} +7 -6
  118. package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-YCTT3HTI.js} +19 -18
  119. package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-QVJTDAVB.js} +55 -54
  120. package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-25QAFPK4.js} +4 -4
  121. package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-5O57AAJ7.js} +23 -22
  122. package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-CPH2W2T6.js} +56 -55
  123. package/dist/{fleet-view-TWHJKCN6.js → fleet-view-SWBR3VGQ.js} +55 -54
  124. package/dist/{init-T2QORQ3Y.js → init-J477LKZH.js} +78 -76
  125. package/dist/{interop-IN5I2A66.js → interop-3FCM6XLG.js} +11 -11
  126. package/dist/{library-LSCATDLZ.js → library-QUQEIUG6.js} +28 -27
  127. package/dist/{memory-HYOKAGGJ.js → memory-SGGSEP65.js} +64 -63
  128. package/dist/{models-2GPMFYCM.js → models-HEKUAXXK.js} +49 -43
  129. package/dist/{monitor-E4ASVUJH.js → monitor-HKU57TYQ.js} +61 -60
  130. package/dist/{orchestrator-DDMPR3PY.js → orchestrator-VDFAEFAI.js} +919 -546
  131. package/dist/{panes-E3RUXOW5.js → panes-DN2SSFOH.js} +3 -3
  132. package/dist/{panes-IXKLOKA2.js → panes-TALGNPZT.js} +8 -8
  133. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  134. package/dist/reset-EAJFFJVB.js +344 -0
  135. package/dist/{resources-OTRSN34L.js → resources-OVKSEFVE.js} +27 -20
  136. package/dist/{run-5DEYH5QK.js → run-7DP7ZF2J.js} +113 -109
  137. package/dist/{share-IHWTLO3M.js → share-WML67FT3.js} +26 -25
  138. package/dist/{skills-IYMXMKW4.js → skills-SG662R2K.js} +39 -31
  139. package/dist/{skills-eval-DROHSJAR.js → skills-eval-VVZEUU46.js} +74 -73
  140. package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-I2E23GET.js} +21 -20
  141. package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-S7MBJDQK.js} +35 -34
  142. package/dist/{steer-Z5DO23FJ.js → steer-2LQOMCPB.js} +3 -3
  143. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  144. package/dist/{targets-P2FUC4IL.js → targets-4QC3HIEW.js} +48 -45
  145. package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-TUHIJ6Y2.js} +2 -2
  146. package/dist/{tools-5B7RO6MV.js → tools-TFGJICCU.js} +8 -8
  147. package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
  148. package/dist/uninstall-5PEVOE5B.js +408 -0
  149. package/dist/upgrade-M4WXY6KN.js +303 -0
  150. package/dist/{usage-ME5MPXGX.js → usage-N7ZNVLEM.js} +147 -102
  151. package/dist/{verifiers-BVZ7IWOO.js → verifiers-DJTP4XX6.js} +15 -15
  152. package/dist/{verify-5K7ZKQFC.js → verify-RWE4PPEK.js} +9 -9
  153. package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-C7IQOXSP.js} +84 -82
  154. package/dist/{with-panes-BYOJCLAM.js → with-panes-4GCGSL7J.js} +9 -9
  155. package/dist/worker/entry.js +61 -60
  156. package/docs/architecture/artifact-placement.md +1 -0
  157. package/docs/architecture/artifact-versions.md +1 -1
  158. package/docs/architecture/context-engine.md +4 -0
  159. package/docs/architecture/middleware-and-components.md +1 -1
  160. package/docs/architecture/model-catalog.md +21 -10
  161. package/docs/architecture/observability.md +12 -1
  162. package/docs/architecture/prompt-envelope-and-tools.md +2 -0
  163. package/docs/architecture/provider-adapter-cookbook.md +63 -0
  164. package/docs/architecture/safety-model.md +15 -5
  165. package/docs/guide/built-in-agents.md +17 -3
  166. package/docs/guide/commands-and-modes.md +1 -1
  167. package/docs/guide/configuration-and-targets.md +97 -9
  168. package/docs/guide/configuration-reference.md +7 -2
  169. package/docs/guide/environment-variables.md +2 -0
  170. package/docs/guide/installation-and-lifecycle.md +37 -4
  171. package/docs/guide/proactive-memory.md +66 -55
  172. package/docs/guide/skills-marketplace.md +18 -0
  173. package/docs/process/development-pipeline.md +34 -1
  174. package/docs/process/eval-runner.md +67 -3
  175. package/evals/behavioral-model.yaml +3 -2
  176. package/package.json +2 -2
  177. package/skills/README.md +7 -5
  178. package/skills/coding/ast-grep/SKILL.md +101 -30
  179. package/skills/coding/ast-grep/evals.md +26 -0
  180. package/skills/coding/coding-standards/SKILL.md +40 -5
  181. package/skills/coding/coding-standards/evals.md +23 -0
  182. package/skills/coding/prototype/SKILL.md +87 -28
  183. package/skills/coding/prototype/evals.md +19 -0
  184. package/skills/coding/tdd/SKILL.md +80 -53
  185. package/skills/coding/tdd/evals.md +20 -0
  186. package/skills/context/context-handoff/SKILL.md +43 -2
  187. package/skills/context/context-handoff/evals.md +44 -0
  188. package/skills/context/context-prime/SKILL.md +45 -15
  189. package/skills/context/context-prime/evals.md +45 -0
  190. package/skills/git/branch-closeout/SKILL.md +132 -0
  191. package/skills/git/branch-closeout/evals.md +133 -0
  192. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  193. package/skills/git/file-ticket/SKILL.md +77 -63
  194. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  195. package/skills/git/file-ticket/evals.md +31 -26
  196. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  197. package/skills/git/fix-issue/SKILL.md +87 -64
  198. package/skills/git/fix-issue/evals.md +35 -31
  199. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  200. package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
  201. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  202. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  203. package/skills/git/ship/SKILL.md +103 -67
  204. package/skills/git/ship/assets/pr-template.md +21 -0
  205. package/skills/git/ship/evals.md +44 -28
  206. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  207. package/skills/git/worktree-create/SKILL.md +80 -50
  208. package/skills/git/worktree-create/evals.md +40 -33
  209. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  210. package/skills/git/worktree-merge/SKILL.md +112 -65
  211. package/skills/git/worktree-merge/evals.md +42 -34
  212. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  213. package/skills/planning/archify/SKILL.md +196 -0
  214. package/skills/planning/archify/evals.md +65 -0
  215. package/skills/planning/architecture/SKILL.md +61 -12
  216. package/skills/planning/architecture/evals.md +65 -0
  217. package/skills/planning/backlog/SKILL.md +130 -14
  218. package/skills/planning/backlog/evals.md +142 -0
  219. package/skills/planning/prd/SKILL.md +46 -6
  220. package/skills/planning/prd/evals.md +54 -0
  221. package/skills/planning/product-intent/SKILL.md +57 -2
  222. package/skills/planning/product-intent/evals.md +70 -0
  223. package/skills/planning/tech-spec/SKILL.md +53 -2
  224. package/skills/planning/tech-spec/evals.md +73 -0
  225. package/skills/registry.yaml +58 -50
  226. package/skills/remote.yaml +13 -0
  227. package/skills/research/arxiv-literature/SKILL.md +76 -18
  228. package/skills/research/arxiv-literature/evals.md +50 -0
  229. package/skills/research/experiment-protocol/SKILL.md +20 -1
  230. package/skills/research/experiment-protocol/evals.md +23 -0
  231. package/skills/research/scientific-debugging/SKILL.md +23 -1
  232. package/skills/research/scientific-debugging/evals.md +18 -0
  233. package/skills/research/scientific-modernization/SKILL.md +26 -1
  234. package/skills/research/scientific-modernization/evals.md +27 -0
  235. package/skills/skill-marketplace.json +63 -28
  236. package/skills/workflow/cut-it/SKILL.md +65 -5
  237. package/skills/workflow/cut-it/evals.md +101 -0
  238. package/skills/workflow/design-council/SKILL.md +117 -27
  239. package/skills/workflow/design-council/evals.md +161 -0
  240. package/skills/workflow/grill-me/SKILL.md +86 -10
  241. package/skills/workflow/grill-me/evals.md +153 -0
  242. package/skills/workflow/workflow-distiller/SKILL.md +76 -17
  243. package/skills/workflow/workflow-distiller/evals.md +118 -0
  244. package/src/cli/configure-interop.ts +105 -13
  245. package/src/cli/configure-oauth.ts +57 -0
  246. package/src/cli/configure-onboarding.ts +980 -0
  247. package/src/cli/configure-target.ts +594 -0
  248. package/src/cli/configure.ts +1082 -528
  249. package/src/cli/context-map.ts +114 -0
  250. package/src/cli/context.ts +4 -0
  251. package/src/cli/index.ts +1 -0
  252. package/src/cli/lifecycle-presenter.ts +436 -0
  253. package/src/cli/models.ts +10 -2
  254. package/src/cli/modes/print.ts +5 -1
  255. package/src/cli/reset.ts +228 -106
  256. package/src/cli/run.ts +7 -2
  257. package/src/cli/select.ts +664 -0
  258. package/src/cli/skills.ts +9 -2
  259. package/src/cli/targets.ts +3 -0
  260. package/src/cli/uninstall.ts +233 -165
  261. package/src/cli/upgrade.ts +204 -149
  262. package/src/cli/usage.ts +86 -27
  263. package/src/cli/validate-model.ts +3 -3
  264. package/src/core/config.ts +56 -0
  265. package/src/core/external-diagnostic.ts +44 -0
  266. package/src/core/gateway-routing.ts +157 -0
  267. package/src/core/safe-exec.ts +17 -2
  268. package/src/core/skill-activation.ts +89 -2
  269. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  270. package/src/domains/agents/catalog.ts +1 -1
  271. package/src/domains/agents/result-contract.ts +70 -0
  272. package/src/domains/context/wiki/map-seed.ts +589 -0
  273. package/src/domains/context/wiki/plan.ts +2 -2
  274. package/src/domains/dispatch/admission.ts +29 -0
  275. package/src/domains/dispatch/agent-candidates.ts +10 -0
  276. package/src/domains/dispatch/budget-envelope.ts +86 -1
  277. package/src/domains/dispatch/capability-match.ts +1 -0
  278. package/src/domains/dispatch/capacity-lease.ts +17 -0
  279. package/src/domains/dispatch/contract.ts +11 -1
  280. package/src/domains/dispatch/extension.ts +134 -29
  281. package/src/domains/dispatch/types.ts +3 -0
  282. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  283. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  284. package/src/domains/eval/metrics/token-stream.ts +201 -31
  285. package/src/domains/eval/metrics/tracked.ts +40 -4
  286. package/src/domains/eval/runners/clio-run.ts +5 -2
  287. package/src/domains/eval/schema/suite.ts +28 -0
  288. package/src/domains/eval/schema/verdict.ts +2 -2
  289. package/src/domains/eval/suites/resolve.ts +13 -1
  290. package/src/domains/eval/suites/run.ts +24 -3
  291. package/src/domains/interop/registry.ts +6 -2
  292. package/src/domains/interop/types.ts +4 -0
  293. package/src/domains/lifecycle/migrations/index.ts +4 -0
  294. package/src/domains/memory/task-memory-policy.ts +70 -26
  295. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  296. package/src/domains/middleware/index.ts +0 -1
  297. package/src/domains/middleware/marketplace-offer.ts +3 -35
  298. package/src/domains/middleware/memory-intervention.ts +127 -32
  299. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  300. package/src/domains/middleware/skills-reminder.ts +31 -2
  301. package/src/domains/observability/compaction-usage.ts +118 -0
  302. package/src/domains/observability/cost.ts +1 -1
  303. package/src/domains/observability/extension.ts +6 -1
  304. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  305. package/src/domains/providers/contract.ts +4 -1
  306. package/src/domains/providers/extension.ts +40 -9
  307. package/src/domains/providers/model-capabilities.ts +9 -0
  308. package/src/domains/providers/model-discovery.ts +2 -0
  309. package/src/domains/providers/model-runtime-capabilities.ts +15 -5
  310. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +32 -12
  311. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  312. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  313. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  314. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  315. package/src/domains/providers/support.ts +11 -5
  316. package/src/domains/providers/target-model-cache.ts +25 -2
  317. package/src/domains/providers/types/capability-flags.ts +2 -0
  318. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  319. package/src/domains/providers/types/target-descriptor.ts +19 -0
  320. package/src/domains/resources/index.ts +3 -0
  321. package/src/domains/resources/skills/install.ts +72 -7
  322. package/src/domains/resources/skills/loader.ts +7 -0
  323. package/src/domains/resources/skills/marketplace.ts +63 -11
  324. package/src/domains/safety/autonomy.ts +15 -0
  325. package/src/domains/safety/index.ts +1 -0
  326. package/src/domains/safety/path-policy.ts +1 -1
  327. package/src/domains/safety/policy-engine.ts +34 -11
  328. package/src/domains/safety/protected-artifacts.ts +191 -88
  329. package/src/domains/safety/run-effects.ts +2 -22
  330. package/src/domains/safety/skill-authority.ts +55 -0
  331. package/src/domains/session/compaction/compact.ts +72 -22
  332. package/src/domains/session/entries.ts +6 -0
  333. package/src/domains/session/usage.ts +3 -3
  334. package/src/engine/agent.ts +13 -3
  335. package/src/engine/ai.ts +26 -8
  336. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  337. package/src/engine/api-registry.ts +3 -0
  338. package/src/engine/apis/openai-completions.ts +117 -14
  339. package/src/engine/external-subprocess.ts +114 -6
  340. package/src/entry/background-model-metadata.ts +18 -0
  341. package/src/entry/compaction-prompt.ts +57 -0
  342. package/src/entry/orchestrator.ts +405 -216
  343. package/src/entry/task-memory-lifecycle.ts +35 -0
  344. package/src/interactive/chat-loop-messages.ts +13 -4
  345. package/src/interactive/chat-loop.ts +65 -2
  346. package/src/interactive/chat-renderer.ts +1 -0
  347. package/src/interactive/cost-overlay.ts +26 -2
  348. package/src/interactive/interactive-slash-runtime.ts +2 -1
  349. package/src/interactive/renderers/worker-entry.ts +32 -0
  350. package/src/interactive/slash-commands.ts +24 -6
  351. package/src/interactive/theme/labels.ts +19 -13
  352. package/src/interactive/turn-context.ts +9 -5
  353. package/src/interactive/turn-recovery.ts +8 -0
  354. package/src/interactive/turn-runtime.ts +27 -11
  355. package/src/interactive/turn-state.ts +7 -0
  356. package/src/interactive/worker-receipts.ts +1 -0
  357. package/src/interactive/worker-stream.ts +6 -1
  358. package/src/tools/context/index.ts +30 -9
  359. package/src/tools/dispatch-arguments.ts +1 -0
  360. package/src/tools/dispatch-event-text.ts +10 -0
  361. package/src/tools/dispatch-plan.ts +1 -0
  362. package/src/tools/dispatch-runner.ts +12 -0
  363. package/src/tools/registry.ts +11 -5
  364. package/src/tools/worker-evidence.ts +3 -1
  365. package/src/worker/spec-contract.ts +4 -0
  366. package/dist/chunk-2Z2IKEXI.js +0 -1554
  367. package/dist/reset-OAQP3W4O.js +0 -230
  368. package/dist/uninstall-N34PCTGJ.js +0 -331
  369. package/dist/upgrade-PXK3S2YM.js +0 -325
@@ -1,230 +0,0 @@
1
- import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- removePath,
4
- reportRemovalFailures
5
- } from "./chunk-SVNXH4L2.js";
6
- import {
7
- initializeClioHome
8
- } from "./chunk-I7XBWTYH.js";
9
- import {
10
- terminalColumns,
11
- wrapPlain
12
- } from "./chunk-2IR2NMPA.js";
13
- import "./chunk-ZW55JB7N.js";
14
- import {
15
- printError,
16
- printHeader,
17
- printOk
18
- } from "./chunk-VPKWYKEY.js";
19
- import "./chunk-5TSRNF4G.js";
20
- import "./chunk-IWHMRKLL.js";
21
- import "./chunk-UXCU4E3T.js";
22
- import "./chunk-LL4KHSZI.js";
23
- import "./chunk-S66XZJOF.js";
24
- import "./chunk-WNP7O5WZ.js";
25
- import "./chunk-336NSSKI.js";
26
- import "./chunk-IKCO5N3L.js";
27
- import "./chunk-3I7MS7N2.js";
28
- import "./chunk-APJ265NV.js";
29
- import {
30
- resetXdgCache,
31
- resolveClioDirs
32
- } from "./chunk-BYP5D4HI.js";
33
- import "./chunk-WEPFGWHJ.js";
34
- import "./chunk-YXLYO42X.js";
35
- import {
36
- init_esm_shims
37
- } from "./chunk-3R73A4XB.js";
38
-
39
- // src/cli/reset.ts
40
- init_esm_shims();
41
- import { existsSync, readdirSync } from "node:fs";
42
- import { join } from "node:path";
43
- var HELP = `clio-coder reset [--state|--data|--cache|--auth|--config|--all] [--dry-run] [--force]
44
-
45
- Recover or wipe Clio Coder state while keeping the clio binary installed.
46
- Each level clears exactly the root (or file) it names and nothing else.
47
-
48
- Levels (combinable except --all):
49
- --state state root only (default). Holds every session transcript, so a
50
- reset is the end of resume, /view, and the audit behind them.
51
- --data data root only: memory, evidence, evals, vendored tools (durable products)
52
- --cache cache root only
53
- --auth credentials.yaml only
54
- --config settings.yaml only
55
- --all all four roots: config, data, state, and cache
56
-
57
- Every run reads each selected root and lists what is inside it before removing
58
- anything, so what a level covers is read off that listing rather than off this
59
- text. --dry-run prints the same listing and changes nothing.
60
-
61
- Safety:
62
- --force required for destructive execution
63
- --dry-run print what would be reset without changing anything
64
- `;
65
- var ROOT_NOTES = {
66
- state: "the state root holds every session transcript and the audit trail beside it; resume and /view lose their history",
67
- // Vendored tools are named because they are the one durable product a reset
68
- // cannot regenerate from anything local: getting them back is a download.
69
- data: "the data root holds durable products (memory, evidence, evals, and any vendored external tools, which a reinstall re-downloads)"
70
- };
71
- function parseResetArgs(argv) {
72
- const parsed = {
73
- state: false,
74
- data: false,
75
- cache: false,
76
- auth: false,
77
- config: false,
78
- all: false,
79
- force: false,
80
- dryRun: false,
81
- help: false
82
- };
83
- for (const arg of argv) {
84
- switch (arg) {
85
- case "--state":
86
- parsed.state = true;
87
- break;
88
- case "--data":
89
- parsed.data = true;
90
- break;
91
- case "--cache":
92
- parsed.cache = true;
93
- break;
94
- case "--auth":
95
- parsed.auth = true;
96
- break;
97
- case "--config":
98
- parsed.config = true;
99
- break;
100
- case "--all":
101
- parsed.all = true;
102
- break;
103
- case "--force":
104
- case "-f":
105
- parsed.force = true;
106
- break;
107
- case "--dry-run":
108
- parsed.dryRun = true;
109
- break;
110
- case "--help":
111
- case "-h":
112
- parsed.help = true;
113
- break;
114
- default:
115
- throw new Error(`unknown flag: ${arg}`);
116
- }
117
- }
118
- const levels = [parsed.state, parsed.data, parsed.cache, parsed.auth, parsed.config];
119
- if (!parsed.help && parsed.all && levels.some(Boolean)) {
120
- throw new Error("--all cannot be combined with --state, --data, --cache, --auth, or --config");
121
- }
122
- if (!parsed.help && !parsed.all && !levels.some(Boolean)) {
123
- parsed.state = true;
124
- }
125
- return parsed;
126
- }
127
- function report(label, path) {
128
- process.stdout.write(` ${label.padEnd(12)} ${path}${existsSync(path) ? "" : " (absent)"}
129
- `);
130
- }
131
- function rootContents(path) {
132
- let entries;
133
- try {
134
- entries = readdirSync(path, { withFileTypes: true });
135
- } catch {
136
- return [];
137
- }
138
- return entries.map((entry) => {
139
- if (!entry.isDirectory()) return entry.name;
140
- let count;
141
- try {
142
- count = readdirSync(join(path, entry.name)).length;
143
- } catch {
144
- return `${entry.name}/`;
145
- }
146
- return `${entry.name}/ (${count})`;
147
- }).sort((left, right) => left.localeCompare(right));
148
- }
149
- function writeIndented(text, indent) {
150
- const [first = "", ...rest] = wrapPlain(text, Math.max(20, terminalColumns() - indent), indent);
151
- process.stdout.write(`${" ".repeat(indent)}${first}
152
- `);
153
- for (const line of rest) process.stdout.write(`${line}
154
- `);
155
- }
156
- function resetInvocation(args) {
157
- const levels = [
158
- ["all", args.all],
159
- ["config", args.config],
160
- ["auth", args.auth],
161
- ["data", args.data],
162
- ["state", args.state],
163
- ["cache", args.cache]
164
- ].filter(([, on]) => on).map(([name]) => `--${name}`);
165
- return `clio-coder reset ${levels.join(" ")} --force`;
166
- }
167
- function runResetCommand(argv) {
168
- let args;
169
- try {
170
- args = parseResetArgs(argv);
171
- } catch (error) {
172
- printError(error instanceof Error ? error.message : String(error));
173
- process.stdout.write(HELP);
174
- return 2;
175
- }
176
- if (args.help) {
177
- process.stdout.write(HELP);
178
- return 0;
179
- }
180
- if (!args.dryRun && !args.force) {
181
- printError("`clio-coder reset` requires --force unless you are using --dry-run");
182
- process.stdout.write(HELP);
183
- return 2;
184
- }
185
- const dirs = resolveClioDirs();
186
- const settingsPath = join(dirs.config, "settings.yaml");
187
- const credentialsPath = join(dirs.config, "credentials.yaml");
188
- printHeader("Clio Coder reset");
189
- const selected = args.all ? [
190
- { label: "config", path: dirs.config },
191
- { label: "data", path: dirs.data },
192
- { label: "state", path: dirs.state },
193
- { label: "cache", path: dirs.cache }
194
- ] : [
195
- ...args.config ? [{ label: "settings", path: settingsPath }] : [],
196
- ...args.auth ? [{ label: "credentials", path: credentialsPath }] : [],
197
- ...args.data ? [{ label: "data", path: dirs.data }] : [],
198
- ...args.state ? [{ label: "state", path: dirs.state }] : [],
199
- ...args.cache ? [{ label: "cache", path: dirs.cache }] : []
200
- ];
201
- for (const entry of selected) {
202
- report(entry.label, entry.path);
203
- const contents = rootContents(entry.path);
204
- if (contents.length > 0) writeIndented(contents.join(", "), 4);
205
- const note = ROOT_NOTES[entry.label];
206
- if (note) writeIndented(`note: ${note}`, 2);
207
- }
208
- const failures = [];
209
- for (const entry of selected) {
210
- const failure = removePath(entry.label, entry.path, args.dryRun);
211
- if (failure) failures.push(failure);
212
- }
213
- resetXdgCache();
214
- if (!args.dryRun) initializeClioHome();
215
- if (failures.length > 0) {
216
- printError("reset did not remove everything");
217
- reportRemovalFailures(resetInvocation(args), failures);
218
- return 1;
219
- }
220
- if (args.dryRun) {
221
- printOk(args.all ? "reset --all preview complete" : "reset preview complete");
222
- } else {
223
- printOk(args.all ? "reset config, data, state, and cache" : "reset complete");
224
- }
225
- return 0;
226
- }
227
- export {
228
- runResetCommand
229
- };
230
- //# sourceMappingURL=reset-OAQP3W4O.js.map
@@ -1,331 +0,0 @@
1
- import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- removePath,
4
- reportRemovalFailures
5
- } from "./chunk-SVNXH4L2.js";
6
- import "./chunk-ZW55JB7N.js";
7
- import {
8
- printError,
9
- printHeader,
10
- printOk
11
- } from "./chunk-VPKWYKEY.js";
12
- import "./chunk-5TSRNF4G.js";
13
- import {
14
- resolvePackageRoot
15
- } from "./chunk-IWHMRKLL.js";
16
- import "./chunk-WNP7O5WZ.js";
17
- import "./chunk-336NSSKI.js";
18
- import "./chunk-IKCO5N3L.js";
19
- import "./chunk-3I7MS7N2.js";
20
- import "./chunk-APJ265NV.js";
21
- import {
22
- resetXdgCache,
23
- resolveClioDirs
24
- } from "./chunk-BYP5D4HI.js";
25
- import "./chunk-WEPFGWHJ.js";
26
- import "./chunk-YXLYO42X.js";
27
- import {
28
- init_esm_shims
29
- } from "./chunk-3R73A4XB.js";
30
-
31
- // src/cli/uninstall.ts
32
- init_esm_shims();
33
- import { spawnSync } from "node:child_process";
34
- import { existsSync, lstatSync, readdirSync, readFileSync, readlinkSync, realpathSync } from "node:fs";
35
- import { homedir } from "node:os";
36
- import { delimiter, dirname, isAbsolute, join, resolve, sep } from "node:path";
37
- var HELP = `clio-coder uninstall [--remove-binary] [--dry-run] [--force]
38
-
39
- Remove all Clio Coder state: the config, data, state, and cache roots.
40
-
41
- Per-project \`.clio-coder/\` directories are outside those roots and are never removed
42
- here. Every project Clio has run in is recorded in the session metadata, so both
43
- the real run and --dry-run list them and name the command that clears one,
44
- before the launcher is touched.
45
-
46
- Flags:
47
- --remove-binary also remove the launcher symlink when it points at this
48
- installation. A real file, or a link into a different clio-coder
49
- installation, is kept and reported.
50
- --dry-run print what would be removed without changing anything
51
- --force required for destructive execution
52
- `;
53
- function parseUninstallArgs(argv) {
54
- const parsed = {
55
- removeBinary: false,
56
- force: false,
57
- dryRun: false,
58
- help: false
59
- };
60
- for (const arg of argv) {
61
- switch (arg) {
62
- case "--remove-binary":
63
- parsed.removeBinary = true;
64
- break;
65
- case "--force":
66
- case "-f":
67
- parsed.force = true;
68
- break;
69
- case "--dry-run":
70
- parsed.dryRun = true;
71
- break;
72
- case "--help":
73
- case "-h":
74
- parsed.help = true;
75
- break;
76
- default:
77
- throw new Error(`unknown flag: ${arg}`);
78
- }
79
- }
80
- return parsed;
81
- }
82
- function report(label, path) {
83
- process.stdout.write(` ${label.padEnd(8)} remove ${path}${existsSync(path) ? "" : " (absent)"}
84
- `);
85
- }
86
- function projectContextInventory(stateDir) {
87
- const root = join(stateDir, "sessions");
88
- let hashes;
89
- try {
90
- hashes = readdirSync(root);
91
- } catch {
92
- return { recorded: 0, dirs: [], storeAbsent: true };
93
- }
94
- const dirs = /* @__PURE__ */ new Set();
95
- let recorded = 0;
96
- for (const hash of hashes.sort()) {
97
- const cwd = firstRecordedCwd(join(root, hash));
98
- if (cwd === null) continue;
99
- recorded += 1;
100
- if (existsSync(join(cwd, ".clio-coder"))) dirs.add(cwd);
101
- }
102
- return { recorded, dirs: [...dirs].sort(), storeAbsent: false };
103
- }
104
- function firstRecordedCwd(hashDir) {
105
- let sessions;
106
- try {
107
- sessions = readdirSync(hashDir);
108
- } catch {
109
- return null;
110
- }
111
- for (const session of sessions.sort()) {
112
- try {
113
- const meta = JSON.parse(readFileSync(join(hashDir, session, "meta.json"), "utf8"));
114
- if (typeof meta.cwd === "string" && meta.cwd.length > 0) return meta.cwd;
115
- } catch {
116
- }
117
- }
118
- return null;
119
- }
120
- function reportProjectContext(inventory, removeBinary) {
121
- process.stdout.write("\nPer-project context (not removed by uninstall):\n");
122
- if (inventory.storeAbsent) {
123
- process.stdout.write(" no session store to read; any .clio-coder/ directories must be found by hand\n");
124
- return;
125
- }
126
- if (inventory.dirs.length === 0) {
127
- process.stdout.write(
128
- ` none: ${inventory.recorded} project director${inventory.recorded === 1 ? "y" : "ies"} recorded, none still has a .clio-coder/
129
- `
130
- );
131
- return;
132
- }
133
- for (const dir of inventory.dirs) process.stdout.write(` ${join(dir, ".clio-coder")}
134
- `);
135
- process.stdout.write(
136
- removeBinary ? "\nThis run also removes the launcher. Clear each one from inside it first, then re-run:\n" : "\nClear each one from inside it, while clio still runs:\n"
137
- );
138
- process.stdout.write(" clio-coder context reset --all\n\n");
139
- }
140
- function launcherLinkPath() {
141
- const binDir = process.env.CLIO_CODER_BIN_DIR?.trim() || join(homedir(), ".local", "bin");
142
- return join(binDir, "clio-coder");
143
- }
144
- function ownedCliEntry() {
145
- const entry = join(resolvePackageRoot(), "dist", "cli", "index.js");
146
- try {
147
- return realpathSync(entry);
148
- } catch {
149
- return entry;
150
- }
151
- }
152
- function classifyLauncher(linkPath) {
153
- let isSymlink;
154
- try {
155
- isSymlink = lstatSync(linkPath).isSymbolicLink();
156
- } catch {
157
- return { kind: "absent" };
158
- }
159
- if (!isSymlink) {
160
- return { kind: "keep", detail: "not a symlink; remove it via your package manager" };
161
- }
162
- const owned = ownedCliEntry();
163
- let resolved = null;
164
- try {
165
- resolved = realpathSync(linkPath);
166
- } catch {
167
- resolved = null;
168
- }
169
- if (resolved !== null) {
170
- if (resolved === owned) return { kind: "remove", detail: `-> ${resolved}` };
171
- return {
172
- kind: "keep",
173
- detail: `points at ${resolved}, not this installation (${owned}); remove it with \`rm ${linkPath}\``
174
- };
175
- }
176
- const raw = readlinkSync(linkPath);
177
- const danglingTarget = isAbsolute(raw) ? raw : resolve(dirname(linkPath), raw);
178
- if (danglingTarget.endsWith(join(sep, "dist", "cli", "index.js"))) {
179
- return { kind: "remove", detail: `-> ${danglingTarget} (dangling; that installation is already gone)` };
180
- }
181
- return {
182
- kind: "keep",
183
- detail: `dangling link to ${danglingTarget}, which is not a clio entry; remove it with \`rm ${linkPath}\``
184
- };
185
- }
186
- function removeLauncher(dryRun) {
187
- const linkPath = launcherLinkPath();
188
- const verdict = classifyLauncher(linkPath);
189
- if (verdict.kind === "absent") {
190
- process.stdout.write(` binary absent ${linkPath}
191
- `);
192
- return null;
193
- }
194
- if (verdict.kind === "keep") {
195
- process.stdout.write(` binary keep ${linkPath} (${verdict.detail})
196
- `);
197
- return null;
198
- }
199
- process.stdout.write(` binary remove ${linkPath} ${verdict.detail}
200
- `);
201
- return removePath("binary", linkPath, dryRun);
202
- }
203
- function findClioOnPath() {
204
- const names = process.platform === "win32" ? ["clio-coder.cmd", "clio-coder.ps1", "clio-coder.exe", "clio-coder"] : ["clio-coder"];
205
- for (const dir of (process.env.PATH ?? "").split(delimiter)) {
206
- if (!dir) continue;
207
- for (const name of names) {
208
- const candidate = join(dir, name);
209
- if (existsSync(candidate)) return candidate;
210
- }
211
- }
212
- return null;
213
- }
214
- function readNpmPrefix() {
215
- try {
216
- const result = spawnSync("npm", ["config", "get", "prefix"], {
217
- encoding: "utf8",
218
- timeout: 5e3,
219
- stdio: ["ignore", "pipe", "ignore"],
220
- // A read-only probe that writes. npm drops a debug log into
221
- // $HOME/.npm/_logs on every invocation, so the documented
222
- // side-effect-free `--dry-run` path left a file behind in the home
223
- // directory it had just finished promising not to touch. `logs-max=0`
224
- // keeps npm from retaining any; the notifier is off for the same reason.
225
- env: { ...process.env, npm_config_logs_max: "0", npm_config_update_notifier: "false" }
226
- });
227
- if (result.status !== 0) return null;
228
- const prefix = result.stdout.trim();
229
- return prefix.length > 0 ? prefix : null;
230
- } catch {
231
- return null;
232
- }
233
- }
234
- function otherClioOnPath(pathClio, localLink) {
235
- if (pathClio === null) return null;
236
- if (pathClio === localLink) return null;
237
- const resolve2 = (path) => {
238
- try {
239
- return realpathSync(path);
240
- } catch {
241
- return null;
242
- }
243
- };
244
- const resolvedPathClio = resolve2(pathClio);
245
- if (resolvedPathClio !== null && resolvedPathClio === resolve2(localLink)) return null;
246
- return pathClio;
247
- }
248
- function printRemovalGuidance(removeBinaryRequested) {
249
- const pathClio = findClioOnPath();
250
- const npmPrefix = readNpmPrefix();
251
- const localLink = launcherLinkPath();
252
- const currentLauncher = process.argv[1];
253
- process.stdout.write("\nBinary removal guidance:\n");
254
- if (currentLauncher) process.stdout.write(` current launcher: ${currentLauncher}
255
- `);
256
- process.stdout.write(` PATH lookup: ${pathClio ?? "not currently found"}
257
- `);
258
- if (npmPrefix) process.stdout.write(` npm prefix bin: ${join(npmPrefix, "bin")}
259
- `);
260
- process.stdout.write(` local source bin: ${localLink}${existsSync(localLink) ? "" : " (absent)"}
261
- `);
262
- const survivor = otherClioOnPath(pathClio, localLink);
263
- if (survivor !== null) {
264
- process.stdout.write(`
265
- another clio-coder remains on your PATH at ${survivor}
266
- `);
267
- process.stdout.write(" it is a different installation from the one this uninstall touched\n");
268
- process.stdout.write(` check it with: ${survivor} --version
269
- `);
270
- }
271
- process.stdout.write("\nUse the removal path that matches how you installed Clio Coder:\n");
272
- if (!removeBinaryRequested) {
273
- process.stdout.write(" source symlink: clio-coder uninstall --remove-binary --force\n");
274
- }
275
- process.stdout.write(" npm global: npm uninstall -g @iowarp/clio-coder\n");
276
- process.stdout.write(" npm link: npm unlink -g @iowarp/clio-coder\n");
277
- process.stdout.write("\nAfter removing or replacing a clio-coder link, clear shell command caches:\n");
278
- process.stdout.write(" hash -r # Bash\n");
279
- process.stdout.write(" rehash # Zsh\n");
280
- }
281
- function runUninstallCommand(argv) {
282
- let args;
283
- try {
284
- args = parseUninstallArgs(argv);
285
- } catch (error) {
286
- printError(error instanceof Error ? error.message : String(error));
287
- process.stdout.write(HELP);
288
- return 2;
289
- }
290
- if (args.help) {
291
- process.stdout.write(HELP);
292
- return 0;
293
- }
294
- if (!args.dryRun && !args.force) {
295
- printError("`clio-coder uninstall` requires --force unless you are using --dry-run");
296
- process.stdout.write(HELP);
297
- return 2;
298
- }
299
- const dirs = resolveClioDirs();
300
- printHeader("Clio Coder uninstall");
301
- const roots = [
302
- ["config", dirs.config],
303
- ["data", dirs.data],
304
- ["state", dirs.state],
305
- ["cache", dirs.cache]
306
- ];
307
- for (const [label, path] of roots) report(label, path);
308
- reportProjectContext(projectContextInventory(dirs.state), args.removeBinary);
309
- const failures = [];
310
- for (const [label, path] of roots) {
311
- const failure = removePath(label, path, args.dryRun);
312
- if (failure) failures.push(failure);
313
- }
314
- if (args.removeBinary) {
315
- const failure = removeLauncher(args.dryRun);
316
- if (failure) failures.push(failure);
317
- }
318
- resetXdgCache();
319
- if (failures.length > 0) {
320
- printError("uninstall did not remove everything");
321
- reportRemovalFailures(`clio-coder uninstall${args.removeBinary ? " --remove-binary" : ""} --force`, failures);
322
- return 1;
323
- }
324
- printOk(args.dryRun ? "uninstall preview complete" : "removed Clio Coder state");
325
- printRemovalGuidance(args.removeBinary);
326
- return 0;
327
- }
328
- export {
329
- runUninstallCommand
330
- };
331
- //# sourceMappingURL=uninstall-N34PCTGJ.js.map