autohand-cli 0.8.2 → 0.9.0

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 (551) hide show
  1. package/README.md +173 -74
  2. package/dist/AgentRegistry-EGBDIUAK.cjs +10 -0
  3. package/dist/{AgentRegistry-7LDL5HJH.js → AgentRegistry-XPWSVO3Q.js} +3 -3
  4. package/dist/{AutomodeManager-MWLKGPZK.js → AutomodeManager-APLLPEYJ.js} +32 -18
  5. package/dist/{AutomodeManager-NYIZNODK.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-2OIUV227.cjs +8 -0
  7. package/dist/CommunitySkillsCache-ZEQWP6YM.js +8 -0
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-6JQ5JEDZ.js → GitHubRegistryFetcher-J2BWPXJF.js} +2 -2
  10. package/dist/HookManager-CWLTFKWO.js +7 -0
  11. package/dist/HookManager-TMAJQU4S.cjs +7 -0
  12. package/dist/{ImportWizard-35YBJ4AM.cjs → ImportWizard-MQXEED2U.cjs} +41 -17
  13. package/dist/{ImportWizard-XH7CINCH.js → ImportWizard-QBKQEXDW.js} +35 -11
  14. package/dist/LearnAdvisor-46FG2XIP.js +9 -0
  15. package/dist/LearnAdvisor-XBRDNAGH.cjs +9 -0
  16. package/dist/McpClientManager-BNSKLHIN.cjs +8 -0
  17. package/dist/{McpClientManager-7RM6YT35.js → McpClientManager-SL35BR24.js} +2 -2
  18. package/dist/MemoryManager-34L4YOKA.cjs +8 -0
  19. package/dist/MemoryManager-WJMLPWGU.js +8 -0
  20. package/dist/NVIDIAProvider-2HR737UE.js +14 -0
  21. package/dist/NVIDIAProvider-MVTL62PR.cjs +14 -0
  22. package/dist/PermissionManager-5OOJ7FAT.cjs +11 -0
  23. package/dist/{PermissionManager-ATUV34LQ.js → PermissionManager-KMYILJ4Z.js} +4 -4
  24. package/dist/{ProjectProfiler-ZDWR2ODG.cjs → ProjectProfiler-CDAE7ECW.cjs} +2 -1
  25. package/dist/{ProjectProfiler-UMJJSOCE.js → ProjectProfiler-NZTJDRHD.js} +2 -1
  26. package/dist/ProviderFactory-C3YPXTDD.cjs +11 -0
  27. package/dist/ProviderFactory-HFPRVQ25.js +11 -0
  28. package/dist/SessionManager-PNBTJJTQ.js +10 -0
  29. package/dist/SessionManager-WAPTFMDO.cjs +10 -0
  30. package/dist/SkillsRegistry-4RRD5GMX.js +9 -0
  31. package/dist/SkillsRegistry-7AJP74GJ.cjs +9 -0
  32. package/dist/SubAgent-FDIH3DXB.js +11 -0
  33. package/dist/SubAgent-HVL2ICVZ.cjs +11 -0
  34. package/dist/{SyncApiClient-LVIO4C2S.js → SyncApiClient-LRPFNCKJ.js} +2 -2
  35. package/dist/SyncApiClient-VMBOLQ6H.cjs +11 -0
  36. package/dist/about-BW3PDZUU.js +14 -0
  37. package/dist/about-FCAX37YC.cjs +14 -0
  38. package/dist/acp-EOETGAHC.cjs +1517 -0
  39. package/dist/acp-VHEL7BOW.js +1517 -0
  40. package/dist/actionExecutor-33I47NZS.js +24 -0
  41. package/dist/actionExecutor-4YBMR3YH.cjs +24 -0
  42. package/dist/add-dir-7SS6KSH5.cjs +11 -0
  43. package/dist/add-dir-VFX7QT4E.js +11 -0
  44. package/dist/agent-DMRUFU4M.cjs +116 -0
  45. package/dist/agent-WCJEYQJT.js +116 -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-CHROO3VU.cjs +17 -0
  53. package/dist/agents-UVDUL65K.js +17 -0
  54. package/dist/agents-new-AUBWSOXP.js +17 -0
  55. package/dist/agents-new-Y562WC47.cjs +17 -0
  56. package/dist/{autoSkill-6TGBTEQD.js → autoSkill-EFMK6WU6.js} +3 -3
  57. package/dist/autoSkill-YOLLFTP2.cjs +20 -0
  58. package/dist/automode-BMYSRM34.js +10 -0
  59. package/dist/automode-DBLKTTKD.cjs +10 -0
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/{cc-7LEIJ3KF.js → cc-AYEP2CA3.js} +1 -1
  63. package/dist/{cc-Q5MM4AWC.cjs → cc-S2QLQFBR.cjs} +1 -1
  64. package/dist/chrome-ATC4OO5I.cjs +20 -0
  65. package/dist/chrome-NHJ44WUN.js +50 -0
  66. package/dist/chrome-O62WXV7F.js +20 -0
  67. package/dist/chrome-XHJLCO4M.cjs +50 -0
  68. package/dist/chromeSkill-53TH55PM.js +105 -0
  69. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  70. package/dist/{chunk-HOAHWIQ5.cjs → chunk-2CGE7ZV3.cjs} +26 -26
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/chunk-2HOLOHVK.js +2219 -0
  73. package/dist/{chunk-3PDTTAKJ.js → chunk-2QL6MNXG.js} +15 -8
  74. package/dist/{chunk-PGRH5Q77.cjs → chunk-2VHB43IX.cjs} +35 -6
  75. package/dist/{chunk-VG34MG2U.js → chunk-37M5UM6I.js} +9 -6
  76. package/dist/{chunk-6HYLHBQG.cjs → chunk-3DDL2E55.cjs} +20 -16
  77. package/dist/chunk-3EDDDZS2.cjs +5 -0
  78. package/dist/{chunk-6OYHF6MF.js → chunk-3GUEUCZK.js} +28 -4
  79. package/dist/{chunk-N254NRHT.cjs → chunk-3HT76LNN.cjs} +9 -2
  80. package/dist/{chunk-DVUHHH3B.cjs → chunk-3KLSNNRW.cjs} +4 -4
  81. package/dist/chunk-3LJJG5YY.cjs +387 -0
  82. package/dist/chunk-3OF56EMA.cjs +197 -0
  83. package/dist/chunk-3PXKRVCW.js +108 -0
  84. package/dist/{chunk-IKGWDOGU.cjs → chunk-3S563FNF.cjs} +160 -79
  85. package/dist/chunk-3UT7R3XV.js +663 -0
  86. package/dist/chunk-4256YRCO.cjs +80 -0
  87. package/dist/chunk-46C73ZKK.cjs +663 -0
  88. package/dist/chunk-46MTALKD.js +44 -0
  89. package/dist/{chunk-AEJH23FO.cjs → chunk-47PHDKNW.cjs} +6 -6
  90. package/dist/chunk-4LMUDS2K.js +124 -0
  91. package/dist/{chunk-HLHTG5ZU.cjs → chunk-5CMYEM3R.cjs} +14 -12
  92. package/dist/{chunk-MBBY4ZIK.js → chunk-5F6ZKSHO.js} +4 -1
  93. package/dist/chunk-5JFTY3VU.js +74 -0
  94. package/dist/chunk-5JTTM5SC.js +59 -0
  95. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  96. package/dist/{chunk-GJH7XMSK.js → chunk-5VHP6HDQ.js} +8 -6
  97. package/dist/{chunk-6ZCULLCA.js → chunk-62RTC3XX.js} +1 -1
  98. package/dist/{chunk-MSED7RH2.cjs → chunk-6GUODJKM.cjs} +112 -41
  99. package/dist/{chunk-47CKWKEX.cjs → chunk-6HH236FV.cjs} +9 -4
  100. package/dist/{chunk-WHE2SWHU.js → chunk-6NVAK6CK.js} +2 -2
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/{chunk-3PCTTUNW.cjs → chunk-6XVVIY54.cjs} +55 -25
  103. package/dist/{chunk-3L53OA4E.cjs → chunk-75EDROHL.cjs} +10 -10
  104. package/dist/{chunk-G4CAKI3V.js → chunk-7HPWMALN.js} +7 -2
  105. package/dist/chunk-7JLT2VNW.cjs +18963 -0
  106. package/dist/chunk-7LWQCE4Y.cjs +987 -0
  107. package/dist/{chunk-OLSBBZW6.cjs → chunk-7MU7LWF3.cjs} +5 -5
  108. package/dist/{chunk-HLQV64Y5.js → chunk-7RFJB75Y.js} +140 -59
  109. package/dist/{chunk-X2MSVKDV.js → chunk-A7HHCIDQ.js} +2 -2
  110. package/dist/{chunk-SKYG33B2.cjs → chunk-AC7DZ6SK.cjs} +3 -3
  111. package/dist/{chunk-XX2ZO7DS.js → chunk-ACDQGA4Z.js} +90 -16
  112. package/dist/{chunk-CZXGCVTR.cjs → chunk-AOKCI722.cjs} +2 -2
  113. package/dist/chunk-ARBEHFCG.js +715 -0
  114. package/dist/{chunk-OOKY3HPZ.js → chunk-AT7OWLY5.js} +50 -9
  115. package/dist/chunk-AU6JAGZJ.cjs +231 -0
  116. package/dist/chunk-AUFNACED.js +18963 -0
  117. package/dist/{chunk-CDBPBM2K.cjs → chunk-AUYSIEVV.cjs} +3 -3
  118. package/dist/chunk-B4HSNOIH.cjs +354 -0
  119. package/dist/{chunk-EGMZDTSL.js → chunk-B5CGDNMR.js} +10 -2
  120. package/dist/{chunk-34M3HWLR.js → chunk-BFQDQRDE.js} +2 -2
  121. package/dist/{chunk-2AA5MFES.js → chunk-BL2UC7HC.js} +8 -5
  122. package/dist/{chunk-LNMYK2F5.cjs → chunk-BQ22N3TX.cjs} +56 -41
  123. package/dist/chunk-BQU3HAE7.js +21 -0
  124. package/dist/chunk-BWF4VDYE.js +3897 -0
  125. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  126. package/dist/{chunk-APIXPPMT.js → chunk-CBFH2J3O.js} +855 -33
  127. package/dist/chunk-CCVMREXI.js +420 -0
  128. package/dist/chunk-CFAWTLSC.js +13 -0
  129. package/dist/{chunk-G27PQQFD.js → chunk-CFFE4VA3.js} +1 -1
  130. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CH2J4PVE.cjs} +212 -70
  131. package/dist/{chunk-7BTSG4ME.cjs → chunk-CHI52KFR.cjs} +855 -33
  132. package/dist/{chunk-DJDE4DTT.cjs → chunk-CWINVFRI.cjs} +25 -19
  133. package/dist/{chunk-HXGBSJL5.cjs → chunk-D2OSPLYC.cjs} +2 -2
  134. package/dist/{chunk-GBHDROGL.js → chunk-D6GZBSOX.js} +16 -4
  135. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  136. package/dist/chunk-DEQVRSV5.cjs +866 -0
  137. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  138. package/dist/{chunk-WM5PAOTQ.cjs → chunk-DIZTWFVR.cjs} +1649 -484
  139. package/dist/{chunk-YZXUDM5X.js → chunk-DLP436GI.js} +204 -62
  140. package/dist/{chunk-OHUZKDGX.js → chunk-DMRXF5DU.js} +3 -3
  141. package/dist/{chunk-U46VYPLR.cjs → chunk-DPSIGY6L.cjs} +9 -9
  142. package/dist/{chunk-DN573ME7.cjs → chunk-DRWDEHE5.cjs} +4 -4
  143. package/dist/{chunk-SEKD5FH3.cjs → chunk-E26KKI46.cjs} +5 -2
  144. package/dist/{chunk-J4Q7XR3G.js → chunk-E46DJH5S.js} +3 -3
  145. package/dist/{chunk-Q7XSCYND.cjs → chunk-E6GFD7VR.cjs} +49 -26
  146. package/dist/chunk-ES2HJQ4N.js +37 -0
  147. package/dist/chunk-EZJHLOWP.js +80 -0
  148. package/dist/chunk-FFBDRUO5.cjs +59 -0
  149. package/dist/{chunk-AYSFIUFW.js → chunk-FGT6KK6T.js} +38 -15
  150. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  151. package/dist/{chunk-DSPQEHDT.js → chunk-FQAVGSPW.js} +2 -2
  152. package/dist/chunk-FQVG6ZHF.js +197 -0
  153. package/dist/chunk-GBMDFWJX.cjs +152 -0
  154. package/dist/{chunk-DRE2RXBZ.js → chunk-GGLKUENP.js} +1605 -440
  155. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  156. package/dist/{chunk-MYISNQH4.js → chunk-GWO66KBI.js} +1 -1
  157. package/dist/chunk-GWY26SUD.cjs +63 -0
  158. package/dist/{chunk-YGN4CQIP.js → chunk-GZ6DV2UG.js} +1 -1
  159. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  160. package/dist/chunk-HDK2EHVH.cjs +570 -0
  161. package/dist/chunk-HJIXWGQZ.js +139 -0
  162. package/dist/{chunk-6RF7UKUS.js → chunk-HKYZSUQ5.js} +48 -47
  163. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  164. package/dist/{chunk-HTLINWX6.cjs → chunk-HQWQZML5.cjs} +16 -13
  165. package/dist/{chunk-DVZOENQ7.cjs → chunk-HS4USDND.cjs} +9 -4
  166. package/dist/chunk-HSCUPEA4.cjs +3897 -0
  167. package/dist/{chunk-JCLYQ2JC.js → chunk-HXJEGMGB.js} +12 -6
  168. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  169. package/dist/{chunk-SCXX4LW5.js → chunk-I24CWKKK.js} +15 -8
  170. package/dist/chunk-IAGCRVJ3.js +355 -0
  171. package/dist/chunk-IEXKKKOF.cjs +92 -0
  172. package/dist/{chunk-5IXII4HX.cjs → chunk-IGMPWJ2I.cjs} +19 -12
  173. package/dist/chunk-IKUMVBCW.cjs +33 -0
  174. package/dist/{chunk-XTB6VJVQ.cjs → chunk-J2K57QM7.cjs} +6 -6
  175. package/dist/{chunk-O4IF4NJT.cjs → chunk-J5ADZN6V.cjs} +57 -56
  176. package/dist/chunk-J5HE6CUM.cjs +124 -0
  177. package/dist/{chunk-JS7IPR7P.js → chunk-JAQO6XDB.js} +31 -2
  178. package/dist/chunk-JIMSII7R.js +987 -0
  179. package/dist/chunk-JJ4KA7HK.cjs +2219 -0
  180. package/dist/chunk-JMN3GZU6.js +570 -0
  181. package/dist/{chunk-X5VSP65C.cjs → chunk-JP3YHTQ2.cjs} +4 -4
  182. package/dist/{chunk-SKV2F3NM.js → chunk-JYKPWK5O.js} +1 -1
  183. package/dist/{chunk-NNPAM4HC.cjs → chunk-KNTUI4TZ.cjs} +12 -6
  184. package/dist/{chunk-HIVRCQS2.js → chunk-L4F7SUYL.js} +56 -25
  185. package/dist/{chunk-C5IJIM2V.cjs → chunk-LDJQ5QHG.cjs} +68 -37
  186. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  187. package/dist/chunk-LJD7KR3L.cjs +44 -0
  188. package/dist/chunk-LN7D3EJZ.js +387 -0
  189. package/dist/{chunk-643VRA5S.cjs → chunk-LQBONA55.cjs} +32 -8
  190. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  191. package/dist/chunk-M4KNC5BQ.js +78 -0
  192. package/dist/chunk-MO4KP6XS.cjs +229 -0
  193. package/dist/{chunk-BVKXEQVG.cjs → chunk-MOJ7ADW4.cjs} +22 -10
  194. package/dist/chunk-MPULXVC4.cjs +715 -0
  195. package/dist/{chunk-X5YJ34FZ.cjs → chunk-MQESBFBZ.cjs} +46 -23
  196. package/dist/chunk-MUNUUFU7.cjs +21 -0
  197. package/dist/{chunk-X3WS5LDG.js → chunk-MX75JYIY.js} +7 -5
  198. package/dist/chunk-MXVIDIC6.cjs +139 -0
  199. package/dist/{chunk-3K2ESU53.cjs → chunk-N6O3XUZ2.cjs} +2 -2
  200. package/dist/{chunk-IVM5F2AE.js → chunk-NBGOIFKP.js} +265 -18
  201. package/dist/{chunk-SLQAYV3W.js → chunk-NMQ47RCG.js} +8 -2
  202. package/dist/{chunk-JYTDYJVW.js → chunk-O64I2GYI.js} +1 -1
  203. package/dist/{chunk-IFFXSTOM.cjs → chunk-O6TQP7U7.cjs} +3 -3
  204. package/dist/{chunk-AYS2ASM7.js → chunk-OHWMWKJQ.js} +1 -1
  205. package/dist/{chunk-N23UAW4I.js → chunk-OM24WXEE.js} +7 -2
  206. package/dist/{chunk-MAKMSQMQ.cjs → chunk-OPNI6O7F.cjs} +8 -6
  207. package/dist/chunk-OR67YXQK.cjs +13 -0
  208. package/dist/{chunk-QOXPOR5D.js → chunk-OV3PVUYN.js} +115 -44
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-A4IJHHV7.cjs → chunk-PDHT7LQS.cjs} +52 -11
  212. package/dist/{chunk-LA7H35XM.cjs → chunk-PHJO5YAL.cjs} +9 -9
  213. package/dist/{chunk-KPELYZ6L.js → chunk-PQLKJCIE.js} +2 -2
  214. package/dist/chunk-PUD76XQT.cjs +78 -0
  215. package/dist/chunk-Q2IL4DDI.cjs +355 -0
  216. package/dist/{chunk-WPVWQSL7.cjs → chunk-Q6AC3PHY.cjs} +16 -13
  217. package/dist/{chunk-XRZEUWKF.js → chunk-QCHIDZBA.js} +1 -1
  218. package/dist/{chunk-IQ5RXU6O.js → chunk-QEGOB6QV.js} +1 -1
  219. package/dist/{chunk-JSBRDJBE.js → chunk-QGM4M3NI.js} +8 -1
  220. package/dist/chunk-QKP772OZ.js +4291 -0
  221. package/dist/chunk-QQ7PANOP.js +59 -0
  222. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  223. package/dist/chunk-RAKO7UN7.js +114 -0
  224. package/dist/chunk-RBHANOYY.js +33 -0
  225. package/dist/chunk-RBZ7AFX7.cjs +29 -0
  226. package/dist/{chunk-TXSDBGKX.cjs → chunk-REMGR23V.cjs} +46 -49
  227. package/dist/chunk-ROLA6EFO.cjs +85 -0
  228. package/dist/{chunk-TBEGGJNC.cjs → chunk-SOLBYSLY.cjs} +33 -16
  229. package/dist/{chunk-FKSDEWDH.js → chunk-SWCQM52V.js} +68 -25
  230. package/dist/{chunk-H5SWOLG6.js → chunk-TBOLJDUG.js} +39 -24
  231. package/dist/chunk-TH26BQJG.js +101 -0
  232. package/dist/{chunk-245KJE5Y.cjs → chunk-TJNBASFD.cjs} +14 -6
  233. package/dist/chunk-TKKN34TV.js +229 -0
  234. package/dist/chunk-TQ33WBY5.cjs +74 -0
  235. package/dist/{chunk-EGFT4PGW.js → chunk-TWQDAUZU.js} +5 -2
  236. package/dist/{chunk-OGV4WJ5L.cjs → chunk-TXPSTCG7.cjs} +74 -59
  237. package/dist/{chunk-CAMZTXV6.js → chunk-U4C3HW6P.js} +67 -52
  238. package/dist/{chunk-5P2NXKP3.js → chunk-UEIXJG45.js} +104 -76
  239. package/dist/{chunk-22D2CNTP.cjs → chunk-UGFVM77J.cjs} +5 -2
  240. package/dist/chunk-UOQECODR.js +34 -0
  241. package/dist/chunk-UR27UDTB.js +354 -0
  242. package/dist/chunk-UWFG2R2I.cjs +420 -0
  243. package/dist/{chunk-Y72HH2TF.cjs → chunk-UXLW45ZE.cjs} +102 -28
  244. package/dist/{chunk-FPHU2ES6.cjs → chunk-VBOFPU5M.cjs} +6 -0
  245. package/dist/{chunk-JX3DFKBI.js → chunk-VDWJMWDF.js} +54 -24
  246. package/dist/{chunk-LENHP55G.cjs → chunk-VGEV44V2.cjs} +1076 -158
  247. package/dist/{chunk-33RSHBDH.js → chunk-VKBIE6I6.js} +38 -7
  248. package/dist/{chunk-CWMZKFTT.js → chunk-VRMZO6TB.js} +31 -8
  249. package/dist/chunk-VUGOOGHB.js +400 -0
  250. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  251. package/dist/chunk-WGLBC5AY.cjs +59 -0
  252. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  253. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  254. package/dist/chunk-WRTXCQ3V.cjs +4291 -0
  255. package/dist/chunk-WTB7AFL6.cjs +101 -0
  256. package/dist/{chunk-NDMIPTV4.js → chunk-WZV6UVPY.js} +8 -3
  257. package/dist/chunk-XF2WIKHR.cjs +34 -0
  258. package/dist/{chunk-L3WAH3EM.cjs → chunk-XGMI6IYB.cjs} +46 -15
  259. package/dist/{chunk-FW774QXH.js → chunk-XIVFAD2L.js} +1048 -130
  260. package/dist/chunk-XV2HXRHX.js +85 -0
  261. package/dist/{chunk-72FKPBT5.js → chunk-Y3M2DABP.js} +16 -12
  262. package/dist/{chunk-QNGEW5TC.js → chunk-YV63VW4K.js} +1 -1
  263. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  264. package/dist/{chunk-RD5XAJR2.cjs → chunk-YWTIXHU6.cjs} +266 -19
  265. package/dist/chunk-YZWE7XSM.js +5 -0
  266. package/dist/{chunk-I5IW3T2Y.js → chunk-Z3XSSF7B.js} +32 -15
  267. package/dist/{chunk-6UJMCWRY.js → chunk-Z4LIPMPM.js} +6 -0
  268. package/dist/chunk-ZASDSY7P.cjs +114 -0
  269. package/dist/{chunk-R33VKSH5.cjs → chunk-ZHJ7JGME.cjs} +11 -11
  270. package/dist/chunk-ZPD2AO3U.js +866 -0
  271. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  272. package/dist/chunk-ZR46OJNZ.js +152 -0
  273. package/dist/{chunk-G3V4SFET.cjs → chunk-ZZ63NW7A.cjs} +78 -35
  274. package/dist/clear-33TWQ2ES.cjs +12 -0
  275. package/dist/clear-OFLFQ3MR.js +12 -0
  276. package/dist/{communityInstaller-6KCFN7YZ.js → communityInstaller-COB2KTOW.js} +9 -6
  277. package/dist/communityInstaller-TWMGPSYM.cjs +22 -0
  278. package/dist/completion-IIZMHXYP.cjs +17 -0
  279. package/dist/completion-PT4VM2H2.js +17 -0
  280. package/dist/config-KL6WU7R2.cjs +20 -0
  281. package/dist/{config-ZN66VXPS.js → config-R4O7GBTY.js} +7 -5
  282. package/dist/{constants-UFM5B232.js → constants-HVCHVQAF.js} +2 -2
  283. package/dist/constants-RLMJ5D5P.cjs +21 -0
  284. package/dist/{defaultHooks-RCXPHF4M.cjs → defaultHooks-2V2CQL63.cjs} +26 -11
  285. package/dist/{defaultHooks-RDRMER3Z.js → defaultHooks-TMHDU3FS.js} +26 -11
  286. package/dist/export-3PK3VFCE.js +15 -0
  287. package/dist/export-WLGNWEMJ.cjs +15 -0
  288. package/dist/{extractSessionMemories-V7K42ZHW.js → extractSessionMemories-A2JX5WJ2.js} +1 -1
  289. package/dist/{extractSessionMemories-SDW2MVBQ.cjs → extractSessionMemories-XL3MS37F.cjs} +1 -1
  290. package/dist/feedback-G635NCLJ.js +18 -0
  291. package/dist/feedback-LLMK3TZH.cjs +18 -0
  292. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  293. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  294. package/dist/filesystem-L6DQKGWK.js +11 -0
  295. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  296. package/dist/{formatters-6K7QVWQL.cjs → formatters-53XTCNGQ.cjs} +1 -1
  297. package/dist/{formatters-DQHO5I36.js → formatters-T6KV4BPP.js} +1 -1
  298. package/dist/help-BAXLP2M2.cjs +12 -0
  299. package/dist/{help-2BLR7L43.js → help-X3OAZ3CY.js} +3 -3
  300. package/dist/history-6HOJSEMT.cjs +14 -0
  301. package/dist/{history-5FZ3M2AK.js → history-YKFPHBJN.js} +3 -3
  302. package/dist/hooks-7TA4PIIB.js +18 -0
  303. package/dist/hooks-XVFU67T2.cjs +18 -0
  304. package/dist/{i18n-K7QOWIBH.js → i18n-2KBUU7XL.js} +2 -2
  305. package/dist/i18n-MUJMKTFM.cjs +33 -0
  306. package/dist/ide-CCQ33PGC.cjs +15 -0
  307. package/dist/ide-VLVFBZ5F.js +15 -0
  308. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  309. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  310. package/dist/{import-UXM3VK7B.js → import-4CHYLS4K.js} +4 -4
  311. package/dist/{import-QEME3E4T.cjs → import-I7T4ZHYL.cjs} +4 -4
  312. package/dist/import-J46F54JY.cjs +10 -0
  313. package/dist/import-JWPYKXCZ.js +10 -0
  314. package/dist/index.cjs +747 -22356
  315. package/dist/index.d.cts +93 -0
  316. package/dist/index.d.ts +93 -0
  317. package/dist/index.js +786 -22395
  318. package/dist/init-262MWZV4.js +10 -0
  319. package/dist/init-EE5Y7RBL.cjs +10 -0
  320. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  321. package/dist/inkMode-WBNFOSAT.js +7 -0
  322. package/dist/inputPrompt-IIFKCX5Q.cjs +90 -0
  323. package/dist/inputPrompt-YGBHDUEP.js +90 -0
  324. package/dist/language-CVLPB7OV.js +21 -0
  325. package/dist/language-ZTWFHUSV.cjs +21 -0
  326. package/dist/learn-PON7I5QS.js +23 -0
  327. package/dist/learn-XLRSVNA3.cjs +23 -0
  328. package/dist/{lint-D5UOJWIK.cjs → lint-4NDGCSCL.cjs} +1 -1
  329. package/dist/{lint-NJPZWVN2.js → lint-FZ7ZJUB3.js} +1 -1
  330. package/dist/login-223QTGBG.cjs +26 -0
  331. package/dist/login-6IKTBUBY.js +26 -0
  332. package/dist/logout-RN2AG6SI.js +23 -0
  333. package/dist/logout-U3M4FFX7.cjs +23 -0
  334. package/dist/mcp-5O6PUL4G.js +20 -0
  335. package/dist/mcp-NUQ76QQB.cjs +20 -0
  336. package/dist/{mcp-install-VESN42PI.js → mcp-install-6XWXLFVY.js} +18 -11
  337. package/dist/{mcp-install-G27HSS3Z.cjs → mcp-install-P6DHES7V.cjs} +22 -15
  338. package/dist/memory-CYMDQ2YC.cjs +10 -0
  339. package/dist/memory-Q54CESNM.js +10 -0
  340. package/dist/{message-ZJ5AYAMT.cjs → message-4OKO775J.cjs} +1 -1
  341. package/dist/{message-JUBOK2VU.js → message-X3LOAAM7.js} +1 -1
  342. package/dist/model-6AJ77PJG.js +10 -0
  343. package/dist/model-IDRCKDML.cjs +10 -0
  344. package/dist/new-7LEWOUF2.cjs +12 -0
  345. package/dist/new-ZXHEWC2S.js +12 -0
  346. package/dist/onboarding-FXX7YHSJ.cjs +35 -0
  347. package/dist/onboarding-JYNMK6NI.js +35 -0
  348. package/dist/{patch-MOD7QC3D.cjs → patch-DJ2GPFST.cjs} +1 -1
  349. package/dist/{patch-5F6VBIT3.js → patch-NIJWIRHS.js} +1 -1
  350. package/dist/permissions-YBNSANIA.cjs +10 -0
  351. package/dist/permissions-YHJMVA6L.js +10 -0
  352. package/dist/plan-XEJMOT55.cjs +13 -0
  353. package/dist/plan-YYUAXPTL.js +13 -0
  354. package/dist/pr-review-CW6J7P62.cjs +9 -0
  355. package/dist/pr-review-YZSBQVT2.js +9 -0
  356. package/dist/quit-B43SJ6E4.cjs +10 -0
  357. package/dist/quit-GWTNHQSP.js +10 -0
  358. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  359. package/dist/rawMode-GFNLXQPU.js +7 -0
  360. package/dist/{registry-KWZGYJC2.js → registry-34GL6BNJ.js} +30 -45
  361. package/dist/{registry-YN4FQPOO.cjs → registry-V24W7YK6.cjs} +66 -81
  362. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  363. package/dist/repeat-RALE6AUO.js +17 -0
  364. package/dist/resume-DYVOQN5L.cjs +16 -0
  365. package/dist/resume-M25UQKOX.js +16 -0
  366. package/dist/review-QHP2KP4Q.js +9 -0
  367. package/dist/review-UWHWQHCB.cjs +9 -0
  368. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  369. package/dist/ripgrep-VHJQQ55W.js +9 -0
  370. package/dist/rpc-NPS3PU4O.cjs +3730 -0
  371. package/dist/rpc-S3DGW6KV.js +3730 -0
  372. package/dist/search-CPX4PWHP.js +20 -0
  373. package/dist/search-VUF3M4N3.cjs +20 -0
  374. package/dist/{session-BSU2L5UI.cjs → session-LXKC4X5Q.cjs} +1 -1
  375. package/dist/{session-SZMRN5KG.js → session-NMMO4QOL.js} +1 -1
  376. package/dist/sessions-IYAXMK23.js +10 -0
  377. package/dist/sessions-JODKER5D.cjs +10 -0
  378. package/dist/settings-55BNW6BF.js +33 -0
  379. package/dist/settings-BKTS7OMC.cjs +33 -0
  380. package/dist/setup-IRC5HQG2.js +29 -0
  381. package/dist/setup-MMQ7TWOP.cjs +29 -0
  382. package/dist/share-6JRQECAH.cjs +17 -0
  383. package/dist/share-YM5MJKMO.js +17 -0
  384. package/dist/{skills-FYY6F2WV.cjs → skills-GGMZOVIE.cjs} +14 -11
  385. package/dist/skills-LWSOKOSH.cjs +29 -0
  386. package/dist/{skills-6OL4OSGA.js → skills-MVIZNHT4.js} +13 -10
  387. package/dist/skills-VWOMV3CR.js +29 -0
  388. package/dist/{skills-install-6CSWC24P.js → skills-install-QBA5RCV6.js} +22 -71
  389. package/dist/{skills-install-O3LZ2ETC.cjs → skills-install-VTAMCNNY.cjs} +35 -84
  390. package/dist/skills-new-GPL46YV2.js +18 -0
  391. package/dist/skills-new-L5BEZN5V.cjs +18 -0
  392. package/dist/slashCommands-FBPCIWM5.cjs +95 -0
  393. package/dist/slashCommands-FCWY5DXW.js +95 -0
  394. package/dist/status-3B5SDZPL.js +17 -0
  395. package/dist/status-TTGRF6NC.cjs +17 -0
  396. package/dist/summarizer-DGPHE5IQ.js +17 -0
  397. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  398. package/dist/sync-77CXVVTK.cjs +21 -0
  399. package/dist/{sync-KWX67OUN.js → sync-7BILIQHP.js} +4 -4
  400. package/dist/sync-7OKF6636.js +21 -0
  401. package/dist/sync-EH4K5U3N.cjs +40 -0
  402. package/dist/{tasks-5FPBIFLC.js → tasks-R5MBGAQ6.js} +1 -1
  403. package/dist/{tasks-TXGKGNH6.cjs → tasks-V4WB3MFR.cjs} +1 -1
  404. package/dist/{team-5YXP3JGR.js → team-JESCHGWB.js} +1 -1
  405. package/dist/{team-IIWEZKNR.cjs → team-VQQKWGZB.cjs} +1 -1
  406. package/dist/{teammate-L6EZQ3I2.js → teammate-GZQSCIMS.js} +29 -8
  407. package/dist/{teammate-2KMKJXAM.cjs → teammate-J6PHGL23.cjs} +30 -9
  408. package/dist/theme-64BYGJ57.cjs +21 -0
  409. package/dist/theme-YJE6HEON.js +21 -0
  410. package/dist/tools-3PPTTKFV.js +9 -0
  411. package/dist/tools-THIQA7WC.cjs +9 -0
  412. package/dist/ui/questionModal.cjs +9 -6
  413. package/dist/ui/questionModal.js +8 -5
  414. package/dist/undo-PRTEGL2J.cjs +10 -0
  415. package/dist/undo-SZEHLX7X.js +10 -0
  416. package/dist/{update-TVAJMMBC.js → update-53WMKYVS.js} +1 -1
  417. package/dist/{update-Z6BIIQDC.cjs → update-NV6QRYY7.cjs} +1 -1
  418. package/dist/web-3BA2WV37.cjs +37 -0
  419. package/dist/web-6FYGBX5K.js +37 -0
  420. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  421. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  422. package/dist/yolo-GF2YD7ZI.js +9 -0
  423. package/dist/yolo-OGDA7HNC.cjs +9 -0
  424. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  425. package/dist/yoloMode-4JOOSU26.js +17 -0
  426. package/package.json +46 -49
  427. package/dist/AgentRegistry-NQCLWABO.cjs +0 -10
  428. package/dist/CommunitySkillsCache-6QPRMTJO.js +0 -8
  429. package/dist/CommunitySkillsCache-GTQMOCCO.cjs +0 -8
  430. package/dist/GitHubRegistryFetcher-S7QFUEKV.cjs +0 -7
  431. package/dist/HookManager-Q2KYMCP4.cjs +0 -7
  432. package/dist/HookManager-TTP4Y6DC.js +0 -7
  433. package/dist/LearnAdvisor-A4Q5PPBI.js +0 -9
  434. package/dist/LearnAdvisor-GASQD7HT.cjs +0 -9
  435. package/dist/McpClientManager-RKD7C6OY.cjs +0 -8
  436. package/dist/MemoryManager-GUNLRP5S.js +0 -8
  437. package/dist/MemoryManager-TNSGKDKX.cjs +0 -8
  438. package/dist/PermissionManager-KMN53FJP.cjs +0 -11
  439. package/dist/ProviderFactory-MR5B23QJ.js +0 -9
  440. package/dist/ProviderFactory-VFGCJJX6.cjs +0 -9
  441. package/dist/SessionManager-FEUAU3ZJ.cjs +0 -10
  442. package/dist/SessionManager-IKWAK2PI.js +0 -10
  443. package/dist/SkillsRegistry-KPQFTRIT.cjs +0 -9
  444. package/dist/SkillsRegistry-XJSKPDF2.js +0 -9
  445. package/dist/SubAgent-NYH6GWQ3.js +0 -11
  446. package/dist/SubAgent-PZKBDUBA.cjs +0 -11
  447. package/dist/SyncApiClient-ZNYMT36M.cjs +0 -11
  448. package/dist/about-HHTF2YFL.js +0 -12
  449. package/dist/about-JGRVNNQC.cjs +0 -12
  450. package/dist/actionExecutor-U6IBN2TU.cjs +0 -19
  451. package/dist/actionExecutor-XT5FW3W6.js +0 -19
  452. package/dist/add-dir-247K3XRY.js +0 -10
  453. package/dist/add-dir-GS4DXKKH.cjs +0 -10
  454. package/dist/agents-R6ZEFTVR.cjs +0 -12
  455. package/dist/agents-WJPQWQF2.js +0 -12
  456. package/dist/agents-new-HKVEIBDJ.js +0 -14
  457. package/dist/agents-new-X6GTHIO6.cjs +0 -14
  458. package/dist/autoSkill-H4T6VVDA.cjs +0 -20
  459. package/dist/automode-BC6NVECO.js +0 -10
  460. package/dist/automode-WN2RSOGW.cjs +0 -10
  461. package/dist/chunk-33A755XB.cjs +0 -168
  462. package/dist/chunk-3OTU3RS3.cjs +0 -1607
  463. package/dist/chunk-4PKF7WPD.js +0 -100
  464. package/dist/chunk-ALYU6VTM.js +0 -105
  465. package/dist/chunk-AS6RTLN7.cjs +0 -203
  466. package/dist/chunk-BWN2CLLM.cjs +0 -298
  467. package/dist/chunk-HQ7YZKXE.js +0 -168
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-J6QET7EF.cjs +0 -454
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-P47WPOXN.js +0 -298
  472. package/dist/chunk-PRRCJFU3.cjs +0 -85
  473. package/dist/chunk-RO6WYEWH.js +0 -454
  474. package/dist/chunk-SYVYLZZF.cjs +0 -24
  475. package/dist/chunk-T73IDKDF.js +0 -111
  476. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  477. package/dist/chunk-ZQE72E6W.cjs +0 -100
  478. package/dist/chunk-ZVY2XD6T.js +0 -1607
  479. package/dist/clear-UO4MNWZW.cjs +0 -12
  480. package/dist/clear-ZJ5NYP6E.js +0 -12
  481. package/dist/communityInstaller-PVSOFDZD.cjs +0 -19
  482. package/dist/completion-MMF2PN2H.js +0 -14
  483. package/dist/completion-UI5WKHXI.cjs +0 -14
  484. package/dist/config-E7RINK4R.cjs +0 -18
  485. package/dist/constants-6CPCJ3DY.cjs +0 -21
  486. package/dist/export-N4XIVDSL.cjs +0 -12
  487. package/dist/export-W22L4D5C.js +0 -12
  488. package/dist/feedback-DR6ADSNE.cjs +0 -15
  489. package/dist/feedback-FEEAP4QW.js +0 -15
  490. package/dist/filesystem-3SGCW2BF.js +0 -10
  491. package/dist/filesystem-MCFXJQ6R.cjs +0 -10
  492. package/dist/help-AQHGTS7P.cjs +0 -12
  493. package/dist/history-NIUDRMKA.cjs +0 -14
  494. package/dist/hooks-2EY4IPKV.js +0 -13
  495. package/dist/hooks-LJVORRIG.cjs +0 -13
  496. package/dist/i18n-ARDG2SMC.cjs +0 -33
  497. package/dist/ide-GFW6IJHD.js +0 -12
  498. package/dist/ide-N2ZNSSB3.cjs +0 -12
  499. package/dist/import-DFVN3KNZ.js +0 -10
  500. package/dist/import-ZS6DPGU5.cjs +0 -10
  501. package/dist/init-PY75HA3S.cjs +0 -10
  502. package/dist/init-QNMWLAVY.js +0 -10
  503. package/dist/language-5UE4G2BT.cjs +0 -18
  504. package/dist/language-UXMHEZUJ.js +0 -18
  505. package/dist/learn-HJ3FLNZC.cjs +0 -20
  506. package/dist/learn-MVYS3RU5.js +0 -20
  507. package/dist/localProjectPermissions-N77HA3XK.js +0 -18
  508. package/dist/localProjectPermissions-UFSMNTBJ.cjs +0 -18
  509. package/dist/login-DSE7H63A.js +0 -20
  510. package/dist/login-V3MEWPKN.cjs +0 -20
  511. package/dist/logout-BMVCLKKW.js +0 -18
  512. package/dist/logout-XEG7FHOZ.cjs +0 -18
  513. package/dist/mcp-PYUR4PHO.js +0 -18
  514. package/dist/mcp-SG6JFLGC.cjs +0 -18
  515. package/dist/memory-4ZMMEZ2Z.js +0 -10
  516. package/dist/memory-QSGMVVGH.cjs +0 -10
  517. package/dist/model-NANLBZ4Z.cjs +0 -10
  518. package/dist/model-ZXNV4AF7.js +0 -10
  519. package/dist/new-5QJY5JP2.js +0 -12
  520. package/dist/new-PMMG55UX.cjs +0 -12
  521. package/dist/permissions-LECTCJ4H.cjs +0 -13
  522. package/dist/permissions-VP5VGIBL.js +0 -13
  523. package/dist/plan-G5CEKJI4.js +0 -11
  524. package/dist/plan-QKOHE3LH.cjs +0 -11
  525. package/dist/quit-BKOOPHU5.cjs +0 -10
  526. package/dist/quit-FVFNYACP.js +0 -10
  527. package/dist/resume-EXFQSQPH.js +0 -13
  528. package/dist/resume-PP2IQM5S.cjs +0 -13
  529. package/dist/search-C56FBN67.cjs +0 -17
  530. package/dist/search-XGZDYBF4.js +0 -17
  531. package/dist/sessions-54KI3F2Q.js +0 -10
  532. package/dist/sessions-DDTSPNVW.cjs +0 -10
  533. package/dist/settings-BDO37TTO.cjs +0 -30
  534. package/dist/settings-FHRDFPLK.js +0 -30
  535. package/dist/share-IERCTBGN.cjs +0 -14
  536. package/dist/share-TGROUE6R.js +0 -14
  537. package/dist/skills-OM4IGBAA.cjs +0 -26
  538. package/dist/skills-S3GRN323.js +0 -26
  539. package/dist/skills-new-ALD2PTHN.js +0 -15
  540. package/dist/skills-new-PWLKK7GW.cjs +0 -15
  541. package/dist/slashCommands-L4ZD33LJ.js +0 -75
  542. package/dist/slashCommands-YY2VUUDF.cjs +0 -75
  543. package/dist/status-3PC5XWSS.cjs +0 -11
  544. package/dist/status-KCLVOYPD.js +0 -11
  545. package/dist/sync-6SDWG5RK.js +0 -18
  546. package/dist/sync-7JMZVEQD.cjs +0 -40
  547. package/dist/sync-WHURZL3U.cjs +0 -18
  548. package/dist/theme-BE5A4FPN.cjs +0 -18
  549. package/dist/theme-YMFCQP7J.js +0 -18
  550. package/dist/undo-KZHUUZTD.cjs +0 -10
  551. package/dist/undo-NEIEHQVX.js +0 -10
@@ -1,16 +1,16 @@
1
- import {
2
- package_default
3
- } from "./chunk-T73IDKDF.js";
4
1
  import {
5
2
  safePrompt
6
- } from "./chunk-6ZCULLCA.js";
3
+ } from "./chunk-62RTC3XX.js";
4
+ import {
5
+ package_default
6
+ } from "./chunk-3PXKRVCW.js";
7
7
  import {
8
8
  AUTOHAND_FILES,
9
9
  AUTOHAND_PATHS
10
- } from "./chunk-EGFT4PGW.js";
10
+ } from "./chunk-TWQDAUZU.js";
11
11
  import {
12
12
  t
13
- } from "./chunk-APIXPPMT.js";
13
+ } from "./chunk-CBFH2J3O.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) {
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  DEFAULT_SYNC_CONFIG,
3
3
  createSyncService
4
- } from "./chunk-3PDTTAKJ.js";
5
- import {
6
- getAuthClient
7
- } from "./chunk-HQ7YZKXE.js";
4
+ } from "./chunk-2QL6MNXG.js";
8
5
  import {
9
6
  safePrompt
10
- } from "./chunk-6ZCULLCA.js";
7
+ } from "./chunk-62RTC3XX.js";
8
+ import {
9
+ getAuthClient
10
+ } from "./chunk-IAGCRVJ3.js";
11
11
  import {
12
12
  saveConfig
13
- } from "./chunk-P47WPOXN.js";
13
+ } from "./chunk-3UT7R3XV.js";
14
14
  import {
15
15
  AUTH_CONFIG
16
- } from "./chunk-EGFT4PGW.js";
16
+ } from "./chunk-TWQDAUZU.js";
17
17
  import {
18
18
  t
19
- } from "./chunk-APIXPPMT.js";
19
+ } from "./chunk-CBFH2J3O.js";
20
20
 
21
21
  // src/commands/login.ts
22
22
  import chalk from "chalk";
@@ -27,26 +27,39 @@ var metadata = {
27
27
  };
28
28
  async function openBrowser(url) {
29
29
  try {
30
- const open = await import("open").then((m) => m.default).catch(() => null);
31
- if (open) {
32
- await open(url);
33
- return true;
34
- }
35
- const { exec } = await import("child_process");
30
+ const { exec, execFile } = await import("child_process");
36
31
  const { promisify } = await import("util");
37
32
  const execAsync = promisify(exec);
33
+ const execFileAsync = promisify(execFile);
38
34
  const platform = process.platform;
39
- let command;
40
35
  if (platform === "darwin") {
41
- command = `open "${url}"`;
42
- } else if (platform === "win32") {
43
- command = `start "" "${url}"`;
44
- } else {
45
- command = `xdg-open "${url}"`;
36
+ await execFileAsync("open", [url]);
37
+ return true;
46
38
  }
47
- await execAsync(command);
48
- return true;
39
+ if (platform === "win32") {
40
+ await execAsync(`start "" "${url}"`);
41
+ return true;
42
+ }
43
+ const openers = ["xdg-open", "sensible-browser", "x-www-browser", "firefox", "chromium", "google-chrome"];
44
+ for (const opener of openers) {
45
+ try {
46
+ await execAsync(`command -v ${opener}`);
47
+ await execFileAsync(opener, [url]);
48
+ return true;
49
+ } catch {
50
+ continue;
51
+ }
52
+ }
53
+ console.log(`
54
+ Please open this URL manually:
55
+ ${url}
56
+ `);
57
+ return false;
49
58
  } catch {
59
+ console.log(`
60
+ Please open this URL manually:
61
+ ${url}
62
+ `);
50
63
  return false;
51
64
  }
52
65
  }
@@ -117,7 +130,9 @@ async function login(ctx) {
117
130
  console.log();
118
131
  console.log(chalk.green(t("commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
119
132
  console.log();
120
- await checkAndRestoreSyncData(pollResult.token, pollResult.user.id, updatedConfig);
133
+ if (process.stdin.isTTY && process.stdout.isTTY) {
134
+ await checkAndRestoreSyncData(pollResult.token, pollResult.user.id, updatedConfig);
135
+ }
121
136
  return null;
122
137
  }
123
138
  if (pollResult.status === "expired") {
@@ -141,7 +156,7 @@ async function checkAndRestoreSyncData(token, userId, config) {
141
156
  enabled: true
142
157
  }
143
158
  });
144
- const { getSyncApiClient } = await import("./SyncApiClient-LVIO4C2S.js");
159
+ const { getSyncApiClient } = await import("./SyncApiClient-LRPFNCKJ.js");
145
160
  const apiClient = getSyncApiClient();
146
161
  const remoteManifest = await apiClient.getRemoteManifest(token);
147
162
  if (!remoteManifest || remoteManifest.files.length === 0) {
@@ -0,0 +1,101 @@
1
+ // src/actions/command.ts
2
+ import { spawn } from "child_process";
3
+ import { isAbsolute, join } from "path";
4
+ function runCommand(cmd, args, cwd, options = {}) {
5
+ if (!cmd || typeof cmd !== "string") {
6
+ return Promise.reject(new Error("Command is required and must be a string"));
7
+ }
8
+ return new Promise((resolve, reject) => {
9
+ const workDir = options.directory ? isAbsolute(options.directory) ? options.directory : join(cwd, options.directory) : cwd;
10
+ const spawnOptions = {
11
+ cwd: workDir,
12
+ shell: options.shell ?? false,
13
+ env: {
14
+ ...process.env,
15
+ AUTOHAND_CLI: "1",
16
+ ...options.env
17
+ }
18
+ };
19
+ if (options.background) {
20
+ spawnOptions.detached = true;
21
+ spawnOptions.stdio = ["ignore", "pipe", "pipe"];
22
+ } else if (options.interactive) {
23
+ spawnOptions.stdio = "inherit";
24
+ }
25
+ let child;
26
+ try {
27
+ child = spawn(cmd, args, spawnOptions);
28
+ } catch (error) {
29
+ const err = error;
30
+ if (err.code === "ENOENT") {
31
+ reject(new Error(`Command not found: ${cmd}`));
32
+ } else {
33
+ reject(error);
34
+ }
35
+ return;
36
+ }
37
+ if (options.background) {
38
+ child.unref();
39
+ resolve({
40
+ stdout: "",
41
+ stderr: "",
42
+ code: null,
43
+ backgroundPid: child.pid,
44
+ signal: null
45
+ });
46
+ return;
47
+ }
48
+ if (options.interactive) {
49
+ child.once("error", (error) => {
50
+ if (error.code === "ENOENT") {
51
+ reject(new Error(`Command not found: ${cmd}`));
52
+ } else {
53
+ reject(error);
54
+ }
55
+ });
56
+ child.once("close", (code, signal) => {
57
+ resolve({ stdout: "", stderr: "", code, signal });
58
+ });
59
+ return;
60
+ }
61
+ let stdout = "";
62
+ let stderr = "";
63
+ let timeoutId;
64
+ if (options.timeout && options.timeout > 0) {
65
+ timeoutId = setTimeout(() => {
66
+ child.kill("SIGTERM");
67
+ }, options.timeout);
68
+ }
69
+ child.stdout?.on("data", (chunk) => {
70
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
71
+ stdout += text;
72
+ options.onStdout?.(text);
73
+ });
74
+ child.stderr?.on("data", (chunk) => {
75
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
76
+ stderr += text;
77
+ options.onStderr?.(text);
78
+ });
79
+ child.once("error", (error) => {
80
+ if (timeoutId) clearTimeout(timeoutId);
81
+ if (error.code === "ENOENT") {
82
+ reject(new Error(`Command not found: ${cmd}`));
83
+ } else {
84
+ reject(error);
85
+ }
86
+ });
87
+ child.once("close", (code, signal) => {
88
+ if (timeoutId) clearTimeout(timeoutId);
89
+ resolve({ stdout, stderr, code, signal });
90
+ });
91
+ });
92
+ }
93
+
94
+ export {
95
+ runCommand
96
+ };
97
+ /**
98
+ * @license
99
+ * Copyright 2025 Autohand AI LLC
100
+ * SPDX-License-Identifier: Apache-2.0
101
+ */
@@ -1,27 +1,35 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkBVKXEQVGcjs = require('./chunk-BVKXEQVG.cjs');
3
+ var _chunkMOJ7ADW4cjs = require('./chunk-MOJ7ADW4.cjs');
4
4
 
5
5
 
6
- var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
6
+ var _chunk46C73ZKKcjs = require('./chunk-46C73ZKK.cjs');
7
+
8
+
9
+ var _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
7
10
 
8
11
  // src/commands/agents.ts
9
12
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
10
13
  var metadata = {
11
14
  command: "/agents",
12
- description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.agents.description"),
15
+ description: _chunkCHI52KFRcjs.t.call(void 0, "commands.agents.description"),
13
16
  implemented: true,
17
+ subcommands: [
18
+ { name: "new", description: "create a new sub-agent from a description" }
19
+ ],
14
20
  prd: "prd/sub_agents_architecture.md"
15
21
  };
16
22
  async function handler() {
17
- const registry = _chunkBVKXEQVGcjs.AgentRegistry.getInstance();
23
+ const registry = _chunkMOJ7ADW4cjs.AgentRegistry.getInstance();
24
+ const config = await _chunk46C73ZKKcjs.loadConfig.call(void 0, void 0, process.cwd());
25
+ registry.configureExternalAgents(config.externalAgents);
18
26
  await registry.loadAgents();
19
27
  const agents = registry.getAllAgents();
20
28
  if (agents.length === 0) {
21
- return `${_chunk7BTSG4MEcjs.t.call(void 0, "commands.agents.noAgents")}
29
+ return `${_chunkCHI52KFRcjs.t.call(void 0, "commands.agents.noAgents")}
22
30
  ${_chalk2.default.gray(`Path: ${_chalk2.default.cyan(registry.getAgentsDirectory())}`)}`;
23
31
  }
24
- let output = _chalk2.default.bold(`${_chunk7BTSG4MEcjs.t.call(void 0, "commands.agents.title")}:
32
+ let output = _chalk2.default.bold(`${_chunkCHI52KFRcjs.t.call(void 0, "commands.agents.title")}:
25
33
 
26
34
  `);
27
35
  for (const agent of agents) {
@@ -0,0 +1,229 @@
1
+ import {
2
+ AutoReportManager
3
+ } from "./chunk-JIMSII7R.js";
4
+ import {
5
+ package_default
6
+ } from "./chunk-3PXKRVCW.js";
7
+ import {
8
+ loadConfig
9
+ } from "./chunk-3UT7R3XV.js";
10
+
11
+ // src/reporting/processErrorReporting.ts
12
+ var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
13
+ var DEFAULT_REPORT_TIMEOUT_MS = 6500;
14
+ var installedProcesses = /* @__PURE__ */ new WeakSet();
15
+ var managerCache = /* @__PURE__ */ new Map();
16
+ function getArgValue(argv, flag) {
17
+ if (!argv) {
18
+ return void 0;
19
+ }
20
+ for (let i = 0; i < argv.length; i++) {
21
+ const token = argv[i];
22
+ if (token === flag) {
23
+ return argv[i + 1];
24
+ }
25
+ if (token.startsWith(`${flag}=`)) {
26
+ return token.slice(flag.length + 1);
27
+ }
28
+ }
29
+ return void 0;
30
+ }
31
+ function resolveConfigPath(processRef, explicitPath) {
32
+ return explicitPath ?? getArgValue(processRef.argv, "--config") ?? processRef.env.AUTOHAND_CONFIG;
33
+ }
34
+ function detectClientName(processRef) {
35
+ const envClientName = processRef.env.AUTOHAND_CLIENT_NAME;
36
+ if (envClientName) {
37
+ return envClientName;
38
+ }
39
+ const mode = getArgValue(processRef.argv, "--mode");
40
+ if (mode === "acp" || mode === "rpc") {
41
+ return mode;
42
+ }
43
+ return "cli";
44
+ }
45
+ function getLogPrefix(processRef) {
46
+ return detectClientName(processRef) === "acp" ? "[ACP]" : "[DEBUG]";
47
+ }
48
+ function captureLastError(reason) {
49
+ globalThis.__autohandLastError = reason;
50
+ }
51
+ function sleep(ms) {
52
+ return new Promise((resolve) => setTimeout(resolve, ms));
53
+ }
54
+ function buildFallbackConfig(configPath, processRef) {
55
+ return {
56
+ provider: "openrouter",
57
+ api: {
58
+ baseUrl: processRef.env.AUTOHAND_API_URL || DEFAULT_API_BASE_URL,
59
+ companySecret: processRef.env.AUTOHAND_SECRET || ""
60
+ },
61
+ autoReport: {
62
+ enabled: true
63
+ },
64
+ telemetry: {
65
+ enabled: false
66
+ },
67
+ configPath: configPath ?? "process-error-fallback",
68
+ isNewConfig: false
69
+ };
70
+ }
71
+ async function getAutoReportManager(processRef, explicitConfigPath) {
72
+ const configPath = resolveConfigPath(processRef, explicitConfigPath);
73
+ const cacheKey = configPath ?? "__default__";
74
+ const cached = managerCache.get(cacheKey);
75
+ if (cached) {
76
+ return cached;
77
+ }
78
+ const managerPromise = (async () => {
79
+ let config;
80
+ try {
81
+ config = await loadConfig(configPath);
82
+ } catch {
83
+ config = buildFallbackConfig(configPath, processRef);
84
+ }
85
+ return new AutoReportManager(config, package_default.version);
86
+ })();
87
+ managerCache.set(cacheKey, managerPromise);
88
+ return managerPromise;
89
+ }
90
+ function isIgnorableStdinReadError(err, _processRef) {
91
+ if (!err || typeof err !== "object") {
92
+ return false;
93
+ }
94
+ const maybeError = err;
95
+ return maybeError.code === "EIO" && maybeError.syscall === "read";
96
+ }
97
+ function isIgnorableFilesystemError(err) {
98
+ if (!err || typeof err !== "object") return false;
99
+ const maybeError = err;
100
+ if (maybeError.syscall !== "mkdir") return false;
101
+ return maybeError.code === "EACCES" || maybeError.code === "EEXIST";
102
+ }
103
+ function isIgnorableTerminalOrRuntimeError(err) {
104
+ if (!err || typeof err !== "object") return false;
105
+ const message = err.message ?? "";
106
+ if (/setRawMode.*errno/i.test(message)) return true;
107
+ if (message === "Generator is executing") return true;
108
+ if (message.includes("node:sqlite")) return true;
109
+ return false;
110
+ }
111
+ function isIgnorableUnhandledRejection(reason, processRef) {
112
+ if (reason && typeof reason === "object" && reason.code === "ERR_USE_AFTER_CLOSE") {
113
+ return true;
114
+ }
115
+ if (isIgnorableStdinReadError(reason, processRef)) return true;
116
+ if (isIgnorableFilesystemError(reason)) return true;
117
+ if (isIgnorableTerminalOrRuntimeError(reason)) return true;
118
+ return false;
119
+ }
120
+ function toReportableError(reason) {
121
+ if (reason instanceof Error) {
122
+ return reason;
123
+ }
124
+ const fallbackName = "NonErrorProcessFault";
125
+ if (reason && typeof reason === "object") {
126
+ const maybeErrorLike = reason;
127
+ const message = typeof maybeErrorLike.message === "string" ? maybeErrorLike.message : safeSerialize(reason);
128
+ const error2 = new Error(message);
129
+ error2.name = typeof maybeErrorLike.name === "string" ? maybeErrorLike.name : fallbackName;
130
+ return error2;
131
+ }
132
+ const error = new Error(typeof reason === "string" ? reason : String(reason));
133
+ error.name = fallbackName;
134
+ return error;
135
+ }
136
+ function safeSerialize(value) {
137
+ try {
138
+ return JSON.stringify(value);
139
+ } catch {
140
+ return String(value);
141
+ }
142
+ }
143
+ function describeReasonType(reason) {
144
+ if (reason === null) {
145
+ return "null";
146
+ }
147
+ if (Array.isArray(reason)) {
148
+ return "array";
149
+ }
150
+ return typeof reason;
151
+ }
152
+ async function reportProcessError(reason, options) {
153
+ const processRef = options.processRef ?? process;
154
+ if (options.handler === "unhandledRejection" && isIgnorableUnhandledRejection(reason, processRef)) {
155
+ return;
156
+ }
157
+ if (options.handler === "uncaughtException" && (isIgnorableStdinReadError(reason, processRef) || isIgnorableTerminalOrRuntimeError(reason))) {
158
+ return;
159
+ }
160
+ captureLastError(reason);
161
+ const error = toReportableError(reason);
162
+ const manager = await getAutoReportManager(processRef, options.configPath);
163
+ const reportPromise = manager.reportError(error, {
164
+ context: {
165
+ source: "process",
166
+ handler: options.handler,
167
+ clientName: detectClientName(processRef),
168
+ fatal: options.handler === "uncaughtException",
169
+ rawType: describeReasonType(reason),
170
+ ...options.extraContext ?? {}
171
+ }
172
+ });
173
+ await Promise.race([
174
+ reportPromise,
175
+ sleep(options.reportTimeoutMs ?? DEFAULT_REPORT_TIMEOUT_MS)
176
+ ]);
177
+ }
178
+ function installProcessErrorHandlers(options = {}) {
179
+ const processRef = options.processRef ?? process;
180
+ if (installedProcesses.has(processRef)) {
181
+ return;
182
+ }
183
+ installedProcesses.add(processRef);
184
+ const logError = options.logError ?? console.error.bind(console);
185
+ const exit = options.exit ?? ((code) => {
186
+ processRef.exit(code);
187
+ });
188
+ processRef.on("uncaughtException", (error) => {
189
+ if (isIgnorableStdinReadError(error, processRef)) {
190
+ return;
191
+ }
192
+ if (isIgnorableTerminalOrRuntimeError(error)) {
193
+ return;
194
+ }
195
+ captureLastError(error);
196
+ logError(`${getLogPrefix(processRef)} Uncaught Exception:`, error);
197
+ void (async () => {
198
+ await reportProcessError(error, {
199
+ handler: "uncaughtException",
200
+ processRef,
201
+ configPath: options.configPath,
202
+ reportTimeoutMs: options.reportTimeoutMs
203
+ });
204
+ exit(1);
205
+ })();
206
+ });
207
+ processRef.on("unhandledRejection", (reason, promise) => {
208
+ if (isIgnorableUnhandledRejection(reason, processRef)) {
209
+ return;
210
+ }
211
+ captureLastError(reason);
212
+ logError(`${getLogPrefix(processRef)} Unhandled Rejection at:`, promise, "reason:", reason);
213
+ void reportProcessError(reason, {
214
+ handler: "unhandledRejection",
215
+ processRef,
216
+ configPath: options.configPath,
217
+ reportTimeoutMs: options.reportTimeoutMs
218
+ });
219
+ });
220
+ }
221
+
222
+ export {
223
+ installProcessErrorHandlers
224
+ };
225
+ /**
226
+ * @license
227
+ * Copyright 2025 Autohand AI LLC
228
+ * SPDX-License-Identifier: Apache-2.0
229
+ */
@@ -0,0 +1,74 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/ui/displayUtils.ts
2
+ var ANSI_PATTERN = /\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)|\u001b\[[0-?]*[ -/]*[@-~]/g;
3
+ function stripAnsiCodes(value) {
4
+ return value.replace(ANSI_PATTERN, "");
5
+ }
6
+ function enableBracketedPaste(output) {
7
+ try {
8
+ output.write("\x1B[?2004h");
9
+ } catch (error) {
10
+ if (process.env.DEBUG_PASTE) {
11
+ output.write(`[DEBUG] Failed to enable bracketed paste: ${error}
12
+ `);
13
+ }
14
+ }
15
+ }
16
+ function disableBracketedPaste(output) {
17
+ try {
18
+ output.write("\x1B[?2004l");
19
+ } catch (e) {
20
+ }
21
+ }
22
+ function shuffleInPlace(arr) {
23
+ for (let i = arr.length - 1; i > 0; i--) {
24
+ const j = Math.floor(Math.random() * (i + 1));
25
+ [arr[i], arr[j]] = [arr[j], arr[i]];
26
+ }
27
+ }
28
+ var PASTE_LINE_THRESHOLD = 5;
29
+ var PASTE_CHAR_THRESHOLD = 1500;
30
+ function getContentDisplay(text) {
31
+ const charCount = Array.from(text).length;
32
+ if (!text) {
33
+ return {
34
+ visual: "",
35
+ actual: "",
36
+ isPasted: false,
37
+ lineCount: 1,
38
+ charCount
39
+ };
40
+ }
41
+ const lines = text.split("\n");
42
+ const lineCount = lines.length;
43
+ if (lineCount >= PASTE_LINE_THRESHOLD || charCount >= PASTE_CHAR_THRESHOLD) {
44
+ return {
45
+ visual: `[Text pasted ${charCount} chars]`,
46
+ actual: text,
47
+ isPasted: true,
48
+ lineCount,
49
+ charCount
50
+ };
51
+ }
52
+ return {
53
+ visual: text,
54
+ actual: text,
55
+ isPasted: false,
56
+ lineCount,
57
+ charCount
58
+ };
59
+ }
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+ exports.stripAnsiCodes = stripAnsiCodes; exports.enableBracketedPaste = enableBracketedPaste; exports.disableBracketedPaste = disableBracketedPaste; exports.shuffleInPlace = shuffleInPlace; exports.getContentDisplay = getContentDisplay;
68
+ /**
69
+ * @license
70
+ * Copyright 2025 Autohand AI LLC
71
+ * SPDX-License-Identifier: Apache-2.0
72
+ *
73
+ * Display utilities for smart content rendering
74
+ */