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
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
5
+ var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
6
6
 
7
7
 
8
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
8
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
9
9
 
10
10
  // src/commands/export.ts
11
11
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -245,7 +245,7 @@ function getSuggestedFilename(metadata2, format) {
245
245
  // src/commands/export.ts
246
246
  var metadata = {
247
247
  command: "/export",
248
- description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.export.description"),
248
+ description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.export.description"),
249
249
  implemented: true
250
250
  };
251
251
  async function execute(args, context) {
@@ -265,7 +265,7 @@ async function execute(args, context) {
265
265
  label: `${s.projectName} - ${new Date(s.createdAt).toLocaleString()} (${s.messageCount} messages)`,
266
266
  value: s.sessionId
267
267
  }));
268
- const sessionResult = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
268
+ const sessionResult = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
269
269
  title: "Select a session to export:",
270
270
  options: sessionOptions
271
271
  });
@@ -286,7 +286,7 @@ async function execute(args, context) {
286
286
  { label: "JSON (.json)", value: "json" },
287
287
  { label: "HTML (.html)", value: "html" }
288
288
  ];
289
- const formatResult = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
289
+ const formatResult = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
290
290
  title: "Export format:",
291
291
  options: formatOptions
292
292
  });
@@ -297,17 +297,17 @@ async function execute(args, context) {
297
297
  const format = formatResult.value;
298
298
  const options = {};
299
299
  if (format === "md" || format === "html") {
300
- options.includeToolOutputs = await _chunkCK4HAHVYcjs.showConfirm.call(void 0, {
300
+ options.includeToolOutputs = await _chunkDMM2BKSVcjs.showConfirm.call(void 0, {
301
301
  title: "Include tool outputs?",
302
302
  defaultValue: true
303
303
  });
304
- options.includeToc = await _chunkCK4HAHVYcjs.showConfirm.call(void 0, {
304
+ options.includeToc = await _chunkDMM2BKSVcjs.showConfirm.call(void 0, {
305
305
  title: "Include table of contents?",
306
306
  defaultValue: false
307
307
  });
308
308
  }
309
309
  const suggestedFilename = getSuggestedFilename(metadata2, format);
310
- const filename = await _chunkCK4HAHVYcjs.showInput.call(void 0, {
310
+ const filename = await _chunkDMM2BKSVcjs.showInput.call(void 0, {
311
311
  title: "Save as:",
312
312
  defaultValue: suggestedFilename
313
313
  });
@@ -331,11 +331,11 @@ async function execute(args, context) {
331
331
  try {
332
332
  await saveExport(content, filePath);
333
333
  console.log();
334
- console.log(_chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.export.success", { path: filePath })));
334
+ console.log(_chalk2.default.green(_chunkRJCZLFHEcjs.t.call(void 0, "commands.export.success", { path: filePath })));
335
335
  console.log(_chalk2.default.gray(` ${messages.length} messages, ${(Buffer.byteLength(content, "utf8") / 1024).toFixed(1)} KB`));
336
336
  console.log();
337
337
  } catch (error) {
338
- console.log(_chalk2.default.red(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.export.failed", { error: error.message })));
338
+ console.log(_chalk2.default.red(_chunkRJCZLFHEcjs.t.call(void 0, "commands.export.failed", { error: error.message })));
339
339
  }
340
340
  }
341
341
 
@@ -0,0 +1,40 @@
1
+ // src/providers/customProviders.ts
2
+ var CUSTOM_PROVIDER_PREFIX = "custom:";
3
+ function normalizeCustomProviderId(input) {
4
+ return input.trim().toLowerCase().replace(/^custom:/i, "").replace(/[^a-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
5
+ }
6
+ function toCustomProviderName(id) {
7
+ return `${CUSTOM_PROVIDER_PREFIX}${normalizeCustomProviderId(id)}`;
8
+ }
9
+ function parseCustomProviderName(provider) {
10
+ if (typeof provider !== "string" || !provider.toLowerCase().startsWith(CUSTOM_PROVIDER_PREFIX)) {
11
+ return null;
12
+ }
13
+ const id = normalizeCustomProviderId(provider.slice(CUSTOM_PROVIDER_PREFIX.length));
14
+ return id.length > 0 ? id : null;
15
+ }
16
+ function isCustomProviderName(provider) {
17
+ return parseCustomProviderName(provider) !== null;
18
+ }
19
+ function getCustomProviderConfig(config, provider) {
20
+ const id = parseCustomProviderName(provider);
21
+ if (!id) return void 0;
22
+ const entry = config?.customProviders?.[id];
23
+ if (!entry || entry.disabled === true) return void 0;
24
+ return {
25
+ ...entry,
26
+ id
27
+ };
28
+ }
29
+
30
+ export {
31
+ normalizeCustomProviderId,
32
+ toCustomProviderName,
33
+ isCustomProviderName,
34
+ getCustomProviderConfig
35
+ };
36
+ /**
37
+ * @license
38
+ * Copyright 2025 Autohand AI LLC
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PROJECT_DIR_NAME
3
- } from "./chunk-SHRLFX6F.js";
3
+ } from "./chunk-PG2JIU5M.js";
4
4
 
5
5
  // src/permissions/localProjectPermissions.ts
6
6
  import fs from "fs-extra";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-LEZEWKPA.js";
3
+ } from "./chunk-SJQU2ZFR.js";
4
4
 
5
5
  // src/commands/automode.ts
6
6
  import chalk from "chalk";
@@ -1,21 +1,21 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkQW2RW2GYcjs = require('./chunk-QW2RW2GY.cjs');
3
4
 
4
5
 
5
- var _chunkSVVP4UUZcjs = require('./chunk-SVVP4UUZ.cjs');
6
6
 
7
7
 
8
- var _chunkPSAH4ZQBcjs = require('./chunk-PSAH4ZQB.cjs');
8
+ var _chunkR4UKBKDYcjs = require('./chunk-R4UKBKDY.cjs');
9
9
 
10
10
 
11
- var _chunkQW2RW2GYcjs = require('./chunk-QW2RW2GY.cjs');
11
+ var _chunk6EIQ6A6Ucjs = require('./chunk-6EIQ6A6U.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
15
+ var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
16
16
 
17
17
 
18
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
18
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
19
19
 
20
20
  // src/commands/skills.ts
21
21
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
@@ -109,6 +109,8 @@ function generateSkillSuggestion(skillName, description) {
109
109
  }
110
110
  function getSkillSourceLabel(source) {
111
111
  switch (source) {
112
+ case "builtin":
113
+ return "Built-in";
112
114
  case "autohand-user":
113
115
  return "Autohand User";
114
116
  case "autohand-project":
@@ -163,8 +165,8 @@ async function browseInstalledSkills(ctx, registry) {
163
165
  description: "Open the community skills browser to search and install new skills."
164
166
  });
165
167
  const initialIndex = Math.max(allSkills.findIndex((skill) => skill.isActive), 0);
166
- const selected = await withModalPause(ctx, () => _chunkCK4HAHVYcjs.showModal.call(void 0, {
167
- title: `\u{1F4DA} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.title")} (${allSkills.length} available, ${activeSkills.length} active)`,
168
+ const selected = await withModalPause(ctx, () => _chunkDMM2BKSVcjs.showModal.call(void 0, {
169
+ title: `\u{1F4DA} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.skills.title")} (${allSkills.length} available, ${activeSkills.length} active)`,
168
170
  options,
169
171
  initialIndex,
170
172
  maxVisible: 12
@@ -182,10 +184,10 @@ function listSkills(registry) {
182
184
  const activeSkills = registry.getActiveSkills();
183
185
  const lines = [];
184
186
  lines.push("");
185
- lines.push(`\u{1F4DA} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.title")}`);
187
+ lines.push(`\u{1F4DA} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.skills.title")}`);
186
188
  lines.push("");
187
189
  if (allSkills.length === 0) {
188
- lines.push(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.noSkills"));
190
+ lines.push(_chunkRJCZLFHEcjs.t.call(void 0, "commands.skills.noSkills"));
189
191
  lines.push("");
190
192
  lines.push("Get started:");
191
193
  lines.push("");
@@ -204,6 +206,7 @@ function listSkills(registry) {
204
206
  bySource.set(skill.source, existing);
205
207
  }
206
208
  const sourceLabels = {
209
+ "builtin": "Built-in Skills",
207
210
  "codex-user": "\u{1F4C1} Codex User Skills",
208
211
  "claude-user": "\u{1F4C1} Claude User Skills",
209
212
  "claude-project": "\u{1F4C1} Project Skills",
@@ -338,7 +341,7 @@ async function handleSkillsInstall(ctx, skillName) {
338
341
  if (!workspaceRoot) {
339
342
  return "Workspace root not available.";
340
343
  }
341
- const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-ILX6QVEF.cjs")));
344
+ const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-D7K476SL.cjs")));
342
345
  const result = await skillsInstall(
343
346
  {
344
347
  skillsRegistry,
@@ -349,19 +352,19 @@ async function handleSkillsInstall(ctx, skillName) {
349
352
  return _nullishCoalesce(result, () => ( "Skills install completed."));
350
353
  }
351
354
  async function handleSkillsSearch(ctx, query) {
352
- const cache = new (0, _chunkPSAH4ZQBcjs.CommunitySkillsCache)();
355
+ const cache = new (0, _chunk6EIQ6A6Ucjs.CommunitySkillsCache)();
353
356
  const fetcher = new (0, _chunkQW2RW2GYcjs.GitHubRegistryFetcher)();
354
- const registry = await _chunkSVVP4UUZcjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
357
+ const registry = await _chunkR4UKBKDYcjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
355
358
  if (!registry) {
356
359
  return _chalk2.default.red("Unable to fetch community skills registry. Check your network connection.");
357
360
  }
358
- const client = new (0, _chunkSVVP4UUZcjs.LearnClient)();
361
+ const client = new (0, _chunkR4UKBKDYcjs.LearnClient)();
359
362
  const results = client.search(registry, query);
360
363
  if (results.length === 0) {
361
- return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.noResults", { query });
364
+ return _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.noResults", { query });
362
365
  }
363
366
  if (ctx.isNonInteractive) {
364
- const lines = [_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.found", { count: String(results.length) })];
367
+ const lines = [_chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.found", { count: String(results.length) })];
365
368
  for (const skill2 of results) {
366
369
  const stars = skill2.rating ? ` (${skill2.rating.toFixed(1)}/5)` : "";
367
370
  lines.push(` ${_chalk2.default.cyan(skill2.name)} - ${skill2.description}${stars}`);
@@ -372,19 +375,19 @@ async function handleSkillsSearch(ctx, query) {
372
375
  label: `${s.name} - ${s.description}`,
373
376
  value: s.id
374
377
  }));
375
- const selected = await withModalPause(ctx, () => _chunkCK4HAHVYcjs.showModal.call(void 0, {
376
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.selectPrompt"),
378
+ const selected = await withModalPause(ctx, () => _chunkDMM2BKSVcjs.showModal.call(void 0, {
379
+ title: _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.selectPrompt"),
377
380
  options
378
381
  }));
379
382
  if (!selected) {
380
- return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.noResults", { query });
383
+ return _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.noResults", { query });
381
384
  }
382
385
  const skill = results.find((s) => s.id === selected.value);
383
- if (!skill) return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.noResults", { query });
386
+ if (!skill) return _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.noResults", { query });
384
387
  if (!ctx.workspaceRoot) {
385
388
  return "Workspace root not available for install.";
386
389
  }
387
- return _chunkSVVP4UUZcjs.installSkillWithSecurity.call(void 0,
390
+ return _chunkR4UKBKDYcjs.installSkillWithSecurity.call(void 0,
388
391
  { skillsRegistry: ctx.skillsRegistry, workspaceRoot: ctx.workspaceRoot, hookManager: ctx.hookManager, isNonInteractive: ctx.isNonInteractive },
389
392
  skill,
390
393
  cache,
@@ -392,17 +395,17 @@ async function handleSkillsSearch(ctx, query) {
392
395
  );
393
396
  }
394
397
  async function handleSkillsTrending() {
395
- const cache = new (0, _chunkPSAH4ZQBcjs.CommunitySkillsCache)();
398
+ const cache = new (0, _chunk6EIQ6A6Ucjs.CommunitySkillsCache)();
396
399
  const fetcher = new (0, _chunkQW2RW2GYcjs.GitHubRegistryFetcher)();
397
- const registry = await _chunkSVVP4UUZcjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
400
+ const registry = await _chunkR4UKBKDYcjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
398
401
  if (!registry) {
399
402
  return _chalk2.default.red("Unable to fetch community skills registry. Check your network connection.");
400
403
  }
401
- const client = new (0, _chunkSVVP4UUZcjs.LearnClient)();
404
+ const client = new (0, _chunkR4UKBKDYcjs.LearnClient)();
402
405
  const trending = client.trending(registry);
403
406
  const lines = [];
404
407
  lines.push("");
405
- lines.push(_chalk2.default.bold(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.trendingTitle")));
408
+ lines.push(_chalk2.default.bold(_chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.trendingTitle")));
406
409
  lines.push("");
407
410
  for (let i = 0; i < trending.length; i++) {
408
411
  const skill = trending[i];
@@ -426,11 +429,11 @@ async function handleSkillsRemove(ctx, slug) {
426
429
  (s) => _optionalChain([s, 'access', _8 => _8.metadata, 'optionalAccess', _9 => _9["agentskill-slug"]]) === slug || s.name === slug
427
430
  );
428
431
  if (!target) {
429
- return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.removeNotFound", { name: slug });
432
+ return _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.removeNotFound", { name: slug });
430
433
  }
431
434
  if (!ctx.isNonInteractive) {
432
- const confirmed = await withModalPause(ctx, () => _chunkCK4HAHVYcjs.showConfirm.call(void 0, {
433
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.confirmRemove", { name: target.name }),
435
+ const confirmed = await withModalPause(ctx, () => _chunkDMM2BKSVcjs.showConfirm.call(void 0, {
436
+ title: _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.confirmRemove", { name: target.name }),
434
437
  defaultValue: false
435
438
  }));
436
439
  if (!confirmed) return null;
@@ -444,7 +447,7 @@ async function handleSkillsRemove(ctx, slug) {
444
447
  activationType: "explicit",
445
448
  action: "remove"
446
449
  });
447
- return _chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.removed", { name: target.name }));
450
+ return _chalk2.default.green(_chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.removed", { name: target.name }));
448
451
  } catch (err) {
449
452
  const msg = err instanceof Error ? err.message : "Unknown error";
450
453
  return _chalk2.default.red(`Failed to remove skill: ${msg}`);
@@ -455,13 +458,13 @@ function handleSkillsFeedback(slug, rating, _comment) {
455
458
  return "Usage: /skills feedback <skill-slug> <1-5> [comment]";
456
459
  }
457
460
  if (rating === void 0 || isNaN(rating) || rating < 1 || rating > 5) {
458
- return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.feedbackInvalid");
461
+ return _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.feedbackInvalid");
459
462
  }
460
- return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.feedbackThanks", { name: slug });
463
+ return _chunkRJCZLFHEcjs.t.call(void 0, "commands.learn.feedbackThanks", { name: slug });
461
464
  }
462
465
  var metadata = {
463
466
  command: "/skills",
464
- description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.description"),
467
+ description: "discover and install skills for your project",
465
468
  implemented: true,
466
469
  subcommands: [
467
470
  { name: "use", description: "Activate a skill" },
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  formatPlanModeToggleMessage,
10
10
  getPlanModeManager
11
- } from "./chunk-LUMV3DB2.js";
11
+ } from "./chunk-TWBAU46X.js";
12
12
  import {
13
13
  safeSetRawMode
14
14
  } from "./chunk-BQU3HAE7.js";
@@ -907,9 +907,7 @@ function parseBase64DataUrl(dataUrl) {
907
907
  var DEFAULT_BORDER_COLOR = "#8a8a8a";
908
908
  var PLAN_BORDER_COLOR = "#ff9d3f";
909
909
  var SHELL_BORDER_COLOR = "#000000";
910
- var SHELL_BOX_BG = "#ffffff";
911
910
  var SHELL_BOX_FG = "#000000";
912
- var FALLBACK_BOX_BG = "#2b2b2b";
913
911
  var FALLBACK_BOX_FG = "#a0a0a0";
914
912
  var cachedBoxBg = null;
915
913
  var cachedBoxFg = null;
@@ -959,32 +957,6 @@ function hexToAnsiRgb(hex, type) {
959
957
  const base = type === "fg" ? 38 : 48;
960
958
  return `\x1B[${base};2;${rgb.r};${rgb.g};${rgb.b}m`;
961
959
  }
962
- function resolveBoxBg(style = "default") {
963
- if (style === "shell") {
964
- if (cachedShellBoxBg !== null) return cachedShellBoxBg;
965
- const result2 = hexToAnsiRgb(SHELL_BOX_BG, "bg");
966
- cachedShellBoxBg = result2;
967
- return result2;
968
- }
969
- ensureCacheValid();
970
- if (cachedBoxBg !== null) return cachedBoxBg;
971
- if (isThemeInitialized()) {
972
- try {
973
- const hex = getTheme().getColor("userMessageBg");
974
- if (hex) {
975
- const code = hexToAnsiRgb(hex, "bg");
976
- if (code) {
977
- cachedBoxBg = code;
978
- return code;
979
- }
980
- }
981
- } catch {
982
- }
983
- }
984
- const result = hexToAnsiRgb(FALLBACK_BOX_BG, "bg");
985
- cachedBoxBg = result;
986
- return result;
987
- }
988
960
  function resolveBoxFg(style = "default") {
989
961
  if (style === "shell") {
990
962
  if (cachedShellBoxFg !== null) return cachedShellBoxFg;
@@ -1039,16 +1011,6 @@ function resolveBorderFg(style) {
1039
1011
  cachedBorderFg.set(style, result);
1040
1012
  return result;
1041
1013
  }
1042
- function drawInputTopBorder(width, style = "default") {
1043
- const innerWidth = Math.max(0, width - 2);
1044
- const border = `\u250C${"\u2500".repeat(innerWidth)}\u2510`;
1045
- return resolveBoxBg(style) + resolveBorderFg(style) + border + RESET_ALL + CLEAR_TO_EOL;
1046
- }
1047
- function drawInputBottomBorder(width, style = "default") {
1048
- const innerWidth = Math.max(0, width - 2);
1049
- const border = `\u2514${"\u2500".repeat(innerWidth)}\u2518`;
1050
- return resolveBoxBg(style) + resolveBorderFg(style) + border + RESET_ALL + CLEAR_TO_EOL;
1051
- }
1052
1014
  var ANSI_OR_CHAR_PATTERN = /(?:\u001b\[[0-9;]*m)|[\s\S]/g;
1053
1015
  function getVisibleLength(value) {
1054
1016
  return stripAnsiCodes(value).length;
@@ -1075,38 +1037,37 @@ function truncateVisible2(value, maxVisible) {
1075
1037
  }
1076
1038
  var RESET_ALL = "\x1B[0m";
1077
1039
  var CLEAR_TO_EOL = "\x1B[K";
1078
- function stabilizeBoxAnsi(text, bg, fg) {
1079
- const base = bg + fg;
1080
- return text.replace(/\x1b\[0m/g, RESET_ALL + base).replace(/\x1b\[49m/g, bg).replace(/\x1b\[39m/g, fg);
1040
+ function stabilizeOpenLineAnsi(text, fg) {
1041
+ return text.replace(/\x1b\[0m/g, RESET_ALL + fg).replace(/\x1b\[39m/g, fg);
1081
1042
  }
1082
- function drawInputBox(left, width, right, style = "default") {
1043
+ function drawOpenInputRule(width, style = "default") {
1044
+ const border = "\u2500".repeat(Math.max(0, width));
1045
+ return resolveBorderFg(style) + border + RESET_ALL + CLEAR_TO_EOL;
1046
+ }
1047
+ function drawOpenInputLine(left, width, right, style = "default") {
1083
1048
  const normalizedLeft = style === "shell" ? stripAnsiCodes(left) : left;
1084
1049
  const normalizedRight = style === "shell" && right ? stripAnsiCodes(right) : right;
1085
- const bg = resolveBoxBg(style);
1086
1050
  const fg = resolveBoxFg(style);
1087
- const borderFg = resolveBorderFg(style);
1088
- const base = bg + fg;
1089
- const innerWidth = Math.max(0, width - 2);
1090
- const visLeft = getVisibleLength(normalizedLeft);
1091
- const lBorder = borderFg + "\u2502" + fg;
1092
- const rBorder = borderFg + "\u2502";
1051
+ const base = fg;
1052
+ const lineWidth = Math.max(0, width);
1053
+ const clippedLeft = truncateVisible2(normalizedLeft, lineWidth);
1054
+ const visLeft = getVisibleLength(clippedLeft);
1093
1055
  const END = RESET_ALL + CLEAR_TO_EOL;
1094
1056
  if (!normalizedRight) {
1095
- const pad = Math.max(0, innerWidth - visLeft);
1096
- return base + lBorder + stabilizeBoxAnsi(normalizedLeft, bg, fg) + " ".repeat(pad) + rBorder + END;
1057
+ const pad = Math.max(0, lineWidth - visLeft);
1058
+ return base + stabilizeOpenLineAnsi(clippedLeft, fg) + " ".repeat(pad) + END;
1097
1059
  }
1098
- const visRight = getVisibleLength(normalizedRight);
1060
+ const clippedRight = truncateVisible2(normalizedRight, lineWidth);
1061
+ const visRight = getVisibleLength(clippedRight);
1099
1062
  const minGap = 2;
1100
- const available = innerWidth - visLeft - minGap;
1063
+ const available = lineWidth - visRight - minGap;
1101
1064
  if (available <= 0) {
1102
- const pad = Math.max(0, innerWidth - visLeft);
1103
- return base + lBorder + stabilizeBoxAnsi(normalizedLeft, bg, fg) + " ".repeat(pad) + rBorder + END;
1065
+ return base + stabilizeOpenLineAnsi(truncateVisible2(clippedLeft, lineWidth), fg) + END;
1104
1066
  }
1105
- const clippedRight = visRight > available ? truncateVisible2(normalizedRight, available) : normalizedRight;
1106
- const clippedRightVis = getVisibleLength(clippedRight);
1107
- const gap = Math.max(0, innerWidth - visLeft - clippedRightVis);
1108
- const line = stabilizeBoxAnsi(normalizedLeft, bg, fg) + " ".repeat(gap) + stabilizeBoxAnsi(clippedRight, bg, fg);
1109
- return base + lBorder + line + rBorder + END;
1067
+ const finalLeft = truncateVisible2(clippedLeft, available);
1068
+ const finalLeftWidth = getVisibleLength(finalLeft);
1069
+ const gap = Math.max(minGap, lineWidth - finalLeftWidth - visRight);
1070
+ return base + stabilizeOpenLineAnsi(finalLeft, fg) + " ".repeat(gap) + stabilizeOpenLineAnsi(clippedRight, fg) + END;
1110
1071
  }
1111
1072
 
1112
1073
  // src/ui/textBufferLayout.ts
@@ -1882,7 +1843,7 @@ var CONTEXTUAL_HELP_ROWS = [
1882
1843
  { left: "? toggles this shortcuts panel", right: "shift + tab toggles plan mode" },
1883
1844
  { left: "shift + enter inserts newline", right: "alt + enter inserts newline" },
1884
1845
  { left: "enter submits prompt", right: "ctrl + c clears input / exits" },
1885
- { left: "esc interrupts active turn", right: "type /, @, or ! to switch mode" }
1846
+ { left: "esc interrupts active turn", right: "type /, @, $, or ! to switch mode" }
1886
1847
  ];
1887
1848
  function truncatePlainText(value, width) {
1888
1849
  if (width <= 0) {
@@ -1957,7 +1918,7 @@ function buildPromptHotTips(currentLine, files, slashCommands, workspaceRoot, sk
1957
1918
  { label: "Tab -> ! git status" },
1958
1919
  defaultFileTip,
1959
1920
  { label: "Type $ for skills" },
1960
- { label: "Type /, @, or ! to switch suggestion mode" },
1921
+ { label: "Type /, @, $, or ! to switch suggestion mode" },
1961
1922
  { label: "Shift+Tab toggles plan mode" }
1962
1923
  ];
1963
1924
  }
@@ -2077,7 +2038,7 @@ function buildContextualHelpPanelLines(currentLine, width, files, slashCommands,
2077
2038
  const rightWidth = Math.max(12, panelWidth - leftWidth - gap);
2078
2039
  const tips = buildPromptHotTips(currentLine, files, slashCommands, void 0, skillsProvider);
2079
2040
  const primaryTip = tips[0]?.label ?? "Tab -> /help";
2080
- const secondaryTip = tips[1]?.label ?? "Type /, @, or ! to switch suggestion mode";
2041
+ const secondaryTip = tips[1]?.label ?? "Type /, @, $, or ! to switch suggestion mode";
2081
2042
  const formatCell = (value, cellWidth) => {
2082
2043
  const plain = sanitizeRenderLine(value);
2083
2044
  return truncatePlainText(plain, cellWidth).padEnd(cellWidth, " ");
@@ -2264,7 +2225,7 @@ function renderSegment(rawSegment, cursorPos, width, prefix, showPlaceholder, re
2264
2225
  } = normalizePromptRenderOptions(renderOptions, legacyInlineGhostSuffix);
2265
2226
  const sanitizedLine = sanitizeRenderLine(rawSegment);
2266
2227
  const normalizedLine = sanitizedLine.trim().length === 0 ? "" : sanitizedLine;
2267
- const innerWidth = Math.max(1, width - 2);
2228
+ const innerWidth = Math.max(1, width);
2268
2229
  const effectiveCursor = Math.max(0, Math.min(normalizedLine.length, cursorPos));
2269
2230
  const fullInput = `${prefix}${normalizedLine}`;
2270
2231
  const safeGhostSuffix = sanitizeRenderLine(inlineGhostSuffix ?? "");
@@ -2349,16 +2310,15 @@ function buildPromptRenderState(currentLine, cursorPos, width, options, inlineGh
2349
2310
  options,
2350
2311
  inlineGhostSuffix
2351
2312
  );
2352
- const lineText = drawInputBox(segment.styledText, width);
2353
- const clampedCursor = Math.max(0, Math.min(width - 1, segment.cursorColumn + 1));
2313
+ const lineText = drawOpenInputLine(segment.styledText, width);
2314
+ const clampedCursor = Math.max(0, Math.min(width - 1, segment.cursorColumn));
2354
2315
  return { lineText, cursorColumn: clampedCursor };
2355
2316
  }
2356
2317
  function buildMultiLineRenderState(currentLine, cursorPos, width, borderStyle = "default", options, inlineGhostSuffix) {
2357
2318
  const renderOptions = normalizePromptRenderOptions(options, inlineGhostSuffix);
2358
2319
  const { segments, separatorLengths } = splitMultilineSegments(currentLine);
2359
- const innerWidth = Math.max(1, width - 2);
2360
2320
  const continuationPrefix = " ";
2361
- const contentWidth = Math.max(1, innerWidth - continuationPrefix.length);
2321
+ const contentWidth = Math.max(1, width - continuationPrefix.length);
2362
2322
  if (segments.length <= 1) {
2363
2323
  const singleSegment = sanitizeRenderLine(segments[0] ?? "");
2364
2324
  const singleLayout = calculateLayout([singleSegment], contentWidth);
@@ -2371,8 +2331,8 @@ function buildMultiLineRenderState(currentLine, cursorPos, width, borderStyle =
2371
2331
  true,
2372
2332
  renderOptions
2373
2333
  );
2374
- const lineText = drawInputBox(seg.styledText, width, void 0, borderStyle);
2375
- const clampedCursor = Math.max(0, Math.min(width - 1, seg.cursorColumn + 1));
2334
+ const lineText = drawOpenInputLine(seg.styledText, width, void 0, borderStyle);
2335
+ const clampedCursor = Math.max(0, Math.min(width - 1, seg.cursorColumn));
2376
2336
  return { lines: [lineText], cursorRow: 0, cursorColumn: clampedCursor, lineCount: 1 };
2377
2337
  }
2378
2338
  }
@@ -2385,8 +2345,8 @@ function buildMultiLineRenderState(currentLine, cursorPos, width, borderStyle =
2385
2345
  true,
2386
2346
  renderOptions
2387
2347
  );
2388
- const lineText = drawInputBox(seg.styledText, width, void 0, borderStyle);
2389
- const clampedCursor = Math.max(0, Math.min(width - 1, seg.cursorColumn + 1));
2348
+ const lineText = drawOpenInputLine(seg.styledText, width, void 0, borderStyle);
2349
+ const clampedCursor = Math.max(0, Math.min(width - 1, seg.cursorColumn));
2390
2350
  return { lines: [lineText], cursorRow: 0, cursorColumn: clampedCursor, lineCount: 1 };
2391
2351
  }
2392
2352
  let cursorRow = 0;
@@ -2419,14 +2379,14 @@ function buildMultiLineRenderState(currentLine, cursorPos, width, borderStyle =
2419
2379
  cursorRow = visualRowOffset + wrappedCursorRow;
2420
2380
  finalCursorColumn = Math.max(
2421
2381
  0,
2422
- Math.min(width - 1, continuationPrefix.length + wrappedCursorCol + 1)
2382
+ Math.min(width - 1, continuationPrefix.length + wrappedCursorCol)
2423
2383
  );
2424
2384
  }
2425
2385
  for (let j = 0; j < wrappedLines.length; j++) {
2426
2386
  const prefix = !hasPromptPrefix ? PROMPT_INPUT_PREFIX : continuationPrefix;
2427
2387
  const prefixStyled = themedFg("accent", prefix, (value) => chalk2.gray(value));
2428
2388
  const styledText = `${prefixStyled}${wrappedLines[j] ?? ""}`;
2429
- lines.push(drawInputBox(styledText, width, void 0, borderStyle));
2389
+ lines.push(drawOpenInputLine(styledText, width, void 0, borderStyle));
2430
2390
  hasPromptPrefix = true;
2431
2391
  overallVisualRow += 1;
2432
2392
  }
@@ -2875,12 +2835,22 @@ async function promptOnce(options) {
2875
2835
  return applyPlanModePrefix(statusLine ?? "");
2876
2836
  };
2877
2837
  const getCurrentText = () => textBuffer.getText();
2838
+ const getReadlineCursorOffset = () => {
2839
+ const lines = textBuffer.getLines();
2840
+ const cursorRow = textBuffer.getCursorRow();
2841
+ const cursorCol = textBuffer.getCursorCol();
2842
+ let offset = 0;
2843
+ for (let i = 0; i < cursorRow; i++) {
2844
+ offset += (lines[i] ?? "").length + NEWLINE_MARKER.length;
2845
+ }
2846
+ return offset + cursorCol;
2847
+ };
2878
2848
  const syncReadlineFromBuffer = () => {
2879
2849
  const rlAny = rl;
2880
2850
  const text = textBuffer.getText();
2881
2851
  const flat = text.replace(/\n/g, NEWLINE_MARKER);
2882
2852
  rlAny.line = flat;
2883
- rlAny.cursor = flat.length;
2853
+ rlAny.cursor = getReadlineCursorOffset();
2884
2854
  };
2885
2855
  const getInlineGhostSuffix = () => {
2886
2856
  if (contextualHelpVisible) {
@@ -3033,7 +3003,7 @@ async function promptOnce(options) {
3033
3003
  inlineShellSuggestionTimeout = void 0;
3034
3004
  }
3035
3005
  disableBracketedPaste(stdOutput);
3036
- stdOutput.write("\x1B[?25h");
3006
+ stdOutput.write("\x1B[0 q\x1B[?25h");
3037
3007
  if (contextualHelpVisible) {
3038
3008
  contextualHelpVisible = false;
3039
3009
  }
@@ -3744,8 +3714,8 @@ function renderPromptLine(rl, statusLine, output, isResize = false, hasExistingP
3744
3714
  inlineGhostSuffix
3745
3715
  }
3746
3716
  );
3747
- const topBorder = drawInputTopBorder(width, borderStyle);
3748
- const bottomBorder = drawInputBottomBorder(width, borderStyle);
3717
+ const topBorder = drawOpenInputRule(width, borderStyle);
3718
+ const bottomBorder = drawOpenInputRule(width, borderStyle);
3749
3719
  const statusRow = formatPromptStatusRow(statusLine, width);
3750
3720
  const widthChanged = lastRenderedPromptWidth > 0 && width !== lastRenderedPromptWidth;
3751
3721
  const effectiveResize = isResize || widthChanged;
@@ -3824,7 +3794,7 @@ ${sl}`;
3824
3794
  const moveUp = PROMPT_LINES_BELOW_INPUT + helpLines.length + STATUS_LINE_COUNT + slashLines.length + (state.lineCount - 1 - state.cursorRow);
3825
3795
  readline2.moveCursor(output, 0, -moveUp);
3826
3796
  readline2.cursorTo(output, state.cursorColumn);
3827
- output.write("\x1B[?25h");
3797
+ output.write("\x1B[2 q\x1B[?25h");
3828
3798
  lastRenderedContentLines = state.lineCount;
3829
3799
  lastRenderedCursorRow = state.cursorRow;
3830
3800
  lastRenderedPromptWidth = width;
@@ -3836,9 +3806,8 @@ export {
3836
3806
  buildFileMentionSuggestions,
3837
3807
  buildSkillMentionSuggestions,
3838
3808
  ImageManager,
3839
- drawInputTopBorder,
3840
- drawInputBottomBorder,
3841
- drawInputBox,
3809
+ drawOpenInputRule,
3810
+ drawOpenInputLine,
3842
3811
  TextBuffer,
3843
3812
  handleTextBufferKey,
3844
3813
  promptNotify,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  safePrompt
3
- } from "./chunk-MMKZSJUN.js";
3
+ } from "./chunk-NKW6CHXQ.js";
4
4
  import {
5
5
  AUTOHAND_PATHS
6
- } from "./chunk-SHRLFX6F.js";
6
+ } from "./chunk-PG2JIU5M.js";
7
7
 
8
8
  // src/commands/agents-new.ts
9
9
  import path from "path";