autohand-cli 0.7.9 → 0.7.10

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 (254) hide show
  1. package/README.md +19 -0
  2. package/dist/{AutomodeManager-YVCJXOMQ.js → AutomodeManager-NGRAO2MH.js} +35 -8
  3. package/dist/{AutomodeManager-HV6M7EAX.cjs → AutomodeManager-ZKQMBM4T.cjs} +35 -8
  4. package/dist/{CommunitySkillsCache-YWDFZBKP.js → CommunitySkillsCache-ILWHWE5P.js} +2 -2
  5. package/dist/CommunitySkillsCache-KHC6RUJW.cjs +7 -0
  6. package/dist/MemoryManager-6ZT7IDO5.cjs +7 -0
  7. package/dist/MemoryManager-AJGS5AKB.js +7 -0
  8. package/dist/PermissionManager-HG6W2DGU.cjs +10 -0
  9. package/dist/{PermissionManager-WYP5JPCQ.js → PermissionManager-U5OMGR3L.js} +3 -3
  10. package/dist/SessionManager-BJ2G6VV4.cjs +9 -0
  11. package/dist/{SessionManager-SFBDIBGA.js → SessionManager-ENPGYK5J.js} +2 -2
  12. package/dist/SkillsRegistry-6ZFOCT25.cjs +8 -0
  13. package/dist/{SkillsRegistry-E437FFJV.js → SkillsRegistry-C2SHOZ5D.js} +2 -2
  14. package/dist/about-RGUM5QQ4.cjs +11 -0
  15. package/dist/about-VDR3SIHS.js +11 -0
  16. package/dist/add-dir-3BMVJ5H3.cjs +9 -0
  17. package/dist/{add-dir-PNU7AGKO.js → add-dir-RP2BL3JW.js} +2 -1
  18. package/dist/agents-JQ2PHCQB.js +10 -0
  19. package/dist/agents-RGSZ2BM3.cjs +10 -0
  20. package/dist/agents-new-LSJN2L2T.cjs +13 -0
  21. package/dist/agents-new-MZUEVKSK.js +13 -0
  22. package/dist/automode-DP3BMYJB.cjs +9 -0
  23. package/dist/{automode-QCRJSBRT.js → automode-XOF3U3OB.js} +2 -1
  24. package/dist/{chunk-A5KU3JZW.cjs → chunk-34OGUMRO.cjs} +9 -5
  25. package/dist/{chunk-NTFNUTY2.js → chunk-3652ROFD.js} +2 -2
  26. package/dist/{chunk-KNLBEUAV.cjs → chunk-3DQSBW4B.cjs} +10 -6
  27. package/dist/{chunk-32R47CAQ.cjs → chunk-3S4DEIJP.cjs} +2 -2
  28. package/dist/{chunk-DRXFJR7F.cjs → chunk-3UNX56GC.cjs} +17 -16
  29. package/dist/chunk-46WX5IO2.cjs +499 -0
  30. package/dist/{chunk-IYZBLUEJ.js → chunk-4ULBAYME.js} +8 -6
  31. package/dist/{chunk-JRV4SOJU.cjs → chunk-5BQ57AZC.cjs} +9 -9
  32. package/dist/{chunk-7WKEDH3E.cjs → chunk-5FZM7KLB.cjs} +13 -10
  33. package/dist/{chunk-FN5S5OE7.cjs → chunk-5NZA4UB4.cjs} +3 -3
  34. package/dist/{chunk-PFS5ZOCO.js → chunk-5Q3W4DEU.js} +18 -10
  35. package/dist/{chunk-VMMGT42E.cjs → chunk-65GTO4QM.cjs} +7 -3
  36. package/dist/{chunk-CXZEPTRI.js → chunk-6P3K4YUW.js} +6 -2
  37. package/dist/chunk-73XIKTZL.js +124 -0
  38. package/dist/{chunk-P6EGMTK4.js → chunk-7QNW24ZT.js} +8 -4
  39. package/dist/{chunk-XT4OSHSB.cjs → chunk-AEYOIPHD.cjs} +6 -2
  40. package/dist/{chunk-KXNAGJE6.cjs → chunk-ANUQFV43.cjs} +6 -6
  41. package/dist/chunk-ATR3RORT.js +499 -0
  42. package/dist/{chunk-XOSFZHSS.js → chunk-B72CC4O6.js} +2 -2
  43. package/dist/{chunk-TAZJSKFD.js → chunk-BBIKQW66.js} +9 -5
  44. package/dist/{chunk-FFA4LDAO.cjs → chunk-BDIZGBDA.cjs} +8 -3
  45. package/dist/{chunk-YDJA5ETO.js → chunk-BG4OQUKP.js} +1 -1
  46. package/dist/{chunk-3DVEGFBZ.js → chunk-BODVOW7B.js} +64 -13
  47. package/dist/{chunk-HUA44A35.cjs → chunk-BZ73ZQTE.cjs} +17 -11
  48. package/dist/{chunk-6DSJ7XST.cjs → chunk-C22G4UE4.cjs} +13 -10
  49. package/dist/{chunk-T7HQBZZB.cjs → chunk-C2E3GJEE.cjs} +12 -9
  50. package/dist/{chunk-UP6YRP44.js → chunk-C5SVIQG3.js} +10 -5
  51. package/dist/{chunk-7GJR65DQ.js → chunk-CUBYCLNL.js} +2 -1
  52. package/dist/{chunk-4YQ2OJAL.js → chunk-D2XFTCRP.js} +1 -1
  53. package/dist/{chunk-R5PZPF55.js → chunk-DEAEO7RI.js} +1 -1
  54. package/dist/chunk-DMPVI3YK.cjs +400 -0
  55. package/dist/{chunk-C26EN22G.cjs → chunk-DUDDZRCS.cjs} +9 -5
  56. package/dist/{chunk-WT367RVU.js → chunk-E7YL3AHT.js} +15 -9
  57. package/dist/{chunk-5UC3VAJ2.cjs → chunk-EAOEAQGF.cjs} +2 -1
  58. package/dist/{chunk-CHVXUA3O.cjs → chunk-EV53SLSB.cjs} +4 -4
  59. package/dist/{chunk-PVSYZXS7.js → chunk-F3EIOVSQ.js} +11 -10
  60. package/dist/{chunk-VQDWNDP5.js → chunk-GD4AFYJ3.js} +1 -1
  61. package/dist/{chunk-AQNY2M6Q.cjs → chunk-GIZL57FE.cjs} +3 -1
  62. package/dist/{chunk-I4HVBWYF.js → chunk-GLAE5K5W.js} +7 -2
  63. package/dist/{chunk-4AMTDSQ3.cjs → chunk-HDSEJMWI.cjs} +6 -3
  64. package/dist/chunk-HLFZPN65.js +94 -0
  65. package/dist/{chunk-ZWS3KSMK.js → chunk-HQQ4NKER.js} +5 -2
  66. package/dist/{chunk-WBDPILKI.cjs → chunk-HVOBMOZ2.cjs} +6 -2
  67. package/dist/{chunk-RDGYHJ52.js → chunk-IPI3JXKP.js} +9 -6
  68. package/dist/{chunk-OO7EKEJH.cjs → chunk-IXFOH4OC.cjs} +17 -14
  69. package/dist/chunk-JS7IPR7P.js +249 -0
  70. package/dist/{chunk-CPO5KEQS.cjs → chunk-KC5FPUOF.cjs} +2 -2
  71. package/dist/{chunk-TUO5SZRD.cjs → chunk-L42HTMMR.cjs} +2 -2
  72. package/dist/chunk-LGGZQTLM.cjs +209 -0
  73. package/dist/chunk-LOXOD4IS.cjs +8630 -0
  74. package/dist/{chunk-LJCSSR5V.cjs → chunk-MNCWB5F7.cjs} +5 -5
  75. package/dist/{chunk-BTVNRLSE.js → chunk-MYNHJHDZ.js} +1 -1
  76. package/dist/{chunk-O3EX3SAD.cjs → chunk-N4ZSG6JJ.cjs} +2 -2
  77. package/dist/chunk-NF7RIHJK.js +45 -0
  78. package/dist/{chunk-KJAZ4YAR.cjs → chunk-NGBN2NGH.cjs} +76 -25
  79. package/dist/{chunk-MRDZHNCF.cjs → chunk-NRORJRD4.cjs} +4 -4
  80. package/dist/{chunk-OTS4YFSZ.cjs → chunk-OKABWSWA.cjs} +7 -3
  81. package/dist/{chunk-4BZ65NIH.js → chunk-OLG7LZBD.js} +1 -1
  82. package/dist/{chunk-KZ7VMQTC.js → chunk-OMEH2EVE.js} +5 -1
  83. package/dist/{chunk-LCBOOA7S.js → chunk-P5VDZ6PV.js} +1 -1
  84. package/dist/{chunk-V5MTBGM4.cjs → chunk-PA2H2263.cjs} +6 -2
  85. package/dist/chunk-PGRH5Q77.cjs +249 -0
  86. package/dist/{chunk-CMNQAF6C.js → chunk-PM62ZYXA.js} +12 -9
  87. package/dist/chunk-PNSRJT46.js +380 -0
  88. package/dist/{chunk-UL5T2XIY.cjs → chunk-PSED4Z4X.cjs} +13 -11
  89. package/dist/{chunk-PGH3MHPP.js → chunk-PWLLLJHU.js} +3 -1
  90. package/dist/{chunk-DOTAX65F.js → chunk-PYLR4J2D.js} +8 -4
  91. package/dist/{chunk-3SDEZTZD.js → chunk-QC6IUDDJ.js} +1 -1
  92. package/dist/{chunk-WJICM4SK.cjs → chunk-QM7HZCQW.cjs} +11 -6
  93. package/dist/chunk-QRQ5EX7I.cjs +380 -0
  94. package/dist/{chunk-RX4KPL6H.js → chunk-QU64XI5X.js} +9 -6
  95. package/dist/{chunk-FSTLJIR5.cjs → chunk-R7SDL3DJ.cjs} +16 -13
  96. package/dist/{chunk-LY5VN3B3.cjs → chunk-RJP3SZ7Q.cjs} +41 -253
  97. package/dist/{chunk-KS45GREN.js → chunk-RJXNNIFW.js} +7 -4
  98. package/dist/{chunk-LYMZDJX5.cjs → chunk-S5G7OEN2.cjs} +26 -18
  99. package/dist/{chunk-3DGR4GNN.cjs → chunk-SA4JOV4F.cjs} +10 -8
  100. package/dist/chunk-SAG6IY5Z.cjs +94 -0
  101. package/dist/{chunk-WCN5WDOI.cjs → chunk-TSY7JHIV.cjs} +2 -2
  102. package/dist/chunk-U23U52ZN.cjs +124 -0
  103. package/dist/chunk-UET7BDX2.js +8630 -0
  104. package/dist/{chunk-J7VV7JAB.js → chunk-UM4QEO36.js} +6 -4
  105. package/dist/{chunk-NCLCL7JK.js → chunk-WD5ZF6HE.js} +1 -1
  106. package/dist/{chunk-HF65HHDU.cjs → chunk-WH5RW7DV.cjs} +24 -22
  107. package/dist/{chunk-GSOEIEOU.js → chunk-WJ276BIP.js} +5 -1
  108. package/dist/{chunk-OXJCLU3X.js → chunk-WLTVF77A.js} +1 -1
  109. package/dist/{chunk-WGO4ACS7.cjs → chunk-WOGJXDBU.cjs} +3 -3
  110. package/dist/{chunk-QJ53OSGF.js → chunk-WRJLBHWB.js} +6 -2
  111. package/dist/{chunk-LKIKNRUP.js → chunk-WYLFLZ42.js} +8 -5
  112. package/dist/{chunk-HWDP4HQO.cjs → chunk-XL77XYI2.cjs} +4 -4
  113. package/dist/{chunk-QAJM6VG5.js → chunk-XLI7SHCH.js} +2 -2
  114. package/dist/chunk-Y27LG4BQ.cjs +45 -0
  115. package/dist/chunk-Y6OWFIUF.js +209 -0
  116. package/dist/chunk-YKSSNFDZ.js +400 -0
  117. package/dist/{chunk-VRI7EXV6.js → chunk-YMDLUTF2.js} +5 -1
  118. package/dist/{chunk-J2RUI7GJ.js → chunk-YVY27BJT.js} +5 -3
  119. package/dist/{chunk-K6CZ2AGI.js → chunk-ZBIBLOZL.js} +35 -247
  120. package/dist/completion-HVSWU5GR.cjs +13 -0
  121. package/dist/completion-WJ2MVNDH.js +13 -0
  122. package/dist/constants-RBQTR32A.cjs +20 -0
  123. package/dist/{constants-OFIAR4E5.js → constants-V6J54N3X.js} +1 -1
  124. package/dist/export-NN7F5ANA.js +11 -0
  125. package/dist/export-UPS3AK2P.cjs +11 -0
  126. package/dist/feedback-ARI7CLVQ.js +14 -0
  127. package/dist/feedback-OZTPYHKJ.cjs +14 -0
  128. package/dist/help-4674IV4D.cjs +58 -0
  129. package/dist/help-ENG5KV2M.js +58 -0
  130. package/dist/history-2KUM6GN4.cjs +13 -0
  131. package/dist/history-RZFT34Q7.js +13 -0
  132. package/dist/hooks-7QSUBHBM.cjs +12 -0
  133. package/dist/hooks-S4MD4QSR.js +12 -0
  134. package/dist/i18n-6NKENUIV.js +32 -0
  135. package/dist/i18n-MXQXQOVE.cjs +32 -0
  136. package/dist/ide-5STDV43A.cjs +11 -0
  137. package/dist/ide-W2NYXOWQ.js +11 -0
  138. package/dist/index.cjs +15320 -12906
  139. package/dist/index.js +15465 -13051
  140. package/dist/init-FG5KEJCZ.cjs +9 -0
  141. package/dist/init-TV4MJDYK.js +9 -0
  142. package/dist/language-52Q7CSAY.cjs +16 -0
  143. package/dist/language-FXFDGOBF.js +16 -0
  144. package/dist/localProjectPermissions-2EATUDZM.cjs +17 -0
  145. package/dist/{localProjectPermissions-FD5AK5FB.js → localProjectPermissions-WQYMGI42.js} +2 -2
  146. package/dist/login-AN42IOBK.js +18 -0
  147. package/dist/login-I65V4TGU.cjs +18 -0
  148. package/dist/logout-KK5UWGNG.js +16 -0
  149. package/dist/logout-VYYNWBHZ.cjs +16 -0
  150. package/dist/mcp-4SKTDECJ.js +15 -0
  151. package/dist/mcp-AGWPTMAX.cjs +15 -0
  152. package/dist/mcp-install-3NN2HAYR.cjs +473 -0
  153. package/dist/mcp-install-KTV52DQK.js +473 -0
  154. package/dist/memory-LG4K6XV6.cjs +9 -0
  155. package/dist/{memory-4GSP7NKV.js → memory-LRDK2SYC.js} +2 -1
  156. package/dist/model-P5D7ATE7.cjs +9 -0
  157. package/dist/{model-HKEFSH5E.js → model-WBFJIGUN.js} +2 -1
  158. package/dist/{new-EEZC4XXV.js → new-5A7RQEKI.js} +2 -1
  159. package/dist/new-EAATWI2G.cjs +9 -0
  160. package/dist/permissions-5URK6C44.js +12 -0
  161. package/dist/permissions-CJUDVG63.cjs +12 -0
  162. package/dist/quit-A33JHDG7.cjs +9 -0
  163. package/dist/quit-IYBLN3DB.js +9 -0
  164. package/dist/resume-OPSJTCH7.cjs +12 -0
  165. package/dist/resume-TOWEEN5D.js +12 -0
  166. package/dist/search-GOLIE5BA.js +14 -0
  167. package/dist/search-H42HGUK5.cjs +14 -0
  168. package/dist/{sessions-4KXIT76T.js → sessions-B5NENDKY.js} +2 -1
  169. package/dist/sessions-YHAVEMWY.cjs +9 -0
  170. package/dist/share-2JD2AKKX.cjs +13 -0
  171. package/dist/share-MYGDOTQE.js +13 -0
  172. package/dist/{skills-PB4HXV4R.js → skills-ICEQ2TNC.js} +2 -1
  173. package/dist/skills-LFVNZOMF.cjs +13 -0
  174. package/dist/{skills-install-UBBNXWD5.js → skills-install-6RN7FVCP.js} +9 -8
  175. package/dist/{skills-install-7SFS24HY.cjs → skills-install-LU6GA2WF.cjs} +14 -13
  176. package/dist/skills-new-5BM5PDFX.cjs +14 -0
  177. package/dist/skills-new-KWBWOX74.js +14 -0
  178. package/dist/status-M3XHJELG.cjs +10 -0
  179. package/dist/status-ZQDUYMKQ.js +10 -0
  180. package/dist/sync-6M3WRKMH.cjs +39 -0
  181. package/dist/sync-73D2MP65.cjs +16 -0
  182. package/dist/{sync-LYKDHRFM.js → sync-EXYX7HXW.js} +2 -2
  183. package/dist/sync-LL6M67CN.js +16 -0
  184. package/dist/theme-IFEI2IBJ.cjs +16 -0
  185. package/dist/theme-U3SKEULY.js +16 -0
  186. package/dist/ui/questionModal.cjs +28 -0
  187. package/dist/ui/questionModal.d.cts +11 -0
  188. package/dist/ui/questionModal.d.ts +11 -0
  189. package/dist/ui/questionModal.js +28 -0
  190. package/dist/undo-4DS67OAW.cjs +9 -0
  191. package/dist/undo-YMALVAPN.js +9 -0
  192. package/package.json +2 -1
  193. package/dist/CommunitySkillsCache-N2RWBCY2.cjs +0 -7
  194. package/dist/MemoryManager-J7APSLZ7.js +0 -7
  195. package/dist/MemoryManager-RLLYVIDY.cjs +0 -7
  196. package/dist/PermissionManager-ISI5OAJK.cjs +0 -10
  197. package/dist/SessionManager-7MF76Q3Q.cjs +0 -9
  198. package/dist/SkillsRegistry-UTK2YT4M.cjs +0 -8
  199. package/dist/add-dir-OMK3Y4DM.cjs +0 -8
  200. package/dist/agents-N2ZB4O2A.cjs +0 -9
  201. package/dist/agents-ZMT7HBRT.js +0 -9
  202. package/dist/agents-new-3EWS2NR3.cjs +0 -11
  203. package/dist/agents-new-TCGUYK5I.js +0 -11
  204. package/dist/automode-BRHUHGXU.cjs +0 -8
  205. package/dist/chunk-6SM6N7DJ.js +0 -2828
  206. package/dist/chunk-BEIG7V7Q.cjs +0 -51
  207. package/dist/chunk-L5QWMGLV.cjs +0 -2828
  208. package/dist/chunk-Z3Q2AFDS.js +0 -51
  209. package/dist/completion-NCSTSKTL.cjs +0 -11
  210. package/dist/completion-NTZERPAZ.js +0 -11
  211. package/dist/constants-B2X7KDIH.cjs +0 -20
  212. package/dist/export-5AJNVX4O.cjs +0 -9
  213. package/dist/export-ZQHTLV4W.js +0 -9
  214. package/dist/feedback-F7BMGSV6.cjs +0 -12
  215. package/dist/feedback-NL7CWTRY.js +0 -12
  216. package/dist/help-PKC6QCNG.js +0 -10
  217. package/dist/help-UEELQRHP.cjs +0 -10
  218. package/dist/hooks-AX5VPCZ3.cjs +0 -10
  219. package/dist/hooks-V22HVLQT.js +0 -10
  220. package/dist/init-DML7AOII.js +0 -8
  221. package/dist/init-SLLSDDJN.cjs +0 -8
  222. package/dist/language-IEKARNQH.js +0 -13
  223. package/dist/language-ULQCKXAD.cjs +0 -13
  224. package/dist/localProjectPermissions-7FI3XF4K.cjs +0 -17
  225. package/dist/login-PD3DFJLM.js +0 -15
  226. package/dist/login-VHGT4YKT.cjs +0 -15
  227. package/dist/logout-2QXNFGDT.js +0 -13
  228. package/dist/logout-A4SMKEFO.cjs +0 -13
  229. package/dist/memory-CFNC7RJH.cjs +0 -8
  230. package/dist/model-TKVEJ5BC.cjs +0 -8
  231. package/dist/new-EB2MBQXA.cjs +0 -8
  232. package/dist/permissions-S7433NQJ.js +0 -10
  233. package/dist/permissions-YZ6WCDBL.cjs +0 -10
  234. package/dist/quit-2RYFGIJP.cjs +0 -8
  235. package/dist/quit-RSYIERO5.js +0 -8
  236. package/dist/resume-54ERVSFM.cjs +0 -10
  237. package/dist/resume-YJ5CVKAP.js +0 -10
  238. package/dist/search-4TEQMUPU.js +0 -11
  239. package/dist/search-QGLS4SV7.cjs +0 -11
  240. package/dist/sessions-7RTCPVNE.cjs +0 -8
  241. package/dist/share-2B2T3AUU.cjs +0 -11
  242. package/dist/share-SZMXZIA3.js +0 -11
  243. package/dist/skills-HVQNCTGK.cjs +0 -12
  244. package/dist/skills-new-5FSDAJWE.js +0 -12
  245. package/dist/skills-new-IOTZYE6F.cjs +0 -12
  246. package/dist/status-AGPSKXSW.js +0 -9
  247. package/dist/status-WOINF556.cjs +0 -9
  248. package/dist/sync-64MZDWGG.js +0 -14
  249. package/dist/sync-F5ECJW25.cjs +0 -39
  250. package/dist/sync-W5UR7BEP.cjs +0 -14
  251. package/dist/theme-CWG3ZLHB.cjs +0 -13
  252. package/dist/theme-HQKV7YAP.js +0 -13
  253. package/dist/undo-2WR2ZIEC.cjs +0 -8
  254. package/dist/undo-7QJBXARS.js +0 -8
@@ -1,13 +1,16 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return 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; }
2
2
 
3
- var _chunk5UC3VAJ2cjs = require('./chunk-5UC3VAJ2.cjs');
3
+ var _chunkEAOEAQGFcjs = require('./chunk-EAOEAQGF.cjs');
4
4
 
5
5
 
6
6
 
7
- var _chunkL5QWMGLVcjs = require('./chunk-L5QWMGLV.cjs');
7
+ var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
8
8
 
9
9
 
10
- var _chunkAQNY2M6Qcjs = require('./chunk-AQNY2M6Q.cjs');
10
+ var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
11
+
12
+
13
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
11
14
 
12
15
  // src/commands/share.ts
13
16
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -176,7 +179,7 @@ function serializeSession(session, options) {
176
179
  const toolUsage = extractToolUsage(messages);
177
180
  const gitDiff = options.gitDiff ? parseGitDiff(options.gitDiff) : void 0;
178
181
  const client = {
179
- cliVersion: _chunk5UC3VAJ2cjs.package_default.version,
182
+ cliVersion: _chunkEAOEAQGFcjs.package_default.version,
180
183
  platform: process.platform,
181
184
  deviceId: options.deviceId
182
185
  };
@@ -212,15 +215,15 @@ var DEFAULT_CONFIG = {
212
215
  // 30s for large payloads
213
216
  maxRetries: 3,
214
217
  offlineQueue: true,
215
- cliVersion: _chunk5UC3VAJ2cjs.package_default.version
218
+ cliVersion: _chunkEAOEAQGFcjs.package_default.version
216
219
  };
217
220
  var ShareApiClient = class {
218
221
  constructor(configOverrides) {
219
222
  this.deviceId = null;
220
223
  this.config = { ...DEFAULT_CONFIG, ...configOverrides };
221
- const dataDir = _path2.default.join(_chunkAQNY2M6Qcjs.AUTOHAND_PATHS.config, "share");
224
+ const dataDir = _path2.default.join(_chunkGIZL57FEcjs.AUTOHAND_PATHS.config, "share");
222
225
  this.queuePath = _path2.default.join(dataDir, "queue.json");
223
- this.deviceIdPath = _path2.default.join(_chunkAQNY2M6Qcjs.AUTOHAND_PATHS.feedback, ".device-id");
226
+ this.deviceIdPath = _path2.default.join(_chunkGIZL57FEcjs.AUTOHAND_PATHS.feedback, ".device-id");
224
227
  }
225
228
  // ============ Device ID ============
226
229
  /**
@@ -451,7 +454,7 @@ function terminalLink(url, text) {
451
454
  }
452
455
  var metadata = {
453
456
  command: "/share",
454
- description: "Share current session via public URL",
457
+ description: _chunkLOXOD4IScjs.t.call(void 0, "commands.share.description"),
455
458
  implemented: true
456
459
  };
457
460
  async function execute(_args, context) {
@@ -495,7 +498,7 @@ async function execute(_args, context) {
495
498
  { label: "Public - Anyone with the link can view", value: "public" },
496
499
  { label: "Private - Requires one-time passcode", value: "private" }
497
500
  ];
498
- const visibilityResult = await _chunkL5QWMGLVcjs.showModal.call(void 0, {
501
+ const visibilityResult = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
499
502
  title: "Share visibility:",
500
503
  options: visibilityOptions
501
504
  });
@@ -504,7 +507,7 @@ async function execute(_args, context) {
504
507
  return;
505
508
  }
506
509
  const visibility = visibilityResult.value;
507
- const confirmed = await _chunkL5QWMGLVcjs.showConfirm.call(void 0, {
510
+ const confirmed = await _chunkQRQ5EX7Icjs.showConfirm.call(void 0, {
508
511
  title: `Share this session as ${visibility}?`,
509
512
  defaultValue: true
510
513
  });
@@ -513,7 +516,7 @@ async function execute(_args, context) {
513
516
  return;
514
517
  }
515
518
  console.log();
516
- const spinner = _ora2.default.call(void 0, "Uploading session...").start();
519
+ const spinner = _ora2.default.call(void 0, _chunkLOXOD4IScjs.t.call(void 0, "commands.share.generating")).start();
517
520
  try {
518
521
  const payload = serializeSession(session, {
519
522
  model: context.model,
@@ -526,9 +529,7 @@ async function execute(_args, context) {
526
529
  spinner.stop();
527
530
  if (response.success && response.url) {
528
531
  console.log();
529
- console.log(_chalk2.default.green.bold("Session shared successfully!"));
530
- console.log();
531
- console.log(`${_chalk2.default.bold("URL:")} ${terminalLink(response.url)}`);
532
+ console.log(_chalk2.default.green.bold(_chunkLOXOD4IScjs.t.call(void 0, "commands.share.success", { url: terminalLink(response.url) })));
532
533
  if (visibility === "private" && response.passcode) {
533
534
  console.log();
534
535
  console.log(`${_chalk2.default.bold("Passcode:")} ${_chalk2.default.yellow.bold(response.passcode)}`);
@@ -542,14 +543,14 @@ async function execute(_args, context) {
542
543
  } else {
543
544
  console.log();
544
545
  console.log(
545
- _chalk2.default.red(`Failed to share: ${response.error || "Unknown error"}`)
546
+ _chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.share.failed", { error: response.error || "Unknown error" }))
546
547
  );
547
548
  console.log();
548
549
  }
549
550
  } catch (error) {
550
551
  spinner.stop();
551
552
  console.log();
552
- console.log(_chalk2.default.red(`Failed to share: ${error.message}`));
553
+ console.log(_chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.share.failed", { error: error.message })));
553
554
  console.log();
554
555
  }
555
556
  }
@@ -0,0 +1,499 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return 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; }
2
+
3
+ var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
4
+
5
+
6
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
7
+
8
+ // src/commands/ide.ts
9
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
10
+ var _terminallink = require('terminal-link'); var _terminallink2 = _interopRequireDefault(_terminallink);
11
+
12
+ // src/core/ide/ideDetector.ts
13
+ var _child_process = require('child_process');
14
+ var _os = require('os'); var _os2 = _interopRequireDefault(_os);
15
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
16
+
17
+ // src/core/ide/ideTypes.ts
18
+ var IDE_REGISTRY = [
19
+ {
20
+ kind: "vscode",
21
+ displayName: "Visual Studio Code",
22
+ processPatterns: {
23
+ darwin: ["Visual Studio Code", "code "],
24
+ linux: ["code ", "/code"],
25
+ win32: ["Code.exe"]
26
+ },
27
+ extensionUrl: "https://marketplace.visualstudio.com/items?itemName=AutohandAI.vscode-autohand",
28
+ storage: {
29
+ type: "vscode-family",
30
+ darwin: "Code",
31
+ linux: "Code",
32
+ win32: "Code"
33
+ }
34
+ },
35
+ {
36
+ kind: "vscode-insiders",
37
+ displayName: "Visual Studio Code Insiders",
38
+ processPatterns: {
39
+ darwin: ["Code - Insiders", "code-insiders "],
40
+ linux: ["code-insiders ", "/code-insiders"],
41
+ win32: ["Code - Insiders.exe"]
42
+ },
43
+ extensionUrl: "https://marketplace.visualstudio.com/items?itemName=AutohandAI.vscode-autohand",
44
+ storage: {
45
+ type: "vscode-family",
46
+ darwin: "Code - Insiders",
47
+ linux: "Code - Insiders",
48
+ win32: "Code - Insiders"
49
+ }
50
+ },
51
+ {
52
+ kind: "cursor",
53
+ displayName: "Cursor",
54
+ processPatterns: {
55
+ darwin: ["Cursor.app", "cursor "],
56
+ linux: ["cursor ", "/cursor"],
57
+ win32: ["Cursor.exe"]
58
+ },
59
+ storage: {
60
+ type: "vscode-family",
61
+ darwin: "Cursor",
62
+ linux: "Cursor",
63
+ win32: "Cursor"
64
+ }
65
+ },
66
+ {
67
+ kind: "zed",
68
+ displayName: "Zed",
69
+ processPatterns: {
70
+ darwin: ["Zed.app", "/zed "],
71
+ linux: ["zed ", "/zed"],
72
+ win32: ["Zed.exe"]
73
+ },
74
+ extensionUrl: "https://zed.dev/extensions/autohand-acp",
75
+ storage: {
76
+ type: "zed",
77
+ darwin: "Zed",
78
+ linux: "zed",
79
+ win32: "Zed"
80
+ }
81
+ },
82
+ {
83
+ kind: "antigravity",
84
+ displayName: "Antigravity",
85
+ processPatterns: {
86
+ darwin: ["Antigravity.app", "antigravity "],
87
+ linux: [],
88
+ win32: []
89
+ },
90
+ storage: {
91
+ type: "vscode-family",
92
+ darwin: "Antigravity"
93
+ }
94
+ }
95
+ ];
96
+
97
+ // src/core/ide/ideDetector.ts
98
+ async function detectRunningIDEs(cwd) {
99
+ const platform = getCurrentPlatform();
100
+ const normalizedCwd = _path2.default.resolve(cwd);
101
+ const processLines = await getProcessList(platform);
102
+ const detected = [];
103
+ for (const entry of IDE_REGISTRY) {
104
+ const patterns = _nullishCoalesce(entry.processPatterns[platform], () => ( []));
105
+ if (patterns.length === 0) continue;
106
+ const matchingLines = findProcessLines(processLines, patterns);
107
+ if (matchingLines.length === 0) continue;
108
+ const argPaths = extractWorkspacePaths(matchingLines, entry.kind, platform);
109
+ if (argPaths.length > 0) {
110
+ const seen = /* @__PURE__ */ new Set();
111
+ for (const wsPath of argPaths) {
112
+ const resolvedWs = _path2.default.resolve(wsPath);
113
+ if (seen.has(resolvedWs)) continue;
114
+ seen.add(resolvedWs);
115
+ detected.push({
116
+ kind: entry.kind,
117
+ displayName: entry.displayName,
118
+ workspacePath: resolvedWs,
119
+ matchesCwd: pathMatchesCwd(normalizedCwd, resolvedWs, platform),
120
+ extensionUrl: entry.extensionUrl
121
+ });
122
+ }
123
+ } else {
124
+ const cwdFoundInStorage = await checkCwdInStorage(entry, normalizedCwd, platform);
125
+ detected.push({
126
+ kind: entry.kind,
127
+ displayName: entry.displayName,
128
+ workspacePath: cwdFoundInStorage ? normalizedCwd : null,
129
+ matchesCwd: cwdFoundInStorage,
130
+ extensionUrl: entry.extensionUrl
131
+ });
132
+ }
133
+ }
134
+ detected.sort((a, b) => {
135
+ if (a.matchesCwd && !b.matchesCwd) return -1;
136
+ if (!a.matchesCwd && b.matchesCwd) return 1;
137
+ return a.displayName.localeCompare(b.displayName);
138
+ });
139
+ return detected;
140
+ }
141
+ function getCurrentPlatform() {
142
+ return process.platform;
143
+ }
144
+ function pathMatchesCwd(normalizedCwd, workspacePath, platform) {
145
+ if (platform === "linux") {
146
+ return normalizedCwd === workspacePath;
147
+ }
148
+ return normalizedCwd.toLowerCase() === workspacePath.toLowerCase();
149
+ }
150
+ async function getProcessList(platform) {
151
+ if (platform === "win32") {
152
+ return getWindowsProcessList();
153
+ }
154
+ return getUnixProcessList();
155
+ }
156
+ async function getUnixProcessList() {
157
+ return new Promise((resolve) => {
158
+ _child_process.exec.call(void 0, "ps aux", { encoding: "utf-8", timeout: 5e3 }, (error, stdout) => {
159
+ if (error) {
160
+ resolve([]);
161
+ return;
162
+ }
163
+ resolve(stdout.split("\n"));
164
+ });
165
+ });
166
+ }
167
+ async function getWindowsProcessList() {
168
+ return new Promise((resolve) => {
169
+ const cmd = 'powershell -NoProfile -Command "Get-CimInstance Win32_Process | Select-Object Name,CommandLine | ConvertTo-Json"';
170
+ _child_process.exec.call(void 0, cmd, { encoding: "utf-8", timeout: 8e3 }, (error, stdout) => {
171
+ if (error) {
172
+ resolve([]);
173
+ return;
174
+ }
175
+ try {
176
+ const processes = JSON.parse(stdout);
177
+ const lines = (Array.isArray(processes) ? processes : [processes]).map(
178
+ (p) => `${_nullishCoalesce(p.Name, () => ( ""))} ${_nullishCoalesce(p.CommandLine, () => ( ""))}`
179
+ );
180
+ resolve(lines);
181
+ } catch (e) {
182
+ resolve([]);
183
+ }
184
+ });
185
+ });
186
+ }
187
+ function findProcessLines(lines, patterns) {
188
+ return lines.filter(
189
+ (line) => patterns.some((pattern) => line.includes(pattern))
190
+ );
191
+ }
192
+ function extractWorkspacePaths(lines, kind, platform) {
193
+ const paths = /* @__PURE__ */ new Set();
194
+ for (const line of lines) {
195
+ const folderUriMatch = line.match(/--folder-uri\s+file:\/\/([^\s]+)/);
196
+ if (_optionalChain([folderUriMatch, 'optionalAccess', _ => _[1]])) {
197
+ try {
198
+ const decoded = decodeURIComponent(folderUriMatch[1]);
199
+ if (!isRuntimePath(decoded, platform)) {
200
+ paths.add(decoded);
201
+ }
202
+ continue;
203
+ } catch (e2) {
204
+ }
205
+ }
206
+ const extractedPaths = extractPathsFromArgs(line, kind, platform);
207
+ for (const p of extractedPaths) {
208
+ paths.add(p);
209
+ }
210
+ }
211
+ return [...paths];
212
+ }
213
+ function extractPathsFromArgs(line, _kind, platform) {
214
+ const results = [];
215
+ let pathMatches;
216
+ if (platform === "win32") {
217
+ pathMatches = line.match(/\s([A-Za-z]:\\[^\s"]+)/g);
218
+ } else {
219
+ pathMatches = line.match(/\s(\/(?:Users|home|root)[^\s]+)/g);
220
+ }
221
+ if (!pathMatches) return results;
222
+ for (const match of pathMatches) {
223
+ const candidate = match.trim();
224
+ if (isRuntimePath(candidate, platform)) continue;
225
+ if (looksLikeWorkspace(candidate, platform)) {
226
+ results.push(candidate);
227
+ }
228
+ }
229
+ return results;
230
+ }
231
+ function isRuntimePath(p, platform) {
232
+ const plat = _nullishCoalesce(platform, () => ( getCurrentPlatform()));
233
+ const commonPatterns = [
234
+ "node_modules",
235
+ ".vscode",
236
+ ".cursor",
237
+ "Frameworks/",
238
+ "Helper",
239
+ "Crashpad",
240
+ "chrome-sandbox",
241
+ ".log",
242
+ ".sock",
243
+ ".pid"
244
+ ];
245
+ const unixPatterns = [
246
+ "/Applications/",
247
+ "/Library/",
248
+ "/System/",
249
+ "/usr/",
250
+ "/opt/",
251
+ "/tmp/",
252
+ "/var/",
253
+ "/private/",
254
+ "/.local/share/",
255
+ "/.config/",
256
+ "/.cache/",
257
+ ".app/",
258
+ "MacOS/",
259
+ "Resources/"
260
+ ];
261
+ const windowsPatterns = [
262
+ "Program Files",
263
+ "Program Files (x86)",
264
+ "\\Windows\\",
265
+ "\\AppData\\",
266
+ "\\ProgramData\\"
267
+ ];
268
+ const patterns = [
269
+ ...commonPatterns,
270
+ ...plat === "win32" ? windowsPatterns : unixPatterns
271
+ ];
272
+ return patterns.some((pattern) => p.includes(pattern));
273
+ }
274
+ function looksLikeWorkspace(p, platform) {
275
+ const plat = _nullishCoalesce(platform, () => ( getCurrentPlatform()));
276
+ if (plat === "win32") {
277
+ return /^[A-Za-z]:\\Users\\[^\\]+\\.+/.test(p);
278
+ }
279
+ return /^\/(Users|home)\/[^/]+\/.+/.test(p) || /^\/root\/.+/.test(p);
280
+ }
281
+ function getStorageBasePath(type, platform) {
282
+ const home = _os2.default.homedir();
283
+ switch (platform) {
284
+ case "darwin":
285
+ return _path2.default.join(home, "Library", "Application Support");
286
+ case "linux":
287
+ if (type === "zed") {
288
+ return _nullishCoalesce(process.env["XDG_DATA_HOME"], () => ( _path2.default.join(home, ".local", "share")));
289
+ }
290
+ return _nullishCoalesce(process.env["XDG_CONFIG_HOME"], () => ( _path2.default.join(home, ".config")));
291
+ case "win32":
292
+ if (type === "zed") {
293
+ return _nullishCoalesce(process.env["LOCALAPPDATA"], () => ( _path2.default.join(home, "AppData", "Local")));
294
+ }
295
+ return _nullishCoalesce(process.env["APPDATA"], () => ( _path2.default.join(home, "AppData", "Roaming")));
296
+ default:
297
+ return _path2.default.join(home, ".config");
298
+ }
299
+ }
300
+ async function checkCwdInStorage(entry, normalizedCwd, platform) {
301
+ const storageName = _optionalChain([entry, 'access', _2 => _2.storage, 'optionalAccess', _3 => _3[platform]]);
302
+ if (!storageName || !entry.storage) return false;
303
+ try {
304
+ if (entry.storage.type === "zed") {
305
+ return await checkZedStorage(storageName, normalizedCwd, platform);
306
+ }
307
+ return await checkVSCodeFamilyStorage(storageName, normalizedCwd, platform);
308
+ } catch (e3) {
309
+ return false;
310
+ }
311
+ }
312
+ async function checkVSCodeFamilyStorage(storageName, normalizedCwd, platform) {
313
+ const basePath = getStorageBasePath("vscode-family", platform);
314
+ const dbPath = _path2.default.join(basePath, storageName, "User", "globalStorage", "state.vscdb");
315
+ const raw = await querySqlite(
316
+ dbPath,
317
+ "SELECT value FROM ItemTable WHERE key = 'history.recentlyOpenedPathsList'"
318
+ );
319
+ if (!raw) return false;
320
+ try {
321
+ const data = JSON.parse(raw);
322
+ for (const entry of _nullishCoalesce(data.entries, () => ( []))) {
323
+ if (!entry.folderUri) continue;
324
+ try {
325
+ const url = new URL(entry.folderUri);
326
+ if (url.protocol === "file:") {
327
+ const folder = _path2.default.resolve(decodeURIComponent(url.pathname));
328
+ if (pathMatchesCwd(normalizedCwd, folder, platform)) return true;
329
+ }
330
+ } catch (e4) {
331
+ }
332
+ }
333
+ return false;
334
+ } catch (e5) {
335
+ return false;
336
+ }
337
+ }
338
+ async function checkZedStorage(storageName, normalizedCwd, platform) {
339
+ const basePath = getStorageBasePath("zed", platform);
340
+ const dbPath = _path2.default.join(basePath, storageName, "db", "0-stable", "db.sqlite");
341
+ const escaped = normalizedCwd.replace(/'/g, "''");
342
+ const raw = await querySqlite(
343
+ dbPath,
344
+ `SELECT COUNT(*) FROM workspaces WHERE paths IS NOT NULL AND paths = '${escaped}'`
345
+ );
346
+ return raw !== null && raw.trim() !== "0";
347
+ }
348
+ async function querySqlite(dbPath, query) {
349
+ return new Promise((resolve) => {
350
+ _child_process.exec.call(void 0,
351
+ `sqlite3 -readonly "${dbPath}" "${query}"`,
352
+ { encoding: "utf-8", timeout: 3e3 },
353
+ (error, stdout) => {
354
+ if (error) {
355
+ resolve(null);
356
+ return;
357
+ }
358
+ const trimmed = stdout.trim();
359
+ resolve(trimmed.length > 0 ? trimmed : null);
360
+ }
361
+ );
362
+ });
363
+ }
364
+ function getExtensionSuggestions(detected) {
365
+ const detectedKinds = new Set(detected.map((d) => d.kind));
366
+ const seen = /* @__PURE__ */ new Set();
367
+ const suggestions = [];
368
+ for (const entry of IDE_REGISTRY) {
369
+ if (!entry.extensionUrl) continue;
370
+ if (!detectedKinds.has(entry.kind)) continue;
371
+ if (seen.has(entry.extensionUrl)) continue;
372
+ seen.add(entry.extensionUrl);
373
+ suggestions.push({
374
+ displayName: entry.displayName,
375
+ url: entry.extensionUrl
376
+ });
377
+ }
378
+ return suggestions;
379
+ }
380
+
381
+ // src/commands/ide.ts
382
+ function groupByIDE(detected) {
383
+ const matching = [];
384
+ const matchedKinds = /* @__PURE__ */ new Set();
385
+ const nonMatching = /* @__PURE__ */ new Map();
386
+ for (const ide2 of detected) {
387
+ if (ide2.matchesCwd) {
388
+ matching.push(ide2);
389
+ matchedKinds.add(ide2.kind);
390
+ }
391
+ }
392
+ for (const ide2 of detected) {
393
+ if (matchedKinds.has(ide2.kind)) continue;
394
+ if (nonMatching.has(ide2.kind)) continue;
395
+ nonMatching.set(ide2.kind, ide2);
396
+ }
397
+ return { matching, nonMatching };
398
+ }
399
+ async function ide(ctx) {
400
+ console.log(_chalk2.default.bold.cyan(`
401
+ ${_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.title")}`));
402
+ console.log(_chalk2.default.gray(_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.connectDescription")));
403
+ console.log();
404
+ const detected = await detectRunningIDEs(ctx.workspaceRoot);
405
+ const { matching, nonMatching } = groupByIDE(detected);
406
+ if (detected.length === 0) {
407
+ console.log(_chalk2.default.yellow(_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.noIdesDetected")));
408
+ console.log();
409
+ printExtensionSuggestions(detected);
410
+ return null;
411
+ }
412
+ if (matching.length === 0) {
413
+ console.log(_chalk2.default.yellow(_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.noMatchingIdes")));
414
+ console.log();
415
+ if (nonMatching.size > 0) {
416
+ console.log(
417
+ _chalk2.default.gray(
418
+ _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
419
+ )
420
+ );
421
+ console.log();
422
+ printNonMatchingIDEs([...nonMatching.values()]);
423
+ }
424
+ printExtensionSuggestions(detected);
425
+ return null;
426
+ }
427
+ console.log(
428
+ _chalk2.default.green(
429
+ _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.foundMatching", { count: String(matching.length) })
430
+ )
431
+ );
432
+ console.log();
433
+ const options = matching.map((ide2) => ({
434
+ label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => ( _chunkLOXOD4IScjs.t.call(void 0, "common.unknown")))}`,
435
+ value: ide2.kind
436
+ }));
437
+ const result = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
438
+ title: _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.selectPrompt"),
439
+ options
440
+ });
441
+ if (!result) {
442
+ console.log(_chalk2.default.gray(`
443
+ ${_chunkLOXOD4IScjs.t.call(void 0, "common.cancelled")}`));
444
+ return null;
445
+ }
446
+ const selected = matching.find((d) => d.kind === result.value);
447
+ if (selected) {
448
+ console.log(
449
+ _chalk2.default.green(
450
+ `
451
+ \u2713 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.connected", { ide: selected.displayName })}`
452
+ )
453
+ );
454
+ }
455
+ if (nonMatching.size > 0) {
456
+ console.log();
457
+ console.log(
458
+ _chalk2.default.gray(
459
+ _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
460
+ )
461
+ );
462
+ console.log();
463
+ printNonMatchingIDEs([...nonMatching.values()]);
464
+ }
465
+ printExtensionSuggestions(detected);
466
+ return null;
467
+ }
468
+ function printNonMatchingIDEs(ides) {
469
+ for (const ide2 of ides) {
470
+ const wsPath = _nullishCoalesce(ide2.workspacePath, () => ( _chunkLOXOD4IScjs.t.call(void 0, "common.unknown")));
471
+ console.log(_chalk2.default.gray(` \u2022 ${ide2.displayName}: ${wsPath}`));
472
+ }
473
+ console.log();
474
+ }
475
+ function printExtensionSuggestions(detected) {
476
+ const suggestions = getExtensionSuggestions(detected);
477
+ if (suggestions.length === 0) return;
478
+ console.log(_chalk2.default.dim(`\u{1F4A1} ${_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.extensionHint")}`));
479
+ for (const suggestion of suggestions) {
480
+ const link = _terminallink2.default.call(void 0, suggestion.url, suggestion.url);
481
+ console.log(_chalk2.default.dim(` \u2022 ${suggestion.displayName}: ${link}`));
482
+ }
483
+ console.log();
484
+ }
485
+ var metadata = {
486
+ command: "/ide",
487
+ description: _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.description"),
488
+ implemented: true
489
+ };
490
+
491
+
492
+
493
+
494
+ exports.ide = ide; exports.metadata = metadata;
495
+ /**
496
+ * @license
497
+ * Copyright 2025 Autohand AI LLC
498
+ * SPDX-License-Identifier: Apache-2.0
499
+ */
@@ -2,7 +2,10 @@ import {
2
2
  showConfirm,
3
3
  showInput,
4
4
  showModal
5
- } from "./chunk-6SM6N7DJ.js";
5
+ } from "./chunk-PNSRJT46.js";
6
+ import {
7
+ t
8
+ } from "./chunk-UET7BDX2.js";
6
9
 
7
10
  // src/commands/export.ts
8
11
  import chalk from "chalk";
@@ -79,7 +82,7 @@ function formatTimestamp(timestamp) {
79
82
  minute: "2-digit"
80
83
  });
81
84
  }
82
- function formatMessage(message, options, index) {
85
+ function formatMessage(message, options, _index) {
83
86
  const parts = [];
84
87
  const roleEmoji = {
85
88
  user: "\u{1F464}",
@@ -242,7 +245,7 @@ function getSuggestedFilename(metadata2, format) {
242
245
  // src/commands/export.ts
243
246
  var metadata = {
244
247
  command: "/export",
245
- description: "Export current session to markdown",
248
+ description: t("commands.export.description"),
246
249
  implemented: true
247
250
  };
248
251
  async function execute(args, context) {
@@ -328,12 +331,11 @@ async function execute(args, context) {
328
331
  try {
329
332
  await saveExport(content, filePath);
330
333
  console.log();
331
- console.log(chalk.green("Session exported successfully!"));
332
- console.log(chalk.cyan(` ${filePath}`));
334
+ console.log(chalk.green(t("commands.export.success", { path: filePath })));
333
335
  console.log(chalk.gray(` ${messages.length} messages, ${(Buffer.byteLength(content, "utf8") / 1024).toFixed(1)} KB`));
334
336
  console.log();
335
337
  } catch (error) {
336
- console.log(chalk.red(`Failed to save export: ${error.message}`));
338
+ console.log(chalk.red(t("commands.export.failed", { error: error.message })));
337
339
  }
338
340
  }
339
341