({availableIDEs:q,unavailableIDEs:K,currentIDE:_,dynamicMcpConfig:z,onChangeDynamicMcpConfig:Y,onDone:$})
| 5476 | |
| 5477 | ${O}`,{display:"system"})}catch(Y){H6(Y),q(`Error opening memory file: ${Y}`)}},_=()=>{q("Cancelled memory editing",{display:"system"})};return qW.createElement(R1,{title:"Memory",onCancel:_,color:"remember"},qW.createElement(u,{flexDirection:"column"},qW.createElement(qW.Suspense,{fallback:null},qW.createElement(dkK,{onSelect:K,onCancel:_})),qW.createElement(u,{marginTop:1},qW.createElement(k,{dimColor:!0},"Learn more: ",qW.createElement(hq,{url:"https://code.claude.com/docs/en/memory"})))))}var qW,pHY=async(q)=>{return wN(),await yH(),qW.createElement(mHY,{onDone:q})};var skK=y(()=>{e4();ckK();nkK();s6();wM();m8();y8();E8();DR();qW=O6(D6(),1)});var BHY,tkK;var ekK=y(()=>{BHY={type:"local-jsx",name:"memory",description:"Edit Claude memory files",load:()=>Promise.resolve().then(() => (skK(),akK))},tkK=BHY});function W47(q){let K=z6(14),{commands:_,maxHeight:z,columns:Y,title:$,onCancel:A,emptyMessage:O}=q,{headerFocused:w,focusHeader:j}=$T(),H=Math.max(1,Y-10),J=Math.max(1,Math.floor((z-10)/2)),M;if(K[0]!==_||K[1]!==H){let W=new Set,D;if(K[3]!==H)D=(f)=>({label:`/${f.name}`,value:f.name,description:d5(UH6(f),H,!0)}),K[3]=H,K[4]=D;else D=K[4];M=_.filter((f)=>{if(W.has(f.name))return!1;return W.add(f.name),!0}).sort(gHY).map(D),K[0]=_,K[1]=H,K[2]=M}else M=K[2];let X=M,P;if(K[5]!==_.length||K[6]!==O||K[7]!==j||K[8]!==w||K[9]!==A||K[10]!==X||K[11]!==$||K[12]!==J)P=OT.createElement(u,{flexDirection:"column",paddingY:1},_.length===0&&O?OT.createElement(k,{dimColor:!0},O):OT.createElement(OT.Fragment,null,OT.createElement(k,null,$),OT.createElement(u,{marginTop:1},OT.createElement(H1,{options:X,visibleOptionCount:J,onCancel:A,disableSelection:!0,hideIndexes:!0,layout:"compact-vertical",onUpFromFirstItem:j,isDisabled:w})))),K[5]=_.length,K[6]=O,K[7]=j,K[8]=w,K[9]=A,K[10]=X,K[11]=$,K[12]=J,K[13]=P;else P=K[13];return P}function gHY(q,K){return q.name.localeCompare(K.name)}var OT;var qVK=y(()=>{q8();yA();s6();U7();p3();gb();OT=O6(D6(),1)});function ea(){return j8().editorMode==="vim"}function KVK(){if(a1.terminal==="Apple_Terminal"&&process.platform==="darwin")return"shift + ⏎ for newline";if(c77())return"shift + ⏎ for newline";return l77()?"\\⏎ for newline":"backslash (\\) + return (⏎) for newline"}function _VK(q,K){if(K.ctrl||K.meta||K.escape||K.return||K.tab||K.backspace||K.delete||K.upArrow||K.downArrow||K.leftArrow||K.rightArrow||K.pageUp||K.pageDown||K.home||K.end)return!1;return q.length>0&&!/^\s/.test(q)&&!q.startsWith("\x1B")}var Qh6=y(()=>{SH6();V1();y_()});function Dd(q){return q.replace(/\+/g," + ")}function ag8(q){let K=z6(99),{dimColor:_,fixedWidth:z,gap:Y,paddingX:$}=q,A=R5("app:toggleTranscript","Global","ctrl+o"),O;if(K[0]!==A)O=Dd(A),K[0]=A,K[1]=O;else O=K[1];let w=O,j=R5("app:toggleTodos","Global","ctrl+t"),H;if(K[2]!==j)H=Dd(j),K[2]=j,K[3]=H;else H=K[3];let J=H,M=R5("chat:undo","Chat","ctrl+_"),X;if(K[4]!==M)X=Dd(M),K[4]=M,K[5]=X;else X=K[5];let P=X,W=R5("chat:stash","Chat","ctrl+s"),D;if(K[6]!==W)D=Dd(W),K[6]=W,K[7]=D;else D=K[7];let f=D,G=R5("chat:cycleMode","Chat","shift+tab"),Z;if(K[8]!==G)Z=Dd(G),K[8]=G,K[9]=Z;else Z=K[9];let T=Z,v=R5("chat:modelPicker","Chat","alt+p"),V;if(K[10]!==v)V=Dd(v),K[10]=v,K[11]=V;else V=K[11];let E=V,S=R5("chat:fastMode","Chat","alt+o"),R;if(K[12]!==S)R=Dd(S),K[12]=S,K[13]=R;else R=K[13];let x=R,I=R5("chat:externalEditor","Chat","ctrl+g"),B;if(K[14]!==I)B=Dd(I),K[14]=I,K[15]=B;else B=K[15];let p=B,C=R5("app:toggleTerminal","Global","meta+j"),g;if(K[16]!==C)g=Dd(C),K[16]=C,K[17]=g;else g=K[17];let F=g,U=R5("chat:imagePaste","Chat","ctrl+v"),c;if(K[18]!==U)c=Dd(U),K[18]=U,K[19]=c;else c=K[19];let K6=c,t;if(K[20]!==_||K[21]!==F)t=null,K[20]=_,K[21]=F,K[22]=t;else t=K[22];let q6=t,e=z?24:void 0,i;if(K[23]!==_)i=iq.createElement(u,null,iq.createElement(k,{dimColor:_},"! for bash mode")),K[23]=_,K[24]=i;else i=K[24];let $6;if(K[25]!==_)$6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},"/ for commands")),K[25]=_,K[26]=$6;else $6=K[26];let M6;if(K[27]!==_)M6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},"@ for file paths")),K[27]=_,K[28]=M6;else M6=K[28];let j6;if(K[29]!==_)j6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},"& for background")),K[29]=_,K[30]=j6;else j6=K[30];let G6;if(K[31]!==_)G6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},"/btw for side question")),K[31]=_,K[32]=G6;else G6=K[32];let w6;if(K[33]!==e||K[34]!==i||K[35]!==$6||K[36]!==M6||K[37]!==j6||K[38]!==G6)w6=iq.createElement(u,{flexDirection:"column",width:e},i,$6,M6,j6,G6),K[33]=e,K[34]=i,K[35]=$6,K[36]=M6,K[37]=j6,K[38]=G6,K[39]=w6;else w6=K[39];let o=z?35:void 0,s;if(K[40]!==_)s=iq.createElement(u,null,iq.createElement(k,{dimColor:_},"double tap esc to clear input")),K[40]=_,K[41]=s;else s=K[41];let a;if(K[42]!==T||K[43]!==_)a=iq.createElement(u,null,iq.createElement(k,{dimColor:_},T," ","to auto-accept edits")),K[42]=T,K[43]=_,K[44]=a;else a=K[44];let n;if(K[45]!==_||K[46]!==w)n=iq.createElement(u,null,iq.createElement(k,{dimColor:_},w," for verbose output")),K[45]=_,K[46]=w,K[47]=n;else n=K[47];let l;if(K[48]!==_||K[49]!==J)l=iq.createElement(u,null,iq.createElement(k,{dimColor:_},J," to toggle tasks")),K[48]=_,K[49]=J,K[50]=l;else l=K[50];let A6;if(K[51]===Symbol.for("react.memo_cache_sentinel"))A6=KVK(),K[51]=A6;else A6=K[51];let J6;if(K[52]!==_)J6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},A6)),K[52]=_,K[53]=J6;else J6=K[53];let X6;if(K[54]!==o||K[55]!==s||K[56]!==a||K[57]!==n||K[58]!==l||K[59]!==J6||K[60]!==q6)X6=iq.createElement(u,{flexDirection:"column",width:o},s,a,n,l,q6,J6),K[54]=o,K[55]=s,K[56]=a,K[57]=n,K[58]=l,K[59]=J6,K[60]=q6,K[61]=X6;else X6=K[61];let f6;if(K[62]!==_||K[63]!==P)f6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},P," to undo")),K[62]=_,K[63]=P,K[64]=f6;else f6=K[64];let N6;if(K[65]!==_)N6=Z1()!=="windows"&&iq.createElement(u,null,iq.createElement(k,{dimColor:_},"ctrl + z to suspend")),K[65]=_,K[66]=N6;else N6=K[66];let Z6;if(K[67]!==_||K[68]!==K6)Z6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},K6," to paste images")),K[67]=_,K[68]=K6,K[69]=Z6;else Z6=K[69];let V6;if(K[70]!==_||K[71]!==E)V6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},E," to switch model")),K[70]=_,K[71]=E,K[72]=V6;else V6=K[72];let y6;if(K[73]!==_||K[74]!==x)y6=BK()&&oJ()&&iq.createElement(u,null,iq.createElement(k,{dimColor:_},x," to toggle fast mode")),K[73]=_,K[74]=x,K[75]=y6;else y6=K[75];let T6;if(K[76]!==_||K[77]!==f)T6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},f," to stash prompt")),K[76]=_,K[77]=f,K[78]=T6;else T6=K[78];let n6;if(K[79]!==_||K[80]!==p)n6=iq.createElement(u,null,iq.createElement(k,{dimColor:_},p," to edit in $EDITOR")),K[79]=_,K[80]=p,K[81]=n6;else n6=K[81];let o6;if(K[82]!==_)o6=IL()&&iq.createElement(u,null,iq.createElement(k,{dimColor:_},"/keybindings to customize")),K[82]=_,K[83]=o6;else o6=K[83];let I6;if(K[84]!==f6||K[85]!==N6||K[86]!==Z6||K[87]!==V6||K[88]!==y6||K[89]!==T6||K[90]!==n6||K[91]!==o6)I6=iq.createElement(u,{flexDirection:"column"},f6,N6,Z6,V6,y6,T6,n6,o6),K[84]=f6,K[85]=N6,K[86]=Z6,K[87]=V6,K[88]=y6,K[89]=T6,K[90]=n6,K[91]=o6,K[92]=I6;else I6=K[92];let C6;if(K[93]!==Y||K[94]!==$||K[95]!==w6||K[96]!==X6||K[97]!==I6)C6=iq.createElement(u,{paddingX:$,flexDirection:"row",gap:Y},w6,X6,I6),K[93]=Y,K[94]=$,K[95]=w6,K[96]=X6,K[97]=I6,K[98]=C6;else C6=K[98];return C6}var iq;var D47=y(()=>{q8();s6();vK();Ur();LX();o1();xf();Qh6();iq=O6(D6(),1)});function zVK(){let q=z6(2),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=Ok.createElement(u,null,Ok.createElement(k,null,"Claude understands your codebase, makes edits with your permission, and executes commands — right from your terminal.")),q[0]=K;else K=q[0];let _;if(q[1]===Symbol.for("react.memo_cache_sentinel"))_=Ok.createElement(u,{flexDirection:"column",paddingY:1,gap:1},K,Ok.createElement(u,{flexDirection:"column"},Ok.createElement(u,null,Ok.createElement(k,{bold:!0},"Shortcuts")),Ok.createElement(ag8,{gap:2,fixedWidth:!0}))),q[1]=_;else _=q[1];return _}var Ok;var YVK=y(()=>{q8();s6();D47();Ok=O6(D6(),1)});function $VK(q){let K=z6(44),{onClose:_,commands:z}=q,{rows:Y,columns:$}=t1(),A=Math.floor(Y/2),O=RN(),w;if(K[0]!==_)w=()=>_("Help dialog dismissed",{display:"system"}),K[0]=_,K[1]=w;else w=K[1];let j=w,H;if(K[2]===Symbol.for("react.memo_cache_sentinel"))H={context:"Help"},K[2]=H;else H=K[2];P1("help:dismiss",j,H);let J=o5(j),M=R5("help:dismiss","Help","esc"),X,P,W;if(K[3]!==z){let R=RQ();P=z.filter((I)=>R.has(I.name)&&!I.isHidden);let x;if(K[7]===Symbol.for("react.memo_cache_sentinel"))x=[],K[7]=x;else x=K[7];X=x,W=z.filter((I)=>!R.has(I.name)&&!I.isHidden),K[3]=z,K[4]=X,K[5]=P,K[6]=W}else X=K[4],P=K[5],W=K[6];let D=W,f;if(K[8]===Symbol.for("react.memo_cache_sentinel"))f=ez.createElement(cO,{key:"general",title:"general"},ez.createElement(zVK,null)),K[8]=f;else f=K[8];let G;if(K[9]!==X||K[10]!==P||K[11]!==j||K[12]!==$||K[13]!==D||K[14]!==A){G=[f];let R;if(K[16]!==P||K[17]!==j||K[18]!==$||K[19]!==A)R=ez.createElement(cO,{key:"commands",title:"commands"},ez.createElement(W47,{commands:P,maxHeight:A,columns:$,title:"Browse default commands:",onCancel:j})),K[16]=P,K[17]=j,K[18]=$,K[19]=A,K[20]=R;else R=K[20];G.push(R);let x;if(K[21]!==j||K[22]!==$||K[23]!==D||K[24]!==A)x=ez.createElement(cO,{key:"custom",title:"custom-commands"},ez.createElement(W47,{commands:D,maxHeight:A,columns:$,title:"Browse custom commands:",emptyMessage:"No custom commands found",onCancel:j})),K[21]=j,K[22]=$,K[23]=D,K[24]=A,K[25]=x;else x=K[25];G.push(x),K[9]=X,K[10]=P,K[11]=j,K[12]=$,K[13]=D,K[14]=A,K[15]=G}else G=K[15];let Z=O?void 0:A,T;if(K[31]!==G)T=ez.createElement(Bb,{title:`Claude Code v${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION}`,color:"professionalBlue",defaultTab:"general"},G),K[31]=G,K[32]=T;else T=K[32];let v;if(K[33]===Symbol.for("react.memo_cache_sentinel"))v=ez.createElement(u,{marginTop:1},ez.createElement(k,null,"For more help:"," ",ez.createElement(hq,{url:"https://code.claude.com/docs/en/overview"}))),K[33]=v;else v=K[33];let V;if(K[34]!==M||K[35]!==J.keyName||K[36]!==J.pending)V=ez.createElement(u,{marginTop:1},ez.createElement(k,{dimColor:!0},J.pending?ez.createElement(ez.Fragment,null,"Press ",J.keyName," again to exit"):ez.createElement(k,{italic:!0},M," to cancel"))),K[34]=M,K[35]=J.keyName,K[36]=J.pending,K[37]=V;else V=K[37];let E;if(K[38]!==T||K[39]!==V)E=ez.createElement(Q_,{color:"professionalBlue"},T,v,V),K[38]=T,K[39]=V,K[40]=E;else E=K[40];let S;if(K[41]!==Z||K[42]!==E)S=ez.createElement(u,{flexDirection:"column",height:Z},E),K[41]=Z,K[42]=E,K[43]=S;else S=K[43];return S}var ez;var AVK=y(()=>{q8();z2();LX();yA();CU();t4();s6();Oq();pP();gb();qVK();YVK();ez=O6(D6(),1)});var OVK={};T8(OVK,{call:()=>FHY});var f47,FHY=async(q,{options:{commands:K}})=>{return f47.createElement($VK,{commands:K,onClose:q})};var wVK=y(()=>{AVK();f47=O6(D6(),1)});var UHY,Z47;var jVK=y(()=>{UHY={type:"local-jsx",name:"help",description:"Show help and available commands",load:()=>Promise.resolve().then(() => (wVK(),OVK))},Z47=UHY});function HVK(q){let K=z6(9),{onComplete:_}=q,z;if(K[0]!==_)z=async(H)=>{let J=H==="yes";b8((M)=>({...M,autoConnectIde:J,hasIdeAutoConnectDialogBeenShown:!0})),_()},K[0]=_,K[1]=z;else z=K[1];let Y=z,$;if(K[2]===Symbol.for("react.memo_cache_sentinel"))$=[{label:"Yes",value:"yes"},{label:"No",value:"no"}],K[2]=$;else $=K[2];let A=$,O;if(K[3]!==Y)O=dh6.default.createElement(H1,{options:A,onChange:Y,defaultValue:"yes"}),K[3]=Y,K[4]=O;else O=K[4];let w;if(K[5]===Symbol.for("react.memo_cache_sentinel"))w=dh6.default.createElement(k,{dimColor:!0},"You can also configure this in /config or with the --ide flag"),K[5]=w;else w=K[5];let j;if(K[6]!==_||K[7]!==O)j=dh6.default.createElement(R1,{title:"Do you wish to enable auto-connect to IDE?",color:"ide",onCancel:_},O,w),K[6]=_,K[7]=O,K[8]=j;else j=K[8];return j}function JVK(){let q=j8();return!BP()&&q.autoConnectIde!==!0&&q.hasIdeAutoConnectDialogBeenShown!==!0}function MVK(q){let K=z6(10),{onComplete:_}=q,z;if(K[0]!==_)z=(J)=>{let M=J==="yes";if(M)b8(QHY);_(M)},K[0]=_,K[1]=z;else z=K[1];let Y=z,$;if(K[2]!==_)$=()=>{_(!1)},K[2]=_,K[3]=$;else $=K[3];let A=$,O;if(K[4]===Symbol.for("react.memo_cache_sentinel"))O=[{label:"No",value:"no"},{label:"Yes",value:"yes"}],K[4]=O;else O=K[4];let w=O,j;if(K[5]!==Y)j=dh6.default.createElement(H1,{options:w,onChange:Y,defaultValue:"no"}),K[5]=Y,K[6]=j;else j=K[6];let H;if(K[7]!==A||K[8]!==j)H=dh6.default.createElement(R1,{title:"Do you wish to disable auto-connect to IDE?",subtitle:"You can also configure this in /config",onCancel:A,color:"ide"},j),K[7]=A,K[8]=j,K[9]=H;else H=K[9];return H}function QHY(q){return{...q,autoConnectIde:!1}}function XVK(){let q=j8();return!BP()&&q.autoConnectIde===!0}var dh6;var PVK=y(()=>{q8();s6();V1();U2();d_();e4();dh6=O6(D6(),1)});var DVK={};T8(DVK,{formatWorkspaceFolders:()=>G47,call:()=>eHY});import*as WVK from"path";function dHY(q){let K=z6(39),{availableIDEs:_,unavailableIDEs:z,selectedIDE:Y,onClose:$,onSelect:A}=q,O;if(K[0]!==Y?.port)O=Y?.port?.toString()??"None",K[0]=Y?.port,K[1]=O;else O=K[1];let[w,j]=Z_.useState(O),[H,J]=Z_.useState(!1),[M,X]=Z_.useState(!1),P;if(K[2]!==_||K[3]!==A)P=(I)=>{if(I!=="None"&&JVK())J(!0);else if(I==="None"&&XVK())X(!0);else A(_.find((B)=>B.port===parseInt(I)))},K[2]=_,K[3]=A,K[4]=P;else P=K[4];let W=P,D;if(K[5]!==_)D=_.reduce(nHY,{}),K[5]=_,K[6]=D;else D=K[6];let f=D,G;if(K[7]!==_||K[8]!==f){let I;if(K[10]!==f)I=(B)=>{let C=(f[B.name]||0)>1&&B.workspaceFolders.length>0;return{label:B.name,value:B.port.toString(),description:C?G47(B.workspaceFolders):void 0}},K[10]=f,K[11]=I;else I=K[11];G=_.map(I).concat([{label:"None",value:"None",description:void 0}]),K[7]=_,K[8]=f,K[9]=G}else G=K[9];let Z=G;if(H){let I;if(K[12]!==W||K[13]!==w)I=Z_.default.createElement(HVK,{onComplete:()=>W(w)}),K[12]=W,K[13]=w,K[14]=I;else I=K[14];return I}if(M){let I;if(K[15]!==A)I=Z_.default.createElement(MVK,{onComplete:()=>{A(void 0)}}),K[15]=A,K[16]=I;else I=K[16];return I}let T;if(K[17]!==_.length)T=_.length===0&&Z_.default.createElement(k,{dimColor:!0},VN6()?`No available IDEs detected. Please install the plugin and restart your IDE: |
| 5478 | https://docs.claude.com/s/claude-code-jetbrains`:"No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running."),K[17]=_.length,K[18]=T;else T=K[18];let v;if(K[19]!==_.length||K[20]!==W||K[21]!==Z||K[22]!==w)v=_.length!==0&&Z_.default.createElement(H1,{defaultValue:w,defaultFocusValue:w,options:Z,onChange:(I)=>{j(I),W(I)}}),K[19]=_.length,K[20]=W,K[21]=Z,K[22]=w,K[23]=v;else v=K[23];let V;if(K[24]!==_)V=_.length!==0&&_.some(lHY)&&Z_.default.createElement(u,{marginTop:1},Z_.default.createElement(k,{color:"warning"},"Note: Only one Claude Code instance can be connected to VS Code at a time.")),K[24]=_,K[25]=V;else V=K[25];let E;if(K[26]!==_.length)E=_.length!==0&&!BP()&&Z_.default.createElement(u,{marginTop:1},Z_.default.createElement(k,{dimColor:!0},"Tip: You can enable auto-connect to IDE in /config or with the --ide flag")),K[26]=_.length,K[27]=E;else E=K[27];let S;if(K[28]!==z)S=z.length>0&&Z_.default.createElement(u,{marginTop:1,flexDirection:"column"},Z_.default.createElement(k,{dimColor:!0},"Found ",z.length," other running IDE(s). However, their workspace/project directories do not match the current cwd."),Z_.default.createElement(u,{marginTop:1,flexDirection:"column"},z.map(cHY))),K[28]=z,K[29]=S;else S=K[29];let R;if(K[30]!==T||K[31]!==v||K[32]!==V||K[33]!==E||K[34]!==S)R=Z_.default.createElement(u,{flexDirection:"column"},T,v,V,E,S),K[30]=T,K[31]=v,K[32]=V,K[33]=E,K[34]=S,K[35]=R;else R=K[35];let x;if(K[36]!==$||K[37]!==R)x=Z_.default.createElement(R1,{title:"Select IDE",subtitle:"Connect to an IDE for integrated development features.",onCancel:$,color:"ide"},R),K[36]=$,K[37]=R,K[38]=x;else x=K[38];return x}function cHY(q,K){return Z_.default.createElement(u,{key:K,paddingLeft:3},Z_.default.createElement(k,{dimColor:!0},"• ",q.name,": ",G47(q.workspaceFolders)))}function lHY(q){return q.name==="VS Code"||q.name==="Visual Studio Code"}function nHY(q,K){return q[K.name]=(q[K.name]||0)+1,q}async function iHY(q,K){let _=K?.ide;if(!_||_.type!=="sse-ide"&&_.type!=="ws-ide")return null;for(let z of q)if(z.url===_.url)return z;return null}function rHY(q){let K=z6(18),{availableIDEs:_,onSelectIDE:z,onDone:Y}=q,$;if(K[0]!==_[0]?.port)$=_[0]?.port?.toString()??"",K[0]=_[0]?.port,K[1]=$;else $=K[1];let[A,O]=Z_.useState($),w;if(K[2]!==_||K[3]!==z)w=(f)=>{let G=_.find((Z)=>Z.port===parseInt(f));z(G)},K[2]=_,K[3]=z,K[4]=w;else w=K[4];let j=w,H;if(K[5]!==_)H=_.map(oHY),K[5]=_,K[6]=H;else H=K[6];let J=H,M;if(K[7]!==Y)M=function(){Y("IDE selection cancelled",{display:"system"})},K[7]=Y,K[8]=M;else M=K[8];let X=M,P;if(K[9]!==j)P=(f)=>{O(f),j(f)},K[9]=j,K[10]=P;else P=K[10];let W;if(K[11]!==J||K[12]!==A||K[13]!==P)W=Z_.default.createElement(H1,{defaultValue:A,defaultFocusValue:A,options:J,onChange:P}),K[11]=J,K[12]=A,K[13]=P,K[14]=W;else W=K[14];let D;if(K[15]!==X||K[16]!==W)D=Z_.default.createElement(R1,{title:"Select an IDE to open the project",onCancel:X,color:"ide"},W),K[15]=X,K[16]=W,K[17]=D;else D=K[17];return D}function oHY(q){return{label:q.name,value:q.port.toString()}}function aHY(q){let K=z6(15),{runningIDEs:_,onSelectIDE:z,onDone:Y}=q,[$,A]=Z_.useState(_[0]??""),O;if(K[0]!==z)O=(D)=>{z(D)},K[0]=z,K[1]=O;else O=K[1];let w=O,j;if(K[2]!==_)j=_.map(sHY),K[2]=_,K[3]=j;else j=K[3];let H=j,J;if(K[4]!==Y)J=function(){Y("IDE selection cancelled",{display:"system"})},K[4]=Y,K[5]=J;else J=K[5];let M=J,X;if(K[6]!==w)X=(D)=>{A(D),w(D)},K[6]=w,K[7]=X;else X=K[7];let P;if(K[8]!==H||K[9]!==$||K[10]!==X)P=Z_.default.createElement(H1,{defaultFocusValue:$,options:H,onChange:X}),K[8]=H,K[9]=$,K[10]=X,K[11]=P;else P=K[11];let W;if(K[12]!==M||K[13]!==P)W=Z_.default.createElement(R1,{title:"Select IDE to install extension",onCancel:M,color:"ide"},P),K[12]=M,K[13]=P,K[14]=W;else W=K[14];return W}function sHY(q){return{label:pj(q),value:q}}function tHY(q){let K=z6(4),{ide:_,onInstall:z}=q,Y,$;if(K[0]!==_||K[1]!==z)Y=()=>{z(_)},$=[_,z],K[0]=_,K[1]=z,K[2]=Y,K[3]=$;else Y=K[2],$=K[3];return Z_.useEffect(Y,$),null}async function eHY(q,K,_){d("tengu_ext_ide_command",{});let{options:{dynamicMcpConfig:z},onChangeDynamicMcpConfig:Y}=K;if(_?.trim()==="open"){let j=n2(),H=j?j.worktreePath:Z8(),M=(await NN6(!0)).filter((X)=>X.isValid);if(M.length===0)return q("No IDEs with Claude Code extension detected."),null;return Z_.default.createElement(rHY,{availableIDEs:M,onSelectIDE:async(X)=>{if(!X){q("No IDE selected.");return}if(X.name.toLowerCase().includes("vscode")||X.name.toLowerCase().includes("cursor")||X.name.toLowerCase().includes("windsurf")){let{code:P}=await a8("code",[H]);if(P===0)q(`Opened ${j?"worktree":"project"} in ${$8.bold(X.name)}`);else q(`Failed to open in ${X.name}. Try opening manually: ${H}`)}else if(VN6())q(`Please open the ${j?"worktree":"project"} manually in ${$8.bold(X.name)}: ${H}`);else q(`Please open the ${j?"worktree":"project"} manually in ${$8.bold(X.name)}: ${H}`)},onDone:()=>{q("Exited without opening IDE",{display:"system"})}})}let $=await NN6(!0);if($.length===0&&K.onInstallIDEExtension&&!BP()){let j=await $g1(),H=(J)=>{if(K.onInstallIDEExtension)if(K.onInstallIDEExtension(J),_m(J))q(`Installed plugin to ${$8.bold(pj(J))} |
| 5479 | Please ${$8.bold("restart your IDE")} completely for it to take effect`);else q(`Installed extension to ${$8.bold(pj(J))}`)};if(j.length>1)return Z_.default.createElement(aHY,{runningIDEs:j,onSelectIDE:H,onDone:()=>{q("No IDE selected.",{display:"system"})}});else if(j.length===1)return Z_.default.createElement(tHY,{ide:j[0],onInstall:H})}let A=$.filter((j)=>j.isValid),O=$.filter((j)=>!j.isValid),w=await iHY(A,z);return Z_.default.createElement(KJY,{availableIDEs:A,unavailableIDEs:O,currentIDE:w,dynamicMcpConfig:z,onChangeDynamicMcpConfig:Y,onDone:q})}function KJY({availableIDEs:q,unavailableIDEs:K,currentIDE:_,dynamicMcpConfig:z,onChangeDynamicMcpConfig:Y,onDone:$}){let[A,O]=Z_.useState(null),w=P8((M)=>M.mcp.clients.find((X)=>X.name==="ide")),j=s7(),H=Z_.useRef(!0);Z_.useEffect(()=>{if(!A)return;if(H.current){H.current=!1;return}if(!w||w.type==="pending")return;if(w.type==="connected")$(`Connected to ${A.name}.`);else if(w.type==="failed")$(`Failed to connect to ${A.name}.`)},[w,A,$]),Z_.useEffect(()=>{if(!A)return;let M=setTimeout($,qJY,`Connection to ${A.name} timed out.`);return()=>clearTimeout(M)},[A,$]);let J=Z_.useCallback((M)=>{if(!Y){$("Error connecting to IDE.");return}let X={...z||{}};if(_)delete X.ide;if(!M){if(w&&w.type==="connected"&&_)w.client.onclose=()=>{},pG("ide",w.config),j((W)=>({...W,mcp:{...W.mcp,clients:W.mcp.clients.filter((D)=>D.name!=="ide"),tools:W.mcp.tools.filter((D)=>!D.name?.startsWith("mcp__ide__")),commands:W.mcp.commands.filter((D)=>!D.name?.startsWith("mcp__ide__"))}}));Y(X),$(_?`Disconnected from ${_.name}.`:"No IDE selected.");return}let P=M.url;X.ide={type:P.startsWith("ws:")?"ws-ide":"sse-ide",url:P,ideName:M.name,authToken:M.authToken,ideRunningInWindows:M.ideRunningInWindows,scope:"dynamic"},H.current=!0,O(M),Y(X)},[z,_,w,j,Y,$]);if(A)return Z_.default.createElement(k,{dimColor:!0},"Connecting to ",A.name,"…");return Z_.default.createElement(dHY,{availableIDEs:q,unavailableIDEs:K,selectedIDE:_,onClose:()=>$("IDE selection cancelled",{display:"system"}),onSelect:J})}function G47(q,K=100){if(q.length===0)return"";let _=Z8(),z=q.slice(0,2),Y=q.length>2,$=Y?3:0,A=(z.length-1)*2,O=K-A-$,w=Math.floor(O/z.length),j=_.normalize("NFC"),J=z.map((M)=>{let X=M.normalize("NFC");if(X.startsWith(j+WVK.sep))M=X.slice(j.length+1);if(M.length<=w)return M;return"…"+M.slice(-(w-1))}).join(", ");if(Y)J+=", …";return J}var Z_,qJY=35000;var fVK=y(()=>{q8();x3();k8();d_();e4();PVK();s6();PD();C7();I7();XK();U2();d0();Z_=O6(D6(),1)});var _JY,ZVK;var GVK=y(()=>{_JY={type:"local-jsx",name:"ide",description:"Manage IDE integrations and show status",argumentHint:"[open]",load:()=>Promise.resolve().then(() => (fVK(),DVK))},ZVK=_JY});var YJY=`Please analyze this codebase and create a CLAUDE.md file, which will be given to future instances of Claude Code to operate in this repository. |
| 5480 | |
| 5481 | What to add: |
nothing calls this directly
no test coverage detected