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,14 +1,14 @@
1
1
  import {
2
2
  configureSearch,
3
3
  getSearchConfig
4
- } from "./chunk-SAHBLB3E.js";
4
+ } from "./chunk-FP46B4X3.js";
5
5
  import {
6
6
  showModal,
7
7
  showPassword
8
- } from "./chunk-YZXUDM5X.js";
8
+ } from "./chunk-DLP436GI.js";
9
9
  import {
10
10
  saveConfig
11
- } from "./chunk-P47WPOXN.js";
11
+ } from "./chunk-3UT7R3XV.js";
12
12
 
13
13
  // src/commands/search.ts
14
14
  import chalk from "chalk";
@@ -19,12 +19,22 @@ async function search(ctx) {
19
19
  console.log(chalk.gray(`Current provider: ${chalk.cyan(currentConfig.provider)}`));
20
20
  const braveKeySet = !!(currentConfig.braveApiKey || process.env.BRAVE_SEARCH_API_KEY);
21
21
  const parallelKeySet = !!(currentConfig.parallelApiKey || process.env.PARALLEL_API_KEY);
22
+ const exaKeySet = !!(currentConfig.exaApiKey || process.env.EXA_API_KEY);
22
23
  console.log(chalk.gray(`Brave API key: ${braveKeySet ? chalk.green("configured") : chalk.yellow("not set")}`));
23
24
  console.log(chalk.gray(`Parallel API key: ${parallelKeySet ? chalk.green("configured") : chalk.yellow("not set")}`));
25
+ console.log(chalk.gray(`Exa API key: ${exaKeySet ? chalk.green("configured") : chalk.yellow("not set")}`));
24
26
  console.log();
25
27
  const providerOptions = [
26
28
  {
27
- label: `Google ${chalk.gray("(no API key required, recommended default)")}`,
29
+ label: `Browser Profile ${chalk.gray("(uses your Chrome/Brave cookies - no API key)")}`,
30
+ value: "browser-profile"
31
+ },
32
+ {
33
+ label: `Exa.ai ${chalk.gray("(requires API key)")} ${exaKeySet ? chalk.green("\u2713") : ""}`,
34
+ value: "exa"
35
+ },
36
+ {
37
+ label: `Google ${chalk.gray("(no API key required)")}`,
28
38
  value: "google"
29
39
  },
30
40
  {
@@ -53,6 +63,19 @@ async function search(ctx) {
53
63
  const provider = result.value;
54
64
  let braveApiKey = currentConfig.braveApiKey;
55
65
  let parallelApiKey = currentConfig.parallelApiKey;
66
+ let exaApiKey = currentConfig.exaApiKey;
67
+ if (provider === "exa" && !exaKeySet) {
68
+ console.log(chalk.gray("\nGet your Exa.ai API key at: https://exa.ai\n"));
69
+ const apiKey = await showPassword({
70
+ title: "Enter Exa.ai API key:"
71
+ });
72
+ if (apiKey?.trim()) {
73
+ exaApiKey = apiKey.trim();
74
+ } else {
75
+ console.log(chalk.yellow("No API key entered. Exa.ai Search will not work without an API key."));
76
+ return null;
77
+ }
78
+ }
56
79
  if (provider === "brave" && !braveKeySet) {
57
80
  console.log(chalk.gray("\nGet your free Brave Search API key at: https://brave.com/search/api/\n"));
58
81
  const apiKey = await showPassword({
@@ -80,13 +103,15 @@ async function search(ctx) {
80
103
  configureSearch({
81
104
  provider,
82
105
  braveApiKey,
83
- parallelApiKey
106
+ parallelApiKey,
107
+ exaApiKey
84
108
  });
85
109
  if (config) {
86
110
  config.search = {
87
111
  provider,
88
112
  braveApiKey,
89
- parallelApiKey
113
+ parallelApiKey,
114
+ exaApiKey
90
115
  };
91
116
  await saveConfig(config);
92
117
  console.log(chalk.green(`
@@ -96,6 +121,12 @@ async function search(ctx) {
96
121
  \u2713 Search provider set to ${provider} (session only)`));
97
122
  }
98
123
  switch (provider) {
124
+ case "browser-profile":
125
+ console.log(chalk.gray("Browser Profile Search is now active. Uses your Chrome/Brave cookies for better results."));
126
+ break;
127
+ case "exa":
128
+ console.log(chalk.gray("Exa.ai Search is now active with neural search capabilities."));
129
+ break;
99
130
  case "google":
100
131
  console.log(chalk.gray("Google Search is now active. No API key required."));
101
132
  break;
@@ -116,7 +147,7 @@ async function search(ctx) {
116
147
  }
117
148
  var metadata = {
118
149
  command: "/search",
119
- description: "configure web search provider (google, brave, duckduckgo, parallel)",
150
+ description: "configure web search provider (browser-profile, exa, google, brave, duckduckgo, parallel)",
120
151
  implemented: true
121
152
  };
122
153
 
@@ -1,19 +1,20 @@
1
1
  import {
2
2
  package_default
3
- } from "./chunk-T73IDKDF.js";
3
+ } from "./chunk-3PXKRVCW.js";
4
4
  import {
5
5
  showConfirm,
6
6
  showModal
7
- } from "./chunk-YZXUDM5X.js";
7
+ } from "./chunk-DLP436GI.js";
8
8
  import {
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/share.ts
16
16
  import chalk from "chalk";
17
+ import { spawnSync } from "child_process";
17
18
  import ora from "ora";
18
19
 
19
20
  // src/share/costEstimator.ts
@@ -159,8 +160,8 @@ function serializeSession(session, options) {
159
160
  };
160
161
  let usage;
161
162
  if (options.totalTokens && options.totalTokens > 0) {
162
- const inputTokens = Math.floor(options.totalTokens * 0.3);
163
- const outputTokens = options.totalTokens - inputTokens;
163
+ const inputTokens = options.inputTokens && options.inputTokens > 0 ? options.inputTokens : Math.floor(options.totalTokens * 0.3);
164
+ const outputTokens = options.outputTokens && options.outputTokens > 0 ? options.outputTokens : options.totalTokens - inputTokens;
164
165
  usage = {
165
166
  totalTokens: options.totalTokens,
166
167
  inputTokens,
@@ -218,8 +219,11 @@ var DEFAULT_CONFIG = {
218
219
  cliVersion: package_default.version
219
220
  };
220
221
  var ShareApiClient = class {
222
+ config;
223
+ queuePath;
224
+ deviceIdPath;
225
+ deviceId = null;
221
226
  constructor(configOverrides) {
222
- this.deviceId = null;
223
227
  this.config = { ...DEFAULT_CONFIG, ...configOverrides };
224
228
  const dataDir = path.join(AUTOHAND_PATHS.config, "share");
225
229
  this.queuePath = path.join(dataDir, "queue.json");
@@ -515,6 +519,21 @@ async function execute(_args, context) {
515
519
  console.log(chalk.gray("Cancelled."));
516
520
  return;
517
521
  }
522
+ let gitDiffContent;
523
+ try {
524
+ const result = spawnSync("git", ["diff", "HEAD"], {
525
+ cwd: context.workspaceRoot,
526
+ encoding: "utf8",
527
+ timeout: 1e4
528
+ });
529
+ if (result.status === 0 && result.stdout.trim()) {
530
+ gitDiffContent = result.stdout;
531
+ }
532
+ } catch {
533
+ }
534
+ const userId = context.config?.auth?.user?.id;
535
+ const inputTokens = context.getInputTokensUsed?.() ?? 0;
536
+ const outputTokens = context.getOutputTokensUsed?.() ?? 0;
518
537
  console.log();
519
538
  const spinner = ora(t("commands.share.generating")).start();
520
539
  try {
@@ -522,8 +541,12 @@ async function execute(_args, context) {
522
541
  model: context.model,
523
542
  provider: context.provider,
524
543
  totalTokens,
544
+ inputTokens,
545
+ outputTokens,
525
546
  visibility,
526
- deviceId
547
+ deviceId,
548
+ gitDiff: gitDiffContent,
549
+ userId
527
550
  });
528
551
  const response = await client.createShare(payload);
529
552
  spinner.stop();
@@ -0,0 +1,400 @@
1
+ // src/ui/shellCommand.ts
2
+ import { execSync, spawn } from "child_process";
3
+ import { readdirSync } from "fs";
4
+ import path from "path";
5
+ var DEFAULT_SHELL_TIMEOUT = 3e4;
6
+ var SHELL_HOT_TIP_SUGGESTIONS = [
7
+ "git status",
8
+ "ls -la",
9
+ "bun test",
10
+ "bun run lint"
11
+ ];
12
+ var SHELL_COMMAND_CANDIDATES = [
13
+ "git",
14
+ "bun",
15
+ "npm",
16
+ "pnpm",
17
+ "yarn",
18
+ "node",
19
+ "python",
20
+ "python3",
21
+ "ls",
22
+ "cd",
23
+ "mkdir",
24
+ "cat",
25
+ "rg",
26
+ "grep",
27
+ "find",
28
+ "touch",
29
+ "cp",
30
+ "mv",
31
+ "rm",
32
+ "pwd"
33
+ ];
34
+ var COMMAND_TEMPLATE_MAP = {
35
+ git: ["git status", "git diff", "git log --oneline -5"],
36
+ bun: ["bun test", "bun run lint", "bun run build"],
37
+ npm: ["npm test", "npm run lint", "npm run build"],
38
+ pnpm: ["pnpm test", "pnpm lint", "pnpm build"],
39
+ yarn: ["yarn test", "yarn lint", "yarn build"],
40
+ ls: ["ls -la"],
41
+ cd: ["cd ./", "cd .."],
42
+ mkdir: ["mkdir -p "],
43
+ rg: ['rg "TODO" src']
44
+ };
45
+ var PATH_COMPLETION_COMMANDS = /* @__PURE__ */ new Set([
46
+ "cd",
47
+ "mkdir",
48
+ "ls",
49
+ "cat",
50
+ "rm",
51
+ "cp",
52
+ "mv",
53
+ "touch"
54
+ ]);
55
+ var DIRECTORY_ONLY_PATH_COMMANDS = /* @__PURE__ */ new Set(["cd"]);
56
+ var DIR_ENTRIES_CACHE_TTL_MS = 750;
57
+ var dirEntriesCache = /* @__PURE__ */ new Map();
58
+ function unescapeShellSpaces(value) {
59
+ return value.replace(/\\ /g, " ");
60
+ }
61
+ function escapeShellSpaces(value) {
62
+ return value.replace(/ /g, "\\ ");
63
+ }
64
+ function unique(items) {
65
+ return Array.from(new Set(items));
66
+ }
67
+ function getCachedDirectoryEntries(absDir) {
68
+ const now = Date.now();
69
+ const cached = dirEntriesCache.get(absDir);
70
+ if (cached && cached.expiresAt > now) {
71
+ return cached.entries;
72
+ }
73
+ try {
74
+ const entries = readdirSync(absDir, { withFileTypes: true });
75
+ dirEntriesCache.set(absDir, {
76
+ expiresAt: now + DIR_ENTRIES_CACHE_TTL_MS,
77
+ entries
78
+ });
79
+ return entries;
80
+ } catch {
81
+ return [];
82
+ }
83
+ }
84
+ function completePathToken(rawToken, options = {}) {
85
+ const cwd = options.cwd ?? process.cwd();
86
+ const unescapedToken = unescapeShellSpaces(rawToken);
87
+ const lastSlash = unescapedToken.lastIndexOf("/");
88
+ const dirPart = lastSlash >= 0 ? unescapedToken.slice(0, lastSlash + 1) : "";
89
+ const namePrefix = lastSlash >= 0 ? unescapedToken.slice(lastSlash + 1) : unescapedToken;
90
+ const directoriesOnly = options.directoriesOnly === true;
91
+ const searchDirAbs = unescapedToken.startsWith("/") ? path.resolve(dirPart || "/") : path.resolve(cwd, dirPart || ".");
92
+ const matches = getCachedDirectoryEntries(searchDirAbs).filter((entry) => !directoriesOnly || entry.isDirectory()).filter((entry) => entry.name.startsWith(namePrefix)).sort((a, b) => {
93
+ if (a.isDirectory() !== b.isDirectory()) {
94
+ return a.isDirectory() ? -1 : 1;
95
+ }
96
+ return a.name.localeCompare(b.name);
97
+ });
98
+ return matches.map((entry) => {
99
+ const suffix = entry.isDirectory() ? "/" : "";
100
+ const completed = `${dirPart}${entry.name}${suffix}`;
101
+ return escapeShellSpaces(completed);
102
+ });
103
+ }
104
+ function parseBangInput(line) {
105
+ const withoutLeading = line.trimStart();
106
+ if (!withoutLeading.startsWith("!")) {
107
+ return null;
108
+ }
109
+ const commandBody = withoutLeading.slice(1).trimStart();
110
+ return {
111
+ commandBody,
112
+ hasTrailingSpace: /\s$/.test(line)
113
+ };
114
+ }
115
+ function buildCommandNameSuggestions(commandPrefix) {
116
+ const prefix = commandPrefix.toLowerCase();
117
+ const matches = SHELL_COMMAND_CANDIDATES.filter((candidate) => candidate.startsWith(prefix));
118
+ const exact = SHELL_COMMAND_CANDIDATES.find((candidate) => candidate === prefix);
119
+ const suggestions = [];
120
+ if (exact) {
121
+ const templates = COMMAND_TEMPLATE_MAP[exact] ?? [];
122
+ suggestions.push(...templates.map((template) => `! ${template}`));
123
+ }
124
+ for (const candidate of matches) {
125
+ suggestions.push(`! ${candidate} `);
126
+ }
127
+ return unique(suggestions);
128
+ }
129
+ function buildPathSuggestions(commandName, args, hasTrailingSpace, options = {}) {
130
+ const normalizedCommand = commandName.toLowerCase();
131
+ if (!PATH_COMPLETION_COMMANDS.has(normalizedCommand)) {
132
+ return [];
133
+ }
134
+ if (!hasTrailingSpace && args.length > 0 && args[args.length - 1]?.startsWith("-")) {
135
+ return [];
136
+ }
137
+ const targetIndex = hasTrailingSpace ? args.length : Math.max(0, args.length - 1);
138
+ const rawToken = hasTrailingSpace ? "" : args[targetIndex] ?? "";
139
+ const completedTokens = completePathToken(rawToken, {
140
+ ...options,
141
+ directoriesOnly: DIRECTORY_ONLY_PATH_COMMANDS.has(normalizedCommand)
142
+ });
143
+ const result = [];
144
+ for (const token of completedTokens) {
145
+ const nextArgs = [...args];
146
+ if (hasTrailingSpace) {
147
+ nextArgs.push(token);
148
+ } else {
149
+ nextArgs[targetIndex] = token;
150
+ }
151
+ const suggestion = `! ${commandName}${nextArgs.length > 0 ? ` ${nextArgs.join(" ")}` : ""}`;
152
+ result.push(token.endsWith("/") ? suggestion : `${suggestion} `);
153
+ }
154
+ return result;
155
+ }
156
+ function getShellCommandSuggestions(line, options = {}) {
157
+ const parsed = parseBangInput(line);
158
+ if (!parsed) {
159
+ return [];
160
+ }
161
+ const { commandBody, hasTrailingSpace } = parsed;
162
+ const limit = Math.max(1, options.limit ?? 5);
163
+ if (!commandBody) {
164
+ return SHELL_HOT_TIP_SUGGESTIONS.slice(0, limit).map((value) => `! ${value}`);
165
+ }
166
+ const tokens = commandBody.split(/\s+/).filter(Boolean);
167
+ if (tokens.length === 0) {
168
+ return SHELL_HOT_TIP_SUGGESTIONS.slice(0, limit).map((value) => `! ${value}`);
169
+ }
170
+ const commandName = tokens[0];
171
+ const args = tokens.slice(1);
172
+ const commandNameSuggestions = !hasTrailingSpace && tokens.length === 1 ? buildCommandNameSuggestions(commandName) : [];
173
+ const pathSuggestions = buildPathSuggestions(commandName, args, hasTrailingSpace, options);
174
+ const templates = (COMMAND_TEMPLATE_MAP[commandName.toLowerCase()] ?? []).map((value) => `! ${value}`);
175
+ const hotTips = SHELL_HOT_TIP_SUGGESTIONS.map((value) => `! ${value}`);
176
+ return unique([
177
+ ...pathSuggestions,
178
+ ...commandNameSuggestions,
179
+ ...templates,
180
+ ...hotTips
181
+ ]).slice(0, limit);
182
+ }
183
+ function getPrimaryShellCommandSuggestion(line, options = {}) {
184
+ const [first] = getShellCommandSuggestions(line, { ...options, limit: 1 });
185
+ return first ?? null;
186
+ }
187
+ async function defaultNodePtyLoader() {
188
+ try {
189
+ return await import("node-pty");
190
+ } catch {
191
+ return null;
192
+ }
193
+ }
194
+ var nodePtyLoader = defaultNodePtyLoader;
195
+ function isShellCommand(input) {
196
+ const trimmed = input.trim();
197
+ if (!trimmed.startsWith("!")) {
198
+ return false;
199
+ }
200
+ const command = trimmed.slice(1).trim();
201
+ return command.length > 0;
202
+ }
203
+ function parseShellCommand(input) {
204
+ if (!input.trim().startsWith("!")) {
205
+ return "";
206
+ }
207
+ return input.trim().slice(1).trim();
208
+ }
209
+ function isImmediateCommand(input) {
210
+ const trimmed = input.trim();
211
+ if (!trimmed) return false;
212
+ if (isShellCommand(trimmed)) return true;
213
+ if (trimmed.startsWith("/")) {
214
+ const command = trimmed.slice(1).trim();
215
+ if (command.length === 0) return false;
216
+ const firstToken = trimmed.split(/\s+/, 1)[0] ?? "";
217
+ const hasNestedSlashes = (firstToken.match(/\//g) || []).length > 1;
218
+ const isCommonPathPrefix = /^\/(?:Users|home|tmp|var|opt|etc|usr)\//i.test(firstToken);
219
+ const looksLikeFile = /\.[a-z0-9]{1,5}$/i.test(firstToken);
220
+ if (hasNestedSlashes || isCommonPathPrefix || looksLikeFile) {
221
+ return false;
222
+ }
223
+ return true;
224
+ }
225
+ return false;
226
+ }
227
+ async function executeShellCommandAsync(command, cwd, timeout = DEFAULT_SHELL_TIMEOUT, options = {}) {
228
+ const trimmedCommand = command.trim();
229
+ return new Promise((resolve) => {
230
+ let stdout = "";
231
+ let stderr = "";
232
+ let resolved = false;
233
+ let timedOut = false;
234
+ let timeoutId;
235
+ const finish = (result) => {
236
+ if (resolved) {
237
+ return;
238
+ }
239
+ resolved = true;
240
+ if (timeoutId) {
241
+ clearTimeout(timeoutId);
242
+ }
243
+ resolve(result);
244
+ };
245
+ let child;
246
+ try {
247
+ child = spawn(trimmedCommand, {
248
+ cwd: cwd ?? process.cwd(),
249
+ shell: true,
250
+ stdio: ["ignore", "pipe", "pipe"]
251
+ });
252
+ } catch (error) {
253
+ const execError = error;
254
+ finish({
255
+ success: false,
256
+ error: execError.stderr?.toString() || execError.message || "Unknown error"
257
+ });
258
+ return;
259
+ }
260
+ if (timeout > 0) {
261
+ timeoutId = setTimeout(() => {
262
+ timedOut = true;
263
+ child.kill("SIGTERM");
264
+ }, timeout);
265
+ }
266
+ child.stdout?.on("data", (chunk) => {
267
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
268
+ stdout += text;
269
+ options.onStdout?.(text);
270
+ });
271
+ child.stderr?.on("data", (chunk) => {
272
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
273
+ stderr += text;
274
+ options.onStderr?.(text);
275
+ });
276
+ child.once("error", (error) => {
277
+ finish({
278
+ success: false,
279
+ error: stderr || error.stderr?.toString() || error.message || "Unknown error"
280
+ });
281
+ });
282
+ child.once("close", (code, signal) => {
283
+ if (code === 0) {
284
+ finish({
285
+ success: true,
286
+ output: stdout
287
+ });
288
+ return;
289
+ }
290
+ const errorMessage = timedOut ? `Command timed out after ${timeout}ms` : stderr || (signal ? `Command terminated by ${signal}` : `Command failed with exit code ${code ?? "unknown"}`);
291
+ finish({
292
+ success: false,
293
+ error: errorMessage
294
+ });
295
+ });
296
+ });
297
+ }
298
+ async function loadNodePty() {
299
+ return nodePtyLoader();
300
+ }
301
+ function getPtyShellLaunch(command) {
302
+ if (process.platform === "win32") {
303
+ const comspec = process.env.ComSpec || "cmd.exe";
304
+ return {
305
+ file: comspec,
306
+ args: ["/d", "/s", "/c", command]
307
+ };
308
+ }
309
+ const shell = process.env.SHELL || "/bin/sh";
310
+ return {
311
+ file: shell,
312
+ args: ["-lc", command]
313
+ };
314
+ }
315
+ async function executeStreamingShellCommand(command, cwd, options = {}) {
316
+ const trimmedCommand = command.trim();
317
+ if (options.background) {
318
+ return new Promise((resolve) => {
319
+ let child;
320
+ try {
321
+ child = spawn(trimmedCommand, {
322
+ cwd: cwd ?? process.cwd(),
323
+ shell: true,
324
+ detached: true,
325
+ stdio: ["ignore", "pipe", "pipe"]
326
+ });
327
+ } catch (error) {
328
+ const execError = error;
329
+ resolve({
330
+ success: false,
331
+ error: execError.message || "Unknown error"
332
+ });
333
+ return;
334
+ }
335
+ child.unref();
336
+ resolve({
337
+ success: true,
338
+ output: "",
339
+ backgroundPid: child.pid
340
+ });
341
+ });
342
+ }
343
+ const shouldUsePty = options.preferPty === true && process.stdin.isTTY && process.stdout.isTTY;
344
+ if (!shouldUsePty) {
345
+ return executeShellCommandAsync(trimmedCommand, cwd, DEFAULT_SHELL_TIMEOUT, options);
346
+ }
347
+ const nodePty = await loadNodePty();
348
+ if (!nodePty) {
349
+ return executeShellCommandAsync(trimmedCommand, cwd, DEFAULT_SHELL_TIMEOUT, options);
350
+ }
351
+ return new Promise((resolve) => {
352
+ const { file, args } = getPtyShellLaunch(trimmedCommand);
353
+ const ptyProcess = nodePty.spawn(file, args, {
354
+ name: process.env.TERM || "xterm-256color",
355
+ cols: Math.max(20, options.columns ?? process.stdout.columns ?? 80),
356
+ rows: Math.max(10, options.rows ?? process.stdout.rows ?? 24),
357
+ cwd: cwd ?? process.cwd(),
358
+ env: {
359
+ ...process.env,
360
+ AUTOHAND_CLI: "1"
361
+ }
362
+ });
363
+ let output = "";
364
+ const dataDisposable = ptyProcess.onData((data) => {
365
+ output += data;
366
+ options.onStdout?.(data);
367
+ });
368
+ const exitDisposable = ptyProcess.onExit((event) => {
369
+ dataDisposable.dispose();
370
+ exitDisposable.dispose();
371
+ const normalized = output.replace(/\r\n/g, "\n");
372
+ if (event.exitCode === 0) {
373
+ resolve({
374
+ success: true,
375
+ output: normalized
376
+ });
377
+ return;
378
+ }
379
+ resolve({
380
+ success: false,
381
+ error: normalized || `Command failed with exit code ${event.exitCode}`
382
+ });
383
+ });
384
+ });
385
+ }
386
+
387
+ export {
388
+ getShellCommandSuggestions,
389
+ getPrimaryShellCommandSuggestion,
390
+ isShellCommand,
391
+ parseShellCommand,
392
+ isImmediateCommand,
393
+ executeShellCommandAsync,
394
+ executeStreamingShellCommand
395
+ };
396
+ /**
397
+ * @license
398
+ * Copyright 2025 Autohand AI LLC
399
+ * SPDX-License-Identifier: Apache-2.0
400
+ */