autohand-cli 0.7.12 → 0.7.14

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 (202) hide show
  1. package/dist/{about-YO7NGBX6.js → about-3BJTNSLK.js} +3 -3
  2. package/dist/about-EABQNJGV.cjs +11 -0
  3. package/dist/add-dir-7FD4DMDA.cjs +9 -0
  4. package/dist/{add-dir-UBYMJTDI.js → add-dir-LOYJ4YB5.js} +2 -2
  5. package/dist/{agents-5MAHZPHB.js → agents-2Y6ASV7C.js} +2 -2
  6. package/dist/agents-UOSPKLQL.cjs +10 -0
  7. package/dist/agents-new-23NSGAM5.js +13 -0
  8. package/dist/agents-new-WI2EL7IJ.cjs +13 -0
  9. package/dist/{automode-6IYDTXMU.js → automode-LGWTY3UX.js} +2 -2
  10. package/dist/automode-WLBQ7MN7.cjs +9 -0
  11. package/dist/{chunk-4BVRSVS2.cjs → chunk-2U5HFVRO.cjs} +38 -72
  12. package/dist/{chunk-UWJCELGB.js → chunk-3KBBARKO.js} +1 -1
  13. package/dist/{chunk-VMCBJ73M.js → chunk-3XJD56Z4.js} +2 -3
  14. package/dist/{chunk-R6MSNNMX.cjs → chunk-425MT6Y5.cjs} +7 -7
  15. package/dist/{chunk-73EJJCTX.cjs → chunk-43XS26AQ.cjs} +2 -2
  16. package/dist/{chunk-4V2FH5QE.cjs → chunk-4HA7IHLJ.cjs} +14 -14
  17. package/dist/{chunk-VZZROEUZ.js → chunk-5UBW2BGC.js} +1 -1
  18. package/dist/{chunk-UK47BNOH.js → chunk-63BXZQZW.js} +2 -2
  19. package/dist/{chunk-U2HNW3BE.js → chunk-6DWXHBAY.js} +1 -1
  20. package/dist/{chunk-TXK5P6FF.js → chunk-6SHHB2VD.js} +2 -2
  21. package/dist/{chunk-EFBQFSY6.cjs → chunk-AIH6GUGB.cjs} +5 -5
  22. package/dist/{chunk-GRFEUDX5.cjs → chunk-B6EBHCK2.cjs} +6 -6
  23. package/dist/{chunk-XW4QQW5E.js → chunk-BHV7CBNT.js} +1 -1
  24. package/dist/{chunk-HTRSDNPI.js → chunk-BISFR6ZL.js} +1 -1
  25. package/dist/{chunk-WDB4H2K3.js → chunk-BPTBKO7D.js} +2 -2
  26. package/dist/{chunk-7QLGK2XE.cjs → chunk-BRXIEKJ3.cjs} +5 -5
  27. package/dist/{chunk-KEAWYW5Y.cjs → chunk-CH4SPVFD.cjs} +2 -3
  28. package/dist/{chunk-25K6ONCQ.cjs → chunk-CKN2BLHK.cjs} +2 -2
  29. package/dist/chunk-CRQKDBLD.js +169 -0
  30. package/dist/{chunk-SJLUPGYS.cjs → chunk-DSCQPWUB.cjs} +12 -12
  31. package/dist/{chunk-YWRSRYIR.js → chunk-DTFR3WD6.js} +1 -1
  32. package/dist/{chunk-LEXRXG3R.cjs → chunk-DZHR34H6.cjs} +3 -3
  33. package/dist/{chunk-5E2XJK3O.cjs → chunk-EOGKE5GD.cjs} +4 -4
  34. package/dist/{chunk-C4KK7YQM.js → chunk-FB6JWNJS.js} +1 -1
  35. package/dist/{chunk-JEWRDSNA.cjs → chunk-FEVHH525.cjs} +3 -3
  36. package/dist/{chunk-RONDHULN.cjs → chunk-FHUNAB2K.cjs} +3 -3
  37. package/dist/{chunk-2VVKAYOY.js → chunk-FK2DVRPJ.js} +2 -2
  38. package/dist/{chunk-MKNKMPLY.js → chunk-GRSVQ5YZ.js} +2 -2
  39. package/dist/{chunk-XCQ6CVQV.js → chunk-GVZPIQWB.js} +3 -3
  40. package/dist/{chunk-2XPQS4OZ.js → chunk-H3GBSPK5.js} +2 -2
  41. package/dist/{chunk-RPE3TUKR.js → chunk-HMRDNRTH.js} +1 -1
  42. package/dist/{chunk-G6YDQTR2.cjs → chunk-HSPWX4Z2.cjs} +9 -9
  43. package/dist/chunk-I6DBWNLN.cjs +169 -0
  44. package/dist/{chunk-U6HBUXUW.cjs → chunk-IZBCMJHJ.cjs} +2 -2
  45. package/dist/{chunk-IO2BKMPU.js → chunk-JHOQABEF.js} +2 -2
  46. package/dist/{chunk-BKWJQUGG.js → chunk-JWPI6O5Z.js} +1 -1
  47. package/dist/{chunk-D445SWSH.js → chunk-KWRUQRXR.js} +3 -3
  48. package/dist/{chunk-QBRO3XMP.js → chunk-KXAAEROY.js} +2 -2
  49. package/dist/{chunk-SIQC4V4N.js → chunk-LYMTYC67.js} +1 -1
  50. package/dist/{chunk-ESU7N6NJ.js → chunk-MILZEEUV.js} +1 -1
  51. package/dist/{chunk-VR35C7QS.cjs → chunk-MNSTWHK3.cjs} +11 -11
  52. package/dist/{chunk-RXOLZ3BF.cjs → chunk-MTALRU7R.cjs} +3 -3
  53. package/dist/{chunk-A3G2BNQN.js → chunk-MY3TZER2.js} +1 -1
  54. package/dist/{chunk-6M3J6LR3.js → chunk-NMGF2KUN.js} +1 -1
  55. package/dist/{chunk-D7DIMN2J.js → chunk-NMWEDN4Z.js} +35 -69
  56. package/dist/{chunk-3CNRH36G.cjs → chunk-NUHYCFHW.cjs} +4 -4
  57. package/dist/{chunk-MNTAIFXA.js → chunk-OSUWEUZE.js} +1 -1
  58. package/dist/{chunk-UY7S6R4Y.cjs → chunk-PDKNHU5G.cjs} +14 -14
  59. package/dist/{chunk-ALU2PTZB.cjs → chunk-PKOAXQKW.cjs} +11 -11
  60. package/dist/chunk-QRGPAUST.js +51 -0
  61. package/dist/{chunk-RSRVPJQC.cjs → chunk-R5OO7MEB.cjs} +8 -8
  62. package/dist/{chunk-IN74JKZ2.cjs → chunk-RFNCTE4V.cjs} +2 -2
  63. package/dist/{chunk-5LJ6R7VO.js → chunk-RRZS5A53.js} +1 -1
  64. package/dist/{chunk-TVFQ3N5M.cjs → chunk-RUZB43HU.cjs} +9 -9
  65. package/dist/{chunk-PCM3OSSV.js → chunk-S47TCZDL.js} +2 -2
  66. package/dist/{chunk-GV3JV6GI.cjs → chunk-SFNT5DYE.cjs} +4 -4
  67. package/dist/{chunk-R43FOIQH.cjs → chunk-SIGWDEPS.cjs} +10 -10
  68. package/dist/{chunk-BGKEM66R.cjs → chunk-SMHY3Q7B.cjs} +9 -9
  69. package/dist/{chunk-ZV5TZBBS.js → chunk-SRLY7K6J.js} +1 -1
  70. package/dist/{chunk-NRDP3C3B.cjs → chunk-SZP4ULM5.cjs} +17 -17
  71. package/dist/{chunk-LWG6LJHL.js → chunk-TOTDRAWG.js} +1 -1
  72. package/dist/{chunk-2ZV5EMF2.js → chunk-TQB222ZB.js} +2 -2
  73. package/dist/{chunk-VIGSERLH.cjs → chunk-U7CZFKPL.cjs} +2 -2
  74. package/dist/{chunk-MVCB7ZQE.cjs → chunk-ULMPJUJW.cjs} +21 -21
  75. package/dist/{chunk-H2MWZF6E.cjs → chunk-V7YTCNMN.cjs} +5 -5
  76. package/dist/{chunk-FO3UXH53.js → chunk-VHBUKGRG.js} +2 -2
  77. package/dist/{chunk-PDWOUNO7.cjs → chunk-VVBBEYTH.cjs} +6 -6
  78. package/dist/{chunk-D7NR5BGM.js → chunk-WQUQ5JMM.js} +3 -3
  79. package/dist/{chunk-HZXG63KE.js → chunk-X765A7J5.js} +1 -1
  80. package/dist/{chunk-BOU24HF2.cjs → chunk-XBUMKEFN.cjs} +6 -6
  81. package/dist/{chunk-XIRRRQQC.js → chunk-XPOHYKR3.js} +2 -2
  82. package/dist/{chunk-XE7T6YJV.cjs → chunk-Y2ZSH3YF.cjs} +9 -9
  83. package/dist/{chunk-4YUFXZ36.js → chunk-YHGTBPEC.js} +1 -1
  84. package/dist/{chunk-CNDQ3TW6.cjs → chunk-ZKZRFH37.cjs} +6 -6
  85. package/dist/{chunk-TYTHI5MC.cjs → chunk-ZLOTP56B.cjs} +5 -5
  86. package/dist/chunk-ZXIQCYYV.cjs +51 -0
  87. package/dist/completion-7WGMHKOR.cjs +13 -0
  88. package/dist/completion-KH33NSGP.js +13 -0
  89. package/dist/export-3QN3IH7A.js +11 -0
  90. package/dist/export-BI54X3MP.cjs +11 -0
  91. package/dist/feedback-CI4OIPOS.cjs +14 -0
  92. package/dist/feedback-GFPL5STE.js +14 -0
  93. package/dist/help-CWMUGD3V.cjs +11 -0
  94. package/dist/help-LKKQU2TN.js +11 -0
  95. package/dist/history-73VBEMSI.cjs +13 -0
  96. package/dist/{history-7LZTGEJM.js → history-AV4XBFRK.js} +2 -2
  97. package/dist/hooks-62UDQBGH.cjs +12 -0
  98. package/dist/hooks-XORDJD5X.js +12 -0
  99. package/dist/{i18n-MB4NNCVM.js → i18n-BSAPXM56.js} +1 -1
  100. package/dist/i18n-X2IU2EZD.cjs +32 -0
  101. package/dist/ide-RPKZALQV.js +11 -0
  102. package/dist/ide-YMNXJB6A.cjs +11 -0
  103. package/dist/index.cjs +336 -289
  104. package/dist/index.js +148 -101
  105. package/dist/init-J5HR4R7U.js +9 -0
  106. package/dist/init-JCC7RVMC.cjs +9 -0
  107. package/dist/{language-JKJIQBKY.js → language-AZISJCEZ.js} +4 -4
  108. package/dist/language-F65RA6FZ.cjs +16 -0
  109. package/dist/{login-QEZ5UF3J.js → login-5HLPMECE.js} +5 -5
  110. package/dist/{login-HZMQBI4Z.cjs → login-ISWYYBXP.cjs} +6 -6
  111. package/dist/logout-3EKZM5J3.cjs +16 -0
  112. package/dist/{logout-VSS7BRVP.js → logout-GE7TSZ24.js} +5 -5
  113. package/dist/mcp-EW64QRFA.cjs +15 -0
  114. package/dist/{mcp-5WFAF24K.js → mcp-VHS7AMF2.js} +3 -3
  115. package/dist/{mcp-install-X5T4BC7H.cjs → mcp-install-2KVKRAMQ.cjs} +7 -7
  116. package/dist/{mcp-install-2G7ZLMLV.js → mcp-install-77UXRN6R.js} +4 -4
  117. package/dist/{memory-IVMJ2BNL.js → memory-2I473RU3.js} +2 -2
  118. package/dist/memory-JZ6NPSP3.cjs +9 -0
  119. package/dist/{model-FOWUUVAH.js → model-GXZLARPT.js} +2 -2
  120. package/dist/model-Y274DBDO.cjs +9 -0
  121. package/dist/new-BG5VIGZ7.cjs +9 -0
  122. package/dist/{new-ISJVB4VD.js → new-YXFDQOA7.js} +2 -2
  123. package/dist/permissions-QILEAGBP.cjs +12 -0
  124. package/dist/permissions-WVEOVMWO.js +12 -0
  125. package/dist/quit-NC32OEJG.cjs +9 -0
  126. package/dist/quit-WRRIGU33.js +9 -0
  127. package/dist/resume-GJIKIDPR.cjs +12 -0
  128. package/dist/resume-RMJNCAOK.js +12 -0
  129. package/dist/{search-XPU6AIXA.js → search-UIWIXB73.js} +4 -4
  130. package/dist/search-WQNXDA2E.cjs +14 -0
  131. package/dist/{sessions-VLDM5PF4.js → sessions-HPFX2GDD.js} +2 -2
  132. package/dist/sessions-SAQU6MFA.cjs +9 -0
  133. package/dist/share-2WH5ZVOO.cjs +13 -0
  134. package/dist/share-PSSWWVV5.js +13 -0
  135. package/dist/{skills-YLFZTOEQ.js → skills-LJZA6PVJ.js} +2 -2
  136. package/dist/skills-YTYGART7.cjs +13 -0
  137. package/dist/{skills-install-IFUCRLZK.cjs → skills-install-IKJZN4G2.cjs} +7 -7
  138. package/dist/{skills-install-OA45O5ZK.js → skills-install-MQINL3EC.js} +4 -4
  139. package/dist/skills-new-3WCU3CWB.js +14 -0
  140. package/dist/skills-new-O5LFVFZU.cjs +14 -0
  141. package/dist/slashCommands-7IRDOXOQ.cjs +55 -0
  142. package/dist/slashCommands-C6CAQA25.js +55 -0
  143. package/dist/status-4EDV2LSY.cjs +10 -0
  144. package/dist/status-NU7TJDCE.js +10 -0
  145. package/dist/{sync-3M3C3T6D.js → sync-3GFSEIAZ.js} +2 -2
  146. package/dist/sync-CQNQDNTJ.cjs +16 -0
  147. package/dist/theme-EMJGULMI.cjs +16 -0
  148. package/dist/{theme-7XFCNDB4.js → theme-FGDSXNU3.js} +4 -4
  149. package/dist/ui/questionModal.cjs +4 -4
  150. package/dist/ui/questionModal.js +3 -3
  151. package/dist/undo-CTXQYE7C.cjs +9 -0
  152. package/dist/undo-HX2ZMECP.js +9 -0
  153. package/package.json +2 -3
  154. package/dist/about-7VIDF3B7.cjs +0 -11
  155. package/dist/add-dir-7QE2YJ7H.cjs +0 -9
  156. package/dist/agents-UDXO2SOD.cjs +0 -10
  157. package/dist/agents-new-I72C5JID.js +0 -13
  158. package/dist/agents-new-VPAU4JNV.cjs +0 -13
  159. package/dist/automode-VVP2XR6T.cjs +0 -9
  160. package/dist/chunk-FONQG5OC.cjs +0 -209
  161. package/dist/chunk-U5DIIPRG.js +0 -209
  162. package/dist/completion-2OFOKRBS.js +0 -13
  163. package/dist/completion-KFMUWCMT.cjs +0 -13
  164. package/dist/export-OTVX3ZPY.js +0 -11
  165. package/dist/export-X3PO3CLZ.cjs +0 -11
  166. package/dist/feedback-CTF5YWG5.js +0 -14
  167. package/dist/feedback-O3644S7L.cjs +0 -14
  168. package/dist/help-EHLYG6BD.js +0 -58
  169. package/dist/help-JHVMHO7M.cjs +0 -58
  170. package/dist/history-DCWHRTO5.cjs +0 -13
  171. package/dist/hooks-DIKRBMGT.js +0 -12
  172. package/dist/hooks-UE4W6JED.cjs +0 -12
  173. package/dist/i18n-5ANEIZNF.cjs +0 -32
  174. package/dist/ide-ELI5WKC5.cjs +0 -11
  175. package/dist/ide-IGOTWN43.js +0 -11
  176. package/dist/init-5IESXIGG.cjs +0 -9
  177. package/dist/init-VPDGIJKT.js +0 -9
  178. package/dist/language-NN6KLKZ4.cjs +0 -16
  179. package/dist/logout-FKYZ5Z2L.cjs +0 -16
  180. package/dist/mcp-F7MAPBDQ.cjs +0 -15
  181. package/dist/memory-YD5Y6RJG.cjs +0 -9
  182. package/dist/model-2IBHIA4J.cjs +0 -9
  183. package/dist/new-UC5O66BW.cjs +0 -9
  184. package/dist/permissions-V2BSHU5V.js +0 -12
  185. package/dist/permissions-WDZMVJAZ.cjs +0 -12
  186. package/dist/quit-47THY4BD.cjs +0 -9
  187. package/dist/quit-FCYYB2AN.js +0 -9
  188. package/dist/resume-4ED5MHL3.cjs +0 -12
  189. package/dist/resume-J64OIPHB.js +0 -12
  190. package/dist/search-RIGXYKSK.cjs +0 -14
  191. package/dist/sessions-7P5DWTIT.cjs +0 -9
  192. package/dist/share-DR2FDJLT.cjs +0 -13
  193. package/dist/share-JEF3735D.js +0 -13
  194. package/dist/skills-B7AKVGOU.cjs +0 -13
  195. package/dist/skills-new-3G7YDTLP.js +0 -14
  196. package/dist/skills-new-Q5QWAI4L.cjs +0 -14
  197. package/dist/status-F2NCXE34.js +0 -10
  198. package/dist/status-Y6SL5ZLZ.cjs +0 -10
  199. package/dist/sync-LJNEHT7Y.cjs +0 -16
  200. package/dist/theme-MKTWPNTN.cjs +0 -16
  201. package/dist/undo-NKBO3KWB.js +0 -9
  202. package/dist/undo-T3KL6SKD.cjs +0 -9
package/dist/index.cjs CHANGED
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
3
3
 
4
+ var _chunkXL77XYI2cjs = require('./chunk-XL77XYI2.cjs');
5
+
6
+
4
7
  var _chunkL42HTMMRcjs = require('./chunk-L42HTMMR.cjs');
5
8
 
6
9
 
@@ -13,64 +16,62 @@ var _chunkWOGJXDBUcjs = require('./chunk-WOGJXDBU.cjs');
13
16
  var _chunkDSKVMFRMcjs = require('./chunk-DSKVMFRM.cjs');
14
17
 
15
18
 
16
- var _chunkXL77XYI2cjs = require('./chunk-XL77XYI2.cjs');
17
- require('./chunk-KC5FPUOF.cjs');
19
+ var _chunkI6DBWNLNcjs = require('./chunk-I6DBWNLN.cjs');
18
20
 
19
21
 
20
- var _chunkFONQG5OCcjs = require('./chunk-FONQG5OC.cjs');
21
22
 
22
-
23
-
24
- var _chunkTYTHI5MCcjs = require('./chunk-TYTHI5MC.cjs');
25
- require('./chunk-MVCB7ZQE.cjs');
26
- require('./chunk-UY7S6R4Y.cjs');
27
- require('./chunk-NRDP3C3B.cjs');
28
- require('./chunk-CNDQ3TW6.cjs');
29
- require('./chunk-G6YDQTR2.cjs');
30
- require('./chunk-H2MWZF6E.cjs');
31
- require('./chunk-R6MSNNMX.cjs');
23
+ var _chunkZLOTP56Bcjs = require('./chunk-ZLOTP56B.cjs');
24
+ require('./chunk-ULMPJUJW.cjs');
25
+ require('./chunk-PDKNHU5G.cjs');
26
+ require('./chunk-SZP4ULM5.cjs');
27
+ require('./chunk-ZKZRFH37.cjs');
28
+ require('./chunk-HSPWX4Z2.cjs');
29
+ require('./chunk-KC5FPUOF.cjs');
30
+ require('./chunk-V7YTCNMN.cjs');
31
+ require('./chunk-425MT6Y5.cjs');
32
32
  require('./chunk-JHGIWNHL.cjs');
33
- require('./chunk-BGKEM66R.cjs');
34
- require('./chunk-JEWRDSNA.cjs');
35
- require('./chunk-SJLUPGYS.cjs');
36
- require('./chunk-LEXRXG3R.cjs');
37
- require('./chunk-VR35C7QS.cjs');
38
- require('./chunk-RSRVPJQC.cjs');
33
+ require('./chunk-SMHY3Q7B.cjs');
34
+ require('./chunk-FEVHH525.cjs');
35
+ require('./chunk-DSCQPWUB.cjs');
36
+ require('./chunk-DZHR34H6.cjs');
37
+ require('./chunk-MNSTWHK3.cjs');
38
+ require('./chunk-R5OO7MEB.cjs');
39
39
  require('./chunk-3S4DEIJP.cjs');
40
40
  require('./chunk-FPHU2ES6.cjs');
41
- require('./chunk-PDWOUNO7.cjs');
41
+ require('./chunk-VVBBEYTH.cjs');
42
42
 
43
43
 
44
44
  var _chunkTSY7JHIVcjs = require('./chunk-TSY7JHIV.cjs');
45
- require('./chunk-ALU2PTZB.cjs');
46
- require('./chunk-4V2FH5QE.cjs');
47
- require('./chunk-73EJJCTX.cjs');
48
- require('./chunk-GV3JV6GI.cjs');
49
- require('./chunk-U6HBUXUW.cjs');
50
- require('./chunk-GRFEUDX5.cjs');
45
+ require('./chunk-PKOAXQKW.cjs');
46
+ require('./chunk-4HA7IHLJ.cjs');
47
+ require('./chunk-43XS26AQ.cjs');
48
+ require('./chunk-SFNT5DYE.cjs');
49
+ require('./chunk-IZBCMJHJ.cjs');
50
+ require('./chunk-B6EBHCK2.cjs');
51
51
 
52
52
 
53
53
  var _chunkZ4J4W6YQcjs = require('./chunk-Z4J4W6YQ.cjs');
54
54
  require('./chunk-M7RVTUWE.cjs');
55
- require('./chunk-RONDHULN.cjs');
56
- require('./chunk-R43FOIQH.cjs');
57
- require('./chunk-25K6ONCQ.cjs');
58
- require('./chunk-VIGSERLH.cjs');
59
- require('./chunk-TVFQ3N5M.cjs');
60
- require('./chunk-RXOLZ3BF.cjs');
55
+ require('./chunk-FHUNAB2K.cjs');
56
+ require('./chunk-SIGWDEPS.cjs');
57
+ require('./chunk-CKN2BLHK.cjs');
58
+ require('./chunk-U7CZFKPL.cjs');
59
+ require('./chunk-ZXIQCYYV.cjs');
60
+ require('./chunk-RUZB43HU.cjs');
61
+ require('./chunk-MTALRU7R.cjs');
61
62
  require('./chunk-MFK6HE47.cjs');
62
63
 
63
64
 
64
- var _chunk3CNRH36Gcjs = require('./chunk-3CNRH36G.cjs');
65
- require('./chunk-XE7T6YJV.cjs');
65
+ var _chunkNUHYCFHWcjs = require('./chunk-NUHYCFHW.cjs');
66
+ require('./chunk-Y2ZSH3YF.cjs');
66
67
 
67
68
 
68
- var _chunkKEAWYW5Ycjs = require('./chunk-KEAWYW5Y.cjs');
69
- require('./chunk-7QLGK2XE.cjs');
69
+ var _chunkCH4SPVFDcjs = require('./chunk-CH4SPVFD.cjs');
70
+ require('./chunk-BRXIEKJ3.cjs');
70
71
 
71
72
 
72
73
  var _chunkULQ6MDSJcjs = require('./chunk-ULQ6MDSJ.cjs');
73
- require('./chunk-IN74JKZ2.cjs');
74
+ require('./chunk-RFNCTE4V.cjs');
74
75
  require('./chunk-VXCMGBXY.cjs');
75
76
 
76
77
 
@@ -79,7 +80,7 @@ require('./chunk-VXCMGBXY.cjs');
79
80
 
80
81
 
81
82
 
82
- var _chunk5E2XJK3Ocjs = require('./chunk-5E2XJK3O.cjs');
83
+ var _chunkEOGKE5GDcjs = require('./chunk-EOGKE5GD.cjs');
83
84
 
84
85
 
85
86
 
@@ -96,8 +97,8 @@ var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
96
97
 
97
98
 
98
99
 
99
- var _chunkBOU24HF2cjs = require('./chunk-BOU24HF2.cjs');
100
- require('./chunk-EFBQFSY6.cjs');
100
+ var _chunkXBUMKEFNcjs = require('./chunk-XBUMKEFN.cjs');
101
+ require('./chunk-AIH6GUGB.cjs');
101
102
 
102
103
 
103
104
 
@@ -110,7 +111,7 @@ var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
110
111
 
111
112
 
112
113
 
113
- var _chunk4BVRSVS2cjs = require('./chunk-4BVRSVS2.cjs');
114
+ var _chunk2U5HFVROcjs = require('./chunk-2U5HFVRO.cjs');
114
115
 
115
116
  // src/index.ts
116
117
  require('dotenv/config');
@@ -430,10 +431,18 @@ function printStartupCheckResults(results, verbose = false) {
430
431
 
431
432
 
432
433
 
433
- var GITHUB_API_URL = "https://api.github.com/repos/autohandai/code-cli/releases/latest";
434
- var CACHE_FILE = path18.default.join(_os2.default.homedir(), ".autohand", "version-check.json");
434
+ var GITHUB_REPO = "autohandai/code-cli";
435
+ var GITHUB_API_LATEST_URL = `https://api.github.com/repos/${GITHUB_REPO}/releases/latest`;
436
+ var GITHUB_API_RELEASES_URL = `https://api.github.com/repos/${GITHUB_REPO}/releases?per_page=10`;
437
+ var CACHE_DIR = path18.default.join(_os2.default.homedir(), ".autohand");
435
438
  var DEFAULT_CHECK_INTERVAL_HOURS = 24;
436
439
  var REQUEST_TIMEOUT_MS = 3e3;
440
+ function detectChannel(version) {
441
+ return version.includes("-alpha.") ? "alpha" : "stable";
442
+ }
443
+ function getCacheFile(channel) {
444
+ return path18.default.join(CACHE_DIR, `version-check-${channel}.json`);
445
+ }
437
446
  function compareVersions(a, b) {
438
447
  const cleanA = a.replace(/^v/, "");
439
448
  const cleanB = b.replace(/^v/, "");
@@ -454,20 +463,22 @@ function compareVersions(a, b) {
454
463
  }
455
464
  return 0;
456
465
  }
457
- async function readCache() {
466
+ async function readCache(channel) {
458
467
  try {
459
- if (await _fsextra2.default.pathExists(CACHE_FILE)) {
460
- const data = await _fsextra2.default.readJson(CACHE_FILE);
468
+ const cacheFile = getCacheFile(channel);
469
+ if (await _fsextra2.default.pathExists(cacheFile)) {
470
+ const data = await _fsextra2.default.readJson(cacheFile);
461
471
  return data;
462
472
  }
463
473
  } catch (e6) {
464
474
  }
465
475
  return null;
466
476
  }
467
- async function writeCache(cache) {
477
+ async function writeCache(channel, cache) {
468
478
  try {
469
- await _fsextra2.default.ensureDir(path18.default.dirname(CACHE_FILE));
470
- await _fsextra2.default.writeJson(CACHE_FILE, cache, { spaces: 2 });
479
+ const cacheFile = getCacheFile(channel);
480
+ await _fsextra2.default.ensureDir(path18.default.dirname(cacheFile));
481
+ await _fsextra2.default.writeJson(cacheFile, cache, { spaces: 2 });
471
482
  } catch (e7) {
472
483
  }
473
484
  }
@@ -481,11 +492,11 @@ function isCacheValid(cache, intervalHours) {
481
492
  return false;
482
493
  }
483
494
  }
484
- async function fetchLatestRelease() {
495
+ async function fetchLatestStableRelease() {
485
496
  try {
486
497
  const controller = new AbortController();
487
498
  const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
488
- const response = await fetch(GITHUB_API_URL, {
499
+ const response = await fetch(GITHUB_API_LATEST_URL, {
489
500
  headers: {
490
501
  "Accept": "application/vnd.github.v3+json",
491
502
  "User-Agent": "autohand-cli"
@@ -500,30 +511,66 @@ async function fetchLatestRelease() {
500
511
  if (data.tag_name) {
501
512
  return {
502
513
  version: data.tag_name.replace(/^v/, ""),
503
- url: data.html_url || `https://github.com/autohandai/code-cli/releases/tag/${data.tag_name}`
514
+ url: data.html_url || `https://github.com/${GITHUB_REPO}/releases/tag/${data.tag_name}`
504
515
  };
505
516
  }
506
517
  } catch (e9) {
507
518
  }
508
519
  return null;
509
520
  }
521
+ async function fetchLatestAlphaRelease() {
522
+ try {
523
+ const controller = new AbortController();
524
+ const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
525
+ const response = await fetch(GITHUB_API_RELEASES_URL, {
526
+ headers: {
527
+ "Accept": "application/vnd.github.v3+json",
528
+ "User-Agent": "autohand-cli"
529
+ },
530
+ signal: controller.signal
531
+ });
532
+ clearTimeout(timeout);
533
+ if (!response.ok) {
534
+ return null;
535
+ }
536
+ const releases = await response.json();
537
+ for (const release of releases) {
538
+ if (release.prerelease && release.tag_name) {
539
+ return {
540
+ version: release.tag_name.replace(/^v/, ""),
541
+ url: release.html_url || `https://github.com/${GITHUB_REPO}/releases/tag/${release.tag_name}`
542
+ };
543
+ }
544
+ }
545
+ } catch (e10) {
546
+ }
547
+ return null;
548
+ }
549
+ function getInstallHint(channel) {
550
+ if (channel === "alpha") {
551
+ return "curl -fsSL https://autohand.ai/install.sh | sh -s -- --alpha";
552
+ }
553
+ return "curl -fsSL https://autohand.ai/install.sh | sh";
554
+ }
510
555
  async function checkForUpdates(currentVersion, options = {}) {
511
556
  const {
512
557
  checkIntervalHours = DEFAULT_CHECK_INTERVAL_HOURS,
513
558
  forceCheck = false
514
559
  } = options;
560
+ const channel = detectChannel(currentVersion);
515
561
  const result = {
516
562
  currentVersion,
517
563
  latestVersion: null,
518
564
  isUpToDate: true,
519
- updateAvailable: false
565
+ updateAvailable: false,
566
+ channel
520
567
  };
521
568
  if (process.env.AUTOHAND_SKIP_UPDATE_CHECK === "1") {
522
569
  return result;
523
570
  }
524
571
  try {
525
572
  if (!forceCheck) {
526
- const cache = await readCache();
573
+ const cache = await readCache(channel);
527
574
  if (cache && isCacheValid(cache, checkIntervalHours)) {
528
575
  result.latestVersion = cache.latestVersion;
529
576
  result.releaseUrl = cache.releaseUrl;
@@ -533,14 +580,14 @@ async function checkForUpdates(currentVersion, options = {}) {
533
580
  return result;
534
581
  }
535
582
  }
536
- const latest = await fetchLatestRelease();
583
+ const latest = channel === "alpha" ? await fetchLatestAlphaRelease() : await fetchLatestStableRelease();
537
584
  if (latest) {
538
585
  result.latestVersion = latest.version;
539
586
  result.releaseUrl = latest.url;
540
587
  const comparison = compareVersions(currentVersion, latest.version);
541
588
  result.isUpToDate = comparison >= 0;
542
589
  result.updateAvailable = comparison < 0;
543
- await writeCache({
590
+ await writeCache(channel, {
544
591
  lastCheck: (/* @__PURE__ */ new Date()).toISOString(),
545
592
  latestVersion: latest.version,
546
593
  releaseUrl: latest.url
@@ -594,7 +641,7 @@ var TelemetryClient = class {
594
641
  const id = _crypto2.default.randomUUID();
595
642
  _fsextra2.default.writeFileSync(DEVICE_ID_FILE, id);
596
643
  return id;
597
- } catch (e10) {
644
+ } catch (e11) {
598
645
  return _crypto2.default.randomUUID();
599
646
  }
600
647
  }
@@ -608,7 +655,7 @@ var TelemetryClient = class {
608
655
  const data = _fsextra2.default.readFileSync(QUEUE_FILE, "utf8");
609
656
  this.queue = JSON.parse(data);
610
657
  }
611
- } catch (e11) {
658
+ } catch (e12) {
612
659
  this.queue = [];
613
660
  }
614
661
  }
@@ -619,7 +666,7 @@ var TelemetryClient = class {
619
666
  try {
620
667
  _fsextra2.default.ensureDirSync(TELEMETRY_DIR);
621
668
  _fsextra2.default.writeFileSync(QUEUE_FILE, JSON.stringify(this.queue, null, 2));
622
- } catch (e12) {
669
+ } catch (e13) {
623
670
  }
624
671
  }
625
672
  /**
@@ -662,7 +709,7 @@ var TelemetryClient = class {
662
709
  });
663
710
  clearTimeout(timeout);
664
711
  return response.ok;
665
- } catch (e13) {
712
+ } catch (e14) {
666
713
  return false;
667
714
  }
668
715
  }
@@ -724,7 +771,7 @@ var TelemetryClient = class {
724
771
  } else {
725
772
  failed = eventsToSend.length;
726
773
  }
727
- } catch (e14) {
774
+ } catch (e15) {
728
775
  failed = eventsToSend.length;
729
776
  await new Promise((resolve) => setTimeout(resolve, 1e3 * (attempt + 1)));
730
777
  }
@@ -779,7 +826,7 @@ var TelemetryClient = class {
779
826
  }
780
827
  _fsextra2.default.writeFileSync(syncQueueFile, JSON.stringify(syncQueue, null, 2));
781
828
  return { success: false, error: "Offline - queued for sync" };
782
- } catch (e15) {
829
+ } catch (e16) {
783
830
  return { success: false, error: "Failed to queue session" };
784
831
  }
785
832
  }
@@ -837,7 +884,7 @@ var TelemetryClient = class {
837
884
  _fsextra2.default.removeSync(syncQueueFile);
838
885
  }
839
886
  return { synced, failed };
840
- } catch (e16) {
887
+ } catch (e17) {
841
888
  return { synced: 0, failed: 0 };
842
889
  }
843
890
  }
@@ -884,7 +931,7 @@ var TelemetryManager = class {
884
931
  */
885
932
  getSystemInfo() {
886
933
  return {
887
- cliVersion: _chunkKEAWYW5Ycjs.package_default.version,
934
+ cliVersion: _chunkCH4SPVFDcjs.package_default.version,
888
935
  platform: process.platform,
889
936
  osVersion: _os2.default.release(),
890
937
  nodeVersion: process.version,
@@ -1141,7 +1188,7 @@ var PingService = class {
1141
1188
  const id = _crypto2.default.randomUUID();
1142
1189
  _fsextra2.default.writeFileSync(_chunkGIZL57FEcjs.AUTOHAND_FILES.deviceId, id);
1143
1190
  return id;
1144
- } catch (e17) {
1191
+ } catch (e18) {
1145
1192
  return _crypto2.default.randomUUID();
1146
1193
  }
1147
1194
  }
@@ -1159,7 +1206,7 @@ var PingService = class {
1159
1206
  return false;
1160
1207
  }
1161
1208
  }
1162
- } catch (e18) {
1209
+ } catch (e19) {
1163
1210
  }
1164
1211
  return true;
1165
1212
  }
@@ -1174,7 +1221,7 @@ var PingService = class {
1174
1221
  pingDate: (/* @__PURE__ */ new Date()).toISOString().split("T")[0]
1175
1222
  };
1176
1223
  await _fsextra2.default.writeJson(PING_CACHE_FILE, cache, { spaces: 2 });
1177
- } catch (e19) {
1224
+ } catch (e20) {
1178
1225
  }
1179
1226
  }
1180
1227
  /**
@@ -1220,7 +1267,7 @@ var PingService = class {
1220
1267
  latestVersion: data.latestVersion
1221
1268
  };
1222
1269
  }
1223
- } catch (e20) {
1270
+ } catch (e21) {
1224
1271
  } finally {
1225
1272
  this.isPinging = false;
1226
1273
  }
@@ -1285,7 +1332,7 @@ function detectStdinType(fstat = _fs.fstatSync) {
1285
1332
  return "pipe";
1286
1333
  }
1287
1334
  return "none";
1288
- } catch (e21) {
1335
+ } catch (e22) {
1289
1336
  return "none";
1290
1337
  }
1291
1338
  }
@@ -1417,7 +1464,7 @@ var GitIgnoreParser = class {
1417
1464
  let content = "";
1418
1465
  try {
1419
1466
  content = _fsextra2.default.readFileSync(patternsFilePath, "utf8");
1420
- } catch (e22) {
1467
+ } catch (e23) {
1421
1468
  return [];
1422
1469
  }
1423
1470
  const isExcludeFile = patternsFilePath.endsWith(path18.default.join(".git", "info", "exclude"));
@@ -1488,7 +1535,7 @@ var FileActionManager = class {
1488
1535
  const resolvedRoot = path18.default.resolve(workspaceRoot);
1489
1536
  try {
1490
1537
  this.workspaceRoot = _fsextra2.default.realpathSync(resolvedRoot);
1491
- } catch (e23) {
1538
+ } catch (e24) {
1492
1539
  this.workspaceRoot = resolvedRoot;
1493
1540
  }
1494
1541
  this.additionalDirs = [];
@@ -1500,7 +1547,7 @@ var FileActionManager = class {
1500
1547
  let normalized;
1501
1548
  try {
1502
1549
  normalized = _fsextra2.default.realpathSync(resolved);
1503
- } catch (e24) {
1550
+ } catch (e25) {
1504
1551
  normalized = resolved;
1505
1552
  }
1506
1553
  if (normalized.endsWith(path18.default.sep) && normalized.length > 1) {
@@ -1528,7 +1575,7 @@ var FileActionManager = class {
1528
1575
  let normalized;
1529
1576
  try {
1530
1577
  normalized = _fsextra2.default.realpathSync(resolved);
1531
- } catch (e25) {
1578
+ } catch (e26) {
1532
1579
  normalized = resolved;
1533
1580
  }
1534
1581
  if (normalized.endsWith(path18.default.sep) && normalized.length > 1) {
@@ -1876,7 +1923,7 @@ var FileActionManager = class {
1876
1923
  file: normalizedRel || path18.default.basename(current),
1877
1924
  snippet
1878
1925
  });
1879
- } catch (e26) {
1926
+ } catch (e27) {
1880
1927
  continue;
1881
1928
  }
1882
1929
  }
@@ -1901,12 +1948,12 @@ var FileActionManager = class {
1901
1948
  let realPath;
1902
1949
  try {
1903
1950
  realPath = _fsextra2.default.realpathSync(resolved);
1904
- } catch (e27) {
1951
+ } catch (e28) {
1905
1952
  const parentDir = path18.default.dirname(resolved);
1906
1953
  try {
1907
1954
  const realParent = _fsextra2.default.realpathSync(parentDir);
1908
1955
  realPath = path18.default.join(realParent, path18.default.basename(resolved));
1909
- } catch (e28) {
1956
+ } catch (e29) {
1910
1957
  realPath = resolved;
1911
1958
  }
1912
1959
  }
@@ -1915,7 +1962,7 @@ var FileActionManager = class {
1915
1962
  let realRoot;
1916
1963
  try {
1917
1964
  realRoot = _fsextra2.default.realpathSync(allowedRoot);
1918
- } catch (e29) {
1965
+ } catch (e30) {
1919
1966
  realRoot = allowedRoot;
1920
1967
  }
1921
1968
  const rootWithSep = realRoot.endsWith(path18.default.sep) ? realRoot : `${realRoot}${path18.default.sep}`;
@@ -1962,7 +2009,7 @@ var FileActionManager = class {
1962
2009
  }
1963
2010
  }
1964
2011
  }
1965
- } catch (e30) {
2012
+ } catch (e31) {
1966
2013
  continue;
1967
2014
  }
1968
2015
  }
@@ -2068,7 +2115,7 @@ var OllamaProvider = class {
2068
2115
  }
2069
2116
  const data = await response.json();
2070
2117
  return data.models.map((m) => m.name);
2071
- } catch (e31) {
2118
+ } catch (e32) {
2072
2119
  return [];
2073
2120
  }
2074
2121
  }
@@ -2076,7 +2123,7 @@ var OllamaProvider = class {
2076
2123
  try {
2077
2124
  const response = await fetch(`${this.baseUrl}/api/tags`);
2078
2125
  return response.ok;
2079
- } catch (e32) {
2126
+ } catch (e33) {
2080
2127
  return false;
2081
2128
  }
2082
2129
  }
@@ -2134,7 +2181,7 @@ var OllamaProvider = class {
2134
2181
  delete body.tools;
2135
2182
  return this.complete(request);
2136
2183
  }
2137
- } catch (e33) {
2184
+ } catch (e34) {
2138
2185
  }
2139
2186
  throw new Error(`Ollama API error: ${response.status} ${response.statusText}${errorDetail}`);
2140
2187
  }
@@ -2191,7 +2238,7 @@ var OllamaProvider = class {
2191
2238
  const data = JSON.parse(line);
2192
2239
  fullContent += data.message.content;
2193
2240
  lastData = data;
2194
- } catch (e34) {
2241
+ } catch (e35) {
2195
2242
  }
2196
2243
  }
2197
2244
  }
@@ -2237,7 +2284,7 @@ var OpenAIProvider = class {
2237
2284
  }
2238
2285
  });
2239
2286
  return response.ok;
2240
- } catch (e35) {
2287
+ } catch (e36) {
2241
2288
  return false;
2242
2289
  }
2243
2290
  }
@@ -2341,7 +2388,7 @@ var LlamaCppProvider = class {
2341
2388
  }
2342
2389
  const data = await response.json();
2343
2390
  return _nullishCoalesce(_optionalChain([data, 'access', _44 => _44.data, 'optionalAccess', _45 => _45.map, 'call', _46 => _46((m) => m.id)]), () => ( [this.model]));
2344
- } catch (e36) {
2391
+ } catch (e37) {
2345
2392
  return this.model ? [this.model] : [];
2346
2393
  }
2347
2394
  }
@@ -2349,7 +2396,7 @@ var LlamaCppProvider = class {
2349
2396
  try {
2350
2397
  const response = await fetch(`${this.baseUrl}/health`);
2351
2398
  return response.ok;
2352
- } catch (e37) {
2399
+ } catch (e38) {
2353
2400
  return false;
2354
2401
  }
2355
2402
  }
@@ -2640,10 +2687,10 @@ var OpenRouterClient = class {
2640
2687
  if (typeof errorDetail === "object") {
2641
2688
  errorDetail = JSON.stringify(errorDetail);
2642
2689
  }
2643
- } catch (e38) {
2690
+ } catch (e39) {
2644
2691
  try {
2645
2692
  errorDetail = await response.text();
2646
- } catch (e39) {
2693
+ } catch (e40) {
2647
2694
  }
2648
2695
  }
2649
2696
  const friendlyMessage = FRIENDLY_ERRORS[status];
@@ -2756,7 +2803,7 @@ var MLXProvider = class {
2756
2803
  }
2757
2804
  const data = await response.json();
2758
2805
  return _nullishCoalesce(_optionalChain([data, 'access', _79 => _79.data, 'optionalAccess', _80 => _80.map, 'call', _81 => _81((m) => m.id)]), () => ( (this.model ? [this.model] : [])));
2759
- } catch (e40) {
2806
+ } catch (e41) {
2760
2807
  return this.model ? [this.model] : [];
2761
2808
  }
2762
2809
  }
@@ -2767,7 +2814,7 @@ var MLXProvider = class {
2767
2814
  try {
2768
2815
  const response = await fetch(`${this.baseUrl}/v1/models`);
2769
2816
  return response.ok;
2770
- } catch (e41) {
2817
+ } catch (e42) {
2771
2818
  return false;
2772
2819
  }
2773
2820
  }
@@ -3038,10 +3085,10 @@ var LLMGatewayClient = class {
3038
3085
  if (typeof errorDetail === "object") {
3039
3086
  errorDetail = JSON.stringify(errorDetail);
3040
3087
  }
3041
- } catch (e42) {
3088
+ } catch (e43) {
3042
3089
  try {
3043
3090
  errorDetail = await response.text();
3044
- } catch (e43) {
3091
+ } catch (e44) {
3045
3092
  }
3046
3093
  }
3047
3094
  const friendlyMessage = FRIENDLY_ERRORS2[status];
@@ -3691,7 +3738,7 @@ function parseBase64DataUrl(dataUrl) {
3691
3738
  try {
3692
3739
  const data = Buffer.from(base64Data, "base64");
3693
3740
  return { mimeType, data };
3694
- } catch (e44) {
3741
+ } catch (e45) {
3695
3742
  return void 0;
3696
3743
  }
3697
3744
  }
@@ -3814,7 +3861,7 @@ function enableBracketedPaste(output) {
3814
3861
  function disableBracketedPaste(output) {
3815
3862
  try {
3816
3863
  output.write("\x1B[?2004l");
3817
- } catch (e45) {
3864
+ } catch (e46) {
3818
3865
  }
3819
3866
  }
3820
3867
  function createReadline(stdInput, stdOutput) {
@@ -3823,7 +3870,7 @@ function createReadline(stdInput, stdOutput) {
3823
3870
  enableBracketedPaste(stdOutput);
3824
3871
  try {
3825
3872
  stdInput.resume();
3826
- } catch (e46) {
3873
+ } catch (e47) {
3827
3874
  }
3828
3875
  const rl = _readline2.default.createInterface({
3829
3876
  input: stdInput,
@@ -3911,7 +3958,7 @@ async function promptOnce(options) {
3911
3958
  \u{1F4F7} Loaded image: ${filePath} -> [Image #${id}]
3912
3959
  `));
3913
3960
  }
3914
- } catch (e47) {
3961
+ } catch (e48) {
3915
3962
  }
3916
3963
  }
3917
3964
  }
@@ -3951,7 +3998,7 @@ async function promptOnce(options) {
3951
3998
  \u{1F4F7} Loaded image: ${filePath} -> [Image #${id}]
3952
3999
  `));
3953
4000
  }
3954
- } catch (e48) {
4001
+ } catch (e49) {
3955
4002
  }
3956
4003
  }
3957
4004
  }
@@ -3971,7 +4018,7 @@ async function promptOnce(options) {
3971
4018
  \u{1F4F7} Loaded image: ${filePath} -> [Image #${id}]
3972
4019
  `));
3973
4020
  }
3974
- } catch (e49) {
4021
+ } catch (e50) {
3975
4022
  }
3976
4023
  }
3977
4024
  }
@@ -7401,7 +7448,7 @@ async function listDirectoryTree(root, options = {}) {
7401
7448
  let entries;
7402
7449
  try {
7403
7450
  entries = await _fsextra2.default.readdir(current);
7404
- } catch (e50) {
7451
+ } catch (e51) {
7405
7452
  return;
7406
7453
  }
7407
7454
  const slice = entries.slice(0, maxEntries - result.length);
@@ -7420,7 +7467,7 @@ async function listDirectoryTree(root, options = {}) {
7420
7467
  if (stats.isDirectory() && currentDepth < depth) {
7421
7468
  await walk(full, `${prefix} `, currentDepth + 1);
7422
7469
  }
7423
- } catch (e51) {
7470
+ } catch (e52) {
7424
7471
  continue;
7425
7472
  }
7426
7473
  if (result.length >= maxEntries) {
@@ -7526,7 +7573,7 @@ var WorktreeManager = class {
7526
7573
  try {
7527
7574
  const status = await this.getWorktreeStatus(wt);
7528
7575
  statuses.push(status);
7529
- } catch (e52) {
7576
+ } catch (e53) {
7530
7577
  statuses.push({
7531
7578
  worktree: wt,
7532
7579
  gitStatus: { staged: 0, modified: 0, untracked: 0, conflicts: 0, ahead: 0, behind: 0 },
@@ -7646,7 +7693,7 @@ var WorktreeManager = class {
7646
7693
  try {
7647
7694
  await this.remove(wt.path, { force: true, deleteBranch: options.removeMerged });
7648
7695
  removed.push(wt.path);
7649
- } catch (e53) {
7696
+ } catch (e54) {
7650
7697
  }
7651
7698
  }
7652
7699
  _child_process.spawnSync.call(void 0, "git", ["worktree", "prune"], { cwd: this.repoRoot });
@@ -7723,7 +7770,7 @@ var WorktreeManager = class {
7723
7770
  } catch (error) {
7724
7771
  try {
7725
7772
  await this.runInWorktree(wt.path, `git ${strategy} --abort`);
7726
- } catch (e54) {
7773
+ } catch (e55) {
7727
7774
  }
7728
7775
  failed.push(`${wt.path}: ${error.message}`);
7729
7776
  }
@@ -8426,10 +8473,10 @@ var ToolsRegistry = class {
8426
8473
  if (this.isValidMetaTool(data)) {
8427
8474
  this.metaToolCache.set(data.name, data);
8428
8475
  }
8429
- } catch (e55) {
8476
+ } catch (e56) {
8430
8477
  }
8431
8478
  }
8432
- } catch (e56) {
8479
+ } catch (e57) {
8433
8480
  }
8434
8481
  }
8435
8482
  isValidMetaTool(candidate) {
@@ -9684,7 +9731,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
9684
9731
  { label: "Edit - modify the message", value: "e" },
9685
9732
  { label: "No - cancel commit", value: "n" }
9686
9733
  ];
9687
- const modalResult = await _chunkBOU24HF2cjs.showModal.call(void 0, {
9734
+ const modalResult = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
9688
9735
  title: "Commit with this message?",
9689
9736
  options
9690
9737
  });
@@ -9693,7 +9740,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
9693
9740
  return "Commit cancelled by user";
9694
9741
  }
9695
9742
  if (modalResult.value === "e") {
9696
- const editedMessage = await _chunkBOU24HF2cjs.showInput.call(void 0, {
9743
+ const editedMessage = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
9697
9744
  title: "Enter commit message:",
9698
9745
  defaultValue: commitMessage
9699
9746
  });
@@ -9934,11 +9981,11 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
9934
9981
  }
9935
9982
  console.log(_chalk2.default.cyan(`
9936
9983
  \u{1F50D} Searching web: "${action.query}"...`));
9937
- const results = await _chunk5E2XJK3Ocjs.webSearch.call(void 0, action.query, {
9984
+ const results = await _chunkEOGKE5GDcjs.webSearch.call(void 0, action.query, {
9938
9985
  maxResults: action.max_results,
9939
9986
  searchType: action.search_type
9940
9987
  });
9941
- const formatted = _chunk5E2XJK3Ocjs.formatSearchResults.call(void 0, results);
9988
+ const formatted = _chunkEOGKE5GDcjs.formatSearchResults.call(void 0, results);
9942
9989
  console.log(_chalk2.default.gray(formatted.split("\n").slice(0, 10).join("\n")));
9943
9990
  if (results.length > 3) {
9944
9991
  console.log(_chalk2.default.gray(" ..."));
@@ -9951,7 +9998,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
9951
9998
  }
9952
9999
  console.log(_chalk2.default.cyan(`
9953
10000
  \u{1F310} Fetching: ${action.url}...`));
9954
- const content = await _chunk5E2XJK3Ocjs.fetchUrl.call(void 0, action.url, {
10001
+ const content = await _chunkEOGKE5GDcjs.fetchUrl.call(void 0, action.url, {
9955
10002
  maxLength: action.max_length
9956
10003
  });
9957
10004
  const preview = content.slice(0, 500);
@@ -9965,11 +10012,11 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
9965
10012
  const registryLabel = action.registry ? ` (${action.registry})` : "";
9966
10013
  console.log(_chalk2.default.cyan(`
9967
10014
  \u{1F4E6} Getting package info: ${action.package_name}${action.version ? `@${action.version}` : ""}${registryLabel}...`));
9968
- const info = await _chunk5E2XJK3Ocjs.getPackageInfo.call(void 0, action.package_name, {
10015
+ const info = await _chunkEOGKE5GDcjs.getPackageInfo.call(void 0, action.package_name, {
9969
10016
  registry: action.registry,
9970
10017
  version: action.version
9971
10018
  });
9972
- const formatted = _chunk5E2XJK3Ocjs.formatPackageInfo.call(void 0, info);
10019
+ const formatted = _chunkEOGKE5GDcjs.formatPackageInfo.call(void 0, info);
9973
10020
  console.log(_chalk2.default.gray(formatted));
9974
10021
  return formatted;
9975
10022
  }
@@ -10022,7 +10069,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
10022
10069
  label: `${options.length + 1}. Other (type your own answer)`,
10023
10070
  value: "__other__"
10024
10071
  });
10025
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
10072
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
10026
10073
  title: "Select an answer:",
10027
10074
  options
10028
10075
  });
@@ -10032,7 +10079,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
10032
10079
  return "<answer>No answer provided</answer>";
10033
10080
  }
10034
10081
  if (selected === "__other__") {
10035
- const answer = await _chunkBOU24HF2cjs.showInput.call(void 0, {
10082
+ const answer = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
10036
10083
  title: "Your answer:"
10037
10084
  });
10038
10085
  if (!answer) {
@@ -10049,7 +10096,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
10049
10096
  `));
10050
10097
  return `<answer>${selected}</answer>`;
10051
10098
  } else {
10052
- const answer = await _chunkBOU24HF2cjs.showInput.call(void 0, {
10099
+ const answer = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
10053
10100
  title: "Your answer:"
10054
10101
  });
10055
10102
  const finalAnswer = answer || "No answer provided";
@@ -10424,7 +10471,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
10424
10471
  return `[BLOCKED] Commit blocked: ${result.blockedCount} high-severity secret(s) detected. Remove secrets before committing.`;
10425
10472
  }
10426
10473
  return void 0;
10427
- } catch (e57) {
10474
+ } catch (e58) {
10428
10475
  console.log(_chalk2.default.yellow("\n[WARN] Could not scan for secrets (git diff failed)"));
10429
10476
  return void 0;
10430
10477
  }
@@ -10610,7 +10657,7 @@ var SlashCommandHandler = class {
10610
10657
  try {
10611
10658
  switch (command) {
10612
10659
  case "/model": {
10613
- const { model } = await Promise.resolve().then(() => _interopRequireWildcard(require("./model-2IBHIA4J.cjs")));
10660
+ const { model } = await Promise.resolve().then(() => _interopRequireWildcard(require("./model-Y274DBDO.cjs")));
10614
10661
  return model(this.ctx);
10615
10662
  }
10616
10663
  case "/cc": {
@@ -10618,28 +10665,28 @@ var SlashCommandHandler = class {
10618
10665
  return cc(this.ctx);
10619
10666
  }
10620
10667
  case "/search": {
10621
- const { search } = await Promise.resolve().then(() => _interopRequireWildcard(require("./search-RIGXYKSK.cjs")));
10668
+ const { search } = await Promise.resolve().then(() => _interopRequireWildcard(require("./search-WQNXDA2E.cjs")));
10622
10669
  return search(this.ctx);
10623
10670
  }
10624
10671
  case "/init": {
10625
- const { init } = await Promise.resolve().then(() => _interopRequireWildcard(require("./init-5IESXIGG.cjs")));
10672
+ const { init } = await Promise.resolve().then(() => _interopRequireWildcard(require("./init-JCC7RVMC.cjs")));
10626
10673
  return init(this.ctx);
10627
10674
  }
10628
10675
  case "/quit": {
10629
- const { quit } = await Promise.resolve().then(() => _interopRequireWildcard(require("./quit-47THY4BD.cjs")));
10676
+ const { quit } = await Promise.resolve().then(() => _interopRequireWildcard(require("./quit-NC32OEJG.cjs")));
10630
10677
  return quit();
10631
10678
  }
10632
10679
  case "/help":
10633
10680
  case "/?": {
10634
- const { help } = await Promise.resolve().then(() => _interopRequireWildcard(require("./help-JHVMHO7M.cjs")));
10681
+ const { help } = await Promise.resolve().then(() => _interopRequireWildcard(require("./help-CWMUGD3V.cjs")));
10635
10682
  return help();
10636
10683
  }
10637
10684
  case "/about": {
10638
- const { about } = await Promise.resolve().then(() => _interopRequireWildcard(require("./about-7VIDF3B7.cjs")));
10685
+ const { about } = await Promise.resolve().then(() => _interopRequireWildcard(require("./about-EABQNJGV.cjs")));
10639
10686
  return about();
10640
10687
  }
10641
10688
  case "/agents": {
10642
- const { handler } = await Promise.resolve().then(() => _interopRequireWildcard(require("./agents-UDXO2SOD.cjs")));
10689
+ const { handler } = await Promise.resolve().then(() => _interopRequireWildcard(require("./agents-UOSPKLQL.cjs")));
10643
10690
  const output = await handler();
10644
10691
  if (output) {
10645
10692
  console.log(output);
@@ -10648,19 +10695,19 @@ var SlashCommandHandler = class {
10648
10695
  }
10649
10696
  case "/agents new":
10650
10697
  case "/agents-new": {
10651
- const { createAgent } = await Promise.resolve().then(() => _interopRequireWildcard(require("./agents-new-VPAU4JNV.cjs")));
10698
+ const { createAgent } = await Promise.resolve().then(() => _interopRequireWildcard(require("./agents-new-WI2EL7IJ.cjs")));
10652
10699
  return createAgent(this.ctx);
10653
10700
  }
10654
10701
  case "/feedback": {
10655
- const { feedback } = await Promise.resolve().then(() => _interopRequireWildcard(require("./feedback-O3644S7L.cjs")));
10702
+ const { feedback } = await Promise.resolve().then(() => _interopRequireWildcard(require("./feedback-CI4OIPOS.cjs")));
10656
10703
  return feedback(this.ctx);
10657
10704
  }
10658
10705
  case "/resume": {
10659
- const { resume } = await Promise.resolve().then(() => _interopRequireWildcard(require("./resume-4ED5MHL3.cjs")));
10706
+ const { resume } = await Promise.resolve().then(() => _interopRequireWildcard(require("./resume-GJIKIDPR.cjs")));
10660
10707
  return resume({ sessionManager: this.ctx.sessionManager, args });
10661
10708
  }
10662
10709
  case "/sessions": {
10663
- const { sessions } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sessions-7P5DWTIT.cjs")));
10710
+ const { sessions } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sessions-SAQU6MFA.cjs")));
10664
10711
  return sessions({ sessionManager: this.ctx.sessionManager, args });
10665
10712
  }
10666
10713
  case "/session": {
@@ -10668,7 +10715,7 @@ var SlashCommandHandler = class {
10668
10715
  return session({ sessionManager: this.ctx.sessionManager });
10669
10716
  }
10670
10717
  case "/undo": {
10671
- const { undo } = await Promise.resolve().then(() => _interopRequireWildcard(require("./undo-T3KL6SKD.cjs")));
10718
+ const { undo } = await Promise.resolve().then(() => _interopRequireWildcard(require("./undo-CTXQYE7C.cjs")));
10672
10719
  return undo({
10673
10720
  workspaceRoot: this.ctx.workspaceRoot,
10674
10721
  undoFileMutation: _nullishCoalesce(this.ctx.undoFileMutation, () => ( (async () => {
@@ -10678,7 +10725,7 @@ var SlashCommandHandler = class {
10678
10725
  });
10679
10726
  }
10680
10727
  case "/new": {
10681
- const { newConversation } = await Promise.resolve().then(() => _interopRequireWildcard(require("./new-UC5O66BW.cjs")));
10728
+ const { newConversation } = await Promise.resolve().then(() => _interopRequireWildcard(require("./new-BG5VIGZ7.cjs")));
10682
10729
  return newConversation({
10683
10730
  resetConversation: this.ctx.resetConversation,
10684
10731
  sessionManager: this.ctx.sessionManager,
@@ -10687,7 +10734,7 @@ var SlashCommandHandler = class {
10687
10734
  });
10688
10735
  }
10689
10736
  case "/memory": {
10690
- const { memory } = await Promise.resolve().then(() => _interopRequireWildcard(require("./memory-YD5Y6RJG.cjs")));
10737
+ const { memory } = await Promise.resolve().then(() => _interopRequireWildcard(require("./memory-JZ6NPSP3.cjs")));
10691
10738
  return memory({ memoryManager: this.ctx.memoryManager });
10692
10739
  }
10693
10740
  case "/formatters": {
@@ -10701,12 +10748,12 @@ var SlashCommandHandler = class {
10701
10748
  return null;
10702
10749
  }
10703
10750
  case "/completion": {
10704
- const { execute } = await Promise.resolve().then(() => _interopRequireWildcard(require("./completion-KFMUWCMT.cjs")));
10751
+ const { execute } = await Promise.resolve().then(() => _interopRequireWildcard(require("./completion-7WGMHKOR.cjs")));
10705
10752
  await execute(args.join(" "));
10706
10753
  return null;
10707
10754
  }
10708
10755
  case "/export": {
10709
- const { execute } = await Promise.resolve().then(() => _interopRequireWildcard(require("./export-X3PO3CLZ.cjs")));
10756
+ const { execute } = await Promise.resolve().then(() => _interopRequireWildcard(require("./export-BI54X3MP.cjs")));
10710
10757
  await execute(args.join(" "), {
10711
10758
  sessionManager: this.ctx.sessionManager,
10712
10759
  currentSession: this.ctx.currentSession,
@@ -10715,7 +10762,7 @@ var SlashCommandHandler = class {
10715
10762
  return null;
10716
10763
  }
10717
10764
  case "/share": {
10718
- const { execute } = await Promise.resolve().then(() => _interopRequireWildcard(require("./share-DR2FDJLT.cjs")));
10765
+ const { execute } = await Promise.resolve().then(() => _interopRequireWildcard(require("./share-2WH5ZVOO.cjs")));
10719
10766
  await execute(args.join(" "), {
10720
10767
  sessionManager: this.ctx.sessionManager,
10721
10768
  currentSession: this.ctx.currentSession,
@@ -10728,30 +10775,30 @@ var SlashCommandHandler = class {
10728
10775
  return null;
10729
10776
  }
10730
10777
  case "/status": {
10731
- const { status } = await Promise.resolve().then(() => _interopRequireWildcard(require("./status-Y6SL5ZLZ.cjs")));
10778
+ const { status } = await Promise.resolve().then(() => _interopRequireWildcard(require("./status-4EDV2LSY.cjs")));
10732
10779
  return status(this.ctx);
10733
10780
  }
10734
10781
  case "/login": {
10735
- const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-HZMQBI4Z.cjs")));
10782
+ const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-ISWYYBXP.cjs")));
10736
10783
  return login({ config: this.ctx.config });
10737
10784
  }
10738
10785
  case "/logout": {
10739
- const { logout } = await Promise.resolve().then(() => _interopRequireWildcard(require("./logout-FKYZ5Z2L.cjs")));
10786
+ const { logout } = await Promise.resolve().then(() => _interopRequireWildcard(require("./logout-3EKZM5J3.cjs")));
10740
10787
  return logout({ config: this.ctx.config });
10741
10788
  }
10742
10789
  case "/permissions": {
10743
- const { permissions } = await Promise.resolve().then(() => _interopRequireWildcard(require("./permissions-WDZMVJAZ.cjs")));
10790
+ const { permissions } = await Promise.resolve().then(() => _interopRequireWildcard(require("./permissions-QILEAGBP.cjs")));
10744
10791
  return permissions({ permissionManager: this.ctx.permissionManager });
10745
10792
  }
10746
10793
  case "/hooks": {
10747
- const { hooks } = await Promise.resolve().then(() => _interopRequireWildcard(require("./hooks-UE4W6JED.cjs")));
10794
+ const { hooks } = await Promise.resolve().then(() => _interopRequireWildcard(require("./hooks-62UDQBGH.cjs")));
10748
10795
  if (!this.ctx.hookManager) {
10749
10796
  return "Hook manager not available.";
10750
10797
  }
10751
10798
  return hooks({ hookManager: this.ctx.hookManager });
10752
10799
  }
10753
10800
  case "/skills": {
10754
- const { skills } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-B7AKVGOU.cjs")));
10801
+ const { skills } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-YTYGART7.cjs")));
10755
10802
  if (!this.ctx.skillsRegistry) {
10756
10803
  return "Skills registry not available.";
10757
10804
  }
@@ -10761,7 +10808,7 @@ var SlashCommandHandler = class {
10761
10808
  }, args);
10762
10809
  }
10763
10810
  case "/skills install": {
10764
- const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-IFUCRLZK.cjs")));
10811
+ const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-IKJZN4G2.cjs")));
10765
10812
  if (!this.ctx.skillsRegistry) {
10766
10813
  return "Skills registry not available.";
10767
10814
  }
@@ -10773,7 +10820,7 @@ var SlashCommandHandler = class {
10773
10820
  }
10774
10821
  case "/skills new":
10775
10822
  case "/skills-new": {
10776
- const { createSkill } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-new-Q5QWAI4L.cjs")));
10823
+ const { createSkill } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-new-O5LFVFZU.cjs")));
10777
10824
  if (!this.ctx.skillsRegistry) {
10778
10825
  return "Skills registry not available.";
10779
10826
  }
@@ -10784,7 +10831,7 @@ var SlashCommandHandler = class {
10784
10831
  });
10785
10832
  }
10786
10833
  case "/theme": {
10787
- const { theme } = await Promise.resolve().then(() => _interopRequireWildcard(require("./theme-MKTWPNTN.cjs")));
10834
+ const { theme } = await Promise.resolve().then(() => _interopRequireWildcard(require("./theme-EMJGULMI.cjs")));
10788
10835
  if (!this.ctx.config) {
10789
10836
  console.log(_chalk2.default.yellow("Config not available for theme selection."));
10790
10837
  return null;
@@ -10792,18 +10839,18 @@ var SlashCommandHandler = class {
10792
10839
  return theme({ config: this.ctx.config });
10793
10840
  }
10794
10841
  case "/automode": {
10795
- const { automode } = await Promise.resolve().then(() => _interopRequireWildcard(require("./automode-VVP2XR6T.cjs")));
10842
+ const { automode } = await Promise.resolve().then(() => _interopRequireWildcard(require("./automode-WLBQ7MN7.cjs")));
10796
10843
  return automode({
10797
10844
  automodeManager: this.ctx.automodeManager,
10798
10845
  workspaceRoot: this.ctx.workspaceRoot
10799
10846
  }, args);
10800
10847
  }
10801
10848
  case "/sync": {
10802
- const { sync } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sync-LJNEHT7Y.cjs")));
10849
+ const { sync } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sync-CQNQDNTJ.cjs")));
10803
10850
  return sync(this.ctx);
10804
10851
  }
10805
10852
  case "/add-dir": {
10806
- const { addDir } = await Promise.resolve().then(() => _interopRequireWildcard(require("./add-dir-7QE2YJ7H.cjs")));
10853
+ const { addDir } = await Promise.resolve().then(() => _interopRequireWildcard(require("./add-dir-7FD4DMDA.cjs")));
10807
10854
  if (!this.ctx.fileManager || !this.ctx.addAdditionalDir) {
10808
10855
  console.log(_chalk2.default.yellow("File manager not available for /add-dir command."));
10809
10856
  return null;
@@ -10816,7 +10863,7 @@ var SlashCommandHandler = class {
10816
10863
  }, args);
10817
10864
  }
10818
10865
  case "/language": {
10819
- const { language } = await Promise.resolve().then(() => _interopRequireWildcard(require("./language-NN6KLKZ4.cjs")));
10866
+ const { language } = await Promise.resolve().then(() => _interopRequireWildcard(require("./language-F65RA6FZ.cjs")));
10820
10867
  if (!this.ctx.config) {
10821
10868
  console.log(_chalk2.default.yellow("Config not available for language selection."));
10822
10869
  return null;
@@ -10828,29 +10875,29 @@ var SlashCommandHandler = class {
10828
10875
  return plan(this.ctx, args.join(" "));
10829
10876
  }
10830
10877
  case "/ide": {
10831
- const { ide } = await Promise.resolve().then(() => _interopRequireWildcard(require("./ide-ELI5WKC5.cjs")));
10878
+ const { ide } = await Promise.resolve().then(() => _interopRequireWildcard(require("./ide-YMNXJB6A.cjs")));
10832
10879
  return ide({ workspaceRoot: this.ctx.workspaceRoot });
10833
10880
  }
10834
10881
  case "/history": {
10835
- const { history } = await Promise.resolve().then(() => _interopRequireWildcard(require("./history-DCWHRTO5.cjs")));
10882
+ const { history } = await Promise.resolve().then(() => _interopRequireWildcard(require("./history-73VBEMSI.cjs")));
10836
10883
  return history({ ...this.ctx, args });
10837
10884
  }
10838
10885
  case "/mcp": {
10839
- const { mcp } = await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp-F7MAPBDQ.cjs")));
10886
+ const { mcp } = await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp-EW64QRFA.cjs")));
10840
10887
  return mcp({
10841
10888
  mcpManager: this.ctx.mcpManager,
10842
10889
  config: this.ctx.config
10843
10890
  }, args);
10844
10891
  }
10845
10892
  case "/mcp install": {
10846
- const { mcpInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp-install-X5T4BC7H.cjs")));
10893
+ const { mcpInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp-install-2KVKRAMQ.cjs")));
10847
10894
  return mcpInstall({
10848
10895
  mcpManager: this.ctx.mcpManager,
10849
10896
  config: this.ctx.config
10850
10897
  }, args.join(" ").trim() || void 0);
10851
10898
  }
10852
10899
  case "/skills use": {
10853
- const { skills } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-B7AKVGOU.cjs")));
10900
+ const { skills } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-YTYGART7.cjs")));
10854
10901
  if (!this.ctx.skillsRegistry) {
10855
10902
  return "Skills registry not available.";
10856
10903
  }
@@ -11263,7 +11310,7 @@ var SubAgent = class {
11263
11310
  safeParseJson(json) {
11264
11311
  try {
11265
11312
  return JSON.parse(json);
11266
- } catch (e58) {
11313
+ } catch (e59) {
11267
11314
  return {};
11268
11315
  }
11269
11316
  }
@@ -11288,7 +11335,7 @@ var SubAgent = class {
11288
11335
  return { finalResponse: contentValue };
11289
11336
  }
11290
11337
  return { finalResponse: raw.trim() };
11291
- } catch (e59) {
11338
+ } catch (e60) {
11292
11339
  return { finalResponse: raw.trim() };
11293
11340
  }
11294
11341
  }
@@ -11320,7 +11367,7 @@ var AgentDelegator = class {
11320
11367
  this.llm = llm;
11321
11368
  this.actionExecutor = actionExecutor;
11322
11369
  this.subagentCounter = 0;
11323
- this.registry = _chunk3CNRH36Gcjs.AgentRegistry.getInstance();
11370
+ this.registry = _chunkNUHYCFHWcjs.AgentRegistry.getInstance();
11324
11371
  this.clientContext = _nullishCoalesce(options.clientContext, () => ( "cli"));
11325
11372
  this.currentDepth = _nullishCoalesce(options.currentDepth, () => ( 0));
11326
11373
  this.maxDepth = _nullishCoalesce(options.maxDepth, () => ( DEFAULT_MAX_DEPTH));
@@ -11505,12 +11552,12 @@ var ErrorLogger = class {
11505
11552
  const entries = content.split("\n---\n").filter((entry) => entry.trim()).map((entry) => {
11506
11553
  try {
11507
11554
  return JSON.parse(entry);
11508
- } catch (e60) {
11555
+ } catch (e61) {
11509
11556
  return null;
11510
11557
  }
11511
11558
  }).filter((entry) => entry !== null);
11512
11559
  return entries.slice(-count);
11513
- } catch (e61) {
11560
+ } catch (e62) {
11514
11561
  return [];
11515
11562
  }
11516
11563
  }
@@ -11533,7 +11580,7 @@ var DEFAULT_CONFIG = {
11533
11580
  timeout: 5e3,
11534
11581
  maxRetries: 3,
11535
11582
  offlineQueue: true,
11536
- cliVersion: _chunkKEAWYW5Ycjs.package_default.version
11583
+ cliVersion: _chunkCH4SPVFDcjs.package_default.version
11537
11584
  };
11538
11585
  var FeedbackApiClient = class {
11539
11586
  constructor(configOverrides) {
@@ -11555,13 +11602,13 @@ var FeedbackApiClient = class {
11555
11602
  this.deviceId = (await _fsextra2.default.readFile(this.deviceIdPath, "utf8")).trim();
11556
11603
  return this.deviceId;
11557
11604
  }
11558
- } catch (e62) {
11605
+ } catch (e63) {
11559
11606
  }
11560
11607
  this.deviceId = `anon_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
11561
11608
  try {
11562
11609
  await _fsextra2.default.ensureDir(path18.default.dirname(this.deviceIdPath));
11563
11610
  await _fsextra2.default.writeFile(this.deviceIdPath, this.deviceId);
11564
- } catch (e63) {
11611
+ } catch (e64) {
11565
11612
  }
11566
11613
  return this.deviceId;
11567
11614
  }
@@ -11661,7 +11708,7 @@ var FeedbackApiClient = class {
11661
11708
  }
11662
11709
  await _fsextra2.default.ensureDir(path18.default.dirname(this.queuePath));
11663
11710
  await _fsextra2.default.writeJson(this.queuePath, queue, { spaces: 2 });
11664
- } catch (e64) {
11711
+ } catch (e65) {
11665
11712
  }
11666
11713
  }
11667
11714
  /**
@@ -11691,7 +11738,7 @@ var FeedbackApiClient = class {
11691
11738
  remaining.push(item);
11692
11739
  failed++;
11693
11740
  }
11694
- } catch (e65) {
11741
+ } catch (e66) {
11695
11742
  item.attempts++;
11696
11743
  item.lastAttempt = (/* @__PURE__ */ new Date()).toISOString();
11697
11744
  remaining.push(item);
@@ -11703,7 +11750,7 @@ var FeedbackApiClient = class {
11703
11750
  } else {
11704
11751
  await _fsextra2.default.remove(this.queuePath);
11705
11752
  }
11706
- } catch (e66) {
11753
+ } catch (e67) {
11707
11754
  }
11708
11755
  return { sent, failed };
11709
11756
  }
@@ -11720,7 +11767,7 @@ var FeedbackApiClient = class {
11720
11767
  pending: queue.length,
11721
11768
  oldestItem: _optionalChain([queue, 'access', _243 => _243[0], 'optionalAccess', _244 => _244.lastAttempt]) || null
11722
11769
  };
11723
- } catch (e67) {
11770
+ } catch (e68) {
11724
11771
  return { pending: 0, oldestItem: null };
11725
11772
  }
11726
11773
  }
@@ -11738,7 +11785,7 @@ var FeedbackApiClient = class {
11738
11785
  });
11739
11786
  clearTimeout(timeoutId);
11740
11787
  return response.ok;
11741
- } catch (e68) {
11788
+ } catch (e69) {
11742
11789
  return false;
11743
11790
  }
11744
11791
  }
@@ -11797,7 +11844,7 @@ var FeedbackManager = class {
11797
11844
  if (_fsextra2.default.existsSync(this.statePath)) {
11798
11845
  return _fsextra2.default.readJsonSync(this.statePath);
11799
11846
  }
11800
- } catch (e69) {
11847
+ } catch (e70) {
11801
11848
  }
11802
11849
  return {
11803
11850
  lastPromptedAt: null,
@@ -11815,7 +11862,7 @@ var FeedbackManager = class {
11815
11862
  try {
11816
11863
  _fsextra2.default.ensureDirSync(this.stateDir);
11817
11864
  _fsextra2.default.writeJsonSync(this.statePath, this.state, { spaces: 2 });
11818
- } catch (e70) {
11865
+ } catch (e71) {
11819
11866
  }
11820
11867
  });
11821
11868
  }
@@ -11828,12 +11875,12 @@ var FeedbackManager = class {
11828
11875
  }
11829
11876
  responses.push(response);
11830
11877
  _fsextra2.default.writeJsonSync(this.responsesPath, responses, { spaces: 2 });
11831
- } catch (e71) {
11878
+ } catch (e72) {
11832
11879
  }
11833
11880
  if (this.config.sendToApi) {
11834
11881
  try {
11835
11882
  await this.apiClient.submit(response);
11836
- } catch (e72) {
11883
+ } catch (e73) {
11837
11884
  }
11838
11885
  }
11839
11886
  }
@@ -11935,7 +11982,7 @@ var FeedbackManager = class {
11935
11982
  { label: `${_chalk2.default.red("1")} - Very Poor`, value: "1" },
11936
11983
  { label: `${_chalk2.default.gray("s")} - Skip`, value: "skip" }
11937
11984
  ];
11938
- const ratingResult = await _chunkBOU24HF2cjs.showModal.call(void 0, {
11985
+ const ratingResult = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
11939
11986
  title: "How would you rate your experience?",
11940
11987
  options: ratingOptions
11941
11988
  });
@@ -11955,18 +12002,18 @@ var FeedbackManager = class {
11955
12002
  let improvement;
11956
12003
  let recommend;
11957
12004
  if (npsScore >= 4) {
11958
- const reasonAnswer = await _chunkBOU24HF2cjs.showInput.call(void 0, {
12005
+ const reasonAnswer = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
11959
12006
  title: "What do you like most about Autohand? (optional, press Enter to skip)"
11960
12007
  });
11961
12008
  reason = reasonAnswer || void 0;
11962
12009
  if (reasonAnswer !== null) {
11963
- recommend = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
12010
+ recommend = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
11964
12011
  title: "Would you recommend Autohand to a colleague?",
11965
12012
  defaultValue: true
11966
12013
  });
11967
12014
  }
11968
12015
  } else {
11969
- const improvementAnswer = await _chunkBOU24HF2cjs.showInput.call(void 0, {
12016
+ const improvementAnswer = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
11970
12017
  title: "What could we do better? (optional, press Enter to skip)"
11971
12018
  });
11972
12019
  improvement = improvementAnswer || void 0;
@@ -12078,7 +12125,7 @@ var FeedbackManager = class {
12078
12125
  if (_fsextra2.default.existsSync(this.responsesPath)) {
12079
12126
  return _fsextra2.default.readJsonSync(this.responsesPath);
12080
12127
  }
12081
- } catch (e73) {
12128
+ } catch (e74) {
12082
12129
  }
12083
12130
  return [];
12084
12131
  }
@@ -12107,7 +12154,7 @@ var CommunitySkillsClient = class {
12107
12154
  if (_fsextra2.default.existsSync(deviceIdPath)) {
12108
12155
  return _fsextra2.default.readFileSync(deviceIdPath, "utf-8").trim();
12109
12156
  }
12110
- } catch (e74) {
12157
+ } catch (e75) {
12111
12158
  }
12112
12159
  return `anon_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
12113
12160
  }
@@ -12122,7 +12169,7 @@ var CommunitySkillsClient = class {
12122
12169
  if (_fsextra2.default.existsSync(queuePath)) {
12123
12170
  this.queue = _fsextra2.default.readJsonSync(queuePath);
12124
12171
  }
12125
- } catch (e75) {
12172
+ } catch (e76) {
12126
12173
  this.queue = [];
12127
12174
  }
12128
12175
  }
@@ -12133,7 +12180,7 @@ var CommunitySkillsClient = class {
12133
12180
  try {
12134
12181
  _fsextra2.default.ensureDirSync(this.queueDir);
12135
12182
  _fsextra2.default.writeJsonSync(path18.default.join(this.queueDir, "queue.json"), this.queue);
12136
- } catch (e76) {
12183
+ } catch (e77) {
12137
12184
  }
12138
12185
  }
12139
12186
  /**
@@ -12585,7 +12632,7 @@ var McpStdioConnection = class _McpStdioConnection extends _events.EventEmitter
12585
12632
  try {
12586
12633
  const message = JSON.parse(line);
12587
12634
  this.handleMessage(message);
12588
- } catch (e77) {
12635
+ } catch (e78) {
12589
12636
  this.emit("stderr", `Non-JSON output: ${line}`);
12590
12637
  }
12591
12638
  }
@@ -13573,7 +13620,7 @@ async function confirm(message, context) {
13573
13620
  { label: "No", value: "no" },
13574
13621
  { label: "Enter alternative...", value: "alternative" }
13575
13622
  ];
13576
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
13623
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
13577
13624
  title: message,
13578
13625
  options,
13579
13626
  initialIndex: 0
@@ -13585,7 +13632,7 @@ async function confirm(message, context) {
13585
13632
  return true;
13586
13633
  }
13587
13634
  if (result.value === "alternative") {
13588
- const altAnswer = await _chunkBOU24HF2cjs.showInput.call(void 0, {
13635
+ const altAnswer = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
13589
13636
  title: "Enter alternative action (or empty to cancel)"
13590
13637
  });
13591
13638
  if (_optionalChain([altAnswer, 'optionalAccess', _310 => _310.trim, 'call', _311 => _311()])) {
@@ -13975,7 +14022,7 @@ var EnvironmentBootstrap = class {
13975
14022
  }
13976
14023
  }
13977
14024
  return "npm";
13978
- } catch (e78) {
14025
+ } catch (e79) {
13979
14026
  return null;
13980
14027
  }
13981
14028
  }
@@ -14013,7 +14060,7 @@ var EnvironmentBootstrap = class {
14013
14060
  try {
14014
14061
  await execAsync("git pull --ff-only", { cwd: root, timeout: 6e4 });
14015
14062
  step.detail = "Pulled latest changes";
14016
- } catch (e79) {
14063
+ } catch (e80) {
14017
14064
  step.detail = "Behind remote (pull failed, may need manual merge)";
14018
14065
  }
14019
14066
  } else if (statusOutput.includes("Your branch is ahead")) {
@@ -14249,7 +14296,7 @@ var CodeQualityPipeline = class {
14249
14296
  test: this.findScript(scripts, this.scriptPatterns.test),
14250
14297
  build: this.findScript(scripts, this.scriptPatterns.build)
14251
14298
  };
14252
- } catch (e80) {
14299
+ } catch (e81) {
14253
14300
  return {};
14254
14301
  }
14255
14302
  }
@@ -14314,7 +14361,7 @@ var CodeQualityPipeline = class {
14314
14361
  try {
14315
14362
  await execAsync2(`npm run ${fixScript}`, { cwd: root, timeout: 6e4 });
14316
14363
  return;
14317
- } catch (e81) {
14364
+ } catch (e82) {
14318
14365
  }
14319
14366
  }
14320
14367
  }
@@ -14442,7 +14489,7 @@ var ProjectAnalyzer = class {
14442
14489
  info.linter = this.detectNodeLinter(deps);
14443
14490
  info.formatter = this.detectNodeFormatter(deps);
14444
14491
  info.buildTool = this.detectNodeBuildTool(deps);
14445
- } catch (e82) {
14492
+ } catch (e83) {
14446
14493
  }
14447
14494
  }
14448
14495
  /**
@@ -14549,7 +14596,7 @@ var ProjectAnalyzer = class {
14549
14596
  } else if (cargoContent.includes("tauri")) {
14550
14597
  info.framework = "Tauri";
14551
14598
  }
14552
- } catch (e83) {
14599
+ } catch (e84) {
14553
14600
  }
14554
14601
  }
14555
14602
  /**
@@ -14573,7 +14620,7 @@ var ProjectAnalyzer = class {
14573
14620
  } else if (goModContent.includes("github.com/gorilla/mux")) {
14574
14621
  info.framework = "Gorilla";
14575
14622
  }
14576
- } catch (e84) {
14623
+ } catch (e85) {
14577
14624
  }
14578
14625
  }
14579
14626
  /**
@@ -14638,7 +14685,7 @@ var ProjectAnalyzer = class {
14638
14685
  } else if (depsContent.includes("autopep8")) {
14639
14686
  info.formatter = "autopep8";
14640
14687
  }
14641
- } catch (e85) {
14688
+ } catch (e86) {
14642
14689
  }
14643
14690
  }
14644
14691
  };
@@ -15143,7 +15190,7 @@ var WorkspaceFileCollector = class {
15143
15190
  this.workspaceFiles = walkedFiles;
15144
15191
  this.workspaceFilesCachedAt = now;
15145
15192
  return walkedFiles;
15146
- } catch (e86) {
15193
+ } catch (e87) {
15147
15194
  return this.workspaceFiles.length > 0 ? this.workspaceFiles : [];
15148
15195
  }
15149
15196
  }
@@ -15183,7 +15230,7 @@ var WorkspaceFileCollector = class {
15183
15230
  let entries;
15184
15231
  try {
15185
15232
  entries = await _fsextra2.default.readdir(current);
15186
- } catch (e87) {
15233
+ } catch (e88) {
15187
15234
  return;
15188
15235
  }
15189
15236
  for (const entry of entries) {
@@ -15199,7 +15246,7 @@ var WorkspaceFileCollector = class {
15199
15246
  } else if (stats.isFile()) {
15200
15247
  acc.push(rel);
15201
15248
  }
15202
- } catch (e88) {
15249
+ } catch (e89) {
15203
15250
  continue;
15204
15251
  }
15205
15252
  }
@@ -15247,7 +15294,7 @@ var ProviderConfigManager = class {
15247
15294
  value: name
15248
15295
  };
15249
15296
  });
15250
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15297
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15251
15298
  title: "Choose an LLM provider",
15252
15299
  options: providerChoices
15253
15300
  });
@@ -15311,14 +15358,14 @@ ${selectedProvider} is not configured yet. Let's set it up!
15311
15358
  try {
15312
15359
  console.log(_chalk2.default.cyan("OpenRouter Configuration"));
15313
15360
  console.log(_chalk2.default.gray("Get your API key at: https://openrouter.ai/keys\n"));
15314
- const apiKey = await _chunkBOU24HF2cjs.showPassword.call(void 0, {
15361
+ const apiKey = await _chunkXBUMKEFNcjs.showPassword.call(void 0, {
15315
15362
  title: "Enter your OpenRouter API key"
15316
15363
  });
15317
15364
  if (!apiKey) {
15318
15365
  console.log(_chalk2.default.gray("\nConfiguration cancelled."));
15319
15366
  return;
15320
15367
  }
15321
- const model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15368
+ const model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15322
15369
  title: "Enter the model ID",
15323
15370
  defaultValue: "anthropic/claude-3.5-sonnet"
15324
15371
  });
@@ -15355,7 +15402,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15355
15402
  const data = await response.json();
15356
15403
  availableModels = _optionalChain([data, 'access', _334 => _334.models, 'optionalAccess', _335 => _335.map, 'call', _336 => _336((m) => m.name)]) || [];
15357
15404
  }
15358
- } catch (e89) {
15405
+ } catch (e90) {
15359
15406
  console.log(_chalk2.default.yellow("\u26A0 Could not connect to Ollama. Make sure it's running.\n"));
15360
15407
  }
15361
15408
  let model;
@@ -15366,13 +15413,13 @@ ${selectedProvider} is not configured yet. Let's set it up!
15366
15413
  label: name,
15367
15414
  value: name
15368
15415
  }));
15369
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15416
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15370
15417
  title: "Select a model",
15371
15418
  options
15372
15419
  });
15373
15420
  model = _optionalChain([result, 'optionalAccess', _337 => _337.value]);
15374
15421
  } else {
15375
- model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15422
+ model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15376
15423
  title: "Enter the model name (e.g., llama3.2:latest)",
15377
15424
  defaultValue: "llama3.2:latest"
15378
15425
  });
@@ -15405,7 +15452,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15405
15452
  try {
15406
15453
  console.log(_chalk2.default.cyan("llama.cpp Configuration"));
15407
15454
  console.log(_chalk2.default.gray("Make sure llama.cpp server is running: ./server -m model.gguf\n"));
15408
- const port = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15455
+ const port = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15409
15456
  title: "Server port",
15410
15457
  defaultValue: "8080"
15411
15458
  });
@@ -15413,7 +15460,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15413
15460
  console.log(_chalk2.default.gray("\nConfiguration cancelled."));
15414
15461
  return;
15415
15462
  }
15416
- const model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15463
+ const model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15417
15464
  title: "Model name/description",
15418
15465
  defaultValue: "llama-model"
15419
15466
  });
@@ -15442,7 +15489,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15442
15489
  try {
15443
15490
  console.log(_chalk2.default.cyan("OpenAI Configuration"));
15444
15491
  console.log(_chalk2.default.gray("Get your API key at: https://platform.openai.com/api-keys\n"));
15445
- const apiKey = await _chunkBOU24HF2cjs.showPassword.call(void 0, {
15492
+ const apiKey = await _chunkXBUMKEFNcjs.showPassword.call(void 0, {
15446
15493
  title: "Enter your OpenAI API key"
15447
15494
  });
15448
15495
  if (!apiKey) {
@@ -15456,7 +15503,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15456
15503
  { label: "gpt-4", value: "gpt-4" },
15457
15504
  { label: "gpt-3.5-turbo", value: "gpt-3.5-turbo" }
15458
15505
  ];
15459
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15506
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15460
15507
  title: "Select a model",
15461
15508
  options: modelChoices
15462
15509
  });
@@ -15495,7 +15542,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15495
15542
  const data = await response.json();
15496
15543
  availableModels = _optionalChain([data, 'access', _341 => _341.data, 'optionalAccess', _342 => _342.map, 'call', _343 => _343((m) => m.id)]) || [];
15497
15544
  }
15498
- } catch (e90) {
15545
+ } catch (e91) {
15499
15546
  console.log(_chalk2.default.yellow("\u26A0 Could not connect to MLX server. Make sure it's running.\n"));
15500
15547
  }
15501
15548
  let model;
@@ -15504,13 +15551,13 @@ ${selectedProvider} is not configured yet. Let's set it up!
15504
15551
  label: name,
15505
15552
  value: name
15506
15553
  }));
15507
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15554
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15508
15555
  title: "Select a model",
15509
15556
  options
15510
15557
  });
15511
15558
  model = _optionalChain([result, 'optionalAccess', _344 => _344.value]);
15512
15559
  } else {
15513
- model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15560
+ model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15514
15561
  title: "Enter model name (e.g., mlx-community/Llama-3.2-3B-Instruct-4bit)",
15515
15562
  defaultValue: "mlx-community/Llama-3.2-3B-Instruct-4bit"
15516
15563
  });
@@ -15539,7 +15586,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15539
15586
  try {
15540
15587
  console.log(_chalk2.default.cyan("LLM Gateway Configuration"));
15541
15588
  console.log(_chalk2.default.gray("Get your API key at: https://llmgateway.io/dashboard\n"));
15542
- const apiKey = await _chunkBOU24HF2cjs.showPassword.call(void 0, {
15589
+ const apiKey = await _chunkXBUMKEFNcjs.showPassword.call(void 0, {
15543
15590
  title: "Enter your LLM Gateway API key"
15544
15591
  });
15545
15592
  if (!apiKey) {
@@ -15554,7 +15601,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15554
15601
  { label: "gemini-1.5-pro", value: "gemini-1.5-pro" },
15555
15602
  { label: "gemini-1.5-flash", value: "gemini-1.5-flash" }
15556
15603
  ];
15557
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15604
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15558
15605
  title: "Select a model",
15559
15606
  options: modelChoices
15560
15607
  });
@@ -15600,7 +15647,7 @@ ${selectedProvider} is not configured yet. Let's set it up!
15600
15647
  value: name
15601
15648
  }));
15602
15649
  const currentIndex = models.indexOf(currentModel);
15603
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15650
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15604
15651
  title: "Select a model",
15605
15652
  options,
15606
15653
  initialIndex: currentIndex >= 0 ? currentIndex : 0
@@ -15613,10 +15660,10 @@ ${selectedProvider} is not configured yet. Let's set it up!
15613
15660
  return;
15614
15661
  }
15615
15662
  }
15616
- } catch (e91) {
15663
+ } catch (e92) {
15617
15664
  }
15618
15665
  }
15619
- const model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15666
+ const model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15620
15667
  title: "Enter the model ID to use",
15621
15668
  defaultValue: currentModel
15622
15669
  });
@@ -15650,7 +15697,7 @@ ${providerName} Settings`));
15650
15697
  { label: "Change API key only", value: "apiKey" },
15651
15698
  { label: "Change both model and API key", value: "both" }
15652
15699
  ];
15653
- const actionResult = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15700
+ const actionResult = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15654
15701
  title: "What would you like to change?",
15655
15702
  options: actionOptions
15656
15703
  });
@@ -15671,7 +15718,7 @@ ${providerName} Settings`));
15671
15718
  console.log(_chalk2.default.gray(`
15672
15719
  Get your API key at: ${keyUrl}
15673
15720
  `));
15674
- const apiKey = await _chunkBOU24HF2cjs.showPassword.call(void 0, {
15721
+ const apiKey = await _chunkXBUMKEFNcjs.showPassword.call(void 0, {
15675
15722
  title: `Enter your ${providerName} API key`,
15676
15723
  validate: (val) => {
15677
15724
  if (!_optionalChain([val, 'optionalAccess', _352 => _352.trim, 'call', _353 => _353()])) return "API key is required";
@@ -15702,7 +15749,7 @@ Get your API key at: ${keyUrl}
15702
15749
  value: name
15703
15750
  }));
15704
15751
  const currentIndex = Math.max(0, models.indexOf(currentModel));
15705
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15752
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15706
15753
  title: "Select a model",
15707
15754
  options: modelOptions,
15708
15755
  initialIndex: currentIndex
@@ -15719,7 +15766,7 @@ Get your API key at: ${keyUrl}
15719
15766
  value: name
15720
15767
  }));
15721
15768
  const currentIndex = Math.max(0, models.indexOf(currentModel));
15722
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
15769
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
15723
15770
  title: "Select a model",
15724
15771
  options: modelOptions,
15725
15772
  initialIndex: currentIndex
@@ -15730,7 +15777,7 @@ Get your API key at: ${keyUrl}
15730
15777
  }
15731
15778
  newModel = result.value;
15732
15779
  } else {
15733
- const model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
15780
+ const model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
15734
15781
  title: "Enter the model ID",
15735
15782
  defaultValue: currentModel || "anthropic/claude-sonnet-4-20250514"
15736
15783
  });
@@ -15793,7 +15840,7 @@ Get your API key at: ${keyUrl}
15793
15840
  let errorData = {};
15794
15841
  try {
15795
15842
  errorData = await response.json();
15796
- } catch (e92) {
15843
+ } catch (e93) {
15797
15844
  }
15798
15845
  if (status === 401) {
15799
15846
  const hintMap = {
@@ -16045,10 +16092,10 @@ var AutohandAgent = class {
16045
16092
  });
16046
16093
  }
16047
16094
  });
16048
- this.errorLogger = new ErrorLogger(_chunkKEAWYW5Ycjs.package_default.version);
16095
+ this.errorLogger = new ErrorLogger(_chunkCH4SPVFDcjs.package_default.version);
16049
16096
  this.feedbackManager = new FeedbackManager({
16050
16097
  apiBaseUrl: _optionalChain([runtime, 'access', _368 => _368.config, 'access', _369 => _369.api, 'optionalAccess', _370 => _370.baseUrl]) || "https://api.autohand.ai",
16051
- cliVersion: _chunkKEAWYW5Ycjs.package_default.version
16098
+ cliVersion: _chunkCH4SPVFDcjs.package_default.version
16052
16099
  });
16053
16100
  this.skillsRegistry = new (0, _chunkWOGJXDBUcjs.SkillsRegistry)(_chunkGIZL57FEcjs.AUTOHAND_PATHS.skills);
16054
16101
  this.telemetryManager = new TelemetryManager({
@@ -16284,7 +16331,7 @@ var AutohandAgent = class {
16284
16331
  // Non-interactive mode (RPC/ACP) — guards interactive commands
16285
16332
  isNonInteractive: runtime.isRpcMode === true
16286
16333
  };
16287
- this.slashHandler = new SlashCommandHandler(slashContext, _chunkFONQG5OCcjs.SLASH_COMMANDS);
16334
+ this.slashHandler = new SlashCommandHandler(slashContext, _chunkI6DBWNLNcjs.SLASH_COMMANDS);
16288
16335
  }
16289
16336
  /**
16290
16337
  * Register discovered MCP tools with the tool manager so the LLM can use them.
@@ -16706,7 +16753,7 @@ Fatal: "${errorMessage}" repeated ${this.consecutiveErrorCount} times. Exiting.`
16706
16753
  const statusLine = this.formatStatusLine();
16707
16754
  const input = await readInstruction(
16708
16755
  workspaceFiles,
16709
- _chunkFONQG5OCcjs.SLASH_COMMANDS,
16756
+ _chunkI6DBWNLNcjs.SLASH_COMMANDS,
16710
16757
  statusLine,
16711
16758
  {},
16712
16759
  // default IO
@@ -16773,7 +16820,7 @@ Fatal: "${errorMessage}" repeated ${this.consecutiveErrorCount} times. Exiting.`
16773
16820
  { label: "Project level (.autohand/memory/) - specific to this project", value: "project" },
16774
16821
  { label: "User level (~/.autohand/memory/) - available in all projects", value: "user" }
16775
16822
  ];
16776
- const levelResult = await _chunkBOU24HF2cjs.showModal.call(void 0, {
16823
+ const levelResult = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
16777
16824
  title: "Where should this memory be stored?",
16778
16825
  options: levelOptions
16779
16826
  });
@@ -16786,7 +16833,7 @@ Fatal: "${errorMessage}" repeated ${this.consecutiveErrorCount} times. Exiting.`
16786
16833
  console.log();
16787
16834
  console.log(_chalk2.default.yellow("Found similar existing memory:"));
16788
16835
  console.log(_chalk2.default.gray(` "${similar.entry.content}"`));
16789
- const shouldUpdate = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
16836
+ const shouldUpdate = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
16790
16837
  title: "Update the existing memory instead of creating a new one?"
16791
16838
  });
16792
16839
  if (shouldUpdate) {
@@ -16837,7 +16884,7 @@ Fatal: "${errorMessage}" repeated ${this.consecutiveErrorCount} times. Exiting.`
16837
16884
  { label: "Require approval before risky actions", value: "confirm" },
16838
16885
  { label: "Auto-confirm actions (dangerous)", value: "prompt" }
16839
16886
  ];
16840
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
16887
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
16841
16888
  title: "Choose confirmation mode",
16842
16889
  options,
16843
16890
  initialIndex: this.runtime.options.yes ? 1 : 0
@@ -17523,7 +17570,7 @@ Summary: ${summary}`
17523
17570
  try {
17524
17571
  const parsed = JSON.parse(trimmed);
17525
17572
  thought = typeof parsed.thought === "string" ? parsed.thought : void 0;
17526
- } catch (e93) {
17573
+ } catch (e94) {
17527
17574
  thought = this.cleanupModelResponse(trimmed) || void 0;
17528
17575
  }
17529
17576
  } else {
@@ -17586,7 +17633,7 @@ Summary: ${summary}`
17586
17633
  return { finalResponse: contentValue };
17587
17634
  }
17588
17635
  return { finalResponse: raw.trim() };
17589
- } catch (e94) {
17636
+ } catch (e95) {
17590
17637
  const thoughtMatch = raw.match(/"thought"\s*:\s*"([^"]+)"/);
17591
17638
  if (_optionalChain([thoughtMatch, 'optionalAccess', _560 => _560[1]])) {
17592
17639
  return { thought: thoughtMatch[1], finalResponse: thoughtMatch[1] };
@@ -18021,7 +18068,7 @@ ${toolSignatures}
18021
18068
  }
18022
18069
  }
18023
18070
  let basePrompt = parts.join("\n");
18024
- basePrompt = _chunk4BVRSVS2cjs.injectLocaleIntoPrompt.call(void 0, basePrompt, _chunk4BVRSVS2cjs.getCurrentLocale.call(void 0, ));
18071
+ basePrompt = _chunk2U5HFVROcjs.injectLocaleIntoPrompt.call(void 0, basePrompt, _chunk2U5HFVROcjs.getCurrentLocale.call(void 0, ));
18025
18072
  if (this.runtime.options.appendSysPrompt) {
18026
18073
  try {
18027
18074
  const appendContent = await resolvePromptValue(this.runtime.options.appendSysPrompt, {
@@ -18111,7 +18158,7 @@ ${toolSignatures}
18111
18158
  try {
18112
18159
  const stats = await _fsextra2.default.stat(fullPath);
18113
18160
  return stats.isFile();
18114
- } catch (e95) {
18161
+ } catch (e96) {
18115
18162
  return false;
18116
18163
  }
18117
18164
  }
@@ -18277,7 +18324,7 @@ ${ctx.contents}`).join("\n\n");
18277
18324
  this.inkRenderer.start();
18278
18325
  this.inkRenderer.setWorking(true, "Gathering context...");
18279
18326
  this.runtime.inkRenderer = this.inkRenderer;
18280
- } catch (e96) {
18327
+ } catch (e97) {
18281
18328
  this.useInkRenderer = false;
18282
18329
  this.initFallbackSpinner();
18283
18330
  }
@@ -18956,7 +19003,7 @@ ${_chalk2.default.gray("\u203A")} ${inputPreview}${_chalk2.default.gray("\u258B"
18956
19003
  stdin.resume();
18957
19004
  }
18958
19005
  safeEmitKeypressEvents(stdin);
18959
- } catch (e97) {
19006
+ } catch (e98) {
18960
19007
  }
18961
19008
  }
18962
19009
  formatStatusLine() {
@@ -18965,7 +19012,7 @@ ${_chalk2.default.gray("\u203A")} ${inputPreview}${_chalk2.default.gray("\u258B"
18965
19012
  const queueStatus = queueCount > 0 ? ` \xB7 ${queueCount} queued` : "";
18966
19013
  const planModeManager = _chunkULQ6MDSJcjs.getPlanModeManager.call(void 0, );
18967
19014
  const planIndicator = planModeManager.isEnabled() ? _chalk2.default.bgCyan.black.bold(" PLAN ") + " " : "";
18968
- return `${planIndicator}${percent}% context left \xB7 ${_chunk4BVRSVS2cjs.t.call(void 0, "ui.commandHint")}${queueStatus}`;
19015
+ return `${planIndicator}${percent}% context left \xB7 ${_chunk2U5HFVROcjs.t.call(void 0, "ui.commandHint")}${queueStatus}`;
18969
19016
  }
18970
19017
  async resetConversationContext() {
18971
19018
  const systemPrompt = await this.buildSystemPrompt();
@@ -19383,7 +19430,7 @@ var ProjectAnalyzer2 = class {
19383
19430
  if (allDeps.eslint || allDeps.prettier || allDeps.biome) {
19384
19431
  analysis.patterns.push("linting");
19385
19432
  }
19386
- } catch (e98) {
19433
+ } catch (e99) {
19387
19434
  }
19388
19435
  }
19389
19436
  /**
@@ -19408,7 +19455,7 @@ var ProjectAnalyzer2 = class {
19408
19455
  analysis.hasTests = true;
19409
19456
  analysis.patterns.push("testing");
19410
19457
  }
19411
- } catch (e99) {
19458
+ } catch (e100) {
19412
19459
  }
19413
19460
  }
19414
19461
  if (await _fsextra2.default.pathExists(pyprojectPath)) {
@@ -19477,7 +19524,7 @@ var ProjectAnalyzer2 = class {
19477
19524
  }
19478
19525
  }
19479
19526
  }
19480
- } catch (e100) {
19527
+ } catch (e101) {
19481
19528
  }
19482
19529
  }
19483
19530
  await walk(this.projectRoot, 0);
@@ -19593,21 +19640,21 @@ async function generateAutoSkills(analysis, llm) {
19593
19640
  let skills = [];
19594
19641
  try {
19595
19642
  skills = JSON.parse(content);
19596
- } catch (e101) {
19643
+ } catch (e102) {
19597
19644
  const jsonMatch = content.match(/\[[\s\S]*\]/);
19598
19645
  if (!jsonMatch) {
19599
19646
  return [];
19600
19647
  }
19601
19648
  try {
19602
19649
  skills = JSON.parse(jsonMatch[0]);
19603
- } catch (e102) {
19650
+ } catch (e103) {
19604
19651
  return [];
19605
19652
  }
19606
19653
  }
19607
19654
  return skills.filter(
19608
19655
  (s) => s && typeof s.name === "string" && typeof s.description === "string" && typeof s.body === "string" && /^[a-z0-9-]+$/.test(s.name)
19609
19656
  );
19610
- } catch (e103) {
19657
+ } catch (e104) {
19611
19658
  return [];
19612
19659
  }
19613
19660
  }
@@ -19630,7 +19677,7 @@ allowed-tools: ${skill.allowedTools.join(" ")}`;
19630
19677
  const content = frontmatter + skill.body + "\n";
19631
19678
  await _fsextra2.default.writeFile(skillPath, content, "utf-8");
19632
19679
  return true;
19633
- } catch (e104) {
19680
+ } catch (e105) {
19634
19681
  return false;
19635
19682
  }
19636
19683
  }
@@ -19645,7 +19692,7 @@ async function runAutoSkillGeneration(workspaceRoot, llm) {
19645
19692
  let analysis;
19646
19693
  try {
19647
19694
  analysis = await analyzer.analyze();
19648
- } catch (e105) {
19695
+ } catch (e106) {
19649
19696
  result.error = "Failed to analyze project";
19650
19697
  return result;
19651
19698
  }
@@ -19842,7 +19889,7 @@ function parseRequest(line) {
19842
19889
  let parsed;
19843
19890
  try {
19844
19891
  parsed = JSON.parse(trimmed);
19845
- } catch (e106) {
19892
+ } catch (e107) {
19846
19893
  return {
19847
19894
  type: "error",
19848
19895
  code: JSON_RPC_ERROR_CODES.PARSE_ERROR,
@@ -21208,7 +21255,7 @@ ${sel.text}
21208
21255
  if (_optionalChain([tc, 'access', _689 => _689.function, 'optionalAccess', _690 => _690.arguments])) {
21209
21256
  args = JSON.parse(tc.function.arguments);
21210
21257
  }
21211
- } catch (e107) {
21258
+ } catch (e108) {
21212
21259
  }
21213
21260
  return {
21214
21261
  id: tc.id,
@@ -21454,7 +21501,7 @@ async function runRpcMode(options) {
21454
21501
  if (!stats.isDirectory()) {
21455
21502
  throw new Error(`Additional path is not a directory: ${dir}`);
21456
21503
  }
21457
- const addDirSafetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
21504
+ const addDirSafetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
21458
21505
  if (!addDirSafetyCheck.safe) {
21459
21506
  throw new Error(`Unsafe additional directory: ${dir} - ${addDirSafetyCheck.reason}`);
21460
21507
  }
@@ -22147,7 +22194,7 @@ var AutohandAcpAdapter = class {
22147
22194
  agentInfo: {
22148
22195
  name: "autohand-cli",
22149
22196
  title: "Autohand CLI",
22150
- version: _chunkKEAWYW5Ycjs.package_default.version
22197
+ version: _chunkCH4SPVFDcjs.package_default.version
22151
22198
  }
22152
22199
  };
22153
22200
  }
@@ -22692,7 +22739,7 @@ var SetupWizard = class {
22692
22739
  if (hasValidExistingProvider) {
22693
22740
  initialIndex = providers.indexOf(this.existingConfig.provider);
22694
22741
  }
22695
- const result = await _chunkBOU24HF2cjs.showModal.call(void 0, {
22742
+ const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
22696
22743
  title: "Which LLM provider would you like to use?",
22697
22744
  options,
22698
22745
  initialIndex: initialIndex >= 0 ? initialIndex : 0
@@ -22723,7 +22770,7 @@ var SetupWizard = class {
22723
22770
  this.state.currentStep = "apiKey";
22724
22771
  const existingKey = this.getExistingApiKey(provider);
22725
22772
  if (existingKey && existingKey !== "replace-me") {
22726
- const useExisting = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22773
+ const useExisting = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22727
22774
  title: `Use existing ${this.getProviderDisplayName(provider)} API key? (ends with ...${existingKey.slice(-4)})`,
22728
22775
  defaultValue: true
22729
22776
  });
@@ -22735,7 +22782,7 @@ var SetupWizard = class {
22735
22782
  console.log(_chalk2.default.gray(`
22736
22783
  Get your API key at: ${this.getApiKeyUrl(provider)}
22737
22784
  `));
22738
- const apiKey = await _chunkBOU24HF2cjs.showPassword.call(void 0, {
22785
+ const apiKey = await _chunkXBUMKEFNcjs.showPassword.call(void 0, {
22739
22786
  title: `Enter your ${this.getProviderDisplayName(provider)} API key`,
22740
22787
  validate: (val) => {
22741
22788
  if (!_optionalChain([val, 'optionalAccess', _762 => _762.trim, 'call', _763 => _763()])) return "API key is required";
@@ -22755,7 +22802,7 @@ var SetupWizard = class {
22755
22802
  async promptModel(provider) {
22756
22803
  this.state.currentStep = "model";
22757
22804
  const defaultModel = this.getDefaultModel(provider);
22758
- const model = await _chunkBOU24HF2cjs.showInput.call(void 0, {
22805
+ const model = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
22759
22806
  title: "Enter model ID",
22760
22807
  defaultValue: defaultModel,
22761
22808
  validate: (val) => {
@@ -22791,7 +22838,7 @@ var SetupWizard = class {
22791
22838
  console.log(_chalk2.default.gray(" - API keys or credentials"));
22792
22839
  console.log(_chalk2.default.gray(" - Personal information"));
22793
22840
  console.log();
22794
- const telemetryEnabled = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22841
+ const telemetryEnabled = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22795
22842
  title: "Share anonymous usage data to help improve Autohand?",
22796
22843
  defaultValue: true
22797
22844
  });
@@ -22807,7 +22854,7 @@ var SetupWizard = class {
22807
22854
  */
22808
22855
  async promptPreferences() {
22809
22856
  this.state.currentStep = "preferences";
22810
- const configurePrefs = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22857
+ const configurePrefs = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22811
22858
  title: "Would you like to configure additional preferences? (theme, auto-confirm)",
22812
22859
  defaultValue: false
22813
22860
  });
@@ -22828,16 +22875,16 @@ var SetupWizard = class {
22828
22875
  value: t2,
22829
22876
  description: themeDescriptions[t2]
22830
22877
  }));
22831
- const themeResult = await _chunkBOU24HF2cjs.showModal.call(void 0, {
22878
+ const themeResult = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
22832
22879
  title: "Select a theme",
22833
22880
  options: themeOptions
22834
22881
  });
22835
22882
  const theme = _optionalChain([themeResult, 'optionalAccess', _766 => _766.value]) || "dark";
22836
- const autoConfirm = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22883
+ const autoConfirm = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22837
22884
  title: "Auto-confirm non-destructive actions?",
22838
22885
  defaultValue: false
22839
22886
  });
22840
- const checkForUpdates2 = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22887
+ const checkForUpdates2 = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22841
22888
  title: "Check for updates on startup?",
22842
22889
  defaultValue: true
22843
22890
  });
@@ -22851,7 +22898,7 @@ var SetupWizard = class {
22851
22898
  const agentsPath = _path.join.call(void 0, this.workspaceRoot, "AGENTS.md");
22852
22899
  const exists = await _fsextra.pathExists.call(void 0, agentsPath);
22853
22900
  if (exists) {
22854
- const overwrite = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22901
+ const overwrite = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22855
22902
  title: "AGENTS.md already exists. Would you like to regenerate it?",
22856
22903
  defaultValue: false
22857
22904
  });
@@ -22869,7 +22916,7 @@ var SetupWizard = class {
22869
22916
  console.log(_chalk2.default.gray(" AGENTS.md helps Autohand understand your project better."));
22870
22917
  console.log(_chalk2.default.gray(" It contains instructions specific to your codebase."));
22871
22918
  console.log();
22872
- const createAgents = await _chunkBOU24HF2cjs.showConfirm.call(void 0, {
22919
+ const createAgents = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
22873
22920
  title: "Generate AGENTS.md based on your project?",
22874
22921
  defaultValue: true
22875
22922
  });
@@ -23061,17 +23108,17 @@ var SetupWizard = class {
23061
23108
  process.title = "autohand";
23062
23109
  function getGitCommit() {
23063
23110
  if (true) {
23064
- return "122b09b";
23111
+ return "8d2b997";
23065
23112
  }
23066
23113
  try {
23067
23114
  return _child_process.execSync.call(void 0, "git rev-parse --short HEAD", { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
23068
- } catch (e108) {
23115
+ } catch (e109) {
23069
23116
  return "unknown";
23070
23117
  }
23071
23118
  }
23072
23119
  function getVersionString() {
23073
23120
  const commit = getGitCommit();
23074
- return `${_chunkKEAWYW5Ycjs.package_default.version} (${commit})`;
23121
+ return `${_chunkCH4SPVFDcjs.package_default.version} (${commit})`;
23075
23122
  }
23076
23123
  async function validateAuthOnStartup(config) {
23077
23124
  if (!_optionalChain([config, 'access', _774 => _774.auth, 'optionalAccess', _775 => _775.token])) {
@@ -23083,7 +23130,7 @@ async function validateAuthOnStartup(config) {
23083
23130
  config.auth = void 0;
23084
23131
  try {
23085
23132
  await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, config);
23086
- } catch (e109) {
23133
+ } catch (e110) {
23087
23134
  }
23088
23135
  return void 0;
23089
23136
  }
@@ -23095,7 +23142,7 @@ async function validateAuthOnStartup(config) {
23095
23142
  config.auth = void 0;
23096
23143
  try {
23097
23144
  await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, config);
23098
- } catch (e110) {
23145
+ } catch (e111) {
23099
23146
  }
23100
23147
  return void 0;
23101
23148
  }
@@ -23103,7 +23150,7 @@ async function validateAuthOnStartup(config) {
23103
23150
  config.auth.user = result.user;
23104
23151
  }
23105
23152
  return _optionalChain([config, 'access', _776 => _776.auth, 'optionalAccess', _777 => _777.user]);
23106
- } catch (e111) {
23153
+ } catch (e112) {
23107
23154
  return _optionalChain([config, 'access', _778 => _778.auth, 'optionalAccess', _779 => _779.user]);
23108
23155
  }
23109
23156
  }
@@ -23140,20 +23187,20 @@ program.name("autohand").description("Autonomous LLM-powered coding agent CLI").
23140
23187
  return;
23141
23188
  }
23142
23189
  if (opts.login) {
23143
- const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-HZMQBI4Z.cjs")));
23190
+ const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-ISWYYBXP.cjs")));
23144
23191
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, opts.config);
23145
23192
  await login({ config });
23146
23193
  process.exit(0);
23147
23194
  }
23148
23195
  if (opts.logout) {
23149
- const { logout } = await Promise.resolve().then(() => _interopRequireWildcard(require("./logout-FKYZ5Z2L.cjs")));
23196
+ const { logout } = await Promise.resolve().then(() => _interopRequireWildcard(require("./logout-3EKZM5J3.cjs")));
23150
23197
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, opts.config);
23151
23198
  await logout({ config });
23152
23199
  process.exit(0);
23153
23200
  }
23154
23201
  if (opts.about) {
23155
- const { initI18n: initI18n2, detectLocale: detectLocale2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./i18n-5ANEIZNF.cjs")));
23156
- const { about } = await Promise.resolve().then(() => _interopRequireWildcard(require("./about-7VIDF3B7.cjs")));
23202
+ const { initI18n: initI18n2, detectLocale: detectLocale2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./i18n-X2IU2EZD.cjs")));
23203
+ const { about } = await Promise.resolve().then(() => _interopRequireWildcard(require("./about-EABQNJGV.cjs")));
23157
23204
  const { locale } = detectLocale2();
23158
23205
  await initI18n2(locale);
23159
23206
  await about();
@@ -23210,13 +23257,13 @@ program.command("resume <sessionId>").description("Resume a previous session").o
23210
23257
  await runCLI({ ...opts, resumeSessionId: sessionId });
23211
23258
  });
23212
23259
  program.command("login").description("Sign in to your Autohand account").action(async () => {
23213
- const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-HZMQBI4Z.cjs")));
23260
+ const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-ISWYYBXP.cjs")));
23214
23261
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, );
23215
23262
  await login({ config });
23216
23263
  process.exit(0);
23217
23264
  });
23218
23265
  program.command("logout").description("Sign out of your Autohand account").action(async () => {
23219
- const { logout } = await Promise.resolve().then(() => _interopRequireWildcard(require("./logout-FKYZ5Z2L.cjs")));
23266
+ const { logout } = await Promise.resolve().then(() => _interopRequireWildcard(require("./logout-3EKZM5J3.cjs")));
23220
23267
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, );
23221
23268
  await logout({ config });
23222
23269
  process.exit(0);
@@ -23225,11 +23272,11 @@ async function runCLI(options) {
23225
23272
  try {
23226
23273
  let config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, options.config);
23227
23274
  const workspaceRoot = _chunkRJP3SZ7Qcjs.resolveWorkspaceRoot.call(void 0, config, options.path);
23228
- const { locale: detectedLocale } = _chunk4BVRSVS2cjs.detectLocale.call(void 0, {
23275
+ const { locale: detectedLocale } = _chunk2U5HFVROcjs.detectLocale.call(void 0, {
23229
23276
  cliOverride: options.displayLanguage,
23230
23277
  configLocale: _optionalChain([config, 'access', _780 => _780.ui, 'optionalAccess', _781 => _781.locale])
23231
23278
  });
23232
- await _chunk4BVRSVS2cjs.initI18n.call(void 0, detectedLocale);
23279
+ await _chunk2U5HFVROcjs.initI18n.call(void 0, detectedLocale);
23233
23280
  const providerName = _nullishCoalesce(config.provider, () => ( "openrouter"));
23234
23281
  const providerConfig = _chunkRJP3SZ7Qcjs.getProviderConfig.call(void 0, config, providerName);
23235
23282
  if (!providerConfig) {
@@ -23245,9 +23292,9 @@ async function runCLI(options) {
23245
23292
  console.log();
23246
23293
  }
23247
23294
  }
23248
- const safetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23295
+ const safetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23249
23296
  if (!safetyCheck.safe) {
23250
- _chunkTYTHI5MCcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23297
+ _chunkZLOTP56Bcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23251
23298
  process.exit(1);
23252
23299
  }
23253
23300
  const additionalDirs = [];
@@ -23263,7 +23310,7 @@ async function runCLI(options) {
23263
23310
  console.error(_chalk2.default.red(`Error: Additional path is not a directory: ${dir}`));
23264
23311
  process.exit(1);
23265
23312
  }
23266
- const addDirSafetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
23313
+ const addDirSafetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
23267
23314
  if (!addDirSafetyCheck.safe) {
23268
23315
  console.error(_chalk2.default.red(`Error: Unsafe additional directory: ${dir}`));
23269
23316
  console.error(_chalk2.default.yellow(` ${addDirSafetyCheck.reason}`));
@@ -23280,7 +23327,7 @@ async function runCLI(options) {
23280
23327
  };
23281
23328
  printBanner();
23282
23329
  initPingService({
23283
- cliVersion: _chunkKEAWYW5Ycjs.package_default.version,
23330
+ cliVersion: _chunkCH4SPVFDcjs.package_default.version,
23284
23331
  clientType: "cli"
23285
23332
  });
23286
23333
  startPingService();
@@ -23291,7 +23338,7 @@ async function runCLI(options) {
23291
23338
  printWelcome(runtime, void 0, null);
23292
23339
  (async () => {
23293
23340
  try {
23294
- const versionCheckPromise = _optionalChain([config, 'access', _782 => _782.ui, 'optionalAccess', _783 => _783.checkForUpdates]) !== false ? checkForUpdates(_chunkKEAWYW5Ycjs.package_default.version, {
23341
+ const versionCheckPromise = _optionalChain([config, 'access', _782 => _782.ui, 'optionalAccess', _783 => _783.checkForUpdates]) !== false ? checkForUpdates(_chunkCH4SPVFDcjs.package_default.version, {
23295
23342
  checkIntervalHours: _nullishCoalesce(_optionalChain([config, 'access', _784 => _784.ui, 'optionalAccess', _785 => _785.updateCheckInterval]), () => ( 24))
23296
23343
  }) : Promise.resolve(null);
23297
23344
  const [authUser, , checkResults] = await Promise.all([
@@ -23308,7 +23355,7 @@ async function runCLI(options) {
23308
23355
  if (syncEnabled) {
23309
23356
  try {
23310
23357
  const { createSyncService, DEFAULT_SYNC_CONFIG } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sync-6M3WRKMH.cjs")));
23311
- const { setSyncService } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sync-LJNEHT7Y.cjs")));
23358
+ const { setSyncService } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sync-CQNQDNTJ.cjs")));
23312
23359
  const syncService = createSyncService({
23313
23360
  authToken: config.auth.token,
23314
23361
  userId: authUser.id,
@@ -23321,7 +23368,7 @@ async function runCLI(options) {
23321
23368
  config.auth = void 0;
23322
23369
  try {
23323
23370
  await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, config);
23324
- } catch (e112) {
23371
+ } catch (e113) {
23325
23372
  }
23326
23373
  console.log(_chalk2.default.yellow("Session expired. Run /login to sign in again."));
23327
23374
  }
@@ -23335,11 +23382,11 @@ async function runCLI(options) {
23335
23382
  process.on("exit", stopSync);
23336
23383
  process.on("SIGINT", stopSync);
23337
23384
  process.on("SIGTERM", stopSync);
23338
- } catch (e113) {
23385
+ } catch (e114) {
23339
23386
  }
23340
23387
  }
23341
23388
  }
23342
- } catch (e114) {
23389
+ } catch (e115) {
23343
23390
  }
23344
23391
  })();
23345
23392
  if (options.model) {
@@ -23363,7 +23410,7 @@ async function runCLI(options) {
23363
23410
  return;
23364
23411
  }
23365
23412
  const searchConfig = _nullishCoalesce(config.search, () => ( {}));
23366
- _chunk5E2XJK3Ocjs.configureSearch.call(void 0, {
23413
+ _chunkEOGKE5GDcjs.configureSearch.call(void 0, {
23367
23414
  provider: _nullishCoalesce(_nullishCoalesce(options.searchEngine, () => ( searchConfig.provider)), () => ( "duckduckgo")),
23368
23415
  braveApiKey: _nullishCoalesce(searchConfig.braveApiKey, () => ( process.env.BRAVE_SEARCH_API_KEY)),
23369
23416
  parallelApiKey: _nullishCoalesce(searchConfig.parallelApiKey, () => ( process.env.PARALLEL_API_KEY))
@@ -23410,7 +23457,7 @@ function printWelcome(runtime, authUser, versionCheck) {
23410
23457
  try {
23411
23458
  const settings = _chunkRJP3SZ7Qcjs.getProviderConfig.call(void 0, runtime.config);
23412
23459
  return _nullishCoalesce(_nullishCoalesce(runtime.options.model, () => ( _optionalChain([settings, 'optionalAccess', _792 => _792.model]))), () => ( "unknown"));
23413
- } catch (e115) {
23460
+ } catch (e116) {
23414
23461
  return _nullishCoalesce(runtime.options.model, () => ( "unknown"));
23415
23462
  }
23416
23463
  })();
@@ -23425,7 +23472,7 @@ function printWelcome(runtime, authUser, versionCheck) {
23425
23472
  }
23426
23473
  console.log(versionLine);
23427
23474
  if (_optionalChain([versionCheck, 'optionalAccess', _793 => _793.updateAvailable])) {
23428
- console.log(_chalk2.default.gray(" \u21B3 Run: ") + _chalk2.default.cyan("curl -fsSL https://autohand.ai/install.sh | sh"));
23475
+ console.log(_chalk2.default.gray(" \u21B3 Run: ") + _chalk2.default.cyan(getInstallHint(versionCheck.channel)));
23429
23476
  }
23430
23477
  if (authUser) {
23431
23478
  console.log(_chalk2.default.green(`Welcome back, ${authUser.name || authUser.email}!`));
@@ -23445,14 +23492,14 @@ function printWelcome(runtime, authUser, versionCheck) {
23445
23492
  async function runSkillInstall(opts) {
23446
23493
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, opts.config);
23447
23494
  const workspaceRoot = _chunkRJP3SZ7Qcjs.resolveWorkspaceRoot.call(void 0, config, opts.path);
23448
- const safetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23495
+ const safetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23449
23496
  if (!safetyCheck.safe) {
23450
- _chunkTYTHI5MCcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23497
+ _chunkZLOTP56Bcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23451
23498
  process.exit(1);
23452
23499
  }
23453
23500
  const { SkillsRegistry: SkillsRegistry2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./SkillsRegistry-6ZFOCT25.cjs")));
23454
23501
  const { AUTOHAND_PATHS: AUTOHAND_PATHS2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./constants-RBQTR32A.cjs")));
23455
- const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-IFUCRLZK.cjs")));
23502
+ const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-IKJZN4G2.cjs")));
23456
23503
  const skillsRegistry = new SkillsRegistry2(AUTOHAND_PATHS2.skills);
23457
23504
  await skillsRegistry.initialize();
23458
23505
  await skillsRegistry.setWorkspace(workspaceRoot);
@@ -23465,9 +23512,9 @@ async function runSkillInstall(opts) {
23465
23512
  async function displayPermissions(opts) {
23466
23513
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, opts.config);
23467
23514
  const workspaceRoot = _chunkRJP3SZ7Qcjs.resolveWorkspaceRoot.call(void 0, config, opts.path);
23468
- const safetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23515
+ const safetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23469
23516
  if (!safetyCheck.safe) {
23470
- _chunkTYTHI5MCcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23517
+ _chunkZLOTP56Bcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23471
23518
  process.exit(1);
23472
23519
  }
23473
23520
  const { PermissionManager: PermissionManager2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./PermissionManager-HG6W2DGU.cjs")));
@@ -23537,9 +23584,9 @@ async function runPatchMode(opts) {
23537
23584
  const { generateUnifiedPatch, formatChangeSummary } = await Promise.resolve().then(() => _interopRequireWildcard(require("./patch-J32X2QQP.cjs")));
23538
23585
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, opts.config);
23539
23586
  const workspaceRoot = _chunkRJP3SZ7Qcjs.resolveWorkspaceRoot.call(void 0, config, opts.path);
23540
- const safetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23587
+ const safetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, workspaceRoot);
23541
23588
  if (!safetyCheck.safe) {
23542
- _chunkTYTHI5MCcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23589
+ _chunkZLOTP56Bcjs.printDangerousWorkspaceWarning.call(void 0, workspaceRoot, safetyCheck);
23543
23590
  process.exit(1);
23544
23591
  }
23545
23592
  const additionalDirs = [];
@@ -23555,7 +23602,7 @@ async function runPatchMode(opts) {
23555
23602
  console.error(_chalk2.default.red(`Error: Additional path is not a directory: ${dir}`));
23556
23603
  process.exit(1);
23557
23604
  }
23558
- const addDirSafetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
23605
+ const addDirSafetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
23559
23606
  if (!addDirSafetyCheck.safe) {
23560
23607
  console.error(_chalk2.default.red(`Error: Unsafe additional directory: ${dir}`));
23561
23608
  console.error(_chalk2.default.yellow(` ${addDirSafetyCheck.reason}`));
@@ -23589,7 +23636,7 @@ async function runPatchMode(opts) {
23589
23636
  };
23590
23637
  console.error(_chalk2.default.cyan("Patch Mode: Changes will be captured without modifying files\n"));
23591
23638
  const searchConfig = _nullishCoalesce(config.search, () => ( {}));
23592
- _chunk5E2XJK3Ocjs.configureSearch.call(void 0, {
23639
+ _chunkEOGKE5GDcjs.configureSearch.call(void 0, {
23593
23640
  provider: _nullishCoalesce(searchConfig.provider, () => ( "duckduckgo")),
23594
23641
  braveApiKey: _nullishCoalesce(searchConfig.braveApiKey, () => ( process.env.BRAVE_SEARCH_API_KEY)),
23595
23642
  parallelApiKey: _nullishCoalesce(searchConfig.parallelApiKey, () => ( process.env.PARALLEL_API_KEY))
@@ -23629,9 +23676,9 @@ async function runAutoMode(opts) {
23629
23676
  }
23630
23677
  const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, opts.config);
23631
23678
  const originalWorkspaceRoot = _chunkRJP3SZ7Qcjs.resolveWorkspaceRoot.call(void 0, config, opts.path);
23632
- const safetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, originalWorkspaceRoot);
23679
+ const safetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, originalWorkspaceRoot);
23633
23680
  if (!safetyCheck.safe) {
23634
- _chunkTYTHI5MCcjs.printDangerousWorkspaceWarning.call(void 0, originalWorkspaceRoot, safetyCheck);
23681
+ _chunkZLOTP56Bcjs.printDangerousWorkspaceWarning.call(void 0, originalWorkspaceRoot, safetyCheck);
23635
23682
  process.exit(1);
23636
23683
  }
23637
23684
  const additionalDirs = [];
@@ -23647,7 +23694,7 @@ async function runAutoMode(opts) {
23647
23694
  console.error(_chalk2.default.red(`Error: Additional path is not a directory: ${dir}`));
23648
23695
  process.exit(1);
23649
23696
  }
23650
- const addDirSafetyCheck = _chunkTYTHI5MCcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
23697
+ const addDirSafetyCheck = _chunkZLOTP56Bcjs.checkWorkspaceSafety.call(void 0, resolvedDir);
23651
23698
  if (!addDirSafetyCheck.safe) {
23652
23699
  console.error(_chalk2.default.red(`Error: Unsafe additional directory: ${dir}`));
23653
23700
  console.error(_chalk2.default.yellow(` ${addDirSafetyCheck.reason}`));
@@ -23742,7 +23789,7 @@ async function runAutoMode(opts) {
23742
23789
  additionalDirs: additionalDirs.length > 0 ? additionalDirs : void 0
23743
23790
  };
23744
23791
  const searchConfig = _nullishCoalesce(config.search, () => ( {}));
23745
- _chunk5E2XJK3Ocjs.configureSearch.call(void 0, {
23792
+ _chunkEOGKE5GDcjs.configureSearch.call(void 0, {
23746
23793
  provider: _nullishCoalesce(searchConfig.provider, () => ( "duckduckgo")),
23747
23794
  braveApiKey: _nullishCoalesce(searchConfig.braveApiKey, () => ( process.env.BRAVE_SEARCH_API_KEY)),
23748
23795
  parallelApiKey: _nullishCoalesce(searchConfig.parallelApiKey, () => ( process.env.PARALLEL_API_KEY))