@anthropic-ai/claude-code 1.0.46 → 1.0.47

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/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // (c) Anthropic PBC. All rights reserved. Use is subject to Anthropic's Commercial Terms of Service (https://www.anthropic.com/legal/commercial-terms).
4
4
 
5
- // Version: 1.0.46
5
+ // Version: 1.0.47
6
6
 
7
7
  import{createRequire as wm2}from"node:module";var Em2=Object.create;var{getPrototypeOf:Hm2,defineProperty:Eq1,getOwnPropertyNames:zm2}=Object;var Um2=Object.prototype.hasOwnProperty;var G1=(A,B,Q)=>{Q=A!=null?Em2(Hm2(A)):{};let D=B||!A||!A.__esModule?Eq1(Q,"default",{value:A,enumerable:!0}):Q;for(let I of zm2(A))if(!Um2.call(D,I))Eq1(D,I,{get:()=>A[I],enumerable:!0});return D};var H=(A,B)=>()=>(B||A((B={exports:{}}).exports,B),B.exports);var Ox=(A,B)=>{for(var Q in B)Eq1(A,Q,{get:B[Q],enumerable:!0,configurable:!0,set:(D)=>B[Q]=()=>D})};var TB1=(A,B)=>()=>(A&&(B=A(A=0)),B);var W1=wm2(import.meta.url);var m8A=H((Sa6,u8A)=>{u8A.exports=function A(B){return B.map(function(Q){if(Q==="")return"''";if(Q&&typeof Q==="object")return Q.op.replace(/(.)/g,"\\$1");if(/["\s\\]/.test(Q)&&!/'/.test(Q))return"'"+Q.replace(/(['])/g,"\\$1")+"'";if(/["'\s]/.test(Q))return'"'+Q.replace(/(["\\$`!])/g,"\\$1")+'"';return String(Q).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}});var a8A=H((_a6,n8A)=>{var i8A="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",d8A=new RegExp("^"+i8A+"$"),c8A="|&;()<> \\t",ca2='"((\\\\"|[^"])*?)"',pa2="'((\\\\'|[^'])*?)'",la2=/^#$/,p8A="'",l8A='"',xq1="$",ZS="",ia2=4294967296;for(U91=0;U91<4;U91++)ZS+=(ia2*Math.random()).toString(16);var U91,na2=new RegExp("^"+ZS);function aa2(A,B){var Q=B.lastIndex,D=[],I;while(I=B.exec(A))if(D.push(I),B.lastIndex===I.index)B.lastIndex+=1;return B.lastIndex=Q,D}function ra2(A,B,Q){var D=typeof A==="function"?A(Q):A[Q];if(typeof D==="undefined"&&Q!="")D="";else if(typeof D==="undefined")D="$";if(typeof D==="object")return B+ZS+JSON.stringify(D)+ZS;return B+D}function sa2(A,B,Q){if(!Q)Q={};var D=Q.escape||"\\",I="(\\"+D+`['"`+c8A+`]|[^\\s'"`+c8A+"])+",Z=new RegExp(["("+i8A+")","("+I+"|"+ca2+"|"+pa2+")+"].join("|"),"g"),G=aa2(A,Z);if(G.length===0)return[];if(!B)B={};var F=!1;return G.map(function(Y){var W=Y[0];if(!W||F)return;if(d8A.test(W))return{op:W};var J=!1,C=!1,X="",V=!1,K;function E(){K+=1;var R,M,T=W.charAt(K);if(T==="{"){if(K+=1,W.charAt(K)==="}")throw new Error("Bad substitution: "+W.slice(K-2,K+1));if(R=W.indexOf("}",K),R<0)throw new Error("Bad substitution: "+W.slice(K));M=W.slice(K,R),K=R}else if(/[*@#?$!_-]/.test(T))M=T,K+=1;else{var L=W.slice(K);if(R=L.match(/[^\w\d_]/),!R)M=L,K=W.length;else M=L.slice(0,R.index),K+=R.index-1}return ra2(B,"",M)}for(K=0;K<W.length;K++){var U=W.charAt(K);if(V=V||!J&&(U==="*"||U==="?"),C)X+=U,C=!1;else if(J)if(U===J)J=!1;else if(J==p8A)X+=U;else if(U===D)if(K+=1,U=W.charAt(K),U===l8A||U===D||U===xq1)X+=U;else X+=D+U;else if(U===xq1)X+=E();else X+=U;else if(U===l8A||U===p8A)J=U;else if(d8A.test(U))return{op:W};else if(la2.test(U)){F=!0;var q={comment:A.slice(Y.index+K+1)};if(X.length)return[X,q];return[q]}else if(U===D)C=!0;else if(U===xq1)X+=E();else X+=U}if(V)return{op:"glob",pattern:X};return X}).reduce(function(Y,W){return typeof W==="undefined"?Y:Y.concat(W)},[])}n8A.exports=function A(B,Q,D){var I=sa2(B,Q,D);if(typeof Q!=="function")return I;return I.reduce(function(Z,G){if(typeof G==="object")return Z.concat(G);var F=G.split(RegExp("("+ZS+".*?"+ZS+")","g"));if(F.length===1)return Z.concat(F[0]);return Z.concat(F.filter(Boolean).map(function(Y){if(na2.test(Y))return JSON.parse(Y.split(ZS)[1]);return Y}))},[])}});var Tl=H((oa2)=>{oa2.quote=m8A();oa2.parse=a8A()});var qC=H((t8A)=>{Object.defineProperty(t8A,"__esModule",{value:!0});var r8A=Object.prototype.toString;function Ar2(A){switch(r8A.call(A)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return w91(A,Error)}}function ox(A,B){return r8A.call(A)===`[object ${B}]`}function Br2(A){return ox(A,"ErrorEvent")}function Qr2(A){return ox(A,"DOMError")}function Dr2(A){return ox(A,"DOMException")}function Ir2(A){return ox(A,"String")}function s8A(A){return typeof A==="object"&&A!==null&&"__sentry_template_string__"in A&&"__sentry_template_values__"in A}function Zr2(A){return A===null||s8A(A)||typeof A!=="object"&&typeof A!=="function"}function o8A(A){return ox(A,"Object")}function Gr2(A){return typeof Event!=="undefined"&&w91(A,Event)}function Fr2(A){return typeof Element!=="undefined"&&w91(A,Element)}function Yr2(A){return ox(A,"RegExp")}function Wr2(A){return Boolean(A&&A.then&&typeof A.then==="function")}function Jr2(A){return o8A(A)&&"nativeEvent"in A&&"preventDefault"in A&&"stopPropagation"in A}function Cr2(A){return typeof A==="number"&&A!==A}function w91(A,B){try{return A instanceof B}catch(Q){return!1}}function Xr2(A){return!!(typeof A==="object"&&A!==null&&(A.__isVue||A._isVue))}t8A.isDOMError=Qr2;t8A.isDOMException=Dr2;t8A.isElement=Fr2;t8A.isError=Ar2;t8A.isErrorEvent=Br2;t8A.isEvent=Gr2;t8A.isInstanceOf=w91;t8A.isNaN=Cr2;t8A.isParameterizedString=s8A;t8A.isPlainObject=o8A;t8A.isPrimitive=Zr2;t8A.isRegExp=Yr2;t8A.isString=Ir2;t8A.isSyntheticEvent=Jr2;t8A.isThenable=Wr2;t8A.isVueViewModel=Xr2});var Pl=H((A5A)=>{Object.defineProperty(A5A,"__esModule",{value:!0});var N91=qC();function Sr2(A,B=0){if(typeof A!=="string"||B===0)return A;return A.length<=B?A:`${A.slice(0,B)}...`}function _r2(A,B){let Q=A,D=Q.length;if(D<=150)return Q;if(B>D)B=D;let I=Math.max(B-60,0);if(I<5)I=0;let Z=Math.min(I+140,D);if(Z>D-5)Z=D;if(Z===D)I=Math.max(Z-140,0);if(Q=Q.slice(I,Z),I>0)Q=`'{snip} ${Q}`;if(Z<D)Q+=" {snip}";return Q}function jr2(A,B){if(!Array.isArray(A))return"";let Q=[];for(let D=0;D<A.length;D++){let I=A[D];try{if(N91.isVueViewModel(I))Q.push("[VueViewModel]");else Q.push(String(I))}catch(Z){Q.push("[value cannot be serialized]")}}return Q.join(B)}function e8A(A,B,Q=!1){if(!N91.isString(A))return!1;if(N91.isRegExp(B))return B.test(A);if(N91.isString(B))return Q?A===B:A.includes(B);return!1}function yr2(A,B=[],Q=!1){return B.some((D)=>e8A(A,D,Q))}A5A.isMatchingPattern=e8A;A5A.safeJoin=jr2;A5A.snipLine=_r2;A5A.stringMatchesSomePattern=yr2;A5A.truncate=Sr2});var I5A=H((D5A)=>{Object.defineProperty(D5A,"__esModule",{value:!0});var fq1=qC(),gr2=Pl();function hr2(A,B,Q=250,D,I,Z,G){if(!Z.exception||!Z.exception.values||!G||!fq1.isInstanceOf(G.originalException,Error))return;let F=Z.exception.values.length>0?Z.exception.values[Z.exception.values.length-1]:void 0;if(F)Z.exception.values=ur2(vq1(A,B,I,G.originalException,D,Z.exception.values,F,0),Q)}function vq1(A,B,Q,D,I,Z,G,F){if(Z.length>=Q+1)return Z;let Y=[...Z];if(fq1.isInstanceOf(D[I],Error)){B5A(G,F);let W=A(B,D[I]),J=Y.length;Q5A(W,I,J,F),Y=vq1(A,B,Q,D[I],I,[W,...Y],W,J)}if(Array.isArray(D.errors))D.errors.forEach((W,J)=>{if(fq1.isInstanceOf(W,Error)){B5A(G,F);let C=A(B,W),X=Y.length;Q5A(C,`errors[${J}]`,X,F),Y=vq1(A,B,Q,W,I,[C,...Y],C,X)}});return Y}function B5A(A,B){A.mechanism=A.mechanism||{type:"generic",handled:!0},A.mechanism={...A.mechanism,...A.type==="AggregateError"&&{is_exception_group:!0},exception_id:B}}function Q5A(A,B,Q,D){A.mechanism=A.mechanism||{type:"generic",handled:!0},A.mechanism={...A.mechanism,type:"chained",source:B,exception_id:Q,parent_id:D}}function ur2(A,B){return A.map((Q)=>{if(Q.value)Q.value=gr2.truncate(Q.value,B);return Q})}D5A.applyAggregateErrorsToEvent=hr2});var iZ=H((Z5A)=>{Object.defineProperty(Z5A,"__esModule",{value:!0});function q91(A){return A&&A.Math==Math?A:void 0}var bq1=typeof globalThis=="object"&&q91(globalThis)||typeof window=="object"&&q91(window)||typeof self=="object"&&q91(self)||typeof global=="object"&&q91(global)||function(){return this}()||{};function dr2(){return bq1}function cr2(A,B,Q){let D=Q||bq1,I=D.__SENTRY__=D.__SENTRY__||{};return I[A]||(I[A]=B())}Z5A.GLOBAL_OBJ=bq1;Z5A.getGlobalObject=dr2;Z5A.getGlobalSingleton=cr2});var gq1=H((G5A)=>{Object.defineProperty(G5A,"__esModule",{value:!0});var nr2=qC(),ar2=iZ(),tx=ar2.getGlobalObject(),rr2=80;function sr2(A,B={}){if(!A)return"<unknown>";try{let Q=A,D=5,I=[],Z=0,G=0,F=" > ",Y=F.length,W,J=Array.isArray(B)?B:B.keyAttrs,C=!Array.isArray(B)&&B.maxStringLength||rr2;while(Q&&Z++<D){if(W=or2(Q,J),W==="html"||Z>1&&G+I.length*Y+W.length>=C)break;I.push(W),G+=W.length,Q=Q.parentNode}return I.reverse().join(F)}catch(Q){return"<unknown>"}}function or2(A,B){let Q=A,D=[],I,Z,G,F,Y;if(!Q||!Q.tagName)return"";if(tx.HTMLElement){if(Q instanceof HTMLElement&&Q.dataset&&Q.dataset.sentryComponent)return Q.dataset.sentryComponent}D.push(Q.tagName.toLowerCase());let W=B&&B.length?B.filter((C)=>Q.getAttribute(C)).map((C)=>[C,Q.getAttribute(C)]):null;if(W&&W.length)W.forEach((C)=>{D.push(`[${C[0]}="${C[1]}"]`)});else{if(Q.id)D.push(`#${Q.id}`);if(I=Q.className,I&&nr2.isString(I)){Z=I.split(/\s+/);for(Y=0;Y<Z.length;Y++)D.push(`.${Z[Y]}`)}}let J=["aria-label","type","name","title","alt"];for(Y=0;Y<J.length;Y++)if(G=J[Y],F=Q.getAttribute(G),F)D.push(`[${G}="${F}"]`);return D.join("")}function tr2(){try{return tx.document.location.href}catch(A){return""}}function er2(A){if(tx.document&&tx.document.querySelector)return tx.document.querySelector(A);return null}function As2(A){if(!tx.HTMLElement)return null;let B=A,Q=5;for(let D=0;D<Q;D++){if(!B)return null;if(B instanceof HTMLElement&&B.dataset.sentryComponent)return B.dataset.sentryComponent;B=B.parentNode}return null}G5A.getComponentName=As2;G5A.getDomElement=er2;G5A.getLocationHref=tr2;G5A.htmlTreeAsString=sr2});var $H=H((F5A)=>{Object.defineProperty(F5A,"__esModule",{value:!0});var Zs2=typeof __SENTRY_DEBUG__==="undefined"||__SENTRY_DEBUG__;F5A.DEBUG_BUILD=Zs2});var xV=H((W5A)=>{Object.defineProperty(W5A,"__esModule",{value:!0});var Fs2=$H(),hq1=iZ(),Ys2="Sentry Logger ",uq1=["debug","info","warn","error","log","assert","trace"],mq1={};function Y5A(A){if(!("console"in hq1.GLOBAL_OBJ))return A();let B=hq1.GLOBAL_OBJ.console,Q={},D=Object.keys(mq1);D.forEach((I)=>{let Z=mq1[I];Q[I]=B[I],B[I]=Z});try{return A()}finally{D.forEach((I)=>{B[I]=Q[I]})}}function Ws2(){let A=!1,B={enable:()=>{A=!0},disable:()=>{A=!1},isEnabled:()=>A};if(Fs2.DEBUG_BUILD)uq1.forEach((Q)=>{B[Q]=(...D)=>{if(A)Y5A(()=>{hq1.GLOBAL_OBJ.console[Q](`${Ys2}[${Q}]:`,...D)})}});else uq1.forEach((Q)=>{B[Q]=()=>{return}});return B}var Js2=Ws2();W5A.CONSOLE_LEVELS=uq1;W5A.consoleSandbox=Y5A;W5A.logger=Js2;W5A.originalConsoleMethods=mq1});var dq1=H((X5A)=>{Object.defineProperty(X5A,"__esModule",{value:!0});var Es2=$H(),Sl=xV(),Hs2=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function zs2(A){return A==="http"||A==="https"}function Us2(A,B=!1){let{host:Q,path:D,pass:I,port:Z,projectId:G,protocol:F,publicKey:Y}=A;return`${F}://${Y}${B&&I?`:${I}`:""}@${Q}${Z?`:${Z}`:""}/${D?`${D}/`:D}${G}`}function J5A(A){let B=Hs2.exec(A);if(!B){Sl.consoleSandbox(()=>{console.error(`Invalid Sentry Dsn: ${A}`)});return}let[Q,D,I="",Z,G="",F]=B.slice(1),Y="",W=F,J=W.split("/");if(J.length>1)Y=J.slice(0,-1).join("/"),W=J.pop();if(W){let C=W.match(/^\d+/);if(C)W=C[0]}return C5A({host:Z,pass:I,path:Y,projectId:W,port:G,protocol:Q,publicKey:D})}function C5A(A){return{protocol:A.protocol,publicKey:A.publicKey||"",pass:A.pass||"",host:A.host,port:A.port||"",path:A.path||"",projectId:A.projectId}}function ws2(A){if(!Es2.DEBUG_BUILD)return!0;let{port:B,projectId:Q,protocol:D}=A;if(["protocol","publicKey","host","projectId"].find((G)=>{if(!A[G])return Sl.logger.error(`Invalid Sentry Dsn: ${G} missing`),!0;return!1}))return!1;if(!Q.match(/^\d+$/))return Sl.logger.error(`Invalid Sentry Dsn: Invalid projectId ${Q}`),!1;if(!zs2(D))return Sl.logger.error(`Invalid Sentry Dsn: Invalid protocol ${D}`),!1;if(B&&isNaN(parseInt(B,10)))return Sl.logger.error(`Invalid Sentry Dsn: Invalid port ${B}`),!1;return!0}function Ns2(A){let B=typeof A==="string"?J5A(A):C5A(A);if(!B||!ws2(B))return;return B}X5A.dsnFromString=J5A;X5A.dsnToString=Us2;X5A.makeDsn=Ns2});var cq1=H((K5A)=>{Object.defineProperty(K5A,"__esModule",{value:!0});class V5A extends Error{constructor(A,B="warn"){super(A);this.message=A,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=B}}K5A.SentryError=V5A});var $C=H((q5A)=>{Object.defineProperty(q5A,"__esModule",{value:!0});var Rs2=gq1(),Os2=$H(),ex=qC(),Ts2=xV(),E5A=Pl();function Ps2(A,B,Q){if(!(B in A))return;let D=A[B],I=Q(D);if(typeof I==="function")w5A(I,D);A[B]=I}function U5A(A,B,Q){try{Object.defineProperty(A,B,{value:Q,writable:!0,configurable:!0})}catch(D){Os2.DEBUG_BUILD&&Ts2.logger.log(`Failed to add non-enumerable property "${B}" to object`,A)}}function w5A(A,B){try{let Q=B.prototype||{};A.prototype=B.prototype=Q,U5A(A,"__sentry_original__",B)}catch(Q){}}function Ss2(A){return A.__sentry_original__}function _s2(A){return Object.keys(A).map((B)=>`${encodeURIComponent(B)}=${encodeURIComponent(A[B])}`).join("&")}function N5A(A){if(ex.isError(A))return{message:A.message,name:A.name,stack:A.stack,...z5A(A)};else if(ex.isEvent(A)){let B={type:A.type,target:H5A(A.target),currentTarget:H5A(A.currentTarget),...z5A(A)};if(typeof CustomEvent!=="undefined"&&ex.isInstanceOf(A,CustomEvent))B.detail=A.detail;return B}else return A}function H5A(A){try{return ex.isElement(A)?Rs2.htmlTreeAsString(A):Object.prototype.toString.call(A)}catch(B){return"<unknown>"}}function z5A(A){if(typeof A==="object"&&A!==null){let B={};for(let Q in A)if(Object.prototype.hasOwnProperty.call(A,Q))B[Q]=A[Q];return B}else return{}}function js2(A,B=40){let Q=Object.keys(N5A(A));if(Q.sort(),!Q.length)return"[object has no keys]";if(Q[0].length>=B)return E5A.truncate(Q[0],B);for(let D=Q.length;D>0;D--){let I=Q.slice(0,D).join(", ");if(I.length>B)continue;if(D===Q.length)return I;return E5A.truncate(I,B)}return""}function ys2(A){return pq1(A,new Map)}function pq1(A,B){if(ks2(A)){let Q=B.get(A);if(Q!==void 0)return Q;let D={};B.set(A,D);for(let I of Object.keys(A))if(typeof A[I]!=="undefined")D[I]=pq1(A[I],B);return D}if(Array.isArray(A)){let Q=B.get(A);if(Q!==void 0)return Q;let D=[];return B.set(A,D),A.forEach((I)=>{D.push(pq1(I,B))}),D}return A}function ks2(A){if(!ex.isPlainObject(A))return!1;try{let B=Object.getPrototypeOf(A).constructor.name;return!B||B==="Object"}catch(B){return!0}}function xs2(A){let B;switch(!0){case(A===void 0||A===null):B=new String(A);break;case(typeof A==="symbol"||typeof A==="bigint"):B=Object(A);break;case ex.isPrimitive(A):B=new A.constructor(A);break;default:B=A;break}return B}q5A.addNonEnumerableProperty=U5A;q5A.convertToPlainObject=N5A;q5A.dropUndefinedKeys=ys2;q5A.extractExceptionKeysForMessage=js2;q5A.fill=Ps2;q5A.getOriginalFunction=Ss2;q5A.markFunctionWrapped=w5A;q5A.objectify=xs2;q5A.urlEncode=_s2});var $91=H((L5A)=>{Object.defineProperty(L5A,"__esModule",{value:!0});function $5A(A,B=!1){return!(B||A&&!A.startsWith("/")&&!A.match(/^[A-Z]:/)&&!A.startsWith(".")&&!A.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&A!==void 0&&!A.includes("node_modules/")}function ps2(A){let B=/^\s*[-]{4,}$/,Q=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;return(D)=>{let I=D.match(Q);if(I){let Z,G,F,Y,W;if(I[1]){F=I[1];let X=F.lastIndexOf(".");if(F[X-1]===".")X--;if(X>0){Z=F.slice(0,X),G=F.slice(X+1);let V=Z.indexOf(".Module");if(V>0)F=F.slice(V+1),Z=Z.slice(0,V)}Y=void 0}if(G)Y=Z,W=G;if(G==="<anonymous>")W=void 0,F=void 0;if(F===void 0)W=W||"<anonymous>",F=Y?`${Y}.${W}`:W;let J=I[2]&&I[2].startsWith("file://")?I[2].slice(7):I[2],C=I[5]==="native";if(J&&J.match(/\/[A-Z]:/))J=J.slice(1);if(!J&&I[5]&&!C)J=I[5];return{filename:J,module:A?A(J):void 0,function:F,lineno:parseInt(I[3],10)||void 0,colno:parseInt(I[4],10)||void 0,in_app:$5A(J,C)}}if(D.match(B))return{filename:D};return}}L5A.filenameIsInApp=$5A;L5A.node=ps2});var L91=H((_5A)=>{Object.defineProperty(_5A,"__esModule",{value:!0});var O5A=$91(),T5A=50,M5A=/\(error: (.*)\)/,R5A=/captureMessage|captureException/;function P5A(...A){let B=A.sort((Q,D)=>Q[0]-D[0]).map((Q)=>Q[1]);return(Q,D=0)=>{let I=[],Z=Q.split(`
8
8
  `);for(let G=D;G<Z.length;G++){let F=Z[G];if(F.length>1024)continue;let Y=M5A.test(F)?F.replace(M5A,"$1"):F;if(Y.match(/\S*Error: /))continue;for(let W of B){let J=W(Y);if(J){I.push(J);break}}if(I.length>=T5A)break}return S5A(I)}}function ns2(A){if(Array.isArray(A))return P5A(...A);return A}function S5A(A){if(!A.length)return[];let B=Array.from(A);if(/sentryWrapped/.test(B[B.length-1].function||""))B.pop();if(B.reverse(),R5A.test(B[B.length-1].function||"")){if(B.pop(),R5A.test(B[B.length-1].function||""))B.pop()}return B.slice(0,T5A).map((Q)=>({...Q,filename:Q.filename||B[B.length-1].filename,function:Q.function||"?"}))}var lq1="<anonymous>";function as2(A){try{if(!A||typeof A!=="function")return lq1;return A.name||lq1}catch(B){return lq1}}function rs2(A){return[90,O5A.node(A)]}_5A.filenameIsInApp=O5A.filenameIsInApp;_5A.createStackParser=P5A;_5A.getFunctionName=as2;_5A.nodeStackLineParser=rs2;_5A.stackParserFromStackParserOptions=ns2;_5A.stripSentryFramesAndReverse=S5A});var DN=H((y5A)=>{Object.defineProperty(y5A,"__esModule",{value:!0});var Qo2=$H(),Do2=xV(),Io2=L91(),Af={},j5A={};function Zo2(A,B){Af[A]=Af[A]||[],Af[A].push(B)}function Go2(){Object.keys(Af).forEach((A)=>{Af[A]=void 0})}function Fo2(A,B){if(!j5A[A])B(),j5A[A]=!0}function Yo2(A,B){let Q=A&&Af[A];if(!Q)return;for(let D of Q)try{D(B)}catch(I){Qo2.DEBUG_BUILD&&Do2.logger.error(`Error while triggering instrumentation handler.
@@ -523,7 +523,7 @@ Expecting one of '${Q.join("', '")}'`);if(this._lifeCycleHooks[A])this._lifeCycl
523
523
  `),this.outputHelp({error:!0});let Q=B||{},D=Q.exitCode||1,I=Q.code||"commander.error";this._exit(D,I,A)}_parseOptionsEnv(){this.options.forEach((A)=>{if(A.envVar&&A.envVar in i5.env){let B=A.attributeName();if(this.getOptionValue(B)===void 0||["default","config","env"].includes(this.getOptionValueSource(B)))if(A.required||A.optional)this.emit(`optionEnv:${A.name()}`,i5.env[A.envVar]);else this.emit(`optionEnv:${A.name()}`)}})}_parseOptionsImplied(){let A=new lf6(this.options),B=(Q)=>{return this.getOptionValue(Q)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(Q))};this.options.filter((Q)=>Q.implied!==void 0&&B(Q.attributeName())&&A.valueFromOption(this.getOptionValue(Q.attributeName()),Q)).forEach((Q)=>{Object.keys(Q.implied).filter((D)=>!B(D)).forEach((D)=>{this.setOptionValueWithSource(D,Q.implied[D],"implied")})})}missingArgument(A){let B=`error: missing required argument '${A}'`;this.error(B,{code:"commander.missingArgument"})}optionMissingArgument(A){let B=`error: option '${A.flags}' argument missing`;this.error(B,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(A){let B=`error: required option '${A.flags}' not specified`;this.error(B,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(A,B){let Q=(Z)=>{let G=Z.attributeName(),F=this.getOptionValue(G),Y=this.options.find((J)=>J.negate&&G===J.attributeName()),W=this.options.find((J)=>!J.negate&&G===J.attributeName());if(Y&&(Y.presetArg===void 0&&F===!1||Y.presetArg!==void 0&&F===Y.presetArg))return Y;return W||Z},D=(Z)=>{let G=Q(Z),F=G.attributeName();if(this.getOptionValueSource(F)==="env")return`environment variable '${G.envVar}'`;return`option '${G.flags}'`},I=`error: ${D(A)} cannot be used with ${D(B)}`;this.error(I,{code:"commander.conflictingOption"})}unknownOption(A){if(this._allowUnknownOption)return;let B="";if(A.startsWith("--")&&this._showSuggestionAfterError){let D=[],I=this;do{let Z=I.createHelp().visibleOptions(I).filter((G)=>G.long).map((G)=>G.long);D=D.concat(Z),I=I.parent}while(I&&!I._enablePositionalOptions);B=Lu2(A,D)}let Q=`error: unknown option '${A}'${B}`;this.error(Q,{code:"commander.unknownOption"})}_excessArguments(A){if(this._allowExcessArguments)return;let B=this.registeredArguments.length,Q=B===1?"":"s",I=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${B} argument${Q} but got ${A.length}.`;this.error(I,{code:"commander.excessArguments"})}unknownCommand(){let A=this.args[0],B="";if(this._showSuggestionAfterError){let D=[];this.createHelp().visibleCommands(this).forEach((I)=>{if(D.push(I.name()),I.alias())D.push(I.alias())}),B=Lu2(A,D)}let Q=`error: unknown command '${A}'${B}`;this.error(Q,{code:"commander.unknownCommand"})}version(A,B,Q){if(A===void 0)return this._version;this._version=A,B=B||"-V, --version",Q=Q||"output the version number";let D=this.createOption(B,Q);return this._versionOptionName=D.attributeName(),this._registerOption(D),this.on("option:"+D.name(),()=>{this._outputConfiguration.writeOut(`${A}
524
524
  `),this._exit(0,"commander.version",A)}),this}description(A,B){if(A===void 0&&B===void 0)return this._description;if(this._description=A,B)this._argsDescription=B;return this}summary(A){if(A===void 0)return this._summary;return this._summary=A,this}alias(A){if(A===void 0)return this._aliases[0];let B=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)B=this.commands[this.commands.length-1];if(A===B._name)throw new Error("Command alias can't be the same as its name");let Q=this.parent?._findCommand(A);if(Q){let D=[Q.name()].concat(Q.aliases()).join("|");throw new Error(`cannot add alias '${A}' to command '${this.name()}' as already have command '${D}'`)}return B._aliases.push(A),this}aliases(A){if(A===void 0)return this._aliases;return A.forEach((B)=>this.alias(B)),this}usage(A){if(A===void 0){if(this._usage)return this._usage;let B=this.registeredArguments.map((Q)=>{return cf6(Q)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?B:[]).join(" ")}return this._usage=A,this}name(A){if(A===void 0)return this._name;return this._name=A,this}nameFromFilename(A){return this._name=f$.basename(A,f$.extname(A)),this}executableDir(A){if(A===void 0)return this._executableDir;return this._executableDir=A,this}helpInformation(A){let B=this.createHelp();if(B.helpWidth===void 0)B.helpWidth=A&&A.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth();return B.formatHelp(this,B)}_getHelpContext(A){A=A||{};let B={error:!!A.error},Q;if(B.error)Q=(D)=>this._outputConfiguration.writeErr(D);else Q=(D)=>this._outputConfiguration.writeOut(D);return B.write=A.write||Q,B.command=this,B}outputHelp(A){let B;if(typeof A==="function")B=A,A=void 0;let Q=this._getHelpContext(A);this._getCommandAndAncestors().reverse().forEach((I)=>I.emit("beforeAllHelp",Q)),this.emit("beforeHelp",Q);let D=this.helpInformation(Q);if(B){if(D=B(D),typeof D!=="string"&&!Buffer.isBuffer(D))throw new Error("outputHelp callback must return a string or a Buffer")}if(Q.write(D),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",Q),this._getCommandAndAncestors().forEach((I)=>I.emit("afterAllHelp",Q))}helpOption(A,B){if(typeof A==="boolean"){if(A)this._helpOption=this._helpOption??void 0;else this._helpOption=null;return this}return A=A??"-h, --help",B=B??"display help for command",this._helpOption=this.createOption(A,B),this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(A){return this._helpOption=A,this}help(A){this.outputHelp(A);let B=i5.exitCode||0;if(B===0&&A&&typeof A!=="function"&&A.error)B=1;this._exit(B,"commander.help","(outputHelp)")}addHelpText(A,B){let Q=["beforeAll","before","after","afterAll"];if(!Q.includes(A))throw new Error(`Unexpected value for position to addHelpText.
525
525
  Expecting one of '${Q.join("', '")}'`);let D=`${A}Help`;return this.on(D,(I)=>{let Z;if(typeof B==="function")Z=B({error:I.error,command:I.command});else Z=B;if(Z)I.write(`${Z}
526
- `)}),this}_outputHelpIfRequested(A){let B=this._getHelpOption();if(B&&A.find((D)=>B.is(D)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function Mu2(A){return A.map((B)=>{if(!B.startsWith("--inspect"))return B;let Q,D="127.0.0.1",I="9229",Z;if((Z=B.match(/^(--inspect(-brk)?)$/))!==null)Q=Z[1];else if((Z=B.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(Q=Z[1],/^\d+$/.test(Z[3]))I=Z[3];else D=Z[3];else if((Z=B.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)Q=Z[1],D=Z[3],I=Z[4];if(Q&&I!=="0")return`${Q}=${D}:${parseInt(I)+1}`;return B})}if6.Command=tQA});var Su2=H((sf6)=>{var{Argument:Ou2}=DN1(),{Command:eQA}=Ru2(),{CommanderError:af6,InvalidArgumentError:Tu2}=T21(),{Help:rf6}=nQA(),{Option:Pu2}=aQA();sf6.program=new eQA;sf6.createCommand=(A)=>new eQA(A);sf6.createOption=(A,B)=>new Pu2(A,B);sf6.createArgument=(A,B)=>new Ou2(A,B);sf6.Command=eQA;sf6.Option=Pu2;sf6.Argument=Ou2;sf6.Help=rf6;sf6.CommanderError=af6;sf6.InvalidArgumentError=Tu2;sf6.InvalidOptionArgumentError=Tu2});var ju2=H((lJ,_u2)=>{var jE=Su2();lJ=_u2.exports={};lJ.program=new jE.Command;lJ.Argument=jE.Argument;lJ.Command=jE.Command;lJ.CommanderError=jE.CommanderError;lJ.Help=jE.Help;lJ.InvalidArgumentError=jE.InvalidArgumentError;lJ.InvalidOptionArgumentError=jE.InvalidArgumentError;lJ.Option=jE.Option;lJ.createCommand=(A)=>new jE.Command(A);lJ.createOption=(A,B)=>new jE.Option(A,B);lJ.createArgument=(A,B)=>new jE.Argument(A,B)});import{cwd as J8A}from"process";import{randomUUID as C8A}from"crypto";var Nm2=typeof global=="object"&&global&&global.Object===Object&&global,PB1=Nm2;var qm2=typeof self=="object"&&self&&self.Object===Object&&self,$m2=PB1||qm2||Function("return this")(),f7=$m2;var Lm2=f7.Symbol,lD=Lm2;var C6A=Object.prototype,Mm2=C6A.hasOwnProperty,Rm2=C6A.toString,Hl=lD?lD.toStringTag:void 0;function Om2(A){var B=Mm2.call(A,Hl),Q=A[Hl];try{A[Hl]=void 0;var D=!0}catch(Z){}var I=Rm2.call(A);if(D)if(B)A[Hl]=Q;else delete A[Hl];return I}var X6A=Om2;var Tm2=Object.prototype,Pm2=Tm2.toString;function Sm2(A){return Pm2.call(A)}var V6A=Sm2;var _m2="[object Null]",jm2="[object Undefined]",K6A=lD?lD.toStringTag:void 0;function ym2(A){if(A==null)return A===void 0?jm2:_m2;return K6A&&K6A in Object(A)?X6A(A):V6A(A)}var fW=ym2;function km2(A){return A!=null&&typeof A=="object"}var UD=km2;var xm2="[object Symbol]";function fm2(A){return typeof A=="symbol"||UD(A)&&fW(A)==xm2}var Tx=fm2;function vm2(A,B){var Q=-1,D=A==null?0:A.length,I=Array(D);while(++Q<D)I[Q]=B(A[Q],Q,A);return I}var Px=vm2;var bm2=Array.isArray,l4=bm2;var gm2=1/0,E6A=lD?lD.prototype:void 0,H6A=E6A?E6A.toString:void 0;function z6A(A){if(typeof A=="string")return A;if(l4(A))return Px(A,z6A)+"";if(Tx(A))return H6A?H6A.call(A):"";var B=A+"";return B=="0"&&1/A==-gm2?"-0":B}var U6A=z6A;function hm2(A){var B=typeof A;return A!=null&&(B=="object"||B=="function")}var j8=hm2;function um2(A){return A}var Sx=um2;var mm2="[object AsyncFunction]",dm2="[object Function]",cm2="[object GeneratorFunction]",pm2="[object Proxy]";function lm2(A){if(!j8(A))return!1;var B=fW(A);return B==dm2||B==cm2||B==mm2||B==pm2}var _x=lm2;var im2=f7["__core-js_shared__"],SB1=im2;var w6A=function(){var A=/[^.]+$/.exec(SB1&&SB1.keys&&SB1.keys.IE_PROTO||"");return A?"Symbol(src)_1."+A:""}();function nm2(A){return!!w6A&&w6A in A}var N6A=nm2;var am2=Function.prototype,rm2=am2.toString;function sm2(A){if(A!=null){try{return rm2.call(A)}catch(B){}try{return A+""}catch(B){}}return""}var tw=sm2;var om2=/[\\^$.*+?()[\]{}|]/g,tm2=/^\[object .+?Constructor\]$/,em2=Function.prototype,Ad2=Object.prototype,Bd2=em2.toString,Qd2=Ad2.hasOwnProperty,Dd2=RegExp("^"+Bd2.call(Qd2).replace(om2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Id2(A){if(!j8(A)||N6A(A))return!1;var B=_x(A)?Dd2:tm2;return B.test(tw(A))}var q6A=Id2;function Zd2(A,B){return A==null?void 0:A[B]}var $6A=Zd2;function Gd2(A,B){var Q=$6A(A,B);return q6A(Q)?Q:void 0}var BY=Gd2;var Fd2=BY(f7,"WeakMap"),_B1=Fd2;var L6A=Object.create,Yd2=function(){function A(){}return function(B){if(!j8(B))return{};if(L6A)return L6A(B);A.prototype=B;var Q=new A;return A.prototype=void 0,Q}}(),M6A=Yd2;function Wd2(A,B,Q){switch(Q.length){case 0:return A.call(B);case 1:return A.call(B,Q[0]);case 2:return A.call(B,Q[0],Q[1]);case 3:return A.call(B,Q[0],Q[1],Q[2])}return A.apply(B,Q)}var R6A=Wd2;function Jd2(){}var O6A=Jd2;function Cd2(A,B){var Q=-1,D=A.length;B||(B=Array(D));while(++Q<D)B[Q]=A[Q];return B}var jB1=Cd2;var Xd2=800,Vd2=16,Kd2=Date.now;function Ed2(A){var B=0,Q=0;return function(){var D=Kd2(),I=Vd2-(D-Q);if(Q=D,I>0){if(++B>=Xd2)return arguments[0]}else B=0;return A.apply(void 0,arguments)}}var T6A=Ed2;function Hd2(A){return function(){return A}}var P6A=Hd2;var zd2=function(){try{var A=BY(Object,"defineProperty");return A({},"",{}),A}catch(B){}}(),jx=zd2;var Ud2=!jx?Sx:function(A,B){return jx(A,"toString",{configurable:!0,enumerable:!1,value:P6A(B),writable:!0})},S6A=Ud2;var wd2=T6A(S6A),yB1=wd2;function Nd2(A,B){var Q=-1,D=A==null?0:A.length;while(++Q<D)if(B(A[Q],Q,A)===!1)break;return A}var _6A=Nd2;function qd2(A,B,Q,D){var I=A.length,Z=Q+(D?1:-1);while(D?Z--:++Z<I)if(B(A[Z],Z,A))return Z;return-1}var j6A=qd2;function $d2(A){return A!==A}var y6A=$d2;function Ld2(A,B,Q){var D=Q-1,I=A.length;while(++D<I)if(A[D]===B)return D;return-1}var k6A=Ld2;function Md2(A,B,Q){return B===B?k6A(A,B,Q):j6A(A,y6A,Q)}var x6A=Md2;function Rd2(A,B){var Q=A==null?0:A.length;return!!Q&&x6A(A,B,0)>-1}var f6A=Rd2;var Od2=9007199254740991,Td2=/^(?:0|[1-9]\d*)$/;function Pd2(A,B){var Q=typeof A;return B=B==null?Od2:B,!!B&&(Q=="number"||Q!="symbol"&&Td2.test(A))&&(A>-1&&A%1==0&&A<B)}var LL=Pd2;function Sd2(A,B,Q){if(B=="__proto__"&&jx)jx(A,B,{configurable:!0,enumerable:!0,value:Q,writable:!0});else A[B]=Q}var ML=Sd2;function _d2(A,B){return A===B||A!==A&&B!==B}var VH=_d2;var jd2=Object.prototype,yd2=jd2.hasOwnProperty;function kd2(A,B,Q){var D=A[B];if(!(yd2.call(A,B)&&VH(D,Q))||Q===void 0&&!(B in A))ML(A,B,Q)}var RL=kd2;function xd2(A,B,Q,D){var I=!Q;Q||(Q={});var Z=-1,G=B.length;while(++Z<G){var F=B[Z],Y=D?D(Q[F],A[F],F,Q,A):void 0;if(Y===void 0)Y=A[F];if(I)ML(Q,F,Y);else RL(Q,F,Y)}return Q}var KH=xd2;var v6A=Math.max;function fd2(A,B,Q){return B=v6A(B===void 0?A.length-1:B,0),function(){var D=arguments,I=-1,Z=v6A(D.length-B,0),G=Array(Z);while(++I<Z)G[I]=D[B+I];I=-1;var F=Array(B+1);while(++I<B)F[I]=D[I];return F[B]=Q(G),R6A(A,this,F)}}var kB1=fd2;function vd2(A,B){return yB1(kB1(A,B,Sx),A+"")}var b6A=vd2;var bd2=9007199254740991;function gd2(A){return typeof A=="number"&&A>-1&&A%1==0&&A<=bd2}var yx=gd2;function hd2(A){return A!=null&&yx(A.length)&&!_x(A)}var EH=hd2;function ud2(A,B,Q){if(!j8(Q))return!1;var D=typeof B;if(D=="number"?EH(Q)&&LL(B,Q.length):D=="string"&&(B in Q))return VH(Q[B],A);return!1}var g6A=ud2;function md2(A){return b6A(function(B,Q){var D=-1,I=Q.length,Z=I>1?Q[I-1]:void 0,G=I>2?Q[2]:void 0;if(Z=A.length>3&&typeof Z=="function"?(I--,Z):void 0,G&&g6A(Q[0],Q[1],G))Z=I<3?void 0:Z,I=1;B=Object(B);while(++D<I){var F=Q[D];if(F)A(B,F,D,Z)}return B})}var h6A=md2;var dd2=Object.prototype;function cd2(A){var B=A&&A.constructor,Q=typeof B=="function"&&B.prototype||dd2;return A===Q}var kx=cd2;function pd2(A,B){var Q=-1,D=Array(A);while(++Q<A)D[Q]=B(Q);return D}var u6A=pd2;var ld2="[object Arguments]";function id2(A){return UD(A)&&fW(A)==ld2}var Hq1=id2;var m6A=Object.prototype,nd2=m6A.hasOwnProperty,ad2=m6A.propertyIsEnumerable,rd2=Hq1(function(){return arguments}())?Hq1:function(A){return UD(A)&&nd2.call(A,"callee")&&!ad2.call(A,"callee")},ew=rd2;var fB1={};Ox(fB1,{default:()=>HH});function sd2(){return!1}var d6A=sd2;var l6A=typeof fB1=="object"&&fB1&&!fB1.nodeType&&fB1,c6A=l6A&&typeof xB1=="object"&&xB1&&!xB1.nodeType&&xB1,od2=c6A&&c6A.exports===l6A,p6A=od2?f7.Buffer:void 0,td2=p6A?p6A.isBuffer:void 0,ed2=td2||d6A,HH=ed2;var Ac2="[object Arguments]",Bc2="[object Array]",Qc2="[object Boolean]",Dc2="[object Date]",Ic2="[object Error]",Zc2="[object Function]",Gc2="[object Map]",Fc2="[object Number]",Yc2="[object Object]",Wc2="[object RegExp]",Jc2="[object Set]",Cc2="[object String]",Xc2="[object WeakMap]",Vc2="[object ArrayBuffer]",Kc2="[object DataView]",Ec2="[object Float32Array]",Hc2="[object Float64Array]",zc2="[object Int8Array]",Uc2="[object Int16Array]",wc2="[object Int32Array]",Nc2="[object Uint8Array]",qc2="[object Uint8ClampedArray]",$c2="[object Uint16Array]",Lc2="[object Uint32Array]",W8={};W8[Ec2]=W8[Hc2]=W8[zc2]=W8[Uc2]=W8[wc2]=W8[Nc2]=W8[qc2]=W8[$c2]=W8[Lc2]=!0;W8[Ac2]=W8[Bc2]=W8[Vc2]=W8[Qc2]=W8[Kc2]=W8[Dc2]=W8[Ic2]=W8[Zc2]=W8[Gc2]=W8[Fc2]=W8[Yc2]=W8[Wc2]=W8[Jc2]=W8[Cc2]=W8[Xc2]=!1;function Mc2(A){return UD(A)&&yx(A.length)&&!!W8[fW(A)]}var i6A=Mc2;function Rc2(A){return function(B){return A(B)}}var xx=Rc2;var bB1={};Ox(bB1,{default:()=>zH});var n6A=typeof bB1=="object"&&bB1&&!bB1.nodeType&&bB1,zl=n6A&&typeof vB1=="object"&&vB1&&!vB1.nodeType&&vB1,Oc2=zl&&zl.exports===n6A,zq1=Oc2&&PB1.process,Tc2=function(){try{var A=zl&&zl.require&&zl.require("util").types;if(A)return A;return zq1&&zq1.binding&&zq1.binding("util")}catch(B){}}(),zH=Tc2;var a6A=zH&&zH.isTypedArray,Pc2=a6A?xx(a6A):i6A,fx=Pc2;var Sc2=Object.prototype,_c2=Sc2.hasOwnProperty;function jc2(A,B){var Q=l4(A),D=!Q&&ew(A),I=!Q&&!D&&HH(A),Z=!Q&&!D&&!I&&fx(A),G=Q||D||I||Z,F=G?u6A(A.length,String):[],Y=F.length;for(var W in A)if((B||_c2.call(A,W))&&!(G&&(W=="length"||I&&(W=="offset"||W=="parent")||Z&&(W=="buffer"||W=="byteLength"||W=="byteOffset")||LL(W,Y))))F.push(W);return F}var gB1=jc2;function yc2(A,B){return function(Q){return A(B(Q))}}var hB1=yc2;var kc2=hB1(Object.keys,Object),r6A=kc2;var xc2=Object.prototype,fc2=xc2.hasOwnProperty;function vc2(A){if(!kx(A))return r6A(A);var B=[];for(var Q in Object(A))if(fc2.call(A,Q)&&Q!="constructor")B.push(Q);return B}var s6A=vc2;function bc2(A){return EH(A)?gB1(A):s6A(A)}var wC=bc2;function gc2(A){var B=[];if(A!=null)for(var Q in Object(A))B.push(Q);return B}var o6A=gc2;var hc2=Object.prototype,uc2=hc2.hasOwnProperty;function mc2(A){if(!j8(A))return o6A(A);var B=kx(A),Q=[];for(var D in A)if(!(D=="constructor"&&(B||!uc2.call(A,D))))Q.push(D);return Q}var t6A=mc2;function dc2(A){return EH(A)?gB1(A,!0):t6A(A)}var UH=dc2;var cc2=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pc2=/^\w*$/;function lc2(A,B){if(l4(A))return!1;var Q=typeof A;if(Q=="number"||Q=="symbol"||Q=="boolean"||A==null||Tx(A))return!0;return pc2.test(A)||!cc2.test(A)||B!=null&&A in Object(B)}var vx=lc2;var ic2=BY(Object,"create"),AN=ic2;function nc2(){this.__data__=AN?AN(null):{},this.size=0}var e6A=nc2;function ac2(A){var B=this.has(A)&&delete this.__data__[A];return this.size-=B?1:0,B}var A4A=ac2;var rc2="__lodash_hash_undefined__",sc2=Object.prototype,oc2=sc2.hasOwnProperty;function tc2(A){var B=this.__data__;if(AN){var Q=B[A];return Q===rc2?void 0:Q}return oc2.call(B,A)?B[A]:void 0}var B4A=tc2;var ec2=Object.prototype,Ap2=ec2.hasOwnProperty;function Bp2(A){var B=this.__data__;return AN?B[A]!==void 0:Ap2.call(B,A)}var Q4A=Bp2;var Qp2="__lodash_hash_undefined__";function Dp2(A,B){var Q=this.__data__;return this.size+=this.has(A)?0:1,Q[A]=AN&&B===void 0?Qp2:B,this}var D4A=Dp2;function bx(A){var B=-1,Q=A==null?0:A.length;this.clear();while(++B<Q){var D=A[B];this.set(D[0],D[1])}}bx.prototype.clear=e6A;bx.prototype.delete=A4A;bx.prototype.get=B4A;bx.prototype.has=Q4A;bx.prototype.set=D4A;var Uq1=bx;function Ip2(){this.__data__=[],this.size=0}var I4A=Ip2;function Zp2(A,B){var Q=A.length;while(Q--)if(VH(A[Q][0],B))return Q;return-1}var OL=Zp2;var Gp2=Array.prototype,Fp2=Gp2.splice;function Yp2(A){var B=this.__data__,Q=OL(B,A);if(Q<0)return!1;var D=B.length-1;if(Q==D)B.pop();else Fp2.call(B,Q,1);return--this.size,!0}var Z4A=Yp2;function Wp2(A){var B=this.__data__,Q=OL(B,A);return Q<0?void 0:B[Q][1]}var G4A=Wp2;function Jp2(A){return OL(this.__data__,A)>-1}var F4A=Jp2;function Cp2(A,B){var Q=this.__data__,D=OL(Q,A);if(D<0)++this.size,Q.push([A,B]);else Q[D][1]=B;return this}var Y4A=Cp2;function gx(A){var B=-1,Q=A==null?0:A.length;this.clear();while(++B<Q){var D=A[B];this.set(D[0],D[1])}}gx.prototype.clear=I4A;gx.prototype.delete=Z4A;gx.prototype.get=G4A;gx.prototype.has=F4A;gx.prototype.set=Y4A;var TL=gx;var Xp2=BY(f7,"Map"),PL=Xp2;function Vp2(){this.size=0,this.__data__={hash:new Uq1,map:new(PL||TL),string:new Uq1}}var W4A=Vp2;function Kp2(A){var B=typeof A;return B=="string"||B=="number"||B=="symbol"||B=="boolean"?A!=="__proto__":A===null}var J4A=Kp2;function Ep2(A,B){var Q=A.__data__;return J4A(B)?Q[typeof B=="string"?"string":"hash"]:Q.map}var SL=Ep2;function Hp2(A){var B=SL(this,A).delete(A);return this.size-=B?1:0,B}var C4A=Hp2;function zp2(A){return SL(this,A).get(A)}var X4A=zp2;function Up2(A){return SL(this,A).has(A)}var V4A=Up2;function wp2(A,B){var Q=SL(this,A),D=Q.size;return Q.set(A,B),this.size+=Q.size==D?0:1,this}var K4A=wp2;function hx(A){var B=-1,Q=A==null?0:A.length;this.clear();while(++B<Q){var D=A[B];this.set(D[0],D[1])}}hx.prototype.clear=W4A;hx.prototype.delete=C4A;hx.prototype.get=X4A;hx.prototype.has=V4A;hx.prototype.set=K4A;var tP=hx;var Np2="Expected a function";function wq1(A,B){if(typeof A!="function"||B!=null&&typeof B!="function")throw new TypeError(Np2);var Q=function(){var D=arguments,I=B?B.apply(this,D):D[0],Z=Q.cache;if(Z.has(I))return Z.get(I);var G=A.apply(this,D);return Q.cache=Z.set(I,G)||Z,G};return Q.cache=new(wq1.Cache||tP),Q}wq1.Cache=tP;var T0=wq1;var qp2=500;function $p2(A){var B=T0(A,function(D){if(Q.size===qp2)Q.clear();return D}),Q=B.cache;return B}var E4A=$p2;var Lp2=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mp2=/\\(\\)?/g,Rp2=E4A(function(A){var B=[];if(A.charCodeAt(0)===46)B.push("");return A.replace(Lp2,function(Q,D,I,Z){B.push(I?Z.replace(Mp2,"$1"):D||Q)}),B}),H4A=Rp2;function Op2(A){return A==null?"":U6A(A)}var ux=Op2;function Tp2(A,B){if(l4(A))return A;return vx(A,B)?[A]:H4A(ux(A))}var _L=Tp2;var Pp2=1/0;function Sp2(A){if(typeof A=="string"||Tx(A))return A;var B=A+"";return B=="0"&&1/A==-Pp2?"-0":B}var wH=Sp2;function _p2(A,B){B=_L(B,A);var Q=0,D=B.length;while(A!=null&&Q<D)A=A[wH(B[Q++])];return Q&&Q==D?A:void 0}var mx=_p2;function jp2(A,B,Q){var D=A==null?void 0:mx(A,B);return D===void 0?Q:D}var z4A=jp2;function yp2(A,B){var Q=-1,D=B.length,I=A.length;while(++Q<D)A[I+Q]=B[Q];return A}var dx=yp2;var U4A=lD?lD.isConcatSpreadable:void 0;function kp2(A){return l4(A)||ew(A)||!!(U4A&&A&&A[U4A])}var w4A=kp2;function N4A(A,B,Q,D,I){var Z=-1,G=A.length;Q||(Q=w4A),I||(I=[]);while(++Z<G){var F=A[Z];if(B>0&&Q(F))if(B>1)N4A(F,B-1,Q,D,I);else dx(I,F);else if(!D)I[I.length]=F}return I}var q4A=N4A;function xp2(A){var B=A==null?0:A.length;return B?q4A(A,1):[]}var $4A=xp2;function fp2(A){return yB1(kB1(A,void 0,$4A),A+"")}var L4A=fp2;var vp2=hB1(Object.getPrototypeOf,Object),cx=vp2;var bp2="[object Object]",gp2=Function.prototype,hp2=Object.prototype,M4A=gp2.toString,up2=hp2.hasOwnProperty,mp2=M4A.call(Object);function dp2(A){if(!UD(A)||fW(A)!=bp2)return!1;var B=cx(A);if(B===null)return!0;var Q=up2.call(B,"constructor")&&B.constructor;return typeof Q=="function"&&Q instanceof Q&&M4A.call(Q)==mp2}var Ul=dp2;function cp2(A,B,Q){var D=-1,I=A.length;if(B<0)B=-B>I?0:I+B;if(Q=Q>I?I:Q,Q<0)Q+=I;I=B>Q?0:Q-B>>>0,B>>>=0;var Z=Array(I);while(++D<I)Z[D]=A[D+B];return Z}var R4A=cp2;function pp2(A,B,Q){var D=A.length;return Q=Q===void 0?D:Q,!B&&Q>=D?A:R4A(A,B,Q)}var O4A=pp2;var lp2="\\ud800-\\udfff",ip2="\\u0300-\\u036f",np2="\\ufe20-\\ufe2f",ap2="\\u20d0-\\u20ff",rp2=ip2+np2+ap2,sp2="\\ufe0e\\ufe0f",op2="\\u200d",tp2=RegExp("["+op2+lp2+rp2+sp2+"]");function ep2(A){return tp2.test(A)}var uB1=ep2;function Al2(A){return A.split("")}var T4A=Al2;var P4A="\\ud800-\\udfff",Bl2="\\u0300-\\u036f",Ql2="\\ufe20-\\ufe2f",Dl2="\\u20d0-\\u20ff",Il2=Bl2+Ql2+Dl2,Zl2="\\ufe0e\\ufe0f",Gl2="["+P4A+"]",Nq1="["+Il2+"]",qq1="\\ud83c[\\udffb-\\udfff]",Fl2="(?:"+Nq1+"|"+qq1+")",S4A="[^"+P4A+"]",_4A="(?:\\ud83c[\\udde6-\\uddff]){2}",j4A="[\\ud800-\\udbff][\\udc00-\\udfff]",Yl2="\\u200d",y4A=Fl2+"?",k4A="["+Zl2+"]?",Wl2="(?:"+Yl2+"(?:"+[S4A,_4A,j4A].join("|")+")"+k4A+y4A+")*",Jl2=k4A+y4A+Wl2,Cl2="(?:"+[S4A+Nq1+"?",Nq1,_4A,j4A,Gl2].join("|")+")",Xl2=RegExp(qq1+"(?="+qq1+")|"+Cl2+Jl2,"g");function Vl2(A){return A.match(Xl2)||[]}var x4A=Vl2;function Kl2(A){return uB1(A)?x4A(A):T4A(A)}var f4A=Kl2;function El2(A){return function(B){B=ux(B);var Q=uB1(B)?f4A(B):void 0,D=Q?Q[0]:B.charAt(0),I=Q?O4A(Q,1).join(""):B.slice(1);return D[A]()+I}}var v4A=El2;var Hl2=v4A("toUpperCase"),b4A=Hl2;function zl2(A){return b4A(ux(A).toLowerCase())}var $q1=zl2;function Ul2(){this.__data__=new TL,this.size=0}var g4A=Ul2;function wl2(A){var B=this.__data__,Q=B.delete(A);return this.size=B.size,Q}var h4A=wl2;function Nl2(A){return this.__data__.get(A)}var u4A=Nl2;function ql2(A){return this.__data__.has(A)}var m4A=ql2;var $l2=200;function Ll2(A,B){var Q=this.__data__;if(Q instanceof TL){var D=Q.__data__;if(!PL||D.length<$l2-1)return D.push([A,B]),this.size=++Q.size,this;Q=this.__data__=new tP(D)}return Q.set(A,B),this.size=Q.size,this}var d4A=Ll2;function px(A){var B=this.__data__=new TL(A);this.size=B.size}px.prototype.clear=g4A;px.prototype.delete=h4A;px.prototype.get=u4A;px.prototype.has=m4A;px.prototype.set=d4A;var NH=px;function Ml2(A,B){return A&&KH(B,wC(B),A)}var c4A=Ml2;function Rl2(A,B){return A&&KH(B,UH(B),A)}var p4A=Rl2;var dB1={};Ox(dB1,{default:()=>wl});var a4A=typeof dB1=="object"&&dB1&&!dB1.nodeType&&dB1,l4A=a4A&&typeof mB1=="object"&&mB1&&!mB1.nodeType&&mB1,Ol2=l4A&&l4A.exports===a4A,i4A=Ol2?f7.Buffer:void 0,n4A=i4A?i4A.allocUnsafe:void 0;function Tl2(A,B){if(B)return A.slice();var Q=A.length,D=n4A?n4A(Q):new A.constructor(Q);return A.copy(D),D}var wl=Tl2;function Pl2(A,B){var Q=-1,D=A==null?0:A.length,I=0,Z=[];while(++Q<D){var G=A[Q];if(B(G,Q,A))Z[I++]=G}return Z}var r4A=Pl2;function Sl2(){return[]}var cB1=Sl2;var _l2=Object.prototype,jl2=_l2.propertyIsEnumerable,s4A=Object.getOwnPropertySymbols,yl2=!s4A?cB1:function(A){if(A==null)return[];return A=Object(A),r4A(s4A(A),function(B){return jl2.call(A,B)})},lx=yl2;function kl2(A,B){return KH(A,lx(A),B)}var o4A=kl2;var xl2=Object.getOwnPropertySymbols,fl2=!xl2?cB1:function(A){var B=[];while(A)dx(B,lx(A)),A=cx(A);return B},pB1=fl2;function vl2(A,B){return KH(A,pB1(A),B)}var t4A=vl2;function bl2(A,B,Q){var D=B(A);return l4(A)?D:dx(D,Q(A))}var lB1=bl2;function gl2(A){return lB1(A,wC,lx)}var Nl=gl2;function hl2(A){return lB1(A,UH,pB1)}var iB1=hl2;var ul2=BY(f7,"DataView"),nB1=ul2;var ml2=BY(f7,"Promise"),aB1=ml2;var dl2=BY(f7,"Set"),jL=dl2;var e4A="[object Map]",cl2="[object Object]",A3A="[object Promise]",B3A="[object Set]",Q3A="[object WeakMap]",D3A="[object DataView]",pl2=tw(nB1),ll2=tw(PL),il2=tw(aB1),nl2=tw(jL),al2=tw(_B1),eP=fW;if(nB1&&eP(new nB1(new ArrayBuffer(1)))!=D3A||PL&&eP(new PL)!=e4A||aB1&&eP(aB1.resolve())!=A3A||jL&&eP(new jL)!=B3A||_B1&&eP(new _B1)!=Q3A)eP=function(A){var B=fW(A),Q=B==cl2?A.constructor:void 0,D=Q?tw(Q):"";if(D)switch(D){case pl2:return D3A;case ll2:return e4A;case il2:return A3A;case nl2:return B3A;case al2:return Q3A}return B};var BN=eP;var rl2=Object.prototype,sl2=rl2.hasOwnProperty;function ol2(A){var B=A.length,Q=new A.constructor(B);if(B&&typeof A[0]=="string"&&sl2.call(A,"index"))Q.index=A.index,Q.input=A.input;return Q}var I3A=ol2;var tl2=f7.Uint8Array,ix=tl2;function el2(A){var B=new A.constructor(A.byteLength);return new ix(B).set(new ix(A)),B}var nx=el2;function Ai2(A,B){var Q=B?nx(A.buffer):A.buffer;return new A.constructor(Q,A.byteOffset,A.byteLength)}var Z3A=Ai2;var Bi2=/\w*$/;function Qi2(A){var B=new A.constructor(A.source,Bi2.exec(A));return B.lastIndex=A.lastIndex,B}var G3A=Qi2;var F3A=lD?lD.prototype:void 0,Y3A=F3A?F3A.valueOf:void 0;function Di2(A){return Y3A?Object(Y3A.call(A)):{}}var W3A=Di2;function Ii2(A,B){var Q=B?nx(A.buffer):A.buffer;return new A.constructor(Q,A.byteOffset,A.length)}var rB1=Ii2;var Zi2="[object Boolean]",Gi2="[object Date]",Fi2="[object Map]",Yi2="[object Number]",Wi2="[object RegExp]",Ji2="[object Set]",Ci2="[object String]",Xi2="[object Symbol]",Vi2="[object ArrayBuffer]",Ki2="[object DataView]",Ei2="[object Float32Array]",Hi2="[object Float64Array]",zi2="[object Int8Array]",Ui2="[object Int16Array]",wi2="[object Int32Array]",Ni2="[object Uint8Array]",qi2="[object Uint8ClampedArray]",$i2="[object Uint16Array]",Li2="[object Uint32Array]";function Mi2(A,B,Q){var D=A.constructor;switch(B){case Vi2:return nx(A);case Zi2:case Gi2:return new D(+A);case Ki2:return Z3A(A,Q);case Ei2:case Hi2:case zi2:case Ui2:case wi2:case Ni2:case qi2:case $i2:case Li2:return rB1(A,Q);case Fi2:return new D;case Yi2:case Ci2:return new D(A);case Wi2:return G3A(A);case Ji2:return new D;case Xi2:return W3A(A)}}var J3A=Mi2;function Ri2(A){return typeof A.constructor=="function"&&!kx(A)?M6A(cx(A)):{}}var sB1=Ri2;var Oi2="[object Map]";function Ti2(A){return UD(A)&&BN(A)==Oi2}var C3A=Ti2;var X3A=zH&&zH.isMap,Pi2=X3A?xx(X3A):C3A,V3A=Pi2;var Si2="[object Set]";function _i2(A){return UD(A)&&BN(A)==Si2}var K3A=_i2;var E3A=zH&&zH.isSet,ji2=E3A?xx(E3A):K3A,H3A=ji2;var yi2=1,ki2=2,xi2=4,z3A="[object Arguments]",fi2="[object Array]",vi2="[object Boolean]",bi2="[object Date]",gi2="[object Error]",U3A="[object Function]",hi2="[object GeneratorFunction]",ui2="[object Map]",mi2="[object Number]",w3A="[object Object]",di2="[object RegExp]",ci2="[object Set]",pi2="[object String]",li2="[object Symbol]",ii2="[object WeakMap]",ni2="[object ArrayBuffer]",ai2="[object DataView]",ri2="[object Float32Array]",si2="[object Float64Array]",oi2="[object Int8Array]",ti2="[object Int16Array]",ei2="[object Int32Array]",An2="[object Uint8Array]",Bn2="[object Uint8ClampedArray]",Qn2="[object Uint16Array]",Dn2="[object Uint32Array]",u3={};u3[z3A]=u3[fi2]=u3[ni2]=u3[ai2]=u3[vi2]=u3[bi2]=u3[ri2]=u3[si2]=u3[oi2]=u3[ti2]=u3[ei2]=u3[ui2]=u3[mi2]=u3[w3A]=u3[di2]=u3[ci2]=u3[pi2]=u3[li2]=u3[An2]=u3[Bn2]=u3[Qn2]=u3[Dn2]=!0;u3[gi2]=u3[U3A]=u3[ii2]=!1;function oB1(A,B,Q,D,I,Z){var G,F=B&yi2,Y=B&ki2,W=B&xi2;if(Q)G=I?Q(A,D,I,Z):Q(A);if(G!==void 0)return G;if(!j8(A))return A;var J=l4(A);if(J){if(G=I3A(A),!F)return jB1(A,G)}else{var C=BN(A),X=C==U3A||C==hi2;if(HH(A))return wl(A,F);if(C==w3A||C==z3A||X&&!I){if(G=Y||X?{}:sB1(A),!F)return Y?t4A(A,p4A(G,A)):o4A(A,c4A(G,A))}else{if(!u3[C])return I?A:{};G=J3A(A,C,F)}}Z||(Z=new NH);var V=Z.get(A);if(V)return V;if(Z.set(A,G),H3A(A))A.forEach(function(U){G.add(oB1(U,B,Q,U,A,Z))});else if(V3A(A))A.forEach(function(U,q){G.set(q,oB1(U,B,Q,q,A,Z))});var K=W?Y?iB1:Nl:Y?UH:wC,E=J?void 0:K(A);return _6A(E||A,function(U,q){if(E)q=U,U=A[q];RL(G,q,oB1(U,B,Q,q,A,Z))}),G}var N3A=oB1;var In2=1,Zn2=4;function Gn2(A){return N3A(A,In2|Zn2)}var ql=Gn2;var Fn2="__lodash_hash_undefined__";function Yn2(A){return this.__data__.set(A,Fn2),this}var q3A=Yn2;function Wn2(A){return this.__data__.has(A)}var $3A=Wn2;function tB1(A){var B=-1,Q=A==null?0:A.length;this.__data__=new tP;while(++B<Q)this.add(A[B])}tB1.prototype.add=tB1.prototype.push=q3A;tB1.prototype.has=$3A;var eB1=tB1;function Jn2(A,B){var Q=-1,D=A==null?0:A.length;while(++Q<D)if(B(A[Q],Q,A))return!0;return!1}var L3A=Jn2;function Cn2(A,B){return A.has(B)}var A91=Cn2;var Xn2=1,Vn2=2;function Kn2(A,B,Q,D,I,Z){var G=Q&Xn2,F=A.length,Y=B.length;if(F!=Y&&!(G&&Y>F))return!1;var W=Z.get(A),J=Z.get(B);if(W&&J)return W==B&&J==A;var C=-1,X=!0,V=Q&Vn2?new eB1:void 0;Z.set(A,B),Z.set(B,A);while(++C<F){var K=A[C],E=B[C];if(D)var U=G?D(E,K,C,B,A,Z):D(K,E,C,A,B,Z);if(U!==void 0){if(U)continue;X=!1;break}if(V){if(!L3A(B,function(q,R){if(!A91(V,R)&&(K===q||I(K,q,Q,D,Z)))return V.push(R)})){X=!1;break}}else if(!(K===E||I(K,E,Q,D,Z))){X=!1;break}}return Z.delete(A),Z.delete(B),X}var B91=Kn2;function En2(A){var B=-1,Q=Array(A.size);return A.forEach(function(D,I){Q[++B]=[I,D]}),Q}var M3A=En2;function Hn2(A){var B=-1,Q=Array(A.size);return A.forEach(function(D){Q[++B]=D}),Q}var ax=Hn2;var zn2=1,Un2=2,wn2="[object Boolean]",Nn2="[object Date]",qn2="[object Error]",$n2="[object Map]",Ln2="[object Number]",Mn2="[object RegExp]",Rn2="[object Set]",On2="[object String]",Tn2="[object Symbol]",Pn2="[object ArrayBuffer]",Sn2="[object DataView]",R3A=lD?lD.prototype:void 0,Lq1=R3A?R3A.valueOf:void 0;function _n2(A,B,Q,D,I,Z,G){switch(Q){case Sn2:if(A.byteLength!=B.byteLength||A.byteOffset!=B.byteOffset)return!1;A=A.buffer,B=B.buffer;case Pn2:if(A.byteLength!=B.byteLength||!Z(new ix(A),new ix(B)))return!1;return!0;case wn2:case Nn2:case Ln2:return VH(+A,+B);case qn2:return A.name==B.name&&A.message==B.message;case Mn2:case On2:return A==B+"";case $n2:var F=M3A;case Rn2:var Y=D&zn2;if(F||(F=ax),A.size!=B.size&&!Y)return!1;var W=G.get(A);if(W)return W==B;D|=Un2,G.set(A,B);var J=B91(F(A),F(B),D,I,Z,G);return G.delete(A),J;case Tn2:if(Lq1)return Lq1.call(A)==Lq1.call(B)}return!1}var O3A=_n2;var jn2=1,yn2=Object.prototype,kn2=yn2.hasOwnProperty;function xn2(A,B,Q,D,I,Z){var G=Q&jn2,F=Nl(A),Y=F.length,W=Nl(B),J=W.length;if(Y!=J&&!G)return!1;var C=Y;while(C--){var X=F[C];if(!(G?X in B:kn2.call(B,X)))return!1}var V=Z.get(A),K=Z.get(B);if(V&&K)return V==B&&K==A;var E=!0;Z.set(A,B),Z.set(B,A);var U=G;while(++C<Y){X=F[C];var q=A[X],R=B[X];if(D)var M=G?D(R,q,X,B,A,Z):D(q,R,X,A,B,Z);if(!(M===void 0?q===R||I(q,R,Q,D,Z):M)){E=!1;break}U||(U=X=="constructor")}if(E&&!U){var T=A.constructor,L=B.constructor;if(T!=L&&(("constructor"in A)&&("constructor"in B))&&!(typeof T=="function"&&T instanceof T&&typeof L=="function"&&L instanceof L))E=!1}return Z.delete(A),Z.delete(B),E}var T3A=xn2;var fn2=1,P3A="[object Arguments]",S3A="[object Array]",Q91="[object Object]",vn2=Object.prototype,_3A=vn2.hasOwnProperty;function bn2(A,B,Q,D,I,Z){var G=l4(A),F=l4(B),Y=G?S3A:BN(A),W=F?S3A:BN(B);Y=Y==P3A?Q91:Y,W=W==P3A?Q91:W;var J=Y==Q91,C=W==Q91,X=Y==W;if(X&&HH(A)){if(!HH(B))return!1;G=!0,J=!1}if(X&&!J)return Z||(Z=new NH),G||fx(A)?B91(A,B,Q,D,I,Z):O3A(A,B,Y,Q,D,I,Z);if(!(Q&fn2)){var V=J&&_3A.call(A,"__wrapped__"),K=C&&_3A.call(B,"__wrapped__");if(V||K){var E=V?A.value():A,U=K?B.value():B;return Z||(Z=new NH),I(E,U,Q,D,Z)}}if(!X)return!1;return Z||(Z=new NH),T3A(A,B,Q,D,I,Z)}var j3A=bn2;function y3A(A,B,Q,D,I){if(A===B)return!0;if(A==null||B==null||!UD(A)&&!UD(B))return A!==A&&B!==B;return j3A(A,B,Q,D,y3A,I)}var rx=y3A;var gn2=1,hn2=2;function un2(A,B,Q,D){var I=Q.length,Z=I,G=!D;if(A==null)return!Z;A=Object(A);while(I--){var F=Q[I];if(G&&F[2]?F[1]!==A[F[0]]:!(F[0]in A))return!1}while(++I<Z){F=Q[I];var Y=F[0],W=A[Y],J=F[1];if(G&&F[2]){if(W===void 0&&!(Y in A))return!1}else{var C=new NH;if(D)var X=D(W,J,Y,A,B,C);if(!(X===void 0?rx(J,W,gn2|hn2,D,C):X))return!1}}return!0}var k3A=un2;function mn2(A){return A===A&&!j8(A)}var D91=mn2;function dn2(A){var B=wC(A),Q=B.length;while(Q--){var D=B[Q],I=A[D];B[Q]=[D,I,D91(I)]}return B}var x3A=dn2;function cn2(A,B){return function(Q){if(Q==null)return!1;return Q[A]===B&&(B!==void 0||(A in Object(Q)))}}var I91=cn2;function pn2(A){var B=x3A(A);if(B.length==1&&B[0][2])return I91(B[0][0],B[0][1]);return function(Q){return Q===A||k3A(Q,A,B)}}var f3A=pn2;function ln2(A,B){return A!=null&&B in Object(A)}var v3A=ln2;function in2(A,B,Q){B=_L(B,A);var D=-1,I=B.length,Z=!1;while(++D<I){var G=wH(B[D]);if(!(Z=A!=null&&Q(A,G)))break;A=A[G]}if(Z||++D!=I)return Z;return I=A==null?0:A.length,!!I&&yx(I)&&LL(G,I)&&(l4(A)||ew(A))}var b3A=in2;function nn2(A,B){return A!=null&&b3A(A,B,v3A)}var Z91=nn2;var an2=1,rn2=2;function sn2(A,B){if(vx(A)&&D91(B))return I91(wH(A),B);return function(Q){var D=z4A(Q,A);return D===void 0&&D===B?Z91(Q,A):rx(B,D,an2|rn2)}}var g3A=sn2;function on2(A){return function(B){return B==null?void 0:B[A]}}var h3A=on2;function tn2(A){return function(B){return mx(B,A)}}var u3A=tn2;function en2(A){return vx(A)?h3A(wH(A)):u3A(A)}var m3A=en2;function Aa2(A){if(typeof A=="function")return A;if(A==null)return Sx;if(typeof A=="object")return l4(A)?g3A(A[0],A[1]):f3A(A);return m3A(A)}var qH=Aa2;function Ba2(A,B,Q,D){var I=-1,Z=A==null?0:A.length;while(++I<Z){var G=A[I];B(D,G,Q(G),A)}return D}var d3A=Ba2;function Qa2(A){return function(B,Q,D){var I=-1,Z=Object(B),G=D(B),F=G.length;while(F--){var Y=G[A?F:++I];if(Q(Z[Y],Y,Z)===!1)break}return B}}var c3A=Qa2;var Da2=c3A(),G91=Da2;function Ia2(A,B){return A&&G91(A,B,wC)}var F91=Ia2;function Za2(A,B){return function(Q,D){if(Q==null)return Q;if(!EH(Q))return A(Q,D);var I=Q.length,Z=B?I:-1,G=Object(Q);while(B?Z--:++Z<I)if(D(G[Z],Z,G)===!1)break;return Q}}var p3A=Za2;var Ga2=p3A(F91),l3A=Ga2;function Fa2(A,B,Q,D){return l3A(A,function(I,Z,G){B(D,I,Q(I),G)}),D}var i3A=Fa2;function Ya2(A,B){return function(Q,D){var I=l4(Q)?d3A:i3A,Z=B?B():{};return I(Q,A,qH(D,2),Z)}}var n3A=Ya2;function Wa2(A,B,Q){if(Q!==void 0&&!VH(A[B],Q)||Q===void 0&&!(B in A))ML(A,B,Q)}var $l=Wa2;function Ja2(A){return UD(A)&&EH(A)}var a3A=Ja2;function Ca2(A,B){if(B==="constructor"&&typeof A[B]==="function")return;if(B=="__proto__")return;return A[B]}var Ll=Ca2;function Xa2(A){return KH(A,UH(A))}var r3A=Xa2;function Va2(A,B,Q,D,I,Z,G){var F=Ll(A,Q),Y=Ll(B,Q),W=G.get(Y);if(W){$l(A,Q,W);return}var J=Z?Z(F,Y,Q+"",A,B,G):void 0,C=J===void 0;if(C){var X=l4(Y),V=!X&&HH(Y),K=!X&&!V&&fx(Y);if(J=Y,X||V||K)if(l4(F))J=F;else if(a3A(F))J=jB1(F);else if(V)C=!1,J=wl(Y,!0);else if(K)C=!1,J=rB1(Y,!0);else J=[];else if(Ul(Y)||ew(Y)){if(J=F,ew(F))J=r3A(F);else if(!j8(F)||_x(F))J=sB1(Y)}else C=!1}if(C)G.set(Y,J),I(J,Y,D,Z,G),G.delete(Y);$l(A,Q,J)}var s3A=Va2;function o3A(A,B,Q,D,I){if(A===B)return;G91(B,function(Z,G){if(I||(I=new NH),j8(Z))s3A(A,B,G,Q,o3A,D,I);else{var F=D?D(Ll(A,G),Z,G+"",A,B,I):void 0;if(F===void 0)F=Z;$l(A,G,F)}},UH)}var t3A=o3A;var Ka2=h6A(function(A,B,Q,D){t3A(A,B,Q,D)}),Mq1=Ka2;function Ea2(A,B,Q){var D=-1,I=A==null?0:A.length;while(++D<I)if(Q(B,A[D]))return!0;return!1}var e3A=Ea2;function Ha2(A){var B=A==null?0:A.length;return B?A[B-1]:void 0}var aI=Ha2;function za2(A,B){return Px(B,function(Q){return A[Q]})}var A8A=za2;function Ua2(A){return A==null?[]:A8A(A,wC(A))}var B8A=Ua2;function wa2(A,B){return rx(A,B)}var Y91=wa2;function Na2(A,B){var Q={};return B=qH(B,3),F91(A,function(D,I,Z){ML(Q,I,B(D,I,Z))}),Q}var NC=Na2;function qa2(A,B){var Q,D=-1,I=A.length;while(++D<I){var Z=B(A[D]);if(Z!==void 0)Q=Q===void 0?Z:Q+Z}return Q}var Q8A=qa2;function $a2(A,B,Q,D){if(!j8(A))return A;B=_L(B,A);var I=-1,Z=B.length,G=Z-1,F=A;while(F!=null&&++I<Z){var Y=wH(B[I]),W=Q;if(Y==="__proto__"||Y==="constructor"||Y==="prototype")return A;if(I!=G){var J=F[Y];if(W=D?D(J,Y,F):void 0,W===void 0)W=j8(J)?J:LL(B[I+1])?[]:{}}RL(F,Y,W),F=F[Y]}return A}var D8A=$a2;function La2(A,B,Q){var D=-1,I=B.length,Z={};while(++D<I){var G=B[D],F=mx(A,G);if(Q(F,G))D8A(Z,_L(G,A),F)}return Z}var W91=La2;function Ma2(A,B){if(A==null)return{};var Q=Px(iB1(A),function(D){return[D]});return B=qH(B),W91(A,Q,function(D,I){return B(D,I[0])})}var Rq1=Ma2;var Ra2=n3A(function(A,B,Q){A[Q?0:1].push(B)},function(){return[[],[]]}),Oq1=Ra2;function Oa2(A,B){return W91(A,B,function(Q,D){return Z91(A,D)})}var I8A=Oa2;var Ta2=L4A(function(A,B){return A==null?{}:I8A(A,B)}),J91=Ta2;var{floor:Pa2,random:Sa2}=Math;function _a2(A,B){return A+Pa2(Sa2()*(B-A+1))}var Z8A=_a2;function ja2(A){var B=A.length;return B?A[Z8A(0,B-1)]:void 0}var C91=ja2;function ya2(A){return C91(B8A(A))}var G8A=ya2;function ka2(A){var B=l4(A)?C91:G8A;return B(A)}var AS=ka2;function xa2(A,B){return A&&A.length?Q8A(A,qH(B,2)):0}var BS=xa2;var fa2=1/0,va2=!(jL&&1/ax(new jL([,-0]))[1]==fa2)?O6A:function(A){return new jL(A)},F8A=va2;var ba2=200;function ga2(A,B,Q){var D=-1,I=f6A,Z=A.length,G=!0,F=[],Y=F;if(Q)G=!1,I=e3A;else if(Z>=ba2){var W=B?null:F8A(A);if(W)return ax(W);G=!1,I=A91,Y=new eB1}else Y=B?[]:F;A:while(++D<Z){var J=A[D],C=B?B(J):J;if(J=Q||J!==0?J:0,G&&C===C){var X=Y.length;while(X--)if(Y[X]===C)continue A;if(B)Y.push(C);F.push(J)}else if(!I(Y,C,Q)){if(Y!==F)Y.push(C);F.push(J)}}return F}var Y8A=ga2;function ha2(A,B){return A&&A.length?Y8A(A,qH(B,2)):[]}var QS=ha2;function ua2(A,B,Q){var D=-1,I=A.length,Z=B.length,G={};while(++D<I){var F=D<Z?B[D]:void 0;Q(G,A[D],F)}return G}var W8A=ua2;function ma2(A,B){return W8A(A||[],B||[],RL)}var Tq1=ma2;function da2(){return{originalCwd:J8A(),totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:J8A(),modelUsage:{},mainLoopModelOverride:void 0,maxRateLimitFallbackActive:!1,initialMainLoopModel:null,modelStrings:null,isNonInteractiveSession:!0,isInteractive:!1,clientType:"cli",meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:C8A(),loggerProvider:null,eventLogger:null}}var FB=da2();function jB(){return FB.sessionId}function X8A(){return FB.sessionId=C8A(),FB.sessionId}function Y9(){return FB.originalCwd}function V8A(){return FB.cwd}function K8A(A){FB.cwd=A}async function E8A(A,B,Q,D,I){FB.totalCostUSD+=A,FB.totalAPIDuration+=B,FB.totalAPIDurationWithoutRetries+=Q;let Z=FB.modelUsage[I]??{inputTokens:0,outputTokens:0,cacheReadInputTokens:0,cacheCreationInputTokens:0,webSearchRequests:0};Z.inputTokens+=D.input_tokens,Z.outputTokens+=D.output_tokens,Z.cacheReadInputTokens+=D.cache_read_input_tokens??0,Z.cacheCreationInputTokens+=D.cache_creation_input_tokens??0,Z.webSearchRequests+=D.server_tool_use?.web_search_requests??0,FB.modelUsage[I]=Z}function QN(){return FB.totalCostUSD}function DS(){return FB.totalAPIDuration}function Pq1(){return Date.now()-FB.startTime}function Ml(){FB.lastInteractionTime=Date.now()}function Sq1(A,B){FB.totalLinesAdded+=A,FB.totalLinesRemoved+=B}function X91(){return FB.totalLinesAdded}function V91(){return FB.totalLinesRemoved}function H8A(){return BS(Object.values(FB.modelUsage),"inputTokens")}function z8A(){return BS(Object.values(FB.modelUsage),"outputTokens")}function U8A(){return BS(Object.values(FB.modelUsage),"cacheReadInputTokens")}function w8A(){return BS(Object.values(FB.modelUsage),"cacheCreationInputTokens")}function N8A(){return BS(Object.values(FB.modelUsage),"webSearchRequests")}function _q1(){FB.hasUnknownModelCost=!0}function q8A(){return FB.hasUnknownModelCost}function K91(){return FB.lastInteractionTime}function $8A(){return FB.modelUsage}function L8A(){return FB.mainLoopModelOverride}function E91(){return FB.initialMainLoopModel}function Rl(A){FB.mainLoopModelOverride=A}function IS(){return FB.maxRateLimitFallbackActive}function M8A(A){FB.maxRateLimitFallbackActive=A}function R8A(A){FB.initialMainLoopModel=A}function H91(){return FB.modelStrings}function jq1(A){FB.modelStrings=A}function O8A(A,B){FB.meter=A,FB.sessionCounter=B("claude_code.session.count",{description:"Count of CLI sessions started"}),FB.locCounter=B("claude_code.lines_of_code.count",{description:"Count of lines of code modified, with the 'type' attribute indicating whether lines were added or removed"}),FB.prCounter=B("claude_code.pull_request.count",{description:"Number of pull requests created"}),FB.commitCounter=B("claude_code.commit.count",{description:"Number of git commits created"}),FB.costCounter=B("claude_code.cost.usage",{description:"Cost of the Claude Code session",unit:"USD"}),FB.tokenCounter=B("claude_code.token.usage",{description:"Number of tokens used",unit:"tokens"}),FB.codeEditToolDecisionCounter=B("claude_code.code_edit_tool.decision",{description:"Count of code editing tool permission decisions (accept/reject) for Edit, MultiEdit, Write, and NotebookEdit tools"}),FB.activeTimeCounter=B("claude_code.active_time.total",{description:"Total active time in seconds",unit:"s"})}function T8A(){return FB.sessionCounter}function yq1(){return FB.locCounter}function P8A(){return FB.prCounter}function S8A(){return FB.commitCounter}function _8A(){return FB.costCounter}function Ol(){return FB.tokenCounter}function sx(){return FB.codeEditToolDecisionCounter}function kq1(){return FB.activeTimeCounter}function j8A(){return FB.loggerProvider}function y8A(A){FB.loggerProvider=A}function k8A(){return FB.eventLogger}function x8A(A){FB.eventLogger=A}function z91(){return FB.isNonInteractiveSession}function f8A(A){FB.isNonInteractiveSession=A}function v8A(){return FB.isInteractive}function b8A(A){FB.isInteractive=A}function g8A(){return FB.clientType}function h8A(A){FB.clientType=A}import{resolve as Dw0,join as ku1,dirname as Iw0}from"path";import{execFile as xBQ,execSync as fBQ}from"child_process";var Zo=G1(Tl(),1);import{constants as NBQ,readFileSync as dU0,existsSync as vF1,statSync as qBQ,mkdirSync as $BQ}from"fs";import{homedir as LBQ}from"os";import{execSync as cU0,execFile as MBQ,spawn as RBQ}from"child_process";import{isAbsolute as OBQ,resolve as TBQ,join as Ru1}from"path";import{dirname as JBQ,join as zu1}from"path";var nR=G1(JVA(),1);import{execSync as wNB}from"child_process";var Sf=T0(()=>{let A=_f(),B=GA();return{customIDs:{sessionId:jB()},userID:A,appVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,email:NNB(),custom:{userType:"external",organizationUuid:B.oauthAccount?.organizationUuid,accountUuid:B.oauthAccount?.accountUuid,...process.env.GITHUB_ACTIONS==="true"&&{githubActor:process.env.GITHUB_ACTOR,githubActorId:process.env.GITHUB_ACTOR_ID,githubRepositoryOwner:process.env.GITHUB_REPOSITORY_OWNER,githubRepositoryOwnerId:process.env.GITHUB_REPOSITORY_OWNER_ID}}}});function NNB(){return;try{return wNB("git config --get user.email").toString().trim()}catch{return}}var CVA="https://e531a1d9ec1de9064fae9d4affb0b0f4@o1158394.ingest.us.sentry.io/4508259541909504",XVA="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var ABQ=G1(U1(),1);function Mi(A,B){return function Q(){return A.apply(B,arguments)}}var{toString:wqB}=Object.prototype,{getPrototypeOf:fM1}=Object,$61=((A)=>(B)=>{let Q=wqB.call(B);return A[Q]||(A[Q]=Q.slice(8,-1).toLowerCase())})(Object.create(null)),hV=(A)=>{return A=A.toLowerCase(),(B)=>$61(B)===A},L61=(A)=>(B)=>typeof B===A,{isArray:yf}=Array,Ri=L61("undefined");function NqB(A){return A!==null&&!Ri(A)&&A.constructor!==null&&!Ri(A.constructor)&&mW(A.constructor.isBuffer)&&A.constructor.isBuffer(A)}var RVA=hV("ArrayBuffer");function qqB(A){let B;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView)B=ArrayBuffer.isView(A);else B=A&&A.buffer&&RVA(A.buffer);return B}var $qB=L61("string"),mW=L61("function"),OVA=L61("number"),M61=(A)=>A!==null&&typeof A==="object",LqB=(A)=>A===!0||A===!1,q61=(A)=>{if($61(A)!=="object")return!1;let B=fM1(A);return(B===null||B===Object.prototype||Object.getPrototypeOf(B)===null)&&!(Symbol.toStringTag in A)&&!(Symbol.iterator in A)},MqB=hV("Date"),RqB=hV("File"),OqB=hV("Blob"),TqB=hV("FileList"),PqB=(A)=>M61(A)&&mW(A.pipe),SqB=(A)=>{let B;return A&&(typeof FormData==="function"&&A instanceof FormData||mW(A.append)&&((B=$61(A))==="formdata"||B==="object"&&mW(A.toString)&&A.toString()==="[object FormData]"))},_qB=hV("URLSearchParams"),[jqB,yqB,kqB,xqB]=["ReadableStream","Request","Response","Headers"].map(hV),fqB=(A)=>A.trim?A.trim():A.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oi(A,B,{allOwnKeys:Q=!1}={}){if(A===null||typeof A==="undefined")return;let D,I;if(typeof A!=="object")A=[A];if(yf(A))for(D=0,I=A.length;D<I;D++)B.call(null,A[D],D,A);else{let Z=Q?Object.getOwnPropertyNames(A):Object.keys(A),G=Z.length,F;for(D=0;D<G;D++)F=Z[D],B.call(null,A[F],F,A)}}function TVA(A,B){B=B.toLowerCase();let Q=Object.keys(A),D=Q.length,I;while(D-- >0)if(I=Q[D],B===I.toLowerCase())return I;return null}var _S=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})(),PVA=(A)=>!Ri(A)&&A!==_S;function xM1(){let{caseless:A}=PVA(this)&&this||{},B={},Q=(D,I)=>{let Z=A&&TVA(B,I)||I;if(q61(B[Z])&&q61(D))B[Z]=xM1(B[Z],D);else if(q61(D))B[Z]=xM1({},D);else if(yf(D))B[Z]=D.slice();else B[Z]=D};for(let D=0,I=arguments.length;D<I;D++)arguments[D]&&Oi(arguments[D],Q);return B}var vqB=(A,B,Q,{allOwnKeys:D}={})=>{return Oi(B,(I,Z)=>{if(Q&&mW(I))A[Z]=Mi(I,Q);else A[Z]=I},{allOwnKeys:D}),A},bqB=(A)=>{if(A.charCodeAt(0)===65279)A=A.slice(1);return A},gqB=(A,B,Q,D)=>{A.prototype=Object.create(B.prototype,D),A.prototype.constructor=A,Object.defineProperty(A,"super",{value:B.prototype}),Q&&Object.assign(A.prototype,Q)},hqB=(A,B,Q,D)=>{let I,Z,G,F={};if(B=B||{},A==null)return B;do{I=Object.getOwnPropertyNames(A),Z=I.length;while(Z-- >0)if(G=I[Z],(!D||D(G,A,B))&&!F[G])B[G]=A[G],F[G]=!0;A=Q!==!1&&fM1(A)}while(A&&(!Q||Q(A,B))&&A!==Object.prototype);return B},uqB=(A,B,Q)=>{if(A=String(A),Q===void 0||Q>A.length)Q=A.length;Q-=B.length;let D=A.indexOf(B,Q);return D!==-1&&D===Q},mqB=(A)=>{if(!A)return null;if(yf(A))return A;let B=A.length;if(!OVA(B))return null;let Q=new Array(B);while(B-- >0)Q[B]=A[B];return Q},dqB=((A)=>{return(B)=>{return A&&B instanceof A}})(typeof Uint8Array!=="undefined"&&fM1(Uint8Array)),cqB=(A,B)=>{let D=(A&&A[Symbol.iterator]).call(A),I;while((I=D.next())&&!I.done){let Z=I.value;B.call(A,Z[0],Z[1])}},pqB=(A,B)=>{let Q,D=[];while((Q=A.exec(B))!==null)D.push(Q);return D},lqB=hV("HTMLFormElement"),iqB=(A)=>{return A.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function B(Q,D,I){return D.toUpperCase()+I})},MVA=(({hasOwnProperty:A})=>(B,Q)=>A.call(B,Q))(Object.prototype),nqB=hV("RegExp"),SVA=(A,B)=>{let Q=Object.getOwnPropertyDescriptors(A),D={};Oi(Q,(I,Z)=>{let G;if((G=B(I,Z,A))!==!1)D[Z]=G||I}),Object.defineProperties(A,D)},aqB=(A)=>{SVA(A,(B,Q)=>{if(mW(A)&&["arguments","caller","callee"].indexOf(Q)!==-1)return!1;let D=A[Q];if(!mW(D))return;if(B.enumerable=!1,"writable"in B){B.writable=!1;return}if(!B.set)B.set=()=>{throw Error("Can not rewrite read-only method '"+Q+"'")}})},rqB=(A,B)=>{let Q={},D=(I)=>{I.forEach((Z)=>{Q[Z]=!0})};return yf(A)?D(A):D(String(A).split(B)),Q},sqB=()=>{},oqB=(A,B)=>{return A!=null&&Number.isFinite(A=+A)?A:B};function tqB(A){return!!(A&&mW(A.append)&&A[Symbol.toStringTag]==="FormData"&&A[Symbol.iterator])}var eqB=(A)=>{let B=new Array(10),Q=(D,I)=>{if(M61(D)){if(B.indexOf(D)>=0)return;if(!("toJSON"in D)){B[I]=D;let Z=yf(D)?[]:{};return Oi(D,(G,F)=>{let Y=Q(G,I+1);!Ri(Y)&&(Z[F]=Y)}),B[I]=void 0,Z}}return D};return Q(A,0)},A$B=hV("AsyncFunction"),B$B=(A)=>A&&(M61(A)||mW(A))&&mW(A.then)&&mW(A.catch),_VA=((A,B)=>{if(A)return setImmediate;return B?((Q,D)=>{return _S.addEventListener("message",({source:I,data:Z})=>{if(I===_S&&Z===Q)D.length&&D.shift()()},!1),(I)=>{D.push(I),_S.postMessage(Q,"*")}})(`axios@${Math.random()}`,[]):(Q)=>setTimeout(Q)})(typeof setImmediate==="function",mW(_S.postMessage)),Q$B=typeof queueMicrotask!=="undefined"?queueMicrotask.bind(_S):typeof process!=="undefined"&&process.nextTick||_VA,HA={isArray:yf,isArrayBuffer:RVA,isBuffer:NqB,isFormData:SqB,isArrayBufferView:qqB,isString:$qB,isNumber:OVA,isBoolean:LqB,isObject:M61,isPlainObject:q61,isReadableStream:jqB,isRequest:yqB,isResponse:kqB,isHeaders:xqB,isUndefined:Ri,isDate:MqB,isFile:RqB,isBlob:OqB,isRegExp:nqB,isFunction:mW,isStream:PqB,isURLSearchParams:_qB,isTypedArray:dqB,isFileList:TqB,forEach:Oi,merge:xM1,extend:vqB,trim:fqB,stripBOM:bqB,inherits:gqB,toFlatObject:hqB,kindOf:$61,kindOfTest:hV,endsWith:uqB,toArray:mqB,forEachEntry:cqB,matchAll:pqB,isHTMLForm:lqB,hasOwnProperty:MVA,hasOwnProp:MVA,reduceDescriptors:SVA,freezeMethods:aqB,toObjectSet:rqB,toCamelCase:iqB,noop:sqB,toFiniteNumber:oqB,findKey:TVA,global:_S,isContextDefined:PVA,isSpecCompliantForm:tqB,toJSONObject:eqB,isAsyncFn:A$B,isThenable:B$B,setImmediate:_VA,asap:Q$B};function kf(A,B,Q,D,I){if(Error.call(this),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);else this.stack=new Error().stack;if(this.message=A,this.name="AxiosError",B&&(this.code=B),Q&&(this.config=Q),D&&(this.request=D),I)this.response=I,this.status=I.status?I.status:null}HA.inherits(kf,Error,{toJSON:function A(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:HA.toJSONObject(this.config),code:this.code,status:this.status}}});var jVA=kf.prototype,yVA={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((A)=>{yVA[A]={value:A}});Object.defineProperties(kf,yVA);Object.defineProperty(jVA,"isAxiosError",{value:!0});kf.from=(A,B,Q,D,I,Z)=>{let G=Object.create(jVA);return HA.toFlatObject(A,G,function F(Y){return Y!==Error.prototype},(F)=>{return F!=="isAxiosError"}),kf.call(G,A.message,B,Q,D,I),G.cause=A,G.name=A.name,Z&&Object.assign(G,Z),G};var L2=kf;var bEA=G1(vEA(),1),x61=bEA.default;function ZR1(A){return HA.isPlainObject(A)||HA.isArray(A)}function hEA(A){return HA.endsWith(A,"[]")?A.slice(0,-2):A}function gEA(A,B,Q){if(!A)return B;return A.concat(B).map(function D(I,Z){return I=hEA(I),!Q&&Z?"["+I+"]":I}).join(Q?".":"")}function pLB(A){return HA.isArray(A)&&!A.some(ZR1)}var lLB=HA.toFlatObject(HA,{},null,function A(B){return/^is[A-Z]/.test(B)});function iLB(A,B,Q){if(!HA.isObject(A))throw new TypeError("target must be an object");B=B||new(x61||FormData),Q=HA.toFlatObject(Q,{metaTokens:!0,dots:!1,indexes:!1},!1,function K(E,U){return!HA.isUndefined(U[E])});let D=Q.metaTokens,I=Q.visitor||J,Z=Q.dots,G=Q.indexes,Y=(Q.Blob||typeof Blob!=="undefined"&&Blob)&&HA.isSpecCompliantForm(B);if(!HA.isFunction(I))throw new TypeError("visitor must be a function");function W(K){if(K===null)return"";if(HA.isDate(K))return K.toISOString();if(!Y&&HA.isBlob(K))throw new L2("Blob is not supported. Use a Buffer instead.");if(HA.isArrayBuffer(K)||HA.isTypedArray(K))return Y&&typeof Blob==="function"?new Blob([K]):Buffer.from(K);return K}function J(K,E,U){let q=K;if(K&&!U&&typeof K==="object"){if(HA.endsWith(E,"{}"))E=D?E:E.slice(0,-2),K=JSON.stringify(K);else if(HA.isArray(K)&&pLB(K)||(HA.isFileList(K)||HA.endsWith(E,"[]"))&&(q=HA.toArray(K)))return E=hEA(E),q.forEach(function R(M,T){!(HA.isUndefined(M)||M===null)&&B.append(G===!0?gEA([E],T,Z):G===null?E:E+"[]",W(M))}),!1}if(ZR1(K))return!0;return B.append(gEA(U,E,Z),W(K)),!1}let C=[],X=Object.assign(lLB,{defaultVisitor:J,convertValue:W,isVisitable:ZR1});function V(K,E){if(HA.isUndefined(K))return;if(C.indexOf(K)!==-1)throw Error("Circular reference detected in "+E.join("."));C.push(K),HA.forEach(K,function U(q,R){if((!(HA.isUndefined(q)||q===null)&&I.call(B,q,HA.isString(R)?R.trim():R,E,X))===!0)V(q,E?E.concat(R):[R])}),C.pop()}if(!HA.isObject(A))throw new TypeError("data must be an object");return V(A),B}var cL=iLB;function uEA(A){let B={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\x00"};return encodeURIComponent(A).replace(/[!'()~]|%20|%00/g,function Q(D){return B[D]})}function mEA(A,B){this._pairs=[],A&&cL(A,this,B)}var dEA=mEA.prototype;dEA.append=function A(B,Q){this._pairs.push([B,Q])};dEA.toString=function A(B){let Q=B?function(D){return B.call(this,D,uEA)}:uEA;return this._pairs.map(function D(I){return Q(I[0])+"="+Q(I[1])},"").join("&")};var cEA=mEA;function nLB(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function yS(A,B,Q){if(!B)return A;let D=Q&&Q.encode||nLB;if(HA.isFunction(Q))Q={serialize:Q};let I=Q&&Q.serialize,Z;if(I)Z=I(B,Q);else Z=HA.isURLSearchParams(B)?B.toString():new cEA(B,Q).toString(D);if(Z){let G=A.indexOf("#");if(G!==-1)A=A.slice(0,G);A+=(A.indexOf("?")===-1?"?":"&")+Z}return A}class pEA{constructor(){this.handlers=[]}use(A,B,Q){return this.handlers.push({fulfilled:A,rejected:B,synchronous:Q?Q.synchronous:!1,runWhen:Q?Q.runWhen:null}),this.handlers.length-1}eject(A){if(this.handlers[A])this.handlers[A]=null}clear(){if(this.handlers)this.handlers=[]}forEach(A){HA.forEach(this.handlers,function B(Q){if(Q!==null)A(Q)})}}var GR1=pEA;var gf={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};import rLB from"crypto";import aLB from"url";var lEA=aLB.URLSearchParams;var FR1="abcdefghijklmnopqrstuvwxyz",iEA="0123456789",nEA={DIGIT:iEA,ALPHA:FR1,ALPHA_DIGIT:FR1+FR1.toUpperCase()+iEA},sLB=(A=16,B=nEA.ALPHA_DIGIT)=>{let Q="",{length:D}=B,I=new Uint32Array(A);rLB.randomFillSync(I);for(let Z=0;Z<A;Z++)Q+=B[I[Z]%D];return Q},aEA={isNode:!0,classes:{URLSearchParams:lEA,FormData:x61,Blob:typeof Blob!=="undefined"&&Blob||null},ALPHABET:nEA,generateString:sLB,protocols:["http","https","file","data"]};var JR1={};Ox(JR1,{origin:()=>eLB,navigator:()=>YR1,hasStandardBrowserWebWorkerEnv:()=>tLB,hasStandardBrowserEnv:()=>oLB,hasBrowserEnv:()=>WR1});var WR1=typeof window!=="undefined"&&typeof document!=="undefined",YR1=typeof navigator==="object"&&navigator||void 0,oLB=WR1&&(!YR1||["ReactNative","NativeScript","NS"].indexOf(YR1.product)<0),tLB=(()=>{return typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function"})(),eLB=WR1&&window.location.href||"http://localhost";var c6={...JR1,...aEA};function CR1(A,B){return cL(A,new c6.classes.URLSearchParams,Object.assign({visitor:function(Q,D,I,Z){if(c6.isNode&&HA.isBuffer(Q))return this.append(D,Q.toString("base64")),!1;return Z.defaultVisitor.apply(this,arguments)}},B))}function AMB(A){return HA.matchAll(/\w+|\[(\w*)]/g,A).map((B)=>{return B[0]==="[]"?"":B[1]||B[0]})}function BMB(A){let B={},Q=Object.keys(A),D,I=Q.length,Z;for(D=0;D<I;D++)Z=Q[D],B[Z]=A[Z];return B}function QMB(A){function B(Q,D,I,Z){let G=Q[Z++];if(G==="__proto__")return!0;let F=Number.isFinite(+G),Y=Z>=Q.length;if(G=!G&&HA.isArray(I)?I.length:G,Y){if(HA.hasOwnProp(I,G))I[G]=[I[G],D];else I[G]=D;return!F}if(!I[G]||!HA.isObject(I[G]))I[G]=[];if(B(Q,D,I[G],Z)&&HA.isArray(I[G]))I[G]=BMB(I[G]);return!F}if(HA.isFormData(A)&&HA.isFunction(A.entries)){let Q={};return HA.forEachEntry(A,(D,I)=>{B(AMB(D),I,Q,0)}),Q}return null}var f61=QMB;function DMB(A,B,Q){if(HA.isString(A))try{return(B||JSON.parse)(A),HA.trim(A)}catch(D){if(D.name!=="SyntaxError")throw D}return(Q||JSON.stringify)(A)}var XR1={transitional:gf,adapter:["xhr","http","fetch"],transformRequest:[function A(B,Q){let D=Q.getContentType()||"",I=D.indexOf("application/json")>-1,Z=HA.isObject(B);if(Z&&HA.isHTMLForm(B))B=new FormData(B);if(HA.isFormData(B))return I?JSON.stringify(f61(B)):B;if(HA.isArrayBuffer(B)||HA.isBuffer(B)||HA.isStream(B)||HA.isFile(B)||HA.isBlob(B)||HA.isReadableStream(B))return B;if(HA.isArrayBufferView(B))return B.buffer;if(HA.isURLSearchParams(B))return Q.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),B.toString();let F;if(Z){if(D.indexOf("application/x-www-form-urlencoded")>-1)return CR1(B,this.formSerializer).toString();if((F=HA.isFileList(B))||D.indexOf("multipart/form-data")>-1){let Y=this.env&&this.env.FormData;return cL(F?{"files[]":B}:B,Y&&new Y,this.formSerializer)}}if(Z||I)return Q.setContentType("application/json",!1),DMB(B);return B}],transformResponse:[function A(B){let Q=this.transitional||XR1.transitional,D=Q&&Q.forcedJSONParsing,I=this.responseType==="json";if(HA.isResponse(B)||HA.isReadableStream(B))return B;if(B&&HA.isString(B)&&(D&&!this.responseType||I)){let G=!(Q&&Q.silentJSONParsing)&&I;try{return JSON.parse(B)}catch(F){if(G){if(F.name==="SyntaxError")throw L2.from(F,L2.ERR_BAD_RESPONSE,this,null,this.response);throw F}}}return B}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:c6.classes.FormData,Blob:c6.classes.Blob},validateStatus:function A(B){return B>=200&&B<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};HA.forEach(["delete","get","head","post","put","patch"],(A)=>{XR1.headers[A]={}});var hf=XR1;var IMB=HA.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),rEA=(A)=>{let B={},Q,D,I;return A&&A.split(`
526
+ `)}),this}_outputHelpIfRequested(A){let B=this._getHelpOption();if(B&&A.find((D)=>B.is(D)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function Mu2(A){return A.map((B)=>{if(!B.startsWith("--inspect"))return B;let Q,D="127.0.0.1",I="9229",Z;if((Z=B.match(/^(--inspect(-brk)?)$/))!==null)Q=Z[1];else if((Z=B.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(Q=Z[1],/^\d+$/.test(Z[3]))I=Z[3];else D=Z[3];else if((Z=B.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)Q=Z[1],D=Z[3],I=Z[4];if(Q&&I!=="0")return`${Q}=${D}:${parseInt(I)+1}`;return B})}if6.Command=tQA});var Su2=H((sf6)=>{var{Argument:Ou2}=DN1(),{Command:eQA}=Ru2(),{CommanderError:af6,InvalidArgumentError:Tu2}=T21(),{Help:rf6}=nQA(),{Option:Pu2}=aQA();sf6.program=new eQA;sf6.createCommand=(A)=>new eQA(A);sf6.createOption=(A,B)=>new Pu2(A,B);sf6.createArgument=(A,B)=>new Ou2(A,B);sf6.Command=eQA;sf6.Option=Pu2;sf6.Argument=Ou2;sf6.Help=rf6;sf6.CommanderError=af6;sf6.InvalidArgumentError=Tu2;sf6.InvalidOptionArgumentError=Tu2});var ju2=H((lJ,_u2)=>{var jE=Su2();lJ=_u2.exports={};lJ.program=new jE.Command;lJ.Argument=jE.Argument;lJ.Command=jE.Command;lJ.CommanderError=jE.CommanderError;lJ.Help=jE.Help;lJ.InvalidArgumentError=jE.InvalidArgumentError;lJ.InvalidOptionArgumentError=jE.InvalidArgumentError;lJ.Option=jE.Option;lJ.createCommand=(A)=>new jE.Command(A);lJ.createOption=(A,B)=>new jE.Option(A,B);lJ.createArgument=(A,B)=>new jE.Argument(A,B)});import{cwd as J8A}from"process";import{randomUUID as C8A}from"crypto";var Nm2=typeof global=="object"&&global&&global.Object===Object&&global,PB1=Nm2;var qm2=typeof self=="object"&&self&&self.Object===Object&&self,$m2=PB1||qm2||Function("return this")(),f7=$m2;var Lm2=f7.Symbol,lD=Lm2;var C6A=Object.prototype,Mm2=C6A.hasOwnProperty,Rm2=C6A.toString,Hl=lD?lD.toStringTag:void 0;function Om2(A){var B=Mm2.call(A,Hl),Q=A[Hl];try{A[Hl]=void 0;var D=!0}catch(Z){}var I=Rm2.call(A);if(D)if(B)A[Hl]=Q;else delete A[Hl];return I}var X6A=Om2;var Tm2=Object.prototype,Pm2=Tm2.toString;function Sm2(A){return Pm2.call(A)}var V6A=Sm2;var _m2="[object Null]",jm2="[object Undefined]",K6A=lD?lD.toStringTag:void 0;function ym2(A){if(A==null)return A===void 0?jm2:_m2;return K6A&&K6A in Object(A)?X6A(A):V6A(A)}var fW=ym2;function km2(A){return A!=null&&typeof A=="object"}var UD=km2;var xm2="[object Symbol]";function fm2(A){return typeof A=="symbol"||UD(A)&&fW(A)==xm2}var Tx=fm2;function vm2(A,B){var Q=-1,D=A==null?0:A.length,I=Array(D);while(++Q<D)I[Q]=B(A[Q],Q,A);return I}var Px=vm2;var bm2=Array.isArray,l4=bm2;var gm2=1/0,E6A=lD?lD.prototype:void 0,H6A=E6A?E6A.toString:void 0;function z6A(A){if(typeof A=="string")return A;if(l4(A))return Px(A,z6A)+"";if(Tx(A))return H6A?H6A.call(A):"";var B=A+"";return B=="0"&&1/A==-gm2?"-0":B}var U6A=z6A;function hm2(A){var B=typeof A;return A!=null&&(B=="object"||B=="function")}var j8=hm2;function um2(A){return A}var Sx=um2;var mm2="[object AsyncFunction]",dm2="[object Function]",cm2="[object GeneratorFunction]",pm2="[object Proxy]";function lm2(A){if(!j8(A))return!1;var B=fW(A);return B==dm2||B==cm2||B==mm2||B==pm2}var _x=lm2;var im2=f7["__core-js_shared__"],SB1=im2;var w6A=function(){var A=/[^.]+$/.exec(SB1&&SB1.keys&&SB1.keys.IE_PROTO||"");return A?"Symbol(src)_1."+A:""}();function nm2(A){return!!w6A&&w6A in A}var N6A=nm2;var am2=Function.prototype,rm2=am2.toString;function sm2(A){if(A!=null){try{return rm2.call(A)}catch(B){}try{return A+""}catch(B){}}return""}var tw=sm2;var om2=/[\\^$.*+?()[\]{}|]/g,tm2=/^\[object .+?Constructor\]$/,em2=Function.prototype,Ad2=Object.prototype,Bd2=em2.toString,Qd2=Ad2.hasOwnProperty,Dd2=RegExp("^"+Bd2.call(Qd2).replace(om2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Id2(A){if(!j8(A)||N6A(A))return!1;var B=_x(A)?Dd2:tm2;return B.test(tw(A))}var q6A=Id2;function Zd2(A,B){return A==null?void 0:A[B]}var $6A=Zd2;function Gd2(A,B){var Q=$6A(A,B);return q6A(Q)?Q:void 0}var BY=Gd2;var Fd2=BY(f7,"WeakMap"),_B1=Fd2;var L6A=Object.create,Yd2=function(){function A(){}return function(B){if(!j8(B))return{};if(L6A)return L6A(B);A.prototype=B;var Q=new A;return A.prototype=void 0,Q}}(),M6A=Yd2;function Wd2(A,B,Q){switch(Q.length){case 0:return A.call(B);case 1:return A.call(B,Q[0]);case 2:return A.call(B,Q[0],Q[1]);case 3:return A.call(B,Q[0],Q[1],Q[2])}return A.apply(B,Q)}var R6A=Wd2;function Jd2(){}var O6A=Jd2;function Cd2(A,B){var Q=-1,D=A.length;B||(B=Array(D));while(++Q<D)B[Q]=A[Q];return B}var jB1=Cd2;var Xd2=800,Vd2=16,Kd2=Date.now;function Ed2(A){var B=0,Q=0;return function(){var D=Kd2(),I=Vd2-(D-Q);if(Q=D,I>0){if(++B>=Xd2)return arguments[0]}else B=0;return A.apply(void 0,arguments)}}var T6A=Ed2;function Hd2(A){return function(){return A}}var P6A=Hd2;var zd2=function(){try{var A=BY(Object,"defineProperty");return A({},"",{}),A}catch(B){}}(),jx=zd2;var Ud2=!jx?Sx:function(A,B){return jx(A,"toString",{configurable:!0,enumerable:!1,value:P6A(B),writable:!0})},S6A=Ud2;var wd2=T6A(S6A),yB1=wd2;function Nd2(A,B){var Q=-1,D=A==null?0:A.length;while(++Q<D)if(B(A[Q],Q,A)===!1)break;return A}var _6A=Nd2;function qd2(A,B,Q,D){var I=A.length,Z=Q+(D?1:-1);while(D?Z--:++Z<I)if(B(A[Z],Z,A))return Z;return-1}var j6A=qd2;function $d2(A){return A!==A}var y6A=$d2;function Ld2(A,B,Q){var D=Q-1,I=A.length;while(++D<I)if(A[D]===B)return D;return-1}var k6A=Ld2;function Md2(A,B,Q){return B===B?k6A(A,B,Q):j6A(A,y6A,Q)}var x6A=Md2;function Rd2(A,B){var Q=A==null?0:A.length;return!!Q&&x6A(A,B,0)>-1}var f6A=Rd2;var Od2=9007199254740991,Td2=/^(?:0|[1-9]\d*)$/;function Pd2(A,B){var Q=typeof A;return B=B==null?Od2:B,!!B&&(Q=="number"||Q!="symbol"&&Td2.test(A))&&(A>-1&&A%1==0&&A<B)}var LL=Pd2;function Sd2(A,B,Q){if(B=="__proto__"&&jx)jx(A,B,{configurable:!0,enumerable:!0,value:Q,writable:!0});else A[B]=Q}var ML=Sd2;function _d2(A,B){return A===B||A!==A&&B!==B}var VH=_d2;var jd2=Object.prototype,yd2=jd2.hasOwnProperty;function kd2(A,B,Q){var D=A[B];if(!(yd2.call(A,B)&&VH(D,Q))||Q===void 0&&!(B in A))ML(A,B,Q)}var RL=kd2;function xd2(A,B,Q,D){var I=!Q;Q||(Q={});var Z=-1,G=B.length;while(++Z<G){var F=B[Z],Y=D?D(Q[F],A[F],F,Q,A):void 0;if(Y===void 0)Y=A[F];if(I)ML(Q,F,Y);else RL(Q,F,Y)}return Q}var KH=xd2;var v6A=Math.max;function fd2(A,B,Q){return B=v6A(B===void 0?A.length-1:B,0),function(){var D=arguments,I=-1,Z=v6A(D.length-B,0),G=Array(Z);while(++I<Z)G[I]=D[B+I];I=-1;var F=Array(B+1);while(++I<B)F[I]=D[I];return F[B]=Q(G),R6A(A,this,F)}}var kB1=fd2;function vd2(A,B){return yB1(kB1(A,B,Sx),A+"")}var b6A=vd2;var bd2=9007199254740991;function gd2(A){return typeof A=="number"&&A>-1&&A%1==0&&A<=bd2}var yx=gd2;function hd2(A){return A!=null&&yx(A.length)&&!_x(A)}var EH=hd2;function ud2(A,B,Q){if(!j8(Q))return!1;var D=typeof B;if(D=="number"?EH(Q)&&LL(B,Q.length):D=="string"&&(B in Q))return VH(Q[B],A);return!1}var g6A=ud2;function md2(A){return b6A(function(B,Q){var D=-1,I=Q.length,Z=I>1?Q[I-1]:void 0,G=I>2?Q[2]:void 0;if(Z=A.length>3&&typeof Z=="function"?(I--,Z):void 0,G&&g6A(Q[0],Q[1],G))Z=I<3?void 0:Z,I=1;B=Object(B);while(++D<I){var F=Q[D];if(F)A(B,F,D,Z)}return B})}var h6A=md2;var dd2=Object.prototype;function cd2(A){var B=A&&A.constructor,Q=typeof B=="function"&&B.prototype||dd2;return A===Q}var kx=cd2;function pd2(A,B){var Q=-1,D=Array(A);while(++Q<A)D[Q]=B(Q);return D}var u6A=pd2;var ld2="[object Arguments]";function id2(A){return UD(A)&&fW(A)==ld2}var Hq1=id2;var m6A=Object.prototype,nd2=m6A.hasOwnProperty,ad2=m6A.propertyIsEnumerable,rd2=Hq1(function(){return arguments}())?Hq1:function(A){return UD(A)&&nd2.call(A,"callee")&&!ad2.call(A,"callee")},ew=rd2;var fB1={};Ox(fB1,{default:()=>HH});function sd2(){return!1}var d6A=sd2;var l6A=typeof fB1=="object"&&fB1&&!fB1.nodeType&&fB1,c6A=l6A&&typeof xB1=="object"&&xB1&&!xB1.nodeType&&xB1,od2=c6A&&c6A.exports===l6A,p6A=od2?f7.Buffer:void 0,td2=p6A?p6A.isBuffer:void 0,ed2=td2||d6A,HH=ed2;var Ac2="[object Arguments]",Bc2="[object Array]",Qc2="[object Boolean]",Dc2="[object Date]",Ic2="[object Error]",Zc2="[object Function]",Gc2="[object Map]",Fc2="[object Number]",Yc2="[object Object]",Wc2="[object RegExp]",Jc2="[object Set]",Cc2="[object String]",Xc2="[object WeakMap]",Vc2="[object ArrayBuffer]",Kc2="[object DataView]",Ec2="[object Float32Array]",Hc2="[object Float64Array]",zc2="[object Int8Array]",Uc2="[object Int16Array]",wc2="[object Int32Array]",Nc2="[object Uint8Array]",qc2="[object Uint8ClampedArray]",$c2="[object Uint16Array]",Lc2="[object Uint32Array]",W8={};W8[Ec2]=W8[Hc2]=W8[zc2]=W8[Uc2]=W8[wc2]=W8[Nc2]=W8[qc2]=W8[$c2]=W8[Lc2]=!0;W8[Ac2]=W8[Bc2]=W8[Vc2]=W8[Qc2]=W8[Kc2]=W8[Dc2]=W8[Ic2]=W8[Zc2]=W8[Gc2]=W8[Fc2]=W8[Yc2]=W8[Wc2]=W8[Jc2]=W8[Cc2]=W8[Xc2]=!1;function Mc2(A){return UD(A)&&yx(A.length)&&!!W8[fW(A)]}var i6A=Mc2;function Rc2(A){return function(B){return A(B)}}var xx=Rc2;var bB1={};Ox(bB1,{default:()=>zH});var n6A=typeof bB1=="object"&&bB1&&!bB1.nodeType&&bB1,zl=n6A&&typeof vB1=="object"&&vB1&&!vB1.nodeType&&vB1,Oc2=zl&&zl.exports===n6A,zq1=Oc2&&PB1.process,Tc2=function(){try{var A=zl&&zl.require&&zl.require("util").types;if(A)return A;return zq1&&zq1.binding&&zq1.binding("util")}catch(B){}}(),zH=Tc2;var a6A=zH&&zH.isTypedArray,Pc2=a6A?xx(a6A):i6A,fx=Pc2;var Sc2=Object.prototype,_c2=Sc2.hasOwnProperty;function jc2(A,B){var Q=l4(A),D=!Q&&ew(A),I=!Q&&!D&&HH(A),Z=!Q&&!D&&!I&&fx(A),G=Q||D||I||Z,F=G?u6A(A.length,String):[],Y=F.length;for(var W in A)if((B||_c2.call(A,W))&&!(G&&(W=="length"||I&&(W=="offset"||W=="parent")||Z&&(W=="buffer"||W=="byteLength"||W=="byteOffset")||LL(W,Y))))F.push(W);return F}var gB1=jc2;function yc2(A,B){return function(Q){return A(B(Q))}}var hB1=yc2;var kc2=hB1(Object.keys,Object),r6A=kc2;var xc2=Object.prototype,fc2=xc2.hasOwnProperty;function vc2(A){if(!kx(A))return r6A(A);var B=[];for(var Q in Object(A))if(fc2.call(A,Q)&&Q!="constructor")B.push(Q);return B}var s6A=vc2;function bc2(A){return EH(A)?gB1(A):s6A(A)}var wC=bc2;function gc2(A){var B=[];if(A!=null)for(var Q in Object(A))B.push(Q);return B}var o6A=gc2;var hc2=Object.prototype,uc2=hc2.hasOwnProperty;function mc2(A){if(!j8(A))return o6A(A);var B=kx(A),Q=[];for(var D in A)if(!(D=="constructor"&&(B||!uc2.call(A,D))))Q.push(D);return Q}var t6A=mc2;function dc2(A){return EH(A)?gB1(A,!0):t6A(A)}var UH=dc2;var cc2=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pc2=/^\w*$/;function lc2(A,B){if(l4(A))return!1;var Q=typeof A;if(Q=="number"||Q=="symbol"||Q=="boolean"||A==null||Tx(A))return!0;return pc2.test(A)||!cc2.test(A)||B!=null&&A in Object(B)}var vx=lc2;var ic2=BY(Object,"create"),AN=ic2;function nc2(){this.__data__=AN?AN(null):{},this.size=0}var e6A=nc2;function ac2(A){var B=this.has(A)&&delete this.__data__[A];return this.size-=B?1:0,B}var A4A=ac2;var rc2="__lodash_hash_undefined__",sc2=Object.prototype,oc2=sc2.hasOwnProperty;function tc2(A){var B=this.__data__;if(AN){var Q=B[A];return Q===rc2?void 0:Q}return oc2.call(B,A)?B[A]:void 0}var B4A=tc2;var ec2=Object.prototype,Ap2=ec2.hasOwnProperty;function Bp2(A){var B=this.__data__;return AN?B[A]!==void 0:Ap2.call(B,A)}var Q4A=Bp2;var Qp2="__lodash_hash_undefined__";function Dp2(A,B){var Q=this.__data__;return this.size+=this.has(A)?0:1,Q[A]=AN&&B===void 0?Qp2:B,this}var D4A=Dp2;function bx(A){var B=-1,Q=A==null?0:A.length;this.clear();while(++B<Q){var D=A[B];this.set(D[0],D[1])}}bx.prototype.clear=e6A;bx.prototype.delete=A4A;bx.prototype.get=B4A;bx.prototype.has=Q4A;bx.prototype.set=D4A;var Uq1=bx;function Ip2(){this.__data__=[],this.size=0}var I4A=Ip2;function Zp2(A,B){var Q=A.length;while(Q--)if(VH(A[Q][0],B))return Q;return-1}var OL=Zp2;var Gp2=Array.prototype,Fp2=Gp2.splice;function Yp2(A){var B=this.__data__,Q=OL(B,A);if(Q<0)return!1;var D=B.length-1;if(Q==D)B.pop();else Fp2.call(B,Q,1);return--this.size,!0}var Z4A=Yp2;function Wp2(A){var B=this.__data__,Q=OL(B,A);return Q<0?void 0:B[Q][1]}var G4A=Wp2;function Jp2(A){return OL(this.__data__,A)>-1}var F4A=Jp2;function Cp2(A,B){var Q=this.__data__,D=OL(Q,A);if(D<0)++this.size,Q.push([A,B]);else Q[D][1]=B;return this}var Y4A=Cp2;function gx(A){var B=-1,Q=A==null?0:A.length;this.clear();while(++B<Q){var D=A[B];this.set(D[0],D[1])}}gx.prototype.clear=I4A;gx.prototype.delete=Z4A;gx.prototype.get=G4A;gx.prototype.has=F4A;gx.prototype.set=Y4A;var TL=gx;var Xp2=BY(f7,"Map"),PL=Xp2;function Vp2(){this.size=0,this.__data__={hash:new Uq1,map:new(PL||TL),string:new Uq1}}var W4A=Vp2;function Kp2(A){var B=typeof A;return B=="string"||B=="number"||B=="symbol"||B=="boolean"?A!=="__proto__":A===null}var J4A=Kp2;function Ep2(A,B){var Q=A.__data__;return J4A(B)?Q[typeof B=="string"?"string":"hash"]:Q.map}var SL=Ep2;function Hp2(A){var B=SL(this,A).delete(A);return this.size-=B?1:0,B}var C4A=Hp2;function zp2(A){return SL(this,A).get(A)}var X4A=zp2;function Up2(A){return SL(this,A).has(A)}var V4A=Up2;function wp2(A,B){var Q=SL(this,A),D=Q.size;return Q.set(A,B),this.size+=Q.size==D?0:1,this}var K4A=wp2;function hx(A){var B=-1,Q=A==null?0:A.length;this.clear();while(++B<Q){var D=A[B];this.set(D[0],D[1])}}hx.prototype.clear=W4A;hx.prototype.delete=C4A;hx.prototype.get=X4A;hx.prototype.has=V4A;hx.prototype.set=K4A;var tP=hx;var Np2="Expected a function";function wq1(A,B){if(typeof A!="function"||B!=null&&typeof B!="function")throw new TypeError(Np2);var Q=function(){var D=arguments,I=B?B.apply(this,D):D[0],Z=Q.cache;if(Z.has(I))return Z.get(I);var G=A.apply(this,D);return Q.cache=Z.set(I,G)||Z,G};return Q.cache=new(wq1.Cache||tP),Q}wq1.Cache=tP;var T0=wq1;var qp2=500;function $p2(A){var B=T0(A,function(D){if(Q.size===qp2)Q.clear();return D}),Q=B.cache;return B}var E4A=$p2;var Lp2=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mp2=/\\(\\)?/g,Rp2=E4A(function(A){var B=[];if(A.charCodeAt(0)===46)B.push("");return A.replace(Lp2,function(Q,D,I,Z){B.push(I?Z.replace(Mp2,"$1"):D||Q)}),B}),H4A=Rp2;function Op2(A){return A==null?"":U6A(A)}var ux=Op2;function Tp2(A,B){if(l4(A))return A;return vx(A,B)?[A]:H4A(ux(A))}var _L=Tp2;var Pp2=1/0;function Sp2(A){if(typeof A=="string"||Tx(A))return A;var B=A+"";return B=="0"&&1/A==-Pp2?"-0":B}var wH=Sp2;function _p2(A,B){B=_L(B,A);var Q=0,D=B.length;while(A!=null&&Q<D)A=A[wH(B[Q++])];return Q&&Q==D?A:void 0}var mx=_p2;function jp2(A,B,Q){var D=A==null?void 0:mx(A,B);return D===void 0?Q:D}var z4A=jp2;function yp2(A,B){var Q=-1,D=B.length,I=A.length;while(++Q<D)A[I+Q]=B[Q];return A}var dx=yp2;var U4A=lD?lD.isConcatSpreadable:void 0;function kp2(A){return l4(A)||ew(A)||!!(U4A&&A&&A[U4A])}var w4A=kp2;function N4A(A,B,Q,D,I){var Z=-1,G=A.length;Q||(Q=w4A),I||(I=[]);while(++Z<G){var F=A[Z];if(B>0&&Q(F))if(B>1)N4A(F,B-1,Q,D,I);else dx(I,F);else if(!D)I[I.length]=F}return I}var q4A=N4A;function xp2(A){var B=A==null?0:A.length;return B?q4A(A,1):[]}var $4A=xp2;function fp2(A){return yB1(kB1(A,void 0,$4A),A+"")}var L4A=fp2;var vp2=hB1(Object.getPrototypeOf,Object),cx=vp2;var bp2="[object Object]",gp2=Function.prototype,hp2=Object.prototype,M4A=gp2.toString,up2=hp2.hasOwnProperty,mp2=M4A.call(Object);function dp2(A){if(!UD(A)||fW(A)!=bp2)return!1;var B=cx(A);if(B===null)return!0;var Q=up2.call(B,"constructor")&&B.constructor;return typeof Q=="function"&&Q instanceof Q&&M4A.call(Q)==mp2}var Ul=dp2;function cp2(A,B,Q){var D=-1,I=A.length;if(B<0)B=-B>I?0:I+B;if(Q=Q>I?I:Q,Q<0)Q+=I;I=B>Q?0:Q-B>>>0,B>>>=0;var Z=Array(I);while(++D<I)Z[D]=A[D+B];return Z}var R4A=cp2;function pp2(A,B,Q){var D=A.length;return Q=Q===void 0?D:Q,!B&&Q>=D?A:R4A(A,B,Q)}var O4A=pp2;var lp2="\\ud800-\\udfff",ip2="\\u0300-\\u036f",np2="\\ufe20-\\ufe2f",ap2="\\u20d0-\\u20ff",rp2=ip2+np2+ap2,sp2="\\ufe0e\\ufe0f",op2="\\u200d",tp2=RegExp("["+op2+lp2+rp2+sp2+"]");function ep2(A){return tp2.test(A)}var uB1=ep2;function Al2(A){return A.split("")}var T4A=Al2;var P4A="\\ud800-\\udfff",Bl2="\\u0300-\\u036f",Ql2="\\ufe20-\\ufe2f",Dl2="\\u20d0-\\u20ff",Il2=Bl2+Ql2+Dl2,Zl2="\\ufe0e\\ufe0f",Gl2="["+P4A+"]",Nq1="["+Il2+"]",qq1="\\ud83c[\\udffb-\\udfff]",Fl2="(?:"+Nq1+"|"+qq1+")",S4A="[^"+P4A+"]",_4A="(?:\\ud83c[\\udde6-\\uddff]){2}",j4A="[\\ud800-\\udbff][\\udc00-\\udfff]",Yl2="\\u200d",y4A=Fl2+"?",k4A="["+Zl2+"]?",Wl2="(?:"+Yl2+"(?:"+[S4A,_4A,j4A].join("|")+")"+k4A+y4A+")*",Jl2=k4A+y4A+Wl2,Cl2="(?:"+[S4A+Nq1+"?",Nq1,_4A,j4A,Gl2].join("|")+")",Xl2=RegExp(qq1+"(?="+qq1+")|"+Cl2+Jl2,"g");function Vl2(A){return A.match(Xl2)||[]}var x4A=Vl2;function Kl2(A){return uB1(A)?x4A(A):T4A(A)}var f4A=Kl2;function El2(A){return function(B){B=ux(B);var Q=uB1(B)?f4A(B):void 0,D=Q?Q[0]:B.charAt(0),I=Q?O4A(Q,1).join(""):B.slice(1);return D[A]()+I}}var v4A=El2;var Hl2=v4A("toUpperCase"),b4A=Hl2;function zl2(A){return b4A(ux(A).toLowerCase())}var $q1=zl2;function Ul2(){this.__data__=new TL,this.size=0}var g4A=Ul2;function wl2(A){var B=this.__data__,Q=B.delete(A);return this.size=B.size,Q}var h4A=wl2;function Nl2(A){return this.__data__.get(A)}var u4A=Nl2;function ql2(A){return this.__data__.has(A)}var m4A=ql2;var $l2=200;function Ll2(A,B){var Q=this.__data__;if(Q instanceof TL){var D=Q.__data__;if(!PL||D.length<$l2-1)return D.push([A,B]),this.size=++Q.size,this;Q=this.__data__=new tP(D)}return Q.set(A,B),this.size=Q.size,this}var d4A=Ll2;function px(A){var B=this.__data__=new TL(A);this.size=B.size}px.prototype.clear=g4A;px.prototype.delete=h4A;px.prototype.get=u4A;px.prototype.has=m4A;px.prototype.set=d4A;var NH=px;function Ml2(A,B){return A&&KH(B,wC(B),A)}var c4A=Ml2;function Rl2(A,B){return A&&KH(B,UH(B),A)}var p4A=Rl2;var dB1={};Ox(dB1,{default:()=>wl});var a4A=typeof dB1=="object"&&dB1&&!dB1.nodeType&&dB1,l4A=a4A&&typeof mB1=="object"&&mB1&&!mB1.nodeType&&mB1,Ol2=l4A&&l4A.exports===a4A,i4A=Ol2?f7.Buffer:void 0,n4A=i4A?i4A.allocUnsafe:void 0;function Tl2(A,B){if(B)return A.slice();var Q=A.length,D=n4A?n4A(Q):new A.constructor(Q);return A.copy(D),D}var wl=Tl2;function Pl2(A,B){var Q=-1,D=A==null?0:A.length,I=0,Z=[];while(++Q<D){var G=A[Q];if(B(G,Q,A))Z[I++]=G}return Z}var r4A=Pl2;function Sl2(){return[]}var cB1=Sl2;var _l2=Object.prototype,jl2=_l2.propertyIsEnumerable,s4A=Object.getOwnPropertySymbols,yl2=!s4A?cB1:function(A){if(A==null)return[];return A=Object(A),r4A(s4A(A),function(B){return jl2.call(A,B)})},lx=yl2;function kl2(A,B){return KH(A,lx(A),B)}var o4A=kl2;var xl2=Object.getOwnPropertySymbols,fl2=!xl2?cB1:function(A){var B=[];while(A)dx(B,lx(A)),A=cx(A);return B},pB1=fl2;function vl2(A,B){return KH(A,pB1(A),B)}var t4A=vl2;function bl2(A,B,Q){var D=B(A);return l4(A)?D:dx(D,Q(A))}var lB1=bl2;function gl2(A){return lB1(A,wC,lx)}var Nl=gl2;function hl2(A){return lB1(A,UH,pB1)}var iB1=hl2;var ul2=BY(f7,"DataView"),nB1=ul2;var ml2=BY(f7,"Promise"),aB1=ml2;var dl2=BY(f7,"Set"),jL=dl2;var e4A="[object Map]",cl2="[object Object]",A3A="[object Promise]",B3A="[object Set]",Q3A="[object WeakMap]",D3A="[object DataView]",pl2=tw(nB1),ll2=tw(PL),il2=tw(aB1),nl2=tw(jL),al2=tw(_B1),eP=fW;if(nB1&&eP(new nB1(new ArrayBuffer(1)))!=D3A||PL&&eP(new PL)!=e4A||aB1&&eP(aB1.resolve())!=A3A||jL&&eP(new jL)!=B3A||_B1&&eP(new _B1)!=Q3A)eP=function(A){var B=fW(A),Q=B==cl2?A.constructor:void 0,D=Q?tw(Q):"";if(D)switch(D){case pl2:return D3A;case ll2:return e4A;case il2:return A3A;case nl2:return B3A;case al2:return Q3A}return B};var BN=eP;var rl2=Object.prototype,sl2=rl2.hasOwnProperty;function ol2(A){var B=A.length,Q=new A.constructor(B);if(B&&typeof A[0]=="string"&&sl2.call(A,"index"))Q.index=A.index,Q.input=A.input;return Q}var I3A=ol2;var tl2=f7.Uint8Array,ix=tl2;function el2(A){var B=new A.constructor(A.byteLength);return new ix(B).set(new ix(A)),B}var nx=el2;function Ai2(A,B){var Q=B?nx(A.buffer):A.buffer;return new A.constructor(Q,A.byteOffset,A.byteLength)}var Z3A=Ai2;var Bi2=/\w*$/;function Qi2(A){var B=new A.constructor(A.source,Bi2.exec(A));return B.lastIndex=A.lastIndex,B}var G3A=Qi2;var F3A=lD?lD.prototype:void 0,Y3A=F3A?F3A.valueOf:void 0;function Di2(A){return Y3A?Object(Y3A.call(A)):{}}var W3A=Di2;function Ii2(A,B){var Q=B?nx(A.buffer):A.buffer;return new A.constructor(Q,A.byteOffset,A.length)}var rB1=Ii2;var Zi2="[object Boolean]",Gi2="[object Date]",Fi2="[object Map]",Yi2="[object Number]",Wi2="[object RegExp]",Ji2="[object Set]",Ci2="[object String]",Xi2="[object Symbol]",Vi2="[object ArrayBuffer]",Ki2="[object DataView]",Ei2="[object Float32Array]",Hi2="[object Float64Array]",zi2="[object Int8Array]",Ui2="[object Int16Array]",wi2="[object Int32Array]",Ni2="[object Uint8Array]",qi2="[object Uint8ClampedArray]",$i2="[object Uint16Array]",Li2="[object Uint32Array]";function Mi2(A,B,Q){var D=A.constructor;switch(B){case Vi2:return nx(A);case Zi2:case Gi2:return new D(+A);case Ki2:return Z3A(A,Q);case Ei2:case Hi2:case zi2:case Ui2:case wi2:case Ni2:case qi2:case $i2:case Li2:return rB1(A,Q);case Fi2:return new D;case Yi2:case Ci2:return new D(A);case Wi2:return G3A(A);case Ji2:return new D;case Xi2:return W3A(A)}}var J3A=Mi2;function Ri2(A){return typeof A.constructor=="function"&&!kx(A)?M6A(cx(A)):{}}var sB1=Ri2;var Oi2="[object Map]";function Ti2(A){return UD(A)&&BN(A)==Oi2}var C3A=Ti2;var X3A=zH&&zH.isMap,Pi2=X3A?xx(X3A):C3A,V3A=Pi2;var Si2="[object Set]";function _i2(A){return UD(A)&&BN(A)==Si2}var K3A=_i2;var E3A=zH&&zH.isSet,ji2=E3A?xx(E3A):K3A,H3A=ji2;var yi2=1,ki2=2,xi2=4,z3A="[object Arguments]",fi2="[object Array]",vi2="[object Boolean]",bi2="[object Date]",gi2="[object Error]",U3A="[object Function]",hi2="[object GeneratorFunction]",ui2="[object Map]",mi2="[object Number]",w3A="[object Object]",di2="[object RegExp]",ci2="[object Set]",pi2="[object String]",li2="[object Symbol]",ii2="[object WeakMap]",ni2="[object ArrayBuffer]",ai2="[object DataView]",ri2="[object Float32Array]",si2="[object Float64Array]",oi2="[object Int8Array]",ti2="[object Int16Array]",ei2="[object Int32Array]",An2="[object Uint8Array]",Bn2="[object Uint8ClampedArray]",Qn2="[object Uint16Array]",Dn2="[object Uint32Array]",u3={};u3[z3A]=u3[fi2]=u3[ni2]=u3[ai2]=u3[vi2]=u3[bi2]=u3[ri2]=u3[si2]=u3[oi2]=u3[ti2]=u3[ei2]=u3[ui2]=u3[mi2]=u3[w3A]=u3[di2]=u3[ci2]=u3[pi2]=u3[li2]=u3[An2]=u3[Bn2]=u3[Qn2]=u3[Dn2]=!0;u3[gi2]=u3[U3A]=u3[ii2]=!1;function oB1(A,B,Q,D,I,Z){var G,F=B&yi2,Y=B&ki2,W=B&xi2;if(Q)G=I?Q(A,D,I,Z):Q(A);if(G!==void 0)return G;if(!j8(A))return A;var J=l4(A);if(J){if(G=I3A(A),!F)return jB1(A,G)}else{var C=BN(A),X=C==U3A||C==hi2;if(HH(A))return wl(A,F);if(C==w3A||C==z3A||X&&!I){if(G=Y||X?{}:sB1(A),!F)return Y?t4A(A,p4A(G,A)):o4A(A,c4A(G,A))}else{if(!u3[C])return I?A:{};G=J3A(A,C,F)}}Z||(Z=new NH);var V=Z.get(A);if(V)return V;if(Z.set(A,G),H3A(A))A.forEach(function(U){G.add(oB1(U,B,Q,U,A,Z))});else if(V3A(A))A.forEach(function(U,q){G.set(q,oB1(U,B,Q,q,A,Z))});var K=W?Y?iB1:Nl:Y?UH:wC,E=J?void 0:K(A);return _6A(E||A,function(U,q){if(E)q=U,U=A[q];RL(G,q,oB1(U,B,Q,q,A,Z))}),G}var N3A=oB1;var In2=1,Zn2=4;function Gn2(A){return N3A(A,In2|Zn2)}var ql=Gn2;var Fn2="__lodash_hash_undefined__";function Yn2(A){return this.__data__.set(A,Fn2),this}var q3A=Yn2;function Wn2(A){return this.__data__.has(A)}var $3A=Wn2;function tB1(A){var B=-1,Q=A==null?0:A.length;this.__data__=new tP;while(++B<Q)this.add(A[B])}tB1.prototype.add=tB1.prototype.push=q3A;tB1.prototype.has=$3A;var eB1=tB1;function Jn2(A,B){var Q=-1,D=A==null?0:A.length;while(++Q<D)if(B(A[Q],Q,A))return!0;return!1}var L3A=Jn2;function Cn2(A,B){return A.has(B)}var A91=Cn2;var Xn2=1,Vn2=2;function Kn2(A,B,Q,D,I,Z){var G=Q&Xn2,F=A.length,Y=B.length;if(F!=Y&&!(G&&Y>F))return!1;var W=Z.get(A),J=Z.get(B);if(W&&J)return W==B&&J==A;var C=-1,X=!0,V=Q&Vn2?new eB1:void 0;Z.set(A,B),Z.set(B,A);while(++C<F){var K=A[C],E=B[C];if(D)var U=G?D(E,K,C,B,A,Z):D(K,E,C,A,B,Z);if(U!==void 0){if(U)continue;X=!1;break}if(V){if(!L3A(B,function(q,R){if(!A91(V,R)&&(K===q||I(K,q,Q,D,Z)))return V.push(R)})){X=!1;break}}else if(!(K===E||I(K,E,Q,D,Z))){X=!1;break}}return Z.delete(A),Z.delete(B),X}var B91=Kn2;function En2(A){var B=-1,Q=Array(A.size);return A.forEach(function(D,I){Q[++B]=[I,D]}),Q}var M3A=En2;function Hn2(A){var B=-1,Q=Array(A.size);return A.forEach(function(D){Q[++B]=D}),Q}var ax=Hn2;var zn2=1,Un2=2,wn2="[object Boolean]",Nn2="[object Date]",qn2="[object Error]",$n2="[object Map]",Ln2="[object Number]",Mn2="[object RegExp]",Rn2="[object Set]",On2="[object String]",Tn2="[object Symbol]",Pn2="[object ArrayBuffer]",Sn2="[object DataView]",R3A=lD?lD.prototype:void 0,Lq1=R3A?R3A.valueOf:void 0;function _n2(A,B,Q,D,I,Z,G){switch(Q){case Sn2:if(A.byteLength!=B.byteLength||A.byteOffset!=B.byteOffset)return!1;A=A.buffer,B=B.buffer;case Pn2:if(A.byteLength!=B.byteLength||!Z(new ix(A),new ix(B)))return!1;return!0;case wn2:case Nn2:case Ln2:return VH(+A,+B);case qn2:return A.name==B.name&&A.message==B.message;case Mn2:case On2:return A==B+"";case $n2:var F=M3A;case Rn2:var Y=D&zn2;if(F||(F=ax),A.size!=B.size&&!Y)return!1;var W=G.get(A);if(W)return W==B;D|=Un2,G.set(A,B);var J=B91(F(A),F(B),D,I,Z,G);return G.delete(A),J;case Tn2:if(Lq1)return Lq1.call(A)==Lq1.call(B)}return!1}var O3A=_n2;var jn2=1,yn2=Object.prototype,kn2=yn2.hasOwnProperty;function xn2(A,B,Q,D,I,Z){var G=Q&jn2,F=Nl(A),Y=F.length,W=Nl(B),J=W.length;if(Y!=J&&!G)return!1;var C=Y;while(C--){var X=F[C];if(!(G?X in B:kn2.call(B,X)))return!1}var V=Z.get(A),K=Z.get(B);if(V&&K)return V==B&&K==A;var E=!0;Z.set(A,B),Z.set(B,A);var U=G;while(++C<Y){X=F[C];var q=A[X],R=B[X];if(D)var M=G?D(R,q,X,B,A,Z):D(q,R,X,A,B,Z);if(!(M===void 0?q===R||I(q,R,Q,D,Z):M)){E=!1;break}U||(U=X=="constructor")}if(E&&!U){var T=A.constructor,L=B.constructor;if(T!=L&&(("constructor"in A)&&("constructor"in B))&&!(typeof T=="function"&&T instanceof T&&typeof L=="function"&&L instanceof L))E=!1}return Z.delete(A),Z.delete(B),E}var T3A=xn2;var fn2=1,P3A="[object Arguments]",S3A="[object Array]",Q91="[object Object]",vn2=Object.prototype,_3A=vn2.hasOwnProperty;function bn2(A,B,Q,D,I,Z){var G=l4(A),F=l4(B),Y=G?S3A:BN(A),W=F?S3A:BN(B);Y=Y==P3A?Q91:Y,W=W==P3A?Q91:W;var J=Y==Q91,C=W==Q91,X=Y==W;if(X&&HH(A)){if(!HH(B))return!1;G=!0,J=!1}if(X&&!J)return Z||(Z=new NH),G||fx(A)?B91(A,B,Q,D,I,Z):O3A(A,B,Y,Q,D,I,Z);if(!(Q&fn2)){var V=J&&_3A.call(A,"__wrapped__"),K=C&&_3A.call(B,"__wrapped__");if(V||K){var E=V?A.value():A,U=K?B.value():B;return Z||(Z=new NH),I(E,U,Q,D,Z)}}if(!X)return!1;return Z||(Z=new NH),T3A(A,B,Q,D,I,Z)}var j3A=bn2;function y3A(A,B,Q,D,I){if(A===B)return!0;if(A==null||B==null||!UD(A)&&!UD(B))return A!==A&&B!==B;return j3A(A,B,Q,D,y3A,I)}var rx=y3A;var gn2=1,hn2=2;function un2(A,B,Q,D){var I=Q.length,Z=I,G=!D;if(A==null)return!Z;A=Object(A);while(I--){var F=Q[I];if(G&&F[2]?F[1]!==A[F[0]]:!(F[0]in A))return!1}while(++I<Z){F=Q[I];var Y=F[0],W=A[Y],J=F[1];if(G&&F[2]){if(W===void 0&&!(Y in A))return!1}else{var C=new NH;if(D)var X=D(W,J,Y,A,B,C);if(!(X===void 0?rx(J,W,gn2|hn2,D,C):X))return!1}}return!0}var k3A=un2;function mn2(A){return A===A&&!j8(A)}var D91=mn2;function dn2(A){var B=wC(A),Q=B.length;while(Q--){var D=B[Q],I=A[D];B[Q]=[D,I,D91(I)]}return B}var x3A=dn2;function cn2(A,B){return function(Q){if(Q==null)return!1;return Q[A]===B&&(B!==void 0||(A in Object(Q)))}}var I91=cn2;function pn2(A){var B=x3A(A);if(B.length==1&&B[0][2])return I91(B[0][0],B[0][1]);return function(Q){return Q===A||k3A(Q,A,B)}}var f3A=pn2;function ln2(A,B){return A!=null&&B in Object(A)}var v3A=ln2;function in2(A,B,Q){B=_L(B,A);var D=-1,I=B.length,Z=!1;while(++D<I){var G=wH(B[D]);if(!(Z=A!=null&&Q(A,G)))break;A=A[G]}if(Z||++D!=I)return Z;return I=A==null?0:A.length,!!I&&yx(I)&&LL(G,I)&&(l4(A)||ew(A))}var b3A=in2;function nn2(A,B){return A!=null&&b3A(A,B,v3A)}var Z91=nn2;var an2=1,rn2=2;function sn2(A,B){if(vx(A)&&D91(B))return I91(wH(A),B);return function(Q){var D=z4A(Q,A);return D===void 0&&D===B?Z91(Q,A):rx(B,D,an2|rn2)}}var g3A=sn2;function on2(A){return function(B){return B==null?void 0:B[A]}}var h3A=on2;function tn2(A){return function(B){return mx(B,A)}}var u3A=tn2;function en2(A){return vx(A)?h3A(wH(A)):u3A(A)}var m3A=en2;function Aa2(A){if(typeof A=="function")return A;if(A==null)return Sx;if(typeof A=="object")return l4(A)?g3A(A[0],A[1]):f3A(A);return m3A(A)}var qH=Aa2;function Ba2(A,B,Q,D){var I=-1,Z=A==null?0:A.length;while(++I<Z){var G=A[I];B(D,G,Q(G),A)}return D}var d3A=Ba2;function Qa2(A){return function(B,Q,D){var I=-1,Z=Object(B),G=D(B),F=G.length;while(F--){var Y=G[A?F:++I];if(Q(Z[Y],Y,Z)===!1)break}return B}}var c3A=Qa2;var Da2=c3A(),G91=Da2;function Ia2(A,B){return A&&G91(A,B,wC)}var F91=Ia2;function Za2(A,B){return function(Q,D){if(Q==null)return Q;if(!EH(Q))return A(Q,D);var I=Q.length,Z=B?I:-1,G=Object(Q);while(B?Z--:++Z<I)if(D(G[Z],Z,G)===!1)break;return Q}}var p3A=Za2;var Ga2=p3A(F91),l3A=Ga2;function Fa2(A,B,Q,D){return l3A(A,function(I,Z,G){B(D,I,Q(I),G)}),D}var i3A=Fa2;function Ya2(A,B){return function(Q,D){var I=l4(Q)?d3A:i3A,Z=B?B():{};return I(Q,A,qH(D,2),Z)}}var n3A=Ya2;function Wa2(A,B,Q){if(Q!==void 0&&!VH(A[B],Q)||Q===void 0&&!(B in A))ML(A,B,Q)}var $l=Wa2;function Ja2(A){return UD(A)&&EH(A)}var a3A=Ja2;function Ca2(A,B){if(B==="constructor"&&typeof A[B]==="function")return;if(B=="__proto__")return;return A[B]}var Ll=Ca2;function Xa2(A){return KH(A,UH(A))}var r3A=Xa2;function Va2(A,B,Q,D,I,Z,G){var F=Ll(A,Q),Y=Ll(B,Q),W=G.get(Y);if(W){$l(A,Q,W);return}var J=Z?Z(F,Y,Q+"",A,B,G):void 0,C=J===void 0;if(C){var X=l4(Y),V=!X&&HH(Y),K=!X&&!V&&fx(Y);if(J=Y,X||V||K)if(l4(F))J=F;else if(a3A(F))J=jB1(F);else if(V)C=!1,J=wl(Y,!0);else if(K)C=!1,J=rB1(Y,!0);else J=[];else if(Ul(Y)||ew(Y)){if(J=F,ew(F))J=r3A(F);else if(!j8(F)||_x(F))J=sB1(Y)}else C=!1}if(C)G.set(Y,J),I(J,Y,D,Z,G),G.delete(Y);$l(A,Q,J)}var s3A=Va2;function o3A(A,B,Q,D,I){if(A===B)return;G91(B,function(Z,G){if(I||(I=new NH),j8(Z))s3A(A,B,G,Q,o3A,D,I);else{var F=D?D(Ll(A,G),Z,G+"",A,B,I):void 0;if(F===void 0)F=Z;$l(A,G,F)}},UH)}var t3A=o3A;var Ka2=h6A(function(A,B,Q,D){t3A(A,B,Q,D)}),Mq1=Ka2;function Ea2(A,B,Q){var D=-1,I=A==null?0:A.length;while(++D<I)if(Q(B,A[D]))return!0;return!1}var e3A=Ea2;function Ha2(A){var B=A==null?0:A.length;return B?A[B-1]:void 0}var aI=Ha2;function za2(A,B){return Px(B,function(Q){return A[Q]})}var A8A=za2;function Ua2(A){return A==null?[]:A8A(A,wC(A))}var B8A=Ua2;function wa2(A,B){return rx(A,B)}var Y91=wa2;function Na2(A,B){var Q={};return B=qH(B,3),F91(A,function(D,I,Z){ML(Q,I,B(D,I,Z))}),Q}var NC=Na2;function qa2(A,B){var Q,D=-1,I=A.length;while(++D<I){var Z=B(A[D]);if(Z!==void 0)Q=Q===void 0?Z:Q+Z}return Q}var Q8A=qa2;function $a2(A,B,Q,D){if(!j8(A))return A;B=_L(B,A);var I=-1,Z=B.length,G=Z-1,F=A;while(F!=null&&++I<Z){var Y=wH(B[I]),W=Q;if(Y==="__proto__"||Y==="constructor"||Y==="prototype")return A;if(I!=G){var J=F[Y];if(W=D?D(J,Y,F):void 0,W===void 0)W=j8(J)?J:LL(B[I+1])?[]:{}}RL(F,Y,W),F=F[Y]}return A}var D8A=$a2;function La2(A,B,Q){var D=-1,I=B.length,Z={};while(++D<I){var G=B[D],F=mx(A,G);if(Q(F,G))D8A(Z,_L(G,A),F)}return Z}var W91=La2;function Ma2(A,B){if(A==null)return{};var Q=Px(iB1(A),function(D){return[D]});return B=qH(B),W91(A,Q,function(D,I){return B(D,I[0])})}var Rq1=Ma2;var Ra2=n3A(function(A,B,Q){A[Q?0:1].push(B)},function(){return[[],[]]}),Oq1=Ra2;function Oa2(A,B){return W91(A,B,function(Q,D){return Z91(A,D)})}var I8A=Oa2;var Ta2=L4A(function(A,B){return A==null?{}:I8A(A,B)}),J91=Ta2;var{floor:Pa2,random:Sa2}=Math;function _a2(A,B){return A+Pa2(Sa2()*(B-A+1))}var Z8A=_a2;function ja2(A){var B=A.length;return B?A[Z8A(0,B-1)]:void 0}var C91=ja2;function ya2(A){return C91(B8A(A))}var G8A=ya2;function ka2(A){var B=l4(A)?C91:G8A;return B(A)}var AS=ka2;function xa2(A,B){return A&&A.length?Q8A(A,qH(B,2)):0}var BS=xa2;var fa2=1/0,va2=!(jL&&1/ax(new jL([,-0]))[1]==fa2)?O6A:function(A){return new jL(A)},F8A=va2;var ba2=200;function ga2(A,B,Q){var D=-1,I=f6A,Z=A.length,G=!0,F=[],Y=F;if(Q)G=!1,I=e3A;else if(Z>=ba2){var W=B?null:F8A(A);if(W)return ax(W);G=!1,I=A91,Y=new eB1}else Y=B?[]:F;A:while(++D<Z){var J=A[D],C=B?B(J):J;if(J=Q||J!==0?J:0,G&&C===C){var X=Y.length;while(X--)if(Y[X]===C)continue A;if(B)Y.push(C);F.push(J)}else if(!I(Y,C,Q)){if(Y!==F)Y.push(C);F.push(J)}}return F}var Y8A=ga2;function ha2(A,B){return A&&A.length?Y8A(A,qH(B,2)):[]}var QS=ha2;function ua2(A,B,Q){var D=-1,I=A.length,Z=B.length,G={};while(++D<I){var F=D<Z?B[D]:void 0;Q(G,A[D],F)}return G}var W8A=ua2;function ma2(A,B){return W8A(A||[],B||[],RL)}var Tq1=ma2;function da2(){return{originalCwd:J8A(),totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:J8A(),modelUsage:{},mainLoopModelOverride:void 0,maxRateLimitFallbackActive:!1,initialMainLoopModel:null,modelStrings:null,isNonInteractiveSession:!0,isInteractive:!1,clientType:"cli",meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:C8A(),loggerProvider:null,eventLogger:null}}var FB=da2();function jB(){return FB.sessionId}function X8A(){return FB.sessionId=C8A(),FB.sessionId}function Y9(){return FB.originalCwd}function V8A(){return FB.cwd}function K8A(A){FB.cwd=A}async function E8A(A,B,Q,D,I){FB.totalCostUSD+=A,FB.totalAPIDuration+=B,FB.totalAPIDurationWithoutRetries+=Q;let Z=FB.modelUsage[I]??{inputTokens:0,outputTokens:0,cacheReadInputTokens:0,cacheCreationInputTokens:0,webSearchRequests:0};Z.inputTokens+=D.input_tokens,Z.outputTokens+=D.output_tokens,Z.cacheReadInputTokens+=D.cache_read_input_tokens??0,Z.cacheCreationInputTokens+=D.cache_creation_input_tokens??0,Z.webSearchRequests+=D.server_tool_use?.web_search_requests??0,FB.modelUsage[I]=Z}function QN(){return FB.totalCostUSD}function DS(){return FB.totalAPIDuration}function Pq1(){return Date.now()-FB.startTime}function Ml(){FB.lastInteractionTime=Date.now()}function Sq1(A,B){FB.totalLinesAdded+=A,FB.totalLinesRemoved+=B}function X91(){return FB.totalLinesAdded}function V91(){return FB.totalLinesRemoved}function H8A(){return BS(Object.values(FB.modelUsage),"inputTokens")}function z8A(){return BS(Object.values(FB.modelUsage),"outputTokens")}function U8A(){return BS(Object.values(FB.modelUsage),"cacheReadInputTokens")}function w8A(){return BS(Object.values(FB.modelUsage),"cacheCreationInputTokens")}function N8A(){return BS(Object.values(FB.modelUsage),"webSearchRequests")}function _q1(){FB.hasUnknownModelCost=!0}function q8A(){return FB.hasUnknownModelCost}function K91(){return FB.lastInteractionTime}function $8A(){return FB.modelUsage}function L8A(){return FB.mainLoopModelOverride}function E91(){return FB.initialMainLoopModel}function Rl(A){FB.mainLoopModelOverride=A}function IS(){return FB.maxRateLimitFallbackActive}function M8A(A){FB.maxRateLimitFallbackActive=A}function R8A(A){FB.initialMainLoopModel=A}function H91(){return FB.modelStrings}function jq1(A){FB.modelStrings=A}function O8A(A,B){FB.meter=A,FB.sessionCounter=B("claude_code.session.count",{description:"Count of CLI sessions started"}),FB.locCounter=B("claude_code.lines_of_code.count",{description:"Count of lines of code modified, with the 'type' attribute indicating whether lines were added or removed"}),FB.prCounter=B("claude_code.pull_request.count",{description:"Number of pull requests created"}),FB.commitCounter=B("claude_code.commit.count",{description:"Number of git commits created"}),FB.costCounter=B("claude_code.cost.usage",{description:"Cost of the Claude Code session",unit:"USD"}),FB.tokenCounter=B("claude_code.token.usage",{description:"Number of tokens used",unit:"tokens"}),FB.codeEditToolDecisionCounter=B("claude_code.code_edit_tool.decision",{description:"Count of code editing tool permission decisions (accept/reject) for Edit, MultiEdit, Write, and NotebookEdit tools"}),FB.activeTimeCounter=B("claude_code.active_time.total",{description:"Total active time in seconds",unit:"s"})}function T8A(){return FB.sessionCounter}function yq1(){return FB.locCounter}function P8A(){return FB.prCounter}function S8A(){return FB.commitCounter}function _8A(){return FB.costCounter}function Ol(){return FB.tokenCounter}function sx(){return FB.codeEditToolDecisionCounter}function kq1(){return FB.activeTimeCounter}function j8A(){return FB.loggerProvider}function y8A(A){FB.loggerProvider=A}function k8A(){return FB.eventLogger}function x8A(A){FB.eventLogger=A}function z91(){return FB.isNonInteractiveSession}function f8A(A){FB.isNonInteractiveSession=A}function v8A(){return FB.isInteractive}function b8A(A){FB.isInteractive=A}function g8A(){return FB.clientType}function h8A(A){FB.clientType=A}import{resolve as Dw0,join as ku1,dirname as Iw0}from"path";import{execFile as xBQ,execSync as fBQ}from"child_process";var Zo=G1(Tl(),1);import{constants as NBQ,readFileSync as dU0,existsSync as vF1,statSync as qBQ,mkdirSync as $BQ}from"fs";import{homedir as LBQ}from"os";import{execSync as cU0,execFile as MBQ,spawn as RBQ}from"child_process";import{isAbsolute as OBQ,resolve as TBQ,join as Ru1}from"path";import{dirname as JBQ,join as zu1}from"path";var nR=G1(JVA(),1);import{execSync as wNB}from"child_process";var Sf=T0(()=>{let A=_f(),B=GA();return{customIDs:{sessionId:jB()},userID:A,appVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,email:NNB(),custom:{userType:"external",organizationUuid:B.oauthAccount?.organizationUuid,accountUuid:B.oauthAccount?.accountUuid,...process.env.GITHUB_ACTIONS==="true"&&{githubActor:process.env.GITHUB_ACTOR,githubActorId:process.env.GITHUB_ACTOR_ID,githubRepositoryOwner:process.env.GITHUB_REPOSITORY_OWNER,githubRepositoryOwnerId:process.env.GITHUB_REPOSITORY_OWNER_ID}}}});function NNB(){return;try{return wNB("git config --get user.email").toString().trim()}catch{return}}var CVA="https://e531a1d9ec1de9064fae9d4affb0b0f4@o1158394.ingest.us.sentry.io/4508259541909504",XVA="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var ABQ=G1(U1(),1);function Mi(A,B){return function Q(){return A.apply(B,arguments)}}var{toString:wqB}=Object.prototype,{getPrototypeOf:fM1}=Object,$61=((A)=>(B)=>{let Q=wqB.call(B);return A[Q]||(A[Q]=Q.slice(8,-1).toLowerCase())})(Object.create(null)),hV=(A)=>{return A=A.toLowerCase(),(B)=>$61(B)===A},L61=(A)=>(B)=>typeof B===A,{isArray:yf}=Array,Ri=L61("undefined");function NqB(A){return A!==null&&!Ri(A)&&A.constructor!==null&&!Ri(A.constructor)&&mW(A.constructor.isBuffer)&&A.constructor.isBuffer(A)}var RVA=hV("ArrayBuffer");function qqB(A){let B;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView)B=ArrayBuffer.isView(A);else B=A&&A.buffer&&RVA(A.buffer);return B}var $qB=L61("string"),mW=L61("function"),OVA=L61("number"),M61=(A)=>A!==null&&typeof A==="object",LqB=(A)=>A===!0||A===!1,q61=(A)=>{if($61(A)!=="object")return!1;let B=fM1(A);return(B===null||B===Object.prototype||Object.getPrototypeOf(B)===null)&&!(Symbol.toStringTag in A)&&!(Symbol.iterator in A)},MqB=hV("Date"),RqB=hV("File"),OqB=hV("Blob"),TqB=hV("FileList"),PqB=(A)=>M61(A)&&mW(A.pipe),SqB=(A)=>{let B;return A&&(typeof FormData==="function"&&A instanceof FormData||mW(A.append)&&((B=$61(A))==="formdata"||B==="object"&&mW(A.toString)&&A.toString()==="[object FormData]"))},_qB=hV("URLSearchParams"),[jqB,yqB,kqB,xqB]=["ReadableStream","Request","Response","Headers"].map(hV),fqB=(A)=>A.trim?A.trim():A.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oi(A,B,{allOwnKeys:Q=!1}={}){if(A===null||typeof A==="undefined")return;let D,I;if(typeof A!=="object")A=[A];if(yf(A))for(D=0,I=A.length;D<I;D++)B.call(null,A[D],D,A);else{let Z=Q?Object.getOwnPropertyNames(A):Object.keys(A),G=Z.length,F;for(D=0;D<G;D++)F=Z[D],B.call(null,A[F],F,A)}}function TVA(A,B){B=B.toLowerCase();let Q=Object.keys(A),D=Q.length,I;while(D-- >0)if(I=Q[D],B===I.toLowerCase())return I;return null}var _S=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})(),PVA=(A)=>!Ri(A)&&A!==_S;function xM1(){let{caseless:A}=PVA(this)&&this||{},B={},Q=(D,I)=>{let Z=A&&TVA(B,I)||I;if(q61(B[Z])&&q61(D))B[Z]=xM1(B[Z],D);else if(q61(D))B[Z]=xM1({},D);else if(yf(D))B[Z]=D.slice();else B[Z]=D};for(let D=0,I=arguments.length;D<I;D++)arguments[D]&&Oi(arguments[D],Q);return B}var vqB=(A,B,Q,{allOwnKeys:D}={})=>{return Oi(B,(I,Z)=>{if(Q&&mW(I))A[Z]=Mi(I,Q);else A[Z]=I},{allOwnKeys:D}),A},bqB=(A)=>{if(A.charCodeAt(0)===65279)A=A.slice(1);return A},gqB=(A,B,Q,D)=>{A.prototype=Object.create(B.prototype,D),A.prototype.constructor=A,Object.defineProperty(A,"super",{value:B.prototype}),Q&&Object.assign(A.prototype,Q)},hqB=(A,B,Q,D)=>{let I,Z,G,F={};if(B=B||{},A==null)return B;do{I=Object.getOwnPropertyNames(A),Z=I.length;while(Z-- >0)if(G=I[Z],(!D||D(G,A,B))&&!F[G])B[G]=A[G],F[G]=!0;A=Q!==!1&&fM1(A)}while(A&&(!Q||Q(A,B))&&A!==Object.prototype);return B},uqB=(A,B,Q)=>{if(A=String(A),Q===void 0||Q>A.length)Q=A.length;Q-=B.length;let D=A.indexOf(B,Q);return D!==-1&&D===Q},mqB=(A)=>{if(!A)return null;if(yf(A))return A;let B=A.length;if(!OVA(B))return null;let Q=new Array(B);while(B-- >0)Q[B]=A[B];return Q},dqB=((A)=>{return(B)=>{return A&&B instanceof A}})(typeof Uint8Array!=="undefined"&&fM1(Uint8Array)),cqB=(A,B)=>{let D=(A&&A[Symbol.iterator]).call(A),I;while((I=D.next())&&!I.done){let Z=I.value;B.call(A,Z[0],Z[1])}},pqB=(A,B)=>{let Q,D=[];while((Q=A.exec(B))!==null)D.push(Q);return D},lqB=hV("HTMLFormElement"),iqB=(A)=>{return A.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function B(Q,D,I){return D.toUpperCase()+I})},MVA=(({hasOwnProperty:A})=>(B,Q)=>A.call(B,Q))(Object.prototype),nqB=hV("RegExp"),SVA=(A,B)=>{let Q=Object.getOwnPropertyDescriptors(A),D={};Oi(Q,(I,Z)=>{let G;if((G=B(I,Z,A))!==!1)D[Z]=G||I}),Object.defineProperties(A,D)},aqB=(A)=>{SVA(A,(B,Q)=>{if(mW(A)&&["arguments","caller","callee"].indexOf(Q)!==-1)return!1;let D=A[Q];if(!mW(D))return;if(B.enumerable=!1,"writable"in B){B.writable=!1;return}if(!B.set)B.set=()=>{throw Error("Can not rewrite read-only method '"+Q+"'")}})},rqB=(A,B)=>{let Q={},D=(I)=>{I.forEach((Z)=>{Q[Z]=!0})};return yf(A)?D(A):D(String(A).split(B)),Q},sqB=()=>{},oqB=(A,B)=>{return A!=null&&Number.isFinite(A=+A)?A:B};function tqB(A){return!!(A&&mW(A.append)&&A[Symbol.toStringTag]==="FormData"&&A[Symbol.iterator])}var eqB=(A)=>{let B=new Array(10),Q=(D,I)=>{if(M61(D)){if(B.indexOf(D)>=0)return;if(!("toJSON"in D)){B[I]=D;let Z=yf(D)?[]:{};return Oi(D,(G,F)=>{let Y=Q(G,I+1);!Ri(Y)&&(Z[F]=Y)}),B[I]=void 0,Z}}return D};return Q(A,0)},A$B=hV("AsyncFunction"),B$B=(A)=>A&&(M61(A)||mW(A))&&mW(A.then)&&mW(A.catch),_VA=((A,B)=>{if(A)return setImmediate;return B?((Q,D)=>{return _S.addEventListener("message",({source:I,data:Z})=>{if(I===_S&&Z===Q)D.length&&D.shift()()},!1),(I)=>{D.push(I),_S.postMessage(Q,"*")}})(`axios@${Math.random()}`,[]):(Q)=>setTimeout(Q)})(typeof setImmediate==="function",mW(_S.postMessage)),Q$B=typeof queueMicrotask!=="undefined"?queueMicrotask.bind(_S):typeof process!=="undefined"&&process.nextTick||_VA,HA={isArray:yf,isArrayBuffer:RVA,isBuffer:NqB,isFormData:SqB,isArrayBufferView:qqB,isString:$qB,isNumber:OVA,isBoolean:LqB,isObject:M61,isPlainObject:q61,isReadableStream:jqB,isRequest:yqB,isResponse:kqB,isHeaders:xqB,isUndefined:Ri,isDate:MqB,isFile:RqB,isBlob:OqB,isRegExp:nqB,isFunction:mW,isStream:PqB,isURLSearchParams:_qB,isTypedArray:dqB,isFileList:TqB,forEach:Oi,merge:xM1,extend:vqB,trim:fqB,stripBOM:bqB,inherits:gqB,toFlatObject:hqB,kindOf:$61,kindOfTest:hV,endsWith:uqB,toArray:mqB,forEachEntry:cqB,matchAll:pqB,isHTMLForm:lqB,hasOwnProperty:MVA,hasOwnProp:MVA,reduceDescriptors:SVA,freezeMethods:aqB,toObjectSet:rqB,toCamelCase:iqB,noop:sqB,toFiniteNumber:oqB,findKey:TVA,global:_S,isContextDefined:PVA,isSpecCompliantForm:tqB,toJSONObject:eqB,isAsyncFn:A$B,isThenable:B$B,setImmediate:_VA,asap:Q$B};function kf(A,B,Q,D,I){if(Error.call(this),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);else this.stack=new Error().stack;if(this.message=A,this.name="AxiosError",B&&(this.code=B),Q&&(this.config=Q),D&&(this.request=D),I)this.response=I,this.status=I.status?I.status:null}HA.inherits(kf,Error,{toJSON:function A(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:HA.toJSONObject(this.config),code:this.code,status:this.status}}});var jVA=kf.prototype,yVA={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((A)=>{yVA[A]={value:A}});Object.defineProperties(kf,yVA);Object.defineProperty(jVA,"isAxiosError",{value:!0});kf.from=(A,B,Q,D,I,Z)=>{let G=Object.create(jVA);return HA.toFlatObject(A,G,function F(Y){return Y!==Error.prototype},(F)=>{return F!=="isAxiosError"}),kf.call(G,A.message,B,Q,D,I),G.cause=A,G.name=A.name,Z&&Object.assign(G,Z),G};var L2=kf;var bEA=G1(vEA(),1),x61=bEA.default;function ZR1(A){return HA.isPlainObject(A)||HA.isArray(A)}function hEA(A){return HA.endsWith(A,"[]")?A.slice(0,-2):A}function gEA(A,B,Q){if(!A)return B;return A.concat(B).map(function D(I,Z){return I=hEA(I),!Q&&Z?"["+I+"]":I}).join(Q?".":"")}function pLB(A){return HA.isArray(A)&&!A.some(ZR1)}var lLB=HA.toFlatObject(HA,{},null,function A(B){return/^is[A-Z]/.test(B)});function iLB(A,B,Q){if(!HA.isObject(A))throw new TypeError("target must be an object");B=B||new(x61||FormData),Q=HA.toFlatObject(Q,{metaTokens:!0,dots:!1,indexes:!1},!1,function K(E,U){return!HA.isUndefined(U[E])});let D=Q.metaTokens,I=Q.visitor||J,Z=Q.dots,G=Q.indexes,Y=(Q.Blob||typeof Blob!=="undefined"&&Blob)&&HA.isSpecCompliantForm(B);if(!HA.isFunction(I))throw new TypeError("visitor must be a function");function W(K){if(K===null)return"";if(HA.isDate(K))return K.toISOString();if(!Y&&HA.isBlob(K))throw new L2("Blob is not supported. Use a Buffer instead.");if(HA.isArrayBuffer(K)||HA.isTypedArray(K))return Y&&typeof Blob==="function"?new Blob([K]):Buffer.from(K);return K}function J(K,E,U){let q=K;if(K&&!U&&typeof K==="object"){if(HA.endsWith(E,"{}"))E=D?E:E.slice(0,-2),K=JSON.stringify(K);else if(HA.isArray(K)&&pLB(K)||(HA.isFileList(K)||HA.endsWith(E,"[]"))&&(q=HA.toArray(K)))return E=hEA(E),q.forEach(function R(M,T){!(HA.isUndefined(M)||M===null)&&B.append(G===!0?gEA([E],T,Z):G===null?E:E+"[]",W(M))}),!1}if(ZR1(K))return!0;return B.append(gEA(U,E,Z),W(K)),!1}let C=[],X=Object.assign(lLB,{defaultVisitor:J,convertValue:W,isVisitable:ZR1});function V(K,E){if(HA.isUndefined(K))return;if(C.indexOf(K)!==-1)throw Error("Circular reference detected in "+E.join("."));C.push(K),HA.forEach(K,function U(q,R){if((!(HA.isUndefined(q)||q===null)&&I.call(B,q,HA.isString(R)?R.trim():R,E,X))===!0)V(q,E?E.concat(R):[R])}),C.pop()}if(!HA.isObject(A))throw new TypeError("data must be an object");return V(A),B}var cL=iLB;function uEA(A){let B={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\x00"};return encodeURIComponent(A).replace(/[!'()~]|%20|%00/g,function Q(D){return B[D]})}function mEA(A,B){this._pairs=[],A&&cL(A,this,B)}var dEA=mEA.prototype;dEA.append=function A(B,Q){this._pairs.push([B,Q])};dEA.toString=function A(B){let Q=B?function(D){return B.call(this,D,uEA)}:uEA;return this._pairs.map(function D(I){return Q(I[0])+"="+Q(I[1])},"").join("&")};var cEA=mEA;function nLB(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function yS(A,B,Q){if(!B)return A;let D=Q&&Q.encode||nLB;if(HA.isFunction(Q))Q={serialize:Q};let I=Q&&Q.serialize,Z;if(I)Z=I(B,Q);else Z=HA.isURLSearchParams(B)?B.toString():new cEA(B,Q).toString(D);if(Z){let G=A.indexOf("#");if(G!==-1)A=A.slice(0,G);A+=(A.indexOf("?")===-1?"?":"&")+Z}return A}class pEA{constructor(){this.handlers=[]}use(A,B,Q){return this.handlers.push({fulfilled:A,rejected:B,synchronous:Q?Q.synchronous:!1,runWhen:Q?Q.runWhen:null}),this.handlers.length-1}eject(A){if(this.handlers[A])this.handlers[A]=null}clear(){if(this.handlers)this.handlers=[]}forEach(A){HA.forEach(this.handlers,function B(Q){if(Q!==null)A(Q)})}}var GR1=pEA;var gf={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};import rLB from"crypto";import aLB from"url";var lEA=aLB.URLSearchParams;var FR1="abcdefghijklmnopqrstuvwxyz",iEA="0123456789",nEA={DIGIT:iEA,ALPHA:FR1,ALPHA_DIGIT:FR1+FR1.toUpperCase()+iEA},sLB=(A=16,B=nEA.ALPHA_DIGIT)=>{let Q="",{length:D}=B,I=new Uint32Array(A);rLB.randomFillSync(I);for(let Z=0;Z<A;Z++)Q+=B[I[Z]%D];return Q},aEA={isNode:!0,classes:{URLSearchParams:lEA,FormData:x61,Blob:typeof Blob!=="undefined"&&Blob||null},ALPHABET:nEA,generateString:sLB,protocols:["http","https","file","data"]};var JR1={};Ox(JR1,{origin:()=>eLB,navigator:()=>YR1,hasStandardBrowserWebWorkerEnv:()=>tLB,hasStandardBrowserEnv:()=>oLB,hasBrowserEnv:()=>WR1});var WR1=typeof window!=="undefined"&&typeof document!=="undefined",YR1=typeof navigator==="object"&&navigator||void 0,oLB=WR1&&(!YR1||["ReactNative","NativeScript","NS"].indexOf(YR1.product)<0),tLB=(()=>{return typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function"})(),eLB=WR1&&window.location.href||"http://localhost";var c6={...JR1,...aEA};function CR1(A,B){return cL(A,new c6.classes.URLSearchParams,Object.assign({visitor:function(Q,D,I,Z){if(c6.isNode&&HA.isBuffer(Q))return this.append(D,Q.toString("base64")),!1;return Z.defaultVisitor.apply(this,arguments)}},B))}function AMB(A){return HA.matchAll(/\w+|\[(\w*)]/g,A).map((B)=>{return B[0]==="[]"?"":B[1]||B[0]})}function BMB(A){let B={},Q=Object.keys(A),D,I=Q.length,Z;for(D=0;D<I;D++)Z=Q[D],B[Z]=A[Z];return B}function QMB(A){function B(Q,D,I,Z){let G=Q[Z++];if(G==="__proto__")return!0;let F=Number.isFinite(+G),Y=Z>=Q.length;if(G=!G&&HA.isArray(I)?I.length:G,Y){if(HA.hasOwnProp(I,G))I[G]=[I[G],D];else I[G]=D;return!F}if(!I[G]||!HA.isObject(I[G]))I[G]=[];if(B(Q,D,I[G],Z)&&HA.isArray(I[G]))I[G]=BMB(I[G]);return!F}if(HA.isFormData(A)&&HA.isFunction(A.entries)){let Q={};return HA.forEachEntry(A,(D,I)=>{B(AMB(D),I,Q,0)}),Q}return null}var f61=QMB;function DMB(A,B,Q){if(HA.isString(A))try{return(B||JSON.parse)(A),HA.trim(A)}catch(D){if(D.name!=="SyntaxError")throw D}return(Q||JSON.stringify)(A)}var XR1={transitional:gf,adapter:["xhr","http","fetch"],transformRequest:[function A(B,Q){let D=Q.getContentType()||"",I=D.indexOf("application/json")>-1,Z=HA.isObject(B);if(Z&&HA.isHTMLForm(B))B=new FormData(B);if(HA.isFormData(B))return I?JSON.stringify(f61(B)):B;if(HA.isArrayBuffer(B)||HA.isBuffer(B)||HA.isStream(B)||HA.isFile(B)||HA.isBlob(B)||HA.isReadableStream(B))return B;if(HA.isArrayBufferView(B))return B.buffer;if(HA.isURLSearchParams(B))return Q.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),B.toString();let F;if(Z){if(D.indexOf("application/x-www-form-urlencoded")>-1)return CR1(B,this.formSerializer).toString();if((F=HA.isFileList(B))||D.indexOf("multipart/form-data")>-1){let Y=this.env&&this.env.FormData;return cL(F?{"files[]":B}:B,Y&&new Y,this.formSerializer)}}if(Z||I)return Q.setContentType("application/json",!1),DMB(B);return B}],transformResponse:[function A(B){let Q=this.transitional||XR1.transitional,D=Q&&Q.forcedJSONParsing,I=this.responseType==="json";if(HA.isResponse(B)||HA.isReadableStream(B))return B;if(B&&HA.isString(B)&&(D&&!this.responseType||I)){let G=!(Q&&Q.silentJSONParsing)&&I;try{return JSON.parse(B)}catch(F){if(G){if(F.name==="SyntaxError")throw L2.from(F,L2.ERR_BAD_RESPONSE,this,null,this.response);throw F}}}return B}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:c6.classes.FormData,Blob:c6.classes.Blob},validateStatus:function A(B){return B>=200&&B<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};HA.forEach(["delete","get","head","post","put","patch"],(A)=>{XR1.headers[A]={}});var hf=XR1;var IMB=HA.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),rEA=(A)=>{let B={},Q,D,I;return A&&A.split(`
527
527
  `).forEach(function Z(G){if(I=G.indexOf(":"),Q=G.substring(0,I).trim().toLowerCase(),D=G.substring(I+1).trim(),!Q||B[Q]&&IMB[Q])return;if(Q==="set-cookie")if(B[Q])B[Q].push(D);else B[Q]=[D];else B[Q]=B[Q]?B[Q]+", "+D:D}),B};var sEA=Symbol("internals");function ji(A){return A&&String(A).trim().toLowerCase()}function v61(A){if(A===!1||A==null)return A;return HA.isArray(A)?A.map(v61):String(A)}function ZMB(A){let B=Object.create(null),Q=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,D;while(D=Q.exec(A))B[D[1]]=D[2];return B}var GMB=(A)=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(A.trim());function VR1(A,B,Q,D,I){if(HA.isFunction(D))return D.call(this,B,Q);if(I)B=Q;if(!HA.isString(B))return;if(HA.isString(D))return B.indexOf(D)!==-1;if(HA.isRegExp(D))return D.test(B)}function FMB(A){return A.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(B,Q,D)=>{return Q.toUpperCase()+D})}function YMB(A,B){let Q=HA.toCamelCase(" "+B);["get","set","has"].forEach((D)=>{Object.defineProperty(A,D+Q,{value:function(I,Z,G){return this[D].call(this,B,I,Z,G)},configurable:!0})})}class yi{constructor(A){A&&this.set(A)}set(A,B,Q){let D=this;function I(G,F,Y){let W=ji(F);if(!W)throw new Error("header name must be a non-empty string");let J=HA.findKey(D,W);if(!J||D[J]===void 0||Y===!0||Y===void 0&&D[J]!==!1)D[J||F]=v61(G)}let Z=(G,F)=>HA.forEach(G,(Y,W)=>I(Y,W,F));if(HA.isPlainObject(A)||A instanceof this.constructor)Z(A,B);else if(HA.isString(A)&&(A=A.trim())&&!GMB(A))Z(rEA(A),B);else if(HA.isHeaders(A))for(let[G,F]of A.entries())I(F,G,Q);else A!=null&&I(B,A,Q);return this}get(A,B){if(A=ji(A),A){let Q=HA.findKey(this,A);if(Q){let D=this[Q];if(!B)return D;if(B===!0)return ZMB(D);if(HA.isFunction(B))return B.call(this,D,Q);if(HA.isRegExp(B))return B.exec(D);throw new TypeError("parser must be boolean|regexp|function")}}}has(A,B){if(A=ji(A),A){let Q=HA.findKey(this,A);return!!(Q&&this[Q]!==void 0&&(!B||VR1(this,this[Q],Q,B)))}return!1}delete(A,B){let Q=this,D=!1;function I(Z){if(Z=ji(Z),Z){let G=HA.findKey(Q,Z);if(G&&(!B||VR1(Q,Q[G],G,B)))delete Q[G],D=!0}}if(HA.isArray(A))A.forEach(I);else I(A);return D}clear(A){let B=Object.keys(this),Q=B.length,D=!1;while(Q--){let I=B[Q];if(!A||VR1(this,this[I],I,A,!0))delete this[I],D=!0}return D}normalize(A){let B=this,Q={};return HA.forEach(this,(D,I)=>{let Z=HA.findKey(Q,I);if(Z){B[Z]=v61(D),delete B[I];return}let G=A?FMB(I):String(I).trim();if(G!==I)delete B[I];B[G]=v61(D),Q[G]=!0}),this}concat(...A){return this.constructor.concat(this,...A)}toJSON(A){let B=Object.create(null);return HA.forEach(this,(Q,D)=>{Q!=null&&Q!==!1&&(B[D]=A&&HA.isArray(Q)?Q.join(", "):Q)}),B}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([A,B])=>A+": "+B).join(`
528
528
  `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(A){return A instanceof this?A:new this(A)}static concat(A,...B){let Q=new this(A);return B.forEach((D)=>Q.set(D)),Q}static accessor(A){let Q=(this[sEA]=this[sEA]={accessors:{}}).accessors,D=this.prototype;function I(Z){let G=ji(Z);if(!Q[G])YMB(D,Z),Q[G]=!0}return HA.isArray(A)?A.forEach(I):I(A),this}}yi.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);HA.reduceDescriptors(yi.prototype,({value:A},B)=>{let Q=B[0].toUpperCase()+B.slice(1);return{get:()=>A,set(D){this[Q]=D}}});HA.freezeMethods(yi);var D5=yi;function ki(A,B){let Q=this||hf,D=B||Q,I=D5.from(D.headers),Z=D.data;return HA.forEach(A,function G(F){Z=F.call(Q,Z,I.normalize(),B?B.status:void 0)}),I.normalize(),Z}function xi(A){return!!(A&&A.__CANCEL__)}function oEA(A,B,Q){L2.call(this,A==null?"canceled":A,L2.ERR_CANCELED,B,Q),this.name="CanceledError"}HA.inherits(oEA,L2,{__CANCEL__:!0});var dW=oEA;function bH(A,B,Q){let D=Q.config.validateStatus;if(!Q.status||!D||D(Q.status))A(Q);else B(new L2("Request failed with status code "+Q.status,[L2.ERR_BAD_REQUEST,L2.ERR_BAD_RESPONSE][Math.floor(Q.status/100)-4],Q.config,Q.request,Q))}function KR1(A){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(A)}function ER1(A,B){return B?A.replace(/\/?\/$/,"")+"/"+B.replace(/^\/+/,""):A}function kS(A,B,Q){let D=!KR1(B);if(A&&(D||Q==!1))return ER1(A,B);return B}var kHA=G1(tEA(),1),xHA=G1(UHA(),1);import MRB from"http";import RRB from"https";import ORB from"util";import lL from"zlib";var gS="1.8.4";function mi(A){let B=/^([-+\w]{1,25})(:?\/\/|:)/.exec(A);return B&&B[1]||""}var CRB=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function jR1(A,B,Q){let D=Q&&Q.Blob||c6.classes.Blob,I=mi(A);if(B===void 0&&D)B=!0;if(I==="data"){A=I.length?A.slice(I.length+1):A;let Z=CRB.exec(A);if(!Z)throw new L2("Invalid URL",L2.ERR_INVALID_URL);let G=Z[1],F=Z[2],Y=Z[3],W=Buffer.from(decodeURIComponent(Y),F?"base64":"utf8");if(B){if(!D)throw new L2("Blob is not supported",L2.ERR_NOT_SUPPORT);return new D([W],{type:G})}return W}throw new L2("Unsupported protocol "+I,L2.ERR_NOT_SUPPORT)}import nf from"stream";import XRB from"stream";var yR1=Symbol("internals");class wHA extends XRB.Transform{constructor(A){A=HA.toFlatObject(A,{maxRate:0,chunkSize:65536,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,(Q,D)=>{return!HA.isUndefined(D[Q])});super({readableHighWaterMark:A.chunkSize});let B=this[yR1]={timeWindow:A.timeWindow,chunkSize:A.chunkSize,maxRate:A.maxRate,minChunkSize:A.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",(Q)=>{if(Q==="progress"){if(!B.isCaptured)B.isCaptured=!0}})}_read(A){let B=this[yR1];if(B.onReadCallback)B.onReadCallback();return super._read(A)}_transform(A,B,Q){let D=this[yR1],I=D.maxRate,Z=this.readableHighWaterMark,G=D.timeWindow,F=1000/G,Y=I/F,W=D.minChunkSize!==!1?Math.max(D.minChunkSize,Y*0.01):0,J=(X,V)=>{let K=Buffer.byteLength(X);if(D.bytesSeen+=K,D.bytes+=K,D.isCaptured&&this.emit("progress",D.bytesSeen),this.push(X))process.nextTick(V);else D.onReadCallback=()=>{D.onReadCallback=null,process.nextTick(V)}},C=(X,V)=>{let K=Buffer.byteLength(X),E=null,U=Z,q,R=0;if(I){let M=Date.now();if(!D.ts||(R=M-D.ts)>=G)D.ts=M,q=Y-D.bytes,D.bytes=q<0?-q:0,R=0;q=Y-D.bytes}if(I){if(q<=0)return setTimeout(()=>{V(null,X)},G-R);if(q<U)U=q}if(U&&K>U&&K-U>W)E=X.subarray(U),X=X.subarray(0,U);J(X,E?()=>{process.nextTick(V,null,E)}:V)};C(A,function X(V,K){if(V)return Q(V);if(K)C(K,X);else Q(null)})}}var kR1=wHA;import{EventEmitter as TRB}from"events";import KRB from"util";import{Readable as ERB}from"stream";var{asyncIterator:NHA}=Symbol,VRB=async function*(A){if(A.stream)yield*A.stream();else if(A.arrayBuffer)yield await A.arrayBuffer();else if(A[NHA])yield*A[NHA]();else yield A},c61=VRB;var HRB=c6.ALPHABET.ALPHA_DIGIT+"-_",di=typeof TextEncoder==="function"?new TextEncoder:new KRB.TextEncoder,pL=`\r
529
529
  `,zRB=di.encode(pL),URB=2;class qHA{constructor(A,B){let{escapeName:Q}=this.constructor,D=HA.isString(B),I=`Content-Disposition: form-data; name="${Q(A)}"${!D&&B.name?`; filename="${Q(B.name)}"`:""}${pL}`;if(D)B=di.encode(String(B).replace(/\r?\n|\r\n?/g,pL));else I+=`Content-Type: ${B.type||"application/octet-stream"}${pL}`;this.headers=di.encode(I+pL),this.contentLength=D?B.byteLength:B.size,this.size=this.headers.byteLength+this.contentLength+URB,this.name=A,this.value=B}async*encode(){yield this.headers;let{value:A}=this;if(HA.isTypedArray(A))yield A;else yield*c61(A);yield zRB}static escapeName(A){return String(A).replace(/[\r\n"]/g,(B)=>({"\r":"%0D","\n":"%0A",'"':"%22"})[B])}}var wRB=(A,B,Q)=>{let{tag:D="form-data-boundary",size:I=25,boundary:Z=D+"-"+c6.generateString(I,HRB)}=Q||{};if(!HA.isFormData(A))throw TypeError("FormData instance required");if(Z.length<1||Z.length>70)throw Error("boundary must be 10-70 characters long");let G=di.encode("--"+Z+pL),F=di.encode("--"+Z+"--"+pL+pL),Y=F.byteLength,W=Array.from(A.entries()).map(([C,X])=>{let V=new qHA(C,X);return Y+=V.size,V});Y+=G.byteLength*W.length,Y=HA.toFiniteNumber(Y);let J={"Content-Type":`multipart/form-data; boundary=${Z}`};if(Number.isFinite(Y))J["Content-Length"]=Y;return B&&B(J),ERB.from(async function*(){for(let C of W)yield G,yield*C.encode();yield F}())},$HA=wRB;import NRB from"stream";class LHA extends NRB.Transform{__transform(A,B,Q){this.push(A),Q()}_transform(A,B,Q){if(A.length!==0){if(this._transform=this.__transform,A[0]!==120){let D=Buffer.alloc(2);D[0]=120,D[1]=156,this.push(D,B)}}this.__transform(A,B,Q)}}var MHA=LHA;var qRB=(A,B)=>{return HA.isAsyncFn(A)?function(...Q){let D=Q.pop();A.apply(this,Q).then((I)=>{try{B?D(null,...B(I)):D(null,I)}catch(Z){D(Z)}},D)}:A},RHA=qRB;function $RB(A,B){A=A||10;let Q=new Array(A),D=new Array(A),I=0,Z=0,G;return B=B!==void 0?B:1000,function F(Y){let W=Date.now(),J=D[Z];if(!G)G=W;Q[I]=Y,D[I]=W;let C=Z,X=0;while(C!==I)X+=Q[C++],C=C%A;if(I=(I+1)%A,I===Z)Z=(Z+1)%A;if(W-G<B)return;let V=J&&W-J;return V?Math.round(X*1000/V):void 0}}var OHA=$RB;function LRB(A,B){let Q=0,D=1000/B,I,Z,G=(W,J=Date.now())=>{if(Q=J,I=null,Z)clearTimeout(Z),Z=null;A.apply(null,W)};return[(...W)=>{let J=Date.now(),C=J-Q;if(C>=D)G(W,J);else if(I=W,!Z)Z=setTimeout(()=>{Z=null,G(I)},D-C)},()=>I&&G(I)]}var THA=LRB;var UN=(A,B,Q=3)=>{let D=0,I=OHA(50,250);return THA((Z)=>{let G=Z.loaded,F=Z.lengthComputable?Z.total:void 0,Y=G-D,W=I(Y),J=G<=F;D=G;let C={loaded:G,total:F,progress:F?G/F:void 0,bytes:Y,rate:W?W:void 0,estimated:W&&F&&J?(F-G)/W:void 0,event:Z,lengthComputable:F!=null,[B?"download":"upload"]:!0};A(C)},Q)},pf=(A,B)=>{let Q=A!=null;return[(D)=>B[0]({lengthComputable:Q,total:A,loaded:D}),B[1]]},lf=(A)=>(...B)=>HA.asap(()=>A(...B));var PHA={flush:lL.constants.Z_SYNC_FLUSH,finishFlush:lL.constants.Z_SYNC_FLUSH},PRB={flush:lL.constants.BROTLI_OPERATION_FLUSH,finishFlush:lL.constants.BROTLI_OPERATION_FLUSH},SHA=HA.isFunction(lL.createBrotliDecompress),{http:SRB,https:_RB}=xHA.default,jRB=/https:?/,_HA=c6.protocols.map((A)=>{return A+":"}),jHA=(A,[B,Q])=>{return A.on("end",Q).on("error",Q),B};function yRB(A,B){if(A.beforeRedirects.proxy)A.beforeRedirects.proxy(A);if(A.beforeRedirects.config)A.beforeRedirects.config(A,B)}function fHA(A,B,Q){let D=B;if(!D&&D!==!1){let I=kHA.default.getProxyForUrl(Q);if(I)D=new URL(I)}if(D){if(D.username)D.auth=(D.username||"")+":"+(D.password||"");if(D.auth){if(D.auth.username||D.auth.password)D.auth=(D.auth.username||"")+":"+(D.auth.password||"");let Z=Buffer.from(D.auth,"utf8").toString("base64");A.headers["Proxy-Authorization"]="Basic "+Z}A.headers.host=A.hostname+(A.port?":"+A.port:"");let I=D.hostname||D.host;if(A.hostname=I,A.host=I,A.port=D.port,A.path=Q,D.protocol)A.protocol=D.protocol.includes(":")?D.protocol:`${D.protocol}:`}A.beforeRedirects.proxy=function I(Z){fHA(Z,B,Z.href)}}var kRB=typeof process!=="undefined"&&HA.kindOf(process)==="process",xRB=(A)=>{return new Promise((B,Q)=>{let D,I,Z=(Y,W)=>{if(I)return;I=!0,D&&D(Y,W)},G=(Y)=>{Z(Y),B(Y)},F=(Y)=>{Z(Y,!0),Q(Y)};A(G,F,(Y)=>D=Y).catch(F)})},fRB=({address:A,family:B})=>{if(!HA.isString(A))throw TypeError("address must be a string");return{address:A,family:B||(A.indexOf(".")<0?6:4)}},yHA=(A,B)=>fRB(HA.isObject(A)?A:{address:A,family:B}),vHA=kRB&&function A(B){return xRB(async function Q(D,I,Z){let{data:G,lookup:F,family:Y}=B,{responseType:W,responseEncoding:J}=B,C=B.method.toUpperCase(),X,V=!1,K;if(F){let h1=RHA(F,(g1)=>HA.isArray(g1)?g1:[g1]);F=(g1,ZA,EA)=>{h1(g1,ZA,(i1,_1,Q1)=>{if(i1)return EA(i1);let R1=HA.isArray(_1)?_1.map((q1)=>yHA(q1)):[yHA(_1,Q1)];ZA.all?EA(i1,R1):EA(i1,R1[0].address,R1[0].family)})}}let E=new TRB,U=()=>{if(B.cancelToken)B.cancelToken.unsubscribe(q);if(B.signal)B.signal.removeEventListener("abort",q);E.removeAllListeners()};Z((h1,g1)=>{if(X=!0,g1)V=!0,U()});function q(h1){E.emit("abort",!h1||h1.type?new dW(null,B,K):h1)}if(E.once("abort",I),B.cancelToken||B.signal){if(B.cancelToken&&B.cancelToken.subscribe(q),B.signal)B.signal.aborted?q():B.signal.addEventListener("abort",q)}let R=kS(B.baseURL,B.url,B.allowAbsoluteUrls),M=new URL(R,c6.hasBrowserEnv?c6.origin:void 0),T=M.protocol||_HA[0];if(T==="data:"){let h1;if(C!=="GET")return bH(D,I,{status:405,statusText:"method not allowed",headers:{},config:B});try{h1=jR1(B.url,W==="blob",{Blob:B.env&&B.env.Blob})}catch(g1){throw L2.from(g1,L2.ERR_BAD_REQUEST,B)}if(W==="text"){if(h1=h1.toString(J),!J||J==="utf8")h1=HA.stripBOM(h1)}else if(W==="stream")h1=nf.Readable.from(h1);return bH(D,I,{data:h1,status:200,statusText:"OK",headers:new D5,config:B})}if(_HA.indexOf(T)===-1)return I(new L2("Unsupported protocol "+T,L2.ERR_BAD_REQUEST,B));let L=D5.from(B.headers).normalize();L.set("User-Agent","axios/"+gS,!1);let{onUploadProgress:P,onDownloadProgress:_}=B,d=B.maxRate,y=void 0,p=void 0;if(HA.isSpecCompliantForm(G)){let h1=L.getContentType(/boundary=([-_\w\d]{10,70})/i);G=$HA(G,(g1)=>{L.set(g1)},{tag:`axios-${gS}-boundary`,boundary:h1&&h1[1]||void 0})}else if(HA.isFormData(G)&&HA.isFunction(G.getHeaders)){if(L.set(G.getHeaders()),!L.hasContentLength())try{let h1=await ORB.promisify(G.getLength).call(G);Number.isFinite(h1)&&h1>=0&&L.setContentLength(h1)}catch(h1){}}else if(HA.isBlob(G)||HA.isFile(G))G.size&&L.setContentType(G.type||"application/octet-stream"),L.setContentLength(G.size||0),G=nf.Readable.from(c61(G));else if(G&&!HA.isStream(G)){if(Buffer.isBuffer(G));else if(HA.isArrayBuffer(G))G=Buffer.from(new Uint8Array(G));else if(HA.isString(G))G=Buffer.from(G,"utf-8");else return I(new L2("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",L2.ERR_BAD_REQUEST,B));if(L.setContentLength(G.length,!1),B.maxBodyLength>-1&&G.length>B.maxBodyLength)return I(new L2("Request body larger than maxBodyLength limit",L2.ERR_BAD_REQUEST,B))}let m=HA.toFiniteNumber(L.getContentLength());if(HA.isArray(d))y=d[0],p=d[1];else y=p=d;if(G&&(P||y)){if(!HA.isStream(G))G=nf.Readable.from(G,{objectMode:!1});G=nf.pipeline([G,new kR1({maxRate:HA.toFiniteNumber(y)})],HA.noop),P&&G.on("progress",jHA(G,pf(m,UN(lf(P),!1,3))))}let o=void 0;if(B.auth){let h1=B.auth.username||"",g1=B.auth.password||"";o=h1+":"+g1}if(!o&&M.username){let{username:h1,password:g1}=M;o=h1+":"+g1}o&&L.delete("authorization");let A1;try{A1=yS(M.pathname+M.search,B.params,B.paramsSerializer).replace(/^\?/,"")}catch(h1){let g1=new Error(h1.message);return g1.config=B,g1.url=B.url,g1.exists=!0,I(g1)}L.set("Accept-Encoding","gzip, compress, deflate"+(SHA?", br":""),!1);let f={path:A1,method:C,headers:L.toJSON(),agents:{http:B.httpAgent,https:B.httpsAgent},auth:o,protocol:T,family:Y,beforeRedirect:yRB,beforeRedirects:{}};if(!HA.isUndefined(F)&&(f.lookup=F),B.socketPath)f.socketPath=B.socketPath;else f.hostname=M.hostname.startsWith("[")?M.hostname.slice(1,-1):M.hostname,f.port=M.port,fHA(f,B.proxy,T+"//"+M.hostname+(M.port?":"+M.port:"")+f.path);let s,V1=jRB.test(f.protocol);if(f.agent=V1?B.httpsAgent:B.httpAgent,B.transport)s=B.transport;else if(B.maxRedirects===0)s=V1?RRB:MRB;else{if(B.maxRedirects)f.maxRedirects=B.maxRedirects;if(B.beforeRedirect)f.beforeRedirects.config=B.beforeRedirect;s=V1?_RB:SRB}if(B.maxBodyLength>-1)f.maxBodyLength=B.maxBodyLength;else f.maxBodyLength=1/0;if(B.insecureHTTPParser)f.insecureHTTPParser=B.insecureHTTPParser;if(K=s.request(f,function h1(g1){if(K.destroyed)return;let ZA=[g1],EA=+g1.headers["content-length"];if(_||p){let q1=new kR1({maxRate:HA.toFiniteNumber(p)});_&&q1.on("progress",jHA(q1,pf(EA,UN(lf(_),!0,3)))),ZA.push(q1)}let i1=g1,_1=g1.req||K;if(B.decompress!==!1&&g1.headers["content-encoding"]){if(C==="HEAD"||g1.statusCode===204)delete g1.headers["content-encoding"];switch((g1.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":ZA.push(lL.createUnzip(PHA)),delete g1.headers["content-encoding"];break;case"deflate":ZA.push(new MHA),ZA.push(lL.createUnzip(PHA)),delete g1.headers["content-encoding"];break;case"br":if(SHA)ZA.push(lL.createBrotliDecompress(PRB)),delete g1.headers["content-encoding"]}}i1=ZA.length>1?nf.pipeline(ZA,HA.noop):ZA[0];let Q1=nf.finished(i1,()=>{Q1(),U()}),R1={status:g1.statusCode,statusText:g1.statusMessage,headers:new D5(g1.headers),config:B,request:_1};if(W==="stream")R1.data=i1,bH(D,I,R1);else{let q1=[],IA=0;i1.on("data",function VA(RA){if(q1.push(RA),IA+=RA.length,B.maxContentLength>-1&&IA>B.maxContentLength)V=!0,i1.destroy(),I(new L2("maxContentLength size of "+B.maxContentLength+" exceeded",L2.ERR_BAD_RESPONSE,B,_1))}),i1.on("aborted",function VA(){if(V)return;let RA=new L2("stream has been aborted",L2.ERR_BAD_RESPONSE,B,_1);i1.destroy(RA),I(RA)}),i1.on("error",function VA(RA){if(K.destroyed)return;I(L2.from(RA,null,B,_1))}),i1.on("end",function VA(){try{let RA=q1.length===1?q1[0]:Buffer.concat(q1);if(W!=="arraybuffer"){if(RA=RA.toString(J),!J||J==="utf8")RA=HA.stripBOM(RA)}R1.data=RA}catch(RA){return I(L2.from(RA,null,B,R1.request,R1))}bH(D,I,R1)})}E.once("abort",(q1)=>{if(!i1.destroyed)i1.emit("error",q1),i1.destroy()})}),E.once("abort",(h1)=>{I(h1),K.destroy(h1)}),K.on("error",function h1(g1){I(L2.from(g1,null,B,K))}),K.on("socket",function h1(g1){g1.setKeepAlive(!0,60000)}),B.timeout){let h1=parseInt(B.timeout,10);if(Number.isNaN(h1)){I(new L2("error trying to parse `config.timeout` to int",L2.ERR_BAD_OPTION_VALUE,B,K));return}K.setTimeout(h1,function g1(){if(X)return;let ZA=B.timeout?"timeout of "+B.timeout+"ms exceeded":"timeout exceeded",EA=B.transitional||gf;if(B.timeoutErrorMessage)ZA=B.timeoutErrorMessage;I(new L2(ZA,EA.clarifyTimeoutError?L2.ETIMEDOUT:L2.ECONNABORTED,B,K)),q()})}if(HA.isStream(G)){let h1=!1,g1=!1;G.on("end",()=>{h1=!0}),G.once("error",(ZA)=>{g1=!0,K.destroy(ZA)}),G.on("close",()=>{if(!h1&&!g1)q(new dW("Request stream has been aborted",B,K))}),G.pipe(K)}else K.end(G)})};var bHA=c6.hasStandardBrowserEnv?((A,B)=>(Q)=>{return Q=new URL(Q,c6.origin),A.protocol===Q.protocol&&A.host===Q.host&&(B||A.port===Q.port)})(new URL(c6.origin),c6.navigator&&/(msie|trident)/i.test(c6.navigator.userAgent)):()=>!0;var gHA=c6.hasStandardBrowserEnv?{write(A,B,Q,D,I,Z){let G=[A+"="+encodeURIComponent(B)];HA.isNumber(Q)&&G.push("expires="+new Date(Q).toGMTString()),HA.isString(D)&&G.push("path="+D),HA.isString(I)&&G.push("domain="+I),Z===!0&&G.push("secure"),document.cookie=G.join("; ")},read(A){let B=document.cookie.match(new RegExp("(^|;\\s*)("+A+")=([^;]*)"));return B?decodeURIComponent(B[3]):null},remove(A){this.write(A,"",Date.now()-86400000)}}:{write(){},read(){return null},remove(){}};var hHA=(A)=>A instanceof D5?{...A}:A;function mV(A,B){B=B||{};let Q={};function D(W,J,C,X){if(HA.isPlainObject(W)&&HA.isPlainObject(J))return HA.merge.call({caseless:X},W,J);else if(HA.isPlainObject(J))return HA.merge({},J);else if(HA.isArray(J))return J.slice();return J}function I(W,J,C,X){if(!HA.isUndefined(J))return D(W,J,C,X);else if(!HA.isUndefined(W))return D(void 0,W,C,X)}function Z(W,J){if(!HA.isUndefined(J))return D(void 0,J)}function G(W,J){if(!HA.isUndefined(J))return D(void 0,J);else if(!HA.isUndefined(W))return D(void 0,W)}function F(W,J,C){if(C in B)return D(W,J);else if(C in A)return D(void 0,W)}let Y={url:Z,method:Z,data:Z,baseURL:G,transformRequest:G,transformResponse:G,paramsSerializer:G,timeout:G,timeoutMessage:G,withCredentials:G,withXSRFToken:G,adapter:G,responseType:G,xsrfCookieName:G,xsrfHeaderName:G,onUploadProgress:G,onDownloadProgress:G,decompress:G,maxContentLength:G,maxBodyLength:G,beforeRedirect:G,transport:G,httpAgent:G,httpsAgent:G,cancelToken:G,socketPath:G,responseEncoding:G,validateStatus:F,headers:(W,J,C)=>I(hHA(W),hHA(J),C,!0)};return HA.forEach(Object.keys(Object.assign({},A,B)),function W(J){let C=Y[J]||I,X=C(A[J],B[J],J);HA.isUndefined(X)&&C!==F||(Q[J]=X)}),Q}var p61=(A)=>{let B=mV({},A),{data:Q,withXSRFToken:D,xsrfHeaderName:I,xsrfCookieName:Z,headers:G,auth:F}=B;if(B.headers=G=D5.from(G),B.url=yS(kS(B.baseURL,B.url,B.allowAbsoluteUrls),A.params,A.paramsSerializer),F)G.set("Authorization","Basic "+btoa((F.username||"")+":"+(F.password?unescape(encodeURIComponent(F.password)):"")));let Y;if(HA.isFormData(Q)){if(c6.hasStandardBrowserEnv||c6.hasStandardBrowserWebWorkerEnv)G.setContentType(void 0);else if((Y=G.getContentType())!==!1){let[W,...J]=Y?Y.split(";").map((C)=>C.trim()).filter(Boolean):[];G.setContentType([W||"multipart/form-data",...J].join("; "))}}if(c6.hasStandardBrowserEnv){if(D&&HA.isFunction(D)&&(D=D(B)),D||D!==!1&&bHA(B.url)){let W=I&&Z&&gHA.read(Z);if(W)G.set(I,W)}}return B};var vRB=typeof XMLHttpRequest!=="undefined",uHA=vRB&&function(A){return new Promise(function B(Q,D){let I=p61(A),Z=I.data,G=D5.from(I.headers).normalize(),{responseType:F,onUploadProgress:Y,onDownloadProgress:W}=I,J,C,X,V,K;function E(){V&&V(),K&&K(),I.cancelToken&&I.cancelToken.unsubscribe(J),I.signal&&I.signal.removeEventListener("abort",J)}let U=new XMLHttpRequest;U.open(I.method.toUpperCase(),I.url,!0),U.timeout=I.timeout;function q(){if(!U)return;let M=D5.from("getAllResponseHeaders"in U&&U.getAllResponseHeaders()),L={data:!F||F==="text"||F==="json"?U.responseText:U.response,status:U.status,statusText:U.statusText,headers:M,config:A,request:U};bH(function P(_){Q(_),E()},function P(_){D(_),E()},L),U=null}if("onloadend"in U)U.onloadend=q;else U.onreadystatechange=function M(){if(!U||U.readyState!==4)return;if(U.status===0&&!(U.responseURL&&U.responseURL.indexOf("file:")===0))return;setTimeout(q)};if(U.onabort=function M(){if(!U)return;D(new L2("Request aborted",L2.ECONNABORTED,A,U)),U=null},U.onerror=function M(){D(new L2("Network Error",L2.ERR_NETWORK,A,U)),U=null},U.ontimeout=function M(){let T=I.timeout?"timeout of "+I.timeout+"ms exceeded":"timeout exceeded",L=I.transitional||gf;if(I.timeoutErrorMessage)T=I.timeoutErrorMessage;D(new L2(T,L.clarifyTimeoutError?L2.ETIMEDOUT:L2.ECONNABORTED,A,U)),U=null},Z===void 0&&G.setContentType(null),"setRequestHeader"in U)HA.forEach(G.toJSON(),function M(T,L){U.setRequestHeader(L,T)});if(!HA.isUndefined(I.withCredentials))U.withCredentials=!!I.withCredentials;if(F&&F!=="json")U.responseType=I.responseType;if(W)[X,K]=UN(W,!0),U.addEventListener("progress",X);if(Y&&U.upload)[C,V]=UN(Y),U.upload.addEventListener("progress",C),U.upload.addEventListener("loadend",V);if(I.cancelToken||I.signal){if(J=(M)=>{if(!U)return;D(!M||M.type?new dW(null,A,U):M),U.abort(),U=null},I.cancelToken&&I.cancelToken.subscribe(J),I.signal)I.signal.aborted?J():I.signal.addEventListener("abort",J)}let R=mi(I.url);if(R&&c6.protocols.indexOf(R)===-1){D(new L2("Unsupported protocol "+R+":",L2.ERR_BAD_REQUEST,A));return}U.send(Z||null)})};var bRB=(A,B)=>{let{length:Q}=A=A?A.filter(Boolean):[];if(B||Q){let D=new AbortController,I,Z=function(W){if(!I){I=!0,F();let J=W instanceof Error?W:this.reason;D.abort(J instanceof L2?J:new dW(J instanceof Error?J.message:J))}},G=B&&setTimeout(()=>{G=null,Z(new L2(`timeout ${B} of ms exceeded`,L2.ETIMEDOUT))},B),F=()=>{if(A)G&&clearTimeout(G),G=null,A.forEach((W)=>{W.unsubscribe?W.unsubscribe(Z):W.removeEventListener("abort",Z)}),A=null};A.forEach((W)=>W.addEventListener("abort",Z));let{signal:Y}=D;return Y.unsubscribe=()=>HA.asap(F),Y}},mHA=bRB;var gRB=function*(A,B){let Q=A.byteLength;if(!B||Q<B){yield A;return}let D=0,I;while(D<Q)I=D+B,yield A.slice(D,I),D=I},hRB=async function*(A,B){for await(let Q of uRB(A))yield*gRB(Q,B)},uRB=async function*(A){if(A[Symbol.asyncIterator]){yield*A;return}let B=A.getReader();try{for(;;){let{done:Q,value:D}=await B.read();if(Q)break;yield D}}finally{await B.cancel()}},xR1=(A,B,Q,D)=>{let I=hRB(A,B),Z=0,G,F=(Y)=>{if(!G)G=!0,D&&D(Y)};return new ReadableStream({async pull(Y){try{let{done:W,value:J}=await I.next();if(W){F(),Y.close();return}let C=J.byteLength;if(Q){let X=Z+=C;Q(X)}Y.enqueue(new Uint8Array(J))}catch(W){throw F(W),W}},cancel(Y){return F(Y),I.return()}},{highWaterMark:2})};var i61=typeof fetch==="function"&&typeof Request==="function"&&typeof Response==="function",cHA=i61&&typeof ReadableStream==="function",mRB=i61&&(typeof TextEncoder==="function"?((A)=>(B)=>A.encode(B))(new TextEncoder):async(A)=>new Uint8Array(await new Response(A).arrayBuffer())),pHA=(A,...B)=>{try{return!!A(...B)}catch(Q){return!1}},dRB=cHA&&pHA(()=>{let A=!1,B=new Request(c6.origin,{body:new ReadableStream,method:"POST",get duplex(){return A=!0,"half"}}).headers.has("Content-Type");return A&&!B}),dHA=65536,fR1=cHA&&pHA(()=>HA.isReadableStream(new Response("").body)),l61={stream:fR1&&((A)=>A.body)};i61&&((A)=>{["text","arrayBuffer","blob","formData","stream"].forEach((B)=>{!l61[B]&&(l61[B]=HA.isFunction(A[B])?(Q)=>Q[B]():(Q,D)=>{throw new L2(`Response type '${B}' is not supported`,L2.ERR_NOT_SUPPORT,D)})})})(new Response);var cRB=async(A)=>{if(A==null)return 0;if(HA.isBlob(A))return A.size;if(HA.isSpecCompliantForm(A))return(await new Request(c6.origin,{method:"POST",body:A}).arrayBuffer()).byteLength;if(HA.isArrayBufferView(A)||HA.isArrayBuffer(A))return A.byteLength;if(HA.isURLSearchParams(A))A=A+"";if(HA.isString(A))return(await mRB(A)).byteLength},pRB=async(A,B)=>{let Q=HA.toFiniteNumber(A.getContentLength());return Q==null?cRB(B):Q},lHA=i61&&(async(A)=>{let{url:B,method:Q,data:D,signal:I,cancelToken:Z,timeout:G,onDownloadProgress:F,onUploadProgress:Y,responseType:W,headers:J,withCredentials:C="same-origin",fetchOptions:X}=p61(A);W=W?(W+"").toLowerCase():"text";let V=mHA([I,Z&&Z.toAbortSignal()],G),K,E=V&&V.unsubscribe&&(()=>{V.unsubscribe()}),U;try{if(Y&&dRB&&Q!=="get"&&Q!=="head"&&(U=await pRB(J,D))!==0){let L=new Request(B,{method:"POST",body:D,duplex:"half"}),P;if(HA.isFormData(D)&&(P=L.headers.get("content-type")))J.setContentType(P);if(L.body){let[_,d]=pf(U,UN(lf(Y)));D=xR1(L.body,dHA,_,d)}}if(!HA.isString(C))C=C?"include":"omit";let q="credentials"in Request.prototype;K=new Request(B,{...X,signal:V,method:Q.toUpperCase(),headers:J.normalize().toJSON(),body:D,duplex:"half",credentials:q?C:void 0});let R=await fetch(K),M=fR1&&(W==="stream"||W==="response");if(fR1&&(F||M&&E)){let L={};["status","statusText","headers"].forEach((y)=>{L[y]=R[y]});let P=HA.toFiniteNumber(R.headers.get("content-length")),[_,d]=F&&pf(P,UN(lf(F),!0))||[];R=new Response(xR1(R.body,dHA,_,()=>{d&&d(),E&&E()}),L)}W=W||"text";let T=await l61[HA.findKey(l61,W)||"text"](R,A);return!M&&E&&E(),await new Promise((L,P)=>{bH(L,P,{data:T,headers:D5.from(R.headers),status:R.status,statusText:R.statusText,config:A,request:K})})}catch(q){if(E&&E(),q&&q.name==="TypeError"&&/fetch/i.test(q.message))throw Object.assign(new L2("Network Error",L2.ERR_NETWORK,A,K),{cause:q.cause||q});throw L2.from(q,q&&q.code,A,K)}});var vR1={http:vHA,xhr:uHA,fetch:lHA};HA.forEach(vR1,(A,B)=>{if(A){try{Object.defineProperty(A,"name",{value:B})}catch(Q){}Object.defineProperty(A,"adapterName",{value:B})}});var iHA=(A)=>`- ${A}`,lRB=(A)=>HA.isFunction(A)||A===null||A===!1,n61={getAdapter:(A)=>{A=HA.isArray(A)?A:[A];let{length:B}=A,Q,D,I={};for(let Z=0;Z<B;Z++){Q=A[Z];let G;if(D=Q,!lRB(Q)){if(D=vR1[(G=String(Q)).toLowerCase()],D===void 0)throw new L2(`Unknown adapter '${G}'`)}if(D)break;I[G||"#"+Z]=D}if(!D){let Z=Object.entries(I).map(([F,Y])=>`adapter ${F} `+(Y===!1?"is not supported by the environment":"is not available in the build")),G=B?Z.length>1?`since :
@@ -620,7 +620,7 @@ Usage:
620
620
  `).length}catch(A){return 0}};async function tcA(){try{let[A,B,Q,D,I,Z]=await Promise.all([I89(),rcA(),scA(),Z89(),ocA(),ga()]);return{commitHash:A,branchName:B,remoteUrl:Q,isHeadOnRemote:D,isClean:I,worktreeCount:Z}}catch(A){return null}}async function G89(A,B){let{code:Q}=await M3("git",["check-ignore",A],{preserveOutputOnError:!1,cwd:B});return Q===0}function F89(){return ecA(ApA(),".config","git","ignore")}async function d51(A,B=lA()){try{if(!await ncA(B))return;let Q=`**/${A}`;if(await G89(A,B))return;let D=F89(),I=v1(),Z=ecA(ApA(),".config","git");if(!I.existsSync(Z))I.mkdirSync(Z);if(I.existsSync(D))I.appendFileSync(D,`
621
621
  ${Q}
622
622
  `);else I.appendFileSync(D,`${Q}
623
- `)}catch(Q){f1(Q instanceof Error?Q:new Error(String(Q)))}}function rj1(){switch(n4()){case"macos":return"/Library/Application Support/ClaudeCode";default:return"/etc/claude-code"}}function W89(){return ha(rj1(),"managed-settings.json")}function J89(A){if(!v1().existsSync(A))return null;try{let B=AI(A),Q=S4(B),D=WcA.safeParse(Q);if(!D.success)return f1(new Error(`Invalid settings: ${D.error.message}`)),null;return D.data}catch(B){if(typeof B==="object"&&B&&"code"in B&&B.code==="ENOENT")xA(`Broken symlink or missing file encountered for settings.json at path: ${A}`);else f1(B instanceof Error?B:new Error(String(B)));return null}}function x51(A){switch(A){case"userSettings":return BpA(x9());case"policySettings":case"projectSettings":case"localSettings":return BpA(Y9())}}function f51(A){switch(A){case"userSettings":return ha(x51(A),"settings.json");case"projectSettings":case"localSettings":return ha(x51(A),ua(A));case"policySettings":return W89()}}function ua(A){switch(A){case"projectSettings":return ha(".claude","settings.json");case"localSettings":return ha(".claude","settings.local.json")}}function VY(A){return J89(f51(A))}function L3(A,B){if(A==="policySettings")return;let Q=f51(A),D=Y89(Q);if(!v1().existsSync(D))v1().mkdirSync(D);let Z={...VY(A),...B};if(uN(Q,JSON.stringify(Z,null,2)),A==="localSettings")d51(ua("localSettings"),Y9())}function C89(A,B){let Q=[...A,...B];return Array.from(new Set(Q))}function _Q(){let A={};for(let B of dM){let Q=VY(B);if(Q)A=Mq1(A,Q,(D,I)=>{if(Array.isArray(D)&&Array.isArray(I))return C89(D,I);return})}return A}function c51(A,B=300000){let Q=new Map,D=(...I)=>{let Z=JSON.stringify(I),G=Q.get(Z),F=Date.now();if(!G)Q.set(Z,{value:A(...I),timestamp:F,refreshing:!1});if(G&&F-G.timestamp>B&&!G.refreshing)return G.refreshing=!0,Promise.resolve().then(()=>{let Y=A(...I);Q.set(Z,{value:Y,timestamp:Date.now(),refreshing:!1})}).catch((Y)=>{f1(Y instanceof Error?Y:new Error(String(Y)));let W=Q.get(Z);if(W)W.refreshing=!1}),G.value;return Q.get(Z).value};return D.cache={clear:()=>Q.clear()},D}import{createHash as X89}from"crypto";function ma(A=""){let B=x9(),D=!process.env.CLAUDE_CONFIG_DIR?"":`-${X89("sha256").update(B).digest("hex").substring(0,8)}`;return`${A2}${A}${D}`}function QpA(){let A=ma("-credentials");return{name:"keychain",read(){try{let B=$D(`security find-generic-password -a $USER -w -s "${A}"`);if(B)return JSON.parse(B)}catch(B){return null}return null},update(B){try{let D=JSON.stringify(B).replace(/"/g,"\\\""),I=`security add-generic-password -U -a $USER -s "${A}" -w "${D}"`;return $D(I),{success:!0}}catch(Q){return{success:!1}}},delete(){try{return $D(`security delete-generic-password -a $USER -s "${A}"`),!0}catch(B){return!1}}}}import{join as V89}from"path";function sj1(){let A=x9(),B=".credentials.json",Q=V89(A,".credentials.json");return{name:"plaintext",read(){if(v1().existsSync(Q))try{let D=v1().readFileSync(Q,{encoding:"utf8"});return JSON.parse(D)}catch(D){return null}return null},update(D){try{if(!v1().existsSync(A))v1().mkdirSync(A);return v1().writeFileSync(Q,JSON.stringify(D),{encoding:"utf8",flush:!1}),v1().chmodSync(Q,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch(I){return{success:!1}}},delete(){if(v1().existsSync(Q))try{return v1().unlinkSync(Q),!0}catch(D){return!1}return!0}}}function K89(A,B){return{name:`${A.name}-with-${B.name}-fallback`,read(){let Q=A.read();if(Q!==null&&Q!==void 0)return Q;return B.read()||{}},update(Q){let D=A.read(),I=A.update(Q);if(I.success){if(D===null)B.delete();return I}let Z=B.update(Q);if(Z.success)return{success:!0,warning:Z.warning};return{success:!1}},delete(){let Q=A.delete(),D=B.delete();return Q||D}}}function rW(){if(process.platform==="darwin"){let A=QpA(),B=sj1();return K89(A,B)}return sj1()}async function DpA(A){let Q=GA().oauthAccount?.accountUuid,D=QZ(A);if(!Q||!D)return;let I=`${N3().BASE_API_URL}/api/claude_cli_profile`;try{return(await N9.get(I,{headers:{"x-api-key":D,"anthropic-beta":Jv},params:{account_uuid:Q}})).data}catch(Z){f1(Z)}}async function p51(A){let B=`${N3().BASE_API_URL}/api/oauth/profile`;try{return(await N9.get(B,{headers:{Authorization:`Bearer ${A}`,"Content-Type":"application/json"}})).data}catch(Q){f1(Q)}}function aM(A){return Boolean(A?.includes(OO1))}function l51(A){return A?.split(" ").filter(Boolean)??[]}function oj1({codeChallenge:A,state:B,isManual:Q,loginWithClaudeAi:D,inferenceOnly:I}){let Z=D?N3().CLAUDE_AI_AUTHORIZE_URL:N3().CONSOLE_AUTHORIZE_URL,G=new URL(Z);G.searchParams.append("code","true"),G.searchParams.append("client_id",N3().CLIENT_ID),G.searchParams.append("response_type","code"),G.searchParams.append("redirect_uri",Q?N3().MANUAL_REDIRECT_URL:`http://localhost:${N3().REDIRECT_PORT}/callback`);let F=I?[OO1]:N3().SCOPES;return G.searchParams.append("scope",F.join(" ")),G.searchParams.append("code_challenge",A),G.searchParams.append("code_challenge_method","S256"),G.searchParams.append("state",B),G.toString()}async function IpA(A,B,Q,D=!1,I){let Z={grant_type:"authorization_code",code:A,redirect_uri:D?N3().MANUAL_REDIRECT_URL:`http://localhost:${N3().REDIRECT_PORT}/callback`,client_id:N3().CLIENT_ID,code_verifier:Q,state:B};if(I!==void 0)Z.expires_in=I;let G=await N9.post(N3().TOKEN_URL,Z,{headers:{"Content-Type":"application/json"}});if(G.status!==200)throw new Error(G.status===401?"Authentication failed: Invalid authorization code":`Token exchange failed (${G.status}): ${G.statusText}`);return G.data}async function ZpA(A){let B={grant_type:"refresh_token",refresh_token:A,client_id:N3().CLIENT_ID};try{let Q=await N9.post(N3().TOKEN_URL,B,{headers:{"Content-Type":"application/json"}});if(Q.status!==200)throw new Error(`Token refresh failed: ${Q.statusText}`);let D=Q.data,{access_token:I,refresh_token:Z=A,expires_in:G}=D,F=Date.now()+G*1000,Y=l51(D.scope);E1("tengu_oauth_token_refresh_success",{});let W=await tj1(I);return{accessToken:I,refreshToken:Z,expiresAt:F,scopes:Y,subscriptionType:W}}catch(Q){throw E1("tengu_oauth_token_refresh_failure",{}),Q}}async function GpA(A){let B=await N9.get(N3().ROLES_URL,{headers:{Authorization:`Bearer ${A}`}});if(B.status!==200)throw new Error(`Failed to fetch user roles: ${B.statusText}`);let Q=B.data,D=GA();if(!D.oauthAccount)throw new Error("OAuth account information not found in config");D.oauthAccount.organizationRole=Q.organization_role,D.oauthAccount.workspaceRole=Q.workspace_role,D.oauthAccount.organizationName=Q.organization_name,x0(D),E1("tengu_oauth_roles_stored",{org_role:Q.organization_role})}async function FpA(A){try{let B=await N9.post(N3().API_KEY_URL,null,{headers:{Authorization:`Bearer ${A}`}}),Q=B.data?.raw_key;if(Q)return YpA(Q),E1("tengu_oauth_api_key",{status:"success",statusCode:B.status}),Q;return null}catch(B){throw E1("tengu_oauth_api_key",{status:"failure",error:B instanceof Error?B.message:String(B)}),B}}function i51(A){if(A===null)return!1;let B=300000;return Date.now()+B>=A}async function tj1(A){switch((await p51(A))?.organization?.organization_type){case"claude_max":return"max";case"claude_pro":return"pro";case"claude_enterprise":return"enterprise";case"claude_team":return"team";default:return null}}var xpA=G1(I71(),1);var D59=300000;function mC(){let A=process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX,B=_Q().apiKeyHelper,Q=process.env.ANTHROPIC_AUTH_TOKEN||B,{source:D}=dC(z91());return!(A||Q||(D==="ANTHROPIC_API_KEY"||D==="apiKeyHelper"))}function Z71(){if(process.env.ANTHROPIC_AUTH_TOKEN)return{source:"ANTHROPIC_AUTH_TOKEN",hasToken:!0};if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{source:"CLAUDE_CODE_OAUTH_TOKEN",hasToken:!0};if(S_())return{source:"apiKeyHelper",hasToken:!0};let B=m7();if(aM(B?.scopes)&&B?.accessToken)return{source:"claude.ai",hasToken:!0};return{source:"none",hasToken:!1}}function QZ(A){let{key:B}=dC(A);return B}function dC(A){if(A&&process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};if(_4(!1)){if(!process.env.ANTHROPIC_API_KEY&&!process.env.CLAUDE_CODE_OAUTH_TOKEN)throw new Error("ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN env var is required");if(process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};return{key:null,source:"none"}}if(process.env.ANTHROPIC_API_KEY&&GA().customApiKeyResponses?.approved?.includes(sW(process.env.ANTHROPIC_API_KEY)))return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};let B=S_();if(B)return{key:B,source:"apiKeyHelper"};let Q=na();if(Q)return Q;return{key:null,source:"none"}}function I59(){let A=process.env.CLAUDE_CODE_API_KEY_HELPER_TTL_MS;if(A){let B=parseInt(A,10);if(!Number.isNaN(B)&&B>=0)return B;cB(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${A}`)}return D59}var S_=c51(()=>{let B=_Q().apiKeyHelper;if(!B)return null;try{let Q=$D(B)?.toString().trim();if(!Q)throw new Error("apiKeyHelper did not return a valid value");return Q}catch(Q){let D=WA.red("Error getting API key from apiKeyHelper (in settings or ~/.claude.json):");if(Q instanceof Error&&"stderr"in Q)console.error(D,String(Q.stderr));else if(Q instanceof Error)console.error(D,Q.message);else console.error(D,Q);return" "}},I59());function fpA(){S_.cache.clear()}function sW(A){return A.slice(-20)}var na=T0(()=>{if(process.platform==="darwin"){let B=ma();try{let Q=$D(`security find-generic-password -a $USER -w -s "${B}"`);if(Q)return{key:Q,source:"/login managed key"}}catch(Q){f1(Q)}}let A=GA();if(!A.primaryApiKey)return null;return{key:A.primaryApiKey,source:"/login managed key"}});function Z59(A){return/^[a-zA-Z0-9-_]+$/.test(A)}function YpA(A){if(!Z59(A))throw new Error("Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.");let B=GA();if(gpA(),process.platform==="darwin")try{let D=ma();$D(`security add-generic-password -a $USER -s "${D}" -w ${A}`)}catch(D){f1(D),B.primaryApiKey=A}else B.primaryApiKey=A;if(!B.customApiKeyResponses)B.customApiKeyResponses={approved:[],rejected:[]};if(!B.customApiKeyResponses.approved)B.customApiKeyResponses.approved=[];let Q=sW(A);if(!B.customApiKeyResponses.approved.includes(Q))B.customApiKeyResponses.approved.push(Q);x0(B),na.cache.clear?.()}function vpA(A){let B=GA(),Q=sW(A);return B.customApiKeyResponses?.approved?.includes(Q)??!1}function bpA(){gpA();let A=GA();A.primaryApiKey=void 0,x0(A),na.cache.clear?.()}function gpA(){if(process.platform==="darwin")try{let A=ma();$D(`security delete-generic-password -a $USER -s "${A}"`)}catch(A){f1(A)}}function aa(A){if(!aM(A.scopes))return{success:!0};if(!A.refreshToken||!A.expiresAt)return{success:!0};try{let B=rW(),Q=B.read()||{};Q.claudeAiOauth={accessToken:A.accessToken,refreshToken:A.refreshToken,expiresAt:A.expiresAt,scopes:A.scopes,subscriptionType:A.subscriptionType};let D=B.update(Q);return m7.cache?.clear?.(),EY.cache?.clear?.(),D}catch(B){return f1(B),{success:!1,warning:"Failed to save OAuth tokens"}}}var m7=T0(()=>{if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{accessToken:process.env.CLAUDE_CODE_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:["user:inference"],subscriptionType:null};try{let Q=rW().read()?.claudeAiOauth;if(!Q?.accessToken)return null;if(!Q.subscriptionType){let D=Q.isMax===!1?"pro":"max";return{...Q,subscriptionType:D}}return Q}catch(A){return f1(A),null}});async function G71(A=0){let Q=m7();if(!Q?.refreshToken||!i51(Q.expiresAt))return!1;if(m7.cache?.clear?.(),Q=m7(),!Q?.refreshToken||!i51(Q.expiresAt))return!1;let D=x9();v1().mkdirSync(D);let Z;try{Z=await xpA.lock(D)}catch(G){if(G.code==="ELOCKED"){if(A<5)return await new Promise((F)=>setTimeout(F,1000+Math.random()*1000)),G71(A+1);return!1}return f1(G),!1}try{if(m7.cache?.clear?.(),Q=m7(),!Q?.refreshToken||!i51(Q.expiresAt))return!1;let G=await ZpA(Q.refreshToken);return aa({...G,scopes:Q.scopes}),m7.cache?.clear?.(),!0}catch(G){return f1(G instanceof Error?G:new Error(String(G))),!1}finally{await Z()}}function NB(){if(!mC())return!1;return aM(m7()?.scopes)}function hpA(){if(process.env.CLAUDE_CODE_USE_BEDROCK==="true"||process.env.CLAUDE_CODE_USE_VERTEX==="true")return!1;if(NB())return!1;return!0}function QG(){let A=mpA();return A==="max"||A==="enterprise"||A==="team"}function upA(){return QG()}function mpA(){if(!mC())return null;let A=m7();if(!A)return null;return A.subscriptionType??null}function F71(){switch(mpA()){case"enterprise":return"Claude Enterprise";case"team":return"Claude Team";case"max":return"Claude Max";case"pro":return"Claude Pro";default:return"Claude API"}}function eb(){return!!(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX)}function G59(A){let B=F7();if(B==="bedrock")return!1;else if(B==="firstParty")return A.includes("claude-3-7")||A.includes("claude-opus-4")||A.includes("claude-sonnet-4");else return A.includes("claude-opus-4")||A.includes("claude-sonnet-4")}var EY=T0((A)=>{let B=[],Q=A.includes("haiku");if(!Q)B.push(kwA);if(NB())B.push(Jv);if(!_4(process.env.DISABLE_INTERLEAVED_THINKING)&&G59(A))B.push(T41);if(F7()==="firstParty"&&!_4(process.env.CLAUDE_CODE_DISABLE_FINE_GRAINED_TOOL_STREAMING))B.push(xwA);if(process.env.ANTHROPIC_BETAS&&!Q)B.push(...process.env.ANTHROPIC_BETAS.split(",").map((I)=>I.trim()).filter(Boolean));return B});var __={firstParty:"claude-3-7-sonnet-20250219",bedrock:"us.anthropic.claude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219"},j_={firstParty:"claude-3-5-sonnet-20241022",bedrock:"anthropic.claude-3-5-sonnet-20241022-v2:0",vertex:"claude-3-5-sonnet-v2@20241022"},ra={firstParty:"claude-3-5-haiku-20241022",bedrock:"us.anthropic.claude-3-5-haiku-20241022-v1:0",vertex:"claude-3-5-haiku@20241022"},QK={firstParty:"claude-sonnet-4-20250514",bedrock:"us.anthropic.claude-sonnet-4-20250514-v1:0",vertex:"claude-sonnet-4@20250514"},dN={firstParty:"claude-opus-4-20250514",bedrock:"us.anthropic.claude-opus-4-20250514-v1:0",vertex:"claude-opus-4@20250514"};function dpA(A){let B=A.toLowerCase();if(B.includes("claude-sonnet-4"))return"Sonnet 4";if(B.includes("claude-opus-4"))return"Opus 4";if(B.includes("claude-3-7-sonnet"))return"Claude 3.7 Sonnet";if(B.includes("claude-3-5-sonnet"))return"Claude 3.5 Sonnet";if(B.includes("claude-3-5-haiku"))return"Claude 3.5 Haiku";return}var qF1=G1(UY0(),1);var nz0=G1(sg(),1),az0=G1(Vz(),1);var wF1=G1(ub1(),1);var NF1=G1(Wu1(),1);import{Agent as n2Q}from"https";var cz0=G1(Wu1(),1);var Eq=T0(()=>{let A={};if(process.env.CLAUDE_CODE_CLIENT_CERT)try{A.cert=v1().readFileSync(process.env.CLAUDE_CODE_CLIENT_CERT,{encoding:"utf8"}),xA("mTLS: Loaded client certificate from CLAUDE_CODE_CLIENT_CERT")}catch(B){cB(`mTLS: Failed to load client certificate: ${B}`)}if(process.env.CLAUDE_CODE_CLIENT_KEY)try{A.key=v1().readFileSync(process.env.CLAUDE_CODE_CLIENT_KEY,{encoding:"utf8"}),xA("mTLS: Loaded client key from CLAUDE_CODE_CLIENT_KEY")}catch(B){cB(`mTLS: Failed to load client key: ${B}`)}if(process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE)A.passphrase=process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE,xA("mTLS: Using client key passphrase");if(Object.keys(A).length===0)return;return A}),pz0=T0(()=>{let A=Eq();if(!A)return;let B={...A,keepAlive:!0};return xA("mTLS: Creating HTTPS agent with custom certificates"),new n2Q(B)});function lz0(){let A=Eq();if(!A)return;return{cert:A.cert,key:A.key,passphrase:A.passphrase}}function $j(){let A=Eq();if(!A)return{};let B={cert:A.cert,key:A.key,passphrase:A.passphrase},Q=new cz0.Agent({connect:B,pipelining:1});return xA("mTLS: Created undici agent with custom certificates"),{dispatcher:Q}}function iz0(){if(!Eq())return;if(process.env.NODE_EXTRA_CA_CERTS)xA("NODE_EXTRA_CA_CERTS detected - Node.js will automatically append to built-in CAs")}function Lj(){return process.env.https_proxy||process.env.HTTPS_PROXY||process.env.http_proxy||process.env.HTTP_PROXY}var rz0=T0((A)=>{let B=Eq(),Q={uri:A,pipelining:1};if(B)Q.requestTls={cert:B.cert,key:B.key,passphrase:B.passphrase};return new NF1.default.ProxyAgent(Q)});function sz0(){let A=Lj(),B=$j();if(A)return{dispatcher:rz0(A)};return B}function oz0(){let A=Lj(),B=pz0(),Q=Eq();if(A){if(N9.defaults.proxy=!1,Q)N9.defaults.httpsAgent=new wF1.default.HttpsProxyAgent(A,{cert:Q.cert,key:Q.key,passphrase:Q.passphrase});else N9.defaults.httpsAgent=new wF1.default.HttpsProxyAgent(A);NF1.default.setGlobalDispatcher(rz0(A))}else if(B){N9.defaults.httpsAgent=B;let D=$j();if(D.dispatcher)NF1.default.setGlobalDispatcher(D.dispatcher)}}function tz0(){let A=Lj();if(!A)return{};let B=new wF1.default.HttpsProxyAgent(A),Q=new az0.NodeHttpHandler({httpAgent:B,httpsAgent:B});return{requestHandler:Q,credentials:nz0.defaultProvider({clientConfig:{requestHandler:Q}})}}var ez0=T0(async function(){let A=th(),B=new qF1.BedrockClient({region:A,...tz0()}),Q=new qF1.ListInferenceProfilesCommand;try{return((await B.send(Q)).inferenceProfileSummaries||[]).filter((F)=>F.inferenceProfileId?.includes("anthropic")).map((F)=>F.inferenceProfileId).filter(Boolean)}catch(D){throw f1(D),D}});function oh(A,B){return A.find((Q)=>Q.includes(B))??null}function $F1(A){let B=[],Q=!1;async function D(){if(Q)return;if(B.length===0)return;Q=!0;while(B.length>0){let{args:I,resolve:Z,reject:G,context:F}=B.shift();try{let Y=await A.apply(F,I);Z(Y)}catch(Y){G(Y)}}if(Q=!1,B.length>0)D()}return function(...I){return new Promise((Z,G)=>{B.push({args:I,resolve:Z,reject:G,context:this}),D()})}}function LF1(A){return{haiku35:ra[A],sonnet35:j_[A],sonnet37:__[A],sonnet40:QK[A],opus40:dN[A]}}async function a2Q(){let A;try{A=await ez0()}catch(G){return f1(G),LF1("bedrock")}if(!A?.length)return LF1("bedrock");let B=oh(A,"claude-3-5-haiku-20241022"),Q=oh(A,"claude-3-5-sonnet-20241022"),D=oh(A,"claude-3-7-sonnet-20250219"),I=oh(A,"claude-sonnet-4-20250514"),Z=oh(A,"claude-opus-4-20250514");return{haiku35:B||ra.bedrock,sonnet35:Q||j_.bedrock,sonnet37:D||__.bedrock,sonnet40:I||QK.bedrock,opus40:Z||dN.bedrock}}var r2Q=$F1(async()=>{if(H91()!==null)return;try{let A=await a2Q();jq1(A)}catch(A){f1(A)}});function s2Q(){if(H91()!==null)return;if(F7()!=="bedrock"){jq1(LF1(F7()));return}r2Q()}function YF(){let A=H91();if(A===null)return s2Q(),LF1(F7());return A}var o2Q=QK,AU0=o2Q.firstParty;function Rj(){return process.env.ANTHROPIC_SMALL_FAST_MODEL||YF().haiku35}function eh(A){return A===YF().opus40}function Au(){let A,B=L8A();if(B!==void 0)A=B;else A=process.env.ANTHROPIC_MODEL||_Q().model||void 0;if(NB()&&!QG()&&A?.includes("opus"))return;return A}function f5(){let A=Au();if(A!==void 0&&A!==null)return Bu(A);if(A===null&&IS())return WX();return Qo()}function BU0(){if(F7()==="bedrock")return YF().sonnet37;return YF().sonnet40}var hL4=T0(()=>{return null});function Qo(A={}){let{forDisplay:B=!1}=A;if(QG())return YF().opus40;return BU0()}function WX(){return BU0()}function MK(A){let B=A.match(/(claude-(\d+-\d+-)?\w+)/);if(B&&B[1])return B[1];return A}function MF1(){if(NB()&&!QG())return RF1.description;let A=GA().fallbackAvailableWarningThreshold;if(A===void 0)return"Use Opus 4 or Sonnet 4 based on Max usage limits";return`Opus 4 for up to ${(A*100).toFixed(0)}% of usage limits, then use Sonnet 4`}function Oj(A){if(A===YF().opus40)return"Opus 4";if(A===YF().sonnet40)return"Sonnet 4";if(A===YF().sonnet37)return"Sonnet 3.7";if(A===YF().sonnet35)return"Sonnet 3.5";if(A===YF().haiku35)return"Haiku 3.5";return A}function Mj(){if(NB()&&!QG())return{value:null,label:"Sonnet",description:RF1.description};if(QG())return{value:null,label:"Default (recommended)",description:MF1()};return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${Oj(Qo({forDisplay:!0}))}) · $3/$15 per Mtok`}}var QU0={value:"sonnet",label:"Sonnet",description:"Sonnet 4 for daily use · $3/$15 per Mtok"},Ju1={value:"opus",label:"Opus",description:"Opus 4 for complex tasks · $15/$75 per Mtok"},t2Q={value:"opus",label:"Opus",description:"Opus 4 for complex tasks · Reaches usage limits ~5x faster"},RF1={value:"sonnet",label:"Sonnet",description:"Sonnet 4 for daily use"};function e2Q(){if(NB()&&!QG())return[Mj()];if(QG())return[Mj(),t2Q,RF1];if(F7()==="bedrock")return[Mj(),QU0,Ju1];return[Mj(),Ju1]}function DU0(){let A=e2Q(),B=null,Q=Au(),D=E91();if(Q!==void 0&&Q!==null)B=Q;else if(D!==null)B=D;if(B===null||A.some((I)=>I.value===B))return A;if(IU0(B))A.push(B==="sonnet"?QU0:Ju1);else A.push({value:B,label:B,description:"Custom model"});return A}function IU0(A){return["sonnet","opus"].includes(A)}function Bu(A){let B=A.toLowerCase().trim();if(IU0(B))return B==="sonnet"?YF().sonnet40:YF().opus40;return B}function Tj(A){if(A===null){if(NB()&&!QG())return`Sonnet (${RF1.description})`;else if(NB())return`Default (${MF1()})`;return`Default (${Qo({forDisplay:!0})})`}let B=Bu(A);return A===B?B:`${A} (${B})`}function ZU0(A){return A}var GU0={},Pj=null,FU0=T0(()=>{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return null;let A=Sf(),B={networkConfig:{api:"https://statsig.anthropic.com/v1/"},environment:{tier:["test","dev"].includes("production")?"development":"production"},includeCurrentPageUrlWithEvents:!1,logLevel:OF1.LogLevel.None,storageProvider:new RO1,customUserCacheKeyFunc:(D,I)=>{return BBQ("sha1").update(D).update(I.userID||"").digest("hex").slice(0,10)}};Pj=new OF1.StatsigClient(XVA,A,B),Pj.on("error",()=>{N9.head("https://api.anthropic.com/api/hello").catch(()=>{})});let Q=Pj.initializeAsync().then(()=>{});return process.on("beforeExit",async()=>{await Pj?.flush()}),process.on("exit",()=>{Pj?.flush()}),{client:Pj,initialized:Q}}),Sj=T0(async()=>{let A=FU0();if(!A)return null;return await A.initialized,A.client});function YU0(){Pj=null,FU0.cache?.clear?.(),Sj.cache?.clear?.(),DBQ.cache?.clear?.(),WJ.cache?.clear?.()}async function QBQ(A,B){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return;try{let Q=B.model?String(B.model):f5(),D=EY(Q),[I,Z,G]=await Promise.all([Sj(),nA.getPackageManagers(),nA.getRuntimes()]);if(!I)return;let F={...B,model:Q,sessionId:jB(),userType:"external",...D.length>0?{betas:D.join(",")}:{},env:JSON.stringify({platform:nA.platform,nodeVersion:nA.nodeVersion,terminal:nA.terminal,packageManagers:Z.join(","),runtimes:G.join(","),isRunningWithBun:nA.isRunningWithBun(),isCi:_4(!1),isClaubbit:process.env.CLAUBBIT==="true",isGithubAction:process.env.GITHUB_ACTIONS==="true",isClaudeCodeAction:process.env.CLAUDE_CODE_ACTION==="1"||process.env.CLAUDE_CODE_ACTION==="true",isClaudeAiAuth:NB(),version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,...process.env.GITHUB_ACTIONS==="true"&&{githubEventName:process.env.GITHUB_EVENT_NAME,githubActionsRunnerEnvironment:process.env.RUNNER_ENVIRONMENT,githubActionsRunnerOs:process.env.RUNNER_OS}}),entrypoint:process.env.CLAUDE_CODE_ENTRYPOINT,isInteractive:String(v8A()),clientType:g8A(),...void 0,...!1},Y={eventName:A,metadata:F};I.logEvent(Y),await I.flush()}catch(Q){}}function E1(A,B){QBQ(A,B)}var WJ=T0(async(A)=>{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return!1;let B=await Sj();if(!B)return!1;let Q=B.checkGate(A);return GU0[A]=Q,Q});function WU0(){return{...GU0}}var DBQ=T0(async(A,B)=>{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return B;let Q=await Sj();if(!Q)return B;let D=Q.getExperiment(A);if(Object.keys(D.value).length===0)return B;return D.value});async function RK(A,B){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return B;let Q=await Sj();if(!Q)return B;let D=Q.getDynamicConfig(A);if(Object.keys(D.value).length===0)return B;return D.value}var JU0=T0(RK);function CU0(){nR.init({dsn:CVA,environment:"external",release:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,defaultIntegrations:!1,tracesSampleRate:1,tracePropagationTargets:["localhost"]})}function TF1(A){try{let B=Sf();nR.setExtras({nodeVersion:nA.nodeVersion,platform:nA.platform,isCI:nA.isCI,isTest:!1,packageVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,sessionId:jB(),statsigGates:WU0(),terminal:nA.terminal,userType:"external"}),nR.setUser({id:B.userID,email:B.email}),nR.captureException(A)}catch{}}import{join as Do}from"path";import{basename as ZBQ}from"path";var IBQ=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function OK(A){if(typeof A!=="string")return null;return IBQ.test(A)?A:null}var Xu1=lA();function Io(){return Do(x9(),"projects")}function SF1(){let A=PF1(Xu1);return Do(A,`${jB()}.jsonl`)}function GBQ(){return"production"}function XU0(){return"external"}function PF1(A){return Do(Io(),A.replace(/[^a-zA-Z0-9]/g,"-"))}var Cu1=null;function Hq(){if(!Cu1)Cu1=new VU0;return Cu1}class VU0{summaries;messages;checkpoints;didLoad=!1;sessionFile=null;constructor(){this.summaries=new Map,this.messages=new Map,this.checkpoints=new Map}async insertMessageChain(A,B=!1){let Q=null;for(let D of A){let I={parentUuid:Q,isSidechain:B,userType:XU0(),cwd:lA(),sessionId:jB(),version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,...D};this.messages.set(D.uuid,I),await this.appendEntry(I),Q=D.uuid}}async insertCheckpoint(A){let B=jB(),Q={type:"checkpoint",sessionId:B,commit:A.commit,timestamp:A.timestamp.toISOString(),label:A.label};if(!this.checkpoints.has(B))this.checkpoints.set(B,[]);this.checkpoints.get(B)?.push(Q),await this.appendEntry(Q)}async appendEntry(A){if(GBQ()==="test"||_Q().cleanupPeriodDays===0)return;let B=v1();if(this.sessionFile===null){let D=PF1(Xu1);try{B.statSync(D)}catch{B.mkdirSync(D)}this.sessionFile=SF1();try{B.statSync(this.sessionFile)}catch{B.writeFileSync(this.sessionFile,"",{encoding:"utf8",flush:!0})}}let Q=jB();if(A.type==="summary")B.appendFileSync(this.sessionFile,JSON.stringify(A)+`
623
+ `)}catch(Q){f1(Q instanceof Error?Q:new Error(String(Q)))}}function rj1(){switch(n4()){case"macos":return"/Library/Application Support/ClaudeCode";default:return"/etc/claude-code"}}function W89(){return ha(rj1(),"managed-settings.json")}function J89(A){if(!v1().existsSync(A))return null;try{let B=AI(A),Q=S4(B),D=WcA.safeParse(Q);if(!D.success)return f1(new Error(`Invalid settings: ${D.error.message}`)),null;return D.data}catch(B){if(typeof B==="object"&&B&&"code"in B&&B.code==="ENOENT")xA(`Broken symlink or missing file encountered for settings.json at path: ${A}`);else f1(B instanceof Error?B:new Error(String(B)));return null}}function x51(A){switch(A){case"userSettings":return BpA(x9());case"policySettings":case"projectSettings":case"localSettings":return BpA(Y9())}}function f51(A){switch(A){case"userSettings":return ha(x51(A),"settings.json");case"projectSettings":case"localSettings":return ha(x51(A),ua(A));case"policySettings":return W89()}}function ua(A){switch(A){case"projectSettings":return ha(".claude","settings.json");case"localSettings":return ha(".claude","settings.local.json")}}function VY(A){return J89(f51(A))}function L3(A,B){if(A==="policySettings")return;let Q=f51(A),D=Y89(Q);if(!v1().existsSync(D))v1().mkdirSync(D);let Z={...VY(A),...B};if(uN(Q,JSON.stringify(Z,null,2)),A==="localSettings")d51(ua("localSettings"),Y9())}function C89(A,B){let Q=[...A,...B];return Array.from(new Set(Q))}function _Q(){let A={};for(let B of dM){let Q=VY(B);if(Q)A=Mq1(A,Q,(D,I)=>{if(Array.isArray(D)&&Array.isArray(I))return C89(D,I);return})}return A}function c51(A,B=300000){let Q=new Map,D=(...I)=>{let Z=JSON.stringify(I),G=Q.get(Z),F=Date.now();if(!G)Q.set(Z,{value:A(...I),timestamp:F,refreshing:!1});if(G&&F-G.timestamp>B&&!G.refreshing)return G.refreshing=!0,Promise.resolve().then(()=>{let Y=A(...I);Q.set(Z,{value:Y,timestamp:Date.now(),refreshing:!1})}).catch((Y)=>{f1(Y instanceof Error?Y:new Error(String(Y)));let W=Q.get(Z);if(W)W.refreshing=!1}),G.value;return Q.get(Z).value};return D.cache={clear:()=>Q.clear()},D}import{createHash as X89}from"crypto";function ma(A=""){let B=x9(),D=!process.env.CLAUDE_CONFIG_DIR?"":`-${X89("sha256").update(B).digest("hex").substring(0,8)}`;return`${A2}${A}${D}`}function QpA(){let A=ma("-credentials");return{name:"keychain",read(){try{let B=$D(`security find-generic-password -a $USER -w -s "${A}"`);if(B)return JSON.parse(B)}catch(B){return null}return null},update(B){try{let D=JSON.stringify(B).replace(/"/g,"\\\""),I=`security add-generic-password -U -a $USER -s "${A}" -w "${D}"`;return $D(I),{success:!0}}catch(Q){return{success:!1}}},delete(){try{return $D(`security delete-generic-password -a $USER -s "${A}"`),!0}catch(B){return!1}}}}import{join as V89}from"path";function sj1(){let A=x9(),B=".credentials.json",Q=V89(A,".credentials.json");return{name:"plaintext",read(){if(v1().existsSync(Q))try{let D=v1().readFileSync(Q,{encoding:"utf8"});return JSON.parse(D)}catch(D){return null}return null},update(D){try{if(!v1().existsSync(A))v1().mkdirSync(A);return v1().writeFileSync(Q,JSON.stringify(D),{encoding:"utf8",flush:!1}),v1().chmodSync(Q,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch(I){return{success:!1}}},delete(){if(v1().existsSync(Q))try{return v1().unlinkSync(Q),!0}catch(D){return!1}return!0}}}function K89(A,B){return{name:`${A.name}-with-${B.name}-fallback`,read(){let Q=A.read();if(Q!==null&&Q!==void 0)return Q;return B.read()||{}},update(Q){let D=A.read(),I=A.update(Q);if(I.success){if(D===null)B.delete();return I}let Z=B.update(Q);if(Z.success)return{success:!0,warning:Z.warning};return{success:!1}},delete(){let Q=A.delete(),D=B.delete();return Q||D}}}function rW(){if(process.platform==="darwin"){let A=QpA(),B=sj1();return K89(A,B)}return sj1()}async function DpA(A){let Q=GA().oauthAccount?.accountUuid,D=QZ(A);if(!Q||!D)return;let I=`${N3().BASE_API_URL}/api/claude_cli_profile`;try{return(await N9.get(I,{headers:{"x-api-key":D,"anthropic-beta":Jv},params:{account_uuid:Q}})).data}catch(Z){f1(Z)}}async function p51(A){let B=`${N3().BASE_API_URL}/api/oauth/profile`;try{return(await N9.get(B,{headers:{Authorization:`Bearer ${A}`,"Content-Type":"application/json"}})).data}catch(Q){f1(Q)}}function aM(A){return Boolean(A?.includes(OO1))}function l51(A){return A?.split(" ").filter(Boolean)??[]}function oj1({codeChallenge:A,state:B,isManual:Q,loginWithClaudeAi:D,inferenceOnly:I}){let Z=D?N3().CLAUDE_AI_AUTHORIZE_URL:N3().CONSOLE_AUTHORIZE_URL,G=new URL(Z);G.searchParams.append("code","true"),G.searchParams.append("client_id",N3().CLIENT_ID),G.searchParams.append("response_type","code"),G.searchParams.append("redirect_uri",Q?N3().MANUAL_REDIRECT_URL:`http://localhost:${N3().REDIRECT_PORT}/callback`);let F=I?[OO1]:N3().SCOPES;return G.searchParams.append("scope",F.join(" ")),G.searchParams.append("code_challenge",A),G.searchParams.append("code_challenge_method","S256"),G.searchParams.append("state",B),G.toString()}async function IpA(A,B,Q,D=!1,I){let Z={grant_type:"authorization_code",code:A,redirect_uri:D?N3().MANUAL_REDIRECT_URL:`http://localhost:${N3().REDIRECT_PORT}/callback`,client_id:N3().CLIENT_ID,code_verifier:Q,state:B};if(I!==void 0)Z.expires_in=I;let G=await N9.post(N3().TOKEN_URL,Z,{headers:{"Content-Type":"application/json"}});if(G.status!==200)throw new Error(G.status===401?"Authentication failed: Invalid authorization code":`Token exchange failed (${G.status}): ${G.statusText}`);return G.data}async function ZpA(A){let B={grant_type:"refresh_token",refresh_token:A,client_id:N3().CLIENT_ID};try{let Q=await N9.post(N3().TOKEN_URL,B,{headers:{"Content-Type":"application/json"}});if(Q.status!==200)throw new Error(`Token refresh failed: ${Q.statusText}`);let D=Q.data,{access_token:I,refresh_token:Z=A,expires_in:G}=D,F=Date.now()+G*1000,Y=l51(D.scope);E1("tengu_oauth_token_refresh_success",{});let W=await tj1(I);return{accessToken:I,refreshToken:Z,expiresAt:F,scopes:Y,subscriptionType:W}}catch(Q){throw E1("tengu_oauth_token_refresh_failure",{}),Q}}async function GpA(A){let B=await N9.get(N3().ROLES_URL,{headers:{Authorization:`Bearer ${A}`}});if(B.status!==200)throw new Error(`Failed to fetch user roles: ${B.statusText}`);let Q=B.data,D=GA();if(!D.oauthAccount)throw new Error("OAuth account information not found in config");D.oauthAccount.organizationRole=Q.organization_role,D.oauthAccount.workspaceRole=Q.workspace_role,D.oauthAccount.organizationName=Q.organization_name,x0(D),E1("tengu_oauth_roles_stored",{org_role:Q.organization_role})}async function FpA(A){try{let B=await N9.post(N3().API_KEY_URL,null,{headers:{Authorization:`Bearer ${A}`}}),Q=B.data?.raw_key;if(Q)return YpA(Q),E1("tengu_oauth_api_key",{status:"success",statusCode:B.status}),Q;return null}catch(B){throw E1("tengu_oauth_api_key",{status:"failure",error:B instanceof Error?B.message:String(B)}),B}}function i51(A){if(A===null)return!1;let B=300000;return Date.now()+B>=A}async function tj1(A){switch((await p51(A))?.organization?.organization_type){case"claude_max":return"max";case"claude_pro":return"pro";case"claude_enterprise":return"enterprise";case"claude_team":return"team";default:return null}}var xpA=G1(I71(),1);var D59=300000;function mC(){let A=process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX,B=_Q().apiKeyHelper,Q=process.env.ANTHROPIC_AUTH_TOKEN||B,{source:D}=dC(z91());return!(A||Q||(D==="ANTHROPIC_API_KEY"||D==="apiKeyHelper"))}function Z71(){if(process.env.ANTHROPIC_AUTH_TOKEN)return{source:"ANTHROPIC_AUTH_TOKEN",hasToken:!0};if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{source:"CLAUDE_CODE_OAUTH_TOKEN",hasToken:!0};if(S_())return{source:"apiKeyHelper",hasToken:!0};let B=m7();if(aM(B?.scopes)&&B?.accessToken)return{source:"claude.ai",hasToken:!0};return{source:"none",hasToken:!1}}function QZ(A){let{key:B}=dC(A);return B}function dC(A){if(A&&process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};if(_4(!1)){if(!process.env.ANTHROPIC_API_KEY&&!process.env.CLAUDE_CODE_OAUTH_TOKEN)throw new Error("ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN env var is required");if(process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};return{key:null,source:"none"}}if(process.env.ANTHROPIC_API_KEY&&GA().customApiKeyResponses?.approved?.includes(sW(process.env.ANTHROPIC_API_KEY)))return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};let B=S_();if(B)return{key:B,source:"apiKeyHelper"};let Q=na();if(Q)return Q;return{key:null,source:"none"}}function I59(){let A=process.env.CLAUDE_CODE_API_KEY_HELPER_TTL_MS;if(A){let B=parseInt(A,10);if(!Number.isNaN(B)&&B>=0)return B;cB(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${A}`)}return D59}var S_=c51(()=>{let B=_Q().apiKeyHelper;if(!B)return null;try{let Q=$D(B)?.toString().trim();if(!Q)throw new Error("apiKeyHelper did not return a valid value");return Q}catch(Q){let D=WA.red("Error getting API key from apiKeyHelper (in settings or ~/.claude.json):");if(Q instanceof Error&&"stderr"in Q)console.error(D,String(Q.stderr));else if(Q instanceof Error)console.error(D,Q.message);else console.error(D,Q);return" "}},I59());function fpA(){S_.cache.clear()}function sW(A){return A.slice(-20)}var na=T0(()=>{if(process.platform==="darwin"){let B=ma();try{let Q=$D(`security find-generic-password -a $USER -w -s "${B}"`);if(Q)return{key:Q,source:"/login managed key"}}catch(Q){f1(Q)}}let A=GA();if(!A.primaryApiKey)return null;return{key:A.primaryApiKey,source:"/login managed key"}});function Z59(A){return/^[a-zA-Z0-9-_]+$/.test(A)}function YpA(A){if(!Z59(A))throw new Error("Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.");let B=GA();if(gpA(),process.platform==="darwin")try{let D=ma();$D(`security add-generic-password -a $USER -s "${D}" -w ${A}`)}catch(D){f1(D),B.primaryApiKey=A}else B.primaryApiKey=A;if(!B.customApiKeyResponses)B.customApiKeyResponses={approved:[],rejected:[]};if(!B.customApiKeyResponses.approved)B.customApiKeyResponses.approved=[];let Q=sW(A);if(!B.customApiKeyResponses.approved.includes(Q))B.customApiKeyResponses.approved.push(Q);x0(B),na.cache.clear?.()}function vpA(A){let B=GA(),Q=sW(A);return B.customApiKeyResponses?.approved?.includes(Q)??!1}function bpA(){gpA();let A=GA();A.primaryApiKey=void 0,x0(A),na.cache.clear?.()}function gpA(){if(process.platform==="darwin")try{let A=ma();$D(`security delete-generic-password -a $USER -s "${A}"`)}catch(A){f1(A)}}function aa(A){if(!aM(A.scopes))return{success:!0};if(!A.refreshToken||!A.expiresAt)return{success:!0};try{let B=rW(),Q=B.read()||{};Q.claudeAiOauth={accessToken:A.accessToken,refreshToken:A.refreshToken,expiresAt:A.expiresAt,scopes:A.scopes,subscriptionType:A.subscriptionType};let D=B.update(Q);return m7.cache?.clear?.(),EY.cache?.clear?.(),D}catch(B){return f1(B),{success:!1,warning:"Failed to save OAuth tokens"}}}var m7=T0(()=>{if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{accessToken:process.env.CLAUDE_CODE_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:["user:inference"],subscriptionType:null};try{let Q=rW().read()?.claudeAiOauth;if(!Q?.accessToken)return null;if(!Q.subscriptionType){let D=Q.isMax===!1?"pro":"max";return{...Q,subscriptionType:D}}return Q}catch(A){return f1(A),null}});async function G71(A=0){let Q=m7();if(!Q?.refreshToken||!i51(Q.expiresAt))return!1;if(m7.cache?.clear?.(),Q=m7(),!Q?.refreshToken||!i51(Q.expiresAt))return!1;let D=x9();v1().mkdirSync(D);let Z;try{Z=await xpA.lock(D)}catch(G){if(G.code==="ELOCKED"){if(A<5)return await new Promise((F)=>setTimeout(F,1000+Math.random()*1000)),G71(A+1);return!1}return f1(G),!1}try{if(m7.cache?.clear?.(),Q=m7(),!Q?.refreshToken||!i51(Q.expiresAt))return!1;let G=await ZpA(Q.refreshToken);return aa({...G,scopes:Q.scopes}),m7.cache?.clear?.(),!0}catch(G){return f1(G instanceof Error?G:new Error(String(G))),!1}finally{await Z()}}function NB(){if(!mC())return!1;return aM(m7()?.scopes)}function hpA(){if(process.env.CLAUDE_CODE_USE_BEDROCK==="true"||process.env.CLAUDE_CODE_USE_VERTEX==="true")return!1;if(NB())return!1;return!0}function QG(){let A=mpA();return A==="max"||A==="enterprise"||A==="team"}function upA(){return QG()}function mpA(){if(!mC())return null;let A=m7();if(!A)return null;return A.subscriptionType??null}function F71(){switch(mpA()){case"enterprise":return"Claude Enterprise";case"team":return"Claude Team";case"max":return"Claude Max";case"pro":return"Claude Pro";default:return"Claude API"}}function eb(){return!!(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX)}function G59(A){let B=F7();if(B==="bedrock")return!1;else if(B==="firstParty")return A.includes("claude-3-7")||A.includes("claude-opus-4")||A.includes("claude-sonnet-4");else return A.includes("claude-opus-4")||A.includes("claude-sonnet-4")}var EY=T0((A)=>{let B=[],Q=A.includes("haiku");if(!Q)B.push(kwA);if(NB())B.push(Jv);if(!_4(process.env.DISABLE_INTERLEAVED_THINKING)&&G59(A))B.push(T41);if(F7()==="firstParty"&&!_4(process.env.CLAUDE_CODE_DISABLE_FINE_GRAINED_TOOL_STREAMING))B.push(xwA);if(process.env.ANTHROPIC_BETAS&&!Q)B.push(...process.env.ANTHROPIC_BETAS.split(",").map((I)=>I.trim()).filter(Boolean));return B});var __={firstParty:"claude-3-7-sonnet-20250219",bedrock:"us.anthropic.claude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219"},j_={firstParty:"claude-3-5-sonnet-20241022",bedrock:"anthropic.claude-3-5-sonnet-20241022-v2:0",vertex:"claude-3-5-sonnet-v2@20241022"},ra={firstParty:"claude-3-5-haiku-20241022",bedrock:"us.anthropic.claude-3-5-haiku-20241022-v1:0",vertex:"claude-3-5-haiku@20241022"},QK={firstParty:"claude-sonnet-4-20250514",bedrock:"us.anthropic.claude-sonnet-4-20250514-v1:0",vertex:"claude-sonnet-4@20250514"},dN={firstParty:"claude-opus-4-20250514",bedrock:"us.anthropic.claude-opus-4-20250514-v1:0",vertex:"claude-opus-4@20250514"};function dpA(A){let B=A.toLowerCase();if(B.includes("claude-sonnet-4"))return"Sonnet 4";if(B.includes("claude-opus-4"))return"Opus 4";if(B.includes("claude-3-7-sonnet"))return"Claude 3.7 Sonnet";if(B.includes("claude-3-5-sonnet"))return"Claude 3.5 Sonnet";if(B.includes("claude-3-5-haiku"))return"Claude 3.5 Haiku";return}var qF1=G1(UY0(),1);var nz0=G1(sg(),1),az0=G1(Vz(),1);var wF1=G1(ub1(),1);var NF1=G1(Wu1(),1);import{Agent as n2Q}from"https";var cz0=G1(Wu1(),1);var Eq=T0(()=>{let A={};if(process.env.CLAUDE_CODE_CLIENT_CERT)try{A.cert=v1().readFileSync(process.env.CLAUDE_CODE_CLIENT_CERT,{encoding:"utf8"}),xA("mTLS: Loaded client certificate from CLAUDE_CODE_CLIENT_CERT")}catch(B){cB(`mTLS: Failed to load client certificate: ${B}`)}if(process.env.CLAUDE_CODE_CLIENT_KEY)try{A.key=v1().readFileSync(process.env.CLAUDE_CODE_CLIENT_KEY,{encoding:"utf8"}),xA("mTLS: Loaded client key from CLAUDE_CODE_CLIENT_KEY")}catch(B){cB(`mTLS: Failed to load client key: ${B}`)}if(process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE)A.passphrase=process.env.CLAUDE_CODE_CLIENT_KEY_PASSPHRASE,xA("mTLS: Using client key passphrase");if(Object.keys(A).length===0)return;return A}),pz0=T0(()=>{let A=Eq();if(!A)return;let B={...A,keepAlive:!0};return xA("mTLS: Creating HTTPS agent with custom certificates"),new n2Q(B)});function lz0(){let A=Eq();if(!A)return;return{cert:A.cert,key:A.key,passphrase:A.passphrase}}function $j(){let A=Eq();if(!A)return{};let B={cert:A.cert,key:A.key,passphrase:A.passphrase},Q=new cz0.Agent({connect:B,pipelining:1});return xA("mTLS: Created undici agent with custom certificates"),{dispatcher:Q}}function iz0(){if(!Eq())return;if(process.env.NODE_EXTRA_CA_CERTS)xA("NODE_EXTRA_CA_CERTS detected - Node.js will automatically append to built-in CAs")}function Lj(){return process.env.https_proxy||process.env.HTTPS_PROXY||process.env.http_proxy||process.env.HTTP_PROXY}var rz0=T0((A)=>{let B=Eq(),Q={uri:A,pipelining:1};if(B)Q.requestTls={cert:B.cert,key:B.key,passphrase:B.passphrase};return new NF1.default.ProxyAgent(Q)});function sz0(){let A=Lj(),B=$j();if(A)return{dispatcher:rz0(A)};return B}function oz0(){let A=Lj(),B=pz0(),Q=Eq();if(A){if(N9.defaults.proxy=!1,Q)N9.defaults.httpsAgent=new wF1.default.HttpsProxyAgent(A,{cert:Q.cert,key:Q.key,passphrase:Q.passphrase});else N9.defaults.httpsAgent=new wF1.default.HttpsProxyAgent(A);NF1.default.setGlobalDispatcher(rz0(A))}else if(B){N9.defaults.httpsAgent=B;let D=$j();if(D.dispatcher)NF1.default.setGlobalDispatcher(D.dispatcher)}}function tz0(){let A=Lj();if(!A)return{};let B=new wF1.default.HttpsProxyAgent(A),Q=new az0.NodeHttpHandler({httpAgent:B,httpsAgent:B});return{requestHandler:Q,credentials:nz0.defaultProvider({clientConfig:{requestHandler:Q}})}}var ez0=T0(async function(){let A=th(),B=new qF1.BedrockClient({region:A,...tz0()}),Q=new qF1.ListInferenceProfilesCommand;try{return((await B.send(Q)).inferenceProfileSummaries||[]).filter((F)=>F.inferenceProfileId?.includes("anthropic")).map((F)=>F.inferenceProfileId).filter(Boolean)}catch(D){throw f1(D),D}});function oh(A,B){return A.find((Q)=>Q.includes(B))??null}function $F1(A){let B=[],Q=!1;async function D(){if(Q)return;if(B.length===0)return;Q=!0;while(B.length>0){let{args:I,resolve:Z,reject:G,context:F}=B.shift();try{let Y=await A.apply(F,I);Z(Y)}catch(Y){G(Y)}}if(Q=!1,B.length>0)D()}return function(...I){return new Promise((Z,G)=>{B.push({args:I,resolve:Z,reject:G,context:this}),D()})}}function LF1(A){return{haiku35:ra[A],sonnet35:j_[A],sonnet37:__[A],sonnet40:QK[A],opus40:dN[A]}}async function a2Q(){let A;try{A=await ez0()}catch(G){return f1(G),LF1("bedrock")}if(!A?.length)return LF1("bedrock");let B=oh(A,"claude-3-5-haiku-20241022"),Q=oh(A,"claude-3-5-sonnet-20241022"),D=oh(A,"claude-3-7-sonnet-20250219"),I=oh(A,"claude-sonnet-4-20250514"),Z=oh(A,"claude-opus-4-20250514");return{haiku35:B||ra.bedrock,sonnet35:Q||j_.bedrock,sonnet37:D||__.bedrock,sonnet40:I||QK.bedrock,opus40:Z||dN.bedrock}}var r2Q=$F1(async()=>{if(H91()!==null)return;try{let A=await a2Q();jq1(A)}catch(A){f1(A)}});function s2Q(){if(H91()!==null)return;if(F7()!=="bedrock"){jq1(LF1(F7()));return}r2Q()}function YF(){let A=H91();if(A===null)return s2Q(),LF1(F7());return A}var o2Q=QK,AU0=o2Q.firstParty;function Rj(){return process.env.ANTHROPIC_SMALL_FAST_MODEL||YF().haiku35}function eh(A){return A===YF().opus40}function Au(){let A,B=L8A();if(B!==void 0)A=B;else A=process.env.ANTHROPIC_MODEL||_Q().model||void 0;if(NB()&&!QG()&&A?.includes("opus"))return;return A}function f5(){let A=Au();if(A!==void 0&&A!==null)return Bu(A);if(A===null&&IS())return WX();return Qo()}function BU0(){if(F7()==="bedrock")return YF().sonnet37;return YF().sonnet40}var hL4=T0(()=>{return null});function Qo(A={}){let{forDisplay:B=!1}=A;if(QG())return YF().opus40;return BU0()}function WX(){return BU0()}function MK(A){let B=A.match(/(claude-(\d+-\d+-)?\w+)/);if(B&&B[1])return B[1];return A}function MF1(){if(NB()&&!QG())return RF1.description;let A=GA().fallbackAvailableWarningThreshold;if(A===void 0)return"Use Opus 4 or Sonnet 4 based on Max usage limits";return`Opus 4 for up to ${(A*100).toFixed(0)}% of usage limits, then use Sonnet 4`}function Oj(A){if(A===YF().opus40)return"Opus 4";if(A===YF().sonnet40)return"Sonnet 4";if(A===YF().sonnet37)return"Sonnet 3.7";if(A===YF().sonnet35)return"Sonnet 3.5";if(A===YF().haiku35)return"Haiku 3.5";return A}function Mj(){if(NB()&&!QG())return{value:null,label:"Sonnet",description:RF1.description};if(QG())return{value:null,label:"Default (recommended)",description:MF1()};return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${Oj(Qo({forDisplay:!0}))}) · $3/$15 per Mtok`}}var QU0={value:"sonnet",label:"Sonnet",description:"Sonnet 4 for daily use · $3/$15 per Mtok"},Ju1={value:"opus",label:"Opus",description:"Opus 4 for complex tasks · $15/$75 per Mtok"},t2Q={value:"opus",label:"Opus",description:"Opus 4 for complex tasks · Reaches usage limits ~5x faster"},RF1={value:"sonnet",label:"Sonnet",description:"Sonnet 4 for daily use"};function e2Q(){if(NB()&&!QG())return[Mj()];if(QG())return[Mj(),t2Q,RF1];if(F7()==="bedrock")return[Mj(),QU0,Ju1];return[Mj(),Ju1]}function DU0(){let A=e2Q(),B=null,Q=Au(),D=E91();if(Q!==void 0&&Q!==null)B=Q;else if(D!==null)B=D;if(B===null||A.some((I)=>I.value===B))return A;if(IU0(B))A.push(B==="sonnet"?QU0:Ju1);else A.push({value:B,label:B,description:"Custom model"});return A}function IU0(A){return["sonnet","opus"].includes(A)}function Bu(A){let B=A.toLowerCase().trim();if(IU0(B))return B==="sonnet"?YF().sonnet40:YF().opus40;return B}function Tj(A){if(A===null){if(NB()&&!QG())return`Sonnet (${RF1.description})`;else if(NB())return`Default (${MF1()})`;return`Default (${Qo({forDisplay:!0})})`}let B=Bu(A);return A===B?B:`${A} (${B})`}function ZU0(A){return A}var GU0={},Pj=null,FU0=T0(()=>{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return null;let A=Sf(),B={networkConfig:{api:"https://statsig.anthropic.com/v1/"},environment:{tier:["test","dev"].includes("production")?"development":"production"},includeCurrentPageUrlWithEvents:!1,logLevel:OF1.LogLevel.None,storageProvider:new RO1,customUserCacheKeyFunc:(D,I)=>{return BBQ("sha1").update(D).update(I.userID||"").digest("hex").slice(0,10)}};Pj=new OF1.StatsigClient(XVA,A,B),Pj.on("error",()=>{N9.head("https://api.anthropic.com/api/hello").catch(()=>{})});let Q=Pj.initializeAsync().then(()=>{});return process.on("beforeExit",async()=>{await Pj?.flush()}),process.on("exit",()=>{Pj?.flush()}),{client:Pj,initialized:Q}}),Sj=T0(async()=>{let A=FU0();if(!A)return null;return await A.initialized,A.client});function YU0(){Pj=null,FU0.cache?.clear?.(),Sj.cache?.clear?.(),DBQ.cache?.clear?.(),WJ.cache?.clear?.()}async function QBQ(A,B){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return;try{let Q=B.model?String(B.model):f5(),D=EY(Q),[I,Z,G]=await Promise.all([Sj(),nA.getPackageManagers(),nA.getRuntimes()]);if(!I)return;let F={...B,model:Q,sessionId:jB(),userType:"external",...D.length>0?{betas:D.join(",")}:{},env:JSON.stringify({platform:nA.platform,nodeVersion:nA.nodeVersion,terminal:nA.terminal,packageManagers:Z.join(","),runtimes:G.join(","),isRunningWithBun:nA.isRunningWithBun(),isCi:_4(!1),isClaubbit:process.env.CLAUBBIT==="true",isGithubAction:process.env.GITHUB_ACTIONS==="true",isClaudeCodeAction:process.env.CLAUDE_CODE_ACTION==="1"||process.env.CLAUDE_CODE_ACTION==="true",isClaudeAiAuth:NB(),version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,...process.env.GITHUB_ACTIONS==="true"&&{githubEventName:process.env.GITHUB_EVENT_NAME,githubActionsRunnerEnvironment:process.env.RUNNER_ENVIRONMENT,githubActionsRunnerOs:process.env.RUNNER_OS}}),entrypoint:process.env.CLAUDE_CODE_ENTRYPOINT,isInteractive:String(v8A()),clientType:g8A(),...void 0,...!1},Y={eventName:A,metadata:F};I.logEvent(Y),await I.flush()}catch(Q){}}function E1(A,B){QBQ(A,B)}var WJ=T0(async(A)=>{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return!1;let B=await Sj();if(!B)return!1;let Q=B.checkGate(A);return GU0[A]=Q,Q});function WU0(){return{...GU0}}var DBQ=T0(async(A,B)=>{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return B;let Q=await Sj();if(!Q)return B;let D=Q.getExperiment(A);if(Object.keys(D.value).length===0)return B;return D.value});async function RK(A,B){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_TELEMETRY||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return B;let Q=await Sj();if(!Q)return B;let D=Q.getDynamicConfig(A);if(Object.keys(D.value).length===0)return B;return D.value}var JU0=T0(RK);function CU0(){nR.init({dsn:CVA,environment:"external",release:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,defaultIntegrations:!1,tracesSampleRate:1,tracePropagationTargets:["localhost"]})}function TF1(A){try{let B=Sf();nR.setExtras({nodeVersion:nA.nodeVersion,platform:nA.platform,isCI:nA.isCI,isTest:!1,packageVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,sessionId:jB(),statsigGates:WU0(),terminal:nA.terminal,userType:"external"}),nR.setUser({id:B.userID,email:B.email}),nR.captureException(A)}catch{}}import{join as Do}from"path";import{basename as ZBQ}from"path";var IBQ=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function OK(A){if(typeof A!=="string")return null;return IBQ.test(A)?A:null}var Xu1=lA();function Io(){return Do(x9(),"projects")}function SF1(){let A=PF1(Xu1);return Do(A,`${jB()}.jsonl`)}function GBQ(){return"production"}function XU0(){return"external"}function PF1(A){return Do(Io(),A.replace(/[^a-zA-Z0-9]/g,"-"))}var Cu1=null;function Hq(){if(!Cu1)Cu1=new VU0;return Cu1}class VU0{summaries;messages;checkpoints;didLoad=!1;sessionFile=null;constructor(){this.summaries=new Map,this.messages=new Map,this.checkpoints=new Map}async insertMessageChain(A,B=!1){let Q=null;for(let D of A){let I={parentUuid:Q,isSidechain:B,userType:XU0(),cwd:lA(),sessionId:jB(),version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,...D};this.messages.set(D.uuid,I),await this.appendEntry(I),Q=D.uuid}}async insertCheckpoint(A){let B=jB(),Q={type:"checkpoint",sessionId:B,commit:A.commit,timestamp:A.timestamp.toISOString(),label:A.label};if(!this.checkpoints.has(B))this.checkpoints.set(B,[]);this.checkpoints.get(B)?.push(Q),await this.appendEntry(Q)}async appendEntry(A){if(GBQ()==="test"||_Q().cleanupPeriodDays===0)return;let B=v1();if(this.sessionFile===null){let D=PF1(Xu1);try{B.statSync(D)}catch{B.mkdirSync(D)}this.sessionFile=SF1();try{B.statSync(this.sessionFile)}catch{B.writeFileSync(this.sessionFile,"",{encoding:"utf8",flush:!0})}}let Q=jB();if(A.type==="summary")B.appendFileSync(this.sessionFile,JSON.stringify(A)+`
624
624
  `);else{let{messageSet:D,checkpointSet:I}=await WBQ(Q);if(A.type==="checkpoint"){if(!I.has(A.commit))B.appendFileSync(this.sessionFile,JSON.stringify(A)+`
625
625
  `),I.add(A.commit)}else if(!D.has(A.uuid))B.appendFileSync(this.sessionFile,JSON.stringify(A)+`
626
626
  `),D.add(A.uuid)}}async getAllTranscripts(){await this.loadAllSessions();let A=[...this.messages.values()],B=new Set(A.map((Q)=>Q.parentUuid));return A.filter((Q)=>!B.has(Q.uuid)).map((Q)=>this.getTranscript(Q)).filter((Q)=>Q.length)}getTranscript(A){let B=[],Q=A;while(Q)B.unshift(Q),Q=Q.parentUuid?this.messages.get(Q.parentUuid):void 0;return B}async getLastLog(A){let{messages:B}=await Eu1(A);if(B.size===0)return null;let D=Array.from(B.values()).sort((G,F)=>new Date(F.timestamp).getTime()-new Date(G.timestamp).getTime())[0];if(!D)return null;let I=[],Z=D;while(Z)I.unshift(Z),Z=Z.parentUuid?B.get(Z.parentUuid):void 0;return I}getAllCheckpoints(A){let B=new Map,Q=A[A.length-1]?.sessionId;if(Q){let D=this.checkpoints.get(Q)?.values()||[];for(let I of D)B.set(I.commit,I)}return Array.from(B.values())}loadAllSessions=T0(async()=>{let A=PF1(Xu1),B=v1();if(this.didLoad)return this;try{B.statSync(A)}catch{return this}let D=B.readdirSync(A).filter((Z)=>Z.isFile()&&Z.name.endsWith(".jsonl")).map((Z)=>Do(A,Z.name)),I=await Promise.all(D.sort((Z,G)=>{let F=B.statSync(Z),Y=B.statSync(G);return F.mtime.getTime()-Y.mtime.getTime()}).map(async(Z)=>{let G=OK(ZBQ(Z,".jsonl"));if(!G)return{sessionId:G,sessionMessages:new Set};let F=new Map,Y=new Map,W=new Map;try{await B.stat(Z);for(let J of await nj1(Z))if(J.type==="user"||J.type==="assistant"||J.type==="attachment"||J.type==="system")F.set(J.uuid,J);else if(J.type==="summary"&&J.leafUuid)Y.set(J.leafUuid,J.summary);else if(J.type==="checkpoint")W.set(J.commit,J)}catch{}return{sessionId:G,sessionMessages:F,summaries:Y,checkpoints:W}}));for(let{sessionId:Z,sessionMessages:G,summaries:F,checkpoints:Y}of I){if(!Z)continue;for(let[W,J]of G.entries())this.messages.set(W,J);for(let[W,J]of F.entries())this.summaries.set(W,J);this.checkpoints.set(Z,Array.from(Y.values()))}return this.didLoad=!0,this})}async function _F1(A){let B=wU0(A);return await Hq().insertMessageChain(B),B[B.length-1]?.uuid||null}async function jF1(A){await Hq().insertMessageChain(wU0(A),!0)}async function Vu1(A){await Hq().insertCheckpoint(A)}async function KU0(){let A=Hq();A.sessionFile=SF1()}function FBQ(A){let B=A.find((I)=>I.type==="user");if(!B||B.type!=="user")return"No prompt";let Q=B.message?.content,D="";if(typeof Q==="string")D=Q;else if(Array.isArray(Q))D=Q.find((Z)=>Z.type==="text")?.text||"No prompt";else D="No prompt";if(D=D.replace(/\n/g," ").trim(),D.length>45)D=D.slice(0,45)+"...";return D}function YBQ(A){return A.map((B)=>{let{isSidechain:Q,parentUuid:D,...I}=B;return I})}function EU0(A,B=0,Q,D){let I=A[A.length-1],Z=A[0],G=FBQ(A),F=new Date(Z.timestamp),Y=new Date(I.timestamp),W=D?.map((J)=>({commit:J.commit,timestamp:new Date(J.timestamp),label:J.label}));return{date:I.timestamp,messages:YBQ(A),fullPath:"n/a",value:B,created:F,modified:Y,firstPrompt:G,messageCount:A.length,isSidechain:Z.isSidechain,leafUuid:I.uuid,summary:Q,checkpoints:W}}async function HU0(){let A=await Hq().getAllTranscripts(),B=Hq().summaries;return A.map((Q,D)=>{let I=Q[Q.length-1],Z=I?B.get(I.uuid):void 0,G=I?Hq().getAllCheckpoints(Q):void 0;return EU0(Q,D,Z,G)}).sort((Q,D)=>{return D.modified.getTime()-Q.modified.getTime()})}async function zU0(A,B){await Hq().appendEntry({type:"summary",summary:B,leafUuid:A})}async function Ku1(A){let B=new Map,Q=new Map,D=new Map;try{let I=await nj1(A);for(let Z of I)if(Z.type==="user"||Z.type==="assistant"||Z.type==="attachment"||Z.type==="system")B.set(Z.uuid,Z);else if(Z.type==="summary"&&Z.leafUuid)Q.set(Z.leafUuid,Z.summary);else if(Z.type==="checkpoint")D.set(Z.commit,Z)}catch{}return{messages:B,summaries:Q,checkpoints:D}}async function Eu1(A){let B=Do(PF1(lA()),`${A}.jsonl`);return Ku1(B)}var WBQ=T0(async(A)=>{let{messages:B,checkpoints:Q}=await Eu1(A);return{messageSet:new Set(B.keys()),checkpointSet:new Set(Q.keys())}},(A)=>A);async function UU0(A){let B=await Hq().getLastLog(A);if(B!==null&&B!==void 0){let Q=B[B.length-1],{summaries:D,checkpoints:I}=await Eu1(A),Z=Q?D.get(Q.uuid):void 0;return EU0(B,0,Z,Array.from(I.values()))}return null}function wU0(A){return A.filter((B)=>{if(B.type==="progress")return!1;if(B.type==="attachment"&&XU0()!=="ant")return!1;return!0})}var yF1=[],CBQ=100;function XBQ(A){return A.toISOString().replace(/[:.]/g,"-")}var Uu1=XBQ(new Date);function VBQ(){return zu1(Jz.errors(),Uu1+".txt")}var Hu1=!1;function f1(A){if(Hu1)return;Hu1=!0;try{if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_ERROR_REPORTING||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return;if(_4(!1))console.error(A);let B=A.stack||A.message,Q={error:B,timestamp:new Date().toISOString()};if(yF1.length>=CBQ)yF1.shift();yF1.push(Q),KBQ(VBQ(),{error:B})}catch{}finally{Hu1=!1}TF1(A)}function NU0(){return[...yF1]}function wu1(A){if(!v1().existsSync(A))return[];try{return JSON.parse(v1().readFileSync(A,{encoding:"utf8"}))}catch{return[]}}function KBQ(A,B){return}async function Qu(){let A=await HU0();return EBQ(A.filter((B)=>B.messages.length)).map((B,Q)=>({...B,value:Q}))}async function qU0(A){return await UU0(A)}async function $U0(A){return(await Qu())[A]||null}function EBQ(A){return A.sort((B,Q)=>{let D=Q.modified.getTime()-B.modified.getTime();if(D!==0)return D;let I=Q.created.getTime()-B.created.getTime();if(I!==0)return I;return B.created.getTime()-Q.created.getTime()})}function RD(A,B){if(cB(WA.red(`MCP server "${A}" ${B}`)),_Q().cleanupPeriodDays===0)return;try{let Q=Jz.mcpLogs(A),D=B instanceof Error?B.stack||B.message:String(B),I=new Date().toISOString(),Z=zu1(Q,Uu1+".txt");if(!v1().existsSync(Q))v1().mkdirSync(Q);if(!v1().existsSync(Z))v1().writeFileSync(Z,"[]",{encoding:"utf8",flush:!1});let G={error:D,timestamp:I,sessionId:jB(),cwd:v1().cwd()},F=wu1(Z);F.push(G),v1().writeFileSync(Z,JSON.stringify(F,null,2),{encoding:"utf8",flush:!1})}catch{}}function k2(A,B){xA(`MCP server "${A}": ${B}`);try{let Q=Jz.mcpLogs(A),D=new Date().toISOString(),I=zu1(Q,Uu1+".txt");if(!v1().existsSync(Q))v1().mkdirSync(Q);if(!v1().existsSync(I))v1().writeFileSync(I,"[]",{encoding:"utf8",flush:!1});let Z={debug:B,timestamp:D,sessionId:jB(),cwd:v1().cwd()},G=wu1(I);G.push(Z),v1().writeFileSync(I,JSON.stringify(G,null,2),{encoding:"utf8",flush:!1})}catch{}}import*as pU0 from"os";import{createHash as PBQ}from"crypto";import{PassThrough as zBQ}from"stream";function zq(A){if(A<60000){let I=(A/1000).toFixed(1);return`${I.endsWith(".0")?I.slice(0,-2):I}s`}let B=Math.floor(A/3600000),Q=Math.floor(A%3600000/60000),D=(A%60000/1000).toFixed(1);if(B>0)return`${B}h ${Q}m ${D}s`;if(Q>0)return`${Q}m ${D}s`;return`${D}s`}function n7(A){let B=A>=1000;return new Intl.NumberFormat("en",{notation:"compact",minimumFractionDigits:B?1:0,maximumFractionDigits:1}).format(A).toLowerCase()}function LU0(A,B={}){let{style:Q="narrow",numeric:D="always",now:I=new Date}=B,Z=A.getTime()-I.getTime(),G=Math.trunc(Z/1000),F=[{unit:"year",seconds:31536000,shortUnit:"y"},{unit:"month",seconds:2592000,shortUnit:"mo"},{unit:"week",seconds:604800,shortUnit:"w"},{unit:"day",seconds:86400,shortUnit:"d"},{unit:"hour",seconds:3600,shortUnit:"h"},{unit:"minute",seconds:60,shortUnit:"m"},{unit:"second",seconds:1,shortUnit:"s"}];for(let{unit:W,seconds:J,shortUnit:C}of F)if(Math.abs(G)>=J){let X=Math.trunc(G/J);if(Q==="narrow"&&J<86400)return G<0?`${Math.abs(X)}${C} ago`:`in ${X}${C}`;return new Intl.RelativeTimeFormat("en",{style:"long",numeric:D}).format(X,W)}if(Q==="narrow")return G<=0?"0s ago":"in 0s";return new Intl.RelativeTimeFormat("en",{style:Q,numeric:D}).format(0,"second")}function kF1(A,B={}){let{now:Q=new Date,...D}=B;if(A>Q)return LU0(A,{...D,now:Q});return LU0(A,{...D,numeric:"always",now:Q})}function Du(A,B=!1){if(!A)return;let Q=new Date(A*1000),D=new Date;if((Q.getTime()-D.getTime())/3600000>24){let W=Q.toLocaleDateString("en-US",{weekday:"short"}),J=Intl.DateTimeFormat().resolvedOptions().timeZone;return{resetTimeDisplay:"on "+W+(B?` (${J})`:""),isWeeklyLimit:!0}}let G=Q.getMinutes(),F=Q.toLocaleTimeString("en-US",{hour:"numeric",minute:G===0?void 0:"2-digit",hour12:!0}),Y=Intl.DateTimeFormat().resolvedOptions().timeZone;return{resetTimeDisplay:"at "+F.replace(/ ([AP]M)/i,(W,J)=>J.toLowerCase())+(B?` (${Y})`:""),isWeeklyLimit:!1}}var kU0=G1(SU0(),1);class qu1{capacity;buffer;head=0;size=0;constructor(A){this.capacity=A;this.buffer=new Array(A)}add(A){if(this.buffer[this.head]=A,this.head=(this.head+1)%this.capacity,this.size<this.capacity)this.size++}addAll(A){for(let B of A)this.add(B)}getRecent(A){let B=[],Q=this.size<this.capacity?0:this.head,D=Math.min(A,this.size);for(let I=0;I<D;I++){let Z=(Q+this.size-D+I)%this.capacity;B.push(this.buffer[Z])}return B}toArray(){if(this.size===0)return[];let A=[],B=this.size<this.capacity?0:this.head;for(let Q=0;Q<this.size;Q++){let D=(B+Q)%this.capacity;A.push(this.buffer[D])}return A}clear(){this.head=0,this.size=0}length(){return this.size}}var _U0=137,jU0=143;function yU0(A){let B=null,Q="";A.on("data",(I)=>{if(B)B.write(I);else Q+=I});let D=()=>Q;return{get:D,asStream(){return B=new zBQ({highWaterMark:10485760}),B.write(D()),Q="",B}}}function xU0(A,B,Q,D){let I="running",Z,G=yU0(A.stdout),F=yU0(A.stderr);if(D){let X=new qu1(10),V=0,K=(E)=>{let q=E.toString().split(`
@@ -720,9 +720,9 @@ The corrupted file has been backed up to: ${Z}
720
720
  You can manually restore it by running: cp "${G}" "${A}"
721
721
 
722
722
  `);else process.stdout.write(`
723
- `)}return ql(B)}}var Cw0=T0(()=>{let A=Y9();try{return rBQ("git rev-parse --show-toplevel",{cwd:A,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return Dw0(A)}});function eB(){let A=Cw0(),B=rR(CZ(),_Y);if(!B.projects)return wq;let Q=B.projects[A]??wq;if(typeof Q.allowedTools==="string")Q.allowedTools=S4(Q.allowedTools)??[];return Q}function $6(A){let B=Cw0();try{xA(`Saving project config for ${B} to ${CZ()}`),Ww0(CZ(),_Y,(Q)=>({...Q,projects:{...Q.projects,[B]:A}}))}catch(Q){cB(`Failed to save config with lock: ${Q}`),xA(`Falling back to non-locked save ${Q}`);let D=rR(CZ(),_Y);Yw0(CZ(),{...D,projects:{...D.projects,[B]:A}},_Y)}}function Fu(){let A=GA();return!!(process.env.DISABLE_AUTOUPDATER||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC||A.autoUpdates===!1)}function uF1(){if(_4(process.env.DISABLE_COST_WARNINGS))return!1;if(NB())return!1;let B=GA(),Q=B.oauthAccount?.organizationRole,D=B.oauthAccount?.workspaceRole;if(!Q||!D)return!0;return["admin","billing"].includes(Q)||["workspace_admin","workspace_billing"].includes(D)}function A9Q(A){let B=new Set;return{expanded:A.replace(/\$\{([^}]+)\}/g,(D,I)=>{let[Z,G]=I.split(":-"),F=process.env[Z];if(F!==void 0)return F;if(G!==void 0)return G;return B.add(Z),D}),missingVars:B}}function B9Q(A){function B(Z){return v.string().url().parse(Z)}let Q=new Set,D=(Z)=>{let{expanded:G,missingVars:F}=A9Q(Z);return F.forEach((Y)=>Q.add(Y)),G},I;switch(A.type){case void 0:case"stdio":{I={...A,command:D(A.command),args:A.args.map(D),env:A.env!==void 0?NC(A.env,D):void 0};break}case"sse":case"http":{I={...A,url:B(D(A.url)),headers:A.headers!==void 0?NC(A.headers,D):void 0};break}case"sse-ide":case"ws-ide":I=A}return{expandedConfig:I,missingVars:Q}}function Jo(A){let B=Qw0.safeParse(A);if(!B.success)return B;let Q={},D=[],I=new Set;for(let[Z,G]of Object.entries(B.data.mcpServers))try{let{expandedConfig:F,missingVars:Y}=B9Q(G);Q[Z]=F,Y.forEach((W)=>I.add(W))}catch(F){if(F instanceof AG)D.push({serverName:Z,error:F.message});else throw F}if(I.size>0||D.length>0){let Z=[...Array.from(I).map((G)=>({path:[],message:`Environment variable ${G} is required but not set`,code:"custom"})),...D.map(({serverName:G,error:F})=>({path:["mcpServers",G],message:F,code:"custom"}))];return{success:!1,error:new AG(Z)}}return{success:!0,data:{mcpServers:Q}}}function Q9Q(A){let B=S4(A),Q={};if(B&&typeof B==="object"){let D=Jo(B);if(D.success){let I=D.data;for(let[Z,G]of Object.entries(I.mcpServers))Q[Z]=G}else cB(`Error parsing .mcp.json: ${D.error.message}`)}return Q}function bu1(A){let B=ku1(lA(),".mcp.json");uN(B,JSON.stringify(A,null,2),{encoding:"utf8"})}var TK=T0(()=>{let A=ku1(lA(),".mcp.json");if(!v1().existsSync(A))return{};try{let B=v1().readFileSync(A,{encoding:"utf-8"}),Q=Q9Q(B);return E1("tengu_mcpjson_found",{numServers:Object.keys(Q).length}),Q}catch{}return{}},()=>{let A=lA(),B=ku1(A,".mcp.json");if(v1().existsSync(B))try{let Q=v1().readFileSync(B,{encoding:"utf-8"});return`${A}:${Q}`}catch{return A}return A});function _f(){let A=GA();if(A.userID)return A.userID;let B=aBQ(32).toString("hex");return x0({...A,userID:B}),B}function Xw0(){let A=GA();if(!A.firstStartTime)x0({...A,firstStartTime:new Date().toISOString()})}function Vw0(A,B){if(E1("tengu_config_get",{key:A,global:B}),B){if(!fu1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Yo.join(", ")}`),process.exit(1);return GA()[A]}else{if(!vu1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Wo.join(", ")}`),process.exit(1);return eB()[A]}}function Kw0(A,B,Q){if(E1("tengu_config_set",{key:A,global:Q}),Q){if(!fu1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Yo.join(", ")}`),process.exit(1);if(sBQ(A,Q)&&typeof B==="string")try{let I=JSON.parse(B);if(typeof I!=="object"||I===null||Array.isArray(I))console.error("Error: 'env' must be a valid JSON object"),process.exit(1);let Z=GA();x0({...Z,[A]:I}),process.exit(0)}catch(I){console.error(`Error: Failed to parse JSON for 'env': ${I instanceof Error?I.message:String(I)}`),process.exit(1)}if(Gu(A,Q)&&typeof B==="string"){console.warn(WA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let I=B.split(",").map((Z)=>Z.trim()).filter((Z)=>Z.length>0);gF1(A,I,Q);return}let D=GA();x0({...D,[A]:B})}else{if(!vu1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Wo.join(", ")}. Did you mean --global?`),process.exit(1);if(Gu(A,Q)&&typeof B==="string"){console.warn(WA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let I=B.split(",").map((Z)=>Z.trim()).filter((Z)=>Z.length>0);gF1(A,I,Q);return}let D=eB();$6({...D,[A]:B})}process.exit(0)}function Ew0(A,B){if(E1("tengu_config_delete",{key:A,global:B}),B){if(!fu1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Yo.join(", ")}`),process.exit(1);let Q=GA();delete Q[A],x0(Q)}else{if(!vu1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Wo.join(", ")}. Did you mean --global?`),process.exit(1);let Q=eB();delete Q[A],$6(Q)}}function Hw0(A){if(E1("tengu_config_list",{global:A}),A)return J91(GA(),Yo);else return J91(eB(),Wo)}function zw0(){let A=_Q();Object.assign(process.env,GA().env),Object.assign(process.env,A.env)}var XG=G1(U1(),1);var _j=G1(U1(),1);import Uw0 from"node:process";function gu1(){let{env:A}=Uw0,{TERM:B,TERM_PROGRAM:Q}=A;if(Uw0.platform!=="win32")return B!=="linux";return Boolean(A.WT_SESSION)||Boolean(A.TERMINUS_SUBLIME)||A.ConEmuTask==="{cmd::Cmder}"||Q==="Terminus-Sublime"||Q==="vscode"||B==="xterm-256color"||B==="alacritty"||B==="rxvt-unicode"||B==="rxvt-unicode-256color"||A.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var ww0={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"█",squareDarkShade:"▓",squareMediumShade:"▒",squareLightShade:"░",squareTop:"▀",squareBottom:"▄",squareLeft:"▌",squareRight:"▐",squareCenter:"■",bullet:"●",dot:"․",ellipsis:"…",pointerSmall:"›",triangleUp:"▲",triangleUpSmall:"▴",triangleDown:"▼",triangleDownSmall:"▾",triangleLeftSmall:"◂",triangleRightSmall:"▸",home:"⌂",heart:"♥",musicNote:"♪",musicNoteBeamed:"♫",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",arrowLeftRight:"↔",arrowUpDown:"↕",almostEqual:"≈",notEqual:"≠",lessOrEqual:"≤",greaterOrEqual:"≥",identical:"≡",infinity:"∞",subscriptZero:"₀",subscriptOne:"₁",subscriptTwo:"₂",subscriptThree:"₃",subscriptFour:"₄",subscriptFive:"₅",subscriptSix:"₆",subscriptSeven:"₇",subscriptEight:"₈",subscriptNine:"₉",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneEighth:"⅛",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞",line:"─",lineBold:"━",lineDouble:"═",lineDashed0:"┄",lineDashed1:"┅",lineDashed2:"┈",lineDashed3:"┉",lineDashed4:"╌",lineDashed5:"╍",lineDashed6:"╴",lineDashed7:"╶",lineDashed8:"╸",lineDashed9:"╺",lineDashed10:"╼",lineDashed11:"╾",lineDashed12:"−",lineDashed13:"–",lineDashed14:"‐",lineDashed15:"⁃",lineVertical:"│",lineVerticalBold:"┃",lineVerticalDouble:"║",lineVerticalDashed0:"┆",lineVerticalDashed1:"┇",lineVerticalDashed2:"┊",lineVerticalDashed3:"┋",lineVerticalDashed4:"╎",lineVerticalDashed5:"╏",lineVerticalDashed6:"╵",lineVerticalDashed7:"╷",lineVerticalDashed8:"╹",lineVerticalDashed9:"╻",lineVerticalDashed10:"╽",lineVerticalDashed11:"╿",lineDownLeft:"┐",lineDownLeftArc:"╮",lineDownBoldLeftBold:"┓",lineDownBoldLeft:"┒",lineDownLeftBold:"┑",lineDownDoubleLeftDouble:"╗",lineDownDoubleLeft:"╖",lineDownLeftDouble:"╕",lineDownRight:"┌",lineDownRightArc:"╭",lineDownBoldRightBold:"┏",lineDownBoldRight:"┎",lineDownRightBold:"┍",lineDownDoubleRightDouble:"╔",lineDownDoubleRight:"╓",lineDownRightDouble:"╒",lineUpLeft:"┘",lineUpLeftArc:"╯",lineUpBoldLeftBold:"┛",lineUpBoldLeft:"┚",lineUpLeftBold:"┙",lineUpDoubleLeftDouble:"╝",lineUpDoubleLeft:"╜",lineUpLeftDouble:"╛",lineUpRight:"└",lineUpRightArc:"╰",lineUpBoldRightBold:"┗",lineUpBoldRight:"┖",lineUpRightBold:"┕",lineUpDoubleRightDouble:"╚",lineUpDoubleRight:"╙",lineUpRightDouble:"╘",lineUpDownLeft:"┤",lineUpBoldDownBoldLeftBold:"┫",lineUpBoldDownBoldLeft:"┨",lineUpDownLeftBold:"┥",lineUpBoldDownLeftBold:"┩",lineUpDownBoldLeftBold:"┪",lineUpDownBoldLeft:"┧",lineUpBoldDownLeft:"┦",lineUpDoubleDownDoubleLeftDouble:"╣",lineUpDoubleDownDoubleLeft:"╢",lineUpDownLeftDouble:"╡",lineUpDownRight:"├",lineUpBoldDownBoldRightBold:"┣",lineUpBoldDownBoldRight:"┠",lineUpDownRightBold:"┝",lineUpBoldDownRightBold:"┡",lineUpDownBoldRightBold:"┢",lineUpDownBoldRight:"┟",lineUpBoldDownRight:"┞",lineUpDoubleDownDoubleRightDouble:"╠",lineUpDoubleDownDoubleRight:"╟",lineUpDownRightDouble:"╞",lineDownLeftRight:"┬",lineDownBoldLeftBoldRightBold:"┳",lineDownLeftBoldRightBold:"┯",lineDownBoldLeftRight:"┰",lineDownBoldLeftBoldRight:"┱",lineDownBoldLeftRightBold:"┲",lineDownLeftRightBold:"┮",lineDownLeftBoldRight:"┭",lineDownDoubleLeftDoubleRightDouble:"╦",lineDownDoubleLeftRight:"╥",lineDownLeftDoubleRightDouble:"╤",lineUpLeftRight:"┴",lineUpBoldLeftBoldRightBold:"┻",lineUpLeftBoldRightBold:"┷",lineUpBoldLeftRight:"┸",lineUpBoldLeftBoldRight:"┹",lineUpBoldLeftRightBold:"┺",lineUpLeftRightBold:"┶",lineUpLeftBoldRight:"┵",lineUpDoubleLeftDoubleRightDouble:"╩",lineUpDoubleLeftRight:"╨",lineUpLeftDoubleRightDouble:"╧",lineUpDownLeftRight:"┼",lineUpBoldDownBoldLeftBoldRightBold:"╋",lineUpDownBoldLeftBoldRightBold:"╈",lineUpBoldDownLeftBoldRightBold:"╇",lineUpBoldDownBoldLeftRightBold:"╊",lineUpBoldDownBoldLeftBoldRight:"╉",lineUpBoldDownLeftRight:"╀",lineUpDownBoldLeftRight:"╁",lineUpDownLeftBoldRight:"┽",lineUpDownLeftRightBold:"┾",lineUpBoldDownBoldLeftRight:"╂",lineUpDownLeftBoldRightBold:"┿",lineUpBoldDownLeftBoldRight:"╃",lineUpBoldDownLeftRightBold:"╄",lineUpDownBoldLeftBoldRight:"╅",lineUpDownBoldLeftRightBold:"╆",lineUpDoubleDownDoubleLeftDoubleRightDouble:"╬",lineUpDoubleDownDoubleLeftRight:"╫",lineUpDownLeftDoubleRightDouble:"╪",lineCross:"╳",lineBackslash:"╲",lineSlash:"╱"},Nw0={tick:"✔",info:"ℹ",warning:"⚠",cross:"✘",squareSmall:"◻",squareSmallFilled:"◼",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",pointer:"❯",triangleUpOutline:"△",triangleLeft:"◀",triangleRight:"▶",lozenge:"◆",lozengeOutline:"◇",hamburger:"☰",smiley:"㋡",mustache:"෴",star:"★",play:"▶",nodejs:"⬢",oneSeventh:"⅐",oneNinth:"⅑",oneTenth:"⅒"},D9Q={tick:"√",info:"i",warning:"‼",cross:"×",squareSmall:"□",squareSmallFilled:"■",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"∆",triangleLeft:"◄",triangleRight:"►",lozenge:"♦",lozengeOutline:"◊",hamburger:"≡",smiley:"☺",mustache:"┌─┐",star:"✶",play:"►",nodejs:"♦",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},I9Q={...ww0,...Nw0},Z9Q={...ww0,...D9Q},G9Q=gu1(),F9Q=G9Q?I9Q:Z9Q,tA=F9Q,rR4=Object.entries(Nw0);var oR=G1(U1(),1);var h9Q=G1(U1(),1);var Xo=G1(U1(),1),v9Q=G1(Mw0(),1);var Rw0={info:"blue",success:"green",error:"red",warning:"yellow"},q9Q={styles:{container:({variant:A})=>({flexGrow:1,borderStyle:"round",borderColor:Rw0[A],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:A})=>({color:Rw0[A]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:A}){let B;if(A==="info")B=tA.info;if(A==="success")B=tA.tick;if(A==="error")B=tA.cross;if(A==="warning")B=tA.warning;return{icon:B}}},Ow0=q9Q;var $9Q={styles:{container:({color:A})=>({backgroundColor:A}),label:()=>({color:"black"})}},Tw0=$9Q;var L9Q={styles:{input:({isFocused:A})=>({dimColor:!A})}},Pw0=L9Q;var M9Q={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:A})=>({gap:1,paddingLeft:A?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:A,isSelected:B}){let Q;if(B)Q="green";if(A)Q="blue";return{color:Q}},highlightedText:()=>({bold:!0})}},Sw0=M9Q;var R9Q={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},_w0=R9Q;var O9Q={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:tA.square,remainingCharacter:tA.squareLightShade})},jw0=O9Q;var T9Q={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:A})=>({gap:1,paddingLeft:A?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:A,isSelected:B}){let Q;if(B)Q="green";if(A)Q="blue";return{color:Q}},highlightedText:()=>({bold:!0})}},yw0=T9Q;var P9Q={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},kw0=P9Q;var S9Q={success:"green",error:"red",warning:"yellow",info:"blue"},_9Q={success:tA.tick,error:tA.cross,warning:tA.warning,info:tA.info},j9Q={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:A})=>({color:S9Q[A]}),message:()=>({})},config:({variant:A})=>({icon:_9Q[A]})},xw0=j9Q;var y9Q={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:tA.line})},fw0=y9Q;var k9Q={styles:{value:()=>({})}},vw0=k9Q;var x9Q={styles:{value:()=>({})}},bw0=x9Q;var f9Q={styles:{value:()=>({})}},gw0=f9Q;var b9Q={components:{Alert:Ow0,Badge:Tw0,ConfirmInput:Pw0,MultiSelect:Sw0,OrderedList:_w0,ProgressBar:jw0,Select:yw0,Spinner:kw0,StatusMessage:xw0,UnorderedList:fw0,TextInput:vw0,EmailInput:bw0,PasswordInput:gw0}},g9Q=Xo.createContext(b9Q);var T3=(A)=>{return Xo.useContext(g9Q).components[A]};var u9Q=G1(U1(),1);var Nq=G1(U1(),1);var Wu=G1(U1(),1);var hw0=G1(U1(),1);var Vo=tA.line;var mF1=hw0.createContext({marker:Vo});function uw0({children:A}){let{marker:B}=Wu.useContext(mF1),{styles:Q}=T3("UnorderedList");return Wu.default.createElement(g,{...Q.listItem()},Wu.default.createElement(S,{...Q.marker()},B),Wu.default.createElement(g,{...Q.content()},A))}var mw0=G1(U1(),1),hu1=mw0.createContext({depth:0});function m9Q({children:A}){let{depth:B}=Nq.useContext(hu1),{styles:Q,config:D}=T3("UnorderedList"),I=Nq.useMemo(()=>({depth:B+1}),[B]),Z=Nq.useMemo(()=>{let{marker:G}=D();if(typeof G==="string")return{marker:G};if(Array.isArray(G))return{marker:G[B]??G.at(-1)??Vo};return{marker:Vo}},[D,B]);return Nq.default.createElement(hu1.Provider,{value:I},Nq.default.createElement(mF1.Provider,{value:Z},Nq.default.createElement(g,{...Q.list()},A)))}m9Q.Item=uw0;var Ju=G1(U1(),1);var Ko=G1(U1(),1);function dw0({isFocused:A,isSelected:B,children:Q}){let{styles:D}=T3("MultiSelect");return Ko.default.createElement(g,{...D.option({isFocused:A})},A&&Ko.default.createElement(S,{...D.focusIndicator()},tA.pointer),Ko.default.createElement(S,{...D.label({isFocused:A,isSelected:B})},Q),B&&Ko.default.createElement(S,{...D.selectedIndicator()},tA.tick))}var JJ=G1(U1(),1);import{isDeepStrictEqual as cw0}from"node:util";class Eo extends Map{first;constructor(A){let B=[],Q,D,I=0;for(let Z of A){let G={...Z,previous:D,next:void 0,index:I};if(D)D.next=G;Q||=G,B.push([Z.value,G]),I++,D=G}super(B);this.first=Q}}var d9Q=(A,B)=>{switch(B.type){case"focus-next-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.next;if(!D)return A;if(!(D.index>=A.visibleToIndex))return{...A,focusedValue:D.value};let Z=Math.min(A.optionMap.size,A.visibleToIndex+1),G=Z-A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:G,visibleToIndex:Z}}case"focus-previous-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.previous;if(!D)return A;if(!(D.index<=A.visibleFromIndex))return{...A,focusedValue:D.value};let Z=Math.max(0,A.visibleFromIndex-1),G=Z+A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:Z,visibleToIndex:G}}case"toggle-focused-option":{if(!A.focusedValue)return A;if(A.value.includes(A.focusedValue)){let Q=new Set(A.value);return Q.delete(A.focusedValue),{...A,previousValue:A.value,value:[...Q]}}return{...A,previousValue:A.value,value:[...A.value,A.focusedValue]}}case"reset":return B.state}},pw0=({visibleOptionCount:A,defaultValue:B,options:Q})=>{let D=typeof A==="number"?Math.min(A,Q.length):Q.length,I=new Eo(Q),Z=B??[];return{optionMap:I,visibleOptionCount:D,focusedValue:I.first?.value,visibleFromIndex:0,visibleToIndex:D,previousValue:Z,value:Z}},lw0=({visibleOptionCount:A=5,options:B,defaultValue:Q,onChange:D,onSubmit:I})=>{let[Z,G]=JJ.useReducer(d9Q,{visibleOptionCount:A,defaultValue:Q,options:B},pw0),[F,Y]=JJ.useState(B);if(B!==F&&!cw0(B,F))G({type:"reset",state:pw0({visibleOptionCount:A,defaultValue:Q,options:B})}),Y(B);let W=JJ.useCallback(()=>{G({type:"focus-next-option"})},[]),J=JJ.useCallback(()=>{G({type:"focus-previous-option"})},[]),C=JJ.useCallback(()=>{G({type:"toggle-focused-option"})},[]),X=JJ.useCallback(()=>{I?.(Z.value)},[Z.value,I]),V=JJ.useMemo(()=>{return B.map((K,E)=>({...K,index:E})).slice(Z.visibleFromIndex,Z.visibleToIndex)},[B,Z.visibleFromIndex,Z.visibleToIndex]);return JJ.useEffect(()=>{if(!cw0(Z.previousValue,Z.value))D?.(Z.value)},[Z.previousValue,Z.value,B,D]),{focusedValue:Z.focusedValue,visibleFromIndex:Z.visibleFromIndex,visibleToIndex:Z.visibleToIndex,value:Z.value,visibleOptions:V,focusNextOption:W,focusPreviousOption:J,toggleFocusedOption:C,submit:X}};var iw0=({isDisabled:A=!1,state:B})=>{Z0((Q,D)=>{if(D.downArrow)B.focusNextOption();if(D.upArrow)B.focusPreviousOption();if(Q===" ")B.toggleFocusedOption();if(D.return)B.submit()},{isActive:!A})};function dF1({isDisabled:A=!1,visibleOptionCount:B=5,highlightText:Q,options:D,defaultValue:I,onChange:Z,onSubmit:G}){let F=lw0({visibleOptionCount:B,options:D,defaultValue:I,onChange:Z,onSubmit:G});iw0({isDisabled:A,state:F});let{styles:Y}=T3("MultiSelect");return Ju.default.createElement(g,{...Y.container()},F.visibleOptions.map((W)=>{let J=W.label;if(Q&&W.label.includes(Q)){let C=W.label.indexOf(Q);J=Ju.default.createElement(Ju.default.Fragment,null,W.label.slice(0,C),Ju.default.createElement(S,{...Y.highlightedText()},Q),W.label.slice(C+Q.length))}return Ju.default.createElement(dw0,{key:W.value,isFocused:!A&&F.focusedValue===W.value,isSelected:F.value.includes(W.value)},J)}))}var nw0=G1(U1(),1);var p9Q=G1(U1(),1);var c9Q=G1(U1(),1);var Ho=G1(U1(),1);var l9Q=G1(U1(),1);var aw0=G1(U1(),1);var n9Q=G1(U1(),1);var cF1=G1(U1(),1);var i9Q=G1(U1(),1);var AP4=WA.inverse(" ");var PK=G1(U1(),1);var Cu=G1(U1(),1);var rw0=G1(U1(),1);var pF1=rw0.createContext({marker:tA.line});function lF1({children:A}){let{marker:B}=Cu.useContext(pF1),{styles:Q}=T3("OrderedList");return Cu.default.createElement(g,{...Q.listItem()},Cu.default.createElement(S,{...Q.marker()},B),Cu.default.createElement(g,{...Q.content()},A))}var sw0=G1(U1(),1),uu1=sw0.createContext({marker:""});function sR({children:A}){let{marker:B}=PK.useContext(uu1),{styles:Q}=T3("OrderedList"),D=0;for(let Z of PK.default.Children.toArray(A)){if(!PK.isValidElement(Z)||Z.type!==lF1)continue;D++}let I=String(D).length;return PK.default.createElement(g,{...Q.list()},PK.default.Children.map(A,(Z,G)=>{if(!PK.isValidElement(Z)||Z.type!==lF1)return Z;let F=`${String(G+1).padStart(I)}.`,Y=`${B}${F}`;return PK.default.createElement(uu1.Provider,{value:{marker:Y}},PK.default.createElement(pF1.Provider,{value:{marker:Y}},Z))}))}sR.Item=lF1;var r9Q=G1(U1(),1);var mu1=G1(U1(),1);var a9Q=G1(U1(),1);var SP4=WA.inverse(" ");var s9Q=G1(U1(),1);var o9Q=G1(U1(),1);var e9Q=G1(U1(),1);var iF1=G1(U1(),1);var t9Q=G1(U1(),1);var eP4=WA.inverse(" ");function ow0({isFocused:A,isSelected:B,children:Q,shouldShowDownArrow:D,shouldShowUpArrow:I}){let{styles:Z}=T3("Select");return oR.default.createElement(g,null,A?oR.default.createElement(S,{...Z.focusIndicator()},tA.pointer," "):D?oR.default.createElement(S,{color:"secondaryText"},tA.arrowDown," "):I?oR.default.createElement(S,{color:"secondaryText"},tA.arrowUp," "):oR.default.createElement(S,null," "),oR.default.createElement(S,{...Z.label({isFocused:A,isSelected:B})},Q),B&&oR.default.createElement(S,{...Z.selectedIndicator()},tA.tick))}var CJ=G1(U1(),1);import{isDeepStrictEqual as AQQ}from"node:util";class nF1 extends Map{first;constructor(A){let B=[],Q,D,I=0;for(let Z of A){let G={...Z,previous:D,next:void 0,index:I};if(D)D.next=G;Q||=G,B.push([Z.value,G]),I++,D=G}super(B);this.first=Q}}var BQQ=(A,B)=>{switch(B.type){case"focus-next-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.next;if(!D)return A;if(!(D.index>=A.visibleToIndex))return{...A,focusedValue:D.value};let Z=Math.min(A.optionMap.size,A.visibleToIndex+1),G=Z-A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:G,visibleToIndex:Z}}case"focus-previous-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.previous;if(!D)return A;if(!(D.index<=A.visibleFromIndex))return{...A,focusedValue:D.value};let Z=Math.max(0,A.visibleFromIndex-1),G=Z+A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:Z,visibleToIndex:G}}case"select-focused-option":return{...A,value:A.focusedValue};case"reset":return B.state;case"set-focus":return{...A,focusedValue:B.value}}},tw0=({visibleOptionCount:A,defaultValue:B,options:Q,initialFocusValue:D})=>{let I=typeof A==="number"?Math.min(A,Q.length):Q.length,Z=new nF1(Q);return{optionMap:Z,visibleOptionCount:I,focusedValue:D||Z.first?.value,visibleFromIndex:0,visibleToIndex:I,value:B}},ew0=({visibleOptionCount:A=5,options:B,defaultValue:Q,onChange:D,onCancel:I,onFocus:Z,focusValue:G})=>{let[F,Y]=CJ.useReducer(BQQ,{visibleOptionCount:A,defaultValue:Q,options:B,initialFocusValue:G},tw0),[W,J]=CJ.useState(B);if(B!==W&&!AQQ(B,W))Y({type:"reset",state:tw0({visibleOptionCount:A,defaultValue:F.value||Q,options:B,initialFocusValue:F.focusedValue||G})}),J(B);let C=CJ.useCallback(()=>{Y({type:"focus-next-option"})},[]),X=CJ.useCallback(()=>{Y({type:"focus-previous-option"})},[]),V=CJ.useCallback(()=>{Y({type:"select-focused-option"})},[]),K=CJ.useMemo(()=>{return B.map((E,U)=>({...E,index:U})).slice(F.visibleFromIndex,F.visibleToIndex)},[B,F.visibleFromIndex,F.visibleToIndex]);return CJ.useEffect(()=>{if(F.focusedValue)Z?.(F.focusedValue)},[F.focusedValue,Z]),CJ.useEffect(()=>{if(G)Y({type:"set-focus",value:G})},[G]),{focusedValue:F.focusedValue,visibleFromIndex:F.visibleFromIndex,visibleToIndex:F.visibleToIndex,value:F.value,visibleOptions:K,focusNextOption:C,focusPreviousOption:X,selectFocusedOption:V,onChange:D,onCancel:I,options:B}};var AN0=({isDisabled:A=!1,state:B})=>{Z0((Q,D)=>{if(D.downArrow||D.ctrl&&Q==="n"||!D.ctrl&&!D.shift&&Q==="j")B.focusNextOption();if(D.upArrow||D.ctrl&&Q==="p"||!D.ctrl&&!D.shift&&Q==="k")B.focusPreviousOption();if(D.return&&B.focusedValue)B.selectFocusedOption?.(),B.onChange?.(B.focusedValue);if(/^[0-9]+$/.test(Q)){let I=parseInt(Q)-1;if(I>=0&&I<B.options.length){B.onChange?.(B.options[I].value);return}}if(D.escape)B.onCancel?.()},{isActive:!A})};function d0({isDisabled:A=!1,visibleOptionCount:B=5,highlightText:Q,options:D,defaultValue:I,onCancel:Z,onChange:G,onFocus:F,focusValue:Y}){let W=ew0({visibleOptionCount:B,options:D,defaultValue:I,onChange:G,onCancel:Z,onFocus:F,focusValue:Y});AN0({isDisabled:A,state:W});let{styles:J}=T3("Select"),C=W.options.length.toString().length,X=Math.max(...W.options.map((V)=>{return`${(W.options.findIndex((U)=>U.value===V.value)+1).toString()}.`.padEnd(C).length+V.label.length}));return _j.default.createElement(g,{...J.container()},W.visibleOptions.map((V,K)=>{let E=V.label,U=E;if(Q&&E.includes(Q)){let p=E.indexOf(Q);U=_j.default.createElement(_j.default.Fragment,null,E.slice(0,p),_j.default.createElement(S,{...J.highlightedText()},Q),E.slice(p+Q.length))}let q=V.index===W.visibleFromIndex,R=V.index===W.visibleToIndex-1,M=W.visibleToIndex<D.length,T=W.visibleFromIndex>0,P=`${W.visibleFromIndex+K+1}.`.padEnd(C),_=P.length+E.length,d=X+2-_,y=Math.max(2,d);return _j.default.createElement(ow0,{key:V.value,isFocused:!A&&W.focusedValue===V.value,isSelected:W.value===V.value,shouldShowDownArrow:M&&R,shouldShowUpArrow:T&&q},WA.dim(P)," ",U,V.description&&_j.default.createElement(S,{dimColor:V.dimDescription!==!1}," ".padEnd(y),V.description))}))}var du1=G1(U1(),1),BN0=800;function qq(A,B,Q){let D=du1.useRef(0),I=du1.useRef();return()=>{let Z=Date.now();if(Z-D.current<=BN0&&I.current){if(I.current)clearTimeout(I.current),I.current=void 0;B(),A(!1)}else Q?.(),A(!0),I.current=setTimeout(()=>A(!1),BN0);D.current=Z}}var DN0=G1(U1(),1);var cu1=new Set;function aF1(A){return cu1.add(A),()=>cu1.delete(A)}var QN0=T0(()=>{process.on("SIGINT",()=>{U4(0)}),process.on("SIGTERM",()=>{U4(143)})});function GI(A=0){U4(A).catch((B)=>{cB(`Graceful shutdown failed: ${B}`),process.exit(A)})}async function U4(A=0){process.exitCode=A;try{let B=(async()=>{try{await Promise.all(Array.from(cu1).map((Q)=>Q()))}catch{}})();await Promise.race([B,new Promise((Q,D)=>setTimeout(()=>D(new Error("Cleanup timeout")),2000))]),process.exit(A)}catch{process.exit(A)}}function Q2(A){let[B,Q]=DN0.useState({pending:!1,keyName:null}),D=qq((Z)=>Q({pending:Z,keyName:"Ctrl-C"}),A?A:async()=>{await U4(0)}),I=qq((Z)=>Q({pending:Z,keyName:"Ctrl-D"}),A?A:async()=>{await U4(0)});return Z0((Z,G)=>{if(G.ctrl&&Z==="c")D();if(G.ctrl&&Z==="d")I()}),B}var CG=G1(U1(),1);var XJ=()=>({mode:"default",additionalWorkingDirectories:new Set,alwaysAllowRules:{},alwaysDenyRules:{},isBypassPermissionsModeAvailable:!1});function QQQ(){return{verbose:!1,mainLoopModel:null,maxRateLimitFallbackActive:!1,todoFeatureEnabled:!1,toolPermissionContext:XJ(),mcp:{clients:[],tools:[],commands:[],resources:{}}}}var ZN0=CG.default.createContext([{},(A)=>A]),IN0=CG.default.createContext(!1);function W5({children:A,initialState:B,onChangeAppState:Q}){if(CG.useContext(IN0))throw new Error("AppStateProvider can not be nested within another AppStateProvider");let[I,Z]=CG.useState({currentState:B??QQQ(),previousState:null}),G=CG.useCallback((Y)=>Z(({currentState:W})=>({currentState:Y(W),previousState:W})),[]),F=CG.useMemo(()=>{let Y=[I.currentState,G];return Y.__IS_INITIALIZED__=!0,Y},[I.currentState,G]);return CG.useEffect(()=>{Q?.({newState:I.currentState,oldState:I.previousState})},[Q,I]),CG.default.createElement(IN0.Provider,{value:!0},CG.default.createElement(ZN0.Provider,{value:F},A))}function i6(){let A=CG.useContext(ZN0);if(!A.__IS_INITIALIZED__)throw new ReferenceError("useAppState cannot be called outside of an <AppStateProvider />");return A}function DQQ({filePath:A,errorDescription:B,onExit:Q,onReset:D}){Z0((G,F)=>{if(F.escape)Q()});let I=Q2();return XG.default.createElement(XG.default.Fragment,null,XG.default.createElement(g,{flexDirection:"column",borderColor:"error",borderStyle:"round",padding:1,width:70,gap:1},XG.default.createElement(S,{bold:!0},"Configuration Error"),XG.default.createElement(g,{flexDirection:"column",gap:1},XG.default.createElement(S,null,"The configuration file at ",XG.default.createElement(S,{bold:!0},A)," contains invalid JSON."),XG.default.createElement(S,null,B)),XG.default.createElement(g,{flexDirection:"column"},XG.default.createElement(S,{bold:!0},"Choose an option:"),XG.default.createElement(d0,{options:[{label:"Exit and fix manually",value:"exit"},{label:"Reset with default configuration",value:"reset"}],onChange:(G)=>{if(G==="exit")Q();else D()},onCancel:Q}))),I.pending?XG.default.createElement(S,{dimColor:!0},"Press ",I.keyName," again to exit"):XG.default.createElement(T4,null))}var IQQ="dark";async function GN0({error:A}){let B={exitOnCtrlC:!1,theme:IQQ};await new Promise((Q)=>{let{unmount:D}=F4(XG.default.createElement(W5,null,XG.default.createElement(DQQ,{filePath:A.filePath,errorDescription:A.message,onExit:()=>{D(),Q(),process.exit(1)},onReset:()=>{v1().writeFileSync(A.filePath,JSON.stringify(A.defaultConfig,null,2),{flush:!1,encoding:"utf8"}),D(),Q(),process.exit(0)}})),B)})}var qJ1=G1(C9(),1),yi1=G1(lm1(),1),$J1=G1(QO(),1),Lo0=G1(tm0(),1),Mo0=G1(gr0(),1),Ro0=G1(aY1(),1),Oo0=G1(nr0(),1),ki1=G1(QO(),1),Jm=G1(ls0(),1),To0=G1(Qo0(),1),Po0=G1(Yo0(),1),So0=G1(wo0(),1),bt=G1(PY1(),1),LJ1=G1(Mq(),1);class _i1{error(A,...B){f1(new Error(A))}warn(A,...B){f1(new Error(A))}info(A,...B){return}debug(A,...B){return}verbose(A,...B){return}}var qo0=G1(QO(),1),Ey=G1(P3(),1);function LO(){return`claude-cli/${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION} (external, ${process.env.CLAUDE_CODE_ENTRYPOINT})`}function Ym(){return`claude-code/${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}`}function NJ1(){return`claude-code/${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}`}function Wm(){if(NB()){let B=m7();if(!B?.accessToken)return{headers:{},error:"No OAuth token available"};return{headers:{Authorization:`Bearer ${B.accessToken}`,"anthropic-beta":Jv}}}let A=QZ(!1);if(!A)return{headers:{},error:"No API key available"};return{headers:{"x-api-key":A}}}var njQ=3600000;async function ajQ(A){let B=Wm();if(B.error)throw xA(`Metrics opt-out check failed: ${B.error}`),new Error(`Auth error: ${B.error}`);let Q={"Content-Type":"application/json","User-Agent":NJ1(),...B.headers};try{let D=`https://api.anthropic.com/api/organizations/${A}/claude_code_metrics_enabled`,I=await N9.get(D,{headers:Q,timeout:5000});return xA(`Metrics opt-out API response: enabled=${I.data.metrics_logging_enabled}`),{enabled:I.data.metrics_logging_enabled,hasError:!1}}catch(D){throw cB(`Failed to check metrics opt-out status: ${D instanceof Error?D.message:String(D)}`),f1(D),D}}var rjQ=c51(ajQ,njQ);async function No0(){let B=GA().oauthAccount?.organizationUuid;if(!B)return xA("No organization UUID found, metrics disabled"),{enabled:!1,hasError:!1};try{return await rjQ(B)}catch(Q){return xA("First-time metrics check failed, defaulting to disabled"),{enabled:!1,hasError:!0}}}class ji1{endpoint;timeout;pendingExports=[];isShutdown=!1;constructor(A={}){this.endpoint="https://api.anthropic.com/api/claude_code/metrics",this.timeout=A.timeout||5000}async export(A,B){if(this.isShutdown){B({code:Ey.ExportResultCode.FAILED,error:new Error("Exporter has been shutdown")});return}let Q=this.doExport(A,B);this.pendingExports.push(Q),Q.finally(()=>{let D=this.pendingExports.indexOf(Q);if(D>-1)this.pendingExports.splice(D,1)})}async doExport(A,B){try{if(!await WJ("tengu_metrics_exporter_enabled")){B({code:Ey.ExportResultCode.SUCCESS});return}if(!(await No0()).enabled){xA("Metrics export disabled by organization setting"),B({code:Ey.ExportResultCode.SUCCESS});return}let I=this.transformMetricsForInternal(A),Z=Wm();if(Z.error){xA(`Metrics export failed: ${Z.error}`),B({code:Ey.ExportResultCode.FAILED,error:new Error(Z.error)});return}let G={"Content-Type":"application/json","User-Agent":NJ1(),...Z.headers},F=await N9.post(this.endpoint,I,{timeout:this.timeout,headers:G});xA("Internal metrics exported successfully"),xA(`API Response: ${JSON.stringify(F.data,null,2)}`),B({code:Ey.ExportResultCode.SUCCESS})}catch(Q){xA(`Internal metrics export failed: ${Q instanceof Error?Q.message:String(Q)}`),f1(Q),B({code:Ey.ExportResultCode.FAILED,error:Q instanceof Error?Q:new Error("Unknown export error")})}}transformMetricsForInternal(A){return{resource_attributes:{"service.name":A.resource.attributes["service.name"]||"claude-code","service.version":A.resource.attributes["service.version"]||"unknown"},metrics:A.scopeMetrics.flatMap((Q)=>Q.metrics.map((D)=>({name:D.descriptor.name,description:D.descriptor.description,unit:D.descriptor.unit,data_points:this.extractDataPoints(D)})))}}extractDataPoints(A){return(A.dataPoints||[]).filter((Q)=>typeof Q.value==="number").map((Q)=>({attributes:this.convertAttributes(Q.attributes),value:Q.value,timestamp:this.hrTimeToISOString(Q.endTime||Q.startTime||[Date.now()/1000,0])}))}async shutdown(){this.isShutdown=!0,await this.forceFlush(),xA("Internal metrics exporter shutdown complete")}async forceFlush(){await Promise.all(this.pendingExports),xA("Internal metrics exporter flush complete")}convertAttributes(A){let B={};if(A){for(let[Q,D]of Object.entries(A))if(D!==void 0&&D!==null)B[Q]=String(D)}return B}hrTimeToISOString(A){let[B]=A;return new Date(B*1000).toISOString()}selectAggregationTemporality(){return qo0.AggregationTemporality.DELTA}}var sjQ=60000,ojQ=5000;function tjQ(){if(!process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE)process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE="delta"}function ejQ(){let A=(process.env.OTEL_METRICS_EXPORTER||"").trim().split(",").filter(Boolean),B=parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL||sjQ.toString()),Q=[];for(let D of A)if(D==="console"){let I=new $J1.ConsoleMetricExporter,Z=I.export.bind(I);I.export=(G,F)=>{if(G.resource&&G.resource.attributes)console.log(`
723
+ `)}return ql(B)}}var Cw0=T0(()=>{let A=Y9();try{return rBQ("git rev-parse --show-toplevel",{cwd:A,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return Dw0(A)}});function eB(){let A=Cw0(),B=rR(CZ(),_Y);if(!B.projects)return wq;let Q=B.projects[A]??wq;if(typeof Q.allowedTools==="string")Q.allowedTools=S4(Q.allowedTools)??[];return Q}function $6(A){let B=Cw0();try{xA(`Saving project config for ${B} to ${CZ()}`),Ww0(CZ(),_Y,(Q)=>({...Q,projects:{...Q.projects,[B]:A}}))}catch(Q){cB(`Failed to save config with lock: ${Q}`),xA(`Falling back to non-locked save ${Q}`);let D=rR(CZ(),_Y);Yw0(CZ(),{...D,projects:{...D.projects,[B]:A}},_Y)}}function Fu(){let A=GA();return!!(process.env.DISABLE_AUTOUPDATER||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC||A.autoUpdates===!1)}function uF1(){if(_4(process.env.DISABLE_COST_WARNINGS))return!1;if(NB())return!1;let B=GA(),Q=B.oauthAccount?.organizationRole,D=B.oauthAccount?.workspaceRole;if(!Q||!D)return!0;return["admin","billing"].includes(Q)||["workspace_admin","workspace_billing"].includes(D)}function A9Q(A){let B=new Set;return{expanded:A.replace(/\$\{([^}]+)\}/g,(D,I)=>{let[Z,G]=I.split(":-"),F=process.env[Z];if(F!==void 0)return F;if(G!==void 0)return G;return B.add(Z),D}),missingVars:B}}function B9Q(A){function B(Z){return v.string().url().parse(Z)}let Q=new Set,D=(Z)=>{let{expanded:G,missingVars:F}=A9Q(Z);return F.forEach((Y)=>Q.add(Y)),G},I;switch(A.type){case void 0:case"stdio":{I={...A,command:D(A.command),args:A.args.map(D),env:A.env!==void 0?NC(A.env,D):void 0};break}case"sse":case"http":{I={...A,url:B(D(A.url)),headers:A.headers!==void 0?NC(A.headers,D):void 0};break}case"sse-ide":case"ws-ide":I=A}return{expandedConfig:I,missingVars:Q}}function Jo(A){let B=Qw0.safeParse(A);if(!B.success)return B;let Q={},D=[],I=new Set;for(let[Z,G]of Object.entries(B.data.mcpServers))try{let{expandedConfig:F,missingVars:Y}=B9Q(G);Q[Z]=F,Y.forEach((W)=>I.add(W))}catch(F){if(F instanceof AG)D.push({serverName:Z,error:F.message});else throw F}if(I.size>0||D.length>0){let Z=[...Array.from(I).map((G)=>({path:[],message:`Environment variable ${G} is required but not set`,code:"custom"})),...D.map(({serverName:G,error:F})=>({path:["mcpServers",G],message:F,code:"custom"}))];return{success:!1,error:new AG(Z)}}return{success:!0,data:{mcpServers:Q}}}function Q9Q(A){let B=S4(A),Q={};if(B&&typeof B==="object"){let D=Jo(B);if(D.success){let I=D.data;for(let[Z,G]of Object.entries(I.mcpServers))Q[Z]=G}else cB(`Error parsing .mcp.json: ${D.error.message}`)}return Q}function bu1(A){let B=ku1(lA(),".mcp.json");uN(B,JSON.stringify(A,null,2),{encoding:"utf8"})}var TK=T0(()=>{let A=ku1(lA(),".mcp.json");if(!v1().existsSync(A))return{};try{let B=v1().readFileSync(A,{encoding:"utf-8"}),Q=Q9Q(B);return E1("tengu_mcpjson_found",{numServers:Object.keys(Q).length}),Q}catch{}return{}},()=>{let A=lA(),B=ku1(A,".mcp.json");if(v1().existsSync(B))try{let Q=v1().readFileSync(B,{encoding:"utf-8"});return`${A}:${Q}`}catch{return A}return A});function _f(){let A=GA();if(A.userID)return A.userID;let B=aBQ(32).toString("hex");return x0({...A,userID:B}),B}function Xw0(){let A=GA();if(!A.firstStartTime)x0({...A,firstStartTime:new Date().toISOString()})}function Vw0(A,B){if(E1("tengu_config_get",{key:A,global:B}),B){if(!fu1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Yo.join(", ")}`),process.exit(1);return GA()[A]}else{if(!vu1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Wo.join(", ")}`),process.exit(1);return eB()[A]}}function Kw0(A,B,Q){if(E1("tengu_config_set",{key:A,global:Q}),Q){if(!fu1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Yo.join(", ")}`),process.exit(1);if(sBQ(A,Q)&&typeof B==="string")try{let I=JSON.parse(B);if(typeof I!=="object"||I===null||Array.isArray(I))console.error("Error: 'env' must be a valid JSON object"),process.exit(1);let Z=GA();x0({...Z,[A]:I}),process.exit(0)}catch(I){console.error(`Error: Failed to parse JSON for 'env': ${I instanceof Error?I.message:String(I)}`),process.exit(1)}if(Gu(A,Q)&&typeof B==="string"){console.warn(WA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let I=B.split(",").map((Z)=>Z.trim()).filter((Z)=>Z.length>0);gF1(A,I,Q);return}let D=GA();x0({...D,[A]:B})}else{if(!vu1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Wo.join(", ")}. Did you mean --global?`),process.exit(1);if(Gu(A,Q)&&typeof B==="string"){console.warn(WA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let I=B.split(",").map((Z)=>Z.trim()).filter((Z)=>Z.length>0);gF1(A,I,Q);return}let D=eB();$6({...D,[A]:B})}process.exit(0)}function Ew0(A,B){if(E1("tengu_config_delete",{key:A,global:B}),B){if(!fu1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Yo.join(", ")}`),process.exit(1);let Q=GA();delete Q[A],x0(Q)}else{if(!vu1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Wo.join(", ")}. Did you mean --global?`),process.exit(1);let Q=eB();delete Q[A],$6(Q)}}function Hw0(A){if(E1("tengu_config_list",{global:A}),A)return J91(GA(),Yo);else return J91(eB(),Wo)}function zw0(){let A=_Q();Object.assign(process.env,GA().env),Object.assign(process.env,A.env)}var XG=G1(U1(),1);var _j=G1(U1(),1);import Uw0 from"node:process";function gu1(){let{env:A}=Uw0,{TERM:B,TERM_PROGRAM:Q}=A;if(Uw0.platform!=="win32")return B!=="linux";return Boolean(A.WT_SESSION)||Boolean(A.TERMINUS_SUBLIME)||A.ConEmuTask==="{cmd::Cmder}"||Q==="Terminus-Sublime"||Q==="vscode"||B==="xterm-256color"||B==="alacritty"||B==="rxvt-unicode"||B==="rxvt-unicode-256color"||A.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var ww0={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"█",squareDarkShade:"▓",squareMediumShade:"▒",squareLightShade:"░",squareTop:"▀",squareBottom:"▄",squareLeft:"▌",squareRight:"▐",squareCenter:"■",bullet:"●",dot:"․",ellipsis:"…",pointerSmall:"›",triangleUp:"▲",triangleUpSmall:"▴",triangleDown:"▼",triangleDownSmall:"▾",triangleLeftSmall:"◂",triangleRightSmall:"▸",home:"⌂",heart:"♥",musicNote:"♪",musicNoteBeamed:"♫",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",arrowLeftRight:"↔",arrowUpDown:"↕",almostEqual:"≈",notEqual:"≠",lessOrEqual:"≤",greaterOrEqual:"≥",identical:"≡",infinity:"∞",subscriptZero:"₀",subscriptOne:"₁",subscriptTwo:"₂",subscriptThree:"₃",subscriptFour:"₄",subscriptFive:"₅",subscriptSix:"₆",subscriptSeven:"₇",subscriptEight:"₈",subscriptNine:"₉",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneEighth:"⅛",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞",line:"─",lineBold:"━",lineDouble:"═",lineDashed0:"┄",lineDashed1:"┅",lineDashed2:"┈",lineDashed3:"┉",lineDashed4:"╌",lineDashed5:"╍",lineDashed6:"╴",lineDashed7:"╶",lineDashed8:"╸",lineDashed9:"╺",lineDashed10:"╼",lineDashed11:"╾",lineDashed12:"−",lineDashed13:"–",lineDashed14:"‐",lineDashed15:"⁃",lineVertical:"│",lineVerticalBold:"┃",lineVerticalDouble:"║",lineVerticalDashed0:"┆",lineVerticalDashed1:"┇",lineVerticalDashed2:"┊",lineVerticalDashed3:"┋",lineVerticalDashed4:"╎",lineVerticalDashed5:"╏",lineVerticalDashed6:"╵",lineVerticalDashed7:"╷",lineVerticalDashed8:"╹",lineVerticalDashed9:"╻",lineVerticalDashed10:"╽",lineVerticalDashed11:"╿",lineDownLeft:"┐",lineDownLeftArc:"╮",lineDownBoldLeftBold:"┓",lineDownBoldLeft:"┒",lineDownLeftBold:"┑",lineDownDoubleLeftDouble:"╗",lineDownDoubleLeft:"╖",lineDownLeftDouble:"╕",lineDownRight:"┌",lineDownRightArc:"╭",lineDownBoldRightBold:"┏",lineDownBoldRight:"┎",lineDownRightBold:"┍",lineDownDoubleRightDouble:"╔",lineDownDoubleRight:"╓",lineDownRightDouble:"╒",lineUpLeft:"┘",lineUpLeftArc:"╯",lineUpBoldLeftBold:"┛",lineUpBoldLeft:"┚",lineUpLeftBold:"┙",lineUpDoubleLeftDouble:"╝",lineUpDoubleLeft:"╜",lineUpLeftDouble:"╛",lineUpRight:"└",lineUpRightArc:"╰",lineUpBoldRightBold:"┗",lineUpBoldRight:"┖",lineUpRightBold:"┕",lineUpDoubleRightDouble:"╚",lineUpDoubleRight:"╙",lineUpRightDouble:"╘",lineUpDownLeft:"┤",lineUpBoldDownBoldLeftBold:"┫",lineUpBoldDownBoldLeft:"┨",lineUpDownLeftBold:"┥",lineUpBoldDownLeftBold:"┩",lineUpDownBoldLeftBold:"┪",lineUpDownBoldLeft:"┧",lineUpBoldDownLeft:"┦",lineUpDoubleDownDoubleLeftDouble:"╣",lineUpDoubleDownDoubleLeft:"╢",lineUpDownLeftDouble:"╡",lineUpDownRight:"├",lineUpBoldDownBoldRightBold:"┣",lineUpBoldDownBoldRight:"┠",lineUpDownRightBold:"┝",lineUpBoldDownRightBold:"┡",lineUpDownBoldRightBold:"┢",lineUpDownBoldRight:"┟",lineUpBoldDownRight:"┞",lineUpDoubleDownDoubleRightDouble:"╠",lineUpDoubleDownDoubleRight:"╟",lineUpDownRightDouble:"╞",lineDownLeftRight:"┬",lineDownBoldLeftBoldRightBold:"┳",lineDownLeftBoldRightBold:"┯",lineDownBoldLeftRight:"┰",lineDownBoldLeftBoldRight:"┱",lineDownBoldLeftRightBold:"┲",lineDownLeftRightBold:"┮",lineDownLeftBoldRight:"┭",lineDownDoubleLeftDoubleRightDouble:"╦",lineDownDoubleLeftRight:"╥",lineDownLeftDoubleRightDouble:"╤",lineUpLeftRight:"┴",lineUpBoldLeftBoldRightBold:"┻",lineUpLeftBoldRightBold:"┷",lineUpBoldLeftRight:"┸",lineUpBoldLeftBoldRight:"┹",lineUpBoldLeftRightBold:"┺",lineUpLeftRightBold:"┶",lineUpLeftBoldRight:"┵",lineUpDoubleLeftDoubleRightDouble:"╩",lineUpDoubleLeftRight:"╨",lineUpLeftDoubleRightDouble:"╧",lineUpDownLeftRight:"┼",lineUpBoldDownBoldLeftBoldRightBold:"╋",lineUpDownBoldLeftBoldRightBold:"╈",lineUpBoldDownLeftBoldRightBold:"╇",lineUpBoldDownBoldLeftRightBold:"╊",lineUpBoldDownBoldLeftBoldRight:"╉",lineUpBoldDownLeftRight:"╀",lineUpDownBoldLeftRight:"╁",lineUpDownLeftBoldRight:"┽",lineUpDownLeftRightBold:"┾",lineUpBoldDownBoldLeftRight:"╂",lineUpDownLeftBoldRightBold:"┿",lineUpBoldDownLeftBoldRight:"╃",lineUpBoldDownLeftRightBold:"╄",lineUpDownBoldLeftBoldRight:"╅",lineUpDownBoldLeftRightBold:"╆",lineUpDoubleDownDoubleLeftDoubleRightDouble:"╬",lineUpDoubleDownDoubleLeftRight:"╫",lineUpDownLeftDoubleRightDouble:"╪",lineCross:"╳",lineBackslash:"╲",lineSlash:"╱"},Nw0={tick:"✔",info:"ℹ",warning:"⚠",cross:"✘",squareSmall:"◻",squareSmallFilled:"◼",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",pointer:"❯",triangleUpOutline:"△",triangleLeft:"◀",triangleRight:"▶",lozenge:"◆",lozengeOutline:"◇",hamburger:"☰",smiley:"㋡",mustache:"෴",star:"★",play:"▶",nodejs:"⬢",oneSeventh:"⅐",oneNinth:"⅑",oneTenth:"⅒"},D9Q={tick:"√",info:"i",warning:"‼",cross:"×",squareSmall:"□",squareSmallFilled:"■",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"∆",triangleLeft:"◄",triangleRight:"►",lozenge:"♦",lozengeOutline:"◊",hamburger:"≡",smiley:"☺",mustache:"┌─┐",star:"✶",play:"►",nodejs:"♦",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},I9Q={...ww0,...Nw0},Z9Q={...ww0,...D9Q},G9Q=gu1(),F9Q=G9Q?I9Q:Z9Q,tA=F9Q,rR4=Object.entries(Nw0);var oR=G1(U1(),1);var h9Q=G1(U1(),1);var Xo=G1(U1(),1),v9Q=G1(Mw0(),1);var Rw0={info:"blue",success:"green",error:"red",warning:"yellow"},q9Q={styles:{container:({variant:A})=>({flexGrow:1,borderStyle:"round",borderColor:Rw0[A],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:A})=>({color:Rw0[A]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:A}){let B;if(A==="info")B=tA.info;if(A==="success")B=tA.tick;if(A==="error")B=tA.cross;if(A==="warning")B=tA.warning;return{icon:B}}},Ow0=q9Q;var $9Q={styles:{container:({color:A})=>({backgroundColor:A}),label:()=>({color:"black"})}},Tw0=$9Q;var L9Q={styles:{input:({isFocused:A})=>({dimColor:!A})}},Pw0=L9Q;var M9Q={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:A})=>({gap:1,paddingLeft:A?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:A,isSelected:B}){let Q;if(B)Q="green";if(A)Q="blue";return{color:Q}},highlightedText:()=>({bold:!0})}},Sw0=M9Q;var R9Q={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},_w0=R9Q;var O9Q={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:tA.square,remainingCharacter:tA.squareLightShade})},jw0=O9Q;var T9Q={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:A})=>({gap:1,paddingLeft:A?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:A,isSelected:B}){let Q;if(B)Q="green";if(A)Q="blue";return{color:Q}},highlightedText:()=>({bold:!0})}},yw0=T9Q;var P9Q={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},kw0=P9Q;var S9Q={success:"green",error:"red",warning:"yellow",info:"blue"},_9Q={success:tA.tick,error:tA.cross,warning:tA.warning,info:tA.info},j9Q={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:A})=>({color:S9Q[A]}),message:()=>({})},config:({variant:A})=>({icon:_9Q[A]})},xw0=j9Q;var y9Q={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:tA.line})},fw0=y9Q;var k9Q={styles:{value:()=>({})}},vw0=k9Q;var x9Q={styles:{value:()=>({})}},bw0=x9Q;var f9Q={styles:{value:()=>({})}},gw0=f9Q;var b9Q={components:{Alert:Ow0,Badge:Tw0,ConfirmInput:Pw0,MultiSelect:Sw0,OrderedList:_w0,ProgressBar:jw0,Select:yw0,Spinner:kw0,StatusMessage:xw0,UnorderedList:fw0,TextInput:vw0,EmailInput:bw0,PasswordInput:gw0}},g9Q=Xo.createContext(b9Q);var T3=(A)=>{return Xo.useContext(g9Q).components[A]};var u9Q=G1(U1(),1);var Nq=G1(U1(),1);var Wu=G1(U1(),1);var hw0=G1(U1(),1);var Vo=tA.line;var mF1=hw0.createContext({marker:Vo});function uw0({children:A}){let{marker:B}=Wu.useContext(mF1),{styles:Q}=T3("UnorderedList");return Wu.default.createElement(g,{...Q.listItem()},Wu.default.createElement(S,{...Q.marker()},B),Wu.default.createElement(g,{...Q.content()},A))}var mw0=G1(U1(),1),hu1=mw0.createContext({depth:0});function m9Q({children:A}){let{depth:B}=Nq.useContext(hu1),{styles:Q,config:D}=T3("UnorderedList"),I=Nq.useMemo(()=>({depth:B+1}),[B]),Z=Nq.useMemo(()=>{let{marker:G}=D();if(typeof G==="string")return{marker:G};if(Array.isArray(G))return{marker:G[B]??G.at(-1)??Vo};return{marker:Vo}},[D,B]);return Nq.default.createElement(hu1.Provider,{value:I},Nq.default.createElement(mF1.Provider,{value:Z},Nq.default.createElement(g,{...Q.list()},A)))}m9Q.Item=uw0;var Ju=G1(U1(),1);var Ko=G1(U1(),1);function dw0({isFocused:A,isSelected:B,children:Q}){let{styles:D}=T3("MultiSelect");return Ko.default.createElement(g,{...D.option({isFocused:A})},A&&Ko.default.createElement(S,{...D.focusIndicator()},tA.pointer),Ko.default.createElement(S,{...D.label({isFocused:A,isSelected:B})},Q),B&&Ko.default.createElement(S,{...D.selectedIndicator()},tA.tick))}var JJ=G1(U1(),1);import{isDeepStrictEqual as cw0}from"node:util";class Eo extends Map{first;constructor(A){let B=[],Q,D,I=0;for(let Z of A){let G={...Z,previous:D,next:void 0,index:I};if(D)D.next=G;Q||=G,B.push([Z.value,G]),I++,D=G}super(B);this.first=Q}}var d9Q=(A,B)=>{switch(B.type){case"focus-next-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.next;if(!D)return A;if(!(D.index>=A.visibleToIndex))return{...A,focusedValue:D.value};let Z=Math.min(A.optionMap.size,A.visibleToIndex+1),G=Z-A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:G,visibleToIndex:Z}}case"focus-previous-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.previous;if(!D)return A;if(!(D.index<=A.visibleFromIndex))return{...A,focusedValue:D.value};let Z=Math.max(0,A.visibleFromIndex-1),G=Z+A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:Z,visibleToIndex:G}}case"toggle-focused-option":{if(!A.focusedValue)return A;if(A.value.includes(A.focusedValue)){let Q=new Set(A.value);return Q.delete(A.focusedValue),{...A,previousValue:A.value,value:[...Q]}}return{...A,previousValue:A.value,value:[...A.value,A.focusedValue]}}case"reset":return B.state}},pw0=({visibleOptionCount:A,defaultValue:B,options:Q})=>{let D=typeof A==="number"?Math.min(A,Q.length):Q.length,I=new Eo(Q),Z=B??[];return{optionMap:I,visibleOptionCount:D,focusedValue:I.first?.value,visibleFromIndex:0,visibleToIndex:D,previousValue:Z,value:Z}},lw0=({visibleOptionCount:A=5,options:B,defaultValue:Q,onChange:D,onSubmit:I})=>{let[Z,G]=JJ.useReducer(d9Q,{visibleOptionCount:A,defaultValue:Q,options:B},pw0),[F,Y]=JJ.useState(B);if(B!==F&&!cw0(B,F))G({type:"reset",state:pw0({visibleOptionCount:A,defaultValue:Q,options:B})}),Y(B);let W=JJ.useCallback(()=>{G({type:"focus-next-option"})},[]),J=JJ.useCallback(()=>{G({type:"focus-previous-option"})},[]),C=JJ.useCallback(()=>{G({type:"toggle-focused-option"})},[]),X=JJ.useCallback(()=>{I?.(Z.value)},[Z.value,I]),V=JJ.useMemo(()=>{return B.map((K,E)=>({...K,index:E})).slice(Z.visibleFromIndex,Z.visibleToIndex)},[B,Z.visibleFromIndex,Z.visibleToIndex]);return JJ.useEffect(()=>{if(!cw0(Z.previousValue,Z.value))D?.(Z.value)},[Z.previousValue,Z.value,B,D]),{focusedValue:Z.focusedValue,visibleFromIndex:Z.visibleFromIndex,visibleToIndex:Z.visibleToIndex,value:Z.value,visibleOptions:V,focusNextOption:W,focusPreviousOption:J,toggleFocusedOption:C,submit:X}};var iw0=({isDisabled:A=!1,state:B})=>{Z0((Q,D)=>{if(D.downArrow)B.focusNextOption();if(D.upArrow)B.focusPreviousOption();if(Q===" ")B.toggleFocusedOption();if(D.return)B.submit()},{isActive:!A})};function dF1({isDisabled:A=!1,visibleOptionCount:B=5,highlightText:Q,options:D,defaultValue:I,onChange:Z,onSubmit:G}){let F=lw0({visibleOptionCount:B,options:D,defaultValue:I,onChange:Z,onSubmit:G});iw0({isDisabled:A,state:F});let{styles:Y}=T3("MultiSelect");return Ju.default.createElement(g,{...Y.container()},F.visibleOptions.map((W)=>{let J=W.label;if(Q&&W.label.includes(Q)){let C=W.label.indexOf(Q);J=Ju.default.createElement(Ju.default.Fragment,null,W.label.slice(0,C),Ju.default.createElement(S,{...Y.highlightedText()},Q),W.label.slice(C+Q.length))}return Ju.default.createElement(dw0,{key:W.value,isFocused:!A&&F.focusedValue===W.value,isSelected:F.value.includes(W.value)},J)}))}var nw0=G1(U1(),1);var p9Q=G1(U1(),1);var c9Q=G1(U1(),1);var Ho=G1(U1(),1);var l9Q=G1(U1(),1);var aw0=G1(U1(),1);var n9Q=G1(U1(),1);var cF1=G1(U1(),1);var i9Q=G1(U1(),1);var AP4=WA.inverse(" ");var PK=G1(U1(),1);var Cu=G1(U1(),1);var rw0=G1(U1(),1);var pF1=rw0.createContext({marker:tA.line});function lF1({children:A}){let{marker:B}=Cu.useContext(pF1),{styles:Q}=T3("OrderedList");return Cu.default.createElement(g,{...Q.listItem()},Cu.default.createElement(S,{...Q.marker()},B),Cu.default.createElement(g,{...Q.content()},A))}var sw0=G1(U1(),1),uu1=sw0.createContext({marker:""});function sR({children:A}){let{marker:B}=PK.useContext(uu1),{styles:Q}=T3("OrderedList"),D=0;for(let Z of PK.default.Children.toArray(A)){if(!PK.isValidElement(Z)||Z.type!==lF1)continue;D++}let I=String(D).length;return PK.default.createElement(g,{...Q.list()},PK.default.Children.map(A,(Z,G)=>{if(!PK.isValidElement(Z)||Z.type!==lF1)return Z;let F=`${String(G+1).padStart(I)}.`,Y=`${B}${F}`;return PK.default.createElement(uu1.Provider,{value:{marker:Y}},PK.default.createElement(pF1.Provider,{value:{marker:Y}},Z))}))}sR.Item=lF1;var r9Q=G1(U1(),1);var mu1=G1(U1(),1);var a9Q=G1(U1(),1);var SP4=WA.inverse(" ");var s9Q=G1(U1(),1);var o9Q=G1(U1(),1);var e9Q=G1(U1(),1);var iF1=G1(U1(),1);var t9Q=G1(U1(),1);var eP4=WA.inverse(" ");function ow0({isFocused:A,isSelected:B,children:Q,shouldShowDownArrow:D,shouldShowUpArrow:I}){let{styles:Z}=T3("Select");return oR.default.createElement(g,null,A?oR.default.createElement(S,{...Z.focusIndicator()},tA.pointer," "):D?oR.default.createElement(S,{color:"secondaryText"},tA.arrowDown," "):I?oR.default.createElement(S,{color:"secondaryText"},tA.arrowUp," "):oR.default.createElement(S,null," "),oR.default.createElement(S,{...Z.label({isFocused:A,isSelected:B})},Q),B&&oR.default.createElement(S,{...Z.selectedIndicator()},tA.tick))}var CJ=G1(U1(),1);import{isDeepStrictEqual as AQQ}from"node:util";class nF1 extends Map{first;constructor(A){let B=[],Q,D,I=0;for(let Z of A){let G={...Z,previous:D,next:void 0,index:I};if(D)D.next=G;Q||=G,B.push([Z.value,G]),I++,D=G}super(B);this.first=Q}}var BQQ=(A,B)=>{switch(B.type){case"focus-next-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.next;if(!D)return A;if(!(D.index>=A.visibleToIndex))return{...A,focusedValue:D.value};let Z=Math.min(A.optionMap.size,A.visibleToIndex+1),G=Z-A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:G,visibleToIndex:Z}}case"focus-previous-option":{if(!A.focusedValue)return A;let Q=A.optionMap.get(A.focusedValue);if(!Q)return A;let D=Q.previous;if(!D)return A;if(!(D.index<=A.visibleFromIndex))return{...A,focusedValue:D.value};let Z=Math.max(0,A.visibleFromIndex-1),G=Z+A.visibleOptionCount;return{...A,focusedValue:D.value,visibleFromIndex:Z,visibleToIndex:G}}case"select-focused-option":return{...A,value:A.focusedValue};case"reset":return B.state;case"set-focus":return{...A,focusedValue:B.value}}},tw0=({visibleOptionCount:A,defaultValue:B,options:Q,initialFocusValue:D})=>{let I=typeof A==="number"?Math.min(A,Q.length):Q.length,Z=new nF1(Q);return{optionMap:Z,visibleOptionCount:I,focusedValue:D||Z.first?.value,visibleFromIndex:0,visibleToIndex:I,value:B}},ew0=({visibleOptionCount:A=5,options:B,defaultValue:Q,onChange:D,onCancel:I,onFocus:Z,focusValue:G})=>{let[F,Y]=CJ.useReducer(BQQ,{visibleOptionCount:A,defaultValue:Q,options:B,initialFocusValue:G},tw0),[W,J]=CJ.useState(B);if(B!==W&&!AQQ(B,W))Y({type:"reset",state:tw0({visibleOptionCount:A,defaultValue:F.value||Q,options:B,initialFocusValue:F.focusedValue||G})}),J(B);let C=CJ.useCallback(()=>{Y({type:"focus-next-option"})},[]),X=CJ.useCallback(()=>{Y({type:"focus-previous-option"})},[]),V=CJ.useCallback(()=>{Y({type:"select-focused-option"})},[]),K=CJ.useMemo(()=>{return B.map((E,U)=>({...E,index:U})).slice(F.visibleFromIndex,F.visibleToIndex)},[B,F.visibleFromIndex,F.visibleToIndex]);return CJ.useEffect(()=>{if(F.focusedValue)Z?.(F.focusedValue)},[F.focusedValue,Z]),CJ.useEffect(()=>{if(G)Y({type:"set-focus",value:G})},[G]),{focusedValue:F.focusedValue,visibleFromIndex:F.visibleFromIndex,visibleToIndex:F.visibleToIndex,value:F.value,visibleOptions:K,focusNextOption:C,focusPreviousOption:X,selectFocusedOption:V,onChange:D,onCancel:I,options:B}};var AN0=({isDisabled:A=!1,state:B})=>{Z0((Q,D)=>{if(D.downArrow||D.ctrl&&Q==="n"||!D.ctrl&&!D.shift&&Q==="j")B.focusNextOption();if(D.upArrow||D.ctrl&&Q==="p"||!D.ctrl&&!D.shift&&Q==="k")B.focusPreviousOption();if(D.return&&B.focusedValue)B.selectFocusedOption?.(),B.onChange?.(B.focusedValue);if(/^[0-9]+$/.test(Q)){let I=parseInt(Q)-1;if(I>=0&&I<B.options.length){B.onChange?.(B.options[I].value);return}}if(D.escape)B.onCancel?.()},{isActive:!A})};function d0({isDisabled:A=!1,visibleOptionCount:B=5,highlightText:Q,options:D,defaultValue:I,onCancel:Z,onChange:G,onFocus:F,focusValue:Y}){let W=ew0({visibleOptionCount:B,options:D,defaultValue:I,onChange:G,onCancel:Z,onFocus:F,focusValue:Y});AN0({isDisabled:A,state:W});let{styles:J}=T3("Select"),C=W.options.length.toString().length,X=Math.max(...W.options.map((V)=>{return`${(W.options.findIndex((U)=>U.value===V.value)+1).toString()}.`.padEnd(C).length+V.label.length}));return _j.default.createElement(g,{...J.container()},W.visibleOptions.map((V,K)=>{let E=V.label,U=E;if(Q&&E.includes(Q)){let p=E.indexOf(Q);U=_j.default.createElement(_j.default.Fragment,null,E.slice(0,p),_j.default.createElement(S,{...J.highlightedText()},Q),E.slice(p+Q.length))}let q=V.index===W.visibleFromIndex,R=V.index===W.visibleToIndex-1,M=W.visibleToIndex<D.length,T=W.visibleFromIndex>0,P=`${W.visibleFromIndex+K+1}.`.padEnd(C),_=P.length+E.length,d=X+2-_,y=Math.max(2,d);return _j.default.createElement(ow0,{key:V.value,isFocused:!A&&W.focusedValue===V.value,isSelected:W.value===V.value,shouldShowDownArrow:M&&R,shouldShowUpArrow:T&&q},WA.dim(P)," ",U,V.description&&_j.default.createElement(S,{dimColor:V.dimDescription!==!1}," ".padEnd(y),V.description))}))}var du1=G1(U1(),1),BN0=800;function qq(A,B,Q){let D=du1.useRef(0),I=du1.useRef();return()=>{let Z=Date.now();if(Z-D.current<=BN0&&I.current){if(I.current)clearTimeout(I.current),I.current=void 0;B(),A(!1)}else Q?.(),A(!0),I.current=setTimeout(()=>A(!1),BN0);D.current=Z}}var DN0=G1(U1(),1);var cu1=new Set;function aF1(A){return cu1.add(A),()=>cu1.delete(A)}var QN0=T0(()=>{process.on("SIGINT",()=>{U4(0)}),process.on("SIGTERM",()=>{U4(143)})});function GI(A=0){U4(A).catch((B)=>{cB(`Graceful shutdown failed: ${B}`),process.exit(A)})}async function U4(A=0){process.exitCode=A;try{let B=(async()=>{try{await Promise.all(Array.from(cu1).map((Q)=>Q()))}catch{}})();await Promise.race([B,new Promise((Q,D)=>setTimeout(()=>D(new Error("Cleanup timeout")),2000))]),process.exit(A)}catch{process.exit(A)}}function Q2(A){let[B,Q]=DN0.useState({pending:!1,keyName:null}),D=qq((Z)=>Q({pending:Z,keyName:"Ctrl-C"}),A?A:async()=>{await U4(0)}),I=qq((Z)=>Q({pending:Z,keyName:"Ctrl-D"}),A?A:async()=>{await U4(0)});return Z0((Z,G)=>{if(G.ctrl&&Z==="c")D();if(G.ctrl&&Z==="d")I()}),B}var CG=G1(U1(),1);var XJ=()=>({mode:"default",additionalWorkingDirectories:new Set,alwaysAllowRules:{},alwaysDenyRules:{},isBypassPermissionsModeAvailable:!1});function QQQ(){return{verbose:!1,mainLoopModel:null,maxRateLimitFallbackActive:!1,todoFeatureEnabled:!1,toolPermissionContext:XJ(),mcp:{clients:[],tools:[],commands:[],resources:{}}}}var ZN0=CG.default.createContext([{},(A)=>A]),IN0=CG.default.createContext(!1);function W5({children:A,initialState:B,onChangeAppState:Q}){if(CG.useContext(IN0))throw new Error("AppStateProvider can not be nested within another AppStateProvider");let[I,Z]=CG.useState({currentState:B??QQQ(),previousState:null}),G=CG.useCallback((Y)=>Z(({currentState:W})=>({currentState:Y(W),previousState:W})),[]),F=CG.useMemo(()=>{let Y=[I.currentState,G];return Y.__IS_INITIALIZED__=!0,Y},[I.currentState,G]);return CG.useEffect(()=>{Q?.({newState:I.currentState,oldState:I.previousState})},[Q,I]),CG.default.createElement(IN0.Provider,{value:!0},CG.default.createElement(ZN0.Provider,{value:F},A))}function i6(){let A=CG.useContext(ZN0);if(!A.__IS_INITIALIZED__)throw new ReferenceError("useAppState cannot be called outside of an <AppStateProvider />");return A}function DQQ({filePath:A,errorDescription:B,onExit:Q,onReset:D}){Z0((G,F)=>{if(F.escape)Q()});let I=Q2();return XG.default.createElement(XG.default.Fragment,null,XG.default.createElement(g,{flexDirection:"column",borderColor:"error",borderStyle:"round",padding:1,width:70,gap:1},XG.default.createElement(S,{bold:!0},"Configuration Error"),XG.default.createElement(g,{flexDirection:"column",gap:1},XG.default.createElement(S,null,"The configuration file at ",XG.default.createElement(S,{bold:!0},A)," contains invalid JSON."),XG.default.createElement(S,null,B)),XG.default.createElement(g,{flexDirection:"column"},XG.default.createElement(S,{bold:!0},"Choose an option:"),XG.default.createElement(d0,{options:[{label:"Exit and fix manually",value:"exit"},{label:"Reset with default configuration",value:"reset"}],onChange:(G)=>{if(G==="exit")Q();else D()},onCancel:Q}))),I.pending?XG.default.createElement(S,{dimColor:!0},"Press ",I.keyName," again to exit"):XG.default.createElement(T4,null))}var IQQ="dark";async function GN0({error:A}){let B={exitOnCtrlC:!1,theme:IQQ};await new Promise((Q)=>{let{unmount:D}=F4(XG.default.createElement(W5,null,XG.default.createElement(DQQ,{filePath:A.filePath,errorDescription:A.message,onExit:()=>{D(),Q(),process.exit(1)},onReset:()=>{v1().writeFileSync(A.filePath,JSON.stringify(A.defaultConfig,null,2),{flush:!1,encoding:"utf8"}),D(),Q(),process.exit(0)}})),B)})}var qJ1=G1(C9(),1),yi1=G1(lm1(),1),$J1=G1(QO(),1),Lo0=G1(tm0(),1),Mo0=G1(gr0(),1),Ro0=G1(aY1(),1),Oo0=G1(nr0(),1),ki1=G1(QO(),1),Jm=G1(ls0(),1),To0=G1(Qo0(),1),Po0=G1(Yo0(),1),So0=G1(wo0(),1),bt=G1(PY1(),1),LJ1=G1(Mq(),1);class _i1{error(A,...B){f1(new Error(A))}warn(A,...B){f1(new Error(A))}info(A,...B){return}debug(A,...B){return}verbose(A,...B){return}}var qo0=G1(QO(),1),Ey=G1(P3(),1);function LO(){return`claude-cli/${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION} (external, ${process.env.CLAUDE_CODE_ENTRYPOINT})`}function Ym(){return`claude-code/${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}`}function NJ1(){return`claude-code/${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}`}function Wm(){if(NB()){let B=m7();if(!B?.accessToken)return{headers:{},error:"No OAuth token available"};return{headers:{Authorization:`Bearer ${B.accessToken}`,"anthropic-beta":Jv}}}let A=QZ(!1);if(!A)return{headers:{},error:"No API key available"};return{headers:{"x-api-key":A}}}var njQ=3600000;async function ajQ(A){let B=Wm();if(B.error)throw xA(`Metrics opt-out check failed: ${B.error}`),new Error(`Auth error: ${B.error}`);let Q={"Content-Type":"application/json","User-Agent":NJ1(),...B.headers};try{let D=`https://api.anthropic.com/api/organizations/${A}/claude_code_metrics_enabled`,I=await N9.get(D,{headers:Q,timeout:5000});return xA(`Metrics opt-out API response: enabled=${I.data.metrics_logging_enabled}`),{enabled:I.data.metrics_logging_enabled,hasError:!1}}catch(D){throw cB(`Failed to check metrics opt-out status: ${D instanceof Error?D.message:String(D)}`),f1(D),D}}var rjQ=c51(ajQ,njQ);async function No0(){let B=GA().oauthAccount?.organizationUuid;if(!B)return xA("No organization UUID found, metrics disabled"),{enabled:!1,hasError:!1};try{return await rjQ(B)}catch(Q){return xA("First-time metrics check failed, defaulting to disabled"),{enabled:!1,hasError:!0}}}class ji1{endpoint;timeout;pendingExports=[];isShutdown=!1;constructor(A={}){this.endpoint="https://api.anthropic.com/api/claude_code/metrics",this.timeout=A.timeout||5000}async export(A,B){if(this.isShutdown){B({code:Ey.ExportResultCode.FAILED,error:new Error("Exporter has been shutdown")});return}let Q=this.doExport(A,B);this.pendingExports.push(Q),Q.finally(()=>{let D=this.pendingExports.indexOf(Q);if(D>-1)this.pendingExports.splice(D,1)})}async doExport(A,B){try{if(!await WJ("tengu_metrics_exporter_enabled")){B({code:Ey.ExportResultCode.SUCCESS});return}if(!(await No0()).enabled){xA("Metrics export disabled by organization setting"),B({code:Ey.ExportResultCode.SUCCESS});return}let I=this.transformMetricsForInternal(A),Z=Wm();if(Z.error){xA(`Metrics export failed: ${Z.error}`),B({code:Ey.ExportResultCode.FAILED,error:new Error(Z.error)});return}let G={"Content-Type":"application/json","User-Agent":NJ1(),...Z.headers},F=await N9.post(this.endpoint,I,{timeout:this.timeout,headers:G});xA("BigQuery metrics exported successfully"),xA(`API Response: ${JSON.stringify(F.data,null,2)}`),B({code:Ey.ExportResultCode.SUCCESS})}catch(Q){xA(`BigQuery metrics export failed: ${Q instanceof Error?Q.message:String(Q)}`),f1(Q),B({code:Ey.ExportResultCode.FAILED,error:Q instanceof Error?Q:new Error("Unknown export error")})}}transformMetricsForInternal(A){return{resource_attributes:{"service.name":A.resource.attributes["service.name"]||"claude-code","service.version":A.resource.attributes["service.version"]||"unknown"},metrics:A.scopeMetrics.flatMap((Q)=>Q.metrics.map((D)=>({name:D.descriptor.name,description:D.descriptor.description,unit:D.descriptor.unit,data_points:this.extractDataPoints(D)})))}}extractDataPoints(A){return(A.dataPoints||[]).filter((Q)=>typeof Q.value==="number").map((Q)=>({attributes:this.convertAttributes(Q.attributes),value:Q.value,timestamp:this.hrTimeToISOString(Q.endTime||Q.startTime||[Date.now()/1000,0])}))}async shutdown(){this.isShutdown=!0,await this.forceFlush(),xA("BigQuery metrics exporter shutdown complete")}async forceFlush(){await Promise.all(this.pendingExports),xA("BigQuery metrics exporter flush complete")}convertAttributes(A){let B={};if(A){for(let[Q,D]of Object.entries(A))if(D!==void 0&&D!==null)B[Q]=String(D)}return B}hrTimeToISOString(A){let[B,Q]=A;return new Date(B*1000+Q/1e6).toISOString()}selectAggregationTemporality(){return qo0.AggregationTemporality.CUMULATIVE}}var sjQ=60000,ojQ=5000;function tjQ(){if(!process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE)process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE="delta"}function ejQ(){let A=(process.env.OTEL_METRICS_EXPORTER||"").trim().split(",").filter(Boolean),B=parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL||sjQ.toString()),Q=[];for(let D of A)if(D==="console"){let I=new $J1.ConsoleMetricExporter,Z=I.export.bind(I);I.export=(G,F)=>{if(G.resource&&G.resource.attributes)console.log(`
724
724
  === Resource Attributes ===`),console.log(G.resource.attributes),console.log(`===========================
725
- `);return Z(G,F)},Q.push(I)}else if(D==="otlp"){let I=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();switch(I){case"grpc":Q.push(new Mo0.OTLPMetricExporter);break;case"http/json":Q.push(new Ro0.OTLPMetricExporter);break;case"http/protobuf":Q.push(new Lo0.OTLPMetricExporter);break;default:throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${I}`)}}else if(D==="prometheus")Q.push(new Oo0.PrometheusExporter);else throw new Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${D}`);return Q.map((D)=>{if("export"in D)return new ki1.PeriodicExportingMetricReader({exporter:D,exportIntervalMillis:B});return D})}function AyQ(){let A=(process.env.OTEL_LOGS_EXPORTER||"").trim().split(",").filter(Boolean),B=[];for(let Q of A)if(Q==="console")B.push(new Jm.ConsoleLogRecordExporter);else if(Q==="otlp"){let D=process.env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();switch(D){case"grpc":B.push(new Po0.OTLPLogExporter);break;case"http/json":B.push(new So0.OTLPLogExporter);break;case"http/protobuf":B.push(new To0.OTLPLogExporter);break;default:throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_LOGS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${D}`)}}else throw new Error(`Unknown exporter type set in OTEL_LOGS_EXPORTER env var: ${Q}`);return B}function $o0(){return Boolean(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function ByQ(){let A=new ji1;return new ki1.PeriodicExportingMetricReader({exporter:A,exportIntervalMillis:300000})}function QyQ(){return hpA()||!1}function _o0(){tjQ(),qJ1.diag.setLogger(new _i1,qJ1.DiagLogLevel.ERROR);let A=[];if($o0())A.push(...ejQ());if(QyQ())A.push(ByQ());let B=n4(),Q={[LJ1.ATTR_SERVICE_NAME]:"claude-code",[LJ1.ATTR_SERVICE_VERSION]:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION},D;{let G=bt.resourceFromAttributes(Q),F=bt.resourceFromAttributes(bt.envDetector.detect().attributes||{});D=G.merge(F)}let I=new $J1.MeterProvider({resource:D,views:[],readers:A});if($o0()){let G=AyQ();if(G.length>0){let F=new Jm.LoggerProvider({resource:D});for(let W of G)F.addLogRecordProcessor(new Jm.BatchLogRecordProcessor(W,{scheduledDelayMillis:parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||ojQ.toString())}));yi1.logs.setGlobalLoggerProvider(F),y8A(F);let Y=yi1.logs.getLogger("com.anthropic.claude_code.events",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION);x8A(Y)}}return aF1(async()=>{let G=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||"1000");try{let F=[I.shutdown()],Y=j8A();if(Y)F.push(Y.shutdown());await Promise.race([Promise.all(F),new Promise((W,J)=>setTimeout(()=>J(new Error("OpenTelemetry shutdown timeout")),G))])}catch(F){if(F instanceof Error&&F.message.includes("timeout"))cB(`
725
+ `);return Z(G,F)},Q.push(I)}else if(D==="otlp"){let I=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();switch(I){case"grpc":Q.push(new Mo0.OTLPMetricExporter);break;case"http/json":Q.push(new Ro0.OTLPMetricExporter);break;case"http/protobuf":Q.push(new Lo0.OTLPMetricExporter);break;default:throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${I}`)}}else if(D==="prometheus")Q.push(new Oo0.PrometheusExporter);else throw new Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${D}`);return Q.map((D)=>{if("export"in D)return new ki1.PeriodicExportingMetricReader({exporter:D,exportIntervalMillis:B});return D})}function AyQ(){let A=(process.env.OTEL_LOGS_EXPORTER||"").trim().split(",").filter(Boolean),B=[];for(let Q of A)if(Q==="console")B.push(new Jm.ConsoleLogRecordExporter);else if(Q==="otlp"){let D=process.env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();switch(D){case"grpc":B.push(new Po0.OTLPLogExporter);break;case"http/json":B.push(new So0.OTLPLogExporter);break;case"http/protobuf":B.push(new To0.OTLPLogExporter);break;default:throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_LOGS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${D}`)}}else throw new Error(`Unknown exporter type set in OTEL_LOGS_EXPORTER env var: ${Q}`);return B}function $o0(){return Boolean(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function ByQ(){let A=new ji1;return new ki1.PeriodicExportingMetricReader({exporter:A,exportIntervalMillis:300000})}function QyQ(){return hpA()||!1}function _o0(){tjQ(),qJ1.diag.setLogger(new _i1,qJ1.DiagLogLevel.ERROR);let A=[];if($o0())A.push(...ejQ());if(QyQ())A.push(ByQ());let B=n4(),Q={[LJ1.ATTR_SERVICE_NAME]:"claude-code",[LJ1.ATTR_SERVICE_VERSION]:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION},D;{let G=bt.resourceFromAttributes(Q),F=bt.resourceFromAttributes(bt.envDetector.detect().attributes||{});D=G.merge(F)}let I=new $J1.MeterProvider({resource:D,views:[],readers:A});if($o0()){let G=AyQ();if(G.length>0){let F=new Jm.LoggerProvider({resource:D});for(let W of G)F.addLogRecordProcessor(new Jm.BatchLogRecordProcessor(W,{scheduledDelayMillis:parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||ojQ.toString())}));yi1.logs.setGlobalLoggerProvider(F),y8A(F);let Y=yi1.logs.getLogger("com.anthropic.claude_code.events",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION);x8A(Y)}}return aF1(async()=>{let G=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||"1000");try{let F=[I.shutdown()],Y=j8A();if(Y)F.push(Y.shutdown());await Promise.race([Promise.all(F),new Promise((W,J)=>setTimeout(()=>J(new Error("OpenTelemetry shutdown timeout")),G))])}catch(F){if(F instanceof Error&&F.message.includes("timeout"))cB(`
726
726
  OpenTelemetry telemetry flush timed out after ${G}ms
727
727
 
728
728
  To resolve this issue, you can:
@@ -731,7 +731,7 @@ To resolve this issue, you can:
731
731
  3. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
732
732
 
733
733
  Current timeout: ${G}ms
734
- `);throw F}}),I.getMeter("com.anthropic.claude_code",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION)}var DyQ={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0};function xi1(A){let B=DyQ[A],Q=process.env[A];if(Q===void 0)return B;return Q==="true"}function MJ1(){let A=_f(),B=jB(),Q=GA(),D=Q.oauthAccount?.organizationUuid,I=Q.oauthAccount?.emailAddress,Z=Q.oauthAccount?.accountUuid,G={"user.id":A};if(xi1("OTEL_METRICS_INCLUDE_SESSION_ID"))G["session.id"]=B;if(xi1("OTEL_METRICS_INCLUDE_VERSION"))G["app.version"]={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION;if(D)G["organization.id"]=D;if(I)G["user.email"]=I;if(Z&&xi1("OTEL_METRICS_INCLUDE_ACCOUNT_UUID"))G["user.account_uuid"]=Z;if(nA.terminal)G["terminal.type"]=nA.terminal;return G}var jo0=T0(()=>{try{Jw0(),zw0(),QN0(),IyQ(),Xw0(),iz0(),oz0()}catch(A){if(A instanceof V_)return GN0({error:A});else throw A}});function IyQ(){let A=_o0();if(A)O8A(A,(Q,D)=>{let I=A?.createCounter(Q,D);return{attributes:null,add(Z,G={}){if(this.attributes===null)this.attributes=MJ1();let F={...this.attributes,...G};I?.add(Z,F)}}})}import{createRequire as ZyQ}from"module";import{fileURLToPath as GyQ}from"url";import{dirname as FyQ,join as YyQ}from"path";var WyQ=ZyQ(import.meta.url);function yo0(A){let B;if(typeof Bun!=="undefined"&&Bun.embeddedFiles?.length>0)B="./ripgrep.node";else B=YyQ(FyQ(GyQ(import.meta.url)),"ripgrep.node");let{ripgrepMain:Q}=WyQ(B);return Q(A)}var U8=G1(U1(),1);import{ReadStream as bv6}from"tty";import{openSync as gv6,existsSync as hv6}from"fs";var RO=G1(U1(),1);var gi1=G1(U1(),1);var zy=G1(uo0(),1);var mo0=process.env.TERM_PROGRAM==="Apple_Terminal",W6={};W6.cursorTo=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");if(typeof B!=="number")return"\x1B["+(A+1)+"G";return"\x1B["+(B+1)+";"+(A+1)+"H"};W6.cursorMove=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");let Q="";if(A<0)Q+="\x1B["+-A+"D";else if(A>0)Q+="\x1B["+A+"C";if(B<0)Q+="\x1B["+-B+"A";else if(B>0)Q+="\x1B["+B+"B";return Q};W6.cursorUp=(A=1)=>"\x1B["+A+"A";W6.cursorDown=(A=1)=>"\x1B["+A+"B";W6.cursorForward=(A=1)=>"\x1B["+A+"C";W6.cursorBackward=(A=1)=>"\x1B["+A+"D";W6.cursorLeft="\x1B[G";W6.cursorSavePosition=mo0?"\x1B7":"\x1B[s";W6.cursorRestorePosition=mo0?"\x1B8":"\x1B[u";W6.cursorGetPosition="\x1B[6n";W6.cursorNextLine="\x1B[E";W6.cursorPrevLine="\x1B[F";W6.cursorHide="\x1B[?25l";W6.cursorShow="\x1B[?25h";W6.eraseLines=(A)=>{let B="";for(let Q=0;Q<A;Q++)B+=W6.eraseLine+(Q<A-1?W6.cursorUp():"");if(A)B+=W6.cursorLeft;return B};W6.eraseEndLine="\x1B[K";W6.eraseStartLine="\x1B[1K";W6.eraseLine="\x1B[2K";W6.eraseDown="\x1B[J";W6.eraseUp="\x1B[1J";W6.eraseScreen="\x1B[2J";W6.scrollUp="\x1B[S";W6.scrollDown="\x1B[T";W6.clearScreen="\x1Bc";W6.clearTerminal=process.platform==="win32"?`${W6.eraseScreen}\x1B[0f`:`${W6.eraseScreen}\x1B[3J\x1B[H`;W6.beep="\x07";W6.link=(A,B)=>{return["\x1B]","8",";",";",B,"\x07",A,"\x1B]","8",";",";","\x07"].join("")};W6.image=(A,B={})=>{let Q="\x1B]1337;File=inline=1";if(B.width)Q+=`;width=${B.width}`;if(B.height)Q+=`;height=${B.height}`;if(B.preserveAspectRatio===!1)Q+=";preserveAspectRatio=0";return Q+":"+A.toString("base64")+"\x07"};W6.iTerm={setCwd:(A=process.cwd())=>`\x1B]50;CurrentDir=${A}\x07`,annotation:(A,B={})=>{let Q="\x1B]1337;",D=typeof B.x!=="undefined",I=typeof B.y!=="undefined";if((D||I)&&!(D&&I&&typeof B.length!=="undefined"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replace(/\|/g,""),Q+=B.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",B.length>0)Q+=(D?[A,B.length,B.x,B.y]:[B.length,A]).join("|");else Q+=A;return Q+"\x07"}};var do0=W6;var RJ1=G1(ao0(),1);function Hy(A,B,{target:Q="stdout",...D}={}){if(!RJ1.default[Q]){if(D.fallback===!1)return A;return typeof D.fallback==="function"?D.fallback(A,B):`${A} (​${B}​)`}return do0.link(A,B)}Hy.isSupported=RJ1.default.stdout;Hy.stderr=(A,B,Q={})=>Hy(A,B,{target:"stderr",...Q});Hy.stderr.isSupported=RJ1.default.stderr;var ro0=({children:A,url:B,fallback:Q=!0})=>gi1.default.createElement(B81,{transform:(D)=>Hy(D,B,{fallback:Q})},gi1.default.createElement(S,null,A));ro0.propTypes={children:zy.default.oneOfType([zy.default.arrayOf(zy.default.node),zy.default.node]).isRequired,url:zy.default.string.isRequired,fallback:zy.default.bool};var OJ1=ro0;var TJ1=G1(U1(),1);var zyQ=["iTerm.app","WezTerm","Hyper","VSCode"];function n3({url:A,children:B}){let Q=zyQ.includes(nA.terminal??""),D=B||A;if(Q||D!==A)return TJ1.default.createElement(OJ1,{url:A},TJ1.default.createElement(S,null,D));else return TJ1.default.createElement(S,{underline:!0},D)}function so0({onDone:A}){return Z0((B,Q)=>{if(Q.ctrl&&(B==="c"||B==="d")||Q.escape)A()}),RO.default.createElement(g,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:"secondaryBorder"},RO.default.createElement(g,{marginBottom:1,flexDirection:"column"},RO.default.createElement(S,{bold:!0},"You've spent $5 on the Anthropic API this session."),RO.default.createElement(S,null,"Learn more about how to monitor your spending:"),RO.default.createElement(n3,{url:"https://docs.anthropic.com/s/claude-code-cost"})),RO.default.createElement(g,null,RO.default.createElement(d0,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:A,onCancel:A})))}import{join as B01,dirname as IT2}from"path";import{randomUUID as O0A}from"crypto";var EJ="Task";var Uy="WebFetch",oo0=`
734
+ `);throw F}}),I.getMeter("com.anthropic.claude_code",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION)}var DyQ={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0};function xi1(A){let B=DyQ[A],Q=process.env[A];if(Q===void 0)return B;return Q==="true"}function MJ1(){let A=_f(),B=jB(),Q=GA(),D=Q.oauthAccount?.organizationUuid,I=Q.oauthAccount?.emailAddress,Z=Q.oauthAccount?.accountUuid,G={"user.id":A};if(xi1("OTEL_METRICS_INCLUDE_SESSION_ID"))G["session.id"]=B;if(xi1("OTEL_METRICS_INCLUDE_VERSION"))G["app.version"]={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION;if(D)G["organization.id"]=D;if(I)G["user.email"]=I;if(Z&&xi1("OTEL_METRICS_INCLUDE_ACCOUNT_UUID"))G["user.account_uuid"]=Z;if(nA.terminal)G["terminal.type"]=nA.terminal;return G}var jo0=T0(()=>{try{Jw0(),zw0(),QN0(),IyQ(),Xw0(),iz0(),oz0()}catch(A){if(A instanceof V_)return GN0({error:A});else throw A}});function IyQ(){let A=_o0();if(A)O8A(A,(Q,D)=>{let I=A?.createCounter(Q,D);return{attributes:null,add(Z,G={}){if(this.attributes===null)this.attributes=MJ1();let F={...this.attributes,...G};I?.add(Z,F)}}})}import{createRequire as ZyQ}from"module";import{fileURLToPath as GyQ}from"url";import{dirname as FyQ,join as YyQ}from"path";var WyQ=ZyQ(import.meta.url);function yo0(A){let B;if(typeof Bun!=="undefined"&&Bun.embeddedFiles?.length>0)B="./ripgrep.node";else B=YyQ(FyQ(GyQ(import.meta.url)),"ripgrep.node");let{ripgrepMain:Q}=WyQ(B);return Q(A)}var U8=G1(U1(),1);import{ReadStream as bv6}from"tty";import{openSync as gv6,existsSync as hv6}from"fs";var RO=G1(U1(),1);var gi1=G1(U1(),1);var zy=G1(uo0(),1);var mo0=process.env.TERM_PROGRAM==="Apple_Terminal",W6={};W6.cursorTo=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");if(typeof B!=="number")return"\x1B["+(A+1)+"G";return"\x1B["+(B+1)+";"+(A+1)+"H"};W6.cursorMove=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");let Q="";if(A<0)Q+="\x1B["+-A+"D";else if(A>0)Q+="\x1B["+A+"C";if(B<0)Q+="\x1B["+-B+"A";else if(B>0)Q+="\x1B["+B+"B";return Q};W6.cursorUp=(A=1)=>"\x1B["+A+"A";W6.cursorDown=(A=1)=>"\x1B["+A+"B";W6.cursorForward=(A=1)=>"\x1B["+A+"C";W6.cursorBackward=(A=1)=>"\x1B["+A+"D";W6.cursorLeft="\x1B[G";W6.cursorSavePosition=mo0?"\x1B7":"\x1B[s";W6.cursorRestorePosition=mo0?"\x1B8":"\x1B[u";W6.cursorGetPosition="\x1B[6n";W6.cursorNextLine="\x1B[E";W6.cursorPrevLine="\x1B[F";W6.cursorHide="\x1B[?25l";W6.cursorShow="\x1B[?25h";W6.eraseLines=(A)=>{let B="";for(let Q=0;Q<A;Q++)B+=W6.eraseLine+(Q<A-1?W6.cursorUp():"");if(A)B+=W6.cursorLeft;return B};W6.eraseEndLine="\x1B[K";W6.eraseStartLine="\x1B[1K";W6.eraseLine="\x1B[2K";W6.eraseDown="\x1B[J";W6.eraseUp="\x1B[1J";W6.eraseScreen="\x1B[2J";W6.scrollUp="\x1B[S";W6.scrollDown="\x1B[T";W6.clearScreen="\x1Bc";W6.clearTerminal=process.platform==="win32"?`${W6.eraseScreen}\x1B[0f`:`${W6.eraseScreen}\x1B[3J\x1B[H`;W6.beep="\x07";W6.link=(A,B)=>{return["\x1B]","8",";",";",B,"\x07",A,"\x1B]","8",";",";","\x07"].join("")};W6.image=(A,B={})=>{let Q="\x1B]1337;File=inline=1";if(B.width)Q+=`;width=${B.width}`;if(B.height)Q+=`;height=${B.height}`;if(B.preserveAspectRatio===!1)Q+=";preserveAspectRatio=0";return Q+":"+A.toString("base64")+"\x07"};W6.iTerm={setCwd:(A=process.cwd())=>`\x1B]50;CurrentDir=${A}\x07`,annotation:(A,B={})=>{let Q="\x1B]1337;",D=typeof B.x!=="undefined",I=typeof B.y!=="undefined";if((D||I)&&!(D&&I&&typeof B.length!=="undefined"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replace(/\|/g,""),Q+=B.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",B.length>0)Q+=(D?[A,B.length,B.x,B.y]:[B.length,A]).join("|");else Q+=A;return Q+"\x07"}};var do0=W6;var RJ1=G1(ao0(),1);function Hy(A,B,{target:Q="stdout",...D}={}){if(!RJ1.default[Q]){if(D.fallback===!1)return A;return typeof D.fallback==="function"?D.fallback(A,B):`${A} (​${B}​)`}return do0.link(A,B)}Hy.isSupported=RJ1.default.stdout;Hy.stderr=(A,B,Q={})=>Hy(A,B,{target:"stderr",...Q});Hy.stderr.isSupported=RJ1.default.stderr;var ro0=({children:A,url:B,fallback:Q=!0})=>gi1.default.createElement(B81,{transform:(D)=>Hy(D,B,{fallback:Q})},gi1.default.createElement(S,null,A));ro0.propTypes={children:zy.default.oneOfType([zy.default.arrayOf(zy.default.node),zy.default.node]).isRequired,url:zy.default.string.isRequired,fallback:zy.default.bool};var OJ1=ro0;var TJ1=G1(U1(),1);var zyQ=["iTerm.app","WezTerm","Hyper","VSCode"];function n3({url:A,children:B}){let Q=zyQ.includes(nA.terminal??""),D=B||A;if(Q||D!==A)return TJ1.default.createElement(OJ1,{url:A},TJ1.default.createElement(S,null,D));else return TJ1.default.createElement(S,{underline:!0},D)}function so0({onDone:A}){return Z0((B,Q)=>{if(Q.ctrl&&(B==="c"||B==="d")||Q.escape)A()}),RO.default.createElement(g,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:"secondaryBorder"},RO.default.createElement(g,{marginBottom:1,flexDirection:"column"},RO.default.createElement(S,{bold:!0},"You've spent $5 on the Anthropic API this session."),RO.default.createElement(S,null,"Learn more about how to monitor your spending:"),RO.default.createElement(n3,{url:"https://docs.anthropic.com/s/claude-code-cost"})),RO.default.createElement(g,null,RO.default.createElement(d0,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:A,onCancel:A})))}import{join as B01,dirname as IT2}from"path";import{randomUUID as O0A}from"crypto";var EJ="Task";var Uy="WebFetch",oo0=`
735
735
  - Fetches content from a specified URL and processes it using an AI model
736
736
  - Takes a URL and a prompt as input
737
737
  - Fetches the URL content, converts HTML to markdown
@@ -1130,7 +1130,7 @@ IMPORTANT: You must NEVER generate or guess URLs for the user unless you are con
1130
1130
 
1131
1131
  If the user asks for help or wants to give feedback inform them of the following:
1132
1132
  - /help: Get help with using ${A2}
1133
- - To give feedback, users should ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.ISSUES_EXPLAINER}
1133
+ - To give feedback, users should ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.ISSUES_EXPLAINER}
1134
1134
 
1135
1135
  When the user directly asks about ${A2} (eg 'can ${A2} do...', 'does ${A2} have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the ${Uy} tool to gather information to answer the question from ${A2} docs at ${Vt0}.
1136
1136
  - ${Z.subpages}
@@ -1332,7 +1332,7 @@ Assistant:`;t4.DEFAULT_TIMEOUT=600000;t4.AnthropicError=bB;t4.APIError=D6;t4.API
1332
1332
  `)?Y.slice(0,-1):Y}),F=void 0,Y="",W=""}function K(E={}){Z&&E.consume&&C(Z),G=!0,F=void 0,Y="",W="",Z=""}return{feed:J,reset:K}}function HvQ(A){let B=[],Q="",D=0;for(;D<A.length;){let I=A.indexOf("\r",D),Z=A.indexOf(`
1333
1333
  `,D),G=-1;if(I!==-1&&Z!==-1?G=Math.min(I,Z):I!==-1?G=I:Z!==-1&&(G=Z),G===-1){Q=A.slice(D);break}else{let F=A.slice(D,G);B.push(F),D=G+1,A[D-1]==="\r"&&A[D]===`
1334
1334
  `&&D++}}return[B,Q]}class qa1 extends Event{constructor(A,B){var Q,D;super(A),this.code=(Q=B==null?void 0:B.code)!=null?Q:void 0,this.message=(D=B==null?void 0:B.message)!=null?D:void 0}[Symbol.for("nodejs.util.inspect.custom")](A,B,Q){return Q(d02(this),B)}[Symbol.for("Deno.customInspect")](A,B){return A(d02(this),B)}}function zvQ(A){let B=globalThis.DOMException;return typeof B=="function"?new B(A,"SyntaxError"):new SyntaxError(A)}function $a1(A){return A instanceof Error?"errors"in A&&Array.isArray(A.errors)?A.errors.map($a1).join(", "):("cause"in A)&&A.cause instanceof Error?`${A}: ${$a1(A.cause)}`:A.message:`${A}`}function d02(A){return{type:A.type,message:A.message,code:A.code,defaultPrevented:A.defaultPrevented,cancelable:A.cancelable,timeStamp:A.timeStamp}}var p02=(A)=>{throw TypeError(A)},_a1=(A,B,Q)=>B.has(A)||p02("Cannot "+Q),cQ=(A,B,Q)=>(_a1(A,B,"read from private field"),Q?Q.call(A):B.get(A)),SD=(A,B,Q)=>B.has(A)?p02("Cannot add the same private member more than once"):B instanceof WeakSet?B.add(A):B.set(A,Q),p8=(A,B,Q,D)=>(_a1(A,B,"write to private field"),B.set(A,Q),Q),lq=(A,B,Q)=>(_a1(A,B,"access private method"),Q),hY,Oy,Tm,iC1,nC1,_e,_m,je,vO,Pm,jm,Sm,Pe,iK,La1,Ma1,Ra1,c02,Oa1,Ta1,Se,Pa1,Sa1;class ym extends EventTarget{constructor(A,B){var Q,D;super(),SD(this,iK),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,SD(this,hY),SD(this,Oy),SD(this,Tm),SD(this,iC1),SD(this,nC1),SD(this,_e),SD(this,_m),SD(this,je,null),SD(this,vO),SD(this,Pm),SD(this,jm,null),SD(this,Sm,null),SD(this,Pe,null),SD(this,Ma1,async(I)=>{var Z;cQ(this,Pm).reset();let{body:G,redirected:F,status:Y,headers:W}=I;if(Y===204){lq(this,iK,Se).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(F?p8(this,Tm,new URL(I.url)):p8(this,Tm,void 0),Y!==200){lq(this,iK,Se).call(this,`Non-200 status code (${Y})`,Y);return}if(!(W.get("content-type")||"").startsWith("text/event-stream")){lq(this,iK,Se).call(this,'Invalid content type, expected "text/event-stream"',Y);return}if(cQ(this,hY)===this.CLOSED)return;p8(this,hY,this.OPEN);let J=new Event("open");if((Z=cQ(this,Pe))==null||Z.call(this,J),this.dispatchEvent(J),typeof G!="object"||!G||!("getReader"in G)){lq(this,iK,Se).call(this,"Invalid response body, expected a web ReadableStream",Y),this.close();return}let C=new TextDecoder,X=G.getReader(),V=!0;do{let{done:K,value:E}=await X.read();E&&cQ(this,Pm).feed(C.decode(E,{stream:!K})),K&&(V=!1,cQ(this,Pm).reset(),lq(this,iK,Pa1).call(this))}while(V)}),SD(this,Ra1,(I)=>{p8(this,vO,void 0),!(I.name==="AbortError"||I.type==="aborted")&&lq(this,iK,Pa1).call(this,$a1(I))}),SD(this,Oa1,(I)=>{typeof I.id=="string"&&p8(this,je,I.id);let Z=new MessageEvent(I.event||"message",{data:I.data,origin:cQ(this,Tm)?cQ(this,Tm).origin:cQ(this,Oy).origin,lastEventId:I.id||""});cQ(this,Sm)&&(!I.event||I.event==="message")&&cQ(this,Sm).call(this,Z),this.dispatchEvent(Z)}),SD(this,Ta1,(I)=>{p8(this,_e,I)}),SD(this,Sa1,()=>{p8(this,_m,void 0),cQ(this,hY)===this.CONNECTING&&lq(this,iK,La1).call(this)});try{if(A instanceof URL)p8(this,Oy,A);else if(typeof A=="string")p8(this,Oy,new URL(A,UvQ()));else throw new Error("Invalid URL")}catch{throw zvQ("An invalid or illegal string was specified")}p8(this,Pm,lC1({onEvent:cQ(this,Oa1),onRetry:cQ(this,Ta1)})),p8(this,hY,this.CONNECTING),p8(this,_e,3000),p8(this,nC1,(Q=B==null?void 0:B.fetch)!=null?Q:globalThis.fetch),p8(this,iC1,(D=B==null?void 0:B.withCredentials)!=null?D:!1),lq(this,iK,La1).call(this)}get readyState(){return cQ(this,hY)}get url(){return cQ(this,Oy).href}get withCredentials(){return cQ(this,iC1)}get onerror(){return cQ(this,jm)}set onerror(A){p8(this,jm,A)}get onmessage(){return cQ(this,Sm)}set onmessage(A){p8(this,Sm,A)}get onopen(){return cQ(this,Pe)}set onopen(A){p8(this,Pe,A)}addEventListener(A,B,Q){let D=B;super.addEventListener(A,D,Q)}removeEventListener(A,B,Q){let D=B;super.removeEventListener(A,D,Q)}close(){cQ(this,_m)&&clearTimeout(cQ(this,_m)),cQ(this,hY)!==this.CLOSED&&(cQ(this,vO)&&cQ(this,vO).abort(),p8(this,hY,this.CLOSED),p8(this,vO,void 0))}}hY=new WeakMap,Oy=new WeakMap,Tm=new WeakMap,iC1=new WeakMap,nC1=new WeakMap,_e=new WeakMap,_m=new WeakMap,je=new WeakMap,vO=new WeakMap,Pm=new WeakMap,jm=new WeakMap,Sm=new WeakMap,Pe=new WeakMap,iK=new WeakSet,La1=function(){p8(this,hY,this.CONNECTING),p8(this,vO,new AbortController),cQ(this,nC1)(cQ(this,Oy),lq(this,iK,c02).call(this)).then(cQ(this,Ma1)).catch(cQ(this,Ra1))},Ma1=new WeakMap,Ra1=new WeakMap,c02=function(){var A;let B={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...cQ(this,je)?{"Last-Event-ID":cQ(this,je)}:void 0},cache:"no-store",signal:(A=cQ(this,vO))==null?void 0:A.signal};return"window"in globalThis&&(B.credentials=this.withCredentials?"include":"same-origin"),B},Oa1=new WeakMap,Ta1=new WeakMap,Se=function(A,B){var Q;cQ(this,hY)!==this.CLOSED&&p8(this,hY,this.CLOSED);let D=new qa1("error",{code:B,message:A});(Q=cQ(this,jm))==null||Q.call(this,D),this.dispatchEvent(D)},Pa1=function(A,B){var Q;if(cQ(this,hY)===this.CLOSED)return;p8(this,hY,this.CONNECTING);let D=new qa1("error",{code:B,message:A});(Q=cQ(this,jm))==null||Q.call(this,D),this.dispatchEvent(D),p8(this,_m,setTimeout(cQ(this,Sa1),cQ(this,_e)))},Sa1=new WeakMap,ym.CONNECTING=0,ym.OPEN=1,ym.CLOSED=2;function UvQ(){let A="document"in globalThis?globalThis.document:void 0;return A&&typeof A=="object"&&"baseURI"in A&&typeof A.baseURI=="string"?A.baseURI:void 0}var ja1;ja1=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then((A)=>A.webcrypto);async function wvQ(A){return(await ja1).getRandomValues(new Uint8Array(A))}async function NvQ(A){let Q="",D=await wvQ(A);for(let I=0;I<A;I++){let Z=D[I]%66;Q+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~"[Z]}return Q}async function qvQ(A){return await NvQ(A)}async function $vQ(A){let B=await(await ja1).subtle.digest("SHA-256",new TextEncoder().encode(A));return btoa(String.fromCharCode(...new Uint8Array(B))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function ya1(A){if(!A)A=43;if(A<43||A>128)throw`Expected a length between 43 and 128. Received ${A}.`;let B=await qvQ(A),Q=await $vQ(B);return{code_verifier:B,code_challenge:Q}}var l02=v.object({resource:v.string().url(),authorization_servers:v.array(v.string().url()).optional(),jwks_uri:v.string().url().optional(),scopes_supported:v.array(v.string()).optional(),bearer_methods_supported:v.array(v.string()).optional(),resource_signing_alg_values_supported:v.array(v.string()).optional(),resource_name:v.string().optional(),resource_documentation:v.string().optional(),resource_policy_uri:v.string().url().optional(),resource_tos_uri:v.string().url().optional(),tls_client_certificate_bound_access_tokens:v.boolean().optional(),authorization_details_types_supported:v.array(v.string()).optional(),dpop_signing_alg_values_supported:v.array(v.string()).optional(),dpop_bound_access_tokens_required:v.boolean().optional()}).passthrough(),i02=v.object({issuer:v.string(),authorization_endpoint:v.string(),token_endpoint:v.string(),registration_endpoint:v.string().optional(),scopes_supported:v.array(v.string()).optional(),response_types_supported:v.array(v.string()),response_modes_supported:v.array(v.string()).optional(),grant_types_supported:v.array(v.string()).optional(),token_endpoint_auth_methods_supported:v.array(v.string()).optional(),token_endpoint_auth_signing_alg_values_supported:v.array(v.string()).optional(),service_documentation:v.string().optional(),revocation_endpoint:v.string().optional(),revocation_endpoint_auth_methods_supported:v.array(v.string()).optional(),revocation_endpoint_auth_signing_alg_values_supported:v.array(v.string()).optional(),introspection_endpoint:v.string().optional(),introspection_endpoint_auth_methods_supported:v.array(v.string()).optional(),introspection_endpoint_auth_signing_alg_values_supported:v.array(v.string()).optional(),code_challenge_methods_supported:v.array(v.string()).optional()}).passthrough(),ka1=v.object({access_token:v.string(),token_type:v.string(),expires_in:v.number().optional(),scope:v.string().optional(),refresh_token:v.string().optional()}).strip(),n02=v.object({error:v.string(),error_description:v.string().optional(),error_uri:v.string().optional()}),LvQ=v.object({redirect_uris:v.array(v.string()).refine((A)=>A.every((B)=>URL.canParse(B)),{message:"redirect_uris must contain valid URLs"}),token_endpoint_auth_method:v.string().optional(),grant_types:v.array(v.string()).optional(),response_types:v.array(v.string()).optional(),client_name:v.string().optional(),client_uri:v.string().optional(),logo_uri:v.string().optional(),scope:v.string().optional(),contacts:v.array(v.string()).optional(),tos_uri:v.string().optional(),policy_uri:v.string().optional(),jwks_uri:v.string().optional(),jwks:v.any().optional(),software_id:v.string().optional(),software_version:v.string().optional(),software_statement:v.string().optional()}).strip(),MvQ=v.object({client_id:v.string(),client_secret:v.string().optional(),client_id_issued_at:v.number().optional(),client_secret_expires_at:v.number().optional()}).strip(),a02=LvQ.merge(MvQ),is4=v.object({error:v.string(),error_description:v.string().optional()}).strip(),ns4=v.object({token:v.string(),token_type_hint:v.string().optional()}).strip();function r02(A){let B=typeof A==="string"?new URL(A):new URL(A.href);return B.hash="",B}function s02({requestedResource:A,configuredResource:B}){let Q=typeof A==="string"?new URL(A):new URL(A.href),D=typeof B==="string"?new URL(B):new URL(B.href);if(Q.origin!==D.origin)return!1;if(Q.pathname.length<D.pathname.length)return!1;let I=Q.pathname.endsWith("/")?Q.pathname:Q.pathname+"/",Z=D.pathname.endsWith("/")?D.pathname:D.pathname+"/";return I.startsWith(Z)}class NJ extends Error{constructor(A){super(A!==null&&A!==void 0?A:"Unauthorized")}}async function nK(A,{serverUrl:B,authorizationCode:Q,scope:D,resourceMetadataUrl:I}){let Z,G=B;try{if(Z=await OvQ(B,{resourceMetadataUrl:I}),Z.authorization_servers&&Z.authorization_servers.length>0)G=Z.authorization_servers[0]}catch(K){}let F=await RvQ(B,A,Z),Y=await xa1(G),W=await Promise.resolve(A.clientInformation());if(!W){if(Q!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");if(!A.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let K=await yvQ(G,{metadata:Y,clientMetadata:A.clientMetadata});await A.saveClientInformation(K),W=K}if(Q!==void 0){let K=await A.codeVerifier(),E=await _vQ(G,{metadata:Y,clientInformation:W,authorizationCode:Q,codeVerifier:K,redirectUri:A.redirectUrl,resource:F});return await A.saveTokens(E),"AUTHORIZED"}let J=await A.tokens();if(J===null||J===void 0?void 0:J.refresh_token)try{let K=await jvQ(G,{metadata:Y,clientInformation:W,refreshToken:J.refresh_token,resource:F});return await A.saveTokens(K),"AUTHORIZED"}catch(K){}let C=A.state?await A.state():void 0,{authorizationUrl:X,codeVerifier:V}=await SvQ(G,{metadata:Y,clientInformation:W,state:C,redirectUrl:A.redirectUrl,scope:D||A.clientMetadata.scope,resource:F});return await A.saveCodeVerifier(V),await A.redirectToAuthorization(X),"REDIRECT"}async function RvQ(A,B,Q){let D=r02(A);if(B.validateResourceURL)return await B.validateResourceURL(D,Q===null||Q===void 0?void 0:Q.resource);if(!Q)return;if(!s02({requestedResource:D,configuredResource:Q.resource}))throw new Error(`Protected resource ${Q.resource} does not match expected ${D} (or origin)`);return new URL(Q.resource)}function ye(A){let B=A.headers.get("WWW-Authenticate");if(!B)return;let[Q,D]=B.split(" ");if(Q.toLowerCase()!=="bearer"||!D)return;let Z=/resource_metadata="([^"]*)"/.exec(B);if(!Z)return;try{return new URL(Z[1])}catch(G){return}}async function OvQ(A,B){var Q;let D;if(B===null||B===void 0?void 0:B.resourceMetadataUrl)D=new URL(B===null||B===void 0?void 0:B.resourceMetadataUrl);else D=new URL("/.well-known/oauth-protected-resource",A);let I;try{I=await fetch(D,{headers:{"MCP-Protocol-Version":(Q=B===null||B===void 0?void 0:B.protocolVersion)!==null&&Q!==void 0?Q:yO}})}catch(Z){if(Z instanceof TypeError)I=await fetch(D);else throw Z}if(I.status===404)throw new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!I.ok)throw new Error(`HTTP ${I.status} trying to load well-known OAuth protected resource metadata.`);return l02.parse(await I.json())}async function t02(A,B){try{return await fetch(A,{headers:B})}catch(Q){if(Q instanceof TypeError)if(B)return t02(A);else return;throw Q}}function TvQ(A){let B=`/.well-known/oauth-authorization-server${A}`;if(A.endsWith("/"))B=B.slice(0,-1);return B}async function o02(A,B){return await t02(A,{"MCP-Protocol-Version":B})}function PvQ(A,B){return!A||A.status===404&&B!=="/"}async function xa1(A,B){var Q;let D=new URL(A),I=(Q=B===null||B===void 0?void 0:B.protocolVersion)!==null&&Q!==void 0?Q:yO,Z=TvQ(D.pathname),G=new URL(Z,D),F=await o02(G,I);if(PvQ(F,D.pathname)){let Y=new URL("/.well-known/oauth-authorization-server",D);F=await o02(Y,I)}if(!F||F.status===404)return;if(!F.ok)throw new Error(`HTTP ${F.status} trying to load well-known OAuth metadata`);return i02.parse(await F.json())}async function SvQ(A,{metadata:B,clientInformation:Q,redirectUrl:D,scope:I,state:Z,resource:G}){let W;if(B){if(W=new URL(B.authorization_endpoint),!B.response_types_supported.includes("code"))throw new Error("Incompatible auth server: does not support response type code");if(!B.code_challenge_methods_supported||!B.code_challenge_methods_supported.includes("S256"))throw new Error("Incompatible auth server: does not support code challenge method S256")}else W=new URL("/authorize",A);let J=await ya1(),C=J.code_verifier,X=J.code_challenge;if(W.searchParams.set("response_type","code"),W.searchParams.set("client_id",Q.client_id),W.searchParams.set("code_challenge",X),W.searchParams.set("code_challenge_method","S256"),W.searchParams.set("redirect_uri",String(D)),Z)W.searchParams.set("state",Z);if(I)W.searchParams.set("scope",I);if(G)W.searchParams.set("resource",G.href);return{authorizationUrl:W,codeVerifier:C}}async function _vQ(A,{metadata:B,clientInformation:Q,authorizationCode:D,codeVerifier:I,redirectUri:Z,resource:G}){let Y;if(B){if(Y=new URL(B.token_endpoint),B.grant_types_supported&&!B.grant_types_supported.includes("authorization_code"))throw new Error("Incompatible auth server: does not support grant type authorization_code")}else Y=new URL("/token",A);let W=new URLSearchParams({grant_type:"authorization_code",client_id:Q.client_id,code:D,code_verifier:I,redirect_uri:String(Z)});if(Q.client_secret)W.set("client_secret",Q.client_secret);if(G)W.set("resource",G.href);let J=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:W});if(!J.ok)throw new Error(`Token exchange failed: HTTP ${J.status}`);return ka1.parse(await J.json())}async function jvQ(A,{metadata:B,clientInformation:Q,refreshToken:D,resource:I}){let G;if(B){if(G=new URL(B.token_endpoint),B.grant_types_supported&&!B.grant_types_supported.includes("refresh_token"))throw new Error("Incompatible auth server: does not support grant type refresh_token")}else G=new URL("/token",A);let F=new URLSearchParams({grant_type:"refresh_token",client_id:Q.client_id,refresh_token:D});if(Q.client_secret)F.set("client_secret",Q.client_secret);if(I)F.set("resource",I.href);let Y=await fetch(G,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:F});if(!Y.ok)throw new Error(`Token refresh failed: HTTP ${Y.status}`);return ka1.parse({refresh_token:D,...await Y.json()})}async function yvQ(A,{metadata:B,clientMetadata:Q}){let D;if(B){if(!B.registration_endpoint)throw new Error("Incompatible auth server: does not support dynamic client registration");D=new URL(B.registration_endpoint)}else D=new URL("/register",A);let I=await fetch(D,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)});if(!I.ok)throw new Error(`Dynamic client registration failed: HTTP ${I.status}`);return a02.parse(await I.json())}class e02 extends Error{constructor(A,B,Q){super(`SSE error: ${B}`);this.code=A,this.event=Q}}class aC1{constructor(A,B){this._url=A,this._resourceMetadataUrl=void 0,this._eventSourceInit=B===null||B===void 0?void 0:B.eventSourceInit,this._requestInit=B===null||B===void 0?void 0:B.requestInit,this._authProvider=B===null||B===void 0?void 0:B.authProvider,this._fetch=B===null||B===void 0?void 0:B.fetch}async _authThenStart(){var A;if(!this._authProvider)throw new NJ("No auth provider");let B;try{B=await nK(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl})}catch(Q){throw(A=this.onerror)===null||A===void 0||A.call(this,Q),Q}if(B!=="AUTHORIZED")throw new NJ;return await this._startOrAuth()}async _commonHeaders(){var A;let B={...(A=this._requestInit)===null||A===void 0?void 0:A.headers};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)B.Authorization=`Bearer ${Q.access_token}`}if(this._protocolVersion)B["mcp-protocol-version"]=this._protocolVersion;return B}_startOrAuth(){var A,B,Q;let D=(Q=(B=(A=this===null||this===void 0?void 0:this._eventSourceInit)===null||A===void 0?void 0:A.fetch)!==null&&B!==void 0?B:this._fetch)!==null&&Q!==void 0?Q:fetch;return new Promise((I,Z)=>{this._eventSource=new ym(this._url.href,{...this._eventSourceInit,fetch:async(G,F)=>{let Y=await this._commonHeaders(),W=await D(G,{...F,headers:new Headers({...Y,Accept:"text/event-stream"})});if(W.status===401&&W.headers.has("www-authenticate"))this._resourceMetadataUrl=ye(W);return W}}),this._abortController=new AbortController,this._eventSource.onerror=(G)=>{var F;if(G.code===401&&this._authProvider){this._authThenStart().then(I,Z);return}let Y=new e02(G.code,G.message,G);Z(Y),(F=this.onerror)===null||F===void 0||F.call(this,Y)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(G)=>{var F;let Y=G;try{if(this._endpoint=new URL(Y.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(W){Z(W),(F=this.onerror)===null||F===void 0||F.call(this,W),this.close();return}I()}),this._eventSource.onmessage=(G)=>{var F,Y;let W=G,J;try{J=EU.parse(JSON.parse(W.data))}catch(C){(F=this.onerror)===null||F===void 0||F.call(this,C);return}(Y=this.onmessage)===null||Y===void 0||Y.call(this,J)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(A){if(!this._authProvider)throw new NJ("No auth provider");if(await nK(this._authProvider,{serverUrl:this._url,authorizationCode:A,resourceMetadataUrl:this._resourceMetadataUrl})!=="AUTHORIZED")throw new NJ("Failed to authorize")}async close(){var A,B,Q;(A=this._abortController)===null||A===void 0||A.abort(),(B=this._eventSource)===null||B===void 0||B.close(),(Q=this.onclose)===null||Q===void 0||Q.call(this)}async send(A){var B,Q,D;if(!this._endpoint)throw new Error("Not connected");try{let I=await this._commonHeaders(),Z=new Headers(I);Z.set("content-type","application/json");let G={...this._requestInit,method:"POST",headers:Z,body:JSON.stringify(A),signal:(B=this._abortController)===null||B===void 0?void 0:B.signal},F=await((Q=this._fetch)!==null&&Q!==void 0?Q:fetch)(this._endpoint,G);if(!F.ok){if(F.status===401&&this._authProvider){if(this._resourceMetadataUrl=ye(F),await nK(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl})!=="AUTHORIZED")throw new NJ;return this.send(A)}let Y=await F.text().catch(()=>null);throw new Error(`Error POSTing to endpoint (HTTP ${F.status}): ${Y}`)}}catch(I){throw(D=this.onerror)===null||D===void 0||D.call(this,I),I}}setProtocolVersion(A){this._protocolVersion=A}}class fa1 extends TransformStream{constructor({onError:A,onRetry:B,onComment:Q}={}){let D;super({start(I){D=lC1({onEvent:(Z)=>{I.enqueue(Z)},onError(Z){A==="terminate"?I.error(Z):typeof A=="function"&&A(Z)},onRetry:B,onComment:Q})},transform(I){D.feed(I)}})}}var kvQ={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};class rC1 extends Error{constructor(A,B){super(`Streamable HTTP error: ${B}`);this.code=A}}class va1{constructor(A,B){var Q;this._url=A,this._resourceMetadataUrl=void 0,this._requestInit=B===null||B===void 0?void 0:B.requestInit,this._authProvider=B===null||B===void 0?void 0:B.authProvider,this._fetch=B===null||B===void 0?void 0:B.fetch,this._sessionId=B===null||B===void 0?void 0:B.sessionId,this._reconnectionOptions=(Q=B===null||B===void 0?void 0:B.reconnectionOptions)!==null&&Q!==void 0?Q:kvQ}async _authThenStart(){var A;if(!this._authProvider)throw new NJ("No auth provider");let B;try{B=await nK(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl})}catch(Q){throw(A=this.onerror)===null||A===void 0||A.call(this,Q),Q}if(B!=="AUTHORIZED")throw new NJ;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){var A;let B={};if(this._authProvider){let D=await this._authProvider.tokens();if(D)B.Authorization=`Bearer ${D.access_token}`}if(this._sessionId)B["mcp-session-id"]=this._sessionId;if(this._protocolVersion)B["mcp-protocol-version"]=this._protocolVersion;let Q=this._normalizeHeaders((A=this._requestInit)===null||A===void 0?void 0:A.headers);return new Headers({...B,...Q})}async _startOrAuthSse(A){var B,Q,D;let{resumptionToken:I}=A;try{let Z=await this._commonHeaders();if(Z.set("Accept","text/event-stream"),I)Z.set("last-event-id",I);let G=await((B=this._fetch)!==null&&B!==void 0?B:fetch)(this._url,{method:"GET",headers:Z,signal:(Q=this._abortController)===null||Q===void 0?void 0:Q.signal});if(!G.ok){if(G.status===401&&this._authProvider)return await this._authThenStart();if(G.status===405)return;throw new rC1(G.status,`Failed to open SSE stream: ${G.statusText}`)}this._handleSseStream(G.body,A)}catch(Z){throw(D=this.onerror)===null||D===void 0||D.call(this,Z),Z}}_getNextReconnectionDelay(A){let B=this._reconnectionOptions.initialReconnectionDelay,Q=this._reconnectionOptions.reconnectionDelayGrowFactor,D=this._reconnectionOptions.maxReconnectionDelay;return Math.min(B*Math.pow(Q,A),D)}_normalizeHeaders(A){if(!A)return{};if(A instanceof Headers)return Object.fromEntries(A.entries());if(Array.isArray(A))return Object.fromEntries(A);return{...A}}_scheduleReconnection(A,B=0){var Q;let D=this._reconnectionOptions.maxRetries;if(D>0&&B>=D){(Q=this.onerror)===null||Q===void 0||Q.call(this,new Error(`Maximum reconnection attempts (${D}) exceeded.`));return}let I=this._getNextReconnectionDelay(B);setTimeout(()=>{this._startOrAuthSse(A).catch((Z)=>{var G;(G=this.onerror)===null||G===void 0||G.call(this,new Error(`Failed to reconnect SSE stream: ${Z instanceof Error?Z.message:String(Z)}`)),this._scheduleReconnection(A,B+1)})},I)}_handleSseStream(A,B){if(!A)return;let{onresumptiontoken:Q,replayMessageId:D}=B,I;(async()=>{var G,F,Y,W;try{let J=A.pipeThrough(new TextDecoderStream).pipeThrough(new fa1).getReader();while(!0){let{value:C,done:X}=await J.read();if(X)break;if(C.id)I=C.id,Q===null||Q===void 0||Q(C.id);if(!C.event||C.event==="message")try{let V=EU.parse(JSON.parse(C.data));if(D!==void 0&&Ne(V))V.id=D;(G=this.onmessage)===null||G===void 0||G.call(this,V)}catch(V){(F=this.onerror)===null||F===void 0||F.call(this,V)}}}catch(J){if((Y=this.onerror)===null||Y===void 0||Y.call(this,new Error(`SSE stream disconnected: ${J}`)),this._abortController&&!this._abortController.signal.aborted){if(I!==void 0)try{this._scheduleReconnection({resumptionToken:I,onresumptiontoken:Q,replayMessageId:D},0)}catch(C){(W=this.onerror)===null||W===void 0||W.call(this,new Error(`Failed to reconnect: ${C instanceof Error?C.message:String(C)}`))}}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(A){if(!this._authProvider)throw new NJ("No auth provider");if(await nK(this._authProvider,{serverUrl:this._url,authorizationCode:A,resourceMetadataUrl:this._resourceMetadataUrl})!=="AUTHORIZED")throw new NJ("Failed to authorize")}async close(){var A,B;(A=this._abortController)===null||A===void 0||A.abort(),(B=this.onclose)===null||B===void 0||B.call(this)}async send(A,B){var Q,D,I,Z;try{let{resumptionToken:G,onresumptiontoken:F}=B||{};if(G){this._startOrAuthSse({resumptionToken:G,replayMessageId:HC1(A)?A.id:void 0}).catch((E)=>{var U;return(U=this.onerror)===null||U===void 0?void 0:U.call(this,E)});return}let Y=await this._commonHeaders();Y.set("content-type","application/json"),Y.set("accept","application/json, text/event-stream");let W={...this._requestInit,method:"POST",headers:Y,body:JSON.stringify(A),signal:(Q=this._abortController)===null||Q===void 0?void 0:Q.signal},J=await((D=this._fetch)!==null&&D!==void 0?D:fetch)(this._url,W),C=J.headers.get("mcp-session-id");if(C)this._sessionId=C;if(!J.ok){if(J.status===401&&this._authProvider){if(this._resourceMetadataUrl=ye(J),await nK(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl})!=="AUTHORIZED")throw new NJ;return this.send(A)}let E=await J.text().catch(()=>null);throw new Error(`Error POSTing to endpoint (HTTP ${J.status}): ${E}`)}if(J.status===202){if(le0(A))this._startOrAuthSse({resumptionToken:void 0}).catch((E)=>{var U;return(U=this.onerror)===null||U===void 0?void 0:U.call(this,E)});return}let V=(Array.isArray(A)?A:[A]).filter((E)=>("method"in E)&&("id"in E)&&E.id!==void 0).length>0,K=J.headers.get("content-type");if(V)if(K===null||K===void 0?void 0:K.includes("text/event-stream"))this._handleSseStream(J.body,{onresumptiontoken:F});else if(K===null||K===void 0?void 0:K.includes("application/json")){let E=await J.json(),U=Array.isArray(E)?E.map((q)=>EU.parse(q)):[EU.parse(E)];for(let q of U)(I=this.onmessage)===null||I===void 0||I.call(this,q)}else throw new rC1(-1,`Unexpected content type: ${K}`)}catch(G){throw(Z=this.onerror)===null||Z===void 0||Z.call(this,G),G}}get sessionId(){return this._sessionId}async terminateSession(){var A,B,Q;if(!this._sessionId)return;try{let D=await this._commonHeaders(),I={...this._requestInit,method:"DELETE",headers:D,signal:(A=this._abortController)===null||A===void 0?void 0:A.signal},Z=await((B=this._fetch)!==null&&B!==void 0?B:fetch)(this._url,I);if(!Z.ok&&Z.status!==405)throw new rC1(Z.status,`Failed to terminate session: ${Z.statusText}`);this._sessionId=void 0}catch(D){throw(Q=this.onerror)===null||Q===void 0||Q.call(this,D),D}}setProtocolVersion(A){this._protocolVersion=A}get protocolVersion(){return this._protocolVersion}}import{execSync as ShQ}from"child_process";import{join as ne,resolve as Sy,sep as Qr1}from"path";import{fileURLToPath as _hQ}from"url";import{rmdirSync as OhQ}from"fs";import*as l8 from"path";import*as ce from"os";var ta1=G1(Py(),1),ea1="claude-code-jetbrains-plugin",YX1={pycharm:["PyCharm"],intellij:["IntelliJIdea","IdeaIC"],webstorm:["WebStorm"],phpstorm:["PhpStorm"],rubymine:["RubyMine"],clion:["CLion"],goland:["GoLand"],rider:["Rider"],datagrip:["DataGrip"],appcode:["AppCode"],dataspell:["DataSpell"],aqua:["Aqua"],gateway:["Gateway"],fleet:["Fleet"],androidstudio:["AndroidStudio"]};function ThQ(A){let B=ce.homedir(),Q=[],D=YX1[A.toLowerCase()];if(!D)return Q;let I=process.env.APPDATA||l8.join(B,"AppData","Roaming"),Z=process.env.LOCALAPPDATA||l8.join(B,"AppData","Local");switch(ce.platform()){case"darwin":if(Q.push(l8.join(B,"Library","Application Support","JetBrains"),l8.join(B,"Library","Application Support")),A.toLowerCase()==="androidstudio")Q.push(l8.join(B,"Library","Application Support","Google"));break;case"win32":if(Q.push(l8.join(I,"JetBrains"),l8.join(Z,"JetBrains"),l8.join(I)),A.toLowerCase()==="androidstudio")Q.push(l8.join(Z,"Google"));break;case"linux":Q.push(l8.join(B,".config","JetBrains"),l8.join(B,".local","share","JetBrains"));for(let G of D)Q.push(l8.join(B,"."+G));if(A.toLowerCase()==="androidstudio")Q.push(l8.join(B,".config","Google"));break;default:break}return Q}function Ar1(A){let B=[],Q=v1(),D=ThQ(A),I=YX1[A.toLowerCase()];if(!I)return B;for(let Z of D){if(!Q.existsSync(Z))continue;for(let G of I){let F=new RegExp("^"+G+".*$"),Y=Q.readdirSync(Z).filter((W)=>F.test(W.name)&&Q.statSync(l8.join(Z,W.name)).isDirectory()).map((W)=>l8.join(Z,W.name));for(let W of Y){let J=ce.platform()==="linux"?W:l8.join(W,"plugins");if(Q.existsSync(J))B.push(J)}}}return B.filter((Z,G)=>B.indexOf(Z)===G)}function FX1(A){let B=l8.join(A,"lib"),Q=v1();if(Q.existsSync(B)){let D=Q.readdirSync(B),I=new RegExp("^claude-code-jetbrains-plugin-(\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9.]+)?)\\.jar$");for(let Z of D){let G=Z.name.match(I);if(G)return G[1]}}return null}function me(A,B){let Q=v1();if(!Q.existsSync(B))Q.mkdirSync(B);let D=Q.readdirSync(A);for(let I of D){let Z=l8.join(A,I.name),G=l8.join(B,I.name);if(Q.statSync(Z).isDirectory())me(Z,G);else Q.copyFileSync(Z,G)}}function de(A){let B=v1();if(B.existsSync(A))B.readdirSync(A).forEach((Q)=>{let D=l8.join(A,Q.name);if(B.statSync(D).isDirectory())de(D);else B.unlinkSync(D)}),OhQ(A)}async function pB2(A,B){let Q=v1(),D=[];if(!Q.existsSync(B)||!Q.statSync(B).isDirectory()){E1("tengu_ext_jetbrains_extension_install_source_missing",{});return}if(!FX1(B)){E1("tengu_ext_jetbrains_extension_install_error_reading_version",{});return}for(let Z of Object.keys(YX1)){let G=Ar1(Z);if(G.length===0)continue;for(let F of G)try{let Y=l8.join(F,ea1);if(Q.existsSync(Y)){let W=FX1(Y);if(W)if(ta1.gt(A,W,{loose:!0}))de(Y),me(B,Y),D.push(Y),E1("tengu_ext_upgraded",{});else D.push(Y)}}catch(Y){}}}async function lB2(A,B){let Q=v1(),D=[];if(!YX1[A.toLowerCase()])throw E1("tengu_ext_jetbrains_extension_install_unknown_ide",{}),new Error(`Unsupported IDE: ${A}`);if(!Q.existsSync(B)||!Q.statSync(B).isDirectory())throw E1("tengu_ext_jetbrains_extension_install_source_missing",{}),new Error("Plugin source missing");let I=FX1(B);if(!I)throw E1("tengu_ext_jetbrains_extension_install_error_reading_version",{}),new Error("Error reading version from plugin");let Z=Ar1(A);if(Z.length===0)throw E1("tengu_ext_jetbrains_extension_install_no_plugin_directories",{}),new Error(`Could not find plugin directories for ${A}`);for(let G of Z)try{let F=l8.join(G,ea1);if(Q.existsSync(F)){let Y=FX1(F);if(!Y)de(F),me(B,F),D.push(F);else if(ta1.gt(I,Y,{loose:!0}))de(F),me(B,F),D.push(F);else D.push(F)}else de(F),me(B,F),D.push(F)}catch(F){}if(!D.length)throw E1("tengu_ext_jetbrains_extension_install_error_installing",{}),new Error("Could not write plugin to any of the directories");return I}function iB2(A){let B=Ar1(A);for(let Q of B){let D=l8.join(Q,ea1);if(v1().existsSync(D))return!0}return!1}import{createConnection as jhQ}from"net";var o7=G1(U1(),1);var pe=G1(U1(),1);function zU(){return pe.createElement(S,{color:"permission"},"Press ",pe.createElement(S,{bold:!0},"Enter")," to continue…")}function nB2({onDone:A,installedVersion:B}){let Q=Q2();PhQ(),Z0((F,Y)=>{if(Y.escape||Y.return)A()});let D=nA.terminal?le(nA.terminal):"IDE",I=wG?"plugin":"extension",Z=nA.platform==="darwin"?"Cmd+Q":"Ctrl+Q",G=nA.platform==="darwin"?"Cmd+Option+K":"Ctrl+Alt+K";return o7.default.createElement(o7.default.Fragment,null,o7.default.createElement(g,{flexDirection:"column",borderStyle:"round",padding:1,marginTop:2,borderColor:"secondaryBorder"},o7.default.createElement(S,{bold:!0,color:"success"},"\uD83C\uDF89 Claude Code ",I," installed in ",D,"!"),B&&o7.default.createElement(S,{dimColor:!0},"Version: ",B),wG&&o7.default.createElement(g,{marginTop:1},o7.default.createElement(S,{color:"warning"},tA.warning," Restart ",D," (",Z,") to continue (may require multiple restarts)")),o7.default.createElement(g,{marginTop:1},o7.default.createElement(S,{bold:!0},"Quick start:")),o7.default.createElement(S,null,"• Press Cmd+Esc to launch Claude Code"),o7.default.createElement(S,null,"• View and apply file diffs directly in your editor"),o7.default.createElement(S,null,"• Use ",G," to insert @File references"),o7.default.createElement(g,{marginTop:1},o7.default.createElement(S,null,"For more information, see https://docs.anthropic.com/s/claude-code-ide-integrations"))),o7.default.createElement(g,{marginLeft:3},o7.default.createElement(S,{dimColor:!0},Q.pending?o7.default.createElement(o7.default.Fragment,null,"Press ",Q.keyName," again to exit"):o7.default.createElement(zU,null))))}function Br1(){let A=GA(),B=nA.terminal||"unknown";return A.hasIdeOnboardingBeenShown?.[B]===!0}function PhQ(){if(Br1())return;let A=nA.terminal||"unknown",B=GA();x0({...B,hasIdeOnboardingBeenShown:{...B.hasIdeOnboardingBeenShown,[A]:!0}})}var oB2=G1(Py(),1);import{execFileSync as aB2}from"node:child_process";class ie{wslDistroName;constructor(A){this.wslDistroName=A}toLocalPath(A){if(!A)return A;let B=A.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(B&&B[1]!==this.wslDistroName)return A;try{return aB2("wslpath",["-u",A],{encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return A}}toIDEPath(A){if(!A)return A;try{return aB2("wslpath",["-w",A],{encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return A}}}function rB2(A,B){let Q=A.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(Q)return Q[1]===B;return!0}function tB2(A){try{return process.kill(A,0),!0}catch{return!1}}function yhQ(A){if(!tB2(A))return!1;if(!bO&&!wG)return!0;try{let B=process.ppid;for(let Q=0;Q<10;Q++){if(B===A)return!0;if(B===0||B===1)break;let D=$D(`ps -o ppid= -p ${B}`),I=D?parseInt(D.trim()):null;if(!I||I===B)break;B=I}return!1}catch(B){return!1}}function eB2(){try{return khQ().flatMap((Q)=>{try{return v1().readdirSync(Q).filter((D)=>D.name.endsWith(".lock")).map((D)=>{let I=ne(Q,D.name);return{path:I,mtime:v1().statSync(I).mtime}})}catch(D){return f1(D),[]}}).sort((Q,D)=>D.mtime.getTime()-Q.mtime.getTime()).map((Q)=>Q.path)}catch(A){return f1(A),[]}}function A92(A){try{let B=v1().readFileSync(A,{encoding:"utf-8"}),Q=[],D,I,Z=!1,G=!1,F;try{let J=JSON.parse(B);if(J.workspaceFolders)Q=J.workspaceFolders;D=J.pid,I=J.ideName,Z=J.transport==="ws",G=J.runningInWindows===!0,F=J.authToken}catch(J){Q=B.split(`
1335
- `).map((C)=>C.trim())}let Y=A.split(Qr1).pop();if(!Y)return null;let W=Y.replace(".lock","");return{workspaceFolders:Q,port:parseInt(W),pid:D,ideName:I,useWebSocket:Z,runningInWindows:G,authToken:F}}catch(B){return f1(B),null}}async function Dr1(A,B,Q=500){try{return new Promise((D)=>{let I=jhQ({host:A,port:B,timeout:Q});I.on("connect",()=>{I.destroy(),D(!0)}),I.on("error",()=>{D(!1)}),I.on("timeout",()=>{I.destroy(),D(!1)})})}catch(D){return!1}}function khQ(){let A=[],B=v1(),Q=n4(),D=ne(x9(),"ide");if(B.existsSync(D))A.push(D);if(Q!=="wsl")return A;let I=process.env.USERPROFILE;if(I){let Z=I.replace(/\\/g,"/").replace(/^([A-Z]):/i,(F,Y)=>`/mnt/${Y.toLowerCase()}`),G=Sy(Z,".claude","ide");if(B.existsSync(G))A.push(G)}try{if(B.existsSync("/mnt/c/Users")){let G=B.readdirSync("/mnt/c/Users");for(let F of G){if(F.name==="Public"||F.name==="Default"||F.name==="Default User"||F.name==="All Users")continue;let Y=ne("/mnt/c/Users",F.name,".claude","ide");if(B.existsSync(Y))A.push(Y)}}}catch(Z){f1(Z instanceof Error?Z:new Error(String(Z)))}return A}async function xhQ(){try{let A=eB2();for(let B of A){let Q=A92(B);if(!Q){try{v1().unlinkSync(B)}catch(Z){f1(Z)}continue}let D=await C92(Q.runningInWindows,Q.port),I=!1;if(Q.pid){if(!tB2(Q.pid)){if(n4()!=="wsl")I=!0;else if(!await Dr1(D,Q.port))I=!0}}else if(!await Dr1(D,Q.port))I=!0;if(I)try{v1().unlinkSync(B)}catch(Z){f1(Z)}}}catch(A){f1(A)}}var fhQ=_hQ(import.meta.url),Ir1=Sy(fhQ,"../"),bO=nA.terminal==="cursor"||nA.terminal==="windsurf"||nA.terminal==="vscode",wG=nA.terminal==="pycharm"||nA.terminal==="intellij"||nA.terminal==="webstorm"||nA.terminal==="phpstorm"||nA.terminal==="rubymine"||nA.terminal==="clion"||nA.terminal==="goland"||nA.terminal==="rider"||nA.terminal==="datagrip"||nA.terminal==="appcode"||nA.terminal==="dataspell"||nA.terminal==="aqua"||nA.terminal==="gateway"||nA.terminal==="fleet"||nA.terminal==="androidstudio";function qJ(){return bO||wG||Boolean(process.env.FORCE_CODE_TERMINAL)}async function B92(A){if(!Iz())return[()=>{},Sy(Ir1,"vendor",A)];let B=global.Bun,Q=`vendor_${A.replace(/\//g,"_")}`,D=B?.embeddedFiles?.find((W)=>W.name===Q);if(!D)throw new Error(`Embedded vendor file not found: ${Q}`);let I=ne(x9(),".anthropic","claude-code","vendor-temp"),Z=v1();if(!Z.existsSync(I))Z.mkdirSync(I);let G=ne(I,A),F=await D.arrayBuffer();return Z.writeFileSync(G,Buffer.from(F).toString("base64"),{encoding:"base64",flush:!1}),[()=>{try{if(Z.existsSync(G))Z.unlinkSync(G)}catch(W){f1(W instanceof Error?W:new Error(String(W)))}},G]}async function vhQ(){if(!qJ())return null;try{let A=await ghQ();E1("tengu_ext_installed",{});let B=GA();if(!B.diffTool)x0({...B,diffTool:"auto"});return{installed:!0,error:null,installedVersion:A}}catch(A){E1("tengu_ext_install_error",{});let B=A instanceof Error?A.message:String(A);return f1(A),{installed:!1,error:B,installedVersion:null}}}var WX1=null;async function sB2(){if(WX1)WX1.abort();WX1=new AbortController;let A=WX1.signal;await xhQ();let B=Date.now();while(Date.now()-B<30000&&!A.aborted){let Q=await ae(!1);if(A.aborted)return null;if(Q.length===1)return Q[0];await new Promise((D)=>setTimeout(D,1000))}return null}async function ae(A){let B=[];try{let Q=process.env.CLAUDE_CODE_SSE_PORT,D=Q?parseInt(Q):null,I=Y9(),Z=eB2();for(let G of Z){let F=A92(G);if(!F)continue;if(n4()!=="wsl"&&qJ()&&(!F.pid||!yhQ(F.pid)))continue;let Y=!1;if(process.env.CLAUDE_CODE_IDE_SKIP_VALID_CHECK==="true")Y=!0;else if(D&&F.port===D)Y=!0;else Y=F.workspaceFolders.some((X)=>{if(!X)return!1;let V=X;if(n4()==="wsl"&&F.runningInWindows&&process.env.WSL_DISTRO_NAME){if(!rB2(X,process.env.WSL_DISTRO_NAME))return!1;let E=Sy(V);if(I===E||I.startsWith(E+Qr1))return!0;V=new ie(process.env.WSL_DISTRO_NAME).toLocalPath(X)}let K=Sy(V);return I===K||I.startsWith(K+Qr1)});if(!Y&&!A)continue;let W=F.ideName??(qJ()?le(nA.terminal):"IDE");if(B.some((X)=>X.name===W))W+=` (${F.port})`;let J=await C92(F.runningInWindows,F.port),C;if(F.useWebSocket)C=`ws://${J}:${F.port}`;else C=`http://${J}:${F.port}/sse`;B.push({url:C,name:W,workspaceFolders:F.workspaceFolders,port:F.port,isValid:Y,authToken:F.authToken,ideRunningInWindows:F.runningInWindows})}}catch(Q){f1(Q)}return B}async function Q92(A){await A.notification({method:"ide_connected",params:{pid:process.pid}})}function JX1(A){return A.some((B)=>B.type==="connected"&&B.name==="ide")}var bhQ="anthropic.claude-code";async function Zr1(){if(bO){let A=Z92();if(A)try{if((await M3(A,["--list-extensions"],{env:vm()})).stdout?.includes(bhQ))return!0}catch{}}else if(wG&&nA.terminal)return iB2(nA.terminal);return!1}async function ghQ(){if(bO){let A=Z92();if(A)if((await RK("tengu-ext-vscode-install-from-marketplace",void 0))?.fromMarketplace){let Q=await M3(A,["--force","--install-extension","anthropic.claude-code"],{env:vm()});if(Q.code!==0)throw new Error(`${Q.code}: ${Q.error} ${Q.stderr}`);return await new Promise((D)=>{setTimeout(D,500)}),I92(A)}else{let[Q,D]=await B92("claude-code.vsix");try{let I=await M3(A,["--force","--install-extension",D],{env:vm()});if(uhQ(A),I.code!==0)throw new Error(`${I.code}: ${I.error} ${I.stderr}`);return D92()}finally{Q()}}}else if(wG&&nA.terminal&&n4()!=="wsl")return await lB2(nA.terminal,Sy(Ir1,"vendor","claude-code-jetbrains-plugin"));return null}function vm(){if(n4()==="linux")return{...process.env,DISPLAY:""};return}function D92(){return{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}async function I92(A){let{stdout:B}=await B2(A,["--list-extensions","--show-versions"],{env:vm()}),Q=B?.split(`
1335
+ `).map((C)=>C.trim())}let Y=A.split(Qr1).pop();if(!Y)return null;let W=Y.replace(".lock","");return{workspaceFolders:Q,port:parseInt(W),pid:D,ideName:I,useWebSocket:Z,runningInWindows:G,authToken:F}}catch(B){return f1(B),null}}async function Dr1(A,B,Q=500){try{return new Promise((D)=>{let I=jhQ({host:A,port:B,timeout:Q});I.on("connect",()=>{I.destroy(),D(!0)}),I.on("error",()=>{D(!1)}),I.on("timeout",()=>{I.destroy(),D(!1)})})}catch(D){return!1}}function khQ(){let A=[],B=v1(),Q=n4(),D=ne(x9(),"ide");if(B.existsSync(D))A.push(D);if(Q!=="wsl")return A;let I=process.env.USERPROFILE;if(I){let Z=I.replace(/\\/g,"/").replace(/^([A-Z]):/i,(F,Y)=>`/mnt/${Y.toLowerCase()}`),G=Sy(Z,".claude","ide");if(B.existsSync(G))A.push(G)}try{if(B.existsSync("/mnt/c/Users")){let G=B.readdirSync("/mnt/c/Users");for(let F of G){if(F.name==="Public"||F.name==="Default"||F.name==="Default User"||F.name==="All Users")continue;let Y=ne("/mnt/c/Users",F.name,".claude","ide");if(B.existsSync(Y))A.push(Y)}}}catch(Z){f1(Z instanceof Error?Z:new Error(String(Z)))}return A}async function xhQ(){try{let A=eB2();for(let B of A){let Q=A92(B);if(!Q){try{v1().unlinkSync(B)}catch(Z){f1(Z)}continue}let D=await C92(Q.runningInWindows,Q.port),I=!1;if(Q.pid){if(!tB2(Q.pid)){if(n4()!=="wsl")I=!0;else if(!await Dr1(D,Q.port))I=!0}}else if(!await Dr1(D,Q.port))I=!0;if(I)try{v1().unlinkSync(B)}catch(Z){f1(Z)}}}catch(A){f1(A)}}var fhQ=_hQ(import.meta.url),Ir1=Sy(fhQ,"../"),bO=nA.terminal==="cursor"||nA.terminal==="windsurf"||nA.terminal==="vscode",wG=nA.terminal==="pycharm"||nA.terminal==="intellij"||nA.terminal==="webstorm"||nA.terminal==="phpstorm"||nA.terminal==="rubymine"||nA.terminal==="clion"||nA.terminal==="goland"||nA.terminal==="rider"||nA.terminal==="datagrip"||nA.terminal==="appcode"||nA.terminal==="dataspell"||nA.terminal==="aqua"||nA.terminal==="gateway"||nA.terminal==="fleet"||nA.terminal==="androidstudio";function qJ(){return bO||wG||Boolean(process.env.FORCE_CODE_TERMINAL)}async function B92(A){if(!Iz())return[()=>{},Sy(Ir1,"vendor",A)];let B=global.Bun,Q=`vendor_${A.replace(/\//g,"_")}`,D=B?.embeddedFiles?.find((W)=>W.name===Q);if(!D)throw new Error(`Embedded vendor file not found: ${Q}`);let I=ne(x9(),".anthropic","claude-code","vendor-temp"),Z=v1();if(!Z.existsSync(I))Z.mkdirSync(I);let G=ne(I,A),F=await D.arrayBuffer();return Z.writeFileSync(G,Buffer.from(F).toString("base64"),{encoding:"base64",flush:!1}),[()=>{try{if(Z.existsSync(G))Z.unlinkSync(G)}catch(W){f1(W instanceof Error?W:new Error(String(W)))}},G]}async function vhQ(){if(!qJ())return null;try{let A=await ghQ();E1("tengu_ext_installed",{});let B=GA();if(!B.diffTool)x0({...B,diffTool:"auto"});return{installed:!0,error:null,installedVersion:A}}catch(A){E1("tengu_ext_install_error",{});let B=A instanceof Error?A.message:String(A);return f1(A),{installed:!1,error:B,installedVersion:null}}}var WX1=null;async function sB2(){if(WX1)WX1.abort();WX1=new AbortController;let A=WX1.signal;await xhQ();let B=Date.now();while(Date.now()-B<30000&&!A.aborted){let Q=await ae(!1);if(A.aborted)return null;if(Q.length===1)return Q[0];await new Promise((D)=>setTimeout(D,1000))}return null}async function ae(A){let B=[];try{let Q=process.env.CLAUDE_CODE_SSE_PORT,D=Q?parseInt(Q):null,I=Y9(),Z=eB2();for(let G of Z){let F=A92(G);if(!F)continue;if(n4()!=="wsl"&&qJ()&&(!F.pid||!yhQ(F.pid)))continue;let Y=!1;if(process.env.CLAUDE_CODE_IDE_SKIP_VALID_CHECK==="true")Y=!0;else if(D&&F.port===D)Y=!0;else Y=F.workspaceFolders.some((X)=>{if(!X)return!1;let V=X;if(n4()==="wsl"&&F.runningInWindows&&process.env.WSL_DISTRO_NAME){if(!rB2(X,process.env.WSL_DISTRO_NAME))return!1;let E=Sy(V);if(I===E||I.startsWith(E+Qr1))return!0;V=new ie(process.env.WSL_DISTRO_NAME).toLocalPath(X)}let K=Sy(V);return I===K||I.startsWith(K+Qr1)});if(!Y&&!A)continue;let W=F.ideName??(qJ()?le(nA.terminal):"IDE");if(B.some((X)=>X.name===W))W+=` (${F.port})`;let J=await C92(F.runningInWindows,F.port),C;if(F.useWebSocket)C=`ws://${J}:${F.port}`;else C=`http://${J}:${F.port}/sse`;B.push({url:C,name:W,workspaceFolders:F.workspaceFolders,port:F.port,isValid:Y,authToken:F.authToken,ideRunningInWindows:F.runningInWindows})}}catch(Q){f1(Q)}return B}async function Q92(A){await A.notification({method:"ide_connected",params:{pid:process.pid}})}function JX1(A){return A.some((B)=>B.type==="connected"&&B.name==="ide")}var bhQ="anthropic.claude-code";async function Zr1(){if(bO){let A=Z92();if(A)try{if((await M3(A,["--list-extensions"],{env:vm()})).stdout?.includes(bhQ))return!0}catch{}}else if(wG&&nA.terminal)return iB2(nA.terminal);return!1}async function ghQ(){if(bO){let A=Z92();if(A)if((await RK("tengu-ext-vscode-install-from-marketplace",void 0))?.fromMarketplace){let Q=await M3(A,["--force","--install-extension","anthropic.claude-code"],{env:vm()});if(Q.code!==0)throw new Error(`${Q.code}: ${Q.error} ${Q.stderr}`);return await new Promise((D)=>{setTimeout(D,500)}),I92(A)}else{let[Q,D]=await B92("claude-code.vsix");try{let I=await M3(A,["--force","--install-extension",D],{env:vm()});if(uhQ(A),I.code!==0)throw new Error(`${I.code}: ${I.error} ${I.stderr}`);return D92()}finally{Q()}}}else if(wG&&nA.terminal&&n4()!=="wsl")return await lB2(nA.terminal,Sy(Ir1,"vendor","claude-code-jetbrains-plugin"));return null}function vm(){if(n4()==="linux")return{...process.env,DISPLAY:""};return}function D92(){return{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}async function I92(A){let{stdout:B}=await B2(A,["--list-extensions","--show-versions"],{env:vm()}),Q=B?.split(`
1336
1336
  `)||[];for(let D of Q){let[I,Z]=D.split("@");if(I==="anthropic.claude-code"&&Z)return Z}return null}function hhQ(){try{if(n4()!=="macos")return null;let B=process.ppid;for(let Q=0;Q<10;Q++){if(!B||B===0||B===1)break;let D=$D(`ps -o command= -p ${B}`)?.trim();if(D){let Z={"Visual Studio Code.app":"code","Cursor.app":"cursor","Windsurf.app":"windsurf","Visual Studio Code - Insiders.app":"code","VSCodium.app":"codium"},G="/Contents/MacOS/Electron";for(let[F,Y]of Object.entries(Z)){let W=D.indexOf(F+"/Contents/MacOS/Electron");if(W!==-1){let J=W+F.length;return D.substring(0,J)+"/Contents/Resources/app/bin/"+Y}}}let I=$D(`ps -o ppid= -p ${B}`)?.trim();if(!I)break;B=parseInt(I.trim())}return null}catch{return null}}function Z92(){let A=hhQ();if(A){if(v1().existsSync(A))return A}switch(nA.terminal){case"vscode":return"code";case"cursor":return"cursor";case"windsurf":return"windsurf";case null:break}return null}function uhQ(A){return}async function mhQ(){for(let A of["code","cursor","windsurf"])try{await dhQ(A)}catch(B){}}async function dhQ(A){let B=await I92(A);if(B&&oB2.lte(B,D92())){let[Q,D]=await B92("claude-code.vsix");try{await new Promise((I)=>{setTimeout(I,500)}),await M3(A,["--force","--install-extension",D],{env:vm()}),E1("tengu_ext_upgraded",{})}finally{Q()}return!0}}var G92=T0(()=>{try{return $D("cursor --version"),!0}catch{return!1}}),F92=T0(()=>{try{return $D("windsurf --version"),!0}catch{return!1}}),Y92=T0(()=>{try{let A=$D("code --help");return Boolean(A&&A.includes("Visual Studio Code"))}catch{return!1}});function CX1(A){let Q=A.find((D)=>D.type==="connected"&&D.name==="ide")?.config;return Q?.type==="sse-ide"||Q?.type==="ws-ide"?Q.ideName:null}function le(A){switch(A){case"vscode":return"VS Code";case"cursor":return"Cursor";case"windsurf":return"Windsurf";case"pycharm":return"PyCharm";case"intellij":return"IntelliJ IDEA";case"webstorm":return"WebStorm";case"phpstorm":return"PhpStorm";case"rubymine":return"RubyMine";case"clion":return"CLion";case"goland":return"GoLand";case"rider":return"Rider";case"datagrip":return"DataGrip";case"appcode":return"AppCode";case"dataspell":return"DataSpell";case"aqua":return"Aqua";case"gateway":return"Gateway";case"fleet":return"Fleet";case"androidstudio":return"Android Studio";default:return $q1(A)}}function mY(A){if(!A)return;let B=A.find((Q)=>Q.type==="connected"&&Q.name==="ide");return B?.type==="connected"?B:void 0}async function W92(A){try{await UU("closeAllDiffTabs",{},A,!1)}catch(B){}}async function J92(A,B,Q){if(!qJ()){if((await RK("tengu-ext-always-upgrade-fixed",void 0))?.upgrade)await mhQ(),await pB2("0.1.9-beta",Sy(Ir1,"vendor","claude-code-jetbrains-plugin"))}if(sB2().then(A),process.env.CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL!=="true")Zr1().then((D)=>{vhQ().catch((I)=>{return{installed:!1,error:I.message||"Installation failed",installedVersion:null}}).then((I)=>{if(Q(I),I?.installed)sB2().then(A);if(!D&&I?.installed===!0&&qJ()&&!Br1())B()})})}var C92=T0(async(A,B)=>{if(process.env.CLAUDE_CODE_IDE_HOST_OVERRIDE)return process.env.CLAUDE_CODE_IDE_HOST_OVERRIDE;if(n4()!=="wsl"||!A)return"127.0.0.1";try{let D=ShQ("ip route show | grep -i default",{encoding:"utf8"}).match(/default via (\d+\.\d+\.\d+\.\d+)/);if(D){let I=D[1];if(await Dr1(I,B))return I}}catch(Q){}return"127.0.0.1"});function chQ(A){let B=A,Q="",D=0,I=10;while(B!==Q&&D<I)Q=B,B=B.normalize("NFKC"),B=B.replace(/[\p{Cf}\p{Co}\p{Cn}]/gu,""),B=B.replace(/[\u200B-\u200F]/g,"").replace(/[\u202A-\u202E]/g,"").replace(/[\u2066-\u2069]/g,"").replace(/[\uFEFF]/g,"").replace(/[\uE000-\uF8FF]/g,""),D++;if(D>=I)throw new Error(`Unicode sanitization reached maximum iterations (${I}) for input: ${A.slice(0,100)}`);return B}function bm(A){if(typeof A==="string")return chQ(A);if(Array.isArray(A))return A.map(bm);if(A!==null&&typeof A==="object"){let B={};for(let[Q,D]of Object.entries(A))B[bm(Q)]=bm(D);return B}return A}var u72=G1(JQ2(),1),m72=G1(x82(),1),d72=G1(rr1(),1),c72=G1(or1(),1),p72=G1(h72(),1);import qaQ from"assert";var l72=async(A,B)=>{qaQ(A.method,"Expected request method property to be set");let Q=m72.fromNodeProviderChain({clientConfig:{requestHandler:new d72.FetchHttpHandler({requestInit:(W)=>{return{...W,...B.fetchOptions}}})}}),D=await $aQ(()=>{if(B.awsAccessKey)process.env.AWS_ACCESS_KEY_ID=B.awsAccessKey;if(B.awsSecretKey)process.env.AWS_SECRET_ACCESS_KEY=B.awsSecretKey;if(B.awsSessionToken)process.env.AWS_SESSION_TOKEN=B.awsSessionToken},()=>Q()),I=new p72.SignatureV4({service:"bedrock",region:B.regionName,credentials:D,sha256:u72.Sha256}),Z=new URL(B.url),G=!A.headers?{}:(Symbol.iterator in A.headers)?Object.fromEntries(Array.from(A.headers).map((W)=>[...W])):{...A.headers};delete G.connection,G.host=Z.hostname;let F=new c72.HttpRequest({method:A.method.toUpperCase(),protocol:Z.protocol,path:Z.pathname,headers:G,body:A.body});return(await I.sign(F)).headers},$aQ=async(A,B)=>{let Q={...process.env};try{return A(),await B()}finally{process.env=Q}};var LX2=G1(WI2(),1),xK1=G1(qs1(),1),MX2=G1(rr1(),1);var a3=G1(tZ2(),1),nO=G1(UX2(),1),Q46=async(A,B)=>{let Q=a3.map({}),D=A.body,I=a3.take(D,{message:a3.expectString});Object.assign(Q,I);let Z=new nO.InternalServerException({$metadata:yK1(A),...Q});return a3.decorateServiceException(Z,A.body)},D46=async(A,B)=>{let Q=a3.map({}),D=A.body,I=a3.take(D,{message:a3.expectString,originalMessage:a3.expectString,originalStatusCode:a3.expectInt32});Object.assign(Q,I);let Z=new nO.ModelStreamErrorException({$metadata:yK1(A),...Q});return a3.decorateServiceException(Z,A.body)},I46=async(A,B)=>{let Q=a3.map({}),D=A.body,I=a3.take(D,{message:a3.expectString});Object.assign(Q,I);let Z=new nO.ThrottlingException({$metadata:yK1(A),...Q});return a3.decorateServiceException(Z,A.body)},Z46=async(A,B)=>{let Q=a3.map({}),D=A.body,I=a3.take(D,{message:a3.expectString});Object.assign(Q,I);let Z=new nO.ValidationException({$metadata:yK1(A),...Q});return a3.decorateServiceException(Z,A.body)},wX2=(A,B)=>{return B.eventStreamMarshaller.deserialize(A,async(Q)=>{if(Q.chunk!=null)return{chunk:await Y46(Q.chunk,B)};if(Q.internalServerException!=null)return{internalServerException:await G46(Q.internalServerException,B)};if(Q.modelStreamErrorException!=null)return{modelStreamErrorException:await F46(Q.modelStreamErrorException,B)};if(Q.validationException!=null)return{validationException:await J46(Q.validationException,B)};if(Q.throttlingException!=null)return{throttlingException:await W46(Q.throttlingException,B)};return{$unknown:A}})},G46=async(A,B)=>{let Q={...A,body:await M11(A.body,B)};return Q46(Q,B)},F46=async(A,B)=>{let Q={...A,body:await M11(A.body,B)};return D46(Q,B)},Y46=async(A,B)=>{let Q={},D=await M11(A.body,B);return Object.assign(Q,C46(D,B)),Q},W46=async(A,B)=>{let Q={...A,body:await M11(A.body,B)};return I46(Q,B)},J46=async(A,B)=>{let Q={...A,body:await M11(A.body,B)};return Z46(Q,B)},C46=(A,B)=>{return a3.take(A,{bytes:B.base64Decoder})},yK1=(A)=>({httpStatusCode:A.statusCode,requestId:A.headers["x-amzn-requestid"]??A.headers["x-amzn-request-id"]??A.headers["x-amz-request-id"]??"",extendedRequestId:A.headers["x-amz-id-2"]??"",cfId:A.headers["x-amz-cf-id"]??""}),X46=(A,B)=>a3.collectBody(A,B).then((Q)=>B.utf8Encoder(Q)),M11=(A,B)=>X46(A,B).then((Q)=>{if(Q.length)return JSON.parse(Q);return{}});function NX2(A){if(A[Symbol.asyncIterator])return A;let B=A.getReader();return{async next(){try{let Q=await B.read();if(Q?.done)B.releaseLock();return Q}catch(Q){throw B.releaseLock(),Q}},async return(){let Q=B.cancel();return B.releaseLock(),await Q,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}var so1=(A)=>(so1=Array.isArray,so1(A)),oo1=so1;function kK1(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var qX2=(A)=>{try{return JSON.parse(A)}catch(B){return}};var to1=(A)=>new TextDecoder("utf-8").decode(A),$X2=(A)=>new TextEncoder().encode(A),V46=()=>{let A=new LX2.EventStreamMarshaller({utf8Encoder:to1,utf8Decoder:$X2});return{base64Decoder:xK1.fromBase64,base64Encoder:xK1.toBase64,utf8Decoder:$X2,utf8Encoder:to1,eventStreamMarshaller:A,streamCollector:MX2.streamCollector}};class fK1 extends XF{static fromSSEResponse(A,B){let Q=!1;async function*D(){if(!A.body)throw B.abort(),new bB("Attempted to iterate over a response with no body");let Z=NX2(A.body),G=wX2(Z,V46());for await(let F of G)if(F.chunk&&F.chunk.bytes)yield{event:"chunk",data:to1(F.chunk.bytes),raw:[]};else if(F.internalServerException)yield{event:"error",data:"InternalServerException",raw:[]};else if(F.modelStreamErrorException)yield{event:"error",data:"ModelStreamErrorException",raw:[]};else if(F.validationException)yield{event:"error",data:"ValidationException",raw:[]};else if(F.throttlingException)yield{event:"error",data:"ThrottlingException",raw:[]}}async function*I(){if(Q)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Q=!0;let Z=!1;try{for await(let G of D()){if(G.event==="chunk")try{yield JSON.parse(G.data)}catch(F){throw console.error("Could not parse message into JSON:",G.data),console.error("From chunk:",G.raw),F}if(G.event==="error"){let F=G.data,Y=qX2(F),W=Y?void 0:F;throw D6.generate(void 0,Y,W,A.headers)}}Z=!0}catch(G){if(K46(G))return;throw G}finally{if(!Z)B.abort()}}return new fK1(I,B)}}function K46(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var eo1=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var RX2=Symbol.for("brand.privateNullableHeaders");function*E46(A){if(!A)return;if(RX2 in A){let{values:D,nulls:I}=A;yield*D.entries();for(let Z of I)yield[Z,null];return}let B=!1,Q;if(A instanceof Headers)Q=A.entries();else if(oo1(A))Q=A;else B=!0,Q=Object.entries(A??{});for(let D of Q){let I=D[0];if(typeof I!=="string")throw new TypeError("expected header name to be a string");let Z=oo1(D[1])?D[1]:[D[1]],G=!1;for(let F of Z){if(F===void 0)continue;if(B&&!G)G=!0,yield[I,null];yield[I,F]}}}var At1=(A)=>{let B=new Headers,Q=new Set;for(let D of A){let I=new Set;for(let[Z,G]of E46(D)){let F=Z.toLowerCase();if(!I.has(F))B.delete(Z),I.add(F);if(G===null)B.delete(Z),Q.add(F);else B.append(Z,G),Q.delete(F)}}return{[RX2]:!0,values:B,nulls:Q}};function TX2(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var OX2=Object.freeze(Object.create(null)),H46=(A=TX2)=>function B(Q,...D){if(Q.length===1)return Q[0];let I=!1,Z=[],G=Q.reduce((J,C,X)=>{if(/[?#]/.test(C))I=!0;let V=D[X],K=(I?encodeURIComponent:A)(""+V);if(X!==D.length&&(V==null||typeof V==="object"&&V.toString===Object.getPrototypeOf(Object.getPrototypeOf(V.hasOwnProperty??OX2)??OX2)?.toString))K=V+"",Z.push({start:J.length+C.length,length:K.length,error:`Value of type ${Object.prototype.toString.call(V).slice(8,-1)} is not a valid path parameter`});return J+C+(X===D.length?"":K)},""),F=G.split(/[?#]/,1)[0],Y=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,W;while((W=Y.exec(F))!==null)Z.push({start:W.index,length:W[0].length,error:`Value "${W[0]}" can't be safely passed as a path parameter`});if(Z.sort((J,C)=>J.start-C.start),Z.length>0){let J=0,C=Z.reduce((X,V)=>{let K=" ".repeat(V.start-J),E="^".repeat(V.length);return J=V.start+V.length,X+K+E},"");throw new bB(`Path parameters result in path with invalid segments:
1337
1337
  ${Z.map((X)=>X.error).join(`
1338
1338
  `)}
@@ -1372,7 +1372,7 @@ Parameters:
1372
1372
  - uri (required): The URI of the resource to read
1373
1373
  `;var bY6=v.object({server:v.string().describe("The MCP server name"),uri:v.string().describe("The resource URI to read")}),F63=v.object({contents:v.array(v.object({uri:v.string().describe("Resource URI"),mimeType:v.string().optional().describe("MIME type of the content"),text:v.string().optional().describe("Text content of the resource")}))}),kE1={isEnabled(){return!0},isConcurrencySafe(){return!0},isReadOnly(){return!0},name:"ReadMcpResourceTool",async description(){return cw2},async prompt(){return pw2},inputSchema:bY6,async*call(A,{options:{mcpClients:B}}){let{server:Q,uri:D}=A,I=B.find((F)=>F.name===Q);if(!I)throw new Error(`Server "${Q}" not found. Available servers: ${B.map((F)=>F.name).join(", ")}`);if(I.type!=="connected")throw new Error(`Server "${Q}" is not connected`);let Z=I;if(!Z.capabilities?.resources)throw new Error(`Server "${Q}" does not support resources`);yield{type:"result",data:await Z.client.request({method:"resources/read",params:{uri:D}},$e)}},async checkPermissions(A){return{behavior:"allow",updatedInput:A}},renderToolUseMessage(A){if(!A.uri||!A.server)return null;return`Read resource "${A.uri}" from server "${A.server}"`},userFacingName:()=>"readMcpResource",renderToolUseRejectedMessage(){return PJ.createElement(f6,null)},renderToolUseErrorMessage(A,{verbose:B}){return PJ.createElement(xQ,{result:A,verbose:B})},renderToolUseProgressMessage(){return null},renderToolResultMessage(A,B,{verbose:Q}){if(!A||!A.contents||A.contents.length===0)return PJ.createElement(g,{justifyContent:"space-between",overflowX:"hidden",width:"100%"},PJ.createElement(w0,{height:1},PJ.createElement(S,{color:"secondaryText"},"(No content)")));let D=JSON.stringify(A,null,2);return PJ.createElement(vU,{content:D,verbose:Q})},mapToolResultToToolResultBlockParam(A,B){return{tool_use_id:B,type:"tool_result",content:JSON.stringify(A)}}};import{createServer as M1A}from"http";import{parse as IJ6}from"url";import{execFileSync as MN2}from"child_process";var R1A=G1(LN2(),1);import{createHash as ZJ6,randomBytes as GJ6}from"crypto";var FJ6={min:49152,max:65535},RN2=3118,YJ6="http://localhost:3118/callback";async function WJ6(){let{min:A,max:B}=FJ6,Q=B-A+1,D=Math.min(Q,100);for(let I=0;I<D;I++){let Z=A+Math.floor(Math.random()*Q);try{return await new Promise((G,F)=>{let Y=M1A();Y.once("error",F),Y.listen(Z,()=>{Y.close(()=>G())})}),Z}catch{continue}}try{return await new Promise((I,Z)=>{let G=M1A();G.once("error",Z),G.listen(RN2,()=>{G.close(()=>I())})}),RN2}catch{throw new Error("No available ports for OAuth redirect")}}function WT(A,B){let Q=JSON.stringify({type:B.type,url:B.url,headers:B.headers||{}}),D=ZJ6("sha256").update(Q).digest("hex").substring(0,16);return`${A}|${D}`}async function pE1(A,B){let D=rW().read();if(!D?.mcpOAuth)return;let I=WT(A,B),Z=D.mcpOAuth[I];if(!Z?.accessToken){k2(A,"No tokens to revoke");return}try{let G=await xa1(B.url);if(!G?.revocation_endpoint){k2(A,"Server does not support token revocation");return}k2(A,"Revoking tokens on server"),k2(A,`Revocation endpoint: ${G.revocation_endpoint}`);let F=new URLSearchParams;if(F.set("token",Z.accessToken),F.set("token_type_hint","access_token"),Z.clientId)F.set("client_id",Z.clientId);if(await N9.post(G.revocation_endpoint,F,{headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Bearer ${Z.accessToken}`}}),k2(A,"Successfully revoked access token"),Z.refreshToken){let Y=new URLSearchParams;if(Y.set("token",Z.refreshToken),Y.set("token_type_hint","refresh_token"),Z.clientId)Y.set("client_id",Z.clientId);await N9.post(G.revocation_endpoint,Y,{headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Bearer ${Z.accessToken}`}}),k2(A,"Successfully revoked refresh token")}}catch(G){if(N9.isAxiosError(G)&&G.response)k2(A,`Failed to revoke tokens on server: ${G.message}, Status: ${G.response.status}, Data: ${JSON.stringify(G.response.data)}`);else k2(A,`Failed to revoke tokens on server: ${G}`)}ON2(A,B)}function ON2(A,B){let Q=rW(),D=Q.read();if(!D?.mcpOAuth)return;let I=WT(A,B);if(D.mcpOAuth[I])delete D.mcpOAuth[I],Q.update(D),k2(A,"Cleared stored tokens")}async function O1A(A,B,Q){ON2(A,B),E1("tengu_mcp_oauth_flow_start",{isOAuthFlow:!0});let D=await WJ6(),I=`http://localhost:${D}/callback`;k2(A,`Using redirect port: ${D}`);let Z=new JT(A,B,I,!0),G,F=await Z.state(),Y=await new Promise((W,J)=>{let C=M1A((X,V)=>{let K=IJ6(X.url||"",!0);if(K.pathname==="/callback"){let E=K.query.code,U=K.query.state,q=K.query.error,R=K.query.error_description,M=K.query.error_uri;if(!q&&U!==F){V.writeHead(400,{"Content-Type":"text/html"}),V.end("<h1>Authentication Error</h1><p>Invalid state parameter. Please try again.</p><p>You can close this window.</p>"),C.close(),J(new Error("OAuth state mismatch - possible CSRF attack"));return}if(q){V.writeHead(200,{"Content-Type":"text/html"});let T=R1A.default(String(q)),L=R?R1A.default(String(R)):"";V.end(`<h1>Authentication Error</h1><p>${T}: ${L}</p><p>You can close this window.</p>`),C.close();let P=`OAuth error: ${q}`;if(R)P+=` - ${R}`;if(M)P+=` (See: ${M})`;J(new Error(P));return}if(E)V.writeHead(200,{"Content-Type":"text/html"}),V.end(`<h1>Authentication Successful</h1><p>You can close this window. Return to ${A2}.</p>`),C.close(),W(E)}});C.listen(D,async()=>{try{k2(A,"Starting SDK auth"),k2(A,`Server URL: ${B.url}`);let X=await nK(Z,{serverUrl:B.url});if(k2(A,`Initial auth result: ${X}`),G=Z.authorizationUrl,G)Q(G);if(X!=="REDIRECT")k2(A,`Unexpected auth result, expected REDIRECT: ${X}`)}catch(X){k2(A,`SDK auth error: ${X}`),C.close(),J(X)}}),setTimeout(()=>{C.close(),J(new Error("Authentication timeout"))},300000)});try{k2(A,"Completing auth flow with authorization code");let W=await nK(Z,{serverUrl:B.url,authorizationCode:Y});if(k2(A,`Auth result: ${W}`),W==="AUTHORIZED"){let J=await Z.tokens();if(k2(A,`Tokens after auth: ${J?"Present":"Missing"}`),J)k2(A,`Token access_token length: ${J.access_token?.length}`),k2(A,`Token expires_in: ${J.expires_in}`);E1("tengu_mcp_oauth_flow_success",{})}else throw new Error("Unexpected auth result: "+W)}catch(W){if(k2(A,`Error during auth completion: ${W}`),N9.isAxiosError(W))try{let J=n02.parse(W.response?.data);if(J.error==="invalid_client"&&J.error_description?.includes("Client not found")){let C=rW(),X=C.read()||{},V=WT(A,B);if(X.mcpOAuth?.[V])delete X.mcpOAuth[V].clientId,delete X.mcpOAuth[V].clientSecret,C.update(X)}}catch{}throw E1("tengu_mcp_oauth_flow_error",{}),W}}class JT{serverName;serverConfig;redirectUri;handleRedirection;_codeVerifier;_authorizationUrl;_state;constructor(A,B,Q=YJ6,D=!1){this.serverName=A,this.serverConfig=B,this.redirectUri=Q,this.handleRedirection=D}get redirectUrl(){return this.redirectUri}get authorizationUrl(){return this._authorizationUrl}get clientMetadata(){return{client_name:`${A2} (${this.serverName})`,redirect_uris:[this.redirectUri],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none"}}async state(){if(!this._state)this._state=GJ6(32).toString("base64url"),k2(this.serverName,"Generated new OAuth state");return this._state}async clientInformation(){let B=rW().read(),Q=WT(this.serverName,this.serverConfig),D=B?.mcpOAuth?.[Q];if(D?.clientId)return k2(this.serverName,"Found client info"),{client_id:D.clientId,client_secret:D.clientSecret};k2(this.serverName,"No client info found");return}async saveClientInformation(A){let B=rW(),Q=B.read()||{},D=WT(this.serverName,this.serverConfig),I={...Q,mcpOAuth:{...Q.mcpOAuth,[D]:{...Q.mcpOAuth?.[D],serverName:this.serverName,serverUrl:this.serverConfig.url,clientId:A.client_id,clientSecret:A.client_secret,accessToken:Q.mcpOAuth?.[D]?.accessToken||"",expiresAt:Q.mcpOAuth?.[D]?.expiresAt||0}}};B.update(I)}async tokens(){let B=rW().read(),Q=WT(this.serverName,this.serverConfig),D=B?.mcpOAuth?.[Q];if(!D){k2(this.serverName,"No token data found");return}let I=(D.expiresAt-Date.now())/1000;if(I<=0&&!D.refreshToken){k2(this.serverName,"Token expired without refresh token");return}let Z={access_token:D.accessToken,refresh_token:D.refreshToken,expires_in:I,scope:D.scope,token_type:"Bearer"};if(k2(this.serverName,"Returning tokens"),k2(this.serverName,`Token length: ${Z.access_token?.length}`),k2(this.serverName,`Has refresh token: ${!!Z.refresh_token}`),k2(this.serverName,`Expires in: ${Z.expires_in}`),I<=60)k2(this.serverName,"Token is expired or about to expire - SDK should refresh");return Z}async saveTokens(A){let B=rW(),Q=B.read()||{},D=WT(this.serverName,this.serverConfig);k2(this.serverName,"Saving tokens"),k2(this.serverName,`Token expires in: ${A.expires_in}`),k2(this.serverName,`Has refresh token: ${!!A.refresh_token}`);let I={...Q,mcpOAuth:{...Q.mcpOAuth,[D]:{...Q.mcpOAuth?.[D],serverName:this.serverName,serverUrl:this.serverConfig.url,accessToken:A.access_token,refreshToken:A.refresh_token,expiresAt:Date.now()+(A.expires_in||3600)*1000,scope:A.scope}}};B.update(I)}async redirectToAuthorization(A){if(this._authorizationUrl=A.toString(),!this.handleRedirection){k2(this.serverName,"Redirection handling is disabled, skipping redirect");return}let B=A.toString();if(!B.startsWith("http://")&&!B.startsWith("https://"))throw new Error("Invalid authorization URL: must use http:// or https:// scheme");k2(this.serverName,"Redirecting to authorization URL"),k2(this.serverName,`Authorization URL: ${B}`);let Q=process.env.BROWSER,D=Q?Q:process.platform==="darwin"?"open":process.platform==="win32"?"start":"xdg-open";if(k2(this.serverName,`Opening authorization URL: ${B}`),Q)k2(this.serverName,`Using $BROWSER environment variable: ${Q}`);try{if(process.platform==="win32"&&D==="start")MN2("cmd.exe",["/c","start","",B]);else MN2(D,[B])}catch{process.stdout.write(`
1374
1374
  Couldn't open browser automatically. Please manually open the URL above in your browser.
1375
- `)}}async saveCodeVerifier(A){k2(this.serverName,"Saving code verifier"),this._codeVerifier=A}async codeVerifier(){if(!this._codeVerifier)throw k2(this.serverName,"No code verifier saved"),new Error("No code verifier saved");return k2(this.serverName,"Returning code verifier"),this._codeVerifier}}function lE1(A){switch(A){case"local":return"Local (private to you in this project)";case"project":return"Project (shared via .mcp.json)";case"user":return"User (available in all your projects)";default:return A}}function ud(A){if(!A)return"local";if(!Su1.options.includes(A))throw new Error(`Invalid scope: ${A}. Must be one of: ${Su1.options.join(", ")}`);return A}function T1A(A){if(!A)return"stdio";if(A!=="stdio"&&A!=="sse"&&A!=="http")throw new Error(`Invalid transport type: ${A}. Must be one of: stdio, sse, http`);return A}function CT(A,B,Q="local"){if(Q==="project"){let I={mcpServers:{...TK()}};I.mcpServers[A]=B;try{bu1(I)}catch(Z){throw new Error(`Failed to write to mcp.json: ${Z}`)}}else if(Q==="user"){let D=GA();if(!D.mcpServers)D.mcpServers={};D.mcpServers[A]=B,x0(D)}else{let D=eB();if(!D.mcpServers)D.mcpServers={};D.mcpServers[A]=B,$6(D)}}function P1A(A,B,Q="local"){if(A.match(/[^a-zA-Z0-9_-]/))throw new Error(`Invalid name ${A}. Names can only contain letters, numbers, hyphens, and underscores.`);if(nE1(A))throw new Error(`A server with the name ${A} already exists.`);let D=S4(B);if(!D)throw new Error("Invalid JSON");let I=ju1.safeParse(D);if(!I.success){let Z=I.error.errors.map((G)=>`${G.path.join(".")}: ${G.message}`).join(", ");throw new Error(`Invalid configuration: ${Z}`)}CT(A,I.data,Q)}function iE1(A,B="local"){if(B==="project"){let Q=TK();if(!Q[A])throw new Error(`No MCP server found with name: ${A} in .mcp.json`);let D={mcpServers:{...Q}};delete D.mcpServers[A];try{bu1(D)}catch(I){throw new Error(`Failed to remove from .mcp.json: ${I}`)}}else if(B==="user"){let Q=GA();if(!Q.mcpServers?.[A])throw new Error(`No user-scoped MCP server found with name: ${A}`);delete Q.mcpServers[A],x0(Q)}else{let Q=eB();if(!Q.mcpServers?.[A])throw new Error(`No project-local MCP server found with name: ${A}`);delete Q.mcpServers[A],$6(Q)}}function nE1(A){let B=eB(),Q=TK(),D=GA();if(B.mcpServers?.[A])return{...B.mcpServers[A],scope:"local"};if(Q?.[A])return{...Q[A],scope:"project"};if(D.mcpServers?.[A])return{...D.mcpServers[A],scope:"user"};return}function aE1(A){let B=_Q();if(B?.disabledMcpjsonServers?.includes(A))return"rejected";if(B?.enabledMcpjsonServers?.includes(A)||B?.enableAllProjectMcpServers)return"approved";return"pending"}var uX=T0(()=>{let A=GA().mcpServers??{},B=TK(),Q=eB().mcpServers??{},D=Rq1(B,(I,Z)=>aE1(Z)==="approved");return E1("tengu_mcp_servers",{global:Object.keys(A).length,project:Object.keys(D).length,user:Object.keys(Q).length}),{...NC(A,(I)=>({...I,scope:"user"})),...NC(D,(I)=>({...I,scope:"project"})),...NC(Q,(I)=>({...I,scope:"local"}))}});function S1A(A){try{if(!v1().existsSync(A))throw new Error(`MCP config file not found: ${A}`);let B=v1().readFileSync(A,{encoding:"utf8"}),Q=S4(B);if(!Q)throw new Error(`Invalid JSON in MCP config file: ${A}`);let D=Jo(Q);if(!D.success){let I=D.error.errors.map((Z)=>`${Z.path.join(".")}: ${Z.message}`).join(", ");throw new Error(`Invalid MCP configuration in ${A}: ${I}`)}return D.data}catch(B){if(B instanceof Error)throw B;throw new Error(`Failed to parse MCP config file: ${B}`)}}function rE1(A){let B={};for(let Q of A){let D=Q.indexOf(":");if(D===-1)throw new Error(`Invalid header format: "${Q}". Expected format: "Header-Name: value"`);let I=Q.substring(0,D).trim(),Z=Q.substring(D+1).trim();if(!I)throw new Error(`Invalid header: "${Q}". Header name cannot be empty.`);B[I]=Z}return B}var JJ6=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function CJ6(){return parseInt(process.env.MCP_TOOL_TIMEOUT||"",10)||1e8}function TN2(){return parseInt(process.env.MCP_TIMEOUT||"",10)||30000}var XJ6=["mcp__ide__executeCode","mcp__ide__getDiagnostics"];function VJ6(A){return!A.name.startsWith("mcp__ide__")||XJ6.includes(A.name)}function PN2(A,B){return`${A}-${JSON.stringify(B)}`}var t11=T0(async(A,B)=>{try{let Q;if(B.type==="sse"){let C=new JT(A,B),X={authProvider:C,requestInit:{headers:{"User-Agent":Ym(),...B.headers||{}},signal:AbortSignal.timeout(60000)}};if(B.headers)X.eventSourceInit={fetch:async(V,K)=>{let E={},U=await C.tokens();if(U)E.Authorization=`Bearer ${U.access_token}`;let q=$j();return fetch(V,{...K,...q,headers:{"User-Agent":Ym(),...E,...K?.headers,...B.headers,Accept:"text/event-stream"}})}};Q=new aC1(new URL(B.url),X)}else if(B.type==="sse-ide"){let C=$j(),X=C.dispatcher?{eventSourceInit:{fetch:async(V,K)=>{return fetch(V,{...K,...C,headers:{"User-Agent":Ym(),...K?.headers}})}}}:{};Q=new aC1(new URL(B.url),Object.keys(X).length>0?X:void 0)}else if(B.type==="ws-ide"){let C=lz0(),X={headers:{"User-Agent":Ym(),...B.authToken&&{"X-Claude-Code-Ide-Authorization":B.authToken}},...C||{}},V=new j31.default(B.url,["mcp"],Object.keys(X).length>0?X:void 0);Q=new z1A(V)}else if(B.type==="http"){let C=new JT(A,B),X=$j(),V={authProvider:C,requestInit:{...X,headers:{"User-Agent":Ym(),...B.headers||{}},signal:AbortSignal.timeout(60000)}};Q=new va1(new URL(B.url),V)}else Q=new Ua1({command:B.command,args:B.args,env:{...process.env,...B.env},stderr:"pipe"});let D=new Ya1({name:"claude-code",version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION??"unknown"},{capabilities:{roots:{}}});D.setRequestHandler(fn1,async()=>{return{roots:[{uri:`file://${Y9()}`}]}});let I=D.connect(Q),Z=new Promise((C,X)=>{let V=setTimeout(()=>{X(new Error(`Connection to MCP server "${A}" timed out after ${TN2()}ms`))},TN2());I.then(()=>clearTimeout(V),()=>clearTimeout(V))});try{await Promise.race([I,Z])}catch(C){if(B.type==="sse"&&C instanceof Error){if(k2(A,`SSE Connection error: ${JSON.stringify({url:B.url,error:C.message,stack:C.stack})}`),RD(A,C),C.message.includes("401")||C.message.includes("Unauthorized"))return E1("tengu_mcp_server_needs_auth",{}),k2(A,"Authentication required for SSE server"),{name:A,type:"needs-auth",config:B}}else if(B.type==="http"&&C instanceof Error){if(k2(A,`HTTP Connection error: ${JSON.stringify({url:B.url,error:C.message,stack:C.stack})}`),RD(A,C),C.message.includes("401")||C.message.includes("Unauthorized"))return E1("tengu_mcp_server_needs_auth",{}),k2(A,"Authentication required for HTTP server"),{name:A,type:"needs-auth",config:B}}else if(B.type==="sse-ide"||B.type==="ws-ide")E1("tengu_mcp_ide_server_connection_failed",{});throw C}let G=D.getServerCapabilities(),F=D.getServerVersion();if(B.type==="sse-ide"||B.type==="ws-ide"){E1("tengu_mcp_ide_server_connection_succeeded",{serverVersion:F});try{Q92(D)}catch(C){RD(A,`Failed to send ide_connected notification: ${C}`)}}if(B.type==="stdio")Q.stderr?.on("data",(C)=>{let X=C.toString().trim();if(X)RD(A,`Server stderr: ${X}`)});let Y=async()=>{if(B.type==="stdio")try{let X=Q.pid;if(X){k2(A,"Sending SIGINT to MCP server process");try{process.kill(X,"SIGINT")}catch(V){k2(A,`Error sending SIGINT: ${V}`);return}await new Promise(async(V)=>{let K=!1,E=setInterval(()=>{try{process.kill(X,0)}catch{if(!K)K=!0,clearInterval(E),clearTimeout(U),k2(A,"MCP server process exited cleanly"),V()}},50),U=setTimeout(()=>{if(!K)K=!0,clearInterval(E),k2(A,"Cleanup timeout reached, stopping process monitoring"),V()},600);try{if(await new Promise((q)=>setTimeout(q,100)),!K){try{process.kill(X,0),k2(A,"SIGINT failed, sending SIGTERM to MCP server process");try{process.kill(X,"SIGTERM")}catch(q){k2(A,`Error sending SIGTERM: ${q}`),K=!0,clearInterval(E),clearTimeout(U),V();return}}catch{K=!0,clearInterval(E),clearTimeout(U),V();return}if(await new Promise((q)=>setTimeout(q,400)),!K)try{process.kill(X,0),k2(A,"SIGTERM failed, sending SIGKILL to MCP server process");try{process.kill(X,"SIGKILL")}catch(q){k2(A,`Error sending SIGKILL: ${q}`)}}catch{K=!0,clearInterval(E),clearTimeout(U),V()}}if(!K)K=!0,clearInterval(E),clearTimeout(U),V()}catch{if(!K)K=!0,clearInterval(E),clearTimeout(U),V()}})}}catch(C){k2(A,`Error terminating process: ${C}`)}try{await D.close()}catch(C){k2(A,`Error closing client: ${C}`)}},W=aF1(Y),J=async()=>{W?.(),await Y()};return E1("tengu_mcp_server_connection_succeeded",{}),{name:A,client:D,type:"connected",capabilities:G??{},serverInfo:F,config:B,cleanup:J}}catch(Q){if(E1("tengu_mcp_server_connection_failed",{}),k2(A,`Connection failed: ${Q}`),Q instanceof Error)k2(A,`Error message: ${Q.message}`),k2(A,`Error stack: ${Q.stack}`);return RD(A,`Connection failed: ${Q instanceof Error?Q.message:String(Q)}`),{name:A,type:"failed",config:B}}},PN2);async function sE1(A,B){let Q=PN2(A,B);try{let D=await t11(A,B);if(D.type==="connected")await D.cleanup()}catch{}t11.cache.delete(Q)}async function SN2(A,B){return await sE1(A,B),t11(A,B)}var _1A=T0(async(A)=>{if(A.type!=="connected")return[];try{if(!A.capabilities?.tools)return[];let B=await A.client.request({method:"tools/list"},Me);return(await WJ("claude_code_unicode_sanitize")?bm(B.tools):B.tools).map((I)=>({...uw2,name:"mcp__"+O51(A.name)+"__"+I.name,isMcp:!0,async description(){return I.description??""},async prompt(){return I.description??""},isConcurrencySafe(){return I.annotations?.readOnlyHint??!1},isReadOnly(){return I.annotations?.readOnlyHint??!1},isDestructive(){return I.annotations?.destructiveHint??!1},isOpenWorld(){return I.annotations?.openWorldHint??!1},inputJSONSchema:I.inputSchema,async*call(Z,G){yield{type:"result",data:await jN2({client:A,tool:I.name,args:Z,signal:G.abortController.signal,isNonInteractiveSession:G.options.isNonInteractiveSession})}},userFacingName(){let Z=I.annotations?.title||I.name;return`${A.name} - ${Z} (MCP)`}})).filter(VJ6)}catch(B){return RD(A.name,`Failed to fetch tools: ${B instanceof Error?B.message:String(B)}`),[]}}),j1A=T0(async(A)=>{if(A.type!=="connected")return[];try{if(!A.capabilities?.resources)return[];let B=await A.client.request({method:"resources/list"},Ly);if(!B.resources)return[];return B.resources.map((Q)=>({...Q,server:A.name}))}catch(B){return RD(A.name,`Failed to fetch resources: ${B instanceof Error?B.message:String(B)}`),[]}}),_N2=T0(async(A)=>{if(A.type!=="connected")return[];let B=A;try{if(!A.capabilities?.prompts)return[];let Q=await A.client.request({method:"prompts/list"},Le);if(!Q.prompts)return[];return(await WJ("claude_code_unicode_sanitize")?bm(Q.prompts):Q.prompts).map((Z)=>{let G=Object.values(Z.arguments??{}).map((F)=>F.name);return{type:"prompt",name:"mcp__"+O51(B.name)+"__"+Z.name,description:Z.description??"",isEnabled:()=>!0,isHidden:!1,isMcp:!0,progressMessage:"running",userFacingName(){let F=Z.title||Z.name;return`${B.name}:${F} (MCP)`},argNames:G,async getPromptForCommand(F){let Y=F.split(" ");try{return(await B.client.getPrompt({name:Z.name,arguments:Tq1(G,Y)})).messages.flatMap((J)=>y1A(J.content,A.name))}catch(W){throw RD(A.name,`Error running command '${Z.name}': ${W instanceof Error?W.message:String(W)}`),W}}}})}catch(Q){return RD(A.name,`Failed to fetch commands: ${Q instanceof Error?Q.message:String(Q)}`),[]}});async function UU(A,B,Q,D){return jN2({client:Q,tool:A,args:B,signal:new AbortController().signal,isNonInteractiveSession:D})}async function e11(A,B,Q){let D=await SN2(A,B);if(D.type!=="connected"){Q({client:D,tools:[],commands:[]});return}let I=!!D.capabilities?.resources,[Z,G,F]=await Promise.all([_1A(D),_N2(D),I?j1A(D):Promise.resolve([])]),Y=[];if(I){if(![yE1,kE1].some((J)=>Z.some((C)=>C.name===J.name)))Y.push(yE1,kE1)}Q({client:D,tools:[...Z,...Y],commands:G,resources:F.length>0?F:void 0})}async function oE1(A,B,Q=!1){let D=!1,I=Q?{}:uX(),Z=B?{...I,...B}:I;await Promise.all(Object.entries(Z).map(async([G,F])=>{let Y=await t11(G,F);if(Y.type!=="connected"){A({client:Y,tools:[],commands:[]});return}let W=!!Y.capabilities?.resources,[J,C,X]=await Promise.all([_1A(Y),_N2(Y),W?j1A(Y):Promise.resolve([])]),V=[];if(W&&!D)D=!0,V.push(yE1,kE1);A({client:Y,tools:[...J,...V],commands:C,resources:X.length>0?X:void 0})}))}var tE1=T0(async(A,B=!1)=>{return new Promise((Q)=>{let D=0,I=0,Z=B?{}:uX(),G=A?{...Z,...A}:Z;if(D=Object.keys(G).length,D===0){Q({clients:[],tools:[],commands:[]});return}let F=[],Y=[],W=[];oE1((J)=>{if(F.push(J.client),Y.push(...J.tools),W.push(...J.commands),I++,I>=D)Q({clients:F,tools:Y,commands:W})},A,B)})});function y1A(A,B){switch(A.type){case"text":return[{type:"text",text:A.text}];case"image":return[{type:"image",source:{data:String(A.data),media_type:A.mimeType||"image/jpeg",type:"base64"}}];case"resource":{let Q=A.resource,D=`[Resource from ${B} at ${Q.uri}] `;if("text"in Q)return[{type:"text",text:`${D}${Q.text}`}];else if("blob"in Q)if(JJ6.has(Q.mimeType??"")){let Z=[];if(D)Z.push({type:"text",text:D});return Z.push({type:"image",source:{data:Q.blob,media_type:Q.mimeType||"image/jpeg",type:"base64"}}),Z}else return[{type:"text",text:`${D}Base64 data (${Q.mimeType||"unknown type"}) ${Q.blob}`}];return[]}case"resource_link":{let Q=A,D=`[Resource link: ${Q.name}] ${Q.uri}`;if(Q.description)D+=` (${Q.description})`;return[{type:"text",text:D}]}default:return[]}}async function jN2({client:{client:A,name:B},tool:Q,args:D,signal:I,isNonInteractiveSession:Z}){try{k2(B,`Calling MCP tool: ${Q}`);let G=await A.callTool({name:Q,arguments:D},Mm,{signal:I,timeout:CJ6()});if("isError"in G&&G.isError){let Y="Unknown error";if("content"in G&&Array.isArray(G.content)&&G.content.length>0){let W=G.content[0];if(W&&typeof W==="object"&&"text"in W)Y=W.text}else if("error"in G)Y=String(G.error);throw RD(B,Y),Error(Y)}if(k2(B,`Tool call succeeded: ${JSON.stringify(G)}`),"toolResult"in G){if(B!=="ide")await H1A(String(G.toolResult),Q,Z);return String(G.toolResult)}if("content"in G&&Array.isArray(G.content)){let W=G.content.map((J)=>y1A(J,B)).flat();if(B!=="ide")await H1A(W,Q,Z);return W}let F=`Unexpected response format from tool ${Q}`;throw RD(B,F),Error(F)}catch(G){if(G instanceof r11)throw G;if(!(G instanceof Error)||G.name!=="AbortError")throw G}}class YE{static instance;baseline=new Map;initialized=!1;mcpClient;lastProcessedTimestamps=new Map;lastDiagnosticsByUri=new Map;rightFileDiagnosticsState=new Map;static getInstance(){if(!YE.instance)YE.instance=new YE;return YE.instance}initialize(A){if(this.initialized)return;if(this.mcpClient=A,this.initialized=!0,this.mcpClient&&this.mcpClient.type==="connected"){let B=v.object({method:v.literal("diagnostics_changed"),params:v.object({uri:v.string()})});this.mcpClient.client.setNotificationHandler(B,async(Q)=>{let{uri:D}=Q.params;this.handleDiagnosticChange(D)})}}async shutdown(){this.initialized=!1,this.baseline.clear()}reset(){this.baseline.clear(),this.rightFileDiagnosticsState.clear()}normalizeFileUri(A){let B=["file://","_claude_fs_right:","_claude_fs_left:"];for(let Q of B)if(A.startsWith(Q))return A.slice(Q.length);return A}async ensureFileOpened(A){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;try{await UU("openFile",{filePath:A,preview:!1,startText:"",endText:"",selectToEndOfLine:!1,makeFrontmost:!1},this.mcpClient,!1)}catch(B){f1(B)}}async beforeFileEdited(A){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;let B=Date.now();try{let Q=await UU("getDiagnostics",{uri:`file://${A}`},this.mcpClient,!1),D=this.parseDiagnosticResult(Q)[0];if(D){if(A!==this.normalizeFileUri(D.uri)){f1(new Error(`Diagnostics file path mismatch: expected ${A}, got ${D.uri})`));return}this.baseline.set(A,D.diagnostics),this.lastProcessedTimestamps.set(A,B)}else this.baseline.set(A,[]),this.lastProcessedTimestamps.set(A,B)}catch(Q){}}async getNewDiagnostics(){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return[];let A=[];try{let I=await UU("getDiagnostics",{},this.mcpClient,!1);A=this.parseDiagnosticResult(I)}catch(I){return[]}let B=A.filter((I)=>this.baseline.has(this.normalizeFileUri(I.uri))).filter((I)=>I.uri.startsWith("file://")),Q=new Map;A.filter((I)=>this.baseline.has(this.normalizeFileUri(I.uri))).filter((I)=>I.uri.startsWith("_claude_fs_right:")).forEach((I)=>{Q.set(this.normalizeFileUri(I.uri),I)});let D=[];for(let I of B){let Z=this.normalizeFileUri(I.uri),G=this.baseline.get(Z)||[],F=Q.get(Z),Y=I;if(F){let J=this.rightFileDiagnosticsState.get(Z);if(!J||!this.areDiagnosticArraysEqual(J,F.diagnostics))Y=F;this.rightFileDiagnosticsState.set(Z,F.diagnostics)}let W=Y.diagnostics.filter((J)=>!G.some((C)=>this.areDiagnosticsEqual(J,C)));if(W.length>0)D.push({uri:I.uri,diagnostics:W});this.baseline.set(Z,Y.diagnostics)}return D}parseDiagnosticResult(A){if(Array.isArray(A)){let B=A.find((Q)=>Q.type==="text");if(B&&"text"in B)return JSON.parse(B.text)}return[]}areDiagnosticsEqual(A,B){return A.message===B.message&&A.severity===B.severity&&A.source===B.source&&A.code===B.code&&A.range.start.line===B.range.start.line&&A.range.start.character===B.range.start.character&&A.range.end.line===B.range.end.line&&A.range.end.character===B.range.end.character}areDiagnosticArraysEqual(A,B){if(A.length!==B.length)return!1;return A.every((Q)=>B.some((D)=>this.areDiagnosticsEqual(Q,D)))&&B.every((Q)=>A.some((D)=>this.areDiagnosticsEqual(D,Q)))}isLinterDiagnostic(A){let B=["eslint","eslint-plugin","tslint","prettier","stylelint","jshint","standardjs","xo","rome","biome","deno-lint","rubocop","pylint","flake8","black","ruff","clippy","rustfmt","golangci-lint","gofmt","swiftlint","detekt","ktlint","checkstyle","pmd","sonarqube","sonarjs"];if(!A.source)return!1;let Q=A.source.toLowerCase();return B.some((D)=>Q.includes(D))}handleDiagnosticChange(A){}async handleQueryStart(A){if(!this.initialized){let B=mY(A);if(B)this.initialize(B)}else this.reset()}static formatDiagnosticsSummary(A){return A.map((B)=>{let Q=B.uri.split("/").pop()||B.uri,D=B.diagnostics.map((I)=>{return` ${YE.getSeveritySymbol(I.severity)} [Line ${I.range.start.line+1}:${I.range.start.character+1}] ${I.message}${I.code?` [${I.code}]`:""}${I.source?` (${I.source})`:""}`}).join(`
1375
+ `)}}async saveCodeVerifier(A){k2(this.serverName,"Saving code verifier"),this._codeVerifier=A}async codeVerifier(){if(!this._codeVerifier)throw k2(this.serverName,"No code verifier saved"),new Error("No code verifier saved");return k2(this.serverName,"Returning code verifier"),this._codeVerifier}}function lE1(A){switch(A){case"local":return"Local (private to you in this project)";case"project":return"Project (shared via .mcp.json)";case"user":return"User (available in all your projects)";default:return A}}function ud(A){if(!A)return"local";if(!Su1.options.includes(A))throw new Error(`Invalid scope: ${A}. Must be one of: ${Su1.options.join(", ")}`);return A}function T1A(A){if(!A)return"stdio";if(A!=="stdio"&&A!=="sse"&&A!=="http")throw new Error(`Invalid transport type: ${A}. Must be one of: stdio, sse, http`);return A}function CT(A,B,Q="local"){if(Q==="project"){let I={mcpServers:{...TK()}};I.mcpServers[A]=B;try{bu1(I)}catch(Z){throw new Error(`Failed to write to mcp.json: ${Z}`)}}else if(Q==="user"){let D=GA();if(!D.mcpServers)D.mcpServers={};D.mcpServers[A]=B,x0(D)}else{let D=eB();if(!D.mcpServers)D.mcpServers={};D.mcpServers[A]=B,$6(D)}}function P1A(A,B,Q="local"){if(A.match(/[^a-zA-Z0-9_-]/))throw new Error(`Invalid name ${A}. Names can only contain letters, numbers, hyphens, and underscores.`);if(nE1(A))throw new Error(`A server with the name ${A} already exists.`);let D=S4(B);if(!D)throw new Error("Invalid JSON");let I=ju1.safeParse(D);if(!I.success){let Z=I.error.errors.map((G)=>`${G.path.join(".")}: ${G.message}`).join(", ");throw new Error(`Invalid configuration: ${Z}`)}CT(A,I.data,Q)}function iE1(A,B="local"){if(B==="project"){let Q=TK();if(!Q[A])throw new Error(`No MCP server found with name: ${A} in .mcp.json`);let D={mcpServers:{...Q}};delete D.mcpServers[A];try{bu1(D)}catch(I){throw new Error(`Failed to remove from .mcp.json: ${I}`)}}else if(B==="user"){let Q=GA();if(!Q.mcpServers?.[A])throw new Error(`No user-scoped MCP server found with name: ${A}`);delete Q.mcpServers[A],x0(Q)}else{let Q=eB();if(!Q.mcpServers?.[A])throw new Error(`No project-local MCP server found with name: ${A}`);delete Q.mcpServers[A],$6(Q)}}function nE1(A){let B=eB(),Q=TK(),D=GA();if(B.mcpServers?.[A])return{...B.mcpServers[A],scope:"local"};if(Q?.[A])return{...Q[A],scope:"project"};if(D.mcpServers?.[A])return{...D.mcpServers[A],scope:"user"};return}function aE1(A){let B=_Q();if(B?.disabledMcpjsonServers?.includes(A))return"rejected";if(B?.enabledMcpjsonServers?.includes(A)||B?.enableAllProjectMcpServers)return"approved";return"pending"}var uX=T0(()=>{let A=GA().mcpServers??{},B=TK(),Q=eB().mcpServers??{},D=Rq1(B,(I,Z)=>aE1(Z)==="approved");return E1("tengu_mcp_servers",{global:Object.keys(A).length,project:Object.keys(D).length,user:Object.keys(Q).length}),{...NC(A,(I)=>({...I,scope:"user"})),...NC(D,(I)=>({...I,scope:"project"})),...NC(Q,(I)=>({...I,scope:"local"}))}});function S1A(A){try{if(!v1().existsSync(A))throw new Error(`MCP config file not found: ${A}`);let B=v1().readFileSync(A,{encoding:"utf8"}),Q=S4(B);if(!Q)throw new Error(`Invalid JSON in MCP config file: ${A}`);let D=Jo(Q);if(!D.success){let I=D.error.errors.map((Z)=>`${Z.path.join(".")}: ${Z.message}`).join(", ");throw new Error(`Invalid MCP configuration in ${A}: ${I}`)}return D.data}catch(B){if(B instanceof Error)throw B;throw new Error(`Failed to parse MCP config file: ${B}`)}}function rE1(A){let B={};for(let Q of A){let D=Q.indexOf(":");if(D===-1)throw new Error(`Invalid header format: "${Q}". Expected format: "Header-Name: value"`);let I=Q.substring(0,D).trim(),Z=Q.substring(D+1).trim();if(!I)throw new Error(`Invalid header: "${Q}". Header name cannot be empty.`);B[I]=Z}return B}var JJ6=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function CJ6(){return parseInt(process.env.MCP_TOOL_TIMEOUT||"",10)||1e8}function TN2(){return parseInt(process.env.MCP_TIMEOUT||"",10)||30000}var XJ6=["mcp__ide__executeCode","mcp__ide__getDiagnostics"];function VJ6(A){return!A.name.startsWith("mcp__ide__")||XJ6.includes(A.name)}function PN2(A,B){return`${A}-${JSON.stringify(B)}`}var t11=T0(async(A,B)=>{try{let Q;if(B.type==="sse"){let C=new JT(A,B),X={authProvider:C,requestInit:{headers:{"User-Agent":Ym(),...B.headers||{}},signal:AbortSignal.timeout(60000)}};if(B.headers)X.eventSourceInit={fetch:async(V,K)=>{let E={},U=await C.tokens();if(U)E.Authorization=`Bearer ${U.access_token}`;let q=$j();return fetch(V,{...K,...q,headers:{"User-Agent":Ym(),...E,...K?.headers,...B.headers,Accept:"text/event-stream"}})}};Q=new aC1(new URL(B.url),X)}else if(B.type==="sse-ide"){let C=$j(),X=C.dispatcher?{eventSourceInit:{fetch:async(V,K)=>{return fetch(V,{...K,...C,headers:{"User-Agent":Ym(),...K?.headers}})}}}:{};Q=new aC1(new URL(B.url),Object.keys(X).length>0?X:void 0)}else if(B.type==="ws-ide"){let C=lz0(),X={headers:{"User-Agent":Ym(),...B.authToken&&{"X-Claude-Code-Ide-Authorization":B.authToken}},...C||{}},V=new j31.default(B.url,["mcp"],Object.keys(X).length>0?X:void 0);Q=new z1A(V)}else if(B.type==="http"){let C=new JT(A,B),X=$j(),V={authProvider:C,requestInit:{...X,headers:{"User-Agent":Ym(),...B.headers||{}},signal:AbortSignal.timeout(60000)}};Q=new va1(new URL(B.url),V)}else Q=new Ua1({command:B.command,args:B.args,env:{...process.env,...B.env},stderr:"pipe"});let D=new Ya1({name:"claude-code",version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION??"unknown"},{capabilities:{roots:{}}});D.setRequestHandler(fn1,async()=>{return{roots:[{uri:`file://${Y9()}`}]}});let I=D.connect(Q),Z=new Promise((C,X)=>{let V=setTimeout(()=>{X(new Error(`Connection to MCP server "${A}" timed out after ${TN2()}ms`))},TN2());I.then(()=>clearTimeout(V),()=>clearTimeout(V))});try{await Promise.race([I,Z])}catch(C){if(B.type==="sse"&&C instanceof Error){if(k2(A,`SSE Connection error: ${JSON.stringify({url:B.url,error:C.message,stack:C.stack})}`),RD(A,C),C.message.includes("401")||C.message.includes("Unauthorized"))return E1("tengu_mcp_server_needs_auth",{}),k2(A,"Authentication required for SSE server"),{name:A,type:"needs-auth",config:B}}else if(B.type==="http"&&C instanceof Error){if(k2(A,`HTTP Connection error: ${JSON.stringify({url:B.url,error:C.message,stack:C.stack})}`),RD(A,C),C.message.includes("401")||C.message.includes("Unauthorized"))return E1("tengu_mcp_server_needs_auth",{}),k2(A,"Authentication required for HTTP server"),{name:A,type:"needs-auth",config:B}}else if(B.type==="sse-ide"||B.type==="ws-ide")E1("tengu_mcp_ide_server_connection_failed",{});throw C}let G=D.getServerCapabilities(),F=D.getServerVersion();if(B.type==="sse-ide"||B.type==="ws-ide"){E1("tengu_mcp_ide_server_connection_succeeded",{serverVersion:F});try{Q92(D)}catch(C){RD(A,`Failed to send ide_connected notification: ${C}`)}}if(B.type==="stdio")Q.stderr?.on("data",(C)=>{let X=C.toString().trim();if(X)RD(A,`Server stderr: ${X}`)});let Y=async()=>{if(B.type==="stdio")try{let X=Q.pid;if(X){k2(A,"Sending SIGINT to MCP server process");try{process.kill(X,"SIGINT")}catch(V){k2(A,`Error sending SIGINT: ${V}`);return}await new Promise(async(V)=>{let K=!1,E=setInterval(()=>{try{process.kill(X,0)}catch{if(!K)K=!0,clearInterval(E),clearTimeout(U),k2(A,"MCP server process exited cleanly"),V()}},50),U=setTimeout(()=>{if(!K)K=!0,clearInterval(E),k2(A,"Cleanup timeout reached, stopping process monitoring"),V()},600);try{if(await new Promise((q)=>setTimeout(q,100)),!K){try{process.kill(X,0),k2(A,"SIGINT failed, sending SIGTERM to MCP server process");try{process.kill(X,"SIGTERM")}catch(q){k2(A,`Error sending SIGTERM: ${q}`),K=!0,clearInterval(E),clearTimeout(U),V();return}}catch{K=!0,clearInterval(E),clearTimeout(U),V();return}if(await new Promise((q)=>setTimeout(q,400)),!K)try{process.kill(X,0),k2(A,"SIGTERM failed, sending SIGKILL to MCP server process");try{process.kill(X,"SIGKILL")}catch(q){k2(A,`Error sending SIGKILL: ${q}`)}}catch{K=!0,clearInterval(E),clearTimeout(U),V()}}if(!K)K=!0,clearInterval(E),clearTimeout(U),V()}catch{if(!K)K=!0,clearInterval(E),clearTimeout(U),V()}})}}catch(C){k2(A,`Error terminating process: ${C}`)}try{await D.close()}catch(C){k2(A,`Error closing client: ${C}`)}},W=aF1(Y),J=async()=>{W?.(),await Y()};return E1("tengu_mcp_server_connection_succeeded",{}),{name:A,client:D,type:"connected",capabilities:G??{},serverInfo:F,config:B,cleanup:J}}catch(Q){if(E1("tengu_mcp_server_connection_failed",{}),k2(A,`Connection failed: ${Q}`),Q instanceof Error)k2(A,`Error message: ${Q.message}`),k2(A,`Error stack: ${Q.stack}`);return RD(A,`Connection failed: ${Q instanceof Error?Q.message:String(Q)}`),{name:A,type:"failed",config:B}}},PN2);async function sE1(A,B){let Q=PN2(A,B);try{let D=await t11(A,B);if(D.type==="connected")await D.cleanup()}catch{}t11.cache.delete(Q)}async function SN2(A,B){return await sE1(A,B),t11(A,B)}var _1A=T0(async(A)=>{if(A.type!=="connected")return[];try{if(!A.capabilities?.tools)return[];let B=await A.client.request({method:"tools/list"},Me);return(await WJ("claude_code_unicode_sanitize")?bm(B.tools):B.tools).map((I)=>({...uw2,name:"mcp__"+O51(A.name)+"__"+I.name,isMcp:!0,async description(){return I.description??""},async prompt(){return I.description??""},isConcurrencySafe(){return I.annotations?.readOnlyHint??!1},isReadOnly(){return I.annotations?.readOnlyHint??!1},isDestructive(){return I.annotations?.destructiveHint??!1},isOpenWorld(){return I.annotations?.openWorldHint??!1},inputJSONSchema:I.inputSchema,async*call(Z,G){yield{type:"result",data:await jN2({client:A,tool:I.name,args:Z,signal:G.abortController.signal,isNonInteractiveSession:G.options.isNonInteractiveSession})}},userFacingName(){let Z=I.annotations?.title||I.name;return`${A.name} - ${Z} (MCP)`}})).filter(VJ6)}catch(B){return RD(A.name,`Failed to fetch tools: ${B instanceof Error?B.message:String(B)}`),[]}}),j1A=T0(async(A)=>{if(A.type!=="connected")return[];try{if(!A.capabilities?.resources)return[];let B=await A.client.request({method:"resources/list"},Ly);if(!B.resources)return[];return B.resources.map((Q)=>({...Q,server:A.name}))}catch(B){return RD(A.name,`Failed to fetch resources: ${B instanceof Error?B.message:String(B)}`),[]}}),_N2=T0(async(A)=>{if(A.type!=="connected")return[];let B=A;try{if(!A.capabilities?.prompts)return[];let Q=await A.client.request({method:"prompts/list"},Le);if(!Q.prompts)return[];return(await WJ("claude_code_unicode_sanitize")?bm(Q.prompts):Q.prompts).map((Z)=>{let G=Object.values(Z.arguments??{}).map((F)=>F.name);return{type:"prompt",name:"mcp__"+O51(B.name)+"__"+Z.name,description:Z.description??"",isEnabled:()=>!0,isHidden:!1,isMcp:!0,progressMessage:"running",userFacingName(){let F=Z.title||Z.name;return`${B.name}:${F} (MCP)`},argNames:G,async getPromptForCommand(F){let Y=F.split(" ");try{return(await B.client.getPrompt({name:Z.name,arguments:Tq1(G,Y)})).messages.flatMap((J)=>y1A(J.content,A.name))}catch(W){throw RD(A.name,`Error running command '${Z.name}': ${W instanceof Error?W.message:String(W)}`),W}}}})}catch(Q){return RD(A.name,`Failed to fetch commands: ${Q instanceof Error?Q.message:String(Q)}`),[]}});async function UU(A,B,Q,D){return jN2({client:Q,tool:A,args:B,signal:new AbortController().signal,isNonInteractiveSession:D})}async function e11(A,B,Q){let D=await SN2(A,B);if(D.type!=="connected"){Q({client:D,tools:[],commands:[]});return}let I=!!D.capabilities?.resources,[Z,G,F]=await Promise.all([_1A(D),_N2(D),I?j1A(D):Promise.resolve([])]),Y=[];if(I){if(![yE1,kE1].some((J)=>Z.some((C)=>C.name===J.name)))Y.push(yE1,kE1)}Q({client:D,tools:[...Z,...Y],commands:G,resources:F.length>0?F:void 0})}async function oE1(A,B,Q=!1){let D=!1,I=Q?{}:uX(),Z=B?{...I,...B}:I;await Promise.all(Object.entries(Z).map(async([G,F])=>{let Y=await t11(G,F);if(Y.type!=="connected"){A({client:Y,tools:[],commands:[]});return}let W=!!Y.capabilities?.resources,[J,C,X]=await Promise.all([_1A(Y),_N2(Y),W?j1A(Y):Promise.resolve([])]),V=[];if(W&&!D)D=!0,V.push(yE1,kE1);A({client:Y,tools:[...J,...V],commands:C,resources:X.length>0?X:void 0})}))}var tE1=T0(async(A,B=!1)=>{return new Promise((Q)=>{let D=0,I=0,Z=B?{}:uX(),G=A?{...Z,...A}:Z;if(D=Object.keys(G).length,D===0){Q({clients:[],tools:[],commands:[]});return}let F=[],Y=[],W=[];oE1((J)=>{if(F.push(J.client),Y.push(...J.tools),W.push(...J.commands),I++,I>=D)Q({clients:F,tools:Y,commands:W})},A,B)})});function y1A(A,B){switch(A.type){case"text":return[{type:"text",text:A.text}];case"image":return[{type:"image",source:{data:String(A.data),media_type:A.mimeType||"image/jpeg",type:"base64"}}];case"resource":{let Q=A.resource,D=`[Resource from ${B} at ${Q.uri}] `;if("text"in Q)return[{type:"text",text:`${D}${Q.text}`}];else if("blob"in Q)if(JJ6.has(Q.mimeType??"")){let Z=[];if(D)Z.push({type:"text",text:D});return Z.push({type:"image",source:{data:Q.blob,media_type:Q.mimeType||"image/jpeg",type:"base64"}}),Z}else return[{type:"text",text:`${D}Base64 data (${Q.mimeType||"unknown type"}) ${Q.blob}`}];return[]}case"resource_link":{let Q=A,D=`[Resource link: ${Q.name}] ${Q.uri}`;if(Q.description)D+=` (${Q.description})`;return[{type:"text",text:D}]}default:return[]}}async function jN2({client:{client:A,name:B},tool:Q,args:D,signal:I,isNonInteractiveSession:Z}){try{k2(B,`Calling MCP tool: ${Q}`);let G=await A.callTool({name:Q,arguments:D},Mm,{signal:I,timeout:CJ6()});if("isError"in G&&G.isError){let Y="Unknown error";if("content"in G&&Array.isArray(G.content)&&G.content.length>0){let W=G.content[0];if(W&&typeof W==="object"&&"text"in W)Y=W.text}else if("error"in G)Y=String(G.error);throw RD(B,Y),Error(Y)}if(k2(B,`Tool call succeeded: ${JSON.stringify(G)}`),"toolResult"in G){if(B!=="ide")await H1A(String(G.toolResult),Q,Z);return String(G.toolResult)}if("content"in G&&Array.isArray(G.content)){let W=G.content.map((J)=>y1A(J,B)).flat();if(B!=="ide")await H1A(W,Q,Z);return W}let F=`Unexpected response format from tool ${Q}`;throw RD(B,F),Error(F)}catch(G){if(G instanceof r11)throw G;if(!(G instanceof Error)||G.name!=="AbortError")throw G}}class YE{static instance;baseline=new Map;initialized=!1;mcpClient;lastProcessedTimestamps=new Map;lastDiagnosticsByUri=new Map;rightFileDiagnosticsState=new Map;static getInstance(){if(!YE.instance)YE.instance=new YE;return YE.instance}initialize(A){if(this.initialized)return;if(this.mcpClient=A,this.initialized=!0,this.mcpClient&&this.mcpClient.type==="connected"){let B=v.object({method:v.literal("diagnostics_changed"),params:v.object({uri:v.string()})});this.mcpClient.client.setNotificationHandler(B,async(Q)=>{let{uri:D}=Q.params;this.handleDiagnosticChange(D)})}}async shutdown(){this.initialized=!1,this.baseline.clear()}reset(){this.baseline.clear(),this.rightFileDiagnosticsState.clear()}normalizeFileUri(A){let B=["file://","_claude_fs_right:","_claude_fs_left:"];for(let Q of B)if(A.startsWith(Q))return A.slice(Q.length);return A}async ensureFileOpened(A){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;try{await UU("openFile",{filePath:A,preview:!1,startText:"",endText:"",selectToEndOfLine:!1,makeFrontmost:!1},this.mcpClient,!1)}catch(B){f1(B)}}async beforeFileEdited(A){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;let B=Date.now();try{let Q=await UU("getDiagnostics",{uri:`file://${A}`},this.mcpClient,!1),D=this.parseDiagnosticResult(Q)[0];if(D){if(A!==this.normalizeFileUri(D.uri)){f1(new Error(`Diagnostics file path mismatch: expected ${A}, got ${D.uri})`));return}this.baseline.set(A,D.diagnostics),this.lastProcessedTimestamps.set(A,B)}else this.baseline.set(A,[]),this.lastProcessedTimestamps.set(A,B)}catch(Q){}}async getNewDiagnostics(){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return[];let A=[];try{let I=await UU("getDiagnostics",{},this.mcpClient,!1);A=this.parseDiagnosticResult(I)}catch(I){return[]}let B=A.filter((I)=>this.baseline.has(this.normalizeFileUri(I.uri))).filter((I)=>I.uri.startsWith("file://")),Q=new Map;A.filter((I)=>this.baseline.has(this.normalizeFileUri(I.uri))).filter((I)=>I.uri.startsWith("_claude_fs_right:")).forEach((I)=>{Q.set(this.normalizeFileUri(I.uri),I)});let D=[];for(let I of B){let Z=this.normalizeFileUri(I.uri),G=this.baseline.get(Z)||[],F=Q.get(Z),Y=I;if(F){let J=this.rightFileDiagnosticsState.get(Z);if(!J||!this.areDiagnosticArraysEqual(J,F.diagnostics))Y=F;this.rightFileDiagnosticsState.set(Z,F.diagnostics)}let W=Y.diagnostics.filter((J)=>!G.some((C)=>this.areDiagnosticsEqual(J,C)));if(W.length>0)D.push({uri:I.uri,diagnostics:W});this.baseline.set(Z,Y.diagnostics)}return D}parseDiagnosticResult(A){if(Array.isArray(A)){let B=A.find((Q)=>Q.type==="text");if(B&&"text"in B)return JSON.parse(B.text)}return[]}areDiagnosticsEqual(A,B){return A.message===B.message&&A.severity===B.severity&&A.source===B.source&&A.code===B.code&&A.range.start.line===B.range.start.line&&A.range.start.character===B.range.start.character&&A.range.end.line===B.range.end.line&&A.range.end.character===B.range.end.character}areDiagnosticArraysEqual(A,B){if(A.length!==B.length)return!1;return A.every((Q)=>B.some((D)=>this.areDiagnosticsEqual(Q,D)))&&B.every((Q)=>A.some((D)=>this.areDiagnosticsEqual(D,Q)))}isLinterDiagnostic(A){let B=["eslint","eslint-plugin","tslint","prettier","stylelint","jshint","standardjs","xo","rome","biome","deno-lint","rubocop","pylint","flake8","black","ruff","clippy","rustfmt","golangci-lint","gofmt","swiftlint","detekt","ktlint","checkstyle","pmd","sonarqube","sonarjs"];if(!A.source)return!1;let Q=A.source.toLowerCase();return B.some((D)=>Q.includes(D))}handleDiagnosticChange(A){}async handleQueryStart(A){if(!this.initialized){let B=mY(A);if(B)this.initialize(B)}else this.reset()}static formatDiagnosticsSummary(A){return A.map((B)=>{let Q=B.uri.split("/").pop()||B.uri,D=B.diagnostics.map((I)=>{return` ${YE.getSeveritySymbol(I.severity)} [Line ${I.range.start.line+1}:${I.range.start.character+1}] ${I.message}${I.code?` [${I.code}]`:""}${I.source?` (${I.source})`:""}`}).join(`
1376
1376
  `);return`${Q}:
1377
1377
  ${D}`}).join(`
1378
1378
 
@@ -1567,9 +1567,9 @@ Note that not every command has a prefix. If a command has no prefix, return "no
1567
1567
  ONLY return the prefix. Do not return any other text, markdown markers, or other content or formatting.
1568
1568
 
1569
1569
  Command: ${A}
1570
- `,signal:B,enablePromptCaching:!1,isNonInteractiveSession:Q,promptCategory:"command_injection"}),I=typeof D.message.content==="string"?D.message.content:Array.isArray(D.message.content)?D.message.content.find((Z)=>Z.type==="text")?.text??"none":"none";if(I.startsWith(zG))return E1("tengu_bash_prefix",{success:!1,error:"API error"}),null;if(I==="command_injection_detected")return E1("tengu_bash_prefix",{success:!1,commandInjectionDetected:!0}),{commandInjectionDetected:!0};if(I==="git")return E1("tengu_bash_prefix",{success:!1,error:'prefix "git"'}),{commandPrefix:null,commandInjectionDetected:!1};if(I==="none")return E1("tengu_bash_prefix",{success:!1,error:'prefix "none"'}),{commandPrefix:null,commandInjectionDetected:!1};if(!A.startsWith(I))return E1("tengu_bash_prefix",{success:!1,error:"command did not start with prefix"}),{commandPrefix:null,commandInjectionDetected:!1};return E1("tengu_bash_prefix",{success:!0}),{commandPrefix:I,commandInjectionDetected:!1}},(A)=>A),BR2=new Set(["&&","||",";",";;","|"]),jw6=new Set([...BR2,">&",">"]);function yw6(A){let B=iAA.parse(A.replaceAll('"',`"${lAA}`).replaceAll("'",`'${pAA}`),(Q)=>`$${Q}`);for(let Q=0;Q<B.length;Q++){let D=B[Q],I=B[Q+1];if(D===void 0)continue;if(typeof D==="string")continue;if("comment"in D)return!1;if("op"in D){if(D.op==="glob")continue;else if(BR2.has(D.op))continue;else if(D.op===">&"){if(I!==void 0&&typeof I==="string"&&Yc.has(I.trim()))continue}else if(D.op===">"){if(I!==void 0&&typeof I==="string"&&I.trim()==="/dev/null")continue;if(I!==void 0&&typeof I==="string"&&I.trim().startsWith("&")&&I.trim().length>1&&Yc.has(I.trim().slice(1)))continue}return!1}}return!0}function QR2(A){return Dk(A).length>1&&!yw6(A)}var ST=G1(U1(),1);function Wc({content:A,verbose:B}){let{stdout:Q,stderr:D,isImage:I,returnCodeInterpretation:Z,backgroundTaskId:G}=A;if(I)return ST.default.createElement(w0,{height:1},ST.default.createElement(S,{color:"secondaryText"},"[Image data detected and sent to Claude]"));return ST.default.createElement(g,{flexDirection:"column"},Q!==""?ST.default.createElement(vU,{content:Q,verbose:B}):null,D!==""?ST.default.createElement(vU,{content:D,verbose:B,isError:!0}):null,Q===""&&D===""?ST.default.createElement(w0,{height:1},ST.default.createElement(S,{color:"secondaryText"},G?"Running in the background (down arrow to manage)":Z||"(No content)")):null)}var Jc=G1(U1(),1);function DR2({lastLines:A,elapsedTimeSeconds:B,totalLines:Q}){let Z=h7(A.trim()).split(`
1571
- `).filter((Y)=>Y).slice(-2).join(`
1572
- `),G=Q?Math.max(0,Q-2):0,F=B!==void 0?` (${B}s)`:"";return Jc.default.createElement(w0,null,Jc.default.createElement(g,{flexDirection:"column"},Jc.default.createElement(g,{height:2,flexDirection:"column",overflow:"hidden"},Jc.default.createElement(S,{color:"secondaryText"},Z,F)),G>0&&Jc.default.createElement(S,{dimColor:!0},"+",G," more line",G===1?"":"s")))}class IR2{id;command;startTime;status;result;shellCommand;stdout="";stderr="";constructor(A,B,Q,D){this.id=A;this.command=B;this.status="running",this.startTime=Date.now(),this.shellCommand=Q,xA(`BackgroundShell ${A} created for command: ${B}`);let I=Q.background(A);if(!I)this.status="failed",this.result={code:1,interrupted:!1};else I.stdoutStream.on("data",(Z)=>{this.stdout+=Z.toString()}),I.stderrStream.on("data",(Z)=>{this.stderr+=Z.toString()}),Q.result.then((Z)=>{if(Z.code===0)this.status="completed";else this.status="failed";this.result={code:Z.code,interrupted:Z.interrupted},xA(`BackgroundShell ${A} completed with code ${Z.code} (interrupted: ${Z.interrupted})`),D(Z)})}getOutput(){let A={stdout:this.stdout,stderr:this.stderr};return this.stdout="",this.stderr="",A}hasNewOutput(){return!!this.stdout}kill(){try{return xA(`BackgroundShell ${this.id} kill requested`),this.shellCommand?.kill(),this.status="killed",!0}catch(A){return f1(A instanceof Error?A:new Error(String(A))),!1}}dispose(){this.shellCommand=null}}class Cc{static instance=null;shells=new Map;shellCounter=0;subscribers=new Set;constructor(){}static getInstance(){if(!Cc.instance)Cc.instance=new Cc;return Cc.instance}subscribe(A){return this.subscribers.add(A),()=>{this.subscribers.delete(A)}}notifySubscribers(){this.subscribers.forEach((A)=>{try{A()}catch(B){f1(B)}})}addBackgroundShell(A){return this.shells.set(A.id,A),this.notifySubscribers(),A.id}completeShell(A,B){let Q=this.shells.get(A);if(!Q)return;if(Q.status=B.code===0?"completed":"failed",xA(`Shell ${A} completed: status=${Q.status}, code=${B.code}, interrupted=${B.interrupted}`),B.code===143)xA(`Shell ${A} exited with code 143 (SIGTERM) - likely terminated by timeout or explicit kill`);Q.result={code:B.code,interrupted:B.interrupted},this.notifySubscribers()}getAllShells(){return Array.from(this.shells.values())}getActiveShells(){return Array.from(this.shells.values()).filter((A)=>A.status==="running")}getActiveShellCount(){return this.getActiveShells().length}getShell(A){return this.shells.get(A)}getShellOutput(A){let B=this.shells.get(A);if(!B)return{shellId:A,command:"",status:"failed",exitCode:null,stdout:"",stderr:"Shell not found"};let Q=B.result?B.result.code:null,{stdout:D,stderr:I}=B.getOutput();return{shellId:A,command:B.command,status:B.status,exitCode:Q,stdout:D.trimEnd(),stderr:I.trimEnd()}}getShellsUnreadOutputInfo(){return this.getActiveShells().map((A)=>{let B=A.hasNewOutput();return{id:A.id,command:A.command,hasNewOutput:B}})}removeShell(A){let B=this.shells.get(A);if(B){if(B.status==="running")B.kill(),B.dispose();let Q=this.shells.delete(A);return this.notifySubscribers(),Q}return!1}killShell(A){let B=this.shells.get(A);if(B&&B.status==="running")return xA(`Killing shell ${A} (command: ${B.command})`),B.kill(),setTimeout(()=>{if(this.shells.get(A))B.dispose()},1800000),this.notifySubscribers(),!0;return!1}moveToBackground(A,B){let Q=this.generateShellId();xA(`Moving command to background: ${A} (shellId: ${Q})`);let D=new IR2(Q,A,B,(I)=>{this.completeShell(D.id,I)});return this.addBackgroundShell(D),Q}generateShellId(){return`bash_${++this.shellCounter}`}}var nU=Cc.getInstance();import{isAbsolute as xw6,resolve as fw6}from"path";async function kw6(A,B,Q,D){let I=B.join(" ").trim(),Z=await D({...A,command:I}),G=aAA(Q).every((C)=>{return h9.isReadOnly({...A,command:C.trim()})}),F=Q.join(" ").trim(),Y=G?{behavior:"allow",updatedInput:A,decisionReason:{type:"other",reason:"Pipe right-hand command is read-only"}}:{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Pipe right-hand command is not read-only"}},W=new Map([[I,Z],[F,Y]]);if(Z.behavior==="deny")return{behavior:"deny",message:Z.message,decisionReason:{type:"subcommandResults",reasons:W},ruleSuggestions:null};if(Z.behavior==="allow"&&Y.behavior==="allow")return{behavior:"allow",updatedInput:A,decisionReason:{type:"subcommandResults",reasons:W}};let J=Y.behavior==="allow"?Z.behavior!=="allow"?Z.ruleSuggestions:void 0:null;return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"subcommandResults",reasons:W},ruleSuggestions:J}}async function ZR2(A,B){if(QR2(A.command))return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Unsupported shell control operator"},ruleSuggestions:null};let Q=nAA(A.command),D=Q.findIndex((I)=>I==="|");if(D>=0){let I=Q.slice(0,D),Z=Q.slice(D+1);return kw6(A,I,Z,B)}return null}function rAA(A,B,Q,D){let I=Dk(A.command);for(let Z of I){let[G,...F]=Z.split(" ");if(G==="cd"&&F.length>0){let Y=F.join(" ").replace(/^['"]|['"]$/g,""),W=xw6(Y)?Y:fw6(B,Y);if(!KY(W,D))return{behavior:"ask",message:`cd to '${W}' was blocked. For security, ${A2} may only change directories to child directories of the allowed working directories for this session (including '${Q}').`}}}return{behavior:"allow",updatedInput:A}}var vw6=(A)=>`${A}:*`;function eH1(A){return[{toolName:h9.name,ruleContent:A}]}function bw6(A){return[{toolName:h9.name,ruleContent:vw6(A)}]}var sAA=(A)=>{return A.match(/^(.+):\*$/)?.[1]??null};function gw6(A){let B=sAA(A);if(B!==null)return{type:"prefix",prefix:B};else return{type:"exact",command:A}}function GR2(A,B,Q){let D=A.command.trim();return Array.from(B.entries()).filter(([I])=>{let Z=gw6(I);switch(Z.type){case"exact":return Z.command===D;case"prefix":switch(Q){case"exact":return Z.prefix===D;case"prefix":return D.startsWith(Z.prefix)}}}).map(([,I])=>I)}function YR2(A,B,Q){let D=ub(B,h9,"deny"),I=GR2(A,D,Q),Z=ub(B,h9,"allow"),G=GR2(A,Z,Q);return{matchingDenyRules:I,matchingAllowRules:G}}var oAA=(A,B)=>{let Q=A.command.trim(),{matchingDenyRules:D,matchingAllowRules:I}=YR2(A,B,"exact");if(D[0]!==void 0)return{behavior:"deny",message:`Permission to use ${h9.name} with command ${Q} has been denied.`,decisionReason:{type:"rule",rule:D[0]},ruleSuggestions:null};if(I[0]!==void 0)return{behavior:"allow",updatedInput:A,decisionReason:{type:"rule",rule:I[0]}};if(h9.isReadOnly(A))return{behavior:"allow",updatedInput:A,decisionReason:{type:"other",reason:"Sandboxed command is allowed"}};return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,ruleSuggestions:eH1(Q)}},WR2=(A,B)=>{let Q=A.command.trim();if(Q.split(" ")[0]==="cd"){if(rAA(A,lA(),Y9(),B).behavior==="allow")return{behavior:"allow",updatedInput:A,decisionReason:{type:"other",reason:"cd command is allowed"}}}let D=oAA(A,B);if(D.behavior==="deny")return D;let{matchingDenyRules:I,matchingAllowRules:Z}=YR2(A,B,"prefix");if(I[0]!==void 0)return{behavior:"deny",message:`Permission to use ${h9.name} with command ${Q} has been denied.`,decisionReason:{type:"rule",rule:I[0]},ruleSuggestions:null};if(D.behavior==="allow")return D;if(Z[0]!==void 0)return{behavior:"allow",updatedInput:A,decisionReason:{type:"rule",rule:Z[0]}};return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,ruleSuggestions:eH1(Q)}};function FR2(A,B,Q){let D=oAA(A,B);if(D.behavior==="deny")return D;if(D.behavior==="allow")return D;let I=WR2(A,B);if(I.behavior==="deny")return I;if(Q===null||Q===void 0)return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Command prefix query failed"},ruleSuggestions:eH1(A.command)};if(Q.commandInjectionDetected)return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Potential command injection detected"},ruleSuggestions:null};if(I.behavior==="allow")return I;let Z=Q.commandPrefix?bw6(Q.commandPrefix):eH1(A.command);return{...I,ruleSuggestions:Z}}var tAA=async(A,B,Q=AR2)=>{let D=oAA(A,B.getToolPermissionContext());if(D.behavior==="deny")return D;let I=await ZR2(A,(E)=>tAA(E,B,Q));if(I!==null)return I;let Z=Dk(A.command).filter((E)=>{if(E===`cd ${lA()}`)return!1;return!0});if(Z.filter((E)=>E.startsWith("cd ")).length>1)return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Multiple cd commands detected"},ruleSuggestions:null};let F=Z.map((E)=>WR2({command:E},B.getToolPermissionContext())),Y=['"',"'","`","$(","${","~[","(e:",`
1570
+ `,signal:B,enablePromptCaching:!1,isNonInteractiveSession:Q,promptCategory:"command_injection"}),I=typeof D.message.content==="string"?D.message.content:Array.isArray(D.message.content)?D.message.content.find((Z)=>Z.type==="text")?.text??"none":"none";if(I.startsWith(zG))return E1("tengu_bash_prefix",{success:!1,error:"API error"}),null;if(I==="command_injection_detected")return E1("tengu_bash_prefix",{success:!1,commandInjectionDetected:!0}),{commandInjectionDetected:!0};if(I==="git")return E1("tengu_bash_prefix",{success:!1,error:'prefix "git"'}),{commandPrefix:null,commandInjectionDetected:!1};if(I==="none")return E1("tengu_bash_prefix",{success:!1,error:'prefix "none"'}),{commandPrefix:null,commandInjectionDetected:!1};if(!A.startsWith(I))return E1("tengu_bash_prefix",{success:!1,error:"command did not start with prefix"}),{commandPrefix:null,commandInjectionDetected:!1};return E1("tengu_bash_prefix",{success:!0}),{commandPrefix:I,commandInjectionDetected:!1}},(A)=>A),BR2=new Set(["&&","||",";",";;","|"]),jw6=new Set([...BR2,">&",">"]);function yw6(A){let B=iAA.parse(A.replaceAll('"',`"${lAA}`).replaceAll("'",`'${pAA}`),(Q)=>`$${Q}`);for(let Q=0;Q<B.length;Q++){let D=B[Q],I=B[Q+1];if(D===void 0)continue;if(typeof D==="string")continue;if("comment"in D)return!1;if("op"in D){if(D.op==="glob")continue;else if(BR2.has(D.op))continue;else if(D.op===">&"){if(I!==void 0&&typeof I==="string"&&Yc.has(I.trim()))continue}else if(D.op===">"){if(I!==void 0&&typeof I==="string"&&I.trim()==="/dev/null")continue;if(I!==void 0&&typeof I==="string"&&I.trim().startsWith("&")&&I.trim().length>1&&Yc.has(I.trim().slice(1)))continue}return!1}}return!0}function QR2(A){return Dk(A).length>1&&!yw6(A)}var ST=G1(U1(),1);function Wc({content:A,verbose:B}){let{stdout:Q,stderr:D,isImage:I,returnCodeInterpretation:Z,backgroundTaskId:G}=A;if(I)return ST.default.createElement(w0,{height:1},ST.default.createElement(S,{color:"secondaryText"},"[Image data detected and sent to Claude]"));return ST.default.createElement(g,{flexDirection:"column"},Q!==""?ST.default.createElement(vU,{content:Q,verbose:B}):null,D!==""?ST.default.createElement(vU,{content:D,verbose:B,isError:!0}):null,Q===""&&D===""?ST.default.createElement(w0,{height:1},ST.default.createElement(S,{color:"secondaryText"},G?"Running in the background (down arrow to manage)":Z||"(No content)")):null)}var Jc=G1(U1(),1);function DR2({lastLines:A,elapsedTimeSeconds:B,totalLines:Q}){let Z=h7((A??"").trim()).split(`
1571
+ `).filter((Y)=>Y).slice(-5).join(`
1572
+ `),G=Q?Math.max(0,Q-5):0,F=B!==void 0?` (${B}s)`:"";return Jc.default.createElement(w0,null,Jc.default.createElement(g,{flexDirection:"column"},Jc.default.createElement(g,{height:5,flexDirection:"column",overflow:"hidden"},Jc.default.createElement(S,{color:"secondaryText"},Z,F)),G>0&&Jc.default.createElement(S,{dimColor:!0},"+",G," more line",G===1?"":"s")))}class IR2{id;command;startTime;status;result;shellCommand;stdout="";stderr="";constructor(A,B,Q,D){this.id=A;this.command=B;this.status="running",this.startTime=Date.now(),this.shellCommand=Q,xA(`BackgroundShell ${A} created for command: ${B}`);let I=Q.background(A);if(!I)this.status="failed",this.result={code:1,interrupted:!1};else I.stdoutStream.on("data",(Z)=>{this.stdout+=Z.toString()}),I.stderrStream.on("data",(Z)=>{this.stderr+=Z.toString()}),Q.result.then((Z)=>{if(Z.code===0)this.status="completed";else this.status="failed";this.result={code:Z.code,interrupted:Z.interrupted},xA(`BackgroundShell ${A} completed with code ${Z.code} (interrupted: ${Z.interrupted})`),D(Z)})}getOutput(){let A={stdout:this.stdout,stderr:this.stderr};return this.stdout="",this.stderr="",A}hasNewOutput(){return!!this.stdout}kill(){try{return xA(`BackgroundShell ${this.id} kill requested`),this.shellCommand?.kill(),this.status="killed",!0}catch(A){return f1(A instanceof Error?A:new Error(String(A))),!1}}dispose(){this.shellCommand=null}}class Cc{static instance=null;shells=new Map;shellCounter=0;subscribers=new Set;constructor(){}static getInstance(){if(!Cc.instance)Cc.instance=new Cc;return Cc.instance}subscribe(A){return this.subscribers.add(A),()=>{this.subscribers.delete(A)}}notifySubscribers(){this.subscribers.forEach((A)=>{try{A()}catch(B){f1(B)}})}addBackgroundShell(A){return this.shells.set(A.id,A),this.notifySubscribers(),A.id}completeShell(A,B){let Q=this.shells.get(A);if(!Q)return;if(Q.status=B.code===0?"completed":"failed",xA(`Shell ${A} completed: status=${Q.status}, code=${B.code}, interrupted=${B.interrupted}`),B.code===143)xA(`Shell ${A} exited with code 143 (SIGTERM) - likely terminated by timeout or explicit kill`);Q.result={code:B.code,interrupted:B.interrupted},this.notifySubscribers()}getAllShells(){return Array.from(this.shells.values())}getActiveShells(){return Array.from(this.shells.values()).filter((A)=>A.status==="running")}getActiveShellCount(){return this.getActiveShells().length}getShell(A){return this.shells.get(A)}getShellOutput(A){let B=this.shells.get(A);if(!B)return{shellId:A,command:"",status:"failed",exitCode:null,stdout:"",stderr:"Shell not found"};let Q=B.result?B.result.code:null,{stdout:D,stderr:I}=B.getOutput();return{shellId:A,command:B.command,status:B.status,exitCode:Q,stdout:D.trimEnd(),stderr:I.trimEnd()}}getShellsUnreadOutputInfo(){return this.getActiveShells().map((A)=>{let B=A.hasNewOutput();return{id:A.id,command:A.command,hasNewOutput:B}})}removeShell(A){let B=this.shells.get(A);if(B){if(B.status==="running")B.kill(),B.dispose();let Q=this.shells.delete(A);return this.notifySubscribers(),Q}return!1}killShell(A){let B=this.shells.get(A);if(B&&B.status==="running")return xA(`Killing shell ${A} (command: ${B.command})`),B.kill(),setTimeout(()=>{if(this.shells.get(A))B.dispose()},1800000),this.notifySubscribers(),!0;return!1}moveToBackground(A,B){let Q=this.generateShellId();xA(`Moving command to background: ${A} (shellId: ${Q})`);let D=new IR2(Q,A,B,(I)=>{this.completeShell(D.id,I)});return this.addBackgroundShell(D),Q}generateShellId(){return`bash_${++this.shellCounter}`}}var nU=Cc.getInstance();import{isAbsolute as xw6,resolve as fw6}from"path";async function kw6(A,B,Q,D){let I=B.join(" ").trim(),Z=await D({...A,command:I}),G=aAA(Q).every((C)=>{return h9.isReadOnly({...A,command:C.trim()})}),F=Q.join(" ").trim(),Y=G?{behavior:"allow",updatedInput:A,decisionReason:{type:"other",reason:"Pipe right-hand command is read-only"}}:{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Pipe right-hand command is not read-only"}},W=new Map([[I,Z],[F,Y]]);if(Z.behavior==="deny")return{behavior:"deny",message:Z.message,decisionReason:{type:"subcommandResults",reasons:W},ruleSuggestions:null};if(Z.behavior==="allow"&&Y.behavior==="allow")return{behavior:"allow",updatedInput:A,decisionReason:{type:"subcommandResults",reasons:W}};let J=Y.behavior==="allow"?Z.behavior!=="allow"?Z.ruleSuggestions:void 0:null;return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"subcommandResults",reasons:W},ruleSuggestions:J}}async function ZR2(A,B){if(QR2(A.command))return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Unsupported shell control operator"},ruleSuggestions:null};let Q=nAA(A.command),D=Q.findIndex((I)=>I==="|");if(D>=0){let I=Q.slice(0,D),Z=Q.slice(D+1);return kw6(A,I,Z,B)}return null}function rAA(A,B,Q,D){let I=Dk(A.command);for(let Z of I){let[G,...F]=Z.split(" ");if(G==="cd"&&F.length>0){let Y=F.join(" ").replace(/^['"]|['"]$/g,""),W=xw6(Y)?Y:fw6(B,Y);if(!KY(W,D))return{behavior:"ask",message:`cd to '${W}' was blocked. For security, ${A2} may only change directories to child directories of the allowed working directories for this session (including '${Q}').`}}}return{behavior:"allow",updatedInput:A}}var vw6=(A)=>`${A}:*`;function eH1(A){return[{toolName:h9.name,ruleContent:A}]}function bw6(A){return[{toolName:h9.name,ruleContent:vw6(A)}]}var sAA=(A)=>{return A.match(/^(.+):\*$/)?.[1]??null};function gw6(A){let B=sAA(A);if(B!==null)return{type:"prefix",prefix:B};else return{type:"exact",command:A}}function GR2(A,B,Q){let D=A.command.trim();return Array.from(B.entries()).filter(([I])=>{let Z=gw6(I);switch(Z.type){case"exact":return Z.command===D;case"prefix":switch(Q){case"exact":return Z.prefix===D;case"prefix":return D.startsWith(Z.prefix)}}}).map(([,I])=>I)}function YR2(A,B,Q){let D=ub(B,h9,"deny"),I=GR2(A,D,Q),Z=ub(B,h9,"allow"),G=GR2(A,Z,Q);return{matchingDenyRules:I,matchingAllowRules:G}}var oAA=(A,B)=>{let Q=A.command.trim(),{matchingDenyRules:D,matchingAllowRules:I}=YR2(A,B,"exact");if(D[0]!==void 0)return{behavior:"deny",message:`Permission to use ${h9.name} with command ${Q} has been denied.`,decisionReason:{type:"rule",rule:D[0]},ruleSuggestions:null};if(I[0]!==void 0)return{behavior:"allow",updatedInput:A,decisionReason:{type:"rule",rule:I[0]}};if(h9.isReadOnly(A))return{behavior:"allow",updatedInput:A,decisionReason:{type:"other",reason:"Sandboxed command is allowed"}};return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,ruleSuggestions:eH1(Q)}},WR2=(A,B)=>{let Q=A.command.trim();if(Q.split(" ")[0]==="cd"){if(rAA(A,lA(),Y9(),B).behavior==="allow")return{behavior:"allow",updatedInput:A,decisionReason:{type:"other",reason:"cd command is allowed"}}}let D=oAA(A,B);if(D.behavior==="deny")return D;let{matchingDenyRules:I,matchingAllowRules:Z}=YR2(A,B,"prefix");if(I[0]!==void 0)return{behavior:"deny",message:`Permission to use ${h9.name} with command ${Q} has been denied.`,decisionReason:{type:"rule",rule:I[0]},ruleSuggestions:null};if(D.behavior==="allow")return D;if(Z[0]!==void 0)return{behavior:"allow",updatedInput:A,decisionReason:{type:"rule",rule:Z[0]}};return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,ruleSuggestions:eH1(Q)}};function FR2(A,B,Q){let D=oAA(A,B);if(D.behavior==="deny")return D;if(D.behavior==="allow")return D;let I=WR2(A,B);if(I.behavior==="deny")return I;if(Q===null||Q===void 0)return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Command prefix query failed"},ruleSuggestions:eH1(A.command)};if(Q.commandInjectionDetected)return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Potential command injection detected"},ruleSuggestions:null};if(I.behavior==="allow")return I;let Z=Q.commandPrefix?bw6(Q.commandPrefix):eH1(A.command);return{...I,ruleSuggestions:Z}}var tAA=async(A,B,Q=AR2)=>{let D=oAA(A,B.getToolPermissionContext());if(D.behavior==="deny")return D;let I=await ZR2(A,(E)=>tAA(E,B,Q));if(I!==null)return I;let Z=Dk(A.command).filter((E)=>{if(E===`cd ${lA()}`)return!1;return!0});if(Z.filter((E)=>E.startsWith("cd ")).length>1)return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"other",reason:"Multiple cd commands detected"},ruleSuggestions:null};let F=Z.map((E)=>WR2({command:E},B.getToolPermissionContext())),Y=['"',"'","`","$(","${","~[","(e:",`
1573
1573
  `,"\r",";","|","&","||","&&",">","<",">>",">&",">&2","<(",">(","$","\\","#"];if(F.find((E)=>E.behavior==="deny")!==void 0)return{behavior:"deny",message:`Permission to use ${h9.name} with command ${A.command} has been denied.`,ruleSuggestions:null,decisionReason:{type:"subcommandResults",reasons:new Map(F.map((E,U)=>[Z[U],E]))}};if(D.behavior==="allow")return D;if(F.every((E)=>E.behavior==="allow")&&!Z.some((E)=>Y.some((U)=>E.includes(U))))return{behavior:"allow",updatedInput:A,decisionReason:{type:"subcommandResults",reasons:new Map(F.map((E,U)=>[Z[U],E]))}};let J=await Q(A.command,B.abortController.signal,B.options.isNonInteractiveSession);if(B.abortController.signal.aborted)throw new b8;let C=B.getToolPermissionContext();if(Z.length===1)return FR2({command:Z[0]},C,J);let X=new Map;for(let E of Z)X.set(E,FR2({...A,command:E},C,J?.subcommandPrefixes.get(E)));if(Z.every((E)=>{return X.get(E)?.behavior==="allow"}))return{behavior:"allow",updatedInput:A,decisionReason:{type:"subcommandResults",reasons:X}};let V=new Map;for(let E of X.values())if(E.behavior!=="allow"){let U=E.ruleSuggestions;if(U===void 0)continue;else if(U===null){V=null;break}else for(let q of U){let R=$3(q);V.set(R,q)}}let K=V?Array.from(V.values()):null;return{behavior:"ask",message:`Claude requested permissions to use ${h9.name}, but you haven't granted it yet.`,decisionReason:{type:"subcommandResults",reasons:X},ruleSuggestions:K}};var hw6=(A,B,Q)=>({isError:A!==0,message:A!==0?`Command failed with exit code ${A}`:void 0}),uw6=new Map([["grep",(A,B,Q)=>({isError:A>=2,message:A===1?"No matches found":void 0})],["rg",(A,B,Q)=>({isError:A>=2,message:A===1?"No matches found":void 0})],["find",(A,B,Q)=>({isError:A>=2,message:A===1?"Some directories were inaccessible":void 0})],["diff",(A,B,Q)=>({isError:A>=2,message:A===1?"Files differ":void 0})],["test",(A,B,Q)=>({isError:A>=2,message:A===1?"Condition is false":void 0})],["[",(A,B,Q)=>({isError:A>=2,message:A===1?"Condition is false":void 0})]]);function mw6(A){let B=dw6(A),Q=uw6.get(B);return Q!==void 0?Q:hw6}function dw6(A){return(A.split("|").pop()?.trim()||A).trim().split(/\s+/)[0]||""}function JR2(A,B,Q,D){let Z=mw6(A)(B,Q,D);return{isError:Z.isError,message:Z.message}}var CR2=2000,lw6=2000,VR2=v.strictObject({command:v.string().describe("The command to execute"),timeout:v.number().optional().describe(`Optional timeout in milliseconds (max ${kJ1()})`),description:v.string().optional().describe(` Clear, concise description of what this command does in 5-10 words. Examples:
1574
1574
  Input: ls
1575
1575
  Output: Lists files in current directory
@@ -1583,7 +1583,7 @@ Output: Installs package dependencies
1583
1583
  Input: mkdir foo
1584
1584
  Output: Creates directory 'foo'`)}),iw6=VR2.extend({sandbox:v.boolean().optional().describe("whether to run this command in sandboxed mode: command run in this mode may not write to the filesystem or use the network, but they can read files, analyze data, and report back to you. When possible, run commands (e.g. grep) in this mode to present a smoother experience for the human, who isn't prompted to approve commands run in sandbox mode. If you run a command in sandbox mode and it looks like it fails because it needs write access after all, try again in non-sandbox mode"),shellExecutable:v.string().optional().describe("Optional shell path to use instead of the default shell. The snapshot path will be set to undefined as well. Used primarily for testing.")}),h73=v.object({stdout:v.string().describe("The standard output of the command"),stderr:v.string().describe("The standard error output of the command"),interrupted:v.boolean().describe("Whether the command was interrupted"),isImage:v.boolean().optional().describe("Flag to indicate if stdout contains image data"),backgroundTaskId:v.string().optional().describe("ID of the background task if command is running in background"),sandbox:v.boolean().optional().describe("Flag to indicate if the command was run in sandbox mode"),returnCodeInterpretation:v.string().optional().describe("Semantic interpretation for non-error exit codes with special meaning")}),XR2=2,eAA=160;function nw6({onBackground:A}){return Z0((B,Q)=>{if(B==="b"&&Q.ctrl)A()}),V8.createElement(g,{paddingLeft:5},V8.createElement(S,{dimColor:!0},"Ctrl+B to run in background"))}var aw6=new Set([/^date\b[^<>()$`]*$/,/^cal\b[^<>()$`]*$/,/^uptime\b[^<>()$`]*$/,/^echo\s+(?:'[^']*'|"[^"$<>]*"|[^|;&`$(){}><#\\\s!]+?)*$/,/^claude -h$/,/^claude --help$/,/^git diff(?!\s+.*--ext-diff)(?!\s+.*--extcmd)[^<>()$`]*$/,/^git log[^<>()$`]*$/,/^git show[^<>()$`]*$/,/^git status[^<>()$`]*$/,/^git blame[^<>()$`]*$/,/^git reflog[^<>()$`]*$/,/^git stash list[^<>()$`]*$/,/^git ls-files[^<>()$`]*$/,/^git ls-remote[^<>()$`]*$/,/^git config --get[^<>()$`]*$/,/^git remote -v$/,/^git remote show[^<>()$`]*$/,/^git tag$/,/^git tag -l[^<>()$`]*$/,/^git branch$/,/^git branch (?:-v|-vv|--verbose)$/,/^git branch (?:-a|--all)$/,/^git branch (?:-r|--remotes)$/,/^git branch (?:-l|--list)(?:\s+"[^"]*"|'[^']*')?$/,/^git branch (?:--color|--no-color|--column|--no-column)$/,/^git branch --sort=\S+$/,/^git branch --show-current$/,/^git branch (?:--contains|--no-contains)\s+\S+$/,/^git branch (?:--merged|--no-merged)(?:\s+\S+)?$/,/^head[^<>()$`]*$/,/^tail[^<>()$`]*$/,/^wc[^<>()$`]*$/,/^stat[^<>()$`]*$/,/^file[^<>()$`]*$/,/^strings[^<>()$`]*$/,/^hexdump[^<>()$`]*$/,/^sort(?!\s+.*-o\b)(?!\s+.*--output)[^<>()$`]*$/,/^uniq(?:\s+(?:-[a-zA-Z]+|--[a-zA-Z-]+(?:=\S+)?|-[fsw]\s+\d+))*\s*$/,/^grep\s+(?:(?:-[a-zA-Z]+|-[ABC](?:\s+)?\d+)\s+)*(?:'[^']*'|".*"|\S+)\s*$/,/^rg\s+(?:(?:-[a-zA-Z]+|-[ABC](?:\s+)?\d+)\s+)*(?:'[^']*'|".*"|\S+)\s*$/,/^pwd$/,/^whoami$/,/^id[^<>()$`]*$/,/^uname[^<>()$`]*$/,/^free[^<>()$`]*$/,/^df[^<>()$`]*$/,/^du[^<>()$`]*$/,/^ps(?!\s+.*-o)[^<>()$`]*$/,/^locale[^<>()$`]*$/,/^node -v$/,/^npm -v$/,/^npm list[^<>()$`]*$/,/^python --version$/,/^python3 --version$/,/^pip list[^<>()$`]*$/,/^docker ps[^<>()$`]*$/,/^docker images[^<>()$`]*$/,/^netstat(?!\s+.*-p)[^<>()$`]*$/,/^ip addr[^<>()$`]*$/,/^ifconfig[^<>()$`]*$/,/^man(?!\s+.*-P)(?!\s+.*--pager)[^<>()$`]*$/,/^info[^<>()$`]*$/,/^help[^<>()$`]*$/,/^sleep[^<>()$`]*$/,/^tree$/,/^which[^<>()$`]*$/,/^type[^<>()$`]*$/,/^history(?!\s+-c)[^<>()$`]*$/,/^alias$/,/^jq(?!\s+.*(?:-f\b|--from-file|--rawfile|--slurpfile|--run-tests))(?:\s+(?:-[a-zA-Z]+|--[a-zA-Z-]+(?:=\S+)?))*(?: +(?:'.*'|".*"|[^-\s][^\s]*))?\s*$/]);function rw6(A,B){if(B!==0)return;if(A.match(/^\s*git\s+commit\b/))E1("tengu_git_operation",{operation:"commit"}),S8A()?.add(1);else if(A.match(/^\s*gh\s+pr\s+create\b/))E1("tengu_git_operation",{operation:"pr_create"}),P8A()?.add(1)}var h9={name:VU,async description({description:A}){return A||"Run shell command"},async prompt(){return Jt0()},isConcurrencySafe(A){return this.isReadOnly(A)},isReadOnly(A){let{command:B}=A;return("sandbox"in A?!!A.sandbox:!1)||Dk(B).every((D)=>{for(let I of aw6)if(I.test(D))return!0;return!1})},inputSchema:fF1()?iw6:VR2,userFacingName(A){if(!A)return"Bash";return("sandbox"in A?!!A.sandbox:!1)?"SandboxedBash":"Bash"},isEnabled(){return!0},async checkPermissions(A,B){if("sandbox"in A?!!A.sandbox:!1)return{behavior:"allow",updatedInput:A};return tAA(A,B)},async validateInput(A,B){let Q=rAA(A,lA(),Y9(),B.getToolPermissionContext());if(Q.behavior!=="allow")return{result:!1,message:Q.message,errorCode:1};return{result:!0}},renderToolUseMessage(A,{verbose:B}){let{command:Q}=A;if(!Q)return null;let D=Q;if(Q.includes(`"$(cat <<'EOF'`)){let I=Q.match(/^(.*?)"?\$\(cat <<'EOF'\n([\s\S]*?)\n\s*EOF\n\s*\)"(.*)$/);if(I&&I[1]&&I[2]){let Z=I[1],G=I[2],F=I[3]||"";D=`${Z.trim()} "${G.trim()}"${F.trim()}`}}if(!B){let I=D.split(`
1585
1585
  `),Z=I.length>XR2,G=D.length>eAA;if(Z||G){let F=D;if(Z)F=I.slice(0,XR2).join(`
1586
- `);if(F.length>eAA)F=F.slice(0,eAA);return V8.createElement(S,null,F.trim(),"…")}}return D},renderToolUseRejectedMessage(){return V8.createElement(f6,null)},renderToolUseProgressMessage(A){let B=A.at(-1);if(!B)return V8.createElement(w0,{height:1},V8.createElement(S,{color:"secondaryText"},"Running…"));let Q=B.data;return V8.createElement(DR2,{lastLines:Q.output,elapsedTimeSeconds:Q.elapsedTimeSeconds,totalLines:Q.totalLines})},renderToolUseQueuedMessage(){return V8.createElement(w0,{height:1},V8.createElement(S,{color:"secondaryText"},"Waiting…"))},renderToolResultMessage(A,B,{verbose:Q}){return V8.createElement(Wc,{content:A,verbose:Q})},mapToolResultToToolResultBlockParam({interrupted:A,stdout:B,stderr:Q,isImage:D},I){if(D){let F=B.trim().match(/^data:([^;]+);base64,(.+)$/);if(F){let Y=F[1],W=F[2];return{tool_use_id:I,type:"tool_result",content:[{type:"image",source:{type:"base64",media_type:Y||"image/jpeg",data:W||""}}]}}}let Z=B;if(B)Z=B.replace(/^(\s*\n)+/,""),Z=Z.trimEnd();let G=Q.trim();if(A){if(Q)G+=Az1;G+="<error>Command was aborted before completion</error>"}return{tool_use_id:I,type:"tool_result",content:[Z,G].filter(Boolean).join(`
1586
+ `);if(F.length>eAA)F=F.slice(0,eAA);return V8.createElement(S,null,F.trim(),"…")}}return D},renderToolUseRejectedMessage(){return V8.createElement(f6,null)},renderToolUseProgressMessage(A){let B=A.at(-1);if(!B||!B.data||!B.data.output)return V8.createElement(w0,{height:1},V8.createElement(S,{color:"secondaryText"},"Running…"));let Q=B.data;return V8.createElement(DR2,{lastLines:Q.output,elapsedTimeSeconds:Q.elapsedTimeSeconds,totalLines:Q.totalLines})},renderToolUseQueuedMessage(){return V8.createElement(w0,{height:1},V8.createElement(S,{color:"secondaryText"},"Waiting…"))},renderToolResultMessage(A,B,{verbose:Q}){return V8.createElement(Wc,{content:A,verbose:Q})},mapToolResultToToolResultBlockParam({interrupted:A,stdout:B,stderr:Q,isImage:D},I){if(D){let F=B.trim().match(/^data:([^;]+);base64,(.+)$/);if(F){let Y=F[1],W=F[2];return{tool_use_id:I,type:"tool_result",content:[{type:"image",source:{type:"base64",media_type:Y||"image/jpeg",data:W||""}}]}}}let Z=B;if(B)Z=B.replace(/^(\s*\n)+/,""),Z=Z.trimEnd();let G=Q.trim();if(A){if(Q)G+=Az1;G+="<error>Command was aborted before completion</error>"}return{tool_use_id:I,type:"tool_result",content:[Z,G].filter(Boolean).join(`
1587
1587
  `),is_error:A}},async*call(A,{abortController:B,getToolPermissionContext:Q,readFileState:D,options:{isNonInteractiveSession:I},setToolJSX:Z}){let G="",F="",Y,W=0,J=!1,C;try{let U=sw6({input:A,abortController:B,setToolJSX:Z,isReadOnly:this.isReadOnly(A)}),q;do if(q=await U.next(),!q.done){let R=q.value;yield{type:"progress",toolUseID:`bash-progress-${W++}`,data:{type:"bash_progress",output:R.output,elapsedTimeSeconds:R.elapsedTimeSeconds,totalLines:R.totalLines}}}while(!q.done);if(C=q.value,rw6(A.command,C.code),G+=(C.stdout||"").trimEnd()+Az1,Y=JR2(A.command,C.code,C.stdout||"",C.stderr||""),Y.isError){if(F+=(C.stderr||"").trimEnd()+Az1,C.code!==0)F+=`Exit code ${C.code}`}else G+=(C.stderr||"").trimEnd()+Az1;if(vH1(Q()))F=fH1(F);if(Y.isError)throw new Zz(C.stdout,C.stderr,C.code,C.interrupted);J=C.interrupted}finally{if(Z)Z(null)}zM2(A.command,G,I).then((U)=>{for(let q of U){let R=cw6(q)?q:pw6(lA(),q);try{if(!v1().existsSync(R)||!v1().statSync(R).isFile())continue;D[R]={content:AI(R),timestamp:v1().statSync(R).mtimeMs}}catch(M){f1(M)}}E1("tengu_bash_tool_haiku_file_paths_read",{filePathsExtracted:U.length,readFileStateSize:Object.keys(D).length,readFileStateValuesCharLength:Object.values(D).reduce((q,R)=>q+R.content.length,0)})});let{truncatedContent:X,isImage:V}=MT(UA1(G)),{truncatedContent:K}=MT(UA1(F));yield{type:"result",data:{stdout:X,stderr:K,interrupted:J,isImage:V,returnCodeInterpretation:Y?.message,backgroundTaskId:C.backgroundTaskId}}},renderToolUseErrorMessage(A,{verbose:B}){return V8.createElement(xQ,{result:A,verbose:B})}};async function*sw6({input:A,abortController:B,setToolJSX:Q,isReadOnly:D}){let{command:I,timeout:Z,shellExecutable:G}=A,F=Z||Km(),Y=aU0(),W="",J=0,C=!1,X,V=(M,T)=>{W=M,J=T},K=await Y(I,B.signal,F,A.sandbox||!1,G,V),E;if(Q&&!D&&process.env.ENABLE_BACKGROUND_TASKS)E=()=>{if(X=nU.moveToBackground(I,K),C=!0,Q)Q(null)};let U=K.result,q=Date.now(),R=q+CR2;while(!0){let M=Date.now(),T=Math.max(0,R-M),L=await Promise.race([U,new Promise((d)=>setTimeout(()=>d(null),T))]);if(L!==null)return L;if(C&&X)return{stdout:"",stderr:"",code:0,interrupted:!1,backgroundTaskId:X};let P=Date.now()-q,_=Math.floor(P/1000);if(E&&!C&&_>=CR2/1000&&Q)Q({jsx:V8.createElement(nw6,{onBackground:E}),shouldHidePromptInput:!1});yield{type:"progress",output:W,elapsedTimeSeconds:_,totalLines:J},R=Date.now()+lw6}}var KE=G1(U1(),1);import{dirname as jN6,isAbsolute as Wz1,relative as yN6,resolve as kN6,sep as xN6}from"path";var UQ=G1(U1(),1);function tY(A,B){return A.flatMap((Q,D)=>D?[B(D),Q]:[Q])}var YB=G1(U1(),1);function VE(){}VE.prototype={diff:function A(B,Q){var D,I=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Z=I.callback;if(typeof I==="function")Z=I,I={};var G=this;function F(T){if(T=G.postProcess(T,I),Z)return setTimeout(function(){Z(T)},0),!0;else return T}B=this.castInput(B,I),Q=this.castInput(Q,I),B=this.removeEmpty(this.tokenize(B,I)),Q=this.removeEmpty(this.tokenize(Q,I));var Y=Q.length,W=B.length,J=1,C=Y+W;if(I.maxEditLength!=null)C=Math.min(C,I.maxEditLength);var X=(D=I.timeout)!==null&&D!==void 0?D:1/0,V=Date.now()+X,K=[{oldPos:-1,lastComponent:void 0}],E=this.extractCommon(K[0],Q,B,0,I);if(K[0].oldPos+1>=W&&E+1>=Y)return F(KR2(G,K[0].lastComponent,Q,B,G.useLongestToken));var U=-1/0,q=1/0;function R(){for(var T=Math.max(U,-J);T<=Math.min(q,J);T+=2){var L=void 0,P=K[T-1],_=K[T+1];if(P)K[T-1]=void 0;var d=!1;if(_){var y=_.oldPos-T;d=_&&0<=y&&y<Y}var p=P&&P.oldPos+1<W;if(!d&&!p){K[T]=void 0;continue}if(!p||d&&P.oldPos<_.oldPos)L=G.addToPath(_,!0,!1,0,I);else L=G.addToPath(P,!1,!0,1,I);if(E=G.extractCommon(L,Q,B,T,I),L.oldPos+1>=W&&E+1>=Y)return F(KR2(G,L.lastComponent,Q,B,G.useLongestToken));else{if(K[T]=L,L.oldPos+1>=W)q=Math.min(q,T-1);if(E+1>=Y)U=Math.max(U,T+1)}}J++}if(Z)(function T(){setTimeout(function(){if(J>C||Date.now()>V)return Z();if(!R())T()},0)})();else while(J<=C&&Date.now()<=V){var M=R();if(M)return M}},addToPath:function A(B,Q,D,I,Z){var G=B.lastComponent;if(G&&!Z.oneChangePerToken&&G.added===Q&&G.removed===D)return{oldPos:B.oldPos+I,lastComponent:{count:G.count+1,added:Q,removed:D,previousComponent:G.previousComponent}};else return{oldPos:B.oldPos+I,lastComponent:{count:1,added:Q,removed:D,previousComponent:G}}},extractCommon:function A(B,Q,D,I,Z){var G=Q.length,F=D.length,Y=B.oldPos,W=Y-I,J=0;while(W+1<G&&Y+1<F&&this.equals(D[Y+1],Q[W+1],Z))if(W++,Y++,J++,Z.oneChangePerToken)B.lastComponent={count:1,previousComponent:B.lastComponent,added:!1,removed:!1};if(J&&!Z.oneChangePerToken)B.lastComponent={count:J,previousComponent:B.lastComponent,added:!1,removed:!1};return B.oldPos=Y,W},equals:function A(B,Q,D){if(D.comparator)return D.comparator(B,Q);else return B===Q||D.ignoreCase&&B.toLowerCase()===Q.toLowerCase()},removeEmpty:function A(B){var Q=[];for(var D=0;D<B.length;D++)if(B[D])Q.push(B[D]);return Q},castInput:function A(B){return B},tokenize:function A(B){return Array.from(B)},join:function A(B){return B.join("")},postProcess:function A(B){return B}};function KR2(A,B,Q,D,I){var Z=[],G;while(B)Z.push(B),G=B.previousComponent,delete B.previousComponent,B=G;Z.reverse();var F=0,Y=Z.length,W=0,J=0;for(;F<Y;F++){var C=Z[F];if(!C.removed){if(!C.added&&I){var X=Q.slice(W,W+C.count);X=X.map(function(V,K){var E=D[J+K];return E.length>V.length?E:V}),C.value=A.join(X)}else C.value=A.join(Q.slice(W,W+C.count));if(W+=C.count,!C.added)J+=C.count}else C.value=A.join(D.slice(J,J+C.count)),J+=C.count}return Z}var d73=new VE;function ER2(A,B){var Q;for(Q=0;Q<A.length&&Q<B.length;Q++)if(A[Q]!=B[Q])return A.slice(0,Q);return A.slice(0,Q)}function HR2(A,B){var Q;if(!A||!B||A[A.length-1]!=B[B.length-1])return"";for(Q=0;Q<A.length&&Q<B.length;Q++)if(A[A.length-(Q+1)]!=B[B.length-(Q+1)])return A.slice(-Q);return A.slice(-Q)}function B0A(A,B,Q){if(A.slice(0,B.length)!=B)throw Error("string ".concat(JSON.stringify(A)," doesn't start with prefix ").concat(JSON.stringify(B),"; this is a bug"));return Q+A.slice(B.length)}function Q0A(A,B,Q){if(!B)return A+Q;if(A.slice(-B.length)!=B)throw Error("string ".concat(JSON.stringify(A)," doesn't end with suffix ").concat(JSON.stringify(B),"; this is a bug"));return A.slice(0,-B.length)+Q}function xA1(A,B){return B0A(A,B,"")}function Bz1(A,B){return Q0A(A,B,"")}function zR2(A,B){return B.slice(0,ow6(A,B))}function ow6(A,B){var Q=0;if(A.length>B.length)Q=A.length-B.length;var D=B.length;if(A.length<B.length)D=A.length;var I=Array(D),Z=0;I[0]=0;for(var G=1;G<D;G++){if(B[G]==B[Z])I[G]=I[Z];else I[G]=Z;while(Z>0&&B[G]!=B[Z])Z=I[Z];if(B[G]==B[Z])Z++}Z=0;for(var F=Q;F<A.length;F++){while(Z>0&&A[F]!=B[Z])Z=I[Z];if(A[F]==B[Z])Z++}return Z}var Qz1="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",tw6=new RegExp("[".concat(Qz1,"]+|\\s+|[^").concat(Qz1,"]"),"ug"),Dz1=new VE;Dz1.equals=function(A,B,Q){if(Q.ignoreCase)A=A.toLowerCase(),B=B.toLowerCase();return A.trim()===B.trim()};Dz1.tokenize=function(A){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Q;if(B.intlSegmenter){if(B.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');Q=Array.from(B.intlSegmenter.segment(A),function(Z){return Z.segment})}else Q=A.match(tw6)||[];var D=[],I=null;return Q.forEach(function(Z){if(/\s/.test(Z))if(I==null)D.push(Z);else D.push(D.pop()+Z);else if(/\s/.test(I))if(D[D.length-1]==I)D.push(D.pop()+Z);else D.push(I+Z);else D.push(Z);I=Z}),D};Dz1.join=function(A){return A.map(function(B,Q){if(Q==0)return B;else return B.replace(/^\s+/,"")}).join("")};Dz1.postProcess=function(A,B){if(!A||B.oneChangePerToken)return A;var Q=null,D=null,I=null;if(A.forEach(function(Z){if(Z.added)D=Z;else if(Z.removed)I=Z;else{if(D||I)UR2(Q,I,D,Z);Q=Z,D=null,I=null}}),D||I)UR2(Q,I,D,null);return A};function UR2(A,B,Q,D){if(B&&Q){var I=B.value.match(/^\s*/)[0],Z=B.value.match(/\s*$/)[0],G=Q.value.match(/^\s*/)[0],F=Q.value.match(/\s*$/)[0];if(A){var Y=ER2(I,G);A.value=Q0A(A.value,G,Y),B.value=xA1(B.value,Y),Q.value=xA1(Q.value,Y)}if(D){var W=HR2(Z,F);D.value=B0A(D.value,F,W),B.value=Bz1(B.value,W),Q.value=Bz1(Q.value,W)}}else if(Q){if(A)Q.value=Q.value.replace(/^\s*/,"");if(D)D.value=D.value.replace(/^\s*/,"")}else if(A&&D){var J=D.value.match(/^\s*/)[0],C=B.value.match(/^\s*/)[0],X=B.value.match(/\s*$/)[0],V=ER2(J,C);B.value=xA1(B.value,V);var K=HR2(xA1(J,V),X);B.value=Bz1(B.value,K),D.value=B0A(D.value,J,K),A.value=Q0A(A.value,J,J.slice(0,J.length-K.length))}else if(D){var E=D.value.match(/^\s*/)[0],U=B.value.match(/\s*$/)[0],q=zR2(U,E);B.value=Bz1(B.value,q)}else if(A){var R=A.value.match(/\s*$/)[0],M=B.value.match(/^\s*/)[0],T=zR2(R,M);B.value=xA1(B.value,T)}}var $R2=new VE;$R2.tokenize=function(A){var B=new RegExp("(\\r?\\n)|[".concat(Qz1,"]+|[^\\S\\n\\r]+|[^").concat(Qz1,"]"),"ug");return A.match(B)||[]};function LR2(A,B,Q){return $R2.diff(A,B,Q)}var Iz1=new VE;Iz1.tokenize=function(A,B){if(B.stripTrailingCr)A=A.replace(/\r\n/g,`
1588
1588
  `);var Q=[],D=A.split(/(\n|\r\n)/);if(!D[D.length-1])D.pop();for(var I=0;I<D.length;I++){var Z=D[I];if(I%2&&!B.newlineIsToken)Q[Q.length-1]+=Z;else Q.push(Z)}return Q};Iz1.equals=function(A,B,Q){if(Q.ignoreWhitespace){if(!Q.newlineIsToken||!A.includes(`
1589
1589
  `))A=A.trim();if(!Q.newlineIsToken||!B.includes(`
@@ -2006,13 +2006,13 @@ Files modified by other users:
2006
2006
  `);if(_1.meta)return L.insert(`
2007
2007
  `);Q?.(A)}function g1(){if(E)return G?.(),L;let _1=L.up();if(!_1.equals(L))return _1;if(J){let Q1=L.upLogicalLine();if(!Q1.equals(L))return Q1}return G?.(),L}function ZA(){if(E)return F?.(),L;let _1=L.down();if(!_1.equals(L))return _1;if(J){let Q1=L.downLogicalLine();if(!Q1.equals(L))return Q1}return F?.(),L}function EA(_1){switch(!0){case _1.escape:return p;case(_1.leftArrow&&(_1.ctrl||_1.meta||_1.fn)):return()=>L.prevWord();case(_1.rightArrow&&(_1.ctrl||_1.meta||_1.fn)):return()=>L.nextWord();case _1.backspace:return _1.meta?()=>L.deleteWordBefore():()=>L.backspace();case _1.delete:return _1.meta?()=>L.deleteToLineEnd():()=>L.del();case _1.ctrl:return s;case _1.home:return()=>L.startOfLine();case _1.end:return()=>L.endOfLine();case _1.pageDown:return()=>L.endOfLine();case _1.pageUp:return()=>L.startOfLine();case _1.meta:return V1;case _1.return:return()=>h1(_1);case _1.tab:return()=>L;case _1.upArrow:return g1;case _1.downArrow:return ZA;case _1.leftArrow:return()=>L.left();case _1.rightArrow:return()=>L.right();default:return function(Q1){switch(!0){case(Q1==="\x1B[H"||Q1==="\x1B[1~"):return L.startOfLine();case(Q1==="\x1B[F"||Q1==="\x1B[4~"):return L.endOfLine();default:if(L.isAtStart()&&(Q1==="!"||Q1==="#"))return L.insert(h7(Q1).replace(/\r/g,`
2008
2008
  `)).left();return L.insert(h7(Q1).replace(/\r/g,`
2009
- `))}}}}function i1(_1,Q1){let R1=R?R(_1,Q1):_1;if(R1===""&&_1!=="")return;let q1=EA(Q1)(R1);if(q1){if(!L.equals(q1)){if(T(q1.offset),L.text!==q1.text)B(q1.text)}}}return{onInput:i1,renderedValue:L.render(C,W,X),offset:M,setOffset:T}}var s01=G1(U1(),1);var Iw1=G1(U1(),1);function Jf2({onPaste:A,onInput:B,onImagePaste:Q}){let[D,I]=Iw1.default.useState({chunks:[],timeoutId:null}),[Z,G]=Iw1.default.useState(!1),F=(J)=>{if(J)clearTimeout(J);return setTimeout(()=>{I(({chunks:C})=>{let X=C.join("");if(Q&&X9A(X))return ax2(X).then((V)=>{if(V)Promise.resolve().then(()=>{Q(V.base64,V.mediaType)});else Promise.resolve().then(()=>{if(A)A(X);G(!1)})}),{chunks:[],timeoutId:null};return Promise.resolve().then(()=>{if(A)A(X);G(!1)}),{chunks:[],timeoutId:null}})},100)},{stdin:Y}=JM();return Iw1.default.useEffect(()=>{if(!Y)return;let J=(C)=>{let X=C.toString();if(X.includes("\x1B[200~"))G(!0);if(X.includes("\x1B[201~"))G(!1)};return Y.on("data",J),()=>{Y.off("data",J),G(!1)}},[Y]),{wrappedOnInput:(J,C)=>{let X=X9A(J);if(A&&(J.length>oU1||D.timeoutId||X)){I(({chunks:V,timeoutId:K})=>{return{chunks:[...V,J],timeoutId:F(K)}});return}if(B(J,C),J.length>10)G(!1)},pasteState:D,isPasting:Z}}function Cf2({placeholder:A,value:B,showCursor:Q,focus:D,terminalFocus:I=!0}){let Z=void 0;if(A){if(Z=WA.dim(A),Q&&D&&I)Z=A.length>0?WA.inverse(A[0])+WA.dim(A.slice(1)):WA.inverse(" ")}let G=B.length===0&&Boolean(A);return{renderedPlaceholder:Z,showPlaceholder:G}}function Zw1({inputState:A,children:B,terminalFocus:Q,...D}){let{onInput:I,renderedValue:Z}=A,{wrappedOnInput:G,isPasting:F}=Jf2({onPaste:D.onPaste,onInput:(V,K)=>{if(F&&K.return)return;I(V,K)},onImagePaste:D.onImagePaste}),{onIsPastingChange:Y}=D;s01.default.useEffect(()=>{if(Y)Y(F)},[F,Y]);let{showPlaceholder:W,renderedPlaceholder:J}=Cf2({placeholder:D.placeholder,value:D.value,showCursor:D.showCursor,focus:D.focus,terminalFocus:Q});Z0(G,{isActive:D.focus});let C=D.value&&D.value.trim().indexOf(" ")===-1||D.value&&D.value.endsWith(" "),X=Boolean(D.argumentHint&&D.value&&C&&D.value.startsWith("/"));return s01.default.createElement(g,null,s01.default.createElement(S,{wrap:"truncate-end"},W?J:Z,X&&s01.default.createElement(S,{color:"secondaryText"},D.value?.endsWith(" ")?"":" ",D.argumentHint),B))}var T$=G1(U1(),1);var z9A=!0,$k=new Set;function U9A(A){let B=A.toString();if(B.includes("\x1B[I"))z9A=!0,$k.forEach((Q)=>Q(!0));if(B.includes("\x1B[O"))z9A=!1,$k.forEach((Q)=>Q(!1))}function Xf2(){let A=()=>{if($k.size===0)return;process.stdin.off("data",U9A),process.stdout.write("\x1B[?1004l")};process.on("exit",A)}function Vf2(){let[A,B]=T$.useState(z9A),[Q,D]=T$.useState(!1),I=T$.useCallback((G)=>{B(G),D(!1)},[]);T$.useEffect(()=>{if(!process.stdout.isTTY)return;if($k.add(I),$k.size===1)process.stdout.write("\x1B[?1004h"),process.stdin.on("data",U9A);return()=>{if($k.delete(I),$k.size===0)process.stdin.off("data",U9A),process.stdout.write("\x1B[?1004l")}},[I]),T$.useEffect(()=>{if(!A&&Q)E1("tengu_typing_without_terminal_focus",{})},[A,Q]);let Z=T$.useCallback((G,F)=>{if(G==="\x1B[I"||G==="\x1B[O"||G==="[I"||G==="[O")return"";if((G||F)&&!A)D(!0);return G},[A]);return{isFocused:A||Q,filterFocusSequences:Z}}function u4(A){let[B]=lB(),{isFocused:Q,filterFocusSequences:D}=Vf2(),I=Dw1({value:A.value,onChange:A.onChange,onSubmit:A.onSubmit,onExit:A.onExit,onExitMessage:A.onExitMessage,onMessage:A.onMessage,onHistoryReset:A.onHistoryReset,onHistoryUp:A.onHistoryUp,onHistoryDown:A.onHistoryDown,focus:A.focus,mask:A.mask,multiline:A.multiline,cursorChar:A.showCursor?" ":"",highlightPastedText:A.highlightPastedText,invert:Q?WA.inverse:(Z)=>Z,themeText:MB("text",B),columns:A.columns,onImagePaste:A.onImagePaste,disableCursorMovementForUpDownKeys:A.disableCursorMovementForUpDownKeys,externalOffset:A.cursorOffset,onOffsetChange:A.onChangeCursorOffset,inputFilter:D});return Kf2.default.createElement(Zw1,{inputState:I,terminalFocus:Q,...A})}async function Bp(A){let B=process.env.BROWSER,Q=process.platform,D=B?B:Q==="win32"?"start":Q==="darwin"?"open":"xdg-open";try{let{code:I}=await B2(D,[A]);return I===0}catch(I){return!1}}var u_6=7250;function Qp(A){let B=A;return B=B.replace(/"(sk-ant[^\s"']{24,})"/g,'"[REDACTED_API_KEY]"'),B=B.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g,"[REDACTED_API_KEY]"),B=B.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g,'AWS key: "[REDACTED_AWS_KEY]"'),B=B.replace(/(AKIA[A-Z0-9]{16})/g,"[REDACTED_AWS_KEY]"),B=B.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g,"[REDACTED_GCP_KEY]"),B=B.replace(/(?<![A-Za-z0-9])([a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com)(?![A-Za-z0-9])/g,"[REDACTED_GCP_SERVICE_ACCOUNT]"),B=B.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi,"$1[REDACTED_API_KEY]"),B=B.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi,"$1[REDACTED_TOKEN]"),B=B.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_AWS_VALUE]"),B=B.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_GCP_VALUE]"),B=B.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED]"),B}function Ef2(){return NU0().map((A)=>{let B={...A};if(B&&typeof B.error==="string")B.error=Qp(B.error);return B})}var Hf2="https://github.com/anthropics/claude-code/issues";function Uf2({messages:A,onDone:B}){let[Q,D]=BV.useState("userInput"),[I,Z]=BV.useState(0),[G,F]=BV.useState(""),[Y,W]=BV.useState(null),[J,C]=BV.useState(null),[X,V]=BV.useState({isGit:!1,gitState:null}),[K,E]=BV.useState(null),U=z9().columns-4;BV.useEffect(()=>{async function M(){let T=await Cz(),L=null;if(T)L=await tcA();V({isGit:T,gitState:L})}M()},[]);let q=Q2(),R=BV.useCallback(async()=>{D("submitting"),C(null),W(null);let M=Ef2(),T={message_count:A.length,datetime:new Date().toISOString(),description:G,platform:nA.platform,gitRepo:X.isGit,terminal:nA.terminal,version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,transcript:oY(A),errors:M},[L,P]=await Promise.all([c_6(T),d_6(G)]);if(E(P),L.success){if(L.feedbackId)W(L.feedbackId),E1("tengu_bug_report_submitted",{feedback_id:L.feedbackId});D("done")}else{if(L.isZdrOrg)C("Feedback collection is not available for organizations with custom data retention policies.");else C("Could not submit feedback. Please try again later.");D("done")}},[G,X.isGit,A]);return Z0((M,T)=>{if(Q==="done"){if(T.return&&K){let L=m_6(Y??"",K,G,Ef2());Bp(L)}if(J)B("Error submitting bug report");else B("Bug report submitted");return}if(J){B("Error submitting bug report");return}if(T.escape){B("Bug report cancelled");return}if(Q==="consent"&&(T.return||M===" "))R()}),c0.createElement(c0.Fragment,null,c0.createElement(g,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,paddingBottom:1,gap:1},c0.createElement(S,{bold:!0,color:"permission"},"Submit Bug Report"),Q==="userInput"&&c0.createElement(g,{flexDirection:"column",gap:1},c0.createElement(S,null,"Describe the issue below:"),c0.createElement(u4,{value:G,onChange:F,columns:U,onSubmit:()=>D("consent"),onExitMessage:()=>B("Bug report cancelled"),cursorOffset:I,onChangeCursorOffset:Z}),J&&c0.createElement(g,{flexDirection:"column",gap:1},c0.createElement(S,{color:"error"},J),c0.createElement(S,{dimColor:!0},"Press any key to close"))),Q==="consent"&&c0.createElement(g,{flexDirection:"column"},c0.createElement(S,null,"This report will include:"),c0.createElement(g,{marginLeft:2,flexDirection:"column"},c0.createElement(S,null,"- Your bug description: ",c0.createElement(S,{dimColor:!0},G)),c0.createElement(S,null,"- Environment info:"," ",c0.createElement(S,{dimColor:!0},nA.platform,", ",nA.terminal,", v",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION)),X.gitState&&c0.createElement(S,null,"- Git repo metadata:"," ",c0.createElement(S,{dimColor:!0},X.gitState.branchName,X.gitState.commitHash?`, ${X.gitState.commitHash.slice(0,7)}`:"",X.gitState.remoteUrl?` @ ${X.gitState.remoteUrl}`:"",!X.gitState.isHeadOnRemote&&", not synced",!X.gitState.isClean&&", has local changes")),c0.createElement(S,null,"- Current session transcript")),c0.createElement(g,{marginTop:1},c0.createElement(S,{wrap:"wrap",dimColor:!0},"We will use your feedback to debug related issues or to improve"," ",A2,"'s functionality (eg. to reduce the risk of bugs occurring in the future). Anthropic will not train generative models using feedback from ",A2,".")),c0.createElement(g,{marginTop:1},c0.createElement(S,null,"Press ",c0.createElement(S,{bold:!0},"Enter")," to confirm and submit."))),Q==="submitting"&&c0.createElement(g,{flexDirection:"row",gap:1},c0.createElement(S,null,"Submitting report…")),Q==="done"&&c0.createElement(g,{flexDirection:"column"},J?c0.createElement(S,{color:"error"},J):c0.createElement(S,{color:"success"},"Thank you for your report!"),Y&&c0.createElement(S,{dimColor:!0},"Feedback ID: ",Y),c0.createElement(g,{marginTop:1},c0.createElement(S,null,"Press "),c0.createElement(S,{bold:!0},"Enter "),c0.createElement(S,null,"to also create a GitHub issue, or any other key to close.")))),c0.createElement(g,{marginLeft:1},c0.createElement(S,{dimColor:!0},q.pending?c0.createElement(c0.Fragment,null,"Press ",q.keyName," again to exit"):Q==="userInput"?c0.createElement(c0.Fragment,null,"Enter to continue · Esc to cancel"):Q==="consent"?c0.createElement(c0.Fragment,null,"Enter to submit · Esc to cancel"):null)))}function m_6(A,B,Q,D){let I=Qp(B),Z=Qp(Q),G=encodeURIComponent(`**Bug Description**
2009
+ `))}}}}function i1(_1,Q1){let R1=R?R(_1,Q1):_1;if(R1===""&&_1!=="")return;let q1=EA(Q1)(R1);if(q1){if(!L.equals(q1)){if(T(q1.offset),L.text!==q1.text)B(q1.text)}}}return{onInput:i1,renderedValue:L.render(C,W,X),offset:M,setOffset:T}}var s01=G1(U1(),1);var Iw1=G1(U1(),1);function Jf2({onPaste:A,onInput:B,onImagePaste:Q}){let[D,I]=Iw1.default.useState({chunks:[],timeoutId:null}),[Z,G]=Iw1.default.useState(!1),F=(J)=>{if(J)clearTimeout(J);return setTimeout(()=>{I(({chunks:C})=>{let X=C.join("");if(Q&&X9A(X))return ax2(X).then((V)=>{if(V)Promise.resolve().then(()=>{Q(V.base64,V.mediaType)});else Promise.resolve().then(()=>{if(A)A(X);G(!1)})}),{chunks:[],timeoutId:null};return Promise.resolve().then(()=>{if(A)A(X);G(!1)}),{chunks:[],timeoutId:null}})},100)},{stdin:Y}=JM();return Iw1.default.useEffect(()=>{if(!Y)return;let J=(C)=>{let X=C.toString();if(X.includes("\x1B[200~"))G(!0);if(X.includes("\x1B[201~"))G(!1)};return Y.on("data",J),()=>{Y.off("data",J),G(!1)}},[Y]),{wrappedOnInput:(J,C)=>{let X=X9A(J);if(A&&(J.length>oU1||D.timeoutId||X)){I(({chunks:V,timeoutId:K})=>{return{chunks:[...V,J],timeoutId:F(K)}});return}if(B(J,C),J.length>10)G(!1)},pasteState:D,isPasting:Z}}function Cf2({placeholder:A,value:B,showCursor:Q,focus:D,terminalFocus:I=!0}){let Z=void 0;if(A){if(Z=WA.dim(A),Q&&D&&I)Z=A.length>0?WA.inverse(A[0])+WA.dim(A.slice(1)):WA.inverse(" ")}let G=B.length===0&&Boolean(A);return{renderedPlaceholder:Z,showPlaceholder:G}}function Zw1({inputState:A,children:B,terminalFocus:Q,...D}){let{onInput:I,renderedValue:Z}=A,{wrappedOnInput:G,isPasting:F}=Jf2({onPaste:D.onPaste,onInput:(V,K)=>{if(F&&K.return)return;I(V,K)},onImagePaste:D.onImagePaste}),{onIsPastingChange:Y}=D;s01.default.useEffect(()=>{if(Y)Y(F)},[F,Y]);let{showPlaceholder:W,renderedPlaceholder:J}=Cf2({placeholder:D.placeholder,value:D.value,showCursor:D.showCursor,focus:D.focus,terminalFocus:Q});Z0(G,{isActive:D.focus});let C=D.value&&D.value.trim().indexOf(" ")===-1||D.value&&D.value.endsWith(" "),X=Boolean(D.argumentHint&&D.value&&C&&D.value.startsWith("/"));return s01.default.createElement(g,null,s01.default.createElement(S,{wrap:"truncate-end"},W?J:Z,X&&s01.default.createElement(S,{color:"secondaryText"},D.value?.endsWith(" ")?"":" ",D.argumentHint),B))}var T$=G1(U1(),1);var z9A=!0,$k=new Set;function U9A(A){let B=A.toString();if(B.includes("\x1B[I"))z9A=!0,$k.forEach((Q)=>Q(!0));if(B.includes("\x1B[O"))z9A=!1,$k.forEach((Q)=>Q(!1))}function Xf2(){let A=()=>{if($k.size===0)return;process.stdin.off("data",U9A),process.stdout.write("\x1B[?1004l")};process.on("exit",A)}function Vf2(){let[A,B]=T$.useState(z9A),[Q,D]=T$.useState(!1),I=T$.useCallback((G)=>{B(G),D(!1)},[]);T$.useEffect(()=>{if(!process.stdout.isTTY)return;if($k.add(I),$k.size===1)process.stdout.write("\x1B[?1004h"),process.stdin.on("data",U9A);return()=>{if($k.delete(I),$k.size===0)process.stdin.off("data",U9A),process.stdout.write("\x1B[?1004l")}},[I]),T$.useEffect(()=>{if(!A&&Q)E1("tengu_typing_without_terminal_focus",{})},[A,Q]);let Z=T$.useCallback((G,F)=>{if(G==="\x1B[I"||G==="\x1B[O"||G==="[I"||G==="[O")return"";if((G||F)&&!A)D(!0);return G},[A]);return{isFocused:A||Q,filterFocusSequences:Z}}function u4(A){let[B]=lB(),{isFocused:Q,filterFocusSequences:D}=Vf2(),I=Dw1({value:A.value,onChange:A.onChange,onSubmit:A.onSubmit,onExit:A.onExit,onExitMessage:A.onExitMessage,onMessage:A.onMessage,onHistoryReset:A.onHistoryReset,onHistoryUp:A.onHistoryUp,onHistoryDown:A.onHistoryDown,focus:A.focus,mask:A.mask,multiline:A.multiline,cursorChar:A.showCursor?" ":"",highlightPastedText:A.highlightPastedText,invert:Q?WA.inverse:(Z)=>Z,themeText:MB("text",B),columns:A.columns,onImagePaste:A.onImagePaste,disableCursorMovementForUpDownKeys:A.disableCursorMovementForUpDownKeys,externalOffset:A.cursorOffset,onOffsetChange:A.onChangeCursorOffset,inputFilter:D});return Kf2.default.createElement(Zw1,{inputState:I,terminalFocus:Q,...A})}async function Bp(A){let B=process.env.BROWSER,Q=process.platform,D=B?B:Q==="win32"?"start":Q==="darwin"?"open":"xdg-open";try{let{code:I}=await B2(D,[A]);return I===0}catch(I){return!1}}var u_6=7250;function Qp(A){let B=A;return B=B.replace(/"(sk-ant[^\s"']{24,})"/g,'"[REDACTED_API_KEY]"'),B=B.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g,"[REDACTED_API_KEY]"),B=B.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g,'AWS key: "[REDACTED_AWS_KEY]"'),B=B.replace(/(AKIA[A-Z0-9]{16})/g,"[REDACTED_AWS_KEY]"),B=B.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g,"[REDACTED_GCP_KEY]"),B=B.replace(/(?<![A-Za-z0-9])([a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com)(?![A-Za-z0-9])/g,"[REDACTED_GCP_SERVICE_ACCOUNT]"),B=B.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi,"$1[REDACTED_API_KEY]"),B=B.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi,"$1[REDACTED_TOKEN]"),B=B.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_AWS_VALUE]"),B=B.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_GCP_VALUE]"),B=B.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED]"),B}function Ef2(){return NU0().map((A)=>{let B={...A};if(B&&typeof B.error==="string")B.error=Qp(B.error);return B})}var Hf2="https://github.com/anthropics/claude-code/issues";function Uf2({messages:A,onDone:B}){let[Q,D]=BV.useState("userInput"),[I,Z]=BV.useState(0),[G,F]=BV.useState(""),[Y,W]=BV.useState(null),[J,C]=BV.useState(null),[X,V]=BV.useState({isGit:!1,gitState:null}),[K,E]=BV.useState(null),U=z9().columns-4;BV.useEffect(()=>{async function M(){let T=await Cz(),L=null;if(T)L=await tcA();V({isGit:T,gitState:L})}M()},[]);let q=Q2(),R=BV.useCallback(async()=>{D("submitting"),C(null),W(null);let M=Ef2(),T={message_count:A.length,datetime:new Date().toISOString(),description:G,platform:nA.platform,gitRepo:X.isGit,terminal:nA.terminal,version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,transcript:oY(A),errors:M},[L,P]=await Promise.all([c_6(T),d_6(G)]);if(E(P),L.success){if(L.feedbackId)W(L.feedbackId),E1("tengu_bug_report_submitted",{feedback_id:L.feedbackId});D("done")}else{if(L.isZdrOrg)C("Feedback collection is not available for organizations with custom data retention policies.");else C("Could not submit feedback. Please try again later.");D("done")}},[G,X.isGit,A]);return Z0((M,T)=>{if(Q==="done"){if(T.return&&K){let L=m_6(Y??"",K,G,Ef2());Bp(L)}if(J)B("Error submitting bug report");else B("Bug report submitted");return}if(J){B("Error submitting bug report");return}if(T.escape){B("Bug report cancelled");return}if(Q==="consent"&&(T.return||M===" "))R()}),c0.createElement(c0.Fragment,null,c0.createElement(g,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,paddingBottom:1,gap:1},c0.createElement(S,{bold:!0,color:"permission"},"Submit Bug Report"),Q==="userInput"&&c0.createElement(g,{flexDirection:"column",gap:1},c0.createElement(S,null,"Describe the issue below:"),c0.createElement(u4,{value:G,onChange:F,columns:U,onSubmit:()=>D("consent"),onExitMessage:()=>B("Bug report cancelled"),cursorOffset:I,onChangeCursorOffset:Z}),J&&c0.createElement(g,{flexDirection:"column",gap:1},c0.createElement(S,{color:"error"},J),c0.createElement(S,{dimColor:!0},"Press any key to close"))),Q==="consent"&&c0.createElement(g,{flexDirection:"column"},c0.createElement(S,null,"This report will include:"),c0.createElement(g,{marginLeft:2,flexDirection:"column"},c0.createElement(S,null,"- Your bug description: ",c0.createElement(S,{dimColor:!0},G)),c0.createElement(S,null,"- Environment info:"," ",c0.createElement(S,{dimColor:!0},nA.platform,", ",nA.terminal,", v",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION)),X.gitState&&c0.createElement(S,null,"- Git repo metadata:"," ",c0.createElement(S,{dimColor:!0},X.gitState.branchName,X.gitState.commitHash?`, ${X.gitState.commitHash.slice(0,7)}`:"",X.gitState.remoteUrl?` @ ${X.gitState.remoteUrl}`:"",!X.gitState.isHeadOnRemote&&", not synced",!X.gitState.isClean&&", has local changes")),c0.createElement(S,null,"- Current session transcript")),c0.createElement(g,{marginTop:1},c0.createElement(S,{wrap:"wrap",dimColor:!0},"We will use your feedback to debug related issues or to improve"," ",A2,"'s functionality (eg. to reduce the risk of bugs occurring in the future). Anthropic will not train generative models using feedback from ",A2,".")),c0.createElement(g,{marginTop:1},c0.createElement(S,null,"Press ",c0.createElement(S,{bold:!0},"Enter")," to confirm and submit."))),Q==="submitting"&&c0.createElement(g,{flexDirection:"row",gap:1},c0.createElement(S,null,"Submitting report…")),Q==="done"&&c0.createElement(g,{flexDirection:"column"},J?c0.createElement(S,{color:"error"},J):c0.createElement(S,{color:"success"},"Thank you for your report!"),Y&&c0.createElement(S,{dimColor:!0},"Feedback ID: ",Y),c0.createElement(g,{marginTop:1},c0.createElement(S,null,"Press "),c0.createElement(S,{bold:!0},"Enter "),c0.createElement(S,null,"to also create a GitHub issue, or any other key to close.")))),c0.createElement(g,{marginLeft:1},c0.createElement(S,{dimColor:!0},q.pending?c0.createElement(c0.Fragment,null,"Press ",q.keyName," again to exit"):Q==="userInput"?c0.createElement(c0.Fragment,null,"Enter to continue · Esc to cancel"):Q==="consent"?c0.createElement(c0.Fragment,null,"Enter to submit · Esc to cancel"):null)))}function m_6(A,B,Q,D){let I=Qp(B),Z=Qp(Q),G=encodeURIComponent(`**Bug Description**
2010
2010
  ${Z}
2011
2011
 
2012
2012
  **Environment Info**
2013
2013
  - Platform: ${nA.platform}
2014
2014
  - Terminal: ${nA.terminal}
2015
- - Version: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION||"unknown"}
2015
+ - Version: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION||"unknown"}
2016
2016
  - Feedback ID: ${A}
2017
2017
 
2018
2018
  **Errors**
@@ -2038,7 +2038,7 @@ NEVER proactively create documentation files (*.md) or README files. Only create
2038
2038
  `));else A();return}if(U!==null)return;function y(){let p=P[F];if(!p||!p.onChange)return;if(p.type==="boolean"){p.onChange(!p.value);return}if(p.id==="theme"&&d.return){q("theme");return}if(p.id==="model"&&d.return){q("model");return}if(p.id==="showExternalIncludesDialog"&&d.return){q("externalIncludes");return}if(p.type==="enum"){let o=(p.options.indexOf(p.value)+1)%p.options.length;p.onChange(p.options[o]);return}}if(d.tab||d.return||_===" "){y();return}if(d.upArrow)Y((p)=>Math.max(0,p-1));if(d.downArrow)Y((p)=>Math.min(P.length-1,p+1))}),B9.createElement(B9.Fragment,null,U==="theme"?B9.createElement(Fw1,{initialTheme:Q,onThemeSelect:(_)=>{D(_),q(null)},skipExitHandling:!0}):U==="model"?B9.createElement(Yw1,{initial:J,onSelect:(_)=>{M(_),q(null)}}):U==="externalIncludes"?B9.createElement(Ww1,{onDone:()=>{q(null)}}):B9.createElement(B9.Fragment,null,B9.createElement(g,{flexDirection:"column",borderStyle:"round",borderColor:"secondaryBorder",paddingX:1,marginTop:1},B9.createElement(g,{flexDirection:"column",minHeight:2,marginBottom:1},B9.createElement(S,{bold:!0},"Settings"),B9.createElement(S,{dimColor:!0},"Configure ",A2," preferences")),P.map((_,d)=>{let y=d===F;return B9.createElement(g,{key:_.id,height:2,minHeight:2},B9.createElement(g,{width:44},B9.createElement(S,{color:y?"suggestion":void 0},y?tA.pointer:" "," ",_.label)),B9.createElement(g,null,_.type==="boolean"?B9.createElement(S,{color:y?"suggestion":void 0},_.value.toString()):_.id==="theme"?B9.createElement(S,{color:y?"suggestion":void 0},(()=>{return{dark:"Dark mode",light:"Light mode","dark-daltonized":"Dark mode (colorblind-friendly)","light-daltonized":"Light mode (colorblind-friendly)","dark-ansi":"Dark mode (ANSI colors only)","light-ansi":"Light mode (ANSI colors only)"}[_.value.toString()]||_.value.toString()})()):B9.createElement(S,{color:y?"suggestion":void 0},_.value.toString())))})),B9.createElement(g,{marginLeft:3},B9.createElement(S,{dimColor:!0},W.pending?B9.createElement(B9.Fragment,null,"Press ",W.keyName," again to exit"):B9.createElement(B9.Fragment,null,"↑/↓ to select · Enter/Tab/Space to change · Esc to close")))))}var q9A=G1(U1(),1);var o_6={aliases:["theme"],type:"local-jsx",name:"config",description:"Open config panel",isEnabled:()=>!0,isHidden:!1,async call(A,{options:{mcpClients:B}}){let Q=JX1(B);return q9A.createElement(Tf2,{onClose:A,isConnectedToIde:Q})},userFacingName(){return"config"}},Pf2=o_6;var t_6={type:"local",name:"cost",description:"Show the total cost and duration of the current session",isEnabled:()=>!0,isHidden:!1,async call(){if(NB())return`With your ${F71()} subscription, no need to monitor cost — your subscription includes Claude Code usage`;return Y0A()},userFacingName(){return"cost"}},Sf2=t_6;var yj6=G1(zv2(),1);var Ov2=G1(U1(),1);var P6=G1(U1(),1);import{execFileSync as Rv2}from"child_process";import{homedir as D21}from"os";import{join as Yp}from"path";import{join as B21}from"path";import{execFile as kj6}from"child_process";import{homedir as Ew1}from"os";import{join as j9A}from"path";var Uv2=/^\s*alias\s+claude=/;function Mk(){let A=process.env.ZDOTDIR||Ew1();return{zsh:j9A(A,".zshrc"),bash:j9A(Ew1(),".bashrc"),fish:j9A(Ew1(),".config/fish/config.fish")}}function Zp(A){let B=!1;return{filtered:A.filter((D)=>{if(Uv2.test(D))return B=!0,!1;return!0}),hadAlias:B}}function Rk(A){let B=v1();try{if(!B.existsSync(A))return null;return B.readFileSync(A,{encoding:"utf8"}).split(`
2039
2039
  `)}catch{return null}}function Gp(A,B){v1().writeFileSync(A,B.join(`
2040
2040
  `),{encoding:"utf8",flush:!0})}function y9A(){let A=Mk();for(let B of Object.values(A)){let Q=Rk(B);if(!Q)continue;for(let D of Q)if(Uv2.test(D)){let I=D.match(/alias\s+claude=["']?([^"'\s]+)/);if(I&&I[1])return I[1]}}return null}function wv2(){let A=y9A();if(!A)return null;let B=v1(),Q=A.startsWith("~")?A.replace("~",Ew1()):A;try{if(B.existsSync(Q)){let D=B.statSync(Q);if(D.isFile()||D.isSymbolicLink())return A}}catch{}return null}var aT=B21(x9(),"local"),Nv2=B21(aT,"package.json"),Fp=B21(aT,"claude");function rT(){return(process.argv[1]||"").includes("/.claude/local/node_modules/")}async function k9A(){try{if(!v1().existsSync(aT))v1().mkdirSync(aT);if(!v1().existsSync(Nv2)){let B={name:"claude-local",version:"0.0.1",private:!0};v1().writeFileSync(Nv2,JSON.stringify(B,null,2),{encoding:"utf8",flush:!1})}let A=B21(aT,"claude");if(!v1().existsSync(A)){let B=`#!/bin/bash
2041
- exec "${aT}/node_modules/.bin/claude" "$@"`;v1().writeFileSync(A,B,{encoding:"utf8",flush:!1}),await B2("chmod",["+x",A])}return!0}catch(A){return f1(A instanceof Error?A:new Error(String(A))),!1}}async function Ok(A="latest"){try{if(!await k9A())return"install_failed";let B=await new Promise((D)=>{kj6("npm",["install",`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}@${A}`],{cwd:aT,maxBuffer:1e6},(I,Z,G)=>{if(I)D({stdout:Z||"",stderr:G||"",code:typeof I.code==="number"?I.code:1});else D({stdout:Z,stderr:G,code:0})})});if(B.code!==0)return f1(new Error(`Failed to install Claude CLI package: ${B.stderr}`)),B.code===190?"in_progress":"install_failed";let Q=GA();return x0({...Q,installMethod:"local"}),"success"}catch(B){return f1(B instanceof Error?B:new Error(String(B))),"install_failed"}}function S$(){return v1().existsSync(B21(aT,"node_modules",".bin","claude"))}function x9A(){let A=process.env.SHELL||"";if(A.includes("zsh"))return"zsh";if(A.includes("bash"))return"bash";if(A.includes("fish"))return"fish";return"unknown"}async function qv2(){let A=x9A(),B=Mk(),Q="",D=A in B?B[A]:null,I=`alias claude="${Fp}"`;try{if(D){let Z=Rk(D);if(Z)if(Z.some((F)=>F===I))Q+=`✓ Alias already exists in ${D}
2041
+ exec "${aT}/node_modules/.bin/claude" "$@"`;v1().writeFileSync(A,B,{encoding:"utf8",flush:!1}),await B2("chmod",["+x",A])}return!0}catch(A){return f1(A instanceof Error?A:new Error(String(A))),!1}}async function Ok(A="latest"){try{if(!await k9A())return"install_failed";let B=await new Promise((D)=>{kj6("npm",["install",`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}@${A}`],{cwd:aT,maxBuffer:1e6},(I,Z,G)=>{if(I)D({stdout:Z||"",stderr:G||"",code:typeof I.code==="number"?I.code:1});else D({stdout:Z,stderr:G,code:0})})});if(B.code!==0)return f1(new Error(`Failed to install Claude CLI package: ${B.stderr}`)),B.code===190?"in_progress":"install_failed";let Q=GA();return x0({...Q,installMethod:"local"}),"success"}catch(B){return f1(B instanceof Error?B:new Error(String(B))),"install_failed"}}function S$(){return v1().existsSync(B21(aT,"node_modules",".bin","claude"))}function x9A(){let A=process.env.SHELL||"";if(A.includes("zsh"))return"zsh";if(A.includes("bash"))return"bash";if(A.includes("fish"))return"fish";return"unknown"}async function qv2(){let A=x9A(),B=Mk(),Q="",D=A in B?B[A]:null,I=`alias claude="${Fp}"`;try{if(D){let Z=Rk(D);if(Z)if(Z.some((F)=>F===I))Q+=`✓ Alias already exists in ${D}
2042
2042
 
2043
2043
  `;else{let{filtered:F,hadAlias:Y}=Zp(Z);if(Gp(D,[...F,I,""]),Y)Q+=`✓ Replaced old claude alias in ${D}
2044
2044
  `;else Q+=`✓ Added alias to ${D}
@@ -2069,15 +2069,15 @@ Then run: source ${D}
2069
2069
  `,Q+=` mkdir -p ~/bin
2070
2070
  `,Q+=` ln -sf ${Fp} ~/bin/claude
2071
2071
  `,Q+=` # Make sure ~/bin is in your PATH
2072
- `;return Q}async function $v2(){try{let A=["uninstall","-g","--force",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL],B=await B2("npm",A);if(B.code!==0)return f1(new Error(`Failed to uninstall global version: ${B.stderr}`)),!1;return!0}catch(A){return f1(A instanceof Error?A:new Error(String(A))),!1}}function sT(A,B){E1("tengu_local_install_migration",{result:A,reason:B})}import{join as xj6}from"path";import{constants as fj6}from"fs";var Lv2=G1(Py(),1);async function Mv2(){try{let A=await RK("tengu_version_config",{minVersion:"0.0.0"});if(A.minVersion&&Lv2.lt({ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,A.minVersion))console.error(`
2073
- It looks like your version of Claude Code (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}) needs an update.
2072
+ `;return Q}async function $v2(){try{let A=["uninstall","-g","--force",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL],B=await B2("npm",A);if(B.code!==0)return f1(new Error(`Failed to uninstall global version: ${B.stderr}`)),!1;return!0}catch(A){return f1(A instanceof Error?A:new Error(String(A))),!1}}function sT(A,B){E1("tengu_local_install_migration",{result:A,reason:B})}import{join as xj6}from"path";import{constants as fj6}from"fs";var Lv2=G1(Py(),1);async function Mv2(){try{let A=await RK("tengu_version_config",{minVersion:"0.0.0"});if(A.minVersion&&Lv2.lt({ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,A.minVersion))console.error(`
2073
+ It looks like your version of Claude Code (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}) needs an update.
2074
2074
  A newer version (${A.minVersion} or higher) is required to continue.
2075
2075
 
2076
2076
  To update, please run:
2077
2077
  claude update
2078
2078
 
2079
2079
  This will ensure you have access to the latest features and improvements.
2080
- `),GI(1)}catch(A){f1(A)}}var Tk=xj6(x9(),".update.lock"),vj6=300000;function bj6(){try{if(!v1().existsSync(x9()))v1().mkdirSync(x9());if(v1().existsSync(Tk)){let A=v1().statSync(Tk);if(Date.now()-A.mtimeMs<vj6)return!1;try{v1().unlinkSync(Tk)}catch(Q){return f1(Q),!1}}return v1().writeFileSync(Tk,`${process.pid}`,{encoding:"utf8",flush:!1}),!0}catch(A){return f1(A),!1}}function gj6(){try{if(v1().existsSync(Tk)){if(v1().readFileSync(Tk,{encoding:"utf8"})===`${process.pid}`)v1().unlinkSync(Tk)}}catch(A){f1(A)}}async function hj6(){let A=nA.isRunningWithBun(),B=null;if(A)B=await B2("bun",["pm","bin","-g"]);else B=await B2("npm",["-g","config","get","prefix"]);if(B.code!==0)return f1(new Error(`Failed to check ${A?"bun":"npm"} permissions`)),null;return B.stdout.trim()}async function f9A(){try{let A=await hj6();if(!A)return{hasPermissions:!1,npmPrefix:null};let B=!1;try{v1().accessSync(A,fj6.W_OK),B=!0}catch{B=!1}if(B)return{hasPermissions:!0,npmPrefix:A};return f1(new Error("Insufficient permissions for global npm install.")),{hasPermissions:!1,npmPrefix:A}}catch(A){return f1(A),{hasPermissions:!1,npmPrefix:null}}}async function Hw1(){let A=new AbortController;setTimeout(()=>A.abort(),5000);let B=await B2("npm",["view",`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}@latest`,"version"],{abortSignal:A.signal});if(B.code!==0){if(xA(`npm view failed with code ${B.code}`),B.stderr)xA(`npm stderr: ${B.stderr.trim()}`);else xA("npm stderr: (empty)");if(B.stdout)xA(`npm stdout: ${B.stdout.trim()}`);return null}return B.stdout.trim()}async function Q21(){if(!bj6())return f1(new Error("Another process is currently installing an update")),E1("tengu_auto_updater_lock_contention",{pid:process.pid,currentVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}),"in_progress";try{if(uj6(),!nA.isRunningWithBun()&&nA.isNpmFromWindowsPath())return f1(new Error("Windows NPM detected in WSL environment")),E1("tengu_auto_updater_windows_npm_in_wsl",{currentVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}),console.error(`
2080
+ `),GI(1)}catch(A){f1(A)}}var Tk=xj6(x9(),".update.lock"),vj6=300000;function bj6(){try{if(!v1().existsSync(x9()))v1().mkdirSync(x9());if(v1().existsSync(Tk)){let A=v1().statSync(Tk);if(Date.now()-A.mtimeMs<vj6)return!1;try{v1().unlinkSync(Tk)}catch(Q){return f1(Q),!1}}return v1().writeFileSync(Tk,`${process.pid}`,{encoding:"utf8",flush:!1}),!0}catch(A){return f1(A),!1}}function gj6(){try{if(v1().existsSync(Tk)){if(v1().readFileSync(Tk,{encoding:"utf8"})===`${process.pid}`)v1().unlinkSync(Tk)}}catch(A){f1(A)}}async function hj6(){let A=nA.isRunningWithBun(),B=null;if(A)B=await B2("bun",["pm","bin","-g"]);else B=await B2("npm",["-g","config","get","prefix"]);if(B.code!==0)return f1(new Error(`Failed to check ${A?"bun":"npm"} permissions`)),null;return B.stdout.trim()}async function f9A(){try{let A=await hj6();if(!A)return{hasPermissions:!1,npmPrefix:null};let B=!1;try{v1().accessSync(A,fj6.W_OK),B=!0}catch{B=!1}if(B)return{hasPermissions:!0,npmPrefix:A};return f1(new Error("Insufficient permissions for global npm install.")),{hasPermissions:!1,npmPrefix:A}}catch(A){return f1(A),{hasPermissions:!1,npmPrefix:null}}}async function Hw1(){let A=new AbortController;setTimeout(()=>A.abort(),5000);let B=await B2("npm",["view",`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}@latest`,"version"],{abortSignal:A.signal});if(B.code!==0){if(xA(`npm view failed with code ${B.code}`),B.stderr)xA(`npm stderr: ${B.stderr.trim()}`);else xA("npm stderr: (empty)");if(B.stdout)xA(`npm stdout: ${B.stdout.trim()}`);return null}return B.stdout.trim()}async function Q21(){if(!bj6())return f1(new Error("Another process is currently installing an update")),E1("tengu_auto_updater_lock_contention",{pid:process.pid,currentVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}),"in_progress";try{if(uj6(),!nA.isRunningWithBun()&&nA.isNpmFromWindowsPath())return f1(new Error("Windows NPM detected in WSL environment")),E1("tengu_auto_updater_windows_npm_in_wsl",{currentVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}),console.error(`
2081
2081
  Error: Windows NPM detected in WSL
2082
2082
 
2083
2083
  You're running Claude Code in WSL but using the Windows NPM installation from /mnt/c/.
@@ -2087,12 +2087,12 @@ To fix this issue:
2087
2087
  1. Install Node.js within your Linux distribution: e.g. sudo apt install nodejs npm
2088
2088
  2. Make sure Linux NPM is in your PATH before the Windows version
2089
2089
  3. Try updating again with 'claude update'
2090
- `),"install_failed";let{hasPermissions:A}=await f9A();if(!A)return"no_permissions";let B=nA.isRunningWithBun()?"bun":"npm",Q=await B2(B,["install","-g",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL]);if(Q.code!==0)return f1(new Error(`Failed to install new version of claude: ${Q.stdout} ${Q.stderr}`)),"install_failed";return"success"}finally{gj6()}}function uj6(){let A=Mk();for(let[,B]of Object.entries(A))try{let Q=Rk(B);if(!Q)continue;let{filtered:D,hadAlias:I}=Zp(Q);if(I)Gp(B,D),xA(`Removed claude alias from ${B}`)}catch(Q){cB(`Failed to remove alias from ${B}: ${Q}`)}}async function I21(){let A=process.argv[1]||"";if(A.includes("/build-ant/")||A.includes("/build-external/"))return"development";if(Iz())return"native";if(A.includes("/.local/bin/claude"))return"native";if(rT())return"npm-local";if(["/usr/local/lib/node_modules","/usr/lib/node_modules","/opt/homebrew/lib/node_modules","/opt/homebrew/bin","/usr/local/bin","/.nvm/versions/node/"].some((Q)=>A.includes(Q)))return"npm-global";if(A.includes("/npm/")||A.includes("/nvm/"))return"npm-global";return"unknown"}function mj6(){if(Iz()){try{let B=Rv2("which",["claude"],{encoding:"utf8"}).trim();if(B)return B}catch{}if(v1().existsSync(Yp(D21(),".local/bin/claude")))return Yp(D21(),".local/bin/claude");return"native"}try{return process.argv[0]||"unknown"}catch{return"unknown"}}function dj6(){try{return process.argv[1]||"unknown"}catch{return"unknown"}}function cj6(){let A=[],B=Yp(D21(),".claude","local");if(S$())A.push({type:"npm-local",path:B});try{let Z=Rv2("npm",["-g","config","get","prefix"],{encoding:"utf8"}).trim(),G=Yp(Z,"bin","claude");if(v1().existsSync(G))A.push({type:"npm-global",path:G})}catch{}let Q=v1(),D=Yp(D21(),".local","bin","claude");if(Q.existsSync(D))A.push({type:"native",path:D});if(GA().installMethod==="native"){let Z=Yp(D21(),".local","share","claude");if(Q.existsSync(Z)&&!A.some((G)=>G.type==="native"))A.push({type:"native",path:Z})}return A}function pj6(A){let B=[],Q=GA();if(A==="development")return B;let D=!1;if(A==="npm-local"&&Q.installMethod!=="local")B.push({issue:`Running from local installation but config install method is '${Q.installMethod}'`,fix:"Run claude migrate-installer to fix configuration"});if(A==="native"&&Q.installMethod!=="native")B.push({issue:`Running native installation but config install method is '${Q.installMethod}'`,fix:"Run claude install to update configuration"});if(A==="npm-global"&&S$())B.push({issue:"Local installation exists but not being used",fix:"Consider using local installation: claude migrate-installer"});if(D&&S$()&&A==="npm-global")B.push({issue:"PATH points to global installation but local installation exists",fix:"Consider using local installation: claude migrate-installer"});let I=y9A(),Z=wv2();if(A==="npm-local"&&!D){if(I&&!Z)B.push({issue:"Local installation not accessible via PATH",fix:`Alias exists but points to invalid target: ${I}. Update alias: alias claude="~/.claude/local/claude"`});else if(!I)B.push({issue:"Local installation not accessible via PATH",fix:'Create alias: alias claude="~/.claude/local/claude"'})}return B}async function Wp(){let A=await I21(),B={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION?{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION:"unknown",Q=mj6(),D=dj6(),I=cj6(),Z=pj6(A),G=GA(),F=G.installMethod||"not set",Y=G.autoUpdates!==void 0?G.autoUpdates.toString():"default (true)",W=null;if(A==="npm-global"){if(W=(await f9A()).hasPermissions,!W&&!Fu())Z.push({issue:"Insufficient permissions for auto-updates",fix:["Run: sudo chown -R $USER:$(id -gn) $(npm -g config get prefix)or use `claude migrate-installer` to migrate to local installation"].join(" ")})}return{installationType:A,version:B,installationPath:Q,invokedBinary:D,configInstallMethod:F,configAutoUpdates:Y,hasUpdatePermissions:W,multipleInstallations:I,warnings:Z}}function zw1({onDone:A}){let[B,Q]=P6.useState(null);if(P6.useEffect(()=>{Wp().then((D)=>{Q(D)})},[]),Z0((D,I)=>{if(I.return)A()}),!B)return P6.default.createElement(g,{paddingX:1,paddingTop:1},P6.default.createElement(S,{color:"secondaryText"},"Checking installation status…"));return P6.default.createElement(g,{flexDirection:"column",paddingX:1,paddingTop:1},P6.default.createElement(S,{bold:!0},"Claude CLI Diagnostic"),P6.default.createElement(S,null),P6.default.createElement(S,null,"Currently running: ",B.installationType," (",B.version,")"),P6.default.createElement(S,null,"Path: ",B.installationPath),P6.default.createElement(S,null,"Invoked: ",B.invokedBinary),P6.default.createElement(S,null,"Config install method: ",B.configInstallMethod),P6.default.createElement(S,null,"Auto-updates enabled: ",B.configAutoUpdates),B.hasUpdatePermissions!==null&&P6.default.createElement(S,null,"Update permissions:"," ",B.hasUpdatePermissions?"Yes":"No (requires sudo)"),B.recommendation&&P6.default.createElement(P6.default.Fragment,null,P6.default.createElement(S,null),P6.default.createElement(S,{color:"warning"},"Recommendation: ",B.recommendation.split(`
2090
+ `),"install_failed";let{hasPermissions:A}=await f9A();if(!A)return"no_permissions";let B=nA.isRunningWithBun()?"bun":"npm",Q=await B2(B,["install","-g",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL]);if(Q.code!==0)return f1(new Error(`Failed to install new version of claude: ${Q.stdout} ${Q.stderr}`)),"install_failed";return"success"}finally{gj6()}}function uj6(){let A=Mk();for(let[,B]of Object.entries(A))try{let Q=Rk(B);if(!Q)continue;let{filtered:D,hadAlias:I}=Zp(Q);if(I)Gp(B,D),xA(`Removed claude alias from ${B}`)}catch(Q){cB(`Failed to remove alias from ${B}: ${Q}`)}}async function I21(){let A=process.argv[1]||"";if(A.includes("/build-ant/")||A.includes("/build-external/"))return"development";if(Iz())return"native";if(A.includes("/.local/bin/claude"))return"native";if(rT())return"npm-local";if(["/usr/local/lib/node_modules","/usr/lib/node_modules","/opt/homebrew/lib/node_modules","/opt/homebrew/bin","/usr/local/bin","/.nvm/versions/node/"].some((Q)=>A.includes(Q)))return"npm-global";if(A.includes("/npm/")||A.includes("/nvm/"))return"npm-global";return"unknown"}function mj6(){if(Iz()){try{let B=Rv2("which",["claude"],{encoding:"utf8"}).trim();if(B)return B}catch{}if(v1().existsSync(Yp(D21(),".local/bin/claude")))return Yp(D21(),".local/bin/claude");return"native"}try{return process.argv[0]||"unknown"}catch{return"unknown"}}function dj6(){try{return process.argv[1]||"unknown"}catch{return"unknown"}}function cj6(){let A=[],B=Yp(D21(),".claude","local");if(S$())A.push({type:"npm-local",path:B});try{let Z=Rv2("npm",["-g","config","get","prefix"],{encoding:"utf8"}).trim(),G=Yp(Z,"bin","claude");if(v1().existsSync(G))A.push({type:"npm-global",path:G})}catch{}let Q=v1(),D=Yp(D21(),".local","bin","claude");if(Q.existsSync(D))A.push({type:"native",path:D});if(GA().installMethod==="native"){let Z=Yp(D21(),".local","share","claude");if(Q.existsSync(Z)&&!A.some((G)=>G.type==="native"))A.push({type:"native",path:Z})}return A}function pj6(A){let B=[],Q=GA();if(A==="development")return B;let D=!1;if(A==="npm-local"&&Q.installMethod!=="local")B.push({issue:`Running from local installation but config install method is '${Q.installMethod}'`,fix:"Run claude migrate-installer to fix configuration"});if(A==="native"&&Q.installMethod!=="native")B.push({issue:`Running native installation but config install method is '${Q.installMethod}'`,fix:"Run claude install to update configuration"});if(A==="npm-global"&&S$())B.push({issue:"Local installation exists but not being used",fix:"Consider using local installation: claude migrate-installer"});if(D&&S$()&&A==="npm-global")B.push({issue:"PATH points to global installation but local installation exists",fix:"Consider using local installation: claude migrate-installer"});let I=y9A(),Z=wv2();if(A==="npm-local"&&!D){if(I&&!Z)B.push({issue:"Local installation not accessible via PATH",fix:`Alias exists but points to invalid target: ${I}. Update alias: alias claude="~/.claude/local/claude"`});else if(!I)B.push({issue:"Local installation not accessible via PATH",fix:'Create alias: alias claude="~/.claude/local/claude"'})}return B}async function Wp(){let A=await I21(),B={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION?{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION:"unknown",Q=mj6(),D=dj6(),I=cj6(),Z=pj6(A),G=GA(),F=G.installMethod||"not set",Y=G.autoUpdates!==void 0?G.autoUpdates.toString():"default (true)",W=null;if(A==="npm-global"){if(W=(await f9A()).hasPermissions,!W&&!Fu())Z.push({issue:"Insufficient permissions for auto-updates",fix:["Run: sudo chown -R $USER:$(id -gn) $(npm -g config get prefix)or use `claude migrate-installer` to migrate to local installation"].join(" ")})}return{installationType:A,version:B,installationPath:Q,invokedBinary:D,configInstallMethod:F,configAutoUpdates:Y,hasUpdatePermissions:W,multipleInstallations:I,warnings:Z}}function zw1({onDone:A}){let[B,Q]=P6.useState(null);if(P6.useEffect(()=>{Wp().then((D)=>{Q(D)})},[]),Z0((D,I)=>{if(I.return)A()}),!B)return P6.default.createElement(g,{paddingX:1,paddingTop:1},P6.default.createElement(S,{color:"secondaryText"},"Checking installation status…"));return P6.default.createElement(g,{flexDirection:"column",paddingX:1,paddingTop:1},P6.default.createElement(S,{bold:!0},"Claude CLI Diagnostic"),P6.default.createElement(S,null),P6.default.createElement(S,null,"Currently running: ",B.installationType," (",B.version,")"),P6.default.createElement(S,null,"Path: ",B.installationPath),P6.default.createElement(S,null,"Invoked: ",B.invokedBinary),P6.default.createElement(S,null,"Config install method: ",B.configInstallMethod),P6.default.createElement(S,null,"Auto-updates enabled: ",B.configAutoUpdates),B.hasUpdatePermissions!==null&&P6.default.createElement(S,null,"Update permissions:"," ",B.hasUpdatePermissions?"Yes":"No (requires sudo)"),B.recommendation&&P6.default.createElement(P6.default.Fragment,null,P6.default.createElement(S,null),P6.default.createElement(S,{color:"warning"},"Recommendation: ",B.recommendation.split(`
2091
2091
  `)[0]),P6.default.createElement(S,{color:"secondaryText"},B.recommendation.split(`
2092
2092
  `)[1])),B.multipleInstallations.length>1&&P6.default.createElement(P6.default.Fragment,null,P6.default.createElement(S,null),P6.default.createElement(S,{color:"warning"},"Warning: Multiple installations found"),B.multipleInstallations.map((D,I)=>P6.default.createElement(S,{key:I},"- ",D.type," at ",D.path))),B.warnings.length>0&&P6.default.createElement(P6.default.Fragment,null,P6.default.createElement(S,null),B.warnings.map((D,I)=>P6.default.createElement(g,{key:I,flexDirection:"column"},P6.default.createElement(S,{color:"warning"},"Warning: ",D.issue),P6.default.createElement(S,null,"Fix: ",D.fix)))),P6.default.createElement(S,null),P6.default.createElement(zU,null))}var lj6={name:"doctor",description:"Checks the health of your Claude Code installation",isEnabled:()=>!0,isHidden:!1,userFacingName(){return"doctor"},type:"local-jsx",call(A){let B=Ov2.default.createElement(zw1,{onDone:A});return Promise.resolve(B)}},Tv2=lj6;import{execSync as ij6}from"child_process";async function Pv2(){if(process.env.VISUAL)return process.env.VISUAL;if(process.env.EDITOR)return process.env.EDITOR;if(process.platform==="darwin")return"open -t";else if(process.platform==="win32")return"notepad";else return"nano"}async function Sv2(A){let B=await Pv2();ij6(`${B} "${A}"`,{stdio:"inherit"})}var s6=G1(U1(),1);var t3=G1(U1(),1),jv2=G1(U1(),1);var _v2="Project";function Uw1({onSelect:A,onCancel:B,title:Q,renderDetails:D}){let[I,Z]=jv2.useState(_v2),G=DT2(Y9()),F=[{label:"Project memory",value:"Project",description:`${G?"Checked in at":"Saved in"} ./CLAUDE.md`},...G?[{label:"Project memory (local)",value:"Local",description:"Gitignored in ./CLAUDE.local.md"}]:[],{label:"User memory",value:"User",description:"Saved in ~/.claude/CLAUDE.md"},...[]];return Q2(),Z0((Y,W)=>{if(W.escape)B()}),t3.createElement(g,{flexDirection:"column",borderStyle:"round",borderColor:"remember",padding:1,width:"100%"},t3.createElement(g,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},t3.createElement(S,{color:"remember",bold:!0},Q||"Where should this memory be saved?")),t3.createElement(g,{flexDirection:"column",paddingX:1},t3.createElement(d0,{focusValue:I,options:F,onFocus:(Y)=>Z(Y),onChange:(Y)=>{_v2=Y,A(Y)},onCancel:B})),t3.createElement(g,{marginTop:1,flexDirection:"column"},D?D(I):t3.createElement(nj6,{type:I})))}function nj6({type:A}){return t3.createElement(t3.Fragment,null,A==="Project"&&t3.createElement(S,{dimColor:!0},"Example project memory: “Run lint with the following command after major edits: npm run lint”"),A==="Local"&&t3.createElement(S,{dimColor:!0},"Example local memory: “Use my sandbox URL for testing: https://myapp.local”"),A==="User"&&t3.createElement(S,{dimColor:!0},"Example user memory: “Don't add new comments when editing code”"),A==="ExperimentalUltraClaudeMd"&&!1)}var OE=G1(U1(),1);function ww1({context:A}={}){let B=$Z(),Q=[];if(A?.readFileState)Object.entries(A.readFileState).forEach(([Z,G])=>{if(Z.endsWith("/CLAUDE.md")&&!B.some((F)=>F.path===Z))Q.push({path:Z,content:G.content,type:"Project",isNested:!0})});let D=[...B,...Q];if(D.length===0)return null;let I=new Map;return OE.createElement(g,{flexDirection:"column"},D.map((Z,G)=>{let F=g51(Z.path),Y=Z.isNested?"nested: ":`${lA1(Z.type)}: `,W=Z.parent?(I.get(Z.parent)??0)+1:0;if(I.set(Z.path,W),W===0)return OE.createElement(S,{key:G},OE.createElement(S,{color:"secondaryText"}," L "),`${Y}${F}`);else{let J=" ".repeat(W-1);return OE.createElement(S,{key:G}," ".repeat(Y.length+2),J,OE.createElement(S,{color:"secondaryText"}," L "),F)}}))}var aj6={type:"local-jsx",name:"memory",description:"Edit Claude memory files",isEnabled:()=>!0,isHidden:!1,async call(A,B){return s6.createElement(g,{flexDirection:"column"},s6.createElement(g,{flexDirection:"column",marginTop:1,marginBottom:1},s6.createElement(S,{bold:!0},"Memory Files"),s6.createElement(ww1,{context:B}),s6.createElement(g,{marginTop:1},s6.createElement(S,{dimColor:!0},"Learn more:"," ",s6.createElement(n3,{url:"https://docs.anthropic.com/en/docs/claude-code/memory"})))),s6.createElement(Uw1,{title:"Select memory to edit:",onSelect:async(I)=>{try{let Z=HE(I),G=I==="User"?x9():lA();if(!v1().existsSync(G))v1().mkdirSync(G);if(!v1().existsSync(Z)){if(v1().writeFileSync(Z,"",{encoding:"utf8",flush:!0}),I==="Local")await Tz1(Z)}await Sv2(Z);let F="default",Y="";if(process.env.VISUAL)F="$VISUAL",Y=process.env.VISUAL;else if(process.env.EDITOR)F="$EDITOR",Y=process.env.EDITOR;let W=F!=="default"?`Using ${F}="${Y}".`:"",J=W?`> ${W} To change editor, set $EDITOR or $VISUAL environment variable.`:"> To use a different editor, set the $EDITOR or $VISUAL environment variable.";A(`Opened ${wz1(I).toLowerCase()} at ${Oz1(Z)}
2093
2093
 
2094
2094
  ${J}`)}catch(Z){f1(Z instanceof Error?Z:new Error(String(Z))),A(`Error opening memory file: ${Z}`)}},onCancel:()=>{A("Cancelled memory editing")},renderDetails:(I)=>s6.createElement(rj6,{memoryType:I})}))},userFacingName(){return this.name}};function rj6({memoryType:A}){let B=HE(A);if(!v1().existsSync(B)){let F={User:"~/.claude/CLAUDE.md",Project:"./CLAUDE.md",Local:"./CLAUDE.local.md + add to .gitignore"}[A];return s6.createElement(s6.Fragment,null,s6.createElement(S,{dimColor:!0},"Memory file does not exist yet. [Enter] to create ",F,"."))}let Z=A01(B).split(`
2095
- `).filter((G)=>G.trim().startsWith("-")||G.trim().startsWith("*")||/^\s*\d+\./.test(G.trim())).length;return s6.createElement(s6.Fragment,null,s6.createElement(S,{color:"remember"},Z," ",Z===1?"memory":"memories"," in"," ",Oz1(B)))}var yv2=aj6;var w2=G1(U1(),1);function kv2({commands:A,onClose:B}){let Q=`Learn more at: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.README_URL}`,D=A.filter((F)=>!F.isHidden).sort((F,Y)=>F.name.localeCompare(Y.name)),[I,Z]=w2.useState(0);w2.useEffect(()=>{let F=setTimeout(()=>{if(I<3)Z(I+1)},250);return()=>clearTimeout(F)},[I]),Z0((F,Y)=>{if(Y.return||Y.escape)B()});let G=Q2(B);return w2.createElement(g,{flexDirection:"column",padding:1},w2.createElement(S,{bold:!0,color:"claude"},`${A2} v${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}`),w2.createElement(g,{marginTop:1,flexDirection:"column"},w2.createElement(S,null,"Always review Claude's responses, especially when running code. Claude has read access to files in the current directory and can run commands and edit files with your permission.")),I>=1&&w2.createElement(g,{flexDirection:"column",marginTop:1},w2.createElement(S,{bold:!0},"Usage Modes:"),w2.createElement(S,null,"• REPL: ",w2.createElement(S,{bold:!0},"claude")," (interactive session)"),w2.createElement(S,null,"• Non-interactive: ",w2.createElement(S,{bold:!0},'claude -p "question"')),w2.createElement(g,{marginTop:1},w2.createElement(S,null,"Run ",w2.createElement(S,{bold:!0},"claude -h")," for all command line options"))),I>=2&&w2.createElement(g,{marginTop:1,flexDirection:"column"},w2.createElement(S,{bold:!0},"Common Tasks:"),w2.createElement(S,null,"• Ask questions about your codebase"," ",w2.createElement(S,{color:"secondaryText"},"> How does foo.py work?")),w2.createElement(S,null,"• Edit files"," ",w2.createElement(S,{color:"secondaryText"},"> Update bar.ts to...")),w2.createElement(S,null,"• Fix errors ",w2.createElement(S,{color:"secondaryText"},"> cargo build")),w2.createElement(S,null,"• Run commands ",w2.createElement(S,{color:"secondaryText"},"> /help")),w2.createElement(S,null,"• Run bash commands ",w2.createElement(S,{color:"secondaryText"},"> !ls"))),I>=3&&w2.createElement(g,{marginTop:1,flexDirection:"column"},w2.createElement(S,{bold:!0},"Interactive Mode Commands:"),w2.createElement(g,{flexDirection:"column"},D.map((F,Y)=>w2.createElement(g,{key:Y,marginLeft:1},w2.createElement(S,null,w2.createElement(S,{bold:!0},`/${F.name}`),` - ${F.description}`))))),w2.createElement(g,{marginTop:1},w2.createElement(S,{color:"secondaryText"},Q)),w2.createElement(g,{marginTop:2},G.pending?w2.createElement(S,{dimColor:!0},"Press ",G.keyName," again to exit"):w2.createElement(zU,null)))}var v9A=G1(U1(),1),sj6={type:"local-jsx",name:"help",description:"Show help and available commands",isEnabled:()=>!0,isHidden:!1,async call(A,{options:{commands:B}}){return v9A.createElement(kv2,{commands:B,onClose:A})},userFacingName(){return"help"}},xv2=sj6;var F3=G1(U1(),1);function oj6({availableIDEs:A,unavailableIDEs:B,selectedIDE:Q,onClose:D,onSelect:I}){let Z=Q2(),[G,F]=F3.useState(Q?.port?.toString()??"None"),Y=F3.useCallback((J)=>{I(A.find((C)=>C.port===parseInt(J)))},[A,I]),W=A.map((J)=>({label:`${J.name}`,value:J.port.toString()})).concat([{label:"None",value:"None"}]);return Z0((J,C)=>{if(C.escape)D()}),F3.default.createElement(g,{marginTop:1,flexDirection:"column"},F3.default.createElement(g,{flexDirection:"column",borderStyle:"round",borderColor:"remember",paddingX:2,paddingY:1,width:"100%"},F3.default.createElement(g,{flexDirection:"column"},F3.default.createElement(S,{color:"remember",bold:!0},"Select IDE"),F3.default.createElement(S,{dimColor:!0},"Connect to an IDE for integrated development features."),A.length===0&&F3.default.createElement(g,{marginTop:1},F3.default.createElement(S,{dimColor:!0},wG?`No available IDEs detected. Please install the plugin and restart your IDE:
2095
+ `).filter((G)=>G.trim().startsWith("-")||G.trim().startsWith("*")||/^\s*\d+\./.test(G.trim())).length;return s6.createElement(s6.Fragment,null,s6.createElement(S,{color:"remember"},Z," ",Z===1?"memory":"memories"," in"," ",Oz1(B)))}var yv2=aj6;var w2=G1(U1(),1);function kv2({commands:A,onClose:B}){let Q=`Learn more at: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.README_URL}`,D=A.filter((F)=>!F.isHidden).sort((F,Y)=>F.name.localeCompare(Y.name)),[I,Z]=w2.useState(0);w2.useEffect(()=>{let F=setTimeout(()=>{if(I<3)Z(I+1)},250);return()=>clearTimeout(F)},[I]),Z0((F,Y)=>{if(Y.return||Y.escape)B()});let G=Q2(B);return w2.createElement(g,{flexDirection:"column",padding:1},w2.createElement(S,{bold:!0,color:"claude"},`${A2} v${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}`),w2.createElement(g,{marginTop:1,flexDirection:"column"},w2.createElement(S,null,"Always review Claude's responses, especially when running code. Claude has read access to files in the current directory and can run commands and edit files with your permission.")),I>=1&&w2.createElement(g,{flexDirection:"column",marginTop:1},w2.createElement(S,{bold:!0},"Usage Modes:"),w2.createElement(S,null,"• REPL: ",w2.createElement(S,{bold:!0},"claude")," (interactive session)"),w2.createElement(S,null,"• Non-interactive: ",w2.createElement(S,{bold:!0},'claude -p "question"')),w2.createElement(g,{marginTop:1},w2.createElement(S,null,"Run ",w2.createElement(S,{bold:!0},"claude -h")," for all command line options"))),I>=2&&w2.createElement(g,{marginTop:1,flexDirection:"column"},w2.createElement(S,{bold:!0},"Common Tasks:"),w2.createElement(S,null,"• Ask questions about your codebase"," ",w2.createElement(S,{color:"secondaryText"},"> How does foo.py work?")),w2.createElement(S,null,"• Edit files"," ",w2.createElement(S,{color:"secondaryText"},"> Update bar.ts to...")),w2.createElement(S,null,"• Fix errors ",w2.createElement(S,{color:"secondaryText"},"> cargo build")),w2.createElement(S,null,"• Run commands ",w2.createElement(S,{color:"secondaryText"},"> /help")),w2.createElement(S,null,"• Run bash commands ",w2.createElement(S,{color:"secondaryText"},"> !ls"))),I>=3&&w2.createElement(g,{marginTop:1,flexDirection:"column"},w2.createElement(S,{bold:!0},"Interactive Mode Commands:"),w2.createElement(g,{flexDirection:"column"},D.map((F,Y)=>w2.createElement(g,{key:Y,marginLeft:1},w2.createElement(S,null,w2.createElement(S,{bold:!0},`/${F.name}`),` - ${F.description}`))))),w2.createElement(g,{marginTop:1},w2.createElement(S,{color:"secondaryText"},Q)),w2.createElement(g,{marginTop:2},G.pending?w2.createElement(S,{dimColor:!0},"Press ",G.keyName," again to exit"):w2.createElement(zU,null)))}var v9A=G1(U1(),1),sj6={type:"local-jsx",name:"help",description:"Show help and available commands",isEnabled:()=>!0,isHidden:!1,async call(A,{options:{commands:B}}){return v9A.createElement(kv2,{commands:B,onClose:A})},userFacingName(){return"help"}},xv2=sj6;var F3=G1(U1(),1);function oj6({availableIDEs:A,unavailableIDEs:B,selectedIDE:Q,onClose:D,onSelect:I}){let Z=Q2(),[G,F]=F3.useState(Q?.port?.toString()??"None"),Y=F3.useCallback((J)=>{I(A.find((C)=>C.port===parseInt(J)))},[A,I]),W=A.map((J)=>({label:`${J.name}`,value:J.port.toString()})).concat([{label:"None",value:"None"}]);return Z0((J,C)=>{if(C.escape)D()}),F3.default.createElement(g,{marginTop:1,flexDirection:"column"},F3.default.createElement(g,{flexDirection:"column",borderStyle:"round",borderColor:"remember",paddingX:2,paddingY:1,width:"100%"},F3.default.createElement(g,{flexDirection:"column"},F3.default.createElement(S,{color:"remember",bold:!0},"Select IDE"),F3.default.createElement(S,{dimColor:!0},"Connect to an IDE for integrated development features."),A.length===0&&F3.default.createElement(g,{marginTop:1},F3.default.createElement(S,{dimColor:!0},wG?`No available IDEs detected. Please install the plugin and restart your IDE:
2096
2096
  https://docs.anthropic.com/s/claude-code-jetbrains`:"No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running."))),A.length!==0&&F3.default.createElement(g,{flexDirection:"column",paddingX:1,marginTop:1},F3.default.createElement(d0,{defaultValue:G,focusValue:G,options:W,onFocus:(J)=>F(J),onChange:(J)=>{F(J),Y(J)},onCancel:()=>D()})),A.length!==0&&!qJ()&&F3.default.createElement(g,{marginTop:1},F3.default.createElement(S,{dimColor:!0},"\uD83D\uDCA1 Tip: You can enable auto-connect to IDE in /config or with the --ide flag")),B.length>0&&F3.default.createElement(g,{marginTop:1,flexDirection:"column"},F3.default.createElement(S,{dimColor:!0},"Found ",B.length," other running IDE(s). However, their workspace/project directories do not match the current cwd."),F3.default.createElement(g,{marginTop:1,flexDirection:"column"},B.map((J,C)=>F3.default.createElement(g,{key:C,paddingLeft:3},F3.default.createElement(S,{dimColor:!0},"• ",J.name,": ",J.workspaceFolders.join(", "))))))),F3.default.createElement(g,{paddingX:1},F3.default.createElement(S,{dimColor:!0},Z.pending?F3.default.createElement(F3.default.Fragment,null,"Press ",Z.keyName," again to exit"):F3.default.createElement(F3.default.Fragment,null,A.length!==0&&"Enter to confirm · ","Esc to exit"))))}async function tj6(A,B){let Q=B?.ide;if(!Q||Q.type!=="sse-ide"&&Q.type!=="ws-ide")return null;for(let D of A)if(D.url===Q.url)return D;return null}var ej6={type:"local-jsx",name:"ide",description:"Manage IDE integrations and show status",isEnabled:()=>!0,isHidden:!1,argumentHint:"[open]",async call(A,B,Q){E1("tengu_ext_ide_command",{});let{options:{dynamicMcpConfig:D},onChangeDynamicMcpConfig:I}=B,Z=await ae(!0),G=Z.filter((J)=>J.isValid),F=Z.filter((J)=>!J.isValid),Y=await tj6(G,D);return F3.default.createElement(oj6,{availableIDEs:G,unavailableIDEs:F,selectedIDE:Y,onClose:()=>A(),onSelect:async(J)=>{try{if(!I){A("Error connecting to IDE.");return}let C={...D||{}};if(Y)delete C.ide;if(!J)A(Y?`Disconnected from ${Y.name}.`:"No IDE selected.");else{let X=J.url;C.ide={type:X.startsWith("ws:")?"ws-ide":"sse-ide",url:X,ideName:J.name,authToken:J.authToken,ideRunningInWindows:J.ideRunningInWindows,scope:"dynamic"},A(`Connected to ${J.name}.`)}I(C)}catch(C){A("Error connecting to IDE.")}}})},userFacingName(){return"ide"}},fv2=ej6;var Ay6={type:"prompt",name:"init",description:"Initialize a new CLAUDE.md file with codebase documentation",isEnabled:()=>!0,isHidden:!1,progressMessage:"analyzing your codebase",userFacingName(){return"init"},async getPromptForCommand(){return tc(),[{type:"text",text:`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.
2097
2097
 
2098
2098
  What to add:
@@ -2324,8 +2324,8 @@ Need help? Common issues:
2324
2324
  `).some((y)=>{return/^ANTHROPIC_API_KEY\s+/.test(y)}))D((y)=>({...y,secretExists:!0,step:"check-existing-secret"}));else if(B)D((y)=>({...y,apiKeyOrOAuthToken:B,useExistingKey:!0})),await Z(B,Q.secretName);else D((y)=>({...y,step:"api-key"}));else if(B)D((_)=>({..._,apiKeyOrOAuthToken:B,useExistingKey:!0})),await Z(B,Q.secretName);else D((_)=>({..._,step:"api-key"}))}let J=async()=>{if(Q.step==="warnings")D((P)=>({...P,step:"install-app"})),setTimeout(()=>{G()},0);else if(Q.step==="choose-repo"){let P=Q.useCurrentRepo?Q.currentRepo:Q.selectedRepoName;if(!P.trim())return;let _=[];if(P.includes("github.com")){let p=P.match(/github\.com[:/]([^/]+\/[^/]+)(\.git)?$/);if(!p)_.push({title:"Invalid GitHub URL format",message:"The repository URL format appears to be invalid.",instructions:["Use format: owner/repo or https://github.com/owner/repo","Example: anthropics/claude-cli"]});else P=p[1]?.replace(/\.git$/,"")||""}if(!P.includes("/"))_.push({title:"Repository format warning",message:'Repository should be in format "owner/repo"',instructions:["Use format: owner/repo","Example: anthropics/claude-cli"]});let d=await F(P);if(d.error==="repository_not_found")_.push({title:"Repository not found",message:`Repository ${P} was not found or you don't have access.`,instructions:[`Check that the repository name is correct: ${P}`,"Ensure you have access to this repository",'For private repositories, make sure your GitHub token has the "repo" scope',"You can add the repo scope with: gh auth refresh -h github.com -s repo,workflow"]});else if(!d.hasAccess)_.push({title:"Admin permissions required",message:`You might need admin permissions on ${P} to set up GitHub Actions.`,instructions:["Repository admins can install GitHub Apps and set secrets","Ask a repository admin to run this command if setup fails","Alternatively, you can use the manual setup instructions"]});let y=await Y(P);if(_.length>0){let p=[...Q.warnings,..._];D((m)=>({...m,selectedRepoName:P,workflowExists:y,warnings:p,step:"warnings"}))}else D((p)=>({...p,selectedRepoName:P,workflowExists:y,step:"install-app"})),setTimeout(()=>{G()},0)}else if(Q.step==="install-app")if(Q.workflowExists)D((P)=>({...P,step:"check-existing-workflow"}));else D((P)=>({...P,step:"select-workflows"}));else if(Q.step==="check-existing-workflow")return;else if(Q.step==="select-workflows")return;else if(Q.step==="check-existing-secret")if(Q.useExistingSecret)await Z(null,Q.secretName);else await Z(Q.apiKeyOrOAuthToken,Q.secretName);else if(Q.step==="api-key"){if(Q.selectedApiKeyOption==="oauth")return;let P=Q.selectedApiKeyOption==="existing"?B:Q.apiKeyOrOAuthToken;if(!P){E1("tengu_install_github_app_error",{reason:"api_key_missing"}),D((d)=>({...d,step:"error",error:"API key is required"}));return}D((d)=>({...d,apiKeyOrOAuthToken:P,useExistingKey:Q.selectedApiKeyOption==="existing"}));let _=await B2("gh",["secret","list","--app","actions","--repo",Q.selectedRepoName]);if(_.code===0)if(_.stdout.split(`
2325
2325
  `).some((p)=>{return/^ANTHROPIC_API_KEY\s+/.test(p)}))D((p)=>({...p,secretExists:!0,step:"check-existing-secret"}));else await Z(P,Q.secretName);else await Z(P,Q.secretName)}},C=(P)=>{D((_)=>({..._,selectedRepoName:P}))},X=(P)=>{D((_)=>({..._,apiKeyOrOAuthToken:P}))},V=(P)=>{D((_)=>({..._,selectedApiKeyOption:P}))},K=H8.useCallback(()=>{D((P)=>({...P,step:"oauth-flow"}))},[]),E=H8.useCallback((P)=>{D((_)=>({..._,apiKeyOrOAuthToken:P,useExistingKey:!1,secretName:"CLAUDE_CODE_OAUTH_TOKEN",authType:"oauth_token"})),Z(P,"CLAUDE_CODE_OAUTH_TOKEN")},[Z]),U=H8.useCallback(()=>{D((P)=>({...P,step:"api-key"}))},[]),q=(P)=>{if(P&&!/^[a-zA-Z0-9_]+$/.test(P))return;D((_)=>({..._,secretName:P}))},R=(P)=>{D((_)=>({..._,useCurrentRepo:P,selectedRepoName:P?_.currentRepo:""}))},M=(P)=>{D((_)=>({..._,useExistingKey:P}))},T=(P)=>{D((_)=>({..._,useExistingSecret:P,secretName:P?"ANTHROPIC_API_KEY":""}))},L=async(P)=>{if(P==="exit"){A.onDone("Installation cancelled by user");return}if(D((_)=>({..._,workflowAction:P})),P==="skip"||P==="update")if(B)await W();else D((_)=>({..._,step:"api-key"}))};switch(Z0(()=>{if(Q.step==="success"||Q.step==="error"){if(Q.step==="success")E1("tengu_install_github_app_completed",{});A.onDone(Q.step==="success"?"GitHub Actions setup complete!":Q.error?`Couldn't install GitHub App: ${Q.error}
2326
2326
  For manual setup instructions, see: https://github.com/anthropics/claude-code-action/#manual-setup-direct-api`:`GitHub App installation failed
2327
- For manual setup instructions, see: https://github.com/anthropics/claude-code-action/#manual-setup-direct-api`)}}),Q.step){case"check-gh":return H8.default.createElement(ev2,null);case"warnings":return H8.default.createElement(Yb2,{warnings:Q.warnings,onContinue:J});case"choose-repo":return H8.default.createElement(Ab2,{currentRepo:Q.currentRepo,useCurrentRepo:Q.useCurrentRepo,repoUrl:Q.selectedRepoName,onRepoUrlChange:C,onToggleUseCurrentRepo:R,onSubmit:J});case"install-app":return H8.default.createElement(Bb2,{repoUrl:Q.selectedRepoName,onSubmit:J});case"check-existing-workflow":return H8.default.createElement(Fb2,{repoName:Q.selectedRepoName,onSelectAction:L});case"check-existing-secret":return H8.default.createElement(Qb2,{useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,onToggleUseExistingSecret:T,onSecretNameChange:q,onSubmit:J});case"api-key":return H8.default.createElement(Db2,{existingApiKey:B,useExistingKey:Q.useExistingKey,apiKeyOrOAuthToken:Q.apiKeyOrOAuthToken,onApiKeyChange:X,onToggleUseExistingKey:M,onSubmit:J,onCreateOAuthToken:mC()?K:void 0,selectedOption:Q.selectedApiKeyOption,onSelectOption:V});case"creating":return H8.default.createElement(Ib2,{currentWorkflowInstallStep:Q.currentWorkflowInstallStep,secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip",selectedWorkflows:Q.selectedWorkflows});case"success":return H8.default.createElement(Zb2,{secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip"});case"error":return H8.default.createElement(Gb2,{error:Q.error,errorReason:Q.errorReason,errorInstructions:Q.errorInstructions});case"select-workflows":return H8.default.createElement(Wb2,{defaultSelections:Q.selectedWorkflows,onSubmit:(P)=>{if(D((_)=>({..._,selectedWorkflows:P})),B)W();else D((_)=>({..._,step:"api-key"}))}});case"oauth-flow":return H8.default.createElement(Eb2,{onSuccess:E,onCancel:U})}}var Vy6={type:"local-jsx",name:"install-github-app",description:"Set up Claude GitHub Actions for a repository",isEnabled:()=>!eb(),isHidden:!1,async call(A){return H8.default.createElement(Xy6,{onDone:A})},userFacingName(){return"install-github-app"}},Hb2=Vy6;var zb2=G1(U1(),1);var s2=G1(U1(),1);function Kp({onPress:A}){return Z0((B,Q)=>{if(Q.return)A();else if(Q.escape)GI(1)}),s2.default.createElement(S,null,"Press ",s2.default.createElement(S,{bold:!0},"Enter")," to continue or ",s2.default.createElement(S,{bold:!0},"Esc")," to exit")}function Ep(){let[A,B]=s2.useState("intro"),[Q,D]=s2.useState(""),[I,Z]=s2.useState("");if(Q2(()=>{sT("canceled","user_exit"),GI(1)}),s2.useEffect(()=>{sT("start")},[]),s2.useEffect(()=>{let G=async()=>{try{if(!k9A())D("Local package creation failed"),B("error"),sT("failure","environement_setup");switch(await Ok()){case"success":{B("success"),sT("success");break}case"in_progress":D("Update already in progress"),B("error"),sT("failure","in_progress");break;case"install_failed":D(`Install of ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL} failed`),B("error"),sT("failure","other_failure");break}}catch(W){D(String(W)),B("error"),sT("failure","unexpected_error")}},F=async()=>{try{let W=await qv2();Z(W),B("setup")}catch(W){D(String(W)),B("error")}},Y=async()=>{try{if(await $v2())B("uninstall-success");else B("uninstall-failed")}catch(W){D(String(W)),B("uninstall-failed")}};switch(A){case"installing":G();break;case"setup-alias":F();break;case"uninstall":Y();break;default:break}},[A]),A==="intro")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},A2," Local Installer"),s2.default.createElement(g,{flexDirection:"column"},s2.default.createElement(S,{color:"secondaryText"},`This will install ${A2} to ~/.claude/local`),s2.default.createElement(S,{color:"secondaryText"},"instead of using a global npm installation.")),s2.default.createElement(Kp,{onPress:()=>B("installing")}));if(A==="installing")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Installing ",A2," locally..."),s2.default.createElement(g,{marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Installing to ",Fp)));if(A==="success")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"success"},"✓ Local installation successful!"),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"Next, let's add an alias for `claude`")),s2.default.createElement(Kp,{onPress:()=>B("setup-alias")}));if(A==="setup-alias")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Setting up alias for claude..."),s2.default.createElement(g,{marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Configuring shell environment")));if(A==="setup")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Alias setup complete"),s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,null,I),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"Next, we'll remove the globally installed npm package"))),s2.default.createElement(Kp,{onPress:()=>B("uninstall")}));if(A==="uninstall")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Uninstalling global ",A2,"..."),s2.default.createElement(g,{marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Removing global npm installation")));if(A==="uninstall-success")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"success"},"✓ Global installation removed successfully!"),s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,null,A2," is now installed locally."),s2.default.createElement(S,null,"Please restart your shell, then run"," ",s2.default.createElement(S,{color:"claude"},WA.bold("claude")),"."),s2.default.createElement(g,{flexDirection:"row",marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Happy Clauding!"))),s2.default.createElement(Kp,{onPress:()=>GI(0)}));if(A==="uninstall-failed")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"warning"},"! Could not remove global installation"),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"The local installation is installed, but we couldn't remove the global npm package automatically.")),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"You can remove it manually later with:",`
2328
- `,WA.bold(`npm uninstall -g --force ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}`))),s2.default.createElement(Kp,{onPress:()=>GI(0)}));return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"error"},"✗ Installation failed"),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,Q||"An unexpected error occurred during installation.")),s2.default.createElement(Kp,{onPress:()=>GI(1)}))}var Ky6={type:"local",name:"migrate-installer",description:"Migrate from global npm installation to local installation",isEnabled:()=>!rT(),isHidden:!1,async call(){let{waitUntilExit:A}=F4(zb2.default.createElement(Ep,null));return await A(),""},userFacingName(){return"migrate-installer"}},Ub2=Ky6;var wb2=G1(U1(),1);var DV=G1(U1(),1);var CW=G1(U1(),1);function r9A({servers:A,onSelectServer:B,onComplete:Q}){let[D]=lB(),I=Q2();if(A.length===0)return null;let Z=D81(),G=A.some((Y)=>Y.client.type==="failed"),F=A.map((Y)=>{let W="",J="",C="";if(Y.client.type==="connected")J=MB("success",D)(tA.tick),W="connected · Enter to view details",C=`${J} ${W}`;else if(Y.client.type==="pending")J=MB("secondaryText",D)(tA.radioOff),W="connecting...",C=`${J} ${W}`;else if(Y.client.type==="needs-auth")J=MB("warning",D)(tA.triangleUpOutline),W="disconnected · Enter to login",C=`${J} ${W}`;else if(Y.client.type==="failed")J=MB("error",D)(tA.cross),W="failed · Enter to view details",C=`${J} ${W}`;else J=MB("error",D)(tA.cross),W="failed",C=`${J} ${W}`;return{label:WA.bold(Y.name),value:Y.name,description:C,dimDescription:!1}});return CW.default.createElement(g,{flexDirection:"column"},CW.default.createElement(g,{flexDirection:"column",paddingX:1,borderStyle:"round",borderColor:"secondaryBorder"},CW.default.createElement(g,{marginBottom:1},CW.default.createElement(S,{bold:!0},"Manage MCP servers")),CW.default.createElement(d0,{options:F,onChange:(Y)=>{let W=A.find((J)=>J.name===Y);if(W)B(W)},onCancel:()=>Q()}),G&&CW.default.createElement(g,{marginTop:1},CW.default.createElement(S,{dimColor:!0},"※ Tip:"," ",Z?`Error logs will be shown inline. Log files are also saved in
2327
+ For manual setup instructions, see: https://github.com/anthropics/claude-code-action/#manual-setup-direct-api`)}}),Q.step){case"check-gh":return H8.default.createElement(ev2,null);case"warnings":return H8.default.createElement(Yb2,{warnings:Q.warnings,onContinue:J});case"choose-repo":return H8.default.createElement(Ab2,{currentRepo:Q.currentRepo,useCurrentRepo:Q.useCurrentRepo,repoUrl:Q.selectedRepoName,onRepoUrlChange:C,onToggleUseCurrentRepo:R,onSubmit:J});case"install-app":return H8.default.createElement(Bb2,{repoUrl:Q.selectedRepoName,onSubmit:J});case"check-existing-workflow":return H8.default.createElement(Fb2,{repoName:Q.selectedRepoName,onSelectAction:L});case"check-existing-secret":return H8.default.createElement(Qb2,{useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,onToggleUseExistingSecret:T,onSecretNameChange:q,onSubmit:J});case"api-key":return H8.default.createElement(Db2,{existingApiKey:B,useExistingKey:Q.useExistingKey,apiKeyOrOAuthToken:Q.apiKeyOrOAuthToken,onApiKeyChange:X,onToggleUseExistingKey:M,onSubmit:J,onCreateOAuthToken:mC()?K:void 0,selectedOption:Q.selectedApiKeyOption,onSelectOption:V});case"creating":return H8.default.createElement(Ib2,{currentWorkflowInstallStep:Q.currentWorkflowInstallStep,secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip",selectedWorkflows:Q.selectedWorkflows});case"success":return H8.default.createElement(Zb2,{secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip"});case"error":return H8.default.createElement(Gb2,{error:Q.error,errorReason:Q.errorReason,errorInstructions:Q.errorInstructions});case"select-workflows":return H8.default.createElement(Wb2,{defaultSelections:Q.selectedWorkflows,onSubmit:(P)=>{if(D((_)=>({..._,selectedWorkflows:P})),B)W();else D((_)=>({..._,step:"api-key"}))}});case"oauth-flow":return H8.default.createElement(Eb2,{onSuccess:E,onCancel:U})}}var Vy6={type:"local-jsx",name:"install-github-app",description:"Set up Claude GitHub Actions for a repository",isEnabled:()=>!eb(),isHidden:!1,async call(A){return H8.default.createElement(Xy6,{onDone:A})},userFacingName(){return"install-github-app"}},Hb2=Vy6;var zb2=G1(U1(),1);var s2=G1(U1(),1);function Kp({onPress:A}){return Z0((B,Q)=>{if(Q.return)A();else if(Q.escape)GI(1)}),s2.default.createElement(S,null,"Press ",s2.default.createElement(S,{bold:!0},"Enter")," to continue or ",s2.default.createElement(S,{bold:!0},"Esc")," to exit")}function Ep(){let[A,B]=s2.useState("intro"),[Q,D]=s2.useState(""),[I,Z]=s2.useState("");if(Q2(()=>{sT("canceled","user_exit"),GI(1)}),s2.useEffect(()=>{sT("start")},[]),s2.useEffect(()=>{let G=async()=>{try{if(!k9A())D("Local package creation failed"),B("error"),sT("failure","environement_setup");switch(await Ok()){case"success":{B("success"),sT("success");break}case"in_progress":D("Update already in progress"),B("error"),sT("failure","in_progress");break;case"install_failed":D(`Install of ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL} failed`),B("error"),sT("failure","other_failure");break}}catch(W){D(String(W)),B("error"),sT("failure","unexpected_error")}},F=async()=>{try{let W=await qv2();Z(W),B("setup")}catch(W){D(String(W)),B("error")}},Y=async()=>{try{if(await $v2())B("uninstall-success");else B("uninstall-failed")}catch(W){D(String(W)),B("uninstall-failed")}};switch(A){case"installing":G();break;case"setup-alias":F();break;case"uninstall":Y();break;default:break}},[A]),A==="intro")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},A2," Local Installer"),s2.default.createElement(g,{flexDirection:"column"},s2.default.createElement(S,{color:"secondaryText"},`This will install ${A2} to ~/.claude/local`),s2.default.createElement(S,{color:"secondaryText"},"instead of using a global npm installation.")),s2.default.createElement(Kp,{onPress:()=>B("installing")}));if(A==="installing")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Installing ",A2," locally..."),s2.default.createElement(g,{marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Installing to ",Fp)));if(A==="success")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"success"},"✓ Local installation successful!"),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"Next, let's add an alias for `claude`")),s2.default.createElement(Kp,{onPress:()=>B("setup-alias")}));if(A==="setup-alias")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Setting up alias for claude..."),s2.default.createElement(g,{marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Configuring shell environment")));if(A==="setup")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Alias setup complete"),s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,null,I),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"Next, we'll remove the globally installed npm package"))),s2.default.createElement(Kp,{onPress:()=>B("uninstall")}));if(A==="uninstall")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0},"Uninstalling global ",A2,"..."),s2.default.createElement(g,{marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Removing global npm installation")));if(A==="uninstall-success")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"success"},"✓ Global installation removed successfully!"),s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,null,A2," is now installed locally."),s2.default.createElement(S,null,"Please restart your shell, then run"," ",s2.default.createElement(S,{color:"claude"},WA.bold("claude")),"."),s2.default.createElement(g,{flexDirection:"row",marginY:1},s2.default.createElement(QD,null),s2.default.createElement(S,null," Happy Clauding!"))),s2.default.createElement(Kp,{onPress:()=>GI(0)}));if(A==="uninstall-failed")return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"warning"},"! Could not remove global installation"),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"The local installation is installed, but we couldn't remove the global npm package automatically.")),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,"You can remove it manually later with:",`
2328
+ `,WA.bold(`npm uninstall -g --force ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}`))),s2.default.createElement(Kp,{onPress:()=>GI(0)}));return s2.default.createElement(g,{flexDirection:"column",marginY:1},s2.default.createElement(S,{bold:!0,color:"error"},"✗ Installation failed"),s2.default.createElement(g,{marginY:1},s2.default.createElement(S,null,Q||"An unexpected error occurred during installation.")),s2.default.createElement(Kp,{onPress:()=>GI(1)}))}var Ky6={type:"local",name:"migrate-installer",description:"Migrate from global npm installation to local installation",isEnabled:()=>!rT(),isHidden:!1,async call(){let{waitUntilExit:A}=F4(zb2.default.createElement(Ep,null));return await A(),""},userFacingName(){return"migrate-installer"}},Ub2=Ky6;var wb2=G1(U1(),1);var DV=G1(U1(),1);var CW=G1(U1(),1);function r9A({servers:A,onSelectServer:B,onComplete:Q}){let[D]=lB(),I=Q2();if(A.length===0)return null;let Z=D81(),G=A.some((Y)=>Y.client.type==="failed"),F=A.map((Y)=>{let W="",J="",C="";if(Y.client.type==="connected")J=MB("success",D)(tA.tick),W="connected · Enter to view details",C=`${J} ${W}`;else if(Y.client.type==="pending")J=MB("secondaryText",D)(tA.radioOff),W="connecting...",C=`${J} ${W}`;else if(Y.client.type==="needs-auth")J=MB("warning",D)(tA.triangleUpOutline),W="disconnected · Enter to login",C=`${J} ${W}`;else if(Y.client.type==="failed")J=MB("error",D)(tA.cross),W="failed · Enter to view details",C=`${J} ${W}`;else J=MB("error",D)(tA.cross),W="failed",C=`${J} ${W}`;return{label:WA.bold(Y.name),value:Y.name,description:C,dimDescription:!1}});return CW.default.createElement(g,{flexDirection:"column"},CW.default.createElement(g,{flexDirection:"column",paddingX:1,borderStyle:"round",borderColor:"secondaryBorder"},CW.default.createElement(g,{marginBottom:1},CW.default.createElement(S,{bold:!0},"Manage MCP servers")),CW.default.createElement(d0,{options:F,onChange:(Y)=>{let W=A.find((J)=>J.name===Y);if(W)B(W)},onCancel:()=>Q()}),G&&CW.default.createElement(g,{marginTop:1},CW.default.createElement(S,{dimColor:!0},"※ Tip:"," ",Z?`Error logs will be shown inline. Log files are also saved in
2329
2329
  ${Jz.baseLogs()}`:`Run claude --debug to see logs inline, or view log files in
2330
2330
  ${Jz.baseLogs()}`))),CW.default.createElement(g,{marginLeft:3},CW.default.createElement(S,{dimColor:!0},I.pending?CW.default.createElement(CW.default.Fragment,null,"Press ",I.keyName," again to exit"):CW.default.createElement(CW.default.Fragment,null,"Esc to exit"))))}var L4=G1(U1(),1);var Rw1=G1(U1(),1);function Ow1({serverToolsCount:A,serverPromptsCount:B,serverResourcesCount:Q}){let D=[];if(A>0)D.push("tools");if(Q>0)D.push("resources");if(B>0)D.push("prompts");return Rw1.default.createElement(g,null,Rw1.default.createElement(S,{bold:!0},"Capabilities: "),Rw1.default.createElement(S,{color:"text"},D.length>0?D.join(" · "):"none"))}function s9A({server:A,serverToolsCount:B,onViewTools:Q,onCancel:D}){let[I]=lB(),Z=Q2(),[G]=i6(),F=A.name.charAt(0).toUpperCase()+A.name.slice(1),Y=T51(G.mcp.commands,A.name).length,W=[];if(A.client.type==="connected"&&B>0)W.push({label:"View tools",value:"tools"});if(W.length===0)W.push({label:"Back",value:"back"});return L4.default.createElement(L4.default.Fragment,null,L4.default.createElement(g,{flexDirection:"column",paddingX:1,borderStyle:"round"},L4.default.createElement(g,{marginBottom:1},L4.default.createElement(S,{bold:!0},F," MCP Server")),L4.default.createElement(g,{flexDirection:"column",gap:0},L4.default.createElement(g,null,L4.default.createElement(S,{bold:!0},"Status: "),A.client.type==="connected"?L4.default.createElement(S,null,MB("success",I)(tA.tick)," connected"):A.client.type==="pending"?L4.default.createElement(S,null,MB("secondaryText",I)(tA.radioOff)," connecting…"):L4.default.createElement(S,null,MB("error",I)(tA.cross)," failed")),L4.default.createElement(g,null,L4.default.createElement(S,{bold:!0},"Command: "),L4.default.createElement(S,{color:"secondaryText"},A.config.command)),A.config.args&&A.config.args.length>0&&L4.default.createElement(g,null,L4.default.createElement(S,{bold:!0},"Args: "),L4.default.createElement(S,{color:"secondaryText"},A.config.args.join(" "))),A.client.type==="connected"&&L4.default.createElement(Ow1,{serverToolsCount:B,serverPromptsCount:Y,serverResourcesCount:G.mcp.resources[A.name]?.length||0}),A.client.type==="connected"&&B>0&&L4.default.createElement(g,null,L4.default.createElement(S,{bold:!0},"Tools: "),L4.default.createElement(S,{color:"secondaryText"},B," tools"))),W.length>0&&L4.default.createElement(g,{marginTop:1},L4.default.createElement(d0,{options:W,onChange:(J)=>{if(J==="tools")Q();else if(J==="back")D()},onCancel:D}))),L4.default.createElement(g,{marginLeft:3},L4.default.createElement(S,{dimColor:!0},Z.pending?L4.default.createElement(L4.default.Fragment,null,"Press ",Z.keyName," again to exit"):L4.default.createElement(L4.default.Fragment,null,"Esc to go back"))))}var M9=G1(U1(),1);function o9A({server:A,serverToolsCount:B,onViewTools:Q,onCancel:D,onComplete:I}){let[Z]=lB(),G=Q2(),[F,Y]=M9.default.useState(!1),[W,J]=M9.default.useState(null),[C,X]=i6(),[V,K]=M9.default.useState(null),E=A.name.charAt(0).toUpperCase()+A.name.slice(1),U=T51(C.mcp.commands,A.name).length,q=M9.default.useCallback(async(L,P)=>{k2(L,"Starting server reconnection after auth"),await e11(L,P,({client:_,tools:d,commands:y,resources:p})=>{X((m)=>{let o=[...N_(m.mcp.tools,L),...d],A1=[...q_(m.mcp.commands,L),...y],f={...gb(m.mcp.resources,L)};if(p&&p.length>0)f[L]=p;let s=m.mcp.clients.map((V1)=>V1.name===L?_:V1);return k2(L,`Reconnected: ${d.length} tools, ${y.length} commands, ${p?.length||0} resources`),{...m,mcp:{clients:s,tools:o,commands:A1,resources:f}}})})},[X]),R=M9.default.useCallback(async()=>{Y(!0),J(null);try{if(A.isAuthenticated&&A.config)await pE1(A.name,A.config);if(A.config){await O1A(A.name,A.config,K),E1("tengu_mcp_auth_config_authenticate",{wasAuthenticated:A.isAuthenticated});try{await q(A.name,{...A.config,scope:A.scope});let L=A.isAuthenticated?`Authentication successful. Reconnected to ${A.name}.`:`Authentication successful. Connected to ${A.name}.`;I?.(L)}catch(L){k2(A.name,`Reconnection failed: ${L instanceof Error?L.message:String(L)}`),I?.("Authentication successful, but server reconnection failed. You may need to manually restart Claude Code for the changes to take effect.")}}}catch(L){J(L instanceof Error?L.message:String(L))}finally{Y(!1)}},[A.isAuthenticated,A.config,A.name,A.scope,I,q,K]),M=async()=>{if(A.config)await pE1(A.name,A.config),E1("tengu_mcp_auth_config_clear",{}),await sE1(A.name,{...A.config,scope:A.scope}),X((L)=>{let P=L.mcp.clients.map((p)=>p.name===A.name?{...p,type:"failed"}:p),_=N_(L.mcp.tools,A.name),d=q_(L.mcp.commands,A.name),y=gb(L.mcp.resources,A.name);return{...L,mcp:{clients:P,tools:_,commands:d,resources:y}}}),I?.(`Authentication cleared for ${A.name}.`)};if(M9.default.useEffect(()=>{if((A.client.type==="needs-auth"||A.isAuthenticated===!1&&A.client.type!=="connected")&&!F&&!W)R()},[A.client.type,A.isAuthenticated,F,W,R]),F)return M9.default.createElement(g,{flexDirection:"column",gap:1,padding:1},M9.default.createElement(S,{color:"claude"},"Authenticating with ",A.name,"…"),M9.default.createElement(g,null,M9.default.createElement(QD,null),M9.default.createElement(S,null," A browser window will open for authentication")),V&&M9.default.createElement(g,{flexDirection:"column"},M9.default.createElement(S,{dimColor:!0},"If your browser doesn't open automatically, copy this URL manually:"),M9.default.createElement(n3,{url:V})),M9.default.createElement(S,{dimColor:!0},"Return here after authenticating in your browser."));let T=[];if(A.client.type==="connected"&&B>0)T.push({label:"View tools",value:"tools"});if(A.isAuthenticated)T.push({label:"Re-authenticate",value:"reauth"}),T.push({label:"Clear authentication",value:"clear-auth"});if(T.length===0)T.push({label:"Back",value:"back"});return M9.default.createElement(M9.default.Fragment,null,M9.default.createElement(g,{flexDirection:"column",paddingX:1,borderStyle:"round"},M9.default.createElement(g,{marginBottom:1},M9.default.createElement(S,{bold:!0},E," MCP Server")),M9.default.createElement(g,{flexDirection:"column",gap:0},M9.default.createElement(g,null,M9.default.createElement(S,{bold:!0},"Status: "),A.client.type==="connected"?M9.default.createElement(M9.default.Fragment,null,M9.default.createElement(S,null,MB("success",Z)(tA.tick)," connected"),A.isAuthenticated&&M9.default.createElement(S,null," ",MB("success",Z)(tA.tick)," authenticated")):A.client.type==="pending"?M9.default.createElement(S,null,MB("secondaryText",Z)(tA.radioOff)," connecting…"):A.client.type==="needs-auth"?M9.default.createElement(S,null,MB("warning",Z)(tA.triangleUpOutline)," needs authentication"):M9.default.createElement(S,null,MB("error",Z)(tA.cross)," failed")),M9.default.createElement(g,null,M9.default.createElement(S,{bold:!0},"URL: "),M9.default.createElement(S,{color:"secondaryText"},A.config.url)),A.client.type==="connected"&&M9.default.createElement(Ow1,{serverToolsCount:B,serverPromptsCount:U,serverResourcesCount:C.mcp.resources[A.name]?.length||0}),A.client.type==="connected"&&B>0&&M9.default.createElement(g,null,M9.default.createElement(S,{bold:!0},"Tools: "),M9.default.createElement(S,{color:"secondaryText"},B," tools"))),W&&M9.default.createElement(g,{marginTop:1},M9.default.createElement(S,{color:"error"},"Error: ",W)),T.length>0&&M9.default.createElement(g,{marginTop:1},M9.default.createElement(d0,{options:T,onChange:async(L)=>{switch(L){case"tools":Q();break;case"auth":case"reauth":await R();break;case"clear-auth":await M();break;case"back":D();break}},onCancel:D}))),M9.default.createElement(g,{marginLeft:3},M9.default.createElement(S,{dimColor:!0},G.pending?M9.default.createElement(M9.default.Fragment,null,"Press ",G.keyName," again to exit"):M9.default.createElement(M9.default.Fragment,null,"Esc to go back"))))}var kF=G1(U1(),1);function t9A({server:A,onSelectTool:B,onBack:Q}){let D=Q2(),[I]=i6(),Z=kF.default.useMemo(()=>{if(A.client.type!=="connected")return[];return Sa(I.mcp.tools,A.name)},[A,I.mcp.tools]),G=Z.map((F,Y)=>{let W=P51(F.name,A.name),J=F.userFacingName?F.userFacingName({}):W,C=S51(J),X=F.isReadOnly?.({})??!1,V=F.isDestructive?.({})??!1,K=F.isOpenWorld?.({})??!1,E=[];if(X)E.push("read-only");if(V)E.push("destructive");if(K)E.push("open-world");return{label:C,value:Y.toString(),description:E.length>0?E.join(", "):void 0,descriptionColor:V?"error":X?"success":void 0}});return kF.default.createElement(g,{flexDirection:"column"},kF.default.createElement(g,{flexDirection:"column",paddingX:1,borderStyle:"round"},kF.default.createElement(g,{marginBottom:1},kF.default.createElement(S,{bold:!0},"Tools for ",A.name),kF.default.createElement(S,{color:"secondaryText"}," (",Z.length," tools)")),Z.length===0?kF.default.createElement(S,{color:"secondaryText"},"No tools available"):kF.default.createElement(d0,{options:G,onChange:(F)=>{let Y=parseInt(F),W=Z[Y];if(W)B(W,Y)},onCancel:Q})),kF.default.createElement(g,{marginLeft:3},kF.default.createElement(S,{dimColor:!0},D.pending?kF.default.createElement(kF.default.Fragment,null,"Press ",D.keyName," again to exit"):kF.default.createElement(kF.default.Fragment,null,"Esc to go back"))))}var S6=G1(U1(),1);function e9A({tool:A,server:B,onBack:Q}){let D=Q2(),[I,Z]=S6.default.useState("");Z0((X,V)=>{if(V.escape)Q()});let G=P51(A.name,B.name),F=A.userFacingName?A.userFacingName({}):G,Y=S51(F),W=A.isReadOnly?.({})??!1,J=A.isDestructive?.({})??!1,C=A.isOpenWorld?.({})??!1;return S6.default.useEffect(()=>{async function X(){try{let V=await A.description({},{isNonInteractiveSession:!1,getToolPermissionContext:()=>({mode:"default",additionalWorkingDirectories:new Set,alwaysAllowRules:{},alwaysDenyRules:{},isBypassPermissionsModeAvailable:!1}),tools:[]});Z(V)}catch{Z("Failed to load description")}}X()},[A]),S6.default.createElement(g,{flexDirection:"column"},S6.default.createElement(g,{flexDirection:"column",paddingX:1,borderStyle:"round"},S6.default.createElement(g,{marginBottom:1},S6.default.createElement(S,{bold:!0},Y,S6.default.createElement(S,{color:"secondaryText"}," (",B.name,")"),W&&S6.default.createElement(S,{color:"success"}," [read-only]"),J&&S6.default.createElement(S,{color:"error"}," [destructive]"),C&&S6.default.createElement(S,{color:"secondaryText"}," [open-world]"))),S6.default.createElement(g,{flexDirection:"column"},S6.default.createElement(g,null,S6.default.createElement(S,{bold:!0},"Tool name: "),S6.default.createElement(S,{color:"secondaryText"},G)),S6.default.createElement(g,null,S6.default.createElement(S,{bold:!0},"Full name: "),S6.default.createElement(S,{color:"secondaryText"},A.name)),I&&S6.default.createElement(g,{flexDirection:"column",marginTop:1},S6.default.createElement(S,{bold:!0},"Description:"),S6.default.createElement(S,{wrap:"wrap"},I)),A.inputJSONSchema&&A.inputJSONSchema.properties&&Object.keys(A.inputJSONSchema.properties).length>0&&S6.default.createElement(g,{flexDirection:"column",marginTop:1},S6.default.createElement(S,{bold:!0},"Parameters:"),S6.default.createElement(g,{marginLeft:2,flexDirection:"column"},Object.entries(A.inputJSONSchema.properties).map(([X,V])=>{let E=A.inputJSONSchema?.required?.includes(X);return S6.default.createElement(S,{key:X},"• ",X,E&&S6.default.createElement(S,{color:"secondaryText"}," (required)"),":"," ",S6.default.createElement(S,{color:"secondaryText"},typeof V==="object"&&V&&"type"in V?String(V.type):"unknown"),typeof V==="object"&&V&&"description"in V&&S6.default.createElement(S,{color:"secondaryText"}," ","- ",String(V.description)))}))))),S6.default.createElement(g,{marginLeft:3},S6.default.createElement(S,{dimColor:!0},D.pending?S6.default.createElement(S6.default.Fragment,null,"Press ",D.keyName," again to exit"):S6.default.createElement(S6.default.Fragment,null,"Esc to go back"))))}function AQA({onComplete:A}){let[B]=i6(),Q=B.mcp.clients,[D,I]=DV.default.useState({type:"list"}),[Z,G]=DV.default.useState([]),F=DV.default.useMemo(()=>Q.filter((Y)=>Y.name!=="ide").sort((Y,W)=>Y.name.localeCompare(W.name)),[Q]);switch(DV.default.useEffect(()=>{async function Y(){let W=await Promise.all(F.map(async(J)=>{let C=J.config.scope,X=J.config.type==="sse",V=J.config.type==="http",K=void 0;if(X||V){let q=await new JT(J.name,J.config).tokens();K=Boolean(q)}let E={name:J.name,client:J,scope:C};if(X)return{...E,transport:"sse",isAuthenticated:K,config:J.config};else if(V)return{...E,transport:"http",isAuthenticated:K,config:J.config};else return{...E,transport:"stdio",config:J.config}}));G(W)}Y()},[F]),DV.useEffect(()=>{if(Z.length===0&&F.length>0)return;if(Z.length===0)A("No MCP servers configured. Run `claude mcp` or visit https://docs.anthropic.com/en/docs/claude-code/mcp to learn more.")},[Z.length,F.length,A]),D.type){case"list":return DV.default.createElement(r9A,{servers:Z,onSelectServer:(Y)=>I({type:"server-menu",server:Y}),onComplete:A});case"server-menu":{let Y=Sa(B.mcp.tools,D.server.name);if(D.server.transport==="stdio")return DV.default.createElement(s9A,{server:D.server,serverToolsCount:Y.length,onViewTools:()=>I({type:"server-tools",server:D.server}),onCancel:()=>I({type:"list"})});else return DV.default.createElement(o9A,{server:D.server,serverToolsCount:Y.length,onViewTools:()=>I({type:"server-tools",server:D.server}),onCancel:()=>I({type:"list"}),onComplete:A})}case"server-tools":return DV.default.createElement(t9A,{server:D.server,onSelectTool:(Y,W)=>I({type:"server-tool-detail",server:D.server,toolIndex:W}),onBack:()=>I({type:"server-menu",server:D.server})});case"server-tool-detail":{let W=Sa(B.mcp.tools,D.server.name)[D.toolIndex];if(!W)return I({type:"server-tools",server:D.server}),null;return DV.default.createElement(e9A,{tool:W,server:D.server,onBack:()=>I({type:"server-tools",server:D.server})})}}}var Ey6={type:"local-jsx",name:"mcp",description:"Manage MCP servers",isEnabled:()=>!0,isHidden:!1,async call(A){return wb2.default.createElement(AQA,{onComplete:A})},userFacingName(){return"mcp"}},Nb2=Ey6;var Hy6=G1(U1(),1);var qb2={type:"prompt",name:"pr-comments",description:"Get comments from a GitHub pull request",progressMessage:"fetching PR comments",isEnabled:()=>!0,isHidden:!1,userFacingName(){return"pr-comments"},async getPromptForCommand(A){return[{type:"text",text:`You are an AI assistant integrated into a git-based version control system. Your task is to fetch and display comments from a GitHub pull request.
2331
2331
 
@@ -2361,7 +2361,7 @@ Remember:
2361
2361
 
2362
2362
  ${A?"Additional user input: "+A:""}
2363
2363
  `}]}};var tT=G1(Py(),1);var zy6=5,$b2="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",Uy6="https://raw.githubusercontent.com/anthropics/claude-code/refs/heads/main/CHANGELOG.md";async function BQA(){let A=await N9.get(Uy6);if(A.status===200){let B=GA();x0({...B,cachedChangelog:A.data,changelogLastFetched:Date.now()})}}function W21(){return GA().cachedChangelog??""}function Lb2(A){try{if(!A)return{};let B={},Q=A.split(/^## /gm).slice(1);for(let D of Q){let I=D.trim().split(`
2364
- `);if(I.length===0)continue;let Z=I[0];if(!Z)continue;let G=Z.split(" - ")[0]?.trim()||"";if(!G)continue;let F=I.slice(1).filter((Y)=>Y.trim().startsWith("- ")).map((Y)=>Y.trim().substring(2).trim()).filter(Boolean);if(F.length>0)B[G]=F}return B}catch(B){return f1(B instanceof Error?B:new Error("Failed to parse changelog")),{}}}function wy6(A,B,Q=W21()){try{let D=Lb2(Q),I=tT.coerce(A),Z=B?tT.coerce(B):null;if(!Z||I&&tT.gt(I,Z,{loose:!0}))return Object.entries(D).filter(([G])=>!Z||tT.gt(G,Z,{loose:!0})).sort(([G],[F])=>tT.gt(G,F,{loose:!0})?-1:1).flatMap(([G,F])=>F).filter(Boolean).slice(0,zy6)}catch(D){return f1(D instanceof Error?D:new Error("Failed to get release notes")),[]}return[]}function QQA(A=W21()){try{let B=Lb2(A);return Object.keys(B).sort((D,I)=>tT.gt(D,I,{loose:!0})?1:-1).map((D)=>{let I=B[D];if(!I||I.length===0)return null;let Z=I.filter(Boolean);if(Z.length===0)return null;return[D,Z]}).filter((D)=>D!==null)}catch(B){return f1(B instanceof Error?B:new Error("Failed to get release notes")),[]}}function Tw1(A,B={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION){if(A!==B||!W21())BQA().catch((I)=>f1(I instanceof Error?I:new Error("Failed to fetch changelog")));let Q=wy6(B,A);return{hasReleaseNotes:Q.length>0,releaseNotes:Q}}function Mb2(A){return A.map(([B,Q])=>{let D=`Version ${B}:`,I=Q.map((Z)=>`• ${Z}`).join(`
2364
+ `);if(I.length===0)continue;let Z=I[0];if(!Z)continue;let G=Z.split(" - ")[0]?.trim()||"";if(!G)continue;let F=I.slice(1).filter((Y)=>Y.trim().startsWith("- ")).map((Y)=>Y.trim().substring(2).trim()).filter(Boolean);if(F.length>0)B[G]=F}return B}catch(B){return f1(B instanceof Error?B:new Error("Failed to parse changelog")),{}}}function wy6(A,B,Q=W21()){try{let D=Lb2(Q),I=tT.coerce(A),Z=B?tT.coerce(B):null;if(!Z||I&&tT.gt(I,Z,{loose:!0}))return Object.entries(D).filter(([G])=>!Z||tT.gt(G,Z,{loose:!0})).sort(([G],[F])=>tT.gt(G,F,{loose:!0})?-1:1).flatMap(([G,F])=>F).filter(Boolean).slice(0,zy6)}catch(D){return f1(D instanceof Error?D:new Error("Failed to get release notes")),[]}return[]}function QQA(A=W21()){try{let B=Lb2(A);return Object.keys(B).sort((D,I)=>tT.gt(D,I,{loose:!0})?1:-1).map((D)=>{let I=B[D];if(!I||I.length===0)return null;let Z=I.filter(Boolean);if(Z.length===0)return null;return[D,Z]}).filter((D)=>D!==null)}catch(B){return f1(B instanceof Error?B:new Error("Failed to get release notes")),[]}}function Tw1(A,B={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION){if(A!==B||!W21())BQA().catch((I)=>f1(I instanceof Error?I:new Error("Failed to fetch changelog")));let Q=wy6(B,A);return{hasReleaseNotes:Q.length>0,releaseNotes:Q}}function Mb2(A){return A.map(([B,Q])=>{let D=`Version ${B}:`,I=Q.map((Z)=>`• ${Z}`).join(`
2365
2365
  `);return`${D}
2366
2366
  ${I}`}).join(`
2367
2367
 
@@ -2552,7 +2552,7 @@ Usage notes:
2552
2552
  `}),{tool_use_id:B,type:"tool_result",content:I.trim()}}};var nv3=v.strictObject({});var PE=(A,B)=>{let Q=[Cg2,h9,oX,Xk,cU,iU,Z3,zI,K$,yJ,...process.env.CLAUDE_CODE_ENABLE_UNIFIED_READ_TOOL?[]:[wA1],xT,YW,...B?[XZ]:[],Kg2,...[],...[]],D=hb(A),I=Q.filter((G)=>{return!D.some((F)=>F.ruleValue.toolName===G.name&&F.ruleValue.ruleContent===void 0)}),Z=I.map((G)=>G.isEnabled());return I.filter((G,F)=>Z[F])};function pk6(A,B=null){if(!qJ()||!nA.terminal)return null;let Q=A?.find((Z)=>Z.name==="ide"),D=le(nA.terminal),I=[];if(Q)if(Q.type==="connected")I.push({label:`Connected to ${D} extension`,type:"check"});else I.push({label:`Not connected to ${D}`,type:"error"});if(B&&B.installed)if(B&&Q&&Q.type==="connected"&&B.installedVersion!==Q.serverInfo?.version)I.push({label:`Installed ${D} extension version ${B.installedVersion} (server version: ${Q.serverInfo?.version})`,type:"info"});else if(wG&&Q?.type!=="connected")I.push({label:`Installed ${D} plugin but connection is not established.
2553
2553
  Please restart your IDE or try installing from https://docs.anthropic.com/s/claude-code-jetbrains`,type:"info"});else I.push({label:`Installed ${D} extension`,type:"check"});if(B&&B.error)if(wG)I.push({label:`Error installing ${D} plugin: ${B.error}
2554
2554
  Please restart your IDE or try installing from https://docs.anthropic.com/s/claude-code-jetbrains`,type:"error"});else I.push({label:`Error installing ${D} extension: ${B.error}
2555
- Please restart your IDE and try again.`,type:"error"});return{title:"IDE Integration",command:"/config",items:I}}function lk6(A=[]){let B=[];if(A.filter((D)=>D.name!=="ide").forEach((D)=>{B.push({label:D.name,type:D.type==="failed"?"error":D.type==="pending"?"info":"check"})}),B.length===0)return null;return{title:"MCP servers",command:"/mcp",items:B}}function ik6(A){let B=Uz1(),Q=$Z(),D=kT();if(Q.length===0&&B.length===0&&!D)return null;let I=[];if(B.forEach((Z)=>{let G=g51(Z.path);I.push({label:`Large ${G} will impact performance (${n7(Z.content.length)} chars > ${n7(cA1)})`,type:"error"})}),D&&D.content.length>Nc)I.push({label:`ULTRACLAUDE.md file exceeds ${n7(Nc)} characters (${n7(D.content.length)} chars)`,type:"error"});return{title:"Memory",command:"/memory",items:I,content:SE.createElement(ww1,{context:A})}}function nk6(){let A=[],B=lA();return A.push({label:B,type:"info"}),{title:"Working Directory",command:"",items:A}}async function ak6(){let A=await Lp();if(A.length===0)return null;return{title:"Installation",command:"",items:A.map((Q)=>({label:Q,type:"info"}))}}async function rk6(){let A=await Wp(),B=[];if(A.multipleInstallations.length>1)B.push({label:`Multiple installations detected (${A.multipleInstallations.length} found)`,type:"error"});if(A.warnings.forEach((Q)=>{B.push({label:Q.issue,type:"error"})}),A.hasUpdatePermissions===!1)B.push({label:"No write permissions for auto-updates (requires sudo)",type:"error"});if(A.configInstallMethod!=="not set"){let D={"npm-local":"local","npm-global":"global",native:"native",development:"development",unknown:"unknown"}[A.installationType];if(D&&D!==A.configInstallMethod)B.push({label:`Config mismatch: running ${A.installationType} but config says ${A.configInstallMethod}`,type:"error"})}if(B.length===0)return null;return{title:"Installation Health",command:"/doctor",items:B}}function sk6(){if(F7()!=="firstParty")return null;let B=[],{source:Q}=Z71();if(NB())B.push({label:`Login Method: ${F71()} Account`,type:"info"});else B.push({label:`Auth Token: ${Q}`,type:"info"});let{key:D,source:I}=dC(!1);if(D)B.push({label:`API Key: ${I}`,type:"info"});if(Q==="claude.ai"||I==="/login managed key"){let G=GA().oauthAccount?.organizationName;if(G)B.push({label:`Organization: ${G}`,type:"info"})}if(Q!=="claude.ai"){if(mA1())B.push({label:"Development Partner Program • sharing session with Anthropic",type:"info"})}let Z=GA().oauthAccount?.emailAddress;if((Q==="claude.ai"||I==="/login managed key")&&Z)B.push({label:`Email: ${Z}`,type:"info"});return{title:"Account",command:Q==="claude.ai"||I==="/login managed key"?"/login":"",items:B}}function ok6(){return null}function wQA(A,B){return A.flatMap((Q)=>{let D=[{label:` ${Q.agentType}: ${Q.whenToUse}`,type:"info"}],I=gw1(Q.tools,B);if(I.hasWildcard)D.push({label:"Tools: All tools",type:"info",indent:!0});else if(Q.tools.length===0)D.push({label:"Tools: None",type:"info",indent:!0});else{if(I.validTools.length>0)D.push({label:`Tools: ${I.validTools.join(", ")}`,type:"info",indent:!0});if(I.invalidTools.length>0)D.push({label:`Unrecognized tools: ${I.invalidTools.join(", ")}`,type:"error",indent:!0})}return D})}async function tk6(){return null;try{let A=await Op();if(A.length===0)return null;let B=PE(XJ(),!0),Q={"built-in":A.filter((I)=>I.location==="built-in"),user:A.filter((I)=>I.location==="user"),project:A.filter((I)=>I.location==="project")};return{title:"Agents",command:"",subsections:[{title:"Built-in Agents",items:wQA(Q["built-in"],B)},{title:"User Agents",items:wQA(Q.user,B)},{title:"Project Agents",items:wQA(Q.project,B)}].filter((I)=>I.items.length>0)}}catch{return null}}function ek6(){let A=F7(),B=[];if(A!=="firstParty"){let I={bedrock:"AWS Bedrock",vertex:"Google Vertex AI"}[A];B.push({label:`API Provider: ${I}`,type:"info"})}if(A==="firstParty"){let I=process.env.ANTHROPIC_BASE_URL;if(I)B.push({label:`Anthropic Base URL: ${I}`,type:"info"})}else if(A==="bedrock"){let I=process.env.BEDROCK_BASE_URL;if(I)B.push({label:`Bedrock Base URL: ${I}`,type:"info"});if(B.push({label:`AWS Region: ${th()}`,type:"info"}),process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)B.push({label:"AWS auth skipped",type:"info"})}else if(A==="vertex"){let I=process.env.VERTEX_BASE_URL;if(I)B.push({label:`Vertex Base URL: ${I}`,type:"info"});let Z=process.env.ANTHROPIC_VERTEX_PROJECT_ID;if(Z)B.push({label:`GCP Project: ${Z}`,type:"info"});if(B.push({label:`Default region: ${aR()}`,type:"info"}),process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH)B.push({label:"GCP auth skipped",type:"info"})}let Q=Lj();if(Q)B.push({label:`Proxy: ${Q}`,type:"info"});let D=Eq();if(process.env.NODE_EXTRA_CA_CERTS)B.push({label:`Additional CA cert(s): ${process.env.NODE_EXTRA_CA_CERTS}`,type:"info"});if(D){if(D.cert&&process.env.CLAUDE_CODE_CLIENT_CERT)B.push({label:`mTLS client cert: ${process.env.CLAUDE_CODE_CLIENT_CERT}`,type:"info"});if(D.key&&process.env.CLAUDE_CODE_CLIENT_KEY)B.push({label:`mTLS client key: ${process.env.CLAUDE_CODE_CLIENT_KEY}`,type:"info"})}if(B.length===0)return null;return{title:"API Configuration",command:"",items:B}}function Ax6({onClose:A,ideInstallationStatus:B,context:Q}){let[D]=i6(),[I,Z]=SE.useState([]),G={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION;return SE.useEffect(()=>{async function F(){let Y=await jk(),W=[],J=nk6();if(J)W.push(J);if(Y){let M=await ak6();if(M)W.push(M)}let C=await rk6();if(C)W.push(C);let X=pk6(D.mcp.clients,B);if(X)W.push(X);let V=lk6(D.mcp.clients);if(V)W.push(V);let K=sk6(),E=ek6();if(K)W.push(K);if(E)W.push(E);let U=ik6(Q);if(U)W.push(U);let q=ok6();if(q)W.push(q);let R=await tk6();if(R)W.push(R);Z(W)}F()},[D.mcp.clients,B,Q]),SE.createElement(nb2,{sections:I,version:G,onClose:A})}var Bx6={type:"local-jsx",name:"status",description:"Show Claude Code status including version, model, account, API connectivity, and tool statuses",isEnabled:()=>!0,isHidden:!1,async call(A,B){return SE.createElement(Ax6,{onClose:A,ideInstallationStatus:B.options.ideInstallationStatus,context:B})},userFacingName(){return"status"}},Eg2=Bx6;var NQA=G1(U1(),1);var _Z=G1(U1(),1),hw1=G1(U1(),1);var Tp=G1(U1(),1);function Pp(){let[A,B]=Tp.useState([]),Q=Tp.useCallback(()=>{B(nU.getAllShells())},[]);return Tp.useEffect(()=>{Q();let D=nU.subscribe(()=>{Q()});return()=>{D()}},[Q]),{shells:A,killShell:(D)=>nU.killShell(D)}}var X6=G1(U1(),1),X21=G1(U1(),1);function Hg2({shell:A,onDone:B,onKillShell:Q}){let[D,I]=X21.useState(0),[Z,G]=X21.useState({stdout:"",stderr:"",stdoutLines:0,stderrLines:0});Z0((J,C)=>{if(C.escape)B();else if(J==="k"&&A.status==="running"&&Q)Q()});let F=Q2(),Y=(J)=>{let C=Math.floor((Date.now()-J)/1000),X=Math.floor(C/3600),V=Math.floor((C-X*3600)/60),K=C-X*3600-V*60;return`${X>0?`${X}h `:""}${V>0||X>0?`${V}m `:""}${K}s`};X21.useEffect(()=>{let J=nU.getShellOutput(A.id),C=(R,M,T=10)=>{if(!M)return R;let L=R.split(`
2555
+ Please restart your IDE and try again.`,type:"error"});return{title:"IDE Integration",command:"/config",items:I}}function lk6(A=[]){let B=[];if(A.filter((D)=>D.name!=="ide").forEach((D)=>{B.push({label:D.name,type:D.type==="failed"?"error":D.type==="pending"?"info":"check"})}),B.length===0)return null;return{title:"MCP servers",command:"/mcp",items:B}}function ik6(A){let B=Uz1(),Q=$Z(),D=kT();if(Q.length===0&&B.length===0&&!D)return null;let I=[];if(B.forEach((Z)=>{let G=g51(Z.path);I.push({label:`Large ${G} will impact performance (${n7(Z.content.length)} chars > ${n7(cA1)})`,type:"error"})}),D&&D.content.length>Nc)I.push({label:`ULTRACLAUDE.md file exceeds ${n7(Nc)} characters (${n7(D.content.length)} chars)`,type:"error"});return{title:"Memory",command:"/memory",items:I,content:SE.createElement(ww1,{context:A})}}function nk6(){let A=[],B=lA();return A.push({label:B,type:"info"}),{title:"Working Directory",command:"",items:A}}async function ak6(){let A=await Lp();if(A.length===0)return null;return{title:"Installation",command:"",items:A.map((Q)=>({label:Q,type:"info"}))}}async function rk6(){let A=await Wp(),B=[];if(A.multipleInstallations.length>1)B.push({label:`Multiple installations detected (${A.multipleInstallations.length} found)`,type:"error"});if(A.warnings.forEach((Q)=>{B.push({label:Q.issue,type:"error"})}),A.hasUpdatePermissions===!1)B.push({label:"No write permissions for auto-updates (requires sudo)",type:"error"});if(A.configInstallMethod!=="not set"){let D={"npm-local":"local","npm-global":"global",native:"native",development:"development",unknown:"unknown"}[A.installationType];if(D&&D!==A.configInstallMethod)B.push({label:`Config mismatch: running ${A.installationType} but config says ${A.configInstallMethod}`,type:"error"})}if(B.length===0)return null;return{title:"Installation Health",command:"/doctor",items:B}}function sk6(){if(F7()!=="firstParty")return null;let B=[],{source:Q}=Z71();if(NB())B.push({label:`Login Method: ${F71()} Account`,type:"info"});else B.push({label:`Auth Token: ${Q}`,type:"info"});let{key:D,source:I}=dC(!1);if(D)B.push({label:`API Key: ${I}`,type:"info"});if(Q==="claude.ai"||I==="/login managed key"){let G=GA().oauthAccount?.organizationName;if(G)B.push({label:`Organization: ${G}`,type:"info"})}if(Q!=="claude.ai"){if(mA1())B.push({label:"Development Partner Program • sharing session with Anthropic",type:"info"})}let Z=GA().oauthAccount?.emailAddress;if((Q==="claude.ai"||I==="/login managed key")&&Z)B.push({label:`Email: ${Z}`,type:"info"});return{title:"Account",command:Q==="claude.ai"||I==="/login managed key"?"/login":"",items:B}}function ok6(){return null}function wQA(A,B){return A.flatMap((Q)=>{let D=[{label:` ${Q.agentType}: ${Q.whenToUse}`,type:"info"}],I=gw1(Q.tools,B);if(I.hasWildcard)D.push({label:"Tools: All tools",type:"info",indent:!0});else if(Q.tools.length===0)D.push({label:"Tools: None",type:"info",indent:!0});else{if(I.validTools.length>0)D.push({label:`Tools: ${I.validTools.join(", ")}`,type:"info",indent:!0});if(I.invalidTools.length>0)D.push({label:`Unrecognized tools: ${I.invalidTools.join(", ")}`,type:"error",indent:!0})}return D})}async function tk6(){return null;try{let A=await Op();if(A.length===0)return null;let B=PE(XJ(),!0),Q={"built-in":A.filter((I)=>I.location==="built-in"),user:A.filter((I)=>I.location==="user"),project:A.filter((I)=>I.location==="project")};return{title:"Agents",command:"",subsections:[{title:"Built-in Agents",items:wQA(Q["built-in"],B)},{title:"User Agents",items:wQA(Q.user,B)},{title:"Project Agents",items:wQA(Q.project,B)}].filter((I)=>I.items.length>0)}}catch{return null}}function ek6(){let A=F7(),B=[];if(A!=="firstParty"){let I={bedrock:"AWS Bedrock",vertex:"Google Vertex AI"}[A];B.push({label:`API Provider: ${I}`,type:"info"})}if(A==="firstParty"){let I=process.env.ANTHROPIC_BASE_URL;if(I)B.push({label:`Anthropic Base URL: ${I}`,type:"info"})}else if(A==="bedrock"){let I=process.env.BEDROCK_BASE_URL;if(I)B.push({label:`Bedrock Base URL: ${I}`,type:"info"});if(B.push({label:`AWS Region: ${th()}`,type:"info"}),process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)B.push({label:"AWS auth skipped",type:"info"})}else if(A==="vertex"){let I=process.env.VERTEX_BASE_URL;if(I)B.push({label:`Vertex Base URL: ${I}`,type:"info"});let Z=process.env.ANTHROPIC_VERTEX_PROJECT_ID;if(Z)B.push({label:`GCP Project: ${Z}`,type:"info"});if(B.push({label:`Default region: ${aR()}`,type:"info"}),process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH)B.push({label:"GCP auth skipped",type:"info"})}let Q=Lj();if(Q)B.push({label:`Proxy: ${Q}`,type:"info"});let D=Eq();if(process.env.NODE_EXTRA_CA_CERTS)B.push({label:`Additional CA cert(s): ${process.env.NODE_EXTRA_CA_CERTS}`,type:"info"});if(D){if(D.cert&&process.env.CLAUDE_CODE_CLIENT_CERT)B.push({label:`mTLS client cert: ${process.env.CLAUDE_CODE_CLIENT_CERT}`,type:"info"});if(D.key&&process.env.CLAUDE_CODE_CLIENT_KEY)B.push({label:`mTLS client key: ${process.env.CLAUDE_CODE_CLIENT_KEY}`,type:"info"})}if(B.length===0)return null;return{title:"API Configuration",command:"",items:B}}function Ax6({onClose:A,ideInstallationStatus:B,context:Q}){let[D]=i6(),[I,Z]=SE.useState([]),G={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION;return SE.useEffect(()=>{async function F(){let Y=await jk(),W=[],J=nk6();if(J)W.push(J);if(Y){let M=await ak6();if(M)W.push(M)}let C=await rk6();if(C)W.push(C);let X=pk6(D.mcp.clients,B);if(X)W.push(X);let V=lk6(D.mcp.clients);if(V)W.push(V);let K=sk6(),E=ek6();if(K)W.push(K);if(E)W.push(E);let U=ik6(Q);if(U)W.push(U);let q=ok6();if(q)W.push(q);let R=await tk6();if(R)W.push(R);Z(W)}F()},[D.mcp.clients,B,Q]),SE.createElement(nb2,{sections:I,version:G,onClose:A})}var Bx6={type:"local-jsx",name:"status",description:"Show Claude Code status including version, model, account, API connectivity, and tool statuses",isEnabled:()=>!0,isHidden:!1,async call(A,B){return SE.createElement(Ax6,{onClose:A,ideInstallationStatus:B.options.ideInstallationStatus,context:B})},userFacingName(){return"status"}},Eg2=Bx6;var NQA=G1(U1(),1);var _Z=G1(U1(),1),hw1=G1(U1(),1);var Tp=G1(U1(),1);function Pp(){let[A,B]=Tp.useState([]),Q=Tp.useCallback(()=>{B(nU.getAllShells())},[]);return Tp.useEffect(()=>{Q();let D=nU.subscribe(()=>{Q()});return()=>{D()}},[Q]),{shells:A,killShell:(D)=>nU.killShell(D)}}var X6=G1(U1(),1),X21=G1(U1(),1);function Hg2({shell:A,onDone:B,onKillShell:Q}){let[D,I]=X21.useState(0),[Z,G]=X21.useState({stdout:"",stderr:"",stdoutLines:0,stderrLines:0});Z0((J,C)=>{if(C.escape)B();else if(J==="k"&&A.status==="running"&&Q)Q()});let F=Q2(),Y=(J)=>{let C=Math.floor((Date.now()-J)/1000),X=Math.floor(C/3600),V=Math.floor((C-X*3600)/60),K=C-X*3600-V*60;return`${X>0?`${X}h `:""}${V>0||X>0?`${V}m `:""}${K}s`};X21.useEffect(()=>{let J=nU.getShellOutput(A.id),C=(R,M,T=10)=>{if(!M)return R;let L=R.split(`
2556
2556
  `),P=M.split(`
2557
2557
  `);return[...L,...P].slice(-T).join(`
2558
2558
  `)},X=C(Z.stdout,J.stdout),V=C(Z.stderr,J.stderr),{totalLines:K,truncatedContent:E}=MT(X),{totalLines:U,truncatedContent:q}=MT(V);if(G({stdout:E,stderr:q,stdoutLines:K,stderrLines:U}),A.status==="running"){let R=setTimeout(()=>{I((M)=>M+1)},1000);return()=>clearTimeout(R)}},[A.id,A.status,D,Z.stdout,Z.stderr]);let W=A.command.length>70?A.command.substring(0,67)+"...":A.command;return X6.default.createElement(g,{width:"100%",flexDirection:"column"},X6.default.createElement(g,{width:"100%"},X6.default.createElement(g,{borderStyle:"round",borderColor:"permission",flexDirection:"column",padding:1,width:"100%"},X6.default.createElement(g,null,X6.default.createElement(S,{color:"permission",bold:!0},"Bash Details")),X6.default.createElement(g,{flexDirection:"column",marginY:1},X6.default.createElement(S,null,X6.default.createElement(S,{bold:!0},"ID:")," ",A.id),X6.default.createElement(S,null,X6.default.createElement(S,{bold:!0},"Status:")," ",A.status==="running"?X6.default.createElement(S,{color:"permission"},A.status,A.result?.code!==void 0&&` (exit code: ${A.result.code})`):A.status==="completed"?X6.default.createElement(S,{color:"success"},A.status,A.result?.code!==void 0&&` (exit code: ${A.result.code})`):X6.default.createElement(S,{color:"error"},A.status,A.result?.code!==void 0&&` (exit code: ${A.result.code})`)),X6.default.createElement(S,null,X6.default.createElement(S,{bold:!0},"Runtime:")," ",Y(A.startTime)),X6.default.createElement(S,{wrap:"truncate-end"},X6.default.createElement(S,{bold:!0},"Command:")," ",W)),X6.default.createElement(g,{flexDirection:"column",marginY:1},X6.default.createElement(S,{bold:!0},"STDOUT:"),Z.stdout?X6.default.createElement(X6.default.Fragment,null,X6.default.createElement(g,{borderStyle:"round",borderColor:"secondaryBorder",paddingX:1,flexDirection:"column",height:7},Z.stdout.split(`
@@ -2580,7 +2580,7 @@ ${B.trim()}`);return D.join(Q?" ":`
2580
2580
  `)}function Ux6(A,B=!1){if(A instanceof Zz){if(A.interrupted)return"[Command interrupted]";return Ah2(A.stdout,A.stderr,B)}let Q=A instanceof Error?A.message:String(A);return B?`[Error: ${Q}]`:`[Error]
2581
2581
  ${Q}`}var Bh2=T0(async(A,B)=>{try{return(await vw1(A,B,"tengu_command_dir_search")).map(({filePath:D,frontmatter:I,content:Z})=>{try{let G=I.description??Gg2(Z,"Custom command"),F=fw1(I["allowed-tools"]),W=Nx6(D).replace(/\.md$/,""),J=qx6(D,A),C=W,X=wx6(D);if(!D.startsWith(A)){let K=B.endsWith("/")?B.slice(0,-1):B;if(X!==K){let E=X.slice(K.length+1);if(E)C=`${E.split("/").join(":")}:${W}`}}return{type:"prompt",name:C,description:`${G} (${J})`,allowedTools:F,isEnabled:()=>!0,isHidden:!1,progressMessage:"running",userFacingName(){return C},async getPromptForCommand(K,E){let U=Z;if(K)if(U.includes("$ARGUMENTS"))U=U.replace("$ARGUMENTS",K);else U=U+`
2582
2582
 
2583
- ARGUMENTS: ${K}`;let q=E.getToolPermissionContext();return U=await eg2(U,{...E,getToolPermissionContext(){return{...q,alwaysAllowRules:{...q.alwaysAllowRules,command:F}}}},`/${C}`),[{type:"text",text:U}]}}}catch(G){return f1(G instanceof Error?G:new Error(String(G))),null}}).filter((D)=>D!==null)}catch(Q){return f1(Q instanceof Error?Q:new Error(String(Q))),[]}}),PQA="user",SQA="project";function qx6(A,B){if(A.startsWith(B))return PQA;return SQA}import{join as Nh2}from"path";var jQA=G1(U1(),1);var pw1=G1(U1(),1);var _QA=G1(U1(),1);var a9=G1(U1(),1),E21=G1(U1(),1);function Qh2({onDone:A}){let[B,Q]=E21.useState("initial"),[D,I]=E21.useState("neutral"),[Z,G]=E21.useState(""),[F,Y]=E21.useState(0),W=Q2(),[{mainLoopModel:J}]=i6();return}function Dh2({showFeedback:A,showWorktree:B,onDone:Q}){let[D,I]=pw1.useState(()=>B?"worktree":A?"feedback":"done");async function Z(){if(A)I("feedback");else G()}async function G(){Q(),await U4(0)}switch(D){case"worktree":return null;case"feedback":return pw1.default.createElement(Qh2,{onDone:G});case"done":return null}}var $x6={type:"local-jsx",name:"exit",aliases:["quit"],description:"Exit the REPL",isEnabled:()=>!0,isHidden:!1,async call(A,{messages:B}){let D=await Lx6(B);if(!D)return A(),await U4(0),null;return jQA.createElement(Dh2,{showFeedback:D,showWorktree:!1,onDone:A})},userFacingName(){return"exit"}},lw1=$x6;async function Lx6(A){if(A.length<10)return!1;return await yQA()}async function yQA(){let{show:A}=await JU0("tengu-exit-feedback",{show:!1});return A}var XB=G1(U1(),1),AP=G1(U1(),1);var vD=G1(U1(),1);function Ih2({message:A,screen:B}){let Q=B==="transcript",D=oM2(A)||"";return vD.createElement(g,{flexDirection:"column"},vD.createElement(g,{flexDirection:"row"},vD.createElement(g,{minWidth:2},vD.createElement(S,{color:"text"},lU)),vD.createElement(g,{flexDirection:"column"},vD.createElement(S,{bold:!0},"Compact summary",!Q&&vD.createElement(S,{dimColor:!0}," (ctrl+r to expand)")))),Q&&vD.createElement(w0,null,vD.createElement(S,null,D)))}var n2=G1(U1(),1);import{relative as Mx6}from"path";function Rx6(){let A=GA();x0({...A,lastReleaseNotesSeen:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION})}function Zh2(){let A=GA(),{hasReleaseNotes:B,releaseNotes:Q}=n2.useMemo(()=>Tw1(A.lastReleaseNotesSeen),[A.lastReleaseNotesSeen]);n2.useEffect(()=>{if(B)Rx6()},[B]);let{source:D}=dC(!1),I=!!na()&&(D==="ANTHROPIC_API_KEY"||D==="apiKeyHelper"),Z=Z71(),G=NB()&&(Z.source==="ANTHROPIC_AUTH_TOKEN"||Z.source==="apiKeyHelper"),F=D!=="none"&&Z.source!=="none"&&!(D==="apiKeyHelper"&&Z.source==="apiKeyHelper");return n2.createElement(g,{flexDirection:"column",paddingLeft:1},n2.createElement(Px6,null),G&&n2.createElement(g,{flexDirection:"row",marginTop:1},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Auth conflict: Using ",Z.source," instead of Claude account subscription token. Either unset ",Z.source,", or run `claude /logout`.")),I&&n2.createElement(g,{flexDirection:"row",marginTop:1},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Auth conflict: Using ",D," instead of Anthropic Console key. Either unset ",D,", or run `claude /logout`.")),F&&n2.createElement(g,{flexDirection:"column",marginTop:1},n2.createElement(g,{flexDirection:"row"},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Auth conflict: Both a token (",Z.source,") and an API key (",D,") are set. This may lead to unexpected behavior.")),n2.createElement(g,{flexDirection:"column",marginLeft:3},n2.createElement(S,{color:"warning"},"• Trying to use"," ",Z.source==="claude.ai"?"claude.ai":Z.source,"?"," ",D==="ANTHROPIC_API_KEY"?'Unset the ANTHROPIC_API_KEY environment variable, or claude /logout then say "No" to the API key approval before login.':D==="apiKeyHelper"?"Unset the apiKeyHelper setting.":"claude /logout"),n2.createElement(S,{color:"warning"},"• Trying to use ",D,"?"," ",Z.source==="claude.ai"?"claude /logout to sign out of claude.ai.":`Unset the ${Z.source} environment variable.`))),B&&n2.createElement(g,{flexDirection:"column",marginTop:1},n2.createElement(S,{color:"secondaryText"},"What's new:"),n2.createElement(g,{flexDirection:"column",marginLeft:1},Q.map((Y,W)=>n2.createElement(S,{key:W,color:"secondaryText"},"• ",Y)))))}function Ox6({path:A,contentLength:B}){let Q=A.startsWith(lA())?Mx6(lA(),A):A;return n2.createElement(g,{flexDirection:"row"},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Large ",n2.createElement(S,{bold:!0},Q)," will impact performance (",n7(B)," chars >"," ",n7(cA1),")",n2.createElement(S,{color:"secondaryText",dimColor:!0}," ","• /memory to edit")))}function Tx6(){let A=kT();if(!A)return null;let B=A.content.length;if(B>Nc)return n2.createElement(g,{flexDirection:"row",gap:1},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"ULTRACLAUDE.md exceeds ",Nc," chars (",B," chars)",n2.createElement(S,{color:"secondaryText",dimColor:!0}," ","• /memory to edit")));return null}function Px6(){if($Z().length===0)return null;return n2.createElement(g,{flexDirection:"column"},Uz1().map((B)=>n2.createElement(Ox6,{key:B.path,path:B.path,contentLength:B.content.length})),n2.createElement(Tx6,null))}var eT=G1(U1(),1);function Gh2(){return GA().tipsHistory||{}}function Sx6(A){let B=GA();x0({...B,tipsHistory:A})}function Fh2(A){let B=Gh2(),Q=GA().numStartups;B[A]=Q,Sx6(B)}function _x6(A){return Gh2()[A]||0}function kQA(A){let B=_x6(A);if(B===0)return 1/0;return GA().numStartups-B}async function yx6(A){return(await Promise.all(A.map(async(Q)=>{let D=await Q.isRelevant();return{tip:Q,isRelevant:D}}))).filter((Q)=>Q.isRelevant).map((Q)=>Q.tip)}function kx6(A){return A.filter((B)=>{return kQA(B.id)>=B.cooldownSessions})}function xx6(){let A=GA(),{hasReleaseNotes:B}=Tw1(A.lastReleaseNotesSeen);return!B}function fx6(A){if(A.length===0)return;if(A.length===1)return A[0];let B=A.map((Q)=>({tip:Q,sessions:kQA(Q.id)}));return B.sort((Q,D)=>D.sessions-Q.sessions),B[0]?.tip}async function Yh2(A,B=!1){if(!xx6()||B)return;let Q=await yx6(A),D=kx6(Q);if(D.length===0)return;let I=D.find((Z)=>Z.id==="claude-opus-welcome");if(I)return I;return fx6(D)}function Wh2(A){Fh2(A.id),E1("tengu_tip_shown",{tipIdLength:A.id,cooldownSessions:A.cooldownSessions})}function Jh2({tip:A}){eT.useEffect(()=>{if(!A)return;Wh2(A)},[A]);let B=()=>{if(!A)return null;if(typeof A.content==="function")return A.content();if(A.id==="claude-opus-welcome")return eT.default.createElement(S,{color:"secondaryText"},"※ ",A.content);return eT.default.createElement(S,{color:"secondaryText"},"※ Tip: ",A.content)};return eT.default.createElement(eT.default.Fragment,null,A&&eT.default.createElement(g,{key:`tip-${A?.id}`,flexDirection:"row",marginTop:1,alignItems:"center",marginLeft:1},B()))}var IV=G1(U1(),1);async function vx6(){if(NB())return!1;let A=await DpA(!1);if(!A)return!1;return Boolean(A.account.has_claude_max)||Boolean(A.account.has_claude_pro)}function Ch2(){let[A]=IV.useState(()=>{let B=GA(),Q=B.subscriptionNoticeCount??0,D=B.hasAvailableSubscription;if(Q>=3)return!1;return D??!1});return IV.useEffect(()=>{vx6().then((B)=>{let Q=GA(),D=Q.subscriptionNoticeCount??0;if(B)D+=1;if(Q.subscriptionNoticeCount!==D||Q.hasAvailableSubscription!==B)x0({...Q,subscriptionNoticeCount:D,hasAvailableSubscription:B})})},[A]),A}function Xh2(){return IV.useEffect(()=>{E1("tengu_switch_to_subscription_notice_shown",{})},[]),IV.createElement(g,{paddingLeft:1,marginTop:1,marginBottom:1},IV.createElement(S,{color:"suggestion"},"You can now use your Claude subscription with ",A2,IV.createElement(S,{color:"text",dimColor:!0}," ","• /login to activate")))}var xQA=G1(U1(),1);function Vh2({message:A,isTranscriptMode:B}){if(!(B&&A.timestamp&&A.type==="assistant"&&A.message.content.some((I)=>I.type==="text")))return null;let D=new Date(A.timestamp).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1});return xQA.default.createElement(g,{marginTop:1},xQA.default.createElement(S,{dimColor:!0},D))}var H21=10;function z21({messages:A,normalizedMessageHistory:B,tools:Q,verbose:D,toolJSX:I,toolUseConfirmQueue:Z,inProgressToolUseIDs:G,isMessageSelectorVisible:F,tipOfTheDay:Y,conversationId:W,screen:J,screenToggleId:C,streamingToolUses:X,showAllInTranscript:V=!1}){let K=Vp(),{columns:E}=z9(),U=Ch2(),q=RR2(),[R,M]=XB.useState([]);XB.useEffect(()=>{Lp().then((p)=>M(p))},[]);let T=AP.useMemo(()=>o3(A).filter(Bk),[A]),L=AP.useMemo(()=>new Set(Object.keys(Fc(T))),[T]),P=AP.useMemo(()=>sH1(T),[T]),_=AP.useMemo(()=>X.filter((p)=>{if(G.has(p.contentBlock.id))return!1;if(T.some((m)=>m.type==="assistant"&&m.message.content[0].type==="tool_use"&&m.message.content[0].id===p.contentBlock.id))return!1;return!0}),[X,G,T]),d=AP.useMemo(()=>_.flatMap((p)=>o3([sY({content:[p.contentBlock]})])),[_]),y=AP.useCallback((p)=>{let m=J==="transcript",o=m&&!V,A1=o?T.slice(-H21):T,f=o&&T.length>H21;return[{type:"static",jsx:XB.createElement(g,{flexDirection:"column",gap:1,key:`logo-${W}-${C}`},XB.createElement(Xp,{model:K}),tU1()?XB.createElement(V9A,null):XB.createElement(Zh2,null))},...!_4(process.env.IS_DEMO)&&Y?[{type:"static",jsx:XB.createElement(g,{key:`tip-of-the-day-${W}-${C}`},XB.createElement(Jh2,{tip:Y}))}]:[],...U?[{type:"static",jsx:XB.createElement(g,{key:`max-subscription-${W}-${C}`},XB.createElement(Xh2,null))}]:[],...q&&!U?[{type:"static",jsx:XB.createElement(g,{key:`subscription-upsell-${W}-${C}`},XB.createElement(OR2,null))}]:[],...R.length>0?[{type:"static",jsx:XB.createElement(g,{key:`install-messages-${W}-${C}`,flexDirection:"column",paddingLeft:1},R.map((s,V1)=>XB.createElement(g,{key:V1,flexDirection:"row",marginTop:1},XB.createElement(S,{color:"warning"},tA.bullet),XB.createElement(S,{color:"warning"}," ",s))))}]:[],...f?[{type:"static",jsx:XB.createElement(qp,{key:`truncation-indicator-${W}-${C}`,dividerChar:"─",title:`Ctrl+E to show ${WA.bold(T.length-H21)} previous messages`,titleColor:"secondaryText",dividerColor:"secondaryBorder",width:E})}]:[],...m&&V&&T.length>H21?[{type:"static",jsx:XB.createElement(qp,{key:`hide-indicator-${W}-${C}`,dividerChar:"─",title:`Ctrl+E to hide ${WA.bold(T.length-H21)} previous messages`,titleColor:"secondaryText",dividerColor:"secondaryBorder",width:E})}]:[],...B.length>0?[{type:"static",jsx:XB.createElement(g,{flexDirection:"column",gap:1,key:`history-${W}-${C}`},mAA(B.filter((s)=>s.type!=="progress").filter((s)=>s.type!=="user"||!s.isMeta),[]).map((s)=>XB.createElement(g,{key:`history-${s.uuid}-${C}`,width:E-5},XB.createElement(jF,{message:s,messages:B,addMargin:!0,tools:Q,verbose:p,erroredToolUseIDs:new Set,inProgressToolUseIDs:new Set,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!0,resolvedToolUseIDs:new Set}))),XB.createElement(qp,{dividerChar:"=",title:"Previous Conversation Compacted"}))}]:[],...mAA(A1.filter((s)=>s.type!=="progress").filter((s)=>s.type!=="user"||!s.isMeta),d).map((s)=>{let V1=kA1(s),h1=tM2(s,T),g1=s.type==="user"&&s.isCompactSummary?XB.createElement(Ih2,{message:s,screen:J}):XB.createElement(jF,{message:s,messages:T,addMargin:!0,tools:Q,verbose:p,erroredToolUseIDs:P,inProgressToolUseIDs:G,progressMessagesForMessage:h1,shouldAnimate:!I&&!Z.length&&!F&&(!V1||G.has(V1)),shouldShowDot:!0,resolvedToolUseIDs:L});return{type:bx6(s,A,new Set(X.map((ZA)=>ZA.contentBlock.id)),L,J)?"static":"transient",jsx:XB.createElement(g,{key:`${s.uuid}-${h1.length}-${C}`,width:E-5,flexDirection:"column"},XB.createElement(Vh2,{message:s,isTranscriptMode:m}),g1)}}).filter((s)=>s!==void 0),...QO2()?[{type:"static",jsx:XB.createElement(IO2,null)}]:[]]},[J,V,T,W,C,K,Y,U,q,R,E,B,d,Q,P,G,I,Z.length,F,L,A,X]);return XB.createElement(XB.Fragment,null,XB.createElement(A81,{key:`static-messages-${W}-${C}`,items:y(D).filter((p)=>p.type==="static")},(p)=>p.jsx),y(D).filter((p)=>p.type==="transient").map((p)=>p.jsx))}function bx6(A,B,Q,D,I){if(I==="transcript")return!0;switch(A.type){case"attachment":return!0;case"system":case"user":case"assistant":{let Z=kA1(A);if(!Z)return!0;if(Q.has(Z))return!1;let G=rM2(A,B);return fe0(G,D)}case"progress":return!1}}var U21=G1(U1(),1);var k3=G1(U1(),1);import{join as hx6}from"path";import{execSync as gx6}from"child_process";function Kh2(A){let B=n4(),D={macos:["pbcopy"],linux:["xclip -selection clipboard","wl-copy"],wsl:["clip.exe"],windows:["clip"],unknown:["xclip -selection clipboard","wl-copy"]}[B];for(let I of D)try{return gx6(I,{input:A,encoding:"utf-8"}),!0}catch(Z){f1(new Error(`Failed to execute clipboard command "${I}": ${Z}`));continue}return f1(new Error(`Failed to copy to clipboard on ${B}`)),!1}function Eh2(){let A=n4();return{macos:"Failed to copy to clipboard. Make sure the `pbcopy` command is available on your system and try again.",windows:"Failed to copy to clipboard. Make sure the `clip` command is available on your system and try again.",wsl:"Failed to copy to clipboard. Make sure the `clip.exe` command is available in your WSL environment and try again.",linux:"Failed to copy to clipboard. Make sure `xclip` or `wl-copy` is installed on your system and try again.",unknown:"Failed to copy to clipboard. Make sure `xclip` or `wl-copy` is installed on your system and try again."}[A]}function Hh2({content:A,defaultFilename:B,onDone:Q}){let[,D]=k3.useState(null),[I,Z]=k3.useState(B),[G,F]=k3.useState(B.length),[Y,W]=k3.useState(!1),J=Q2();return Z0((K,E)=>{if(E.escape)if(Y)W(!1),D(null);else Q({success:!1,message:"Export cancelled"})}),k3.default.createElement(g,{width:"100%",flexDirection:"column"},k3.default.createElement(g,{borderStyle:"round",borderColor:"permission",flexDirection:"column",padding:1,width:"100%"},k3.default.createElement(g,null,k3.default.createElement(S,{color:"permission",bold:!0},"Export Conversation")),!Y?k3.default.createElement(k3.default.Fragment,null,k3.default.createElement(g,{marginTop:1},k3.default.createElement(S,{dimColor:!0},"Select export method:")),k3.default.createElement(g,{flexDirection:"column",marginTop:1},k3.default.createElement(d0,{options:[{label:"Copy to clipboard",value:"clipboard",description:"Copy the conversation to your system clipboard"},{label:"Save to file",value:"file",description:"Save the conversation to a file in the current directory"}],onChange:(K)=>{if(K==="clipboard")if(Kh2(A))Q({success:!0,message:"Conversation copied to clipboard"});else Q({success:!1,message:Eh2()});else if(K==="file")D("file"),W(!0)},onCancel:()=>Q({success:!1,message:"Export cancelled"})}))):k3.default.createElement(g,{flexDirection:"column",marginTop:1},k3.default.createElement(S,null,"Enter filename:"),k3.default.createElement(g,{flexDirection:"row",gap:1,marginTop:1},k3.default.createElement(S,null,">"),k3.default.createElement(u4,{value:I,onChange:Z,onSubmit:()=>{let K=I.endsWith(".txt")?I:I.replace(/\.[^.]+$/,"")+".txt",E=hx6(lA(),K);try{v1().writeFileSync(E,A,{encoding:"utf-8",flush:!0}),Q({success:!0,message:`Conversation exported to: ${K}`})}catch(U){Q({success:!1,message:`Failed to export conversation: ${U instanceof Error?U.message:"Unknown error"}`})}},focus:!0,showCursor:!0,columns:process.stdout.columns||80,cursorOffset:G,onChangeCursorOffset:F})))),k3.default.createElement(g,{marginLeft:2},Y?k3.default.createElement(S,{dimColor:!0},"Enter to save · Esc to go back"):k3.default.createElement(k3.default.Fragment,null,J.pending?k3.default.createElement(S,{dimColor:!0},"Press ",J.keyName," again to exit"):k3.default.createElement(S,{dimColor:!0},"Esc to cancel"))))}function ux6(A){let B=A.getFullYear(),Q=String(A.getMonth()+1).padStart(2,"0"),D=String(A.getDate()).padStart(2,"0"),I=String(A.getHours()).padStart(2,"0"),Z=String(A.getMinutes()).padStart(2,"0"),G=String(A.getSeconds()).padStart(2,"0");return`${B}-${Q}-${D}-${I}${Z}${G}`}function mx6(A){let B=A.find((I)=>I.type==="user");if(!B||B.type!=="user")return"";let Q=B.message?.content,D="";if(typeof Q==="string")D=Q.trim();else if(Array.isArray(Q)){let I=Q.find((Z)=>Z.type==="text");if(I&&"text"in I)D=I.text.trim()}if(D=D.split(`
2583
+ ARGUMENTS: ${K}`;let q=E.getToolPermissionContext();return U=await eg2(U,{...E,getToolPermissionContext(){return{...q,alwaysAllowRules:{...q.alwaysAllowRules,command:F}}}},`/${C}`),[{type:"text",text:U}]}}}catch(G){return f1(G instanceof Error?G:new Error(String(G))),null}}).filter((D)=>D!==null)}catch(Q){return f1(Q instanceof Error?Q:new Error(String(Q))),[]}}),PQA="user",SQA="project";function qx6(A,B){if(A.startsWith(B))return PQA;return SQA}import{join as Nh2}from"path";var jQA=G1(U1(),1);var pw1=G1(U1(),1);var _QA=G1(U1(),1);var a9=G1(U1(),1),E21=G1(U1(),1);function Qh2({onDone:A}){let[B,Q]=E21.useState("initial"),[D,I]=E21.useState("neutral"),[Z,G]=E21.useState(""),[F,Y]=E21.useState(0),W=Q2(),[{mainLoopModel:J}]=i6();return}function Dh2({showFeedback:A,showWorktree:B,onDone:Q}){let[D,I]=pw1.useState(()=>B?"worktree":A?"feedback":"done");async function Z(){if(A)I("feedback");else G()}async function G(){Q(),await U4(0)}switch(D){case"worktree":return null;case"feedback":return pw1.default.createElement(Qh2,{onDone:G});case"done":return null}}var $x6={type:"local-jsx",name:"exit",aliases:["quit"],description:"Exit the REPL",isEnabled:()=>!0,isHidden:!1,async call(A,{messages:B}){let D=await Lx6(B);if(!D)return A(),await U4(0),null;return jQA.createElement(Dh2,{showFeedback:D,showWorktree:!1,onDone:A})},userFacingName(){return"exit"}},lw1=$x6;async function Lx6(A){if(A.length<10)return!1;return await yQA()}async function yQA(){let{show:A}=await JU0("tengu-exit-feedback",{show:!1});return A}var XB=G1(U1(),1),AP=G1(U1(),1);var vD=G1(U1(),1);function Ih2({message:A,screen:B}){let Q=B==="transcript",D=oM2(A)||"";return vD.createElement(g,{flexDirection:"column"},vD.createElement(g,{flexDirection:"row"},vD.createElement(g,{minWidth:2},vD.createElement(S,{color:"text"},lU)),vD.createElement(g,{flexDirection:"column"},vD.createElement(S,{bold:!0},"Compact summary",!Q&&vD.createElement(S,{dimColor:!0}," (ctrl+r to expand)")))),Q&&vD.createElement(w0,null,vD.createElement(S,null,D)))}var n2=G1(U1(),1);import{relative as Mx6}from"path";function Rx6(){let A=GA();x0({...A,lastReleaseNotesSeen:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION})}function Zh2(){let A=GA(),{hasReleaseNotes:B,releaseNotes:Q}=n2.useMemo(()=>Tw1(A.lastReleaseNotesSeen),[A.lastReleaseNotesSeen]);n2.useEffect(()=>{if(B)Rx6()},[B]);let{source:D}=dC(!1),I=!!na()&&(D==="ANTHROPIC_API_KEY"||D==="apiKeyHelper"),Z=Z71(),G=NB()&&(Z.source==="ANTHROPIC_AUTH_TOKEN"||Z.source==="apiKeyHelper"),F=D!=="none"&&Z.source!=="none"&&!(D==="apiKeyHelper"&&Z.source==="apiKeyHelper");return n2.createElement(g,{flexDirection:"column",paddingLeft:1},n2.createElement(Px6,null),G&&n2.createElement(g,{flexDirection:"row",marginTop:1},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Auth conflict: Using ",Z.source," instead of Claude account subscription token. Either unset ",Z.source,", or run `claude /logout`.")),I&&n2.createElement(g,{flexDirection:"row",marginTop:1},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Auth conflict: Using ",D," instead of Anthropic Console key. Either unset ",D,", or run `claude /logout`.")),F&&n2.createElement(g,{flexDirection:"column",marginTop:1},n2.createElement(g,{flexDirection:"row"},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Auth conflict: Both a token (",Z.source,") and an API key (",D,") are set. This may lead to unexpected behavior.")),n2.createElement(g,{flexDirection:"column",marginLeft:3},n2.createElement(S,{color:"warning"},"• Trying to use"," ",Z.source==="claude.ai"?"claude.ai":Z.source,"?"," ",D==="ANTHROPIC_API_KEY"?'Unset the ANTHROPIC_API_KEY environment variable, or claude /logout then say "No" to the API key approval before login.':D==="apiKeyHelper"?"Unset the apiKeyHelper setting.":"claude /logout"),n2.createElement(S,{color:"warning"},"• Trying to use ",D,"?"," ",Z.source==="claude.ai"?"claude /logout to sign out of claude.ai.":`Unset the ${Z.source} environment variable.`))),B&&n2.createElement(g,{flexDirection:"column",marginTop:1},n2.createElement(S,{color:"secondaryText"},"What's new:"),n2.createElement(g,{flexDirection:"column",marginLeft:1},Q.map((Y,W)=>n2.createElement(S,{key:W,color:"secondaryText"},"• ",Y)))))}function Ox6({path:A,contentLength:B}){let Q=A.startsWith(lA())?Mx6(lA(),A):A;return n2.createElement(g,{flexDirection:"row"},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"Large ",n2.createElement(S,{bold:!0},Q)," will impact performance (",n7(B)," chars >"," ",n7(cA1),")",n2.createElement(S,{color:"secondaryText",dimColor:!0}," ","• /memory to edit")))}function Tx6(){let A=kT();if(!A)return null;let B=A.content.length;if(B>Nc)return n2.createElement(g,{flexDirection:"row",gap:1},n2.createElement(S,{color:"warning"},tA.warning),n2.createElement(S,{color:"warning"},"ULTRACLAUDE.md exceeds ",Nc," chars (",B," chars)",n2.createElement(S,{color:"secondaryText",dimColor:!0}," ","• /memory to edit")));return null}function Px6(){if($Z().length===0)return null;return n2.createElement(g,{flexDirection:"column"},Uz1().map((B)=>n2.createElement(Ox6,{key:B.path,path:B.path,contentLength:B.content.length})),n2.createElement(Tx6,null))}var eT=G1(U1(),1);function Gh2(){return GA().tipsHistory||{}}function Sx6(A){let B=GA();x0({...B,tipsHistory:A})}function Fh2(A){let B=Gh2(),Q=GA().numStartups;B[A]=Q,Sx6(B)}function _x6(A){return Gh2()[A]||0}function kQA(A){let B=_x6(A);if(B===0)return 1/0;return GA().numStartups-B}async function yx6(A){return(await Promise.all(A.map(async(Q)=>{let D=await Q.isRelevant();return{tip:Q,isRelevant:D}}))).filter((Q)=>Q.isRelevant).map((Q)=>Q.tip)}function kx6(A){return A.filter((B)=>{return kQA(B.id)>=B.cooldownSessions})}function xx6(){let A=GA(),{hasReleaseNotes:B}=Tw1(A.lastReleaseNotesSeen);return!B}function fx6(A){if(A.length===0)return;if(A.length===1)return A[0];let B=A.map((Q)=>({tip:Q,sessions:kQA(Q.id)}));return B.sort((Q,D)=>D.sessions-Q.sessions),B[0]?.tip}async function Yh2(A,B=!1){if(!xx6()||B)return;let Q=await yx6(A),D=kx6(Q);if(D.length===0)return;let I=D.find((Z)=>Z.id==="claude-opus-welcome");if(I)return I;return fx6(D)}function Wh2(A){Fh2(A.id),E1("tengu_tip_shown",{tipIdLength:A.id,cooldownSessions:A.cooldownSessions})}function Jh2({tip:A}){eT.useEffect(()=>{if(!A)return;Wh2(A)},[A]);let B=()=>{if(!A)return null;if(typeof A.content==="function")return A.content();if(A.id==="claude-opus-welcome")return eT.default.createElement(S,{color:"secondaryText"},"※ ",A.content);return eT.default.createElement(S,{color:"secondaryText"},"※ Tip: ",A.content)};return eT.default.createElement(eT.default.Fragment,null,A&&eT.default.createElement(g,{key:`tip-${A?.id}`,flexDirection:"row",marginTop:1,alignItems:"center",marginLeft:1},B()))}var IV=G1(U1(),1);async function vx6(){if(NB())return!1;let A=await DpA(!1);if(!A)return!1;return Boolean(A.account.has_claude_max)||Boolean(A.account.has_claude_pro)}function Ch2(){let[A]=IV.useState(()=>{let B=GA(),Q=B.subscriptionNoticeCount??0,D=B.hasAvailableSubscription;if(Q>=3)return!1;return D??!1});return IV.useEffect(()=>{vx6().then((B)=>{let Q=GA(),D=Q.subscriptionNoticeCount??0;if(B)D+=1;if(Q.subscriptionNoticeCount!==D||Q.hasAvailableSubscription!==B)x0({...Q,subscriptionNoticeCount:D,hasAvailableSubscription:B})})},[A]),A}function Xh2(){return IV.useEffect(()=>{E1("tengu_switch_to_subscription_notice_shown",{})},[]),IV.createElement(g,{paddingLeft:1,marginTop:1,marginBottom:1},IV.createElement(S,{color:"suggestion"},"You can now use your Claude subscription with ",A2,IV.createElement(S,{color:"text",dimColor:!0}," ","• /login to activate")))}var xQA=G1(U1(),1);function Vh2({message:A,isTranscriptMode:B}){if(!(B&&A.timestamp&&A.type==="assistant"&&A.message.content.some((I)=>I.type==="text")))return null;let D=new Date(A.timestamp).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1});return xQA.default.createElement(g,{marginTop:1},xQA.default.createElement(S,{dimColor:!0},D))}var H21=10;function z21({messages:A,normalizedMessageHistory:B,tools:Q,verbose:D,toolJSX:I,toolUseConfirmQueue:Z,inProgressToolUseIDs:G,isMessageSelectorVisible:F,tipOfTheDay:Y,conversationId:W,screen:J,screenToggleId:C,streamingToolUses:X,showAllInTranscript:V=!1}){let K=Vp(),{columns:E}=z9(),U=Ch2(),q=RR2(),[R,M]=XB.useState([]);XB.useEffect(()=>{Lp().then((p)=>M(p))},[]);let T=AP.useMemo(()=>o3(A).filter(Bk),[A]),L=AP.useMemo(()=>new Set(Object.keys(Fc(T))),[T]),P=AP.useMemo(()=>sH1(T),[T]),_=AP.useMemo(()=>X.filter((p)=>{if(G.has(p.contentBlock.id))return!1;if(T.some((m)=>m.type==="assistant"&&m.message.content[0].type==="tool_use"&&m.message.content[0].id===p.contentBlock.id))return!1;return!0}),[X,G,T]),d=AP.useMemo(()=>_.flatMap((p)=>o3([sY({content:[p.contentBlock]})])),[_]),y=AP.useCallback((p)=>{let m=J==="transcript",o=m&&!V,A1=o?T.slice(-H21):T,f=o&&T.length>H21;return[{type:"static",jsx:XB.createElement(g,{flexDirection:"column",gap:1,key:`logo-${W}-${C}`},XB.createElement(Xp,{model:K}),tU1()?XB.createElement(V9A,null):XB.createElement(Zh2,null))},...!_4(process.env.IS_DEMO)&&Y?[{type:"static",jsx:XB.createElement(g,{key:`tip-of-the-day-${W}-${C}`},XB.createElement(Jh2,{tip:Y}))}]:[],...U?[{type:"static",jsx:XB.createElement(g,{key:`max-subscription-${W}-${C}`},XB.createElement(Xh2,null))}]:[],...q&&!U?[{type:"static",jsx:XB.createElement(g,{key:`subscription-upsell-${W}-${C}`},XB.createElement(OR2,null))}]:[],...R.length>0?[{type:"static",jsx:XB.createElement(g,{key:`install-messages-${W}-${C}`,flexDirection:"column",paddingLeft:1},R.map((s,V1)=>XB.createElement(g,{key:V1,flexDirection:"row",marginTop:1},XB.createElement(S,{color:"warning"},tA.bullet),XB.createElement(S,{color:"warning"}," ",s))))}]:[],...f?[{type:"static",jsx:XB.createElement(qp,{key:`truncation-indicator-${W}-${C}`,dividerChar:"─",title:`Ctrl+E to show ${WA.bold(T.length-H21)} previous messages`,titleColor:"secondaryText",dividerColor:"secondaryBorder",width:E})}]:[],...m&&V&&T.length>H21?[{type:"static",jsx:XB.createElement(qp,{key:`hide-indicator-${W}-${C}`,dividerChar:"─",title:`Ctrl+E to hide ${WA.bold(T.length-H21)} previous messages`,titleColor:"secondaryText",dividerColor:"secondaryBorder",width:E})}]:[],...B.length>0?[{type:"static",jsx:XB.createElement(g,{flexDirection:"column",gap:1,key:`history-${W}-${C}`},mAA(B.filter((s)=>s.type!=="progress").filter((s)=>s.type!=="user"||!s.isMeta),[]).map((s)=>XB.createElement(g,{key:`history-${s.uuid}-${C}`,width:E-5},XB.createElement(jF,{message:s,messages:B,addMargin:!0,tools:Q,verbose:p,erroredToolUseIDs:new Set,inProgressToolUseIDs:new Set,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!0,resolvedToolUseIDs:new Set}))),XB.createElement(qp,{dividerChar:"=",title:"Previous Conversation Compacted"}))}]:[],...mAA(A1.filter((s)=>s.type!=="progress").filter((s)=>s.type!=="user"||!s.isMeta),d).map((s)=>{let V1=kA1(s),h1=tM2(s,T),g1=s.type==="user"&&s.isCompactSummary?XB.createElement(Ih2,{message:s,screen:J}):XB.createElement(jF,{message:s,messages:T,addMargin:!0,tools:Q,verbose:p,erroredToolUseIDs:P,inProgressToolUseIDs:G,progressMessagesForMessage:h1,shouldAnimate:!I&&!Z.length&&!F&&(!V1||G.has(V1)),shouldShowDot:!0,resolvedToolUseIDs:L});return{type:bx6(s,A,new Set(X.map((ZA)=>ZA.contentBlock.id)),L,J)?"static":"transient",jsx:XB.createElement(g,{key:`${s.uuid}-${h1.length}-${C}`,width:E-5,flexDirection:"column"},XB.createElement(Vh2,{message:s,isTranscriptMode:m}),g1)}}).filter((s)=>s!==void 0),...QO2()?[{type:"static",jsx:XB.createElement(IO2,null)}]:[]]},[J,V,T,W,C,K,Y,U,q,R,E,B,d,Q,P,G,I,Z.length,F,L,A,X]);return XB.createElement(XB.Fragment,null,XB.createElement(A81,{key:`static-messages-${W}-${C}`,items:y(D).filter((p)=>p.type==="static")},(p)=>p.jsx),y(D).filter((p)=>p.type==="transient").map((p)=>p.jsx))}function bx6(A,B,Q,D,I){if(I==="transcript")return!0;switch(A.type){case"attachment":return!0;case"system":case"user":case"assistant":{let Z=kA1(A);if(!Z)return!0;if(Q.has(Z))return!1;let G=rM2(A,B);return fe0(G,D)}case"progress":return!1}}var U21=G1(U1(),1);var k3=G1(U1(),1);import{join as hx6}from"path";import{execSync as gx6}from"child_process";function Kh2(A){let B=n4(),D={macos:["pbcopy"],linux:["xclip -selection clipboard","wl-copy"],wsl:["clip.exe"],windows:["clip"],unknown:["xclip -selection clipboard","wl-copy"]}[B];for(let I of D)try{return gx6(I,{input:A,encoding:"utf-8"}),!0}catch(Z){f1(new Error(`Failed to execute clipboard command "${I}": ${Z}`));continue}return f1(new Error(`Failed to copy to clipboard on ${B}`)),!1}function Eh2(){let A=n4();return{macos:"Failed to copy to clipboard. Make sure the `pbcopy` command is available on your system and try again.",windows:"Failed to copy to clipboard. Make sure the `clip` command is available on your system and try again.",wsl:"Failed to copy to clipboard. Make sure the `clip.exe` command is available in your WSL environment and try again.",linux:"Failed to copy to clipboard. Make sure `xclip` or `wl-copy` is installed on your system and try again.",unknown:"Failed to copy to clipboard. Make sure `xclip` or `wl-copy` is installed on your system and try again."}[A]}function Hh2({content:A,defaultFilename:B,onDone:Q}){let[,D]=k3.useState(null),[I,Z]=k3.useState(B),[G,F]=k3.useState(B.length),[Y,W]=k3.useState(!1),J=Q2();return Z0((K,E)=>{if(E.escape)if(Y)W(!1),D(null);else Q({success:!1,message:"Export cancelled"})}),k3.default.createElement(g,{width:"100%",flexDirection:"column"},k3.default.createElement(g,{borderStyle:"round",borderColor:"permission",flexDirection:"column",padding:1,width:"100%"},k3.default.createElement(g,null,k3.default.createElement(S,{color:"permission",bold:!0},"Export Conversation")),!Y?k3.default.createElement(k3.default.Fragment,null,k3.default.createElement(g,{marginTop:1},k3.default.createElement(S,{dimColor:!0},"Select export method:")),k3.default.createElement(g,{flexDirection:"column",marginTop:1},k3.default.createElement(d0,{options:[{label:"Copy to clipboard",value:"clipboard",description:"Copy the conversation to your system clipboard"},{label:"Save to file",value:"file",description:"Save the conversation to a file in the current directory"}],onChange:(K)=>{if(K==="clipboard")if(Kh2(A))Q({success:!0,message:"Conversation copied to clipboard"});else Q({success:!1,message:Eh2()});else if(K==="file")D("file"),W(!0)},onCancel:()=>Q({success:!1,message:"Export cancelled"})}))):k3.default.createElement(g,{flexDirection:"column",marginTop:1},k3.default.createElement(S,null,"Enter filename:"),k3.default.createElement(g,{flexDirection:"row",gap:1,marginTop:1},k3.default.createElement(S,null,">"),k3.default.createElement(u4,{value:I,onChange:Z,onSubmit:()=>{let K=I.endsWith(".txt")?I:I.replace(/\.[^.]+$/,"")+".txt",E=hx6(lA(),K);try{v1().writeFileSync(E,A,{encoding:"utf-8",flush:!0}),Q({success:!0,message:`Conversation exported to: ${K}`})}catch(U){Q({success:!1,message:`Failed to export conversation: ${U instanceof Error?U.message:"Unknown error"}`})}},focus:!0,showCursor:!0,columns:process.stdout.columns||80,cursorOffset:G,onChangeCursorOffset:F})))),k3.default.createElement(g,{marginLeft:2},Y?k3.default.createElement(S,{dimColor:!0},"Enter to save · Esc to go back"):k3.default.createElement(k3.default.Fragment,null,J.pending?k3.default.createElement(S,{dimColor:!0},"Press ",J.keyName," again to exit"):k3.default.createElement(S,{dimColor:!0},"Esc to cancel"))))}function ux6(A){let B=A.getFullYear(),Q=String(A.getMonth()+1).padStart(2,"0"),D=String(A.getDate()).padStart(2,"0"),I=String(A.getHours()).padStart(2,"0"),Z=String(A.getMinutes()).padStart(2,"0"),G=String(A.getSeconds()).padStart(2,"0");return`${B}-${Q}-${D}-${I}${Z}${G}`}function mx6(A){let B=A.find((I)=>I.type==="user");if(!B||B.type!=="user")return"";let Q=B.message?.content,D="";if(typeof Q==="string")D=Q.trim();else if(Array.isArray(Q)){let I=Q.find((Z)=>Z.type==="text");if(I&&"text"in I)D=I.text.trim()}if(D=D.split(`
2584
2584
  `)[0]||"",D.length>50)D=D.substring(0,50)+"...";return D}function dx6(A){return A.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function cx6(A){let B=A.options.tools||[],D=await i9A(U21.default.createElement(()=>U21.default.createElement(W5,null,U21.default.createElement(z21,{messages:A.messages,normalizedMessageHistory:[],tools:B,verbose:!1,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:new Set,isMessageSelectorVisible:!1,conversationId:"export",screen:"prompt",screenToggleId:0,streamingToolUses:[],showAllInTranscript:!0})),null));return h7(D)}var px6={type:"local-jsx",name:"export",description:"Export the current conversation to a file or clipboard",isEnabled:()=>!0,isHidden:!1,argumentHint:"[filename]",async call(A,B,Q){let D;if(!Q.trim()){let Z=mx6(B.messages),G=ux6(new Date);if(Z){let F=dx6(Z);D=F?`${G.substring(0,10)}-${F}.txt`:`conversation-${G}.txt`}else D=`conversation-${G}.txt`}else D=Q.trim();let I=await cx6(B);return U21.default.createElement(Hh2,{content:I,defaultFilename:D,onDone:(Z)=>{A(Z.message)}})},userFacingName(){return"export"}},zh2=px6;var k$=G1(U1(),1);var lx6=["help","-h","--help"],ix6=["list","show","display","current","view","get","check","describe","print","version","about","status","?"];function nx6({onDone:A}){let[{mainLoopModel:B},Q]=i6();return Z0((D,I)=>{if(I.escape){E1("tengu_model_command_menu",{action:"cancel"});let Z=B??Mj().label;A(`Kept model as ${WA.bold(Z)}`);return}}),k$.createElement(Yw1,{initial:B,onSelect:(D)=>{E1("tengu_model_command_menu",{action:D,from_model:B,to_model:D}),Q((I)=>({...I,mainLoopModel:D})),A(`Set model to ${WA.bold(Tj(D))}`)}})}function ax6({args:A,onDone:B}){let[Q,D]=i6(),I=A==="default"?null:A;if(NB()&&!QG()&&I!==null&&I.toLowerCase().includes("opus"))return B("Invalid model. Claude Pro users are not currently able to use Opus 4 in Claude Code. The current model is now Sonnet 4."),null;return setTimeout(()=>{D((Z)=>({...Z,mainLoopModel:I})),B(`Set model to ${WA.bold(Tj(I))}`)},0),null}function rx6({onDone:A}){let[{mainLoopModel:B}]=i6(),Q=B??Mj().label;return setTimeout(()=>A(`Current model: ${Q}`),0),null}var Uh2={type:"local-jsx",name:"model",userFacingName(){return"model"},description:"Set the AI model for Claude Code",isEnabled:()=>!0,isHidden:!1,argumentHint:"[model]",async call(A,B,Q){if(Q=Q?.trim()||"",ix6.includes(Q))return E1("tengu_model_command_inline_help",{args:Q}),k$.createElement(rx6,{onDone:A});if(lx6.includes(Q)){setTimeout(()=>A("Run /model to open the model selection menu, or /model [modelName] to set the model."),0);return}if(Q)return E1("tengu_model_command_inline",{args:Q}),k$.createElement(ax6,{args:Q,onDone:A});return k$.createElement(nx6,{onDone:A})}};var w21=G1(U1(),1);var sx6={type:"local-jsx",name:"upgrade",description:"Upgrade to Max for higher rate limits and more Opus",isEnabled:()=>!eb(),isHidden:!1,async call(A,B){try{if(NB()){let D=m7();if(D?.accessToken){let I=await p51(D.accessToken);if(I?.organization?.organization_type==="claude_max"&&I?.organization?.rate_limit_tier==="default_claude_max_20x")return setTimeout(()=>{A("You are already on the highest Max subscription plan. For additional usage, run /login to switch to an API usage-billed account.")},0),null}}return await Bp("https://claude.ai/upgrade/max"),w21.createElement(a9A,{startingMessage:"Starting new login following /upgrade. Exit with Ctrl-C to use existing account.",onDone:(D,I)=>{Y21(w21.createElement(Xp,{model:I})),B.onChangeAPIKey(),A(D?"Login successful":"Login interrupted")}})}catch(Q){f1(Q),setTimeout(()=>{A("Failed to open browser. Please visit https://claude.ai/upgrade/max to upgrade.")},0)}return null},userFacingName(){return"upgrade"}},wh2=sx6;var ox6=T0(()=>[_x2,Mf2,Rf2,Pf2,Sf2,Tv2,lw1,og2,xv2,fv2,vv2,Hb2,Nb2,yv2,Ub2,Uh2,qb2,Rb2,Ob2,Eg2,wf2,Pw1,Yw,wh2,Ug2,Sg2,sg2,zh2,...!eb()?[dv2,ov2()]:[],...process.env.ENABLE_BACKGROUND_TASKS?[zg2]:[],...[],...[]]),fQA=T0(async()=>{let A=Nh2(x9(),"commands"),B=Nh2(lA(),".claude","commands");return[...await Bh2(A,B),...ox6()].filter((D)=>D.isEnabled())});function qh2(A,B){return B.some((Q)=>Q.userFacingName()===A||Q.aliases?.includes(A))}function iw1(A,B){let Q=B.find((D)=>D.userFacingName()===A||D.aliases?.includes(A));if(!Q)throw ReferenceError(`Command ${A} not found. Available commands: ${B.map((D)=>{let I=D.userFacingName();return D.aliases?`${I} (aliases: ${D.aliases.join(", ")})`:I}).join(", ")}`);return Q}var tx6=/[:_-]/g;function nw1(A){return A.startsWith("/")}function ex6(A){if(!nw1(A))return!1;if(!A.includes(" "))return!1;if(A.endsWith(" "))return!1;return!0}function Af6(A){return`/${A} `}function $h2(A){let B=A.userFacingName(),Q=A.aliases&&A.aliases.length>0?` (${A.aliases.join(", ")})`:"";return{id:B,displayText:`/${B}${Q}`,description:A.description+(A.type==="prompt"&&A.argNames?.length?` (arguments: ${A.argNames.join(", ")})`:""),metadata:A}}function Lh2(A,B){if(!nw1(A))return[];if(ex6(A))return[];let Q=A.slice(1).toLowerCase();if(Q.trim()===""){let F=B.filter((X)=>!X.isHidden),Y=[],W=[],J=[];F.forEach((X)=>{let V=X.description;if(V.endsWith(` (${PQA})`))Y.push(X);else if(V.endsWith(` (${SQA})`))W.push(X);else J.push(X)});let C=(X,V)=>X.userFacingName().localeCompare(V.userFacingName());return Y.sort(C),W.sort(C),J.sort(C),[...Y,...W,...J].map($h2)}let D=B.filter((F)=>!F.isHidden).flatMap((F)=>{let Y=F.userFacingName(),W=[];if(W.push({nameKey:Y,commandName:F.userFacingName(),command:F}),Y.split(tx6).filter(Boolean).forEach((C)=>{W.push({partKey:C,commandName:F.userFacingName(),command:F})}),F.aliases)F.aliases.forEach((C)=>{W.push({aliasKey:C,commandName:F.userFacingName(),command:F})});return F.description.split(" ").forEach((C)=>{let X=C.toLowerCase().replace(/[^a-z0-9]/g,"");if(X)W.push({descriptionKey:X,commandName:F.userFacingName(),command:F})}),W}),Z=new AV(D,{includeScore:!0,threshold:0.3,location:0,distance:100,keys:[{name:"nameKey",weight:2},{name:"partKey",weight:2},{name:"aliasKey",weight:2},{name:"descriptionKey",weight:0.5}]}).search(Q),G=new Map;return Z.forEach((F)=>{let{commandName:Y,command:W}=F.item;if(!G.has(Y))G.set(Y,W)}),Array.from(G.entries()).map(([F,Y])=>$h2(Y))}function vQA(A,B,Q,D,I,Z){let G=typeof A==="string"?A:A.id,F=Af6(G);if(D(F),I(F.length),B){let Y=typeof A==="string"?iw1(G,Q):A.metadata;if(Y.type!=="prompt"||(Y.argNames??[]).length===0)Z(F,!0)}}import*as KW from"path";var aw1=[],bQA=null;function Bf6(A){let B=new Set;return A.forEach((Q)=>{let I=KW.dirname(Q);while(I!=="."&&I!==KW.parse(I).root)B.add(I),I=KW.dirname(I)}),[...B].map((Q)=>Q+KW.sep)}async function Mh2(){let A=new AbortController,B=(await jN(["--files","--follow"],".",A.signal)).map((D)=>KW.relative(Y9(),D));return[...Bf6(B),...B]}function Qf6(A,B){let Q=Math.min(A.length,B.length),D=0;while(D<Q&&A[D]===B[D])D++;return A.substring(0,D)}function Oh2(A){if(A.length===0)return"";let B=A.map((D)=>D.displayText),Q=B[0];for(let D=1;D<B.length;D++){let I=B[D];if(Q=Qf6(Q,I),Q==="")return""}return Q}function Rh2(A){return{id:`file-${A}`,displayText:A}}var gQA=15;function Df6(A,B){if(!B){let G=new Set;for(let F of A){let Y=F.split(KW.sep)[0];if(Y){if(G.add(Y),G.size>=gQA)break}}return[...G].sort().map(Rh2)}let Q=A.map((G)=>{return{path:G,filename:KW.basename(G),testPenalty:G.includes("test")?1:0}}),D=B.lastIndexOf(KW.sep);if(D>2)Q=Q.filter((G)=>{return G.path.substring(0,D).startsWith(B.substring(0,D))});let Z=new AV(Q,{includeScore:!0,threshold:0.5,keys:[{name:"path",weight:1},{name:"filename",weight:2}]}).search(B,{limit:gQA});return Z=Z.sort((G,F)=>{if(G.score===void 0||F.score===void 0)return 0;if(Math.abs(G.score-F.score)>0.05)return G.score-F.score;return G.item.testPenalty-F.item.testPenalty}),Z.map((G)=>G.item.path).slice(0,gQA).map(Rh2)}async function Th2(A,B=!1){if(!A&&!B)return[];try{if(aw1.length===0)aw1=await Mh2();else if(!bQA)bQA=Mh2().then((Z)=>{return aw1=Z,bQA=null,Z});let Q=A,D="."+KW.sep;if(A.startsWith(D))Q=A.substring(2);return Df6(aw1,Q)}catch(Q){return f1(Q),[]}}function rw1(A,B,Q,D,I,Z){let G=typeof A==="string"?A:A.displayText,F=B.substring(0,D)+G+B.substring(D+Q.length);I(F);let Y=D+G.length;Z(Y)}import*as Sh2 from"path";function Ph2(A){switch(A.type){case"file":return{id:`file-${A.path}`,displayText:A.displayText,description:A.description};case"mcp_resource":return{id:`mcp-resource-${A.server}__${A.uri}`,displayText:A.displayText,description:A.description}}}var hQA=15;async function uQA(A,B,Q=!1){if(!A&&!Q)return[];let I=(await Th2(A,Q)).map((W)=>({type:"file",displayText:W.displayText,description:W.description,path:W.displayText,filename:Sh2.basename(W.displayText)})),Z=Object.values(B).flat().map((W)=>({type:"mcp_resource",displayText:`${W.server}:${W.uri}`,description:W.name+(W.description?` - ${W.description}`:""),server:W.server,uri:W.uri,name:W.name||W.uri})),G=[...I,...Z];if(G.length===0)return[];if(!A)return G.slice(0,hQA).map(Ph2);return new AV(G,{includeScore:!0,threshold:0.4,keys:[{name:"displayText",weight:2},{name:"name",weight:3},{name:"server",weight:1},{name:"description",weight:1},{name:"path",weight:2},{name:"filename",weight:2}]}).search(A,{limit:hQA}).map((W)=>W.item).slice(0,hQA).map(Ph2)}function N21(A,B,Q=!1){if(!A)return null;let D=A.substring(0,B),I=Q?/(@[a-zA-Z0-9_\-./\\]*|[a-zA-Z0-9_\-./\\]+)$/:/[a-zA-Z0-9_\-./\\]+$/,Z=D.match(I);if(!Z||Z.index===void 0)return null;return{token:Z[0],startPos:Z.index}}function _h2({commands:A,onInputChange:B,onSubmit:Q,setCursorOffset:D,input:I,cursorOffset:Z,setSuggestionsState:G,suggestionsState:{suggestions:F,selectedSuggestion:Y,commandArgumentHint:W}}){let[J,C]=_E.useState("none"),[X,V]=_E.useState(void 0),[K]=i6(),E=_E.useCallback(()=>{G(()=>({commandArgumentHint:void 0,suggestions:[],selectedSuggestion:-1})),C("none"),V(void 0)},[G]),U=_E.useCallback(async(L,P=!1)=>{let _=await uQA(L,K.mcp.resources,P);if(_.length===0){E();return}G(()=>({commandArgumentHint:void 0,suggestions:_,selectedSuggestion:_.length>0?0:-1})),C(_.length>0?"file":"none"),V(void 0)},[K.mcp.resources,E,G]),q=pS2(U,200),R=_E.useCallback(async(L,P=Z)=>{let _=L.substring(0,P).match(/(^|\s)@[a-zA-Z0-9_\-./\\]*$/),d=P===L.length&&P>0&&L.length>0&&L[P-1]===" ";if(nw1(L)&&P>0&&!d){if(L.includes(" ")&&!L.endsWith(" ")){E();return}let y=Lh2(L,A),p=void 0;if(L.length>1){let m=L.endsWith(" ")?L.slice(1,-1):L.slice(1),o=A.find((A1)=>A1.userFacingName()===m&&A1.argumentHint);if(o?.argumentHint)p=o.argumentHint}if(G(()=>({commandArgumentHint:p,suggestions:y,selectedSuggestion:y.length>0?0:-1})),C(y.length>0?"command":"none"),y.length>0){let m=Math.max(...y.map((o)=>o.displayText.length));V(m+5)}return}if(J==="command"){E();return}if(_){let y=N21(L,P,!0);if(y&&y.token.startsWith("@")){let p=y.token.substring(1);q(p,!0);return}}if(J==="file"){let y=N21(L,P,!0);if(y){let p=y.token.startsWith("@")?y.token.substring(1):y.token;q(p,!1)}else E()}},[Z,J,A,G,E,q]);_E.useEffect(()=>{R(I)},[I,R]);let M=_E.useCallback(async()=>{if(F.length>0){let L=Y===-1?0:Y;if(J==="command"&&L<F.length){let P=F[L];if(P)vQA(P,!1,A,B,D,Q),E()}else if(J==="file"&&F.length>0){let P=N21(I,Z,!0);if(!P){E();return}let _=Oh2(F),d=P.token.startsWith("@"),y=d?P.token.length-1:P.token.length;if(_.length>y){let p=d?`@${_}`:_;rw1(p,I,P.token,P.startPos,B,D),R(I.replace(P.token,p),Z)}else if(L<F.length){let p=F[L];if(p){let m=d?`@${p.displayText} `:p.displayText;rw1(m,I,P.token,P.startPos,B,D),E()}}}}else if(I.trim()!==""){let L=N21(I,Z,!0);if(L){let P=L.token.startsWith("@"),_=P?L.token.substring(1):L.token,d=await uQA(_,K.mcp.resources,P);if(d.length>0)G(()=>({commandArgumentHint:void 0,suggestions:d,selectedSuggestion:0})),C("file"),V(void 0)}}},[F,Y,I,J,A,B,D,Q,E,Z,R,K.mcp.resources,G]),T=_E.useCallback(()=>{if(Y<0||F.length===0)return;if(J==="command"&&Y<F.length){let L=F[Y];if(L)vQA(L,!0,A,B,D,Q),E()}else if(J==="file"&&Y<F.length){let L=N21(I,Z,!0);if(L){let P=F[Y];if(P){let d=L.token.startsWith("@")?`@${P.displayText} `:P.displayText;rw1(d,I,L.token,L.startPos,B,D),E()}}}},[F,Y,J,A,I,Z,B,D,Q,E]);return Z0((L,P)=>{if(P.tab&&!P.shift){M();return}if(F.length===0)return;if(P.downArrow||P.ctrl&&L==="n"){G((_)=>({..._,selectedSuggestion:_.selectedSuggestion>=F.length-1?0:_.selectedSuggestion+1}));return}if(P.upArrow||P.ctrl&&L==="p"){G((_)=>({..._,selectedSuggestion:_.selectedSuggestion<=0?F.length-1:_.selectedSuggestion-1}));return}if(P.return)T();if(P.escape)E()}),{suggestions:F,selectedSuggestion:Y,suggestionType:J,maxColumnWidth:X,commandArgumentHint:W}}var sw1=G1(U1(),1);var BP=G1(U1(),1);var If6=1e4;function jh2(A){let[B,Q]=BP.useState("INSERT"),D=BP.default.useRef(""),I=BP.default.useRef(null),Z=BP.default.useRef(""),G=BP.default.useRef(""),F=BP.default.useRef(null),{onMessage:Y}=A,W=Dw1(A),J=(_,d)=>{return _===d&&(_==="d"||_==="c")},C=(_,d)=>{switch(_){case"h":return d.left();case"l":return d.right();case"j":return d.downLogicalLine();case"k":return d.upLogicalLine();case"0":return d.startOfLogicalLine();case"^":return d.firstNonBlankInLogicalLine();case"$":return d.endOfLogicalLine();case"w":return d.nextWord();case"e":return d.endOfWord();case"b":return d.prevWord();case"W":return d.nextWORD();case"E":return d.endOfWORD();case"B":return d.prevWORD();case"gg":return d.startOfFirstLine();case"G":return d.startOfLastLine();default:return null}},X=(_,d,y=1)=>{if(J(_,D.current))return d.startOfLine();let p=d;for(let m=0;m<y;m++){if(!p)break;p=C(_,p)}return p},V=(_,d,y,p=1)=>{let m=W.offset,o=_==="change";if(J(d,D.current)){let f=y.startOfLogicalLine();if(y.text.indexOf(`
2585
2585
  `)===-1)A.onChange(""),m=0;else{let{line:s}=y.getPosition();if(_==="delete"){let V1=y.text.split(`
2586
2586
  `),h1=Math.min(p,V1.length-s);V1.splice(s,h1);let g1=V1.join(`
@@ -2588,7 +2588,7 @@ ARGUMENTS: ${K}`;let q=E.getToolPermissionContext();return U=await eg2(U,{...E,g
2588
2588
  `);for(let h1=0;h1<Math.min(p,V1.length-s);h1++)V1[s+h1]="";A.onChange(V1.join(`
2589
2589
  `)),m=f.offset}else m=f.offset}return{newOffset:m,switchToInsert:o}}let A1=X(d,y,p);if(!A1||y.equals(A1))return{newOffset:m,switchToInsert:o};if(_==="move")m=A1.offset;else{let[f,s]=y.offset<=A1.offset?[y,A1]:[A1,y],V1=s;if(d==="e"&&y.offset<=A1.offset)V1=s.right();else if((d==="w"||d==="W")&&_==="change")V1=M(y,d,p);let h1=f.modifyText(V1,"");if(A.onChange(h1.text),_==="change")m=f.offset;else m=h1.offset}return{newOffset:m,switchToInsert:o}},K=(_)=>{if(_!==void 0)W.setOffset(_);Q("INSERT"),A.onModeChange?.("INSERT"),Y?.(!0,"-- INSERT MODE --"),setTimeout(()=>Y?.(!1),1000)},E=()=>{Q("NORMAL"),A.onModeChange?.("NORMAL"),Y?.(!0,"-- NORMAL MODE --"),setTimeout(()=>Y?.(!1),1000)},U=(_)=>{I.current=_},q=(_,d)=>{if(d==="below"){let p=_.endOfLogicalLine().insert(`
2590
2590
  `);return A.onChange(p.text),p.offset}else{let y=_.startOfLogicalLine(),p=y.insert(`
2591
- `);return A.onChange(p.text),y.offset}},R=(_,d)=>{let y=_.text[_.offset]??"";return d.test(y)},M=(_,d,y)=>{let m=d==="w"?/\w/:/\S/;if(!R(_,m))return X(d,_,y)||_;let o=_;while(R(o,m)&&!o.isAtEnd())o=o.right();if(y>1)for(let A1=1;A1<y;A1++){while(!R(o,m)&&!o.isAtEnd())o=o.right();while(R(o,m)&&!o.isAtEnd())o=o.right()}return o},T=(_)=>{let d=I.current;if(!d)return;switch(d.type){case"delete":if(d.motion){let{newOffset:y}=V("delete",d.motion,_,d.count||1);W.setOffset(y)}break;case"change":if(d.motion){let{newOffset:y}=V("change",d.motion,_,d.count||1);W.setOffset(y),K(y)}break;case"insert":if(d.insertedText){let y=_.insert(d.insertedText);A.onChange(y.text),W.setOffset(y.offset)}break;case"x":{let y=d.count||1,p=_;for(let m=0;m<y;m++)if(!p.equals(p.del()))p=p.del();A.onChange(p.text),W.setOffset(p.offset);break}case"o":{let y=q(_,"below");K(y);break}case"O":{let y=q(_,"above");K(y);break}case"replace":break;case"r":{if(d.replacementChar){let y=d.count||1,p=_;for(let m=0;m<y;m++)if(p=p.modifyText(p.right(),d.replacementChar),m<y-1)p=X4.fromText(p.text,A.columns,p.offset+1);A.onChange(p.text),W.setOffset(_.offset)}break}}},L=(_=!0)=>{if(!G.current)return 1;let d=parseInt(G.current,10);if(isNaN(d)){if(_)G.current="";return 1}let y=Math.min(d,If6);if(_)G.current="";return y};return{...W,onInput:(_,d)=>{let y=X4.fromText(A.value,A.columns,W.offset);if(d.ctrl){W.onInput(_,d);return}if(d.escape&&B==="INSERT"){if(Z.current)U({type:"insert",insertedText:Z.current}),Z.current="";E();return}if(B==="NORMAL"&&F.current){if("0123456789".includes(_)){G.current+=_;return}let o=F.current,A1=L(),{newOffset:f}=V(o,_,y,A1);if(W.setOffset(f),U({type:o,motion:_,count:A1}),F.current=null,D.current="",o==="change")K(f);return}let p=(o,A1,f)=>{let{newOffset:s}=V(o,A1,y,f||1);if(W.setOffset(s),o!=="move")U({type:o,motion:A1,count:f});if(o==="change")K(s);D.current=""},m=(o)=>{Z.current="",K(o.offset)};if(B==="NORMAL"&&D.current){switch(D.current){case"d":if(_==="d"){let A1=L();p("delete",_,A1),F.current=null;return}return;case"c":if(_==="c"){let A1=L();p("change",_,A1),F.current=null;return}return;case"g":if(_==="g"){let A1=L();p("move","gg",A1);return}break;case"r":{let A1=L(),f=y;for(let s=0;s<A1;s++)if(f=f.modifyText(f.right(),_),s<A1-1)f=X4.fromText(f.text,A.columns,f.offset+1);A.onChange(f.text),W.setOffset(y.offset),U({type:"r",replacementChar:_,count:A1}),D.current="";return}}D.current=""}if(B==="NORMAL"){if("0123456789".includes(_)){if(_==="0"&&G.current===""){let{newOffset:o}=V("move","0",y);W.setOffset(o);return}G.current+=_;return}switch(_){case".":{T(y);return}case"u":{if(A.onUndo)A.onUndo();return}case"i":G.current="",Z.current="",K();return;case"I":{G.current="",m(y.startOfLogicalLine());return}case"a":{G.current="",m(y.right());return}case"A":{G.current="",m(y.endOfLogicalLine());return}case"o":{G.current="";let o=q(y,"below");U({type:"o"}),m(new X4(y.measuredText,o));return}case"O":{G.current="";let o=q(y,"above");U({type:"O"}),m(new X4(y.measuredText,o));return}case"h":case"l":case"j":case"k":case"^":case"$":case"w":case"e":case"b":case"W":case"E":case"B":case"G":{let o=L();p("move",_,o);return}case"g":{D.current="g";return}case"r":{D.current="r";return}case"x":{let o=L(),A1=y;for(let f=0;f<o;f++)if(!A1.equals(A1.del()))A1=A1.del();A.onChange(A1.text),W.setOffset(A1.offset),U({type:"x",count:o});return}case"d":D.current="d",F.current="delete";return;case"D":{let o=L();p("delete","$",o);return}case"c":D.current="c",F.current="change";return;case"C":{let o=L();p("change","$",o);return}case"?":{A.onChange("?");return}}}if(d.return){W.onInput(_,d);return}if(B==="INSERT"){if(d.backspace||d.delete){if(Z.current.length>0)Z.current=Z.current.slice(0,-1)}else Z.current+=_;W.onInput(_,d)}},mode:B,setMode:Q}}function mQA(A){let[B]=lB(),Q=jh2({value:A.value,onChange:A.onChange,onSubmit:A.onSubmit,onExit:A.onExit,onExitMessage:A.onExitMessage,onMessage:A.onMessage,onHistoryReset:A.onHistoryReset,onHistoryUp:A.onHistoryUp,onHistoryDown:A.onHistoryDown,focus:A.focus,mask:A.mask,multiline:A.multiline,cursorChar:A.showCursor?" ":"",highlightPastedText:A.highlightPastedText,invert:WA.inverse,themeText:MB("text",B),columns:A.columns,onImagePaste:A.onImagePaste,disableCursorMovementForUpDownKeys:A.disableCursorMovementForUpDownKeys,externalOffset:A.cursorOffset,onOffsetChange:A.onChangeCursorOffset,onModeChange:A.onModeChange,isMessageLoading:A.isLoading,onUndo:A.onUndo}),{mode:D,setMode:I}=Q;return sw1.default.useEffect(()=>{if(A.initialMode&&A.initialMode!==D)I(A.initialMode)},[A.initialMode,D,I]),sw1.default.createElement(g,{flexDirection:"column"},sw1.default.createElement(Zw1,{inputState:Q,terminalFocus:!0,...A}))}function jp(){return GA().editorMode==="vim"}function yh2(){if(Yw.isEnabled()&&nA.terminal==="Apple_Terminal"&&Zf2())return"option + ⏎ for newline";if(Yw.isEnabled()&&If2())return"shift + ⏎ for newline";return Gf2()?"\\⏎ for newline":"backslash (\\) + return (⏎) for newline"}var o8=G1(U1(),1);function kh2(A){switch(A.mode){case"default":return"acceptEdits";case"acceptEdits":return"plan";case"plan":return A.isBypassPermissionsModeAvailable?"bypassPermissions":"default";case"bypassPermissions":return"default"}}var SB=G1(U1(),1),rh2=G1(U1(),1);var JQ=G1(U1(),1);function xh2({exitMessage:A,vimMode:B,mode:Q,notification:D,toolPermissionContext:I,suppressHint:Z,shellsSelected:G,isPasting:F}){if(A.show)return JQ.createElement(S,{dimColor:!0,key:"exit-message"},"Press ",A.key," again to exit");if(F)return JQ.createElement(S,{dimColor:!0,key:"pasting-message"},"Pasting text...");if(D.show&&D.content)if("jsx"in D.content)return JQ.createElement(g,{key:"notification-content",flexGrow:1},D.content.jsx);else return JQ.createElement(S,{color:D.content.color,dimColor:!D.content.color,key:"notification"},D.content.text);let Y=jp()&&B==="INSERT";return JQ.createElement(g,{justifyContent:"flex-start",gap:1},Y?JQ.createElement(S,{dimColor:!0,key:"vim-insert"},"-- INSERT --"):null,JQ.createElement(Zf6,{mode:Q,toolPermissionContext:I,showHint:!Z&&!Y,shellsSelected:G}))}function Zf6({mode:A,toolPermissionContext:B,showHint:Q,shellsSelected:D=!1}){let{shells:I}=Pp(),Z=I.filter((G)=>G.status==="running").length;if(A==="memory")return JQ.createElement(S,{color:"remember"},"# to memorize");if(A==="bash")return JQ.createElement(S,{color:"bashBorder"},"! for bash mode");if(B?.mode==="plan")return JQ.createElement(S,{color:"planMode",key:"plan-mode"},"⏸ plan mode on",JQ.createElement(S,{color:"secondaryText",dimColor:!0}," ","(shift+tab to cycle)"));if(B?.mode==="acceptEdits")return JQ.createElement(S,{color:"autoAccept",key:"write-file-allowed"},"⏵⏵ auto-accept edits on",JQ.createElement(S,{color:"secondaryText",dimColor:!0}," ","(shift+tab to cycle)"));if(Z>0){let G=GA().hasSeenTasksHint;return JQ.createElement(g,{gap:1},JQ.createElement(S,{color:D?"text":"permission",inverse:D,bold:D},D?" ":"",Z," ",Z===1?"bash":"bashes"," ","running",D?" ":""),Q&&JQ.createElement(JQ.Fragment,null,JQ.createElement(S,{dimColor:!0},"·"),JQ.createElement(S,{dimColor:!0},D?"Enter to view shells":!G?"↓ to view":"? for shortcuts")))}if(!Q)return null;return JQ.createElement(S,{dimColor:!0},"? for shortcuts")}var RQ=G1(U1(),1);var kk=G1(U1(),1);var _6=G1(U1(),1),bh2=G1(Py(),1),tw1=G1(U1(),1);var vh2=G1(U1(),1),yp=G1(Py(),1);function fh2(A){return`${yp.major(A,{loose:!0})}.${yp.minor(A,{loose:!0})}.${yp.patch(A,{loose:!0})}`}function ow1(A,B={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION){let[Q,D]=vh2.useState(()=>fh2(B));if(!A)return null;let I=fh2(A);if(I!==Q)return D(I),I;return null}function gh2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:D,showSuccessMessage:I,verbose:Z}){let[G,F]=tw1.useState({}),Y=ow1(D?.version),W=_6.useCallback(async()=>{let J=GA();if(A)return;let C={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION,X=await Hw1(),V=Fu();if(F({global:C,latest:X}),!V&&C&&X&&!bh2.gte(C,X,{loose:!0})){let K=Date.now();B(!0),xw1();let E=await I21();if(xA(`AutoUpdater: Detected installation type: ${E}`),E==="development"){xA("AutoUpdater: Cannot auto-update development build"),B(!1);return}let U,q;if(E==="npm-local")xA("AutoUpdater: Using local update method"),q="local",U=await Ok();else if(E==="npm-global")xA("AutoUpdater: Using global update method"),q="global",U=await Q21();else if(E==="native"){xA("AutoUpdater: Unexpected native installation in non-native updater"),B(!1);return}else{xA("AutoUpdater: Unknown installation type, falling back to config");let R=J.installMethod==="local";if(q=R?"local":"global",R)U=await Ok();else U=await Q21()}if(B(!1),U==="success")E1("tengu_auto_updater_success",{fromVersion:C,toVersion:X,durationMs:Date.now()-K,wasMigrated:q==="local",installationType:E});else E1("tengu_auto_updater_fail",{fromVersion:C,attemptedVersion:X,status:U,durationMs:Date.now()-K,wasMigrated:q==="local",installationType:E});Q({version:X,status:U})}},[Q]);if(tw1.useEffect(()=>{W()},[W]),aX(W,1800000),!D?.version&&(!G.global||!G.latest))return null;if(!D?.version&&!A)return null;return _6.createElement(g,{flexDirection:"row",gap:1},Z&&_6.createElement(S,{dimColor:!0},"globalVersion: ",G.global," · latestVersion:"," ",G.latest),A?_6.createElement(_6.Fragment,null,_6.createElement(g,null,_6.createElement(S,{color:"text",dimColor:!0,wrap:"end"},"Auto-updating to v",G.latest,"…"))):D?.status==="success"&&I&&Y&&_6.createElement(S,{color:"success"},"✓ Update installed · Restart to apply"),(D?.status==="install_failed"||D?.status==="no_permissions")&&_6.createElement(S,{color:"error"},"✗ Auto-update failed · Try ",_6.createElement(S,{bold:!0},"claude doctor"),!S$()&&_6.createElement(_6.Fragment,null," ","or ",_6.createElement(S,{bold:!0},"npm i -g ",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL)),S$()&&_6.createElement(_6.Fragment,null," ","or"," ",_6.createElement(S,{bold:!0},"cd ~/.claude/local && npm update ",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL))))}var bD=G1(U1(),1),ew1=G1(U1(),1);function hh2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:D,showSuccessMessage:I,verbose:Z}){let[G,F]=ew1.useState({}),Y=ow1(D?.version),W=bD.useRef(!1),J=bD.useCallback(async()=>{if(A||Fu())return;B(!0);try{let C=await Mp(),X={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION;if(F({current:X,latest:C.latestVersion}),C.wasUpdated)E1("tengu_native_auto_updater_success",{}),Q({version:C.latestVersion,status:"success"})}catch(C){f1(C instanceof Error?C:new Error(String(C))),E1("tengu_native_auto_updater_fail",{}),Q({version:null,status:"install_failed"})}finally{B(!1)}},[A,B,Q]);if(ew1.useEffect(()=>{if(!W.current)W.current=!0,J()}),aX(J,1800000),!D?.version&&(!G.current||!G.latest))return null;if(!D?.version&&!A)return null;return bD.createElement(g,{flexDirection:"row",gap:1},Z&&bD.createElement(S,{dimColor:!0},"current: ",G.current," · latest: ",G.latest),A?bD.createElement(g,null,bD.createElement(S,{color:"secondaryText",dimColor:!0,wrap:"end"},"Checking for updates")):D?.status==="success"&&I&&Y&&bD.createElement(S,{color:"success"},"✓ Update installed · Restart to update"),D?.status==="install_failed"&&bD.createElement(S,{color:"error"},"✗ Auto-update failed · Try ",bD.createElement(S,{bold:!0},"/status")))}function uh2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:D,showSuccessMessage:I,verbose:Z}){let[G,F]=kk.useState(null);if(kk.useEffect(()=>{I21().then((W)=>{let J=W==="native";xA(`AutoUpdaterWrapper: Installation type: ${W}, using native: ${J}`),F(J)})},[F]),G===null)return null;return kk.createElement(G?hh2:gh2,{verbose:Z,onAutoUpdaterResult:Q,autoUpdaterResult:D,isUpdating:A,onChangeIsUpdating:B,showSuccessMessage:I})}var mh2=G1(U1(),1);class dQA extends mh2.Component{constructor(A){super(A);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(A){TF1(A)}render(){if(this.state.hasError)return null;return this.props.children}}var EW=G1(U1(),1);function dh2({tokenUsage:A}){let{percentLeft:B,isAboveWarningThreshold:Q,isAboveErrorThreshold:D}=sA1(A,rA1);if(!Q)return null;let I=aA1();return EW.createElement(g,{flexDirection:"row"},EW.createElement(S,{color:GA().autoCompactEnabled?"secondaryText":D?"error":"warning"},I?EW.createElement(EW.Fragment,null,"Context left until auto-compact: ",B,"%"):EW.createElement(EW.Fragment,null,"Context low (",B,"% remaining) · Run /compact to compact & continue")))}function ch2(A){return sA1(A,rA1).isAboveWarningThreshold}var Q8=G1(U1(),1),QP=G1(U1(),1);import{basename as Gf6}from"path";var ph2=G1(U1(),1);function AN1(A){return ph2.useMemo(()=>{let B=A?.find((Q)=>Q.name==="ide");if(!B)return null;return B.type==="connected"?"connected":"disconnected"},[A])}var lh2=!1;function ih2({ideSelection:A,mcpClients:B,ideInstallationStatus:Q}){let D=AN1(B),[I,Z]=QP.useState(!0),[G,F]=QP.useState(!1);QP.useEffect(()=>{if(D==="connected"){let K=setTimeout(()=>{Z(!1)},1000);return()=>clearTimeout(K)}else if(D==="disconnected")Z(!0)},[D]);let[Y,W]=QP.useState(!1);QP.useEffect(()=>{if(Q?.error||wG){W(!0);let K=setTimeout(()=>{W(!1)},5000);return()=>clearTimeout(K)}},[Q?.error]);let J=D==="connected"&&(A?.filePath||A?.text&&A.lineCount>0),C=D==="connected"&&!J,X=Y&&!wG&&!C&&!J,V=Y&&wG&&!C&&!J;return QP.useEffect(()=>{if(!qJ()&&D===null&&!lh2){let K;return ae(!0).then((E)=>{if(E.length>0)F(!0),K=setTimeout(()=>{F(!1)},3000),lh2=!0}),()=>K&&clearTimeout(K)}},[D]),D!==null?Q8.createElement(Q8.Fragment,null,!X&&D==="disconnected"&&Q8.createElement(S,{color:"error",key:"ide-status"},tA.circle," IDE disconnected"),C&&Q8.createElement(S,{color:"success",key:"ide-status"},tA.circle,I&&" IDE connected"),X&&Q8.createElement(S,{color:"error"},"IDE extension install failed (see /status for info)"),V&&Q8.createElement(S,{color:"secondaryText"},"IDE plugin not connected (see /status for info)"),J&&A?.text&&A.lineCount>0?Q8.createElement(S,{color:"permission",key:"selection-indicator"},"⧉ ",A.lineCount," ",A.lineCount===1?"line":"lines"," selected"):J&&A?.filePath?Q8.createElement(S,{color:"permission",key:"selection-indicator"},"⧉ In ",Gf6(A.filePath)):null):Q8.createElement(Q8.Fragment,null,G&&!V&&Q8.createElement(S,{color:"text",key:"ide-command-hint"},tA.circle," Use /ide to connect to your IDE"),V&&Q8.createElement(S,{color:"secondaryText"},"IDE plugin not connected (see /status for info)"))}function nh2({apiKeyStatus:A,autoUpdaterResult:B,debug:Q,isAutoUpdating:D,verbose:I,tokenUsage:Z,permissionMode:G,onAutoUpdaterResult:F,onChangeIsUpdating:Y,ideSelection:W,ideInstallationStatus:J,mcpClients:C,isInputWrapped:X=!1}){let V=YcA(G),K=ch2(Z),E=AN1(C),[{mainLoopModel:U}]=i6(),{status:q,resetsAt:R,unifiedRateLimitFallbackAvailable:M}=Ec(),L=!(E==="connected"&&(W?.filePath||W?.text&&W.lineCount>0))||D||B?.status!=="success",P=Du(R);return RQ.createElement(dQA,null,RQ.createElement(g,{flexDirection:"column",alignItems:"flex-end"},RQ.createElement(ih2,{ideSelection:W,mcpClients:C,ideInstallationStatus:J}),M&&U==="opus"&&q!=="allowed_warning"&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},"Approaching Opus usage limit · /model to use best available model")),q==="allowed_warning"&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},"Approaching ",P?.isWeeklyLimit?"weekly ":"","usage limit",P&&` · resets ${P.resetTimeDisplay}`)),A==="invalid"&&RQ.createElement(g,null,RQ.createElement(S,{color:"error"},"Invalid API key · Run /login")),A==="missing"&&RQ.createElement(g,null,RQ.createElement(S,{color:"error"},"Missing API key · Run /login")),Q&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},"Debug mode")),A!=="invalid"&&A!=="missing"&&V&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},V)),A!=="invalid"&&A!=="missing"&&!V&&I&&RQ.createElement(g,null,RQ.createElement(S,{dimColor:!0},Z," tokens")),RQ.createElement(dh2,{tokenUsage:Z}),L&&RQ.createElement(uh2,{verbose:I,onAutoUpdaterResult:F,autoUpdaterResult:B,isUpdating:D,onChangeIsUpdating:Y,showSuccessMessage:!K}),X&&!K&&!1))}var fF=G1(U1(),1),ah2=G1(U1(),1);function Ff6({item:A,maxColumnWidth:B,isSelected:Q}){let D=z9().columns,I=D<80,Z=B??A.displayText.length+5;return fF.createElement(g,{key:A.id,flexDirection:I?"column":"row"},fF.createElement(g,{width:I?void 0:Z},fF.createElement(S,{color:Q?"suggestion":void 0,dimColor:!Q},A.displayText)),A.description&&fF.createElement(g,{width:D-(I?4:Z+4),paddingLeft:I?4:0},fF.createElement(S,{color:Q?"suggestion":void 0,dimColor:!Q,wrap:"wrap"},A.description)))}function cQA({suggestions:A,selectedSuggestion:B}){let{rows:Q}=z9(),D=Math.min(10,Math.max(1,Q-3)),I=(W)=>{return Math.max(...W.map((J)=>J.displayText.length))+5};if(A.length===0)return null;let Z=Math.max(0,Math.min(B-Math.floor(D/2),A.length-D)),G=Math.min(Z+D,A.length),F=A.slice(Z,G),Y=I(F);return fF.createElement(g,{flexDirection:"column"},F.map((W)=>fF.createElement(Ff6,{key:W.id,item:W,maxColumnWidth:Y,isSelected:W.id===A[B]?.id})))}var Ri3=ah2.memo(cQA);function Yf6({apiKeyStatus:A,debug:B,exitMessage:Q,vimMode:D,mode:I,autoUpdaterResult:Z,isAutoUpdating:G,verbose:F,tokenUsage:Y,onAutoUpdaterResult:W,onChangeIsUpdating:J,suggestions:C,selectedSuggestion:X,notification:V,toolPermissionContext:K,helpOpen:E,suppressHint:U,shellsSelected:q=!1,ideSelection:R,mcpClients:M,ideInstallationStatus:T,isPasting:L=!1,isInputWrapped:P=!1}){if(C.length)return SB.createElement(g,{paddingX:2,paddingY:0},SB.createElement(cQA,{suggestions:C,selectedSuggestion:X}));if(E)return SB.createElement(g,{paddingX:2,paddingY:0,flexDirection:"row"},SB.createElement(g,{flexDirection:"column",width:22},SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"! for bash mode")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"/ for commands")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"@ for file paths")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"# to memorize"))),SB.createElement(g,{flexDirection:"column",width:35},SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"double tap esc to clear input")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"shift + tab to auto-accept edits")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"ctrl + r for verbose output")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},yh2()))),SB.createElement(g,{flexDirection:"column"},SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"ctrl + _ to undo")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"ctrl + z to suspend"))));return SB.createElement(g,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},SB.createElement(xh2,{exitMessage:Q,vimMode:D,mode:I,notification:V,toolPermissionContext:K,suppressHint:U,shellsSelected:q,isPasting:L}),SB.createElement(nh2,{apiKeyStatus:A,autoUpdaterResult:Z,debug:B,isAutoUpdating:G,verbose:F,tokenUsage:Y,permissionMode:K.mode,onAutoUpdaterResult:W,onChangeIsUpdating:J,ideSelection:R,mcpClients:M,ideInstallationStatus:T,isInputWrapped:P}))}var sh2=rh2.memo(Yf6);var xk=G1(U1(),1);var x$=o0({content:"Caveat: The messages below were generated by the user while running local commands. DO NOT respond to these messages or otherwise consider them in your response unless the user explicitly asks you to.",isMeta:!0});async function kp(A,B,Q,D,I,Z,G,F){let Y=I?Object.values(I).filter((C)=>C.type==="image").map((C)=>({type:"image",source:{type:"base64",media_type:C.mediaType||"image/png",data:C.content}})):[],J=B!=="prompt"||!A.startsWith("/")?await _0A(pA1(A,D,Z,[],F)):[];if(B==="bash"){E1("tengu_input_bash",{});let C=o0({content:`<bash-input>${A}</bash-input>`});Q({jsx:xk.createElement(g,{flexDirection:"column",marginTop:1},xk.createElement(tz1,{addMargin:!1,param:{text:`<bash-input>${A}</bash-input>`,type:"text"}}),xk.createElement(Pk,{mode:"tool-use",currentResponseLength:0})),shouldHidePromptInput:!1});try{let{data:X}=await zz1(h9.call({command:A},D)),V=X.stderr;if(vH1(D.getToolPermissionContext()))V=fH1(V);return{messages:[x$,C,...J,o0({content:`<bash-stdout>${X.stdout}</bash-stdout><bash-stderr>${V}</bash-stderr>`})],shouldQuery:!1}}catch(X){if(X instanceof Zz){if(X.interrupted)return{messages:[x$,C,o0({content:Ic}),...J],shouldQuery:!1};return{messages:[x$,C,...J,o0({content:`<bash-stdout>${X.stdout}</bash-stdout><bash-stderr>${X.stderr}</bash-stderr>`})],shouldQuery:!1}}return{messages:[x$,C,...J,o0({content:`<bash-stderr>Command failed: ${X instanceof Error?X.message:String(X)}</bash-stderr>`})],shouldQuery:!1}}finally{setTimeout(()=>{Q(null)},200)}}if(B==="memorySelect"){E1("tengu_input_memory",{});let C=o0({content:`<user-memory-input>${A}</user-memory-input>`});return ZT2(A,D,G),{messages:[x$,C,...J,o0({content:bY})],shouldQuery:!1}}if(A.startsWith("/")){let C=A.slice(1).split(" "),X=C[0],V=!1;if(C.length>1&&C[1]==="(MCP)")X=X+" (MCP)",V=!0;if(!X)return E1("tengu_input_slash_missing",{}),{messages:[x$,...J,o0({content:"Commands are in the form `/command [args]`"})],shouldQuery:!1};let K=X.includes(":"),E=V?"mcp":K?"custom":X;if(!qh2(X,D.options.commands))return E1("tengu_input_prompt",{}),EE("user_prompt",{prompt_length:String(A.length),prompt:q0A(A)}),{messages:[o0({content:A}),...J],shouldQuery:!0};let U=A.slice(X.length+2),{messages:q,shouldQuery:R,allowedTools:M,skipHistory:T,maxThinkingTokens:L}=await Wf6(X,U,Q,D,Y);if(q.length===0)return E1("tengu_input_command",{input:E}),{messages:[],shouldQuery:!1,skipHistory:T,maxThinkingTokens:L};if(q.length===2&&q[1].type==="user"&&typeof q[1].message.content==="string"&&q[1].message.content.startsWith("Unknown command:"))return E1("tengu_input_slash_invalid",{input:X}),{messages:[x$,...q],shouldQuery:R,allowedTools:M,maxThinkingTokens:L};if(q.length===2)return E1("tengu_input_command",{input:E}),{messages:R?q:[x$,...q],shouldQuery:R,allowedTools:M,maxThinkingTokens:L};return E1("tengu_input_command",{input:E}),{messages:R?q:[x$,...q],shouldQuery:R,allowedTools:M,maxThinkingTokens:L}}if(E1("tengu_input_prompt",{}),EE("user_prompt",{prompt_length:String(A.length),prompt:q0A(A)}),Y.length>0)return{messages:[o0({content:[...Y,{type:"text",text:A}]}),...J],shouldQuery:!0};return{messages:[o0({content:A}),...J],shouldQuery:!0}}async function Wf6(A,B,Q,D,I){try{let Z=iw1(A,D.options.commands);switch(Z.type){case"local-jsx":return new Promise((G)=>{Z.call((F,Y)=>{if(Q(null),Y?.skipMessage){G({messages:[],shouldQuery:!1,skipHistory:!0});return}G({messages:[o0({content:`<command-name>/${Z.userFacingName()}</command-name>
2591
+ `);return A.onChange(p.text),y.offset}},R=(_,d)=>{let y=_.text[_.offset]??"";return d.test(y)},M=(_,d,y)=>{let m=d==="w"?/\w/:/\S/;if(!R(_,m))return X(d,_,y)||_;let o=_;while(R(o,m)&&!o.isAtEnd())o=o.right();if(y>1)for(let A1=1;A1<y;A1++){while(!R(o,m)&&!o.isAtEnd())o=o.right();while(R(o,m)&&!o.isAtEnd())o=o.right()}return o},T=(_)=>{let d=I.current;if(!d)return;switch(d.type){case"delete":if(d.motion){let{newOffset:y}=V("delete",d.motion,_,d.count||1);W.setOffset(y)}break;case"change":if(d.motion){let{newOffset:y}=V("change",d.motion,_,d.count||1);W.setOffset(y),K(y)}break;case"insert":if(d.insertedText){let y=_.insert(d.insertedText);A.onChange(y.text),W.setOffset(y.offset)}break;case"x":{let y=d.count||1,p=_;for(let m=0;m<y;m++)if(!p.equals(p.del()))p=p.del();A.onChange(p.text),W.setOffset(p.offset);break}case"o":{let y=q(_,"below");K(y);break}case"O":{let y=q(_,"above");K(y);break}case"replace":break;case"r":{if(d.replacementChar){let y=d.count||1,p=_;for(let m=0;m<y;m++)if(p=p.modifyText(p.right(),d.replacementChar),m<y-1)p=X4.fromText(p.text,A.columns,p.offset+1);A.onChange(p.text),W.setOffset(_.offset)}break}}},L=(_=!0)=>{if(!G.current)return 1;let d=parseInt(G.current,10);if(isNaN(d)){if(_)G.current="";return 1}let y=Math.min(d,If6);if(_)G.current="";return y};return{...W,onInput:(_,d)=>{let y=X4.fromText(A.value,A.columns,W.offset);if(d.ctrl){W.onInput(_,d);return}if(d.escape&&B==="INSERT"){if(Z.current)U({type:"insert",insertedText:Z.current}),Z.current="";E();return}if(B==="NORMAL"&&F.current){if("0123456789".includes(_)){G.current+=_;return}let o=F.current,A1=L(),{newOffset:f}=V(o,_,y,A1);if(W.setOffset(f),U({type:o,motion:_,count:A1}),F.current=null,D.current="",o==="change")K(f);return}let p=(o,A1,f)=>{let{newOffset:s}=V(o,A1,y,f||1);if(W.setOffset(s),o!=="move")U({type:o,motion:A1,count:f});if(o==="change")K(s);D.current=""},m=(o)=>{Z.current="",K(o.offset)};if(B==="NORMAL"&&D.current){switch(D.current){case"d":if(_==="d"){let A1=L();p("delete",_,A1),F.current=null;return}return;case"c":if(_==="c"){let A1=L();p("change",_,A1),F.current=null;return}return;case"g":if(_==="g"){let A1=L();p("move","gg",A1);return}break;case"r":{let A1=L(),f=y;for(let s=0;s<A1;s++)if(f=f.modifyText(f.right(),_),s<A1-1)f=X4.fromText(f.text,A.columns,f.offset+1);A.onChange(f.text),W.setOffset(y.offset),U({type:"r",replacementChar:_,count:A1}),D.current="";return}}D.current=""}if(B==="NORMAL"){if("0123456789".includes(_)){if(_==="0"&&G.current===""){let{newOffset:o}=V("move","0",y);W.setOffset(o);return}G.current+=_;return}switch(_){case".":{T(y);return}case"u":{if(A.onUndo)A.onUndo();return}case"i":G.current="",Z.current="",K();return;case"I":{G.current="",m(y.startOfLogicalLine());return}case"a":{G.current="",m(y.right());return}case"A":{G.current="",m(y.endOfLogicalLine());return}case"o":{G.current="";let o=q(y,"below");U({type:"o"}),m(new X4(y.measuredText,o));return}case"O":{G.current="";let o=q(y,"above");U({type:"O"}),m(new X4(y.measuredText,o));return}case"h":case"l":case"j":case"k":case"^":case"$":case"w":case"e":case"b":case"W":case"E":case"B":case"G":{let o=L();p("move",_,o);return}case"g":{D.current="g";return}case"r":{D.current="r";return}case"x":{let o=L(),A1=y;for(let f=0;f<o;f++)if(!A1.equals(A1.del()))A1=A1.del();A.onChange(A1.text),W.setOffset(A1.offset),U({type:"x",count:o});return}case"d":D.current="d",F.current="delete";return;case"D":{let o=L();p("delete","$",o);return}case"c":D.current="c",F.current="change";return;case"C":{let o=L();p("change","$",o);return}case"?":{A.onChange("?");return}}}if(d.return){W.onInput(_,d);return}if(B==="INSERT"){if(d.backspace||d.delete){if(Z.current.length>0)Z.current=Z.current.slice(0,-1)}else Z.current+=_;W.onInput(_,d)}},mode:B,setMode:Q}}function mQA(A){let[B]=lB(),Q=jh2({value:A.value,onChange:A.onChange,onSubmit:A.onSubmit,onExit:A.onExit,onExitMessage:A.onExitMessage,onMessage:A.onMessage,onHistoryReset:A.onHistoryReset,onHistoryUp:A.onHistoryUp,onHistoryDown:A.onHistoryDown,focus:A.focus,mask:A.mask,multiline:A.multiline,cursorChar:A.showCursor?" ":"",highlightPastedText:A.highlightPastedText,invert:WA.inverse,themeText:MB("text",B),columns:A.columns,onImagePaste:A.onImagePaste,disableCursorMovementForUpDownKeys:A.disableCursorMovementForUpDownKeys,externalOffset:A.cursorOffset,onOffsetChange:A.onChangeCursorOffset,onModeChange:A.onModeChange,isMessageLoading:A.isLoading,onUndo:A.onUndo}),{mode:D,setMode:I}=Q;return sw1.default.useEffect(()=>{if(A.initialMode&&A.initialMode!==D)I(A.initialMode)},[A.initialMode,D,I]),sw1.default.createElement(g,{flexDirection:"column"},sw1.default.createElement(Zw1,{inputState:Q,terminalFocus:!0,...A}))}function jp(){return GA().editorMode==="vim"}function yh2(){if(Yw.isEnabled()&&nA.terminal==="Apple_Terminal"&&Zf2())return"option + ⏎ for newline";if(Yw.isEnabled()&&If2())return"shift + ⏎ for newline";return Gf2()?"\\⏎ for newline":"backslash (\\) + return (⏎) for newline"}var o8=G1(U1(),1);function kh2(A){switch(A.mode){case"default":return"acceptEdits";case"acceptEdits":return"plan";case"plan":return A.isBypassPermissionsModeAvailable?"bypassPermissions":"default";case"bypassPermissions":return"default"}}var SB=G1(U1(),1),rh2=G1(U1(),1);var JQ=G1(U1(),1);function xh2({exitMessage:A,vimMode:B,mode:Q,notification:D,toolPermissionContext:I,suppressHint:Z,shellsSelected:G,isPasting:F}){if(A.show)return JQ.createElement(S,{dimColor:!0,key:"exit-message"},"Press ",A.key," again to exit");if(F)return JQ.createElement(S,{dimColor:!0,key:"pasting-message"},"Pasting text...");if(D.show&&D.content)if("jsx"in D.content)return JQ.createElement(g,{key:"notification-content",flexGrow:1},D.content.jsx);else return JQ.createElement(S,{color:D.content.color,dimColor:!D.content.color,key:"notification"},D.content.text);let Y=jp()&&B==="INSERT";return JQ.createElement(g,{justifyContent:"flex-start",gap:1},Y?JQ.createElement(S,{dimColor:!0,key:"vim-insert"},"-- INSERT --"):null,JQ.createElement(Zf6,{mode:Q,toolPermissionContext:I,showHint:!Z&&!Y,shellsSelected:G}))}function Zf6({mode:A,toolPermissionContext:B,showHint:Q,shellsSelected:D=!1}){let{shells:I}=Pp(),Z=I.filter((G)=>G.status==="running").length;if(A==="memory")return JQ.createElement(S,{color:"remember"},"# to memorize");if(A==="bash")return JQ.createElement(S,{color:"bashBorder"},"! for bash mode");if(B?.mode==="plan")return JQ.createElement(S,{color:"planMode",key:"plan-mode"},"⏸ plan mode on",JQ.createElement(S,{color:"secondaryText",dimColor:!0}," ","(shift+tab to cycle)"));if(B?.mode==="acceptEdits")return JQ.createElement(S,{color:"autoAccept",key:"write-file-allowed"},"⏵⏵ auto-accept edits on",JQ.createElement(S,{color:"secondaryText",dimColor:!0}," ","(shift+tab to cycle)"));if(Z>0){let G=GA().hasSeenTasksHint;return JQ.createElement(g,{gap:1},JQ.createElement(S,{color:D?"text":"permission",inverse:D,bold:D},D?" ":"",Z," ",Z===1?"bash":"bashes"," ","running",D?" ":""),Q&&JQ.createElement(JQ.Fragment,null,JQ.createElement(S,{dimColor:!0},"·"),JQ.createElement(S,{dimColor:!0},D?"Enter to view shells":!G?"↓ to view":"? for shortcuts")))}if(!Q)return null;return JQ.createElement(S,{dimColor:!0},"? for shortcuts")}var RQ=G1(U1(),1);var kk=G1(U1(),1);var _6=G1(U1(),1),bh2=G1(Py(),1),tw1=G1(U1(),1);var vh2=G1(U1(),1),yp=G1(Py(),1);function fh2(A){return`${yp.major(A,{loose:!0})}.${yp.minor(A,{loose:!0})}.${yp.patch(A,{loose:!0})}`}function ow1(A,B={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION){let[Q,D]=vh2.useState(()=>fh2(B));if(!A)return null;let I=fh2(A);if(I!==Q)return D(I),I;return null}function gh2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:D,showSuccessMessage:I,verbose:Z}){let[G,F]=tw1.useState({}),Y=ow1(D?.version),W=_6.useCallback(async()=>{let J=GA();if(A)return;let C={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION,X=await Hw1(),V=Fu();if(F({global:C,latest:X}),!V&&C&&X&&!bh2.gte(C,X,{loose:!0})){let K=Date.now();B(!0),xw1();let E=await I21();if(xA(`AutoUpdater: Detected installation type: ${E}`),E==="development"){xA("AutoUpdater: Cannot auto-update development build"),B(!1);return}let U,q;if(E==="npm-local")xA("AutoUpdater: Using local update method"),q="local",U=await Ok();else if(E==="npm-global")xA("AutoUpdater: Using global update method"),q="global",U=await Q21();else if(E==="native"){xA("AutoUpdater: Unexpected native installation in non-native updater"),B(!1);return}else{xA("AutoUpdater: Unknown installation type, falling back to config");let R=J.installMethod==="local";if(q=R?"local":"global",R)U=await Ok();else U=await Q21()}if(B(!1),U==="success")E1("tengu_auto_updater_success",{fromVersion:C,toVersion:X,durationMs:Date.now()-K,wasMigrated:q==="local",installationType:E});else E1("tengu_auto_updater_fail",{fromVersion:C,attemptedVersion:X,status:U,durationMs:Date.now()-K,wasMigrated:q==="local",installationType:E});Q({version:X,status:U})}},[Q]);if(tw1.useEffect(()=>{W()},[W]),aX(W,1800000),!D?.version&&(!G.global||!G.latest))return null;if(!D?.version&&!A)return null;return _6.createElement(g,{flexDirection:"row",gap:1},Z&&_6.createElement(S,{dimColor:!0},"globalVersion: ",G.global," · latestVersion:"," ",G.latest),A?_6.createElement(_6.Fragment,null,_6.createElement(g,null,_6.createElement(S,{color:"text",dimColor:!0,wrap:"end"},"Auto-updating to v",G.latest,"…"))):D?.status==="success"&&I&&Y&&_6.createElement(S,{color:"success"},"✓ Update installed · Restart to apply"),(D?.status==="install_failed"||D?.status==="no_permissions")&&_6.createElement(S,{color:"error"},"✗ Auto-update failed · Try ",_6.createElement(S,{bold:!0},"claude doctor"),!S$()&&_6.createElement(_6.Fragment,null," ","or ",_6.createElement(S,{bold:!0},"npm i -g ",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL)),S$()&&_6.createElement(_6.Fragment,null," ","or"," ",_6.createElement(S,{bold:!0},"cd ~/.claude/local && npm update ",{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL))))}var bD=G1(U1(),1),ew1=G1(U1(),1);function hh2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:D,showSuccessMessage:I,verbose:Z}){let[G,F]=ew1.useState({}),Y=ow1(D?.version),W=bD.useRef(!1),J=bD.useCallback(async()=>{if(A||Fu())return;B(!0);try{let C=await Mp(),X={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION;if(F({current:X,latest:C.latestVersion}),C.wasUpdated)E1("tengu_native_auto_updater_success",{}),Q({version:C.latestVersion,status:"success"})}catch(C){f1(C instanceof Error?C:new Error(String(C))),E1("tengu_native_auto_updater_fail",{}),Q({version:null,status:"install_failed"})}finally{B(!1)}},[A,B,Q]);if(ew1.useEffect(()=>{if(!W.current)W.current=!0,J()}),aX(J,1800000),!D?.version&&(!G.current||!G.latest))return null;if(!D?.version&&!A)return null;return bD.createElement(g,{flexDirection:"row",gap:1},Z&&bD.createElement(S,{dimColor:!0},"current: ",G.current," · latest: ",G.latest),A?bD.createElement(g,null,bD.createElement(S,{color:"secondaryText",dimColor:!0,wrap:"end"},"Checking for updates")):D?.status==="success"&&I&&Y&&bD.createElement(S,{color:"success"},"✓ Update installed · Restart to update"),D?.status==="install_failed"&&bD.createElement(S,{color:"error"},"✗ Auto-update failed · Try ",bD.createElement(S,{bold:!0},"/status")))}function uh2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:D,showSuccessMessage:I,verbose:Z}){let[G,F]=kk.useState(null);if(kk.useEffect(()=>{I21().then((W)=>{let J=W==="native";xA(`AutoUpdaterWrapper: Installation type: ${W}, using native: ${J}`),F(J)})},[F]),G===null)return null;return kk.createElement(G?hh2:gh2,{verbose:Z,onAutoUpdaterResult:Q,autoUpdaterResult:D,isUpdating:A,onChangeIsUpdating:B,showSuccessMessage:I})}var mh2=G1(U1(),1);class dQA extends mh2.Component{constructor(A){super(A);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(A){TF1(A)}render(){if(this.state.hasError)return null;return this.props.children}}var EW=G1(U1(),1);function dh2({tokenUsage:A}){let{percentLeft:B,isAboveWarningThreshold:Q,isAboveErrorThreshold:D}=sA1(A,rA1);if(!Q)return null;let I=aA1();return EW.createElement(g,{flexDirection:"row"},EW.createElement(S,{color:GA().autoCompactEnabled?"secondaryText":D?"error":"warning"},I?EW.createElement(EW.Fragment,null,"Context left until auto-compact: ",B,"%"):EW.createElement(EW.Fragment,null,"Context low (",B,"% remaining) · Run /compact to compact & continue")))}function ch2(A){return sA1(A,rA1).isAboveWarningThreshold}var Q8=G1(U1(),1),QP=G1(U1(),1);import{basename as Gf6}from"path";var ph2=G1(U1(),1);function AN1(A){return ph2.useMemo(()=>{let B=A?.find((Q)=>Q.name==="ide");if(!B)return null;return B.type==="connected"?"connected":"disconnected"},[A])}var lh2=!1;function ih2({ideSelection:A,mcpClients:B,ideInstallationStatus:Q}){let D=AN1(B),[I,Z]=QP.useState(!0),[G,F]=QP.useState(!1);QP.useEffect(()=>{if(D==="connected"){let K=setTimeout(()=>{Z(!1)},1000);return()=>clearTimeout(K)}else if(D==="disconnected")Z(!0)},[D]);let[Y,W]=QP.useState(!1);QP.useEffect(()=>{if(Q?.error||wG){W(!0);let K=setTimeout(()=>{W(!1)},5000);return()=>clearTimeout(K)}},[Q?.error]);let J=D==="connected"&&(A?.filePath||A?.text&&A.lineCount>0),C=D==="connected"&&!J,X=Y&&!wG&&!C&&!J,V=Y&&wG&&!C&&!J;return QP.useEffect(()=>{if(!qJ()&&D===null&&!lh2){let K;return ae(!0).then((E)=>{if(E.length>0)F(!0),K=setTimeout(()=>{F(!1)},3000),lh2=!0}),()=>K&&clearTimeout(K)}},[D]),D!==null?Q8.createElement(Q8.Fragment,null,!X&&D==="disconnected"&&Q8.createElement(S,{color:"error",key:"ide-status"},tA.circle," IDE disconnected"),C&&Q8.createElement(S,{color:"success",key:"ide-status"},tA.circle,I&&" IDE connected"),X&&Q8.createElement(S,{color:"error"},"IDE extension install failed (see /status for info)"),V&&Q8.createElement(S,{color:"secondaryText"},"IDE plugin not connected (see /status for info)"),J&&A?.text&&A.lineCount>0?Q8.createElement(S,{color:"permission",key:"selection-indicator"},"⧉ ",A.lineCount," ",A.lineCount===1?"line":"lines"," selected"):J&&A?.filePath?Q8.createElement(S,{color:"permission",key:"selection-indicator"},"⧉ In ",Gf6(A.filePath)):null):Q8.createElement(Q8.Fragment,null,G&&!V&&Q8.createElement(S,{color:"text",key:"ide-command-hint"},tA.circle," Use /ide to connect to your IDE"),V&&Q8.createElement(S,{color:"secondaryText"},"IDE plugin not connected (see /status for info)"))}function nh2({apiKeyStatus:A,autoUpdaterResult:B,debug:Q,isAutoUpdating:D,verbose:I,tokenUsage:Z,permissionMode:G,onAutoUpdaterResult:F,onChangeIsUpdating:Y,ideSelection:W,ideInstallationStatus:J,mcpClients:C,isInputWrapped:X=!1}){let V=YcA(G),K=ch2(Z),E=AN1(C),[{mainLoopModel:U}]=i6(),{status:q,resetsAt:R,unifiedRateLimitFallbackAvailable:M}=Ec(),L=!(E==="connected"&&(W?.filePath||W?.text&&W.lineCount>0))||D||B?.status!=="success",P=Du(R);return RQ.createElement(dQA,null,RQ.createElement(g,{flexDirection:"column",alignItems:"flex-end"},RQ.createElement(ih2,{ideSelection:W,mcpClients:C,ideInstallationStatus:J}),M&&U==="opus"&&q!=="allowed_warning"&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},"Approaching Opus usage limit · /model to use best available model")),q==="allowed_warning"&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},"Approaching ",P?.isWeeklyLimit?"weekly ":"","usage limit",P&&` · resets ${P.resetTimeDisplay}`)),A==="invalid"&&RQ.createElement(g,null,RQ.createElement(S,{color:"error"},"Invalid API key · Run /login")),A==="missing"&&RQ.createElement(g,null,RQ.createElement(S,{color:"error"},"Missing API key · Run /login")),Q&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},"Debug mode")),A!=="invalid"&&A!=="missing"&&V&&RQ.createElement(g,null,RQ.createElement(S,{color:"warning"},V)),A!=="invalid"&&A!=="missing"&&!V&&I&&RQ.createElement(g,null,RQ.createElement(S,{dimColor:!0},Z," tokens")),RQ.createElement(dh2,{tokenUsage:Z}),L&&RQ.createElement(uh2,{verbose:I,onAutoUpdaterResult:F,autoUpdaterResult:B,isUpdating:D,onChangeIsUpdating:Y,showSuccessMessage:!K}),X&&!K&&!1))}var fF=G1(U1(),1),ah2=G1(U1(),1);function Ff6({item:A,maxColumnWidth:B,isSelected:Q}){let D=z9().columns,I=D<80,Z=B??A.displayText.length+5;return fF.createElement(g,{key:A.id,flexDirection:I?"column":"row"},fF.createElement(g,{width:I?void 0:Z},fF.createElement(S,{color:Q?"suggestion":void 0,dimColor:!Q},A.displayText)),A.description&&fF.createElement(g,{width:D-(I?4:Z+4),paddingLeft:I?4:0},fF.createElement(S,{color:Q?"suggestion":void 0,dimColor:!Q,wrap:"wrap"},A.description)))}function cQA({suggestions:A,selectedSuggestion:B}){let{rows:Q}=z9(),D=Math.min(10,Math.max(1,Q-3)),I=(W)=>{return Math.max(...W.map((J)=>J.displayText.length))+5};if(A.length===0)return null;let Z=Math.max(0,Math.min(B-Math.floor(D/2),A.length-D)),G=Math.min(Z+D,A.length),F=A.slice(Z,G),Y=I(F);return fF.createElement(g,{flexDirection:"column"},F.map((W)=>fF.createElement(Ff6,{key:W.id,item:W,maxColumnWidth:Y,isSelected:W.id===A[B]?.id})))}var Ri3=ah2.memo(cQA);function Yf6({apiKeyStatus:A,debug:B,exitMessage:Q,vimMode:D,mode:I,autoUpdaterResult:Z,isAutoUpdating:G,verbose:F,tokenUsage:Y,onAutoUpdaterResult:W,onChangeIsUpdating:J,suggestions:C,selectedSuggestion:X,notification:V,toolPermissionContext:K,helpOpen:E,suppressHint:U,shellsSelected:q=!1,ideSelection:R,mcpClients:M,ideInstallationStatus:T,isPasting:L=!1,isInputWrapped:P=!1}){if(C.length)return SB.createElement(g,{paddingX:2,paddingY:0},SB.createElement(cQA,{suggestions:C,selectedSuggestion:X}));if(E)return SB.createElement(g,{paddingX:2,paddingY:0,flexDirection:"row"},SB.createElement(g,{flexDirection:"column",width:22},SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"! for bash mode")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"/ for commands")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"@ for file paths")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"# to memorize"))),SB.createElement(g,{flexDirection:"column",width:35},SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"double tap esc to clear input")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"shift + tab to auto-accept edits")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"ctrl + r for verbose output")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},yh2()))),SB.createElement(g,{flexDirection:"column"},SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"ctrl + _ to undo")),SB.createElement(g,null,SB.createElement(S,{dimColor:!0},"ctrl + z to suspend"))));return SB.createElement(g,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},SB.createElement(xh2,{exitMessage:Q,vimMode:D,mode:I,notification:V,toolPermissionContext:K,suppressHint:U,shellsSelected:q,isPasting:L}),SB.createElement(nh2,{apiKeyStatus:A,autoUpdaterResult:Z,debug:B,isAutoUpdating:G,verbose:F,tokenUsage:Y,permissionMode:K.mode,onAutoUpdaterResult:W,onChangeIsUpdating:J,ideSelection:R,mcpClients:M,ideInstallationStatus:T,isInputWrapped:P}))}var sh2=rh2.memo(Yf6);var xk=G1(U1(),1);var x$=o0({content:"Caveat: The messages below were generated by the user while running local commands. DO NOT respond to these messages or otherwise consider them in your response unless the user explicitly asks you to.",isMeta:!0});async function kp(A,B,Q,D,I,Z,G,F){let Y=I?Object.values(I).filter((C)=>C.type==="image").map((C)=>({type:"image",source:{type:"base64",media_type:C.mediaType||"image/png",data:C.content}})):[],J=B!=="prompt"||!A.startsWith("/")?await _0A(pA1(A,D,Z,[],F)):[];if(B==="bash"){E1("tengu_input_bash",{});let C=o0({content:`<bash-input>${A}</bash-input>`});Q({jsx:xk.createElement(g,{flexDirection:"column",marginTop:1},xk.createElement(tz1,{addMargin:!1,param:{text:`<bash-input>${A}</bash-input>`,type:"text"}}),xk.createElement(Pk,{mode:"tool-use",currentResponseLength:0})),shouldHidePromptInput:!1});try{let{data:X}=await zz1(h9.call({command:A},D)),V=X.stderr;if(vH1(D.getToolPermissionContext()))V=fH1(V);return{messages:[x$,C,...J,o0({content:`<bash-stdout>${X.stdout}</bash-stdout><bash-stderr>${V}</bash-stderr>`})],shouldQuery:!1}}catch(X){if(X instanceof Zz){if(X.interrupted)return{messages:[x$,C,o0({content:Ic}),...J],shouldQuery:!1};return{messages:[x$,C,...J,o0({content:`<bash-stdout>${X.stdout}</bash-stdout><bash-stderr>${X.stderr}</bash-stderr>`})],shouldQuery:!1}}return{messages:[x$,C,...J,o0({content:`<bash-stderr>Command failed: ${X instanceof Error?X.message:String(X)}</bash-stderr>`})],shouldQuery:!1}}finally{setTimeout(()=>{Q(null)},200)}}if(B==="memorySelect"){E1("tengu_input_memory",{});let C=o0({content:`<user-memory-input>${A}</user-memory-input>`});return ZT2(A,D,G),{messages:[x$,C,...J,o0({content:bY})],shouldQuery:!1}}if(A.startsWith("/")){let C=A.slice(1).split(" "),X=C[0],V=!1;if(C.length>1&&C[1]==="(MCP)")X=X+" (MCP)",V=!0;if(!X)return E1("tengu_input_slash_missing",{}),{messages:[x$,...J,o0({content:"Commands are in the form `/command [args]`"})],shouldQuery:!1};let K=X.includes(":"),E=V?"mcp":K?"custom":X;if(!qh2(X,D.options.commands))return E1("tengu_input_prompt",{}),EE("user_prompt",{prompt_length:String(A.length),prompt:q0A(A)}),{messages:[o0({content:A}),...J],shouldQuery:!0};let U=A.slice(X.length+2),{messages:q,shouldQuery:R,allowedTools:M,skipHistory:T,maxThinkingTokens:L}=await Wf6(X,U,Q,D,Y);if(q.length===0)return E1("tengu_input_command",{input:E}),{messages:[],shouldQuery:!1,skipHistory:T,maxThinkingTokens:L};if(q.length===2&&q[1].type==="user"&&typeof q[1].message.content==="string"&&q[1].message.content.startsWith("Unknown command:"))return E1("tengu_input_slash_invalid",{input:X}),{messages:[x$,...q],shouldQuery:R,allowedTools:M,maxThinkingTokens:L};if(q.length===2)return E1("tengu_input_command",{input:E}),{messages:R?q:[x$,...q],shouldQuery:R,allowedTools:M,maxThinkingTokens:L};return E1("tengu_input_command",{input:E}),{messages:R?q:[x$,...q],shouldQuery:R,allowedTools:M,maxThinkingTokens:L}}if(E1("tengu_input_prompt",{}),EE("user_prompt",{prompt_length:String(A.length),prompt:q0A(A)}),Y.length>0)return{messages:[o0({content:[...Y,{type:"text",text:A}]}),...J],shouldQuery:!0};return{messages:[o0({content:A}),...J],shouldQuery:!0}}async function Wf6(A,B,Q,D,I){try{let Z=iw1(A,D.options.commands);switch(Z.type){case"local-jsx":return new Promise((G)=>{Z.call((F,Y)=>{if(Q(null),Y?.skipMessage){G({messages:[],shouldQuery:!1,skipHistory:!0});return}G({messages:[o0({content:`<command-name>/${Z.userFacingName()}</command-name>
2592
2592
  <command-message>${Z.userFacingName()}</command-message>
2593
2593
  <command-args>${B}</command-args>`}),F?o0({content:`<local-command-stdout>${F}</local-command-stdout>`}):o0({content:`<local-command-stdout>${bY}</local-command-stdout>`})],shouldQuery:!1})},D,B).then((F)=>{Q({jsx:F,shouldHidePromptInput:!0})})});case"local":{let G=o0({content:`<command-name>/${Z.userFacingName()}</command-name>
2594
2594
  <command-message>${Z.userFacingName()}</command-message>
@@ -2606,7 +2606,7 @@ Note: ctrl + z now suspends Claude Code, ctrl + _ undoes input.
2606
2606
  `)},U0=()=>{L1(),KA((I2)=>I2+1)};return o9?.on("suspend",G0),o9?.on("resume",U0),()=>{o9?.off("suspend",G0),o9?.off("resume",U0)}},[o9,L1]);let $A=gB.useMemo(()=>o3(s1).filter(Bk),[s1]),YA=gB.useMemo(()=>o3(zA).filter(Bk),[zA]),PA=gB.useMemo(()=>new Set(Object.keys(Fc($A))),[$A]),Q0=gB.useMemo(()=>sH1($A),[$A]);Vu2(m,o,f,V1,K5);let[cA,A0]=gB.useState(null),[mA,I0]=gB.useState(!1);if(m==="transcript")return iQ.createElement(iQ.Fragment,null,iQ.createElement(z21,{messages:s1,normalizedMessageHistory:YA,tools:EA,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:d4,isMessageSelectorVisible:!1,tipOfTheDay:void 0,conversationId:bQ,screen:m,screenToggleId:A1,streamingToolUses:IA,showAllInTranscript:s}),iQ.createElement(g,{alignItems:"center",alignSelf:"center",borderTopColor:"secondaryBorder",borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},iQ.createElement(S,{dimColor:!0},"Showing detailed transcript · Ctrl+R to toggle")));return iQ.createElement(iQ.Fragment,{key:j1},iQ.createElement(z21,{messages:s1,normalizedMessageHistory:YA,tools:EA,verbose:U,toolJSX:B1,toolUseConfirmQueue:k1,inProgressToolUseIDs:d4,isMessageSelectorVisible:nQ,tipOfTheDay:F,conversationId:bQ,screen:m,screenToggleId:A1,streamingToolUses:IA,showAllInTranscript:s}),iQ.createElement(g,{flexDirection:"column",width:"100%"},!B1&&k1.length===0&&I1&&iQ.createElement(Pk,{mode:R1,currentResponseLength:P0,overrideMessage:m2}),B1?B1.jsx:null,!B1&&k1[0]!==void 0&&!nQ&&iQ.createElement(Bx2,{onDone:()=>m1(([G0,...U0])=>U0),onReject:ZB,setToolPermissionContext:HQ,toolUseConfirm:k1[0],toolUseContext:s9(s1,s1,RA??new AbortController,[],void 0),verbose:U}),!B1&&k1.length===0&&!nQ&&VB&&iQ.createElement(so0,{onDone:()=>{IB(!1),G6(!0);let G0=GA();x0({...G0,hasAcknowledgedCostThreshold:!0}),E1("tengu_cost_threshold_acknowledged",{})}}),cA,C3&&iQ.createElement(nB2,{onDone:()=>t8(!1),installedVersion:j2?.installedVersion??null}),k1.length===0&&!B1?.shouldHidePromptInput&&D&&!nQ&&!VB&&!cA&&!C3&&!mA&&iQ.createElement(iQ.Fragment,null,iQ.createElement(Au2,{debug:B,ideSelection:_1,getToolUseContext:s9,toolPermissionContext:E,setToolPermissionContext:HQ,apiKeyStatus:fA,commands:i1,isLoading:I1,onExit:async()=>{I0(!0);let G0=await lw1.call(()=>U4(0),s9(s1,[],new AbortController,[],void 0));A0(G0)},onQuery:CQ,verbose:U,messages:s1,setToolJSX:x1,onAutoUpdaterResult:P1,autoUpdaterResult:N1,input:yA,onInputChange:Y0,mode:O2,onModeChange:i0,queuedCommands:Y2,setQueuedCommands:DB,submitCount:p0,onSubmitCountChange:(G0)=>{return Q1(null),D2(G0)},setIsLoading:F1,setAbortController:D1,onShowMessageSelector:()=>x3((G0)=>!G0),notification:h1,addNotification:g1,mcpClients:ZA,pastedContents:Z6,setPastedContents:R0,vimMode:n0,setVimMode:e0,ideInstallationStatus:j2}))),nQ&&iQ.createElement(Z_2,{erroredToolUseIDs:Q0,resolvedToolUseIDs:PA,messages:s1,onSelect:async(G0)=>{if(x3(!1),!s1.includes(G0))return;e2(),setImmediate(async()=>{await K5();let U0=s1.indexOf(G0),I2=s1.slice(0,U0);if(AA([...I2]),D8(lQA()),typeof G0.message.content==="string"){let C1=qZ(G0.message.content,"bash-input");if(C1)Y0(C1),i0("bash");else Y0(G0.message.content),i0("prompt")}else if(Array.isArray(G0.message.content)&&G0.message.content.length>=2&&G0.message.content.some((C1)=>C1.type==="image")&&G0.message.content.some((C1)=>C1.type==="text")){let C1=G0.message.content.find((T1)=>T1.type==="text");if(C1&&C1.type==="text")Y0(C1.text),i0("prompt");let d1=G0.message.content.filter((T1)=>T1.type==="image");if(d1.length>0){let T1={};d1.forEach((BA,XA)=>{if(BA.source.type==="base64")T1[XA+1]={id:XA+1,type:"image",content:BA.source.data,mediaType:BA.source.media_type}}),R0(T1)}}})},onEscape:()=>x3(!1),tools:EA}),!C3&&iQ.createElement(T4,null))}var yu2=G1(ju2(),1),{program:pr3,createCommand:lr3,createArgument:ir3,createOption:nr3,CommanderError:ar3,InvalidArgumentError:rr3,InvalidOptionArgumentError:sr3,Command:ku2,Argument:or3,Option:IP,Help:tr3}=yu2.default;var yZ=G1(U1(),1);function xu2({servers:A,scope:B,onDone:Q}){let D=Object.keys(A),I=yZ.useMemo(()=>uX(),[]),Z=D.filter((J)=>I[J]!==void 0);function G(J){let C=0;for(let X of J){let V=A[X];if(V){let K=X;if(I[K]!==void 0){let E=1;while(I[`${X}_${E}`]!==void 0)E++;K=`${X}_${E}`}CT(K,V,B),C++}}W(C)}let F=Q2();Z0((J,C)=>{if(C.escape){W(0);return}});let[Y]=lB();function W(J){if(J>0)iV(`
2607
2607
  ${MB("success",Y)(`Successfully imported ${J} MCP server${J!==1?"s":""} to ${B} config.`)}
2608
2608
  `);else console.log(`
2609
- No servers were imported.`);Q(),U4()}return yZ.default.createElement(yZ.default.Fragment,null,yZ.default.createElement(g,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:"success"},yZ.default.createElement(S,{bold:!0,color:"success"},"Import MCP Servers from Claude Desktop"),yZ.default.createElement(S,null,"Found ",D.length," MCP server",D.length!==1?"s":""," in Claude Desktop."),Z.length>0&&yZ.default.createElement(S,{color:"warning"},"Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."),yZ.default.createElement(S,null,"Please select the servers you want to import:"),yZ.default.createElement(dF1,{options:D.map((J)=>({label:`${J}${Z.includes(J)?" (already exists)":""}`,value:J})),defaultValue:D.filter((J)=>!Z.includes(J)),onSubmit:G})),yZ.default.createElement(g,{marginLeft:3},yZ.default.createElement(S,{dimColor:!0},F.pending?yZ.default.createElement(yZ.default.Fragment,null,"Press ",F.keyName," again to exit"):yZ.default.createElement(yZ.default.Fragment,null,"Space to select · Enter to confirm · Esc to cancel"))))}import*as A6A from"path";import*as fu2 from"os";function Yv6(){let A=n4();if(!aj1.includes(A))throw new Error(`Unsupported platform: ${A} - Claude Desktop integration only works on macOS and WSL.`);if(A==="macos")return A6A.join(fu2.homedir(),"Library","Application Support","Claude","claude_desktop_config.json");let B=process.env.USERPROFILE?process.env.USERPROFILE.replace(/\\/g,"/"):null;if(B){let D=`/mnt/c${B.replace(/^[A-Z]:/,"")}/AppData/Roaming/Claude/claude_desktop_config.json`;if(v1().existsSync(D))return D}try{if(v1().existsSync("/mnt/c/Users")){let D=v1().readdirSync("/mnt/c/Users");for(let I of D){if(I.name==="Public"||I.name==="Default"||I.name==="Default User"||I.name==="All Users")continue;let Z=A6A.join("/mnt/c/Users",I.name,"AppData","Roaming","Claude","claude_desktop_config.json");if(v1().existsSync(Z))return Z}}}catch(Q){f1(Q instanceof Error?Q:new Error(String(Q)))}throw new Error("Could not find Claude Desktop config file in Windows. Make sure Claude Desktop is installed on Windows.")}function vu2(){if(!aj1.includes(n4()))throw new Error("Unsupported platform - Claude Desktop integration only works on macOS and WSL.");try{let A=Yv6();if(!v1().existsSync(A))return{};let B=v1().readFileSync(A,{encoding:"utf8"}),Q=S4(B);if(!Q||typeof Q!=="object")return{};let D=Q.mcpServers;if(!D||typeof D!=="object")return{};let I={};for(let[Z,G]of Object.entries(D)){if(!G||typeof G!=="object")continue;let F=_u1.safeParse(G);if(F.success)I[Z]=F.data}return I}catch(A){return f1(A instanceof Error?A:new Error(String(A))),{}}}import{cwd as ZP}from"process";var OI=G1(U1(),1);import{homedir as bu2}from"os";function gu2({onDone:A}){let B=TK(),Q=Object.keys(B).length>0;OI.default.useEffect(()=>{let Z=bu2()===lA();E1("trust_dialog_shown",{isHomeDir:Z,hasMcpServers:Q})},[Q]);function D(Z){let G=eB();if(Z==="no"){GI(1);return}let F=Z==="yes_enable_mcp",Y=bu2()===lA();if(E1("trust_dialog_accept",{isHomeDir:Y,hasMcpServers:Q,enableMcp:F}),Q){if(F)L3("localSettings",{enabledMcpjsonServers:Object.keys(B),enableAllProjectMcpServers:!0});else L3("localSettings",{disabledMcpjsonServers:Object.keys(B)});if(!Y)$6({...G,hasTrustDialogAccepted:!0})}else if(!Y)$6({...G,hasTrustDialogAccepted:!0});A()}let I=Q2();return Z0((Z,G)=>{if(G.escape){GI(0);return}}),OI.default.createElement(OI.default.Fragment,null,OI.default.createElement(g,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:"warning"},OI.default.createElement(S,{bold:!0,color:"warning"},"Do you trust the files in this folder?"),OI.default.createElement(S,{bold:!0},v1().cwd()),OI.default.createElement(g,{flexDirection:"column",gap:1},OI.default.createElement(S,null,A2," may read files in this folder. Reading untrusted files may lead ",A2," to behave in unexpected ways."),OI.default.createElement(S,null,"With your permission ",A2," may execute files in this folder.",Q&&" This project also contains MCP servers defined in .mcp.json that can execute code on your machine if enabled."," ","Executing untrusted code is unsafe."),OI.default.createElement(n3,{url:"https://docs.anthropic.com/s/claude-code-security"})),OI.default.createElement(d0,{options:Q?[{label:"Yes, proceed with MCP servers enabled",value:"yes_enable_mcp"},{label:"Yes, proceed with MCP servers disabled",value:"yes_disable_mcp"},{label:"No, exit",value:"no"}]:[{label:"Yes, proceed",value:"yes_enable_mcp"},{label:"No, exit",value:"no"}],onChange:(Z)=>D(Z),onCancel:()=>D("no")})),OI.default.createElement(g,{marginLeft:3},OI.default.createElement(S,{dimColor:!0},I.pending?OI.default.createElement(OI.default.Fragment,null,"Press ",I.keyName," again to exit"):OI.default.createElement(OI.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var B6A=G1(U1(),1);var IN1=G1(U1(),1);function hu2({context:A,commands:B,logs:Q,initialTools:D,mcpClients:I,dynamicMcpConfig:Z,appState:G,onChangeAppState:F,debug:Y,strictMcpConfig:W=!1}){let{rows:J}=z9(),C=Q.filter((K)=>!K.isSidechain);Q2();function X(){process.exit(1)}async function V(K){let E=Q[K];if(!E)return;try{A.unmount?.();let U=await DP(E,D);if(!U)throw new Error("Failed to load conversation");let q=hK(jB());await K5(),F4(IN1.default.createElement(W5,{initialState:G,onChangeAppState:F},IN1.default.createElement(vp,{initialPrompt:"",debug:Y,shouldShowPromptInput:!0,commands:B,initialTools:D,initialMessages:U.messages,initialTodos:q,mcpClients:I,dynamicMcpConfig:Z,strictMcpConfig:W})),{exitOnCtrlC:!1})}catch(U){throw f1(U),U}}return IN1.default.createElement(J21,{logs:C,maxHeight:J,onCancel:X,onSelect:V})}var uu2=G1(Fa1(),1);class Q6A extends Re{constructor(A,B){var Q;super(B);this._serverInfo=A,this._capabilities=(Q=B===null||B===void 0?void 0:B.capabilities)!==null&&Q!==void 0?Q:{},this._instructions=B===null||B===void 0?void 0:B.instructions,this.setRequestHandler(Ln1,(D)=>this._oninitialize(D)),this.setNotificationHandler(UC1,()=>{var D;return(D=this.oninitialized)===null||D===void 0?void 0:D.call(this)})}registerCapabilities(A){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=LC1(this._capabilities,A)}assertCapabilityForMethod(A){var B,Q,D;switch(A){case"sampling/createMessage":if(!((B=this._clientCapabilities)===null||B===void 0?void 0:B.sampling))throw new Error(`Client does not support sampling (required for ${A})`);break;case"elicitation/create":if(!((Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.elicitation))throw new Error(`Client does not support elicitation (required for ${A})`);break;case"roots/list":if(!((D=this._clientCapabilities)===null||D===void 0?void 0:D.roots))throw new Error(`Client does not support listing roots (required for ${A})`);break;case"ping":break}}assertNotificationCapability(A){switch(A){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${A})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${A})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${A})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${A})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(A){switch(A){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Server does not support sampling (required for ${A})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${A})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${A})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${A})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${A})`);break;case"ping":case"initialize":break}}async _oninitialize(A){let B=A.params.protocolVersion;return this._clientCapabilities=A.params.capabilities,this._clientVersion=A.params.clientInfo,{protocolVersion:VC1.includes(B)?B:yO,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},pq)}async createMessage(A,B){return this.request({method:"sampling/createMessage",params:A},yn1,B)}async elicitInput(A,B){let Q=await this.request({method:"elicitation/create",params:A},kn1,B);if(Q.action==="accept"&&Q.content)try{let D=new uu2.default,I=D.compile(A.requestedSchema);if(!I(Q.content))throw new EF(KF.InvalidParams,`Elicitation response content does not match requested schema: ${D.errorsText(I.errors)}`)}catch(D){if(D instanceof EF)throw D;throw new EF(KF.InternalError,`Error validating elicitation response: ${D}`)}return Q}async listRoots(A,B){return this.request({method:"roots/list",params:A},vn1,B)}async sendLoggingMessage(A){return this.notification({method:"notifications/message",params:A})}async sendResourceUpdated(A){return this.notification({method:"notifications/resources/updated",params:A})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}import mu2 from"node:process";class D6A{constructor(A=mu2.stdin,B=mu2.stdout){this._stdin=A,this._stdout=B,this._readBuffer=new Te,this._started=!1,this._ondata=(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()},this._onerror=(Q)=>{var D;(D=this.onerror)===null||D===void 0||D.call(this,Q)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){var A,B;while(!0)try{let Q=this._readBuffer.readMessage();if(Q===null)break;(A=this.onmessage)===null||A===void 0||A.call(this,Q)}catch(Q){(B=this.onerror)===null||B===void 0||B.call(this,Q)}}async close(){var A;if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),(A=this.onclose)===null||A===void 0||A.call(this)}send(A){return new Promise((B)=>{let Q=cC1(A);if(this._stdout.write(Q))B();else this._stdout.once("drain",B)})}}var du2={readFileState:{}},cu2=[Pw1];async function pu2(A,B,Q){if(!process.env.CLAUDE_CODE_ENTRYPOINT)process.env.CLAUDE_CODE_ENTRYPOINT="mcp";JX(A);let D=new Q6A({name:"claude/tengu",version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION},{capabilities:{tools:{}}});D.setRequestHandler(_n1,async()=>{let Z=XJ(),G=PE(Z,GA().todoFeatureEnabled);return{tools:await Promise.all(G.map(async(F)=>({...F,description:await F.description({},{isNonInteractiveSession:!0,getToolPermissionContext:()=>Z,tools:G}),inputSchema:Hm(F.inputSchema)})))}}),D.setRequestHandler(jn1,async({params:{name:Z,arguments:G}})=>{let F=PE(XJ(),GA().todoFeatureEnabled),Y=F.find((W)=>W.name===Z);if(!Y)throw new Error(`Tool ${Z} not found`);try{if(!Y.isEnabled())throw new Error(`Tool ${Z} is not enabled`);let W=f5(),J=await Y.validateInput?.(G??{},{abortController:new AbortController,options:{commands:cu2,tools:F,mainLoopModel:W,maxThinkingTokens:0,mcpClients:[],mcpResources:{},isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:XJ,removeQueuedCommands:()=>{},readFileState:du2.readFileState,setInProgressToolUseIDs:()=>{},agentId:jB()});if(J&&!J.result)throw new Error(`Tool ${Z} input is invalid: ${J.message}`);let C=Y.call(G??{},{abortController:new AbortController,options:{commands:cu2,tools:F,mainLoopModel:f5(),maxThinkingTokens:0,mcpClients:[],mcpResources:{},isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:XJ,removeQueuedCommands:()=>{},readFileState:du2.readFileState,setInProgressToolUseIDs:()=>{},agentId:jB()},cM,sY({content:[]})),X=await rU(C);if(X.type!=="result")throw new Error(`Tool ${Z} did not return a result`);return{content:Array.isArray(X)?X.map((V)=>({type:"text",text:"text"in V?V.text:JSON.stringify(V)})):[{type:"text",text:typeof X==="string"?X:JSON.stringify(X.data)}]}}catch(W){return f1(W instanceof Error?W:new Error(String(W))),{isError:!0,content:[{type:"text",text:`Error: ${W instanceof Error?W.message:String(W)}`}]}}});async function I(){let Z=new D6A;await D.connect(Z)}return await I()}import{join as ZN1}from"path";var Wv6=30;function iu2(){let Q=(_Q().cleanupPeriodDays??Wv6)*24*60*60*1000;return new Date(Date.now()-Q)}function Jv6(A,B){return{messages:A.messages+B.messages,errors:A.errors+B.errors}}function Cv6(A){let B=A.split(".")[0].replace(/T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z/,"T$1:$2:$3.$4Z");return new Date(B)}function lu2(A,B,Q){let D={messages:0,errors:0};try{let I=v1().readdirSync(A);for(let Z of I)try{if(Cv6(Z.name)<B)if(v1().unlinkSync(ZN1(A,Z.name)),Q)D.messages++;else D.errors++}catch(G){f1(G)}}catch(I){if(I instanceof Error&&"code"in I&&I.code!=="ENOENT")f1(I)}return D}async function Xv6(){let A=v1(),B=iu2(),Q=Jz.errors(),D=Jz.baseLogs(),I=lu2(Q,B,!1);try{if(A.existsSync(D)){let G=A.readdirSync(D).filter((F)=>F.isDirectory()&&F.name.startsWith("mcp-logs-")).map((F)=>ZN1(D,F.name));for(let F of G){I=Jv6(I,lu2(F,B,!0));try{if(A.isDirEmptySync(F))A.rmdirSync(F)}catch{}}}}catch(Z){if(Z instanceof Error&&"code"in Z&&Z.code!=="ENOENT")f1(Z)}return I}function Vv6(){let A=iu2(),B={messages:0,errors:0},Q=Io(),D=v1();try{if(!D.existsSync(Q))return B;let Z=D.readdirSync(Q).filter((G)=>G.isDirectory()).map((G)=>ZN1(Q,G.name));for(let G of Z)try{let Y=D.readdirSync(G).filter((W)=>W.isFile()&&W.name.endsWith(".jsonl"));for(let W of Y)try{let J=ZN1(G,W.name);if(D.statSync(J).mtime<A)D.unlinkSync(J),B.messages++}catch{B.errors++;continue}try{if(D.isDirEmptySync(G))D.rmdirSync(G)}catch{B.errors++}}catch{B.errors++;continue}}catch{B.errors++}return B}function nu2(){setImmediate(()=>{Xv6(),Vv6()}).unref()}import{join as au2,basename as Kv6}from"path";var Ev6=`
2609
+ No servers were imported.`);Q(),U4()}return yZ.default.createElement(yZ.default.Fragment,null,yZ.default.createElement(g,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:"success"},yZ.default.createElement(S,{bold:!0,color:"success"},"Import MCP Servers from Claude Desktop"),yZ.default.createElement(S,null,"Found ",D.length," MCP server",D.length!==1?"s":""," in Claude Desktop."),Z.length>0&&yZ.default.createElement(S,{color:"warning"},"Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."),yZ.default.createElement(S,null,"Please select the servers you want to import:"),yZ.default.createElement(dF1,{options:D.map((J)=>({label:`${J}${Z.includes(J)?" (already exists)":""}`,value:J})),defaultValue:D.filter((J)=>!Z.includes(J)),onSubmit:G})),yZ.default.createElement(g,{marginLeft:3},yZ.default.createElement(S,{dimColor:!0},F.pending?yZ.default.createElement(yZ.default.Fragment,null,"Press ",F.keyName," again to exit"):yZ.default.createElement(yZ.default.Fragment,null,"Space to select · Enter to confirm · Esc to cancel"))))}import*as A6A from"path";import*as fu2 from"os";function Yv6(){let A=n4();if(!aj1.includes(A))throw new Error(`Unsupported platform: ${A} - Claude Desktop integration only works on macOS and WSL.`);if(A==="macos")return A6A.join(fu2.homedir(),"Library","Application Support","Claude","claude_desktop_config.json");let B=process.env.USERPROFILE?process.env.USERPROFILE.replace(/\\/g,"/"):null;if(B){let D=`/mnt/c${B.replace(/^[A-Z]:/,"")}/AppData/Roaming/Claude/claude_desktop_config.json`;if(v1().existsSync(D))return D}try{if(v1().existsSync("/mnt/c/Users")){let D=v1().readdirSync("/mnt/c/Users");for(let I of D){if(I.name==="Public"||I.name==="Default"||I.name==="Default User"||I.name==="All Users")continue;let Z=A6A.join("/mnt/c/Users",I.name,"AppData","Roaming","Claude","claude_desktop_config.json");if(v1().existsSync(Z))return Z}}}catch(Q){f1(Q instanceof Error?Q:new Error(String(Q)))}throw new Error("Could not find Claude Desktop config file in Windows. Make sure Claude Desktop is installed on Windows.")}function vu2(){if(!aj1.includes(n4()))throw new Error("Unsupported platform - Claude Desktop integration only works on macOS and WSL.");try{let A=Yv6();if(!v1().existsSync(A))return{};let B=v1().readFileSync(A,{encoding:"utf8"}),Q=S4(B);if(!Q||typeof Q!=="object")return{};let D=Q.mcpServers;if(!D||typeof D!=="object")return{};let I={};for(let[Z,G]of Object.entries(D)){if(!G||typeof G!=="object")continue;let F=_u1.safeParse(G);if(F.success)I[Z]=F.data}return I}catch(A){return f1(A instanceof Error?A:new Error(String(A))),{}}}import{cwd as ZP}from"process";var OI=G1(U1(),1);import{homedir as bu2}from"os";function gu2({onDone:A}){let B=TK(),Q=Object.keys(B).length>0;OI.default.useEffect(()=>{let Z=bu2()===lA();E1("trust_dialog_shown",{isHomeDir:Z,hasMcpServers:Q})},[Q]);function D(Z){let G=eB();if(Z==="no"){GI(1);return}let F=Z==="yes_enable_mcp",Y=bu2()===lA();if(E1("trust_dialog_accept",{isHomeDir:Y,hasMcpServers:Q,enableMcp:F}),Q){if(F)L3("localSettings",{enabledMcpjsonServers:Object.keys(B),enableAllProjectMcpServers:!0});else L3("localSettings",{disabledMcpjsonServers:Object.keys(B)});if(!Y)$6({...G,hasTrustDialogAccepted:!0})}else if(!Y)$6({...G,hasTrustDialogAccepted:!0});A()}let I=Q2();return Z0((Z,G)=>{if(G.escape){GI(0);return}}),OI.default.createElement(OI.default.Fragment,null,OI.default.createElement(g,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:"warning"},OI.default.createElement(S,{bold:!0,color:"warning"},"Do you trust the files in this folder?"),OI.default.createElement(S,{bold:!0},v1().cwd()),OI.default.createElement(g,{flexDirection:"column",gap:1},OI.default.createElement(S,null,A2," may read files in this folder. Reading untrusted files may lead ",A2," to behave in unexpected ways."),OI.default.createElement(S,null,"With your permission ",A2," may execute files in this folder.",Q&&" This project also contains MCP servers defined in .mcp.json that can execute code on your machine if enabled."," ","Executing untrusted code is unsafe."),OI.default.createElement(n3,{url:"https://docs.anthropic.com/s/claude-code-security"})),OI.default.createElement(d0,{options:Q?[{label:"Yes, proceed with MCP servers enabled",value:"yes_enable_mcp"},{label:"Yes, proceed with MCP servers disabled",value:"yes_disable_mcp"},{label:"No, exit",value:"no"}]:[{label:"Yes, proceed",value:"yes_enable_mcp"},{label:"No, exit",value:"no"}],onChange:(Z)=>D(Z),onCancel:()=>D("no")})),OI.default.createElement(g,{marginLeft:3},OI.default.createElement(S,{dimColor:!0},I.pending?OI.default.createElement(OI.default.Fragment,null,"Press ",I.keyName," again to exit"):OI.default.createElement(OI.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var B6A=G1(U1(),1);var IN1=G1(U1(),1);function hu2({context:A,commands:B,logs:Q,initialTools:D,mcpClients:I,dynamicMcpConfig:Z,appState:G,onChangeAppState:F,debug:Y,strictMcpConfig:W=!1}){let{rows:J}=z9(),C=Q.filter((K)=>!K.isSidechain);Q2();function X(){process.exit(1)}async function V(K){let E=Q[K];if(!E)return;try{A.unmount?.();let U=await DP(E,D);if(!U)throw new Error("Failed to load conversation");let q=hK(jB());await K5(),F4(IN1.default.createElement(W5,{initialState:G,onChangeAppState:F},IN1.default.createElement(vp,{initialPrompt:"",debug:Y,shouldShowPromptInput:!0,commands:B,initialTools:D,initialMessages:U.messages,initialTodos:q,mcpClients:I,dynamicMcpConfig:Z,strictMcpConfig:W})),{exitOnCtrlC:!1})}catch(U){throw f1(U),U}}return IN1.default.createElement(J21,{logs:C,maxHeight:J,onCancel:X,onSelect:V})}var uu2=G1(Fa1(),1);class Q6A extends Re{constructor(A,B){var Q;super(B);this._serverInfo=A,this._capabilities=(Q=B===null||B===void 0?void 0:B.capabilities)!==null&&Q!==void 0?Q:{},this._instructions=B===null||B===void 0?void 0:B.instructions,this.setRequestHandler(Ln1,(D)=>this._oninitialize(D)),this.setNotificationHandler(UC1,()=>{var D;return(D=this.oninitialized)===null||D===void 0?void 0:D.call(this)})}registerCapabilities(A){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=LC1(this._capabilities,A)}assertCapabilityForMethod(A){var B,Q,D;switch(A){case"sampling/createMessage":if(!((B=this._clientCapabilities)===null||B===void 0?void 0:B.sampling))throw new Error(`Client does not support sampling (required for ${A})`);break;case"elicitation/create":if(!((Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.elicitation))throw new Error(`Client does not support elicitation (required for ${A})`);break;case"roots/list":if(!((D=this._clientCapabilities)===null||D===void 0?void 0:D.roots))throw new Error(`Client does not support listing roots (required for ${A})`);break;case"ping":break}}assertNotificationCapability(A){switch(A){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${A})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${A})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${A})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${A})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(A){switch(A){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Server does not support sampling (required for ${A})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${A})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${A})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${A})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${A})`);break;case"ping":case"initialize":break}}async _oninitialize(A){let B=A.params.protocolVersion;return this._clientCapabilities=A.params.capabilities,this._clientVersion=A.params.clientInfo,{protocolVersion:VC1.includes(B)?B:yO,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},pq)}async createMessage(A,B){return this.request({method:"sampling/createMessage",params:A},yn1,B)}async elicitInput(A,B){let Q=await this.request({method:"elicitation/create",params:A},kn1,B);if(Q.action==="accept"&&Q.content)try{let D=new uu2.default,I=D.compile(A.requestedSchema);if(!I(Q.content))throw new EF(KF.InvalidParams,`Elicitation response content does not match requested schema: ${D.errorsText(I.errors)}`)}catch(D){if(D instanceof EF)throw D;throw new EF(KF.InternalError,`Error validating elicitation response: ${D}`)}return Q}async listRoots(A,B){return this.request({method:"roots/list",params:A},vn1,B)}async sendLoggingMessage(A){return this.notification({method:"notifications/message",params:A})}async sendResourceUpdated(A){return this.notification({method:"notifications/resources/updated",params:A})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}import mu2 from"node:process";class D6A{constructor(A=mu2.stdin,B=mu2.stdout){this._stdin=A,this._stdout=B,this._readBuffer=new Te,this._started=!1,this._ondata=(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()},this._onerror=(Q)=>{var D;(D=this.onerror)===null||D===void 0||D.call(this,Q)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){var A,B;while(!0)try{let Q=this._readBuffer.readMessage();if(Q===null)break;(A=this.onmessage)===null||A===void 0||A.call(this,Q)}catch(Q){(B=this.onerror)===null||B===void 0||B.call(this,Q)}}async close(){var A;if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),(A=this.onclose)===null||A===void 0||A.call(this)}send(A){return new Promise((B)=>{let Q=cC1(A);if(this._stdout.write(Q))B();else this._stdout.once("drain",B)})}}var du2={readFileState:{}},cu2=[Pw1];async function pu2(A,B,Q){if(!process.env.CLAUDE_CODE_ENTRYPOINT)process.env.CLAUDE_CODE_ENTRYPOINT="mcp";JX(A);let D=new Q6A({name:"claude/tengu",version:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION},{capabilities:{tools:{}}});D.setRequestHandler(_n1,async()=>{let Z=XJ(),G=PE(Z,GA().todoFeatureEnabled);return{tools:await Promise.all(G.map(async(F)=>({...F,description:await F.description({},{isNonInteractiveSession:!0,getToolPermissionContext:()=>Z,tools:G}),inputSchema:Hm(F.inputSchema)})))}}),D.setRequestHandler(jn1,async({params:{name:Z,arguments:G}})=>{let F=PE(XJ(),GA().todoFeatureEnabled),Y=F.find((W)=>W.name===Z);if(!Y)throw new Error(`Tool ${Z} not found`);try{if(!Y.isEnabled())throw new Error(`Tool ${Z} is not enabled`);let W=f5(),J=await Y.validateInput?.(G??{},{abortController:new AbortController,options:{commands:cu2,tools:F,mainLoopModel:W,maxThinkingTokens:0,mcpClients:[],mcpResources:{},isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:XJ,removeQueuedCommands:()=>{},readFileState:du2.readFileState,setInProgressToolUseIDs:()=>{},agentId:jB()});if(J&&!J.result)throw new Error(`Tool ${Z} input is invalid: ${J.message}`);let C=Y.call(G??{},{abortController:new AbortController,options:{commands:cu2,tools:F,mainLoopModel:f5(),maxThinkingTokens:0,mcpClients:[],mcpResources:{},isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:XJ,removeQueuedCommands:()=>{},readFileState:du2.readFileState,setInProgressToolUseIDs:()=>{},agentId:jB()},cM,sY({content:[]})),X=await rU(C);if(X.type!=="result")throw new Error(`Tool ${Z} did not return a result`);return{content:Array.isArray(X)?X.map((V)=>({type:"text",text:"text"in V?V.text:JSON.stringify(V)})):[{type:"text",text:typeof X==="string"?X:JSON.stringify(X.data)}]}}catch(W){return f1(W instanceof Error?W:new Error(String(W))),{isError:!0,content:[{type:"text",text:`Error: ${W instanceof Error?W.message:String(W)}`}]}}});async function I(){let Z=new D6A;await D.connect(Z)}return await I()}import{join as ZN1}from"path";var Wv6=30;function iu2(){let Q=(_Q().cleanupPeriodDays??Wv6)*24*60*60*1000;return new Date(Date.now()-Q)}function Jv6(A,B){return{messages:A.messages+B.messages,errors:A.errors+B.errors}}function Cv6(A){let B=A.split(".")[0].replace(/T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z/,"T$1:$2:$3.$4Z");return new Date(B)}function lu2(A,B,Q){let D={messages:0,errors:0};try{let I=v1().readdirSync(A);for(let Z of I)try{if(Cv6(Z.name)<B)if(v1().unlinkSync(ZN1(A,Z.name)),Q)D.messages++;else D.errors++}catch(G){f1(G)}}catch(I){if(I instanceof Error&&"code"in I&&I.code!=="ENOENT")f1(I)}return D}async function Xv6(){let A=v1(),B=iu2(),Q=Jz.errors(),D=Jz.baseLogs(),I=lu2(Q,B,!1);try{if(A.existsSync(D)){let G=A.readdirSync(D).filter((F)=>F.isDirectory()&&F.name.startsWith("mcp-logs-")).map((F)=>ZN1(D,F.name));for(let F of G){I=Jv6(I,lu2(F,B,!0));try{if(A.isDirEmptySync(F))A.rmdirSync(F)}catch{}}}}catch(Z){if(Z instanceof Error&&"code"in Z&&Z.code!=="ENOENT")f1(Z)}return I}function Vv6(){let A=iu2(),B={messages:0,errors:0},Q=Io(),D=v1();try{if(!D.existsSync(Q))return B;let Z=D.readdirSync(Q).filter((G)=>G.isDirectory()).map((G)=>ZN1(Q,G.name));for(let G of Z)try{let Y=D.readdirSync(G).filter((W)=>W.isFile()&&W.name.endsWith(".jsonl"));for(let W of Y)try{let J=ZN1(G,W.name);if(D.statSync(J).mtime<A)D.unlinkSync(J),B.messages++}catch{B.errors++;continue}try{if(D.isDirEmptySync(G))D.rmdirSync(G)}catch{B.errors++}}catch{B.errors++;continue}}catch{B.errors++}return B}function nu2(){setImmediate(()=>{Xv6(),Vv6()}).unref()}import{join as au2,basename as Kv6}from"path";var Ev6=`
2610
2610
  Summarize this coding conversation in under 50 characters.
2611
2611
  Capture the main task, key files, problems addressed, and current status.
2612
2612
  `.trim();async function Hv6(A){if(!A.length)throw new Error("Can't summarize empty conversation");let Q=[`Please write a 5-10 word title the following conversation:
@@ -2635,10 +2635,10 @@ ${o3(A).map((I)=>{if(I.type==="user"){if(typeof I.message.content==="string")ret
2635
2635
  `)?E.result:E.result+`
2636
2636
  `);break;case"error_during_execution":iV("Execution error");break;case"error_max_turns":iV(`Error: Reached max turns (${F.maxTurns})`)}}process.exit(E.is_error?1:0)}function _v6(A,B,Q,D,I,Z,G,F){let Y=[],W=()=>Y,J=(q)=>{Y=Y.filter((R)=>!q.includes(R))},C=!1,X=!1,V=new F6A,K=Cm2(Z),E,U=async()=>{C=!0;try{while(Y.length>0){let q=Y.shift();if(q.mode!=="prompt")throw new Error("only prompt commands are supported in streaming mode");let R=q.value;E=new AbortController;for await(let M of Wm2({commands:D,prompt:R,cwd:Sv6(),tools:I,permissionContext:B,verbose:F.verbose,mcpClients:Q,maxTurns:F.maxTurns,permissionPromptTool:G,userSpecifiedModel:F.userSpecifiedModel,fallbackModel:F.fallbackModel,initialMessages:K,customSystemPrompt:F.systemPrompt,appendSystemPrompt:F.appendSystemPrompt,getQueuedCommands:W,removeQueuedCommands:J,abortController:E})){if(!((M.type==="assistant"||M.type==="user")&&M.parent_tool_use_id))K.push(M);V.enqueue(M)}}}finally{C=!1}if(X)V.done()};return(async()=>{for await(let q of A){if(q.type==="control_request"){if(q.request.subtype==="interrupt"){if(E)E.abort();V.enqueue({type:"control_response",response:{subtype:"success",request_id:q.request_id}})}continue}let R;if(typeof q.message.content==="string")R=q.message.content;else{if(q.message.content.length!==1)process.stderr.write(`Error: Expected message content to have exactly one item, got ${q.message.content.length}
2637
2637
  `),process.exit(1);if(typeof q.message.content[0]==="string")R=q.message.content[0];else if(q.message.content[0].type==="text")R=q.message.content[0].text;else process.stderr.write(`Error: Expected message content to be a string or a text block.
2638
- `),process.exit(1)}if(Y.push({mode:"prompt",value:R}),!C)U()}if(X=!0,!C)V.done()})(),V}async function Vm2(){E1("tengu_update_check",{}),console.log(`Current version: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION}`),console.log("Checking for updates..."),xA("update: Starting update check"),xA("update: Running diagnostic");let A=await Wp();if(xA(`update: Installation type: ${A.installationType}`),xA(`update: Config install method: ${A.configInstallMethod}`),A.multipleInstallations.length>1){console.log(""),console.log(WA.yellow("Warning: Multiple installations found"));for(let F of A.multipleInstallations){let Y=A.installationType===F.type?" (currently running)":"";console.log(`- ${F.type} at ${F.path}${Y}`)}}if(A.warnings.length>0){console.log("");for(let F of A.warnings)xA(`update: Warning detected: ${F.issue}`),xA(`update: Showing warning: ${F.issue}`),console.log(WA.yellow(`Warning: ${F.issue}`)),console.log(`Fix: ${F.fix}`)}let B=GA();if(!B.installMethod){console.log(""),console.log("Updating configuration to track installation method...");let F="unknown";switch(A.installationType){case"npm-local":F="local";break;case"native":F="native";break;case"npm-global":F="global";break;default:F="unknown"}x0({...B,installMethod:F}),console.log(`Installation method set to: ${F}`)}if(A.installationType==="development")console.log(""),console.log(WA.yellow("Warning: Cannot update development build")),await U4(1);if(B.installMethod&&A.configInstallMethod!=="not set"){let{installationType:F,configInstallMethod:Y}=A,J={"npm-local":"local","npm-global":"global",native:"native",development:"development",unknown:"unknown"}[F]||F;if(J!==Y&&Y!=="unknown")console.log(""),console.log(WA.yellow("Warning: Configuration mismatch")),console.log(`Config expects: ${Y} installation`),console.log(`Currently running: ${F}`),console.log(WA.yellow(`Updating the ${F} installation you are currently using`)),x0({...B,installMethod:J}),console.log(`Config updated to reflect current installation method: ${J}`)}if(A.installationType==="native"){xA("update: Detected native installation, using native updater");try{let F=await Mp();if(!F.latestVersion)console.error("Failed to check for updates"),await U4(1);if(F.latestVersion==={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION)console.log(WA.green(`${A2} is up to date (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION})`));else if(F.wasUpdated)console.log(WA.green(`Successfully updated from ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION} to version ${F.latestVersion}`));else console.log(WA.green(`${A2} is up to date (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION})`));await U4(0)}catch(F){console.error("Error: Failed to install native update"),console.error(String(F)),console.error('Try running "claude doctor" for diagnostics'),await U4(1)}}xw1(),xA("update: Checking npm registry for latest version"),xA(`update: Package URL: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}`);let Q=`npm view ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}@latest version`;xA(`update: Running: ${Q}`);let D=await Hw1();if(xA(`update: Latest version from npm: ${D||"FAILED"}`),!D){if(xA("update: Failed to get latest version from npm registry"),console.error(WA.red("Failed to check for updates")),console.error("Unable to fetch latest version from npm registry"),console.error(""),console.error("Possible causes:"),console.error(" • Network connectivity issues"),console.error(" • npm registry is unreachable"),console.error(" • Corporate proxy/firewall blocking npm"),{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL&&!{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL.startsWith("@anthropic"))console.error(" • Internal/development build not published to npm");console.error(""),console.error("Try:"),console.error(" • Check your internet connection"),console.error(" • Run with --debug flag for more details"),console.error(` • Manually check: npm view ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL||"@anthropic-ai/claude-cli"} version`),console.error(" • Check if you need to login: npm whoami"),await U4(1)}if(D==={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION)console.log(WA.green(`${A2} is up to date (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION})`)),await U4(0);console.log(`New version available: ${D} (current: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION})`),console.log("Installing update...");let I=!1,Z="";switch(A.installationType){case"npm-local":I=!0,Z="local";break;case"npm-global":I=!1,Z="global";break;case"unknown":{let F=S$();I=F,Z=F?"local":"global",console.log(WA.yellow("Warning: Could not determine installation type")),console.log(`Attempting ${Z} update based on file detection...`);break}default:console.error(`Error: Cannot update ${A.installationType} installation`),await U4(1)}console.log(`Using ${Z} installation update method...`),xA(`update: Update method determined: ${Z}`),xA(`update: useLocalUpdate: ${I}`);let G;if(I)xA("update: Calling installOrUpdateClaudePackage() for local update"),G=await Ok();else xA("update: Calling installGlobalPackage() for global update"),G=await Q21();switch(xA(`update: Installation status: ${G}`),G){case"success":console.log(WA.green(`Successfully updated from ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION} to version ${D}`));break;case"no_permissions":if(console.error("Error: Insufficient permissions to install update"),I)console.error("Try manually updating with:"),console.error(` cd ~/.claude/local && npm update ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}`);else console.error("Try running with sudo or fix npm permissions"),console.error("Or consider migrating to a local installation with:"),console.error(" claude migrate-installer");await U4(1);break;case"install_failed":if(console.error("Error: Failed to install update"),I)console.error("Try manually updating with:"),console.error(` cd ~/.claude/local && npm update ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.PACKAGE_URL}`);else console.error("Or consider migrating to a local installation with:"),console.error(" claude migrate-installer");await U4(1);break;case"in_progress":console.error("Error: Another instance is currently performing an update"),console.error("Please wait and try again later"),await U4(1);break}await U4(0)}var vQ=G1(U1(),1);import{homedir as jv6}from"os";import{join as yv6}from"path";async function kv6(){let A=[],B=0;xA("Attempting to remove global npm installation of @anthropic/claude-code");let{code:Q,stderr:D}=await M3("npm",["uninstall","-g","@anthropic/claude-code"],{cwd:v1().cwd()});if(Q===0)B++,xA("Removed global npm installation");else if(D&&!D.includes("npm ERR! code E404"))A.push("Failed to remove global npm installation"),cB(`Failed to uninstall global npm package: ${D}`);let I=v1(),Z=yv6(jv6(),".claude","local");if(I.existsSync(Z))try{I.rmSync(Z,{recursive:!0,force:!0}),B++,xA(`Removed local installation at ${Z}`)}catch(G){A.push(`Failed to remove ${Z}: ${G}`),cB(`Failed to remove local installation: ${G}`)}return await xv6(),{removed:B,errors:A}}async function xv6(){let{stdout:A}=await M3("which",["-a","claude"],{cwd:v1().cwd()});if(!A)return;let B=A.trim().split(`
2639
- `).filter(Boolean),Q=v1();for(let D of B)if(D.includes("node_modules")||D.includes("npm"))try{Q.unlinkSync(D),xA(`Removed stale npm claude command at ${D}`)}catch{}}function fv6({onDone:A,force:B,target:Q}){let[D,I]=vQ.useState({type:"checking"});return vQ.useEffect(()=>{async function Z(){try{xA(`Install: Starting installation process (force=${B}, target=${Q})`),I({type:"cleaning-npm"});let{removed:G,errors:F}=await kv6();if(G>0)xA(`Cleaned up ${G} npm installation(s)`);if(F.length>0)xA(`Cleanup warnings: ${F.join(", ")}`);I({type:"installing",version:Q||"stable"}),xA(`Install: Calling installLatest(force=true, target=${Q}, forceReinstall=${B})`);let W=await Mp(!0,Q,B);if(xA(`Install: installLatest returned version=${W.latestVersion}, wasUpdated=${W.wasUpdated}`),!W.latestVersion)cB("Install: Failed to retrieve version information during install");if(!W.wasUpdated)xA("Install: Already up to date");I({type:"setting-up"});let J=await Lp(!0);if(xA(`Install: Setup launcher completed with ${J.length} messages`),J.length>0)J.forEach((C)=>xA(`Install: Setup message: ${C}`));if(E1("claude_install_command",{has_version:W.latestVersion?1:0,forced:B?1:0}),J.length>0)I({type:"set-up",messages:J}),setTimeout(()=>{I({type:"success",version:W.latestVersion||"current"})},2000);else xA("Install: Shell PATH already configured"),I({type:"success",version:W.latestVersion||"current"})}catch(G){cB(`Install command failed: ${G}`),I({type:"error",message:G instanceof Error?G.message:String(G)})}}Z()},[B,Q]),vQ.useEffect(()=>{if(D.type==="success")setTimeout(()=>{A()},2000);else if(D.type==="error")setTimeout(()=>{A()},3000)},[D,A]),vQ.default.createElement(g,{flexDirection:"column",marginTop:1},D.type==="checking"&&vQ.default.createElement(S,{color:"claude"},"Checking installation status..."),D.type==="cleaning-npm"&&vQ.default.createElement(S,{color:"warning"},"Cleaning up old npm installations..."),D.type==="installing"&&vQ.default.createElement(S,{color:"claude"},"Installing Claude Code native build ",D.version,"..."),D.type==="setting-up"&&vQ.default.createElement(S,{color:"claude"},"Setting up launcher and shell integration..."),D.type==="set-up"&&vQ.default.createElement(g,{flexDirection:"column",gap:1},vQ.default.createElement(S,{color:"warning"},"Setup notes:"),D.messages.map((Z,G)=>vQ.default.createElement(g,{key:G,marginLeft:2},vQ.default.createElement(S,{color:"secondaryText"},"• ",Z)))),D.type==="success"&&vQ.default.createElement(g,{flexDirection:"column",gap:1},vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"success"},tA.tick," "),vQ.default.createElement(S,{color:"success",bold:!0},"Claude Code successfully installed!")),vQ.default.createElement(g,{marginLeft:2,flexDirection:"column",gap:1},D.version!=="current"&&vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"secondaryText"},"Version: "),vQ.default.createElement(S,{color:"claude"},D.version)),vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"secondaryText"},"Location: "),vQ.default.createElement(S,{color:"text"},"~/.claude/bin/claude")),vQ.default.createElement(g,{marginTop:1},vQ.default.createElement(S,{color:"secondaryText"},"Next: Run "),vQ.default.createElement(S,{color:"claude",bold:!0},"claude --help"),vQ.default.createElement(S,{color:"secondaryText"}," to get started")))),D.type==="error"&&vQ.default.createElement(g,{flexDirection:"column",gap:1},vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"error"},tA.cross," "),vQ.default.createElement(S,{color:"error"},"Installation failed")),vQ.default.createElement(S,{color:"error"},D.message),vQ.default.createElement(g,{marginTop:1},vQ.default.createElement(S,{color:"secondaryText"},"Try running with --force to override checks"))))}var Km2={type:"local-jsx",name:"install",description:"Install Claude Code native build",argumentHint:"[options]",async call(A,B,Q){let D=Q.includes("--force"),Z=Q.filter((F)=>!F.startsWith("--"))[0],{unmount:G}=F4(vQ.default.createElement(fv6,{onDone:()=>{G(),A()},force:D,target:Z}))}};process.env.COREPACK_ENABLE_AUTO_PIN="0";function vv6(){let A=process.execArgv.some((Q)=>/--inspect(-brk)?|--debug(-brk)?/.test(Q)),B=process.env.NODE_OPTIONS&&/--inspect(-brk)?|--debug(-brk)?/.test(process.env.NODE_OPTIONS);try{return!!global.require("inspector").url()||A||B}catch{return A||B}}if(vv6())process.exit(1);function mv6(){let A=GA();x0({...A,hasCompletedOnboarding:!0,lastOnboardingVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION})}async function dv6(A){if(_4(!1)||process.env.IS_DEMO)return!1;let B=GA(),Q=!1;if(!B.theme||!B.hasCompletedOnboarding)Q=!0,await K5(),await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,{onChangeAppState:fk},U8.default.createElement(p9A,{onDone:async()=>{mv6(),await K5(),I(),D()}})),{exitOnCtrlC:!1})});if(process.env.ANTHROPIC_API_KEY){let D=sW(process.env.ANTHROPIC_API_KEY);if(hF1(D)==="new")await new Promise((Z)=>{let{unmount:G}=F4(U8.default.createElement(W5,{onChangeAppState:fk},U8.default.createElement($w1,{customApiKeyTruncated:D,onDone:()=>{G(),Z()}})),{exitOnCtrlC:!1})})}if(A!=="bypassPermissions"&&process.env.CLAUBBIT!=="true"){if(!Gw0())await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,null,U8.default.createElement(gu2,{onDone:()=>{I(),D()}})),{exitOnCtrlC:!1})});if(await tu2(),await TO2())await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,null,U8.default.createElement(Ww1,{onDone:()=>{I(),D()}})),{exitOnCtrlC:!1})})}if(A==="bypassPermissions"&&!GA().bypassPermissionsModeAccepted)await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,null,U8.default.createElement(eu2,{onAccept:()=>{I(),D()}})))});return Q}function cv6(){let A=GA();x0({...A,numStartups:(A.numStartups??0)+1}),pv6(),T8A()?.add(1)}async function pv6(){let[A,B]=await Promise.all([Cz(),ga()]);E1("tengu_startup_telemetry",{is_git:A,worktree_count:B})}function lv6(){Qm2(),Dm2(),Im2(),Zm2(),EcA()}async function GP(A,B,Q,D){let I=process.version.match(/^v(\d+)\./)?.[1];if(!I||parseInt(I)<18)console.error(WA.bold.red("Error: Claude Code requires Node.js version 18 or higher.")),process.exit(1);if(g0A(),_4(!1))console.warn("Running in CI environment - interactive features are limited");let Z=Af2();if(Z.status==="restored")console.log(WA.yellow("Detected an interrupted iTerm2 setup. Your original settings have been restored. You may need to restart iTerm2 for the changes to take effect."));else if(Z.status==="failed")console.error(WA.red(`Failed to restore iTerm2 settings. Please manually restore your original settings with: defaults import com.googlecode.iterm2 ${Z.backupPath}.`));try{let W=await Aw1();if(W.status==="restored")console.log(WA.yellow("Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect."));else if(W.status==="failed")console.error(WA.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${W.backupPath}.`))}catch(W){f1(W instanceof Error?W:new Error(String(W)))}let G=Q??!1;JX(A),YF(),nu2(),ru2(),Qg2(),CU0(),fQA(),cU1(G),jG(),QV(),Sj(),S_(),Ou1(),SJ1([],jB()),MR2(),yQA(),rR2().catch(f1),Xf2();let F=new AbortController;if(setTimeout(()=>F.abort(),3000),B51(lA(),F.signal,[]),B==="bypassPermissions"){if(process.platform!=="win32"&&typeof process.getuid==="function"&&process.getuid()===0&&!process.env.IS_SANDBOX)console.error("--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons"),process.exit(1)}let Y=eB();if(Y.lastCost!==void 0&&Y.lastDuration!==void 0)E1("tengu_exit",{last_session_cost:Y.lastCost,last_session_api_duration:Y.lastAPIDuration,last_session_duration:Y.lastDuration,last_session_lines_added:Y.lastLinesAdded,last_session_lines_removed:Y.lastLinesRemoved,last_session_total_input_tokens:Y.lastTotalInputTokens,last_session_total_output_tokens:Y.lastTotalOutputTokens,last_session_total_cache_creation_input_tokens:Y.lastTotalCacheCreationInputTokens,last_session_total_cache_read_input_tokens:Y.lastTotalCacheReadInputTokens,last_session_id:Y.lastSessionId}),$6({...Y,lastCost:void 0,lastAPIDuration:void 0,lastDuration:void 0,lastLinesAdded:void 0,lastLinesRemoved:void 0,lastTotalInputTokens:void 0,lastTotalOutputTokens:void 0,lastTotalCacheCreationInputTokens:void 0,lastTotalCacheReadInputTokens:void 0,lastSessionId:void 0});if(Y.pendingExitFeedback){let W=Y.pendingExitFeedback;E1("tengu_exit_feedback",{feedback_choice:W.feedbackChoice,feedback_details:W.feedbackDetails,last_session_id:W.sessionId,model:W.model}),$6({...Y,pendingExitFeedback:void 0})}if(!1)try{}catch{}}async function iv6(){if(process.argv[2]==="--ripgrep"){let G=process.argv.slice(3);process.exit(yo0(G))}if(!process.env.CLAUDE_CODE_ENTRYPOINT)process.env.CLAUDE_CODE_ENTRYPOINT="cli";process.on("exit",()=>{sv6()}),process.on("SIGINT",()=>{process.exit(0)});let A=process.argv.slice(2),Q=A.includes("-p")||A.includes("--print")||!process.stdout.isTTY;f8A(Q),b8A(!Q);let I=(()=>{if(process.env.GITHUB_ACTIONS==="true")return"github-action";if(process.env.CLAUDE_CODE_ENTRYPOINT==="sdk-ts")return"sdk-typescript";if(process.env.CLAUDE_CODE_ENTRYPOINT==="sdk-cli")return"sdk-cli";return"cli"})();h8A(I);let Z=jo0();if(Z instanceof Promise)await Z;process.title="claude",await rv6()}function nv6(A){let B={exitOnCtrlC:A,onFlicker(){E1("tengu_flicker",{})}};if(!process.stdin.isTTY&&!_4(!1)&&!process.argv.includes("mcp")){if(process.platform!=="win32")try{let Q=gv6("/dev/tty","r");B={...B,stdin:new bv6(Q)}}catch(Q){f1(Q)}}return B}async function av6(A,B){if(!process.stdin.isTTY&&!process.argv.includes("mcp")){if(B==="stream-json")return process.stdin;let Q="";for await(let D of process.stdin)Q+=D;return[A,Q].filter(Boolean).join(`
2638
+ `),process.exit(1)}if(Y.push({mode:"prompt",value:R}),!C)U()}if(X=!0,!C)V.done()})(),V}async function Vm2(){E1("tengu_update_check",{}),console.log(`Current version: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION}`),console.log("Checking for updates..."),xA("update: Starting update check"),xA("update: Running diagnostic");let A=await Wp();if(xA(`update: Installation type: ${A.installationType}`),xA(`update: Config install method: ${A.configInstallMethod}`),A.multipleInstallations.length>1){console.log(""),console.log(WA.yellow("Warning: Multiple installations found"));for(let F of A.multipleInstallations){let Y=A.installationType===F.type?" (currently running)":"";console.log(`- ${F.type} at ${F.path}${Y}`)}}if(A.warnings.length>0){console.log("");for(let F of A.warnings)xA(`update: Warning detected: ${F.issue}`),xA(`update: Showing warning: ${F.issue}`),console.log(WA.yellow(`Warning: ${F.issue}`)),console.log(`Fix: ${F.fix}`)}let B=GA();if(!B.installMethod){console.log(""),console.log("Updating configuration to track installation method...");let F="unknown";switch(A.installationType){case"npm-local":F="local";break;case"native":F="native";break;case"npm-global":F="global";break;default:F="unknown"}x0({...B,installMethod:F}),console.log(`Installation method set to: ${F}`)}if(A.installationType==="development")console.log(""),console.log(WA.yellow("Warning: Cannot update development build")),await U4(1);if(B.installMethod&&A.configInstallMethod!=="not set"){let{installationType:F,configInstallMethod:Y}=A,J={"npm-local":"local","npm-global":"global",native:"native",development:"development",unknown:"unknown"}[F]||F;if(J!==Y&&Y!=="unknown")console.log(""),console.log(WA.yellow("Warning: Configuration mismatch")),console.log(`Config expects: ${Y} installation`),console.log(`Currently running: ${F}`),console.log(WA.yellow(`Updating the ${F} installation you are currently using`)),x0({...B,installMethod:J}),console.log(`Config updated to reflect current installation method: ${J}`)}if(A.installationType==="native"){xA("update: Detected native installation, using native updater");try{let F=await Mp();if(!F.latestVersion)console.error("Failed to check for updates"),await U4(1);if(F.latestVersion==={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION)console.log(WA.green(`${A2} is up to date (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION})`));else if(F.wasUpdated)console.log(WA.green(`Successfully updated from ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION} to version ${F.latestVersion}`));else console.log(WA.green(`${A2} is up to date (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION})`));await U4(0)}catch(F){console.error("Error: Failed to install native update"),console.error(String(F)),console.error('Try running "claude doctor" for diagnostics'),await U4(1)}}xw1(),xA("update: Checking npm registry for latest version"),xA(`update: Package URL: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}`);let Q=`npm view ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}@latest version`;xA(`update: Running: ${Q}`);let D=await Hw1();if(xA(`update: Latest version from npm: ${D||"FAILED"}`),!D){if(xA("update: Failed to get latest version from npm registry"),console.error(WA.red("Failed to check for updates")),console.error("Unable to fetch latest version from npm registry"),console.error(""),console.error("Possible causes:"),console.error(" • Network connectivity issues"),console.error(" • npm registry is unreachable"),console.error(" • Corporate proxy/firewall blocking npm"),{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL&&!{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL.startsWith("@anthropic"))console.error(" • Internal/development build not published to npm");console.error(""),console.error("Try:"),console.error(" • Check your internet connection"),console.error(" • Run with --debug flag for more details"),console.error(` • Manually check: npm view ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL||"@anthropic-ai/claude-cli"} version`),console.error(" • Check if you need to login: npm whoami"),await U4(1)}if(D==={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION)console.log(WA.green(`${A2} is up to date (${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION})`)),await U4(0);console.log(`New version available: ${D} (current: ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION})`),console.log("Installing update...");let I=!1,Z="";switch(A.installationType){case"npm-local":I=!0,Z="local";break;case"npm-global":I=!1,Z="global";break;case"unknown":{let F=S$();I=F,Z=F?"local":"global",console.log(WA.yellow("Warning: Could not determine installation type")),console.log(`Attempting ${Z} update based on file detection...`);break}default:console.error(`Error: Cannot update ${A.installationType} installation`),await U4(1)}console.log(`Using ${Z} installation update method...`),xA(`update: Update method determined: ${Z}`),xA(`update: useLocalUpdate: ${I}`);let G;if(I)xA("update: Calling installOrUpdateClaudePackage() for local update"),G=await Ok();else xA("update: Calling installGlobalPackage() for global update"),G=await Q21();switch(xA(`update: Installation status: ${G}`),G){case"success":console.log(WA.green(`Successfully updated from ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION} to version ${D}`));break;case"no_permissions":if(console.error("Error: Insufficient permissions to install update"),I)console.error("Try manually updating with:"),console.error(` cd ~/.claude/local && npm update ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}`);else console.error("Try running with sudo or fix npm permissions"),console.error("Or consider migrating to a local installation with:"),console.error(" claude migrate-installer");await U4(1);break;case"install_failed":if(console.error("Error: Failed to install update"),I)console.error("Try manually updating with:"),console.error(` cd ~/.claude/local && npm update ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.PACKAGE_URL}`);else console.error("Or consider migrating to a local installation with:"),console.error(" claude migrate-installer");await U4(1);break;case"in_progress":console.error("Error: Another instance is currently performing an update"),console.error("Please wait and try again later"),await U4(1);break}await U4(0)}var vQ=G1(U1(),1);import{homedir as jv6}from"os";import{join as yv6}from"path";async function kv6(){let A=[],B=0;xA("Attempting to remove global npm installation of @anthropic/claude-code");let{code:Q,stderr:D}=await M3("npm",["uninstall","-g","@anthropic/claude-code"],{cwd:v1().cwd()});if(Q===0)B++,xA("Removed global npm installation");else if(D&&!D.includes("npm ERR! code E404"))A.push("Failed to remove global npm installation"),cB(`Failed to uninstall global npm package: ${D}`);let I=v1(),Z=yv6(jv6(),".claude","local");if(I.existsSync(Z))try{I.rmSync(Z,{recursive:!0,force:!0}),B++,xA(`Removed local installation at ${Z}`)}catch(G){A.push(`Failed to remove ${Z}: ${G}`),cB(`Failed to remove local installation: ${G}`)}return await xv6(),{removed:B,errors:A}}async function xv6(){let{stdout:A}=await M3("which",["-a","claude"],{cwd:v1().cwd()});if(!A)return;let B=A.trim().split(`
2639
+ `).filter(Boolean),Q=v1();for(let D of B)if(D.includes("node_modules")||D.includes("npm"))try{Q.unlinkSync(D),xA(`Removed stale npm claude command at ${D}`)}catch{}}function fv6({onDone:A,force:B,target:Q}){let[D,I]=vQ.useState({type:"checking"});return vQ.useEffect(()=>{async function Z(){try{xA(`Install: Starting installation process (force=${B}, target=${Q})`),I({type:"cleaning-npm"});let{removed:G,errors:F}=await kv6();if(G>0)xA(`Cleaned up ${G} npm installation(s)`);if(F.length>0)xA(`Cleanup warnings: ${F.join(", ")}`);I({type:"installing",version:Q||"stable"}),xA(`Install: Calling installLatest(force=true, target=${Q}, forceReinstall=${B})`);let W=await Mp(!0,Q,B);if(xA(`Install: installLatest returned version=${W.latestVersion}, wasUpdated=${W.wasUpdated}`),!W.latestVersion)cB("Install: Failed to retrieve version information during install");if(!W.wasUpdated)xA("Install: Already up to date");I({type:"setting-up"});let J=await Lp(!0);if(xA(`Install: Setup launcher completed with ${J.length} messages`),J.length>0)J.forEach((C)=>xA(`Install: Setup message: ${C}`));if(E1("claude_install_command",{has_version:W.latestVersion?1:0,forced:B?1:0}),J.length>0)I({type:"set-up",messages:J}),setTimeout(()=>{I({type:"success",version:W.latestVersion||"current"})},2000);else xA("Install: Shell PATH already configured"),I({type:"success",version:W.latestVersion||"current"})}catch(G){cB(`Install command failed: ${G}`),I({type:"error",message:G instanceof Error?G.message:String(G)})}}Z()},[B,Q]),vQ.useEffect(()=>{if(D.type==="success")setTimeout(()=>{A()},2000);else if(D.type==="error")setTimeout(()=>{A()},3000)},[D,A]),vQ.default.createElement(g,{flexDirection:"column",marginTop:1},D.type==="checking"&&vQ.default.createElement(S,{color:"claude"},"Checking installation status..."),D.type==="cleaning-npm"&&vQ.default.createElement(S,{color:"warning"},"Cleaning up old npm installations..."),D.type==="installing"&&vQ.default.createElement(S,{color:"claude"},"Installing Claude Code native build ",D.version,"..."),D.type==="setting-up"&&vQ.default.createElement(S,{color:"claude"},"Setting up launcher and shell integration..."),D.type==="set-up"&&vQ.default.createElement(g,{flexDirection:"column",gap:1},vQ.default.createElement(S,{color:"warning"},"Setup notes:"),D.messages.map((Z,G)=>vQ.default.createElement(g,{key:G,marginLeft:2},vQ.default.createElement(S,{color:"secondaryText"},"• ",Z)))),D.type==="success"&&vQ.default.createElement(g,{flexDirection:"column",gap:1},vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"success"},tA.tick," "),vQ.default.createElement(S,{color:"success",bold:!0},"Claude Code successfully installed!")),vQ.default.createElement(g,{marginLeft:2,flexDirection:"column",gap:1},D.version!=="current"&&vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"secondaryText"},"Version: "),vQ.default.createElement(S,{color:"claude"},D.version)),vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"secondaryText"},"Location: "),vQ.default.createElement(S,{color:"text"},"~/.claude/bin/claude")),vQ.default.createElement(g,{marginTop:1},vQ.default.createElement(S,{color:"secondaryText"},"Next: Run "),vQ.default.createElement(S,{color:"claude",bold:!0},"claude --help"),vQ.default.createElement(S,{color:"secondaryText"}," to get started")))),D.type==="error"&&vQ.default.createElement(g,{flexDirection:"column",gap:1},vQ.default.createElement(g,null,vQ.default.createElement(S,{color:"error"},tA.cross," "),vQ.default.createElement(S,{color:"error"},"Installation failed")),vQ.default.createElement(S,{color:"error"},D.message),vQ.default.createElement(g,{marginTop:1},vQ.default.createElement(S,{color:"secondaryText"},"Try running with --force to override checks"))))}var Km2={type:"local-jsx",name:"install",description:"Install Claude Code native build",argumentHint:"[options]",async call(A,B,Q){let D=Q.includes("--force"),Z=Q.filter((F)=>!F.startsWith("--"))[0],{unmount:G}=F4(vQ.default.createElement(fv6,{onDone:()=>{G(),A()},force:D,target:Z}))}};process.env.COREPACK_ENABLE_AUTO_PIN="0";function vv6(){let A=process.execArgv.some((Q)=>/--inspect(-brk)?|--debug(-brk)?/.test(Q)),B=process.env.NODE_OPTIONS&&/--inspect(-brk)?|--debug(-brk)?/.test(process.env.NODE_OPTIONS);try{return!!global.require("inspector").url()||A||B}catch{return A||B}}if(vv6())process.exit(1);function mv6(){let A=GA();x0({...A,hasCompletedOnboarding:!0,lastOnboardingVersion:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION})}async function dv6(A){if(_4(!1)||process.env.IS_DEMO)return!1;let B=GA(),Q=!1;if(!B.theme||!B.hasCompletedOnboarding)Q=!0,await K5(),await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,{onChangeAppState:fk},U8.default.createElement(p9A,{onDone:async()=>{mv6(),await K5(),I(),D()}})),{exitOnCtrlC:!1})});if(process.env.ANTHROPIC_API_KEY){let D=sW(process.env.ANTHROPIC_API_KEY);if(hF1(D)==="new")await new Promise((Z)=>{let{unmount:G}=F4(U8.default.createElement(W5,{onChangeAppState:fk},U8.default.createElement($w1,{customApiKeyTruncated:D,onDone:()=>{G(),Z()}})),{exitOnCtrlC:!1})})}if(A!=="bypassPermissions"&&process.env.CLAUBBIT!=="true"){if(!Gw0())await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,null,U8.default.createElement(gu2,{onDone:()=>{I(),D()}})),{exitOnCtrlC:!1})});if(await tu2(),await TO2())await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,null,U8.default.createElement(Ww1,{onDone:()=>{I(),D()}})),{exitOnCtrlC:!1})})}if(A==="bypassPermissions"&&!GA().bypassPermissionsModeAccepted)await new Promise((D)=>{let{unmount:I}=F4(U8.default.createElement(W5,null,U8.default.createElement(eu2,{onAccept:()=>{I(),D()}})))});return Q}function cv6(){let A=GA();x0({...A,numStartups:(A.numStartups??0)+1}),pv6(),T8A()?.add(1)}async function pv6(){let[A,B]=await Promise.all([Cz(),ga()]);E1("tengu_startup_telemetry",{is_git:A,worktree_count:B})}function lv6(){Qm2(),Dm2(),Im2(),Zm2(),EcA()}async function GP(A,B,Q,D){let I=process.version.match(/^v(\d+)\./)?.[1];if(!I||parseInt(I)<18)console.error(WA.bold.red("Error: Claude Code requires Node.js version 18 or higher.")),process.exit(1);if(g0A(),_4(!1))console.warn("Running in CI environment - interactive features are limited");let Z=Af2();if(Z.status==="restored")console.log(WA.yellow("Detected an interrupted iTerm2 setup. Your original settings have been restored. You may need to restart iTerm2 for the changes to take effect."));else if(Z.status==="failed")console.error(WA.red(`Failed to restore iTerm2 settings. Please manually restore your original settings with: defaults import com.googlecode.iterm2 ${Z.backupPath}.`));try{let W=await Aw1();if(W.status==="restored")console.log(WA.yellow("Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect."));else if(W.status==="failed")console.error(WA.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${W.backupPath}.`))}catch(W){f1(W instanceof Error?W:new Error(String(W)))}let G=Q??!1;JX(A),YF(),nu2(),ru2(),Qg2(),CU0(),fQA(),cU1(G),jG(),QV(),Sj(),S_(),Ou1(),SJ1([],jB()),MR2(),yQA(),rR2().catch(f1),Xf2();let F=new AbortController;if(setTimeout(()=>F.abort(),3000),B51(lA(),F.signal,[]),B==="bypassPermissions"){if(process.platform!=="win32"&&typeof process.getuid==="function"&&process.getuid()===0&&!process.env.IS_SANDBOX)console.error("--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons"),process.exit(1)}let Y=eB();if(Y.lastCost!==void 0&&Y.lastDuration!==void 0)E1("tengu_exit",{last_session_cost:Y.lastCost,last_session_api_duration:Y.lastAPIDuration,last_session_duration:Y.lastDuration,last_session_lines_added:Y.lastLinesAdded,last_session_lines_removed:Y.lastLinesRemoved,last_session_total_input_tokens:Y.lastTotalInputTokens,last_session_total_output_tokens:Y.lastTotalOutputTokens,last_session_total_cache_creation_input_tokens:Y.lastTotalCacheCreationInputTokens,last_session_total_cache_read_input_tokens:Y.lastTotalCacheReadInputTokens,last_session_id:Y.lastSessionId}),$6({...Y,lastCost:void 0,lastAPIDuration:void 0,lastDuration:void 0,lastLinesAdded:void 0,lastLinesRemoved:void 0,lastTotalInputTokens:void 0,lastTotalOutputTokens:void 0,lastTotalCacheCreationInputTokens:void 0,lastTotalCacheReadInputTokens:void 0,lastSessionId:void 0});if(Y.pendingExitFeedback){let W=Y.pendingExitFeedback;E1("tengu_exit_feedback",{feedback_choice:W.feedbackChoice,feedback_details:W.feedbackDetails,last_session_id:W.sessionId,model:W.model}),$6({...Y,pendingExitFeedback:void 0})}if(!1)try{}catch{}}async function iv6(){if(process.argv[2]==="--ripgrep"){let G=process.argv.slice(3);process.exit(yo0(G))}if(!process.env.CLAUDE_CODE_ENTRYPOINT)process.env.CLAUDE_CODE_ENTRYPOINT="cli";process.on("exit",()=>{sv6()}),process.on("SIGINT",()=>{process.exit(0)});let A=process.argv.slice(2),Q=A.includes("-p")||A.includes("--print")||!process.stdout.isTTY;f8A(Q),b8A(!Q);let I=(()=>{if(process.env.GITHUB_ACTIONS==="true")return"github-action";if(process.env.CLAUDE_CODE_ENTRYPOINT==="sdk-ts")return"sdk-typescript";if(process.env.CLAUDE_CODE_ENTRYPOINT==="sdk-cli")return"sdk-cli";return"cli"})();h8A(I);let Z=jo0();if(Z instanceof Promise)await Z;process.title="claude",await rv6()}function nv6(A){let B={exitOnCtrlC:A,onFlicker(){E1("tengu_flicker",{})}};if(!process.stdin.isTTY&&!_4(!1)&&!process.argv.includes("mcp")){if(process.platform!=="win32")try{let Q=gv6("/dev/tty","r");B={...B,stdin:new bv6(Q)}}catch(Q){f1(Q)}}return B}async function av6(A,B){if(!process.stdin.isTTY&&!process.argv.includes("mcp")){if(B==="stream-json")return process.stdin;let Q="";for await(let D of process.stdin)Q+=D;return[A,Q].filter(Boolean).join(`
2640
2640
  `)}return A}async function rv6(){lv6();let A=new ku2;A.name("claude").description(`${A2} - starts an interactive session by default, use -p/--print for non-interactive output`).argument("[prompt]","Your prompt",String).helpOption("-h, --help","Display help for command").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).option("-p, --print","Print response and exit (useful for pipes)",()=>!0).addOption(new IP("--output-format <format>",'Output format (only works with --print): "text" (default), "json" (single result), or "stream-json" (realtime streaming)').choices(["text","json","stream-json"])).addOption(new IP("--input-format <format>",'Input format (only works with --print): "text" (default), or "stream-json" (realtime streaming input)').choices(["text","stream-json"])).option("--mcp-debug","[DEPRECATED. Use --debug instead] Enable MCP debug mode (shows MCP server errors)",()=>!0).option("--dangerously-skip-permissions","Bypass all permission checks. Recommended only for sandboxes with no internet access.",()=>!0).addOption(new IP("--max-turns <turns>","Maximum number of agentic turns in non-interactive mode. This will early exit the conversation after the specified number of turns. (only works with --print)").argParser(Number).hideHelp()).option("--allowedTools <tools...>",'Comma or space-separated list of tool names to allow (e.g. "Bash(git:*) Edit")').option("--disallowedTools <tools...>",'Comma or space-separated list of tool names to deny (e.g. "Bash(git:*) Edit")').option("--mcp-config <file or string>","Load MCP servers from a JSON file or string").addOption(new IP("--permission-prompt-tool <tool>","MCP tool to use for permission prompts (only works with --print)").argParser(String).hideHelp()).addOption(new IP("--system-prompt <prompt>","System prompt to use for the session (only works with --print)").argParser(String).hideHelp()).addOption(new IP("--append-system-prompt <prompt>","Append a system prompt to the default system prompt (only works with --print)").argParser(String).hideHelp()).addOption(new IP("--permission-mode <mode>","Permission mode to use for the session").argParser(String).hideHelp().choices(M51)).option("-c, --continue","Continue the most recent conversation",()=>!0).option("-r, --resume [sessionId]","Resume a conversation - provide a session ID or interactively select a conversation to resume",(D)=>D||!0).option("--model <model>","Model for the current session. Provide an alias for the latest model (e.g. 'sonnet' or 'opus') or a model's full name (e.g. 'claude-sonnet-4-20250514').").option("--fallback-model <model>","Enable automatic fallback to specified model when default model is overloaded (only works with --print)").option("--add-dir <directories...>","Additional directories to allow tool access to").option("--ide","Automatically connect to IDE on startup if exactly one valid IDE is available",()=>!0).option("--strict-mcp-config","Only use MCP servers from --mcp-config, ignoring all other MCP configurations",()=>!0).action(async(D,I)=>{let{debug:Z=!1,verbose:G=!1,print:F,dangerouslySkipPermissions:Y,allowedTools:W=[],disallowedTools:J=[],mcpConfig:C,outputFormat:X,inputFormat:V,permissionMode:K,addDir:E=[],fallbackModel:U,ide:q=!1}=I,R=I.strictMcpConfig||!1,M=!1,T=null,L=z91();if(U&&I.model&&U===I.model)process.stderr.write(WA.red(`Error: Fallback model cannot be the same as the main model. Please specify a different model for --fallback-model.
2641
- `)),process.exit(1);let P=Ig2({permissionModeCli:K,dangerouslySkipPermissions:Y}),_=void 0;if(C)try{let i1,_1=S4(C);if(_1){let Q1=Jo(_1);if(!Q1.success){let R1=Q1.error.errors.map((q1)=>`${q1.path.join(".")}: ${q1.message}`).join(", ");throw new Error(`Invalid MCP configuration: ${R1}`)}i1=Q1.data.mcpServers}else{let Q1=uv6(C);i1=S1A(Q1).mcpServers}_=NC(i1,(Q1)=>({...Q1,scope:"dynamic"}))}catch(i1){console.error(`Error: ${i1 instanceof Error?i1.message:String(i1)}`),process.exit(1)}if(!L){let i1=await dv6(P);if(i1&&D?.trim().toLowerCase()==="/login")D="";if(!i1)Vz1()}let{toolPermissionContext:d,warnings:y}=Zg2({allowedToolsCli:W,disallowedToolsCli:J,permissionMode:P,addDirs:E});if(y.forEach((i1)=>{console.error(i1)}),Mv2(),tE1(_,R),V&&V!=="text"&&V!=="stream-json")console.error(`Error: Invalid input format "${V}".`),process.exit(1);if(V==="stream-json"&&X!=="stream-json")console.error("Error: --input-format=stream-json requires output-format=stream-json."),process.exit(1);let p=await av6(D||"",V??"text"),m=PE(d,GA().todoFeatureEnabled);await GP(ZP(),P,F??!1,!1);let[o,{clients:A1=[],tools:f=[],commands:s=[]}]=await Promise.all([fQA(),p||L?await tE1(_,R):{clients:[],tools:[],commands:[]}]);if(E1("tengu_init",{entrypoint:"claude",hasInitialPrompt:Boolean(D),hasStdin:Boolean(p),verbose:G,debug:Z,print:F,outputFormat:X,numAllowedTools:W.length,numDisallowedTools:J.length,mcpClientCount:Object.keys(uX()).length,worktree:!1}),$f2(),L){Xm2(p,d,A1,o,s,m,f,{continue:I.continue,resume:I.resume,verbose:I.verbose,outputFormat:I.outputFormat,permissionPromptToolName:I.permissionPromptTool,allowedTools:W,maxTurns:I.maxTurns,systemPrompt:I.systemPrompt,appendSystemPrompt:I.appendSystemPrompt,userSpecifiedModel:I.model,fallbackModel:U,teleport:null});return}let[V1,h1]=await Promise.all([nv6(!1),Yh2(Bm2)]);E1("tengu_startup_manual_model_config",{cli_flag:I.model,env_var:process.env.ANTHROPIC_MODEL,settings_file:_Q().model});let g1=I.model||process.env.ANTHROPIC_MODEL||_Q().model;if(NB()&&!QG()&&g1!==void 0&&g1.includes("opus"))console.error(WA.yellow("Claude Pro users are not currently able to use Opus 4 in Claude Code. The current model is now Sonnet 4."));let ZA=I.model;Rl(ZA),R8A(Au()||null);let EA={verbose:G??!1,mainLoopModel:E91(),todoFeatureEnabled:GA().todoFeatureEnabled,toolPermissionContext:d,maxRateLimitFallbackActive:!1,mcp:{clients:[],tools:[],commands:[],resources:{}}};if(QN1(d),cv6(),I.continue)try{E1("tengu_continue",{});let i1=await DP(void 0,f);if(!i1)console.error("No conversation found to continue"),process.exit(1);let _1=hK(jB());F4(U8.default.createElement(W5,{initialState:EA,onChangeAppState:fk},U8.default.createElement(vp,{debug:Z,initialPrompt:p,shouldShowPromptInput:!0,commands:[...o,...s],initialTools:f,initialMessages:i1.messages,initialTodos:_1,mcpClients:A1,dynamicMcpConfig:_,autoConnectIdeFlag:q,strictMcpConfig:R})),V1)}catch(i1){f1(i1 instanceof Error?i1:new Error(String(i1))),process.exit(1)}else if(I.resume){let i1=null,_1=OK(I.resume);if(!1){if(I.resume&&typeof I.resume==="string"&&!_1)try{}catch(Q1){}}if(_1){let Q1=_1;try{let R1=await DP(Q1,f);if(!R1)console.error(`No conversation found with session ID: ${Q1}`),process.exit(1);i1=R1.messages}catch(R1){f1(R1 instanceof Error?R1:new Error(String(R1))),console.error(`Failed to resume session ${Q1}`),process.exit(1)}}if(Array.isArray(i1))F4(U8.default.createElement(W5,{initialState:EA,onChangeAppState:fk},U8.default.createElement(vp,{debug:Z,initialPrompt:p,shouldShowPromptInput:!0,commands:[...o,...s],initialTools:f,initialMessages:i1,mcpClients:A1,dynamicMcpConfig:_,autoConnectIdeFlag:q,strictMcpConfig:R})),V1);else{let Q1={},R1=await Qu();if(!R1.length)console.error("No conversations found to resume"),process.exit(1);let{unmount:q1}=F4(U8.default.createElement(hu2,{commands:[...o,...s],context:Q1,debug:Z,logs:R1,initialTools:f,mcpClients:A1,dynamicMcpConfig:_,appState:EA,onChangeAppState:fk,strictMcpConfig:R}),V1);Q1.unmount=q1}}else{let i1=hK(jB());F4(U8.default.createElement(W5,{initialState:EA,onChangeAppState:fk},U8.default.createElement(vp,{debug:Z,commands:[...o,...s],initialPrompt:p,shouldShowPromptInput:!0,initialTools:f,initialTodos:i1,tipOfTheDay:h1,mcpClients:A1,dynamicMcpConfig:_,autoConnectIdeFlag:q,strictMcpConfig:R})),V1)}}).version(`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.46"}.VERSION} (${A2})`,"-v, --version","Output the version number");let B=A.command("config").description("Manage configuration (eg. claude config set -g theme dark)").helpOption("-h, --help","Display help for command");B.command("get <key>").description("Get a config value").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,{global:I})=>{await GP(ZP(),"default",!1,!1),console.log(Vw0(D,I??!1)),process.exit(0)}),B.command("set <key> <value>").description("Set a config value").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,I,{global:Z})=>{await GP(ZP(),"default",!1,!1),Kw0(D,I,Z??!1),console.log(`Set ${D} to ${I}`),process.exit(0)}),B.command("remove <key> [values...]").alias("rm").description("Remove a config value or items from a config array").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,I,{global:Z})=>{if(await GP(ZP(),"default",!1,!1),Gu(D,Z??!1)&&I&&I.length>0){let G=I.flatMap((F)=>F.includes(",")?F.split(","):F).map((F)=>F.trim()).filter((F)=>F.length>0);if(G.length===0)console.error("Error: No valid values provided"),process.exit(1);Fw0(D,G,Z??!1,!1),console.log(`Removed from ${D} in ${Z?"global":"project"} config: ${G.join(", ")}`)}else Ew0(D,Z??!1),console.log(`Removed ${D}`);process.exit(0)}),B.command("list").alias("ls").description("List all config values").option("-g, --global","Use global config",!1).helpOption("-h, --help","Display help for command").action(async({global:D})=>{await GP(ZP(),"default",!1,!1),console.log(JSON.stringify(Hw0(D??!1),null,2)),process.exit(0)}),B.command("add <key> <values...>").description("Add items to a config array (space or comma separated)").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,I,{global:Z})=>{await GP(ZP(),"default",!1,!1);let G=I.flatMap((F)=>F.includes(",")?F.split(","):F).map((F)=>F.trim()).filter((F)=>F.length>0);if(G.length===0)console.error("Error: No valid values provided"),process.exit(1);gF1(D,G,Z??!1,!1),console.log(`Added to ${D} in ${Z?"global":"project"} config: ${G.join(", ")}`),process.exit(0)});let Q=A.command("mcp").description("Configure and manage MCP servers").helpOption("-h, --help","Display help for command");return Q.command("serve").description(`Start the ${A2} MCP server`).helpOption("-h, --help","Display help for command").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:D,verbose:I})=>{let Z=ZP();if(E1("tengu_mcp_start",{}),!hv6(Z))console.error(`Error: Directory ${Z} does not exist`),process.exit(1);try{await GP(Z,"default",!1,!1),await pu2(Z,D??!1,I??!1)}catch(G){console.error("Error: Failed to start MCP server:",G),process.exit(1)}}),Q.command("add <name> <commandOrUrl> [args...]").description("Add a server").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("-t, --transport <transport>","Transport type (stdio, sse, http)","stdio").option("-e, --env <env...>","Set environment variables (e.g. -e KEY=value)").option("-H, --header <header...>",'Set HTTP headers for SSE and HTTP transports (e.g. -H "X-Api-Key: abc123" -H "X-Custom: value")').helpOption("-h, --help","Display help for command").action(async(D,I,Z,G)=>{if(!D)console.error("Error: Server name is required."),console.error("Usage: claude mcp add <name> <command> [args...]"),process.exit(1);else if(!I)console.error("Error: Command is required when server name is provided."),console.error("Usage: claude mcp add <name> <command> [args...]"),process.exit(1);try{let F=ud(G.scope),Y=T1A(G.transport);if(E1("tengu_mcp_add",{type:Y,scope:F,source:"command",transport:Y}),Y==="sse"){if(!I)console.error("Error: URL is required for SSE transport."),process.exit(1);let W=G.header?rE1(G.header):void 0;if(CT(D,{type:"sse",url:I,headers:W},F),console.log(`Added SSE MCP server ${D} with URL: ${I} to ${F} config`),W)console.log("Headers:",JSON.stringify(W,null,2))}else if(Y==="http"){if(!I)console.error("Error: URL is required for HTTP transport."),process.exit(1);let W=G.header?rE1(G.header):void 0;if(CT(D,{type:"http",url:I,headers:W},F),console.log(`Added HTTP MCP server ${D} with URL: ${I} to ${F} config`),W)console.log("Headers:",JSON.stringify(W,null,2))}else{let W=Aw0(G.env);CT(D,{type:"stdio",command:I,args:Z||[],env:W},F),console.log(`Added stdio MCP server ${D} with command: ${I} ${(Z||[]).join(" ")} to ${F} config`)}process.exit(0)}catch(F){console.error(F.message),process.exit(1)}}),Q.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").helpOption("-h, --help","Display help for command").action(async(D,I)=>{try{if(I.scope){let W=ud(I.scope);E1("tengu_mcp_delete",{name:D,scope:W}),iE1(D,W),process.stdout.write(`Removed MCP server ${D} from ${W} config
2641
+ `)),process.exit(1);let P=Ig2({permissionModeCli:K,dangerouslySkipPermissions:Y}),_=void 0;if(C)try{let i1,_1=S4(C);if(_1){let Q1=Jo(_1);if(!Q1.success){let R1=Q1.error.errors.map((q1)=>`${q1.path.join(".")}: ${q1.message}`).join(", ");throw new Error(`Invalid MCP configuration: ${R1}`)}i1=Q1.data.mcpServers}else{let Q1=uv6(C);i1=S1A(Q1).mcpServers}_=NC(i1,(Q1)=>({...Q1,scope:"dynamic"}))}catch(i1){console.error(`Error: ${i1 instanceof Error?i1.message:String(i1)}`),process.exit(1)}if(!L){let i1=await dv6(P);if(i1&&D?.trim().toLowerCase()==="/login")D="";if(!i1)Vz1()}let{toolPermissionContext:d,warnings:y}=Zg2({allowedToolsCli:W,disallowedToolsCli:J,permissionMode:P,addDirs:E});if(y.forEach((i1)=>{console.error(i1)}),Mv2(),tE1(_,R),V&&V!=="text"&&V!=="stream-json")console.error(`Error: Invalid input format "${V}".`),process.exit(1);if(V==="stream-json"&&X!=="stream-json")console.error("Error: --input-format=stream-json requires output-format=stream-json."),process.exit(1);let p=await av6(D||"",V??"text"),m=PE(d,GA().todoFeatureEnabled);await GP(ZP(),P,F??!1,!1);let[o,{clients:A1=[],tools:f=[],commands:s=[]}]=await Promise.all([fQA(),p||L?await tE1(_,R):{clients:[],tools:[],commands:[]}]);if(E1("tengu_init",{entrypoint:"claude",hasInitialPrompt:Boolean(D),hasStdin:Boolean(p),verbose:G,debug:Z,print:F,outputFormat:X,numAllowedTools:W.length,numDisallowedTools:J.length,mcpClientCount:Object.keys(uX()).length,worktree:!1}),$f2(),L){Xm2(p,d,A1,o,s,m,f,{continue:I.continue,resume:I.resume,verbose:I.verbose,outputFormat:I.outputFormat,permissionPromptToolName:I.permissionPromptTool,allowedTools:W,maxTurns:I.maxTurns,systemPrompt:I.systemPrompt,appendSystemPrompt:I.appendSystemPrompt,userSpecifiedModel:I.model,fallbackModel:U,teleport:null});return}let[V1,h1]=await Promise.all([nv6(!1),Yh2(Bm2)]);E1("tengu_startup_manual_model_config",{cli_flag:I.model,env_var:process.env.ANTHROPIC_MODEL,settings_file:_Q().model});let g1=I.model||process.env.ANTHROPIC_MODEL||_Q().model;if(NB()&&!QG()&&g1!==void 0&&g1.includes("opus"))console.error(WA.yellow("Claude Pro users are not currently able to use Opus 4 in Claude Code. The current model is now Sonnet 4."));let ZA=I.model;Rl(ZA),R8A(Au()||null);let EA={verbose:G??!1,mainLoopModel:E91(),todoFeatureEnabled:GA().todoFeatureEnabled,toolPermissionContext:d,maxRateLimitFallbackActive:!1,mcp:{clients:[],tools:[],commands:[],resources:{}}};if(QN1(d),cv6(),I.continue)try{E1("tengu_continue",{});let i1=await DP(void 0,f);if(!i1)console.error("No conversation found to continue"),process.exit(1);let _1=hK(jB());F4(U8.default.createElement(W5,{initialState:EA,onChangeAppState:fk},U8.default.createElement(vp,{debug:Z,initialPrompt:p,shouldShowPromptInput:!0,commands:[...o,...s],initialTools:f,initialMessages:i1.messages,initialTodos:_1,mcpClients:A1,dynamicMcpConfig:_,autoConnectIdeFlag:q,strictMcpConfig:R})),V1)}catch(i1){f1(i1 instanceof Error?i1:new Error(String(i1))),process.exit(1)}else if(I.resume){let i1=null,_1=OK(I.resume);if(!1){if(I.resume&&typeof I.resume==="string"&&!_1)try{}catch(Q1){}}if(_1){let Q1=_1;try{let R1=await DP(Q1,f);if(!R1)console.error(`No conversation found with session ID: ${Q1}`),process.exit(1);i1=R1.messages}catch(R1){f1(R1 instanceof Error?R1:new Error(String(R1))),console.error(`Failed to resume session ${Q1}`),process.exit(1)}}if(Array.isArray(i1))F4(U8.default.createElement(W5,{initialState:EA,onChangeAppState:fk},U8.default.createElement(vp,{debug:Z,initialPrompt:p,shouldShowPromptInput:!0,commands:[...o,...s],initialTools:f,initialMessages:i1,mcpClients:A1,dynamicMcpConfig:_,autoConnectIdeFlag:q,strictMcpConfig:R})),V1);else{let Q1={},R1=await Qu();if(!R1.length)console.error("No conversations found to resume"),process.exit(1);let{unmount:q1}=F4(U8.default.createElement(hu2,{commands:[...o,...s],context:Q1,debug:Z,logs:R1,initialTools:f,mcpClients:A1,dynamicMcpConfig:_,appState:EA,onChangeAppState:fk,strictMcpConfig:R}),V1);Q1.unmount=q1}}else{let i1=hK(jB());F4(U8.default.createElement(W5,{initialState:EA,onChangeAppState:fk},U8.default.createElement(vp,{debug:Z,commands:[...o,...s],initialPrompt:p,shouldShowPromptInput:!0,initialTools:f,initialTodos:i1,tipOfTheDay:h1,mcpClients:A1,dynamicMcpConfig:_,autoConnectIdeFlag:q,strictMcpConfig:R})),V1)}}).version(`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.anthropic.com/s/claude-code",VERSION:"1.0.47"}.VERSION} (${A2})`,"-v, --version","Output the version number");let B=A.command("config").description("Manage configuration (eg. claude config set -g theme dark)").helpOption("-h, --help","Display help for command");B.command("get <key>").description("Get a config value").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,{global:I})=>{await GP(ZP(),"default",!1,!1),console.log(Vw0(D,I??!1)),process.exit(0)}),B.command("set <key> <value>").description("Set a config value").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,I,{global:Z})=>{await GP(ZP(),"default",!1,!1),Kw0(D,I,Z??!1),console.log(`Set ${D} to ${I}`),process.exit(0)}),B.command("remove <key> [values...]").alias("rm").description("Remove a config value or items from a config array").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,I,{global:Z})=>{if(await GP(ZP(),"default",!1,!1),Gu(D,Z??!1)&&I&&I.length>0){let G=I.flatMap((F)=>F.includes(",")?F.split(","):F).map((F)=>F.trim()).filter((F)=>F.length>0);if(G.length===0)console.error("Error: No valid values provided"),process.exit(1);Fw0(D,G,Z??!1,!1),console.log(`Removed from ${D} in ${Z?"global":"project"} config: ${G.join(", ")}`)}else Ew0(D,Z??!1),console.log(`Removed ${D}`);process.exit(0)}),B.command("list").alias("ls").description("List all config values").option("-g, --global","Use global config",!1).helpOption("-h, --help","Display help for command").action(async({global:D})=>{await GP(ZP(),"default",!1,!1),console.log(JSON.stringify(Hw0(D??!1),null,2)),process.exit(0)}),B.command("add <key> <values...>").description("Add items to a config array (space or comma separated)").option("-g, --global","Use global config").helpOption("-h, --help","Display help for command").action(async(D,I,{global:Z})=>{await GP(ZP(),"default",!1,!1);let G=I.flatMap((F)=>F.includes(",")?F.split(","):F).map((F)=>F.trim()).filter((F)=>F.length>0);if(G.length===0)console.error("Error: No valid values provided"),process.exit(1);gF1(D,G,Z??!1,!1),console.log(`Added to ${D} in ${Z?"global":"project"} config: ${G.join(", ")}`),process.exit(0)});let Q=A.command("mcp").description("Configure and manage MCP servers").helpOption("-h, --help","Display help for command");return Q.command("serve").description(`Start the ${A2} MCP server`).helpOption("-h, --help","Display help for command").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:D,verbose:I})=>{let Z=ZP();if(E1("tengu_mcp_start",{}),!hv6(Z))console.error(`Error: Directory ${Z} does not exist`),process.exit(1);try{await GP(Z,"default",!1,!1),await pu2(Z,D??!1,I??!1)}catch(G){console.error("Error: Failed to start MCP server:",G),process.exit(1)}}),Q.command("add <name> <commandOrUrl> [args...]").description("Add a server").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("-t, --transport <transport>","Transport type (stdio, sse, http)","stdio").option("-e, --env <env...>","Set environment variables (e.g. -e KEY=value)").option("-H, --header <header...>",'Set HTTP headers for SSE and HTTP transports (e.g. -H "X-Api-Key: abc123" -H "X-Custom: value")').helpOption("-h, --help","Display help for command").action(async(D,I,Z,G)=>{if(!D)console.error("Error: Server name is required."),console.error("Usage: claude mcp add <name> <command> [args...]"),process.exit(1);else if(!I)console.error("Error: Command is required when server name is provided."),console.error("Usage: claude mcp add <name> <command> [args...]"),process.exit(1);try{let F=ud(G.scope),Y=T1A(G.transport);if(E1("tengu_mcp_add",{type:Y,scope:F,source:"command",transport:Y}),Y==="sse"){if(!I)console.error("Error: URL is required for SSE transport."),process.exit(1);let W=G.header?rE1(G.header):void 0;if(CT(D,{type:"sse",url:I,headers:W},F),console.log(`Added SSE MCP server ${D} with URL: ${I} to ${F} config`),W)console.log("Headers:",JSON.stringify(W,null,2))}else if(Y==="http"){if(!I)console.error("Error: URL is required for HTTP transport."),process.exit(1);let W=G.header?rE1(G.header):void 0;if(CT(D,{type:"http",url:I,headers:W},F),console.log(`Added HTTP MCP server ${D} with URL: ${I} to ${F} config`),W)console.log("Headers:",JSON.stringify(W,null,2))}else{let W=Aw0(G.env);CT(D,{type:"stdio",command:I,args:Z||[],env:W},F),console.log(`Added stdio MCP server ${D} with command: ${I} ${(Z||[]).join(" ")} to ${F} config`)}process.exit(0)}catch(F){console.error(F.message),process.exit(1)}}),Q.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").helpOption("-h, --help","Display help for command").action(async(D,I)=>{try{if(I.scope){let W=ud(I.scope);E1("tengu_mcp_delete",{name:D,scope:W}),iE1(D,W),process.stdout.write(`Removed MCP server ${D} from ${W} config
2642
2642
  `),process.exit(0)}let Z=eB(),G=GA(),F=!1;try{F=!!TK()?.[D]}catch{}let Y=[];if(Z.mcpServers?.[D])Y.push("local");if(F)Y.push("project");if(G.mcpServers?.[D])Y.push("user");if(Y.length===0)process.stderr.write(`No MCP server found with name: "${D}"
2643
2643
  `),process.exit(1);else if(Y.length===1){let W=Y[0];E1("tengu_mcp_delete",{name:D,scope:W}),iE1(D,W),process.stdout.write(`Removed MCP server "${D}" from ${W} config
2644
2644
  `),process.exit(0)}else process.stderr.write(`MCP server "${D}" exists in multiple scopes: