@claudiolabs/claudio 0.1.9

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 (415) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +311 -0
  3. package/bin/claudio +96 -0
  4. package/dist/chunks/AgentTool-0.1.9-e26h2f7z.mjs +1 -0
  5. package/dist/chunks/App-0.1.9-7ttp2eny.mjs +1 -0
  6. package/dist/chunks/ApproveApiKey-0.1.9-pz0jzna9.mjs +1 -0
  7. package/dist/chunks/AssistantSessionChooser-0.1.9-r5wg1yfv.mjs +1 -0
  8. package/dist/chunks/AutoModeOptInDialog-0.1.9-nbnjg2tp.mjs +1 -0
  9. package/dist/chunks/BypassPermissionsModeDialog-0.1.9-wjg6qps3.mjs +1 -0
  10. package/dist/chunks/ClaudeInChromeOnboarding-0.1.9-h46b49p8.mjs +1 -0
  11. package/dist/chunks/ClaudeMdExternalIncludesDialog-0.1.9-b8em430v.mjs +1 -0
  12. package/dist/chunks/ConsoleOAuthFlow-0.1.9-zb1h6dvy.mjs +1 -0
  13. package/dist/chunks/DiffDialog-0.1.9-09s28v8e.mjs +3 -0
  14. package/dist/chunks/Doctor-0.1.9-9ak6wqtr.mjs +1 -0
  15. package/dist/chunks/Grove-0.1.9-rbrf13rd.mjs +1 -0
  16. package/dist/chunks/ITermBackend-0.1.9-8dgw249h.mjs +1 -0
  17. package/dist/chunks/InProcessTransport-0.1.9-5cp1e7x7.mjs +1 -0
  18. package/dist/chunks/InvalidConfigDialog-0.1.9-6mv9wgt8.mjs +1 -0
  19. package/dist/chunks/InvalidSettingsDialog-0.1.9-d5kkd4yd.mjs +1 -0
  20. package/dist/chunks/MigrationDialog-0.1.9-56807wps.mjs +1 -0
  21. package/dist/chunks/Onboarding-0.1.9-g5nqdh1r.mjs +1 -0
  22. package/dist/chunks/ProviderManager-0.1.9-kj6t8003.mjs +1 -0
  23. package/dist/chunks/REPL-0.1.9-3h2fc9z7.mjs +1 -0
  24. package/dist/chunks/ResumeConversation-0.1.9-k4gv6dx4.mjs +1 -0
  25. package/dist/chunks/SnapshotUpdateDialog-0.1.9-v3h7drc0.mjs +1 -0
  26. package/dist/chunks/StartupScreen-0.1.9-jgk08xvj.mjs +1 -0
  27. package/dist/chunks/TeleportProgress-0.1.9-pnqkmgap.mjs +1 -0
  28. package/dist/chunks/TeleportRepoMismatchDialog-0.1.9-ddtmy43v.mjs +1 -0
  29. package/dist/chunks/TeleportResumeWrapper-0.1.9-vhnyx04e.mjs +1 -0
  30. package/dist/chunks/TmuxBackend-0.1.9-nb2ks1np.mjs +9 -0
  31. package/dist/chunks/ToolSearchTool-0.1.9-n40whaty.mjs +1 -0
  32. package/dist/chunks/TrustDialog-0.1.9-dm2wppgy.mjs +1 -0
  33. package/dist/chunks/activeProvider-0.1.9-kbwwatt3.mjs +1 -0
  34. package/dist/chunks/add-dir-0.1.9-ed53zp9j.mjs +1 -0
  35. package/dist/chunks/agents-0.1.9-4gwb1qtc.mjs +111 -0
  36. package/dist/chunks/agents-0.1.9-yr85gwa8.mjs +3 -0
  37. package/dist/chunks/api-0.1.9-kqwfw6wj.mjs +1 -0
  38. package/dist/chunks/asciicast-0.1.9-ekvsjx76.mjs +1 -0
  39. package/dist/chunks/assistant-0.1.9-h4rgf0xq.mjs +1 -0
  40. package/dist/chunks/auth-0.1.9-1c12xrxs.mjs +1 -0
  41. package/dist/chunks/auth-0.1.9-rqfx3vqa.mjs +1 -0
  42. package/dist/chunks/autoMode-0.1.9-s92asycq.mjs +48 -0
  43. package/dist/chunks/backgroundHousekeeping-0.1.9-jjbqckpm.mjs +1 -0
  44. package/dist/chunks/branch-0.1.9-m7j2aerq.mjs +4 -0
  45. package/dist/chunks/bridgePointer-0.1.9-rv3aq23v.mjs +1 -0
  46. package/dist/chunks/btw-0.1.9-g55x31zp.mjs +1 -0
  47. package/dist/chunks/buddy-0.1.9-fqmk7e4y.mjs +3 -0
  48. package/dist/chunks/cacache-0.1.9-dr1vt8s1.mjs +1 -0
  49. package/dist/chunks/cache-probe-0.1.9-ydmjrch4.mjs +21 -0
  50. package/dist/chunks/cacheStats-0.1.9-pkarrnw9.mjs +4 -0
  51. package/dist/chunks/caches-0.1.9-d6cndrra.mjs +1 -0
  52. package/dist/chunks/chrome-0.1.9-bvwzw157.mjs +1 -0
  53. package/dist/chunks/chromeNativeHost-0.1.9-8a20nscz.mjs +2 -0
  54. package/dist/chunks/claude-for-chrome-mcp-0.1.9-ndknjd3g.mjs +1 -0
  55. package/dist/chunks/claudeDesktop-0.1.9-7xprztbk.mjs +1 -0
  56. package/dist/chunks/claudemd-0.1.9-dqyhgy2v.mjs +1 -0
  57. package/dist/chunks/clear-0.1.9-tb8x7676.mjs +1 -0
  58. package/dist/chunks/cli-0.1.9-001s9kxw.mjs +24 -0
  59. package/dist/chunks/cli-0.1.9-03e1d9dw.mjs +39 -0
  60. package/dist/chunks/cli-0.1.9-04ez73f7.mjs +5084 -0
  61. package/dist/chunks/cli-0.1.9-0dtdhejj.mjs +31 -0
  62. package/dist/chunks/cli-0.1.9-0e6nsh68.mjs +3 -0
  63. package/dist/chunks/cli-0.1.9-0j8n671q.mjs +2 -0
  64. package/dist/chunks/cli-0.1.9-15y0qt1z.mjs +2 -0
  65. package/dist/chunks/cli-0.1.9-1c3qpbdh.mjs +2 -0
  66. package/dist/chunks/cli-0.1.9-1f5gmndb.mjs +2 -0
  67. package/dist/chunks/cli-0.1.9-1ghbcafn.mjs +2 -0
  68. package/dist/chunks/cli-0.1.9-1kaj4v6k.mjs +2 -0
  69. package/dist/chunks/cli-0.1.9-1xmdqqzd.mjs +3 -0
  70. package/dist/chunks/cli-0.1.9-263y2rkc.mjs +3 -0
  71. package/dist/chunks/cli-0.1.9-2dd7h0hn.mjs +15 -0
  72. package/dist/chunks/cli-0.1.9-2prq7peb.mjs +2 -0
  73. package/dist/chunks/cli-0.1.9-2tc83tsz.mjs +2 -0
  74. package/dist/chunks/cli-0.1.9-2thp2z73.mjs +2 -0
  75. package/dist/chunks/cli-0.1.9-2v0y90vz.mjs +2 -0
  76. package/dist/chunks/cli-0.1.9-2v4s8yf9.mjs +7 -0
  77. package/dist/chunks/cli-0.1.9-2x18rhq6.mjs +6 -0
  78. package/dist/chunks/cli-0.1.9-38zb09vp.mjs +2 -0
  79. package/dist/chunks/cli-0.1.9-3g3er8j1.mjs +15 -0
  80. package/dist/chunks/cli-0.1.9-3h4serkj.mjs +58 -0
  81. package/dist/chunks/cli-0.1.9-3rhe87kw.mjs +2 -0
  82. package/dist/chunks/cli-0.1.9-3vfq7jja.mjs +34 -0
  83. package/dist/chunks/cli-0.1.9-3wmbdmrp.mjs +2 -0
  84. package/dist/chunks/cli-0.1.9-3y36913h.mjs +10 -0
  85. package/dist/chunks/cli-0.1.9-3yscrq86.mjs +833 -0
  86. package/dist/chunks/cli-0.1.9-45ggwszg.mjs +2 -0
  87. package/dist/chunks/cli-0.1.9-4a9qwf11.mjs +2 -0
  88. package/dist/chunks/cli-0.1.9-4bg6jxs8.mjs +2 -0
  89. package/dist/chunks/cli-0.1.9-4kk9fmg2.mjs +2 -0
  90. package/dist/chunks/cli-0.1.9-4n4dqg6k.mjs +2 -0
  91. package/dist/chunks/cli-0.1.9-4sqfjw8t.mjs +16 -0
  92. package/dist/chunks/cli-0.1.9-4vmbyj20.mjs +2 -0
  93. package/dist/chunks/cli-0.1.9-4vt296k0.mjs +18 -0
  94. package/dist/chunks/cli-0.1.9-5ryrgdzg.mjs +2 -0
  95. package/dist/chunks/cli-0.1.9-5vgk7wf7.mjs +2 -0
  96. package/dist/chunks/cli-0.1.9-5ygmjsje.mjs +2 -0
  97. package/dist/chunks/cli-0.1.9-5ypg3t0t.mjs +2 -0
  98. package/dist/chunks/cli-0.1.9-5zhhyq4q.mjs +2 -0
  99. package/dist/chunks/cli-0.1.9-61ywjha3.mjs +2 -0
  100. package/dist/chunks/cli-0.1.9-68vwvmkw.mjs +2 -0
  101. package/dist/chunks/cli-0.1.9-6c7qrr4p.mjs +16 -0
  102. package/dist/chunks/cli-0.1.9-6gk46nr9.mjs +2 -0
  103. package/dist/chunks/cli-0.1.9-6j5gxw5r.mjs +5 -0
  104. package/dist/chunks/cli-0.1.9-6ne451jc.mjs +2 -0
  105. package/dist/chunks/cli-0.1.9-6p67vwxh.mjs +2 -0
  106. package/dist/chunks/cli-0.1.9-6pcahrj9.mjs +2 -0
  107. package/dist/chunks/cli-0.1.9-7047sjwh.mjs +2 -0
  108. package/dist/chunks/cli-0.1.9-7bakxr5q.mjs +3 -0
  109. package/dist/chunks/cli-0.1.9-7bthhhpf.mjs +2 -0
  110. package/dist/chunks/cli-0.1.9-7fp0smtp.mjs +2 -0
  111. package/dist/chunks/cli-0.1.9-7ftnjyps.mjs +2 -0
  112. package/dist/chunks/cli-0.1.9-7h5my4fb.mjs +2 -0
  113. package/dist/chunks/cli-0.1.9-7kcaaxvq.mjs +12 -0
  114. package/dist/chunks/cli-0.1.9-7q9461ka.mjs +2 -0
  115. package/dist/chunks/cli-0.1.9-7qhatm3v.mjs +2 -0
  116. package/dist/chunks/cli-0.1.9-86kws2c7.mjs +192 -0
  117. package/dist/chunks/cli-0.1.9-8egwvs85.mjs +2 -0
  118. package/dist/chunks/cli-0.1.9-90h21nv5.mjs +2 -0
  119. package/dist/chunks/cli-0.1.9-9d4sp76k.mjs +2 -0
  120. package/dist/chunks/cli-0.1.9-9hc8gyb7.mjs +2 -0
  121. package/dist/chunks/cli-0.1.9-9nhh15bp.mjs +2 -0
  122. package/dist/chunks/cli-0.1.9-9vab0er5.mjs +2 -0
  123. package/dist/chunks/cli-0.1.9-9vn4ys3c.mjs +22 -0
  124. package/dist/chunks/cli-0.1.9-a1gtww1d.mjs +2 -0
  125. package/dist/chunks/cli-0.1.9-a7zy4vqn.mjs +134 -0
  126. package/dist/chunks/cli-0.1.9-a95nqhbd.mjs +4 -0
  127. package/dist/chunks/cli-0.1.9-ag6a8kqj.mjs +2 -0
  128. package/dist/chunks/cli-0.1.9-ak0b9xfs.mjs +100 -0
  129. package/dist/chunks/cli-0.1.9-aqd7czgr.mjs +3 -0
  130. package/dist/chunks/cli-0.1.9-axg1kbe4.mjs +2 -0
  131. package/dist/chunks/cli-0.1.9-aype6q4y.mjs +2 -0
  132. package/dist/chunks/cli-0.1.9-b3031hmy.mjs +2 -0
  133. package/dist/chunks/cli-0.1.9-b6zp931m.mjs +11 -0
  134. package/dist/chunks/cli-0.1.9-b73n8vzm.mjs +2 -0
  135. package/dist/chunks/cli-0.1.9-b9kbpf6n.mjs +2 -0
  136. package/dist/chunks/cli-0.1.9-bg9xvmav.mjs +2 -0
  137. package/dist/chunks/cli-0.1.9-bn43vpc0.mjs +2 -0
  138. package/dist/chunks/cli-0.1.9-br9jzagb.mjs +2 -0
  139. package/dist/chunks/cli-0.1.9-c2fjeq7k.mjs +2 -0
  140. package/dist/chunks/cli-0.1.9-c38eyh49.mjs +2 -0
  141. package/dist/chunks/cli-0.1.9-cfzmq9k6.mjs +2 -0
  142. package/dist/chunks/cli-0.1.9-cvnkghgh.mjs +3 -0
  143. package/dist/chunks/cli-0.1.9-dmcbsmj4.mjs +2 -0
  144. package/dist/chunks/cli-0.1.9-dsx18zt1.mjs +2 -0
  145. package/dist/chunks/cli-0.1.9-dt31fs16.mjs +2 -0
  146. package/dist/chunks/cli-0.1.9-dzz1me99.mjs +2 -0
  147. package/dist/chunks/cli-0.1.9-e7ewtpew.mjs +2 -0
  148. package/dist/chunks/cli-0.1.9-e96x59hw.mjs +2 -0
  149. package/dist/chunks/cli-0.1.9-ehhkqhbv.mjs +2 -0
  150. package/dist/chunks/cli-0.1.9-eqxc9zxm.mjs +12 -0
  151. package/dist/chunks/cli-0.1.9-ewq9k9mr.mjs +2 -0
  152. package/dist/chunks/cli-0.1.9-ewwxqbvt.mjs +2 -0
  153. package/dist/chunks/cli-0.1.9-f4v4pahc.mjs +4 -0
  154. package/dist/chunks/cli-0.1.9-f643fvt4.mjs +2 -0
  155. package/dist/chunks/cli-0.1.9-f8ga1n8r.mjs +6 -0
  156. package/dist/chunks/cli-0.1.9-fcf313e7.mjs +2 -0
  157. package/dist/chunks/cli-0.1.9-fh5enjw8.mjs +5 -0
  158. package/dist/chunks/cli-0.1.9-fm2yycpj.mjs +2 -0
  159. package/dist/chunks/cli-0.1.9-fwqwgjwb.mjs +2 -0
  160. package/dist/chunks/cli-0.1.9-gandxpzf.mjs +2 -0
  161. package/dist/chunks/cli-0.1.9-gasw7sr9.mjs +2 -0
  162. package/dist/chunks/cli-0.1.9-gdymcvby.mjs +2 -0
  163. package/dist/chunks/cli-0.1.9-gpd1bhnf.mjs +2 -0
  164. package/dist/chunks/cli-0.1.9-gsc0t4gy.mjs +2 -0
  165. package/dist/chunks/cli-0.1.9-gvrtqwe3.mjs +2 -0
  166. package/dist/chunks/cli-0.1.9-h8xne7z8.mjs +2 -0
  167. package/dist/chunks/cli-0.1.9-hjcv9wr7.mjs +50 -0
  168. package/dist/chunks/cli-0.1.9-hva25eg3.mjs +4 -0
  169. package/dist/chunks/cli-0.1.9-hy4peemf.mjs +3 -0
  170. package/dist/chunks/cli-0.1.9-hy9s1fnj.mjs +14 -0
  171. package/dist/chunks/cli-0.1.9-hz8rssz0.mjs +2 -0
  172. package/dist/chunks/cli-0.1.9-j5zz6gbq.mjs +4 -0
  173. package/dist/chunks/cli-0.1.9-jb6af8n8.mjs +2 -0
  174. package/dist/chunks/cli-0.1.9-jchn9hyn.mjs +2 -0
  175. package/dist/chunks/cli-0.1.9-jdpz959j.mjs +2 -0
  176. package/dist/chunks/cli-0.1.9-jv2z42gk.mjs +2 -0
  177. package/dist/chunks/cli-0.1.9-kbrf27z8.mjs +2 -0
  178. package/dist/chunks/cli-0.1.9-krv35v3v.mjs +2 -0
  179. package/dist/chunks/cli-0.1.9-ksv4ntar.mjs +2 -0
  180. package/dist/chunks/cli-0.1.9-kt9xw7bn.mjs +2 -0
  181. package/dist/chunks/cli-0.1.9-m7shtst2.mjs +2 -0
  182. package/dist/chunks/cli-0.1.9-mfyd9h50.mjs +2 -0
  183. package/dist/chunks/cli-0.1.9-mj88t3jf.mjs +2 -0
  184. package/dist/chunks/cli-0.1.9-mjkhzp2c.mjs +3 -0
  185. package/dist/chunks/cli-0.1.9-mkfnnvz7.mjs +4 -0
  186. package/dist/chunks/cli-0.1.9-mme2x7fq.mjs +2 -0
  187. package/dist/chunks/cli-0.1.9-mnegaqr7.mjs +2 -0
  188. package/dist/chunks/cli-0.1.9-mx4ekht0.mjs +2 -0
  189. package/dist/chunks/cli-0.1.9-mz3mbxwb.mjs +12 -0
  190. package/dist/chunks/cli-0.1.9-n445yk6z.mjs +2 -0
  191. package/dist/chunks/cli-0.1.9-n54k4qt3.mjs +2 -0
  192. package/dist/chunks/cli-0.1.9-n8tc0gpm.mjs +2 -0
  193. package/dist/chunks/cli-0.1.9-nsgdz4rd.mjs +2 -0
  194. package/dist/chunks/cli-0.1.9-nw3rpxdd.mjs +252 -0
  195. package/dist/chunks/cli-0.1.9-nz8phj17.mjs +2 -0
  196. package/dist/chunks/cli-0.1.9-p1kdk178.mjs +2 -0
  197. package/dist/chunks/cli-0.1.9-p58rgwkr.mjs +4 -0
  198. package/dist/chunks/cli-0.1.9-p5scdysw.mjs +2 -0
  199. package/dist/chunks/cli-0.1.9-pdbfg3vh.mjs +2 -0
  200. package/dist/chunks/cli-0.1.9-pgwsmwz1.mjs +2 -0
  201. package/dist/chunks/cli-0.1.9-ph3w8t78.mjs +2 -0
  202. package/dist/chunks/cli-0.1.9-psx0e36a.mjs +2 -0
  203. package/dist/chunks/cli-0.1.9-q3e2h88a.mjs +2 -0
  204. package/dist/chunks/cli-0.1.9-q7hve442.mjs +2 -0
  205. package/dist/chunks/cli-0.1.9-qqjp7mpj.mjs +2 -0
  206. package/dist/chunks/cli-0.1.9-qydwhycw.mjs +2 -0
  207. package/dist/chunks/cli-0.1.9-r3ha1332.mjs +7 -0
  208. package/dist/chunks/cli-0.1.9-r7rcv2wm.mjs +8 -0
  209. package/dist/chunks/cli-0.1.9-rd0jctgk.mjs +21 -0
  210. package/dist/chunks/cli-0.1.9-rerthk1j.mjs +2 -0
  211. package/dist/chunks/cli-0.1.9-rft22htm.mjs +2 -0
  212. package/dist/chunks/cli-0.1.9-rp31nc37.mjs +2 -0
  213. package/dist/chunks/cli-0.1.9-rw09xkh7.mjs +2 -0
  214. package/dist/chunks/cli-0.1.9-s0w3y07w.mjs +2 -0
  215. package/dist/chunks/cli-0.1.9-s45y2ndk.mjs +2 -0
  216. package/dist/chunks/cli-0.1.9-s6bk4fbn.mjs +2 -0
  217. package/dist/chunks/cli-0.1.9-scpj6tps.mjs +3 -0
  218. package/dist/chunks/cli-0.1.9-sqja68fn.mjs +2 -0
  219. package/dist/chunks/cli-0.1.9-sv3awdsv.mjs +2 -0
  220. package/dist/chunks/cli-0.1.9-t24n24mw.mjs +2 -0
  221. package/dist/chunks/cli-0.1.9-teaymnrz.mjs +2 -0
  222. package/dist/chunks/cli-0.1.9-tq9z3reg.mjs +2 -0
  223. package/dist/chunks/cli-0.1.9-v32f99vc.mjs +11 -0
  224. package/dist/chunks/cli-0.1.9-v6x9pr1t.mjs +2 -0
  225. package/dist/chunks/cli-0.1.9-v7ajk1nz.mjs +2 -0
  226. package/dist/chunks/cli-0.1.9-vdw09f8y.mjs +44 -0
  227. package/dist/chunks/cli-0.1.9-vm7cggd9.mjs +45 -0
  228. package/dist/chunks/cli-0.1.9-vp3dtntc.mjs +2 -0
  229. package/dist/chunks/cli-0.1.9-vwv31syx.mjs +2 -0
  230. package/dist/chunks/cli-0.1.9-w692zn5c.mjs +2 -0
  231. package/dist/chunks/cli-0.1.9-wn39cz20.mjs +2 -0
  232. package/dist/chunks/cli-0.1.9-wpvrabrk.mjs +2 -0
  233. package/dist/chunks/cli-0.1.9-x0xxr5dh.mjs +13 -0
  234. package/dist/chunks/cli-0.1.9-x13p19zq.mjs +2 -0
  235. package/dist/chunks/cli-0.1.9-x257hapj.mjs +9 -0
  236. package/dist/chunks/cli-0.1.9-x7qrvj9f.mjs +2 -0
  237. package/dist/chunks/cli-0.1.9-xvn37fkk.mjs +2 -0
  238. package/dist/chunks/cli-0.1.9-xvvq2rcd.mjs +4 -0
  239. package/dist/chunks/cli-0.1.9-xws3mhz4.mjs +2 -0
  240. package/dist/chunks/cli-0.1.9-y8n4w5nn.mjs +5 -0
  241. package/dist/chunks/cli-0.1.9-ycvkz1gf.mjs +4 -0
  242. package/dist/chunks/cli-0.1.9-yddanjg2.mjs +132 -0
  243. package/dist/chunks/cli-0.1.9-ymsq31jx.mjs +2 -0
  244. package/dist/chunks/cli-0.1.9-ywf6743k.mjs +2 -0
  245. package/dist/chunks/cli-0.1.9-z5mm21jw.mjs +24 -0
  246. package/dist/chunks/cli-0.1.9-zae1me3j.mjs +2 -0
  247. package/dist/chunks/cli-0.1.9-zck4s4sh.mjs +2 -0
  248. package/dist/chunks/cli-0.1.9-zehsa1kq.mjs +2 -0
  249. package/dist/chunks/cli-0.1.9-zqyxbf50.mjs +2 -0
  250. package/dist/chunks/cli-0.1.9-zrdz7st3.mjs +3 -0
  251. package/dist/chunks/cli-0.1.9-zstpbdrf.mjs +2 -0
  252. package/dist/chunks/cli-0.1.9-zzp8m503.mjs +3 -0
  253. package/dist/chunks/cliArgs-0.1.9-kckasx4h.mjs +1 -0
  254. package/dist/chunks/client-0.1.9-ys52xz2v.mjs +1 -0
  255. package/dist/chunks/color-0.1.9-nmnytefc.mjs +1 -0
  256. package/dist/chunks/compact-0.1.9-qw915ckh.mjs +3 -0
  257. package/dist/chunks/config-0.1.9-1m69edch.mjs +1 -0
  258. package/dist/chunks/config-0.1.9-6knxc8a2.mjs +1 -0
  259. package/dist/chunks/context-0.1.9-47a3xmqq.mjs +1 -0
  260. package/dist/chunks/context-noninteractive-0.1.9-6s9bm74v.mjs +1 -0
  261. package/dist/chunks/conversation-0.1.9-vebter8y.mjs +1 -0
  262. package/dist/chunks/copy-0.1.9-ae06p3e2.mjs +9 -0
  263. package/dist/chunks/cost-0.1.9-x5zee0z9.mjs +1 -0
  264. package/dist/chunks/createSession-0.1.9-djn7xdsv.mjs +1 -0
  265. package/dist/chunks/desktop-0.1.9-xaecrssd.mjs +1 -0
  266. package/dist/chunks/detectRepository-0.1.9-qqzcce45.mjs +1 -0
  267. package/dist/chunks/detection-0.1.9-ry1q2ym2.mjs +1 -0
  268. package/dist/chunks/devtools-0.1.9-kzs9wq2w.mjs +1 -0
  269. package/dist/chunks/diff-0.1.9-af5n5bzh.mjs +1 -0
  270. package/dist/chunks/doctor-0.1.9-9f6fz2h0.mjs +1 -0
  271. package/dist/chunks/earlyInput-0.1.9-h7yskwvf.mjs +1 -0
  272. package/dist/chunks/effort-0.1.9-spz96zzr.mjs +8 -0
  273. package/dist/chunks/environmentSelection-0.1.9-0va5g53h.mjs +1 -0
  274. package/dist/chunks/environments-0.1.9-2hka6k26.mjs +1 -0
  275. package/dist/chunks/exit-0.1.9-rvk04qa2.mjs +1 -0
  276. package/dist/chunks/export-0.1.9-c3pqjktx.mjs +2 -0
  277. package/dist/chunks/extra-usage-0.1.9-92jjke47.mjs +1 -0
  278. package/dist/chunks/extra-usage-noninteractive-0.1.9-27zjp5q7.mjs +1 -0
  279. package/dist/chunks/fast-0.1.9-60sqqvgd.mjs +1 -0
  280. package/dist/chunks/feedback-0.1.9-anraj53n.mjs +14 -0
  281. package/dist/chunks/firstPartyEventLogger-0.1.9-y55fqx1x.mjs +1 -0
  282. package/dist/chunks/fullscreen-0.1.9-xy9bnpe3.mjs +1 -0
  283. package/dist/chunks/git-0.1.9-09pdaxwd.mjs +1 -0
  284. package/dist/chunks/githubModelsCredentials-0.1.9-bzx6c3bd.mjs +1 -0
  285. package/dist/chunks/growthbook-0.1.9-rqhcy76z.mjs +1 -0
  286. package/dist/chunks/heapdump-0.1.9-qrfce4dp.mjs +6 -0
  287. package/dist/chunks/help-0.1.9-sfn2ed9n.mjs +1 -0
  288. package/dist/chunks/hookChains-0.1.9-5t2mrtyc.mjs +3 -0
  289. package/dist/chunks/hooks-0.1.9-4cebdztn.mjs +1 -0
  290. package/dist/chunks/hooks-0.1.9-y0vtx23k.mjs +79 -0
  291. package/dist/chunks/ide-0.1.9-yxzacgd5.mjs +3 -0
  292. package/dist/chunks/image-processor-napi-0.1.9-fwc1ge47.mjs +1 -0
  293. package/dist/chunks/index-0.1.9-2gv7a7tq.mjs +2 -0
  294. package/dist/chunks/index-0.1.9-31vnb803.mjs +1 -0
  295. package/dist/chunks/index-0.1.9-68aa3hmw.mjs +1 -0
  296. package/dist/chunks/index-0.1.9-7ktx5gez.mjs +1 -0
  297. package/dist/chunks/index-0.1.9-8feamw1f.mjs +1 -0
  298. package/dist/chunks/index-0.1.9-8hzceckr.mjs +5 -0
  299. package/dist/chunks/index-0.1.9-96thm65j.mjs +1 -0
  300. package/dist/chunks/index-0.1.9-c7sexk3f.mjs +2 -0
  301. package/dist/chunks/index-0.1.9-fvtq6thw.mjs +1 -0
  302. package/dist/chunks/index-0.1.9-g2ngvhaf.mjs +1 -0
  303. package/dist/chunks/index-0.1.9-gtn0qcv2.mjs +7 -0
  304. package/dist/chunks/index-0.1.9-h548q4km.mjs +1 -0
  305. package/dist/chunks/index-0.1.9-j6ac60hq.mjs +1 -0
  306. package/dist/chunks/index-0.1.9-jxdymwv4.mjs +1 -0
  307. package/dist/chunks/index-0.1.9-kgdkzpmr.mjs +1 -0
  308. package/dist/chunks/index-0.1.9-mt2y3wyw.mjs +9 -0
  309. package/dist/chunks/index-0.1.9-smem7egb.mjs +30 -0
  310. package/dist/chunks/index-0.1.9-snmdvw2f.mjs +1 -0
  311. package/dist/chunks/index-0.1.9-vwevfx80.mjs +1 -0
  312. package/dist/chunks/index-0.1.9-w21jc8bp.mjs +1 -0
  313. package/dist/chunks/index-0.1.9-wpqaqk4y.mjs +1 -0
  314. package/dist/chunks/index-0.1.9-yjp28h60.mjs +9 -0
  315. package/dist/chunks/initReplBridge-0.1.9-dag95hyf.mjs +1 -0
  316. package/dist/chunks/ink-0.1.9-4n2nvw5p.mjs +1 -0
  317. package/dist/chunks/insights-0.1.9-9hr8tshw.mjs +870 -0
  318. package/dist/chunks/install-0.1.9-km91vvgf.mjs +1 -0
  319. package/dist/chunks/install-github-app-0.1.9-874a2dgj.mjs +149 -0
  320. package/dist/chunks/install-slack-app-0.1.9-q5yyb8vs.mjs +1 -0
  321. package/dist/chunks/instrumentation-0.1.9-raz129aj.mjs +12 -0
  322. package/dist/chunks/interactiveHelpers-0.1.9-21a8r4rv.mjs +1 -0
  323. package/dist/chunks/keybindings-0.1.9-nm8s4x8m.mjs +2 -0
  324. package/dist/chunks/knowledge-0.1.9-zhr6zq80.mjs +2 -0
  325. package/dist/chunks/loadAgentsDir-0.1.9-3m0mzw84.mjs +1 -0
  326. package/dist/chunks/loadPluginHooks-0.1.9-y46g5zj0.mjs +1 -0
  327. package/dist/chunks/logout-0.1.9-hb89bxj8.mjs +1 -0
  328. package/dist/chunks/lsp-0.1.9-2j3y8eqc.mjs +1 -0
  329. package/dist/chunks/main-0.1.9-7cnyr288.mjs +1 -0
  330. package/dist/chunks/managedEnv-0.1.9-y8wax2wz.mjs +1 -0
  331. package/dist/chunks/mcp-0.1.9-14beee71.mjs +17 -0
  332. package/dist/chunks/mcp-0.1.9-qw1n3pzx.mjs +4 -0
  333. package/dist/chunks/mcp-0.1.9-zd92e41j.mjs +1 -0
  334. package/dist/chunks/mcpServer-0.1.9-5p48a2y0.mjs +1 -0
  335. package/dist/chunks/mcpb-0.1.9-t8x1bjwv.mjs +1 -0
  336. package/dist/chunks/memory-0.1.9-mxz6vgsy.mjs +3 -0
  337. package/dist/chunks/mobile-0.1.9-144nwr03.mjs +2 -0
  338. package/dist/chunks/model-0.1.9-ghswdzx2.mjs +1 -0
  339. package/dist/chunks/model-0.1.9-j4vhm4vm.mjs +2 -0
  340. package/dist/chunks/oauth-0.1.9-a7p9ezjx.mjs +1 -0
  341. package/dist/chunks/openaiShim-0.1.9-5bn57rv6.mjs +14 -0
  342. package/dist/chunks/output-style-0.1.9-y8t5c5v3.mjs +1 -0
  343. package/dist/chunks/package-HMBVQOZ4-0.1.9-mbvqe0av.mjs +1 -0
  344. package/dist/chunks/parser-0.1.9-d7vc9q1w.mjs +1 -0
  345. package/dist/chunks/passes-0.1.9-84vsp058.mjs +1 -0
  346. package/dist/chunks/permissions-0.1.9-h0a2312z.mjs +3 -0
  347. package/dist/chunks/plan-0.1.9-k9dx9nwc.mjs +1 -0
  348. package/dist/chunks/plist-0.1.9-f3c6hvca.mjs +1 -0
  349. package/dist/chunks/plugin-0.1.9-z3nwra38.mjs +29 -0
  350. package/dist/chunks/pluginStartupCheck-0.1.9-p68xwmv4.mjs +1 -0
  351. package/dist/chunks/plugins-0.1.9-grc1bgmj.mjs +9 -0
  352. package/dist/chunks/print-0.1.9-z151tvas.mjs +57 -0
  353. package/dist/chunks/privacy-settings-0.1.9-m7xpxtd8.mjs +1 -0
  354. package/dist/chunks/process-0.1.9-anx0dq1a.mjs +1 -0
  355. package/dist/chunks/processBashCommand-0.1.9-bchtybqh.mjs +1 -0
  356. package/dist/chunks/processSlashCommand-0.1.9-ebvc859m.mjs +9 -0
  357. package/dist/chunks/prompt-0.1.9-08fnpwfx.mjs +1 -0
  358. package/dist/chunks/prompt-0.1.9-whqkx3td.mjs +1 -0
  359. package/dist/chunks/prompts-0.1.9-psek69yr.mjs +1 -0
  360. package/dist/chunks/provider-0.1.9-xwmdqr38.mjs +2 -0
  361. package/dist/chunks/providerProfiles-0.1.9-myc8zcfy.mjs +1 -0
  362. package/dist/chunks/rate-limit-options-0.1.9-06twart5.mjs +1 -0
  363. package/dist/chunks/registry-0.1.9-xxrsbce3.mjs +1 -0
  364. package/dist/chunks/release-notes-0.1.9-4r396x7z.mjs +5 -0
  365. package/dist/chunks/reload-plugins-0.1.9-hm09ekrf.mjs +2 -0
  366. package/dist/chunks/remote-env-0.1.9-0peng4np.mjs +1 -0
  367. package/dist/chunks/remoteBridgeCore-0.1.9-4eg0bkck.mjs +1 -0
  368. package/dist/chunks/remoteSession-0.1.9-7jagnaes.mjs +1 -0
  369. package/dist/chunks/rename-0.1.9-3r8bqa1y.mjs +1 -0
  370. package/dist/chunks/replBridgeHandle-0.1.9-1y32h5jq.mjs +1 -0
  371. package/dist/chunks/resume-0.1.9-gayv56qp.mjs +2 -0
  372. package/dist/chunks/rewind-0.1.9-krxjbzeg.mjs +1 -0
  373. package/dist/chunks/sandbox-adapter-0.1.9-b4ze2ex2.mjs +1 -0
  374. package/dist/chunks/sandbox-toggle-0.1.9-6vctxbed.mjs +1 -0
  375. package/dist/chunks/session-0.1.9-jtrr3jje.mjs +2 -0
  376. package/dist/chunks/sessionFileAccessHooks-0.1.9-wpgdva8t.mjs +1 -0
  377. package/dist/chunks/sessionStorage-0.1.9-1v6wyqzw.mjs +1 -0
  378. package/dist/chunks/setup-0.1.9-jc5w6v5s.mjs +5 -0
  379. package/dist/chunks/sinks-0.1.9-49ereb4y.mjs +1 -0
  380. package/dist/chunks/skills-0.1.9-d63w5m27.mjs +1 -0
  381. package/dist/chunks/startupProfiler-0.1.9-gmke65dk.mjs +1 -0
  382. package/dist/chunks/state-0.1.9-m8x0v07d.mjs +1 -0
  383. package/dist/chunks/stats-0.1.9-yvya6xg6.mjs +6 -0
  384. package/dist/chunks/status-0.1.9-sapnwz4b.mjs +1 -0
  385. package/dist/chunks/stickers-0.1.9-ewdagtd4.mjs +1 -0
  386. package/dist/chunks/subprocessEnv-0.1.9-2dqzh55d.mjs +1 -0
  387. package/dist/chunks/tasks-0.1.9-qgqwhse9.mjs +1 -0
  388. package/dist/chunks/teamHelpers-0.1.9-r474ar76.mjs +1 -0
  389. package/dist/chunks/teammateModeSnapshot-0.1.9-nwc11b9m.mjs +1 -0
  390. package/dist/chunks/teleport-0.1.9-xaj204my.mjs +1 -0
  391. package/dist/chunks/terminalSetup-0.1.9-xd5rhh32.mjs +1 -0
  392. package/dist/chunks/theme-0.1.9-f6jzdysz.mjs +1 -0
  393. package/dist/chunks/thinkback-0.1.9-8j25tex7.mjs +1 -0
  394. package/dist/chunks/thinkback-play-0.1.9-tzs2w3mj.mjs +1 -0
  395. package/dist/chunks/toolPool-0.1.9-6b4938vh.mjs +1 -0
  396. package/dist/chunks/toolSearch-0.1.9-7ych6nv7.mjs +1 -0
  397. package/dist/chunks/trustedDevice-0.1.9-xqxt3kmz.mjs +1 -0
  398. package/dist/chunks/turndown.cjs-0.1.9-m1wesrr4.mjs +69 -0
  399. package/dist/chunks/ultrareviewCommand-0.1.9-x09n5pvc.mjs +4 -0
  400. package/dist/chunks/update-0.1.9-8dntd8kh.mjs +94 -0
  401. package/dist/chunks/upgrade-0.1.9-eja31dgt.mjs +1 -0
  402. package/dist/chunks/upstreamproxy-0.1.9-pv2yqh11.mjs +14 -0
  403. package/dist/chunks/usage-0.1.9-neje6dea.mjs +1 -0
  404. package/dist/chunks/util-0.1.9-kdhggd68.mjs +1 -0
  405. package/dist/chunks/utils-0.1.9-bqw30f8b.mjs +1 -0
  406. package/dist/chunks/vim-0.1.9-w4d1qz6f.mjs +1 -0
  407. package/dist/chunks/watcher-0.1.9-ty2r0yxd.mjs +1 -0
  408. package/dist/chunks/wiki-0.1.9-ah646x2k.mjs +132 -0
  409. package/dist/chunks/worktree-0.1.9-d3fbxjwd.mjs +1 -0
  410. package/dist/chunks/worktreeModeEnabled-0.1.9-qbn6b5fs.mjs +1 -0
  411. package/dist/chunks/wrapper-0.1.9-eh46qafm.mjs +7 -0
  412. package/dist/claudio-vscode.vsix +0 -0
  413. package/dist/cli.mjs +7 -0
  414. package/package.json +153 -0
  415. package/scripts/v8cache-gc.mjs +84 -0
package/package.json ADDED
@@ -0,0 +1,153 @@
1
+ {
2
+ "name": "@claudiolabs/claudio",
3
+ "version": "0.1.9",
4
+ "description": "Claudio — Claude Code opened to any LLM (OpenAI, Gemini, DeepSeek, Ollama, and 200+ models)",
5
+ "type": "module",
6
+ "bin": {
7
+ "claudio": "./bin/claudio"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "dist/",
12
+ "scripts/v8cache-gc.mjs",
13
+ "README.md"
14
+ ],
15
+ "scripts": {
16
+ "build": "bun run scripts/build.ts",
17
+ "setup": "bun install && bun run build && bun link",
18
+ "link": "bun link",
19
+ "dev": "bun run build && node dist/cli.mjs",
20
+ "dev:grpc": "bun run scripts/start-grpc.ts",
21
+ "dev:grpc:cli": "bun run scripts/grpc-cli.ts",
22
+ "start": "node dist/cli.mjs",
23
+ "test": "bun test",
24
+ "test:coverage": "bun test --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts",
25
+ "test:coverage:ui": "bun run scripts/render-coverage-heatmap.ts",
26
+ "security:pr-scan": "bun run scripts/pr-intent-scan.ts",
27
+ "typecheck": "tsc --noEmit",
28
+ "smoke": "bun run build && node dist/cli.mjs --version && node dist/cli.mjs --help >/dev/null",
29
+ "verify:privacy": "bun run scripts/verify-no-phone-home.ts",
30
+ "build:verified": "bun run build && bun run verify:privacy",
31
+ "build:extension": "mkdir -p dist && cd vscode-extension/claudio-vscode && bun install --frozen-lockfile && npx --yes @vscode/vsce@^3 package --out ../../dist/claudio-vscode.vsix",
32
+ "build:release": "bun run build:extension && CLAUDIO_RELEASE_BUILD=1 bun run build",
33
+ "test:provider": "bun test src/services/api/*.test.ts src/utils/context.test.ts",
34
+ "profile": "bun run scripts/profile/run-all.ts",
35
+ "profile:streaming": "bun run scripts/profile/streaming-bench.ts --compare",
36
+ "profile:input": "bun run scripts/profile/input-bench.ts",
37
+ "profile:cold-start": "bun run scripts/profile/cold-start-bench.ts",
38
+ "profile:memory": "bun run scripts/profile/memory-bench.ts",
39
+ "profile:transcript": "bun run scripts/profile/transcript-bench.ts --with-code",
40
+ "profile:long-session": "bun --expose-gc run scripts/profile/long-session-bench.ts",
41
+ "profile:query-engine-mem": "bun --expose-gc run scripts/profile/query-engine-mem-bench.ts",
42
+ "profile:streaming-shim": "bun --expose-gc run scripts/profile/streaming-shim-bench.ts",
43
+ "profile:skills-plugin": "bun --expose-gc run scripts/profile/skills-plugin-bench.ts",
44
+ "profile:file-read-cache-saturation": "bun --expose-gc run scripts/profile/file-read-cache-saturation-bench.ts",
45
+ "profile:heap-snapshot-diff": "bun --expose-gc run scripts/profile/heap-snapshot-diff-bench.ts",
46
+ "prepack": "npm run build:release"
47
+ },
48
+ "dependencies": {
49
+ "@alcalzone/ansi-tokenize": "0.3.0",
50
+ "@anthropic-ai/bedrock-sdk": "0.26.4",
51
+ "@anthropic-ai/foundry-sdk": "0.2.3",
52
+ "@anthropic-ai/sandbox-runtime": "0.0.46",
53
+ "@anthropic-ai/sdk": "0.81.0",
54
+ "@anthropic-ai/vertex-sdk": "0.14.4",
55
+ "@commander-js/extra-typings": "12.1.0",
56
+ "@growthbook/growthbook": "1.6.5",
57
+ "@grpc/grpc-js": "^1.14.3",
58
+ "@grpc/proto-loader": "^0.8.0",
59
+ "@mendable/firecrawl-js": "4.18.1",
60
+ "@modelcontextprotocol/sdk": "1.29.0",
61
+ "@opentelemetry/api": "1.9.1",
62
+ "@opentelemetry/api-logs": "0.214.0",
63
+ "@opentelemetry/core": "2.6.1",
64
+ "@opentelemetry/exporter-logs-otlp-http": "0.214.0",
65
+ "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2",
66
+ "@opentelemetry/resources": "2.6.1",
67
+ "@opentelemetry/sdk-logs": "0.214.0",
68
+ "@opentelemetry/sdk-metrics": "2.6.1",
69
+ "@opentelemetry/sdk-trace-base": "2.6.1",
70
+ "@opentelemetry/sdk-trace-node": "2.6.1",
71
+ "@opentelemetry/semantic-conventions": "1.40.0",
72
+ "ajv": "8.18.0",
73
+ "auto-bind": "5.0.1",
74
+ "axios": "1.15.0",
75
+ "bidi-js": "1.0.3",
76
+ "chalk": "5.6.2",
77
+ "chokidar": "4.0.3",
78
+ "cli-boxes": "3.0.0",
79
+ "cli-highlight": "2.1.11",
80
+ "code-excerpt": "4.0.0",
81
+ "commander": "12.1.0",
82
+ "cross-spawn": "7.0.6",
83
+ "diff": "8.0.3",
84
+ "duck-duck-scrape": "^2.2.7",
85
+ "emoji-regex": "10.6.0",
86
+ "env-paths": "3.0.0",
87
+ "execa": "9.6.1",
88
+ "fflate": "0.8.2",
89
+ "figures": "6.1.0",
90
+ "fuse.js": "7.1.0",
91
+ "get-east-asian-width": "1.5.0",
92
+ "google-auth-library": "9.15.1",
93
+ "https-proxy-agent": "7.0.6",
94
+ "ignore": "7.0.5",
95
+ "indent-string": "5.0.0",
96
+ "jsonc-parser": "3.3.1",
97
+ "lodash-es": "4.18.1",
98
+ "lru-cache": "11.2.7",
99
+ "marked": "15.0.12",
100
+ "p-map": "7.0.4",
101
+ "picomatch": "4.0.4",
102
+ "proper-lockfile": "4.1.2",
103
+ "qrcode": "1.5.4",
104
+ "react": "19.2.4",
105
+ "react-compiler-runtime": "1.0.0",
106
+ "react-reconciler": "0.33.0",
107
+ "semver": "7.7.4",
108
+ "sharp": "^0.34.5",
109
+ "shell-quote": "1.8.3",
110
+ "signal-exit": "4.1.0",
111
+ "stack-utils": "2.0.6",
112
+ "strip-ansi": "7.2.0",
113
+ "supports-hyperlinks": "3.2.0",
114
+ "tree-kill": "1.2.2",
115
+ "turndown": "7.2.2",
116
+ "type-fest": "4.41.0",
117
+ "undici": "7.24.6",
118
+ "usehooks-ts": "3.1.1",
119
+ "vscode-languageserver-protocol": "3.17.5",
120
+ "wrap-ansi": "9.0.2",
121
+ "ws": "8.20.0",
122
+ "xss": "1.0.15",
123
+ "yaml": "2.8.3",
124
+ "zod": "3.25.76"
125
+ },
126
+ "devDependencies": {
127
+ "@types/bun": "1.3.11",
128
+ "@types/node": "25.5.0",
129
+ "@types/react": "19.2.14",
130
+ "tsx": "^4.21.0",
131
+ "typescript": "5.9.3"
132
+ },
133
+ "engines": {
134
+ "node": ">=20.0.0"
135
+ },
136
+ "keywords": [
137
+ "claude-code",
138
+ "openai",
139
+ "llm",
140
+ "cli",
141
+ "agent",
142
+ "deepseek",
143
+ "ollama",
144
+ "gemini"
145
+ ],
146
+ "license": "SEE LICENSE FILE",
147
+ "publishConfig": {
148
+ "access": "public"
149
+ },
150
+ "overrides": {
151
+ "lodash-es": "4.18.1"
152
+ }
153
+ }
@@ -0,0 +1,84 @@
1
+ // GC for ~/.claudio/v8cache/. Node's enableCompileCache writes one entry per
2
+ // (file path, mtime) under a fingerprint subdir (e.g. v25.9.0-x64-<hash>-<uid>)
3
+ // and never reclaims stale entries. After code-splitting, dist/chunks/[name]-[hash].mjs
4
+ // produces hundreds of new files per build, so the cache grows unboundedly in
5
+ // active dev. We sweep entries older than `ttlDays` and prune empty fingerprint
6
+ // subdirs.
7
+ //
8
+ // Pure logic split out so it can be unit-tested without spawning the launcher.
9
+
10
+ import { readdir, stat, unlink, rmdir } from 'fs/promises'
11
+ import { join } from 'path'
12
+
13
+ /**
14
+ * @param {string} cacheDir absolute path to the v8cache root
15
+ * @param {object} opts
16
+ * @param {number} opts.ttlDays entries with mtime older than this are deleted
17
+ * @param {number} [opts.now] epoch ms; defaults to Date.now() (injected for tests)
18
+ * @returns {Promise<{ removedFiles: number, removedDirs: number, removedBytes: number, errors: number }>}
19
+ */
20
+ export async function gcV8Cache(cacheDir, { ttlDays, now = Date.now() }) {
21
+ const cutoff = now - ttlDays * 24 * 60 * 60 * 1000
22
+ const stats = { removedFiles: 0, removedDirs: 0, removedBytes: 0, errors: 0 }
23
+
24
+ let topEntries
25
+ try {
26
+ topEntries = await readdir(cacheDir, { withFileTypes: true })
27
+ } catch {
28
+ // Cache dir doesn't exist yet — nothing to GC.
29
+ return stats
30
+ }
31
+
32
+ for (const top of topEntries) {
33
+ const topPath = join(cacheDir, top.name)
34
+ if (!top.isDirectory()) {
35
+ // Stray file at root: respect TTL.
36
+ try {
37
+ const s = await stat(topPath)
38
+ if (s.mtimeMs < cutoff) {
39
+ await unlink(topPath)
40
+ stats.removedFiles++
41
+ stats.removedBytes += s.size
42
+ }
43
+ } catch {
44
+ stats.errors++
45
+ }
46
+ continue
47
+ }
48
+
49
+ let inner
50
+ try {
51
+ inner = await readdir(topPath, { withFileTypes: true })
52
+ } catch {
53
+ stats.errors++
54
+ continue
55
+ }
56
+
57
+ let remaining = inner.length
58
+ for (const entry of inner) {
59
+ const entryPath = join(topPath, entry.name)
60
+ try {
61
+ const s = await stat(entryPath)
62
+ if (s.mtimeMs < cutoff) {
63
+ await unlink(entryPath)
64
+ stats.removedFiles++
65
+ stats.removedBytes += s.size
66
+ remaining--
67
+ }
68
+ } catch {
69
+ stats.errors++
70
+ }
71
+ }
72
+
73
+ if (remaining === 0) {
74
+ try {
75
+ await rmdir(topPath)
76
+ stats.removedDirs++
77
+ } catch {
78
+ // Subdir may have re-populated between readdir and rmdir; benign.
79
+ }
80
+ }
81
+ }
82
+
83
+ return stats
84
+ }