@caspian2026/agent-sdk 0.0.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 (371) hide show
  1. package/dist/chunk-018smjq7.js +26 -0
  2. package/dist/chunk-055q0a2m.js +146 -0
  3. package/dist/chunk-07069jq1.js +30 -0
  4. package/dist/chunk-0731m51q.js +8 -0
  5. package/dist/chunk-0awwmrwr.js +46 -0
  6. package/dist/chunk-0htx82k2.js +64 -0
  7. package/dist/chunk-0jmt5sx1.js +104 -0
  8. package/dist/chunk-0kj8bq80.js +252 -0
  9. package/dist/chunk-0kxcq8h9.js +86 -0
  10. package/dist/chunk-0paqc2yw.js +15 -0
  11. package/dist/chunk-0vkfrmqm.js +690 -0
  12. package/dist/chunk-0xjaqda8.js +1124 -0
  13. package/dist/chunk-10qhq6f8.js +458 -0
  14. package/dist/chunk-15m49c67.js +121 -0
  15. package/dist/chunk-15sfg4bs.js +65 -0
  16. package/dist/chunk-162ewhvy.js +869 -0
  17. package/dist/chunk-177s15bv.js +120 -0
  18. package/dist/chunk-19e603rv.js +284 -0
  19. package/dist/chunk-1ax1znzj.js +537 -0
  20. package/dist/chunk-1c4j7qn2.js +319 -0
  21. package/dist/chunk-1gx78081.js +66 -0
  22. package/dist/chunk-1h2famwb.js +49 -0
  23. package/dist/chunk-1nk93fqz.js +357 -0
  24. package/dist/chunk-1xct96nd.js +2520 -0
  25. package/dist/chunk-1xvcvdef.js +90 -0
  26. package/dist/chunk-1yrcnrs7.js +261 -0
  27. package/dist/chunk-21bcvwr7.js +660 -0
  28. package/dist/chunk-2352ts05.js +667 -0
  29. package/dist/chunk-23jzrwsw.js +43 -0
  30. package/dist/chunk-26hg7303.js +62 -0
  31. package/dist/chunk-2f21meep.js +122 -0
  32. package/dist/chunk-2fwze72g.js +24 -0
  33. package/dist/chunk-2gzv8nrw.js +205 -0
  34. package/dist/chunk-2h05vtpv.js +83 -0
  35. package/dist/chunk-2h0y6m16.js +465 -0
  36. package/dist/chunk-2n7bbxm6.js +168 -0
  37. package/dist/chunk-2nv3d0he.js +108 -0
  38. package/dist/chunk-2vqrdwx9.js +1811 -0
  39. package/dist/chunk-3389cj3w.js +120 -0
  40. package/dist/chunk-35sgv3er.js +231 -0
  41. package/dist/chunk-3c25bcsw.js +17 -0
  42. package/dist/chunk-3e20cj49.js +443 -0
  43. package/dist/chunk-3mr5ryx4.js +122 -0
  44. package/dist/chunk-3nk79af8.js +8 -0
  45. package/dist/chunk-3qbdzsvm.js +120 -0
  46. package/dist/chunk-3yprydpw.js +213 -0
  47. package/dist/chunk-430yrtmk.js +492 -0
  48. package/dist/chunk-46hd1gyd.js +140 -0
  49. package/dist/chunk-46hdszda.js +63 -0
  50. package/dist/chunk-46n7byh8.js +102 -0
  51. package/dist/chunk-4cp6193g.js +9076 -0
  52. package/dist/chunk-4dn3n459.js +409 -0
  53. package/dist/chunk-4hv90qcz.js +8 -0
  54. package/dist/chunk-4jm600zv.js +13 -0
  55. package/dist/chunk-4nspekjp.js +69 -0
  56. package/dist/chunk-505mxxa9.js +19 -0
  57. package/dist/chunk-50bay5qy.js +224 -0
  58. package/dist/chunk-537qfvn5.js +345 -0
  59. package/dist/chunk-55raexh7.js +14358 -0
  60. package/dist/chunk-572vjq78.js +56 -0
  61. package/dist/chunk-5apfzkpy.js +87 -0
  62. package/dist/chunk-5ccdsxgy.js +74 -0
  63. package/dist/chunk-5dmhsqap.js +32 -0
  64. package/dist/chunk-5fs6nkjr.js +98 -0
  65. package/dist/chunk-5nchekqe.js +87 -0
  66. package/dist/chunk-5pp28k2r.js +120 -0
  67. package/dist/chunk-5rt4b8q9.js +116 -0
  68. package/dist/chunk-5rv9c8yd.js +1072 -0
  69. package/dist/chunk-5z28bqne.js +6748 -0
  70. package/dist/chunk-64c1avct.js +13 -0
  71. package/dist/chunk-66zry909.js +11 -0
  72. package/dist/chunk-682qgta2.js +102 -0
  73. package/dist/chunk-68ffk5qa.js +14 -0
  74. package/dist/chunk-68w91pzt.js +79 -0
  75. package/dist/chunk-69fgaak0.js +654 -0
  76. package/dist/chunk-69n11zng.js +436 -0
  77. package/dist/chunk-6dj5t602.js +341 -0
  78. package/dist/chunk-6gh20s05.js +146 -0
  79. package/dist/chunk-6maej1hh.js +502 -0
  80. package/dist/chunk-6nsd9606.js +790 -0
  81. package/dist/chunk-6p4cyhb3.js +16 -0
  82. package/dist/chunk-6t4a9cgj.js +877 -0
  83. package/dist/chunk-6t8yqfks.js +227 -0
  84. package/dist/chunk-6vthy0fj.js +213 -0
  85. package/dist/chunk-70cw4cg9.js +1026 -0
  86. package/dist/chunk-70eey1nh.js +164 -0
  87. package/dist/chunk-76j2e9vy.js +68 -0
  88. package/dist/chunk-7acgdm7x.js +93 -0
  89. package/dist/chunk-7aw745vx.js +40175 -0
  90. package/dist/chunk-7gvwg1v9.js +122 -0
  91. package/dist/chunk-7h2ybnf3.js +636 -0
  92. package/dist/chunk-7kcm5hn2.js +155 -0
  93. package/dist/chunk-7m2hp89m.js +73 -0
  94. package/dist/chunk-7mqab3z7.js +31 -0
  95. package/dist/chunk-7sgtxrsc.js +1059 -0
  96. package/dist/chunk-7wm5s02e.js +216 -0
  97. package/dist/chunk-7xyswgjh.js +8 -0
  98. package/dist/chunk-7yxvpj5j.js +1452 -0
  99. package/dist/chunk-80a8vabn.js +93 -0
  100. package/dist/chunk-83e71kz6.js +180 -0
  101. package/dist/chunk-83hfzbx3.js +10 -0
  102. package/dist/chunk-8g5pe1gr.js +37 -0
  103. package/dist/chunk-8g747a8x.js +26 -0
  104. package/dist/chunk-8hj8ms5q.js +111 -0
  105. package/dist/chunk-8mkwsdk1.js +61 -0
  106. package/dist/chunk-8n42zyfx.js +40 -0
  107. package/dist/chunk-8qhxyqj9.js +1155 -0
  108. package/dist/chunk-8y30k9pz.js +38 -0
  109. package/dist/chunk-960ze3jj.js +124 -0
  110. package/dist/chunk-97wgdsab.js +35 -0
  111. package/dist/chunk-9grztvcg.js +93 -0
  112. package/dist/chunk-9x5zgy22.js +12 -0
  113. package/dist/chunk-a8792r1c.js +620 -0
  114. package/dist/chunk-ahr1r7c6.js +4275 -0
  115. package/dist/chunk-ase86y73.js +15 -0
  116. package/dist/chunk-b0kf00ff.js +637 -0
  117. package/dist/chunk-b0qptb1k.js +640 -0
  118. package/dist/chunk-b1kcd3ss.js +27 -0
  119. package/dist/chunk-b2fd462a.js +54 -0
  120. package/dist/chunk-bdrjvs5k.js +157 -0
  121. package/dist/chunk-beg7bdyz.js +90 -0
  122. package/dist/chunk-bg4x9ex0.js +21 -0
  123. package/dist/chunk-bktfq0ns.js +95 -0
  124. package/dist/chunk-bmbq6nt1.js +145 -0
  125. package/dist/chunk-bvf2z3g6.js +1003 -0
  126. package/dist/chunk-bxcfz5gy.js +56 -0
  127. package/dist/chunk-c11swzas.js +5368 -0
  128. package/dist/chunk-c37j5zxe.js +57 -0
  129. package/dist/chunk-c5mz5vw2.js +117 -0
  130. package/dist/chunk-c6sjhj89.js +1284 -0
  131. package/dist/chunk-c7jwbe76.js +29030 -0
  132. package/dist/chunk-cc2tg4q8.js +311 -0
  133. package/dist/chunk-cdhmrbj4.js +6353 -0
  134. package/dist/chunk-cdz5yb0r.js +57 -0
  135. package/dist/chunk-cfv996bs.js +22 -0
  136. package/dist/chunk-cgfdkzhb.js +12 -0
  137. package/dist/chunk-chakj069.js +310 -0
  138. package/dist/chunk-chsyvavm.js +3435 -0
  139. package/dist/chunk-cnsj3vq2.js +35 -0
  140. package/dist/chunk-ctdg0qxh.js +1386 -0
  141. package/dist/chunk-cxq7gc42.js +386 -0
  142. package/dist/chunk-d1pyf9as.js +8586 -0
  143. package/dist/chunk-d4kwjqjy.js +308 -0
  144. package/dist/chunk-d4mdda98.js +94 -0
  145. package/dist/chunk-d7886r6a.js +13870 -0
  146. package/dist/chunk-d7f1pzkq.js +95 -0
  147. package/dist/chunk-ddsjkqs4.js +39 -0
  148. package/dist/chunk-dm3n2qgd.js +24 -0
  149. package/dist/chunk-e2mv8ts8.js +115 -0
  150. package/dist/chunk-e4bhfc6d.js +2720 -0
  151. package/dist/chunk-e4p1jbs4.js +58 -0
  152. package/dist/chunk-e7h4qxgw.js +21 -0
  153. package/dist/chunk-e8p3fy6v.js +202 -0
  154. package/dist/chunk-e97mp86b.js +111 -0
  155. package/dist/chunk-ebqwkhyf.js +145 -0
  156. package/dist/chunk-eenq3avg.js +69 -0
  157. package/dist/chunk-efgjfast.js +61 -0
  158. package/dist/chunk-ehtwnxpg.js +1591 -0
  159. package/dist/chunk-en8wkxh7.js +173 -0
  160. package/dist/chunk-enkdxqas.js +33 -0
  161. package/dist/chunk-eqp1rfft.js +17 -0
  162. package/dist/chunk-ercvcek8.js +266 -0
  163. package/dist/chunk-etgh9xvt.js +369 -0
  164. package/dist/chunk-ev3qkf76.js +106 -0
  165. package/dist/chunk-evp5pb9x.js +3567 -0
  166. package/dist/chunk-ewadzrm8.js +103 -0
  167. package/dist/chunk-exah13mz.js +94 -0
  168. package/dist/chunk-f0rzvqmq.js +87 -0
  169. package/dist/chunk-f1m9pect.js +258 -0
  170. package/dist/chunk-fajg8x36.js +8158 -0
  171. package/dist/chunk-fbv4apne.js +51 -0
  172. package/dist/chunk-fbvw6wq9.js +116 -0
  173. package/dist/chunk-feyzykye.js +10 -0
  174. package/dist/chunk-fn1vvj8k.js +894 -0
  175. package/dist/chunk-fshfxw2q.js +183 -0
  176. package/dist/chunk-fyc5fepv.js +10 -0
  177. package/dist/chunk-g9f19ttm.js +15 -0
  178. package/dist/chunk-gcpfxk0c.js +644 -0
  179. package/dist/chunk-gdg6411p.js +106 -0
  180. package/dist/chunk-gkyzz8er.js +849 -0
  181. package/dist/chunk-gxahdggv.js +71 -0
  182. package/dist/chunk-h6fsks9j.js +220 -0
  183. package/dist/chunk-h9n54swm.js +27 -0
  184. package/dist/chunk-hakdhagh.js +16606 -0
  185. package/dist/chunk-hchy0hq6.js +159 -0
  186. package/dist/chunk-hh3k5s1s.js +180 -0
  187. package/dist/chunk-hqqkj5pg.js +202 -0
  188. package/dist/chunk-htpehq9t.js +251 -0
  189. package/dist/chunk-hwfknpxv.js +39 -0
  190. package/dist/chunk-hwn8vetn.js +394 -0
  191. package/dist/chunk-hx3j6n92.js +178 -0
  192. package/dist/chunk-hyb749hd.js +194 -0
  193. package/dist/chunk-hzgnejb1.js +90 -0
  194. package/dist/chunk-hzknr99c.js +477 -0
  195. package/dist/chunk-j3zhb8vv.js +152 -0
  196. package/dist/chunk-j5bth84e.js +97 -0
  197. package/dist/chunk-j64ga6ta.js +8035 -0
  198. package/dist/chunk-jaaxk89e.js +113 -0
  199. package/dist/chunk-jd32zbps.js +15 -0
  200. package/dist/chunk-jfja8q7w.js +91 -0
  201. package/dist/chunk-jgjqa49s.js +27 -0
  202. package/dist/chunk-jgpmpgx6.js +19 -0
  203. package/dist/chunk-jgwd85hp.js +91 -0
  204. package/dist/chunk-jk69qtzx.js +277 -0
  205. package/dist/chunk-jr1xm1dd.js +147 -0
  206. package/dist/chunk-jss0azv7.js +2337 -0
  207. package/dist/chunk-jxpmkae9.js +108 -0
  208. package/dist/chunk-jy9rxxqe.js +102 -0
  209. package/dist/chunk-jyw3np47.js +264 -0
  210. package/dist/chunk-jzthz1bx.js +15 -0
  211. package/dist/chunk-k0p9w03v.js +4957 -0
  212. package/dist/chunk-k2rybwww.js +92 -0
  213. package/dist/chunk-k3939ggz.js +168 -0
  214. package/dist/chunk-k591cwbg.js +345 -0
  215. package/dist/chunk-k5ez1h65.js +108 -0
  216. package/dist/chunk-k8vp0atq.js +2331 -0
  217. package/dist/chunk-kajf3jgq.js +694 -0
  218. package/dist/chunk-kbm69rtz.js +276 -0
  219. package/dist/chunk-kjh11txh.js +419 -0
  220. package/dist/chunk-kqggbte3.js +326 -0
  221. package/dist/chunk-kr6qfwq0.js +95 -0
  222. package/dist/chunk-kvfg8eeg.js +150 -0
  223. package/dist/chunk-kwekc97v.js +18 -0
  224. package/dist/chunk-m1cehfta.js +861 -0
  225. package/dist/chunk-m87bhhqv.js +61 -0
  226. package/dist/chunk-mg7pbk0r.js +151 -0
  227. package/dist/chunk-mpbfkp8j.js +418 -0
  228. package/dist/chunk-mpk1sjyk.js +117 -0
  229. package/dist/chunk-msecaxyj.js +74 -0
  230. package/dist/chunk-mswx2nma.js +103 -0
  231. package/dist/chunk-mw1kpeg9.js +6895 -0
  232. package/dist/chunk-mxr2s6d1.js +89 -0
  233. package/dist/chunk-my40g5hp.js +560 -0
  234. package/dist/chunk-n0kmh4ra.js +338 -0
  235. package/dist/chunk-n18q5yqs.js +397 -0
  236. package/dist/chunk-n7pnyq43.js +131 -0
  237. package/dist/chunk-naybw0p0.js +32 -0
  238. package/dist/chunk-nb6abcch.js +83 -0
  239. package/dist/chunk-ne5r3k03.js +350 -0
  240. package/dist/chunk-nebezy1d.js +997 -0
  241. package/dist/chunk-netzwgv1.js +154 -0
  242. package/dist/chunk-nhapyawz.js +32994 -0
  243. package/dist/chunk-npnvheft.js +156 -0
  244. package/dist/chunk-nrtksr2p.js +51 -0
  245. package/dist/chunk-nw9t5pq9.js +132 -0
  246. package/dist/chunk-nxgsnh2y.js +735 -0
  247. package/dist/chunk-p11xp4xp.js +266 -0
  248. package/dist/chunk-p1hwrf72.js +74 -0
  249. package/dist/chunk-p1zj9mg9.js +567 -0
  250. package/dist/chunk-p39a677r.js +115 -0
  251. package/dist/chunk-p7vkh4wx.js +15 -0
  252. package/dist/chunk-p8na2wwp.js +14 -0
  253. package/dist/chunk-pcb7fbyg.js +259 -0
  254. package/dist/chunk-pckwmrzd.js +409 -0
  255. package/dist/chunk-ped973jn.js +111 -0
  256. package/dist/chunk-phd1qfpc.js +5971 -0
  257. package/dist/chunk-pkkngdv0.js +524 -0
  258. package/dist/chunk-ppwjyveh.js +8 -0
  259. package/dist/chunk-pqvr8jq7.js +324 -0
  260. package/dist/chunk-prcah3ys.js +106 -0
  261. package/dist/chunk-ps49ymvj.js +43 -0
  262. package/dist/chunk-pwwa7s62.js +11 -0
  263. package/dist/chunk-pxdzy0jh.js +134 -0
  264. package/dist/chunk-q3jr5t07.js +62 -0
  265. package/dist/chunk-q6cfkntd.js +675 -0
  266. package/dist/chunk-q6m26rc8.js +88 -0
  267. package/dist/chunk-q6xs51jj.js +332 -0
  268. package/dist/chunk-q7jnesv8.js +74 -0
  269. package/dist/chunk-q7zpf4r2.js +440 -0
  270. package/dist/chunk-q8c88vjm.js +24 -0
  271. package/dist/chunk-qajrkk97.js +298 -0
  272. package/dist/chunk-qatfdxvd.js +34 -0
  273. package/dist/chunk-qb6k2afy.js +153 -0
  274. package/dist/chunk-qfk94vcn.js +329 -0
  275. package/dist/chunk-qj2e1apf.js +471 -0
  276. package/dist/chunk-qj2mk79w.js +111 -0
  277. package/dist/chunk-qk7dfae6.js +267 -0
  278. package/dist/chunk-qnfx3qtx.js +617 -0
  279. package/dist/chunk-qp2qdcda.js +100 -0
  280. package/dist/chunk-qq0phwn8.js +458 -0
  281. package/dist/chunk-qwqjesx7.js +258 -0
  282. package/dist/chunk-qygmcg7w.js +60 -0
  283. package/dist/chunk-qz2x630m.js +49145 -0
  284. package/dist/chunk-qzj4e8fn.js +357 -0
  285. package/dist/chunk-ratvcbmn.js +255 -0
  286. package/dist/chunk-rkg741k3.js +37 -0
  287. package/dist/chunk-rn0v1hk8.js +34 -0
  288. package/dist/chunk-rsq0h0rz.js +91 -0
  289. package/dist/chunk-rvnb2gn6.js +1053 -0
  290. package/dist/chunk-rx278zpa.js +75 -0
  291. package/dist/chunk-s3hsqf80.js +473 -0
  292. package/dist/chunk-s4cb0bcb.js +655 -0
  293. package/dist/chunk-s8kj6ajy.js +32 -0
  294. package/dist/chunk-sd36yzx8.js +954 -0
  295. package/dist/chunk-sfcpjh4r.js +98 -0
  296. package/dist/chunk-spybh2dy.js +175 -0
  297. package/dist/chunk-sw9ax3ym.js +92 -0
  298. package/dist/chunk-szj5wvdy.js +28 -0
  299. package/dist/chunk-t29a6zb5.js +45 -0
  300. package/dist/chunk-t9p85zff.js +24 -0
  301. package/dist/chunk-tc1aazk4.js +131 -0
  302. package/dist/chunk-tdbz9gbm.js +1030 -0
  303. package/dist/chunk-tjcfpk38.js +208 -0
  304. package/dist/chunk-tp2jxmcx.js +8427 -0
  305. package/dist/chunk-tqmtkm0k.js +92 -0
  306. package/dist/chunk-tvgvt220.js +22820 -0
  307. package/dist/chunk-v0qraze5.js +291 -0
  308. package/dist/chunk-v1kzp02e.js +785 -0
  309. package/dist/chunk-v78fj8by.js +145 -0
  310. package/dist/chunk-v8g3kad0.js +101 -0
  311. package/dist/chunk-v9smspw2.js +4301 -0
  312. package/dist/chunk-vawgyev5.js +157 -0
  313. package/dist/chunk-vb3x3cxe.js +375 -0
  314. package/dist/chunk-vf612n57.js +472 -0
  315. package/dist/chunk-vjn8mbcw.js +198 -0
  316. package/dist/chunk-vmbfv1y5.js +295 -0
  317. package/dist/chunk-vrf54kmt.js +321 -0
  318. package/dist/chunk-vyjeh50y.js +2149 -0
  319. package/dist/chunk-vzgkedm9.js +159745 -0
  320. package/dist/chunk-w004kfw0.js +245 -0
  321. package/dist/chunk-w0yhbmxn.js +132 -0
  322. package/dist/chunk-w4yn8cq7.js +123 -0
  323. package/dist/chunk-waqwgprq.js +1164 -0
  324. package/dist/chunk-wayfjcwt.js +447 -0
  325. package/dist/chunk-wby6yd4m.js +91 -0
  326. package/dist/chunk-wha6v7za.js +705 -0
  327. package/dist/chunk-wjcq2vkf.js +641 -0
  328. package/dist/chunk-wtjt9qyk.js +2670 -0
  329. package/dist/chunk-x2pvw7xw.js +42 -0
  330. package/dist/chunk-x6r4v44b.js +8 -0
  331. package/dist/chunk-x8d2ehd7.js +19 -0
  332. package/dist/chunk-xd6kmmb1.js +95 -0
  333. package/dist/chunk-xp61y5ba.js +125 -0
  334. package/dist/chunk-xv3era3s.js +8 -0
  335. package/dist/chunk-xxw9a0bq.js +58 -0
  336. package/dist/chunk-xzhaa7gd.js +112 -0
  337. package/dist/chunk-y1784krc.js +19 -0
  338. package/dist/chunk-y4ca9kqz.js +3830 -0
  339. package/dist/chunk-yff68ex1.js +113 -0
  340. package/dist/chunk-yg4vgpxs.js +436 -0
  341. package/dist/chunk-yk62vxj2.js +2964 -0
  342. package/dist/chunk-ym5r3jnk.js +2007 -0
  343. package/dist/chunk-ysanv95x.js +225 -0
  344. package/dist/chunk-yvtzznds.js +63 -0
  345. package/dist/chunk-yyex5gsf.js +269 -0
  346. package/dist/chunk-yyf72f78.js +456 -0
  347. package/dist/chunk-z19sd3bt.js +1648 -0
  348. package/dist/chunk-z2dp53wn.js +17 -0
  349. package/dist/chunk-z9n0183s.js +39 -0
  350. package/dist/chunk-zb8f6h5g.js +9174 -0
  351. package/dist/chunk-zctfbr1v.js +594 -0
  352. package/dist/chunk-zesnmkg3.js +2840 -0
  353. package/dist/chunk-zf47r1b7.js +94 -0
  354. package/dist/chunk-zghtdbat.js +253 -0
  355. package/dist/chunk-zpmwvd09.js +275 -0
  356. package/dist/chunk-zqncgyf6.js +127 -0
  357. package/dist/chunk-zr6mz36s.js +281 -0
  358. package/dist/chunk-zshzdw1n.js +141 -0
  359. package/dist/chunk-zx5kw7z4.js +40 -0
  360. package/dist/chunk-zzm33q8x.js +8 -0
  361. package/dist/cli.js +91 -0
  362. package/dist/download-ripgrep.js +24821 -0
  363. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  364. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  365. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  366. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  367. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  368. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  369. package/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
  370. package/package.json +122 -0
  371. package/scripts/postinstall.cjs +319 -0
@@ -0,0 +1,675 @@
1
+ // @bun
2
+ import {
3
+ disableAllPlugins,
4
+ disablePlugin,
5
+ enablePlugin,
6
+ installPlugin,
7
+ uninstallPlugin,
8
+ updatePluginCli
9
+ } from "./chunk-hqqkj5pg.js";
10
+ import {
11
+ cliError,
12
+ cliOk
13
+ } from "./chunk-z2dp53wn.js";
14
+ import {
15
+ getInstallCounts,
16
+ init_installCounts,
17
+ init_parseMarketplaceInput,
18
+ init_validatePlugin,
19
+ parseMarketplaceInput,
20
+ validateManifest,
21
+ validatePluginContents
22
+ } from "./chunk-gkyzz8er.js";
23
+ import {
24
+ VALID_INSTALLABLE_SCOPES,
25
+ VALID_UPDATE_SCOPES
26
+ } from "./chunk-gcpfxk0c.js";
27
+ import"./chunk-tjcfpk38.js";
28
+ import {
29
+ addMarketplaceSource,
30
+ clearAllCaches,
31
+ createPluginId,
32
+ getPluginErrorMessage,
33
+ init_cacheUtils,
34
+ init_installedPluginsManager,
35
+ init_marketplaceHelpers,
36
+ init_marketplaceManager,
37
+ init_mcpPluginIntegration,
38
+ init_plugin,
39
+ init_pluginIdentifier,
40
+ init_pluginLoader,
41
+ isPluginInstalled,
42
+ loadAllPlugins,
43
+ loadInstalledPluginsV2,
44
+ loadKnownMarketplacesConfig,
45
+ loadMarketplacesWithGracefulDegradation,
46
+ loadPluginMcpServers,
47
+ parsePluginIdentifier,
48
+ refreshAllMarketplaces,
49
+ refreshMarketplace,
50
+ removeMarketplaceSource,
51
+ saveMarketplaceToSettings,
52
+ scopeToSettingSource
53
+ } from "./chunk-vzgkedm9.js";
54
+ import"./chunk-46hdszda.js";
55
+ import"./chunk-hwfknpxv.js";
56
+ import"./chunk-4nspekjp.js";
57
+ import"./chunk-jzthz1bx.js";
58
+ import"./chunk-1gx78081.js";
59
+ import"./chunk-2gzv8nrw.js";
60
+ import"./chunk-ehtwnxpg.js";
61
+ import"./chunk-68w91pzt.js";
62
+ import"./chunk-s4cb0bcb.js";
63
+ import"./chunk-cgfdkzhb.js";
64
+ import"./chunk-bxcfz5gy.js";
65
+ import"./chunk-nebezy1d.js";
66
+ import"./chunk-wayfjcwt.js";
67
+ import"./chunk-kbm69rtz.js";
68
+ import"./chunk-j5bth84e.js";
69
+ import"./chunk-nxgsnh2y.js";
70
+ import"./chunk-68ffk5qa.js";
71
+ import"./chunk-ps49ymvj.js";
72
+ import"./chunk-bmbq6nt1.js";
73
+ import"./chunk-15sfg4bs.js";
74
+ import"./chunk-p7vkh4wx.js";
75
+ import"./chunk-b0qptb1k.js";
76
+ import"./chunk-m87bhhqv.js";
77
+ import"./chunk-j3zhb8vv.js";
78
+ import"./chunk-b2fd462a.js";
79
+ import"./chunk-c11swzas.js";
80
+ import"./chunk-chsyvavm.js";
81
+ import"./chunk-5rv9c8yd.js";
82
+ import {
83
+ init_stringUtils,
84
+ plural
85
+ } from "./chunk-tp2jxmcx.js";
86
+ import"./chunk-z19sd3bt.js";
87
+ import"./chunk-1ax1znzj.js";
88
+ import"./chunk-wha6v7za.js";
89
+ import"./chunk-6nsd9606.js";
90
+ import"./chunk-xp61y5ba.js";
91
+ import"./chunk-64c1avct.js";
92
+ import"./chunk-8g5pe1gr.js";
93
+ import"./chunk-4cp6193g.js";
94
+ import"./chunk-8g747a8x.js";
95
+ import"./chunk-d7886r6a.js";
96
+ import"./chunk-yvtzznds.js";
97
+ import"./chunk-4jm600zv.js";
98
+ import"./chunk-qz2x630m.js";
99
+ import"./chunk-2f21meep.js";
100
+ import"./chunk-nrtksr2p.js";
101
+ import"./chunk-3c25bcsw.js";
102
+ import"./chunk-s3hsqf80.js";
103
+ import"./chunk-yyf72f78.js";
104
+ import"./chunk-cdz5yb0r.js";
105
+ import"./chunk-c7jwbe76.js";
106
+ import"./chunk-0vkfrmqm.js";
107
+ import"./chunk-7sgtxrsc.js";
108
+ import"./chunk-0xjaqda8.js";
109
+ import {
110
+ init_analytics,
111
+ logEvent
112
+ } from "./chunk-x8d2ehd7.js";
113
+ import"./chunk-15m49c67.js";
114
+ import"./chunk-tdbz9gbm.js";
115
+ import"./chunk-0awwmrwr.js";
116
+ import"./chunk-qnfx3qtx.js";
117
+ import"./chunk-70eey1nh.js";
118
+ import {
119
+ init_log,
120
+ logError
121
+ } from "./chunk-1nk93fqz.js";
122
+ import"./chunk-s8kj6ajy.js";
123
+ import"./chunk-eenq3avg.js";
124
+ import"./chunk-7mqab3z7.js";
125
+ import"./chunk-5z28bqne.js";
126
+ import {
127
+ figures_default,
128
+ init_figures
129
+ } from "./chunk-qajrkk97.js";
130
+ import {
131
+ errorMessage,
132
+ init_errors,
133
+ init_slowOperations,
134
+ jsonStringify
135
+ } from "./chunk-phd1qfpc.js";
136
+ import"./chunk-fbv4apne.js";
137
+ import"./chunk-jaaxk89e.js";
138
+ import {
139
+ init_state,
140
+ setUseCoworkPlugins
141
+ } from "./chunk-k8vp0atq.js";
142
+ import"./chunk-vf612n57.js";
143
+ import"./chunk-07069jq1.js";
144
+ import"./chunk-d4mdda98.js";
145
+ import"./chunk-55raexh7.js";
146
+ import"./chunk-v9smspw2.js";
147
+ import"./chunk-v1kzp02e.js";
148
+ import"./chunk-7wm5s02e.js";
149
+ import"./chunk-b0kf00ff.js";
150
+ import"./chunk-netzwgv1.js";
151
+ import {
152
+ __require
153
+ } from "./chunk-qp2qdcda.js";
154
+
155
+ // src/cli/handlers/plugins.ts
156
+ init_figures();
157
+ init_state();
158
+ init_analytics();
159
+ import { basename, dirname } from "path";
160
+ init_plugin();
161
+ init_errors();
162
+ init_log();
163
+ init_cacheUtils();
164
+ init_installCounts();
165
+ init_installedPluginsManager();
166
+ init_marketplaceHelpers();
167
+ init_marketplaceManager();
168
+ init_mcpPluginIntegration();
169
+ init_parseMarketplaceInput();
170
+ init_pluginIdentifier();
171
+ init_pluginLoader();
172
+ init_validatePlugin();
173
+ init_slowOperations();
174
+ init_stringUtils();
175
+ function handleMarketplaceError(error, action) {
176
+ logError(error);
177
+ cliError(`${figures_default.cross} Failed to ${action}: ${errorMessage(error)}`);
178
+ }
179
+ function printValidationResult(result) {
180
+ if (result.errors.length > 0) {
181
+ console.log(`${figures_default.cross} Found ${result.errors.length} ${plural(result.errors.length, "error")}:
182
+ `);
183
+ result.errors.forEach((error) => {
184
+ console.log(` ${figures_default.pointer} ${error.path}: ${error.message}`);
185
+ });
186
+ console.log("");
187
+ }
188
+ if (result.warnings.length > 0) {
189
+ console.log(`${figures_default.warning} Found ${result.warnings.length} ${plural(result.warnings.length, "warning")}:
190
+ `);
191
+ result.warnings.forEach((warning) => {
192
+ console.log(` ${figures_default.pointer} ${warning.path}: ${warning.message}`);
193
+ });
194
+ console.log("");
195
+ }
196
+ }
197
+ async function pluginValidateHandler(manifestPath, options) {
198
+ if (options.cowork)
199
+ setUseCoworkPlugins(true);
200
+ try {
201
+ const result = await validateManifest(manifestPath);
202
+ console.log(`Validating ${result.fileType} manifest: ${result.filePath}
203
+ `);
204
+ printValidationResult(result);
205
+ let contentResults = [];
206
+ if (result.fileType === "plugin") {
207
+ const manifestDir = dirname(result.filePath);
208
+ if (basename(manifestDir) === ".claude-plugin") {
209
+ contentResults = await validatePluginContents(dirname(manifestDir));
210
+ for (const r of contentResults) {
211
+ console.log(`Validating ${r.fileType}: ${r.filePath}
212
+ `);
213
+ printValidationResult(r);
214
+ }
215
+ }
216
+ }
217
+ const allSuccess = result.success && contentResults.every((r) => r.success);
218
+ const hasWarnings = result.warnings.length > 0 || contentResults.some((r) => r.warnings.length > 0);
219
+ if (allSuccess) {
220
+ cliOk(hasWarnings ? `${figures_default.tick} Validation passed with warnings` : `${figures_default.tick} Validation passed`);
221
+ } else {
222
+ console.log(`${figures_default.cross} Validation failed`);
223
+ process.exit(1);
224
+ }
225
+ } catch (error) {
226
+ logError(error);
227
+ console.error(`${figures_default.cross} Unexpected error during validation: ${errorMessage(error)}`);
228
+ process.exit(2);
229
+ }
230
+ }
231
+ async function pluginListHandler(options) {
232
+ if (options.cowork)
233
+ setUseCoworkPlugins(true);
234
+ logEvent("tengu_plugin_list_command", {});
235
+ const installedData = loadInstalledPluginsV2();
236
+ const { getPluginEditableScopes } = await import("./chunk-v8g3kad0.js");
237
+ const enabledPlugins = getPluginEditableScopes();
238
+ const pluginIds = Object.keys(installedData.plugins);
239
+ const {
240
+ enabled: loadedEnabled,
241
+ disabled: loadedDisabled,
242
+ errors: loadErrors
243
+ } = await loadAllPlugins();
244
+ const allLoadedPlugins = [...loadedEnabled, ...loadedDisabled];
245
+ const inlinePlugins = allLoadedPlugins.filter((p) => p.source.endsWith("@inline"));
246
+ const inlineLoadErrors = loadErrors.filter((e) => e.source.endsWith("@inline") || e.source.startsWith("inline["));
247
+ if (options.json) {
248
+ const loadedPluginMap = new Map(allLoadedPlugins.map((p) => [p.source, p]));
249
+ const plugins = [];
250
+ for (const pluginId of pluginIds.sort()) {
251
+ const installations = installedData.plugins[pluginId];
252
+ if (!installations || installations.length === 0)
253
+ continue;
254
+ const pluginName = parsePluginIdentifier(pluginId).name;
255
+ const pluginErrors = loadErrors.filter((e) => e.source === pluginId || ("plugin" in e) && e.plugin === pluginName).map(getPluginErrorMessage);
256
+ for (const installation of installations) {
257
+ const loadedPlugin = loadedPluginMap.get(pluginId);
258
+ let mcpServers;
259
+ if (loadedPlugin) {
260
+ const servers = loadedPlugin.mcpServers || await loadPluginMcpServers(loadedPlugin);
261
+ if (servers && Object.keys(servers).length > 0) {
262
+ mcpServers = servers;
263
+ }
264
+ }
265
+ plugins.push({
266
+ id: pluginId,
267
+ version: installation.version || "unknown",
268
+ scope: installation.scope,
269
+ enabled: enabledPlugins.has(pluginId),
270
+ installPath: installation.installPath,
271
+ installedAt: installation.installedAt,
272
+ lastUpdated: installation.lastUpdated,
273
+ projectPath: installation.projectPath,
274
+ mcpServers,
275
+ errors: pluginErrors.length > 0 ? pluginErrors : undefined
276
+ });
277
+ }
278
+ }
279
+ for (const p of inlinePlugins) {
280
+ const servers = p.mcpServers || await loadPluginMcpServers(p);
281
+ const pErrors = inlineLoadErrors.filter((e) => e.source === p.source || ("plugin" in e) && e.plugin === p.name).map(getPluginErrorMessage);
282
+ plugins.push({
283
+ id: p.source,
284
+ version: p.manifest.version ?? "unknown",
285
+ scope: "session",
286
+ enabled: p.enabled !== false,
287
+ installPath: p.path,
288
+ mcpServers: servers && Object.keys(servers).length > 0 ? servers : undefined,
289
+ errors: pErrors.length > 0 ? pErrors : undefined
290
+ });
291
+ }
292
+ for (const e of inlineLoadErrors.filter((e2) => e2.source.startsWith("inline["))) {
293
+ plugins.push({
294
+ id: e.source,
295
+ version: "unknown",
296
+ scope: "session",
297
+ enabled: false,
298
+ installPath: "path" in e ? e.path : "",
299
+ errors: [getPluginErrorMessage(e)]
300
+ });
301
+ }
302
+ if (options.available) {
303
+ const available = [];
304
+ try {
305
+ const [config, installCounts] = await Promise.all([
306
+ loadKnownMarketplacesConfig(),
307
+ getInstallCounts()
308
+ ]);
309
+ const { marketplaces } = await loadMarketplacesWithGracefulDegradation(config);
310
+ for (const {
311
+ name: marketplaceName,
312
+ data: marketplace
313
+ } of marketplaces) {
314
+ if (marketplace) {
315
+ for (const entry of marketplace.plugins) {
316
+ const pluginId = createPluginId(entry.name, marketplaceName);
317
+ if (!isPluginInstalled(pluginId)) {
318
+ available.push({
319
+ pluginId,
320
+ name: entry.name,
321
+ description: entry.description,
322
+ marketplaceName,
323
+ version: entry.version,
324
+ source: entry.source,
325
+ installCount: installCounts?.get(pluginId)
326
+ });
327
+ }
328
+ }
329
+ }
330
+ }
331
+ } catch {}
332
+ cliOk(jsonStringify({ installed: plugins, available }, null, 2));
333
+ } else {
334
+ cliOk(jsonStringify(plugins, null, 2));
335
+ }
336
+ }
337
+ if (pluginIds.length === 0 && inlinePlugins.length === 0) {
338
+ if (inlineLoadErrors.length === 0) {
339
+ cliOk("No plugins installed. Use `claude plugin install` to install a plugin.");
340
+ }
341
+ }
342
+ if (pluginIds.length > 0) {
343
+ console.log(`Installed plugins:
344
+ `);
345
+ }
346
+ for (const pluginId of pluginIds.sort()) {
347
+ const installations = installedData.plugins[pluginId];
348
+ if (!installations || installations.length === 0)
349
+ continue;
350
+ const pluginName = parsePluginIdentifier(pluginId).name;
351
+ const pluginErrors = loadErrors.filter((e) => e.source === pluginId || ("plugin" in e) && e.plugin === pluginName);
352
+ for (const installation of installations) {
353
+ const isEnabled = enabledPlugins.has(pluginId);
354
+ const status = pluginErrors.length > 0 ? `${figures_default.cross} failed to load` : isEnabled ? `${figures_default.tick} enabled` : `${figures_default.cross} disabled`;
355
+ const version = installation.version || "unknown";
356
+ const scope = installation.scope;
357
+ console.log(` ${figures_default.pointer} ${pluginId}`);
358
+ console.log(` Version: ${version}`);
359
+ console.log(` Scope: ${scope}`);
360
+ console.log(` Status: ${status}`);
361
+ for (const error of pluginErrors) {
362
+ console.log(` Error: ${getPluginErrorMessage(error)}`);
363
+ }
364
+ console.log("");
365
+ }
366
+ }
367
+ if (inlinePlugins.length > 0 || inlineLoadErrors.length > 0) {
368
+ console.log(`Session-only plugins (--plugin-dir):
369
+ `);
370
+ for (const p of inlinePlugins) {
371
+ const pErrors = inlineLoadErrors.filter((e) => e.source === p.source || ("plugin" in e) && e.plugin === p.name);
372
+ const status = pErrors.length > 0 ? `${figures_default.cross} loaded with errors` : `${figures_default.tick} loaded`;
373
+ console.log(` ${figures_default.pointer} ${p.source}`);
374
+ console.log(` Version: ${p.manifest.version ?? "unknown"}`);
375
+ console.log(` Path: ${p.path}`);
376
+ console.log(` Status: ${status}`);
377
+ for (const e of pErrors) {
378
+ console.log(` Error: ${getPluginErrorMessage(e)}`);
379
+ }
380
+ console.log("");
381
+ }
382
+ for (const e of inlineLoadErrors.filter((e2) => e2.source.startsWith("inline["))) {
383
+ console.log(` ${figures_default.pointer} ${e.source}: ${figures_default.cross} ${getPluginErrorMessage(e)}
384
+ `);
385
+ }
386
+ }
387
+ cliOk();
388
+ }
389
+ async function marketplaceAddHandler(source, options) {
390
+ if (options.cowork)
391
+ setUseCoworkPlugins(true);
392
+ try {
393
+ const parsed = await parseMarketplaceInput(source);
394
+ if (!parsed) {
395
+ cliError(`${figures_default.cross} Invalid marketplace source format. Try: owner/repo, https://..., or ./path`);
396
+ }
397
+ if ("error" in parsed) {
398
+ cliError(`${figures_default.cross} ${parsed.error}`);
399
+ }
400
+ const scope = options.scope ?? "user";
401
+ if (scope !== "user" && scope !== "project" && scope !== "local") {
402
+ cliError(`${figures_default.cross} Invalid scope '${scope}'. Use: user, project, or local`);
403
+ }
404
+ const settingSource = scopeToSettingSource(scope);
405
+ let marketplaceSource = parsed;
406
+ if (options.sparse && options.sparse.length > 0) {
407
+ if (marketplaceSource.source === "github" || marketplaceSource.source === "git") {
408
+ marketplaceSource = {
409
+ ...marketplaceSource,
410
+ sparsePaths: options.sparse
411
+ };
412
+ } else {
413
+ cliError(`${figures_default.cross} --sparse is only supported for github and git marketplace sources (got: ${marketplaceSource.source})`);
414
+ }
415
+ }
416
+ console.log("Adding marketplace...");
417
+ const { name, alreadyMaterialized, resolvedSource } = await addMarketplaceSource(marketplaceSource, (message) => {
418
+ console.log(message);
419
+ });
420
+ saveMarketplaceToSettings(name, { source: resolvedSource }, settingSource);
421
+ clearAllCaches();
422
+ let sourceType = marketplaceSource.source;
423
+ if (marketplaceSource.source === "github") {
424
+ sourceType = marketplaceSource.repo;
425
+ }
426
+ logEvent("tengu_marketplace_added", {
427
+ source_type: sourceType
428
+ });
429
+ cliOk(alreadyMaterialized ? `${figures_default.tick} Marketplace '${name}' already on disk \u2014 declared in ${scope} settings` : `${figures_default.tick} Successfully added marketplace: ${name} (declared in ${scope} settings)`);
430
+ } catch (error) {
431
+ handleMarketplaceError(error, "add marketplace");
432
+ }
433
+ }
434
+ async function marketplaceListHandler(options) {
435
+ if (options.cowork)
436
+ setUseCoworkPlugins(true);
437
+ try {
438
+ const config = await loadKnownMarketplacesConfig();
439
+ const names = Object.keys(config);
440
+ if (options.json) {
441
+ const marketplaces = names.sort().map((name) => {
442
+ const marketplace = config[name];
443
+ const source = marketplace?.source;
444
+ return {
445
+ name,
446
+ source: source?.source,
447
+ ...source?.source === "github" && { repo: source.repo },
448
+ ...source?.source === "git" && { url: source.url },
449
+ ...source?.source === "url" && { url: source.url },
450
+ ...source?.source === "directory" && { path: source.path },
451
+ ...source?.source === "file" && { path: source.path },
452
+ installLocation: marketplace?.installLocation
453
+ };
454
+ });
455
+ cliOk(jsonStringify(marketplaces, null, 2));
456
+ }
457
+ if (names.length === 0) {
458
+ cliOk("No marketplaces configured");
459
+ }
460
+ console.log(`Configured marketplaces:
461
+ `);
462
+ names.forEach((name) => {
463
+ const marketplace = config[name];
464
+ console.log(` ${figures_default.pointer} ${name}`);
465
+ if (marketplace?.source) {
466
+ const src = marketplace.source;
467
+ if (src.source === "github") {
468
+ console.log(` Source: GitHub (${src.repo})`);
469
+ } else if (src.source === "git") {
470
+ console.log(` Source: Git (${src.url})`);
471
+ } else if (src.source === "url") {
472
+ console.log(` Source: URL (${src.url})`);
473
+ } else if (src.source === "directory") {
474
+ console.log(` Source: Directory (${src.path})`);
475
+ } else if (src.source === "file") {
476
+ console.log(` Source: File (${src.path})`);
477
+ }
478
+ }
479
+ console.log("");
480
+ });
481
+ cliOk();
482
+ } catch (error) {
483
+ handleMarketplaceError(error, "list marketplaces");
484
+ }
485
+ }
486
+ async function marketplaceRemoveHandler(name, options) {
487
+ if (options.cowork)
488
+ setUseCoworkPlugins(true);
489
+ try {
490
+ await removeMarketplaceSource(name);
491
+ clearAllCaches();
492
+ logEvent("tengu_marketplace_removed", {
493
+ marketplace_name: name
494
+ });
495
+ cliOk(`${figures_default.tick} Successfully removed marketplace: ${name}`);
496
+ } catch (error) {
497
+ handleMarketplaceError(error, "remove marketplace");
498
+ }
499
+ }
500
+ async function marketplaceUpdateHandler(name, options) {
501
+ if (options.cowork)
502
+ setUseCoworkPlugins(true);
503
+ try {
504
+ if (name) {
505
+ console.log(`Updating marketplace: ${name}...`);
506
+ await refreshMarketplace(name, (message) => {
507
+ console.log(message);
508
+ });
509
+ clearAllCaches();
510
+ logEvent("tengu_marketplace_updated", {
511
+ marketplace_name: name
512
+ });
513
+ cliOk(`${figures_default.tick} Successfully updated marketplace: ${name}`);
514
+ } else {
515
+ const config = await loadKnownMarketplacesConfig();
516
+ const marketplaceNames = Object.keys(config);
517
+ if (marketplaceNames.length === 0) {
518
+ cliOk("No marketplaces configured");
519
+ }
520
+ console.log(`Updating ${marketplaceNames.length} marketplace(s)...`);
521
+ await refreshAllMarketplaces();
522
+ clearAllCaches();
523
+ logEvent("tengu_marketplace_updated_all", {
524
+ count: marketplaceNames.length
525
+ });
526
+ cliOk(`${figures_default.tick} Successfully updated ${marketplaceNames.length} marketplace(s)`);
527
+ }
528
+ } catch (error) {
529
+ handleMarketplaceError(error, "update marketplace(s)");
530
+ }
531
+ }
532
+ async function pluginInstallHandler(plugin, options) {
533
+ if (options.cowork)
534
+ setUseCoworkPlugins(true);
535
+ const scope = options.scope || "user";
536
+ if (options.cowork && scope !== "user") {
537
+ cliError("--cowork can only be used with user scope");
538
+ }
539
+ if (!VALID_INSTALLABLE_SCOPES.includes(scope)) {
540
+ cliError(`Invalid scope: ${scope}. Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}.`);
541
+ }
542
+ const { name, marketplace } = parsePluginIdentifier(plugin);
543
+ logEvent("tengu_plugin_install_command", {
544
+ _PROTO_plugin_name: name,
545
+ ...marketplace && {
546
+ _PROTO_marketplace_name: marketplace
547
+ },
548
+ scope
549
+ });
550
+ await installPlugin(plugin, scope);
551
+ }
552
+ async function pluginUninstallHandler(plugin, options) {
553
+ if (options.cowork)
554
+ setUseCoworkPlugins(true);
555
+ const scope = options.scope || "user";
556
+ if (options.cowork && scope !== "user") {
557
+ cliError("--cowork can only be used with user scope");
558
+ }
559
+ if (!VALID_INSTALLABLE_SCOPES.includes(scope)) {
560
+ cliError(`Invalid scope: ${scope}. Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}.`);
561
+ }
562
+ const { name, marketplace } = parsePluginIdentifier(plugin);
563
+ logEvent("tengu_plugin_uninstall_command", {
564
+ _PROTO_plugin_name: name,
565
+ ...marketplace && {
566
+ _PROTO_marketplace_name: marketplace
567
+ },
568
+ scope
569
+ });
570
+ await uninstallPlugin(plugin, scope, options.keepData);
571
+ }
572
+ async function pluginEnableHandler(plugin, options) {
573
+ if (options.cowork)
574
+ setUseCoworkPlugins(true);
575
+ let scope;
576
+ if (options.scope) {
577
+ if (!VALID_INSTALLABLE_SCOPES.includes(options.scope)) {
578
+ cliError(`Invalid scope "${options.scope}". Valid scopes: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);
579
+ }
580
+ scope = options.scope;
581
+ }
582
+ if (options.cowork && scope !== undefined && scope !== "user") {
583
+ cliError("--cowork can only be used with user scope");
584
+ }
585
+ if (options.cowork && scope === undefined) {
586
+ scope = "user";
587
+ }
588
+ const { name, marketplace } = parsePluginIdentifier(plugin);
589
+ logEvent("tengu_plugin_enable_command", {
590
+ _PROTO_plugin_name: name,
591
+ ...marketplace && {
592
+ _PROTO_marketplace_name: marketplace
593
+ },
594
+ scope: scope ?? "auto"
595
+ });
596
+ await enablePlugin(plugin, scope);
597
+ }
598
+ async function pluginDisableHandler(plugin, options) {
599
+ if (options.all && plugin) {
600
+ cliError("Cannot use --all with a specific plugin");
601
+ }
602
+ if (!options.all && !plugin) {
603
+ cliError("Please specify a plugin name or use --all to disable all plugins");
604
+ }
605
+ if (options.cowork)
606
+ setUseCoworkPlugins(true);
607
+ if (options.all) {
608
+ if (options.scope) {
609
+ cliError("Cannot use --scope with --all");
610
+ }
611
+ logEvent("tengu_plugin_disable_command", {});
612
+ await disableAllPlugins();
613
+ return;
614
+ }
615
+ let scope;
616
+ if (options.scope) {
617
+ if (!VALID_INSTALLABLE_SCOPES.includes(options.scope)) {
618
+ cliError(`Invalid scope "${options.scope}". Valid scopes: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);
619
+ }
620
+ scope = options.scope;
621
+ }
622
+ if (options.cowork && scope !== undefined && scope !== "user") {
623
+ cliError("--cowork can only be used with user scope");
624
+ }
625
+ if (options.cowork && scope === undefined) {
626
+ scope = "user";
627
+ }
628
+ const { name, marketplace } = parsePluginIdentifier(plugin);
629
+ logEvent("tengu_plugin_disable_command", {
630
+ _PROTO_plugin_name: name,
631
+ ...marketplace && {
632
+ _PROTO_marketplace_name: marketplace
633
+ },
634
+ scope: scope ?? "auto"
635
+ });
636
+ await disablePlugin(plugin, scope);
637
+ }
638
+ async function pluginUpdateHandler(plugin, options) {
639
+ if (options.cowork)
640
+ setUseCoworkPlugins(true);
641
+ const { name, marketplace } = parsePluginIdentifier(plugin);
642
+ logEvent("tengu_plugin_update_command", {
643
+ _PROTO_plugin_name: name,
644
+ ...marketplace && {
645
+ _PROTO_marketplace_name: marketplace
646
+ }
647
+ });
648
+ let scope = "user";
649
+ if (options.scope) {
650
+ if (!VALID_UPDATE_SCOPES.includes(options.scope)) {
651
+ cliError(`Invalid scope "${options.scope}". Valid scopes: ${VALID_UPDATE_SCOPES.join(", ")}`);
652
+ }
653
+ scope = options.scope;
654
+ }
655
+ if (options.cowork && scope !== "user") {
656
+ cliError("--cowork can only be used with user scope");
657
+ }
658
+ await updatePluginCli(plugin, scope);
659
+ }
660
+ export {
661
+ pluginValidateHandler,
662
+ pluginUpdateHandler,
663
+ pluginUninstallHandler,
664
+ pluginListHandler,
665
+ pluginInstallHandler,
666
+ pluginEnableHandler,
667
+ pluginDisableHandler,
668
+ marketplaceUpdateHandler,
669
+ marketplaceRemoveHandler,
670
+ marketplaceListHandler,
671
+ marketplaceAddHandler,
672
+ handleMarketplaceError,
673
+ VALID_UPDATE_SCOPES,
674
+ VALID_INSTALLABLE_SCOPES
675
+ };