@unieai/code 0.0.10 → 0.0.11

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 (485) hide show
  1. package/README.en.md +6 -59
  2. package/README.md +5 -59
  3. package/dist/chunks/App-s5ex5j86.js +2 -0
  4. package/dist/chunks/ApproveApiKey-b4z6h2gn.js +2 -0
  5. package/dist/chunks/{assistant-yvtpv5sv.js → AssistantSessionChooser-g1vsya6h.js} +1 -1
  6. package/dist/chunks/BypassPermissionsModeDialog-jbg97eja.js +2 -0
  7. package/dist/chunks/ClaudeInChromeOnboarding-qa0pvwfw.js +2 -0
  8. package/dist/chunks/ClaudeMdExternalIncludesDialog-gqmed78y.js +2 -0
  9. package/dist/chunks/ConsoleOAuthFlow-yh72vs8j.js +2 -0
  10. package/dist/chunks/{DiffDialog-v8smgzpd.js → DiffDialog-t6vvtbb2.js} +1 -1
  11. package/dist/chunks/Doctor-k08ggw2j.js +2 -0
  12. package/dist/chunks/Grove-tkkskg8n.js +2 -0
  13. package/dist/chunks/ITermBackend-73waaahf.js +2 -0
  14. package/dist/chunks/{InProcessTransport-57c2w5v4.js → InProcessTransport-qwjgb17j.js} +1 -1
  15. package/dist/chunks/InvalidConfigDialog-zmqw3fj1.js +2 -0
  16. package/dist/chunks/InvalidSettingsDialog-tnd5hymg.js +2 -0
  17. package/dist/chunks/Onboarding-p0tq6pgz.js +2 -0
  18. package/dist/chunks/REPL-hjjz80kq.js +2 -0
  19. package/dist/chunks/ResumeConversation-krn9hqb1.js +2 -0
  20. package/dist/chunks/{SnapshotUpdateDialog-5yvfnp0q.js → SnapshotUpdateDialog-raq029pd.js} +1 -1
  21. package/dist/chunks/TeleportProgress-vyy2k3bv.js +2 -0
  22. package/dist/chunks/TeleportRepoMismatchDialog-ff0h2cnq.js +2 -0
  23. package/dist/chunks/TeleportResumeWrapper-esjykret.js +2 -0
  24. package/dist/chunks/{TmuxBackend-j665sv6f.js → TmuxBackend-14kmnkcb.js} +1 -1
  25. package/dist/chunks/ToolSearchTool-w4t61c7d.js +2 -0
  26. package/dist/chunks/TrustDialog-7fvaze2x.js +2 -0
  27. package/dist/chunks/TungstenTool-rv96z549.js +2 -0
  28. package/dist/chunks/add-dir-kqw72mky.js +2 -0
  29. package/dist/chunks/agents-3exybgtb.js +4 -0
  30. package/dist/chunks/{agents-e7x38q37.js → agents-z66twpqr.js} +1 -1
  31. package/dist/chunks/ant-claude-for-chrome-mcp-712xg07f.js +2 -0
  32. package/dist/chunks/api-z8svc3xt.js +2 -0
  33. package/dist/chunks/asciicast-vzd7qjbb.js +2 -0
  34. package/dist/chunks/{AssistantSessionChooser-0r5zamt1.js → assistant-ftzr3mjp.js} +1 -1
  35. package/dist/chunks/auth-gbyfq0g2.js +2 -0
  36. package/dist/chunks/auth-wk077awh.js +2 -0
  37. package/dist/chunks/backgroundHousekeeping-m8gthtkh.js +2 -0
  38. package/dist/chunks/branch-1d0b8590.js +5 -0
  39. package/dist/chunks/{bridgePointer-9q6wh2ct.js → bridgePointer-vhd47np6.js} +1 -1
  40. package/dist/chunks/btw-s3r5jhyd.js +2 -0
  41. package/dist/chunks/buddy-xzm5npk8.js +2 -0
  42. package/dist/chunks/{cachedMicrocompact-thnhx1zt.js → cachedMicrocompact-6j3zxr4g.js} +1 -1
  43. package/dist/chunks/caches-fbggdeq7.js +2 -0
  44. package/dist/chunks/chrome-mdyx0s5j.js +2 -0
  45. package/dist/chunks/{chromeNativeHost-nnjkj164.js → chromeNativeHost-8wc6wcr6.js} +1 -1
  46. package/dist/chunks/{claudeDesktop-nsangyk5.js → claudeDesktop-p5bfxmvz.js} +1 -1
  47. package/dist/chunks/{cleanup-mv462dsh.js → cleanup-q46nbce1.js} +1 -1
  48. package/dist/chunks/clear-fwad6zxy.js +2 -0
  49. package/dist/chunks/{cli-sbp2221d.js → cli-0dc8sd37.js} +2 -2
  50. package/dist/chunks/{cli-3xhqacdd.js → cli-0qt9btbe.js} +2 -2
  51. package/dist/chunks/{cli-4j5yyvek.js → cli-0w4wc1z0.js} +2 -2
  52. package/dist/chunks/{cli-r6hm1q63.js → cli-15sqp3mq.js} +2 -2
  53. package/dist/chunks/{cli-45ftgn85.js → cli-15w3eaed.js} +1 -1
  54. package/dist/chunks/{cli-b7wx1479.js → cli-19ncan36.js} +1 -1
  55. package/dist/chunks/{cli-hx28w3cq.js → cli-1jp3rm7n.js} +1 -1
  56. package/dist/chunks/{cli-90b87f45.js → cli-1n8he7s8.js} +2 -2
  57. package/dist/chunks/{cli-bthzmdgv.js → cli-1ny2386w.js} +2 -2
  58. package/dist/chunks/{cli-vq899n8p.js → cli-27mzrnr8.js} +1 -1
  59. package/dist/chunks/{cli-gnjff7md.js → cli-2rw44zfx.js} +2 -2
  60. package/dist/chunks/{cli-7gpep1x5.js → cli-2rwjx3w0.js} +1 -1
  61. package/dist/chunks/{cli-jqppy97b.js → cli-2wd8eaac.js} +2 -2
  62. package/dist/chunks/{cli-3hwpymrd.js → cli-350pymj4.js} +2 -2
  63. package/dist/chunks/{cli-w754xmyv.js → cli-3ac555qw.js} +2 -2
  64. package/dist/chunks/{cli-8kyjh67j.js → cli-3gwqrmcd.js} +1 -1
  65. package/dist/chunks/{cli-msr9n6da.js → cli-3m8n808e.js} +2 -2
  66. package/dist/chunks/{cli-ptv3h2tx.js → cli-42kma5r3.js} +1 -1
  67. package/dist/chunks/{cli-r9p0g894.js → cli-49m97nbg.js} +2 -2
  68. package/dist/chunks/{cli-bkxwwj81.js → cli-4a4bb1kf.js} +1 -1
  69. package/dist/chunks/{cli-3bxtq5dc.js → cli-4ewb3q42.js} +2 -2
  70. package/dist/chunks/{cli-v3mf1g0z.js → cli-4mvvtchx.js} +2 -2
  71. package/dist/chunks/{cli-r2p5bkx5.js → cli-4nejhkd0.js} +2 -2
  72. package/dist/chunks/{cli-dx46fn1w.js → cli-51720d82.js} +2 -2
  73. package/dist/chunks/cli-55jdp9ky.js +3 -0
  74. package/dist/chunks/{cli-6vwdnz9p.js → cli-55ntywtj.js} +1 -1
  75. package/dist/chunks/{cli-pz8vxqw0.js → cli-57yrpnaq.js} +2 -2
  76. package/dist/chunks/{cli-59ysj9y4.js → cli-5dt9yjha.js} +2 -2
  77. package/dist/chunks/{cli-e37w9dxm.js → cli-5f0w3fy6.js} +1 -1
  78. package/dist/chunks/{cli-z9jm4xjn.js → cli-5vsnhp97.js} +2 -2
  79. package/dist/chunks/{cli-x758qvv7.js → cli-61x73ksv.js} +1 -1
  80. package/dist/chunks/{cli-ye3qk73s.js → cli-66jj9zj3.js} +1 -1
  81. package/dist/chunks/{cli-zac1afnb.js → cli-6bxfdgv1.js} +1 -1
  82. package/dist/chunks/{cli-md1h6sbv.js → cli-6pdpyz1a.js} +1 -1
  83. package/dist/chunks/{cli-mejr8b5m.js → cli-6yprtw88.js} +2 -2
  84. package/dist/chunks/{cli-qs0v3mf6.js → cli-73jf8hyz.js} +2 -2
  85. package/dist/chunks/{cli-948we41z.js → cli-749tdaqc.js} +2 -2
  86. package/dist/chunks/{cli-vxxkrd5y.js → cli-764c4bsm.js} +2 -2
  87. package/dist/chunks/cli-78apjp3t.js +3 -0
  88. package/dist/chunks/{cli-k0jpcxwa.js → cli-7c99j0pt.js} +2 -2
  89. package/dist/chunks/{cli-by5b2216.js → cli-89x414pj.js} +2 -2
  90. package/dist/chunks/{cli-fqb71hy3.js → cli-8dmy2s42.js} +1 -1
  91. package/dist/chunks/cli-8hxz2qs6.js +3 -0
  92. package/dist/chunks/cli-8mk2zg4a.js +4 -0
  93. package/dist/chunks/{cli-29gcax34.js → cli-8qd16mt4.js} +2 -2
  94. package/dist/chunks/cli-95wg48h9.js +3 -0
  95. package/dist/chunks/{cli-wz9r5s81.js → cli-99mqr54v.js} +2 -2
  96. package/dist/chunks/{cli-8qk46mt3.js → cli-9aq7vxaq.js} +1 -1
  97. package/dist/chunks/{cli-zcpjf07m.js → cli-9z9r2set.js} +2 -2
  98. package/dist/chunks/{cli-2wvsym16.js → cli-a52ra30v.js} +1 -1
  99. package/dist/chunks/{cli-s6qk3rbv.js → cli-akcxtvv9.js} +2 -2
  100. package/dist/chunks/{cli-h3kcprht.js → cli-bmk0rb5v.js} +2 -2
  101. package/dist/chunks/{cli-pmzht94n.js → cli-br6zjh6x.js} +2 -2
  102. package/dist/chunks/{cli-z8hqtyjg.js → cli-c22wpdk4.js} +1 -1
  103. package/dist/chunks/{cli-zbt28krs.js → cli-c60c9qvm.js} +1 -1
  104. package/dist/chunks/{cli-3357rxva.js → cli-cqkne34j.js} +2 -2
  105. package/dist/chunks/{cli-0s65jzgr.js → cli-cwbxhdt1.js} +1 -1
  106. package/dist/chunks/{cli-xsap3gxj.js → cli-d0hzw78c.js} +1 -1
  107. package/dist/chunks/{cli-0b4dmvvw.js → cli-d53fhs6v.js} +2 -2
  108. package/dist/chunks/{cli-extf4h54.js → cli-dbdqrqmt.js} +1 -1
  109. package/dist/chunks/{cli-yf3sh3aw.js → cli-de1hwp88.js} +1 -1
  110. package/dist/chunks/cli-edkqs0ge.js +3 -0
  111. package/dist/chunks/{cli-dsnjsvqs.js → cli-er7z496e.js} +2 -2
  112. package/dist/chunks/{cli-atpfeg28.js → cli-eyw3czmn.js} +2 -2
  113. package/dist/chunks/{cli-tyxvdf66.js → cli-ezs5sney.js} +2 -2
  114. package/dist/chunks/{cli-tn47e131.js → cli-f63fdj4w.js} +2 -2
  115. package/dist/chunks/cli-fakdskp6.js +3 -0
  116. package/dist/chunks/{cli-nj726gac.js → cli-fdya77ch.js} +3 -3
  117. package/dist/chunks/{cli-b1dptek2.js → cli-fghyxar5.js} +2 -2
  118. package/dist/chunks/{cli-g1spmn9n.js → cli-fm14mg07.js} +1 -1
  119. package/dist/chunks/{cli-cr1hvkmz.js → cli-fs7yttfp.js} +2 -2
  120. package/dist/chunks/{cli-rcvta3zk.js → cli-fwrj8ybs.js} +2 -2
  121. package/dist/chunks/{cli-v77avvvk.js → cli-g4n9das2.js} +1 -1
  122. package/dist/chunks/{cli-cbdrqqf2.js → cli-g5wq5ptg.js} +2 -2
  123. package/dist/chunks/{cli-yrk194b9.js → cli-gq5fve62.js} +1 -1
  124. package/dist/chunks/{cli-nykt265k.js → cli-grxvgq2n.js} +1 -1
  125. package/dist/chunks/{cli-ffjjv4j8.js → cli-gtm212j6.js} +2 -2
  126. package/dist/chunks/{cli-skq9ktf8.js → cli-gxgdnjfn.js} +1 -1
  127. package/dist/chunks/{cli-x5z5m6y7.js → cli-h120wpk2.js} +1 -1
  128. package/dist/chunks/{cli-58t6a5n6.js → cli-h4a90xbh.js} +1 -1
  129. package/dist/chunks/cli-h4dspaac.js +3 -0
  130. package/dist/chunks/{cli-a98b285v.js → cli-hke6r0q8.js} +2 -2
  131. package/dist/chunks/{cli-jxwm52wg.js → cli-hzr2zraz.js} +1 -1
  132. package/dist/chunks/{cli-x4a9geyz.js → cli-j08dmxw5.js} +1 -1
  133. package/dist/chunks/{cli-jvs98a70.js → cli-ja540nr7.js} +1 -1
  134. package/dist/chunks/{cli-dr1ph0pp.js → cli-jegyadmb.js} +2 -2
  135. package/dist/chunks/{cli-xjx11p6m.js → cli-jgn9jprh.js} +2 -2
  136. package/dist/chunks/{cli-n3m134cf.js → cli-jj93qmmc.js} +2 -2
  137. package/dist/chunks/{cli-kje3t5yg.js → cli-jkj867t1.js} +3 -3
  138. package/dist/chunks/{cli-6he3kpeb.js → cli-k2nh5cby.js} +2 -2
  139. package/dist/chunks/{cli-3je4vtx7.js → cli-k4v08k8t.js} +2 -2
  140. package/dist/chunks/{cli-c2pn6csk.js → cli-khs3sj9k.js} +1 -1
  141. package/dist/chunks/{cli-shz2e0q5.js → cli-kq16afrr.js} +2 -2
  142. package/dist/chunks/{cli-2zh6c5xz.js → cli-kqv5b8zh.js} +1 -1
  143. package/dist/chunks/{cli-k8fd74g6.js → cli-m0z3rmf0.js} +2 -2
  144. package/dist/chunks/{cli-a72n4ej7.js → cli-m12smc5e.js} +1 -1
  145. package/dist/chunks/{cli-15zbq52w.js → cli-m8fq163z.js} +1 -1
  146. package/dist/chunks/{cli-1215h20m.js → cli-mb1qrqw1.js} +2 -2
  147. package/dist/chunks/{cli-50wh7ttg.js → cli-mbp8f3f3.js} +2 -2
  148. package/dist/chunks/{cli-5pb6kdxn.js → cli-me4e2p3e.js} +595 -595
  149. package/dist/chunks/{cli-vz1j9n38.js → cli-mj03488e.js} +2 -2
  150. package/dist/chunks/{cli-6dcra6rs.js → cli-ms5j6fff.js} +2 -2
  151. package/dist/chunks/{cli-0v6qg4zv.js → cli-msgx4pnp.js} +2 -2
  152. package/dist/chunks/cli-msmzt4c3.js +130 -0
  153. package/dist/chunks/{cli-h5yfk29j.js → cli-msw0vv86.js} +2 -2
  154. package/dist/chunks/{cli-ewts4g0p.js → cli-mzcsnm06.js} +2 -2
  155. package/dist/chunks/{cli-wr4k6ngg.js → cli-n5s5fnyj.js} +2 -2
  156. package/dist/chunks/{cli-ygq3fy9g.js → cli-ns0aaggm.js} +1 -1
  157. package/dist/chunks/{cli-1a2nss2m.js → cli-nvnj7r73.js} +1 -1
  158. package/dist/chunks/{cli-hpzy0mat.js → cli-p0vh69b9.js} +2 -2
  159. package/dist/chunks/{cli-zf7yzkn6.js → cli-p2cqnrnp.js} +2 -2
  160. package/dist/chunks/{cli-px7jhzgq.js → cli-pbc8sk2d.js} +2 -2
  161. package/dist/chunks/{cli-29078yxj.js → cli-pgg33dhw.js} +2 -2
  162. package/dist/chunks/cli-przq3zk6.js +3 -0
  163. package/dist/chunks/{cli-q9fn82b1.js → cli-q0156x0d.js} +2 -2
  164. package/dist/chunks/{cli-zdy5bccv.js → cli-q46epwyh.js} +1 -1
  165. package/dist/chunks/{cli-v8w48y51.js → cli-qaxvg7gv.js} +1 -1
  166. package/dist/chunks/{cli-ytj910yt.js → cli-qm684n63.js} +1 -1
  167. package/dist/chunks/{cli-2qec7gn4.js → cli-r3etpht1.js} +1 -1
  168. package/dist/chunks/{cli-amy2yafd.js → cli-r83ttew2.js} +2 -2
  169. package/dist/chunks/{cli-22zbzzap.js → cli-r9db9mqv.js} +1 -1
  170. package/dist/chunks/{cli-3q7meftn.js → cli-rjerv816.js} +2 -2
  171. package/dist/chunks/{cli-mx6xk0dw.js → cli-rvad3yhg.js} +2 -2
  172. package/dist/chunks/{cli-wfqsfwa2.js → cli-rxb5q8zw.js} +2 -2
  173. package/dist/chunks/{cli-7cn4gwqc.js → cli-s160fqyz.js} +2 -2
  174. package/dist/chunks/{cli-v2hg35qk.js → cli-s6vr7213.js} +2 -2
  175. package/dist/chunks/{cli-49dqgzsg.js → cli-s9fhtgmz.js} +2 -2
  176. package/dist/chunks/{cli-tezq577c.js → cli-scaqq0v9.js} +2 -2
  177. package/dist/chunks/{cli-15tr7ade.js → cli-sh9w2tbd.js} +1 -1
  178. package/dist/chunks/{cli-zd2e6bq1.js → cli-sycqd3xe.js} +4 -4
  179. package/dist/chunks/{cli-d06qr5p3.js → cli-t4j047cx.js} +2 -2
  180. package/dist/chunks/{cli-s5epnnj5.js → cli-t9jht3kb.js} +2 -2
  181. package/dist/chunks/{cli-bd1ryrzd.js → cli-tckzkegq.js} +1 -1
  182. package/dist/chunks/{cli-p2gt60aj.js → cli-tfv2qcgf.js} +1 -1
  183. package/dist/chunks/{cli-1qszxdan.js → cli-tq5z9qv3.js} +2 -2
  184. package/dist/chunks/{cli-wthnf2t5.js → cli-tt9a4124.js} +1 -1
  185. package/dist/chunks/{cli-8v5ajztt.js → cli-tyqh91zq.js} +1 -1
  186. package/dist/chunks/cli-v943fd6a.js +3 -0
  187. package/dist/chunks/{cli-wn4ywgbv.js → cli-v9f860t5.js} +2 -2
  188. package/dist/chunks/{cli-qc7zfabw.js → cli-vkvmhjha.js} +2 -2
  189. package/dist/chunks/{cli-6b6e5zj9.js → cli-vkzp66cm.js} +2 -2
  190. package/dist/chunks/{cli-6qhwqfwp.js → cli-vwg0v35a.js} +2 -2
  191. package/dist/chunks/{cli-x514vyva.js → cli-w1d8n9g3.js} +1 -1
  192. package/dist/chunks/cli-w52yvzkn.js +3 -0
  193. package/dist/chunks/{cli-et2cj5dc.js → cli-wbe1p8n2.js} +2 -2
  194. package/dist/chunks/{cli-5mdbbvnv.js → cli-wm8qb6j3.js} +1 -1
  195. package/dist/chunks/{cli-1tq57kq0.js → cli-wn2srq2e.js} +1 -1
  196. package/dist/chunks/{cli-088ac95n.js → cli-wt2bfbn0.js} +2 -2
  197. package/dist/chunks/{cli-jmypsed1.js → cli-x70v8rsj.js} +2 -2
  198. package/dist/chunks/{cli-5wh173wa.js → cli-x8xgga1a.js} +3 -3
  199. package/dist/chunks/{cli-2vc9kv40.js → cli-xfsqvp8r.js} +2 -2
  200. package/dist/chunks/{cli-6xmbrh42.js → cli-xmgm2573.js} +2 -2
  201. package/dist/chunks/{cli-d58ptbve.js → cli-xpa1neza.js} +2 -2
  202. package/dist/chunks/{cli-6bxmycm6.js → cli-yqbvprz7.js} +1 -1
  203. package/dist/chunks/{cli-bz32070f.js → cli-yrwenjxs.js} +1 -1
  204. package/dist/chunks/{cli-3p0mfsqg.js → cli-z5e72gsd.js} +1 -1
  205. package/dist/chunks/{cli-z2jpyr57.js → cli-zev50xap.js} +1 -1
  206. package/dist/chunks/{cli-mjz85907.js → cli-zjbzak9n.js} +1 -1
  207. package/dist/chunks/{cli-h2dynmt7.js → cli-zjfya500.js} +1 -1
  208. package/dist/chunks/{cli-60mdvk6q.js → cli-zp8s7q5w.js} +1 -1
  209. package/dist/chunks/{cli-znz72ctn.js → cli-zpcncwrv.js} +1 -1
  210. package/dist/chunks/{cli-ew59cmn3.js → cli-zxdnz6vp.js} +1 -1
  211. package/dist/chunks/client-dkpgx025.js +2 -0
  212. package/dist/chunks/color-zrm6r755.js +2 -0
  213. package/dist/chunks/commitAttribution-3y6pessz.js +2 -0
  214. package/dist/chunks/common-0bee37at.js +2 -0
  215. package/dist/chunks/compact-zmvj1pk0.js +4 -0
  216. package/dist/chunks/config-gj0gbg5g.js +2 -0
  217. package/dist/chunks/config-hbq35b68.js +2 -0
  218. package/dist/chunks/context-h1qc69rg.js +2 -0
  219. package/dist/chunks/context-noninteractive-7wbe6qvd.js +2 -0
  220. package/dist/chunks/conversation-fwnfp0p5.js +2 -0
  221. package/dist/chunks/{copy-bpypgpy8.js → copy-76r9v46d.js} +1 -1
  222. package/dist/chunks/cost-56r5xxqy.js +5 -0
  223. package/dist/chunks/createSession-m5y8fjy4.js +2 -0
  224. package/dist/chunks/desktop-z3jqgnw7.js +2 -0
  225. package/dist/chunks/detectRepository-w6wawmmg.js +2 -0
  226. package/dist/chunks/detection-1yb2c7hh.js +2 -0
  227. package/dist/chunks/{devtools-mt3vnaw3.js → devtools-10ba48t9.js} +1 -1
  228. package/dist/chunks/{diff-bcdc10jv.js → diff-05xxjeqc.js} +1 -1
  229. package/dist/chunks/doctor-hgwjdraj.js +2 -0
  230. package/dist/chunks/earlyInput-navj6cdn.js +2 -0
  231. package/dist/chunks/effort-a190c878.js +9 -0
  232. package/dist/chunks/executor-s42mdmqs.js +2 -0
  233. package/dist/chunks/exit-kyrjy6hb.js +2 -0
  234. package/dist/chunks/export-ct4sty4d.js +3 -0
  235. package/dist/chunks/extra-usage-noninteractive-byts9mme.js +2 -0
  236. package/dist/chunks/extra-usage-xh1mkrca.js +2 -0
  237. package/dist/chunks/fast-g4aa49jf.js +2 -0
  238. package/dist/chunks/feedback-m5r66qd5.js +2 -0
  239. package/dist/chunks/{files-fx3xz1bj.js → files-qrrrkjke.js} +1 -1
  240. package/dist/chunks/firstPartyEventLogger-mthxtmgc.js +2 -0
  241. package/dist/chunks/gates-yhakv4vb.js +2 -0
  242. package/dist/chunks/git-c39vd9dm.js +2 -0
  243. package/dist/chunks/goal-24dr7fwz.js +2 -0
  244. package/dist/chunks/growthbook-f7ag30hy.js +2 -0
  245. package/dist/chunks/heapdump-16gnh3zm.js +7 -0
  246. package/dist/chunks/help-rgcakcxe.js +2 -0
  247. package/dist/chunks/hooks-8dh43zmv.js +2 -0
  248. package/dist/chunks/{hooks-7kspbr6v.js → hooks-c7fqwas5.js} +1 -1
  249. package/dist/chunks/{ide-5bsqkr23.js → ide-q83qr9cn.js} +1 -1
  250. package/dist/chunks/index-v875zpde.js +2 -0
  251. package/dist/chunks/initReplBridge-zfwxgpsm.js +2 -0
  252. package/dist/chunks/ink-vkxsn90v.js +2 -0
  253. package/dist/chunks/{insights-z9edzgf1.js → insights-4fwap4e5.js} +1 -1
  254. package/dist/chunks/install-7nxzmgp5.js +2 -0
  255. package/dist/chunks/{install-github-app-918fh4r2.js → install-github-app-djzea7r4.js} +1 -1
  256. package/dist/chunks/install-slack-app-3rde0k08.js +2 -0
  257. package/dist/chunks/{instrumentation-b8ysw74t.js → instrumentation-223qqr23.js} +1 -1
  258. package/dist/chunks/keybindings-6t5f69wx.js +3 -0
  259. package/dist/chunks/loadAgentsDir-f8shfnw3.js +2 -0
  260. package/dist/chunks/loadPluginHooks-mdwjrjtp.js +2 -0
  261. package/dist/chunks/login-34j3xdr9.js +2 -0
  262. package/dist/chunks/logout-yew8mymc.js +2 -0
  263. package/dist/chunks/{main-sqrzjvg9.js → main-0b8hyp8h.js} +79 -79
  264. package/dist/chunks/mcp-9enw5a8j.js +2 -0
  265. package/dist/chunks/mcp-fn4yrf5y.js +3 -0
  266. package/dist/chunks/{mcp-dqh1vtvf.js → mcp-yymqpmv6.js} +3 -3
  267. package/dist/chunks/mcpServer-60jg9v58.js +2 -0
  268. package/dist/chunks/mcpServer-85gt8ypc.js +2 -0
  269. package/dist/chunks/memory-kam5z1cw.js +4 -0
  270. package/dist/chunks/{mobile-9m41g9bp.js → mobile-7zsgawnb.js} +1 -1
  271. package/dist/chunks/model-03987182.js +2 -0
  272. package/dist/chunks/model-wbxx5kcd.js +3 -0
  273. package/dist/chunks/{oauth-98khjrd8.js → oauth-y0p2y1w5.js} +1 -1
  274. package/dist/chunks/{output-style-1h6b2zf8.js → output-style-x148mzhn.js} +1 -1
  275. package/dist/chunks/parser-4y4b0e6b.js +2 -0
  276. package/dist/chunks/passes-jrmjk5zk.js +2 -0
  277. package/dist/chunks/permissions-karmgb0m.js +4 -0
  278. package/dist/chunks/plan-w0beh9bh.js +2 -0
  279. package/dist/chunks/plugin-6nwptn3s.js +2 -0
  280. package/dist/chunks/pluginStartupCheck-0nzv1ae9.js +2 -0
  281. package/dist/chunks/{plugins-pe89pa7p.js → plugins-vvf897b4.js} +2 -2
  282. package/dist/chunks/{preauthorizedConfig-g0aq6f03.js → preauthorizedConfig-p02f23jb.js} +1 -1
  283. package/dist/chunks/{print-cjjnhg9d.js → print-krwpbp2j.js} +4 -4
  284. package/dist/chunks/privacy-settings-m0mfykh0.js +2 -0
  285. package/dist/chunks/process-26nny2p0.js +2 -0
  286. package/dist/chunks/processBashCommand-8fqgv2ec.js +2 -0
  287. package/dist/chunks/{processSlashCommand-6d8rnm8v.js → processSlashCommand-q32wy80b.js} +1 -1
  288. package/dist/chunks/prompt-gw1e1gef.js +2 -0
  289. package/dist/chunks/prompt-xgw2hxrc.js +2 -0
  290. package/dist/chunks/provider-prompt-s26vatcw.js +2 -0
  291. package/dist/chunks/rate-limit-options-rd4rjfv5.js +2 -0
  292. package/dist/chunks/registry-fp7x9ekd.js +2 -0
  293. package/dist/chunks/release-notes-76y1r2s1.js +6 -0
  294. package/dist/chunks/reload-plugins-z0fepkva.js +3 -0
  295. package/dist/chunks/remote-env-nn9ngr99.js +2 -0
  296. package/dist/chunks/remoteBridgeCore-cg7qd8m4.js +2 -0
  297. package/dist/chunks/rename-fdjzyjar.js +2 -0
  298. package/dist/chunks/resume-4rvj8jbz.js +3 -0
  299. package/dist/chunks/{rewind-cpv2pwfx.js → rewind-r4g5njsg.js} +1 -1
  300. package/dist/chunks/sandbox-adapter-craea9vm.js +2 -0
  301. package/dist/chunks/sandbox-toggle-620bkz9q.js +2 -0
  302. package/dist/chunks/session-5vm1vwv1.js +3 -0
  303. package/dist/chunks/sessionFileAccessHooks-5jbvwabj.js +2 -0
  304. package/dist/chunks/sessionStorage-ffkhmn5q.js +2 -0
  305. package/dist/chunks/settings-s2bcajs6.js +2 -0
  306. package/dist/chunks/setup-fwcttwbm.js +2 -0
  307. package/dist/chunks/setup-pf09nfsj.js +7 -0
  308. package/dist/chunks/{setup-mecsw2ye.js → setup-vegs56f5.js} +1 -1
  309. package/dist/chunks/sinks-wd4ccgbf.js +2 -0
  310. package/dist/chunks/skills-evga8f7n.js +2 -0
  311. package/dist/chunks/startupProfiler-x5zbs2j7.js +2 -0
  312. package/dist/chunks/state-qpmfrvsv.js +2 -0
  313. package/dist/chunks/{stats-3v0r4e1v.js → stats-mgqf6r7c.js} +1 -1
  314. package/dist/chunks/status-78yks3jw.js +2 -0
  315. package/dist/chunks/stickers-bdp8w2gr.js +2 -0
  316. package/dist/chunks/subprocessEnv-s797f06r.js +2 -0
  317. package/dist/chunks/{systemPromptSections-htbs443y.js → systemPromptSections-07y2z2wn.js} +1 -1
  318. package/dist/chunks/tag-gd73kstd.js +12 -0
  319. package/dist/chunks/tasks-63qaca0z.js +2 -0
  320. package/dist/chunks/{teamHelpers-dddedf19.js → teamHelpers-8ykc4bxa.js} +1 -1
  321. package/dist/chunks/teammateModeSnapshot-ae9r29dy.js +2 -0
  322. package/dist/chunks/teleport-es58k4xz.js +2 -0
  323. package/dist/chunks/terminalSetup-gyh5z5e2.js +2 -0
  324. package/dist/chunks/theme-qrhbaht6.js +2 -0
  325. package/dist/chunks/thinkback-5bs7ezv5.js +2 -0
  326. package/dist/chunks/thinkback-play-1dy160y5.js +2 -0
  327. package/dist/chunks/toolSearch-6cv284b7.js +2 -0
  328. package/dist/chunks/trustedDevice-77ketbgg.js +2 -0
  329. package/dist/chunks/{ultrareviewCommand-jtmh2xb1.js → ultrareviewCommand-j23bjbf8.js} +1 -1
  330. package/dist/chunks/{update-mkzzbt54.js → update-w8wdxh3m.js} +1 -1
  331. package/dist/chunks/upgrade-nft7c1yk.js +2 -0
  332. package/dist/chunks/{upstreamproxy-hbbvxzb5.js → upstreamproxy-x405ef9p.js} +1 -1
  333. package/dist/chunks/usage-s5qgc615.js +2 -0
  334. package/dist/chunks/util-1geb93kp.js +2 -0
  335. package/dist/chunks/utils-6sb44pg8.js +2 -0
  336. package/dist/chunks/vim-kq91w44a.js +2 -0
  337. package/dist/chunks/worktree-0af6b1mt.js +2 -0
  338. package/dist/chunks/worktreeModeEnabled-ea6wb7aj.js +2 -0
  339. package/dist/cli.js +1 -1
  340. package/package.json +4 -1
  341. package/dist/chunks/App-skattzvx.js +0 -2
  342. package/dist/chunks/ApproveApiKey-1zk1g80v.js +0 -2
  343. package/dist/chunks/BypassPermissionsModeDialog-4bd5a65d.js +0 -2
  344. package/dist/chunks/ClaudeInChromeOnboarding-jrj410t2.js +0 -2
  345. package/dist/chunks/ClaudeMdExternalIncludesDialog-2bn5pwwr.js +0 -2
  346. package/dist/chunks/ConsoleOAuthFlow-8hn6958t.js +0 -2
  347. package/dist/chunks/Doctor-w0eqwfzb.js +0 -2
  348. package/dist/chunks/Grove-ygg0z9mr.js +0 -2
  349. package/dist/chunks/ITermBackend-ht0ds6se.js +0 -2
  350. package/dist/chunks/InvalidConfigDialog-h2jkde64.js +0 -2
  351. package/dist/chunks/InvalidSettingsDialog-3p7ehs0t.js +0 -2
  352. package/dist/chunks/Onboarding-np5yfyy1.js +0 -2
  353. package/dist/chunks/REPL-8811fta4.js +0 -2
  354. package/dist/chunks/ResumeConversation-d03pbgnw.js +0 -2
  355. package/dist/chunks/TeleportProgress-ghjbbh9h.js +0 -2
  356. package/dist/chunks/TeleportRepoMismatchDialog-hhcyekar.js +0 -2
  357. package/dist/chunks/TeleportResumeWrapper-66e7dnk5.js +0 -2
  358. package/dist/chunks/ToolSearchTool-dgwhh0gd.js +0 -2
  359. package/dist/chunks/TrustDialog-w9tj4t8r.js +0 -2
  360. package/dist/chunks/TungstenTool-7k2gt6pa.js +0 -2
  361. package/dist/chunks/add-dir-pg1rb88e.js +0 -2
  362. package/dist/chunks/agents-mcbqv3h3.js +0 -4
  363. package/dist/chunks/ant-claude-for-chrome-mcp-c765s2bt.js +0 -2
  364. package/dist/chunks/api-qvdz0vdp.js +0 -2
  365. package/dist/chunks/asciicast-ygqjzj6w.js +0 -2
  366. package/dist/chunks/auth-gkfrn4ga.js +0 -2
  367. package/dist/chunks/auth-y1hqesm6.js +0 -2
  368. package/dist/chunks/backgroundHousekeeping-wk8ne1wg.js +0 -2
  369. package/dist/chunks/branch-yre4hh7s.js +0 -5
  370. package/dist/chunks/btw-091q02sh.js +0 -2
  371. package/dist/chunks/buddy-5xd2vjhm.js +0 -2
  372. package/dist/chunks/caches-g4cc992y.js +0 -2
  373. package/dist/chunks/chrome-rd8crze6.js +0 -2
  374. package/dist/chunks/clear-25jzke5j.js +0 -2
  375. package/dist/chunks/cli-6hvqmebc.js +0 -3
  376. package/dist/chunks/cli-9hskw92e.js +0 -130
  377. package/dist/chunks/cli-avcnnw0n.js +0 -3
  378. package/dist/chunks/cli-e9pafjv1.js +0 -4
  379. package/dist/chunks/cli-gyp5wyzg.js +0 -3
  380. package/dist/chunks/cli-jbbxj53h.js +0 -3
  381. package/dist/chunks/cli-pbp5hza0.js +0 -3
  382. package/dist/chunks/cli-tzaj50bd.js +0 -3
  383. package/dist/chunks/cli-xzsc9n84.js +0 -3
  384. package/dist/chunks/cli-yv1znypb.js +0 -3
  385. package/dist/chunks/client-037bm52v.js +0 -2
  386. package/dist/chunks/color-ceqfke15.js +0 -2
  387. package/dist/chunks/commitAttribution-3ewwca68.js +0 -2
  388. package/dist/chunks/common-jn8w5r1w.js +0 -2
  389. package/dist/chunks/compact-631qpkbp.js +0 -4
  390. package/dist/chunks/config-6em7qq45.js +0 -2
  391. package/dist/chunks/config-h2e5ra49.js +0 -2
  392. package/dist/chunks/context-31c3znwn.js +0 -2
  393. package/dist/chunks/context-noninteractive-q418vz0p.js +0 -2
  394. package/dist/chunks/conversation-yz22h1cb.js +0 -2
  395. package/dist/chunks/cost-8rr9expn.js +0 -5
  396. package/dist/chunks/createSession-jratqxvc.js +0 -2
  397. package/dist/chunks/desktop-zq22ksq3.js +0 -2
  398. package/dist/chunks/detectRepository-djxyq37h.js +0 -2
  399. package/dist/chunks/detection-b18r43da.js +0 -2
  400. package/dist/chunks/doctor-cs43t62h.js +0 -2
  401. package/dist/chunks/earlyInput-361tx72y.js +0 -2
  402. package/dist/chunks/effort-qw83nert.js +0 -9
  403. package/dist/chunks/executor-rvxyyheh.js +0 -2
  404. package/dist/chunks/exit-kynz824m.js +0 -2
  405. package/dist/chunks/export-95j3srp6.js +0 -3
  406. package/dist/chunks/extra-usage-hxyp53v5.js +0 -2
  407. package/dist/chunks/extra-usage-noninteractive-53w28t1j.js +0 -2
  408. package/dist/chunks/fast-ec1hxnv7.js +0 -2
  409. package/dist/chunks/feedback-qtsk3t9f.js +0 -2
  410. package/dist/chunks/firstPartyEventLogger-4yfx731e.js +0 -2
  411. package/dist/chunks/gates-85t459a0.js +0 -2
  412. package/dist/chunks/git-e0mvprv8.js +0 -2
  413. package/dist/chunks/goal-ywc7exvv.js +0 -2
  414. package/dist/chunks/growthbook-ykj8089v.js +0 -2
  415. package/dist/chunks/heapdump-w6a13cfe.js +0 -7
  416. package/dist/chunks/help-enq1htxe.js +0 -2
  417. package/dist/chunks/hooks-wxm384wn.js +0 -2
  418. package/dist/chunks/initReplBridge-acrf7hyb.js +0 -2
  419. package/dist/chunks/ink-9vrw9yhe.js +0 -2
  420. package/dist/chunks/install-c8gv4wfg.js +0 -2
  421. package/dist/chunks/install-slack-app-1aqgxsb6.js +0 -2
  422. package/dist/chunks/keybindings-v92d2xht.js +0 -3
  423. package/dist/chunks/loadAgentsDir-k53rdwbr.js +0 -2
  424. package/dist/chunks/loadPluginHooks-rmzgs29p.js +0 -2
  425. package/dist/chunks/login-j9bz1g34.js +0 -2
  426. package/dist/chunks/logout-58wm6hsc.js +0 -2
  427. package/dist/chunks/mcp-z3j236hk.js +0 -3
  428. package/dist/chunks/mcp-zryxxcaz.js +0 -2
  429. package/dist/chunks/mcpServer-b2m7ewct.js +0 -2
  430. package/dist/chunks/mcpServer-xpq096r4.js +0 -2
  431. package/dist/chunks/memory-5tvqvktk.js +0 -4
  432. package/dist/chunks/model-cta1svwb.js +0 -3
  433. package/dist/chunks/model-d96jkka7.js +0 -2
  434. package/dist/chunks/parser-jpf6bfmz.js +0 -2
  435. package/dist/chunks/passes-reh6ja9j.js +0 -2
  436. package/dist/chunks/permissions-xgydmrq2.js +0 -4
  437. package/dist/chunks/plan-z4k8zj56.js +0 -2
  438. package/dist/chunks/plugin-0tztmcsg.js +0 -2
  439. package/dist/chunks/pluginStartupCheck-vxmkvt40.js +0 -2
  440. package/dist/chunks/privacy-settings-zbrc40a1.js +0 -2
  441. package/dist/chunks/process-msr26xa0.js +0 -2
  442. package/dist/chunks/processBashCommand-hnhy8brr.js +0 -2
  443. package/dist/chunks/prompt-cfaneybz.js +0 -2
  444. package/dist/chunks/prompt-wg6hfj0k.js +0 -2
  445. package/dist/chunks/provider-prompt-c8wew66t.js +0 -2
  446. package/dist/chunks/rate-limit-options-fyjqpxp3.js +0 -2
  447. package/dist/chunks/registry-ht9aazng.js +0 -2
  448. package/dist/chunks/release-notes-5v16zb9c.js +0 -6
  449. package/dist/chunks/reload-plugins-apyma8vs.js +0 -3
  450. package/dist/chunks/remote-env-p6ym55w6.js +0 -2
  451. package/dist/chunks/remoteBridgeCore-0v9x8112.js +0 -2
  452. package/dist/chunks/rename-j9rc9dwj.js +0 -2
  453. package/dist/chunks/resume-tbr3mkch.js +0 -3
  454. package/dist/chunks/sandbox-adapter-qh943bs4.js +0 -2
  455. package/dist/chunks/sandbox-toggle-1f70ejwk.js +0 -2
  456. package/dist/chunks/session-42zhjgd2.js +0 -3
  457. package/dist/chunks/sessionFileAccessHooks-1nh915er.js +0 -2
  458. package/dist/chunks/sessionStorage-j5m0nf55.js +0 -2
  459. package/dist/chunks/settings-c709knqg.js +0 -2
  460. package/dist/chunks/setup-0n2p20yw.js +0 -7
  461. package/dist/chunks/setup-2hqyyxff.js +0 -2
  462. package/dist/chunks/sinks-q6etaenz.js +0 -2
  463. package/dist/chunks/skills-xads3027.js +0 -2
  464. package/dist/chunks/startupProfiler-4wmjq0yd.js +0 -2
  465. package/dist/chunks/state-edaz98bj.js +0 -2
  466. package/dist/chunks/status-9rtty0ee.js +0 -2
  467. package/dist/chunks/stickers-m73qwecp.js +0 -2
  468. package/dist/chunks/subprocessEnv-rass28aq.js +0 -2
  469. package/dist/chunks/tag-vj93fgp6.js +0 -12
  470. package/dist/chunks/tasks-avbqta2s.js +0 -2
  471. package/dist/chunks/teammateModeSnapshot-32yfa4hf.js +0 -2
  472. package/dist/chunks/teleport-jw6w0rn4.js +0 -2
  473. package/dist/chunks/terminalSetup-ppt6v9xf.js +0 -2
  474. package/dist/chunks/theme-2csrfbca.js +0 -2
  475. package/dist/chunks/thinkback-2ahfejyt.js +0 -2
  476. package/dist/chunks/thinkback-play-kffa7rdp.js +0 -2
  477. package/dist/chunks/toolSearch-ptrcr8ec.js +0 -2
  478. package/dist/chunks/trustedDevice-xvtp79f1.js +0 -2
  479. package/dist/chunks/upgrade-c4argpvv.js +0 -2
  480. package/dist/chunks/usage-w30yajzy.js +0 -2
  481. package/dist/chunks/util-zkawe0w0.js +0 -2
  482. package/dist/chunks/utils-v86tf27x.js +0 -2
  483. package/dist/chunks/vim-3stm1kbg.js +0 -2
  484. package/dist/chunks/worktree-pbeayfjp.js +0 -2
  485. package/dist/chunks/worktreeModeEnabled-ysks760x.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$c as Mz,Xc as l6,Yc as _7,Zc as p8,_c as V8,bd as A7,cd as TY}from"./cli-skq9ktf8.js";import{ed as l8,fd as Y8,hd as d6}from"./cli-3p0mfsqg.js";import{jd as Rz,ld as o7}from"./cli-6qhwqfwp.js";import{td as K7,vd as z7,wd as Y7,xd as _Y}from"./cli-by5b2216.js";import{Ad as f8,Bd as ez,Cd as c6,Ed as J8,Fd as z6,Gd as Y6,Id as q7,Jd as PY}from"./cli-zdy5bccv.js";import{Ld as O6,Rd as tz}from"./cli-ye3qk73s.js";import{cf as u8,df as hz,ef as g8,ff as Jz}from"./cli-58t6a5n6.js";import{gf as P7,hf as $8,kf as NY}from"./cli-z8hqtyjg.js";import{$C as G8,$n as D6,AD as BK,An as fz,Bn as b7,CD as $6,Ch as K6,DF as sq,EF as _8,Eo as Q7,Ep as z8,Fh as MY,Fi as $K,GF as h8,Gi as qz,Hi as Kz,Ii as x6,Ip as I6,Ji as zz,Ki as y8,LD as lK,Lh as I8,Li as R8,MD as Gz,Mh as Az,Mn as Vz,Ni as Yz,Oi as Oz,PC as cq,Ru as vK,SC as cK,SD as IK,Sp as s7,Su as w6,TC as rK,UC as M8,VC as yK,VD as G6,Vn as e7,WC as _K,Wn as q6,XC as sK,YC as Hz,Yn as B8,Zn as m6,_C as _z,_n as C6,co as r8,dr as V6,ei as lz,fD as B6,fi as Qz,gD as WK,hi as XY,jo as i8,kD as r6,lD as x8,mD as iK,pD as jz,pG as j8,qD as yz,qG as i6,rD as oK,sD as sz,uh as Uz,vh as kY,vo as Dz,wo as S6,wx as QK,xh as iz,xx as J6,yh as GY,yo as Sz,zD as Wz}from"./cli-5pb6kdxn.js";import{$L as FK,VL as oq,WL as A8,XL as kq,YL as zK,ZL as Lq,_L as YK,aM as A6}from"./cli-2vc9kv40.js";import{YN as K8,ZN as p6}from"./cli-mejr8b5m.js";import{HO as eK,IO as v6,VO as xq,WO as pq,XO as DK,dP as X7,eP as RY}from"./cli-s6qk3rbv.js";import{EQ as dq,GQ as O,IQ as z,MQ as a8,ZP as Cz,ZQ as qK,cQ as l7,iQ as E8,iR as Bq,nP as q8}from"./cli-5wh173wa.js";import{$V as PK,AV as e8,BV as gz,CW as uK,KW as y6,SV as n8,TV as Vq,V1 as i7,V3 as j6,bV as T6,e4 as c7,oV as x7,wW as hK,yW as VK,z1 as mz,zV as t8}from"./cli-9hskw92e.js";import{t4 as OK,v4 as D8}from"./cli-v2hg35qk.js";import{R5 as KK,S5 as S8}from"./cli-3je4vtx7.js";import{V5 as e6,W5 as Z7,Y5 as C8,a6 as kz}from"./cli-dx46fn1w.js";import{B8 as T8,w8 as kK,z8 as Lz}from"./cli-3bxtq5dc.js";import{U8 as nq,V8 as H6}from"./cli-s5epnnj5.js";import{x9 as L6,y9 as r7}from"./cli-shz2e0q5.js";import{S9 as xK,T9 as Eq,Z9 as wK,a_ as rz,d_ as WY,r_ as RK,u_ as h6}from"./cli-a98b285v.js";import{E_ as t6,O_ as $7}from"./cli-1qszxdan.js";import{bda as uq}from"./cli-x514vyva.js";import{useEffect as h7,useRef as J7,useState as n6}from"react";import{jsxDEV as Dq}from"react/jsx-dev-runtime";function Q6({inputValue:K,setInputValue:q,cursorOffset:Y,setCursorOffset:f,error:H,setError:_,result:J,setResult:h,setViewState:W,onAddComplete:P,cliMode:k=!1}){let v=J7(!1),[X,l]=n6(!1),[U,Wq]=n6(""),G=async()=>{let j=K.trim();if(!j){_("Please enter a marketplace source");return}let N=await l6(j);if(!N){_("Invalid marketplace source format. Try: owner/repo, https://..., or ./path");return}if("error"in N){_(N.error);return}_(null);try{l(!0),Wq("");let{name:F,resolvedSource:Z}=await r6(N,(u)=>{Wq(u)});B6(F,{source:Z}),cq();let A=N.source;if(N.source==="github")A=N.repo;if(nq("tengu_marketplace_added",{source_type:A}),P)await P();if(Wq(""),l(!1),k)h(`Successfully added marketplace: ${F}`);else W({type:"browse-marketplace",targetMarketplace:F})}catch(F){let Z=xK(F);if(kK(Z),_(Z.message),Wq(""),l(!1),k)h(`Error: ${Z.message}`);else h(null)}};return h7(()=>{if(K&&!v.current&&!H&&!J)v.current=!0,G()},[]),Dq(O,{flexDirection:"column",children:[Dq(O,{flexDirection:"column",paddingX:1,borderStyle:"round",children:[Dq(O,{marginBottom:1,children:Dq(z,{bold:!0,children:"Add Marketplace"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Dq(O,{flexDirection:"column",children:[Dq(z,{children:"Enter marketplace source:"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:"Examples:"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 owner/repo (GitHub)"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 git@github.com:owner/repo.git (SSH)"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 https://example.com/marketplace.json"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 ./path/to/marketplace"},void 0,!1,void 0,this),Dq(O,{marginTop:1,children:Dq(j8,{value:K,onChange:q,onSubmit:G,columns:80,cursorOffset:Y,onChangeCursorOffset:f,focus:!0,showCursor:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X&&Dq(O,{marginTop:1,children:[Dq(vK,{},void 0,!1,void 0,this),Dq(z,{children:U||"Adding marketplace to configuration\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H&&Dq(O,{marginTop:1,children:Dq(z,{color:"error",children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this),J&&Dq(O,{marginTop:1,children:Dq(z,{children:J},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Dq(O,{marginLeft:3,children:Dq(z,{dimColor:!0,italic:!0,children:Dq(Lq,{children:[Dq(oq,{shortcut:"Enter",action:"add"},void 0,!1,void 0,this),Dq(kq,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var s6=uq(()=>{H6();zK();YK();A8();w6();i6();Bq();wK();T8();cK();oK();_7()});import{c as v7}from"react/compiler-runtime";import T7 from"figures";import{useState as k6}from"react";import{jsxDEV as eq}from"react/jsx-dev-runtime";function j7(K,q,Y,f){let H={};for(let _ of K){let J=Y[_],h=q[_]??"";if(J?.sensitive===!0&&h===""&&f?.[_]!==void 0)continue;if(J?.type==="number"){if(h.trim()==="")continue;let W=Number(h);H[_]=Number.isNaN(W)?h:W}else if(J?.type==="boolean")H[_]=t6(h);else H[_]=h}return H}function W8(K){let q=v7(70),{title:Y,subtitle:f,configSchema:H,initialValues:_,onSave:J,onCancel:h}=K,W;if(q[0]!==H)W=Object.keys(H),q[0]=H,q[1]=W;else W=q[1];let P=W,k;if(q[2]!==H||q[3]!==_)k=(L)=>{if(H[L]?.sensitive===!0)return"";let t=_?.[L];return t===void 0?"":String(t)},q[2]=H,q[3]=_,q[4]=k;else k=q[4];let v=k,[X,l]=k6(0),U;if(q[5]===Symbol.for("react.memo_cache_sentinel"))U={},q[5]=U;else U=q[5];let[Wq,G]=k6(U),j;if(q[6]!==P[0]||q[7]!==v)j=()=>P[0]?v(P[0]):"",q[6]=P[0],q[7]=v,q[8]=j;else j=q[8];let[N,F]=k6(j),Z=P[X],A=Z?H[Z]:null,u;if(q[9]===Symbol.for("react.memo_cache_sentinel"))u={context:"Settings"},q[9]=u;else u=q[9];xq("confirm:no",h,u);let Hq;if(q[10]!==Z||q[11]!==X||q[12]!==N||q[13]!==P||q[14]!==v)Hq=()=>{if(X<P.length-1&&Z){G((t)=>({...t,[Z]:N})),l(N7);let L=P[X+1];F(L?v(L):"")}},q[10]=Z,q[11]=X,q[12]=N,q[13]=P,q[14]=v,q[15]=Hq;else Hq=q[15];let D=Hq,Q;if(q[16]!==H||q[17]!==Z||q[18]!==X||q[19]!==N||q[20]!==P||q[21]!==v||q[22]!==_||q[23]!==J||q[24]!==Wq)Q=()=>{if(!Z)return;let L={...Wq,[Z]:N};if(X===P.length-1)J(j7(P,L,H,_));else{G(L),l(R7);let t=P[X+1];F(t?v(t):"")}},q[16]=H,q[17]=Z,q[18]=X,q[19]=N,q[20]=P,q[21]=v,q[22]=_,q[23]=J,q[24]=Wq,q[25]=Q;else Q=q[25];let r=Q,s;if(q[26]!==r||q[27]!==D)s={"confirm:nextField":D,"confirm:yes":r},q[26]=r,q[27]=D,q[28]=s;else s=q[28];let fq;if(q[29]===Symbol.for("react.memo_cache_sentinel"))fq={context:"Confirmation"},q[29]=fq;else fq=q[29];pq(s,fq);let m;if(q[30]===Symbol.for("react.memo_cache_sentinel"))m=(L,t)=>{if(t.backspace||t.delete){F(y7);return}if(L&&!t.ctrl&&!t.meta&&!t.tab&&!t.return)F((Xq)=>Xq+L)},q[30]=m;else m=q[30];if(qK(m),!A||!Z)return null;let Aq=A.sensitive===!0,Gq=A.required===!0,zq;if(q[31]!==N||q[32]!==Aq)zq=Aq?"*".repeat(e6(N)):N,q[31]=N,q[32]=Aq,q[33]=zq;else zq=q[33];let B=zq,Mq=A.title||Z,hq;if(q[34]!==Gq)hq=Gq&&eq(z,{color:"error",children:" *"},void 0,!1,void 0,this),q[34]=Gq,q[35]=hq;else hq=q[35];let wq;if(q[36]!==Mq||q[37]!==hq)wq=eq(z,{bold:!0,children:[Mq,hq]},void 0,!0,void 0,this),q[36]=Mq,q[37]=hq,q[38]=wq;else wq=q[38];let y;if(q[39]!==A.description)y=A.description&&eq(z,{dimColor:!0,children:A.description},void 0,!1,void 0,this),q[39]=A.description,q[40]=y;else y=q[40];let C;if(q[41]===Symbol.for("react.memo_cache_sentinel"))C=eq(z,{children:[T7.pointerSmall," "]},void 0,!0,void 0,this),q[41]=C;else C=q[41];let g;if(q[42]!==B)g=eq(z,{children:B},void 0,!1,void 0,this),q[42]=B,q[43]=g;else g=q[43];let Oq;if(q[44]===Symbol.for("react.memo_cache_sentinel"))Oq=eq(z,{children:"\u2588"},void 0,!1,void 0,this),q[44]=Oq;else Oq=q[44];let Jq;if(q[45]!==g)Jq=eq(O,{marginTop:1,children:[C,g,Oq]},void 0,!0,void 0,this),q[45]=g,q[46]=Jq;else Jq=q[46];let T;if(q[47]!==wq||q[48]!==y||q[49]!==Jq)T=eq(O,{flexDirection:"column",children:[wq,y,Jq]},void 0,!0,void 0,this),q[47]=wq,q[48]=y,q[49]=Jq,q[50]=T;else T=q[50];let i=X+1,I;if(q[51]!==P.length||q[52]!==i)I=eq(z,{dimColor:!0,children:["Field ",i," of ",P.length]},void 0,!0,void 0,this),q[51]=P.length,q[52]=i,q[53]=I;else I=q[53];let V;if(q[54]!==X||q[55]!==P.length)V=X<P.length-1&&eq(z,{dimColor:!0,children:"Tab: Next field \xB7 Enter: Save and continue"},void 0,!1,void 0,this),q[54]=X,q[55]=P.length,q[56]=V;else V=q[56];let c;if(q[57]!==X||q[58]!==P.length)c=X===P.length-1&&eq(z,{dimColor:!0,children:"Enter: Save configuration"},void 0,!1,void 0,this),q[57]=X,q[58]=P.length,q[59]=c;else c=q[59];let S;if(q[60]!==I||q[61]!==V||q[62]!==c)S=eq(O,{flexDirection:"column",children:[I,V,c]},void 0,!0,void 0,this),q[60]=I,q[61]=V,q[62]=c,q[63]=S;else S=q[63];let $;if(q[64]!==h||q[65]!==f||q[66]!==T||q[67]!==S||q[68]!==Y)$=eq(FK,{title:Y,subtitle:f,onCancel:h,isCancelActive:!1,children:[T,S]},void 0,!0,void 0,this),q[64]=h,q[65]=f,q[66]=T,q[67]=S,q[68]=Y,q[69]=$;else $=q[69];return $}function y7(K){return K.slice(0,-1)}function R7(K){return K+1}function N7(K){return K+1}var W6=uq(()=>{A6();Z7();Bq();DK();$7()});import*as SK from"react";import{jsxDEV as L7}from"react/jsx-dev-runtime";async function N8(K){let{enabled:q,disabled:Y}=await IK();return[...q,...Y].find((f)=>f.repository===K||f.source===K)}function UK({plugin:K,pluginId:q,onDone:Y}){let[f]=SK.useState(()=>{let P=[],k=Yz(K);if(Object.keys(k).length>0)P.push({key:"top-level",title:`Configure ${K.name}`,subtitle:"Plugin options",schema:k,load:()=>y8(q),save:(X)=>R8(q,X,K.manifest.userConfig)});let v=fz(K);for(let X of v)P.push({key:`channel:${X.server}`,title:`Configure ${X.displayName}`,subtitle:`Plugin: ${K.name}`,schema:X.configSchema,load:()=>qz(q,X.server)??void 0,save:(l)=>Kz(q,X.server,l,X.configSchema)});return P}),[H,_]=SK.useState(0),J=SK.useRef(Y);if(J.current=Y,SK.useEffect(()=>{if(f.length===0)J.current("skipped")},[f.length]),f.length===0)return null;let h=f[H];function W(P){try{h.save(P)}catch(v){Y("error",Eq(v));return}let k=H+1;if(k<f.length)_(k);else Y("configured")}return L7(W8,{title:h.title,subtitle:h.subtitle,configSchema:h.schema,initialValues:h.load(),onSave:W,onCancel:()=>Y("skipped")},h.key,!1,void 0,this)}var b8=uq(()=>{wK();zz();b7();G6();Oz();W6()});import{c as m7}from"react/compiler-runtime";import C7 from"figures";import{jsxDEV as M6}from"react/jsx-dev-runtime";function L8(){let K=m7(3),q;if(K[0]===Symbol.for("react.memo_cache_sentinel"))q=Hz(),K[0]=q;else q=K[0];let Y=q,f;if(K[1]===Symbol.for("react.memo_cache_sentinel"))f=M6(z,{color:"claude",children:[C7.warning," "]},void 0,!0,void 0,this),K[1]=f;else f=K[1];let H;if(K[2]===Symbol.for("react.memo_cache_sentinel"))H=M6(O,{marginBottom:1,children:[f,M6(z,{dimColor:!0,italic:!0,children:["Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.",Y?` ${Y}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K[2]=H;else H=K[2];return H}var X6=uq(()=>{Bq();G8()});import{c as D7}from"react/compiler-runtime";import{jsxDEV as pK}from"react/jsx-dev-runtime";function TK(K){if(K.entry.source&&typeof K.entry.source==="object"&&"source"in K.entry.source&&K.entry.source.source==="github"&&typeof K.entry.source==="object"&&"repo"in K.entry.source)return K.entry.source.repo;return null}function aK(K,q){let Y=[{label:"Install for you (user scope)",action:"install-user"},{label:"Install for all collaborators on this repository (project scope)",action:"install-project"},{label:"Install for you, in this repo only (local scope)",action:"install-local"}];if(K)Y.push({label:"Open homepage",action:"homepage"});if(q)Y.push({label:"View on GitHub",action:"github"});return Y.push({label:"Back to plugin list",action:"back"}),Y}function wz(K){let q=D7(7),{hasSelection:Y}=K,f;if(q[0]!==Y)f=Y&&pK(kq,{action:"plugin:install",context:"Plugin",fallback:"i",description:"install",bold:!0},void 0,!1,void 0,this),q[0]=Y,q[1]=f;else f=q[1];let H,_,J;if(q[2]===Symbol.for("react.memo_cache_sentinel"))H=pK(kq,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"},void 0,!1,void 0,this),_=pK(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"},void 0,!1,void 0,this),J=pK(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this),q[2]=H,q[3]=_,q[4]=J;else H=q[2],_=q[3],J=q[4];let h;if(q[5]!==f)h=pK(O,{marginTop:1,children:pK(z,{dimColor:!0,italic:!0,children:pK(Lq,{children:[f,H,_,J]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[5]=f,q[6]=h;else h=q[6];return h}var P6=uq(()=>{zK();YK();Bq()});import{useCallback as jK,useMemo as S7,useRef as I7}from"react";function nK({totalItems:K,maxVisible:q=p7,selectedIndex:Y=0}){let f=K>q,H=I7(0),_=S7(()=>{if(!f)return 0;let N=H.current;if(Y<N)return H.current=Y,Y;if(Y>=N+q){let A=Y-q+1;return H.current=A,A}let F=Math.max(0,K-q),Z=Math.min(N,F);return H.current=Z,Z},[Y,q,f,K]),J=_,h=Math.min(_+q,K),W=jK((N)=>{if(!f)return N;return N.slice(J,h)},[f,J,h]),P=jK((N)=>{return J+N},[J]),k=jK((N)=>{return N>=J&&N<h},[J,h]),v=jK((N)=>{},[]),X=jK(()=>{},[]),l=jK(()=>{},[]),U=jK((N,F)=>{let Z=Math.max(0,Math.min(N,K-1));F(Z)},[K]),Wq=jK((N,F)=>{return!1},[]),G=Math.max(1,Math.ceil(K/q));return{currentPage:Math.floor(_/q),totalPages:G,startIndex:J,endIndex:h,needsPagination:f,pageSize:q,getVisibleItems:W,toActualIndex:P,isOnCurrentPage:k,goToPage:v,nextPage:X,prevPage:l,handleSelectionChange:U,handlePageNavigation:Wq,scrollPosition:{current:Y+1,total:K,canScrollUp:_>0,canScrollDown:_+q<K}}}var p7=5;var m8=()=>{};import AK from"figures";import*as d8 from"react";import{useEffect as _6,useState as lq}from"react";import{jsxDEV as p,Fragment as V7}from"react/jsx-dev-runtime";function Xz({error:K,setError:q,result:Y,setResult:f,setViewState:H,onInstallComplete:_,targetMarketplace:J,targetPlugin:h}){let[W,P]=lq("marketplace-list"),[k,v]=lq(null),[X,l]=lq(null),[U,Wq]=lq([]),[G,j]=lq([]),[N,F]=lq(!0),[Z,A]=lq(null),[u,Hq]=lq(0),[D,Q]=lq(new Set),[r,s]=lq(new Set),fq=nK({totalItems:G.length,selectedIndex:u}),[m,Aq]=lq(0),[Gq,zq]=lq(!1),[B,Mq]=lq(null),[hq,wq]=lq(null),y=d8.useCallback(()=>{if(W==="plugin-list")if(J)H({type:"manage-marketplaces",targetMarketplace:J});else if(U.length===1)H({type:"menu"});else P("marketplace-list"),v(null),Q(new Set);else if(W==="plugin-details")P("plugin-list"),l(null);else H({type:"menu"})},[W,J,H,U.length]);xq("confirm:no",y,{context:"Confirmation"}),_6(()=>{async function T(){try{let i=await WK(),{marketplaces:I,failures:V}=await _K(i),c=[];for(let{name:L,config:t,data:Xq}of I)if(Xq){let E=OK(Xq.plugins,(o)=>Wz(yK(o.name,L)));c.push({name:L,totalPlugins:Xq.plugins.length,installedCount:E,source:M8(t.source)})}c.sort((L,t)=>{if(L.name==="claude-plugin-directory")return-1;if(t.name==="claude-plugin-directory")return 1;return 0}),Wq(c);let S=OK(I,(L)=>L.data!==null),$=sK(V,S);if($)if($.type==="warning")wq($.message+". Showing available marketplaces.");else throw Error($.message);if(c.length===1&&!J&&!h){let L=c[0];if(L)v(L.name),P("plugin-list")}if(h){let L=null,t=null;for(let[Xq]of Object.entries(i)){let E=await iK(Xq);if(E){let o=E.plugins.find((Pq)=>Pq.name===h);if(o){let Pq=yK(o.name,Xq);L={entry:o,marketplaceName:Xq,pluginId:Pq,isInstalled:BK(Pq)},t=Xq;break}}}if(L&&t){let Xq=L.pluginId;if(BK(Xq))q(`Plugin '${Xq}' is already installed globally. Use '/plugin' to manage existing plugins.`);else v(t),l(L),P("plugin-details")}else q(`Plugin "${h}" not found in any marketplace`)}else if(J)if(c.some((t)=>t.name===J))v(J),P("plugin-list");else q(`Marketplace "${J}" not found`)}catch(i){q(i instanceof Error?i.message:"Failed to load marketplaces")}finally{F(!1)}}T()},[q,J,h]),_6(()=>{if(!k)return;let T=!1;async function i(I){F(!0);try{let V=await iK(I);if(T)return;if(!V)throw Error(`Failed to load marketplace: ${I}`);let c=[];for(let S of V.plugins){let $=yK(S.name,I);if(QK($))continue;c.push({entry:S,marketplaceName:I,pluginId:$,isInstalled:BK($)})}try{let S=await p8();if(T)return;if(A(S),S)c.sort(($,L)=>{let t=S.get($.pluginId)??0,Xq=S.get(L.pluginId)??0;if(t!==Xq)return Xq-t;return $.entry.name.localeCompare(L.entry.name)});else c.sort(($,L)=>$.entry.name.localeCompare(L.entry.name))}catch(S){if(T)return;RK(`Failed to fetch install counts: ${Eq(S)}`),c.sort(($,L)=>$.entry.name.localeCompare(L.entry.name))}j(c),Hq(0),Q(new Set)}catch(V){if(T)return;q(V instanceof Error?V.message:"Failed to load plugins")}finally{F(!1)}}return i(k),()=>{T=!0}},[k,q]);let C=async()=>{if(D.size===0)return;let T=G.filter((c)=>D.has(c.pluginId));s(new Set(T.map((c)=>c.pluginId)));let i=0,I=0,V=[];for(let c of T){let S=await lK({pluginId:c.pluginId,entry:c.entry,marketplaceName:c.marketplaceName,scope:"user"});if(S.success)i++;else I++,V.push({name:c.entry.name,reason:S.error})}if(s(new Set),Q(new Set),cq(),I===0){let c=`\u2713 Installed ${i} ${Vq(i,"plugin")}. Run /reload-plugins to activate.`;f(c)}else if(i===0)q(`Failed to install: ${rK(V,!0)}`);else{let c=`\u2713 Installed ${i} of ${i+I} plugins. Failed: ${rK(V,!1)}. Run /reload-plugins to activate successfully installed plugins.`;f(c)}if(i>0){if(_)await _()}H({type:"menu"})},g=async(T,i="user")=>{zq(!0),Mq(null);let I=await lK({pluginId:T.pluginId,entry:T.entry,marketplaceName:T.marketplaceName,scope:i});if(I.success){let V=await N8(T.pluginId);if(V){zq(!1),P({type:"plugin-options",plugin:V,pluginId:T.pluginId});return}if(f(I.message),_)await _();H({type:"menu"})}else zq(!1),Mq(I.error)};_6(()=>{if(K)f(K)},[K,f]),pq({"select:previous":()=>{if(u>0)Hq(u-1)},"select:next":()=>{if(u<U.length-1)Hq(u+1)},"select:accept":()=>{let T=U[u];if(T)v(T.name),P("plugin-list")}},{context:"Select",isActive:W==="marketplace-list"}),pq({"select:previous":()=>{if(u>0)fq.handleSelectionChange(u-1,Hq)},"select:next":()=>{if(u<G.length-1)fq.handleSelectionChange(u+1,Hq)},"select:accept":()=>{if(u===G.length&&D.size>0)C();else if(u<G.length){let T=G[u];if(T)if(T.isInstalled)H({type:"manage-plugins",targetPlugin:T.entry.name,targetMarketplace:T.marketplaceName});else l(T),P("plugin-details"),Aq(0),Mq(null)}}},{context:"Select",isActive:W==="plugin-list"}),pq({"plugin:toggle":()=>{if(u<G.length){let T=G[u];if(T&&!T.isInstalled){let i=new Set(D);if(i.has(T.pluginId))i.delete(T.pluginId);else i.add(T.pluginId);Q(i)}}},"plugin:install":()=>{if(D.size>0)C()}},{context:"Plugin",isActive:W==="plugin-list"});let Oq=d8.useMemo(()=>{if(!X)return[];let T=X.entry.homepage,i=TK(X);return aK(T,i)},[X]);if(pq({"select:previous":()=>{if(m>0)Aq(m-1)},"select:next":()=>{if(m<Oq.length-1)Aq(m+1)},"select:accept":()=>{if(!X)return;let T=Oq[m]?.action,i=X.entry.homepage,I=TK(X);if(T==="install-user")g(X,"user");else if(T==="install-project")g(X,"project");else if(T==="install-local")g(X,"local");else if(T==="homepage"&&i)KK(i);else if(T==="github"&&I)KK(`https://github.com/${I}`);else if(T==="back")P("plugin-list"),l(null)}},{context:"Select",isActive:W==="plugin-details"&&!!X}),typeof W==="object"&&W.type==="plugin-options"){let I=function(V){if(f(V),_)_();H({type:"menu"})},{plugin:T,pluginId:i}=W;return p(UK,{plugin:T,pluginId:i,onDone:(V,c)=>{switch(V){case"configured":I(`\u2713 Installed and configured ${T.name}. Run /reload-plugins to apply.`);break;case"skipped":I(`\u2713 Installed ${T.name}. Run /reload-plugins to apply.`);break;case"error":I(`Installed but failed to save config: ${c}`);break}}},void 0,!1,void 0,this)}if(N)return p(z,{children:"Loading\u2026"},void 0,!1,void 0,this);if(K)return p(z,{color:"error",children:K},void 0,!1,void 0,this);if(W==="marketplace-list"){if(U.length===0)return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Select marketplace"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p(z,{children:"No marketplaces configured."},void 0,!1,void 0,this),p(z,{dimColor:!0,children:["Add a marketplace first using ","'Add marketplace'","."]},void 0,!0,void 0,this),p(O,{marginTop:1,paddingLeft:1,children:p(z,{dimColor:!0,children:p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Select marketplace"},void 0,!1,void 0,this)},void 0,!1,void 0,this),hq&&p(O,{marginBottom:1,flexDirection:"column",children:p(z,{color:"warning",children:[AK.warning," ",hq]},void 0,!0,void 0,this)},void 0,!1,void 0,this),U.map((T,i)=>p(O,{flexDirection:"column",marginBottom:i<U.length-1?1:0,children:[p(O,{children:p(z,{color:u===i?"suggestion":void 0,children:[u===i?AK.pointer:" "," ",T.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p(O,{marginLeft:2,children:p(z,{dimColor:!0,children:[T.totalPlugins," ",Vq(T.totalPlugins,"plugin")," available",T.installedCount>0&&` \xB7 ${T.installedCount} already installed`,T.source&&` \xB7 ${T.source}`]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},T.name,!0,void 0,this)),p(O,{marginTop:1,children:p(z,{dimColor:!0,italic:!0,children:p(Lq,{children:[p(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(W==="plugin-details"&&X){let T=X.entry.homepage,i=TK(X),I=aK(T,i);return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Plugin Details"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p(O,{flexDirection:"column",marginBottom:1,children:[p(z,{bold:!0,children:X.entry.name},void 0,!1,void 0,this),X.entry.version&&p(z,{dimColor:!0,children:["Version: ",X.entry.version]},void 0,!0,void 0,this),X.entry.description&&p(O,{marginTop:1,children:p(z,{children:X.entry.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),X.entry.author&&p(O,{marginTop:1,children:p(z,{dimColor:!0,children:["By:"," ",typeof X.entry.author==="string"?X.entry.author:X.entry.author.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p(O,{flexDirection:"column",marginBottom:1,children:[p(z,{bold:!0,children:"Will install:"},void 0,!1,void 0,this),X.entry.commands&&p(z,{dimColor:!0,children:["\xB7 Commands:"," ",Array.isArray(X.entry.commands)?X.entry.commands.join(", "):Object.keys(X.entry.commands).join(", ")]},void 0,!0,void 0,this),X.entry.agents&&p(z,{dimColor:!0,children:["\xB7 Agents:"," ",Array.isArray(X.entry.agents)?X.entry.agents.join(", "):Object.keys(X.entry.agents).join(", ")]},void 0,!0,void 0,this),X.entry.hooks&&p(z,{dimColor:!0,children:["\xB7 Hooks: ",Object.keys(X.entry.hooks).join(", ")]},void 0,!0,void 0,this),X.entry.mcpServers&&p(z,{dimColor:!0,children:["\xB7 MCP Servers:"," ",Array.isArray(X.entry.mcpServers)?X.entry.mcpServers.join(", "):typeof X.entry.mcpServers==="object"?Object.keys(X.entry.mcpServers).join(", "):"configured"]},void 0,!0,void 0,this),!X.entry.commands&&!X.entry.agents&&!X.entry.hooks&&!X.entry.mcpServers&&p(V7,{children:typeof X.entry.source==="object"&&"source"in X.entry.source&&(X.entry.source.source==="github"||X.entry.source.source==="url"||X.entry.source.source==="npm"||X.entry.source.source==="pip")?p(z,{dimColor:!0,children:"\xB7 Component summary not available for remote plugin"},void 0,!1,void 0,this):p(z,{dimColor:!0,children:"\xB7 Components will be discovered at installation"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p(L8,{},void 0,!1,void 0,this),B&&p(O,{marginBottom:1,children:p(z,{color:"error",children:["Error: ",B]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p(O,{flexDirection:"column",children:I.map((V,c)=>p(O,{children:[m===c&&p(z,{children:"> "},void 0,!1,void 0,this),m!==c&&p(z,{children:" "},void 0,!1,void 0,this),p(z,{bold:m===c,children:Gq&&V.action==="install"?"Installing\u2026":V.label},void 0,!1,void 0,this)]},V.action,!0,void 0,this))},void 0,!1,void 0,this),p(O,{marginTop:1,paddingLeft:1,children:p(z,{dimColor:!0,children:p(Lq,{children:[p(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(G.length===0)return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Install plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p(z,{dimColor:!0,children:"No new plugins available to install."},void 0,!1,void 0,this),p(z,{dimColor:!0,children:"All plugins from this marketplace are already installed."},void 0,!1,void 0,this),p(O,{marginLeft:3,children:p(z,{dimColor:!0,italic:!0,children:p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let Jq=fq.getVisibleItems(G);return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Install Plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),fq.scrollPosition.canScrollUp&&p(O,{children:p(z,{dimColor:!0,children:[" ",AK.arrowUp," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Jq.map((T,i)=>{let I=fq.toActualIndex(i),V=u===I,c=D.has(T.pluginId),S=r.has(T.pluginId),$=i===Jq.length-1;return p(O,{flexDirection:"column",marginBottom:$&&!K?0:1,children:[p(O,{children:[p(z,{color:V?"suggestion":void 0,children:[V?AK.pointer:" "," "]},void 0,!0,void 0,this),p(z,{color:T.isInstalled?"success":void 0,children:[T.isInstalled?AK.tick:S?AK.ellipsis:c?AK.radioOn:AK.radioOff," ",T.entry.name,T.entry.category&&p(z,{dimColor:!0,children:[" [",T.entry.category,"]"]},void 0,!0,void 0,this),T.entry.tags?.includes("community-managed")&&p(z,{dimColor:!0,children:" [Community Managed]"},void 0,!1,void 0,this),T.isInstalled&&p(z,{dimColor:!0,children:" (installed)"},void 0,!1,void 0,this),Z&&k===I8&&p(z,{dimColor:!0,children:[" \xB7 ",V8(Z.get(T.pluginId)??0)," ","installs"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),T.entry.description&&p(O,{marginLeft:4,children:[p(z,{dimColor:!0,children:C8(T.entry.description,60)},void 0,!1,void 0,this),T.entry.version&&p(z,{dimColor:!0,children:[" \xB7 v",T.entry.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},T.pluginId,!0,void 0,this)}),fq.scrollPosition.canScrollDown&&p(O,{children:p(z,{dimColor:!0,children:[" ",AK.arrowDown," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),K&&p(O,{marginTop:1,children:p(z,{color:"error",children:[AK.cross," ",K]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p(wz,{hasSelection:D.size>0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Pz=uq(()=>{zK();YK();Bq();DK();D8();S8();h6();wK();cK();Mz();$6();G8();oK();Az();Gz();J6();PK();kz();b8();X6();P6();m8()});import{c as $z}from"react/compiler-runtime";import NK from"figures";import*as Zz from"react";import{useCallback as d7,useEffect as Z6,useMemo as E7,useState as Qq}from"react";import{jsxDEV as d,Fragment as tK}from"react/jsx-dev-runtime";function vz({error:K,setError:q,result:Y,setResult:f,setViewState:H,onInstallComplete:_,onSearchModeChange:J,targetPlugin:h}){let[W,P]=Qq("plugin-list"),[k,v]=Qq(null),[X,l]=Qq([]),[U,Wq]=Qq(!0),[G,j]=Qq(null),[N,F]=Qq(!1),Z=d7(($)=>{F($),J?.($)},[J]),{query:A,setQuery:u,cursorOffset:Hq}=g8({isActive:W==="plugin-list"&&N&&!U,onExit:()=>{Z(!1)}}),D=E8(),{columns:Q}=eK(),r=E7(()=>{if(!A)return X;let $=A.toLowerCase();return X.filter((L)=>L.entry.name.toLowerCase().includes($)||L.entry.description?.toLowerCase().includes($)||L.marketplaceName.toLowerCase().includes($))},[X,A]),[s,fq]=Qq(0),[m,Aq]=Qq(new Set),[Gq,zq]=Qq(new Set),B=nK({totalItems:r.length,selectedIndex:s});Z6(()=>{fq(0)},[A]);let[Mq,hq]=Qq(0),[wq,y]=Qq(!1),[C,g]=Qq(null),[Oq,Jq]=Qq(null),[T,i]=Qq(null);Z6(()=>{async function $(){try{let L=await WK(),{marketplaces:t,failures:Xq}=await _K(L),E=[];for(let{name:bq,data:Iq}of t)if(Iq)for(let iq of Iq.plugins){let ZK=yK(iq.name,bq);E.push({entry:iq,marketplaceName:bq,pluginId:ZK,isInstalled:BK(ZK)})}let o=E.filter((bq)=>!bq.isInstalled&&!QK(bq.pluginId));try{let bq=await p8();if(j(bq),bq)o.sort((Iq,iq)=>{let ZK=bq.get(Iq.pluginId)??0,w=bq.get(iq.pluginId)??0;if(ZK!==w)return w-ZK;return Iq.entry.name.localeCompare(iq.entry.name)});else o.sort((Iq,iq)=>Iq.entry.name.localeCompare(iq.entry.name))}catch(bq){RK(`Failed to fetch install counts: ${Eq(bq)}`),o.sort((Iq,iq)=>Iq.entry.name.localeCompare(iq.entry.name))}l(o);let Pq=Object.keys(L).length;if(o.length===0){let bq=await _z({configuredMarketplaceCount:Pq,failedMarketplaceCount:Xq.length});i(bq)}let Nq=OK(t,(bq)=>bq.data!==null),Zq=sK(Xq,Nq);if(Zq)if(Zq.type==="warning")Jq(Zq.message+". Showing available plugins.");else throw Error(Zq.message);if(h){let bq=E.find((Iq)=>Iq.entry.name===h);if(bq)if(bq.isInstalled)q(`Plugin '${bq.pluginId}' is already installed. Use '/plugin' to manage existing plugins.`);else v(bq),P("plugin-details");else q(`Plugin "${h}" not found in any marketplace`)}}catch(L){q(L instanceof Error?L.message:"Failed to load plugins")}finally{Wq(!1)}}$()},[q,h]);let I=async()=>{if(m.size===0)return;let $=X.filter((E)=>m.has(E.pluginId));zq(new Set($.map((E)=>E.pluginId)));let L=0,t=0,Xq=[];for(let E of $){let o=await lK({pluginId:E.pluginId,entry:E.entry,marketplaceName:E.marketplaceName,scope:"user"});if(o.success)L++;else t++,Xq.push({name:E.entry.name,reason:o.error})}if(zq(new Set),Aq(new Set),cq(),t===0){let E=`\u2713 Installed ${L} ${Vq(L,"plugin")}. Run /reload-plugins to activate.`;f(E)}else if(L===0)q(`Failed to install: ${rK(Xq,!0)}`);else{let E=`\u2713 Installed ${L} of ${L+t} plugins. Failed: ${rK(Xq,!1)}. Run /reload-plugins to activate successfully installed plugins.`;f(E)}if(L>0){if(_)await _()}H({type:"menu"})},V=async($,L="user")=>{y(!0),g(null);let t=await lK({pluginId:$.pluginId,entry:$.entry,marketplaceName:$.marketplaceName,scope:L});if(t.success){let Xq=await N8($.pluginId);if(Xq){y(!1),P({type:"plugin-options",plugin:Xq,pluginId:$.pluginId});return}if(f(t.message),_)await _();H({type:"menu"})}else y(!1),g(t.error)};Z6(()=>{if(K)f(K)},[K,f]),xq("confirm:no",()=>{P("plugin-list"),v(null)},{context:"Confirmation",isActive:W==="plugin-details"}),xq("confirm:no",()=>{H({type:"menu"})},{context:"Confirmation",isActive:W==="plugin-list"&&!N}),qK(($,L)=>{let t=!L.ctrl&&!L.meta;if(!N){if($==="/"&&t)Z(!0),u("");else if(t&&$.length>0&&!/^\s+$/.test($)&&$!=="j"&&$!=="k"&&$!=="i")Z(!0),u($)}},{isActive:W==="plugin-list"&&!U}),pq({"select:previous":()=>{if(s===0)Z(!0);else B.handleSelectionChange(s-1,fq)},"select:next":()=>{if(s<r.length-1)B.handleSelectionChange(s+1,fq)},"select:accept":()=>{if(s===r.length&&m.size>0)I();else if(s<r.length){let $=r[s];if($)if($.isInstalled)H({type:"manage-plugins",targetPlugin:$.entry.name,targetMarketplace:$.marketplaceName});else v($),P("plugin-details"),hq(0),g(null)}}},{context:"Select",isActive:W==="plugin-list"&&!N}),pq({"plugin:toggle":()=>{if(s<r.length){let $=r[s];if($&&!$.isInstalled){let L=new Set(m);if(L.has($.pluginId))L.delete($.pluginId);else L.add($.pluginId);Aq(L)}}},"plugin:install":()=>{if(m.size>0)I()}},{context:"Plugin",isActive:W==="plugin-list"&&!N});let c=Zz.useMemo(()=>{if(!k)return[];let $=k.entry.homepage,L=TK(k);return aK($,L)},[k]);if(pq({"select:previous":()=>{if(Mq>0)hq(Mq-1)},"select:next":()=>{if(Mq<c.length-1)hq(Mq+1)},"select:accept":()=>{if(!k)return;let $=c[Mq]?.action,L=k.entry.homepage,t=TK(k);if($==="install-user")V(k,"user");else if($==="install-project")V(k,"project");else if($==="install-local")V(k,"local");else if($==="homepage"&&L)KK(L);else if($==="github"&&t)KK(`https://github.com/${t}`);else if($==="back")P("plugin-list"),v(null)}},{context:"Select",isActive:W==="plugin-details"&&!!k}),typeof W==="object"&&W.type==="plugin-options"){let t=function(Xq){if(f(Xq),_)_();H({type:"menu"})},{plugin:$,pluginId:L}=W;return d(UK,{plugin:$,pluginId:L,onDone:(Xq,E)=>{switch(Xq){case"configured":t(`\u2713 Installed and configured ${$.name}. Run /reload-plugins to apply.`);break;case"skipped":t(`\u2713 Installed ${$.name}. Run /reload-plugins to apply.`);break;case"error":t(`Installed but failed to save config: ${E}`);break}}},void 0,!1,void 0,this)}if(U)return d(z,{children:"Loading\u2026"},void 0,!1,void 0,this);if(K)return d(z,{color:"error",children:K},void 0,!1,void 0,this);if(W==="plugin-details"&&k){let $=k.entry.homepage,L=TK(k),t=aK($,L);return d(O,{flexDirection:"column",children:[d(O,{marginBottom:1,children:d(z,{bold:!0,children:"Plugin details"},void 0,!1,void 0,this)},void 0,!1,void 0,this),d(O,{flexDirection:"column",marginBottom:1,children:[d(z,{bold:!0,children:k.entry.name},void 0,!1,void 0,this),d(z,{dimColor:!0,children:["from ",k.marketplaceName]},void 0,!0,void 0,this),k.entry.version&&d(z,{dimColor:!0,children:["Version: ",k.entry.version]},void 0,!0,void 0,this),k.entry.description&&d(O,{marginTop:1,children:d(z,{children:k.entry.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),k.entry.author&&d(O,{marginTop:1,children:d(z,{dimColor:!0,children:["By:"," ",typeof k.entry.author==="string"?k.entry.author:k.entry.author.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d(L8,{},void 0,!1,void 0,this),C&&d(O,{marginBottom:1,children:d(z,{color:"error",children:["Error: ",C]},void 0,!0,void 0,this)},void 0,!1,void 0,this),d(O,{flexDirection:"column",children:t.map((Xq,E)=>d(O,{children:[Mq===E&&d(z,{children:"> "},void 0,!1,void 0,this),Mq!==E&&d(z,{children:" "},void 0,!1,void 0,this),d(z,{bold:Mq===E,children:wq&&Xq.action.startsWith("install-")?"Installing\u2026":Xq.label},void 0,!1,void 0,this)]},Xq.action,!0,void 0,this))},void 0,!1,void 0,this),d(O,{marginTop:1,children:d(z,{dimColor:!0,children:d(Lq,{children:[d(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),d(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(X.length===0)return d(O,{flexDirection:"column",children:[d(O,{marginBottom:1,children:d(z,{bold:!0,children:"Discover plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),d(g7,{reason:T},void 0,!1,void 0,this),d(O,{marginTop:1,children:d(z,{dimColor:!0,italic:!0,children:"Esc to go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let S=B.getVisibleItems(r);return d(O,{flexDirection:"column",children:[d(O,{children:[d(z,{bold:!0,children:"Discover plugins"},void 0,!1,void 0,this),B.needsPagination&&d(z,{dimColor:!0,children:[" ","(",B.scrollPosition.current,"/",B.scrollPosition.total,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),d(O,{marginBottom:1,children:d(u8,{query:A,isFocused:N,isTerminalFocused:D,width:Q-4,cursorOffset:Hq},void 0,!1,void 0,this)},void 0,!1,void 0,this),Oq&&d(O,{marginBottom:1,children:d(z,{color:"warning",children:[NK.warning," ",Oq]},void 0,!0,void 0,this)},void 0,!1,void 0,this),r.length===0&&A&&d(O,{marginBottom:1,children:d(z,{dimColor:!0,children:['No plugins match "',A,'"']},void 0,!0,void 0,this)},void 0,!1,void 0,this),B.scrollPosition.canScrollUp&&d(O,{children:d(z,{dimColor:!0,children:[" ",NK.arrowUp," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),S.map(($,L)=>{let t=B.toActualIndex(L),Xq=s===t,E=m.has($.pluginId),o=Gq.has($.pluginId),Pq=L===S.length-1;return d(O,{flexDirection:"column",marginBottom:Pq&&!K?0:1,children:[d(O,{children:[d(z,{color:Xq&&!N?"suggestion":void 0,children:[Xq&&!N?NK.pointer:" "," "]},void 0,!0,void 0,this),d(z,{children:[o?NK.ellipsis:E?NK.radioOn:NK.radioOff," ",$.entry.name,d(z,{dimColor:!0,children:[" \xB7 ",$.marketplaceName]},void 0,!0,void 0,this),$.entry.tags?.includes("community-managed")&&d(z,{dimColor:!0,children:" [Community Managed]"},void 0,!1,void 0,this),G&&$.marketplaceName===I8&&d(z,{dimColor:!0,children:[" \xB7 ",V8(G.get($.pluginId)??0)," ","installs"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$.entry.description&&d(O,{marginLeft:4,children:d(z,{dimColor:!0,children:C8($.entry.description,60)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},`${B.startIndex}-${$.pluginId}`,!0,void 0,this)}),B.scrollPosition.canScrollDown&&d(O,{children:d(z,{dimColor:!0,children:[" ",NK.arrowDown," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),K&&d(O,{marginTop:1,children:d(z,{color:"error",children:[NK.cross," ",K]},void 0,!0,void 0,this)},void 0,!1,void 0,this),d(u7,{hasSelection:m.size>0,canToggle:s<r.length&&!r[s]?.isInstalled},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function u7(K){let q=$z(10),{hasSelection:Y,canToggle:f}=K,H;if(q[0]!==Y)H=Y&&d(kq,{action:"plugin:install",context:"Plugin",fallback:"i",description:"install",bold:!0},void 0,!1,void 0,this),q[0]=Y,q[1]=H;else H=q[1];let _;if(q[2]===Symbol.for("react.memo_cache_sentinel"))_=d(z,{children:"type to search"},void 0,!1,void 0,this),q[2]=_;else _=q[2];let J;if(q[3]!==f)J=f&&d(kq,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"},void 0,!1,void 0,this),q[3]=f,q[4]=J;else J=q[4];let h,W;if(q[5]===Symbol.for("react.memo_cache_sentinel"))h=d(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"},void 0,!1,void 0,this),W=d(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this),q[5]=h,q[6]=W;else h=q[5],W=q[6];let P;if(q[7]!==H||q[8]!==J)P=d(O,{marginTop:1,children:d(z,{dimColor:!0,italic:!0,children:d(Lq,{children:[H,_,J,h,W]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[7]=H,q[8]=J,q[9]=P;else P=q[9];return P}function g7(K){let q=$z(6),{reason:Y}=K;switch(Y){case"git-not-installed":{let f;if(q[0]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Git is required to install marketplaces."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Please install git and restart Claude Code."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[0]=f;else f=q[0];return f}case"all-blocked-by-policy":{let f;if(q[1]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Your organization policy does not allow any external marketplaces."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Contact your administrator."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[1]=f;else f=q[1];return f}case"policy-restricts-sources":{let f;if(q[2]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Your organization restricts which marketplaces can be added."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Switch to the Marketplaces tab to view allowed sources."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[2]=f;else f=q[2];return f}case"all-marketplaces-failed":{let f;if(q[3]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Failed to load marketplace data."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Check your network connection."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[3]=f;else f=q[3];return f}case"all-plugins-installed":{let f;if(q[4]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"All available plugins are already installed."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Check for new plugins later or add more marketplaces."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[4]=f;else f=q[4];return f}case"no-marketplaces-configured":default:{let f;if(q[5]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"No plugins available."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Add a marketplace first using the Marketplaces tab."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[5]=f;else f=q[5];return f}}}var Tz=uq(()=>{zK();YK();hz();Jz();v6();Bq();DK();D8();S8();h6();wK();cK();Mz();$6();G8();oK();Az();Gz();J6();PK();kz();b8();X6();P6();m8()});import{c as F7}from"react/compiler-runtime";import bK from"figures";import{useEffect as U7,useRef as a7,useState as GK}from"react";import{jsxDEV as b,Fragment as X8}from"react/jsx-dev-runtime";function Nz({setViewState:K,error:q,setError:Y,setResult:f,exitState:H,onManageComplete:_,targetMarketplace:J,action:h}){let[W,P]=GK([]),[k,v]=GK(!0),[X,l]=GK(0),[U,Wq]=GK(!1),[G,j]=GK(null),[N,F]=GK(null),[Z,A]=GK(null),[u,Hq]=GK("list"),[D,Q]=GK(null),[r,s]=GK(0),fq=a7(!1);U7(()=>{async function y(){try{let C=await WK(),{enabled:g,disabled:Oq}=await IK(),Jq=[...g,...Oq],{marketplaces:T,failures:i}=await _K(C),I=[];for(let{name:S,config:$,data:L}of T){let t=Jq.filter((Xq)=>Xq.source.endsWith(`@${S}`));I.push({name:S,source:M8($.source),lastUpdated:$.lastUpdated,pluginCount:L?.plugins.length,installedPlugins:t,pendingUpdate:!1,pendingRemove:!1,autoUpdate:T6(S,$)})}I.sort((S,$)=>{if(S.name==="claude-plugin-directory")return-1;if($.name==="claude-plugin-directory")return 1;return S.name.localeCompare($.name)}),P(I);let V=OK(T,(S)=>S.data!==null),c=sK(i,V);if(c)if(c.type==="warning")j(c.message);else throw Error(c.message);if(J&&!fq.current&&!q){fq.current=!0;let S=I.findIndex(($)=>$.name===J);if(S>=0){let $=I[S];if(h){l(S+1);let L=[...I];if(h==="update")L[S].pendingUpdate=!0;else if(h==="remove")L[S].pendingRemove=!0;P(L),setTimeout(Gq,100,L)}else if($)l(S+1),Q($),Hq("details")}else if(Y)Y(`Marketplace not found: ${J}`)}}catch(C){if(Y)Y(C instanceof Error?C.message:"Failed to load marketplaces");j(C instanceof Error?C.message:"Failed to load marketplaces")}finally{v(!1)}}y()},[J,h,q]);let m=()=>{return W.some((y)=>y.pendingUpdate||y.pendingRemove)},Aq=()=>{let y=OK(W,(g)=>g.pendingUpdate),C=OK(W,(g)=>g.pendingRemove);return{updateCount:y,removeCount:C}},Gq=async(y)=>{let C=y||W,g=u==="details";Wq(!0),j(null),F(null),A(null);try{let Oq=hK("userSettings"),Jq=0,T=0,i=new Set;for(let E of C){if(E.pendingRemove){if(E.installedPlugins&&E.installedPlugins.length>0){let o={...Oq?.enabledPlugins};for(let Pq of E.installedPlugins){let Nq=yK(Pq.name,E.name);o[Nq]=!1}VK("userSettings",{enabledPlugins:o})}await x8(E.name),T++,nq("tengu_marketplace_removed",{marketplace_name:E.name,plugins_uninstalled:E.installedPlugins?.length||0});continue}if(E.pendingUpdate)await jz(E.name,(o)=>{A(o)}),Jq++,i.add(E.name.toLowerCase()),nq("tengu_marketplace_updated",{marketplace_name:E.name})}let I=0;if(i.size>0)I=(await Rz(i)).length;if(cq(),_)await _();let V=await WK(),{enabled:c,disabled:S}=await IK(),$=[...c,...S],{marketplaces:L}=await _K(V),t=[];for(let{name:E,config:o,data:Pq}of L){let Nq=$.filter((Zq)=>Zq.source.endsWith(`@${E}`));t.push({name:E,source:M8(o.source),lastUpdated:o.lastUpdated,pluginCount:Pq?.plugins.length,installedPlugins:Nq,pendingUpdate:!1,pendingRemove:!1,autoUpdate:T6(E,o)})}if(t.sort((E,o)=>{if(E.name==="claude-plugin-directory")return-1;if(o.name==="claude-plugin-directory")return 1;return E.name.localeCompare(o.name)}),P(t),g&&D){let E=t.find((o)=>o.name===D.name);if(E)Q(E)}let Xq=[];if(Jq>0){let E=I>0?` (${I} ${Vq(I,"plugin")} bumped)`:"";Xq.push(`Updated ${Jq} ${Vq(Jq,"marketplace")}${E}`)}if(T>0)Xq.push(`Removed ${T} ${Vq(T,"marketplace")}`);if(Xq.length>0){let E=`${bK.tick} ${Xq.join(", ")}`;if(g)F(E);else f(E),setTimeout(K,2000,{type:"menu"})}else if(!g)K({type:"menu"})}catch(Oq){let Jq=Eq(Oq);if(j(Jq),Y)Y(Jq)}finally{Wq(!1),A(null)}},zq=async()=>{if(!D)return;let y=W.map((C)=>C.name===D.name?{...C,pendingRemove:!0}:C);P(y),await Gq(y)},B=(y)=>{if(!y)return[];let C=[{label:`Browse plugins (${y.pluginCount??0})`,value:"browse"},{label:"Update marketplace",secondaryLabel:y.lastUpdated?`(last updated ${new Date(y.lastUpdated).toLocaleDateString()})`:void 0,value:"update"}];if(!j6())C.push({label:y.autoUpdate?"Disable auto-update":"Enable auto-update",value:"toggle-auto-update"});return C.push({label:"Remove marketplace",value:"remove"}),C},Mq=async(y)=>{let C=!y.autoUpdate;try{await yz(y.name,C),P((g)=>g.map((Oq)=>Oq.name===y.name?{...Oq,autoUpdate:C}:Oq)),Q((g)=>g?{...g,autoUpdate:C}:g)}catch(g){j(g instanceof Error?g.message:"Failed to update setting")}};if(xq("confirm:no",()=>{Hq("list"),s(0)},{context:"Confirmation",isActive:!U&&(u==="details"||u==="confirm-remove")}),xq("confirm:no",()=>{P((y)=>y.map((C)=>({...C,pendingUpdate:!1,pendingRemove:!1}))),l(0)},{context:"Confirmation",isActive:!U&&u==="list"&&m()}),xq("confirm:no",()=>{K({type:"menu"})},{context:"Confirmation",isActive:!U&&u==="list"&&!m()}),pq({"select:previous":()=>l((y)=>Math.max(0,y-1)),"select:next":()=>{let y=W.length+1;l((C)=>Math.min(y-1,C+1))},"select:accept":()=>{let y=X-1;if(X===0)K({type:"add-marketplace"});else if(m())Gq();else{let C=W[y];if(C)Q(C),Hq("details"),s(0)}}},{context:"Select",isActive:!U&&u==="list"}),qK((y)=>{let C=X-1;if((y==="u"||y==="U")&&C>=0)P((g)=>g.map((Oq,Jq)=>Jq===C?{...Oq,pendingUpdate:!Oq.pendingUpdate,pendingRemove:Oq.pendingUpdate?Oq.pendingRemove:!1}:Oq));else if((y==="r"||y==="R")&&C>=0){let g=W[C];if(g)Q(g),Hq("confirm-remove")}},{isActive:!U&&u==="list"}),pq({"select:previous":()=>s((y)=>Math.max(0,y-1)),"select:next":()=>{let y=B(D);s((C)=>Math.min(y.length-1,C+1))},"select:accept":()=>{if(!D)return;let C=B(D)[r];if(C?.value==="browse")K({type:"browse-marketplace",targetMarketplace:D.name});else if(C?.value==="update"){let g=W.map((Oq)=>Oq.name===D.name?{...Oq,pendingUpdate:!0}:Oq);P(g),Gq(g)}else if(C?.value==="toggle-auto-update")Mq(D);else if(C?.value==="remove")Hq("confirm-remove")}},{context:"Select",isActive:!U&&u==="details"}),qK((y)=>{if(y==="y"||y==="Y")zq();else if(y==="n"||y==="N")Hq("list"),Q(null)},{isActive:!U&&u==="confirm-remove"}),k)return b(z,{children:"Loading marketplaces\u2026"},void 0,!1,void 0,this);if(W.length===0)return b(O,{flexDirection:"column",children:[b(O,{marginBottom:1,children:b(z,{bold:!0,children:"Manage marketplaces"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(O,{flexDirection:"row",gap:1,children:[b(z,{color:"suggestion",children:[bK.pointer," +"]},void 0,!0,void 0,this),b(z,{bold:!0,color:"suggestion",children:"Add Marketplace"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),b(O,{marginLeft:3,children:b(z,{dimColor:!0,italic:!0,children:H.pending?b(X8,{children:["Press ",H.keyName," again to go back"]},void 0,!0,void 0,this):b(Lq,{children:[b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),b(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(u==="confirm-remove"&&D){let y=D.installedPlugins?.length||0;return b(O,{flexDirection:"column",children:[b(z,{bold:!0,color:"warning",children:["Remove marketplace ",b(z,{italic:!0,children:D.name},void 0,!1,void 0,this),"?"]},void 0,!0,void 0,this),b(O,{flexDirection:"column",children:[y>0&&b(O,{marginTop:1,children:b(z,{color:"warning",children:["This will also uninstall ",y," ",Vq(y,"plugin")," from this marketplace:"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),D.installedPlugins&&D.installedPlugins.length>0&&b(O,{flexDirection:"column",marginTop:1,marginLeft:2,children:D.installedPlugins.map((C)=>b(z,{dimColor:!0,children:["\u2022 ",C.name]},C.name,!0,void 0,this))},void 0,!1,void 0,this),b(O,{marginTop:1,children:b(z,{children:["Press ",b(z,{bold:!0,children:"y"},void 0,!1,void 0,this)," to confirm or ",b(z,{bold:!0,children:"n"},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}if(u==="details"&&D){let y=D.pendingUpdate||U,C=B(D);return b(O,{flexDirection:"column",children:[b(z,{bold:!0,children:D.name},void 0,!1,void 0,this),b(z,{dimColor:!0,children:D.source},void 0,!1,void 0,this),b(O,{marginTop:1,children:b(z,{children:[D.pluginCount||0," available"," ",Vq(D.pluginCount||0,"plugin")]},void 0,!0,void 0,this)},void 0,!1,void 0,this),D.installedPlugins&&D.installedPlugins.length>0&&b(O,{flexDirection:"column",marginTop:1,children:[b(z,{bold:!0,children:["Installed plugins (",D.installedPlugins.length,"):"]},void 0,!0,void 0,this),b(O,{flexDirection:"column",marginLeft:1,children:D.installedPlugins.map((g)=>b(O,{flexDirection:"row",gap:1,children:[b(z,{children:bK.bullet},void 0,!1,void 0,this),b(O,{flexDirection:"column",children:[b(z,{children:g.name},void 0,!1,void 0,this),b(z,{dimColor:!0,children:g.manifest.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},g.name,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),y&&b(O,{marginTop:1,flexDirection:"column",children:[b(z,{color:"claude",children:"Updating marketplace\u2026"},void 0,!1,void 0,this),Z&&b(z,{dimColor:!0,children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!y&&N&&b(O,{marginTop:1,children:b(z,{color:"claude",children:N},void 0,!1,void 0,this)},void 0,!1,void 0,this),!y&&G&&b(O,{marginTop:1,children:b(z,{color:"error",children:G},void 0,!1,void 0,this)},void 0,!1,void 0,this),!y&&b(O,{flexDirection:"column",marginTop:1,children:C.map((g,Oq)=>{if(!g)return null;let Jq=Oq===r;return b(O,{children:[b(z,{color:Jq?"suggestion":void 0,children:[Jq?bK.pointer:" "," ",g.label]},void 0,!0,void 0,this),g.secondaryLabel&&b(z,{dimColor:!0,children:[" ",g.secondaryLabel]},void 0,!0,void 0,this)]},g.value,!0,void 0,this)})},void 0,!1,void 0,this),!y&&!j6()&&D.autoUpdate&&b(O,{marginTop:1,children:b(z,{dimColor:!0,children:"Auto-update enabled. Claude Code will automatically update this marketplace and its installed plugins."},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(O,{marginLeft:3,children:b(z,{dimColor:!0,italic:!0,children:y?b(X8,{children:"Please wait\u2026"},void 0,!1,void 0,this):b(Lq,{children:[b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),b(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}let{updateCount:hq,removeCount:wq}=Aq();return b(O,{flexDirection:"column",children:[b(O,{marginBottom:1,children:b(z,{bold:!0,children:"Manage marketplaces"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(O,{flexDirection:"row",gap:1,marginBottom:1,children:[b(z,{color:X===0?"suggestion":void 0,children:[X===0?bK.pointer:" "," +"]},void 0,!0,void 0,this),b(z,{bold:!0,color:X===0?"suggestion":void 0,children:"Add Marketplace"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),b(O,{flexDirection:"column",children:W.map((y,C)=>{let g=C+1===X,Oq=[];if(y.pendingUpdate)Oq.push("UPDATE");if(y.pendingRemove)Oq.push("REMOVE");return b(O,{flexDirection:"row",gap:1,marginBottom:1,children:[b(z,{color:g?"suggestion":void 0,children:[g?bK.pointer:" "," ",y.pendingRemove?bK.cross:bK.bullet]},void 0,!0,void 0,this),b(O,{flexDirection:"column",flexGrow:1,children:[b(O,{flexDirection:"row",gap:1,children:[b(z,{bold:!0,strikethrough:y.pendingRemove,dimColor:y.pendingRemove,children:[y.name==="claude-plugins-official"&&b(z,{color:"claude",children:"\u273B "},void 0,!1,void 0,this),y.name,y.name==="claude-plugins-official"&&b(z,{color:"claude",children:" \u273B"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Oq.length>0&&b(z,{color:"warning",children:["[",Oq.join(", "),"]"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),b(z,{dimColor:!0,children:y.source},void 0,!1,void 0,this),b(z,{dimColor:!0,children:[y.pluginCount!==void 0&&b(X8,{children:[y.pluginCount," available"]},void 0,!0,void 0,this),y.installedPlugins&&y.installedPlugins.length>0&&b(X8,{children:[" \u2022 ",y.installedPlugins.length," installed"]},void 0,!0,void 0,this),y.lastUpdated&&b(X8,{children:[" ","\u2022 Updated"," ",new Date(y.lastUpdated).toLocaleDateString()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},y.name,!0,void 0,this)})},void 0,!1,void 0,this),m()&&b(O,{marginTop:1,flexDirection:"column",children:[b(z,{children:[b(z,{bold:!0,children:"Pending changes:"},void 0,!1,void 0,this)," ",b(z,{dimColor:!0,children:"Enter to apply"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),hq>0&&b(z,{children:["\u2022 Update ",hq," ",Vq(hq,"marketplace")]},void 0,!0,void 0,this),wq>0&&b(z,{color:"warning",children:["\u2022 Remove ",wq," ",Vq(wq,"marketplace")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U&&b(O,{marginTop:1,children:b(z,{color:"claude",children:"Processing changes\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G&&b(O,{marginTop:1,children:b(z,{color:"error",children:G},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(n7,{exitState:H,hasPendingActions:m()},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function n7(K){let q=F7(18),{exitState:Y,hasPendingActions:f}=K;if(Y.pending){let v;if(q[0]!==Y.keyName)v=b(O,{marginTop:1,children:b(z,{dimColor:!0,italic:!0,children:["Press ",Y.keyName," again to go back"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),q[0]=Y.keyName,q[1]=v;else v=q[1];return v}let H;if(q[2]!==f)H=f&&b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"apply changes"},void 0,!1,void 0,this),q[2]=f,q[3]=H;else H=q[3];let _;if(q[4]!==f)_=!f&&b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),q[4]=f,q[5]=_;else _=q[5];let J;if(q[6]!==f)J=!f&&b(oq,{shortcut:"u",action:"update"},void 0,!1,void 0,this),q[6]=f,q[7]=J;else J=q[7];let h;if(q[8]!==f)h=!f&&b(oq,{shortcut:"r",action:"remove"},void 0,!1,void 0,this),q[8]=f,q[9]=h;else h=q[9];let W=f?"cancel":"go back",P;if(q[10]!==W)P=b(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:W},void 0,!1,void 0,this),q[10]=W,q[11]=P;else P=q[11];let k;if(q[12]!==H||q[13]!==_||q[14]!==J||q[15]!==h||q[16]!==P)k=b(O,{marginTop:1,children:b(z,{dimColor:!0,italic:!0,children:b(Lq,{children:[H,_,J,h,P]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[12]=H,q[13]=_,q[14]=J,q[15]=h,q[16]=P,q[17]=k;else k=q[17];return k}var bz=uq(()=>{H6();zK();YK();A8();Bq();DK();D8();c7();wK();cK();G8();oK();o7();G6();x7();y6();PK()});import{c as B7}from"react/compiler-runtime";import{jsxDEV as c8}from"react/jsx-dev-runtime";function o8(K){let q=B7(9),{serverToolsCount:Y,serverPromptsCount:f,serverResourcesCount:H}=K,_;if(q[0]!==f||q[1]!==H||q[2]!==Y){if(_=[],Y>0)_.push("tools");if(H>0)_.push("resources");if(f>0)_.push("prompts");q[0]=f,q[1]=H,q[2]=Y,q[3]=_}else _=q[3];let J;if(q[4]===Symbol.for("react.memo_cache_sentinel"))J=c8(z,{bold:!0,children:"Capabilities: "},void 0,!1,void 0,this),q[4]=J;else J=q[4];let h;if(q[5]!==_)h=_.length>0?c8(Lq,{children:_},void 0,!1,void 0,this):"none",q[5]=_,q[6]=h;else h=q[6];let W;if(q[7]!==h)W=c8(O,{children:[J,c8(z,{color:"text",children:h},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[7]=h,q[8]=W;else W=q[8];return W}var R6=uq(()=>{Bq();YK()});function F8(K,q){switch(K.client.type){case"connected":return{message:`Reconnected to ${q}.`,success:!0};case"needs-auth":return{message:`${q} requires authentication. Use the 'Authenticate' option.`,success:!1};case"failed":return{message:`Failed to reconnect to ${q}.`,success:!1};default:return{message:`Unknown result when reconnecting to ${q}.`,success:!1}}}function P8(K,q){let Y=K instanceof Error?K.message:String(K);return`Error reconnecting to ${q}: ${Y}`}var N6=()=>{};import dK from"figures";import JK,{useEffect as t7,useRef as b6,useState as MK}from"react";import{jsxDEV as R,Fragment as U8}from"react/jsx-dev-runtime";function Q8({server:K,serverToolsCount:q,onViewTools:Y,onCancel:f,onComplete:H,borderless:_=!1}){let[J]=q8(),h=K8(),{columns:W}=eK(),[P,k]=JK.useState(!1),[v,X]=JK.useState(null),l=sq((o)=>o.mcp),U=_8(),[Wq,G]=JK.useState(null),[j,N]=MK(!1),F=b6(null),[Z,A]=MK(!1),[u,Hq]=MK(null),[D,Q]=MK(!1),[r,s]=MK(null),[fq,m]=MK(!1),[Aq,Gq]=MK(!1),zq=b6(void 0),B=b6(!1),[Mq,hq]=MK(""),[wq,y]=MK(0),[C,g]=MK(null);t7(()=>()=>{if(B.current=!0,F.current?.abort(),zq.current!==void 0)clearTimeout(zq.current)},[]);let Oq=K.isAuthenticated||K.client.type==="connected"&&q>0,Jq=l8(),T=JK.useCallback(async()=>{A(!1),Hq(null),N(!0);try{let o=await Jq(K.name),Pq=o.client.type==="connected";if(nq("tengu_claudeai_mcp_auth_completed",{success:Pq}),Pq)H?.(`Authentication successful. Connected to ${K.name}.`);else if(o.client.type==="needs-auth")H?.("Authentication successful, but server still requires authentication. You may need to manually restart UnieAI Code.");else H?.("Authentication successful, but server reconnection failed. You may need to manually restart UnieAI Code for the changes to take effect.")}catch(o){nq("tengu_claudeai_mcp_auth_completed",{success:!1}),H?.(P8(o,K.name))}finally{N(!1)}},[Jq,K.name,H]),i=JK.useCallback(async()=>{await I6(K.name,{...K.config,scope:K.scope}),U((o)=>{let Pq=o.mcp.clients.map((Iq)=>Iq.name===K.name?{...Iq,type:"needs-auth"}:Iq),Nq=m6(o.mcp.tools,K.name),Zq=C6(o.mcp.commands,K.name),bq=D6(o.mcp.resources,K.name);return{...o,mcp:{...o.mcp,clients:Pq,tools:Nq,commands:Zq,resources:bq}}}),nq("tengu_claudeai_mcp_clear_auth_completed",{}),H?.(`Disconnected from ${K.name}.`),Q(!1),s(null),m(!1)},[K.name,K.config,K.scope,U,H]);xq("confirm:no",()=>{F.current?.abort(),F.current=null,k(!1),G(null)},{context:"Confirmation",isActive:P}),xq("confirm:no",()=>{A(!1),Hq(null)},{context:"Confirmation",isActive:Z}),xq("confirm:no",()=>{Q(!1),s(null),m(!1)},{context:"Confirmation",isActive:D}),qK((o,Pq)=>{if(Pq.return&&Z)T();if(Pq.return&&D)if(fq)i();else{let Nq=`${L6().CLAUDE_AI_ORIGIN}/settings/connectors`;s(Nq),m(!0),KK(Nq)}if(o==="c"&&!Aq){let Nq=Wq||u||r;if(Nq)Cz(Nq).then((Zq)=>{if(B.current)return;if(Zq)process.stdout.write(Zq);if(Gq(!0),zq.current!==void 0)clearTimeout(zq.current);zq.current=setTimeout(Gq,2000,!1)})}});let I=n8(String(K.name)),V=B8(l.commands,K.name).length,c=Y8(),S=JK.useCallback(async()=>{let o=L6().CLAUDE_AI_ORIGIN,Nq=mz()?.organizationUuid,Zq;if(Nq&&K.config.type==="claudeai-proxy"&&K.config.id){let bq=K.config.id.startsWith("mcprs")?"mcpsrv"+K.config.id.slice(5):K.config.id,Iq=encodeURIComponent(process.env.CLAUDE_CODE_ENTRYPOINT||"cli");Zq=`${o}/api/organizations/${Nq}/mcp/start-auth/${bq}?product_surface=${Iq}`}else Zq=`${o}/settings/connectors`;Hq(Zq),A(!0),nq("tengu_claudeai_mcp_auth_started",{}),await KK(Zq)},[K.config]),$=JK.useCallback(()=>{Q(!0),nq("tengu_claudeai_mcp_clear_auth_started",{})},[]),L=JK.useCallback(async()=>{let o=K.client.type!=="disabled";try{if(await c(K.name),K.config.type==="claudeai-proxy")nq("tengu_claudeai_mcp_toggle",{new_state:o?"disabled":"enabled"});f()}catch(Pq){H?.(`Failed to ${o?"disable":"enable"} MCP server '${K.name}': ${Eq(Pq)}`)}},[K.client.type,K.config.type,K.name,c,f,H]),t=JK.useCallback(async()=>{if(K.config.type==="claudeai-proxy")return;k(!0),X(null);let o=new AbortController;F.current=o;try{if(K.isAuthenticated&&K.config)await S6(K.name,K.config,{preserveStepUpState:!0});if(K.config){await Sz(K.name,K.config,G,o.signal,{onWaitingForCallback:(Nq)=>{g(()=>Nq)}}),nq("tengu_mcp_auth_config_authenticate",{wasAuthenticated:K.isAuthenticated});let Pq=await Jq(K.name);if(Pq.client.type==="connected"){let Nq=Oq?`Authentication successful. Reconnected to ${K.name}.`:`Authentication successful. Connected to ${K.name}.`;H?.(Nq)}else if(Pq.client.type==="needs-auth")H?.("Authentication successful, but server still requires authentication. You may need to manually restart UnieAI Code.");else Lz(K.name,"Reconnection failed after authentication"),H?.("Authentication successful, but server reconnection failed. You may need to manually restart UnieAI Code for the changes to take effect.")}}catch(Pq){if(Pq instanceof Error&&!(Pq instanceof Dz))X(Pq.message)}finally{k(!1),F.current=null,g(null),hq("")}},[K.isAuthenticated,K.config,K.name,H,Jq,Oq]),Xq=async()=>{if(K.config.type==="claudeai-proxy")return;if(K.config)await S6(K.name,K.config),nq("tengu_mcp_auth_config_clear",{}),await I6(K.name,{...K.config,scope:K.scope}),U((o)=>{let Pq=o.mcp.clients.map((Iq)=>Iq.name===K.name?{...Iq,type:"failed"}:Iq),Nq=m6(o.mcp.tools,K.name),Zq=C6(o.mcp.commands,K.name),bq=D6(o.mcp.resources,K.name);return{...o,mcp:{...o.mcp,clients:Pq,tools:Nq,commands:Zq,resources:bq}}}),H?.(`Authentication cleared for ${K.name}.`)};if(P){let o=K.config.type!=="claudeai-proxy"&&K.config.oauth?.xaa?" Authenticating via your identity provider":" A browser window will open for authentication";return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"claude",children:["Authenticating with ",K.name,"\u2026"]},void 0,!0,void 0,this),R(O,{children:[R(vK,{},void 0,!1,void 0,this),R(z,{children:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Wq&&R(O,{flexDirection:"column",children:[R(O,{children:[R(z,{dimColor:!0,children:["If your browser doesn't open automatically, copy this URL manually"," "]},void 0,!0,void 0,this),Aq?R(z,{color:"success",children:"(Copied!)"},void 0,!1,void 0,this):R(z,{dimColor:!0,children:R(oq,{shortcut:"c",action:"copy",parens:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(a8,{url:Wq},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P&&Wq&&C&&R(O,{flexDirection:"column",marginTop:1,children:[R(z,{dimColor:!0,children:"If the redirect page shows a connection error, paste the URL from your browser's address bar:"},void 0,!1,void 0,this),R(O,{children:[R(z,{dimColor:!0,children:["URL ",">"," "]},void 0,!0,void 0,this),R(j8,{value:Mq,onChange:hq,onSubmit:(Pq)=>{C(Pq.trim()),hq("")},cursorOffset:wq,onChangeCursorOffset:y,columns:W-8},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R(O,{marginLeft:3,children:R(z,{dimColor:!0,children:"Return here after authenticating in your browser. Press Esc to go back."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(Z)return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"claude",children:["Authenticating with ",K.name,"\u2026"]},void 0,!0,void 0,this),R(O,{children:[R(vK,{},void 0,!1,void 0,this),R(z,{children:" A browser window will open for authentication"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),u&&R(O,{flexDirection:"column",children:[R(O,{children:[R(z,{dimColor:!0,children:["If your browser doesn't open automatically, copy this URL manually"," "]},void 0,!0,void 0,this),Aq?R(z,{color:"success",children:"(Copied!)"},void 0,!1,void 0,this):R(z,{dimColor:!0,children:R(oq,{shortcut:"c",action:"copy",parens:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(a8,{url:u},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{marginLeft:3,flexDirection:"column",children:[R(z,{color:"permission",children:["Press ",R(z,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," after authenticating in your browser."]},void 0,!0,void 0,this),R(z,{dimColor:!0,italic:!0,children:R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(D)return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"claude",children:["Clear authentication for ",K.name]},void 0,!0,void 0,this),fq?R(U8,{children:[R(z,{children:'Find the MCP server in the browser and click "Disconnect".'},void 0,!1,void 0,this),r&&R(O,{flexDirection:"column",children:[R(O,{children:[R(z,{dimColor:!0,children:["If your browser didn't open automatically, copy this URL manually"," "]},void 0,!0,void 0,this),Aq?R(z,{color:"success",children:"(Copied!)"},void 0,!1,void 0,this):R(z,{dimColor:!0,children:R(oq,{shortcut:"c",action:"copy",parens:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(a8,{url:r},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{marginLeft:3,flexDirection:"column",children:[R(z,{color:"permission",children:["Press ",R(z,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," when done."]},void 0,!0,void 0,this),R(z,{dimColor:!0,italic:!0,children:R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):R(U8,{children:[R(z,{children:'This will open claude.ai in the browser. Find the MCP server in the list and click "Disconnect".'},void 0,!1,void 0,this),R(O,{marginLeft:3,flexDirection:"column",children:[R(z,{color:"permission",children:["Press ",R(z,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," to open the browser."]},void 0,!0,void 0,this),R(z,{dimColor:!0,italic:!0,children:R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(j)return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"text",children:["Connecting to ",R(z,{bold:!0,children:K.name},void 0,!1,void 0,this),"\u2026"]},void 0,!0,void 0,this),R(O,{children:[R(vK,{},void 0,!1,void 0,this),R(z,{children:" Establishing connection to MCP server"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(z,{dimColor:!0,children:"This may take a few moments."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let E=[];if(K.client.type==="disabled")E.push({label:"Enable",value:"toggle-enabled"});if(K.client.type==="connected"&&q>0)E.push({label:"View tools",value:"tools"});if(K.config.type==="claudeai-proxy"){if(K.client.type==="connected")E.push({label:"Clear authentication",value:"claudeai-clear-auth"});else if(K.client.type!=="disabled")E.push({label:"Authenticate",value:"claudeai-auth"})}else{if(Oq)E.push({label:"Re-authenticate",value:"reauth"}),E.push({label:"Clear authentication",value:"clear-auth"});if(!Oq)E.push({label:"Authenticate",value:"auth"})}if(K.client.type!=="disabled"){if(K.client.type!=="needs-auth")E.push({label:"Reconnect",value:"reconnectMcpServer"});E.push({label:"Disable",value:"toggle-enabled"})}if(E.length===0)E.push({label:"Back",value:"back"});return R(O,{flexDirection:"column",children:[R(O,{flexDirection:"column",paddingX:1,borderStyle:_?void 0:"round",children:[R(O,{marginBottom:1,children:R(z,{bold:!0,children:[I," MCP Server"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),R(O,{flexDirection:"column",gap:0,children:[R(O,{children:[R(z,{bold:!0,children:"Status: "},void 0,!1,void 0,this),K.client.type==="disabled"?R(z,{children:[dq("inactive",J)(dK.radioOff)," disabled"]},void 0,!0,void 0,this):K.client.type==="connected"?R(z,{children:[dq("success",J)(dK.tick)," connected"]},void 0,!0,void 0,this):K.client.type==="pending"?R(U8,{children:[R(z,{dimColor:!0,children:dK.radioOff},void 0,!1,void 0,this),R(z,{children:" connecting\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):K.client.type==="needs-auth"?R(z,{children:[dq("warning",J)(dK.triangleUpOutline)," needs authentication"]},void 0,!0,void 0,this):R(z,{children:[dq("error",J)(dK.cross)," failed"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K.transport!=="claudeai-proxy"&&R(O,{children:[R(z,{bold:!0,children:"Auth: "},void 0,!1,void 0,this),Oq?R(z,{children:[dq("success",J)(dK.tick)," authenticated"]},void 0,!0,void 0,this):R(z,{children:[dq("error",J)(dK.cross)," not authenticated"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R(O,{children:[R(z,{bold:!0,children:"URL: "},void 0,!1,void 0,this),R(z,{dimColor:!0,children:K.config.url},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{children:[R(z,{bold:!0,children:"Config location: "},void 0,!1,void 0,this),R(z,{dimColor:!0,children:r8(K.scope)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.client.type==="connected"&&R(o8,{serverToolsCount:q,serverPromptsCount:V,serverResourcesCount:l.resources[K.name]?.length||0},void 0,!1,void 0,this),K.client.type==="connected"&&q>0&&R(O,{children:[R(z,{bold:!0,children:"Tools: "},void 0,!1,void 0,this),R(z,{dimColor:!0,children:[q," tools"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),v&&R(O,{marginTop:1,children:R(z,{color:"error",children:["Error: ",v]},void 0,!0,void 0,this)},void 0,!1,void 0,this),E.length>0&&R(O,{marginTop:1,children:R(z8,{options:E,onChange:async(o)=>{switch(o){case"tools":Y();break;case"auth":case"reauth":await t();break;case"clear-auth":await Xq();break;case"claudeai-auth":await S();break;case"claudeai-clear-auth":$();break;case"reconnectMcpServer":N(!0);try{let Pq=await Jq(K.name);if(K.config.type==="claudeai-proxy")nq("tengu_claudeai_mcp_reconnect",{success:Pq.client.type==="connected"});let{message:Nq}=F8(Pq,K.name);H?.(Nq)}catch(Pq){if(K.config.type==="claudeai-proxy")nq("tengu_claudeai_mcp_reconnect",{success:!1});H?.(P8(Pq,K.name))}finally{N(!1)}break;case"toggle-enabled":await L();break;case"back":f();break}},onCancel:f},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{marginTop:1,children:R(z,{dimColor:!0,italic:!0,children:h.pending?R(U8,{children:["Press ",h.keyName," again to exit"]},void 0,!0,void 0,this):R(Lq,{children:[R(oq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),R(oq,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Iz=uq(()=>{H6();r7();p6();v6();l7();Bq();DK();Q7();s7();d6();i8();h8();i7();S8();wK();T8();PK();zK();V6();YK();A8();w6();i6();R6();N6()});import s8 from"figures";import qY,{useState as KY}from"react";import{jsxDEV as vq,Fragment as pz}from"react/jsx-dev-runtime";function dz({server:K,serverToolsCount:q,onViewTools:Y,onCancel:f,onComplete:H,borderless:_=!1}){let[J]=q8(),h=K8(),W=sq((j)=>j.mcp),P=l8(),k=Y8(),[v,X]=KY(!1),l=qY.useCallback(async()=>{let j=K.client.type!=="disabled";try{await k(K.name),f()}catch(N){H(`Failed to ${j?"disable":"enable"} MCP server '${K.name}': ${Eq(N)}`)}},[K.client.type,K.name,k,f,H]),U=n8(String(K.name)),Wq=B8(W.commands,K.name).length,G=[];if(K.client.type!=="disabled"&&q>0)G.push({label:"View tools",value:"tools"});if(K.client.type!=="disabled")G.push({label:"Reconnect",value:"reconnectMcpServer"});if(G.push({label:K.client.type!=="disabled"?"Disable":"Enable",value:"toggle-enabled"}),G.length===0)G.push({label:"Back",value:"back"});if(v)return vq(O,{flexDirection:"column",gap:1,padding:1,children:[vq(z,{color:"text",children:["Reconnecting to ",vq(z,{bold:!0,children:K.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(O,{children:[vq(vK,{},void 0,!1,void 0,this),vq(z,{children:" Restarting MCP server process"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(z,{dimColor:!0,children:"This may take a few moments."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return vq(O,{flexDirection:"column",children:[vq(O,{flexDirection:"column",paddingX:1,borderStyle:_?void 0:"round",children:[vq(O,{marginBottom:1,children:vq(z,{bold:!0,children:[U," MCP Server"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),vq(O,{flexDirection:"column",gap:0,children:[vq(O,{children:[vq(z,{bold:!0,children:"Status: "},void 0,!1,void 0,this),K.client.type==="disabled"?vq(z,{children:[dq("inactive",J)(s8.radioOff)," disabled"]},void 0,!0,void 0,this):K.client.type==="connected"?vq(z,{children:[dq("success",J)(s8.tick)," connected"]},void 0,!0,void 0,this):K.client.type==="pending"?vq(pz,{children:[vq(z,{dimColor:!0,children:s8.radioOff},void 0,!1,void 0,this),vq(z,{children:" connecting\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):vq(z,{children:[dq("error",J)(s8.cross)," failed"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),vq(O,{children:[vq(z,{bold:!0,children:"Command: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:K.config.command},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.config.args&&K.config.args.length>0&&vq(O,{children:[vq(z,{bold:!0,children:"Args: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:K.config.args.join(" ")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(O,{children:[vq(z,{bold:!0,children:"Config location: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:r8(Vz(K.name)?.scope??"dynamic")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.client.type==="connected"&&vq(o8,{serverToolsCount:q,serverPromptsCount:Wq,serverResourcesCount:W.resources[K.name]?.length||0},void 0,!1,void 0,this),K.client.type==="connected"&&q>0&&vq(O,{children:[vq(z,{bold:!0,children:"Tools: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:[q," tools"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G.length>0&&vq(O,{marginTop:1,children:vq(z8,{options:G,onChange:async(j)=>{if(j==="tools")Y();else if(j==="reconnectMcpServer"){X(!0);try{let N=await P(K.name),{message:F}=F8(N,K.name);H?.(F)}catch(N){H?.(P8(N,K.name))}finally{X(!1)}}else if(j==="toggle-enabled")await l();else if(j==="back")f()},onCancel:f},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(O,{marginTop:1,children:vq(z,{dimColor:!0,italic:!0,children:h.pending?vq(pz,{children:["Press ",h.keyName," again to exit"]},void 0,!0,void 0,this):vq(Lq,{children:[vq(oq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),vq(oq,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),vq(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Ez=uq(()=>{p6();Bq();e7();d6();i8();h8();wK();PK();zK();V6();YK();A8();w6();R6();N6()});import{c as zY}from"react/compiler-runtime";import uz from"react";import{jsxDEV as Sq,Fragment as OY}from"react/jsx-dev-runtime";function xz(K){let q=zY(44),{tool:Y,server:f,onBack:H}=K,[_,J]=uz.useState(""),h,W;if(q[0]!==f.name||q[1]!==Y){W=t8(Y.name,f.name);let Gq=Y.userFacingName?Y.userFacingName({}):W;h=e8(Gq),q[0]=f.name,q[1]=Y,q[2]=h,q[3]=W}else h=q[2],W=q[3];let P=h,k;if(q[4]!==Y)k=Y.isReadOnly?.({})??!1,q[4]=Y,q[5]=k;else k=q[5];let v=k,X;if(q[6]!==Y)X=Y.isDestructive?.({})??!1,q[6]=Y,q[7]=X;else X=q[7];let l=X,U;if(q[8]!==Y)U=Y.isOpenWorld?.({})??!1,q[8]=Y,q[9]=U;else U=q[9];let Wq=U,G,j;if(q[10]!==Y)G=()=>{(async function(){try{let B=await Y.description({},{isNonInteractiveSession:!1,toolPermissionContext:{mode:"default",additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1},tools:[]});J(B)}catch{J("Failed to load description")}})()},j=[Y],q[10]=Y,q[11]=G,q[12]=j;else G=q[11],j=q[12];uz.useEffect(G,j);let N;if(q[13]!==v)N=v&&Sq(z,{color:"success",children:" [read-only]"},void 0,!1,void 0,this),q[13]=v,q[14]=N;else N=q[14];let F;if(q[15]!==l)F=l&&Sq(z,{color:"error",children:" [destructive]"},void 0,!1,void 0,this),q[15]=l,q[16]=F;else F=q[16];let Z;if(q[17]!==Wq)Z=Wq&&Sq(z,{dimColor:!0,children:" [open-world]"},void 0,!1,void 0,this),q[17]=Wq,q[18]=Z;else Z=q[18];let A;if(q[19]!==P||q[20]!==N||q[21]!==F||q[22]!==Z)A=Sq(OY,{children:[P,N,F,Z]},void 0,!0,void 0,this),q[19]=P,q[20]=N,q[21]=F,q[22]=Z,q[23]=A;else A=q[23];let u=A,Hq;if(q[24]===Symbol.for("react.memo_cache_sentinel"))Hq=Sq(z,{bold:!0,children:"Tool name: "},void 0,!1,void 0,this),q[24]=Hq;else Hq=q[24];let D;if(q[25]!==W)D=Sq(O,{children:[Hq,Sq(z,{dimColor:!0,children:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[25]=W,q[26]=D;else D=q[26];let Q;if(q[27]===Symbol.for("react.memo_cache_sentinel"))Q=Sq(z,{bold:!0,children:"Full name: "},void 0,!1,void 0,this),q[27]=Q;else Q=q[27];let r;if(q[28]!==Y.name)r=Sq(O,{children:[Q,Sq(z,{dimColor:!0,children:Y.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[28]=Y.name,q[29]=r;else r=q[29];let s;if(q[30]!==_)s=_&&Sq(O,{flexDirection:"column",marginTop:1,children:[Sq(z,{bold:!0,children:"Description:"},void 0,!1,void 0,this),Sq(z,{wrap:"wrap",children:_},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[30]=_,q[31]=s;else s=q[31];let fq;if(q[32]!==Y.inputJSONSchema)fq=Y.inputJSONSchema&&Y.inputJSONSchema.properties&&Object.keys(Y.inputJSONSchema.properties).length>0&&Sq(O,{flexDirection:"column",marginTop:1,children:[Sq(z,{bold:!0,children:"Parameters:"},void 0,!1,void 0,this),Sq(O,{marginLeft:2,flexDirection:"column",children:Object.entries(Y.inputJSONSchema.properties).map((Gq)=>{let[zq,B]=Gq,hq=Y.inputJSONSchema?.required?.includes(zq);return Sq(z,{children:["\u2022 ",zq,hq&&Sq(z,{dimColor:!0,children:" (required)"},void 0,!1,void 0,this),":"," ",Sq(z,{dimColor:!0,children:typeof B==="object"&&B&&"type"in B?String(B.type):"unknown"},void 0,!1,void 0,this),typeof B==="object"&&B&&"description"in B&&Sq(z,{dimColor:!0,children:[" - ",String(B.description)]},void 0,!0,void 0,this)]},zq,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[32]=Y.inputJSONSchema,q[33]=fq;else fq=q[33];let m;if(q[34]!==D||q[35]!==r||q[36]!==s||q[37]!==fq)m=Sq(O,{flexDirection:"column",children:[D,r,s,fq]},void 0,!0,void 0,this),q[34]=D,q[35]=r,q[36]=s,q[37]=fq,q[38]=m;else m=q[38];let Aq;if(q[39]!==H||q[40]!==f.name||q[41]!==m||q[42]!==u)Aq=Sq(FK,{title:u,subtitle:f.name,onCancel:H,inputGuide:YY,children:m},void 0,!1,void 0,this),q[39]=H,q[40]=f.name,q[41]=m,q[42]=u,q[43]=Aq;else Aq=q[43];return Aq}function YY(K){return K.pending?Sq(z,{children:["Press ",K.keyName," again to exit"]},void 0,!0,void 0,this):Sq(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)}var cz=uq(()=>{Bq();gz();zK();A6()});import{c as fY}from"react/compiler-runtime";import{jsxDEV as LK}from"react/jsx-dev-runtime";function oz(K){let q=fY(21),{server:Y,onSelectTool:f,onBack:H}=K,_=sq(wY),J;q:{if(Y.client.type!=="connected"){let j;if(q[0]===Symbol.for("react.memo_cache_sentinel"))j=[],q[0]=j;else j=q[0];J=j;break q}let G;if(q[1]!==_||q[2]!==Y.name)G=q6(_,Y.name),q[1]=_,q[2]=Y.name,q[3]=G;else G=q[3];J=G}let h=J,W;if(q[4]!==Y.name||q[5]!==h){let G;if(q[7]!==Y.name)G=(j,N)=>{let F=t8(j.name,Y.name),Z=j.userFacingName?j.userFacingName({}):F,A=e8(Z),u=j.isReadOnly?.({})??!1,Hq=j.isDestructive?.({})??!1,D=j.isOpenWorld?.({})??!1,Q=[];if(u)Q.push("read-only");if(Hq)Q.push("destructive");if(D)Q.push("open-world");return{label:A,value:N.toString(),description:Q.length>0?Q.join(", "):void 0,descriptionColor:Hq?"error":u?"success":void 0}},q[7]=Y.name,q[8]=G;else G=q[8];W=h.map(G),q[4]=Y.name,q[5]=h,q[6]=W}else W=q[6];let P=W,k=`Tools for ${Y.name}`,v=h.length,X;if(q[9]!==h.length)X=Vq(h.length,"tool"),q[9]=h.length,q[10]=X;else X=q[10];let l=`${v} ${X}`,U;if(q[11]!==H||q[12]!==f||q[13]!==h||q[14]!==P)U=h.length===0?LK(z,{dimColor:!0,children:"No tools available"},void 0,!1,void 0,this):LK(z8,{options:P,onChange:(G)=>{let j=parseInt(G),N=h[j];if(N)f(N,j)},onCancel:H},void 0,!1,void 0,this),q[11]=H,q[12]=f,q[13]=h,q[14]=P,q[15]=U;else U=q[15];let Wq;if(q[16]!==H||q[17]!==k||q[18]!==l||q[19]!==U)Wq=LK(FK,{title:k,subtitle:l,onCancel:H,inputGuide:HY,children:U},void 0,!1,void 0,this),q[16]=H,q[17]=k,q[18]=l,q[19]=U,q[20]=Wq;else Wq=q[20];return Wq}function HY(K){return K.pending?LK(z,{children:["Press ",K.keyName," again to exit"]},void 0,!0,void 0,this):LK(Lq,{children:[LK(oq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),LK(oq,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),LK(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function wY(K){return K.mcp.tools}var Fz=uq(()=>{Bq();gz();i8();h8();PK();zK();V6();YK();A6();A8()});function mK(K){switch(K.type){case"path-not-found":return`${K.component} path not found: ${K.path}`;case"git-auth-failed":return`Git ${K.authType.toUpperCase()} authentication failed for ${K.gitUrl}`;case"git-timeout":return`Git ${K.operation} timed out for ${K.gitUrl}`;case"network-error":return`Network error accessing ${K.url}${K.details?`: ${K.details}`:""}`;case"manifest-parse-error":return`Failed to parse manifest at ${K.manifestPath}: ${K.parseError}`;case"manifest-validation-error":return`Invalid manifest at ${K.manifestPath}: ${K.validationErrors.join(", ")}`;case"plugin-not-found":return`Plugin "${K.pluginId}" not found in marketplace "${K.marketplace}"`;case"marketplace-not-found":return`Marketplace "${K.marketplace}" not found`;case"marketplace-load-failed":return`Failed to load marketplace "${K.marketplace}": ${K.reason}`;case"mcp-config-invalid":return`Invalid MCP server config for "${K.serverName}": ${K.validationError}`;case"mcp-server-suppressed-duplicate":{let Y=K.duplicateOf.startsWith("plugin:")?`server provided by plugin "${K.duplicateOf.split(":")[1]??"?"}"`:`already-configured "${K.duplicateOf}"`;return`MCP server "${K.serverName}" skipped \u2014 same command/URL as ${Y}`}case"hook-load-failed":return`Failed to load hooks from ${K.hookPath}: ${K.reason}`;case"component-load-failed":return`Failed to load ${K.component} from ${K.path}: ${K.reason}`;case"mcpb-download-failed":return`Failed to download MCPB from ${K.url}: ${K.reason}`;case"mcpb-extract-failed":return`Failed to extract MCPB ${K.mcpbPath}: ${K.reason}`;case"mcpb-invalid-manifest":return`MCPB manifest invalid at ${K.mcpbPath}: ${K.validationError}`;case"marketplace-blocked-by-policy":return K.blockedByBlocklist?`Marketplace "${K.marketplace}" is blocked by enterprise policy`:`Marketplace "${K.marketplace}" is not in the allowed marketplace list`;case"dependency-unsatisfied":return K.reason==="not-enabled"?`Dependency "${K.dependency}" is disabled`:`Dependency "${K.dependency}" is not installed`;case"lsp-config-invalid":return`Invalid LSP server config for "${K.serverName}": ${K.validationError}`;case"lsp-server-start-failed":return`LSP server "${K.serverName}" failed to start: ${K.reason}`;case"lsp-server-crashed":return K.signal?`LSP server "${K.serverName}" crashed with signal ${K.signal}`:`LSP server "${K.serverName}" crashed with exit code ${K.exitCode??"unknown"}`;case"lsp-request-timeout":return`LSP server "${K.serverName}" timed out on ${K.method} after ${K.timeoutMs}ms`;case"lsp-request-failed":return`LSP server "${K.serverName}" ${K.method} failed: ${K.error}`;case"plugin-cache-miss":return`Plugin "${K.plugin}" not cached at ${K.installPath}`;case"generic-error":return K.error}return Uz(K)}function O8(K){switch(K.type){case"path-not-found":return"Check that the path in your manifest or marketplace config is correct";case"git-auth-failed":return K.authType==="ssh"?"Configure SSH keys or use HTTPS URL instead":"Configure credentials or use SSH URL instead";case"git-timeout":case"network-error":return"Check your internet connection and try again";case"manifest-parse-error":return"Check manifest file syntax in the plugin directory";case"manifest-validation-error":return"Check manifest file follows the required schema";case"plugin-not-found":return`Plugin may not exist in marketplace "${K.marketplace}"`;case"marketplace-not-found":return K.availableMarketplaces.length>0?`Available marketplaces: ${K.availableMarketplaces.join(", ")}`:"Add the marketplace first using /plugin marketplace add";case"mcp-config-invalid":return"Check MCP server configuration in .mcp.json or manifest";case"mcp-server-suppressed-duplicate":{if(K.duplicateOf.startsWith("plugin:"))return`Disable plugin "${K.duplicateOf.split(":")[1]??"the other plugin"}" if you want this plugin's version instead`;return`Remove "${K.duplicateOf}" from your MCP config if you want the plugin's version instead`}case"hook-load-failed":return"Check hooks.json file syntax and structure";case"component-load-failed":return`Check ${K.component} directory structure and file permissions`;case"mcpb-download-failed":return"Check your internet connection and URL accessibility";case"mcpb-extract-failed":return"Verify the MCPB file is valid and not corrupted";case"mcpb-invalid-manifest":return"Contact the plugin author about the invalid manifest";case"marketplace-blocked-by-policy":if(K.blockedByBlocklist)return"This marketplace source is explicitly blocked by your administrator";return K.allowedSources.length>0?`Allowed sources: ${K.allowedSources.join(", ")}`:"Contact your administrator to configure allowed marketplace sources";case"dependency-unsatisfied":return K.reason==="not-enabled"?`Enable "${K.dependency}" or uninstall "${K.plugin}"`:`Install "${K.dependency}" or uninstall "${K.plugin}"`;case"lsp-config-invalid":return"Check LSP server configuration in the plugin manifest";case"lsp-server-start-failed":case"lsp-server-crashed":case"lsp-request-timeout":case"lsp-request-failed":return"Check LSP server logs with --debug for details";case"plugin-cache-miss":return"Run /plugins to refresh the plugin cache";case"marketplace-load-failed":case"generic-error":return null}let q=K;return null}var E6=uq(()=>{kY()});import{c as AY}from"react/compiler-runtime";import rq from"figures";import{jsxDEV as Tq}from"react/jsx-dev-runtime";function az(K){let q=AY(142),{item:Y,isSelected:f}=K,[H]=q8();if(Y.type==="plugin"){let Z,A;if(Y.pendingToggle){let wq;if(q[0]!==H)wq=dq("suggestion",H)(rq.arrowRight),q[0]=H,q[1]=wq;else wq=q[1];Z=wq,A=Y.pendingToggle==="will-enable"?"will enable":"will disable"}else if(Y.errorCount>0){let wq;if(q[2]!==H)wq=dq("error",H)(rq.cross),q[2]=H,q[3]=wq;else wq=q[3];Z=wq;let y=Y.errorCount,C;if(q[4]!==Y.errorCount)C=Vq(Y.errorCount,"error"),q[4]=Y.errorCount,q[5]=C;else C=q[5];A=`${y} ${C}`}else if(!Y.isEnabled){let wq;if(q[6]!==H)wq=dq("inactive",H)(rq.radioOff),q[6]=H,q[7]=wq;else wq=q[7];Z=wq,A="disabled"}else{let wq;if(q[8]!==H)wq=dq("success",H)(rq.tick),q[8]=H,q[9]=wq;else wq=q[9];Z=wq,A="enabled"}let u=f?"suggestion":void 0,Hq=f?`${rq.pointer} `:" ",D;if(q[10]!==u||q[11]!==Hq)D=Tq(z,{color:u,children:Hq},void 0,!1,void 0,this),q[10]=u,q[11]=Hq,q[12]=D;else D=q[12];let Q=f?"suggestion":void 0,r;if(q[13]!==Y.name||q[14]!==Q)r=Tq(z,{color:Q,children:Y.name},void 0,!1,void 0,this),q[13]=Y.name,q[14]=Q,q[15]=r;else r=q[15];let s=!f,fq;if(q[16]===Symbol.for("react.memo_cache_sentinel"))fq=Tq(z,{backgroundColor:"userMessageBackground",children:"Plugin"},void 0,!1,void 0,this),q[16]=fq;else fq=q[16];let m;if(q[17]!==s)m=Tq(z,{dimColor:s,children:[" ",fq]},void 0,!0,void 0,this),q[17]=s,q[18]=m;else m=q[18];let Aq;if(q[19]!==Y.marketplace)Aq=Tq(z,{dimColor:!0,children:[" \xB7 ",Y.marketplace]},void 0,!0,void 0,this),q[19]=Y.marketplace,q[20]=Aq;else Aq=q[20];let Gq=!f,zq;if(q[21]!==Z||q[22]!==Gq)zq=Tq(z,{dimColor:Gq,children:[" \xB7 ",Z," "]},void 0,!0,void 0,this),q[21]=Z,q[22]=Gq,q[23]=zq;else zq=q[23];let B=!f,Mq;if(q[24]!==A||q[25]!==B)Mq=Tq(z,{dimColor:B,children:A},void 0,!1,void 0,this),q[24]=A,q[25]=B,q[26]=Mq;else Mq=q[26];let hq;if(q[27]!==zq||q[28]!==Mq||q[29]!==D||q[30]!==r||q[31]!==m||q[32]!==Aq)hq=Tq(O,{children:[D,r,m,Aq,zq,Mq]},void 0,!0,void 0,this),q[27]=zq,q[28]=Mq,q[29]=D,q[30]=r,q[31]=m,q[32]=Aq,q[33]=hq;else hq=q[33];return hq}if(Y.type==="flagged-plugin"){let Z;if(q[34]!==H)Z=dq("warning",H)(rq.warning),q[34]=H,q[35]=Z;else Z=q[35];let A=Z,u=f?"suggestion":void 0,Hq=f?`${rq.pointer} `:" ",D;if(q[36]!==u||q[37]!==Hq)D=Tq(z,{color:u,children:Hq},void 0,!1,void 0,this),q[36]=u,q[37]=Hq,q[38]=D;else D=q[38];let Q=f?"suggestion":void 0,r;if(q[39]!==Y.name||q[40]!==Q)r=Tq(z,{color:Q,children:Y.name},void 0,!1,void 0,this),q[39]=Y.name,q[40]=Q,q[41]=r;else r=q[41];let s=!f,fq;if(q[42]===Symbol.for("react.memo_cache_sentinel"))fq=Tq(z,{backgroundColor:"userMessageBackground",children:"Plugin"},void 0,!1,void 0,this),q[42]=fq;else fq=q[42];let m;if(q[43]!==s)m=Tq(z,{dimColor:s,children:[" ",fq]},void 0,!0,void 0,this),q[43]=s,q[44]=m;else m=q[44];let Aq;if(q[45]!==Y.marketplace)Aq=Tq(z,{dimColor:!0,children:[" \xB7 ",Y.marketplace]},void 0,!0,void 0,this),q[45]=Y.marketplace,q[46]=Aq;else Aq=q[46];let Gq=!f,zq;if(q[47]!==A||q[48]!==Gq)zq=Tq(z,{dimColor:Gq,children:[" \xB7 ",A," "]},void 0,!0,void 0,this),q[47]=A,q[48]=Gq,q[49]=zq;else zq=q[49];let B=!f,Mq;if(q[50]!==B)Mq=Tq(z,{dimColor:B,children:"removed"},void 0,!1,void 0,this),q[50]=B,q[51]=Mq;else Mq=q[51];let hq;if(q[52]!==Aq||q[53]!==zq||q[54]!==Mq||q[55]!==D||q[56]!==r||q[57]!==m)hq=Tq(O,{children:[D,r,m,Aq,zq,Mq]},void 0,!0,void 0,this),q[52]=Aq,q[53]=zq,q[54]=Mq,q[55]=D,q[56]=r,q[57]=m,q[58]=hq;else hq=q[58];return hq}if(Y.type==="failed-plugin"){let Z;if(q[59]!==H)Z=dq("error",H)(rq.cross),q[59]=H,q[60]=Z;else Z=q[60];let A=Z,u=Y.errorCount,Hq;if(q[61]!==Y.errorCount)Hq=Vq(Y.errorCount,"error"),q[61]=Y.errorCount,q[62]=Hq;else Hq=q[62];let D=`failed to load \xB7 ${u} ${Hq}`,Q=f?"suggestion":void 0,r=f?`${rq.pointer} `:" ",s;if(q[63]!==Q||q[64]!==r)s=Tq(z,{color:Q,children:r},void 0,!1,void 0,this),q[63]=Q,q[64]=r,q[65]=s;else s=q[65];let fq=f?"suggestion":void 0,m;if(q[66]!==Y.name||q[67]!==fq)m=Tq(z,{color:fq,children:Y.name},void 0,!1,void 0,this),q[66]=Y.name,q[67]=fq,q[68]=m;else m=q[68];let Aq=!f,Gq;if(q[69]===Symbol.for("react.memo_cache_sentinel"))Gq=Tq(z,{backgroundColor:"userMessageBackground",children:"Plugin"},void 0,!1,void 0,this),q[69]=Gq;else Gq=q[69];let zq;if(q[70]!==Aq)zq=Tq(z,{dimColor:Aq,children:[" ",Gq]},void 0,!0,void 0,this),q[70]=Aq,q[71]=zq;else zq=q[71];let B;if(q[72]!==Y.marketplace)B=Tq(z,{dimColor:!0,children:[" \xB7 ",Y.marketplace]},void 0,!0,void 0,this),q[72]=Y.marketplace,q[73]=B;else B=q[73];let Mq=!f,hq;if(q[74]!==A||q[75]!==Mq)hq=Tq(z,{dimColor:Mq,children:[" \xB7 ",A," "]},void 0,!0,void 0,this),q[74]=A,q[75]=Mq,q[76]=hq;else hq=q[76];let wq=!f,y;if(q[77]!==D||q[78]!==wq)y=Tq(z,{dimColor:wq,children:D},void 0,!1,void 0,this),q[77]=D,q[78]=wq,q[79]=y;else y=q[79];let C;if(q[80]!==zq||q[81]!==B||q[82]!==hq||q[83]!==y||q[84]!==s||q[85]!==m)C=Tq(O,{children:[s,m,zq,B,hq,y]},void 0,!0,void 0,this),q[80]=zq,q[81]=B,q[82]=hq,q[83]=y,q[84]=s,q[85]=m,q[86]=C;else C=q[86];return C}let _,J;if(Y.status==="connected"){let Z;if(q[87]!==H)Z=dq("success",H)(rq.tick),q[87]=H,q[88]=Z;else Z=q[88];_=Z,J="connected"}else if(Y.status==="disabled"){let Z;if(q[89]!==H)Z=dq("inactive",H)(rq.radioOff),q[89]=H,q[90]=Z;else Z=q[90];_=Z,J="disabled"}else if(Y.status==="pending"){let Z;if(q[91]!==H)Z=dq("inactive",H)(rq.radioOff),q[91]=H,q[92]=Z;else Z=q[92];_=Z,J="connecting\u2026"}else if(Y.status==="needs-auth"){let Z;if(q[93]!==H)Z=dq("warning",H)(rq.triangleUpOutline),q[93]=H,q[94]=Z;else Z=q[94];_=Z,J="Enter to auth"}else{let Z;if(q[95]!==H)Z=dq("error",H)(rq.cross),q[95]=H,q[96]=Z;else Z=q[96];_=Z,J="failed"}if(Y.indented){let Z=f?"suggestion":void 0,A=f?`${rq.pointer} `:" ",u;if(q[97]!==Z||q[98]!==A)u=Tq(z,{color:Z,children:A},void 0,!1,void 0,this),q[97]=Z,q[98]=A,q[99]=u;else u=q[99];let Hq=!f,D;if(q[100]!==Hq)D=Tq(z,{dimColor:Hq,children:"\u2514 "},void 0,!1,void 0,this),q[100]=Hq,q[101]=D;else D=q[101];let Q=f?"suggestion":void 0,r;if(q[102]!==Y.name||q[103]!==Q)r=Tq(z,{color:Q,children:Y.name},void 0,!1,void 0,this),q[102]=Y.name,q[103]=Q,q[104]=r;else r=q[104];let s=!f,fq;if(q[105]===Symbol.for("react.memo_cache_sentinel"))fq=Tq(z,{backgroundColor:"userMessageBackground",children:"MCP"},void 0,!1,void 0,this),q[105]=fq;else fq=q[105];let m;if(q[106]!==s)m=Tq(z,{dimColor:s,children:[" ",fq]},void 0,!0,void 0,this),q[106]=s,q[107]=m;else m=q[107];let Aq=!f,Gq;if(q[108]!==_||q[109]!==Aq)Gq=Tq(z,{dimColor:Aq,children:[" \xB7 ",_," "]},void 0,!0,void 0,this),q[108]=_,q[109]=Aq,q[110]=Gq;else Gq=q[110];let zq=!f,B;if(q[111]!==J||q[112]!==zq)B=Tq(z,{dimColor:zq,children:J},void 0,!1,void 0,this),q[111]=J,q[112]=zq,q[113]=B;else B=q[113];let Mq;if(q[114]!==m||q[115]!==Gq||q[116]!==B||q[117]!==u||q[118]!==D||q[119]!==r)Mq=Tq(O,{children:[u,D,r,m,Gq,B]},void 0,!0,void 0,this),q[114]=m,q[115]=Gq,q[116]=B,q[117]=u,q[118]=D,q[119]=r,q[120]=Mq;else Mq=q[120];return Mq}let h=f?"suggestion":void 0,W=f?`${rq.pointer} `:" ",P;if(q[121]!==h||q[122]!==W)P=Tq(z,{color:h,children:W},void 0,!1,void 0,this),q[121]=h,q[122]=W,q[123]=P;else P=q[123];let k=f?"suggestion":void 0,v;if(q[124]!==Y.name||q[125]!==k)v=Tq(z,{color:k,children:Y.name},void 0,!1,void 0,this),q[124]=Y.name,q[125]=k,q[126]=v;else v=q[126];let X=!f,l;if(q[127]===Symbol.for("react.memo_cache_sentinel"))l=Tq(z,{backgroundColor:"userMessageBackground",children:"MCP"},void 0,!1,void 0,this),q[127]=l;else l=q[127];let U;if(q[128]!==X)U=Tq(z,{dimColor:X,children:[" ",l]},void 0,!0,void 0,this),q[128]=X,q[129]=U;else U=q[129];let Wq=!f,G;if(q[130]!==_||q[131]!==Wq)G=Tq(z,{dimColor:Wq,children:[" \xB7 ",_," "]},void 0,!0,void 0,this),q[130]=_,q[131]=Wq,q[132]=G;else G=q[132];let j=!f,N;if(q[133]!==J||q[134]!==j)N=Tq(z,{dimColor:j,children:J},void 0,!1,void 0,this),q[133]=J,q[134]=j,q[135]=N;else N=q[135];let F;if(q[136]!==G||q[137]!==N||q[138]!==P||q[139]!==v||q[140]!==U)F=Tq(O,{children:[P,v,U,G,N]},void 0,!0,void 0,this),q[136]=G,q[137]=N,q[138]=P,q[139]=v,q[140]=U,q[141]=F;else F=q[141];return F}var nz=uq(()=>{Bq();PK()});import EK from"figures";import*as gK from"fs/promises";import*as w8 from"path";import*as fK from"react";import{useCallback as hY,useEffect as H8,useMemo as u6,useRef as g6,useState as Fq}from"react";import{jsxDEV as M}from"react/jsx-dev-runtime";async function Bz(K){try{return(await gK.readdir(K,{withFileTypes:!0})).filter((Y)=>Y.isFile()&&Y.name.endsWith(".md")).map((Y)=>{return w8.basename(Y.name,".md")})}catch(q){let Y=Eq(q);return RK(`Failed to read plugin components from ${K}: ${Y}`,{level:"error"}),kK(xK(q)),[]}}async function JY(K){try{let q=await gK.readdir(K,{withFileTypes:!0}),Y=[];for(let f of q)if(f.isDirectory()||f.isSymbolicLink()){let H=w8.join(K,f.name,"SKILL.md");try{if((await gK.stat(H)).isFile())Y.push(f.name)}catch{}}return Y}catch(q){let Y=Eq(q);return RK(`Failed to read skill directories from ${K}: ${Y}`,{level:"error"}),kK(xK(q)),[]}}function $Y({plugin:K,marketplace:q}){let[Y,f]=Fq(null),[H,_]=Fq(!0),[J,h]=Fq(null);if(H8(()=>{async function P(){try{if(q==="builtin"){let X=iz(K.name);if(X){let l=X.skills?.map((G)=>G.name)??[],U=X.hooks?Object.keys(X.hooks):[],Wq=X.mcpServers?Object.keys(X.mcpServers):[];f({commands:null,agents:null,skills:l.length>0?l:null,hooks:U.length>0?U:null,mcpServers:Wq.length>0?Wq:null})}else h(`Built-in plugin ${K.name} not found`);_(!1);return}let v=(await iK(q)).plugins.find((X)=>X.name===K.name);if(v){let X=[];if(K.commandsPath)X.push(K.commandsPath);if(K.commandsPaths)X.push(...K.commandsPaths);let l=[];for(let Z of X)if(typeof Z==="string"){let A=await Bz(Z);l.push(...A)}let U=[];if(K.agentsPath)U.push(K.agentsPath);if(K.agentsPaths)U.push(...K.agentsPaths);let Wq=[];for(let Z of U)if(typeof Z==="string"){let A=await Bz(Z);Wq.push(...A)}let G=[];if(K.skillsPath)G.push(K.skillsPath);if(K.skillsPaths)G.push(...K.skillsPaths);let j=[];for(let Z of G)if(typeof Z==="string"){let A=await JY(Z);j.push(...A)}let N=[];if(K.hooksConfig)N.push(Object.keys(K.hooksConfig));if(v.hooks)N.push(v.hooks);let F=[];if(K.mcpServers)F.push(Object.keys(K.mcpServers));if(v.mcpServers)F.push(v.mcpServers);f({commands:l.length>0?l:null,agents:Wq.length>0?Wq:null,skills:j.length>0?j:null,hooks:N.length>0?N:null,mcpServers:F.length>0?F:null})}else h(`Plugin ${K.name} not found in marketplace`)}catch(k){h(k instanceof Error?k.message:"Failed to load components")}finally{_(!1)}}P()},[K.name,K.commandsPath,K.commandsPaths,K.agentsPath,K.agentsPaths,K.skillsPath,K.skillsPaths,K.hooksConfig,K.mcpServers,q]),H)return null;if(J)return M(O,{flexDirection:"column",marginBottom:1,children:[M(z,{bold:!0,children:"Components:"},void 0,!1,void 0,this),M(z,{dimColor:!0,children:["Error: ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(!Y)return null;if(!(Y.commands||Y.agents||Y.skills||Y.hooks||Y.mcpServers))return null;return M(O,{flexDirection:"column",marginBottom:1,children:[M(z,{bold:!0,children:"Installed components:"},void 0,!1,void 0,this),Y.commands?M(z,{dimColor:!0,children:["\u2022 Commands:"," ",typeof Y.commands==="string"?Y.commands:Array.isArray(Y.commands)?Y.commands.join(", "):Object.keys(Y.commands).join(", ")]},void 0,!0,void 0,this):null,Y.agents?M(z,{dimColor:!0,children:["\u2022 Agents:"," ",typeof Y.agents==="string"?Y.agents:Array.isArray(Y.agents)?Y.agents.join(", "):Object.keys(Y.agents).join(", ")]},void 0,!0,void 0,this):null,Y.skills?M(z,{dimColor:!0,children:["\u2022 Skills:"," ",typeof Y.skills==="string"?Y.skills:Array.isArray(Y.skills)?Y.skills.join(", "):Object.keys(Y.skills).join(", ")]},void 0,!0,void 0,this):null,Y.hooks?M(z,{dimColor:!0,children:["\u2022 Hooks:"," ",typeof Y.hooks==="string"?Y.hooks:Array.isArray(Y.hooks)?Y.hooks.map(String).join(", "):typeof Y.hooks==="object"&&Y.hooks!==null?Object.keys(Y.hooks).join(", "):String(Y.hooks)]},void 0,!0,void 0,this):null,Y.mcpServers?M(z,{dimColor:!0,children:["\u2022 MCP Servers:"," ",typeof Y.mcpServers==="string"?Y.mcpServers:Array.isArray(Y.mcpServers)?Y.mcpServers.map(String).join(", "):typeof Y.mcpServers==="object"&&Y.mcpServers!==null?Object.keys(Y.mcpServers).join(", "):String(Y.mcpServers)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}async function ZY(K,q){let f=(await iK(q))?.plugins.find((H)=>H.name===K);if(f&&typeof f.source==="string")return`Local plugins cannot be updated remotely. To update, modify the source at: ${f.source}`;return null}function vY(K){return K.filter((q)=>{let Y=q.source.split("@")[1]||"local";return!QK(`${q.name}@${Y}`)})}function O7({setViewState:K,setResult:q,onManageComplete:Y,onSearchModeChange:f,targetPlugin:H,targetMarketplace:_,action:J}){let h=sq((w)=>w.mcp.clients),W=sq((w)=>w.mcp.tools),P=sq((w)=>w.plugins.errors),k=K7(),[v,X]=Fq(!1),l=hY((w)=>{X(w),f?.(w)},[f]),U=E8(),{columns:Wq}=eK(),[G,j]=Fq("plugin-list"),{query:N,setQuery:F,cursorOffset:Z}=g8({isActive:G==="plugin-list"&&v,onExit:()=>{l(!1)}}),[A,u]=Fq(null),[Hq,D]=Fq([]),[Q,r]=Fq([]),[s,fq]=Fq(!0),[m,Aq]=Fq(new Map),Gq=g6(!1),zq=g6(void 0),B=Y8(),Mq=fK.useCallback(()=>{if(G==="plugin-details")j("plugin-list"),u(null),S(null);else if(typeof G==="object"&&G.type==="failed-plugin-details")j("plugin-list"),S(null);else if(G==="configuring")j("plugin-details"),L(null);else if(typeof G==="object"&&(G.type==="plugin-options"||G.type==="configuring-options")){if(j("plugin-list"),u(null),q("Plugin enabled. Configuration skipped \u2014 run /reload-plugins to apply."),Y)Y()}else if(typeof G==="object"&&G.type==="flagged-detail")j("plugin-list"),S(null);else if(typeof G==="object"&&G.type==="mcp-detail")j("plugin-list"),S(null);else if(typeof G==="object"&&G.type==="mcp-tools")j({type:"mcp-detail",client:G.client});else if(typeof G==="object"&&G.type==="mcp-tool-detail")j({type:"mcp-tools",client:G.client});else{if(m.size>0){q("Run /reload-plugins to apply plugin changes.");return}K({type:"menu"})}},[G,K,m,q]);xq("confirm:no",Mq,{context:"Confirmation",isActive:(G!=="plugin-list"||!v)&&G!=="confirm-project-uninstall"&&!(typeof G==="object"&&G.type==="confirm-data-cleanup")});let hq=(w)=>{if(w.type==="connected")return"connected";if(w.type==="disabled")return"disabled";if(w.type==="pending")return"pending";if(w.type==="needs-auth")return"needs-auth";return"failed"},wq=u6(()=>{let w=uK(),x=new Map;for(let Kq of h)if(Kq.name.startsWith("plugin:")){let jq=Kq.name.split(":");if(jq.length>=3){let Uq=jq[1],aq=jq.slice(2).join(":"),gq=x.get(Uq)||[];gq.push({displayName:aq,client:Kq}),x.set(Uq,gq)}}let Yq=[];for(let Kq of Q){let jq=`${Kq.plugin.name}@${Kq.marketplace}`,Uq=w?.enabledPlugins?.[jq]!==!1,aq=P.filter((Cq)=>("plugin"in Cq)&&Cq.plugin===Kq.plugin.name||Cq.source===jq||Cq.source.startsWith(`${Kq.plugin.name}@`)),gq=Kq.plugin.isBuiltin?"builtin":Kq.scope||"user";Yq.push({item:{type:"plugin",id:jq,name:Kq.plugin.name,description:Kq.plugin.manifest.description,marketplace:Kq.marketplace,scope:gq,isEnabled:Uq,errorCount:aq.length,errors:aq,plugin:Kq.plugin,pendingEnable:Kq.pendingEnable,pendingUpdate:Kq.pendingUpdate,pendingToggle:m.get(jq)},originalScope:gq,childMcps:x.get(Kq.plugin.name)||[]})}let qq=new Set(Yq.map(({item:Kq})=>Kq.id)),e=new Set(Yq.map(({item:Kq})=>Kq.name)),n=new Map;for(let Kq of P){if(qq.has(Kq.source)||"plugin"in Kq&&typeof Kq.plugin==="string"&&e.has(Kq.plugin))continue;let jq=n.get(Kq.source)||[];jq.push(Kq),n.set(Kq.source,jq)}let _q=O6(),$q=[];for(let[Kq,jq]of n){if(Kq in k)continue;let Uq=K6(Kq),aq=Uq.name||Kq,gq=Uq.marketplace||"unknown",Cq=_q.get(Kq),tq=Cq==="flag"||Cq===void 0?"user":Cq;$q.push({type:"failed-plugin",id:Kq,name:aq,marketplace:gq,scope:tq,errorCount:jq.length,errors:jq})}let yq=[];for(let Kq of h){if(Kq.name==="ide")continue;if(Kq.name.startsWith("plugin:"))continue;yq.push({type:"mcp",id:`mcp:${Kq.name}`,name:Kq.name,description:void 0,scope:Kq.config.scope,status:hq(Kq),client:Kq})}let mq={flagged:-1,project:0,local:1,user:2,enterprise:3,managed:4,dynamic:5,builtin:6},HK=[],Rq=new Map;for(let{item:Kq,originalScope:jq,childMcps:Uq}of Yq){let aq=Kq.scope;if(!Rq.has(aq))Rq.set(aq,[]);Rq.get(aq).push(Kq);for(let{displayName:gq,client:Cq}of Uq){let tq=jq==="builtin"?"user":jq;if(!Rq.has(tq))Rq.set(tq,[]);Rq.get(tq).push({type:"mcp",id:`mcp:${Cq.name}`,name:gq,description:void 0,scope:tq,status:hq(Cq),client:Cq,indented:!0})}}for(let Kq of yq){let jq=Kq.scope;if(!Rq.has(jq))Rq.set(jq,[]);Rq.get(jq).push(Kq)}for(let Kq of $q){let jq=Kq.scope;if(!Rq.has(jq))Rq.set(jq,[]);Rq.get(jq).push(Kq)}for(let[Kq,jq]of Object.entries(k)){let Uq=K6(Kq),aq=Uq.name||Kq,gq=Uq.marketplace||"unknown";if(!Rq.has("flagged"))Rq.set("flagged",[]);Rq.get("flagged").push({type:"flagged-plugin",id:Kq,name:aq,marketplace:gq,scope:"flagged",reason:"delisted",text:"Removed from marketplace",flaggedAt:jq.flaggedAt})}let Z8=[...Rq.keys()].sort((Kq,jq)=>(mq[Kq]??99)-(mq[jq]??99));for(let Kq of Z8){let jq=Rq.get(Kq),Uq=[],aq=[],gq=0;while(gq<jq.length){let Cq=jq[gq];if(Cq.type==="plugin"||Cq.type==="failed-plugin"||Cq.type==="flagged-plugin"){let tq=[Cq];gq++;let v8=jq[gq];while(v8?.type==="mcp"&&v8.indented)tq.push(v8),gq++,v8=jq[gq];Uq.push(tq)}else if(Cq.type==="mcp"&&!Cq.indented)aq.push(Cq),gq++;else gq++}Uq.sort((Cq,tq)=>Cq[0].name.localeCompare(tq[0].name)),aq.sort((Cq,tq)=>Cq.name.localeCompare(tq.name));for(let Cq of Uq)HK.push(...Cq);HK.push(...aq)}return HK},[Q,h,P,m,k]),y=u6(()=>wq.filter((w)=>w.type==="flagged-plugin").map((w)=>w.id),[wq]);H8(()=>{if(y.length>0)z7(y)},[y]);let C=u6(()=>{if(!N)return wq;let w=N.toLowerCase();return wq.filter((x)=>x.name.toLowerCase().includes(w)||("description"in x)&&x.description?.toLowerCase().includes(w))},[wq,N]),[g,Oq]=Fq(0),Jq=nK({totalItems:C.length,selectedIndex:g,maxVisible:8}),[T,i]=Fq(0),[I,V]=Fq(!1),[c,S]=Fq(null),[$,L]=Fq(null),[t,Xq]=Fq(!1),[E,o]=Fq(!1);H8(()=>{if(!A){o(!1);return}async function w(){let x=A.plugin.manifest.mcpServers,Yq=!1;if(x)Yq=typeof x==="string"&&$K(x)||Array.isArray(x)&&x.some((qq)=>typeof qq==="string"&&$K(qq));if(!Yq)try{let qq=w8.join(A.plugin.path,".."),e=w8.join(qq,".claude-plugin","marketplace.json"),n=await gK.readFile(e,"utf-8"),$q=rz(n).plugins?.find((yq)=>yq.name===A.plugin.name);if($q?.mcpServers){let yq=$q.mcpServers;Yq=typeof yq==="string"&&$K(yq)||Array.isArray(yq)&&yq.some((mq)=>typeof mq==="string"&&$K(mq))}}catch(qq){RK(`Failed to read raw marketplace.json: ${qq}`)}o(Yq)}w()},[A]),H8(()=>{async function w(){fq(!0);try{let{enabled:x,disabled:Yq}=await IK(),qq=uK(),e=vY([...x,...Yq]),n={};for(let yq of e){let mq=yq.source.split("@")[1]||"local";if(!n[mq])n[mq]=[];n[mq].push(yq)}let _q=[];for(let[yq,mq]of Object.entries(n)){let HK=OK(mq,(Z8)=>{let Kq=`${Z8.name}@${yq}`;return qq?.enabledPlugins?.[Kq]!==!1}),Rq=mq.length-HK;_q.push({name:yq,installedPlugins:mq,enabledCount:HK,disabledCount:Rq})}_q.sort((yq,mq)=>{if(yq.name==="claude-plugin-directory")return-1;if(mq.name==="claude-plugin-directory")return 1;return yq.name.localeCompare(mq.name)}),D(_q);let $q=[];for(let yq of _q)for(let mq of yq.installedPlugins){let HK=`${mq.name}@${yq.name}`,Rq=mq.isBuiltin?"builtin":c6(HK).scope;$q.push({plugin:mq,marketplace:yq.name,scope:Rq,pendingEnable:void 0,pendingUpdate:!1})}r($q),Oq(0)}finally{fq(!1)}}w()},[]),H8(()=>{if(Gq.current)return;if(H&&Hq.length>0&&!s){let{name:w,marketplace:x}=K6(H),Yq=_??x,qq=Yq?Hq.filter((n)=>n.name===Yq):Hq;for(let n of qq){let _q=n.installedPlugins.find(($q)=>$q.name===w);if(_q){let $q=`${_q.name}@${n.name}`,{scope:yq}=c6($q),mq={plugin:_q,marketplace:n.name,scope:yq,pendingEnable:void 0,pendingUpdate:!1};u(mq),j("plugin-details"),zq.current=J,Gq.current=!0;return}}let e=wq.find((n)=>n.type==="failed-plugin"&&n.name===w);if(e&&e.type==="failed-plugin")j({type:"failed-plugin-details",plugin:{id:e.id,name:e.name,marketplace:e.marketplace,errors:e.errors,scope:e.scope}}),Gq.current=!0;if(!Gq.current&&J)Gq.current=!0,q(`Plugin "${H}" is not installed in this project`)}},[H,_,Hq,s,wq,J,q]);let Pq=async(w)=>{if(!A)return;let x=A.scope||"user",Yq=x==="builtin";if(Yq&&(w==="update"||w==="uninstall")){S("Built-in plugins cannot be updated or uninstalled.");return}if(!Yq&&!f8(x)&&w!=="update"){S("This plugin is managed by your organization. Contact your admin to disable it.");return}V(!0),S(null);try{let qq=`${A.plugin.name}@${A.marketplace}`,e;switch(w){case"enable":{let Rq=await z6(qq);if(!Rq.success)throw Error(Rq.message);break}case"disable":{let Rq=await Y6(qq);if(!Rq.success)throw Error(Rq.message);e=Rq.reverseDependents;break}case"uninstall":{if(Yq)break;if(!f8(x))break;if(ez(qq)){V(!1),j("confirm-project-uninstall");return}let Rq=sz().plugins[qq],Kq=!Rq||Rq.length<=1?await Qz(qq):null;if(Kq){V(!1),j({type:"confirm-data-cleanup",size:Kq});return}let jq=await J8(qq,x);if(!jq.success)throw Error(jq.message);e=jq.reverseDependents;break}case"update":{if(Yq)break;let Rq=await q7(qq,x);if(!Rq.success)throw Error(Rq.message);if(Rq.alreadyUpToDate){if(q(`${A.plugin.name} is already at the latest version (${Rq.newVersion}).`),Y)await Y();K({type:"menu"});return}break}}cq();let n=`${A.plugin.name}@${A.marketplace}`;if(uK()?.enabledPlugins?.[n]!==!1){V(!1),j({type:"plugin-options"});return}let yq=w==="enable"?"Enabled":w==="disable"?"Disabled":w==="update"?"Updated":"Uninstalled",mq=e&&e.length>0?` \xB7 required by ${e.join(", ")}`:"",HK=`\u2713 ${yq} ${A.plugin.name}${mq}. Run /reload-plugins to apply.`;if(q(HK),Y)await Y();K({type:"menu"})}catch(qq){V(!1);let e=qq instanceof Error?qq.message:String(qq);S(`Failed to ${w}: ${e}`),kK(xK(qq))}},Nq=g6(Pq);Nq.current=Pq,H8(()=>{if(G==="plugin-details"&&A&&zq.current){let w=zq.current;zq.current=void 0,Nq.current(w)}},[G,A]);let Zq=fK.useCallback(()=>{if(g>=C.length)return;let w=C[g];if(w?.type==="flagged-plugin")return;if(w?.type==="plugin"){let x=`${w.plugin.name}@${w.marketplace}`,Yq=uK(),qq=m.get(x),e=Yq?.enabledPlugins?.[x]!==!1,n=w.scope;if(n==="builtin"||f8(n)){let $q=new Map(m);if(qq)$q.delete(x),(async()=>{try{if(qq==="will-disable")await z6(x);else await Y6(x);cq()}catch(yq){kK(yq)}})();else $q.set(x,e?"will-disable":"will-enable"),(async()=>{try{if(e)await Y6(x);else await z6(x);cq()}catch(yq){kK(yq)}})();Aq($q)}}else if(w?.type==="mcp")B(w.client.name)},[g,C,m,Q,B]),bq=fK.useCallback(()=>{if(g>=C.length)return;let w=C[g];if(w?.type==="plugin"){let x=Q.find((Yq)=>Yq.plugin.name===w.plugin.name&&Yq.marketplace===w.marketplace);if(x)u(x),j("plugin-details"),i(0),S(null)}else if(w?.type==="flagged-plugin")j({type:"flagged-detail",plugin:{id:w.id,name:w.name,marketplace:w.marketplace,reason:w.reason,text:w.text,flaggedAt:w.flaggedAt}}),S(null);else if(w?.type==="failed-plugin")j({type:"failed-plugin-details",plugin:{id:w.id,name:w.name,marketplace:w.marketplace,errors:w.errors,scope:w.scope}}),i(0),S(null);else if(w?.type==="mcp")j({type:"mcp-detail",client:w.client}),S(null)},[g,C,Q]);pq({"select:previous":()=>{if(g===0)l(!0);else Jq.handleSelectionChange(g-1,Oq)},"select:next":()=>{if(g<C.length-1)Jq.handleSelectionChange(g+1,Oq)},"select:accept":bq},{context:"Select",isActive:G==="plugin-list"&&!v}),pq({"plugin:toggle":Zq},{context:"Plugin",isActive:G==="plugin-list"&&!v});let Iq=fK.useCallback(()=>{if(typeof G!=="object"||G.type!=="flagged-detail")return;Y7(G.plugin.id),j("plugin-list")},[G]);pq({"select:accept":Iq},{context:"Select",isActive:typeof G==="object"&&G.type==="flagged-detail"});let iq=fK.useMemo(()=>{if(G!=="plugin-details"||!A)return[];let w=uK(),x=`${A.plugin.name}@${A.marketplace}`,Yq=w?.enabledPlugins?.[x]!==!1,qq=A.marketplace==="builtin",e=[];if(e.push({label:Yq?"Disable plugin":"Enable plugin",action:()=>void Pq(Yq?"disable":"enable")}),!qq){if(e.push({label:A.pendingUpdate?"Unmark for update":"Mark for update",action:async()=>{try{let n=await ZY(A.plugin.name,A.marketplace);if(n){S(n);return}let _q=[...Q],$q=_q.findIndex((yq)=>yq.plugin.name===A.plugin.name&&yq.marketplace===A.marketplace);if($q!==-1)_q[$q].pendingUpdate=!A.pendingUpdate,r(_q),u({...A,pendingUpdate:!A.pendingUpdate})}catch(n){S(n instanceof Error?n.message:"Failed to check plugin update availability")}}}),E)e.push({label:"Configure",action:async()=>{Xq(!0);try{let n=A.plugin.manifest.mcpServers,_q=null;if(typeof n==="string"&&$K(n))_q=n;else if(Array.isArray(n)){for(let mq of n)if(typeof mq==="string"&&$K(mq)){_q=mq;break}}if(!_q){S("No MCPB file found in plugin"),Xq(!1);return}let $q=`${A.plugin.name}@${A.marketplace}`,yq=await x6(_q,A.plugin.path,$q,void 0,void 0,!0);if("status"in yq&&yq.status==="needs-config")L(yq),j("configuring");else S("Failed to load MCPB for configuration")}catch(n){let _q=Eq(n);S(`Failed to load configuration: ${_q}`)}finally{Xq(!1)}}});if(A.plugin.manifest.userConfig&&Object.keys(A.plugin.manifest.userConfig).length>0)e.push({label:"Configure options",action:()=>{j({type:"configuring-options",schema:A.plugin.manifest.userConfig})}});e.push({label:"Update now",action:()=>void Pq("update")}),e.push({label:"Uninstall",action:()=>void Pq("uninstall")})}if(A.plugin.manifest.homepage)e.push({label:"Open homepage",action:()=>void KK(A.plugin.manifest.homepage)});if(A.plugin.manifest.repository)e.push({label:"View repository",action:()=>void KK(A.plugin.manifest.repository)});return e.push({label:"Back to plugin list",action:()=>{j("plugin-list"),u(null),S(null)}}),e},[G,A,E,Q]);if(pq({"select:previous":()=>{if(T>0)i(T-1)},"select:next":()=>{if(T<iq.length-1)i(T+1)},"select:accept":()=>{if(iq[T])iq[T].action()}},{context:"Select",isActive:G==="plugin-details"&&!!A}),pq({"select:accept":()=>{if(typeof G==="object"&&G.type==="failed-plugin-details")(async()=>{V(!0),S(null);let w=G.plugin.id,x=G.plugin.scope,Yq=f8(x)?await J8(w,x,!1):await J8(w,"user",!1),qq=Yq.success;if(!qq){let e=["userSettings","projectSettings","localSettings"];for(let n of e){let _q=hK(n);if(_q?.enabledPlugins?.[w]!==void 0)VK(n,{enabledPlugins:{..._q.enabledPlugins,[w]:void 0}}),qq=!0}cq()}if(qq){if(Y)await Y();V(!1),j("plugin-list")}else V(!1),S(Yq.message)})()}},{context:"Select",isActive:typeof G==="object"&&G.type==="failed-plugin-details"&&G.plugin.scope!=="managed"}),pq({"confirm:yes":()=>{if(!A)return;V(!0),S(null);let w=`${A.plugin.name}@${A.marketplace}`,{error:x}=VK("localSettings",{enabledPlugins:{...hK("localSettings")?.enabledPlugins,[w]:!1}});if(x){V(!1),S(`Failed to write settings: ${x.message}`);return}if(cq(),q(`\u2713 Disabled ${A.plugin.name} in .claude/settings.local.json. Run /reload-plugins to apply.`),Y)Y();K({type:"menu"})},"confirm:no":()=>{j("plugin-details"),S(null)}},{context:"Confirmation",isActive:G==="confirm-project-uninstall"&&!!A&&!I}),qK((w,x)=>{if(!A)return;let Yq=`${A.plugin.name}@${A.marketplace}`,qq=A.scope;if(!qq||qq==="builtin"||!f8(qq))return;let e=async(n)=>{V(!0),S(null);try{let _q=await J8(Yq,qq,n);if(!_q.success)throw Error(_q.message);cq();let $q=n?"":" \xB7 data preserved";if(q(`${EK.tick} ${_q.message}${$q}`),Y)Y();K({type:"menu"})}catch(_q){V(!1),S(_q instanceof Error?_q.message:String(_q))}};if(w==="y"||w==="Y")e(!0);else if(w==="n"||w==="N")e(!1);else if(x.escape)j("plugin-details"),S(null)},{isActive:typeof G==="object"&&G.type==="confirm-data-cleanup"&&!!A&&!I}),fK.useEffect(()=>{Oq(0)},[N]),qK((w,x)=>{let Yq=!x.ctrl&&!x.meta;if(v)return;if(w==="/"&&Yq)l(!0),F(""),Oq(0);else if(Yq&&w.length>0&&!/^\s+$/.test(w)&&w!=="j"&&w!=="k"&&w!==" ")l(!0),F(w),Oq(0)},{isActive:G==="plugin-list"}),s)return M(z,{children:"Loading installed plugins\u2026"},void 0,!1,void 0,this);if(wq.length===0)return M(O,{flexDirection:"column",children:[M(O,{marginBottom:1,children:M(z,{bold:!0,children:"Manage plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(z,{children:"No plugins or MCP servers installed."},void 0,!1,void 0,this),M(O,{marginTop:1,children:M(z,{dimColor:!0,children:"Esc to go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(typeof G==="object"&&G.type==="plugin-options"&&A){let x=function(Yq){if(q(Yq),Y)Y();K({type:"menu"})},w=`${A.plugin.name}@${A.marketplace}`;return M(UK,{plugin:A.plugin,pluginId:w,onDone:(Yq,qq)=>{switch(Yq){case"configured":x(`\u2713 Enabled and configured ${A.plugin.name}. Run /reload-plugins to apply.`);break;case"skipped":x(`\u2713 Enabled ${A.plugin.name}. Run /reload-plugins to apply.`);break;case"error":x(`Failed to save configuration: ${qq}`);break}}},void 0,!1,void 0,this)}if(typeof G==="object"&&G.type==="configuring-options"&&A){let w=`${A.plugin.name}@${A.marketplace}`;return M(W8,{title:`Configure ${A.plugin.name}`,subtitle:"Plugin options",configSchema:G.schema,initialValues:y8(w),onSave:(x)=>{try{R8(w,x,G.schema),cq(),q("Configuration saved. Run /reload-plugins for changes to take effect.")}catch(Yq){S(`Failed to save configuration: ${Eq(Yq)}`)}j("plugin-details")},onCancel:()=>j("plugin-details")},void 0,!1,void 0,this)}if(G==="configuring"&&$&&A){let Yq=function(){L(null),j("plugin-details")},w=`${A.plugin.name}@${A.marketplace}`;async function x(qq){if(!$||!A)return;try{let e=A.plugin.manifest.mcpServers,n=null;if(typeof e==="string"&&$K(e))n=e;else if(Array.isArray(e)){for(let _q of e)if(typeof _q==="string"&&$K(_q)){n=_q;break}}if(!n){S("No MCPB file found"),j("plugin-details");return}await x6(n,A.plugin.path,w,void 0,qq),S(null),L(null),j("plugin-details"),q("Configuration saved. Run /reload-plugins for changes to take effect.")}catch(e){let n=Eq(e);S(`Failed to save configuration: ${n}`),j("plugin-details")}}return M(W8,{title:`Configure ${$.manifest.name}`,subtitle:`Plugin: ${A.plugin.name}`,configSchema:$.configSchema,initialValues:$.existingConfig,onSave:x,onCancel:Yq},void 0,!1,void 0,this)}if(typeof G==="object"&&G.type==="flagged-detail"){let w=G.plugin;return M(O,{flexDirection:"column",children:[M(O,{children:M(z,{bold:!0,children:[w.name," @ ",w.marketplace]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(O,{marginBottom:1,children:[M(z,{dimColor:!0,children:"Status: "},void 0,!1,void 0,this),M(z,{color:"error",children:"Removed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M(O,{marginBottom:1,flexDirection:"column",children:[M(z,{color:"error",children:["Removed from marketplace \xB7 reason: ",w.reason]},void 0,!0,void 0,this),M(z,{children:w.text},void 0,!1,void 0,this),M(z,{dimColor:!0,children:["Flagged on ",new Date(w.flaggedAt).toLocaleDateString()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M(O,{marginTop:1,flexDirection:"column",children:M(O,{children:[M(z,{children:[EK.pointer," "]},void 0,!0,void 0,this),M(z,{color:"suggestion",children:"Dismiss"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(Lq,{children:[M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"dismiss"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}if(G==="confirm-project-uninstall"&&A)return M(O,{flexDirection:"column",children:[M(z,{bold:!0,color:"warning",children:[A.plugin.name," is enabled in .claude/settings.json (shared with your team)"]},void 0,!0,void 0,this),M(O,{marginTop:1,flexDirection:"column",children:[M(z,{children:"Disable it just for you in .claude/settings.local.json?"},void 0,!1,void 0,this),M(z,{dimColor:!0,children:"This has the same effect as uninstalling, without affecting other contributors."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c&&M(O,{marginTop:1,children:M(z,{color:"error",children:c},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,children:I?M(z,{dimColor:!0,children:"Disabling\u2026"},void 0,!1,void 0,this):M(Lq,{children:[M(kq,{action:"confirm:yes",context:"Confirmation",fallback:"y",description:"disable"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(typeof G==="object"&&G.type==="confirm-data-cleanup"&&A)return M(O,{flexDirection:"column",children:[M(z,{bold:!0,children:[A.plugin.name," has ",G.size.human," of persistent data"]},void 0,!0,void 0,this),M(O,{marginTop:1,flexDirection:"column",children:[M(z,{children:"Delete it along with the plugin?"},void 0,!1,void 0,this),M(z,{dimColor:!0,children:lz(`${A.plugin.name}@${A.marketplace}`)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c&&M(O,{marginTop:1,children:M(z,{color:"error",children:c},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,children:I?M(z,{dimColor:!0,children:"Uninstalling\u2026"},void 0,!1,void 0,this):M(z,{children:[M(z,{bold:!0,children:"y"},void 0,!1,void 0,this)," to delete \xB7 ",M(z,{bold:!0,children:"n"},void 0,!1,void 0,this)," to keep \xB7"," ",M(z,{bold:!0,children:"esc"},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(G==="plugin-details"&&A){let w=uK(),x=`${A.plugin.name}@${A.marketplace}`,Yq=w?.enabledPlugins?.[x]!==!1,qq=P.filter((n)=>("plugin"in n)&&n.plugin===A.plugin.name||n.source===x||n.source.startsWith(`${A.plugin.name}@`)),e=qq.length===0?null:M(O,{flexDirection:"column",marginBottom:1,children:[M(z,{bold:!0,color:"error",children:[qq.length," ",Vq(qq.length,"error"),":"]},void 0,!0,void 0,this),qq.map((n,_q)=>{let $q=O8(n);return M(O,{flexDirection:"column",marginLeft:2,children:[M(z,{color:"error",children:mK(n)},void 0,!1,void 0,this),$q&&M(z,{dimColor:!0,italic:!0,children:[EK.arrowRight," ",$q]},void 0,!0,void 0,this)]},_q,!0,void 0,this)})]},void 0,!0,void 0,this);return M(O,{flexDirection:"column",children:[M(O,{children:M(z,{bold:!0,children:[A.plugin.name," @ ",A.marketplace]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(O,{children:[M(z,{dimColor:!0,children:"Scope: "},void 0,!1,void 0,this),M(z,{children:A.scope||"user"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),A.plugin.manifest.version&&M(O,{children:[M(z,{dimColor:!0,children:"Version: "},void 0,!1,void 0,this),M(z,{children:A.plugin.manifest.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),A.plugin.manifest.description&&M(O,{marginBottom:1,children:M(z,{children:A.plugin.manifest.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),A.plugin.manifest.author&&M(O,{children:[M(z,{dimColor:!0,children:"Author: "},void 0,!1,void 0,this),M(z,{children:A.plugin.manifest.author.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M(O,{marginBottom:1,children:[M(z,{dimColor:!0,children:"Status: "},void 0,!1,void 0,this),M(z,{color:Yq?"success":"warning",children:Yq?"Enabled":"Disabled"},void 0,!1,void 0,this),A.pendingUpdate&&M(z,{color:"suggestion",children:" \xB7 Marked for update"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M($Y,{plugin:A.plugin,marketplace:A.marketplace},void 0,!1,void 0,this),e,M(O,{marginTop:1,flexDirection:"column",children:iq.map((n,_q)=>{let $q=_q===T;return M(O,{children:[$q&&M(z,{children:[EK.pointer," "]},void 0,!0,void 0,this),!$q&&M(z,{children:" "},void 0,!1,void 0,this),M(z,{bold:$q,color:n.label.includes("Uninstall")?"error":n.label.includes("Update")?"suggestion":void 0,children:n.label},void 0,!1,void 0,this)]},_q,!0,void 0,this)})},void 0,!1,void 0,this),I&&M(O,{marginTop:1,children:M(z,{children:"Processing\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this),c&&M(O,{marginTop:1,children:M(z,{color:"error",children:c},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,children:M(z,{dimColor:!0,italic:!0,children:M(Lq,{children:[M(kq,{action:"select:previous",context:"Select",fallback:"\u2191",description:"navigate"},void 0,!1,void 0,this),M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(typeof G==="object"&&G.type==="failed-plugin-details"){let w=G.plugin,x=w.errors[0],Yq=x?mK(x):"Failed to load";return M(O,{flexDirection:"column",children:[M(z,{children:[M(z,{bold:!0,children:w.name},void 0,!1,void 0,this),M(z,{dimColor:!0,children:[" @ ",w.marketplace]},void 0,!0,void 0,this),M(z,{dimColor:!0,children:[" (",w.scope,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M(z,{color:"error",children:Yq},void 0,!1,void 0,this),w.scope==="managed"?M(O,{marginTop:1,children:M(z,{dimColor:!0,children:"Managed by your organization \u2014 contact your admin"},void 0,!1,void 0,this)},void 0,!1,void 0,this):M(O,{marginTop:1,children:[M(z,{color:"suggestion",children:[EK.pointer," "]},void 0,!0,void 0,this),M(z,{bold:!0,children:"Remove"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),I&&M(z,{children:"Processing\u2026"},void 0,!1,void 0,this),c&&M(z,{color:"error",children:c},void 0,!1,void 0,this),M(O,{marginTop:1,children:M(z,{dimColor:!0,italic:!0,children:M(Lq,{children:[w.scope!=="managed"&&M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"remove"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(typeof G==="object"&&G.type==="mcp-detail"){let w=G.client,x=q6(W,w.name).length,Yq=()=>{j({type:"mcp-tools",client:w})},qq=()=>{j("plugin-list")},e=($q)=>{if($q)q($q);j("plugin-list")},n=w.config.scope,_q=w.config.type;if(_q==="stdio"){let $q={name:w.name,client:w,scope:n,transport:"stdio",config:w.config};return M(dz,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}else if(_q==="sse"){let $q={name:w.name,client:w,scope:n,transport:"sse",isAuthenticated:void 0,config:w.config};return M(Q8,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}else if(_q==="http"){let $q={name:w.name,client:w,scope:n,transport:"http",isAuthenticated:void 0,config:w.config};return M(Q8,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}else if(_q==="claudeai-proxy"){let $q={name:w.name,client:w,scope:n,transport:"claudeai-proxy",isAuthenticated:void 0,config:w.config};return M(Q8,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}return j("plugin-list"),null}if(typeof G==="object"&&G.type==="mcp-tools"){let w=G.client,x=w.config.scope,Yq=w.config.type,qq;if(Yq==="stdio")qq={name:w.name,client:w,scope:x,transport:"stdio",config:w.config};else if(Yq==="sse")qq={name:w.name,client:w,scope:x,transport:"sse",isAuthenticated:void 0,config:w.config};else if(Yq==="http")qq={name:w.name,client:w,scope:x,transport:"http",isAuthenticated:void 0,config:w.config};else qq={name:w.name,client:w,scope:x,transport:"claudeai-proxy",isAuthenticated:void 0,config:w.config};return M(oz,{server:qq,onSelectTool:(e)=>{j({type:"mcp-tool-detail",client:w,tool:e})},onBack:()=>j({type:"mcp-detail",client:w})},void 0,!1,void 0,this)}if(typeof G==="object"&&G.type==="mcp-tool-detail"){let{client:w,tool:x}=G,Yq=w.config.scope,qq=w.config.type,e;if(qq==="stdio")e={name:w.name,client:w,scope:Yq,transport:"stdio",config:w.config};else if(qq==="sse")e={name:w.name,client:w,scope:Yq,transport:"sse",isAuthenticated:void 0,config:w.config};else if(qq==="http")e={name:w.name,client:w,scope:Yq,transport:"http",isAuthenticated:void 0,config:w.config};else e={name:w.name,client:w,scope:Yq,transport:"claudeai-proxy",isAuthenticated:void 0,config:w.config};return M(xz,{tool:x,server:e,onBack:()=>j({type:"mcp-tools",client:w})},void 0,!1,void 0,this)}let ZK=Jq.getVisibleItems(C);return M(O,{flexDirection:"column",children:[M(O,{marginBottom:1,children:M(u8,{query:N,isFocused:v,isTerminalFocused:U,width:Wq-4,cursorOffset:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this),C.length===0&&N&&M(O,{marginBottom:1,children:M(z,{dimColor:!0,children:['No items match "',N,'"']},void 0,!0,void 0,this)},void 0,!1,void 0,this),Jq.scrollPosition.canScrollUp&&M(O,{children:M(z,{dimColor:!0,children:[" ",EK.arrowUp," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),ZK.map((w,x)=>{let qq=Jq.toActualIndex(x)===g&&!v,e=x>0?ZK[x-1]:null,n=!e||e.scope!==w.scope,_q=($q)=>{switch($q){case"flagged":return"Flagged";case"project":return"Project";case"local":return"Local";case"user":return"User";case"enterprise":return"Enterprise";case"managed":return"Managed";case"builtin":return"Built-in";case"dynamic":return"Built-in";default:return $q}};return M(fK.Fragment,{children:[n&&M(O,{marginTop:x>0?1:0,paddingLeft:2,children:M(z,{dimColor:w.scope!=="flagged",color:w.scope==="flagged"?"warning":void 0,bold:w.scope==="flagged",children:_q(w.scope)},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(az,{item:w,isSelected:qq},void 0,!1,void 0,this)]},w.id,!0,void 0,this)}),Jq.scrollPosition.canScrollDown&&M(O,{children:M(z,{dimColor:!0,children:[" ",EK.arrowDown," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,marginLeft:1,children:M(z,{dimColor:!0,italic:!0,children:M(Lq,{children:[M(z,{children:"type to search"},void 0,!1,void 0,this),M(kq,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"},void 0,!1,void 0,this),M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),m.size>0&&M(O,{marginLeft:1,children:M(z,{dimColor:!0,italic:!0,children:"Run /reload-plugins to apply changes"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f7=uq(()=>{zK();YK();Iz();Ez();cz();Fz();hz();Jz();v6();Bq();DK();GY();d6();i8();PY();h8();D8();S8();h6();wK();T8();cK();$6();oK();zz();XY();_Y();MY();G6();Oz();J6();tz();y6();WY();PK();E6();W6();b8();nz();m8()});function H7(K){if(!K)return{type:"menu"};let q=K.trim().split(/\s+/);switch(q[0]?.toLowerCase()){case"help":case"--help":case"-h":return{type:"help"};case"install":case"i":{let f=q[1];if(!f)return{type:"install"};if(f.includes("@")){let[_,J]=f.split("@");return{type:"install",plugin:_,marketplace:J}}if(f.startsWith("http://")||f.startsWith("https://")||f.startsWith("file://")||f.includes("/")||f.includes("\\"))return{type:"install",marketplace:f};return{type:"install",plugin:f}}case"manage":return{type:"manage"};case"uninstall":return{type:"uninstall",plugin:q[1]};case"enable":return{type:"enable",plugin:q[1]};case"disable":return{type:"disable",plugin:q[1]};case"validate":return{type:"validate",path:q.slice(1).join(" ").trim()||void 0};case"marketplace":case"market":{let f=q[1]?.toLowerCase(),H=q.slice(2).join(" ");switch(f){case"add":return{type:"marketplace",action:"add",target:H};case"remove":case"rm":return{type:"marketplace",action:"remove",target:H};case"update":return{type:"marketplace",action:"update",target:H};case"list":return{type:"marketplace",action:"list"};default:return{type:"marketplace"}}}default:return{type:"menu"}}}var w7=()=>{};import{c as jY}from"react/compiler-runtime";import CK from"figures";import{useEffect as yY}from"react";import{jsxDEV as k7}from"react/jsx-dev-runtime";function W7(K){let q=jY(5),{onComplete:Y,path:f}=K,H,_;if(q[0]!==Y||q[1]!==f)H=()=>{(async function(){if(!f){Y(`Usage: /plugin validate <path>
2
+ import{$c as Mz,Xc as l6,Yc as _7,Zc as p8,_c as V8,bd as A7,cd as TY}from"./cli-gxgdnjfn.js";import{ed as l8,fd as Y8,hd as d6}from"./cli-z5e72gsd.js";import{pd as K7,rd as z7,sd as Y7,td as _Y}from"./cli-89x414pj.js";import{vd as Rz,xd as o7}from"./cli-vwg0v35a.js";import{Ad as f8,Bd as ez,Cd as c6,Ed as J8,Fd as z6,Gd as Y6,Id as q7,Jd as PY}from"./cli-q46epwyh.js";import{Ld as O6,Rd as tz}from"./cli-66jj9zj3.js";import{cf as u8,df as hz,ef as g8,ff as Jz}from"./cli-h4a90xbh.js";import{gf as P7,hf as $8,kf as NY}from"./cli-c22wpdk4.js";import{$n as D6,AF as sq,An as fz,BF as _8,Bn as b7,Ch as K6,DF as h8,Eo as Q7,Ep as z8,Fh as MY,Fi as $K,Gi as qz,Hi as Kz,ID as lK,Ii as x6,Ip as I6,JD as Gz,Ji as zz,Ki as y8,Lh as I8,Li as R8,MC as cq,Mh as Az,Mn as Vz,Ni as Yz,Oi as Oz,Ou as vK,PC as cK,PD as IK,Pu as w6,QC as rK,RC as M8,SC as yK,SD as G6,Sp as s7,TC as _K,UC as sK,VC as Hz,Vn as e7,Wn as q6,XC as _z,YC as G8,Yn as B8,Zn as m6,_n as C6,cD as B6,co as r8,dD as WK,dr as V6,ei as lz,fi as Qz,hD as r6,hi as XY,iD as x8,jD as iK,jo as i8,mD as jz,mG as j8,nD as yz,nG as i6,oD as oK,pD as sz,tx as QK,uh as Uz,ux as J6,vh as kY,vo as Dz,wD as Wz,wo as S6,xD as BK,xh as iz,yh as GY,yo as Sz,zD as $6}from"./cli-me4e2p3e.js";import{SL as oq,TL as A8,UL as kq,VL as zK,WL as Lq,XL as YK,YL as FK,ZL as A6}from"./cli-xfsqvp8r.js";import{aO as K8,bO as p6}from"./cli-6yprtw88.js";import{EO as eK,FO as v6,SO as xq,TO as pq,UO as DK,aP as X7,bP as RY}from"./cli-akcxtvv9.js";import{$P as l7,BQ as dq,DQ as O,FQ as z,JQ as a8,WP as Cz,WQ as qK,fQ as E8,fR as Bq,kP as q8}from"./cli-x8xgga1a.js";import{BW as VK,CV as t8,DV as e8,EV as gz,F1 as i7,F3 as j6,FW as uK,NW as y6,Q3 as c7,VV as n8,WV as Vq,cW as PK,eV as T6,j1 as mz,rV as x7,zW as hK}from"./cli-msmzt4c3.js";import{d4 as OK,f4 as D8}from"./cli-s6vr7213.js";import{B5 as KK,C5 as S8}from"./cli-k4v08k8t.js";import{Z5 as e6,_5 as Z7,a6 as C8,e6 as kz}from"./cli-51720d82.js";import{E8 as kK,H8 as Lz,J8 as T8}from"./cli-4ewb3q42.js";import{Y8 as nq,Z8 as H6}from"./cli-t9jht3kb.js";import{B9 as L6,C9 as r7}from"./cli-kq16afrr.js";import{W9 as xK,X9 as Eq,b_ as wK,e_ as rz,h_ as WY,v_ as RK,y_ as h6}from"./cli-hke6r0q8.js";import{I_ as t6,S_ as $7}from"./cli-tq5z9qv3.js";import{fda as uq}from"./cli-w1d8n9g3.js";import{useEffect as h7,useRef as J7,useState as n6}from"react";import{jsxDEV as Dq}from"react/jsx-dev-runtime";function Q6({inputValue:K,setInputValue:q,cursorOffset:Y,setCursorOffset:f,error:H,setError:_,result:J,setResult:h,setViewState:W,onAddComplete:P,cliMode:k=!1}){let v=J7(!1),[X,l]=n6(!1),[U,Wq]=n6(""),G=async()=>{let j=K.trim();if(!j){_("Please enter a marketplace source");return}let N=await l6(j);if(!N){_("Invalid marketplace source format. Try: owner/repo, https://..., or ./path");return}if("error"in N){_(N.error);return}_(null);try{l(!0),Wq("");let{name:F,resolvedSource:Z}=await r6(N,(u)=>{Wq(u)});B6(F,{source:Z}),cq();let A=N.source;if(N.source==="github")A=N.repo;if(nq("tengu_marketplace_added",{source_type:A}),P)await P();if(Wq(""),l(!1),k)h(`Successfully added marketplace: ${F}`);else W({type:"browse-marketplace",targetMarketplace:F})}catch(F){let Z=xK(F);if(kK(Z),_(Z.message),Wq(""),l(!1),k)h(`Error: ${Z.message}`);else h(null)}};return h7(()=>{if(K&&!v.current&&!H&&!J)v.current=!0,G()},[]),Dq(O,{flexDirection:"column",children:[Dq(O,{flexDirection:"column",paddingX:1,borderStyle:"round",children:[Dq(O,{marginBottom:1,children:Dq(z,{bold:!0,children:"Add Marketplace"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Dq(O,{flexDirection:"column",children:[Dq(z,{children:"Enter marketplace source:"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:"Examples:"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 owner/repo (GitHub)"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 git@github.com:owner/repo.git (SSH)"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 https://example.com/marketplace.json"},void 0,!1,void 0,this),Dq(z,{dimColor:!0,children:" \xB7 ./path/to/marketplace"},void 0,!1,void 0,this),Dq(O,{marginTop:1,children:Dq(j8,{value:K,onChange:q,onSubmit:G,columns:80,cursorOffset:Y,onChangeCursorOffset:f,focus:!0,showCursor:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X&&Dq(O,{marginTop:1,children:[Dq(vK,{},void 0,!1,void 0,this),Dq(z,{children:U||"Adding marketplace to configuration\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H&&Dq(O,{marginTop:1,children:Dq(z,{color:"error",children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this),J&&Dq(O,{marginTop:1,children:Dq(z,{children:J},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Dq(O,{marginLeft:3,children:Dq(z,{dimColor:!0,italic:!0,children:Dq(Lq,{children:[Dq(oq,{shortcut:"Enter",action:"add"},void 0,!1,void 0,this),Dq(kq,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var s6=uq(()=>{H6();zK();YK();A8();w6();i6();Bq();wK();T8();cK();oK();_7()});import{c as v7}from"react/compiler-runtime";import T7 from"figures";import{useState as k6}from"react";import{jsxDEV as eq}from"react/jsx-dev-runtime";function j7(K,q,Y,f){let H={};for(let _ of K){let J=Y[_],h=q[_]??"";if(J?.sensitive===!0&&h===""&&f?.[_]!==void 0)continue;if(J?.type==="number"){if(h.trim()==="")continue;let W=Number(h);H[_]=Number.isNaN(W)?h:W}else if(J?.type==="boolean")H[_]=t6(h);else H[_]=h}return H}function W8(K){let q=v7(70),{title:Y,subtitle:f,configSchema:H,initialValues:_,onSave:J,onCancel:h}=K,W;if(q[0]!==H)W=Object.keys(H),q[0]=H,q[1]=W;else W=q[1];let P=W,k;if(q[2]!==H||q[3]!==_)k=(L)=>{if(H[L]?.sensitive===!0)return"";let t=_?.[L];return t===void 0?"":String(t)},q[2]=H,q[3]=_,q[4]=k;else k=q[4];let v=k,[X,l]=k6(0),U;if(q[5]===Symbol.for("react.memo_cache_sentinel"))U={},q[5]=U;else U=q[5];let[Wq,G]=k6(U),j;if(q[6]!==P[0]||q[7]!==v)j=()=>P[0]?v(P[0]):"",q[6]=P[0],q[7]=v,q[8]=j;else j=q[8];let[N,F]=k6(j),Z=P[X],A=Z?H[Z]:null,u;if(q[9]===Symbol.for("react.memo_cache_sentinel"))u={context:"Settings"},q[9]=u;else u=q[9];xq("confirm:no",h,u);let Hq;if(q[10]!==Z||q[11]!==X||q[12]!==N||q[13]!==P||q[14]!==v)Hq=()=>{if(X<P.length-1&&Z){G((t)=>({...t,[Z]:N})),l(N7);let L=P[X+1];F(L?v(L):"")}},q[10]=Z,q[11]=X,q[12]=N,q[13]=P,q[14]=v,q[15]=Hq;else Hq=q[15];let D=Hq,Q;if(q[16]!==H||q[17]!==Z||q[18]!==X||q[19]!==N||q[20]!==P||q[21]!==v||q[22]!==_||q[23]!==J||q[24]!==Wq)Q=()=>{if(!Z)return;let L={...Wq,[Z]:N};if(X===P.length-1)J(j7(P,L,H,_));else{G(L),l(R7);let t=P[X+1];F(t?v(t):"")}},q[16]=H,q[17]=Z,q[18]=X,q[19]=N,q[20]=P,q[21]=v,q[22]=_,q[23]=J,q[24]=Wq,q[25]=Q;else Q=q[25];let r=Q,s;if(q[26]!==r||q[27]!==D)s={"confirm:nextField":D,"confirm:yes":r},q[26]=r,q[27]=D,q[28]=s;else s=q[28];let fq;if(q[29]===Symbol.for("react.memo_cache_sentinel"))fq={context:"Confirmation"},q[29]=fq;else fq=q[29];pq(s,fq);let m;if(q[30]===Symbol.for("react.memo_cache_sentinel"))m=(L,t)=>{if(t.backspace||t.delete){F(y7);return}if(L&&!t.ctrl&&!t.meta&&!t.tab&&!t.return)F((Xq)=>Xq+L)},q[30]=m;else m=q[30];if(qK(m),!A||!Z)return null;let Aq=A.sensitive===!0,Gq=A.required===!0,zq;if(q[31]!==N||q[32]!==Aq)zq=Aq?"*".repeat(e6(N)):N,q[31]=N,q[32]=Aq,q[33]=zq;else zq=q[33];let B=zq,Mq=A.title||Z,hq;if(q[34]!==Gq)hq=Gq&&eq(z,{color:"error",children:" *"},void 0,!1,void 0,this),q[34]=Gq,q[35]=hq;else hq=q[35];let wq;if(q[36]!==Mq||q[37]!==hq)wq=eq(z,{bold:!0,children:[Mq,hq]},void 0,!0,void 0,this),q[36]=Mq,q[37]=hq,q[38]=wq;else wq=q[38];let y;if(q[39]!==A.description)y=A.description&&eq(z,{dimColor:!0,children:A.description},void 0,!1,void 0,this),q[39]=A.description,q[40]=y;else y=q[40];let C;if(q[41]===Symbol.for("react.memo_cache_sentinel"))C=eq(z,{children:[T7.pointerSmall," "]},void 0,!0,void 0,this),q[41]=C;else C=q[41];let g;if(q[42]!==B)g=eq(z,{children:B},void 0,!1,void 0,this),q[42]=B,q[43]=g;else g=q[43];let Oq;if(q[44]===Symbol.for("react.memo_cache_sentinel"))Oq=eq(z,{children:"\u2588"},void 0,!1,void 0,this),q[44]=Oq;else Oq=q[44];let Jq;if(q[45]!==g)Jq=eq(O,{marginTop:1,children:[C,g,Oq]},void 0,!0,void 0,this),q[45]=g,q[46]=Jq;else Jq=q[46];let T;if(q[47]!==wq||q[48]!==y||q[49]!==Jq)T=eq(O,{flexDirection:"column",children:[wq,y,Jq]},void 0,!0,void 0,this),q[47]=wq,q[48]=y,q[49]=Jq,q[50]=T;else T=q[50];let i=X+1,I;if(q[51]!==P.length||q[52]!==i)I=eq(z,{dimColor:!0,children:["Field ",i," of ",P.length]},void 0,!0,void 0,this),q[51]=P.length,q[52]=i,q[53]=I;else I=q[53];let V;if(q[54]!==X||q[55]!==P.length)V=X<P.length-1&&eq(z,{dimColor:!0,children:"Tab: Next field \xB7 Enter: Save and continue"},void 0,!1,void 0,this),q[54]=X,q[55]=P.length,q[56]=V;else V=q[56];let c;if(q[57]!==X||q[58]!==P.length)c=X===P.length-1&&eq(z,{dimColor:!0,children:"Enter: Save configuration"},void 0,!1,void 0,this),q[57]=X,q[58]=P.length,q[59]=c;else c=q[59];let S;if(q[60]!==I||q[61]!==V||q[62]!==c)S=eq(O,{flexDirection:"column",children:[I,V,c]},void 0,!0,void 0,this),q[60]=I,q[61]=V,q[62]=c,q[63]=S;else S=q[63];let $;if(q[64]!==h||q[65]!==f||q[66]!==T||q[67]!==S||q[68]!==Y)$=eq(FK,{title:Y,subtitle:f,onCancel:h,isCancelActive:!1,children:[T,S]},void 0,!0,void 0,this),q[64]=h,q[65]=f,q[66]=T,q[67]=S,q[68]=Y,q[69]=$;else $=q[69];return $}function y7(K){return K.slice(0,-1)}function R7(K){return K+1}function N7(K){return K+1}var W6=uq(()=>{A6();Z7();Bq();DK();$7()});import*as SK from"react";import{jsxDEV as L7}from"react/jsx-dev-runtime";async function N8(K){let{enabled:q,disabled:Y}=await IK();return[...q,...Y].find((f)=>f.repository===K||f.source===K)}function UK({plugin:K,pluginId:q,onDone:Y}){let[f]=SK.useState(()=>{let P=[],k=Yz(K);if(Object.keys(k).length>0)P.push({key:"top-level",title:`Configure ${K.name}`,subtitle:"Plugin options",schema:k,load:()=>y8(q),save:(X)=>R8(q,X,K.manifest.userConfig)});let v=fz(K);for(let X of v)P.push({key:`channel:${X.server}`,title:`Configure ${X.displayName}`,subtitle:`Plugin: ${K.name}`,schema:X.configSchema,load:()=>qz(q,X.server)??void 0,save:(l)=>Kz(q,X.server,l,X.configSchema)});return P}),[H,_]=SK.useState(0),J=SK.useRef(Y);if(J.current=Y,SK.useEffect(()=>{if(f.length===0)J.current("skipped")},[f.length]),f.length===0)return null;let h=f[H];function W(P){try{h.save(P)}catch(v){Y("error",Eq(v));return}let k=H+1;if(k<f.length)_(k);else Y("configured")}return L7(W8,{title:h.title,subtitle:h.subtitle,configSchema:h.schema,initialValues:h.load(),onSave:W,onCancel:()=>Y("skipped")},h.key,!1,void 0,this)}var b8=uq(()=>{wK();zz();b7();G6();Oz();W6()});import{c as m7}from"react/compiler-runtime";import C7 from"figures";import{jsxDEV as M6}from"react/jsx-dev-runtime";function L8(){let K=m7(3),q;if(K[0]===Symbol.for("react.memo_cache_sentinel"))q=Hz(),K[0]=q;else q=K[0];let Y=q,f;if(K[1]===Symbol.for("react.memo_cache_sentinel"))f=M6(z,{color:"claude",children:[C7.warning," "]},void 0,!0,void 0,this),K[1]=f;else f=K[1];let H;if(K[2]===Symbol.for("react.memo_cache_sentinel"))H=M6(O,{marginBottom:1,children:[f,M6(z,{dimColor:!0,italic:!0,children:["Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.",Y?` ${Y}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K[2]=H;else H=K[2];return H}var X6=uq(()=>{Bq();G8()});import{c as D7}from"react/compiler-runtime";import{jsxDEV as pK}from"react/jsx-dev-runtime";function TK(K){if(K.entry.source&&typeof K.entry.source==="object"&&"source"in K.entry.source&&K.entry.source.source==="github"&&typeof K.entry.source==="object"&&"repo"in K.entry.source)return K.entry.source.repo;return null}function aK(K,q){let Y=[{label:"Install for you (user scope)",action:"install-user"},{label:"Install for all collaborators on this repository (project scope)",action:"install-project"},{label:"Install for you, in this repo only (local scope)",action:"install-local"}];if(K)Y.push({label:"Open homepage",action:"homepage"});if(q)Y.push({label:"View on GitHub",action:"github"});return Y.push({label:"Back to plugin list",action:"back"}),Y}function wz(K){let q=D7(7),{hasSelection:Y}=K,f;if(q[0]!==Y)f=Y&&pK(kq,{action:"plugin:install",context:"Plugin",fallback:"i",description:"install",bold:!0},void 0,!1,void 0,this),q[0]=Y,q[1]=f;else f=q[1];let H,_,J;if(q[2]===Symbol.for("react.memo_cache_sentinel"))H=pK(kq,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"},void 0,!1,void 0,this),_=pK(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"},void 0,!1,void 0,this),J=pK(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this),q[2]=H,q[3]=_,q[4]=J;else H=q[2],_=q[3],J=q[4];let h;if(q[5]!==f)h=pK(O,{marginTop:1,children:pK(z,{dimColor:!0,italic:!0,children:pK(Lq,{children:[f,H,_,J]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[5]=f,q[6]=h;else h=q[6];return h}var P6=uq(()=>{zK();YK();Bq()});import{useCallback as jK,useMemo as S7,useRef as I7}from"react";function nK({totalItems:K,maxVisible:q=p7,selectedIndex:Y=0}){let f=K>q,H=I7(0),_=S7(()=>{if(!f)return 0;let N=H.current;if(Y<N)return H.current=Y,Y;if(Y>=N+q){let A=Y-q+1;return H.current=A,A}let F=Math.max(0,K-q),Z=Math.min(N,F);return H.current=Z,Z},[Y,q,f,K]),J=_,h=Math.min(_+q,K),W=jK((N)=>{if(!f)return N;return N.slice(J,h)},[f,J,h]),P=jK((N)=>{return J+N},[J]),k=jK((N)=>{return N>=J&&N<h},[J,h]),v=jK((N)=>{},[]),X=jK(()=>{},[]),l=jK(()=>{},[]),U=jK((N,F)=>{let Z=Math.max(0,Math.min(N,K-1));F(Z)},[K]),Wq=jK((N,F)=>{return!1},[]),G=Math.max(1,Math.ceil(K/q));return{currentPage:Math.floor(_/q),totalPages:G,startIndex:J,endIndex:h,needsPagination:f,pageSize:q,getVisibleItems:W,toActualIndex:P,isOnCurrentPage:k,goToPage:v,nextPage:X,prevPage:l,handleSelectionChange:U,handlePageNavigation:Wq,scrollPosition:{current:Y+1,total:K,canScrollUp:_>0,canScrollDown:_+q<K}}}var p7=5;var m8=()=>{};import AK from"figures";import*as d8 from"react";import{useEffect as _6,useState as lq}from"react";import{jsxDEV as p,Fragment as V7}from"react/jsx-dev-runtime";function Xz({error:K,setError:q,result:Y,setResult:f,setViewState:H,onInstallComplete:_,targetMarketplace:J,targetPlugin:h}){let[W,P]=lq("marketplace-list"),[k,v]=lq(null),[X,l]=lq(null),[U,Wq]=lq([]),[G,j]=lq([]),[N,F]=lq(!0),[Z,A]=lq(null),[u,Hq]=lq(0),[D,Q]=lq(new Set),[r,s]=lq(new Set),fq=nK({totalItems:G.length,selectedIndex:u}),[m,Aq]=lq(0),[Gq,zq]=lq(!1),[B,Mq]=lq(null),[hq,wq]=lq(null),y=d8.useCallback(()=>{if(W==="plugin-list")if(J)H({type:"manage-marketplaces",targetMarketplace:J});else if(U.length===1)H({type:"menu"});else P("marketplace-list"),v(null),Q(new Set);else if(W==="plugin-details")P("plugin-list"),l(null);else H({type:"menu"})},[W,J,H,U.length]);xq("confirm:no",y,{context:"Confirmation"}),_6(()=>{async function T(){try{let i=await WK(),{marketplaces:I,failures:V}=await _K(i),c=[];for(let{name:L,config:t,data:Xq}of I)if(Xq){let E=OK(Xq.plugins,(o)=>Wz(yK(o.name,L)));c.push({name:L,totalPlugins:Xq.plugins.length,installedCount:E,source:M8(t.source)})}c.sort((L,t)=>{if(L.name==="claude-plugin-directory")return-1;if(t.name==="claude-plugin-directory")return 1;return 0}),Wq(c);let S=OK(I,(L)=>L.data!==null),$=sK(V,S);if($)if($.type==="warning")wq($.message+". Showing available marketplaces.");else throw Error($.message);if(c.length===1&&!J&&!h){let L=c[0];if(L)v(L.name),P("plugin-list")}if(h){let L=null,t=null;for(let[Xq]of Object.entries(i)){let E=await iK(Xq);if(E){let o=E.plugins.find((Pq)=>Pq.name===h);if(o){let Pq=yK(o.name,Xq);L={entry:o,marketplaceName:Xq,pluginId:Pq,isInstalled:BK(Pq)},t=Xq;break}}}if(L&&t){let Xq=L.pluginId;if(BK(Xq))q(`Plugin '${Xq}' is already installed globally. Use '/plugin' to manage existing plugins.`);else v(t),l(L),P("plugin-details")}else q(`Plugin "${h}" not found in any marketplace`)}else if(J)if(c.some((t)=>t.name===J))v(J),P("plugin-list");else q(`Marketplace "${J}" not found`)}catch(i){q(i instanceof Error?i.message:"Failed to load marketplaces")}finally{F(!1)}}T()},[q,J,h]),_6(()=>{if(!k)return;let T=!1;async function i(I){F(!0);try{let V=await iK(I);if(T)return;if(!V)throw Error(`Failed to load marketplace: ${I}`);let c=[];for(let S of V.plugins){let $=yK(S.name,I);if(QK($))continue;c.push({entry:S,marketplaceName:I,pluginId:$,isInstalled:BK($)})}try{let S=await p8();if(T)return;if(A(S),S)c.sort(($,L)=>{let t=S.get($.pluginId)??0,Xq=S.get(L.pluginId)??0;if(t!==Xq)return Xq-t;return $.entry.name.localeCompare(L.entry.name)});else c.sort(($,L)=>$.entry.name.localeCompare(L.entry.name))}catch(S){if(T)return;RK(`Failed to fetch install counts: ${Eq(S)}`),c.sort(($,L)=>$.entry.name.localeCompare(L.entry.name))}j(c),Hq(0),Q(new Set)}catch(V){if(T)return;q(V instanceof Error?V.message:"Failed to load plugins")}finally{F(!1)}}return i(k),()=>{T=!0}},[k,q]);let C=async()=>{if(D.size===0)return;let T=G.filter((c)=>D.has(c.pluginId));s(new Set(T.map((c)=>c.pluginId)));let i=0,I=0,V=[];for(let c of T){let S=await lK({pluginId:c.pluginId,entry:c.entry,marketplaceName:c.marketplaceName,scope:"user"});if(S.success)i++;else I++,V.push({name:c.entry.name,reason:S.error})}if(s(new Set),Q(new Set),cq(),I===0){let c=`\u2713 Installed ${i} ${Vq(i,"plugin")}. Run /reload-plugins to activate.`;f(c)}else if(i===0)q(`Failed to install: ${rK(V,!0)}`);else{let c=`\u2713 Installed ${i} of ${i+I} plugins. Failed: ${rK(V,!1)}. Run /reload-plugins to activate successfully installed plugins.`;f(c)}if(i>0){if(_)await _()}H({type:"menu"})},g=async(T,i="user")=>{zq(!0),Mq(null);let I=await lK({pluginId:T.pluginId,entry:T.entry,marketplaceName:T.marketplaceName,scope:i});if(I.success){let V=await N8(T.pluginId);if(V){zq(!1),P({type:"plugin-options",plugin:V,pluginId:T.pluginId});return}if(f(I.message),_)await _();H({type:"menu"})}else zq(!1),Mq(I.error)};_6(()=>{if(K)f(K)},[K,f]),pq({"select:previous":()=>{if(u>0)Hq(u-1)},"select:next":()=>{if(u<U.length-1)Hq(u+1)},"select:accept":()=>{let T=U[u];if(T)v(T.name),P("plugin-list")}},{context:"Select",isActive:W==="marketplace-list"}),pq({"select:previous":()=>{if(u>0)fq.handleSelectionChange(u-1,Hq)},"select:next":()=>{if(u<G.length-1)fq.handleSelectionChange(u+1,Hq)},"select:accept":()=>{if(u===G.length&&D.size>0)C();else if(u<G.length){let T=G[u];if(T)if(T.isInstalled)H({type:"manage-plugins",targetPlugin:T.entry.name,targetMarketplace:T.marketplaceName});else l(T),P("plugin-details"),Aq(0),Mq(null)}}},{context:"Select",isActive:W==="plugin-list"}),pq({"plugin:toggle":()=>{if(u<G.length){let T=G[u];if(T&&!T.isInstalled){let i=new Set(D);if(i.has(T.pluginId))i.delete(T.pluginId);else i.add(T.pluginId);Q(i)}}},"plugin:install":()=>{if(D.size>0)C()}},{context:"Plugin",isActive:W==="plugin-list"});let Oq=d8.useMemo(()=>{if(!X)return[];let T=X.entry.homepage,i=TK(X);return aK(T,i)},[X]);if(pq({"select:previous":()=>{if(m>0)Aq(m-1)},"select:next":()=>{if(m<Oq.length-1)Aq(m+1)},"select:accept":()=>{if(!X)return;let T=Oq[m]?.action,i=X.entry.homepage,I=TK(X);if(T==="install-user")g(X,"user");else if(T==="install-project")g(X,"project");else if(T==="install-local")g(X,"local");else if(T==="homepage"&&i)KK(i);else if(T==="github"&&I)KK(`https://github.com/${I}`);else if(T==="back")P("plugin-list"),l(null)}},{context:"Select",isActive:W==="plugin-details"&&!!X}),typeof W==="object"&&W.type==="plugin-options"){let I=function(V){if(f(V),_)_();H({type:"menu"})},{plugin:T,pluginId:i}=W;return p(UK,{plugin:T,pluginId:i,onDone:(V,c)=>{switch(V){case"configured":I(`\u2713 Installed and configured ${T.name}. Run /reload-plugins to apply.`);break;case"skipped":I(`\u2713 Installed ${T.name}. Run /reload-plugins to apply.`);break;case"error":I(`Installed but failed to save config: ${c}`);break}}},void 0,!1,void 0,this)}if(N)return p(z,{children:"Loading\u2026"},void 0,!1,void 0,this);if(K)return p(z,{color:"error",children:K},void 0,!1,void 0,this);if(W==="marketplace-list"){if(U.length===0)return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Select marketplace"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p(z,{children:"No marketplaces configured."},void 0,!1,void 0,this),p(z,{dimColor:!0,children:["Add a marketplace first using ","'Add marketplace'","."]},void 0,!0,void 0,this),p(O,{marginTop:1,paddingLeft:1,children:p(z,{dimColor:!0,children:p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Select marketplace"},void 0,!1,void 0,this)},void 0,!1,void 0,this),hq&&p(O,{marginBottom:1,flexDirection:"column",children:p(z,{color:"warning",children:[AK.warning," ",hq]},void 0,!0,void 0,this)},void 0,!1,void 0,this),U.map((T,i)=>p(O,{flexDirection:"column",marginBottom:i<U.length-1?1:0,children:[p(O,{children:p(z,{color:u===i?"suggestion":void 0,children:[u===i?AK.pointer:" "," ",T.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p(O,{marginLeft:2,children:p(z,{dimColor:!0,children:[T.totalPlugins," ",Vq(T.totalPlugins,"plugin")," available",T.installedCount>0&&` \xB7 ${T.installedCount} already installed`,T.source&&` \xB7 ${T.source}`]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},T.name,!0,void 0,this)),p(O,{marginTop:1,children:p(z,{dimColor:!0,italic:!0,children:p(Lq,{children:[p(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(W==="plugin-details"&&X){let T=X.entry.homepage,i=TK(X),I=aK(T,i);return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Plugin Details"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p(O,{flexDirection:"column",marginBottom:1,children:[p(z,{bold:!0,children:X.entry.name},void 0,!1,void 0,this),X.entry.version&&p(z,{dimColor:!0,children:["Version: ",X.entry.version]},void 0,!0,void 0,this),X.entry.description&&p(O,{marginTop:1,children:p(z,{children:X.entry.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),X.entry.author&&p(O,{marginTop:1,children:p(z,{dimColor:!0,children:["By:"," ",typeof X.entry.author==="string"?X.entry.author:X.entry.author.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p(O,{flexDirection:"column",marginBottom:1,children:[p(z,{bold:!0,children:"Will install:"},void 0,!1,void 0,this),X.entry.commands&&p(z,{dimColor:!0,children:["\xB7 Commands:"," ",Array.isArray(X.entry.commands)?X.entry.commands.join(", "):Object.keys(X.entry.commands).join(", ")]},void 0,!0,void 0,this),X.entry.agents&&p(z,{dimColor:!0,children:["\xB7 Agents:"," ",Array.isArray(X.entry.agents)?X.entry.agents.join(", "):Object.keys(X.entry.agents).join(", ")]},void 0,!0,void 0,this),X.entry.hooks&&p(z,{dimColor:!0,children:["\xB7 Hooks: ",Object.keys(X.entry.hooks).join(", ")]},void 0,!0,void 0,this),X.entry.mcpServers&&p(z,{dimColor:!0,children:["\xB7 MCP Servers:"," ",Array.isArray(X.entry.mcpServers)?X.entry.mcpServers.join(", "):typeof X.entry.mcpServers==="object"?Object.keys(X.entry.mcpServers).join(", "):"configured"]},void 0,!0,void 0,this),!X.entry.commands&&!X.entry.agents&&!X.entry.hooks&&!X.entry.mcpServers&&p(V7,{children:typeof X.entry.source==="object"&&"source"in X.entry.source&&(X.entry.source.source==="github"||X.entry.source.source==="url"||X.entry.source.source==="npm"||X.entry.source.source==="pip")?p(z,{dimColor:!0,children:"\xB7 Component summary not available for remote plugin"},void 0,!1,void 0,this):p(z,{dimColor:!0,children:"\xB7 Components will be discovered at installation"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p(L8,{},void 0,!1,void 0,this),B&&p(O,{marginBottom:1,children:p(z,{color:"error",children:["Error: ",B]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p(O,{flexDirection:"column",children:I.map((V,c)=>p(O,{children:[m===c&&p(z,{children:"> "},void 0,!1,void 0,this),m!==c&&p(z,{children:" "},void 0,!1,void 0,this),p(z,{bold:m===c,children:Gq&&V.action==="install"?"Installing\u2026":V.label},void 0,!1,void 0,this)]},V.action,!0,void 0,this))},void 0,!1,void 0,this),p(O,{marginTop:1,paddingLeft:1,children:p(z,{dimColor:!0,children:p(Lq,{children:[p(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(G.length===0)return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Install plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p(z,{dimColor:!0,children:"No new plugins available to install."},void 0,!1,void 0,this),p(z,{dimColor:!0,children:"All plugins from this marketplace are already installed."},void 0,!1,void 0,this),p(O,{marginLeft:3,children:p(z,{dimColor:!0,italic:!0,children:p(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let Jq=fq.getVisibleItems(G);return p(O,{flexDirection:"column",children:[p(O,{marginBottom:1,children:p(z,{bold:!0,children:"Install Plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),fq.scrollPosition.canScrollUp&&p(O,{children:p(z,{dimColor:!0,children:[" ",AK.arrowUp," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Jq.map((T,i)=>{let I=fq.toActualIndex(i),V=u===I,c=D.has(T.pluginId),S=r.has(T.pluginId),$=i===Jq.length-1;return p(O,{flexDirection:"column",marginBottom:$&&!K?0:1,children:[p(O,{children:[p(z,{color:V?"suggestion":void 0,children:[V?AK.pointer:" "," "]},void 0,!0,void 0,this),p(z,{color:T.isInstalled?"success":void 0,children:[T.isInstalled?AK.tick:S?AK.ellipsis:c?AK.radioOn:AK.radioOff," ",T.entry.name,T.entry.category&&p(z,{dimColor:!0,children:[" [",T.entry.category,"]"]},void 0,!0,void 0,this),T.entry.tags?.includes("community-managed")&&p(z,{dimColor:!0,children:" [Community Managed]"},void 0,!1,void 0,this),T.isInstalled&&p(z,{dimColor:!0,children:" (installed)"},void 0,!1,void 0,this),Z&&k===I8&&p(z,{dimColor:!0,children:[" \xB7 ",V8(Z.get(T.pluginId)??0)," ","installs"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),T.entry.description&&p(O,{marginLeft:4,children:[p(z,{dimColor:!0,children:C8(T.entry.description,60)},void 0,!1,void 0,this),T.entry.version&&p(z,{dimColor:!0,children:[" \xB7 v",T.entry.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},T.pluginId,!0,void 0,this)}),fq.scrollPosition.canScrollDown&&p(O,{children:p(z,{dimColor:!0,children:[" ",AK.arrowDown," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),K&&p(O,{marginTop:1,children:p(z,{color:"error",children:[AK.cross," ",K]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p(wz,{hasSelection:D.size>0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Pz=uq(()=>{zK();YK();Bq();DK();D8();S8();h6();wK();cK();Mz();$6();G8();oK();Az();Gz();J6();PK();kz();b8();X6();P6();m8()});import{c as $z}from"react/compiler-runtime";import NK from"figures";import*as Zz from"react";import{useCallback as d7,useEffect as Z6,useMemo as E7,useState as Qq}from"react";import{jsxDEV as d,Fragment as tK}from"react/jsx-dev-runtime";function vz({error:K,setError:q,result:Y,setResult:f,setViewState:H,onInstallComplete:_,onSearchModeChange:J,targetPlugin:h}){let[W,P]=Qq("plugin-list"),[k,v]=Qq(null),[X,l]=Qq([]),[U,Wq]=Qq(!0),[G,j]=Qq(null),[N,F]=Qq(!1),Z=d7(($)=>{F($),J?.($)},[J]),{query:A,setQuery:u,cursorOffset:Hq}=g8({isActive:W==="plugin-list"&&N&&!U,onExit:()=>{Z(!1)}}),D=E8(),{columns:Q}=eK(),r=E7(()=>{if(!A)return X;let $=A.toLowerCase();return X.filter((L)=>L.entry.name.toLowerCase().includes($)||L.entry.description?.toLowerCase().includes($)||L.marketplaceName.toLowerCase().includes($))},[X,A]),[s,fq]=Qq(0),[m,Aq]=Qq(new Set),[Gq,zq]=Qq(new Set),B=nK({totalItems:r.length,selectedIndex:s});Z6(()=>{fq(0)},[A]);let[Mq,hq]=Qq(0),[wq,y]=Qq(!1),[C,g]=Qq(null),[Oq,Jq]=Qq(null),[T,i]=Qq(null);Z6(()=>{async function $(){try{let L=await WK(),{marketplaces:t,failures:Xq}=await _K(L),E=[];for(let{name:bq,data:Iq}of t)if(Iq)for(let iq of Iq.plugins){let ZK=yK(iq.name,bq);E.push({entry:iq,marketplaceName:bq,pluginId:ZK,isInstalled:BK(ZK)})}let o=E.filter((bq)=>!bq.isInstalled&&!QK(bq.pluginId));try{let bq=await p8();if(j(bq),bq)o.sort((Iq,iq)=>{let ZK=bq.get(Iq.pluginId)??0,w=bq.get(iq.pluginId)??0;if(ZK!==w)return w-ZK;return Iq.entry.name.localeCompare(iq.entry.name)});else o.sort((Iq,iq)=>Iq.entry.name.localeCompare(iq.entry.name))}catch(bq){RK(`Failed to fetch install counts: ${Eq(bq)}`),o.sort((Iq,iq)=>Iq.entry.name.localeCompare(iq.entry.name))}l(o);let Pq=Object.keys(L).length;if(o.length===0){let bq=await _z({configuredMarketplaceCount:Pq,failedMarketplaceCount:Xq.length});i(bq)}let Nq=OK(t,(bq)=>bq.data!==null),Zq=sK(Xq,Nq);if(Zq)if(Zq.type==="warning")Jq(Zq.message+". Showing available plugins.");else throw Error(Zq.message);if(h){let bq=E.find((Iq)=>Iq.entry.name===h);if(bq)if(bq.isInstalled)q(`Plugin '${bq.pluginId}' is already installed. Use '/plugin' to manage existing plugins.`);else v(bq),P("plugin-details");else q(`Plugin "${h}" not found in any marketplace`)}}catch(L){q(L instanceof Error?L.message:"Failed to load plugins")}finally{Wq(!1)}}$()},[q,h]);let I=async()=>{if(m.size===0)return;let $=X.filter((E)=>m.has(E.pluginId));zq(new Set($.map((E)=>E.pluginId)));let L=0,t=0,Xq=[];for(let E of $){let o=await lK({pluginId:E.pluginId,entry:E.entry,marketplaceName:E.marketplaceName,scope:"user"});if(o.success)L++;else t++,Xq.push({name:E.entry.name,reason:o.error})}if(zq(new Set),Aq(new Set),cq(),t===0){let E=`\u2713 Installed ${L} ${Vq(L,"plugin")}. Run /reload-plugins to activate.`;f(E)}else if(L===0)q(`Failed to install: ${rK(Xq,!0)}`);else{let E=`\u2713 Installed ${L} of ${L+t} plugins. Failed: ${rK(Xq,!1)}. Run /reload-plugins to activate successfully installed plugins.`;f(E)}if(L>0){if(_)await _()}H({type:"menu"})},V=async($,L="user")=>{y(!0),g(null);let t=await lK({pluginId:$.pluginId,entry:$.entry,marketplaceName:$.marketplaceName,scope:L});if(t.success){let Xq=await N8($.pluginId);if(Xq){y(!1),P({type:"plugin-options",plugin:Xq,pluginId:$.pluginId});return}if(f(t.message),_)await _();H({type:"menu"})}else y(!1),g(t.error)};Z6(()=>{if(K)f(K)},[K,f]),xq("confirm:no",()=>{P("plugin-list"),v(null)},{context:"Confirmation",isActive:W==="plugin-details"}),xq("confirm:no",()=>{H({type:"menu"})},{context:"Confirmation",isActive:W==="plugin-list"&&!N}),qK(($,L)=>{let t=!L.ctrl&&!L.meta;if(!N){if($==="/"&&t)Z(!0),u("");else if(t&&$.length>0&&!/^\s+$/.test($)&&$!=="j"&&$!=="k"&&$!=="i")Z(!0),u($)}},{isActive:W==="plugin-list"&&!U}),pq({"select:previous":()=>{if(s===0)Z(!0);else B.handleSelectionChange(s-1,fq)},"select:next":()=>{if(s<r.length-1)B.handleSelectionChange(s+1,fq)},"select:accept":()=>{if(s===r.length&&m.size>0)I();else if(s<r.length){let $=r[s];if($)if($.isInstalled)H({type:"manage-plugins",targetPlugin:$.entry.name,targetMarketplace:$.marketplaceName});else v($),P("plugin-details"),hq(0),g(null)}}},{context:"Select",isActive:W==="plugin-list"&&!N}),pq({"plugin:toggle":()=>{if(s<r.length){let $=r[s];if($&&!$.isInstalled){let L=new Set(m);if(L.has($.pluginId))L.delete($.pluginId);else L.add($.pluginId);Aq(L)}}},"plugin:install":()=>{if(m.size>0)I()}},{context:"Plugin",isActive:W==="plugin-list"&&!N});let c=Zz.useMemo(()=>{if(!k)return[];let $=k.entry.homepage,L=TK(k);return aK($,L)},[k]);if(pq({"select:previous":()=>{if(Mq>0)hq(Mq-1)},"select:next":()=>{if(Mq<c.length-1)hq(Mq+1)},"select:accept":()=>{if(!k)return;let $=c[Mq]?.action,L=k.entry.homepage,t=TK(k);if($==="install-user")V(k,"user");else if($==="install-project")V(k,"project");else if($==="install-local")V(k,"local");else if($==="homepage"&&L)KK(L);else if($==="github"&&t)KK(`https://github.com/${t}`);else if($==="back")P("plugin-list"),v(null)}},{context:"Select",isActive:W==="plugin-details"&&!!k}),typeof W==="object"&&W.type==="plugin-options"){let t=function(Xq){if(f(Xq),_)_();H({type:"menu"})},{plugin:$,pluginId:L}=W;return d(UK,{plugin:$,pluginId:L,onDone:(Xq,E)=>{switch(Xq){case"configured":t(`\u2713 Installed and configured ${$.name}. Run /reload-plugins to apply.`);break;case"skipped":t(`\u2713 Installed ${$.name}. Run /reload-plugins to apply.`);break;case"error":t(`Installed but failed to save config: ${E}`);break}}},void 0,!1,void 0,this)}if(U)return d(z,{children:"Loading\u2026"},void 0,!1,void 0,this);if(K)return d(z,{color:"error",children:K},void 0,!1,void 0,this);if(W==="plugin-details"&&k){let $=k.entry.homepage,L=TK(k),t=aK($,L);return d(O,{flexDirection:"column",children:[d(O,{marginBottom:1,children:d(z,{bold:!0,children:"Plugin details"},void 0,!1,void 0,this)},void 0,!1,void 0,this),d(O,{flexDirection:"column",marginBottom:1,children:[d(z,{bold:!0,children:k.entry.name},void 0,!1,void 0,this),d(z,{dimColor:!0,children:["from ",k.marketplaceName]},void 0,!0,void 0,this),k.entry.version&&d(z,{dimColor:!0,children:["Version: ",k.entry.version]},void 0,!0,void 0,this),k.entry.description&&d(O,{marginTop:1,children:d(z,{children:k.entry.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),k.entry.author&&d(O,{marginTop:1,children:d(z,{dimColor:!0,children:["By:"," ",typeof k.entry.author==="string"?k.entry.author:k.entry.author.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d(L8,{},void 0,!1,void 0,this),C&&d(O,{marginBottom:1,children:d(z,{color:"error",children:["Error: ",C]},void 0,!0,void 0,this)},void 0,!1,void 0,this),d(O,{flexDirection:"column",children:t.map((Xq,E)=>d(O,{children:[Mq===E&&d(z,{children:"> "},void 0,!1,void 0,this),Mq!==E&&d(z,{children:" "},void 0,!1,void 0,this),d(z,{bold:Mq===E,children:wq&&Xq.action.startsWith("install-")?"Installing\u2026":Xq.label},void 0,!1,void 0,this)]},Xq.action,!0,void 0,this))},void 0,!1,void 0,this),d(O,{marginTop:1,children:d(z,{dimColor:!0,children:d(Lq,{children:[d(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),d(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(X.length===0)return d(O,{flexDirection:"column",children:[d(O,{marginBottom:1,children:d(z,{bold:!0,children:"Discover plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),d(g7,{reason:T},void 0,!1,void 0,this),d(O,{marginTop:1,children:d(z,{dimColor:!0,italic:!0,children:"Esc to go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let S=B.getVisibleItems(r);return d(O,{flexDirection:"column",children:[d(O,{children:[d(z,{bold:!0,children:"Discover plugins"},void 0,!1,void 0,this),B.needsPagination&&d(z,{dimColor:!0,children:[" ","(",B.scrollPosition.current,"/",B.scrollPosition.total,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),d(O,{marginBottom:1,children:d(u8,{query:A,isFocused:N,isTerminalFocused:D,width:Q-4,cursorOffset:Hq},void 0,!1,void 0,this)},void 0,!1,void 0,this),Oq&&d(O,{marginBottom:1,children:d(z,{color:"warning",children:[NK.warning," ",Oq]},void 0,!0,void 0,this)},void 0,!1,void 0,this),r.length===0&&A&&d(O,{marginBottom:1,children:d(z,{dimColor:!0,children:['No plugins match "',A,'"']},void 0,!0,void 0,this)},void 0,!1,void 0,this),B.scrollPosition.canScrollUp&&d(O,{children:d(z,{dimColor:!0,children:[" ",NK.arrowUp," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),S.map(($,L)=>{let t=B.toActualIndex(L),Xq=s===t,E=m.has($.pluginId),o=Gq.has($.pluginId),Pq=L===S.length-1;return d(O,{flexDirection:"column",marginBottom:Pq&&!K?0:1,children:[d(O,{children:[d(z,{color:Xq&&!N?"suggestion":void 0,children:[Xq&&!N?NK.pointer:" "," "]},void 0,!0,void 0,this),d(z,{children:[o?NK.ellipsis:E?NK.radioOn:NK.radioOff," ",$.entry.name,d(z,{dimColor:!0,children:[" \xB7 ",$.marketplaceName]},void 0,!0,void 0,this),$.entry.tags?.includes("community-managed")&&d(z,{dimColor:!0,children:" [Community Managed]"},void 0,!1,void 0,this),G&&$.marketplaceName===I8&&d(z,{dimColor:!0,children:[" \xB7 ",V8(G.get($.pluginId)??0)," ","installs"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$.entry.description&&d(O,{marginLeft:4,children:d(z,{dimColor:!0,children:C8($.entry.description,60)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},`${B.startIndex}-${$.pluginId}`,!0,void 0,this)}),B.scrollPosition.canScrollDown&&d(O,{children:d(z,{dimColor:!0,children:[" ",NK.arrowDown," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),K&&d(O,{marginTop:1,children:d(z,{color:"error",children:[NK.cross," ",K]},void 0,!0,void 0,this)},void 0,!1,void 0,this),d(u7,{hasSelection:m.size>0,canToggle:s<r.length&&!r[s]?.isInstalled},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function u7(K){let q=$z(10),{hasSelection:Y,canToggle:f}=K,H;if(q[0]!==Y)H=Y&&d(kq,{action:"plugin:install",context:"Plugin",fallback:"i",description:"install",bold:!0},void 0,!1,void 0,this),q[0]=Y,q[1]=H;else H=q[1];let _;if(q[2]===Symbol.for("react.memo_cache_sentinel"))_=d(z,{children:"type to search"},void 0,!1,void 0,this),q[2]=_;else _=q[2];let J;if(q[3]!==f)J=f&&d(kq,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"},void 0,!1,void 0,this),q[3]=f,q[4]=J;else J=q[4];let h,W;if(q[5]===Symbol.for("react.memo_cache_sentinel"))h=d(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"},void 0,!1,void 0,this),W=d(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this),q[5]=h,q[6]=W;else h=q[5],W=q[6];let P;if(q[7]!==H||q[8]!==J)P=d(O,{marginTop:1,children:d(z,{dimColor:!0,italic:!0,children:d(Lq,{children:[H,_,J,h,W]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[7]=H,q[8]=J,q[9]=P;else P=q[9];return P}function g7(K){let q=$z(6),{reason:Y}=K;switch(Y){case"git-not-installed":{let f;if(q[0]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Git is required to install marketplaces."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Please install git and restart Claude Code."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[0]=f;else f=q[0];return f}case"all-blocked-by-policy":{let f;if(q[1]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Your organization policy does not allow any external marketplaces."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Contact your administrator."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[1]=f;else f=q[1];return f}case"policy-restricts-sources":{let f;if(q[2]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Your organization restricts which marketplaces can be added."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Switch to the Marketplaces tab to view allowed sources."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[2]=f;else f=q[2];return f}case"all-marketplaces-failed":{let f;if(q[3]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"Failed to load marketplace data."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Check your network connection."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[3]=f;else f=q[3];return f}case"all-plugins-installed":{let f;if(q[4]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"All available plugins are already installed."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Check for new plugins later or add more marketplaces."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[4]=f;else f=q[4];return f}case"no-marketplaces-configured":default:{let f;if(q[5]===Symbol.for("react.memo_cache_sentinel"))f=d(tK,{children:[d(z,{dimColor:!0,children:"No plugins available."},void 0,!1,void 0,this),d(z,{dimColor:!0,children:"Add a marketplace first using the Marketplaces tab."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[5]=f;else f=q[5];return f}}}var Tz=uq(()=>{zK();YK();hz();Jz();v6();Bq();DK();D8();S8();h6();wK();cK();Mz();$6();G8();oK();Az();Gz();J6();PK();kz();b8();X6();P6();m8()});import{c as F7}from"react/compiler-runtime";import bK from"figures";import{useEffect as U7,useRef as a7,useState as GK}from"react";import{jsxDEV as b,Fragment as X8}from"react/jsx-dev-runtime";function Nz({setViewState:K,error:q,setError:Y,setResult:f,exitState:H,onManageComplete:_,targetMarketplace:J,action:h}){let[W,P]=GK([]),[k,v]=GK(!0),[X,l]=GK(0),[U,Wq]=GK(!1),[G,j]=GK(null),[N,F]=GK(null),[Z,A]=GK(null),[u,Hq]=GK("list"),[D,Q]=GK(null),[r,s]=GK(0),fq=a7(!1);U7(()=>{async function y(){try{let C=await WK(),{enabled:g,disabled:Oq}=await IK(),Jq=[...g,...Oq],{marketplaces:T,failures:i}=await _K(C),I=[];for(let{name:S,config:$,data:L}of T){let t=Jq.filter((Xq)=>Xq.source.endsWith(`@${S}`));I.push({name:S,source:M8($.source),lastUpdated:$.lastUpdated,pluginCount:L?.plugins.length,installedPlugins:t,pendingUpdate:!1,pendingRemove:!1,autoUpdate:T6(S,$)})}I.sort((S,$)=>{if(S.name==="claude-plugin-directory")return-1;if($.name==="claude-plugin-directory")return 1;return S.name.localeCompare($.name)}),P(I);let V=OK(T,(S)=>S.data!==null),c=sK(i,V);if(c)if(c.type==="warning")j(c.message);else throw Error(c.message);if(J&&!fq.current&&!q){fq.current=!0;let S=I.findIndex(($)=>$.name===J);if(S>=0){let $=I[S];if(h){l(S+1);let L=[...I];if(h==="update")L[S].pendingUpdate=!0;else if(h==="remove")L[S].pendingRemove=!0;P(L),setTimeout(Gq,100,L)}else if($)l(S+1),Q($),Hq("details")}else if(Y)Y(`Marketplace not found: ${J}`)}}catch(C){if(Y)Y(C instanceof Error?C.message:"Failed to load marketplaces");j(C instanceof Error?C.message:"Failed to load marketplaces")}finally{v(!1)}}y()},[J,h,q]);let m=()=>{return W.some((y)=>y.pendingUpdate||y.pendingRemove)},Aq=()=>{let y=OK(W,(g)=>g.pendingUpdate),C=OK(W,(g)=>g.pendingRemove);return{updateCount:y,removeCount:C}},Gq=async(y)=>{let C=y||W,g=u==="details";Wq(!0),j(null),F(null),A(null);try{let Oq=hK("userSettings"),Jq=0,T=0,i=new Set;for(let E of C){if(E.pendingRemove){if(E.installedPlugins&&E.installedPlugins.length>0){let o={...Oq?.enabledPlugins};for(let Pq of E.installedPlugins){let Nq=yK(Pq.name,E.name);o[Nq]=!1}VK("userSettings",{enabledPlugins:o})}await x8(E.name),T++,nq("tengu_marketplace_removed",{marketplace_name:E.name,plugins_uninstalled:E.installedPlugins?.length||0});continue}if(E.pendingUpdate)await jz(E.name,(o)=>{A(o)}),Jq++,i.add(E.name.toLowerCase()),nq("tengu_marketplace_updated",{marketplace_name:E.name})}let I=0;if(i.size>0)I=(await Rz(i)).length;if(cq(),_)await _();let V=await WK(),{enabled:c,disabled:S}=await IK(),$=[...c,...S],{marketplaces:L}=await _K(V),t=[];for(let{name:E,config:o,data:Pq}of L){let Nq=$.filter((Zq)=>Zq.source.endsWith(`@${E}`));t.push({name:E,source:M8(o.source),lastUpdated:o.lastUpdated,pluginCount:Pq?.plugins.length,installedPlugins:Nq,pendingUpdate:!1,pendingRemove:!1,autoUpdate:T6(E,o)})}if(t.sort((E,o)=>{if(E.name==="claude-plugin-directory")return-1;if(o.name==="claude-plugin-directory")return 1;return E.name.localeCompare(o.name)}),P(t),g&&D){let E=t.find((o)=>o.name===D.name);if(E)Q(E)}let Xq=[];if(Jq>0){let E=I>0?` (${I} ${Vq(I,"plugin")} bumped)`:"";Xq.push(`Updated ${Jq} ${Vq(Jq,"marketplace")}${E}`)}if(T>0)Xq.push(`Removed ${T} ${Vq(T,"marketplace")}`);if(Xq.length>0){let E=`${bK.tick} ${Xq.join(", ")}`;if(g)F(E);else f(E),setTimeout(K,2000,{type:"menu"})}else if(!g)K({type:"menu"})}catch(Oq){let Jq=Eq(Oq);if(j(Jq),Y)Y(Jq)}finally{Wq(!1),A(null)}},zq=async()=>{if(!D)return;let y=W.map((C)=>C.name===D.name?{...C,pendingRemove:!0}:C);P(y),await Gq(y)},B=(y)=>{if(!y)return[];let C=[{label:`Browse plugins (${y.pluginCount??0})`,value:"browse"},{label:"Update marketplace",secondaryLabel:y.lastUpdated?`(last updated ${new Date(y.lastUpdated).toLocaleDateString()})`:void 0,value:"update"}];if(!j6())C.push({label:y.autoUpdate?"Disable auto-update":"Enable auto-update",value:"toggle-auto-update"});return C.push({label:"Remove marketplace",value:"remove"}),C},Mq=async(y)=>{let C=!y.autoUpdate;try{await yz(y.name,C),P((g)=>g.map((Oq)=>Oq.name===y.name?{...Oq,autoUpdate:C}:Oq)),Q((g)=>g?{...g,autoUpdate:C}:g)}catch(g){j(g instanceof Error?g.message:"Failed to update setting")}};if(xq("confirm:no",()=>{Hq("list"),s(0)},{context:"Confirmation",isActive:!U&&(u==="details"||u==="confirm-remove")}),xq("confirm:no",()=>{P((y)=>y.map((C)=>({...C,pendingUpdate:!1,pendingRemove:!1}))),l(0)},{context:"Confirmation",isActive:!U&&u==="list"&&m()}),xq("confirm:no",()=>{K({type:"menu"})},{context:"Confirmation",isActive:!U&&u==="list"&&!m()}),pq({"select:previous":()=>l((y)=>Math.max(0,y-1)),"select:next":()=>{let y=W.length+1;l((C)=>Math.min(y-1,C+1))},"select:accept":()=>{let y=X-1;if(X===0)K({type:"add-marketplace"});else if(m())Gq();else{let C=W[y];if(C)Q(C),Hq("details"),s(0)}}},{context:"Select",isActive:!U&&u==="list"}),qK((y)=>{let C=X-1;if((y==="u"||y==="U")&&C>=0)P((g)=>g.map((Oq,Jq)=>Jq===C?{...Oq,pendingUpdate:!Oq.pendingUpdate,pendingRemove:Oq.pendingUpdate?Oq.pendingRemove:!1}:Oq));else if((y==="r"||y==="R")&&C>=0){let g=W[C];if(g)Q(g),Hq("confirm-remove")}},{isActive:!U&&u==="list"}),pq({"select:previous":()=>s((y)=>Math.max(0,y-1)),"select:next":()=>{let y=B(D);s((C)=>Math.min(y.length-1,C+1))},"select:accept":()=>{if(!D)return;let C=B(D)[r];if(C?.value==="browse")K({type:"browse-marketplace",targetMarketplace:D.name});else if(C?.value==="update"){let g=W.map((Oq)=>Oq.name===D.name?{...Oq,pendingUpdate:!0}:Oq);P(g),Gq(g)}else if(C?.value==="toggle-auto-update")Mq(D);else if(C?.value==="remove")Hq("confirm-remove")}},{context:"Select",isActive:!U&&u==="details"}),qK((y)=>{if(y==="y"||y==="Y")zq();else if(y==="n"||y==="N")Hq("list"),Q(null)},{isActive:!U&&u==="confirm-remove"}),k)return b(z,{children:"Loading marketplaces\u2026"},void 0,!1,void 0,this);if(W.length===0)return b(O,{flexDirection:"column",children:[b(O,{marginBottom:1,children:b(z,{bold:!0,children:"Manage marketplaces"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(O,{flexDirection:"row",gap:1,children:[b(z,{color:"suggestion",children:[bK.pointer," +"]},void 0,!0,void 0,this),b(z,{bold:!0,color:"suggestion",children:"Add Marketplace"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),b(O,{marginLeft:3,children:b(z,{dimColor:!0,italic:!0,children:H.pending?b(X8,{children:["Press ",H.keyName," again to go back"]},void 0,!0,void 0,this):b(Lq,{children:[b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),b(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(u==="confirm-remove"&&D){let y=D.installedPlugins?.length||0;return b(O,{flexDirection:"column",children:[b(z,{bold:!0,color:"warning",children:["Remove marketplace ",b(z,{italic:!0,children:D.name},void 0,!1,void 0,this),"?"]},void 0,!0,void 0,this),b(O,{flexDirection:"column",children:[y>0&&b(O,{marginTop:1,children:b(z,{color:"warning",children:["This will also uninstall ",y," ",Vq(y,"plugin")," from this marketplace:"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),D.installedPlugins&&D.installedPlugins.length>0&&b(O,{flexDirection:"column",marginTop:1,marginLeft:2,children:D.installedPlugins.map((C)=>b(z,{dimColor:!0,children:["\u2022 ",C.name]},C.name,!0,void 0,this))},void 0,!1,void 0,this),b(O,{marginTop:1,children:b(z,{children:["Press ",b(z,{bold:!0,children:"y"},void 0,!1,void 0,this)," to confirm or ",b(z,{bold:!0,children:"n"},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}if(u==="details"&&D){let y=D.pendingUpdate||U,C=B(D);return b(O,{flexDirection:"column",children:[b(z,{bold:!0,children:D.name},void 0,!1,void 0,this),b(z,{dimColor:!0,children:D.source},void 0,!1,void 0,this),b(O,{marginTop:1,children:b(z,{children:[D.pluginCount||0," available"," ",Vq(D.pluginCount||0,"plugin")]},void 0,!0,void 0,this)},void 0,!1,void 0,this),D.installedPlugins&&D.installedPlugins.length>0&&b(O,{flexDirection:"column",marginTop:1,children:[b(z,{bold:!0,children:["Installed plugins (",D.installedPlugins.length,"):"]},void 0,!0,void 0,this),b(O,{flexDirection:"column",marginLeft:1,children:D.installedPlugins.map((g)=>b(O,{flexDirection:"row",gap:1,children:[b(z,{children:bK.bullet},void 0,!1,void 0,this),b(O,{flexDirection:"column",children:[b(z,{children:g.name},void 0,!1,void 0,this),b(z,{dimColor:!0,children:g.manifest.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},g.name,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),y&&b(O,{marginTop:1,flexDirection:"column",children:[b(z,{color:"claude",children:"Updating marketplace\u2026"},void 0,!1,void 0,this),Z&&b(z,{dimColor:!0,children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!y&&N&&b(O,{marginTop:1,children:b(z,{color:"claude",children:N},void 0,!1,void 0,this)},void 0,!1,void 0,this),!y&&G&&b(O,{marginTop:1,children:b(z,{color:"error",children:G},void 0,!1,void 0,this)},void 0,!1,void 0,this),!y&&b(O,{flexDirection:"column",marginTop:1,children:C.map((g,Oq)=>{if(!g)return null;let Jq=Oq===r;return b(O,{children:[b(z,{color:Jq?"suggestion":void 0,children:[Jq?bK.pointer:" "," ",g.label]},void 0,!0,void 0,this),g.secondaryLabel&&b(z,{dimColor:!0,children:[" ",g.secondaryLabel]},void 0,!0,void 0,this)]},g.value,!0,void 0,this)})},void 0,!1,void 0,this),!y&&!j6()&&D.autoUpdate&&b(O,{marginTop:1,children:b(z,{dimColor:!0,children:"Auto-update enabled. Claude Code will automatically update this marketplace and its installed plugins."},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(O,{marginLeft:3,children:b(z,{dimColor:!0,italic:!0,children:y?b(X8,{children:"Please wait\u2026"},void 0,!1,void 0,this):b(Lq,{children:[b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),b(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}let{updateCount:hq,removeCount:wq}=Aq();return b(O,{flexDirection:"column",children:[b(O,{marginBottom:1,children:b(z,{bold:!0,children:"Manage marketplaces"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(O,{flexDirection:"row",gap:1,marginBottom:1,children:[b(z,{color:X===0?"suggestion":void 0,children:[X===0?bK.pointer:" "," +"]},void 0,!0,void 0,this),b(z,{bold:!0,color:X===0?"suggestion":void 0,children:"Add Marketplace"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),b(O,{flexDirection:"column",children:W.map((y,C)=>{let g=C+1===X,Oq=[];if(y.pendingUpdate)Oq.push("UPDATE");if(y.pendingRemove)Oq.push("REMOVE");return b(O,{flexDirection:"row",gap:1,marginBottom:1,children:[b(z,{color:g?"suggestion":void 0,children:[g?bK.pointer:" "," ",y.pendingRemove?bK.cross:bK.bullet]},void 0,!0,void 0,this),b(O,{flexDirection:"column",flexGrow:1,children:[b(O,{flexDirection:"row",gap:1,children:[b(z,{bold:!0,strikethrough:y.pendingRemove,dimColor:y.pendingRemove,children:[y.name==="claude-plugins-official"&&b(z,{color:"claude",children:"\u273B "},void 0,!1,void 0,this),y.name,y.name==="claude-plugins-official"&&b(z,{color:"claude",children:" \u273B"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Oq.length>0&&b(z,{color:"warning",children:["[",Oq.join(", "),"]"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),b(z,{dimColor:!0,children:y.source},void 0,!1,void 0,this),b(z,{dimColor:!0,children:[y.pluginCount!==void 0&&b(X8,{children:[y.pluginCount," available"]},void 0,!0,void 0,this),y.installedPlugins&&y.installedPlugins.length>0&&b(X8,{children:[" \u2022 ",y.installedPlugins.length," installed"]},void 0,!0,void 0,this),y.lastUpdated&&b(X8,{children:[" ","\u2022 Updated"," ",new Date(y.lastUpdated).toLocaleDateString()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},y.name,!0,void 0,this)})},void 0,!1,void 0,this),m()&&b(O,{marginTop:1,flexDirection:"column",children:[b(z,{children:[b(z,{bold:!0,children:"Pending changes:"},void 0,!1,void 0,this)," ",b(z,{dimColor:!0,children:"Enter to apply"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),hq>0&&b(z,{children:["\u2022 Update ",hq," ",Vq(hq,"marketplace")]},void 0,!0,void 0,this),wq>0&&b(z,{color:"warning",children:["\u2022 Remove ",wq," ",Vq(wq,"marketplace")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U&&b(O,{marginTop:1,children:b(z,{color:"claude",children:"Processing changes\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G&&b(O,{marginTop:1,children:b(z,{color:"error",children:G},void 0,!1,void 0,this)},void 0,!1,void 0,this),b(n7,{exitState:H,hasPendingActions:m()},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function n7(K){let q=F7(18),{exitState:Y,hasPendingActions:f}=K;if(Y.pending){let v;if(q[0]!==Y.keyName)v=b(O,{marginTop:1,children:b(z,{dimColor:!0,italic:!0,children:["Press ",Y.keyName," again to go back"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),q[0]=Y.keyName,q[1]=v;else v=q[1];return v}let H;if(q[2]!==f)H=f&&b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"apply changes"},void 0,!1,void 0,this),q[2]=f,q[3]=H;else H=q[3];let _;if(q[4]!==f)_=!f&&b(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),q[4]=f,q[5]=_;else _=q[5];let J;if(q[6]!==f)J=!f&&b(oq,{shortcut:"u",action:"update"},void 0,!1,void 0,this),q[6]=f,q[7]=J;else J=q[7];let h;if(q[8]!==f)h=!f&&b(oq,{shortcut:"r",action:"remove"},void 0,!1,void 0,this),q[8]=f,q[9]=h;else h=q[9];let W=f?"cancel":"go back",P;if(q[10]!==W)P=b(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:W},void 0,!1,void 0,this),q[10]=W,q[11]=P;else P=q[11];let k;if(q[12]!==H||q[13]!==_||q[14]!==J||q[15]!==h||q[16]!==P)k=b(O,{marginTop:1,children:b(z,{dimColor:!0,italic:!0,children:b(Lq,{children:[H,_,J,h,P]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[12]=H,q[13]=_,q[14]=J,q[15]=h,q[16]=P,q[17]=k;else k=q[17];return k}var bz=uq(()=>{H6();zK();YK();A8();Bq();DK();D8();c7();wK();cK();G8();oK();o7();G6();x7();y6();PK()});import{c as B7}from"react/compiler-runtime";import{jsxDEV as c8}from"react/jsx-dev-runtime";function o8(K){let q=B7(9),{serverToolsCount:Y,serverPromptsCount:f,serverResourcesCount:H}=K,_;if(q[0]!==f||q[1]!==H||q[2]!==Y){if(_=[],Y>0)_.push("tools");if(H>0)_.push("resources");if(f>0)_.push("prompts");q[0]=f,q[1]=H,q[2]=Y,q[3]=_}else _=q[3];let J;if(q[4]===Symbol.for("react.memo_cache_sentinel"))J=c8(z,{bold:!0,children:"Capabilities: "},void 0,!1,void 0,this),q[4]=J;else J=q[4];let h;if(q[5]!==_)h=_.length>0?c8(Lq,{children:_},void 0,!1,void 0,this):"none",q[5]=_,q[6]=h;else h=q[6];let W;if(q[7]!==h)W=c8(O,{children:[J,c8(z,{color:"text",children:h},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[7]=h,q[8]=W;else W=q[8];return W}var R6=uq(()=>{Bq();YK()});function F8(K,q){switch(K.client.type){case"connected":return{message:`Reconnected to ${q}.`,success:!0};case"needs-auth":return{message:`${q} requires authentication. Use the 'Authenticate' option.`,success:!1};case"failed":return{message:`Failed to reconnect to ${q}.`,success:!1};default:return{message:`Unknown result when reconnecting to ${q}.`,success:!1}}}function P8(K,q){let Y=K instanceof Error?K.message:String(K);return`Error reconnecting to ${q}: ${Y}`}var N6=()=>{};import dK from"figures";import JK,{useEffect as t7,useRef as b6,useState as MK}from"react";import{jsxDEV as R,Fragment as U8}from"react/jsx-dev-runtime";function Q8({server:K,serverToolsCount:q,onViewTools:Y,onCancel:f,onComplete:H,borderless:_=!1}){let[J]=q8(),h=K8(),{columns:W}=eK(),[P,k]=JK.useState(!1),[v,X]=JK.useState(null),l=sq((o)=>o.mcp),U=_8(),[Wq,G]=JK.useState(null),[j,N]=MK(!1),F=b6(null),[Z,A]=MK(!1),[u,Hq]=MK(null),[D,Q]=MK(!1),[r,s]=MK(null),[fq,m]=MK(!1),[Aq,Gq]=MK(!1),zq=b6(void 0),B=b6(!1),[Mq,hq]=MK(""),[wq,y]=MK(0),[C,g]=MK(null);t7(()=>()=>{if(B.current=!0,F.current?.abort(),zq.current!==void 0)clearTimeout(zq.current)},[]);let Oq=K.isAuthenticated||K.client.type==="connected"&&q>0,Jq=l8(),T=JK.useCallback(async()=>{A(!1),Hq(null),N(!0);try{let o=await Jq(K.name),Pq=o.client.type==="connected";if(nq("tengu_claudeai_mcp_auth_completed",{success:Pq}),Pq)H?.(`Authentication successful. Connected to ${K.name}.`);else if(o.client.type==="needs-auth")H?.("Authentication successful, but server still requires authentication. You may need to manually restart UnieAI Code.");else H?.("Authentication successful, but server reconnection failed. You may need to manually restart UnieAI Code for the changes to take effect.")}catch(o){nq("tengu_claudeai_mcp_auth_completed",{success:!1}),H?.(P8(o,K.name))}finally{N(!1)}},[Jq,K.name,H]),i=JK.useCallback(async()=>{await I6(K.name,{...K.config,scope:K.scope}),U((o)=>{let Pq=o.mcp.clients.map((Iq)=>Iq.name===K.name?{...Iq,type:"needs-auth"}:Iq),Nq=m6(o.mcp.tools,K.name),Zq=C6(o.mcp.commands,K.name),bq=D6(o.mcp.resources,K.name);return{...o,mcp:{...o.mcp,clients:Pq,tools:Nq,commands:Zq,resources:bq}}}),nq("tengu_claudeai_mcp_clear_auth_completed",{}),H?.(`Disconnected from ${K.name}.`),Q(!1),s(null),m(!1)},[K.name,K.config,K.scope,U,H]);xq("confirm:no",()=>{F.current?.abort(),F.current=null,k(!1),G(null)},{context:"Confirmation",isActive:P}),xq("confirm:no",()=>{A(!1),Hq(null)},{context:"Confirmation",isActive:Z}),xq("confirm:no",()=>{Q(!1),s(null),m(!1)},{context:"Confirmation",isActive:D}),qK((o,Pq)=>{if(Pq.return&&Z)T();if(Pq.return&&D)if(fq)i();else{let Nq=`${L6().CLAUDE_AI_ORIGIN}/settings/connectors`;s(Nq),m(!0),KK(Nq)}if(o==="c"&&!Aq){let Nq=Wq||u||r;if(Nq)Cz(Nq).then((Zq)=>{if(B.current)return;if(Zq)process.stdout.write(Zq);if(Gq(!0),zq.current!==void 0)clearTimeout(zq.current);zq.current=setTimeout(Gq,2000,!1)})}});let I=n8(String(K.name)),V=B8(l.commands,K.name).length,c=Y8(),S=JK.useCallback(async()=>{let o=L6().CLAUDE_AI_ORIGIN,Nq=mz()?.organizationUuid,Zq;if(Nq&&K.config.type==="claudeai-proxy"&&K.config.id){let bq=K.config.id.startsWith("mcprs")?"mcpsrv"+K.config.id.slice(5):K.config.id,Iq=encodeURIComponent(process.env.CLAUDE_CODE_ENTRYPOINT||"cli");Zq=`${o}/api/organizations/${Nq}/mcp/start-auth/${bq}?product_surface=${Iq}`}else Zq=`${o}/settings/connectors`;Hq(Zq),A(!0),nq("tengu_claudeai_mcp_auth_started",{}),await KK(Zq)},[K.config]),$=JK.useCallback(()=>{Q(!0),nq("tengu_claudeai_mcp_clear_auth_started",{})},[]),L=JK.useCallback(async()=>{let o=K.client.type!=="disabled";try{if(await c(K.name),K.config.type==="claudeai-proxy")nq("tengu_claudeai_mcp_toggle",{new_state:o?"disabled":"enabled"});f()}catch(Pq){H?.(`Failed to ${o?"disable":"enable"} MCP server '${K.name}': ${Eq(Pq)}`)}},[K.client.type,K.config.type,K.name,c,f,H]),t=JK.useCallback(async()=>{if(K.config.type==="claudeai-proxy")return;k(!0),X(null);let o=new AbortController;F.current=o;try{if(K.isAuthenticated&&K.config)await S6(K.name,K.config,{preserveStepUpState:!0});if(K.config){await Sz(K.name,K.config,G,o.signal,{onWaitingForCallback:(Nq)=>{g(()=>Nq)}}),nq("tengu_mcp_auth_config_authenticate",{wasAuthenticated:K.isAuthenticated});let Pq=await Jq(K.name);if(Pq.client.type==="connected"){let Nq=Oq?`Authentication successful. Reconnected to ${K.name}.`:`Authentication successful. Connected to ${K.name}.`;H?.(Nq)}else if(Pq.client.type==="needs-auth")H?.("Authentication successful, but server still requires authentication. You may need to manually restart UnieAI Code.");else Lz(K.name,"Reconnection failed after authentication"),H?.("Authentication successful, but server reconnection failed. You may need to manually restart UnieAI Code for the changes to take effect.")}}catch(Pq){if(Pq instanceof Error&&!(Pq instanceof Dz))X(Pq.message)}finally{k(!1),F.current=null,g(null),hq("")}},[K.isAuthenticated,K.config,K.name,H,Jq,Oq]),Xq=async()=>{if(K.config.type==="claudeai-proxy")return;if(K.config)await S6(K.name,K.config),nq("tengu_mcp_auth_config_clear",{}),await I6(K.name,{...K.config,scope:K.scope}),U((o)=>{let Pq=o.mcp.clients.map((Iq)=>Iq.name===K.name?{...Iq,type:"failed"}:Iq),Nq=m6(o.mcp.tools,K.name),Zq=C6(o.mcp.commands,K.name),bq=D6(o.mcp.resources,K.name);return{...o,mcp:{...o.mcp,clients:Pq,tools:Nq,commands:Zq,resources:bq}}}),H?.(`Authentication cleared for ${K.name}.`)};if(P){let o=K.config.type!=="claudeai-proxy"&&K.config.oauth?.xaa?" Authenticating via your identity provider":" A browser window will open for authentication";return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"claude",children:["Authenticating with ",K.name,"\u2026"]},void 0,!0,void 0,this),R(O,{children:[R(vK,{},void 0,!1,void 0,this),R(z,{children:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Wq&&R(O,{flexDirection:"column",children:[R(O,{children:[R(z,{dimColor:!0,children:["If your browser doesn't open automatically, copy this URL manually"," "]},void 0,!0,void 0,this),Aq?R(z,{color:"success",children:"(Copied!)"},void 0,!1,void 0,this):R(z,{dimColor:!0,children:R(oq,{shortcut:"c",action:"copy",parens:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(a8,{url:Wq},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P&&Wq&&C&&R(O,{flexDirection:"column",marginTop:1,children:[R(z,{dimColor:!0,children:"If the redirect page shows a connection error, paste the URL from your browser's address bar:"},void 0,!1,void 0,this),R(O,{children:[R(z,{dimColor:!0,children:["URL ",">"," "]},void 0,!0,void 0,this),R(j8,{value:Mq,onChange:hq,onSubmit:(Pq)=>{C(Pq.trim()),hq("")},cursorOffset:wq,onChangeCursorOffset:y,columns:W-8},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R(O,{marginLeft:3,children:R(z,{dimColor:!0,children:"Return here after authenticating in your browser. Press Esc to go back."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(Z)return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"claude",children:["Authenticating with ",K.name,"\u2026"]},void 0,!0,void 0,this),R(O,{children:[R(vK,{},void 0,!1,void 0,this),R(z,{children:" A browser window will open for authentication"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),u&&R(O,{flexDirection:"column",children:[R(O,{children:[R(z,{dimColor:!0,children:["If your browser doesn't open automatically, copy this URL manually"," "]},void 0,!0,void 0,this),Aq?R(z,{color:"success",children:"(Copied!)"},void 0,!1,void 0,this):R(z,{dimColor:!0,children:R(oq,{shortcut:"c",action:"copy",parens:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(a8,{url:u},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{marginLeft:3,flexDirection:"column",children:[R(z,{color:"permission",children:["Press ",R(z,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," after authenticating in your browser."]},void 0,!0,void 0,this),R(z,{dimColor:!0,italic:!0,children:R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(D)return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"claude",children:["Clear authentication for ",K.name]},void 0,!0,void 0,this),fq?R(U8,{children:[R(z,{children:'Find the MCP server in the browser and click "Disconnect".'},void 0,!1,void 0,this),r&&R(O,{flexDirection:"column",children:[R(O,{children:[R(z,{dimColor:!0,children:["If your browser didn't open automatically, copy this URL manually"," "]},void 0,!0,void 0,this),Aq?R(z,{color:"success",children:"(Copied!)"},void 0,!1,void 0,this):R(z,{dimColor:!0,children:R(oq,{shortcut:"c",action:"copy",parens:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(a8,{url:r},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{marginLeft:3,flexDirection:"column",children:[R(z,{color:"permission",children:["Press ",R(z,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," when done."]},void 0,!0,void 0,this),R(z,{dimColor:!0,italic:!0,children:R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):R(U8,{children:[R(z,{children:'This will open claude.ai in the browser. Find the MCP server in the list and click "Disconnect".'},void 0,!1,void 0,this),R(O,{marginLeft:3,flexDirection:"column",children:[R(z,{color:"permission",children:["Press ",R(z,{bold:!0,children:"Enter"},void 0,!1,void 0,this)," to open the browser."]},void 0,!0,void 0,this),R(z,{dimColor:!0,italic:!0,children:R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(j)return R(O,{flexDirection:"column",gap:1,padding:1,children:[R(z,{color:"text",children:["Connecting to ",R(z,{bold:!0,children:K.name},void 0,!1,void 0,this),"\u2026"]},void 0,!0,void 0,this),R(O,{children:[R(vK,{},void 0,!1,void 0,this),R(z,{children:" Establishing connection to MCP server"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(z,{dimColor:!0,children:"This may take a few moments."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let E=[];if(K.client.type==="disabled")E.push({label:"Enable",value:"toggle-enabled"});if(K.client.type==="connected"&&q>0)E.push({label:"View tools",value:"tools"});if(K.config.type==="claudeai-proxy"){if(K.client.type==="connected")E.push({label:"Clear authentication",value:"claudeai-clear-auth"});else if(K.client.type!=="disabled")E.push({label:"Authenticate",value:"claudeai-auth"})}else{if(Oq)E.push({label:"Re-authenticate",value:"reauth"}),E.push({label:"Clear authentication",value:"clear-auth"});if(!Oq)E.push({label:"Authenticate",value:"auth"})}if(K.client.type!=="disabled"){if(K.client.type!=="needs-auth")E.push({label:"Reconnect",value:"reconnectMcpServer"});E.push({label:"Disable",value:"toggle-enabled"})}if(E.length===0)E.push({label:"Back",value:"back"});return R(O,{flexDirection:"column",children:[R(O,{flexDirection:"column",paddingX:1,borderStyle:_?void 0:"round",children:[R(O,{marginBottom:1,children:R(z,{bold:!0,children:[I," MCP Server"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),R(O,{flexDirection:"column",gap:0,children:[R(O,{children:[R(z,{bold:!0,children:"Status: "},void 0,!1,void 0,this),K.client.type==="disabled"?R(z,{children:[dq("inactive",J)(dK.radioOff)," disabled"]},void 0,!0,void 0,this):K.client.type==="connected"?R(z,{children:[dq("success",J)(dK.tick)," connected"]},void 0,!0,void 0,this):K.client.type==="pending"?R(U8,{children:[R(z,{dimColor:!0,children:dK.radioOff},void 0,!1,void 0,this),R(z,{children:" connecting\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):K.client.type==="needs-auth"?R(z,{children:[dq("warning",J)(dK.triangleUpOutline)," needs authentication"]},void 0,!0,void 0,this):R(z,{children:[dq("error",J)(dK.cross)," failed"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K.transport!=="claudeai-proxy"&&R(O,{children:[R(z,{bold:!0,children:"Auth: "},void 0,!1,void 0,this),Oq?R(z,{children:[dq("success",J)(dK.tick)," authenticated"]},void 0,!0,void 0,this):R(z,{children:[dq("error",J)(dK.cross)," not authenticated"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R(O,{children:[R(z,{bold:!0,children:"URL: "},void 0,!1,void 0,this),R(z,{dimColor:!0,children:K.config.url},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{children:[R(z,{bold:!0,children:"Config location: "},void 0,!1,void 0,this),R(z,{dimColor:!0,children:r8(K.scope)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.client.type==="connected"&&R(o8,{serverToolsCount:q,serverPromptsCount:V,serverResourcesCount:l.resources[K.name]?.length||0},void 0,!1,void 0,this),K.client.type==="connected"&&q>0&&R(O,{children:[R(z,{bold:!0,children:"Tools: "},void 0,!1,void 0,this),R(z,{dimColor:!0,children:[q," tools"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),v&&R(O,{marginTop:1,children:R(z,{color:"error",children:["Error: ",v]},void 0,!0,void 0,this)},void 0,!1,void 0,this),E.length>0&&R(O,{marginTop:1,children:R(z8,{options:E,onChange:async(o)=>{switch(o){case"tools":Y();break;case"auth":case"reauth":await t();break;case"clear-auth":await Xq();break;case"claudeai-auth":await S();break;case"claudeai-clear-auth":$();break;case"reconnectMcpServer":N(!0);try{let Pq=await Jq(K.name);if(K.config.type==="claudeai-proxy")nq("tengu_claudeai_mcp_reconnect",{success:Pq.client.type==="connected"});let{message:Nq}=F8(Pq,K.name);H?.(Nq)}catch(Pq){if(K.config.type==="claudeai-proxy")nq("tengu_claudeai_mcp_reconnect",{success:!1});H?.(P8(Pq,K.name))}finally{N(!1)}break;case"toggle-enabled":await L();break;case"back":f();break}},onCancel:f},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R(O,{marginTop:1,children:R(z,{dimColor:!0,italic:!0,children:h.pending?R(U8,{children:["Press ",h.keyName," again to exit"]},void 0,!0,void 0,this):R(Lq,{children:[R(oq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),R(oq,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),R(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Iz=uq(()=>{H6();r7();p6();v6();l7();Bq();DK();Q7();s7();d6();i8();h8();i7();S8();wK();T8();PK();zK();V6();YK();A8();w6();i6();R6();N6()});import s8 from"figures";import qY,{useState as KY}from"react";import{jsxDEV as vq,Fragment as pz}from"react/jsx-dev-runtime";function dz({server:K,serverToolsCount:q,onViewTools:Y,onCancel:f,onComplete:H,borderless:_=!1}){let[J]=q8(),h=K8(),W=sq((j)=>j.mcp),P=l8(),k=Y8(),[v,X]=KY(!1),l=qY.useCallback(async()=>{let j=K.client.type!=="disabled";try{await k(K.name),f()}catch(N){H(`Failed to ${j?"disable":"enable"} MCP server '${K.name}': ${Eq(N)}`)}},[K.client.type,K.name,k,f,H]),U=n8(String(K.name)),Wq=B8(W.commands,K.name).length,G=[];if(K.client.type!=="disabled"&&q>0)G.push({label:"View tools",value:"tools"});if(K.client.type!=="disabled")G.push({label:"Reconnect",value:"reconnectMcpServer"});if(G.push({label:K.client.type!=="disabled"?"Disable":"Enable",value:"toggle-enabled"}),G.length===0)G.push({label:"Back",value:"back"});if(v)return vq(O,{flexDirection:"column",gap:1,padding:1,children:[vq(z,{color:"text",children:["Reconnecting to ",vq(z,{bold:!0,children:K.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(O,{children:[vq(vK,{},void 0,!1,void 0,this),vq(z,{children:" Restarting MCP server process"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(z,{dimColor:!0,children:"This may take a few moments."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return vq(O,{flexDirection:"column",children:[vq(O,{flexDirection:"column",paddingX:1,borderStyle:_?void 0:"round",children:[vq(O,{marginBottom:1,children:vq(z,{bold:!0,children:[U," MCP Server"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),vq(O,{flexDirection:"column",gap:0,children:[vq(O,{children:[vq(z,{bold:!0,children:"Status: "},void 0,!1,void 0,this),K.client.type==="disabled"?vq(z,{children:[dq("inactive",J)(s8.radioOff)," disabled"]},void 0,!0,void 0,this):K.client.type==="connected"?vq(z,{children:[dq("success",J)(s8.tick)," connected"]},void 0,!0,void 0,this):K.client.type==="pending"?vq(pz,{children:[vq(z,{dimColor:!0,children:s8.radioOff},void 0,!1,void 0,this),vq(z,{children:" connecting\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):vq(z,{children:[dq("error",J)(s8.cross)," failed"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),vq(O,{children:[vq(z,{bold:!0,children:"Command: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:K.config.command},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.config.args&&K.config.args.length>0&&vq(O,{children:[vq(z,{bold:!0,children:"Args: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:K.config.args.join(" ")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(O,{children:[vq(z,{bold:!0,children:"Config location: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:r8(Vz(K.name)?.scope??"dynamic")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.client.type==="connected"&&vq(o8,{serverToolsCount:q,serverPromptsCount:Wq,serverResourcesCount:W.resources[K.name]?.length||0},void 0,!1,void 0,this),K.client.type==="connected"&&q>0&&vq(O,{children:[vq(z,{bold:!0,children:"Tools: "},void 0,!1,void 0,this),vq(z,{dimColor:!0,children:[q," tools"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G.length>0&&vq(O,{marginTop:1,children:vq(z8,{options:G,onChange:async(j)=>{if(j==="tools")Y();else if(j==="reconnectMcpServer"){X(!0);try{let N=await P(K.name),{message:F}=F8(N,K.name);H?.(F)}catch(N){H?.(P8(N,K.name))}finally{X(!1)}}else if(j==="toggle-enabled")await l();else if(j==="back")f()},onCancel:f},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),vq(O,{marginTop:1,children:vq(z,{dimColor:!0,italic:!0,children:h.pending?vq(pz,{children:["Press ",h.keyName," again to exit"]},void 0,!0,void 0,this):vq(Lq,{children:[vq(oq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),vq(oq,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),vq(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Ez=uq(()=>{p6();Bq();e7();d6();i8();h8();wK();PK();zK();V6();YK();A8();w6();R6();N6()});import{c as zY}from"react/compiler-runtime";import uz from"react";import{jsxDEV as Sq,Fragment as OY}from"react/jsx-dev-runtime";function xz(K){let q=zY(44),{tool:Y,server:f,onBack:H}=K,[_,J]=uz.useState(""),h,W;if(q[0]!==f.name||q[1]!==Y){W=t8(Y.name,f.name);let Gq=Y.userFacingName?Y.userFacingName({}):W;h=e8(Gq),q[0]=f.name,q[1]=Y,q[2]=h,q[3]=W}else h=q[2],W=q[3];let P=h,k;if(q[4]!==Y)k=Y.isReadOnly?.({})??!1,q[4]=Y,q[5]=k;else k=q[5];let v=k,X;if(q[6]!==Y)X=Y.isDestructive?.({})??!1,q[6]=Y,q[7]=X;else X=q[7];let l=X,U;if(q[8]!==Y)U=Y.isOpenWorld?.({})??!1,q[8]=Y,q[9]=U;else U=q[9];let Wq=U,G,j;if(q[10]!==Y)G=()=>{(async function(){try{let B=await Y.description({},{isNonInteractiveSession:!1,toolPermissionContext:{mode:"default",additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1},tools:[]});J(B)}catch{J("Failed to load description")}})()},j=[Y],q[10]=Y,q[11]=G,q[12]=j;else G=q[11],j=q[12];uz.useEffect(G,j);let N;if(q[13]!==v)N=v&&Sq(z,{color:"success",children:" [read-only]"},void 0,!1,void 0,this),q[13]=v,q[14]=N;else N=q[14];let F;if(q[15]!==l)F=l&&Sq(z,{color:"error",children:" [destructive]"},void 0,!1,void 0,this),q[15]=l,q[16]=F;else F=q[16];let Z;if(q[17]!==Wq)Z=Wq&&Sq(z,{dimColor:!0,children:" [open-world]"},void 0,!1,void 0,this),q[17]=Wq,q[18]=Z;else Z=q[18];let A;if(q[19]!==P||q[20]!==N||q[21]!==F||q[22]!==Z)A=Sq(OY,{children:[P,N,F,Z]},void 0,!0,void 0,this),q[19]=P,q[20]=N,q[21]=F,q[22]=Z,q[23]=A;else A=q[23];let u=A,Hq;if(q[24]===Symbol.for("react.memo_cache_sentinel"))Hq=Sq(z,{bold:!0,children:"Tool name: "},void 0,!1,void 0,this),q[24]=Hq;else Hq=q[24];let D;if(q[25]!==W)D=Sq(O,{children:[Hq,Sq(z,{dimColor:!0,children:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[25]=W,q[26]=D;else D=q[26];let Q;if(q[27]===Symbol.for("react.memo_cache_sentinel"))Q=Sq(z,{bold:!0,children:"Full name: "},void 0,!1,void 0,this),q[27]=Q;else Q=q[27];let r;if(q[28]!==Y.name)r=Sq(O,{children:[Q,Sq(z,{dimColor:!0,children:Y.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[28]=Y.name,q[29]=r;else r=q[29];let s;if(q[30]!==_)s=_&&Sq(O,{flexDirection:"column",marginTop:1,children:[Sq(z,{bold:!0,children:"Description:"},void 0,!1,void 0,this),Sq(z,{wrap:"wrap",children:_},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[30]=_,q[31]=s;else s=q[31];let fq;if(q[32]!==Y.inputJSONSchema)fq=Y.inputJSONSchema&&Y.inputJSONSchema.properties&&Object.keys(Y.inputJSONSchema.properties).length>0&&Sq(O,{flexDirection:"column",marginTop:1,children:[Sq(z,{bold:!0,children:"Parameters:"},void 0,!1,void 0,this),Sq(O,{marginLeft:2,flexDirection:"column",children:Object.entries(Y.inputJSONSchema.properties).map((Gq)=>{let[zq,B]=Gq,hq=Y.inputJSONSchema?.required?.includes(zq);return Sq(z,{children:["\u2022 ",zq,hq&&Sq(z,{dimColor:!0,children:" (required)"},void 0,!1,void 0,this),":"," ",Sq(z,{dimColor:!0,children:typeof B==="object"&&B&&"type"in B?String(B.type):"unknown"},void 0,!1,void 0,this),typeof B==="object"&&B&&"description"in B&&Sq(z,{dimColor:!0,children:[" - ",String(B.description)]},void 0,!0,void 0,this)]},zq,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q[32]=Y.inputJSONSchema,q[33]=fq;else fq=q[33];let m;if(q[34]!==D||q[35]!==r||q[36]!==s||q[37]!==fq)m=Sq(O,{flexDirection:"column",children:[D,r,s,fq]},void 0,!0,void 0,this),q[34]=D,q[35]=r,q[36]=s,q[37]=fq,q[38]=m;else m=q[38];let Aq;if(q[39]!==H||q[40]!==f.name||q[41]!==m||q[42]!==u)Aq=Sq(FK,{title:u,subtitle:f.name,onCancel:H,inputGuide:YY,children:m},void 0,!1,void 0,this),q[39]=H,q[40]=f.name,q[41]=m,q[42]=u,q[43]=Aq;else Aq=q[43];return Aq}function YY(K){return K.pending?Sq(z,{children:["Press ",K.keyName," again to exit"]},void 0,!0,void 0,this):Sq(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)}var cz=uq(()=>{Bq();gz();zK();A6()});import{c as fY}from"react/compiler-runtime";import{jsxDEV as LK}from"react/jsx-dev-runtime";function oz(K){let q=fY(21),{server:Y,onSelectTool:f,onBack:H}=K,_=sq(wY),J;q:{if(Y.client.type!=="connected"){let j;if(q[0]===Symbol.for("react.memo_cache_sentinel"))j=[],q[0]=j;else j=q[0];J=j;break q}let G;if(q[1]!==_||q[2]!==Y.name)G=q6(_,Y.name),q[1]=_,q[2]=Y.name,q[3]=G;else G=q[3];J=G}let h=J,W;if(q[4]!==Y.name||q[5]!==h){let G;if(q[7]!==Y.name)G=(j,N)=>{let F=t8(j.name,Y.name),Z=j.userFacingName?j.userFacingName({}):F,A=e8(Z),u=j.isReadOnly?.({})??!1,Hq=j.isDestructive?.({})??!1,D=j.isOpenWorld?.({})??!1,Q=[];if(u)Q.push("read-only");if(Hq)Q.push("destructive");if(D)Q.push("open-world");return{label:A,value:N.toString(),description:Q.length>0?Q.join(", "):void 0,descriptionColor:Hq?"error":u?"success":void 0}},q[7]=Y.name,q[8]=G;else G=q[8];W=h.map(G),q[4]=Y.name,q[5]=h,q[6]=W}else W=q[6];let P=W,k=`Tools for ${Y.name}`,v=h.length,X;if(q[9]!==h.length)X=Vq(h.length,"tool"),q[9]=h.length,q[10]=X;else X=q[10];let l=`${v} ${X}`,U;if(q[11]!==H||q[12]!==f||q[13]!==h||q[14]!==P)U=h.length===0?LK(z,{dimColor:!0,children:"No tools available"},void 0,!1,void 0,this):LK(z8,{options:P,onChange:(G)=>{let j=parseInt(G),N=h[j];if(N)f(N,j)},onCancel:H},void 0,!1,void 0,this),q[11]=H,q[12]=f,q[13]=h,q[14]=P,q[15]=U;else U=q[15];let Wq;if(q[16]!==H||q[17]!==k||q[18]!==l||q[19]!==U)Wq=LK(FK,{title:k,subtitle:l,onCancel:H,inputGuide:HY,children:U},void 0,!1,void 0,this),q[16]=H,q[17]=k,q[18]=l,q[19]=U,q[20]=Wq;else Wq=q[20];return Wq}function HY(K){return K.pending?LK(z,{children:["Press ",K.keyName," again to exit"]},void 0,!0,void 0,this):LK(Lq,{children:[LK(oq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),LK(oq,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),LK(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function wY(K){return K.mcp.tools}var Fz=uq(()=>{Bq();gz();i8();h8();PK();zK();V6();YK();A6();A8()});function mK(K){switch(K.type){case"path-not-found":return`${K.component} path not found: ${K.path}`;case"git-auth-failed":return`Git ${K.authType.toUpperCase()} authentication failed for ${K.gitUrl}`;case"git-timeout":return`Git ${K.operation} timed out for ${K.gitUrl}`;case"network-error":return`Network error accessing ${K.url}${K.details?`: ${K.details}`:""}`;case"manifest-parse-error":return`Failed to parse manifest at ${K.manifestPath}: ${K.parseError}`;case"manifest-validation-error":return`Invalid manifest at ${K.manifestPath}: ${K.validationErrors.join(", ")}`;case"plugin-not-found":return`Plugin "${K.pluginId}" not found in marketplace "${K.marketplace}"`;case"marketplace-not-found":return`Marketplace "${K.marketplace}" not found`;case"marketplace-load-failed":return`Failed to load marketplace "${K.marketplace}": ${K.reason}`;case"mcp-config-invalid":return`Invalid MCP server config for "${K.serverName}": ${K.validationError}`;case"mcp-server-suppressed-duplicate":{let Y=K.duplicateOf.startsWith("plugin:")?`server provided by plugin "${K.duplicateOf.split(":")[1]??"?"}"`:`already-configured "${K.duplicateOf}"`;return`MCP server "${K.serverName}" skipped \u2014 same command/URL as ${Y}`}case"hook-load-failed":return`Failed to load hooks from ${K.hookPath}: ${K.reason}`;case"component-load-failed":return`Failed to load ${K.component} from ${K.path}: ${K.reason}`;case"mcpb-download-failed":return`Failed to download MCPB from ${K.url}: ${K.reason}`;case"mcpb-extract-failed":return`Failed to extract MCPB ${K.mcpbPath}: ${K.reason}`;case"mcpb-invalid-manifest":return`MCPB manifest invalid at ${K.mcpbPath}: ${K.validationError}`;case"marketplace-blocked-by-policy":return K.blockedByBlocklist?`Marketplace "${K.marketplace}" is blocked by enterprise policy`:`Marketplace "${K.marketplace}" is not in the allowed marketplace list`;case"dependency-unsatisfied":return K.reason==="not-enabled"?`Dependency "${K.dependency}" is disabled`:`Dependency "${K.dependency}" is not installed`;case"lsp-config-invalid":return`Invalid LSP server config for "${K.serverName}": ${K.validationError}`;case"lsp-server-start-failed":return`LSP server "${K.serverName}" failed to start: ${K.reason}`;case"lsp-server-crashed":return K.signal?`LSP server "${K.serverName}" crashed with signal ${K.signal}`:`LSP server "${K.serverName}" crashed with exit code ${K.exitCode??"unknown"}`;case"lsp-request-timeout":return`LSP server "${K.serverName}" timed out on ${K.method} after ${K.timeoutMs}ms`;case"lsp-request-failed":return`LSP server "${K.serverName}" ${K.method} failed: ${K.error}`;case"plugin-cache-miss":return`Plugin "${K.plugin}" not cached at ${K.installPath}`;case"generic-error":return K.error}return Uz(K)}function O8(K){switch(K.type){case"path-not-found":return"Check that the path in your manifest or marketplace config is correct";case"git-auth-failed":return K.authType==="ssh"?"Configure SSH keys or use HTTPS URL instead":"Configure credentials or use SSH URL instead";case"git-timeout":case"network-error":return"Check your internet connection and try again";case"manifest-parse-error":return"Check manifest file syntax in the plugin directory";case"manifest-validation-error":return"Check manifest file follows the required schema";case"plugin-not-found":return`Plugin may not exist in marketplace "${K.marketplace}"`;case"marketplace-not-found":return K.availableMarketplaces.length>0?`Available marketplaces: ${K.availableMarketplaces.join(", ")}`:"Add the marketplace first using /plugin marketplace add";case"mcp-config-invalid":return"Check MCP server configuration in .mcp.json or manifest";case"mcp-server-suppressed-duplicate":{if(K.duplicateOf.startsWith("plugin:"))return`Disable plugin "${K.duplicateOf.split(":")[1]??"the other plugin"}" if you want this plugin's version instead`;return`Remove "${K.duplicateOf}" from your MCP config if you want the plugin's version instead`}case"hook-load-failed":return"Check hooks.json file syntax and structure";case"component-load-failed":return`Check ${K.component} directory structure and file permissions`;case"mcpb-download-failed":return"Check your internet connection and URL accessibility";case"mcpb-extract-failed":return"Verify the MCPB file is valid and not corrupted";case"mcpb-invalid-manifest":return"Contact the plugin author about the invalid manifest";case"marketplace-blocked-by-policy":if(K.blockedByBlocklist)return"This marketplace source is explicitly blocked by your administrator";return K.allowedSources.length>0?`Allowed sources: ${K.allowedSources.join(", ")}`:"Contact your administrator to configure allowed marketplace sources";case"dependency-unsatisfied":return K.reason==="not-enabled"?`Enable "${K.dependency}" or uninstall "${K.plugin}"`:`Install "${K.dependency}" or uninstall "${K.plugin}"`;case"lsp-config-invalid":return"Check LSP server configuration in the plugin manifest";case"lsp-server-start-failed":case"lsp-server-crashed":case"lsp-request-timeout":case"lsp-request-failed":return"Check LSP server logs with --debug for details";case"plugin-cache-miss":return"Run /plugins to refresh the plugin cache";case"marketplace-load-failed":case"generic-error":return null}let q=K;return null}var E6=uq(()=>{kY()});import{c as AY}from"react/compiler-runtime";import rq from"figures";import{jsxDEV as Tq}from"react/jsx-dev-runtime";function az(K){let q=AY(142),{item:Y,isSelected:f}=K,[H]=q8();if(Y.type==="plugin"){let Z,A;if(Y.pendingToggle){let wq;if(q[0]!==H)wq=dq("suggestion",H)(rq.arrowRight),q[0]=H,q[1]=wq;else wq=q[1];Z=wq,A=Y.pendingToggle==="will-enable"?"will enable":"will disable"}else if(Y.errorCount>0){let wq;if(q[2]!==H)wq=dq("error",H)(rq.cross),q[2]=H,q[3]=wq;else wq=q[3];Z=wq;let y=Y.errorCount,C;if(q[4]!==Y.errorCount)C=Vq(Y.errorCount,"error"),q[4]=Y.errorCount,q[5]=C;else C=q[5];A=`${y} ${C}`}else if(!Y.isEnabled){let wq;if(q[6]!==H)wq=dq("inactive",H)(rq.radioOff),q[6]=H,q[7]=wq;else wq=q[7];Z=wq,A="disabled"}else{let wq;if(q[8]!==H)wq=dq("success",H)(rq.tick),q[8]=H,q[9]=wq;else wq=q[9];Z=wq,A="enabled"}let u=f?"suggestion":void 0,Hq=f?`${rq.pointer} `:" ",D;if(q[10]!==u||q[11]!==Hq)D=Tq(z,{color:u,children:Hq},void 0,!1,void 0,this),q[10]=u,q[11]=Hq,q[12]=D;else D=q[12];let Q=f?"suggestion":void 0,r;if(q[13]!==Y.name||q[14]!==Q)r=Tq(z,{color:Q,children:Y.name},void 0,!1,void 0,this),q[13]=Y.name,q[14]=Q,q[15]=r;else r=q[15];let s=!f,fq;if(q[16]===Symbol.for("react.memo_cache_sentinel"))fq=Tq(z,{backgroundColor:"userMessageBackground",children:"Plugin"},void 0,!1,void 0,this),q[16]=fq;else fq=q[16];let m;if(q[17]!==s)m=Tq(z,{dimColor:s,children:[" ",fq]},void 0,!0,void 0,this),q[17]=s,q[18]=m;else m=q[18];let Aq;if(q[19]!==Y.marketplace)Aq=Tq(z,{dimColor:!0,children:[" \xB7 ",Y.marketplace]},void 0,!0,void 0,this),q[19]=Y.marketplace,q[20]=Aq;else Aq=q[20];let Gq=!f,zq;if(q[21]!==Z||q[22]!==Gq)zq=Tq(z,{dimColor:Gq,children:[" \xB7 ",Z," "]},void 0,!0,void 0,this),q[21]=Z,q[22]=Gq,q[23]=zq;else zq=q[23];let B=!f,Mq;if(q[24]!==A||q[25]!==B)Mq=Tq(z,{dimColor:B,children:A},void 0,!1,void 0,this),q[24]=A,q[25]=B,q[26]=Mq;else Mq=q[26];let hq;if(q[27]!==zq||q[28]!==Mq||q[29]!==D||q[30]!==r||q[31]!==m||q[32]!==Aq)hq=Tq(O,{children:[D,r,m,Aq,zq,Mq]},void 0,!0,void 0,this),q[27]=zq,q[28]=Mq,q[29]=D,q[30]=r,q[31]=m,q[32]=Aq,q[33]=hq;else hq=q[33];return hq}if(Y.type==="flagged-plugin"){let Z;if(q[34]!==H)Z=dq("warning",H)(rq.warning),q[34]=H,q[35]=Z;else Z=q[35];let A=Z,u=f?"suggestion":void 0,Hq=f?`${rq.pointer} `:" ",D;if(q[36]!==u||q[37]!==Hq)D=Tq(z,{color:u,children:Hq},void 0,!1,void 0,this),q[36]=u,q[37]=Hq,q[38]=D;else D=q[38];let Q=f?"suggestion":void 0,r;if(q[39]!==Y.name||q[40]!==Q)r=Tq(z,{color:Q,children:Y.name},void 0,!1,void 0,this),q[39]=Y.name,q[40]=Q,q[41]=r;else r=q[41];let s=!f,fq;if(q[42]===Symbol.for("react.memo_cache_sentinel"))fq=Tq(z,{backgroundColor:"userMessageBackground",children:"Plugin"},void 0,!1,void 0,this),q[42]=fq;else fq=q[42];let m;if(q[43]!==s)m=Tq(z,{dimColor:s,children:[" ",fq]},void 0,!0,void 0,this),q[43]=s,q[44]=m;else m=q[44];let Aq;if(q[45]!==Y.marketplace)Aq=Tq(z,{dimColor:!0,children:[" \xB7 ",Y.marketplace]},void 0,!0,void 0,this),q[45]=Y.marketplace,q[46]=Aq;else Aq=q[46];let Gq=!f,zq;if(q[47]!==A||q[48]!==Gq)zq=Tq(z,{dimColor:Gq,children:[" \xB7 ",A," "]},void 0,!0,void 0,this),q[47]=A,q[48]=Gq,q[49]=zq;else zq=q[49];let B=!f,Mq;if(q[50]!==B)Mq=Tq(z,{dimColor:B,children:"removed"},void 0,!1,void 0,this),q[50]=B,q[51]=Mq;else Mq=q[51];let hq;if(q[52]!==Aq||q[53]!==zq||q[54]!==Mq||q[55]!==D||q[56]!==r||q[57]!==m)hq=Tq(O,{children:[D,r,m,Aq,zq,Mq]},void 0,!0,void 0,this),q[52]=Aq,q[53]=zq,q[54]=Mq,q[55]=D,q[56]=r,q[57]=m,q[58]=hq;else hq=q[58];return hq}if(Y.type==="failed-plugin"){let Z;if(q[59]!==H)Z=dq("error",H)(rq.cross),q[59]=H,q[60]=Z;else Z=q[60];let A=Z,u=Y.errorCount,Hq;if(q[61]!==Y.errorCount)Hq=Vq(Y.errorCount,"error"),q[61]=Y.errorCount,q[62]=Hq;else Hq=q[62];let D=`failed to load \xB7 ${u} ${Hq}`,Q=f?"suggestion":void 0,r=f?`${rq.pointer} `:" ",s;if(q[63]!==Q||q[64]!==r)s=Tq(z,{color:Q,children:r},void 0,!1,void 0,this),q[63]=Q,q[64]=r,q[65]=s;else s=q[65];let fq=f?"suggestion":void 0,m;if(q[66]!==Y.name||q[67]!==fq)m=Tq(z,{color:fq,children:Y.name},void 0,!1,void 0,this),q[66]=Y.name,q[67]=fq,q[68]=m;else m=q[68];let Aq=!f,Gq;if(q[69]===Symbol.for("react.memo_cache_sentinel"))Gq=Tq(z,{backgroundColor:"userMessageBackground",children:"Plugin"},void 0,!1,void 0,this),q[69]=Gq;else Gq=q[69];let zq;if(q[70]!==Aq)zq=Tq(z,{dimColor:Aq,children:[" ",Gq]},void 0,!0,void 0,this),q[70]=Aq,q[71]=zq;else zq=q[71];let B;if(q[72]!==Y.marketplace)B=Tq(z,{dimColor:!0,children:[" \xB7 ",Y.marketplace]},void 0,!0,void 0,this),q[72]=Y.marketplace,q[73]=B;else B=q[73];let Mq=!f,hq;if(q[74]!==A||q[75]!==Mq)hq=Tq(z,{dimColor:Mq,children:[" \xB7 ",A," "]},void 0,!0,void 0,this),q[74]=A,q[75]=Mq,q[76]=hq;else hq=q[76];let wq=!f,y;if(q[77]!==D||q[78]!==wq)y=Tq(z,{dimColor:wq,children:D},void 0,!1,void 0,this),q[77]=D,q[78]=wq,q[79]=y;else y=q[79];let C;if(q[80]!==zq||q[81]!==B||q[82]!==hq||q[83]!==y||q[84]!==s||q[85]!==m)C=Tq(O,{children:[s,m,zq,B,hq,y]},void 0,!0,void 0,this),q[80]=zq,q[81]=B,q[82]=hq,q[83]=y,q[84]=s,q[85]=m,q[86]=C;else C=q[86];return C}let _,J;if(Y.status==="connected"){let Z;if(q[87]!==H)Z=dq("success",H)(rq.tick),q[87]=H,q[88]=Z;else Z=q[88];_=Z,J="connected"}else if(Y.status==="disabled"){let Z;if(q[89]!==H)Z=dq("inactive",H)(rq.radioOff),q[89]=H,q[90]=Z;else Z=q[90];_=Z,J="disabled"}else if(Y.status==="pending"){let Z;if(q[91]!==H)Z=dq("inactive",H)(rq.radioOff),q[91]=H,q[92]=Z;else Z=q[92];_=Z,J="connecting\u2026"}else if(Y.status==="needs-auth"){let Z;if(q[93]!==H)Z=dq("warning",H)(rq.triangleUpOutline),q[93]=H,q[94]=Z;else Z=q[94];_=Z,J="Enter to auth"}else{let Z;if(q[95]!==H)Z=dq("error",H)(rq.cross),q[95]=H,q[96]=Z;else Z=q[96];_=Z,J="failed"}if(Y.indented){let Z=f?"suggestion":void 0,A=f?`${rq.pointer} `:" ",u;if(q[97]!==Z||q[98]!==A)u=Tq(z,{color:Z,children:A},void 0,!1,void 0,this),q[97]=Z,q[98]=A,q[99]=u;else u=q[99];let Hq=!f,D;if(q[100]!==Hq)D=Tq(z,{dimColor:Hq,children:"\u2514 "},void 0,!1,void 0,this),q[100]=Hq,q[101]=D;else D=q[101];let Q=f?"suggestion":void 0,r;if(q[102]!==Y.name||q[103]!==Q)r=Tq(z,{color:Q,children:Y.name},void 0,!1,void 0,this),q[102]=Y.name,q[103]=Q,q[104]=r;else r=q[104];let s=!f,fq;if(q[105]===Symbol.for("react.memo_cache_sentinel"))fq=Tq(z,{backgroundColor:"userMessageBackground",children:"MCP"},void 0,!1,void 0,this),q[105]=fq;else fq=q[105];let m;if(q[106]!==s)m=Tq(z,{dimColor:s,children:[" ",fq]},void 0,!0,void 0,this),q[106]=s,q[107]=m;else m=q[107];let Aq=!f,Gq;if(q[108]!==_||q[109]!==Aq)Gq=Tq(z,{dimColor:Aq,children:[" \xB7 ",_," "]},void 0,!0,void 0,this),q[108]=_,q[109]=Aq,q[110]=Gq;else Gq=q[110];let zq=!f,B;if(q[111]!==J||q[112]!==zq)B=Tq(z,{dimColor:zq,children:J},void 0,!1,void 0,this),q[111]=J,q[112]=zq,q[113]=B;else B=q[113];let Mq;if(q[114]!==m||q[115]!==Gq||q[116]!==B||q[117]!==u||q[118]!==D||q[119]!==r)Mq=Tq(O,{children:[u,D,r,m,Gq,B]},void 0,!0,void 0,this),q[114]=m,q[115]=Gq,q[116]=B,q[117]=u,q[118]=D,q[119]=r,q[120]=Mq;else Mq=q[120];return Mq}let h=f?"suggestion":void 0,W=f?`${rq.pointer} `:" ",P;if(q[121]!==h||q[122]!==W)P=Tq(z,{color:h,children:W},void 0,!1,void 0,this),q[121]=h,q[122]=W,q[123]=P;else P=q[123];let k=f?"suggestion":void 0,v;if(q[124]!==Y.name||q[125]!==k)v=Tq(z,{color:k,children:Y.name},void 0,!1,void 0,this),q[124]=Y.name,q[125]=k,q[126]=v;else v=q[126];let X=!f,l;if(q[127]===Symbol.for("react.memo_cache_sentinel"))l=Tq(z,{backgroundColor:"userMessageBackground",children:"MCP"},void 0,!1,void 0,this),q[127]=l;else l=q[127];let U;if(q[128]!==X)U=Tq(z,{dimColor:X,children:[" ",l]},void 0,!0,void 0,this),q[128]=X,q[129]=U;else U=q[129];let Wq=!f,G;if(q[130]!==_||q[131]!==Wq)G=Tq(z,{dimColor:Wq,children:[" \xB7 ",_," "]},void 0,!0,void 0,this),q[130]=_,q[131]=Wq,q[132]=G;else G=q[132];let j=!f,N;if(q[133]!==J||q[134]!==j)N=Tq(z,{dimColor:j,children:J},void 0,!1,void 0,this),q[133]=J,q[134]=j,q[135]=N;else N=q[135];let F;if(q[136]!==G||q[137]!==N||q[138]!==P||q[139]!==v||q[140]!==U)F=Tq(O,{children:[P,v,U,G,N]},void 0,!0,void 0,this),q[136]=G,q[137]=N,q[138]=P,q[139]=v,q[140]=U,q[141]=F;else F=q[141];return F}var nz=uq(()=>{Bq();PK()});import EK from"figures";import*as gK from"fs/promises";import*as w8 from"path";import*as fK from"react";import{useCallback as hY,useEffect as H8,useMemo as u6,useRef as g6,useState as Fq}from"react";import{jsxDEV as M}from"react/jsx-dev-runtime";async function Bz(K){try{return(await gK.readdir(K,{withFileTypes:!0})).filter((Y)=>Y.isFile()&&Y.name.endsWith(".md")).map((Y)=>{return w8.basename(Y.name,".md")})}catch(q){let Y=Eq(q);return RK(`Failed to read plugin components from ${K}: ${Y}`,{level:"error"}),kK(xK(q)),[]}}async function JY(K){try{let q=await gK.readdir(K,{withFileTypes:!0}),Y=[];for(let f of q)if(f.isDirectory()||f.isSymbolicLink()){let H=w8.join(K,f.name,"SKILL.md");try{if((await gK.stat(H)).isFile())Y.push(f.name)}catch{}}return Y}catch(q){let Y=Eq(q);return RK(`Failed to read skill directories from ${K}: ${Y}`,{level:"error"}),kK(xK(q)),[]}}function $Y({plugin:K,marketplace:q}){let[Y,f]=Fq(null),[H,_]=Fq(!0),[J,h]=Fq(null);if(H8(()=>{async function P(){try{if(q==="builtin"){let X=iz(K.name);if(X){let l=X.skills?.map((G)=>G.name)??[],U=X.hooks?Object.keys(X.hooks):[],Wq=X.mcpServers?Object.keys(X.mcpServers):[];f({commands:null,agents:null,skills:l.length>0?l:null,hooks:U.length>0?U:null,mcpServers:Wq.length>0?Wq:null})}else h(`Built-in plugin ${K.name} not found`);_(!1);return}let v=(await iK(q)).plugins.find((X)=>X.name===K.name);if(v){let X=[];if(K.commandsPath)X.push(K.commandsPath);if(K.commandsPaths)X.push(...K.commandsPaths);let l=[];for(let Z of X)if(typeof Z==="string"){let A=await Bz(Z);l.push(...A)}let U=[];if(K.agentsPath)U.push(K.agentsPath);if(K.agentsPaths)U.push(...K.agentsPaths);let Wq=[];for(let Z of U)if(typeof Z==="string"){let A=await Bz(Z);Wq.push(...A)}let G=[];if(K.skillsPath)G.push(K.skillsPath);if(K.skillsPaths)G.push(...K.skillsPaths);let j=[];for(let Z of G)if(typeof Z==="string"){let A=await JY(Z);j.push(...A)}let N=[];if(K.hooksConfig)N.push(Object.keys(K.hooksConfig));if(v.hooks)N.push(v.hooks);let F=[];if(K.mcpServers)F.push(Object.keys(K.mcpServers));if(v.mcpServers)F.push(v.mcpServers);f({commands:l.length>0?l:null,agents:Wq.length>0?Wq:null,skills:j.length>0?j:null,hooks:N.length>0?N:null,mcpServers:F.length>0?F:null})}else h(`Plugin ${K.name} not found in marketplace`)}catch(k){h(k instanceof Error?k.message:"Failed to load components")}finally{_(!1)}}P()},[K.name,K.commandsPath,K.commandsPaths,K.agentsPath,K.agentsPaths,K.skillsPath,K.skillsPaths,K.hooksConfig,K.mcpServers,q]),H)return null;if(J)return M(O,{flexDirection:"column",marginBottom:1,children:[M(z,{bold:!0,children:"Components:"},void 0,!1,void 0,this),M(z,{dimColor:!0,children:["Error: ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(!Y)return null;if(!(Y.commands||Y.agents||Y.skills||Y.hooks||Y.mcpServers))return null;return M(O,{flexDirection:"column",marginBottom:1,children:[M(z,{bold:!0,children:"Installed components:"},void 0,!1,void 0,this),Y.commands?M(z,{dimColor:!0,children:["\u2022 Commands:"," ",typeof Y.commands==="string"?Y.commands:Array.isArray(Y.commands)?Y.commands.join(", "):Object.keys(Y.commands).join(", ")]},void 0,!0,void 0,this):null,Y.agents?M(z,{dimColor:!0,children:["\u2022 Agents:"," ",typeof Y.agents==="string"?Y.agents:Array.isArray(Y.agents)?Y.agents.join(", "):Object.keys(Y.agents).join(", ")]},void 0,!0,void 0,this):null,Y.skills?M(z,{dimColor:!0,children:["\u2022 Skills:"," ",typeof Y.skills==="string"?Y.skills:Array.isArray(Y.skills)?Y.skills.join(", "):Object.keys(Y.skills).join(", ")]},void 0,!0,void 0,this):null,Y.hooks?M(z,{dimColor:!0,children:["\u2022 Hooks:"," ",typeof Y.hooks==="string"?Y.hooks:Array.isArray(Y.hooks)?Y.hooks.map(String).join(", "):typeof Y.hooks==="object"&&Y.hooks!==null?Object.keys(Y.hooks).join(", "):String(Y.hooks)]},void 0,!0,void 0,this):null,Y.mcpServers?M(z,{dimColor:!0,children:["\u2022 MCP Servers:"," ",typeof Y.mcpServers==="string"?Y.mcpServers:Array.isArray(Y.mcpServers)?Y.mcpServers.map(String).join(", "):typeof Y.mcpServers==="object"&&Y.mcpServers!==null?Object.keys(Y.mcpServers).join(", "):String(Y.mcpServers)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}async function ZY(K,q){let f=(await iK(q))?.plugins.find((H)=>H.name===K);if(f&&typeof f.source==="string")return`Local plugins cannot be updated remotely. To update, modify the source at: ${f.source}`;return null}function vY(K){return K.filter((q)=>{let Y=q.source.split("@")[1]||"local";return!QK(`${q.name}@${Y}`)})}function O7({setViewState:K,setResult:q,onManageComplete:Y,onSearchModeChange:f,targetPlugin:H,targetMarketplace:_,action:J}){let h=sq((w)=>w.mcp.clients),W=sq((w)=>w.mcp.tools),P=sq((w)=>w.plugins.errors),k=K7(),[v,X]=Fq(!1),l=hY((w)=>{X(w),f?.(w)},[f]),U=E8(),{columns:Wq}=eK(),[G,j]=Fq("plugin-list"),{query:N,setQuery:F,cursorOffset:Z}=g8({isActive:G==="plugin-list"&&v,onExit:()=>{l(!1)}}),[A,u]=Fq(null),[Hq,D]=Fq([]),[Q,r]=Fq([]),[s,fq]=Fq(!0),[m,Aq]=Fq(new Map),Gq=g6(!1),zq=g6(void 0),B=Y8(),Mq=fK.useCallback(()=>{if(G==="plugin-details")j("plugin-list"),u(null),S(null);else if(typeof G==="object"&&G.type==="failed-plugin-details")j("plugin-list"),S(null);else if(G==="configuring")j("plugin-details"),L(null);else if(typeof G==="object"&&(G.type==="plugin-options"||G.type==="configuring-options")){if(j("plugin-list"),u(null),q("Plugin enabled. Configuration skipped \u2014 run /reload-plugins to apply."),Y)Y()}else if(typeof G==="object"&&G.type==="flagged-detail")j("plugin-list"),S(null);else if(typeof G==="object"&&G.type==="mcp-detail")j("plugin-list"),S(null);else if(typeof G==="object"&&G.type==="mcp-tools")j({type:"mcp-detail",client:G.client});else if(typeof G==="object"&&G.type==="mcp-tool-detail")j({type:"mcp-tools",client:G.client});else{if(m.size>0){q("Run /reload-plugins to apply plugin changes.");return}K({type:"menu"})}},[G,K,m,q]);xq("confirm:no",Mq,{context:"Confirmation",isActive:(G!=="plugin-list"||!v)&&G!=="confirm-project-uninstall"&&!(typeof G==="object"&&G.type==="confirm-data-cleanup")});let hq=(w)=>{if(w.type==="connected")return"connected";if(w.type==="disabled")return"disabled";if(w.type==="pending")return"pending";if(w.type==="needs-auth")return"needs-auth";return"failed"},wq=u6(()=>{let w=uK(),x=new Map;for(let Kq of h)if(Kq.name.startsWith("plugin:")){let jq=Kq.name.split(":");if(jq.length>=3){let Uq=jq[1],aq=jq.slice(2).join(":"),gq=x.get(Uq)||[];gq.push({displayName:aq,client:Kq}),x.set(Uq,gq)}}let Yq=[];for(let Kq of Q){let jq=`${Kq.plugin.name}@${Kq.marketplace}`,Uq=w?.enabledPlugins?.[jq]!==!1,aq=P.filter((Cq)=>("plugin"in Cq)&&Cq.plugin===Kq.plugin.name||Cq.source===jq||Cq.source.startsWith(`${Kq.plugin.name}@`)),gq=Kq.plugin.isBuiltin?"builtin":Kq.scope||"user";Yq.push({item:{type:"plugin",id:jq,name:Kq.plugin.name,description:Kq.plugin.manifest.description,marketplace:Kq.marketplace,scope:gq,isEnabled:Uq,errorCount:aq.length,errors:aq,plugin:Kq.plugin,pendingEnable:Kq.pendingEnable,pendingUpdate:Kq.pendingUpdate,pendingToggle:m.get(jq)},originalScope:gq,childMcps:x.get(Kq.plugin.name)||[]})}let qq=new Set(Yq.map(({item:Kq})=>Kq.id)),e=new Set(Yq.map(({item:Kq})=>Kq.name)),n=new Map;for(let Kq of P){if(qq.has(Kq.source)||"plugin"in Kq&&typeof Kq.plugin==="string"&&e.has(Kq.plugin))continue;let jq=n.get(Kq.source)||[];jq.push(Kq),n.set(Kq.source,jq)}let _q=O6(),$q=[];for(let[Kq,jq]of n){if(Kq in k)continue;let Uq=K6(Kq),aq=Uq.name||Kq,gq=Uq.marketplace||"unknown",Cq=_q.get(Kq),tq=Cq==="flag"||Cq===void 0?"user":Cq;$q.push({type:"failed-plugin",id:Kq,name:aq,marketplace:gq,scope:tq,errorCount:jq.length,errors:jq})}let yq=[];for(let Kq of h){if(Kq.name==="ide")continue;if(Kq.name.startsWith("plugin:"))continue;yq.push({type:"mcp",id:`mcp:${Kq.name}`,name:Kq.name,description:void 0,scope:Kq.config.scope,status:hq(Kq),client:Kq})}let mq={flagged:-1,project:0,local:1,user:2,enterprise:3,managed:4,dynamic:5,builtin:6},HK=[],Rq=new Map;for(let{item:Kq,originalScope:jq,childMcps:Uq}of Yq){let aq=Kq.scope;if(!Rq.has(aq))Rq.set(aq,[]);Rq.get(aq).push(Kq);for(let{displayName:gq,client:Cq}of Uq){let tq=jq==="builtin"?"user":jq;if(!Rq.has(tq))Rq.set(tq,[]);Rq.get(tq).push({type:"mcp",id:`mcp:${Cq.name}`,name:gq,description:void 0,scope:tq,status:hq(Cq),client:Cq,indented:!0})}}for(let Kq of yq){let jq=Kq.scope;if(!Rq.has(jq))Rq.set(jq,[]);Rq.get(jq).push(Kq)}for(let Kq of $q){let jq=Kq.scope;if(!Rq.has(jq))Rq.set(jq,[]);Rq.get(jq).push(Kq)}for(let[Kq,jq]of Object.entries(k)){let Uq=K6(Kq),aq=Uq.name||Kq,gq=Uq.marketplace||"unknown";if(!Rq.has("flagged"))Rq.set("flagged",[]);Rq.get("flagged").push({type:"flagged-plugin",id:Kq,name:aq,marketplace:gq,scope:"flagged",reason:"delisted",text:"Removed from marketplace",flaggedAt:jq.flaggedAt})}let Z8=[...Rq.keys()].sort((Kq,jq)=>(mq[Kq]??99)-(mq[jq]??99));for(let Kq of Z8){let jq=Rq.get(Kq),Uq=[],aq=[],gq=0;while(gq<jq.length){let Cq=jq[gq];if(Cq.type==="plugin"||Cq.type==="failed-plugin"||Cq.type==="flagged-plugin"){let tq=[Cq];gq++;let v8=jq[gq];while(v8?.type==="mcp"&&v8.indented)tq.push(v8),gq++,v8=jq[gq];Uq.push(tq)}else if(Cq.type==="mcp"&&!Cq.indented)aq.push(Cq),gq++;else gq++}Uq.sort((Cq,tq)=>Cq[0].name.localeCompare(tq[0].name)),aq.sort((Cq,tq)=>Cq.name.localeCompare(tq.name));for(let Cq of Uq)HK.push(...Cq);HK.push(...aq)}return HK},[Q,h,P,m,k]),y=u6(()=>wq.filter((w)=>w.type==="flagged-plugin").map((w)=>w.id),[wq]);H8(()=>{if(y.length>0)z7(y)},[y]);let C=u6(()=>{if(!N)return wq;let w=N.toLowerCase();return wq.filter((x)=>x.name.toLowerCase().includes(w)||("description"in x)&&x.description?.toLowerCase().includes(w))},[wq,N]),[g,Oq]=Fq(0),Jq=nK({totalItems:C.length,selectedIndex:g,maxVisible:8}),[T,i]=Fq(0),[I,V]=Fq(!1),[c,S]=Fq(null),[$,L]=Fq(null),[t,Xq]=Fq(!1),[E,o]=Fq(!1);H8(()=>{if(!A){o(!1);return}async function w(){let x=A.plugin.manifest.mcpServers,Yq=!1;if(x)Yq=typeof x==="string"&&$K(x)||Array.isArray(x)&&x.some((qq)=>typeof qq==="string"&&$K(qq));if(!Yq)try{let qq=w8.join(A.plugin.path,".."),e=w8.join(qq,".claude-plugin","marketplace.json"),n=await gK.readFile(e,"utf-8"),$q=rz(n).plugins?.find((yq)=>yq.name===A.plugin.name);if($q?.mcpServers){let yq=$q.mcpServers;Yq=typeof yq==="string"&&$K(yq)||Array.isArray(yq)&&yq.some((mq)=>typeof mq==="string"&&$K(mq))}}catch(qq){RK(`Failed to read raw marketplace.json: ${qq}`)}o(Yq)}w()},[A]),H8(()=>{async function w(){fq(!0);try{let{enabled:x,disabled:Yq}=await IK(),qq=uK(),e=vY([...x,...Yq]),n={};for(let yq of e){let mq=yq.source.split("@")[1]||"local";if(!n[mq])n[mq]=[];n[mq].push(yq)}let _q=[];for(let[yq,mq]of Object.entries(n)){let HK=OK(mq,(Z8)=>{let Kq=`${Z8.name}@${yq}`;return qq?.enabledPlugins?.[Kq]!==!1}),Rq=mq.length-HK;_q.push({name:yq,installedPlugins:mq,enabledCount:HK,disabledCount:Rq})}_q.sort((yq,mq)=>{if(yq.name==="claude-plugin-directory")return-1;if(mq.name==="claude-plugin-directory")return 1;return yq.name.localeCompare(mq.name)}),D(_q);let $q=[];for(let yq of _q)for(let mq of yq.installedPlugins){let HK=`${mq.name}@${yq.name}`,Rq=mq.isBuiltin?"builtin":c6(HK).scope;$q.push({plugin:mq,marketplace:yq.name,scope:Rq,pendingEnable:void 0,pendingUpdate:!1})}r($q),Oq(0)}finally{fq(!1)}}w()},[]),H8(()=>{if(Gq.current)return;if(H&&Hq.length>0&&!s){let{name:w,marketplace:x}=K6(H),Yq=_??x,qq=Yq?Hq.filter((n)=>n.name===Yq):Hq;for(let n of qq){let _q=n.installedPlugins.find(($q)=>$q.name===w);if(_q){let $q=`${_q.name}@${n.name}`,{scope:yq}=c6($q),mq={plugin:_q,marketplace:n.name,scope:yq,pendingEnable:void 0,pendingUpdate:!1};u(mq),j("plugin-details"),zq.current=J,Gq.current=!0;return}}let e=wq.find((n)=>n.type==="failed-plugin"&&n.name===w);if(e&&e.type==="failed-plugin")j({type:"failed-plugin-details",plugin:{id:e.id,name:e.name,marketplace:e.marketplace,errors:e.errors,scope:e.scope}}),Gq.current=!0;if(!Gq.current&&J)Gq.current=!0,q(`Plugin "${H}" is not installed in this project`)}},[H,_,Hq,s,wq,J,q]);let Pq=async(w)=>{if(!A)return;let x=A.scope||"user",Yq=x==="builtin";if(Yq&&(w==="update"||w==="uninstall")){S("Built-in plugins cannot be updated or uninstalled.");return}if(!Yq&&!f8(x)&&w!=="update"){S("This plugin is managed by your organization. Contact your admin to disable it.");return}V(!0),S(null);try{let qq=`${A.plugin.name}@${A.marketplace}`,e;switch(w){case"enable":{let Rq=await z6(qq);if(!Rq.success)throw Error(Rq.message);break}case"disable":{let Rq=await Y6(qq);if(!Rq.success)throw Error(Rq.message);e=Rq.reverseDependents;break}case"uninstall":{if(Yq)break;if(!f8(x))break;if(ez(qq)){V(!1),j("confirm-project-uninstall");return}let Rq=sz().plugins[qq],Kq=!Rq||Rq.length<=1?await Qz(qq):null;if(Kq){V(!1),j({type:"confirm-data-cleanup",size:Kq});return}let jq=await J8(qq,x);if(!jq.success)throw Error(jq.message);e=jq.reverseDependents;break}case"update":{if(Yq)break;let Rq=await q7(qq,x);if(!Rq.success)throw Error(Rq.message);if(Rq.alreadyUpToDate){if(q(`${A.plugin.name} is already at the latest version (${Rq.newVersion}).`),Y)await Y();K({type:"menu"});return}break}}cq();let n=`${A.plugin.name}@${A.marketplace}`;if(uK()?.enabledPlugins?.[n]!==!1){V(!1),j({type:"plugin-options"});return}let yq=w==="enable"?"Enabled":w==="disable"?"Disabled":w==="update"?"Updated":"Uninstalled",mq=e&&e.length>0?` \xB7 required by ${e.join(", ")}`:"",HK=`\u2713 ${yq} ${A.plugin.name}${mq}. Run /reload-plugins to apply.`;if(q(HK),Y)await Y();K({type:"menu"})}catch(qq){V(!1);let e=qq instanceof Error?qq.message:String(qq);S(`Failed to ${w}: ${e}`),kK(xK(qq))}},Nq=g6(Pq);Nq.current=Pq,H8(()=>{if(G==="plugin-details"&&A&&zq.current){let w=zq.current;zq.current=void 0,Nq.current(w)}},[G,A]);let Zq=fK.useCallback(()=>{if(g>=C.length)return;let w=C[g];if(w?.type==="flagged-plugin")return;if(w?.type==="plugin"){let x=`${w.plugin.name}@${w.marketplace}`,Yq=uK(),qq=m.get(x),e=Yq?.enabledPlugins?.[x]!==!1,n=w.scope;if(n==="builtin"||f8(n)){let $q=new Map(m);if(qq)$q.delete(x),(async()=>{try{if(qq==="will-disable")await z6(x);else await Y6(x);cq()}catch(yq){kK(yq)}})();else $q.set(x,e?"will-disable":"will-enable"),(async()=>{try{if(e)await Y6(x);else await z6(x);cq()}catch(yq){kK(yq)}})();Aq($q)}}else if(w?.type==="mcp")B(w.client.name)},[g,C,m,Q,B]),bq=fK.useCallback(()=>{if(g>=C.length)return;let w=C[g];if(w?.type==="plugin"){let x=Q.find((Yq)=>Yq.plugin.name===w.plugin.name&&Yq.marketplace===w.marketplace);if(x)u(x),j("plugin-details"),i(0),S(null)}else if(w?.type==="flagged-plugin")j({type:"flagged-detail",plugin:{id:w.id,name:w.name,marketplace:w.marketplace,reason:w.reason,text:w.text,flaggedAt:w.flaggedAt}}),S(null);else if(w?.type==="failed-plugin")j({type:"failed-plugin-details",plugin:{id:w.id,name:w.name,marketplace:w.marketplace,errors:w.errors,scope:w.scope}}),i(0),S(null);else if(w?.type==="mcp")j({type:"mcp-detail",client:w.client}),S(null)},[g,C,Q]);pq({"select:previous":()=>{if(g===0)l(!0);else Jq.handleSelectionChange(g-1,Oq)},"select:next":()=>{if(g<C.length-1)Jq.handleSelectionChange(g+1,Oq)},"select:accept":bq},{context:"Select",isActive:G==="plugin-list"&&!v}),pq({"plugin:toggle":Zq},{context:"Plugin",isActive:G==="plugin-list"&&!v});let Iq=fK.useCallback(()=>{if(typeof G!=="object"||G.type!=="flagged-detail")return;Y7(G.plugin.id),j("plugin-list")},[G]);pq({"select:accept":Iq},{context:"Select",isActive:typeof G==="object"&&G.type==="flagged-detail"});let iq=fK.useMemo(()=>{if(G!=="plugin-details"||!A)return[];let w=uK(),x=`${A.plugin.name}@${A.marketplace}`,Yq=w?.enabledPlugins?.[x]!==!1,qq=A.marketplace==="builtin",e=[];if(e.push({label:Yq?"Disable plugin":"Enable plugin",action:()=>void Pq(Yq?"disable":"enable")}),!qq){if(e.push({label:A.pendingUpdate?"Unmark for update":"Mark for update",action:async()=>{try{let n=await ZY(A.plugin.name,A.marketplace);if(n){S(n);return}let _q=[...Q],$q=_q.findIndex((yq)=>yq.plugin.name===A.plugin.name&&yq.marketplace===A.marketplace);if($q!==-1)_q[$q].pendingUpdate=!A.pendingUpdate,r(_q),u({...A,pendingUpdate:!A.pendingUpdate})}catch(n){S(n instanceof Error?n.message:"Failed to check plugin update availability")}}}),E)e.push({label:"Configure",action:async()=>{Xq(!0);try{let n=A.plugin.manifest.mcpServers,_q=null;if(typeof n==="string"&&$K(n))_q=n;else if(Array.isArray(n)){for(let mq of n)if(typeof mq==="string"&&$K(mq)){_q=mq;break}}if(!_q){S("No MCPB file found in plugin"),Xq(!1);return}let $q=`${A.plugin.name}@${A.marketplace}`,yq=await x6(_q,A.plugin.path,$q,void 0,void 0,!0);if("status"in yq&&yq.status==="needs-config")L(yq),j("configuring");else S("Failed to load MCPB for configuration")}catch(n){let _q=Eq(n);S(`Failed to load configuration: ${_q}`)}finally{Xq(!1)}}});if(A.plugin.manifest.userConfig&&Object.keys(A.plugin.manifest.userConfig).length>0)e.push({label:"Configure options",action:()=>{j({type:"configuring-options",schema:A.plugin.manifest.userConfig})}});e.push({label:"Update now",action:()=>void Pq("update")}),e.push({label:"Uninstall",action:()=>void Pq("uninstall")})}if(A.plugin.manifest.homepage)e.push({label:"Open homepage",action:()=>void KK(A.plugin.manifest.homepage)});if(A.plugin.manifest.repository)e.push({label:"View repository",action:()=>void KK(A.plugin.manifest.repository)});return e.push({label:"Back to plugin list",action:()=>{j("plugin-list"),u(null),S(null)}}),e},[G,A,E,Q]);if(pq({"select:previous":()=>{if(T>0)i(T-1)},"select:next":()=>{if(T<iq.length-1)i(T+1)},"select:accept":()=>{if(iq[T])iq[T].action()}},{context:"Select",isActive:G==="plugin-details"&&!!A}),pq({"select:accept":()=>{if(typeof G==="object"&&G.type==="failed-plugin-details")(async()=>{V(!0),S(null);let w=G.plugin.id,x=G.plugin.scope,Yq=f8(x)?await J8(w,x,!1):await J8(w,"user",!1),qq=Yq.success;if(!qq){let e=["userSettings","projectSettings","localSettings"];for(let n of e){let _q=hK(n);if(_q?.enabledPlugins?.[w]!==void 0)VK(n,{enabledPlugins:{..._q.enabledPlugins,[w]:void 0}}),qq=!0}cq()}if(qq){if(Y)await Y();V(!1),j("plugin-list")}else V(!1),S(Yq.message)})()}},{context:"Select",isActive:typeof G==="object"&&G.type==="failed-plugin-details"&&G.plugin.scope!=="managed"}),pq({"confirm:yes":()=>{if(!A)return;V(!0),S(null);let w=`${A.plugin.name}@${A.marketplace}`,{error:x}=VK("localSettings",{enabledPlugins:{...hK("localSettings")?.enabledPlugins,[w]:!1}});if(x){V(!1),S(`Failed to write settings: ${x.message}`);return}if(cq(),q(`\u2713 Disabled ${A.plugin.name} in .claude/settings.local.json. Run /reload-plugins to apply.`),Y)Y();K({type:"menu"})},"confirm:no":()=>{j("plugin-details"),S(null)}},{context:"Confirmation",isActive:G==="confirm-project-uninstall"&&!!A&&!I}),qK((w,x)=>{if(!A)return;let Yq=`${A.plugin.name}@${A.marketplace}`,qq=A.scope;if(!qq||qq==="builtin"||!f8(qq))return;let e=async(n)=>{V(!0),S(null);try{let _q=await J8(Yq,qq,n);if(!_q.success)throw Error(_q.message);cq();let $q=n?"":" \xB7 data preserved";if(q(`${EK.tick} ${_q.message}${$q}`),Y)Y();K({type:"menu"})}catch(_q){V(!1),S(_q instanceof Error?_q.message:String(_q))}};if(w==="y"||w==="Y")e(!0);else if(w==="n"||w==="N")e(!1);else if(x.escape)j("plugin-details"),S(null)},{isActive:typeof G==="object"&&G.type==="confirm-data-cleanup"&&!!A&&!I}),fK.useEffect(()=>{Oq(0)},[N]),qK((w,x)=>{let Yq=!x.ctrl&&!x.meta;if(v)return;if(w==="/"&&Yq)l(!0),F(""),Oq(0);else if(Yq&&w.length>0&&!/^\s+$/.test(w)&&w!=="j"&&w!=="k"&&w!==" ")l(!0),F(w),Oq(0)},{isActive:G==="plugin-list"}),s)return M(z,{children:"Loading installed plugins\u2026"},void 0,!1,void 0,this);if(wq.length===0)return M(O,{flexDirection:"column",children:[M(O,{marginBottom:1,children:M(z,{bold:!0,children:"Manage plugins"},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(z,{children:"No plugins or MCP servers installed."},void 0,!1,void 0,this),M(O,{marginTop:1,children:M(z,{dimColor:!0,children:"Esc to go back"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(typeof G==="object"&&G.type==="plugin-options"&&A){let x=function(Yq){if(q(Yq),Y)Y();K({type:"menu"})},w=`${A.plugin.name}@${A.marketplace}`;return M(UK,{plugin:A.plugin,pluginId:w,onDone:(Yq,qq)=>{switch(Yq){case"configured":x(`\u2713 Enabled and configured ${A.plugin.name}. Run /reload-plugins to apply.`);break;case"skipped":x(`\u2713 Enabled ${A.plugin.name}. Run /reload-plugins to apply.`);break;case"error":x(`Failed to save configuration: ${qq}`);break}}},void 0,!1,void 0,this)}if(typeof G==="object"&&G.type==="configuring-options"&&A){let w=`${A.plugin.name}@${A.marketplace}`;return M(W8,{title:`Configure ${A.plugin.name}`,subtitle:"Plugin options",configSchema:G.schema,initialValues:y8(w),onSave:(x)=>{try{R8(w,x,G.schema),cq(),q("Configuration saved. Run /reload-plugins for changes to take effect.")}catch(Yq){S(`Failed to save configuration: ${Eq(Yq)}`)}j("plugin-details")},onCancel:()=>j("plugin-details")},void 0,!1,void 0,this)}if(G==="configuring"&&$&&A){let Yq=function(){L(null),j("plugin-details")},w=`${A.plugin.name}@${A.marketplace}`;async function x(qq){if(!$||!A)return;try{let e=A.plugin.manifest.mcpServers,n=null;if(typeof e==="string"&&$K(e))n=e;else if(Array.isArray(e)){for(let _q of e)if(typeof _q==="string"&&$K(_q)){n=_q;break}}if(!n){S("No MCPB file found"),j("plugin-details");return}await x6(n,A.plugin.path,w,void 0,qq),S(null),L(null),j("plugin-details"),q("Configuration saved. Run /reload-plugins for changes to take effect.")}catch(e){let n=Eq(e);S(`Failed to save configuration: ${n}`),j("plugin-details")}}return M(W8,{title:`Configure ${$.manifest.name}`,subtitle:`Plugin: ${A.plugin.name}`,configSchema:$.configSchema,initialValues:$.existingConfig,onSave:x,onCancel:Yq},void 0,!1,void 0,this)}if(typeof G==="object"&&G.type==="flagged-detail"){let w=G.plugin;return M(O,{flexDirection:"column",children:[M(O,{children:M(z,{bold:!0,children:[w.name," @ ",w.marketplace]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(O,{marginBottom:1,children:[M(z,{dimColor:!0,children:"Status: "},void 0,!1,void 0,this),M(z,{color:"error",children:"Removed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M(O,{marginBottom:1,flexDirection:"column",children:[M(z,{color:"error",children:["Removed from marketplace \xB7 reason: ",w.reason]},void 0,!0,void 0,this),M(z,{children:w.text},void 0,!1,void 0,this),M(z,{dimColor:!0,children:["Flagged on ",new Date(w.flaggedAt).toLocaleDateString()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M(O,{marginTop:1,flexDirection:"column",children:M(O,{children:[M(z,{children:[EK.pointer," "]},void 0,!0,void 0,this),M(z,{color:"suggestion",children:"Dismiss"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(Lq,{children:[M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"dismiss"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}if(G==="confirm-project-uninstall"&&A)return M(O,{flexDirection:"column",children:[M(z,{bold:!0,color:"warning",children:[A.plugin.name," is enabled in .claude/settings.json (shared with your team)"]},void 0,!0,void 0,this),M(O,{marginTop:1,flexDirection:"column",children:[M(z,{children:"Disable it just for you in .claude/settings.local.json?"},void 0,!1,void 0,this),M(z,{dimColor:!0,children:"This has the same effect as uninstalling, without affecting other contributors."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c&&M(O,{marginTop:1,children:M(z,{color:"error",children:c},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,children:I?M(z,{dimColor:!0,children:"Disabling\u2026"},void 0,!1,void 0,this):M(Lq,{children:[M(kq,{action:"confirm:yes",context:"Confirmation",fallback:"y",description:"disable"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(typeof G==="object"&&G.type==="confirm-data-cleanup"&&A)return M(O,{flexDirection:"column",children:[M(z,{bold:!0,children:[A.plugin.name," has ",G.size.human," of persistent data"]},void 0,!0,void 0,this),M(O,{marginTop:1,flexDirection:"column",children:[M(z,{children:"Delete it along with the plugin?"},void 0,!1,void 0,this),M(z,{dimColor:!0,children:lz(`${A.plugin.name}@${A.marketplace}`)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c&&M(O,{marginTop:1,children:M(z,{color:"error",children:c},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,children:I?M(z,{dimColor:!0,children:"Uninstalling\u2026"},void 0,!1,void 0,this):M(z,{children:[M(z,{bold:!0,children:"y"},void 0,!1,void 0,this)," to delete \xB7 ",M(z,{bold:!0,children:"n"},void 0,!1,void 0,this)," to keep \xB7"," ",M(z,{bold:!0,children:"esc"},void 0,!1,void 0,this)," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(G==="plugin-details"&&A){let w=uK(),x=`${A.plugin.name}@${A.marketplace}`,Yq=w?.enabledPlugins?.[x]!==!1,qq=P.filter((n)=>("plugin"in n)&&n.plugin===A.plugin.name||n.source===x||n.source.startsWith(`${A.plugin.name}@`)),e=qq.length===0?null:M(O,{flexDirection:"column",marginBottom:1,children:[M(z,{bold:!0,color:"error",children:[qq.length," ",Vq(qq.length,"error"),":"]},void 0,!0,void 0,this),qq.map((n,_q)=>{let $q=O8(n);return M(O,{flexDirection:"column",marginLeft:2,children:[M(z,{color:"error",children:mK(n)},void 0,!1,void 0,this),$q&&M(z,{dimColor:!0,italic:!0,children:[EK.arrowRight," ",$q]},void 0,!0,void 0,this)]},_q,!0,void 0,this)})]},void 0,!0,void 0,this);return M(O,{flexDirection:"column",children:[M(O,{children:M(z,{bold:!0,children:[A.plugin.name," @ ",A.marketplace]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(O,{children:[M(z,{dimColor:!0,children:"Scope: "},void 0,!1,void 0,this),M(z,{children:A.scope||"user"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),A.plugin.manifest.version&&M(O,{children:[M(z,{dimColor:!0,children:"Version: "},void 0,!1,void 0,this),M(z,{children:A.plugin.manifest.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),A.plugin.manifest.description&&M(O,{marginBottom:1,children:M(z,{children:A.plugin.manifest.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),A.plugin.manifest.author&&M(O,{children:[M(z,{dimColor:!0,children:"Author: "},void 0,!1,void 0,this),M(z,{children:A.plugin.manifest.author.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M(O,{marginBottom:1,children:[M(z,{dimColor:!0,children:"Status: "},void 0,!1,void 0,this),M(z,{color:Yq?"success":"warning",children:Yq?"Enabled":"Disabled"},void 0,!1,void 0,this),A.pendingUpdate&&M(z,{color:"suggestion",children:" \xB7 Marked for update"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M($Y,{plugin:A.plugin,marketplace:A.marketplace},void 0,!1,void 0,this),e,M(O,{marginTop:1,flexDirection:"column",children:iq.map((n,_q)=>{let $q=_q===T;return M(O,{children:[$q&&M(z,{children:[EK.pointer," "]},void 0,!0,void 0,this),!$q&&M(z,{children:" "},void 0,!1,void 0,this),M(z,{bold:$q,color:n.label.includes("Uninstall")?"error":n.label.includes("Update")?"suggestion":void 0,children:n.label},void 0,!1,void 0,this)]},_q,!0,void 0,this)})},void 0,!1,void 0,this),I&&M(O,{marginTop:1,children:M(z,{children:"Processing\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this),c&&M(O,{marginTop:1,children:M(z,{color:"error",children:c},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,children:M(z,{dimColor:!0,italic:!0,children:M(Lq,{children:[M(kq,{action:"select:previous",context:"Select",fallback:"\u2191",description:"navigate"},void 0,!1,void 0,this),M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(typeof G==="object"&&G.type==="failed-plugin-details"){let w=G.plugin,x=w.errors[0],Yq=x?mK(x):"Failed to load";return M(O,{flexDirection:"column",children:[M(z,{children:[M(z,{bold:!0,children:w.name},void 0,!1,void 0,this),M(z,{dimColor:!0,children:[" @ ",w.marketplace]},void 0,!0,void 0,this),M(z,{dimColor:!0,children:[" (",w.scope,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M(z,{color:"error",children:Yq},void 0,!1,void 0,this),w.scope==="managed"?M(O,{marginTop:1,children:M(z,{dimColor:!0,children:"Managed by your organization \u2014 contact your admin"},void 0,!1,void 0,this)},void 0,!1,void 0,this):M(O,{marginTop:1,children:[M(z,{color:"suggestion",children:[EK.pointer," "]},void 0,!0,void 0,this),M(z,{bold:!0,children:"Remove"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),I&&M(z,{children:"Processing\u2026"},void 0,!1,void 0,this),c&&M(z,{color:"error",children:c},void 0,!1,void 0,this),M(O,{marginTop:1,children:M(z,{dimColor:!0,italic:!0,children:M(Lq,{children:[w.scope!=="managed"&&M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"remove"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(typeof G==="object"&&G.type==="mcp-detail"){let w=G.client,x=q6(W,w.name).length,Yq=()=>{j({type:"mcp-tools",client:w})},qq=()=>{j("plugin-list")},e=($q)=>{if($q)q($q);j("plugin-list")},n=w.config.scope,_q=w.config.type;if(_q==="stdio"){let $q={name:w.name,client:w,scope:n,transport:"stdio",config:w.config};return M(dz,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}else if(_q==="sse"){let $q={name:w.name,client:w,scope:n,transport:"sse",isAuthenticated:void 0,config:w.config};return M(Q8,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}else if(_q==="http"){let $q={name:w.name,client:w,scope:n,transport:"http",isAuthenticated:void 0,config:w.config};return M(Q8,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}else if(_q==="claudeai-proxy"){let $q={name:w.name,client:w,scope:n,transport:"claudeai-proxy",isAuthenticated:void 0,config:w.config};return M(Q8,{server:$q,serverToolsCount:x,onViewTools:Yq,onCancel:qq,onComplete:e,borderless:!0},void 0,!1,void 0,this)}return j("plugin-list"),null}if(typeof G==="object"&&G.type==="mcp-tools"){let w=G.client,x=w.config.scope,Yq=w.config.type,qq;if(Yq==="stdio")qq={name:w.name,client:w,scope:x,transport:"stdio",config:w.config};else if(Yq==="sse")qq={name:w.name,client:w,scope:x,transport:"sse",isAuthenticated:void 0,config:w.config};else if(Yq==="http")qq={name:w.name,client:w,scope:x,transport:"http",isAuthenticated:void 0,config:w.config};else qq={name:w.name,client:w,scope:x,transport:"claudeai-proxy",isAuthenticated:void 0,config:w.config};return M(oz,{server:qq,onSelectTool:(e)=>{j({type:"mcp-tool-detail",client:w,tool:e})},onBack:()=>j({type:"mcp-detail",client:w})},void 0,!1,void 0,this)}if(typeof G==="object"&&G.type==="mcp-tool-detail"){let{client:w,tool:x}=G,Yq=w.config.scope,qq=w.config.type,e;if(qq==="stdio")e={name:w.name,client:w,scope:Yq,transport:"stdio",config:w.config};else if(qq==="sse")e={name:w.name,client:w,scope:Yq,transport:"sse",isAuthenticated:void 0,config:w.config};else if(qq==="http")e={name:w.name,client:w,scope:Yq,transport:"http",isAuthenticated:void 0,config:w.config};else e={name:w.name,client:w,scope:Yq,transport:"claudeai-proxy",isAuthenticated:void 0,config:w.config};return M(xz,{tool:x,server:e,onBack:()=>j({type:"mcp-tools",client:w})},void 0,!1,void 0,this)}let ZK=Jq.getVisibleItems(C);return M(O,{flexDirection:"column",children:[M(O,{marginBottom:1,children:M(u8,{query:N,isFocused:v,isTerminalFocused:U,width:Wq-4,cursorOffset:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this),C.length===0&&N&&M(O,{marginBottom:1,children:M(z,{dimColor:!0,children:['No items match "',N,'"']},void 0,!0,void 0,this)},void 0,!1,void 0,this),Jq.scrollPosition.canScrollUp&&M(O,{children:M(z,{dimColor:!0,children:[" ",EK.arrowUp," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),ZK.map((w,x)=>{let qq=Jq.toActualIndex(x)===g&&!v,e=x>0?ZK[x-1]:null,n=!e||e.scope!==w.scope,_q=($q)=>{switch($q){case"flagged":return"Flagged";case"project":return"Project";case"local":return"Local";case"user":return"User";case"enterprise":return"Enterprise";case"managed":return"Managed";case"builtin":return"Built-in";case"dynamic":return"Built-in";default:return $q}};return M(fK.Fragment,{children:[n&&M(O,{marginTop:x>0?1:0,paddingLeft:2,children:M(z,{dimColor:w.scope!=="flagged",color:w.scope==="flagged"?"warning":void 0,bold:w.scope==="flagged",children:_q(w.scope)},void 0,!1,void 0,this)},void 0,!1,void 0,this),M(az,{item:w,isSelected:qq},void 0,!1,void 0,this)]},w.id,!0,void 0,this)}),Jq.scrollPosition.canScrollDown&&M(O,{children:M(z,{dimColor:!0,children:[" ",EK.arrowDown," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),M(O,{marginTop:1,marginLeft:1,children:M(z,{dimColor:!0,italic:!0,children:M(Lq,{children:[M(z,{children:"type to search"},void 0,!1,void 0,this),M(kq,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"},void 0,!1,void 0,this),M(kq,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"},void 0,!1,void 0,this),M(kq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),m.size>0&&M(O,{marginLeft:1,children:M(z,{dimColor:!0,italic:!0,children:"Run /reload-plugins to apply changes"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f7=uq(()=>{zK();YK();Iz();Ez();cz();Fz();hz();Jz();v6();Bq();DK();GY();d6();i8();PY();h8();D8();S8();h6();wK();T8();cK();$6();oK();zz();XY();_Y();MY();G6();Oz();J6();tz();y6();WY();PK();E6();W6();b8();nz();m8()});function H7(K){if(!K)return{type:"menu"};let q=K.trim().split(/\s+/);switch(q[0]?.toLowerCase()){case"help":case"--help":case"-h":return{type:"help"};case"install":case"i":{let f=q[1];if(!f)return{type:"install"};if(f.includes("@")){let[_,J]=f.split("@");return{type:"install",plugin:_,marketplace:J}}if(f.startsWith("http://")||f.startsWith("https://")||f.startsWith("file://")||f.includes("/")||f.includes("\\"))return{type:"install",marketplace:f};return{type:"install",plugin:f}}case"manage":return{type:"manage"};case"uninstall":return{type:"uninstall",plugin:q[1]};case"enable":return{type:"enable",plugin:q[1]};case"disable":return{type:"disable",plugin:q[1]};case"validate":return{type:"validate",path:q.slice(1).join(" ").trim()||void 0};case"marketplace":case"market":{let f=q[1]?.toLowerCase(),H=q.slice(2).join(" ");switch(f){case"add":return{type:"marketplace",action:"add",target:H};case"remove":case"rm":return{type:"marketplace",action:"remove",target:H};case"update":return{type:"marketplace",action:"update",target:H};case"list":return{type:"marketplace",action:"list"};default:return{type:"marketplace"}}}default:return{type:"menu"}}}var w7=()=>{};import{c as jY}from"react/compiler-runtime";import CK from"figures";import{useEffect as yY}from"react";import{jsxDEV as k7}from"react/jsx-dev-runtime";function W7(K){let q=jY(5),{onComplete:Y,path:f}=K,H,_;if(q[0]!==Y||q[1]!==f)H=()=>{(async function(){if(!f){Y(`Usage: /plugin validate <path>
3
3
 
4
4
  Validate a plugin or marketplace manifest file or directory.
5
5