import{jb as c}from"./cli-0.5.4-q40m3k35.mjs";import{kb as S}from"./cli-0.5.4-xk3b6ef9.mjs";import{lc as P,pc as Vq}from"./cli-0.5.4-5j99cwqy.mjs";import{tc as I,uc as v,vc as $,wc as Wq}from"./cli-0.5.4-zy4nyw3m.mjs";import{Fs as L,GI as f,Gs as qq,JI as Tq,LC as M,MC as Jq,Ms as h,Os as Bq,Vt as A,Wt as _,Xm as C,Yt as Gq,Zm as r,Zr as N,_r as e,oH as E,pH as Qq}from"./cli-0.5.4-k5fz4zd3.mjs";import{SY as s}from"./cli-0.5.4-5t3jj85n.mjs";import{B6 as D,J6 as n,k6 as y,m6 as o,r8 as w,t8 as t}from"./cli-0.5.4-cbq01zg3.mjs";import{Nea as F,Pea as a}from"./cli-0.5.4-09dvrzcr.mjs";import{Pfa as j,Sfa as l}from"./cli-0.5.4-end8wj9r.mjs";import{Fga as x,Nga as d}from"./cli-0.5.4-sgcaw17t.mjs";import{Vma as p}from"./cli-0.5.4-aacw1src.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};
