autohand-cli 0.8.3 → 0.9.1

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 (546) hide show
  1. package/README.md +191 -74
  2. package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-GOV7FN2O.js} +2 -2
  3. package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
  4. package/dist/{AutomodeManager-EOVHGRPP.js → AutomodeManager-APLLPEYJ.js} +31 -17
  5. package/dist/{AutomodeManager-6ATBE7Q5.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
  7. package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-NT5GFZXS.js → GitHubRegistryFetcher-J2BWPXJF.js} +1 -1
  10. package/dist/{HookManager-B2F35M27.js → HookManager-2S6AHOC3.js} +1 -1
  11. package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
  12. package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-AEBMAKXE.js} +33 -9
  13. package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-AF2XL6DS.cjs} +37 -13
  14. package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
  15. package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
  16. package/dist/{McpClientManager-NQ3EW2IF.cjs → McpClientManager-BNSKLHIN.cjs} +2 -2
  17. package/dist/{McpClientManager-VBIMGKXU.js → McpClientManager-SL35BR24.js} +1 -1
  18. package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
  19. package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-QZRLTUB5.js} +2 -2
  20. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
  21. package/dist/NVIDIAProvider-SJPY3ONR.js +14 -0
  22. package/dist/{PermissionManager-7NQHRCHY.js → PermissionManager-MT7KBNNR.js} +3 -3
  23. package/dist/PermissionManager-URCNP5EC.cjs +11 -0
  24. package/dist/{ProjectProfiler-UG42W6WD.cjs → ProjectProfiler-CDAE7ECW.cjs} +1 -0
  25. package/dist/{ProjectProfiler-P4QJQWWA.js → ProjectProfiler-NZTJDRHD.js} +1 -0
  26. package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
  27. package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-RB4RVAF6.js} +4 -1
  28. package/dist/SessionManager-2IZGWASQ.cjs +10 -0
  29. package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-554PHVPC.js} +2 -2
  30. package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
  31. package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
  32. package/dist/SubAgent-4GOR2FIJ.js +13 -0
  33. package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
  34. package/dist/{SyncApiClient-B5RT2ECG.js → SyncApiClient-G3FM65IV.js} +1 -1
  35. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  36. package/dist/about-3USFSGOH.js +15 -0
  37. package/dist/about-QR52U5DD.cjs +15 -0
  38. package/dist/acp-5Y2W6OZP.js +1556 -0
  39. package/dist/acp-GSYE75OB.cjs +1556 -0
  40. package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
  41. package/dist/actionExecutor-PLQJZLZV.js +28 -0
  42. package/dist/add-dir-BTAD5OZS.cjs +11 -0
  43. package/dist/{add-dir-TUJM3PG5.js → add-dir-HCERJDBR.js} +3 -2
  44. package/dist/agent-B3EVT7NN.cjs +126 -0
  45. package/dist/agent-SATQ3WZ3.js +126 -0
  46. package/dist/agents/builtin/code-cleaner.md +1 -1
  47. package/dist/agents/builtin/docs-writer.md +1 -1
  48. package/dist/agents/builtin/researcher.md +2 -2
  49. package/dist/agents/builtin/reviewer.md +1 -1
  50. package/dist/agents/builtin/tester.md +1 -1
  51. package/dist/agents/builtin/todo-resolver.md +1 -1
  52. package/dist/agents-44CRJGM7.cjs +18 -0
  53. package/dist/agents-NN4ZAJ7R.js +18 -0
  54. package/dist/agents-new-6D6G4QS6.cjs +17 -0
  55. package/dist/agents-new-7GAQ25EK.js +17 -0
  56. package/dist/{autoSkill-LQEVQFIH.js → autoSkill-66PKCYTW.js} +2 -2
  57. package/dist/autoSkill-VQLGBELN.cjs +20 -0
  58. package/dist/automode-45DWV4TN.cjs +10 -0
  59. package/dist/{automode-R6P3VHLS.js → automode-BUF3VGXU.js} +2 -2
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/chrome-Q2U73HZB.cjs +50 -0
  63. package/dist/chrome-Q54OALOK.cjs +21 -0
  64. package/dist/chrome-Y3T7EIHG.js +50 -0
  65. package/dist/chrome-ZNJ46OYW.js +21 -0
  66. package/dist/chromeSkill-53TH55PM.js +105 -0
  67. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  68. package/dist/{chunk-HXGBSJL5.cjs → chunk-22SCR3EV.cjs} +2 -2
  69. package/dist/chunk-26G7YGOW.js +367 -0
  70. package/dist/{chunk-3L53OA4E.cjs → chunk-2ESQR35E.cjs} +10 -10
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/{chunk-ULDM2SNB.js → chunk-2IW5YFJ4.js} +48 -47
  73. package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
  74. package/dist/chunk-3EDDDZS2.cjs +5 -0
  75. package/dist/{chunk-X5VSP65C.cjs → chunk-3ICORF7M.cjs} +4 -4
  76. package/dist/chunk-3OF56EMA.cjs +197 -0
  77. package/dist/chunk-3UC6DMFI.cjs +93 -0
  78. package/dist/{chunk-64H4FRM3.cjs → chunk-3UHRCHKB.cjs} +32 -34
  79. package/dist/{chunk-JCLYQ2JC.js → chunk-3ZOOH44N.js} +12 -6
  80. package/dist/{chunk-TUD3Z3BD.js → chunk-44ZWOBTI.js} +136 -55
  81. package/dist/chunk-4567QNRB.js +444 -0
  82. package/dist/chunk-45CHNQM6.cjs +517 -0
  83. package/dist/chunk-46MTALKD.js +44 -0
  84. package/dist/{chunk-WHE2SWHU.js → chunk-4E7SHPNQ.js} +2 -2
  85. package/dist/chunk-4LMUDS2K.js +124 -0
  86. package/dist/{chunk-W7RYQJLO.cjs → chunk-4XFHP2SN.cjs} +46 -15
  87. package/dist/chunk-4XVLNOFA.js +360 -0
  88. package/dist/{chunk-GBHDROGL.js → chunk-575PXZX7.js} +16 -4
  89. package/dist/chunk-5A7ZL64N.js +139 -0
  90. package/dist/chunk-5GCQ5UMV.cjs +85 -0
  91. package/dist/chunk-5JTTM5SC.js +59 -0
  92. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  93. package/dist/{chunk-KLWJIPU2.cjs → chunk-5SFV2NCY.cjs} +20 -16
  94. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  95. package/dist/{chunk-A4IJHHV7.cjs → chunk-63ANVAOJ.cjs} +52 -11
  96. package/dist/{chunk-MYISNQH4.js → chunk-65LRPW5W.js} +1 -1
  97. package/dist/chunk-6AYJCDTA.js +360 -0
  98. package/dist/{chunk-X2MSVKDV.js → chunk-6HF6XSCC.js} +2 -2
  99. package/dist/{chunk-AEJH23FO.cjs → chunk-6JWCGQJU.cjs} +6 -6
  100. package/dist/chunk-6OECOAK5.cjs +360 -0
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/chunk-7DJJGKM6.js +77 -0
  103. package/dist/{chunk-VG34MG2U.js → chunk-7IRQ7JEH.js} +9 -6
  104. package/dist/chunk-7MY4JHER.js +27 -0
  105. package/dist/chunk-7PJKTSRN.js +152 -0
  106. package/dist/{chunk-SKYG33B2.cjs → chunk-7PT646AL.cjs} +3 -3
  107. package/dist/chunk-7WAUCLLQ.js +229 -0
  108. package/dist/{chunk-U46VYPLR.cjs → chunk-7XTUL7ZD.cjs} +9 -9
  109. package/dist/chunk-AE2ILW25.cjs +152 -0
  110. package/dist/{chunk-T2M64VHA.cjs → chunk-AOKXYGBQ.cjs} +61 -41
  111. package/dist/chunk-AQ5PVHOC.cjs +113 -0
  112. package/dist/{chunk-N2BLVUPM.cjs → chunk-AZ47LKD5.cjs} +3 -3
  113. package/dist/chunk-B4HSNOIH.cjs +354 -0
  114. package/dist/chunk-B76FJKEJ.cjs +184 -0
  115. package/dist/chunk-BP37FVBM.js +85 -0
  116. package/dist/chunk-BQU3HAE7.js +21 -0
  117. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  118. package/dist/chunk-C46B72VK.js +1034 -0
  119. package/dist/{chunk-HIVRCQS2.js → chunk-C5QIQQ37.js} +56 -25
  120. package/dist/chunk-CCIDL4SA.js +19931 -0
  121. package/dist/{chunk-XVUHNWMX.js → chunk-CECH6QQP.js} +17 -19
  122. package/dist/chunk-CFAWTLSC.js +13 -0
  123. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CK4HAHVY.cjs} +212 -70
  124. package/dist/chunk-CO2AADYU.cjs +360 -0
  125. package/dist/chunk-CRTCZ4WL.cjs +19931 -0
  126. package/dist/chunk-CSTUTDTH.js +75 -0
  127. package/dist/{chunk-K2C56QGS.cjs → chunk-D546G7DA.cjs} +1650 -479
  128. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  129. package/dist/{chunk-G4CAKI3V.js → chunk-DGBPWODD.js} +7 -2
  130. package/dist/chunk-DHUQZ53B.cjs +29 -0
  131. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  132. package/dist/{chunk-5K6NGAVM.js → chunk-DNSD7DVJ.js} +67 -52
  133. package/dist/{chunk-RDF37HKB.cjs → chunk-DSSCERHI.cjs} +3 -2
  134. package/dist/{chunk-NAJ4IZKD.cjs → chunk-EA2MS25U.cjs} +8 -6
  135. package/dist/{chunk-SJAVBCOA.js → chunk-EEHWALXA.js} +94 -3
  136. package/dist/chunk-ES2HJQ4N.js +37 -0
  137. package/dist/{chunk-G27PQQFD.js → chunk-EYHKL4QC.js} +1 -1
  138. package/dist/{chunk-SV2WA57F.js → chunk-FBQJZKFX.js} +38 -15
  139. package/dist/chunk-FFBDRUO5.cjs +59 -0
  140. package/dist/{chunk-N7LI55V4.js → chunk-FFHSCM5M.js} +15 -8
  141. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  142. package/dist/chunk-FQVG6ZHF.js +197 -0
  143. package/dist/{chunk-J2GSFVUV.cjs → chunk-GAOPJ5S3.cjs} +74 -59
  144. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  145. package/dist/chunk-GSDV75A5.js +715 -0
  146. package/dist/chunk-GWY26SUD.cjs +63 -0
  147. package/dist/{chunk-TUAITHWL.js → chunk-H426KOGY.js} +2 -1
  148. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  149. package/dist/chunk-HC2Q6A3E.cjs +4967 -0
  150. package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
  151. package/dist/{chunk-5IXII4HX.cjs → chunk-HG3ZASBH.cjs} +23 -16
  152. package/dist/chunk-HK5A54AV.cjs +280 -0
  153. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  154. package/dist/chunk-HSWWM6AM.js +2340 -0
  155. package/dist/chunk-HTU4W3GB.js +183 -0
  156. package/dist/{chunk-HLHTG5ZU.cjs → chunk-HVCIB4SW.cjs} +14 -12
  157. package/dist/chunk-HXHE2KAO.js +385 -0
  158. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  159. package/dist/{chunk-SLQAYV3W.js → chunk-HZWU6IO3.js} +11 -2
  160. package/dist/chunk-I2ZK3AOD.js +866 -0
  161. package/dist/chunk-IEPLQ47J.js +719 -0
  162. package/dist/chunk-J5HE6CUM.cjs +124 -0
  163. package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
  164. package/dist/chunk-JB3JCYBJ.js +113 -0
  165. package/dist/chunk-JCUHCH37.cjs +247 -0
  166. package/dist/{chunk-FPHU2ES6.cjs → chunk-JM3ZTQUK.cjs} +19 -9
  167. package/dist/{chunk-NDMIPTV4.js → chunk-JMJRFSNJ.js} +8 -3
  168. package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
  169. package/dist/chunk-JPFRI4L4.js +4967 -0
  170. package/dist/{chunk-BVKXEQVG.cjs → chunk-JV5HVCHU.cjs} +22 -10
  171. package/dist/chunk-KA2U6MY2.js +388 -0
  172. package/dist/{chunk-SEKD5FH3.cjs → chunk-KASXKDF2.cjs} +8 -3
  173. package/dist/chunk-KJ26T7GM.cjs +367 -0
  174. package/dist/chunk-KM7R5YPS.cjs +385 -0
  175. package/dist/{chunk-MBBY4ZIK.js → chunk-KMP6Y3LJ.js} +4 -1
  176. package/dist/chunk-KWXGDSYT.js +184 -0
  177. package/dist/{chunk-C5IJIM2V.cjs → chunk-L46OUKW5.cjs} +68 -37
  178. package/dist/{chunk-6UJMCWRY.js → chunk-L6OH44HL.js} +19 -9
  179. package/dist/chunk-LANGD5CO.js +280 -0
  180. package/dist/{chunk-APIXPPMT.js → chunk-LEZEWKPA.js} +1004 -39
  181. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  182. package/dist/chunk-LJD7KR3L.cjs +44 -0
  183. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  184. package/dist/{chunk-QXH5RCFI.js → chunk-M5DK524Z.js} +2 -2
  185. package/dist/chunk-M7B7RRBK.cjs +1034 -0
  186. package/dist/chunk-MANJ67D3.js +3897 -0
  187. package/dist/{chunk-HPHJ73GU.cjs → chunk-MGNXABSU.cjs} +9 -9
  188. package/dist/{chunk-6ZCULLCA.js → chunk-MMKZSJUN.js} +1 -1
  189. package/dist/{chunk-DVUHHH3B.cjs → chunk-MQQH4XQH.cjs} +4 -4
  190. package/dist/chunk-MUNUUFU7.cjs +21 -0
  191. package/dist/{chunk-DVZOENQ7.cjs → chunk-MZN6JBRZ.cjs} +9 -4
  192. package/dist/{chunk-OOKY3HPZ.js → chunk-NB6M6ESM.js} +50 -9
  193. package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
  194. package/dist/chunk-NHWHEW7M.cjs +75 -0
  195. package/dist/chunk-NQZH5CR2.cjs +468 -0
  196. package/dist/{chunk-EGPXJERY.cjs → chunk-NV6LCD2I.cjs} +119 -28
  197. package/dist/chunk-NVATU4V6.cjs +44 -0
  198. package/dist/{chunk-YZXUDM5X.js → chunk-NZ3ZWLUW.js} +204 -62
  199. package/dist/chunk-NZ7GCK7Y.cjs +92 -0
  200. package/dist/{chunk-VEKDGU2Q.cjs → chunk-NZQFKXM3.cjs} +49 -25
  201. package/dist/chunk-O5GI6SR3.js +59 -0
  202. package/dist/{chunk-56SWIDEL.cjs → chunk-OCATAKXV.cjs} +57 -56
  203. package/dist/{chunk-SKV2F3NM.js → chunk-OIGYWOL6.js} +1 -1
  204. package/dist/{chunk-IFFXSTOM.cjs → chunk-ONVYXTUT.cjs} +3 -3
  205. package/dist/chunk-OR67YXQK.cjs +13 -0
  206. package/dist/chunk-OV3T5MUH.cjs +715 -0
  207. package/dist/{chunk-OHUZKDGX.js → chunk-P4FUTSVK.js} +3 -3
  208. package/dist/chunk-P6SLT2F4.cjs +139 -0
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-2AA5MFES.js → chunk-PGFLPURU.js} +8 -5
  212. package/dist/{chunk-DJDE4DTT.cjs → chunk-PIXQ2AVM.cjs} +25 -19
  213. package/dist/chunk-PNIAIOMZ.cjs +229 -0
  214. package/dist/{chunk-HTLINWX6.cjs → chunk-PQBYFEBL.cjs} +16 -13
  215. package/dist/{chunk-22D2CNTP.cjs → chunk-PSAH4ZQB.cjs} +5 -2
  216. package/dist/{chunk-3VTAFAL2.js → chunk-PTTZI4QZ.js} +16 -12
  217. package/dist/{chunk-WPVWQSL7.cjs → chunk-PY73W5MQ.cjs} +16 -13
  218. package/dist/{chunk-EGMZDTSL.js → chunk-PZZMIYII.js} +10 -2
  219. package/dist/{chunk-HBZU3RBZ.js → chunk-Q3BS6FPM.js} +34 -10
  220. package/dist/chunk-QBYGMMDD.js +517 -0
  221. package/dist/chunk-QLZOMZO5.cjs +388 -0
  222. package/dist/{chunk-ADUFCS4Q.cjs → chunk-QQ64HEHP.cjs} +160 -79
  223. package/dist/{chunk-L3TWPROA.js → chunk-QRQF3556.js} +44 -24
  224. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  225. package/dist/chunk-RAKO7UN7.js +114 -0
  226. package/dist/{chunk-7TQH3CL4.cjs → chunk-RBXBH6EB.cjs} +78 -35
  227. package/dist/chunk-RFUKZIJF.cjs +78 -0
  228. package/dist/chunk-RS2E32YB.js +71 -0
  229. package/dist/{chunk-OLSBBZW6.cjs → chunk-S5JNQIGL.cjs} +5 -5
  230. package/dist/{chunk-FTYY5JJD.js → chunk-S5QKRA2V.js} +2 -2
  231. package/dist/chunk-SD3NTC7D.cjs +77 -0
  232. package/dist/{chunk-KPELYZ6L.js → chunk-SDLY4X3G.js} +2 -2
  233. package/dist/{chunk-IDFF5J2E.js → chunk-SFFEKZGC.js} +38 -7
  234. package/dist/{chunk-EGFT4PGW.js → chunk-SHRLFX6F.js} +8 -3
  235. package/dist/{chunk-3WICOC33.js → chunk-SNDDZG5H.js} +124 -84
  236. package/dist/{chunk-CZXGCVTR.cjs → chunk-SOVR7S3T.cjs} +2 -2
  237. package/dist/chunk-SPQ7QIQ6.js +78 -0
  238. package/dist/{chunk-XRZEUWKF.js → chunk-SRMGWMQO.js} +1 -1
  239. package/dist/{chunk-R33VKSH5.cjs → chunk-SVVP4UUZ.cjs} +11 -11
  240. package/dist/{chunk-7BTSG4ME.cjs → chunk-SY2P3Z5W.cjs} +1004 -39
  241. package/dist/chunk-SZD45IDG.js +468 -0
  242. package/dist/{chunk-3O3MOK5C.cjs → chunk-TE4SYTWR.cjs} +1114 -142
  243. package/dist/chunk-TH26BQJG.js +101 -0
  244. package/dist/{chunk-QNGEW5TC.js → chunk-TR6NECEZ.js} +1 -1
  245. package/dist/{chunk-YGN4CQIP.js → chunk-TYBPTKFT.js} +1 -1
  246. package/dist/{chunk-GJH7XMSK.js → chunk-U2QUMKCB.js} +8 -6
  247. package/dist/{chunk-47CKWKEX.cjs → chunk-U6PLSPMD.cjs} +9 -4
  248. package/dist/chunk-UOQECODR.js +34 -0
  249. package/dist/chunk-UR27UDTB.js +354 -0
  250. package/dist/chunk-UWZ4G3SQ.js +93 -0
  251. package/dist/{chunk-Y72HH2TF.cjs → chunk-V3SZLWEQ.cjs} +33 -24
  252. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  253. package/dist/{chunk-3PDTTAKJ.js → chunk-V5ELP2XE.js} +19 -12
  254. package/dist/{chunk-3K2ESU53.cjs → chunk-VKOXFT4L.cjs} +2 -2
  255. package/dist/{chunk-XTB6VJVQ.cjs → chunk-VLGGMQUN.cjs} +6 -6
  256. package/dist/chunk-VQHSYAPZ.cjs +3897 -0
  257. package/dist/chunk-VUGOOGHB.js +400 -0
  258. package/dist/chunk-W5QLA6WP.cjs +866 -0
  259. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  260. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  261. package/dist/chunk-WJYFLQ7G.cjs +27 -0
  262. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  263. package/dist/{chunk-ZSPXQYG2.js → chunk-WNJXIACY.js} +7 -5
  264. package/dist/{chunk-AYS2ASM7.js → chunk-WPE2XHVX.js} +1 -1
  265. package/dist/chunk-WTB7AFL6.cjs +101 -0
  266. package/dist/{chunk-JYTDYJVW.js → chunk-X3TI5TJJ.js} +1 -1
  267. package/dist/chunk-X5P6QQOB.cjs +719 -0
  268. package/dist/{chunk-245KJE5Y.cjs → chunk-X7XMITIL.cjs} +14 -6
  269. package/dist/chunk-XF2WIKHR.cjs +34 -0
  270. package/dist/{chunk-DV2ZHK7B.cjs → chunk-XNIMSVS6.cjs} +49 -26
  271. package/dist/chunk-XW3XCK4E.cjs +59 -0
  272. package/dist/{chunk-N23UAW4I.js → chunk-XZVDYC5U.js} +7 -2
  273. package/dist/chunk-Y5BDE24P.cjs +444 -0
  274. package/dist/{chunk-NAGQ2PDC.js → chunk-YC5OBZQU.js} +1604 -433
  275. package/dist/chunk-YISPVAXO.cjs +2340 -0
  276. package/dist/{chunk-KQGPTCQJ.js → chunk-YQDI753V.js} +68 -25
  277. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  278. package/dist/{chunk-NNPAM4HC.cjs → chunk-YWH55BWK.cjs} +15 -6
  279. package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
  280. package/dist/{chunk-XX2ZO7DS.js → chunk-YXM6SA7P.js} +25 -16
  281. package/dist/chunk-YZWE7XSM.js +5 -0
  282. package/dist/chunk-ZASDSY7P.cjs +114 -0
  283. package/dist/{chunk-2UC22DJU.js → chunk-ZNGRLCFQ.js} +30 -4
  284. package/dist/{chunk-KANW6OYC.cjs → chunk-ZNYZB7XY.cjs} +34 -8
  285. package/dist/{chunk-NA6WQDYW.js → chunk-ZPLCAXJW.js} +1088 -116
  286. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  287. package/dist/chunk-ZUYYHKQA.js +44 -0
  288. package/dist/clear-QJXU25IF.cjs +12 -0
  289. package/dist/{clear-A3N4GK2S.js → clear-Y5TO3RZA.js} +3 -3
  290. package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
  291. package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-RVL4STPS.js} +8 -5
  292. package/dist/completion-JX4T2ONW.cjs +17 -0
  293. package/dist/completion-SE3XYG74.js +17 -0
  294. package/dist/config-3224PRW4.cjs +21 -0
  295. package/dist/{config-HPJPKTO6.js → config-7KPHKFTP.js} +7 -4
  296. package/dist/{constants-LISJW3DD.js → constants-EJFAWJQI.js} +1 -1
  297. package/dist/constants-MCCGUU5F.cjs +21 -0
  298. package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
  299. package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
  300. package/dist/export-BJVIDZC4.js +15 -0
  301. package/dist/export-KU4557HK.cjs +15 -0
  302. package/dist/feature-K3LG5IJP.cjs +14 -0
  303. package/dist/feature-V4JF5TNJ.js +14 -0
  304. package/dist/features-5OJTLKS7.js +23 -0
  305. package/dist/features-VCBJQXCX.cjs +23 -0
  306. package/dist/feedback-D4437VE4.js +18 -0
  307. package/dist/feedback-VZPEHGFY.cjs +18 -0
  308. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  309. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  310. package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
  311. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  312. package/dist/go-X4E6BCD6.js +12 -0
  313. package/dist/go-XREVFS5I.cjs +12 -0
  314. package/dist/goal-4M3J6JS2.cjs +16 -0
  315. package/dist/goal-EI66BV7W.js +16 -0
  316. package/dist/help-GGFS7WHY.cjs +12 -0
  317. package/dist/{help-GFQXNZOK.js → help-MLIROWKM.js} +2 -2
  318. package/dist/{history-E3N6BJP7.js → history-GQJ6RZD6.js} +2 -2
  319. package/dist/history-J4LUIOSI.cjs +14 -0
  320. package/dist/hooks-FSRIUS6A.cjs +18 -0
  321. package/dist/hooks-PPFHCF7T.js +18 -0
  322. package/dist/i18n-CI6VFXL5.cjs +33 -0
  323. package/dist/{i18n-SY7QRM22.js → i18n-Q7UZJRPL.js} +1 -1
  324. package/dist/ide-BUSVE54P.js +15 -0
  325. package/dist/ide-YR27BPGM.cjs +15 -0
  326. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  327. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  328. package/dist/{import-W7SVLSTC.js → import-3VBKI6BN.js} +3 -3
  329. package/dist/{import-ADI37ZUR.cjs → import-C7S6UJMW.cjs} +3 -3
  330. package/dist/import-DBK4OCDF.cjs +10 -0
  331. package/dist/{import-KGKKZ3B7.js → import-U47DXCA7.js} +2 -2
  332. package/dist/index.cjs +837 -23011
  333. package/dist/index.d.cts +95 -0
  334. package/dist/index.d.ts +95 -0
  335. package/dist/index.js +864 -23038
  336. package/dist/init-OXTYS72D.cjs +10 -0
  337. package/dist/{init-7MFK626E.js → init-Q2O4R42R.js} +2 -2
  338. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  339. package/dist/inkMode-WBNFOSAT.js +7 -0
  340. package/dist/inputPrompt-3CFZDUBH.js +90 -0
  341. package/dist/inputPrompt-JMACL4EB.cjs +90 -0
  342. package/dist/language-EK3M6UBV.cjs +22 -0
  343. package/dist/language-Q3RUGGOW.js +22 -0
  344. package/dist/learn-3DSX7DYG.cjs +23 -0
  345. package/dist/learn-OPOH5L43.js +23 -0
  346. package/dist/login-GST7MWXJ.cjs +27 -0
  347. package/dist/login-Q7DZKAX4.js +27 -0
  348. package/dist/logout-2G7OUK7I.cjs +24 -0
  349. package/dist/logout-FNBBL2UI.js +24 -0
  350. package/dist/mcp-AH3MMUBU.js +21 -0
  351. package/dist/mcp-DW7R63IB.cjs +21 -0
  352. package/dist/{mcp-install-2FEROZTL.js → mcp-install-222PCKSW.js} +18 -10
  353. package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-IA4ZS2SV.cjs} +22 -14
  354. package/dist/memory-6NX3DAIY.cjs +10 -0
  355. package/dist/{memory-J73WZH2I.js → memory-VB46T5H3.js} +2 -2
  356. package/dist/model-64NAELFS.cjs +10 -0
  357. package/dist/{model-AES267IN.js → model-SJJG64AM.js} +2 -2
  358. package/dist/new-DU5SOOOY.cjs +12 -0
  359. package/dist/{new-5CLF3MKH.js → new-ERZ5C6CN.js} +3 -3
  360. package/dist/onboarding-2U2BV2KE.cjs +36 -0
  361. package/dist/onboarding-ZQXMPSMJ.js +36 -0
  362. package/dist/permissions-7ACNFK7A.js +10 -0
  363. package/dist/permissions-GSNNV7RJ.cjs +10 -0
  364. package/dist/plan-XEJMOT55.cjs +13 -0
  365. package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
  366. package/dist/pr-review-CW6J7P62.cjs +9 -0
  367. package/dist/pr-review-YZSBQVT2.js +9 -0
  368. package/dist/{quit-XDZYRSPU.js → quit-WY6T267G.js} +2 -2
  369. package/dist/quit-XIRE2KRE.cjs +10 -0
  370. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  371. package/dist/rawMode-GFNLXQPU.js +7 -0
  372. package/dist/{registry-PTHWERKC.js → registry-4DXUDKJN.js} +29 -44
  373. package/dist/{registry-IVT4G2RT.cjs → registry-UEO3ETZ7.cjs} +65 -80
  374. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  375. package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
  376. package/dist/resume-RQZ3WXBP.cjs +17 -0
  377. package/dist/resume-XSXZMDMD.js +17 -0
  378. package/dist/review-QHP2KP4Q.js +9 -0
  379. package/dist/review-UWHWQHCB.cjs +9 -0
  380. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  381. package/dist/ripgrep-VHJQQ55W.js +9 -0
  382. package/dist/rpc-XH7QLN4H.js +3874 -0
  383. package/dist/rpc-YF54T7JU.cjs +3874 -0
  384. package/dist/search-VXXFGZWU.cjs +21 -0
  385. package/dist/search-YAWGX7P7.js +21 -0
  386. package/dist/{sessions-6GWEBMKS.js → sessions-NJYHJOEL.js} +2 -2
  387. package/dist/sessions-OSG3UJEZ.cjs +10 -0
  388. package/dist/settings-SO2UIGWV.cjs +42 -0
  389. package/dist/settings-ZXUQH3DO.js +42 -0
  390. package/dist/setup-KG7EGKF5.js +30 -0
  391. package/dist/setup-RSOPCQ57.cjs +30 -0
  392. package/dist/share-WFAGZ5PY.js +17 -0
  393. package/dist/share-ZU3SGACF.cjs +17 -0
  394. package/dist/skills-KBVAQAD2.cjs +29 -0
  395. package/dist/skills-NBTNDVAY.js +29 -0
  396. package/dist/{skills-ZZCIAS7C.js → skills-OB6RDW7D.js} +10 -7
  397. package/dist/{skills-PG542VEB.cjs → skills-ZROBG3RZ.cjs} +13 -10
  398. package/dist/{skills-install-SRC3Z2MS.js → skills-install-BHTIEMKH.js} +21 -70
  399. package/dist/{skills-install-67DOBPJC.cjs → skills-install-ILX6QVEF.cjs} +34 -83
  400. package/dist/skills-new-B45VQ2PP.cjs +18 -0
  401. package/dist/skills-new-YMRP2HNO.js +18 -0
  402. package/dist/slashCommands-53VYIBJU.js +105 -0
  403. package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
  404. package/dist/status-CQ2IUOVK.cjs +24 -0
  405. package/dist/status-E7IGNVPC.js +24 -0
  406. package/dist/summarizer-DGPHE5IQ.js +17 -0
  407. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  408. package/dist/sync-7C25MOT2.js +22 -0
  409. package/dist/{sync-VU2NSJ4O.js → sync-OCJN4ZSO.js} +3 -3
  410. package/dist/sync-XRP46IVG.cjs +40 -0
  411. package/dist/sync-ZMFVE7T4.cjs +22 -0
  412. package/dist/{teammate-SXRVXNQV.cjs → teammate-D77B6QRT.cjs} +31 -9
  413. package/dist/{teammate-SD26GR37.js → teammate-EZCMHOIL.js} +30 -8
  414. package/dist/templates-ARG2VRWW.cjs +11 -0
  415. package/dist/templates-UGVZV3KJ.js +11 -0
  416. package/dist/theme-KKRDE6P7.cjs +22 -0
  417. package/dist/theme-XF7XIWBQ.js +22 -0
  418. package/dist/tools-3PPTTKFV.js +9 -0
  419. package/dist/tools-THIQA7WC.cjs +9 -0
  420. package/dist/ui/questionModal.cjs +8 -5
  421. package/dist/ui/questionModal.js +7 -4
  422. package/dist/{undo-OL2EDBRY.js → undo-GNUTFXCW.js} +2 -2
  423. package/dist/undo-U4KN7QQM.cjs +10 -0
  424. package/dist/usage-QSTNSDAO.js +24 -0
  425. package/dist/usage-YDEMQBNQ.cjs +24 -0
  426. package/dist/web-3BA2WV37.cjs +37 -0
  427. package/dist/web-6FYGBX5K.js +37 -0
  428. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  429. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  430. package/dist/yolo-GF2YD7ZI.js +9 -0
  431. package/dist/yolo-OGDA7HNC.cjs +9 -0
  432. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  433. package/dist/yoloMode-4JOOSU26.js +17 -0
  434. package/package.json +51 -49
  435. package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
  436. package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
  437. package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
  438. package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
  439. package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
  440. package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
  441. package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
  442. package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
  443. package/dist/SessionManager-YBJAZXNO.cjs +0 -10
  444. package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
  445. package/dist/SubAgent-JT4HZHN7.js +0 -11
  446. package/dist/SubAgent-VPNYDWAU.cjs +0 -11
  447. package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
  448. package/dist/about-4DB5KTHW.js +0 -12
  449. package/dist/about-LXAOXZFT.cjs +0 -12
  450. package/dist/actionExecutor-23JB2WUC.js +0 -19
  451. package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
  452. package/dist/add-dir-YC37DMSF.cjs +0 -10
  453. package/dist/agents-YF3BSUU5.js +0 -12
  454. package/dist/agents-ZOUHPMYR.cjs +0 -12
  455. package/dist/agents-new-HSH4GQPG.js +0 -14
  456. package/dist/agents-new-VYUDOCE7.cjs +0 -14
  457. package/dist/autoSkill-X5W52WOE.cjs +0 -20
  458. package/dist/automode-SJGM7VEI.cjs +0 -10
  459. package/dist/chunk-ALYU6VTM.js +0 -105
  460. package/dist/chunk-B53A2NM2.js +0 -2030
  461. package/dist/chunk-BJXSNT46.js +0 -100
  462. package/dist/chunk-CB4E2T5N.cjs +0 -312
  463. package/dist/chunk-DNUOXBHL.js +0 -539
  464. package/dist/chunk-EFX2QSZX.cjs +0 -33
  465. package/dist/chunk-GCXYXLRA.cjs +0 -111
  466. package/dist/chunk-H2ZRHQQV.js +0 -33
  467. package/dist/chunk-HNRPK5MY.cjs +0 -85
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-JJLYWH5Y.cjs +0 -100
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-MERYP6AM.cjs +0 -539
  472. package/dist/chunk-MZAPWNAC.cjs +0 -207
  473. package/dist/chunk-NTSDP2WB.js +0 -226
  474. package/dist/chunk-OUZQXMHL.cjs +0 -226
  475. package/dist/chunk-PGESAU2W.cjs +0 -2030
  476. package/dist/chunk-SYVYLZZF.cjs +0 -24
  477. package/dist/chunk-SZOLA6FR.js +0 -111
  478. package/dist/chunk-VWDHR4HV.js +0 -168
  479. package/dist/chunk-Y45G6ZO5.cjs +0 -168
  480. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  481. package/dist/chunk-ZYVS43MU.js +0 -312
  482. package/dist/clear-GK4IEUUS.cjs +0 -12
  483. package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
  484. package/dist/completion-HWABSAEL.js +0 -14
  485. package/dist/completion-IUUVQG4D.cjs +0 -14
  486. package/dist/config-HF7WOLZF.cjs +0 -18
  487. package/dist/constants-PEO3P2SJ.cjs +0 -21
  488. package/dist/export-QJAV2FCZ.js +0 -12
  489. package/dist/export-XSRFXGWU.cjs +0 -12
  490. package/dist/feedback-4TCIL3ML.cjs +0 -15
  491. package/dist/feedback-SJ6VVEY3.js +0 -15
  492. package/dist/filesystem-W56QZUJF.cjs +0 -10
  493. package/dist/help-ISBVQL3S.cjs +0 -12
  494. package/dist/history-XQ4GTSFU.cjs +0 -14
  495. package/dist/hooks-CJNKJ5PF.js +0 -13
  496. package/dist/hooks-UTMBTAXT.cjs +0 -13
  497. package/dist/i18n-N7QQ7A5M.cjs +0 -33
  498. package/dist/ide-RTA4UJV4.js +0 -12
  499. package/dist/ide-VWVOLIFF.cjs +0 -12
  500. package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
  501. package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
  502. package/dist/import-ZLJVONXH.cjs +0 -10
  503. package/dist/init-TBKAB4LZ.cjs +0 -10
  504. package/dist/language-MDSHEXHB.cjs +0 -18
  505. package/dist/language-PXTQSHIG.js +0 -18
  506. package/dist/learn-623TW5EK.cjs +0 -20
  507. package/dist/learn-BCPV7GM2.js +0 -20
  508. package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
  509. package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
  510. package/dist/login-QMVEETWJ.js +0 -20
  511. package/dist/login-QYMXAL3K.cjs +0 -20
  512. package/dist/logout-2CMTDAOJ.js +0 -18
  513. package/dist/logout-ZOHVZAUK.cjs +0 -18
  514. package/dist/mcp-IUVKK65S.js +0 -18
  515. package/dist/mcp-TXC7PYG3.cjs +0 -18
  516. package/dist/memory-WRIHDEPK.cjs +0 -10
  517. package/dist/model-RLP75SF5.cjs +0 -10
  518. package/dist/new-HLSFL6A4.cjs +0 -12
  519. package/dist/permissions-GP6FTGZ2.js +0 -13
  520. package/dist/permissions-O6EKKPOG.cjs +0 -13
  521. package/dist/plan-MCAXDIM2.cjs +0 -11
  522. package/dist/quit-TQX6GXA5.cjs +0 -10
  523. package/dist/repeat-BSPS5TWD.cjs +0 -13
  524. package/dist/resume-2GOPDLL4.cjs +0 -13
  525. package/dist/resume-37IUVDA6.js +0 -13
  526. package/dist/search-7KUSHIBL.cjs +0 -17
  527. package/dist/search-OJGDRIMA.js +0 -17
  528. package/dist/sessions-CYYCHSQG.cjs +0 -10
  529. package/dist/settings-2D7CAO66.cjs +0 -30
  530. package/dist/settings-BXR6SBJP.js +0 -30
  531. package/dist/share-BXQY5IQU.js +0 -14
  532. package/dist/share-OSFXZBGS.cjs +0 -14
  533. package/dist/skills-FL6O6AOM.cjs +0 -26
  534. package/dist/skills-PNKQZRNK.js +0 -26
  535. package/dist/skills-new-XFMEHHIF.cjs +0 -15
  536. package/dist/skills-new-ZNZPHUKS.js +0 -15
  537. package/dist/slashCommands-LLCNPK3X.js +0 -76
  538. package/dist/slashCommands-RXZZS6RE.cjs +0 -76
  539. package/dist/status-BCECUJXT.cjs +0 -11
  540. package/dist/status-EFO7MQU3.js +0 -11
  541. package/dist/sync-IJYJ6KKM.js +0 -18
  542. package/dist/sync-LFT6SBPF.cjs +0 -18
  543. package/dist/sync-U7SDPBNZ.cjs +0 -40
  544. package/dist/theme-AWBHSG7J.cjs +0 -18
  545. package/dist/theme-TQLBPJ2E.js +0 -18
  546. package/dist/undo-IBBGP7A2.cjs +0 -10
@@ -1,16 +1,16 @@
1
- import {
2
- package_default
3
- } from "./chunk-SZOLA6FR.js";
4
1
  import {
5
2
  safePrompt
6
- } from "./chunk-6ZCULLCA.js";
3
+ } from "./chunk-MMKZSJUN.js";
4
+ import {
5
+ package_default
6
+ } from "./chunk-JB3JCYBJ.js";
7
7
  import {
8
8
  AUTOHAND_FILES,
9
9
  AUTOHAND_PATHS
10
- } from "./chunk-EGFT4PGW.js";
10
+ } from "./chunk-SHRLFX6F.js";
11
11
  import {
12
12
  t
13
- } from "./chunk-APIXPPMT.js";
13
+ } from "./chunk-LEZEWKPA.js";
14
14
 
15
15
  // src/commands/feedback.ts
16
16
  import fs from "fs-extra";
@@ -74,12 +74,12 @@ async function feedback(_ctx) {
74
74
  name: "rating",
75
75
  message: "How would you rate your experience?",
76
76
  choices: [
77
- { name: "5", message: "5 - Excellent" },
78
- { name: "4", message: "4 - Good" },
79
- { name: "3", message: "3 - Okay" },
80
- { name: "2", message: "2 - Poor" },
81
- { name: "1", message: "1 - Very Poor" },
82
- { name: "skip", message: "s - Skip rating" }
77
+ { name: "5", message: "Excellent" },
78
+ { name: "4", message: "Good" },
79
+ { name: "3", message: "Okay" },
80
+ { name: "2", message: "Poor" },
81
+ { name: "1", message: "Very Poor" },
82
+ { name: "skip", message: "Skip rating" }
83
83
  ]
84
84
  }
85
85
  ]);
@@ -87,24 +87,65 @@ async function feedback(_ctx) {
87
87
  console.log(chalk.gray("Feedback discarded."));
88
88
  return null;
89
89
  }
90
- const textAnswer = await safePrompt([
91
- {
92
- type: "input",
93
- name: "feedback",
94
- message: "What worked? What broke? (optional)"
95
- }
96
- ]);
97
- if (!textAnswer) {
98
- console.log(chalk.gray("Feedback discarded."));
90
+ if (ratingAnswer.rating === "skip") {
91
+ console.log(chalk.gray("Feedback skipped."));
99
92
  return null;
100
93
  }
101
- const npsScore = ratingAnswer.rating === "skip" ? 0 : parseInt(ratingAnswer.rating, 10);
102
- const freeformFeedback = textAnswer.feedback?.trim() || void 0;
94
+ const npsScore = parseInt(ratingAnswer.rating, 10);
95
+ let reason;
96
+ let improvement;
97
+ let recommend;
98
+ if (npsScore >= 4) {
99
+ const reasonAnswer = await safePrompt([
100
+ {
101
+ type: "input",
102
+ name: "reason",
103
+ message: "What do you like most about Autohand? (optional, press Enter to skip)"
104
+ }
105
+ ]);
106
+ if (!reasonAnswer) {
107
+ console.log(chalk.gray("Feedback discarded."));
108
+ return null;
109
+ }
110
+ reason = reasonAnswer.reason?.trim() || void 0;
111
+ const recommendAnswer = await safePrompt([
112
+ {
113
+ type: "select",
114
+ name: "recommend",
115
+ message: "Would you recommend Autohand to a colleague?",
116
+ choices: [
117
+ { name: "yes", message: "Yes" },
118
+ { name: "no", message: "No" }
119
+ ]
120
+ }
121
+ ]);
122
+ if (!recommendAnswer) {
123
+ console.log(chalk.gray("Feedback discarded."));
124
+ return null;
125
+ }
126
+ recommend = recommendAnswer.recommend === "yes";
127
+ } else {
128
+ const improvementAnswer = await safePrompt([
129
+ {
130
+ type: "input",
131
+ name: "improvement",
132
+ message: "What could we do better? (optional, press Enter to skip)"
133
+ }
134
+ ]);
135
+ if (!improvementAnswer) {
136
+ console.log(chalk.gray("Feedback discarded."));
137
+ return null;
138
+ }
139
+ improvement = improvementAnswer.improvement?.trim() || void 0;
140
+ }
103
141
  const now = (/* @__PURE__ */ new Date()).toISOString();
104
142
  const runtimeError = getLastRuntimeError();
105
143
  const deviceId = await getDeviceId();
106
144
  const payload = {
107
145
  npsScore,
146
+ recommend,
147
+ reason,
148
+ improvement,
108
149
  triggerType: "manual",
109
150
  timestamp: now,
110
151
  deviceId,
@@ -112,7 +153,6 @@ async function feedback(_ctx) {
112
153
  platform: process.platform,
113
154
  osVersion: os.release(),
114
155
  nodeVersion: process.version,
115
- freeformFeedback,
116
156
  env: {
117
157
  platform: `${process.platform}-${process.arch}`,
118
158
  node: process.version,
@@ -153,7 +193,7 @@ async function sendFeedbackToApi(payload, apiBaseUrl) {
153
193
  const controller = new AbortController();
154
194
  const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT);
155
195
  try {
156
- const response = await fetch(`${apiBaseUrl}/v1/feedback`, {
196
+ const response = await fetch(getFeedbackSubmitUrl(apiBaseUrl), {
157
197
  method: "POST",
158
198
  headers: {
159
199
  "Content-Type": "application/json",
@@ -181,6 +221,9 @@ async function sendFeedbackToApi(payload, apiBaseUrl) {
181
221
  function getFeedbackApiBaseUrl(ctx) {
182
222
  return process.env.AUTOHAND_API_URL?.trim() || ctx.config?.api?.baseUrl?.trim() || DEFAULT_API_BASE_URL;
183
223
  }
224
+ function getFeedbackSubmitUrl(apiBaseUrl) {
225
+ return `${apiBaseUrl.replace(/\/+$/, "")}/v1/feedback`;
226
+ }
184
227
  function formatFeedbackApiError(status, rawBody) {
185
228
  const body = (rawBody ?? "").replace(/\s+/g, " ").trim();
186
229
  if (!body) {
@@ -2,6 +2,8 @@
2
2
  var DEFAULT_REPO = "autohandai/community-skills";
3
3
  var DEFAULT_BRANCH = "main";
4
4
  var GitHubRegistryFetcher = class {
5
+ baseUrl;
6
+ timeout;
5
7
  constructor(config = {}) {
6
8
  const repo = config.repo || DEFAULT_REPO;
7
9
  const branch = config.branch || DEFAULT_BRANCH;
@@ -2,27 +2,27 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
5
+ var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
6
6
 
7
7
  // src/ui/i18n/I18nContext.tsx
8
8
  var _react = require('react');
9
9
  var _jsxruntime = require('react/jsx-runtime');
10
10
  var defaultContextValue = {
11
- t: _chunk7BTSG4MEcjs.t,
11
+ t: _chunkSY2P3Z5Wcjs.t,
12
12
  locale: "en"
13
13
  };
14
14
  var I18nContext = _react.createContext.call(void 0, defaultContextValue);
15
15
  var I18nProvider = ({ children }) => {
16
- const [locale, setLocale] = _react.useState.call(void 0, _chunk7BTSG4MEcjs.getCurrentLocale.call(void 0, ));
16
+ const [locale, setLocale] = _react.useState.call(void 0, _chunkSY2P3Z5Wcjs.getCurrentLocale.call(void 0, ));
17
17
  _react.useEffect.call(void 0, () => {
18
- const unsubscribe = _chunk7BTSG4MEcjs.onLanguageChange.call(void 0, (newLocale) => {
18
+ const unsubscribe = _chunkSY2P3Z5Wcjs.onLanguageChange.call(void 0, (newLocale) => {
19
19
  setLocale(newLocale);
20
20
  });
21
21
  return unsubscribe;
22
22
  }, []);
23
23
  const value = _react.useMemo.call(void 0,
24
24
  () => ({
25
- t: _chunk7BTSG4MEcjs.t,
25
+ t: _chunkSY2P3Z5Wcjs.t,
26
26
  locale
27
27
  }),
28
28
  [locale]
@@ -34,10 +34,19 @@ function useTranslation() {
34
34
  return context;
35
35
  }
36
36
 
37
+ // src/ui/inkRenderOptions.ts
38
+ function inkRenderOptions(options) {
39
+ return {
40
+ maxFps: 60,
41
+ ...options
42
+ };
43
+ }
44
+
45
+
37
46
 
38
47
 
39
48
 
40
- exports.I18nProvider = I18nProvider; exports.useTranslation = useTranslation;
49
+ exports.I18nProvider = I18nProvider; exports.useTranslation = useTranslation; exports.inkRenderOptions = inkRenderOptions;
41
50
  /**
42
51
  * @license
43
52
  * Copyright 2025 Autohand AI LLC
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkU55TWFJIcjs = require('./chunk-U55TWFJI.cjs');
7
+ var _chunk2VHB43IXcjs = require('./chunk-2VHB43IX.cjs');
8
8
 
9
9
  // src/ui/theme/themes.ts
10
10
  var darkTheme = {
@@ -46,8 +46,8 @@ var darkTheme = {
46
46
  dim: "gray200",
47
47
  text: "gray200",
48
48
  // Backgrounds & Content
49
- userMessageBg: "bgMedium",
50
- userMessageText: "gray200",
49
+ userMessageBg: "gray500",
50
+ userMessageText: "gray100",
51
51
  toolPendingBg: "bgLight",
52
52
  toolSuccessBg: "#1b3d1b",
53
53
  toolErrorBg: "#3d1b1b",
@@ -396,6 +396,203 @@ var githubDarkTheme = {
396
396
  mdListBullet: "blue"
397
397
  }
398
398
  };
399
+ var cappadociaTheme = {
400
+ name: "cappadocia",
401
+ vars: {
402
+ roseTuff: "#c46a58",
403
+ valleyClay: "#8f4638",
404
+ balloonRed: "#e65a4f",
405
+ balloonBlue: "#4aa3c7",
406
+ sunriseGold: "#f4b95f",
407
+ apricotSky: "#f2a56f",
408
+ chalkWhite: "#fff0df",
409
+ night: "#1a1114",
410
+ surface: "#27191a",
411
+ surfaceLight: "#3a2421",
412
+ gray100: "#fff2e5",
413
+ gray200: "#ead1bf",
414
+ gray300: "#caa895",
415
+ gray400: "#a77e70",
416
+ gray500: "#805f58",
417
+ gray600: "#614741",
418
+ gray700: "#442d2a",
419
+ gray800: "#2b1d1b",
420
+ gray900: "#170f0e"
421
+ },
422
+ colors: {
423
+ accent: "sunriseGold",
424
+ border: "gray600",
425
+ borderAccent: "balloonBlue",
426
+ borderMuted: "gray700",
427
+ success: "balloonBlue",
428
+ error: "balloonRed",
429
+ warning: "sunriseGold",
430
+ muted: "gray400",
431
+ dim: "gray100",
432
+ text: "chalkWhite",
433
+ userMessageBg: "surfaceLight",
434
+ userMessageText: "chalkWhite",
435
+ toolPendingBg: "surface",
436
+ toolSuccessBg: "#17313a",
437
+ toolErrorBg: "#3a1818",
438
+ toolTitle: "sunriseGold",
439
+ toolOutput: "gray200",
440
+ diffAdded: "balloonBlue",
441
+ diffRemoved: "balloonRed",
442
+ diffContext: "gray400",
443
+ syntaxComment: "gray500",
444
+ syntaxKeyword: "roseTuff",
445
+ syntaxFunction: "balloonBlue",
446
+ syntaxVariable: "chalkWhite",
447
+ syntaxString: "sunriseGold",
448
+ syntaxNumber: "apricotSky",
449
+ syntaxType: "balloonBlue",
450
+ syntaxOperator: "balloonRed",
451
+ syntaxPunctuation: "gray300",
452
+ mdHeading: "sunriseGold",
453
+ mdLink: "balloonBlue",
454
+ mdLinkUrl: "gray400",
455
+ mdCode: "apricotSky",
456
+ mdCodeBlock: "gray200",
457
+ mdCodeBlockBorder: "gray600",
458
+ mdQuote: "chalkWhite",
459
+ mdQuoteBorder: "roseTuff",
460
+ mdHr: "gray700",
461
+ mdListBullet: "sunriseGold"
462
+ }
463
+ };
464
+ var rioTheme = {
465
+ name: "rio",
466
+ vars: {
467
+ macawBlue: "#1f8edb",
468
+ macawDeepBlue: "#00539f",
469
+ macawCyan: "#39c7d7",
470
+ macawGold: "#ffc857",
471
+ rainforest: "#0f9d58",
472
+ palm: "#45c46f",
473
+ hibiscus: "#f05a70",
474
+ cloudWhite: "#effcff",
475
+ night: "#06121f",
476
+ surface: "#0b1e2d",
477
+ surfaceLight: "#102d42",
478
+ gray100: "#eaf8ff",
479
+ gray200: "#c9e5f1",
480
+ gray300: "#9ac3d6",
481
+ gray400: "#6e99ad",
482
+ gray500: "#4e778c",
483
+ gray600: "#36596c",
484
+ gray700: "#213948",
485
+ gray800: "#142534",
486
+ gray900: "#07131e"
487
+ },
488
+ colors: {
489
+ accent: "macawCyan",
490
+ border: "gray600",
491
+ borderAccent: "macawBlue",
492
+ borderMuted: "gray700",
493
+ success: "palm",
494
+ error: "hibiscus",
495
+ warning: "macawGold",
496
+ muted: "gray400",
497
+ dim: "gray100",
498
+ text: "cloudWhite",
499
+ userMessageBg: "surfaceLight",
500
+ userMessageText: "cloudWhite",
501
+ toolPendingBg: "surface",
502
+ toolSuccessBg: "#123728",
503
+ toolErrorBg: "#3b1a25",
504
+ toolTitle: "macawCyan",
505
+ toolOutput: "gray200",
506
+ diffAdded: "palm",
507
+ diffRemoved: "hibiscus",
508
+ diffContext: "gray400",
509
+ syntaxComment: "gray500",
510
+ syntaxKeyword: "macawGold",
511
+ syntaxFunction: "macawCyan",
512
+ syntaxVariable: "cloudWhite",
513
+ syntaxString: "palm",
514
+ syntaxNumber: "macawGold",
515
+ syntaxType: "macawBlue",
516
+ syntaxOperator: "macawCyan",
517
+ syntaxPunctuation: "gray300",
518
+ mdHeading: "macawCyan",
519
+ mdLink: "macawBlue",
520
+ mdLinkUrl: "gray400",
521
+ mdCode: "macawGold",
522
+ mdCodeBlock: "gray200",
523
+ mdCodeBlockBorder: "gray600",
524
+ mdQuote: "macawGold",
525
+ mdQuoteBorder: "macawDeepBlue",
526
+ mdHr: "gray700",
527
+ mdListBullet: "macawCyan"
528
+ }
529
+ };
530
+ var australiaTheme = {
531
+ name: "australia",
532
+ vars: {
533
+ oceanBlue: "#0057b8",
534
+ unionBlue: "#012169",
535
+ gold: "#ffcd00",
536
+ eucalyptus: "#6f9e60",
537
+ wattle: "#f6c945",
538
+ redOchre: "#c1440e",
539
+ sand: "#f2d7a0",
540
+ sky: "#5bc0eb",
541
+ night: "#07111f",
542
+ surface: "#101c2e",
543
+ surfaceLight: "#182842",
544
+ gray100: "#eef6ff",
545
+ gray200: "#d1e3f4",
546
+ gray300: "#a9bed3",
547
+ gray400: "#7a91a8",
548
+ gray500: "#5b7188",
549
+ gray600: "#405368",
550
+ gray700: "#263648",
551
+ gray800: "#172536",
552
+ gray900: "#08121d"
553
+ },
554
+ colors: {
555
+ accent: "gold",
556
+ border: "gray600",
557
+ borderAccent: "oceanBlue",
558
+ borderMuted: "gray700",
559
+ success: "eucalyptus",
560
+ error: "redOchre",
561
+ warning: "wattle",
562
+ muted: "gray400",
563
+ dim: "gray100",
564
+ text: "gray100",
565
+ userMessageBg: "surfaceLight",
566
+ userMessageText: "gray100",
567
+ toolPendingBg: "surface",
568
+ toolSuccessBg: "#19301f",
569
+ toolErrorBg: "#3d1c13",
570
+ toolTitle: "gold",
571
+ toolOutput: "gray200",
572
+ diffAdded: "eucalyptus",
573
+ diffRemoved: "redOchre",
574
+ diffContext: "gray400",
575
+ syntaxComment: "gray500",
576
+ syntaxKeyword: "gold",
577
+ syntaxFunction: "sky",
578
+ syntaxVariable: "gray100",
579
+ syntaxString: "eucalyptus",
580
+ syntaxNumber: "wattle",
581
+ syntaxType: "sand",
582
+ syntaxOperator: "sky",
583
+ syntaxPunctuation: "gray300",
584
+ mdHeading: "gold",
585
+ mdLink: "sky",
586
+ mdLinkUrl: "gray400",
587
+ mdCode: "wattle",
588
+ mdCodeBlock: "gray200",
589
+ mdCodeBlockBorder: "gray600",
590
+ mdQuote: "sand",
591
+ mdQuoteBorder: "oceanBlue",
592
+ mdHr: "gray700",
593
+ mdListBullet: "gold"
594
+ }
595
+ };
399
596
  var lightTheme = {
400
597
  name: "light",
401
598
  vars: {
@@ -475,8 +672,24 @@ var builtInThemes = {
475
672
  dracula: draculaTheme,
476
673
  sandy: sandyTheme,
477
674
  tui: tuiTheme,
478
- "github-dark": githubDarkTheme
675
+ "github-dark": githubDarkTheme,
676
+ cappadocia: cappadociaTheme,
677
+ rio: rioTheme,
678
+ australia: australiaTheme
679
+ };
680
+ var legacyBuiltInThemeAliases = {
681
+ turkey: "cappadocia",
682
+ brazil: "rio"
479
683
  };
684
+ function getBuiltInTheme(name) {
685
+ return _nullishCoalesce(builtInThemes[name], () => ( builtInThemes[_nullishCoalesce(legacyBuiltInThemeAliases[name], () => ( ""))]));
686
+ }
687
+ function isBuiltInTheme(name) {
688
+ return name in builtInThemes || name in legacyBuiltInThemeAliases;
689
+ }
690
+ function getBuiltInThemeNames() {
691
+ return Object.keys(builtInThemes);
692
+ }
480
693
  function getDefaultThemeName() {
481
694
  return "dark";
482
695
  }
@@ -805,6 +1018,24 @@ function detectGhosttyTheme() {
805
1018
 
806
1019
  // src/ui/theme/loader.ts
807
1020
  var CUSTOM_THEMES_DIR = _path.join.call(void 0, _os.homedir.call(void 0, ), ".autohand", "themes");
1021
+ var configThemes = /* @__PURE__ */ new Map();
1022
+ function configureThemeSources(sources) {
1023
+ configThemes.clear();
1024
+ if (!_optionalChain([sources, 'optionalAccess', _5 => _5.inlineThemes])) {
1025
+ return;
1026
+ }
1027
+ for (const [themeName, partialTheme] of Object.entries(sources.inlineThemes)) {
1028
+ const normalizedName = themeName.trim();
1029
+ if (!normalizedName) {
1030
+ throw new ThemeLoadError("Config theme names must be non-empty", themeName);
1031
+ }
1032
+ const themeDefinition = validateAndMergeTheme(
1033
+ { ...partialTheme, name: partialTheme.name || normalizedName },
1034
+ normalizedName
1035
+ );
1036
+ configThemes.set(normalizedName, themeDefinition);
1037
+ }
1038
+ }
808
1039
  var ThemeLoadError = class extends Error {
809
1040
  constructor(message, themeName, cause) {
810
1041
  super(message);
@@ -812,28 +1043,35 @@ var ThemeLoadError = class extends Error {
812
1043
  this.cause = cause;
813
1044
  this.name = "ThemeLoadError";
814
1045
  }
1046
+
1047
+
815
1048
  };
816
1049
  function loadTheme(themeName) {
817
1050
  const definition = getThemeDefinition(themeName);
818
1051
  const resolvedColors = resolveThemeColors(definition);
819
- return new (0, _chunkU55TWFJIcjs.Theme)(definition.name, resolvedColors, _chunkU55TWFJIcjs.detectColorMode.call(void 0, ));
1052
+ return new (0, _chunk2VHB43IXcjs.Theme)(definition.name, resolvedColors, _chunk2VHB43IXcjs.detectColorMode.call(void 0, ));
820
1053
  }
821
1054
  function initTheme(themeName) {
822
1055
  const name = themeName || getDefaultThemeName();
823
1056
  try {
824
1057
  const theme = loadTheme(name);
825
- _chunkU55TWFJIcjs.setTheme.call(void 0, theme);
1058
+ _chunk2VHB43IXcjs.setTheme.call(void 0, theme);
826
1059
  return theme;
827
1060
  } catch (error) {
828
1061
  console.warn(`Failed to load theme "${name}", falling back to dark theme:`, error instanceof Error ? error.message : error);
829
1062
  const theme = loadTheme("dark");
830
- _chunkU55TWFJIcjs.setTheme.call(void 0, theme);
1063
+ _chunk2VHB43IXcjs.setTheme.call(void 0, theme);
831
1064
  return theme;
832
1065
  }
833
1066
  }
834
1067
  function getThemeDefinition(themeName) {
835
- if (themeName in builtInThemes) {
836
- return builtInThemes[themeName];
1068
+ const builtInTheme = getBuiltInTheme(themeName);
1069
+ if (builtInTheme) {
1070
+ return builtInTheme;
1071
+ }
1072
+ const configTheme = configThemes.get(themeName);
1073
+ if (configTheme) {
1074
+ return configTheme;
837
1075
  }
838
1076
  const customThemePath = _path.join.call(void 0, CUSTOM_THEMES_DIR, `${themeName}.json`);
839
1077
  if (_fs.existsSync.call(void 0, customThemePath)) {
@@ -958,6 +1196,7 @@ var CURATED_GHOSTTY_THEMES = [
958
1196
  ];
959
1197
  function listAvailableThemes() {
960
1198
  const builtIn = Object.keys(builtInThemes).sort();
1199
+ const config = Array.from(configThemes.keys()).filter((name) => !builtIn.includes(name)).sort();
961
1200
  const ghostty = [];
962
1201
  for (const name of CURATED_GHOSTTY_THEMES) {
963
1202
  if (loadGhosttyTheme(name)) {
@@ -972,7 +1211,7 @@ function listAvailableThemes() {
972
1211
  for (const file of files) {
973
1212
  if (file.endsWith(".json")) {
974
1213
  const name = file.slice(0, -5);
975
- if (!builtIn.includes(name)) {
1214
+ if (!builtIn.includes(name) && !config.includes(name)) {
976
1215
  custom.push(name);
977
1216
  }
978
1217
  }
@@ -981,10 +1220,11 @@ function listAvailableThemes() {
981
1220
  }
982
1221
  }
983
1222
  custom.sort();
984
- return [...builtIn, ...ghostty, ...custom];
1223
+ return [...builtIn, ...config, ...ghostty, ...custom];
985
1224
  }
986
1225
  function themeExists(themeName) {
987
- if (themeName in builtInThemes) return true;
1226
+ if (isBuiltInTheme(themeName)) return true;
1227
+ if (configThemes.has(themeName)) return true;
988
1228
  const customPath = _path.join.call(void 0, CUSTOM_THEMES_DIR, `${themeName}.json`);
989
1229
  if (_fs.existsSync.call(void 0, customPath)) return true;
990
1230
  return loadGhosttyTheme(themeName) !== null;
@@ -1000,7 +1240,7 @@ function detectTerminalBackground() {
1000
1240
  }
1001
1241
  }
1002
1242
  }
1003
- if (_optionalChain([process, 'access', _5 => _5.env, 'access', _6 => _6.TERMINAL_EMULATOR, 'optionalAccess', _7 => _7.includes, 'call', _8 => _8("JetBrains")])) {
1243
+ if (_optionalChain([process, 'access', _6 => _6.env, 'access', _7 => _7.TERMINAL_EMULATOR, 'optionalAccess', _8 => _8.includes, 'call', _9 => _9("JetBrains")])) {
1004
1244
  return "light";
1005
1245
  }
1006
1246
  return "dark";
@@ -1042,16 +1282,21 @@ var defaultContextValue = {
1042
1282
  };
1043
1283
  var ThemeContext = _react.createContext.call(void 0, defaultContextValue);
1044
1284
  var ThemeProvider = ({ theme: providedTheme, themeName, children }) => {
1285
+ const globalTheme = _react.useSyncExternalStore.call(void 0,
1286
+ _chunk2VHB43IXcjs.subscribeThemeChanges,
1287
+ _chunk2VHB43IXcjs.getThemeSnapshot,
1288
+ _chunk2VHB43IXcjs.getThemeSnapshot
1289
+ );
1045
1290
  const theme = _react.useMemo.call(void 0, () => {
1046
1291
  if (providedTheme) return providedTheme;
1047
- if (_chunkU55TWFJIcjs.isThemeInitialized.call(void 0, )) {
1048
- return _chunkU55TWFJIcjs.getTheme.call(void 0, );
1292
+ if (globalTheme) {
1293
+ return globalTheme;
1049
1294
  }
1050
1295
  if (themeName) {
1051
- return initTheme(themeName);
1296
+ return loadTheme(themeName);
1052
1297
  }
1053
- return initTheme();
1054
- }, [providedTheme, themeName]);
1298
+ return loadTheme("dark");
1299
+ }, [providedTheme, themeName, globalTheme]);
1055
1300
  const value = _react.useMemo.call(void 0,
1056
1301
  () => ({
1057
1302
  theme,
@@ -1077,7 +1322,9 @@ function useTheme() {
1077
1322
 
1078
1323
 
1079
1324
 
1080
- exports.builtInThemes = builtInThemes; exports.CUSTOM_THEMES_DIR = CUSTOM_THEMES_DIR; exports.initTheme = initTheme; exports.listAvailableThemes = listAvailableThemes; exports.themeExists = themeExists; exports.autoInitTheme = autoInitTheme; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme;
1325
+
1326
+
1327
+ exports.builtInThemes = builtInThemes; exports.getBuiltInThemeNames = getBuiltInThemeNames; exports.CUSTOM_THEMES_DIR = CUSTOM_THEMES_DIR; exports.configureThemeSources = configureThemeSources; exports.initTheme = initTheme; exports.listAvailableThemes = listAvailableThemes; exports.themeExists = themeExists; exports.autoInitTheme = autoInitTheme; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme;
1081
1328
  /**
1082
1329
  * @license
1083
1330
  * Copyright 2025 Autohand AI LLC
@@ -1,12 +1,16 @@
1
+ import {
2
+ buildSessionChatLog,
3
+ formatChatLogPreview
4
+ } from "./chunk-RS2E32YB.js";
1
5
  import {
2
6
  showModal
3
- } from "./chunk-YZXUDM5X.js";
7
+ } from "./chunk-NZ3ZWLUW.js";
4
8
  import {
5
9
  AUTOHAND_PATHS
6
- } from "./chunk-EGFT4PGW.js";
10
+ } from "./chunk-SHRLFX6F.js";
7
11
  import {
8
12
  t
9
- } from "./chunk-APIXPPMT.js";
13
+ } from "./chunk-LEZEWKPA.js";
10
14
 
11
15
  // src/commands/resume.ts
12
16
  import chalk from "chalk";
@@ -66,7 +70,7 @@ function getTimeAgo(date) {
66
70
  async function resume(ctx) {
67
71
  const sessionId = ctx.args[0];
68
72
  if (sessionId) {
69
- return resumeSession(ctx.sessionManager, sessionId);
73
+ return resumeSession(ctx.sessionManager, sessionId, ctx.restoreSession);
70
74
  }
71
75
  try {
72
76
  const projectFilter = ctx.workspaceRoot ? { project: ctx.workspaceRoot } : void 0;
@@ -105,10 +109,17 @@ ${t("commands.sessions.selectPrompt")}
105
109
  value: choice.name,
106
110
  description: choice.hint
107
111
  }));
108
- const result = await showModal({
109
- title: "Choose a session",
110
- options
111
- });
112
+ await ctx.onBeforeModal?.();
113
+ const result = await (async () => {
114
+ try {
115
+ return await showModal({
116
+ title: "Choose a session",
117
+ options
118
+ });
119
+ } finally {
120
+ await ctx.onAfterModal?.();
121
+ }
122
+ })();
112
123
  if (!result) {
113
124
  console.log(chalk.gray("\nResume cancelled."));
114
125
  return null;
@@ -117,13 +128,13 @@ ${t("commands.sessions.selectPrompt")}
117
128
  console.log(chalk.gray("\nUse /sessions to see all sessions, then /resume <id>"));
118
129
  return null;
119
130
  }
120
- return resumeSession(ctx.sessionManager, result.value);
131
+ return resumeSession(ctx.sessionManager, result.value, ctx.restoreSession);
121
132
  } catch (error) {
122
133
  console.error(chalk.red(t("commands.resume.failed", { error: error.message })));
123
134
  return null;
124
135
  }
125
136
  }
126
- async function resumeSession(sessionManager, sessionId) {
137
+ async function resumeSession(sessionManager, sessionId, restoreSession) {
127
138
  try {
128
139
  const session = await sessionManager.loadSession(sessionId);
129
140
  const messages = session.getMessages();
@@ -138,17 +149,15 @@ ${t("commands.resume.resuming", { id: title })}`));
138
149
  if (messages.length > 0) {
139
150
  console.log(chalk.cyan("Recent conversation:"));
140
151
  console.log(chalk.gray("\u2500".repeat(60)));
141
- const recentMessages = messages.slice(-5);
152
+ const recentMessages = buildSessionChatLog(messages).slice(-5);
142
153
  for (const msg of recentMessages) {
143
- const role = msg.role === "user" ? chalk.green("You") : msg.role === "assistant" ? chalk.blue("Assistant") : chalk.gray(msg.role);
144
- if (msg.role === "tool") continue;
145
- const preview = msg.content.replace(/\n/g, " ").replace(/\s+/g, " ").slice(0, 100);
146
- const truncated = msg.content.length > 100 ? "..." : "";
147
- console.log(`${role}: ${chalk.white(preview)}${truncated}`);
154
+ const role = msg.role === "user" ? chalk.green("You") : chalk.blue("Assistant");
155
+ console.log(`${role}: ${chalk.white(formatChatLogPreview(msg.content))}`);
148
156
  }
149
157
  console.log(chalk.gray("\u2500".repeat(60)));
150
158
  console.log();
151
159
  }
160
+ await restoreSession?.(sessionId);
152
161
  console.log(chalk.green("Session resumed. Continue typing to chat.\n"));
153
162
  return null;
154
163
  } catch (error) {
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Autohand AI LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */