import{jb as c}from"./cli-0.5.3-9b18yx3h.mjs";import{kb as S}from"./cli-0.5.3-1jzx9sz3.mjs";import{lc as P,pc as Vq}from"./cli-0.5.3-7mzx7yy1.mjs";import{tc as I,uc as v,vc as $,wc as Wq}from"./cli-0.5.3-zfn4tvdr.mjs";import{Ds as L,EI as f,Es as qq,HI as Tq,JC as M,KC as Jq,Ks as h,Ms as Bq,Tt as A,Ut as _,Vm as C,Wt as Gq,Xm as r,Xr as N,Yr as e,mH as E,nH as Qq}from"./cli-0.5.3-jbzr8k4s.mjs";import{QY as s}from"./cli-0.5.3-rch86nhn.mjs";import{H6 as n,i6 as y,k6 as o,p8 as w,r8 as t,z6 as D}from"./cli-0.5.3-t65dek0m.mjs";import{Lea as F,Nea as a}from"./cli-0.5.3-9vh3vpap.mjs";import{Nfa as j,Qfa as l}from"./cli-0.5.3-n3cxyxpg.mjs";import{Dga as x,Lga as d}from"./cli-0.5.3-c8bcrqa4.mjs";import{Tma as p}from"./cli-0.5.3-0df3r78b.mjs";Jq();a();Bq();Gq();Wq();t();l();o();d();n();e();Qq();var V=p(s(),1);qq();r();Vq();Tq();function Lq({enabled:W=!0}={}){let b=V.useSyncExternalStore(v,I,I),H=_(),O=A((J)=>J.plugins.needsRefresh),{addNotification:z}=M(),R=V.useCallback(async()=>{try{let{enabled:J,disabled:T,errors:Q}=await f();await c();let X=P();if(Object.keys(X).length>0)z({key:"plugin-delisted-flagged",text:"Plugins flagged. Check /plugins",color:"warning",priority:"high"});let Y=[],Z=[];try{Y=await E(),$(Y)}catch(q){let B=q instanceof Error?q.message:String(q);Q.push({type:"generic-error",source:"plugin-commands",error:`Failed to load plugin commands: ${B}`}),$([])}try{Z=await N()}catch(q){let B=q instanceof Error?q.message:String(q);Q.push({type:"generic-error",source:"plugin-agents",error:`Failed to load plugin agents: ${B}`})}try{await S()}catch(q){let B=q instanceof Error?q.message:String(q);Q.push({type:"generic-error",source:"plugin-hooks",error:`Failed to load plugin hooks: ${B}`})}let u=(await Promise.all(J.map(async(q)=>{if(q.mcpServers)return Object.keys(q.mcpServers).length;let B=await C(q,Q);if(B)q.mcpServers=B;return B?Object.keys(B).length:0}))).reduce((q,B)=>q+B,0),m=(await Promise.all(J.map(async(q)=>{if(q.lspServers)return Object.keys(q.lspServers).length;let B=await L(q,Q);if(B)q.lspServers=B;return B?Object.keys(B).length:0}))).reduce((q,B)=>q+B,0);h(),H((q)=>{let B=q.plugins.errors.filter((G)=>G.source==="lsp-manager"||G.source.startsWith("plugin:")),K=new Set(Q.map((G)=>G.type==="generic-error"?`generic-error:${G.source}:${G.error}`:`${G.type}:${G.source}`)),U=[...B.filter((G)=>{let i=G.type==="generic-error"?`generic-error:${G.source}:${G.error}`:`${G.type}:${G.source}`;return!K.has(i)}),...Q];return{...q,plugins:{...q.plugins,enabled:J,disabled:T,commands:[],errors:U}}}),j(`Loaded plugins - Enabled: ${J.length}, Disabled: ${T.length}, Commands: ${Y.length}, Agents: ${Z.length}, Errors: ${Q.length}`);let g=J.reduce((q,B)=>{if(!B.hooksConfig)return q;return q+Object.values(B.hooksConfig).reduce((K,k)=>K+(k?.reduce((U,G)=>U+G.hooks.length,0)??0),0)},0);return{enabled_count:J.length,disabled_count:T.length,inline_count:w(J,(q)=>q.source.endsWith("@inline")),marketplace_count:w(J,(q)=>!q.source.endsWith("@inline")),error_count:Q.length,skill_count:Y.length,agent_count:Z.length,hook_count:g,mcp_count:u,lsp_count:m}}catch(J){let T=x(J);return D(T),j(`Error loading plugins: ${J}`),$([]),H((Q)=>{let X=Q.plugins.errors.filter((Z)=>Z.source==="lsp-manager"||Z.source.startsWith("plugin:")),Y={type:"generic-error",source:"plugin-system",error:T.message};return{...Q,plugins:{...Q.plugins,enabled:[],disabled:[],commands:[],errors:[...X,Y]}}}),{enabled_count:0,disabled_count:0,inline_count:0,marketplace_count:0,error_count:1,skill_count:0,agent_count:0,hook_count:0,mcp_count:0,lsp_count:0,load_failed:!0,ant_enabled_names:void 0}}},[H,z]);return V.useEffect(()=>{if(!W)return;R().then((J)=>{let{ant_enabled_names:T,...Q}=J,X={...Q,has_custom_plugin_cache_dir:!!process.env.CLAUDE_CODE_PLUGIN_CACHE_DIR};F("tengu_plugins_loaded",{...X,...T!==void 0&&{enabled_names:T}}),y("info","tengu_plugins_loaded",X)})},[R,W]),V.useEffect(()=>{if(W)return;$([])},[W]),V.useEffect(()=>{if(!W||!O)return;z({key:"plugin-reload-pending",text:"Plugins changed. Run /reload-plugins to activate.",color:"suggestion",priority:"low"})},[W,O,z]),W?b:[]}
export{Lq as ib};
