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
@@ -1,80 +1,21 @@
1
+ import {
2
+ buildSessionChatLog,
3
+ formatChatLogPreview
4
+ } from "./chunk-RS2E32YB.js";
1
5
  import {
2
6
  showModal
3
- } from "./chunk-DLP436GI.js";
7
+ } from "./chunk-LOSXLH7P.js";
4
8
  import {
5
9
  AUTOHAND_PATHS
6
- } from "./chunk-TWQDAUZU.js";
10
+ } from "./chunk-PG2JIU5M.js";
7
11
  import {
8
12
  t
9
- } from "./chunk-CBFH2J3O.js";
13
+ } from "./chunk-SJQU2ZFR.js";
10
14
 
11
15
  // src/commands/resume.ts
12
16
  import chalk from "chalk";
13
17
  import fs from "fs-extra";
14
18
  import path from "path";
15
-
16
- // src/session/chatLog.ts
17
- function decodeJsonStringLiteral(value) {
18
- try {
19
- return JSON.parse(`"${value}"`);
20
- } catch {
21
- return value;
22
- }
23
- }
24
- function extractJsonStringField(raw, field) {
25
- const match = raw.match(new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`, "s"));
26
- return match?.[1] ? decodeJsonStringLiteral(match[1]) : null;
27
- }
28
- function getAssistantChatLogContent(content) {
29
- const trimmed = content.trim();
30
- if (!trimmed) {
31
- return null;
32
- }
33
- try {
34
- const parsed = JSON.parse(trimmed);
35
- for (const field of ["finalResponse", "response", "content", "message"]) {
36
- const value = parsed[field];
37
- if (typeof value === "string" && value.trim()) {
38
- return value.trim();
39
- }
40
- }
41
- return null;
42
- } catch {
43
- const finalResponse = extractJsonStringField(trimmed, "finalResponse") ?? extractJsonStringField(trimmed, "response");
44
- if (finalResponse?.trim()) {
45
- return finalResponse.trim();
46
- }
47
- if (trimmed.startsWith("{") || trimmed.includes('"thought"')) {
48
- return null;
49
- }
50
- return trimmed;
51
- }
52
- }
53
- function buildSessionChatLog(messages) {
54
- const chatMessages = [];
55
- for (const message of messages) {
56
- if (message.role === "user") {
57
- const content = message.content.trim();
58
- if (content) {
59
- chatMessages.push({ role: "user", content });
60
- }
61
- continue;
62
- }
63
- if (message.role === "assistant") {
64
- const content = getAssistantChatLogContent(message.content);
65
- if (content) {
66
- chatMessages.push({ role: "assistant", content });
67
- }
68
- }
69
- }
70
- return chatMessages;
71
- }
72
- function formatChatLogPreview(content, maxLength = 100) {
73
- const singleLine = content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
74
- return singleLine.length > maxLength ? `${singleLine.slice(0, maxLength)}...` : singleLine;
75
- }
76
-
77
- // src/commands/resume.ts
78
19
  var metadata = {
79
20
  command: "/resume",
80
21
  description: t("commands.resume.description"),
@@ -226,15 +167,9 @@ ${t("commands.resume.resuming", { id: title })}`));
226
167
  }
227
168
 
228
169
  export {
229
- buildSessionChatLog,
230
170
  metadata,
231
171
  resume
232
172
  };
233
- /**
234
- * @license
235
- * Copyright 2026 Autohand AI LLC
236
- * SPDX-License-Identifier: Apache-2.0
237
- */
238
173
  /**
239
174
  * @license
240
175
  * Copyright 2025 Autohand AI LLC
@@ -3,10 +3,10 @@
3
3
  var _chunkDA7NBAJKcjs = require('./chunk-DA7NBAJK.cjs');
4
4
 
5
5
 
6
- var _chunkYFXTE422cjs = require('./chunk-YFXTE422.cjs');
6
+ var _chunkVWHAUB77cjs = require('./chunk-VWHAUB77.cjs');
7
7
 
8
8
 
9
- var _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
9
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
10
10
 
11
11
  // src/commands/clear.ts
12
12
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -17,7 +17,7 @@ async function clearConversation(ctx) {
17
17
  });
18
18
  }
19
19
  const conversationHistory = _chunkDA7NBAJKcjs.ConversationManager.getInstance().history();
20
- const saved = await _chunkYFXTE422cjs.extractAndSaveSessionMemories.call(void 0, {
20
+ const saved = await _chunkVWHAUB77cjs.extractAndSaveSessionMemories.call(void 0, {
21
21
  llm: ctx.llm,
22
22
  memoryManager: ctx.memoryManager,
23
23
  conversationHistory,
@@ -42,7 +42,7 @@ async function clearConversation(ctx) {
42
42
  )
43
43
  );
44
44
  } else {
45
- console.log(_chalk2.default.cyan(_chunkCHI52KFRcjs.t.call(void 0, "commands.new.cleared")));
45
+ console.log(_chalk2.default.cyan(_chunkRJCZLFHEcjs.t.call(void 0, "commands.new.cleared")));
46
46
  }
47
47
  console.log();
48
48
  return null;
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  SetupWizard
3
- } from "./chunk-2HOLOHVK.js";
3
+ } from "./chunk-TJZUPS4Z.js";
4
4
  import {
5
5
  loadConfig,
6
6
  resolveWorkspaceRoot,
7
7
  saveConfig
8
- } from "./chunk-3UT7R3XV.js";
8
+ } from "./chunk-CM24K6ZT.js";
9
9
  import {
10
10
  detectLocale,
11
11
  initI18n,
12
12
  t
13
- } from "./chunk-CBFH2J3O.js";
13
+ } from "./chunk-SJQU2ZFR.js";
14
14
 
15
15
  // src/commands/setup.ts
16
16
  import chalk from "chalk";
@@ -0,0 +1,377 @@
1
+ import {
2
+ getAssistantChatLogContent
3
+ } from "./chunk-RS2E32YB.js";
4
+ import {
5
+ package_default
6
+ } from "./chunk-NOWCRKP2.js";
7
+ import {
8
+ AUTOHAND_FILES
9
+ } from "./chunk-PG2JIU5M.js";
10
+
11
+ // src/commands/go.ts
12
+ import os from "os";
13
+ import chalk from "chalk";
14
+ import QRCode from "qrcode";
15
+ import terminalLink from "terminal-link";
16
+
17
+ // src/mobile/MobileHandoffClient.ts
18
+ import crypto from "crypto";
19
+ import fs from "fs-extra";
20
+ import path from "path";
21
+ var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
22
+ var DEFAULT_TIMEOUT_MS = 1e4;
23
+ function getMobileApiBaseUrl(config) {
24
+ return (config?.api?.baseUrl || process.env.AUTOHAND_API_URL || DEFAULT_API_BASE_URL).replace(/\/+$/, "");
25
+ }
26
+ var MobileHandoffClient = class {
27
+ baseUrl;
28
+ timeoutMs;
29
+ constructor(config = {}) {
30
+ this.baseUrl = (config.baseUrl || DEFAULT_API_BASE_URL).replace(/\/+$/, "");
31
+ this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
32
+ }
33
+ async getDeviceId() {
34
+ try {
35
+ await fs.ensureDir(path.dirname(AUTOHAND_FILES.deviceId));
36
+ if (await fs.pathExists(AUTOHAND_FILES.deviceId)) {
37
+ const existing = (await fs.readFile(AUTOHAND_FILES.deviceId, "utf8")).trim();
38
+ if (existing) return existing;
39
+ }
40
+ const next = crypto.randomUUID();
41
+ await fs.writeFile(AUTOHAND_FILES.deviceId, next);
42
+ return next;
43
+ } catch {
44
+ return crypto.randomUUID();
45
+ }
46
+ }
47
+ async registerDevice(token, payload) {
48
+ await this.request("/v1/devices/register", token, {
49
+ method: "POST",
50
+ body: JSON.stringify({
51
+ deviceId: payload.deviceId,
52
+ clientType: payload.clientType ?? "cli",
53
+ agentName: payload.agentName,
54
+ metadata: payload.metadata
55
+ }),
56
+ headers: {
57
+ "X-Device-ID": payload.deviceId
58
+ }
59
+ });
60
+ }
61
+ async createPairing(token, payload) {
62
+ const data = await this.request(
63
+ "/v1/mobile/pairings",
64
+ token,
65
+ {
66
+ method: "POST",
67
+ body: JSON.stringify(payload),
68
+ headers: {
69
+ "X-CLI-Version": package_default.version,
70
+ "X-Device-ID": payload.deviceId
71
+ }
72
+ }
73
+ );
74
+ if (data.success !== true || !data.pairing?.pairingUrl) {
75
+ throw new Error(data.error || "Invalid mobile pairing response");
76
+ }
77
+ return data.pairing;
78
+ }
79
+ async sendRelayHeartbeat(token, payload) {
80
+ await this.request(`/v1/mobile/sessions/${encodeURIComponent(payload.sessionId)}/heartbeat`, token, {
81
+ method: "POST",
82
+ body: JSON.stringify({
83
+ deviceId: payload.deviceId,
84
+ pairingId: payload.pairingId,
85
+ mode: payload.mode
86
+ }),
87
+ headers: {
88
+ "X-Device-ID": payload.deviceId
89
+ }
90
+ });
91
+ }
92
+ async claimWork(token, deviceId) {
93
+ const data = await this.request(
94
+ "/v1/work/claim",
95
+ token,
96
+ {
97
+ method: "POST",
98
+ body: JSON.stringify({ deviceId }),
99
+ headers: {
100
+ "X-Device-ID": deviceId
101
+ },
102
+ allowNotFound: true
103
+ }
104
+ );
105
+ if (data.success === false && data.error === "No work available") {
106
+ return null;
107
+ }
108
+ if (!data.success || !data.work) {
109
+ throw new Error(data.error || "Invalid work claim response");
110
+ }
111
+ return data.work;
112
+ }
113
+ async request(path2, token, options) {
114
+ const controller = new AbortController();
115
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
116
+ try {
117
+ const response = await fetch(`${this.baseUrl}${path2}`, {
118
+ method: options.method,
119
+ headers: {
120
+ Authorization: `Bearer ${token}`,
121
+ "Content-Type": "application/json",
122
+ ...options.headers
123
+ },
124
+ body: options.body,
125
+ signal: controller.signal
126
+ });
127
+ if (options.allowNotFound && response.status === 404) {
128
+ const data = await response.json().catch(() => ({ success: false, error: "No work available" }));
129
+ return data;
130
+ }
131
+ if (!response.ok) {
132
+ const text = await response.text().catch(() => "Unknown error");
133
+ throw new Error(`API error: ${response.status} ${text}`);
134
+ }
135
+ return await response.json();
136
+ } catch (error) {
137
+ if (error.name === "AbortError") {
138
+ throw new Error("Request timeout");
139
+ }
140
+ throw error;
141
+ } finally {
142
+ clearTimeout(timeout);
143
+ }
144
+ }
145
+ };
146
+
147
+ // src/mobile/MobileRelay.ts
148
+ var activeRelay = null;
149
+ function startMobileRelay(options) {
150
+ stopMobileRelay();
151
+ activeRelay = {
152
+ deviceId: options.deviceId,
153
+ timer: setInterval(() => {
154
+ void pollOnce(options);
155
+ }, Math.max(options.pollIntervalMs, 1e3)),
156
+ polling: false
157
+ };
158
+ activeRelay.timer.unref?.();
159
+ void pollOnce(options);
160
+ }
161
+ function stopMobileRelay() {
162
+ if (!activeRelay) return;
163
+ clearInterval(activeRelay.timer);
164
+ activeRelay = null;
165
+ }
166
+ async function pollOnce(options) {
167
+ if (!activeRelay || activeRelay.deviceId !== options.deviceId || activeRelay.polling) {
168
+ return;
169
+ }
170
+ activeRelay.polling = true;
171
+ try {
172
+ try {
173
+ await options.client.sendRelayHeartbeat(options.token, {
174
+ sessionId: options.sessionId,
175
+ deviceId: options.deviceId,
176
+ pairingId: options.pairingId,
177
+ mode: options.mode
178
+ });
179
+ } catch (error) {
180
+ options.onError?.(error);
181
+ }
182
+ const work = await options.client.claimWork(options.token, options.deviceId);
183
+ if (work?.prompt) {
184
+ options.enqueueInstruction(work.prompt);
185
+ }
186
+ } catch (error) {
187
+ options.onError?.(error);
188
+ } finally {
189
+ if (activeRelay?.deviceId === options.deviceId) {
190
+ activeRelay.polling = false;
191
+ }
192
+ }
193
+ }
194
+
195
+ // src/commands/go.ts
196
+ var metadata = {
197
+ command: "/go",
198
+ description: "pair this session with the Autohand Code iOS app",
199
+ implemented: true
200
+ };
201
+ var handoffSessionMetadata = {
202
+ command: "/handoff session",
203
+ description: "handoff this session to the Autohand Code iOS app",
204
+ implemented: true
205
+ };
206
+ var MAX_MOBILE_SNAPSHOT_MESSAGES = 24;
207
+ var HANDOFF_FLAG = "experimental_handoff";
208
+ function formatUrl(url) {
209
+ return terminalLink.isSupported ? terminalLink(url, url) : chalk.cyan.underline(url);
210
+ }
211
+ function formatExpiry(value) {
212
+ const date = new Date(value);
213
+ if (Number.isNaN(date.getTime())) return value;
214
+ return date.toLocaleString();
215
+ }
216
+ function nativeAppUrl(pairingUrl) {
217
+ const url = new URL(pairingUrl);
218
+ const nativeUrl = new URL("autohand-code://go");
219
+ const pairingId = url.searchParams.get("pairing");
220
+ const token = url.searchParams.get("token");
221
+ if (pairingId) nativeUrl.searchParams.set("pairing", pairingId);
222
+ if (token) nativeUrl.searchParams.set("token", token);
223
+ return nativeUrl.toString();
224
+ }
225
+ function buildMobileSessionSnapshot(session) {
226
+ const messages = [];
227
+ for (const message of session.getMessages()) {
228
+ if (message.role === "user") {
229
+ const content = message.content.trim();
230
+ if (content) {
231
+ messages.push({ role: "user", content, timestamp: message.timestamp });
232
+ }
233
+ continue;
234
+ }
235
+ if (message.role === "assistant") {
236
+ const content = getAssistantChatLogContent(message.content);
237
+ if (content) {
238
+ messages.push({ role: "assistant", content, timestamp: message.timestamp });
239
+ }
240
+ }
241
+ }
242
+ const recentMessages = messages.slice(-MAX_MOBILE_SNAPSHOT_MESSAGES);
243
+ const firstUserMessage = messages.find((message) => message.role === "user");
244
+ const title = firstUserMessage?.content ? firstUserMessage.content.replace(/\s+/g, " ").slice(0, 80) : `Continue ${session.metadata.projectName}`;
245
+ return {
246
+ title,
247
+ summary: session.metadata.summary,
248
+ messageCount: session.metadata.messageCount,
249
+ lastActivity: session.metadata.lastActiveAt,
250
+ messages: recentMessages
251
+ };
252
+ }
253
+ function parseMode(args, canSteer) {
254
+ if (args.includes("--queue")) return "queue";
255
+ if (args.includes("--steer")) return "steer";
256
+ return canSteer ? "steer" : "queue";
257
+ }
258
+ async function go(ctx, args = []) {
259
+ const mode = parseMode(args, Boolean(ctx.enqueueInstruction));
260
+ if (mode === "steer" && !ctx.enqueueInstruction) {
261
+ return [
262
+ chalk.yellow("Steer mode requires an interactive CLI session."),
263
+ chalk.gray("Run /go --queue to create a durable queue-only handoff from this mode.")
264
+ ].join("\n");
265
+ }
266
+ const token = ctx.config?.auth?.token;
267
+ if (!token) {
268
+ return [
269
+ chalk.yellow("Sign in first with /login."),
270
+ chalk.gray("Then run /go again to pair this laptop session with your phone.")
271
+ ].join("\n");
272
+ }
273
+ const session = ctx.currentSession ?? ctx.sessionManager.getCurrentSession();
274
+ if (!session) {
275
+ return [
276
+ chalk.yellow("No active session to pair."),
277
+ chalk.gray("Start a conversation, then run /go from the project you want to control remotely.")
278
+ ].join("\n");
279
+ }
280
+ const client = ctx.client ?? new MobileHandoffClient({
281
+ baseUrl: getMobileApiBaseUrl(ctx.config)
282
+ });
283
+ try {
284
+ const deviceId = await client.getDeviceId();
285
+ await client.registerDevice(token, {
286
+ deviceId,
287
+ clientType: "cli",
288
+ agentName: `${os.hostname()} Autohand Code`,
289
+ metadata: {
290
+ workspacePath: ctx.workspaceRoot,
291
+ projectName: session.metadata.projectName,
292
+ sessionId: session.metadata.sessionId,
293
+ model: ctx.model,
294
+ provider: ctx.provider,
295
+ platform: process.platform,
296
+ hostname: os.hostname(),
297
+ client: session.metadata.client,
298
+ clientVersion: session.metadata.clientVersion
299
+ }
300
+ });
301
+ const pairing = await client.createPairing(token, {
302
+ deviceId,
303
+ sessionId: session.metadata.sessionId,
304
+ workspacePath: ctx.workspaceRoot,
305
+ projectName: session.metadata.projectName,
306
+ model: ctx.model,
307
+ provider: ctx.provider,
308
+ capabilities: ["prompt", "approval", "notifications"],
309
+ metadata: {
310
+ platform: process.platform,
311
+ hostname: os.hostname(),
312
+ client: session.metadata.client,
313
+ clientVersion: session.metadata.clientVersion,
314
+ sessionSnapshot: JSON.stringify(buildMobileSessionSnapshot(session))
315
+ }
316
+ });
317
+ if (mode === "steer" && ctx.enqueueInstruction) {
318
+ startMobileRelay({
319
+ client,
320
+ token,
321
+ deviceId,
322
+ sessionId: session.metadata.sessionId,
323
+ pairingId: pairing.id,
324
+ mode,
325
+ pollIntervalMs: pairing.pollIntervalMs,
326
+ enqueueInstruction: ctx.enqueueInstruction
327
+ });
328
+ }
329
+ const appUrl = nativeAppUrl(pairing.pairingUrl);
330
+ const qr = await QRCode.toString(pairing.pairingUrl, {
331
+ type: "utf8",
332
+ errorCorrectionLevel: "M"
333
+ });
334
+ return [
335
+ "",
336
+ chalk.bold("Autohand Code mobile handoff"),
337
+ chalk.gray("Scan this with the iOS app to continue this session from your phone."),
338
+ "",
339
+ qr,
340
+ "",
341
+ `${chalk.gray("Scan or open:")} ${formatUrl(pairing.pairingUrl)}`,
342
+ `${chalk.gray("Simulator fallback:")} ${formatUrl(appUrl)}`,
343
+ `${chalk.gray("Project:")} ${chalk.cyan(session.metadata.projectName)}`,
344
+ `${chalk.gray("Session:")} ${chalk.cyan(session.metadata.sessionId)}`,
345
+ `${chalk.gray("Mode:")} ${mode === "steer" ? chalk.green("steer live") : chalk.yellow("queue")}`,
346
+ `${chalk.gray("Relay:")} ${mode === "steer" ? chalk.green("listening for mobile prompts") : chalk.yellow("prompts will wait in the queue")}`,
347
+ `${chalk.gray("Expires:")} ${chalk.cyan(formatExpiry(pairing.expiresAt))}`,
348
+ ""
349
+ ].join("\n");
350
+ } catch (error) {
351
+ return [
352
+ chalk.red("Could not create mobile handoff."),
353
+ chalk.gray(error.message)
354
+ ].join("\n");
355
+ }
356
+ }
357
+ async function handoffSession(ctx, args = []) {
358
+ const localDefault = ctx.config?.features?.experimentalHandoff === true;
359
+ const enabled = ctx.isFeatureEnabled?.(HANDOFF_FLAG, localDefault) ?? localDefault;
360
+ if (!enabled) {
361
+ return `The /handoff session command is behind ${HANDOFF_FLAG}. Run /features enable ${HANDOFF_FLAG}, then /handoff session again. No restart required.`;
362
+ }
363
+ await ctx.trackFeatureActivation?.(HANDOFF_FLAG, { surface: "slash_command" });
364
+ return go(ctx, args);
365
+ }
366
+
367
+ export {
368
+ metadata,
369
+ handoffSessionMetadata,
370
+ go,
371
+ handoffSession
372
+ };
373
+ /**
374
+ * @license
375
+ * Copyright 2026 Autohand AI LLC
376
+ * SPDX-License-Identifier: Apache-2.0
377
+ */
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
- var _chunk7LWQCE4Ycjs = require('./chunk-7LWQCE4Y.cjs');
3
+ var _chunkEFXFURDYcjs = require('./chunk-EFXFURDY.cjs');
4
4
 
5
5
 
6
- var _chunkREMGR23Vcjs = require('./chunk-REMGR23V.cjs');
6
+ var _chunkCSUGNNJYcjs = require('./chunk-CSUGNNJY.cjs');
7
7
 
8
8
 
9
- var _chunk46C73ZKKcjs = require('./chunk-46C73ZKK.cjs');
9
+ var _chunkCNQKIWIScjs = require('./chunk-CNQKIWIS.cjs');
10
10
 
11
11
  // src/reporting/processErrorReporting.ts
12
12
  var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
@@ -45,6 +45,9 @@ function detectClientName(processRef) {
45
45
  function getLogPrefix(processRef) {
46
46
  return detectClientName(processRef) === "acp" ? "[ACP]" : "[DEBUG]";
47
47
  }
48
+ function isProcessAutoReportDisabled(processRef) {
49
+ return processRef.env.AUTOHAND_DISABLE_AUTO_REPORT === "1" || processRef.env.AUTOHAND_AUTO_REPORT === "0";
50
+ }
48
51
  function captureLastError(reason) {
49
52
  globalThis.__autohandLastError = reason;
50
53
  }
@@ -78,11 +81,11 @@ async function getAutoReportManager(processRef, explicitConfigPath) {
78
81
  const managerPromise = (async () => {
79
82
  let config;
80
83
  try {
81
- config = await _chunk46C73ZKKcjs.loadConfig.call(void 0, configPath);
84
+ config = await _chunkCNQKIWIScjs.loadConfig.call(void 0, configPath);
82
85
  } catch (e) {
83
86
  config = buildFallbackConfig(configPath, processRef);
84
87
  }
85
- return new (0, _chunk7LWQCE4Ycjs.AutoReportManager)(config, _chunkREMGR23Vcjs.package_default.version);
88
+ return new (0, _chunkEFXFURDYcjs.AutoReportManager)(config, _chunkCSUGNNJYcjs.package_default.version);
86
89
  })();
87
90
  managerCache.set(cacheKey, managerPromise);
88
91
  return managerPromise;
@@ -94,6 +97,19 @@ function isIgnorableStdinReadError(err, _processRef) {
94
97
  const maybeError = err;
95
98
  return maybeError.code === "EIO" && maybeError.syscall === "read";
96
99
  }
100
+ function isIgnorableTerminalPipeError(err) {
101
+ if (!err || typeof err !== "object") {
102
+ return false;
103
+ }
104
+ const maybeError = err;
105
+ if (maybeError.code === "UV_EPIPE" && maybeError.syscall === "recv") {
106
+ return true;
107
+ }
108
+ if (maybeError.code !== "EPIPE") {
109
+ return false;
110
+ }
111
+ return maybeError.syscall === "read" || maybeError.syscall === "write" || /\b(read|write) EPIPE\b/i.test(_nullishCoalesce(maybeError.message, () => ( "")));
112
+ }
97
113
  function isIgnorableFilesystemError(err) {
98
114
  if (!err || typeof err !== "object") return false;
99
115
  const maybeError = err;
@@ -113,6 +129,7 @@ function isIgnorableUnhandledRejection(reason, processRef) {
113
129
  return true;
114
130
  }
115
131
  if (isIgnorableStdinReadError(reason, processRef)) return true;
132
+ if (isIgnorableTerminalPipeError(reason)) return true;
116
133
  if (isIgnorableFilesystemError(reason)) return true;
117
134
  if (isIgnorableTerminalOrRuntimeError(reason)) return true;
118
135
  return false;
@@ -151,10 +168,13 @@ function describeReasonType(reason) {
151
168
  }
152
169
  async function reportProcessError(reason, options) {
153
170
  const processRef = _nullishCoalesce(options.processRef, () => ( process));
171
+ if (isProcessAutoReportDisabled(processRef)) {
172
+ return;
173
+ }
154
174
  if (options.handler === "unhandledRejection" && isIgnorableUnhandledRejection(reason, processRef)) {
155
175
  return;
156
176
  }
157
- if (options.handler === "uncaughtException" && (isIgnorableStdinReadError(reason, processRef) || isIgnorableTerminalOrRuntimeError(reason))) {
177
+ if (options.handler === "uncaughtException" && (isIgnorableStdinReadError(reason, processRef) || isIgnorableTerminalPipeError(reason) || isIgnorableTerminalOrRuntimeError(reason))) {
158
178
  return;
159
179
  }
160
180
  captureLastError(reason);
@@ -186,9 +206,15 @@ function installProcessErrorHandlers(options = {}) {
186
206
  processRef.exit(code);
187
207
  })));
188
208
  processRef.on("uncaughtException", (error) => {
209
+ if (isProcessAutoReportDisabled(processRef)) {
210
+ return;
211
+ }
189
212
  if (isIgnorableStdinReadError(error, processRef)) {
190
213
  return;
191
214
  }
215
+ if (isIgnorableTerminalPipeError(error)) {
216
+ return;
217
+ }
192
218
  if (isIgnorableTerminalOrRuntimeError(error)) {
193
219
  return;
194
220
  }
@@ -205,6 +231,9 @@ function installProcessErrorHandlers(options = {}) {
205
231
  })();
206
232
  });
207
233
  processRef.on("unhandledRejection", (reason, promise) => {
234
+ if (isProcessAutoReportDisabled(processRef)) {
235
+ return;
236
+ }
208
237
  if (isIgnorableUnhandledRejection(reason, processRef)) {
209
238
  return;
210
239
  }