autohand-cli 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/README.md +103 -79
  2. package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
  3. package/dist/AgentRegistry-JBXZUPML.js +18 -0
  4. package/dist/{CommunitySkillsCache-ZACDPD4J.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
  5. package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
  6. package/dist/{HookManager-2S6AHOC3.js → HookManager-BELBPQQI.js} +1 -1
  7. package/dist/{HookManager-TVEQI5ZU.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
  8. package/dist/{ImportWizard-AF2XL6DS.cjs → ImportWizard-U6CIJREW.cjs} +12 -12
  9. package/dist/{ImportWizard-AEBMAKXE.js → ImportWizard-VJFSWSUQ.js} +3 -3
  10. package/dist/LearnAdvisor-LAURA3IB.cjs +9 -0
  11. package/dist/LearnAdvisor-RFOBXFG7.js +9 -0
  12. package/dist/MemoryManager-3A2VRPF2.js +9 -0
  13. package/dist/MemoryManager-UOEQZIDC.cjs +9 -0
  14. package/dist/{NVIDIAProvider-SJPY3ONR.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
  15. package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
  16. package/dist/{PermissionManager-MT7KBNNR.js → PermissionManager-N2LDSOYF.js} +3 -3
  17. package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
  18. package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
  19. package/dist/{ProviderFactory-RB4RVAF6.js → ProviderFactory-XUT6BSGB.js} +4 -3
  20. package/dist/SessionManager-LGPQIA57.cjs +10 -0
  21. package/dist/{SessionManager-554PHVPC.js → SessionManager-OR4KDDDS.js} +2 -2
  22. package/dist/{SkillsRegistry-NHHMIUYJ.js → SkillsRegistry-IL3GWROU.js} +2 -2
  23. package/dist/SkillsRegistry-PM34DQNA.cjs +9 -0
  24. package/dist/SubAgent-2WG4QQB5.cjs +13 -0
  25. package/dist/SubAgent-ICGN23TQ.js +13 -0
  26. package/dist/{about-3USFSGOH.js → about-OYVGQMJJ.js} +3 -3
  27. package/dist/{about-QR52U5DD.cjs → about-U2BH7HDR.cjs} +4 -4
  28. package/dist/{acp-5Y2W6OZP.js → acp-JWHGXZL5.js} +169 -103
  29. package/dist/{acp-GSYE75OB.cjs → acp-S37JOBCS.cjs} +184 -118
  30. package/dist/{actionExecutor-KHUU3Z3Q.cjs → actionExecutor-2QEPMELQ.cjs} +13 -13
  31. package/dist/{actionExecutor-PLQJZLZV.js → actionExecutor-6NCCORRB.js} +12 -12
  32. package/dist/add-dir-KFUHSIR2.cjs +11 -0
  33. package/dist/{add-dir-HCERJDBR.js → add-dir-MM2BM2Z2.js} +2 -2
  34. package/dist/agent-DUIYLIVN.js +132 -0
  35. package/dist/agent-YYEHGDAK.cjs +132 -0
  36. package/dist/agents-GBGG4CW7.cjs +19 -0
  37. package/dist/agents-ZH34C72F.js +19 -0
  38. package/dist/agents-new-ERXLS7SB.cjs +17 -0
  39. package/dist/{agents-new-7GAQ25EK.js → agents-new-EVTGPTA4.js} +6 -6
  40. package/dist/{autoSkill-66PKCYTW.js → autoSkill-HEWKJ5JV.js} +2 -2
  41. package/dist/autoSkill-YL6PN6AV.cjs +20 -0
  42. package/dist/automode-4BJ7FNPL.cjs +10 -0
  43. package/dist/{automode-BUF3VGXU.js → automode-S4U7A7Q2.js} +2 -2
  44. package/dist/chrome-45ZXHL5N.cjs +22 -0
  45. package/dist/{chrome-Y3T7EIHG.js → chrome-BBSRVG6S.js} +2 -2
  46. package/dist/chrome-IFVZRHAT.cjs +50 -0
  47. package/dist/chrome-MYE6DNA2.js +22 -0
  48. package/dist/{chunk-45CHNQM6.cjs → chunk-24CEJYEG.cjs} +93 -31
  49. package/dist/{chunk-6JWCGQJU.cjs → chunk-255GIVM2.cjs} +6 -6
  50. package/dist/{chunk-D546G7DA.cjs → chunk-2BDSR2OW.cjs} +98 -75
  51. package/dist/{chunk-PGFLPURU.js → chunk-2BPIR7LA.js} +121 -4
  52. package/dist/{chunk-AOKXYGBQ.cjs → chunk-2NY7OHBF.cjs} +41 -26
  53. package/dist/chunk-2WUNHTXL.js +303 -0
  54. package/dist/{chunk-PQBYFEBL.cjs → chunk-34B6ZO6W.cjs} +124 -7
  55. package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
  56. package/dist/{chunk-3UC6DMFI.cjs → chunk-3CAXECWJ.cjs} +15 -15
  57. package/dist/{chunk-YWH55BWK.cjs → chunk-3CBYUBZC.cjs} +6 -9
  58. package/dist/chunk-3DF3GZQ7.js +277 -0
  59. package/dist/{chunk-KASXKDF2.cjs → chunk-3JURXAL6.cjs} +58 -7
  60. package/dist/{chunk-JV5HVCHU.cjs → chunk-3KWAP2Y3.cjs} +88 -9
  61. package/dist/{chunk-WPE2XHVX.js → chunk-3MCK6UBL.js} +1 -1
  62. package/dist/{chunk-U2QUMKCB.js → chunk-3TH7IK4M.js} +62 -9
  63. package/dist/{chunk-YXM6SA7P.js → chunk-3V77OB3W.js} +3 -3
  64. package/dist/{chunk-MZN6JBRZ.cjs → chunk-3Y5UEK7K.cjs} +4 -4
  65. package/dist/{chunk-BP37FVBM.js → chunk-4GPPSBEZ.js} +3 -3
  66. package/dist/{chunk-4XVLNOFA.js → chunk-5CMBAJ6K.js} +20 -3
  67. package/dist/{chunk-PNIAIOMZ.cjs → chunk-5YRXFBYZ.cjs} +35 -6
  68. package/dist/chunk-6AC2TT26.js +156 -0
  69. package/dist/{chunk-PSAH4ZQB.cjs → chunk-6EIQ6A6U.cjs} +2 -2
  70. package/dist/{chunk-YQDI753V.js → chunk-6HSEDXVF.js} +4 -4
  71. package/dist/{chunk-O5GI6SR3.js → chunk-6NUXK62F.js} +1 -1
  72. package/dist/{chunk-HVCIB4SW.cjs → chunk-6TGCAPYH.cjs} +62 -9
  73. package/dist/{chunk-HZWU6IO3.js → chunk-6W3SZCSP.js} +2 -5
  74. package/dist/{chunk-Q3BS6FPM.js → chunk-73LV3DDZ.js} +4 -4
  75. package/dist/{chunk-ZNGRLCFQ.js → chunk-7BGGLIQF.js} +83 -1
  76. package/dist/{chunk-ZNYZB7XY.cjs → chunk-7EEK7CRR.cjs} +83 -1
  77. package/dist/{chunk-HK5A54AV.cjs → chunk-7TO3PDMV.cjs} +48 -4
  78. package/dist/chunk-7UU22RSH.cjs +277 -0
  79. package/dist/{chunk-XNIMSVS6.cjs → chunk-A3GAM6FM.cjs} +11 -11
  80. package/dist/{chunk-W5QLA6WP.cjs → chunk-A7DJU75T.cjs} +8 -8
  81. package/dist/{chunk-7XTUL7ZD.cjs → chunk-AAAO4ERQ.cjs} +9 -9
  82. package/dist/{chunk-M5DK524Z.js → chunk-AAJLMP57.js} +2 -2
  83. package/dist/chunk-ABR756QN.js +529 -0
  84. package/dist/{chunk-OIGYWOL6.js → chunk-APFGDIPD.js} +3 -1
  85. package/dist/{chunk-PTTZI4QZ.js → chunk-APQYRMYL.js} +4 -4
  86. package/dist/{chunk-CO2AADYU.cjs → chunk-AZKOIF2G.cjs} +55 -17
  87. package/dist/{chunk-P6SLT2F4.cjs → chunk-AZLHUPNC.cjs} +2 -2
  88. package/dist/chunk-B55VCYSQ.cjs +30 -0
  89. package/dist/{chunk-JMJRFSNJ.js → chunk-BLQUMSM3.js} +1 -1
  90. package/dist/{chunk-MGNXABSU.cjs → chunk-BXKPX6K4.cjs} +9 -9
  91. package/dist/{chunk-MQQH4XQH.cjs → chunk-C66FN2LP.cjs} +4 -4
  92. package/dist/{chunk-CECH6QQP.js → chunk-CH7KUFAS.js} +10 -10
  93. package/dist/{chunk-PIXQ2AVM.cjs → chunk-CILSXOPI.cjs} +17 -17
  94. package/dist/{chunk-IEPLQ47J.js → chunk-CM24K6ZT.js} +89 -12
  95. package/dist/chunk-CMEZ42F2.cjs +303 -0
  96. package/dist/{chunk-X5P6QQOB.cjs → chunk-CNQKIWIS.cjs} +100 -23
  97. package/dist/{chunk-AQ5PVHOC.cjs → chunk-CSUGNNJY.cjs} +4 -3
  98. package/dist/{chunk-QRQF3556.js → chunk-D6HB3H3L.js} +25 -10
  99. package/dist/{chunk-XZVDYC5U.js → chunk-D7AYKVKW.js} +2 -2
  100. package/dist/{chunk-3UHRCHKB.cjs → chunk-DLCXWOWT.cjs} +23 -23
  101. package/dist/{chunk-CK4HAHVY.cjs → chunk-DMM2BKSV.cjs} +118 -25
  102. package/dist/{chunk-SPQ7QIQ6.js → chunk-DW3DPV77.js} +1 -1
  103. package/dist/chunk-ECQD2QC3.cjs +33 -0
  104. package/dist/{chunk-SNDDZG5H.js → chunk-EEYOS3UC.js} +90 -70
  105. package/dist/{chunk-DGBPWODD.js → chunk-EF2EN5CR.js} +2 -2
  106. package/dist/{chunk-M7B7RRBK.cjs → chunk-EFXFURDY.cjs} +138 -51
  107. package/dist/chunk-EK34UZPB.cjs +40 -0
  108. package/dist/{chunk-CRTCZ4WL.cjs → chunk-FJR6EZLO.cjs} +3834 -2337
  109. package/dist/{chunk-TYBPTKFT.js → chunk-FPO7YNPQ.js} +1 -1
  110. package/dist/{chunk-X3TI5TJJ.js → chunk-FS4I6BNR.js} +1 -1
  111. package/dist/{chunk-WNJXIACY.js → chunk-FSJ2MNOC.js} +3 -3
  112. package/dist/{chunk-44ZWOBTI.js → chunk-GEHZMC4G.js} +12 -9
  113. package/dist/{chunk-Y5BDE24P.cjs → chunk-GO6C2RAR.cjs} +3 -0
  114. package/dist/{chunk-XW3XCK4E.cjs → chunk-GSMR6V36.cjs} +4 -4
  115. package/dist/{chunk-H426KOGY.js → chunk-GSZWATME.js} +1 -1
  116. package/dist/{chunk-S5JNQIGL.cjs → chunk-GYLGCR6F.cjs} +5 -5
  117. package/dist/{chunk-ONVYXTUT.cjs → chunk-H3OOWNYQ.cjs} +3 -3
  118. package/dist/{chunk-V5ELP2XE.js → chunk-H65446XW.js} +110 -15
  119. package/dist/{chunk-LANGD5CO.js → chunk-H7HXRRHK.js} +45 -1
  120. package/dist/{chunk-RBXBH6EB.cjs → chunk-HN2JTDN5.cjs} +17 -17
  121. package/dist/{chunk-SOVR7S3T.cjs → chunk-HNXUZ5OY.cjs} +2 -2
  122. package/dist/{chunk-AZ47LKD5.cjs → chunk-HOYT3E65.cjs} +3 -3
  123. package/dist/{chunk-P4FUTSVK.js → chunk-HTPY5ESD.js} +3 -3
  124. package/dist/{chunk-5SFV2NCY.cjs → chunk-HVLWH2AF.cjs} +10 -10
  125. package/dist/{chunk-VQHSYAPZ.cjs → chunk-HZTEU4W5.cjs} +62 -93
  126. package/dist/{chunk-4XFHP2SN.cjs → chunk-I5T7LPFP.cjs} +7 -7
  127. package/dist/{chunk-ZPLCAXJW.js → chunk-IB5CJXE7.js} +7 -7
  128. package/dist/{chunk-KM7R5YPS.cjs → chunk-INNXFLDR.cjs} +9 -6
  129. package/dist/{chunk-2ESQR35E.cjs → chunk-JFLEP3T7.cjs} +10 -10
  130. package/dist/chunk-JJGDOBFL.js +40 -0
  131. package/dist/{chunk-5A7ZL64N.js → chunk-JSU46T6K.js} +1 -1
  132. package/dist/{chunk-NB6M6ESM.js → chunk-K6WN6BT4.js} +1 -1
  133. package/dist/{chunk-QQ64HEHP.cjs → chunk-KIQH3SMT.cjs} +34 -31
  134. package/dist/{chunk-MANJ67D3.js → chunk-KPRXHIE2.js} +52 -83
  135. package/dist/{chunk-6HF6XSCC.js → chunk-LIO3RX2Z.js} +2 -2
  136. package/dist/{chunk-NZ3ZWLUW.js → chunk-LOSXLH7P.js} +109 -16
  137. package/dist/{chunk-NZ7GCK7Y.cjs → chunk-LSOR72PB.cjs} +23 -23
  138. package/dist/{chunk-6AYJCDTA.js → chunk-MA3AVDCC.js} +47 -9
  139. package/dist/{chunk-PZZMIYII.js → chunk-ME3S2WIR.js} +3 -3
  140. package/dist/{chunk-2IW5YFJ4.js → chunk-NC2I2M4P.js} +4 -4
  141. package/dist/{chunk-AE2ILW25.cjs → chunk-NC4A4LVC.cjs} +13 -13
  142. package/dist/{chunk-EEHWALXA.js → chunk-NGEK5FCJ.js} +85 -3
  143. package/dist/{chunk-MMKZSJUN.js → chunk-NKW6CHXQ.js} +1 -1
  144. package/dist/{chunk-JB3JCYBJ.js → chunk-NOWCRKP2.js} +4 -3
  145. package/dist/{chunk-3ZOOH44N.js → chunk-NUB2LMB6.js} +2 -2
  146. package/dist/chunk-O246MKIW.cjs +267 -0
  147. package/dist/{chunk-SRMGWMQO.js → chunk-OGFWL2PS.js} +1 -1
  148. package/dist/{chunk-YISPVAXO.cjs → chunk-ONNGAR6W.cjs} +340 -597
  149. package/dist/{chunk-7WAUCLLQ.js → chunk-OOFR6A62.js} +33 -4
  150. package/dist/{chunk-4E7SHPNQ.js → chunk-OZ7FHO7J.js} +2 -2
  151. package/dist/{chunk-NV6LCD2I.cjs → chunk-P5EWGUI2.cjs} +109 -27
  152. package/dist/{chunk-YC5OBZQU.js → chunk-P6BQJPAI.js} +41 -18
  153. package/dist/{chunk-SHRLFX6F.js → chunk-PG2JIU5M.js} +57 -6
  154. package/dist/{chunk-6OECOAK5.cjs → chunk-PI27G2ED.cjs} +25 -8
  155. package/dist/{chunk-TR6NECEZ.js → chunk-PI7LRPL6.js} +1 -1
  156. package/dist/{chunk-GAOPJ5S3.cjs → chunk-PMPEC5HN.cjs} +18 -15
  157. package/dist/{chunk-5GCQ5UMV.cjs → chunk-PYUP7AKY.cjs} +14 -14
  158. package/dist/{chunk-S5QKRA2V.js → chunk-QC5Z3ZT5.js} +2 -2
  159. package/dist/chunk-QDO4L2A7.cjs +156 -0
  160. package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
  161. package/dist/{chunk-26G7YGOW.js → chunk-QVXMSQOG.js} +84 -21
  162. package/dist/{chunk-SVVP4UUZ.cjs → chunk-R4UKBKDY.cjs} +11 -11
  163. package/dist/{chunk-HG3ZASBH.cjs → chunk-R75AWII3.cjs} +112 -17
  164. package/dist/{chunk-TE4SYTWR.cjs → chunk-RD5PLUIX.cjs} +8 -8
  165. package/dist/{chunk-FFHSCM5M.js → chunk-RGB34CV5.js} +3 -3
  166. package/dist/{chunk-SY2P3Z5W.cjs → chunk-RJCZLFHE.cjs} +96 -32
  167. package/dist/{chunk-22SCR3EV.cjs → chunk-RKWNM2BJ.cjs} +2 -2
  168. package/dist/{chunk-FBQJZKFX.js → chunk-RMVONICR.js} +3 -3
  169. package/dist/{chunk-PY73W5MQ.cjs → chunk-RPSYRJL7.cjs} +10 -4
  170. package/dist/{chunk-HXHE2KAO.js → chunk-RWKU2X7O.js} +7 -4
  171. package/dist/{chunk-NQZH5CR2.cjs → chunk-RZLEGVMH.cjs} +102 -5
  172. package/dist/{chunk-KMP6Y3LJ.js → chunk-S2L3Y677.js} +1 -1
  173. package/dist/{chunk-GSDV75A5.js → chunk-S7KVUIOS.js} +1 -1
  174. package/dist/{chunk-7PT646AL.cjs → chunk-SACJJ6NO.cjs} +5 -3
  175. package/dist/{chunk-LEZEWKPA.js → chunk-SJQU2ZFR.js} +96 -32
  176. package/dist/{chunk-65LRPW5W.js → chunk-SKAQKQFF.js} +12 -2
  177. package/dist/chunk-T4DXP5OP.js +30 -0
  178. package/dist/{chunk-EYHKL4QC.js → chunk-T6FTB6K2.js} +1 -1
  179. package/dist/{chunk-DNSD7DVJ.js → chunk-T6N6GRFT.js} +13 -10
  180. package/dist/{chunk-575PXZX7.js → chunk-TJFKA6A7.js} +82 -3
  181. package/dist/{chunk-HSWWM6AM.js → chunk-TJZUPS4Z.js} +34 -291
  182. package/dist/{chunk-DHUQZ53B.cjs → chunk-TLKHZ425.cjs} +2 -2
  183. package/dist/{chunk-VLGGMQUN.cjs → chunk-TQ24NLXO.cjs} +6 -6
  184. package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
  185. package/dist/{chunk-EA2MS25U.cjs → chunk-TZB5XADL.cjs} +4 -4
  186. package/dist/{chunk-U6PLSPMD.cjs → chunk-UAYXZXWU.cjs} +4 -4
  187. package/dist/{chunk-OV3T5MUH.cjs → chunk-UKBFNBDO.cjs} +11 -11
  188. package/dist/{chunk-SZD45IDG.js → chunk-UMJYX5KD.js} +101 -4
  189. package/dist/{chunk-B76FJKEJ.cjs → chunk-USKYTHDL.cjs} +69 -18
  190. package/dist/{chunk-NZQFKXM3.cjs → chunk-VAJUSZMC.cjs} +15 -15
  191. package/dist/{chunk-SDLY4X3G.js → chunk-VGQG4NBJ.js} +2 -2
  192. package/dist/{chunk-KWXGDSYT.js → chunk-VLUIVJ3J.js} +58 -7
  193. package/dist/{chunk-KJ26T7GM.cjs → chunk-VOBINVMV.cjs} +105 -42
  194. package/dist/{chunk-C5QIQQ37.js → chunk-VSHKKCSH.js} +16 -5
  195. package/dist/{chunk-L46OUKW5.cjs → chunk-VSZU3MGA.cjs} +28 -17
  196. package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
  197. package/dist/{chunk-UWZ4G3SQ.js → chunk-VXGYFX45.js} +4 -4
  198. package/dist/{chunk-C46B72VK.js → chunk-WH6YUQDB.js} +141 -54
  199. package/dist/{chunk-SFFEKZGC.js → chunk-WQ6TD55V.js} +2 -2
  200. package/dist/{chunk-7PJKTSRN.js → chunk-WQWECXTY.js} +3 -3
  201. package/dist/{chunk-DSSCERHI.cjs → chunk-WVDJUJH6.cjs} +2 -2
  202. package/dist/{chunk-JPFRI4L4.js → chunk-X24VIVDZ.js} +210 -26
  203. package/dist/{chunk-7IRQ7JEH.js → chunk-X4NRTLXD.js} +7 -1
  204. package/dist/{chunk-7MY4JHER.js → chunk-X53SHYCG.js} +2 -2
  205. package/dist/{chunk-RFUKZIJF.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
  206. package/dist/{chunk-WJYFLQ7G.cjs → chunk-Y47OJGLB.cjs} +3 -3
  207. package/dist/{chunk-HC2Q6A3E.cjs → chunk-Y4MN27V3.cjs} +361 -177
  208. package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
  209. package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
  210. package/dist/{chunk-63ANVAOJ.cjs → chunk-YMXYC777.cjs} +3 -3
  211. package/dist/{chunk-X7XMITIL.cjs → chunk-Z3GRWK6O.cjs} +8 -8
  212. package/dist/{chunk-3ICORF7M.cjs → chunk-Z5GG2KSL.cjs} +4 -4
  213. package/dist/{chunk-I2ZK3AOD.js → chunk-ZER7DYQK.js} +2 -2
  214. package/dist/{chunk-V3SZLWEQ.cjs → chunk-ZFDXZEZJ.cjs} +11 -11
  215. package/dist/{chunk-QBYGMMDD.js → chunk-ZFV4HJA6.js} +66 -4
  216. package/dist/chunk-ZHMYTI5D.cjs +529 -0
  217. package/dist/{chunk-4567QNRB.js → chunk-ZLR2TFBC.js} +3 -0
  218. package/dist/{chunk-OCATAKXV.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
  219. package/dist/{chunk-CCIDL4SA.js → chunk-ZVLVLDYN.js} +2915 -1418
  220. package/dist/clear-AJGXD2BB.cjs +12 -0
  221. package/dist/{clear-Y5TO3RZA.js → clear-HAHDSWKW.js} +3 -3
  222. package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
  223. package/dist/{communityInstaller-RVL4STPS.js → communityInstaller-OLKEUGMX.js} +5 -5
  224. package/dist/completion-G7Z436TF.cjs +17 -0
  225. package/dist/{completion-SE3XYG74.js → completion-ZS3AXJ6A.js} +4 -4
  226. package/dist/{config-7KPHKFTP.js → config-OWYAQPCX.js} +5 -4
  227. package/dist/config-W2BHT2QE.cjs +22 -0
  228. package/dist/{constants-EJFAWJQI.js → constants-AS6K67AA.js} +5 -3
  229. package/dist/constants-B4W5BT7F.cjs +23 -0
  230. package/dist/{export-BJVIDZC4.js → export-5HIU3KMD.js} +4 -4
  231. package/dist/export-GFD32UY2.cjs +15 -0
  232. package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
  233. package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
  234. package/dist/feature-KP74CZ3F.cjs +14 -0
  235. package/dist/{feature-V4JF5TNJ.js → feature-OPNVMB2E.js} +2 -2
  236. package/dist/features-LT55MURX.cjs +24 -0
  237. package/dist/features-ZDIU26WX.js +24 -0
  238. package/dist/feedback-7WTJFQ6S.js +18 -0
  239. package/dist/feedback-CEOJ3453.cjs +18 -0
  240. package/dist/go-2CY5SZNR.js +16 -0
  241. package/dist/go-O2CSQON4.cjs +16 -0
  242. package/dist/goal-DL2N2AWT.cjs +16 -0
  243. package/dist/goal-IJS7VZSG.js +16 -0
  244. package/dist/help-RNOGDEBA.cjs +12 -0
  245. package/dist/{help-MLIROWKM.js → help-TCWD2IRH.js} +2 -2
  246. package/dist/{history-GQJ6RZD6.js → history-ATOR5OQV.js} +2 -2
  247. package/dist/history-UUSGX2AL.cjs +14 -0
  248. package/dist/{hooks-PPFHCF7T.js → hooks-R3Z5QKUP.js} +5 -5
  249. package/dist/hooks-RWM5UY67.cjs +18 -0
  250. package/dist/{i18n-Q7UZJRPL.js → i18n-4QI4TD4I.js} +1 -1
  251. package/dist/i18n-MFAEU5RV.cjs +33 -0
  252. package/dist/{ide-BUSVE54P.js → ide-6PBTCCUQ.js} +4 -4
  253. package/dist/ide-UE3G7NMQ.cjs +15 -0
  254. package/dist/{import-C7S6UJMW.cjs → import-2IG76KAN.cjs} +6 -4
  255. package/dist/{import-U47DXCA7.js → import-E47QL4DW.js} +2 -2
  256. package/dist/import-NQDNBFUL.cjs +10 -0
  257. package/dist/{import-3VBKI6BN.js → import-VQIHGJWS.js} +6 -4
  258. package/dist/index.cjs +444 -334
  259. package/dist/index.d.cts +38 -0
  260. package/dist/index.d.ts +38 -0
  261. package/dist/index.js +324 -214
  262. package/dist/init-DX3RDGDT.cjs +10 -0
  263. package/dist/{init-Q2O4R42R.js → init-Q54OAAFZ.js} +2 -2
  264. package/dist/{inputPrompt-3CFZDUBH.js → inputPrompt-V2VBDRM7.js} +2 -2
  265. package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
  266. package/dist/language-I6KXAOXD.js +23 -0
  267. package/dist/language-XMIVOH5E.cjs +23 -0
  268. package/dist/learn-JPVVGTKU.js +23 -0
  269. package/dist/learn-NLSHI2MZ.cjs +23 -0
  270. package/dist/login-NABQYLYC.cjs +28 -0
  271. package/dist/login-XPOVFSWN.js +28 -0
  272. package/dist/logout-HNHCGB4Q.js +25 -0
  273. package/dist/logout-SKGDXJSW.cjs +25 -0
  274. package/dist/{mcp-AH3MMUBU.js → mcp-EN73YFGZ.js} +8 -7
  275. package/dist/mcp-TADZCPJQ.cjs +22 -0
  276. package/dist/{mcp-install-IA4ZS2SV.cjs → mcp-install-2GKWWBAS.cjs} +14 -13
  277. package/dist/{mcp-install-222PCKSW.js → mcp-install-3TBTVSHW.js} +9 -8
  278. package/dist/memory-GRXFTDIN.cjs +10 -0
  279. package/dist/{memory-VB46T5H3.js → memory-K2P3CDCH.js} +2 -2
  280. package/dist/{model-SJJG64AM.js → model-DEG22OWA.js} +2 -2
  281. package/dist/model-OSD74T7Z.cjs +10 -0
  282. package/dist/new-4NWBOATU.cjs +12 -0
  283. package/dist/{new-ERZ5C6CN.js → new-KJAP2MB6.js} +3 -3
  284. package/dist/{onboarding-ZQXMPSMJ.js → onboarding-2U5WE2OA.js} +17 -14
  285. package/dist/onboarding-5DZFCO5Q.cjs +39 -0
  286. package/dist/permissions-KY5I6YQ3.cjs +10 -0
  287. package/dist/{permissions-7ACNFK7A.js → permissions-TKYON7PP.js} +2 -2
  288. package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
  289. package/dist/plan-PYKP652W.cjs +13 -0
  290. package/dist/quit-GSKJL42O.js +14 -0
  291. package/dist/quit-TQSRTBUT.cjs +14 -0
  292. package/dist/{registry-4DXUDKJN.js → registry-EZ4V4TUQ.js} +1339 -1
  293. package/dist/{registry-UEO3ETZ7.cjs → registry-LCWYI4IB.cjs} +1378 -40
  294. package/dist/resume-4VWJXARX.cjs +17 -0
  295. package/dist/{resume-XSXZMDMD.js → resume-TLHWWWFN.js} +5 -5
  296. package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
  297. package/dist/review-XLJEUH5K.cjs +9 -0
  298. package/dist/{rpc-XH7QLN4H.js → rpc-3DLQBDWU.js} +151 -124
  299. package/dist/{rpc-YF54T7JU.cjs → rpc-O36WUU3L.cjs} +169 -142
  300. package/dist/search-DSX2CY4A.cjs +22 -0
  301. package/dist/search-I3QUDUQL.js +22 -0
  302. package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
  303. package/dist/sessionBranching-FKV4CR36.js +19 -0
  304. package/dist/sessions-3JUOT3ED.cjs +10 -0
  305. package/dist/{sessions-NJYHJOEL.js → sessions-VWMDIPOS.js} +2 -2
  306. package/dist/{settings-ZXUQH3DO.js → settings-FT2LZZUV.js} +11 -8
  307. package/dist/settings-RL4KNWHB.cjs +45 -0
  308. package/dist/setup-HQEJVOYT.js +32 -0
  309. package/dist/setup-MN54LKOL.cjs +32 -0
  310. package/dist/share-BUAFZNBX.cjs +17 -0
  311. package/dist/{share-WFAGZ5PY.js → share-CGB6MAVJ.js} +6 -6
  312. package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
  313. package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
  314. package/dist/{skills-NBTNDVAY.js → skills-7DKR3HRZ.js} +7 -7
  315. package/dist/{skills-OB6RDW7D.js → skills-BBBENOEY.js} +9 -9
  316. package/dist/skills-OQM7IHAF.cjs +29 -0
  317. package/dist/{skills-ZROBG3RZ.cjs → skills-RA2PKL63.cjs} +9 -9
  318. package/dist/{skills-install-ILX6QVEF.cjs → skills-install-D7K476SL.cjs} +15 -15
  319. package/dist/{skills-install-BHTIEMKH.js → skills-install-T4SOKJSL.js} +8 -8
  320. package/dist/{skills-new-YMRP2HNO.js → skills-new-S33NGEU3.js} +6 -6
  321. package/dist/skills-new-UVYH53MD.cjs +18 -0
  322. package/dist/slashCommands-MWOUDSQP.js +111 -0
  323. package/dist/slashCommands-XASURUTV.cjs +111 -0
  324. package/dist/squad-PIIYDFVH.cjs +15 -0
  325. package/dist/squad-VHYOVEJP.js +15 -0
  326. package/dist/status-GHFTXQBL.js +25 -0
  327. package/dist/status-WXMIJIU3.cjs +25 -0
  328. package/dist/statusline-2K7AC6ZQ.js +21 -0
  329. package/dist/statusline-GROI4HOC.cjs +21 -0
  330. package/dist/sync-254WF6JI.cjs +42 -0
  331. package/dist/sync-2DIZN4EH.cjs +24 -0
  332. package/dist/{sync-OCJN4ZSO.js → sync-J6I2ZUKQ.js} +5 -3
  333. package/dist/{sync-7C25MOT2.js → sync-Z3LVSEEV.js} +8 -6
  334. package/dist/{teammate-D77B6QRT.cjs → teammate-EXR76PEQ.cjs} +5 -5
  335. package/dist/{teammate-EZCMHOIL.js → teammate-K4DAOFEQ.js} +5 -5
  336. package/dist/theme-MVQDSU47.js +23 -0
  337. package/dist/theme-QAKEYWJG.cjs +23 -0
  338. package/dist/ui/questionModal.cjs +5 -5
  339. package/dist/ui/questionModal.js +4 -4
  340. package/dist/{undo-GNUTFXCW.js → undo-5AU47JHF.js} +2 -2
  341. package/dist/undo-ME6WKUXZ.cjs +10 -0
  342. package/dist/{usage-QSTNSDAO.js → usage-QTKO2YMD.js} +6 -5
  343. package/dist/usage-TYNJKVER.cjs +25 -0
  344. package/package.json +4 -3
  345. package/dist/AgentRegistry-GOV7FN2O.js +0 -10
  346. package/dist/AgentRegistry-J2C6JBZ3.cjs +0 -10
  347. package/dist/CommunitySkillsCache-22BB3J6H.cjs +0 -8
  348. package/dist/LearnAdvisor-KKEQ5QCV.js +0 -9
  349. package/dist/LearnAdvisor-Q7RAYLPF.cjs +0 -9
  350. package/dist/MemoryManager-PMNAEZMB.cjs +0 -8
  351. package/dist/MemoryManager-QZRLTUB5.js +0 -8
  352. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +0 -14
  353. package/dist/PermissionManager-URCNP5EC.cjs +0 -11
  354. package/dist/ProviderFactory-56N3ECE4.cjs +0 -12
  355. package/dist/SessionManager-2IZGWASQ.cjs +0 -10
  356. package/dist/SkillsRegistry-GMRVONOQ.cjs +0 -9
  357. package/dist/SubAgent-4GOR2FIJ.js +0 -13
  358. package/dist/SubAgent-ZJMDH4FI.cjs +0 -13
  359. package/dist/add-dir-BTAD5OZS.cjs +0 -11
  360. package/dist/agent-B3EVT7NN.cjs +0 -126
  361. package/dist/agent-SATQ3WZ3.js +0 -126
  362. package/dist/agents-44CRJGM7.cjs +0 -18
  363. package/dist/agents-NN4ZAJ7R.js +0 -18
  364. package/dist/agents-new-6D6G4QS6.cjs +0 -17
  365. package/dist/autoSkill-VQLGBELN.cjs +0 -20
  366. package/dist/automode-45DWV4TN.cjs +0 -10
  367. package/dist/chrome-Q2U73HZB.cjs +0 -50
  368. package/dist/chrome-Q54OALOK.cjs +0 -21
  369. package/dist/chrome-ZNJ46OYW.js +0 -21
  370. package/dist/chunk-JCUHCH37.cjs +0 -247
  371. package/dist/chunk-VKOXFT4L.cjs +0 -23
  372. package/dist/clear-QJXU25IF.cjs +0 -12
  373. package/dist/communityInstaller-LXMVKVAV.cjs +0 -22
  374. package/dist/completion-JX4T2ONW.cjs +0 -17
  375. package/dist/config-3224PRW4.cjs +0 -21
  376. package/dist/constants-MCCGUU5F.cjs +0 -21
  377. package/dist/export-KU4557HK.cjs +0 -15
  378. package/dist/feature-K3LG5IJP.cjs +0 -14
  379. package/dist/features-5OJTLKS7.js +0 -23
  380. package/dist/features-VCBJQXCX.cjs +0 -23
  381. package/dist/feedback-D4437VE4.js +0 -18
  382. package/dist/feedback-VZPEHGFY.cjs +0 -18
  383. package/dist/go-X4E6BCD6.js +0 -12
  384. package/dist/go-XREVFS5I.cjs +0 -12
  385. package/dist/goal-4M3J6JS2.cjs +0 -16
  386. package/dist/goal-EI66BV7W.js +0 -16
  387. package/dist/help-GGFS7WHY.cjs +0 -12
  388. package/dist/history-J4LUIOSI.cjs +0 -14
  389. package/dist/hooks-FSRIUS6A.cjs +0 -18
  390. package/dist/i18n-CI6VFXL5.cjs +0 -33
  391. package/dist/ide-YR27BPGM.cjs +0 -15
  392. package/dist/import-DBK4OCDF.cjs +0 -10
  393. package/dist/init-OXTYS72D.cjs +0 -10
  394. package/dist/inputPrompt-JMACL4EB.cjs +0 -90
  395. package/dist/language-EK3M6UBV.cjs +0 -22
  396. package/dist/language-Q3RUGGOW.js +0 -22
  397. package/dist/learn-3DSX7DYG.cjs +0 -23
  398. package/dist/learn-OPOH5L43.js +0 -23
  399. package/dist/login-GST7MWXJ.cjs +0 -27
  400. package/dist/login-Q7DZKAX4.js +0 -27
  401. package/dist/logout-2G7OUK7I.cjs +0 -24
  402. package/dist/logout-FNBBL2UI.js +0 -24
  403. package/dist/mcp-DW7R63IB.cjs +0 -21
  404. package/dist/memory-6NX3DAIY.cjs +0 -10
  405. package/dist/model-64NAELFS.cjs +0 -10
  406. package/dist/new-DU5SOOOY.cjs +0 -12
  407. package/dist/onboarding-2U2BV2KE.cjs +0 -36
  408. package/dist/permissions-GSNNV7RJ.cjs +0 -10
  409. package/dist/plan-XEJMOT55.cjs +0 -13
  410. package/dist/quit-WY6T267G.js +0 -10
  411. package/dist/quit-XIRE2KRE.cjs +0 -10
  412. package/dist/resume-RQZ3WXBP.cjs +0 -17
  413. package/dist/review-UWHWQHCB.cjs +0 -9
  414. package/dist/search-VXXFGZWU.cjs +0 -21
  415. package/dist/search-YAWGX7P7.js +0 -21
  416. package/dist/sessions-OSG3UJEZ.cjs +0 -10
  417. package/dist/settings-SO2UIGWV.cjs +0 -42
  418. package/dist/setup-KG7EGKF5.js +0 -30
  419. package/dist/setup-RSOPCQ57.cjs +0 -30
  420. package/dist/share-ZU3SGACF.cjs +0 -17
  421. package/dist/skills-KBVAQAD2.cjs +0 -29
  422. package/dist/skills-new-B45VQ2PP.cjs +0 -18
  423. package/dist/slashCommands-53VYIBJU.js +0 -105
  424. package/dist/slashCommands-BG2RGGZ6.cjs +0 -105
  425. package/dist/status-CQ2IUOVK.cjs +0 -24
  426. package/dist/status-E7IGNVPC.js +0 -24
  427. package/dist/sync-XRP46IVG.cjs +0 -40
  428. package/dist/sync-ZMFVE7T4.cjs +0 -22
  429. package/dist/theme-KKRDE6P7.cjs +0 -22
  430. package/dist/theme-XF7XIWBQ.js +0 -22
  431. package/dist/undo-U4KN7QQM.cjs +0 -10
  432. package/dist/usage-YDEMQBNQ.cjs +0 -24
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  AutoReportManager
3
- } from "./chunk-C46B72VK.js";
3
+ } from "./chunk-WH6YUQDB.js";
4
4
  import {
5
5
  package_default
6
- } from "./chunk-JB3JCYBJ.js";
6
+ } from "./chunk-NOWCRKP2.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-IEPLQ47J.js";
9
+ } from "./chunk-CM24K6ZT.js";
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
  }
@@ -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(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 = 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
  }
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-QHPFA6OE.js";
4
4
  import {
5
5
  safePrompt
6
- } from "./chunk-MMKZSJUN.js";
6
+ } from "./chunk-NKW6CHXQ.js";
7
7
  import {
8
8
  AUTOHAND_PATHS
9
- } from "./chunk-SHRLFX6F.js";
9
+ } from "./chunk-PG2JIU5M.js";
10
10
 
11
11
  // src/commands/skills-new.ts
12
12
  import path from "path";
@@ -3,13 +3,13 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
6
+ var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
7
7
 
8
8
 
9
- var _chunkX5P6QQOBcjs = require('./chunk-X5P6QQOB.cjs');
9
+ var _chunkCNQKIWIScjs = require('./chunk-CNQKIWIS.cjs');
10
10
 
11
11
 
12
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
12
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
13
13
 
14
14
  // src/commands/settings.ts
15
15
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -33,6 +33,30 @@ var SETTING_KEY_ALIASES = {
33
33
  ui_activity_verbs: "ui.activityVerbsEnabled",
34
34
  ui_verbs_activity: "ui.activityVerbsEnabled"
35
35
  };
36
+ var CONFIG_PROVIDER_NAMES = [
37
+ "openrouter",
38
+ "ollama",
39
+ "llamacpp",
40
+ "openai",
41
+ "mlx",
42
+ "llmgateway",
43
+ "azure",
44
+ "zai",
45
+ "vertexai",
46
+ "xai",
47
+ "cerebras",
48
+ "nvidia",
49
+ "deepseek",
50
+ "bedrock"
51
+ ];
52
+ var PROVIDER_CONFIG_FIELD_ALIASES = {
53
+ apiKey: "apiKey",
54
+ api_key: "apiKey",
55
+ apikey: "apiKey",
56
+ baseUrl: "baseUrl",
57
+ base_url: "baseUrl",
58
+ model: "model"
59
+ };
36
60
  var SETTING_CATEGORIES = [
37
61
  { id: "ui", labelKey: "commands.settings.categories.ui" },
38
62
  { id: "agent", labelKey: "commands.settings.categories.agent" },
@@ -57,10 +81,12 @@ var SETTINGS_REGISTRY = [
57
81
  { key: "ui.promptSuggestions", labelKey: "commands.settings.ui.promptSuggestions", descriptionKey: "commands.settings.ui.promptSuggestionsDesc", category: "ui", type: "boolean", defaultValue: true },
58
82
  { key: "ui.activityVerbsEnabled", labelKey: "commands.settings.ui.activityVerbsEnabled", descriptionKey: "commands.settings.ui.activityVerbsEnabledDesc", category: "ui", type: "boolean", defaultValue: true },
59
83
  { key: "ui.activitySymbol", labelKey: "commands.settings.ui.activitySymbol", descriptionKey: "commands.settings.ui.activitySymbolDesc", category: "ui", type: "string", defaultValue: "\u2733" },
84
+ { key: "ui.statusLine", labelKey: "commands.settings.ui.statusLine", descriptionKey: "commands.settings.ui.statusLineDesc", category: "ui", type: "string", redirect: "/statusline" },
60
85
  { key: "ui.updateCheckInterval", labelKey: "commands.settings.ui.updateCheckInterval", descriptionKey: "commands.settings.ui.updateCheckIntervalDesc", category: "ui", type: "number", defaultValue: 24 },
61
86
  // Agent Behavior
62
87
  { key: "agent.maxIterations", labelKey: "commands.settings.agent.maxIterations", descriptionKey: "commands.settings.agent.maxIterationsDesc", category: "agent", type: "number", defaultValue: 100 },
63
88
  { key: "agent.enableRequestQueue", labelKey: "commands.settings.agent.enableRequestQueue", descriptionKey: "commands.settings.agent.enableRequestQueueDesc", category: "agent", type: "boolean", defaultValue: true },
89
+ { key: "agent.idleLogoutEnabled", labelKey: "commands.settings.agent.idleLogoutEnabled", descriptionKey: "commands.settings.agent.idleLogoutEnabledDesc", category: "agent", type: "boolean", defaultValue: true },
64
90
  { key: "agent.sessionRetryLimit", labelKey: "commands.settings.agent.sessionRetryLimit", descriptionKey: "commands.settings.agent.sessionRetryLimitDesc", category: "agent", type: "number", defaultValue: 3 },
65
91
  { key: "agent.sessionRetryDelay", labelKey: "commands.settings.agent.sessionRetryDelay", descriptionKey: "commands.settings.agent.sessionRetryDelayDesc", category: "agent", type: "number", defaultValue: 1e3 },
66
92
  { key: "agent.debug", labelKey: "commands.settings.agent.debug", descriptionKey: "commands.settings.agent.debugDesc", category: "agent", type: "boolean", defaultValue: false },
@@ -119,6 +145,38 @@ function normalizeSettingKey(input) {
119
145
  }
120
146
  return trimmed;
121
147
  }
148
+ function normalizeProviderName(input) {
149
+ const normalized = input.trim().toLowerCase();
150
+ if (normalized === "vertex") {
151
+ return "vertexai";
152
+ }
153
+ if (CONFIG_PROVIDER_NAMES.includes(normalized)) {
154
+ return normalized;
155
+ }
156
+ return null;
157
+ }
158
+ function normalizeProviderConfigKey(input) {
159
+ const [providerInput, fieldInput, ...extra] = input.trim().replace(/\s+/g, ".").split(".");
160
+ if (providerInput && fieldInput && extra.length === 0) {
161
+ const provider = normalizeProviderName(providerInput);
162
+ const field = PROVIDER_CONFIG_FIELD_ALIASES[fieldInput];
163
+ if (provider && field) {
164
+ return { provider, field };
165
+ }
166
+ }
167
+ const underscoreInput = input.trim();
168
+ for (const providerName of CONFIG_PROVIDER_NAMES) {
169
+ const prefix = `${providerName}_`;
170
+ if (!underscoreInput.startsWith(prefix)) {
171
+ continue;
172
+ }
173
+ const field = PROVIDER_CONFIG_FIELD_ALIASES[underscoreInput.slice(prefix.length)];
174
+ if (field) {
175
+ return { provider: providerName, field };
176
+ }
177
+ }
178
+ return null;
179
+ }
122
180
  function parseBooleanSetting(value) {
123
181
  const normalized = value.trim().toLowerCase();
124
182
  if (["true", "1", "yes", "y", "on"].includes(normalized)) {
@@ -154,6 +212,25 @@ function parseSettingValue(setting, rawValue) {
154
212
  }
155
213
  function setConfigSetting(config, keyInput, rawValue) {
156
214
  const key = normalizeSettingKey(keyInput);
215
+ if (key === "provider") {
216
+ const provider = normalizeProviderName(rawValue);
217
+ if (!provider) {
218
+ throw new Error(`Unknown provider "${rawValue}". Use /settings to browse provider setup.`);
219
+ }
220
+ config.provider = provider;
221
+ return { key: "provider", value: provider };
222
+ }
223
+ const providerConfigKey = normalizeProviderConfigKey(key);
224
+ if (providerConfigKey) {
225
+ const current = config[providerConfigKey.provider];
226
+ const providerConfig = current && typeof current === "object" ? current : {};
227
+ setNestedValue(providerConfig, providerConfigKey.field, rawValue);
228
+ setNestedValue(config, providerConfigKey.provider, providerConfig);
229
+ return {
230
+ key: `${providerConfigKey.provider}.${providerConfigKey.field}`,
231
+ value: rawValue
232
+ };
233
+ }
157
234
  const setting = SETTINGS_REGISTRY.find((s) => s.key === key);
158
235
  if (!setting) {
159
236
  throw new Error(`Unknown setting "${keyInput}". Use /settings to browse configurable settings.`);
@@ -173,6 +250,10 @@ function parseConfigSetArgs(parts) {
173
250
  const key = parts.slice(0, -1).join(" ");
174
251
  return { key, value };
175
252
  }
253
+ function formatConfigSetResult(result) {
254
+ const displayValue = result.key.toLowerCase().endsWith("apikey") ? "****" : String(result.value);
255
+ return `Set ${result.key} = ${displayValue}`;
256
+ }
176
257
  function getSettingsForCategory(category) {
177
258
  return SETTINGS_REGISTRY.filter((s) => s.category === category);
178
259
  }
@@ -183,7 +264,7 @@ function formatSettingValue(value, type) {
183
264
  }
184
265
  switch (type) {
185
266
  case "boolean":
186
- return value ? _chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.on")) : _chalk2.default.red(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.off"));
267
+ return value ? _chalk2.default.green(_chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.on")) : _chalk2.default.red(_chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.off"));
187
268
  case "password":
188
269
  return typeof value === "string" && value.length > 0 ? _chalk2.default.gray("****") : _chalk2.default.gray("(not set)");
189
270
  case "number":
@@ -200,8 +281,8 @@ async function editSetting(setting, config) {
200
281
  switch (setting.type) {
201
282
  case "boolean": {
202
283
  const current = _nullishCoalesce(_nullishCoalesce(currentValue, () => ( setting.defaultValue)), () => ( false));
203
- const newValue = await _chunkCK4HAHVYcjs.showConfirm.call(void 0, {
204
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, setting.labelKey),
284
+ const newValue = await _chunkDMM2BKSVcjs.showConfirm.call(void 0, {
285
+ title: _chunkRJCZLFHEcjs.t.call(void 0, setting.labelKey),
205
286
  defaultValue: current
206
287
  });
207
288
  if (newValue !== current) {
@@ -215,8 +296,8 @@ async function editSetting(setting, config) {
215
296
  label: v === String(currentValue) ? `${v} (current)` : v,
216
297
  value: v
217
298
  }));
218
- const result = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
219
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, setting.labelKey),
299
+ const result = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
300
+ title: _chunkRJCZLFHEcjs.t.call(void 0, setting.labelKey),
220
301
  options,
221
302
  initialIndex: _nullishCoalesce(_optionalChain([setting, 'access', _7 => _7.enumValues, 'optionalAccess', _8 => _8.indexOf, 'call', _9 => _9(String(_nullishCoalesce(currentValue, () => ( setting.defaultValue))))]), () => ( 0))
222
303
  });
@@ -227,8 +308,8 @@ async function editSetting(setting, config) {
227
308
  return false;
228
309
  }
229
310
  case "string": {
230
- const result = await _chunkCK4HAHVYcjs.showInput.call(void 0, {
231
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, setting.labelKey),
311
+ const result = await _chunkDMM2BKSVcjs.showInput.call(void 0, {
312
+ title: _chunkRJCZLFHEcjs.t.call(void 0, setting.labelKey),
232
313
  defaultValue: String(_nullishCoalesce(_nullishCoalesce(currentValue, () => ( setting.defaultValue)), () => ( "")))
233
314
  });
234
315
  if (result !== null && result !== String(currentValue)) {
@@ -238,8 +319,8 @@ async function editSetting(setting, config) {
238
319
  return false;
239
320
  }
240
321
  case "number": {
241
- const result = await _chunkCK4HAHVYcjs.showInput.call(void 0, {
242
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, setting.labelKey),
322
+ const result = await _chunkDMM2BKSVcjs.showInput.call(void 0, {
323
+ title: _chunkRJCZLFHEcjs.t.call(void 0, setting.labelKey),
243
324
  defaultValue: String(_nullishCoalesce(_nullishCoalesce(currentValue, () => ( setting.defaultValue)), () => ( ""))),
244
325
  validate: (v) => {
245
326
  const n = Number(v);
@@ -257,8 +338,8 @@ async function editSetting(setting, config) {
257
338
  return false;
258
339
  }
259
340
  case "password": {
260
- const result = await _chunkCK4HAHVYcjs.showPassword.call(void 0, {
261
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, setting.labelKey)
341
+ const result = await _chunkDMM2BKSVcjs.showPassword.call(void 0, {
342
+ title: _chunkRJCZLFHEcjs.t.call(void 0, setting.labelKey)
262
343
  });
263
344
  if (result !== null && result !== String(_nullishCoalesce(currentValue, () => ( "")))) {
264
345
  setNestedValue(config, setting.key, result);
@@ -276,16 +357,16 @@ async function showCategorySettings(category, config) {
276
357
  const options = settings2.map((s) => {
277
358
  const value = getNestedValue(config, s.key);
278
359
  const display = formatSettingValue(value, s.type);
279
- const label = s.redirect ? `${_chunkSY2P3Z5Wcjs.t.call(void 0, s.labelKey)}: ${display} (${s.redirect})` : `${_chunkSY2P3Z5Wcjs.t.call(void 0, s.labelKey)}: ${display}`;
360
+ const label = s.redirect ? `${_chunkRJCZLFHEcjs.t.call(void 0, s.labelKey)}: ${display} (${s.redirect})` : `${_chunkRJCZLFHEcjs.t.call(void 0, s.labelKey)}: ${display}`;
280
361
  return {
281
362
  label,
282
363
  value: s.key,
283
- description: s.descriptionKey ? _chunkSY2P3Z5Wcjs.t.call(void 0, s.descriptionKey) : void 0
364
+ description: s.descriptionKey ? _chunkRJCZLFHEcjs.t.call(void 0, s.descriptionKey) : void 0
284
365
  };
285
366
  });
286
- options.push({ label: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.back"), value: "__back__" });
287
- const result = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
288
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.selectSetting"),
367
+ options.push({ label: _chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.back"), value: "__back__" });
368
+ const result = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
369
+ title: _chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.selectSetting"),
289
370
  options
290
371
  });
291
372
  if (!result || result.value === "__back__") return;
@@ -293,30 +374,30 @@ async function showCategorySettings(category, config) {
293
374
  if (!setting) return;
294
375
  if (setting.redirect) {
295
376
  console.log(_chalk2.default.gray(`
296
- ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.redirect", { command: _chalk2.default.cyan(setting.redirect) })}
377
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.redirect", { command: _chalk2.default.cyan(setting.redirect) })}
297
378
  `));
298
379
  continue;
299
380
  }
300
381
  const changed = await editSetting(setting, config);
301
382
  if (changed) {
302
- await _chunkX5P6QQOBcjs.saveConfig.call(void 0, config);
383
+ await _chunkCNQKIWIScjs.saveConfig.call(void 0, config);
303
384
  console.log(_chalk2.default.green(`
304
- ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.saved")}
385
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.saved")}
305
386
  `));
306
387
  }
307
388
  }
308
389
  }
309
390
  async function settings(ctx) {
310
391
  console.log(_chalk2.default.cyan(`
311
- ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.title")}
392
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.title")}
312
393
  `));
313
394
  while (true) {
314
395
  const options = SETTING_CATEGORIES.map((cat) => ({
315
- label: _chunkSY2P3Z5Wcjs.t.call(void 0, cat.labelKey),
396
+ label: _chunkRJCZLFHEcjs.t.call(void 0, cat.labelKey),
316
397
  value: cat.id
317
398
  }));
318
- const result = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
319
- title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.settings.selectCategory"),
399
+ const result = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
400
+ title: _chunkRJCZLFHEcjs.t.call(void 0, "commands.settings.selectCategory"),
320
401
  options
321
402
  });
322
403
  if (!result) return null;
@@ -343,7 +424,8 @@ var metadata = {
343
424
 
344
425
 
345
426
 
346
- exports.SETTING_CATEGORIES = SETTING_CATEGORIES; exports.SETTINGS_REGISTRY = SETTINGS_REGISTRY; exports.getNestedValue = getNestedValue; exports.setNestedValue = setNestedValue; exports.normalizeSettingKey = normalizeSettingKey; exports.parseSettingValue = parseSettingValue; exports.setConfigSetting = setConfigSetting; exports.parseConfigSetArgs = parseConfigSetArgs; exports.getSettingsForCategory = getSettingsForCategory; exports.formatSettingValue = formatSettingValue; exports.editSetting = editSetting; exports.settings = settings; exports.metadata = metadata;
427
+
428
+ exports.SETTING_CATEGORIES = SETTING_CATEGORIES; exports.SETTINGS_REGISTRY = SETTINGS_REGISTRY; exports.getNestedValue = getNestedValue; exports.setNestedValue = setNestedValue; exports.normalizeSettingKey = normalizeSettingKey; exports.parseSettingValue = parseSettingValue; exports.setConfigSetting = setConfigSetting; exports.parseConfigSetArgs = parseConfigSetArgs; exports.formatConfigSetResult = formatConfigSetResult; exports.getSettingsForCategory = getSettingsForCategory; exports.formatSettingValue = formatSettingValue; exports.editSetting = editSetting; exports.settings = settings; exports.metadata = metadata;
347
429
  /**
348
430
  * @license
349
431
  * Copyright 2025 Autohand AI LLC
@@ -3,13 +3,20 @@ import {
3
3
  } from "./chunk-H4D2Q2AL.js";
4
4
  import {
5
5
  GoalManager
6
- } from "./chunk-SZD45IDG.js";
6
+ } from "./chunk-UMJYX5KD.js";
7
7
  import {
8
8
  applyFormatter
9
9
  } from "./chunk-W3X6PAC7.js";
10
+ import {
11
+ fetchUrl,
12
+ formatPackageInfo,
13
+ formatSearchResults,
14
+ getPackageInfo,
15
+ webSearch
16
+ } from "./chunk-FP46B4X3.js";
10
17
  import {
11
18
  PermissionManager
12
- } from "./chunk-I2ZK3AOD.js";
19
+ } from "./chunk-ZER7DYQK.js";
13
20
  import {
14
21
  isToolAllowedByYolo,
15
22
  normalizeYoloInput,
@@ -23,22 +30,15 @@ import {
23
30
  } from "./chunk-VUGOOGHB.js";
24
31
  import {
25
32
  getPlanModeManager
26
- } from "./chunk-LUMV3DB2.js";
33
+ } from "./chunk-TWBAU46X.js";
27
34
  import {
28
35
  GOAL_FEATURE_DISABLED_MESSAGE,
29
36
  isGoalFeatureEnabled
30
- } from "./chunk-7MY4JHER.js";
31
- import {
32
- fetchUrl,
33
- formatPackageInfo,
34
- formatSearchResults,
35
- getPackageInfo,
36
- webSearch
37
- } from "./chunk-FP46B4X3.js";
37
+ } from "./chunk-X53SHYCG.js";
38
38
  import {
39
39
  showInput,
40
40
  showModal
41
- } from "./chunk-NZ3ZWLUW.js";
41
+ } from "./chunk-LOSXLH7P.js";
42
42
  import {
43
43
  getTheme,
44
44
  hexToRgb,
@@ -47,7 +47,7 @@ import {
47
47
  import {
48
48
  AUTOHAND_PATHS,
49
49
  PROJECT_DIR_NAME
50
- } from "./chunk-SHRLFX6F.js";
50
+ } from "./chunk-PG2JIU5M.js";
51
51
 
52
52
  // src/core/actionExecutor.ts
53
53
  import chalk2 from "chalk";
@@ -3347,6 +3347,7 @@ var ActionExecutor = class _ActionExecutor {
3347
3347
  this.onPlanCreated = deps.onPlanCreated;
3348
3348
  this.onPermissionRequest = deps.onPermissionRequest;
3349
3349
  this.onReviewHook = deps.onReviewHook;
3350
+ this.onGoalWrittenCompleted = deps.onGoalWrittenCompleted;
3350
3351
  this.onModalPause = deps.onModalPause;
3351
3352
  this.onRequestDirectoryAccess = deps.onRequestDirectoryAccess;
3352
3353
  this.onLiveCommandStart = deps.onLiveCommandStart;
@@ -3374,6 +3375,7 @@ var ActionExecutor = class _ActionExecutor {
3374
3375
  onPlanCreated;
3375
3376
  onPermissionRequest;
3376
3377
  onReviewHook;
3378
+ onGoalWrittenCompleted;
3377
3379
  onModalPause;
3378
3380
  onRequestDirectoryAccess;
3379
3381
  onLiveCommandStart;
@@ -3770,13 +3772,17 @@ ${steps.map((s) => `${s.number}. ${s.description}`).join("\n")}`;
3770
3772
  }
3771
3773
  case "create_goal": {
3772
3774
  const manager = new GoalManager(this.runtime.workspaceRoot);
3773
- const created = await manager.createGoal({
3775
+ const created = await manager.createOrQueueGoal({
3774
3776
  objective: action.objective,
3777
+ source: "tool",
3775
3778
  tokenBudget: action.token_budget,
3776
3779
  timeBudgetSeconds: action.time_budget_seconds,
3777
3780
  minTokensBeforeWrapUp: action.min_tokens_before_wrap_up,
3778
3781
  minTimeSecondsBeforeWrapUp: action.min_time_seconds_before_wrap_up
3779
3782
  });
3783
+ if (!created.queued?.length) {
3784
+ await this.emitGoalWrittenCompleted(created, "tool");
3785
+ }
3780
3786
  return formatGoalToolResult(created);
3781
3787
  }
3782
3788
  case "create_goal_from_template": {
@@ -3790,13 +3796,17 @@ ${steps.map((s) => `${s.number}. ${s.description}`).join("\n")}`;
3790
3796
  if (!resolution.ok) {
3791
3797
  return `Error: ${"notTemplate" in resolution ? `Unknown goal template '${action.template}'.` : resolution.error}`;
3792
3798
  }
3793
- const created = await manager.createGoal({
3799
+ const created = await manager.createOrQueueGoal({
3794
3800
  objective: resolution.template.objective,
3801
+ source: "tool",
3795
3802
  tokenBudget: action.token_budget,
3796
3803
  timeBudgetSeconds: action.time_budget_seconds,
3797
3804
  minTokensBeforeWrapUp: action.min_tokens_before_wrap_up,
3798
3805
  minTimeSecondsBeforeWrapUp: action.min_time_seconds_before_wrap_up
3799
- }, { replace: true });
3806
+ });
3807
+ if (!created.queued?.length) {
3808
+ await this.emitGoalWrittenCompleted(created, "tool-template");
3809
+ }
3800
3810
  return formatGoalToolResult(created);
3801
3811
  }
3802
3812
  case "update_goal": {
@@ -3829,7 +3839,7 @@ ${steps.map((s) => `${s.number}. ${s.description}`).join("\n")}`;
3829
3839
  case "list_goal_queue": {
3830
3840
  const manager = new GoalManager(this.runtime.workspaceRoot);
3831
3841
  const snapshot = await manager.getSnapshot();
3832
- return JSON.stringify({ goal: snapshot.goal, queue: snapshot.queue }, null, 2);
3842
+ return JSON.stringify({ goal: snapshot.goal, queue: snapshot.queue, completed: snapshot.completed }, null, 2);
3833
3843
  }
3834
3844
  case "start_queued_goal": {
3835
3845
  const manager = new GoalManager(this.runtime.workspaceRoot);
@@ -4852,7 +4862,7 @@ ${result.removed.map((p) => ` - ${p}`).join("\n")}`;
4852
4862
  const query = action.query ?? "";
4853
4863
  console.log(chalk2.cyan(`
4854
4864
  Searching skills: "${query}"${action.category ? ` [${action.category}]` : ""}...`));
4855
- const { searchCommunitySkills } = await import("./skills-OB6RDW7D.js");
4865
+ const { searchCommunitySkills } = await import("./skills-BBBENOEY.js");
4856
4866
  const result = await searchCommunitySkills(query, {
4857
4867
  category: action.category,
4858
4868
  limit: action.limit
@@ -5744,6 +5754,17 @@ ${limited.join("\n")}`;
5744
5754
  }
5745
5755
  return outputLines.join("\n");
5746
5756
  }
5757
+ async emitGoalWrittenCompleted(result, source) {
5758
+ const objective = result.goal?.objective;
5759
+ if (!result.ok || !objective) {
5760
+ return;
5761
+ }
5762
+ await this.onGoalWrittenCompleted?.({
5763
+ goalId: result.goal?.goalId,
5764
+ goalObjective: objective,
5765
+ goalSource: source
5766
+ });
5767
+ }
5747
5768
  };
5748
5769
  function parseGoalStatus(value) {
5749
5770
  if (!value) return void 0;
@@ -5760,6 +5781,8 @@ function formatGoalToolResult(result) {
5760
5781
  queue: result.queue,
5761
5782
  queued: result.queued,
5762
5783
  started: result.started,
5784
+ completed: result.completed,
5785
+ completedRun: result.completedRun,
5763
5786
  dequeued: result.dequeued,
5764
5787
  removed: result.removed,
5765
5788
  telemetry: result.telemetry
@@ -78,16 +78,66 @@ var SYNC_CONFIG = {
78
78
  /** Request timeout in ms */
79
79
  timeout: 3e4
80
80
  };
81
- var SKILL_LOCATIONS = [
82
- { basePath: path.join(os.homedir(), ".codex", "skills"), source: "codex-user", recursive: true },
83
- { basePath: path.join(os.homedir(), ".claude", "skills"), source: "claude-user", recursive: false },
84
- // Project-level Claude skills are resolved at runtime with workspaceRoot
85
- { basePath: AUTOHAND_PATHS.skills, source: "autohand-user", recursive: true }
86
- // Project-level Autohand skills are resolved at runtime with workspaceRoot
81
+ var THIRD_PARTY_PROJECT_SKILL_DIRS = [
82
+ ".aider-desk/skills",
83
+ ".augment/skills",
84
+ ".bob/skills",
85
+ ".codeartsdoer/skills",
86
+ ".codebuddy/skills",
87
+ ".codemaker/skills",
88
+ ".codestudio/skills",
89
+ ".commandcode/skills",
90
+ ".continue/skills",
91
+ ".cortex/skills",
92
+ ".crush/skills",
93
+ ".devin/skills",
94
+ ".factory/skills",
95
+ ".forge/skills",
96
+ ".goose/skills",
97
+ ".hermes/skills",
98
+ ".junie/skills",
99
+ ".iflow/skills",
100
+ ".kilocode/skills",
101
+ ".kiro/skills",
102
+ ".kode/skills",
103
+ ".mcpjam/skills",
104
+ ".vibe/skills",
105
+ ".mux/skills",
106
+ ".openhands/skills",
107
+ ".pi/skills",
108
+ ".qoder/skills",
109
+ ".qwen/skills",
110
+ ".rovodev/skills",
111
+ ".roo/skills",
112
+ ".tabnine/agent/skills",
113
+ ".trae/skills",
114
+ ".windsurf/skills",
115
+ ".zencoder/skills",
116
+ ".neovate/skills",
117
+ ".pochi/skills",
118
+ ".adal/skills",
119
+ ".agent/skills",
120
+ ".agents/skills",
121
+ "skills"
87
122
  ];
123
+ function getUserSkillLocations(homeDir = os.homedir(), autohandSkillsDir = AUTOHAND_PATHS.skills) {
124
+ return [
125
+ { basePath: path.join(homeDir, ".codex", "skills"), source: "codex-user", recursive: true },
126
+ { basePath: path.join(homeDir, ".claude", "skills"), source: "claude-user", recursive: false },
127
+ { basePath: path.join(homeDir, ".agent", "skills"), source: "agent-user", recursive: true },
128
+ { basePath: path.join(homeDir, ".agents", "skills"), source: "agent-user", recursive: true },
129
+ { basePath: autohandSkillsDir, source: "autohand-user", recursive: true }
130
+ ];
131
+ }
132
+ var SKILL_LOCATIONS = getUserSkillLocations();
88
133
  function getProjectSkillLocations(workspaceRoot) {
89
134
  return [
90
135
  { basePath: path.join(workspaceRoot, ".claude", "skills"), source: "claude-project", recursive: false },
136
+ ...THIRD_PARTY_PROJECT_SKILL_DIRS.map((relativePath) => ({
137
+ basePath: path.join(workspaceRoot, relativePath),
138
+ source: "agent-project",
139
+ recursive: true
140
+ })),
91
141
  { basePath: path.join(workspaceRoot, PROJECT_DIR_NAME, "skills"), source: "autohand-project", recursive: true }
92
142
  ];
93
143
  }
@@ -99,6 +149,7 @@ export {
99
149
  PROJECT_DIR_NAME,
100
150
  AUTH_CONFIG,
101
151
  SYNC_CONFIG,
152
+ getUserSkillLocations,
102
153
  SKILL_LOCATIONS,
103
154
  getProjectSkillLocations
104
155
  };