autohand-cli 0.8.3 → 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 (510) hide show
  1. package/README.md +173 -74
  2. package/dist/AgentRegistry-EGBDIUAK.cjs +10 -0
  3. package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-XPWSVO3Q.js} +2 -2
  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-2OIUV227.cjs +8 -0
  7. package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZEQWP6YM.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-CWLTFKWO.js} +1 -1
  11. package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TMAJQU4S.cjs} +2 -2
  12. package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-MQXEED2U.cjs} +37 -13
  13. package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-QBKQEXDW.js} +33 -9
  14. package/dist/LearnAdvisor-46FG2XIP.js +9 -0
  15. package/dist/LearnAdvisor-XBRDNAGH.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-34L4YOKA.cjs +8 -0
  19. package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-WJMLPWGU.js} +2 -2
  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-7NQHRCHY.js → PermissionManager-KMYILJ4Z.js} +3 -3
  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-C3YPXTDD.cjs +11 -0
  27. package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-HFPRVQ25.js} +3 -1
  28. package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-PNBTJJTQ.js} +2 -2
  29. package/dist/SessionManager-WAPTFMDO.cjs +10 -0
  30. package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-4RRD5GMX.js} +2 -2
  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-B5RT2ECG.js → SyncApiClient-LRPFNCKJ.js} +1 -1
  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-TUJM3PG5.js → add-dir-VFX7QT4E.js} +3 -2
  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-LQEVQFIH.js → autoSkill-EFMK6WU6.js} +2 -2
  57. package/dist/autoSkill-YOLLFTP2.cjs +20 -0
  58. package/dist/{automode-R6P3VHLS.js → automode-BMYSRM34.js} +2 -2
  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/chrome-ATC4OO5I.cjs +20 -0
  63. package/dist/chrome-NHJ44WUN.js +50 -0
  64. package/dist/chrome-O62WXV7F.js +20 -0
  65. package/dist/chrome-XHJLCO4M.cjs +50 -0
  66. package/dist/chromeSkill-53TH55PM.js +105 -0
  67. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  68. package/dist/{chunk-EGPXJERY.cjs → chunk-2CGE7ZV3.cjs} +26 -26
  69. package/dist/chunk-2H5O745H.js +63 -0
  70. package/dist/chunk-2HOLOHVK.js +2219 -0
  71. package/dist/{chunk-3PDTTAKJ.js → chunk-2QL6MNXG.js} +15 -8
  72. package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
  73. package/dist/{chunk-VG34MG2U.js → chunk-37M5UM6I.js} +9 -6
  74. package/dist/{chunk-KLWJIPU2.cjs → chunk-3DDL2E55.cjs} +20 -16
  75. package/dist/chunk-3EDDDZS2.cjs +5 -0
  76. package/dist/{chunk-2UC22DJU.js → chunk-3GUEUCZK.js} +28 -4
  77. package/dist/{chunk-DVUHHH3B.cjs → chunk-3KLSNNRW.cjs} +4 -4
  78. package/dist/chunk-3LJJG5YY.cjs +387 -0
  79. package/dist/chunk-3OF56EMA.cjs +197 -0
  80. package/dist/chunk-3PXKRVCW.js +108 -0
  81. package/dist/{chunk-ADUFCS4Q.cjs → chunk-3S563FNF.cjs} +160 -79
  82. package/dist/chunk-3UT7R3XV.js +663 -0
  83. package/dist/chunk-4256YRCO.cjs +80 -0
  84. package/dist/chunk-46C73ZKK.cjs +663 -0
  85. package/dist/chunk-46MTALKD.js +44 -0
  86. package/dist/{chunk-AEJH23FO.cjs → chunk-47PHDKNW.cjs} +6 -6
  87. package/dist/chunk-4LMUDS2K.js +124 -0
  88. package/dist/{chunk-HLHTG5ZU.cjs → chunk-5CMYEM3R.cjs} +14 -12
  89. package/dist/{chunk-MBBY4ZIK.js → chunk-5F6ZKSHO.js} +4 -1
  90. package/dist/chunk-5JFTY3VU.js +74 -0
  91. package/dist/chunk-5JTTM5SC.js +59 -0
  92. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  93. package/dist/{chunk-GJH7XMSK.js → chunk-5VHP6HDQ.js} +8 -6
  94. package/dist/{chunk-6ZCULLCA.js → chunk-62RTC3XX.js} +1 -1
  95. package/dist/{chunk-64H4FRM3.cjs → chunk-6GUODJKM.cjs} +32 -34
  96. package/dist/{chunk-47CKWKEX.cjs → chunk-6HH236FV.cjs} +9 -4
  97. package/dist/{chunk-WHE2SWHU.js → chunk-6NVAK6CK.js} +2 -2
  98. package/dist/chunk-6R25D2H5.js +121 -0
  99. package/dist/{chunk-OUZQXMHL.cjs → chunk-6XVVIY54.cjs} +55 -25
  100. package/dist/{chunk-3L53OA4E.cjs → chunk-75EDROHL.cjs} +10 -10
  101. package/dist/{chunk-G4CAKI3V.js → chunk-7HPWMALN.js} +7 -2
  102. package/dist/chunk-7JLT2VNW.cjs +18963 -0
  103. package/dist/chunk-7LWQCE4Y.cjs +987 -0
  104. package/dist/{chunk-OLSBBZW6.cjs → chunk-7MU7LWF3.cjs} +5 -5
  105. package/dist/{chunk-TUD3Z3BD.js → chunk-7RFJB75Y.js} +140 -59
  106. package/dist/{chunk-X2MSVKDV.js → chunk-A7HHCIDQ.js} +2 -2
  107. package/dist/{chunk-SKYG33B2.cjs → chunk-AC7DZ6SK.cjs} +3 -3
  108. package/dist/{chunk-XX2ZO7DS.js → chunk-ACDQGA4Z.js} +90 -16
  109. package/dist/{chunk-CZXGCVTR.cjs → chunk-AOKCI722.cjs} +2 -2
  110. package/dist/chunk-ARBEHFCG.js +715 -0
  111. package/dist/{chunk-OOKY3HPZ.js → chunk-AT7OWLY5.js} +50 -9
  112. package/dist/chunk-AU6JAGZJ.cjs +231 -0
  113. package/dist/chunk-AUFNACED.js +18963 -0
  114. package/dist/{chunk-N2BLVUPM.cjs → chunk-AUYSIEVV.cjs} +3 -3
  115. package/dist/chunk-B4HSNOIH.cjs +354 -0
  116. package/dist/{chunk-EGMZDTSL.js → chunk-B5CGDNMR.js} +10 -2
  117. package/dist/{chunk-FTYY5JJD.js → chunk-BFQDQRDE.js} +2 -2
  118. package/dist/{chunk-2AA5MFES.js → chunk-BL2UC7HC.js} +8 -5
  119. package/dist/{chunk-T2M64VHA.cjs → chunk-BQ22N3TX.cjs} +56 -41
  120. package/dist/chunk-BQU3HAE7.js +21 -0
  121. package/dist/chunk-BWF4VDYE.js +3897 -0
  122. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  123. package/dist/{chunk-APIXPPMT.js → chunk-CBFH2J3O.js} +855 -33
  124. package/dist/chunk-CCVMREXI.js +420 -0
  125. package/dist/chunk-CFAWTLSC.js +13 -0
  126. package/dist/{chunk-G27PQQFD.js → chunk-CFFE4VA3.js} +1 -1
  127. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CH2J4PVE.cjs} +212 -70
  128. package/dist/{chunk-7BTSG4ME.cjs → chunk-CHI52KFR.cjs} +855 -33
  129. package/dist/{chunk-DJDE4DTT.cjs → chunk-CWINVFRI.cjs} +25 -19
  130. package/dist/{chunk-HXGBSJL5.cjs → chunk-D2OSPLYC.cjs} +2 -2
  131. package/dist/{chunk-GBHDROGL.js → chunk-D6GZBSOX.js} +16 -4
  132. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  133. package/dist/chunk-DEQVRSV5.cjs +866 -0
  134. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  135. package/dist/{chunk-K2C56QGS.cjs → chunk-DIZTWFVR.cjs} +1499 -482
  136. package/dist/{chunk-YZXUDM5X.js → chunk-DLP436GI.js} +204 -62
  137. package/dist/{chunk-OHUZKDGX.js → chunk-DMRXF5DU.js} +3 -3
  138. package/dist/{chunk-U46VYPLR.cjs → chunk-DPSIGY6L.cjs} +9 -9
  139. package/dist/{chunk-SEKD5FH3.cjs → chunk-E26KKI46.cjs} +5 -2
  140. package/dist/{chunk-SJAVBCOA.js → chunk-E46DJH5S.js} +3 -3
  141. package/dist/{chunk-DV2ZHK7B.cjs → chunk-E6GFD7VR.cjs} +49 -26
  142. package/dist/chunk-ES2HJQ4N.js +37 -0
  143. package/dist/chunk-EZJHLOWP.js +80 -0
  144. package/dist/chunk-FFBDRUO5.cjs +59 -0
  145. package/dist/{chunk-SV2WA57F.js → chunk-FGT6KK6T.js} +38 -15
  146. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  147. package/dist/{chunk-QXH5RCFI.js → chunk-FQAVGSPW.js} +2 -2
  148. package/dist/chunk-FQVG6ZHF.js +197 -0
  149. package/dist/chunk-GBMDFWJX.cjs +152 -0
  150. package/dist/{chunk-NAGQ2PDC.js → chunk-GGLKUENP.js} +1453 -436
  151. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  152. package/dist/{chunk-MYISNQH4.js → chunk-GWO66KBI.js} +1 -1
  153. package/dist/chunk-GWY26SUD.cjs +63 -0
  154. package/dist/{chunk-YGN4CQIP.js → chunk-GZ6DV2UG.js} +1 -1
  155. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  156. package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
  157. package/dist/chunk-HJIXWGQZ.js +139 -0
  158. package/dist/{chunk-ULDM2SNB.js → chunk-HKYZSUQ5.js} +48 -47
  159. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  160. package/dist/{chunk-HTLINWX6.cjs → chunk-HQWQZML5.cjs} +16 -13
  161. package/dist/{chunk-DVZOENQ7.cjs → chunk-HS4USDND.cjs} +9 -4
  162. package/dist/chunk-HSCUPEA4.cjs +3897 -0
  163. package/dist/{chunk-JCLYQ2JC.js → chunk-HXJEGMGB.js} +12 -6
  164. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  165. package/dist/{chunk-N7LI55V4.js → chunk-I24CWKKK.js} +15 -8
  166. package/dist/chunk-IAGCRVJ3.js +355 -0
  167. package/dist/chunk-IEXKKKOF.cjs +92 -0
  168. package/dist/{chunk-5IXII4HX.cjs → chunk-IGMPWJ2I.cjs} +19 -12
  169. package/dist/chunk-IKUMVBCW.cjs +33 -0
  170. package/dist/{chunk-XTB6VJVQ.cjs → chunk-J2K57QM7.cjs} +6 -6
  171. package/dist/{chunk-56SWIDEL.cjs → chunk-J5ADZN6V.cjs} +57 -56
  172. package/dist/chunk-J5HE6CUM.cjs +124 -0
  173. package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
  174. package/dist/chunk-JIMSII7R.js +987 -0
  175. package/dist/chunk-JJ4KA7HK.cjs +2219 -0
  176. package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
  177. package/dist/{chunk-X5VSP65C.cjs → chunk-JP3YHTQ2.cjs} +4 -4
  178. package/dist/{chunk-SKV2F3NM.js → chunk-JYKPWK5O.js} +1 -1
  179. package/dist/{chunk-NNPAM4HC.cjs → chunk-KNTUI4TZ.cjs} +12 -6
  180. package/dist/{chunk-HIVRCQS2.js → chunk-L4F7SUYL.js} +56 -25
  181. package/dist/{chunk-C5IJIM2V.cjs → chunk-LDJQ5QHG.cjs} +68 -37
  182. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  183. package/dist/chunk-LJD7KR3L.cjs +44 -0
  184. package/dist/chunk-LN7D3EJZ.js +387 -0
  185. package/dist/{chunk-KANW6OYC.cjs → chunk-LQBONA55.cjs} +32 -8
  186. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  187. package/dist/chunk-M4KNC5BQ.js +78 -0
  188. package/dist/chunk-MO4KP6XS.cjs +229 -0
  189. package/dist/{chunk-BVKXEQVG.cjs → chunk-MOJ7ADW4.cjs} +22 -10
  190. package/dist/chunk-MPULXVC4.cjs +715 -0
  191. package/dist/{chunk-VEKDGU2Q.cjs → chunk-MQESBFBZ.cjs} +46 -23
  192. package/dist/chunk-MUNUUFU7.cjs +21 -0
  193. package/dist/{chunk-ZSPXQYG2.js → chunk-MX75JYIY.js} +7 -5
  194. package/dist/chunk-MXVIDIC6.cjs +139 -0
  195. package/dist/{chunk-3K2ESU53.cjs → chunk-N6O3XUZ2.cjs} +2 -2
  196. package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
  197. package/dist/{chunk-SLQAYV3W.js → chunk-NMQ47RCG.js} +8 -2
  198. package/dist/{chunk-JYTDYJVW.js → chunk-O64I2GYI.js} +1 -1
  199. package/dist/{chunk-IFFXSTOM.cjs → chunk-O6TQP7U7.cjs} +3 -3
  200. package/dist/{chunk-AYS2ASM7.js → chunk-OHWMWKJQ.js} +1 -1
  201. package/dist/{chunk-N23UAW4I.js → chunk-OM24WXEE.js} +7 -2
  202. package/dist/{chunk-NAJ4IZKD.cjs → chunk-OPNI6O7F.cjs} +8 -6
  203. package/dist/chunk-OR67YXQK.cjs +13 -0
  204. package/dist/{chunk-XVUHNWMX.js → chunk-OV3PVUYN.js} +17 -19
  205. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  206. package/dist/chunk-PCM3N3CL.cjs +37 -0
  207. package/dist/{chunk-A4IJHHV7.cjs → chunk-PDHT7LQS.cjs} +52 -11
  208. package/dist/{chunk-HPHJ73GU.cjs → chunk-PHJO5YAL.cjs} +9 -9
  209. package/dist/{chunk-KPELYZ6L.js → chunk-PQLKJCIE.js} +2 -2
  210. package/dist/chunk-PUD76XQT.cjs +78 -0
  211. package/dist/chunk-Q2IL4DDI.cjs +355 -0
  212. package/dist/{chunk-WPVWQSL7.cjs → chunk-Q6AC3PHY.cjs} +16 -13
  213. package/dist/{chunk-XRZEUWKF.js → chunk-QCHIDZBA.js} +1 -1
  214. package/dist/chunk-QKP772OZ.js +4291 -0
  215. package/dist/chunk-QQ7PANOP.js +59 -0
  216. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  217. package/dist/chunk-RAKO7UN7.js +114 -0
  218. package/dist/chunk-RBHANOYY.js +33 -0
  219. package/dist/chunk-RBZ7AFX7.cjs +29 -0
  220. package/dist/{chunk-GCXYXLRA.cjs → chunk-REMGR23V.cjs} +46 -49
  221. package/dist/chunk-ROLA6EFO.cjs +85 -0
  222. package/dist/{chunk-RDF37HKB.cjs → chunk-SOLBYSLY.cjs} +3 -2
  223. package/dist/{chunk-KQGPTCQJ.js → chunk-SWCQM52V.js} +68 -25
  224. package/dist/{chunk-L3TWPROA.js → chunk-TBOLJDUG.js} +39 -24
  225. package/dist/chunk-TH26BQJG.js +101 -0
  226. package/dist/{chunk-245KJE5Y.cjs → chunk-TJNBASFD.cjs} +14 -6
  227. package/dist/chunk-TKKN34TV.js +229 -0
  228. package/dist/chunk-TQ33WBY5.cjs +74 -0
  229. package/dist/{chunk-EGFT4PGW.js → chunk-TWQDAUZU.js} +5 -2
  230. package/dist/{chunk-J2GSFVUV.cjs → chunk-TXPSTCG7.cjs} +74 -59
  231. package/dist/{chunk-5K6NGAVM.js → chunk-U4C3HW6P.js} +67 -52
  232. package/dist/{chunk-3WICOC33.js → chunk-UEIXJG45.js} +105 -81
  233. package/dist/{chunk-22D2CNTP.cjs → chunk-UGFVM77J.cjs} +5 -2
  234. package/dist/chunk-UOQECODR.js +34 -0
  235. package/dist/chunk-UR27UDTB.js +354 -0
  236. package/dist/chunk-UWFG2R2I.cjs +420 -0
  237. package/dist/{chunk-Y72HH2TF.cjs → chunk-UXLW45ZE.cjs} +102 -28
  238. package/dist/{chunk-FPHU2ES6.cjs → chunk-VBOFPU5M.cjs} +6 -0
  239. package/dist/{chunk-NTSDP2WB.js → chunk-VDWJMWDF.js} +54 -24
  240. package/dist/{chunk-3O3MOK5C.cjs → chunk-VGEV44V2.cjs} +944 -133
  241. package/dist/{chunk-IDFF5J2E.js → chunk-VKBIE6I6.js} +38 -7
  242. package/dist/{chunk-HBZU3RBZ.js → chunk-VRMZO6TB.js} +31 -8
  243. package/dist/chunk-VUGOOGHB.js +400 -0
  244. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  245. package/dist/chunk-WGLBC5AY.cjs +59 -0
  246. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  247. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  248. package/dist/chunk-WRTXCQ3V.cjs +4291 -0
  249. package/dist/chunk-WTB7AFL6.cjs +101 -0
  250. package/dist/{chunk-NDMIPTV4.js → chunk-WZV6UVPY.js} +8 -3
  251. package/dist/chunk-XF2WIKHR.cjs +34 -0
  252. package/dist/{chunk-W7RYQJLO.cjs → chunk-XGMI6IYB.cjs} +46 -15
  253. package/dist/{chunk-NA6WQDYW.js → chunk-XIVFAD2L.js} +918 -107
  254. package/dist/chunk-XV2HXRHX.js +85 -0
  255. package/dist/{chunk-3VTAFAL2.js → chunk-Y3M2DABP.js} +16 -12
  256. package/dist/{chunk-QNGEW5TC.js → chunk-YV63VW4K.js} +1 -1
  257. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  258. package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
  259. package/dist/chunk-YZWE7XSM.js +5 -0
  260. package/dist/{chunk-TUAITHWL.js → chunk-Z3XSSF7B.js} +2 -1
  261. package/dist/{chunk-6UJMCWRY.js → chunk-Z4LIPMPM.js} +6 -0
  262. package/dist/chunk-ZASDSY7P.cjs +114 -0
  263. package/dist/{chunk-R33VKSH5.cjs → chunk-ZHJ7JGME.cjs} +11 -11
  264. package/dist/chunk-ZPD2AO3U.js +866 -0
  265. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  266. package/dist/chunk-ZR46OJNZ.js +152 -0
  267. package/dist/{chunk-7TQH3CL4.cjs → chunk-ZZ63NW7A.cjs} +78 -35
  268. package/dist/clear-33TWQ2ES.cjs +12 -0
  269. package/dist/{clear-A3N4GK2S.js → clear-OFLFQ3MR.js} +3 -3
  270. package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-COB2KTOW.js} +8 -5
  271. package/dist/communityInstaller-TWMGPSYM.cjs +22 -0
  272. package/dist/completion-IIZMHXYP.cjs +17 -0
  273. package/dist/completion-PT4VM2H2.js +17 -0
  274. package/dist/config-KL6WU7R2.cjs +20 -0
  275. package/dist/{config-HPJPKTO6.js → config-R4O7GBTY.js} +6 -4
  276. package/dist/{constants-LISJW3DD.js → constants-HVCHVQAF.js} +1 -1
  277. package/dist/constants-RLMJ5D5P.cjs +21 -0
  278. package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
  279. package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
  280. package/dist/export-3PK3VFCE.js +15 -0
  281. package/dist/export-WLGNWEMJ.cjs +15 -0
  282. package/dist/feedback-G635NCLJ.js +18 -0
  283. package/dist/feedback-LLMK3TZH.cjs +18 -0
  284. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  285. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  286. package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
  287. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  288. package/dist/help-BAXLP2M2.cjs +12 -0
  289. package/dist/{help-GFQXNZOK.js → help-X3OAZ3CY.js} +2 -2
  290. package/dist/history-6HOJSEMT.cjs +14 -0
  291. package/dist/{history-E3N6BJP7.js → history-YKFPHBJN.js} +2 -2
  292. package/dist/hooks-7TA4PIIB.js +18 -0
  293. package/dist/hooks-XVFU67T2.cjs +18 -0
  294. package/dist/{i18n-SY7QRM22.js → i18n-2KBUU7XL.js} +1 -1
  295. package/dist/i18n-MUJMKTFM.cjs +33 -0
  296. package/dist/ide-CCQ33PGC.cjs +15 -0
  297. package/dist/ide-VLVFBZ5F.js +15 -0
  298. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  299. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  300. package/dist/{import-W7SVLSTC.js → import-4CHYLS4K.js} +3 -3
  301. package/dist/{import-ADI37ZUR.cjs → import-I7T4ZHYL.cjs} +3 -3
  302. package/dist/import-J46F54JY.cjs +10 -0
  303. package/dist/{import-KGKKZ3B7.js → import-JWPYKXCZ.js} +2 -2
  304. package/dist/index.cjs +744 -23015
  305. package/dist/index.d.cts +93 -0
  306. package/dist/index.d.ts +93 -0
  307. package/dist/index.js +780 -23051
  308. package/dist/{init-7MFK626E.js → init-262MWZV4.js} +2 -2
  309. package/dist/init-EE5Y7RBL.cjs +10 -0
  310. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  311. package/dist/inkMode-WBNFOSAT.js +7 -0
  312. package/dist/inputPrompt-IIFKCX5Q.cjs +90 -0
  313. package/dist/inputPrompt-YGBHDUEP.js +90 -0
  314. package/dist/language-CVLPB7OV.js +21 -0
  315. package/dist/language-ZTWFHUSV.cjs +21 -0
  316. package/dist/learn-PON7I5QS.js +23 -0
  317. package/dist/learn-XLRSVNA3.cjs +23 -0
  318. package/dist/login-223QTGBG.cjs +26 -0
  319. package/dist/login-6IKTBUBY.js +26 -0
  320. package/dist/logout-RN2AG6SI.js +23 -0
  321. package/dist/logout-U3M4FFX7.cjs +23 -0
  322. package/dist/mcp-5O6PUL4G.js +20 -0
  323. package/dist/mcp-NUQ76QQB.cjs +20 -0
  324. package/dist/{mcp-install-2FEROZTL.js → mcp-install-6XWXLFVY.js} +17 -10
  325. package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-P6DHES7V.cjs} +21 -14
  326. package/dist/memory-CYMDQ2YC.cjs +10 -0
  327. package/dist/{memory-J73WZH2I.js → memory-Q54CESNM.js} +2 -2
  328. package/dist/{model-AES267IN.js → model-6AJ77PJG.js} +2 -2
  329. package/dist/model-IDRCKDML.cjs +10 -0
  330. package/dist/new-7LEWOUF2.cjs +12 -0
  331. package/dist/{new-5CLF3MKH.js → new-ZXHEWC2S.js} +3 -3
  332. package/dist/onboarding-FXX7YHSJ.cjs +35 -0
  333. package/dist/onboarding-JYNMK6NI.js +35 -0
  334. package/dist/permissions-YBNSANIA.cjs +10 -0
  335. package/dist/permissions-YHJMVA6L.js +10 -0
  336. package/dist/plan-XEJMOT55.cjs +13 -0
  337. package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
  338. package/dist/pr-review-CW6J7P62.cjs +9 -0
  339. package/dist/pr-review-YZSBQVT2.js +9 -0
  340. package/dist/quit-B43SJ6E4.cjs +10 -0
  341. package/dist/{quit-XDZYRSPU.js → quit-GWTNHQSP.js} +2 -2
  342. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  343. package/dist/rawMode-GFNLXQPU.js +7 -0
  344. package/dist/{registry-PTHWERKC.js → registry-34GL6BNJ.js} +29 -44
  345. package/dist/{registry-IVT4G2RT.cjs → registry-V24W7YK6.cjs} +65 -80
  346. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  347. package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
  348. package/dist/resume-DYVOQN5L.cjs +16 -0
  349. package/dist/resume-M25UQKOX.js +16 -0
  350. package/dist/review-QHP2KP4Q.js +9 -0
  351. package/dist/review-UWHWQHCB.cjs +9 -0
  352. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  353. package/dist/ripgrep-VHJQQ55W.js +9 -0
  354. package/dist/rpc-NPS3PU4O.cjs +3730 -0
  355. package/dist/rpc-S3DGW6KV.js +3730 -0
  356. package/dist/search-CPX4PWHP.js +20 -0
  357. package/dist/search-VUF3M4N3.cjs +20 -0
  358. package/dist/{sessions-6GWEBMKS.js → sessions-IYAXMK23.js} +2 -2
  359. package/dist/sessions-JODKER5D.cjs +10 -0
  360. package/dist/{settings-BXR6SBJP.js → settings-55BNW6BF.js} +11 -8
  361. package/dist/settings-BKTS7OMC.cjs +33 -0
  362. package/dist/setup-IRC5HQG2.js +29 -0
  363. package/dist/setup-MMQ7TWOP.cjs +29 -0
  364. package/dist/share-6JRQECAH.cjs +17 -0
  365. package/dist/share-YM5MJKMO.js +17 -0
  366. package/dist/{skills-PG542VEB.cjs → skills-GGMZOVIE.cjs} +13 -10
  367. package/dist/skills-LWSOKOSH.cjs +29 -0
  368. package/dist/{skills-ZZCIAS7C.js → skills-MVIZNHT4.js} +12 -9
  369. package/dist/skills-VWOMV3CR.js +29 -0
  370. package/dist/{skills-install-SRC3Z2MS.js → skills-install-QBA5RCV6.js} +21 -70
  371. package/dist/{skills-install-67DOBPJC.cjs → skills-install-VTAMCNNY.cjs} +34 -83
  372. package/dist/skills-new-GPL46YV2.js +18 -0
  373. package/dist/skills-new-L5BEZN5V.cjs +18 -0
  374. package/dist/slashCommands-FBPCIWM5.cjs +95 -0
  375. package/dist/slashCommands-FCWY5DXW.js +95 -0
  376. package/dist/status-3B5SDZPL.js +17 -0
  377. package/dist/status-TTGRF6NC.cjs +17 -0
  378. package/dist/summarizer-DGPHE5IQ.js +17 -0
  379. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  380. package/dist/sync-77CXVVTK.cjs +21 -0
  381. package/dist/{sync-VU2NSJ4O.js → sync-7BILIQHP.js} +3 -3
  382. package/dist/sync-7OKF6636.js +21 -0
  383. package/dist/sync-EH4K5U3N.cjs +40 -0
  384. package/dist/{teammate-SD26GR37.js → teammate-GZQSCIMS.js} +28 -7
  385. package/dist/{teammate-SXRVXNQV.cjs → teammate-J6PHGL23.cjs} +29 -8
  386. package/dist/theme-64BYGJ57.cjs +21 -0
  387. package/dist/theme-YJE6HEON.js +21 -0
  388. package/dist/tools-3PPTTKFV.js +9 -0
  389. package/dist/tools-THIQA7WC.cjs +9 -0
  390. package/dist/ui/questionModal.cjs +8 -5
  391. package/dist/ui/questionModal.js +7 -4
  392. package/dist/undo-PRTEGL2J.cjs +10 -0
  393. package/dist/{undo-OL2EDBRY.js → undo-SZEHLX7X.js} +2 -2
  394. package/dist/web-3BA2WV37.cjs +37 -0
  395. package/dist/web-6FYGBX5K.js +37 -0
  396. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  397. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  398. package/dist/yolo-GF2YD7ZI.js +9 -0
  399. package/dist/yolo-OGDA7HNC.cjs +9 -0
  400. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  401. package/dist/yoloMode-4JOOSU26.js +17 -0
  402. package/package.json +46 -49
  403. package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
  404. package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
  405. package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
  406. package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
  407. package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
  408. package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
  409. package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
  410. package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
  411. package/dist/SessionManager-YBJAZXNO.cjs +0 -10
  412. package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
  413. package/dist/SubAgent-JT4HZHN7.js +0 -11
  414. package/dist/SubAgent-VPNYDWAU.cjs +0 -11
  415. package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
  416. package/dist/about-4DB5KTHW.js +0 -12
  417. package/dist/about-LXAOXZFT.cjs +0 -12
  418. package/dist/actionExecutor-23JB2WUC.js +0 -19
  419. package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
  420. package/dist/add-dir-YC37DMSF.cjs +0 -10
  421. package/dist/agents-YF3BSUU5.js +0 -12
  422. package/dist/agents-ZOUHPMYR.cjs +0 -12
  423. package/dist/agents-new-HSH4GQPG.js +0 -14
  424. package/dist/agents-new-VYUDOCE7.cjs +0 -14
  425. package/dist/autoSkill-X5W52WOE.cjs +0 -20
  426. package/dist/automode-SJGM7VEI.cjs +0 -10
  427. package/dist/chunk-ALYU6VTM.js +0 -105
  428. package/dist/chunk-B53A2NM2.js +0 -2030
  429. package/dist/chunk-BJXSNT46.js +0 -100
  430. package/dist/chunk-CB4E2T5N.cjs +0 -312
  431. package/dist/chunk-DNUOXBHL.js +0 -539
  432. package/dist/chunk-EFX2QSZX.cjs +0 -33
  433. package/dist/chunk-H2ZRHQQV.js +0 -33
  434. package/dist/chunk-HNRPK5MY.cjs +0 -85
  435. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  436. package/dist/chunk-JJLYWH5Y.cjs +0 -100
  437. package/dist/chunk-LWUJFGOZ.js +0 -115
  438. package/dist/chunk-MERYP6AM.cjs +0 -539
  439. package/dist/chunk-MZAPWNAC.cjs +0 -207
  440. package/dist/chunk-PGESAU2W.cjs +0 -2030
  441. package/dist/chunk-SYVYLZZF.cjs +0 -24
  442. package/dist/chunk-SZOLA6FR.js +0 -111
  443. package/dist/chunk-VWDHR4HV.js +0 -168
  444. package/dist/chunk-Y45G6ZO5.cjs +0 -168
  445. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  446. package/dist/chunk-ZYVS43MU.js +0 -312
  447. package/dist/clear-GK4IEUUS.cjs +0 -12
  448. package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
  449. package/dist/completion-HWABSAEL.js +0 -14
  450. package/dist/completion-IUUVQG4D.cjs +0 -14
  451. package/dist/config-HF7WOLZF.cjs +0 -18
  452. package/dist/constants-PEO3P2SJ.cjs +0 -21
  453. package/dist/export-QJAV2FCZ.js +0 -12
  454. package/dist/export-XSRFXGWU.cjs +0 -12
  455. package/dist/feedback-4TCIL3ML.cjs +0 -15
  456. package/dist/feedback-SJ6VVEY3.js +0 -15
  457. package/dist/filesystem-W56QZUJF.cjs +0 -10
  458. package/dist/help-ISBVQL3S.cjs +0 -12
  459. package/dist/history-XQ4GTSFU.cjs +0 -14
  460. package/dist/hooks-CJNKJ5PF.js +0 -13
  461. package/dist/hooks-UTMBTAXT.cjs +0 -13
  462. package/dist/i18n-N7QQ7A5M.cjs +0 -33
  463. package/dist/ide-RTA4UJV4.js +0 -12
  464. package/dist/ide-VWVOLIFF.cjs +0 -12
  465. package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
  466. package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
  467. package/dist/import-ZLJVONXH.cjs +0 -10
  468. package/dist/init-TBKAB4LZ.cjs +0 -10
  469. package/dist/language-MDSHEXHB.cjs +0 -18
  470. package/dist/language-PXTQSHIG.js +0 -18
  471. package/dist/learn-623TW5EK.cjs +0 -20
  472. package/dist/learn-BCPV7GM2.js +0 -20
  473. package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
  474. package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
  475. package/dist/login-QMVEETWJ.js +0 -20
  476. package/dist/login-QYMXAL3K.cjs +0 -20
  477. package/dist/logout-2CMTDAOJ.js +0 -18
  478. package/dist/logout-ZOHVZAUK.cjs +0 -18
  479. package/dist/mcp-IUVKK65S.js +0 -18
  480. package/dist/mcp-TXC7PYG3.cjs +0 -18
  481. package/dist/memory-WRIHDEPK.cjs +0 -10
  482. package/dist/model-RLP75SF5.cjs +0 -10
  483. package/dist/new-HLSFL6A4.cjs +0 -12
  484. package/dist/permissions-GP6FTGZ2.js +0 -13
  485. package/dist/permissions-O6EKKPOG.cjs +0 -13
  486. package/dist/plan-MCAXDIM2.cjs +0 -11
  487. package/dist/quit-TQX6GXA5.cjs +0 -10
  488. package/dist/repeat-BSPS5TWD.cjs +0 -13
  489. package/dist/resume-2GOPDLL4.cjs +0 -13
  490. package/dist/resume-37IUVDA6.js +0 -13
  491. package/dist/search-7KUSHIBL.cjs +0 -17
  492. package/dist/search-OJGDRIMA.js +0 -17
  493. package/dist/sessions-CYYCHSQG.cjs +0 -10
  494. package/dist/settings-2D7CAO66.cjs +0 -30
  495. package/dist/share-BXQY5IQU.js +0 -14
  496. package/dist/share-OSFXZBGS.cjs +0 -14
  497. package/dist/skills-FL6O6AOM.cjs +0 -26
  498. package/dist/skills-PNKQZRNK.js +0 -26
  499. package/dist/skills-new-XFMEHHIF.cjs +0 -15
  500. package/dist/skills-new-ZNZPHUKS.js +0 -15
  501. package/dist/slashCommands-LLCNPK3X.js +0 -76
  502. package/dist/slashCommands-RXZZS6RE.cjs +0 -76
  503. package/dist/status-BCECUJXT.cjs +0 -11
  504. package/dist/status-EFO7MQU3.js +0 -11
  505. package/dist/sync-IJYJ6KKM.js +0 -18
  506. package/dist/sync-LFT6SBPF.cjs +0 -18
  507. package/dist/sync-U7SDPBNZ.cjs +0 -40
  508. package/dist/theme-AWBHSG7J.cjs +0 -18
  509. package/dist/theme-TQLBPJ2E.js +0 -18
  510. package/dist/undo-IBBGP7A2.cjs +0 -10
@@ -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-VWDHR4HV.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-ZYVS43MU.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-B5RT2ECG.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
+ */
@@ -3,7 +3,7 @@ import os from "os";
3
3
  import path from "path";
4
4
  var AUTOHAND_HOME = process.env.AUTOHAND_HOME || path.join(os.homedir(), ".autohand");
5
5
  var AUTOHAND_PATHS = {
6
- /** Configuration files (config.json, config.yaml, config.yml) */
6
+ /** Configuration files (config.toml, config.yaml, config.yml, config.json) */
7
7
  config: AUTOHAND_HOME,
8
8
  /** Session data storage */
9
9
  sessions: path.join(AUTOHAND_HOME, "sessions"),
@@ -33,6 +33,7 @@ var AUTOHAND_PATHS = {
33
33
  var AUTOHAND_FILES = {
34
34
  /** Main config file */
35
35
  configJson: path.join(AUTOHAND_HOME, "config.json"),
36
+ configToml: path.join(AUTOHAND_HOME, "config.toml"),
36
37
  configYaml: path.join(AUTOHAND_HOME, "config.yaml"),
37
38
  configYml: path.join(AUTOHAND_HOME, "config.yml"),
38
39
  /** Device ID for telemetry */
@@ -57,7 +58,9 @@ var AUTH_CONFIG = {
57
58
  },
58
59
  pollInterval: 2e3,
59
60
  authTimeout: 5 * 60 * 1e3,
60
- sessionExpiryDays: 30
61
+ sessionExpiryDays: 30,
62
+ /** Idle timeout in ms before forcing logout (30 minutes) */
63
+ idleTimeoutMs: 30 * 60 * 1e3
61
64
  };
62
65
  var SYNC_CONFIG = {
63
66
  /** Default sync interval in ms (5 minutes) */