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
@@ -0,0 +1,71 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/session/chatLog.ts
2
+ function decodeJsonStringLiteral(value) {
3
+ try {
4
+ return JSON.parse(`"${value}"`);
5
+ } catch (e) {
6
+ return value;
7
+ }
8
+ }
9
+ function extractJsonStringField(raw, field) {
10
+ const match = raw.match(new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`, "s"));
11
+ return _optionalChain([match, 'optionalAccess', _ => _[1]]) ? decodeJsonStringLiteral(match[1]) : null;
12
+ }
13
+ function getAssistantChatLogContent(content) {
14
+ const trimmed = content.trim();
15
+ if (!trimmed) {
16
+ return null;
17
+ }
18
+ try {
19
+ const parsed = JSON.parse(trimmed);
20
+ for (const field of ["finalResponse", "response", "content", "message"]) {
21
+ const value = parsed[field];
22
+ if (typeof value === "string" && value.trim()) {
23
+ return value.trim();
24
+ }
25
+ }
26
+ return null;
27
+ } catch (e2) {
28
+ const finalResponse = _nullishCoalesce(extractJsonStringField(trimmed, "finalResponse"), () => ( extractJsonStringField(trimmed, "response")));
29
+ if (_optionalChain([finalResponse, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()])) {
30
+ return finalResponse.trim();
31
+ }
32
+ if (trimmed.startsWith("{") || trimmed.includes('"thought"')) {
33
+ return null;
34
+ }
35
+ return trimmed;
36
+ }
37
+ }
38
+ function buildSessionChatLog(messages) {
39
+ const chatMessages = [];
40
+ for (const message of messages) {
41
+ if (message.role === "user") {
42
+ const content = message.content.trim();
43
+ if (content) {
44
+ chatMessages.push({ role: "user", content });
45
+ }
46
+ continue;
47
+ }
48
+ if (message.role === "assistant") {
49
+ const content = getAssistantChatLogContent(message.content);
50
+ if (content) {
51
+ chatMessages.push({ role: "assistant", content });
52
+ }
53
+ }
54
+ }
55
+ return chatMessages;
56
+ }
57
+ function formatChatLogPreview(content, maxLength = 100) {
58
+ const singleLine = content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
59
+ return singleLine.length > maxLength ? `${singleLine.slice(0, maxLength)}...` : singleLine;
60
+ }
61
+
62
+
63
+
64
+
65
+
66
+ exports.getAssistantChatLogContent = getAssistantChatLogContent; exports.buildSessionChatLog = buildSessionChatLog; exports.formatChatLogPreview = formatChatLogPreview;
67
+ /**
68
+ * @license
69
+ * Copyright 2026 Autohand AI LLC
70
+ * SPDX-License-Identifier: Apache-2.0
71
+ */
@@ -0,0 +1,156 @@
1
+ // src/commands/sessionBranching.ts
2
+ import chalk from "chalk";
3
+ var FORK_FLAG = "experimental_fork";
4
+ var CLONE_FLAG = "experimental_clone";
5
+ var forkMetadata = {
6
+ command: "/fork",
7
+ description: "branch a new session from the active session or an earlier user message",
8
+ implemented: true
9
+ };
10
+ var cloneMetadata = {
11
+ command: "/clone",
12
+ description: "duplicate the active session branch into a new session",
13
+ implemented: true
14
+ };
15
+ var treeMetadata = {
16
+ command: "/tree",
17
+ description: "show the fork and clone tree for this project",
18
+ implemented: true
19
+ };
20
+ async function forkSession(ctx, args = []) {
21
+ if (!isEnabled(ctx, FORK_FLAG)) {
22
+ return `The /fork command is behind ${FORK_FLAG}. Run /features enable ${FORK_FLAG}, then /fork again. No restart required.`;
23
+ }
24
+ await ctx.trackFeatureActivation?.(FORK_FLAG, { surface: "slash_command" });
25
+ const target = parseForkArgs(args);
26
+ const sourceSessionId = target.sourceReference ? await ctx.sessionManager.resolveSessionReference(target.sourceReference) : requireCurrentSessionId(ctx, "/fork");
27
+ const forked = await ctx.sessionManager.branchSession(sourceSessionId, {
28
+ type: "fork",
29
+ userMessageOrdinal: target.userMessageOrdinal
30
+ });
31
+ await ctx.restoreSession?.(forked.metadata.sessionId);
32
+ const point = target.userMessageOrdinal ? ` at user message ${target.userMessageOrdinal}` : "";
33
+ return chalk.green(`Forked session ${forked.metadata.sessionId}${point}. Continue typing to explore this branch.`);
34
+ }
35
+ async function cloneSession(ctx, args = []) {
36
+ if (!isEnabled(ctx, CLONE_FLAG)) {
37
+ return `The /clone command is behind ${CLONE_FLAG}. Run /features enable ${CLONE_FLAG}, then /clone again. No restart required.`;
38
+ }
39
+ await ctx.trackFeatureActivation?.(CLONE_FLAG, { surface: "slash_command" });
40
+ const sourceReference = args[0] ? await ctx.sessionManager.resolveSessionReference(args[0]) : requireCurrentSessionId(ctx, "/clone");
41
+ const cloned = await ctx.sessionManager.branchSession(sourceReference, { type: "clone" });
42
+ await ctx.restoreSession?.(cloned.metadata.sessionId);
43
+ return chalk.green(`Cloned session ${cloned.metadata.sessionId}. Continue typing in the duplicate branch.`);
44
+ }
45
+ async function sessionTree(ctx) {
46
+ if (!isEnabled(ctx, FORK_FLAG) && !isEnabled(ctx, CLONE_FLAG)) {
47
+ return `The /tree command is behind ${FORK_FLAG} or ${CLONE_FLAG}. Enable one of those features first.`;
48
+ }
49
+ const sessions = await ctx.sessionManager.listSessions(
50
+ ctx.workspaceRoot ? { project: ctx.workspaceRoot } : void 0
51
+ );
52
+ if (sessions.length === 0) {
53
+ return "No sessions found for this project.";
54
+ }
55
+ return formatSessionTree(sessions, ctx.currentSession?.metadata.sessionId);
56
+ }
57
+ async function forkSessionReference(ctx, sourceReference) {
58
+ if (!isEnabled(ctx, FORK_FLAG)) {
59
+ return `The --fork flag is behind ${FORK_FLAG}. Run /features enable ${FORK_FLAG}, then try again.`;
60
+ }
61
+ await ctx.trackFeatureActivation?.(FORK_FLAG, { surface: "cli_flag" });
62
+ const sourceSessionId = await ctx.sessionManager.resolveSessionReference(sourceReference);
63
+ const forked = await ctx.sessionManager.branchSession(sourceSessionId, { type: "fork" });
64
+ await ctx.restoreSession?.(forked.metadata.sessionId);
65
+ return forked.metadata.sessionId;
66
+ }
67
+ function isEnabled(ctx, flag) {
68
+ const localDefault = flag === FORK_FLAG ? ctx.config?.features?.experimentalFork === true : ctx.config?.features?.experimentalClone === true;
69
+ return ctx.isFeatureEnabled?.(flag, localDefault) ?? localDefault;
70
+ }
71
+ function requireCurrentSessionId(ctx, command) {
72
+ const sessionId = ctx.currentSession?.metadata.sessionId ?? ctx.sessionManager.getCurrentSession()?.metadata.sessionId;
73
+ if (!sessionId) {
74
+ throw new Error(`${command} requires an active session.`);
75
+ }
76
+ return sessionId;
77
+ }
78
+ function parseForkArgs(args) {
79
+ const rest = [...args];
80
+ let userMessageOrdinal;
81
+ const messageFlagIndex = rest.findIndex((arg) => arg === "--message" || arg === "-m");
82
+ if (messageFlagIndex >= 0) {
83
+ const rawValue = rest[messageFlagIndex + 1];
84
+ if (!rawValue) {
85
+ throw new Error("Missing message number after --message.");
86
+ }
87
+ userMessageOrdinal = parseUserMessageOrdinal(rawValue);
88
+ rest.splice(messageFlagIndex, 2);
89
+ }
90
+ if (rest.length === 1 && /^\d+$/.test(rest[0])) {
91
+ userMessageOrdinal = parseUserMessageOrdinal(rest[0]);
92
+ rest.length = 0;
93
+ }
94
+ return {
95
+ sourceReference: rest[0],
96
+ userMessageOrdinal
97
+ };
98
+ }
99
+ function parseUserMessageOrdinal(rawValue) {
100
+ const parsed = Number.parseInt(rawValue, 10);
101
+ if (!Number.isInteger(parsed) || parsed < 1) {
102
+ throw new Error("Fork message must be a positive user-message number.");
103
+ }
104
+ return parsed;
105
+ }
106
+ function formatSessionTree(sessions, currentSessionId) {
107
+ const byParent = /* @__PURE__ */ new Map();
108
+ const roots = [];
109
+ const ids = new Set(sessions.map((session) => session.sessionId));
110
+ for (const session of sessions) {
111
+ const parentId = session.branch?.sourceSessionId;
112
+ if (parentId && ids.has(parentId)) {
113
+ const siblings = byParent.get(parentId) ?? [];
114
+ siblings.push(session);
115
+ byParent.set(parentId, siblings);
116
+ } else {
117
+ roots.push(session);
118
+ }
119
+ }
120
+ const sortByCreated = (items) => [...items].sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
121
+ const lines = ["Session tree:"];
122
+ const visit = (session, depth) => {
123
+ const marker = session.sessionId === currentSessionId ? " *" : "";
124
+ const branch = formatBranchLabel(session);
125
+ lines.push(`${" ".repeat(depth)}- ${session.sessionId}${marker}${branch}`);
126
+ for (const child of sortByCreated(byParent.get(session.sessionId) ?? [])) {
127
+ visit(child, depth + 1);
128
+ }
129
+ };
130
+ for (const root of sortByCreated(roots)) {
131
+ visit(root, 0);
132
+ }
133
+ return lines.join("\n");
134
+ }
135
+ function formatBranchLabel(session) {
136
+ if (!session.branch) return "";
137
+ if (session.branch.type === "fork" && session.branch.sourceUserMessageOrdinal) {
138
+ return ` (${session.branch.type} at user message ${session.branch.sourceUserMessageOrdinal})`;
139
+ }
140
+ return ` (${session.branch.type})`;
141
+ }
142
+
143
+ export {
144
+ forkMetadata,
145
+ cloneMetadata,
146
+ treeMetadata,
147
+ forkSession,
148
+ cloneSession,
149
+ sessionTree,
150
+ forkSessionReference
151
+ };
152
+ /**
153
+ * @license
154
+ * Copyright 2026 Autohand AI LLC
155
+ * SPDX-License-Identifier: Apache-2.0
156
+ */
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunkE26KKI46cjs = require('./chunk-E26KKI46.cjs');
3
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
4
4
 
5
5
  // src/skills/CommunitySkillsCache.ts
6
6
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -12,7 +12,7 @@ var CommunitySkillsCache = class {
12
12
 
13
13
 
14
14
  constructor(config = {}) {
15
- this.cacheDir = config.cacheDir || _path2.default.join(_chunkE26KKI46cjs.AUTOHAND_HOME, "community-skills", "cache");
15
+ this.cacheDir = config.cacheDir || _path2.default.join(_chunk3JURXAL6cjs.AUTOHAND_HOME, "community-skills", "cache");
16
16
  this.ttlMs = _nullishCoalesce(config.ttlMs, () => ( DEFAULT_TTL_MS));
17
17
  this.maxSkillsCache = _nullishCoalesce(config.maxSkillsCache, () => ( DEFAULT_MAX_SKILLS_CACHE));
18
18
  }
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  safePrompt
3
- } from "./chunk-62RTC3XX.js";
3
+ } from "./chunk-NKW6CHXQ.js";
4
4
  import {
5
5
  package_default
6
- } from "./chunk-3PXKRVCW.js";
6
+ } from "./chunk-NOWCRKP2.js";
7
7
  import {
8
8
  AUTOHAND_FILES,
9
9
  AUTOHAND_PATHS
10
- } from "./chunk-TWQDAUZU.js";
10
+ } from "./chunk-PG2JIU5M.js";
11
11
  import {
12
12
  t
13
- } from "./chunk-CBFH2J3O.js";
13
+ } from "./chunk-SJQU2ZFR.js";
14
14
 
15
15
  // src/commands/feedback.ts
16
16
  import fs from "fs-extra";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-CBFH2J3O.js";
3
+ } from "./chunk-SJQU2ZFR.js";
4
4
 
5
5
  // src/commands/permissions.ts
6
6
  import chalk from "chalk";
@@ -3,7 +3,10 @@
3
3
  var _chunkJHGIWNHLcjs = require('./chunk-JHGIWNHL.cjs');
4
4
 
5
5
 
6
- var _chunkE26KKI46cjs = require('./chunk-E26KKI46.cjs');
6
+
7
+
8
+
9
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
7
10
 
8
11
  // src/skills/SkillsRegistry.ts
9
12
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -94,13 +97,31 @@ var SkillParser = class {
94
97
 
95
98
  // src/skills/SkillsRegistry.ts
96
99
  var SIMILARITY_THRESHOLD = 0.3;
97
- var VENDOR_SOURCES = ["codex-user", "claude-user", "codex-project", "claude-project"];
100
+ var BUILTIN_SKILLS_DIR = "builtin";
101
+ function sameResolvedPath(a, b) {
102
+ return _path2.default.resolve(a) === _path2.default.resolve(b);
103
+ }
104
+ function createDefaultUserSkillLocations(userSkillsDir, defaultSource, homeDir) {
105
+ return _chunk3JURXAL6cjs.getUserSkillLocations.call(void 0, homeDir, userSkillsDir).map(
106
+ (location) => sameResolvedPath(location.basePath, userSkillsDir) ? { ...location, source: defaultSource } : location
107
+ );
108
+ }
109
+ var VENDOR_SOURCES = [
110
+ "codex-user",
111
+ "claude-user",
112
+ "codex-project",
113
+ "claude-project",
114
+ "agent-user",
115
+ "agent-project"
116
+ ];
98
117
  var SkillsRegistry = (_class = class {
99
- constructor(userSkillsDir, defaultSource = "autohand-user") {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);
118
+ constructor(userSkillsDir, defaultSource = "autohand-user", options = {}) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);
100
119
  this.userSkillsDir = userSkillsDir;
120
+ this.options = options;
101
121
  this.defaultSource = defaultSource;
102
122
  }
103
123
 
124
+
104
125
  __init() {this.skills = /* @__PURE__ */ new Map()}
105
126
  __init2() {this.parser = new SkillParser()}
106
127
  __init3() {this.workspaceRoot = null}
@@ -225,17 +246,49 @@ var SkillsRegistry = (_class = class {
225
246
  * Initialize the registry by loading skills from the user directory
226
247
  */
227
248
  async initialize() {
228
- await this.loadFromDirectory(this.userSkillsDir, this.defaultSource, true);
249
+ await this.loadBuiltins();
250
+ for (const location of this.getUserSkillLocations()) {
251
+ await this.loadFromDirectory(location.basePath, location.source, location.recursive);
252
+ }
253
+ }
254
+ async loadBuiltins() {
255
+ for (const directory of this.getBuiltinSkillDirectories()) {
256
+ if (await _fsextra2.default.pathExists(directory)) {
257
+ await this.loadFromDirectory(directory, "builtin", true);
258
+ return;
259
+ }
260
+ }
261
+ }
262
+ getBuiltinSkillDirectories() {
263
+ const moduleDir = _path2.default.dirname(new URL(import.meta.url).pathname);
264
+ return [
265
+ _path2.default.join(moduleDir, BUILTIN_SKILLS_DIR),
266
+ _path2.default.join(moduleDir, "skills", BUILTIN_SKILLS_DIR),
267
+ _path2.default.join(moduleDir, "..", "skills", BUILTIN_SKILLS_DIR)
268
+ ];
269
+ }
270
+ getUserSkillLocations() {
271
+ if (this.options.userSkillLocations) {
272
+ return this.options.userSkillLocations;
273
+ }
274
+ const includeDefaultLocations = _nullishCoalesce(this.options.includeDefaultUserSkillLocations, () => ( sameResolvedPath(this.userSkillsDir, _chunk3JURXAL6cjs.AUTOHAND_PATHS.skills)));
275
+ if (!includeDefaultLocations) {
276
+ return [{ basePath: this.userSkillsDir, source: this.defaultSource, recursive: true }];
277
+ }
278
+ return createDefaultUserSkillLocations(
279
+ this.userSkillsDir,
280
+ this.defaultSource,
281
+ this.options.homeDir
282
+ );
229
283
  }
230
284
  /**
231
285
  * Set the workspace root and load project-level skills
232
286
  */
233
287
  async setWorkspace(workspaceRoot) {
234
288
  this.workspaceRoot = workspaceRoot;
235
- const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
236
- await this.loadFromDirectory(claudeProjectSkillsDir, "claude-project", false);
237
- const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkE26KKI46cjs.PROJECT_DIR_NAME, "skills");
238
- await this.loadFromDirectory(autohandProjectSkillsDir, "autohand-project", true);
289
+ for (const location of _chunk3JURXAL6cjs.getProjectSkillLocations.call(void 0, workspaceRoot)) {
290
+ await this.loadFromDirectory(location.basePath, location.source, location.recursive);
291
+ }
239
292
  }
240
293
  /**
241
294
  * Add an additional skill location to search
@@ -293,7 +346,7 @@ var SkillsRegistry = (_class = class {
293
346
  async setWorkspaceWithAutoCopy(workspaceRoot) {
294
347
  this.workspaceRoot = workspaceRoot;
295
348
  const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
296
- const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkE26KKI46cjs.PROJECT_DIR_NAME, "skills");
349
+ const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, "skills");
297
350
  await this.addLocationWithAutoCopy(
298
351
  claudeProjectSkillsDir,
299
352
  "claude-project",
@@ -2,7 +2,7 @@ import {
2
2
  getCurrentLocale,
3
3
  onLanguageChange,
4
4
  t
5
- } from "./chunk-CBFH2J3O.js";
5
+ } from "./chunk-SJQU2ZFR.js";
6
6
 
7
7
  // src/ui/i18n/I18nContext.tsx
8
8
  import { createContext, useContext, useState, useEffect, useMemo } from "react";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  package_default
3
- } from "./chunk-3PXKRVCW.js";
3
+ } from "./chunk-NOWCRKP2.js";
4
4
  import {
5
5
  showConfirm,
6
6
  showModal
7
- } from "./chunk-DLP436GI.js";
7
+ } from "./chunk-LOSXLH7P.js";
8
8
  import {
9
9
  AUTOHAND_PATHS
10
- } from "./chunk-TWQDAUZU.js";
10
+ } from "./chunk-PG2JIU5M.js";
11
11
  import {
12
12
  t
13
- } from "./chunk-CBFH2J3O.js";
13
+ } from "./chunk-SJQU2ZFR.js";
14
14
 
15
15
  // src/commands/share.ts
16
16
  import chalk from "chalk";
@@ -485,6 +485,7 @@ async function execute(_args, context) {
485
485
  const client = getShareApiClient();
486
486
  const deviceId = await client.getDeviceId();
487
487
  const totalTokens = context.getTotalTokensUsed?.() ?? 0;
488
+ const tokenUsageStatus = context.getTokenUsageStatus?.() ?? "actual";
488
489
  const duration = calculateDuration2(session.metadata.createdAt);
489
490
  console.log();
490
491
  console.log(chalk.bold("Session Summary"));
@@ -492,9 +493,9 @@ async function execute(_args, context) {
492
493
  console.log(` Project: ${chalk.cyan(session.metadata.projectName)}`);
493
494
  console.log(` Model: ${chalk.cyan(context.model)}`);
494
495
  console.log(` Messages: ${chalk.cyan(messages.length)}`);
495
- console.log(` Tokens: ${chalk.cyan(formatTokens(totalTokens))}`);
496
+ console.log(` Tokens: ${chalk.cyan(tokenUsageStatus === "actual" ? formatTokens(totalTokens) : "unavailable")}`);
496
497
  console.log(
497
- ` Est. Cost: ${chalk.green(formatCost(totalTokens / 1e3 * 3e-3))}`
498
+ ` Est. Cost: ${chalk.green(tokenUsageStatus === "actual" ? formatCost(totalTokens / 1e3 * 3e-3) : "unavailable")}`
498
499
  );
499
500
  console.log(` Duration: ${chalk.cyan(formatDuration(duration))}`);
500
501
  console.log();
@@ -229,6 +229,48 @@ var HookManager = class {
229
229
  case "subagent-stop":
230
230
  value = context.subagentType ?? "";
231
231
  break;
232
+ case "automode:start":
233
+ case "automode:iteration":
234
+ case "automode:checkpoint":
235
+ case "automode:pause":
236
+ case "automode:resume":
237
+ case "automode:cancel":
238
+ case "automode:complete":
239
+ case "automode:error":
240
+ value = [
241
+ context.automodePrompt,
242
+ context.automodeCancelReason,
243
+ context.automodeCheckpointCommit,
244
+ context.automodeIteration
245
+ ].filter((part) => part !== void 0 && part !== null).join(" ");
246
+ break;
247
+ case "review:start":
248
+ case "review:end":
249
+ case "review:paused":
250
+ case "review:failed":
251
+ case "review:completed":
252
+ value = [
253
+ context.reviewPath,
254
+ context.reviewScope,
255
+ context.reviewInstructions,
256
+ context.reviewError
257
+ ].filter((part) => part !== void 0 && part !== null).join(" ");
258
+ break;
259
+ case "goal-written:completed":
260
+ value = [context.goalObjective, context.goalSource].filter((part) => part !== void 0 && part !== null).join(" ");
261
+ break;
262
+ case "team-created":
263
+ case "team-shutdown":
264
+ value = context.teamName ?? "";
265
+ break;
266
+ case "teammate-spawned":
267
+ case "teammate-idle":
268
+ value = [context.teamName, context.teammateName, context.teammateAgentName].filter((part) => part !== void 0 && part !== null).join(" ");
269
+ break;
270
+ case "task-assigned":
271
+ case "task-completed":
272
+ value = [context.teamTaskId, context.teamTaskOwner, context.teamTaskResult].filter((part) => part !== void 0 && part !== null).join(" ");
273
+ break;
232
274
  default:
233
275
  return true;
234
276
  }
@@ -259,6 +301,7 @@ var HookManager = class {
259
301
  if (context.instruction) env.HOOK_INSTRUCTION = context.instruction;
260
302
  if (context.mentionedFiles) env.HOOK_MENTIONED_FILES = JSON.stringify(context.mentionedFiles);
261
303
  if (context.tokensUsed !== void 0) env.HOOK_TOKENS = String(context.tokensUsed);
304
+ if (context.tokensUsageStatus !== void 0) env.HOOK_TOKENS_USAGE_STATUS = context.tokensUsageStatus;
262
305
  if (context.toolCallsCount !== void 0) env.HOOK_TOOL_CALLS_COUNT = String(context.toolCallsCount);
263
306
  if (context.toolCallsInTurn !== void 0) env.HOOK_TURN_TOOL_CALLS = String(context.toolCallsInTurn);
264
307
  if (context.turnDuration !== void 0) env.HOOK_TURN_DURATION = String(context.turnDuration);
@@ -287,6 +330,19 @@ var HookManager = class {
287
330
  if (context.reviewError) env.HOOK_REVIEW_ERROR = context.reviewError;
288
331
  if (context.reviewInstructions) env.HOOK_REVIEW_INSTRUCTIONS = context.reviewInstructions;
289
332
  }
333
+ if (context.goalId) env.HOOK_GOAL_ID = context.goalId;
334
+ if (context.goalObjective) env.HOOK_GOAL_OBJECTIVE = context.goalObjective;
335
+ if (context.goalSource) env.HOOK_GOAL_SOURCE = context.goalSource;
336
+ if (context.teamName) env.HOOK_TEAM_NAME = context.teamName;
337
+ if (context.teammateName) env.HOOK_TEAMMATE_NAME = context.teammateName;
338
+ if (context.teammateAgentName) env.HOOK_TEAMMATE_AGENT = context.teammateAgentName;
339
+ if (context.teammatePid !== void 0) env.HOOK_TEAMMATE_PID = String(context.teammatePid);
340
+ if (context.teamTaskId) env.HOOK_TEAM_TASK_ID = context.teamTaskId;
341
+ if (context.teamTaskOwner) env.HOOK_TEAM_TASK_OWNER = context.teamTaskOwner;
342
+ if (context.teamTaskResult) env.HOOK_TEAM_TASK_RESULT = context.teamTaskResult;
343
+ if (context.teamMemberCount !== void 0) env.HOOK_TEAM_MEMBER_COUNT = String(context.teamMemberCount);
344
+ if (context.teamTasksCompleted !== void 0) env.HOOK_TEAM_TASKS_COMPLETED = String(context.teamTasksCompleted);
345
+ if (context.teamTasksTotal !== void 0) env.HOOK_TEAM_TASKS_TOTAL = String(context.teamTasksTotal);
290
346
  if (context.additionalWorkspaces && context.additionalWorkspaces.length > 0) {
291
347
  env.HOOK_ADDITIONAL_WORKSPACES = JSON.stringify(context.additionalWorkspaces);
292
348
  }
@@ -314,6 +370,7 @@ var HookManager = class {
314
370
  mentioned_files: context.mentionedFiles,
315
371
  // Stop/response context
316
372
  tokens_used: context.tokensUsed,
373
+ tokens_usage_status: context.tokensUsageStatus,
317
374
  tool_calls_count: context.toolCallsCount,
318
375
  turn_tool_calls: context.toolCallsInTurn,
319
376
  turn_duration: context.turnDuration,
@@ -352,6 +409,21 @@ var HookManager = class {
352
409
  review_scope: context.reviewScope,
353
410
  review_instructions: context.reviewInstructions,
354
411
  review_error: context.reviewError,
412
+ // Goal context
413
+ goal_id: context.goalId,
414
+ goal_objective: context.goalObjective,
415
+ goal_source: context.goalSource,
416
+ // Team context
417
+ team_name: context.teamName,
418
+ teammate_name: context.teammateName,
419
+ teammate_agent_name: context.teammateAgentName,
420
+ teammate_pid: context.teammatePid,
421
+ team_task_id: context.teamTaskId,
422
+ team_task_owner: context.teamTaskOwner,
423
+ team_task_result: context.teamTaskResult,
424
+ team_member_count: context.teamMemberCount,
425
+ team_tasks_completed: context.teamTasksCompleted,
426
+ team_tasks_total: context.teamTasksTotal,
355
427
  // Multi-directory support
356
428
  additional_workspaces: context.additionalWorkspaces
357
429
  });
@@ -542,6 +614,11 @@ var HookManager = class {
542
614
  "automode:cancel",
543
615
  "automode:complete",
544
616
  "automode:error",
617
+ // Learn events
618
+ "pre-learn",
619
+ "post-learn",
620
+ // Goal authoring events
621
+ "goal-written:completed",
545
622
  // Review events
546
623
  "review:start",
547
624
  "review:end",
@@ -554,7 +631,14 @@ var HookManager = class {
554
631
  "teammate-idle",
555
632
  "task-assigned",
556
633
  "task-completed",
557
- "team-shutdown"
634
+ "team-shutdown",
635
+ // Mode events
636
+ "mode-change",
637
+ // Context lifecycle events
638
+ "context:compact",
639
+ "context:overflow",
640
+ "context:warning",
641
+ "context:critical"
558
642
  ];
559
643
  const summary = {};
560
644
  for (const event of events) {
@@ -1,5 +1,7 @@
1
1
  // src/utils/asciiArt.ts
2
- var ASCII_FRIEND = [
2
+ import stringWidth from "string-width";
3
+ var DEFAULT_TERMINAL_COLUMNS = 80;
4
+ var DETAILED_LOGO_LINES = [
3
5
  "\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840",
4
6
  "\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9",
5
7
  "\u28A7\u2800\u2818\u281B\u2803\u28A0\u287F\u2819\u28FF\u2840\u2819\u281B\u2803\u28F0\u287F\u28BB\u28E7\u2808\u281B\u281B\u2880\u28FE\u2807\u28BB\u28C6\u2808\u281B\u280B\u2800\u287C",
@@ -8,7 +10,19 @@ var ASCII_FRIEND = [
8
10
  "\u287E\u2803\u28A0\u28E4\u2844\u2818\u28FF\u28E0\u28FF\u2801\u28E0\u28E4\u2844\u2839\u28F7\u28FC\u284F\u2880\u28E4\u28E4\u2808\u28BF\u2846\u28FE\u280F\u2880\u28E4\u28C4\u2808\u28BF",
9
11
  "\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
10
12
  "\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
11
- ].join("\n");
13
+ ];
14
+ var COMPACT_LOGO_LINES = [
15
+ " .--. .--. .--. .--.",
16
+ "(() ) (() ) (() ) (() )",
17
+ " '--' '--' '--' '--'",
18
+ " .--. .--. .--. .--.",
19
+ "(() ) (() ) (() ) (() )",
20
+ " '--' '--' '--' '--'"
21
+ ];
22
+ var TINY_LOGO_LINES = [
23
+ "o o o o",
24
+ "o o o o"
25
+ ];
12
26
  var LOGO_LINES = [
13
27
  "\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588",
14
28
  "\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588",
@@ -19,10 +33,40 @@ var LOGO_LINES = [
19
33
  "\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
20
34
  "\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
21
35
  ];
36
+ var ASCII_FRIEND = DETAILED_LOGO_LINES.join("\n");
37
+ function maxLineWidth(lines) {
38
+ return Math.max(...lines.map((line) => stringWidth(line)));
39
+ }
40
+ function normalizeColumns(columns) {
41
+ if (typeof columns !== "number" || !Number.isFinite(columns)) {
42
+ return DEFAULT_TERMINAL_COLUMNS;
43
+ }
44
+ return Math.max(1, Math.floor(columns));
45
+ }
46
+ function getTerminalColumns(output = process.stdout) {
47
+ return normalizeColumns(output.columns);
48
+ }
49
+ function renderAutohandLogo(options = {}) {
50
+ const columns = normalizeColumns(options.columns);
51
+ const candidates = [
52
+ ...options.includeWordmark ? [{ lines: LOGO_LINES, minColumns: 120 }] : [],
53
+ { lines: DETAILED_LOGO_LINES, minColumns: 64 },
54
+ { lines: COMPACT_LOGO_LINES, minColumns: 24 },
55
+ { lines: TINY_LOGO_LINES, minColumns: 7 }
56
+ ];
57
+ const match = candidates.find(
58
+ (candidate) => columns >= candidate.minColumns && maxLineWidth(candidate.lines) <= columns
59
+ );
60
+ if (match) {
61
+ return match.lines.join("\n");
62
+ }
63
+ return columns >= "autohand".length ? "autohand" : "ah";
64
+ }
22
65
 
23
66
  export {
24
67
  ASCII_FRIEND,
25
- LOGO_LINES
68
+ getTerminalColumns,
69
+ renderAutohandLogo
26
70
  };
27
71
  /**
28
72
  * @license