| 6587 | Other exit codes - show stderr to user only`}}},(q)=>q.slice().sort().join(","))});function rbK(q){let K=z6(23),{hookEventMetadata:_,hooksByEvent:z,totalHooksCount:Y,restrictedByPolicy:$,onSelectEvent:A,onCancel:O}=q,w;if(K[0]!==Y)w=A7(Y,"hook"),K[0]=Y,K[1]=w;else w=K[1];let j=`${Y} ${w} configured`,H;if(K[2]!==$)H=$&&o2.createElement(u,{flexDirection:"column"},o2.createElement(k,{color:"suggestion"},t6.info," Hooks Restricted by Policy"),o2.createElement(k,{dimColor:!0},"Only hooks from managed settings can run. User-defined hooks from ~/.claude/settings.json, .claude/settings.json, and .claude/settings.local.json are blocked.")),K[2]=$,K[3]=H;else H=K[3];let J;if(K[4]===Symbol.for("react.memo_cache_sentinel"))J=o2.createElement(u,{flexDirection:"column"},o2.createElement(k,{dimColor:!0},t6.info," This menu is read-only. To add or modify hooks, edit settings.json directly or ask Claude."," ",o2.createElement(hq,{url:"https://code.claude.com/docs/en/hooks"},"Learn more"))),K[4]=J;else J=K[4];let M;if(K[5]!==A)M=(G)=>{A(G)},K[5]=A,K[6]=M;else M=K[6];let X;if(K[7]!==_)X=Object.entries(_),K[7]=_,K[8]=X;else X=K[8];let P;if(K[9]!==z||K[10]!==X)P=X.map((G)=>{let[Z,T]=G,v=z[Z]||0;return{label:v>0?o2.createElement(k,null,Z," ",o2.createElement(k,{color:"suggestion"},"(",v,")")):Z,value:Z,description:T.summary}}),K[9]=z,K[10]=X,K[11]=P;else P=K[11];let W;if(K[12]!==O||K[13]!==M||K[14]!==P)W=o2.createElement(u,{flexDirection:"column"},o2.createElement(H1,{onChange:M,onCancel:O,options:P})),K[12]=O,K[13]=M,K[14]=P,K[15]=W;else W=K[15];let D;if(K[16]!==H||K[17]!==W)D=o2.createElement(u,{flexDirection:"column",gap:1},H,J,W),K[16]=H,K[17]=W,K[18]=D;else D=K[18];let f;if(K[19]!==O||K[20]!==j||K[21]!==D)f=o2.createElement(R1,{title:"Hooks",subtitle:j,onCancel:O},D),K[19]=O,K[20]=j,K[21]=D,K[22]=f;else f=K[22];return f}var o2;var obK=y(()=>{q8();bq();s6();p3();e4();o2=O6(D6(),1)});function abK(q){let K=z6(19),{selectedEvent:_,selectedMatcher:z,hooksForSelectedMatcher:Y,hookEventMetadata:$,onSelect:A,onCancel:O}=q,w=$.matcherMetadata!==void 0?`${_} - Matcher: ${z||"(all)"}`:_;if(Y.length===0){let P;if(K[0]===Symbol.for("react.memo_cache_sentinel"))P=YZ.createElement(u,{flexDirection:"column",gap:1},YZ.createElement(k,{dimColor:!0},"No hooks configured for this event."),YZ.createElement(k,{dimColor:!0},"To add hooks, edit settings.json directly or ask Claude.")),K[0]=P;else P=K[0];let W;if(K[1]!==$.description||K[2]!==O||K[3]!==w)W=YZ.createElement(R1,{title:w,subtitle:$.description,onCancel:O,inputGuide:pvY},P),K[1]=$.description,K[2]=O,K[3]=w,K[4]=W;else W=K[4];return W}let j=$.description,H;if(K[5]!==Y)H=Y.map(mvY),K[5]=Y,K[6]=H;else H=K[6];let J;if(K[7]!==Y||K[8]!==A)J=(P)=>{let W=parseInt(P,10),D=Y[W];if(D)A(D)},K[7]=Y,K[8]=A,K[9]=J;else J=K[9];let M;if(K[10]!==O||K[11]!==H||K[12]!==J)M=YZ.createElement(u,{flexDirection:"column"},YZ.createElement(H1,{options:H,onChange:J,onCancel:O})),K[10]=O,K[11]=H,K[12]=J,K[13]=M;else M=K[13];let X;if(K[14]!==$.description||K[15]!==O||K[16]!==M||K[17]!==w)X=YZ.createElement(R1,{title:w,subtitle:j,onCancel:O},M),K[14]=$.description,K[15]=O,K[16]=M,K[17]=w,K[18]=X;else X=K[18];return X}function mvY(q,K){return{label:`[${q.config.type}] ${pL(q.config)}`,value:K.toString(),description:q.source==="pluginHook"&&q.pluginName?`${OF1(q.source)} (${q.pluginName})`:OF1(q.source)}}function pvY(){return YZ.createElement(k,null,"Esc to go back")}var YZ;var sbK=y(()=>{q8();s6();Uw6();p3();e4();YZ=O6(D6(),1)});function tbK(q){let K=z6(25),{selectedEvent:_,matchersForSelectedEvent:z,hooksByEventAndMatcher:Y,eventDescription:$,onSelect:A,onCancel:O}=q,w;if(K[0]!==Y||K[1]!==z||K[2]!==_){let W;if(K[4]!==Y||K[5]!==_)W=(D)=>{let f=Y[_]?.[D]||[],G=Array.from(new Set(f.map(FvY)));return{matcher:D,sources:G,hookCount:f.length}},K[4]=Y,K[5]=_,K[6]=W;else W=K[6];w=z.map(W),K[0]=Y,K[1]=z,K[2]=_,K[3]=w}else w=K[3];let j=w;if(z.length===0){let W=`${_} - Matchers`,D;if(K[7]===Symbol.for("react.memo_cache_sentinel"))D=$Z.createElement(u,{flexDirection:"column",gap:1},$Z.createElement(k,{dimColor:!0},"No hooks configured for this event."),$Z.createElement(k,{dimColor:!0},"To add hooks, edit settings.json directly or ask Claude.")),K[7]=D;else D=K[7];let f;if(K[8]!==$||K[9]!==O||K[10]!==W)f=$Z.createElement(R1,{title:W,subtitle:$,onCancel:O,inputGuide:gvY},D),K[8]=$,K[9]=O,K[10]=W,K[11]=f;else f=K[11];return f}let H=`${_} - Matchers`,J;if(K[12]!==j)J=j.map(BvY),K[12]=j,K[13]=J;else J=K[13];let M;if(K[14]!==A)M=(W)=>{A(W)},K[14]=A,K[15]=M;else M=K[15];let X;if(K[16]!==O||K[17]!==J||K[18]!==M)X=$Z.createElement(u,{flexDirection:"column"},$Z.createElement(H1,{options:J,onChange:M,onCancel:O})),K[16]=O,K[17]=J,K[18]=M,K[19]=X;else X=K[19];let P;if(K[20]!==$||K[21]!==O||K[22]!==H||K[23]!==X)P=$Z.createElement(R1,{title:H,subtitle:$,onCancel:O},X),K[20]=$,K[21]=O,K[22]=H,K[23]=X,K[24]=P;else P=K[24];return P}function BvY(q){let K=q.sources.map(Pb4).join(", "),_=q.matcher||"(all)";return{label:`[${K}] ${_}`,value:q.matcher,description:`${q.hookCount} ${A7(q.hookCount,"hook")}`}}function gvY(){return $Z.createElement(k,null,"Esc to go back")}function FvY(q){return q.source}var $Z;var ebK=y(()=>{q8();s6();Uw6();p3();e4();$Z=O6(D6(),1)});function qxK(q){let K=z6(40),{selectedHook:_,eventSupportsMatcher:z,onCancel:Y}=q,$;if(K[0]!==_.event)$=g9.createElement(k,null,"Event: ",g9.createElement(k,{bold:!0},_.event)),K[0]=_.event,K[1]=$;else $=K[1];let A;if(K[2]!==z||K[3]!==_.matcher)A=z&&g9.createElement(k,null,"Matcher: ",g9.createElement(k,{bold:!0},_.matcher||"(all)")),K[2]=z,K[3]=_.matcher,K[4]=A;else A=K[4];let O;if(K[5]!==_.config.type)O=g9.createElement(k,null,"Type: ",g9.createElement(k,{bold:!0},_.config.type)),K[5]=_.config.type,K[6]=O;else O=K[6];let w;if(K[7]!==_.source)w=Xb4(_.source),K[7]=_.source,K[8]=w;else w=K[8];let j;if(K[9]!==w)j=g9.createElement(k,null,"Source:"," ",g9.createElement(k,{dimColor:!0},w)),K[9]=w,K[10]=j;else j=K[10];let H;if(K[11]!==_.pluginName)H=_.pluginName&&g9.createElement(k,null,"Plugin: ",g9.createElement(k,{dimColor:!0},_.pluginName)),K[11]=_.pluginName,K[12]=H;else H=K[12];let J;if(K[13]!==$||K[14]!==A||K[15]!==O||K[16]!==j||K[17]!==H)J=g9.createElement(u,{flexDirection:"column"},$,A,O,j,H),K[13]=$,K[14]=A,K[15]=O,K[16]=j,K[17]=H,K[18]=J;else J=K[18];let M;if(K[19]!==_.config)M=QvY(_.config),K[19]=_.config,K[20]=M;else M=K[20];let X;if(K[21]!==M)X=g9.createElement(k,{dimColor:!0},M,":"),K[21]=M,K[22]=X;else X=K[22];let P;if(K[23]!==_.config)P=dvY(_.config),K[23]=_.config,K[24]=P;else P=K[24];let W;if(K[25]!==P)W=g9.createElement(u,{borderStyle:"round",borderDimColor:!0,paddingLeft:1,paddingRight:1},g9.createElement(k,null,P)),K[25]=P,K[26]=W;else W=K[26];let D;if(K[27]!==W||K[28]!==X)D=g9.createElement(u,{flexDirection:"column"},X,W),K[27]=W,K[28]=X,K[29]=D;else D=K[29];let f;if(K[30]!==_.config)f="statusMessage"in _.config&&_.config.statusMessage&&g9.createElement(k,null,"Status message:"," ",g9.createElement(k,{dimColor:!0},_.config.statusMessage)),K[30]=_.config,K[31]=f;else f=K[31];let G;if(K[32]===Symbol.for("react.memo_cache_sentinel"))G=g9.createElement(k,{dimColor:!0},"To modify or remove this hook, edit settings.json directly or ask Claude to help."),K[32]=G;else G=K[32];let Z;if(K[33]!==D||K[34]!==f||K[35]!==J)Z=g9.createElement(u,{flexDirection:"column",gap:1},J,D,f,G),K[33]=D,K[34]=f,K[35]=J,K[36]=Z;else Z=K[36];let T;if(K[37]!==Y||K[38]!==Z)T=g9.createElement(R1,{title:"Hook details",onCancel:Y,inputGuide:UvY},Z),K[37]=Y,K[38]=Z,K[39]=T;else T=K[39];return T}function UvY(){return g9.createElement(k,null,"Esc to go back")}function QvY(q){switch(q.type){case"command":return"Command";case"prompt":return"Prompt";case"agent":return"Prompt";case"http":return"URL"}}function dvY(q){switch(q.type){case"command":return q.command;case"prompt":return q.prompt;case"agent":return q.prompt;case"http":return q.url}}var g9;var KxK=y(()=>{q8();s6();Uw6();e4();g9=O6(D6(),1)});function _xK(q){let K=z6(100),{toolNames:_,onExit:z}=q,Y;if(K[0]===Symbol.for("react.memo_cache_sentinel"))Y={mode:"select-event"},K[0]=Y;else Y=K[0];let[$,A]=VU8.useState(Y),[O,w]=VU8.useState(ovY),[j,H]=VU8.useState(rvY),J;if(K[1]===Symbol.for("react.memo_cache_sentinel"))J=(o)=>{if(o==="policySettings"){let a=Z7()?.disableAllHooks===!0;w(a&&v1("policySettings")?.disableAllHooks===!0),H(v1("policySettings")?.allowManagedHooksOnly===!0)}},K[1]=J;else J=K[1];Kv6(J);let M=$.mode,X="event"in $?$.event:"PreToolUse",P="matcher"in $?$.matcher:null,W=P8(ivY),D=jz(),f;if(K[2]!==W.tools||K[3]!==_)f=[..._,...W.tools.map(nvY)],K[2]=W.tools,K[3]=_,K[4]=f;else f=K[4];let G=f,Z;if(K[5]!==D||K[6]!==G)Z=cbK(D.getState(),G),K[5]=D,K[6]=G,K[7]=Z;else Z=K[7];let T=Z,v;if(K[8]!==T||K[9]!==X)v=lbK(T,X),K[8]=T,K[9]=X,K[10]=v;else v=K[10];let V=v,E;if(K[11]!==T||K[12]!==X||K[13]!==P)E=nbK(T,X,P),K[11]=T,K[12]=X,K[13]=P,K[14]=E;else E=K[14];let S=E,R;if(K[15]!==z)R=()=>{z("Hooks dialog dismissed",{display:"system"})},K[15]=z,K[16]=R;else R=K[16];let x=R,I=M==="select-event",B;if(K[17]!==I)B={context:"Confirmation",isActive:I},K[17]=I,K[18]=B;else B=K[18];P1("confirm:no",x,B);let p;if(K[19]===Symbol.for("react.memo_cache_sentinel"))p=()=>{A({mode:"select-event"})},K[19]=p;else p=K[19];let C=M==="select-matcher",g;if(K[20]!==C)g={context:"Confirmation",isActive:C},K[20]=C,K[21]=g;else g=K[21];P1("confirm:no",p,g);let F;if(K[22]!==G||K[23]!==$)F=()=>{if("event"in $)if(Wq8($.event,G)!==void 0)A({mode:"select-matcher",event:$.event});else A({mode:"select-event"})},K[22]=G,K[23]=$,K[24]=F;else F=K[24];let U=M==="select-hook",c;if(K[25]!==U)c={context:"Confirmation",isActive:U},K[25]=U,K[26]=c;else c=K[26];P1("confirm:no",F,c);let K6;if(K[27]!==$)K6=()=>{if($.mode==="view-hook"){let{event:o,hook:s}=$;A({mode:"select-hook",event:o,matcher:s.matcher||""})}},K[27]=$,K[28]=K6;else K6=K[28];let t=M==="view-hook",q6;if(K[29]!==t)q6={context:"Confirmation",isActive:t},K[29]=t,K[30]=q6;else q6=K[30];P1("confirm:no",K6,q6);let e;if(K[31]!==G)e=kU8(G),K[31]=G,K[32]=e;else e=K[32];let i=e,M6=Z7()?.disableAllHooks===!0,j6;if(K[33]!==T){let o={},s=0;for(let[a,n]of Object.entries(T)){let l=Object.values(n).reduce(lvY,0);o[a]=l,s=s+l}j6={hooksByEvent:o,totalHooksCount:s},K[33]=T,K[34]=j6}else j6=K[34];let{hooksByEvent:G6,totalHooksCount:w6}=j6;if(M6){let o;if(K[35]===Symbol.for("react.memo_cache_sentinel"))o=fY.createElement(k,{bold:!0},"disabled"),K[35]=o;else o=K[35];let s=O&&" by a managed settings file",a;if(K[36]!==w6)a=fY.createElement(k,{bold:!0},w6),K[36]=w6,K[37]=a;else a=K[37];let n;if(K[38]!==w6)n=A7(w6,"hook"),K[38]=w6,K[39]=n;else n=K[39];let l;if(K[40]!==w6)l=A7(w6,"is","are"),K[40]=w6,K[41]=l;else l=K[41];let A6;if(K[42]!==s||K[43]!==a||K[44]!==n||K[45]!==l)A6=fY.createElement(k,null,"All hooks are currently ",o,s,". You have"," ",a," configured"," ",n," that"," ",l," not running."),K[42]=s,K[43]=a,K[44]=n,K[45]=l,K[46]=A6;else A6=K[46];let J6,X6,f6,N6;if(K[47]===Symbol.for("react.memo_cache_sentinel"))J6=fY.createElement(u,{marginTop:1},fY.createElement(k,{dimColor:!0},"When hooks are disabled:")),X6=fY.createElement(k,{dimColor:!0},"· No hook commands will execute"),f6=fY.createElement(k,{dimColor:!0},"· StatusLine will not be displayed"),N6=fY.createElement(k,{dimColor:!0},"· Tool operations will proceed without hook validation"),K[47]=J6,K[48]=X6,K[49]=f6,K[50]=N6;else J6=K[47],X6=K[48],f6=K[49],N6=K[50];let Z6;if(K[51]!==A6)Z6=fY.createElement(u,{flexDirection:"column"},A6,J6,X6,f6,N6),K[51]=A6,K[52]=Z6;else Z6=K[52];let V6;if(K[53]!==O)V6=!O&&fY.createElement(k,{dimColor:!0},'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Claude.'),K[53]=O,K[54]=V6;else V6=K[54];let y6;if(K[55]!==Z6||K[56]!==V6)y6=fY.createElement(u,{flexDirection:"column",gap:1},Z6,V6),K[55]=Z6,K[56]=V6,K[57]=y6;else y6=K[57];let T6;if(K[58]!==x||K[59]!==y6)T6=fY.createElement(R1,{title:"Hook Configuration - Disabled",onCancel:x,inputGuide:cvY},y6),K[58]=x,K[59]=y6,K[60]=T6;else T6=K[60];return T6}switch($.mode){case"select-event":{let o;if(K[61]!==G)o=(a)=>{if(Wq8(a,G)!==void 0)A({mode:"select-matcher",event:a});else A({mode:"select-hook",event:a,matcher:""})},K[61]=G,K[62]=o;else o=K[62];let s;if(K[63]!==x||K[64]!==i||K[65]!==G6||K[66]!==j||K[67]!==o||K[68]!==w6)s=fY.createElement(rbK,{hookEventMetadata:i,hooksByEvent:G6,totalHooksCount:w6,restrictedByPolicy:j,onSelectEvent:o,onCancel:x}),K[63]=x,K[64]=i,K[65]=G6,K[66]=j,K[67]=o,K[68]=w6,K[69]=s;else s=K[69];return s}case"select-matcher":{let o=i[$.event],s;if(K[70]!==$.event)s=(l)=>{A({mode:"select-hook",event:$.event,matcher:l})},K[70]=$.event,K[71]=s;else s=K[71];let a;if(K[72]===Symbol.for("react.memo_cache_sentinel"))a=()=>{A({mode:"select-event"})},K[72]=a;else a=K[72];let n;if(K[73]!==T||K[74]!==$.event||K[75]!==V||K[76]!==o.description||K[77]!==s)n=fY.createElement(tbK,{selectedEvent:$.event,matchersForSelectedEvent:V,hooksByEventAndMatcher:T,eventDescription:o.description,onSelect:s,onCancel:a}),K[73]=T,K[74]=$.event,K[75]=V,K[76]=o.description,K[77]=s,K[78]=n;else n=K[78];return n}case"select-hook":{let o=i[$.event],s;if(K[79]!==$.event)s=(l)=>{A({mode:"view-hook",event:$.event,hook:l})},K[79]=$.event,K[80]=s;else s=K[80];let a;if(K[81]!==G||K[82]!==$.event)a=()=>{if(Wq8($.event,G)!==void 0)A({mode:"select-matcher",event:$.event});else A({mode:"select-event"})},K[81]=G,K[82]=$.event,K[83]=a;else a=K[83];let n;if(K[84]!==S||K[85]!==$.event||K[86]!==$.matcher||K[87]!==o||K[88]!==s||K[89]!==a)n=fY.createElement(abK,{selectedEvent:$.event,selectedMatcher:$.matcher,hooksForSelectedMatcher:S,hookEventMetadata:o,onSelect:s,onCancel:a}),K[84]=S,K[85]=$.event,K[86]=$.matcher,K[87]=o,K[88]=s,K[89]=a,K[90]=n;else n=K[90];return n}case"view-hook":{let o=$.hook,s;if(K[91]!==G||K[92]!==$.event)s=Wq8($.event,G),K[91]=G,K[92]=$.event,K[93]=s;else s=K[93];let a=s!==void 0,n;if(K[94]!==$)n=()=>{let{event:A6,hook:J6}=$;A({mode:"select-hook",event:A6,matcher:J6.matcher||""})},K[94]=$,K[95]=n;else n=K[95];let l;if(K[96]!==$.hook||K[97]!==a||K[98]!==n)l=fY.createElement(qxK,{selectedHook:o,eventSupportsMatcher:a,onCancel:n}),K[96]=$.hook,K[97]=a,K[98]=n,K[99]=l;else l=K[99];return l}}}function cvY(){return fY.createElement(k,null,"Esc to close")}function lvY(q,K){return q+K.length}function nvY(q){return q.name}function ivY(q){return q.mcp}function rvY(){return v1("policySettings")?.allowManagedHooksOnly===!0}function ovY(){return Z7()?.disableAllHooks===!0&&v1("policySettings")?.disableAllHooks===!0}var fY,VU8;var zxK=y(()=>{q8();C7();iZ8();s6();Oq();ibK();U1();e4();obK();sbK();ebK();KxK();fY=O6(D6(),1),VU8=O6(D6(),1)});var YxK={};T8(YxK,{call:()=>avY});var k37,avY=async(q,K)=>{d("tengu_hooks_command",{});let z=K.getAppState().toolPermissionContext,Y=gD(z).map(($)=>$.name);return k37.createElement(_xK,{toolNames:Y,onExit:q})};var $xK=y(()=>{zxK();k8();BD();k37=O6(D6(),1)});var svY,AxK;var OxK=y(()=>{svY={type:"local-jsx",name:"hooks",description:"View hook configurations for tool events",immediate:!0,load:()=>Promise.resolve().then(() => ($xK(),YxK))},AxK=svY});var wxK={};T8(wxK,{call:()=>evY});import{relative as tvY}from"path";async function evY(q,K){let _=K.readFileState?d76(K.readFileState):[];if(_.length===0)return{type:"text",value:"No files in context"};return{type:"text",value:`Files in context: |