autohand-cli 0.9.0 → 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 (455) hide show
  1. package/README.md +118 -76
  2. package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
  3. package/dist/AgentRegistry-JBXZUPML.js +18 -0
  4. package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
  5. package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
  6. package/dist/{HookManager-CWLTFKWO.js → HookManager-BELBPQQI.js} +1 -1
  7. package/dist/{HookManager-TMAJQU4S.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
  8. package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-U6CIJREW.cjs} +13 -13
  9. package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-VJFSWSUQ.js} +4 -4
  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-2HR737UE.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
  15. package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
  16. package/dist/{PermissionManager-KMYILJ4Z.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-HFPRVQ25.js → ProviderFactory-XUT6BSGB.js} +4 -2
  20. package/dist/SessionManager-LGPQIA57.cjs +10 -0
  21. package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-OR4KDDDS.js} +2 -2
  22. package/dist/{SkillsRegistry-4RRD5GMX.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/{SyncApiClient-LRPFNCKJ.js → SyncApiClient-G3FM65IV.js} +1 -1
  27. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  28. package/dist/{about-BW3PDZUU.js → about-OYVGQMJJ.js} +5 -4
  29. package/dist/about-U2BH7HDR.cjs +15 -0
  30. package/dist/{acp-VHEL7BOW.js → acp-JWHGXZL5.js} +207 -102
  31. package/dist/{acp-EOETGAHC.cjs → acp-S37JOBCS.cjs} +226 -121
  32. package/dist/actionExecutor-2QEPMELQ.cjs +28 -0
  33. package/dist/actionExecutor-6NCCORRB.js +28 -0
  34. package/dist/add-dir-KFUHSIR2.cjs +11 -0
  35. package/dist/{add-dir-VFX7QT4E.js → add-dir-MM2BM2Z2.js} +2 -2
  36. package/dist/agent-DUIYLIVN.js +132 -0
  37. package/dist/agent-YYEHGDAK.cjs +132 -0
  38. package/dist/agents-GBGG4CW7.cjs +19 -0
  39. package/dist/agents-ZH34C72F.js +19 -0
  40. package/dist/agents-new-ERXLS7SB.cjs +17 -0
  41. package/dist/agents-new-EVTGPTA4.js +17 -0
  42. package/dist/{autoSkill-EFMK6WU6.js → autoSkill-HEWKJ5JV.js} +2 -2
  43. package/dist/autoSkill-YL6PN6AV.cjs +20 -0
  44. package/dist/automode-4BJ7FNPL.cjs +10 -0
  45. package/dist/{automode-BMYSRM34.js → automode-S4U7A7Q2.js} +2 -2
  46. package/dist/chrome-45ZXHL5N.cjs +22 -0
  47. package/dist/{chrome-NHJ44WUN.js → chrome-BBSRVG6S.js} +2 -2
  48. package/dist/chrome-IFVZRHAT.cjs +50 -0
  49. package/dist/chrome-MYE6DNA2.js +22 -0
  50. package/dist/chunk-24CEJYEG.cjs +579 -0
  51. package/dist/{chunk-47PHDKNW.cjs → chunk-255GIVM2.cjs} +6 -6
  52. package/dist/{chunk-DIZTWFVR.cjs → chunk-2BDSR2OW.cjs} +238 -61
  53. package/dist/{chunk-BL2UC7HC.js → chunk-2BPIR7LA.js} +121 -4
  54. package/dist/{chunk-BQ22N3TX.cjs → chunk-2NY7OHBF.cjs} +47 -27
  55. package/dist/chunk-2WUNHTXL.js +303 -0
  56. package/dist/{chunk-HQWQZML5.cjs → chunk-34B6ZO6W.cjs} +124 -7
  57. package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
  58. package/dist/{chunk-4256YRCO.cjs → chunk-3CAXECWJ.cjs} +30 -17
  59. package/dist/{chunk-KNTUI4TZ.cjs → chunk-3CBYUBZC.cjs} +5 -5
  60. package/dist/chunk-3DF3GZQ7.js +277 -0
  61. package/dist/{chunk-E26KKI46.cjs → chunk-3JURXAL6.cjs} +61 -8
  62. package/dist/{chunk-MOJ7ADW4.cjs → chunk-3KWAP2Y3.cjs} +88 -9
  63. package/dist/{chunk-OHWMWKJQ.js → chunk-3MCK6UBL.js} +1 -1
  64. package/dist/{chunk-5VHP6HDQ.js → chunk-3TH7IK4M.js} +62 -9
  65. package/dist/{chunk-ACDQGA4Z.js → chunk-3V77OB3W.js} +7 -72
  66. package/dist/{chunk-HS4USDND.cjs → chunk-3Y5UEK7K.cjs} +4 -4
  67. package/dist/{chunk-XV2HXRHX.js → chunk-4GPPSBEZ.js} +3 -3
  68. package/dist/chunk-5CMBAJ6K.js +377 -0
  69. package/dist/{chunk-MO4KP6XS.cjs → chunk-5YRXFBYZ.cjs} +35 -6
  70. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  71. package/dist/chunk-6AC2TT26.js +156 -0
  72. package/dist/{chunk-UGFVM77J.cjs → chunk-6EIQ6A6U.cjs} +2 -2
  73. package/dist/{chunk-SWCQM52V.js → chunk-6HSEDXVF.js} +4 -4
  74. package/dist/{chunk-QQ7PANOP.js → chunk-6NUXK62F.js} +1 -1
  75. package/dist/{chunk-5CMYEM3R.cjs → chunk-6TGCAPYH.cjs} +62 -9
  76. package/dist/{chunk-NMQ47RCG.js → chunk-6W3SZCSP.js} +1 -1
  77. package/dist/{chunk-VRMZO6TB.js → chunk-73LV3DDZ.js} +7 -6
  78. package/dist/{chunk-3GUEUCZK.js → chunk-7BGGLIQF.js} +85 -1
  79. package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
  80. package/dist/{chunk-LQBONA55.cjs → chunk-7EEK7CRR.cjs} +85 -1
  81. package/dist/chunk-7TO3PDMV.cjs +324 -0
  82. package/dist/chunk-7UU22RSH.cjs +277 -0
  83. package/dist/{chunk-E6GFD7VR.cjs → chunk-A3GAM6FM.cjs} +11 -11
  84. package/dist/{chunk-DEQVRSV5.cjs → chunk-A7DJU75T.cjs} +8 -8
  85. package/dist/{chunk-DPSIGY6L.cjs → chunk-AAAO4ERQ.cjs} +9 -9
  86. package/dist/{chunk-FQAVGSPW.js → chunk-AAJLMP57.js} +2 -2
  87. package/dist/chunk-ABR756QN.js +529 -0
  88. package/dist/{chunk-JYKPWK5O.js → chunk-APFGDIPD.js} +3 -1
  89. package/dist/{chunk-Y3M2DABP.js → chunk-APQYRMYL.js} +4 -4
  90. package/dist/{chunk-Q2IL4DDI.cjs → chunk-AZKOIF2G.cjs} +62 -19
  91. package/dist/{chunk-MXVIDIC6.cjs → chunk-AZLHUPNC.cjs} +2 -2
  92. package/dist/chunk-B55VCYSQ.cjs +30 -0
  93. package/dist/{chunk-WZV6UVPY.js → chunk-BLQUMSM3.js} +1 -1
  94. package/dist/{chunk-PHJO5YAL.cjs → chunk-BXKPX6K4.cjs} +9 -9
  95. package/dist/{chunk-3KLSNNRW.cjs → chunk-C66FN2LP.cjs} +4 -4
  96. package/dist/{chunk-OV3PVUYN.js → chunk-CH7KUFAS.js} +9 -9
  97. package/dist/{chunk-CWINVFRI.cjs → chunk-CILSXOPI.cjs} +17 -17
  98. package/dist/{chunk-3UT7R3XV.js → chunk-CM24K6ZT.js} +145 -12
  99. package/dist/chunk-CMEZ42F2.cjs +303 -0
  100. package/dist/{chunk-46C73ZKK.cjs → chunk-CNQKIWIS.cjs} +152 -19
  101. package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
  102. package/dist/{chunk-REMGR23V.cjs → chunk-CSUGNNJY.cjs} +10 -4
  103. package/dist/{chunk-TBOLJDUG.js → chunk-D6HB3H3L.js} +31 -11
  104. package/dist/{chunk-OM24WXEE.js → chunk-D7AYKVKW.js} +2 -2
  105. package/dist/{chunk-6GUODJKM.cjs → chunk-DLCXWOWT.cjs} +23 -23
  106. package/dist/{chunk-CH2J4PVE.cjs → chunk-DMM2BKSV.cjs} +121 -28
  107. package/dist/{chunk-M4KNC5BQ.js → chunk-DW3DPV77.js} +1 -1
  108. package/dist/chunk-ECQD2QC3.cjs +33 -0
  109. package/dist/{chunk-UEIXJG45.js → chunk-EEYOS3UC.js} +116 -80
  110. package/dist/{chunk-7HPWMALN.js → chunk-EF2EN5CR.js} +2 -2
  111. package/dist/{chunk-7LWQCE4Y.cjs → chunk-EFXFURDY.cjs} +192 -58
  112. package/dist/chunk-EK34UZPB.cjs +40 -0
  113. package/dist/{chunk-7JLT2VNW.cjs → chunk-FJR6EZLO.cjs} +9666 -7201
  114. package/dist/{chunk-GZ6DV2UG.js → chunk-FPO7YNPQ.js} +1 -1
  115. package/dist/{chunk-O64I2GYI.js → chunk-FS4I6BNR.js} +1 -1
  116. package/dist/{chunk-MX75JYIY.js → chunk-FSJ2MNOC.js} +3 -3
  117. package/dist/{chunk-7RFJB75Y.js → chunk-GEHZMC4G.js} +11 -8
  118. package/dist/{chunk-UWFG2R2I.cjs → chunk-GO6C2RAR.cjs} +36 -9
  119. package/dist/{chunk-WGLBC5AY.cjs → chunk-GSMR6V36.cjs} +4 -4
  120. package/dist/{chunk-Z3XSSF7B.js → chunk-GSZWATME.js} +1 -1
  121. package/dist/{chunk-7MU7LWF3.cjs → chunk-GYLGCR6F.cjs} +5 -5
  122. package/dist/{chunk-O6TQP7U7.cjs → chunk-H3OOWNYQ.cjs} +3 -3
  123. package/dist/{chunk-2QL6MNXG.js → chunk-H65446XW.js} +115 -20
  124. package/dist/chunk-H7HXRRHK.js +324 -0
  125. package/dist/{chunk-ZZ63NW7A.cjs → chunk-HN2JTDN5.cjs} +17 -17
  126. package/dist/{chunk-AOKCI722.cjs → chunk-HNXUZ5OY.cjs} +2 -2
  127. package/dist/{chunk-AUYSIEVV.cjs → chunk-HOYT3E65.cjs} +3 -3
  128. package/dist/{chunk-DMRXF5DU.js → chunk-HTPY5ESD.js} +3 -3
  129. package/dist/chunk-HTU4W3GB.js +183 -0
  130. package/dist/{chunk-3DDL2E55.cjs → chunk-HVLWH2AF.cjs} +10 -10
  131. package/dist/{chunk-HSCUPEA4.cjs → chunk-HZTEU4W5.cjs} +74 -105
  132. package/dist/{chunk-XGMI6IYB.cjs → chunk-I5T7LPFP.cjs} +7 -7
  133. package/dist/{chunk-XIVFAD2L.js → chunk-IB5CJXE7.js} +173 -12
  134. package/dist/chunk-INNXFLDR.cjs +388 -0
  135. package/dist/{chunk-75EDROHL.cjs → chunk-JFLEP3T7.cjs} +10 -10
  136. package/dist/chunk-JJGDOBFL.js +40 -0
  137. package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
  138. package/dist/{chunk-HJIXWGQZ.js → chunk-JSU46T6K.js} +1 -1
  139. package/dist/{chunk-AT7OWLY5.js → chunk-K6WN6BT4.js} +1 -1
  140. package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
  141. package/dist/{chunk-3S563FNF.cjs → chunk-KIQH3SMT.cjs} +34 -31
  142. package/dist/{chunk-BWF4VDYE.js → chunk-KPRXHIE2.js} +54 -85
  143. package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
  144. package/dist/{chunk-A7HHCIDQ.js → chunk-LIO3RX2Z.js} +2 -2
  145. package/dist/{chunk-DLP436GI.js → chunk-LOSXLH7P.js} +110 -17
  146. package/dist/{chunk-IEXKKKOF.cjs → chunk-LSOR72PB.cjs} +23 -23
  147. package/dist/{chunk-IAGCRVJ3.js → chunk-MA3AVDCC.js} +55 -12
  148. package/dist/{chunk-B5CGDNMR.js → chunk-ME3S2WIR.js} +3 -3
  149. package/dist/{chunk-HKYZSUQ5.js → chunk-NC2I2M4P.js} +4 -4
  150. package/dist/{chunk-GBMDFWJX.cjs → chunk-NC4A4LVC.cjs} +13 -13
  151. package/dist/{chunk-E46DJH5S.js → chunk-NGEK5FCJ.js} +176 -3
  152. package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
  153. package/dist/{chunk-62RTC3XX.js → chunk-NKW6CHXQ.js} +1 -1
  154. package/dist/{chunk-3PXKRVCW.js → chunk-NOWCRKP2.js} +10 -4
  155. package/dist/{chunk-HXJEGMGB.js → chunk-NUB2LMB6.js} +2 -2
  156. package/dist/chunk-NVATU4V6.cjs +44 -0
  157. package/dist/chunk-O246MKIW.cjs +267 -0
  158. package/dist/{chunk-QCHIDZBA.js → chunk-OGFWL2PS.js} +1 -1
  159. package/dist/{chunk-JJ4KA7HK.cjs → chunk-ONNGAR6W.cjs} +415 -551
  160. package/dist/{chunk-TKKN34TV.js → chunk-OOFR6A62.js} +33 -4
  161. package/dist/{chunk-6NVAK6CK.js → chunk-OZ7FHO7J.js} +2 -2
  162. package/dist/{chunk-2CGE7ZV3.cjs → chunk-P5EWGUI2.cjs} +201 -28
  163. package/dist/{chunk-GGLKUENP.js → chunk-P6BQJPAI.js} +191 -14
  164. package/dist/{chunk-TWQDAUZU.js → chunk-PG2JIU5M.js} +60 -7
  165. package/dist/chunk-PI27G2ED.cjs +377 -0
  166. package/dist/{chunk-YV63VW4K.js → chunk-PI7LRPL6.js} +1 -1
  167. package/dist/{chunk-TXPSTCG7.cjs → chunk-PMPEC5HN.cjs} +18 -15
  168. package/dist/{chunk-ROLA6EFO.cjs → chunk-PYUP7AKY.cjs} +14 -14
  169. package/dist/{chunk-BFQDQRDE.js → chunk-QC5Z3ZT5.js} +2 -2
  170. package/dist/chunk-QDO4L2A7.cjs +156 -0
  171. package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
  172. package/dist/{chunk-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
  173. package/dist/chunk-QVXMSQOG.js +430 -0
  174. package/dist/{chunk-ZHJ7JGME.cjs → chunk-R4UKBKDY.cjs} +11 -11
  175. package/dist/{chunk-IGMPWJ2I.cjs → chunk-R75AWII3.cjs} +118 -23
  176. package/dist/{chunk-VGEV44V2.cjs → chunk-RD5PLUIX.cjs} +191 -30
  177. package/dist/{chunk-I24CWKKK.js → chunk-RGB34CV5.js} +3 -3
  178. package/dist/{chunk-CHI52KFR.cjs → chunk-RJCZLFHE.cjs} +246 -39
  179. package/dist/{chunk-D2OSPLYC.cjs → chunk-RKWNM2BJ.cjs} +2 -2
  180. package/dist/{chunk-FGT6KK6T.js → chunk-RMVONICR.js} +3 -3
  181. package/dist/{chunk-Q6AC3PHY.cjs → chunk-RPSYRJL7.cjs} +10 -4
  182. package/dist/chunk-RS2E32YB.js +71 -0
  183. package/dist/chunk-RWKU2X7O.js +388 -0
  184. package/dist/chunk-RZLEGVMH.cjs +565 -0
  185. package/dist/{chunk-5F6ZKSHO.js → chunk-S2L3Y677.js} +1 -1
  186. package/dist/{chunk-ARBEHFCG.js → chunk-S7KVUIOS.js} +1 -1
  187. package/dist/{chunk-AC7DZ6SK.cjs → chunk-SACJJ6NO.cjs} +5 -3
  188. package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
  189. package/dist/{chunk-CBFH2J3O.js → chunk-SJQU2ZFR.js} +246 -39
  190. package/dist/{chunk-GWO66KBI.js → chunk-SKAQKQFF.js} +12 -2
  191. package/dist/chunk-T4DXP5OP.js +30 -0
  192. package/dist/{chunk-CFFE4VA3.js → chunk-T6FTB6K2.js} +1 -1
  193. package/dist/{chunk-U4C3HW6P.js → chunk-T6N6GRFT.js} +13 -10
  194. package/dist/{chunk-D6GZBSOX.js → chunk-TJFKA6A7.js} +82 -3
  195. package/dist/{chunk-2HOLOHVK.js → chunk-TJZUPS4Z.js} +163 -299
  196. package/dist/{chunk-RBZ7AFX7.cjs → chunk-TLKHZ425.cjs} +2 -2
  197. package/dist/{chunk-J2K57QM7.cjs → chunk-TQ24NLXO.cjs} +6 -6
  198. package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
  199. package/dist/{chunk-OPNI6O7F.cjs → chunk-TZB5XADL.cjs} +4 -4
  200. package/dist/{chunk-6HH236FV.cjs → chunk-UAYXZXWU.cjs} +4 -4
  201. package/dist/{chunk-MPULXVC4.cjs → chunk-UKBFNBDO.cjs} +11 -11
  202. package/dist/chunk-UMJYX5KD.js +565 -0
  203. package/dist/chunk-USKYTHDL.cjs +235 -0
  204. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  205. package/dist/{chunk-MQESBFBZ.cjs → chunk-VAJUSZMC.cjs} +21 -20
  206. package/dist/{chunk-PQLKJCIE.js → chunk-VGQG4NBJ.js} +2 -2
  207. package/dist/chunk-VLUIVJ3J.js +235 -0
  208. package/dist/chunk-VOBINVMV.cjs +430 -0
  209. package/dist/{chunk-L4F7SUYL.js → chunk-VSHKKCSH.js} +16 -5
  210. package/dist/{chunk-LDJQ5QHG.cjs → chunk-VSZU3MGA.cjs} +28 -17
  211. package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
  212. package/dist/{chunk-EZJHLOWP.js → chunk-VXGYFX45.js} +20 -7
  213. package/dist/{chunk-JIMSII7R.js → chunk-WH6YUQDB.js} +193 -59
  214. package/dist/{chunk-VKBIE6I6.js → chunk-WQ6TD55V.js} +2 -2
  215. package/dist/{chunk-ZR46OJNZ.js → chunk-WQWECXTY.js} +3 -3
  216. package/dist/{chunk-SOLBYSLY.cjs → chunk-WVDJUJH6.cjs} +2 -2
  217. package/dist/{chunk-QKP772OZ.js → chunk-X24VIVDZ.js} +963 -103
  218. package/dist/{chunk-37M5UM6I.js → chunk-X4NRTLXD.js} +7 -1
  219. package/dist/chunk-X53SHYCG.js +27 -0
  220. package/dist/{chunk-PUD76XQT.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
  221. package/dist/chunk-Y47OJGLB.cjs +27 -0
  222. package/dist/{chunk-WRTXCQ3V.cjs → chunk-Y4MN27V3.cjs} +1080 -220
  223. package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
  224. package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
  225. package/dist/{chunk-PDHT7LQS.cjs → chunk-YMXYC777.cjs} +3 -3
  226. package/dist/{chunk-TJNBASFD.cjs → chunk-Z3GRWK6O.cjs} +8 -8
  227. package/dist/{chunk-JP3YHTQ2.cjs → chunk-Z5GG2KSL.cjs} +4 -4
  228. package/dist/{chunk-ZPD2AO3U.js → chunk-ZER7DYQK.js} +2 -2
  229. package/dist/{chunk-UXLW45ZE.cjs → chunk-ZFDXZEZJ.cjs} +25 -90
  230. package/dist/chunk-ZFV4HJA6.js +579 -0
  231. package/dist/chunk-ZHMYTI5D.cjs +529 -0
  232. package/dist/{chunk-CCVMREXI.js → chunk-ZLR2TFBC.js} +35 -8
  233. package/dist/{chunk-J5ADZN6V.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
  234. package/dist/chunk-ZUYYHKQA.js +44 -0
  235. package/dist/{chunk-AUFNACED.js → chunk-ZVLVLDYN.js} +9086 -6621
  236. package/dist/clear-AJGXD2BB.cjs +12 -0
  237. package/dist/{clear-OFLFQ3MR.js → clear-HAHDSWKW.js} +3 -3
  238. package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
  239. package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-OLKEUGMX.js} +6 -6
  240. package/dist/completion-G7Z436TF.cjs +17 -0
  241. package/dist/{completion-PT4VM2H2.js → completion-ZS3AXJ6A.js} +5 -5
  242. package/dist/{config-R4O7GBTY.js → config-OWYAQPCX.js} +5 -3
  243. package/dist/config-W2BHT2QE.cjs +22 -0
  244. package/dist/{constants-HVCHVQAF.js → constants-AS6K67AA.js} +5 -3
  245. package/dist/constants-B4W5BT7F.cjs +23 -0
  246. package/dist/{export-3PK3VFCE.js → export-5HIU3KMD.js} +5 -5
  247. package/dist/export-GFD32UY2.cjs +15 -0
  248. package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
  249. package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
  250. package/dist/feature-KP74CZ3F.cjs +14 -0
  251. package/dist/feature-OPNVMB2E.js +14 -0
  252. package/dist/features-LT55MURX.cjs +24 -0
  253. package/dist/features-ZDIU26WX.js +24 -0
  254. package/dist/feedback-7WTJFQ6S.js +18 -0
  255. package/dist/feedback-CEOJ3453.cjs +18 -0
  256. package/dist/go-2CY5SZNR.js +16 -0
  257. package/dist/go-O2CSQON4.cjs +16 -0
  258. package/dist/goal-DL2N2AWT.cjs +16 -0
  259. package/dist/goal-IJS7VZSG.js +16 -0
  260. package/dist/help-RNOGDEBA.cjs +12 -0
  261. package/dist/{help-X3OAZ3CY.js → help-TCWD2IRH.js} +2 -2
  262. package/dist/{history-YKFPHBJN.js → history-ATOR5OQV.js} +2 -2
  263. package/dist/history-UUSGX2AL.cjs +14 -0
  264. package/dist/{hooks-7TA4PIIB.js → hooks-R3Z5QKUP.js} +6 -6
  265. package/dist/hooks-RWM5UY67.cjs +18 -0
  266. package/dist/{i18n-2KBUU7XL.js → i18n-4QI4TD4I.js} +1 -1
  267. package/dist/i18n-MFAEU5RV.cjs +33 -0
  268. package/dist/ide-6PBTCCUQ.js +15 -0
  269. package/dist/ide-UE3G7NMQ.cjs +15 -0
  270. package/dist/{import-I7T4ZHYL.cjs → import-2IG76KAN.cjs} +6 -4
  271. package/dist/{import-JWPYKXCZ.js → import-E47QL4DW.js} +2 -2
  272. package/dist/import-NQDNBFUL.cjs +10 -0
  273. package/dist/{import-4CHYLS4K.js → import-VQIHGJWS.js} +6 -4
  274. package/dist/index.cjs +512 -305
  275. package/dist/index.d.cts +40 -0
  276. package/dist/index.d.ts +40 -0
  277. package/dist/index.js +402 -195
  278. package/dist/init-DX3RDGDT.cjs +10 -0
  279. package/dist/{init-262MWZV4.js → init-Q54OAAFZ.js} +2 -2
  280. package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-V2VBDRM7.js} +3 -3
  281. package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
  282. package/dist/language-I6KXAOXD.js +23 -0
  283. package/dist/language-XMIVOH5E.cjs +23 -0
  284. package/dist/learn-JPVVGTKU.js +23 -0
  285. package/dist/learn-NLSHI2MZ.cjs +23 -0
  286. package/dist/login-NABQYLYC.cjs +28 -0
  287. package/dist/login-XPOVFSWN.js +28 -0
  288. package/dist/logout-HNHCGB4Q.js +25 -0
  289. package/dist/logout-SKGDXJSW.cjs +25 -0
  290. package/dist/{mcp-5O6PUL4G.js → mcp-EN73YFGZ.js} +8 -6
  291. package/dist/mcp-TADZCPJQ.cjs +22 -0
  292. package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-2GKWWBAS.cjs} +15 -13
  293. package/dist/{mcp-install-6XWXLFVY.js → mcp-install-3TBTVSHW.js} +10 -8
  294. package/dist/memory-GRXFTDIN.cjs +10 -0
  295. package/dist/{memory-Q54CESNM.js → memory-K2P3CDCH.js} +2 -2
  296. package/dist/{model-6AJ77PJG.js → model-DEG22OWA.js} +2 -2
  297. package/dist/model-OSD74T7Z.cjs +10 -0
  298. package/dist/new-4NWBOATU.cjs +12 -0
  299. package/dist/{new-ZXHEWC2S.js → new-KJAP2MB6.js} +3 -3
  300. package/dist/onboarding-2U5WE2OA.js +39 -0
  301. package/dist/onboarding-5DZFCO5Q.cjs +39 -0
  302. package/dist/permissions-KY5I6YQ3.cjs +10 -0
  303. package/dist/{permissions-YHJMVA6L.js → permissions-TKYON7PP.js} +2 -2
  304. package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
  305. package/dist/plan-PYKP652W.cjs +13 -0
  306. package/dist/quit-GSKJL42O.js +14 -0
  307. package/dist/quit-TQSRTBUT.cjs +14 -0
  308. package/dist/{registry-34GL6BNJ.js → registry-EZ4V4TUQ.js} +1339 -1
  309. package/dist/{registry-V24W7YK6.cjs → registry-LCWYI4IB.cjs} +1378 -40
  310. package/dist/resume-4VWJXARX.cjs +17 -0
  311. package/dist/resume-TLHWWWFN.js +17 -0
  312. package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
  313. package/dist/review-XLJEUH5K.cjs +9 -0
  314. package/dist/{rpc-S3DGW6KV.js → rpc-3DLQBDWU.js} +301 -130
  315. package/dist/{rpc-NPS3PU4O.cjs → rpc-O36WUU3L.cjs} +399 -228
  316. package/dist/search-DSX2CY4A.cjs +22 -0
  317. package/dist/search-I3QUDUQL.js +22 -0
  318. package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
  319. package/dist/sessionBranching-FKV4CR36.js +19 -0
  320. package/dist/sessions-3JUOT3ED.cjs +10 -0
  321. package/dist/{sessions-IYAXMK23.js → sessions-VWMDIPOS.js} +2 -2
  322. package/dist/settings-FT2LZZUV.js +45 -0
  323. package/dist/settings-RL4KNWHB.cjs +45 -0
  324. package/dist/setup-HQEJVOYT.js +32 -0
  325. package/dist/setup-MN54LKOL.cjs +32 -0
  326. package/dist/share-BUAFZNBX.cjs +17 -0
  327. package/dist/share-CGB6MAVJ.js +17 -0
  328. package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
  329. package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
  330. package/dist/{skills-VWOMV3CR.js → skills-7DKR3HRZ.js} +8 -8
  331. package/dist/{skills-MVIZNHT4.js → skills-BBBENOEY.js} +9 -9
  332. package/dist/skills-OQM7IHAF.cjs +29 -0
  333. package/dist/{skills-GGMZOVIE.cjs → skills-RA2PKL63.cjs} +10 -10
  334. package/dist/{skills-install-VTAMCNNY.cjs → skills-install-D7K476SL.cjs} +16 -16
  335. package/dist/{skills-install-QBA5RCV6.js → skills-install-T4SOKJSL.js} +9 -9
  336. package/dist/skills-new-S33NGEU3.js +18 -0
  337. package/dist/skills-new-UVYH53MD.cjs +18 -0
  338. package/dist/slashCommands-MWOUDSQP.js +111 -0
  339. package/dist/slashCommands-XASURUTV.cjs +111 -0
  340. package/dist/squad-PIIYDFVH.cjs +15 -0
  341. package/dist/squad-VHYOVEJP.js +15 -0
  342. package/dist/status-GHFTXQBL.js +25 -0
  343. package/dist/status-WXMIJIU3.cjs +25 -0
  344. package/dist/statusline-2K7AC6ZQ.js +21 -0
  345. package/dist/statusline-GROI4HOC.cjs +21 -0
  346. package/dist/sync-254WF6JI.cjs +42 -0
  347. package/dist/sync-2DIZN4EH.cjs +24 -0
  348. package/dist/{sync-7BILIQHP.js → sync-J6I2ZUKQ.js} +6 -4
  349. package/dist/{sync-7OKF6636.js → sync-Z3LVSEEV.js} +8 -5
  350. package/dist/{teammate-J6PHGL23.cjs → teammate-EXR76PEQ.cjs} +9 -8
  351. package/dist/{teammate-GZQSCIMS.js → teammate-K4DAOFEQ.js} +8 -7
  352. package/dist/templates-ARG2VRWW.cjs +11 -0
  353. package/dist/templates-UGVZV3KJ.js +11 -0
  354. package/dist/theme-MVQDSU47.js +23 -0
  355. package/dist/theme-QAKEYWJG.cjs +23 -0
  356. package/dist/ui/questionModal.cjs +6 -6
  357. package/dist/ui/questionModal.js +5 -5
  358. package/dist/{undo-SZEHLX7X.js → undo-5AU47JHF.js} +2 -2
  359. package/dist/undo-ME6WKUXZ.cjs +10 -0
  360. package/dist/usage-QTKO2YMD.js +25 -0
  361. package/dist/usage-TYNJKVER.cjs +25 -0
  362. package/package.json +10 -4
  363. package/dist/AgentRegistry-EGBDIUAK.cjs +0 -10
  364. package/dist/AgentRegistry-XPWSVO3Q.js +0 -10
  365. package/dist/CommunitySkillsCache-2OIUV227.cjs +0 -8
  366. package/dist/LearnAdvisor-46FG2XIP.js +0 -9
  367. package/dist/LearnAdvisor-XBRDNAGH.cjs +0 -9
  368. package/dist/MemoryManager-34L4YOKA.cjs +0 -8
  369. package/dist/MemoryManager-WJMLPWGU.js +0 -8
  370. package/dist/NVIDIAProvider-MVTL62PR.cjs +0 -14
  371. package/dist/PermissionManager-5OOJ7FAT.cjs +0 -11
  372. package/dist/ProviderFactory-C3YPXTDD.cjs +0 -11
  373. package/dist/SessionManager-WAPTFMDO.cjs +0 -10
  374. package/dist/SkillsRegistry-7AJP74GJ.cjs +0 -9
  375. package/dist/SubAgent-FDIH3DXB.js +0 -11
  376. package/dist/SubAgent-HVL2ICVZ.cjs +0 -11
  377. package/dist/SyncApiClient-VMBOLQ6H.cjs +0 -11
  378. package/dist/about-FCAX37YC.cjs +0 -14
  379. package/dist/actionExecutor-33I47NZS.js +0 -24
  380. package/dist/actionExecutor-4YBMR3YH.cjs +0 -24
  381. package/dist/add-dir-7SS6KSH5.cjs +0 -11
  382. package/dist/agent-DMRUFU4M.cjs +0 -116
  383. package/dist/agent-WCJEYQJT.js +0 -116
  384. package/dist/agents-CHROO3VU.cjs +0 -17
  385. package/dist/agents-UVDUL65K.js +0 -17
  386. package/dist/agents-new-AUBWSOXP.js +0 -17
  387. package/dist/agents-new-Y562WC47.cjs +0 -17
  388. package/dist/autoSkill-YOLLFTP2.cjs +0 -20
  389. package/dist/automode-DBLKTTKD.cjs +0 -10
  390. package/dist/chrome-ATC4OO5I.cjs +0 -20
  391. package/dist/chrome-O62WXV7F.js +0 -20
  392. package/dist/chrome-XHJLCO4M.cjs +0 -50
  393. package/dist/chunk-6XVVIY54.cjs +0 -256
  394. package/dist/chunk-AU6JAGZJ.cjs +0 -231
  395. package/dist/chunk-N6O3XUZ2.cjs +0 -23
  396. package/dist/chunk-VDWJMWDF.js +0 -256
  397. package/dist/clear-33TWQ2ES.cjs +0 -12
  398. package/dist/communityInstaller-TWMGPSYM.cjs +0 -22
  399. package/dist/completion-IIZMHXYP.cjs +0 -17
  400. package/dist/config-KL6WU7R2.cjs +0 -20
  401. package/dist/constants-RLMJ5D5P.cjs +0 -21
  402. package/dist/export-WLGNWEMJ.cjs +0 -15
  403. package/dist/feedback-G635NCLJ.js +0 -18
  404. package/dist/feedback-LLMK3TZH.cjs +0 -18
  405. package/dist/help-BAXLP2M2.cjs +0 -12
  406. package/dist/history-6HOJSEMT.cjs +0 -14
  407. package/dist/hooks-XVFU67T2.cjs +0 -18
  408. package/dist/i18n-MUJMKTFM.cjs +0 -33
  409. package/dist/ide-CCQ33PGC.cjs +0 -15
  410. package/dist/ide-VLVFBZ5F.js +0 -15
  411. package/dist/import-J46F54JY.cjs +0 -10
  412. package/dist/init-EE5Y7RBL.cjs +0 -10
  413. package/dist/inputPrompt-IIFKCX5Q.cjs +0 -90
  414. package/dist/language-CVLPB7OV.js +0 -21
  415. package/dist/language-ZTWFHUSV.cjs +0 -21
  416. package/dist/learn-PON7I5QS.js +0 -23
  417. package/dist/learn-XLRSVNA3.cjs +0 -23
  418. package/dist/login-223QTGBG.cjs +0 -26
  419. package/dist/login-6IKTBUBY.js +0 -26
  420. package/dist/logout-RN2AG6SI.js +0 -23
  421. package/dist/logout-U3M4FFX7.cjs +0 -23
  422. package/dist/mcp-NUQ76QQB.cjs +0 -20
  423. package/dist/memory-CYMDQ2YC.cjs +0 -10
  424. package/dist/model-IDRCKDML.cjs +0 -10
  425. package/dist/new-7LEWOUF2.cjs +0 -12
  426. package/dist/onboarding-FXX7YHSJ.cjs +0 -35
  427. package/dist/onboarding-JYNMK6NI.js +0 -35
  428. package/dist/permissions-YBNSANIA.cjs +0 -10
  429. package/dist/plan-XEJMOT55.cjs +0 -13
  430. package/dist/quit-B43SJ6E4.cjs +0 -10
  431. package/dist/quit-GWTNHQSP.js +0 -10
  432. package/dist/resume-DYVOQN5L.cjs +0 -16
  433. package/dist/resume-M25UQKOX.js +0 -16
  434. package/dist/review-UWHWQHCB.cjs +0 -9
  435. package/dist/search-CPX4PWHP.js +0 -20
  436. package/dist/search-VUF3M4N3.cjs +0 -20
  437. package/dist/sessions-JODKER5D.cjs +0 -10
  438. package/dist/settings-55BNW6BF.js +0 -33
  439. package/dist/settings-BKTS7OMC.cjs +0 -33
  440. package/dist/setup-IRC5HQG2.js +0 -29
  441. package/dist/setup-MMQ7TWOP.cjs +0 -29
  442. package/dist/share-6JRQECAH.cjs +0 -17
  443. package/dist/share-YM5MJKMO.js +0 -17
  444. package/dist/skills-LWSOKOSH.cjs +0 -29
  445. package/dist/skills-new-GPL46YV2.js +0 -18
  446. package/dist/skills-new-L5BEZN5V.cjs +0 -18
  447. package/dist/slashCommands-FBPCIWM5.cjs +0 -95
  448. package/dist/slashCommands-FCWY5DXW.js +0 -95
  449. package/dist/status-3B5SDZPL.js +0 -17
  450. package/dist/status-TTGRF6NC.cjs +0 -17
  451. package/dist/sync-77CXVVTK.cjs +0 -21
  452. package/dist/sync-EH4K5U3N.cjs +0 -40
  453. package/dist/theme-64BYGJ57.cjs +0 -21
  454. package/dist/theme-YJE6HEON.js +0 -21
  455. package/dist/undo-PRTEGL2J.cjs +0 -10
@@ -2,11 +2,16 @@ import {
2
2
  runCommand
3
3
  } from "./chunk-TH26BQJG.js";
4
4
  import {
5
+ BEDROCK_DEFAULT_MODEL,
6
+ BEDROCK_DEFAULT_REGION,
7
+ BEDROCK_MODELS,
5
8
  CEREBRAS_DEFAULT_BASE_URL,
6
9
  CEREBRAS_MODELS,
7
10
  DEEPSEEK_DEFAULT_BASE_URL,
8
11
  DEEPSEEK_MODELS,
9
12
  ProviderFactory,
13
+ SAKANA_DEFAULT_BASE_URL,
14
+ SAKANA_MODELS,
10
15
  VERTEX_AI_CODING_MODELS,
11
16
  ZAI_DEFAULT_BASE_URL,
12
17
  ZAI_MODELS,
@@ -15,29 +20,34 @@ import {
15
20
  getGcloudAccount,
16
21
  getGcloudProject,
17
22
  isChatGPTAuthExpired,
18
- isGcloudInstalled
19
- } from "./chunk-QKP772OZ.js";
23
+ isGcloudInstalled,
24
+ resolveBedrockAuthMode,
25
+ resolveBedrockEndpoint
26
+ } from "./chunk-X24VIVDZ.js";
27
+ import {
28
+ AgentsGenerator
29
+ } from "./chunk-2WUNHTXL.js";
20
30
  import {
21
31
  getAuthClient
22
- } from "./chunk-IAGCRVJ3.js";
32
+ } from "./chunk-MA3AVDCC.js";
23
33
  import {
24
34
  ASCII_FRIEND
25
- } from "./chunk-RBHANOYY.js";
35
+ } from "./chunk-7DJJGKM6.js";
26
36
  import {
27
37
  showConfirm,
28
38
  showInput,
29
39
  showModal,
30
40
  showPassword
31
- } from "./chunk-DLP436GI.js";
41
+ } from "./chunk-LOSXLH7P.js";
32
42
  import {
33
43
  getProviderConfig
34
- } from "./chunk-3UT7R3XV.js";
44
+ } from "./chunk-CM24K6ZT.js";
35
45
  import {
36
46
  getBuiltInThemeNames
37
47
  } from "./chunk-NBGOIFKP.js";
38
48
  import {
39
49
  AUTH_CONFIG
40
- } from "./chunk-TWQDAUZU.js";
50
+ } from "./chunk-PG2JIU5M.js";
41
51
  import {
42
52
  checkWorkspaceSafety,
43
53
  printDangerousWorkspaceWarning
@@ -48,7 +58,7 @@ import {
48
58
  changeLanguage,
49
59
  detectLocale,
50
60
  t
51
- } from "./chunk-CBFH2J3O.js";
61
+ } from "./chunk-SJQU2ZFR.js";
52
62
 
53
63
  // src/onboarding/projectAnalyzer.ts
54
64
  import fse from "fs-extra";
@@ -292,287 +302,6 @@ var ProjectAnalyzer = class {
292
302
  }
293
303
  };
294
304
 
295
- // src/onboarding/agentsGenerator.ts
296
- var AgentsGenerator = class {
297
- /**
298
- * Generate AGENTS.md content
299
- */
300
- generateContent(info, options) {
301
- const sections = [];
302
- sections.push("# AGENTS.md");
303
- sections.push("");
304
- sections.push("This file helps Autohand understand how to work with this project.");
305
- sections.push("");
306
- sections.push(this.generateProjectOverview(info));
307
- if (info.packageManager) {
308
- sections.push(this.generateCommandsSection(info));
309
- }
310
- if (info.testFramework) {
311
- sections.push(this.generateTestingSection(info));
312
- }
313
- if (info.framework) {
314
- const frameworkSection = this.generateFrameworkSection(info);
315
- if (frameworkSection) {
316
- sections.push(frameworkSection);
317
- }
318
- }
319
- sections.push(this.generateCodeStyleSection(info));
320
- sections.push(this.generateConstraintsSection());
321
- if (options?.customSections) {
322
- for (const section of options.customSections) {
323
- sections.push(`## ${section.title}`);
324
- sections.push("");
325
- sections.push(section.content);
326
- sections.push("");
327
- }
328
- }
329
- return sections.join("\n");
330
- }
331
- /**
332
- * Generate project overview section
333
- */
334
- generateProjectOverview(info) {
335
- const lines = [];
336
- lines.push("## Project Overview");
337
- lines.push("");
338
- if (info.language) {
339
- lines.push(`- **Language**: ${info.language}`);
340
- }
341
- if (info.framework) {
342
- lines.push(`- **Framework**: ${info.framework}`);
343
- }
344
- if (info.packageManager) {
345
- lines.push(`- **Package Manager**: ${info.packageManager}`);
346
- }
347
- if (info.testFramework) {
348
- lines.push(`- **Test Framework**: ${info.testFramework}`);
349
- }
350
- if (info.buildTool) {
351
- lines.push(`- **Build Tool**: ${info.buildTool}`);
352
- }
353
- lines.push("");
354
- return lines.join("\n");
355
- }
356
- /**
357
- * Generate commands section based on package manager
358
- */
359
- generateCommandsSection(info) {
360
- const lines = [];
361
- lines.push("## Commands");
362
- lines.push("");
363
- const pm = info.packageManager;
364
- if (info.language === "Rust") {
365
- lines.push("- **Build**: `cargo build`");
366
- lines.push("- **Build (release)**: `cargo build --release`");
367
- lines.push("- **Run**: `cargo run`");
368
- lines.push("- **Test**: `cargo test`");
369
- lines.push("- **Check**: `cargo check`");
370
- lines.push("- **Format**: `cargo fmt`");
371
- lines.push("- **Lint**: `cargo clippy`");
372
- } else if (info.language === "Go") {
373
- lines.push("- **Build**: `go build`");
374
- lines.push("- **Run**: `go run .`");
375
- lines.push("- **Test**: `go test ./...`");
376
- lines.push("- **Format**: `go fmt ./...`");
377
- lines.push("- **Vet**: `go vet ./...`");
378
- } else if (info.language === "Python") {
379
- if (pm === "poetry") {
380
- lines.push("- **Install**: `poetry install`");
381
- lines.push("- **Run**: `poetry run python main.py`");
382
- lines.push("- **Add dependency**: `poetry add <package>`");
383
- if (info.testFramework) {
384
- lines.push(`- **Test**: \`poetry run pytest\``);
385
- }
386
- } else if (pm === "pipenv") {
387
- lines.push("- **Install**: `pipenv install`");
388
- lines.push("- **Run**: `pipenv run python main.py`");
389
- if (info.testFramework) {
390
- lines.push(`- **Test**: \`pipenv run pytest\``);
391
- }
392
- } else {
393
- lines.push("- **Install**: `pip install -r requirements.txt`");
394
- lines.push("- **Run**: `python main.py`");
395
- if (info.testFramework) {
396
- lines.push(`- **Test**: \`pytest\``);
397
- }
398
- }
399
- } else {
400
- const run = pm === "npm" ? "npm run" : pm;
401
- const install = pm === "npm" ? "npm install" : `${pm} install`;
402
- lines.push(`- **Install**: \`${install}\``);
403
- lines.push(`- **Dev**: \`${run} dev\``);
404
- lines.push(`- **Build**: \`${run} build\``);
405
- if (info.testFramework) {
406
- lines.push(`- **Test**: \`${run} test\``);
407
- }
408
- if (info.linter) {
409
- lines.push(`- **Lint**: \`${run} lint\``);
410
- }
411
- if (info.formatter) {
412
- lines.push(`- **Format**: \`${run} format\``);
413
- }
414
- }
415
- lines.push("");
416
- return lines.join("\n");
417
- }
418
- /**
419
- * Generate testing section
420
- */
421
- generateTestingSection(info) {
422
- const lines = [];
423
- lines.push("## Testing");
424
- lines.push("");
425
- lines.push(`This project uses **${info.testFramework}** for testing.`);
426
- lines.push("");
427
- lines.push("- Write tests for new features before implementation");
428
- lines.push("- Run tests before committing changes");
429
- lines.push("- Aim for good test coverage on critical paths");
430
- if (info.testFramework === "Vitest" || info.testFramework === "Jest") {
431
- lines.push("- Use `describe` and `it` blocks to organize tests");
432
- lines.push("- Mock external dependencies when appropriate");
433
- } else if (info.testFramework === "pytest") {
434
- lines.push("- Use fixtures for shared test setup");
435
- lines.push("- Use `pytest.mark` for test categorization");
436
- } else if (info.testFramework === "Playwright" || info.testFramework === "Cypress") {
437
- lines.push("- Write E2E tests for critical user flows");
438
- lines.push("- Keep selectors stable and meaningful");
439
- }
440
- lines.push("");
441
- return lines.join("\n");
442
- }
443
- /**
444
- * Generate framework-specific section
445
- */
446
- generateFrameworkSection(info) {
447
- const lines = [];
448
- switch (info.framework) {
449
- case "Next.js":
450
- lines.push("## Next.js Guidelines");
451
- lines.push("");
452
- lines.push("- Use the App Router for new pages (`app/` directory)");
453
- lines.push("- Prefer Server Components by default");
454
- lines.push('- Use `"use client"` only when needed for interactivity');
455
- lines.push("- Keep API routes in `app/api/`");
456
- lines.push("- Use `next/image` for optimized images");
457
- lines.push("- Use `next/link` for client-side navigation");
458
- break;
459
- case "React":
460
- lines.push("## React Guidelines");
461
- lines.push("");
462
- lines.push("- Use functional components with hooks");
463
- lines.push("- Keep components small and focused");
464
- lines.push("- Use custom hooks to share logic");
465
- lines.push("- Prefer composition over inheritance");
466
- lines.push("- Use TypeScript interfaces for props");
467
- break;
468
- case "Vue":
469
- lines.push("## Vue Guidelines");
470
- lines.push("");
471
- lines.push("- Use Composition API for new components");
472
- lines.push("- Keep components in single-file format (.vue)");
473
- lines.push("- Use composables to share logic");
474
- break;
475
- case "Express":
476
- lines.push("## Express Guidelines");
477
- lines.push("");
478
- lines.push("- Use middleware for cross-cutting concerns");
479
- lines.push("- Keep route handlers thin, delegate to services");
480
- lines.push("- Use async/await with proper error handling");
481
- lines.push("- Validate request input before processing");
482
- break;
483
- case "FastAPI":
484
- lines.push("## FastAPI Guidelines");
485
- lines.push("");
486
- lines.push("- Use Pydantic models for request/response validation");
487
- lines.push("- Use dependency injection for shared resources");
488
- lines.push("- Keep endpoints in organized routers");
489
- lines.push("- Use async functions for I/O operations");
490
- break;
491
- case "Django":
492
- lines.push("## Django Guidelines");
493
- lines.push("");
494
- lines.push("- Follow Django project structure conventions");
495
- lines.push("- Use class-based views where appropriate");
496
- lines.push("- Keep business logic in models or services");
497
- lines.push("- Use Django ORM for database operations");
498
- break;
499
- case "Flask":
500
- lines.push("## Flask Guidelines");
501
- lines.push("");
502
- lines.push("- Use blueprints to organize routes");
503
- lines.push("- Keep route handlers focused");
504
- lines.push("- Use Flask extensions for common functionality");
505
- break;
506
- case "NestJS":
507
- lines.push("## NestJS Guidelines");
508
- lines.push("");
509
- lines.push("- Follow module-based architecture");
510
- lines.push("- Use dependency injection");
511
- lines.push("- Use decorators for metadata");
512
- lines.push("- Keep controllers thin, services fat");
513
- break;
514
- default:
515
- return null;
516
- }
517
- lines.push("");
518
- return lines.join("\n");
519
- }
520
- /**
521
- * Generate code style section
522
- */
523
- generateCodeStyleSection(info) {
524
- const lines = [];
525
- lines.push("## Code Style");
526
- lines.push("");
527
- if (info.language === "TypeScript") {
528
- lines.push("- Use strict TypeScript settings");
529
- lines.push("- Define types/interfaces for data structures");
530
- lines.push("- Avoid `any` type - use `unknown` if type is truly unknown");
531
- lines.push("- Use type inference where obvious");
532
- } else if (info.language === "Python") {
533
- lines.push("- Follow PEP 8 style guidelines");
534
- lines.push("- Use type hints for function signatures");
535
- lines.push("- Use docstrings for public functions");
536
- } else if (info.language === "Rust") {
537
- lines.push("- Follow Rust naming conventions (snake_case for functions)");
538
- lines.push("- Use descriptive error types");
539
- lines.push("- Prefer `Result` over panicking");
540
- } else if (info.language === "Go") {
541
- lines.push("- Follow Go idioms and conventions");
542
- lines.push("- Use short variable names in small scopes");
543
- lines.push("- Handle errors explicitly");
544
- }
545
- lines.push("- Follow existing patterns in the codebase");
546
- lines.push("- Use meaningful variable and function names");
547
- lines.push("- Add comments for complex logic");
548
- lines.push("- Keep functions focused and small");
549
- if (info.linter) {
550
- lines.push(`- Run **${info.linter}** before committing`);
551
- }
552
- if (info.formatter) {
553
- lines.push(`- Format code with **${info.formatter}**`);
554
- }
555
- lines.push("");
556
- return lines.join("\n");
557
- }
558
- /**
559
- * Generate constraints section
560
- */
561
- generateConstraintsSection() {
562
- const lines = [];
563
- lines.push("## Constraints");
564
- lines.push("");
565
- lines.push("- Do not modify files outside the project directory");
566
- lines.push("- Ask before making breaking changes");
567
- lines.push("- Prefer editing existing files over creating new ones");
568
- lines.push("- Do not delete files without confirmation");
569
- lines.push("- Keep dependencies minimal - avoid adding new ones without good reason");
570
- lines.push("- Do not commit sensitive data (API keys, secrets, credentials)");
571
- lines.push("");
572
- return lines.join("\n");
573
- }
574
- };
575
-
576
305
  // src/onboarding/setupWizard.ts
577
306
  import chalk from "chalk";
578
307
  import fse2 from "fs-extra";
@@ -753,6 +482,9 @@ var SetupWizard = class {
753
482
  } else if (provider === "vertexai") {
754
483
  const vertexaiResult = await this.promptVertexAIConfig();
755
484
  if (!vertexaiResult) return this.cancelled();
485
+ } else if (provider === "bedrock") {
486
+ const bedrockResult = await this.promptBedrockConfig();
487
+ if (!bedrockResult) return this.cancelled();
756
488
  } else {
757
489
  if (provider === "llamacpp") {
758
490
  const ready = await this.prepareLlamaCpp();
@@ -850,6 +582,9 @@ var SetupWizard = class {
850
582
  const vertexaiConfig = providerConfig;
851
583
  return !!(vertexaiConfig.authToken && vertexaiConfig.authToken.length >= 10);
852
584
  }
585
+ if (provider === "bedrock") {
586
+ return getProviderConfig(this.existingConfig, "bedrock") !== null;
587
+ }
853
588
  if (this.requiresApiKey(provider)) {
854
589
  const apiKey = providerConfig.apiKey;
855
590
  if (!apiKey || apiKey === "replace-me" || apiKey.length < 10) {
@@ -877,7 +612,7 @@ var SetupWizard = class {
877
612
  */
878
613
  async promptProvider() {
879
614
  this.state.currentStep = "provider";
880
- const providers = ProviderFactory.getProviderNames();
615
+ const providers = ProviderFactory.getProviderNames(this.existingConfig);
881
616
  const options = providers.map((p) => ({
882
617
  label: this.getProviderDisplayName(p),
883
618
  value: p,
@@ -896,8 +631,12 @@ var SetupWizard = class {
896
631
  if (!result) {
897
632
  return null;
898
633
  }
899
- this.state.provider = result.value;
900
- return result.value;
634
+ const selectedProvider = result.value;
635
+ if (!ProviderFactory.isValidProvider(selectedProvider, this.existingConfig)) {
636
+ return null;
637
+ }
638
+ this.state.provider = selectedProvider;
639
+ return selectedProvider;
901
640
  }
902
641
  /**
903
642
  * Check if a specific provider is fully configured (has API key if required)
@@ -1025,6 +764,23 @@ var SetupWizard = class {
1025
764
  this.state.model = result.value;
1026
765
  return this.state.model;
1027
766
  }
767
+ if (provider === "sakana") {
768
+ const options = SAKANA_MODELS.map((modelName) => ({
769
+ label: modelName,
770
+ value: modelName
771
+ }));
772
+ const defaultIndex = Math.max(0, SAKANA_MODELS.indexOf(defaultModel));
773
+ const result = await showModal({
774
+ title: t("providers.config.selectModel"),
775
+ options,
776
+ initialIndex: defaultIndex >= 0 ? defaultIndex : 0
777
+ });
778
+ if (!result) {
779
+ return null;
780
+ }
781
+ this.state.model = result.value;
782
+ return this.state.model;
783
+ }
1028
784
  if (provider === "cerebras") {
1029
785
  const options = CEREBRAS_MODELS.map((modelName) => ({
1030
786
  label: modelName,
@@ -1059,8 +815,23 @@ var SetupWizard = class {
1059
815
  this.state.model = result.value;
1060
816
  return this.state.model;
1061
817
  }
818
+ if (provider === "bedrock") {
819
+ const result = await showModal({
820
+ title: t("providers.config.selectModel"),
821
+ options: BEDROCK_MODELS.map((modelName) => ({
822
+ label: modelName,
823
+ value: modelName
824
+ })),
825
+ allowCustomInput: true
826
+ });
827
+ if (!result) {
828
+ return null;
829
+ }
830
+ this.state.model = result.value;
831
+ return this.state.model;
832
+ }
1062
833
  if (provider === "nvidia") {
1063
- const { NVIDIA_MODELS } = await import("./NVIDIAProvider-2HR737UE.js");
834
+ const { NVIDIA_MODELS } = await import("./NVIDIAProvider-AFNJNWJM.js");
1064
835
  const options = [...NVIDIA_MODELS].map((modelName) => ({
1065
836
  label: modelName,
1066
837
  value: modelName
@@ -1416,6 +1187,8 @@ var SetupWizard = class {
1416
1187
  };
1417
1188
  } else if (this.state.provider === "vertexai" && this.state.vertexaiConfig) {
1418
1189
  config.vertexai = this.state.vertexaiConfig;
1190
+ } else if (this.state.provider === "bedrock" && this.state.bedrockConfig) {
1191
+ config.bedrock = this.state.bedrockConfig;
1419
1192
  } else if (this.requiresApiKey(this.state.provider)) {
1420
1193
  config[this.state.provider] = {
1421
1194
  apiKey: this.state.apiKey,
@@ -1729,6 +1502,92 @@ var SetupWizard = class {
1729
1502
  console.log();
1730
1503
  return true;
1731
1504
  }
1505
+ async promptBedrockConfig() {
1506
+ this.state.currentStep = "apiKey";
1507
+ console.log(chalk.cyan("\n" + t("providers.wizard.bedrock.title")));
1508
+ console.log(chalk.gray(t("providers.wizard.bedrock.getStarted") + "\n"));
1509
+ console.log(chalk.gray(" " + t("providers.wizard.bedrock.awsCredentialsHint")));
1510
+ console.log(chalk.gray(" " + t("providers.wizard.bedrock.modelAccessHint") + "\n"));
1511
+ const existing = this.existingConfig?.bedrock;
1512
+ const apiMode = await this.promptBedrockApiMode(existing?.apiMode);
1513
+ if (!apiMode) return false;
1514
+ const authMode = await this.promptBedrockAuthMode(apiMode, existing?.authMode);
1515
+ if (!authMode) return false;
1516
+ let apiKey = existing?.apiKey;
1517
+ if (authMode === "bedrock-api-key") {
1518
+ console.log(chalk.gray("\n" + t("providers.wizard.bedrock.apiKeyHint") + "\n"));
1519
+ apiKey = await showPassword({
1520
+ title: t("providers.config.enterApiKey", { provider: this.getProviderDisplayName("bedrock") }),
1521
+ placeholder: t("ui.apiKeyPlaceholder"),
1522
+ validate: (val) => {
1523
+ if (!val?.trim()) return t("providers.config.apiKeyRequired");
1524
+ if (val.length < 10) return t("providers.config.apiKeyTooShort");
1525
+ return true;
1526
+ }
1527
+ }) ?? void 0;
1528
+ if (!apiKey) return false;
1529
+ }
1530
+ const region = await showInput({
1531
+ title: t("providers.wizard.bedrock.enterRegion"),
1532
+ defaultValue: existing?.region || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || BEDROCK_DEFAULT_REGION
1533
+ });
1534
+ if (!region) return false;
1535
+ const profile = await showInput({
1536
+ title: t("providers.wizard.bedrock.enterProfile"),
1537
+ defaultValue: existing?.profile || "",
1538
+ placeholder: "enterprise-prod"
1539
+ });
1540
+ const endpoint = await showInput({
1541
+ title: t("providers.wizard.bedrock.enterEndpoint"),
1542
+ defaultValue: existing?.endpoint || "",
1543
+ placeholder: resolveBedrockEndpoint(apiMode, region)
1544
+ });
1545
+ const modelResult = await showModal({
1546
+ title: t("providers.config.selectModel"),
1547
+ options: BEDROCK_MODELS.map((name) => ({ label: name, value: name })),
1548
+ allowCustomInput: true,
1549
+ initialIndex: Math.max(0, [...BEDROCK_MODELS].indexOf(existing?.model || BEDROCK_DEFAULT_MODEL))
1550
+ });
1551
+ if (!modelResult) return false;
1552
+ const model = String(modelResult.value).trim();
1553
+ this.state.provider = "bedrock";
1554
+ this.state.model = model;
1555
+ this.state.bedrockConfig = {
1556
+ model,
1557
+ region: region.trim(),
1558
+ apiMode,
1559
+ authMode,
1560
+ ...profile?.trim() && { profile: profile.trim() },
1561
+ ...endpoint?.trim() && { endpoint: endpoint.trim() },
1562
+ ...authMode === "bedrock-api-key" && apiKey ? { apiKey } : {}
1563
+ };
1564
+ console.log(chalk.green("\n\u2713 " + t("providers.config.configuredSuccessfully", { provider: t("providers.bedrock") })));
1565
+ console.log(chalk.gray(" " + t("providers.config.modelLabel", { model })));
1566
+ return true;
1567
+ }
1568
+ async promptBedrockApiMode(current) {
1569
+ const options = [
1570
+ { label: t("providers.wizard.bedrock.modeConverse"), value: "converse", description: t("providers.wizard.bedrock.modeConverseHint") },
1571
+ { label: t("providers.wizard.bedrock.modeOpenAIChat"), value: "openai-chat", description: t("providers.wizard.bedrock.modeOpenAIChatHint") },
1572
+ { label: t("providers.wizard.bedrock.modeOpenAIResponses"), value: "openai-responses", description: t("providers.wizard.bedrock.modeOpenAIResponsesHint") }
1573
+ ];
1574
+ const result = await showModal({
1575
+ title: t("providers.wizard.bedrock.chooseApiMode"),
1576
+ options,
1577
+ initialIndex: Math.max(0, options.findIndex((option) => option.value === (current || "converse")))
1578
+ });
1579
+ return result?.value ?? null;
1580
+ }
1581
+ async promptBedrockAuthMode(apiMode, current) {
1582
+ const authMode = resolveBedrockAuthMode(apiMode, current);
1583
+ const options = apiMode === "converse" ? [{ label: t("providers.wizard.bedrock.authAwsCredentials"), value: "aws-credentials", description: t("providers.wizard.bedrock.authAwsCredentialsHint") }] : [{ label: t("providers.wizard.bedrock.authBedrockApiKey"), value: "bedrock-api-key", description: t("providers.wizard.bedrock.authBedrockApiKeyHint") }];
1584
+ const result = await showModal({
1585
+ title: t("providers.wizard.bedrock.chooseAuthMode"),
1586
+ options,
1587
+ initialIndex: Math.max(0, options.findIndex((option) => option.value === authMode))
1588
+ });
1589
+ return result?.value ?? null;
1590
+ }
1732
1591
  /**
1733
1592
  * Prompt for language selection
1734
1593
  */
@@ -2116,7 +1975,7 @@ var SetupWizard = class {
2116
1975
  }
2117
1976
  // Helper methods
2118
1977
  requiresApiKey(provider) {
2119
- return provider === "openrouter" || provider === "llmgateway" || provider === "zai" || provider === "vertexai" || provider === "xai" || provider === "cerebras" || provider === "nvidia" || provider === "deepseek";
1978
+ return provider === "openrouter" || provider === "llmgateway" || provider === "zai" || provider === "sakana" || provider === "vertexai" || provider === "xai" || provider === "cerebras" || provider === "nvidia" || provider === "deepseek";
2120
1979
  }
2121
1980
  getProviderDisplayName(provider) {
2122
1981
  return t(`providers.${provider}`);
@@ -2130,8 +1989,10 @@ var SetupWizard = class {
2130
1989
  openai: t("providers.wizard.openai.apiKeyUrl"),
2131
1990
  llmgateway: t("providers.wizard.llmgateway.apiKeyUrl"),
2132
1991
  zai: t("providers.wizard.zai.apiKeyUrl"),
1992
+ sakana: t("providers.wizard.sakana.apiKeyUrl"),
2133
1993
  nvidia: t("providers.wizard.nvidia.apiKeyUrl"),
2134
- deepseek: t("providers.wizard.deepseek.apiKeyUrl")
1994
+ deepseek: t("providers.wizard.deepseek.apiKeyUrl"),
1995
+ bedrock: t("providers.wizard.bedrock.apiKeyUrl")
2135
1996
  };
2136
1997
  return urls[provider] || "";
2137
1998
  }
@@ -2144,12 +2005,14 @@ var SetupWizard = class {
2144
2005
  mlx: "mlx-community/Llama-3.2-3B-Instruct-4bit",
2145
2006
  llmgateway: "gpt-4o",
2146
2007
  azure: "gpt-5.3-codex",
2147
- zai: "glm-4.5",
2008
+ zai: "glm-5.2",
2009
+ sakana: "fugu",
2148
2010
  vertexai: "zai-org/glm-5-maas",
2149
2011
  xai: "grok-4.20-reasoning",
2150
2012
  cerebras: "zai-glm-4.7",
2151
2013
  nvidia: "mistralai/mixtral-8x7b-instruct-v0.1",
2152
- deepseek: "deepseek-v4-flash"
2014
+ deepseek: "deepseek-v4-flash",
2015
+ bedrock: BEDROCK_DEFAULT_MODEL
2153
2016
  };
2154
2017
  return defaults[provider] || "";
2155
2018
  }
@@ -2163,11 +2026,13 @@ var SetupWizard = class {
2163
2026
  llmgateway: "https://api.llmgateway.io/v1",
2164
2027
  azure: "https://{resourceName}.openai.azure.com",
2165
2028
  zai: ZAI_DEFAULT_BASE_URL,
2029
+ sakana: SAKANA_DEFAULT_BASE_URL,
2166
2030
  vertexai: "https://aiplatform.googleapis.com",
2167
2031
  xai: "https://api.x.ai/v1",
2168
2032
  cerebras: CEREBRAS_DEFAULT_BASE_URL,
2169
2033
  nvidia: "https://integrate.api.nvidia.com/v1",
2170
- deepseek: DEEPSEEK_DEFAULT_BASE_URL
2034
+ deepseek: DEEPSEEK_DEFAULT_BASE_URL,
2035
+ bedrock: `https://bedrock-runtime.${BEDROCK_DEFAULT_REGION}.amazonaws.com`
2171
2036
  };
2172
2037
  return urls[provider] || "";
2173
2038
  }
@@ -2207,7 +2072,6 @@ var SetupWizard = class {
2207
2072
 
2208
2073
  export {
2209
2074
  ProjectAnalyzer,
2210
- AgentsGenerator,
2211
2075
  probeLlamaCppEnvironment,
2212
2076
  installLlamaCpp,
2213
2077
  SetupWizard
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
3
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
4
4
 
5
5
  // src/commands/model.ts
6
6
  async function model(ctx) {
@@ -14,7 +14,7 @@ async function model(ctx) {
14
14
  }
15
15
  var metadata = {
16
16
  command: "/model",
17
- description: _chunkCHI52KFRcjs.t.call(void 0, "commands.model.description"),
17
+ description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.model.description"),
18
18
  implemented: true
19
19
  };
20
20
 
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
3
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
4
4
 
5
5
  // src/commands/history.ts
6
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
7
7
  var metadata = {
8
8
  command: "/history",
9
- description: _chunkCHI52KFRcjs.t.call(void 0, "commands.history.title"),
9
+ description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.history.title"),
10
10
  implemented: true
11
11
  };
12
12
  function formatHistoryEntry(entry) {
@@ -72,14 +72,14 @@ async function history(ctx) {
72
72
  const allSessions = await ctx.sessionManager.listSessions();
73
73
  if (allSessions.length === 0) {
74
74
  console.log(_chalk2.default.gray(`
75
- ${_chunkCHI52KFRcjs.t.call(void 0, "commands.history.empty")}
75
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.empty")}
76
76
  `));
77
77
  return null;
78
78
  }
79
79
  const entries = allSessions.map(toHistoryEntry);
80
80
  const paginated = paginateHistory(entries, page, pageSize);
81
81
  console.log(_chalk2.default.cyan(`
82
- ${_chunkCHI52KFRcjs.t.call(void 0, "commands.history.title")}
82
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.title")}
83
83
  `));
84
84
  console.log(
85
85
  _chalk2.default.bold(
@@ -95,14 +95,14 @@ ${_chunkCHI52KFRcjs.t.call(void 0, "commands.history.title")}
95
95
  console.log(
96
96
  _chalk2.default.gray(
97
97
  `
98
- ${_chunkCHI52KFRcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
98
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
99
99
  )
100
100
  );
101
101
  }
102
102
  if (paginated.totalPages > 1 && paginated.currentPage < paginated.totalPages) {
103
103
  console.log(_chalk2.default.gray(`Use /history ${paginated.currentPage + 1} for next page`));
104
104
  }
105
- console.log(_chalk2.default.gray(`${_chunkCHI52KFRcjs.t.call(void 0, "commands.history.resumeHint")}
105
+ console.log(_chalk2.default.gray(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.resumeHint")}
106
106
  `));
107
107
  return null;
108
108
  } catch (error) {
@@ -219,7 +219,7 @@ var PlanModeManager = class extends EventEmitter {
219
219
  // src/commands/plan.ts
220
220
  var metadata = {
221
221
  command: "/plan",
222
- description: "toggle plan mode for safe code exploration",
222
+ description: "plan and break down a complex task",
223
223
  implemented: true
224
224
  };
225
225
  var planModeManager = null;