@claudiolabs/claudin 0.5.7
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.
- package/LICENSE +207 -0
- package/README.md +91 -0
- package/bin/claudin +152 -0
- package/dist/chunks/AgentTool-0.5.7-0krqsszm.mjs +1 -0
- package/dist/chunks/App-0.5.7-k8c6xsbz.mjs +1 -0
- package/dist/chunks/ApproveApiKey-0.5.7-djmd358f.mjs +1 -0
- package/dist/chunks/AssistantSessionChooser-0.5.7-40f5p134.mjs +1 -0
- package/dist/chunks/AutoModeOptInDialog-0.5.7-dgpfkf7n.mjs +1 -0
- package/dist/chunks/BypassPermissionsModeDialog-0.5.7-m2n3zekg.mjs +1 -0
- package/dist/chunks/ClaudeMdExternalIncludesDialog-0.5.7-8p2b9258.mjs +1 -0
- package/dist/chunks/ConsoleOAuthFlow-0.5.7-e11rkgsy.mjs +1 -0
- package/dist/chunks/DiffDialog-0.5.7-df3q0dyx.mjs +3 -0
- package/dist/chunks/Doctor-0.5.7-996gqph8.mjs +1 -0
- package/dist/chunks/Grove-0.5.7-7xphv8qp.mjs +1 -0
- package/dist/chunks/ITermBackend-0.5.7-rv5t26my.mjs +1 -0
- package/dist/chunks/InvalidConfigDialog-0.5.7-76awdeqe.mjs +1 -0
- package/dist/chunks/InvalidSettingsDialog-0.5.7-d59ky2sv.mjs +1 -0
- package/dist/chunks/MigrationDialog-0.5.7-nkkcryn5.mjs +1 -0
- package/dist/chunks/Onboarding-0.5.7-v3jtvbkn.mjs +1 -0
- package/dist/chunks/ProviderManager-0.5.7-92navbez.mjs +1 -0
- package/dist/chunks/REPL-0.5.7-6zag11mg.mjs +1 -0
- package/dist/chunks/ResumeConversation-0.5.7-hpgm4f1s.mjs +1 -0
- package/dist/chunks/SnapshotUpdateDialog-0.5.7-xrverbhp.mjs +1 -0
- package/dist/chunks/TeleportProgress-0.5.7-xn5z7dt4.mjs +1 -0
- package/dist/chunks/TeleportRepoMismatchDialog-0.5.7-s29rrsak.mjs +1 -0
- package/dist/chunks/TeleportResumeWrapper-0.5.7-3r5mn1za.mjs +1 -0
- package/dist/chunks/TmuxBackend-0.5.7-k3c0537z.mjs +9 -0
- package/dist/chunks/ToolSearchTool-0.5.7-mybq3qz5.mjs +1 -0
- package/dist/chunks/TrustDialog-0.5.7-r4dhznyf.mjs +1 -0
- package/dist/chunks/activeProvider-0.5.7-8emdm8j8.mjs +1 -0
- package/dist/chunks/add-dir-0.5.7-jwaavdc7.mjs +1 -0
- package/dist/chunks/agents-0.5.7-e7dajmrs.mjs +110 -0
- package/dist/chunks/agents-0.5.7-q2vtj7pt.mjs +3 -0
- package/dist/chunks/api-0.5.7-j8bn129y.mjs +1 -0
- package/dist/chunks/asciicast-0.5.7-rp1h8swq.mjs +1 -0
- package/dist/chunks/assistant-0.5.7-sfk22b3z.mjs +1 -0
- package/dist/chunks/auth-0.5.7-ez3n1qpx.mjs +1 -0
- package/dist/chunks/auth-0.5.7-khssh83t.mjs +1 -0
- package/dist/chunks/autoMode-0.5.7-ezn856pd.mjs +48 -0
- package/dist/chunks/autoUpdater-0.5.7-dkw2aw1e.mjs +1 -0
- package/dist/chunks/backgroundHousekeeping-0.5.7-9ejvx75r.mjs +1 -0
- package/dist/chunks/branch-0.5.7-cjbtbwg1.mjs +4 -0
- package/dist/chunks/bridgePointer-0.5.7-5z0vqchx.mjs +1 -0
- package/dist/chunks/btw-0.5.7-p3kbd1wf.mjs +1 -0
- package/dist/chunks/buddy-0.5.7-pa55rfb4.mjs +3 -0
- package/dist/chunks/cacache-0.5.7-anq54jwq.mjs +1 -0
- package/dist/chunks/cache-probe-0.5.7-6j5hzxc4.mjs +21 -0
- package/dist/chunks/cacheStats-0.5.7-e1byp2n2.mjs +4 -0
- package/dist/chunks/caches-0.5.7-w8n6wxaj.mjs +1 -0
- package/dist/chunks/claudeDesktop-0.5.7-5kkyx4pz.mjs +1 -0
- package/dist/chunks/claudemd-0.5.7-jb7byep9.mjs +1 -0
- package/dist/chunks/clear-0.5.7-tkh04z2c.mjs +1 -0
- package/dist/chunks/clearTerminal-0.5.7-mbqev32s.mjs +1 -0
- package/dist/chunks/cli-0.5.7-023jpnwm.mjs +2 -0
- package/dist/chunks/cli-0.5.7-08mn1pmc.mjs +5 -0
- package/dist/chunks/cli-0.5.7-0bv1xcbe.mjs +21 -0
- package/dist/chunks/cli-0.5.7-0df5m6td.mjs +2 -0
- package/dist/chunks/cli-0.5.7-0rvzfmhb.mjs +2 -0
- package/dist/chunks/cli-0.5.7-0s7wtvbz.mjs +2 -0
- package/dist/chunks/cli-0.5.7-1fmgwk5c.mjs +2 -0
- package/dist/chunks/cli-0.5.7-1kmeaqmc.mjs +2 -0
- package/dist/chunks/cli-0.5.7-20cz322w.mjs +2 -0
- package/dist/chunks/cli-0.5.7-23hg3t0h.mjs +2 -0
- package/dist/chunks/cli-0.5.7-258ytmbr.mjs +2 -0
- package/dist/chunks/cli-0.5.7-26pwg6gg.mjs +2 -0
- package/dist/chunks/cli-0.5.7-2h4rgwc9.mjs +2 -0
- package/dist/chunks/cli-0.5.7-2qxsy7jq.mjs +12 -0
- package/dist/chunks/cli-0.5.7-2tnvc3ka.mjs +2 -0
- package/dist/chunks/cli-0.5.7-2xm61gkr.mjs +5 -0
- package/dist/chunks/cli-0.5.7-2ytftsg5.mjs +2 -0
- package/dist/chunks/cli-0.5.7-31969syr.mjs +2 -0
- package/dist/chunks/cli-0.5.7-31hdc2nc.mjs +2 -0
- package/dist/chunks/cli-0.5.7-35yf0b84.mjs +2 -0
- package/dist/chunks/cli-0.5.7-3jrq7w6x.mjs +2 -0
- package/dist/chunks/cli-0.5.7-3xssm25z.mjs +2 -0
- package/dist/chunks/cli-0.5.7-469r2a5r.mjs +193 -0
- package/dist/chunks/cli-0.5.7-4eg4pktt.mjs +2 -0
- package/dist/chunks/cli-0.5.7-4gmpny6k.mjs +133 -0
- package/dist/chunks/cli-0.5.7-4zv4np07.mjs +2 -0
- package/dist/chunks/cli-0.5.7-500c5b8m.mjs +4 -0
- package/dist/chunks/cli-0.5.7-52mwnwy6.mjs +58 -0
- package/dist/chunks/cli-0.5.7-55zn2cct.mjs +4 -0
- package/dist/chunks/cli-0.5.7-5736yt36.mjs +2 -0
- package/dist/chunks/cli-0.5.7-5aghfr8k.mjs +3 -0
- package/dist/chunks/cli-0.5.7-5by4fby4.mjs +2 -0
- package/dist/chunks/cli-0.5.7-5e5xfeq6.mjs +2 -0
- package/dist/chunks/cli-0.5.7-5jaayymr.mjs +17 -0
- package/dist/chunks/cli-0.5.7-5jms2g5g.mjs +2 -0
- package/dist/chunks/cli-0.5.7-5kv9dgvn.mjs +2 -0
- package/dist/chunks/cli-0.5.7-5mrw857q.mjs +4 -0
- package/dist/chunks/cli-0.5.7-5q6tfz39.mjs +2 -0
- package/dist/chunks/cli-0.5.7-650e2qk4.mjs +18 -0
- package/dist/chunks/cli-0.5.7-67xxeffj.mjs +2 -0
- package/dist/chunks/cli-0.5.7-6d26vvaa.mjs +2 -0
- package/dist/chunks/cli-0.5.7-6g3w68ks.mjs +2 -0
- package/dist/chunks/cli-0.5.7-6gfay8ap.mjs +2 -0
- package/dist/chunks/cli-0.5.7-6gkpb0vw.mjs +2 -0
- package/dist/chunks/cli-0.5.7-6pssgqdn.mjs +2 -0
- package/dist/chunks/cli-0.5.7-6thqe6p4.mjs +3 -0
- package/dist/chunks/cli-0.5.7-73er78b7.mjs +15 -0
- package/dist/chunks/cli-0.5.7-7a9gq9ff.mjs +2 -0
- package/dist/chunks/cli-0.5.7-7hm7dxyp.mjs +2 -0
- package/dist/chunks/cli-0.5.7-7k456xwn.mjs +3 -0
- package/dist/chunks/cli-0.5.7-7mmyazqh.mjs +34 -0
- package/dist/chunks/cli-0.5.7-7rgsmfw7.mjs +3 -0
- package/dist/chunks/cli-0.5.7-7wyhqw17.mjs +2 -0
- package/dist/chunks/cli-0.5.7-82x8qaxx.mjs +2 -0
- package/dist/chunks/cli-0.5.7-89fcvfy0.mjs +2 -0
- package/dist/chunks/cli-0.5.7-8ac9d7r6.mjs +2 -0
- package/dist/chunks/cli-0.5.7-8ap24w7a.mjs +2 -0
- package/dist/chunks/cli-0.5.7-8e61g5bq.mjs +10 -0
- package/dist/chunks/cli-0.5.7-8sbq2qed.mjs +2 -0
- package/dist/chunks/cli-0.5.7-8sqyymdb.mjs +2 -0
- package/dist/chunks/cli-0.5.7-8ychjqct.mjs +16 -0
- package/dist/chunks/cli-0.5.7-93eaxn9a.mjs +2 -0
- package/dist/chunks/cli-0.5.7-93k1z52y.mjs +2 -0
- package/dist/chunks/cli-0.5.7-9acdh8nc.mjs +2 -0
- package/dist/chunks/cli-0.5.7-9jck3vts.mjs +15 -0
- package/dist/chunks/cli-0.5.7-9rbmn26q.mjs +24 -0
- package/dist/chunks/cli-0.5.7-9sysdak3.mjs +2 -0
- package/dist/chunks/cli-0.5.7-9ysat94v.mjs +2 -0
- package/dist/chunks/cli-0.5.7-9z55nm22.mjs +3 -0
- package/dist/chunks/cli-0.5.7-9zwbnq8g.mjs +2 -0
- package/dist/chunks/cli-0.5.7-a47hzz3r.mjs +2 -0
- package/dist/chunks/cli-0.5.7-aq7a3646.mjs +2 -0
- package/dist/chunks/cli-0.5.7-ayjrdmrk.mjs +2 -0
- package/dist/chunks/cli-0.5.7-b51h487f.mjs +2 -0
- package/dist/chunks/cli-0.5.7-bkptgahs.mjs +4 -0
- package/dist/chunks/cli-0.5.7-bnapjxz4.mjs +2 -0
- package/dist/chunks/cli-0.5.7-bzrvdrq4.mjs +2 -0
- package/dist/chunks/cli-0.5.7-c1mv1399.mjs +2 -0
- package/dist/chunks/cli-0.5.7-c9dtw94k.mjs +2 -0
- package/dist/chunks/cli-0.5.7-cakvh73p.mjs +2 -0
- package/dist/chunks/cli-0.5.7-d19d4v07.mjs +2 -0
- package/dist/chunks/cli-0.5.7-d4gtv7f7.mjs +2 -0
- package/dist/chunks/cli-0.5.7-de90yre1.mjs +2 -0
- package/dist/chunks/cli-0.5.7-dntg9qbj.mjs +133 -0
- package/dist/chunks/cli-0.5.7-dp3z7wkh.mjs +2 -0
- package/dist/chunks/cli-0.5.7-dr7n1fyv.mjs +20 -0
- package/dist/chunks/cli-0.5.7-e8eqdfnf.mjs +2 -0
- package/dist/chunks/cli-0.5.7-eer6xagb.mjs +2 -0
- package/dist/chunks/cli-0.5.7-esx85d2g.mjs +2 -0
- package/dist/chunks/cli-0.5.7-eyemfxtz.mjs +2 -0
- package/dist/chunks/cli-0.5.7-fx3gesdm.mjs +2 -0
- package/dist/chunks/cli-0.5.7-g2dd5t6j.mjs +2 -0
- package/dist/chunks/cli-0.5.7-g4n7dg2d.mjs +9 -0
- package/dist/chunks/cli-0.5.7-g7k0r0ea.mjs +5 -0
- package/dist/chunks/cli-0.5.7-g8dqk0se.mjs +2 -0
- package/dist/chunks/cli-0.5.7-gcnk0vke.mjs +6 -0
- package/dist/chunks/cli-0.5.7-gnq8vh0c.mjs +2 -0
- package/dist/chunks/cli-0.5.7-gy4csxb5.mjs +2 -0
- package/dist/chunks/cli-0.5.7-h9v4tqbs.mjs +24 -0
- package/dist/chunks/cli-0.5.7-hdcnw5y4.mjs +2 -0
- package/dist/chunks/cli-0.5.7-hhre0h51.mjs +2 -0
- package/dist/chunks/cli-0.5.7-hp25yk8y.mjs +2 -0
- package/dist/chunks/cli-0.5.7-hq4wbper.mjs +11 -0
- package/dist/chunks/cli-0.5.7-hw11qa05.mjs +3 -0
- package/dist/chunks/cli-0.5.7-hw3pyj8g.mjs +2 -0
- package/dist/chunks/cli-0.5.7-j7h72bgz.mjs +2 -0
- package/dist/chunks/cli-0.5.7-j8q5bja8.mjs +2 -0
- package/dist/chunks/cli-0.5.7-jf3f8gen.mjs +2 -0
- package/dist/chunks/cli-0.5.7-jga8kgpr.mjs +2 -0
- package/dist/chunks/cli-0.5.7-jptzskw1.mjs +2 -0
- package/dist/chunks/cli-0.5.7-jw2te6th.mjs +2 -0
- package/dist/chunks/cli-0.5.7-k11mzgcb.mjs +2 -0
- package/dist/chunks/cli-0.5.7-kctf48t4.mjs +7 -0
- package/dist/chunks/cli-0.5.7-knkzkqbw.mjs +2 -0
- package/dist/chunks/cli-0.5.7-kp9pg4sr.mjs +2 -0
- package/dist/chunks/cli-0.5.7-kvazvrra.mjs +2 -0
- package/dist/chunks/cli-0.5.7-ky5khwx2.mjs +2 -0
- package/dist/chunks/cli-0.5.7-m0841vt9.mjs +2 -0
- package/dist/chunks/cli-0.5.7-m4ekdyhj.mjs +2 -0
- package/dist/chunks/cli-0.5.7-m4wwfa6q.mjs +2 -0
- package/dist/chunks/cli-0.5.7-m5q27x96.mjs +2 -0
- package/dist/chunks/cli-0.5.7-m82d23hf.mjs +2 -0
- package/dist/chunks/cli-0.5.7-mdcw5fyw.mjs +4 -0
- package/dist/chunks/cli-0.5.7-mz4njeb9.mjs +39 -0
- package/dist/chunks/cli-0.5.7-mzfr99sc.mjs +67 -0
- package/dist/chunks/cli-0.5.7-p381d4sx.mjs +3 -0
- package/dist/chunks/cli-0.5.7-p4mv49ab.mjs +25 -0
- package/dist/chunks/cli-0.5.7-pse9qff7.mjs +2 -0
- package/dist/chunks/cli-0.5.7-pzjz115k.mjs +2 -0
- package/dist/chunks/cli-0.5.7-q0pq4367.mjs +9 -0
- package/dist/chunks/cli-0.5.7-q2e6xpch.mjs +5281 -0
- package/dist/chunks/cli-0.5.7-q6sgd9ng.mjs +12 -0
- package/dist/chunks/cli-0.5.7-q8v8naf8.mjs +2 -0
- package/dist/chunks/cli-0.5.7-qdcp748z.mjs +2 -0
- package/dist/chunks/cli-0.5.7-qdqrgv1q.mjs +2 -0
- package/dist/chunks/cli-0.5.7-qk0n5hqa.mjs +9 -0
- package/dist/chunks/cli-0.5.7-r4cdt1b9.mjs +50 -0
- package/dist/chunks/cli-0.5.7-ra5kv4tw.mjs +2 -0
- package/dist/chunks/cli-0.5.7-rb75eq83.mjs +2 -0
- package/dist/chunks/cli-0.5.7-rggstqv6.mjs +2 -0
- package/dist/chunks/cli-0.5.7-rr1yd8f3.mjs +4 -0
- package/dist/chunks/cli-0.5.7-rzts2ke3.mjs +2 -0
- package/dist/chunks/cli-0.5.7-s09knvta.mjs +3 -0
- package/dist/chunks/cli-0.5.7-s5nd54ga.mjs +3 -0
- package/dist/chunks/cli-0.5.7-sb3fjts4.mjs +2 -0
- package/dist/chunks/cli-0.5.7-sjd6g3n6.mjs +15 -0
- package/dist/chunks/cli-0.5.7-sjx0wm99.mjs +2 -0
- package/dist/chunks/cli-0.5.7-skfm51ta.mjs +44 -0
- package/dist/chunks/cli-0.5.7-sx7pr75m.mjs +2 -0
- package/dist/chunks/cli-0.5.7-t6mtpr04.mjs +2 -0
- package/dist/chunks/cli-0.5.7-t8z48kc2.mjs +4 -0
- package/dist/chunks/cli-0.5.7-tbga87q3.mjs +2 -0
- package/dist/chunks/cli-0.5.7-tc3vm4ra.mjs +2 -0
- package/dist/chunks/cli-0.5.7-tgq7dtyz.mjs +2 -0
- package/dist/chunks/cli-0.5.7-tpjjm1z2.mjs +45 -0
- package/dist/chunks/cli-0.5.7-tqn2ged5.mjs +2 -0
- package/dist/chunks/cli-0.5.7-twqt7rxq.mjs +6 -0
- package/dist/chunks/cli-0.5.7-vgc7nzef.mjs +2 -0
- package/dist/chunks/cli-0.5.7-vk8p3n59.mjs +2 -0
- package/dist/chunks/cli-0.5.7-vn5aht50.mjs +2 -0
- package/dist/chunks/cli-0.5.7-vvrg78m6.mjs +2 -0
- package/dist/chunks/cli-0.5.7-vy4r02pg.mjs +4 -0
- package/dist/chunks/cli-0.5.7-vyxaeh82.mjs +2 -0
- package/dist/chunks/cli-0.5.7-w024nwsf.mjs +2 -0
- package/dist/chunks/cli-0.5.7-w16wj21h.mjs +2 -0
- package/dist/chunks/cli-0.5.7-w1bf9y93.mjs +3 -0
- package/dist/chunks/cli-0.5.7-w2fb8g6y.mjs +2 -0
- package/dist/chunks/cli-0.5.7-w50j12vv.mjs +2 -0
- package/dist/chunks/cli-0.5.7-w6nex68w.mjs +2 -0
- package/dist/chunks/cli-0.5.7-wz2cbwxt.mjs +4 -0
- package/dist/chunks/cli-0.5.7-x0n9mq65.mjs +2 -0
- package/dist/chunks/cli-0.5.7-x1azmh1g.mjs +2 -0
- package/dist/chunks/cli-0.5.7-x1w96j6d.mjs +59 -0
- package/dist/chunks/cli-0.5.7-x7dabprd.mjs +2 -0
- package/dist/chunks/cli-0.5.7-x8t1aeey.mjs +2 -0
- package/dist/chunks/cli-0.5.7-xepvraxn.mjs +2 -0
- package/dist/chunks/cli-0.5.7-xn6deh04.mjs +6 -0
- package/dist/chunks/cli-0.5.7-y2vc4xb6.mjs +12 -0
- package/dist/chunks/cli-0.5.7-y3pa8ttm.mjs +2 -0
- package/dist/chunks/cli-0.5.7-yaywev87.mjs +2 -0
- package/dist/chunks/cli-0.5.7-ycj2xr53.mjs +3 -0
- package/dist/chunks/cli-0.5.7-yzncgfs4.mjs +18 -0
- package/dist/chunks/cli-0.5.7-z1n09m4p.mjs +2 -0
- package/dist/chunks/cli-0.5.7-z97pranc.mjs +2 -0
- package/dist/chunks/cli-0.5.7-za19q18c.mjs +2 -0
- package/dist/chunks/cli-0.5.7-zb8ztx8p.mjs +2 -0
- package/dist/chunks/cli-0.5.7-zkw2fx86.mjs +2 -0
- package/dist/chunks/client-0.5.7-bqw74z29.mjs +1 -0
- package/dist/chunks/color-0.5.7-v1s3bvcj.mjs +1 -0
- package/dist/chunks/compact-0.5.7-7kxsprp5.mjs +3 -0
- package/dist/chunks/config-0.5.7-e41nnxnm.mjs +1 -0
- package/dist/chunks/config-0.5.7-q40ykcbb.mjs +1 -0
- package/dist/chunks/context-0.5.7-qvcehmj5.mjs +1 -0
- package/dist/chunks/context-noninteractive-0.5.7-02tkje0w.mjs +1 -0
- package/dist/chunks/conversation-0.5.7-h7r20gzw.mjs +1 -0
- package/dist/chunks/copy-0.5.7-p3xxq9b3.mjs +9 -0
- package/dist/chunks/cost-0.5.7-s3rzm0vd.mjs +1 -0
- package/dist/chunks/createSSHSession-0.5.7-s9fc5f1h.mjs +1 -0
- package/dist/chunks/createSession-0.5.7-4e64teqm.mjs +1 -0
- package/dist/chunks/debug-0.5.7-v8bqkmzm.mjs +1 -0
- package/dist/chunks/desktop-0.5.7-tna0yskx.mjs +1 -0
- package/dist/chunks/detectRepository-0.5.7-3dy7yz89.mjs +1 -0
- package/dist/chunks/detection-0.5.7-39zsjy8t.mjs +1 -0
- package/dist/chunks/diff-0.5.7-9ywmnxmx.mjs +1 -0
- package/dist/chunks/doctor-0.5.7-ty5zxpem.mjs +1 -0
- package/dist/chunks/doctorDiagnostic-0.5.7-g458bh9g.mjs +1 -0
- package/dist/chunks/earlyInput-0.5.7-x73yj3dn.mjs +1 -0
- package/dist/chunks/effort-0.5.7-h76k43fj.mjs +10 -0
- package/dist/chunks/envUtils-0.5.7-w1t7akfc.mjs +1 -0
- package/dist/chunks/environmentSelection-0.5.7-5dsnr0sv.mjs +1 -0
- package/dist/chunks/environments-0.5.7-pqh2gnjb.mjs +1 -0
- package/dist/chunks/errors-0.5.7-pa0hz043.mjs +1 -0
- package/dist/chunks/exampleCommands-0.5.7-3dtjxdad.mjs +1 -0
- package/dist/chunks/exit-0.5.7-0wrw77gk.mjs +1 -0
- package/dist/chunks/export-0.5.7-zw9rbf4j.mjs +2 -0
- package/dist/chunks/extra-usage-0.5.7-rfya84j0.mjs +1 -0
- package/dist/chunks/extra-usage-noninteractive-0.5.7-a1b9ndnm.mjs +1 -0
- package/dist/chunks/fast-0.5.7-2p6srbep.mjs +1 -0
- package/dist/chunks/feedback-0.5.7-181z18rn.mjs +14 -0
- package/dist/chunks/firstPartyEventLogger-0.5.7-xndd9dd0.mjs +1 -0
- package/dist/chunks/git-0.5.7-7gyptyxn.mjs +1 -0
- package/dist/chunks/githubModelsCredentials-0.5.7-9zhn44n6.mjs +1 -0
- package/dist/chunks/growthbook-0.5.7-1mynkk8j.mjs +1 -0
- package/dist/chunks/headless-0.5.7-9f87m6f5.mjs +2 -0
- package/dist/chunks/heapdump-0.5.7-ns6mqawv.mjs +6 -0
- package/dist/chunks/help-0.5.7-px56h6fs.mjs +1 -0
- package/dist/chunks/hookChains-0.5.7-1a6qvexe.mjs +3 -0
- package/dist/chunks/hooks-0.5.7-azm2m6rs.mjs +79 -0
- package/dist/chunks/hooks-0.5.7-fyp8e3f5.mjs +1 -0
- package/dist/chunks/ide-0.5.7-v9hbn8cp.mjs +3 -0
- package/dist/chunks/image-processor-napi-0.5.7-e41p58ef.mjs +1 -0
- package/dist/chunks/index-0.5.7-0tncgnn3.mjs +1 -0
- package/dist/chunks/index-0.5.7-30mrmtkn.mjs +1 -0
- package/dist/chunks/index-0.5.7-62s7cp1b.mjs +1 -0
- package/dist/chunks/index-0.5.7-69akvbm4.mjs +1 -0
- package/dist/chunks/index-0.5.7-6y6f5cws.mjs +1 -0
- package/dist/chunks/index-0.5.7-7w3agvzm.mjs +10 -0
- package/dist/chunks/index-0.5.7-8jwymzr6.mjs +1 -0
- package/dist/chunks/index-0.5.7-8m53gyr6.mjs +9 -0
- package/dist/chunks/index-0.5.7-ct6jw15p.mjs +2 -0
- package/dist/chunks/index-0.5.7-dr470b86.mjs +1 -0
- package/dist/chunks/index-0.5.7-e4rvp0fn.mjs +1 -0
- package/dist/chunks/index-0.5.7-fkw6rn8z.mjs +1 -0
- package/dist/chunks/index-0.5.7-h1xjcbtb.mjs +1 -0
- package/dist/chunks/index-0.5.7-ma3xmxv3.mjs +2 -0
- package/dist/chunks/index-0.5.7-qn7zmh31.mjs +9 -0
- package/dist/chunks/index-0.5.7-rd44m0e6.mjs +30 -0
- package/dist/chunks/index-0.5.7-te1s21zz.mjs +5 -0
- package/dist/chunks/index-0.5.7-vm9zmzmr.mjs +1 -0
- package/dist/chunks/index-0.5.7-wpffxvtn.mjs +1 -0
- package/dist/chunks/index-0.5.7-wwfn7x53.mjs +1 -0
- package/dist/chunks/index-0.5.7-ybcvbcjt.mjs +1 -0
- package/dist/chunks/index-0.5.7-yw3tp60c.mjs +1 -0
- package/dist/chunks/initReplBridge-0.5.7-xpy8ap8n.mjs +1 -0
- package/dist/chunks/ink-0.5.7-dwmx157s.mjs +1 -0
- package/dist/chunks/insights-0.5.7-5fpd27dr.mjs +870 -0
- package/dist/chunks/install-0.5.7-6sc73ew8.mjs +1 -0
- package/dist/chunks/install-github-app-0.5.7-jcyktynf.mjs +149 -0
- package/dist/chunks/install-slack-app-0.5.7-mk4a14ww.mjs +1 -0
- package/dist/chunks/instrumentation-0.5.7-116w6tf4.mjs +1 -0
- package/dist/chunks/interactiveHelpers-0.5.7-zbfkwcsb.mjs +1 -0
- package/dist/chunks/keybindings-0.5.7-k2s0bryc.mjs +2 -0
- package/dist/chunks/knowledge-0.5.7-55b2ckth.mjs +2 -0
- package/dist/chunks/latestVersionCache-0.5.7-k9pyxzrk.mjs +1 -0
- package/dist/chunks/loadAgentsDir-0.5.7-9bmbg04z.mjs +1 -0
- package/dist/chunks/loadPluginHooks-0.5.7-bcdwwerp.mjs +1 -0
- package/dist/chunks/loadPluginHooks-0.5.7-mdt3yvfc.mjs +1 -0
- package/dist/chunks/log-0.5.7-wcft0eyv.mjs +1 -0
- package/dist/chunks/main-0.5.7-9sxhszx9.mjs +1236 -0
- package/dist/chunks/managedEnv-0.5.7-k4gyyt60.mjs +1 -0
- package/dist/chunks/mcp-0.5.7-9z74evcf.mjs +1 -0
- package/dist/chunks/mcp-0.5.7-djz3mjw4.mjs +4 -0
- package/dist/chunks/mcp-0.5.7-n62qd49c.mjs +17 -0
- package/dist/chunks/mcpb-0.5.7-bqt73vjr.mjs +1 -0
- package/dist/chunks/memory-0.5.7-chxjrvf2.mjs +3 -0
- package/dist/chunks/mobile-0.5.7-y0cn32br.mjs +2 -0
- package/dist/chunks/model-0.5.7-7mt2xn7w.mjs +1 -0
- package/dist/chunks/model-0.5.7-fdhr0cwa.mjs +2 -0
- package/dist/chunks/oauth-0.5.7-xf0qbv6v.mjs +1 -0
- package/dist/chunks/openaiShim-0.5.7-0cejk3sb.mjs +14 -0
- package/dist/chunks/output-style-0.5.7-t5qc5jxe.mjs +1 -0
- package/dist/chunks/package-APBHZ5F3-0.5.7-7bp8s9sg.mjs +1 -0
- package/dist/chunks/parseConnectUrl-0.5.7-903apk0t.mjs +1 -0
- package/dist/chunks/parser-0.5.7-jnq01hth.mjs +1 -0
- package/dist/chunks/passes-0.5.7-nk3fgxyh.mjs +1 -0
- package/dist/chunks/permissions-0.5.7-q7whkp76.mjs +3 -0
- package/dist/chunks/plan-0.5.7-w5hgy3s7.mjs +1 -0
- package/dist/chunks/plist-0.5.7-jwz5qjtz.mjs +1 -0
- package/dist/chunks/plugin-0.5.7-x7xcey6d.mjs +29 -0
- package/dist/chunks/pluginStartupCheck-0.5.7-gy2e0dge.mjs +1 -0
- package/dist/chunks/plugins-0.5.7-2ehzph1a.mjs +9 -0
- package/dist/chunks/print-0.5.7-mjx6j0dk.mjs +57 -0
- package/dist/chunks/privacy-settings-0.5.7-rkmc34t8.mjs +1 -0
- package/dist/chunks/process-0.5.7-8c0qwpv6.mjs +1 -0
- package/dist/chunks/processBashCommand-0.5.7-czwzjsj9.mjs +1 -0
- package/dist/chunks/processSlashCommand-0.5.7-512rz16m.mjs +9 -0
- package/dist/chunks/prompt-0.5.7-r8ewyzer.mjs +1 -0
- package/dist/chunks/prompt-0.5.7-z98k679g.mjs +1 -0
- package/dist/chunks/prompts-0.5.7-g8mh8as5.mjs +1 -0
- package/dist/chunks/protocolHandler-0.5.7-p86as7s6.mjs +13 -0
- package/dist/chunks/provider-0.5.7-x4t1g0nh.mjs +2 -0
- package/dist/chunks/providerProfiles-0.5.7-dz70g8ys.mjs +1 -0
- package/dist/chunks/rate-limit-options-0.5.7-n282sweb.mjs +1 -0
- package/dist/chunks/registry-0.5.7-h8q8eay6.mjs +1 -0
- package/dist/chunks/release-notes-0.5.7-2h20frk0.mjs +5 -0
- package/dist/chunks/reload-plugins-0.5.7-z50apk74.mjs +2 -0
- package/dist/chunks/remote-env-0.5.7-08abe77m.mjs +1 -0
- package/dist/chunks/remoteBridgeCore-0.5.7-jdasqn18.mjs +1 -0
- package/dist/chunks/remoteSession-0.5.7-nq05jhdv.mjs +1 -0
- package/dist/chunks/rename-0.5.7-812j1w4d.mjs +1 -0
- package/dist/chunks/replBridgeHandle-0.5.7-aa3cp3ea.mjs +1 -0
- package/dist/chunks/resume-0.5.7-weq0rn3m.mjs +2 -0
- package/dist/chunks/rewind-0.5.7-y54y78kx.mjs +1 -0
- package/dist/chunks/sandbox-adapter-0.5.7-tb5qenm4.mjs +1 -0
- package/dist/chunks/sandbox-toggle-0.5.7-nxcpekeq.mjs +1 -0
- package/dist/chunks/session-0.5.7-ky2s0856.mjs +2 -0
- package/dist/chunks/sessionDiscovery-0.5.7-wr82xcxs.mjs +1 -0
- package/dist/chunks/sessionFileAccessHooks-0.5.7-0j8f4we0.mjs +1 -0
- package/dist/chunks/sessionStorage-0.5.7-qghsxmr2.mjs +1 -0
- package/dist/chunks/settings-0.5.7-xa4hccmb.mjs +1 -0
- package/dist/chunks/setup-0.5.7-s4yfpbyd.mjs +5 -0
- package/dist/chunks/sinks-0.5.7-feq030bq.mjs +1 -0
- package/dist/chunks/skills-0.5.7-h2r9d209.mjs +1 -0
- package/dist/chunks/startupProfiler-0.5.7-f44bsnqn.mjs +1 -0
- package/dist/chunks/startupUpdateCheck-0.5.7-7ff14fag.mjs +1 -0
- package/dist/chunks/state-0.5.7-cwk8b4cx.mjs +1 -0
- package/dist/chunks/stats-0.5.7-wd077xj7.mjs +6 -0
- package/dist/chunks/status-0.5.7-5qy7pnk9.mjs +1 -0
- package/dist/chunks/stickers-0.5.7-7s145w6d.mjs +1 -0
- package/dist/chunks/subprocessEnv-0.5.7-5dv3w3xn.mjs +1 -0
- package/dist/chunks/tasks-0.5.7-q79z0h3e.mjs +1 -0
- package/dist/chunks/teamHelpers-0.5.7-b8qf5f0d.mjs +1 -0
- package/dist/chunks/teammateModeSnapshot-0.5.7-kvmjwag8.mjs +1 -0
- package/dist/chunks/teleport-0.5.7-x740q45r.mjs +1 -0
- package/dist/chunks/terminalSetup-0.5.7-z8ytqt6q.mjs +1 -0
- package/dist/chunks/theme-0.5.7-9asaqpc9.mjs +1 -0
- package/dist/chunks/thinkback-0.5.7-6bzqdm8h.mjs +1 -0
- package/dist/chunks/thinkback-play-0.5.7-5m54zaez.mjs +1 -0
- package/dist/chunks/toolPool-0.5.7-5rd6jp71.mjs +1 -0
- package/dist/chunks/toolSearch-0.5.7-wgqasfmq.mjs +1 -0
- package/dist/chunks/trustedDevice-0.5.7-5qbzragc.mjs +1 -0
- package/dist/chunks/turndown.cjs-0.5.7-3fjybn8j.mjs +69 -0
- package/dist/chunks/ultrareviewCommand-0.5.7-98p7mn4r.mjs +4 -0
- package/dist/chunks/update-0.5.7-2jgnt5gj.mjs +86 -0
- package/dist/chunks/upgrade-0.5.7-1fa84f4g.mjs +1 -0
- package/dist/chunks/upstreamproxy-0.5.7-1p7vn612.mjs +14 -0
- package/dist/chunks/url-handler-napi-0.5.7-312p1719.mjs +1 -0
- package/dist/chunks/usage-0.5.7-qrsabcka.mjs +1 -0
- package/dist/chunks/util-0.5.7-tpzcah5j.mjs +1 -0
- package/dist/chunks/utils-0.5.7-8a2ekyr5.mjs +1 -0
- package/dist/chunks/vim-0.5.7-w4e8vpjf.mjs +1 -0
- package/dist/chunks/watcher-0.5.7-cj50b60x.mjs +1 -0
- package/dist/chunks/wiki-0.5.7-ccjdtg8v.mjs +132 -0
- package/dist/chunks/worktree-0.5.7-g8wrf9zf.mjs +1 -0
- package/dist/chunks/worktreeModeEnabled-0.5.7-w4jdaq8p.mjs +1 -0
- package/dist/chunks/wrapper-0.5.7-8k82xd0n.mjs +7 -0
- package/dist/claudin-vscode.vsix +0 -0
- package/dist/cli.mjs +7 -0
- package/package.json +141 -0
- package/scripts/v8cache-gc.mjs +84 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import{$b as NX,_b as u9,ac as q9,bc as z9,cc as LJ,ec as JX,fc as iX}from"./cli-0.5.7-vvrg78m6.mjs";import{hc as EJ,jc as kX}from"./cli-0.5.7-x0n9mq65.mjs";import{lc as lJ,nc as aJ,oc as nJ,pc as gX}from"./cli-0.5.7-d4gtv7f7.mjs";import{Cc as S0,Dc as oJ,Ec as I9,Gc as u0,Hc as O9,Ic as D9,Kc as iJ,Lc as dX}from"./cli-0.5.7-rr1yd8f3.mjs";import{Nc as A9,Tc as uJ}from"./cli-0.5.7-m82d23hf.mjs";import{Fe as N9,Ge as _X,He as gJ,Ie as SX,Je as pJ,Ke as mX,Le as cJ,Me as xX}from"./cli-0.5.7-23hg3t0h.mjs";import{Pe as dJ,Re as PX}from"./cli-0.5.7-5q6tfz39.mjs";import"./cli-0.5.7-wz2cbwxt.mjs";import{gg as Q9,hg as AJ,ig as K9,jg as FJ}from"./cli-0.5.7-31hdc2nc.mjs";import{kg as UX,lg as o0,og as nX}from"./cli-0.5.7-eer6xagb.mjs";import"./cli-0.5.7-1fmgwk5c.mjs";import{$H as L9,$l as k1,$m as _J,AH as M1,AI as KJ,Cm as kJ,DH as E0,Dm as hX,EH as w0,FH as c0,GH as K0,GI as R0,HH as Y0,Hm as z0,IH as P0,Im as s9,JH as YJ,JI as y9,Jm as t9,Km as $9,LH as DJ,Lm as e9,MH as p0,OH as Y9,Om as jJ,PH as UJ,Pm as PJ,Rm as MX,Sm as n0,Tm as r0,VH as p9,Vm as JJ,Vt as N0,WH as J0,Wm as XJ,Wt as P9,Xl as d0,Yl as x9,Ym as ZJ,Yt as SJ,Zl as U1,Zm as VX,_H as c9,_l as D0,aI as M0,am as A0,an as $X,cJ as xJ,dI as VJ,dm as n9,eI as BJ,em as AX,en as H9,fI as b0,gI as mJ,hn as IX,hr as j0,ir as b9,kF as g9,lF as HX,mI as QJ,nI as h0,qI as f9,rJ as jX,xD as d9,yD as LX,zI as $0}from"./cli-0.5.7-q2e6xpch.mjs";import"./cli-0.5.7-w16wj21h.mjs";import"./cli-0.5.7-tc3vm4ra.mjs";import"./cli-0.5.7-7hm7dxyp.mjs";import"./cli-0.5.7-gy4csxb5.mjs";import"./cli-0.5.7-bzrvdrq4.mjs";import"./cli-0.5.7-gnq8vh0c.mjs";import"./cli-0.5.7-93k1z52y.mjs";import"./cli-0.5.7-zb8ztx8p.mjs";import"./cli-0.5.7-w50j12vv.mjs";import"./cli-0.5.7-93eaxn9a.mjs";import"./cli-0.5.7-h9v4tqbs.mjs";import"./cli-0.5.7-vyxaeh82.mjs";import"./cli-0.5.7-31969syr.mjs";import"./cli-0.5.7-73er78b7.mjs";import"./cli-0.5.7-sb3fjts4.mjs";import"./cli-0.5.7-hq4wbper.mjs";import{AT as lX,zT as WX}from"./cli-0.5.7-yaywev87.mjs";import"./cli-0.5.7-7mmyazqh.mjs";import"./cli-0.5.7-aq7a3646.mjs";import"./cli-0.5.7-pzjz115k.mjs";import"./cli-0.5.7-tbga87q3.mjs";import{AU as OJ,NU as m1,OU as C1,PU as C0,XU as GX,YU as aX,zU as U9}from"./cli-0.5.7-7a9gq9ff.mjs";import{AV as vJ,IW as l1,KW as G,MW as Z,eX as e1,oW as G9,pX as a1,rV as U0}from"./cli-0.5.7-x1w96j6d.mjs";import"./cli-0.5.7-9z55nm22.mjs";import"./cli-0.5.7-0rvzfmhb.mjs";import"./cli-0.5.7-kp9pg4sr.mjs";import"./cli-0.5.7-gcnk0vke.mjs";import"./cli-0.5.7-6d26vvaa.mjs";import"./cli-0.5.7-e8eqdfnf.mjs";import"./cli-0.5.7-9acdh8nc.mjs";import"./cli-0.5.7-g7k0r0ea.mjs";import{OY as x1,PY as X,QY as z,RY as E1}from"./cli-0.5.7-vgc7nzef.mjs";import{SY as o1}from"./cli-0.5.7-8sbq2qed.mjs";import"./cli-0.5.7-jw2te6th.mjs";import"./cli-0.5.7-20cz322w.mjs";import"./cli-0.5.7-m5q27x96.mjs";import{nZ as Z0,oZ as C9}from"./cli-0.5.7-6pssgqdn.mjs";import"./cli-0.5.7-5e5xfeq6.mjs";import"./cli-0.5.7-8ychjqct.mjs";import"./cli-0.5.7-g4n7dg2d.mjs";import"./cli-0.5.7-xn6deh04.mjs";import"./cli-0.5.7-dntg9qbj.mjs";import"./cli-0.5.7-rggstqv6.mjs";import"./cli-0.5.7-0df5m6td.mjs";import"./cli-0.5.7-yzncgfs4.mjs";import"./cli-0.5.7-2qxsy7jq.mjs";import"./cli-0.5.7-89fcvfy0.mjs";import{B6 as t1,C_ as CX,E$ as q0,G$ as T0,J6 as R9,K$ as y0,K6 as _,L6 as X0,Paa as h9,T$ as w9,Z_ as h1,_aa as fX,f$ as I0,p_ as v9,r8 as n1,t8 as X9}from"./cli-0.5.7-469r2a5r.mjs";import"./cli-0.5.7-mzfr99sc.mjs";import{Pca as a9,Qca as DX,Sca as Z9,Wca as GJ}from"./cli-0.5.7-5mrw857q.mjs";import"./cli-0.5.7-c9dtw94k.mjs";import"./cli-0.5.7-0s7wtvbz.mjs";import"./cli-0.5.7-35yf0b84.mjs";import"./cli-0.5.7-sjx0wm99.mjs";import"./cli-0.5.7-xepvraxn.mjs";import{Nea as x0,Pea as m9}from"./cli-0.5.7-26pwg6gg.mjs";import{Pfa as L0,Sfa as E9,tfa as IJ,xfa as wX}from"./cli-0.5.7-twqt7rxq.mjs";import"./cli-0.5.7-pse9qff7.mjs";import{cga as l9,mga as OX}from"./cli-0.5.7-tqn2ged5.mjs";import{Fga as B0,Gga as I1,Nga as G0}from"./cli-0.5.7-skfm51ta.mjs";import"./cli-0.5.7-hp25yk8y.mjs";import"./cli-0.5.7-m4wwfa6q.mjs";import{Vma as v1,Zma as S1}from"./cli-0.5.7-258ytmbr.mjs";function o9({inputValue:Y,setInputValue:J,cursorOffset:q,setCursorOffset:W,error:K,setError:F,result:y,setResult:E,setViewState:N,onAddComplete:O,cliMode:L=!1}){let V=O0.useRef(!1),[H,e]=O0.useState(!1),[t,O1]=O0.useState(""),D=async()=>{let $=Y.trim();if(!$){F("Please enter a marketplace source");return}let I=await u9($);if(!I){F("Invalid marketplace source format. Try: owner/repo, https://..., or ./path");return}if("error"in I){F(I.error);return}F(null);try{e(!0),O1("");let{name:a,resolvedSource:B}=await c9(I,(m)=>{O1(m)});p9(a,{source:B}),M1();let Q=I.source;if(I.source==="github")Q=I.repo;if(x0("tengu_marketplace_added",{source_type:Q}),O)await O();if(O1(""),e(!1),L)E(`Successfully added marketplace: ${a}`);else N({type:"browse-marketplace",targetMarketplace:a})}catch(a){let B=B0(a);if(t1(B),F(B.message),O1(""),e(!1),L)E(`Error: ${B.message}`);else E(null)}};return O0.useEffect(()=>{if(Y&&!V.current&&!K&&!y)V.current=!0,D()},[]),z(G,{flexDirection:"column",children:[z(G,{flexDirection:"column",paddingX:1,borderStyle:"round",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Add Marketplace"})}),z(G,{flexDirection:"column",children:[X(Z,{children:"Enter marketplace source:"}),X(Z,{dimColor:!0,children:"Examples:"}),X(Z,{dimColor:!0,children:" · owner/repo (GitHub)"}),X(Z,{dimColor:!0,children:" · git@github.com:owner/repo.git (SSH)"}),X(Z,{dimColor:!0,children:" · https://example.com/marketplace.json"}),X(Z,{dimColor:!0,children:" · ./path/to/marketplace"}),X(G,{marginTop:1,children:X(d9,{value:Y,onChange:J,onSubmit:D,columns:80,cursorOffset:q,onChangeCursorOffset:W,focus:!0,showCursor:!0})})]}),H&&z(G,{marginTop:1,children:[X(g9,{}),X(Z,{children:t||"Adding marketplace to configuration…"})]}),K&&X(G,{marginTop:1,children:X(Z,{color:"error",children:K})}),y&&X(G,{marginTop:1,children:X(Z,{children:y})})]}),X(G,{marginLeft:3,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[X(d0,{shortcut:"Enter",action:"add"}),X(U1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})]})})})]})}var O0;var i9=S1(()=>{m9();D0();A0();x9();HX();LX();a1();G0();R9();E0();b0();NX();E1();O0=v1(o1(),1)});function FX(Y,J,q,W){let K={};for(let F of Y){let y=q[F],E=J[F]??"";if(y?.sensitive===!0&&E===""&&W?.[F]!==void 0)continue;if(y?.type==="number"){if(E.trim()==="")continue;let N=Number(E);K[F]=Number.isNaN(N)?E:N}else if(y?.type==="boolean")K[F]=l9(E);else K[F]=E}return K}function g0(Y){let J=r9.c(70),{title:q,subtitle:W,configSchema:K,initialValues:F,onSave:y,onCancel:E}=Y,N;if(J[0]!==K)N=Object.keys(K),J[0]=K,J[1]=N;else N=J[1];let O=N,L;if(J[2]!==K||J[3]!==F)L=(b)=>{if(K[b]?.sensitive===!0)return"";let u=F?.[b];return u===void 0?"":String(u)},J[2]=K,J[3]=F,J[4]=L;else L=J[4];let V=L,[H,e]=a0.useState(0),t;if(J[5]===Symbol.for("react.memo_cache_sentinel"))t={},J[5]=t;else t=J[5];let[O1,D]=a0.useState(t),$;if(J[6]!==O[0]||J[7]!==V)$=()=>O[0]?V(O[0]):"",J[6]=O[0],J[7]=V,J[8]=$;else $=J[8];let[I,a]=a0.useState($),B=O[H],Q=B?K[B]:null,m;if(J[9]===Symbol.for("react.memo_cache_sentinel"))m={context:"Settings"},J[9]=m;else m=J[9];m1("confirm:no",E,m);let W1;if(J[10]!==B||J[11]!==H||J[12]!==I||J[13]!==O||J[14]!==V)W1=()=>{if(H<O.length-1&&B){D((u)=>({...u,[B]:I})),e(yX);let b=O[H+1];a(b?V(b):"")}},J[10]=B,J[11]=H,J[12]=I,J[13]=O,J[14]=V,J[15]=W1;else W1=J[15];let w=W1,Y1;if(J[16]!==K||J[17]!==B||J[18]!==H||J[19]!==I||J[20]!==O||J[21]!==V||J[22]!==F||J[23]!==y||J[24]!==O1)Y1=()=>{if(!B)return;let b={...O1,[B]:I};if(H===O.length-1)y(FX(O,b,K,F));else{D(b),e(TX);let u=O[H+1];a(u?V(u):"")}},J[16]=K,J[17]=B,J[18]=H,J[19]=I,J[20]=O,J[21]=V,J[22]=F,J[23]=y,J[24]=O1,J[25]=Y1;else Y1=J[25];let i=Y1,r;if(J[26]!==i||J[27]!==w)r={"confirm:nextField":w,"confirm:yes":i},J[26]=i,J[27]=w,J[28]=r;else r=J[28];let z1;if(J[29]===Symbol.for("react.memo_cache_sentinel"))z1={context:"Confirmation"},J[29]=z1;else z1=J[29];C1(r,z1);let v;if(J[30]===Symbol.for("react.memo_cache_sentinel"))v=(b,u)=>{if(u.backspace||u.delete){a(RX);return}if(b&&!u.ctrl&&!u.meta&&!u.tab&&!u.return)a((Z1)=>Z1+b)},J[30]=v;else v=J[30];if(e1(v),!Q||!B)return null;let Q1=Q.sensitive===!0,G1=Q.required===!0,J1;if(J[31]!==I||J[32]!==Q1)J1=Q1?"*".repeat(a9(I)):I,J[31]=I,J[32]=Q1,J[33]=J1;else J1=J[33];let s=J1,X1=Q.title||B,L1;if(J[34]!==G1)L1=G1&&X(Z,{color:"error",children:" *"}),J[34]=G1,J[35]=L1;else L1=J[35];let l;if(J[36]!==X1||J[37]!==L1)l=z(Z,{bold:!0,children:[X1,L1]}),J[36]=X1,J[37]=L1,J[38]=l;else l=J[38];let T;if(J[39]!==Q.description)T=Q.description&&X(Z,{dimColor:!0,children:Q.description}),J[39]=Q.description,J[40]=T;else T=J[40];let C;if(J[41]===Symbol.for("react.memo_cache_sentinel"))C=z(Z,{children:[_.pointerSmall," "]}),J[41]=C;else C=J[41];let j;if(J[42]!==s)j=X(Z,{children:s}),J[42]=s,J[43]=j;else j=J[43];let n;if(J[44]===Symbol.for("react.memo_cache_sentinel"))n=X(Z,{children:"█"}),J[44]=n;else n=J[44];let H1;if(J[45]!==j)H1=z(G,{marginTop:1,children:[C,j,n]}),J[45]=j,J[46]=H1;else H1=J[46];let R;if(J[47]!==l||J[48]!==T||J[49]!==H1)R=z(G,{flexDirection:"column",children:[l,T,H1]}),J[47]=l,J[48]=T,J[49]=H1,J[50]=R;else R=J[50];let g=H+1,k;if(J[51]!==O.length||J[52]!==g)k=z(Z,{dimColor:!0,children:["Field ",g," of ",O.length]}),J[51]=O.length,J[52]=g,J[53]=k;else k=J[53];let h;if(J[54]!==H||J[55]!==O.length)h=H<O.length-1&&X(Z,{dimColor:!0,children:"Tab: Next field · Enter: Save and continue"}),J[54]=H,J[55]=O.length,J[56]=h;else h=J[56];let P;if(J[57]!==H||J[58]!==O.length)P=H===O.length-1&&X(Z,{dimColor:!0,children:"Enter: Save configuration"}),J[57]=H,J[58]=O.length,J[59]=P;else P=J[59];let f;if(J[60]!==k||J[61]!==h||J[62]!==P)f=z(G,{flexDirection:"column",children:[k,h,P]}),J[60]=k,J[61]=h,J[62]=P,J[63]=f;else f=J[63];let A;if(J[64]!==E||J[65]!==W||J[66]!==R||J[67]!==f||J[68]!==q)A=z(n9,{title:q,subtitle:W,onCancel:E,isCancelActive:!1,children:[R,f]}),J[64]=E,J[65]=W,J[66]=R,J[67]=f,J[68]=q,J[69]=A;else A=J[69];return A}function RX(Y){return Y.slice(0,-1)}function TX(Y){return Y+1}function yX(Y){return Y+1}var r9,a0;var T9=S1(()=>{X0();AX();DX();a1();C0();OX();E1();r9=v1(U0(),1),a0=v1(o1(),1)});async function s0(Y){let{enabled:J,disabled:q}=await R0();return[...J,...q].find((W)=>W.repository===Y||W.source===Y)}function f0({plugin:Y,pluginId:J,onDone:q}){let[W]=F0.useState(()=>{let O=[],L=JJ(Y);if(Object.keys(L).length>0)O.push({key:"top-level",title:`Configure ${Y.name}`,subtitle:"Plugin options",schema:L,load:()=>n0(J),save:(H)=>r0(J,H,Y.manifest.userConfig)});let V=ZJ(Y);for(let H of V)O.push({key:`channel:${H.server}`,title:`Configure ${H.displayName}`,subtitle:`Plugin: ${Y.name}`,schema:H.configSchema,load:()=>s9(J,H.server)??void 0,save:(e)=>t9(J,H.server,e,H.configSchema)});return O}),[K,F]=F0.useState(0),y=F0.useRef(q);if(y.current=q,F0.useEffect(()=>{if(W.length===0)y.current("skipped")},[W.length]),W.length===0)return null;let E=W[K];function N(O){try{E.save(O)}catch(V){q("error",I1(V));return}let L=K+1;if(L<W.length)F(L);else q("configured")}return X(g0,{title:E.title,subtitle:E.subtitle,configSchema:E.schema,initialValues:E.load(),onSave:N,onCancel:()=>q("skipped")},E.key)}var F0;var t0=S1(()=>{G0();e9();VX();y9();XJ();T9();E1();F0=v1(o1(),1)});function e0(){let Y=qJ.c(3),J;if(Y[0]===Symbol.for("react.memo_cache_sentinel"))J=YJ(),Y[0]=J;else J=Y[0];let q=J,W;if(Y[1]===Symbol.for("react.memo_cache_sentinel"))W=z(Z,{color:"claude",children:[_.warning," "]}),Y[1]=W;else W=Y[1];let K;if(Y[2]===Symbol.for("react.memo_cache_sentinel"))K=z(G,{marginBottom:1,children:[W,z(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.",q?` ${q}`:""]})]}),Y[2]=K;else K=Y[2];return K}var qJ;var V9=S1(()=>{X0();a1();p0();E1();qJ=v1(U0(),1)});function Q0(Y){if(Y.entry.source&&typeof Y.entry.source==="object"&&"source"in Y.entry.source&&Y.entry.source.source==="github"&&typeof Y.entry.source==="object"&&"repo"in Y.entry.source)return Y.entry.source.repo;return null}function k0(Y,J){let q=[{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(Y)q.push({label:"Open homepage",action:"homepage"});if(J)q.push({label:"View on GitHub",action:"github"});return q.push({label:"Back to plugin list",action:"back"}),q}function WJ(Y){let J=zJ.c(7),{hasSelection:q}=Y,W;if(J[0]!==q)W=q&&X(U1,{action:"plugin:install",context:"Plugin",fallback:"i",description:"install",bold:!0}),J[0]=q,J[1]=W;else W=J[1];let K,F,y;if(J[2]===Symbol.for("react.memo_cache_sentinel"))K=X(U1,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"}),F=X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"}),y=X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"}),J[2]=K,J[3]=F,J[4]=y;else K=J[2],F=J[3],y=J[4];let E;if(J[5]!==W)E=X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[W,K,F,y]})})}),J[5]=W,J[6]=E;else E=J[6];return E}var zJ;var B9=S1(()=>{D0();A0();a1();E1();zJ=v1(U0(),1)});function v0({totalItems:Y,maxVisible:J=BX,selectedIndex:q=0}){let W=Y>J,K=i1.useRef(0),F=i1.useMemo(()=>{if(!W)return 0;let I=K.current;if(q<I)return K.current=q,q;if(q>=I+J){let Q=q-J+1;return K.current=Q,Q}let a=Math.max(0,Y-J),B=Math.min(I,a);return K.current=B,B},[q,J,W,Y]),y=F,E=Math.min(F+J,Y),N=i1.useCallback((I)=>{if(!W)return I;return I.slice(y,E)},[W,y,E]),O=i1.useCallback((I)=>{return y+I},[y]),L=i1.useCallback((I)=>{return I>=y&&I<E},[y,E]),V=i1.useCallback((I)=>{},[]),H=i1.useCallback(()=>{},[]),e=i1.useCallback(()=>{},[]),t=i1.useCallback((I,a)=>{let B=Math.max(0,Math.min(I,Y-1));a(B)},[Y]),O1=i1.useCallback((I,a)=>{return!1},[]),D=Math.max(1,Math.ceil(Y/J));return{currentPage:Math.floor(F/J),totalPages:D,startIndex:y,endIndex:E,needsPagination:W,pageSize:J,getVisibleItems:N,toActualIndex:O,isOnCurrentPage:L,goToPage:V,nextPage:H,prevPage:e,handleSelectionChange:t,handlePageNavigation:O1,scrollPosition:{current:q+1,total:Y,canScrollUp:F>0,canScrollDown:F+J<Y}}}var i1,BX=5;var J9=S1(()=>{i1=v1(o1(),1)});function HJ({error:Y,setError:J,result:q,setResult:W,setViewState:K,onInstallComplete:F,targetMarketplace:y,targetPlugin:E}){let[N,O]=$1.useState("marketplace-list"),[L,V]=$1.useState(null),[H,e]=$1.useState(null),[t,O1]=$1.useState([]),[D,$]=$1.useState([]),[I,a]=$1.useState(!0),[B,Q]=$1.useState(null),[m,W1]=$1.useState(0),[w,Y1]=$1.useState(new Set),[i,r]=$1.useState(new Set),z1=v0({totalItems:D.length,selectedIndex:m}),[v,Q1]=$1.useState(0),[G1,J1]=$1.useState(!1),[s,X1]=$1.useState(null),[L1,l]=$1.useState(null),T=W9.useCallback(()=>{if(N==="plugin-list")if(y)K({type:"manage-marketplaces",targetMarketplace:y});else if(t.length===1)K({type:"menu"});else O("marketplace-list"),V(null),Y1(new Set);else if(N==="plugin-details")O("plugin-list"),e(null);else K({type:"menu"})},[N,y,K,t.length]);m1("confirm:no",T,{context:"Confirmation"}),$1.useEffect(()=>{async function R(){try{let g=await J0(),{marketplaces:k,failures:h}=await Y0(g),P=[];for(let{name:b,config:u,data:Z1}of k)if(Z1){let x=n1(Z1.plugins,(N1)=>QJ(K0(N1.name,b)));P.push({name:b,totalPlugins:Z1.plugins.length,installedCount:x,source:c0(u.source)})}P.sort((b,u)=>{if(b.name==="claude-plugin-directory")return-1;if(u.name==="claude-plugin-directory")return 1;return 0}),O1(P);let f=n1(k,(b)=>b.data!==null),A=P0(h,f);if(A)if(A.type==="warning")l(A.message+". Showing available marketplaces.");else throw Error(A.message);if(P.length===1&&!y&&!E){let b=P[0];if(b)V(b.name),O("plugin-list")}if(E){let b=null,u=null;for(let[Z1]of Object.entries(g)){let x=await M0(Z1);if(x){let N1=x.plugins.find((b1)=>b1.name===E);if(N1){let b1=K0(N1.name,Z1);b={entry:N1,marketplaceName:Z1,pluginId:b1,isInstalled:h0(b1)},u=Z1;break}}}if(b&&u){let Z1=b.pluginId;if(h0(Z1))J(`Plugin '${Z1}' is already installed globally. Use '/plugin' to manage existing plugins.`);else V(u),e(b),O("plugin-details")}else J(`Plugin "${E}" not found in any marketplace`)}else if(y)if(P.some((u)=>u.name===y))V(y),O("plugin-list");else J(`Marketplace "${y}" not found`)}catch(g){J(g instanceof Error?g.message:"Failed to load marketplaces")}finally{a(!1)}}R()},[J,y,E]),$1.useEffect(()=>{if(!L)return;let R=!1;async function g(k){a(!0);try{let h=await M0(k);if(R)return;if(!h)throw Error(`Failed to load marketplace: ${k}`);let P=[];for(let f of h.plugins){let A=K0(f.name,k);if(j0(A))continue;P.push({entry:f,marketplaceName:k,pluginId:A,isInstalled:h0(A)})}try{let f=await q9();if(R)return;if(Q(f),f)P.sort((A,b)=>{let u=f.get(A.pluginId)??0,Z1=f.get(b.pluginId)??0;if(u!==Z1)return Z1-u;return A.entry.name.localeCompare(b.entry.name)});else P.sort((A,b)=>A.entry.name.localeCompare(b.entry.name))}catch(f){if(R)return;L0(`Failed to fetch install counts: ${I1(f)}`),P.sort((A,b)=>A.entry.name.localeCompare(b.entry.name))}$(P),W1(0),Y1(new Set)}catch(h){if(R)return;J(h instanceof Error?h.message:"Failed to load plugins")}finally{a(!1)}}return g(L),()=>{R=!0}},[L,J]);let C=async()=>{if(w.size===0)return;let R=D.filter((P)=>w.has(P.pluginId));r(new Set(R.map((P)=>P.pluginId)));let g=0,k=0,h=[];for(let P of R){let f=await $0({pluginId:P.pluginId,entry:P.entry,marketplaceName:P.marketplaceName,scope:"user"});if(f.success)g++;else k++,h.push({name:P.entry.name,reason:f.error})}if(r(new Set),Y1(new Set),M1(),k===0){let P=`✓ Installed ${g} ${h1(g,"plugin")}. Run /reload-plugins to activate.`;W(P)}else if(g===0)J(`Failed to install: ${w0(h,!0)}`);else{let P=`✓ Installed ${g} of ${g+k} plugins. Failed: ${w0(h,!1)}. Run /reload-plugins to activate successfully installed plugins.`;W(P)}if(g>0){if(F)await F()}K({type:"menu"})},j=async(R,g="user")=>{J1(!0),X1(null);let k=await $0({pluginId:R.pluginId,entry:R.entry,marketplaceName:R.marketplaceName,scope:g});if(k.success){let h=await s0(R.pluginId);if(h){J1(!1),O({type:"plugin-options",plugin:h,pluginId:R.pluginId});return}if(W(k.message),F)await F();K({type:"menu"})}else J1(!1),X1(k.error)};$1.useEffect(()=>{if(Y)W(Y)},[Y,W]),C1({"select:previous":()=>{if(m>0)W1(m-1)},"select:next":()=>{if(m<t.length-1)W1(m+1)},"select:accept":()=>{let R=t[m];if(R)V(R.name),O("plugin-list")}},{context:"Select",isActive:N==="marketplace-list"}),C1({"select:previous":()=>{if(m>0)z1.handleSelectionChange(m-1,W1)},"select:next":()=>{if(m<D.length-1)z1.handleSelectionChange(m+1,W1)},"select:accept":()=>{if(m===D.length&&w.size>0)C();else if(m<D.length){let R=D[m];if(R)if(R.isInstalled)K({type:"manage-plugins",targetPlugin:R.entry.name,targetMarketplace:R.marketplaceName});else e(R),O("plugin-details"),Q1(0),X1(null)}}},{context:"Select",isActive:N==="plugin-list"}),C1({"plugin:toggle":()=>{if(m<D.length){let R=D[m];if(R&&!R.isInstalled){let g=new Set(w);if(g.has(R.pluginId))g.delete(R.pluginId);else g.add(R.pluginId);Y1(g)}}},"plugin:install":()=>{if(w.size>0)C()}},{context:"Plugin",isActive:N==="plugin-list"});let n=W9.useMemo(()=>{if(!H)return[];let R=H.entry.homepage,g=Q0(H);return k0(R,g)},[H]);if(C1({"select:previous":()=>{if(v>0)Q1(v-1)},"select:next":()=>{if(v<n.length-1)Q1(v+1)},"select:accept":()=>{if(!H)return;let R=n[v]?.action,g=H.entry.homepage,k=Q0(H);if(R==="install-user")j(H,"user");else if(R==="install-project")j(H,"project");else if(R==="install-local")j(H,"local");else if(R==="homepage"&&g)Z0(g);else if(R==="github"&&k)Z0(`https://github.com/${k}`);else if(R==="back")O("plugin-list"),e(null)}},{context:"Select",isActive:N==="plugin-details"&&!!H}),typeof N==="object"&&N.type==="plugin-options"){let k=function(h){if(W(h),F)F();K({type:"menu"})},{plugin:R,pluginId:g}=N;return X(f0,{plugin:R,pluginId:g,onDone:(h,P)=>{switch(h){case"configured":k(`✓ Installed and configured ${R.name}. Run /reload-plugins to apply.`);break;case"skipped":k(`✓ Installed ${R.name}. Run /reload-plugins to apply.`);break;case"error":k(`Installed but failed to save config: ${P}`);break}}})}if(I)return X(Z,{children:"Loading…"});if(Y)return X(Z,{color:"error",children:Y});if(N==="marketplace-list"){if(t.length===0)return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Select marketplace"})}),X(Z,{children:"No marketplaces configured."}),z(Z,{dimColor:!0,children:["Add a marketplace first using ","'Add marketplace'","."]}),X(G,{marginTop:1,paddingLeft:1,children:X(Z,{dimColor:!0,children:X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"})})})]});return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Select marketplace"})}),L1&&X(G,{marginBottom:1,flexDirection:"column",children:z(Z,{color:"warning",children:[_.warning," ",L1]})}),t.map((R,g)=>z(G,{flexDirection:"column",marginBottom:g<t.length-1?1:0,children:[X(G,{children:z(Z,{color:m===g?"suggestion":void 0,children:[m===g?_.pointer:" "," ",R.name]})}),X(G,{marginLeft:2,children:z(Z,{dimColor:!0,children:[R.totalPlugins," ",h1(R.totalPlugins,"plugin")," available",R.installedCount>0&&` · ${R.installedCount} already installed`,R.source&&` · ${R.source}`]})})]},R.name)),X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"})]})})})]})}if(N==="plugin-details"&&H){let R=H.entry.homepage,g=Q0(H),k=k0(R,g);return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Plugin Details"})}),z(G,{flexDirection:"column",marginBottom:1,children:[X(Z,{bold:!0,children:H.entry.name}),H.entry.version&&z(Z,{dimColor:!0,children:["Version: ",H.entry.version]}),H.entry.description&&X(G,{marginTop:1,children:X(Z,{children:H.entry.description})}),H.entry.author&&X(G,{marginTop:1,children:z(Z,{dimColor:!0,children:["By:"," ",typeof H.entry.author==="string"?H.entry.author:H.entry.author.name]})})]}),z(G,{flexDirection:"column",marginBottom:1,children:[X(Z,{bold:!0,children:"Will install:"}),H.entry.commands&&z(Z,{dimColor:!0,children:["· Commands:"," ",Array.isArray(H.entry.commands)?H.entry.commands.join(", "):Object.keys(H.entry.commands).join(", ")]}),H.entry.agents&&z(Z,{dimColor:!0,children:["· Agents:"," ",Array.isArray(H.entry.agents)?H.entry.agents.join(", "):Object.keys(H.entry.agents).join(", ")]}),H.entry.hooks&&z(Z,{dimColor:!0,children:["· Hooks: ",Object.keys(H.entry.hooks).join(", ")]}),H.entry.mcpServers&&z(Z,{dimColor:!0,children:["· MCP Servers:"," ",Array.isArray(H.entry.mcpServers)?H.entry.mcpServers.join(", "):typeof H.entry.mcpServers==="object"?Object.keys(H.entry.mcpServers).join(", "):"configured"]}),!H.entry.commands&&!H.entry.agents&&!H.entry.hooks&&!H.entry.mcpServers&&X(x1,{children:typeof H.entry.source==="object"&&"source"in H.entry.source&&(H.entry.source.source==="github"||H.entry.source.source==="url"||H.entry.source.source==="npm"||H.entry.source.source==="pip")?X(Z,{dimColor:!0,children:"· Component summary not available for remote plugin"}):X(Z,{dimColor:!0,children:"· Components will be discovered at installation"})})]}),X(e0,{}),s&&X(G,{marginBottom:1,children:z(Z,{color:"error",children:["Error: ",s]})}),X(G,{flexDirection:"column",children:k.map((h,P)=>z(G,{children:[v===P&&X(Z,{children:"> "}),v!==P&&X(Z,{children:" "}),X(Z,{bold:v===P,children:G1&&h.action==="install"?"Installing…":h.label})]},h.action))}),X(G,{marginTop:1,paddingLeft:1,children:X(Z,{dimColor:!0,children:z(k1,{children:[X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})]})})})]})}if(D.length===0)return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Install plugins"})}),X(Z,{dimColor:!0,children:"No new plugins available to install."}),X(Z,{dimColor:!0,children:"All plugins from this marketplace are already installed."}),X(G,{marginLeft:3,children:X(Z,{dimColor:!0,italic:!0,children:X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"})})})]});let H1=z1.getVisibleItems(D);return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Install Plugins"})}),z1.scrollPosition.canScrollUp&&X(G,{children:z(Z,{dimColor:!0,children:[" ",_.arrowUp," more above"]})}),H1.map((R,g)=>{let k=z1.toActualIndex(g),h=m===k,P=w.has(R.pluginId),f=i.has(R.pluginId),A=g===H1.length-1;return z(G,{flexDirection:"column",marginBottom:A&&!Y?0:1,children:[z(G,{children:[z(Z,{color:h?"suggestion":void 0,children:[h?_.pointer:" "," "]}),z(Z,{color:R.isInstalled?"success":void 0,children:[R.isInstalled?_.tick:f?_.ellipsis:P?_.radioOn:_.radioOff," ",R.entry.name,R.entry.category&&z(Z,{dimColor:!0,children:[" [",R.entry.category,"]"]}),R.entry.tags?.includes("community-managed")&&X(Z,{dimColor:!0,children:" [Community Managed]"}),R.isInstalled&&X(Z,{dimColor:!0,children:" (installed)"}),B&&L===Y9&&z(Z,{dimColor:!0,children:[" · ",z9(B.get(R.pluginId)??0)," ","installs"]})]})]}),R.entry.description&&z(G,{marginLeft:4,children:[X(Z,{dimColor:!0,children:Z9(R.entry.description,60)}),R.entry.version&&z(Z,{dimColor:!0,children:[" · v",R.entry.version]})]})]},R.pluginId)}),z1.scrollPosition.canScrollDown&&X(G,{children:z(Z,{dimColor:!0,children:[" ",_.arrowDown," more below"]})}),Y&&X(G,{marginTop:1,children:z(Z,{color:"error",children:[_.cross," ",Y]})}),X(WJ,{hasSelection:w.size>0})]})}var W9,$1;var NJ=S1(()=>{X0();D0();A0();a1();C0();X9();C9();E9();G0();E0();LJ();f9();p0();b0();UJ();KJ();b9();I0();GJ();t0();V9();B9();J9();E1();W9=v1(o1(),1),$1=v1(o1(),1)});function TJ({error:Y,setError:J,result:q,setResult:W,setViewState:K,onInstallComplete:F,onSearchModeChange:y,targetPlugin:E}){let[N,O]=f1.useState("plugin-list"),[L,V]=f1.useState(null),[H,e]=f1.useState([]),[t,O1]=f1.useState(!0),[D,$]=f1.useState(null),[I,a]=f1.useState(!1),B=f1.useCallback((A)=>{a(A),y?.(A)},[y]),{query:Q,setQuery:m,cursorOffset:W1}=K9({isActive:N==="plugin-list"&&I&&!t,onExit:()=>{B(!1)}}),w=G9(),{columns:Y1}=U9(),i=f1.useMemo(()=>{if(!Q)return H;let A=Q.toLowerCase();return H.filter((b)=>b.entry.name.toLowerCase().includes(A)||b.entry.description?.toLowerCase().includes(A)||b.marketplaceName.toLowerCase().includes(A))},[H,Q]),[r,z1]=f1.useState(0),[v,Q1]=f1.useState(new Set),[G1,J1]=f1.useState(new Set),s=v0({totalItems:i.length,selectedIndex:r});f1.useEffect(()=>{z1(0)},[Q]);let[X1,L1]=f1.useState(0),[l,T]=f1.useState(!1),[C,j]=f1.useState(null),[n,H1]=f1.useState(null),[R,g]=f1.useState(null);f1.useEffect(()=>{async function A(){try{let b=await J0(),{marketplaces:u,failures:Z1}=await Y0(b),x=[];for(let{name:V1,data:c1}of u)if(c1)for(let g1 of c1.plugins){let W0=K0(g1.name,V1);x.push({entry:g1,marketplaceName:V1,pluginId:W0,isInstalled:h0(W0)})}let N1=x.filter((V1)=>!V1.isInstalled&&!j0(V1.pluginId));try{let V1=await q9();if($(V1),V1)N1.sort((c1,g1)=>{let W0=V1.get(c1.pluginId)??0,U=V1.get(g1.pluginId)??0;if(W0!==U)return U-W0;return c1.entry.name.localeCompare(g1.entry.name)});else N1.sort((c1,g1)=>c1.entry.name.localeCompare(g1.entry.name))}catch(V1){L0(`Failed to fetch install counts: ${I1(V1)}`),N1.sort((c1,g1)=>c1.entry.name.localeCompare(g1.entry.name))}e(N1);let b1=Object.keys(b).length;if(N1.length===0){let V1=await DJ({configuredMarketplaceCount:b1,failedMarketplaceCount:Z1.length});g(V1)}let p1=n1(u,(V1)=>V1.data!==null),T1=P0(Z1,p1);if(T1)if(T1.type==="warning")H1(T1.message+". Showing available plugins.");else throw Error(T1.message);if(E){let V1=x.find((c1)=>c1.entry.name===E);if(V1)if(V1.isInstalled)J(`Plugin '${V1.pluginId}' is already installed. Use '/plugin' to manage existing plugins.`);else V(V1),O("plugin-details");else J(`Plugin "${E}" not found in any marketplace`)}}catch(b){J(b instanceof Error?b.message:"Failed to load plugins")}finally{O1(!1)}}A()},[J,E]);let k=async()=>{if(v.size===0)return;let A=H.filter((x)=>v.has(x.pluginId));J1(new Set(A.map((x)=>x.pluginId)));let b=0,u=0,Z1=[];for(let x of A){let N1=await $0({pluginId:x.pluginId,entry:x.entry,marketplaceName:x.marketplaceName,scope:"user"});if(N1.success)b++;else u++,Z1.push({name:x.entry.name,reason:N1.error})}if(J1(new Set),Q1(new Set),M1(),u===0){let x=`✓ Installed ${b} ${h1(b,"plugin")}. Run /reload-plugins to activate.`;W(x)}else if(b===0)J(`Failed to install: ${w0(Z1,!0)}`);else{let x=`✓ Installed ${b} of ${b+u} plugins. Failed: ${w0(Z1,!1)}. Run /reload-plugins to activate successfully installed plugins.`;W(x)}if(b>0){if(F)await F()}K({type:"menu"})},h=async(A,b="user")=>{T(!0),j(null);let u=await $0({pluginId:A.pluginId,entry:A.entry,marketplaceName:A.marketplaceName,scope:b});if(u.success){let Z1=await s0(A.pluginId);if(Z1){T(!1),O({type:"plugin-options",plugin:Z1,pluginId:A.pluginId});return}if(W(u.message),F)await F();K({type:"menu"})}else T(!1),j(u.error)};f1.useEffect(()=>{if(Y)W(Y)},[Y,W]),m1("confirm:no",()=>{O("plugin-list"),V(null)},{context:"Confirmation",isActive:N==="plugin-details"}),m1("confirm:no",()=>{K({type:"menu"})},{context:"Confirmation",isActive:N==="plugin-list"&&!I}),e1((A,b)=>{let u=!b.ctrl&&!b.meta;if(!I){if(A==="/"&&u)B(!0),m("");else if(u&&A.length>0&&!/^\s+$/.test(A)&&A!=="j"&&A!=="k"&&A!=="i")B(!0),m(A)}},{isActive:N==="plugin-list"&&!t}),C1({"select:previous":()=>{if(r===0)B(!0);else s.handleSelectionChange(r-1,z1)},"select:next":()=>{if(r<i.length-1)s.handleSelectionChange(r+1,z1)},"select:accept":()=>{if(r===i.length&&v.size>0)k();else if(r<i.length){let A=i[r];if(A)if(A.isInstalled)K({type:"manage-plugins",targetPlugin:A.entry.name,targetMarketplace:A.marketplaceName});else V(A),O("plugin-details"),L1(0),j(null)}}},{context:"Select",isActive:N==="plugin-list"&&!I}),C1({"plugin:toggle":()=>{if(r<i.length){let A=i[r];if(A&&!A.isInstalled){let b=new Set(v);if(b.has(A.pluginId))b.delete(A.pluginId);else b.add(A.pluginId);Q1(b)}}},"plugin:install":()=>{if(v.size>0)k()}},{context:"Plugin",isActive:N==="plugin-list"&&!I});let P=RJ.useMemo(()=>{if(!L)return[];let A=L.entry.homepage,b=Q0(L);return k0(A,b)},[L]);if(C1({"select:previous":()=>{if(X1>0)L1(X1-1)},"select:next":()=>{if(X1<P.length-1)L1(X1+1)},"select:accept":()=>{if(!L)return;let A=P[X1]?.action,b=L.entry.homepage,u=Q0(L);if(A==="install-user")h(L,"user");else if(A==="install-project")h(L,"project");else if(A==="install-local")h(L,"local");else if(A==="homepage"&&b)Z0(b);else if(A==="github"&&u)Z0(`https://github.com/${u}`);else if(A==="back")O("plugin-list"),V(null)}},{context:"Select",isActive:N==="plugin-details"&&!!L}),typeof N==="object"&&N.type==="plugin-options"){let u=function(Z1){if(W(Z1),F)F();K({type:"menu"})},{plugin:A,pluginId:b}=N;return X(f0,{plugin:A,pluginId:b,onDone:(Z1,x)=>{switch(Z1){case"configured":u(`✓ Installed and configured ${A.name}. Run /reload-plugins to apply.`);break;case"skipped":u(`✓ Installed ${A.name}. Run /reload-plugins to apply.`);break;case"error":u(`Installed but failed to save config: ${x}`);break}}})}if(t)return X(Z,{children:"Loading…"});if(Y)return X(Z,{color:"error",children:Y});if(N==="plugin-details"&&L){let A=L.entry.homepage,b=Q0(L),u=k0(A,b);return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Plugin details"})}),z(G,{flexDirection:"column",marginBottom:1,children:[X(Z,{bold:!0,children:L.entry.name}),z(Z,{dimColor:!0,children:["from ",L.marketplaceName]}),L.entry.version&&z(Z,{dimColor:!0,children:["Version: ",L.entry.version]}),L.entry.description&&X(G,{marginTop:1,children:X(Z,{children:L.entry.description})}),L.entry.author&&X(G,{marginTop:1,children:z(Z,{dimColor:!0,children:["By:"," ",typeof L.entry.author==="string"?L.entry.author:L.entry.author.name]})})]}),X(e0,{}),C&&X(G,{marginBottom:1,children:z(Z,{color:"error",children:["Error: ",C]})}),X(G,{flexDirection:"column",children:u.map((Z1,x)=>z(G,{children:[X1===x&&X(Z,{children:"> "}),X1!==x&&X(Z,{children:" "}),X(Z,{bold:X1===x,children:l&&Z1.action.startsWith("install-")?"Installing…":Z1.label})]},Z1.action))}),X(G,{marginTop:1,children:X(Z,{dimColor:!0,children:z(k1,{children:[X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})]})})})]})}if(H.length===0)return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Discover plugins"})}),X(bX,{reason:R}),X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:"Esc to go back"})})]});let f=s.getVisibleItems(i);return z(G,{flexDirection:"column",children:[z(G,{children:[X(Z,{bold:!0,children:"Discover plugins"}),s.needsPagination&&z(Z,{dimColor:!0,children:[" ","(",s.scrollPosition.current,"/",s.scrollPosition.total,")"]})]}),X(G,{marginBottom:1,children:X(Q9,{query:Q,isFocused:I,isTerminalFocused:w,width:Y1-4,cursorOffset:W1})}),n&&X(G,{marginBottom:1,children:z(Z,{color:"warning",children:[_.warning," ",n]})}),i.length===0&&Q&&X(G,{marginBottom:1,children:z(Z,{dimColor:!0,children:['No plugins match "',Q,'"']})}),s.scrollPosition.canScrollUp&&X(G,{children:z(Z,{dimColor:!0,children:[" ",_.arrowUp," more above"]})}),f.map((A,b)=>{let u=s.toActualIndex(b),Z1=r===u,x=v.has(A.pluginId),N1=G1.has(A.pluginId),b1=b===f.length-1;return z(G,{flexDirection:"column",marginBottom:b1&&!Y?0:1,children:[z(G,{children:[z(Z,{color:Z1&&!I?"suggestion":void 0,children:[Z1&&!I?_.pointer:" "," "]}),z(Z,{children:[N1?_.ellipsis:x?_.radioOn:_.radioOff," ",A.entry.name,z(Z,{dimColor:!0,children:[" · ",A.marketplaceName]}),A.entry.tags?.includes("community-managed")&&X(Z,{dimColor:!0,children:" [Community Managed]"}),D&&A.marketplaceName===Y9&&z(Z,{dimColor:!0,children:[" · ",z9(D.get(A.pluginId)??0)," ","installs"]})]})]}),A.entry.description&&X(G,{marginLeft:4,children:X(Z,{dimColor:!0,children:Z9(A.entry.description,60)})})]},`${s.startIndex}-${A.pluginId}`)}),s.scrollPosition.canScrollDown&&X(G,{children:z(Z,{dimColor:!0,children:[" ",_.arrowDown," more below"]})}),Y&&X(G,{marginTop:1,children:z(Z,{color:"error",children:[_.cross," ",Y]})}),X(EX,{hasSelection:v.size>0,canToggle:r<i.length&&!i[r]?.isInstalled})]})}function EX(Y){let J=k9.c(10),{hasSelection:q,canToggle:W}=Y,K;if(J[0]!==q)K=q&&X(U1,{action:"plugin:install",context:"Plugin",fallback:"i",description:"install",bold:!0}),J[0]=q,J[1]=K;else K=J[1];let F;if(J[2]===Symbol.for("react.memo_cache_sentinel"))F=X(Z,{children:"type to search"}),J[2]=F;else F=J[2];let y;if(J[3]!==W)y=W&&X(U1,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"}),J[3]=W,J[4]=y;else y=J[4];let E,N;if(J[5]===Symbol.for("react.memo_cache_sentinel"))E=X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"}),N=X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"}),J[5]=E,J[6]=N;else E=J[5],N=J[6];let O;if(J[7]!==K||J[8]!==y)O=X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[K,F,y,E,N]})})}),J[7]=K,J[8]=y,J[9]=O;else O=J[9];return O}function bX(Y){let J=k9.c(6),{reason:q}=Y;switch(q){case"git-not-installed":{let W;if(J[0]===Symbol.for("react.memo_cache_sentinel"))W=z(x1,{children:[X(Z,{dimColor:!0,children:"Git is required to install marketplaces."}),X(Z,{dimColor:!0,children:"Please install git and restart Claude Code."})]}),J[0]=W;else W=J[0];return W}case"all-blocked-by-policy":{let W;if(J[1]===Symbol.for("react.memo_cache_sentinel"))W=z(x1,{children:[X(Z,{dimColor:!0,children:"Your organization policy does not allow any external marketplaces."}),X(Z,{dimColor:!0,children:"Contact your administrator."})]}),J[1]=W;else W=J[1];return W}case"policy-restricts-sources":{let W;if(J[2]===Symbol.for("react.memo_cache_sentinel"))W=z(x1,{children:[X(Z,{dimColor:!0,children:"Your organization restricts which marketplaces can be added."}),X(Z,{dimColor:!0,children:"Switch to the Marketplaces tab to view allowed sources."})]}),J[2]=W;else W=J[2];return W}case"all-marketplaces-failed":{let W;if(J[3]===Symbol.for("react.memo_cache_sentinel"))W=z(x1,{children:[X(Z,{dimColor:!0,children:"Failed to load marketplace data."}),X(Z,{dimColor:!0,children:"Check your network connection."})]}),J[3]=W;else W=J[3];return W}case"all-plugins-installed":{let W;if(J[4]===Symbol.for("react.memo_cache_sentinel"))W=z(x1,{children:[X(Z,{dimColor:!0,children:"All available plugins are already installed."}),X(Z,{dimColor:!0,children:"Check for new plugins later or add more marketplaces."})]}),J[4]=W;else W=J[4];return W}case"no-marketplaces-configured":default:{let W;if(J[5]===Symbol.for("react.memo_cache_sentinel"))W=z(x1,{children:[X(Z,{dimColor:!0,children:"No plugins available."}),X(Z,{dimColor:!0,children:"Add a marketplace first using the Marketplaces tab."})]}),J[5]=W;else W=J[5];return W}}}var k9,RJ,f1;var yJ=S1(()=>{X0();D0();A0();AJ();FJ();OJ();a1();C0();X9();C9();E9();G0();E0();LJ();f9();p0();b0();UJ();KJ();b9();I0();GJ();t0();V9();B9();J9();E1();k9=v1(U0(),1),RJ=v1(o1(),1),f1=v1(o1(),1)});function CJ({setViewState:Y,error:J,setError:q,setResult:W,exitState:K,onManageComplete:F,targetMarketplace:y,action:E}){let[N,O]=d1.useState([]),[L,V]=d1.useState(!0),[H,e]=d1.useState(0),[t,O1]=d1.useState(!1),[D,$]=d1.useState(null),[I,a]=d1.useState(null),[B,Q]=d1.useState(null),[m,W1]=d1.useState("list"),[w,Y1]=d1.useState(null),[i,r]=d1.useState(0),z1=d1.useRef(!1);d1.useEffect(()=>{async function T(){try{let C=await J0(),{enabled:j,disabled:n}=await R0(),H1=[...j,...n],{marketplaces:R,failures:g}=await Y0(C),k=[];for(let{name:f,config:A,data:b}of R){let u=H1.filter((Z1)=>Z1.source.endsWith(`@${f}`));k.push({name:f,source:c0(A.source),lastUpdated:A.lastUpdated,pluginCount:b?.plugins.length,installedPlugins:u,pendingUpdate:!1,pendingRemove:!1,autoUpdate:v9(f,A)})}k.sort((f,A)=>{if(f.name==="claude-plugin-directory")return-1;if(A.name==="claude-plugin-directory")return 1;return f.name.localeCompare(A.name)}),O(k);let h=n1(R,(f)=>f.data!==null),P=P0(g,h);if(P)if(P.type==="warning")$(P.message);else throw Error(P.message);if(y&&!z1.current&&!J){z1.current=!0;let f=k.findIndex((A)=>A.name===y);if(f>=0){let A=k[f];if(E){e(f+1);let b=[...k];if(E==="update")b[f].pendingUpdate=!0;else if(E==="remove")b[f].pendingRemove=!0;O(b),setTimeout(G1,100,b)}else if(A)e(f+1),Y1(A),W1("details")}else if(q)q(`Marketplace not found: ${y}`)}}catch(C){if(q)q(C instanceof Error?C.message:"Failed to load marketplaces");$(C instanceof Error?C.message:"Failed to load marketplaces")}finally{V(!1)}}T()},[y,E,J]);let v=()=>{return N.some((T)=>T.pendingUpdate||T.pendingRemove)},Q1=()=>{let T=n1(N,(j)=>j.pendingUpdate),C=n1(N,(j)=>j.pendingRemove);return{updateCount:T,removeCount:C}},G1=async(T)=>{let C=T||N,j=m==="details";O1(!0),$(null),a(null),Q(null);try{let n=q0("userSettings"),H1=0,R=0,g=new Set;for(let x of C){if(x.pendingRemove){if(x.installedPlugins&&x.installedPlugins.length>0){let N1={...n?.enabledPlugins};for(let b1 of x.installedPlugins){let p1=K0(b1.name,x.name);N1[p1]=!1}T0("userSettings",{enabledPlugins:N1})}await L9(x.name),R++,x0("tengu_marketplace_removed",{marketplace_name:x.name,plugins_uninstalled:x.installedPlugins?.length||0});continue}if(x.pendingUpdate)await VJ(x.name,(N1)=>{Q(N1)}),H1++,g.add(x.name.toLowerCase()),x0("tengu_marketplace_updated",{marketplace_name:x.name})}let k=0;if(g.size>0)k=(await EJ(g)).length;if(M1(),F)await F();let h=await J0(),{enabled:P,disabled:f}=await R0(),A=[...P,...f],{marketplaces:b}=await Y0(h),u=[];for(let{name:x,config:N1,data:b1}of b){let p1=A.filter((T1)=>T1.source.endsWith(`@${x}`));u.push({name:x,source:c0(N1.source),lastUpdated:N1.lastUpdated,pluginCount:b1?.plugins.length,installedPlugins:p1,pendingUpdate:!1,pendingRemove:!1,autoUpdate:v9(x,N1)})}if(u.sort((x,N1)=>{if(x.name==="claude-plugin-directory")return-1;if(N1.name==="claude-plugin-directory")return 1;return x.name.localeCompare(N1.name)}),O(u),j&&w){let x=u.find((N1)=>N1.name===w.name);if(x)Y1(x)}let Z1=[];if(H1>0){let x=k>0?` (${k} ${h1(k,"plugin")} bumped)`:"";Z1.push(`Updated ${H1} ${h1(H1,"marketplace")}${x}`)}if(R>0)Z1.push(`Removed ${R} ${h1(R,"marketplace")}`);if(Z1.length>0){let x=`${_.tick} ${Z1.join(", ")}`;if(j)a(x);else W(x),setTimeout(Y,2000,{type:"menu"})}else if(!j)Y({type:"menu"})}catch(n){let H1=I1(n);if($(H1),q)q(H1)}finally{O1(!1),Q(null)}},J1=async()=>{if(!w)return;let T=N.map((C)=>C.name===w.name?{...C,pendingRemove:!0}:C);O(T),await G1(T)},s=(T)=>{if(!T)return[];let C=[{label:`Browse plugins (${T.pluginCount??0})`,value:"browse"},{label:"Update marketplace",secondaryLabel:T.lastUpdated?`(last updated ${new Date(T.lastUpdated).toLocaleDateString()})`:void 0,value:"update"}];if(!h9())C.push({label:T.autoUpdate?"Disable auto-update":"Enable auto-update",value:"toggle-auto-update"});return C.push({label:"Remove marketplace",value:"remove"}),C},X1=async(T)=>{let C=!T.autoUpdate;try{await BJ(T.name,C),O((j)=>j.map((n)=>n.name===T.name?{...n,autoUpdate:C}:n)),Y1((j)=>j?{...j,autoUpdate:C}:j)}catch(j){$(j instanceof Error?j.message:"Failed to update setting")}};if(m1("confirm:no",()=>{W1("list"),r(0)},{context:"Confirmation",isActive:!t&&(m==="details"||m==="confirm-remove")}),m1("confirm:no",()=>{O((T)=>T.map((C)=>({...C,pendingUpdate:!1,pendingRemove:!1}))),e(0)},{context:"Confirmation",isActive:!t&&m==="list"&&v()}),m1("confirm:no",()=>{Y({type:"menu"})},{context:"Confirmation",isActive:!t&&m==="list"&&!v()}),C1({"select:previous":()=>e((T)=>Math.max(0,T-1)),"select:next":()=>{let T=N.length+1;e((C)=>Math.min(T-1,C+1))},"select:accept":()=>{let T=H-1;if(H===0)Y({type:"add-marketplace"});else if(v())G1();else{let C=N[T];if(C)Y1(C),W1("details"),r(0)}}},{context:"Select",isActive:!t&&m==="list"}),e1((T)=>{let C=H-1;if((T==="u"||T==="U")&&C>=0)O((j)=>j.map((n,H1)=>H1===C?{...n,pendingUpdate:!n.pendingUpdate,pendingRemove:n.pendingUpdate?n.pendingRemove:!1}:n));else if((T==="r"||T==="R")&&C>=0){let j=N[C];if(j)Y1(j),W1("confirm-remove")}},{isActive:!t&&m==="list"}),C1({"select:previous":()=>r((T)=>Math.max(0,T-1)),"select:next":()=>{let T=s(w);r((C)=>Math.min(T.length-1,C+1))},"select:accept":()=>{if(!w)return;let C=s(w)[i];if(C?.value==="browse")Y({type:"browse-marketplace",targetMarketplace:w.name});else if(C?.value==="update"){let j=N.map((n)=>n.name===w.name?{...n,pendingUpdate:!0}:n);O(j),G1(j)}else if(C?.value==="toggle-auto-update")X1(w);else if(C?.value==="remove")W1("confirm-remove")}},{context:"Select",isActive:!t&&m==="details"}),e1((T)=>{if(T==="y"||T==="Y")J1();else if(T==="n"||T==="N")W1("list"),Y1(null)},{isActive:!t&&m==="confirm-remove"}),L)return X(Z,{children:"Loading marketplaces…"});if(N.length===0)return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Manage marketplaces"})}),z(G,{flexDirection:"row",gap:1,children:[z(Z,{color:"suggestion",children:[_.pointer," +"]}),X(Z,{bold:!0,color:"suggestion",children:"Add Marketplace"})]}),X(G,{marginLeft:3,children:X(Z,{dimColor:!0,italic:!0,children:K.pending?z(x1,{children:["Press ",K.keyName," again to go back"]}):z(k1,{children:[X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"})]})})})]});if(m==="confirm-remove"&&w){let T=w.installedPlugins?.length||0;return z(G,{flexDirection:"column",children:[z(Z,{bold:!0,color:"warning",children:["Remove marketplace ",X(Z,{italic:!0,children:w.name}),"?"]}),z(G,{flexDirection:"column",children:[T>0&&X(G,{marginTop:1,children:z(Z,{color:"warning",children:["This will also uninstall ",T," ",h1(T,"plugin")," from this marketplace:"]})}),w.installedPlugins&&w.installedPlugins.length>0&&X(G,{flexDirection:"column",marginTop:1,marginLeft:2,children:w.installedPlugins.map((C)=>z(Z,{dimColor:!0,children:["• ",C.name]},C.name))}),X(G,{marginTop:1,children:z(Z,{children:["Press ",X(Z,{bold:!0,children:"y"})," to confirm or ",X(Z,{bold:!0,children:"n"})," to cancel"]})})]})]})}if(m==="details"&&w){let T=w.pendingUpdate||t,C=s(w);return z(G,{flexDirection:"column",children:[X(Z,{bold:!0,children:w.name}),X(Z,{dimColor:!0,children:w.source}),X(G,{marginTop:1,children:z(Z,{children:[w.pluginCount||0," available"," ",h1(w.pluginCount||0,"plugin")]})}),w.installedPlugins&&w.installedPlugins.length>0&&z(G,{flexDirection:"column",marginTop:1,children:[z(Z,{bold:!0,children:["Installed plugins (",w.installedPlugins.length,"):"]}),X(G,{flexDirection:"column",marginLeft:1,children:w.installedPlugins.map((j)=>z(G,{flexDirection:"row",gap:1,children:[X(Z,{children:_.bullet}),z(G,{flexDirection:"column",children:[X(Z,{children:j.name}),X(Z,{dimColor:!0,children:j.manifest.description})]})]},j.name))})]}),T&&z(G,{marginTop:1,flexDirection:"column",children:[X(Z,{color:"claude",children:"Updating marketplace…"}),B&&X(Z,{dimColor:!0,children:B})]}),!T&&I&&X(G,{marginTop:1,children:X(Z,{color:"claude",children:I})}),!T&&D&&X(G,{marginTop:1,children:X(Z,{color:"error",children:D})}),!T&&X(G,{flexDirection:"column",marginTop:1,children:C.map((j,n)=>{if(!j)return null;let H1=n===i;return z(G,{children:[z(Z,{color:H1?"suggestion":void 0,children:[H1?_.pointer:" "," ",j.label]}),j.secondaryLabel&&z(Z,{dimColor:!0,children:[" ",j.secondaryLabel]})]},j.value)})}),!T&&!h9()&&w.autoUpdate&&X(G,{marginTop:1,children:X(Z,{dimColor:!0,children:"Auto-update enabled. Claude Code will automatically update this marketplace and its installed plugins."})}),X(G,{marginLeft:3,children:X(Z,{dimColor:!0,italic:!0,children:T?X(x1,{children:"Please wait…"}):z(k1,{children:[X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"})]})})})]})}let{updateCount:L1,removeCount:l}=Q1();return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Manage marketplaces"})}),z(G,{flexDirection:"row",gap:1,marginBottom:1,children:[z(Z,{color:H===0?"suggestion":void 0,children:[H===0?_.pointer:" "," +"]}),X(Z,{bold:!0,color:H===0?"suggestion":void 0,children:"Add Marketplace"})]}),X(G,{flexDirection:"column",children:N.map((T,C)=>{let j=C+1===H,n=[];if(T.pendingUpdate)n.push("UPDATE");if(T.pendingRemove)n.push("REMOVE");return z(G,{flexDirection:"row",gap:1,marginBottom:1,children:[z(Z,{color:j?"suggestion":void 0,children:[j?_.pointer:" "," ",T.pendingRemove?_.cross:_.bullet]}),z(G,{flexDirection:"column",flexGrow:1,children:[z(G,{flexDirection:"row",gap:1,children:[z(Z,{bold:!0,strikethrough:T.pendingRemove,dimColor:T.pendingRemove,children:[T.name==="claude-plugins-official"&&X(Z,{color:"claude",children:"✻ "}),T.name,T.name==="claude-plugins-official"&&X(Z,{color:"claude",children:" ✻"})]}),n.length>0&&z(Z,{color:"warning",children:["[",n.join(", "),"]"]})]}),X(Z,{dimColor:!0,children:T.source}),z(Z,{dimColor:!0,children:[T.pluginCount!==void 0&&z(x1,{children:[T.pluginCount," available"]}),T.installedPlugins&&T.installedPlugins.length>0&&z(x1,{children:[" • ",T.installedPlugins.length," installed"]}),T.lastUpdated&&z(x1,{children:[" ","• Updated"," ",new Date(T.lastUpdated).toLocaleDateString()]})]})]})]},T.name)})}),v()&&z(G,{marginTop:1,flexDirection:"column",children:[z(Z,{children:[X(Z,{bold:!0,children:"Pending changes:"})," ",X(Z,{dimColor:!0,children:"Enter to apply"})]}),L1>0&&z(Z,{children:["• Update ",L1," ",h1(L1,"marketplace")]}),l>0&&z(Z,{color:"warning",children:["• Remove ",l," ",h1(l,"marketplace")]})]}),t&&X(G,{marginTop:1,children:X(Z,{color:"claude",children:"Processing changes…"})}),D&&X(G,{marginTop:1,children:X(Z,{color:"error",children:D})}),X(vX,{exitState:K,hasPendingActions:v()})]})}function vX(Y){let J=bJ.c(18),{exitState:q,hasPendingActions:W}=Y;if(q.pending){let V;if(J[0]!==q.keyName)V=X(G,{marginTop:1,children:z(Z,{dimColor:!0,italic:!0,children:["Press ",q.keyName," again to go back"]})}),J[0]=q.keyName,J[1]=V;else V=J[1];return V}let K;if(J[2]!==W)K=W&&X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"apply changes"}),J[2]=W,J[3]=K;else K=J[3];let F;if(J[4]!==W)F=!W&&X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),J[4]=W,J[5]=F;else F=J[5];let y;if(J[6]!==W)y=!W&&X(d0,{shortcut:"u",action:"update"}),J[6]=W,J[7]=y;else y=J[7];let E;if(J[8]!==W)E=!W&&X(d0,{shortcut:"r",action:"remove"}),J[8]=W,J[9]=E;else E=J[9];let N=W?"cancel":"go back",O;if(J[10]!==N)O=X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:N}),J[10]=N,J[11]=O;else O=J[11];let L;if(J[12]!==K||J[13]!==F||J[14]!==y||J[15]!==E||J[16]!==O)L=X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[K,F,y,E,O]})})}),J[12]=K,J[13]=F,J[14]=y,J[15]=E,J[16]=O,J[17]=L;else L=J[17];return L}var bJ,d1;var fJ=S1(()=>{X0();m9();D0();A0();x9();a1();C0();X9();fX();G0();E0();p0();b0();kX();y9();CX();w9();I0();E1();bJ=v1(U0(),1),d1=v1(o1(),1)});function H0(Y){switch(Y.type){case"path-not-found":return`${Y.component} path not found: ${Y.path}`;case"git-auth-failed":return`Git ${Y.authType.toUpperCase()} authentication failed for ${Y.gitUrl}`;case"git-timeout":return`Git ${Y.operation} timed out for ${Y.gitUrl}`;case"network-error":return`Network error accessing ${Y.url}${Y.details?`: ${Y.details}`:""}`;case"manifest-parse-error":return`Failed to parse manifest at ${Y.manifestPath}: ${Y.parseError}`;case"manifest-validation-error":return`Invalid manifest at ${Y.manifestPath}: ${Y.validationErrors.join(", ")}`;case"plugin-not-found":return`Plugin "${Y.pluginId}" not found in marketplace "${Y.marketplace}"`;case"marketplace-not-found":return`Marketplace "${Y.marketplace}" not found`;case"marketplace-load-failed":return`Failed to load marketplace "${Y.marketplace}": ${Y.reason}`;case"mcp-config-invalid":return`Invalid MCP server config for "${Y.serverName}": ${Y.validationError}`;case"mcp-server-suppressed-duplicate":{let q=Y.duplicateOf.startsWith("plugin:")?`server provided by plugin "${Y.duplicateOf.split(":")[1]??"?"}"`:`already-configured "${Y.duplicateOf}"`;return`MCP server "${Y.serverName}" skipped — same command/URL as ${q}`}case"hook-load-failed":return`Failed to load hooks from ${Y.hookPath}: ${Y.reason}`;case"component-load-failed":return`Failed to load ${Y.component} from ${Y.path}: ${Y.reason}`;case"mcpb-download-failed":return`Failed to download MCPB from ${Y.url}: ${Y.reason}`;case"mcpb-extract-failed":return`Failed to extract MCPB ${Y.mcpbPath}: ${Y.reason}`;case"mcpb-invalid-manifest":return`MCPB manifest invalid at ${Y.mcpbPath}: ${Y.validationError}`;case"marketplace-blocked-by-policy":return Y.blockedByBlocklist?`Marketplace "${Y.marketplace}" is blocked by enterprise policy`:`Marketplace "${Y.marketplace}" is not in the allowed marketplace list`;case"dependency-unsatisfied":return Y.reason==="not-enabled"?`Dependency "${Y.dependency}" is disabled`:`Dependency "${Y.dependency}" is not installed`;case"lsp-config-invalid":return`Invalid LSP server config for "${Y.serverName}": ${Y.validationError}`;case"lsp-server-start-failed":return`LSP server "${Y.serverName}" failed to start: ${Y.reason}`;case"lsp-server-crashed":return Y.signal?`LSP server "${Y.serverName}" crashed with signal ${Y.signal}`:`LSP server "${Y.serverName}" crashed with exit code ${Y.exitCode??"unknown"}`;case"lsp-request-timeout":return`LSP server "${Y.serverName}" timed out on ${Y.method} after ${Y.timeoutMs}ms`;case"lsp-request-failed":return`LSP server "${Y.serverName}" ${Y.method} failed: ${Y.error}`;case"plugin-cache-miss":return`Plugin "${Y.plugin}" not cached at ${Y.installPath}`;case"generic-error":return Y.error}return kJ(Y)}function _0(Y){switch(Y.type){case"path-not-found":return"Check that the path in your manifest or marketplace config is correct";case"git-auth-failed":return Y.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 "${Y.marketplace}"`;case"marketplace-not-found":return Y.availableMarketplaces.length>0?`Available marketplaces: ${Y.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(Y.duplicateOf.startsWith("plugin:"))return`Disable plugin "${Y.duplicateOf.split(":")[1]??"the other plugin"}" if you want this plugin's version instead`;return`Remove "${Y.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 ${Y.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(Y.blockedByBlocklist)return"This marketplace source is explicitly blocked by your administrator";return Y.allowedSources.length>0?`Allowed sources: ${Y.allowedSources.join(", ")}`:"Contact your administrator to configure allowed marketplace sources";case"dependency-unsatisfied":return Y.reason==="not-enabled"?`Enable "${Y.dependency}" or uninstall "${Y.plugin}"`:`Install "${Y.dependency}" or uninstall "${Y.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 J=Y;return null}var M9=S1(()=>{hX()});function wJ(Y){let J=hJ.c(142),{item:q,isSelected:W}=Y,[K]=vJ();if(q.type==="plugin"){let B,Q;if(q.pendingToggle){let l;if(J[0]!==K)l=l1("suggestion",K)(_.arrowRight),J[0]=K,J[1]=l;else l=J[1];B=l,Q=q.pendingToggle==="will-enable"?"will enable":"will disable"}else if(q.errorCount>0){let l;if(J[2]!==K)l=l1("error",K)(_.cross),J[2]=K,J[3]=l;else l=J[3];B=l;let T=q.errorCount,C;if(J[4]!==q.errorCount)C=h1(q.errorCount,"error"),J[4]=q.errorCount,J[5]=C;else C=J[5];Q=`${T} ${C}`}else if(!q.isEnabled){let l;if(J[6]!==K)l=l1("inactive",K)(_.radioOff),J[6]=K,J[7]=l;else l=J[7];B=l,Q="disabled"}else{let l;if(J[8]!==K)l=l1("success",K)(_.tick),J[8]=K,J[9]=l;else l=J[9];B=l,Q="enabled"}let m=W?"suggestion":void 0,W1=W?`${_.pointer} `:" ",w;if(J[10]!==m||J[11]!==W1)w=X(Z,{color:m,children:W1}),J[10]=m,J[11]=W1,J[12]=w;else w=J[12];let Y1=W?"suggestion":void 0,i;if(J[13]!==q.name||J[14]!==Y1)i=X(Z,{color:Y1,children:q.name}),J[13]=q.name,J[14]=Y1,J[15]=i;else i=J[15];let r=!W,z1;if(J[16]===Symbol.for("react.memo_cache_sentinel"))z1=X(Z,{backgroundColor:"userMessageBackground",children:"Plugin"}),J[16]=z1;else z1=J[16];let v;if(J[17]!==r)v=z(Z,{dimColor:r,children:[" ",z1]}),J[17]=r,J[18]=v;else v=J[18];let Q1;if(J[19]!==q.marketplace)Q1=z(Z,{dimColor:!0,children:[" · ",q.marketplace]}),J[19]=q.marketplace,J[20]=Q1;else Q1=J[20];let G1=!W,J1;if(J[21]!==B||J[22]!==G1)J1=z(Z,{dimColor:G1,children:[" · ",B," "]}),J[21]=B,J[22]=G1,J[23]=J1;else J1=J[23];let s=!W,X1;if(J[24]!==Q||J[25]!==s)X1=X(Z,{dimColor:s,children:Q}),J[24]=Q,J[25]=s,J[26]=X1;else X1=J[26];let L1;if(J[27]!==J1||J[28]!==X1||J[29]!==w||J[30]!==i||J[31]!==v||J[32]!==Q1)L1=z(G,{children:[w,i,v,Q1,J1,X1]}),J[27]=J1,J[28]=X1,J[29]=w,J[30]=i,J[31]=v,J[32]=Q1,J[33]=L1;else L1=J[33];return L1}if(q.type==="flagged-plugin"){let B;if(J[34]!==K)B=l1("warning",K)(_.warning),J[34]=K,J[35]=B;else B=J[35];let Q=B,m=W?"suggestion":void 0,W1=W?`${_.pointer} `:" ",w;if(J[36]!==m||J[37]!==W1)w=X(Z,{color:m,children:W1}),J[36]=m,J[37]=W1,J[38]=w;else w=J[38];let Y1=W?"suggestion":void 0,i;if(J[39]!==q.name||J[40]!==Y1)i=X(Z,{color:Y1,children:q.name}),J[39]=q.name,J[40]=Y1,J[41]=i;else i=J[41];let r=!W,z1;if(J[42]===Symbol.for("react.memo_cache_sentinel"))z1=X(Z,{backgroundColor:"userMessageBackground",children:"Plugin"}),J[42]=z1;else z1=J[42];let v;if(J[43]!==r)v=z(Z,{dimColor:r,children:[" ",z1]}),J[43]=r,J[44]=v;else v=J[44];let Q1;if(J[45]!==q.marketplace)Q1=z(Z,{dimColor:!0,children:[" · ",q.marketplace]}),J[45]=q.marketplace,J[46]=Q1;else Q1=J[46];let G1=!W,J1;if(J[47]!==Q||J[48]!==G1)J1=z(Z,{dimColor:G1,children:[" · ",Q," "]}),J[47]=Q,J[48]=G1,J[49]=J1;else J1=J[49];let s=!W,X1;if(J[50]!==s)X1=X(Z,{dimColor:s,children:"removed"}),J[50]=s,J[51]=X1;else X1=J[51];let L1;if(J[52]!==Q1||J[53]!==J1||J[54]!==X1||J[55]!==w||J[56]!==i||J[57]!==v)L1=z(G,{children:[w,i,v,Q1,J1,X1]}),J[52]=Q1,J[53]=J1,J[54]=X1,J[55]=w,J[56]=i,J[57]=v,J[58]=L1;else L1=J[58];return L1}if(q.type==="failed-plugin"){let B;if(J[59]!==K)B=l1("error",K)(_.cross),J[59]=K,J[60]=B;else B=J[60];let Q=B,m=q.errorCount,W1;if(J[61]!==q.errorCount)W1=h1(q.errorCount,"error"),J[61]=q.errorCount,J[62]=W1;else W1=J[62];let w=`failed to load · ${m} ${W1}`,Y1=W?"suggestion":void 0,i=W?`${_.pointer} `:" ",r;if(J[63]!==Y1||J[64]!==i)r=X(Z,{color:Y1,children:i}),J[63]=Y1,J[64]=i,J[65]=r;else r=J[65];let z1=W?"suggestion":void 0,v;if(J[66]!==q.name||J[67]!==z1)v=X(Z,{color:z1,children:q.name}),J[66]=q.name,J[67]=z1,J[68]=v;else v=J[68];let Q1=!W,G1;if(J[69]===Symbol.for("react.memo_cache_sentinel"))G1=X(Z,{backgroundColor:"userMessageBackground",children:"Plugin"}),J[69]=G1;else G1=J[69];let J1;if(J[70]!==Q1)J1=z(Z,{dimColor:Q1,children:[" ",G1]}),J[70]=Q1,J[71]=J1;else J1=J[71];let s;if(J[72]!==q.marketplace)s=z(Z,{dimColor:!0,children:[" · ",q.marketplace]}),J[72]=q.marketplace,J[73]=s;else s=J[73];let X1=!W,L1;if(J[74]!==Q||J[75]!==X1)L1=z(Z,{dimColor:X1,children:[" · ",Q," "]}),J[74]=Q,J[75]=X1,J[76]=L1;else L1=J[76];let l=!W,T;if(J[77]!==w||J[78]!==l)T=X(Z,{dimColor:l,children:w}),J[77]=w,J[78]=l,J[79]=T;else T=J[79];let C;if(J[80]!==J1||J[81]!==s||J[82]!==L1||J[83]!==T||J[84]!==r||J[85]!==v)C=z(G,{children:[r,v,J1,s,L1,T]}),J[80]=J1,J[81]=s,J[82]=L1,J[83]=T,J[84]=r,J[85]=v,J[86]=C;else C=J[86];return C}let F,y;if(q.status==="connected"){let B;if(J[87]!==K)B=l1("success",K)(_.tick),J[87]=K,J[88]=B;else B=J[88];F=B,y="connected"}else if(q.status==="disabled"){let B;if(J[89]!==K)B=l1("inactive",K)(_.radioOff),J[89]=K,J[90]=B;else B=J[90];F=B,y="disabled"}else if(q.status==="pending"){let B;if(J[91]!==K)B=l1("inactive",K)(_.radioOff),J[91]=K,J[92]=B;else B=J[92];F=B,y="connecting…"}else if(q.status==="needs-auth"){let B;if(J[93]!==K)B=l1("warning",K)(_.triangleUpOutline),J[93]=K,J[94]=B;else B=J[94];F=B,y="Enter to auth"}else{let B;if(J[95]!==K)B=l1("error",K)(_.cross),J[95]=K,J[96]=B;else B=J[96];F=B,y="failed"}if(q.indented){let B=W?"suggestion":void 0,Q=W?`${_.pointer} `:" ",m;if(J[97]!==B||J[98]!==Q)m=X(Z,{color:B,children:Q}),J[97]=B,J[98]=Q,J[99]=m;else m=J[99];let W1=!W,w;if(J[100]!==W1)w=X(Z,{dimColor:W1,children:"└ "}),J[100]=W1,J[101]=w;else w=J[101];let Y1=W?"suggestion":void 0,i;if(J[102]!==q.name||J[103]!==Y1)i=X(Z,{color:Y1,children:q.name}),J[102]=q.name,J[103]=Y1,J[104]=i;else i=J[104];let r=!W,z1;if(J[105]===Symbol.for("react.memo_cache_sentinel"))z1=X(Z,{backgroundColor:"userMessageBackground",children:"MCP"}),J[105]=z1;else z1=J[105];let v;if(J[106]!==r)v=z(Z,{dimColor:r,children:[" ",z1]}),J[106]=r,J[107]=v;else v=J[107];let Q1=!W,G1;if(J[108]!==F||J[109]!==Q1)G1=z(Z,{dimColor:Q1,children:[" · ",F," "]}),J[108]=F,J[109]=Q1,J[110]=G1;else G1=J[110];let J1=!W,s;if(J[111]!==y||J[112]!==J1)s=X(Z,{dimColor:J1,children:y}),J[111]=y,J[112]=J1,J[113]=s;else s=J[113];let X1;if(J[114]!==v||J[115]!==G1||J[116]!==s||J[117]!==m||J[118]!==w||J[119]!==i)X1=z(G,{children:[m,w,i,v,G1,s]}),J[114]=v,J[115]=G1,J[116]=s,J[117]=m,J[118]=w,J[119]=i,J[120]=X1;else X1=J[120];return X1}let E=W?"suggestion":void 0,N=W?`${_.pointer} `:" ",O;if(J[121]!==E||J[122]!==N)O=X(Z,{color:E,children:N}),J[121]=E,J[122]=N,J[123]=O;else O=J[123];let L=W?"suggestion":void 0,V;if(J[124]!==q.name||J[125]!==L)V=X(Z,{color:L,children:q.name}),J[124]=q.name,J[125]=L,J[126]=V;else V=J[126];let H=!W,e;if(J[127]===Symbol.for("react.memo_cache_sentinel"))e=X(Z,{backgroundColor:"userMessageBackground",children:"MCP"}),J[127]=e;else e=J[127];let t;if(J[128]!==H)t=z(Z,{dimColor:H,children:[" ",e]}),J[128]=H,J[129]=t;else t=J[129];let O1=!W,D;if(J[130]!==F||J[131]!==O1)D=z(Z,{dimColor:O1,children:[" · ",F," "]}),J[130]=F,J[131]=O1,J[132]=D;else D=J[132];let $=!W,I;if(J[133]!==y||J[134]!==$)I=X(Z,{dimColor:$,children:y}),J[133]=y,J[134]=$,J[135]=I;else I=J[135];let a;if(J[136]!==D||J[137]!==I||J[138]!==O||J[139]!==V||J[140]!==t)a=z(G,{children:[O,V,t,D,I]}),J[136]=D,J[137]=I,J[138]=O,J[139]=V,J[140]=t,J[141]=a;else a=J[141];return a}var hJ;var MJ=S1(()=>{X0();a1();I0();E1();hJ=v1(U0(),1)});import*as V0 from"fs/promises";import*as m0 from"path";async function $J(Y){try{return(await V0.readdir(Y,{withFileTypes:!0})).filter((q)=>q.isFile()&&q.name.endsWith(".md")).map((q)=>{return m0.basename(q.name,".md")})}catch(J){let q=I1(J);return L0(`Failed to read plugin components from ${Y}: ${q}`,{level:"error"}),t1(B0(J)),[]}}async function pX(Y){try{let J=await V0.readdir(Y,{withFileTypes:!0}),q=[];for(let W of J)if(W.isDirectory()||W.isSymbolicLink()){let K=m0.join(Y,W.name,"SKILL.md");try{if((await V0.stat(K)).isFile())q.push(W.name)}catch{}}return q}catch(J){let q=I1(J);return L0(`Failed to read skill directories from ${Y}: ${q}`,{level:"error"}),t1(B0(J)),[]}}function cX({plugin:Y,marketplace:J}){let[q,W]=R1.useState(null),[K,F]=R1.useState(!0),[y,E]=R1.useState(null);if(R1.useEffect(()=>{async function O(){try{if(J==="builtin"){let H=_J(Y.name);if(H){let e=H.skills?.map((D)=>D.name)??[],t=H.hooks?Object.keys(H.hooks):[],O1=H.mcpServers?Object.keys(H.mcpServers):[];W({commands:null,agents:null,skills:e.length>0?e:null,hooks:t.length>0?t:null,mcpServers:O1.length>0?O1:null})}else E(`Built-in plugin ${Y.name} not found`);F(!1);return}let V=(await M0(J)).plugins.find((H)=>H.name===Y.name);if(V){let H=[];if(Y.commandsPath)H.push(Y.commandsPath);if(Y.commandsPaths)H.push(...Y.commandsPaths);let e=[];for(let B of H)if(typeof B==="string"){let Q=await $J(B);e.push(...Q)}let t=[];if(Y.agentsPath)t.push(Y.agentsPath);if(Y.agentsPaths)t.push(...Y.agentsPaths);let O1=[];for(let B of t)if(typeof B==="string"){let Q=await $J(B);O1.push(...Q)}let D=[];if(Y.skillsPath)D.push(Y.skillsPath);if(Y.skillsPaths)D.push(...Y.skillsPaths);let $=[];for(let B of D)if(typeof B==="string"){let Q=await pX(B);$.push(...Q)}let I=[];if(Y.hooksConfig)I.push(Object.keys(Y.hooksConfig));if(V.hooks)I.push(V.hooks);let a=[];if(Y.mcpServers)a.push(Object.keys(Y.mcpServers));if(V.mcpServers)a.push(V.mcpServers);W({commands:e.length>0?e:null,agents:O1.length>0?O1:null,skills:$.length>0?$:null,hooks:I.length>0?I:null,mcpServers:a.length>0?a:null})}else E(`Plugin ${Y.name} not found in marketplace`)}catch(L){E(L instanceof Error?L.message:"Failed to load components")}finally{F(!1)}}O()},[Y.name,Y.commandsPath,Y.commandsPaths,Y.agentsPath,Y.agentsPaths,Y.skillsPath,Y.skillsPaths,Y.hooksConfig,Y.mcpServers,J]),K)return null;if(y)return z(G,{flexDirection:"column",marginBottom:1,children:[X(Z,{bold:!0,children:"Components:"}),z(Z,{dimColor:!0,children:["Error: ",y]})]});if(!q)return null;if(!(q.commands||q.agents||q.skills||q.hooks||q.mcpServers))return null;return z(G,{flexDirection:"column",marginBottom:1,children:[X(Z,{bold:!0,children:"Installed components:"}),q.commands?z(Z,{dimColor:!0,children:["• Commands:"," ",typeof q.commands==="string"?q.commands:Array.isArray(q.commands)?q.commands.join(", "):Object.keys(q.commands).join(", ")]}):null,q.agents?z(Z,{dimColor:!0,children:["• Agents:"," ",typeof q.agents==="string"?q.agents:Array.isArray(q.agents)?q.agents.join(", "):Object.keys(q.agents).join(", ")]}):null,q.skills?z(Z,{dimColor:!0,children:["• Skills:"," ",typeof q.skills==="string"?q.skills:Array.isArray(q.skills)?q.skills.join(", "):Object.keys(q.skills).join(", ")]}):null,q.hooks?z(Z,{dimColor:!0,children:["• Hooks:"," ",typeof q.hooks==="string"?q.hooks:Array.isArray(q.hooks)?q.hooks.map(String).join(", "):typeof q.hooks==="object"&&q.hooks!==null?Object.keys(q.hooks).join(", "):String(q.hooks)]}):null,q.mcpServers?z(Z,{dimColor:!0,children:["• MCP Servers:"," ",typeof q.mcpServers==="string"?q.mcpServers:Array.isArray(q.mcpServers)?q.mcpServers.map(String).join(", "):typeof q.mcpServers==="object"&&q.mcpServers!==null?Object.keys(q.mcpServers).join(", "):String(q.mcpServers)]}):null]})}async function uX(Y,J){let W=(await M0(J))?.plugins.find((K)=>K.name===Y);if(W&&typeof W.source==="string")return`Local plugins cannot be updated remotely. To update, modify the source at: ${W.source}`;return null}function oX(Y){return Y.filter((J)=>{let q=J.source.split("@")[1]||"local";return!j0(`${J.name}@${q}`)})}function rJ({setViewState:Y,setResult:J,onManageComplete:q,onSearchModeChange:W,targetPlugin:K,targetMarketplace:F,action:y}){let E=N0((U)=>U.mcp.clients),N=N0((U)=>U.mcp.tools),O=N0((U)=>U.plugins.errors),L=lJ(),[V,H]=R1.useState(!1),e=R1.useCallback((U)=>{H(U),W?.(U)},[W]),t=G9(),{columns:O1}=U9(),[D,$]=R1.useState("plugin-list"),{query:I,setQuery:a,cursorOffset:B}=K9({isActive:D==="plugin-list"&&V,onExit:()=>{e(!1)}}),[Q,m]=R1.useState(null),[W1,w]=R1.useState([]),[Y1,i]=R1.useState([]),[r,z1]=R1.useState(!0),[v,Q1]=R1.useState(new Map),G1=R1.useRef(!1),J1=R1.useRef(void 0),s=dJ(),X1=r1.useCallback(()=>{if(D==="plugin-details")$("plugin-list"),m(null),f(null);else if(typeof D==="object"&&D.type==="failed-plugin-details")$("plugin-list"),f(null);else if(D==="configuring")$("plugin-details"),b(null);else if(typeof D==="object"&&(D.type==="plugin-options"||D.type==="configuring-options")){if($("plugin-list"),m(null),J("Plugin enabled. Configuration skipped — run /reload-plugins to apply."),q)q()}else if(typeof D==="object"&&D.type==="flagged-detail")$("plugin-list"),f(null);else if(typeof D==="object"&&D.type==="mcp-detail")$("plugin-list"),f(null);else if(typeof D==="object"&&D.type==="mcp-tools")$({type:"mcp-detail",client:D.client});else if(typeof D==="object"&&D.type==="mcp-tool-detail")$({type:"mcp-tools",client:D.client});else{if(v.size>0){J("Run /reload-plugins to apply plugin changes.");return}Y({type:"menu"})}},[D,Y,v,J]);m1("confirm:no",X1,{context:"Confirmation",isActive:(D!=="plugin-list"||!V)&&D!=="confirm-project-uninstall"&&!(typeof D==="object"&&D.type==="confirm-data-cleanup")});let L1=(U)=>{if(U.type==="connected")return"connected";if(U.type==="disabled")return"disabled";if(U.type==="pending")return"pending";if(U.type==="needs-auth")return"needs-auth";return"failed"},l=R1.useMemo(()=>{let U=y0(),M=new Map;for(let c of E)if(c.name.startsWith("plugin:")){let D1=c.name.split(":");if(D1.length>=3){let P1=D1[1],_1=D1.slice(2).join(":"),w1=M.get(P1)||[];w1.push({displayName:_1,client:c}),M.set(P1,w1)}}let o=[];for(let c of Y1){let D1=`${c.plugin.name}@${c.marketplace}`,P1=U?.enabledPlugins?.[D1]!==!1,_1=O.filter((B1)=>("plugin"in B1)&&B1.plugin===c.plugin.name||B1.source===D1||B1.source.startsWith(`${c.plugin.name}@`)),w1=c.plugin.isBuiltin?"builtin":c.scope||"user";o.push({item:{type:"plugin",id:D1,name:c.plugin.name,description:c.plugin.manifest.description,marketplace:c.marketplace,scope:w1,isEnabled:P1,errorCount:_1.length,errors:_1,plugin:c.plugin,pendingEnable:c.pendingEnable,pendingUpdate:c.pendingUpdate,pendingToggle:v.get(D1)},originalScope:w1,childMcps:M.get(c.plugin.name)||[]})}let p=new Set(o.map(({item:c})=>c.id)),d=new Set(o.map(({item:c})=>c.name)),S=new Map;for(let c of O){if(p.has(c.source)||"plugin"in c&&typeof c.plugin==="string"&&d.has(c.plugin))continue;let D1=S.get(c.source)||[];D1.push(c),S.set(c.source,D1)}let q1=A9(),K1=[];for(let[c,D1]of S){if(c in L)continue;let P1=H9(c),_1=P1.name||c,w1=P1.marketplace||"unknown",B1=q1.get(c),u1=B1==="flag"||B1===void 0?"user":B1;K1.push({type:"failed-plugin",id:c,name:_1,marketplace:w1,scope:u1,errorCount:D1.length,errors:D1})}let A1=[];for(let c of E){if(c.name==="ide")continue;if(c.name.startsWith("plugin:"))continue;A1.push({type:"mcp",id:`mcp:${c.name}`,name:c.name,description:void 0,scope:c.config.scope,status:L1(c),client:c})}let y1={flagged:-1,project:0,local:1,user:2,enterprise:3,managed:4,dynamic:5,builtin:6},s1=[],F1=new Map;for(let{item:c,originalScope:D1,childMcps:P1}of o){let _1=c.scope;if(!F1.has(_1))F1.set(_1,[]);F1.get(_1).push(c);for(let{displayName:w1,client:B1}of P1){let u1=D1==="builtin"?"user":D1;if(!F1.has(u1))F1.set(u1,[]);F1.get(u1).push({type:"mcp",id:`mcp:${B1.name}`,name:w1,description:void 0,scope:u1,status:L1(B1),client:B1,indented:!0})}}for(let c of A1){let D1=c.scope;if(!F1.has(D1))F1.set(D1,[]);F1.get(D1).push(c)}for(let c of K1){let D1=c.scope;if(!F1.has(D1))F1.set(D1,[]);F1.get(D1).push(c)}for(let[c,D1]of Object.entries(L)){let P1=H9(c),_1=P1.name||c,w1=P1.marketplace||"unknown";if(!F1.has("flagged"))F1.set("flagged",[]);F1.get("flagged").push({type:"flagged-plugin",id:c,name:_1,marketplace:w1,scope:"flagged",reason:"delisted",text:"Removed from marketplace",flaggedAt:D1.flaggedAt})}let i0=[...F1.keys()].sort((c,D1)=>(y1[c]??99)-(y1[D1]??99));for(let c of i0){let D1=F1.get(c),P1=[],_1=[],w1=0;while(w1<D1.length){let B1=D1[w1];if(B1.type==="plugin"||B1.type==="failed-plugin"||B1.type==="flagged-plugin"){let u1=[B1];w1++;let l0=D1[w1];while(l0?.type==="mcp"&&l0.indented)u1.push(l0),w1++,l0=D1[w1];P1.push(u1)}else if(B1.type==="mcp"&&!B1.indented)_1.push(B1),w1++;else w1++}P1.sort((B1,u1)=>B1[0].name.localeCompare(u1[0].name)),_1.sort((B1,u1)=>B1.name.localeCompare(u1.name));for(let B1 of P1)s1.push(...B1);s1.push(..._1)}return s1},[Y1,E,O,v,L]),T=R1.useMemo(()=>l.filter((U)=>U.type==="flagged-plugin").map((U)=>U.id),[l]);R1.useEffect(()=>{if(T.length>0)aJ(T)},[T]);let C=R1.useMemo(()=>{if(!I)return l;let U=I.toLowerCase();return l.filter((M)=>M.name.toLowerCase().includes(U)||("description"in M)&&M.description?.toLowerCase().includes(U))},[l,I]),[j,n]=R1.useState(0),H1=v0({totalItems:C.length,selectedIndex:j,maxVisible:8}),[R,g]=R1.useState(0),[k,h]=R1.useState(!1),[P,f]=R1.useState(null),[A,b]=R1.useState(null),[u,Z1]=R1.useState(!1),[x,N1]=R1.useState(!1);R1.useEffect(()=>{if(!Q){N1(!1);return}async function U(){let M=Q.plugin.manifest.mcpServers,o=!1;if(M)o=typeof M==="string"&&z0(M)||Array.isArray(M)&&M.some((p)=>typeof p==="string"&&z0(p));if(!o)try{let p=m0.join(Q.plugin.path,".."),d=m0.join(p,".claude-plugin","marketplace.json"),S=await V0.readFile(d,"utf-8"),K1=IJ(S).plugins?.find((A1)=>A1.name===Q.plugin.name);if(K1?.mcpServers){let A1=K1.mcpServers;o=typeof A1==="string"&&z0(A1)||Array.isArray(A1)&&A1.some((y1)=>typeof y1==="string"&&z0(y1))}}catch(p){L0(`Failed to read raw marketplace.json: ${p}`)}N1(o)}U()},[Q]),R1.useEffect(()=>{async function U(){z1(!0);try{let{enabled:M,disabled:o}=await R0(),p=y0(),d=oX([...M,...o]),S={};for(let A1 of d){let y1=A1.source.split("@")[1]||"local";if(!S[y1])S[y1]=[];S[y1].push(A1)}let q1=[];for(let[A1,y1]of Object.entries(S)){let s1=n1(y1,(i0)=>{let c=`${i0.name}@${A1}`;return p?.enabledPlugins?.[c]!==!1}),F1=y1.length-s1;q1.push({name:A1,installedPlugins:y1,enabledCount:s1,disabledCount:F1})}q1.sort((A1,y1)=>{if(A1.name==="claude-plugin-directory")return-1;if(y1.name==="claude-plugin-directory")return 1;return A1.name.localeCompare(y1.name)}),w(q1);let K1=[];for(let A1 of q1)for(let y1 of A1.installedPlugins){let s1=`${y1.name}@${A1.name}`,F1=y1.isBuiltin?"builtin":I9(s1).scope;K1.push({plugin:y1,marketplace:A1.name,scope:F1,pendingEnable:void 0,pendingUpdate:!1})}i(K1),n(0)}finally{z1(!1)}}U()},[]),R1.useEffect(()=>{if(G1.current)return;if(K&&W1.length>0&&!r){let{name:U,marketplace:M}=H9(K),o=F??M,p=o?W1.filter((S)=>S.name===o):W1;for(let S of p){let q1=S.installedPlugins.find((K1)=>K1.name===U);if(q1){let K1=`${q1.name}@${S.name}`,{scope:A1}=I9(K1),y1={plugin:q1,marketplace:S.name,scope:A1,pendingEnable:void 0,pendingUpdate:!1};m(y1),$("plugin-details"),J1.current=y,G1.current=!0;return}}let d=l.find((S)=>S.type==="failed-plugin"&&S.name===U);if(d&&d.type==="failed-plugin")$({type:"failed-plugin-details",plugin:{id:d.id,name:d.name,marketplace:d.marketplace,errors:d.errors,scope:d.scope}}),G1.current=!0;if(!G1.current&&y)G1.current=!0,J(`Plugin "${K}" is not installed in this project`)}},[K,F,W1,r,l,y,J]);let b1=async(U)=>{if(!Q)return;let M=Q.scope||"user",o=M==="builtin";if(o&&(U==="update"||U==="uninstall")){f("Built-in plugins cannot be updated or uninstalled.");return}if(!o&&!S0(M)&&U!=="update"){f("This plugin is managed by your organization. Contact your admin to disable it.");return}h(!0),f(null);try{let p=`${Q.plugin.name}@${Q.marketplace}`,d;switch(U){case"enable":{let F1=await O9(p);if(!F1.success)throw Error(F1.message);break}case"disable":{let F1=await D9(p);if(!F1.success)throw Error(F1.message);d=F1.reverseDependents;break}case"uninstall":{if(o)break;if(!S0(M))break;if(oJ(p)){h(!1),$("confirm-project-uninstall");return}let F1=mJ().plugins[p],c=!F1||F1.length<=1?await PJ(p):null;if(c){h(!1),$({type:"confirm-data-cleanup",size:c});return}let D1=await u0(p,M);if(!D1.success)throw Error(D1.message);d=D1.reverseDependents;break}case"update":{if(o)break;let F1=await iJ(p,M);if(!F1.success)throw Error(F1.message);if(F1.alreadyUpToDate){if(J(`${Q.plugin.name} is already at the latest version (${F1.newVersion}).`),q)await q();Y({type:"menu"});return}break}}M1();let S=`${Q.plugin.name}@${Q.marketplace}`;if(y0()?.enabledPlugins?.[S]!==!1){h(!1),$({type:"plugin-options"});return}let A1=U==="enable"?"Enabled":U==="disable"?"Disabled":U==="update"?"Updated":"Uninstalled",y1=d&&d.length>0?` · required by ${d.join(", ")}`:"",s1=`✓ ${A1} ${Q.plugin.name}${y1}. Run /reload-plugins to apply.`;if(J(s1),q)await q();Y({type:"menu"})}catch(p){h(!1);let d=p instanceof Error?p.message:String(p);f(`Failed to ${U}: ${d}`),t1(B0(p))}},p1=R1.useRef(b1);p1.current=b1,R1.useEffect(()=>{if(D==="plugin-details"&&Q&&J1.current){let U=J1.current;J1.current=void 0,p1.current(U)}},[D,Q]);let T1=r1.useCallback(()=>{if(j>=C.length)return;let U=C[j];if(U?.type==="flagged-plugin")return;if(U?.type==="plugin"){let M=`${U.plugin.name}@${U.marketplace}`,o=y0(),p=v.get(M),d=o?.enabledPlugins?.[M]!==!1,S=U.scope;if(S==="builtin"||S0(S)){let K1=new Map(v);if(p)K1.delete(M),(async()=>{try{if(p==="will-disable")await O9(M);else await D9(M);M1()}catch(A1){t1(A1)}})();else K1.set(M,d?"will-disable":"will-enable"),(async()=>{try{if(d)await D9(M);else await O9(M);M1()}catch(A1){t1(A1)}})();Q1(K1)}}else if(U?.type==="mcp")s(U.client.name)},[j,C,v,Y1,s]),V1=r1.useCallback(()=>{if(j>=C.length)return;let U=C[j];if(U?.type==="plugin"){let M=Y1.find((o)=>o.plugin.name===U.plugin.name&&o.marketplace===U.marketplace);if(M)m(M),$("plugin-details"),g(0),f(null)}else if(U?.type==="flagged-plugin")$({type:"flagged-detail",plugin:{id:U.id,name:U.name,marketplace:U.marketplace,reason:U.reason,text:U.text,flaggedAt:U.flaggedAt}}),f(null);else if(U?.type==="failed-plugin")$({type:"failed-plugin-details",plugin:{id:U.id,name:U.name,marketplace:U.marketplace,errors:U.errors,scope:U.scope}}),g(0),f(null);else if(U?.type==="mcp")$({type:"mcp-detail",client:U.client}),f(null)},[j,C,Y1]);C1({"select:previous":()=>{if(j===0)e(!0);else H1.handleSelectionChange(j-1,n)},"select:next":()=>{if(j<C.length-1)H1.handleSelectionChange(j+1,n)},"select:accept":V1},{context:"Select",isActive:D==="plugin-list"&&!V}),C1({"plugin:toggle":T1},{context:"Plugin",isActive:D==="plugin-list"&&!V});let c1=r1.useCallback(()=>{if(typeof D!=="object"||D.type!=="flagged-detail")return;nJ(D.plugin.id),$("plugin-list")},[D]);C1({"select:accept":c1},{context:"Select",isActive:typeof D==="object"&&D.type==="flagged-detail"});let g1=r1.useMemo(()=>{if(D!=="plugin-details"||!Q)return[];let U=y0(),M=`${Q.plugin.name}@${Q.marketplace}`,o=U?.enabledPlugins?.[M]!==!1,p=Q.marketplace==="builtin",d=[];if(d.push({label:o?"Disable plugin":"Enable plugin",action:()=>void b1(o?"disable":"enable")}),!p){if(d.push({label:Q.pendingUpdate?"Unmark for update":"Mark for update",action:async()=>{try{let S=await uX(Q.plugin.name,Q.marketplace);if(S){f(S);return}let q1=[...Y1],K1=q1.findIndex((A1)=>A1.plugin.name===Q.plugin.name&&A1.marketplace===Q.marketplace);if(K1!==-1)q1[K1].pendingUpdate=!Q.pendingUpdate,i(q1),m({...Q,pendingUpdate:!Q.pendingUpdate})}catch(S){f(S instanceof Error?S.message:"Failed to check plugin update availability")}}}),x)d.push({label:"Configure",action:async()=>{Z1(!0);try{let S=Q.plugin.manifest.mcpServers,q1=null;if(typeof S==="string"&&z0(S))q1=S;else if(Array.isArray(S)){for(let y1 of S)if(typeof y1==="string"&&z0(y1)){q1=y1;break}}if(!q1){f("No MCPB file found in plugin"),Z1(!1);return}let K1=`${Q.plugin.name}@${Q.marketplace}`,A1=await $9(q1,Q.plugin.path,K1,void 0,void 0,!0);if("status"in A1&&A1.status==="needs-config")b(A1),$("configuring");else f("Failed to load MCPB for configuration")}catch(S){let q1=I1(S);f(`Failed to load configuration: ${q1}`)}finally{Z1(!1)}}});if(Q.plugin.manifest.userConfig&&Object.keys(Q.plugin.manifest.userConfig).length>0)d.push({label:"Configure options",action:()=>{$({type:"configuring-options",schema:Q.plugin.manifest.userConfig})}});d.push({label:"Update now",action:()=>void b1("update")}),d.push({label:"Uninstall",action:()=>void b1("uninstall")})}if(Q.plugin.manifest.homepage)d.push({label:"Open homepage",action:()=>void Z0(Q.plugin.manifest.homepage)});if(Q.plugin.manifest.repository)d.push({label:"View repository",action:()=>void Z0(Q.plugin.manifest.repository)});return d.push({label:"Back to plugin list",action:()=>{$("plugin-list"),m(null),f(null)}}),d},[D,Q,x,Y1]);if(C1({"select:previous":()=>{if(R>0)g(R-1)},"select:next":()=>{if(R<g1.length-1)g(R+1)},"select:accept":()=>{if(g1[R])g1[R].action()}},{context:"Select",isActive:D==="plugin-details"&&!!Q}),C1({"select:accept":()=>{if(typeof D==="object"&&D.type==="failed-plugin-details")(async()=>{h(!0),f(null);let U=D.plugin.id,M=D.plugin.scope,o=S0(M)?await u0(U,M,!1):await u0(U,"user",!1),p=o.success;if(!p){let d=["userSettings","projectSettings","localSettings"];for(let S of d){let q1=q0(S);if(q1?.enabledPlugins?.[U]!==void 0)T0(S,{enabledPlugins:{...q1.enabledPlugins,[U]:void 0}}),p=!0}M1()}if(p){if(q)await q();h(!1),$("plugin-list")}else h(!1),f(o.message)})()}},{context:"Select",isActive:typeof D==="object"&&D.type==="failed-plugin-details"&&D.plugin.scope!=="managed"}),C1({"confirm:yes":()=>{if(!Q)return;h(!0),f(null);let U=`${Q.plugin.name}@${Q.marketplace}`,{error:M}=T0("localSettings",{enabledPlugins:{...q0("localSettings")?.enabledPlugins,[U]:!1}});if(M){h(!1),f(`Failed to write settings: ${M.message}`);return}if(M1(),J(`✓ Disabled ${Q.plugin.name} in .claudin/settings.local.json. Run /reload-plugins to apply.`),q)q();Y({type:"menu"})},"confirm:no":()=>{$("plugin-details"),f(null)}},{context:"Confirmation",isActive:D==="confirm-project-uninstall"&&!!Q&&!k}),e1((U,M)=>{if(!Q)return;let o=`${Q.plugin.name}@${Q.marketplace}`,p=Q.scope;if(!p||p==="builtin"||!S0(p))return;let d=async(S)=>{h(!0),f(null);try{let q1=await u0(o,p,S);if(!q1.success)throw Error(q1.message);M1();let K1=S?"":" · data preserved";if(J(`${_.tick} ${q1.message}${K1}`),q)q();Y({type:"menu"})}catch(q1){h(!1),f(q1 instanceof Error?q1.message:String(q1))}};if(U==="y"||U==="Y")d(!0);else if(U==="n"||U==="N")d(!1);else if(M.escape)$("plugin-details"),f(null)},{isActive:typeof D==="object"&&D.type==="confirm-data-cleanup"&&!!Q&&!k}),r1.useEffect(()=>{n(0)},[I]),e1((U,M)=>{let o=!M.ctrl&&!M.meta;if(V)return;if(U==="/"&&o)e(!0),a(""),n(0);else if(o&&U.length>0&&!/^\s+$/.test(U)&&U!=="j"&&U!=="k"&&U!==" ")e(!0),a(U),n(0)},{isActive:D==="plugin-list"}),r)return X(Z,{children:"Loading installed plugins…"});if(l.length===0)return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Z,{bold:!0,children:"Manage plugins"})}),X(Z,{children:"No plugins or MCP servers installed."}),X(G,{marginTop:1,children:X(Z,{dimColor:!0,children:"Esc to go back"})})]});if(typeof D==="object"&&D.type==="plugin-options"&&Q){let M=function(o){if(J(o),q)q();Y({type:"menu"})},U=`${Q.plugin.name}@${Q.marketplace}`;return X(f0,{plugin:Q.plugin,pluginId:U,onDone:(o,p)=>{switch(o){case"configured":M(`✓ Enabled and configured ${Q.plugin.name}. Run /reload-plugins to apply.`);break;case"skipped":M(`✓ Enabled ${Q.plugin.name}. Run /reload-plugins to apply.`);break;case"error":M(`Failed to save configuration: ${p}`);break}}})}if(typeof D==="object"&&D.type==="configuring-options"&&Q){let U=`${Q.plugin.name}@${Q.marketplace}`;return X(g0,{title:`Configure ${Q.plugin.name}`,subtitle:"Plugin options",configSchema:D.schema,initialValues:n0(U),onSave:(M)=>{try{r0(U,M,D.schema),M1(),J("Configuration saved. Run /reload-plugins for changes to take effect.")}catch(o){f(`Failed to save configuration: ${I1(o)}`)}$("plugin-details")},onCancel:()=>$("plugin-details")})}if(D==="configuring"&&A&&Q){let o=function(){b(null),$("plugin-details")},U=`${Q.plugin.name}@${Q.marketplace}`;async function M(p){if(!A||!Q)return;try{let d=Q.plugin.manifest.mcpServers,S=null;if(typeof d==="string"&&z0(d))S=d;else if(Array.isArray(d)){for(let q1 of d)if(typeof q1==="string"&&z0(q1)){S=q1;break}}if(!S){f("No MCPB file found"),$("plugin-details");return}await $9(S,Q.plugin.path,U,void 0,p),f(null),b(null),$("plugin-details"),J("Configuration saved. Run /reload-plugins for changes to take effect.")}catch(d){let S=I1(d);f(`Failed to save configuration: ${S}`),$("plugin-details")}}return X(g0,{title:`Configure ${A.manifest.name}`,subtitle:`Plugin: ${Q.plugin.name}`,configSchema:A.configSchema,initialValues:A.existingConfig,onSave:M,onCancel:o})}if(typeof D==="object"&&D.type==="flagged-detail"){let U=D.plugin;return z(G,{flexDirection:"column",children:[X(G,{children:z(Z,{bold:!0,children:[U.name," @ ",U.marketplace]})}),z(G,{marginBottom:1,children:[X(Z,{dimColor:!0,children:"Status: "}),X(Z,{color:"error",children:"Removed"})]}),z(G,{marginBottom:1,flexDirection:"column",children:[z(Z,{color:"error",children:["Removed from marketplace · reason: ",U.reason]}),X(Z,{children:U.text}),z(Z,{dimColor:!0,children:["Flagged on ",new Date(U.flaggedAt).toLocaleDateString()]})]}),X(G,{marginTop:1,flexDirection:"column",children:z(G,{children:[z(Z,{children:[_.pointer," "]}),X(Z,{color:"suggestion",children:"Dismiss"})]})}),z(k1,{children:[X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"dismiss"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})]})]})}if(D==="confirm-project-uninstall"&&Q)return z(G,{flexDirection:"column",children:[z(Z,{bold:!0,color:"warning",children:[Q.plugin.name," is enabled in .claudin/settings.json (shared with your team)"]}),z(G,{marginTop:1,flexDirection:"column",children:[X(Z,{children:"Disable it just for you in .claudin/settings.local.json?"}),X(Z,{dimColor:!0,children:"This has the same effect as uninstalling, without affecting other contributors."})]}),P&&X(G,{marginTop:1,children:X(Z,{color:"error",children:P})}),X(G,{marginTop:1,children:k?X(Z,{dimColor:!0,children:"Disabling…"}):z(k1,{children:[X(U1,{action:"confirm:yes",context:"Confirmation",fallback:"y",description:"disable"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"})]})})]});if(typeof D==="object"&&D.type==="confirm-data-cleanup"&&Q)return z(G,{flexDirection:"column",children:[z(Z,{bold:!0,children:[Q.plugin.name," has ",D.size.human," of persistent data"]}),z(G,{marginTop:1,flexDirection:"column",children:[X(Z,{children:"Delete it along with the plugin?"}),X(Z,{dimColor:!0,children:jJ(`${Q.plugin.name}@${Q.marketplace}`)})]}),P&&X(G,{marginTop:1,children:X(Z,{color:"error",children:P})}),X(G,{marginTop:1,children:k?X(Z,{dimColor:!0,children:"Uninstalling…"}):z(Z,{children:[X(Z,{bold:!0,children:"y"})," to delete · ",X(Z,{bold:!0,children:"n"})," to keep ·"," ",X(Z,{bold:!0,children:"esc"})," to cancel"]})})]});if(D==="plugin-details"&&Q){let U=y0(),M=`${Q.plugin.name}@${Q.marketplace}`,o=U?.enabledPlugins?.[M]!==!1,p=O.filter((S)=>("plugin"in S)&&S.plugin===Q.plugin.name||S.source===M||S.source.startsWith(`${Q.plugin.name}@`)),d=p.length===0?null:z(G,{flexDirection:"column",marginBottom:1,children:[z(Z,{bold:!0,color:"error",children:[p.length," ",h1(p.length,"error"),":"]}),p.map((S,q1)=>{let K1=_0(S);return z(G,{flexDirection:"column",marginLeft:2,children:[X(Z,{color:"error",children:H0(S)}),K1&&z(Z,{dimColor:!0,italic:!0,children:[_.arrowRight," ",K1]})]},q1)})]});return z(G,{flexDirection:"column",children:[X(G,{children:z(Z,{bold:!0,children:[Q.plugin.name," @ ",Q.marketplace]})}),z(G,{children:[X(Z,{dimColor:!0,children:"Scope: "}),X(Z,{children:Q.scope||"user"})]}),Q.plugin.manifest.version&&z(G,{children:[X(Z,{dimColor:!0,children:"Version: "}),X(Z,{children:Q.plugin.manifest.version})]}),Q.plugin.manifest.description&&X(G,{marginBottom:1,children:X(Z,{children:Q.plugin.manifest.description})}),Q.plugin.manifest.author&&z(G,{children:[X(Z,{dimColor:!0,children:"Author: "}),X(Z,{children:Q.plugin.manifest.author.name})]}),z(G,{marginBottom:1,children:[X(Z,{dimColor:!0,children:"Status: "}),X(Z,{color:o?"success":"warning",children:o?"Enabled":"Disabled"}),Q.pendingUpdate&&X(Z,{color:"suggestion",children:" · Marked for update"})]}),X(cX,{plugin:Q.plugin,marketplace:Q.marketplace}),d,X(G,{marginTop:1,flexDirection:"column",children:g1.map((S,q1)=>{let K1=q1===R;return z(G,{children:[K1&&z(Z,{children:[_.pointer," "]}),!K1&&X(Z,{children:" "}),X(Z,{bold:K1,color:S.label.includes("Uninstall")?"error":S.label.includes("Update")?"suggestion":void 0,children:S.label})]},q1)})}),k&&X(G,{marginTop:1,children:X(Z,{children:"Processing…"})}),P&&X(G,{marginTop:1,children:X(Z,{color:"error",children:P})}),X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[X(U1,{action:"select:previous",context:"Select",fallback:"↑",description:"navigate"}),X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"select"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})]})})})]})}if(typeof D==="object"&&D.type==="failed-plugin-details"){let U=D.plugin,M=U.errors[0],o=M?H0(M):"Failed to load";return z(G,{flexDirection:"column",children:[z(Z,{children:[X(Z,{bold:!0,children:U.name}),z(Z,{dimColor:!0,children:[" @ ",U.marketplace]}),z(Z,{dimColor:!0,children:[" (",U.scope,")"]})]}),X(Z,{color:"error",children:o}),U.scope==="managed"?X(G,{marginTop:1,children:X(Z,{dimColor:!0,children:"Managed by your organization — contact your admin"})}):z(G,{marginTop:1,children:[z(Z,{color:"suggestion",children:[_.pointer," "]}),X(Z,{bold:!0,children:"Remove"})]}),k&&X(Z,{children:"Processing…"}),P&&X(Z,{color:"error",children:P}),X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[U.scope!=="managed"&&X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"remove"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})]})})})]})}if(typeof D==="object"&&D.type==="mcp-detail"){let U=D.client,M=xJ(N,U.name).length,o=()=>{$({type:"mcp-tools",client:U})},p=()=>{$("plugin-list")},d=(K1)=>{if(K1)J(K1);$("plugin-list")},S=U.config.scope,q1=U.config.type;if(q1==="stdio"){let K1={name:U.name,client:U,scope:S,transport:"stdio",config:U.config};return X(gJ,{server:K1,serverToolsCount:M,onViewTools:o,onCancel:p,onComplete:d,borderless:!0})}else if(q1==="sse"){let K1={name:U.name,client:U,scope:S,transport:"sse",isAuthenticated:void 0,config:U.config};return X(N9,{server:K1,serverToolsCount:M,onViewTools:o,onCancel:p,onComplete:d,borderless:!0})}else if(q1==="http"){let K1={name:U.name,client:U,scope:S,transport:"http",isAuthenticated:void 0,config:U.config};return X(N9,{server:K1,serverToolsCount:M,onViewTools:o,onCancel:p,onComplete:d,borderless:!0})}else if(q1==="claudeai-proxy"){let K1={name:U.name,client:U,scope:S,transport:"claudeai-proxy",isAuthenticated:void 0,config:U.config};return X(N9,{server:K1,serverToolsCount:M,onViewTools:o,onCancel:p,onComplete:d,borderless:!0})}return $("plugin-list"),null}if(typeof D==="object"&&D.type==="mcp-tools"){let U=D.client,M=U.config.scope,o=U.config.type,p;if(o==="stdio")p={name:U.name,client:U,scope:M,transport:"stdio",config:U.config};else if(o==="sse")p={name:U.name,client:U,scope:M,transport:"sse",isAuthenticated:void 0,config:U.config};else if(o==="http")p={name:U.name,client:U,scope:M,transport:"http",isAuthenticated:void 0,config:U.config};else p={name:U.name,client:U,scope:M,transport:"claudeai-proxy",isAuthenticated:void 0,config:U.config};return X(cJ,{server:p,onSelectTool:(d)=>{$({type:"mcp-tool-detail",client:U,tool:d})},onBack:()=>$({type:"mcp-detail",client:U})})}if(typeof D==="object"&&D.type==="mcp-tool-detail"){let{client:U,tool:M}=D,o=U.config.scope,p=U.config.type,d;if(p==="stdio")d={name:U.name,client:U,scope:o,transport:"stdio",config:U.config};else if(p==="sse")d={name:U.name,client:U,scope:o,transport:"sse",isAuthenticated:void 0,config:U.config};else if(p==="http")d={name:U.name,client:U,scope:o,transport:"http",isAuthenticated:void 0,config:U.config};else d={name:U.name,client:U,scope:o,transport:"claudeai-proxy",isAuthenticated:void 0,config:U.config};return X(pJ,{tool:M,server:d,onBack:()=>$({type:"mcp-tools",client:U})})}let W0=H1.getVisibleItems(C);return z(G,{flexDirection:"column",children:[X(G,{marginBottom:1,children:X(Q9,{query:I,isFocused:V,isTerminalFocused:t,width:O1-4,cursorOffset:B})}),C.length===0&&I&&X(G,{marginBottom:1,children:z(Z,{dimColor:!0,children:['No items match "',I,'"']})}),H1.scrollPosition.canScrollUp&&X(G,{children:z(Z,{dimColor:!0,children:[" ",_.arrowUp," more above"]})}),W0.map((U,M)=>{let p=H1.toActualIndex(M)===j&&!V,d=M>0?W0[M-1]:null,S=!d||d.scope!==U.scope,q1=(K1)=>{switch(K1){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 K1}};return z(r1.Fragment,{children:[S&&X(G,{marginTop:M>0?1:0,paddingLeft:2,children:X(Z,{dimColor:U.scope!=="flagged",color:U.scope==="flagged"?"warning":void 0,bold:U.scope==="flagged",children:q1(U.scope)})}),X(wJ,{item:U,isSelected:p})]},U.id)}),H1.scrollPosition.canScrollDown&&X(G,{children:z(Z,{dimColor:!0,children:[" ",_.arrowDown," more below"]})}),X(G,{marginTop:1,marginLeft:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[X(Z,{children:"type to search"}),X(U1,{action:"plugin:toggle",context:"Plugin",fallback:"Space",description:"toggle"}),X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"details"}),X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})]})})}),v.size>0&&X(G,{marginLeft:1,children:X(Z,{dimColor:!0,italic:!0,children:"Run /reload-plugins to apply changes"})})]})}var r1,R1;var sJ=S1(()=>{X0();D0();A0();_X();SX();mX();xX();AJ();FJ();OJ();a1();C0();$X();PX();jX();dX();SJ();X9();C9();E9();G0();R9();E0();f9();b0();e9();MX();gX();IX();y9();XJ();b9();uJ();w9();wX();I0();M9();T9();t0();MJ();J9();E1();r1=v1(o1(),1),R1=v1(o1(),1)});function tJ(Y){if(!Y)return{type:"menu"};let J=Y.trim().split(/\s+/);switch(J[0]?.toLowerCase()){case"help":case"--help":case"-h":return{type:"help"};case"install":case"i":{let W=J[1];if(!W)return{type:"install"};if(W.includes("@")){let[F,y]=W.split("@");return{type:"install",plugin:F,marketplace:y}}if(W.startsWith("http://")||W.startsWith("https://")||W.startsWith("file://")||W.includes("/")||W.includes("\\"))return{type:"install",marketplace:W};return{type:"install",plugin:W}}case"manage":return{type:"manage"};case"uninstall":return{type:"uninstall",plugin:J[1]};case"enable":return{type:"enable",plugin:J[1]};case"disable":return{type:"disable",plugin:J[1]};case"validate":return{type:"validate",path:J.slice(1).join(" ").trim()||void 0};case"marketplace":case"market":{let W=J[1]?.toLowerCase(),K=J.slice(2).join(" ");switch(W){case"add":return{type:"marketplace",action:"add",target:K};case"remove":case"rm":return{type:"marketplace",action:"remove",target:K};case"update":return{type:"marketplace",action:"update",target:K};case"list":return{type:"marketplace",action:"list"};default:return{type:"marketplace"}}}default:return{type:"menu"}}}var eJ=()=>{};function YX(Y){let J=XX.c(5),{onComplete:q,path:W}=Y,K,F;if(J[0]!==q||J[1]!==W)K=()=>{(async function(){if(!W){q(`Usage: /plugin validate <path>
|
|
2
|
+
|
|
3
|
+
Validate a plugin or marketplace manifest file or directory.
|
|
4
|
+
|
|
5
|
+
Examples:
|
|
6
|
+
/plugin validate .claude-plugin/plugin.json
|
|
7
|
+
/plugin validate /path/to/plugin-directory
|
|
8
|
+
/plugin validate .
|
|
9
|
+
|
|
10
|
+
When given a directory, automatically validates .claude-plugin/marketplace.json
|
|
11
|
+
or .claude-plugin/plugin.json (prefers marketplace if both exist).
|
|
12
|
+
|
|
13
|
+
Or from the command line:
|
|
14
|
+
claude plugin validate <path>`);return}try{let O=await JX(W),L="";if(L=L+`Validating ${O.fileType} manifest: ${O.filePath}
|
|
15
|
+
|
|
16
|
+
`,O.errors.length>0)L=L+`${_.cross} Found ${O.errors.length} ${h1(O.errors.length,"error")}:
|
|
17
|
+
|
|
18
|
+
`,O.errors.forEach((V)=>{L=L+` ${_.pointer} ${V.path}: ${V.message}
|
|
19
|
+
`}),L=L+`
|
|
20
|
+
`;if(O.warnings.length>0)L=L+`${_.warning} Found ${O.warnings.length} ${h1(O.warnings.length,"warning")}:
|
|
21
|
+
|
|
22
|
+
`,O.warnings.forEach((V)=>{L=L+` ${_.pointer} ${V.path}: ${V.message}
|
|
23
|
+
`}),L=L+`
|
|
24
|
+
`;if(O.success){if(O.warnings.length>0)L=L+`${_.tick} Validation passed with warnings
|
|
25
|
+
`;else L=L+`${_.tick} Validation passed
|
|
26
|
+
`;process.exitCode=0}else L=L+`${_.cross} Validation failed
|
|
27
|
+
`,process.exitCode=1;q(L)}catch(O){let L=O;process.exitCode=2,t1(L),q(`${_.cross} Unexpected error during validation: ${I1(L)}`)}})()},F=[q,W],J[0]=q,J[1]=W,J[2]=K,J[3]=F;else K=J[2],F=J[3];ZX.useEffect(K,F);let y;if(J[4]===Symbol.for("react.memo_cache_sentinel"))y=X(G,{flexDirection:"column",children:X(Z,{children:"Running validation..."})}),J[4]=y;else y=J[4];return y}var XX,ZX;var qX=S1(()=>{X0();a1();G0();R9();iX();I0();E1();XX=v1(U0(),1),ZX=v1(o1(),1)});function rX(Y){let J=F9.c(4),{onComplete:q}=Y,W,K;if(J[0]!==q)W=()=>{(async function(){try{let N=await J0(),O=Object.keys(N);if(O.length===0)q("No marketplaces configured");else q(`Configured marketplaces:
|
|
28
|
+
${O.map(sX).join(`
|
|
29
|
+
`)}`)}catch(N){q(`Error loading marketplaces: ${I1(N)}`)}})()},K=[q],J[0]=q,J[1]=W,J[2]=K;else W=J[1],K=J[2];j1.useEffect(W,K);let F;if(J[3]===Symbol.for("react.memo_cache_sentinel"))F=X(Z,{children:"Loading marketplaces..."}),J[3]=F;else F=J[3];return F}function sX(Y){return` • ${Y}`}function tX(){return null}function j9(Y){let J=[],q=[{source:"userSettings",scope:"user"},{source:"projectSettings",scope:"project"},{source:"localSettings",scope:"local"}];for(let{source:F,scope:y}of q)if(q0(F)?.extraKnownMarketplaces?.[Y])J.push({source:F,scope:y});let W=q0("policySettings"),K=Boolean(W?.extraKnownMarketplaces?.[Y]);return{editableSources:J,isInPolicy:K}}function zX(Y){let{editableSources:J,isInPolicy:q}=j9(Y);if(J.length>0)return{kind:"remove-extra-marketplace",name:Y,sources:J};if(q)return{kind:"managed-only",name:Y};return{kind:"navigate",tab:"marketplaces",viewState:{type:"manage-marketplaces",targetMarketplace:Y,action:"remove"}}}function eX(Y){return{kind:"navigate",tab:"installed",viewState:{type:"manage-plugins",targetPlugin:Y,action:"uninstall"}}}function _9(Y){return JZ.has(Y.type)}function S9(Y){if("pluginId"in Y&&Y.pluginId)return Y.pluginId;if("plugin"in Y&&Y.plugin)return Y.plugin;if(Y.source.includes("@"))return Y.source.split("@")[0];return}function XZ(Y,J,q,W,K,F,y){let E=[];for(let L of F){let V="pluginId"in L?L.pluginId:("plugin"in L)?L.plugin:void 0;E.push({label:V??L.source,message:H0(L),guidance:"Restart to retry loading plugins",action:{kind:"none"}})}let N=new Set;for(let L of Y){N.add(L.name);let V=zX(L.name),H=j9(L.name),e=H.isInPolicy?"managed":H.editableSources[0]?.scope;E.push({label:L.name,message:L.error??"Installation failed",guidance:V.kind==="managed-only"?"Managed by your organization — contact your admin":void 0,action:V,scope:e})}for(let L of J){let V="marketplace"in L?L.marketplace:L.source;if(N.has(V))continue;N.add(V);let H=zX(V),e=j9(V),t=e.isInPolicy?"managed":e.editableSources[0]?.scope;E.push({label:V,message:H0(L),guidance:H.kind==="managed-only"?"Managed by your organization — contact your admin":_0(L),action:H,scope:t})}for(let L of K){if(N.has(L.name))continue;N.add(L.name),E.push({label:L.name,message:L.error,action:{kind:"remove-installed-marketplace",name:L.name}})}let O=new Set;for(let L of q){let V=S9(L);if(V&&O.has(V))continue;if(V)O.add(V);let H="marketplace"in L?L.marketplace:void 0,e=V?y.get(L.source)??y.get(V):void 0;E.push({label:V?H?`${V} @ ${H}`:V:L.source,message:H0(L),guidance:_0(L),action:V?eX(V):{kind:"none"},scope:e})}for(let L of W)E.push({label:L.source,message:H0(L),guidance:_0(L),action:{kind:"none"}});return E}function ZZ(Y,J){for(let{source:q}of J){let W=q0(q);if(!W)continue;let K={};if(W.extraKnownMarketplaces?.[Y])K.extraKnownMarketplaces={...W.extraKnownMarketplaces,[Y]:void 0};if(W.enabledPlugins){let F=`@${Y}`,y=!1,E={...W.enabledPlugins};for(let N in E)if(N.endsWith(F))E[N]=void 0,y=!0;if(y)K.enabledPlugins=E}if(Object.keys(K).length>0)T0(q,K)}}function YZ(Y){let J=F9.c(26),{setViewState:q,setActiveTab:W,markPluginsChanged:K}=Y,F=N0(LZ),y=N0(KZ),E=P9(),[N,O]=j1.useState(0),[L,V]=j1.useState(null),H;if(J[0]===Symbol.for("react.memo_cache_sentinel"))H=[],J[0]=H;else H=J[0];let[e,t]=j1.useState(H),O1,D;if(J[1]===Symbol.for("react.memo_cache_sentinel"))O1=()=>{(async()=>{try{let k=await J0(),{failures:h}=await Y0(k);t(h)}catch{}})()},D=[],J[1]=O1,J[2]=D;else O1=J[1],D=J[2];j1.useEffect(O1,D);let $=y.marketplaces.filter(QZ),I=new Set($.map(UZ)),a=F.filter(_9),B=F.filter((k)=>(k.type==="marketplace-not-found"||k.type==="marketplace-load-failed"||k.type==="marketplace-blocked-by-policy")&&!I.has(k.marketplace)),Q=F.filter(GZ),m=F.filter(WZ),W1=A9(),w=XZ($,B,Q,m,e,a,W1),Y1;if(J[3]!==q)Y1=()=>{q({type:"menu"})},J[3]=q,J[4]=Y1;else Y1=J[4];let i;if(J[5]===Symbol.for("react.memo_cache_sentinel"))i={context:"Confirmation"},J[5]=i;else i=J[5];m1("confirm:no",Y1,i);let r=()=>{let k=w[N];if(!k)return;let{action:h}=k;J:switch(h.kind){case"navigate":{W(h.tab),q(h.viewState);break J}case"remove-extra-marketplace":{let P=h.sources.map(zZ).join(", ");ZZ(h.name,h.sources),M1(),E((f)=>({...f,plugins:{...f.plugins,errors:f.plugins.errors.filter((A)=>!(("marketplace"in A)&&A.marketplace===h.name)),installationStatus:{...f.plugins.installationStatus,marketplaces:f.plugins.installationStatus.marketplaces.filter((A)=>A.name!==h.name)}}})),V(`${_.tick} Removed "${h.name}" from ${P} settings`),K();break J}case"remove-installed-marketplace":{(async()=>{try{await L9(h.name),M1(),t((P)=>P.filter((f)=>f.name!==h.name)),V(`${_.tick} Removed marketplace "${h.name}"`),K()}catch(P){let f=P;V(`Failed to remove "${h.name}": ${f instanceof Error?f.message:String(f)}`)}})();break J}case"managed-only":break J;case"none":}},z1;if(J[6]===Symbol.for("react.memo_cache_sentinel"))z1=()=>O(qZ),J[6]=z1;else z1=J[6];let v=w.length>0,Q1;if(J[7]!==v)Q1={context:"Select",isActive:v},J[7]=v,J[8]=Q1;else Q1=J[8];C1({"select:previous":z1,"select:next":()=>O((k)=>Math.min(w.length-1,k+1)),"select:accept":r},Q1);let G1=Math.min(N,Math.max(0,w.length-1));if(G1!==N)O(G1);let J1=w[G1]?.action,s=J1&&J1.kind!=="none"&&J1.kind!=="managed-only";if(w.length===0){let k;if(J[9]===Symbol.for("react.memo_cache_sentinel"))k=X(G,{marginLeft:1,children:X(Z,{dimColor:!0,children:"No plugin errors"})}),J[9]=k;else k=J[9];let h;if(J[10]===Symbol.for("react.memo_cache_sentinel"))h=z(G,{flexDirection:"column",children:[k,X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"})})})]}),J[10]=h;else h=J[10];return h}let X1=G,L1="column",l;if(J[11]!==G1)l=(k,h)=>{let P=h===G1;return z(G,{marginLeft:1,flexDirection:"column",marginBottom:1,children:[z(Z,{children:[z(Z,{color:P?"suggestion":"error",children:[P?_.pointer:_.cross," "]}),X(Z,{bold:P,children:k.label}),k.scope&&z(Z,{dimColor:!0,children:[" (",k.scope,")"]})]}),X(G,{marginLeft:3,children:X(Z,{color:"error",children:k.message})}),k.guidance&&X(G,{marginLeft:3,children:X(Z,{dimColor:!0,italic:!0,children:k.guidance})})]},h)},J[11]=G1,J[12]=l;else l=J[12];let T=w.map(l),C;if(J[13]!==L)C=L&&X(G,{marginTop:1,marginLeft:1,children:X(Z,{color:"claude",children:L})}),J[13]=L,J[14]=C;else C=J[14];let j;if(J[15]===Symbol.for("react.memo_cache_sentinel"))j=X(U1,{action:"select:previous",context:"Select",fallback:"↑",description:"navigate"}),J[15]=j;else j=J[15];let n;if(J[16]!==s)n=s&&X(U1,{action:"select:accept",context:"Select",fallback:"Enter",description:"resolve"}),J[16]=s,J[17]=n;else n=J[17];let H1;if(J[18]===Symbol.for("react.memo_cache_sentinel"))H1=X(U1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"back"}),J[18]=H1;else H1=J[18];let R;if(J[19]!==n)R=X(G,{marginTop:1,children:X(Z,{dimColor:!0,italic:!0,children:z(k1,{children:[j,n,H1]})})}),J[19]=n,J[20]=R;else R=J[20];let g;if(J[21]!==X1||J[22]!==T||J[23]!==C||J[24]!==R)g=z(X1,{flexDirection:L1,children:[T,C,R]}),J[21]=X1,J[22]=T,J[23]=C,J[24]=R,J[25]=g;else g=J[25];return g}function qZ(Y){return Math.max(0,Y-1)}function zZ(Y){return Y.scope}function WZ(Y){if(_9(Y))return!1;if(Y.type==="marketplace-not-found"||Y.type==="marketplace-load-failed"||Y.type==="marketplace-blocked-by-policy")return!1;return S9(Y)===void 0}function GZ(Y){if(_9(Y))return!1;if(Y.type==="marketplace-not-found"||Y.type==="marketplace-load-failed"||Y.type==="marketplace-blocked-by-policy")return!1;return S9(Y)!==void 0}function UZ(Y){return Y.name}function QZ(Y){return Y.status==="failed"}function KZ(Y){return Y.plugins.installationStatus}function LZ(Y){return Y.plugins.errors}function HZ(Y){switch(Y.type){case"help":return{type:"help"};case"validate":return{type:"validate",path:Y.path};case"install":if(Y.marketplace)return{type:"browse-marketplace",targetMarketplace:Y.marketplace,targetPlugin:Y.plugin};if(Y.plugin)return{type:"discover-plugins",targetPlugin:Y.plugin};return{type:"discover-plugins"};case"manage":return{type:"manage-plugins"};case"uninstall":return{type:"manage-plugins",targetPlugin:Y.plugin,action:"uninstall"};case"enable":return{type:"manage-plugins",targetPlugin:Y.plugin,action:"enable"};case"disable":return{type:"manage-plugins",targetPlugin:Y.plugin,action:"disable"};case"marketplace":if(Y.action==="list")return{type:"marketplace-list"};if(Y.action==="add")return{type:"add-marketplace",initialValue:Y.target};if(Y.action==="remove")return{type:"manage-marketplaces",targetMarketplace:Y.target,action:"remove"};if(Y.action==="update")return{type:"manage-marketplaces",targetMarketplace:Y.target,action:"update"};return{type:"marketplace-menu"};case"menu":default:return{type:"discover-plugins"}}}function NZ(Y){if(Y.type==="manage-plugins")return"installed";if(Y.type==="manage-marketplaces")return"marketplaces";return"discover"}function QX(Y){let J=F9.c(75),{onComplete:q,args:W,showMcpRedirectMessage:K}=Y,F,y;if(J[0]!==W)F=tJ(W),y=HZ(F),J[0]=W,J[1]=F,J[2]=y;else F=J[1],y=J[2];let E=y,[N,O]=j1.useState(E),L;if(J[3]!==E)L=NZ(E),J[3]=E,J[4]=L;else L=J[4];let[V,H]=j1.useState(L),[e,t]=j1.useState(N.type==="add-marketplace"?N.initialValue||"":""),[O1,D]=j1.useState(0),[$,I]=j1.useState(null),[a,B]=j1.useState(null),[Q,m]=j1.useState(!1),W1=P9(),w=N0(DZ),Y1=w>0?`Errors (${w})`:"Errors",i=WX(),r=F.type==="marketplace"&&F.action==="add"&&F.target!==void 0,z1;if(J[5]!==W1)z1=()=>{W1(OZ)},J[5]=W1,J[6]=z1;else z1=J[6];let v=z1,Q1;if(J[7]===Symbol.for("react.memo_cache_sentinel"))Q1=(T1)=>{let V1=T1;H(V1),I(null);J:switch(V1){case"discover":{O({type:"discover-plugins"});break J}case"installed":{O({type:"manage-plugins"});break J}case"marketplaces":{O({type:"manage-marketplaces"});break J}case"errors":}},J[7]=Q1;else Q1=J[7];let G1=Q1,J1,s;if(J[8]!==q||J[9]!==a||J[10]!==N.type)J1=()=>{if(N.type==="menu"&&!a)q()},s=[N.type,a,q],J[8]=q,J[9]=a,J[10]=N.type,J[11]=J1,J[12]=s;else J1=J[11],s=J[12];j1.useEffect(J1,s);let X1,L1;if(J[13]!==V||J[14]!==N.type)X1=()=>{if(N.type==="browse-marketplace"&&V!=="discover")H("discover")},L1=[N.type,V],J[13]=V,J[14]=N.type,J[15]=X1,J[16]=L1;else X1=J[15],L1=J[16];j1.useEffect(X1,L1);let l;if(J[17]===Symbol.for("react.memo_cache_sentinel"))l=()=>{H("marketplaces"),O({type:"manage-marketplaces"}),t(""),I(null)},J[17]=l;else l=J[17];let T=l,C=N.type==="add-marketplace",j;if(J[18]!==C)j={context:"Settings",isActive:C},J[18]=C,J[19]=j;else j=J[19];m1("confirm:no",T,j);let n,H1;if(J[20]!==q||J[21]!==a)n=()=>{if(a)q(a)},H1=[a,q],J[20]=q,J[21]=a,J[22]=n,J[23]=H1;else n=J[22],H1=J[23];j1.useEffect(n,H1);let R,g;if(J[24]!==q||J[25]!==N.type)R=()=>{if(N.type==="help")q()},g=[N.type,q],J[24]=q,J[25]=N.type,J[26]=R,J[27]=g;else R=J[26],g=J[27];if(j1.useEffect(R,g),N.type==="help"){let T1;if(J[28]===Symbol.for("react.memo_cache_sentinel"))T1=z(G,{flexDirection:"column",children:[X(Z,{bold:!0,children:"Plugin Command Usage:"}),X(Z,{children:" "}),X(Z,{dimColor:!0,children:"Installation:"}),X(Z,{children:" /plugin install - Browse and install plugins"}),z(Z,{children:[" ","/plugin install <marketplace> - Install from specific marketplace"]}),X(Z,{children:" /plugin install <plugin> - Install specific plugin"}),z(Z,{children:[" ","/plugin install <plugin>@<market> - Install plugin from marketplace"]}),X(Z,{children:" "}),X(Z,{dimColor:!0,children:"Management:"}),X(Z,{children:" /plugin manage - Manage installed plugins"}),X(Z,{children:" /plugin enable <plugin> - Enable a plugin"}),X(Z,{children:" /plugin disable <plugin> - Disable a plugin"}),X(Z,{children:" /plugin uninstall <plugin> - Uninstall a plugin"}),X(Z,{children:" "}),X(Z,{dimColor:!0,children:"Marketplaces:"}),X(Z,{children:" /plugin marketplace - Marketplace management menu"}),X(Z,{children:" /plugin marketplace add - Add a marketplace"}),z(Z,{children:[" ","/plugin marketplace add <path/url> - Add marketplace directly"]}),X(Z,{children:" /plugin marketplace update - Update marketplaces"}),z(Z,{children:[" ","/plugin marketplace update <name> - Update specific marketplace"]}),X(Z,{children:" /plugin marketplace remove - Remove a marketplace"}),z(Z,{children:[" ","/plugin marketplace remove <name> - Remove specific marketplace"]}),X(Z,{children:" /plugin marketplace list - List all marketplaces"}),X(Z,{children:" "}),X(Z,{dimColor:!0,children:"Validation:"}),z(Z,{children:[" ","/plugin validate <path> - Validate a manifest file or directory"]}),X(Z,{children:" "}),X(Z,{dimColor:!0,children:"Other:"}),X(Z,{children:" /plugin - Main plugin menu"}),X(Z,{children:" /plugin help - Show this help"}),X(Z,{children:" /plugins - Alias for /plugin"})]}),J[28]=T1;else T1=J[28];return T1}if(N.type==="validate"){let T1;if(J[29]!==q||J[30]!==N.path)T1=X(YX,{onComplete:q,path:N.path}),J[29]=q,J[30]=N.path,J[31]=T1;else T1=J[31];return T1}if(N.type==="marketplace-menu")return O({type:"menu"}),null;if(N.type==="marketplace-list"){let T1;if(J[32]!==q)T1=X(rX,{onComplete:q}),J[32]=q,J[33]=T1;else T1=J[33];return T1}if(N.type==="add-marketplace"){let T1;if(J[34]!==r||J[35]!==O1||J[36]!==$||J[37]!==e||J[38]!==v||J[39]!==a)T1=X(o9,{inputValue:e,setInputValue:t,cursorOffset:O1,setCursorOffset:D,error:$,setError:I,result:a,setResult:B,setViewState:O,onAddComplete:v,cliMode:r}),J[34]=r,J[35]=O1,J[36]=$,J[37]=e,J[38]=v,J[39]=a,J[40]=T1;else T1=J[40];return T1}let k;if(J[41]!==V||J[42]!==K)k=K&&V==="installed"?X(tX,{}):void 0,J[41]=V,J[42]=K,J[43]=k;else k=J[43];let h;if(J[44]!==$||J[45]!==v||J[46]!==a||J[47]!==N.targetMarketplace||J[48]!==N.targetPlugin||J[49]!==N.type)h=X(o0,{id:"discover",title:"Discover",children:N.type==="browse-marketplace"?X(HJ,{error:$,setError:I,result:a,setResult:B,setViewState:O,onInstallComplete:v,targetMarketplace:N.targetMarketplace,targetPlugin:N.targetPlugin}):X(TJ,{error:$,setError:I,result:a,setResult:B,setViewState:O,onInstallComplete:v,onSearchModeChange:m,targetPlugin:N.type==="discover-plugins"?N.targetPlugin:void 0})}),J[44]=$,J[45]=v,J[46]=a,J[47]=N.targetMarketplace,J[48]=N.targetPlugin,J[49]=N.type,J[50]=h;else h=J[50];let P=N.type==="manage-plugins"?N.targetPlugin:void 0,f=N.type==="manage-plugins"?N.targetMarketplace:void 0,A=N.type==="manage-plugins"?N.action:void 0,b;if(J[51]!==v||J[52]!==P||J[53]!==f||J[54]!==A)b=X(o0,{id:"installed",title:"Installed",children:X(rJ,{setViewState:O,setResult:B,onManageComplete:v,onSearchModeChange:m,targetPlugin:P,targetMarketplace:f,action:A})}),J[51]=v,J[52]=P,J[53]=f,J[54]=A,J[55]=b;else b=J[55];let u=N.type==="manage-marketplaces"?N.targetMarketplace:void 0,Z1=N.type==="manage-marketplaces"?N.action:void 0,x;if(J[56]!==$||J[57]!==i||J[58]!==v||J[59]!==u||J[60]!==Z1)x=X(o0,{id:"marketplaces",title:"Marketplaces",children:X(CJ,{setViewState:O,error:$,setError:I,setResult:B,exitState:i,onManageComplete:v,targetMarketplace:u,action:Z1})}),J[56]=$,J[57]=i,J[58]=v,J[59]=u,J[60]=Z1,J[61]=x;else x=J[61];let N1;if(J[62]!==v)N1=X(YZ,{setViewState:O,setActiveTab:H,markPluginsChanged:v}),J[62]=v,J[63]=N1;else N1=J[63];let b1;if(J[64]!==Y1||J[65]!==N1)b1=X(o0,{id:"errors",title:Y1,children:N1}),J[64]=Y1,J[65]=N1,J[66]=b1;else b1=J[66];let p1;if(J[67]!==V||J[68]!==Q||J[69]!==k||J[70]!==h||J[71]!==b||J[72]!==x||J[73]!==b1)p1=X(GX,{color:"suggestion",children:z(UX,{title:"Plugins",selectedTab:V,onTabChange:G1,color:"suggestion",disableNavigation:Q,banner:k,children:[h,b,x,b1]})}),J[67]=V,J[68]=Q,J[69]=k,J[70]=h,J[71]=b,J[72]=x,J[73]=b1,J[74]=p1;else p1=J[74];return p1}function OZ(Y){return Y.plugins.needsRefresh?Y:{...Y,plugins:{...Y.plugins,needsRefresh:!0}}}function DZ(Y){let J=Y.plugins.errors.length;for(let q of Y.plugins.installationStatus.marketplaces)if(q.status==="failed")J++;return J}var F9,j1,JZ;var KX=S1(()=>{X0();D0();A0();aX();nX();lX();a1();C0();SJ();G0();E0();p0();b0();uJ();w9();i9();NJ();yJ();fJ();sJ();M9();eJ();qX();E1();F9=v1(U0(),1),j1=v1(o1(),1);JZ=new Set(["git-auth-failed","git-timeout","network-error"])});async function Y8(Y,J,q){return X(QX,{onComplete:Y,args:q})}var AZ=S1(()=>{KX();E1()});AZ();export{Y8 as call};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Mc as a,Nc as b,Oc as c,Pc as d,Qc as e,Rc as f,Sc as g,Tc as h}from"./cli-0.5.7-m82d23hf.mjs";import"./cli-0.5.7-q2e6xpch.mjs";import"./cli-0.5.7-w16wj21h.mjs";import"./cli-0.5.7-tc3vm4ra.mjs";import"./cli-0.5.7-7hm7dxyp.mjs";import"./cli-0.5.7-gy4csxb5.mjs";import"./cli-0.5.7-bzrvdrq4.mjs";import"./cli-0.5.7-gnq8vh0c.mjs";import"./cli-0.5.7-93k1z52y.mjs";import"./cli-0.5.7-zb8ztx8p.mjs";import"./cli-0.5.7-w50j12vv.mjs";import"./cli-0.5.7-93eaxn9a.mjs";import"./cli-0.5.7-h9v4tqbs.mjs";import"./cli-0.5.7-vyxaeh82.mjs";import"./cli-0.5.7-31969syr.mjs";import"./cli-0.5.7-73er78b7.mjs";import"./cli-0.5.7-sb3fjts4.mjs";import"./cli-0.5.7-hq4wbper.mjs";import"./cli-0.5.7-yaywev87.mjs";import"./cli-0.5.7-7mmyazqh.mjs";import"./cli-0.5.7-aq7a3646.mjs";import"./cli-0.5.7-pzjz115k.mjs";import"./cli-0.5.7-tbga87q3.mjs";import"./cli-0.5.7-7a9gq9ff.mjs";import"./cli-0.5.7-x1w96j6d.mjs";import"./cli-0.5.7-9z55nm22.mjs";import"./cli-0.5.7-0rvzfmhb.mjs";import"./cli-0.5.7-kp9pg4sr.mjs";import"./cli-0.5.7-gcnk0vke.mjs";import"./cli-0.5.7-6d26vvaa.mjs";import"./cli-0.5.7-e8eqdfnf.mjs";import"./cli-0.5.7-9acdh8nc.mjs";import"./cli-0.5.7-g7k0r0ea.mjs";import"./cli-0.5.7-vgc7nzef.mjs";import"./cli-0.5.7-8sbq2qed.mjs";import"./cli-0.5.7-jw2te6th.mjs";import"./cli-0.5.7-20cz322w.mjs";import"./cli-0.5.7-m5q27x96.mjs";import"./cli-0.5.7-6pssgqdn.mjs";import"./cli-0.5.7-5e5xfeq6.mjs";import"./cli-0.5.7-8ychjqct.mjs";import"./cli-0.5.7-g4n7dg2d.mjs";import"./cli-0.5.7-xn6deh04.mjs";import"./cli-0.5.7-dntg9qbj.mjs";import"./cli-0.5.7-rggstqv6.mjs";import"./cli-0.5.7-0df5m6td.mjs";import"./cli-0.5.7-yzncgfs4.mjs";import"./cli-0.5.7-2qxsy7jq.mjs";import"./cli-0.5.7-89fcvfy0.mjs";import"./cli-0.5.7-469r2a5r.mjs";import"./cli-0.5.7-mzfr99sc.mjs";import"./cli-0.5.7-5mrw857q.mjs";import"./cli-0.5.7-c9dtw94k.mjs";import"./cli-0.5.7-0s7wtvbz.mjs";import"./cli-0.5.7-35yf0b84.mjs";import"./cli-0.5.7-sjx0wm99.mjs";import"./cli-0.5.7-xepvraxn.mjs";import"./cli-0.5.7-26pwg6gg.mjs";import"./cli-0.5.7-twqt7rxq.mjs";import"./cli-0.5.7-pse9qff7.mjs";import"./cli-0.5.7-tqn2ged5.mjs";import"./cli-0.5.7-skfm51ta.mjs";import"./cli-0.5.7-hp25yk8y.mjs";import"./cli-0.5.7-m4wwfa6q.mjs";import"./cli-0.5.7-258ytmbr.mjs";h();export{d as settingSourceToScope,c as isPersistableScope,g as installSelectedPlugins,b as getPluginEditableScopes,e as getInstalledPlugins,f as findMissingPlugins,a as checkEnabledPlugins};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{Q as xq,R as Fq,S as Hq,T as Jq,U as Qq,V as Xq}from"./cli-0.5.7-vy4r02pg.mjs";import{W as G,X as K}from"./cli-0.5.7-p381d4sx.mjs";import{$b as Nq,_b as s,ac as r,cc as wq,dc as e,ec as qq,fc as Dq}from"./cli-0.5.7-vvrg78m6.mjs";import{Ac as T,Bc as S}from"./cli-0.5.7-rr1yd8f3.mjs";import"./cli-0.5.7-m82d23hf.mjs";import{$H as t,AH as M,Cm as O,DH as bq,Dm as Rq,GH as c,GI as o,HH as g,JI as Tq,MH as hq,VH as u,WH as A,Xm as f,Zm as Bq,_H as p,cI as a,dI as l,en as D,fI as Uq,gI as i,gn as d,hn as yq,mI as n,qI as Vq}from"./cli-0.5.7-q2e6xpch.mjs";import"./cli-0.5.7-w16wj21h.mjs";import"./cli-0.5.7-tc3vm4ra.mjs";import"./cli-0.5.7-7hm7dxyp.mjs";import"./cli-0.5.7-gy4csxb5.mjs";import"./cli-0.5.7-bzrvdrq4.mjs";import"./cli-0.5.7-gnq8vh0c.mjs";import"./cli-0.5.7-93k1z52y.mjs";import"./cli-0.5.7-zb8ztx8p.mjs";import"./cli-0.5.7-w50j12vv.mjs";import"./cli-0.5.7-93eaxn9a.mjs";import"./cli-0.5.7-h9v4tqbs.mjs";import"./cli-0.5.7-vyxaeh82.mjs";import"./cli-0.5.7-31969syr.mjs";import"./cli-0.5.7-73er78b7.mjs";import"./cli-0.5.7-sb3fjts4.mjs";import"./cli-0.5.7-hq4wbper.mjs";import"./cli-0.5.7-yaywev87.mjs";import"./cli-0.5.7-7mmyazqh.mjs";import"./cli-0.5.7-aq7a3646.mjs";import"./cli-0.5.7-pzjz115k.mjs";import"./cli-0.5.7-tbga87q3.mjs";import"./cli-0.5.7-7a9gq9ff.mjs";import"./cli-0.5.7-x1w96j6d.mjs";import"./cli-0.5.7-9z55nm22.mjs";import"./cli-0.5.7-0rvzfmhb.mjs";import"./cli-0.5.7-kp9pg4sr.mjs";import"./cli-0.5.7-gcnk0vke.mjs";import"./cli-0.5.7-6d26vvaa.mjs";import"./cli-0.5.7-e8eqdfnf.mjs";import"./cli-0.5.7-9acdh8nc.mjs";import"./cli-0.5.7-g7k0r0ea.mjs";import"./cli-0.5.7-vgc7nzef.mjs";import"./cli-0.5.7-8sbq2qed.mjs";import"./cli-0.5.7-jw2te6th.mjs";import"./cli-0.5.7-20cz322w.mjs";import"./cli-0.5.7-m5q27x96.mjs";import"./cli-0.5.7-6pssgqdn.mjs";import"./cli-0.5.7-5e5xfeq6.mjs";import"./cli-0.5.7-8ychjqct.mjs";import"./cli-0.5.7-g4n7dg2d.mjs";import"./cli-0.5.7-xn6deh04.mjs";import"./cli-0.5.7-dntg9qbj.mjs";import"./cli-0.5.7-rggstqv6.mjs";import"./cli-0.5.7-0df5m6td.mjs";import"./cli-0.5.7-yzncgfs4.mjs";import"./cli-0.5.7-2qxsy7jq.mjs";import"./cli-0.5.7-89fcvfy0.mjs";import{B6 as k,J6 as Gq,K6 as X,L6 as Wq,Z_ as I,f$ as Kq}from"./cli-0.5.7-469r2a5r.mjs";import"./cli-0.5.7-mzfr99sc.mjs";import"./cli-0.5.7-5mrw857q.mjs";import"./cli-0.5.7-c9dtw94k.mjs";import"./cli-0.5.7-0s7wtvbz.mjs";import"./cli-0.5.7-35yf0b84.mjs";import"./cli-0.5.7-sjx0wm99.mjs";import"./cli-0.5.7-xepvraxn.mjs";import{Nea as B,Pea as jq}from"./cli-0.5.7-26pwg6gg.mjs";import{sfa as C,xfa as zq}from"./cli-0.5.7-twqt7rxq.mjs";import"./cli-0.5.7-pse9qff7.mjs";import"./cli-0.5.7-tqn2ged5.mjs";import{Gga as P,Nga as $q}from"./cli-0.5.7-skfm51ta.mjs";import{Uka as y,ima as Zq}from"./cli-0.5.7-hp25yk8y.mjs";import"./cli-0.5.7-m4wwfa6q.mjs";import{_ma as Yq}from"./cli-0.5.7-258ytmbr.mjs";Wq();Zq();jq();import{basename as _q,dirname as E}from"path";Rq();$q();Gq();bq();wq();Vq();hq();Uq();Bq();Nq();yq();Tq();Dq();zq();Kq();function L(F,q){k(F),G(`${X.cross} Failed to ${q}: ${P(F)}`)}function m(F){if(F.errors.length>0)console.log(`${X.cross} Found ${F.errors.length} ${I(F.errors.length,"error")}:
|
|
2
|
+
`),F.errors.forEach((q)=>{console.log(` ${X.pointer} ${q.path}: ${q.message}`)}),console.log("");if(F.warnings.length>0)console.log(`${X.warning} Found ${F.warnings.length} ${I(F.warnings.length,"warning")}:
|
|
3
|
+
`),F.warnings.forEach((q)=>{console.log(` ${X.pointer} ${q.path}: ${q.message}`)}),console.log("")}async function iq(F,q){if(q.cowork)y(!0);try{let x=await qq(F);console.log(`Validating ${x.fileType} manifest: ${x.filePath}
|
|
4
|
+
`),m(x);let H=[];if(x.fileType==="plugin"){let Z=E(x.filePath);if(_q(Z)===".claude-plugin"){H=await e(E(Z));for(let U of H)console.log(`Validating ${U.fileType}: ${U.filePath}
|
|
5
|
+
`),m(U)}}let J=x.success&&H.every((Z)=>Z.success),Y=x.warnings.length>0||H.some((Z)=>Z.warnings.length>0);if(J)K(Y?`${X.tick} Validation passed with warnings`:`${X.tick} Validation passed`);else console.log(`${X.cross} Validation failed`),process.exit(1)}catch(x){k(x),console.error(`${X.cross} Unexpected error during validation: ${P(x)}`),process.exit(2)}}async function nq(F){if(F.cowork)y(!0);B("tengu_plugin_list_command",{});let q=i(),{getPluginEditableScopes:x}=await import("./pluginStartupCheck-0.5.7-gy2e0dge.mjs"),H=x(),J=Object.keys(q.plugins),{enabled:Y,disabled:Z,errors:U}=await o(),v=[...Y,...Z],_=v.filter(($)=>$.source.endsWith("@inline")),N=U.filter(($)=>$.source.endsWith("@inline")||$.source.startsWith("inline["));if(F.json){let $=new Map(v.map((Q)=>[Q.source,Q])),j=[];for(let Q of J.sort()){let z=q.plugins[Q];if(!z||z.length===0)continue;let R=D(Q).name,b=U.filter((W)=>W.source===Q||("plugin"in W)&&W.plugin===R).map(O);for(let W of z){let w=$.get(Q),h;if(w){let V=w.mcpServers||await f(w);if(V&&Object.keys(V).length>0)h=V}j.push({id:Q,version:W.version||"unknown",scope:W.scope,enabled:H.has(Q),installPath:W.installPath,installedAt:W.installedAt,lastUpdated:W.lastUpdated,projectPath:W.projectPath,mcpServers:h,errors:b.length>0?b:void 0})}}for(let Q of _){let z=Q.mcpServers||await f(Q),R=N.filter((b)=>b.source===Q.source||("plugin"in b)&&b.plugin===Q.name).map(O);j.push({id:Q.source,version:Q.manifest.version??"unknown",scope:"session",enabled:Q.enabled!==!1,installPath:Q.path,mcpServers:z&&Object.keys(z).length>0?z:void 0,errors:R.length>0?R:void 0})}for(let Q of N.filter((z)=>z.source.startsWith("inline[")))j.push({id:Q.source,version:"unknown",scope:"session",enabled:!1,installPath:"path"in Q?Q.path:"",errors:[O(Q)]});if(F.available){let Q=[];try{let[z,R]=await Promise.all([A(),r()]),{marketplaces:b}=await g(z);for(let{name:W,data:w}of b)if(w)for(let h of w.plugins){let V=c(h.name,W);if(!n(V))Q.push({pluginId:V,name:h.name,description:h.description,marketplaceName:W,version:h.version,source:h.source,installCount:R?.get(V)})}}catch{}K(C({installed:j,available:Q},null,2))}else K(C(j,null,2))}if(J.length===0&&_.length===0){if(N.length===0)K("No plugins installed. Use `claude plugin install` to install a plugin.")}if(J.length>0)console.log(`Installed plugins:
|
|
6
|
+
`);for(let $ of J.sort()){let j=q.plugins[$];if(!j||j.length===0)continue;let Q=D($).name,z=U.filter((R)=>R.source===$||("plugin"in R)&&R.plugin===Q);for(let R of j){let b=H.has($),W=z.length>0?`${X.cross} failed to load`:b?`${X.tick} enabled`:`${X.cross} disabled`,w=R.version||"unknown",h=R.scope;console.log(` ${X.pointer} ${$}`),console.log(` Version: ${w}`),console.log(` Scope: ${h}`),console.log(` Status: ${W}`);for(let V of z)console.log(` Error: ${O(V)}`);console.log("")}}if(_.length>0||N.length>0){console.log(`Session-only plugins (--plugin-dir):
|
|
7
|
+
`);for(let $ of _){let j=N.filter((z)=>z.source===$.source||("plugin"in z)&&z.plugin===$.name),Q=j.length>0?`${X.cross} loaded with errors`:`${X.tick} loaded`;console.log(` ${X.pointer} ${$.source}`),console.log(` Version: ${$.manifest.version??"unknown"}`),console.log(` Path: ${$.path}`),console.log(` Status: ${Q}`);for(let z of j)console.log(` Error: ${O(z)}`);console.log("")}for(let $ of N.filter((j)=>j.source.startsWith("inline[")))console.log(` ${X.pointer} ${$.source}: ${X.cross} ${O($)}
|
|
8
|
+
`)}K()}async function oq(F,q){if(q.cowork)y(!0);try{let x=await s(F);if(!x)G(`${X.cross} Invalid marketplace source format. Try: owner/repo, https://..., or ./path`);if("error"in x)G(`${X.cross} ${x.error}`);let H=q.scope??"user";if(H!=="user"&&H!=="project"&&H!=="local")G(`${X.cross} Invalid scope '${H}'. Use: user, project, or local`);let J=d(H),Y=x;if(q.sparse&&q.sparse.length>0)if(Y.source==="github"||Y.source==="git")Y={...Y,sparsePaths:q.sparse};else G(`${X.cross} --sparse is only supported for github and git marketplace sources (got: ${Y.source})`);console.log("Adding marketplace...");let{name:Z,alreadyMaterialized:U,resolvedSource:v}=await p(Y,(N)=>{console.log(N)});u(Z,{source:v},J),M();let _=Y.source;if(Y.source==="github")_=Y.repo;B("tengu_marketplace_added",{source_type:_}),K(U?`${X.tick} Marketplace '${Z}' already on disk — declared in ${H} settings`:`${X.tick} Successfully added marketplace: ${Z} (declared in ${H} settings)`)}catch(x){L(x,"add marketplace")}}async function sq(F){if(F.cowork)y(!0);try{let q=await A(),x=Object.keys(q);if(F.json){let H=x.sort().map((J)=>{let Y=q[J],Z=Y?.source;return{name:J,source:Z?.source,...Z?.source==="github"&&{repo:Z.repo},...Z?.source==="git"&&{url:Z.url},...Z?.source==="url"&&{url:Z.url},...Z?.source==="directory"&&{path:Z.path},...Z?.source==="file"&&{path:Z.path},installLocation:Y?.installLocation}});K(C(H,null,2))}if(x.length===0)K("No marketplaces configured");console.log(`Configured marketplaces:
|
|
9
|
+
`),x.forEach((H)=>{let J=q[H];if(console.log(` ${X.pointer} ${H}`),J?.source){let Y=J.source;if(Y.source==="github")console.log(` Source: GitHub (${Y.repo})`);else if(Y.source==="git")console.log(` Source: Git (${Y.url})`);else if(Y.source==="url")console.log(` Source: URL (${Y.url})`);else if(Y.source==="directory")console.log(` Source: Directory (${Y.path})`);else if(Y.source==="file")console.log(` Source: File (${Y.path})`)}console.log("")}),K()}catch(q){L(q,"list marketplaces")}}async function rq(F,q){if(q.cowork)y(!0);try{await t(F),M(),B("tengu_marketplace_removed",{marketplace_name:F}),K(`${X.tick} Successfully removed marketplace: ${F}`)}catch(x){L(x,"remove marketplace")}}async function eq(F,q){if(q.cowork)y(!0);try{if(F)console.log(`Updating marketplace: ${F}...`),await l(F,(x)=>{console.log(x)}),M(),B("tengu_marketplace_updated",{marketplace_name:F}),K(`${X.tick} Successfully updated marketplace: ${F}`);else{let x=await A(),H=Object.keys(x);if(H.length===0)K("No marketplaces configured");console.log(`Updating ${H.length} marketplace(s)...`),await a(),M(),B("tengu_marketplace_updated_all",{count:H.length}),K(`${X.tick} Successfully updated ${H.length} marketplace(s)`)}}catch(x){L(x,"update marketplace(s)")}}async function qx(F,q){if(q.cowork)y(!0);let x=q.scope||"user";if(q.cowork&&x!=="user")G("--cowork can only be used with user scope");if(!T.includes(x))G(`Invalid scope: ${x}. Must be one of: ${T.join(", ")}.`);let{name:H,marketplace:J}=D(F);B("tengu_plugin_install_command",{_PROTO_plugin_name:H,...J&&{_PROTO_marketplace_name:J},scope:x}),await xq(F,x)}async function xx(F,q){if(q.cowork)y(!0);let x=q.scope||"user";if(q.cowork&&x!=="user")G("--cowork can only be used with user scope");if(!T.includes(x))G(`Invalid scope: ${x}. Must be one of: ${T.join(", ")}.`);let{name:H,marketplace:J}=D(F);B("tengu_plugin_uninstall_command",{_PROTO_plugin_name:H,...J&&{_PROTO_marketplace_name:J},scope:x}),await Fq(F,x,q.keepData)}async function Fx(F,q){if(q.cowork)y(!0);let x;if(q.scope){if(!T.includes(q.scope))G(`Invalid scope "${q.scope}". Valid scopes: ${T.join(", ")}`);x=q.scope}if(q.cowork&&x!==void 0&&x!=="user")G("--cowork can only be used with user scope");if(q.cowork&&x===void 0)x="user";let{name:H,marketplace:J}=D(F);B("tengu_plugin_enable_command",{_PROTO_plugin_name:H,...J&&{_PROTO_marketplace_name:J},scope:x??"auto"}),await Hq(F,x)}async function Hx(F,q){if(q.all&&F)G("Cannot use --all with a specific plugin");if(!q.all&&!F)G("Please specify a plugin name or use --all to disable all plugins");if(q.cowork)y(!0);if(q.all){if(q.scope)G("Cannot use --scope with --all");B("tengu_plugin_disable_command",{}),await Qq();return}let x;if(q.scope){if(!T.includes(q.scope))G(`Invalid scope "${q.scope}". Valid scopes: ${T.join(", ")}`);x=q.scope}if(q.cowork&&x!==void 0&&x!=="user")G("--cowork can only be used with user scope");if(q.cowork&&x===void 0)x="user";let{name:H,marketplace:J}=D(F);B("tengu_plugin_disable_command",{_PROTO_plugin_name:H,...J&&{_PROTO_marketplace_name:J},scope:x??"auto"}),await Jq(F,x)}async function Jx(F,q){if(q.cowork)y(!0);let{name:x,marketplace:H}=D(F);B("tengu_plugin_update_command",{_PROTO_plugin_name:x,...H&&{_PROTO_marketplace_name:H}});let J="user";if(q.scope){if(!S.includes(q.scope))G(`Invalid scope "${q.scope}". Valid scopes: ${S.join(", ")}`);J=q.scope}if(q.cowork&&J!=="user")G("--cowork can only be used with user scope");await Xq(F,J)}export{iq as pluginValidateHandler,Jx as pluginUpdateHandler,xx as pluginUninstallHandler,nq as pluginListHandler,qx as pluginInstallHandler,Fx as pluginEnableHandler,Hx as pluginDisableHandler,eq as marketplaceUpdateHandler,rq as marketplaceRemoveHandler,sq as marketplaceListHandler,oq as marketplaceAddHandler,L as handleMarketplaceError,S as VALID_UPDATE_SCOPES,T as VALID_INSTALLABLE_SCOPES};
|