autohand-cli 0.8.2 → 0.9.0

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 (551) hide show
  1. package/README.md +173 -74
  2. package/dist/AgentRegistry-EGBDIUAK.cjs +10 -0
  3. package/dist/{AgentRegistry-7LDL5HJH.js → AgentRegistry-XPWSVO3Q.js} +3 -3
  4. package/dist/{AutomodeManager-MWLKGPZK.js → AutomodeManager-APLLPEYJ.js} +32 -18
  5. package/dist/{AutomodeManager-NYIZNODK.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-2OIUV227.cjs +8 -0
  7. package/dist/CommunitySkillsCache-ZEQWP6YM.js +8 -0
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-6JQ5JEDZ.js → GitHubRegistryFetcher-J2BWPXJF.js} +2 -2
  10. package/dist/HookManager-CWLTFKWO.js +7 -0
  11. package/dist/HookManager-TMAJQU4S.cjs +7 -0
  12. package/dist/{ImportWizard-35YBJ4AM.cjs → ImportWizard-MQXEED2U.cjs} +41 -17
  13. package/dist/{ImportWizard-XH7CINCH.js → ImportWizard-QBKQEXDW.js} +35 -11
  14. package/dist/LearnAdvisor-46FG2XIP.js +9 -0
  15. package/dist/LearnAdvisor-XBRDNAGH.cjs +9 -0
  16. package/dist/McpClientManager-BNSKLHIN.cjs +8 -0
  17. package/dist/{McpClientManager-7RM6YT35.js → McpClientManager-SL35BR24.js} +2 -2
  18. package/dist/MemoryManager-34L4YOKA.cjs +8 -0
  19. package/dist/MemoryManager-WJMLPWGU.js +8 -0
  20. package/dist/NVIDIAProvider-2HR737UE.js +14 -0
  21. package/dist/NVIDIAProvider-MVTL62PR.cjs +14 -0
  22. package/dist/PermissionManager-5OOJ7FAT.cjs +11 -0
  23. package/dist/{PermissionManager-ATUV34LQ.js → PermissionManager-KMYILJ4Z.js} +4 -4
  24. package/dist/{ProjectProfiler-ZDWR2ODG.cjs → ProjectProfiler-CDAE7ECW.cjs} +2 -1
  25. package/dist/{ProjectProfiler-UMJJSOCE.js → ProjectProfiler-NZTJDRHD.js} +2 -1
  26. package/dist/ProviderFactory-C3YPXTDD.cjs +11 -0
  27. package/dist/ProviderFactory-HFPRVQ25.js +11 -0
  28. package/dist/SessionManager-PNBTJJTQ.js +10 -0
  29. package/dist/SessionManager-WAPTFMDO.cjs +10 -0
  30. package/dist/SkillsRegistry-4RRD5GMX.js +9 -0
  31. package/dist/SkillsRegistry-7AJP74GJ.cjs +9 -0
  32. package/dist/SubAgent-FDIH3DXB.js +11 -0
  33. package/dist/SubAgent-HVL2ICVZ.cjs +11 -0
  34. package/dist/{SyncApiClient-LVIO4C2S.js → SyncApiClient-LRPFNCKJ.js} +2 -2
  35. package/dist/SyncApiClient-VMBOLQ6H.cjs +11 -0
  36. package/dist/about-BW3PDZUU.js +14 -0
  37. package/dist/about-FCAX37YC.cjs +14 -0
  38. package/dist/acp-EOETGAHC.cjs +1517 -0
  39. package/dist/acp-VHEL7BOW.js +1517 -0
  40. package/dist/actionExecutor-33I47NZS.js +24 -0
  41. package/dist/actionExecutor-4YBMR3YH.cjs +24 -0
  42. package/dist/add-dir-7SS6KSH5.cjs +11 -0
  43. package/dist/add-dir-VFX7QT4E.js +11 -0
  44. package/dist/agent-DMRUFU4M.cjs +116 -0
  45. package/dist/agent-WCJEYQJT.js +116 -0
  46. package/dist/agents/builtin/code-cleaner.md +1 -1
  47. package/dist/agents/builtin/docs-writer.md +1 -1
  48. package/dist/agents/builtin/researcher.md +2 -2
  49. package/dist/agents/builtin/reviewer.md +1 -1
  50. package/dist/agents/builtin/tester.md +1 -1
  51. package/dist/agents/builtin/todo-resolver.md +1 -1
  52. package/dist/agents-CHROO3VU.cjs +17 -0
  53. package/dist/agents-UVDUL65K.js +17 -0
  54. package/dist/agents-new-AUBWSOXP.js +17 -0
  55. package/dist/agents-new-Y562WC47.cjs +17 -0
  56. package/dist/{autoSkill-6TGBTEQD.js → autoSkill-EFMK6WU6.js} +3 -3
  57. package/dist/autoSkill-YOLLFTP2.cjs +20 -0
  58. package/dist/automode-BMYSRM34.js +10 -0
  59. package/dist/automode-DBLKTTKD.cjs +10 -0
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/{cc-7LEIJ3KF.js → cc-AYEP2CA3.js} +1 -1
  63. package/dist/{cc-Q5MM4AWC.cjs → cc-S2QLQFBR.cjs} +1 -1
  64. package/dist/chrome-ATC4OO5I.cjs +20 -0
  65. package/dist/chrome-NHJ44WUN.js +50 -0
  66. package/dist/chrome-O62WXV7F.js +20 -0
  67. package/dist/chrome-XHJLCO4M.cjs +50 -0
  68. package/dist/chromeSkill-53TH55PM.js +105 -0
  69. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  70. package/dist/{chunk-HOAHWIQ5.cjs → chunk-2CGE7ZV3.cjs} +26 -26
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/chunk-2HOLOHVK.js +2219 -0
  73. package/dist/{chunk-3PDTTAKJ.js → chunk-2QL6MNXG.js} +15 -8
  74. package/dist/{chunk-PGRH5Q77.cjs → chunk-2VHB43IX.cjs} +35 -6
  75. package/dist/{chunk-VG34MG2U.js → chunk-37M5UM6I.js} +9 -6
  76. package/dist/{chunk-6HYLHBQG.cjs → chunk-3DDL2E55.cjs} +20 -16
  77. package/dist/chunk-3EDDDZS2.cjs +5 -0
  78. package/dist/{chunk-6OYHF6MF.js → chunk-3GUEUCZK.js} +28 -4
  79. package/dist/{chunk-N254NRHT.cjs → chunk-3HT76LNN.cjs} +9 -2
  80. package/dist/{chunk-DVUHHH3B.cjs → chunk-3KLSNNRW.cjs} +4 -4
  81. package/dist/chunk-3LJJG5YY.cjs +387 -0
  82. package/dist/chunk-3OF56EMA.cjs +197 -0
  83. package/dist/chunk-3PXKRVCW.js +108 -0
  84. package/dist/{chunk-IKGWDOGU.cjs → chunk-3S563FNF.cjs} +160 -79
  85. package/dist/chunk-3UT7R3XV.js +663 -0
  86. package/dist/chunk-4256YRCO.cjs +80 -0
  87. package/dist/chunk-46C73ZKK.cjs +663 -0
  88. package/dist/chunk-46MTALKD.js +44 -0
  89. package/dist/{chunk-AEJH23FO.cjs → chunk-47PHDKNW.cjs} +6 -6
  90. package/dist/chunk-4LMUDS2K.js +124 -0
  91. package/dist/{chunk-HLHTG5ZU.cjs → chunk-5CMYEM3R.cjs} +14 -12
  92. package/dist/{chunk-MBBY4ZIK.js → chunk-5F6ZKSHO.js} +4 -1
  93. package/dist/chunk-5JFTY3VU.js +74 -0
  94. package/dist/chunk-5JTTM5SC.js +59 -0
  95. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  96. package/dist/{chunk-GJH7XMSK.js → chunk-5VHP6HDQ.js} +8 -6
  97. package/dist/{chunk-6ZCULLCA.js → chunk-62RTC3XX.js} +1 -1
  98. package/dist/{chunk-MSED7RH2.cjs → chunk-6GUODJKM.cjs} +112 -41
  99. package/dist/{chunk-47CKWKEX.cjs → chunk-6HH236FV.cjs} +9 -4
  100. package/dist/{chunk-WHE2SWHU.js → chunk-6NVAK6CK.js} +2 -2
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/{chunk-3PCTTUNW.cjs → chunk-6XVVIY54.cjs} +55 -25
  103. package/dist/{chunk-3L53OA4E.cjs → chunk-75EDROHL.cjs} +10 -10
  104. package/dist/{chunk-G4CAKI3V.js → chunk-7HPWMALN.js} +7 -2
  105. package/dist/chunk-7JLT2VNW.cjs +18963 -0
  106. package/dist/chunk-7LWQCE4Y.cjs +987 -0
  107. package/dist/{chunk-OLSBBZW6.cjs → chunk-7MU7LWF3.cjs} +5 -5
  108. package/dist/{chunk-HLQV64Y5.js → chunk-7RFJB75Y.js} +140 -59
  109. package/dist/{chunk-X2MSVKDV.js → chunk-A7HHCIDQ.js} +2 -2
  110. package/dist/{chunk-SKYG33B2.cjs → chunk-AC7DZ6SK.cjs} +3 -3
  111. package/dist/{chunk-XX2ZO7DS.js → chunk-ACDQGA4Z.js} +90 -16
  112. package/dist/{chunk-CZXGCVTR.cjs → chunk-AOKCI722.cjs} +2 -2
  113. package/dist/chunk-ARBEHFCG.js +715 -0
  114. package/dist/{chunk-OOKY3HPZ.js → chunk-AT7OWLY5.js} +50 -9
  115. package/dist/chunk-AU6JAGZJ.cjs +231 -0
  116. package/dist/chunk-AUFNACED.js +18963 -0
  117. package/dist/{chunk-CDBPBM2K.cjs → chunk-AUYSIEVV.cjs} +3 -3
  118. package/dist/chunk-B4HSNOIH.cjs +354 -0
  119. package/dist/{chunk-EGMZDTSL.js → chunk-B5CGDNMR.js} +10 -2
  120. package/dist/{chunk-34M3HWLR.js → chunk-BFQDQRDE.js} +2 -2
  121. package/dist/{chunk-2AA5MFES.js → chunk-BL2UC7HC.js} +8 -5
  122. package/dist/{chunk-LNMYK2F5.cjs → chunk-BQ22N3TX.cjs} +56 -41
  123. package/dist/chunk-BQU3HAE7.js +21 -0
  124. package/dist/chunk-BWF4VDYE.js +3897 -0
  125. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  126. package/dist/{chunk-APIXPPMT.js → chunk-CBFH2J3O.js} +855 -33
  127. package/dist/chunk-CCVMREXI.js +420 -0
  128. package/dist/chunk-CFAWTLSC.js +13 -0
  129. package/dist/{chunk-G27PQQFD.js → chunk-CFFE4VA3.js} +1 -1
  130. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CH2J4PVE.cjs} +212 -70
  131. package/dist/{chunk-7BTSG4ME.cjs → chunk-CHI52KFR.cjs} +855 -33
  132. package/dist/{chunk-DJDE4DTT.cjs → chunk-CWINVFRI.cjs} +25 -19
  133. package/dist/{chunk-HXGBSJL5.cjs → chunk-D2OSPLYC.cjs} +2 -2
  134. package/dist/{chunk-GBHDROGL.js → chunk-D6GZBSOX.js} +16 -4
  135. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  136. package/dist/chunk-DEQVRSV5.cjs +866 -0
  137. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  138. package/dist/{chunk-WM5PAOTQ.cjs → chunk-DIZTWFVR.cjs} +1649 -484
  139. package/dist/{chunk-YZXUDM5X.js → chunk-DLP436GI.js} +204 -62
  140. package/dist/{chunk-OHUZKDGX.js → chunk-DMRXF5DU.js} +3 -3
  141. package/dist/{chunk-U46VYPLR.cjs → chunk-DPSIGY6L.cjs} +9 -9
  142. package/dist/{chunk-DN573ME7.cjs → chunk-DRWDEHE5.cjs} +4 -4
  143. package/dist/{chunk-SEKD5FH3.cjs → chunk-E26KKI46.cjs} +5 -2
  144. package/dist/{chunk-J4Q7XR3G.js → chunk-E46DJH5S.js} +3 -3
  145. package/dist/{chunk-Q7XSCYND.cjs → chunk-E6GFD7VR.cjs} +49 -26
  146. package/dist/chunk-ES2HJQ4N.js +37 -0
  147. package/dist/chunk-EZJHLOWP.js +80 -0
  148. package/dist/chunk-FFBDRUO5.cjs +59 -0
  149. package/dist/{chunk-AYSFIUFW.js → chunk-FGT6KK6T.js} +38 -15
  150. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  151. package/dist/{chunk-DSPQEHDT.js → chunk-FQAVGSPW.js} +2 -2
  152. package/dist/chunk-FQVG6ZHF.js +197 -0
  153. package/dist/chunk-GBMDFWJX.cjs +152 -0
  154. package/dist/{chunk-DRE2RXBZ.js → chunk-GGLKUENP.js} +1605 -440
  155. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  156. package/dist/{chunk-MYISNQH4.js → chunk-GWO66KBI.js} +1 -1
  157. package/dist/chunk-GWY26SUD.cjs +63 -0
  158. package/dist/{chunk-YGN4CQIP.js → chunk-GZ6DV2UG.js} +1 -1
  159. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  160. package/dist/chunk-HDK2EHVH.cjs +570 -0
  161. package/dist/chunk-HJIXWGQZ.js +139 -0
  162. package/dist/{chunk-6RF7UKUS.js → chunk-HKYZSUQ5.js} +48 -47
  163. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  164. package/dist/{chunk-HTLINWX6.cjs → chunk-HQWQZML5.cjs} +16 -13
  165. package/dist/{chunk-DVZOENQ7.cjs → chunk-HS4USDND.cjs} +9 -4
  166. package/dist/chunk-HSCUPEA4.cjs +3897 -0
  167. package/dist/{chunk-JCLYQ2JC.js → chunk-HXJEGMGB.js} +12 -6
  168. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  169. package/dist/{chunk-SCXX4LW5.js → chunk-I24CWKKK.js} +15 -8
  170. package/dist/chunk-IAGCRVJ3.js +355 -0
  171. package/dist/chunk-IEXKKKOF.cjs +92 -0
  172. package/dist/{chunk-5IXII4HX.cjs → chunk-IGMPWJ2I.cjs} +19 -12
  173. package/dist/chunk-IKUMVBCW.cjs +33 -0
  174. package/dist/{chunk-XTB6VJVQ.cjs → chunk-J2K57QM7.cjs} +6 -6
  175. package/dist/{chunk-O4IF4NJT.cjs → chunk-J5ADZN6V.cjs} +57 -56
  176. package/dist/chunk-J5HE6CUM.cjs +124 -0
  177. package/dist/{chunk-JS7IPR7P.js → chunk-JAQO6XDB.js} +31 -2
  178. package/dist/chunk-JIMSII7R.js +987 -0
  179. package/dist/chunk-JJ4KA7HK.cjs +2219 -0
  180. package/dist/chunk-JMN3GZU6.js +570 -0
  181. package/dist/{chunk-X5VSP65C.cjs → chunk-JP3YHTQ2.cjs} +4 -4
  182. package/dist/{chunk-SKV2F3NM.js → chunk-JYKPWK5O.js} +1 -1
  183. package/dist/{chunk-NNPAM4HC.cjs → chunk-KNTUI4TZ.cjs} +12 -6
  184. package/dist/{chunk-HIVRCQS2.js → chunk-L4F7SUYL.js} +56 -25
  185. package/dist/{chunk-C5IJIM2V.cjs → chunk-LDJQ5QHG.cjs} +68 -37
  186. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  187. package/dist/chunk-LJD7KR3L.cjs +44 -0
  188. package/dist/chunk-LN7D3EJZ.js +387 -0
  189. package/dist/{chunk-643VRA5S.cjs → chunk-LQBONA55.cjs} +32 -8
  190. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  191. package/dist/chunk-M4KNC5BQ.js +78 -0
  192. package/dist/chunk-MO4KP6XS.cjs +229 -0
  193. package/dist/{chunk-BVKXEQVG.cjs → chunk-MOJ7ADW4.cjs} +22 -10
  194. package/dist/chunk-MPULXVC4.cjs +715 -0
  195. package/dist/{chunk-X5YJ34FZ.cjs → chunk-MQESBFBZ.cjs} +46 -23
  196. package/dist/chunk-MUNUUFU7.cjs +21 -0
  197. package/dist/{chunk-X3WS5LDG.js → chunk-MX75JYIY.js} +7 -5
  198. package/dist/chunk-MXVIDIC6.cjs +139 -0
  199. package/dist/{chunk-3K2ESU53.cjs → chunk-N6O3XUZ2.cjs} +2 -2
  200. package/dist/{chunk-IVM5F2AE.js → chunk-NBGOIFKP.js} +265 -18
  201. package/dist/{chunk-SLQAYV3W.js → chunk-NMQ47RCG.js} +8 -2
  202. package/dist/{chunk-JYTDYJVW.js → chunk-O64I2GYI.js} +1 -1
  203. package/dist/{chunk-IFFXSTOM.cjs → chunk-O6TQP7U7.cjs} +3 -3
  204. package/dist/{chunk-AYS2ASM7.js → chunk-OHWMWKJQ.js} +1 -1
  205. package/dist/{chunk-N23UAW4I.js → chunk-OM24WXEE.js} +7 -2
  206. package/dist/{chunk-MAKMSQMQ.cjs → chunk-OPNI6O7F.cjs} +8 -6
  207. package/dist/chunk-OR67YXQK.cjs +13 -0
  208. package/dist/{chunk-QOXPOR5D.js → chunk-OV3PVUYN.js} +115 -44
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-A4IJHHV7.cjs → chunk-PDHT7LQS.cjs} +52 -11
  212. package/dist/{chunk-LA7H35XM.cjs → chunk-PHJO5YAL.cjs} +9 -9
  213. package/dist/{chunk-KPELYZ6L.js → chunk-PQLKJCIE.js} +2 -2
  214. package/dist/chunk-PUD76XQT.cjs +78 -0
  215. package/dist/chunk-Q2IL4DDI.cjs +355 -0
  216. package/dist/{chunk-WPVWQSL7.cjs → chunk-Q6AC3PHY.cjs} +16 -13
  217. package/dist/{chunk-XRZEUWKF.js → chunk-QCHIDZBA.js} +1 -1
  218. package/dist/{chunk-IQ5RXU6O.js → chunk-QEGOB6QV.js} +1 -1
  219. package/dist/{chunk-JSBRDJBE.js → chunk-QGM4M3NI.js} +8 -1
  220. package/dist/chunk-QKP772OZ.js +4291 -0
  221. package/dist/chunk-QQ7PANOP.js +59 -0
  222. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  223. package/dist/chunk-RAKO7UN7.js +114 -0
  224. package/dist/chunk-RBHANOYY.js +33 -0
  225. package/dist/chunk-RBZ7AFX7.cjs +29 -0
  226. package/dist/{chunk-TXSDBGKX.cjs → chunk-REMGR23V.cjs} +46 -49
  227. package/dist/chunk-ROLA6EFO.cjs +85 -0
  228. package/dist/{chunk-TBEGGJNC.cjs → chunk-SOLBYSLY.cjs} +33 -16
  229. package/dist/{chunk-FKSDEWDH.js → chunk-SWCQM52V.js} +68 -25
  230. package/dist/{chunk-H5SWOLG6.js → chunk-TBOLJDUG.js} +39 -24
  231. package/dist/chunk-TH26BQJG.js +101 -0
  232. package/dist/{chunk-245KJE5Y.cjs → chunk-TJNBASFD.cjs} +14 -6
  233. package/dist/chunk-TKKN34TV.js +229 -0
  234. package/dist/chunk-TQ33WBY5.cjs +74 -0
  235. package/dist/{chunk-EGFT4PGW.js → chunk-TWQDAUZU.js} +5 -2
  236. package/dist/{chunk-OGV4WJ5L.cjs → chunk-TXPSTCG7.cjs} +74 -59
  237. package/dist/{chunk-CAMZTXV6.js → chunk-U4C3HW6P.js} +67 -52
  238. package/dist/{chunk-5P2NXKP3.js → chunk-UEIXJG45.js} +104 -76
  239. package/dist/{chunk-22D2CNTP.cjs → chunk-UGFVM77J.cjs} +5 -2
  240. package/dist/chunk-UOQECODR.js +34 -0
  241. package/dist/chunk-UR27UDTB.js +354 -0
  242. package/dist/chunk-UWFG2R2I.cjs +420 -0
  243. package/dist/{chunk-Y72HH2TF.cjs → chunk-UXLW45ZE.cjs} +102 -28
  244. package/dist/{chunk-FPHU2ES6.cjs → chunk-VBOFPU5M.cjs} +6 -0
  245. package/dist/{chunk-JX3DFKBI.js → chunk-VDWJMWDF.js} +54 -24
  246. package/dist/{chunk-LENHP55G.cjs → chunk-VGEV44V2.cjs} +1076 -158
  247. package/dist/{chunk-33RSHBDH.js → chunk-VKBIE6I6.js} +38 -7
  248. package/dist/{chunk-CWMZKFTT.js → chunk-VRMZO6TB.js} +31 -8
  249. package/dist/chunk-VUGOOGHB.js +400 -0
  250. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  251. package/dist/chunk-WGLBC5AY.cjs +59 -0
  252. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  253. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  254. package/dist/chunk-WRTXCQ3V.cjs +4291 -0
  255. package/dist/chunk-WTB7AFL6.cjs +101 -0
  256. package/dist/{chunk-NDMIPTV4.js → chunk-WZV6UVPY.js} +8 -3
  257. package/dist/chunk-XF2WIKHR.cjs +34 -0
  258. package/dist/{chunk-L3WAH3EM.cjs → chunk-XGMI6IYB.cjs} +46 -15
  259. package/dist/{chunk-FW774QXH.js → chunk-XIVFAD2L.js} +1048 -130
  260. package/dist/chunk-XV2HXRHX.js +85 -0
  261. package/dist/{chunk-72FKPBT5.js → chunk-Y3M2DABP.js} +16 -12
  262. package/dist/{chunk-QNGEW5TC.js → chunk-YV63VW4K.js} +1 -1
  263. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  264. package/dist/{chunk-RD5XAJR2.cjs → chunk-YWTIXHU6.cjs} +266 -19
  265. package/dist/chunk-YZWE7XSM.js +5 -0
  266. package/dist/{chunk-I5IW3T2Y.js → chunk-Z3XSSF7B.js} +32 -15
  267. package/dist/{chunk-6UJMCWRY.js → chunk-Z4LIPMPM.js} +6 -0
  268. package/dist/chunk-ZASDSY7P.cjs +114 -0
  269. package/dist/{chunk-R33VKSH5.cjs → chunk-ZHJ7JGME.cjs} +11 -11
  270. package/dist/chunk-ZPD2AO3U.js +866 -0
  271. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  272. package/dist/chunk-ZR46OJNZ.js +152 -0
  273. package/dist/{chunk-G3V4SFET.cjs → chunk-ZZ63NW7A.cjs} +78 -35
  274. package/dist/clear-33TWQ2ES.cjs +12 -0
  275. package/dist/clear-OFLFQ3MR.js +12 -0
  276. package/dist/{communityInstaller-6KCFN7YZ.js → communityInstaller-COB2KTOW.js} +9 -6
  277. package/dist/communityInstaller-TWMGPSYM.cjs +22 -0
  278. package/dist/completion-IIZMHXYP.cjs +17 -0
  279. package/dist/completion-PT4VM2H2.js +17 -0
  280. package/dist/config-KL6WU7R2.cjs +20 -0
  281. package/dist/{config-ZN66VXPS.js → config-R4O7GBTY.js} +7 -5
  282. package/dist/{constants-UFM5B232.js → constants-HVCHVQAF.js} +2 -2
  283. package/dist/constants-RLMJ5D5P.cjs +21 -0
  284. package/dist/{defaultHooks-RCXPHF4M.cjs → defaultHooks-2V2CQL63.cjs} +26 -11
  285. package/dist/{defaultHooks-RDRMER3Z.js → defaultHooks-TMHDU3FS.js} +26 -11
  286. package/dist/export-3PK3VFCE.js +15 -0
  287. package/dist/export-WLGNWEMJ.cjs +15 -0
  288. package/dist/{extractSessionMemories-V7K42ZHW.js → extractSessionMemories-A2JX5WJ2.js} +1 -1
  289. package/dist/{extractSessionMemories-SDW2MVBQ.cjs → extractSessionMemories-XL3MS37F.cjs} +1 -1
  290. package/dist/feedback-G635NCLJ.js +18 -0
  291. package/dist/feedback-LLMK3TZH.cjs +18 -0
  292. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  293. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  294. package/dist/filesystem-L6DQKGWK.js +11 -0
  295. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  296. package/dist/{formatters-6K7QVWQL.cjs → formatters-53XTCNGQ.cjs} +1 -1
  297. package/dist/{formatters-DQHO5I36.js → formatters-T6KV4BPP.js} +1 -1
  298. package/dist/help-BAXLP2M2.cjs +12 -0
  299. package/dist/{help-2BLR7L43.js → help-X3OAZ3CY.js} +3 -3
  300. package/dist/history-6HOJSEMT.cjs +14 -0
  301. package/dist/{history-5FZ3M2AK.js → history-YKFPHBJN.js} +3 -3
  302. package/dist/hooks-7TA4PIIB.js +18 -0
  303. package/dist/hooks-XVFU67T2.cjs +18 -0
  304. package/dist/{i18n-K7QOWIBH.js → i18n-2KBUU7XL.js} +2 -2
  305. package/dist/i18n-MUJMKTFM.cjs +33 -0
  306. package/dist/ide-CCQ33PGC.cjs +15 -0
  307. package/dist/ide-VLVFBZ5F.js +15 -0
  308. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  309. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  310. package/dist/{import-UXM3VK7B.js → import-4CHYLS4K.js} +4 -4
  311. package/dist/{import-QEME3E4T.cjs → import-I7T4ZHYL.cjs} +4 -4
  312. package/dist/import-J46F54JY.cjs +10 -0
  313. package/dist/import-JWPYKXCZ.js +10 -0
  314. package/dist/index.cjs +747 -22356
  315. package/dist/index.d.cts +93 -0
  316. package/dist/index.d.ts +93 -0
  317. package/dist/index.js +786 -22395
  318. package/dist/init-262MWZV4.js +10 -0
  319. package/dist/init-EE5Y7RBL.cjs +10 -0
  320. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  321. package/dist/inkMode-WBNFOSAT.js +7 -0
  322. package/dist/inputPrompt-IIFKCX5Q.cjs +90 -0
  323. package/dist/inputPrompt-YGBHDUEP.js +90 -0
  324. package/dist/language-CVLPB7OV.js +21 -0
  325. package/dist/language-ZTWFHUSV.cjs +21 -0
  326. package/dist/learn-PON7I5QS.js +23 -0
  327. package/dist/learn-XLRSVNA3.cjs +23 -0
  328. package/dist/{lint-D5UOJWIK.cjs → lint-4NDGCSCL.cjs} +1 -1
  329. package/dist/{lint-NJPZWVN2.js → lint-FZ7ZJUB3.js} +1 -1
  330. package/dist/login-223QTGBG.cjs +26 -0
  331. package/dist/login-6IKTBUBY.js +26 -0
  332. package/dist/logout-RN2AG6SI.js +23 -0
  333. package/dist/logout-U3M4FFX7.cjs +23 -0
  334. package/dist/mcp-5O6PUL4G.js +20 -0
  335. package/dist/mcp-NUQ76QQB.cjs +20 -0
  336. package/dist/{mcp-install-VESN42PI.js → mcp-install-6XWXLFVY.js} +18 -11
  337. package/dist/{mcp-install-G27HSS3Z.cjs → mcp-install-P6DHES7V.cjs} +22 -15
  338. package/dist/memory-CYMDQ2YC.cjs +10 -0
  339. package/dist/memory-Q54CESNM.js +10 -0
  340. package/dist/{message-ZJ5AYAMT.cjs → message-4OKO775J.cjs} +1 -1
  341. package/dist/{message-JUBOK2VU.js → message-X3LOAAM7.js} +1 -1
  342. package/dist/model-6AJ77PJG.js +10 -0
  343. package/dist/model-IDRCKDML.cjs +10 -0
  344. package/dist/new-7LEWOUF2.cjs +12 -0
  345. package/dist/new-ZXHEWC2S.js +12 -0
  346. package/dist/onboarding-FXX7YHSJ.cjs +35 -0
  347. package/dist/onboarding-JYNMK6NI.js +35 -0
  348. package/dist/{patch-MOD7QC3D.cjs → patch-DJ2GPFST.cjs} +1 -1
  349. package/dist/{patch-5F6VBIT3.js → patch-NIJWIRHS.js} +1 -1
  350. package/dist/permissions-YBNSANIA.cjs +10 -0
  351. package/dist/permissions-YHJMVA6L.js +10 -0
  352. package/dist/plan-XEJMOT55.cjs +13 -0
  353. package/dist/plan-YYUAXPTL.js +13 -0
  354. package/dist/pr-review-CW6J7P62.cjs +9 -0
  355. package/dist/pr-review-YZSBQVT2.js +9 -0
  356. package/dist/quit-B43SJ6E4.cjs +10 -0
  357. package/dist/quit-GWTNHQSP.js +10 -0
  358. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  359. package/dist/rawMode-GFNLXQPU.js +7 -0
  360. package/dist/{registry-KWZGYJC2.js → registry-34GL6BNJ.js} +30 -45
  361. package/dist/{registry-YN4FQPOO.cjs → registry-V24W7YK6.cjs} +66 -81
  362. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  363. package/dist/repeat-RALE6AUO.js +17 -0
  364. package/dist/resume-DYVOQN5L.cjs +16 -0
  365. package/dist/resume-M25UQKOX.js +16 -0
  366. package/dist/review-QHP2KP4Q.js +9 -0
  367. package/dist/review-UWHWQHCB.cjs +9 -0
  368. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  369. package/dist/ripgrep-VHJQQ55W.js +9 -0
  370. package/dist/rpc-NPS3PU4O.cjs +3730 -0
  371. package/dist/rpc-S3DGW6KV.js +3730 -0
  372. package/dist/search-CPX4PWHP.js +20 -0
  373. package/dist/search-VUF3M4N3.cjs +20 -0
  374. package/dist/{session-BSU2L5UI.cjs → session-LXKC4X5Q.cjs} +1 -1
  375. package/dist/{session-SZMRN5KG.js → session-NMMO4QOL.js} +1 -1
  376. package/dist/sessions-IYAXMK23.js +10 -0
  377. package/dist/sessions-JODKER5D.cjs +10 -0
  378. package/dist/settings-55BNW6BF.js +33 -0
  379. package/dist/settings-BKTS7OMC.cjs +33 -0
  380. package/dist/setup-IRC5HQG2.js +29 -0
  381. package/dist/setup-MMQ7TWOP.cjs +29 -0
  382. package/dist/share-6JRQECAH.cjs +17 -0
  383. package/dist/share-YM5MJKMO.js +17 -0
  384. package/dist/{skills-FYY6F2WV.cjs → skills-GGMZOVIE.cjs} +14 -11
  385. package/dist/skills-LWSOKOSH.cjs +29 -0
  386. package/dist/{skills-6OL4OSGA.js → skills-MVIZNHT4.js} +13 -10
  387. package/dist/skills-VWOMV3CR.js +29 -0
  388. package/dist/{skills-install-6CSWC24P.js → skills-install-QBA5RCV6.js} +22 -71
  389. package/dist/{skills-install-O3LZ2ETC.cjs → skills-install-VTAMCNNY.cjs} +35 -84
  390. package/dist/skills-new-GPL46YV2.js +18 -0
  391. package/dist/skills-new-L5BEZN5V.cjs +18 -0
  392. package/dist/slashCommands-FBPCIWM5.cjs +95 -0
  393. package/dist/slashCommands-FCWY5DXW.js +95 -0
  394. package/dist/status-3B5SDZPL.js +17 -0
  395. package/dist/status-TTGRF6NC.cjs +17 -0
  396. package/dist/summarizer-DGPHE5IQ.js +17 -0
  397. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  398. package/dist/sync-77CXVVTK.cjs +21 -0
  399. package/dist/{sync-KWX67OUN.js → sync-7BILIQHP.js} +4 -4
  400. package/dist/sync-7OKF6636.js +21 -0
  401. package/dist/sync-EH4K5U3N.cjs +40 -0
  402. package/dist/{tasks-5FPBIFLC.js → tasks-R5MBGAQ6.js} +1 -1
  403. package/dist/{tasks-TXGKGNH6.cjs → tasks-V4WB3MFR.cjs} +1 -1
  404. package/dist/{team-5YXP3JGR.js → team-JESCHGWB.js} +1 -1
  405. package/dist/{team-IIWEZKNR.cjs → team-VQQKWGZB.cjs} +1 -1
  406. package/dist/{teammate-L6EZQ3I2.js → teammate-GZQSCIMS.js} +29 -8
  407. package/dist/{teammate-2KMKJXAM.cjs → teammate-J6PHGL23.cjs} +30 -9
  408. package/dist/theme-64BYGJ57.cjs +21 -0
  409. package/dist/theme-YJE6HEON.js +21 -0
  410. package/dist/tools-3PPTTKFV.js +9 -0
  411. package/dist/tools-THIQA7WC.cjs +9 -0
  412. package/dist/ui/questionModal.cjs +9 -6
  413. package/dist/ui/questionModal.js +8 -5
  414. package/dist/undo-PRTEGL2J.cjs +10 -0
  415. package/dist/undo-SZEHLX7X.js +10 -0
  416. package/dist/{update-TVAJMMBC.js → update-53WMKYVS.js} +1 -1
  417. package/dist/{update-Z6BIIQDC.cjs → update-NV6QRYY7.cjs} +1 -1
  418. package/dist/web-3BA2WV37.cjs +37 -0
  419. package/dist/web-6FYGBX5K.js +37 -0
  420. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  421. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  422. package/dist/yolo-GF2YD7ZI.js +9 -0
  423. package/dist/yolo-OGDA7HNC.cjs +9 -0
  424. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  425. package/dist/yoloMode-4JOOSU26.js +17 -0
  426. package/package.json +46 -49
  427. package/dist/AgentRegistry-NQCLWABO.cjs +0 -10
  428. package/dist/CommunitySkillsCache-6QPRMTJO.js +0 -8
  429. package/dist/CommunitySkillsCache-GTQMOCCO.cjs +0 -8
  430. package/dist/GitHubRegistryFetcher-S7QFUEKV.cjs +0 -7
  431. package/dist/HookManager-Q2KYMCP4.cjs +0 -7
  432. package/dist/HookManager-TTP4Y6DC.js +0 -7
  433. package/dist/LearnAdvisor-A4Q5PPBI.js +0 -9
  434. package/dist/LearnAdvisor-GASQD7HT.cjs +0 -9
  435. package/dist/McpClientManager-RKD7C6OY.cjs +0 -8
  436. package/dist/MemoryManager-GUNLRP5S.js +0 -8
  437. package/dist/MemoryManager-TNSGKDKX.cjs +0 -8
  438. package/dist/PermissionManager-KMN53FJP.cjs +0 -11
  439. package/dist/ProviderFactory-MR5B23QJ.js +0 -9
  440. package/dist/ProviderFactory-VFGCJJX6.cjs +0 -9
  441. package/dist/SessionManager-FEUAU3ZJ.cjs +0 -10
  442. package/dist/SessionManager-IKWAK2PI.js +0 -10
  443. package/dist/SkillsRegistry-KPQFTRIT.cjs +0 -9
  444. package/dist/SkillsRegistry-XJSKPDF2.js +0 -9
  445. package/dist/SubAgent-NYH6GWQ3.js +0 -11
  446. package/dist/SubAgent-PZKBDUBA.cjs +0 -11
  447. package/dist/SyncApiClient-ZNYMT36M.cjs +0 -11
  448. package/dist/about-HHTF2YFL.js +0 -12
  449. package/dist/about-JGRVNNQC.cjs +0 -12
  450. package/dist/actionExecutor-U6IBN2TU.cjs +0 -19
  451. package/dist/actionExecutor-XT5FW3W6.js +0 -19
  452. package/dist/add-dir-247K3XRY.js +0 -10
  453. package/dist/add-dir-GS4DXKKH.cjs +0 -10
  454. package/dist/agents-R6ZEFTVR.cjs +0 -12
  455. package/dist/agents-WJPQWQF2.js +0 -12
  456. package/dist/agents-new-HKVEIBDJ.js +0 -14
  457. package/dist/agents-new-X6GTHIO6.cjs +0 -14
  458. package/dist/autoSkill-H4T6VVDA.cjs +0 -20
  459. package/dist/automode-BC6NVECO.js +0 -10
  460. package/dist/automode-WN2RSOGW.cjs +0 -10
  461. package/dist/chunk-33A755XB.cjs +0 -168
  462. package/dist/chunk-3OTU3RS3.cjs +0 -1607
  463. package/dist/chunk-4PKF7WPD.js +0 -100
  464. package/dist/chunk-ALYU6VTM.js +0 -105
  465. package/dist/chunk-AS6RTLN7.cjs +0 -203
  466. package/dist/chunk-BWN2CLLM.cjs +0 -298
  467. package/dist/chunk-HQ7YZKXE.js +0 -168
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-J6QET7EF.cjs +0 -454
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-P47WPOXN.js +0 -298
  472. package/dist/chunk-PRRCJFU3.cjs +0 -85
  473. package/dist/chunk-RO6WYEWH.js +0 -454
  474. package/dist/chunk-SYVYLZZF.cjs +0 -24
  475. package/dist/chunk-T73IDKDF.js +0 -111
  476. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  477. package/dist/chunk-ZQE72E6W.cjs +0 -100
  478. package/dist/chunk-ZVY2XD6T.js +0 -1607
  479. package/dist/clear-UO4MNWZW.cjs +0 -12
  480. package/dist/clear-ZJ5NYP6E.js +0 -12
  481. package/dist/communityInstaller-PVSOFDZD.cjs +0 -19
  482. package/dist/completion-MMF2PN2H.js +0 -14
  483. package/dist/completion-UI5WKHXI.cjs +0 -14
  484. package/dist/config-E7RINK4R.cjs +0 -18
  485. package/dist/constants-6CPCJ3DY.cjs +0 -21
  486. package/dist/export-N4XIVDSL.cjs +0 -12
  487. package/dist/export-W22L4D5C.js +0 -12
  488. package/dist/feedback-DR6ADSNE.cjs +0 -15
  489. package/dist/feedback-FEEAP4QW.js +0 -15
  490. package/dist/filesystem-3SGCW2BF.js +0 -10
  491. package/dist/filesystem-MCFXJQ6R.cjs +0 -10
  492. package/dist/help-AQHGTS7P.cjs +0 -12
  493. package/dist/history-NIUDRMKA.cjs +0 -14
  494. package/dist/hooks-2EY4IPKV.js +0 -13
  495. package/dist/hooks-LJVORRIG.cjs +0 -13
  496. package/dist/i18n-ARDG2SMC.cjs +0 -33
  497. package/dist/ide-GFW6IJHD.js +0 -12
  498. package/dist/ide-N2ZNSSB3.cjs +0 -12
  499. package/dist/import-DFVN3KNZ.js +0 -10
  500. package/dist/import-ZS6DPGU5.cjs +0 -10
  501. package/dist/init-PY75HA3S.cjs +0 -10
  502. package/dist/init-QNMWLAVY.js +0 -10
  503. package/dist/language-5UE4G2BT.cjs +0 -18
  504. package/dist/language-UXMHEZUJ.js +0 -18
  505. package/dist/learn-HJ3FLNZC.cjs +0 -20
  506. package/dist/learn-MVYS3RU5.js +0 -20
  507. package/dist/localProjectPermissions-N77HA3XK.js +0 -18
  508. package/dist/localProjectPermissions-UFSMNTBJ.cjs +0 -18
  509. package/dist/login-DSE7H63A.js +0 -20
  510. package/dist/login-V3MEWPKN.cjs +0 -20
  511. package/dist/logout-BMVCLKKW.js +0 -18
  512. package/dist/logout-XEG7FHOZ.cjs +0 -18
  513. package/dist/mcp-PYUR4PHO.js +0 -18
  514. package/dist/mcp-SG6JFLGC.cjs +0 -18
  515. package/dist/memory-4ZMMEZ2Z.js +0 -10
  516. package/dist/memory-QSGMVVGH.cjs +0 -10
  517. package/dist/model-NANLBZ4Z.cjs +0 -10
  518. package/dist/model-ZXNV4AF7.js +0 -10
  519. package/dist/new-5QJY5JP2.js +0 -12
  520. package/dist/new-PMMG55UX.cjs +0 -12
  521. package/dist/permissions-LECTCJ4H.cjs +0 -13
  522. package/dist/permissions-VP5VGIBL.js +0 -13
  523. package/dist/plan-G5CEKJI4.js +0 -11
  524. package/dist/plan-QKOHE3LH.cjs +0 -11
  525. package/dist/quit-BKOOPHU5.cjs +0 -10
  526. package/dist/quit-FVFNYACP.js +0 -10
  527. package/dist/resume-EXFQSQPH.js +0 -13
  528. package/dist/resume-PP2IQM5S.cjs +0 -13
  529. package/dist/search-C56FBN67.cjs +0 -17
  530. package/dist/search-XGZDYBF4.js +0 -17
  531. package/dist/sessions-54KI3F2Q.js +0 -10
  532. package/dist/sessions-DDTSPNVW.cjs +0 -10
  533. package/dist/settings-BDO37TTO.cjs +0 -30
  534. package/dist/settings-FHRDFPLK.js +0 -30
  535. package/dist/share-IERCTBGN.cjs +0 -14
  536. package/dist/share-TGROUE6R.js +0 -14
  537. package/dist/skills-OM4IGBAA.cjs +0 -26
  538. package/dist/skills-S3GRN323.js +0 -26
  539. package/dist/skills-new-ALD2PTHN.js +0 -15
  540. package/dist/skills-new-PWLKK7GW.cjs +0 -15
  541. package/dist/slashCommands-L4ZD33LJ.js +0 -75
  542. package/dist/slashCommands-YY2VUUDF.cjs +0 -75
  543. package/dist/status-3PC5XWSS.cjs +0 -11
  544. package/dist/status-KCLVOYPD.js +0 -11
  545. package/dist/sync-6SDWG5RK.js +0 -18
  546. package/dist/sync-7JMZVEQD.cjs +0 -40
  547. package/dist/sync-WHURZL3U.cjs +0 -18
  548. package/dist/theme-BE5A4FPN.cjs +0 -18
  549. package/dist/theme-YMFCQP7J.js +0 -18
  550. package/dist/undo-KZHUUZTD.cjs +0 -10
  551. package/dist/undo-NEIEHQVX.js +0 -10
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
6
+ var _chunkCH2J4PVEcjs = require('./chunk-CH2J4PVE.cjs');
7
7
 
8
8
  // src/utils/prompt.ts
9
9
  async function safePrompt(questions) {
@@ -17,7 +17,7 @@ async function safePrompt(questions) {
17
17
  label: choice.message,
18
18
  value: choice.name
19
19
  }));
20
- const result = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
20
+ const result = await _chunkCH2J4PVEcjs.showModal.call(void 0, {
21
21
  title: selectConfig.message,
22
22
  options,
23
23
  initialIndex: selectConfig.initial
@@ -25,19 +25,19 @@ async function safePrompt(questions) {
25
25
  value = _optionalChain([result, 'optionalAccess', _ => _.value]);
26
26
  } else if (question.type === "confirm") {
27
27
  const confirmConfig = question;
28
- value = await _chunkZYQMLKOKcjs.showConfirm.call(void 0, {
28
+ value = await _chunkCH2J4PVEcjs.showConfirm.call(void 0, {
29
29
  title: confirmConfig.message,
30
30
  defaultValue: confirmConfig.initial
31
31
  });
32
32
  } else if (question.type === "password") {
33
33
  const inputConfig = question;
34
- value = await _chunkZYQMLKOKcjs.showPassword.call(void 0, {
34
+ value = await _chunkCH2J4PVEcjs.showPassword.call(void 0, {
35
35
  title: inputConfig.message,
36
36
  validate: inputConfig.validate
37
37
  });
38
38
  } else if (question.type === "input") {
39
39
  const inputConfig = question;
40
- value = await _chunkZYQMLKOKcjs.showInput.call(void 0, {
40
+ value = await _chunkCH2J4PVEcjs.showInput.call(void 0, {
41
41
  title: inputConfig.message,
42
42
  defaultValue: inputConfig.initial,
43
43
  validate: inputConfig.validate
@@ -1,26 +1,34 @@
1
- import {
2
- LearnClient,
3
- fetchRegistryWithFallback,
4
- installSkillWithSecurity
5
- } from "./chunk-OHUZKDGX.js";
6
1
  import {
7
2
  CommunitySkillsCache
8
- } from "./chunk-MBBY4ZIK.js";
3
+ } from "./chunk-5F6ZKSHO.js";
9
4
  import {
10
5
  GitHubRegistryFetcher
11
- } from "./chunk-UJ2JSM6H.js";
6
+ } from "./chunk-YVQI26H4.js";
7
+ import {
8
+ LearnClient,
9
+ fetchRegistryWithFallback,
10
+ installSkillWithSecurity
11
+ } from "./chunk-DMRXF5DU.js";
12
12
  import {
13
13
  showConfirm,
14
14
  showModal
15
- } from "./chunk-YZXUDM5X.js";
15
+ } from "./chunk-DLP436GI.js";
16
16
  import {
17
17
  t
18
- } from "./chunk-APIXPPMT.js";
18
+ } from "./chunk-CBFH2J3O.js";
19
19
 
20
20
  // src/commands/skills.ts
21
21
  import path from "path";
22
22
  import fse from "fs-extra";
23
23
  import chalk from "chalk";
24
+ async function withModalPause(ctx, fn) {
25
+ await ctx.onBeforeModal?.();
26
+ try {
27
+ return await fn();
28
+ } finally {
29
+ await ctx.onAfterModal?.();
30
+ }
31
+ }
24
32
  async function skills(ctx, args = []) {
25
33
  const { skillsRegistry } = ctx;
26
34
  if (!skillsRegistry) {
@@ -53,6 +61,9 @@ async function skills(ctx, args = []) {
53
61
  case "show":
54
62
  return showSkillInfo(skillsRegistry, skillName);
55
63
  default:
64
+ if (!ctx.isNonInteractive && process.stdout.isTTY) {
65
+ return browseInstalledSkills(ctx, skillsRegistry);
66
+ }
56
67
  return listSkills(skillsRegistry);
57
68
  }
58
69
  }
@@ -96,24 +107,94 @@ function generateSkillSuggestion(skillName, description) {
96
107
  }
97
108
  return `Use ${skillName} to help with: ${description.slice(0, 50)}...`;
98
109
  }
110
+ function getSkillSourceLabel(source) {
111
+ switch (source) {
112
+ case "autohand-user":
113
+ return "Autohand User";
114
+ case "autohand-project":
115
+ return "Project";
116
+ case "claude-user":
117
+ return "Claude User";
118
+ case "claude-project":
119
+ return "Claude Project";
120
+ case "codex-user":
121
+ return "Codex User";
122
+ case "codex-project":
123
+ return "Codex Project";
124
+ case "community":
125
+ return "Community";
126
+ default:
127
+ return source;
128
+ }
129
+ }
130
+ function buildSkillPreview(skill) {
131
+ const lines = [
132
+ `Status: ${skill.isActive ? "\u{1F7E2} Active" : "\u26AA Inactive"}`,
133
+ `Source: ${getSkillSourceLabel(skill.source)}`,
134
+ `Path: ${skill.path}`,
135
+ "",
136
+ skill.description
137
+ ];
138
+ if (skill.isActive) {
139
+ lines.push("");
140
+ lines.push(`Try: ${generateSkillSuggestion(skill.name, skill.description)}`);
141
+ lines.push(`/skills deactivate ${skill.name}`);
142
+ } else {
143
+ lines.push("");
144
+ lines.push(`/skills use ${skill.name}`);
145
+ }
146
+ lines.push(`/skills info ${skill.name}`);
147
+ return lines.join("\n");
148
+ }
149
+ async function browseInstalledSkills(ctx, registry) {
150
+ const allSkills = registry.listSkills();
151
+ const activeSkills = registry.getActiveSkills();
152
+ if (allSkills.length === 0) {
153
+ return listSkills(registry);
154
+ }
155
+ const options = allSkills.map((skill) => ({
156
+ label: `${skill.isActive ? "\u{1F7E2}" : "\u26AA"} ${skill.name} \xB7 ${getSkillSourceLabel(skill.source)}`,
157
+ value: skill.name,
158
+ preview: buildSkillPreview(skill)
159
+ }));
160
+ options.push({
161
+ label: "\u{1F310} Browse community skills",
162
+ value: "__skills_install__",
163
+ description: "Open the community skills browser to search and install new skills."
164
+ });
165
+ const initialIndex = Math.max(allSkills.findIndex((skill) => skill.isActive), 0);
166
+ const selected = await withModalPause(ctx, () => showModal({
167
+ title: `\u{1F4DA} ${t("commands.skills.title")} (${allSkills.length} available, ${activeSkills.length} active)`,
168
+ options,
169
+ initialIndex,
170
+ maxVisible: 12
171
+ }));
172
+ if (!selected) {
173
+ return null;
174
+ }
175
+ if (selected.value === "__skills_install__") {
176
+ return handleSkillsInstall(ctx);
177
+ }
178
+ return showSkillInfo(registry, selected.value);
179
+ }
99
180
  function listSkills(registry) {
100
181
  const allSkills = registry.listSkills();
101
182
  const activeSkills = registry.getActiveSkills();
102
183
  const lines = [];
103
184
  lines.push("");
104
- lines.push(`\u{1F4DA} **${t("commands.skills.title")}**`);
185
+ lines.push(`\u{1F4DA} ${t("commands.skills.title")}`);
105
186
  lines.push("");
106
187
  if (allSkills.length === 0) {
107
188
  lines.push(t("commands.skills.noSkills"));
108
189
  lines.push("");
109
- lines.push("**Get started:**");
190
+ lines.push("Get started:");
110
191
  lines.push("");
111
- lines.push("{{action:\u{1F310} Browse Community Skills|/skills install}}");
112
- lines.push("{{action:\u2728 Create New Skill|/skills new}}");
192
+ lines.push(` \u{1F310} Browse Community Skills \u2192 /skills install`);
193
+ lines.push(` \u2728 Create New Skill \u2192 /skills new`);
113
194
  lines.push("");
114
- lines.push("_Skills can be added in:_");
115
- lines.push("- `~/.autohand/skills/<skill-name>/SKILL.md`");
116
- lines.push("- `<project>/.autohand/skills/<skill-name>/SKILL.md`");
195
+ lines.push("Skills can be added in:");
196
+ lines.push(" ~/.autohand/skills/<skill-name>/SKILL.md");
197
+ lines.push(" <project>/.autohand/skills/<skill-name>/SKILL.md");
117
198
  return lines.join("\n");
118
199
  }
119
200
  const bySource = /* @__PURE__ */ new Map();
@@ -130,28 +211,32 @@ function listSkills(registry) {
130
211
  "autohand-project": "\u{1F4C1} Project Skills"
131
212
  };
132
213
  for (const [source, skills2] of bySource) {
133
- lines.push(`**${sourceLabels[source] || source}**`);
214
+ lines.push(`${sourceLabels[source] || source}`);
134
215
  lines.push("");
135
216
  for (const skill of skills2) {
136
217
  const isActive = skill.isActive;
137
218
  const statusIcon = isActive ? "\u{1F7E2}" : "\u26AA";
138
- const statusText = isActive ? " _(active)_" : "";
139
- lines.push(`${statusIcon} **${skill.name}**${statusText}`);
140
- lines.push(` ${skill.description}`);
219
+ const statusText = isActive ? " (active)" : "";
220
+ lines.push(` ${statusIcon} ${skill.name}${statusText}`);
221
+ lines.push(` ${skill.description}`);
141
222
  if (isActive) {
142
223
  const suggestion = generateSkillSuggestion(skill.name, skill.description);
143
- lines.push(` {{action:\u{1F4A1} Try it|${suggestion}}} {{action:\u2139\uFE0F Info|/skills info ${skill.name}}} {{action:\u23F8\uFE0F Deactivate|/skills deactivate ${skill.name}}}`);
224
+ lines.push(` \u{1F4A1} Try: "${suggestion}"`);
225
+ lines.push(` \u2139\uFE0F Info: /skills info ${skill.name}`);
226
+ lines.push(` \u23F8\uFE0F Deactivate: /skills deactivate ${skill.name}`);
144
227
  } else {
145
- lines.push(` {{action:\u25B6\uFE0F Activate|/skills use ${skill.name}}} {{action:\u2139\uFE0F Info|/skills info ${skill.name}}}`);
228
+ lines.push(` \u25B6\uFE0F Activate: /skills use ${skill.name}`);
229
+ lines.push(` \u2139\uFE0F Info: /skills info ${skill.name}`);
146
230
  }
147
231
  lines.push("");
148
232
  }
149
233
  }
150
234
  lines.push("\u2500".repeat(40));
151
- lines.push(`\u{1F4CA} **${allSkills.length}** skills available, **${activeSkills.length}** active`);
235
+ lines.push(`\u{1F4CA} ${allSkills.length} skills available, ${activeSkills.length} active`);
152
236
  lines.push("");
153
- lines.push("**Quick Actions:**");
154
- lines.push("{{action:\u{1F310} Browse Community|/skills install}} {{action:\u2728 Create New|/skills new}}");
237
+ lines.push("Quick Actions:");
238
+ lines.push(` \u{1F310} Browse Community \u2192 /skills install`);
239
+ lines.push(` \u2728 Create New \u2192 /skills new`);
155
240
  return lines.join("\n");
156
241
  }
157
242
  function activateSkill(registry, name) {
@@ -209,48 +294,43 @@ function showSkillInfo(registry, name) {
209
294
  }
210
295
  const lines = [];
211
296
  lines.push("");
212
- lines.push(`\u{1F4CB} **Skill: ${skill.name}**`);
213
- lines.push("");
214
- if (skill.isActive) {
215
- lines.push(`**Status:** \u{1F7E2} Active`);
216
- const suggestion = generateSkillSuggestion(skill.name, skill.description);
217
- lines.push("");
218
- lines.push(`{{action:\u{1F4A1} Try it now|${suggestion}}} {{action:\u23F8\uFE0F Deactivate|/skills deactivate ${skill.name}}}`);
219
- } else {
220
- lines.push(`**Status:** \u26AA Inactive`);
221
- lines.push("");
222
- lines.push(`{{action:\u25B6\uFE0F Activate|/skills use ${skill.name}}}`);
223
- }
224
- lines.push("");
225
- lines.push("\u2500".repeat(40));
297
+ lines.push(`\u{1F4CB} Skill: ${skill.name}`);
226
298
  lines.push("");
227
- lines.push(`**Description:** ${skill.description}`);
228
- lines.push(`**Source:** ${skill.source}`);
229
- lines.push(`**Path:** \`${skill.path}\``);
299
+ lines.push(`Status: ${skill.isActive ? "\u{1F7E2} Active" : "\u26AA Inactive"}`);
300
+ lines.push(`Description: ${skill.description}`);
301
+ lines.push(`Source: ${getSkillSourceLabel(skill.source)}`);
302
+ lines.push(`Path: ${skill.path}`);
230
303
  if (skill.license) {
231
- lines.push(`**License:** ${skill.license}`);
304
+ lines.push(`License: ${skill.license}`);
232
305
  }
233
306
  if (skill.compatibility) {
234
- lines.push(`**Compatibility:** ${skill.compatibility}`);
307
+ lines.push(`Compatibility: ${skill.compatibility}`);
235
308
  }
236
309
  if (skill["allowed-tools"]) {
237
- lines.push(`**Allowed Tools:** ${skill["allowed-tools"]}`);
310
+ lines.push(`Allowed Tools: ${skill["allowed-tools"]}`);
311
+ }
312
+ lines.push("");
313
+ if (skill.isActive) {
314
+ lines.push(`Recommended Prompt: ${generateSkillSuggestion(skill.name, skill.description)}`);
315
+ lines.push(`Deactivate: /skills deactivate ${skill.name}`);
316
+ } else {
317
+ lines.push(`Activate: /skills use ${skill.name}`);
238
318
  }
239
319
  if (skill.metadata && Object.keys(skill.metadata).length > 0) {
240
320
  lines.push("");
241
- lines.push("**Metadata:**");
321
+ lines.push("Metadata:");
242
322
  for (const [key, value] of Object.entries(skill.metadata)) {
243
- lines.push(`- ${key}: ${value}`);
323
+ lines.push(` - ${key}: ${value}`);
244
324
  }
245
325
  }
246
326
  lines.push("");
247
- lines.push("**Content Preview:**");
248
- lines.push("```");
327
+ lines.push("Content Preview:");
249
328
  const bodyPreview = skill.body.length > 500 ? skill.body.slice(0, 500) + "\n... (truncated)" : skill.body;
250
- lines.push(bodyPreview || "(no body content)");
251
- lines.push("```");
329
+ for (const line of (bodyPreview || "(no body content)").split("\n")) {
330
+ lines.push(` ${line}`);
331
+ }
252
332
  lines.push("");
253
- lines.push("{{action:\u2190 Back to Skills|/skills}}");
333
+ lines.push("Back: /skills");
254
334
  return lines.join("\n");
255
335
  }
256
336
  async function handleSkillsInstall(ctx, skillName) {
@@ -258,7 +338,7 @@ async function handleSkillsInstall(ctx, skillName) {
258
338
  if (!workspaceRoot) {
259
339
  return "Workspace root not available.";
260
340
  }
261
- const { skillsInstall } = await import("./skills-install-6CSWC24P.js");
341
+ const { skillsInstall } = await import("./skills-install-QBA5RCV6.js");
262
342
  const result = await skillsInstall(
263
343
  {
264
344
  skillsRegistry,
@@ -292,10 +372,10 @@ async function handleSkillsSearch(ctx, query) {
292
372
  label: `${s.name} - ${s.description}`,
293
373
  value: s.id
294
374
  }));
295
- const selected = await showModal({
375
+ const selected = await withModalPause(ctx, () => showModal({
296
376
  title: t("commands.learn.selectPrompt"),
297
377
  options
298
- });
378
+ }));
299
379
  if (!selected) {
300
380
  return t("commands.learn.noResults", { query });
301
381
  }
@@ -331,7 +411,7 @@ async function handleSkillsTrending() {
331
411
  const featured = skill.isFeatured ? chalk.yellow(" [featured]") : "";
332
412
  const downloads = skill.downloadCount ? chalk.gray(` (${skill.downloadCount} installs)`) : "";
333
413
  lines.push(`${idx} ${name}${featured}${downloads}`);
334
- lines.push(` ${skill.description}`);
414
+ lines.push(` ${skill.description}`);
335
415
  lines.push(` {{action:Install|/skills install @${skill.author ?? "community"}/${skill.id}}}`);
336
416
  lines.push("");
337
417
  }
@@ -349,10 +429,10 @@ async function handleSkillsRemove(ctx, slug) {
349
429
  return t("commands.learn.removeNotFound", { name: slug });
350
430
  }
351
431
  if (!ctx.isNonInteractive) {
352
- const confirmed = await showConfirm({
432
+ const confirmed = await withModalPause(ctx, () => showConfirm({
353
433
  title: t("commands.learn.confirmRemove", { name: target.name }),
354
434
  defaultValue: false
355
- });
435
+ }));
356
436
  if (!confirmed) return null;
357
437
  }
358
438
  const skillDir = path.dirname(target.path);
@@ -389,7 +469,8 @@ var metadata = {
389
469
  { name: "search", description: "Search community skills" },
390
470
  { name: "trending", description: "Show trending community skills" },
391
471
  { name: "remove", description: "Remove an installed skill" },
392
- { name: "info", description: "Show detailed skill info" }
472
+ { name: "info", description: "Show detailed skill info" },
473
+ { name: "new", description: "Create a new project skill" }
393
474
  ]
394
475
  };
395
476
  var useMetadata = {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  safePrompt
3
- } from "./chunk-6ZCULLCA.js";
3
+ } from "./chunk-62RTC3XX.js";
4
4
  import {
5
5
  AUTOHAND_PATHS
6
- } from "./chunk-EGFT4PGW.js";
6
+ } from "./chunk-TWQDAUZU.js";
7
7
 
8
8
  // src/commands/agents-new.ts
9
9
  import path from "path";
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
3
+ var _chunkCH2J4PVEcjs = require('./chunk-CH2J4PVE.cjs');
4
4
 
5
5
  // src/commands/completion.ts
6
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -311,7 +311,7 @@ async function execute(args) {
311
311
  { label: "Zsh", value: "zsh" },
312
312
  { label: "Fish", value: "fish" }
313
313
  ];
314
- const shellResult = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
314
+ const shellResult = await _chunkCH2J4PVEcjs.showModal.call(void 0, {
315
315
  title: "Select your shell:",
316
316
  options: shellOptions,
317
317
  initialIndex: shellOptions.findIndex((o) => o.value === (detected || "bash"))
@@ -327,7 +327,7 @@ async function execute(args) {
327
327
  { label: "Install completion to default location", value: "install" },
328
328
  { label: "Show installation instructions", value: "instructions" }
329
329
  ];
330
- const actionResult = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
330
+ const actionResult = await _chunkCH2J4PVEcjs.showModal.call(void 0, {
331
331
  title: "What would you like to do?",
332
332
  options: actionOptions
333
333
  });
@@ -1,17 +1,80 @@
1
1
  import {
2
2
  showModal
3
- } from "./chunk-YZXUDM5X.js";
3
+ } from "./chunk-DLP436GI.js";
4
4
  import {
5
5
  AUTOHAND_PATHS
6
- } from "./chunk-EGFT4PGW.js";
6
+ } from "./chunk-TWQDAUZU.js";
7
7
  import {
8
8
  t
9
- } from "./chunk-APIXPPMT.js";
9
+ } from "./chunk-CBFH2J3O.js";
10
10
 
11
11
  // src/commands/resume.ts
12
12
  import chalk from "chalk";
13
13
  import fs from "fs-extra";
14
14
  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
15
78
  var metadata = {
16
79
  command: "/resume",
17
80
  description: t("commands.resume.description"),
@@ -66,7 +129,7 @@ function getTimeAgo(date) {
66
129
  async function resume(ctx) {
67
130
  const sessionId = ctx.args[0];
68
131
  if (sessionId) {
69
- return resumeSession(ctx.sessionManager, sessionId);
132
+ return resumeSession(ctx.sessionManager, sessionId, ctx.restoreSession);
70
133
  }
71
134
  try {
72
135
  const projectFilter = ctx.workspaceRoot ? { project: ctx.workspaceRoot } : void 0;
@@ -105,10 +168,17 @@ ${t("commands.sessions.selectPrompt")}
105
168
  value: choice.name,
106
169
  description: choice.hint
107
170
  }));
108
- const result = await showModal({
109
- title: "Choose a session",
110
- options
111
- });
171
+ await ctx.onBeforeModal?.();
172
+ const result = await (async () => {
173
+ try {
174
+ return await showModal({
175
+ title: "Choose a session",
176
+ options
177
+ });
178
+ } finally {
179
+ await ctx.onAfterModal?.();
180
+ }
181
+ })();
112
182
  if (!result) {
113
183
  console.log(chalk.gray("\nResume cancelled."));
114
184
  return null;
@@ -117,13 +187,13 @@ ${t("commands.sessions.selectPrompt")}
117
187
  console.log(chalk.gray("\nUse /sessions to see all sessions, then /resume <id>"));
118
188
  return null;
119
189
  }
120
- return resumeSession(ctx.sessionManager, result.value);
190
+ return resumeSession(ctx.sessionManager, result.value, ctx.restoreSession);
121
191
  } catch (error) {
122
192
  console.error(chalk.red(t("commands.resume.failed", { error: error.message })));
123
193
  return null;
124
194
  }
125
195
  }
126
- async function resumeSession(sessionManager, sessionId) {
196
+ async function resumeSession(sessionManager, sessionId, restoreSession) {
127
197
  try {
128
198
  const session = await sessionManager.loadSession(sessionId);
129
199
  const messages = session.getMessages();
@@ -138,17 +208,15 @@ ${t("commands.resume.resuming", { id: title })}`));
138
208
  if (messages.length > 0) {
139
209
  console.log(chalk.cyan("Recent conversation:"));
140
210
  console.log(chalk.gray("\u2500".repeat(60)));
141
- const recentMessages = messages.slice(-5);
211
+ const recentMessages = buildSessionChatLog(messages).slice(-5);
142
212
  for (const msg of recentMessages) {
143
- const role = msg.role === "user" ? chalk.green("You") : msg.role === "assistant" ? chalk.blue("Assistant") : chalk.gray(msg.role);
144
- if (msg.role === "tool") continue;
145
- const preview = msg.content.replace(/\n/g, " ").replace(/\s+/g, " ").slice(0, 100);
146
- const truncated = msg.content.length > 100 ? "..." : "";
147
- console.log(`${role}: ${chalk.white(preview)}${truncated}`);
213
+ const role = msg.role === "user" ? chalk.green("You") : chalk.blue("Assistant");
214
+ console.log(`${role}: ${chalk.white(formatChatLogPreview(msg.content))}`);
148
215
  }
149
216
  console.log(chalk.gray("\u2500".repeat(60)));
150
217
  console.log();
151
218
  }
219
+ await restoreSession?.(sessionId);
152
220
  console.log(chalk.green("Session resumed. Continue typing to chat.\n"));
153
221
  return null;
154
222
  } catch (error) {
@@ -158,9 +226,15 @@ ${t("commands.resume.resuming", { id: title })}`));
158
226
  }
159
227
 
160
228
  export {
229
+ buildSessionChatLog,
161
230
  metadata,
162
231
  resume
163
232
  };
233
+ /**
234
+ * @license
235
+ * Copyright 2026 Autohand AI LLC
236
+ * SPDX-License-Identifier: Apache-2.0
237
+ */
164
238
  /**
165
239
  * @license
166
240
  * Copyright 2025 Autohand AI LLC
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
3
+ var _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
4
4
 
5
5
  // src/commands/init.ts
6
6
  async function init(ctx) {
@@ -9,7 +9,7 @@ async function init(ctx) {
9
9
  }
10
10
  var metadata = {
11
11
  command: "/init",
12
- description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.init.description"),
12
+ description: _chunkCHI52KFRcjs.t.call(void 0, "commands.init.description"),
13
13
  implemented: true
14
14
  };
15
15