autohand-cli 0.9.1 → 0.9.2

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 (432) hide show
  1. package/README.md +103 -79
  2. package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
  3. package/dist/AgentRegistry-JBXZUPML.js +18 -0
  4. package/dist/{CommunitySkillsCache-ZACDPD4J.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
  5. package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
  6. package/dist/{HookManager-2S6AHOC3.js → HookManager-BELBPQQI.js} +1 -1
  7. package/dist/{HookManager-TVEQI5ZU.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
  8. package/dist/{ImportWizard-AF2XL6DS.cjs → ImportWizard-U6CIJREW.cjs} +12 -12
  9. package/dist/{ImportWizard-AEBMAKXE.js → ImportWizard-VJFSWSUQ.js} +3 -3
  10. package/dist/LearnAdvisor-LAURA3IB.cjs +9 -0
  11. package/dist/LearnAdvisor-RFOBXFG7.js +9 -0
  12. package/dist/MemoryManager-3A2VRPF2.js +9 -0
  13. package/dist/MemoryManager-UOEQZIDC.cjs +9 -0
  14. package/dist/{NVIDIAProvider-SJPY3ONR.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
  15. package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
  16. package/dist/{PermissionManager-MT7KBNNR.js → PermissionManager-N2LDSOYF.js} +3 -3
  17. package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
  18. package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
  19. package/dist/{ProviderFactory-RB4RVAF6.js → ProviderFactory-XUT6BSGB.js} +4 -3
  20. package/dist/SessionManager-LGPQIA57.cjs +10 -0
  21. package/dist/{SessionManager-554PHVPC.js → SessionManager-OR4KDDDS.js} +2 -2
  22. package/dist/{SkillsRegistry-NHHMIUYJ.js → SkillsRegistry-IL3GWROU.js} +2 -2
  23. package/dist/SkillsRegistry-PM34DQNA.cjs +9 -0
  24. package/dist/SubAgent-2WG4QQB5.cjs +13 -0
  25. package/dist/SubAgent-ICGN23TQ.js +13 -0
  26. package/dist/{about-3USFSGOH.js → about-OYVGQMJJ.js} +3 -3
  27. package/dist/{about-QR52U5DD.cjs → about-U2BH7HDR.cjs} +4 -4
  28. package/dist/{acp-5Y2W6OZP.js → acp-JWHGXZL5.js} +169 -103
  29. package/dist/{acp-GSYE75OB.cjs → acp-S37JOBCS.cjs} +184 -118
  30. package/dist/{actionExecutor-KHUU3Z3Q.cjs → actionExecutor-2QEPMELQ.cjs} +13 -13
  31. package/dist/{actionExecutor-PLQJZLZV.js → actionExecutor-6NCCORRB.js} +12 -12
  32. package/dist/add-dir-KFUHSIR2.cjs +11 -0
  33. package/dist/{add-dir-HCERJDBR.js → add-dir-MM2BM2Z2.js} +2 -2
  34. package/dist/agent-DUIYLIVN.js +132 -0
  35. package/dist/agent-YYEHGDAK.cjs +132 -0
  36. package/dist/agents-GBGG4CW7.cjs +19 -0
  37. package/dist/agents-ZH34C72F.js +19 -0
  38. package/dist/agents-new-ERXLS7SB.cjs +17 -0
  39. package/dist/{agents-new-7GAQ25EK.js → agents-new-EVTGPTA4.js} +6 -6
  40. package/dist/{autoSkill-66PKCYTW.js → autoSkill-HEWKJ5JV.js} +2 -2
  41. package/dist/autoSkill-YL6PN6AV.cjs +20 -0
  42. package/dist/automode-4BJ7FNPL.cjs +10 -0
  43. package/dist/{automode-BUF3VGXU.js → automode-S4U7A7Q2.js} +2 -2
  44. package/dist/chrome-45ZXHL5N.cjs +22 -0
  45. package/dist/{chrome-Y3T7EIHG.js → chrome-BBSRVG6S.js} +2 -2
  46. package/dist/chrome-IFVZRHAT.cjs +50 -0
  47. package/dist/chrome-MYE6DNA2.js +22 -0
  48. package/dist/{chunk-45CHNQM6.cjs → chunk-24CEJYEG.cjs} +93 -31
  49. package/dist/{chunk-6JWCGQJU.cjs → chunk-255GIVM2.cjs} +6 -6
  50. package/dist/{chunk-D546G7DA.cjs → chunk-2BDSR2OW.cjs} +98 -75
  51. package/dist/{chunk-PGFLPURU.js → chunk-2BPIR7LA.js} +121 -4
  52. package/dist/{chunk-AOKXYGBQ.cjs → chunk-2NY7OHBF.cjs} +41 -26
  53. package/dist/chunk-2WUNHTXL.js +303 -0
  54. package/dist/{chunk-PQBYFEBL.cjs → chunk-34B6ZO6W.cjs} +124 -7
  55. package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
  56. package/dist/{chunk-3UC6DMFI.cjs → chunk-3CAXECWJ.cjs} +15 -15
  57. package/dist/{chunk-YWH55BWK.cjs → chunk-3CBYUBZC.cjs} +6 -9
  58. package/dist/chunk-3DF3GZQ7.js +277 -0
  59. package/dist/{chunk-KASXKDF2.cjs → chunk-3JURXAL6.cjs} +58 -7
  60. package/dist/{chunk-JV5HVCHU.cjs → chunk-3KWAP2Y3.cjs} +88 -9
  61. package/dist/{chunk-WPE2XHVX.js → chunk-3MCK6UBL.js} +1 -1
  62. package/dist/{chunk-U2QUMKCB.js → chunk-3TH7IK4M.js} +62 -9
  63. package/dist/{chunk-YXM6SA7P.js → chunk-3V77OB3W.js} +3 -3
  64. package/dist/{chunk-MZN6JBRZ.cjs → chunk-3Y5UEK7K.cjs} +4 -4
  65. package/dist/{chunk-BP37FVBM.js → chunk-4GPPSBEZ.js} +3 -3
  66. package/dist/{chunk-4XVLNOFA.js → chunk-5CMBAJ6K.js} +20 -3
  67. package/dist/{chunk-PNIAIOMZ.cjs → chunk-5YRXFBYZ.cjs} +35 -6
  68. package/dist/chunk-6AC2TT26.js +156 -0
  69. package/dist/{chunk-PSAH4ZQB.cjs → chunk-6EIQ6A6U.cjs} +2 -2
  70. package/dist/{chunk-YQDI753V.js → chunk-6HSEDXVF.js} +4 -4
  71. package/dist/{chunk-O5GI6SR3.js → chunk-6NUXK62F.js} +1 -1
  72. package/dist/{chunk-HVCIB4SW.cjs → chunk-6TGCAPYH.cjs} +62 -9
  73. package/dist/{chunk-HZWU6IO3.js → chunk-6W3SZCSP.js} +2 -5
  74. package/dist/{chunk-Q3BS6FPM.js → chunk-73LV3DDZ.js} +4 -4
  75. package/dist/{chunk-ZNGRLCFQ.js → chunk-7BGGLIQF.js} +83 -1
  76. package/dist/{chunk-ZNYZB7XY.cjs → chunk-7EEK7CRR.cjs} +83 -1
  77. package/dist/{chunk-HK5A54AV.cjs → chunk-7TO3PDMV.cjs} +48 -4
  78. package/dist/chunk-7UU22RSH.cjs +277 -0
  79. package/dist/{chunk-XNIMSVS6.cjs → chunk-A3GAM6FM.cjs} +11 -11
  80. package/dist/{chunk-W5QLA6WP.cjs → chunk-A7DJU75T.cjs} +8 -8
  81. package/dist/{chunk-7XTUL7ZD.cjs → chunk-AAAO4ERQ.cjs} +9 -9
  82. package/dist/{chunk-M5DK524Z.js → chunk-AAJLMP57.js} +2 -2
  83. package/dist/chunk-ABR756QN.js +529 -0
  84. package/dist/{chunk-OIGYWOL6.js → chunk-APFGDIPD.js} +3 -1
  85. package/dist/{chunk-PTTZI4QZ.js → chunk-APQYRMYL.js} +4 -4
  86. package/dist/{chunk-CO2AADYU.cjs → chunk-AZKOIF2G.cjs} +55 -17
  87. package/dist/{chunk-P6SLT2F4.cjs → chunk-AZLHUPNC.cjs} +2 -2
  88. package/dist/chunk-B55VCYSQ.cjs +30 -0
  89. package/dist/{chunk-JMJRFSNJ.js → chunk-BLQUMSM3.js} +1 -1
  90. package/dist/{chunk-MGNXABSU.cjs → chunk-BXKPX6K4.cjs} +9 -9
  91. package/dist/{chunk-MQQH4XQH.cjs → chunk-C66FN2LP.cjs} +4 -4
  92. package/dist/{chunk-CECH6QQP.js → chunk-CH7KUFAS.js} +10 -10
  93. package/dist/{chunk-PIXQ2AVM.cjs → chunk-CILSXOPI.cjs} +17 -17
  94. package/dist/{chunk-IEPLQ47J.js → chunk-CM24K6ZT.js} +89 -12
  95. package/dist/chunk-CMEZ42F2.cjs +303 -0
  96. package/dist/{chunk-X5P6QQOB.cjs → chunk-CNQKIWIS.cjs} +100 -23
  97. package/dist/{chunk-AQ5PVHOC.cjs → chunk-CSUGNNJY.cjs} +4 -3
  98. package/dist/{chunk-QRQF3556.js → chunk-D6HB3H3L.js} +25 -10
  99. package/dist/{chunk-XZVDYC5U.js → chunk-D7AYKVKW.js} +2 -2
  100. package/dist/{chunk-3UHRCHKB.cjs → chunk-DLCXWOWT.cjs} +23 -23
  101. package/dist/{chunk-CK4HAHVY.cjs → chunk-DMM2BKSV.cjs} +118 -25
  102. package/dist/{chunk-SPQ7QIQ6.js → chunk-DW3DPV77.js} +1 -1
  103. package/dist/chunk-ECQD2QC3.cjs +33 -0
  104. package/dist/{chunk-SNDDZG5H.js → chunk-EEYOS3UC.js} +90 -70
  105. package/dist/{chunk-DGBPWODD.js → chunk-EF2EN5CR.js} +2 -2
  106. package/dist/{chunk-M7B7RRBK.cjs → chunk-EFXFURDY.cjs} +138 -51
  107. package/dist/chunk-EK34UZPB.cjs +40 -0
  108. package/dist/{chunk-CRTCZ4WL.cjs → chunk-FJR6EZLO.cjs} +3834 -2337
  109. package/dist/{chunk-TYBPTKFT.js → chunk-FPO7YNPQ.js} +1 -1
  110. package/dist/{chunk-X3TI5TJJ.js → chunk-FS4I6BNR.js} +1 -1
  111. package/dist/{chunk-WNJXIACY.js → chunk-FSJ2MNOC.js} +3 -3
  112. package/dist/{chunk-44ZWOBTI.js → chunk-GEHZMC4G.js} +12 -9
  113. package/dist/{chunk-Y5BDE24P.cjs → chunk-GO6C2RAR.cjs} +3 -0
  114. package/dist/{chunk-XW3XCK4E.cjs → chunk-GSMR6V36.cjs} +4 -4
  115. package/dist/{chunk-H426KOGY.js → chunk-GSZWATME.js} +1 -1
  116. package/dist/{chunk-S5JNQIGL.cjs → chunk-GYLGCR6F.cjs} +5 -5
  117. package/dist/{chunk-ONVYXTUT.cjs → chunk-H3OOWNYQ.cjs} +3 -3
  118. package/dist/{chunk-V5ELP2XE.js → chunk-H65446XW.js} +110 -15
  119. package/dist/{chunk-LANGD5CO.js → chunk-H7HXRRHK.js} +45 -1
  120. package/dist/{chunk-RBXBH6EB.cjs → chunk-HN2JTDN5.cjs} +17 -17
  121. package/dist/{chunk-SOVR7S3T.cjs → chunk-HNXUZ5OY.cjs} +2 -2
  122. package/dist/{chunk-AZ47LKD5.cjs → chunk-HOYT3E65.cjs} +3 -3
  123. package/dist/{chunk-P4FUTSVK.js → chunk-HTPY5ESD.js} +3 -3
  124. package/dist/{chunk-5SFV2NCY.cjs → chunk-HVLWH2AF.cjs} +10 -10
  125. package/dist/{chunk-VQHSYAPZ.cjs → chunk-HZTEU4W5.cjs} +62 -93
  126. package/dist/{chunk-4XFHP2SN.cjs → chunk-I5T7LPFP.cjs} +7 -7
  127. package/dist/{chunk-ZPLCAXJW.js → chunk-IB5CJXE7.js} +7 -7
  128. package/dist/{chunk-KM7R5YPS.cjs → chunk-INNXFLDR.cjs} +9 -6
  129. package/dist/{chunk-2ESQR35E.cjs → chunk-JFLEP3T7.cjs} +10 -10
  130. package/dist/chunk-JJGDOBFL.js +40 -0
  131. package/dist/{chunk-5A7ZL64N.js → chunk-JSU46T6K.js} +1 -1
  132. package/dist/{chunk-NB6M6ESM.js → chunk-K6WN6BT4.js} +1 -1
  133. package/dist/{chunk-QQ64HEHP.cjs → chunk-KIQH3SMT.cjs} +34 -31
  134. package/dist/{chunk-MANJ67D3.js → chunk-KPRXHIE2.js} +52 -83
  135. package/dist/{chunk-6HF6XSCC.js → chunk-LIO3RX2Z.js} +2 -2
  136. package/dist/{chunk-NZ3ZWLUW.js → chunk-LOSXLH7P.js} +109 -16
  137. package/dist/{chunk-NZ7GCK7Y.cjs → chunk-LSOR72PB.cjs} +23 -23
  138. package/dist/{chunk-6AYJCDTA.js → chunk-MA3AVDCC.js} +47 -9
  139. package/dist/{chunk-PZZMIYII.js → chunk-ME3S2WIR.js} +3 -3
  140. package/dist/{chunk-2IW5YFJ4.js → chunk-NC2I2M4P.js} +4 -4
  141. package/dist/{chunk-AE2ILW25.cjs → chunk-NC4A4LVC.cjs} +13 -13
  142. package/dist/{chunk-EEHWALXA.js → chunk-NGEK5FCJ.js} +85 -3
  143. package/dist/{chunk-MMKZSJUN.js → chunk-NKW6CHXQ.js} +1 -1
  144. package/dist/{chunk-JB3JCYBJ.js → chunk-NOWCRKP2.js} +4 -3
  145. package/dist/{chunk-3ZOOH44N.js → chunk-NUB2LMB6.js} +2 -2
  146. package/dist/chunk-O246MKIW.cjs +267 -0
  147. package/dist/{chunk-SRMGWMQO.js → chunk-OGFWL2PS.js} +1 -1
  148. package/dist/{chunk-YISPVAXO.cjs → chunk-ONNGAR6W.cjs} +340 -597
  149. package/dist/{chunk-7WAUCLLQ.js → chunk-OOFR6A62.js} +33 -4
  150. package/dist/{chunk-4E7SHPNQ.js → chunk-OZ7FHO7J.js} +2 -2
  151. package/dist/{chunk-NV6LCD2I.cjs → chunk-P5EWGUI2.cjs} +109 -27
  152. package/dist/{chunk-YC5OBZQU.js → chunk-P6BQJPAI.js} +41 -18
  153. package/dist/{chunk-SHRLFX6F.js → chunk-PG2JIU5M.js} +57 -6
  154. package/dist/{chunk-6OECOAK5.cjs → chunk-PI27G2ED.cjs} +25 -8
  155. package/dist/{chunk-TR6NECEZ.js → chunk-PI7LRPL6.js} +1 -1
  156. package/dist/{chunk-GAOPJ5S3.cjs → chunk-PMPEC5HN.cjs} +18 -15
  157. package/dist/{chunk-5GCQ5UMV.cjs → chunk-PYUP7AKY.cjs} +14 -14
  158. package/dist/{chunk-S5QKRA2V.js → chunk-QC5Z3ZT5.js} +2 -2
  159. package/dist/chunk-QDO4L2A7.cjs +156 -0
  160. package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
  161. package/dist/{chunk-26G7YGOW.js → chunk-QVXMSQOG.js} +84 -21
  162. package/dist/{chunk-SVVP4UUZ.cjs → chunk-R4UKBKDY.cjs} +11 -11
  163. package/dist/{chunk-HG3ZASBH.cjs → chunk-R75AWII3.cjs} +112 -17
  164. package/dist/{chunk-TE4SYTWR.cjs → chunk-RD5PLUIX.cjs} +8 -8
  165. package/dist/{chunk-FFHSCM5M.js → chunk-RGB34CV5.js} +3 -3
  166. package/dist/{chunk-SY2P3Z5W.cjs → chunk-RJCZLFHE.cjs} +96 -32
  167. package/dist/{chunk-22SCR3EV.cjs → chunk-RKWNM2BJ.cjs} +2 -2
  168. package/dist/{chunk-FBQJZKFX.js → chunk-RMVONICR.js} +3 -3
  169. package/dist/{chunk-PY73W5MQ.cjs → chunk-RPSYRJL7.cjs} +10 -4
  170. package/dist/{chunk-HXHE2KAO.js → chunk-RWKU2X7O.js} +7 -4
  171. package/dist/{chunk-NQZH5CR2.cjs → chunk-RZLEGVMH.cjs} +102 -5
  172. package/dist/{chunk-KMP6Y3LJ.js → chunk-S2L3Y677.js} +1 -1
  173. package/dist/{chunk-GSDV75A5.js → chunk-S7KVUIOS.js} +1 -1
  174. package/dist/{chunk-7PT646AL.cjs → chunk-SACJJ6NO.cjs} +5 -3
  175. package/dist/{chunk-LEZEWKPA.js → chunk-SJQU2ZFR.js} +96 -32
  176. package/dist/{chunk-65LRPW5W.js → chunk-SKAQKQFF.js} +12 -2
  177. package/dist/chunk-T4DXP5OP.js +30 -0
  178. package/dist/{chunk-EYHKL4QC.js → chunk-T6FTB6K2.js} +1 -1
  179. package/dist/{chunk-DNSD7DVJ.js → chunk-T6N6GRFT.js} +13 -10
  180. package/dist/{chunk-575PXZX7.js → chunk-TJFKA6A7.js} +82 -3
  181. package/dist/{chunk-HSWWM6AM.js → chunk-TJZUPS4Z.js} +34 -291
  182. package/dist/{chunk-DHUQZ53B.cjs → chunk-TLKHZ425.cjs} +2 -2
  183. package/dist/{chunk-VLGGMQUN.cjs → chunk-TQ24NLXO.cjs} +6 -6
  184. package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
  185. package/dist/{chunk-EA2MS25U.cjs → chunk-TZB5XADL.cjs} +4 -4
  186. package/dist/{chunk-U6PLSPMD.cjs → chunk-UAYXZXWU.cjs} +4 -4
  187. package/dist/{chunk-OV3T5MUH.cjs → chunk-UKBFNBDO.cjs} +11 -11
  188. package/dist/{chunk-SZD45IDG.js → chunk-UMJYX5KD.js} +101 -4
  189. package/dist/{chunk-B76FJKEJ.cjs → chunk-USKYTHDL.cjs} +69 -18
  190. package/dist/{chunk-NZQFKXM3.cjs → chunk-VAJUSZMC.cjs} +15 -15
  191. package/dist/{chunk-SDLY4X3G.js → chunk-VGQG4NBJ.js} +2 -2
  192. package/dist/{chunk-KWXGDSYT.js → chunk-VLUIVJ3J.js} +58 -7
  193. package/dist/{chunk-KJ26T7GM.cjs → chunk-VOBINVMV.cjs} +105 -42
  194. package/dist/{chunk-C5QIQQ37.js → chunk-VSHKKCSH.js} +16 -5
  195. package/dist/{chunk-L46OUKW5.cjs → chunk-VSZU3MGA.cjs} +28 -17
  196. package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
  197. package/dist/{chunk-UWZ4G3SQ.js → chunk-VXGYFX45.js} +4 -4
  198. package/dist/{chunk-C46B72VK.js → chunk-WH6YUQDB.js} +141 -54
  199. package/dist/{chunk-SFFEKZGC.js → chunk-WQ6TD55V.js} +2 -2
  200. package/dist/{chunk-7PJKTSRN.js → chunk-WQWECXTY.js} +3 -3
  201. package/dist/{chunk-DSSCERHI.cjs → chunk-WVDJUJH6.cjs} +2 -2
  202. package/dist/{chunk-JPFRI4L4.js → chunk-X24VIVDZ.js} +210 -26
  203. package/dist/{chunk-7IRQ7JEH.js → chunk-X4NRTLXD.js} +7 -1
  204. package/dist/{chunk-7MY4JHER.js → chunk-X53SHYCG.js} +2 -2
  205. package/dist/{chunk-RFUKZIJF.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
  206. package/dist/{chunk-WJYFLQ7G.cjs → chunk-Y47OJGLB.cjs} +3 -3
  207. package/dist/{chunk-HC2Q6A3E.cjs → chunk-Y4MN27V3.cjs} +361 -177
  208. package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
  209. package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
  210. package/dist/{chunk-63ANVAOJ.cjs → chunk-YMXYC777.cjs} +3 -3
  211. package/dist/{chunk-X7XMITIL.cjs → chunk-Z3GRWK6O.cjs} +8 -8
  212. package/dist/{chunk-3ICORF7M.cjs → chunk-Z5GG2KSL.cjs} +4 -4
  213. package/dist/{chunk-I2ZK3AOD.js → chunk-ZER7DYQK.js} +2 -2
  214. package/dist/{chunk-V3SZLWEQ.cjs → chunk-ZFDXZEZJ.cjs} +11 -11
  215. package/dist/{chunk-QBYGMMDD.js → chunk-ZFV4HJA6.js} +66 -4
  216. package/dist/chunk-ZHMYTI5D.cjs +529 -0
  217. package/dist/{chunk-4567QNRB.js → chunk-ZLR2TFBC.js} +3 -0
  218. package/dist/{chunk-OCATAKXV.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
  219. package/dist/{chunk-CCIDL4SA.js → chunk-ZVLVLDYN.js} +2915 -1418
  220. package/dist/clear-AJGXD2BB.cjs +12 -0
  221. package/dist/{clear-Y5TO3RZA.js → clear-HAHDSWKW.js} +3 -3
  222. package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
  223. package/dist/{communityInstaller-RVL4STPS.js → communityInstaller-OLKEUGMX.js} +5 -5
  224. package/dist/completion-G7Z436TF.cjs +17 -0
  225. package/dist/{completion-SE3XYG74.js → completion-ZS3AXJ6A.js} +4 -4
  226. package/dist/{config-7KPHKFTP.js → config-OWYAQPCX.js} +5 -4
  227. package/dist/config-W2BHT2QE.cjs +22 -0
  228. package/dist/{constants-EJFAWJQI.js → constants-AS6K67AA.js} +5 -3
  229. package/dist/constants-B4W5BT7F.cjs +23 -0
  230. package/dist/{export-BJVIDZC4.js → export-5HIU3KMD.js} +4 -4
  231. package/dist/export-GFD32UY2.cjs +15 -0
  232. package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
  233. package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
  234. package/dist/feature-KP74CZ3F.cjs +14 -0
  235. package/dist/{feature-V4JF5TNJ.js → feature-OPNVMB2E.js} +2 -2
  236. package/dist/features-LT55MURX.cjs +24 -0
  237. package/dist/features-ZDIU26WX.js +24 -0
  238. package/dist/feedback-7WTJFQ6S.js +18 -0
  239. package/dist/feedback-CEOJ3453.cjs +18 -0
  240. package/dist/go-2CY5SZNR.js +16 -0
  241. package/dist/go-O2CSQON4.cjs +16 -0
  242. package/dist/goal-DL2N2AWT.cjs +16 -0
  243. package/dist/goal-IJS7VZSG.js +16 -0
  244. package/dist/help-RNOGDEBA.cjs +12 -0
  245. package/dist/{help-MLIROWKM.js → help-TCWD2IRH.js} +2 -2
  246. package/dist/{history-GQJ6RZD6.js → history-ATOR5OQV.js} +2 -2
  247. package/dist/history-UUSGX2AL.cjs +14 -0
  248. package/dist/{hooks-PPFHCF7T.js → hooks-R3Z5QKUP.js} +5 -5
  249. package/dist/hooks-RWM5UY67.cjs +18 -0
  250. package/dist/{i18n-Q7UZJRPL.js → i18n-4QI4TD4I.js} +1 -1
  251. package/dist/i18n-MFAEU5RV.cjs +33 -0
  252. package/dist/{ide-BUSVE54P.js → ide-6PBTCCUQ.js} +4 -4
  253. package/dist/ide-UE3G7NMQ.cjs +15 -0
  254. package/dist/{import-C7S6UJMW.cjs → import-2IG76KAN.cjs} +6 -4
  255. package/dist/{import-U47DXCA7.js → import-E47QL4DW.js} +2 -2
  256. package/dist/import-NQDNBFUL.cjs +10 -0
  257. package/dist/{import-3VBKI6BN.js → import-VQIHGJWS.js} +6 -4
  258. package/dist/index.cjs +444 -334
  259. package/dist/index.d.cts +38 -0
  260. package/dist/index.d.ts +38 -0
  261. package/dist/index.js +324 -214
  262. package/dist/init-DX3RDGDT.cjs +10 -0
  263. package/dist/{init-Q2O4R42R.js → init-Q54OAAFZ.js} +2 -2
  264. package/dist/{inputPrompt-3CFZDUBH.js → inputPrompt-V2VBDRM7.js} +2 -2
  265. package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
  266. package/dist/language-I6KXAOXD.js +23 -0
  267. package/dist/language-XMIVOH5E.cjs +23 -0
  268. package/dist/learn-JPVVGTKU.js +23 -0
  269. package/dist/learn-NLSHI2MZ.cjs +23 -0
  270. package/dist/login-NABQYLYC.cjs +28 -0
  271. package/dist/login-XPOVFSWN.js +28 -0
  272. package/dist/logout-HNHCGB4Q.js +25 -0
  273. package/dist/logout-SKGDXJSW.cjs +25 -0
  274. package/dist/{mcp-AH3MMUBU.js → mcp-EN73YFGZ.js} +8 -7
  275. package/dist/mcp-TADZCPJQ.cjs +22 -0
  276. package/dist/{mcp-install-IA4ZS2SV.cjs → mcp-install-2GKWWBAS.cjs} +14 -13
  277. package/dist/{mcp-install-222PCKSW.js → mcp-install-3TBTVSHW.js} +9 -8
  278. package/dist/memory-GRXFTDIN.cjs +10 -0
  279. package/dist/{memory-VB46T5H3.js → memory-K2P3CDCH.js} +2 -2
  280. package/dist/{model-SJJG64AM.js → model-DEG22OWA.js} +2 -2
  281. package/dist/model-OSD74T7Z.cjs +10 -0
  282. package/dist/new-4NWBOATU.cjs +12 -0
  283. package/dist/{new-ERZ5C6CN.js → new-KJAP2MB6.js} +3 -3
  284. package/dist/{onboarding-ZQXMPSMJ.js → onboarding-2U5WE2OA.js} +17 -14
  285. package/dist/onboarding-5DZFCO5Q.cjs +39 -0
  286. package/dist/permissions-KY5I6YQ3.cjs +10 -0
  287. package/dist/{permissions-7ACNFK7A.js → permissions-TKYON7PP.js} +2 -2
  288. package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
  289. package/dist/plan-PYKP652W.cjs +13 -0
  290. package/dist/quit-GSKJL42O.js +14 -0
  291. package/dist/quit-TQSRTBUT.cjs +14 -0
  292. package/dist/{registry-4DXUDKJN.js → registry-EZ4V4TUQ.js} +1339 -1
  293. package/dist/{registry-UEO3ETZ7.cjs → registry-LCWYI4IB.cjs} +1378 -40
  294. package/dist/resume-4VWJXARX.cjs +17 -0
  295. package/dist/{resume-XSXZMDMD.js → resume-TLHWWWFN.js} +5 -5
  296. package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
  297. package/dist/review-XLJEUH5K.cjs +9 -0
  298. package/dist/{rpc-XH7QLN4H.js → rpc-3DLQBDWU.js} +151 -124
  299. package/dist/{rpc-YF54T7JU.cjs → rpc-O36WUU3L.cjs} +169 -142
  300. package/dist/search-DSX2CY4A.cjs +22 -0
  301. package/dist/search-I3QUDUQL.js +22 -0
  302. package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
  303. package/dist/sessionBranching-FKV4CR36.js +19 -0
  304. package/dist/sessions-3JUOT3ED.cjs +10 -0
  305. package/dist/{sessions-NJYHJOEL.js → sessions-VWMDIPOS.js} +2 -2
  306. package/dist/{settings-ZXUQH3DO.js → settings-FT2LZZUV.js} +11 -8
  307. package/dist/settings-RL4KNWHB.cjs +45 -0
  308. package/dist/setup-HQEJVOYT.js +32 -0
  309. package/dist/setup-MN54LKOL.cjs +32 -0
  310. package/dist/share-BUAFZNBX.cjs +17 -0
  311. package/dist/{share-WFAGZ5PY.js → share-CGB6MAVJ.js} +6 -6
  312. package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
  313. package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
  314. package/dist/{skills-NBTNDVAY.js → skills-7DKR3HRZ.js} +7 -7
  315. package/dist/{skills-OB6RDW7D.js → skills-BBBENOEY.js} +9 -9
  316. package/dist/skills-OQM7IHAF.cjs +29 -0
  317. package/dist/{skills-ZROBG3RZ.cjs → skills-RA2PKL63.cjs} +9 -9
  318. package/dist/{skills-install-ILX6QVEF.cjs → skills-install-D7K476SL.cjs} +15 -15
  319. package/dist/{skills-install-BHTIEMKH.js → skills-install-T4SOKJSL.js} +8 -8
  320. package/dist/{skills-new-YMRP2HNO.js → skills-new-S33NGEU3.js} +6 -6
  321. package/dist/skills-new-UVYH53MD.cjs +18 -0
  322. package/dist/slashCommands-MWOUDSQP.js +111 -0
  323. package/dist/slashCommands-XASURUTV.cjs +111 -0
  324. package/dist/squad-PIIYDFVH.cjs +15 -0
  325. package/dist/squad-VHYOVEJP.js +15 -0
  326. package/dist/status-GHFTXQBL.js +25 -0
  327. package/dist/status-WXMIJIU3.cjs +25 -0
  328. package/dist/statusline-2K7AC6ZQ.js +21 -0
  329. package/dist/statusline-GROI4HOC.cjs +21 -0
  330. package/dist/sync-254WF6JI.cjs +42 -0
  331. package/dist/sync-2DIZN4EH.cjs +24 -0
  332. package/dist/{sync-OCJN4ZSO.js → sync-J6I2ZUKQ.js} +5 -3
  333. package/dist/{sync-7C25MOT2.js → sync-Z3LVSEEV.js} +8 -6
  334. package/dist/{teammate-D77B6QRT.cjs → teammate-EXR76PEQ.cjs} +5 -5
  335. package/dist/{teammate-EZCMHOIL.js → teammate-K4DAOFEQ.js} +5 -5
  336. package/dist/theme-MVQDSU47.js +23 -0
  337. package/dist/theme-QAKEYWJG.cjs +23 -0
  338. package/dist/ui/questionModal.cjs +5 -5
  339. package/dist/ui/questionModal.js +4 -4
  340. package/dist/{undo-GNUTFXCW.js → undo-5AU47JHF.js} +2 -2
  341. package/dist/undo-ME6WKUXZ.cjs +10 -0
  342. package/dist/{usage-QSTNSDAO.js → usage-QTKO2YMD.js} +6 -5
  343. package/dist/usage-TYNJKVER.cjs +25 -0
  344. package/package.json +4 -3
  345. package/dist/AgentRegistry-GOV7FN2O.js +0 -10
  346. package/dist/AgentRegistry-J2C6JBZ3.cjs +0 -10
  347. package/dist/CommunitySkillsCache-22BB3J6H.cjs +0 -8
  348. package/dist/LearnAdvisor-KKEQ5QCV.js +0 -9
  349. package/dist/LearnAdvisor-Q7RAYLPF.cjs +0 -9
  350. package/dist/MemoryManager-PMNAEZMB.cjs +0 -8
  351. package/dist/MemoryManager-QZRLTUB5.js +0 -8
  352. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +0 -14
  353. package/dist/PermissionManager-URCNP5EC.cjs +0 -11
  354. package/dist/ProviderFactory-56N3ECE4.cjs +0 -12
  355. package/dist/SessionManager-2IZGWASQ.cjs +0 -10
  356. package/dist/SkillsRegistry-GMRVONOQ.cjs +0 -9
  357. package/dist/SubAgent-4GOR2FIJ.js +0 -13
  358. package/dist/SubAgent-ZJMDH4FI.cjs +0 -13
  359. package/dist/add-dir-BTAD5OZS.cjs +0 -11
  360. package/dist/agent-B3EVT7NN.cjs +0 -126
  361. package/dist/agent-SATQ3WZ3.js +0 -126
  362. package/dist/agents-44CRJGM7.cjs +0 -18
  363. package/dist/agents-NN4ZAJ7R.js +0 -18
  364. package/dist/agents-new-6D6G4QS6.cjs +0 -17
  365. package/dist/autoSkill-VQLGBELN.cjs +0 -20
  366. package/dist/automode-45DWV4TN.cjs +0 -10
  367. package/dist/chrome-Q2U73HZB.cjs +0 -50
  368. package/dist/chrome-Q54OALOK.cjs +0 -21
  369. package/dist/chrome-ZNJ46OYW.js +0 -21
  370. package/dist/chunk-JCUHCH37.cjs +0 -247
  371. package/dist/chunk-VKOXFT4L.cjs +0 -23
  372. package/dist/clear-QJXU25IF.cjs +0 -12
  373. package/dist/communityInstaller-LXMVKVAV.cjs +0 -22
  374. package/dist/completion-JX4T2ONW.cjs +0 -17
  375. package/dist/config-3224PRW4.cjs +0 -21
  376. package/dist/constants-MCCGUU5F.cjs +0 -21
  377. package/dist/export-KU4557HK.cjs +0 -15
  378. package/dist/feature-K3LG5IJP.cjs +0 -14
  379. package/dist/features-5OJTLKS7.js +0 -23
  380. package/dist/features-VCBJQXCX.cjs +0 -23
  381. package/dist/feedback-D4437VE4.js +0 -18
  382. package/dist/feedback-VZPEHGFY.cjs +0 -18
  383. package/dist/go-X4E6BCD6.js +0 -12
  384. package/dist/go-XREVFS5I.cjs +0 -12
  385. package/dist/goal-4M3J6JS2.cjs +0 -16
  386. package/dist/goal-EI66BV7W.js +0 -16
  387. package/dist/help-GGFS7WHY.cjs +0 -12
  388. package/dist/history-J4LUIOSI.cjs +0 -14
  389. package/dist/hooks-FSRIUS6A.cjs +0 -18
  390. package/dist/i18n-CI6VFXL5.cjs +0 -33
  391. package/dist/ide-YR27BPGM.cjs +0 -15
  392. package/dist/import-DBK4OCDF.cjs +0 -10
  393. package/dist/init-OXTYS72D.cjs +0 -10
  394. package/dist/inputPrompt-JMACL4EB.cjs +0 -90
  395. package/dist/language-EK3M6UBV.cjs +0 -22
  396. package/dist/language-Q3RUGGOW.js +0 -22
  397. package/dist/learn-3DSX7DYG.cjs +0 -23
  398. package/dist/learn-OPOH5L43.js +0 -23
  399. package/dist/login-GST7MWXJ.cjs +0 -27
  400. package/dist/login-Q7DZKAX4.js +0 -27
  401. package/dist/logout-2G7OUK7I.cjs +0 -24
  402. package/dist/logout-FNBBL2UI.js +0 -24
  403. package/dist/mcp-DW7R63IB.cjs +0 -21
  404. package/dist/memory-6NX3DAIY.cjs +0 -10
  405. package/dist/model-64NAELFS.cjs +0 -10
  406. package/dist/new-DU5SOOOY.cjs +0 -12
  407. package/dist/onboarding-2U2BV2KE.cjs +0 -36
  408. package/dist/permissions-GSNNV7RJ.cjs +0 -10
  409. package/dist/plan-XEJMOT55.cjs +0 -13
  410. package/dist/quit-WY6T267G.js +0 -10
  411. package/dist/quit-XIRE2KRE.cjs +0 -10
  412. package/dist/resume-RQZ3WXBP.cjs +0 -17
  413. package/dist/review-UWHWQHCB.cjs +0 -9
  414. package/dist/search-VXXFGZWU.cjs +0 -21
  415. package/dist/search-YAWGX7P7.js +0 -21
  416. package/dist/sessions-OSG3UJEZ.cjs +0 -10
  417. package/dist/settings-SO2UIGWV.cjs +0 -42
  418. package/dist/setup-KG7EGKF5.js +0 -30
  419. package/dist/setup-RSOPCQ57.cjs +0 -30
  420. package/dist/share-ZU3SGACF.cjs +0 -17
  421. package/dist/skills-KBVAQAD2.cjs +0 -29
  422. package/dist/skills-new-B45VQ2PP.cjs +0 -18
  423. package/dist/slashCommands-53VYIBJU.js +0 -105
  424. package/dist/slashCommands-BG2RGGZ6.cjs +0 -105
  425. package/dist/status-CQ2IUOVK.cjs +0 -24
  426. package/dist/status-E7IGNVPC.js +0 -24
  427. package/dist/sync-XRP46IVG.cjs +0 -40
  428. package/dist/sync-ZMFVE7T4.cjs +0 -22
  429. package/dist/theme-KKRDE6P7.cjs +0 -22
  430. package/dist/theme-XF7XIWBQ.js +0 -22
  431. package/dist/undo-U4KN7QQM.cjs +0 -10
  432. package/dist/usage-YDEMQBNQ.cjs +0 -24
@@ -1,14 +1,19 @@
1
1
  import {
2
2
  NVIDIAProvider,
3
3
  normalizeLLMUsage
4
- } from "./chunk-4567QNRB.js";
4
+ } from "./chunk-ZLR2TFBC.js";
5
5
  import {
6
6
  ApiError,
7
7
  classifyApiError
8
8
  } from "./chunk-FQVG6ZHF.js";
9
+ import {
10
+ getCustomProviderConfig,
11
+ isCustomProviderName,
12
+ toCustomProviderName
13
+ } from "./chunk-JJGDOBFL.js";
9
14
  import {
10
15
  isAwsBedrockProviderEnabled
11
- } from "./chunk-LANGD5CO.js";
16
+ } from "./chunk-H7HXRRHK.js";
12
17
 
13
18
  // src/providers/OllamaProvider.ts
14
19
  var DEFAULT_TIMEOUT = 12e4;
@@ -37,6 +42,9 @@ var OllamaProvider = class {
37
42
  getName() {
38
43
  return "ollama";
39
44
  }
45
+ getCapabilities() {
46
+ return { nativeToolCalling: true };
47
+ }
40
48
  setModel(model) {
41
49
  this.model = model;
42
50
  }
@@ -166,9 +174,10 @@ var OllamaProvider = class {
166
174
  return this.handleStreamingResponse(response);
167
175
  }
168
176
  const data = await response.json();
177
+ const message = data.message ?? { role: "assistant", content: "" };
169
178
  let toolCalls;
170
- if (data.message.tool_calls && Array.isArray(data.message.tool_calls)) {
171
- toolCalls = data.message.tool_calls.map((tc, index) => {
179
+ if (message.tool_calls && Array.isArray(message.tool_calls)) {
180
+ toolCalls = message.tool_calls.map((tc, index) => {
172
181
  let argumentsStr;
173
182
  try {
174
183
  argumentsStr = JSON.stringify(tc.function.arguments);
@@ -193,7 +202,7 @@ var OllamaProvider = class {
193
202
  return {
194
203
  id: `ollama-${Date.now()}`,
195
204
  created: Math.floor(new Date(data.created_at).getTime() / 1e3),
196
- content: data.message.content,
205
+ content: message.content,
197
206
  toolCalls,
198
207
  finishReason: toolCalls?.length ? "tool_calls" : "stop",
199
208
  usage,
@@ -402,7 +411,7 @@ ${content}`
402
411
  for (const line of lines) {
403
412
  try {
404
413
  const data = JSON.parse(line);
405
- fullContent += data.message.content;
414
+ fullContent += data.message?.content ?? "";
406
415
  lastData = data;
407
416
  if (data.done) {
408
417
  streamEndedWithDone = true;
@@ -1412,6 +1421,9 @@ var LlamaCppProvider = class _LlamaCppProvider {
1412
1421
  getName() {
1413
1422
  return "llamacpp";
1414
1423
  }
1424
+ getCapabilities() {
1425
+ return { nativeToolCalling: true };
1426
+ }
1415
1427
  setModel(model) {
1416
1428
  this.model = model;
1417
1429
  }
@@ -1993,6 +2005,9 @@ var OpenRouterProvider = class {
1993
2005
  getName() {
1994
2006
  return "openrouter";
1995
2007
  }
2008
+ getCapabilities() {
2009
+ return { nativeToolCalling: true };
2010
+ }
1996
2011
  setModel(model) {
1997
2012
  this.model = model;
1998
2013
  this.client.setDefaultModel(model);
@@ -2055,6 +2070,9 @@ var MLXProvider = class {
2055
2070
  getName() {
2056
2071
  return "mlx";
2057
2072
  }
2073
+ getCapabilities() {
2074
+ return { nativeToolCalling: true };
2075
+ }
2058
2076
  setModel(model) {
2059
2077
  this.model = model;
2060
2078
  }
@@ -2287,7 +2305,24 @@ var MLXProvider = class {
2287
2305
 
2288
2306
  // src/providers/LLMGatewayClient.ts
2289
2307
  function sanitizeMessages2(messages) {
2290
- return messages.map((msg) => {
2308
+ const toolOutputIds = new Set(
2309
+ messages.filter((msg) => msg.role === "tool" && msg.tool_call_id).map((msg) => msg.tool_call_id)
2310
+ );
2311
+ const matchedToolCallIds = /* @__PURE__ */ new Set();
2312
+ for (const msg of messages) {
2313
+ if (msg.role !== "assistant" || !msg.tool_calls?.length) {
2314
+ continue;
2315
+ }
2316
+ for (const toolCall of msg.tool_calls) {
2317
+ if (toolOutputIds.has(toolCall.id)) {
2318
+ matchedToolCallIds.add(toolCall.id);
2319
+ }
2320
+ }
2321
+ }
2322
+ return messages.flatMap((msg) => {
2323
+ if (msg.role === "tool" && (!msg.tool_call_id || !matchedToolCallIds.has(msg.tool_call_id))) {
2324
+ return [];
2325
+ }
2291
2326
  const sanitized = {
2292
2327
  role: msg.role,
2293
2328
  content: msg.content
@@ -2296,12 +2331,17 @@ function sanitizeMessages2(messages) {
2296
2331
  sanitized.tool_call_id = msg.tool_call_id;
2297
2332
  }
2298
2333
  if (msg.role === "assistant" && msg.tool_calls?.length) {
2299
- sanitized.tool_calls = msg.tool_calls;
2334
+ const matchedToolCalls = msg.tool_calls.filter((toolCall) => matchedToolCallIds.has(toolCall.id));
2335
+ if (matchedToolCalls.length > 0) {
2336
+ sanitized.tool_calls = matchedToolCalls;
2337
+ } else if (!msg.content) {
2338
+ return [];
2339
+ }
2300
2340
  }
2301
2341
  if (msg.name) {
2302
2342
  sanitized.name = msg.name;
2303
2343
  }
2304
- return sanitized;
2344
+ return [sanitized];
2305
2345
  });
2306
2346
  }
2307
2347
  var DEFAULT_BASE_URL2 = "https://api.llmgateway.io/v1";
@@ -2316,18 +2356,26 @@ var DEFAULT_ERROR_LABELS = {
2316
2356
  };
2317
2357
  function buildFriendlyErrors(labels) {
2318
2358
  return {
2319
- 400: "The request was malformed. This often happens when the context is too long. Try /undo to remove recent turns or /new to start fresh.",
2320
- 401: `Authentication failed. Please verify your ${labels.credentialName} in ~/.autohand/config.json.`,
2321
- 402: `Payment required. Please check your ${labels.accountName} balance or billing settings.`,
2322
- 403: `Access denied. Your ${labels.credentialName} may not have permission for this model.`,
2323
- 404: "The requested model was not found. Use /model to select a different one.",
2324
- 429: "Rate limit exceeded. Please wait a moment and try again, or choose a different model.",
2325
- 500: `The ${labels.serviceName} service encountered an internal error. Please try again later.`,
2326
- 502: `The ${labels.serviceName} service is temporarily unavailable. Please try again in a few moments.`,
2327
- 503: `The ${labels.serviceName} service is currently overloaded. Please try again later.`,
2328
- 504: `The request timed out. The ${labels.serviceName} service may be experiencing high load.`
2359
+ invalid_request: "The request was malformed and could not be processed.",
2360
+ context_overflow: "The conversation is too long for this model. Try /undo to remove recent turns or /new to start fresh.",
2361
+ model_not_found: "The requested model was not found. Use /model to select a different one.",
2362
+ auth_failed: `Authentication failed. Please verify your ${labels.credentialName} in ~/.autohand/config.json.`,
2363
+ payment_required: `Payment required. Please check your ${labels.accountName} balance or billing settings.`,
2364
+ access_denied: `Access denied. Your ${labels.credentialName} may not have permission for this model.`,
2365
+ rate_limited: "Rate limit exceeded. Please wait a moment and try again, or choose a different model.",
2366
+ server_error: `The ${labels.serviceName} service is temporarily unavailable. Please try again later.`,
2367
+ timeout: `The request timed out. The ${labels.serviceName} service may be experiencing high load.`
2329
2368
  };
2330
2369
  }
2370
+ function coerceErrorDetail(value) {
2371
+ if (typeof value === "string") {
2372
+ return value;
2373
+ }
2374
+ if (value && typeof value === "object") {
2375
+ return JSON.stringify(value);
2376
+ }
2377
+ return "";
2378
+ }
2331
2379
  var LLMGatewayClient = class {
2332
2380
  apiKey;
2333
2381
  baseUrl;
@@ -2336,10 +2384,12 @@ var LLMGatewayClient = class {
2336
2384
  retryDelay;
2337
2385
  timeout;
2338
2386
  errorLabels;
2387
+ reasoningEffort;
2339
2388
  constructor(settings, networkSettings, errorLabels = DEFAULT_ERROR_LABELS) {
2340
2389
  this.apiKey = settings.apiKey ?? "";
2341
2390
  this.baseUrl = settings.baseUrl ?? DEFAULT_BASE_URL2;
2342
2391
  this.defaultModel = settings.model;
2392
+ this.reasoningEffort = settings.reasoningEffort;
2343
2393
  this.errorLabels = errorLabels;
2344
2394
  const configuredRetries = networkSettings?.maxRetries ?? DEFAULT_MAX_RETRIES4;
2345
2395
  this.maxRetries = Math.min(
@@ -2420,6 +2470,9 @@ var LLMGatewayClient = class {
2420
2470
  max_tokens: request.maxTokens ?? 16e3,
2421
2471
  stream: request.stream ?? false
2422
2472
  };
2473
+ if (this.reasoningEffort) {
2474
+ payload.reasoning_effort = this.reasoningEffort;
2475
+ }
2423
2476
  return payload;
2424
2477
  }
2425
2478
  buildChatTemplateKwargs(kwargs) {
@@ -2557,17 +2610,15 @@ ${fullContent}` : fullContent;
2557
2610
  let errorDetail = "";
2558
2611
  try {
2559
2612
  const body = await response.json();
2560
- errorDetail = body?.error?.message || body?.error || body?.message || "";
2561
- if (typeof errorDetail === "object") {
2562
- errorDetail = JSON.stringify(errorDetail);
2563
- }
2613
+ errorDetail = coerceErrorDetail(body?.error?.message || body?.error || body?.message);
2564
2614
  } catch {
2565
2615
  try {
2566
2616
  errorDetail = await response.text();
2567
2617
  } catch {
2568
2618
  }
2569
2619
  }
2570
- const friendlyMessage = buildFriendlyErrors(this.errorLabels)[status];
2620
+ const classified = classifyApiError(status, errorDetail, response.headers);
2621
+ const friendlyMessage = buildFriendlyErrors(this.errorLabels)[classified.code];
2571
2622
  if (friendlyMessage) {
2572
2623
  return errorDetail ? `${friendlyMessage}
2573
2624
  ${errorDetail}` : friendlyMessage;
@@ -2625,6 +2676,9 @@ var LLMGatewayProvider = class {
2625
2676
  getName() {
2626
2677
  return "llmgateway";
2627
2678
  }
2679
+ getCapabilities() {
2680
+ return { nativeToolCalling: true };
2681
+ }
2628
2682
  setModel(model) {
2629
2683
  this.model = model;
2630
2684
  this.client.setDefaultModel(model);
@@ -3057,6 +3111,9 @@ var AzureProvider = class {
3057
3111
  getName() {
3058
3112
  return "azure";
3059
3113
  }
3114
+ getCapabilities() {
3115
+ return { nativeToolCalling: true };
3116
+ }
3060
3117
  setModel(model) {
3061
3118
  this.model = model;
3062
3119
  this.client.setDefaultModel(model);
@@ -3075,6 +3132,8 @@ var AzureProvider = class {
3075
3132
  // src/providers/ZaiProvider.ts
3076
3133
  var ZAI_DEFAULT_BASE_URL = "https://api.z.ai/api/paas/v4";
3077
3134
  var ZAI_MODELS = [
3135
+ "glm-5.2",
3136
+ "glm-5.1",
3078
3137
  "glm-4.5",
3079
3138
  "glm-4.5v",
3080
3139
  "glm-4.5-air",
@@ -3101,6 +3160,9 @@ var ZaiProvider = class {
3101
3160
  getName() {
3102
3161
  return "zai";
3103
3162
  }
3163
+ getCapabilities() {
3164
+ return { nativeToolCalling: true };
3165
+ }
3104
3166
  setModel(model) {
3105
3167
  this.model = model;
3106
3168
  this.client.setDefaultModel(model);
@@ -3116,6 +3178,48 @@ var ZaiProvider = class {
3116
3178
  }
3117
3179
  };
3118
3180
 
3181
+ // src/providers/SakanaProvider.ts
3182
+ var SAKANA_DEFAULT_BASE_URL = "https://api.sakana.ai/v1";
3183
+ var SAKANA_MODELS = [
3184
+ "fugu",
3185
+ "fugu-ultra"
3186
+ ];
3187
+ var SakanaProvider = class {
3188
+ client;
3189
+ model;
3190
+ constructor(config, networkSettings) {
3191
+ const effectiveConfig = {
3192
+ ...config,
3193
+ baseUrl: config.baseUrl ?? SAKANA_DEFAULT_BASE_URL
3194
+ };
3195
+ this.client = new LLMGatewayClient(effectiveConfig, networkSettings, {
3196
+ serviceName: "Sakana.AI",
3197
+ credentialName: "Sakana API key",
3198
+ accountName: "Sakana account"
3199
+ });
3200
+ this.model = config.model;
3201
+ }
3202
+ getName() {
3203
+ return "sakana";
3204
+ }
3205
+ getCapabilities() {
3206
+ return { nativeToolCalling: true };
3207
+ }
3208
+ setModel(model) {
3209
+ this.model = model;
3210
+ this.client.setDefaultModel(model);
3211
+ }
3212
+ async listModels() {
3213
+ return [...SAKANA_MODELS];
3214
+ }
3215
+ async isAvailable() {
3216
+ return true;
3217
+ }
3218
+ async complete(request) {
3219
+ return this.client.complete(request);
3220
+ }
3221
+ };
3222
+
3119
3223
  // src/utils/gcloudAuth.ts
3120
3224
  import { exec } from "child_process";
3121
3225
  import { promisify } from "util";
@@ -3312,6 +3416,9 @@ var VertexAIProvider = class {
3312
3416
  getName() {
3313
3417
  return "vertexai";
3314
3418
  }
3419
+ getCapabilities() {
3420
+ return { nativeToolCalling: true };
3421
+ }
3315
3422
  setModel(model) {
3316
3423
  this.defaultModel = model;
3317
3424
  }
@@ -3670,6 +3777,9 @@ var XAIProvider = class {
3670
3777
  getName() {
3671
3778
  return "xai";
3672
3779
  }
3780
+ getCapabilities() {
3781
+ return { nativeToolCalling: true };
3782
+ }
3673
3783
  setModel(model) {
3674
3784
  this.model = model;
3675
3785
  }
@@ -4190,6 +4300,9 @@ var CerebrasProvider = class {
4190
4300
  getName() {
4191
4301
  return "cerebras";
4192
4302
  }
4303
+ getCapabilities() {
4304
+ return { nativeToolCalling: true };
4305
+ }
4193
4306
  setModel(model) {
4194
4307
  this.model = model;
4195
4308
  this.client.setDefaultModel(model);
@@ -4231,6 +4344,9 @@ var DeepSeekProvider = class {
4231
4344
  getName() {
4232
4345
  return "deepseek";
4233
4346
  }
4347
+ getCapabilities() {
4348
+ return { nativeToolCalling: true };
4349
+ }
4234
4350
  setModel(model) {
4235
4351
  this.model = model;
4236
4352
  this.client.setDefaultModel(model);
@@ -4784,6 +4900,55 @@ ${classified.message}`,
4784
4900
  }
4785
4901
  };
4786
4902
 
4903
+ // src/providers/CustomOpenAICompatibleProvider.ts
4904
+ var CustomOpenAICompatibleProvider = class {
4905
+ providerName;
4906
+ client;
4907
+ models;
4908
+ apiKeyRequired;
4909
+ apiKey;
4910
+ model;
4911
+ constructor(config, networkSettings) {
4912
+ this.providerName = toCustomProviderName(config.id);
4913
+ this.model = config.model;
4914
+ this.models = config.models?.map((entry) => entry.id) ?? [config.model];
4915
+ this.apiKeyRequired = config.apiKeyRequired !== false;
4916
+ this.apiKey = config.apiKey;
4917
+ this.client = new LLMGatewayClient(
4918
+ {
4919
+ apiKey: config.apiKey ?? "",
4920
+ baseUrl: config.baseUrl,
4921
+ model: config.model
4922
+ },
4923
+ networkSettings,
4924
+ {
4925
+ serviceName: config.displayName,
4926
+ credentialName: `${config.displayName} API key`,
4927
+ accountName: `${config.displayName} account`
4928
+ }
4929
+ );
4930
+ }
4931
+ getName() {
4932
+ return this.providerName;
4933
+ }
4934
+ getCapabilities() {
4935
+ return { nativeToolCalling: true };
4936
+ }
4937
+ setModel(model) {
4938
+ this.model = model;
4939
+ this.client.setDefaultModel(model);
4940
+ }
4941
+ async listModels() {
4942
+ return this.models;
4943
+ }
4944
+ async isAvailable() {
4945
+ return !this.apiKeyRequired || Boolean(this.apiKey);
4946
+ }
4947
+ async complete(request) {
4948
+ return this.client.complete(request);
4949
+ }
4950
+ };
4951
+
4787
4952
  // src/providers/ProviderFactory.ts
4788
4953
  var ProviderNotConfiguredError = class extends Error {
4789
4954
  constructor(providerName) {
@@ -4821,6 +4986,13 @@ var ProviderFactory = class {
4821
4986
  */
4822
4987
  static create(config) {
4823
4988
  const providerName = config.provider || "openrouter";
4989
+ if (isCustomProviderName(providerName)) {
4990
+ const customProvider = getCustomProviderConfig(config, providerName);
4991
+ if (!customProvider || customProvider.apiFormat !== "openai-compatible") {
4992
+ return new UnconfiguredProvider(providerName);
4993
+ }
4994
+ return new CustomOpenAICompatibleProvider(customProvider, config.network);
4995
+ }
4824
4996
  if (providerName === "bedrock" && !isAwsBedrockProviderEnabled(config)) {
4825
4997
  return new UnconfiguredProvider("bedrock");
4826
4998
  }
@@ -4860,6 +5032,11 @@ var ProviderFactory = class {
4860
5032
  return new UnconfiguredProvider("zai");
4861
5033
  }
4862
5034
  return new ZaiProvider(config.zai, config.network);
5035
+ case "sakana":
5036
+ if (!config.sakana) {
5037
+ return new UnconfiguredProvider("sakana");
5038
+ }
5039
+ return new SakanaProvider(config.sakana, config.network);
4863
5040
  case "vertexai":
4864
5041
  if (!config.vertexai) {
4865
5042
  return new UnconfiguredProvider("vertexai");
@@ -4903,13 +5080,15 @@ var ProviderFactory = class {
4903
5080
  * MLX is only included on Apple Silicon (macOS + arm64).
4904
5081
  */
4905
5082
  static getProviderNames(config) {
4906
- const providers = ["zai", "xai", "vertexai", "nvidia", "openrouter", "openai", "ollama", "llmgateway", "llamacpp", "deepseek", "cerebras", "azure"];
5083
+ const providers = ["zai", "xai", "vertexai", "sakana", "nvidia", "openrouter", "openai", "ollama", "llmgateway", "llamacpp", "deepseek", "cerebras", "azure"];
4907
5084
  if (isAwsBedrockProviderEnabled(config)) {
4908
5085
  providers.splice(providers.indexOf("azure"), 0, "bedrock");
4909
5086
  }
4910
5087
  if (isMLXSupported()) {
4911
5088
  providers.push("mlx");
4912
5089
  }
5090
+ const customProviders = Object.values(config?.customProviders ?? {}).filter((entry) => entry.disabled !== true).sort((a, b) => a.displayName.localeCompare(b.displayName)).map((entry) => toCustomProviderName(entry.id));
5091
+ providers.push(...customProviders);
4913
5092
  return providers;
4914
5093
  }
4915
5094
  /**
@@ -4918,10 +5097,13 @@ var ProviderFactory = class {
4918
5097
  * MLX is always a valid provider name, but may not be available on non-Apple Silicon systems.
4919
5098
  */
4920
5099
  static isValidProvider(name, config) {
5100
+ if (isCustomProviderName(name)) {
5101
+ return getCustomProviderConfig(config, name) !== void 0;
5102
+ }
4921
5103
  if (name === "bedrock" && !isAwsBedrockProviderEnabled(config)) {
4922
5104
  return false;
4923
5105
  }
4924
- const allProviders = ["openrouter", "ollama", "openai", "llamacpp", "mlx", "llmgateway", "azure", "zai", "vertexai", "xai", "cerebras", "nvidia", "deepseek", "bedrock"];
5106
+ const allProviders = ["openrouter", "ollama", "openai", "llamacpp", "mlx", "llmgateway", "azure", "zai", "sakana", "vertexai", "xai", "cerebras", "nvidia", "deepseek", "bedrock"];
4925
5107
  return allProviders.includes(name);
4926
5108
  }
4927
5109
  };
@@ -4934,6 +5116,8 @@ export {
4934
5116
  modelSupportsImages,
4935
5117
  ZAI_DEFAULT_BASE_URL,
4936
5118
  ZAI_MODELS,
5119
+ SAKANA_DEFAULT_BASE_URL,
5120
+ SAKANA_MODELS,
4937
5121
  isGcloudInstalled,
4938
5122
  getGcloudProject,
4939
5123
  getGcloudAccessToken,
@@ -1,7 +1,10 @@
1
+ import {
2
+ scheduleBackgroundSync
3
+ } from "./chunk-T4DXP5OP.js";
1
4
  import {
2
5
  AUTOHAND_PATHS,
3
6
  PROJECT_DIR_NAME
4
- } from "./chunk-SHRLFX6F.js";
7
+ } from "./chunk-PG2JIU5M.js";
5
8
 
6
9
  // src/memory/MemoryManager.ts
7
10
  import fs from "fs-extra";
@@ -55,6 +58,7 @@ var MemoryManager = class {
55
58
  const entryPath = path.join(dir, `${id}.json`);
56
59
  await fs.writeJson(entryPath, entry, { spaces: 2 });
57
60
  await this.updateIndex(level, entry);
61
+ scheduleBackgroundSync();
58
62
  return entry;
59
63
  }
60
64
  async updateMemory(id, content, level, tags) {
@@ -72,6 +76,7 @@ var MemoryManager = class {
72
76
  };
73
77
  await fs.writeJson(entryPath, updated, { spaces: 2 });
74
78
  await this.updateIndex(level, updated);
79
+ scheduleBackgroundSync();
75
80
  return updated;
76
81
  }
77
82
  async get(id, level) {
@@ -117,6 +122,7 @@ var MemoryManager = class {
117
122
  if (await fs.pathExists(entryPath)) {
118
123
  await fs.remove(entryPath);
119
124
  await this.removeFromIndex(level, id);
125
+ scheduleBackgroundSync();
120
126
  }
121
127
  }
122
128
  async findSimilar(content, level) {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getFeatureState
3
- } from "./chunk-LANGD5CO.js";
3
+ } from "./chunk-H7HXRRHK.js";
4
4
 
5
5
  // src/goals/feature.ts
6
6
  var GOAL_FEATURE_ID = "slash_goal";
7
- var GOAL_FEATURE_DISABLED_MESSAGE = "The /goal feature is behind slash_goal. Run /features enable slash_goal, then try again.";
7
+ var GOAL_FEATURE_DISABLED_MESSAGE = "The /goal feature is behind slash_goal. Run /experiments enable slash_goal, then try again.";
8
8
  function isGoalFeatureEnabled(config) {
9
9
  if (!config) return false;
10
10
  return getFeatureState(config, GOAL_FEATURE_ID)?.enabled ?? false;
@@ -3,7 +3,7 @@
3
3
  var _chunkWGNMOVMTcjs = require('./chunk-WGNMOVMT.cjs');
4
4
 
5
5
 
6
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
6
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
7
7
 
8
8
  // src/commands/add-dir.ts
9
9
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -34,7 +34,7 @@ async function addDir(ctx, args) {
34
34
  }
35
35
  const resolvedPath = _path2.default.resolve(dirPath);
36
36
  if (!await _fsextra2.default.pathExists(resolvedPath)) {
37
- console.log(_chalk2.default.red(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.notFound", { path: dirPath })));
37
+ console.log(_chalk2.default.red(_chunkRJCZLFHEcjs.t.call(void 0, "commands.addDir.notFound", { path: dirPath })));
38
38
  return null;
39
39
  }
40
40
  const stats = await _fsextra2.default.stat(resolvedPath);
@@ -53,17 +53,17 @@ async function addDir(ctx, args) {
53
53
  return null;
54
54
  }
55
55
  if (ctx.additionalDirs.includes(resolvedPath)) {
56
- console.log(_chalk2.default.yellow(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.alreadyAdded", { path: resolvedPath })));
56
+ console.log(_chalk2.default.yellow(_chunkRJCZLFHEcjs.t.call(void 0, "commands.addDir.alreadyAdded", { path: resolvedPath })));
57
57
  return null;
58
58
  }
59
59
  ctx.addAdditionalDir(resolvedPath);
60
- console.log(_chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.added", { path: resolvedPath })));
60
+ console.log(_chalk2.default.green(_chunkRJCZLFHEcjs.t.call(void 0, "commands.addDir.added", { path: resolvedPath })));
61
61
  console.log(_chalk2.default.gray("You can now read, write, and modify files in this directory."));
62
62
  return null;
63
63
  }
64
64
  var metadata = {
65
65
  command: "/add-dir",
66
- description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.description"),
66
+ description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.addDir.description"),
67
67
  implemented: true
68
68
  };
69
69
 
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkHK5A54AVcjs = require('./chunk-HK5A54AV.cjs');
3
+ var _chunk7TO3PDMVcjs = require('./chunk-7TO3PDMV.cjs');
4
4
 
5
5
  // src/goals/feature.ts
6
6
  var GOAL_FEATURE_ID = "slash_goal";
7
- var GOAL_FEATURE_DISABLED_MESSAGE = "The /goal feature is behind slash_goal. Run /features enable slash_goal, then try again.";
7
+ var GOAL_FEATURE_DISABLED_MESSAGE = "The /goal feature is behind slash_goal. Run /experiments enable slash_goal, then try again.";
8
8
  function isGoalFeatureEnabled(config) {
9
9
  if (!config) return false;
10
- return _nullishCoalesce(_optionalChain([_chunkHK5A54AVcjs.getFeatureState.call(void 0, config, GOAL_FEATURE_ID), 'optionalAccess', _ => _.enabled]), () => ( false));
10
+ return _nullishCoalesce(_optionalChain([_chunk7TO3PDMVcjs.getFeatureState.call(void 0, config, GOAL_FEATURE_ID), 'optionalAccess', _ => _.enabled]), () => ( false));
11
11
  }
12
12
  function resolveGoalFeatureEnabled(config, isFeatureEnabled) {
13
13
  const localDefault = isGoalFeatureEnabled(config);