@anthropic-ai/claude-code 1.0.1 → 1.0.2

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
@@ -8,7 +8,7 @@
8
8
 
9
9
  // (c) Anthropic PBC. All rights reserved. Use is subject to Anthropic's Commercial Terms of Service (https://www.anthropic.com/legal/commercial-terms).
10
10
 
11
- // Version: 1.0.1
11
+ // Version: 1.0.2
12
12
 
13
13
  import{createRequire as Dq2}from"node:module";var Bq2=Object.create;var{getPrototypeOf:Qq2,defineProperty:Nz1,getOwnPropertyNames:Iq2}=Object;var Gq2=Object.prototype.hasOwnProperty;var F1=(A,B,Q)=>{Q=A!=null?Bq2(Qq2(A)):{};let I=B||!A||!A.__esModule?Nz1(Q,"default",{value:A,enumerable:!0}):Q;for(let G of Iq2(A))if(!Gq2.call(I,G))Nz1(I,G,{get:()=>A[G],enumerable:!0});return I};var w=(A,B)=>()=>(B||A((B={exports:{}}).exports,B),B.exports);var Nu=(A,B)=>{for(var Q in B)Nz1(A,Q,{get:B[Q],enumerable:!0,configurable:!0,set:(I)=>B[Q]=()=>I})};var $z1=(A,B)=>()=>(A&&(B=A(A=0)),B);var D1=Dq2(import.meta.url);var IJ=w((Ue1)=>{Object.defineProperty(Ue1,"__esModule",{value:!0});var ze1=Object.prototype.toString;function Zq2(A){switch(ze1.call(A)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return e11(A,Error)}}function zy(A,B){return ze1.call(A)===`[object ${B}]`}function Yq2(A){return zy(A,"ErrorEvent")}function Wq2(A){return zy(A,"DOMError")}function Fq2(A){return zy(A,"DOMException")}function Jq2(A){return zy(A,"String")}function we1(A){return typeof A==="object"&&A!==null&&"__sentry_template_string__"in A&&"__sentry_template_values__"in A}function Cq2(A){return A===null||we1(A)||typeof A!=="object"&&typeof A!=="function"}function Ee1(A){return zy(A,"Object")}function Xq2(A){return typeof Event!=="undefined"&&e11(A,Event)}function Vq2(A){return typeof Element!=="undefined"&&e11(A,Element)}function Kq2(A){return zy(A,"RegExp")}function Hq2(A){return Boolean(A&&A.then&&typeof A.then==="function")}function zq2(A){return Ee1(A)&&"nativeEvent"in A&&"preventDefault"in A&&"stopPropagation"in A}function wq2(A){return typeof A==="number"&&A!==A}function e11(A,B){try{return A instanceof B}catch(Q){return!1}}function Eq2(A){return!!(typeof A==="object"&&A!==null&&(A.__isVue||A._isVue))}Ue1.isDOMError=Wq2;Ue1.isDOMException=Fq2;Ue1.isElement=Vq2;Ue1.isError=Zq2;Ue1.isErrorEvent=Yq2;Ue1.isEvent=Xq2;Ue1.isInstanceOf=e11;Ue1.isNaN=wq2;Ue1.isParameterizedString=we1;Ue1.isPlainObject=Ee1;Ue1.isPrimitive=Cq2;Ue1.isRegExp=Kq2;Ue1.isString=Jq2;Ue1.isSyntheticEvent=zq2;Ue1.isThenable=Hq2;Ue1.isVueViewModel=Eq2});var $u=w(($e1)=>{Object.defineProperty($e1,"__esModule",{value:!0});var AA1=IJ();function fq2(A,B=0){if(typeof A!=="string"||B===0)return A;return A.length<=B?A:`${A.slice(0,B)}...`}function vq2(A,B){let Q=A,I=Q.length;if(I<=150)return Q;if(B>I)B=I;let G=Math.max(B-60,0);if(G<5)G=0;let D=Math.min(G+140,I);if(D>I-5)D=I;if(D===I)G=Math.max(D-140,0);if(Q=Q.slice(G,D),G>0)Q=`'{snip} ${Q}`;if(D<I)Q+=" {snip}";return Q}function bq2(A,B){if(!Array.isArray(A))return"";let Q=[];for(let I=0;I<A.length;I++){let G=A[I];try{if(AA1.isVueViewModel(G))Q.push("[VueViewModel]");else Q.push(String(G))}catch(D){Q.push("[value cannot be serialized]")}}return Q.join(B)}function Ne1(A,B,Q=!1){if(!AA1.isString(A))return!1;if(AA1.isRegExp(B))return B.test(A);if(AA1.isString(B))return Q?A===B:A.includes(B);return!1}function gq2(A,B=[],Q=!1){return B.some((I)=>Ne1(A,I,Q))}$e1.isMatchingPattern=Ne1;$e1.safeJoin=bq2;$e1.snipLine=vq2;$e1.stringMatchesSomePattern=gq2;$e1.truncate=fq2});var Re1=w((Le1)=>{Object.defineProperty(Le1,"__esModule",{value:!0});var qz1=IJ(),cq2=$u();function lq2(A,B,Q=250,I,G,D,Z){if(!D.exception||!D.exception.values||!Z||!qz1.isInstanceOf(Z.originalException,Error))return;let Y=D.exception.values.length>0?D.exception.values[D.exception.values.length-1]:void 0;if(Y)D.exception.values=iq2(Mz1(A,B,G,Z.originalException,I,D.exception.values,Y,0),Q)}function Mz1(A,B,Q,I,G,D,Z,Y){if(D.length>=Q+1)return D;let W=[...D];if(qz1.isInstanceOf(I[G],Error)){qe1(Z,Y);let F=A(B,I[G]),J=W.length;Me1(F,G,J,Y),W=Mz1(A,B,Q,I[G],G,[F,...W],F,J)}if(Array.isArray(I.errors))I.errors.forEach((F,J)=>{if(qz1.isInstanceOf(F,Error)){qe1(Z,Y);let C=A(B,F),X=W.length;Me1(C,`errors[${J}]`,X,Y),W=Mz1(A,B,Q,F,G,[C,...W],C,X)}});return W}function qe1(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 Me1(A,B,Q,I){A.mechanism=A.mechanism||{type:"generic",handled:!0},A.mechanism={...A.mechanism,type:"chained",source:B,exception_id:Q,parent_id:I}}function iq2(A,B){return A.map((Q)=>{if(Q.value)Q.value=cq2.truncate(Q.value,B);return Q})}Le1.applyAggregateErrorsToEvent=lq2});var fG=w((Oe1)=>{Object.defineProperty(Oe1,"__esModule",{value:!0});function BA1(A){return A&&A.Math==Math?A:void 0}var Lz1=typeof globalThis=="object"&&BA1(globalThis)||typeof window=="object"&&BA1(window)||typeof self=="object"&&BA1(self)||typeof global=="object"&&BA1(global)||function(){return this}()||{};function aq2(){return Lz1}function sq2(A,B,Q){let I=Q||Lz1,G=I.__SENTRY__=I.__SENTRY__||{};return G[A]||(G[A]=B())}Oe1.GLOBAL_OBJ=Lz1;Oe1.getGlobalObject=aq2;Oe1.getGlobalSingleton=sq2});var Rz1=w((Te1)=>{Object.defineProperty(Te1,"__esModule",{value:!0});var eq2=IJ(),AM2=fG(),wy=AM2.getGlobalObject(),BM2=80;function QM2(A,B={}){if(!A)return"<unknown>";try{let Q=A,I=5,G=[],D=0,Z=0,Y=" > ",W=Y.length,F,J=Array.isArray(B)?B:B.keyAttrs,C=!Array.isArray(B)&&B.maxStringLength||BM2;while(Q&&D++<I){if(F=IM2(Q,J),F==="html"||D>1&&Z+G.length*W+F.length>=C)break;G.push(F),Z+=F.length,Q=Q.parentNode}return G.reverse().join(Y)}catch(Q){return"<unknown>"}}function IM2(A,B){let Q=A,I=[],G,D,Z,Y,W;if(!Q||!Q.tagName)return"";if(wy.HTMLElement){if(Q instanceof HTMLElement&&Q.dataset&&Q.dataset.sentryComponent)return Q.dataset.sentryComponent}I.push(Q.tagName.toLowerCase());let F=B&&B.length?B.filter((C)=>Q.getAttribute(C)).map((C)=>[C,Q.getAttribute(C)]):null;if(F&&F.length)F.forEach((C)=>{I.push(`[${C[0]}="${C[1]}"]`)});else{if(Q.id)I.push(`#${Q.id}`);if(G=Q.className,G&&eq2.isString(G)){D=G.split(/\s+/);for(W=0;W<D.length;W++)I.push(`.${D[W]}`)}}let J=["aria-label","type","name","title","alt"];for(W=0;W<J.length;W++)if(Z=J[W],Y=Q.getAttribute(Z),Y)I.push(`[${Z}="${Y}"]`);return I.join("")}function GM2(){try{return wy.document.location.href}catch(A){return""}}function DM2(A){if(wy.document&&wy.document.querySelector)return wy.document.querySelector(A);return null}function ZM2(A){if(!wy.HTMLElement)return null;let B=A,Q=5;for(let I=0;I<Q;I++){if(!B)return null;if(B instanceof HTMLElement&&B.dataset.sentryComponent)return B.dataset.sentryComponent;B=B.parentNode}return null}Te1.getComponentName=ZM2;Te1.getDomElement=DM2;Te1.getLocationHref=GM2;Te1.htmlTreeAsString=QM2});var nK=w((Pe1)=>{Object.defineProperty(Pe1,"__esModule",{value:!0});var CM2=typeof __SENTRY_DEBUG__==="undefined"||__SENTRY_DEBUG__;Pe1.DEBUG_BUILD=CM2});var KX=w((_e1)=>{Object.defineProperty(_e1,"__esModule",{value:!0});var VM2=nK(),Oz1=fG(),KM2="Sentry Logger ",Tz1=["debug","info","warn","error","log","assert","trace"],Pz1={};function Se1(A){if(!("console"in Oz1.GLOBAL_OBJ))return A();let B=Oz1.GLOBAL_OBJ.console,Q={},I=Object.keys(Pz1);I.forEach((G)=>{let D=Pz1[G];Q[G]=B[G],B[G]=D});try{return A()}finally{I.forEach((G)=>{B[G]=Q[G]})}}function HM2(){let A=!1,B={enable:()=>{A=!0},disable:()=>{A=!1},isEnabled:()=>A};if(VM2.DEBUG_BUILD)Tz1.forEach((Q)=>{B[Q]=(...I)=>{if(A)Se1(()=>{Oz1.GLOBAL_OBJ.console[Q](`${KM2}[${Q}]:`,...I)})}});else Tz1.forEach((Q)=>{B[Q]=()=>{return}});return B}var zM2=HM2();_e1.CONSOLE_LEVELS=Tz1;_e1.consoleSandbox=Se1;_e1.logger=zM2;_e1.originalConsoleMethods=Pz1});var Sz1=w((ke1)=>{Object.defineProperty(ke1,"__esModule",{value:!0});var $M2=nK(),qu=KX(),qM2=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function MM2(A){return A==="http"||A==="https"}function LM2(A,B=!1){let{host:Q,path:I,pass:G,port:D,projectId:Z,protocol:Y,publicKey:W}=A;return`${Y}://${W}${B&&G?`:${G}`:""}@${Q}${D?`:${D}`:""}/${I?`${I}/`:I}${Z}`}function je1(A){let B=qM2.exec(A);if(!B){qu.consoleSandbox(()=>{console.error(`Invalid Sentry Dsn: ${A}`)});return}let[Q,I,G="",D,Z="",Y]=B.slice(1),W="",F=Y,J=F.split("/");if(J.length>1)W=J.slice(0,-1).join("/"),F=J.pop();if(F){let C=F.match(/^\d+/);if(C)F=C[0]}return ye1({host:D,pass:G,path:W,projectId:F,port:Z,protocol:Q,publicKey:I})}function ye1(A){return{protocol:A.protocol,publicKey:A.publicKey||"",pass:A.pass||"",host:A.host,port:A.port||"",path:A.path||"",projectId:A.projectId}}function RM2(A){if(!$M2.DEBUG_BUILD)return!0;let{port:B,projectId:Q,protocol:I}=A;if(["protocol","publicKey","host","projectId"].find((Z)=>{if(!A[Z])return qu.logger.error(`Invalid Sentry Dsn: ${Z} missing`),!0;return!1}))return!1;if(!Q.match(/^\d+$/))return qu.logger.error(`Invalid Sentry Dsn: Invalid projectId ${Q}`),!1;if(!MM2(I))return qu.logger.error(`Invalid Sentry Dsn: Invalid protocol ${I}`),!1;if(B&&isNaN(parseInt(B,10)))return qu.logger.error(`Invalid Sentry Dsn: Invalid port ${B}`),!1;return!0}function OM2(A){let B=typeof A==="string"?je1(A):ye1(A);if(!B||!RM2(B))return;return B}ke1.dsnFromString=je1;ke1.dsnToString=LM2;ke1.makeDsn=OM2});var _z1=w((fe1)=>{Object.defineProperty(fe1,"__esModule",{value:!0});class xe1 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}}fe1.SentryError=xe1});var GJ=w((ue1)=>{Object.defineProperty(ue1,"__esModule",{value:!0});var jM2=Rz1(),yM2=nK(),Ey=IJ(),kM2=KX(),ve1=$u();function xM2(A,B,Q){if(!(B in A))return;let I=A[B],G=Q(I);if(typeof G==="function")me1(G,I);A[B]=G}function he1(A,B,Q){try{Object.defineProperty(A,B,{value:Q,writable:!0,configurable:!0})}catch(I){yM2.DEBUG_BUILD&&kM2.logger.log(`Failed to add non-enumerable property "${B}" to object`,A)}}function me1(A,B){try{let Q=B.prototype||{};A.prototype=B.prototype=Q,he1(A,"__sentry_original__",B)}catch(Q){}}function fM2(A){return A.__sentry_original__}function vM2(A){return Object.keys(A).map((B)=>`${encodeURIComponent(B)}=${encodeURIComponent(A[B])}`).join("&")}function de1(A){if(Ey.isError(A))return{message:A.message,name:A.name,stack:A.stack,...ge1(A)};else if(Ey.isEvent(A)){let B={type:A.type,target:be1(A.target),currentTarget:be1(A.currentTarget),...ge1(A)};if(typeof CustomEvent!=="undefined"&&Ey.isInstanceOf(A,CustomEvent))B.detail=A.detail;return B}else return A}function be1(A){try{return Ey.isElement(A)?jM2.htmlTreeAsString(A):Object.prototype.toString.call(A)}catch(B){return"<unknown>"}}function ge1(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 bM2(A,B=40){let Q=Object.keys(de1(A));if(Q.sort(),!Q.length)return"[object has no keys]";if(Q[0].length>=B)return ve1.truncate(Q[0],B);for(let I=Q.length;I>0;I--){let G=Q.slice(0,I).join(", ");if(G.length>B)continue;if(I===Q.length)return G;return ve1.truncate(G,B)}return""}function gM2(A){return jz1(A,new Map)}function jz1(A,B){if(hM2(A)){let Q=B.get(A);if(Q!==void 0)return Q;let I={};B.set(A,I);for(let G of Object.keys(A))if(typeof A[G]!=="undefined")I[G]=jz1(A[G],B);return I}if(Array.isArray(A)){let Q=B.get(A);if(Q!==void 0)return Q;let I=[];return B.set(A,I),A.forEach((G)=>{I.push(jz1(G,B))}),I}return A}function hM2(A){if(!Ey.isPlainObject(A))return!1;try{let B=Object.getPrototypeOf(A).constructor.name;return!B||B==="Object"}catch(B){return!0}}function mM2(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 Ey.isPrimitive(A):B=new A.constructor(A);break;default:B=A;break}return B}ue1.addNonEnumerableProperty=he1;ue1.convertToPlainObject=de1;ue1.dropUndefinedKeys=gM2;ue1.extractExceptionKeysForMessage=bM2;ue1.fill=xM2;ue1.getOriginalFunction=fM2;ue1.markFunctionWrapped=me1;ue1.objectify=mM2;ue1.urlEncode=vM2});var QA1=w((ce1)=>{Object.defineProperty(ce1,"__esModule",{value:!0});function pe1(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 rM2(A){let B=/^\s*[-]{4,}$/,Q=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;return(I)=>{let G=I.match(Q);if(G){let D,Z,Y,W,F;if(G[1]){Y=G[1];let X=Y.lastIndexOf(".");if(Y[X-1]===".")X--;if(X>0){D=Y.slice(0,X),Z=Y.slice(X+1);let V=D.indexOf(".Module");if(V>0)Y=Y.slice(V+1),D=D.slice(0,V)}W=void 0}if(Z)W=D,F=Z;if(Z==="<anonymous>")F=void 0,Y=void 0;if(Y===void 0)F=F||"<anonymous>",Y=W?`${W}.${F}`:F;let J=G[2]&&G[2].startsWith("file://")?G[2].slice(7):G[2],C=G[5]==="native";if(J&&J.match(/\/[A-Z]:/))J=J.slice(1);if(!J&&G[5]&&!C)J=G[5];return{filename:J,module:A?A(J):void 0,function:Y,lineno:parseInt(G[3],10)||void 0,colno:parseInt(G[4],10)||void 0,in_app:pe1(J,C)}}if(I.match(B))return{filename:I};return}}ce1.filenameIsInApp=pe1;ce1.node=rM2});var IA1=w((oe1)=>{Object.defineProperty(oe1,"__esModule",{value:!0});var ne1=QA1(),ae1=50,le1=/\(error: (.*)\)/,ie1=/captureMessage|captureException/;function se1(...A){let B=A.sort((Q,I)=>Q[0]-I[0]).map((Q)=>Q[1]);return(Q,I=0)=>{let G=[],D=Q.split(`
14
14
  `);for(let Z=I;Z<D.length;Z++){let Y=D[Z];if(Y.length>1024)continue;let W=le1.test(Y)?Y.replace(le1,"$1"):Y;if(W.match(/\S*Error: /))continue;for(let F of B){let J=F(W);if(J){G.push(J);break}}if(G.length>=ae1)break}return re1(G)}}function eM2(A){if(Array.isArray(A))return se1(...A);return A}function re1(A){if(!A.length)return[];let B=Array.from(A);if(/sentryWrapped/.test(B[B.length-1].function||""))B.pop();if(B.reverse(),ie1.test(B[B.length-1].function||"")){if(B.pop(),ie1.test(B[B.length-1].function||""))B.pop()}return B.slice(0,ae1).map((Q)=>({...Q,filename:Q.filename||B[B.length-1].filename,function:Q.function||"?"}))}var yz1="<anonymous>";function AL2(A){try{if(!A||typeof A!=="function")return yz1;return A.name||yz1}catch(B){return yz1}}function BL2(A){return[90,ne1.node(A)]}oe1.filenameIsInApp=ne1.filenameIsInApp;oe1.createStackParser=se1;oe1.getFunctionName=AL2;oe1.nodeStackLineParser=BL2;oe1.stackParserFromStackParserOptions=eM2;oe1.stripSentryFramesAndReverse=re1});var UE=w((ee1)=>{Object.defineProperty(ee1,"__esModule",{value:!0});var WL2=nK(),FL2=KX(),JL2=IA1(),Uy={},te1={};function CL2(A,B){Uy[A]=Uy[A]||[],Uy[A].push(B)}function XL2(){Object.keys(Uy).forEach((A)=>{Uy[A]=void 0})}function VL2(A,B){if(!te1[A])B(),te1[A]=!0}function KL2(A,B){let Q=A&&Uy[A];if(!Q)return;for(let I of Q)try{I(B)}catch(G){WL2.DEBUG_BUILD&&FL2.logger.error(`Error while triggering instrumentation handler.
@@ -563,7 +563,7 @@ globstar while`,A,C,B,X,V),this.matchOne(A.slice(C),B.slice(X),Q))return this.de
563
563
  `).length}catch(A){return 0}};async function _41(){try{let[A,B,Q,I,G,D]=await Promise.all([Fy9(),Jy9(),Cy9(),Xy9(),Vy9(),Sc()]);return{commitHash:A,branchName:B,remoteUrl:Q,isHeadOnRemote:I,isClean:G,worktreeCount:D}}catch(A){return null}}async function Ky9(A,B){let{code:Q}=await jX("git",["check-ignore",A],void 0,void 0,!1,B);return Q===0}function Hy9(){return JRA(CRA(),".config","git","ignore")}async function j41(A,B=dA()){try{if(!await FRA(B))return;let Q=`**/${A}`;if(await Ky9(A,B))return;let I=Hy9(),G=b1(),D=JRA(CRA(),".config","git");if(!G.existsSync(D))G.mkdirSync(D);if(G.existsSync(I))G.appendFileSync(I,`
564
564
  ${Q}
565
565
  `);else G.appendFileSync(I,`${Q}
566
- `)}catch(Q){m1(Q instanceof Error?Q:new Error(String(Q)))}}function _M1(){switch(NJ()){case"macos":return"/Library/Application Support/ClaudeCode";default:return"/etc/claude-code"}}function Ey9(){return _c(_M1(),"managed-settings.json")}function Uy9(A){if(!b1().existsSync(A))return null;try{let B=dG(A),Q=D8(B),I=WRA.safeParse(Q);if(!I.success)return m1(new Error(`Invalid managed settings: ${I.error.message}`)),null;return I.data}catch(B){return m1(B instanceof Error?B:new Error(String(B))),null}}function y41(A){switch(A){case"userSettings":return XRA(wy9());case"policySettings":case"projectSettings":case"localSettings":return XRA(u4())}}function k41(A){switch(A){case"userSettings":return _c(y41(A),".claude","settings.json");case"projectSettings":case"localSettings":return _c(y41(A),jc(A));case"policySettings":return Ey9()}}function jc(A){switch(A){case"projectSettings":return _c(".claude","settings.json");case"localSettings":return _c(".claude","settings.local.json")}}function gq(A){return Uy9(k41(A))}function yX(A,B){if(A==="policySettings")return;let Q=k41(A),I=zy9(Q);if(!b1().existsSync(I))b1().mkdirSync(I);let D={...gq(A),...B};if(sE(Q,JSON.stringify(D,null,2)),A==="localSettings")j41(jc("localSettings"),u4())}function Ny9(A,B){let Q=[...A,...B];return Array.from(new Set(Q))}function n7(){let A={};for(let B of bq){let Q=gq(B);if(Q)A=RU1(A,Q,(I,G)=>{if(Array.isArray(I)&&Array.isArray(G))return Ny9(I,G);return})}return A}var VRA=dA();function yM1(){return x41(S5,"projects")}function qy9(){return"production"}function HRA(){return"external"}function KRA(A){return x41(yM1(),A.replace(/[^a-zA-Z0-9]/g,"-"))}var jM1=null;function hq(){if(!jM1)jM1=new zRA;return jM1}class zRA{summaries;messages;sessionMessages;didLoad=!1;sessionFile=null;constructor(){this.summaries=new Map,this.messages=new Map,this.sessionMessages=new Map}insertMessageChain(A,B=!1){let Q=null;for(let I of A){let G={parentUuid:Q,isSidechain:B,userType:HRA(),cwd:dA(),sessionId:Q5,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.1"}.VERSION,...I};this.messages.set(I.uuid,G),this.appendEntry(G),Q=I.uuid}}appendEntry(A){if(qy9()==="test"||n7().cleanupPeriodDays==0)return;let B=b1();if(this.sessionFile==null){let I=KRA(VRA);if(!B.existsSync(I))B.mkdirSync(I);if(this.sessionFile=x41(I,`${Q5}.jsonl`),!B.existsSync(this.sessionFile))B.writeFileSync(this.sessionFile,"",{encoding:"utf8",flush:!1})}let Q=this.sessionMessages.get(Q5);if(A.type=="summary"||!Q?.has(A.uuid)){if(A.type!="summary"){if(!Q)this.sessionMessages.set(Q5,new Set);this.sessionMessages.get(Q5).add(A.uuid)}B.appendFileSync(this.sessionFile,JSON.stringify(A)+`
566
+ `)}catch(Q){m1(Q instanceof Error?Q:new Error(String(Q)))}}function _M1(){switch(NJ()){case"macos":return"/Library/Application Support/ClaudeCode";default:return"/etc/claude-code"}}function Ey9(){return _c(_M1(),"managed-settings.json")}function Uy9(A){if(!b1().existsSync(A))return null;try{let B=dG(A),Q=D8(B),I=WRA.safeParse(Q);if(!I.success)return m1(new Error(`Invalid managed settings: ${I.error.message}`)),null;return I.data}catch(B){return m1(B instanceof Error?B:new Error(String(B))),null}}function y41(A){switch(A){case"userSettings":return XRA(wy9());case"policySettings":case"projectSettings":case"localSettings":return XRA(u4())}}function k41(A){switch(A){case"userSettings":return _c(y41(A),".claude","settings.json");case"projectSettings":case"localSettings":return _c(y41(A),jc(A));case"policySettings":return Ey9()}}function jc(A){switch(A){case"projectSettings":return _c(".claude","settings.json");case"localSettings":return _c(".claude","settings.local.json")}}function gq(A){return Uy9(k41(A))}function yX(A,B){if(A==="policySettings")return;let Q=k41(A),I=zy9(Q);if(!b1().existsSync(I))b1().mkdirSync(I);let D={...gq(A),...B};if(sE(Q,JSON.stringify(D,null,2)),A==="localSettings")j41(jc("localSettings"),u4())}function Ny9(A,B){let Q=[...A,...B];return Array.from(new Set(Q))}function n7(){let A={};for(let B of bq){let Q=gq(B);if(Q)A=RU1(A,Q,(I,G)=>{if(Array.isArray(I)&&Array.isArray(G))return Ny9(I,G);return})}return A}var VRA=dA();function yM1(){return x41(S5,"projects")}function qy9(){return"production"}function HRA(){return"external"}function KRA(A){return x41(yM1(),A.replace(/[^a-zA-Z0-9]/g,"-"))}var jM1=null;function hq(){if(!jM1)jM1=new zRA;return jM1}class zRA{summaries;messages;sessionMessages;didLoad=!1;sessionFile=null;constructor(){this.summaries=new Map,this.messages=new Map,this.sessionMessages=new Map}insertMessageChain(A,B=!1){let Q=null;for(let I of A){let G={parentUuid:Q,isSidechain:B,userType:HRA(),cwd:dA(),sessionId:Q5,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.2"}.VERSION,...I};this.messages.set(I.uuid,G),this.appendEntry(G),Q=I.uuid}}appendEntry(A){if(qy9()==="test"||n7().cleanupPeriodDays==0)return;let B=b1();if(this.sessionFile==null){let I=KRA(VRA);if(!B.existsSync(I))B.mkdirSync(I);if(this.sessionFile=x41(I,`${Q5}.jsonl`),!B.existsSync(this.sessionFile))B.writeFileSync(this.sessionFile,"",{encoding:"utf8",flush:!1})}let Q=this.sessionMessages.get(Q5);if(A.type=="summary"||!Q?.has(A.uuid)){if(A.type!="summary"){if(!Q)this.sessionMessages.set(Q5,new Set);this.sessionMessages.get(Q5).add(A.uuid)}B.appendFileSync(this.sessionFile,JSON.stringify(A)+`
567
567
  `)}}getTranscripts(){this.loadSessions();let A=[...this.messages.values()];return A.filter((B)=>!A.some((Q)=>Q.parentUuid===B.uuid)).map((B)=>this.getTranscript(B)).filter((B)=>B.length)}getTranscript(A){let B=[],Q=A;while(Q)B.push(Q),Q=Q.parentUuid?this.messages.get(Q.parentUuid):void 0;return B.reverse()}getSummaries(){return this.loadSessions().summaries}getLastLog(A){let B=this.sessionMessages.get(A);if(!B)return null;this.loadSessions();let I=Array.from(this.messages.values()).filter((G)=>B.has(G.uuid)).sort((G,D)=>new Date(D.timestamp).getTime()-new Date(G.timestamp).getTime())[0]||null;return I&&this.getTranscript(I)}loadSessions(){let A=KRA(VRA),B=b1();if(this.didLoad||!B.existsSync(A))return this;return B.readdirSync(A).filter((G)=>G.isFile()&&G.name.endsWith(".jsonl")).map((G)=>x41(A,G.name)).sort((G,D)=>{let Z=B.statSync(G),Y=B.statSync(D);return Z.mtime.getTime()-Y.mtime.getTime()}).forEach((G)=>{let D=Ox($y9(G,".jsonl"));if(!D)return;let Z=new Set;if(B.existsSync(G)){for(let Y of nLA(G))if(Y.type==="user"||Y.type==="assistant"||Y.type==="attachment")Z.add(Y.uuid),this.messages.set(Y.uuid,Y);else if(Y.type==="summary"&&Y.leafUuid)this.summaries.set(Y.leafUuid,Y.summary)}this.sessionMessages.set(D,Z)}),this.didLoad=!0,this}}function f41(A){let B=LRA(A);return hq().insertMessageChain(B),B[B.length-1]?.uuid||null}function wRA(A){hq().insertMessageChain(LRA(A),!0)}function My9(A){let B=A.find((G)=>G.type==="user");if(!B||B.type!=="user")return"No prompt";let Q=B.message?.content,I="";if(typeof Q==="string")I=Q;else if(Array.isArray(Q))I=Q.find((D)=>D.type==="text")?.text||"No prompt";else I="No prompt";if(I=I.replace(/\n/g," ").trim(),I.length>45)I=I.slice(0,45)+"...";return I}function Ly9(A){return A.map((B)=>{let{isSidechain:Q,parentUuid:I,...G}=B;return G})}function ERA(A,B=0){let Q=A[A.length-1],I=A[0],G=My9(A),D=new Date(I.timestamp),Z=new Date(Q.timestamp);return{date:Q.timestamp,messages:Ly9(A),fullPath:"n/a",value:B,created:D,modified:Z,firstPrompt:G,messageCount:A.length,isSidechain:I.isSidechain,leafUuid:Q.uuid}}function URA(){return hq().getTranscripts().map(ERA).sort((B,Q)=>{return Q.modified.getTime()-B.modified.getTime()})}function NRA(A,B){hq().appendEntry({type:"summary",summary:B,leafUuid:A})}function $RA(A){return new Map(Array.from(hq().getSummaries().entries()).filter(([B,Q])=>A.includes(B)))}function qRA(){let A=hq().getTranscripts(),B=hq().getSummaries();return A.filter((Q)=>{let I=Q[Q.length-1];return!B.has(I.uuid)})}function MRA(A){let B=hq().getLastLog(A);if(B!=null)return ERA(B);return null}function LRA(A){return A.filter((B)=>{if(B.type==="progress")return!1;if(B.type==="attachment"&&HRA()!=="ant")return!1;return!0})}function Ry9(){return process.argv.includes("--debug")||process.argv.includes("-d")}function kX(A){if(!Ry9())return;console.log(MA.dim(`[DEBUG] ${A}`))}var v41=[],Ty9=100;function RRA(A){return A.toISOString().replace(/[:.]/g,"-")}var ORA=RRA(new Date);function Py9(){return fM1(OX.errors(),ORA+".txt")}var kM1=!1;function m1(A){if(kM1)return;kM1=!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;let B=A.stack||A.message,Q={error:B,timestamp:new Date().toISOString()};if(v41.length>=Ty9)v41.shift();v41.push(Q),Sy9(Py9(),{error:B})}catch{}finally{kM1=!1}g41(A)}function vM1(){return[...v41]}function TRA(A){if(!b1().existsSync(A))return[];try{return JSON.parse(b1().readFileSync(A,{encoding:"utf8"}))}catch{return[]}}function Sy9(A,B){return}async function b41(){let A=await _y9(OX.messages()),B=URA(),Q=[...A,...B];return PRA(Q.filter((I)=>I.messages.length)).map((I,G)=>({...I,value:G}))}function bM1(A){return MRA(A)}async function gM1(A){return(await b41())[A]||null}async function _y9(A){if(!b1().existsSync(A))return m1(new Error(`No logs found at ${A}`)),[];let B=b1().readdirSync(A),Q=await Promise.all(B.map(async(I,G)=>{let D=fM1(A,I.name),Z=b1().readFileSync(D,{encoding:"utf8"}),Y=JSON.parse(Z),W=Y[0],F=Y[Y.length-1],J=W?.type==="user"&&typeof W?.message?.content==="string"?W?.message?.content:"No prompt",C=b1().statSync(D),X=D.includes("sidechain"),V=RRA(C.mtime);return{date:V,fullPath:D,messages:Y,value:G,created:xM1(W?.timestamp||V),modified:F?.timestamp?xM1(F.timestamp):xM1(V),firstPrompt:J.split(`
568
568
  `)[0]?.slice(0,50)+(J.length>50?"…":"")||"No prompt",messageCount:Y.length,isSidechain:X}}));return PRA(Q.filter((I)=>I!=null)).map((I,G)=>({...I,value:G}))}function PRA(A){return A.sort((B,Q)=>{let I=Q.modified.getTime()-B.modified.getTime();if(I!==0)return I;let G=Q.created.getTime()-B.created.getTime();if(G!==0)return G;return B.created.getTime()-Q.created.getTime()})}function xM1(A){let B=A.split(/\D+/);return new Date(Date.UTC(parseInt(B[0],10),parseInt(B[1],10)-1,parseInt(B[2],10),parseInt(B[3],10),parseInt(B[4],10),parseInt(B[5],10),parseInt(B[6],10)))}function IY(A,B){if(process.argv.includes("--mcp-debug"))console.error(MA.ansi256(D4().error)(`MCP server "${A}" ${B}`));if(kX(`MCP server error: serverName=${A}, error=${B}`),n7().cleanupPeriodDays===0)return;try{let Q=OX.mcpLogs(A),I=B instanceof Error?B.stack||B.message:String(B),G=new Date().toISOString(),D=fM1(Q,ORA+".txt");if(!b1().existsSync(Q))b1().mkdirSync(Q);if(!b1().existsSync(D))b1().writeFileSync(D,"[]",{encoding:"utf8",flush:!1});let Z={error:I,timestamp:G,sessionId:Q5,cwd:b1().cwd()},Y=TRA(D);Y.push(Z),b1().writeFileSync(D,JSON.stringify(Y,null,2),{encoding:"utf8",flush:!1})}catch{}}import*as Pj1 from"os";var TE4=F1(S1(),1);function kc(A,B){return function Q(){return A.apply(B,arguments)}}var{toString:Sk9}=Object.prototype,{getPrototypeOf:lM1}=Object,p41=((A)=>(B)=>{let Q=Sk9.call(B);return A[Q]||(A[Q]=Q.slice(8,-1).toLowerCase())})(Object.create(null)),xX=(A)=>{return A=A.toLowerCase(),(B)=>p41(B)===A},c41=(A)=>(B)=>typeof B===A,{isArray:px}=Array,xc=c41("undefined");function _k9(A){return A!==null&&!xc(A)&&A.constructor!==null&&!xc(A.constructor)&&xW(A.constructor.isBuffer)&&A.constructor.isBuffer(A)}var dRA=xX("ArrayBuffer");function jk9(A){let B;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView)B=ArrayBuffer.isView(A);else B=A&&A.buffer&&dRA(A.buffer);return B}var yk9=c41("string"),xW=c41("function"),uRA=c41("number"),l41=(A)=>A!==null&&typeof A==="object",kk9=(A)=>A===!0||A===!1,u41=(A)=>{if(p41(A)!=="object")return!1;let B=lM1(A);return(B===null||B===Object.prototype||Object.getPrototypeOf(B)===null)&&!(Symbol.toStringTag in A)&&!(Symbol.iterator in A)},xk9=xX("Date"),fk9=xX("File"),vk9=xX("Blob"),bk9=xX("FileList"),gk9=(A)=>l41(A)&&xW(A.pipe),hk9=(A)=>{let B;return A&&(typeof FormData==="function"&&A instanceof FormData||xW(A.append)&&((B=p41(A))==="formdata"||B==="object"&&xW(A.toString)&&A.toString()==="[object FormData]"))},mk9=xX("URLSearchParams"),[dk9,uk9,pk9,ck9]=["ReadableStream","Request","Response","Headers"].map(xX),lk9=(A)=>A.trim?A.trim():A.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function fc(A,B,{allOwnKeys:Q=!1}={}){if(A===null||typeof A==="undefined")return;let I,G;if(typeof A!=="object")A=[A];if(px(A))for(I=0,G=A.length;I<G;I++)B.call(null,A[I],I,A);else{let D=Q?Object.getOwnPropertyNames(A):Object.keys(A),Z=D.length,Y;for(I=0;I<Z;I++)Y=D[I],B.call(null,A[Y],Y,A)}}function pRA(A,B){B=B.toLowerCase();let Q=Object.keys(A),I=Q.length,G;while(I-- >0)if(G=Q[I],B===G.toLowerCase())return G;return null}var uT=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})(),cRA=(A)=>!xc(A)&&A!==uT;function cM1(){let{caseless:A}=cRA(this)&&this||{},B={},Q=(I,G)=>{let D=A&&pRA(B,G)||G;if(u41(B[D])&&u41(I))B[D]=cM1(B[D],I);else if(u41(I))B[D]=cM1({},I);else if(px(I))B[D]=I.slice();else B[D]=I};for(let I=0,G=arguments.length;I<G;I++)arguments[I]&&fc(arguments[I],Q);return B}var ik9=(A,B,Q,{allOwnKeys:I}={})=>{return fc(B,(G,D)=>{if(Q&&xW(G))A[D]=kc(G,Q);else A[D]=G},{allOwnKeys:I}),A},nk9=(A)=>{if(A.charCodeAt(0)===65279)A=A.slice(1);return A},ak9=(A,B,Q,I)=>{A.prototype=Object.create(B.prototype,I),A.prototype.constructor=A,Object.defineProperty(A,"super",{value:B.prototype}),Q&&Object.assign(A.prototype,Q)},sk9=(A,B,Q,I)=>{let G,D,Z,Y={};if(B=B||{},A==null)return B;do{G=Object.getOwnPropertyNames(A),D=G.length;while(D-- >0)if(Z=G[D],(!I||I(Z,A,B))&&!Y[Z])B[Z]=A[Z],Y[Z]=!0;A=Q!==!1&&lM1(A)}while(A&&(!Q||Q(A,B))&&A!==Object.prototype);return B},rk9=(A,B,Q)=>{if(A=String(A),Q===void 0||Q>A.length)Q=A.length;Q-=B.length;let I=A.indexOf(B,Q);return I!==-1&&I===Q},ok9=(A)=>{if(!A)return null;if(px(A))return A;let B=A.length;if(!uRA(B))return null;let Q=new Array(B);while(B-- >0)Q[B]=A[B];return Q},tk9=((A)=>{return(B)=>{return A&&B instanceof A}})(typeof Uint8Array!=="undefined"&&lM1(Uint8Array)),ek9=(A,B)=>{let I=(A&&A[Symbol.iterator]).call(A),G;while((G=I.next())&&!G.done){let D=G.value;B.call(A,D[0],D[1])}},Ax9=(A,B)=>{let Q,I=[];while((Q=A.exec(B))!==null)I.push(Q);return I},Bx9=xX("HTMLFormElement"),Qx9=(A)=>{return A.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function B(Q,I,G){return I.toUpperCase()+G})},mRA=(({hasOwnProperty:A})=>(B,Q)=>A.call(B,Q))(Object.prototype),Ix9=xX("RegExp"),lRA=(A,B)=>{let Q=Object.getOwnPropertyDescriptors(A),I={};fc(Q,(G,D)=>{let Z;if((Z=B(G,D,A))!==!1)I[D]=Z||G}),Object.defineProperties(A,I)},Gx9=(A)=>{lRA(A,(B,Q)=>{if(xW(A)&&["arguments","caller","callee"].indexOf(Q)!==-1)return!1;let I=A[Q];if(!xW(I))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+"'")}})},Dx9=(A,B)=>{let Q={},I=(G)=>{G.forEach((D)=>{Q[D]=!0})};return px(A)?I(A):I(String(A).split(B)),Q},Zx9=()=>{},Yx9=(A,B)=>{return A!=null&&Number.isFinite(A=+A)?A:B};function Wx9(A){return!!(A&&xW(A.append)&&A[Symbol.toStringTag]==="FormData"&&A[Symbol.iterator])}var Fx9=(A)=>{let B=new Array(10),Q=(I,G)=>{if(l41(I)){if(B.indexOf(I)>=0)return;if(!("toJSON"in I)){B[G]=I;let D=px(I)?[]:{};return fc(I,(Z,Y)=>{let W=Q(Z,G+1);!xc(W)&&(D[Y]=W)}),B[G]=void 0,D}}return I};return Q(A,0)},Jx9=xX("AsyncFunction"),Cx9=(A)=>A&&(l41(A)||xW(A))&&xW(A.then)&&xW(A.catch),iRA=((A,B)=>{if(A)return setImmediate;return B?((Q,I)=>{return uT.addEventListener("message",({source:G,data:D})=>{if(G===uT&&D===Q)I.length&&I.shift()()},!1),(G)=>{I.push(G),uT.postMessage(Q,"*")}})(`axios@${Math.random()}`,[]):(Q)=>setTimeout(Q)})(typeof setImmediate==="function",xW(uT.postMessage)),Xx9=typeof queueMicrotask!=="undefined"?queueMicrotask.bind(uT):typeof process!=="undefined"&&process.nextTick||iRA,YA={isArray:px,isArrayBuffer:dRA,isBuffer:_k9,isFormData:hk9,isArrayBufferView:jk9,isString:yk9,isNumber:uRA,isBoolean:kk9,isObject:l41,isPlainObject:u41,isReadableStream:dk9,isRequest:uk9,isResponse:pk9,isHeaders:ck9,isUndefined:xc,isDate:xk9,isFile:fk9,isBlob:vk9,isRegExp:Ix9,isFunction:xW,isStream:gk9,isURLSearchParams:mk9,isTypedArray:tk9,isFileList:bk9,forEach:fc,merge:cM1,extend:ik9,trim:lk9,stripBOM:nk9,inherits:ak9,toFlatObject:sk9,kindOf:p41,kindOfTest:xX,endsWith:rk9,toArray:ok9,forEachEntry:ek9,matchAll:Ax9,isHTMLForm:Bx9,hasOwnProperty:mRA,hasOwnProp:mRA,reduceDescriptors:lRA,freezeMethods:Gx9,toObjectSet:Dx9,toCamelCase:Qx9,noop:Zx9,toFiniteNumber:Yx9,findKey:pRA,global:uT,isContextDefined:cRA,isSpecCompliantForm:Wx9,toJSONObject:Fx9,isAsyncFn:Jx9,isThenable:Cx9,setImmediate:iRA,asap:Xx9};function cx(A,B,Q,I,G){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),I&&(this.request=I),G)this.response=G,this.status=G.status?G.status:null}YA.inherits(cx,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:YA.toJSONObject(this.config),code:this.code,status:this.status}}});var nRA=cx.prototype,aRA={};["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)=>{aRA[A]={value:A}});Object.defineProperties(cx,aRA);Object.defineProperty(nRA,"isAxiosError",{value:!0});cx.from=(A,B,Q,I,G,D)=>{let Z=Object.create(nRA);return YA.toFlatObject(A,Z,function Y(W){return W!==Error.prototype},(Y)=>{return Y!=="isAxiosError"}),cx.call(Z,A.message,B,Q,I,G),Z.cause=A,Z.name=A.name,D&&Object.assign(Z,D),Z};var Z2=cx;var eTA=F1(tTA(),1),B61=eTA.default;function HL1(A){return YA.isPlainObject(A)||YA.isArray(A)}function BPA(A){return YA.endsWith(A,"[]")?A.slice(0,-2):A}function APA(A,B,Q){if(!A)return B;return A.concat(B).map(function I(G,D){return G=BPA(G),!Q&&D?"["+G+"]":G}).join(Q?".":"")}function Av9(A){return YA.isArray(A)&&!A.some(HL1)}var Bv9=YA.toFlatObject(YA,{},null,function A(B){return/^is[A-Z]/.test(B)});function Qv9(A,B,Q){if(!YA.isObject(A))throw new TypeError("target must be an object");B=B||new(B61||FormData),Q=YA.toFlatObject(Q,{metaTokens:!0,dots:!1,indexes:!1},!1,function K(U,N){return!YA.isUndefined(N[U])});let I=Q.metaTokens,G=Q.visitor||J,D=Q.dots,Z=Q.indexes,W=(Q.Blob||typeof Blob!=="undefined"&&Blob)&&YA.isSpecCompliantForm(B);if(!YA.isFunction(G))throw new TypeError("visitor must be a function");function F(K){if(K===null)return"";if(YA.isDate(K))return K.toISOString();if(!W&&YA.isBlob(K))throw new Z2("Blob is not supported. Use a Buffer instead.");if(YA.isArrayBuffer(K)||YA.isTypedArray(K))return W&&typeof Blob==="function"?new Blob([K]):Buffer.from(K);return K}function J(K,U,N){let q=K;if(K&&!N&&typeof K==="object"){if(YA.endsWith(U,"{}"))U=I?U:U.slice(0,-2),K=JSON.stringify(K);else if(YA.isArray(K)&&Av9(K)||(YA.isFileList(K)||YA.endsWith(U,"[]"))&&(q=YA.toArray(K)))return U=BPA(U),q.forEach(function M(R,T){!(YA.isUndefined(R)||R===null)&&B.append(Z===!0?APA([U],T,D):Z===null?U:U+"[]",F(R))}),!1}if(HL1(K))return!0;return B.append(APA(N,U,D),F(K)),!1}let C=[],X=Object.assign(Bv9,{defaultVisitor:J,convertValue:F,isVisitable:HL1});function V(K,U){if(YA.isUndefined(K))return;if(C.indexOf(K)!==-1)throw Error("Circular reference detected in "+U.join("."));C.push(K),YA.forEach(K,function N(q,M){if((!(YA.isUndefined(q)||q===null)&&G.call(B,q,YA.isString(M)?M.trim():M,U,X))===!0)V(q,U?U.concat(M):[M])}),C.pop()}if(!YA.isObject(A))throw new TypeError("data must be an object");return V(A),B}var mq=Qv9;function QPA(A){let B={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\x00"};return encodeURIComponent(A).replace(/[!'()~]|%20|%00/g,function Q(I){return B[I]})}function IPA(A,B){this._pairs=[],A&&mq(A,this,B)}var GPA=IPA.prototype;GPA.append=function A(B,Q){this._pairs.push([B,Q])};GPA.toString=function A(B){let Q=B?function(I){return B.call(this,I,QPA)}:QPA;return this._pairs.map(function I(G){return Q(G[0])+"="+Q(G[1])},"").join("&")};var DPA=IPA;function Iv9(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function cT(A,B,Q){if(!B)return A;let I=Q&&Q.encode||Iv9;if(YA.isFunction(Q))Q={serialize:Q};let G=Q&&Q.serialize,D;if(G)D=G(B,Q);else D=YA.isURLSearchParams(B)?B.toString():new DPA(B,Q).toString(I);if(D){let Z=A.indexOf("#");if(Z!==-1)A=A.slice(0,Z);A+=(A.indexOf("?")===-1?"?":"&")+D}return A}class ZPA{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){YA.forEach(this.handlers,function B(Q){if(Q!==null)A(Q)})}}var zL1=ZPA;var sx={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};import Dv9 from"crypto";import Gv9 from"url";var YPA=Gv9.URLSearchParams;var wL1="abcdefghijklmnopqrstuvwxyz",WPA="0123456789",FPA={DIGIT:WPA,ALPHA:wL1,ALPHA_DIGIT:wL1+wL1.toUpperCase()+WPA},Zv9=(A=16,B=FPA.ALPHA_DIGIT)=>{let Q="",{length:I}=B,G=new Uint32Array(A);Dv9.randomFillSync(G);for(let D=0;D<A;D++)Q+=B[G[D]%I];return Q},JPA={isNode:!0,classes:{URLSearchParams:YPA,FormData:B61,Blob:typeof Blob!=="undefined"&&Blob||null},ALPHABET:FPA,generateString:Zv9,protocols:["http","https","file","data"]};var NL1={};Nu(NL1,{origin:()=>Fv9,navigator:()=>EL1,hasStandardBrowserWebWorkerEnv:()=>Wv9,hasStandardBrowserEnv:()=>Yv9,hasBrowserEnv:()=>UL1});var UL1=typeof window!=="undefined"&&typeof document!=="undefined",EL1=typeof navigator==="object"&&navigator||void 0,Yv9=UL1&&(!EL1||["ReactNative","NativeScript","NS"].indexOf(EL1.product)<0),Wv9=(()=>{return typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function"})(),Fv9=UL1&&window.location.href||"http://localhost";var V5={...NL1,...JPA};function $L1(A,B){return mq(A,new V5.classes.URLSearchParams,Object.assign({visitor:function(Q,I,G,D){if(V5.isNode&&YA.isBuffer(Q))return this.append(I,Q.toString("base64")),!1;return D.defaultVisitor.apply(this,arguments)}},B))}function Jv9(A){return YA.matchAll(/\w+|\[(\w*)]/g,A).map((B)=>{return B[0]==="[]"?"":B[1]||B[0]})}function Cv9(A){let B={},Q=Object.keys(A),I,G=Q.length,D;for(I=0;I<G;I++)D=Q[I],B[D]=A[D];return B}function Xv9(A){function B(Q,I,G,D){let Z=Q[D++];if(Z==="__proto__")return!0;let Y=Number.isFinite(+Z),W=D>=Q.length;if(Z=!Z&&YA.isArray(G)?G.length:Z,W){if(YA.hasOwnProp(G,Z))G[Z]=[G[Z],I];else G[Z]=I;return!Y}if(!G[Z]||!YA.isObject(G[Z]))G[Z]=[];if(B(Q,I,G[Z],D)&&YA.isArray(G[Z]))G[Z]=Cv9(G[Z]);return!Y}if(YA.isFormData(A)&&YA.isFunction(A.entries)){let Q={};return YA.forEachEntry(A,(I,G)=>{B(Jv9(I),G,Q,0)}),Q}return null}var Q61=Xv9;function Vv9(A,B,Q){if(YA.isString(A))try{return(B||JSON.parse)(A),YA.trim(A)}catch(I){if(I.name!=="SyntaxError")throw I}return(Q||JSON.stringify)(A)}var qL1={transitional:sx,adapter:["xhr","http","fetch"],transformRequest:[function A(B,Q){let I=Q.getContentType()||"",G=I.indexOf("application/json")>-1,D=YA.isObject(B);if(D&&YA.isHTMLForm(B))B=new FormData(B);if(YA.isFormData(B))return G?JSON.stringify(Q61(B)):B;if(YA.isArrayBuffer(B)||YA.isBuffer(B)||YA.isStream(B)||YA.isFile(B)||YA.isBlob(B)||YA.isReadableStream(B))return B;if(YA.isArrayBufferView(B))return B.buffer;if(YA.isURLSearchParams(B))return Q.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),B.toString();let Y;if(D){if(I.indexOf("application/x-www-form-urlencoded")>-1)return $L1(B,this.formSerializer).toString();if((Y=YA.isFileList(B))||I.indexOf("multipart/form-data")>-1){let W=this.env&&this.env.FormData;return mq(Y?{"files[]":B}:B,W&&new W,this.formSerializer)}}if(D||G)return Q.setContentType("application/json",!1),Vv9(B);return B}],transformResponse:[function A(B){let Q=this.transitional||qL1.transitional,I=Q&&Q.forcedJSONParsing,G=this.responseType==="json";if(YA.isResponse(B)||YA.isReadableStream(B))return B;if(B&&YA.isString(B)&&(I&&!this.responseType||G)){let Z=!(Q&&Q.silentJSONParsing)&&G;try{return JSON.parse(B)}catch(Y){if(Z){if(Y.name==="SyntaxError")throw Z2.from(Y,Z2.ERR_BAD_RESPONSE,this,null,this.response);throw Y}}}return B}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:V5.classes.FormData,Blob:V5.classes.Blob},validateStatus:function A(B){return B>=200&&B<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};YA.forEach(["delete","get","head","post","put","patch"],(A)=>{qL1.headers[A]={}});var rx=qL1;var Kv9=YA.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"]),CPA=(A)=>{let B={},Q,I,G;return A&&A.split(`
569
569
  `).forEach(function D(Z){if(G=Z.indexOf(":"),Q=Z.substring(0,G).trim().toLowerCase(),I=Z.substring(G+1).trim(),!Q||B[Q]&&Kv9[Q])return;if(Q==="set-cookie")if(B[Q])B[Q].push(I);else B[Q]=[I];else B[Q]=B[Q]?B[Q]+", "+I:I}),B};var XPA=Symbol("internals");function mc(A){return A&&String(A).trim().toLowerCase()}function I61(A){if(A===!1||A==null)return A;return YA.isArray(A)?A.map(I61):String(A)}function Hv9(A){let B=Object.create(null),Q=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,I;while(I=Q.exec(A))B[I[1]]=I[2];return B}var zv9=(A)=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(A.trim());function ML1(A,B,Q,I,G){if(YA.isFunction(I))return I.call(this,B,Q);if(G)B=Q;if(!YA.isString(B))return;if(YA.isString(I))return B.indexOf(I)!==-1;if(YA.isRegExp(I))return I.test(B)}function wv9(A){return A.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(B,Q,I)=>{return Q.toUpperCase()+I})}function Ev9(A,B){let Q=YA.toCamelCase(" "+B);["get","set","has"].forEach((I)=>{Object.defineProperty(A,I+Q,{value:function(G,D,Z){return this[I].call(this,B,G,D,Z)},configurable:!0})})}class dc{constructor(A){A&&this.set(A)}set(A,B,Q){let I=this;function G(Z,Y,W){let F=mc(Y);if(!F)throw new Error("header name must be a non-empty string");let J=YA.findKey(I,F);if(!J||I[J]===void 0||W===!0||W===void 0&&I[J]!==!1)I[J||Y]=I61(Z)}let D=(Z,Y)=>YA.forEach(Z,(W,F)=>G(W,F,Y));if(YA.isPlainObject(A)||A instanceof this.constructor)D(A,B);else if(YA.isString(A)&&(A=A.trim())&&!zv9(A))D(CPA(A),B);else if(YA.isHeaders(A))for(let[Z,Y]of A.entries())G(Y,Z,Q);else A!=null&&G(B,A,Q);return this}get(A,B){if(A=mc(A),A){let Q=YA.findKey(this,A);if(Q){let I=this[Q];if(!B)return I;if(B===!0)return Hv9(I);if(YA.isFunction(B))return B.call(this,I,Q);if(YA.isRegExp(B))return B.exec(I);throw new TypeError("parser must be boolean|regexp|function")}}}has(A,B){if(A=mc(A),A){let Q=YA.findKey(this,A);return!!(Q&&this[Q]!==void 0&&(!B||ML1(this,this[Q],Q,B)))}return!1}delete(A,B){let Q=this,I=!1;function G(D){if(D=mc(D),D){let Z=YA.findKey(Q,D);if(Z&&(!B||ML1(Q,Q[Z],Z,B)))delete Q[Z],I=!0}}if(YA.isArray(A))A.forEach(G);else G(A);return I}clear(A){let B=Object.keys(this),Q=B.length,I=!1;while(Q--){let G=B[Q];if(!A||ML1(this,this[G],G,A,!0))delete this[G],I=!0}return I}normalize(A){let B=this,Q={};return YA.forEach(this,(I,G)=>{let D=YA.findKey(Q,G);if(D){B[D]=I61(I),delete B[G];return}let Z=A?wv9(G):String(G).trim();if(Z!==G)delete B[G];B[Z]=I61(I),Q[Z]=!0}),this}concat(...A){return this.constructor.concat(this,...A)}toJSON(A){let B=Object.create(null);return YA.forEach(this,(Q,I)=>{Q!=null&&Q!==!1&&(B[I]=A&&YA.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(`
@@ -571,7 +571,7 @@ ${Q}
571
571
  `,pv9=sc.encode(dq),cv9=2;class LPA{constructor(A,B){let{escapeName:Q}=this.constructor,I=YA.isString(B),G=`Content-Disposition: form-data; name="${Q(A)}"${!I&&B.name?`; filename="${Q(B.name)}"`:""}${dq}`;if(I)B=sc.encode(String(B).replace(/\r?\n|\r\n?/g,dq));else G+=`Content-Type: ${B.type||"application/octet-stream"}${dq}`;this.headers=sc.encode(G+dq),this.contentLength=I?B.byteLength:B.size,this.size=this.headers.byteLength+this.contentLength+cv9,this.name=A,this.value=B}async*encode(){yield this.headers;let{value:A}=this;if(YA.isTypedArray(A))yield A;else yield*G61(A);yield pv9}static escapeName(A){return String(A).replace(/[\r\n"]/g,(B)=>({"\r":"%0D","\n":"%0A",'"':"%22"})[B])}}var lv9=(A,B,Q)=>{let{tag:I="form-data-boundary",size:G=25,boundary:D=I+"-"+V5.generateString(G,uv9)}=Q||{};if(!YA.isFormData(A))throw TypeError("FormData instance required");if(D.length<1||D.length>70)throw Error("boundary must be 10-70 characters long");let Z=sc.encode("--"+D+dq),Y=sc.encode("--"+D+"--"+dq+dq),W=Y.byteLength,F=Array.from(A.entries()).map(([C,X])=>{let V=new LPA(C,X);return W+=V.size,V});W+=Z.byteLength*F.length,W=YA.toFiniteNumber(W);let J={"Content-Type":`multipart/form-data; boundary=${D}`};if(Number.isFinite(W))J["Content-Length"]=W;return B&&B(J),dv9.from(async function*(){for(let C of F)yield Z,yield*C.encode();yield Y}())},RPA=lv9;import iv9 from"stream";class OPA extends iv9.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 I=Buffer.alloc(2);I[0]=120,I[1]=156,this.push(I,B)}}this.__transform(A,B,Q)}}var TPA=OPA;var nv9=(A,B)=>{return YA.isAsyncFn(A)?function(...Q){let I=Q.pop();A.apply(this,Q).then((G)=>{try{B?I(null,...B(G)):I(null,G)}catch(D){I(D)}},I)}:A},PPA=nv9;function av9(A,B){A=A||10;let Q=new Array(A),I=new Array(A),G=0,D=0,Z;return B=B!==void 0?B:1000,function Y(W){let F=Date.now(),J=I[D];if(!Z)Z=F;Q[G]=W,I[G]=F;let C=D,X=0;while(C!==G)X+=Q[C++],C=C%A;if(G=(G+1)%A,G===D)D=(D+1)%A;if(F-Z<B)return;let V=J&&F-J;return V?Math.round(X*1000/V):void 0}}var SPA=av9;function sv9(A,B){let Q=0,I=1000/B,G,D,Z=(F,J=Date.now())=>{if(Q=J,G=null,D)clearTimeout(D),D=null;A.apply(null,F)};return[(...F)=>{let J=Date.now(),C=J-Q;if(C>=I)Z(F,J);else if(G=F,!D)D=setTimeout(()=>{D=null,Z(G)},I-C)},()=>G&&Z(G)]}var _PA=sv9;var eE=(A,B,Q=3)=>{let I=0,G=SPA(50,250);return _PA((D)=>{let Z=D.loaded,Y=D.lengthComputable?D.total:void 0,W=Z-I,F=G(W),J=Z<=Y;I=Z;let C={loaded:Z,total:Y,progress:Y?Z/Y:void 0,bytes:W,rate:F?F:void 0,estimated:F&&Y&&J?(Y-Z)/F:void 0,event:D,lengthComputable:Y!=null,[B?"download":"upload"]:!0};A(C)},Q)},tx=(A,B)=>{let Q=A!=null;return[(I)=>B[0]({lengthComputable:Q,total:A,loaded:I}),B[1]]},ex=(A)=>(...B)=>YA.asap(()=>A(...B));var jPA={flush:uq.constants.Z_SYNC_FLUSH,finishFlush:uq.constants.Z_SYNC_FLUSH},Ab9={flush:uq.constants.BROTLI_OPERATION_FLUSH,finishFlush:uq.constants.BROTLI_OPERATION_FLUSH},yPA=YA.isFunction(uq.createBrotliDecompress),{http:Bb9,https:Qb9}=bPA.default,Ib9=/https:?/,kPA=V5.protocols.map((A)=>{return A+":"}),xPA=(A,[B,Q])=>{return A.on("end",Q).on("error",Q),B};function Gb9(A,B){if(A.beforeRedirects.proxy)A.beforeRedirects.proxy(A);if(A.beforeRedirects.config)A.beforeRedirects.config(A,B)}function gPA(A,B,Q){let I=B;if(!I&&I!==!1){let G=vPA.default.getProxyForUrl(Q);if(G)I=new URL(G)}if(I){if(I.username)I.auth=(I.username||"")+":"+(I.password||"");if(I.auth){if(I.auth.username||I.auth.password)I.auth=(I.auth.username||"")+":"+(I.auth.password||"");let D=Buffer.from(I.auth,"utf8").toString("base64");A.headers["Proxy-Authorization"]="Basic "+D}A.headers.host=A.hostname+(A.port?":"+A.port:"");let G=I.hostname||I.host;if(A.hostname=G,A.host=G,A.port=I.port,A.path=Q,I.protocol)A.protocol=I.protocol.includes(":")?I.protocol:`${I.protocol}:`}A.beforeRedirects.proxy=function G(D){gPA(D,B,D.href)}}var Db9=typeof process!=="undefined"&&YA.kindOf(process)==="process",Zb9=(A)=>{return new Promise((B,Q)=>{let I,G,D=(W,F)=>{if(G)return;G=!0,I&&I(W,F)},Z=(W)=>{D(W),B(W)},Y=(W)=>{D(W,!0),Q(W)};A(Z,Y,(W)=>I=W).catch(Y)})},Yb9=({address:A,family:B})=>{if(!YA.isString(A))throw TypeError("address must be a string");return{address:A,family:B||(A.indexOf(".")<0?6:4)}},fPA=(A,B)=>Yb9(YA.isObject(A)?A:{address:A,family:B}),hPA=Db9&&function A(B){return Zb9(async function Q(I,G,D){let{data:Z,lookup:Y,family:W}=B,{responseType:F,responseEncoding:J}=B,C=B.method.toUpperCase(),X,V=!1,K;if(Y){let o1=PPA(Y,(a1)=>YA.isArray(a1)?a1:[a1]);Y=(a1,PA,cA)=>{o1(a1,PA,(FA,f1,B1)=>{if(FA)return cA(FA);let v1=YA.isArray(f1)?f1.map((M1)=>fPA(M1)):[fPA(f1,B1)];PA.all?cA(FA,v1):cA(FA,v1[0].address,v1[0].family)})}}let U=new ev9,N=()=>{if(B.cancelToken)B.cancelToken.unsubscribe(q);if(B.signal)B.signal.removeEventListener("abort",q);U.removeAllListeners()};D((o1,a1)=>{if(X=!0,a1)V=!0,N()});function q(o1){U.emit("abort",!o1||o1.type?new fW(null,B,K):o1)}if(U.once("abort",G),B.cancelToken||B.signal){if(B.cancelToken&&B.cancelToken.subscribe(q),B.signal)B.signal.aborted?q():B.signal.addEventListener("abort",q)}let M=lT(B.baseURL,B.url,B.allowAbsoluteUrls),R=new URL(M,V5.hasBrowserEnv?V5.origin:void 0),T=R.protocol||kPA[0];if(T==="data:"){let o1;if(C!=="GET")return PH(I,G,{status:405,statusText:"method not allowed",headers:{},config:B});try{o1=gL1(B.url,F==="blob",{Blob:B.env&&B.env.Blob})}catch(a1){throw Z2.from(a1,Z2.ERR_BAD_REQUEST,B)}if(F==="text"){if(o1=o1.toString(J),!J||J==="utf8")o1=YA.stripBOM(o1)}else if(F==="stream")o1=Af.Readable.from(o1);return PH(I,G,{data:o1,status:200,statusText:"OK",headers:new eB,config:B})}if(kPA.indexOf(T)===-1)return G(new Z2("Unsupported protocol "+T,Z2.ERR_BAD_REQUEST,B));let O=eB.from(B.headers).normalize();O.set("User-Agent","axios/"+aT,!1);let{onUploadProgress:S,onDownloadProgress:f}=B,n=B.maxRate,g=void 0,Y1=void 0;if(YA.isSpecCompliantForm(Z)){let o1=O.getContentType(/boundary=([-_\w\d]{10,70})/i);Z=RPA(Z,(a1)=>{O.set(a1)},{tag:`axios-${aT}-boundary`,boundary:o1&&o1[1]||void 0})}else if(YA.isFormData(Z)&&YA.isFunction(Z.getHeaders)){if(O.set(Z.getHeaders()),!O.hasContentLength())try{let o1=await tv9.promisify(Z.getLength).call(Z);Number.isFinite(o1)&&o1>=0&&O.setContentLength(o1)}catch(o1){}}else if(YA.isBlob(Z)||YA.isFile(Z))Z.size&&O.setContentType(Z.type||"application/octet-stream"),O.setContentLength(Z.size||0),Z=Af.Readable.from(G61(Z));else if(Z&&!YA.isStream(Z)){if(Buffer.isBuffer(Z));else if(YA.isArrayBuffer(Z))Z=Buffer.from(new Uint8Array(Z));else if(YA.isString(Z))Z=Buffer.from(Z,"utf-8");else return G(new Z2("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",Z2.ERR_BAD_REQUEST,B));if(O.setContentLength(Z.length,!1),B.maxBodyLength>-1&&Z.length>B.maxBodyLength)return G(new Z2("Request body larger than maxBodyLength limit",Z2.ERR_BAD_REQUEST,B))}let r=YA.toFiniteNumber(O.getContentLength());if(YA.isArray(n))g=n[0],Y1=n[1];else g=Y1=n;if(Z&&(S||g)){if(!YA.isStream(Z))Z=Af.Readable.from(Z,{objectMode:!1});Z=Af.pipeline([Z,new mL1({maxRate:YA.toFiniteNumber(g)})],YA.noop),S&&Z.on("progress",xPA(Z,tx(r,eE(ex(S),!1,3))))}let w1=void 0;if(B.auth){let o1=B.auth.username||"",a1=B.auth.password||"";w1=o1+":"+a1}if(!w1&&R.username){let{username:o1,password:a1}=R;w1=o1+":"+a1}w1&&O.delete("authorization");let H1;try{H1=cT(R.pathname+R.search,B.params,B.paramsSerializer).replace(/^\?/,"")}catch(o1){let a1=new Error(o1.message);return a1.config=B,a1.url=B.url,a1.exists=!0,G(a1)}O.set("Accept-Encoding","gzip, compress, deflate"+(yPA?", br":""),!1);let x={path:H1,method:C,headers:O.toJSON(),agents:{http:B.httpAgent,https:B.httpsAgent},auth:w1,protocol:T,family:W,beforeRedirect:Gb9,beforeRedirects:{}};if(!YA.isUndefined(Y)&&(x.lookup=Y),B.socketPath)x.socketPath=B.socketPath;else x.hostname=R.hostname.startsWith("[")?R.hostname.slice(1,-1):R.hostname,x.port=R.port,gPA(x,B.proxy,T+"//"+R.hostname+(R.port?":"+R.port:"")+x.path);let J1,x1=Ib9.test(x.protocol);if(x.agent=x1?B.httpsAgent:B.httpAgent,B.transport)J1=B.transport;else if(B.maxRedirects===0)J1=x1?ov9:rv9;else{if(B.maxRedirects)x.maxRedirects=B.maxRedirects;if(B.beforeRedirect)x.beforeRedirects.config=B.beforeRedirect;J1=x1?Qb9:Bb9}if(B.maxBodyLength>-1)x.maxBodyLength=B.maxBodyLength;else x.maxBodyLength=1/0;if(B.insecureHTTPParser)x.insecureHTTPParser=B.insecureHTTPParser;if(K=J1.request(x,function o1(a1){if(K.destroyed)return;let PA=[a1],cA=+a1.headers["content-length"];if(f||Y1){let M1=new mL1({maxRate:YA.toFiniteNumber(Y1)});f&&M1.on("progress",xPA(M1,tx(cA,eE(ex(f),!0,3)))),PA.push(M1)}let FA=a1,f1=a1.req||K;if(B.decompress!==!1&&a1.headers["content-encoding"]){if(C==="HEAD"||a1.statusCode===204)delete a1.headers["content-encoding"];switch((a1.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":PA.push(uq.createUnzip(jPA)),delete a1.headers["content-encoding"];break;case"deflate":PA.push(new TPA),PA.push(uq.createUnzip(jPA)),delete a1.headers["content-encoding"];break;case"br":if(yPA)PA.push(uq.createBrotliDecompress(Ab9)),delete a1.headers["content-encoding"]}}FA=PA.length>1?Af.pipeline(PA,YA.noop):PA[0];let B1=Af.finished(FA,()=>{B1(),N()}),v1={status:a1.statusCode,statusText:a1.statusMessage,headers:new eB(a1.headers),config:B,request:f1};if(F==="stream")v1.data=FA,PH(I,G,v1);else{let M1=[],AA=0;FA.on("data",function UA(OA){if(M1.push(OA),AA+=OA.length,B.maxContentLength>-1&&AA>B.maxContentLength)V=!0,FA.destroy(),G(new Z2("maxContentLength size of "+B.maxContentLength+" exceeded",Z2.ERR_BAD_RESPONSE,B,f1))}),FA.on("aborted",function UA(){if(V)return;let OA=new Z2("stream has been aborted",Z2.ERR_BAD_RESPONSE,B,f1);FA.destroy(OA),G(OA)}),FA.on("error",function UA(OA){if(K.destroyed)return;G(Z2.from(OA,null,B,f1))}),FA.on("end",function UA(){try{let OA=M1.length===1?M1[0]:Buffer.concat(M1);if(F!=="arraybuffer"){if(OA=OA.toString(J),!J||J==="utf8")OA=YA.stripBOM(OA)}v1.data=OA}catch(OA){return G(Z2.from(OA,null,B,v1.request,v1))}PH(I,G,v1)})}U.once("abort",(M1)=>{if(!FA.destroyed)FA.emit("error",M1),FA.destroy()})}),U.once("abort",(o1)=>{G(o1),K.destroy(o1)}),K.on("error",function o1(a1){G(Z2.from(a1,null,B,K))}),K.on("socket",function o1(a1){a1.setKeepAlive(!0,60000)}),B.timeout){let o1=parseInt(B.timeout,10);if(Number.isNaN(o1)){G(new Z2("error trying to parse `config.timeout` to int",Z2.ERR_BAD_OPTION_VALUE,B,K));return}K.setTimeout(o1,function a1(){if(X)return;let PA=B.timeout?"timeout of "+B.timeout+"ms exceeded":"timeout exceeded",cA=B.transitional||sx;if(B.timeoutErrorMessage)PA=B.timeoutErrorMessage;G(new Z2(PA,cA.clarifyTimeoutError?Z2.ETIMEDOUT:Z2.ECONNABORTED,B,K)),q()})}if(YA.isStream(Z)){let o1=!1,a1=!1;Z.on("end",()=>{o1=!0}),Z.once("error",(PA)=>{a1=!0,K.destroy(PA)}),Z.on("close",()=>{if(!o1&&!a1)q(new fW("Request stream has been aborted",B,K))}),Z.pipe(K)}else K.end(Z)})};var mPA=V5.hasStandardBrowserEnv?((A,B)=>(Q)=>{return Q=new URL(Q,V5.origin),A.protocol===Q.protocol&&A.host===Q.host&&(B||A.port===Q.port)})(new URL(V5.origin),V5.navigator&&/(msie|trident)/i.test(V5.navigator.userAgent)):()=>!0;var dPA=V5.hasStandardBrowserEnv?{write(A,B,Q,I,G,D){let Z=[A+"="+encodeURIComponent(B)];YA.isNumber(Q)&&Z.push("expires="+new Date(Q).toGMTString()),YA.isString(I)&&Z.push("path="+I),YA.isString(G)&&Z.push("domain="+G),D===!0&&Z.push("secure"),document.cookie=Z.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 uPA=(A)=>A instanceof eB?{...A}:A;function vX(A,B){B=B||{};let Q={};function I(F,J,C,X){if(YA.isPlainObject(F)&&YA.isPlainObject(J))return YA.merge.call({caseless:X},F,J);else if(YA.isPlainObject(J))return YA.merge({},J);else if(YA.isArray(J))return J.slice();return J}function G(F,J,C,X){if(!YA.isUndefined(J))return I(F,J,C,X);else if(!YA.isUndefined(F))return I(void 0,F,C,X)}function D(F,J){if(!YA.isUndefined(J))return I(void 0,J)}function Z(F,J){if(!YA.isUndefined(J))return I(void 0,J);else if(!YA.isUndefined(F))return I(void 0,F)}function Y(F,J,C){if(C in B)return I(F,J);else if(C in A)return I(void 0,F)}let W={url:D,method:D,data:D,baseURL:Z,transformRequest:Z,transformResponse:Z,paramsSerializer:Z,timeout:Z,timeoutMessage:Z,withCredentials:Z,withXSRFToken:Z,adapter:Z,responseType:Z,xsrfCookieName:Z,xsrfHeaderName:Z,onUploadProgress:Z,onDownloadProgress:Z,decompress:Z,maxContentLength:Z,maxBodyLength:Z,beforeRedirect:Z,transport:Z,httpAgent:Z,httpsAgent:Z,cancelToken:Z,socketPath:Z,responseEncoding:Z,validateStatus:Y,headers:(F,J,C)=>G(uPA(F),uPA(J),C,!0)};return YA.forEach(Object.keys(Object.assign({},A,B)),function F(J){let C=W[J]||G,X=C(A[J],B[J],J);YA.isUndefined(X)&&C!==Y||(Q[J]=X)}),Q}var D61=(A)=>{let B=vX({},A),{data:Q,withXSRFToken:I,xsrfHeaderName:G,xsrfCookieName:D,headers:Z,auth:Y}=B;if(B.headers=Z=eB.from(Z),B.url=cT(lT(B.baseURL,B.url,B.allowAbsoluteUrls),A.params,A.paramsSerializer),Y)Z.set("Authorization","Basic "+btoa((Y.username||"")+":"+(Y.password?unescape(encodeURIComponent(Y.password)):"")));let W;if(YA.isFormData(Q)){if(V5.hasStandardBrowserEnv||V5.hasStandardBrowserWebWorkerEnv)Z.setContentType(void 0);else if((W=Z.getContentType())!==!1){let[F,...J]=W?W.split(";").map((C)=>C.trim()).filter(Boolean):[];Z.setContentType([F||"multipart/form-data",...J].join("; "))}}if(V5.hasStandardBrowserEnv){if(I&&YA.isFunction(I)&&(I=I(B)),I||I!==!1&&mPA(B.url)){let F=G&&D&&dPA.read(D);if(F)Z.set(G,F)}}return B};var Wb9=typeof XMLHttpRequest!=="undefined",pPA=Wb9&&function(A){return new Promise(function B(Q,I){let G=D61(A),D=G.data,Z=eB.from(G.headers).normalize(),{responseType:Y,onUploadProgress:W,onDownloadProgress:F}=G,J,C,X,V,K;function U(){V&&V(),K&&K(),G.cancelToken&&G.cancelToken.unsubscribe(J),G.signal&&G.signal.removeEventListener("abort",J)}let N=new XMLHttpRequest;N.open(G.method.toUpperCase(),G.url,!0),N.timeout=G.timeout;function q(){if(!N)return;let R=eB.from("getAllResponseHeaders"in N&&N.getAllResponseHeaders()),O={data:!Y||Y==="text"||Y==="json"?N.responseText:N.response,status:N.status,statusText:N.statusText,headers:R,config:A,request:N};PH(function S(f){Q(f),U()},function S(f){I(f),U()},O),N=null}if("onloadend"in N)N.onloadend=q;else N.onreadystatechange=function R(){if(!N||N.readyState!==4)return;if(N.status===0&&!(N.responseURL&&N.responseURL.indexOf("file:")===0))return;setTimeout(q)};if(N.onabort=function R(){if(!N)return;I(new Z2("Request aborted",Z2.ECONNABORTED,A,N)),N=null},N.onerror=function R(){I(new Z2("Network Error",Z2.ERR_NETWORK,A,N)),N=null},N.ontimeout=function R(){let T=G.timeout?"timeout of "+G.timeout+"ms exceeded":"timeout exceeded",O=G.transitional||sx;if(G.timeoutErrorMessage)T=G.timeoutErrorMessage;I(new Z2(T,O.clarifyTimeoutError?Z2.ETIMEDOUT:Z2.ECONNABORTED,A,N)),N=null},D===void 0&&Z.setContentType(null),"setRequestHeader"in N)YA.forEach(Z.toJSON(),function R(T,O){N.setRequestHeader(O,T)});if(!YA.isUndefined(G.withCredentials))N.withCredentials=!!G.withCredentials;if(Y&&Y!=="json")N.responseType=G.responseType;if(F)[X,K]=eE(F,!0),N.addEventListener("progress",X);if(W&&N.upload)[C,V]=eE(W),N.upload.addEventListener("progress",C),N.upload.addEventListener("loadend",V);if(G.cancelToken||G.signal){if(J=(R)=>{if(!N)return;I(!R||R.type?new fW(null,A,N):R),N.abort(),N=null},G.cancelToken&&G.cancelToken.subscribe(J),G.signal)G.signal.aborted?J():G.signal.addEventListener("abort",J)}let M=ac(G.url);if(M&&V5.protocols.indexOf(M)===-1){I(new Z2("Unsupported protocol "+M+":",Z2.ERR_BAD_REQUEST,A));return}N.send(D||null)})};var Fb9=(A,B)=>{let{length:Q}=A=A?A.filter(Boolean):[];if(B||Q){let I=new AbortController,G,D=function(F){if(!G){G=!0,Y();let J=F instanceof Error?F:this.reason;I.abort(J instanceof Z2?J:new fW(J instanceof Error?J.message:J))}},Z=B&&setTimeout(()=>{Z=null,D(new Z2(`timeout ${B} of ms exceeded`,Z2.ETIMEDOUT))},B),Y=()=>{if(A)Z&&clearTimeout(Z),Z=null,A.forEach((F)=>{F.unsubscribe?F.unsubscribe(D):F.removeEventListener("abort",D)}),A=null};A.forEach((F)=>F.addEventListener("abort",D));let{signal:W}=I;return W.unsubscribe=()=>YA.asap(Y),W}},cPA=Fb9;var Jb9=function*(A,B){let Q=A.byteLength;if(!B||Q<B){yield A;return}let I=0,G;while(I<Q)G=I+B,yield A.slice(I,G),I=G},Cb9=async function*(A,B){for await(let Q of Xb9(A))yield*Jb9(Q,B)},Xb9=async function*(A){if(A[Symbol.asyncIterator]){yield*A;return}let B=A.getReader();try{for(;;){let{done:Q,value:I}=await B.read();if(Q)break;yield I}}finally{await B.cancel()}},dL1=(A,B,Q,I)=>{let G=Cb9(A,B),D=0,Z,Y=(W)=>{if(!Z)Z=!0,I&&I(W)};return new ReadableStream({async pull(W){try{let{done:F,value:J}=await G.next();if(F){Y(),W.close();return}let C=J.byteLength;if(Q){let X=D+=C;Q(X)}W.enqueue(new Uint8Array(J))}catch(F){throw Y(F),F}},cancel(W){return Y(W),G.return()}},{highWaterMark:2})};var Y61=typeof fetch==="function"&&typeof Request==="function"&&typeof Response==="function",iPA=Y61&&typeof ReadableStream==="function",Vb9=Y61&&(typeof TextEncoder==="function"?((A)=>(B)=>A.encode(B))(new TextEncoder):async(A)=>new Uint8Array(await new Response(A).arrayBuffer())),nPA=(A,...B)=>{try{return!!A(...B)}catch(Q){return!1}},Kb9=iPA&&nPA(()=>{let A=!1,B=new Request(V5.origin,{body:new ReadableStream,method:"POST",get duplex(){return A=!0,"half"}}).headers.has("Content-Type");return A&&!B}),lPA=65536,uL1=iPA&&nPA(()=>YA.isReadableStream(new Response("").body)),Z61={stream:uL1&&((A)=>A.body)};Y61&&((A)=>{["text","arrayBuffer","blob","formData","stream"].forEach((B)=>{!Z61[B]&&(Z61[B]=YA.isFunction(A[B])?(Q)=>Q[B]():(Q,I)=>{throw new Z2(`Response type '${B}' is not supported`,Z2.ERR_NOT_SUPPORT,I)})})})(new Response);var Hb9=async(A)=>{if(A==null)return 0;if(YA.isBlob(A))return A.size;if(YA.isSpecCompliantForm(A))return(await new Request(V5.origin,{method:"POST",body:A}).arrayBuffer()).byteLength;if(YA.isArrayBufferView(A)||YA.isArrayBuffer(A))return A.byteLength;if(YA.isURLSearchParams(A))A=A+"";if(YA.isString(A))return(await Vb9(A)).byteLength},zb9=async(A,B)=>{let Q=YA.toFiniteNumber(A.getContentLength());return Q==null?Hb9(B):Q},aPA=Y61&&(async(A)=>{let{url:B,method:Q,data:I,signal:G,cancelToken:D,timeout:Z,onDownloadProgress:Y,onUploadProgress:W,responseType:F,headers:J,withCredentials:C="same-origin",fetchOptions:X}=D61(A);F=F?(F+"").toLowerCase():"text";let V=cPA([G,D&&D.toAbortSignal()],Z),K,U=V&&V.unsubscribe&&(()=>{V.unsubscribe()}),N;try{if(W&&Kb9&&Q!=="get"&&Q!=="head"&&(N=await zb9(J,I))!==0){let O=new Request(B,{method:"POST",body:I,duplex:"half"}),S;if(YA.isFormData(I)&&(S=O.headers.get("content-type")))J.setContentType(S);if(O.body){let[f,n]=tx(N,eE(ex(W)));I=dL1(O.body,lPA,f,n)}}if(!YA.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:I,duplex:"half",credentials:q?C:void 0});let M=await fetch(K),R=uL1&&(F==="stream"||F==="response");if(uL1&&(Y||R&&U)){let O={};["status","statusText","headers"].forEach((g)=>{O[g]=M[g]});let S=YA.toFiniteNumber(M.headers.get("content-length")),[f,n]=Y&&tx(S,eE(ex(Y),!0))||[];M=new Response(dL1(M.body,lPA,f,()=>{n&&n(),U&&U()}),O)}F=F||"text";let T=await Z61[YA.findKey(Z61,F)||"text"](M,A);return!R&&U&&U(),await new Promise((O,S)=>{PH(O,S,{data:T,headers:eB.from(M.headers),status:M.status,statusText:M.statusText,config:A,request:K})})}catch(q){if(U&&U(),q&&q.name==="TypeError"&&/fetch/i.test(q.message))throw Object.assign(new Z2("Network Error",Z2.ERR_NETWORK,A,K),{cause:q.cause||q});throw Z2.from(q,q&&q.code,A,K)}});var pL1={http:hPA,xhr:pPA,fetch:aPA};YA.forEach(pL1,(A,B)=>{if(A){try{Object.defineProperty(A,"name",{value:B})}catch(Q){}Object.defineProperty(A,"adapterName",{value:B})}});var sPA=(A)=>`- ${A}`,wb9=(A)=>YA.isFunction(A)||A===null||A===!1,W61={getAdapter:(A)=>{A=YA.isArray(A)?A:[A];let{length:B}=A,Q,I,G={};for(let D=0;D<B;D++){Q=A[D];let Z;if(I=Q,!wb9(Q)){if(I=pL1[(Z=String(Q)).toLowerCase()],I===void 0)throw new Z2(`Unknown adapter '${Z}'`)}if(I)break;G[Z||"#"+D]=I}if(!I){let D=Object.entries(G).map(([Y,W])=>`adapter ${Y} `+(W===!1?"is not supported by the environment":"is not available in the build")),Z=B?D.length>1?`since :
572
572
  `+D.map(sPA).join(`
573
573
  `):" "+sPA(D[0]):"as no adapter specified";throw new Z2("There is no suitable adapter to dispatch the request "+Z,"ERR_NOT_SUPPORT")}return I},adapters:pL1};function cL1(A){if(A.cancelToken)A.cancelToken.throwIfRequested();if(A.signal&&A.signal.aborted)throw new fW(null,A)}function F61(A){if(cL1(A),A.headers=eB.from(A.headers),A.data=uc.call(A,A.transformRequest),["post","put","patch"].indexOf(A.method)!==-1)A.headers.setContentType("application/x-www-form-urlencoded",!1);return W61.getAdapter(A.adapter||rx.adapter)(A).then(function Q(I){return cL1(A),I.data=uc.call(A,A.transformResponse,I),I.headers=eB.from(I.headers),I},function Q(I){if(!pc(I)){if(cL1(A),I&&I.response)I.response.data=uc.call(A,A.transformResponse,I.response),I.response.headers=eB.from(I.response.headers)}return Promise.reject(I)})}var J61={};["object","boolean","number","function","string","symbol"].forEach((A,B)=>{J61[A]=function Q(I){return typeof I===A||"a"+(B<1?"n ":" ")+A}});var rPA={};J61.transitional=function A(B,Q,I){function G(D,Z){return"[Axios v"+aT+"] Transitional option '"+D+"'"+Z+(I?". "+I:"")}return(D,Z,Y)=>{if(B===!1)throw new Z2(G(Z," has been removed"+(Q?" in "+Q:"")),Z2.ERR_DEPRECATED);if(Q&&!rPA[Z])rPA[Z]=!0,console.warn(G(Z," has been deprecated since v"+Q+" and will be removed in the near future"));return B?B(D,Z,Y):!0}};J61.spelling=function A(B){return(Q,I)=>{return console.warn(`${I} is likely a misspelling of ${B}`),!0}};function Eb9(A,B,Q){if(typeof A!=="object")throw new Z2("options must be an object",Z2.ERR_BAD_OPTION_VALUE);let I=Object.keys(A),G=I.length;while(G-- >0){let D=I[G],Z=B[D];if(Z){let Y=A[D],W=Y===void 0||Z(Y,D,A);if(W!==!0)throw new Z2("option "+D+" must be "+W,Z2.ERR_BAD_OPTION_VALUE);continue}if(Q!==!0)throw new Z2("Unknown option "+D,Z2.ERR_BAD_OPTION)}}var rc={assertOptions:Eb9,validators:J61};var SH=rc.validators;class oc{constructor(A){this.defaults=A,this.interceptors={request:new zL1,response:new zL1}}async request(A,B){try{return await this._request(A,B)}catch(Q){if(Q instanceof Error){let I={};Error.captureStackTrace?Error.captureStackTrace(I):I=new Error;let G=I.stack?I.stack.replace(/^.+\n/,""):"";try{if(!Q.stack)Q.stack=G;else if(G&&!String(Q.stack).endsWith(G.replace(/^.+\n.+\n/,"")))Q.stack+=`
574
- `+G}catch(D){}}throw Q}}_request(A,B){if(typeof A==="string")B=B||{},B.url=A;else B=A||{};B=vX(this.defaults,B);let{transitional:Q,paramsSerializer:I,headers:G}=B;if(Q!==void 0)rc.assertOptions(Q,{silentJSONParsing:SH.transitional(SH.boolean),forcedJSONParsing:SH.transitional(SH.boolean),clarifyTimeoutError:SH.transitional(SH.boolean)},!1);if(I!=null)if(YA.isFunction(I))B.paramsSerializer={serialize:I};else rc.assertOptions(I,{encode:SH.function,serialize:SH.function},!0);if(B.allowAbsoluteUrls!==void 0);else if(this.defaults.allowAbsoluteUrls!==void 0)B.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls;else B.allowAbsoluteUrls=!0;rc.assertOptions(B,{baseUrl:SH.spelling("baseURL"),withXsrfToken:SH.spelling("withXSRFToken")},!0),B.method=(B.method||this.defaults.method||"get").toLowerCase();let D=G&&YA.merge(G.common,G[B.method]);G&&YA.forEach(["delete","get","head","post","put","patch","common"],(V)=>{delete G[V]}),B.headers=eB.concat(D,G);let Z=[],Y=!0;this.interceptors.request.forEach(function V(K){if(typeof K.runWhen==="function"&&K.runWhen(B)===!1)return;Y=Y&&K.synchronous,Z.unshift(K.fulfilled,K.rejected)});let W=[];this.interceptors.response.forEach(function V(K){W.push(K.fulfilled,K.rejected)});let F,J=0,C;if(!Y){let V=[F61.bind(this),void 0];V.unshift.apply(V,Z),V.push.apply(V,W),C=V.length,F=Promise.resolve(B);while(J<C)F=F.then(V[J++],V[J++]);return F}C=Z.length;let X=B;J=0;while(J<C){let V=Z[J++],K=Z[J++];try{X=V(X)}catch(U){K.call(this,U);break}}try{F=F61.call(this,X)}catch(V){return Promise.reject(V)}J=0,C=W.length;while(J<C)F=F.then(W[J++],W[J++]);return F}getUri(A){A=vX(this.defaults,A);let B=lT(A.baseURL,A.url,A.allowAbsoluteUrls);return cT(B,A.params,A.paramsSerializer)}}YA.forEach(["delete","get","head","options"],function A(B){oc.prototype[B]=function(Q,I){return this.request(vX(I||{},{method:B,url:Q,data:(I||{}).data}))}});YA.forEach(["post","put","patch"],function A(B){function Q(I){return function G(D,Z,Y){return this.request(vX(Y||{},{method:B,headers:I?{"Content-Type":"multipart/form-data"}:{},url:D,data:Z}))}}oc.prototype[B]=Q(),oc.prototype[B+"Form"]=Q(!0)});var tc=oc;class lL1{constructor(A){if(typeof A!=="function")throw new TypeError("executor must be a function.");let B;this.promise=new Promise(function I(G){B=G});let Q=this;this.promise.then((I)=>{if(!Q._listeners)return;let G=Q._listeners.length;while(G-- >0)Q._listeners[G](I);Q._listeners=null}),this.promise.then=(I)=>{let G,D=new Promise((Z)=>{Q.subscribe(Z),G=Z}).then(I);return D.cancel=function Z(){Q.unsubscribe(G)},D},A(function I(G,D,Z){if(Q.reason)return;Q.reason=new fW(G,D,Z),B(Q.reason)})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(A){if(this.reason){A(this.reason);return}if(this._listeners)this._listeners.push(A);else this._listeners=[A]}unsubscribe(A){if(!this._listeners)return;let B=this._listeners.indexOf(A);if(B!==-1)this._listeners.splice(B,1)}toAbortSignal(){let A=new AbortController,B=(Q)=>{A.abort(Q)};return this.subscribe(B),A.signal.unsubscribe=()=>this.unsubscribe(B),A.signal}static source(){let A;return{token:new lL1(function Q(I){A=I}),cancel:A}}}var oPA=lL1;function iL1(A){return function B(Q){return A.apply(null,Q)}}function nL1(A){return YA.isObject(A)&&A.isAxiosError===!0}var aL1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(aL1).forEach(([A,B])=>{aL1[B]=A});var tPA=aL1;function ePA(A){let B=new tc(A),Q=kc(tc.prototype.request,B);return YA.extend(Q,tc.prototype,B,{allOwnKeys:!0}),YA.extend(Q,B,null,{allOwnKeys:!0}),Q.create=function I(G){return ePA(vX(A,G))},Q}var mQ=ePA(rx);mQ.Axios=tc;mQ.CanceledError=fW;mQ.CancelToken=oPA;mQ.isCancel=pc;mQ.VERSION=aT;mQ.toFormData=mq;mQ.AxiosError=Z2;mQ.Cancel=mQ.CanceledError;mQ.all=function A(B){return Promise.all(B)};mQ.spread=iL1;mQ.isAxiosError=nL1;mQ.mergeConfig=vX;mQ.AxiosHeaders=eB;mQ.formToJSON=(A)=>Q61(YA.isHTMLForm(A)?new FormData(A):A);mQ.getAdapter=W61.getAdapter;mQ.HttpStatusCode=tPA;mQ.default=mQ;var K5=mQ;var f31=F1(xjA(),1);var Sm9={visibilityState:"visible",documentElement:{lang:"en"},addEventListener:(A,B)=>{}},_m9={document:Sm9,location:{href:"node://localhost",pathname:"/"},addEventListener:(A,B)=>{if(A==="beforeunload")process.on("exit",()=>{if(typeof B==="function")B({});else B.handleEvent({})})},focus:()=>{},innerHeight:768,innerWidth:1024},jm9={sendBeacon:(A,B)=>{return!0},userAgent:"Mozilla/5.0 (Node.js) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0",language:"en-US"};if(typeof window==="undefined")global.window=_m9;if(typeof navigator==="undefined")global.navigator=jm9;import*as Wl from"path";import{homedir as ym9}from"os";import{existsSync as fjA,mkdirSync as vjA,readdirSync as km9,readFileSync as xm9,writeFileSync as fm9,unlinkSync as vm9}from"fs";var QP=Wl.join(ym9(),".claude","statsig");try{vjA(QP,{recursive:!0})}catch(A){m1(A)}class yR1{cache=new Map;ready=!1;constructor(){try{if(!fjA(QP))vjA(QP,{recursive:!0});let A=km9(QP);for(let B of A){let Q=decodeURIComponent(B),I=xm9(Wl.join(QP,B),"utf8");this.cache.set(Q,I)}this.ready=!0}catch(A){m1(A),this.ready=!0}}isReady(){return this.ready}isReadyResolver(){return this.ready?Promise.resolve():null}getProviderName(){return"FileSystemStorageProvider"}getItem(A){return this.cache.get(A)??null}setItem(A,B){this.cache.set(A,B);try{let Q=encodeURIComponent(A);fm9(Wl.join(QP,Q),B,"utf8")}catch(Q){m1(Q)}}removeItem(A){this.cache.delete(A);let B=encodeURIComponent(A),Q=Wl.join(QP,B);if(!fjA(Q))return;try{vm9(Q)}catch(I){m1(I)}}getAllKeys(){return Array.from(this.cache.keys())}}var bjA="https://e531a1d9ec1de9064fae9d4affb0b0f4@o1158394.ingest.us.sentry.io/4508259541909504",gjA="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var hjA="claude-code-20250219",u61="interleaved-thinking-2025-05-14";var p61="user:inference";var IP="oauth-2025-04-20",mjA={REDIRECT_PORT:54545,SCOPES:["org:create_api_key","user:profile","user:inference"]},bm9={...mjA,BASE_API_URL:"https://api.anthropic.com",CONSOLE_AUTHORIZE_URL:"https://console.anthropic.com/oauth/authorize",CLAUDE_AI_AUTHORIZE_URL:"https://claude.ai/oauth/authorize",TOKEN_URL:"https://console.anthropic.com/v1/oauth/token",API_KEY_URL:"https://api.anthropic.com/api/oauth/claude_cli/create_api_key",ROLES_URL:"https://api.anthropic.com/api/oauth/claude_cli/roles",CONSOLE_SUCCESS_URL:"https://console.anthropic.com/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code",CLAUDEAI_SUCCESS_URL:"https://console.anthropic.com/oauth/code/success?app=claude-code",MANUAL_REDIRECT_URL:"https://console.anthropic.com/oauth/code/callback",CLIENT_ID:"9d1c250a-e61b-44d9-88ed-5944d1962f5e"};var gm9={...mjA,BASE_API_URL:"http://localhost:3000",CONSOLE_AUTHORIZE_URL:"http://localhost:3000/oauth/authorize",CLAUDE_AI_AUTHORIZE_URL:"http://localhost:4000/oauth/authorize",TOKEN_URL:"http://localhost:3000/v1/oauth/token",API_KEY_URL:"http://localhost:3000/api/oauth/claude_cli/create_api_key",ROLES_URL:"http://localhost:3000/api/oauth/claude_cli/roles",CONSOLE_SUCCESS_URL:"http://localhost:3000/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code",CLAUDEAI_SUCCESS_URL:"http://localhost:3000/oauth/code/success?app=claude-code",MANUAL_REDIRECT_URL:"http://localhost:3000/oauth/code/callback",CLIENT_ID:"22422756-60c9-4084-8eb7-27705fd5cf9a"},FB=process.env.USE_TEST_OAUTH==="1"&&gm9||!1||bm9;var x0="Claude Code",djA="https://claude.ai/code";function ujA(A,B=300000){let Q=new Map,I=(...G)=>{let D=JSON.stringify(G),Z=Q.get(D),Y=Date.now();if(!Z)Q.set(D,{value:A(...G),timestamp:Y,refreshing:!1});if(Z&&Y-Z.timestamp>B&&!Z.refreshing)return Z.refreshing=!0,Promise.resolve().then(()=>{let W=A(...G);Q.set(D,{value:W,timestamp:Date.now(),refreshing:!1})}).catch((W)=>{m1(W instanceof Error?W:new Error(String(W)));let F=Q.get(D);if(F)F.refreshing=!1}),Z.value;return Q.get(D).value};return I.cache={clear:()=>Q.clear()},I}function pjA(){let A=`${x0}-credentials`;return{name:"keychain",read(){try{let B=cG(`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 I=JSON.stringify(B).replace(/"/g,"\\\""),G=`security add-generic-password -U -a $USER -s "${A}" -w "${I}"`;return cG(G),{success:!0}}catch(Q){return{success:!1}}},delete(){try{return cG(`security delete-generic-password -a $USER -s "${A}"`),!0}catch(B){return!1}}}}import{join as cjA}from"path";import{homedir as hm9}from"os";function kR1(){let A=cjA(hm9(),".claude"),B=".credentials.json",Q=cjA(A,".credentials.json");return{name:"plaintext",read(){if(b1().existsSync(Q))try{let I=b1().readFileSync(Q,{encoding:"utf8"});return JSON.parse(I)}catch(I){return null}return null},update(I){try{if(!b1().existsSync(A))b1().mkdirSync(A);return b1().writeFileSync(Q,JSON.stringify(I),{encoding:"utf8",flush:!1}),b1().chmodSync(Q,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch(G){return{success:!1}}},delete(){if(b1().existsSync(Q))try{return b1().unlinkSync(Q),!0}catch(I){return!1}return!0}}}function mm9(A){let B=kR1();return{name:`${A.name}-with-${B.name}-fallback`,read(){let Q=A.read();if(Q!=null)return Q;return B.read()||{}},update(Q){let I=A.update(Q);if(I.success)return B.delete(),I;let G=B.update(Q);if(G.success)return{success:!0,warning:G.warning};return{success:!1}},delete(){let Q=A.delete(),I=B.delete();return Q||I}}}function GP(){if(process.platform==="darwin"){let A=pjA();return mm9(A)}return kR1()}async function ljA(A){let Q=VA().oauthAccount?.accountUuid,I=aI(A);if(!Q||!I)return;let G=`${FB.BASE_API_URL}/api/claude_cli_profile`;try{return(await K5.get(G,{headers:{"x-api-key":I,"anthropic-beta":IP},params:{account_uuid:Q}})).data}catch(D){m1(D)}}async function ijA(){let A=`${FB.BASE_API_URL}/api/oauth/profile`,B=A3();if(!B?.accessToken)return;try{return(await K5.get(A,{headers:{Authorization:`Bearer ${B.accessToken}`,"Content-Type":"application/json"}})).data}catch(Q){m1(Q)}}function vW(A){return Boolean(A?.includes(p61))}function c61(A){return A?.split(" ").filter(Boolean)??[]}function xR1({codeChallenge:A,state:B,isManual:Q,loginWithClaudeAi:I}){let G=I?FB.CLAUDE_AI_AUTHORIZE_URL:FB.CONSOLE_AUTHORIZE_URL,D=new URL(G);return D.searchParams.append("code","true"),D.searchParams.append("client_id",FB.CLIENT_ID),D.searchParams.append("response_type","code"),D.searchParams.append("redirect_uri",Q?FB.MANUAL_REDIRECT_URL:`http://localhost:${FB.REDIRECT_PORT}/callback`),D.searchParams.append("scope",FB.SCOPES.join(" ")),D.searchParams.append("code_challenge",A),D.searchParams.append("code_challenge_method","S256"),D.searchParams.append("state",B),D.toString()}async function njA(A,B,Q,I=!1){let G={grant_type:"authorization_code",code:A,redirect_uri:I?FB.MANUAL_REDIRECT_URL:`http://localhost:${FB.REDIRECT_PORT}/callback`,client_id:FB.CLIENT_ID,code_verifier:Q,state:B},D=await K5.post(FB.TOKEN_URL,G,{headers:{"Content-Type":"application/json"}});if(D.status!==200)throw new Error(D.status===401?"Authentication failed: Invalid authorization code":`Token exchange failed (${D.status}): ${D.statusText}`);return D.data}async function ajA(A){let B={grant_type:"refresh_token",refresh_token:A,client_id:FB.CLIENT_ID};try{let Q=await K5.post(FB.TOKEN_URL,B,{headers:{"Content-Type":"application/json"}});if(Q.status!==200)throw new Error(`Token refresh failed: ${Q.statusText}`);let I=Q.data,{access_token:G,refresh_token:D=A,expires_in:Z}=I,Y=Date.now()+Z*1000,W=c61(I.scope);return j1("tengu_oauth_token_refresh_success",{}),{accessToken:G,refreshToken:D,expiresAt:Y,scopes:W}}catch(Q){throw j1("tengu_oauth_token_refresh_failure",{}),Q}}async function sjA(A){let B=await K5.get(FB.ROLES_URL,{headers:{Authorization:`Bearer ${A}`}});if(B.status!==200)throw new Error(`Failed to fetch user roles: ${B.statusText}`);let Q=B.data,I=VA();if(!I.oauthAccount)throw new Error("OAuth account information not found in config");I.oauthAccount.organizationRole=Q.organization_role,I.oauthAccount.workspaceRole=Q.workspace_role,I.oauthAccount.organizationName=Q.organization_name,T0(I),j1("tengu_oauth_roles_stored",{org_role:Q.organization_role})}async function rjA(A){try{let B=await K5.post(FB.API_KEY_URL,null,{headers:{Authorization:`Bearer ${A}`}}),Q=B.data?.raw_key;if(Q)return ojA(Q),j1("tengu_oauth_api_key",{status:"success",statusCode:B.status}),Q;return null}catch(B){throw j1("tengu_oauth_api_key",{status:"failure",error:B instanceof Error?B.message:String(B)}),B}}function l61(A){return Date.now()+300000>=A}async function dm9(){if(!C6())return"not_max";let A=await ijA();if(!A)return"not_max";switch(A.organization.rate_limit_tier){case"default_claude_max_5x":return"5x";case"default_claude_max_20x":return"20x";default:return"not_max"}}async function nq(){let A=await dm9(),B=VA();return T0({...B,claudeMaxTier:A}),A}var MyA=F1(rR1(),1);import{join as _d9}from"path";import{homedir as jd9}from"os";var yd9=300000;function IU(){let A=process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX,B=n7().apiKeyHelper,Q=process.env.ANTHROPIC_AUTH_TOKEN||B;return!(A||Q)}function aI(A){let{key:B}=oR1(A);return B}function oR1(A){let B=VA();if(A&&process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};if(!1==="true"){if(!process.env.ANTHROPIC_API_KEY)throw new Error("ANTHROPIC_API_KEY env var is required");return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"}}let Q=Nf();if(Q)return{key:Q,source:"apiKeyHelper"};return tR1()}function kd9(){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;kX(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${A}`)}return yd9}var Nf=ujA(()=>{let B=n7().apiKeyHelper;if(!B)return null;try{let Q=cG(B);if(!Q)return null;return Q.toString().trim()}catch(Q){let I=MA.red("Error getting API key from apiKeyHelper (in settings or ~/.claude.json):");if(Q instanceof Error&&"stderr"in Q)console.error(I,String(Q.stderr));else if(Q instanceof Error)console.error(I,Q.message);else console.error(I,Q);return null}},kd9());function LyA(){Nf.cache.clear()}function FP(A){return A.slice(-20)}var tR1=b0(()=>{if(process.platform==="darwin")try{let B=cG(`security find-generic-password -a $USER -w -s "${x0}"`);if(B)return{key:B,source:"/login managed key"}}catch(B){m1(B)}return{key:VA().primaryApiKey??null,source:"/login managed key"}});function xd9(A){return/^[a-zA-Z0-9-_]+$/.test(A)}function ojA(A){if(!xd9(A))throw new Error("Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.");let B=VA();if(TyA(),process.platform==="darwin")try{cG(`security add-generic-password -a $USER -s "${x0}" -w ${A}`)}catch(I){m1(I),B.primaryApiKey=A}else B.primaryApiKey=A;if(!B.customApiKeyResponses)B.customApiKeyResponses={approved:[],rejected:[]};if(!B.customApiKeyResponses.approved)B.customApiKeyResponses.approved=[];let Q=FP(A);if(!B.customApiKeyResponses.approved.includes(Q))B.customApiKeyResponses.approved.push(Q);T0(B),tR1.cache.clear?.()}function RyA(A){let B=VA(),Q=FP(A);return B.customApiKeyResponses?.approved?.includes(Q)??!1}function OyA(){TyA();let A=VA();A.primaryApiKey=void 0,T0(A),tR1.cache.clear?.()}function TyA(){if(process.platform==="darwin")try{cG(`security delete-generic-password -a $USER -s "${x0}"`)}catch(A){m1(A)}}function fd9(A){if(A)return A.includes(p61);return!0}function eR1(A){if(!fd9(A.scopes))return{success:!0};try{let B=GP(),Q=B.read()||{};Q.claudeAiOauth={accessToken:A.accessToken,refreshToken:A.refreshToken,expiresAt:A.expiresAt,scopes:A.scopes};let I=B.update(Q);return A3.cache?.clear?.(),yH.cache?.clear?.(),GU.cache?.clear?.(),I}catch(B){return m1(B),{success:!1,warning:"Failed to save OAuth tokens"}}}var A3=b0(()=>{try{let Q=GP().read()?.claudeAiOauth;if(!Q?.accessToken)return null;return Q}catch(A){return m1(A),null}});async function AO1(A=0){let Q=A3();if(!Q?.refreshToken||!l61(Q.expiresAt))return!1;if(A3.cache?.clear?.(),Q=A3(),!Q?.refreshToken||!l61(Q.expiresAt))return!1;let I=_d9(jd9(),".claude");b1().mkdirSync(I);let D;try{D=await MyA.lock(I)}catch(Z){if(Z.code==="ELOCKED"){if(A<5)return await new Promise((Y)=>setTimeout(Y,1000+Math.random()*1000)),AO1(A+1);return!1}return m1(Z),!1}try{if(A3.cache?.clear?.(),Q=A3(),!Q?.refreshToken||!l61(Q.expiresAt))return!1;let Z=await ajA(Q.refreshToken);if(eR1({...Z,scopes:Q.scopes}),C6())nq();return A3.cache?.clear?.(),!0}catch(Z){return m1(Z instanceof Error?Z:new Error(String(Z))),!1}finally{await D()}}function C6(){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX)return!1;let A=A3();return vW(A?.scopes)}function eD(){return process.env.CLAUDE_CODE_USE_BEDROCK?"bedrock":process.env.CLAUDE_CODE_USE_VERTEX?"vertex":"firstParty"}function gX(){return eD()}var GU=b0(async()=>{let A=[];if(C6())A.push(IP);return A});function vd9(A){let B=eD();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 yH=b0(async(A)=>{let B=[hjA];if(C6())B.push(IP);if(!JP(process.env.DISABLE_INTERLEAVED_THINKING)&&vd9(A))B.push(u61);if(process.env.ANTHROPIC_BETAS)B.push(...process.env.ANTHROPIC_BETAS.split(",").map((Q)=>Q.trim()).filter(Boolean));return B});var CP={firstParty:"claude-3-7-sonnet-20250219",bedrock:"us.anthropic.claude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219"},XP={firstParty:"claude-3-5-sonnet-20241022",bedrock:"anthropic.claude-3-5-sonnet-20241022-v2:0",vertex:"claude-3-5-sonnet-v2@20241022"},Kl={firstParty:"claude-3-5-haiku-20241022",bedrock:"us.anthropic.claude-3-5-haiku-20241022-v1:0",vertex:"claude-3-5-haiku@20241022"},hX={firstParty:"claude-sonnet-4-20250514",bedrock:"us.anthropic.claude-sonnet-4-20250514-v1:0",vertex:"claude-sonnet-4@20250514"},DU={firstParty:"claude-opus-4-20250514",bedrock:"us.anthropic.claude-opus-4-20250514-v1:0",vertex:"claude-opus-4@20250514"};var _31=F1(W40(),1);var F40=b0(async function(){let A=process.env.AWS_REGION||"us-east-1",B=new _31.BedrockClient({region:A}),Q=new _31.ListInferenceProfilesCommand;try{return((await B.send(Q)).inferenceProfileSummaries||[]).filter((Y)=>Y.inferenceProfileId?.includes("anthropic")).map((Y)=>Y.inferenceProfileId).filter(Boolean)}catch(I){throw m1(I),I}});function Lv(A,B){return A.find((Q)=>Q.includes(B))??null}function j31(A){let B=[],Q=!1;async function I(){if(Q)return;if(B.length===0)return;Q=!0;while(B.length>0){let{args:G,resolve:D,reject:Z,context:Y}=B.shift();try{let W=await A.apply(Y,G);D(W)}catch(W){Z(W)}}if(Q=!1,B.length>0)I()}return function(...G){return new Promise((D,Z)=>{B.push({args:G,resolve:D,reject:Z,context:this}),I()})}}function y31(A){return{haiku35:Kl[A],sonnet35:XP[A],sonnet37:CP[A],sonnet40:hX[A],opus40:DU[A]}}async function $E4(){let A;try{A=await F40()}catch(Z){return m1(Z),y31("bedrock")}if(!A?.length)return y31("bedrock");let B=Lv(A,"claude-3-5-haiku-20241022"),Q=Lv(A,"claude-3-5-sonnet-20241022"),I=Lv(A,"claude-3-7-sonnet-20250219"),G=Lv(A,"claude-sonnet-4-20250514"),D=Lv(A,"claude-opus-4-20250514");return{haiku35:B||Kl.bedrock,sonnet35:Q||XP.bedrock,sonnet37:I||CP.bedrock,sonnet40:G||hX.bedrock,opus40:D||DU.bedrock}}var qE4=j31(async()=>{if(a21()!==null)return;try{let A=await $E4();gU1(A)}catch(A){m1(A)}});function ME4(){if(a21()!==null)return;if(eD()!=="bedrock"){gU1(y31(eD()));return}qE4()}function xJ(){let A=a21();if(A===null)return ME4(),y31(eD());return A}var C40=hX,$j1=C40.firstParty;function eH(){return process.env.ANTHROPIC_SMALL_FAST_MODEL||xJ().haiku35}function k31(A){return A===xJ().opus40}function Rv(){let A=QDA();if(A!==void 0)return A;return process.env.ANTHROPIC_MODEL||n7().model||void 0}var x31=b0(async function(){try{let A=await Az("tengu-capable-model-config",C40);return T0({...VA(),statsigModel:A}),A[eD()]}catch(A){return m1(A),$j1}});async function WQ(){let A=Rv();if(A!==void 0&&A!==null)return gP(A);if(A===null&&n21())return bP();return Ei()}async function Ov(){return await WQ()===xJ().sonnet37}function qj1(){if(eD()==="bedrock")return xJ().sonnet37;return xJ().sonnet40}function Ei(){if(C6())return xJ().opus40;return qj1()}function bP(){return qj1()}function X40(A){let B=n7().model,Q=B?gP(B):Ei();return A!==Q}function tX(A){let B=A.match(/(claude-(\d+-\d+-)?\w+)/);if(B&&B[1])return B[1];return A}function LE4(){if(!C6())return"not_max";let{claudeMaxTier:A}=VA();if(!A||A==="not_max")return nq(),"5x";return A}function Ui(A){return A===xJ().sonnet40?"Claude Sonnet 4":"Claude Sonnet 3.7"}function vP(){if(!C6())return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${Ui(qj1())}) · $3/$15 per Mtok`};else return{value:null,label:"Default (recommended)",description:"Use the best available model for Max usage limits"}}var V40={value:"sonnet",label:"Sonnet",description:"Claude Sonnet 4 for daily use · $3/$15 per Mtok"},Nj1={value:"opus",label:"Opus",description:"Claude Opus 4 for complex tasks · $15/$75 per Mtok"},RE4={value:"opus",label:"Opus",description:"Claude Opus 4 for complex tasks"},J40={value:"sonnet",label:"Sonnet",description:"Claude Sonnet 4 for daily use"};function OE4(){if(!C6()){if(eD()==="bedrock")return[vP(),V40,Nj1];return[vP(),Nj1]}else if(LE4()==="20x")return[vP(),RE4,J40];else return[vP(),J40]}function K40(){let A=OE4(),B=null,Q=Rv(),I=i21();if(Q!==void 0&&Q!==null)B=Q;else if(I!==null)B=I;if(B===null||A.some((G)=>G.value===B))return A;if(H40(B))switch(B){case"sonnet":A.push(V40);break;case"opus":A.push(Nj1);break;default:break}else A.push({value:B,label:B,description:"Custom model"});return A}function H40(A){return["sonnet","opus"].includes(A)}function gP(A){let B=A.toLowerCase().trim();if(H40(B)){if(B==="sonnet")return xJ().sonnet40;else if(B==="opus")return xJ().opus40;return!1}return B}function hP(A){if(A===null){if(C6())return"Default (Use the best available model for Max usage limits)";return`Default (${Ei()})`}let B=gP(A);return A===B?B:`${A} (${B})`}var z40={},Tv=null,PM=b0(async()=>{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=await Pv(),B={networkConfig:{api:"https://statsig.anthropic.com/v1/"},environment:{tier:["test","dev"].includes("production")?"development":"production"},logLevel:f31.LogLevel.None,storageProvider:new yR1};return Tv=new f31.StatsigClient(gjA,A,B),Tv.on("error",()=>{K5.head("https://api.anthropic.com/api/hello").catch(()=>{})}),await Tv.initializeAsync(),process.on("beforeExit",async()=>{await Tv?.flush()}),process.on("exit",()=>{Tv?.flush()}),Tv});async function j1(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):await WQ(),[I,G,D,Z]=await Promise.all([PM(),yH(Q),uA.getPackageManagers(),uA.getRuntimes()]);if(!I)return;let Y={...B,model:Q,sessionId:Q5,userType:"external",...G.length>0?{betas:G.join(",")}:{},env:JSON.stringify({platform:uA.platform,nodeVersion:uA.nodeVersion,terminal:uA.terminal,packageManagers:D.join(","),runtimes:Z.join(","),isRunningWithBun:uA.isRunningWithBun(),isCi:!1==="true",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:C6(),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.1"}.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||"",...!1},W={eventName:A,metadata:Y};I.logEvent(W),await I.flush()}catch(Q){}}var Ni=b0(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 PM();if(!B)return!1;let Q=B.checkGate(A);return z40[A]=Q,Q});function w40(){return{...z40}}var vi5=b0(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 PM();if(!Q)return B;let I=Q.getExperiment(A);if(Object.keys(I.value).length===0)return B;return I.value});async function Az(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 PM();if(!Q)return B;let I=Q.getDynamicConfig(A);if(Object.keys(I.value).length===0)return B;return I.value}var E40=b0(Az);import{PassThrough as SE4}from"stream";function N40(A,B){let Q=[],I="";for(let G of A)if([...I].length<B)I+=G;else Q.push(I),I=G;if(I)Q.push(I);return Q}function SM(A){if(A<60000){let G=(A/1000).toFixed(1);return`${G.endsWith(".0")?G.slice(0,-2):G}s`}let B=Math.floor(A/3600000),Q=Math.floor(A%3600000/60000),I=(A%60000/1000).toFixed(1);if(B>0)return`${B}h ${Q}m ${I}s`;if(Q>0)return`${Q}m ${I}s`;return`${I}s`}function o7(A){let B=A>=1000;return new Intl.NumberFormat("en",{notation:"compact",minimumFractionDigits:B?1:0,maximumFractionDigits:1}).format(A).toLowerCase()}function U40(A,B={}){let{style:Q="narrow",numeric:I="always",now:G=new Date}=B,D=A.getTime()-G.getTime(),Z=Math.trunc(D/1000),Y=[{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:F,seconds:J,shortUnit:C}of Y)if(Math.abs(Z)>=J){let X=Math.trunc(Z/J);if(Q==="narrow"&&J<86400)return Z<0?`${Math.abs(X)}${C} ago`:`in ${X}${C}`;return new Intl.RelativeTimeFormat("en",{style:"long",numeric:I}).format(X,F)}if(Q==="narrow")return Z<=0?"0s ago":"in 0s";return new Intl.RelativeTimeFormat("en",{style:Q,numeric:I}).format(0,"second")}function Mj1(A,B={}){let{now:Q=new Date,...I}=B;if(A>Q)return U40(A,{...I,now:Q});return U40(A,{...I,numeric:"always",now:Q})}function Sv(A){if(!A)return;let B=new Date(A*1000),Q=B.getMinutes();return B.toLocaleTimeString([],{hour:"numeric",minute:Q===0?void 0:"2-digit",hour12:!0}).replace(/ ([AP]M)/i,(G,D)=>D.toLowerCase())}var _40=F1(O40(),1),T40=137,P40=143;function S40(A){let B=null,Q="";A.on("data",(G)=>{if(B)B.write(G);else Q+=G});let I=()=>Q;return{get:I,asStream(){return B=new SE4({highWaterMark:10485760}),B.write(I()),Q="",B}}}function j40(A,B,Q){let I="running",G,D=S40(A.stdout),Z=S40(A.stderr),Y=(F)=>{if(I="killed",A.pid)_40.default(A.pid,"SIGKILL")},W=new Promise((F)=>{let J=()=>Y(),C=null;function X(){if(C)clearTimeout(C),C=null;B.removeEventListener("abort",J)}B.addEventListener("abort",J,{once:!0}),new Promise((V)=>{let K=Y;Y=(U)=>{K(),V(U||T40)},C=setTimeout(()=>{Y(P40)},Q),A.on("close",(U,N)=>{V(U!=null?U:N==="SIGTERM"?144:1)}),A.on("error",()=>V(1))}).then((V)=>{if(X(),I=="running")I="completed";let K={code:V,stdout:D.get(),stderr:Z.get(),interrupted:V===T40,backgroundTaskId:G};if(V==P40)K.stderr=[`Command timed out after ${SM(Q)}`,K.stderr].filter(Boolean).join(" ");F(K)})});return{background:(F)=>{if(I=="running")return G=F,I="backgrounded",{stdoutStream:D.asStream(),stderrStream:Z.asStream()};else return null},kill:()=>Y(),result:W}}function y40(A){return{background:()=>null,kill:()=>{},result:Promise.resolve({code:145,stdout:"",stderr:"Command aborted before execution",interrupted:!0,backgroundTaskId:A})}}var Rj1=F1(Mp(),1);import*as k40 from"os";import*as x40 from"path";class f40{profilePath;defaultProfile=`(version 1)
574
+ `+G}catch(D){}}throw Q}}_request(A,B){if(typeof A==="string")B=B||{},B.url=A;else B=A||{};B=vX(this.defaults,B);let{transitional:Q,paramsSerializer:I,headers:G}=B;if(Q!==void 0)rc.assertOptions(Q,{silentJSONParsing:SH.transitional(SH.boolean),forcedJSONParsing:SH.transitional(SH.boolean),clarifyTimeoutError:SH.transitional(SH.boolean)},!1);if(I!=null)if(YA.isFunction(I))B.paramsSerializer={serialize:I};else rc.assertOptions(I,{encode:SH.function,serialize:SH.function},!0);if(B.allowAbsoluteUrls!==void 0);else if(this.defaults.allowAbsoluteUrls!==void 0)B.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls;else B.allowAbsoluteUrls=!0;rc.assertOptions(B,{baseUrl:SH.spelling("baseURL"),withXsrfToken:SH.spelling("withXSRFToken")},!0),B.method=(B.method||this.defaults.method||"get").toLowerCase();let D=G&&YA.merge(G.common,G[B.method]);G&&YA.forEach(["delete","get","head","post","put","patch","common"],(V)=>{delete G[V]}),B.headers=eB.concat(D,G);let Z=[],Y=!0;this.interceptors.request.forEach(function V(K){if(typeof K.runWhen==="function"&&K.runWhen(B)===!1)return;Y=Y&&K.synchronous,Z.unshift(K.fulfilled,K.rejected)});let W=[];this.interceptors.response.forEach(function V(K){W.push(K.fulfilled,K.rejected)});let F,J=0,C;if(!Y){let V=[F61.bind(this),void 0];V.unshift.apply(V,Z),V.push.apply(V,W),C=V.length,F=Promise.resolve(B);while(J<C)F=F.then(V[J++],V[J++]);return F}C=Z.length;let X=B;J=0;while(J<C){let V=Z[J++],K=Z[J++];try{X=V(X)}catch(U){K.call(this,U);break}}try{F=F61.call(this,X)}catch(V){return Promise.reject(V)}J=0,C=W.length;while(J<C)F=F.then(W[J++],W[J++]);return F}getUri(A){A=vX(this.defaults,A);let B=lT(A.baseURL,A.url,A.allowAbsoluteUrls);return cT(B,A.params,A.paramsSerializer)}}YA.forEach(["delete","get","head","options"],function A(B){oc.prototype[B]=function(Q,I){return this.request(vX(I||{},{method:B,url:Q,data:(I||{}).data}))}});YA.forEach(["post","put","patch"],function A(B){function Q(I){return function G(D,Z,Y){return this.request(vX(Y||{},{method:B,headers:I?{"Content-Type":"multipart/form-data"}:{},url:D,data:Z}))}}oc.prototype[B]=Q(),oc.prototype[B+"Form"]=Q(!0)});var tc=oc;class lL1{constructor(A){if(typeof A!=="function")throw new TypeError("executor must be a function.");let B;this.promise=new Promise(function I(G){B=G});let Q=this;this.promise.then((I)=>{if(!Q._listeners)return;let G=Q._listeners.length;while(G-- >0)Q._listeners[G](I);Q._listeners=null}),this.promise.then=(I)=>{let G,D=new Promise((Z)=>{Q.subscribe(Z),G=Z}).then(I);return D.cancel=function Z(){Q.unsubscribe(G)},D},A(function I(G,D,Z){if(Q.reason)return;Q.reason=new fW(G,D,Z),B(Q.reason)})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(A){if(this.reason){A(this.reason);return}if(this._listeners)this._listeners.push(A);else this._listeners=[A]}unsubscribe(A){if(!this._listeners)return;let B=this._listeners.indexOf(A);if(B!==-1)this._listeners.splice(B,1)}toAbortSignal(){let A=new AbortController,B=(Q)=>{A.abort(Q)};return this.subscribe(B),A.signal.unsubscribe=()=>this.unsubscribe(B),A.signal}static source(){let A;return{token:new lL1(function Q(I){A=I}),cancel:A}}}var oPA=lL1;function iL1(A){return function B(Q){return A.apply(null,Q)}}function nL1(A){return YA.isObject(A)&&A.isAxiosError===!0}var aL1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(aL1).forEach(([A,B])=>{aL1[B]=A});var tPA=aL1;function ePA(A){let B=new tc(A),Q=kc(tc.prototype.request,B);return YA.extend(Q,tc.prototype,B,{allOwnKeys:!0}),YA.extend(Q,B,null,{allOwnKeys:!0}),Q.create=function I(G){return ePA(vX(A,G))},Q}var mQ=ePA(rx);mQ.Axios=tc;mQ.CanceledError=fW;mQ.CancelToken=oPA;mQ.isCancel=pc;mQ.VERSION=aT;mQ.toFormData=mq;mQ.AxiosError=Z2;mQ.Cancel=mQ.CanceledError;mQ.all=function A(B){return Promise.all(B)};mQ.spread=iL1;mQ.isAxiosError=nL1;mQ.mergeConfig=vX;mQ.AxiosHeaders=eB;mQ.formToJSON=(A)=>Q61(YA.isHTMLForm(A)?new FormData(A):A);mQ.getAdapter=W61.getAdapter;mQ.HttpStatusCode=tPA;mQ.default=mQ;var K5=mQ;var f31=F1(xjA(),1);var Sm9={visibilityState:"visible",documentElement:{lang:"en"},addEventListener:(A,B)=>{}},_m9={document:Sm9,location:{href:"node://localhost",pathname:"/"},addEventListener:(A,B)=>{if(A==="beforeunload")process.on("exit",()=>{if(typeof B==="function")B({});else B.handleEvent({})})},focus:()=>{},innerHeight:768,innerWidth:1024},jm9={sendBeacon:(A,B)=>{return!0},userAgent:"Mozilla/5.0 (Node.js) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0",language:"en-US"};if(typeof window==="undefined")global.window=_m9;if(typeof navigator==="undefined")global.navigator=jm9;import*as Wl from"path";import{homedir as ym9}from"os";import{existsSync as fjA,mkdirSync as vjA,readdirSync as km9,readFileSync as xm9,writeFileSync as fm9,unlinkSync as vm9}from"fs";var QP=Wl.join(ym9(),".claude","statsig");try{vjA(QP,{recursive:!0})}catch(A){m1(A)}class yR1{cache=new Map;ready=!1;constructor(){try{if(!fjA(QP))vjA(QP,{recursive:!0});let A=km9(QP);for(let B of A){let Q=decodeURIComponent(B),I=xm9(Wl.join(QP,B),"utf8");this.cache.set(Q,I)}this.ready=!0}catch(A){m1(A),this.ready=!0}}isReady(){return this.ready}isReadyResolver(){return this.ready?Promise.resolve():null}getProviderName(){return"FileSystemStorageProvider"}getItem(A){return this.cache.get(A)??null}setItem(A,B){this.cache.set(A,B);try{let Q=encodeURIComponent(A);fm9(Wl.join(QP,Q),B,"utf8")}catch(Q){m1(Q)}}removeItem(A){this.cache.delete(A);let B=encodeURIComponent(A),Q=Wl.join(QP,B);if(!fjA(Q))return;try{vm9(Q)}catch(I){m1(I)}}getAllKeys(){return Array.from(this.cache.keys())}}var bjA="https://e531a1d9ec1de9064fae9d4affb0b0f4@o1158394.ingest.us.sentry.io/4508259541909504",gjA="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var hjA="claude-code-20250219",u61="interleaved-thinking-2025-05-14";var p61="user:inference";var IP="oauth-2025-04-20",mjA={REDIRECT_PORT:54545,SCOPES:["org:create_api_key","user:profile","user:inference"]},bm9={...mjA,BASE_API_URL:"https://api.anthropic.com",CONSOLE_AUTHORIZE_URL:"https://console.anthropic.com/oauth/authorize",CLAUDE_AI_AUTHORIZE_URL:"https://claude.ai/oauth/authorize",TOKEN_URL:"https://console.anthropic.com/v1/oauth/token",API_KEY_URL:"https://api.anthropic.com/api/oauth/claude_cli/create_api_key",ROLES_URL:"https://api.anthropic.com/api/oauth/claude_cli/roles",CONSOLE_SUCCESS_URL:"https://console.anthropic.com/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code",CLAUDEAI_SUCCESS_URL:"https://console.anthropic.com/oauth/code/success?app=claude-code",MANUAL_REDIRECT_URL:"https://console.anthropic.com/oauth/code/callback",CLIENT_ID:"9d1c250a-e61b-44d9-88ed-5944d1962f5e"};var gm9={...mjA,BASE_API_URL:"http://localhost:3000",CONSOLE_AUTHORIZE_URL:"http://localhost:3000/oauth/authorize",CLAUDE_AI_AUTHORIZE_URL:"http://localhost:4000/oauth/authorize",TOKEN_URL:"http://localhost:3000/v1/oauth/token",API_KEY_URL:"http://localhost:3000/api/oauth/claude_cli/create_api_key",ROLES_URL:"http://localhost:3000/api/oauth/claude_cli/roles",CONSOLE_SUCCESS_URL:"http://localhost:3000/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code",CLAUDEAI_SUCCESS_URL:"http://localhost:3000/oauth/code/success?app=claude-code",MANUAL_REDIRECT_URL:"http://localhost:3000/oauth/code/callback",CLIENT_ID:"22422756-60c9-4084-8eb7-27705fd5cf9a"},FB=process.env.USE_TEST_OAUTH==="1"&&gm9||!1||bm9;var x0="Claude Code",djA="https://claude.ai/code";function ujA(A,B=300000){let Q=new Map,I=(...G)=>{let D=JSON.stringify(G),Z=Q.get(D),Y=Date.now();if(!Z)Q.set(D,{value:A(...G),timestamp:Y,refreshing:!1});if(Z&&Y-Z.timestamp>B&&!Z.refreshing)return Z.refreshing=!0,Promise.resolve().then(()=>{let W=A(...G);Q.set(D,{value:W,timestamp:Date.now(),refreshing:!1})}).catch((W)=>{m1(W instanceof Error?W:new Error(String(W)));let F=Q.get(D);if(F)F.refreshing=!1}),Z.value;return Q.get(D).value};return I.cache={clear:()=>Q.clear()},I}function pjA(){let A=`${x0}-credentials`;return{name:"keychain",read(){try{let B=cG(`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 I=JSON.stringify(B).replace(/"/g,"\\\""),G=`security add-generic-password -U -a $USER -s "${A}" -w "${I}"`;return cG(G),{success:!0}}catch(Q){return{success:!1}}},delete(){try{return cG(`security delete-generic-password -a $USER -s "${A}"`),!0}catch(B){return!1}}}}import{join as cjA}from"path";import{homedir as hm9}from"os";function kR1(){let A=cjA(hm9(),".claude"),B=".credentials.json",Q=cjA(A,".credentials.json");return{name:"plaintext",read(){if(b1().existsSync(Q))try{let I=b1().readFileSync(Q,{encoding:"utf8"});return JSON.parse(I)}catch(I){return null}return null},update(I){try{if(!b1().existsSync(A))b1().mkdirSync(A);return b1().writeFileSync(Q,JSON.stringify(I),{encoding:"utf8",flush:!1}),b1().chmodSync(Q,384),{success:!0,warning:"Warning: Storing credentials in plaintext."}}catch(G){return{success:!1}}},delete(){if(b1().existsSync(Q))try{return b1().unlinkSync(Q),!0}catch(I){return!1}return!0}}}function mm9(A){let B=kR1();return{name:`${A.name}-with-${B.name}-fallback`,read(){let Q=A.read();if(Q!=null)return Q;return B.read()||{}},update(Q){let I=A.update(Q);if(I.success)return B.delete(),I;let G=B.update(Q);if(G.success)return{success:!0,warning:G.warning};return{success:!1}},delete(){let Q=A.delete(),I=B.delete();return Q||I}}}function GP(){if(process.platform==="darwin"){let A=pjA();return mm9(A)}return kR1()}async function ljA(A){let Q=VA().oauthAccount?.accountUuid,I=aI(A);if(!Q||!I)return;let G=`${FB.BASE_API_URL}/api/claude_cli_profile`;try{return(await K5.get(G,{headers:{"x-api-key":I,"anthropic-beta":IP},params:{account_uuid:Q}})).data}catch(D){m1(D)}}async function ijA(){let A=`${FB.BASE_API_URL}/api/oauth/profile`,B=A3();if(!B?.accessToken)return;try{return(await K5.get(A,{headers:{Authorization:`Bearer ${B.accessToken}`,"Content-Type":"application/json"}})).data}catch(Q){m1(Q)}}function vW(A){return Boolean(A?.includes(p61))}function c61(A){return A?.split(" ").filter(Boolean)??[]}function xR1({codeChallenge:A,state:B,isManual:Q,loginWithClaudeAi:I}){let G=I?FB.CLAUDE_AI_AUTHORIZE_URL:FB.CONSOLE_AUTHORIZE_URL,D=new URL(G);return D.searchParams.append("code","true"),D.searchParams.append("client_id",FB.CLIENT_ID),D.searchParams.append("response_type","code"),D.searchParams.append("redirect_uri",Q?FB.MANUAL_REDIRECT_URL:`http://localhost:${FB.REDIRECT_PORT}/callback`),D.searchParams.append("scope",FB.SCOPES.join(" ")),D.searchParams.append("code_challenge",A),D.searchParams.append("code_challenge_method","S256"),D.searchParams.append("state",B),D.toString()}async function njA(A,B,Q,I=!1){let G={grant_type:"authorization_code",code:A,redirect_uri:I?FB.MANUAL_REDIRECT_URL:`http://localhost:${FB.REDIRECT_PORT}/callback`,client_id:FB.CLIENT_ID,code_verifier:Q,state:B},D=await K5.post(FB.TOKEN_URL,G,{headers:{"Content-Type":"application/json"}});if(D.status!==200)throw new Error(D.status===401?"Authentication failed: Invalid authorization code":`Token exchange failed (${D.status}): ${D.statusText}`);return D.data}async function ajA(A){let B={grant_type:"refresh_token",refresh_token:A,client_id:FB.CLIENT_ID};try{let Q=await K5.post(FB.TOKEN_URL,B,{headers:{"Content-Type":"application/json"}});if(Q.status!==200)throw new Error(`Token refresh failed: ${Q.statusText}`);let I=Q.data,{access_token:G,refresh_token:D=A,expires_in:Z}=I,Y=Date.now()+Z*1000,W=c61(I.scope);return j1("tengu_oauth_token_refresh_success",{}),{accessToken:G,refreshToken:D,expiresAt:Y,scopes:W}}catch(Q){throw j1("tengu_oauth_token_refresh_failure",{}),Q}}async function sjA(A){let B=await K5.get(FB.ROLES_URL,{headers:{Authorization:`Bearer ${A}`}});if(B.status!==200)throw new Error(`Failed to fetch user roles: ${B.statusText}`);let Q=B.data,I=VA();if(!I.oauthAccount)throw new Error("OAuth account information not found in config");I.oauthAccount.organizationRole=Q.organization_role,I.oauthAccount.workspaceRole=Q.workspace_role,I.oauthAccount.organizationName=Q.organization_name,T0(I),j1("tengu_oauth_roles_stored",{org_role:Q.organization_role})}async function rjA(A){try{let B=await K5.post(FB.API_KEY_URL,null,{headers:{Authorization:`Bearer ${A}`}}),Q=B.data?.raw_key;if(Q)return ojA(Q),j1("tengu_oauth_api_key",{status:"success",statusCode:B.status}),Q;return null}catch(B){throw j1("tengu_oauth_api_key",{status:"failure",error:B instanceof Error?B.message:String(B)}),B}}function l61(A){return Date.now()+300000>=A}async function dm9(){if(!C6())return"not_max";let A=await ijA();if(!A)return"not_max";switch(A.organization.rate_limit_tier){case"default_claude_max_5x":return"5x";case"default_claude_max_20x":return"20x";default:return"not_max"}}async function nq(){let A=await dm9(),B=VA();return T0({...B,claudeMaxTier:A}),A}var MyA=F1(rR1(),1);import{join as _d9}from"path";import{homedir as jd9}from"os";var yd9=300000;function IU(){let A=process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX,B=n7().apiKeyHelper,Q=process.env.ANTHROPIC_AUTH_TOKEN||B;return!(A||Q)}function aI(A){let{key:B}=oR1(A);return B}function oR1(A){let B=VA();if(A&&process.env.ANTHROPIC_API_KEY)return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"};if(!1==="true"){if(!process.env.ANTHROPIC_API_KEY)throw new Error("ANTHROPIC_API_KEY env var is required");return{key:process.env.ANTHROPIC_API_KEY,source:"ANTHROPIC_API_KEY"}}let Q=Nf();if(Q)return{key:Q,source:"apiKeyHelper"};return tR1()}function kd9(){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;kX(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${A}`)}return yd9}var Nf=ujA(()=>{let B=n7().apiKeyHelper;if(!B)return null;try{let Q=cG(B);if(!Q)return null;return Q.toString().trim()}catch(Q){let I=MA.red("Error getting API key from apiKeyHelper (in settings or ~/.claude.json):");if(Q instanceof Error&&"stderr"in Q)console.error(I,String(Q.stderr));else if(Q instanceof Error)console.error(I,Q.message);else console.error(I,Q);return null}},kd9());function LyA(){Nf.cache.clear()}function FP(A){return A.slice(-20)}var tR1=b0(()=>{if(process.platform==="darwin")try{let B=cG(`security find-generic-password -a $USER -w -s "${x0}"`);if(B)return{key:B,source:"/login managed key"}}catch(B){m1(B)}return{key:VA().primaryApiKey??null,source:"/login managed key"}});function xd9(A){return/^[a-zA-Z0-9-_]+$/.test(A)}function ojA(A){if(!xd9(A))throw new Error("Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.");let B=VA();if(TyA(),process.platform==="darwin")try{cG(`security add-generic-password -a $USER -s "${x0}" -w ${A}`)}catch(I){m1(I),B.primaryApiKey=A}else B.primaryApiKey=A;if(!B.customApiKeyResponses)B.customApiKeyResponses={approved:[],rejected:[]};if(!B.customApiKeyResponses.approved)B.customApiKeyResponses.approved=[];let Q=FP(A);if(!B.customApiKeyResponses.approved.includes(Q))B.customApiKeyResponses.approved.push(Q);T0(B),tR1.cache.clear?.()}function RyA(A){let B=VA(),Q=FP(A);return B.customApiKeyResponses?.approved?.includes(Q)??!1}function OyA(){TyA();let A=VA();A.primaryApiKey=void 0,T0(A),tR1.cache.clear?.()}function TyA(){if(process.platform==="darwin")try{cG(`security delete-generic-password -a $USER -s "${x0}"`)}catch(A){m1(A)}}function fd9(A){if(A)return A.includes(p61);return!0}function eR1(A){if(!fd9(A.scopes))return{success:!0};try{let B=GP(),Q=B.read()||{};Q.claudeAiOauth={accessToken:A.accessToken,refreshToken:A.refreshToken,expiresAt:A.expiresAt,scopes:A.scopes};let I=B.update(Q);return A3.cache?.clear?.(),yH.cache?.clear?.(),GU.cache?.clear?.(),I}catch(B){return m1(B),{success:!1,warning:"Failed to save OAuth tokens"}}}var A3=b0(()=>{try{let Q=GP().read()?.claudeAiOauth;if(!Q?.accessToken)return null;return Q}catch(A){return m1(A),null}});async function AO1(A=0){let Q=A3();if(!Q?.refreshToken||!l61(Q.expiresAt))return!1;if(A3.cache?.clear?.(),Q=A3(),!Q?.refreshToken||!l61(Q.expiresAt))return!1;let I=_d9(jd9(),".claude");b1().mkdirSync(I);let D;try{D=await MyA.lock(I)}catch(Z){if(Z.code==="ELOCKED"){if(A<5)return await new Promise((Y)=>setTimeout(Y,1000+Math.random()*1000)),AO1(A+1);return!1}return m1(Z),!1}try{if(A3.cache?.clear?.(),Q=A3(),!Q?.refreshToken||!l61(Q.expiresAt))return!1;let Z=await ajA(Q.refreshToken);if(eR1({...Z,scopes:Q.scopes}),C6())nq();return A3.cache?.clear?.(),!0}catch(Z){return m1(Z instanceof Error?Z:new Error(String(Z))),!1}finally{await D()}}function C6(){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX)return!1;let A=A3();return vW(A?.scopes)}function eD(){return process.env.CLAUDE_CODE_USE_BEDROCK?"bedrock":process.env.CLAUDE_CODE_USE_VERTEX?"vertex":"firstParty"}function gX(){return eD()}var GU=b0(async()=>{let A=[];if(C6())A.push(IP);return A});function vd9(A){let B=eD();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 yH=b0(async(A)=>{let B=[hjA];if(C6())B.push(IP);if(!JP(process.env.DISABLE_INTERLEAVED_THINKING)&&vd9(A))B.push(u61);if(process.env.ANTHROPIC_BETAS)B.push(...process.env.ANTHROPIC_BETAS.split(",").map((Q)=>Q.trim()).filter(Boolean));return B});var CP={firstParty:"claude-3-7-sonnet-20250219",bedrock:"us.anthropic.claude-3-7-sonnet-20250219-v1:0",vertex:"claude-3-7-sonnet@20250219"},XP={firstParty:"claude-3-5-sonnet-20241022",bedrock:"anthropic.claude-3-5-sonnet-20241022-v2:0",vertex:"claude-3-5-sonnet-v2@20241022"},Kl={firstParty:"claude-3-5-haiku-20241022",bedrock:"us.anthropic.claude-3-5-haiku-20241022-v1:0",vertex:"claude-3-5-haiku@20241022"},hX={firstParty:"claude-sonnet-4-20250514",bedrock:"us.anthropic.claude-sonnet-4-20250514-v1:0",vertex:"claude-sonnet-4@20250514"},DU={firstParty:"claude-opus-4-20250514",bedrock:"us.anthropic.claude-opus-4-20250514-v1:0",vertex:"claude-opus-4@20250514"};var _31=F1(W40(),1);var F40=b0(async function(){let A=process.env.AWS_REGION||"us-east-1",B=new _31.BedrockClient({region:A}),Q=new _31.ListInferenceProfilesCommand;try{return((await B.send(Q)).inferenceProfileSummaries||[]).filter((Y)=>Y.inferenceProfileId?.includes("anthropic")).map((Y)=>Y.inferenceProfileId).filter(Boolean)}catch(I){throw m1(I),I}});function Lv(A,B){return A.find((Q)=>Q.includes(B))??null}function j31(A){let B=[],Q=!1;async function I(){if(Q)return;if(B.length===0)return;Q=!0;while(B.length>0){let{args:G,resolve:D,reject:Z,context:Y}=B.shift();try{let W=await A.apply(Y,G);D(W)}catch(W){Z(W)}}if(Q=!1,B.length>0)I()}return function(...G){return new Promise((D,Z)=>{B.push({args:G,resolve:D,reject:Z,context:this}),I()})}}function y31(A){return{haiku35:Kl[A],sonnet35:XP[A],sonnet37:CP[A],sonnet40:hX[A],opus40:DU[A]}}async function $E4(){let A;try{A=await F40()}catch(Z){return m1(Z),y31("bedrock")}if(!A?.length)return y31("bedrock");let B=Lv(A,"claude-3-5-haiku-20241022"),Q=Lv(A,"claude-3-5-sonnet-20241022"),I=Lv(A,"claude-3-7-sonnet-20250219"),G=Lv(A,"claude-sonnet-4-20250514"),D=Lv(A,"claude-opus-4-20250514");return{haiku35:B||Kl.bedrock,sonnet35:Q||XP.bedrock,sonnet37:I||CP.bedrock,sonnet40:G||hX.bedrock,opus40:D||DU.bedrock}}var qE4=j31(async()=>{if(a21()!==null)return;try{let A=await $E4();gU1(A)}catch(A){m1(A)}});function ME4(){if(a21()!==null)return;if(eD()!=="bedrock"){gU1(y31(eD()));return}qE4()}function xJ(){let A=a21();if(A===null)return ME4(),y31(eD());return A}var C40=hX,$j1=C40.firstParty;function eH(){return process.env.ANTHROPIC_SMALL_FAST_MODEL||xJ().haiku35}function k31(A){return A===xJ().opus40}function Rv(){let A=QDA();if(A!==void 0)return A;return process.env.ANTHROPIC_MODEL||n7().model||void 0}var x31=b0(async function(){try{let A=await Az("tengu-capable-model-config",C40);return T0({...VA(),statsigModel:A}),A[eD()]}catch(A){return m1(A),$j1}});async function WQ(){let A=Rv();if(A!==void 0&&A!==null)return gP(A);if(A===null&&n21())return bP();return Ei()}async function Ov(){return await WQ()===xJ().sonnet37}function qj1(){if(eD()==="bedrock")return xJ().sonnet37;return xJ().sonnet40}function Ei(){if(C6())return xJ().opus40;return qj1()}function bP(){return qj1()}function X40(A){let B=n7().model,Q=B?gP(B):Ei();return A!==Q}function tX(A){let B=A.match(/(claude-(\d+-\d+-)?\w+)/);if(B&&B[1])return B[1];return A}function LE4(){if(!C6())return"not_max";let{claudeMaxTier:A}=VA();if(!A||A==="not_max")return nq(),"5x";return A}function Ui(A){return A===xJ().sonnet40?"Claude Sonnet 4":"Claude Sonnet 3.7"}function vP(){if(!C6())return{value:null,label:"Default (recommended)",description:`Use the default model (currently ${Ui(qj1())}) · $3/$15 per Mtok`};else return{value:null,label:"Default (recommended)",description:"Use Opus or Sonnet based on Max usage limits"}}var V40={value:"sonnet",label:"Sonnet",description:"Claude Sonnet 4 for daily use · $3/$15 per Mtok"},Nj1={value:"opus",label:"Opus",description:"Claude Opus 4 for complex tasks · $15/$75 per Mtok"},RE4={value:"opus",label:"Opus",description:"Claude Opus 4 for complex tasks"},J40={value:"sonnet",label:"Sonnet",description:"Claude Sonnet 4 for daily use"};function OE4(){if(!C6()){if(eD()==="bedrock")return[vP(),V40,Nj1];return[vP(),Nj1]}else if(LE4()==="20x")return[vP(),RE4,J40];else return[vP(),J40]}function K40(){let A=OE4(),B=null,Q=Rv(),I=i21();if(Q!==void 0&&Q!==null)B=Q;else if(I!==null)B=I;if(B===null||A.some((G)=>G.value===B))return A;if(H40(B))switch(B){case"sonnet":A.push(V40);break;case"opus":A.push(Nj1);break;default:break}else A.push({value:B,label:B,description:"Custom model"});return A}function H40(A){return["sonnet","opus"].includes(A)}function gP(A){let B=A.toLowerCase().trim();if(H40(B)){if(B==="sonnet")return xJ().sonnet40;else if(B==="opus")return xJ().opus40;return!1}return B}function hP(A){if(A===null){if(C6())return"Default (Use the best available model for Max usage limits)";return`Default (${Ei()})`}let B=gP(A);return A===B?B:`${A} (${B})`}var z40={},Tv=null,PM=b0(async()=>{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=await Pv(),B={networkConfig:{api:"https://statsig.anthropic.com/v1/"},environment:{tier:["test","dev"].includes("production")?"development":"production"},logLevel:f31.LogLevel.None,storageProvider:new yR1};return Tv=new f31.StatsigClient(gjA,A,B),Tv.on("error",()=>{K5.head("https://api.anthropic.com/api/hello").catch(()=>{})}),await Tv.initializeAsync(),process.on("beforeExit",async()=>{await Tv?.flush()}),process.on("exit",()=>{Tv?.flush()}),Tv});async function j1(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):await WQ(),[I,G,D,Z]=await Promise.all([PM(),yH(Q),uA.getPackageManagers(),uA.getRuntimes()]);if(!I)return;let Y={...B,model:Q,sessionId:Q5,userType:"external",...G.length>0?{betas:G.join(",")}:{},env:JSON.stringify({platform:uA.platform,nodeVersion:uA.nodeVersion,terminal:uA.terminal,packageManagers:D.join(","),runtimes:Z.join(","),isRunningWithBun:uA.isRunningWithBun(),isCi:!1==="true",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:C6(),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.2"}.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||"",...!1},W={eventName:A,metadata:Y};I.logEvent(W),await I.flush()}catch(Q){}}var Ni=b0(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 PM();if(!B)return!1;let Q=B.checkGate(A);return z40[A]=Q,Q});function w40(){return{...z40}}var vi5=b0(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 PM();if(!Q)return B;let I=Q.getExperiment(A);if(Object.keys(I.value).length===0)return B;return I.value});async function Az(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 PM();if(!Q)return B;let I=Q.getDynamicConfig(A);if(Object.keys(I.value).length===0)return B;return I.value}var E40=b0(Az);import{PassThrough as SE4}from"stream";function N40(A,B){let Q=[],I="";for(let G of A)if([...I].length<B)I+=G;else Q.push(I),I=G;if(I)Q.push(I);return Q}function SM(A){if(A<60000){let G=(A/1000).toFixed(1);return`${G.endsWith(".0")?G.slice(0,-2):G}s`}let B=Math.floor(A/3600000),Q=Math.floor(A%3600000/60000),I=(A%60000/1000).toFixed(1);if(B>0)return`${B}h ${Q}m ${I}s`;if(Q>0)return`${Q}m ${I}s`;return`${I}s`}function o7(A){let B=A>=1000;return new Intl.NumberFormat("en",{notation:"compact",minimumFractionDigits:B?1:0,maximumFractionDigits:1}).format(A).toLowerCase()}function U40(A,B={}){let{style:Q="narrow",numeric:I="always",now:G=new Date}=B,D=A.getTime()-G.getTime(),Z=Math.trunc(D/1000),Y=[{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:F,seconds:J,shortUnit:C}of Y)if(Math.abs(Z)>=J){let X=Math.trunc(Z/J);if(Q==="narrow"&&J<86400)return Z<0?`${Math.abs(X)}${C} ago`:`in ${X}${C}`;return new Intl.RelativeTimeFormat("en",{style:"long",numeric:I}).format(X,F)}if(Q==="narrow")return Z<=0?"0s ago":"in 0s";return new Intl.RelativeTimeFormat("en",{style:Q,numeric:I}).format(0,"second")}function Mj1(A,B={}){let{now:Q=new Date,...I}=B;if(A>Q)return U40(A,{...I,now:Q});return U40(A,{...I,numeric:"always",now:Q})}function Sv(A){if(!A)return;let B=new Date(A*1000),Q=B.getMinutes();return B.toLocaleTimeString([],{hour:"numeric",minute:Q===0?void 0:"2-digit",hour12:!0}).replace(/ ([AP]M)/i,(G,D)=>D.toLowerCase())}var _40=F1(O40(),1),T40=137,P40=143;function S40(A){let B=null,Q="";A.on("data",(G)=>{if(B)B.write(G);else Q+=G});let I=()=>Q;return{get:I,asStream(){return B=new SE4({highWaterMark:10485760}),B.write(I()),Q="",B}}}function j40(A,B,Q){let I="running",G,D=S40(A.stdout),Z=S40(A.stderr),Y=(F)=>{if(I="killed",A.pid)_40.default(A.pid,"SIGKILL")},W=new Promise((F)=>{let J=()=>Y(),C=null;function X(){if(C)clearTimeout(C),C=null;B.removeEventListener("abort",J)}B.addEventListener("abort",J,{once:!0}),new Promise((V)=>{let K=Y;Y=(U)=>{K(),V(U||T40)},C=setTimeout(()=>{Y(P40)},Q),A.on("close",(U,N)=>{V(U!=null?U:N==="SIGTERM"?144:1)}),A.on("error",()=>V(1))}).then((V)=>{if(X(),I=="running")I="completed";let K={code:V,stdout:D.get(),stderr:Z.get(),interrupted:V===T40,backgroundTaskId:G};if(V==P40)K.stderr=[`Command timed out after ${SM(Q)}`,K.stderr].filter(Boolean).join(" ");F(K)})});return{background:(F)=>{if(I=="running")return G=F,I="backgrounded",{stdoutStream:D.asStream(),stderrStream:Z.asStream()};else return null},kill:()=>Y(),result:W}}function y40(A){return{background:()=>null,kill:()=>{},result:Promise.resolve({code:145,stdout:"",stderr:"Command aborted before execution",interrupted:!0,backgroundTaskId:A})}}var Rj1=F1(Mp(),1);import*as k40 from"os";import*as x40 from"path";class f40{profilePath;defaultProfile=`(version 1)
575
575
  ;; Default deny (whitelist approach)
576
576
  (deny default)
577
577
 
@@ -641,7 +641,7 @@ ${Q}
641
641
 
642
642
  # Add PATH to the file
643
643
  echo "export PATH='${process.env.PATH}'" >> $SNAPSHOT_FILE
644
- `}function h40(A){try{return b1().accessSync(A,jE4.X_OK),!0}catch(B){try{return m40(`${A} --version`,{timeout:1000,stdio:"ignore"}),!0}catch{return!1}}}var u40=b0(function(){let A=(J)=>{try{return m40(`which ${J}`,{stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return null}},B=process.env.SHELL,Q=B&&(B.includes("bash")||B.includes("zsh")),I=B?.includes("bash"),G=A("zsh"),D=A("bash"),Z=["/bin","/usr/bin","/usr/local/bin","/opt/homebrew/bin"],W=(I?["bash","zsh"]:["zsh","bash"]).flatMap((J)=>Z.map((C)=>`${C}/${J}`));if(I){if(D)W.unshift(D);if(G)W.push(G)}else{if(G)W.unshift(G);if(D)W.push(D)}if(Q&&h40(B))W.unshift(B);let F=W.find((J)=>J&&h40(J));if(!F){let J="No suitable shell found. Claude CLI requires a Posix shell environment. Please ensure you have a valid shell installed and the SHELL environment variable set.";throw m1(new Error(J)),new Error(J)}return F});function uE4(){let A=Math.floor(Math.random()*65536).toString(16).padStart(4,"0"),B=u40(),Q=`${Pj1.tmpdir()}/claude-shell-snapshot-${A}`;return new Promise((I)=>{try{let G=d40(B);if(!g40(G)){I(void 0);return}let D=dE4(B,Q);fE4(B,["-c","-l",D],{env:{...process.env.CLAUDE_CODE_DONT_INHERIT_ENV?{}:process.env,SHELL:B,GIT_EDITOR:"true",CLAUDECODE:"1"},timeout:1e4,maxBuffer:1048576},(Z,Y,W)=>{if(Z)m1(new Error(`Failed to create shell snapshot: ${W}`)),j1("shell_snapshot_failed",{stderr_length:W.length}),I(void 0);else if(g40(Q)){let F=kE4(Q).size;j1("shell_snapshot_created",{snapshot_size:F}),I(Q)}else j1("shell_unknown_error",{}),I(void 0)})}catch(G){m1(G instanceof Error?G:new Error(String(G))),j1("shell_snapshot_error",{}),I(void 0)}})}var Sj1=b0(async function(){let A=await uE4();return{binShell:u40(),snapshotFilePath:A}});async function pE4(A,B,Q,I=!1,G){let D=Q||mE4,{binShell:Z,snapshotFilePath:Y}=await Sj1();if(G)Z=G,Y=void 0;let W=Math.floor(Math.random()*65536).toString(16).padStart(4,"0"),F=`${Pj1.tmpdir()}/claude-${W}-cwd`,J=qi.default.quote([A,"<","/dev/null"]);if(Z.includes("bash")&&!I){let U=A.split(/(?<!\|)\|(?!\|)/);if(U.length>1)J=qi.default.quote([U[0],"<","/dev/null","|",U.slice(1).join("|")])}if(I)A=b40(A),J=qi.default.quote([A,"<","/dev/null"]);let C=()=>{};if(I){let U=v40(J);J=U.finalCommand,C=U.cleanup}let X=[];if(Y)X.push(`source ${Y}`);X.push(`eval ${J}`),X.push(`pwd >| ${F}`);let V=X.join(" && "),K=p40();if(B.aborted)return y40();try{let U=Oj1(A),N=vE4(Z,["-c","-l",V],{env:{...process.env,SHELL:Z,GIT_EDITOR:"true",CLAUDECODE:"1",...I?U.env:{}},cwd:K,detached:!0}),q=j40(N,B,D);return q.result.then((M)=>{if(M&&!M.backgroundTaskId)try{mW(yE4(F,{encoding:"utf8"}).trim(),K)}catch{j1("shell_set_cwd",{success:!1})}C()}).catch(()=>{C()}),C=()=>{},q}finally{C()}}function p40(){return nGA()}function mW(A,B){let Q=bE4(A)?A:gE4(B||b1().cwd(),A);if(!b1().existsSync(Q))throw new Error(`Path "${Q}" does not exist`);aGA(Q),j1("shell_set_cwd",{success:!0})}var cE4=pE4;function c40(){return cE4}function dA(){try{return p40()}catch{return u4()}}var _j1=1000,jj1=60;function l0(A,B,Q,I=10*jj1*_j1,G=!0,D=!0){return jX(A,B,Q,I,G,D?dA():void 0)}function jX(A,B,Q,I=10*jj1*_j1,G=!0,D){return new Promise((Z)=>{try{iE4(A,B,{maxBuffer:1e6,signal:Q,timeout:I,cwd:D},(Y,W,F)=>{if(Y)if(G){let J=typeof Y.code==="number"?Y.code:1;Z({stdout:W||"",stderr:F||"",code:J,error:typeof Y.code==="string"?Y.code:String(J)})}else Z({stdout:"",stderr:"",code:1});else Z({stdout:W,stderr:F,code:0})})}catch(Y){m1(Y),Z({stdout:"",stderr:"",code:1})}})}function cG(A,B,Q=10*jj1*_j1){B?.throwIfAborted();let I=nE4(A,{env:process.env,maxBuffer:1e6,timeout:Q,cwd:dA(),stdio:["ignore","pipe","pipe"]});if(!I)return null;return I.toString().trim()||null}import{join as v31}from"path";import{homedir as l40}from"os";var i40=F1(bq1(),1);var S5=process.env.CLAUDE_CONFIG_DIR??v31(l40(),".claude"),fJ=process.env.CLAUDE_CONFIG_DIR?v31(S5,"config.json"):v31(l40(),".claude.json"),zn5=v31(S5,"memory"),aE4=b0(async()=>{let{code:A}=await l0("test",["-f","/.dockerenv"]);if(A!==0)return!1;return process.platform==="linux"}),sE4=b0(async()=>{try{let A=new AbortController,B=setTimeout(()=>A.abort(),1000);return await K5.head("http://1.1.1.1",{signal:A.signal}),clearTimeout(B),!0}catch{return!1}});async function jv(A,B=["--version"]){return(await l0(A,B,void 0,1000,!0,!1)).code===0}var rE4=b0(async()=>{let A=[];if(await jv("npm"))A.push("npm");if(await jv("yarn"))A.push("yarn");if(await jv("pnpm"))A.push("pnpm");return A}),oE4=b0(async()=>{let A=[];if(await jv("bun"))A.push("bun");if(await jv("deno"))A.push("deno");if(await jv("node"))A.push("node");return A}),tE4=b0(()=>{if(process.versions.bun!==void 0||process.env.BUN_INSTALL!==void 0)return!0;return!1}),n40=b0(()=>{try{return b1().existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")}catch(A){return!1}}),eE4=b0(()=>{try{if(!n40())return!1;let{cmd:A}=i40.findActualExecutable("npm",[]);return A.startsWith("/mnt/c/")}catch(A){return!1}});function AU4(){if(process.env.CURSOR_TRACE_ID)return"cursor";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("/.cursor-server/bin/"))return"cursor";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("/.windsurf-server/bin/"))return"windsurf";let A=process.env.__CFBundleIdentifier?.toLowerCase();if(A?.includes("windsurf"))return"windsurf";if(A?.includes("pycharm"))return"pycharm";if(A?.includes("intellij"))return"intellij";if(A?.includes("webstorm"))return"webstorm";if(A?.includes("phpstorm"))return"phpstorm";if(A?.includes("rubymine"))return"rubymine";if(A?.includes("clion"))return"clion";if(A?.includes("goland"))return"goland";if(A?.includes("rider"))return"rider";if(A?.includes("datagrip"))return"datagrip";if(A?.includes("appcode"))return"appcode";if(A?.includes("dataspell"))return"dataspell";if(A?.includes("aqua"))return"aqua";if(A?.includes("gateway"))return"gateway";if(A?.includes("fleet"))return"fleet";if(A?.includes("com.google.android.studio"))return"androidstudio";if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm")return"pycharm";if(process.env.TERM==="xterm-ghostty")return"ghostty";if(process.env.TERM?.includes("kitty"))return"kitty";if(process.env.TERM_PROGRAM)return process.env.TERM_PROGRAM;if(process.env.TMUX)return"tmux";if(process.env.STY)return"screen";if(process.env.KONSOLE_VERSION)return"konsole";if(process.env.GNOME_TERMINAL_SERVICE)return"gnome-terminal";if(process.env.XTERM_VERSION)return"xterm";if(process.env.VTE_VERSION)return"vte-based";if(process.env.TERMINATOR_UUID)return"terminator";if(process.env.KITTY_WINDOW_ID)return"kitty";if(process.env.ALACRITTY_LOG)return"alacritty";if(process.env.TILIX_ID)return"tilix";if(process.env.WT_SESSION)return"windows-terminal";if(process.env.SESSIONNAME&&process.env.TERM==="cygwin")return"cygwin";if(process.env.MSYSTEM)return process.env.MSYSTEM.toLowerCase();if(process.env.ConEmuTask)return"conemu";if(process.env.WSL_DISTRO_NAME)return`wsl-${process.env.WSL_DISTRO_NAME}`;if(process.env.SSH_CONNECTION||process.env.SSH_CLIENT||process.env.SSH_TTY)return"ssh-session";if(process.env.TERM){let B=process.env.TERM;if(B.includes("alacritty"))return"alacritty";if(B.includes("rxvt"))return"rxvt";if(B.includes("termite"))return"termite";return process.env.TERM}if(!process.stdout.isTTY)return"non-interactive";return null}var uA={getIsDocker:aE4,hasInternetAccess:sE4,isCI:Boolean(!1),platform:process.platform==="win32"?"windows":process.platform==="darwin"?"macos":"linux",nodeVersion:process.version,terminal:AU4(),getPackageManagers:rE4,getRuntimes:oE4,isRunningWithBun:tE4,isWslEnvironment:n40,isNpmFromWindowsPath:eE4};if(uA.isCI)console.warn("Running in CI environment - interactive features are limited");function JP(A){if(!A)return!1;let B=A.toLowerCase().trim();return["1","true","yes","on"].includes(B)}function a40(A){let B={};if(A)for(let Q of A){let[I,...G]=Q.split("=");if(!I||G.length===0)throw new Error(`Invalid environment variable format: ${Q}, environment variables should be added as: -e KEY1=value1 -e KEY2=value2`);B[I]=G.join("=")}return B}import{randomBytes as ZU4}from"crypto";class yj1 extends TypeError{}class t7 extends Error{}class yv extends Error{filePath;defaultConfig;constructor(A,B,Q){super(A);this.name="ConfigParseError",this.filePath=B,this.defaultConfig=Q}}class mP extends Error{stdout;stderr;code;interrupted;constructor(A,B,Q,I){super("Shell command failed");this.stdout=A;this.stderr=B;this.code=Q;this.interrupted=I;this.name="ShellError"}}function Mi(A,B){return A instanceof Error&&A.message===B}var kj1=i.enum(["local","user","project"]),Nn5=i.enum(["stdio","sse","sse-ide"]),xj1=i.object({type:i.literal("stdio").optional(),command:i.string().min(1,"Command cannot be empty"),args:i.array(i.string()).default([]),env:i.record(i.string()).optional()}),BU4=i.object({type:i.literal("sse"),url:i.string().url("Must be a valid URL"),headers:i.record(i.string()).optional()}),QU4=i.object({type:i.literal("sse-ide"),url:i.string().url("Must be a valid URL"),ideName:i.string()}),IU4=i.object({type:i.literal("ws-ide"),url:i.string().url("Must be a valid URL"),ideName:i.string()}),fj1=i.union([xj1,BU4,QU4,IU4]);var kv=i.object({mcpServers:i.record(i.string(),fj1)});var _M={allowedTools:[],history:[],dontCrawlDirectory:!1,mcpContextUris:[],mcpServers:{},enabledMcpjsonServers:[],disabledMcpjsonServers:[],enableAllProjectMcpServers:!1,hasTrustDialogAccepted:!1,ignorePatterns:[],projectOnboardingSeenCount:0,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!1};function s40(A){let B={..._M};if(A===DU4())B.dontCrawlDirectory=!0;return B}function YU4(A){return["disabled","enabled","no_permissions","not_configured","migrated"].includes(A)}var vJ={numStartups:0,autoUpdaterStatus:"not_configured",theme:"dark",preferredNotifChannel:"auto",verbose:!1,editorMode:"normal",autoCompactEnabled:!0,hasSeenTasksHint:!1,queuedCommandUpHintCount:0,diffTool:"auto",customApiKeyResponses:{approved:[],rejected:[]},env:{},tipsHistory:{},memoryUsageCount:0,parallelAgents:{enabled:!1,count:1},promptQueueUseCount:0,todoFeatureEnabled:!0,messageIdleNotifThresholdMs:60000},Li=["apiKeyHelper","autoUpdaterStatus","theme","verbose","preferredNotifChannel","shiftEnterKeyBindingInstalled","editorMode","hasUsedBackslashReturn","supervisorMode","autoCompactEnabled","diffTool","env","tipsHistory","parallelAgents","todoFeatureEnabled","messageIdleNotifThresholdMs"];function hj1(A){return Li.includes(A)}var Ri=["allowedTools","dontCrawlDirectory","hasTrustDialogAccepted","hasCompletedProjectOnboarding","ignorePatterns"];function r40(){let A=dA(),B=uP(fJ,vJ);while(!0){if(B.projects?.[A]?.hasTrustDialogAccepted)return!0;let I=gj1(A,"..");if(I===A)break;A=I}return!1}var pn5={...vJ,autoUpdaterStatus:"disabled"},cn5={..._M};function mj1(A){return Ri.includes(A)}function xv(A,B){if(B){let Q=VA();return A in Q&&Array.isArray(Q[A])}else{let Q=_M[A];return A in _M&&Array.isArray(Q)}}function WU4(A,B){if(xv(A,B))return!1;if(B){let Q=VA();return A in Q&&typeof Q[A]==="object"}else{let Q=_M[A];return A in _M&&typeof Q==="object"}}function b31(A,B,Q,I=!0){if(j1("tengu_config_add",{key:A,global:Q,count:B.length}),!xv(A,Q)){if(Q)console.error(`Error: '${A}' is not a valid array config key in global config`);else console.error(`Error: '${A}' is not a valid array config key in project config`);if(I)process.exit(1);else return}if(Q){let G=VA(),D=A,Z=G[D]||[],Y=new Set(Z),W=Y.size;for(let F of B)Y.add(F);if(Y.size>W){let F=Array.from(Y).sort();T0({...G,[D]:F})}}else{let G=E9(),D=A,Z=G[D]||[],Y=new Set(Z),W=Y.size;for(let F of B)Y.add(F);if(Y.size>W){let F=Array.from(Y).sort();_6({...G,[D]:F})}}if(I)process.exit(0)}function o40(A,B,Q,I=!0){if(j1("tengu_config_remove",{key:A,global:Q,count:B.length}),Q){let G=VA();if(!(A in G)||!Array.isArray(G[A]))if(console.error(`Error: '${A}' is not a valid array config key in global config`),I)process.exit(1);else return;let D=A,Z=G[D];if(!Z)Z=[];let Y=new Set(B),W=Z.filter((F)=>!Y.has(F));if(Z.length!==W.length)T0({...G,[D]:W.sort()})}else{let G=E9(),D=_M[A];if(!(A in _M)||!Array.isArray(D))if(console.error(`Error: '${A}' is not a valid array config key in project config`),I)process.exit(1);else return;let Z=A,Y=G[Z];if(!Y)Y=[];let W=new Set(B),F=Y.filter((J)=>!W.has(J));if(Y.length!==F.length)_6({...G,[Z]:F.sort()})}if(I)process.exit(0)}function T0(A){e40(fJ,{...A,projects:uP(fJ,vJ).projects},vJ),dP.config=null,dP.mtime=0}var dP={config:null,mtime:0};function VA(){try{let A=b1().existsSync(fJ)?b1().statSync(fJ):null;if(dP.config&&A){if(A.mtimeMs<=dP.mtime)return dP.config}let B=uP(fJ,vJ);if(A)dP={config:B,mtime:A.mtimeMs};else dP={config:B,mtime:Date.now()};return B}catch{return uP(fJ,vJ)}}function t40(A){let B=VA();if(B.customApiKeyResponses?.approved?.includes(A))return"approved";if(B.customApiKeyResponses?.rejected?.includes(A))return"rejected";return"new"}function e40(A,B,Q){let I=GU4(A),G=b1();if(!G.existsSync(I))G.mkdirSync(I);let D=Object.fromEntries(Object.entries(B).filter(([Z,Y])=>JSON.stringify(Y)!==JSON.stringify(Q[Z])));sE(A,JSON.stringify(D,null,2))}var bj1=!1;function A60(){if(bj1)return;bj1=!0,uP(fJ,vJ,!0)}function uP(A,B,Q){if(!bj1)throw new Error("Config accessed before allowed.");if(!b1().existsSync(A))return qT(B);try{let I=b1().readFileSync(A,{encoding:"utf-8"});try{let G=JSON.parse(I);return{...qT(B),...G}}catch(G){let D=G instanceof Error?G.message:String(G);throw new yv(D,A,B)}}catch(I){if(I instanceof yv&&Q)throw I;return qT(B)}}function E9(){let A=gj1(u4()),B=uP(fJ,vJ);if(!B.projects)return s40(A);let Q=B.projects[A]??s40(A);if(typeof Q.allowedTools==="string")Q.allowedTools=D8(Q.allowedTools)??[];return Q}function _6(A){let B=uP(fJ,vJ);e40(fJ,{...B,projects:{...B.projects,[gj1(u4())]:A}},vJ)}function g31(){return!!(process.env.DISABLE_AUTOUPDATER||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC||VA().autoUpdaterStatus==="disabled")}function h31(){let A=A3();if(vW(A?.scopes))return!1;let Q=VA(),I=Q.oauthAccount?.organizationRole,G=Q.oauthAccount?.workspaceRole;if(!I||!G)return!0;return["admin","billing"].includes(I)||["workspace_admin","workspace_billing"].includes(G)}function FU4(A){let B=D8(A),Q={};if(B&&typeof B==="object"){let I=kv.safeParse(B);if(I.success){let G=I.data;for(let[D,Z]of Object.entries(G.mcpServers))Q[D]=Z}}return Q}function dj1(A){let B=vj1(dA(),".mcp.json");sE(B,JSON.stringify(A,null,2),{encoding:"utf8"})}var UU=b0(()=>{let A=vj1(dA(),".mcp.json");if(!b1().existsSync(A))return{};try{let B=b1().readFileSync(A,{encoding:"utf-8"}),Q=FU4(B);return j1("tengu_mcpjson_found",{numServers:Object.keys(Q).length}),Q}catch{}return{}},()=>{let A=dA(),B=vj1(A,".mcp.json");if(b1().existsSync(B))try{let Q=b1().readFileSync(B,{encoding:"utf-8"});return`${A}:${Q}`}catch{return A}return A});function pP(){let A=VA();if(A.userID)return A.userID;let B=ZU4(32).toString("hex");return T0({...A,userID:B}),B}function B60(){let A=VA();if(!A.firstStartTime)T0({...A,firstStartTime:new Date().toISOString()})}function Q60(A,B){if(j1("tengu_config_get",{key:A,global:B}),B){if(!hj1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Li.join(", ")}`),process.exit(1);return VA()[A]}else{if(!mj1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Ri.join(", ")}`),process.exit(1);return E9()[A]}}function I60(A,B,Q){if(j1("tengu_config_set",{key:A,global:Q}),Q){if(!hj1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Li.join(", ")}`),process.exit(1);if(A==="autoUpdaterStatus"&&!YU4(B))console.error("Error: Invalid value for autoUpdaterStatus. Must be one of: disabled, enabled, no_permissions, not_configured"),process.exit(1);if(WU4(A,Q)&&typeof B==="string")try{let G=JSON.parse(B);if(typeof G!=="object"||G===null||Array.isArray(G))console.error("Error: 'env' must be a valid JSON object"),process.exit(1);let D=VA();T0({...D,[A]:G}),process.exit(0)}catch(G){console.error(`Error: Failed to parse JSON for 'env': ${G instanceof Error?G.message:String(G)}`),process.exit(1)}if(xv(A,Q)&&typeof B==="string"){console.warn(MA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let G=B.split(",").map((D)=>D.trim()).filter((D)=>D.length>0);b31(A,G,Q);return}let I=VA();T0({...I,[A]:B})}else{if(!mj1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Ri.join(", ")}. Did you mean --global?`),process.exit(1);if(xv(A,Q)&&typeof B==="string"){console.warn(MA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let G=B.split(",").map((D)=>D.trim()).filter((D)=>D.length>0);b31(A,G,Q);return}let I=E9();_6({...I,[A]:B})}process.exit(0)}function G60(A,B){if(j1("tengu_config_delete",{key:A,global:B}),B){if(!hj1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Li.join(", ")}`),process.exit(1);let Q=VA();delete Q[A],T0(Q)}else{if(!mj1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Ri.join(", ")}. Did you mean --global?`),process.exit(1);let Q=E9();delete Q[A],_6(Q)}}function D60(A){if(j1("tengu_config_list",{global:A}),A)return g21(VA(),Li);else return g21(E9(),Ri)}import{execSync as JU4}from"child_process";var Pv=b0(async()=>{let A=pP(),B=VA();return{customIDs:{sessionId:Q5},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.1"}.VERSION,email:CU4(),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 CU4(){return;try{return JU4("git config --get user.email").toString().trim()}catch{return}}function Z60(){XY.init({dsn:bjA,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.1"}.VERSION,integrations:[new XY.Integrations.Http({tracing:!0}),new XY.Integrations.Modules,new XY.Integrations.Console,new XY.Integrations.FunctionToString,new XY.Integrations.LinkedErrors],tracesSampleRate:1,tracePropagationTargets:["localhost"]})}async function g41(A){try{let B=await Pv();XY.setExtras({nodeVersion:uA.nodeVersion,platform:uA.platform,isCI:uA.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.1"}.VERSION,sessionId:Q5,statsigGates:w40(),terminal:uA.terminal,userType:"external"}),XY.setUser({id:B.userID,email:B.email}),XY.captureException(A)}catch{}}function Y60(){let A=process.env.ANTHROPIC_MODEL,B=n7();Object.assign(process.env,VA().env),Object.assign(process.env,B.env)}var oG=F1(S1(),1);import{Stream as FM4}from"node:stream";var iB0=F1(S1(),1);function W60(A,B,{signal:Q,edges:I}={}){let G=void 0,D=null,Z=I!=null&&I.includes("leading"),Y=I==null||I.includes("trailing"),W=()=>{if(D!==null)A.apply(G,D),G=void 0,D=null},F=()=>{if(Y)W();V()},J=null,C=()=>{if(J!=null)clearTimeout(J);J=setTimeout(()=>{J=null,F()},B)},X=()=>{if(J!==null)clearTimeout(J),J=null},V=()=>{X(),G=void 0,D=null},K=()=>{X(),W()},U=function(...N){if(Q?.aborted)return;G=this,D=N;let q=J==null;if(C(),Z&&q)W()};return U.schedule=C,U.cancel=V,U.flush=K,Q?.addEventListener("abort",V,{once:!0}),U}function F60(A,B=0,Q={}){if(typeof Q!=="object")Q={};let{signal:I,leading:G=!1,trailing:D=!0,maxWait:Z}=Q,Y=Array(2);if(G)Y[0]="leading";if(D)Y[1]="trailing";let W=void 0,F=null,J=W60(function(...V){W=A.apply(this,V),F=null},B,{signal:I,edges:Y}),C=function(...V){if(Z!=null){if(F===null)F=Date.now();else if(Date.now()-F>=Z)return W=A.apply(this,V),F=Date.now(),J.cancel(),J.schedule(),W}return J.apply(this,V),W},X=()=>{return J.flush(),W};return C.cancel=J.cancel,C.flush=X,C}function m31(A,B=0,Q={}){if(typeof Q!=="object")Q={};let{leading:I=!0,trailing:G=!0,signal:D}=Q;return F60(A,B,{leading:I,trailing:G,signal:D,maxWait:B})}var jM={};Nu(jM,{scrollUp:()=>_U4,scrollDown:()=>jU4,link:()=>bU4,image:()=>gU4,iTerm:()=>hU4,exitAlternativeScreen:()=>fU4,eraseUp:()=>SU4,eraseStartLine:()=>TU4,eraseScreen:()=>uj1,eraseLines:()=>RU4,eraseLine:()=>V60,eraseEndLine:()=>OU4,eraseDown:()=>PU4,enterAlternativeScreen:()=>xU4,cursorUp:()=>C60,cursorTo:()=>KU4,cursorShow:()=>cj1,cursorSavePosition:()=>UU4,cursorRestorePosition:()=>NU4,cursorPrevLine:()=>MU4,cursorNextLine:()=>qU4,cursorMove:()=>HU4,cursorLeft:()=>X60,cursorHide:()=>LU4,cursorGetPosition:()=>$U4,cursorForward:()=>wU4,cursorDown:()=>zU4,cursorBackward:()=>EU4,clearTerminal:()=>kU4,clearScreen:()=>yU4,beep:()=>vU4});import pj1 from"node:process";var d31=globalThis.window?.document!==void 0,Ka5=globalThis.process?.versions?.node!==void 0,Ha5=globalThis.process?.versions?.bun!==void 0,za5=globalThis.Deno?.version?.deno!==void 0,wa5=globalThis.process?.versions?.electron!==void 0,Ea5=globalThis.navigator?.userAgent?.includes("jsdom")===!0,Ua5=typeof WorkerGlobalScope!=="undefined"&&globalThis instanceof WorkerGlobalScope,Na5=typeof DedicatedWorkerGlobalScope!=="undefined"&&globalThis instanceof DedicatedWorkerGlobalScope,$a5=typeof SharedWorkerGlobalScope!=="undefined"&&globalThis instanceof SharedWorkerGlobalScope,qa5=typeof ServiceWorkerGlobalScope!=="undefined"&&globalThis instanceof ServiceWorkerGlobalScope,Oi=globalThis.navigator?.userAgentData?.platform,Ma5=Oi==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",La5=Oi==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",Ra5=Oi==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",Oa5=Oi==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Ta5=Oi==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var j5="\x1B[",Pi="\x1B]",fv="\x07",Ti=";",J60=!d31&&pj1.env.TERM_PROGRAM==="Apple_Terminal",XU4=!d31&&pj1.platform==="win32",VU4=d31?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:pj1.cwd,KU4=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");if(typeof B!=="number")return j5+(A+1)+"G";return j5+(B+1)+Ti+(A+1)+"H"},HU4=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");let Q="";if(A<0)Q+=j5+-A+"D";else if(A>0)Q+=j5+A+"C";if(B<0)Q+=j5+-B+"A";else if(B>0)Q+=j5+B+"B";return Q},C60=(A=1)=>j5+A+"A",zU4=(A=1)=>j5+A+"B",wU4=(A=1)=>j5+A+"C",EU4=(A=1)=>j5+A+"D",X60=j5+"G",UU4=J60?"\x1B7":j5+"s",NU4=J60?"\x1B8":j5+"u",$U4=j5+"6n",qU4=j5+"E",MU4=j5+"F",LU4=j5+"?25l",cj1=j5+"?25h",RU4=(A)=>{let B="";for(let Q=0;Q<A;Q++)B+=V60+(Q<A-1?C60():"");if(A)B+=X60;return B},OU4=j5+"K",TU4=j5+"1K",V60=j5+"2K",PU4=j5+"J",SU4=j5+"1J",uj1=j5+"2J",_U4=j5+"S",jU4=j5+"T",yU4="\x1Bc",kU4=XU4?`${uj1}${j5}0f`:`${uj1}${j5}3J${j5}H`,xU4=j5+"?1049h",fU4=j5+"?1049l",vU4=fv,bU4=(A,B)=>[Pi,"8",Ti,Ti,B,fv,A,Pi,"8",Ti,Ti,fv].join(""),gU4=(A,B={})=>{let Q=`${Pi}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+":"+Buffer.from(A).toString("base64")+fv},hU4={setCwd:(A=VU4())=>`${Pi}50;CurrentDir=${A}${fv}`,annotation(A,B={}){let Q=`${Pi}1337;`,I=B.x!==void 0,G=B.y!==void 0;if((I||G)&&!(I&&G&&B.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replaceAll("|",""),Q+=B.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",B.length>0)Q+=(I?[A,B.length,B.x,B.y]:[B.length,A]).join("|");else Q+=A;return Q+fv}};var mU4=(A)=>{let B=new Set;do for(let Q of Reflect.ownKeys(A))B.add([A,Q]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return B};function lj1(A,{include:B,exclude:Q}={}){let I=(G)=>{let D=(Z)=>typeof Z==="string"?G===Z:Z.test(G);if(B)return B.some(D);if(Q)return!Q.some(D);return!0};for(let[G,D]of mU4(A.constructor.prototype)){if(D==="constructor"||!I(D))continue;let Z=Reflect.getOwnPropertyDescriptor(G,D);if(Z&&typeof Z.value==="function")A[D]=A[D].bind(A)}return A}var cP=[];cP.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")cP.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")cP.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var u31=(A)=>!!A&&typeof A==="object"&&typeof A.removeListener==="function"&&typeof A.emit==="function"&&typeof A.reallyExit==="function"&&typeof A.listeners==="function"&&typeof A.kill==="function"&&typeof A.pid==="number"&&typeof A.on==="function",ij1=Symbol.for("signal-exit emitter"),nj1=globalThis,dU4=Object.defineProperty.bind(Object);class K60{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(nj1[ij1])return nj1[ij1];dU4(nj1,ij1,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,B){this.listeners[A].push(B)}removeListener(A,B){let Q=this.listeners[A],I=Q.indexOf(B);if(I===-1)return;if(I===0&&Q.length===1)Q.length=0;else Q.splice(I,1)}emit(A,B,Q){if(this.emitted[A])return!1;this.emitted[A]=!0;let I=!1;for(let G of this.listeners[A])I=G(B,Q)===!0||I;if(A==="exit")I=this.emit("afterExit",B,Q)||I;return I}}class sj1{}var uU4=(A)=>{return{onExit(B,Q){return A.onExit(B,Q)},load(){return A.load()},unload(){return A.unload()}}};class H60 extends sj1{onExit(){return()=>{}}load(){}unload(){}}class z60 extends sj1{#A=aj1.platform==="win32"?"SIGINT":"SIGHUP";#B=new K60;#Q;#I;#G;#W={};#D=!1;constructor(A){super();this.#Q=A,this.#W={};for(let B of cP)this.#W[B]=()=>{let Q=this.#Q.listeners(B),{count:I}=this.#B,G=A;if(typeof G.__signal_exit_emitter__==="object"&&typeof G.__signal_exit_emitter__.count==="number")I+=G.__signal_exit_emitter__.count;if(Q.length===I){this.unload();let D=this.#B.emit("exit",null,B),Z=B==="SIGHUP"?this.#A:B;if(!D)A.kill(A.pid,Z)}};this.#G=A.reallyExit,this.#I=A.emit}onExit(A,B){if(!u31(this.#Q))return()=>{};if(this.#D===!1)this.load();let Q=B?.alwaysLast?"afterExit":"exit";return this.#B.on(Q,A),()=>{if(this.#B.removeListener(Q,A),this.#B.listeners.exit.length===0&&this.#B.listeners.afterExit.length===0)this.unload()}}load(){if(this.#D)return;this.#D=!0,this.#B.count+=1;for(let A of cP)try{let B=this.#W[A];if(B)this.#Q.on(A,B)}catch(B){}this.#Q.emit=(A,...B)=>{return this.#F(A,...B)},this.#Q.reallyExit=(A)=>{return this.#J(A)}}unload(){if(!this.#D)return;this.#D=!1,cP.forEach((A)=>{let B=this.#W[A];if(!B)throw new Error("Listener not defined for signal: "+A);try{this.#Q.removeListener(A,B)}catch(Q){}}),this.#Q.emit=this.#I,this.#Q.reallyExit=this.#G,this.#B.count-=1}#J(A){if(!u31(this.#Q))return 0;return this.#Q.exitCode=A||0,this.#B.emit("exit",this.#Q.exitCode,null),this.#G.call(this.#Q,this.#Q.exitCode)}#F(A,...B){let Q=this.#I;if(A==="exit"&&u31(this.#Q)){if(typeof B[0]==="number")this.#Q.exitCode=B[0];let I=Q.call(this.#Q,A,...B);return this.#B.emit("exit",this.#Q.exitCode,null),I}else return Q.call(this.#Q,A,...B)}}var aj1=globalThis.process,{onExit:w60,load:va5,unload:ba5}=uU4(u31(aj1)?new z60(aj1):new H60);import{PassThrough as E60}from"node:stream";var U60=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],rj1={},pU4=(A)=>{let B=new E60,Q=new E60;B.write=(G)=>{A("stdout",G)},Q.write=(G)=>{A("stderr",G)};let I=new console.Console(B,Q);for(let G of U60)rj1[G]=console[G],console[G]=I[G];return()=>{for(let G of U60)console[G]=rj1[G];rj1={}}},N60=pU4;var l80=F1(S60(),1);var Wy1=16;var Y2={},r31=Y2.ALIGN_AUTO=0,yi=Y2.ALIGN_FLEX_START=1,ki=Y2.ALIGN_CENTER=2,xi=Y2.ALIGN_FLEX_END=3,o31=Y2.ALIGN_STRETCH=4,_60=Y2.ALIGN_BASELINE=5,j60=Y2.ALIGN_SPACE_BETWEEN=6,y60=Y2.ALIGN_SPACE_AROUND=7,k60=Y2.DIMENSION_WIDTH=0,x60=Y2.DIMENSION_HEIGHT=1,f60=Y2.DIRECTION_INHERIT=0,v60=Y2.DIRECTION_LTR=1,b60=Y2.DIRECTION_RTL=2,bv=Y2.DISPLAY_FLEX=0,kM=Y2.DISPLAY_NONE=1,Qz=Y2.EDGE_LEFT=0,xM=Y2.EDGE_TOP=1,Iz=Y2.EDGE_RIGHT=2,fM=Y2.EDGE_BOTTOM=3,t31=Y2.EDGE_START=4,e31=Y2.EDGE_END=5,fi=Y2.EDGE_HORIZONTAL=6,vi=Y2.EDGE_VERTICAL=7,bi=Y2.EDGE_ALL=8,g60=Y2.EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=0,h60=Y2.EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=1,m60=Y2.EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=2,AQ1=Y2.FLEX_DIRECTION_COLUMN=0,BQ1=Y2.FLEX_DIRECTION_COLUMN_REVERSE=1,QQ1=Y2.FLEX_DIRECTION_ROW=2,IQ1=Y2.FLEX_DIRECTION_ROW_REVERSE=3,GQ1=Y2.GUTTER_COLUMN=0,DQ1=Y2.GUTTER_ROW=1,ZQ1=Y2.GUTTER_ALL=2,YQ1=Y2.JUSTIFY_FLEX_START=0,WQ1=Y2.JUSTIFY_CENTER=1,FQ1=Y2.JUSTIFY_FLEX_END=2,JQ1=Y2.JUSTIFY_SPACE_BETWEEN=3,CQ1=Y2.JUSTIFY_SPACE_AROUND=4,XQ1=Y2.JUSTIFY_SPACE_EVENLY=5,d60=Y2.LOG_LEVEL_ERROR=0,u60=Y2.LOG_LEVEL_WARN=1,p60=Y2.LOG_LEVEL_INFO=2,c60=Y2.LOG_LEVEL_DEBUG=3,l60=Y2.LOG_LEVEL_VERBOSE=4,i60=Y2.LOG_LEVEL_FATAL=5,n60=Y2.MEASURE_MODE_UNDEFINED=0,a60=Y2.MEASURE_MODE_EXACTLY=1,s60=Y2.MEASURE_MODE_AT_MOST=2,r60=Y2.NODE_TYPE_DEFAULT=0,o60=Y2.NODE_TYPE_TEXT=1,t60=Y2.OVERFLOW_VISIBLE=0,e60=Y2.OVERFLOW_HIDDEN=1,A50=Y2.OVERFLOW_SCROLL=2,B50=Y2.POSITION_TYPE_STATIC=0,VQ1=Y2.POSITION_TYPE_RELATIVE=1,KQ1=Y2.POSITION_TYPE_ABSOLUTE=2,Q50=Y2.PRINT_OPTIONS_LAYOUT=1,I50=Y2.PRINT_OPTIONS_STYLE=2,G50=Y2.PRINT_OPTIONS_CHILDREN=4,D50=Y2.UNIT_UNDEFINED=0,Z50=Y2.UNIT_POINT=1,Y50=Y2.UNIT_PERCENT=2,W50=Y2.UNIT_AUTO=3,HQ1=Y2.WRAP_NO_WRAP=0,zQ1=Y2.WRAP_WRAP=1,wQ1=Y2.WRAP_WRAP_REVERSE=2;var F50=(A)=>{function B(G,D,Z){let Y=G[D];G[D]=function(...W){return Z.call(this,Y,...W)}}for(let G of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"]){let D={[Y2.UNIT_POINT]:A.Node.prototype[G],[Y2.UNIT_PERCENT]:A.Node.prototype[`${G}Percent`],[Y2.UNIT_AUTO]:A.Node.prototype[`${G}Auto`]};B(A.Node.prototype,G,function(Z,...Y){let W,F,J=Y.pop();if(J==="auto")W=Y2.UNIT_AUTO,F=void 0;else if(typeof J=="object")W=J.unit,F=J.valueOf();else if(W=typeof J=="string"&&J.endsWith("%")?Y2.UNIT_PERCENT:Y2.UNIT_POINT,F=parseFloat(J),!Number.isNaN(J)&&Number.isNaN(F))throw Error(`Invalid value ${J} for ${G}`);if(!D[W])throw Error(`Failed to execute "${G}": Unsupported unit '${J}'`);return F!==void 0?D[W].call(this,...Y,F):D[W].call(this,...Y)})}function Q(G){return A.MeasureCallback.implement({measure:(...D)=>{let{width:Z,height:Y}=G(...D);return{width:Z??NaN,height:Y??NaN}}})}function I(G){return A.DirtiedCallback.implement({dirtied:G})}return B(A.Node.prototype,"setMeasureFunc",function(G,D){return D?G.call(this,Q(D)):this.unsetMeasureFunc()}),B(A.Node.prototype,"setDirtiedFunc",function(G,D){G.call(this,I(D))}),B(A.Config.prototype,"free",function(){A.Config.destroy(this)}),B(A.Node,"create",(G,D)=>D?A.Node.createWithConfig(D):A.Node.createDefault()),B(A.Node.prototype,"free",function(){A.Node.destroy(this)}),B(A.Node.prototype,"freeRecursive",function(){for(let G=0,D=this.getChildCount();G<D;++G)this.getChild(0).freeRecursive();this.free()}),B(A.Node.prototype,"calculateLayout",function(G,D=NaN,Z=NaN,Y=Y2.DIRECTION_LTR){return G.call(this,D,Z,Y)}),{Config:A.Config,Node:A.Node,...Y2}};var JN4=(()=>{var A=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(B={}){W||(W=B!==void 0?B:{}),W.ready=new Promise(function(O1,R1){F=O1,J=R1});var Q,I,G=Object.assign({},W),D="";typeof document!="undefined"&&document.currentScript&&(D=document.currentScript.src),A&&(D=A),D=D.indexOf("blob:")!==0?D.substr(0,D.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var Z=console.log.bind(console),Y=console.warn.bind(console);Object.assign(W,G),G=null,typeof WebAssembly!="object"&&H1("no native wasm support detected");var W,F,J,C,X=!1;function V(O1,R1,p1){p1=R1+p1;for(var JA="";!(R1>=p1);){var ZA=O1[R1++];if(!ZA)break;if(128&ZA){var NA=63&O1[R1++];if((224&ZA)==192)JA+=String.fromCharCode((31&ZA)<<6|NA);else{var rA=63&O1[R1++];65536>(ZA=(240&ZA)==224?(15&ZA)<<12|NA<<6|rA:(7&ZA)<<18|NA<<12|rA<<6|63&O1[R1++])?JA+=String.fromCharCode(ZA):(ZA-=65536,JA+=String.fromCharCode(55296|ZA>>10,56320|1023&ZA))}}else JA+=String.fromCharCode(ZA)}return JA}function K(){var O1=C.buffer;W.HEAP8=U=new Int8Array(O1),W.HEAP16=q=new Int16Array(O1),W.HEAP32=R=new Int32Array(O1),W.HEAPU8=N=new Uint8Array(O1),W.HEAPU16=M=new Uint16Array(O1),W.HEAPU32=T=new Uint32Array(O1),W.HEAPF32=O=new Float32Array(O1),W.HEAPF64=S=new Float64Array(O1)}var U,N,q,M,R,T,O,S,f,n=[],g=[],Y1=[],r=0,w1=null;function H1(O1){throw Y(O1="Aborted("+O1+")"),X=!0,J(O1=new WebAssembly.RuntimeError(O1+". Build with -sASSERTIONS for more info.")),O1}function x(){return Q.startsWith("data:application/octet-stream;base64,")}function J1(){try{throw"both async and sync fetching of the wasm failed"}catch(O1){H1(O1)}}function x1(O1){for(;0<O1.length;)O1.shift()(W)}function o1(O1){if(O1===void 0)return"_unknown";var R1=(O1=O1.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=R1&&57>=R1?"_"+O1:O1}function a1(O1,R1){return O1=o1(O1),function(){return R1.apply(this,arguments)}}Q="yoga.wasm",x()||(Q=D+Q);var PA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],cA=[];function FA(O1){var R1=Error,p1=a1(O1,function(JA){this.name=O1,this.message=JA,(JA=Error(JA).stack)!==void 0&&(this.stack=this.toString()+`
644
+ `}function h40(A){try{return b1().accessSync(A,jE4.X_OK),!0}catch(B){try{return m40(`${A} --version`,{timeout:1000,stdio:"ignore"}),!0}catch{return!1}}}var u40=b0(function(){let A=(J)=>{try{return m40(`which ${J}`,{stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return null}},B=process.env.SHELL,Q=B&&(B.includes("bash")||B.includes("zsh")),I=B?.includes("bash"),G=A("zsh"),D=A("bash"),Z=["/bin","/usr/bin","/usr/local/bin","/opt/homebrew/bin"],W=(I?["bash","zsh"]:["zsh","bash"]).flatMap((J)=>Z.map((C)=>`${C}/${J}`));if(I){if(D)W.unshift(D);if(G)W.push(G)}else{if(G)W.unshift(G);if(D)W.push(D)}if(Q&&h40(B))W.unshift(B);let F=W.find((J)=>J&&h40(J));if(!F){let J="No suitable shell found. Claude CLI requires a Posix shell environment. Please ensure you have a valid shell installed and the SHELL environment variable set.";throw m1(new Error(J)),new Error(J)}return F});function uE4(){let A=Math.floor(Math.random()*65536).toString(16).padStart(4,"0"),B=u40(),Q=`${Pj1.tmpdir()}/claude-shell-snapshot-${A}`;return new Promise((I)=>{try{let G=d40(B);if(!g40(G)){I(void 0);return}let D=dE4(B,Q);fE4(B,["-c","-l",D],{env:{...process.env.CLAUDE_CODE_DONT_INHERIT_ENV?{}:process.env,SHELL:B,GIT_EDITOR:"true",CLAUDECODE:"1"},timeout:1e4,maxBuffer:1048576},(Z,Y,W)=>{if(Z)m1(new Error(`Failed to create shell snapshot: ${W}`)),j1("shell_snapshot_failed",{stderr_length:W.length}),I(void 0);else if(g40(Q)){let F=kE4(Q).size;j1("shell_snapshot_created",{snapshot_size:F}),I(Q)}else j1("shell_unknown_error",{}),I(void 0)})}catch(G){m1(G instanceof Error?G:new Error(String(G))),j1("shell_snapshot_error",{}),I(void 0)}})}var Sj1=b0(async function(){let A=await uE4();return{binShell:u40(),snapshotFilePath:A}});async function pE4(A,B,Q,I=!1,G){let D=Q||mE4,{binShell:Z,snapshotFilePath:Y}=await Sj1();if(G)Z=G,Y=void 0;let W=Math.floor(Math.random()*65536).toString(16).padStart(4,"0"),F=`${Pj1.tmpdir()}/claude-${W}-cwd`,J=qi.default.quote([A,"<","/dev/null"]);if(Z.includes("bash")&&!I){let U=A.split(/(?<!\|)\|(?!\|)/);if(U.length>1)J=qi.default.quote([U[0],"<","/dev/null","|",U.slice(1).join("|")])}if(I)A=b40(A),J=qi.default.quote([A,"<","/dev/null"]);let C=()=>{};if(I){let U=v40(J);J=U.finalCommand,C=U.cleanup}let X=[];if(Y)X.push(`source ${Y}`);X.push(`eval ${J}`),X.push(`pwd >| ${F}`);let V=X.join(" && "),K=p40();if(B.aborted)return y40();try{let U=Oj1(A),N=vE4(Z,["-c","-l",V],{env:{...process.env,SHELL:Z,GIT_EDITOR:"true",CLAUDECODE:"1",...I?U.env:{}},cwd:K,detached:!0}),q=j40(N,B,D);return q.result.then((M)=>{if(M&&!M.backgroundTaskId)try{mW(yE4(F,{encoding:"utf8"}).trim(),K)}catch{j1("shell_set_cwd",{success:!1})}C()}).catch(()=>{C()}),C=()=>{},q}finally{C()}}function p40(){return nGA()}function mW(A,B){let Q=bE4(A)?A:gE4(B||b1().cwd(),A);if(!b1().existsSync(Q))throw new Error(`Path "${Q}" does not exist`);aGA(Q),j1("shell_set_cwd",{success:!0})}var cE4=pE4;function c40(){return cE4}function dA(){try{return p40()}catch{return u4()}}var _j1=1000,jj1=60;function l0(A,B,Q,I=10*jj1*_j1,G=!0,D=!0){return jX(A,B,Q,I,G,D?dA():void 0)}function jX(A,B,Q,I=10*jj1*_j1,G=!0,D){return new Promise((Z)=>{try{iE4(A,B,{maxBuffer:1e6,signal:Q,timeout:I,cwd:D},(Y,W,F)=>{if(Y)if(G){let J=typeof Y.code==="number"?Y.code:1;Z({stdout:W||"",stderr:F||"",code:J,error:typeof Y.code==="string"?Y.code:String(J)})}else Z({stdout:"",stderr:"",code:1});else Z({stdout:W,stderr:F,code:0})})}catch(Y){m1(Y),Z({stdout:"",stderr:"",code:1})}})}function cG(A,B,Q=10*jj1*_j1){B?.throwIfAborted();let I=nE4(A,{env:process.env,maxBuffer:1e6,timeout:Q,cwd:dA(),stdio:["ignore","pipe","pipe"]});if(!I)return null;return I.toString().trim()||null}import{join as v31}from"path";import{homedir as l40}from"os";var i40=F1(bq1(),1);var S5=process.env.CLAUDE_CONFIG_DIR??v31(l40(),".claude"),fJ=process.env.CLAUDE_CONFIG_DIR?v31(S5,"config.json"):v31(l40(),".claude.json"),zn5=v31(S5,"memory"),aE4=b0(async()=>{let{code:A}=await l0("test",["-f","/.dockerenv"]);if(A!==0)return!1;return process.platform==="linux"}),sE4=b0(async()=>{try{let A=new AbortController,B=setTimeout(()=>A.abort(),1000);return await K5.head("http://1.1.1.1",{signal:A.signal}),clearTimeout(B),!0}catch{return!1}});async function jv(A,B=["--version"]){return(await l0(A,B,void 0,1000,!0,!1)).code===0}var rE4=b0(async()=>{let A=[];if(await jv("npm"))A.push("npm");if(await jv("yarn"))A.push("yarn");if(await jv("pnpm"))A.push("pnpm");return A}),oE4=b0(async()=>{let A=[];if(await jv("bun"))A.push("bun");if(await jv("deno"))A.push("deno");if(await jv("node"))A.push("node");return A}),tE4=b0(()=>{if(process.versions.bun!==void 0||process.env.BUN_INSTALL!==void 0)return!0;return!1}),n40=b0(()=>{try{return b1().existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")}catch(A){return!1}}),eE4=b0(()=>{try{if(!n40())return!1;let{cmd:A}=i40.findActualExecutable("npm",[]);return A.startsWith("/mnt/c/")}catch(A){return!1}});function AU4(){if(process.env.CURSOR_TRACE_ID)return"cursor";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("/.cursor-server/bin/"))return"cursor";if(process.env.VSCODE_GIT_ASKPASS_MAIN?.includes("/.windsurf-server/bin/"))return"windsurf";let A=process.env.__CFBundleIdentifier?.toLowerCase();if(A?.includes("windsurf"))return"windsurf";if(A?.includes("pycharm"))return"pycharm";if(A?.includes("intellij"))return"intellij";if(A?.includes("webstorm"))return"webstorm";if(A?.includes("phpstorm"))return"phpstorm";if(A?.includes("rubymine"))return"rubymine";if(A?.includes("clion"))return"clion";if(A?.includes("goland"))return"goland";if(A?.includes("rider"))return"rider";if(A?.includes("datagrip"))return"datagrip";if(A?.includes("appcode"))return"appcode";if(A?.includes("dataspell"))return"dataspell";if(A?.includes("aqua"))return"aqua";if(A?.includes("gateway"))return"gateway";if(A?.includes("fleet"))return"fleet";if(A?.includes("com.google.android.studio"))return"androidstudio";if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm")return"pycharm";if(process.env.TERM==="xterm-ghostty")return"ghostty";if(process.env.TERM?.includes("kitty"))return"kitty";if(process.env.TERM_PROGRAM)return process.env.TERM_PROGRAM;if(process.env.TMUX)return"tmux";if(process.env.STY)return"screen";if(process.env.KONSOLE_VERSION)return"konsole";if(process.env.GNOME_TERMINAL_SERVICE)return"gnome-terminal";if(process.env.XTERM_VERSION)return"xterm";if(process.env.VTE_VERSION)return"vte-based";if(process.env.TERMINATOR_UUID)return"terminator";if(process.env.KITTY_WINDOW_ID)return"kitty";if(process.env.ALACRITTY_LOG)return"alacritty";if(process.env.TILIX_ID)return"tilix";if(process.env.WT_SESSION)return"windows-terminal";if(process.env.SESSIONNAME&&process.env.TERM==="cygwin")return"cygwin";if(process.env.MSYSTEM)return process.env.MSYSTEM.toLowerCase();if(process.env.ConEmuTask)return"conemu";if(process.env.WSL_DISTRO_NAME)return`wsl-${process.env.WSL_DISTRO_NAME}`;if(process.env.SSH_CONNECTION||process.env.SSH_CLIENT||process.env.SSH_TTY)return"ssh-session";if(process.env.TERM){let B=process.env.TERM;if(B.includes("alacritty"))return"alacritty";if(B.includes("rxvt"))return"rxvt";if(B.includes("termite"))return"termite";return process.env.TERM}if(!process.stdout.isTTY)return"non-interactive";return null}var uA={getIsDocker:aE4,hasInternetAccess:sE4,isCI:Boolean(!1),platform:process.platform==="win32"?"windows":process.platform==="darwin"?"macos":"linux",nodeVersion:process.version,terminal:AU4(),getPackageManagers:rE4,getRuntimes:oE4,isRunningWithBun:tE4,isWslEnvironment:n40,isNpmFromWindowsPath:eE4};if(uA.isCI)console.warn("Running in CI environment - interactive features are limited");function JP(A){if(!A)return!1;let B=A.toLowerCase().trim();return["1","true","yes","on"].includes(B)}function a40(A){let B={};if(A)for(let Q of A){let[I,...G]=Q.split("=");if(!I||G.length===0)throw new Error(`Invalid environment variable format: ${Q}, environment variables should be added as: -e KEY1=value1 -e KEY2=value2`);B[I]=G.join("=")}return B}import{randomBytes as ZU4}from"crypto";class yj1 extends TypeError{}class t7 extends Error{}class yv extends Error{filePath;defaultConfig;constructor(A,B,Q){super(A);this.name="ConfigParseError",this.filePath=B,this.defaultConfig=Q}}class mP extends Error{stdout;stderr;code;interrupted;constructor(A,B,Q,I){super("Shell command failed");this.stdout=A;this.stderr=B;this.code=Q;this.interrupted=I;this.name="ShellError"}}function Mi(A,B){return A instanceof Error&&A.message===B}var kj1=i.enum(["local","user","project"]),Nn5=i.enum(["stdio","sse","sse-ide"]),xj1=i.object({type:i.literal("stdio").optional(),command:i.string().min(1,"Command cannot be empty"),args:i.array(i.string()).default([]),env:i.record(i.string()).optional()}),BU4=i.object({type:i.literal("sse"),url:i.string().url("Must be a valid URL"),headers:i.record(i.string()).optional()}),QU4=i.object({type:i.literal("sse-ide"),url:i.string().url("Must be a valid URL"),ideName:i.string()}),IU4=i.object({type:i.literal("ws-ide"),url:i.string().url("Must be a valid URL"),ideName:i.string()}),fj1=i.union([xj1,BU4,QU4,IU4]);var kv=i.object({mcpServers:i.record(i.string(),fj1)});var _M={allowedTools:[],history:[],dontCrawlDirectory:!1,mcpContextUris:[],mcpServers:{},enabledMcpjsonServers:[],disabledMcpjsonServers:[],enableAllProjectMcpServers:!1,hasTrustDialogAccepted:!1,ignorePatterns:[],projectOnboardingSeenCount:0,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!1};function s40(A){let B={..._M};if(A===DU4())B.dontCrawlDirectory=!0;return B}function YU4(A){return["disabled","enabled","no_permissions","not_configured","migrated"].includes(A)}var vJ={numStartups:0,autoUpdaterStatus:"not_configured",theme:"dark",preferredNotifChannel:"auto",verbose:!1,editorMode:"normal",autoCompactEnabled:!0,hasSeenTasksHint:!1,queuedCommandUpHintCount:0,diffTool:"auto",customApiKeyResponses:{approved:[],rejected:[]},env:{},tipsHistory:{},memoryUsageCount:0,parallelAgents:{enabled:!1,count:1},promptQueueUseCount:0,todoFeatureEnabled:!0,messageIdleNotifThresholdMs:60000},Li=["apiKeyHelper","autoUpdaterStatus","theme","verbose","preferredNotifChannel","shiftEnterKeyBindingInstalled","editorMode","hasUsedBackslashReturn","supervisorMode","autoCompactEnabled","diffTool","env","tipsHistory","parallelAgents","todoFeatureEnabled","messageIdleNotifThresholdMs"];function hj1(A){return Li.includes(A)}var Ri=["allowedTools","dontCrawlDirectory","hasTrustDialogAccepted","hasCompletedProjectOnboarding","ignorePatterns"];function r40(){let A=dA(),B=uP(fJ,vJ);while(!0){if(B.projects?.[A]?.hasTrustDialogAccepted)return!0;let I=gj1(A,"..");if(I===A)break;A=I}return!1}var pn5={...vJ,autoUpdaterStatus:"disabled"},cn5={..._M};function mj1(A){return Ri.includes(A)}function xv(A,B){if(B){let Q=VA();return A in Q&&Array.isArray(Q[A])}else{let Q=_M[A];return A in _M&&Array.isArray(Q)}}function WU4(A,B){if(xv(A,B))return!1;if(B){let Q=VA();return A in Q&&typeof Q[A]==="object"}else{let Q=_M[A];return A in _M&&typeof Q==="object"}}function b31(A,B,Q,I=!0){if(j1("tengu_config_add",{key:A,global:Q,count:B.length}),!xv(A,Q)){if(Q)console.error(`Error: '${A}' is not a valid array config key in global config`);else console.error(`Error: '${A}' is not a valid array config key in project config`);if(I)process.exit(1);else return}if(Q){let G=VA(),D=A,Z=G[D]||[],Y=new Set(Z),W=Y.size;for(let F of B)Y.add(F);if(Y.size>W){let F=Array.from(Y).sort();T0({...G,[D]:F})}}else{let G=E9(),D=A,Z=G[D]||[],Y=new Set(Z),W=Y.size;for(let F of B)Y.add(F);if(Y.size>W){let F=Array.from(Y).sort();_6({...G,[D]:F})}}if(I)process.exit(0)}function o40(A,B,Q,I=!0){if(j1("tengu_config_remove",{key:A,global:Q,count:B.length}),Q){let G=VA();if(!(A in G)||!Array.isArray(G[A]))if(console.error(`Error: '${A}' is not a valid array config key in global config`),I)process.exit(1);else return;let D=A,Z=G[D];if(!Z)Z=[];let Y=new Set(B),W=Z.filter((F)=>!Y.has(F));if(Z.length!==W.length)T0({...G,[D]:W.sort()})}else{let G=E9(),D=_M[A];if(!(A in _M)||!Array.isArray(D))if(console.error(`Error: '${A}' is not a valid array config key in project config`),I)process.exit(1);else return;let Z=A,Y=G[Z];if(!Y)Y=[];let W=new Set(B),F=Y.filter((J)=>!W.has(J));if(Y.length!==F.length)_6({...G,[Z]:F.sort()})}if(I)process.exit(0)}function T0(A){e40(fJ,{...A,projects:uP(fJ,vJ).projects},vJ),dP.config=null,dP.mtime=0}var dP={config:null,mtime:0};function VA(){try{let A=b1().existsSync(fJ)?b1().statSync(fJ):null;if(dP.config&&A){if(A.mtimeMs<=dP.mtime)return dP.config}let B=uP(fJ,vJ);if(A)dP={config:B,mtime:A.mtimeMs};else dP={config:B,mtime:Date.now()};return B}catch{return uP(fJ,vJ)}}function t40(A){let B=VA();if(B.customApiKeyResponses?.approved?.includes(A))return"approved";if(B.customApiKeyResponses?.rejected?.includes(A))return"rejected";return"new"}function e40(A,B,Q){let I=GU4(A),G=b1();if(!G.existsSync(I))G.mkdirSync(I);let D=Object.fromEntries(Object.entries(B).filter(([Z,Y])=>JSON.stringify(Y)!==JSON.stringify(Q[Z])));sE(A,JSON.stringify(D,null,2))}var bj1=!1;function A60(){if(bj1)return;bj1=!0,uP(fJ,vJ,!0)}function uP(A,B,Q){if(!bj1)throw new Error("Config accessed before allowed.");if(!b1().existsSync(A))return qT(B);try{let I=b1().readFileSync(A,{encoding:"utf-8"});try{let G=JSON.parse(I);return{...qT(B),...G}}catch(G){let D=G instanceof Error?G.message:String(G);throw new yv(D,A,B)}}catch(I){if(I instanceof yv&&Q)throw I;return qT(B)}}function E9(){let A=gj1(u4()),B=uP(fJ,vJ);if(!B.projects)return s40(A);let Q=B.projects[A]??s40(A);if(typeof Q.allowedTools==="string")Q.allowedTools=D8(Q.allowedTools)??[];return Q}function _6(A){let B=uP(fJ,vJ);e40(fJ,{...B,projects:{...B.projects,[gj1(u4())]:A}},vJ)}function g31(){return!!(process.env.DISABLE_AUTOUPDATER||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC||VA().autoUpdaterStatus==="disabled")}function h31(){let A=A3();if(vW(A?.scopes))return!1;let Q=VA(),I=Q.oauthAccount?.organizationRole,G=Q.oauthAccount?.workspaceRole;if(!I||!G)return!0;return["admin","billing"].includes(I)||["workspace_admin","workspace_billing"].includes(G)}function FU4(A){let B=D8(A),Q={};if(B&&typeof B==="object"){let I=kv.safeParse(B);if(I.success){let G=I.data;for(let[D,Z]of Object.entries(G.mcpServers))Q[D]=Z}}return Q}function dj1(A){let B=vj1(dA(),".mcp.json");sE(B,JSON.stringify(A,null,2),{encoding:"utf8"})}var UU=b0(()=>{let A=vj1(dA(),".mcp.json");if(!b1().existsSync(A))return{};try{let B=b1().readFileSync(A,{encoding:"utf-8"}),Q=FU4(B);return j1("tengu_mcpjson_found",{numServers:Object.keys(Q).length}),Q}catch{}return{}},()=>{let A=dA(),B=vj1(A,".mcp.json");if(b1().existsSync(B))try{let Q=b1().readFileSync(B,{encoding:"utf-8"});return`${A}:${Q}`}catch{return A}return A});function pP(){let A=VA();if(A.userID)return A.userID;let B=ZU4(32).toString("hex");return T0({...A,userID:B}),B}function B60(){let A=VA();if(!A.firstStartTime)T0({...A,firstStartTime:new Date().toISOString()})}function Q60(A,B){if(j1("tengu_config_get",{key:A,global:B}),B){if(!hj1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Li.join(", ")}`),process.exit(1);return VA()[A]}else{if(!mj1(A))console.error(`Error: '${A}' is not a valid config key. Valid keys are: ${Ri.join(", ")}`),process.exit(1);return E9()[A]}}function I60(A,B,Q){if(j1("tengu_config_set",{key:A,global:Q}),Q){if(!hj1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Li.join(", ")}`),process.exit(1);if(A==="autoUpdaterStatus"&&!YU4(B))console.error("Error: Invalid value for autoUpdaterStatus. Must be one of: disabled, enabled, no_permissions, not_configured"),process.exit(1);if(WU4(A,Q)&&typeof B==="string")try{let G=JSON.parse(B);if(typeof G!=="object"||G===null||Array.isArray(G))console.error("Error: 'env' must be a valid JSON object"),process.exit(1);let D=VA();T0({...D,[A]:G}),process.exit(0)}catch(G){console.error(`Error: Failed to parse JSON for 'env': ${G instanceof Error?G.message:String(G)}`),process.exit(1)}if(xv(A,Q)&&typeof B==="string"){console.warn(MA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let G=B.split(",").map((D)=>D.trim()).filter((D)=>D.length>0);b31(A,G,Q);return}let I=VA();T0({...I,[A]:B})}else{if(!mj1(A))console.error(`Error: Cannot set '${A}'. Only these keys can be modified: ${Ri.join(", ")}. Did you mean --global?`),process.exit(1);if(xv(A,Q)&&typeof B==="string"){console.warn(MA.yellow(`Warning: '${A}' is an array type. Automatically using 'config add' instead of 'config set'.`));let G=B.split(",").map((D)=>D.trim()).filter((D)=>D.length>0);b31(A,G,Q);return}let I=E9();_6({...I,[A]:B})}process.exit(0)}function G60(A,B){if(j1("tengu_config_delete",{key:A,global:B}),B){if(!hj1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Li.join(", ")}`),process.exit(1);let Q=VA();delete Q[A],T0(Q)}else{if(!mj1(A))console.error(`Error: Cannot delete '${A}'. Only these keys can be modified: ${Ri.join(", ")}. Did you mean --global?`),process.exit(1);let Q=E9();delete Q[A],_6(Q)}}function D60(A){if(j1("tengu_config_list",{global:A}),A)return g21(VA(),Li);else return g21(E9(),Ri)}import{execSync as JU4}from"child_process";var Pv=b0(async()=>{let A=pP(),B=VA();return{customIDs:{sessionId:Q5},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.2"}.VERSION,email:CU4(),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 CU4(){return;try{return JU4("git config --get user.email").toString().trim()}catch{return}}function Z60(){XY.init({dsn:bjA,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.2"}.VERSION,integrations:[new XY.Integrations.Http({tracing:!0}),new XY.Integrations.Modules,new XY.Integrations.Console,new XY.Integrations.FunctionToString,new XY.Integrations.LinkedErrors],tracesSampleRate:1,tracePropagationTargets:["localhost"]})}async function g41(A){try{let B=await Pv();XY.setExtras({nodeVersion:uA.nodeVersion,platform:uA.platform,isCI:uA.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.2"}.VERSION,sessionId:Q5,statsigGates:w40(),terminal:uA.terminal,userType:"external"}),XY.setUser({id:B.userID,email:B.email}),XY.captureException(A)}catch{}}function Y60(){let A=process.env.ANTHROPIC_MODEL,B=n7();Object.assign(process.env,VA().env),Object.assign(process.env,B.env)}var oG=F1(S1(),1);import{Stream as FM4}from"node:stream";var iB0=F1(S1(),1);function W60(A,B,{signal:Q,edges:I}={}){let G=void 0,D=null,Z=I!=null&&I.includes("leading"),Y=I==null||I.includes("trailing"),W=()=>{if(D!==null)A.apply(G,D),G=void 0,D=null},F=()=>{if(Y)W();V()},J=null,C=()=>{if(J!=null)clearTimeout(J);J=setTimeout(()=>{J=null,F()},B)},X=()=>{if(J!==null)clearTimeout(J),J=null},V=()=>{X(),G=void 0,D=null},K=()=>{X(),W()},U=function(...N){if(Q?.aborted)return;G=this,D=N;let q=J==null;if(C(),Z&&q)W()};return U.schedule=C,U.cancel=V,U.flush=K,Q?.addEventListener("abort",V,{once:!0}),U}function F60(A,B=0,Q={}){if(typeof Q!=="object")Q={};let{signal:I,leading:G=!1,trailing:D=!0,maxWait:Z}=Q,Y=Array(2);if(G)Y[0]="leading";if(D)Y[1]="trailing";let W=void 0,F=null,J=W60(function(...V){W=A.apply(this,V),F=null},B,{signal:I,edges:Y}),C=function(...V){if(Z!=null){if(F===null)F=Date.now();else if(Date.now()-F>=Z)return W=A.apply(this,V),F=Date.now(),J.cancel(),J.schedule(),W}return J.apply(this,V),W},X=()=>{return J.flush(),W};return C.cancel=J.cancel,C.flush=X,C}function m31(A,B=0,Q={}){if(typeof Q!=="object")Q={};let{leading:I=!0,trailing:G=!0,signal:D}=Q;return F60(A,B,{leading:I,trailing:G,signal:D,maxWait:B})}var jM={};Nu(jM,{scrollUp:()=>_U4,scrollDown:()=>jU4,link:()=>bU4,image:()=>gU4,iTerm:()=>hU4,exitAlternativeScreen:()=>fU4,eraseUp:()=>SU4,eraseStartLine:()=>TU4,eraseScreen:()=>uj1,eraseLines:()=>RU4,eraseLine:()=>V60,eraseEndLine:()=>OU4,eraseDown:()=>PU4,enterAlternativeScreen:()=>xU4,cursorUp:()=>C60,cursorTo:()=>KU4,cursorShow:()=>cj1,cursorSavePosition:()=>UU4,cursorRestorePosition:()=>NU4,cursorPrevLine:()=>MU4,cursorNextLine:()=>qU4,cursorMove:()=>HU4,cursorLeft:()=>X60,cursorHide:()=>LU4,cursorGetPosition:()=>$U4,cursorForward:()=>wU4,cursorDown:()=>zU4,cursorBackward:()=>EU4,clearTerminal:()=>kU4,clearScreen:()=>yU4,beep:()=>vU4});import pj1 from"node:process";var d31=globalThis.window?.document!==void 0,Ka5=globalThis.process?.versions?.node!==void 0,Ha5=globalThis.process?.versions?.bun!==void 0,za5=globalThis.Deno?.version?.deno!==void 0,wa5=globalThis.process?.versions?.electron!==void 0,Ea5=globalThis.navigator?.userAgent?.includes("jsdom")===!0,Ua5=typeof WorkerGlobalScope!=="undefined"&&globalThis instanceof WorkerGlobalScope,Na5=typeof DedicatedWorkerGlobalScope!=="undefined"&&globalThis instanceof DedicatedWorkerGlobalScope,$a5=typeof SharedWorkerGlobalScope!=="undefined"&&globalThis instanceof SharedWorkerGlobalScope,qa5=typeof ServiceWorkerGlobalScope!=="undefined"&&globalThis instanceof ServiceWorkerGlobalScope,Oi=globalThis.navigator?.userAgentData?.platform,Ma5=Oi==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",La5=Oi==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",Ra5=Oi==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",Oa5=Oi==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Ta5=Oi==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var j5="\x1B[",Pi="\x1B]",fv="\x07",Ti=";",J60=!d31&&pj1.env.TERM_PROGRAM==="Apple_Terminal",XU4=!d31&&pj1.platform==="win32",VU4=d31?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:pj1.cwd,KU4=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");if(typeof B!=="number")return j5+(A+1)+"G";return j5+(B+1)+Ti+(A+1)+"H"},HU4=(A,B)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");let Q="";if(A<0)Q+=j5+-A+"D";else if(A>0)Q+=j5+A+"C";if(B<0)Q+=j5+-B+"A";else if(B>0)Q+=j5+B+"B";return Q},C60=(A=1)=>j5+A+"A",zU4=(A=1)=>j5+A+"B",wU4=(A=1)=>j5+A+"C",EU4=(A=1)=>j5+A+"D",X60=j5+"G",UU4=J60?"\x1B7":j5+"s",NU4=J60?"\x1B8":j5+"u",$U4=j5+"6n",qU4=j5+"E",MU4=j5+"F",LU4=j5+"?25l",cj1=j5+"?25h",RU4=(A)=>{let B="";for(let Q=0;Q<A;Q++)B+=V60+(Q<A-1?C60():"");if(A)B+=X60;return B},OU4=j5+"K",TU4=j5+"1K",V60=j5+"2K",PU4=j5+"J",SU4=j5+"1J",uj1=j5+"2J",_U4=j5+"S",jU4=j5+"T",yU4="\x1Bc",kU4=XU4?`${uj1}${j5}0f`:`${uj1}${j5}3J${j5}H`,xU4=j5+"?1049h",fU4=j5+"?1049l",vU4=fv,bU4=(A,B)=>[Pi,"8",Ti,Ti,B,fv,A,Pi,"8",Ti,Ti,fv].join(""),gU4=(A,B={})=>{let Q=`${Pi}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+":"+Buffer.from(A).toString("base64")+fv},hU4={setCwd:(A=VU4())=>`${Pi}50;CurrentDir=${A}${fv}`,annotation(A,B={}){let Q=`${Pi}1337;`,I=B.x!==void 0,G=B.y!==void 0;if((I||G)&&!(I&&G&&B.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replaceAll("|",""),Q+=B.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",B.length>0)Q+=(I?[A,B.length,B.x,B.y]:[B.length,A]).join("|");else Q+=A;return Q+fv}};var mU4=(A)=>{let B=new Set;do for(let Q of Reflect.ownKeys(A))B.add([A,Q]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return B};function lj1(A,{include:B,exclude:Q}={}){let I=(G)=>{let D=(Z)=>typeof Z==="string"?G===Z:Z.test(G);if(B)return B.some(D);if(Q)return!Q.some(D);return!0};for(let[G,D]of mU4(A.constructor.prototype)){if(D==="constructor"||!I(D))continue;let Z=Reflect.getOwnPropertyDescriptor(G,D);if(Z&&typeof Z.value==="function")A[D]=A[D].bind(A)}return A}var cP=[];cP.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")cP.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")cP.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var u31=(A)=>!!A&&typeof A==="object"&&typeof A.removeListener==="function"&&typeof A.emit==="function"&&typeof A.reallyExit==="function"&&typeof A.listeners==="function"&&typeof A.kill==="function"&&typeof A.pid==="number"&&typeof A.on==="function",ij1=Symbol.for("signal-exit emitter"),nj1=globalThis,dU4=Object.defineProperty.bind(Object);class K60{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(nj1[ij1])return nj1[ij1];dU4(nj1,ij1,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,B){this.listeners[A].push(B)}removeListener(A,B){let Q=this.listeners[A],I=Q.indexOf(B);if(I===-1)return;if(I===0&&Q.length===1)Q.length=0;else Q.splice(I,1)}emit(A,B,Q){if(this.emitted[A])return!1;this.emitted[A]=!0;let I=!1;for(let G of this.listeners[A])I=G(B,Q)===!0||I;if(A==="exit")I=this.emit("afterExit",B,Q)||I;return I}}class sj1{}var uU4=(A)=>{return{onExit(B,Q){return A.onExit(B,Q)},load(){return A.load()},unload(){return A.unload()}}};class H60 extends sj1{onExit(){return()=>{}}load(){}unload(){}}class z60 extends sj1{#A=aj1.platform==="win32"?"SIGINT":"SIGHUP";#B=new K60;#Q;#I;#G;#W={};#D=!1;constructor(A){super();this.#Q=A,this.#W={};for(let B of cP)this.#W[B]=()=>{let Q=this.#Q.listeners(B),{count:I}=this.#B,G=A;if(typeof G.__signal_exit_emitter__==="object"&&typeof G.__signal_exit_emitter__.count==="number")I+=G.__signal_exit_emitter__.count;if(Q.length===I){this.unload();let D=this.#B.emit("exit",null,B),Z=B==="SIGHUP"?this.#A:B;if(!D)A.kill(A.pid,Z)}};this.#G=A.reallyExit,this.#I=A.emit}onExit(A,B){if(!u31(this.#Q))return()=>{};if(this.#D===!1)this.load();let Q=B?.alwaysLast?"afterExit":"exit";return this.#B.on(Q,A),()=>{if(this.#B.removeListener(Q,A),this.#B.listeners.exit.length===0&&this.#B.listeners.afterExit.length===0)this.unload()}}load(){if(this.#D)return;this.#D=!0,this.#B.count+=1;for(let A of cP)try{let B=this.#W[A];if(B)this.#Q.on(A,B)}catch(B){}this.#Q.emit=(A,...B)=>{return this.#F(A,...B)},this.#Q.reallyExit=(A)=>{return this.#J(A)}}unload(){if(!this.#D)return;this.#D=!1,cP.forEach((A)=>{let B=this.#W[A];if(!B)throw new Error("Listener not defined for signal: "+A);try{this.#Q.removeListener(A,B)}catch(Q){}}),this.#Q.emit=this.#I,this.#Q.reallyExit=this.#G,this.#B.count-=1}#J(A){if(!u31(this.#Q))return 0;return this.#Q.exitCode=A||0,this.#B.emit("exit",this.#Q.exitCode,null),this.#G.call(this.#Q,this.#Q.exitCode)}#F(A,...B){let Q=this.#I;if(A==="exit"&&u31(this.#Q)){if(typeof B[0]==="number")this.#Q.exitCode=B[0];let I=Q.call(this.#Q,A,...B);return this.#B.emit("exit",this.#Q.exitCode,null),I}else return Q.call(this.#Q,A,...B)}}var aj1=globalThis.process,{onExit:w60,load:va5,unload:ba5}=uU4(u31(aj1)?new z60(aj1):new H60);import{PassThrough as E60}from"node:stream";var U60=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],rj1={},pU4=(A)=>{let B=new E60,Q=new E60;B.write=(G)=>{A("stdout",G)},Q.write=(G)=>{A("stderr",G)};let I=new console.Console(B,Q);for(let G of U60)rj1[G]=console[G],console[G]=I[G];return()=>{for(let G of U60)console[G]=rj1[G];rj1={}}},N60=pU4;var l80=F1(S60(),1);var Wy1=16;var Y2={},r31=Y2.ALIGN_AUTO=0,yi=Y2.ALIGN_FLEX_START=1,ki=Y2.ALIGN_CENTER=2,xi=Y2.ALIGN_FLEX_END=3,o31=Y2.ALIGN_STRETCH=4,_60=Y2.ALIGN_BASELINE=5,j60=Y2.ALIGN_SPACE_BETWEEN=6,y60=Y2.ALIGN_SPACE_AROUND=7,k60=Y2.DIMENSION_WIDTH=0,x60=Y2.DIMENSION_HEIGHT=1,f60=Y2.DIRECTION_INHERIT=0,v60=Y2.DIRECTION_LTR=1,b60=Y2.DIRECTION_RTL=2,bv=Y2.DISPLAY_FLEX=0,kM=Y2.DISPLAY_NONE=1,Qz=Y2.EDGE_LEFT=0,xM=Y2.EDGE_TOP=1,Iz=Y2.EDGE_RIGHT=2,fM=Y2.EDGE_BOTTOM=3,t31=Y2.EDGE_START=4,e31=Y2.EDGE_END=5,fi=Y2.EDGE_HORIZONTAL=6,vi=Y2.EDGE_VERTICAL=7,bi=Y2.EDGE_ALL=8,g60=Y2.EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=0,h60=Y2.EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=1,m60=Y2.EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=2,AQ1=Y2.FLEX_DIRECTION_COLUMN=0,BQ1=Y2.FLEX_DIRECTION_COLUMN_REVERSE=1,QQ1=Y2.FLEX_DIRECTION_ROW=2,IQ1=Y2.FLEX_DIRECTION_ROW_REVERSE=3,GQ1=Y2.GUTTER_COLUMN=0,DQ1=Y2.GUTTER_ROW=1,ZQ1=Y2.GUTTER_ALL=2,YQ1=Y2.JUSTIFY_FLEX_START=0,WQ1=Y2.JUSTIFY_CENTER=1,FQ1=Y2.JUSTIFY_FLEX_END=2,JQ1=Y2.JUSTIFY_SPACE_BETWEEN=3,CQ1=Y2.JUSTIFY_SPACE_AROUND=4,XQ1=Y2.JUSTIFY_SPACE_EVENLY=5,d60=Y2.LOG_LEVEL_ERROR=0,u60=Y2.LOG_LEVEL_WARN=1,p60=Y2.LOG_LEVEL_INFO=2,c60=Y2.LOG_LEVEL_DEBUG=3,l60=Y2.LOG_LEVEL_VERBOSE=4,i60=Y2.LOG_LEVEL_FATAL=5,n60=Y2.MEASURE_MODE_UNDEFINED=0,a60=Y2.MEASURE_MODE_EXACTLY=1,s60=Y2.MEASURE_MODE_AT_MOST=2,r60=Y2.NODE_TYPE_DEFAULT=0,o60=Y2.NODE_TYPE_TEXT=1,t60=Y2.OVERFLOW_VISIBLE=0,e60=Y2.OVERFLOW_HIDDEN=1,A50=Y2.OVERFLOW_SCROLL=2,B50=Y2.POSITION_TYPE_STATIC=0,VQ1=Y2.POSITION_TYPE_RELATIVE=1,KQ1=Y2.POSITION_TYPE_ABSOLUTE=2,Q50=Y2.PRINT_OPTIONS_LAYOUT=1,I50=Y2.PRINT_OPTIONS_STYLE=2,G50=Y2.PRINT_OPTIONS_CHILDREN=4,D50=Y2.UNIT_UNDEFINED=0,Z50=Y2.UNIT_POINT=1,Y50=Y2.UNIT_PERCENT=2,W50=Y2.UNIT_AUTO=3,HQ1=Y2.WRAP_NO_WRAP=0,zQ1=Y2.WRAP_WRAP=1,wQ1=Y2.WRAP_WRAP_REVERSE=2;var F50=(A)=>{function B(G,D,Z){let Y=G[D];G[D]=function(...W){return Z.call(this,Y,...W)}}for(let G of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"]){let D={[Y2.UNIT_POINT]:A.Node.prototype[G],[Y2.UNIT_PERCENT]:A.Node.prototype[`${G}Percent`],[Y2.UNIT_AUTO]:A.Node.prototype[`${G}Auto`]};B(A.Node.prototype,G,function(Z,...Y){let W,F,J=Y.pop();if(J==="auto")W=Y2.UNIT_AUTO,F=void 0;else if(typeof J=="object")W=J.unit,F=J.valueOf();else if(W=typeof J=="string"&&J.endsWith("%")?Y2.UNIT_PERCENT:Y2.UNIT_POINT,F=parseFloat(J),!Number.isNaN(J)&&Number.isNaN(F))throw Error(`Invalid value ${J} for ${G}`);if(!D[W])throw Error(`Failed to execute "${G}": Unsupported unit '${J}'`);return F!==void 0?D[W].call(this,...Y,F):D[W].call(this,...Y)})}function Q(G){return A.MeasureCallback.implement({measure:(...D)=>{let{width:Z,height:Y}=G(...D);return{width:Z??NaN,height:Y??NaN}}})}function I(G){return A.DirtiedCallback.implement({dirtied:G})}return B(A.Node.prototype,"setMeasureFunc",function(G,D){return D?G.call(this,Q(D)):this.unsetMeasureFunc()}),B(A.Node.prototype,"setDirtiedFunc",function(G,D){G.call(this,I(D))}),B(A.Config.prototype,"free",function(){A.Config.destroy(this)}),B(A.Node,"create",(G,D)=>D?A.Node.createWithConfig(D):A.Node.createDefault()),B(A.Node.prototype,"free",function(){A.Node.destroy(this)}),B(A.Node.prototype,"freeRecursive",function(){for(let G=0,D=this.getChildCount();G<D;++G)this.getChild(0).freeRecursive();this.free()}),B(A.Node.prototype,"calculateLayout",function(G,D=NaN,Z=NaN,Y=Y2.DIRECTION_LTR){return G.call(this,D,Z,Y)}),{Config:A.Config,Node:A.Node,...Y2}};var JN4=(()=>{var A=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(B={}){W||(W=B!==void 0?B:{}),W.ready=new Promise(function(O1,R1){F=O1,J=R1});var Q,I,G=Object.assign({},W),D="";typeof document!="undefined"&&document.currentScript&&(D=document.currentScript.src),A&&(D=A),D=D.indexOf("blob:")!==0?D.substr(0,D.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var Z=console.log.bind(console),Y=console.warn.bind(console);Object.assign(W,G),G=null,typeof WebAssembly!="object"&&H1("no native wasm support detected");var W,F,J,C,X=!1;function V(O1,R1,p1){p1=R1+p1;for(var JA="";!(R1>=p1);){var ZA=O1[R1++];if(!ZA)break;if(128&ZA){var NA=63&O1[R1++];if((224&ZA)==192)JA+=String.fromCharCode((31&ZA)<<6|NA);else{var rA=63&O1[R1++];65536>(ZA=(240&ZA)==224?(15&ZA)<<12|NA<<6|rA:(7&ZA)<<18|NA<<12|rA<<6|63&O1[R1++])?JA+=String.fromCharCode(ZA):(ZA-=65536,JA+=String.fromCharCode(55296|ZA>>10,56320|1023&ZA))}}else JA+=String.fromCharCode(ZA)}return JA}function K(){var O1=C.buffer;W.HEAP8=U=new Int8Array(O1),W.HEAP16=q=new Int16Array(O1),W.HEAP32=R=new Int32Array(O1),W.HEAPU8=N=new Uint8Array(O1),W.HEAPU16=M=new Uint16Array(O1),W.HEAPU32=T=new Uint32Array(O1),W.HEAPF32=O=new Float32Array(O1),W.HEAPF64=S=new Float64Array(O1)}var U,N,q,M,R,T,O,S,f,n=[],g=[],Y1=[],r=0,w1=null;function H1(O1){throw Y(O1="Aborted("+O1+")"),X=!0,J(O1=new WebAssembly.RuntimeError(O1+". Build with -sASSERTIONS for more info.")),O1}function x(){return Q.startsWith("data:application/octet-stream;base64,")}function J1(){try{throw"both async and sync fetching of the wasm failed"}catch(O1){H1(O1)}}function x1(O1){for(;0<O1.length;)O1.shift()(W)}function o1(O1){if(O1===void 0)return"_unknown";var R1=(O1=O1.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=R1&&57>=R1?"_"+O1:O1}function a1(O1,R1){return O1=o1(O1),function(){return R1.apply(this,arguments)}}Q="yoga.wasm",x()||(Q=D+Q);var PA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],cA=[];function FA(O1){var R1=Error,p1=a1(O1,function(JA){this.name=O1,this.message=JA,(JA=Error(JA).stack)!==void 0&&(this.stack=this.toString()+`
645
645
  `+JA.replace(/^Error(:[^\n]*)?\n/,""))});return p1.prototype=Object.create(R1.prototype),p1.prototype.constructor=p1,p1.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},p1}var f1=void 0;function B1(O1){throw new f1(O1)}var v1=(O1)=>(O1||B1("Cannot use deleted val. handle = "+O1),PA[O1].value),M1=(O1)=>{switch(O1){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var R1=cA.length?cA.pop():PA.length;return PA[R1]={fa:1,value:O1},R1}},AA=void 0,UA=void 0;function OA(O1){for(var R1="";N[O1];)R1+=UA[N[O1++]];return R1}var o=[];function A1(){for(;o.length;){var O1=o.pop();O1.L.Z=!1,O1.delete()}}var I1=void 0,E1={};function N1(O1,R1){for(R1===void 0&&B1("ptr should not be undefined");O1.P;)R1=O1.aa(R1),O1=O1.P;return R1}var t={};function _1(O1){var R1=OA(O1=OD(O1));return IB(O1),R1}function k1(O1,R1){var p1=t[O1];return p1===void 0&&B1(R1+" has unknown type "+_1(O1)),p1}function d1(){}var e1=!1;function IA(O1){--O1.count.value,O1.count.value===0&&(O1.S?O1.T.V(O1.S):O1.O.M.V(O1.N))}var zA={},X0=void 0;function kA(O1){throw new X0(O1)}function z0(O1,R1){return R1.O&&R1.N||kA("makeClassHandle requires ptr and ptrType"),!!R1.T!=!!R1.S&&kA("Both smartPtrType and smartPtr must be specified"),R1.count={value:1},s2(Object.create(O1,{L:{value:R1}}))}function s2(O1){return typeof FinalizationRegistry=="undefined"?(s2=(R1)=>R1,O1):(e1=new FinalizationRegistry((R1)=>{IA(R1.L)}),s2=(R1)=>{var p1=R1.L;return p1.S&&e1.register(R1,{L:p1},R1),R1},d1=(R1)=>{e1.unregister(R1)},s2(O1))}var Q2={};function U2(O1){for(;O1.length;){var R1=O1.pop();O1.pop()(R1)}}function g2(O1){return this.fromWireType(R[O1>>2])}var B9={},o4={};function Z0(O1,R1,p1){function JA(bA){(bA=p1(bA)).length!==O1.length&&kA("Mismatched type converter count");for(var sA=0;sA<O1.length;++sA)m0(O1[sA],bA[sA])}O1.forEach(function(bA){o4[bA]=R1});var ZA=Array(R1.length),NA=[],rA=0;R1.forEach((bA,sA)=>{t.hasOwnProperty(bA)?ZA[sA]=t[bA]:(NA.push(bA),B9.hasOwnProperty(bA)||(B9[bA]=[]),B9[bA].push(()=>{ZA[sA]=t[bA],++rA===NA.length&&JA(ZA)}))}),NA.length===0&&JA(ZA)}function h0(O1){switch(O1){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+O1)}}function m0(O1,R1,p1={}){if(!("argPackAdvance"in R1))throw TypeError("registerType registeredInstance requires argPackAdvance");var JA=R1.name;if(O1||B1('type "'+JA+'" must have a positive integer typeid pointer'),t.hasOwnProperty(O1)){if(p1.ta)return;B1("Cannot register type '"+JA+"' twice")}t[O1]=R1,delete o4[O1],B9.hasOwnProperty(O1)&&(R1=B9[O1],delete B9[O1],R1.forEach((ZA)=>ZA()))}function L0(O1){B1(O1.L.O.M.name+" instance already deleted")}function H0(){}function j2(O1,R1,p1){if(O1[R1].R===void 0){var JA=O1[R1];O1[R1]=function(){return O1[R1].R.hasOwnProperty(arguments.length)||B1("Function '"+p1+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+O1[R1].R+")!"),O1[R1].R[arguments.length].apply(this,arguments)},O1[R1].R=[],O1[R1].R[JA.Y]=JA}}function y9(O1,R1,p1,JA,ZA,NA,rA,bA){this.name=O1,this.constructor=R1,this.W=p1,this.V=JA,this.P=ZA,this.oa=NA,this.aa=rA,this.ma=bA,this.ia=[]}function z8(O1,R1,p1){for(;R1!==p1;)R1.aa||B1("Expected null or instance of "+p1.name+", got an instance of "+R1.name),O1=R1.aa(O1),R1=R1.P;return O1}function HB(O1,R1){return R1===null?(this.da&&B1("null is not a valid "+this.name),0):(R1.L||B1('Cannot pass "'+K3(R1)+'" as a '+this.name),R1.L.N||B1("Cannot pass deleted object as a pointer of type "+this.name),z8(R1.L.N,R1.L.O.M,this.M))}function w6(O1,R1){if(R1===null){if(this.da&&B1("null is not a valid "+this.name),this.ca){var p1=this.ea();return O1!==null&&O1.push(this.V,p1),p1}return 0}if(R1.L||B1('Cannot pass "'+K3(R1)+'" as a '+this.name),R1.L.N||B1("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&R1.L.O.ba&&B1("Cannot convert argument of type "+(R1.L.T?R1.L.T.name:R1.L.O.name)+" to parameter type "+this.name),p1=z8(R1.L.N,R1.L.O.M,this.M),this.ca)switch(R1.L.S===void 0&&B1("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:R1.L.T===this?p1=R1.L.S:B1("Cannot convert argument of type "+(R1.L.T?R1.L.T.name:R1.L.O.name)+" to parameter type "+this.name);break;case 1:p1=R1.L.S;break;case 2:if(R1.L.T===this)p1=R1.L.S;else{var JA=R1.clone();p1=this.wa(p1,M1(function(){JA.delete()})),O1!==null&&O1.push(this.V,p1)}break;default:B1("Unsupporting sharing policy")}return p1}function T2(O1,R1){return R1===null?(this.da&&B1("null is not a valid "+this.name),0):(R1.L||B1('Cannot pass "'+K3(R1)+'" as a '+this.name),R1.L.N||B1("Cannot pass deleted object as a pointer of type "+this.name),R1.L.O.ba&&B1("Cannot convert argument of type "+R1.L.O.name+" to parameter type "+this.name),z8(R1.L.N,R1.L.O.M,this.M))}function x4(O1,R1,p1,JA){this.name=O1,this.M=R1,this.da=p1,this.ba=JA,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,R1.P!==void 0?this.toWireType=w6:(this.toWireType=JA?HB:T2,this.U=null)}var f0=[];function z2(O1){var R1=f0[O1];return R1||(O1>=f0.length&&(f0.length=O1+1),f0[O1]=R1=f.get(O1)),R1}function Q9(O1,R1){var p1,JA,ZA=(O1=OA(O1)).includes("j")?(p1=O1,JA=[],function(){if(JA.length=0,Object.assign(JA,arguments),p1.includes("j")){var NA=W["dynCall_"+p1];NA=JA&&JA.length?NA.apply(null,[R1].concat(JA)):NA.call(null,R1)}else NA=z2(R1).apply(null,JA);return NA}):z2(R1);return typeof ZA!="function"&&B1("unknown function pointer with signature "+O1+": "+R1),ZA}var o6=void 0;function w8(O1,R1){var p1=[],JA={};throw R1.forEach(function ZA(NA){JA[NA]||t[NA]||(o4[NA]?o4[NA].forEach(ZA):(p1.push(NA),JA[NA]=!0))}),new o6(O1+": "+p1.map(_1).join([", "]))}function u3(O1,R1,p1,JA,ZA){var NA=R1.length;2>NA&&B1("argTypes array size mismatch! Must at least get return value and 'this' types!");var rA=R1[1]!==null&&p1!==null,bA=!1;for(p1=1;p1<R1.length;++p1)if(R1[p1]!==null&&R1[p1].U===void 0){bA=!0;break}var sA=R1[0].name!=="void",fA=NA-2,iA=Array(fA),P2=[],F2=[];return function(){if(arguments.length!==fA&&B1("function "+O1+" called with "+arguments.length+" arguments, expected "+fA+" args!"),F2.length=0,P2.length=rA?2:1,P2[0]=ZA,rA){var $9=R1[1].toWireType(F2,this);P2[1]=$9}for(var C1=0;C1<fA;++C1)iA[C1]=R1[C1+2].toWireType(F2,arguments[C1]),P2.push(iA[C1]);if(C1=JA.apply(null,P2),bA)U2(F2);else for(var c1=rA?1:2;c1<R1.length;c1++){var P1=c1===1?$9:iA[c1-2];R1[c1].U!==null&&R1[c1].U(P1)}return sA?R1[0].fromWireType(C1):void 0}}function lB(O1,R1){for(var p1=[],JA=0;JA<O1;JA++)p1.push(T[R1+4*JA>>2]);return p1}function E6(O1){4<O1&&--PA[O1].fa==0&&(PA[O1]=void 0,cA.push(O1))}function K3(O1){if(O1===null)return"null";var R1=typeof O1;return R1==="object"||R1==="array"||R1==="function"?O1.toString():""+O1}function E8(O1,R1){for(var p1="",JA=0;!(JA>=R1/2);++JA){var ZA=q[O1+2*JA>>1];if(ZA==0)break;p1+=String.fromCharCode(ZA)}return p1}function BB(O1,R1,p1){if(p1===void 0&&(p1=2147483647),2>p1)return 0;p1-=2;var JA=R1;p1=p1<2*O1.length?p1/2:O1.length;for(var ZA=0;ZA<p1;++ZA)q[R1>>1]=O1.charCodeAt(ZA),R1+=2;return q[R1>>1]=0,R1-JA}function OQ(O1){return 2*O1.length}function V2(O1,R1){for(var p1=0,JA="";!(p1>=R1/4);){var ZA=R[O1+4*p1>>2];if(ZA==0)break;++p1,65536<=ZA?(ZA-=65536,JA+=String.fromCharCode(55296|ZA>>10,56320|1023&ZA)):JA+=String.fromCharCode(ZA)}return JA}function N9(O1,R1,p1){if(p1===void 0&&(p1=2147483647),4>p1)return 0;var JA=R1;p1=JA+p1-4;for(var ZA=0;ZA<O1.length;++ZA){var NA=O1.charCodeAt(ZA);if(55296<=NA&&57343>=NA&&(NA=65536+((1023&NA)<<10)|1023&O1.charCodeAt(++ZA)),R[R1>>2]=NA,(R1+=4)+4>p1)break}return R[R1>>2]=0,R1-JA}function H3(O1){for(var R1=0,p1=0;p1<O1.length;++p1){var JA=O1.charCodeAt(p1);55296<=JA&&57343>=JA&&++p1,R1+=4}return R1}var Q7={};function QB(O1){var R1=Q7[O1];return R1===void 0?OA(O1):R1}var iB=[],$G=[],RZ=[null,[],[]];f1=W.BindingError=FA("BindingError"),W.count_emval_handles=function(){for(var O1=0,R1=5;R1<PA.length;++R1)PA[R1]!==void 0&&++O1;return O1},W.get_first_emval=function(){for(var O1=5;O1<PA.length;++O1)if(PA[O1]!==void 0)return PA[O1];return null},AA=W.PureVirtualError=FA("PureVirtualError");for(var I7=Array(256),z3=0;256>z3;++z3)I7[z3]=String.fromCharCode(z3);UA=I7,W.getInheritedInstanceCount=function(){return Object.keys(E1).length},W.getLiveInheritedInstances=function(){var O1,R1=[];for(O1 in E1)E1.hasOwnProperty(O1)&&R1.push(E1[O1]);return R1},W.flushPendingDeletes=A1,W.setDelayFunction=function(O1){I1=O1,o.length&&I1&&I1(A1)},X0=W.InternalError=FA("InternalError"),H0.prototype.isAliasOf=function(O1){if(!(this instanceof H0&&O1 instanceof H0))return!1;var R1=this.L.O.M,p1=this.L.N,JA=O1.L.O.M;for(O1=O1.L.N;R1.P;)p1=R1.aa(p1),R1=R1.P;for(;JA.P;)O1=JA.aa(O1),JA=JA.P;return R1===JA&&p1===O1},H0.prototype.clone=function(){if(this.L.N||L0(this),this.L.$)return this.L.count.value+=1,this;var O1=s2,R1=Object,p1=R1.create,JA=Object.getPrototypeOf(this),ZA=this.L;return O1=O1(p1.call(R1,JA,{L:{value:{count:ZA.count,Z:ZA.Z,$:ZA.$,N:ZA.N,O:ZA.O,S:ZA.S,T:ZA.T}}})),O1.L.count.value+=1,O1.L.Z=!1,O1},H0.prototype.delete=function(){this.L.N||L0(this),this.L.Z&&!this.L.$&&B1("Object already scheduled for deletion"),d1(this),IA(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},H0.prototype.isDeleted=function(){return!this.L.N},H0.prototype.deleteLater=function(){return this.L.N||L0(this),this.L.Z&&!this.L.$&&B1("Object already scheduled for deletion"),o.push(this),o.length===1&&I1&&I1(A1),this.L.Z=!0,this},x4.prototype.pa=function(O1){return this.ja&&(O1=this.ja(O1)),O1},x4.prototype.ga=function(O1){this.V&&this.V(O1)},x4.prototype.argPackAdvance=8,x4.prototype.readValueFromPointer=g2,x4.prototype.deleteObject=function(O1){O1!==null&&O1.delete()},x4.prototype.fromWireType=function(O1){function R1(){return this.ca?z0(this.M.W,{O:this.va,N:JA,T:this,S:O1}):z0(this.M.W,{O:this,N:O1})}var p1,JA=this.pa(O1);if(!JA)return this.ga(O1),null;var ZA=E1[N1(this.M,JA)];if(ZA!==void 0)return ZA.L.count.value===0?(ZA.L.N=JA,ZA.L.S=O1,ZA.clone()):(ZA=ZA.clone(),this.ga(O1),ZA);if(!(ZA=zA[ZA=this.M.oa(JA)]))return R1.call(this);ZA=this.ba?ZA.ka:ZA.pointerType;var NA=function rA(bA,sA,fA){return sA===fA?bA:fA.P===void 0?null:(bA=rA(bA,sA,fA.P))===null?null:fA.ma(bA)}(JA,this.M,ZA.M);return NA===null?R1.call(this):this.ca?z0(ZA.M.W,{O:ZA,N:NA,T:this,S:O1}):z0(ZA.M.W,{O:ZA,N:NA})},o6=W.UnboundTypeError=FA("UnboundTypeError");var RD={q:function(O1,R1,p1){O1=OA(O1),R1=k1(R1,"wrapper"),p1=v1(p1);var JA=[].slice,ZA=R1.M,NA=ZA.W,rA=ZA.P.W,bA=ZA.P.constructor;for(var sA in O1=a1(O1,function(){ZA.P.ia.forEach(function(fA){if(this[fA]===rA[fA])throw new AA("Pure virtual function "+fA+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:NA}),this.__construct.apply(this,JA.call(arguments))}),NA.__construct=function(){this===NA&&B1("Pass correct 'this' to __construct");var fA=bA.implement.apply(void 0,[this].concat(JA.call(arguments)));d1(fA);var iA=fA.L;fA.notifyOnDestruction(),iA.$=!0,Object.defineProperties(this,{L:{value:iA}}),s2(this),fA=N1(ZA,fA=iA.N),E1.hasOwnProperty(fA)?B1("Tried to register registered instance: "+fA):E1[fA]=this},NA.__destruct=function(){this===NA&&B1("Pass correct 'this' to __destruct"),d1(this);var fA=this.L.N;fA=N1(ZA,fA),E1.hasOwnProperty(fA)?delete E1[fA]:B1("Tried to unregister unregistered instance: "+fA)},O1.prototype=Object.create(NA),p1)O1.prototype[sA]=p1[sA];return M1(O1)},l:function(O1){var R1=Q2[O1];delete Q2[O1];var{ea:p1,V:JA,ha:ZA}=R1;Z0([O1],ZA.map((NA)=>NA.sa).concat(ZA.map((NA)=>NA.ya)),(NA)=>{var rA={};return ZA.forEach((bA,sA)=>{var fA=NA[sA],iA=bA.qa,P2=bA.ra,F2=NA[sA+ZA.length],$9=bA.xa,C1=bA.za;rA[bA.na]={read:(c1)=>fA.fromWireType(iA(P2,c1)),write:(c1,P1)=>{var QA=[];$9(C1,c1,F2.toWireType(QA,P1)),U2(QA)}}}),[{name:R1.name,fromWireType:function(bA){var sA,fA={};for(sA in rA)fA[sA]=rA[sA].read(bA);return JA(bA),fA},toWireType:function(bA,sA){for(var fA in rA)if(!(fA in sA))throw TypeError('Missing field: "'+fA+'"');var iA=p1();for(fA in rA)rA[fA].write(iA,sA[fA]);return bA!==null&&bA.push(JA,iA),iA},argPackAdvance:8,readValueFromPointer:g2,U:JA}]})},v:function(){},B:function(O1,R1,p1,JA,ZA){var NA=h0(p1);m0(O1,{name:R1=OA(R1),fromWireType:function(rA){return!!rA},toWireType:function(rA,bA){return bA?JA:ZA},argPackAdvance:8,readValueFromPointer:function(rA){if(p1===1)var bA=U;else if(p1===2)bA=q;else if(p1===4)bA=R;else throw TypeError("Unknown boolean type size: "+R1);return this.fromWireType(bA[rA>>NA])},U:null})},h:function(O1,R1,p1,JA,ZA,NA,rA,bA,sA,fA,iA,P2,F2){iA=OA(iA),NA=Q9(ZA,NA),bA&&(bA=Q9(rA,bA)),fA&&(fA=Q9(sA,fA)),F2=Q9(P2,F2);var $9,C1=o1(iA);$9=function(){w8("Cannot construct "+iA+" due to unbound types",[JA])},W.hasOwnProperty(C1)?(B1("Cannot register public name '"+C1+"' twice"),j2(W,C1,C1),W.hasOwnProperty(void 0)&&B1("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),W[C1].R[void 0]=$9):W[C1]=$9,Z0([O1,R1,p1],JA?[JA]:[],function(c1){if(c1=c1[0],JA)var P1,QA=c1.M,XA=QA.W;else XA=H0.prototype;c1=a1(C1,function(){if(Object.getPrototypeOf(this)!==DA)throw new f1("Use 'new' to construct "+iA);if(gA.X===void 0)throw new f1(iA+" has no accessible constructor");var oA=gA.X[arguments.length];if(oA===void 0)throw new f1("Tried to invoke ctor of "+iA+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(gA.X).toString()+") parameters instead!");return oA.apply(this,arguments)});var DA=Object.create(XA,{constructor:{value:c1}});c1.prototype=DA;var gA=new y9(iA,c1,DA,F2,QA,NA,bA,fA);QA=new x4(iA,gA,!0,!1),XA=new x4(iA+"*",gA,!1,!1);var eA=new x4(iA+" const*",gA,!1,!0);return zA[O1]={pointerType:XA,ka:eA},P1=c1,W.hasOwnProperty(C1)||kA("Replacing nonexistant public symbol"),W[C1]=P1,W[C1].Y=void 0,[QA,XA,eA]})},d:function(O1,R1,p1,JA,ZA,NA,rA){var bA=lB(p1,JA);R1=OA(R1),NA=Q9(ZA,NA),Z0([],[O1],function(sA){function fA(){w8("Cannot call "+iA+" due to unbound types",bA)}var iA=(sA=sA[0]).name+"."+R1;R1.startsWith("@@")&&(R1=Symbol[R1.substring(2)]);var P2=sA.M.constructor;return P2[R1]===void 0?(fA.Y=p1-1,P2[R1]=fA):(j2(P2,R1,iA),P2[R1].R[p1-1]=fA),Z0([],bA,function(F2){return F2=u3(iA,[F2[0],null].concat(F2.slice(1)),null,NA,rA),P2[R1].R===void 0?(F2.Y=p1-1,P2[R1]=F2):P2[R1].R[p1-1]=F2,[]}),[]})},p:function(O1,R1,p1,JA,ZA,NA){0<R1||H1();var rA=lB(R1,p1);ZA=Q9(JA,ZA),Z0([],[O1],function(bA){var sA="constructor "+(bA=bA[0]).name;if(bA.M.X===void 0&&(bA.M.X=[]),bA.M.X[R1-1]!==void 0)throw new f1("Cannot register multiple constructors with identical number of parameters ("+(R1-1)+") for class '"+bA.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return bA.M.X[R1-1]=()=>{w8("Cannot construct "+bA.name+" due to unbound types",rA)},Z0([],rA,function(fA){return fA.splice(1,0,null),bA.M.X[R1-1]=u3(sA,fA,null,ZA,NA),[]}),[]})},a:function(O1,R1,p1,JA,ZA,NA,rA,bA){var sA=lB(p1,JA);R1=OA(R1),NA=Q9(ZA,NA),Z0([],[O1],function(fA){function iA(){w8("Cannot call "+P2+" due to unbound types",sA)}var P2=(fA=fA[0]).name+"."+R1;R1.startsWith("@@")&&(R1=Symbol[R1.substring(2)]),bA&&fA.M.ia.push(R1);var F2=fA.M.W,$9=F2[R1];return $9===void 0||$9.R===void 0&&$9.className!==fA.name&&$9.Y===p1-2?(iA.Y=p1-2,iA.className=fA.name,F2[R1]=iA):(j2(F2,R1,P2),F2[R1].R[p1-2]=iA),Z0([],sA,function(C1){return C1=u3(P2,C1,fA,NA,rA),F2[R1].R===void 0?(C1.Y=p1-2,F2[R1]=C1):F2[R1].R[p1-2]=C1,[]}),[]})},A:function(O1,R1){m0(O1,{name:R1=OA(R1),fromWireType:function(p1){var JA=v1(p1);return E6(p1),JA},toWireType:function(p1,JA){return M1(JA)},argPackAdvance:8,readValueFromPointer:g2,U:null})},n:function(O1,R1,p1){p1=h0(p1),m0(O1,{name:R1=OA(R1),fromWireType:function(JA){return JA},toWireType:function(JA,ZA){return ZA},argPackAdvance:8,readValueFromPointer:function(JA,ZA){switch(ZA){case 2:return function(NA){return this.fromWireType(O[NA>>2])};case 3:return function(NA){return this.fromWireType(S[NA>>3])};default:throw TypeError("Unknown float type: "+JA)}}(R1,p1),U:null})},e:function(O1,R1,p1,JA,ZA){R1=OA(R1),ZA===-1&&(ZA=4294967295),ZA=h0(p1);var NA=(bA)=>bA;if(JA===0){var rA=32-8*p1;NA=(bA)=>bA<<rA>>>rA}p1=R1.includes("unsigned")?function(bA,sA){return sA>>>0}:function(bA,sA){return sA},m0(O1,{name:R1,fromWireType:NA,toWireType:p1,argPackAdvance:8,readValueFromPointer:function(bA,sA,fA){switch(sA){case 0:return fA?function(iA){return U[iA]}:function(iA){return N[iA]};case 1:return fA?function(iA){return q[iA>>1]}:function(iA){return M[iA>>1]};case 2:return fA?function(iA){return R[iA>>2]}:function(iA){return T[iA>>2]};default:throw TypeError("Unknown integer type: "+bA)}}(R1,ZA,JA!==0),U:null})},b:function(O1,R1,p1){function JA(NA){NA>>=2;var rA=T;return new ZA(rA.buffer,rA[NA+1],rA[NA])}var ZA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][R1];m0(O1,{name:p1=OA(p1),fromWireType:JA,argPackAdvance:8,readValueFromPointer:JA},{ta:!0})},o:function(O1,R1){var p1=(R1=OA(R1))==="std::string";m0(O1,{name:R1,fromWireType:function(JA){var ZA=T[JA>>2],NA=JA+4;if(p1)for(var rA=NA,bA=0;bA<=ZA;++bA){var sA=NA+bA;if(bA==ZA||N[sA]==0){if(rA=rA?V(N,rA,sA-rA):"",fA===void 0)var fA=rA;else fA+="\x00"+rA;rA=sA+1}}else{for(bA=0,fA=Array(ZA);bA<ZA;++bA)fA[bA]=String.fromCharCode(N[NA+bA]);fA=fA.join("")}return IB(JA),fA},toWireType:function(JA,ZA){ZA instanceof ArrayBuffer&&(ZA=new Uint8Array(ZA));var NA,rA=typeof ZA=="string";if(rA||ZA instanceof Uint8Array||ZA instanceof Uint8ClampedArray||ZA instanceof Int8Array||B1("Cannot pass non-string to std::string"),p1&&rA){var bA=0;for(NA=0;NA<ZA.length;++NA){var sA=ZA.charCodeAt(NA);127>=sA?bA++:2047>=sA?bA+=2:55296<=sA&&57343>=sA?(bA+=4,++NA):bA+=3}NA=bA}else NA=ZA.length;if(sA=(bA=TD(4+NA+1))+4,T[bA>>2]=NA,p1&&rA){if(rA=sA,sA=NA+1,NA=N,0<sA){sA=rA+sA-1;for(var fA=0;fA<ZA.length;++fA){var iA=ZA.charCodeAt(fA);if(55296<=iA&&57343>=iA&&(iA=65536+((1023&iA)<<10)|1023&ZA.charCodeAt(++fA)),127>=iA){if(rA>=sA)break;NA[rA++]=iA}else{if(2047>=iA){if(rA+1>=sA)break;NA[rA++]=192|iA>>6}else{if(65535>=iA){if(rA+2>=sA)break;NA[rA++]=224|iA>>12}else{if(rA+3>=sA)break;NA[rA++]=240|iA>>18,NA[rA++]=128|iA>>12&63}NA[rA++]=128|iA>>6&63}NA[rA++]=128|63&iA}}NA[rA]=0}}else if(rA)for(rA=0;rA<NA;++rA)255<(fA=ZA.charCodeAt(rA))&&(IB(sA),B1("String has UTF-16 code units that do not fit in 8 bits")),N[sA+rA]=fA;else for(rA=0;rA<NA;++rA)N[sA+rA]=ZA[rA];return JA!==null&&JA.push(IB,bA),bA},argPackAdvance:8,readValueFromPointer:g2,U:function(JA){IB(JA)}})},k:function(O1,R1,p1){if(p1=OA(p1),R1===2)var JA=E8,ZA=BB,NA=OQ,rA=()=>M,bA=1;else R1===4&&(JA=V2,ZA=N9,NA=H3,rA=()=>T,bA=2);m0(O1,{name:p1,fromWireType:function(sA){for(var fA,iA=T[sA>>2],P2=rA(),F2=sA+4,$9=0;$9<=iA;++$9){var C1=sA+4+$9*R1;($9==iA||P2[C1>>bA]==0)&&(F2=JA(F2,C1-F2),fA===void 0?fA=F2:fA+="\x00"+F2,F2=C1+R1)}return IB(sA),fA},toWireType:function(sA,fA){typeof fA!="string"&&B1("Cannot pass non-string to C++ string type "+p1);var iA=NA(fA),P2=TD(4+iA+R1);return T[P2>>2]=iA>>bA,ZA(fA,P2+4,iA+R1),sA!==null&&sA.push(IB,P2),P2},argPackAdvance:8,readValueFromPointer:g2,U:function(sA){IB(sA)}})},m:function(O1,R1,p1,JA,ZA,NA){Q2[O1]={name:OA(R1),ea:Q9(p1,JA),V:Q9(ZA,NA),ha:[]}},c:function(O1,R1,p1,JA,ZA,NA,rA,bA,sA,fA){Q2[O1].ha.push({na:OA(R1),sa:p1,qa:Q9(JA,ZA),ra:NA,ya:rA,xa:Q9(bA,sA),za:fA})},C:function(O1,R1){m0(O1,{ua:!0,name:R1=OA(R1),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},t:function(O1,R1,p1,JA,ZA){O1=iB[O1],R1=v1(R1),p1=QB(p1);var NA=[];return T[JA>>2]=M1(NA),O1(R1,p1,NA,ZA)},j:function(O1,R1,p1,JA){O1=iB[O1],O1(R1=v1(R1),p1=QB(p1),null,JA)},f:E6,g:function(O1,R1){var p1,JA,ZA=function(sA,fA){for(var iA=Array(sA),P2=0;P2<sA;++P2)iA[P2]=k1(T[fA+4*P2>>2],"parameter "+P2);return iA}(O1,R1),NA=ZA[0],rA=$G[R1=NA.name+"_$"+ZA.slice(1).map(function(sA){return sA.name}).join("_")+"$"];if(rA!==void 0)return rA;var bA=Array(O1-1);return p1=(sA,fA,iA,P2)=>{for(var F2=0,$9=0;$9<O1-1;++$9)bA[$9]=ZA[$9+1].readValueFromPointer(P2+F2),F2+=ZA[$9+1].argPackAdvance;for($9=0,sA=sA[fA].apply(sA,bA);$9<O1-1;++$9)ZA[$9+1].la&&ZA[$9+1].la(bA[$9]);if(!NA.ua)return NA.toWireType(iA,sA)},JA=iB.length,iB.push(p1),rA=JA,$G[R1]=rA},r:function(O1){4<O1&&(PA[O1].fa+=1)},s:function(O1){U2(v1(O1)),E6(O1)},i:function(){H1("")},x:function(O1,R1,p1){N.copyWithin(O1,R1,R1+p1)},w:function(O1){var R1=N.length;if(2147483648<(O1>>>=0))return!1;for(var p1=1;4>=p1;p1*=2){var JA=R1*(1+0.2/p1);JA=Math.min(JA,O1+100663296);var ZA=Math,NA=ZA.min;JA=Math.max(O1,JA),JA+=(65536-JA%65536)%65536;A:{var rA=C.buffer;try{C.grow(NA.call(ZA,2147483648,JA)-rA.byteLength+65535>>>16),K();var bA=1;break A}catch(sA){}bA=void 0}if(bA)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(O1,R1,p1,JA){for(var ZA=0,NA=0;NA<p1;NA++){var rA=T[R1>>2],bA=T[R1+4>>2];R1+=8;for(var sA=0;sA<bA;sA++){var fA=N[rA+sA],iA=RZ[O1];fA===0||fA===10?((O1===1?Z:Y)(V(iA,0)),iA.length=0):iA.push(fA)}ZA+=bA}return T[JA>>2]=ZA,0}};(function(){function O1(ZA){W.asm=ZA.exports,C=W.asm.D,K(),f=W.asm.I,g.unshift(W.asm.E),--r==0&&w1&&(ZA=w1,w1=null,ZA())}function R1(ZA){O1(ZA.instance)}function p1(ZA){return(typeof fetch=="function"?fetch(Q,{credentials:"same-origin"}).then(function(NA){if(!NA.ok)throw"failed to load wasm binary file at '"+Q+"'";return NA.arrayBuffer()}).catch(function(){return J1()}):Promise.resolve().then(function(){return J1()})).then(function(NA){return WebAssembly.instantiate(NA,JA)}).then(function(NA){return NA}).then(ZA,function(NA){Y("failed to asynchronously prepare wasm: "+NA),H1(NA)})}var JA={a:RD};if(r++,W.instantiateWasm)try{return W.instantiateWasm(JA,O1)}catch(ZA){Y("Module.instantiateWasm callback failed with error: "+ZA),J(ZA)}(typeof WebAssembly.instantiateStreaming!="function"||x()||typeof fetch!="function"?p1(R1):fetch(Q,{credentials:"same-origin"}).then(function(ZA){return WebAssembly.instantiateStreaming(ZA,JA).then(R1,function(NA){return Y("wasm streaming compile failed: "+NA),Y("falling back to ArrayBuffer instantiation"),p1(R1)})})).catch(J)})();var OD=W.___getTypeName=function(){return(OD=W.___getTypeName=W.asm.F).apply(null,arguments)};function TD(){return(TD=W.asm.H).apply(null,arguments)}function IB(){return(IB=W.asm.J).apply(null,arguments)}function OZ(){0<r||(x1(n),0<r||I||(I=!0,W.calledRun=!0,X||(x1(g),F(W),x1(Y1))))}return W.__embind_initialize_bindings=function(){return(W.__embind_initialize_bindings=W.asm.G).apply(null,arguments)},W.dynCall_jiji=function(){return(W.dynCall_jiji=W.asm.K).apply(null,arguments)},w1=function O1(){I||OZ(),I||(w1=O1)},OZ(),B.ready}})();async function J50(A){let B=await JN4({instantiateWasm(Q,I){WebAssembly.instantiate(A,Q).then((G)=>{G instanceof WebAssembly.Instance?I(G):I(G.instance)})}});return F50(B)}import{readFile as CN4}from"node:fs/promises";import{createRequire as XN4}from"node:module";var UQ1=await J50(await CN4(XN4(import.meta.url).resolve("./yoga.wasm")));function Fy1({onlyFirst:A=!1}={}){let Q=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(Q,A?void 0:"g")}var VN4=Fy1();function BG(A){if(typeof A!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof A}\``);return A.replace(VN4,"")}function C50(A){return A===161||A===164||A===167||A===168||A===170||A===173||A===174||A>=176&&A<=180||A>=182&&A<=186||A>=188&&A<=191||A===198||A===208||A===215||A===216||A>=222&&A<=225||A===230||A>=232&&A<=234||A===236||A===237||A===240||A===242||A===243||A>=247&&A<=250||A===252||A===254||A===257||A===273||A===275||A===283||A===294||A===295||A===299||A>=305&&A<=307||A===312||A>=319&&A<=322||A===324||A>=328&&A<=331||A===333||A===338||A===339||A===358||A===359||A===363||A===462||A===464||A===466||A===468||A===470||A===472||A===474||A===476||A===593||A===609||A===708||A===711||A>=713&&A<=715||A===717||A===720||A>=728&&A<=731||A===733||A===735||A>=768&&A<=879||A>=913&&A<=929||A>=931&&A<=937||A>=945&&A<=961||A>=963&&A<=969||A===1025||A>=1040&&A<=1103||A===1105||A===8208||A>=8211&&A<=8214||A===8216||A===8217||A===8220||A===8221||A>=8224&&A<=8226||A>=8228&&A<=8231||A===8240||A===8242||A===8243||A===8245||A===8251||A===8254||A===8308||A===8319||A>=8321&&A<=8324||A===8364||A===8451||A===8453||A===8457||A===8467||A===8470||A===8481||A===8482||A===8486||A===8491||A===8531||A===8532||A>=8539&&A<=8542||A>=8544&&A<=8555||A>=8560&&A<=8569||A===8585||A>=8592&&A<=8601||A===8632||A===8633||A===8658||A===8660||A===8679||A===8704||A===8706||A===8707||A===8711||A===8712||A===8715||A===8719||A===8721||A===8725||A===8730||A>=8733&&A<=8736||A===8739||A===8741||A>=8743&&A<=8748||A===8750||A>=8756&&A<=8759||A===8764||A===8765||A===8776||A===8780||A===8786||A===8800||A===8801||A>=8804&&A<=8807||A===8810||A===8811||A===8814||A===8815||A===8834||A===8835||A===8838||A===8839||A===8853||A===8857||A===8869||A===8895||A===8978||A>=9312&&A<=9449||A>=9451&&A<=9547||A>=9552&&A<=9587||A>=9600&&A<=9615||A>=9618&&A<=9621||A===9632||A===9633||A>=9635&&A<=9641||A===9650||A===9651||A===9654||A===9655||A===9660||A===9661||A===9664||A===9665||A>=9670&&A<=9672||A===9675||A>=9678&&A<=9681||A>=9698&&A<=9701||A===9711||A===9733||A===9734||A===9737||A===9742||A===9743||A===9756||A===9758||A===9792||A===9794||A===9824||A===9825||A>=9827&&A<=9829||A>=9831&&A<=9834||A===9836||A===9837||A===9839||A===9886||A===9887||A===9919||A>=9926&&A<=9933||A>=9935&&A<=9939||A>=9941&&A<=9953||A===9955||A===9960||A===9961||A>=9963&&A<=9969||A===9972||A>=9974&&A<=9977||A===9979||A===9980||A===9982||A===9983||A===10045||A>=10102&&A<=10111||A>=11094&&A<=11097||A>=12872&&A<=12879||A>=57344&&A<=63743||A>=65024&&A<=65039||A===65533||A>=127232&&A<=127242||A>=127248&&A<=127277||A>=127280&&A<=127337||A>=127344&&A<=127373||A===127375||A===127376||A>=127387&&A<=127404||A>=917760&&A<=917999||A>=983040&&A<=1048573||A>=1048576&&A<=1114109}function X50(A){return A===12288||A>=65281&&A<=65376||A>=65504&&A<=65510}function V50(A){return A>=4352&&A<=4447||A===8986||A===8987||A===9001||A===9002||A>=9193&&A<=9196||A===9200||A===9203||A===9725||A===9726||A===9748||A===9749||A>=9776&&A<=9783||A>=9800&&A<=9811||A===9855||A>=9866&&A<=9871||A===9875||A===9889||A===9898||A===9899||A===9917||A===9918||A===9924||A===9925||A===9934||A===9940||A===9962||A===9970||A===9971||A===9973||A===9978||A===9981||A===9989||A===9994||A===9995||A===10024||A===10060||A===10062||A>=10067&&A<=10069||A===10071||A>=10133&&A<=10135||A===10160||A===10175||A===11035||A===11036||A===11088||A===11093||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12287||A>=12289&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12591||A>=12593&&A<=12686||A>=12688&&A<=12773||A>=12783&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=94176&&A<=94180||A===94192||A===94193||A>=94208&&A<=100343||A>=100352&&A<=101589||A>=101631&&A<=101640||A>=110576&&A<=110579||A>=110581&&A<=110587||A===110589||A===110590||A>=110592&&A<=110882||A===110898||A>=110928&&A<=110930||A===110933||A>=110948&&A<=110951||A>=110960&&A<=111355||A>=119552&&A<=119638||A>=119648&&A<=119670||A===126980||A===127183||A===127374||A>=127377&&A<=127386||A>=127488&&A<=127490||A>=127504&&A<=127547||A>=127552&&A<=127560||A===127568||A===127569||A>=127584&&A<=127589||A>=127744&&A<=127776||A>=127789&&A<=127797||A>=127799&&A<=127868||A>=127870&&A<=127891||A>=127904&&A<=127946||A>=127951&&A<=127955||A>=127968&&A<=127984||A===127988||A>=127992&&A<=128062||A===128064||A>=128066&&A<=128252||A>=128255&&A<=128317||A>=128331&&A<=128334||A>=128336&&A<=128359||A===128378||A===128405||A===128406||A===128420||A>=128507&&A<=128591||A>=128640&&A<=128709||A===128716||A>=128720&&A<=128722||A>=128725&&A<=128727||A>=128732&&A<=128735||A===128747||A===128748||A>=128756&&A<=128764||A>=128992&&A<=129003||A===129008||A>=129292&&A<=129338||A>=129340&&A<=129349||A>=129351&&A<=129535||A>=129648&&A<=129660||A>=129664&&A<=129673||A>=129679&&A<=129734||A>=129742&&A<=129756||A>=129759&&A<=129769||A>=129776&&A<=129784||A>=131072&&A<=196605||A>=196608&&A<=262141}function KN4(A){if(!Number.isSafeInteger(A))throw new TypeError(`Expected a code point, got \`${typeof A}\`.`)}function vM(A,{ambiguousAsWide:B=!1}={}){if(KN4(A),X50(A)||V50(A)||B&&C50(A))return 2;return 1}var z50=F1(H50(),1),HN4=new Intl.Segmenter,zN4=/^\p{Default_Ignorable_Code_Point}$/u;function gi(A,B={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:Q=!0,countAnsiEscapeCodes:I=!1}=B;if(!I)A=BG(A);if(A.length===0)return 0;let G=0,D={ambiguousAsWide:!Q};for(let{segment:Z}of HN4.segment(A)){let Y=Z.codePointAt(0);if(Y<=31||Y>=127&&Y<=159)continue;if(Y>=8203&&Y<=8207||Y===65279)continue;if(Y>=768&&Y<=879||Y>=6832&&Y<=6911||Y>=7616&&Y<=7679||Y>=8400&&Y<=8447||Y>=65056&&Y<=65071)continue;if(Y>=55296&&Y<=57343)continue;if(Y>=65024&&Y<=65039)continue;if(zN4.test(Z))continue;if(z50.default().test(Z)){G+=2;continue}G+=vM(Y,D)}return G}function gv(A){let B=0;for(let Q of A.split(`
646
646
  `))B=Math.max(B,gi(Q));return B}var w50={},wN4=(A)=>{if(A.length===0)return{width:0,height:0};let B=w50[A];if(B)return B;let Q=gv(A),I=A.split(`
647
647
  `).length;return w50[A]={width:Q,height:I},{width:Q,height:I}},Jy1=wN4;var N50=F1(U50(),1),EN4=new Intl.Segmenter,UN4=/^\p{Default_Ignorable_Code_Point}$/u;function iP(A,B={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:Q=!0,countAnsiEscapeCodes:I=!1}=B;if(!I)A=BG(A);if(A.length===0)return 0;let G=0,D={ambiguousAsWide:!Q};for(let{segment:Z}of EN4.segment(A)){let Y=Z.codePointAt(0);if(Y<=31||Y>=127&&Y<=159)continue;if(Y>=8203&&Y<=8207||Y===65279)continue;if(Y>=768&&Y<=879||Y>=6832&&Y<=6911||Y>=7616&&Y<=7679||Y>=8400&&Y<=8447||Y>=65056&&Y<=65071)continue;if(Y>=55296&&Y<=57343)continue;if(Y>=65024&&Y<=65039)continue;if(UN4.test(Z))continue;if(N50.default().test(Z)){G+=2;continue}G+=vM(Y,D)}return G}var $50=(A=0)=>(B)=>`\x1B[${B+A}m`,q50=(A=0)=>(B)=>`\x1B[${38+A};5;${B}m`,M50=(A=0)=>(B,Q,I)=>`\x1B[${38+A};2;${B};${Q};${I}m`,fB={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Us5=Object.keys(fB.modifier),NN4=Object.keys(fB.color),$N4=Object.keys(fB.bgColor),Ns5=[...NN4,...$N4];function qN4(){let A=new Map;for(let[B,Q]of Object.entries(fB)){for(let[I,G]of Object.entries(Q))fB[I]={open:`\x1B[${G[0]}m`,close:`\x1B[${G[1]}m`},Q[I]=fB[I],A.set(G[0],G[1]);Object.defineProperty(fB,B,{value:Q,enumerable:!1})}return Object.defineProperty(fB,"codes",{value:A,enumerable:!1}),fB.color.close="\x1B[39m",fB.bgColor.close="\x1B[49m",fB.color.ansi=$50(),fB.color.ansi256=q50(),fB.color.ansi16m=M50(),fB.bgColor.ansi=$50(10),fB.bgColor.ansi256=q50(10),fB.bgColor.ansi16m=M50(10),Object.defineProperties(fB,{rgbToAnsi256:{value:(B,Q,I)=>{if(B===Q&&Q===I){if(B<8)return 16;if(B>248)return 231;return Math.round((B-8)/247*24)+232}return 16+36*Math.round(B/255*5)+6*Math.round(Q/255*5)+Math.round(I/255*5)},enumerable:!1},hexToRgb:{value:(B)=>{let Q=/[a-f\d]{6}|[a-f\d]{3}/i.exec(B.toString(16));if(!Q)return[0,0,0];let[I]=Q;if(I.length===3)I=[...I].map((D)=>D+D).join("");let G=Number.parseInt(I,16);return[G>>16&255,G>>8&255,G&255]},enumerable:!1},hexToAnsi256:{value:(B)=>fB.rgbToAnsi256(...fB.hexToRgb(B)),enumerable:!1},ansi256ToAnsi:{value:(B)=>{if(B<8)return 30+B;if(B<16)return 90+(B-8);let Q,I,G;if(B>=232)Q=((B-232)*10+8)/255,I=Q,G=Q;else{B-=16;let Y=B%36;Q=Math.floor(B/36)/5,I=Math.floor(Y/6)/5,G=Y%6/5}let D=Math.max(Q,I,G)*2;if(D===0)return 30;let Z=30+(Math.round(G)<<2|Math.round(I)<<1|Math.round(Q));if(D===2)Z+=60;return Z},enumerable:!1},rgbToAnsi:{value:(B,Q,I)=>fB.ansi256ToAnsi(fB.rgbToAnsi256(B,Q,I)),enumerable:!1},hexToAnsi:{value:(B)=>fB.ansi256ToAnsi(fB.hexToAnsi256(B)),enumerable:!1}}),fB}var MN4=qN4(),vB=MN4;var $Q1=new Set(["\x1B","›"]),LN4=39,Xy1="\x07",O50="[",RN4="]",T50="m",NQ1=`${RN4}8;;`,L50=(A)=>`${$Q1.values().next().value}${O50}${A}${T50}`,R50=(A)=>`${$Q1.values().next().value}${NQ1}${A}${Xy1}`,ON4=(A)=>A.split(" ").map((B)=>iP(B)),Cy1=(A,B,Q)=>{let I=[...B],G=!1,D=!1,Z=iP(BG(A.at(-1)));for(let[Y,W]of I.entries()){let F=iP(W);if(Z+F<=Q)A[A.length-1]+=W;else A.push(W),Z=0;if($Q1.has(W))G=!0,D=I.slice(Y+1,Y+1+NQ1.length).join("")===NQ1;if(G){if(D){if(W===Xy1)G=!1,D=!1}else if(W===T50)G=!1;continue}if(Z+=F,Z===Q&&Y<I.length-1)A.push(""),Z=0}if(!Z&&A.at(-1).length>0&&A.length>1)A[A.length-2]+=A.pop()},TN4=(A)=>{let B=A.split(" "),Q=B.length;while(Q>0){if(iP(B[Q-1])>0)break;Q--}if(Q===B.length)return A;return B.slice(0,Q).join(" ")+B.slice(Q).join("")},PN4=(A,B,Q={})=>{if(Q.trim!==!1&&A.trim()==="")return"";let I="",G,D,Z=ON4(A),Y=[""];for(let[C,X]of A.split(" ").entries()){if(Q.trim!==!1)Y[Y.length-1]=Y.at(-1).trimStart();let V=iP(Y.at(-1));if(C!==0){if(V>=B&&(Q.wordWrap===!1||Q.trim===!1))Y.push(""),V=0;if(V>0||Q.trim===!1)Y[Y.length-1]+=" ",V++}if(Q.hard&&Z[C]>B){let K=B-V,U=1+Math.floor((Z[C]-K-1)/B);if(Math.floor((Z[C]-1)/B)<U)Y.push("");Cy1(Y,X,B);continue}if(V+Z[C]>B&&V>0&&Z[C]>0){if(Q.wordWrap===!1&&V<B){Cy1(Y,X,B);continue}Y.push("")}if(V+Z[C]>B&&Q.wordWrap===!1){Cy1(Y,X,B);continue}Y[Y.length-1]+=X}if(Q.trim!==!1)Y=Y.map((C)=>TN4(C));let W=Y.join(`
@@ -1146,7 +1146,7 @@ IMPORTANT: You must NEVER generate or guess URLs for the user unless you are con
1146
1146
 
1147
1147
  If the user asks for help or wants to give feedback inform them of the following:
1148
1148
  - /help: Get help with using ${x0}
1149
- - 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.1"}.ISSUES_EXPLAINER}
1149
+ - 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.2"}.ISSUES_EXPLAINER}
1150
1150
 
1151
1151
  When the user directly asks about ${x0} (eg 'can ${x0} do...', 'does ${x0} have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the ${II1} tool to gather information to answer the question from ${x0} docs at ${j70}.
1152
1152
  - The available sub-pages are \`overview\`, \`cli-usage\` (CLI commands, CLI flags, SDK, slash commands, and modes), \`memory\` (Memory management and CLAUDE.md), \`settings\`, \`security\` (Permissions and tools), \`costs\`, \`bedrock-vertex\`, \`tutorials\` (Extended thinking, pasting images, and common workflows), \`troubleshooting\`
@@ -1313,7 +1313,7 @@ Notes:
1313
1313
  ]))`;continue}}if(Q.s&&I[W]==="."){G+=Z?`${I[W]}\r
1314
1314
  `:`[${I[W]}\r
1315
1315
  ]`;continue}if(G+=I[W],I[W]==="\\")D=!0;else if(Z&&I[W]==="]")Z=!1;else if(!Z&&I[W]==="[")Z=!0}try{new RegExp(G)}catch{return console.warn(`Could not convert regex pattern at ${B.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),A.source}return G}function VI1(A,B){if(B.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if(B.target==="openApi3"&&A.keyType?._def.typeName===M0.ZodEnum)return{type:"object",required:A.keyType._def.values,properties:A.keyType._def.values.reduce((I,G)=>({...I,[G]:i9(A.valueType._def,{...B,currentPath:[...B.currentPath,"properties",G]})??{}}),{}),additionalProperties:B.rejectedAdditionalProperties};let Q={type:"object",additionalProperties:i9(A.valueType._def,{...B,currentPath:[...B.currentPath,"additionalProperties"]})??B.allowedAdditionalProperties};if(B.target==="openApi3")return Q;if(A.keyType?._def.typeName===M0.ZodString&&A.keyType._def.checks?.length){let{type:I,...G}=XI1(A.keyType._def,B);return{...Q,propertyNames:G}}else if(A.keyType?._def.typeName===M0.ZodEnum)return{...Q,propertyNames:{enum:A.keyType._def.values}};else if(A.keyType?._def.typeName===M0.ZodBranded&&A.keyType._def.type._def.typeName===M0.ZodString&&A.keyType._def.type._def.checks?.length){let{type:I,...G}=CI1(A.keyType._def,B);return{...Q,propertyNames:G}}return Q}function r70(A,B){if(B.mapStrategy==="record")return VI1(A,B);let Q=i9(A.keyType._def,{...B,currentPath:[...B.currentPath,"items","items","0"]})||{},I=i9(A.valueType._def,{...B,currentPath:[...B.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[Q,I],minItems:2,maxItems:2}}}function o70(A){let B=A.values,I=Object.keys(A.values).filter((D)=>{return typeof B[B[D]]!=="number"}).map((D)=>B[D]),G=Array.from(new Set(I.map((D)=>typeof D)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:I}}function t70(){return{not:{}}}function e70(A){return A.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var an={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function BI0(A,B){if(B.target==="openApi3")return AI0(A,B);let Q=A.options instanceof Map?Array.from(A.options.values()):A.options;if(Q.every((I)=>(I._def.typeName in an)&&(!I._def.checks||!I._def.checks.length))){let I=Q.reduce((G,D)=>{let Z=an[D._def.typeName];return Z&&!G.includes(Z)?[...G,Z]:G},[]);return{type:I.length>1?I:I[0]}}else if(Q.every((I)=>I._def.typeName==="ZodLiteral"&&!I.description)){let I=Q.reduce((G,D)=>{let Z=typeof D._def.value;switch(Z){case"string":case"number":case"boolean":return[...G,Z];case"bigint":return[...G,"integer"];case"object":if(D._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(I.length===Q.length){let G=I.filter((D,Z,Y)=>Y.indexOf(D)===Z);return{type:G.length>1?G:G[0],enum:Q.reduce((D,Z)=>{return D.includes(Z._def.value)?D:[...D,Z._def.value]},[])}}}else if(Q.every((I)=>I._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((I,G)=>[...I,...G._def.values.filter((D)=>!I.includes(D))],[])};return AI0(A,B)}var AI0=(A,B)=>{let Q=(A.options instanceof Map?Array.from(A.options.values()):A.options).map((I,G)=>i9(I._def,{...B,currentPath:[...B.currentPath,"anyOf",`${G}`]})).filter((I)=>!!I&&(!B.strictUnions||typeof I==="object"&&Object.keys(I).length>0));return Q.length?{anyOf:Q}:void 0};function QI0(A,B){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(A.innerType._def.typeName)&&(!A.innerType._def.checks||!A.innerType._def.checks.length)){if(B.target==="openApi3")return{type:an[A.innerType._def.typeName],nullable:!0};return{type:[an[A.innerType._def.typeName],"null"]}}if(B.target==="openApi3"){let I=i9(A.innerType._def,{...B,currentPath:[...B.currentPath]});if(I&&"$ref"in I)return{allOf:[I],nullable:!0};return I&&{...I,nullable:!0}}let Q=i9(A.innerType._def,{...B,currentPath:[...B.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function II0(A,B){let Q={type:"number"};if(!A.checks)return Q;for(let I of A.checks)switch(I.kind){case"int":Q.type="integer",rk1(Q,"type",I.message,B);break;case"min":if(B.target==="jsonSchema7")if(I.inclusive)y6(Q,"minimum",I.value,I.message,B);else y6(Q,"exclusiveMinimum",I.value,I.message,B);else{if(!I.inclusive)Q.exclusiveMinimum=!0;y6(Q,"minimum",I.value,I.message,B)}break;case"max":if(B.target==="jsonSchema7")if(I.inclusive)y6(Q,"maximum",I.value,I.message,B);else y6(Q,"exclusiveMaximum",I.value,I.message,B);else{if(!I.inclusive)Q.exclusiveMaximum=!0;y6(Q,"maximum",I.value,I.message,B)}break;case"multipleOf":y6(Q,"multipleOf",I.value,I.message,B);break}return Q}function GI0(A,B){let Q=B.target==="openAi",I={type:"object",properties:{}},G=[],D=A.shape();for(let Y in D){let W=D[Y];if(W===void 0||W._def===void 0)continue;let F=oR4(W);if(F&&Q){if(W instanceof kW)W=W._def.innerType;if(!W.isNullable())W=W.nullable();F=!1}let J=i9(W._def,{...B,currentPath:[...B.currentPath,"properties",Y],propertyPath:[...B.currentPath,"properties",Y]});if(J===void 0)continue;if(I.properties[Y]=J,!F)G.push(Y)}if(G.length)I.required=G;let Z=rR4(A,B);if(Z!==void 0)I.additionalProperties=Z;return I}function rR4(A,B){if(A.catchall._def.typeName!=="ZodNever")return i9(A.catchall._def,{...B,currentPath:[...B.currentPath,"additionalProperties"]});switch(A.unknownKeys){case"passthrough":return B.allowedAdditionalProperties;case"strict":return B.rejectedAdditionalProperties;case"strip":return B.removeAdditionalStrategy==="strict"?B.allowedAdditionalProperties:B.rejectedAdditionalProperties}}function oR4(A){try{return A.isOptional()}catch{return!0}}var DI0=(A,B)=>{if(B.currentPath.toString()===B.propertyPath?.toString())return i9(A.innerType._def,B);let Q=i9(A.innerType._def,{...B,currentPath:[...B.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:{}},Q]}:{}};var ZI0=(A,B)=>{if(B.pipeStrategy==="input")return i9(A.in._def,B);else if(B.pipeStrategy==="output")return i9(A.out._def,B);let Q=i9(A.in._def,{...B,currentPath:[...B.currentPath,"allOf","0"]}),I=i9(A.out._def,{...B,currentPath:[...B.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,I].filter((G)=>G!==void 0)}};function YI0(A,B){return i9(A.type._def,B)}function WI0(A,B){let I={type:"array",uniqueItems:!0,items:i9(A.valueType._def,{...B,currentPath:[...B.currentPath,"items"]})};if(A.minSize)y6(I,"minItems",A.minSize.value,A.minSize.message,B);if(A.maxSize)y6(I,"maxItems",A.maxSize.value,A.maxSize.message,B);return I}function FI0(A,B){if(A.rest)return{type:"array",minItems:A.items.length,items:A.items.map((Q,I)=>i9(Q._def,{...B,currentPath:[...B.currentPath,"items",`${I}`]})).reduce((Q,I)=>I===void 0?Q:[...Q,I],[]),additionalItems:i9(A.rest._def,{...B,currentPath:[...B.currentPath,"additionalItems"]})};else return{type:"array",minItems:A.items.length,maxItems:A.items.length,items:A.items.map((Q,I)=>i9(Q._def,{...B,currentPath:[...B.currentPath,"items",`${I}`]})).reduce((Q,I)=>I===void 0?Q:[...Q,I],[])}}function JI0(){return{not:{}}}function CI0(){return{}}var XI0=(A,B)=>{return i9(A.innerType._def,B)};var VI0=(A,B,Q)=>{switch(B){case M0.ZodString:return XI1(A,Q);case M0.ZodNumber:return II0(A,Q);case M0.ZodObject:return GI0(A,Q);case M0.ZodBigInt:return d70(A,Q);case M0.ZodBoolean:return u70();case M0.ZodDate:return ok1(A,Q);case M0.ZodUndefined:return JI0();case M0.ZodNull:return e70(Q);case M0.ZodArray:return m70(A,Q);case M0.ZodUnion:case M0.ZodDiscriminatedUnion:return BI0(A,Q);case M0.ZodIntersection:return n70(A,Q);case M0.ZodTuple:return FI0(A,Q);case M0.ZodRecord:return VI1(A,Q);case M0.ZodLiteral:return a70(A,Q);case M0.ZodEnum:return i70(A);case M0.ZodNativeEnum:return o70(A);case M0.ZodNullable:return QI0(A,Q);case M0.ZodOptional:return DI0(A,Q);case M0.ZodMap:return r70(A,Q);case M0.ZodSet:return WI0(A,Q);case M0.ZodLazy:return()=>A.getter()._def;case M0.ZodPromise:return YI0(A,Q);case M0.ZodNaN:case M0.ZodNever:return t70();case M0.ZodEffects:return l70(A,Q);case M0.ZodAny:return h70();case M0.ZodUnknown:return CI0();case M0.ZodDefault:return c70(A,Q);case M0.ZodBranded:return CI1(A,Q);case M0.ZodReadonly:return XI0(A,Q);case M0.ZodCatch:return p70(A,Q);case M0.ZodPipeline:return ZI0(A,Q);case M0.ZodFunction:case M0.ZodVoid:case M0.ZodSymbol:return;default:return((I)=>{return})(B)}};function i9(A,B,Q=!1){let I=B.seen.get(A);if(B.override){let Y=B.override?.(A,B,I,Q);if(Y!==v70)return Y}if(I&&!Q){let Y=tR4(I,B);if(Y!==void 0)return Y}let G={def:A,path:B.currentPath,jsonSchema:void 0};B.seen.set(A,G);let D=VI0(A,A.typeName,B),Z=typeof D==="function"?i9(D(),B):D;if(Z)AO4(A,B,Z);if(B.postProcess){let Y=B.postProcess(Z,A,B);return G.jsonSchema=Z,Y}return G.jsonSchema=Z,Z}var tR4=(A,B)=>{switch(B.$refStrategy){case"root":return{$ref:A.path.join("/")};case"relative":return{$ref:eR4(B.currentPath,A.path)};case"none":case"seen":{if(A.path.length<B.currentPath.length&&A.path.every((Q,I)=>B.currentPath[I]===Q))return console.warn(`Recursive reference detected at ${B.currentPath.join("/")}! Defaulting to any`),{};return B.$refStrategy==="seen"?{}:void 0}}},eR4=(A,B)=>{let Q=0;for(;Q<A.length&&Q<B.length;Q++)if(A[Q]!==B[Q])break;return[(A.length-Q).toString(),...B.slice(Q)].join("/")},AO4=(A,B,Q)=>{if(A.description){if(Q.description=A.description,B.markdownDescription)Q.markdownDescription=A.description}return Q};var CS=(A,B)=>{let Q=g70(B),I=typeof B==="object"&&B.definitions?Object.entries(B.definitions).reduce((W,[F,J])=>({...W,[F]:i9(J._def,{...Q,currentPath:[...Q.basePath,Q.definitionPath,F]},!0)??{}}),{}):void 0,G=typeof B==="string"?B:B?.nameStrategy==="title"?void 0:B?.name,D=i9(A._def,G===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,G]},!1)??{},Z=typeof B==="object"&&B.name!==void 0&&B.nameStrategy==="title"?B.name:void 0;if(Z!==void 0)D.title=Z;let Y=G===void 0?I?{...D,[Q.definitionPath]:I}:D:{$ref:[...Q.$refStrategy==="relative"?[]:Q.basePath,Q.definitionPath,G].join("/"),[Q.definitionPath]:{...I,[G]:D}};if(Q.target==="jsonSchema7")Y.$schema="http://json-schema.org/draft-07/schema#";else if(Q.target==="jsonSchema2019-09"||Q.target==="openAi")Y.$schema="https://json-schema.org/draft/2019-09/schema#";if(Q.target==="openAi"&&(("anyOf"in Y)||("oneOf"in Y)||("allOf"in Y)||("type"in Y)&&Array.isArray(Y.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return Y};import{createHash as hw6}from"crypto";import{randomUUID as W_}from"crypto";function KI0(A,B){return new Set([...A].filter((Q)=>!B.has(Q)))}function HI0(A,B){return A.size>0&&B.size>0&&[...A].some((Q)=>B.has(Q))}pQ1();import{join as PI1,resolve as SI1,sep as KD0}from"path";import{fileURLToPath as rP4}from"url";import{homedir as HD0}from"os";import{rmdirSync as nP4}from"fs";import*as I3 from"path";import*as Ga from"os";var YD0=F1(Ia(),1),WD0="claude-code-jetbrains-plugin",Hx1={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 aP4(A){let B=Ga.homedir(),Q=[],I=Hx1[A.toLowerCase()];if(!I)return Q;let G=process.env.APPDATA||I3.join(B,"AppData","Roaming"),D=process.env.LOCALAPPDATA||I3.join(B,"AppData","Local");switch(Ga.platform()){case"darwin":if(Q.push(I3.join(B,"Library","Application Support","JetBrains"),I3.join(B,"Library","Application Support")),A.toLowerCase()==="androidstudio")Q.push(I3.join(B,"Library","Application Support","Google"));break;case"win32":if(Q.push(I3.join(G,"JetBrains"),I3.join(D,"JetBrains"),I3.join(G)),A.toLowerCase()==="androidstudio")Q.push(I3.join(D,"Google"));break;case"linux":Q.push(I3.join(B,".config","JetBrains"),I3.join(B,".local","share","JetBrains"));for(let Z of I)Q.push(I3.join(B,"."+Z));if(A.toLowerCase()==="androidstudio")Q.push(I3.join(B,".config","Google"));break;default:break}return Q}function FD0(A){let B=[],Q=b1(),I=aP4(A),G=Hx1[A.toLowerCase()];if(!G)return B;for(let D of I){if(!Q.existsSync(D))continue;for(let Z of G){let Y=new RegExp("^"+Z+".*$"),W=Q.readdirSync(D).filter((F)=>Y.test(F.name)&&Q.statSync(I3.join(D,F.name)).isDirectory()).map((F)=>I3.join(D,F.name));for(let F of W){let J=Ga.platform()==="linux"?F:I3.join(F,"plugins");if(Q.existsSync(J))B.push(J)}}}return B.filter((D,Z)=>B.indexOf(D)===Z)}function ZD0(A){let B=I3.join(A,"lib"),Q=b1();if(Q.existsSync(B)){let I=Q.readdirSync(B),G=new RegExp("^claude-code-jetbrains-plugin-(\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9.]+)?)\\.jar$");for(let D of I){let Z=D.name.match(G);if(Z)return Z[1]}}return null}function RI1(A,B){let Q=b1();if(!Q.existsSync(B))Q.mkdirSync(B);let I=Q.readdirSync(A);for(let G of I){let D=I3.join(A,G.name),Z=I3.join(B,G.name);if(Q.statSync(D).isDirectory())RI1(D,Z);else Q.copyFileSync(D,Z)}}function OI1(A){let B=b1();if(B.existsSync(A))B.readdirSync(A).forEach((Q)=>{let I=I3.join(A,Q.name);if(B.statSync(I).isDirectory())OI1(I);else B.unlinkSync(I)}),nP4(A)}async function JD0(A,B){let Q=b1(),I=[];if(!Hx1[A.toLowerCase()])throw j1("tengu_ext_jetbrains_extension_install_unknown_ide",{}),new Error(`Unsupported IDE: ${A}`);if(!Q.existsSync(B)||!Q.statSync(B).isDirectory())throw j1("tengu_ext_jetbrains_extension_install_source_missing",{}),new Error("Plugin source missing");let G=ZD0(B);if(!G)throw j1("tengu_ext_jetbrains_extension_install_error_reading_version",{}),new Error("Error reading version from plugin");let D=FD0(A);if(D.length===0)throw j1("tengu_ext_jetbrains_extension_install_no_plugin_directories",{}),new Error(`Could not find plugin directories for ${A}`);for(let Z of D)try{let Y=I3.join(Z,WD0);if(Q.existsSync(Y)){let W=ZD0(Y);if(!W)OI1(Y),RI1(B,Y),I.push(Y);else if(YD0.gt(G,W))OI1(Y),RI1(B,Y),I.push(Y);else I.push(Y)}else OI1(Y),RI1(B,Y),I.push(Y)}catch(Y){}if(!I.length)throw j1("tengu_ext_jetbrains_extension_install_error_installing",{}),new Error("Could not write plugin to any of the directories");return G}function CD0(A){let B=FD0(A);for(let Q of B){let I=I3.join(Q,WD0);if(b1().existsSync(I))return!0}return!1}import{createConnection as oP4}from"net";var lQ=F1(S1(),1);var Da=F1(S1(),1);function sW(){return Da.createElement(y,{color:$1().permission},"Press ",Da.createElement(y,{bold:!0},"Enter")," to continue…")}function XD0({onDone:A,installedVersion:B}){let Q=v2(),I=$1();sP4(),J0((W,F)=>{if(F.escape||F.return)A()});let G=uA.terminal?Za(uA.terminal):"IDE",D=AD?"plugin":"extension",Z=uA.platform==="macos"?"Cmd+Q":"Ctrl+Q",Y=uA.platform==="macos"?"Cmd+Option+K":"Ctrl+Alt+K";return lQ.default.createElement(lQ.default.Fragment,null,lQ.default.createElement(m,{flexDirection:"column",borderStyle:"round",padding:1,marginTop:2,borderColor:I.secondaryBorder},lQ.default.createElement(y,{bold:!0,color:I.success},"\uD83C\uDF89 Claude Code ",D," installed in ",G,"!"),B&&lQ.default.createElement(y,{dimColor:!0},"Version: ",B),AD&&lQ.default.createElement(m,{marginTop:1},lQ.default.createElement(y,{color:I.warning},H2.warning," Restart ",G," (",Z,") to continue (may require multiple restarts)")),lQ.default.createElement(m,{marginTop:1},lQ.default.createElement(y,{bold:!0},"Quick start:")),lQ.default.createElement(y,null,"• Press Cmd+Esc to launch Claude Code"),lQ.default.createElement(y,null,"• View and apply file diffs directly in your editor"),lQ.default.createElement(y,null,"• Use ",Y," to insert @File references"),lQ.default.createElement(m,{marginTop:1},lQ.default.createElement(y,null,"For more information, see https://docs.anthropic.com/s/claude-code-ide-integrations"))),lQ.default.createElement(m,{marginLeft:3},lQ.default.createElement(y,{dimColor:!0},Q.pending?lQ.default.createElement(lQ.default.Fragment,null,"Press ",Q.keyName," again to exit"):lQ.default.createElement(sW,null))))}function zx1(){let A=VA(),B=uA.terminal||"unknown";return A.hasIdeOnboardingBeenShown?.[B]===!0}function sP4(){if(zx1())return;let A=uA.terminal||"unknown",B=VA();T0({...B,hasIdeOnboardingBeenShown:{...B.hasIdeOnboardingBeenShown,[A]:!0}})}function zD0(A){try{return process.kill(A,0),!0}catch{return!1}}function tP4(A){if(!zD0(A))return!1;if(!AL&&!AD)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 I=cG(`ps -o ppid= -p ${B}`),G=I?parseInt(I.trim()):null;if(!G||G===B)break;B=G}return!1}catch(B){return!1}}function wD0(){try{let A=PI1(HD0(),".claude","ide");return b1().readdirSync(A).filter((B)=>B.name.endsWith(".lock")).map((B)=>{let Q=PI1(A,B.name);return{path:Q,mtime:b1().statSync(Q).mtime}}).sort((B,Q)=>Q.mtime.getTime()-B.mtime.getTime()).map((B)=>B.path)}catch(A){return m1(A),[]}}function ED0(A){try{let B=b1().readFileSync(A,{encoding:"utf-8"}),Q=[],I,G,D=!1;try{let F=JSON.parse(B);if(F.workspaceFolders)Q=F.workspaceFolders;I=F.pid,G=F.ideName,D=F.transport==="ws"}catch(F){Q=B.split(`
1316
- `).map((J)=>J.trim())}let Z=A.split(KD0).pop();if(!Z)return null;let Y=Z.replace(".lock",""),W;if(D)W=`ws://127.0.0.1:${Y}/`;else W=`http://127.0.0.1:${Y}/sse`;return{url:W,workspaceFolders:Q,port:parseInt(Y),pid:I,ideName:G}}catch(B){return m1(B),null}}async function eP4(A){try{let B=new URL(A),Q=parseInt(B.port||"80");return new Promise((I)=>{let G=oP4({host:"127.0.0.1",port:Q,timeout:100});G.on("connect",()=>{G.destroy(),I(!0)}),G.on("error",()=>{I(!1)}),G.on("timeout",()=>{G.destroy(),I(!1)})})}catch(B){return!1}}async function AS4(){try{let A=wD0();for(let B of A){let Q=ED0(B);if(!Q){try{b1().unlinkSync(B)}catch(G){m1(G)}continue}let I=!1;if(Q.pid){if(!zD0(Q.pid))I=!0}else if(!await eP4(Q.url))I=!0;if(I)try{b1().unlinkSync(B)}catch(G){m1(G)}}}catch(A){m1(A)}}var BS4=rP4(import.meta.url),UD0=SI1(BS4,"../"),AL=uA.terminal==="cursor"||uA.terminal==="windsurf"||uA.terminal==="vscode",AD=uA.terminal==="pycharm"||uA.terminal==="intellij"||uA.terminal==="webstorm"||uA.terminal==="phpstorm"||uA.terminal==="rubymine"||uA.terminal==="clion"||uA.terminal==="goland"||uA.terminal==="rider"||uA.terminal==="datagrip"||uA.terminal==="appcode"||uA.terminal==="dataspell"||uA.terminal==="aqua"||uA.terminal==="gateway"||uA.terminal==="fleet"||uA.terminal==="androidstudio",Xz=AL||AD||Boolean(process.env.FORCE_CODE_TERMINAL);async function QS4(A){if(!Yc())return[()=>{},SI1(UD0,"vendor",A)];let B=global.Bun,Q=`vendor_${A.replace(/\//g,"_")}`,I=B?.embeddedFiles?.find((F)=>F.name===Q);if(!I)throw new Error(`Embedded vendor file not found: ${Q}`);let G=PI1(HD0(),".anthropic","claude-code","vendor-temp"),D=b1();if(!D.existsSync(G))D.mkdirSync(G);let Z=PI1(G,A),Y=await I.arrayBuffer();return D.writeFileSync(Z,Buffer.from(Y).toString("base64"),{encoding:"base64",flush:!1}),[()=>{try{if(D.existsSync(Z))D.unlinkSync(Z)}catch(F){m1(F instanceof Error?F:new Error(String(F)))}},Z]}async function IS4(){if(!Xz)return null;try{let A=await DS4();return j1("tengu_ext_installed",{}),T0({...VA(),diffTool:"auto"}),{installed:!0,error:null,installedVersion:A}}catch(A){j1("tengu_ext_install_error",{});let B=A instanceof Error?A.message:String(A);return m1(A),{installed:!1,error:B,installedVersion:null}}}var TI1=null;async function VD0(){if(TI1)TI1.abort();TI1=new AbortController;let A=TI1.signal;await AS4();let B=Date.now();while(Date.now()-B<30000&&!A.aborted){let Q=Ya(!1);if(A.aborted)return null;if(Q.length)return Q[0];await new Promise((I)=>setTimeout(I,1000))}return null}function Ya(A){let B=[];try{let Q=process.env.CLAUDE_CODE_SSE_PORT,I=Q?parseInt(Q):null,G=u4(),D=wD0();for(let Z of D){let Y=ED0(Z);if(!Y)continue;if(Xz&&(!Y.pid||!tP4(Y.pid)))continue;let W=!1;if(I&&Y.port===I)W=!0;else W=Y.workspaceFolders.some((J)=>{if(!J)return!1;let C=SI1(J);return G===C||G.startsWith(C+KD0)});if(!W&&!A)continue;let F=Y.ideName??(Xz?Za(uA.terminal):"IDE");if(B.some((J)=>J.name===F))F+=` (${Y.port})`;B.push({name:F,url:Y.url,workspaceFolders:Y.workspaceFolders,port:Y.port,isValid:W})}}catch(Q){m1(Q)}return B}async function ND0(A){await A.notification({method:"ide_connected",params:{pid:process.pid}})}function _I1(A){return A.some((B)=>B.type==="connected"&&B.name==="ide")}var GS4="anthropic.claude-code";async function wx1(){if(AL){let A=$D0();if(A)try{if((await jX(A,["--list-extensions"])).stdout?.includes(GS4))return!0}catch{}}else if(AD&&uA.terminal)return CD0(uA.terminal);return!1}async function DS4(){if(AL){let A=$D0();if(A){let[B,Q]=await QS4("claude-code.vsix"),I=ZS4();try{let G=await jX(A,["--force","--install-extension",Q]);if(WS4(A),G.code!==0)throw new Error(`${G.code}: ${G.error} ${G.stderr}`);return await I}finally{B()}}}else if(AD&&uA.terminal)return await JD0(uA.terminal,SI1(UD0,"vendor","claude-code-jetbrains-plugin"));return null}async function ZS4(){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.1"}.VERSION}function YS4(){try{if(NJ()!=="macos")return null;let B=process.ppid;for(let Q=0;Q<10;Q++){if(!B||B===0||B===1)break;let I=cG(`ps -o command= -p ${B}`)?.trim();if(I){let D={"Visual Studio Code.app":"code","Cursor.app":"cursor","Windsurf.app":"windsurf"};for(let[Z,Y]of Object.entries(D)){let W=I.indexOf(Z);if(W!==-1){let F=W+Z.length;return I.substring(0,F)+"/Contents/Resources/app/bin/"+Y}}}let G=cG(`ps -o ppid= -p ${B}`)?.trim();if(!G)break;B=parseInt(G.trim())}return null}catch{return null}}function $D0(){let A=YS4();if(A)return A;switch(uA.terminal){case"vscode":return"code";case"cursor":return"cursor";case"windsurf":return"windsurf";case null:break}return null}function WS4(A){return}var qD0=b0(()=>{try{return cG("cursor --version"),!0}catch{return!1}}),MD0=b0(()=>{try{return cG("windsurf --version"),!0}catch{return!1}}),LD0=b0(()=>{try{let A=cG("code --help");return Boolean(A&&A.includes("Visual Studio Code"))}catch{return!1}});function jI1(A){let Q=A.find((I)=>I.type==="connected"&&I.name==="ide")?.config;return Q?.type==="sse-ide"||Q?.type==="ws-ide"?Q.ideName:null}function Za(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 qU1(A)}}function RD0(A,B,Q){VD0().then(A),wx1().then((I)=>{IS4().catch((G)=>{return{installed:!1,error:G.message||"Installation failed",installedVersion:null}}).then((G)=>{if(Q(G),G?.installed)VD0().then(A);if(!I&&G?.installed===!0&&Xz&&!zx1())B()})})}var VS="2025-03-26",yI1=[VS,"2024-11-05","2024-10-07"],kI1="2.0",OD0=i.union([i.string(),i.number().int()]),TD0=i.string(),FS4=i.object({progressToken:i.optional(OD0)}).passthrough(),CV=i.object({_meta:i.optional(FS4)}).passthrough(),rW=i.object({method:i.string(),params:i.optional(CV)}),Wa=i.object({_meta:i.optional(i.object({}).passthrough())}).passthrough(),Vz=i.object({method:i.string(),params:i.optional(Wa)}),XV=i.object({_meta:i.optional(i.object({}).passthrough())}).passthrough(),xI1=i.union([i.string(),i.number().int()]),PD0=i.object({jsonrpc:i.literal(kI1),id:xI1}).merge(rW).strict(),SD0=(A)=>PD0.safeParse(A).success,_D0=i.object({jsonrpc:i.literal(kI1)}).merge(Vz).strict(),jD0=(A)=>_D0.safeParse(A).success,yD0=i.object({jsonrpc:i.literal(kI1),id:xI1,result:XV}).strict(),Ex1=(A)=>yD0.safeParse(A).success,QL;(function(A){A[A.ConnectionClosed=-32000]="ConnectionClosed",A[A.RequestTimeout=-32001]="RequestTimeout",A[A.ParseError=-32700]="ParseError",A[A.InvalidRequest=-32600]="InvalidRequest",A[A.MethodNotFound=-32601]="MethodNotFound",A[A.InvalidParams=-32602]="InvalidParams",A[A.InternalError=-32603]="InternalError"})(QL||(QL={}));var kD0=i.object({jsonrpc:i.literal(kI1),id:xI1,error:i.object({code:i.number().int(),message:i.string(),data:i.optional(i.unknown())})}).strict(),xD0=(A)=>kD0.safeParse(A).success,Eb=i.union([PD0,_D0,yD0,kD0]),fU=XV.strict(),fI1=Vz.extend({method:i.literal("notifications/cancelled"),params:Wa.extend({requestId:xI1,reason:i.string().optional()})}),fD0=i.object({name:i.string(),version:i.string()}).passthrough(),JS4=i.object({experimental:i.optional(i.object({}).passthrough()),sampling:i.optional(i.object({}).passthrough()),roots:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough())}).passthrough(),Ux1=rW.extend({method:i.literal("initialize"),params:CV.extend({protocolVersion:i.string(),capabilities:JS4,clientInfo:fD0})});var CS4=i.object({experimental:i.optional(i.object({}).passthrough()),logging:i.optional(i.object({}).passthrough()),completions:i.optional(i.object({}).passthrough()),prompts:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough()),resources:i.optional(i.object({subscribe:i.optional(i.boolean()),listChanged:i.optional(i.boolean())}).passthrough()),tools:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough())}).passthrough(),Nx1=XV.extend({protocolVersion:i.string(),capabilities:CS4,serverInfo:fD0,instructions:i.optional(i.string())}),$x1=Vz.extend({method:i.literal("notifications/initialized")});var vI1=rW.extend({method:i.literal("ping")}),XS4=i.object({progress:i.number(),total:i.optional(i.number())}).passthrough(),bI1=Vz.extend({method:i.literal("notifications/progress"),params:Wa.merge(XS4).extend({progressToken:OD0})}),gI1=rW.extend({params:CV.extend({cursor:i.optional(TD0)}).optional()}),hI1=XV.extend({nextCursor:i.optional(TD0)}),vD0=i.object({uri:i.string(),mimeType:i.optional(i.string())}).passthrough(),bD0=vD0.extend({text:i.string()}),gD0=vD0.extend({blob:i.string().base64()}),VS4=i.object({uri:i.string(),name:i.string(),description:i.optional(i.string()),mimeType:i.optional(i.string())}).passthrough(),KS4=i.object({uriTemplate:i.string(),name:i.string(),description:i.optional(i.string()),mimeType:i.optional(i.string())}).passthrough(),HS4=gI1.extend({method:i.literal("resources/list")}),mI1=hI1.extend({resources:i.array(VS4)}),zS4=gI1.extend({method:i.literal("resources/templates/list")}),qx1=hI1.extend({resourceTemplates:i.array(KS4)}),wS4=rW.extend({method:i.literal("resources/read"),params:CV.extend({uri:i.string()})}),dI1=XV.extend({contents:i.array(i.union([bD0,gD0]))}),ES4=Vz.extend({method:i.literal("notifications/resources/list_changed")}),US4=rW.extend({method:i.literal("resources/subscribe"),params:CV.extend({uri:i.string()})}),NS4=rW.extend({method:i.literal("resources/unsubscribe"),params:CV.extend({uri:i.string()})}),$S4=Vz.extend({method:i.literal("notifications/resources/updated"),params:Wa.extend({uri:i.string()})}),qS4=i.object({name:i.string(),description:i.optional(i.string()),required:i.optional(i.boolean())}).passthrough(),MS4=i.object({name:i.string(),description:i.optional(i.string()),arguments:i.optional(i.array(qS4))}).passthrough(),LS4=gI1.extend({method:i.literal("prompts/list")}),Fa=hI1.extend({prompts:i.array(MS4)}),RS4=rW.extend({method:i.literal("prompts/get"),params:CV.extend({name:i.string(),arguments:i.optional(i.record(i.string()))})}),uI1=i.object({type:i.literal("text"),text:i.string()}).passthrough(),pI1=i.object({type:i.literal("image"),data:i.string().base64(),mimeType:i.string()}).passthrough(),cI1=i.object({type:i.literal("audio"),data:i.string().base64(),mimeType:i.string()}).passthrough(),hD0=i.object({type:i.literal("resource"),resource:i.union([bD0,gD0])}).passthrough(),OS4=i.object({role:i.enum(["user","assistant"]),content:i.union([uI1,pI1,cI1,hD0])}).passthrough(),Mx1=XV.extend({description:i.optional(i.string()),messages:i.array(OS4)}),TS4=Vz.extend({method:i.literal("notifications/prompts/list_changed")}),PS4=i.object({title:i.optional(i.string()),readOnlyHint:i.optional(i.boolean()),destructiveHint:i.optional(i.boolean()),idempotentHint:i.optional(i.boolean()),openWorldHint:i.optional(i.boolean())}).passthrough(),SS4=i.object({name:i.string(),description:i.optional(i.string()),inputSchema:i.object({type:i.literal("object"),properties:i.optional(i.object({}).passthrough())}).passthrough(),annotations:i.optional(PS4)}).passthrough(),Lx1=gI1.extend({method:i.literal("tools/list")}),Ja=hI1.extend({tools:i.array(SS4)}),Ub=XV.extend({content:i.array(i.union([uI1,pI1,cI1,hD0])),isError:i.boolean().default(!1).optional()}),rI8=Ub.or(XV.extend({toolResult:i.unknown()})),Rx1=rW.extend({method:i.literal("tools/call"),params:CV.extend({name:i.string(),arguments:i.optional(i.record(i.unknown()))})}),_S4=Vz.extend({method:i.literal("notifications/tools/list_changed")}),mD0=i.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),jS4=rW.extend({method:i.literal("logging/setLevel"),params:CV.extend({level:mD0})}),yS4=Vz.extend({method:i.literal("notifications/message"),params:Wa.extend({level:mD0,logger:i.optional(i.string()),data:i.unknown()})}),kS4=i.object({name:i.string().optional()}).passthrough(),xS4=i.object({hints:i.optional(i.array(kS4)),costPriority:i.optional(i.number().min(0).max(1)),speedPriority:i.optional(i.number().min(0).max(1)),intelligencePriority:i.optional(i.number().min(0).max(1))}).passthrough(),fS4=i.object({role:i.enum(["user","assistant"]),content:i.union([uI1,pI1,cI1])}).passthrough(),vS4=rW.extend({method:i.literal("sampling/createMessage"),params:CV.extend({messages:i.array(fS4),systemPrompt:i.optional(i.string()),includeContext:i.optional(i.enum(["none","thisServer","allServers"])),temperature:i.optional(i.number()),maxTokens:i.number().int(),stopSequences:i.optional(i.array(i.string())),metadata:i.optional(i.object({}).passthrough()),modelPreferences:i.optional(xS4)})}),Ox1=XV.extend({model:i.string(),stopReason:i.optional(i.enum(["endTurn","stopSequence","maxTokens"]).or(i.string())),role:i.enum(["user","assistant"]),content:i.discriminatedUnion("type",[uI1,pI1,cI1])}),bS4=i.object({type:i.literal("ref/resource"),uri:i.string()}).passthrough(),gS4=i.object({type:i.literal("ref/prompt"),name:i.string()}).passthrough(),hS4=rW.extend({method:i.literal("completion/complete"),params:CV.extend({ref:i.union([gS4,bS4]),argument:i.object({name:i.string(),value:i.string()}).passthrough()})}),Tx1=XV.extend({completion:i.object({values:i.array(i.string()).max(100),total:i.optional(i.number().int()),hasMore:i.optional(i.boolean())}).passthrough()}),mS4=i.object({uri:i.string().startsWith("file://"),name:i.optional(i.string())}).passthrough(),Px1=rW.extend({method:i.literal("roots/list")}),Sx1=XV.extend({roots:i.array(mS4)}),dS4=Vz.extend({method:i.literal("notifications/roots/list_changed")}),oI8=i.union([vI1,Ux1,hS4,jS4,RS4,LS4,HS4,zS4,wS4,US4,NS4,Rx1,Lx1]),tI8=i.union([fI1,bI1,$x1,dS4]),eI8=i.union([fU,Ox1,Sx1]),AG8=i.union([vI1,vS4,Px1]),BG8=i.union([fI1,bI1,yS4,$S4,ES4,_S4,TS4]),QG8=i.union([fU,Nx1,Tx1,Mx1,Fa,mI1,qx1,dI1,Ub,Ja]);class Nb extends Error{constructor(A,B,Q){super(`MCP error ${A}: ${B}`);this.code=A,this.data=Q,this.name="McpError"}}var uS4=60000;class Ca{constructor(A){this._options=A,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this.setNotificationHandler(fI1,(B)=>{let Q=this._requestHandlerAbortControllers.get(B.params.requestId);Q===null||Q===void 0||Q.abort(B.params.reason)}),this.setNotificationHandler(bI1,(B)=>{this._onprogress(B)}),this.setRequestHandler(vI1,(B)=>({}))}_setupTimeout(A,B,Q,I,G=!1){this._timeoutInfo.set(A,{timeoutId:setTimeout(I,B),startTime:Date.now(),timeout:B,maxTotalTimeout:Q,resetTimeoutOnProgress:G,onTimeout:I})}_resetTimeout(A){let B=this._timeoutInfo.get(A);if(!B)return!1;let Q=Date.now()-B.startTime;if(B.maxTotalTimeout&&Q>=B.maxTotalTimeout)throw this._timeoutInfo.delete(A),new Nb(QL.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:B.maxTotalTimeout,totalElapsed:Q});return clearTimeout(B.timeoutId),B.timeoutId=setTimeout(B.onTimeout,B.timeout),!0}_cleanupTimeout(A){let B=this._timeoutInfo.get(A);if(B)clearTimeout(B.timeoutId),this._timeoutInfo.delete(A)}async connect(A){this._transport=A,this._transport.onclose=()=>{this._onclose()},this._transport.onerror=(B)=>{this._onerror(B)},this._transport.onmessage=(B,Q)=>{if(Ex1(B)||xD0(B))this._onresponse(B);else if(SD0(B))this._onrequest(B,Q);else if(jD0(B))this._onnotification(B);else this._onerror(new Error(`Unknown message type: ${JSON.stringify(B)}`))},await this._transport.start()}_onclose(){var A;let B=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._transport=void 0,(A=this.onclose)===null||A===void 0||A.call(this);let Q=new Nb(QL.ConnectionClosed,"Connection closed");for(let I of B.values())I(Q)}_onerror(A){var B;(B=this.onerror)===null||B===void 0||B.call(this,A)}_onnotification(A){var B;let Q=(B=this._notificationHandlers.get(A.method))!==null&&B!==void 0?B:this.fallbackNotificationHandler;if(Q===void 0)return;Promise.resolve().then(()=>Q(A)).catch((I)=>this._onerror(new Error(`Uncaught error in notification handler: ${I}`)))}_onrequest(A,B){var Q,I,G,D;let Z=(Q=this._requestHandlers.get(A.method))!==null&&Q!==void 0?Q:this.fallbackRequestHandler;if(Z===void 0){(I=this._transport)===null||I===void 0||I.send({jsonrpc:"2.0",id:A.id,error:{code:QL.MethodNotFound,message:"Method not found"}}).catch((F)=>this._onerror(new Error(`Failed to send an error response: ${F}`)));return}let Y=new AbortController;this._requestHandlerAbortControllers.set(A.id,Y);let W={signal:Y.signal,sessionId:(G=this._transport)===null||G===void 0?void 0:G.sessionId,_meta:(D=A.params)===null||D===void 0?void 0:D._meta,sendNotification:(F)=>this.notification(F,{relatedRequestId:A.id}),sendRequest:(F,J,C)=>this.request(F,J,{...C,relatedRequestId:A.id}),authInfo:B===null||B===void 0?void 0:B.authInfo,requestId:A.id};Promise.resolve().then(()=>Z(A,W)).then((F)=>{var J;if(Y.signal.aborted)return;return(J=this._transport)===null||J===void 0?void 0:J.send({result:F,jsonrpc:"2.0",id:A.id})},(F)=>{var J,C;if(Y.signal.aborted)return;return(J=this._transport)===null||J===void 0?void 0:J.send({jsonrpc:"2.0",id:A.id,error:{code:Number.isSafeInteger(F.code)?F.code:QL.InternalError,message:(C=F.message)!==null&&C!==void 0?C:"Internal error"}})}).catch((F)=>this._onerror(new Error(`Failed to send response: ${F}`))).finally(()=>{this._requestHandlerAbortControllers.delete(A.id)})}_onprogress(A){let{progressToken:B,...Q}=A.params,I=Number(B),G=this._progressHandlers.get(I);if(!G){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(A)}`));return}let D=this._responseHandlers.get(I),Z=this._timeoutInfo.get(I);if(Z&&D&&Z.resetTimeoutOnProgress)try{this._resetTimeout(I)}catch(Y){D(Y);return}G(Q)}_onresponse(A){let B=Number(A.id),Q=this._responseHandlers.get(B);if(Q===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(A)}`));return}if(this._responseHandlers.delete(B),this._progressHandlers.delete(B),this._cleanupTimeout(B),Ex1(A))Q(A);else{let I=new Nb(A.error.code,A.error.message,A.error.data);Q(I)}}get transport(){return this._transport}async close(){var A;await((A=this._transport)===null||A===void 0?void 0:A.close())}request(A,B,Q){let{relatedRequestId:I,resumptionToken:G,onresumptiontoken:D}=Q!==null&&Q!==void 0?Q:{};return new Promise((Z,Y)=>{var W,F,J,C,X;if(!this._transport){Y(new Error("Not connected"));return}if(((W=this._options)===null||W===void 0?void 0:W.enforceStrictCapabilities)===!0)this.assertCapabilityForMethod(A.method);(F=Q===null||Q===void 0?void 0:Q.signal)===null||F===void 0||F.throwIfAborted();let V=this._requestMessageId++,K={...A,jsonrpc:"2.0",id:V};if(Q===null||Q===void 0?void 0:Q.onprogress)this._progressHandlers.set(V,Q.onprogress),K.params={...A.params,_meta:{progressToken:V}};let U=(M)=>{var R;this._responseHandlers.delete(V),this._progressHandlers.delete(V),this._cleanupTimeout(V),(R=this._transport)===null||R===void 0||R.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:V,reason:String(M)}},{relatedRequestId:I,resumptionToken:G,onresumptiontoken:D}).catch((T)=>this._onerror(new Error(`Failed to send cancellation: ${T}`))),Y(M)};this._responseHandlers.set(V,(M)=>{var R;if((R=Q===null||Q===void 0?void 0:Q.signal)===null||R===void 0?void 0:R.aborted)return;if(M instanceof Error)return Y(M);try{let T=B.parse(M.result);Z(T)}catch(T){Y(T)}}),(J=Q===null||Q===void 0?void 0:Q.signal)===null||J===void 0||J.addEventListener("abort",()=>{var M;U((M=Q===null||Q===void 0?void 0:Q.signal)===null||M===void 0?void 0:M.reason)});let N=(C=Q===null||Q===void 0?void 0:Q.timeout)!==null&&C!==void 0?C:uS4,q=()=>U(new Nb(QL.RequestTimeout,"Request timed out",{timeout:N}));this._setupTimeout(V,N,Q===null||Q===void 0?void 0:Q.maxTotalTimeout,q,(X=Q===null||Q===void 0?void 0:Q.resetTimeoutOnProgress)!==null&&X!==void 0?X:!1),this._transport.send(K,{relatedRequestId:I,resumptionToken:G,onresumptiontoken:D}).catch((M)=>{this._cleanupTimeout(V),Y(M)})})}async notification(A,B){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(A.method);let Q={...A,jsonrpc:"2.0"};await this._transport.send(Q,B)}setRequestHandler(A,B){let Q=A.shape.method.value;this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(I,G)=>{return Promise.resolve(B(A.parse(I),G))})}removeRequestHandler(A){this._requestHandlers.delete(A)}assertCanSetRequestHandler(A){if(this._requestHandlers.has(A))throw new Error(`A request handler for ${A} already exists, which would be overridden`)}setNotificationHandler(A,B){this._notificationHandlers.set(A.shape.method.value,(Q)=>Promise.resolve(B(A.parse(Q))))}removeNotificationHandler(A){this._notificationHandlers.delete(A)}}function lI1(A,B){return Object.entries(B).reduce((Q,[I,G])=>{if(G&&typeof G==="object")Q[I]=Q[I]?{...Q[I],...G}:G;else Q[I]=G;return Q},{...A})}class _x1 extends Ca{constructor(A,B){var Q;super(B);this._clientInfo=A,this._capabilities=(Q=B===null||B===void 0?void 0:B.capabilities)!==null&&Q!==void 0?Q:{}}registerCapabilities(A){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=lI1(this._capabilities,A)}assertCapability(A,B){var Q;if(!((Q=this._serverCapabilities)===null||Q===void 0?void 0:Q[A]))throw new Error(`Server does not support ${A} (required for ${B})`)}async connect(A,B){if(await super.connect(A),A.sessionId!==void 0)return;try{let Q=await this.request({method:"initialize",params:{protocolVersion:VS,capabilities:this._capabilities,clientInfo:this._clientInfo}},Nx1,B);if(Q===void 0)throw new Error(`Server sent invalid initialize result: ${Q}`);if(!yI1.includes(Q.protocolVersion))throw new Error(`Server's protocol version is not supported: ${Q.protocolVersion}`);this._serverCapabilities=Q.capabilities,this._serverVersion=Q.serverInfo,this._instructions=Q.instructions,await this.notification({method:"notifications/initialized"})}catch(Q){throw this.close(),Q}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(A){var B,Q,I,G,D;switch(A){case"logging/setLevel":if(!((B=this._serverCapabilities)===null||B===void 0?void 0:B.logging))throw new Error(`Server does not support logging (required for ${A})`);break;case"prompts/get":case"prompts/list":if(!((Q=this._serverCapabilities)===null||Q===void 0?void 0:Q.prompts))throw new Error(`Server does not support prompts (required for ${A})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!((I=this._serverCapabilities)===null||I===void 0?void 0:I.resources))throw new Error(`Server does not support resources (required for ${A})`);if(A==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${A})`);break;case"tools/call":case"tools/list":if(!((G=this._serverCapabilities)===null||G===void 0?void 0:G.tools))throw new Error(`Server does not support tools (required for ${A})`);break;case"completion/complete":if(!((D=this._serverCapabilities)===null||D===void 0?void 0:D.completions))throw new Error(`Server does not support completions (required for ${A})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(A){var B;switch(A){case"notifications/roots/list_changed":if(!((B=this._capabilities.roots)===null||B===void 0?void 0:B.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${A})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(A){switch(A){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${A})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${A})`);break;case"ping":break}}async ping(A){return this.request({method:"ping"},fU,A)}async complete(A,B){return this.request({method:"completion/complete",params:A},Tx1,B)}async setLoggingLevel(A,B){return this.request({method:"logging/setLevel",params:{level:A}},fU,B)}async getPrompt(A,B){return this.request({method:"prompts/get",params:A},Mx1,B)}async listPrompts(A,B){return this.request({method:"prompts/list",params:A},Fa,B)}async listResources(A,B){return this.request({method:"resources/list",params:A},mI1,B)}async listResourceTemplates(A,B){return this.request({method:"resources/templates/list",params:A},qx1,B)}async readResource(A,B){return this.request({method:"resources/read",params:A},dI1,B)}async subscribeResource(A,B){return this.request({method:"resources/subscribe",params:A},fU,B)}async unsubscribeResource(A,B){return this.request({method:"resources/unsubscribe",params:A},fU,B)}async callTool(A,B=Ub,Q){return this.request({method:"tools/call",params:A},B,Q)}async listTools(A,B){return this.request({method:"tools/list",params:A},Ja,B)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var SZ0=F1(PZ0(),1);import aI1 from"node:process";import{PassThrough as U_4}from"node:stream";class Xa{append(A){this._buffer=this._buffer?Buffer.concat([this._buffer,A]):A}readMessage(){if(!this._buffer)return null;let A=this._buffer.indexOf(`
1316
+ `).map((J)=>J.trim())}let Z=A.split(KD0).pop();if(!Z)return null;let Y=Z.replace(".lock",""),W;if(D)W=`ws://127.0.0.1:${Y}/`;else W=`http://127.0.0.1:${Y}/sse`;return{url:W,workspaceFolders:Q,port:parseInt(Y),pid:I,ideName:G}}catch(B){return m1(B),null}}async function eP4(A){try{let B=new URL(A),Q=parseInt(B.port||"80");return new Promise((I)=>{let G=oP4({host:"127.0.0.1",port:Q,timeout:100});G.on("connect",()=>{G.destroy(),I(!0)}),G.on("error",()=>{I(!1)}),G.on("timeout",()=>{G.destroy(),I(!1)})})}catch(B){return!1}}async function AS4(){try{let A=wD0();for(let B of A){let Q=ED0(B);if(!Q){try{b1().unlinkSync(B)}catch(G){m1(G)}continue}let I=!1;if(Q.pid){if(!zD0(Q.pid))I=!0}else if(!await eP4(Q.url))I=!0;if(I)try{b1().unlinkSync(B)}catch(G){m1(G)}}}catch(A){m1(A)}}var BS4=rP4(import.meta.url),UD0=SI1(BS4,"../"),AL=uA.terminal==="cursor"||uA.terminal==="windsurf"||uA.terminal==="vscode",AD=uA.terminal==="pycharm"||uA.terminal==="intellij"||uA.terminal==="webstorm"||uA.terminal==="phpstorm"||uA.terminal==="rubymine"||uA.terminal==="clion"||uA.terminal==="goland"||uA.terminal==="rider"||uA.terminal==="datagrip"||uA.terminal==="appcode"||uA.terminal==="dataspell"||uA.terminal==="aqua"||uA.terminal==="gateway"||uA.terminal==="fleet"||uA.terminal==="androidstudio",Xz=AL||AD||Boolean(process.env.FORCE_CODE_TERMINAL);async function QS4(A){if(!Yc())return[()=>{},SI1(UD0,"vendor",A)];let B=global.Bun,Q=`vendor_${A.replace(/\//g,"_")}`,I=B?.embeddedFiles?.find((F)=>F.name===Q);if(!I)throw new Error(`Embedded vendor file not found: ${Q}`);let G=PI1(HD0(),".anthropic","claude-code","vendor-temp"),D=b1();if(!D.existsSync(G))D.mkdirSync(G);let Z=PI1(G,A),Y=await I.arrayBuffer();return D.writeFileSync(Z,Buffer.from(Y).toString("base64"),{encoding:"base64",flush:!1}),[()=>{try{if(D.existsSync(Z))D.unlinkSync(Z)}catch(F){m1(F instanceof Error?F:new Error(String(F)))}},Z]}async function IS4(){if(!Xz)return null;try{let A=await DS4();return j1("tengu_ext_installed",{}),T0({...VA(),diffTool:"auto"}),{installed:!0,error:null,installedVersion:A}}catch(A){j1("tengu_ext_install_error",{});let B=A instanceof Error?A.message:String(A);return m1(A),{installed:!1,error:B,installedVersion:null}}}var TI1=null;async function VD0(){if(TI1)TI1.abort();TI1=new AbortController;let A=TI1.signal;await AS4();let B=Date.now();while(Date.now()-B<30000&&!A.aborted){let Q=Ya(!1);if(A.aborted)return null;if(Q.length)return Q[0];await new Promise((I)=>setTimeout(I,1000))}return null}function Ya(A){let B=[];try{let Q=process.env.CLAUDE_CODE_SSE_PORT,I=Q?parseInt(Q):null,G=u4(),D=wD0();for(let Z of D){let Y=ED0(Z);if(!Y)continue;if(Xz&&(!Y.pid||!tP4(Y.pid)))continue;let W=!1;if(I&&Y.port===I)W=!0;else W=Y.workspaceFolders.some((J)=>{if(!J)return!1;let C=SI1(J);return G===C||G.startsWith(C+KD0)});if(!W&&!A)continue;let F=Y.ideName??(Xz?Za(uA.terminal):"IDE");if(B.some((J)=>J.name===F))F+=` (${Y.port})`;B.push({name:F,url:Y.url,workspaceFolders:Y.workspaceFolders,port:Y.port,isValid:W})}}catch(Q){m1(Q)}return B}async function ND0(A){await A.notification({method:"ide_connected",params:{pid:process.pid}})}function _I1(A){return A.some((B)=>B.type==="connected"&&B.name==="ide")}var GS4="anthropic.claude-code";async function wx1(){if(AL){let A=$D0();if(A)try{if((await jX(A,["--list-extensions"])).stdout?.includes(GS4))return!0}catch{}}else if(AD&&uA.terminal)return CD0(uA.terminal);return!1}async function DS4(){if(AL){let A=$D0();if(A){let[B,Q]=await QS4("claude-code.vsix"),I=ZS4();try{let G=await jX(A,["--force","--install-extension",Q]);if(WS4(A),G.code!==0)throw new Error(`${G.code}: ${G.error} ${G.stderr}`);return await I}finally{B()}}}else if(AD&&uA.terminal)return await JD0(uA.terminal,SI1(UD0,"vendor","claude-code-jetbrains-plugin"));return null}async function ZS4(){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.2"}.VERSION}function YS4(){try{if(NJ()!=="macos")return null;let B=process.ppid;for(let Q=0;Q<10;Q++){if(!B||B===0||B===1)break;let I=cG(`ps -o command= -p ${B}`)?.trim();if(I){let D={"Visual Studio Code.app":"code","Cursor.app":"cursor","Windsurf.app":"windsurf"};for(let[Z,Y]of Object.entries(D)){let W=I.indexOf(Z);if(W!==-1){let F=W+Z.length;return I.substring(0,F)+"/Contents/Resources/app/bin/"+Y}}}let G=cG(`ps -o ppid= -p ${B}`)?.trim();if(!G)break;B=parseInt(G.trim())}return null}catch{return null}}function $D0(){let A=YS4();if(A)return A;switch(uA.terminal){case"vscode":return"code";case"cursor":return"cursor";case"windsurf":return"windsurf";case null:break}return null}function WS4(A){return}var qD0=b0(()=>{try{return cG("cursor --version"),!0}catch{return!1}}),MD0=b0(()=>{try{return cG("windsurf --version"),!0}catch{return!1}}),LD0=b0(()=>{try{let A=cG("code --help");return Boolean(A&&A.includes("Visual Studio Code"))}catch{return!1}});function jI1(A){let Q=A.find((I)=>I.type==="connected"&&I.name==="ide")?.config;return Q?.type==="sse-ide"||Q?.type==="ws-ide"?Q.ideName:null}function Za(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 qU1(A)}}function RD0(A,B,Q){VD0().then(A),wx1().then((I)=>{IS4().catch((G)=>{return{installed:!1,error:G.message||"Installation failed",installedVersion:null}}).then((G)=>{if(Q(G),G?.installed)VD0().then(A);if(!I&&G?.installed===!0&&Xz&&!zx1())B()})})}var VS="2025-03-26",yI1=[VS,"2024-11-05","2024-10-07"],kI1="2.0",OD0=i.union([i.string(),i.number().int()]),TD0=i.string(),FS4=i.object({progressToken:i.optional(OD0)}).passthrough(),CV=i.object({_meta:i.optional(FS4)}).passthrough(),rW=i.object({method:i.string(),params:i.optional(CV)}),Wa=i.object({_meta:i.optional(i.object({}).passthrough())}).passthrough(),Vz=i.object({method:i.string(),params:i.optional(Wa)}),XV=i.object({_meta:i.optional(i.object({}).passthrough())}).passthrough(),xI1=i.union([i.string(),i.number().int()]),PD0=i.object({jsonrpc:i.literal(kI1),id:xI1}).merge(rW).strict(),SD0=(A)=>PD0.safeParse(A).success,_D0=i.object({jsonrpc:i.literal(kI1)}).merge(Vz).strict(),jD0=(A)=>_D0.safeParse(A).success,yD0=i.object({jsonrpc:i.literal(kI1),id:xI1,result:XV}).strict(),Ex1=(A)=>yD0.safeParse(A).success,QL;(function(A){A[A.ConnectionClosed=-32000]="ConnectionClosed",A[A.RequestTimeout=-32001]="RequestTimeout",A[A.ParseError=-32700]="ParseError",A[A.InvalidRequest=-32600]="InvalidRequest",A[A.MethodNotFound=-32601]="MethodNotFound",A[A.InvalidParams=-32602]="InvalidParams",A[A.InternalError=-32603]="InternalError"})(QL||(QL={}));var kD0=i.object({jsonrpc:i.literal(kI1),id:xI1,error:i.object({code:i.number().int(),message:i.string(),data:i.optional(i.unknown())})}).strict(),xD0=(A)=>kD0.safeParse(A).success,Eb=i.union([PD0,_D0,yD0,kD0]),fU=XV.strict(),fI1=Vz.extend({method:i.literal("notifications/cancelled"),params:Wa.extend({requestId:xI1,reason:i.string().optional()})}),fD0=i.object({name:i.string(),version:i.string()}).passthrough(),JS4=i.object({experimental:i.optional(i.object({}).passthrough()),sampling:i.optional(i.object({}).passthrough()),roots:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough())}).passthrough(),Ux1=rW.extend({method:i.literal("initialize"),params:CV.extend({protocolVersion:i.string(),capabilities:JS4,clientInfo:fD0})});var CS4=i.object({experimental:i.optional(i.object({}).passthrough()),logging:i.optional(i.object({}).passthrough()),completions:i.optional(i.object({}).passthrough()),prompts:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough()),resources:i.optional(i.object({subscribe:i.optional(i.boolean()),listChanged:i.optional(i.boolean())}).passthrough()),tools:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough())}).passthrough(),Nx1=XV.extend({protocolVersion:i.string(),capabilities:CS4,serverInfo:fD0,instructions:i.optional(i.string())}),$x1=Vz.extend({method:i.literal("notifications/initialized")});var vI1=rW.extend({method:i.literal("ping")}),XS4=i.object({progress:i.number(),total:i.optional(i.number())}).passthrough(),bI1=Vz.extend({method:i.literal("notifications/progress"),params:Wa.merge(XS4).extend({progressToken:OD0})}),gI1=rW.extend({params:CV.extend({cursor:i.optional(TD0)}).optional()}),hI1=XV.extend({nextCursor:i.optional(TD0)}),vD0=i.object({uri:i.string(),mimeType:i.optional(i.string())}).passthrough(),bD0=vD0.extend({text:i.string()}),gD0=vD0.extend({blob:i.string().base64()}),VS4=i.object({uri:i.string(),name:i.string(),description:i.optional(i.string()),mimeType:i.optional(i.string())}).passthrough(),KS4=i.object({uriTemplate:i.string(),name:i.string(),description:i.optional(i.string()),mimeType:i.optional(i.string())}).passthrough(),HS4=gI1.extend({method:i.literal("resources/list")}),mI1=hI1.extend({resources:i.array(VS4)}),zS4=gI1.extend({method:i.literal("resources/templates/list")}),qx1=hI1.extend({resourceTemplates:i.array(KS4)}),wS4=rW.extend({method:i.literal("resources/read"),params:CV.extend({uri:i.string()})}),dI1=XV.extend({contents:i.array(i.union([bD0,gD0]))}),ES4=Vz.extend({method:i.literal("notifications/resources/list_changed")}),US4=rW.extend({method:i.literal("resources/subscribe"),params:CV.extend({uri:i.string()})}),NS4=rW.extend({method:i.literal("resources/unsubscribe"),params:CV.extend({uri:i.string()})}),$S4=Vz.extend({method:i.literal("notifications/resources/updated"),params:Wa.extend({uri:i.string()})}),qS4=i.object({name:i.string(),description:i.optional(i.string()),required:i.optional(i.boolean())}).passthrough(),MS4=i.object({name:i.string(),description:i.optional(i.string()),arguments:i.optional(i.array(qS4))}).passthrough(),LS4=gI1.extend({method:i.literal("prompts/list")}),Fa=hI1.extend({prompts:i.array(MS4)}),RS4=rW.extend({method:i.literal("prompts/get"),params:CV.extend({name:i.string(),arguments:i.optional(i.record(i.string()))})}),uI1=i.object({type:i.literal("text"),text:i.string()}).passthrough(),pI1=i.object({type:i.literal("image"),data:i.string().base64(),mimeType:i.string()}).passthrough(),cI1=i.object({type:i.literal("audio"),data:i.string().base64(),mimeType:i.string()}).passthrough(),hD0=i.object({type:i.literal("resource"),resource:i.union([bD0,gD0])}).passthrough(),OS4=i.object({role:i.enum(["user","assistant"]),content:i.union([uI1,pI1,cI1,hD0])}).passthrough(),Mx1=XV.extend({description:i.optional(i.string()),messages:i.array(OS4)}),TS4=Vz.extend({method:i.literal("notifications/prompts/list_changed")}),PS4=i.object({title:i.optional(i.string()),readOnlyHint:i.optional(i.boolean()),destructiveHint:i.optional(i.boolean()),idempotentHint:i.optional(i.boolean()),openWorldHint:i.optional(i.boolean())}).passthrough(),SS4=i.object({name:i.string(),description:i.optional(i.string()),inputSchema:i.object({type:i.literal("object"),properties:i.optional(i.object({}).passthrough())}).passthrough(),annotations:i.optional(PS4)}).passthrough(),Lx1=gI1.extend({method:i.literal("tools/list")}),Ja=hI1.extend({tools:i.array(SS4)}),Ub=XV.extend({content:i.array(i.union([uI1,pI1,cI1,hD0])),isError:i.boolean().default(!1).optional()}),rI8=Ub.or(XV.extend({toolResult:i.unknown()})),Rx1=rW.extend({method:i.literal("tools/call"),params:CV.extend({name:i.string(),arguments:i.optional(i.record(i.unknown()))})}),_S4=Vz.extend({method:i.literal("notifications/tools/list_changed")}),mD0=i.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),jS4=rW.extend({method:i.literal("logging/setLevel"),params:CV.extend({level:mD0})}),yS4=Vz.extend({method:i.literal("notifications/message"),params:Wa.extend({level:mD0,logger:i.optional(i.string()),data:i.unknown()})}),kS4=i.object({name:i.string().optional()}).passthrough(),xS4=i.object({hints:i.optional(i.array(kS4)),costPriority:i.optional(i.number().min(0).max(1)),speedPriority:i.optional(i.number().min(0).max(1)),intelligencePriority:i.optional(i.number().min(0).max(1))}).passthrough(),fS4=i.object({role:i.enum(["user","assistant"]),content:i.union([uI1,pI1,cI1])}).passthrough(),vS4=rW.extend({method:i.literal("sampling/createMessage"),params:CV.extend({messages:i.array(fS4),systemPrompt:i.optional(i.string()),includeContext:i.optional(i.enum(["none","thisServer","allServers"])),temperature:i.optional(i.number()),maxTokens:i.number().int(),stopSequences:i.optional(i.array(i.string())),metadata:i.optional(i.object({}).passthrough()),modelPreferences:i.optional(xS4)})}),Ox1=XV.extend({model:i.string(),stopReason:i.optional(i.enum(["endTurn","stopSequence","maxTokens"]).or(i.string())),role:i.enum(["user","assistant"]),content:i.discriminatedUnion("type",[uI1,pI1,cI1])}),bS4=i.object({type:i.literal("ref/resource"),uri:i.string()}).passthrough(),gS4=i.object({type:i.literal("ref/prompt"),name:i.string()}).passthrough(),hS4=rW.extend({method:i.literal("completion/complete"),params:CV.extend({ref:i.union([gS4,bS4]),argument:i.object({name:i.string(),value:i.string()}).passthrough()})}),Tx1=XV.extend({completion:i.object({values:i.array(i.string()).max(100),total:i.optional(i.number().int()),hasMore:i.optional(i.boolean())}).passthrough()}),mS4=i.object({uri:i.string().startsWith("file://"),name:i.optional(i.string())}).passthrough(),Px1=rW.extend({method:i.literal("roots/list")}),Sx1=XV.extend({roots:i.array(mS4)}),dS4=Vz.extend({method:i.literal("notifications/roots/list_changed")}),oI8=i.union([vI1,Ux1,hS4,jS4,RS4,LS4,HS4,zS4,wS4,US4,NS4,Rx1,Lx1]),tI8=i.union([fI1,bI1,$x1,dS4]),eI8=i.union([fU,Ox1,Sx1]),AG8=i.union([vI1,vS4,Px1]),BG8=i.union([fI1,bI1,yS4,$S4,ES4,_S4,TS4]),QG8=i.union([fU,Nx1,Tx1,Mx1,Fa,mI1,qx1,dI1,Ub,Ja]);class Nb extends Error{constructor(A,B,Q){super(`MCP error ${A}: ${B}`);this.code=A,this.data=Q,this.name="McpError"}}var uS4=60000;class Ca{constructor(A){this._options=A,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this.setNotificationHandler(fI1,(B)=>{let Q=this._requestHandlerAbortControllers.get(B.params.requestId);Q===null||Q===void 0||Q.abort(B.params.reason)}),this.setNotificationHandler(bI1,(B)=>{this._onprogress(B)}),this.setRequestHandler(vI1,(B)=>({}))}_setupTimeout(A,B,Q,I,G=!1){this._timeoutInfo.set(A,{timeoutId:setTimeout(I,B),startTime:Date.now(),timeout:B,maxTotalTimeout:Q,resetTimeoutOnProgress:G,onTimeout:I})}_resetTimeout(A){let B=this._timeoutInfo.get(A);if(!B)return!1;let Q=Date.now()-B.startTime;if(B.maxTotalTimeout&&Q>=B.maxTotalTimeout)throw this._timeoutInfo.delete(A),new Nb(QL.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:B.maxTotalTimeout,totalElapsed:Q});return clearTimeout(B.timeoutId),B.timeoutId=setTimeout(B.onTimeout,B.timeout),!0}_cleanupTimeout(A){let B=this._timeoutInfo.get(A);if(B)clearTimeout(B.timeoutId),this._timeoutInfo.delete(A)}async connect(A){this._transport=A,this._transport.onclose=()=>{this._onclose()},this._transport.onerror=(B)=>{this._onerror(B)},this._transport.onmessage=(B,Q)=>{if(Ex1(B)||xD0(B))this._onresponse(B);else if(SD0(B))this._onrequest(B,Q);else if(jD0(B))this._onnotification(B);else this._onerror(new Error(`Unknown message type: ${JSON.stringify(B)}`))},await this._transport.start()}_onclose(){var A;let B=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._transport=void 0,(A=this.onclose)===null||A===void 0||A.call(this);let Q=new Nb(QL.ConnectionClosed,"Connection closed");for(let I of B.values())I(Q)}_onerror(A){var B;(B=this.onerror)===null||B===void 0||B.call(this,A)}_onnotification(A){var B;let Q=(B=this._notificationHandlers.get(A.method))!==null&&B!==void 0?B:this.fallbackNotificationHandler;if(Q===void 0)return;Promise.resolve().then(()=>Q(A)).catch((I)=>this._onerror(new Error(`Uncaught error in notification handler: ${I}`)))}_onrequest(A,B){var Q,I,G,D;let Z=(Q=this._requestHandlers.get(A.method))!==null&&Q!==void 0?Q:this.fallbackRequestHandler;if(Z===void 0){(I=this._transport)===null||I===void 0||I.send({jsonrpc:"2.0",id:A.id,error:{code:QL.MethodNotFound,message:"Method not found"}}).catch((F)=>this._onerror(new Error(`Failed to send an error response: ${F}`)));return}let Y=new AbortController;this._requestHandlerAbortControllers.set(A.id,Y);let W={signal:Y.signal,sessionId:(G=this._transport)===null||G===void 0?void 0:G.sessionId,_meta:(D=A.params)===null||D===void 0?void 0:D._meta,sendNotification:(F)=>this.notification(F,{relatedRequestId:A.id}),sendRequest:(F,J,C)=>this.request(F,J,{...C,relatedRequestId:A.id}),authInfo:B===null||B===void 0?void 0:B.authInfo,requestId:A.id};Promise.resolve().then(()=>Z(A,W)).then((F)=>{var J;if(Y.signal.aborted)return;return(J=this._transport)===null||J===void 0?void 0:J.send({result:F,jsonrpc:"2.0",id:A.id})},(F)=>{var J,C;if(Y.signal.aborted)return;return(J=this._transport)===null||J===void 0?void 0:J.send({jsonrpc:"2.0",id:A.id,error:{code:Number.isSafeInteger(F.code)?F.code:QL.InternalError,message:(C=F.message)!==null&&C!==void 0?C:"Internal error"}})}).catch((F)=>this._onerror(new Error(`Failed to send response: ${F}`))).finally(()=>{this._requestHandlerAbortControllers.delete(A.id)})}_onprogress(A){let{progressToken:B,...Q}=A.params,I=Number(B),G=this._progressHandlers.get(I);if(!G){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(A)}`));return}let D=this._responseHandlers.get(I),Z=this._timeoutInfo.get(I);if(Z&&D&&Z.resetTimeoutOnProgress)try{this._resetTimeout(I)}catch(Y){D(Y);return}G(Q)}_onresponse(A){let B=Number(A.id),Q=this._responseHandlers.get(B);if(Q===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(A)}`));return}if(this._responseHandlers.delete(B),this._progressHandlers.delete(B),this._cleanupTimeout(B),Ex1(A))Q(A);else{let I=new Nb(A.error.code,A.error.message,A.error.data);Q(I)}}get transport(){return this._transport}async close(){var A;await((A=this._transport)===null||A===void 0?void 0:A.close())}request(A,B,Q){let{relatedRequestId:I,resumptionToken:G,onresumptiontoken:D}=Q!==null&&Q!==void 0?Q:{};return new Promise((Z,Y)=>{var W,F,J,C,X;if(!this._transport){Y(new Error("Not connected"));return}if(((W=this._options)===null||W===void 0?void 0:W.enforceStrictCapabilities)===!0)this.assertCapabilityForMethod(A.method);(F=Q===null||Q===void 0?void 0:Q.signal)===null||F===void 0||F.throwIfAborted();let V=this._requestMessageId++,K={...A,jsonrpc:"2.0",id:V};if(Q===null||Q===void 0?void 0:Q.onprogress)this._progressHandlers.set(V,Q.onprogress),K.params={...A.params,_meta:{progressToken:V}};let U=(M)=>{var R;this._responseHandlers.delete(V),this._progressHandlers.delete(V),this._cleanupTimeout(V),(R=this._transport)===null||R===void 0||R.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:V,reason:String(M)}},{relatedRequestId:I,resumptionToken:G,onresumptiontoken:D}).catch((T)=>this._onerror(new Error(`Failed to send cancellation: ${T}`))),Y(M)};this._responseHandlers.set(V,(M)=>{var R;if((R=Q===null||Q===void 0?void 0:Q.signal)===null||R===void 0?void 0:R.aborted)return;if(M instanceof Error)return Y(M);try{let T=B.parse(M.result);Z(T)}catch(T){Y(T)}}),(J=Q===null||Q===void 0?void 0:Q.signal)===null||J===void 0||J.addEventListener("abort",()=>{var M;U((M=Q===null||Q===void 0?void 0:Q.signal)===null||M===void 0?void 0:M.reason)});let N=(C=Q===null||Q===void 0?void 0:Q.timeout)!==null&&C!==void 0?C:uS4,q=()=>U(new Nb(QL.RequestTimeout,"Request timed out",{timeout:N}));this._setupTimeout(V,N,Q===null||Q===void 0?void 0:Q.maxTotalTimeout,q,(X=Q===null||Q===void 0?void 0:Q.resetTimeoutOnProgress)!==null&&X!==void 0?X:!1),this._transport.send(K,{relatedRequestId:I,resumptionToken:G,onresumptiontoken:D}).catch((M)=>{this._cleanupTimeout(V),Y(M)})})}async notification(A,B){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(A.method);let Q={...A,jsonrpc:"2.0"};await this._transport.send(Q,B)}setRequestHandler(A,B){let Q=A.shape.method.value;this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(I,G)=>{return Promise.resolve(B(A.parse(I),G))})}removeRequestHandler(A){this._requestHandlers.delete(A)}assertCanSetRequestHandler(A){if(this._requestHandlers.has(A))throw new Error(`A request handler for ${A} already exists, which would be overridden`)}setNotificationHandler(A,B){this._notificationHandlers.set(A.shape.method.value,(Q)=>Promise.resolve(B(A.parse(Q))))}removeNotificationHandler(A){this._notificationHandlers.delete(A)}}function lI1(A,B){return Object.entries(B).reduce((Q,[I,G])=>{if(G&&typeof G==="object")Q[I]=Q[I]?{...Q[I],...G}:G;else Q[I]=G;return Q},{...A})}class _x1 extends Ca{constructor(A,B){var Q;super(B);this._clientInfo=A,this._capabilities=(Q=B===null||B===void 0?void 0:B.capabilities)!==null&&Q!==void 0?Q:{}}registerCapabilities(A){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=lI1(this._capabilities,A)}assertCapability(A,B){var Q;if(!((Q=this._serverCapabilities)===null||Q===void 0?void 0:Q[A]))throw new Error(`Server does not support ${A} (required for ${B})`)}async connect(A,B){if(await super.connect(A),A.sessionId!==void 0)return;try{let Q=await this.request({method:"initialize",params:{protocolVersion:VS,capabilities:this._capabilities,clientInfo:this._clientInfo}},Nx1,B);if(Q===void 0)throw new Error(`Server sent invalid initialize result: ${Q}`);if(!yI1.includes(Q.protocolVersion))throw new Error(`Server's protocol version is not supported: ${Q.protocolVersion}`);this._serverCapabilities=Q.capabilities,this._serverVersion=Q.serverInfo,this._instructions=Q.instructions,await this.notification({method:"notifications/initialized"})}catch(Q){throw this.close(),Q}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(A){var B,Q,I,G,D;switch(A){case"logging/setLevel":if(!((B=this._serverCapabilities)===null||B===void 0?void 0:B.logging))throw new Error(`Server does not support logging (required for ${A})`);break;case"prompts/get":case"prompts/list":if(!((Q=this._serverCapabilities)===null||Q===void 0?void 0:Q.prompts))throw new Error(`Server does not support prompts (required for ${A})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!((I=this._serverCapabilities)===null||I===void 0?void 0:I.resources))throw new Error(`Server does not support resources (required for ${A})`);if(A==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${A})`);break;case"tools/call":case"tools/list":if(!((G=this._serverCapabilities)===null||G===void 0?void 0:G.tools))throw new Error(`Server does not support tools (required for ${A})`);break;case"completion/complete":if(!((D=this._serverCapabilities)===null||D===void 0?void 0:D.completions))throw new Error(`Server does not support completions (required for ${A})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(A){var B;switch(A){case"notifications/roots/list_changed":if(!((B=this._capabilities.roots)===null||B===void 0?void 0:B.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${A})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(A){switch(A){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${A})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${A})`);break;case"ping":break}}async ping(A){return this.request({method:"ping"},fU,A)}async complete(A,B){return this.request({method:"completion/complete",params:A},Tx1,B)}async setLoggingLevel(A,B){return this.request({method:"logging/setLevel",params:{level:A}},fU,B)}async getPrompt(A,B){return this.request({method:"prompts/get",params:A},Mx1,B)}async listPrompts(A,B){return this.request({method:"prompts/list",params:A},Fa,B)}async listResources(A,B){return this.request({method:"resources/list",params:A},mI1,B)}async listResourceTemplates(A,B){return this.request({method:"resources/templates/list",params:A},qx1,B)}async readResource(A,B){return this.request({method:"resources/read",params:A},dI1,B)}async subscribeResource(A,B){return this.request({method:"resources/subscribe",params:A},fU,B)}async unsubscribeResource(A,B){return this.request({method:"resources/unsubscribe",params:A},fU,B)}async callTool(A,B=Ub,Q){return this.request({method:"tools/call",params:A},B,Q)}async listTools(A,B){return this.request({method:"tools/list",params:A},Ja,B)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var SZ0=F1(PZ0(),1);import aI1 from"node:process";import{PassThrough as U_4}from"node:stream";class Xa{append(A){this._buffer=this._buffer?Buffer.concat([this._buffer,A]):A}readMessage(){if(!this._buffer)return null;let A=this._buffer.indexOf(`
1317
1317
  `);if(A===-1)return null;let B=this._buffer.toString("utf8",0,A).replace(/\r$/,"");return this._buffer=this._buffer.subarray(A+1),E_4(B)}clear(){this._buffer=void 0}}function E_4(A){return Eb.parse(JSON.parse(A))}function nI1(A){return JSON.stringify(A)+`
1318
1318
  `}var N_4=aI1.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function $_4(){let A={};for(let B of N_4){let Q=aI1.env[B];if(Q===void 0)continue;if(Q.startsWith("()"))continue;A[B]=Q}return A}class mx1{constructor(A){if(this._abortController=new AbortController,this._readBuffer=new Xa,this._stderrStream=null,this._serverParams=A,A.stderr==="pipe"||A.stderr==="overlapped")this._stderrStream=new U_4}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((A,B)=>{var Q,I,G,D,Z,Y;if(this._process=SZ0.default(this._serverParams.command,(Q=this._serverParams.args)!==null&&Q!==void 0?Q:[],{env:(I=this._serverParams.env)!==null&&I!==void 0?I:$_4(),stdio:["pipe","pipe",(G=this._serverParams.stderr)!==null&&G!==void 0?G:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:aI1.platform==="win32"&&q_4(),cwd:this._serverParams.cwd}),this._process.on("error",(W)=>{var F,J;if(W.name==="AbortError"){(F=this.onclose)===null||F===void 0||F.call(this);return}B(W),(J=this.onerror)===null||J===void 0||J.call(this,W)}),this._process.on("spawn",()=>{A()}),this._process.on("close",(W)=>{var F;this._process=void 0,(F=this.onclose)===null||F===void 0||F.call(this)}),(D=this._process.stdin)===null||D===void 0||D.on("error",(W)=>{var F;(F=this.onerror)===null||F===void 0||F.call(this,W)}),(Z=this._process.stdout)===null||Z===void 0||Z.on("data",(W)=>{this._readBuffer.append(W),this.processReadBuffer()}),(Y=this._process.stdout)===null||Y===void 0||Y.on("error",(W)=>{var F;(F=this.onerror)===null||F===void 0||F.call(this,W)}),this._stderrStream&&this._process.stderr)this._process.stderr.pipe(this._stderrStream)})}get stderr(){var A,B;if(this._stderrStream)return this._stderrStream;return(B=(A=this._process)===null||A===void 0?void 0:A.stderr)!==null&&B!==void 0?B:null}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(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(A){return new Promise((B)=>{var Q;if(!((Q=this._process)===null||Q===void 0?void 0:Q.stdin))throw new Error("Not connected");let I=nI1(A);if(this._process.stdin.write(I))B();else this._process.stdin.once("drain",B)})}}function q_4(){return"type"in aI1}class ux1 extends Error{constructor(A,B){super(A),this.name="ParseError",this.type=B.type,this.field=B.field,this.value=B.value,this.line=B.line}}function dx1(A){}function _Z0(A){if(typeof A=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:B=dx1,onError:Q=dx1,onRetry:I=dx1,onComment:G}=A,D="",Z=!0,Y,W="",F="";function J(U){let N=Z?U.replace(/^\xEF\xBB\xBF/,""):U,[q,M]=M_4(`${D}${N}`);for(let R of q)C(R);D=M,Z=!1}function C(U){if(U===""){V();return}if(U.startsWith(":")){G&&G(U.slice(U.startsWith(": ")?2:1));return}let N=U.indexOf(":");if(N!==-1){let q=U.slice(0,N),M=U[N+1]===" "?2:1,R=U.slice(N+M);X(q,R,U);return}X(U,"",U)}function X(U,N,q){switch(U){case"event":F=N;break;case"data":W=`${W}${N}
1319
1319
  `;break;case"id":Y=N.includes("\x00")?void 0:N;break;case"retry":/^\d+$/.test(N)?I(parseInt(N,10)):Q(new ux1(`Invalid \`retry\` value: "${N}"`,{type:"invalid-retry",value:N,line:q}));break;default:Q(new ux1(`Unknown field "${U.length>20?`${U.slice(0,20)}…`:U}"`,{type:"unknown-field",field:U,value:N,line:q}));break}}function V(){W.length>0&&B({id:Y,event:F||void 0,data:W.endsWith(`
@@ -1328,7 +1328,7 @@ Notes:
1328
1328
  `).trim()]:[]].join(`
1329
1329
  `)}function ZL({content:A,verbose:B,isError:Q}){let I=jY0.useMemo(()=>{if(B)return _Y0(A);else return Cy4(_Y0(A))},[A,B]);return Na.createElement(c0,null,Na.createElement(y,{color:Q?$1().error:void 0},I+"\x1B[0m\x1B(B"))}var Xy4=i.object({}).passthrough(),yY0={isMcp:!0,isEnabled(){return!0},isReadOnly(){return!1},name:"mcp",async description(){return TY0},async prompt(){return OY0},inputSchema:Xy4,async*call(){yield{type:"result",data:""}},async checkPermissions(){return{behavior:"ask",message:"MCPTool requires permission."}},renderToolUseMessage(A){if(Object.keys(A).length===0)return null;return Object.entries(A).map(([B,Q])=>`${B}: ${JSON.stringify(Q)}`).join(", ")},userFacingName:()=>"mcp",renderToolUseRejectedMessage(){return G3.createElement(c6,null)},renderToolUseErrorMessage(A,{verbose:B}){return G3.createElement(X6,{result:A,verbose:B})},renderToolUseProgressMessage(){return null},renderToolResultMessage(A,B,{verbose:Q}){if(Array.isArray(A))return G3.createElement(m,{flexDirection:"column"},A.map((I,G)=>{if(I.type==="image")return G3.createElement(m,{key:G,justifyContent:"space-between",overflowX:"hidden",width:"100%"},G3.createElement(c0,{height:1},G3.createElement(y,null,"[Image]")));return G3.createElement(ZL,{key:G,content:I.text,verbose:Q})}));if(!A)return G3.createElement(m,{justifyContent:"space-between",overflowX:"hidden",width:"100%"},G3.createElement(c0,{height:1},G3.createElement(y,{color:$1().secondaryText},"(No content)")));return G3.createElement(ZL,{content:A,verbose:Q})},mapToolResultToToolResultBlockParam(A,B){return{tool_use_id:B,type:"tool_result",content:A}}};var Vy4=F1(S1(),1);var zZ8=i.object({server:i.string().optional()});var Ky4=F1(S1(),1);var jZ8=i.object({server:i.string(),uri:i.string()});var $K0=F1(xW0(),1),qK0=F1(GV0(),1),MK0=F1(aG1(),1),LK0=F1(NK0(),1);import uh4 from"assert";var RK0=async(A,B)=>{uh4(A.method,"Expected request method property to be set");let Q=qK0.fromNodeProviderChain(),I=await ph4(()=>{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()),G=new $K0.SignatureV4({service:"bedrock",region:B.regionName,credentials:I,sha256:LK0.Sha256}),D=new URL(B.url),Z=!A.headers?{}:(Symbol.iterator in A.headers)?Object.fromEntries(Array.from(A.headers).map((F)=>[...F])):{...A.headers};delete Z.connection,Z.host=D.hostname;let Y=new MK0.HttpRequest({method:A.method.toUpperCase(),protocol:D.protocol,path:D.pathname,headers:Z,body:A.body});return(await G.sign(Y)).headers},ph4=async(A,B)=>{let Q={...process.env};try{return A(),await B()}finally{process.env=Q}};var EM0=F1(pH0(),1),RZ1=F1(XD1(),1),UM0=F1(Rz0(),1);var l8=F1(dw0(),1),HL=F1(VM0(),1),Nt4=async(A,B)=>{let Q=l8.map({}),I=A.body,G=l8.take(I,{message:l8.expectString});Object.assign(Q,G);let D=new HL.InternalServerException({$metadata:MZ1(A),...Q});return l8.decorateServiceException(D,A.body)},$t4=async(A,B)=>{let Q=l8.map({}),I=A.body,G=l8.take(I,{message:l8.expectString,originalMessage:l8.expectString,originalStatusCode:l8.expectInt32});Object.assign(Q,G);let D=new HL.ModelStreamErrorException({$metadata:MZ1(A),...Q});return l8.decorateServiceException(D,A.body)},qt4=async(A,B)=>{let Q=l8.map({}),I=A.body,G=l8.take(I,{message:l8.expectString});Object.assign(Q,G);let D=new HL.ThrottlingException({$metadata:MZ1(A),...Q});return l8.decorateServiceException(D,A.body)},Mt4=async(A,B)=>{let Q=l8.map({}),I=A.body,G=l8.take(I,{message:l8.expectString});Object.assign(Q,G);let D=new HL.ValidationException({$metadata:MZ1(A),...Q});return l8.decorateServiceException(D,A.body)},KM0=(A,B)=>{return B.eventStreamMarshaller.deserialize(A,async(Q)=>{if(Q.chunk!=null)return{chunk:await Ot4(Q.chunk,B)};if(Q.internalServerException!=null)return{internalServerException:await Lt4(Q.internalServerException,B)};if(Q.modelStreamErrorException!=null)return{modelStreamErrorException:await Rt4(Q.modelStreamErrorException,B)};if(Q.validationException!=null)return{validationException:await Pt4(Q.validationException,B)};if(Q.throttlingException!=null)return{throttlingException:await Tt4(Q.throttlingException,B)};return{$unknown:A}})},Lt4=async(A,B)=>{let Q={...A,body:await aa(A.body,B)};return Nt4(Q,B)},Rt4=async(A,B)=>{let Q={...A,body:await aa(A.body,B)};return $t4(Q,B)},Ot4=async(A,B)=>{let Q={},I=await aa(A.body,B);return Object.assign(Q,St4(I,B)),Q},Tt4=async(A,B)=>{let Q={...A,body:await aa(A.body,B)};return qt4(Q,B)},Pt4=async(A,B)=>{let Q={...A,body:await aa(A.body,B)};return Mt4(Q,B)},St4=(A,B)=>{return l8.take(A,{bytes:B.base64Decoder})},MZ1=(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"]??""}),_t4=(A,B)=>l8.collectBody(A,B).then((Q)=>B.utf8Encoder(Q)),aa=(A,B)=>_t4(A,B).then((Q)=>{if(Q.length)return JSON.parse(Q);return{}});function HM0(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}}}function LZ1(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var zM0=(A)=>{try{return JSON.parse(A)}catch(B){return}};var ub1=(A)=>new TextDecoder("utf-8").decode(A),wM0=(A)=>new TextEncoder().encode(A),jt4=()=>{let A=new EM0.EventStreamMarshaller({utf8Encoder:ub1,utf8Decoder:wM0});return{base64Decoder:RZ1.fromBase64,base64Encoder:RZ1.toBase64,utf8Decoder:wM0,utf8Encoder:ub1,eventStreamMarshaller:A,streamCollector:UM0.streamCollector}};class OZ1 extends IZ{static fromSSEResponse(A,B){let Q=!1;async function*I(){if(!A.body)throw B.abort(),new M9("Attempted to iterate over a response with no body");let D=HM0(A.body),Z=KM0(D,jt4());for await(let Y of Z)if(Y.chunk&&Y.chunk.bytes)yield{event:"chunk",data:ub1(Y.chunk.bytes),raw:[]};else if(Y.internalServerException)yield{event:"error",data:"InternalServerException",raw:[]};else if(Y.modelStreamErrorException)yield{event:"error",data:"ModelStreamErrorException",raw:[]};else if(Y.validationException)yield{event:"error",data:"ValidationException",raw:[]};else if(Y.throttlingException)yield{event:"error",data:"ThrottlingException",raw:[]}}async function*G(){if(Q)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Q=!0;let D=!1;try{for await(let Z of I()){if(Z.event==="chunk")try{yield JSON.parse(Z.data)}catch(Y){throw console.error("Could not parse message into JSON:",Z.data),console.error("From chunk:",Z.raw),Y}if(Z.event==="error"){let Y=Z.data,W=zM0(Y),F=W?void 0:Y;throw I5.generate(void 0,W,F,A.headers)}}D=!0}catch(Z){if(yt4(Z))return;throw Z}finally{if(!D)B.abort()}}return new OZ1(G,B)}}function yt4(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var pb1=(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 $M0=Symbol.for("brand.privateNullableHeaders"),NM0=Array.isArray;function*kt4(A){if(!A)return;if($M0 in A){let{values:I,nulls:G}=A;yield*I.entries();for(let D of G)yield[D,null];return}let B=!1,Q;if(A instanceof Headers)Q=A.entries();else if(NM0(A))Q=A;else B=!0,Q=Object.entries(A??{});for(let I of Q){let G=I[0];if(typeof G!=="string")throw new TypeError("expected header name to be a string");let D=NM0(I[1])?I[1]:[I[1]],Z=!1;for(let Y of D){if(Y===void 0)continue;if(B&&!Z)Z=!0,yield[G,null];yield[G,Y]}}}var cb1=(A)=>{let B=new Headers,Q=new Set;for(let I of A){let G=new Set;for(let[D,Z]of kt4(I)){let Y=D.toLowerCase();if(!G.has(Y))B.delete(D),G.add(Y);if(Z===null)B.delete(D),Q.add(Y);else B.append(D,Z),Q.delete(Y)}}return{[$M0]:!0,values:B,nulls:Q}};function qM0(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var xt4=(A=qM0)=>function B(Q,...I){if(Q.length===1)return Q[0];let G=!1,D=Q.reduce((J,C,X)=>{if(/[?#]/.test(C))G=!0;return J+C+(X===I.length?"":(G?encodeURIComponent:A)(String(I[X])))},""),Z=D.split(/[?#]/,1)[0],Y=[],W=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,F;while((F=W.exec(Z))!==null)Y.push({start:F.index,length:F[0].length});if(Y.length>0){let J=0,C=Y.reduce((X,V)=>{let K=" ".repeat(V.start-J),U="^".repeat(V.length);return J=V.start+V.length,X+K+U},"");throw new M9(`Path parameters result in path with invalid segments:
1330
1330
  ${D}
1331
- ${C}`)}return D},lb1=xt4(qM0);var ft4="bedrock-2023-05-31",vt4=new Set(["/v1/complete","/v1/messages","/v1/messages?beta=true"]);class TZ1 extends Z8{constructor({awsRegion:A=pb1("AWS_REGION")??"us-east-1",baseURL:B=pb1("ANTHROPIC_BEDROCK_BASE_URL")??`https://bedrock-runtime.${A}.amazonaws.com`,awsSecretKey:Q=null,awsAccessKey:I=null,awsSessionToken:G=null,...D}={}){super({baseURL:B,...D});this.skipAuth=!1,this.messages=bt4(this),this.completions=new oM(this),this.beta=gt4(this),this.awsSecretKey=Q,this.awsAccessKey=I,this.awsRegion=A,this.awsSessionToken=G,this.skipAuth=D.skipAuth??!1}validateHeaders(){}async prepareRequest(A,{url:B,options:Q}){if(this.skipAuth)return;let I=this.awsRegion;if(!I)throw new Error("Expected `awsRegion` option to be passed to the client or the `AWS_REGION` environment variable to be present");let G=await RK0(A,{url:B,regionName:I,awsAccessKey:this.awsAccessKey,awsSecretKey:this.awsSecretKey,awsSessionToken:this.awsSessionToken});A.headers=cb1([G,A.headers]).values}buildRequest(A){if(A.__streamClass=OZ1,LZ1(A.body))A.body={...A.body};if(LZ1(A.body)){if(!A.body.anthropic_version)A.body.anthropic_version=ft4;if(A.headers&&!A.body.anthropic_beta){let B=cb1([A.headers]).values.get("anthropic-beta");if(B!=null)A.body.anthropic_beta=B.split(",")}}if(vt4.has(A.path)&&A.method==="post"){if(!LZ1(A.body))throw new Error("Expected request body to be an object for post /v1/messages");let B=A.body.model;A.body.model=void 0;let Q=A.body.stream;if(A.body.stream=void 0,Q)A.path=lb1`/model/${B}/invoke-with-response-stream`;else A.path=lb1`/model/${B}/invoke`}return super.buildRequest(A)}}function bt4(A){let B=new IV(A);return delete B.batches,delete B.countTokens,B}function gt4(A){let B=new uJ(A);return delete B.promptCaching,delete B.messages.batches,delete B.messages.countTokens,B}var rP0=F1(iP0(),1);var FY1=(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};function JY1(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var aP0=Symbol.for("brand.privateNullableHeaders"),nP0=Array.isArray;function*L46(A){if(!A)return;if(aP0 in A){let{values:I,nulls:G}=A;yield*I.entries();for(let D of G)yield[D,null];return}let B=!1,Q;if(A instanceof Headers)Q=A.entries();else if(nP0(A))Q=A;else B=!0,Q=Object.entries(A??{});for(let I of Q){let G=I[0];if(typeof G!=="string")throw new TypeError("expected header name to be a string");let D=nP0(I[1])?I[1]:[I[1]],Z=!1;for(let Y of D){if(Y===void 0)continue;if(B&&!Z)Z=!0,yield[G,null];yield[G,Y]}}}var sP0=(A)=>{let B=new Headers,Q=new Set;for(let I of A){let G=new Set;for(let[D,Z]of L46(I)){let Y=D.toLowerCase();if(!G.has(Y))B.delete(D),G.add(Y);if(Z===null)B.delete(D),Q.add(Y);else B.append(D,Z),Q.delete(Y)}}return{[aP0]:!0,values:B,nulls:Q}};var R46="vertex-2023-10-16",O46=new Set(["/v1/messages","/v1/messages?beta=true"]);class CY1 extends Z8{constructor({baseURL:A=FY1("ANTHROPIC_VERTEX_BASE_URL"),region:B=FY1("CLOUD_ML_REGION")??null,projectId:Q=FY1("ANTHROPIC_VERTEX_PROJECT_ID")??null,...I}={}){if(!B)throw new Error("No region was given. The client should be instantiated with the `region` option or the `CLOUD_ML_REGION` environment variable should be set.");super({baseURL:A||`https://${B}-aiplatform.googleapis.com/v1`,...I});this.messages=T46(this),this.beta=P46(this),this.region=B,this.projectId=Q,this.accessToken=I.accessToken??null,this._auth=I.googleAuth??new rP0.GoogleAuth({scopes:"https://www.googleapis.com/auth/cloud-platform"}),this._authClientPromise=this._auth.getClient()}validateHeaders(){}async prepareOptions(A){let B=await this._authClientPromise,Q=await B.getRequestHeaders(),I=B.projectId??Q["x-goog-user-project"];if(!this.projectId&&I)this.projectId=I;A.headers=sP0([Q,A.headers])}buildRequest(A){if(JY1(A.body))A.body={...A.body};if(JY1(A.body)){if(!A.body.anthropic_version)A.body.anthropic_version=R46}if(O46.has(A.path)&&A.method==="post"){if(!this.projectId)throw new Error("No projectId was given and it could not be resolved from credentials. The client should be instantiated with the `projectId` option or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.");if(!JY1(A.body))throw new Error("Expected request body to be an object for post /v1/messages");let B=A.body.model;A.body.model=void 0;let I=A.body.stream??!1?"streamRawPredict":"rawPredict";A.path=`/projects/${this.projectId}/locations/${this.region}/publishers/anthropic/models/${B}:${I}`}if(A.path==="/v1/messages/count_tokens"||A.path=="/v1/messages/count_tokens?beta=true"&&A.method==="post"){if(!this.projectId)throw new Error("No projectId was given and it could not be resolved from credentials. The client should be instantiated with the `projectId` option or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.");A.path=`/projects/${this.projectId}/locations/${this.region}/publishers/anthropic/models/count-tokens:rawPredict`}return super.buildRequest(A)}}function T46(A){let B=new IV(A);return delete B.batches,B}function P46(A){let B=new uJ(A);return delete B.messages.batches,B}var PL=`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.1"}.VERSION} (external)`;var fK8=ds(),LW6=Ns(),vK8=eg(),bK8=my0(),gK8=Ah(),RW6=om1(),hK8=Zk0(),mK8=Vk0(),OW6=y5(),lW1=I6(),{InvalidArgumentError:cW1}=OW6,Mh=Zx0(),dK8=qs(),uK8=qd1(),pK8=lx0(),cK8=Ld1(),lK8=Cd1(),iK8=AW1(),{getGlobalDispatcher:TW6,setGlobalDispatcher:nK8}=FW1(),aK8=JW1(),sK8=cY1(),rK8=lY1();Object.assign(LW6.prototype,Mh);var Gu1=RW6;var jW6={redirect:tx0(),retry:Af0(),dump:If0(),dns:Wf0()};var yW6={parseHeaders:lW1.parseHeaders,headerNameToString:lW1.headerNameToString};function Nr(A){return(B,Q,I)=>{if(typeof Q==="function")I=Q,Q=null;if(!B||typeof B!=="string"&&typeof B!=="object"&&!(B instanceof URL))throw new cW1("invalid url");if(Q!=null&&typeof Q!=="object")throw new cW1("invalid opts");if(Q&&Q.path!=null){if(typeof Q.path!=="string")throw new cW1("invalid opts.path");let Z=Q.path;if(!Q.path.startsWith("/"))Z=`/${Z}`;B=new URL(lW1.parseOrigin(B).origin+Z)}else{if(!Q)Q=typeof B==="object"?B:{};B=lW1.parseURL(B)}let{agent:G,dispatcher:D=TW6()}=Q;if(G)throw new cW1("unsupported opts.agent. Did you mean opts.client?");return A.call(D,{...Q,origin:B.origin,path:B.search?`${B.pathname}${B.search}`:B.pathname,method:Q.method||(Q.body?"PUT":"GET")},I)}}var oK8=Dr().fetch;var kW6=lS().Headers,xW6=Ir().Response,fW6=Ch().Request,vW6=Ps().FormData,bW6=globalThis.File??D1("node:buffer").File,gW6=Lv0().FileReader;var{setGlobalOrigin:tK8,getGlobalOrigin:eK8}=Wm1();var{CacheStorage:PW6}=kv0(),{kConstruct:SW6}=_W1();var hW6=new PW6(SW6);var{deleteCookie:AH8,getCookies:BH8,getSetCookies:QH8,setCookie:IH8}=lv0();var{parseMIMEType:GH8,serializeAMimeType:DH8}=NY();var{CloseEvent:ZH8,ErrorEvent:YH8,MessageEvent:WH8}=wh();var mW6=pb0().WebSocket;var dW6=Nr(Mh.request),uW6=Nr(Mh.stream),pW6=Nr(Mh.pipeline),cW6=Nr(Mh.connect),lW6=Nr(Mh.upgrade);var{EventSource:FH8}=Ig0();async function kV({apiKey:A,maxRetries:B=0,model:Q,isNonInteractiveSession:I}){let G={"x-app":"cli","User-Agent":PL,...nW6()};await AO1();let D=C6();if(!D)iW6(G);let Z={defaultHeaders:G,maxRetries:B,timeout:parseInt(process.env.API_TIMEOUT_MS||String(60000),10),dangerouslyAllowBrowser:!0,...Gg0?{fetchOptions:Gg0}:void 0};if(process.env.CLAUDE_CODE_USE_BEDROCK){let W={...Z,...process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH&&{skipAuth:!0}};return new TZ1(W)}if(process.env.CLAUDE_CODE_USE_VERTEX){let W={...Z,region:Dg0(Q),...process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH&&{projectId:process.env.ANTHROPIC_VERTEX_PROJECT_ID||" ",region:Dg0(Q)||" ",googleAuth:{getClient:()=>({getRequestHeaders:()=>({})})}}};return new CY1(W)}let Y={apiKey:D?null:A||aI(I),authToken:D?A3()?.accessToken:void 0,...Z};return new Wz(Y)}function iW6(A){let B=process.env.ANTHROPIC_AUTH_TOKEN||Nf();if(B)A.Authorization=`Bearer ${B}`,A["Proxy-Authorization"]=`Bearer ${B}`}function nW6(){let A={},B=process.env.ANTHROPIC_CUSTOM_HEADERS;if(!B)return A;let Q=B.split(/\n|\r\n/);for(let I of Q){if(!I.trim())continue;let G=I.match(/^\s*(.*?)\s*:\s*(.*?)\s*$/);if(G){let[,D,Z]=G;if(D&&Z!==void 0)A[D]=Z}}return A}var Gg0=aW6();function aW6(){return process.env.HTTPS_PROXY||process.env.HTTP_PROXY?{dispatcher:new Gu1({uri:process.env.HTTPS_PROXY||process.env.HTTP_PROXY||"",pipelining:1})}:void 0}function Dg0(A){if(A?.startsWith("claude-3-5-haiku"))return process.env.VERTEX_REGION_CLAUDE_3_5_HAIKU;else if(A?.startsWith("claude-3-5-sonnet"))return process.env.VERTEX_REGION_CLAUDE_3_5_SONNET;else if(A?.startsWith("claude-3-7-sonnet"))return process.env.VERTEX_REGION_CLAUDE_3_7_SONNET;else if(A?.startsWith("claude-opus-4-"))return process.env.VERTEX_REGION_CLAUDE_4_0_OPUS;else if(A?.startsWith("claude-sonnet-4-"))return process.env.VERTEX_REGION_CLAUDE_4_0_SONNET;return process.env.CLOUD_ML_REGION||"us-east5"}async function Zg0(A,B){if(!A)return 0;return iW1([{role:"user",content:A}],B)}async function iW1(A,B){try{if(!A||A.length===0)return 0;let Q=await WQ(),I=await kV({maxRetries:1,model:Q,isNonInteractiveSession:B}),G=await yH(Q);return(await I.beta.messages.countTokens({model:Q,messages:A,...G.length>0?{betas:G}:{}})).input_tokens}catch(Q){return m1(Q),null}}function $r(A){return A.length/4}var Du1=25000,sW6=0.5;function rW6(A){return A.type==="text"}function oW6(A){return A.type==="image"}function tW6(A){if(!A)return 0;if(typeof A==="string")return $r(A);return A.reduce((B,Q)=>{if(rW6(Q))return B+$r(Q.text);else if(oW6(Q))return B+1600;return B},0)}class qr extends Error{constructor(A,B){super(`MCP tool "${A}" response (${B} tokens) exceeds maximum allowed tokens (${Du1}). Please use pagination, filtering, or limit parameters to reduce the response size.`);this.name="MCPContentTooLargeError"}}async function Zu1(A,B,Q){if(!A)return;if(tW6(A)<=Du1*sW6)return;try{let D=await iW1(typeof A==="string"?[{role:"user",content:A}]:[{role:"user",content:A}],Q);if(D&&D>Du1)throw new qr(B,D)}catch(G){if(G instanceof qr)throw G;m1(G instanceof Error?G:new Error(String(G)))}}var eW6=new Set(["image/jpeg","image/png","image/gif","image/webp"]),AF6=parseInt(process.env.MCP_TOOL_TIMEOUT||"",10)||1e8,BF6=["mcp__ide__executeCode","mcp__ide__getDiagnostics"];function QF6(A){return!A.name.startsWith("mcp__ide__")||BF6.includes(A.name)}var IF6=b0(async(A)=>{if(A.type!=="connected")return[];try{if(!A.capabilities?.tools)return[];return(await A.client.request({method:"tools/list"},Ja)).tools.map((Q)=>({...yY0,name:"mcp__"+A.name.replace(/\s+/g,"_")+"__"+Q.name,isMcp:!0,async description(){return Q.description??""},async prompt(){return Q.description??""},inputJSONSchema:Q.inputSchema,async*call(I,G){yield{type:"result",data:await Fg0({client:A,tool:Q.name,args:I,signal:G.abortController.signal,isNonInteractiveSession:G.options.isNonInteractiveSession})}},userFacingName(){return`${A.name}:${Q.name} (MCP)`}})).filter(QF6)}catch(B){return IY(A.name,`Failed to fetch tools: ${B instanceof Error?B.message:String(B)}`),[]}}),GF6=b0(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"},Fa);if(!Q.prompts)return[];return Q.prompts.map((I)=>{let G=Object.values(I.arguments??{}).map((D)=>D.name);return{type:"prompt",name:"mcp__"+B.name.replace(/\s+/g,"_")+"__"+I.name,description:I.description??"",isEnabled:!0,isHidden:!1,isMcp:!0,progressMessage:"running",userFacingName(){return`${B.name}:${I.name} (MCP)`},argNames:G,async getPromptForCommand(D){let Z=D.split(" ");try{return(await B.client.getPrompt({name:I.name,arguments:SU1(G,Z)})).messages.map((W)=>{let F=Wg0(W.content,A.name);return{role:W.role,content:F}})}catch(Y){throw IY(A.name,`Error running command '${I.name}': ${Y instanceof Error?Y.message:String(Y)}`),Y}}}})}catch(Q){return IY(A.name,`Failed to fetch commands: ${Q instanceof Error?Q.message:String(Q)}`),[]}});async function BL(A,B,Q,I){return Fg0({client:Q,tool:A,args:B,signal:new AbortController().signal,isNonInteractiveSession:I})}async function Yu1(A,B){let Q=!1,I=KV(),G=B?{...I,...B}:I;await Promise.all(Object.entries(G).map(async([D,Z])=>{let Y=await MY0(D,Z);if(Y.type!=="connected"){A({client:Y,tools:[],commands:[]});return}let W=!!Y.capabilities?.resources,[F,J]=await Promise.all([IF6(Y),GF6(Y)]),C=[];A({client:Y,tools:[...F,...C],commands:J})}))}async function Yg0(A){return new Promise((B)=>{let Q=0,I=0,G=KV(),D=A?{...G,...A}:G;if(Q=Object.keys(D).length,Q===0){B({clients:[],tools:[],commands:[]});return}let Z=[],Y=[],W=[];Yu1((F)=>{if(Z.push(F.client),Y.push(...F.tools),W.push(...F.commands),I++,I>=Q)B({clients:Z,tools:Y,commands:W})},A)})}function Wg0(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,I="";if("text"in Q)return[{type:"text",text:`${Q.text}`}];else if("blob"in Q)if(eW6.has(Q.mimeType??"")){let D=[];return D.push({type:"image",source:{data:Q.blob,media_type:Q.mimeType||"image/jpeg",type:"base64"}}),D}else return[{type:"text",text:`Base64 data (${Q.mimeType||"unknown type"}) ${Q.blob}`}];return[]}default:return[]}}async function Fg0({client:{client:A,name:B},tool:Q,args:I,signal:G,isNonInteractiveSession:D}){try{let Z=await A.callTool({name:Q,arguments:I},Ub,{signal:G,timeout:AF6});if("isError"in Z&&Z.isError){let W=`Error calling tool ${Q}: ${Z.error}`;throw IY(B,W),Error(W)}if("toolResult"in Z){let W=String(Z.toolResult);return await Zu1(W,Q,D),W}if("content"in Z&&Array.isArray(Z.content)){let F=Z.content.map((J)=>Wg0(J,B)).flat();return await Zu1(F,Q,D),F}let Y=`Unexpected response format from tool ${Q}`;throw IY(B,Y),Error(Y)}catch(Z){if(Z instanceof qr)throw Z;if(!(Z instanceof Error)||Z.name!=="AbortError")throw Z}}class xV{static instance;baseline=new Map;initialized=!1;mcpClient;lastProcessedTimestamps=new Map;lastDiagnosticsByUri=new Map;rightFileDiagnosticsState=new Map;static getInstance(){if(!xV.instance)xV.instance=new xV;return xV.instance}initialize(A){if(this.initialized)return;if(this.mcpClient=A,this.initialized=!0,this.mcpClient&&this.mcpClient.type==="connected"){let B=i.object({method:i.literal("diagnostics_changed"),params:i.object({uri:i.string()})});this.mcpClient.client.setNotificationHandler(B,async(Q)=>{let{uri:I}=Q.params;this.handleDiagnosticChange(I)})}}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 BL("openFile",{filePath:A,preview:!1,startText:"",endText:"",selectToEndOfLine:!1,makeFrontmost:!1},this.mcpClient,!1)}catch(B){m1(B)}}async beforeFileEdited(A){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;await this.ensureFileOpened(A);let B=Date.now();try{let Q=await BL("getDiagnostics",{uri:`file://${A}`},this.mcpClient,!1),I=this.parseDiagnosticResult(Q)[0];if(I){if(A!==this.normalizeFileUri(I.uri)){m1(new Error(`Diagnostics file path mismatch: expected ${A}, got ${I.uri})`));return}this.baseline.set(A,I.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 G=await BL("getDiagnostics",{},this.mcpClient,!1);A=this.parseDiagnosticResult(G)}catch(G){return[]}let B=A.filter((G)=>this.baseline.has(this.normalizeFileUri(G.uri))).filter((G)=>G.uri.startsWith("file://")),Q=new Map;A.filter((G)=>this.baseline.has(this.normalizeFileUri(G.uri))).filter((G)=>G.uri.startsWith("_claude_fs_right:")).forEach((G)=>{Q.set(this.normalizeFileUri(G.uri),G)});let I=[];for(let G of B){let D=this.normalizeFileUri(G.uri),Z=this.baseline.get(D)||[],Y=Q.get(D),W=G;if(Y){let J=this.rightFileDiagnosticsState.get(D);if(!J||!this.areDiagnosticArraysEqual(J,Y.diagnostics))W=Y;this.rightFileDiagnosticsState.set(D,Y.diagnostics)}let F=W.diagnostics.filter((J)=>!Z.some((C)=>this.areDiagnosticsEqual(J,C)));if(F.length>0)I.push({uri:G.uri,diagnostics:F});this.baseline.set(D,W.diagnostics)}return I}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((I)=>this.areDiagnosticsEqual(Q,I)))&&B.every((Q)=>A.some((I)=>this.areDiagnosticsEqual(I,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((I)=>Q.includes(I))}handleDiagnosticChange(A){}async handleQueryStart(A){if(!this.initialized){let B=A.find((Q)=>Q.type==="connected"&&Q.name==="ide");if(B)await this.initialize(B)}else this.reset()}static formatDiagnosticsSummary(A){return A.map((B)=>{let Q=B.uri.split("/").pop()||B.uri,I=B.diagnostics.map((G)=>{return` ${xV.getSeveritySymbol(G.severity)} [Line ${G.range.start.line+1}:${G.range.start.character+1}] ${G.message}${G.code?` [${G.code}]`:""}${G.source?` (${G.source})`:""}`}).join(`
1331
+ ${C}`)}return D},lb1=xt4(qM0);var ft4="bedrock-2023-05-31",vt4=new Set(["/v1/complete","/v1/messages","/v1/messages?beta=true"]);class TZ1 extends Z8{constructor({awsRegion:A=pb1("AWS_REGION")??"us-east-1",baseURL:B=pb1("ANTHROPIC_BEDROCK_BASE_URL")??`https://bedrock-runtime.${A}.amazonaws.com`,awsSecretKey:Q=null,awsAccessKey:I=null,awsSessionToken:G=null,...D}={}){super({baseURL:B,...D});this.skipAuth=!1,this.messages=bt4(this),this.completions=new oM(this),this.beta=gt4(this),this.awsSecretKey=Q,this.awsAccessKey=I,this.awsRegion=A,this.awsSessionToken=G,this.skipAuth=D.skipAuth??!1}validateHeaders(){}async prepareRequest(A,{url:B,options:Q}){if(this.skipAuth)return;let I=this.awsRegion;if(!I)throw new Error("Expected `awsRegion` option to be passed to the client or the `AWS_REGION` environment variable to be present");let G=await RK0(A,{url:B,regionName:I,awsAccessKey:this.awsAccessKey,awsSecretKey:this.awsSecretKey,awsSessionToken:this.awsSessionToken});A.headers=cb1([G,A.headers]).values}buildRequest(A){if(A.__streamClass=OZ1,LZ1(A.body))A.body={...A.body};if(LZ1(A.body)){if(!A.body.anthropic_version)A.body.anthropic_version=ft4;if(A.headers&&!A.body.anthropic_beta){let B=cb1([A.headers]).values.get("anthropic-beta");if(B!=null)A.body.anthropic_beta=B.split(",")}}if(vt4.has(A.path)&&A.method==="post"){if(!LZ1(A.body))throw new Error("Expected request body to be an object for post /v1/messages");let B=A.body.model;A.body.model=void 0;let Q=A.body.stream;if(A.body.stream=void 0,Q)A.path=lb1`/model/${B}/invoke-with-response-stream`;else A.path=lb1`/model/${B}/invoke`}return super.buildRequest(A)}}function bt4(A){let B=new IV(A);return delete B.batches,delete B.countTokens,B}function gt4(A){let B=new uJ(A);return delete B.promptCaching,delete B.messages.batches,delete B.messages.countTokens,B}var rP0=F1(iP0(),1);var FY1=(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};function JY1(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var aP0=Symbol.for("brand.privateNullableHeaders"),nP0=Array.isArray;function*L46(A){if(!A)return;if(aP0 in A){let{values:I,nulls:G}=A;yield*I.entries();for(let D of G)yield[D,null];return}let B=!1,Q;if(A instanceof Headers)Q=A.entries();else if(nP0(A))Q=A;else B=!0,Q=Object.entries(A??{});for(let I of Q){let G=I[0];if(typeof G!=="string")throw new TypeError("expected header name to be a string");let D=nP0(I[1])?I[1]:[I[1]],Z=!1;for(let Y of D){if(Y===void 0)continue;if(B&&!Z)Z=!0,yield[G,null];yield[G,Y]}}}var sP0=(A)=>{let B=new Headers,Q=new Set;for(let I of A){let G=new Set;for(let[D,Z]of L46(I)){let Y=D.toLowerCase();if(!G.has(Y))B.delete(D),G.add(Y);if(Z===null)B.delete(D),Q.add(Y);else B.append(D,Z),Q.delete(Y)}}return{[aP0]:!0,values:B,nulls:Q}};var R46="vertex-2023-10-16",O46=new Set(["/v1/messages","/v1/messages?beta=true"]);class CY1 extends Z8{constructor({baseURL:A=FY1("ANTHROPIC_VERTEX_BASE_URL"),region:B=FY1("CLOUD_ML_REGION")??null,projectId:Q=FY1("ANTHROPIC_VERTEX_PROJECT_ID")??null,...I}={}){if(!B)throw new Error("No region was given. The client should be instantiated with the `region` option or the `CLOUD_ML_REGION` environment variable should be set.");super({baseURL:A||`https://${B}-aiplatform.googleapis.com/v1`,...I});this.messages=T46(this),this.beta=P46(this),this.region=B,this.projectId=Q,this.accessToken=I.accessToken??null,this._auth=I.googleAuth??new rP0.GoogleAuth({scopes:"https://www.googleapis.com/auth/cloud-platform"}),this._authClientPromise=this._auth.getClient()}validateHeaders(){}async prepareOptions(A){let B=await this._authClientPromise,Q=await B.getRequestHeaders(),I=B.projectId??Q["x-goog-user-project"];if(!this.projectId&&I)this.projectId=I;A.headers=sP0([Q,A.headers])}buildRequest(A){if(JY1(A.body))A.body={...A.body};if(JY1(A.body)){if(!A.body.anthropic_version)A.body.anthropic_version=R46}if(O46.has(A.path)&&A.method==="post"){if(!this.projectId)throw new Error("No projectId was given and it could not be resolved from credentials. The client should be instantiated with the `projectId` option or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.");if(!JY1(A.body))throw new Error("Expected request body to be an object for post /v1/messages");let B=A.body.model;A.body.model=void 0;let I=A.body.stream??!1?"streamRawPredict":"rawPredict";A.path=`/projects/${this.projectId}/locations/${this.region}/publishers/anthropic/models/${B}:${I}`}if(A.path==="/v1/messages/count_tokens"||A.path=="/v1/messages/count_tokens?beta=true"&&A.method==="post"){if(!this.projectId)throw new Error("No projectId was given and it could not be resolved from credentials. The client should be instantiated with the `projectId` option or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.");A.path=`/projects/${this.projectId}/locations/${this.region}/publishers/anthropic/models/count-tokens:rawPredict`}return super.buildRequest(A)}}function T46(A){let B=new IV(A);return delete B.batches,B}function P46(A){let B=new uJ(A);return delete B.messages.batches,B}var PL=`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.2"}.VERSION} (external)`;var fK8=ds(),LW6=Ns(),vK8=eg(),bK8=my0(),gK8=Ah(),RW6=om1(),hK8=Zk0(),mK8=Vk0(),OW6=y5(),lW1=I6(),{InvalidArgumentError:cW1}=OW6,Mh=Zx0(),dK8=qs(),uK8=qd1(),pK8=lx0(),cK8=Ld1(),lK8=Cd1(),iK8=AW1(),{getGlobalDispatcher:TW6,setGlobalDispatcher:nK8}=FW1(),aK8=JW1(),sK8=cY1(),rK8=lY1();Object.assign(LW6.prototype,Mh);var Gu1=RW6;var jW6={redirect:tx0(),retry:Af0(),dump:If0(),dns:Wf0()};var yW6={parseHeaders:lW1.parseHeaders,headerNameToString:lW1.headerNameToString};function Nr(A){return(B,Q,I)=>{if(typeof Q==="function")I=Q,Q=null;if(!B||typeof B!=="string"&&typeof B!=="object"&&!(B instanceof URL))throw new cW1("invalid url");if(Q!=null&&typeof Q!=="object")throw new cW1("invalid opts");if(Q&&Q.path!=null){if(typeof Q.path!=="string")throw new cW1("invalid opts.path");let Z=Q.path;if(!Q.path.startsWith("/"))Z=`/${Z}`;B=new URL(lW1.parseOrigin(B).origin+Z)}else{if(!Q)Q=typeof B==="object"?B:{};B=lW1.parseURL(B)}let{agent:G,dispatcher:D=TW6()}=Q;if(G)throw new cW1("unsupported opts.agent. Did you mean opts.client?");return A.call(D,{...Q,origin:B.origin,path:B.search?`${B.pathname}${B.search}`:B.pathname,method:Q.method||(Q.body?"PUT":"GET")},I)}}var oK8=Dr().fetch;var kW6=lS().Headers,xW6=Ir().Response,fW6=Ch().Request,vW6=Ps().FormData,bW6=globalThis.File??D1("node:buffer").File,gW6=Lv0().FileReader;var{setGlobalOrigin:tK8,getGlobalOrigin:eK8}=Wm1();var{CacheStorage:PW6}=kv0(),{kConstruct:SW6}=_W1();var hW6=new PW6(SW6);var{deleteCookie:AH8,getCookies:BH8,getSetCookies:QH8,setCookie:IH8}=lv0();var{parseMIMEType:GH8,serializeAMimeType:DH8}=NY();var{CloseEvent:ZH8,ErrorEvent:YH8,MessageEvent:WH8}=wh();var mW6=pb0().WebSocket;var dW6=Nr(Mh.request),uW6=Nr(Mh.stream),pW6=Nr(Mh.pipeline),cW6=Nr(Mh.connect),lW6=Nr(Mh.upgrade);var{EventSource:FH8}=Ig0();async function kV({apiKey:A,maxRetries:B=0,model:Q,isNonInteractiveSession:I}){let G={"x-app":"cli","User-Agent":PL,...nW6()};await AO1();let D=C6();if(!D)iW6(G);let Z={defaultHeaders:G,maxRetries:B,timeout:parseInt(process.env.API_TIMEOUT_MS||String(60000),10),dangerouslyAllowBrowser:!0,...Gg0?{fetchOptions:Gg0}:void 0};if(process.env.CLAUDE_CODE_USE_BEDROCK){let W={...Z,...process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH&&{skipAuth:!0}};return new TZ1(W)}if(process.env.CLAUDE_CODE_USE_VERTEX){let W={...Z,region:Dg0(Q),...process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH&&{projectId:process.env.ANTHROPIC_VERTEX_PROJECT_ID||" ",region:Dg0(Q)||" ",googleAuth:{getClient:()=>({getRequestHeaders:()=>({})})}}};return new CY1(W)}let Y={apiKey:D?null:A||aI(I),authToken:D?A3()?.accessToken:void 0,...Z};return new Wz(Y)}function iW6(A){let B=process.env.ANTHROPIC_AUTH_TOKEN||Nf();if(B)A.Authorization=`Bearer ${B}`,A["Proxy-Authorization"]=`Bearer ${B}`}function nW6(){let A={},B=process.env.ANTHROPIC_CUSTOM_HEADERS;if(!B)return A;let Q=B.split(/\n|\r\n/);for(let I of Q){if(!I.trim())continue;let G=I.match(/^\s*(.*?)\s*:\s*(.*?)\s*$/);if(G){let[,D,Z]=G;if(D&&Z!==void 0)A[D]=Z}}return A}var Gg0=aW6();function aW6(){return process.env.HTTPS_PROXY||process.env.HTTP_PROXY?{dispatcher:new Gu1({uri:process.env.HTTPS_PROXY||process.env.HTTP_PROXY||"",pipelining:1})}:void 0}function Dg0(A){if(A?.startsWith("claude-3-5-haiku"))return process.env.VERTEX_REGION_CLAUDE_3_5_HAIKU;else if(A?.startsWith("claude-3-5-sonnet"))return process.env.VERTEX_REGION_CLAUDE_3_5_SONNET;else if(A?.startsWith("claude-3-7-sonnet"))return process.env.VERTEX_REGION_CLAUDE_3_7_SONNET;else if(A?.startsWith("claude-opus-4-"))return process.env.VERTEX_REGION_CLAUDE_4_0_OPUS;else if(A?.startsWith("claude-sonnet-4-"))return process.env.VERTEX_REGION_CLAUDE_4_0_SONNET;return process.env.CLOUD_ML_REGION||"us-east5"}async function Zg0(A,B){if(!A)return 0;return iW1([{role:"user",content:A}],B)}async function iW1(A,B){try{if(!A||A.length===0)return 0;let Q=await WQ(),I=await kV({maxRetries:1,model:Q,isNonInteractiveSession:B}),G=await yH(Q);return(await I.beta.messages.countTokens({model:Q,messages:A,...G.length>0?{betas:G}:{}})).input_tokens}catch(Q){return m1(Q),null}}function $r(A){return A.length/4}var Du1=25000,sW6=0.5;function rW6(A){return A.type==="text"}function oW6(A){return A.type==="image"}function tW6(A){if(!A)return 0;if(typeof A==="string")return $r(A);return A.reduce((B,Q)=>{if(rW6(Q))return B+$r(Q.text);else if(oW6(Q))return B+1600;return B},0)}class qr extends Error{constructor(A,B){super(`MCP tool "${A}" response (${B} tokens) exceeds maximum allowed tokens (${Du1}). Please use pagination, filtering, or limit parameters to reduce the response size.`);this.name="MCPContentTooLargeError"}}async function Zu1(A,B,Q){if(!A)return;if(tW6(A)<=Du1*sW6)return;try{let D=await iW1(typeof A==="string"?[{role:"user",content:A}]:[{role:"user",content:A}],Q);if(D&&D>Du1)throw new qr(B,D)}catch(G){if(G instanceof qr)throw G;m1(G instanceof Error?G:new Error(String(G)))}}var eW6=new Set(["image/jpeg","image/png","image/gif","image/webp"]),AF6=parseInt(process.env.MCP_TOOL_TIMEOUT||"",10)||1e8,BF6=["mcp__ide__executeCode","mcp__ide__getDiagnostics"];function QF6(A){return!A.name.startsWith("mcp__ide__")||BF6.includes(A.name)}var IF6=b0(async(A)=>{if(A.type!=="connected")return[];try{if(!A.capabilities?.tools)return[];return(await A.client.request({method:"tools/list"},Ja)).tools.map((Q)=>({...yY0,name:"mcp__"+A.name.replace(/\s+/g,"_")+"__"+Q.name,isMcp:!0,async description(){return Q.description??""},async prompt(){return Q.description??""},inputJSONSchema:Q.inputSchema,async*call(I,G){yield{type:"result",data:await Fg0({client:A,tool:Q.name,args:I,signal:G.abortController.signal,isNonInteractiveSession:G.options.isNonInteractiveSession})}},userFacingName(){return`${A.name}:${Q.name} (MCP)`}})).filter(QF6)}catch(B){return IY(A.name,`Failed to fetch tools: ${B instanceof Error?B.message:String(B)}`),[]}}),GF6=b0(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"},Fa);if(!Q.prompts)return[];return Q.prompts.map((I)=>{let G=Object.values(I.arguments??{}).map((D)=>D.name);return{type:"prompt",name:"mcp__"+B.name.replace(/\s+/g,"_")+"__"+I.name,description:I.description??"",isEnabled:!0,isHidden:!1,isMcp:!0,progressMessage:"running",userFacingName(){return`${B.name}:${I.name} (MCP)`},argNames:G,async getPromptForCommand(D){let Z=D.split(" ");try{return(await B.client.getPrompt({name:I.name,arguments:SU1(G,Z)})).messages.map((W)=>{let F=Wg0(W.content,A.name);return{role:W.role,content:F}})}catch(Y){throw IY(A.name,`Error running command '${I.name}': ${Y instanceof Error?Y.message:String(Y)}`),Y}}}})}catch(Q){return IY(A.name,`Failed to fetch commands: ${Q instanceof Error?Q.message:String(Q)}`),[]}});async function BL(A,B,Q,I){return Fg0({client:Q,tool:A,args:B,signal:new AbortController().signal,isNonInteractiveSession:I})}async function Yu1(A,B){let Q=!1,I=KV(),G=B?{...I,...B}:I;await Promise.all(Object.entries(G).map(async([D,Z])=>{let Y=await MY0(D,Z);if(Y.type!=="connected"){A({client:Y,tools:[],commands:[]});return}let W=!!Y.capabilities?.resources,[F,J]=await Promise.all([IF6(Y),GF6(Y)]),C=[];A({client:Y,tools:[...F,...C],commands:J})}))}async function Yg0(A){return new Promise((B)=>{let Q=0,I=0,G=KV(),D=A?{...G,...A}:G;if(Q=Object.keys(D).length,Q===0){B({clients:[],tools:[],commands:[]});return}let Z=[],Y=[],W=[];Yu1((F)=>{if(Z.push(F.client),Y.push(...F.tools),W.push(...F.commands),I++,I>=Q)B({clients:Z,tools:Y,commands:W})},A)})}function Wg0(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,I="";if("text"in Q)return[{type:"text",text:`${Q.text}`}];else if("blob"in Q)if(eW6.has(Q.mimeType??"")){let D=[];return D.push({type:"image",source:{data:Q.blob,media_type:Q.mimeType||"image/jpeg",type:"base64"}}),D}else return[{type:"text",text:`Base64 data (${Q.mimeType||"unknown type"}) ${Q.blob}`}];return[]}default:return[]}}async function Fg0({client:{client:A,name:B},tool:Q,args:I,signal:G,isNonInteractiveSession:D}){try{let Z=await A.callTool({name:Q,arguments:I},Ub,{signal:G,timeout:AF6});if("isError"in Z&&Z.isError){let W=`Error calling tool ${Q}: ${Z.error}`;throw IY(B,W),Error(W)}if("toolResult"in Z){let W=String(Z.toolResult);return await Zu1(W,Q,D),W}if("content"in Z&&Array.isArray(Z.content)){let F=Z.content.map((J)=>Wg0(J,B)).flat();return await Zu1(F,Q,D),F}let Y=`Unexpected response format from tool ${Q}`;throw IY(B,Y),Error(Y)}catch(Z){if(Z instanceof qr)throw Z;if(!(Z instanceof Error)||Z.name!=="AbortError")throw Z}}class xV{static instance;baseline=new Map;initialized=!1;mcpClient;lastProcessedTimestamps=new Map;lastDiagnosticsByUri=new Map;rightFileDiagnosticsState=new Map;static getInstance(){if(!xV.instance)xV.instance=new xV;return xV.instance}initialize(A){if(this.initialized)return;if(this.mcpClient=A,this.initialized=!0,this.mcpClient&&this.mcpClient.type==="connected"){let B=i.object({method:i.literal("diagnostics_changed"),params:i.object({uri:i.string()})});this.mcpClient.client.setNotificationHandler(B,async(Q)=>{let{uri:I}=Q.params;this.handleDiagnosticChange(I)})}}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 BL("openFile",{filePath:A,preview:!1,startText:"",endText:"",selectToEndOfLine:!1,makeFrontmost:!1},this.mcpClient,!1)}catch(B){m1(B)}}async beforeFileEdited(A){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;await this.ensureFileOpened(A);let B=Date.now();try{let Q=await BL("getDiagnostics",{uri:`file://${A}`},this.mcpClient,!1),I=this.parseDiagnosticResult(Q)[0];if(I){if(A!==this.normalizeFileUri(I.uri)){m1(new Error(`Diagnostics file path mismatch: expected ${A}, got ${I.uri})`));return}this.baseline.set(A,I.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 G=await BL("getDiagnostics",{},this.mcpClient,!1);A=this.parseDiagnosticResult(G)}catch(G){return[]}let B=A.filter((G)=>this.baseline.has(this.normalizeFileUri(G.uri))).filter((G)=>G.uri.startsWith("file://")),Q=new Map;A.filter((G)=>this.baseline.has(this.normalizeFileUri(G.uri))).filter((G)=>G.uri.startsWith("_claude_fs_right:")).forEach((G)=>{Q.set(this.normalizeFileUri(G.uri),G)});let I=[];for(let G of B){let D=this.normalizeFileUri(G.uri),Z=this.baseline.get(D)||[],Y=Q.get(D),W=G;if(Y){let J=this.rightFileDiagnosticsState.get(D);if(!J||!this.areDiagnosticArraysEqual(J,Y.diagnostics))W=Y;this.rightFileDiagnosticsState.set(D,Y.diagnostics)}let F=W.diagnostics.filter((J)=>!Z.some((C)=>this.areDiagnosticsEqual(J,C)));if(F.length>0)I.push({uri:G.uri,diagnostics:F});this.baseline.set(D,W.diagnostics)}return I}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((I)=>this.areDiagnosticsEqual(Q,I)))&&B.every((Q)=>A.some((I)=>this.areDiagnosticsEqual(I,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((I)=>Q.includes(I))}handleDiagnosticChange(A){}async handleQueryStart(A){if(!this.initialized){let B=A.find((Q)=>Q.type==="connected"&&Q.name==="ide");if(B)await this.initialize(B)}else this.reset()}static formatDiagnosticsSummary(A){return A.map((B)=>{let Q=B.uri.split("/").pop()||B.uri,I=B.diagnostics.map((G)=>{return` ${xV.getSeveritySymbol(G.severity)} [Line ${G.range.start.line+1}:${G.range.start.character+1}] ${G.message}${G.code?` [${G.code}]`:""}${G.source?` (${G.source})`:""}`}).join(`
1332
1332
  `);return`${Q}:
1333
1333
  ${I}`}).join(`
1334
1334
 
@@ -1494,7 +1494,7 @@ ${I}`).join(`
1494
1494
  IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context or otherwise consider it in your response unless it is highly relevant to your task. Most of the time, it is not relevant.
1495
1495
  </system-reminder>`,isMeta:!0}),...A]}async function mw6(A){let B=A.directoryStructure?.length??0,Q=A.gitStatus?.length??0,I=A.claudeMd?.length??0,G=B+Q+I,D=E9(),Z=new AbortController;setTimeout(()=>Z.abort(),1000);let Y=await t91(dA(),Z.signal,D.ignorePatterns??[]);j1("tengu_context_size",{directory_structure_size:B,git_status_size:Q,claude_md_size:I,total_context_size:G,project_file_count_rounded:Y})}function ju0(A){let B=A.message.content.map((Q)=>{if(Q.type!=="tool_use")return Q;let I=Q.name;if(I===pF1&&typeof Q.input==="object"&&Q.input!==null){let G=Q.input;if(typeof G.invocations==="string"&&(G.invocations.trim().startsWith("[")||G.invocations.trim().startsWith("{"))){let D=D8(G.invocations);if(D!==null)return j1("tengu_tool_input_json_normalized",{toolName:I,field:"invocations"}),{...Q,input:{...G,invocations:D}}}}if(I===cF1&&typeof Q.input==="object"&&Q.input!==null){let G=Q.input;if(typeof G.edits==="string"&&(G.edits.trim().startsWith("[")||G.edits.trim().startsWith("{"))){let D=D8(G.edits);if(D!==null)return j1("tengu_tool_input_json_normalized",{toolName:I,field:"edits"}),{...Q,input:{...G,edits:D}}}}return Q});return{...A,message:{...A.message,content:B}}}var yu0=Symbol("NO_VALUE");async function HF(A){let B=yu0;for await(let Q of A)B=Q;if(B===yu0)throw new Error("No items in generator");return B}async function sr(A){let B;do B=await A.next();while(!B.done);return B.value}async function*lF1(A,B=1/0){let Q=(D)=>{let Z=D.next().then(({done:Y,value:W})=>({done:Y,value:W,generator:D,promise:Z}));return Z},I=[...A],G=new Set;while(G.size<B&&I.length>0){let D=I.shift();G.add(Q(D))}while(G.size>0){let{done:D,value:Z,generator:Y,promise:W}=await Promise.race(G);if(G.delete(W),!D){if(G.add(Q(Y)),Z!==void 0)yield Z}else if(I.length>0){let F=I.shift();G.add(Q(F))}}}async function ku0(A){let B=[];for await(let Q of A)B.push(Q);return B}function dw6(A){if(A?.type==="assistant"&&"usage"in A.message&&!(A.message.content[0]?.type==="text"&&bF1.has(A.message.content[0].text))&&A.message.model!=="<synthetic>")return A.message.usage;return}function uw6(A){return A.input_tokens+(A.cache_creation_input_tokens??0)+(A.cache_read_input_tokens??0)+A.output_tokens}function EN(A){let B=A.length-1;while(B>=0){let Q=A[B],I=Q?dw6(Q):void 0;if(I)return uw6(I);B--}return 0}var iF1=F1(S1(),1);var VZ={status:"allowed",unifiedRateLimitFallbackAvailable:!1},Vp1=new Set;function xu0(A){Vp1.forEach((Q)=>Q(A));let B=Math.round((A.resetsAt?A.resetsAt-Date.now()/1000:0)/3600);j1("tengu_claudeai_limits_status_changed",{status:A.status,hoursTillReset:B})}async function pw6(){let A=await kV({maxRetries:0,model:eH(),isNonInteractiveSession:!1}),B=[{role:"user",content:"quota"}],Q=await GU();return A.beta.messages.create({model:eH(),max_tokens:1,messages:B,metadata:rr(),...Q.length>0?{betas:Q}:{}}).asResponse()}async function fu0(){if(!C6())return{status:"allowed",unifiedRateLimitFallbackAvailable:!1};try{let A=await pw6(),B=qT(VZ);VZ.status=A.headers.get("anthropic-ratelimit-unified-status")||"allowed";let Q=A.headers.get("anthropic-ratelimit-unified-reset");if(VZ.resetsAt=Q?Number(Q):void 0,VZ.unifiedRateLimitFallbackAvailable=A.headers.get("anthropic-ratelimit-unified-fallback")==="available",!zk(B,VZ))xu0(VZ);return VZ}catch(A){try{if(A instanceof I5&&A.status===429){let{status:B,unifiedRateLimitFallbackAvailable:Q}=VZ;VZ.status="rejected";let I=A.headers?.get("anthropic-ratelimit-unified-reset");if(VZ.resetsAt=I?Number(I):void 0,B!=="rejected"||Q!==VZ.unifiedRateLimitFallbackAvailable)xu0(VZ)}}catch(B){m1(B)}return VZ}}function lh(){let[A,B]=iF1.useState({...VZ});return iF1.useEffect(()=>{let Q=(I)=>{B({...I})};return Vp1.add(Q),()=>{Vp1.delete(Q)}},[]),A}function vu0(A,B,Q,I){if(!Q.resetsAt)return;let G=Rv();if(!A&&Q.unifiedRateLimitFallbackAvailable&&(G===void 0||G===null)){I(!0);return}if(A&&B!==void 0&&Q.resetsAt!==void 0&&Q.resetsAt>B)I(!1)}import{createHash as cw6}from"crypto";import{dirname as bu0}from"path";import*as mu0 from"path";async function Kp1(A,B){return await B()}function lw6(A,B){return A.map((Q)=>{if(typeof Q==="string")return B(Q);return Q.map((I)=>{switch(I.type){case"tool_result":if(typeof I.content==="string")return{...I,content:B(I.content)};if(Array.isArray(I.content))return{...I,content:I.content.map((G)=>{switch(G.type){case"text":return{...G,text:B(G.text)};case"image":return G;default:return}})};return I;case"text":return{...I,text:B(I.text)};case"tool_use":return{...I,input:nF1(I.input,B)};case"image":return I;default:return}})})}function nF1(A,B){return LU1(A,(Q,I)=>{if(Array.isArray(Q))return Q.map((G)=>nF1(G,B));if(Ep(Q))return nF1(Q,B);return B(Q,I,A)})}function gu0(A,B){return{durationMs:"DURATION",costUSD:"COST",uuid:"UUID",timestamp:A.timestamp,message:{...A.message,content:A.message.content.map((Q)=>{switch(Q.type){case"text":return{...Q,text:B(Q.text),citations:Q.citations||[]};case"tool_use":return{...Q,input:nF1(Q.input,B)};default:return Q}}).filter(Boolean)},type:"assistant"}}function hu0(A){if(typeof A!=="string")return A;let B=A.replace(/num_files="\d+"/g,'num_files="[NUM]"').replace(/duration_ms="\d+"/g,'duration_ms="[DURATION]"').replace(/cost_usd="\d+"/g,'cost_usd="[COST]"').replace(/\//g,mu0.sep).replaceAll(dA(),"[CWD]");if(B.includes("Files modified by user:"))return"Files modified by user: [FILES]";return B}function iw6(A){if(typeof A!=="string")return A;return A.replaceAll("[NUM]","1").replaceAll("[DURATION]","100").replaceAll("[CWD]",dA())}async function*Hp1(A,B){return yield*B()}function du0(A){return typeof A==="object"&&A!==null&&"content"in A&&"model"in A&&"usage"in A&&Array.isArray(A.content)&&typeof A.model==="string"&&typeof A.usage==="object"}function uu0(A){if(!A||typeof A!=="object")return;if(A.Output?.__type)return A.Output.__type;return}var HW2=F1(S1(),1);var wX1=F1(C4(),1),EX1=F1(S_(),1),DW2=F1(Y32(),1),ZW2=F1(aY2(),1),YW2=F1(nJ1(),1),WW2=F1(IW2(),1),FW2=F1(S_(),1),zt=F1(Bl1(),1),UX1=F1(NN(),1);class va1{error(A,...B){m1(new Error(A))}warn(A,...B){m1(new Error(A))}info(A,...B){return}debug(A,...B){return}verbose(A,...B){return}}var wt6=60000;function Et6(){if(!process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE)process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE="delta"}function Ut6(){let A=(process.env.OTEL_METRICS_EXPORTER||"").trim().split(",").filter(Boolean),B=parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL||wt6.toString()),Q=[];for(let I of A)if(I==="console"){let G=new EX1.ConsoleMetricExporter,D=G.export.bind(G);G.export=(Z,Y)=>{if(Z.resource&&Z.resource.attributes)console.log(`
1496
1496
  === Resource Attributes ===`),console.log(Z.resource.attributes),console.log(`===========================
1497
- `);return D(Z,Y)},Q.push(G)}else if(I==="otlp"){let G=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();switch(G){case"grpc":Q.push(new ZW2.OTLPMetricExporter);break;case"http/json":Q.push(new YW2.OTLPMetricExporter);break;case"http/protobuf":Q.push(new DW2.OTLPMetricExporter);break;default:throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${G}`)}}else if(I==="prometheus")Q.push(new WW2.PrometheusExporter);else throw new Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${I}`);return Q.map((I)=>{if("export"in I)return new FW2.PeriodicExportingMetricReader({exporter:I,exportIntervalMillis:B});return I})}function GW2(){return Boolean(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function Nt6(){if(wX1.diag.setLogger(new va1,wX1.DiagLogLevel.ERROR),!GW2())return;let A=Ut6(),B=zt.resourceFromAttributes({[UX1.ATTR_SERVICE_NAME]:"claude-code",[UX1.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.1"}.VERSION}),Q=zt.envDetector.detect(),I=zt.resourceFromAttributes(Q.attributes||{}),G=B.merge(I),D=new EX1.MeterProvider({resource:G,views:[],readers:A}),Z=async()=>{let Y=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||"1000");try{await Promise.race([D.shutdown(),new Promise((W,F)=>setTimeout(()=>F(new Error("OpenTelemetry shutdown timeout")),Y))])}catch(W){if(W instanceof Error&&W.message.includes("timeout"))kX(`
1497
+ `);return D(Z,Y)},Q.push(G)}else if(I==="otlp"){let G=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();switch(G){case"grpc":Q.push(new ZW2.OTLPMetricExporter);break;case"http/json":Q.push(new YW2.OTLPMetricExporter);break;case"http/protobuf":Q.push(new DW2.OTLPMetricExporter);break;default:throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${G}`)}}else if(I==="prometheus")Q.push(new WW2.PrometheusExporter);else throw new Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${I}`);return Q.map((I)=>{if("export"in I)return new FW2.PeriodicExportingMetricReader({exporter:I,exportIntervalMillis:B});return I})}function GW2(){return Boolean(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function Nt6(){if(wX1.diag.setLogger(new va1,wX1.DiagLogLevel.ERROR),!GW2())return;let A=Ut6(),B=zt.resourceFromAttributes({[UX1.ATTR_SERVICE_NAME]:"claude-code",[UX1.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.2"}.VERSION}),Q=zt.envDetector.detect(),I=zt.resourceFromAttributes(Q.attributes||{}),G=B.merge(I),D=new EX1.MeterProvider({resource:G,views:[],readers:A}),Z=async()=>{let Y=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||"1000");try{await Promise.race([D.shutdown(),new Promise((W,F)=>setTimeout(()=>F(new Error("OpenTelemetry shutdown timeout")),Y))])}catch(W){if(W instanceof Error&&W.message.includes("timeout"))kX(`
1498
1498
  OpenTelemetry metrics flush timed out after ${Y}ms
1499
1499
 
1500
1500
  To resolve this issue, you can:
@@ -1503,14 +1503,14 @@ To resolve this issue, you can:
1503
1503
  3. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
1504
1504
 
1505
1505
  Current timeout: ${Y}ms
1506
- `);throw W}};if(GW2())x30(Z);return D.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.1"}.VERSION)}Et6();var JW2=Nt6();var $t6={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0};function ba1(A){let B=$t6[A],Q=process.env[A];if(Q===void 0)return B;return Q==="true"}function qt6(){let A=pP(),B=Q5,Q=VA(),I=Q.oauthAccount?.organizationUuid,G=Q.oauthAccount?.emailAddress,D=Q.oauthAccount?.accountUuid,Z={"user.id":A};if(ba1("OTEL_METRICS_INCLUDE_SESSION_ID"))Z["session.id"]=B;if(ba1("OTEL_METRICS_INCLUDE_VERSION"))Z["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.1"}.VERSION;if(I)Z["organization.id"]=I;if(G)Z["user.email"]=G;if(D&&ba1("OTEL_METRICS_INCLUDE_ACCOUNT_UUID"))Z["user.account_uuid"]=D;return Z}function n_(A,B){let Q=JW2?.createCounter(A,B);return{attributes:null,add(I,G={}){if(this.attributes===null)this.attributes=qt6();Q?.add(I,{...this.attributes,...G})}}}var CW2=n_("claude_code.session.count",{description:"Count of CLI sessions started"}),ga1=n_("claude_code.lines_of_code.count",{description:"Count of lines of code modified, with the 'type' attribute indicating whether lines were added or removed"}),XW2=n_("claude_code.pull_request.count",{description:"Number of pull requests created"}),VW2=n_("claude_code.commit.count",{description:"Number of git commits created"}),KW2=n_("claude_code.cost.usage",{description:"Cost of the Claude Code session",unit:"USD"}),wt=n_("claude_code.token.usage",{description:"Number of tokens used",unit:"tokens"}),gm=n_("claude_code.code_edit_tool.decision",{description:"Count of code editing tool permission decisions (accept/reject) for Edit, MultiEdit, Write, and NotebookEdit tools"});function Mt6(A){return`$${A>0.5?Rt6(A,100).toFixed(2):A.toFixed(4)}`}function Lt6(){let A=BDA();if(Object.keys(A).length===0)return"Tokens: 0 input, 0 output, 0 cache read, 0 cache write";let B="Token usage by model:";for(let[Q,I]of Object.entries(A)){let G=tX(Q),D=` ${o7(I.inputTokens)} input, ${o7(I.outputTokens)} output, ${o7(I.cacheReadInputTokens)} cache read, ${o7(I.cacheCreationInputTokens)} cache write`;B+=`
1506
+ `);throw W}};if(GW2())x30(Z);return D.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.2"}.VERSION)}Et6();var JW2=Nt6();var $t6={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0};function ba1(A){let B=$t6[A],Q=process.env[A];if(Q===void 0)return B;return Q==="true"}function qt6(){let A=pP(),B=Q5,Q=VA(),I=Q.oauthAccount?.organizationUuid,G=Q.oauthAccount?.emailAddress,D=Q.oauthAccount?.accountUuid,Z={"user.id":A};if(ba1("OTEL_METRICS_INCLUDE_SESSION_ID"))Z["session.id"]=B;if(ba1("OTEL_METRICS_INCLUDE_VERSION"))Z["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.2"}.VERSION;if(I)Z["organization.id"]=I;if(G)Z["user.email"]=G;if(D&&ba1("OTEL_METRICS_INCLUDE_ACCOUNT_UUID"))Z["user.account_uuid"]=D;return Z}function n_(A,B){let Q=JW2?.createCounter(A,B);return{attributes:null,add(I,G={}){if(this.attributes===null)this.attributes=qt6();Q?.add(I,{...this.attributes,...G})}}}var CW2=n_("claude_code.session.count",{description:"Count of CLI sessions started"}),ga1=n_("claude_code.lines_of_code.count",{description:"Count of lines of code modified, with the 'type' attribute indicating whether lines were added or removed"}),XW2=n_("claude_code.pull_request.count",{description:"Number of pull requests created"}),VW2=n_("claude_code.commit.count",{description:"Number of git commits created"}),KW2=n_("claude_code.cost.usage",{description:"Cost of the Claude Code session",unit:"USD"}),wt=n_("claude_code.token.usage",{description:"Number of tokens used",unit:"tokens"}),gm=n_("claude_code.code_edit_tool.decision",{description:"Count of code editing tool permission decisions (accept/reject) for Edit, MultiEdit, Write, and NotebookEdit tools"});function Mt6(A){return`$${A>0.5?Rt6(A,100).toFixed(2):A.toFixed(4)}`}function Lt6(){let A=BDA();if(Object.keys(A).length===0)return"Tokens: 0 input, 0 output, 0 cache read, 0 cache write";let B="Token usage by model:";for(let[Q,I]of Object.entries(A)){let G=tX(Q),D=` ${o7(I.inputTokens)} input, ${o7(I.outputTokens)} output, ${o7(I.cacheReadInputTokens)} cache read, ${o7(I.cacheCreationInputTokens)} cache write`;B+=`
1507
1507
  `+`${G}:`.padStart(21)+D}return B}function ha1(){let A=Mt6(zH())+(ADA()?" (costs may be inaccurate due to usage of unknown models)":""),B=Lt6();return MA.ansi256(D4().secondaryText)((process.env.DISABLE_COST_WARNINGS?"":`Total cost: ${A}
1508
1508
  `)+`Total duration (API): ${SM(Uk())}
1509
1509
  Total duration (wall): ${SM(fU1())}
1510
1510
  Total code changes: ${p21()} ${p21()===1?"line":"lines"} added, ${c21()} ${c21()===1?"line":"lines"} removed
1511
1511
  ${B}`)}function zW2(){HW2.useEffect(()=>{let A=()=>{if(h31())process.stdout.write(`
1512
1512
  `+ha1()+`
1513
- `);let B=E9();_6({...B,lastCost:zH(),lastAPIDuration:Uk(),lastDuration:fU1(),lastLinesAdded:p21(),lastLinesRemoved:c21(),lastTotalInputTokens:rGA(),lastTotalOutputTokens:oGA(),lastTotalCacheCreationInputTokens:eGA(),lastTotalCacheReadInputTokens:tGA(),lastSessionId:Q5})};return process.on("exit",A),()=>{process.off("exit",A)}},[])}function Rt6(A,B){return Math.round(A*B)/B}function wW2(A,B,Q,I,G){sGA(A,B,Q,I,G),KW2.add(A,{model:G}),wt.add(I.input_tokens,{type:"input",model:G}),wt.add(I.output_tokens,{type:"output",model:G}),wt.add(I.cache_read_input_tokens??0,{type:"cacheRead",model:G}),wt.add(I.cache_creation_input_tokens??0,{type:"cacheCreation",model:G})}var P7=F1(S1(),1);var ma1=F1(S1(),1);var NX1=!1,Ot6=b0(async function(A){let B=await kV({apiKey:A,maxRetries:0,isNonInteractiveSession:!0}),{response:Q}=await B.models.list({limit:1}).withResponse();return Q.headers.get("anthropic-organization-id")});async function $X1(){try{if(C6())return!1;let A=VA().oauthAccount;if(!A)return!1;let B=aI(!1);if(!B)return!1;let Q=A.organizationUuid;if(!Q){if(Q=await Ot6(B),!Q)return!1}let I=await K5.get(`https://api.anthropic.com/api/organizations/${Q}/claude_code_data_sharing`,{headers:{"Content-Type":"application/json","User-Agent":PL,"x-api-key":B}});if(I.status===200){let G=I.data.claude_code_data_sharing_enabled;if(VA().isQualifiedForDataSharing!==G)T0({...VA(),isQualifiedForDataSharing:G}),NX1=!1;return G}return j1("tengu_data_sharing_response_err",{responseStatus:I.status}),!1}catch(A){return m1(A),!1}}function Et(){if(process.env.IS_DEMO)return!1;return VA().isQualifiedForDataSharing??!1}function Tt6(){NX1=!0;let A=VA();if(A.initialDataSharingMessageSeen)return;T0({...A,initialDataSharingMessageSeen:!0})}function EW2(){if(NX1)return!1;return Et()}function Pt6(){let A=$1();return ma1.useEffect(()=>{Tt6()},[]),P7.createElement(m,{flexDirection:"column",gap:1,paddingLeft:1,paddingTop:1},P7.createElement(y,{color:A.text},"Your organization has enrolled in the"," ",P7.createElement($7,{url:"https://support.anthropic.com/en/articles/11174108-about-the-development-partner-program"},"Development Partner Program"),". Your Claude Code sessions are being shared with Anthropic to improve our services including model training. Questions? Contact your account"," ",P7.createElement($7,{url:"https://console.anthropic.com/settings/members"},"admin"),"."))}function UW2(A){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX)return!1;return[DU.firstParty,hX.firstParty,CP.firstParty,XP.firstParty].includes(A)}function St6(){let A=$1();return ma1.useEffect(()=>{NX1=!0},[]),P7.createElement(m,{flexDirection:"column",gap:1,paddingLeft:1,paddingTop:1},P7.createElement(y,{color:A.text},"Enrolled in"," ",P7.createElement($7,{url:"https://support.anthropic.com/en/articles/11174108-about-the-development-partner-program"},"Development Partner Program")))}function NW2(){return VA().initialDataSharingMessageSeen?P7.createElement(St6,null):P7.createElement(Pt6,null)}function _t6(A,B){return{inputTokens:A.inputTokens+B.inputTokens,outputTokens:A.outputTokens+B.outputTokens,promptCacheWriteTokens:A.promptCacheWriteTokens+B.promptCacheWriteTokens,promptCacheReadTokens:A.promptCacheReadTokens+B.promptCacheReadTokens}}var $W2={[tX(Kl.firstParty)]:{inputTokens:0.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:0.08},[tX(XP.firstParty)]:{inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3},[tX(CP.firstParty)]:{inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3},[tX(DU.firstParty)]:{inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5},[tX(hX.firstParty)]:{inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3},...!1},jt6={inputTokens:-0.9,outputTokens:0,promptCacheReadTokens:-0.09,promptCacheWriteTokens:-1.125};function qW2(A,B){return B.input_tokens/1e6*A.inputTokens+B.output_tokens/1e6*A.outputTokens+(B.cache_read_input_tokens??0)/1e6*A.promptCacheReadTokens+(B.cache_creation_input_tokens??0)/1e6*A.promptCacheWriteTokens}function MW2(A,B){let Q=$W2[tX(A)];if(!Q)j1("tengu_unknown_model_cost",{model:A,shortName:tX(A)}),bU1(),Q=$W2[tX($j1)];let I=qW2(Q,B),G=I;if(Et()&&UW2(A)){let D=_t6(Q,jt6);j1("tengu_model_cost_discount",{model:A}),G=qW2(D,B)}return{stickerCostUSD:I,finalCostUSD:G}}function da1({model:A,messagesLength:B,temperature:Q,betas:I}){j1("tengu_api_query",{model:A,messagesLength:B,temperature:Q,provider:gX(),...I?.length?{betas:I.join(",")}:{}})}function ua1({error:A,model:B,messageCount:Q,messageTokens:I,durationMs:G,durationMsIncludingRetries:D,attempt:Z,requestId:Y}){let W=A instanceof Error?A.message:String(A),F=A instanceof I5?String(A.status):void 0;m1(A),j1("tengu_api_error",{model:B,error:W,status:F,messageCount:Q,messageTokens:I,durationMs:G,durationMsIncludingRetries:D,attempt:Z,provider:gX(),requestId:Y||void 0})}function yt6({model:A,messageCount:B,messageTokens:Q,usage:I,durationMs:G,durationMsIncludingRetries:D,attempt:Z,ttftMs:Y,requestId:W,stopReason:F,stickerCostUSD:J,costUSD:C}){j1("tengu_api_success",{model:A,messageCount:B,messageTokens:Q,inputTokens:I.input_tokens,outputTokens:I.output_tokens,cachedInputTokens:I.cache_read_input_tokens??0,uncachedInputTokens:I.cache_creation_input_tokens??0,durationMs:G,durationMsIncludingRetries:D,attempt:Z,ttftMs:Y,provider:gX(),requestId:W||void 0,stop_reason:F||void 0,stickerCostUSD:J,costUSD:C})}function kt6(A,B,Q){let{stickerCostUSD:I,finalCostUSD:G}=MW2(A.model,A.usage),D=Date.now()-B,Z=Date.now()-Q;return wW2(G,Z,D,A.usage,A.model),{stickerCostUSD:I,costUSD:G,durationMs:D,durationMsIncludingRetries:Z}}function pa1({response:A,start:B,startIncludingRetries:Q,attempt:I,messageCount:G,messageTokens:D,requestId:Z}){let{stickerCostUSD:Y,costUSD:W,durationMs:F,durationMsIncludingRetries:J}=kt6(A,B,Q);return yt6({model:A.model,messageCount:G,messageTokens:D,usage:A.usage,durationMs:F,durationMsIncludingRetries:J,attempt:I,ttftMs:A.ttftMs,requestId:Z,stopReason:A.stop_reason,stickerCostUSD:Y,costUSD:W}),{costUSD:W,durationMs:F,durationMsIncludingRetries:J}}var xt6=10,ft6=3,vt6=500,ca1="Repeated 529 Overloaded errors";class xR extends Error{originalError;retryContext;constructor(A,B){let Q=A instanceof Error?A.message:String(A);super(Q);this.originalError=A;this.retryContext=B;if(this.name="RetryError",A instanceof Error&&A.stack)this.stack=A.stack}}async function Ut(A,B,Q){let I=Q.maxRetries??xt6,G,D={model:Q.model},Z=0,Y=null;for(let W=1;W<=I+1;W++)try{if(Y===null||G instanceof I5&&G.status===401)Y=await A();return await B(Y,W,D)}catch(F){if(G=F,gt6(F)&&!C6()&&k31(Q.model)){if(Z++,Z>=ft6)throw j1("tengu_api_custom_529_overloaded_error",{}),new xR(new Error(ca1),D)}if(W>I||!(F instanceof I5)||!ht6(F))throw new xR(F,D);if(F instanceof I5){let X=LW2(F);if(X){let{inputTokens:V,contextLimit:K}=X,U=1000,N=Math.max(0,K-V-1000),q=Math.max(1,N);D.maxTokensOverride=q,j1("tengu_max_tokens_context_overflow_adjustment",{inputTokens:V,contextLimit:K,adjustedMaxTokens:q,attempt:W});continue}}let J=(F.headers?.["retry-after"]||F.headers?.get?.("retry-after"))??null,C=bt6(W,J);if(Q.showErrors){if(console.error(` ⎿ ${MA.red(`API ${F.name} (${F.message}) · Retrying in ${Math.round(C/1000)} seconds… (attempt ${W}/${I})`)}`),F.cause instanceof Error)console.error(` ⎿ ${MA.red(`${F.cause.name} (${F.cause.message})${"code"in F.cause?` (${F.cause.code})`:""}`)}`)}j1("tengu_api_retry",{attempt:W,delayMs:C,error:F.message,status:F.status,provider:gX()}),await new Promise((X)=>setTimeout(X,C))}throw new xR(G,D)}function bt6(A,B){if(B){let G=parseInt(B,10);if(!isNaN(G))return G*1000}let Q=Math.min(vt6*Math.pow(2,A-1),32000),I=Math.random()*0.25*Q;return Q+I}function LW2(A){if(A.status!==400||!A.message)return;if(!A.message.includes("input length and `max_tokens` exceed context limit"))return;let B=/input length and `max_tokens` exceed context limit: (\d+) \+ (\d+) > (\d+)/,Q=A.message.match(B);if(!Q||Q.length!==4)return;if(!Q[1]||!Q[2]||!Q[3]){m1(new Error("Unable to parse max_tokens from max_tokens exceed context limit error message"));return}let I=parseInt(Q[1],10),G=parseInt(Q[2],10),D=parseInt(Q[3],10);if(isNaN(I)||isNaN(G)||isNaN(D))return;return{inputTokens:I,maxTokens:G,contextLimit:D}}function gt6(A){if(!(A instanceof I5))return!1;return A.status===529||(A.message?.includes('"type":"overloaded_error"')??!1)}function ht6(A){if(A.message?.includes('"type":"overloaded_error"'))return!0;if(LW2(A))return!0;let B=A.headers?.get("x-should-retry");if(B==="true"&&!C6())return!0;if(B==="false")return!1;if(A instanceof PU)return!0;if(!A.status)return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!C6();if(A.status===401)return LyA(),!0;if(A.status&&A.status>=500)return!0;return!1}function MX1(A){let B={},Q=process.env.CLAUDE_CODE_EXTRA_BODY,I={};if(Q)try{let D=D8(Q);if(D&&typeof D==="object"&&!Array.isArray(D))I=D;else kX(`CLAUDE_CODE_EXTRA_BODY env var must be a JSON object, but was given ${Q}`)}catch(D){kX(`Error parsing CLAUDE_CODE_EXTRA_BODY: ${D instanceof Error?D.message:String(D)}`)}let G={...B,...I};if(A&&A.length>0)if(G.anthropic_beta&&Array.isArray(G.anthropic_beta)){let D=G.anthropic_beta,Z=A.filter((Y)=>!D.includes(Y));G.anthropic_beta=[...D,...Z]}else G.anthropic_beta=A;return G}var bY="API Error",$t="Prompt is too long",la1="Credit balance is too low",LX1="Invalid API key · Please run /login",ia1="Claude AI usage limit reached",na1="Repeated server overload with Opus model",_Y="(no content)",RX1="OAuth token revoked · Please run /login",a_=!JP(process.env.DISABLE_PROMPT_CACHING),OW2=1,Nt="Opus is experiencing high load, please use /model to switch to Sonnet";function rr(){return{user_id:pP()}}async function TW2(A,B){if(B)return!0;try{let Q=await GU();return await Ut(()=>kV({apiKey:A,maxRetries:3,model:eH(),isNonInteractiveSession:B}),async(I)=>{let G=eH(),D=[{role:"user",content:"test"}];return await I.beta.messages.create({model:G,max_tokens:1,messages:D,temperature:0,...Q.length>0?{betas:Q}:{},metadata:rr(),...MX1()}),!0},{maxRetries:2,showErrors:!1,model:eH()}),!0}catch(Q){let I=Q;if(Q instanceof xR)I=Q.originalError;if(m1(I),I instanceof Error&&I.message.includes('{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}'))return!1;throw I}}async function mt6(A){let B=Date.now(),Q,I=null;for await(let D of A)if(D.type==="message_start")Q=Date.now()-B,I={cache_read_input_tokens:D.message.usage.cache_read_input_tokens,cache_creation_input_tokens:D.message.usage.cache_creation_input_tokens};let G=await A.finalMessage();return{...G,ttftMs:Q,usage:{...G.usage,cache_read_input_tokens:G.usage.cache_read_input_tokens??I?.cache_read_input_tokens??0,cache_creation_input_tokens:G.usage.cache_creation_input_tokens??I?.cache_creation_input_tokens??0}}}function dt6(A,B=!1){if(B)if(typeof A.message.content==="string")return{role:"user",content:[{type:"text",text:A.message.content,...a_?{cache_control:{type:"ephemeral"}}:{}}]};else return{role:"user",content:A.message.content.map((Q,I)=>({...Q,...I===A.message.content.length-1?a_?{cache_control:{type:"ephemeral"}}:{}:{}}))};return{role:"user",content:A.message.content}}function ut6(A,B=!1){if(B)if(typeof A.message.content==="string")return{role:"assistant",content:[{type:"text",text:A.message.content,...a_?{cache_control:{type:"ephemeral"}}:{}}]};else return{role:"assistant",content:A.message.content.map((Q,I)=>({...Q,...I===A.message.content.length-1&&Q.type!=="thinking"&&Q.type!=="redacted_thinking"?a_?{cache_control:{type:"ephemeral"}}:{}:{}}))};return{role:"assistant",content:A.message.content}}async function qt(A,B,Q,I,G,D){return sr(Hp1(A,()=>PW2(A,B,Q,I,G,D)))}async function*OX1(A,B,Q,I,G,D){return yield*Hp1(A,()=>PW2(A,B,Q,I,G,D))}async function*PW2(A,B,Q,I,G,D){if(!C6()&&(await Az("tengu-off-switch",{activated:!1})).activated&&k31(D.model))return j1("tengu_off_switch_query",{}),qX1(new Error(Nt),D.model);let[Z,Y]=await Promise.all([Promise.all(I.map((f)=>Tu0(f,{getToolPermissionContext:D.getToolPermissionContext,tools:I}))),yH(D.model)]);if(D.prependCLISysprompt)Pu0(B),B=[y70(),...B];let W=SW2(B),F=a_&&Y.length>0,J=D.temperature??OW2,C=wC(A);da1({model:D.model,messagesLength:JSON.stringify([...W,...C,...Z,...D.extraToolSchemas??[]]).length,temperature:J,betas:F?Y:[]});let X=Date.now(),V=Date.now(),K=0,U=void 0,N=void 0,q=(f)=>{let n=f.maxTokensOverride?Math.min(Q,f.maxTokensOverride-1):Q,g;if(!JP(process.env.DISABLE_INTERLEAVED_THINKING)&&eD()==="bedrock"&&[DU.bedrock,hX.bedrock].includes(f.model))g=MX1([u61]);else g=MX1();let Y1=Q>0?{budget_tokens:n,type:"enabled"}:void 0,r=f?.maxTokensOverride||Math.max(Q+1,lt6(D.model));return{model:D.model,messages:pt6(C),temperature:J,system:W,tools:[...Z,...D.extraToolSchemas??[]],tool_choice:D.toolChoice,...F?{betas:Y}:{},metadata:rr(),max_tokens:r,thinking:Y1,...g}},M=null;try{fu0().catch((f)=>{m1(f)}),U=await Ut(()=>kV({maxRetries:0,model:D.model,isNonInteractiveSession:D.isNonInteractiveSession}),async(f,n,g)=>{return K=n,V=Date.now(),f.beta.messages.stream(q(g),{signal:G})},{showErrors:!D.isNonInteractiveSession,model:D.model});try{for await(let f of U){if(f.type==="message_start"&&f.message?.usage)M={cache_read_input_tokens:f.message.usage.cache_read_input_tokens,cache_creation_input_tokens:f.message.usage.cache_creation_input_tokens};yield{type:"stream_event",event:f}}N=await U.finalMessage(),N={...N,usage:{...N.usage,cache_read_input_tokens:N.usage.cache_read_input_tokens??M?.cache_read_input_tokens??0,cache_creation_input_tokens:N.usage.cache_creation_input_tokens??M?.cache_creation_input_tokens??0}}}catch(f){if(f instanceof QI)throw f;m1(f),j1("tengu_streaming_error_fallback",{error:f instanceof Error?f.message:String(f),model:D.model}),N=await Ut(()=>kV({maxRetries:0,model:D.model,isNonInteractiveSession:D.isNonInteractiveSession}),async(g,Y1,r)=>{return K=Y1,await g.beta.messages.create(q(r))},{showErrors:!D.isNonInteractiveSession,model:D.model})}}catch(f){let n=f,g=D.model;if(f instanceof xR)n=f.originalError,g=f.retryContext.model;return ua1({error:n,model:g,messageCount:C.length,messageTokens:EN(C),durationMs:Date.now()-V,durationMsIncludingRetries:Date.now()-X,attempt:K,requestId:U?.request_id}),qX1(n,g)}if(!N||!du0(N)){let f=uu0(N);return qX1(new Error(`Failed to get response from API${f?` (${f})`:""}`),D.model)}let{costUSD:R,durationMs:T}=pa1({response:N,start:V,startIncludingRetries:X,attempt:K,messageCount:C.length,messageTokens:EN(C),requestId:U?.request_id}),O=_W2(N);if(O)return O;return{message:{...N,content:mF1(N.content)},costUSD:R,durationMs:T,type:"assistant",uuid:RW2(),timestamp:new Date().toISOString()}}function qX1(A,B){if(A instanceof Error&&A.message.includes(ca1))return zC({content:na1});if(A instanceof Error&&A.message.includes(Nt))return zC({content:Nt});if(A instanceof I5&&A.status===429&&C6()){let Q=A.headers?.get?.("anthropic-ratelimit-unified-reset"),I=Number(Q)||0,G=`${ia1}|${I}`;return zC({content:G})}if(A instanceof Error&&A.message.includes("prompt is too long"))return zC({content:$t});if(A instanceof Error&&A.message.includes("Your credit balance is too low"))return zC({content:la1});if(A instanceof Error&&A.message.toLowerCase().includes("x-api-key"))return zC({content:LX1});if(A instanceof I5&&A.status===403&&A.message.includes("OAuth token has been revoked"))return zC({content:RX1});if(process.env.CLAUDE_CODE_USE_BEDROCK&&A instanceof Error&&A.message.toLowerCase().includes("model id"))return zC({content:`${bY} (${B}): ${A.message}`});if(A instanceof Error)return zC({content:`${bY}: ${A.message}`});return zC({content:bY})}function pt6(A){return A.map((B,Q)=>{return B.type==="user"?dt6(B,Q>A.length-3):ut6(B,Q>A.length-3)})}async function ct6({systemPrompt:A,userPrompt:B,assistantPrompt:Q,signal:I,isNonInteractiveSession:G,temperature:D=0,enablePromptCaching:Z}){let Y=eH(),W=[{role:"user",content:B},...Q?[{role:"assistant",content:Q}]:[]],F=SW2(A,Z&&a_),J=Z?[...F,...W]:[{systemPrompt:A},...W];da1({model:Y,messagesLength:JSON.stringify(J).length,temperature:D});let C=0,X=Date.now(),V=Date.now(),K,U,N=await GU();try{K=await Ut(()=>kV({maxRetries:0,model:Y,isNonInteractiveSession:G}),async(S,f,n)=>{return C=f,X=Date.now(),U=S.beta.messages.stream({model:n.model,max_tokens:512,messages:W,system:F,temperature:D,metadata:rr(),stream:!0,...N.length>0?{betas:N}:{},...MX1()},{signal:I}),await mt6(U)},{showErrors:!1,model:Y})}catch(S){let f=S,n=Y;if(S instanceof xR)f=S.originalError,n=S.retryContext.model;return ua1({error:f,model:n,messageCount:Q?2:1,durationMs:Date.now()-X,durationMsIncludingRetries:Date.now()-V,attempt:C,requestId:U?.request_id}),qX1(f,n)}let q=_W2(K);if(q)return q;let{costUSD:M,durationMs:R}=pa1({response:K,start:X,startIncludingRetries:V,attempt:C,messageCount:Q?2:1,requestId:U?.request_id}),T=Z?{...K,content:mF1(K.content)}:{...K,content:mF1(K.content),usage:{...K.usage,cache_read_input_tokens:0,cache_creation_input_tokens:0}};return{durationMs:R,message:T,costUSD:M,uuid:RW2(),type:"assistant",timestamp:new Date().toISOString()}}function SW2(A,B=a_){return Xp1(A).map((Q)=>({type:"text",text:Q,...B?{cache_control:{type:"ephemeral"}}:{}}))}async function KD({systemPrompt:A=[],userPrompt:B,assistantPrompt:Q,enablePromptCaching:I=!1,signal:G,isNonInteractiveSession:D,temperature:Z=0}){return await Kp1([M2({content:A.map((Y)=>({type:"text",text:Y}))}),M2({content:B})],()=>ct6({systemPrompt:A,userPrompt:B,assistantPrompt:Q,signal:G,isNonInteractiveSession:D,temperature:Z,enablePromptCaching:I}))}function lt6(A){if(A.includes("3-5"))return 8192;if(A.includes("haiku"))return 8192;if(A.includes("opus"))return 4096;return 20000}function _W2(A){if(A.stop_reason!=="refusal")return;return j1("tengu_refusal_api_response",{}),zC({content:`${bY}: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`})}var h4=F1(S1(),1);import{EOL as Ke6}from"os";import{dirname as He6,extname as ze6,isAbsolute as we6,relative as Bs1,resolve as Ee6,sep as Ue6}from"path";var Y4=F1(S1(),1);function gY(A,B){return A.flatMap((Q,I)=>I?[B(I),Q]:[Q])}var L9=F1(S1(),1);function sV(){}sV.prototype={diff:function A(B,Q){var I,G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},D=G.callback;if(typeof G==="function")D=G,G={};var Z=this;function Y(T){if(T=Z.postProcess(T,G),D)return setTimeout(function(){D(T)},0),!0;else return T}B=this.castInput(B,G),Q=this.castInput(Q,G),B=this.removeEmpty(this.tokenize(B,G)),Q=this.removeEmpty(this.tokenize(Q,G));var W=Q.length,F=B.length,J=1,C=W+F;if(G.maxEditLength!=null)C=Math.min(C,G.maxEditLength);var X=(I=G.timeout)!==null&&I!==void 0?I:1/0,V=Date.now()+X,K=[{oldPos:-1,lastComponent:void 0}],U=this.extractCommon(K[0],Q,B,0,G);if(K[0].oldPos+1>=F&&U+1>=W)return Y(jW2(Z,K[0].lastComponent,Q,B,Z.useLongestToken));var N=-1/0,q=1/0;function M(){for(var T=Math.max(N,-J);T<=Math.min(q,J);T+=2){var O=void 0,S=K[T-1],f=K[T+1];if(S)K[T-1]=void 0;var n=!1;if(f){var g=f.oldPos-T;n=f&&0<=g&&g<W}var Y1=S&&S.oldPos+1<F;if(!n&&!Y1){K[T]=void 0;continue}if(!Y1||n&&S.oldPos<f.oldPos)O=Z.addToPath(f,!0,!1,0,G);else O=Z.addToPath(S,!1,!0,1,G);if(U=Z.extractCommon(O,Q,B,T,G),O.oldPos+1>=F&&U+1>=W)return Y(jW2(Z,O.lastComponent,Q,B,Z.useLongestToken));else{if(K[T]=O,O.oldPos+1>=F)q=Math.min(q,T-1);if(U+1>=W)N=Math.max(N,T+1)}}J++}if(D)(function T(){setTimeout(function(){if(J>C||Date.now()>V)return D();if(!M())T()},0)})();else while(J<=C&&Date.now()<=V){var R=M();if(R)return R}},addToPath:function A(B,Q,I,G,D){var Z=B.lastComponent;if(Z&&!D.oneChangePerToken&&Z.added===Q&&Z.removed===I)return{oldPos:B.oldPos+G,lastComponent:{count:Z.count+1,added:Q,removed:I,previousComponent:Z.previousComponent}};else return{oldPos:B.oldPos+G,lastComponent:{count:1,added:Q,removed:I,previousComponent:Z}}},extractCommon:function A(B,Q,I,G,D){var Z=Q.length,Y=I.length,W=B.oldPos,F=W-G,J=0;while(F+1<Z&&W+1<Y&&this.equals(I[W+1],Q[F+1],D))if(F++,W++,J++,D.oneChangePerToken)B.lastComponent={count:1,previousComponent:B.lastComponent,added:!1,removed:!1};if(J&&!D.oneChangePerToken)B.lastComponent={count:J,previousComponent:B.lastComponent,added:!1,removed:!1};return B.oldPos=W,F},equals:function A(B,Q,I){if(I.comparator)return I.comparator(B,Q);else return B===Q||I.ignoreCase&&B.toLowerCase()===Q.toLowerCase()},removeEmpty:function A(B){var Q=[];for(var I=0;I<B.length;I++)if(B[I])Q.push(B[I]);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 jW2(A,B,Q,I,G){var D=[],Z;while(B)D.push(B),Z=B.previousComponent,delete B.previousComponent,B=Z;D.reverse();var Y=0,W=D.length,F=0,J=0;for(;Y<W;Y++){var C=D[Y];if(!C.removed){if(!C.added&&G){var X=Q.slice(F,F+C.count);X=X.map(function(V,K){var U=I[J+K];return U.length>V.length?U:V}),C.value=A.join(X)}else C.value=A.join(Q.slice(F,F+C.count));if(F+=C.count,!C.added)J+=C.count}else C.value=A.join(I.slice(J,J+C.count)),J+=C.count}return D}var wj8=new sV;function yW2(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 kW2(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 sa1(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 ra1(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 Mt(A,B){return sa1(A,B,"")}function TX1(A,B){return ra1(A,B,"")}function xW2(A,B){return B.slice(0,it6(A,B))}function it6(A,B){var Q=0;if(A.length>B.length)Q=A.length-B.length;var I=B.length;if(A.length<B.length)I=A.length;var G=Array(I),D=0;G[0]=0;for(var Z=1;Z<I;Z++){if(B[Z]==B[D])G[Z]=G[D];else G[Z]=D;while(D>0&&B[Z]!=B[D])D=G[D];if(B[Z]==B[D])D++}D=0;for(var Y=Q;Y<A.length;Y++){while(D>0&&A[Y]!=B[D])D=G[D];if(A[Y]==B[D])D++}return D}var PX1="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}",nt6=new RegExp("[".concat(PX1,"]+|\\s+|[^").concat(PX1,"]"),"ug"),SX1=new sV;SX1.equals=function(A,B,Q){if(Q.ignoreCase)A=A.toLowerCase(),B=B.toLowerCase();return A.trim()===B.trim()};SX1.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(D){return D.segment})}else Q=A.match(nt6)||[];var I=[],G=null;return Q.forEach(function(D){if(/\s/.test(D))if(G==null)I.push(D);else I.push(I.pop()+D);else if(/\s/.test(G))if(I[I.length-1]==G)I.push(I.pop()+D);else I.push(G+D);else I.push(D);G=D}),I};SX1.join=function(A){return A.map(function(B,Q){if(Q==0)return B;else return B.replace(/^\s+/,"")}).join("")};SX1.postProcess=function(A,B){if(!A||B.oneChangePerToken)return A;var Q=null,I=null,G=null;if(A.forEach(function(D){if(D.added)I=D;else if(D.removed)G=D;else{if(I||G)fW2(Q,G,I,D);Q=D,I=null,G=null}}),I||G)fW2(Q,G,I,null);return A};function fW2(A,B,Q,I){if(B&&Q){var G=B.value.match(/^\s*/)[0],D=B.value.match(/\s*$/)[0],Z=Q.value.match(/^\s*/)[0],Y=Q.value.match(/\s*$/)[0];if(A){var W=yW2(G,Z);A.value=ra1(A.value,Z,W),B.value=Mt(B.value,W),Q.value=Mt(Q.value,W)}if(I){var F=kW2(D,Y);I.value=sa1(I.value,Y,F),B.value=TX1(B.value,F),Q.value=TX1(Q.value,F)}}else if(Q){if(A)Q.value=Q.value.replace(/^\s*/,"");if(I)I.value=I.value.replace(/^\s*/,"")}else if(A&&I){var J=I.value.match(/^\s*/)[0],C=B.value.match(/^\s*/)[0],X=B.value.match(/\s*$/)[0],V=yW2(J,C);B.value=Mt(B.value,V);var K=kW2(Mt(J,V),X);B.value=TX1(B.value,K),I.value=sa1(I.value,J,K),A.value=ra1(A.value,J,J.slice(0,J.length-K.length))}else if(I){var U=I.value.match(/^\s*/)[0],N=B.value.match(/\s*$/)[0],q=xW2(N,U);B.value=TX1(B.value,q)}else if(A){var M=A.value.match(/\s*$/)[0],R=B.value.match(/^\s*/)[0],T=xW2(M,R);B.value=Mt(B.value,T)}}var hW2=new sV;hW2.tokenize=function(A){var B=new RegExp("(\\r?\\n)|[".concat(PX1,"]+|[^\\S\\n\\r]+|[^").concat(PX1,"]"),"ug");return A.match(B)||[]};function mW2(A,B,Q){return hW2.diff(A,B,Q)}var _X1=new sV;_X1.tokenize=function(A,B){if(B.stripTrailingCr)A=A.replace(/\r\n/g,`
1513
+ `);let B=E9();_6({...B,lastCost:zH(),lastAPIDuration:Uk(),lastDuration:fU1(),lastLinesAdded:p21(),lastLinesRemoved:c21(),lastTotalInputTokens:rGA(),lastTotalOutputTokens:oGA(),lastTotalCacheCreationInputTokens:eGA(),lastTotalCacheReadInputTokens:tGA(),lastSessionId:Q5})};return process.on("exit",A),()=>{process.off("exit",A)}},[])}function Rt6(A,B){return Math.round(A*B)/B}function wW2(A,B,Q,I,G){sGA(A,B,Q,I,G),KW2.add(A,{model:G}),wt.add(I.input_tokens,{type:"input",model:G}),wt.add(I.output_tokens,{type:"output",model:G}),wt.add(I.cache_read_input_tokens??0,{type:"cacheRead",model:G}),wt.add(I.cache_creation_input_tokens??0,{type:"cacheCreation",model:G})}var P7=F1(S1(),1);var ma1=F1(S1(),1);var NX1=!1,Ot6=b0(async function(A){let B=await kV({apiKey:A,maxRetries:0,isNonInteractiveSession:!0}),{response:Q}=await B.models.list({limit:1}).withResponse();return Q.headers.get("anthropic-organization-id")});async function $X1(){try{if(C6())return!1;let A=VA().oauthAccount;if(!A)return!1;let B=aI(!1);if(!B)return!1;let Q=A.organizationUuid;if(!Q){if(Q=await Ot6(B),!Q)return!1}let I=await K5.get(`https://api.anthropic.com/api/organizations/${Q}/claude_code_data_sharing`,{headers:{"Content-Type":"application/json","User-Agent":PL,"x-api-key":B}});if(I.status===200){let G=I.data.claude_code_data_sharing_enabled;if(VA().isQualifiedForDataSharing!==G)T0({...VA(),isQualifiedForDataSharing:G}),NX1=!1;return G}return j1("tengu_data_sharing_response_err",{responseStatus:I.status}),!1}catch(A){return m1(A),!1}}function Et(){if(process.env.IS_DEMO)return!1;return VA().isQualifiedForDataSharing??!1}function Tt6(){NX1=!0;let A=VA();if(A.initialDataSharingMessageSeen)return;T0({...A,initialDataSharingMessageSeen:!0})}function EW2(){if(NX1)return!1;return Et()}function Pt6(){let A=$1();return ma1.useEffect(()=>{Tt6()},[]),P7.createElement(m,{flexDirection:"column",gap:1,paddingLeft:1,paddingTop:1},P7.createElement(y,{color:A.text},"Your organization has enrolled in the"," ",P7.createElement($7,{url:"https://support.anthropic.com/en/articles/11174108-about-the-development-partner-program"},"Development Partner Program"),". Your Claude Code sessions are being shared with Anthropic to improve our services including model training. Questions? Contact your account"," ",P7.createElement($7,{url:"https://console.anthropic.com/settings/members"},"admin"),"."))}function UW2(A){if(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX)return!1;return[DU.firstParty,hX.firstParty,CP.firstParty,XP.firstParty].includes(A)}function St6(){let A=$1();return ma1.useEffect(()=>{NX1=!0},[]),P7.createElement(m,{flexDirection:"column",gap:1,paddingLeft:1,paddingTop:1},P7.createElement(y,{color:A.text},"Enrolled in"," ",P7.createElement($7,{url:"https://support.anthropic.com/en/articles/11174108-about-the-development-partner-program"},"Development Partner Program")))}function NW2(){return VA().initialDataSharingMessageSeen?P7.createElement(St6,null):P7.createElement(Pt6,null)}function _t6(A,B){return{inputTokens:A.inputTokens+B.inputTokens,outputTokens:A.outputTokens+B.outputTokens,promptCacheWriteTokens:A.promptCacheWriteTokens+B.promptCacheWriteTokens,promptCacheReadTokens:A.promptCacheReadTokens+B.promptCacheReadTokens}}var $W2={[tX(Kl.firstParty)]:{inputTokens:0.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:0.08},[tX(XP.firstParty)]:{inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3},[tX(CP.firstParty)]:{inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3},[tX(DU.firstParty)]:{inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5},[tX(hX.firstParty)]:{inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3},...!1},jt6={inputTokens:-0.9,outputTokens:0,promptCacheReadTokens:-0.09,promptCacheWriteTokens:-1.125};function qW2(A,B){return B.input_tokens/1e6*A.inputTokens+B.output_tokens/1e6*A.outputTokens+(B.cache_read_input_tokens??0)/1e6*A.promptCacheReadTokens+(B.cache_creation_input_tokens??0)/1e6*A.promptCacheWriteTokens}function MW2(A,B){let Q=$W2[tX(A)];if(!Q)j1("tengu_unknown_model_cost",{model:A,shortName:tX(A)}),bU1(),Q=$W2[tX($j1)];let I=qW2(Q,B),G=I;if(Et()&&UW2(A)){let D=_t6(Q,jt6);j1("tengu_model_cost_discount",{model:A}),G=qW2(D,B)}return{stickerCostUSD:I,finalCostUSD:G}}function da1({model:A,messagesLength:B,temperature:Q,betas:I}){j1("tengu_api_query",{model:A,messagesLength:B,temperature:Q,provider:gX(),...I?.length?{betas:I.join(",")}:{}})}function ua1({error:A,model:B,messageCount:Q,messageTokens:I,durationMs:G,durationMsIncludingRetries:D,attempt:Z,requestId:Y}){let W=A instanceof Error?A.message:String(A),F=A instanceof I5?String(A.status):void 0;m1(A),j1("tengu_api_error",{model:B,error:W,status:F,messageCount:Q,messageTokens:I,durationMs:G,durationMsIncludingRetries:D,attempt:Z,provider:gX(),requestId:Y||void 0})}function yt6({model:A,messageCount:B,messageTokens:Q,usage:I,durationMs:G,durationMsIncludingRetries:D,attempt:Z,ttftMs:Y,requestId:W,stopReason:F,stickerCostUSD:J,costUSD:C}){j1("tengu_api_success",{model:A,messageCount:B,messageTokens:Q,inputTokens:I.input_tokens,outputTokens:I.output_tokens,cachedInputTokens:I.cache_read_input_tokens??0,uncachedInputTokens:I.cache_creation_input_tokens??0,durationMs:G,durationMsIncludingRetries:D,attempt:Z,ttftMs:Y,provider:gX(),requestId:W||void 0,stop_reason:F||void 0,stickerCostUSD:J,costUSD:C})}function kt6(A,B,Q){let{stickerCostUSD:I,finalCostUSD:G}=MW2(A.model,A.usage),D=Date.now()-B,Z=Date.now()-Q;return wW2(G,Z,D,A.usage,A.model),{stickerCostUSD:I,costUSD:G,durationMs:D,durationMsIncludingRetries:Z}}function pa1({response:A,start:B,startIncludingRetries:Q,attempt:I,messageCount:G,messageTokens:D,requestId:Z}){let{stickerCostUSD:Y,costUSD:W,durationMs:F,durationMsIncludingRetries:J}=kt6(A,B,Q);return yt6({model:A.model,messageCount:G,messageTokens:D,usage:A.usage,durationMs:F,durationMsIncludingRetries:J,attempt:I,ttftMs:A.ttftMs,requestId:Z,stopReason:A.stop_reason,stickerCostUSD:Y,costUSD:W}),{costUSD:W,durationMs:F,durationMsIncludingRetries:J}}var xt6=10,ft6=3,vt6=500,ca1="Repeated 529 Overloaded errors";class xR extends Error{originalError;retryContext;constructor(A,B){let Q=A instanceof Error?A.message:String(A);super(Q);this.originalError=A;this.retryContext=B;if(this.name="RetryError",A instanceof Error&&A.stack)this.stack=A.stack}}async function Ut(A,B,Q){let I=Q.maxRetries??xt6,G,D={model:Q.model},Z=0,Y=null;for(let W=1;W<=I+1;W++)try{if(Y===null||G instanceof I5&&G.status===401)Y=await A();return await B(Y,W,D)}catch(F){if(G=F,gt6(F)&&!C6()&&k31(Q.model)){if(Z++,Z>=ft6)throw j1("tengu_api_custom_529_overloaded_error",{}),new xR(new Error(ca1),D)}if(W>I||!(F instanceof I5)||!ht6(F))throw new xR(F,D);if(F instanceof I5){let X=LW2(F);if(X){let{inputTokens:V,contextLimit:K}=X,U=1000,N=Math.max(0,K-V-1000),q=Math.max(1,N);D.maxTokensOverride=q,j1("tengu_max_tokens_context_overflow_adjustment",{inputTokens:V,contextLimit:K,adjustedMaxTokens:q,attempt:W});continue}}let J=(F.headers?.["retry-after"]||F.headers?.get?.("retry-after"))??null,C=bt6(W,J);if(Q.showErrors){if(console.error(` ⎿ ${MA.red(`API ${F.name} (${F.message}) · Retrying in ${Math.round(C/1000)} seconds… (attempt ${W}/${I})`)}`),F.cause instanceof Error)console.error(` ⎿ ${MA.red(`${F.cause.name} (${F.cause.message})${"code"in F.cause?` (${F.cause.code})`:""}`)}`)}j1("tengu_api_retry",{attempt:W,delayMs:C,error:F.message,status:F.status,provider:gX()}),await new Promise((X)=>setTimeout(X,C))}throw new xR(G,D)}function bt6(A,B){if(B){let G=parseInt(B,10);if(!isNaN(G))return G*1000}let Q=Math.min(vt6*Math.pow(2,A-1),32000),I=Math.random()*0.25*Q;return Q+I}function LW2(A){if(A.status!==400||!A.message)return;if(!A.message.includes("input length and `max_tokens` exceed context limit"))return;let B=/input length and `max_tokens` exceed context limit: (\d+) \+ (\d+) > (\d+)/,Q=A.message.match(B);if(!Q||Q.length!==4)return;if(!Q[1]||!Q[2]||!Q[3]){m1(new Error("Unable to parse max_tokens from max_tokens exceed context limit error message"));return}let I=parseInt(Q[1],10),G=parseInt(Q[2],10),D=parseInt(Q[3],10);if(isNaN(I)||isNaN(G)||isNaN(D))return;return{inputTokens:I,maxTokens:G,contextLimit:D}}function gt6(A){if(!(A instanceof I5))return!1;return A.status===529||(A.message?.includes('"type":"overloaded_error"')??!1)}function ht6(A){if(A.message?.includes('"type":"overloaded_error"'))return!0;if(LW2(A))return!0;let B=A.headers?.get("x-should-retry");if(B==="true"&&!C6())return!0;if(B==="false")return!1;if(A instanceof PU)return!0;if(!A.status)return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!C6();if(A.status===401)return LyA(),!0;if(A.status&&A.status>=500)return!0;return!1}function MX1(A){let B={},Q=process.env.CLAUDE_CODE_EXTRA_BODY,I={};if(Q)try{let D=D8(Q);if(D&&typeof D==="object"&&!Array.isArray(D))I=D;else kX(`CLAUDE_CODE_EXTRA_BODY env var must be a JSON object, but was given ${Q}`)}catch(D){kX(`Error parsing CLAUDE_CODE_EXTRA_BODY: ${D instanceof Error?D.message:String(D)}`)}let G={...B,...I};if(A&&A.length>0)if(G.anthropic_beta&&Array.isArray(G.anthropic_beta)){let D=G.anthropic_beta,Z=A.filter((Y)=>!D.includes(Y));G.anthropic_beta=[...D,...Z]}else G.anthropic_beta=A;return G}var bY="API Error",$t="Prompt is too long",la1="Credit balance is too low",LX1="Invalid API key · Please run /login",ia1="Claude AI usage limit reached",na1="Repeated server overload with Opus model",_Y="(no content)",RX1="OAuth token revoked · Please run /login",a_=!JP(process.env.DISABLE_PROMPT_CACHING),OW2=1,Nt="Opus is experiencing high load, please use /model to switch to Sonnet";function rr(){return{user_id:pP()}}async function TW2(A,B){if(B)return!0;try{let Q=await GU();return await Ut(()=>kV({apiKey:A,maxRetries:3,model:eH(),isNonInteractiveSession:B}),async(I)=>{let G=eH(),D=[{role:"user",content:"test"}];return await I.beta.messages.create({model:G,max_tokens:1,messages:D,temperature:0,...Q.length>0?{betas:Q}:{},metadata:rr(),...MX1()}),!0},{maxRetries:2,showErrors:!1,model:eH()}),!0}catch(Q){let I=Q;if(Q instanceof xR)I=Q.originalError;if(m1(I),I instanceof Error&&I.message.includes('{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}'))return!1;throw I}}async function mt6(A){let B=Date.now(),Q,I=null;for await(let D of A)if(D.type==="message_start")Q=Date.now()-B,I={cache_read_input_tokens:D.message.usage.cache_read_input_tokens,cache_creation_input_tokens:D.message.usage.cache_creation_input_tokens};let G=await A.finalMessage();return{...G,ttftMs:Q,usage:{...G.usage,cache_read_input_tokens:G.usage.cache_read_input_tokens??I?.cache_read_input_tokens??0,cache_creation_input_tokens:G.usage.cache_creation_input_tokens??I?.cache_creation_input_tokens??0}}}function dt6(A,B=!1){if(B)if(typeof A.message.content==="string")return{role:"user",content:[{type:"text",text:A.message.content,...a_?{cache_control:{type:"ephemeral"}}:{}}]};else return{role:"user",content:A.message.content.map((Q,I)=>({...Q,...I===A.message.content.length-1?a_?{cache_control:{type:"ephemeral"}}:{}:{}}))};return{role:"user",content:A.message.content}}function ut6(A,B=!1){if(B)if(typeof A.message.content==="string")return{role:"assistant",content:[{type:"text",text:A.message.content,...a_?{cache_control:{type:"ephemeral"}}:{}}]};else return{role:"assistant",content:A.message.content.map((Q,I)=>({...Q,...I===A.message.content.length-1&&Q.type!=="thinking"&&Q.type!=="redacted_thinking"?a_?{cache_control:{type:"ephemeral"}}:{}:{}}))};return{role:"assistant",content:A.message.content}}async function qt(A,B,Q,I,G,D){return sr(Hp1(A,()=>PW2(A,B,Q,I,G,D)))}async function*OX1(A,B,Q,I,G,D){return yield*Hp1(A,()=>PW2(A,B,Q,I,G,D))}async function*PW2(A,B,Q,I,G,D){if(!C6()&&(await Az("tengu-off-switch",{activated:!1})).activated&&k31(D.model))return j1("tengu_off_switch_query",{}),qX1(new Error(Nt),D.model);let[Z,Y]=await Promise.all([Promise.all(I.map((f)=>Tu0(f,{getToolPermissionContext:D.getToolPermissionContext,tools:I}))),yH(D.model)]);if(D.prependCLISysprompt)Pu0(B),B=[y70(),...B];let W=SW2(B),F=a_&&Y.length>0,J=D.temperature??OW2,C=wC(A);da1({model:D.model,messagesLength:JSON.stringify([...W,...C,...Z,...D.extraToolSchemas??[]]).length,temperature:J,betas:F?Y:[]});let X=Date.now(),V=Date.now(),K=0,U=void 0,N=void 0,q=(f)=>{let n=f.maxTokensOverride?Math.min(Q,f.maxTokensOverride-1):Q,g;if(!JP(process.env.DISABLE_INTERLEAVED_THINKING)&&eD()==="bedrock"&&[DU.bedrock,hX.bedrock].includes(f.model))g=MX1([u61]);else g=MX1();let Y1=Q>0?{budget_tokens:n,type:"enabled"}:void 0,r=f?.maxTokensOverride||Math.max(Q+1,lt6(D.model));return{model:D.model,messages:pt6(C),temperature:J,system:W,tools:[...Z,...D.extraToolSchemas??[]],tool_choice:D.toolChoice,...F?{betas:Y}:{},metadata:rr(),max_tokens:r,thinking:Y1,...g}},M=null;try{fu0().catch((f)=>{m1(f)}),U=await Ut(()=>kV({maxRetries:0,model:D.model,isNonInteractiveSession:D.isNonInteractiveSession}),async(f,n,g)=>{return K=n,V=Date.now(),f.beta.messages.stream(q(g),{signal:G})},{showErrors:!D.isNonInteractiveSession,model:D.model});try{for await(let f of U){if(f.type==="message_start"&&f.message?.usage)M={cache_read_input_tokens:f.message.usage.cache_read_input_tokens,cache_creation_input_tokens:f.message.usage.cache_creation_input_tokens};yield{type:"stream_event",event:f}}N=await U.finalMessage(),N={...N,usage:{...N.usage,cache_read_input_tokens:N.usage.cache_read_input_tokens??M?.cache_read_input_tokens??0,cache_creation_input_tokens:N.usage.cache_creation_input_tokens??M?.cache_creation_input_tokens??0}}}catch(f){if(f instanceof QI)throw f;m1(f),j1("tengu_streaming_error_fallback",{error:f instanceof Error?f.message:String(f),model:D.model}),N=await Ut(()=>kV({maxRetries:0,model:D.model,isNonInteractiveSession:D.isNonInteractiveSession}),async(g,Y1,r)=>{return K=Y1,await g.beta.messages.create(q(r))},{showErrors:!D.isNonInteractiveSession,model:D.model})}}catch(f){let n=f,g=D.model;if(f instanceof xR)n=f.originalError,g=f.retryContext.model;return ua1({error:n,model:g,messageCount:C.length,messageTokens:EN(C),durationMs:Date.now()-V,durationMsIncludingRetries:Date.now()-X,attempt:K,requestId:U?.request_id}),qX1(n,g)}if(!N||!du0(N)){let f=uu0(N);return qX1(new Error(`Failed to get response from API${f?` (${f})`:""}`),D.model)}let{costUSD:R,durationMs:T}=pa1({response:N,start:V,startIncludingRetries:X,attempt:K,messageCount:C.length,messageTokens:EN(C),requestId:U?.request_id}),O=_W2(N);if(O)return O;return{message:{...N,content:mF1(N.content)},costUSD:R,durationMs:T,type:"assistant",uuid:RW2(),timestamp:new Date().toISOString()}}function qX1(A,B){if(A instanceof Error&&A.message.includes(ca1))return zC({content:na1});if(A instanceof Error&&A.message.includes(Nt))return zC({content:Nt});if(A instanceof I5&&A.status===429&&C6()){let Q=A.headers?.get?.("anthropic-ratelimit-unified-reset"),I=Number(Q)||0,G=`${ia1}|${I}`;return zC({content:G})}if(A instanceof Error&&A.message.includes("prompt is too long"))return zC({content:$t});if(A instanceof Error&&A.message.includes("Your credit balance is too low"))return zC({content:la1});if(A instanceof Error&&A.message.toLowerCase().includes("x-api-key"))return zC({content:LX1});if(A instanceof I5&&A.status===403&&A.message.includes("OAuth token has been revoked"))return zC({content:RX1});if(process.env.CLAUDE_CODE_USE_BEDROCK&&A instanceof Error&&A.message.toLowerCase().includes("model id"))return zC({content:`${bY} (${B}): ${A.message}`});if(A instanceof Error)return zC({content:`${bY}: ${A.message}`});return zC({content:bY})}function pt6(A){return A.map((B,Q)=>{return B.type==="user"?dt6(B,Q>A.length-3):ut6(B,Q>A.length-3)})}async function ct6({systemPrompt:A,userPrompt:B,assistantPrompt:Q,signal:I,isNonInteractiveSession:G,temperature:D=0,enablePromptCaching:Z}){let Y=eH(),W=[{role:"user",content:B},...Q?[{role:"assistant",content:Q}]:[]],F=SW2(A,Z&&a_),J=Z?[...F,...W]:[{systemPrompt:A},...W];da1({model:Y,messagesLength:JSON.stringify(J).length,temperature:D});let C=0,X=Date.now(),V=Date.now(),K,U,N=await GU();try{K=await Ut(()=>kV({maxRetries:0,model:Y,isNonInteractiveSession:G}),async(S,f,n)=>{return C=f,X=Date.now(),U=S.beta.messages.stream({model:n.model,max_tokens:512,messages:W,system:F,temperature:D,metadata:rr(),stream:!0,...N.length>0?{betas:N}:{},...MX1()},{signal:I}),await mt6(U)},{showErrors:!1,model:Y})}catch(S){let f=S,n=Y;if(S instanceof xR)f=S.originalError,n=S.retryContext.model;return ua1({error:f,model:n,messageCount:Q?2:1,durationMs:Date.now()-X,durationMsIncludingRetries:Date.now()-V,attempt:C,requestId:U?.request_id}),qX1(f,n)}let q=_W2(K);if(q)return q;let{costUSD:M,durationMs:R}=pa1({response:K,start:X,startIncludingRetries:V,attempt:C,messageCount:Q?2:1,requestId:U?.request_id}),T=Z?{...K,content:mF1(K.content)}:{...K,content:mF1(K.content),usage:{...K.usage,cache_read_input_tokens:0,cache_creation_input_tokens:0}};return{durationMs:R,message:T,costUSD:M,uuid:RW2(),type:"assistant",timestamp:new Date().toISOString()}}function SW2(A,B=a_){return Xp1(A).map((Q)=>({type:"text",text:Q,...B?{cache_control:{type:"ephemeral"}}:{}}))}async function KD({systemPrompt:A=[],userPrompt:B,assistantPrompt:Q,enablePromptCaching:I=!1,signal:G,isNonInteractiveSession:D,temperature:Z=0}){return await Kp1([M2({content:A.map((Y)=>({type:"text",text:Y}))}),M2({content:B})],()=>ct6({systemPrompt:A,userPrompt:B,assistantPrompt:Q,signal:G,isNonInteractiveSession:D,temperature:Z,enablePromptCaching:I}))}function lt6(A){if(A.includes("3-5"))return 8192;if(A.includes("haiku"))return 8192;return 20000}function _W2(A){if(A.stop_reason!=="refusal")return;return j1("tengu_refusal_api_response",{}),zC({content:`${bY}: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`})}var h4=F1(S1(),1);import{EOL as Ke6}from"os";import{dirname as He6,extname as ze6,isAbsolute as we6,relative as Bs1,resolve as Ee6,sep as Ue6}from"path";var Y4=F1(S1(),1);function gY(A,B){return A.flatMap((Q,I)=>I?[B(I),Q]:[Q])}var L9=F1(S1(),1);function sV(){}sV.prototype={diff:function A(B,Q){var I,G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},D=G.callback;if(typeof G==="function")D=G,G={};var Z=this;function Y(T){if(T=Z.postProcess(T,G),D)return setTimeout(function(){D(T)},0),!0;else return T}B=this.castInput(B,G),Q=this.castInput(Q,G),B=this.removeEmpty(this.tokenize(B,G)),Q=this.removeEmpty(this.tokenize(Q,G));var W=Q.length,F=B.length,J=1,C=W+F;if(G.maxEditLength!=null)C=Math.min(C,G.maxEditLength);var X=(I=G.timeout)!==null&&I!==void 0?I:1/0,V=Date.now()+X,K=[{oldPos:-1,lastComponent:void 0}],U=this.extractCommon(K[0],Q,B,0,G);if(K[0].oldPos+1>=F&&U+1>=W)return Y(jW2(Z,K[0].lastComponent,Q,B,Z.useLongestToken));var N=-1/0,q=1/0;function M(){for(var T=Math.max(N,-J);T<=Math.min(q,J);T+=2){var O=void 0,S=K[T-1],f=K[T+1];if(S)K[T-1]=void 0;var n=!1;if(f){var g=f.oldPos-T;n=f&&0<=g&&g<W}var Y1=S&&S.oldPos+1<F;if(!n&&!Y1){K[T]=void 0;continue}if(!Y1||n&&S.oldPos<f.oldPos)O=Z.addToPath(f,!0,!1,0,G);else O=Z.addToPath(S,!1,!0,1,G);if(U=Z.extractCommon(O,Q,B,T,G),O.oldPos+1>=F&&U+1>=W)return Y(jW2(Z,O.lastComponent,Q,B,Z.useLongestToken));else{if(K[T]=O,O.oldPos+1>=F)q=Math.min(q,T-1);if(U+1>=W)N=Math.max(N,T+1)}}J++}if(D)(function T(){setTimeout(function(){if(J>C||Date.now()>V)return D();if(!M())T()},0)})();else while(J<=C&&Date.now()<=V){var R=M();if(R)return R}},addToPath:function A(B,Q,I,G,D){var Z=B.lastComponent;if(Z&&!D.oneChangePerToken&&Z.added===Q&&Z.removed===I)return{oldPos:B.oldPos+G,lastComponent:{count:Z.count+1,added:Q,removed:I,previousComponent:Z.previousComponent}};else return{oldPos:B.oldPos+G,lastComponent:{count:1,added:Q,removed:I,previousComponent:Z}}},extractCommon:function A(B,Q,I,G,D){var Z=Q.length,Y=I.length,W=B.oldPos,F=W-G,J=0;while(F+1<Z&&W+1<Y&&this.equals(I[W+1],Q[F+1],D))if(F++,W++,J++,D.oneChangePerToken)B.lastComponent={count:1,previousComponent:B.lastComponent,added:!1,removed:!1};if(J&&!D.oneChangePerToken)B.lastComponent={count:J,previousComponent:B.lastComponent,added:!1,removed:!1};return B.oldPos=W,F},equals:function A(B,Q,I){if(I.comparator)return I.comparator(B,Q);else return B===Q||I.ignoreCase&&B.toLowerCase()===Q.toLowerCase()},removeEmpty:function A(B){var Q=[];for(var I=0;I<B.length;I++)if(B[I])Q.push(B[I]);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 jW2(A,B,Q,I,G){var D=[],Z;while(B)D.push(B),Z=B.previousComponent,delete B.previousComponent,B=Z;D.reverse();var Y=0,W=D.length,F=0,J=0;for(;Y<W;Y++){var C=D[Y];if(!C.removed){if(!C.added&&G){var X=Q.slice(F,F+C.count);X=X.map(function(V,K){var U=I[J+K];return U.length>V.length?U:V}),C.value=A.join(X)}else C.value=A.join(Q.slice(F,F+C.count));if(F+=C.count,!C.added)J+=C.count}else C.value=A.join(I.slice(J,J+C.count)),J+=C.count}return D}var wj8=new sV;function yW2(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 kW2(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 sa1(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 ra1(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 Mt(A,B){return sa1(A,B,"")}function TX1(A,B){return ra1(A,B,"")}function xW2(A,B){return B.slice(0,it6(A,B))}function it6(A,B){var Q=0;if(A.length>B.length)Q=A.length-B.length;var I=B.length;if(A.length<B.length)I=A.length;var G=Array(I),D=0;G[0]=0;for(var Z=1;Z<I;Z++){if(B[Z]==B[D])G[Z]=G[D];else G[Z]=D;while(D>0&&B[Z]!=B[D])D=G[D];if(B[Z]==B[D])D++}D=0;for(var Y=Q;Y<A.length;Y++){while(D>0&&A[Y]!=B[D])D=G[D];if(A[Y]==B[D])D++}return D}var PX1="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}",nt6=new RegExp("[".concat(PX1,"]+|\\s+|[^").concat(PX1,"]"),"ug"),SX1=new sV;SX1.equals=function(A,B,Q){if(Q.ignoreCase)A=A.toLowerCase(),B=B.toLowerCase();return A.trim()===B.trim()};SX1.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(D){return D.segment})}else Q=A.match(nt6)||[];var I=[],G=null;return Q.forEach(function(D){if(/\s/.test(D))if(G==null)I.push(D);else I.push(I.pop()+D);else if(/\s/.test(G))if(I[I.length-1]==G)I.push(I.pop()+D);else I.push(G+D);else I.push(D);G=D}),I};SX1.join=function(A){return A.map(function(B,Q){if(Q==0)return B;else return B.replace(/^\s+/,"")}).join("")};SX1.postProcess=function(A,B){if(!A||B.oneChangePerToken)return A;var Q=null,I=null,G=null;if(A.forEach(function(D){if(D.added)I=D;else if(D.removed)G=D;else{if(I||G)fW2(Q,G,I,D);Q=D,I=null,G=null}}),I||G)fW2(Q,G,I,null);return A};function fW2(A,B,Q,I){if(B&&Q){var G=B.value.match(/^\s*/)[0],D=B.value.match(/\s*$/)[0],Z=Q.value.match(/^\s*/)[0],Y=Q.value.match(/\s*$/)[0];if(A){var W=yW2(G,Z);A.value=ra1(A.value,Z,W),B.value=Mt(B.value,W),Q.value=Mt(Q.value,W)}if(I){var F=kW2(D,Y);I.value=sa1(I.value,Y,F),B.value=TX1(B.value,F),Q.value=TX1(Q.value,F)}}else if(Q){if(A)Q.value=Q.value.replace(/^\s*/,"");if(I)I.value=I.value.replace(/^\s*/,"")}else if(A&&I){var J=I.value.match(/^\s*/)[0],C=B.value.match(/^\s*/)[0],X=B.value.match(/\s*$/)[0],V=yW2(J,C);B.value=Mt(B.value,V);var K=kW2(Mt(J,V),X);B.value=TX1(B.value,K),I.value=sa1(I.value,J,K),A.value=ra1(A.value,J,J.slice(0,J.length-K.length))}else if(I){var U=I.value.match(/^\s*/)[0],N=B.value.match(/\s*$/)[0],q=xW2(N,U);B.value=TX1(B.value,q)}else if(A){var M=A.value.match(/\s*$/)[0],R=B.value.match(/^\s*/)[0],T=xW2(M,R);B.value=Mt(B.value,T)}}var hW2=new sV;hW2.tokenize=function(A){var B=new RegExp("(\\r?\\n)|[".concat(PX1,"]+|[^\\S\\n\\r]+|[^").concat(PX1,"]"),"ug");return A.match(B)||[]};function mW2(A,B,Q){return hW2.diff(A,B,Q)}var _X1=new sV;_X1.tokenize=function(A,B){if(B.stripTrailingCr)A=A.replace(/\r\n/g,`
1514
1514
  `);var Q=[],I=A.split(/(\n|\r\n)/);if(!I[I.length-1])I.pop();for(var G=0;G<I.length;G++){var D=I[G];if(G%2&&!B.newlineIsToken)Q[Q.length-1]+=D;else Q.push(D)}return Q};_X1.equals=function(A,B,Q){if(Q.ignoreWhitespace){if(!Q.newlineIsToken||!A.includes(`
1515
1515
  `))A=A.trim();if(!Q.newlineIsToken||!B.includes(`
1516
1516
  `))B=B.trim()}else if(Q.ignoreNewlineAtEof&&!Q.newlineIsToken){if(A.endsWith(`
@@ -1950,7 +1950,7 @@ ${G||"[empty file]"}
1950
1950
  \`\`\``}),Y=await qt([Z],[TJ2(I)],0,D,B.abortController.signal,{getToolPermissionContext:B.getToolPermissionContext,model:eH(),prependCLISysprompt:!0,toolChoice:{name:CG.name,type:"tool"},isNonInteractiveSession:B.options.isNonInteractiveSession}),W=Y.message.content.find((X)=>X.type==="tool_use");if(!W){m1(new Error("No tool use found in response")),B.addNotification?.({text:"Failed to save memory: No tool use found in response",color:"error"});return}let F=wQ([await HF(tX1(W,Y,(X,V)=>Z05(X,V,I),{options:B.options,abortController:B.abortController,readFileState:{[I]:{content:b1().existsSync(I)?dG(I):"",timestamp:b1().existsSync(I)?b1().statSync(I).mtime.getTime()+1:Date.now()}},setToolJSX:B.setToolJSX,getToolPermissionContext:B.getToolPermissionContext,getQueuedCommands:()=>[],removeQueuedCommands:()=>{}}))])[0];if(F.type==="user"&&F.message.content[0].type==="tool_result"&&F.message.content[0].is_error)throw j1("tengu_add_memory_failure",{}),new Error(F.message.content[0].content);let J=ot(I);if(B.readFileState[I]={content:J,timestamp:b1().statSync(I).mtimeMs},j1("tengu_add_memory_success",{}),EF({filePath:I,fileContents:G,edits:[{old_string:G,new_string:J}],ignoreWhitespace:!0}).length>0)B.addNotification?.({jsx:vs1.createElement(OJ2,{memoryType:Q,memoryPath:I})},{timeoutMs:1e4});else B.addNotification?.({text:`No changes made to ${st(Q)} memory`})});async function Z05(A,B,Q){if(A!==CG)return{behavior:"ask",message:"Used incorrect tool"};let{file_path:I}=CG.inputSchema.parse(B);if(I!==Q)return{behavior:"ask",message:`Must use correct memory file path: ${Q}`};return{behavior:"allow",updatedInput:B}}function Y05(){let A=VA(),B=(A.memoryUsageCount||0)+1;T0({...A,memoryUsageCount:B})}var p4=F1(S1(),1),j9=F1(S1(),1);var et=F1(S1(),1);function jJ2(){let[A,B]=et.useState(0),[Q,I]=et.useState({show:!1}),G=et.useCallback((D,Z={})=>{let{timeoutMs:Y=8000}=Z;B((W)=>{let F=W+1;return I({show:!0,content:D}),setTimeout(()=>{B((J)=>{if(F===J)I({show:!1});return J})},Y),F})},[]);return{notification:Q,addNotification:G}}var AV2=F1(tX2(),1);function Zr1({message:A,title:B}){let Q=B?`${B}:
1951
1951
  ${A}`:A;try{process.stdout.write(`\x1B]9;
1952
1952
 
1953
- ${Q}\x07`)}catch{}}function eX2({message:A,title:B}){try{let Q=Math.floor(Math.random()*1e4);process.stdout.write(`\x1B]99;i=${Q}:d=0:p=title;${B||x0}\x1B\\`),process.stdout.write(`\x1B]99;i=${Q}:p=body;${A}\x1B\\`),process.stdout.write(`\x1B]99;i=${Q}:d=1:a=focus;\x1B\\`)}catch{}}function $25({message:A,title:B}){try{let Q=B||x0;process.stdout.write(`\x1B]777;notify;${Q};${A}\x07`)}catch{}}function Yr1(){process.stdout.write("\x07")}async function q25(A,B){return;try{let Q=A.title||x0,I=q41(B,dA());await l0(I,[Q,A.message])}catch(Q){kX(`Error triggering custom notify script: ${String(Q)}`)}}async function M25(){try{if(uA.terminal!=="Apple_Terminal")return!1;let B=(await l0("osascript",["-e",'tell application "Terminal" to name of current settings of front window'])).stdout.trim();if(!B)return!1;let Q=await l0("defaults",["export","com.apple.Terminal","-"]);if(Q.code!==0)return!1;let D=AV2.default.parse(Q.stdout)?.["Window Settings"]?.[B];if(!D)return!1;return D.Bell===!1}catch(A){return m1(A instanceof Error?A:new Error(String(A))),!1}}async function Gd(A){let B=VA(),Q=B.preferredNotifChannel,I="none";if(B.customNotifyCommand)await q25(A,B.customNotifyCommand);switch(Q){case"auto":if(uA.terminal==="Apple_Terminal")if(await M25())Yr1(),I="terminal_bell";else I="no_method_available";else if(uA.terminal==="iTerm.app")Zr1(A),I="iterm2";else if(uA.terminal==="kitty")eX2(A),I="kitty";else if(uA.terminal=="ghostty")$25(A),I="ghostty";else I="no_method_available";break;case"iterm2":Zr1(A),I="iterm2";break;case"terminal_bell":Yr1(),I="terminal_bell";break;case"iterm2_with_bell":Zr1(A),Yr1(),I="iterm2_with_bell";break;case"kitty":eX2(A),I="kitty";break;case"notifications_disabled":I="disabled";break}await j1("notification_method_used",{configured_channel:Q,method_used:I,term:uA.terminal})}var BV2=F1(S1(),1);function QV2(A,B=!1){BV2.useEffect(()=>{if(!B)f41(A)},[A,B])}var q4=F1(S1(),1),pR=F1(S1(),1);import{randomUUID as L25}from"crypto";var RV1=7;function IV2({erroredToolUseIDs:A,messages:B,onSelect:Q,onEscape:I,tools:G,unresolvedToolUseIDs:D}){let Z=pR.useMemo(L25,[]);pR.useEffect(()=>{j1("tengu_message_selector_opened",{})},[]);function Y(U){let N=B.length-1-B.indexOf(U);j1("tengu_message_selector_selected",{index_from_end:N,message_type:U.type,is_current_prompt:U.uuid===Z}),Q(U)}function W(){j1("tengu_message_selector_cancelled",{}),I()}let F=pR.useMemo(()=>[...B.filter(R25),{...M2({content:""}),uuid:Z}],[B,Z]),[J,C]=pR.useState(F.length-1),X=v2();J0((U,N)=>{if(N.tab||N.escape){W();return}if(N.return){Y(F[J]);return}if(N.upArrow)if(N.ctrl||N.shift||N.meta)C(0);else C((q)=>Math.max(0,q-1));if(N.downArrow)if(N.ctrl||N.shift||N.meta)C(F.length-1);else C((q)=>Math.min(F.length-1,q+1))});let V=Math.max(0,Math.min(J-Math.floor(RV1/2),F.length-RV1)),K=pR.useMemo(()=>wQ(B).filter(F_),[B]);return q4.createElement(q4.Fragment,null,q4.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().secondaryBorder,height:4+Math.min(RV1,F.length)*2,paddingX:1,marginTop:1},q4.createElement(m,{flexDirection:"column",minHeight:2,marginBottom:1},q4.createElement(y,{bold:!0},"Jump to a previous message"),q4.createElement(y,{dimColor:!0},"This will fork the conversation")),F.slice(V,V+RV1).map((U,N)=>{let M=V+N===J,R=U.uuid===Z;return q4.createElement(m,{key:U.uuid,flexDirection:"row",height:2,minHeight:2},q4.createElement(m,{width:7},M?q4.createElement(y,{color:"blue",bold:!0},H2.pointer," ",V+N+1," "):q4.createElement(y,null," ",V+N+1," ")),q4.createElement(m,{height:1,overflow:"hidden",width:100},R?q4.createElement(m,{width:"100%"},q4.createElement(y,{dimColor:!0,italic:!0},"(current)")):Array.isArray(U.message.content)&&U.message.content[0]?.type==="text"&&dF1(U.message.content[0].text)?q4.createElement(y,{dimColor:!0,italic:!0},"(empty message)"):q4.createElement(yC,{message:eZ(wQ([U])),messages:K,addMargin:!1,tools:G,verbose:!1,erroredToolUseIDs:A,inProgressToolUseIDs:new Set,unresolvedToolUseIDs:D,shouldAnimate:!1,shouldShowDot:!1,progressMessagesForMessage:[]})))})),q4.createElement(m,{marginLeft:3},q4.createElement(y,{dimColor:!0},X.pending?q4.createElement(q4.Fragment,null,"Press ",X.keyName," again to exit"):q4.createElement(q4.Fragment,null,"↑/↓ to select · Enter to confirm · Tab/Esc to cancel"))))}function R25(A){if(A.type!=="user")return!1;if(Array.isArray(A.message.content)&&A.message.content[0]?.type==="tool_result")return!1;if(gF1(A))return!1;if(A.isMeta)return!1;return!0}var Dd=F1(S1(),1);function GV2(A,B){let[Q,I]=Dd.useState(()=>{let W=KV(),F=B?{...W,...B}:W;return Object.entries(F).map(([J,C])=>({name:J,type:"pending",config:C}))}),[G,D]=Dd.useState([]),[Z,Y]=Dd.useState([]);return Dd.useEffect(()=>{I((F)=>{let J=KV(),C=F.filter((X)=>J[X.name]||B?.[X.name]);if(B)Object.entries(B).forEach(([X,V])=>{if(!C.find((K)=>K.name===X))C.push({name:X,type:"pending",config:V})});return C}),D([]),Y([]);let W=0;Yu1(({client:F,tools:J,commands:C})=>{try{if(F.type==="failed"){if(F.config.type!=="sse-ide"&&F.config.type!=="ws-ide")W++;if(W>0){let V={text:`${W} MCP server${W>1?"s":""} failed to connect (see /mcp for info)`,color:"error"};A(V,{timeoutMs:1e4})}}if(F.type==="connected"&&F.client.transport){let K=function(N){if(!V)return;V=!1,IY(F.name,N),I((q)=>q.map((M)=>M.name!==F.name?M:{name:M.name,type:"failed",config:M.config})),D((q)=>q.filter((M)=>!J.includes(M))),Y((q)=>q.filter((M)=>!C.includes(M)))},V=!0;F.client.transport.onclose=()=>{K("transport closed")},F.client.transport.onerror=(N)=>{K(N)};let U=F.client.transport.onmessage;F.client.transport.onmessage=(...N)=>{if(U)U.apply(F.client.transport,N);if(V)return;V=!0,I((q)=>q.map((M)=>M.name!==F.name?M:{...F,type:"connected"})),D((q)=>{return[...q.filter((M)=>!J.includes(M)),...J]}),Y((q)=>{return[...q.filter((M)=>!C.includes(M)),...C]})}}I((V)=>V.map((K)=>K.name===F.name?F:K)),D((V)=>[...V,...J]),Y((V)=>[...V,...C])}catch(X){console.error("Error handling MCP update",X)}},B)},[A,B]),{clients:Q,tools:G,commands:Z}}var DV2=F1(S1(),1);var O25=i.object({method:i.literal("log_event"),params:i.object({eventName:i.string(),eventData:i.object({}).passthrough()})});function ZV2(A){DV2.useEffect(()=>{if(!A.length)return;let B=A.filter((Q)=>Q.type==="connected"&&Q.name==="ide");for(let Q of B)Q.client.setNotificationHandler(O25,async(I)=>{let{eventName:G,eventData:D}=I.params;j1(`tengu_ide_${G}`,D)})},[A])}var bo1=F1(S1(),1);var BK=F1(S1(),1);import{basename as v25}from"path";var YV2=F1(S1(),1);function m5(A){j1("tengu_unary_event",{event:A.event,completion_type:A.completion_type,language_name:A.metadata.language_name,message_id:A.metadata.message_id,platform:A.metadata.platform})}function kC(A,B){YV2.useEffect(()=>{j1("tengu_tool_use_show_permission_request",{messageID:A.assistantMessage.message.id,toolName:A.tool.name}),m5({completion_type:B.completion_type,event:"response",metadata:{language_name:B.language_name,message_id:A.assistantMessage.message.id,platform:uA.platform}})},[A,B])}var Ve=F1(S1(),1);function zD({title:A}){return Ve.createElement(m,{flexDirection:"column"},Ve.createElement(y,{bold:!0,color:$1().permission},A))}var Gj=F1(S1(),1);import{randomUUID as T25}from"crypto";import{basename as P25,resolve as Wr1}from"path";function WV2(A){if(!A)return;let B=A.find((Q)=>Q.type==="connected"&&Q.name==="ide");return B?.type==="connected"?B:void 0}function Zd({onChange:A,toolUseContext:B,filePath:Q,edits:I,editMode:G}){let D=Gj.useRef(!1),Z=Gj.useMemo(()=>T25().slice(0,6),[]),Y=Gj.useMemo(()=>`✻ [Claude Code] ${P25(Q)} (${Z}) ⧉`,[Q,Z]),W=_I1(B.options.mcpClients)&&VA().diffTool==="auto",F=jI1(B.options.mcpClients)??"IDE";async function J(){if(!W)return;j1("tengu_ext_will_show_diff",{});let{oldContent:C,newContent:X}=await _25(Q,I,B,Y);if(D.current)return;j1("tengu_ext_diff_accepted",{});let V=S25(Q,C,X,G);if(V.length===0){j1("tengu_ext_diff_rejected",{}),A("no",{file_path:Q,edits:I});return}A("yes",{file_path:Q,edits:V})}return Gj.useEffect(()=>{return J(),()=>{D.current=!0}},[]),{closeTabInIDE(){let C=WV2(B.options.mcpClients);if(!C)return Promise.resolve();return FV2(Y,B,C)},showingDiffInIDE:W,ideName:F}}function S25(A,B,Q,I){let G=I==="single",D=lW2({filePath:A,oldContent:B,newContent:Q,singleHunk:G});if(D.length===0)return[];if(G&&D.length>1)m1(new Error(`Unexpected number of hunks: ${D.length}. Expected 1 hunk.`));return oW2(D)}async function _25(A,B,Q,I){let G=!1,{updatedFile:D}=mm({filePath:A,fileContents:b1().existsSync(Wr1(dA(),A))?b1().readFileSync(A,{encoding:"utf8"}):"",edits:B}),Z=Wr1(dA(),A),Y=b1().existsSync(Wr1(dA(),A))?b1().readFileSync(A,{encoding:"utf8"}):"";async function W(){if(G)return;G=!0;try{await FV2(I,Q,F)}catch(J){m1(J)}process.off("beforeExit",W),Q.abortController.signal.removeEventListener("abort",W)}Q.abortController.signal.addEventListener("abort",W),process.on("beforeExit",W);let F=WV2(Q.options.mcpClients);try{if(!F||F.type!=="connected")throw new Error("IDE client not available");let J=await BL("openDiff",{old_file_path:Z,new_file_path:A,new_file_contents:D,tab_name:I},F,Q.options.isNonInteractiveSession),C={type:"result",data:Array.isArray(J)?J:[J]};if(k25(C))return W(),{oldContent:Y,newContent:C.data[1].text};else if(j25(C))return W(),{oldContent:Y,newContent:D};else if(y25(C))return W(),{oldContent:Y,newContent:Y};throw new Error("Not accepted")}catch(J){throw m1(J),W(),J}}async function FV2(A,B,Q){try{if(!Q||Q.type!=="connected")throw new Error("IDE client not available");await BL("close_tab",{tab_name:A},Q,B.options.isNonInteractiveSession)}catch(I){m1(I)}}function j25(A){return A.type==="result"&&Array.isArray(A.data)&&typeof A.data[0]==="object"&&A.data[0]!==null&&"type"in A.data[0]&&A.data[0].type==="text"&&"text"in A.data[0]&&A.data[0].text==="TAB_CLOSED"}function y25(A){return A.type==="result"&&Array.isArray(A.data)&&typeof A.data[0]==="object"&&A.data[0]!==null&&"type"in A.data[0]&&A.data[0].type==="text"&&"text"in A.data[0]&&A.data[0].text==="DIFF_REJECTED"}function k25(A){return A.type==="result"&&Array.isArray(A.data)&&A.data[0]?.type==="text"&&A.data[0].text==="FILE_SAVED"&&typeof A.data[1].text==="string"}var KG=F1(S1(),1);import{basename as x25}from"path";function Yd({onChange:A,options:B,input:Q,file_path:I,ideName:G}){return KG.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},KG.createElement(m,{flexDirection:"column",padding:1},KG.createElement(y,{bold:!0,color:$1().permission},"Opened changes in ",G," ⧉"),AL&&KG.createElement(y,{dimColor:!0},"Save file to continue…")),KG.createElement(m,{flexDirection:"column"},KG.createElement(y,null,"Do you want to make this edit to"," ",KG.createElement(y,{bold:!0},x25(I)),"?"),KG.createElement(A9,{options:B,onChange:(D)=>A(D,Q),onCancel:()=>A("no",Q)})))}function JV2(A,B){if(A.mode!=="acceptEdits")return!1;return j1("tengu_auto_accept_disabled",{}),B({...A,mode:"default"}),!0}function xC(A,B){switch(A.mode){case"acceptEdits":case"bypassPermissions":return!1;case"default":break}return j1("tengu_auto_accept_enabled",{}),B({...A,mode:"acceptEdits"}),!0}var MF=F1(S1(),1),Fr1=F1(S1(),1);import{relative as f25}from"path";function Ke({file_path:A,edits:B,verbose:Q,useBorder:I=!0}){let G=Fr1.useMemo(()=>b1().existsSync(A)?dG(A):"",[A]),D=Fr1.useMemo(()=>EF({filePath:A,fileContents:G,edits:B}),[A,G,B]);return MF.createElement(m,{flexDirection:"column"},MF.createElement(m,{borderColor:$1().secondaryBorder,borderStyle:I?"round":void 0,flexDirection:"column",paddingX:1},MF.createElement(m,{paddingBottom:1},MF.createElement(y,{bold:!0},Q?A:f25(dA(),A))),gY(D.map((Z)=>MF.createElement(zZ,{key:Z.newStart,patch:Z,dim:!1})),(Z)=>MF.createElement(y,{color:$1().secondaryText,key:`ellipsis-${Z}`},"..."))))}function Dj(A){let B=PY(A)?[{label:`Yes, and don't ask again this session (${MA.bold.ansi256(D4().secondaryText)("shift+tab")})`,value:"yes-dont-ask-again"}]:[];return[{label:"Yes",value:"yes"},...B,{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]}function CV2({setToolPermissionContext:A,toolUseConfirm:B,toolUseContext:Q,onDone:I,onReject:G,verbose:D}){let{file_path:Z,new_string:Y,old_string:W}=b3.inputSchema.parse(B.input),F=BK.useMemo(()=>({completion_type:"str_replace_single",language_name:rD(Z)}),[Z]);kC(B,F),J0((K,U)=>{if(U.tab&&U.shift&&Dj(Z).filter((N)=>N.value==="yes-dont-ask-again").length>0){J("yes-dont-ask-again",{file_path:Z,edits:[{old_string:W,new_string:Y}]});return}});function J(K,{file_path:U,edits:N}){C();let{old_string:q,new_string:M}=N[0];if(N.length>1)m1(new Error("Too many edits provided - continuing with just the first edit"));switch(K){case"yes":m5({completion_type:"str_replace_single",event:"accept",metadata:{language_name:rD(U),message_id:B.assistantMessage.message.id,platform:uA.platform}}),I(),B.onAllow("temporary",{file_path:U,new_string:M,old_string:q});break;case"yes-dont-ask-again":m5({completion_type:"str_replace_single",event:"accept",metadata:{language_name:rD(U),message_id:B.assistantMessage.message.id,platform:uA.platform}}),xC(B.toolUseContext.getToolPermissionContext(),A),I(),B.onAllow("permanent",{file_path:U,new_string:M,old_string:q});break;case"no":m5({completion_type:"str_replace_single",event:"reject",metadata:{language_name:rD(U),message_id:B.assistantMessage.message.id,platform:uA.platform}}),I(),G(),B.onReject();break}}let{closeTabInIDE:C,showingDiffInIDE:X,ideName:V}=Zd({onChange:J,toolUseContext:Q,filePath:Z,edits:[{old_string:W,new_string:Y}],editMode:"single"});if(X)return BK.default.createElement(Yd,{onChange:J,options:Dj(Z),file_path:Z,input:{file_path:Z,edits:[{old_string:W,new_string:Y}]},ideName:V});return BK.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},BK.default.createElement(zD,{title:"Edit file"}),BK.default.createElement(Ke,{file_path:Z,edits:[{old_string:W,new_string:Y}],verbose:D}),BK.default.createElement(m,{flexDirection:"column"},BK.default.createElement(y,null,"Do you want to make this edit to"," ",BK.default.createElement(y,{bold:!0},v25(Z)),"?"),BK.default.createElement(A9,{options:Dj(Z),onChange:(K)=>J(K,{file_path:Z,edits:[{old_string:W,new_string:Y}]}),onCancel:()=>J("no",{file_path:Z,edits:[{old_string:W,new_string:Y}]})})))}var C3=F1(S1(),1);var XV2=F1(S1(),1);function OV1(A,B){XV2.useEffect(()=>{j1("tengu_tool_use_show_permission_request",{messageID:A.assistantMessage.message.id,toolName:A.tool.name,isMcp:A.tool.isMcp??!1}),Promise.resolve(B.language_name).then((I)=>{m5({completion_type:B.completion_type,event:"response",metadata:{language_name:I,message_id:A.assistantMessage.message.id,platform:uA.platform}})})},[A,B])}function cR(A,{assistantMessage:{message:{id:B}}},Q){m5({completion_type:A,event:Q,metadata:{language_name:"none",message_id:B,platform:uA.platform}})}function b25(A){switch(A.length){case 0:return"";case 1:return MA.bold(A[0]);case 2:return MA.bold(A[0])+" and "+MA.bold(A[1]);default:return MA.bold(A.slice(0,-1).join(", "))+", and "+MA.bold(A.slice(-1)[0])}}function g25(A){let B=b25(A);if(B.length>50)return"similar";else return B}function h25(A){return A.flatMap((B)=>{if(!B.ruleContent)return[];return Xs1(B.ruleContent)??B.ruleContent})}function VV2({toolUseConfirm:A}){let{permissionResult:B}=A,Q=[],I=B.behavior!=="allow"?B.ruleSuggestions:void 0;if(I&&I.length>0){let G=h25(I);Q=[{label:`Yes, and don't ask again for ${g25(G)} commands in ${MA.bold(u4())}`,value:"yes-dont-ask-again-prefix"}]}return[{label:"Yes",value:"yes"},...Q,{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]}var e5=F1(S1(),1);function KV2(A){switch(A){case"default":return"Default";case"acceptEdits":return"Accept Edits";case"bypassPermissions":return"Bypass Permissions"}}function HV2(A){switch(A){case"default":case"acceptEdits":return null;case"bypassPermissions":return"Bypassing Permissions"}}function m25(A){switch(A){case"cliArg":return"CLI argument";case"localSettings":return"local settings";case"projectSettings":return"project settings";case"policySettings":return"managed settings";case"userSettings":return"global settings"}}function zV2(A){switch(A.type){case"rule":return`${MA.bold(a8(A.rule.ruleValue))} rule from ${m25(A.rule.source)}`;case"mode":return`${KV2(A.mode)} mode`;case"other":return A.reason;case"permissionPromptTool":return`${MA.bold(A.permissionPromptToolName)} permission prompt tool`}}function d25({title:A,decisionReason:B}){let Q=D4();function I(){switch(B.type){case"subcommandResults":return e5.default.createElement(m,{flexDirection:"column"},Array.from(B.reasons.entries()).map(([G,D])=>{let Z=D.behavior==="allow"?MA.ansi256(Q.success)(H2.tick):MA.ansi256(Q.error)(H2.cross);return e5.default.createElement(m,{flexDirection:"column",key:G},e5.default.createElement(y,null,Z," ",G),D.decisionReason!==void 0&&D.decisionReason.type!=="subcommandResults"&&e5.default.createElement(y,null," ","⎿"," ",zV2(D.decisionReason)),D.behavior!=="allow"&&D.ruleSuggestions&&e5.default.createElement(y,null," ","⎿"," ","Suggested rules:"," ",D.ruleSuggestions.map((Y)=>MA.bold(a8(Y))).join(", ")))}));default:return e5.default.createElement(y,null,zV2(B))}}return e5.default.createElement(m,{flexDirection:"column"},A&&e5.default.createElement(y,null,A),I())}function wV2({permissionResult:A}){let B=A.decisionReason,Q=A.behavior!=="allow"?A.ruleSuggestions:void 0,I=10;return e5.default.createElement(m,{flexDirection:"column"},e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{justifyContent:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Behavior ")),e5.default.createElement(y,null,A.behavior)),A.behavior!=="allow"&&e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{justifyContent:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Message ")),e5.default.createElement(y,null,A.message)),e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{justifyContent:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Reason ")),B===void 0?e5.default.createElement(y,null,"undefined"):e5.default.createElement(d25,{decisionReason:B})),e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{flexDirection:"column",alignItems:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Suggested "),e5.default.createElement(y,{dimColor:!0},"rules ")),Q==null||Q.length===0?e5.default.createElement(y,null,"None"):Q.map((G,D)=>e5.default.createElement(y,{key:D},H2.bullet," ",a8(G)))))}function EV2({setToolPermissionContext:A,toolUseConfirm:B,onDone:Q,onReject:I}){let G=$1(),{command:D,description:Z}=X4.inputSchema.parse(B.input),[Y,W]=C3.useState(!1),F=C3.useMemo(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);OV1(B,F);let J=C3.useMemo(()=>VV2({toolUseConfirm:B}),[B]);J0((X,V)=>{if(V.ctrl&&X==="d")W((K)=>!K)});function C(X){switch(X){case"yes":cR("tool_use_single",B,"accept"),B.onAllow("temporary",B.input),Q();break;case"yes-dont-ask-again-prefix":{cR("tool_use_single",B,"accept");let V=B.permissionResult.behavior!=="allow"?B.permissionResult.ruleSuggestions:void 0;if(V)vr({ruleValues:V,ruleBehavior:"allow",destination:"localSettings",initialContext:B.toolUseContext.getToolPermissionContext(),setToolPermissionContext:A}).then(()=>{B.onAllow("permanent",B.input),Q()});else B.onAllow("temporary",B.input),Q();break}case"no":cR("tool_use_single",B,"reject"),B.onReject(),I(),Q();break}}return C3.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:G.permission,marginTop:1,paddingLeft:1,paddingRight:1},C3.default.createElement(zD,{title:"Bash command"}),C3.default.createElement(m,{flexDirection:"column",paddingX:2,paddingY:1},C3.default.createElement(y,null,X4.renderToolUseMessage({command:D,description:Z})),C3.default.createElement(y,{color:G.secondaryText},B.description)),Y?C3.default.createElement(C3.default.Fragment,null,C3.default.createElement(wV2,{permissionResult:B.permissionResult}),B.toolUseContext.options.debug&&C3.default.createElement(m,{justifyContent:"flex-end",marginTop:1},C3.default.createElement(y,{dimColor:!0},"Ctrl-D to hide debug info"))):C3.default.createElement(C3.default.Fragment,null,C3.default.createElement(m,{flexDirection:"column"},C3.default.createElement(y,null,"Do you want to proceed?"),C3.default.createElement(A9,{options:J,onChange:C,onCancel:()=>C("no")})),B.toolUseContext.options.debug&&C3.default.createElement(m,{justifyContent:"flex-end"},C3.default.createElement(y,{dimColor:!0},"Ctrl-D to show debug info"))))}var LF=F1(S1(),1);function TV1({setToolPermissionContext:A,toolUseConfirm:B,onDone:Q,onReject:I,verbose:G}){let D=$1(),Z=B.tool.userFacingName(B.input),Y=Z.endsWith(" (MCP)")?Z.slice(0,-6):Z,W=LF.useMemo(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);kC(B,W);let F=(X)=>{switch(X){case"yes":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onAllow("temporary",B.input),Q();break;case"yes-dont-ask-again":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:B.assistantMessage.message.id,platform:uA.platform}}),HF1({rule:{ruleBehavior:"allow",ruleValue:{toolName:B.tool.name},source:"localSettings"},initialContext:B.toolUseContext.getToolPermissionContext(),setToolPermissionContext:A}).then(()=>{B.onAllow("permanent",B.input),Q()});break;case"no":m5({completion_type:"tool_use_single",event:"reject",metadata:{language_name:"none",message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onReject(),I(),Q();break}},J=u4(),C=LF.useMemo(()=>{return[{label:"Yes",value:"yes"},{label:`Yes, and don't ask again for ${MA.bold(Y)} commands in ${MA.bold(J)}`,value:"yes-dont-ask-again"},{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]},[Y,J]);return LF.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},LF.default.createElement(zD,{title:"Tool use"}),LF.default.createElement(m,{flexDirection:"column",paddingX:2,paddingY:1},LF.default.createElement(y,null,Y,"(",B.tool.renderToolUseMessage(B.input,{verbose:G}),")",Z.endsWith(" (MCP)")?LF.default.createElement(y,{color:D.secondaryText}," (MCP)"):""),LF.default.createElement(y,{color:D.secondaryText},B.description)),LF.default.createElement(m,{flexDirection:"column"},LF.default.createElement(y,null,"Do you want to proceed?"),LF.default.createElement(A9,{options:C,onChange:F,onCancel:()=>F("no")})))}var Jr1=F1(S1(),1);var Cr1=6000;function u25(){return Date.now()-l21()}function p25(A){return u25()<A}function c25(A){return!p25(A)}var l25=b0(()=>process.stdin.on("data",Op));function Xr1(A,B=Cr1){Jr1.useEffect(()=>{l25(),Op()},[]),Jr1.useEffect(()=>{let Q=!1,I=setInterval(()=>{if(c25(B)&&!Q)Q=!0,Gd({message:A})},B);return()=>clearTimeout(I)},[A,B])}var lY=F1(S1(),1);import{basename as a25}from"path";var RF=F1(S1(),1),PV1=F1(S1(),1);import{extname as i25,relative as n25}from"path";function Vr1({file_path:A,content:B,verbose:Q}){let I=PV1.useMemo(()=>b1().existsSync(A),[A]),G=PV1.useMemo(()=>{if(!I)return"";let Z=nI(A);return b1().readFileSync(A,{encoding:Z})},[A,I]),D=PV1.useMemo(()=>{if(!I)return null;return EF({filePath:A,fileContents:G,edits:[{old_string:G,new_string:B}]})},[I,A,G,B]);return RF.createElement(m,{borderColor:$1().secondaryBorder,borderStyle:"round",flexDirection:"column",paddingX:1},RF.createElement(m,{paddingBottom:1},RF.createElement(y,{bold:!0},Q?A:n25(dA(),A))),D?gY(D.map((Z)=>RF.createElement(zZ,{key:Z.newStart,patch:Z,dim:!1})),(Z)=>RF.createElement(y,{color:$1().secondaryText,key:`ellipsis-${Z}`},"...")):RF.createElement(VC,{code:B||"(No content)",language:i25(A).slice(1)}))}function Kr1(A){return[{label:"Yes",value:"yes"},...PY(A)?[{label:`Yes, and don't ask again this session (${MA.bold.ansi256(D4().secondaryText)("shift+tab")})`,value:"yes-dont-ask-again"}]:[],{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]}function UV2({setToolPermissionContext:A,toolUseConfirm:B,toolUseContext:Q,onDone:I,onReject:G,verbose:D}){let{file_path:Z,content:Y}=CG.inputSchema.parse(B.input),W=lY.useMemo(()=>b1().existsSync(Z),[Z]),F=lY.useMemo(()=>({completion_type:"write_file_single",language_name:rD(Z)}),[Z]);kC(B,F);function J(U,{file_path:N,content:q}){switch(X(),U){case"yes":m5({completion_type:"write_file_single",event:"accept",metadata:{language_name:rD(N),message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onAllow("temporary",{file_path:N,content:q}),I();break;case"yes-dont-ask-again":m5({completion_type:"write_file_single",event:"accept",metadata:{language_name:rD(N),message_id:B.assistantMessage.message.id,platform:uA.platform}}),xC(B.toolUseContext.getToolPermissionContext(),A),I(),B.onAllow("permanent",{file_path:N,content:q});break;case"no":m5({completion_type:"write_file_single",event:"reject",metadata:{language_name:rD(N),message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onReject(),G(),I();break}}J0((U,N)=>{if(N.tab&&N.shift&&Kr1(Z).filter((q)=>q.value==="yes-dont-ask-again").length>0)J("yes-dont-ask-again",{file_path:Z,content:Y})});let C=lY.useMemo(()=>b1().existsSync(Z)?dG(Z):"",[Z]),{closeTabInIDE:X,showingDiffInIDE:V,ideName:K}=Zd({onChange(U,{file_path:N,edits:q}){J(U,{file_path:N,content:q[0].new_string})},toolUseContext:Q,filePath:Z,edits:[{old_string:C,new_string:Y}],editMode:"single"});if(V)return lY.default.createElement(Yd,{onChange:(U,{file_path:N,new_string:q})=>{J(U,{file_path:N,content:q})},options:Kr1(Z),file_path:Z,input:{file_path:Z,old_string:C,new_string:Y},ideName:K});return lY.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},lY.default.createElement(zD,{title:`${W?"Edit":"Create"} file`}),lY.default.createElement(m,{flexDirection:"column"},lY.default.createElement(Vr1,{file_path:Z,content:Y,verbose:D})),lY.default.createElement(m,{flexDirection:"column"},lY.default.createElement(y,null,"Do you want to ",W?"make this edit to":"create"," ",lY.default.createElement(y,{bold:!0},a25(Z)),"?"),lY.default.createElement(A9,{options:Kr1(Z),onChange:(U)=>J(U,{file_path:Z,content:Y}),onCancel:()=>J("no",{file_path:Z,content:Y})})))}var fC=F1(S1(),1);function s25(A){let B=A.tool;if("getPath"in B&&typeof B.getPath==="function")try{return B.getPath(A.input)}catch{return null}return null}function r25(A){let B=FG(A);try{return b1().existsSync(B)&&b1().statSync(B).isFile()}catch{return!1}}function o25(A,B){if(A.tool.isReadOnly(A.input))return[];return B&&PY(B)?[{label:"Yes, and don't ask again for file edits this session",value:"yes-dont-ask-again"}]:[]}function NV2({toolUseConfirm:A,onDone:B,onReject:Q,verbose:I,setToolPermissionContext:G,toolUseContext:D}){let Z=s25(A),Y=A.tool.userFacingName(A.input),F=`${A.tool.isReadOnly(A.input)?"Read":"Edit"} ${Z&&r25(Z)?"files":"file"}`,J=fC.useMemo(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);kC(A,J);let C=fC.useMemo(()=>{let V=o25(A,Z);return[{label:"Yes",value:"yes"},...V,{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]},[A,Z]);function X(V){switch(V){case"yes":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:A.assistantMessage.message.id,platform:uA.platform}}),A.onAllow("temporary",A.input),B();break;case"yes-dont-ask-again":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:A.assistantMessage.message.id,platform:uA.platform}}),xC(A.toolUseContext.getToolPermissionContext(),G),A.onAllow("permanent",A.input),B();break;case"no":m5({completion_type:"tool_use_single",event:"reject",metadata:{language_name:"none",message_id:A.assistantMessage.message.id,platform:uA.platform}}),A.onReject(),Q(),B();break}}if(!Z)return fC.default.createElement(TV1,{setToolPermissionContext:G,toolUseConfirm:A,toolUseContext:D,onDone:B,onReject:Q,verbose:I});return fC.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},fC.default.createElement(zD,{title:F}),fC.default.createElement(m,{flexDirection:"column",paddingX:2,paddingY:1},fC.default.createElement(y,null,Y,"(",A.tool.renderToolUseMessage(A.input,{verbose:I}),")")),fC.default.createElement(m,{flexDirection:"column"},fC.default.createElement(y,null,"Do you want to proceed?"),fC.default.createElement(A9,{options:C,onChange:X,onCancel:()=>X("no")})))}var NZ=F1(S1(),1);import{extname as t25,isAbsolute as $V2,relative as e25,resolve as qV2}from"path";var A95=i.strictObject({notebook_path:i.string().describe("The absolute path to the Jupyter notebook file to read (must be absolute, not relative)")}),He={name:xh,async description(){return Nm0},async prompt(){return $m0},userFacingName(){return"Read Notebook"},isEnabled(){return!0},inputSchema:A95,isReadOnly(){return!0},getPath({notebook_path:A}){return A},async checkPermissions(A,B){return iz(He,A,B.getToolPermissionContext())},async validateInput({notebook_path:A}){let B=$V2(A)?A:qV2(dA(),A);if(!b1().existsSync(B)){let I=$x(B),G="File does not exist.";if(I)G+=` Did you mean ${I}?`;return{result:!1,message:G,errorCode:1}}if(t25(B)!==".ipynb")return{result:!1,message:"File must be a Jupyter notebook (.ipynb file).",errorCode:2};return{result:!0}},renderToolUseMessage(A,{verbose:B}){return B?A.notebook_path:e25(dA(),A.notebook_path)},renderToolUseRejectedMessage(){return NZ.createElement(c6,null)},renderToolUseErrorMessage(A,{verbose:B}){return NZ.createElement(X6,{result:A,verbose:B})},renderToolUseProgressMessage(){return null},renderToolResultMessage(A){if(!A)return NZ.createElement(y,{color:$1().error},"No cells found in notebook");if(A.length<1||!A[0])return NZ.createElement(y,{color:$1().error},"No cells found in notebook");return NZ.createElement(c0,{height:1},NZ.createElement(y,null,"Read ",NZ.createElement(y,{bold:!0},A.length)," cells"))},async*call({notebook_path:A}){let B=$V2(A)?A:qV2(dA(),A),Q=b1().readFileSync(B,{encoding:"utf-8"}),I=JSON.parse(Q),G=I.metadata.language_info?.name??"python";yield{type:"result",data:I.cells.map((Z,Y)=>I95(Z,Y,G))}},mapToolResultToToolResultBlockParam(A,B){let Q=A.flatMap(Z95);return{tool_use_id:B,type:"tool_result",content:Q.reduce((I,G)=>{if(I.length===0)return[G];let D=I[I.length-1];if(D&&D.type==="text"&&G.type==="text")return D.text+=`
1953
+ ${Q}\x07`)}catch{}}function eX2({message:A,title:B}){try{let Q=Math.floor(Math.random()*1e4);process.stdout.write(`\x1B]99;i=${Q}:d=0:p=title;${B||x0}\x1B\\`),process.stdout.write(`\x1B]99;i=${Q}:p=body;${A}\x1B\\`),process.stdout.write(`\x1B]99;i=${Q}:d=1:a=focus;\x1B\\`)}catch{}}function $25({message:A,title:B}){try{let Q=B||x0;process.stdout.write(`\x1B]777;notify;${Q};${A}\x07`)}catch{}}function Yr1(){process.stdout.write("\x07")}async function q25(A,B){return;try{let Q=A.title||x0,I=q41(B,dA());await l0(I,[Q,A.message])}catch(Q){kX(`Error triggering custom notify script: ${String(Q)}`)}}async function M25(){try{if(uA.terminal!=="Apple_Terminal")return!1;let B=(await l0("osascript",["-e",'tell application "Terminal" to name of current settings of front window'])).stdout.trim();if(!B)return!1;let Q=await l0("defaults",["export","com.apple.Terminal","-"]);if(Q.code!==0)return!1;let D=AV2.default.parse(Q.stdout)?.["Window Settings"]?.[B];if(!D)return!1;return D.Bell===!1}catch(A){return m1(A instanceof Error?A:new Error(String(A))),!1}}async function Gd(A){let B=VA(),Q=B.preferredNotifChannel,I="none";if(B.customNotifyCommand)await q25(A,B.customNotifyCommand);switch(Q){case"auto":if(uA.terminal==="Apple_Terminal")if(await M25())Yr1(),I="terminal_bell";else I="no_method_available";else if(uA.terminal==="iTerm.app")Zr1(A),I="iterm2";else if(uA.terminal==="kitty")eX2(A),I="kitty";else if(uA.terminal=="ghostty")$25(A),I="ghostty";else I="no_method_available";break;case"iterm2":Zr1(A),I="iterm2";break;case"terminal_bell":Yr1(),I="terminal_bell";break;case"iterm2_with_bell":Zr1(A),Yr1(),I="iterm2_with_bell";break;case"kitty":eX2(A),I="kitty";break;case"notifications_disabled":I="disabled";break}await j1("notification_method_used",{configured_channel:Q,method_used:I,term:uA.terminal})}var BV2=F1(S1(),1);function QV2(A,B=!1){BV2.useEffect(()=>{if(!B)f41(A)},[A,B])}var q4=F1(S1(),1),pR=F1(S1(),1);import{randomUUID as L25}from"crypto";var RV1=7;function IV2({erroredToolUseIDs:A,messages:B,onSelect:Q,onEscape:I,tools:G,unresolvedToolUseIDs:D}){let Z=pR.useMemo(L25,[]);pR.useEffect(()=>{j1("tengu_message_selector_opened",{})},[]);function Y(U){let N=B.length-1-B.indexOf(U);j1("tengu_message_selector_selected",{index_from_end:N,message_type:U.type,is_current_prompt:U.uuid===Z}),Q(U)}function W(){j1("tengu_message_selector_cancelled",{}),I()}let F=pR.useMemo(()=>[...B.filter(R25),{...M2({content:""}),uuid:Z}],[B,Z]),[J,C]=pR.useState(F.length-1),X=v2();J0((U,N)=>{if(N.tab||N.escape){W();return}if(N.return){Y(F[J]);return}if(N.upArrow)if(N.ctrl||N.shift||N.meta)C(0);else C((q)=>Math.max(0,q-1));if(N.downArrow)if(N.ctrl||N.shift||N.meta)C(F.length-1);else C((q)=>Math.min(F.length-1,q+1))});let V=Math.max(0,Math.min(J-Math.floor(RV1/2),F.length-RV1)),K=pR.useMemo(()=>wQ(B).filter(F_),[B]);return q4.createElement(q4.Fragment,null,q4.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().secondaryBorder,height:4+Math.min(RV1,F.length)*2,paddingX:1,marginTop:1},q4.createElement(m,{flexDirection:"column",minHeight:2,marginBottom:1},q4.createElement(y,{bold:!0},"Jump to a previous message"),q4.createElement(y,{dimColor:!0},"This will fork the conversation")),F.slice(V,V+RV1).map((U,N)=>{let M=V+N===J,R=U.uuid===Z;return q4.createElement(m,{key:U.uuid,flexDirection:"row",height:2,minHeight:2},q4.createElement(m,{width:7},M?q4.createElement(y,{color:"blue",bold:!0},H2.pointer," ",V+N+1," "):q4.createElement(y,null," ",V+N+1," ")),q4.createElement(m,{height:1,overflow:"hidden",width:100},R?q4.createElement(m,{width:"100%"},q4.createElement(y,{dimColor:!0,italic:!0},"(current)")):Array.isArray(U.message.content)&&U.message.content[0]?.type==="text"&&dF1(U.message.content[0].text)?q4.createElement(y,{dimColor:!0,italic:!0},"(empty message)"):q4.createElement(yC,{message:eZ(wQ([U])),messages:K,addMargin:!1,tools:G,verbose:!1,erroredToolUseIDs:A,inProgressToolUseIDs:new Set,unresolvedToolUseIDs:D,shouldAnimate:!1,shouldShowDot:!1,progressMessagesForMessage:[]})))})),q4.createElement(m,{marginLeft:3},q4.createElement(y,{dimColor:!0},X.pending?q4.createElement(q4.Fragment,null,"Press ",X.keyName," again to exit"):q4.createElement(q4.Fragment,null,"↑/↓ to select · Enter to confirm · Tab/Esc to cancel"))))}function R25(A){if(A.type!=="user")return!1;if(Array.isArray(A.message.content)&&A.message.content[0]?.type==="tool_result")return!1;if(gF1(A))return!1;if(A.isMeta)return!1;return!0}var Dd=F1(S1(),1);function GV2(A,B){let[Q,I]=Dd.useState(()=>{let W=KV(),F=B?{...W,...B}:W;return Object.entries(F).map(([J,C])=>({name:J,type:"pending",config:C}))}),[G,D]=Dd.useState([]),[Z,Y]=Dd.useState([]);return Dd.useEffect(()=>{I((F)=>{let J=KV(),C=F.filter((X)=>J[X.name]||B?.[X.name]);if(B)Object.entries(B).forEach(([X,V])=>{if(!C.find((K)=>K.name===X))C.push({name:X,type:"pending",config:V})});return C}),D([]),Y([]);let W=0;Yu1(({client:F,tools:J,commands:C})=>{try{if(F.type==="failed"){if(F.config.type!=="sse-ide"&&F.config.type!=="ws-ide")W++;if(W>0){let V={text:`${W} MCP server${W>1?"s":""} failed to connect (see /mcp for info)`,color:"error"};A(V,{timeoutMs:1e4})}}if(F.type==="connected"&&F.client.transport){let K=function(N){if(!V)return;V=!1,IY(F.name,N),I((q)=>q.map((M)=>M.name!==F.name?M:{name:M.name,type:"failed",config:M.config})),D((q)=>q.filter((M)=>!J.includes(M))),Y((q)=>q.filter((M)=>!C.includes(M)))},V=!0;F.client.transport.onclose=()=>{K("transport closed")},F.client.transport.onerror=(N)=>{K(N)};let U=F.client.transport.onmessage;F.client.transport.onmessage=(...N)=>{if(U)U.apply(F.client.transport,N);if(V)return;V=!0,I((q)=>q.map((M)=>M.name!==F.name?M:{...F,type:"connected"})),D((q)=>{return[...q.filter((M)=>!J.includes(M)),...J]}),Y((q)=>{return[...q.filter((M)=>!C.includes(M)),...C]})}}I((V)=>V.map((K)=>K.name===F.name?F:K)),D((V)=>[...V,...J]),Y((V)=>[...V,...C])}catch(X){console.error("Error handling MCP update",X)}},B)},[A,B]),{clients:Q,tools:G,commands:Z}}var DV2=F1(S1(),1);var O25=i.object({method:i.literal("log_event"),params:i.object({eventName:i.string(),eventData:i.object({}).passthrough()})});function ZV2(A){DV2.useEffect(()=>{if(!A.length)return;let B=A.filter((Q)=>Q.type==="connected"&&Q.name==="ide");for(let Q of B)Q.client.setNotificationHandler(O25,async(I)=>{let{eventName:G,eventData:D}=I.params;j1(`tengu_ide_${G}`,D)})},[A])}var bo1=F1(S1(),1);var BK=F1(S1(),1);import{basename as v25}from"path";var YV2=F1(S1(),1);function m5(A){j1("tengu_unary_event",{event:A.event,completion_type:A.completion_type,language_name:A.metadata.language_name,message_id:A.metadata.message_id,platform:A.metadata.platform})}function kC(A,B){YV2.useEffect(()=>{j1("tengu_tool_use_show_permission_request",{messageID:A.assistantMessage.message.id,toolName:A.tool.name}),m5({completion_type:B.completion_type,event:"response",metadata:{language_name:B.language_name,message_id:A.assistantMessage.message.id,platform:uA.platform}})},[A,B])}var Ve=F1(S1(),1);function zD({title:A}){return Ve.createElement(m,{flexDirection:"column"},Ve.createElement(y,{bold:!0,color:$1().permission},A))}var Gj=F1(S1(),1);import{randomUUID as T25}from"crypto";import{basename as P25,resolve as Wr1}from"path";function WV2(A){if(!A)return;let B=A.find((Q)=>Q.type==="connected"&&Q.name==="ide");return B?.type==="connected"?B:void 0}function Zd({onChange:A,toolUseContext:B,filePath:Q,edits:I,editMode:G}){let D=Gj.useRef(!1),Z=Gj.useMemo(()=>T25().slice(0,6),[]),Y=Gj.useMemo(()=>`✻ [Claude Code] ${P25(Q)} (${Z}) ⧉`,[Q,Z]),W=_I1(B.options.mcpClients)&&VA().diffTool==="auto",F=jI1(B.options.mcpClients)??"IDE";async function J(){if(!W)return;j1("tengu_ext_will_show_diff",{});let{oldContent:C,newContent:X}=await _25(Q,I,B,Y);if(D.current)return;j1("tengu_ext_diff_accepted",{});let V=S25(Q,C,X,G);if(V.length===0){j1("tengu_ext_diff_rejected",{}),A("no",{file_path:Q,edits:I});return}A("yes",{file_path:Q,edits:V})}return Gj.useEffect(()=>{return J(),()=>{D.current=!0}},[]),{closeTabInIDE(){let C=WV2(B.options.mcpClients);if(!C)return Promise.resolve();return FV2(Y,B,C)},showingDiffInIDE:W,ideName:F}}function S25(A,B,Q,I){let G=I==="single",D=lW2({filePath:A,oldContent:B,newContent:Q,singleHunk:G});if(D.length===0)return[];if(G&&D.length>1)m1(new Error(`Unexpected number of hunks: ${D.length}. Expected 1 hunk.`));return oW2(D)}async function _25(A,B,Q,I){let G=!1,D=Wr1(dA(),A),Z=b1().existsSync(Wr1(dA(),A))?b1().readFileSync(A,{encoding:"utf8"}):"";async function Y(){if(G)return;G=!0;try{await FV2(I,Q,W)}catch(F){m1(F)}process.off("beforeExit",Y),Q.abortController.signal.removeEventListener("abort",Y)}Q.abortController.signal.addEventListener("abort",Y),process.on("beforeExit",Y);let W=WV2(Q.options.mcpClients);try{let{updatedFile:F}=mm({filePath:A,fileContents:b1().existsSync(Wr1(dA(),A))?b1().readFileSync(A,{encoding:"utf8"}):"",edits:B});if(!W||W.type!=="connected")throw new Error("IDE client not available");let J=await BL("openDiff",{old_file_path:D,new_file_path:A,new_file_contents:F,tab_name:I},W,Q.options.isNonInteractiveSession),C={type:"result",data:Array.isArray(J)?J:[J]};if(k25(C))return Y(),{oldContent:Z,newContent:C.data[1].text};else if(j25(C))return Y(),{oldContent:Z,newContent:F};else if(y25(C))return Y(),{oldContent:Z,newContent:Z};throw new Error("Not accepted")}catch(F){throw m1(F),Y(),F}}async function FV2(A,B,Q){try{if(!Q||Q.type!=="connected")throw new Error("IDE client not available");await BL("close_tab",{tab_name:A},Q,B.options.isNonInteractiveSession)}catch(I){m1(I)}}function j25(A){return A.type==="result"&&Array.isArray(A.data)&&typeof A.data[0]==="object"&&A.data[0]!==null&&"type"in A.data[0]&&A.data[0].type==="text"&&"text"in A.data[0]&&A.data[0].text==="TAB_CLOSED"}function y25(A){return A.type==="result"&&Array.isArray(A.data)&&typeof A.data[0]==="object"&&A.data[0]!==null&&"type"in A.data[0]&&A.data[0].type==="text"&&"text"in A.data[0]&&A.data[0].text==="DIFF_REJECTED"}function k25(A){return A.type==="result"&&Array.isArray(A.data)&&A.data[0]?.type==="text"&&A.data[0].text==="FILE_SAVED"&&typeof A.data[1].text==="string"}var KG=F1(S1(),1);import{basename as x25}from"path";function Yd({onChange:A,options:B,input:Q,file_path:I,ideName:G}){return KG.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},KG.createElement(m,{flexDirection:"column",padding:1},KG.createElement(y,{bold:!0,color:$1().permission},"Opened changes in ",G," ⧉"),AL&&KG.createElement(y,{dimColor:!0},"Save file to continue…")),KG.createElement(m,{flexDirection:"column"},KG.createElement(y,null,"Do you want to make this edit to"," ",KG.createElement(y,{bold:!0},x25(I)),"?"),KG.createElement(A9,{options:B,onChange:(D)=>A(D,Q),onCancel:()=>A("no",Q)})))}function JV2(A,B){if(A.mode!=="acceptEdits")return!1;return j1("tengu_auto_accept_disabled",{}),B({...A,mode:"default"}),!0}function xC(A,B){switch(A.mode){case"acceptEdits":case"bypassPermissions":return!1;case"default":break}return j1("tengu_auto_accept_enabled",{}),B({...A,mode:"acceptEdits"}),!0}var MF=F1(S1(),1),Fr1=F1(S1(),1);import{relative as f25}from"path";function Ke({file_path:A,edits:B,verbose:Q,useBorder:I=!0}){let G=Fr1.useMemo(()=>b1().existsSync(A)?dG(A):"",[A]),D=Fr1.useMemo(()=>EF({filePath:A,fileContents:G,edits:B}),[A,G,B]);return MF.createElement(m,{flexDirection:"column"},MF.createElement(m,{borderColor:$1().secondaryBorder,borderStyle:I?"round":void 0,flexDirection:"column",paddingX:1},MF.createElement(m,{paddingBottom:1},MF.createElement(y,{bold:!0},Q?A:f25(dA(),A))),gY(D.map((Z)=>MF.createElement(zZ,{key:Z.newStart,patch:Z,dim:!1})),(Z)=>MF.createElement(y,{color:$1().secondaryText,key:`ellipsis-${Z}`},"..."))))}function Dj(A){let B=PY(A)?[{label:`Yes, and don't ask again this session (${MA.bold.ansi256(D4().secondaryText)("shift+tab")})`,value:"yes-dont-ask-again"}]:[];return[{label:"Yes",value:"yes"},...B,{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]}function CV2({setToolPermissionContext:A,toolUseConfirm:B,toolUseContext:Q,onDone:I,onReject:G,verbose:D}){let{file_path:Z,new_string:Y,old_string:W}=b3.inputSchema.parse(B.input),F=BK.useMemo(()=>({completion_type:"str_replace_single",language_name:rD(Z)}),[Z]);kC(B,F),J0((K,U)=>{if(U.tab&&U.shift&&Dj(Z).filter((N)=>N.value==="yes-dont-ask-again").length>0){J("yes-dont-ask-again",{file_path:Z,edits:[{old_string:W,new_string:Y}]});return}});function J(K,{file_path:U,edits:N}){C();let{old_string:q,new_string:M}=N[0];if(N.length>1)m1(new Error("Too many edits provided - continuing with just the first edit"));switch(K){case"yes":m5({completion_type:"str_replace_single",event:"accept",metadata:{language_name:rD(U),message_id:B.assistantMessage.message.id,platform:uA.platform}}),I(),B.onAllow("temporary",{file_path:U,new_string:M,old_string:q});break;case"yes-dont-ask-again":m5({completion_type:"str_replace_single",event:"accept",metadata:{language_name:rD(U),message_id:B.assistantMessage.message.id,platform:uA.platform}}),xC(B.toolUseContext.getToolPermissionContext(),A),I(),B.onAllow("permanent",{file_path:U,new_string:M,old_string:q});break;case"no":m5({completion_type:"str_replace_single",event:"reject",metadata:{language_name:rD(U),message_id:B.assistantMessage.message.id,platform:uA.platform}}),I(),G(),B.onReject();break}}let{closeTabInIDE:C,showingDiffInIDE:X,ideName:V}=Zd({onChange:J,toolUseContext:Q,filePath:Z,edits:[{old_string:W,new_string:Y}],editMode:"single"});if(X)return BK.default.createElement(Yd,{onChange:J,options:Dj(Z),file_path:Z,input:{file_path:Z,edits:[{old_string:W,new_string:Y}]},ideName:V});return BK.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},BK.default.createElement(zD,{title:"Edit file"}),BK.default.createElement(Ke,{file_path:Z,edits:[{old_string:W,new_string:Y}],verbose:D}),BK.default.createElement(m,{flexDirection:"column"},BK.default.createElement(y,null,"Do you want to make this edit to"," ",BK.default.createElement(y,{bold:!0},v25(Z)),"?"),BK.default.createElement(A9,{options:Dj(Z),onChange:(K)=>J(K,{file_path:Z,edits:[{old_string:W,new_string:Y}]}),onCancel:()=>J("no",{file_path:Z,edits:[{old_string:W,new_string:Y}]})})))}var C3=F1(S1(),1);var XV2=F1(S1(),1);function OV1(A,B){XV2.useEffect(()=>{j1("tengu_tool_use_show_permission_request",{messageID:A.assistantMessage.message.id,toolName:A.tool.name,isMcp:A.tool.isMcp??!1}),Promise.resolve(B.language_name).then((I)=>{m5({completion_type:B.completion_type,event:"response",metadata:{language_name:I,message_id:A.assistantMessage.message.id,platform:uA.platform}})})},[A,B])}function cR(A,{assistantMessage:{message:{id:B}}},Q){m5({completion_type:A,event:Q,metadata:{language_name:"none",message_id:B,platform:uA.platform}})}function b25(A){switch(A.length){case 0:return"";case 1:return MA.bold(A[0]);case 2:return MA.bold(A[0])+" and "+MA.bold(A[1]);default:return MA.bold(A.slice(0,-1).join(", "))+", and "+MA.bold(A.slice(-1)[0])}}function g25(A){let B=b25(A);if(B.length>50)return"similar";else return B}function h25(A){return A.flatMap((B)=>{if(!B.ruleContent)return[];return Xs1(B.ruleContent)??B.ruleContent})}function VV2({toolUseConfirm:A}){let{permissionResult:B}=A,Q=[],I=B.behavior!=="allow"?B.ruleSuggestions:void 0;if(I&&I.length>0){let G=h25(I);Q=[{label:`Yes, and don't ask again for ${g25(G)} commands in ${MA.bold(u4())}`,value:"yes-dont-ask-again-prefix"}]}return[{label:"Yes",value:"yes"},...Q,{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]}var e5=F1(S1(),1);function KV2(A){switch(A){case"default":return"Default";case"acceptEdits":return"Accept Edits";case"bypassPermissions":return"Bypass Permissions"}}function HV2(A){switch(A){case"default":case"acceptEdits":return null;case"bypassPermissions":return"Bypassing Permissions"}}function m25(A){switch(A){case"cliArg":return"CLI argument";case"localSettings":return"local settings";case"projectSettings":return"project settings";case"policySettings":return"managed settings";case"userSettings":return"global settings"}}function zV2(A){switch(A.type){case"rule":return`${MA.bold(a8(A.rule.ruleValue))} rule from ${m25(A.rule.source)}`;case"mode":return`${KV2(A.mode)} mode`;case"other":return A.reason;case"permissionPromptTool":return`${MA.bold(A.permissionPromptToolName)} permission prompt tool`}}function d25({title:A,decisionReason:B}){let Q=D4();function I(){switch(B.type){case"subcommandResults":return e5.default.createElement(m,{flexDirection:"column"},Array.from(B.reasons.entries()).map(([G,D])=>{let Z=D.behavior==="allow"?MA.ansi256(Q.success)(H2.tick):MA.ansi256(Q.error)(H2.cross);return e5.default.createElement(m,{flexDirection:"column",key:G},e5.default.createElement(y,null,Z," ",G),D.decisionReason!==void 0&&D.decisionReason.type!=="subcommandResults"&&e5.default.createElement(y,null," ","⎿"," ",zV2(D.decisionReason)),D.behavior!=="allow"&&D.ruleSuggestions&&e5.default.createElement(y,null," ","⎿"," ","Suggested rules:"," ",D.ruleSuggestions.map((Y)=>MA.bold(a8(Y))).join(", ")))}));default:return e5.default.createElement(y,null,zV2(B))}}return e5.default.createElement(m,{flexDirection:"column"},A&&e5.default.createElement(y,null,A),I())}function wV2({permissionResult:A}){let B=A.decisionReason,Q=A.behavior!=="allow"?A.ruleSuggestions:void 0,I=10;return e5.default.createElement(m,{flexDirection:"column"},e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{justifyContent:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Behavior ")),e5.default.createElement(y,null,A.behavior)),A.behavior!=="allow"&&e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{justifyContent:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Message ")),e5.default.createElement(y,null,A.message)),e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{justifyContent:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Reason ")),B===void 0?e5.default.createElement(y,null,"undefined"):e5.default.createElement(d25,{decisionReason:B})),e5.default.createElement(m,{flexDirection:"row"},e5.default.createElement(m,{flexDirection:"column",alignItems:"flex-end",minWidth:10},e5.default.createElement(y,{dimColor:!0},"Suggested "),e5.default.createElement(y,{dimColor:!0},"rules ")),Q==null||Q.length===0?e5.default.createElement(y,null,"None"):Q.map((G,D)=>e5.default.createElement(y,{key:D},H2.bullet," ",a8(G)))))}function EV2({setToolPermissionContext:A,toolUseConfirm:B,onDone:Q,onReject:I}){let G=$1(),{command:D,description:Z}=X4.inputSchema.parse(B.input),[Y,W]=C3.useState(!1),F=C3.useMemo(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);OV1(B,F);let J=C3.useMemo(()=>VV2({toolUseConfirm:B}),[B]);J0((X,V)=>{if(V.ctrl&&X==="d")W((K)=>!K)});function C(X){switch(X){case"yes":cR("tool_use_single",B,"accept"),B.onAllow("temporary",B.input),Q();break;case"yes-dont-ask-again-prefix":{cR("tool_use_single",B,"accept");let V=B.permissionResult.behavior!=="allow"?B.permissionResult.ruleSuggestions:void 0;if(V)vr({ruleValues:V,ruleBehavior:"allow",destination:"localSettings",initialContext:B.toolUseContext.getToolPermissionContext(),setToolPermissionContext:A}).then(()=>{B.onAllow("permanent",B.input),Q()});else B.onAllow("temporary",B.input),Q();break}case"no":cR("tool_use_single",B,"reject"),B.onReject(),I(),Q();break}}return C3.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:G.permission,marginTop:1,paddingLeft:1,paddingRight:1},C3.default.createElement(zD,{title:"Bash command"}),C3.default.createElement(m,{flexDirection:"column",paddingX:2,paddingY:1},C3.default.createElement(y,null,X4.renderToolUseMessage({command:D,description:Z})),C3.default.createElement(y,{color:G.secondaryText},B.description)),Y?C3.default.createElement(C3.default.Fragment,null,C3.default.createElement(wV2,{permissionResult:B.permissionResult}),B.toolUseContext.options.debug&&C3.default.createElement(m,{justifyContent:"flex-end",marginTop:1},C3.default.createElement(y,{dimColor:!0},"Ctrl-D to hide debug info"))):C3.default.createElement(C3.default.Fragment,null,C3.default.createElement(m,{flexDirection:"column"},C3.default.createElement(y,null,"Do you want to proceed?"),C3.default.createElement(A9,{options:J,onChange:C,onCancel:()=>C("no")})),B.toolUseContext.options.debug&&C3.default.createElement(m,{justifyContent:"flex-end"},C3.default.createElement(y,{dimColor:!0},"Ctrl-D to show debug info"))))}var LF=F1(S1(),1);function TV1({setToolPermissionContext:A,toolUseConfirm:B,onDone:Q,onReject:I,verbose:G}){let D=$1(),Z=B.tool.userFacingName(B.input),Y=Z.endsWith(" (MCP)")?Z.slice(0,-6):Z,W=LF.useMemo(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);kC(B,W);let F=(X)=>{switch(X){case"yes":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onAllow("temporary",B.input),Q();break;case"yes-dont-ask-again":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:B.assistantMessage.message.id,platform:uA.platform}}),HF1({rule:{ruleBehavior:"allow",ruleValue:{toolName:B.tool.name},source:"localSettings"},initialContext:B.toolUseContext.getToolPermissionContext(),setToolPermissionContext:A}).then(()=>{B.onAllow("permanent",B.input),Q()});break;case"no":m5({completion_type:"tool_use_single",event:"reject",metadata:{language_name:"none",message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onReject(),I(),Q();break}},J=u4(),C=LF.useMemo(()=>{return[{label:"Yes",value:"yes"},{label:`Yes, and don't ask again for ${MA.bold(Y)} commands in ${MA.bold(J)}`,value:"yes-dont-ask-again"},{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]},[Y,J]);return LF.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},LF.default.createElement(zD,{title:"Tool use"}),LF.default.createElement(m,{flexDirection:"column",paddingX:2,paddingY:1},LF.default.createElement(y,null,Y,"(",B.tool.renderToolUseMessage(B.input,{verbose:G}),")",Z.endsWith(" (MCP)")?LF.default.createElement(y,{color:D.secondaryText}," (MCP)"):""),LF.default.createElement(y,{color:D.secondaryText},B.description)),LF.default.createElement(m,{flexDirection:"column"},LF.default.createElement(y,null,"Do you want to proceed?"),LF.default.createElement(A9,{options:C,onChange:F,onCancel:()=>F("no")})))}var Jr1=F1(S1(),1);var Cr1=6000;function u25(){return Date.now()-l21()}function p25(A){return u25()<A}function c25(A){return!p25(A)}var l25=b0(()=>process.stdin.on("data",Op));function Xr1(A,B=Cr1){Jr1.useEffect(()=>{l25(),Op()},[]),Jr1.useEffect(()=>{let Q=!1,I=setInterval(()=>{if(c25(B)&&!Q)Q=!0,Gd({message:A})},B);return()=>clearTimeout(I)},[A,B])}var lY=F1(S1(),1);import{basename as a25}from"path";var RF=F1(S1(),1),PV1=F1(S1(),1);import{extname as i25,relative as n25}from"path";function Vr1({file_path:A,content:B,verbose:Q}){let I=PV1.useMemo(()=>b1().existsSync(A),[A]),G=PV1.useMemo(()=>{if(!I)return"";let Z=nI(A);return b1().readFileSync(A,{encoding:Z})},[A,I]),D=PV1.useMemo(()=>{if(!I)return null;return EF({filePath:A,fileContents:G,edits:[{old_string:G,new_string:B}]})},[I,A,G,B]);return RF.createElement(m,{borderColor:$1().secondaryBorder,borderStyle:"round",flexDirection:"column",paddingX:1},RF.createElement(m,{paddingBottom:1},RF.createElement(y,{bold:!0},Q?A:n25(dA(),A))),D?gY(D.map((Z)=>RF.createElement(zZ,{key:Z.newStart,patch:Z,dim:!1})),(Z)=>RF.createElement(y,{color:$1().secondaryText,key:`ellipsis-${Z}`},"...")):RF.createElement(VC,{code:B||"(No content)",language:i25(A).slice(1)}))}function Kr1(A){return[{label:"Yes",value:"yes"},...PY(A)?[{label:`Yes, and don't ask again this session (${MA.bold.ansi256(D4().secondaryText)("shift+tab")})`,value:"yes-dont-ask-again"}]:[],{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]}function UV2({setToolPermissionContext:A,toolUseConfirm:B,toolUseContext:Q,onDone:I,onReject:G,verbose:D}){let{file_path:Z,content:Y}=CG.inputSchema.parse(B.input),W=lY.useMemo(()=>b1().existsSync(Z),[Z]),F=lY.useMemo(()=>({completion_type:"write_file_single",language_name:rD(Z)}),[Z]);kC(B,F);function J(U,{file_path:N,content:q}){switch(X(),U){case"yes":m5({completion_type:"write_file_single",event:"accept",metadata:{language_name:rD(N),message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onAllow("temporary",{file_path:N,content:q}),I();break;case"yes-dont-ask-again":m5({completion_type:"write_file_single",event:"accept",metadata:{language_name:rD(N),message_id:B.assistantMessage.message.id,platform:uA.platform}}),xC(B.toolUseContext.getToolPermissionContext(),A),I(),B.onAllow("permanent",{file_path:N,content:q});break;case"no":m5({completion_type:"write_file_single",event:"reject",metadata:{language_name:rD(N),message_id:B.assistantMessage.message.id,platform:uA.platform}}),B.onReject(),G(),I();break}}J0((U,N)=>{if(N.tab&&N.shift&&Kr1(Z).filter((q)=>q.value==="yes-dont-ask-again").length>0)J("yes-dont-ask-again",{file_path:Z,content:Y})});let C=lY.useMemo(()=>b1().existsSync(Z)?dG(Z):"",[Z]),{closeTabInIDE:X,showingDiffInIDE:V,ideName:K}=Zd({onChange(U,{file_path:N,edits:q}){J(U,{file_path:N,content:q[0].new_string})},toolUseContext:Q,filePath:Z,edits:[{old_string:C,new_string:Y}],editMode:"single"});if(V)return lY.default.createElement(Yd,{onChange:(U,{file_path:N,new_string:q})=>{J(U,{file_path:N,content:q})},options:Kr1(Z),file_path:Z,input:{file_path:Z,old_string:C,new_string:Y},ideName:K});return lY.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},lY.default.createElement(zD,{title:`${W?"Edit":"Create"} file`}),lY.default.createElement(m,{flexDirection:"column"},lY.default.createElement(Vr1,{file_path:Z,content:Y,verbose:D})),lY.default.createElement(m,{flexDirection:"column"},lY.default.createElement(y,null,"Do you want to ",W?"make this edit to":"create"," ",lY.default.createElement(y,{bold:!0},a25(Z)),"?"),lY.default.createElement(A9,{options:Kr1(Z),onChange:(U)=>J(U,{file_path:Z,content:Y}),onCancel:()=>J("no",{file_path:Z,content:Y})})))}var fC=F1(S1(),1);function s25(A){let B=A.tool;if("getPath"in B&&typeof B.getPath==="function")try{return B.getPath(A.input)}catch{return null}return null}function r25(A){let B=FG(A);try{return b1().existsSync(B)&&b1().statSync(B).isFile()}catch{return!1}}function o25(A,B){if(A.tool.isReadOnly(A.input))return[];return B&&PY(B)?[{label:"Yes, and don't ask again for file edits this session",value:"yes-dont-ask-again"}]:[]}function NV2({toolUseConfirm:A,onDone:B,onReject:Q,verbose:I,setToolPermissionContext:G,toolUseContext:D}){let Z=s25(A),Y=A.tool.userFacingName(A.input),F=`${A.tool.isReadOnly(A.input)?"Read":"Edit"} ${Z&&r25(Z)?"files":"file"}`,J=fC.useMemo(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);kC(A,J);let C=fC.useMemo(()=>{let V=o25(A,Z);return[{label:"Yes",value:"yes"},...V,{label:`No, and tell Claude what to do differently (${MA.bold.ansi256(D4().secondaryText)("esc")})`,value:"no"}]},[A,Z]);function X(V){switch(V){case"yes":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:A.assistantMessage.message.id,platform:uA.platform}}),A.onAllow("temporary",A.input),B();break;case"yes-dont-ask-again":m5({completion_type:"tool_use_single",event:"accept",metadata:{language_name:"none",message_id:A.assistantMessage.message.id,platform:uA.platform}}),xC(A.toolUseContext.getToolPermissionContext(),G),A.onAllow("permanent",A.input),B();break;case"no":m5({completion_type:"tool_use_single",event:"reject",metadata:{language_name:"none",message_id:A.assistantMessage.message.id,platform:uA.platform}}),A.onReject(),Q(),B();break}}if(!Z)return fC.default.createElement(TV1,{setToolPermissionContext:G,toolUseConfirm:A,toolUseContext:D,onDone:B,onReject:Q,verbose:I});return fC.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().permission,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1},fC.default.createElement(zD,{title:F}),fC.default.createElement(m,{flexDirection:"column",paddingX:2,paddingY:1},fC.default.createElement(y,null,Y,"(",A.tool.renderToolUseMessage(A.input,{verbose:I}),")")),fC.default.createElement(m,{flexDirection:"column"},fC.default.createElement(y,null,"Do you want to proceed?"),fC.default.createElement(A9,{options:C,onChange:X,onCancel:()=>X("no")})))}var NZ=F1(S1(),1);import{extname as t25,isAbsolute as $V2,relative as e25,resolve as qV2}from"path";var A95=i.strictObject({notebook_path:i.string().describe("The absolute path to the Jupyter notebook file to read (must be absolute, not relative)")}),He={name:xh,async description(){return Nm0},async prompt(){return $m0},userFacingName(){return"Read Notebook"},isEnabled(){return!0},inputSchema:A95,isReadOnly(){return!0},getPath({notebook_path:A}){return A},async checkPermissions(A,B){return iz(He,A,B.getToolPermissionContext())},async validateInput({notebook_path:A}){let B=$V2(A)?A:qV2(dA(),A);if(!b1().existsSync(B)){let I=$x(B),G="File does not exist.";if(I)G+=` Did you mean ${I}?`;return{result:!1,message:G,errorCode:1}}if(t25(B)!==".ipynb")return{result:!1,message:"File must be a Jupyter notebook (.ipynb file).",errorCode:2};return{result:!0}},renderToolUseMessage(A,{verbose:B}){return B?A.notebook_path:e25(dA(),A.notebook_path)},renderToolUseRejectedMessage(){return NZ.createElement(c6,null)},renderToolUseErrorMessage(A,{verbose:B}){return NZ.createElement(X6,{result:A,verbose:B})},renderToolUseProgressMessage(){return null},renderToolResultMessage(A){if(!A)return NZ.createElement(y,{color:$1().error},"No cells found in notebook");if(A.length<1||!A[0])return NZ.createElement(y,{color:$1().error},"No cells found in notebook");return NZ.createElement(c0,{height:1},NZ.createElement(y,null,"Read ",NZ.createElement(y,{bold:!0},A.length)," cells"))},async*call({notebook_path:A}){let B=$V2(A)?A:qV2(dA(),A),Q=b1().readFileSync(B,{encoding:"utf-8"}),I=JSON.parse(Q),G=I.metadata.language_info?.name??"python";yield{type:"result",data:I.cells.map((Z,Y)=>I95(Z,Y,G))}},mapToolResultToToolResultBlockParam(A,B){let Q=A.flatMap(Z95);return{tool_use_id:B,type:"tool_result",content:Q.reduce((I,G)=>{if(I.length===0)return[G];let D=I[I.length-1];if(D&&D.type==="text"&&G.type==="text")return D.text+=`
1954
1954
  `+G.text,I;return[...I,G]},[])}}};function Hr1(A){if(!A)return"";let B=Array.isArray(A)?A.join(""):A,{truncatedContent:Q}=kt(B);return Q}function B95(A){if(typeof A["image/png"]==="string")return{image_data:A["image/png"],media_type:"image/png"};if(typeof A["image/jpeg"]==="string")return{image_data:A["image/jpeg"],media_type:"image/jpeg"};return}function Q95(A){switch(A.output_type){case"stream":return{output_type:A.output_type,text:Hr1(A.text)};case"execute_result":case"display_data":return{output_type:A.output_type,text:Hr1(A.data?.["text/plain"]),image:A.data&&B95(A.data)};case"error":return{output_type:A.output_type,text:Hr1(`${A.ename}: ${A.evalue}
1955
1955
  ${A.traceback.join(`
1956
1956
  `)}`)}}}function I95(A,B,Q){let I={cell:B,cellType:A.cell_type,source:Array.isArray(A.source)?A.source.join(""):A.source,language:Q,execution_count:A.execution_count};if(A.outputs?.length)I.outputs=A.outputs.map(Q95);return I}function G95(A){let B=[];if(A.cellType!=="code")B.push(`<cell_type>${A.cellType}</cell_type>`);if(A.language!=="python"&&A.cellType==="code")B.push(`<language>${A.language}</language>`);return{text:`<cell ${A.cell}>${B.join("")}${A.source}</cell ${A.cell}>`,type:"text"}}function D95(A){let B=[];if(A.text)B.push({text:`
@@ -1960,13 +1960,13 @@ ${A.text}`,type:"text"});if(A.image)B.push({type:"image",source:{data:A.image.im
1960
1960
 
1961
1961
  Files modified by other users:
1962
1962
  `+Z}let G=(await KD({systemPrompt:["You are an expert at analyzing git history. Given a list of files and their modification counts, return exactly five filenames that are frequently modified and represent core application logic (not auto-generated files, dependencies, or configuration). Make sure filenames are diverse, not all in the same folder, and are a mix of user and other users. Return only the filenames' basenames (without the path) separated by newlines with no explanation."],userPrompt:B,isNonInteractiveSession:A})).message.content[0];if(!G||G.type!=="text")return[];let D=G.text.trim().split(`
1963
- `);if(D.length<5)return[];return D}catch(B){return m1(B),[]}}var XK1=b0(async(A)=>{let B=E9(),Q=Date.now(),I=B.exampleFilesGeneratedAt??0,G=604800000;if(Q-I>604800000)B.exampleFiles=[];if(!B.exampleFiles?.length)L85(A).then((Z)=>{if(Z.length)_6({...E9(),exampleFiles:Z,exampleFilesGeneratedAt:Date.now()})});let D=B.exampleFiles?.length?MT(B.exampleFiles):"<filepath>";return["fix lint errors","fix typecheck errors",`how does ${D} work?`,`refactor ${D}`,"how do I log an error?",`edit ${D} to...`,`write a test for ${D}`,"create a util logging.py that..."]});var A8=F1(S1(),1);var go1=F1(S1(),1);function Bw2(A,B,Q){let[I,G]=go1.useState(0),[D,Z]=go1.useState(void 0),Y=(C)=>{if(C!==void 0){let X=C.display.startsWith("!")?"bash":C.display.startsWith("#")?"memory":"prompt",V=X==="bash"||X==="memory"?C.display.slice(1):C.display;A(V,X,C.pastedContents)}};function W(){let C=S71();if(I<C.length){if(I===0&&B.trim()!=="")Z({display:B,pastedContents:Q});let X=I+1;G(X),Y(C[I])}}function F(){let C=S71();if(I>1){let X=I-1;G(X),Y(C[X-1])}else if(I===1)G(0),Y(D);return I<=0}function J(){Z(void 0),G(0)}return{historyIndex:I,setHistoryIndex:G,onHistoryUp:W,onHistoryDown:F,resetHistory:J}}var xw=F1(S1(),1);function dN(A){return!Array.isArray?Fw2(A)==="[object Array]":Array.isArray(A)}var R85=1/0;function O85(A){if(typeof A=="string")return A;let B=A+"";return B=="0"&&1/A==-R85?"-0":B}function T85(A){return A==null?"":O85(A)}function _w(A){return typeof A==="string"}function Yw2(A){return typeof A==="number"}function P85(A){return A===!0||A===!1||S85(A)&&Fw2(A)=="[object Boolean]"}function Ww2(A){return typeof A==="object"}function S85(A){return Ww2(A)&&A!==null}function TF(A){return A!==void 0&&A!==null}function ho1(A){return!A.trim().length}function Fw2(A){return A==null?A===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(A)}var _85="Incorrect 'index' type",j85=(A)=>`Invalid value for key ${A}`,y85=(A)=>`Pattern length exceeds max of ${A}.`,k85=(A)=>`Missing ${A} property in key`,x85=(A)=>`Property 'weight' in key '${A}' must be a positive integer`,Qw2=Object.prototype.hasOwnProperty;class Jw2{constructor(A){this._keys=[],this._keyMap={};let B=0;A.forEach((Q)=>{let I=Cw2(Q);this._keys.push(I),this._keyMap[I.id]=I,B+=I.weight}),this._keys.forEach((Q)=>{Q.weight/=B})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Cw2(A){let B=null,Q=null,I=null,G=1,D=null;if(_w(A)||dN(A))I=A,B=Iw2(A),Q=mo1(A);else{if(!Qw2.call(A,"name"))throw new Error(k85("name"));let Z=A.name;if(I=Z,Qw2.call(A,"weight")){if(G=A.weight,G<=0)throw new Error(x85(Z))}B=Iw2(Z),Q=mo1(Z),D=A.getFn}return{path:B,id:Q,weight:G,src:I,getFn:D}}function Iw2(A){return dN(A)?A:A.split(".")}function mo1(A){return dN(A)?A.join("."):A}function f85(A,B){let Q=[],I=!1,G=(D,Z,Y)=>{if(!TF(D))return;if(!Z[Y])Q.push(D);else{let W=Z[Y],F=D[W];if(!TF(F))return;if(Y===Z.length-1&&(_w(F)||Yw2(F)||P85(F)))Q.push(T85(F));else if(dN(F)){I=!0;for(let J=0,C=F.length;J<C;J+=1)G(F[J],Z,Y+1)}else if(Z.length)G(F,Z,Y+1)}};return G(A,_w(B)?B.split("."):B,0),I?Q:Q[0]}var v85={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},b85={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(A,B)=>A.score===B.score?A.idx<B.idx?-1:1:A.score<B.score?-1:1},g85={location:0,threshold:0.6,distance:100},h85={useExtendedSearch:!1,getFn:f85,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},V4={...b85,...v85,...g85,...h85},m85=/[^ ]+/g;function d85(A=1,B=3){let Q=new Map,I=Math.pow(10,B);return{get(G){let D=G.match(m85).length;if(Q.has(D))return Q.get(D);let Z=1/Math.pow(D,0.5*A),Y=parseFloat(Math.round(Z*I)/I);return Q.set(D,Y),Y},clear(){Q.clear()}}}class HK1{constructor({getFn:A=V4.getFn,fieldNormWeight:B=V4.fieldNormWeight}={}){this.norm=d85(B,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((B,Q)=>{this._keysMap[B.id]=Q})}create(){if(this.isCreated||!this.docs.length)return;if(this.isCreated=!0,_w(this.docs[0]))this.docs.forEach((A,B)=>{this._addString(A,B)});else this.docs.forEach((A,B)=>{this._addObject(A,B)});this.norm.clear()}add(A){let B=this.size();if(_w(A))this._addString(A,B);else this._addObject(A,B)}removeAt(A){this.records.splice(A,1);for(let B=A,Q=this.size();B<Q;B+=1)this.records[B].i-=1}getValueForItemAtKeyId(A,B){return A[this._keysMap[B]]}size(){return this.records.length}_addString(A,B){if(!TF(A)||ho1(A))return;let Q={v:A,i:B,n:this.norm.get(A)};this.records.push(Q)}_addObject(A,B){let Q={i:B,$:{}};this.keys.forEach((I,G)=>{let D=I.getFn?I.getFn(A):this.getFn(A,I.path);if(!TF(D))return;if(dN(D)){let Z=[],Y=[{nestedArrIndex:-1,value:D}];while(Y.length){let{nestedArrIndex:W,value:F}=Y.pop();if(!TF(F))continue;if(_w(F)&&!ho1(F)){let J={v:F,i:W,n:this.norm.get(F)};Z.push(J)}else if(dN(F))F.forEach((J,C)=>{Y.push({nestedArrIndex:C,value:J})})}Q.$[G]=Z}else if(_w(D)&&!ho1(D)){let Z={v:D,n:this.norm.get(D)};Q.$[G]=Z}}),this.records.push(Q)}toJSON(){return{keys:this.keys,records:this.records}}}function Xw2(A,B,{getFn:Q=V4.getFn,fieldNormWeight:I=V4.fieldNormWeight}={}){let G=new HK1({getFn:Q,fieldNormWeight:I});return G.setKeys(A.map(Cw2)),G.setSources(B),G.create(),G}function u85(A,{getFn:B=V4.getFn,fieldNormWeight:Q=V4.fieldNormWeight}={}){let{keys:I,records:G}=A,D=new HK1({getFn:B,fieldNormWeight:Q});return D.setKeys(I),D.setIndexRecords(G),D}function VK1(A,{errors:B=0,currentLocation:Q=0,expectedLocation:I=0,distance:G=V4.distance,ignoreLocation:D=V4.ignoreLocation}={}){let Z=B/A.length;if(D)return Z;let Y=Math.abs(I-Q);if(!G)return Y?1:Z;return Z+Y/G}function p85(A=[],B=V4.minMatchCharLength){let Q=[],I=-1,G=-1,D=0;for(let Z=A.length;D<Z;D+=1){let Y=A[D];if(Y&&I===-1)I=D;else if(!Y&&I!==-1){if(G=D-1,G-I+1>=B)Q.push([I,G]);I=-1}}if(A[D-1]&&D-I>=B)Q.push([I,D-1]);return Q}var Kj=32;function c85(A,B,Q,{location:I=V4.location,distance:G=V4.distance,threshold:D=V4.threshold,findAllMatches:Z=V4.findAllMatches,minMatchCharLength:Y=V4.minMatchCharLength,includeMatches:W=V4.includeMatches,ignoreLocation:F=V4.ignoreLocation}={}){if(B.length>Kj)throw new Error(y85(Kj));let J=B.length,C=A.length,X=Math.max(0,Math.min(I,C)),V=D,K=X,U=Y>1||W,N=U?Array(C):[],q;while((q=A.indexOf(B,K))>-1){let f=VK1(B,{currentLocation:q,expectedLocation:X,distance:G,ignoreLocation:F});if(V=Math.min(f,V),K=q+J,U){let n=0;while(n<J)N[q+n]=1,n+=1}}K=-1;let M=[],R=1,T=J+C,O=1<<J-1;for(let f=0;f<J;f+=1){let n=0,g=T;while(n<g){if(VK1(B,{errors:f,currentLocation:X+g,expectedLocation:X,distance:G,ignoreLocation:F})<=V)n=g;else T=g;g=Math.floor((T-n)/2+n)}T=g;let Y1=Math.max(1,X-g+1),r=Z?C:Math.min(X+g,C)+J,w1=Array(r+2);w1[r+1]=(1<<f)-1;for(let x=r;x>=Y1;x-=1){let J1=x-1,x1=Q[A.charAt(J1)];if(U)N[J1]=+!!x1;if(w1[x]=(w1[x+1]<<1|1)&x1,f)w1[x]|=(M[x+1]|M[x])<<1|1|M[x+1];if(w1[x]&O){if(R=VK1(B,{errors:f,currentLocation:J1,expectedLocation:X,distance:G,ignoreLocation:F}),R<=V){if(V=R,K=J1,K<=X)break;Y1=Math.max(1,2*X-K)}}}if(VK1(B,{errors:f+1,currentLocation:X,expectedLocation:X,distance:G,ignoreLocation:F})>V)break;M=w1}let S={isMatch:K>=0,score:Math.max(0.001,R)};if(U){let f=p85(N,Y);if(!f.length)S.isMatch=!1;else if(W)S.indices=f}return S}function l85(A){let B={};for(let Q=0,I=A.length;Q<I;Q+=1){let G=A.charAt(Q);B[G]=(B[G]||0)|1<<I-Q-1}return B}class io1{constructor(A,{location:B=V4.location,threshold:Q=V4.threshold,distance:I=V4.distance,includeMatches:G=V4.includeMatches,findAllMatches:D=V4.findAllMatches,minMatchCharLength:Z=V4.minMatchCharLength,isCaseSensitive:Y=V4.isCaseSensitive,ignoreLocation:W=V4.ignoreLocation}={}){if(this.options={location:B,threshold:Q,distance:I,includeMatches:G,findAllMatches:D,minMatchCharLength:Z,isCaseSensitive:Y,ignoreLocation:W},this.pattern=Y?A:A.toLowerCase(),this.chunks=[],!this.pattern.length)return;let F=(C,X)=>{this.chunks.push({pattern:C,alphabet:l85(C),startIndex:X})},J=this.pattern.length;if(J>Kj){let C=0,X=J%Kj,V=J-X;while(C<V)F(this.pattern.substr(C,Kj),C),C+=Kj;if(X){let K=J-Kj;F(this.pattern.substr(K),K)}}else F(this.pattern,0)}searchIn(A){let{isCaseSensitive:B,includeMatches:Q}=this.options;if(!B)A=A.toLowerCase();if(this.pattern===A){let V={isMatch:!0,score:0};if(Q)V.indices=[[0,A.length-1]];return V}let{location:I,distance:G,threshold:D,findAllMatches:Z,minMatchCharLength:Y,ignoreLocation:W}=this.options,F=[],J=0,C=!1;this.chunks.forEach(({pattern:V,alphabet:K,startIndex:U})=>{let{isMatch:N,score:q,indices:M}=c85(A,V,K,{location:I+U,distance:G,threshold:D,findAllMatches:Z,minMatchCharLength:Y,includeMatches:Q,ignoreLocation:W});if(N)C=!0;if(J+=q,N&&M)F=[...F,...M]});let X={isMatch:C,score:C?J/this.chunks.length:1};if(C&&Q)X.indices=F;return X}}class uN{constructor(A){this.pattern=A}static isMultiMatch(A){return Gw2(A,this.multiRegex)}static isSingleMatch(A){return Gw2(A,this.singleRegex)}search(){}}function Gw2(A,B){let Q=A.match(B);return Q?Q[1]:null}class Vw2 extends uN{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){let B=A===this.pattern;return{isMatch:B,score:B?0:1,indices:[0,this.pattern.length-1]}}}class Kw2 extends uN{constructor(A){super(A)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(A){let Q=A.indexOf(this.pattern)===-1;return{isMatch:Q,score:Q?0:1,indices:[0,A.length-1]}}}class Hw2 extends uN{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){let B=A.startsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[0,this.pattern.length-1]}}}class zw2 extends uN{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){let B=!A.startsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[0,A.length-1]}}}class ww2 extends uN{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){let B=A.endsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class Ew2 extends uN{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){let B=!A.endsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[0,A.length-1]}}}class no1 extends uN{constructor(A,{location:B=V4.location,threshold:Q=V4.threshold,distance:I=V4.distance,includeMatches:G=V4.includeMatches,findAllMatches:D=V4.findAllMatches,minMatchCharLength:Z=V4.minMatchCharLength,isCaseSensitive:Y=V4.isCaseSensitive,ignoreLocation:W=V4.ignoreLocation}={}){super(A);this._bitapSearch=new io1(A,{location:B,threshold:Q,distance:I,includeMatches:G,findAllMatches:D,minMatchCharLength:Z,isCaseSensitive:Y,ignoreLocation:W})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class ao1 extends uN{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let B=0,Q,I=[],G=this.pattern.length;while((Q=A.indexOf(this.pattern,B))>-1)B=Q+G,I.push([Q,B-1]);let D=!!I.length;return{isMatch:D,score:D?0:1,indices:I}}}var do1=[Vw2,ao1,Hw2,zw2,Ew2,ww2,Kw2,no1],Dw2=do1.length,i85=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,n85="|";function a85(A,B={}){return A.split(n85).map((Q)=>{let I=Q.trim().split(i85).filter((D)=>D&&!!D.trim()),G=[];for(let D=0,Z=I.length;D<Z;D+=1){let Y=I[D],W=!1,F=-1;while(!W&&++F<Dw2){let J=do1[F],C=J.isMultiMatch(Y);if(C)G.push(new J(C,B)),W=!0}if(W)continue;F=-1;while(++F<Dw2){let J=do1[F],C=J.isSingleMatch(Y);if(C){G.push(new J(C,B));break}}}return G})}var s85=new Set([no1.type,ao1.type]);class Uw2{constructor(A,{isCaseSensitive:B=V4.isCaseSensitive,includeMatches:Q=V4.includeMatches,minMatchCharLength:I=V4.minMatchCharLength,ignoreLocation:G=V4.ignoreLocation,findAllMatches:D=V4.findAllMatches,location:Z=V4.location,threshold:Y=V4.threshold,distance:W=V4.distance}={}){this.query=null,this.options={isCaseSensitive:B,includeMatches:Q,minMatchCharLength:I,findAllMatches:D,ignoreLocation:G,location:Z,threshold:Y,distance:W},this.pattern=B?A:A.toLowerCase(),this.query=a85(this.pattern,this.options)}static condition(A,B){return B.useExtendedSearch}searchIn(A){let B=this.query;if(!B)return{isMatch:!1,score:1};let{includeMatches:Q,isCaseSensitive:I}=this.options;A=I?A:A.toLowerCase();let G=0,D=[],Z=0;for(let Y=0,W=B.length;Y<W;Y+=1){let F=B[Y];D.length=0,G=0;for(let J=0,C=F.length;J<C;J+=1){let X=F[J],{isMatch:V,indices:K,score:U}=X.search(A);if(V){if(G+=1,Z+=U,Q){let N=X.constructor.type;if(s85.has(N))D=[...D,...K];else D.push(K)}}else{Z=0,G=0,D.length=0;break}}if(G){let J={isMatch:!0,score:Z/G};if(Q)J.indices=D;return J}}return{isMatch:!1,score:1}}}var uo1=[];function r85(...A){uo1.push(...A)}function po1(A,B){for(let Q=0,I=uo1.length;Q<I;Q+=1){let G=uo1[Q];if(G.condition(A,B))return new G(A,B)}return new io1(A,B)}var KK1={AND:"$and",OR:"$or"},co1={PATH:"$path",PATTERN:"$val"},lo1=(A)=>!!(A[KK1.AND]||A[KK1.OR]),o85=(A)=>!!A[co1.PATH],t85=(A)=>!dN(A)&&Ww2(A)&&!lo1(A),Zw2=(A)=>({[KK1.AND]:Object.keys(A).map((B)=>({[B]:A[B]}))});function Nw2(A,B,{auto:Q=!0}={}){let I=(G)=>{let D=Object.keys(G),Z=o85(G);if(!Z&&D.length>1&&!lo1(G))return I(Zw2(G));if(t85(G)){let W=Z?G[co1.PATH]:D[0],F=Z?G[co1.PATTERN]:G[W];if(!_w(F))throw new Error(j85(W));let J={keyId:mo1(W),pattern:F};if(Q)J.searcher=po1(F,B);return J}let Y={children:[],operator:D[0]};return D.forEach((W)=>{let F=G[W];if(dN(F))F.forEach((J)=>{Y.children.push(I(J))})}),Y};if(!lo1(A))A=Zw2(A);return I(A)}function e85(A,{ignoreFieldNorm:B=V4.ignoreFieldNorm}){A.forEach((Q)=>{let I=1;Q.matches.forEach(({key:G,norm:D,score:Z})=>{let Y=G?G.weight:null;I*=Math.pow(Z===0&&Y?Number.EPSILON:Z,(Y||1)*(B?1:D))}),Q.score=I})}function AB5(A,B){let Q=A.matches;if(B.matches=[],!TF(Q))return;Q.forEach((I)=>{if(!TF(I.indices)||!I.indices.length)return;let{indices:G,value:D}=I,Z={indices:G,value:D};if(I.key)Z.key=I.key.src;if(I.idx>-1)Z.refIndex=I.idx;B.matches.push(Z)})}function BB5(A,B){B.score=A.score}function QB5(A,B,{includeMatches:Q=V4.includeMatches,includeScore:I=V4.includeScore}={}){let G=[];if(Q)G.push(AB5);if(I)G.push(BB5);return A.map((D)=>{let{idx:Z}=D,Y={item:B[Z],refIndex:Z};if(G.length)G.forEach((W)=>{W(D,Y)});return Y})}class jw{constructor(A,B={},Q){this.options={...V4,...B},this.options.useExtendedSearch,this._keyStore=new Jw2(this.options.keys),this.setCollection(A,Q)}setCollection(A,B){if(this._docs=A,B&&!(B instanceof HK1))throw new Error(_85);this._myIndex=B||Xw2(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){if(!TF(A))return;this._docs.push(A),this._myIndex.add(A)}remove(A=()=>!1){let B=[];for(let Q=0,I=this._docs.length;Q<I;Q+=1){let G=this._docs[Q];if(A(G,Q))this.removeAt(Q),Q-=1,I-=1,B.push(G)}return B}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:B=-1}={}){let{includeMatches:Q,includeScore:I,shouldSort:G,sortFn:D,ignoreFieldNorm:Z}=this.options,Y=_w(A)?_w(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);if(e85(Y,{ignoreFieldNorm:Z}),G)Y.sort(D);if(Yw2(B)&&B>-1)Y=Y.slice(0,B);return QB5(Y,this._docs,{includeMatches:Q,includeScore:I})}_searchStringList(A){let B=po1(A,this.options),{records:Q}=this._myIndex,I=[];return Q.forEach(({v:G,i:D,n:Z})=>{if(!TF(G))return;let{isMatch:Y,score:W,indices:F}=B.searchIn(G);if(Y)I.push({item:G,idx:D,matches:[{score:W,value:G,norm:Z,indices:F}]})}),I}_searchLogical(A){let B=Nw2(A,this.options),Q=(Z,Y,W)=>{if(!Z.children){let{keyId:J,searcher:C}=Z,X=this._findMatches({key:this._keyStore.get(J),value:this._myIndex.getValueForItemAtKeyId(Y,J),searcher:C});if(X&&X.length)return[{idx:W,item:Y,matches:X}];return[]}let F=[];for(let J=0,C=Z.children.length;J<C;J+=1){let X=Z.children[J],V=Q(X,Y,W);if(V.length)F.push(...V);else if(Z.operator===KK1.AND)return[]}return F},I=this._myIndex.records,G={},D=[];return I.forEach(({$:Z,i:Y})=>{if(TF(Z)){let W=Q(B,Z,Y);if(W.length){if(!G[Y])G[Y]={idx:Y,item:Z,matches:[]},D.push(G[Y]);W.forEach(({matches:F})=>{G[Y].matches.push(...F)})}}}),D}_searchObjectList(A){let B=po1(A,this.options),{keys:Q,records:I}=this._myIndex,G=[];return I.forEach(({$:D,i:Z})=>{if(!TF(D))return;let Y=[];if(Q.forEach((W,F)=>{Y.push(...this._findMatches({key:W,value:D[F],searcher:B}))}),Y.length)G.push({idx:Z,item:D,matches:Y})}),G}_findMatches({key:A,value:B,searcher:Q}){if(!TF(B))return[];let I=[];if(dN(B))B.forEach(({v:G,i:D,n:Z})=>{if(!TF(G))return;let{isMatch:Y,score:W,indices:F}=Q.searchIn(G);if(Y)I.push({score:W,key:A,value:G,idx:D,norm:Z,indices:F})});else{let{v:G,n:D}=B,{isMatch:Z,score:Y,indices:W}=Q.searchIn(G);if(Z)I.push({score:Y,key:A,value:G,norm:D,indices:W})}return I}}jw.version="7.0.0";jw.createIndex=Xw2;jw.parseIndex=u85;jw.config=V4;jw.parseQuery=Nw2;r85(Uw2);var _0=F1(S1(),1),gC=F1(S1(),1);async function zK1(A){let B=process.platform,Q=B==="win32"?"start":B==="darwin"?"open":"xdg-open";try{let{code:I}=await l0(Q,[A]);return I===0}catch(I){return!1}}var IB5=7250;function Ld(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 $w2(){return vM1().map((A)=>{let B={...A};if(B&&typeof B.error==="string")B.error=Ld(B.error);return B})}var qw2="https://github.com/anthropics/claude-code/issues";function Lw2({messages:A,onDone:B}){let[Q,I]=gC.useState("userInput"),[G,D]=gC.useState(0),[Z,Y]=gC.useState(""),[W,F]=gC.useState(null),[J,C]=gC.useState(null),[X,V]=gC.useState({isGit:!1,gitState:null}),[K,U]=gC.useState(null),N=G4().columns-4;gC.useEffect(()=>{async function T(){let O=await _X(),S=null;if(O)S=await _41();V({isGit:O,gitState:S})}T()},[]);let q=v2(),M=gC.useCallback(async()=>{I("submitting"),C(null),F(null);let T=$w2(),O={message_count:A.length,datetime:new Date().toISOString(),description:Z,platform:uA.platform,gitRepo:X.isGit,terminal:uA.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.1"}.VERSION,transcript:wC(A),errors:T},[S,f]=await Promise.all([ZB5(O),DB5(Z)]);if(U(f),S.success){if(S.feedbackId)F(S.feedbackId),j1("tengu_bug_report_submitted",{feedback_id:S.feedbackId});I("done")}else{if(S.isZdrOrg)C("Feedback collection is not available for organizations with custom data retention policies.");else C("Could not submit feedback. Please try again later.");I("done")}},[Z,X.isGit,A]);J0((T,O)=>{if(Q==="done"){if(O.return&&K){let S=GB5(W??"",K,Z,$w2());zK1(S)}if(J)B("<bash-stderr>Error submitting bug report</bash-stderr>");else B("<bash-stdout>Bug report submitted</bash-stdout>");return}if(J){B("<bash-stderr>Error submitting bug report</bash-stderr>");return}if(O.escape){B("<bash-stderr>Bug report cancelled</bash-stderr>");return}if(Q==="consent"&&(O.return||T===" "))M()});let R=$1();return _0.createElement(_0.Fragment,null,_0.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:R.permission,paddingX:1,paddingBottom:1,gap:1},_0.createElement(y,{bold:!0,color:R.permission},"Submit Bug Report"),Q==="userInput"&&_0.createElement(m,{flexDirection:"column",gap:1},_0.createElement(y,null,"Describe the issue below:"),_0.createElement(BI,{value:Z,onChange:Y,columns:N,onSubmit:()=>I("consent"),onExitMessage:()=>B("<bash-stderr>Bug report cancelled</bash-stderr>"),cursorOffset:G,onChangeCursorOffset:D}),J&&_0.createElement(m,{flexDirection:"column",gap:1},_0.createElement(y,{color:"red"},J),_0.createElement(y,{dimColor:!0},"Press any key to close"))),Q==="consent"&&_0.createElement(m,{flexDirection:"column"},_0.createElement(y,null,"This report will include:"),_0.createElement(m,{marginLeft:2,flexDirection:"column"},_0.createElement(y,null,"- Your bug description: ",_0.createElement(y,{dimColor:!0},Z)),_0.createElement(y,null,"- Environment info:"," ",_0.createElement(y,{dimColor:!0},uA.platform,", ",uA.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.1"}.VERSION)),X.gitState&&_0.createElement(y,null,"- Git repo metadata:"," ",_0.createElement(y,{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")),_0.createElement(y,null,"- Current session transcript")),_0.createElement(m,{marginTop:1},_0.createElement(y,{wrap:"wrap",dimColor:!0},"We will use your feedback to debug related issues or to improve"," ",x0,"'s functionality (eg. to reduce the risk of bugs occurring in the future). Anthropic will not train generative models using feedback from ",x0,".")),_0.createElement(m,{marginTop:1},_0.createElement(y,null,"Press ",_0.createElement(y,{bold:!0},"Enter")," to confirm and submit."))),Q==="submitting"&&_0.createElement(m,{flexDirection:"row",gap:1},_0.createElement(y,null,"Submitting report…")),Q==="done"&&_0.createElement(m,{flexDirection:"column"},J?_0.createElement(y,{color:"red"},J):_0.createElement(y,{color:$1().success},"Thank you for your report!"),W&&_0.createElement(y,{dimColor:!0},"Feedback ID: ",W),_0.createElement(m,{marginTop:1},_0.createElement(y,null,"Press "),_0.createElement(y,{bold:!0},"Enter "),_0.createElement(y,null,"to also create a GitHub issue, or any other key to close.")))),_0.createElement(m,{marginLeft:1},_0.createElement(y,{dimColor:!0},q.pending?_0.createElement(_0.Fragment,null,"Press ",q.keyName," again to exit"):Q==="userInput"?_0.createElement(_0.Fragment,null,"Enter to continue · Esc to cancel"):Q==="consent"?_0.createElement(_0.Fragment,null,"Enter to submit · Esc to cancel"):null)))}function GB5(A,B,Q,I){let G=Ld(B),D=Ld(Q),Z=encodeURIComponent(`**Bug Description**
1963
+ `);if(D.length<5)return[];return D}catch(B){return m1(B),[]}}var XK1=b0(async(A)=>{let B=E9(),Q=Date.now(),I=B.exampleFilesGeneratedAt??0,G=604800000;if(Q-I>604800000)B.exampleFiles=[];if(!B.exampleFiles?.length)L85(A).then((Z)=>{if(Z.length)_6({...E9(),exampleFiles:Z,exampleFilesGeneratedAt:Date.now()})});let D=B.exampleFiles?.length?MT(B.exampleFiles):"<filepath>";return["fix lint errors","fix typecheck errors",`how does ${D} work?`,`refactor ${D}`,"how do I log an error?",`edit ${D} to...`,`write a test for ${D}`,"create a util logging.py that..."]});var A8=F1(S1(),1);var go1=F1(S1(),1);function Bw2(A,B,Q){let[I,G]=go1.useState(0),[D,Z]=go1.useState(void 0),Y=(C)=>{if(C!==void 0){let X=C.display.startsWith("!")?"bash":C.display.startsWith("#")?"memory":"prompt",V=X==="bash"||X==="memory"?C.display.slice(1):C.display;A(V,X,C.pastedContents)}};function W(){let C=S71();if(I<C.length){if(I===0&&B.trim()!=="")Z({display:B,pastedContents:Q});let X=I+1;G(X),Y(C[I])}}function F(){let C=S71();if(I>1){let X=I-1;G(X),Y(C[X-1])}else if(I===1)G(0),Y(D);return I<=0}function J(){Z(void 0),G(0)}return{historyIndex:I,setHistoryIndex:G,onHistoryUp:W,onHistoryDown:F,resetHistory:J}}var xw=F1(S1(),1);function dN(A){return!Array.isArray?Fw2(A)==="[object Array]":Array.isArray(A)}var R85=1/0;function O85(A){if(typeof A=="string")return A;let B=A+"";return B=="0"&&1/A==-R85?"-0":B}function T85(A){return A==null?"":O85(A)}function _w(A){return typeof A==="string"}function Yw2(A){return typeof A==="number"}function P85(A){return A===!0||A===!1||S85(A)&&Fw2(A)=="[object Boolean]"}function Ww2(A){return typeof A==="object"}function S85(A){return Ww2(A)&&A!==null}function TF(A){return A!==void 0&&A!==null}function ho1(A){return!A.trim().length}function Fw2(A){return A==null?A===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(A)}var _85="Incorrect 'index' type",j85=(A)=>`Invalid value for key ${A}`,y85=(A)=>`Pattern length exceeds max of ${A}.`,k85=(A)=>`Missing ${A} property in key`,x85=(A)=>`Property 'weight' in key '${A}' must be a positive integer`,Qw2=Object.prototype.hasOwnProperty;class Jw2{constructor(A){this._keys=[],this._keyMap={};let B=0;A.forEach((Q)=>{let I=Cw2(Q);this._keys.push(I),this._keyMap[I.id]=I,B+=I.weight}),this._keys.forEach((Q)=>{Q.weight/=B})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Cw2(A){let B=null,Q=null,I=null,G=1,D=null;if(_w(A)||dN(A))I=A,B=Iw2(A),Q=mo1(A);else{if(!Qw2.call(A,"name"))throw new Error(k85("name"));let Z=A.name;if(I=Z,Qw2.call(A,"weight")){if(G=A.weight,G<=0)throw new Error(x85(Z))}B=Iw2(Z),Q=mo1(Z),D=A.getFn}return{path:B,id:Q,weight:G,src:I,getFn:D}}function Iw2(A){return dN(A)?A:A.split(".")}function mo1(A){return dN(A)?A.join("."):A}function f85(A,B){let Q=[],I=!1,G=(D,Z,Y)=>{if(!TF(D))return;if(!Z[Y])Q.push(D);else{let W=Z[Y],F=D[W];if(!TF(F))return;if(Y===Z.length-1&&(_w(F)||Yw2(F)||P85(F)))Q.push(T85(F));else if(dN(F)){I=!0;for(let J=0,C=F.length;J<C;J+=1)G(F[J],Z,Y+1)}else if(Z.length)G(F,Z,Y+1)}};return G(A,_w(B)?B.split("."):B,0),I?Q:Q[0]}var v85={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},b85={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(A,B)=>A.score===B.score?A.idx<B.idx?-1:1:A.score<B.score?-1:1},g85={location:0,threshold:0.6,distance:100},h85={useExtendedSearch:!1,getFn:f85,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},V4={...b85,...v85,...g85,...h85},m85=/[^ ]+/g;function d85(A=1,B=3){let Q=new Map,I=Math.pow(10,B);return{get(G){let D=G.match(m85).length;if(Q.has(D))return Q.get(D);let Z=1/Math.pow(D,0.5*A),Y=parseFloat(Math.round(Z*I)/I);return Q.set(D,Y),Y},clear(){Q.clear()}}}class HK1{constructor({getFn:A=V4.getFn,fieldNormWeight:B=V4.fieldNormWeight}={}){this.norm=d85(B,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((B,Q)=>{this._keysMap[B.id]=Q})}create(){if(this.isCreated||!this.docs.length)return;if(this.isCreated=!0,_w(this.docs[0]))this.docs.forEach((A,B)=>{this._addString(A,B)});else this.docs.forEach((A,B)=>{this._addObject(A,B)});this.norm.clear()}add(A){let B=this.size();if(_w(A))this._addString(A,B);else this._addObject(A,B)}removeAt(A){this.records.splice(A,1);for(let B=A,Q=this.size();B<Q;B+=1)this.records[B].i-=1}getValueForItemAtKeyId(A,B){return A[this._keysMap[B]]}size(){return this.records.length}_addString(A,B){if(!TF(A)||ho1(A))return;let Q={v:A,i:B,n:this.norm.get(A)};this.records.push(Q)}_addObject(A,B){let Q={i:B,$:{}};this.keys.forEach((I,G)=>{let D=I.getFn?I.getFn(A):this.getFn(A,I.path);if(!TF(D))return;if(dN(D)){let Z=[],Y=[{nestedArrIndex:-1,value:D}];while(Y.length){let{nestedArrIndex:W,value:F}=Y.pop();if(!TF(F))continue;if(_w(F)&&!ho1(F)){let J={v:F,i:W,n:this.norm.get(F)};Z.push(J)}else if(dN(F))F.forEach((J,C)=>{Y.push({nestedArrIndex:C,value:J})})}Q.$[G]=Z}else if(_w(D)&&!ho1(D)){let Z={v:D,n:this.norm.get(D)};Q.$[G]=Z}}),this.records.push(Q)}toJSON(){return{keys:this.keys,records:this.records}}}function Xw2(A,B,{getFn:Q=V4.getFn,fieldNormWeight:I=V4.fieldNormWeight}={}){let G=new HK1({getFn:Q,fieldNormWeight:I});return G.setKeys(A.map(Cw2)),G.setSources(B),G.create(),G}function u85(A,{getFn:B=V4.getFn,fieldNormWeight:Q=V4.fieldNormWeight}={}){let{keys:I,records:G}=A,D=new HK1({getFn:B,fieldNormWeight:Q});return D.setKeys(I),D.setIndexRecords(G),D}function VK1(A,{errors:B=0,currentLocation:Q=0,expectedLocation:I=0,distance:G=V4.distance,ignoreLocation:D=V4.ignoreLocation}={}){let Z=B/A.length;if(D)return Z;let Y=Math.abs(I-Q);if(!G)return Y?1:Z;return Z+Y/G}function p85(A=[],B=V4.minMatchCharLength){let Q=[],I=-1,G=-1,D=0;for(let Z=A.length;D<Z;D+=1){let Y=A[D];if(Y&&I===-1)I=D;else if(!Y&&I!==-1){if(G=D-1,G-I+1>=B)Q.push([I,G]);I=-1}}if(A[D-1]&&D-I>=B)Q.push([I,D-1]);return Q}var Kj=32;function c85(A,B,Q,{location:I=V4.location,distance:G=V4.distance,threshold:D=V4.threshold,findAllMatches:Z=V4.findAllMatches,minMatchCharLength:Y=V4.minMatchCharLength,includeMatches:W=V4.includeMatches,ignoreLocation:F=V4.ignoreLocation}={}){if(B.length>Kj)throw new Error(y85(Kj));let J=B.length,C=A.length,X=Math.max(0,Math.min(I,C)),V=D,K=X,U=Y>1||W,N=U?Array(C):[],q;while((q=A.indexOf(B,K))>-1){let f=VK1(B,{currentLocation:q,expectedLocation:X,distance:G,ignoreLocation:F});if(V=Math.min(f,V),K=q+J,U){let n=0;while(n<J)N[q+n]=1,n+=1}}K=-1;let M=[],R=1,T=J+C,O=1<<J-1;for(let f=0;f<J;f+=1){let n=0,g=T;while(n<g){if(VK1(B,{errors:f,currentLocation:X+g,expectedLocation:X,distance:G,ignoreLocation:F})<=V)n=g;else T=g;g=Math.floor((T-n)/2+n)}T=g;let Y1=Math.max(1,X-g+1),r=Z?C:Math.min(X+g,C)+J,w1=Array(r+2);w1[r+1]=(1<<f)-1;for(let x=r;x>=Y1;x-=1){let J1=x-1,x1=Q[A.charAt(J1)];if(U)N[J1]=+!!x1;if(w1[x]=(w1[x+1]<<1|1)&x1,f)w1[x]|=(M[x+1]|M[x])<<1|1|M[x+1];if(w1[x]&O){if(R=VK1(B,{errors:f,currentLocation:J1,expectedLocation:X,distance:G,ignoreLocation:F}),R<=V){if(V=R,K=J1,K<=X)break;Y1=Math.max(1,2*X-K)}}}if(VK1(B,{errors:f+1,currentLocation:X,expectedLocation:X,distance:G,ignoreLocation:F})>V)break;M=w1}let S={isMatch:K>=0,score:Math.max(0.001,R)};if(U){let f=p85(N,Y);if(!f.length)S.isMatch=!1;else if(W)S.indices=f}return S}function l85(A){let B={};for(let Q=0,I=A.length;Q<I;Q+=1){let G=A.charAt(Q);B[G]=(B[G]||0)|1<<I-Q-1}return B}class io1{constructor(A,{location:B=V4.location,threshold:Q=V4.threshold,distance:I=V4.distance,includeMatches:G=V4.includeMatches,findAllMatches:D=V4.findAllMatches,minMatchCharLength:Z=V4.minMatchCharLength,isCaseSensitive:Y=V4.isCaseSensitive,ignoreLocation:W=V4.ignoreLocation}={}){if(this.options={location:B,threshold:Q,distance:I,includeMatches:G,findAllMatches:D,minMatchCharLength:Z,isCaseSensitive:Y,ignoreLocation:W},this.pattern=Y?A:A.toLowerCase(),this.chunks=[],!this.pattern.length)return;let F=(C,X)=>{this.chunks.push({pattern:C,alphabet:l85(C),startIndex:X})},J=this.pattern.length;if(J>Kj){let C=0,X=J%Kj,V=J-X;while(C<V)F(this.pattern.substr(C,Kj),C),C+=Kj;if(X){let K=J-Kj;F(this.pattern.substr(K),K)}}else F(this.pattern,0)}searchIn(A){let{isCaseSensitive:B,includeMatches:Q}=this.options;if(!B)A=A.toLowerCase();if(this.pattern===A){let V={isMatch:!0,score:0};if(Q)V.indices=[[0,A.length-1]];return V}let{location:I,distance:G,threshold:D,findAllMatches:Z,minMatchCharLength:Y,ignoreLocation:W}=this.options,F=[],J=0,C=!1;this.chunks.forEach(({pattern:V,alphabet:K,startIndex:U})=>{let{isMatch:N,score:q,indices:M}=c85(A,V,K,{location:I+U,distance:G,threshold:D,findAllMatches:Z,minMatchCharLength:Y,includeMatches:Q,ignoreLocation:W});if(N)C=!0;if(J+=q,N&&M)F=[...F,...M]});let X={isMatch:C,score:C?J/this.chunks.length:1};if(C&&Q)X.indices=F;return X}}class uN{constructor(A){this.pattern=A}static isMultiMatch(A){return Gw2(A,this.multiRegex)}static isSingleMatch(A){return Gw2(A,this.singleRegex)}search(){}}function Gw2(A,B){let Q=A.match(B);return Q?Q[1]:null}class Vw2 extends uN{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){let B=A===this.pattern;return{isMatch:B,score:B?0:1,indices:[0,this.pattern.length-1]}}}class Kw2 extends uN{constructor(A){super(A)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(A){let Q=A.indexOf(this.pattern)===-1;return{isMatch:Q,score:Q?0:1,indices:[0,A.length-1]}}}class Hw2 extends uN{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){let B=A.startsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[0,this.pattern.length-1]}}}class zw2 extends uN{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){let B=!A.startsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[0,A.length-1]}}}class ww2 extends uN{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){let B=A.endsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class Ew2 extends uN{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){let B=!A.endsWith(this.pattern);return{isMatch:B,score:B?0:1,indices:[0,A.length-1]}}}class no1 extends uN{constructor(A,{location:B=V4.location,threshold:Q=V4.threshold,distance:I=V4.distance,includeMatches:G=V4.includeMatches,findAllMatches:D=V4.findAllMatches,minMatchCharLength:Z=V4.minMatchCharLength,isCaseSensitive:Y=V4.isCaseSensitive,ignoreLocation:W=V4.ignoreLocation}={}){super(A);this._bitapSearch=new io1(A,{location:B,threshold:Q,distance:I,includeMatches:G,findAllMatches:D,minMatchCharLength:Z,isCaseSensitive:Y,ignoreLocation:W})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class ao1 extends uN{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let B=0,Q,I=[],G=this.pattern.length;while((Q=A.indexOf(this.pattern,B))>-1)B=Q+G,I.push([Q,B-1]);let D=!!I.length;return{isMatch:D,score:D?0:1,indices:I}}}var do1=[Vw2,ao1,Hw2,zw2,Ew2,ww2,Kw2,no1],Dw2=do1.length,i85=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,n85="|";function a85(A,B={}){return A.split(n85).map((Q)=>{let I=Q.trim().split(i85).filter((D)=>D&&!!D.trim()),G=[];for(let D=0,Z=I.length;D<Z;D+=1){let Y=I[D],W=!1,F=-1;while(!W&&++F<Dw2){let J=do1[F],C=J.isMultiMatch(Y);if(C)G.push(new J(C,B)),W=!0}if(W)continue;F=-1;while(++F<Dw2){let J=do1[F],C=J.isSingleMatch(Y);if(C){G.push(new J(C,B));break}}}return G})}var s85=new Set([no1.type,ao1.type]);class Uw2{constructor(A,{isCaseSensitive:B=V4.isCaseSensitive,includeMatches:Q=V4.includeMatches,minMatchCharLength:I=V4.minMatchCharLength,ignoreLocation:G=V4.ignoreLocation,findAllMatches:D=V4.findAllMatches,location:Z=V4.location,threshold:Y=V4.threshold,distance:W=V4.distance}={}){this.query=null,this.options={isCaseSensitive:B,includeMatches:Q,minMatchCharLength:I,findAllMatches:D,ignoreLocation:G,location:Z,threshold:Y,distance:W},this.pattern=B?A:A.toLowerCase(),this.query=a85(this.pattern,this.options)}static condition(A,B){return B.useExtendedSearch}searchIn(A){let B=this.query;if(!B)return{isMatch:!1,score:1};let{includeMatches:Q,isCaseSensitive:I}=this.options;A=I?A:A.toLowerCase();let G=0,D=[],Z=0;for(let Y=0,W=B.length;Y<W;Y+=1){let F=B[Y];D.length=0,G=0;for(let J=0,C=F.length;J<C;J+=1){let X=F[J],{isMatch:V,indices:K,score:U}=X.search(A);if(V){if(G+=1,Z+=U,Q){let N=X.constructor.type;if(s85.has(N))D=[...D,...K];else D.push(K)}}else{Z=0,G=0,D.length=0;break}}if(G){let J={isMatch:!0,score:Z/G};if(Q)J.indices=D;return J}}return{isMatch:!1,score:1}}}var uo1=[];function r85(...A){uo1.push(...A)}function po1(A,B){for(let Q=0,I=uo1.length;Q<I;Q+=1){let G=uo1[Q];if(G.condition(A,B))return new G(A,B)}return new io1(A,B)}var KK1={AND:"$and",OR:"$or"},co1={PATH:"$path",PATTERN:"$val"},lo1=(A)=>!!(A[KK1.AND]||A[KK1.OR]),o85=(A)=>!!A[co1.PATH],t85=(A)=>!dN(A)&&Ww2(A)&&!lo1(A),Zw2=(A)=>({[KK1.AND]:Object.keys(A).map((B)=>({[B]:A[B]}))});function Nw2(A,B,{auto:Q=!0}={}){let I=(G)=>{let D=Object.keys(G),Z=o85(G);if(!Z&&D.length>1&&!lo1(G))return I(Zw2(G));if(t85(G)){let W=Z?G[co1.PATH]:D[0],F=Z?G[co1.PATTERN]:G[W];if(!_w(F))throw new Error(j85(W));let J={keyId:mo1(W),pattern:F};if(Q)J.searcher=po1(F,B);return J}let Y={children:[],operator:D[0]};return D.forEach((W)=>{let F=G[W];if(dN(F))F.forEach((J)=>{Y.children.push(I(J))})}),Y};if(!lo1(A))A=Zw2(A);return I(A)}function e85(A,{ignoreFieldNorm:B=V4.ignoreFieldNorm}){A.forEach((Q)=>{let I=1;Q.matches.forEach(({key:G,norm:D,score:Z})=>{let Y=G?G.weight:null;I*=Math.pow(Z===0&&Y?Number.EPSILON:Z,(Y||1)*(B?1:D))}),Q.score=I})}function AB5(A,B){let Q=A.matches;if(B.matches=[],!TF(Q))return;Q.forEach((I)=>{if(!TF(I.indices)||!I.indices.length)return;let{indices:G,value:D}=I,Z={indices:G,value:D};if(I.key)Z.key=I.key.src;if(I.idx>-1)Z.refIndex=I.idx;B.matches.push(Z)})}function BB5(A,B){B.score=A.score}function QB5(A,B,{includeMatches:Q=V4.includeMatches,includeScore:I=V4.includeScore}={}){let G=[];if(Q)G.push(AB5);if(I)G.push(BB5);return A.map((D)=>{let{idx:Z}=D,Y={item:B[Z],refIndex:Z};if(G.length)G.forEach((W)=>{W(D,Y)});return Y})}class jw{constructor(A,B={},Q){this.options={...V4,...B},this.options.useExtendedSearch,this._keyStore=new Jw2(this.options.keys),this.setCollection(A,Q)}setCollection(A,B){if(this._docs=A,B&&!(B instanceof HK1))throw new Error(_85);this._myIndex=B||Xw2(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){if(!TF(A))return;this._docs.push(A),this._myIndex.add(A)}remove(A=()=>!1){let B=[];for(let Q=0,I=this._docs.length;Q<I;Q+=1){let G=this._docs[Q];if(A(G,Q))this.removeAt(Q),Q-=1,I-=1,B.push(G)}return B}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:B=-1}={}){let{includeMatches:Q,includeScore:I,shouldSort:G,sortFn:D,ignoreFieldNorm:Z}=this.options,Y=_w(A)?_w(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);if(e85(Y,{ignoreFieldNorm:Z}),G)Y.sort(D);if(Yw2(B)&&B>-1)Y=Y.slice(0,B);return QB5(Y,this._docs,{includeMatches:Q,includeScore:I})}_searchStringList(A){let B=po1(A,this.options),{records:Q}=this._myIndex,I=[];return Q.forEach(({v:G,i:D,n:Z})=>{if(!TF(G))return;let{isMatch:Y,score:W,indices:F}=B.searchIn(G);if(Y)I.push({item:G,idx:D,matches:[{score:W,value:G,norm:Z,indices:F}]})}),I}_searchLogical(A){let B=Nw2(A,this.options),Q=(Z,Y,W)=>{if(!Z.children){let{keyId:J,searcher:C}=Z,X=this._findMatches({key:this._keyStore.get(J),value:this._myIndex.getValueForItemAtKeyId(Y,J),searcher:C});if(X&&X.length)return[{idx:W,item:Y,matches:X}];return[]}let F=[];for(let J=0,C=Z.children.length;J<C;J+=1){let X=Z.children[J],V=Q(X,Y,W);if(V.length)F.push(...V);else if(Z.operator===KK1.AND)return[]}return F},I=this._myIndex.records,G={},D=[];return I.forEach(({$:Z,i:Y})=>{if(TF(Z)){let W=Q(B,Z,Y);if(W.length){if(!G[Y])G[Y]={idx:Y,item:Z,matches:[]},D.push(G[Y]);W.forEach(({matches:F})=>{G[Y].matches.push(...F)})}}}),D}_searchObjectList(A){let B=po1(A,this.options),{keys:Q,records:I}=this._myIndex,G=[];return I.forEach(({$:D,i:Z})=>{if(!TF(D))return;let Y=[];if(Q.forEach((W,F)=>{Y.push(...this._findMatches({key:W,value:D[F],searcher:B}))}),Y.length)G.push({idx:Z,item:D,matches:Y})}),G}_findMatches({key:A,value:B,searcher:Q}){if(!TF(B))return[];let I=[];if(dN(B))B.forEach(({v:G,i:D,n:Z})=>{if(!TF(G))return;let{isMatch:Y,score:W,indices:F}=Q.searchIn(G);if(Y)I.push({score:W,key:A,value:G,idx:D,norm:Z,indices:F})});else{let{v:G,n:D}=B,{isMatch:Z,score:Y,indices:W}=Q.searchIn(G);if(Z)I.push({score:Y,key:A,value:G,norm:D,indices:W})}return I}}jw.version="7.0.0";jw.createIndex=Xw2;jw.parseIndex=u85;jw.config=V4;jw.parseQuery=Nw2;r85(Uw2);var _0=F1(S1(),1),gC=F1(S1(),1);async function zK1(A){let B=process.platform,Q=B==="win32"?"start":B==="darwin"?"open":"xdg-open";try{let{code:I}=await l0(Q,[A]);return I===0}catch(I){return!1}}var IB5=7250;function Ld(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 $w2(){return vM1().map((A)=>{let B={...A};if(B&&typeof B.error==="string")B.error=Ld(B.error);return B})}var qw2="https://github.com/anthropics/claude-code/issues";function Lw2({messages:A,onDone:B}){let[Q,I]=gC.useState("userInput"),[G,D]=gC.useState(0),[Z,Y]=gC.useState(""),[W,F]=gC.useState(null),[J,C]=gC.useState(null),[X,V]=gC.useState({isGit:!1,gitState:null}),[K,U]=gC.useState(null),N=G4().columns-4;gC.useEffect(()=>{async function T(){let O=await _X(),S=null;if(O)S=await _41();V({isGit:O,gitState:S})}T()},[]);let q=v2(),M=gC.useCallback(async()=>{I("submitting"),C(null),F(null);let T=$w2(),O={message_count:A.length,datetime:new Date().toISOString(),description:Z,platform:uA.platform,gitRepo:X.isGit,terminal:uA.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.2"}.VERSION,transcript:wC(A),errors:T},[S,f]=await Promise.all([ZB5(O),DB5(Z)]);if(U(f),S.success){if(S.feedbackId)F(S.feedbackId),j1("tengu_bug_report_submitted",{feedback_id:S.feedbackId});I("done")}else{if(S.isZdrOrg)C("Feedback collection is not available for organizations with custom data retention policies.");else C("Could not submit feedback. Please try again later.");I("done")}},[Z,X.isGit,A]);J0((T,O)=>{if(Q==="done"){if(O.return&&K){let S=GB5(W??"",K,Z,$w2());zK1(S)}if(J)B("<bash-stderr>Error submitting bug report</bash-stderr>");else B("<bash-stdout>Bug report submitted</bash-stdout>");return}if(J){B("<bash-stderr>Error submitting bug report</bash-stderr>");return}if(O.escape){B("<bash-stderr>Bug report cancelled</bash-stderr>");return}if(Q==="consent"&&(O.return||T===" "))M()});let R=$1();return _0.createElement(_0.Fragment,null,_0.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:R.permission,paddingX:1,paddingBottom:1,gap:1},_0.createElement(y,{bold:!0,color:R.permission},"Submit Bug Report"),Q==="userInput"&&_0.createElement(m,{flexDirection:"column",gap:1},_0.createElement(y,null,"Describe the issue below:"),_0.createElement(BI,{value:Z,onChange:Y,columns:N,onSubmit:()=>I("consent"),onExitMessage:()=>B("<bash-stderr>Bug report cancelled</bash-stderr>"),cursorOffset:G,onChangeCursorOffset:D}),J&&_0.createElement(m,{flexDirection:"column",gap:1},_0.createElement(y,{color:"red"},J),_0.createElement(y,{dimColor:!0},"Press any key to close"))),Q==="consent"&&_0.createElement(m,{flexDirection:"column"},_0.createElement(y,null,"This report will include:"),_0.createElement(m,{marginLeft:2,flexDirection:"column"},_0.createElement(y,null,"- Your bug description: ",_0.createElement(y,{dimColor:!0},Z)),_0.createElement(y,null,"- Environment info:"," ",_0.createElement(y,{dimColor:!0},uA.platform,", ",uA.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.2"}.VERSION)),X.gitState&&_0.createElement(y,null,"- Git repo metadata:"," ",_0.createElement(y,{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")),_0.createElement(y,null,"- Current session transcript")),_0.createElement(m,{marginTop:1},_0.createElement(y,{wrap:"wrap",dimColor:!0},"We will use your feedback to debug related issues or to improve"," ",x0,"'s functionality (eg. to reduce the risk of bugs occurring in the future). Anthropic will not train generative models using feedback from ",x0,".")),_0.createElement(m,{marginTop:1},_0.createElement(y,null,"Press ",_0.createElement(y,{bold:!0},"Enter")," to confirm and submit."))),Q==="submitting"&&_0.createElement(m,{flexDirection:"row",gap:1},_0.createElement(y,null,"Submitting report…")),Q==="done"&&_0.createElement(m,{flexDirection:"column"},J?_0.createElement(y,{color:"red"},J):_0.createElement(y,{color:$1().success},"Thank you for your report!"),W&&_0.createElement(y,{dimColor:!0},"Feedback ID: ",W),_0.createElement(m,{marginTop:1},_0.createElement(y,null,"Press "),_0.createElement(y,{bold:!0},"Enter "),_0.createElement(y,null,"to also create a GitHub issue, or any other key to close.")))),_0.createElement(m,{marginLeft:1},_0.createElement(y,{dimColor:!0},q.pending?_0.createElement(_0.Fragment,null,"Press ",q.keyName," again to exit"):Q==="userInput"?_0.createElement(_0.Fragment,null,"Enter to continue · Esc to cancel"):Q==="consent"?_0.createElement(_0.Fragment,null,"Enter to submit · Esc to cancel"):null)))}function GB5(A,B,Q,I){let G=Ld(B),D=Ld(Q),Z=encodeURIComponent(`**Bug Description**
1964
1964
  ${D}
1965
1965
 
1966
1966
  **Environment Info**
1967
1967
  - Platform: ${uA.platform}
1968
1968
  - Terminal: ${uA.terminal}
1969
- - 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.1"}.VERSION||"unknown"}
1969
+ - 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.2"}.VERSION||"unknown"}
1970
1970
  - Feedback ID: ${A}
1971
1971
 
1972
1972
  **Errors**
@@ -1975,15 +1975,15 @@ ${D}
1975
1975
  **Note:** Error logs were truncated.
1976
1976
  `),F=JSON.stringify(I),J=encodeURIComponent(F),C=`${qw2}/new?title=${encodeURIComponent(G)}&labels=user-reported,bug&body=`,X=IB5-C.length-Z.length-Y.length-W.length,V="";if(J.length<=X)V=Z+J+Y;else{let K=J.substring(0,X);V=Z+K+Y+W}return`${qw2}/new?title=${encodeURIComponent(G)}&body=${V}&labels=user-reported,bug`}async function DB5(A){try{let B=await KD({systemPrompt:["Generate a concise, technical issue title (max 80 chars) for a GitHub issue based on this bug report. The title should:","- Be specific and descriptive of the actual problem","- Use technical terminology appropriate for a software issue",'- For error messages, extract the key error (e.g., "Missing Tool Result Block" rather than the full message)','- Start with a noun or verb (not "Bug:" or "Issue:")',"- Be direct and clear for developers to understand the problem",'- If you cannot determine a clear issue, use "Bug Report: [brief description]"'],userPrompt:A,isNonInteractiveSession:!1}),Q=B.message.content[0]?.type==="text"?B.message.content[0].text:"Bug Report";if(Q.startsWith(bY))return Mw2(A);return Q}catch(B){return m1(B instanceof Error?B:new Error(String(B))),Mw2(A)}}function Mw2(A){let B=A.split(`
1977
1977
  `)[0]||"";if(B.length<=60&&B.length>5)return B;let Q=B.slice(0,60);if(B.length>60){let I=Q.lastIndexOf(" ");if(I>30)Q=Q.slice(0,I);Q+="..."}return Q.length<10?"Bug Report":Q}function wK1(A){if(A instanceof Error){let B=new Error(Ld(A.message));if(A.stack)B.stack=Ld(A.stack);m1(B)}else{let B=Ld(String(A));m1(new Error(B))}}async function ZB5(A){try{let B={"Content-Type":"application/json","User-Agent":PL};if(C6()){let I=A3();if(!I?.accessToken)return{success:!1};B.Authorization=`Bearer ${I.accessToken}`,B["anthropic-beta"]=IP}else{let I=aI(!1);if(!I)return{success:!1};B["x-api-key"]=I}let Q=await K5.post("https://api.anthropic.com/api/claude_cli_feedback",{content:JSON.stringify(A)},{headers:B});if(Q.status===200){let I=Q.data;if(I?.feedback_id)return{success:!0,feedbackId:I.feedback_id};return wK1(new Error("Failed to submit feedback: request did not return feedback_id")),{success:!1}}return wK1(new Error("Failed to submit feedback:"+Q.status)),{success:!1}}catch(B){if(K5.isAxiosError(B)&&B.response?.status===403){let Q=B.response.data;if(Q?.error?.type==="permission_error"&&Q?.error?.message?.includes("Custom data retention settings"))return wK1(new Error("Cannot submit feedback because custom data retention settings are enabled")),{success:!1,isZdrOrg:!0}}return wK1(B),{success:!1}}}var so1=F1(S1(),1);var YB5={type:"local-jsx",name:"bug",description:`Submit feedback about ${x0}`,isEnabled:!(process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.DISABLE_BUG_COMMAND||process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC),isHidden:!1,async call(A,{messages:B}){return so1.createElement(Lw2,{messages:B,onDone:A})},userFacingName(){return"bug"}},Rw2=YB5;function ro1(A){if(process.platform==="win32")process.title=A?`✳ ${A}`:A;else process.stdout.write(`\x1B]0;${A?`✳ ${A}`:""}\x07`)}async function Ow2(A){try{let Q=(await KD({systemPrompt:["Analyze if this message indicates a new conversation topic. If it does, extract a 2-3 word title that captures the new topic. Format your response as a JSON object with two fields: 'isNewTopic' (boolean) and 'title' (string, or null if isNewTopic is false). Only include these fields, no other text."],userPrompt:A,enablePromptCaching:!0,isNonInteractiveSession:!1})).message.content.filter((G)=>G.type==="text").map((G)=>G.text).join(""),I=D8(Q);if(I&&typeof I==="object"&&"isNewTopic"in I&&"title"in I){if(I.isNewTopic&&I.title)ro1(I.title)}}catch(B){m1(B)}}function V3(){return new Promise((A)=>{process.stdout.write("\x1B[2J\x1B[3J\x1B[H",()=>{A()})})}async function Tw2({setMessages:A,readFileState:B}){await V3(),A([]),dY.cache.clear?.(),UZ.cache.clear?.(),mW(u4()),Object.keys(B).forEach((Q)=>{delete B[Q]})}var WB5={type:"local",name:"clear",description:"Clear conversation history and free up context",isEnabled:!0,isHidden:!1,async call(A,B){return Tw2(B),""},userFacingName(){return"clear"}},Pw2=WB5;var FB5={type:"local",name:"compact",description:"Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]",isEnabled:!0,isHidden:!1,argumentHint:"<optional custom summarization instructions>",async call(A,B){let{abortController:Q,messages:I}=B;if(I.length===0)throw new Error("No messages to compact");let G=A.trim();try{return await fX1(I,B,!1,G),dY.cache.clear?.(),UZ.cache.clear?.(),""}catch(D){if(Q.signal.aborted)throw new Error("Compaction canceled.");else if(D instanceof Error&&D.message===Pt)throw new Error(Pt);else throw m1(D instanceof Error?D:new Error(String(D))),new Error(`Error during compaction: ${D}`)}},userFacingName(){return"compact"}},Sw2=FB5;var x9=F1(S1(),1),ve=F1(S1(),1);var M4=F1(S1(),1);var _w2=F1(S1(),1);function EK1({initialTheme:A,onThemeSelect:B,showIntroText:Q=!1,helpText:I="",showHelpTextBelow:G=!1,hideEscToCancel:D=!1,skipExitHandling:Z=!1}){let Y=v2(Z?()=>{}:void 0),[W,F]=_w2.useState(Q?void 0:A),C=M4.createElement(m,{flexDirection:"column",gap:1,paddingLeft:1},Q&&M4.createElement(y,null,"Let's get started."),M4.createElement(m,{flexDirection:"column"},M4.createElement(y,{bold:!0},"Choose the text style that looks best with your terminal:"),I&&!G&&M4.createElement(y,{dimColor:!0},I)),M4.createElement(A9,{options:[{label:"Dark mode",value:"dark"},{label:"Light mode",value:"light"},{label:"Dark mode (colorblind-friendly)",value:"dark-daltonized"},{label:"Light mode (colorblind-friendly)",value:"light-daltonized"},{label:"Dark mode (ANSI colors only)",value:"dark-ansi"},{label:"Light mode (ANSI colors only)",value:"light-ansi"}],onFocus:(X)=>F(X),onChange:B,onCancel:Z?()=>{}:async()=>{await cW(0)},visibleOptionCount:6,defaultValue:W}),M4.createElement(m,{flexDirection:"column",paddingTop:1},M4.createElement(y,{bold:!0},"Preview"),M4.createElement(m,{paddingLeft:1,marginRight:1,borderStyle:"round",flexDirection:"column"},M4.createElement(zZ,{patch:{oldStart:1,newStart:1,oldLines:3,newLines:3,lines:["function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Claude!");',"}"]},dim:!1,overrideTheme:W||A}))));if(!Q)return M4.createElement(M4.Fragment,null,M4.createElement(m,{flexDirection:"column",borderStyle:"round",paddingX:1,marginTop:1},C),G&&I&&M4.createElement(m,{marginLeft:3,marginTop:1},M4.createElement(y,{dimColor:!0},I)),!D&&M4.createElement(m,{marginLeft:3},M4.createElement(y,{dimColor:!0},Y.pending?M4.createElement(M4.Fragment,null,"Press ",Y.keyName," again to exit"):M4.createElement(M4.Fragment,null,"Esc to cancel"))));return C}var H8=F1(S1(),1),jw2=F1(S1(),1);var oo1="__NO_PREFERENCE__";function UK1({initial:A,onSelect:B}){let Q=A===null?oo1:A,[I,G]=jw2.useState(Q),D=$1(),Z=K40(),Y=v2();return H8.createElement(m,{flexDirection:"column"},H8.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:D.remember,paddingX:2,paddingY:1,width:"100%"},H8.createElement(m,{marginBottom:1,flexDirection:"column"},H8.createElement(y,{color:D.remember,bold:!0},"Select Model"),H8.createElement(y,{dimColor:!0},"Switch between Claude models. Applies to this session and future Claude Code sessions. For custom model names, specify with --model.")),H8.createElement(m,{flexDirection:"column",paddingX:1},H8.createElement(A9,{defaultValue:I,focusValue:Z.some((W)=>W.value===I)?I:Z[0]?.value??void 0,options:Z.map((W)=>({...W,value:W.value===null?oo1:W.value})),onFocus:(W)=>G(W),onChange:(W)=>B(W===oo1?null:W),onCancel:()=>{}}))),H8.createElement(m,{paddingX:1},H8.createElement(y,{dimColor:!0},Y.pending?H8.createElement(H8.Fragment,null,"Press ",Y.keyName," again to exit"):H8.createElement(H8.Fragment,null,"Enter to confirm · Esc to exit"))))}var $D=F1(S1(),1);function NK1({onDone:A}){let B=$1();$D.default.useEffect(()=>{j1("claude_md_includes_dialog_shown",{})},[]);function Q(G){let D=E9();if(G==="no")j1("claude_md_external_includes_dialog_declined",{}),_6({...D,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0});else j1("claude_md_external_includes_dialog_accepted",{}),_6({...D,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0});A()}let I=v2();return J0((G,D)=>{if(D.escape){Q("no");return}}),$D.default.createElement($D.default.Fragment,null,$D.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:B.warning},$D.default.createElement(y,{bold:!0,color:B.warning},"Allow external CLAUDE.md file imports?"),$D.default.createElement(y,null,"This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories."),$D.default.createElement(y,{dimColor:!0},"Important: Only use ",x0," with files you trust. Accessing untrusted files may pose security risks"," ",$D.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-security"})," "),$D.default.createElement(A9,{options:[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],onChange:(G)=>Q(G),onCancel:()=>Q("no")})),$D.default.createElement(m,{marginLeft:3},$D.default.createElement(y,{dimColor:!0},I.pending?$D.default.createElement($D.default.Fragment,null,"Press ",I.keyName," again to exit"):$D.default.createElement($D.default.Fragment,null,"Enter to confirm · Esc to disable external includes"))))}function yw2({onClose:A,isConnectedToIde:B}){let[Q,I]=ve.useState(VA()),G=x9.useRef(VA()),[D,Z]=ve.useState(0),Y=v2(),[{mainLoopModel:W,todoFeatureEnabled:F,verbose:J},C]=rG(),[X,V]=ve.useState({}),[K,U]=ve.useState(null),N=ys1();async function q(O){C((S)=>({...S,mainLoopModel:O})),V((S)=>{let f=hP(O);if("model"in S){let{model:n,...g}=S;return{...g,model:f}}return{...S,model:f}})}function M(O){C((S)=>({...S,verbose:O})),V((S)=>{if("verbose"in S){let{verbose:f,...n}=S;return n}return{...S,verbose:O}})}function R(O){C((S)=>({...S,todoFeatureEnabled:O})),V((S)=>{if("Todo List Enabled"in S){let{"Todo List Enabled":f,...n}=S;return n}return{...S,"Todo List Enabled":O}})}let T=[{id:"autoCompactEnabled",label:"Auto-compact",value:Q.autoCompactEnabled,type:"boolean",onChange(O){let S={...VA(),autoCompactEnabled:O};T0(S),I(S),j1("tengu_auto_compact_setting_changed",{enabled:O})}},{id:"todoFeatureEnabled",label:"Use todo list",value:F,type:"boolean",onChange:R},{id:"verbose",label:"Verbose output",value:J,type:"boolean",onChange:M},{id:"theme",label:"Theme",value:Q.theme,type:"managedEnum",onChange(O){let S={...VA(),theme:O};T0(S),I(S)}},{id:"notifChannel",label:"Notifications",value:Q.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","notifications_disabled"],type:"enum",onChange(O){let S={...VA(),preferredNotifChannel:O};T0(S),I(S)}},{id:"editorMode",label:"Editor mode",value:Q.editorMode==="emacs"?"normal":Q.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(O){let S={...VA(),editorMode:O};T0(S),I(S),j1("tengu_editor_mode_changed",{mode:O,source:"config_panel"})}},{id:"model",label:"Model",value:W===null?"Default (recommended)":W,type:"managedEnum",onChange:q},...B?[{id:"diffTool",label:"Diff tool",value:Q.diffTool,options:["terminal","auto"],type:"enum",onChange(O){let S={...VA(),diffTool:O};T0(S),I(S),j1("tengu_diff_tool_changed",{tool:O,source:"config_panel"})}}]:[],...N?[{id:"showExternalIncludesDialog",label:"External CLAUDE.md includes",value:(()=>{if(E9().hasClaudeMdExternalIncludesApproved)return"true";else return"false"})(),type:"managedEnum",onChange(){}}]:[],...(process.env.ANTHROPIC_API_KEY,[]),...[]];return J0((O,S)=>{if(S.escape){if(K!==null){U(null);return}let n=Object.entries(X).map(([r,w1])=>{return j1("tengu_config_changed",{key:r,value:w1}),`Set ${r} to ${MA.bold(w1)}`}),g=Boolean(process.env.ANTHROPIC_API_KEY&&G.current.customApiKeyResponses?.approved?.includes(FP(process.env.ANTHROPIC_API_KEY))),Y1=Boolean(process.env.ANTHROPIC_API_KEY&&Q.customApiKeyResponses?.approved?.includes(FP(process.env.ANTHROPIC_API_KEY)));if(g!==Y1)n.push(`${Y1?"Enabled":"Disabled"} custom API key`),j1("tengu_config_changed",{key:"env.ANTHROPIC_API_KEY",value:Y1});if(Q.theme!==G.current.theme)n.push(`Set theme to ${MA.bold(Q.theme)}`);if(Q.preferredNotifChannel!==G.current.preferredNotifChannel)n.push(`Set notifications to ${MA.bold(Q.preferredNotifChannel)}`);if(Q.editorMode!==G.current.editorMode)n.push(`Set editor mode to ${MA.bold(Q.editorMode||"emacs")}`);if(Q.diffTool!==G.current.diffTool)n.push(`Set diff tool to ${MA.bold(Q.diffTool)}`);if(Q.autoCompactEnabled!==G.current.autoCompactEnabled)n.push(`${Q.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(n.length>0)A(n.join(`
1978
- `));else A();return}if(K!==null)return;function f(){let n=T[D];if(!n||!n.onChange)return;if(n.type==="boolean"){n.onChange(!n.value);return}if(n.id==="theme"&&S.return){U("theme");return}if(n.id==="model"&&S.return){U("model");return}if(n.id==="showExternalIncludesDialog"&&S.return){U("externalIncludes");return}if(n.type==="enum"){let Y1=(n.options.indexOf(n.value)+1)%n.options.length;n.onChange(n.options[Y1]);return}}if(S.tab||S.return||O===" "){f();return}if(S.upArrow)Z((n)=>Math.max(0,n-1));if(S.downArrow)Z((n)=>Math.min(T.length-1,n+1))}),x9.createElement(x9.Fragment,null,K==="theme"?x9.createElement(EK1,{initialTheme:Q.theme,onThemeSelect:(O)=>{let S={...Q,theme:O};T0(S),I(S)},skipExitHandling:!0}):K==="model"?x9.createElement(UK1,{initial:W,onSelect:(O)=>{q(O),U(null)}}):K==="externalIncludes"?x9.createElement(NK1,{onDone:()=>{U(null)}}):x9.createElement(x9.Fragment,null,x9.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().secondaryBorder,paddingX:1,marginTop:1},x9.createElement(m,{flexDirection:"column",minHeight:2,marginBottom:1},x9.createElement(y,{bold:!0},"Settings"),x9.createElement(y,{dimColor:!0},"Configure ",x0," preferences")),T.map((O,S)=>{let f=S===D;return x9.createElement(m,{key:O.id,height:2,minHeight:2},x9.createElement(m,{width:44},x9.createElement(y,{color:f?"blue":void 0},f?H2.pointer:" "," ",O.label)),x9.createElement(m,null,O.type==="boolean"?x9.createElement(y,{color:f?"blue":void 0},O.value.toString()):O.id==="theme"?x9.createElement(y,{color:f?"blue":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)"}[O.value.toString()]||O.value.toString()})()):x9.createElement(y,{color:f?"blue":void 0},O.value.toString())))})),x9.createElement(m,{marginLeft:3},x9.createElement(y,{dimColor:!0},Y.pending?x9.createElement(x9.Fragment,null,"Press ",Y.keyName," again to exit"):x9.createElement(x9.Fragment,null,"↑/↓ to select · Enter/Tab/Space to change · Esc to close")))))}var to1=F1(S1(),1);var JB5={aliases:["theme"],type:"local-jsx",name:"config",description:"Open config panel",isEnabled:!0,isHidden:!1,async call(A,{options:{mcpClients:B}}){let Q=_I1(B);return to1.createElement(yw2,{onClose:A,isConnectedToIde:Q})},userFacingName(){return"config"}},kw2=JB5;var CB5={type:"local",name:"cost",description:"Show the total cost and duration of the current session",isEnabled:!0,isHidden:!1,async call(){if(C6())return"With your Claude Max subscription, no need to monitor cost — your subscription includes Claude Code usage";return ha1()},userFacingName(){return"cost"}},xw2=CB5;var sB5=F1(yE2(),1);var bE2=F1(S1(),1);var _2=F1(S1(),1);import{join as rB5}from"path";import{constants as oB5}from"fs";var kE2=F1(Ia(),1);async function xE2(){try{let A=await Az("tengu_version_config",{minVersion:"0.0.0"});if(A.minVersion&&kE2.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.1"}.VERSION,A.minVersion))console.error(`
1979
- 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.1"}.VERSION}) needs an update.
1978
+ `));else A();return}if(K!==null)return;function f(){let n=T[D];if(!n||!n.onChange)return;if(n.type==="boolean"){n.onChange(!n.value);return}if(n.id==="theme"&&S.return){U("theme");return}if(n.id==="model"&&S.return){U("model");return}if(n.id==="showExternalIncludesDialog"&&S.return){U("externalIncludes");return}if(n.type==="enum"){let Y1=(n.options.indexOf(n.value)+1)%n.options.length;n.onChange(n.options[Y1]);return}}if(S.tab||S.return||O===" "){f();return}if(S.upArrow)Z((n)=>Math.max(0,n-1));if(S.downArrow)Z((n)=>Math.min(T.length-1,n+1))}),x9.createElement(x9.Fragment,null,K==="theme"?x9.createElement(EK1,{initialTheme:Q.theme,onThemeSelect:(O)=>{let S={...Q,theme:O};T0(S),I(S)},skipExitHandling:!0}):K==="model"?x9.createElement(UK1,{initial:W,onSelect:(O)=>{q(O),U(null)}}):K==="externalIncludes"?x9.createElement(NK1,{onDone:()=>{U(null)}}):x9.createElement(x9.Fragment,null,x9.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:$1().secondaryBorder,paddingX:1,marginTop:1},x9.createElement(m,{flexDirection:"column",minHeight:2,marginBottom:1},x9.createElement(y,{bold:!0},"Settings"),x9.createElement(y,{dimColor:!0},"Configure ",x0," preferences")),T.map((O,S)=>{let f=S===D;return x9.createElement(m,{key:O.id,height:2,minHeight:2},x9.createElement(m,{width:44},x9.createElement(y,{color:f?"blue":void 0},f?H2.pointer:" "," ",O.label)),x9.createElement(m,null,O.type==="boolean"?x9.createElement(y,{color:f?"blue":void 0},O.value.toString()):O.id==="theme"?x9.createElement(y,{color:f?"blue":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)"}[O.value.toString()]||O.value.toString()})()):x9.createElement(y,{color:f?"blue":void 0},O.value.toString())))})),x9.createElement(m,{marginLeft:3},x9.createElement(y,{dimColor:!0},Y.pending?x9.createElement(x9.Fragment,null,"Press ",Y.keyName," again to exit"):x9.createElement(x9.Fragment,null,"↑/↓ to select · Enter/Tab/Space to change · Esc to close")))))}var to1=F1(S1(),1);var JB5={aliases:["theme"],type:"local-jsx",name:"config",description:"Open config panel",isEnabled:!0,isHidden:!1,async call(A,{options:{mcpClients:B}}){let Q=_I1(B);return to1.createElement(yw2,{onClose:A,isConnectedToIde:Q})},userFacingName(){return"config"}},kw2=JB5;var CB5={type:"local",name:"cost",description:"Show the total cost and duration of the current session",isEnabled:!0,isHidden:!1,async call(){if(C6())return"With your Claude Max subscription, no need to monitor cost — your subscription includes Claude Code usage";return ha1()},userFacingName(){return"cost"}},xw2=CB5;var sB5=F1(yE2(),1);var bE2=F1(S1(),1);var _2=F1(S1(),1);import{join as rB5}from"path";import{constants as oB5}from"fs";var kE2=F1(Ia(),1);async function xE2(){try{let A=await Az("tengu_version_config",{minVersion:"0.0.0"});if(A.minVersion&&kE2.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.2"}.VERSION,A.minVersion))console.error(`
1979
+ 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.2"}.VERSION}) needs an update.
1980
1980
  A newer version (${A.minVersion} or higher) is required to continue.
1981
1981
 
1982
1982
  To update, please run:
1983
1983
  claude update
1984
1984
 
1985
1985
  This will ensure you have access to the latest features and improvements.
1986
- `),process.exit(1)}catch(A){m1(A)}}var zj=rB5(S5,".update.lock"),tB5=300000;function eB5(){try{if(!b1().existsSync(S5))b1().mkdirSync(S5);if(b1().existsSync(zj)){let A=b1().statSync(zj);if(Date.now()-A.mtimeMs<tB5)return!1;try{b1().unlinkSync(zj)}catch(Q){return m1(Q),!1}}return b1().writeFileSync(zj,`${process.pid}`,{encoding:"utf8",flush:!1}),!0}catch(A){return m1(A),!1}}function A35(){try{if(b1().existsSync(zj)){if(b1().readFileSync(zj,{encoding:"utf8"})===`${process.pid}`)b1().unlinkSync(zj)}}catch(A){m1(A)}}async function B35(){let A=uA.isRunningWithBun(),B=null;if(A)B=await l0("bun",["pm","bin","-g"]);else B=await l0("npm",["-g","config","get","prefix"]);if(B.code!==0)return m1(new Error(`Failed to check ${A?"bun":"npm"} permissions`)),null;return B.stdout.trim()}async function Jt1(){try{let A=await B35();if(!A)return{hasPermissions:!1,npmPrefix:null};let B=!1;try{b1().accessSync(A,oB5.W_OK),B=!0}catch{B=!1}if(B)return{hasPermissions:!0,npmPrefix:A};return m1(new Error("Insufficient permissions for global npm install.")),{hasPermissions:!1,npmPrefix:A}}catch(A){return m1(A),{hasPermissions:!1,npmPrefix:null}}}async function OK1(){let A=new AbortController;setTimeout(()=>A.abort(),5000);let B=await l0("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.1"}.PACKAGE_URL}@latest`,"version"],A.signal);if(B.code!==0)return null;return B.stdout.trim()}async function TK1(){if(!eB5())return m1(new Error("Another process is currently installing an update")),j1("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.1"}.VERSION}),"in_progress";try{if(!uA.isRunningWithBun()&&uA.isNpmFromWindowsPath())return m1(new Error("Windows NPM detected in WSL environment")),j1("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.1"}.VERSION}),console.error(`
1986
+ `),process.exit(1)}catch(A){m1(A)}}var zj=rB5(S5,".update.lock"),tB5=300000;function eB5(){try{if(!b1().existsSync(S5))b1().mkdirSync(S5);if(b1().existsSync(zj)){let A=b1().statSync(zj);if(Date.now()-A.mtimeMs<tB5)return!1;try{b1().unlinkSync(zj)}catch(Q){return m1(Q),!1}}return b1().writeFileSync(zj,`${process.pid}`,{encoding:"utf8",flush:!1}),!0}catch(A){return m1(A),!1}}function A35(){try{if(b1().existsSync(zj)){if(b1().readFileSync(zj,{encoding:"utf8"})===`${process.pid}`)b1().unlinkSync(zj)}}catch(A){m1(A)}}async function B35(){let A=uA.isRunningWithBun(),B=null;if(A)B=await l0("bun",["pm","bin","-g"]);else B=await l0("npm",["-g","config","get","prefix"]);if(B.code!==0)return m1(new Error(`Failed to check ${A?"bun":"npm"} permissions`)),null;return B.stdout.trim()}async function Jt1(){try{let A=await B35();if(!A)return{hasPermissions:!1,npmPrefix:null};let B=!1;try{b1().accessSync(A,oB5.W_OK),B=!0}catch{B=!1}if(B)return{hasPermissions:!0,npmPrefix:A};return m1(new Error("Insufficient permissions for global npm install.")),{hasPermissions:!1,npmPrefix:A}}catch(A){return m1(A),{hasPermissions:!1,npmPrefix:null}}}async function OK1(){let A=new AbortController;setTimeout(()=>A.abort(),5000);let B=await l0("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.2"}.PACKAGE_URL}@latest`,"version"],A.signal);if(B.code!==0)return null;return B.stdout.trim()}async function TK1(){if(!eB5())return m1(new Error("Another process is currently installing an update")),j1("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.2"}.VERSION}),"in_progress";try{if(!uA.isRunningWithBun()&&uA.isNpmFromWindowsPath())return m1(new Error("Windows NPM detected in WSL environment")),j1("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.2"}.VERSION}),console.error(`
1987
1987
  Error: Windows NPM detected in WSL
1988
1988
 
1989
1989
  You're running Claude Code in WSL but using the Windows NPM installation from /mnt/c/.
@@ -1993,8 +1993,8 @@ To fix this issue:
1993
1993
  1. Install Node.js within your Linux distribution: e.g. sudo apt install nodejs npm
1994
1994
  2. Make sure Linux NPM is in your PATH before the Windows version
1995
1995
  3. Try updating again with 'claude update'
1996
- `),"install_failed";let{hasPermissions:A}=await Jt1();if(!A)return"no_permissions";let B=uA.isRunningWithBun()?"bun":"npm",Q=await l0(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.1"}.PACKAGE_URL]);if(Q.code!==0)return m1(new Error(`Failed to install new version of claude: ${Q.stdout} ${Q.stderr}`)),"install_failed";return"success"}finally{A35()}}import{homedir as PK1}from"os";import{join as rR}from"path";import{execFile as Q35}from"child_process";var sR=rR(PK1(),".claude","local"),fE2=rR(sR,"package.json"),Td=rR(sR,"claude");function oR(){return(process.argv[1]||"").includes("/.claude/local/node_modules/")}async function Ct1(){try{if(!b1().existsSync(sR))b1().mkdirSync(sR);if(!b1().existsSync(fE2)){let B={name:"claude-local",version:"0.0.1",private:!0};b1().writeFileSync(fE2,JSON.stringify(B,null,2),{encoding:"utf8",flush:!1})}let A=rR(sR,"claude");if(!b1().existsSync(A)){let B=`#!/bin/bash
1997
- exec "${sR}/node_modules/.bin/claude" "$@"`;b1().writeFileSync(A,B,{encoding:"utf8",flush:!1}),await l0("chmod",["+x",A])}return!0}catch(A){return m1(A instanceof Error?A:new Error(String(A))),!1}}async function Pd(A="latest"){try{if(!await Ct1())return"install_failed";let B=await new Promise((I)=>{Q35("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.1"}.PACKAGE_URL}@${A}`],{cwd:sR,maxBuffer:1e6},(G,D,Z)=>{if(G)I({stdout:D||"",stderr:Z||"",code:typeof G.code==="number"?G.code:1});else I({stdout:D,stderr:Z,code:0})})});if(B.code!==0)return m1(new Error(`Failed to install Claude CLI package: ${B.stderr}`)),B.code==190?"in_progress":"install_failed";let Q=VA();return T0({...Q,autoUpdaterStatus:"migrated"}),"success"}catch(B){return m1(B instanceof Error?B:new Error(String(B))),"install_failed"}}function wj(){return b1().existsSync(rR(sR,"node_modules",".bin","claude"))}function Xt1(){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 SK1(){let A=await Xt1(),B={zsh:rR(PK1(),".zshrc"),bash:rR(PK1(),".bashrc"),fish:rR(PK1(),".config/fish/config.fish")},Q="",I=A in B?B[A]:null,G=`alias claude="${Td}"`;try{if(I&&b1().existsSync(I)){let D=b1().readFileSync(I,{encoding:"utf8"});if(!D.includes(G)){let Z=D.endsWith(`
1996
+ `),"install_failed";let{hasPermissions:A}=await Jt1();if(!A)return"no_permissions";let B=uA.isRunningWithBun()?"bun":"npm",Q=await l0(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.2"}.PACKAGE_URL]);if(Q.code!==0)return m1(new Error(`Failed to install new version of claude: ${Q.stdout} ${Q.stderr}`)),"install_failed";return"success"}finally{A35()}}import{homedir as PK1}from"os";import{join as rR}from"path";import{execFile as Q35}from"child_process";var sR=rR(PK1(),".claude","local"),fE2=rR(sR,"package.json"),Td=rR(sR,"claude");function oR(){return(process.argv[1]||"").includes("/.claude/local/node_modules/")}async function Ct1(){try{if(!b1().existsSync(sR))b1().mkdirSync(sR);if(!b1().existsSync(fE2)){let B={name:"claude-local",version:"0.0.1",private:!0};b1().writeFileSync(fE2,JSON.stringify(B,null,2),{encoding:"utf8",flush:!1})}let A=rR(sR,"claude");if(!b1().existsSync(A)){let B=`#!/bin/bash
1997
+ exec "${sR}/node_modules/.bin/claude" "$@"`;b1().writeFileSync(A,B,{encoding:"utf8",flush:!1}),await l0("chmod",["+x",A])}return!0}catch(A){return m1(A instanceof Error?A:new Error(String(A))),!1}}async function Pd(A="latest"){try{if(!await Ct1())return"install_failed";let B=await new Promise((I)=>{Q35("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.2"}.PACKAGE_URL}@${A}`],{cwd:sR,maxBuffer:1e6},(G,D,Z)=>{if(G)I({stdout:D||"",stderr:Z||"",code:typeof G.code==="number"?G.code:1});else I({stdout:D,stderr:Z,code:0})})});if(B.code!==0)return m1(new Error(`Failed to install Claude CLI package: ${B.stderr}`)),B.code==190?"in_progress":"install_failed";let Q=VA();return T0({...Q,autoUpdaterStatus:"migrated"}),"success"}catch(B){return m1(B instanceof Error?B:new Error(String(B))),"install_failed"}}function wj(){return b1().existsSync(rR(sR,"node_modules",".bin","claude"))}function Xt1(){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 SK1(){let A=await Xt1(),B={zsh:rR(PK1(),".zshrc"),bash:rR(PK1(),".bashrc"),fish:rR(PK1(),".config/fish/config.fish")},Q="",I=A in B?B[A]:null,G=`alias claude="${Td}"`;try{if(I&&b1().existsSync(I)){let D=b1().readFileSync(I,{encoding:"utf8"});if(!D.includes(G)){let Z=D.endsWith(`
1998
1998
  `)?`${G}
1999
1999
  `:`
2000
2000
  ${G}
@@ -2023,10 +2023,10 @@ Then run: source ${I}
2023
2023
  `,Q+=` mkdir -p ~/bin
2024
2024
  `,Q+=` ln -sf ${Td} ~/bin/claude
2025
2025
  `,Q+=` # Make sure ~/bin is in your PATH
2026
- `;return Q}async function vE2(){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.1"}.PACKAGE_URL],B=await l0("npm",A);if(B.code!==0)return m1(new Error(`Failed to uninstall global version: ${B.stderr}`)),!1;return!0}catch(A){return m1(A instanceof Error?A:new Error(String(A))),!1}}function tR(A,B){j1("tengu_local_install_migration",{result:A,reason:B})}function _K1({onDone:A,doctorMode:B=!1}){let[Q,I]=_2.useState(null),[G,D]=_2.useState(null),[Z,Y]=_2.useState(null),[W,F]=_2.useState(null),[J,C]=_2.useState(null),X=$1(),V=v2(),K=_2.useCallback(async()=>{let N=oR(),q=wj();if(Y(N),F(q),q){let M=await SK1();C(M)}if(N){let M=VA();if(T0({...M,autoUpdaterStatus:"migrated"}),j1("tengu_auto_updater_local_installation",{isRunningFromLocal:!0}),!B){A();return}}if(!N&&q)j1("tengu_auto_updater_local_installation",{hasLocalButNotRunningFromIt:!0});if(!N||B){let M=await Jt1();if(j1("tengu_auto_updater_permissions_check",{hasPermissions:M.hasPermissions}),I(M.hasPermissions),M.npmPrefix)D(M.npmPrefix);if(M.hasPermissions){let R=VA();if(T0({...R,autoUpdaterStatus:"enabled"}),!B)A()}}},[A,B]);if(_2.useEffect(()=>{j1("tengu_auto_updater_config_start",{}),K()},[K]),J0((N,q)=>{if(q.return)A()}),Z===null||Z===!1&&Q===null)return _2.default.createElement(m,{paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.secondaryText},"Checking installation status…"));if(Z===!0)return _2.default.createElement(m,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.success},"✓ Local installation: OK"),_2.default.createElement(y,null,"You are running ",x0," from your local installation (~/.claude/local). This installation method does not depend on global npm permissions."),_2.default.createElement(y,null,"If auto-updates aren't working, you can force update with:"),_2.default.createElement(m,{marginY:1,paddingX:2},_2.default.createElement(y,{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.1"}.PACKAGE_URL)),_2.default.createElement(sW,null));if(W===!0&&Z===!1)return _2.default.createElement(m,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.warning},"⚠ Local installation found but not in use"),_2.default.createElement(y,null,"A local installation of ",x0," was found at ~/.claude/local, but you are currently running the global npm installation."),_2.default.createElement(y,null,"To use your local installation, run it directly:"),_2.default.createElement(m,{marginY:1,paddingX:2},_2.default.createElement(y,{bold:!0},"~/.claude/local/claude")),_2.default.createElement(y,null,"Or set up an alias in your shell configuration:"),_2.default.createElement(m,{marginY:1,flexDirection:"column",paddingX:2},J&&_2.default.createElement(y,null,J)),_2.default.createElement(sW,null));if(Q===!0){if(B)return _2.default.createElement(m,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.success},"✓ npm permissions: OK"),_2.default.createElement(y,null,"Your installation is healthy and ready for auto-updates."),_2.default.createElement(m,{marginY:1},_2.default.createElement(y,null,"You can also install ",x0," locally to avoid npm permission issues using the slash command:")),_2.default.createElement(m,{marginY:1,paddingX:2},_2.default.createElement(y,{bold:!0},"/migrate-installer")),_2.default.createElement(sW,null));return _2.default.createElement(m,{paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.success},"✓ Auto-updates enabled"))}let U=_2.default.createElement(_2.default.Fragment,null,_2.default.createElement(y,null,"You have two options:"),_2.default.createElement(m,{flexDirection:"column",marginY:1},_2.default.createElement(y,{bold:!0},"Option 1: Use local installation (recommended)"),_2.default.createElement(y,null,"Install ",x0," to your home directory using the slash command:"),_2.default.createElement(m,{paddingX:2,marginY:1},_2.default.createElement(y,{bold:!0},"/migrate-installer")),_2.default.createElement(y,null,"This method doesn't require global npm permissions.")));return _2.default.createElement(_2.default.Fragment,null,_2.default.createElement(m,{borderColor:X.permission,borderStyle:"round",flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(m,{flexDirection:"column",gap:1},_2.default.createElement(y,{bold:!0,color:X.permission},"npm permission issues detected"),_2.default.createElement(y,null,x0," can't update itself because it doesn't have sufficient global npm permissions."),U,_2.default.createElement(m,{flexDirection:"column",marginY:1},_2.default.createElement(y,{bold:!0},"Option 2: Fix npm permissions"),_2.default.createElement(y,null,"Visit our"," ",_2.default.createElement(GS,{url:"https://docs.anthropic.com/s/claude-code-auto-updater"},_2.default.createElement(y,{color:X.warning},"troubleshooting guide"))," ","to learn how to fix npm permission issues."))),_2.default.createElement(sW,null),G&&_2.default.createElement(m,null,_2.default.createElement(y,{color:X.secondaryText},"Current npm prefix: ",G))),_2.default.createElement(m,{marginLeft:1,height:Q===!1?1:void 0},_2.default.createElement(y,{dimColor:!0},V.pending?_2.default.createElement(_2.default.Fragment,null,"Press ",V.keyName," again to exit"):null)))}var I35={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=bE2.default.createElement(_K1,{onDone:A,doctorMode:!0});return Promise.resolve(B)}},gE2=I35;import{execSync as G35}from"child_process";async function D35(){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 hE2(A){let B=await D35();G35(`${B} "${A}"`,{stdio:"inherit"})}var U5=F1(S1(),1);var o8=F1(S1(),1);var dE2=F1(S1(),1);var mE2="Project";function jK1({onSelect:A,onCancel:B,title:Q,renderDetails:I}){let[G,D]=dE2.useState(mE2),Z=$1(),Y=PJ2(u4()),W=[{label:"Project memory",value:"Project",description:`${Y?"Checked in at":"Saved in"} ./CLAUDE.md`},...Y?[{label:"Project memory (local)",value:"Local",description:"Gitignored in ./CLAUDE.local.md"}]:[],{label:"User memory",value:"User",description:"Saved in ~/.claude/CLAUDE.md"},...[]];return v2(),J0((F,J)=>{if(J.escape)B()}),o8.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:Z.remember,padding:1,width:"100%"},o8.createElement(m,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},o8.createElement(y,{color:Z.remember,bold:!0},Q||"Where should this memory be saved?")),o8.createElement(m,{flexDirection:"column",paddingX:1},o8.createElement(A9,{focusValue:G,options:W,onFocus:(F)=>D(F),onChange:(F)=>{mE2=F,A(F)},onCancel:B})),o8.createElement(m,{marginTop:1,flexDirection:"column"},I?I(G):o8.createElement(Z35,{type:G})))}function Z35({type:A}){return o8.createElement(o8.Fragment,null,A==="Project"&&o8.createElement(y,{dimColor:!0},"Example project memory: “Run lint with the following command after major edits: npm run lint”"),A==="Local"&&o8.createElement(y,{dimColor:!0},"Example local memory: “Use my sandbox URL for testing: https://myapp.local”"),A==="User"&&o8.createElement(y,{dimColor:!0},"Example user memory: “Don't add new comments when editing code”"),A==="ExperimentalUltraClaudeMd"&&!1)}var WK=F1(S1(),1);var yK1=F1(S1(),1);function uE2(){let[,A]=yK1.useState(0);return yK1.useEffect(()=>{let B=VA().theme,Q=setInterval(()=>{let I=VA().theme;if(I!==B)B=I,A((G)=>G+1)},100);return()=>clearInterval(Q)},[]),$1()}function kK1(){let A=UZ(),B=uE2();if(A.length===0)return null;let Q=new Map;return WK.createElement(m,{flexDirection:"column"},A.map((I,G)=>{let D=$41(I.path),Z=`${st(I.type)}: `,Y=I.parent?(Q.get(I.parent)??0)+1:0;if(Q.set(I.path,Y),Y===0)return WK.createElement(y,{key:G},WK.createElement(y,{color:B.secondaryText}," L "),`${Z}${D}`);else{let W=" ".repeat(Y-1);return WK.createElement(y,{key:G}," ".repeat(Z.length+2),W,WK.createElement(y,{color:B.secondaryText}," L "),D)}}))}var Y35={type:"local-jsx",name:"memory",description:"Edit Claude memory files",isEnabled:!0,isHidden:!1,async call(A,B){return U5.createElement(m,{flexDirection:"column"},U5.createElement(m,{flexDirection:"column",marginTop:1,marginBottom:1},U5.createElement(y,{bold:!0},"Memory Files"),U5.createElement(kK1,null),U5.createElement(m,{marginTop:1},U5.createElement(y,{dimColor:!0},"Learn more:"," ",U5.createElement($7,{url:"https://docs.anthropic.com/en/docs/claude-code/memory"})))),U5.createElement(jK1,{title:"Select memory to edit:",onSelect:async(G)=>{try{let D=gR(G),Z=G==="User"?S5:dA();if(!b1().existsSync(Z))b1().mkdirSync(Z);if(!b1().existsSync(D)){if(b1().writeFileSync(D,"",{encoding:"utf8",flush:!0}),G==="Local")await BV1(D)}await hE2(D);let Y="default",W="";if(process.env.VISUAL)Y="$VISUAL",W=process.env.VISUAL;else if(process.env.EDITOR)Y="$EDITOR",W=process.env.EDITOR;let F=Y!=="default"?`Using ${Y}="${W}".`:"",J=F?`> ${F} To change editor, set $EDITOR or $VISUAL environment variable.`:"> To use a different editor, set the $EDITOR or $VISUAL environment variable.";A(`Opened ${eX1(G).toLowerCase()} at ${AV1(D)}
2026
+ `;return Q}async function vE2(){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.2"}.PACKAGE_URL],B=await l0("npm",A);if(B.code!==0)return m1(new Error(`Failed to uninstall global version: ${B.stderr}`)),!1;return!0}catch(A){return m1(A instanceof Error?A:new Error(String(A))),!1}}function tR(A,B){j1("tengu_local_install_migration",{result:A,reason:B})}function _K1({onDone:A,doctorMode:B=!1}){let[Q,I]=_2.useState(null),[G,D]=_2.useState(null),[Z,Y]=_2.useState(null),[W,F]=_2.useState(null),[J,C]=_2.useState(null),X=$1(),V=v2(),K=_2.useCallback(async()=>{let N=oR(),q=wj();if(Y(N),F(q),q){let M=await SK1();C(M)}if(N){let M=VA();if(T0({...M,autoUpdaterStatus:"migrated"}),j1("tengu_auto_updater_local_installation",{isRunningFromLocal:!0}),!B){A();return}}if(!N&&q)j1("tengu_auto_updater_local_installation",{hasLocalButNotRunningFromIt:!0});if(!N||B){let M=await Jt1();if(j1("tengu_auto_updater_permissions_check",{hasPermissions:M.hasPermissions}),I(M.hasPermissions),M.npmPrefix)D(M.npmPrefix);if(M.hasPermissions){let R=VA();if(T0({...R,autoUpdaterStatus:"enabled"}),!B)A()}}},[A,B]);if(_2.useEffect(()=>{j1("tengu_auto_updater_config_start",{}),K()},[K]),J0((N,q)=>{if(q.return)A()}),Z===null||Z===!1&&Q===null)return _2.default.createElement(m,{paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.secondaryText},"Checking installation status…"));if(Z===!0)return _2.default.createElement(m,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.success},"✓ Local installation: OK"),_2.default.createElement(y,null,"You are running ",x0," from your local installation (~/.claude/local). This installation method does not depend on global npm permissions."),_2.default.createElement(y,null,"If auto-updates aren't working, you can force update with:"),_2.default.createElement(m,{marginY:1,paddingX:2},_2.default.createElement(y,{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.2"}.PACKAGE_URL)),_2.default.createElement(sW,null));if(W===!0&&Z===!1)return _2.default.createElement(m,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.warning},"⚠ Local installation found but not in use"),_2.default.createElement(y,null,"A local installation of ",x0," was found at ~/.claude/local, but you are currently running the global npm installation."),_2.default.createElement(y,null,"To use your local installation, run it directly:"),_2.default.createElement(m,{marginY:1,paddingX:2},_2.default.createElement(y,{bold:!0},"~/.claude/local/claude")),_2.default.createElement(y,null,"Or set up an alias in your shell configuration:"),_2.default.createElement(m,{marginY:1,flexDirection:"column",paddingX:2},J&&_2.default.createElement(y,null,J)),_2.default.createElement(sW,null));if(Q===!0){if(B)return _2.default.createElement(m,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.success},"✓ npm permissions: OK"),_2.default.createElement(y,null,"Your installation is healthy and ready for auto-updates."),_2.default.createElement(m,{marginY:1},_2.default.createElement(y,null,"You can also install ",x0," locally to avoid npm permission issues using the slash command:")),_2.default.createElement(m,{marginY:1,paddingX:2},_2.default.createElement(y,{bold:!0},"/migrate-installer")),_2.default.createElement(sW,null));return _2.default.createElement(m,{paddingX:1,paddingTop:1},_2.default.createElement(y,{color:X.success},"✓ Auto-updates enabled"))}let U=_2.default.createElement(_2.default.Fragment,null,_2.default.createElement(y,null,"You have two options:"),_2.default.createElement(m,{flexDirection:"column",marginY:1},_2.default.createElement(y,{bold:!0},"Option 1: Use local installation (recommended)"),_2.default.createElement(y,null,"Install ",x0," to your home directory using the slash command:"),_2.default.createElement(m,{paddingX:2,marginY:1},_2.default.createElement(y,{bold:!0},"/migrate-installer")),_2.default.createElement(y,null,"This method doesn't require global npm permissions.")));return _2.default.createElement(_2.default.Fragment,null,_2.default.createElement(m,{borderColor:X.permission,borderStyle:"round",flexDirection:"column",gap:1,paddingX:1,paddingTop:1},_2.default.createElement(m,{flexDirection:"column",gap:1},_2.default.createElement(y,{bold:!0,color:X.permission},"npm permission issues detected"),_2.default.createElement(y,null,x0," can't update itself because it doesn't have sufficient global npm permissions."),U,_2.default.createElement(m,{flexDirection:"column",marginY:1},_2.default.createElement(y,{bold:!0},"Option 2: Fix npm permissions"),_2.default.createElement(y,null,"Visit our"," ",_2.default.createElement(GS,{url:"https://docs.anthropic.com/s/claude-code-auto-updater"},_2.default.createElement(y,{color:X.warning},"troubleshooting guide"))," ","to learn how to fix npm permission issues."))),_2.default.createElement(sW,null),G&&_2.default.createElement(m,null,_2.default.createElement(y,{color:X.secondaryText},"Current npm prefix: ",G))),_2.default.createElement(m,{marginLeft:1,height:Q===!1?1:void 0},_2.default.createElement(y,{dimColor:!0},V.pending?_2.default.createElement(_2.default.Fragment,null,"Press ",V.keyName," again to exit"):null)))}var I35={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=bE2.default.createElement(_K1,{onDone:A,doctorMode:!0});return Promise.resolve(B)}},gE2=I35;import{execSync as G35}from"child_process";async function D35(){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 hE2(A){let B=await D35();G35(`${B} "${A}"`,{stdio:"inherit"})}var U5=F1(S1(),1);var o8=F1(S1(),1);var dE2=F1(S1(),1);var mE2="Project";function jK1({onSelect:A,onCancel:B,title:Q,renderDetails:I}){let[G,D]=dE2.useState(mE2),Z=$1(),Y=PJ2(u4()),W=[{label:"Project memory",value:"Project",description:`${Y?"Checked in at":"Saved in"} ./CLAUDE.md`},...Y?[{label:"Project memory (local)",value:"Local",description:"Gitignored in ./CLAUDE.local.md"}]:[],{label:"User memory",value:"User",description:"Saved in ~/.claude/CLAUDE.md"},...[]];return v2(),J0((F,J)=>{if(J.escape)B()}),o8.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:Z.remember,padding:1,width:"100%"},o8.createElement(m,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},o8.createElement(y,{color:Z.remember,bold:!0},Q||"Where should this memory be saved?")),o8.createElement(m,{flexDirection:"column",paddingX:1},o8.createElement(A9,{focusValue:G,options:W,onFocus:(F)=>D(F),onChange:(F)=>{mE2=F,A(F)},onCancel:B})),o8.createElement(m,{marginTop:1,flexDirection:"column"},I?I(G):o8.createElement(Z35,{type:G})))}function Z35({type:A}){return o8.createElement(o8.Fragment,null,A==="Project"&&o8.createElement(y,{dimColor:!0},"Example project memory: “Run lint with the following command after major edits: npm run lint”"),A==="Local"&&o8.createElement(y,{dimColor:!0},"Example local memory: “Use my sandbox URL for testing: https://myapp.local”"),A==="User"&&o8.createElement(y,{dimColor:!0},"Example user memory: “Don't add new comments when editing code”"),A==="ExperimentalUltraClaudeMd"&&!1)}var WK=F1(S1(),1);var yK1=F1(S1(),1);function uE2(){let[,A]=yK1.useState(0);return yK1.useEffect(()=>{let B=VA().theme,Q=setInterval(()=>{let I=VA().theme;if(I!==B)B=I,A((G)=>G+1)},100);return()=>clearInterval(Q)},[]),$1()}function kK1(){let A=UZ(),B=uE2();if(A.length===0)return null;let Q=new Map;return WK.createElement(m,{flexDirection:"column"},A.map((I,G)=>{let D=$41(I.path),Z=`${st(I.type)}: `,Y=I.parent?(Q.get(I.parent)??0)+1:0;if(Q.set(I.path,Y),Y===0)return WK.createElement(y,{key:G},WK.createElement(y,{color:B.secondaryText}," L "),`${Z}${D}`);else{let W=" ".repeat(Y-1);return WK.createElement(y,{key:G}," ".repeat(Z.length+2),W,WK.createElement(y,{color:B.secondaryText}," L "),D)}}))}var Y35={type:"local-jsx",name:"memory",description:"Edit Claude memory files",isEnabled:!0,isHidden:!1,async call(A,B){return U5.createElement(m,{flexDirection:"column"},U5.createElement(m,{flexDirection:"column",marginTop:1,marginBottom:1},U5.createElement(y,{bold:!0},"Memory Files"),U5.createElement(kK1,null),U5.createElement(m,{marginTop:1},U5.createElement(y,{dimColor:!0},"Learn more:"," ",U5.createElement($7,{url:"https://docs.anthropic.com/en/docs/claude-code/memory"})))),U5.createElement(jK1,{title:"Select memory to edit:",onSelect:async(G)=>{try{let D=gR(G),Z=G==="User"?S5:dA();if(!b1().existsSync(Z))b1().mkdirSync(Z);if(!b1().existsSync(D)){if(b1().writeFileSync(D,"",{encoding:"utf8",flush:!0}),G==="Local")await BV1(D)}await hE2(D);let Y="default",W="";if(process.env.VISUAL)Y="$VISUAL",W=process.env.VISUAL;else if(process.env.EDITOR)Y="$EDITOR",W=process.env.EDITOR;let F=Y!=="default"?`Using ${Y}="${W}".`:"",J=F?`> ${F} To change editor, set $EDITOR or $VISUAL environment variable.`:"> To use a different editor, set the $EDITOR or $VISUAL environment variable.";A(`Opened ${eX1(G).toLowerCase()} at ${AV1(D)}
2027
2027
 
2028
2028
  ${J}`)}catch(D){m1(D instanceof Error?D:new Error(String(D))),A(`Error opening memory file: ${D}`)}},onCancel:()=>{A("Cancelled memory editing")},renderDetails:(G)=>U5.createElement(W35,{memoryType:G})}))},userFacingName(){return this.name}};function W35({memoryType:A}){let B=$1(),Q=gR(A);if(!b1().existsSync(Q)){let W={User:"~/.claude/CLAUDE.md",Project:"./CLAUDE.md",Local:"./CLAUDE.local.md + add to .gitignore"}[A];return U5.createElement(U5.Fragment,null,U5.createElement(y,{dimColor:!0},"Memory file does not exist yet. [Enter] to create ",W,"."))}let Z=ot(Q).split(`
2029
- `).filter((Y)=>Y.trim().startsWith("-")||Y.trim().startsWith("*")||/^\s*\d+\./.test(Y.trim())).length;return U5.createElement(U5.Fragment,null,U5.createElement(y,{color:B.remember},Z," ",Z===1?"memory":"memories"," in"," ",AV1(Q)))}var pE2=Y35;var B2=F1(S1(),1);function cE2({commands:A,onClose:B}){let Q=$1(),I=`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.1"}.README_URL}`,G=A.filter((W)=>!W.isHidden),[D,Z]=B2.useState(0);B2.useEffect(()=>{let W=setTimeout(()=>{if(D<3)Z(D+1)},250);return()=>clearTimeout(W)},[D]),J0((W,F)=>{if(F.return||F.escape)B()});let Y=v2(B);return B2.createElement(m,{flexDirection:"column",padding:1},B2.createElement(y,{bold:!0,color:Q.claude},`${x0} 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.1"}.VERSION}`),B2.createElement(m,{marginTop:1,flexDirection:"column"},B2.createElement(y,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.")),D>=1&&B2.createElement(m,{flexDirection:"column",marginTop:1},B2.createElement(y,{bold:!0},"Usage Modes:"),B2.createElement(y,null,"• REPL: ",B2.createElement(y,{bold:!0},"claude")," (interactive session)"),B2.createElement(y,null,"• Non-interactive: ",B2.createElement(y,{bold:!0},'claude -p "question"')),B2.createElement(m,{marginTop:1},B2.createElement(y,null,"Run ",B2.createElement(y,{bold:!0},"claude -h")," for all command line options"))),D>=2&&B2.createElement(m,{marginTop:1,flexDirection:"column"},B2.createElement(y,{bold:!0},"Common Tasks:"),B2.createElement(y,null,"• Ask questions about your codebase"," ",B2.createElement(y,{color:$1().secondaryText},"> How does foo.py work?")),B2.createElement(y,null,"• Edit files"," ",B2.createElement(y,{color:$1().secondaryText},"> Update bar.ts to...")),B2.createElement(y,null,"• Fix errors"," ",B2.createElement(y,{color:$1().secondaryText},"> cargo build")),B2.createElement(y,null,"• Run commands"," ",B2.createElement(y,{color:$1().secondaryText},"> /help")),B2.createElement(y,null,"• Run bash commands"," ",B2.createElement(y,{color:$1().secondaryText},"> !ls"))),D>=3&&B2.createElement(m,{marginTop:1,flexDirection:"column"},B2.createElement(y,{bold:!0},"Interactive Mode Commands:"),B2.createElement(m,{flexDirection:"column"},G.map((W,F)=>B2.createElement(m,{key:F,marginLeft:1},B2.createElement(y,{bold:!0},`/${W.name}`),B2.createElement(y,null," - ",W.description))))),B2.createElement(m,{marginTop:1},B2.createElement(y,{color:Q.secondaryText},I)),B2.createElement(m,{marginTop:2},Y.pending?B2.createElement(y,{dimColor:!0},"Press ",Y.keyName," again to exit"):B2.createElement(sW,null)))}var Vt1=F1(S1(),1),F35={type:"local-jsx",name:"help",description:"Show help and available commands",isEnabled:!0,isHidden:!1,async call(A,{options:{commands:B}}){return Vt1.createElement(cE2,{commands:B,onClose:A})},userFacingName(){return"help"}},lE2=F35;var t8=F1(S1(),1);function J35({availableIDEs:A,unavailableIDEs:B,selectedIDE:Q,onClose:I,onSelect:G}){let D=$1(),Z=v2(),[Y,W]=t8.useState(Q?.port?.toString()??"None"),F=t8.useCallback((C)=>{G(A.find((X)=>X.port===parseInt(C)))},[A,G]),J=A.map((C)=>({label:`${C.name}`,value:C.port.toString()})).concat([{label:"None",value:"None"}]);return J0((C,X)=>{if(X.escape)I()}),t8.default.createElement(m,{marginTop:1,flexDirection:"column"},t8.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:D.remember,paddingX:2,paddingY:1,width:"100%"},t8.default.createElement(m,{flexDirection:"column"},t8.default.createElement(y,{color:D.remember,bold:!0},"Select IDE"),t8.default.createElement(y,{dimColor:!0},"Connect to an IDE for integrated development features."),A.length===0&&t8.default.createElement(m,{marginTop:1},t8.default.createElement(y,{dimColor:!0},AD?`No available IDEs detected. Please install the plugin and restart your IDE:
2029
+ `).filter((Y)=>Y.trim().startsWith("-")||Y.trim().startsWith("*")||/^\s*\d+\./.test(Y.trim())).length;return U5.createElement(U5.Fragment,null,U5.createElement(y,{color:B.remember},Z," ",Z===1?"memory":"memories"," in"," ",AV1(Q)))}var pE2=Y35;var B2=F1(S1(),1);function cE2({commands:A,onClose:B}){let Q=$1(),I=`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.2"}.README_URL}`,G=A.filter((W)=>!W.isHidden),[D,Z]=B2.useState(0);B2.useEffect(()=>{let W=setTimeout(()=>{if(D<3)Z(D+1)},250);return()=>clearTimeout(W)},[D]),J0((W,F)=>{if(F.return||F.escape)B()});let Y=v2(B);return B2.createElement(m,{flexDirection:"column",padding:1},B2.createElement(y,{bold:!0,color:Q.claude},`${x0} 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.2"}.VERSION}`),B2.createElement(m,{marginTop:1,flexDirection:"column"},B2.createElement(y,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.")),D>=1&&B2.createElement(m,{flexDirection:"column",marginTop:1},B2.createElement(y,{bold:!0},"Usage Modes:"),B2.createElement(y,null,"• REPL: ",B2.createElement(y,{bold:!0},"claude")," (interactive session)"),B2.createElement(y,null,"• Non-interactive: ",B2.createElement(y,{bold:!0},'claude -p "question"')),B2.createElement(m,{marginTop:1},B2.createElement(y,null,"Run ",B2.createElement(y,{bold:!0},"claude -h")," for all command line options"))),D>=2&&B2.createElement(m,{marginTop:1,flexDirection:"column"},B2.createElement(y,{bold:!0},"Common Tasks:"),B2.createElement(y,null,"• Ask questions about your codebase"," ",B2.createElement(y,{color:$1().secondaryText},"> How does foo.py work?")),B2.createElement(y,null,"• Edit files"," ",B2.createElement(y,{color:$1().secondaryText},"> Update bar.ts to...")),B2.createElement(y,null,"• Fix errors"," ",B2.createElement(y,{color:$1().secondaryText},"> cargo build")),B2.createElement(y,null,"• Run commands"," ",B2.createElement(y,{color:$1().secondaryText},"> /help")),B2.createElement(y,null,"• Run bash commands"," ",B2.createElement(y,{color:$1().secondaryText},"> !ls"))),D>=3&&B2.createElement(m,{marginTop:1,flexDirection:"column"},B2.createElement(y,{bold:!0},"Interactive Mode Commands:"),B2.createElement(m,{flexDirection:"column"},G.map((W,F)=>B2.createElement(m,{key:F,marginLeft:1},B2.createElement(y,{bold:!0},`/${W.name}`),B2.createElement(y,null," - ",W.description))))),B2.createElement(m,{marginTop:1},B2.createElement(y,{color:Q.secondaryText},I)),B2.createElement(m,{marginTop:2},Y.pending?B2.createElement(y,{dimColor:!0},"Press ",Y.keyName," again to exit"):B2.createElement(sW,null)))}var Vt1=F1(S1(),1),F35={type:"local-jsx",name:"help",description:"Show help and available commands",isEnabled:!0,isHidden:!1,async call(A,{options:{commands:B}}){return Vt1.createElement(cE2,{commands:B,onClose:A})},userFacingName(){return"help"}},lE2=F35;var t8=F1(S1(),1);function J35({availableIDEs:A,unavailableIDEs:B,selectedIDE:Q,onClose:I,onSelect:G}){let D=$1(),Z=v2(),[Y,W]=t8.useState(Q?.port?.toString()??"None"),F=t8.useCallback((C)=>{G(A.find((X)=>X.port===parseInt(C)))},[A,G]),J=A.map((C)=>({label:`${C.name}`,value:C.port.toString()})).concat([{label:"None",value:"None"}]);return J0((C,X)=>{if(X.escape)I()}),t8.default.createElement(m,{marginTop:1,flexDirection:"column"},t8.default.createElement(m,{flexDirection:"column",borderStyle:"round",borderColor:D.remember,paddingX:2,paddingY:1,width:"100%"},t8.default.createElement(m,{flexDirection:"column"},t8.default.createElement(y,{color:D.remember,bold:!0},"Select IDE"),t8.default.createElement(y,{dimColor:!0},"Connect to an IDE for integrated development features."),A.length===0&&t8.default.createElement(m,{marginTop:1},t8.default.createElement(y,{dimColor:!0},AD?`No available IDEs detected. Please install the plugin and restart your IDE:
2030
2030
  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&&t8.default.createElement(m,{flexDirection:"column",paddingX:1,marginTop:1},t8.default.createElement(A9,{defaultValue:Y,focusValue:Y,options:J,onFocus:(C)=>W(C),onChange:(C)=>{W(C),F(C)},onCancel:()=>I()})),B.length>0&&t8.default.createElement(m,{marginTop:1,flexDirection:"column"},t8.default.createElement(y,{dimColor:!0},"Found ",B.length," other running IDE(s). However, their workspace/project directories do not match the current cwd."),t8.default.createElement(m,{marginTop:1,flexDirection:"column"},B.map((C,X)=>t8.default.createElement(m,{key:X,paddingLeft:3},t8.default.createElement(y,{dimColor:!0},"• ",C.name,": ",C.workspaceFolders.join(", "))))))),t8.default.createElement(m,{paddingX:1},t8.default.createElement(y,{dimColor:!0},Z.pending?t8.default.createElement(t8.default.Fragment,null,"Press ",Z.keyName," again to exit"):t8.default.createElement(t8.default.Fragment,null,A.length!==0&&"Enter to confirm · ","Esc to exit"))))}async function C35(A,B){let Q=B?.ide;if(!Q||Q.type!=="sse-ide"&&Q.type!=="ws-ide")return null;for(let I of A)if(I.url===Q.url)return I;return null}var X35={type:"local-jsx",name:"ide",description:"Manage IDE integrations and show status",isEnabled:!0,isHidden:!1,argumentHint:"",async call(A,B,Q){j1("tengu_ext_ide_command",{});let{options:{dynamicMcpConfig:I},onChangeDynamicMcpConfig:G}=B,D=await Ya(!0),Z=D.filter((J)=>J.isValid),Y=D.filter((J)=>!J.isValid),W=await C35(Z,I);return t8.default.createElement(J35,{availableIDEs:Z,unavailableIDEs:Y,selectedIDE:W,onClose:()=>A(),onSelect:async(J)=>{try{if(!G){A("Error connecting to IDE.");return}let C={...I||{}};if(W)delete C.ide;if(!J)A(W?`Disconnected from ${W.name}.`:"No IDE selected.");else{let X=J.url;C.ide={type:X.startsWith("ws:")?"ws-ide":"sse-ide",url:X,ideName:J.name},A(`Connected to ${J.name}.`)}G(C)}catch(C){A("Error connecting to IDE.")}}})},userFacingName(){return"ide"}},iE2=X35;var V35={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 Ib(),[{role:"user",content:[{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.
2031
2031
 
2032
2032
  What to add:
@@ -2138,8 +2138,8 @@ There's more information in the [Claude Code documentation](http://docs.anthropi
2138
2138
  After merging this PR, let's try mentioning @claude in a comment on any PR to get started!`;var Ej={FAILED_TO_GET_DEFAULT_BRANCH:10,FAILED_TO_GET_BRANCH_SHA:11,FAILED_TO_CREATE_BRANCH:12,FAILED_TO_CREATE_WORKFLOW_FILE:13,FAILED_TO_SET_API_KEY_SECRET:14,UNEXPECTED_ERROR:15};async function Tt1(A,B,Q,I,G=!1){try{j1("tengu_setup_github_actions_started",{});let D=await l0("gh",["api",`repos/${A}`,"--jq",".default_branch"]);if(D.code!==0)throw j1("tengu_setup_github_actions_failed",{reason:Ej.FAILED_TO_GET_DEFAULT_BRANCH,exit_code:D.code}),new Error(D.stderr||"Failed to get default branch");let Z=D.stdout.trim(),Y=await l0("gh",["api",`repos/${A}/git/ref/heads/${Z}`,"--jq",".object.sha"]);if(Y.code!==0)throw j1("tengu_setup_github_actions_failed",{reason:Ej.FAILED_TO_GET_BRANCH_SHA,exit_code:Y.code}),new Error(Y.stderr||"Failed to get branch SHA");let W=Y.stdout.trim(),F=null;if(!G){I(),F=`add-claude-github-actions-${Date.now()}`;let J=await l0("gh",["api","--method","POST",`repos/${A}/git/refs`,"-f",`ref=refs/heads/${F}`,"-f",`sha=${W}`]);if(J.code!==0)throw j1("tengu_setup_github_actions_failed",{reason:Ej.FAILED_TO_CREATE_BRANCH,exit_code:J.code}),new Error(J.stderr||"Failed to create branch");I();let C=".github/workflows/claude.yml",X=await l0("gh",["api",`repos/${A}/contents/${C}`,"--jq",".sha"]),V=null;if(X.code===0)V=X.stdout.trim();let K=Ot1;if(Q!=="ANTHROPIC_API_KEY")K=Ot1.replace("anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}",`anthropic_api_key: \${{ secrets.${Q} }}`);let U=Buffer.from(K).toString("base64"),N=["api","--method","PUT",`repos/${A}/contents/${C}`,"-f",V?"message=Update Claude PR Assistant workflow":"message=Add Claude PR Assistant workflow","-f",`content=${U}`,"-f",`branch=${F}`];if(V)N.push("-f",`sha=${V}`);let q=await l0("gh",N);if(q.code!==0){if(q.stderr.includes("422")&&q.stderr.includes("sha"))throw j1("tengu_setup_github_actions_failed",{reason:Ej.FAILED_TO_CREATE_WORKFLOW_FILE,exit_code:q.code}),new Error("A Claude workflow file already exists in this repository. Please remove it first or update it manually.");throw j1("tengu_setup_github_actions_failed",{reason:Ej.FAILED_TO_CREATE_WORKFLOW_FILE,exit_code:q.code}),new Error(q.stderr||"Failed to create workflow file")}}if(I(),B){let J=await l0("gh",["secret","set",Q,"--body",B,"--repo",A]);if(J.code!==0)throw j1("tengu_setup_github_actions_failed",{reason:Ej.FAILED_TO_SET_API_KEY_SECRET,exit_code:J.code}),new Error(J.stderr||"Failed to set API key secret")}if(!G&&F){I();let J=`https://github.com/${A}/compare/${Z}...${F}?quick_pull=1&title=${encodeURIComponent(qU2)}&body=${encodeURIComponent(MU2)}`;if(process.platform==="darwin")await l0("open",[J]);else if(process.platform==="win32")await l0("cmd.exe",["/c","start","",J]);else await l0("xdg-open",[J])}j1("tengu_setup_github_actions_completed",{})}catch(D){if(!D||!(D instanceof Error)||!D.message.includes("Failed to"))j1("tengu_setup_github_actions_failed",{reason:Ej.UNEXPECTED_ERROR});if(D instanceof Error)m1(D);throw D}}var ue={GH_CLI_NOT_FOUND_OR_NOT_AUTHENTICATED:1,INVALID_REPO_URL_FORMAT:2,INVALID_REPO_NAME_FORMAT:3,USER_LACKS_ADMIN_PERMISSIONS:4,SETUP_GITHUB_ACTIONS_FAILED:5,API_KEY_MISSING:6,GH_CLI_NOT_INSTALLED:7,GH_CLI_NOT_AUTHENTICATED:8,GH_CLI_MISSING_SCOPES:9,REPO_NOT_FOUND:10,WORKFLOW_FILE_EXISTS:11,APP_NOT_INSTALLED:12},L35={step:"check-gh",selectedRepoName:"",currentRepo:"",useCurrentRepo:!0,apiKey:"",useExistingKey:!0,currentWorkflowInstallStep:0,warnings:[],secretExists:!1,secretName:"ANTHROPIC_API_KEY",useExistingSecret:!0,workflowExists:!1};function R35(A){let[B]=S7.useState(()=>aI(!1)),[Q,I]=S7.useState({...L35,useExistingKey:!!B});v2(),S7.default.useEffect(()=>{j1("tengu_install_github_app_started",{})},[]);let G=S7.useCallback(async()=>{let q=[];try{de("gh --version",{stdio:"ignore"})}catch{q.push({title:"GitHub CLI not found",message:"GitHub CLI (gh) does not appear to be installed or accessible.",instructions:["Install GitHub CLI from https://cli.github.com/","macOS: brew install gh","Windows: winget install --id GitHub.cli","Linux: See installation instructions at https://github.com/cli/cli#installation"]})}try{de("gh auth status",{stdio:"ignore"})}catch{q.push({title:"GitHub CLI not authenticated",message:"GitHub CLI does not appear to be authenticated.",instructions:["Run: gh auth login","Follow the prompts to authenticate with GitHub","Or set up authentication using environment variables or other methods"]})}try{if(!de("gh auth status",{encoding:"utf8",stdio:["pipe","pipe","pipe"]}).includes("workflow"))q.push({title:"Missing workflow permissions",message:"Your GitHub token might not have workflow permissions.",instructions:["Run: gh auth refresh -h github.com -s workflow","Or ensure your authentication method includes workflow scope","This is needed to create GitHub Actions workflows"]})}catch{}let M="";try{de("git rev-parse --is-inside-work-tree",{stdio:"ignore"});let T=de("git remote get-url origin",{encoding:"utf8"}).trim().match(/github\.com[:/]([^/]+\/[^/]+)(\.git)?$/);if(T)M=T[1]?.replace(/\.git$/,"")||""}catch{}I((R)=>({...R,warnings:q,currentRepo:M,selectedRepoName:M,step:q.length>0?"warnings":"choose-repo"}))},[]);S7.default.useEffect(()=>{if(Q.step==="check-gh")G()},[Q.step,G]);async function D(){if(process.platform==="darwin")await l0("open",["https://github.com/apps/claude"]);else if(process.platform==="win32")await l0("cmd.exe",["/c","start","","https://github.com/apps/claude"]);else await l0("xdg-open",["https://github.com/apps/claude"])}async function Z(q){try{let M=await l0("gh",["api",`repos/${q}`,"--jq",".permissions.admin"]);if(M.code===0)return{hasAccess:M.stdout.trim()==="true"};if(M.stderr.includes("404")||M.stderr.includes("Not Found"))return{hasAccess:!1,error:"repository_not_found"};return{hasAccess:!1}}catch{return{hasAccess:!1}}}async function Y(q){return(await l0("gh",["api",`repos/${q}/contents/.github/workflows/claude.yml`,"--jq",".sha"])).code===0}async function W(){let q=await l0("gh",["secret","list","--app","actions","--repo",Q.selectedRepoName]);if(q.code===0)if(q.stdout.split(`
2139
2139
  `).some((T)=>{return/^ANTHROPIC_API_KEY\s+/.test(T)}))I((T)=>({...T,secretExists:!0,step:"check-existing-secret"}));else I((T)=>({...T,step:"api-key"}));else I((M)=>({...M,step:"api-key"}))}let F=async()=>{if(Q.step==="warnings")I((q)=>({...q,step:"install-app"})),setTimeout(()=>{D()},0);else if(Q.step==="choose-repo"){let q=Q.useCurrentRepo?Q.currentRepo:Q.selectedRepoName;if(!q.trim())return;let M=[];if(q.includes("github.com")){let O=q.match(/github\.com[:/]([^/]+\/[^/]+)(\.git)?$/);if(!O)M.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 q=O[1]?.replace(/\.git$/,"")||""}if(!q.includes("/"))M.push({title:"Repository format warning",message:'Repository should be in format "owner/repo"',instructions:["Use format: owner/repo","Example: anthropics/claude-cli"]});let R=await Z(q);if(R.error==="repository_not_found")M.push({title:"Repository not found",message:`Repository ${q} was not found or you don't have access.`,instructions:[`Check that the repository name is correct: ${q}`,"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(!R.hasAccess)M.push({title:"Admin permissions required",message:`You might need admin permissions on ${q} 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 T=await Y(q);if(M.length>0){let O=[...Q.warnings,...M];I((S)=>({...S,selectedRepoName:q,workflowExists:T,warnings:O,step:"warnings"}))}else I((O)=>({...O,selectedRepoName:q,workflowExists:T,step:"install-app"})),setTimeout(()=>{D()},0)}else if(Q.step==="install-app")if(Q.workflowExists)I((q)=>({...q,step:"check-existing-workflow"}));else I((q)=>({...q,step:"check-existing-secret"})),await W();else if(Q.step==="check-existing-workflow")return;else if(Q.step==="check-existing-secret")if(Q.useExistingSecret){I((q)=>({...q,step:"creating",currentWorkflowInstallStep:0}));try{await Tt1(Q.selectedRepoName,null,Q.secretName,()=>{I((q)=>({...q,currentWorkflowInstallStep:q.currentWorkflowInstallStep+1}))},Q.workflowAction==="skip"),I((q)=>({...q,step:"success"}))}catch(q){let M=q instanceof Error?q.message:"Failed to set up GitHub Actions";if(M.includes("workflow file already exists"))j1("tengu_install_github_app_error",{reason:ue.WORKFLOW_FILE_EXISTS}),I((R)=>({...R,step:"error",error:"A Claude workflow file already exists in this repository.",errorReason:"Workflow file conflict",errorInstructions:["The file .github/workflows/claude.yml already exists","You can either:"," 1. Delete the existing file and run this command again"," 2. Update the existing file manually using the template from:"," https://github.com/anthropics/claude-code-action/#manual-setup-direct-api"]}));else j1("tengu_install_github_app_error",{reason:ue.SETUP_GITHUB_ACTIONS_FAILED}),I((R)=>({...R,step:"error",error:M,errorReason:"GitHub Actions setup failed",errorInstructions:["Check that you have the necessary permissions","Ensure your GitHub token has workflow scope: gh auth refresh -h github.com -s workflow","Try the manual setup instructions if this persists"]}))}}else I((q)=>({...q,step:"api-key"}));else if(Q.step==="api-key"){let q=Q.useExistingKey?B:Q.apiKey;if(!q){j1("tengu_install_github_app_error",{reason:ue.API_KEY_MISSING}),I((M)=>({...M,step:"error",error:"API key is required"}));return}I((M)=>({...M,apiKey:q,step:"creating",currentWorkflowInstallStep:0}));try{await Tt1(Q.selectedRepoName,q,Q.secretName,()=>{I((M)=>({...M,currentWorkflowInstallStep:M.currentWorkflowInstallStep+1}))},Q.workflowAction==="skip"),I((M)=>({...M,step:"success"}))}catch(M){let R=M instanceof Error?M.message:"Failed to set up GitHub Actions";if(R.includes("workflow file already exists"))j1("tengu_install_github_app_error",{reason:ue.WORKFLOW_FILE_EXISTS}),I((T)=>({...T,step:"error",error:"A Claude workflow file already exists in this repository.",errorReason:"Workflow file conflict",errorInstructions:["The file .github/workflows/claude.yml already exists","You can either:"," 1. Delete the existing file and run this command again"," 2. Update the existing file manually using the template from:"," https://github.com/anthropics/claude-code-action/#manual-setup-direct-api"]}));else j1("tengu_install_github_app_error",{reason:ue.SETUP_GITHUB_ACTIONS_FAILED}),I((T)=>({...T,step:"error",error:R,errorReason:"GitHub Actions setup failed",errorInstructions:["Check that you have the necessary permissions","Ensure your GitHub token has workflow scope: gh auth refresh -h github.com -s workflow","Try the manual setup instructions if this persists"]}))}}},J=(q)=>{I((M)=>({...M,selectedRepoName:q}))},C=(q)=>{I((M)=>({...M,apiKey:q}))},X=(q)=>{if(q&&!/^[a-zA-Z0-9_]+$/.test(q))return;I((M)=>({...M,secretName:q}))},V=(q)=>{I((M)=>({...M,useCurrentRepo:q,selectedRepoName:q?M.currentRepo:""}))},K=(q)=>{I((M)=>({...M,useExistingKey:q}))},U=(q)=>{I((M)=>({...M,useExistingSecret:q,secretName:q?"ANTHROPIC_API_KEY":""}))},N=async(q)=>{if(q==="exit"){A.onDone("Installation cancelled by user");return}if(I((M)=>({...M,workflowAction:q})),q==="skip")I((M)=>({...M,step:"check-existing-secret"})),await W();else if(q==="update")I((M)=>({...M,step:"check-existing-secret"})),await W()};switch(J0(()=>{if(Q.step==="success"||Q.step==="error"){if(Q.step==="success")j1("tengu_install_github_app_completed",{});A.onDone(Q.step==="success"?"GitHub Actions setup complete!":Q.error?`Couldn't install GitHub App: ${Q.error}
2140
2140
  For manual setup instructions, see: https://github.com/anthropics/claude-code-action/#manual-setup-direct-api`:`GitHub App installation failed
2141
- For manual setup instructions, see: https://github.com/anthropics/claude-code-action/#manual-setup-direct-api`)}}),Q.step){case"check-gh":return S7.default.createElement(XU2,null);case"warnings":return S7.default.createElement($U2,{warnings:Q.warnings,onContinue:F});case"choose-repo":return S7.default.createElement(VU2,{currentRepo:Q.currentRepo,useCurrentRepo:Q.useCurrentRepo,repoUrl:Q.selectedRepoName,onRepoUrlChange:J,onToggleUseCurrentRepo:V,onSubmit:F});case"install-app":return S7.default.createElement(KU2,{repoUrl:Q.selectedRepoName,onSubmit:F});case"check-existing-workflow":return S7.default.createElement(NU2,{repoName:Q.selectedRepoName,onSelectAction:N});case"check-existing-secret":return S7.default.createElement(HU2,{useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,onToggleUseExistingSecret:U,onSecretNameChange:X,onSubmit:F});case"api-key":return S7.default.createElement(zU2,{existingApiKey:B,useExistingKey:Q.useExistingKey,apiKey:Q.apiKey,onApiKeyChange:C,onToggleUseExistingKey:K,onSubmit:F});case"creating":return S7.default.createElement(wU2,{currentWorkflowInstallStep:Q.currentWorkflowInstallStep,secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip"});case"success":return S7.default.createElement(EU2,{secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip"});case"error":return S7.default.createElement(UU2,{error:Q.error,errorReason:Q.errorReason,errorInstructions:Q.errorInstructions})}}var O35={type:"local-jsx",name:"install-github-app",description:"Set up Claude GitHub Actions for a repository",isEnabled:IU(),isHidden:!1,async call(A){return S7.default.createElement(R35,{onDone:A})},userFacingName(){return"install-github-app"}},LU2=O35;var RU2=F1(S1(),1);var x2=F1(S1(),1);function _d({onPress:A}){return J0((B,Q)=>{if(Q.return)A();else if(Q.escape)process.exit(1)}),x2.default.createElement(y,null,"Press ",x2.default.createElement(y,{bold:!0},"Enter")," to continue or ",x2.default.createElement(y,{bold:!0},"Esc")," to exit")}function jd(){let[A,B]=x2.useState("intro"),[Q,I]=x2.useState(""),[G,D]=x2.useState("");if(v2(()=>{tR("canceled","user_exit"),process.exit(1)}),x2.useEffect(()=>{tR("start")},[]),x2.useEffect(()=>{let Y=async()=>{try{if(!Ct1())I("Local package creation failed"),B("error"),tR("failure","environement_setup");switch(await Pd()){case"success":{B("success"),tR("success");break}case"in_progress":I("Update already in progress"),B("error"),tR("failure","in_progress");break;case"install_failed":I(`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.1"}.PACKAGE_URL} failed`),B("error"),tR("failure","other_failure");break}}catch(J){I(String(J)),B("error"),tR("failure","unexpected_error")}},W=async()=>{try{let J=await SK1();D(J),B("setup")}catch(J){I(String(J)),B("error")}},F=async()=>{try{if(await vE2())B("uninstall-success");else B("uninstall-failed")}catch(J){I(String(J)),B("uninstall-failed")}};switch(A){case"installing":Y();break;case"setup-alias":W();break;case"uninstall":F();break;default:break}},[A]),A==="intro"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},x0," Local Installer"),x2.default.createElement(m,{flexDirection:"column"},x2.default.createElement(y,{color:Y.secondaryText},`This will install ${x0} to ~/.claude/local`),x2.default.createElement(y,{color:Y.secondaryText},"instead of using a global npm installation.")),x2.default.createElement(_d,{onPress:()=>B("installing")}))}if(A==="installing")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Installing ",x0," locally..."),x2.default.createElement(m,{marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Installing to ",Td)));if(A==="success"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Y.success},"✓ Local installation successful!"),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"Next, let's add an alias for `claude`")),x2.default.createElement(_d,{onPress:()=>B("setup-alias")}))}if(A==="setup-alias")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Setting up alias for claude..."),x2.default.createElement(m,{marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Configuring shell environment")));if(A==="setup")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Alias setup complete"),x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,null,G),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"Next, we'll remove the globally installed npm package"))),x2.default.createElement(_d,{onPress:()=>B("uninstall")}));if(A==="uninstall")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Uninstalling global ",x0,"..."),x2.default.createElement(m,{marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Removing global npm installation")));if(A==="uninstall-success"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Y.success},"✓ Global installation removed successfully!"),x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,null,x0," is now installed locally."),x2.default.createElement(y,null,"Please restart your shell, then run"," ",x2.default.createElement(y,{color:Y.claude},MA.bold("claude")),"."),x2.default.createElement(m,{flexDirection:"row",marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Happy Clauding!"))),x2.default.createElement(_d,{onPress:()=>process.exit(0)}))}if(A==="uninstall-failed"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Y.warning},"! Could not remove global installation"),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"The local installation is installed, but we couldn't remove the global npm package automatically.")),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"You can remove it manually later with:",`
2142
- `,MA.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.1"}.PACKAGE_URL}`))),x2.default.createElement(_d,{onPress:()=>process.exit(0)}))}let Z=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Z.error},"✗ Installation failed"),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,Q||"An unexpected error occurred during installation.")),x2.default.createElement(_d,{onPress:()=>process.exit(1)}))}var T35={type:"local",name:"migrate-installer",description:"Migrate from global npm installation to local installation",isEnabled:!oR(),isHidden:!1,async call(){let{waitUntilExit:A}=P8(RU2.default.createElement(jd,null));return await A(),""},userFacingName(){return"migrate-installer"}},OU2=T35;import{EOL as pe}from"os";var P35={type:"local",name:"mcp",description:"Show MCP server connection status",isEnabled:!0,isHidden:!1,async call(A,{options:{mcpClients:B}}){let Q=[...B].filter((Y)=>Y.name!=="ide").sort((Y,W)=>Y.name.localeCompare(W.name)),I=D4();if(Q.length===0)return"No MCP servers configured. Run `claude mcp` to learn about how to configure MCP servers.";let G=process.argv.includes("--mcp-debug"),D=Q.some((Y)=>Y.type==="failed");return[`MCP Server Status${G?" (Debug Mode)":""}`,pe,pe,...Q.map((Y)=>{let W;if(Y.type==="connected")W=MA.bold(MA.ansi256(I.success)("connected"));else if(Y.type==="pending")W=MA.bold(MA.ansi256(I.warning)("connecting…"));else W=MA.bold(MA.ansi256(I.error)("failed"));return`• ${Y.name}: ${W}`}).join(pe),...D?[pe,pe,G?MA.dim(`Error logs will be shown inline. Log files are also saved in: ${OX.baseLogs()}`):MA.dim(`Run claude with --mcp-debug to see error logs inline, or view log files in: ${OX.baseLogs()}`)]:[]].join("")},userFacingName(){return"mcp"}},TU2=P35;var S35=F1(S1(),1);var PU2={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[{role:"user",content:[{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.
2141
+ For manual setup instructions, see: https://github.com/anthropics/claude-code-action/#manual-setup-direct-api`)}}),Q.step){case"check-gh":return S7.default.createElement(XU2,null);case"warnings":return S7.default.createElement($U2,{warnings:Q.warnings,onContinue:F});case"choose-repo":return S7.default.createElement(VU2,{currentRepo:Q.currentRepo,useCurrentRepo:Q.useCurrentRepo,repoUrl:Q.selectedRepoName,onRepoUrlChange:J,onToggleUseCurrentRepo:V,onSubmit:F});case"install-app":return S7.default.createElement(KU2,{repoUrl:Q.selectedRepoName,onSubmit:F});case"check-existing-workflow":return S7.default.createElement(NU2,{repoName:Q.selectedRepoName,onSelectAction:N});case"check-existing-secret":return S7.default.createElement(HU2,{useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,onToggleUseExistingSecret:U,onSecretNameChange:X,onSubmit:F});case"api-key":return S7.default.createElement(zU2,{existingApiKey:B,useExistingKey:Q.useExistingKey,apiKey:Q.apiKey,onApiKeyChange:C,onToggleUseExistingKey:K,onSubmit:F});case"creating":return S7.default.createElement(wU2,{currentWorkflowInstallStep:Q.currentWorkflowInstallStep,secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip"});case"success":return S7.default.createElement(EU2,{secretExists:Q.secretExists,useExistingSecret:Q.useExistingSecret,secretName:Q.secretName,skipWorkflow:Q.workflowAction==="skip"});case"error":return S7.default.createElement(UU2,{error:Q.error,errorReason:Q.errorReason,errorInstructions:Q.errorInstructions})}}var O35={type:"local-jsx",name:"install-github-app",description:"Set up Claude GitHub Actions for a repository",isEnabled:IU(),isHidden:!1,async call(A){return S7.default.createElement(R35,{onDone:A})},userFacingName(){return"install-github-app"}},LU2=O35;var RU2=F1(S1(),1);var x2=F1(S1(),1);function _d({onPress:A}){return J0((B,Q)=>{if(Q.return)A();else if(Q.escape)process.exit(1)}),x2.default.createElement(y,null,"Press ",x2.default.createElement(y,{bold:!0},"Enter")," to continue or ",x2.default.createElement(y,{bold:!0},"Esc")," to exit")}function jd(){let[A,B]=x2.useState("intro"),[Q,I]=x2.useState(""),[G,D]=x2.useState("");if(v2(()=>{tR("canceled","user_exit"),process.exit(1)}),x2.useEffect(()=>{tR("start")},[]),x2.useEffect(()=>{let Y=async()=>{try{if(!Ct1())I("Local package creation failed"),B("error"),tR("failure","environement_setup");switch(await Pd()){case"success":{B("success"),tR("success");break}case"in_progress":I("Update already in progress"),B("error"),tR("failure","in_progress");break;case"install_failed":I(`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.2"}.PACKAGE_URL} failed`),B("error"),tR("failure","other_failure");break}}catch(J){I(String(J)),B("error"),tR("failure","unexpected_error")}},W=async()=>{try{let J=await SK1();D(J),B("setup")}catch(J){I(String(J)),B("error")}},F=async()=>{try{if(await vE2())B("uninstall-success");else B("uninstall-failed")}catch(J){I(String(J)),B("uninstall-failed")}};switch(A){case"installing":Y();break;case"setup-alias":W();break;case"uninstall":F();break;default:break}},[A]),A==="intro"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},x0," Local Installer"),x2.default.createElement(m,{flexDirection:"column"},x2.default.createElement(y,{color:Y.secondaryText},`This will install ${x0} to ~/.claude/local`),x2.default.createElement(y,{color:Y.secondaryText},"instead of using a global npm installation.")),x2.default.createElement(_d,{onPress:()=>B("installing")}))}if(A==="installing")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Installing ",x0," locally..."),x2.default.createElement(m,{marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Installing to ",Td)));if(A==="success"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Y.success},"✓ Local installation successful!"),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"Next, let's add an alias for `claude`")),x2.default.createElement(_d,{onPress:()=>B("setup-alias")}))}if(A==="setup-alias")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Setting up alias for claude..."),x2.default.createElement(m,{marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Configuring shell environment")));if(A==="setup")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Alias setup complete"),x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,null,G),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"Next, we'll remove the globally installed npm package"))),x2.default.createElement(_d,{onPress:()=>B("uninstall")}));if(A==="uninstall")return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0},"Uninstalling global ",x0,"..."),x2.default.createElement(m,{marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Removing global npm installation")));if(A==="uninstall-success"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Y.success},"✓ Global installation removed successfully!"),x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,null,x0," is now installed locally."),x2.default.createElement(y,null,"Please restart your shell, then run"," ",x2.default.createElement(y,{color:Y.claude},MA.bold("claude")),"."),x2.default.createElement(m,{flexDirection:"row",marginY:1},x2.default.createElement(kw,null),x2.default.createElement(y,null," Happy Clauding!"))),x2.default.createElement(_d,{onPress:()=>process.exit(0)}))}if(A==="uninstall-failed"){let Y=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Y.warning},"! Could not remove global installation"),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"The local installation is installed, but we couldn't remove the global npm package automatically.")),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,"You can remove it manually later with:",`
2142
+ `,MA.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.2"}.PACKAGE_URL}`))),x2.default.createElement(_d,{onPress:()=>process.exit(0)}))}let Z=$1();return x2.default.createElement(m,{flexDirection:"column",marginY:1},x2.default.createElement(y,{bold:!0,color:Z.error},"✗ Installation failed"),x2.default.createElement(m,{marginY:1},x2.default.createElement(y,null,Q||"An unexpected error occurred during installation.")),x2.default.createElement(_d,{onPress:()=>process.exit(1)}))}var T35={type:"local",name:"migrate-installer",description:"Migrate from global npm installation to local installation",isEnabled:!oR(),isHidden:!1,async call(){let{waitUntilExit:A}=P8(RU2.default.createElement(jd,null));return await A(),""},userFacingName(){return"migrate-installer"}},OU2=T35;import{EOL as pe}from"os";var P35={type:"local",name:"mcp",description:"Show MCP server connection status",isEnabled:!0,isHidden:!1,async call(A,{options:{mcpClients:B}}){let Q=[...B].filter((Y)=>Y.name!=="ide").sort((Y,W)=>Y.name.localeCompare(W.name)),I=D4();if(Q.length===0)return"No MCP servers configured. Run `claude mcp` to learn about how to configure MCP servers.";let G=process.argv.includes("--mcp-debug"),D=Q.some((Y)=>Y.type==="failed");return[`MCP Server Status${G?" (Debug Mode)":""}`,pe,pe,...Q.map((Y)=>{let W;if(Y.type==="connected")W=MA.bold(MA.ansi256(I.success)("connected"));else if(Y.type==="pending")W=MA.bold(MA.ansi256(I.warning)("connecting…"));else W=MA.bold(MA.ansi256(I.error)("failed"));return`• ${Y.name}: ${W}`}).join(pe),...D?[pe,pe,G?MA.dim(`Error logs will be shown inline. Log files are also saved in: ${OX.baseLogs()}`):MA.dim(`Run claude with --mcp-debug to see error logs inline, or view log files in: ${OX.baseLogs()}`)]:[]].join("")},userFacingName(){return"mcp"}},TU2=P35;var S35=F1(S1(),1);var PU2={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[{role:"user",content:[{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.
2143
2143
 
2144
2144
  Follow these steps:
2145
2145
 
@@ -2173,7 +2173,7 @@ Remember:
2173
2173
 
2174
2174
  ${A?"Additional user input: "+A:""}
2175
2175
  `}]}]}};var AO=F1(Ia(),1);var _35=5,SU2="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",j35="https://raw.githubusercontent.com/anthropics/claude-code/refs/heads/main/CHANGELOG.md";async function Pt1(){let A=await K5.get(j35);if(A.status===200){let B=VA();T0({...B,cachedChangelog:A.data,changelogLastFetched:Date.now()})}}function ce(){return VA().cachedChangelog??""}function _U2(A){try{if(!A)return{};let B={},Q=A.split(/^## /gm).slice(1);for(let I of Q){let G=I.trim().split(`
2176
- `);if(G.length===0)continue;let D=G[0];if(!D)continue;let Z=D.split(" - ")[0]?.trim()||"";if(!Z)continue;let Y=G.slice(1).filter((W)=>W.trim().startsWith("- ")).map((W)=>W.trim().substring(2).trim()).filter(Boolean);if(Y.length>0)B[Z]=Y}return B}catch(B){return m1(B instanceof Error?B:new Error("Failed to parse changelog")),{}}}function y35(A,B,Q=ce()){try{let I=_U2(Q),G=AO.coerce(A),D=B?AO.coerce(B):null;if(!D||G&&AO.gt(G,D))return Object.entries(I).filter(([Z])=>!D||AO.gt(Z,D)).sort(([Z],[Y])=>AO.gt(Z,Y)?-1:1).flatMap(([Z,Y])=>Y).filter(Boolean).slice(0,_35)}catch(I){return m1(I instanceof Error?I:new Error("Failed to get release notes")),[]}return[]}function St1(A=ce()){try{let B=_U2(A);return Object.keys(B).sort((I,G)=>AO.gt(I,G)?1:-1).map((I)=>{let G=B[I];if(!G||G.length===0)return null;let D=G.filter(Boolean);if(D.length===0)return null;return[I,D]}).filter((I)=>I!==null)}catch(B){return m1(B instanceof Error?B:new Error("Failed to get release notes")),[]}}function mK1(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.1"}.VERSION){if(A!==B||!ce())Pt1().catch((G)=>m1(G instanceof Error?G:new Error("Failed to fetch changelog")));let Q=y35(B,A);return{hasReleaseNotes:Q.length>0,releaseNotes:Q}}function jU2(A){return A.map(([B,Q])=>{let I=`Version ${B}:`,G=Q.map((D)=>`• ${D}`).join(`
2176
+ `);if(G.length===0)continue;let D=G[0];if(!D)continue;let Z=D.split(" - ")[0]?.trim()||"";if(!Z)continue;let Y=G.slice(1).filter((W)=>W.trim().startsWith("- ")).map((W)=>W.trim().substring(2).trim()).filter(Boolean);if(Y.length>0)B[Z]=Y}return B}catch(B){return m1(B instanceof Error?B:new Error("Failed to parse changelog")),{}}}function y35(A,B,Q=ce()){try{let I=_U2(Q),G=AO.coerce(A),D=B?AO.coerce(B):null;if(!D||G&&AO.gt(G,D))return Object.entries(I).filter(([Z])=>!D||AO.gt(Z,D)).sort(([Z],[Y])=>AO.gt(Z,Y)?-1:1).flatMap(([Z,Y])=>Y).filter(Boolean).slice(0,_35)}catch(I){return m1(I instanceof Error?I:new Error("Failed to get release notes")),[]}return[]}function St1(A=ce()){try{let B=_U2(A);return Object.keys(B).sort((I,G)=>AO.gt(I,G)?1:-1).map((I)=>{let G=B[I];if(!G||G.length===0)return null;let D=G.filter(Boolean);if(D.length===0)return null;return[I,D]}).filter((I)=>I!==null)}catch(B){return m1(B instanceof Error?B:new Error("Failed to get release notes")),[]}}function mK1(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.2"}.VERSION){if(A!==B||!ce())Pt1().catch((G)=>m1(G instanceof Error?G:new Error("Failed to fetch changelog")));let Q=y35(B,A);return{hasReleaseNotes:Q.length>0,releaseNotes:Q}}function jU2(A){return A.map(([B,Q])=>{let I=`Version ${B}:`,G=Q.map((D)=>`• ${D}`).join(`
2177
2177
  `);return`${I}
2178
2178
  ${G}`}).join(`
2179
2179
 
@@ -2199,7 +2199,7 @@ ${G}`}).join(`
2199
2199
  Format your review with clear sections and bullet points.
2200
2200
 
2201
2201
  PR number: ${A}
2202
- `}]}]}};var le=F1(S1(),1);var k6=F1(S1(),1);function kU2({sections:A,version:B,onClose:Q}){J0((F,J)=>{if(J.return||J.escape)Q()});let I=v2(Q),[{mainLoopModel:G,maxRateLimitFallbackActive:D}]=rG(),Z=lh(),Y=hP(G);if(G===null&&C6())if(D&&Z.resetsAt){let F=Z.resetsAt?` · Resets at ${Sv(Z.resetsAt)}`:"";Y=`${MA.bold("Default")} Uses the best available model for Max usage limits (currently Sonnet${F})}`}else Y=`${MA.bold("Default")} Uses the best available model for Max usage limits (currently Opus)`;A=[...A,{title:"Model",command:"/model",items:[{label:Y,type:"info"}]}];let W=$1();return k6.createElement(m,{flexDirection:"column",width:"100%",padding:1},k6.createElement(m,{flexDirection:"column",gap:1},k6.createElement(m,null,k6.createElement(y,{bold:!0},"Claude Code Status "),k6.createElement(y,{color:W.secondaryText},"v",B)),A.map((F,J)=>(F.items&&F.items.length>0||F.content)&&k6.createElement(m,{key:J,flexDirection:"column",gap:0},k6.createElement(m,null,k6.createElement(y,{bold:!0},F.title," "),F.command&&k6.createElement(y,{color:W.secondaryText},"• ",F.command)),F.items?.map((C,X)=>k6.createElement(m,{key:X},C.type==="check"?k6.createElement(y,{color:W.success},H2.tick," "):C.type==="error"?k6.createElement(y,{color:W.error},H2.warning," "):k6.createElement(y,{color:W.secondaryText}," L "),k6.createElement(y,null,C.label))),F.content)),k6.createElement(m,{marginTop:1},I.pending?k6.createElement(y,{dimColor:!0},"Press ",I.keyName," again to exit"):k6.createElement(sW,null))))}var xU2=F1(rR1(),1);import{join as B7,dirname as uK1,resolve as pK1}from"path";import{homedir as _t1}from"os";function jt1(){return{versions:B7(S5,"versions"),locks:B7(S5,"locks"),staging:B7(S5,"staging"),launcher:B7(S5,"launcher")}}function cK1(A){let B=jt1(),Q=b1();Object.values(jt1()).forEach((G)=>{if(!Q.existsSync(G))Q.mkdirSync(G)});let I=B7(B.versions,A);if(!Q.existsSync(I))Q.writeFileSync(I,"",{flush:!0,encoding:"utf8"});return{stagingPath:B7(B.staging,A),installPath:I,lockfilePath:B7(B.locks,`${A}.lock`)}}function x35(A){let{lockfilePath:B,installPath:Q}=cK1(A);return xU2.default.lock(Q,{stale:60000,retries:{retries:3,minTimeout:1000,maxTimeout:5000},lockfilePath:B})}async function fU2(){let{stdout:A}=await jX("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.1"}.NATIVE_PACKAGE_URL}@latest`,"version"],void 0,1e4,!1,void 0);return A.trim()}async function f35(A){let B=b1(),{stagingPath:Q}=cK1(A);if(B.existsSync(Q))B.rmSync(Q,{recursive:!0,force:!0});B.mkdirSync(Q);let I={name:"claude-native-installer",version:"0.0.1",dependencies:{[{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.1"}.NATIVE_PACKAGE_URL]:A}};B.writeFileSync(B7(Q,"package.json"),JSON.stringify(I,null,2),{encoding:"utf8",flush:!1});let G=await jX("npm",["install"],void 0,1e4,!0,Q);if(G.code!==0)throw new Error(`npm install failed with code ${G.code}: ${G.stderr}`)}function v35(A){let B=b1(),{stagingPath:Q,installPath:I}=cK1(A);if(!B.existsSync(uK1(I)))B.mkdirSync(uK1(I));let G=B7(Q,"node_modules","@anthropic-ai"),Z=B.readdirStringSync(G).find((F)=>F.startsWith("claude-cli-native-"));if(!Z)throw new Error("Could not find platform-specific native package");let Y=B7(G,Z,"cli");if(!B.existsSync(Y))throw new Error(`Native binary not found at ${Y}`);B.copyFileSync(Y,I),B.chmodSync(I,493),B.rmSync(Q,{recursive:!0,force:!0});let W=B7(S5,"latest");yt1(W,I)}function vU2(A){let B=b1(),{installPath:Q}=cK1(A);if(!B.existsSync(Q))return!1;let I=B.statSync(Q),G=10485760;return I.size>G}async function b35(){let A=null;try{let B=await fU2();if(vU2(B))return;A=await x35(B),await f35(B),v35(B)}finally{if(A)A()}}function yt1(A,B){let Q=b1();try{if(Q.existsSync(A)){let I=Q.readlinkSync(A),G=pK1(uK1(A),I),D=pK1(B);if(G===D)return!1;Q.unlinkSync(A)}}catch{if(Q.existsSync(A))Q.unlinkSync(A)}return Q.symlinkSync(B,A),!0}async function BO(){return!1}function g35(){try{let A=process.execPath;if(!A||!A.includes(S5))return null;let B=b1(),Q=B7(S5,"known-good"),I=B7(S5,"latest");if(yt1(Q,A),B.existsSync(I))try{let G=B.readlinkSync(I),D=pK1(uK1(I),G),Z=pK1(A);if(D===Z)B.unlinkSync(I)}catch(G){return`Failed to remove latest symlink: ${G instanceof Error?G.message:String(G)}`}}catch(A){return`Failed to set known-good symlink: ${A instanceof Error?A.message:String(A)}`}return null}function h35(){let A=b1(),B=jt1();if(!A.existsSync(B.launcher))A.mkdirSync(B.launcher);let Q=B7(S5,"claude.sh"),I=B7(B.launcher,`claude-v${d35}.sh`),G=B7(S5,"latest"),D=B7(S5,"known-good");if(!A.existsSync(G)&&!A.existsSync(D))return[];if(!A.existsSync(I))A.writeFileSync(I,u35,{encoding:"utf8",flush:!0}),A.chmodSync(I,493);return yt1(Q,I),m35(Q)}function m35(A){let B=Xt1(),Q={zsh:B7(_t1(),".zshrc"),bash:B7(_t1(),".bashrc"),fish:B7(_t1(),".config/fish/config.fish")},I=B in Q?Q[B]:null;if(!I)return["Could not determine shell config file, skipping alias setup"];let G=b1(),D=`alias claude="${A}"`;try{if(G.existsSync(I)){let Y=G.readFileSync(I,{encoding:"utf8"}).split(`
2202
+ `}]}]}};var le=F1(S1(),1);var k6=F1(S1(),1);function kU2({sections:A,version:B,onClose:Q}){J0((F,J)=>{if(J.return||J.escape)Q()});let I=v2(Q),[{mainLoopModel:G,maxRateLimitFallbackActive:D}]=rG(),Z=lh(),Y=hP(G);if(G===null&&C6())if(D&&Z.resetsAt){let F=Z.resetsAt?` · Resets at ${Sv(Z.resetsAt)}`:"";Y=`${MA.bold("Default")} Uses Opus or Sonnet based on Max usage limits (currently Sonnet${F})}`}else Y=`${MA.bold("Default")} Uses Opus or Sonnet based on Max usage limits (currently Opus)`;A=[...A,{title:"Model",command:"/model",items:[{label:Y,type:"info"}]}];let W=$1();return k6.createElement(m,{flexDirection:"column",width:"100%",padding:1},k6.createElement(m,{flexDirection:"column",gap:1},k6.createElement(m,null,k6.createElement(y,{bold:!0},"Claude Code Status "),k6.createElement(y,{color:W.secondaryText},"v",B)),A.map((F,J)=>(F.items&&F.items.length>0||F.content)&&k6.createElement(m,{key:J,flexDirection:"column",gap:0},k6.createElement(m,null,k6.createElement(y,{bold:!0},F.title," "),F.command&&k6.createElement(y,{color:W.secondaryText},"• ",F.command)),F.items?.map((C,X)=>k6.createElement(m,{key:X},C.type==="check"?k6.createElement(y,{color:W.success},H2.tick," "):C.type==="error"?k6.createElement(y,{color:W.error},H2.warning," "):k6.createElement(y,{color:W.secondaryText}," L "),k6.createElement(y,null,C.label))),F.content)),k6.createElement(m,{marginTop:1},I.pending?k6.createElement(y,{dimColor:!0},"Press ",I.keyName," again to exit"):k6.createElement(sW,null))))}var xU2=F1(rR1(),1);import{join as B7,dirname as uK1,resolve as pK1}from"path";import{homedir as _t1}from"os";function jt1(){return{versions:B7(S5,"versions"),locks:B7(S5,"locks"),staging:B7(S5,"staging"),launcher:B7(S5,"launcher")}}function cK1(A){let B=jt1(),Q=b1();Object.values(jt1()).forEach((G)=>{if(!Q.existsSync(G))Q.mkdirSync(G)});let I=B7(B.versions,A);if(!Q.existsSync(I))Q.writeFileSync(I,"",{flush:!0,encoding:"utf8"});return{stagingPath:B7(B.staging,A),installPath:I,lockfilePath:B7(B.locks,`${A}.lock`)}}function x35(A){let{lockfilePath:B,installPath:Q}=cK1(A);return xU2.default.lock(Q,{stale:60000,retries:{retries:3,minTimeout:1000,maxTimeout:5000},lockfilePath:B})}async function fU2(){let{stdout:A}=await jX("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.2"}.NATIVE_PACKAGE_URL}@latest`,"version"],void 0,1e4,!1,void 0);return A.trim()}async function f35(A){let B=b1(),{stagingPath:Q}=cK1(A);if(B.existsSync(Q))B.rmSync(Q,{recursive:!0,force:!0});B.mkdirSync(Q);let I={name:"claude-native-installer",version:"0.0.1",dependencies:{[{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.2"}.NATIVE_PACKAGE_URL]:A}};B.writeFileSync(B7(Q,"package.json"),JSON.stringify(I,null,2),{encoding:"utf8",flush:!1});let G=await jX("npm",["install"],void 0,1e4,!0,Q);if(G.code!==0)throw new Error(`npm install failed with code ${G.code}: ${G.stderr}`)}function v35(A){let B=b1(),{stagingPath:Q,installPath:I}=cK1(A);if(!B.existsSync(uK1(I)))B.mkdirSync(uK1(I));let G=B7(Q,"node_modules","@anthropic-ai"),Z=B.readdirStringSync(G).find((F)=>F.startsWith("claude-cli-native-"));if(!Z)throw new Error("Could not find platform-specific native package");let Y=B7(G,Z,"cli");if(!B.existsSync(Y))throw new Error(`Native binary not found at ${Y}`);B.copyFileSync(Y,I),B.chmodSync(I,493),B.rmSync(Q,{recursive:!0,force:!0});let W=B7(S5,"latest");yt1(W,I)}function vU2(A){let B=b1(),{installPath:Q}=cK1(A);if(!B.existsSync(Q))return!1;let I=B.statSync(Q),G=10485760;return I.size>G}async function b35(){let A=null;try{let B=await fU2();if(vU2(B))return;A=await x35(B),await f35(B),v35(B)}finally{if(A)A()}}function yt1(A,B){let Q=b1();try{if(Q.existsSync(A)){let I=Q.readlinkSync(A),G=pK1(uK1(A),I),D=pK1(B);if(G===D)return!1;Q.unlinkSync(A)}}catch{if(Q.existsSync(A))Q.unlinkSync(A)}return Q.symlinkSync(B,A),!0}async function BO(){return!1}function g35(){try{let A=process.execPath;if(!A||!A.includes(S5))return null;let B=b1(),Q=B7(S5,"known-good"),I=B7(S5,"latest");if(yt1(Q,A),B.existsSync(I))try{let G=B.readlinkSync(I),D=pK1(uK1(I),G),Z=pK1(A);if(D===Z)B.unlinkSync(I)}catch(G){return`Failed to remove latest symlink: ${G instanceof Error?G.message:String(G)}`}}catch(A){return`Failed to set known-good symlink: ${A instanceof Error?A.message:String(A)}`}return null}function h35(){let A=b1(),B=jt1();if(!A.existsSync(B.launcher))A.mkdirSync(B.launcher);let Q=B7(S5,"claude.sh"),I=B7(B.launcher,`claude-v${d35}.sh`),G=B7(S5,"latest"),D=B7(S5,"known-good");if(!A.existsSync(G)&&!A.existsSync(D))return[];if(!A.existsSync(I))A.writeFileSync(I,u35,{encoding:"utf8",flush:!0}),A.chmodSync(I,493);return yt1(Q,I),m35(Q)}function m35(A){let B=Xt1(),Q={zsh:B7(_t1(),".zshrc"),bash:B7(_t1(),".bashrc"),fish:B7(_t1(),".config/fish/config.fish")},I=B in Q?Q[B]:null;if(!I)return["Could not determine shell config file, skipping alias setup"];let G=b1(),D=`alias claude="${A}"`;try{if(G.existsSync(I)){let Y=G.readFileSync(I,{encoding:"utf8"}).split(`
2203
2203
  `);if(!Y.some((W)=>W.includes(D))){let W=Y.filter((F)=>!F.trim().startsWith("alias claude="));return W.push(D),G.writeFileSync(I,W.join(`
2204
2204
  `)+`
2205
2205
  `,{encoding:"utf8",flush:!0}),[`Updated claude alias in ${I}`,"You may need to restart your shell."]}else return[]}else return G.writeFileSync(I,`${D}
@@ -2239,7 +2239,7 @@ echo "Please ensure Claude CLI is properly installed." >&2
2239
2239
  exit 1`;function p35(A,B=null){if(!Xz||!uA.terminal)return null;let Q=A?.find((D)=>D.name==="ide"),I=Za(uA.terminal),G=[];if(Q)if(Q.type==="connected")G.push({label:`Connected to ${I} extension`,type:"check"});else G.push({label:`Not connected to ${I}`,type:"error"});if(B&&B.installed)if(B&&Q&&Q.type==="connected"&&B.installedVersion!=Q.serverInfo?.version)G.push({label:`Installed ${I} extension version ${B.installedVersion} (server version: ${Q.serverInfo?.version})`,type:"info"});else if(AD&&Q?.type!=="connected")G.push({label:`Installed ${I} plugin but connection is not established.
2240
2240
  Please restart your IDE or try installing from https://docs.anthropic.com/s/claude-code-jetbrains`,type:"info"});else G.push({label:`Installed ${I} extension`,type:"check"});if(B&&B.error)if(AD)G.push({label:`Error installing ${I} plugin: ${B.error}
2241
2241
  Please restart your IDE or try installing from https://docs.anthropic.com/s/claude-code-jetbrains`,type:"error"});else G.push({label:`Error installing ${I} extension: ${B.error}
2242
- Please restart your IDE and try again.`,type:"error"});return{title:"IDE Integration",command:"/config",items:G}}function c35(A=[]){let B=[];if(A.filter((I)=>I.name!=="ide").forEach((I)=>{B.push({label:I.name,type:I.type==="failed"?"error":I.type==="pending"?"info":"check"})}),B.length===0)return null;return{title:"MCP servers",command:"/mcp",items:B}}function l35(){let A=rX1(),B=UZ(),Q=am();if(B.length===0&&A.length===0&&!Q)return null;let I=[];if(A.forEach((G)=>{let D=$41(G.path);I.push({label:`Large ${D} will impact performance (${o7(G.content.length)} chars > ${o7(nt)})`,type:"error"})}),Q&&Q.content.length>nm)I.push({label:`ULTRACLAUDE.md file exceeds ${o7(nm)} characters (${o7(Q.content.length)} chars)`,type:"error"});return{title:"Memory",command:"/memory",items:I,content:le.createElement(kK1,null)}}function i35(){let A=[],B=dA();return A.push({label:B,type:"info"}),{title:"Working Directory",command:"",items:A}}async function n35(){let A=await lK1();if(A.length===0)return null;return{title:"Installation",command:"",items:A.map((Q)=>({label:Q,type:"info"}))}}function a35(){let A=[];if(vW(A3()?.scopes)){let I=VA().claudeMaxTier,G="";if(I&&I!=="not_max")G=` (${I})`;A.push({label:`Login Method: Claude Max Account${G}`,type:"info"})}else{let{source:I}=oR1(!1);A.push({label:`Login Method: API Key (${I})`,type:"info"});let G=VA().oauthAccount?.organizationName;if(G)A.push({label:`Organization: ${G}`,type:"info"});if(Et())A.push({label:"Development Partner Program • sharing session with Anthropic",type:"info"})}let Q=VA().oauthAccount?.emailAddress;if(Q)A.push({label:`Email: ${Q}`,type:"info"});return{title:"Account",command:"/login",items:A}}var s35={type:"local-jsx",name:"status",description:"Show Claude Code status including version, model, account, and tool statuses",isEnabled:!0,isHidden:!1,async call(A,B){let Q={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.1"}.VERSION||"unknown",I=[],G=i35();if(G)I.push(G);if(await BO()){let W=await n35();if(W)I.push(W)}{let W=p35(B.options.mcpClients,B.options.ideInstallationStatus);if(W)I.push(W)}let D=c35(B.options.mcpClients);if(D)I.push(D);let Z=a35();if(Z)I.push(Z);let Y=l35();if(Y)I.push(Y);return le.createElement(kU2,{sections:I,version:Q,onClose:A})},userFacingName(){return"status"}},bU2=s35;var gU2=F1(S1(),1),kt1=F1(S1(),1);var r35=F1(S1(),1);var xt1=F1(S1(),1);var UG=F1(S1(),1),aK1=F1(S1(),1);var yd=F1(S1(),1);function kd(){let[A,B]=yd.useState([]),Q=yd.useCallback(()=>{B(Ew.getAllTasks())},[]);return yd.useEffect(()=>{Q();let I=Ew.subscribe(()=>{Q()});return()=>{I()}},[Q]),{tasks:A,killTask:(I)=>Ew.killTask(I)}}var Y5=F1(S1(),1),ie=F1(S1(),1);function nK1(A){let B=A.split(`
2242
+ Please restart your IDE and try again.`,type:"error"});return{title:"IDE Integration",command:"/config",items:G}}function c35(A=[]){let B=[];if(A.filter((I)=>I.name!=="ide").forEach((I)=>{B.push({label:I.name,type:I.type==="failed"?"error":I.type==="pending"?"info":"check"})}),B.length===0)return null;return{title:"MCP servers",command:"/mcp",items:B}}function l35(){let A=rX1(),B=UZ(),Q=am();if(B.length===0&&A.length===0&&!Q)return null;let I=[];if(A.forEach((G)=>{let D=$41(G.path);I.push({label:`Large ${D} will impact performance (${o7(G.content.length)} chars > ${o7(nt)})`,type:"error"})}),Q&&Q.content.length>nm)I.push({label:`ULTRACLAUDE.md file exceeds ${o7(nm)} characters (${o7(Q.content.length)} chars)`,type:"error"});return{title:"Memory",command:"/memory",items:I,content:le.createElement(kK1,null)}}function i35(){let A=[],B=dA();return A.push({label:B,type:"info"}),{title:"Working Directory",command:"",items:A}}async function n35(){let A=await lK1();if(A.length===0)return null;return{title:"Installation",command:"",items:A.map((Q)=>({label:Q,type:"info"}))}}function a35(){let A=[];if(vW(A3()?.scopes)){let I=VA().claudeMaxTier,G="";if(I&&I!=="not_max")G=` (${I})`;A.push({label:`Login Method: Claude Max Account${G}`,type:"info"})}else{let{source:I}=oR1(!1);A.push({label:`Login Method: API Key (${I})`,type:"info"});let G=VA().oauthAccount?.organizationName;if(G)A.push({label:`Organization: ${G}`,type:"info"});if(Et())A.push({label:"Development Partner Program • sharing session with Anthropic",type:"info"})}let Q=VA().oauthAccount?.emailAddress;if(Q)A.push({label:`Email: ${Q}`,type:"info"});return{title:"Account",command:"/login",items:A}}var s35={type:"local-jsx",name:"status",description:"Show Claude Code status including version, model, account, and tool statuses",isEnabled:!0,isHidden:!1,async call(A,B){let Q={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.2"}.VERSION||"unknown",I=[],G=i35();if(G)I.push(G);if(await BO()){let W=await n35();if(W)I.push(W)}{let W=p35(B.options.mcpClients,B.options.ideInstallationStatus);if(W)I.push(W)}let D=c35(B.options.mcpClients);if(D)I.push(D);let Z=a35();if(Z)I.push(Z);let Y=l35();if(Y)I.push(Y);return le.createElement(kU2,{sections:I,version:Q,onClose:A})},userFacingName(){return"status"}},bU2=s35;var gU2=F1(S1(),1),kt1=F1(S1(),1);var r35=F1(S1(),1);var xt1=F1(S1(),1);var UG=F1(S1(),1),aK1=F1(S1(),1);var yd=F1(S1(),1);function kd(){let[A,B]=yd.useState([]),Q=yd.useCallback(()=>{B(Ew.getAllTasks())},[]);return yd.useEffect(()=>{Q();let I=Ew.subscribe(()=>{Q()});return()=>{I()}},[Q]),{tasks:A,killTask:(I)=>Ew.killTask(I)}}var Y5=F1(S1(),1),ie=F1(S1(),1);function nK1(A){let B=A.split(`
2243
2243
  `).length,Q=BG(A),I=nn();if(Q.length<=I)return{totalLines:B,truncatedContent:Q};let G=I/2,D=Q.slice(0,G),Z=Q.slice(-G),Y=`${D}
2244
2244
 
2245
2245
  ... [${A.slice(G,-G).split(`
@@ -2463,7 +2463,7 @@ ARGUMENTS: ${T}`;return[{role:"user",content:[{type:"text",text:O}]}]}catch(O){r
2463
2463
  `);n[f]="",A.onChange(n.join(`
2464
2464
  `)),R=S.offset}else R=S.offset}return{newOffset:R,switchToInsert:T}}let O=W(q,M);if(!O||M.equals(O))return{newOffset:R,switchToInsert:T};if(N==="move")R=O.offset;else{let[S,f]=M.offset<=O.offset?[M,O]:[O,M],n=f;if(q==="e"&&M.offset<=O.offset)n=f.right();let g=S.modifyText(n,"");if(A.onChange(g.text),N==="change")R=S.offset;else R=g.offset}return{newOffset:R,switchToInsert:T}},J=(N)=>{if(N!==void 0)Y.setOffset(N);Q("INSERT"),A.onModeChange?.("INSERT"),Z?.(!0,"-- INSERT MODE --"),setTimeout(()=>Z?.(!1),1000)},C=()=>{Q("NORMAL"),A.onModeChange?.("NORMAL"),Z?.(!0,"-- NORMAL MODE --"),setTimeout(()=>Z?.(!1),1000)},X=(N)=>{G.current=N},V=(N,q)=>{if(q==="below"){let R=N.endOfLine().insert(`
2465
2465
  `);return A.onChange(R.text),R.offset}else{let M=N.startOfLine(),R=M.insert(`
2466
- `);return A.onChange(R.text),M.offset}},K=(N)=>{let q=G.current;if(!q)return;switch(q.type){case"delete":if(q.motion){let{newOffset:M}=F("delete",q.motion,N);Y.setOffset(M)}break;case"change":if(q.motion){let{newOffset:M}=F("change",q.motion,N);Y.setOffset(M),J(M)}break;case"insert":if(q.insertedText){let M=N.insert(q.insertedText);A.onChange(M.text),Y.setOffset(M.offset)}break;case"x":if(!N.equals(N.del()))A.onChange(N.del().text),Y.setOffset(N.del().offset);break;case"o":{let M=V(N,"below");J(M);break}case"O":{let M=V(N,"above");J(M);break}case"replace":break;case"r":if(q.replacementChar){let M=N.modifyText(N.right(),q.replacementChar);A.onChange(M.text),Y.setOffset(N.offset)}break}};return{...Y,onInput:(N,q)=>{let M=JQ.fromText(A.value,A.columns,Y.offset);if(q.ctrl){Y.onInput(N,q);return}if(q.escape&&B==="INSERT"){if(D.current)X({type:"insert",insertedText:D.current}),D.current="";C();return}if(B==="NORMAL"&&I.current){if(I.current==="d"){let{newOffset:R}=F("delete",N,M);Y.setOffset(R),X({type:"delete",motion:N}),I.current="";return}else if(I.current==="c"){let{newOffset:R}=F("change",N,M);X({type:"change",motion:N}),I.current="",J(R);return}else if(I.current==="g"&&N==="g"){let{newOffset:R}=F("move","gg",M);Y.setOffset(R),I.current="";return}else if(I.current==="r"){let R=M.modifyText(M.right(),N);A.onChange(R.text),Y.setOffset(M.offset),X({type:"r",replacementChar:N}),I.current="";return}I.current=""}if(B==="NORMAL")switch(N){case".":{K(M);return}case"i":D.current="",J();return;case"I":{D.current="",J(M.startOfLine().offset);return}case"a":{D.current="",J(M.right().offset);return}case"A":{D.current="",J(M.endOfLine().offset);return}case"o":{D.current="";let R=V(M,"below");X({type:"o"}),J(R);return}case"O":{D.current="";let R=V(M,"above");X({type:"O"}),J(R);return}case"h":case"l":case"j":case"k":case"0":case"^":case"$":case"w":case"e":case"b":case"W":case"E":case"B":case"G":{let{newOffset:R}=F("move",N,M);Y.setOffset(R);return}case"g":{I.current="g";return}case"r":{I.current="r";return}case"x":{if(!M.equals(M.del()))A.onChange(M.del().text),Y.setOffset(M.del().offset),X({type:"x"});return}case"d":I.current="d";return;case"D":{let R=F("delete","$",M);Y.setOffset(R.newOffset),X({type:"delete",motion:"$"});return}case"c":I.current="c";return;case"C":{let R=F("change","$",M);Y.setOffset(R.newOffset),X({type:"change",motion:"$"}),J();return}}if(q.return){Y.onInput(N,q);return}if(B==="INSERT"){if(q.backspace||q.delete){if(D.current.length>0)D.current=D.current.slice(0,-1)}else D.current+=N;Y.onInput(N,q)}},mode:B,setMode:Q}}function pt1(A){let B=D4().text,Q=XN2({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:MA.inverse,themeText:(D)=>MA.ansi256(B)(D),columns:A.columns,onImagePaste:A.onImagePaste,disableCursorMovementForUpDownKeys:A.disableCursorMovementForUpDownKeys,externalOffset:A.cursorOffset,onOffsetChange:A.onChangeCursorOffset,onModeChange:A.onModeChange,isMessageLoading:A.isLoading}),{mode:I,setMode:G}=Q;return BH1.default.useEffect(()=>{if(A.initialMode&&A.initialMode!==I)G(A.initialMode)},[A.initialMode,I,G]),BH1.default.createElement(m,{flexDirection:"column"},BH1.default.createElement(y71,{inputState:Q,terminalFocus:!0,...A}))}function fd(){return VA().editorMode==="vim"}function VN2(){if(Zz.isEnabled&&uA.terminal==="Apple_Terminal"&&qQ0())return"Option as Meta is enabled";if(Zz.isEnabled&&$Q0())return"shift + ⏎ for newline";return MQ0()?"\\⏎ for newline":"Backslash (\\) + Return (⏎) for newline"}var KB=F1(S1(),1);var K4=F1(S1(),1),TN2=F1(S1(),1);var D6=F1(S1(),1);function KN2({exitMessage:A,vimMode:B,mode:Q,notification:I,toolPermissionContext:G,suppressHint:D,tasksSelected:Z,isPasting:Y}){let W=$1();if(A.show)return D6.createElement(y,{dimColor:!0,key:"exit-message"},"Press ",A.key," again to exit");if(Y)return D6.createElement(y,{dimColor:!0,key:"pasting-message"},"Pasting text...");if(I.show&&I.content)if("jsx"in I.content)return D6.createElement(m,{key:"notification-content",flexGrow:1},I.content.jsx);else{let J=I.content.color?W[I.content.color]:void 0;return D6.createElement(y,{color:J,dimColor:!I.content.color,key:"notification"},I.content.text)}let F=fd()&&B==="INSERT";return D6.createElement(m,{justifyContent:"flex-start",gap:1},F?D6.createElement(y,{dimColor:!0,key:"vim-insert"},"-- INSERT --"):null,D6.createElement(_Q5,{mode:Q,toolPermissionContext:G,showHint:!D&&!F,tasksSelected:Z}))}function _Q5({mode:A,toolPermissionContext:B,showHint:Q,tasksSelected:I=!1}){let G=$1(),{tasks:D}=kd(),Z=D.filter((Y)=>Y.status==="running").length;if(A==="memory")return D6.createElement(y,{color:G.remember},"# to memorize");if(A==="bash")return D6.createElement(y,{color:G.bashBorder},"! for bash mode");if(B?.mode==="acceptEdits")return D6.createElement(y,{color:G.autoAccept,key:"write-file-allowed"},"⏵⏵ auto-accept edits on",D6.createElement(y,{color:G.secondaryText,dimColor:!0}," ","(shift+tab to toggle)"));if(Z>0){let Y=VA().hasSeenTasksHint;return D6.createElement(m,{gap:1},D6.createElement(y,{color:I?G.suggestion:G.permission,inverse:I,bold:I},Z," ",Z===1?"task":"tasks"," running"),Q&&D6.createElement(D6.Fragment,null,D6.createElement(y,{dimColor:!0},"·"),D6.createElement(y,{dimColor:!0},I?"Enter to view tasks":!Y?"↓ to view":"? for shortcuts")))}if(!Q)return null;return D6.createElement(y,{dimColor:!0},"? for shortcuts")}var r4=F1(S1(),1);var Uj=F1(S1(),1);var r6=F1(S1(),1);var HN2=F1(Ia(),1),QH1=F1(S1(),1);function zN2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:I,showSuccessMessage:G,verbose:D}){let Z=$1(),[Y,W]=QH1.useState({}),F=r6.useCallback(async()=>{let J=VA();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.1"}.VERSION,X=await OK1(),V=g31();if(W({global:C,latest:X}),!V&&C&&X&&!HN2.gte(C,X)){let K=Date.now();B(!0);let U,N=J.autoUpdaterStatus==="migrated";if(N)U=await Pd();else U=await TK1();if(B(!1),U==="success")j1("tengu_auto_updater_success",{fromVersion:C,toVersion:X,durationMs:Date.now()-K,wasMigrated:N});else j1("tengu_auto_updater_fail",{fromVersion:C,attemptedVersion:X,status:U,durationMs:Date.now()-K,wasMigrated:N});Q({version:X,status:U})}},[Q]);if(QH1.useEffect(()=>{F()},[F]),_C(F,1800000),!I?.version&&(!Y.global||!Y.latest))return null;if(!I?.version&&!A)return null;return r6.createElement(m,{flexDirection:"row",gap:1},D&&r6.createElement(y,{dimColor:!0},"globalVersion: ",Y.global," · latestVersion:"," ",Y.latest),A?r6.createElement(r6.Fragment,null,r6.createElement(m,null,r6.createElement(y,{color:Z.secondaryText,dimColor:!0,wrap:"end"},"Auto-updating to v",Y.latest,"…"))):I?.status==="success"&&I?.version&&G&&r6.createElement(y,{color:Z.success},"✓ Update installed · Restart to apply"),(I?.status==="install_failed"||I?.status==="no_permissions")&&r6.createElement(y,{color:Z.error},"✗ Auto-update failed · Try ",r6.createElement(y,{bold:!0},"claude doctor"),!wj()&&r6.createElement(r6.Fragment,null," ","or ",r6.createElement(y,{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.1"}.PACKAGE_URL)),wj()&&r6.createElement(r6.Fragment,null," ","or"," ",r6.createElement(y,{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.1"}.PACKAGE_URL))))}var _7=F1(S1(),1);var IH1=F1(S1(),1);function wN2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:I,showSuccessMessage:G,verbose:D}){let Z=$1(),[Y,W]=IH1.useState({}),F=_7.useRef(!1),J=_7.useCallback(async()=>{if(A||g31())return;B(!0);try{let C=await iK1(),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.1"}.VERSION;if(W({current:X,latest:C.latestVersion}),C.wasUpdated)j1("tengu_native_auto_updater_success",{}),Q({version:C.latestVersion,status:"success"})}catch(C){m1(C instanceof Error?C:new Error(String(C))),j1("tengu_native_auto_updater_fail",{}),Q({version:null,status:"install_failed"})}finally{B(!1)}},[A,B,Q]);if(IH1.useEffect(()=>{if(!F.current)F.current=!0,J()}),_C(J,1800000),!I?.version&&(!Y.current||!Y.latest))return null;if(!I?.version&&!A)return null;return _7.createElement(m,{flexDirection:"row",gap:1},D&&_7.createElement(y,{dimColor:!0},"current: ",Y.current," · latest: ",Y.latest),A?_7.createElement(m,null,_7.createElement(y,{color:Z.secondaryText,dimColor:!0,wrap:"end"},"Checking for updates")):I?.status==="success"&&I?.version&&G&&_7.createElement(y,{color:Z.success},"✓ Update installed · Restart to update"),I?.status==="install_failed"&&_7.createElement(y,{color:Z.error},"✗ Auto-update failed · Try ",_7.createElement(y,{bold:!0},"/status")))}function EN2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:I,showSuccessMessage:G,verbose:D}){let[Z,Y]=Uj.useState(null);if(Uj.useEffect(()=>{BO().then((F)=>Y(F))},[Y]),Z==null)return!0;return Uj.createElement(Z?wN2:zN2,{verbose:D,onAutoUpdaterResult:Q,autoUpdaterResult:I,isUpdating:A,onChangeIsUpdating:B,showSuccessMessage:G})}var UN2=F1(S1(),1);class ct1 extends UN2.Component{constructor(A){super(A);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(A){g41(A)}render(){if(this.state.hasError)return null;return this.props.children}}var AW=F1(S1(),1);function NN2({tokenUsage:A}){let B=$1(),{percentLeft:Q,isAboveWarningThreshold:I,isAboveErrorThreshold:G}=jt(A,_t);if(!I)return null;let D=St();return AW.createElement(m,{flexDirection:"row"},AW.createElement(y,{color:VA().autoCompactEnabled?B.secondaryText:G?B.error:B.warning},D?AW.createElement(AW.Fragment,null,"Context left until auto-compact: ",Q,"%"):AW.createElement(AW.Fragment,null,"Context low (",Q,"% remaining) · Run /compact to compact & continue")))}function $N2(A){return jt(A,_t).isAboveWarningThreshold}var AB=F1(S1(),1),QO=F1(S1(),1);import{basename as jQ5}from"path";var qN2=F1(S1(),1);function GH1(A){return qN2.useMemo(()=>{let B=A?.find((Q)=>Q.name==="ide");if(!B)return null;return B.type==="connected"?"connected":"disconnected"},[A])}var MN2=!1;function LN2({ideSelection:A,mcpClients:B,ideInstallationStatus:Q}){let I=$1(),G=GH1(B),[D,Z]=QO.useState(!0),[Y,W]=QO.useState(!1);QO.useEffect(()=>{if(G==="connected"){let U=setTimeout(()=>{Z(!1)},1000);return()=>clearTimeout(U)}else if(G==="disconnected")Z(!0)},[G]);let[F,J]=QO.useState(!1);QO.useEffect(()=>{if(Q?.error||AD){J(!0);let U=setTimeout(()=>{J(!1)},5000);return()=>clearTimeout(U)}},[Q?.error]);let C=G==="connected"&&(A?.filePath||A?.text&&A.lineCount>0),X=G==="connected"&&!C,V=F&&!AD&&!X&&!C,K=F&&AD&&!X&&!C;return QO.useEffect(()=>{if(!Xz&&G===null&&!MN2){let U;if(Ya(!0).length>0)W(!0),U=setTimeout(()=>{W(!1)},3000),MN2=!0;return()=>U&&clearTimeout(U)}},[G]),G!==null?AB.createElement(AB.Fragment,null,!V&&G==="disconnected"&&AB.createElement(y,{color:I.error,key:"ide-status"},H2.circle," IDE disconnected"),X&&AB.createElement(y,{color:I.success,key:"ide-status"},H2.circle,D&&" IDE connected"),V&&AB.createElement(y,{color:I.error},"IDE extension install failed (see /status for info)"),K&&AB.createElement(y,{color:I.secondaryText},"IDE plugin not connected (see /status for info)"),C&&A?.text&&A.lineCount>0?AB.createElement(y,{color:I.permission,key:"selection-indicator"},"⧉ ",A.lineCount," ",A.lineCount===1?"line":"lines"," selected"):C&&A?.filePath?AB.createElement(y,{color:I.permission,key:"selection-indicator"},"⧉ In ",jQ5(A.filePath)):null):AB.createElement(AB.Fragment,null,Y&&!K&&AB.createElement(y,{color:I.secondaryText,key:"ide-command-hint"},H2.circle," Use /ide to connect to your IDE"),K&&AB.createElement(y,{color:I.secondaryText},"IDE plugin not connected (see /status for info)"))}function RN2({apiKeyStatus:A,autoUpdaterResult:B,debug:Q,isAutoUpdating:I,verbose:G,tokenUsage:D,permissionMode:Z,onAutoUpdaterResult:Y,onChangeIsUpdating:W,ideSelection:F,ideInstallationStatus:J,mcpClients:C}){let X=HV2(Z),V=$N2(D),K=GH1(C),[{mainLoopModel:U}]=rG(),{status:N,resetsAt:q,unifiedRateLimitFallbackAvailable:M}=lh(),T=!(K==="connected"&&(F?.filePath||F?.text&&F.lineCount>0))||I||B?.status!=="success",O=Sv(q);return r4.createElement(ct1,null,r4.createElement(m,{flexDirection:"column",alignItems:"flex-end"},r4.createElement(LN2,{ideSelection:F,mcpClients:C,ideInstallationStatus:J}),M&&U==="opus"&&N!=="allowed_warning"&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},"Approaching Opus usage limit · /model to use best available model")),N==="allowed_warning"&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},"Approaching usage limit",O&&` · resets at ${O}`)),A==="invalid"&&r4.createElement(m,null,r4.createElement(y,{color:$1().error},"Invalid API key · Run /login")),A==="missing"&&r4.createElement(m,null,r4.createElement(y,{color:$1().error},"Missing API key · Run /login")),Q&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},"Debug mode")),A!=="invalid"&&A!=="missing"&&X&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},X)),A!=="invalid"&&A!=="missing"&&!X&&G&&r4.createElement(m,null,r4.createElement(y,{dimColor:!0},D," tokens")),r4.createElement(NN2,{tokenUsage:D}),T&&r4.createElement(EN2,{verbose:G,onAutoUpdaterResult:Y,autoUpdaterResult:B,isUpdating:I,onChangeIsUpdating:W,showSuccessMessage:!V})))}var MZ=F1(S1(),1),ON2=F1(S1(),1);function yQ5({item:A,maxColumnWidth:B,isSelected:Q}){let I=$1(),G=G4().columns,D=G<80,Z=B??A.displayText.length+5;return MZ.createElement(m,{key:A.id,flexDirection:D?"column":"row"},MZ.createElement(m,{width:D?void 0:Z},MZ.createElement(y,{color:Q?I.suggestion:void 0,dimColor:!Q},A.displayText)),A.description&&MZ.createElement(m,{width:G-(D?4:Z+4),paddingLeft:D?4:0},MZ.createElement(y,{color:Q?I.suggestion:void 0,dimColor:!Q,wrap:"wrap"},A.description)))}function lt1({suggestions:A,selectedSuggestion:B}){let{rows:Q}=G4(),I=Math.min(10,Math.max(1,Q-3)),G=(F)=>{return Math.max(...F.map((J)=>J.displayText.length))+5};if(A.length===0)return null;let D=Math.max(0,Math.min(B-Math.floor(I/2),A.length-I)),Z=Math.min(D+I,A.length),Y=A.slice(D,Z),W=G(Y);return MZ.createElement(m,{flexDirection:"column"},Y.map((F)=>MZ.createElement(yQ5,{key:F.id,item:F,maxColumnWidth:W,isSelected:F.id===A[B]?.id})))}var P8B=ON2.memo(lt1);function kQ5({apiKeyStatus:A,debug:B,exitMessage:Q,vimMode:I,mode:G,autoUpdaterResult:D,isAutoUpdating:Z,verbose:Y,tokenUsage:W,onAutoUpdaterResult:F,onChangeIsUpdating:J,suggestions:C,selectedSuggestion:X,notification:V,toolPermissionContext:K,helpOpen:U,suppressHint:N,tasksSelected:q=!1,ideSelection:M,mcpClients:R,ideInstallationStatus:T,isPasting:O=!1}){if(C.length)return K4.createElement(m,{paddingX:2,paddingY:0},K4.createElement(lt1,{suggestions:C,selectedSuggestion:X}));if(U)return K4.createElement(m,{paddingX:2,paddingY:0,flexDirection:"row"},K4.createElement(m,{flexDirection:"column",width:22},K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"! for bash mode")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"/ for commands")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"@ for file paths")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"# to memorize"))),K4.createElement(m,{flexDirection:"column"},K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"double tap esc to undo")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"shift + tab to auto-accept edits")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},VN2()))));return K4.createElement(m,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},K4.createElement(KN2,{exitMessage:Q,vimMode:I,mode:G,notification:V,toolPermissionContext:K,suppressHint:N,tasksSelected:q,isPasting:O}),K4.createElement(RN2,{apiKeyStatus:A,autoUpdaterResult:D,debug:B,isAutoUpdating:Z,verbose:Y,tokenUsage:W,permissionMode:K.mode,onAutoUpdaterResult:F,onChangeIsUpdating:J,ideSelection:M,mcpClients:R,ideInstallationStatus:T}))}var PN2=TN2.memo(kQ5);var Nj=F1(S1(),1);import{resolve as xQ5}from"path";var hC=M2({content:"Caveat: The messages below are 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 vd(A,B,Q,I,G,D,Z){let Y=await ku0(MJ2(A,I,D,[]));if(B==="bash"){j1("tengu_input_bash",{});let F=M2({content:`<bash-input>${A}</bash-input>`});if(A.startsWith("cd ")){let J=dA(),C=xQ5(J,A.slice(3));try{return mW(C),{messages:[hC,F,...Y,M2({content:`<bash-stdout>Changed directory to ${MA.bold(`${C}/`)}</bash-stdout>`})],shouldQuery:!1}}catch(X){return m1(X),{messages:[hC,F,...Y,M2({content:`<bash-stderr>cwd error: ${X instanceof Error?X.message:String(X)}</bash-stderr>`})],shouldQuery:!1}}}Q({jsx:Nj.createElement(m,{flexDirection:"column",marginTop:1},Nj.createElement(lX1,{addMargin:!1,param:{text:`<bash-input>${A}</bash-input>`,type:"text"}}),Nj.createElement(vK1,{mode:"tool-use",haikuWords:["Bashing"],currentResponseLength:0})),shouldHidePromptInput:!1});try{let J=await X4.validateInput({command:A});if(!J.result)return{messages:[hC,F,...Y,M2({content:J.message})],shouldQuery:!1};let{data:C}=await HF(X4.call({command:A},I));return{messages:[hC,F,...Y,M2({content:`<bash-stdout>${C.stdout}</bash-stdout><bash-stderr>${C.stderr}</bash-stderr>`})],shouldQuery:!1}}catch(J){if(J instanceof mP){if(J.interrupted)return{messages:[hC,F,M2({content:zN}),...Y],shouldQuery:!1};return{messages:[hC,F,...Y,M2({content:`<bash-stdout>${J.stdout}</bash-stdout><bash-stderr>${J.stderr}</bash-stderr>`})],shouldQuery:!1}}return{messages:[hC,F,...Y,M2({content:`<bash-stderr>Command failed: ${J instanceof Error?J.message:String(J)}</bash-stderr>`})],shouldQuery:!1}}finally{setTimeout(()=>{Q(null)},200)}}if(B==="memorySelect"){j1("tengu_input_memory",{});let F=M2({content:`<user-memory-input>${A}</user-memory-input>`});return _J2(A,I,Z),{messages:[hC,F,...Y,M2({content:_Y})],shouldQuery:!1}}if(A.startsWith("/")){let F=A.slice(1).split(" "),J=F[0],C=!1;if(F.length>1&&F[1]==="(MCP)")J=J+" (MCP)",C=!0;if(!J)return j1("tengu_input_slash_missing",{}),{messages:[hC,...Y,M2({content:"Commands are in the form `/command [args]`"})],shouldQuery:!1};let X=J.includes(":"),V=C?"mcp":X?"custom":J;if(!GN2(J,I.options.commands))return j1("tengu_input_prompt",{}),{messages:[M2({content:A}),...Y],shouldQuery:!0};let K=A.slice(J.length+2),{messages:U,shouldQuery:N}=await fQ5(J,K,Q,I);if(U.length===0)return j1("tengu_input_command",{input:V}),{messages:[],shouldQuery:!1};if(U.length===2&&typeof U[1].message.content==="string"&&U[1].message.content.startsWith("Unknown command:"))return j1("tengu_input_slash_invalid",{input:J}),{messages:[hC,...U],shouldQuery:N};if(U.length===2)return j1("tengu_input_command",{input:V}),{messages:[hC,...U],shouldQuery:N};return j1("tengu_input_command",{input:V}),{messages:[hC,...U],shouldQuery:N}}j1("tengu_input_prompt",{});let W=G?Object.values(G).filter((F)=>F.type==="image").map((F)=>F.content):[];if(W.length>0){let F=W.map((J)=>({type:"image",source:{type:"base64",media_type:"image/png",data:J}}));return{messages:[M2({content:[...F,{type:"text",text:A}]}),...Y],shouldQuery:!0}}return{messages:[M2({content:A}),...Y],shouldQuery:!0}}async function fQ5(A,B,Q,I){try{let G=rK1(A,I.options.commands);switch(G.type){case"local-jsx":return new Promise((D)=>{G.call((Z)=>{Q(null),D({messages:[M2({content:`<command-name>${G.userFacingName()}</command-name>
2466
+ `);return A.onChange(R.text),M.offset}},K=(N)=>{let q=G.current;if(!q)return;switch(q.type){case"delete":if(q.motion){let{newOffset:M}=F("delete",q.motion,N);Y.setOffset(M)}break;case"change":if(q.motion){let{newOffset:M}=F("change",q.motion,N);Y.setOffset(M),J(M)}break;case"insert":if(q.insertedText){let M=N.insert(q.insertedText);A.onChange(M.text),Y.setOffset(M.offset)}break;case"x":if(!N.equals(N.del()))A.onChange(N.del().text),Y.setOffset(N.del().offset);break;case"o":{let M=V(N,"below");J(M);break}case"O":{let M=V(N,"above");J(M);break}case"replace":break;case"r":if(q.replacementChar){let M=N.modifyText(N.right(),q.replacementChar);A.onChange(M.text),Y.setOffset(N.offset)}break}};return{...Y,onInput:(N,q)=>{let M=JQ.fromText(A.value,A.columns,Y.offset);if(q.ctrl){Y.onInput(N,q);return}if(q.escape&&B==="INSERT"){if(D.current)X({type:"insert",insertedText:D.current}),D.current="";C();return}if(B==="NORMAL"&&I.current){if(I.current==="d"){let{newOffset:R}=F("delete",N,M);Y.setOffset(R),X({type:"delete",motion:N}),I.current="";return}else if(I.current==="c"){let{newOffset:R}=F("change",N,M);X({type:"change",motion:N}),I.current="",J(R);return}else if(I.current==="g"&&N==="g"){let{newOffset:R}=F("move","gg",M);Y.setOffset(R),I.current="";return}else if(I.current==="r"){let R=M.modifyText(M.right(),N);A.onChange(R.text),Y.setOffset(M.offset),X({type:"r",replacementChar:N}),I.current="";return}I.current=""}if(B==="NORMAL")switch(N){case".":{K(M);return}case"i":D.current="",J();return;case"I":{D.current="",J(M.startOfLine().offset);return}case"a":{D.current="",J(M.right().offset);return}case"A":{D.current="",J(M.endOfLine().offset);return}case"o":{D.current="";let R=V(M,"below");X({type:"o"}),J(R);return}case"O":{D.current="";let R=V(M,"above");X({type:"O"}),J(R);return}case"h":case"l":case"j":case"k":case"0":case"^":case"$":case"w":case"e":case"b":case"W":case"E":case"B":case"G":{let{newOffset:R}=F("move",N,M);Y.setOffset(R);return}case"g":{I.current="g";return}case"r":{I.current="r";return}case"x":{if(!M.equals(M.del()))A.onChange(M.del().text),Y.setOffset(M.del().offset),X({type:"x"});return}case"d":I.current="d";return;case"D":{let R=F("delete","$",M);Y.setOffset(R.newOffset),X({type:"delete",motion:"$"});return}case"c":I.current="c";return;case"C":{let R=F("change","$",M);Y.setOffset(R.newOffset),X({type:"change",motion:"$"}),J();return}}if(q.return){Y.onInput(N,q);return}if(B==="INSERT"){if(q.backspace||q.delete){if(D.current.length>0)D.current=D.current.slice(0,-1)}else D.current+=N;Y.onInput(N,q)}},mode:B,setMode:Q}}function pt1(A){let B=D4().text,Q=XN2({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:MA.inverse,themeText:(D)=>MA.ansi256(B)(D),columns:A.columns,onImagePaste:A.onImagePaste,disableCursorMovementForUpDownKeys:A.disableCursorMovementForUpDownKeys,externalOffset:A.cursorOffset,onOffsetChange:A.onChangeCursorOffset,onModeChange:A.onModeChange,isMessageLoading:A.isLoading}),{mode:I,setMode:G}=Q;return BH1.default.useEffect(()=>{if(A.initialMode&&A.initialMode!==I)G(A.initialMode)},[A.initialMode,I,G]),BH1.default.createElement(m,{flexDirection:"column"},BH1.default.createElement(y71,{inputState:Q,terminalFocus:!0,...A}))}function fd(){return VA().editorMode==="vim"}function VN2(){if(Zz.isEnabled&&uA.terminal==="Apple_Terminal"&&qQ0())return"Option as Meta is enabled";if(Zz.isEnabled&&$Q0())return"shift + ⏎ for newline";return MQ0()?"\\⏎ for newline":"Backslash (\\) + Return (⏎) for newline"}var KB=F1(S1(),1);var K4=F1(S1(),1),TN2=F1(S1(),1);var D6=F1(S1(),1);function KN2({exitMessage:A,vimMode:B,mode:Q,notification:I,toolPermissionContext:G,suppressHint:D,tasksSelected:Z,isPasting:Y}){let W=$1();if(A.show)return D6.createElement(y,{dimColor:!0,key:"exit-message"},"Press ",A.key," again to exit");if(Y)return D6.createElement(y,{dimColor:!0,key:"pasting-message"},"Pasting text...");if(I.show&&I.content)if("jsx"in I.content)return D6.createElement(m,{key:"notification-content",flexGrow:1},I.content.jsx);else{let J=I.content.color?W[I.content.color]:void 0;return D6.createElement(y,{color:J,dimColor:!I.content.color,key:"notification"},I.content.text)}let F=fd()&&B==="INSERT";return D6.createElement(m,{justifyContent:"flex-start",gap:1},F?D6.createElement(y,{dimColor:!0,key:"vim-insert"},"-- INSERT --"):null,D6.createElement(_Q5,{mode:Q,toolPermissionContext:G,showHint:!D&&!F,tasksSelected:Z}))}function _Q5({mode:A,toolPermissionContext:B,showHint:Q,tasksSelected:I=!1}){let G=$1(),{tasks:D}=kd(),Z=D.filter((Y)=>Y.status==="running").length;if(A==="memory")return D6.createElement(y,{color:G.remember},"# to memorize");if(A==="bash")return D6.createElement(y,{color:G.bashBorder},"! for bash mode");if(B?.mode==="acceptEdits")return D6.createElement(y,{color:G.autoAccept,key:"write-file-allowed"},"⏵⏵ auto-accept edits on",D6.createElement(y,{color:G.secondaryText,dimColor:!0}," ","(shift+tab to toggle)"));if(Z>0){let Y=VA().hasSeenTasksHint;return D6.createElement(m,{gap:1},D6.createElement(y,{color:I?G.suggestion:G.permission,inverse:I,bold:I},Z," ",Z===1?"task":"tasks"," running"),Q&&D6.createElement(D6.Fragment,null,D6.createElement(y,{dimColor:!0},"·"),D6.createElement(y,{dimColor:!0},I?"Enter to view tasks":!Y?"↓ to view":"? for shortcuts")))}if(!Q)return null;return D6.createElement(y,{dimColor:!0},"? for shortcuts")}var r4=F1(S1(),1);var Uj=F1(S1(),1);var r6=F1(S1(),1);var HN2=F1(Ia(),1),QH1=F1(S1(),1);function zN2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:I,showSuccessMessage:G,verbose:D}){let Z=$1(),[Y,W]=QH1.useState({}),F=r6.useCallback(async()=>{let J=VA();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.2"}.VERSION,X=await OK1(),V=g31();if(W({global:C,latest:X}),!V&&C&&X&&!HN2.gte(C,X)){let K=Date.now();B(!0);let U,N=J.autoUpdaterStatus==="migrated";if(N)U=await Pd();else U=await TK1();if(B(!1),U==="success")j1("tengu_auto_updater_success",{fromVersion:C,toVersion:X,durationMs:Date.now()-K,wasMigrated:N});else j1("tengu_auto_updater_fail",{fromVersion:C,attemptedVersion:X,status:U,durationMs:Date.now()-K,wasMigrated:N});Q({version:X,status:U})}},[Q]);if(QH1.useEffect(()=>{F()},[F]),_C(F,1800000),!I?.version&&(!Y.global||!Y.latest))return null;if(!I?.version&&!A)return null;return r6.createElement(m,{flexDirection:"row",gap:1},D&&r6.createElement(y,{dimColor:!0},"globalVersion: ",Y.global," · latestVersion:"," ",Y.latest),A?r6.createElement(r6.Fragment,null,r6.createElement(m,null,r6.createElement(y,{color:Z.secondaryText,dimColor:!0,wrap:"end"},"Auto-updating to v",Y.latest,"…"))):I?.status==="success"&&I?.version&&G&&r6.createElement(y,{color:Z.success},"✓ Update installed · Restart to apply"),(I?.status==="install_failed"||I?.status==="no_permissions")&&r6.createElement(y,{color:Z.error},"✗ Auto-update failed · Try ",r6.createElement(y,{bold:!0},"claude doctor"),!wj()&&r6.createElement(r6.Fragment,null," ","or ",r6.createElement(y,{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.2"}.PACKAGE_URL)),wj()&&r6.createElement(r6.Fragment,null," ","or"," ",r6.createElement(y,{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.2"}.PACKAGE_URL))))}var _7=F1(S1(),1);var IH1=F1(S1(),1);function wN2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:I,showSuccessMessage:G,verbose:D}){let Z=$1(),[Y,W]=IH1.useState({}),F=_7.useRef(!1),J=_7.useCallback(async()=>{if(A||g31())return;B(!0);try{let C=await iK1(),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.2"}.VERSION;if(W({current:X,latest:C.latestVersion}),C.wasUpdated)j1("tengu_native_auto_updater_success",{}),Q({version:C.latestVersion,status:"success"})}catch(C){m1(C instanceof Error?C:new Error(String(C))),j1("tengu_native_auto_updater_fail",{}),Q({version:null,status:"install_failed"})}finally{B(!1)}},[A,B,Q]);if(IH1.useEffect(()=>{if(!F.current)F.current=!0,J()}),_C(J,1800000),!I?.version&&(!Y.current||!Y.latest))return null;if(!I?.version&&!A)return null;return _7.createElement(m,{flexDirection:"row",gap:1},D&&_7.createElement(y,{dimColor:!0},"current: ",Y.current," · latest: ",Y.latest),A?_7.createElement(m,null,_7.createElement(y,{color:Z.secondaryText,dimColor:!0,wrap:"end"},"Checking for updates")):I?.status==="success"&&I?.version&&G&&_7.createElement(y,{color:Z.success},"✓ Update installed · Restart to update"),I?.status==="install_failed"&&_7.createElement(y,{color:Z.error},"✗ Auto-update failed · Try ",_7.createElement(y,{bold:!0},"/status")))}function EN2({isUpdating:A,onChangeIsUpdating:B,onAutoUpdaterResult:Q,autoUpdaterResult:I,showSuccessMessage:G,verbose:D}){let[Z,Y]=Uj.useState(null);if(Uj.useEffect(()=>{BO().then((F)=>Y(F))},[Y]),Z==null)return!0;return Uj.createElement(Z?wN2:zN2,{verbose:D,onAutoUpdaterResult:Q,autoUpdaterResult:I,isUpdating:A,onChangeIsUpdating:B,showSuccessMessage:G})}var UN2=F1(S1(),1);class ct1 extends UN2.Component{constructor(A){super(A);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(A){g41(A)}render(){if(this.state.hasError)return null;return this.props.children}}var AW=F1(S1(),1);function NN2({tokenUsage:A}){let B=$1(),{percentLeft:Q,isAboveWarningThreshold:I,isAboveErrorThreshold:G}=jt(A,_t);if(!I)return null;let D=St();return AW.createElement(m,{flexDirection:"row"},AW.createElement(y,{color:VA().autoCompactEnabled?B.secondaryText:G?B.error:B.warning},D?AW.createElement(AW.Fragment,null,"Context left until auto-compact: ",Q,"%"):AW.createElement(AW.Fragment,null,"Context low (",Q,"% remaining) · Run /compact to compact & continue")))}function $N2(A){return jt(A,_t).isAboveWarningThreshold}var AB=F1(S1(),1),QO=F1(S1(),1);import{basename as jQ5}from"path";var qN2=F1(S1(),1);function GH1(A){return qN2.useMemo(()=>{let B=A?.find((Q)=>Q.name==="ide");if(!B)return null;return B.type==="connected"?"connected":"disconnected"},[A])}var MN2=!1;function LN2({ideSelection:A,mcpClients:B,ideInstallationStatus:Q}){let I=$1(),G=GH1(B),[D,Z]=QO.useState(!0),[Y,W]=QO.useState(!1);QO.useEffect(()=>{if(G==="connected"){let U=setTimeout(()=>{Z(!1)},1000);return()=>clearTimeout(U)}else if(G==="disconnected")Z(!0)},[G]);let[F,J]=QO.useState(!1);QO.useEffect(()=>{if(Q?.error||AD){J(!0);let U=setTimeout(()=>{J(!1)},5000);return()=>clearTimeout(U)}},[Q?.error]);let C=G==="connected"&&(A?.filePath||A?.text&&A.lineCount>0),X=G==="connected"&&!C,V=F&&!AD&&!X&&!C,K=F&&AD&&!X&&!C;return QO.useEffect(()=>{if(!Xz&&G===null&&!MN2){let U;if(Ya(!0).length>0)W(!0),U=setTimeout(()=>{W(!1)},3000),MN2=!0;return()=>U&&clearTimeout(U)}},[G]),G!==null?AB.createElement(AB.Fragment,null,!V&&G==="disconnected"&&AB.createElement(y,{color:I.error,key:"ide-status"},H2.circle," IDE disconnected"),X&&AB.createElement(y,{color:I.success,key:"ide-status"},H2.circle,D&&" IDE connected"),V&&AB.createElement(y,{color:I.error},"IDE extension install failed (see /status for info)"),K&&AB.createElement(y,{color:I.secondaryText},"IDE plugin not connected (see /status for info)"),C&&A?.text&&A.lineCount>0?AB.createElement(y,{color:I.permission,key:"selection-indicator"},"⧉ ",A.lineCount," ",A.lineCount===1?"line":"lines"," selected"):C&&A?.filePath?AB.createElement(y,{color:I.permission,key:"selection-indicator"},"⧉ In ",jQ5(A.filePath)):null):AB.createElement(AB.Fragment,null,Y&&!K&&AB.createElement(y,{color:I.secondaryText,key:"ide-command-hint"},H2.circle," Use /ide to connect to your IDE"),K&&AB.createElement(y,{color:I.secondaryText},"IDE plugin not connected (see /status for info)"))}function RN2({apiKeyStatus:A,autoUpdaterResult:B,debug:Q,isAutoUpdating:I,verbose:G,tokenUsage:D,permissionMode:Z,onAutoUpdaterResult:Y,onChangeIsUpdating:W,ideSelection:F,ideInstallationStatus:J,mcpClients:C}){let X=HV2(Z),V=$N2(D),K=GH1(C),[{mainLoopModel:U}]=rG(),{status:N,resetsAt:q,unifiedRateLimitFallbackAvailable:M}=lh(),T=!(K==="connected"&&(F?.filePath||F?.text&&F.lineCount>0))||I||B?.status!=="success",O=Sv(q);return r4.createElement(ct1,null,r4.createElement(m,{flexDirection:"column",alignItems:"flex-end"},r4.createElement(LN2,{ideSelection:F,mcpClients:C,ideInstallationStatus:J}),M&&U==="opus"&&N!=="allowed_warning"&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},"Approaching Opus usage limit · /model to use best available model")),N==="allowed_warning"&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},"Approaching usage limit",O&&` · resets at ${O}`)),A==="invalid"&&r4.createElement(m,null,r4.createElement(y,{color:$1().error},"Invalid API key · Run /login")),A==="missing"&&r4.createElement(m,null,r4.createElement(y,{color:$1().error},"Missing API key · Run /login")),Q&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},"Debug mode")),A!=="invalid"&&A!=="missing"&&X&&r4.createElement(m,null,r4.createElement(y,{color:$1().warning},X)),A!=="invalid"&&A!=="missing"&&!X&&G&&r4.createElement(m,null,r4.createElement(y,{dimColor:!0},D," tokens")),r4.createElement(NN2,{tokenUsage:D}),T&&r4.createElement(EN2,{verbose:G,onAutoUpdaterResult:Y,autoUpdaterResult:B,isUpdating:I,onChangeIsUpdating:W,showSuccessMessage:!V})))}var MZ=F1(S1(),1),ON2=F1(S1(),1);function yQ5({item:A,maxColumnWidth:B,isSelected:Q}){let I=$1(),G=G4().columns,D=G<80,Z=B??A.displayText.length+5;return MZ.createElement(m,{key:A.id,flexDirection:D?"column":"row"},MZ.createElement(m,{width:D?void 0:Z},MZ.createElement(y,{color:Q?I.suggestion:void 0,dimColor:!Q},A.displayText)),A.description&&MZ.createElement(m,{width:G-(D?4:Z+4),paddingLeft:D?4:0},MZ.createElement(y,{color:Q?I.suggestion:void 0,dimColor:!Q,wrap:"wrap"},A.description)))}function lt1({suggestions:A,selectedSuggestion:B}){let{rows:Q}=G4(),I=Math.min(10,Math.max(1,Q-3)),G=(F)=>{return Math.max(...F.map((J)=>J.displayText.length))+5};if(A.length===0)return null;let D=Math.max(0,Math.min(B-Math.floor(I/2),A.length-I)),Z=Math.min(D+I,A.length),Y=A.slice(D,Z),W=G(Y);return MZ.createElement(m,{flexDirection:"column"},Y.map((F)=>MZ.createElement(yQ5,{key:F.id,item:F,maxColumnWidth:W,isSelected:F.id===A[B]?.id})))}var P8B=ON2.memo(lt1);function kQ5({apiKeyStatus:A,debug:B,exitMessage:Q,vimMode:I,mode:G,autoUpdaterResult:D,isAutoUpdating:Z,verbose:Y,tokenUsage:W,onAutoUpdaterResult:F,onChangeIsUpdating:J,suggestions:C,selectedSuggestion:X,notification:V,toolPermissionContext:K,helpOpen:U,suppressHint:N,tasksSelected:q=!1,ideSelection:M,mcpClients:R,ideInstallationStatus:T,isPasting:O=!1}){if(C.length)return K4.createElement(m,{paddingX:2,paddingY:0},K4.createElement(lt1,{suggestions:C,selectedSuggestion:X}));if(U)return K4.createElement(m,{paddingX:2,paddingY:0,flexDirection:"row"},K4.createElement(m,{flexDirection:"column",width:22},K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"! for bash mode")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"/ for commands")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"@ for file paths")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"# to memorize"))),K4.createElement(m,{flexDirection:"column"},K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"double tap esc to undo")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},"shift + tab to auto-accept edits")),K4.createElement(m,null,K4.createElement(y,{dimColor:!0},VN2()))));return K4.createElement(m,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},K4.createElement(KN2,{exitMessage:Q,vimMode:I,mode:G,notification:V,toolPermissionContext:K,suppressHint:N,tasksSelected:q,isPasting:O}),K4.createElement(RN2,{apiKeyStatus:A,autoUpdaterResult:D,debug:B,isAutoUpdating:Z,verbose:Y,tokenUsage:W,permissionMode:K.mode,onAutoUpdaterResult:F,onChangeIsUpdating:J,ideSelection:M,mcpClients:R,ideInstallationStatus:T}))}var PN2=TN2.memo(kQ5);var Nj=F1(S1(),1);import{resolve as xQ5}from"path";var hC=M2({content:"Caveat: The messages below are 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 vd(A,B,Q,I,G,D,Z){let Y=await ku0(MJ2(A,I,D,[]));if(B==="bash"){j1("tengu_input_bash",{});let F=M2({content:`<bash-input>${A}</bash-input>`});if(A.startsWith("cd ")){let J=dA(),C=xQ5(J,A.slice(3));try{return mW(C),{messages:[hC,F,...Y,M2({content:`<bash-stdout>Changed directory to ${MA.bold(`${C}/`)}</bash-stdout>`})],shouldQuery:!1}}catch(X){return m1(X),{messages:[hC,F,...Y,M2({content:`<bash-stderr>cwd error: ${X instanceof Error?X.message:String(X)}</bash-stderr>`})],shouldQuery:!1}}}Q({jsx:Nj.createElement(m,{flexDirection:"column",marginTop:1},Nj.createElement(lX1,{addMargin:!1,param:{text:`<bash-input>${A}</bash-input>`,type:"text"}}),Nj.createElement(vK1,{mode:"tool-use",haikuWords:["Bashing"],currentResponseLength:0})),shouldHidePromptInput:!1});try{let J=await X4.validateInput({command:A});if(!J.result)return{messages:[hC,F,...Y,M2({content:J.message})],shouldQuery:!1};let{data:C}=await HF(X4.call({command:A},I));return{messages:[hC,F,...Y,M2({content:`<bash-stdout>${C.stdout}</bash-stdout><bash-stderr>${C.stderr}</bash-stderr>`})],shouldQuery:!1}}catch(J){if(J instanceof mP){if(J.interrupted)return{messages:[hC,F,M2({content:zN}),...Y],shouldQuery:!1};return{messages:[hC,F,...Y,M2({content:`<bash-stdout>${J.stdout}</bash-stdout><bash-stderr>${J.stderr}</bash-stderr>`})],shouldQuery:!1}}return{messages:[hC,F,...Y,M2({content:`<bash-stderr>Command failed: ${J instanceof Error?J.message:String(J)}</bash-stderr>`})],shouldQuery:!1}}finally{setTimeout(()=>{Q(null)},200)}}if(B==="memorySelect"){j1("tengu_input_memory",{});let F=M2({content:`<user-memory-input>${A}</user-memory-input>`});return _J2(A,I,Z),{messages:[hC,F,...Y,M2({content:_Y})],shouldQuery:!1}}if(A.startsWith("/")){let F=A.slice(1).split(" "),J=F[0],C=!1;if(F.length>1&&F[1]==="(MCP)")J=J+" (MCP)",C=!0;if(!J)return j1("tengu_input_slash_missing",{}),{messages:[hC,...Y,M2({content:"Commands are in the form `/command [args]`"})],shouldQuery:!1};let X=J.includes(":"),V=C?"mcp":X?"custom":J;if(!GN2(J,I.options.commands))return j1("tengu_input_prompt",{}),{messages:[M2({content:A}),...Y],shouldQuery:!0};let K=A.slice(J.length+2),{messages:U,shouldQuery:N}=await fQ5(J,K,Q,I);if(U.length===0)return j1("tengu_input_command",{input:V}),{messages:[],shouldQuery:!1};if(U.length===2&&typeof U[1].message.content==="string"&&U[1].message.content.startsWith("Unknown command:"))return j1("tengu_input_slash_invalid",{input:J}),{messages:[hC,...U],shouldQuery:N};if(U.length===2)return j1("tengu_input_command",{input:V}),{messages:[hC,...U],shouldQuery:N};return j1("tengu_input_command",{input:V}),{messages:[hC,...U],shouldQuery:N}}j1("tengu_input_prompt",{});let W=G?Object.values(G).filter((F)=>F.type==="image").map((F)=>F.content):[];if(W.length>0){let F=W.map((J)=>({type:"image",source:{type:"base64",media_type:"image/png",data:J}}));return{messages:[M2({content:[...F,{type:"text",text:A}]}),...Y],shouldQuery:!0}}return{messages:[M2({content:A}),...Y],shouldQuery:!0}}async function fQ5(A,B,Q,I){try{let G=rK1(A,I.options.commands);switch(G.type){case"local-jsx":return new Promise((D)=>{G.call((Z)=>{Q(null),D({messages:[M2({content:`<command-name>${G.userFacingName()}</command-name>
2467
2467
  <command-message>${G.userFacingName()}</command-message>
2468
2468
  <command-args>${B}</command-args>`}),Z?M2({content:`<local-command-stdout>${Z}</local-command-stdout>`}):M2({content:`<local-command-stdout>${_Y}</local-command-stdout>`})],shouldQuery:!1})},I,B).then((Z)=>{Q({jsx:Z,shouldHidePromptInput:!0})})});case"local":{let D=M2({content:`<command-name>${G.userFacingName()}</command-name>
2469
2469
  <command-message>${G.userFacingName()}</command-message>
@@ -2475,7 +2475,7 @@ ARGUMENTS: ${T}`;return[{role:"user",content:[{type:"text",text:O}]}]}catch(O){r
2475
2475
  `);K(f0),N("prompt"),M(()=>[]),v1(q.map((z2)=>z2.value).join(`
2476
2476
  `).length+1+B1)},[q,K,N,M,V,B1]);KB.useEffect(()=>{if(!Z&&q[0]){let f0=q.map((z2)=>z2.value).join(`
2477
2477
  `);M((z2)=>z2.filter((Q9)=>!q.includes(Q9))),B9(f0,!1)}},[Z,q,B9,M]),SN2(Y1,function(f0){j1("tengu_ext_at_mentioned",{});let z2,Q9=_N2.relative(dA(),f0.filePath);if(f0.lineStart&&f0.lineEnd)z2=f0.lineStart===f0.lineEnd?`@${Q9}#L${f0.lineStart} `:`@${Q9}#L${f0.lineStart}-${f0.lineEnd} `;else z2=`@${Q9} `;let o6=V[B1-1]??" ";if(!/\s/.test(o6))z2=` ${z2}`;H0(z2)}),J0((f0,z2)=>{if(z2.return&&E1){B9("/tasks",!0),N1(!1);return}if(B1===0&&(z2.escape||z2.backspace||z2.delete))N("prompt"),I1(!1);if(A1&&V===""&&(z2.backspace||z2.delete))I1(!1);if(z2.tab&&z2.shift){switch(Q.mode){case"acceptEdits":JV2(Q,I);break;case"default":xC(Q,I);break;case"bypassPermissions":break}if(A1)I1(!1);return}if(z2.escape){if(E1){N1(!1);return}if(q.length>0){y9();return}if(F.length>0&&!V&&!Z)j2()}if(z2.return&&A1)I1(!1)});let{columns:HB}=G4(),w6=HB-6,T2=KB.useMemo(()=>EN(F),[F]),x4=$1();return A8.createElement(m,{flexDirection:"column"},q.length>0&&A8.createElement(m,{flexDirection:"column",marginTop:1},A8.createElement(m,{paddingLeft:2,flexDirection:"column",width:HB-4},A8.createElement(y,{color:x4.secondaryText,wrap:"wrap"},q.map((f0)=>f0.value).join(`
2478
- `)))),A8.createElement(m,{alignItems:"flex-start",justifyContent:"flex-start",borderColor:U==="bash"?x4.bashBorder:U==="memory"||U==="memorySelect"?x4.remember:x4.secondaryBorder,borderDimColor:U!=="memory",borderStyle:"round",marginTop:q.length>0?0:1,width:"100%"},A8.createElement(m,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start",width:3},U==="bash"?A8.createElement(y,{color:x4.bashBorder,dimColor:Z}," ! "):U==="memory"||U==="memorySelect"?A8.createElement(y,{color:x4.remember,dimColor:Z}," # "):A8.createElement(y,{color:Z?x4.secondaryText:void 0}," > ")),A8.createElement(m,{paddingRight:1},(()=>{let f0={multiline:!0,onSubmit:B9,onChange:d1,value:V,onHistoryUp:s2,onHistoryDown:Q2,onHistoryReset:()=>e1(),placeholder:U==="memory"?'Add to memory. Try "Always use descriptive variable names"':q.length>0&&(VA().queuedCommandUpHintCount||0)<z0?"Press up to edit queued messages":k1?FA:void 0,onExit:J1,onExitMessage:(z2,Q9)=>cA({show:z2,key:Q9}),onMessage:(z2,Q9)=>{if(z2&&Q9)g({text:Q9},{timeoutMs:3600000});else g({text:""},{timeoutMs:0})},onImagePaste:m0,columns:w6,disableCursorMovementForUpDownKeys:o4.length>0,cursorOffset:B1,onChangeCursorOffset:v1,onPaste:L0,onIsPastingChange:_1,focus:U!=="memorySelect",showCursor:U!=="memorySelect",argumentHint:h0};return fd()?A8.createElement(pt1,{...f0,initialMode:w1,onModeChange:H1,isLoading:Z}):A8.createElement(BI,{...f0})})())),U==="memorySelect"&&A8.createElement(jK1,{onSelect:(f0)=>{B9(V,!1,f0)},onCancel:()=>{N("memory")}}),A8.createElement(PN2,{apiKeyStatus:G,debug:A,exitMessage:PA,vimMode:w1,mode:U,autoUpdaterResult:X,isAutoUpdating:o1,verbose:W,tokenUsage:T2,onAutoUpdaterResult:C,onChangeIsUpdating:a1,suggestions:o4,selectedSuggestion:Z0,notification:n,toolPermissionContext:Q,helpOpen:A1,suppressHint:V.length>0,tasksSelected:E1,ideSelection:B,mcpClients:Y1,ideInstallationStatus:x,isPasting:t}))}var jN2=KB.memo(hQ5);function mQ5(){ro1(""),process.exit(0)}var yN2=F1(S1(),1);function kN2(){yN2.useEffect(()=>{let A=Math.round(process.uptime()*1000);j1("tengu_timer",{event:"startup",durationMs:A})},[])}var ae=F1(S1(),1);function xN2(){let[A,B]=ae.useState(()=>{let D=aI(!1);if(!IU()||vW(A3()?.scopes))return"valid";if(D)return"loading";return"missing"}),[Q,I]=ae.useState(null),G=ae.useCallback(async()=>{if(!IU()||vW(A3()?.scopes))return;let D=aI(!1);if(!D){B("missing");return}try{let Y=await TW2(D,!1)?"valid":"invalid";B(Y);return}catch(Z){I(Z),B("error");return}},[]);return{status:A,reverify:G,error:Q}}function fN2(A,B,Q,I,G,D,Z,Y,W){J0((F,J)=>{if(!J.escape)return;if(Z?.aborted)return;if(!Z)return;if(!I)return;if(G)return;if(fd()&&W==="INSERT")return;if(D.length>0){if(Y)Y()}j1("tengu_cancel",{}),A(()=>[]),B(null),Q()})}var vN2=F1(S1(),1);var dQ5=["Edit","MultiEdit","Write","NotebookEdit"];function se(A){return dQ5.includes(A)}function uQ5(A){return vN2.useCallback(async(B,Q,I,G)=>{return new Promise((D)=>{function Z(){j1("tengu_tool_use_cancelled",{messageID:G.message.id,toolName:B.name})}function Y(){D({behavior:"ask",message:pr}),I.abortController.abort()}if(I.abortController.signal.aborted){Z(),Y();return}return bh(B,Q,I,G).then(async(W)=>{if(W.behavior==="allow"){if(j1("tengu_tool_use_granted_in_config",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"accept",source:"config",tool_name:B.name});D({...W,updatedInput:Q});return}let F=await B.description(Q,{isNonInteractiveSession:I.options.isNonInteractiveSession,getToolPermissionContext:I.getToolPermissionContext,tools:I.options.tools});if(I.abortController.signal.aborted){Z(),Y();return}switch(W.behavior){case"deny":{if(j1("tengu_tool_use_denied_in_config",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"reject",source:"config",tool_name:B.name});D(W);return}case"ask":{A((J)=>[...J,{assistantMessage:G,tool:B,description:F,input:Q,toolUseContext:I,permissionResult:W,onAbort(){if(Z(),j1("tengu_tool_use_rejected_in_prompt",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"reject",source:"user_abort",tool_name:B.name});Y()},onAllow(C,X){if(C==="permanent")j1("tengu_tool_use_granted_in_prompt_permanent",{messageID:G.message.id,toolName:B.name});else j1("tengu_tool_use_granted_in_prompt_temporary",{messageID:G.message.id,toolName:B.name});if(se(B.name))gm.add(1,{decision:"accept",source:C==="permanent"?"user_permanent":"user_temporary",tool_name:B.name});D({behavior:"allow",updatedInput:X})},onReject(){if(j1("tengu_tool_use_rejected_in_prompt",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"reject",source:"user_reject",tool_name:B.name});Y()}}]);return}}}).catch((W)=>{if(W instanceof t7)Z(),Y();else m1(W)})})},[A])}var bN2=uQ5;var gN2=F1(S1(),1);var re=F1(S1(),1);var pQ5=F1(S1(),1);var hN2=F1(S1(),1);function mN2(A,B){return hN2.useMemo(()=>{if(A&&B&&B.length>0)return LT([...A,...B],"name");return A||[]},[A,B])}var dN2=F1(S1(),1);function uN2(A,B){return dN2.useMemo(()=>{return LT([...A,...B],"name")},[A,B])}var pN2=F1(S1(),1);function cN2(A,B){return pN2.useMemo(()=>{if(B.length>0)return LT([...A,...B],"name");return A},[A,B])}var p9=F1(S1(),1),qj=F1(S1(),1);var m4=F1(S1(),1);import{relative as cQ5}from"path";function lQ5(){let A=VA();T0({...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.1"}.VERSION})}function lN2(){let A=$1(),B=VA(),{hasReleaseNotes:Q,releaseNotes:I}=m4.useMemo(()=>mK1(B.lastReleaseNotesSeen),[B.lastReleaseNotesSeen]);return m4.useEffect(()=>{if(Q)lQ5()},[Q]),m4.createElement(m,{flexDirection:"column",paddingLeft:1},m4.createElement(aQ5,null),Q&&m4.createElement(m,{flexDirection:"column",marginTop:1},m4.createElement(y,{color:A.secondaryText},"What's new:"),m4.createElement(m,{flexDirection:"column",marginLeft:1},I.map((G,D)=>m4.createElement(y,{key:D,color:A.secondaryText},"• ",G)))))}function iQ5({path:A,contentLength:B}){let Q=A.startsWith(dA())?cQ5(dA(),A):A;return m4.createElement(m,{flexDirection:"row"},m4.createElement(y,{color:$1().warning},H2.warning),m4.createElement(y,{color:$1().warning},"Large ",m4.createElement(y,{bold:!0},Q)," will impact performance (",o7(B)," chars >"," ",o7(nt),")",m4.createElement(y,{color:$1().secondaryText,dimColor:!0}," ","• /memory to edit")))}function nQ5(){let A=$1(),B=am();if(!B)return null;let Q=B.content.length;if(Q>nm)return m4.createElement(m,{flexDirection:"row",gap:1},m4.createElement(y,{color:A.warning},H2.warning),m4.createElement(y,{color:A.warning},"ULTRACLAUDE.md exceeds ",nm," chars (",Q," chars)",m4.createElement(y,{color:A.secondaryText,dimColor:!0}," ","• /memory to edit")));return null}function aQ5(){if(UZ().length===0)return null;return m4.createElement(m,{flexDirection:"column"},rX1().map((B)=>m4.createElement(iQ5,{key:B.path,path:B.path,contentLength:B.content.length})),m4.createElement(nQ5,null))}var IO=F1(S1(),1);function iN2(){return VA().tipsHistory||{}}function sQ5(A){let B=VA();T0({...B,tipsHistory:A})}function nN2(A){let B=iN2(),Q=VA().numStartups;B[A]=Q,sQ5(B)}function rQ5(A){return iN2()[A]||0}function it1(A){let B=rQ5(A);if(B===0)return 1/0;return VA().numStartups-B}async function tQ5(A){return(await Promise.all(A.map(async(Q)=>{let I=await Q.isRelevant();return{tip:Q,isRelevant:I}}))).filter((Q)=>Q.isRelevant).map((Q)=>Q.tip)}function eQ5(A){return A.filter((B)=>{return it1(B.id)>=B.cooldownSessions})}function A75(){let A=VA(),{hasReleaseNotes:B}=mK1(A.lastReleaseNotesSeen);return!B}function B75(A){if(A.length===0)return;if(A.length===1)return A[0];let B=A.map((Q)=>({tip:Q,sessions:it1(Q.id)}));return B.sort((Q,I)=>I.sessions-Q.sessions),B[0]?.tip}async function aN2(A,B=!1){if(!A75()||B)return;let Q=await tQ5(A),I=eQ5(Q);if(I.length===0)return;let G=I.find((D)=>D.id==="claude-opus-welcome");if(G)return G;return B75(I)}function sN2(A){nN2(A.id),j1("tengu_tip_shown",{tipIdLength:A.id,cooldownSessions:A.cooldownSessions})}function rN2({tip:A}){let B=$1();IO.useEffect(()=>{if(!A)return;sN2(A)},[A]);let Q=()=>{if(!A)return null;if(typeof A.content==="function")return A.content();if(A.id==="claude-opus-welcome")return IO.default.createElement(y,{color:B.secondaryText},"※ ",A.content);return IO.default.createElement(y,{color:B.secondaryText},"※ Tip: ",A.content)};return IO.default.createElement(IO.default.Fragment,null,A&&IO.default.createElement(m,{key:`tip-${A?.id}`,flexDirection:"row",marginTop:1,alignItems:"center",marginLeft:1},Q()))}var $j=F1(S1(),1);function Q75({width:A="auto",dividerChar:B,dividerColor:Q="gray",boxProps:I}){return $j.default.createElement(m,{width:A,borderStyle:{topLeft:"",top:"",topRight:"",right:"",bottomRight:"",bottom:B||"─",bottomLeft:"",left:""},borderColor:Q,flexGrow:1,borderBottom:!0,borderTop:!1,borderLeft:!1,borderRight:!1,...I})}function I75({title:A,width:B="auto",padding:Q=0,titlePadding:I=1,titleColor:G="white",dividerChar:D="─",dividerColor:Z="gray",boxProps:Y}){let W=$j.default.createElement(Q75,{dividerChar:D,dividerColor:Z,boxProps:Y});if(!A)return $j.default.createElement(m,{paddingLeft:Q,paddingRight:Q},W);return $j.default.createElement(m,{width:B,paddingLeft:Q,paddingRight:Q,gap:I},W,$j.default.createElement(m,null,$j.default.createElement(y,{color:G},A)),W)}var oN2=I75;var FK=F1(S1(),1);async function G75(){if(C6())return!1;let A=await ljA(!1);if(!A)return!1;return Boolean(A.account.has_claude_max)}function tN2(){let[A]=FK.useState(()=>{let B=VA(),Q=B.maxSubscriptionNoticeCount??0,I=B.hasAvailableMaxSubscription;if(Q>=3)return!1;return I??!1});return FK.useEffect(()=>{G75().then((B)=>{let Q=VA(),I=Q.maxSubscriptionNoticeCount??0;if(A)I+=1;T0({...Q,maxSubscriptionNoticeCount:I,hasAvailableMaxSubscription:B})})},[A]),A}function eN2(){let A=$1();return FK.createElement(m,{paddingLeft:1,marginTop:1,marginBottom:1},FK.createElement(y,{color:A.suggestion},"You can now use your Claude Max subscription with ",x0,FK.createElement(y,{color:A.secondaryText,dimColor:!0}," ","• /login to activate")))}function nt1({messages:A,normalizedMessageHistory:B,tools:Q,verbose:I,toolJSX:G,toolUseConfirmQueue:D,isMessageSelectorVisible:Z,tipOfTheDay:Y,conversationId:W,screen:F,screenToggleId:J}){let C=Sd(),{columns:X}=G4(),V=tN2(),[K,U]=p9.useState([]);p9.useEffect(()=>{lK1().then((O)=>U(O))},[]);let N=qj.useMemo(()=>wQ(A).filter(F_),[A]),q=qj.useMemo(()=>wN(N),[N]),M=qj.useMemo(()=>hF1(N),[N]),R=qj.useMemo(()=>ir(N),[N]),T=qj.useCallback((O)=>{return[{type:"static",jsx:p9.createElement(m,{flexDirection:"column",gap:1,key:`logo-${W}-${J}`},p9.createElement(hK1,{model:C}),L71()?p9.createElement(zk1,null):p9.createElement(lN2,null))},...Y?[{type:"static",jsx:p9.createElement(m,{key:`tip-of-the-day-${W}-${J}`},p9.createElement(rN2,{tip:Y}))}]:[],...V?[{type:"static",jsx:p9.createElement(m,{key:`max-subscription-${W}-${J}`},p9.createElement(eN2,null))}]:[],...K.length>0?[{type:"static",jsx:p9.createElement(m,{key:`install-messages-${W}-${J}`,flexDirection:"column",paddingLeft:1},K.map((S,f)=>p9.createElement(m,{key:f,flexDirection:"row",marginTop:1},p9.createElement(y,{color:$1().warning},H2.bullet),p9.createElement(y,{color:$1().warning}," ",S))))}]:[],...B.length>0?[{type:"static",jsx:p9.createElement(m,{flexDirection:"column",gap:1,key:`history-${W}-${J}`},Fp1(B.filter((S)=>S.type!=="progress").filter((S)=>S.type!=="user"||!S.isMeta)).map((S)=>p9.createElement(m,{key:`history-${S.uuid}-${J}`,width:X-5},p9.createElement(yC,{message:S,messages:B,addMargin:!0,tools:Q,verbose:O,erroredToolUseIDs:new Set,inProgressToolUseIDs:new Set,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!0,unresolvedToolUseIDs:new Set}))),p9.createElement(oN2,{dividerChar:"=",title:"Previous Conversation Compacted"}))}]:[],...Fp1(N.filter((S)=>S.type!=="progress").filter((S)=>S.type!=="user"||!S.isMeta)).map((S)=>{let f=ar(S),n=Jp1(S,N),g=p9.createElement(yC,{message:S,messages:N,addMargin:!0,tools:Q,verbose:O,erroredToolUseIDs:R,inProgressToolUseIDs:M,progressMessagesForMessage:n,shouldAnimate:!G&&!D.length&&!Z&&(!f||M.has(f)),shouldShowDot:!0,unresolvedToolUseIDs:q});return{type:D75(S,A,q,F)?"static":"transient",jsx:p9.createElement(m,{key:`${S.uuid}-${n.length}-${J}`,width:X-5},g)}}).filter((S)=>S!==void 0),...EW2()?[{type:"static",jsx:p9.createElement(NW2,null)}]:[]]},[W,J,C,Y,V,B,N,X,Q,R,M,G,D.length,Z,q,A,F,K]);return p9.createElement(p9.Fragment,null,p9.createElement(F71,{key:`static-messages-${W}-${J}`,items:T(I).filter((O)=>O.type==="static")},(O)=>O.jsx),T(I).filter((O)=>O.type==="transient").map((O)=>O.jsx))}function D75(A,B,Q,I){if(I==="transcript")return!0;switch(A.type){case"attachment":return!0;case"user":case"assistant":{if(!ar(A))return!0;let D=Lu0(A,B);return!HI0(D,Q)}case"progress":return!1}}import{randomUUID as st1}from"crypto";function A$2(A){J0(async(B,Q)=>{if(Q.ctrl&&B==="r")await A((I)=>I==="transcript"?"prompt":"transcript")})}var oe=F1(S1(),1);var Z75=i.object({method:i.literal("selection_changed"),params:i.object({selection:i.object({start:i.object({line:i.number(),character:i.number()}),end:i.object({line:i.number(),character:i.number()})}).nullable().optional(),text:i.string().optional(),filePath:i.string().optional()})});function B$2(A,B){let Q=oe.useRef(!1),I=oe.useRef(null);oe.useEffect(()=>{let G=A.find((Z)=>Z.type==="connected"&&Z.name==="ide");if(I.current!==G)Q.current=!1,I.current=G||null,B({lineCount:0,text:void 0,filePath:void 0});if(Q.current||!G)return;let D=(Z)=>{if(Z.selection?.start&&Z.selection?.end){let{start:Y,end:W}=Z.selection,F=W.line-Y.line+1;if(W.character===0)F--;let J={lineCount:F,text:Z.text,filePath:Z.filePath};B(J)}};G.client.setNotificationHandler(Z75,(Z)=>{if(I.current!==G)return;try{let Y=Z.params;if(Y.selection&&Y.selection.start&&Y.selection.end)D(Y);else if(Y.text!==void 0)D({selection:null,text:Y.text,filePath:Y.filePath})}catch(Y){console.error("Error processing selection_changed notification:",Y)}}),Q.current=!0},[A,B])}var at1=QV();function ZH1(A){at1=A}var Y75=F1(S1(),1);var fQB=i.strictObject({task_id:i.string().describe("The ID of the background task to kill")});var W75=F1(S1(),1);var sQB=i.strictObject({task_id:i.string().describe("The ID of the task to retrieve output from")});var fw=F1(S1(),1);var Q$2="WebSearch",I$2=`
2478
+ `)))),A8.createElement(m,{alignItems:"flex-start",justifyContent:"flex-start",borderColor:U==="bash"?x4.bashBorder:U==="memory"||U==="memorySelect"?x4.remember:x4.secondaryBorder,borderDimColor:U!=="memory",borderStyle:"round",marginTop:q.length>0?0:1,width:"100%"},A8.createElement(m,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start",width:3},U==="bash"?A8.createElement(y,{color:x4.bashBorder,dimColor:Z}," ! "):U==="memory"||U==="memorySelect"?A8.createElement(y,{color:x4.remember,dimColor:Z}," # "):A8.createElement(y,{color:Z?x4.secondaryText:void 0}," > ")),A8.createElement(m,{paddingRight:1},(()=>{let f0={multiline:!0,onSubmit:B9,onChange:d1,value:V,onHistoryUp:s2,onHistoryDown:Q2,onHistoryReset:()=>e1(),placeholder:U==="memory"?'Add to memory. Try "Always use descriptive variable names"':q.length>0&&(VA().queuedCommandUpHintCount||0)<z0?"Press up to edit queued messages":k1?FA:void 0,onExit:J1,onExitMessage:(z2,Q9)=>cA({show:z2,key:Q9}),onMessage:(z2,Q9)=>{if(z2&&Q9)g({text:Q9},{timeoutMs:3600000});else g({text:""},{timeoutMs:0})},onImagePaste:m0,columns:w6,disableCursorMovementForUpDownKeys:o4.length>0,cursorOffset:B1,onChangeCursorOffset:v1,onPaste:L0,onIsPastingChange:_1,focus:U!=="memorySelect",showCursor:U!=="memorySelect",argumentHint:h0};return fd()?A8.createElement(pt1,{...f0,initialMode:w1,onModeChange:H1,isLoading:Z}):A8.createElement(BI,{...f0})})())),U==="memorySelect"&&A8.createElement(jK1,{onSelect:(f0)=>{B9(V,!1,f0)},onCancel:()=>{N("memory")}}),A8.createElement(PN2,{apiKeyStatus:G,debug:A,exitMessage:PA,vimMode:w1,mode:U,autoUpdaterResult:X,isAutoUpdating:o1,verbose:W,tokenUsage:T2,onAutoUpdaterResult:C,onChangeIsUpdating:a1,suggestions:o4,selectedSuggestion:Z0,notification:n,toolPermissionContext:Q,helpOpen:A1,suppressHint:V.length>0,tasksSelected:E1,ideSelection:B,mcpClients:Y1,ideInstallationStatus:x,isPasting:t}))}var jN2=KB.memo(hQ5);function mQ5(){ro1(""),process.exit(0)}var yN2=F1(S1(),1);function kN2(){yN2.useEffect(()=>{let A=Math.round(process.uptime()*1000);j1("tengu_timer",{event:"startup",durationMs:A})},[])}var ae=F1(S1(),1);function xN2(){let[A,B]=ae.useState(()=>{let D=aI(!1);if(!IU()||vW(A3()?.scopes))return"valid";if(D)return"loading";return"missing"}),[Q,I]=ae.useState(null),G=ae.useCallback(async()=>{if(!IU()||vW(A3()?.scopes))return;let D=aI(!1);if(!D){B("missing");return}try{let Y=await TW2(D,!1)?"valid":"invalid";B(Y);return}catch(Z){I(Z),B("error");return}},[]);return{status:A,reverify:G,error:Q}}function fN2(A,B,Q,I,G,D,Z,Y,W){J0((F,J)=>{if(!J.escape)return;if(Z?.aborted)return;if(!Z)return;if(!I)return;if(G)return;if(fd()&&W==="INSERT")return;if(D.length>0){if(Y)Y()}j1("tengu_cancel",{}),A(()=>[]),B(null),Q()})}var vN2=F1(S1(),1);var dQ5=["Edit","MultiEdit","Write","NotebookEdit"];function se(A){return dQ5.includes(A)}function uQ5(A){return vN2.useCallback(async(B,Q,I,G)=>{return new Promise((D)=>{function Z(){j1("tengu_tool_use_cancelled",{messageID:G.message.id,toolName:B.name})}function Y(){D({behavior:"ask",message:pr}),I.abortController.abort()}if(I.abortController.signal.aborted){Z(),Y();return}return bh(B,Q,I,G).then(async(W)=>{if(W.behavior==="allow"){if(j1("tengu_tool_use_granted_in_config",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"accept",source:"config",tool_name:B.name});D({...W,updatedInput:Q});return}let F=await B.description(Q,{isNonInteractiveSession:I.options.isNonInteractiveSession,getToolPermissionContext:I.getToolPermissionContext,tools:I.options.tools});if(I.abortController.signal.aborted){Z(),Y();return}switch(W.behavior){case"deny":{if(j1("tengu_tool_use_denied_in_config",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"reject",source:"config",tool_name:B.name});D(W);return}case"ask":{A((J)=>[...J,{assistantMessage:G,tool:B,description:F,input:Q,toolUseContext:I,permissionResult:W,onAbort(){if(Z(),j1("tengu_tool_use_rejected_in_prompt",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"reject",source:"user_abort",tool_name:B.name});Y()},onAllow(C,X){if(C==="permanent")j1("tengu_tool_use_granted_in_prompt_permanent",{messageID:G.message.id,toolName:B.name});else j1("tengu_tool_use_granted_in_prompt_temporary",{messageID:G.message.id,toolName:B.name});if(se(B.name))gm.add(1,{decision:"accept",source:C==="permanent"?"user_permanent":"user_temporary",tool_name:B.name});D({behavior:"allow",updatedInput:X})},onReject(){if(j1("tengu_tool_use_rejected_in_prompt",{messageID:G.message.id,toolName:B.name}),se(B.name))gm.add(1,{decision:"reject",source:"user_reject",tool_name:B.name});Y()}}]);return}}}).catch((W)=>{if(W instanceof t7)Z(),Y();else m1(W)})})},[A])}var bN2=uQ5;var gN2=F1(S1(),1);var re=F1(S1(),1);var pQ5=F1(S1(),1);var hN2=F1(S1(),1);function mN2(A,B){return hN2.useMemo(()=>{if(A&&B&&B.length>0)return LT([...A,...B],"name");return A||[]},[A,B])}var dN2=F1(S1(),1);function uN2(A,B){return dN2.useMemo(()=>{return LT([...A,...B],"name")},[A,B])}var pN2=F1(S1(),1);function cN2(A,B){return pN2.useMemo(()=>{if(B.length>0)return LT([...A,...B],"name");return A},[A,B])}var p9=F1(S1(),1),qj=F1(S1(),1);var m4=F1(S1(),1);import{relative as cQ5}from"path";function lQ5(){let A=VA();T0({...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.2"}.VERSION})}function lN2(){let A=$1(),B=VA(),{hasReleaseNotes:Q,releaseNotes:I}=m4.useMemo(()=>mK1(B.lastReleaseNotesSeen),[B.lastReleaseNotesSeen]);return m4.useEffect(()=>{if(Q)lQ5()},[Q]),m4.createElement(m,{flexDirection:"column",paddingLeft:1},m4.createElement(aQ5,null),Q&&m4.createElement(m,{flexDirection:"column",marginTop:1},m4.createElement(y,{color:A.secondaryText},"What's new:"),m4.createElement(m,{flexDirection:"column",marginLeft:1},I.map((G,D)=>m4.createElement(y,{key:D,color:A.secondaryText},"• ",G)))))}function iQ5({path:A,contentLength:B}){let Q=A.startsWith(dA())?cQ5(dA(),A):A;return m4.createElement(m,{flexDirection:"row"},m4.createElement(y,{color:$1().warning},H2.warning),m4.createElement(y,{color:$1().warning},"Large ",m4.createElement(y,{bold:!0},Q)," will impact performance (",o7(B)," chars >"," ",o7(nt),")",m4.createElement(y,{color:$1().secondaryText,dimColor:!0}," ","• /memory to edit")))}function nQ5(){let A=$1(),B=am();if(!B)return null;let Q=B.content.length;if(Q>nm)return m4.createElement(m,{flexDirection:"row",gap:1},m4.createElement(y,{color:A.warning},H2.warning),m4.createElement(y,{color:A.warning},"ULTRACLAUDE.md exceeds ",nm," chars (",Q," chars)",m4.createElement(y,{color:A.secondaryText,dimColor:!0}," ","• /memory to edit")));return null}function aQ5(){if(UZ().length===0)return null;return m4.createElement(m,{flexDirection:"column"},rX1().map((B)=>m4.createElement(iQ5,{key:B.path,path:B.path,contentLength:B.content.length})),m4.createElement(nQ5,null))}var IO=F1(S1(),1);function iN2(){return VA().tipsHistory||{}}function sQ5(A){let B=VA();T0({...B,tipsHistory:A})}function nN2(A){let B=iN2(),Q=VA().numStartups;B[A]=Q,sQ5(B)}function rQ5(A){return iN2()[A]||0}function it1(A){let B=rQ5(A);if(B===0)return 1/0;return VA().numStartups-B}async function tQ5(A){return(await Promise.all(A.map(async(Q)=>{let I=await Q.isRelevant();return{tip:Q,isRelevant:I}}))).filter((Q)=>Q.isRelevant).map((Q)=>Q.tip)}function eQ5(A){return A.filter((B)=>{return it1(B.id)>=B.cooldownSessions})}function A75(){let A=VA(),{hasReleaseNotes:B}=mK1(A.lastReleaseNotesSeen);return!B}function B75(A){if(A.length===0)return;if(A.length===1)return A[0];let B=A.map((Q)=>({tip:Q,sessions:it1(Q.id)}));return B.sort((Q,I)=>I.sessions-Q.sessions),B[0]?.tip}async function aN2(A,B=!1){if(!A75()||B)return;let Q=await tQ5(A),I=eQ5(Q);if(I.length===0)return;let G=I.find((D)=>D.id==="claude-opus-welcome");if(G)return G;return B75(I)}function sN2(A){nN2(A.id),j1("tengu_tip_shown",{tipIdLength:A.id,cooldownSessions:A.cooldownSessions})}function rN2({tip:A}){let B=$1();IO.useEffect(()=>{if(!A)return;sN2(A)},[A]);let Q=()=>{if(!A)return null;if(typeof A.content==="function")return A.content();if(A.id==="claude-opus-welcome")return IO.default.createElement(y,{color:B.secondaryText},"※ ",A.content);return IO.default.createElement(y,{color:B.secondaryText},"※ Tip: ",A.content)};return IO.default.createElement(IO.default.Fragment,null,A&&IO.default.createElement(m,{key:`tip-${A?.id}`,flexDirection:"row",marginTop:1,alignItems:"center",marginLeft:1},Q()))}var $j=F1(S1(),1);function Q75({width:A="auto",dividerChar:B,dividerColor:Q="gray",boxProps:I}){return $j.default.createElement(m,{width:A,borderStyle:{topLeft:"",top:"",topRight:"",right:"",bottomRight:"",bottom:B||"─",bottomLeft:"",left:""},borderColor:Q,flexGrow:1,borderBottom:!0,borderTop:!1,borderLeft:!1,borderRight:!1,...I})}function I75({title:A,width:B="auto",padding:Q=0,titlePadding:I=1,titleColor:G="white",dividerChar:D="─",dividerColor:Z="gray",boxProps:Y}){let W=$j.default.createElement(Q75,{dividerChar:D,dividerColor:Z,boxProps:Y});if(!A)return $j.default.createElement(m,{paddingLeft:Q,paddingRight:Q},W);return $j.default.createElement(m,{width:B,paddingLeft:Q,paddingRight:Q,gap:I},W,$j.default.createElement(m,null,$j.default.createElement(y,{color:G},A)),W)}var oN2=I75;var FK=F1(S1(),1);async function G75(){if(C6())return!1;let A=await ljA(!1);if(!A)return!1;return Boolean(A.account.has_claude_max)}function tN2(){let[A]=FK.useState(()=>{let B=VA(),Q=B.maxSubscriptionNoticeCount??0,I=B.hasAvailableMaxSubscription;if(Q>=3)return!1;return I??!1});return FK.useEffect(()=>{G75().then((B)=>{let Q=VA(),I=Q.maxSubscriptionNoticeCount??0;if(A)I+=1;T0({...Q,maxSubscriptionNoticeCount:I,hasAvailableMaxSubscription:B})})},[A]),A}function eN2(){let A=$1();return FK.createElement(m,{paddingLeft:1,marginTop:1,marginBottom:1},FK.createElement(y,{color:A.suggestion},"You can now use your Claude Max subscription with ",x0,FK.createElement(y,{color:A.secondaryText,dimColor:!0}," ","• /login to activate")))}function nt1({messages:A,normalizedMessageHistory:B,tools:Q,verbose:I,toolJSX:G,toolUseConfirmQueue:D,isMessageSelectorVisible:Z,tipOfTheDay:Y,conversationId:W,screen:F,screenToggleId:J}){let C=Sd(),{columns:X}=G4(),V=tN2(),[K,U]=p9.useState([]);p9.useEffect(()=>{lK1().then((O)=>U(O))},[]);let N=qj.useMemo(()=>wQ(A).filter(F_),[A]),q=qj.useMemo(()=>wN(N),[N]),M=qj.useMemo(()=>hF1(N),[N]),R=qj.useMemo(()=>ir(N),[N]),T=qj.useCallback((O)=>{return[{type:"static",jsx:p9.createElement(m,{flexDirection:"column",gap:1,key:`logo-${W}-${J}`},p9.createElement(hK1,{model:C}),L71()?p9.createElement(zk1,null):p9.createElement(lN2,null))},...Y?[{type:"static",jsx:p9.createElement(m,{key:`tip-of-the-day-${W}-${J}`},p9.createElement(rN2,{tip:Y}))}]:[],...V?[{type:"static",jsx:p9.createElement(m,{key:`max-subscription-${W}-${J}`},p9.createElement(eN2,null))}]:[],...K.length>0?[{type:"static",jsx:p9.createElement(m,{key:`install-messages-${W}-${J}`,flexDirection:"column",paddingLeft:1},K.map((S,f)=>p9.createElement(m,{key:f,flexDirection:"row",marginTop:1},p9.createElement(y,{color:$1().warning},H2.bullet),p9.createElement(y,{color:$1().warning}," ",S))))}]:[],...B.length>0?[{type:"static",jsx:p9.createElement(m,{flexDirection:"column",gap:1,key:`history-${W}-${J}`},Fp1(B.filter((S)=>S.type!=="progress").filter((S)=>S.type!=="user"||!S.isMeta)).map((S)=>p9.createElement(m,{key:`history-${S.uuid}-${J}`,width:X-5},p9.createElement(yC,{message:S,messages:B,addMargin:!0,tools:Q,verbose:O,erroredToolUseIDs:new Set,inProgressToolUseIDs:new Set,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!0,unresolvedToolUseIDs:new Set}))),p9.createElement(oN2,{dividerChar:"=",title:"Previous Conversation Compacted"}))}]:[],...Fp1(N.filter((S)=>S.type!=="progress").filter((S)=>S.type!=="user"||!S.isMeta)).map((S)=>{let f=ar(S),n=Jp1(S,N),g=p9.createElement(yC,{message:S,messages:N,addMargin:!0,tools:Q,verbose:O,erroredToolUseIDs:R,inProgressToolUseIDs:M,progressMessagesForMessage:n,shouldAnimate:!G&&!D.length&&!Z&&(!f||M.has(f)),shouldShowDot:!0,unresolvedToolUseIDs:q});return{type:D75(S,A,q,F)?"static":"transient",jsx:p9.createElement(m,{key:`${S.uuid}-${n.length}-${J}`,width:X-5},g)}}).filter((S)=>S!==void 0),...EW2()?[{type:"static",jsx:p9.createElement(NW2,null)}]:[]]},[W,J,C,Y,V,B,N,X,Q,R,M,G,D.length,Z,q,A,F,K]);return p9.createElement(p9.Fragment,null,p9.createElement(F71,{key:`static-messages-${W}-${J}`,items:T(I).filter((O)=>O.type==="static")},(O)=>O.jsx),T(I).filter((O)=>O.type==="transient").map((O)=>O.jsx))}function D75(A,B,Q,I){if(I==="transcript")return!0;switch(A.type){case"attachment":return!0;case"user":case"assistant":{if(!ar(A))return!0;let D=Lu0(A,B);return!HI0(D,Q)}case"progress":return!1}}import{randomUUID as st1}from"crypto";function A$2(A){J0(async(B,Q)=>{if(Q.ctrl&&B==="r")await A((I)=>I==="transcript"?"prompt":"transcript")})}var oe=F1(S1(),1);var Z75=i.object({method:i.literal("selection_changed"),params:i.object({selection:i.object({start:i.object({line:i.number(),character:i.number()}),end:i.object({line:i.number(),character:i.number()})}).nullable().optional(),text:i.string().optional(),filePath:i.string().optional()})});function B$2(A,B){let Q=oe.useRef(!1),I=oe.useRef(null);oe.useEffect(()=>{let G=A.find((Z)=>Z.type==="connected"&&Z.name==="ide");if(I.current!==G)Q.current=!1,I.current=G||null,B({lineCount:0,text:void 0,filePath:void 0});if(Q.current||!G)return;let D=(Z)=>{if(Z.selection?.start&&Z.selection?.end){let{start:Y,end:W}=Z.selection,F=W.line-Y.line+1;if(W.character===0)F--;let J={lineCount:F,text:Z.text,filePath:Z.filePath};B(J)}};G.client.setNotificationHandler(Z75,(Z)=>{if(I.current!==G)return;try{let Y=Z.params;if(Y.selection&&Y.selection.start&&Y.selection.end)D(Y);else if(Y.text!==void 0)D({selection:null,text:Y.text,filePath:Y.filePath})}catch(Y){console.error("Error processing selection_changed notification:",Y)}}),Q.current=!0},[A,B])}var at1=QV();function ZH1(A){at1=A}var Y75=F1(S1(),1);var fQB=i.strictObject({task_id:i.string().describe("The ID of the background task to kill")});var W75=F1(S1(),1);var sQB=i.strictObject({task_id:i.string().describe("The ID of the task to retrieve output from")});var fw=F1(S1(),1);var Q$2="WebSearch",I$2=`
2479
2479
  - Allows Claude to search the web and use the results to inform responses
2480
2480
  - Provides up-to-date information for current events and recent data
2481
2481
  - Returns search result information formatted as search result blocks
@@ -2494,7 +2494,7 @@ Usage notes:
2494
2494
  `;else G+=`No links found.
2495
2495
 
2496
2496
  `}),{tool_use_id:B,type:"tool_result",content:G.trim()}}};var Mj=(A,B)=>{let Q=[fs1,X4,Uw,bR,HC,v3,b3,oV,CG,He,ww,sY,...B?[xU,HY]:[],G$2,...[]],I=fh(A),G=Q.filter((Z)=>{return!I.some((Y)=>Y.ruleValue.toolName===Z.name&&Y.ruleValue.ruleContent===void 0)}),D=G.map((Z)=>Z.isEnabled());return G.filter((Z,Y)=>D[Y])};var bd=F1(S1(),1);function D$2(){let[A,B]=bd.useState([]),Q=bd.useRef([]),I=bd.useCallback((G)=>{Q.current=G(Q.current),B(Q.current)},[B]);return{queuedCommands:A,queuedCommandsRef:Q,setQueuedCommands:I}}function gd({commands:A,debug:B,initialPrompt:Q,shouldShowPromptInput:I,initialTools:G,initialMessages:D,initialTodos:Z,tipOfTheDay:Y,mcpClients:W,dynamicMcpConfig:F}){let[{todoFeatureEnabled:J,toolPermissionContext:C,verbose:X,mainLoopModel:V,maxRateLimitFallbackActive:K,rateLimitResetsAt:U},N]=rG(),q=Sd(),M=lh(),R=j9.useMemo(()=>Mj(C,J),[C,J]),[T,O]=j9.useState(F),S=j9.useCallback((p1)=>{O(p1)},[O]),[f,n]=j9.useState("prompt"),[g,Y1]=j9.useState(1),{notification:r,addNotification:w1}=jJ2(),{clients:H1,tools:x,commands:J1}=GV2(w1,T),x1=mN2(W,H1),o1=uN2([...R,...G],x),a1=cN2(A,J1),[PA,cA]=j9.useState(null);ZV2(H1),B$2(H1,cA);let[FA,f1]=j9.useState("responding"),[B1,v1]=j9.useState(null),[M1,AA]=j9.useState(!1),[UA,OA]=j9.useState(null),[o,A1]=j9.useState(null),[I1,E1]=j9.useState([]),[N1,t]=j9.useState(D??[]),[_1,k1]=j9.useState([]),[d1,e1]=j9.useState(""),[IA,zA]=j9.useState("prompt"),{queuedCommands:X0,queuedCommandsRef:kA,setQueuedCommands:z0}=D$2(),[s2,Q2]=j9.useState([]),[U2,g2]=j9.useState(0),[B9,o4]=j9.useState(0),[Z0,h0]=j9.useState(!1),[m0,L0]=j9.useState(!1),[H0,j2]=j9.useState(st1()),[y9,z8]=j9.useState(VA().hasAcknowledgedCostThreshold),[HB,w6]=j9.useState("INSERT"),[T2,x4]=j9.useState(null),{haikuWords:f0,generateHaikuWord:z2}=IU2(M1),[Q9,o6]=j9.useState(null),[w8,u3]=j9.useState(!1);j9.useEffect(()=>{function p1(JA){if(!Xz||!JA)return;O((ZA)=>{if(ZA?.ide)return ZA;return{...ZA,ide:{type:JA.url.startsWith("ws:")?"ws-ide":"sse-ide",url:JA.url,ideName:JA.name}}})}RD0(p1,()=>u3(!0),(JA)=>{o6(JA)})},[]),j9.useEffect(()=>{if(U!==M.resetsAt)N((p1)=>({...p1,rateLimitResetsAt:M.resetsAt}));if(vu0(K,U,M,(p1)=>N((JA)=>({...JA,maxRateLimitFallbackActive:p1}))),K&&V===null)w1({text:`Claude Opus 4 limit reached, now using ${Ui(bP())}`})},[w1,K,V,U,M,N]);let lB=j9.useCallback((p1)=>{k1(p1),V3(),j2(st1())},[]),E6=(p1)=>{if(e1(p1),IA!=="prompt")return;if(!p1)return;if(f0.length>0&&(!p1.endsWith(" ")||d1.endsWith(" ")))return;if(!p1.includes(" "))return;if(p1.length>=3&&!p1.startsWith("!")&&!p1.startsWith("#")&&!p1.startsWith("/"))z2(p1)},K3=j9.useCallback((p1,JA)=>{return new Promise((ZA)=>{x4({m1:p1,m2:JA,resolve:ZA})})},[]),E8=j9.useMemo(()=>Vb(),[]),BB=j9.useRef({[E8]:{content:JSON.stringify(Z||[]),timestamp:0}}),{status:OQ,reverify:V2}=xN2();function N9(){if(!M1)return;if(AA(!1),I1[0])I1[0].onAbort(),E1([]);else B1?.abort()}let H3=j9.useCallback(()=>{if(X0.length===0)return;e1([...X0.map((p1)=>p1.value),d1].filter(Boolean).join(`
2497
- `)),zA("prompt"),z0(()=>[])},[X0,e1,zA,z0,d1]);fN2(E1,x4,N9,M1,Z0,X0,B1?.signal,H3,HB),j9.useEffect(()=>{if(zH()>=5&&!m0&&!y9){if(j1("tengu_cost_threshold_reached",{}),h31()&&!process.env.DISABLE_COST_WARNINGS)L0(!0)}},[N1,m0,y9]);let Q7=bN2(E1),QB=j9.useCallback((p1)=>{N((JA)=>({...JA,toolPermissionContext:p1}))},[N]),iB=j9.useCallback((p1,JA,ZA)=>{return{abortController:ZA,options:{commands:a1,tools:o1,debug:B,verbose:X,mainLoopModel:q,maxThinkingTokens:Bj(JA),mcpClients:x1,ideInstallationStatus:Q9,isNonInteractiveSession:!1,dynamicMcpConfig:T},getToolPermissionContext(){return at1},getQueuedCommands(){return kA.current},removeQueuedCommands(NA){z0((rA)=>rA.filter((bA)=>!NA.includes(bA)))},messages:p1,setMessages:t,setMessageHistory:lB,onChangeAPIKey:V2,readFileState:BB.current,setToolJSX:A1,addNotification:w1,setToolPermissionContext:QB,onChangeDynamicMcpConfig:S,nestedMemoryAttachmentTriggers:new Set}},[a1,B,o1,X,q,x1,Q9,T,lB,V2,w1,QB,S,kA,z0]);async function $G(){V2();let p1=UZ();for(let rA of p1)BB.current[rA.path]={content:rA.content,timestamp:Date.now()};if(!Q)return;AA(!0),o4(0);let JA=new AbortController;v1(JA);let{messages:ZA,shouldQuery:NA}=await vd(Q,"prompt",A1,iB(N1,N1,JA),null,PA,void 0);if(ZA.length){for(let fA of ZA)if(fA.type==="user")Yz(Q);if(t((fA)=>[...fA,...ZA]),!NA){v1(null),AA(!1);return}let[rA,bA,sA]=await Promise.all([JS(o1,q),dY(),qw(!1)]);for await(let fA of at([...N1,...ZA],rA,bA,sA,Q7,iB([...N1,...ZA],ZA,JA),K3))Cp1(fA,(iA)=>{t((P2)=>[...P2,iA])},(iA)=>o4((P2)=>P2+iA.length),(iA)=>f1(iA))}else Yz(Q);z8(VA().hasAcknowledgedCostThreshold||!1),AA(!1)}async function RZ(p1,JA,ZA){if(t((iA)=>[...iA,...p1]),o4(0),ZA)fV.handleQueryStart(x1);Ib();let NA=p1[p1.length-1];if(NA?.type==="user"&&typeof NA.message.content==="string")Ow2(NA.message.content);if(!ZA){v1(null),AA(!1);return}let rA=iB([...N1,...p1],p1,JA),[bA,sA,fA]=await Promise.all([JS(o1,q),dY(),qw(!1)]);for await(let iA of at([...N1,...p1],bA,sA,fA,Q7,rA,K3,void 0))Cp1(iA,(P2)=>{t((F2)=>[...F2,P2])},(P2)=>o4((F2)=>F2+P2.length),(P2)=>f1(P2));AA(!1)}zW2(),QV2(N1,N1.length==D?.length),kN2(),j9.useEffect(()=>{if(X0.length<1)return;let p1=VA();T0({...p1,promptQueueUseCount:(p1.promptQueueUseCount??0)+1})},[X0.length]);let I7=!M1&&m0;j9.useEffect(()=>{Op()},[d1,U2]),j9.useEffect(()=>{if(M1)return;if(N1.length<2)return;let p1=setTimeout(()=>{let JA=Date.now()-l21();if(!M1&&I1.length===0&&!o&&!T2&&!I7&&!Z0&&JA>=VA().messageIdleNotifThresholdMs)Gd({message:"Claude is waiting for your input"})},Cr1);return()=>clearTimeout(p1)},[M1,I1.length,o,T2,I7,Z0,N1]),j9.useEffect(()=>{return $G(),()=>{fV.shutdown()}},[]);let z3=j9.useMemo(()=>wQ(N1).filter(F_),[N1]),RD=j9.useMemo(()=>wQ(_1).filter(F_),[_1]),OD=j9.useMemo(()=>wN(z3),[z3]),TD=j9.useMemo(()=>hF1(z3),[z3]),IB=j9.useMemo(()=>ir(z3),[z3]),OZ=j9.useCallback((p1)=>{T2?.resolve(p1),setTimeout(()=>x4(null),0)},[T2]);A$2(async(p1)=>{Y1((JA)=>JA+1),n(p1),await V3()});let[O1,R1]=j9.useState(!1);if(f==="transcript")return p4.createElement(p4.Fragment,null,p4.createElement(nt1,{messages:N1,normalizedMessageHistory:RD,tools:o1,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],isMessageSelectorVisible:!1,tipOfTheDay:void 0,conversationId:H0,screen:f,screenToggleId:g}),p4.createElement(m,{alignItems:"center",alignSelf:"center",borderTopColor:$1().secondaryBorder,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},p4.createElement(y,{dimColor:!0},"Showing detailed transcript · Ctrl+R to toggle")));return p4.createElement(p4.Fragment,null,p4.createElement(nt1,{messages:N1,normalizedMessageHistory:RD,tools:o1,verbose:X,toolJSX:o,toolUseConfirmQueue:I1,isMessageSelectorVisible:Z0,tipOfTheDay:Y,conversationId:H0,screen:f,screenToggleId:g}),p4.createElement(m,{flexDirection:"column",width:"100%"},!o&&I1.length===0&&!T2&&M1&&p4.createElement(vK1,{mode:FA,haikuWords:f0,currentResponseLength:B9}),o?o.jsx:null,!1,!o&&I1[0]!==void 0&&!Z0&&!T2&&p4.createElement(ez2,{onDone:()=>E1(([p1,...JA])=>JA),onReject:H3,setToolPermissionContext:QB,toolUseConfirm:I1[0],toolUseContext:iB(N1,N1,B1??new AbortController),verbose:X}),!o&&I1.length===0&&!Z0&&!T2&&I7&&p4.createElement(IQ0,{onDone:()=>{L0(!1),z8(!0);let p1=VA();T0({...p1,hasAcknowledgedCostThreshold:!0}),j1("tengu_cost_threshold_acknowledged",{})}}),O1&&p4.createElement(x71,{onDone:async()=>{await cW(0)}}),w8&&p4.createElement(XD0,{onDone:()=>u3(!1),installedVersion:Q9?.installedVersion??null}),I1.length===0&&!o?.shouldHidePromptInput&&I&&!Z0&&!T2&&!I7&&!O1&&!w8&&p4.createElement(p4.Fragment,null,p4.createElement(jN2,{debug:B,ideSelection:PA,getToolUseContext:iB,toolPermissionContext:C,setToolPermissionContext:QB,apiKeyStatus:OQ,commands:a1,isLoading:M1,onExit:async()=>{if(!await gt1(N1)){await cW(0);return}R1(!0)},onQuery:RZ,verbose:X,messages:N1,setToolJSX:A1,onAutoUpdaterResult:OA,autoUpdaterResult:UA,input:d1,onInputChange:E6,mode:IA,onModeChange:zA,queuedCommands:X0,setQueuedCommands:z0,submitCount:U2,onSubmitCountChange:(p1)=>{return cA(null),g2(p1)},setIsLoading:AA,setAbortController:v1,onShowMessageSelector:()=>h0((p1)=>!p1),notification:r,addNotification:w1,mcpClients:H1,pastedImagesFromSelector:s2,vimMode:HB,setVimMode:w6,ideInstallationStatus:Q9}))),Z0&&p4.createElement(IV2,{erroredToolUseIDs:IB,unresolvedToolUseIDs:OD,messages:N1,onSelect:async(p1)=>{if(h0(!1),!N1.includes(p1))return;N9(),setImmediate(async()=>{await V3();let JA=N1.indexOf(p1),ZA=N1.slice(0,JA);if(t([...ZA]),j2(st1()),typeof p1.message.content==="string"){let NA=JG(p1.message.content,"bash-input");if(NA)e1(NA),zA("bash");else e1(p1.message.content),zA("prompt")}else if(Array.isArray(p1.message.content)&&p1.message.content.length>=2&&p1.message.content.some((NA)=>NA.type==="image")&&p1.message.content.some((NA)=>NA.type==="text")){let NA=p1.message.content.find((bA)=>bA.type==="text");if(NA&&NA.type==="text")e1(NA.text),zA("prompt");let rA=p1.message.content.filter((bA)=>bA.type==="image");if(rA.length>0){let bA=rA.flatMap((sA)=>sA.source.type==="base64"?[sA.source.data]:[]);Q2(bA)}}})},onEscape:()=>h0(!1),tools:o1}),!w8&&p4.createElement(QG,null))}var q$2=F1($$2(),1),{program:aIB,createCommand:sIB,createArgument:rIB,createOption:oIB,CommanderError:tIB,InvalidArgumentError:eIB,InvalidOptionArgumentError:AGB,Command:M$2,Argument:BGB,Option:hd,Help:QGB}=q$2.default;var QI5=i.object({behavior:i.literal("allow"),updatedInput:i.record(i.unknown())}),II5=i.object({behavior:i.literal("deny"),message:i.string()}),L$2=i.union([QI5,II5]);function R$2(A,B){let Q={type:"permissionPromptTool",permissionPromptToolName:B,toolResult:A};switch(A.behavior){case"allow":return{...A,decisionReason:Q};case"deny":return{...A,decisionReason:Q,ruleSuggestions:null}}}import{randomUUID as O$2}from"node:crypto";async function*P$2({commands:A,permissionContext:B,prompt:Q,cwd:I,tools:G,mcpClients:D,verbose:Z=!1,maxTurns:Y,permissionPromptTool:W,initialMessages:F=[],customSystemPrompt:J,appendSystemPrompt:C,userSpecifiedModel:X}){mW(I);let V=Date.now(),K=G.filter((w1)=>w1!==W),U=X?gP(X):await WQ(),[N,q,M]=await Promise.all([JS(K,U),dY(),qw(!0)]),R=[...J?[J]:N,...C?[C]:[]],T=GI5(F),O={messages:T,setMessages:()=>{},onChangeAPIKey:()=>{},options:{commands:A,debug:!1,tools:K,verbose:Z,mainLoopModel:U,maxThinkingTokens:Bj(T),mcpClients:D,ideInstallationStatus:null,isNonInteractiveSession:!0},getToolPermissionContext:()=>B,getQueuedCommands:()=>[],removeQueuedCommands:()=>{},abortController:new AbortController,readFileState:{},setToolPermissionContext:()=>{}},S=[...T,...(await vd(Q,"prompt",()=>{},{...O,messages:T},null,null)).messages],f=Bj(T);if(f>0)O={messages:S,setMessages:()=>{},onChangeAPIKey:()=>{},options:{commands:A,debug:!1,tools:K,verbose:Z,mainLoopModel:U,maxThinkingTokens:f,mcpClients:D,ideInstallationStatus:null,isNonInteractiveSession:!0},getToolPermissionContext:()=>B,abortController:new AbortController,readFileState:{},setToolPermissionContext:()=>{},getQueuedCommands:()=>[],removeQueuedCommands:()=>{}};let n=async(w1,H1,x,J1)=>{let x1=await bh(w1,H1,x,J1);if(x1.behavior==="allow"||x1.behavior==="deny")return x1;if(W)for await(let o1 of W.call({tool_name:w1.name,input:H1},x,n,J1)){if(o1.type!=="result")continue;let a1=W.mapToolResultToToolResultBlockParam(o1.data,"1");if(!a1.content||!Array.isArray(a1.content)||!a1.content[0]||a1.content[0].type!=="text"||typeof a1.content[0].text!=="string")throw new Error('Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.');return R$2(L$2.parse(D8(a1.content[0].text)),W.name)}return x1};yield{type:"system",subtype:"init",session_id:Q5,tools:K.map((w1)=>w1.name),mcp_servers:D.map((w1)=>({name:w1.name,status:w1.type}))};let g=0;for await(let w1 of oX1(S,R,q,M,n,O)){switch(S.push(w1),f41(S),w1.type){case"assistant":yield*T$2(w1);break;case"user":yield*T$2(w1);break;case"progress":case"attachment":break}if(w1.type==="user"&&Y&&++g>=Y){yield{type:"result",subtype:"error_max_turns",cost_usd:zH(),duration_ms:Date.now()-V,duration_api_ms:Uk(),is_error:!1,num_turns:g,session_id:Q5,total_cost:zH()};return}}let Y1=eZ(S);if(!Y1||Y1.type!=="assistant")throw new Error(`Expected content to be an assistant message, but got ${JSON.stringify(Y1?.type,null,2)}`);let r=eZ(Y1.message.content);if(r?.type!=="text"&&r?.type!=="thinking"&&r?.type!=="redacted_thinking")throw new Error(`Expected first content item to be text or thinking, but got ${JSON.stringify(Y1.message.content[0],null,2)}`);yield{type:"result",subtype:"success",cost_usd:zH(),is_error:Boolean(Y1.isApiErrorMessage),duration_ms:Date.now()-V,duration_api_ms:Uk(),num_turns:S.length-1,result:r.type==="text"?r.text:"",total_cost:zH(),session_id:Q5}}function*T$2(A){switch(A.type){case"assistant":for(let B of wQ([A]))yield{type:"assistant",message:B.message,session_id:Q5};break;case"user":for(let B of wQ([A]))yield{type:"user",message:B.message,session_id:Q5};break;default:}}function GI5(A){return A.flatMap((B)=>{switch(B.type){case"assistant":return[{type:"assistant",message:B.message,costUSD:0,durationMs:0,uuid:O$2(),timestamp:new Date().toISOString()}];case"user":return[{type:"user",message:B.message,uuid:O$2(),timestamp:new Date().toISOString()}];default:return[]}})}function S$2(A){return A.flatMap((B)=>{switch(B.type){case"assistant":return[{type:"assistant",message:B.message,session_id:Q5}];case"user":return[{type:"user",message:B.message,session_id:Q5}];default:return[]}})}var NG=F1(S1(),1);function _$2({servers:A,scope:B,onDone:Q}){let I=$1(),G=Object.keys(A),D=NG.useMemo(()=>KV(),[]),Z=G.filter((F)=>D[F]!==void 0);function Y(F){let J=0;for(let C of F){let X=A[C];if(X){let V=C;if(D[V]!==void 0){let K=1;while(D[`${C}_${K}`]!==void 0)K++;V=`${C}_${K}`}_b(V,X,B),J++}}Q(J)}let W=v2();return J0((F,J)=>{if(J.escape){Q(0);return}}),NG.default.createElement(NG.default.Fragment,null,NG.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:I.success},NG.default.createElement(y,{bold:!0,color:I.success},"Import MCP Servers from Claude Desktop"),NG.default.createElement(y,null,"Found ",G.length," MCP server",G.length!==1?"s":""," in Claude Desktop."),Z.length>0&&NG.default.createElement(y,{color:I.warning},"Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."),NG.default.createElement(y,null,"Please select the servers you want to import:"),NG.default.createElement(V71,{options:G.map((F)=>({label:`${F}${Z.includes(F)?" (already exists)":""}`,value:F})),defaultValue:G.filter((F)=>!Z.includes(F)),onSubmit:Y})),NG.default.createElement(m,{marginLeft:3},NG.default.createElement(y,{dimColor:!0},W.pending?NG.default.createElement(NG.default.Fragment,null,"Press ",W.keyName," again to exit"):NG.default.createElement(NG.default.Fragment,null,"Space to select · Enter to confirm · Esc to cancel"))))}import*as Ge1 from"path";import*as j$2 from"os";function DI5(){let A=NJ();if(!LM1.includes(A))throw new Error(`Unsupported platform: ${A} - Claude Desktop integration only works on macOS and WSL.`);if(A==="macos")return Ge1.join(j$2.homedir(),"Library","Application Support","Claude","claude_desktop_config.json");let B=process.env.USERPROFILE?process.env.USERPROFILE.replace(/\\/g,"/"):null;if(B){let I=`/mnt/c${B.replace(/^[A-Z]:/,"")}/AppData/Roaming/Claude/claude_desktop_config.json`;if(b1().existsSync(I))return I}try{if(b1().existsSync("/mnt/c/Users")){let I=b1().readdirSync("/mnt/c/Users");for(let G of I){if(G.name==="Public"||G.name==="Default"||G.name==="Default User"||G.name==="All Users")continue;let D=Ge1.join("/mnt/c/Users",G.name,"AppData","Roaming","Claude","claude_desktop_config.json");if(b1().existsSync(D))return D}}}catch(Q){m1(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 y$2(){if(!LM1.includes(NJ()))throw new Error("Unsupported platform - Claude Desktop integration only works on macOS and WSL.");try{let A=DI5();if(!b1().existsSync(A))return{};let B=b1().readFileSync(A,{encoding:"utf8"}),Q=D8(B);if(!Q||typeof Q!=="object")return{};let I=Q.mcpServers;if(!I||typeof I!=="object")return{};let G={};for(let[D,Z]of Object.entries(I)){if(!Z||typeof Z!=="object")continue;let Y=xj1.safeParse(Z);if(Y.success)G[D]=Y.data}return G}catch(A){return m1(A instanceof Error?A:new Error(String(A))),{}}}import{cwd as GO}from"process";function ZI5(A,B,Q){if(Q.type!=="assistant")return;if(!Array.isArray(Q.message.content))return;for(let I of Q.message.content){if(I.type!=="tool_use")continue;let G=A.find((D)=>D.name===I.name);if(G)B.set(I.id,G)}}function ee(A,B){try{let Q=Ru0(A);if(Q[Q.length-1]?.type==="user")Q.push(FR({content:cr}));let G=new Map;for(let D of Q)ZI5(B,G,D);return Q}catch(Q){throw m1(Q),Q}}var $0=F1(S1(),1);import{join as k$2}from"path";function WH1(){let A=b1(),B=dA(),Q=k$2(S5,"projects",B.replace(/[^a-zA-Z0-9]/g,"-"));if(!A.existsSync(Q))return!1;let G=A.readdirSync(Q).filter((Z)=>Z.name.endsWith(".jsonl")).map((Z)=>k$2(Q,Z.name));if(G.length===0)return!1;let D=new Date("2025-05-12");for(let Z of G)try{if(A.statSync(Z).birthtime<D)return!0}catch{continue}return!1}function x$2({onDismiss:A}){let{columns:B}=G4();if($0.default.useEffect(()=>{j1("tengu_ga_announcement_shown",{})},[]),$0.default.useEffect(()=>{let Q=()=>{A()};return process.stdin.on("data",Q),()=>{process.stdin.off("data",Q)}},[A]),B<50)return $0.default.createElement(JI5,{onDismiss:A});else if(B<84)return $0.default.createElement(FI5,{onDismiss:A});else return $0.default.createElement(YI5,{onDismiss:A})}function YI5({onDismiss:A}){let B=$1(),{columns:Q}=G4(),I=[{toolName:"Read",usesTx:"47.5M",usesN:47500000},{toolName:"Edit",usesTx:"39.3M",usesN:39300000},{toolName:"Bash",usesTx:"17.9M",usesN:17900000},{toolName:"Grep",usesTx:"14.7M",usesN:14700000},{toolName:"Write",usesTx:"6.8M",usesN:6800000}];return $0.default.createElement(m,{flexDirection:"column",gap:1,width:Q},$0.default.createElement(m,{borderStyle:"round",borderColor:B.claude,paddingLeft:1,paddingRight:1},$0.default.createElement(Ze1,null)),$0.default.createElement(m,null,$0.default.createElement(Ye1,null)),$0.default.createElement(m,{gap:1,flexDirection:"row"},$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1,flexGrow:1,flexBasis:0},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN NUMBERS"),$0.default.createElement(m,{flexDirection:"column",marginTop:1},$0.default.createElement(m,null,$0.default.createElement(y,null,"115 K ",$0.default.createElement(y,{color:B.remember},"developers"))),$0.default.createElement(m,null,$0.default.createElement(y,null,"195 M "),$0.default.createElement(y,{color:B.success},"lines of code changed last week")))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1,flexGrow:1,flexBasis:0},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN VIBES"),$0.default.createElement(m,{flexDirection:"column",marginTop:1},$0.default.createElement(m,null,$0.default.createElement(y,null,"Billions of"),$0.default.createElement(y,{color:B.claude}," reticulations")),$0.default.createElement(m,null,$0.default.createElement(y,null,"81% of devs "),$0.default.createElement(y,{color:B.bashBorder},"auto-accepting"))))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE’S TOP TOOLS"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(De1,{stats:I,width:Q-3}))),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,{color:B.remember},"Press Enter to continue")))}function De1({stats:A,width:B}){let Q=Math.max(...A.map((Z)=>Z.usesN)),G=Math.max(...A.map((Z)=>Z.toolName.length))+5,D=B-G-2;return $0.default.createElement(m,{flexDirection:"column",gap:1},A.map((Z,Y)=>{let W=" ".repeat(G-Z.toolName.length),F=Z.usesN/Q;return $0.default.createElement(m,{key:Y,flexDirection:"row"},$0.default.createElement(y,null,Z.toolName,":",W,$0.default.createElement(WI5,{width:D,percent:F,text:Z.usesTx})))}))}function WI5({width:A,percent:B,text:Q}){let I=$1(),{theme:G}=VA(),D=G.startsWith("dark")?"rgb(30, 30, 30)":"rgb(220, 220, 220)",Z=Math.ceil(A*B),Y=A-Z,W=Math.max(0,Z-Q.length-1),F=" "+Q+" ".repeat(W),J=" ".repeat(Math.max(0,Y)),C=$0.default.createElement(y,{backgroundColor:I.claude},F);return $0.default.createElement(y,null,C,$0.default.createElement(y,{backgroundColor:D},J))}function FI5({onDismiss:A}){let B=$1(),{columns:Q}=G4(),I=[{toolName:"Read",usesTx:"47.5M",usesN:47500000},{toolName:"Edit",usesTx:"39.3M",usesN:39300000},{toolName:"Bash",usesTx:"17.9M",usesN:17900000},{toolName:"Grep",usesTx:"14.7M",usesN:14700000},{toolName:"Write",usesTx:"6.8M",usesN:6800000}];return $0.default.createElement(m,{flexDirection:"column",gap:1,width:Q},$0.default.createElement(m,{borderStyle:"round",borderColor:B.claude,paddingLeft:1,paddingRight:1},$0.default.createElement(Ze1,null)),$0.default.createElement(m,null,$0.default.createElement(Ye1,null)),$0.default.createElement(m,{flexDirection:"column",gap:1},$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN NUMBERS"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,null,"115 K ",$0.default.createElement(y,{color:B.remember},"developers"))),$0.default.createElement(m,null,$0.default.createElement(y,null,"195 M "),$0.default.createElement(y,{color:B.success},"lines of code changed last week"))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN VIBES"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,null,"Billions of"),$0.default.createElement(y,{color:B.claude}," reticulations")),$0.default.createElement(m,null,$0.default.createElement(y,null,"81% of devs "),$0.default.createElement(y,{color:B.bashBorder},"auto-accepting"))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE’S TOP TOOLS"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(De1,{stats:I,width:Q-3})))),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,{color:B.remember},"Press Enter to continue")))}function JI5({onDismiss:A}){let B=$1(),{columns:Q}=G4(),I=[{toolName:"Read",usesTx:"47.5M",usesN:47500000},{toolName:"Edit",usesTx:"39.3M",usesN:39300000},{toolName:"Bash",usesTx:"17.9M",usesN:17900000},{toolName:"Grep",usesTx:"14.7M",usesN:14700000},{toolName:"Write",usesTx:"6.8M",usesN:6800000}];return $0.default.createElement(m,{flexDirection:"column",gap:1,width:Q},$0.default.createElement(Ze1,null),$0.default.createElement(Ye1,null),$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN NUMBERS"),$0.default.createElement(y,null,"115 K ",$0.default.createElement(y,{color:B.remember},"developers")),$0.default.createElement(y,null,"195 M ",$0.default.createElement(y,{color:B.success},"lines of code changed last week")),$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN VIBES"),$0.default.createElement(y,null,"Billions of ",$0.default.createElement(y,{color:B.claude},"reticulations")),$0.default.createElement(y,null,"81% of devs ",$0.default.createElement(y,{color:B.bashBorder},"auto-accepting")),$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE’S TOP TOOLS"),$0.default.createElement(m,null,$0.default.createElement(De1,{stats:I,width:Q})),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,{color:B.remember},"Press Enter to continue")))}function Ze1(){let A=$1();return $0.default.createElement(y,null,$0.default.createElement(y,{color:A.claude},"✻ "),$0.default.createElement(y,null,"Welcome to Claude Code"))}function Ye1(){return $0.default.createElement(m,{flexDirection:"column",gap:1},$0.default.createElement(y,null,"Claude Code is now generally available. Thank you for making it possible \uD83D\uDE4F"),$0.default.createElement(y,null,"Here's a glimpse at all of the community's contributions:"))}var $I=F1(S1(),1);import{homedir as f$2}from"os";function v$2({onDone:A}){let B=$1(),Q=UU(),I=Object.keys(Q).length>0;$I.default.useEffect(()=>{let Z=f$2()===dA();j1("trust_dialog_shown",{isHomeDir:Z,hasMcpServers:I})},[I]);function G(Z){let Y=E9();if(Z==="no")process.exit(1);let W=Z==="yes_enable_mcp",F=f$2()===dA();if(j1("trust_dialog_accept",{isHomeDir:F,hasMcpServers:I,enableMcp:W}),I)_6({...Y,...F?{}:{hasTrustDialogAccepted:!0},...W?{enabledMcpjsonServers:Object.keys(Q),enableAllProjectMcpServers:!0}:{disabledMcpjsonServers:Object.keys(Q)}});else if(!F)_6({...Y,hasTrustDialogAccepted:!0});A()}let D=v2();return J0((Z,Y)=>{if(Y.escape){process.exit(0);return}}),$I.default.createElement($I.default.Fragment,null,$I.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:B.warning},$I.default.createElement(y,{bold:!0,color:B.warning},"Do you trust the files in this folder?"),$I.default.createElement(y,{bold:!0},b1().cwd()),$I.default.createElement(m,{flexDirection:"column",gap:1},$I.default.createElement(y,null,x0," may read files in this folder. Reading untrusted files may lead ",x0," to behave in an unexpected ways."),$I.default.createElement(y,null,"With your permission ",x0," may execute files in this folder.",I&&" This project also contains MCP servers defined in .mcp.json that can execute code on your machine if enabled."," ","Executing untrusted code is unsafe."),$I.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-security"})),$I.default.createElement(A9,{options:I?[{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)=>G(Z),onCancel:()=>G("no")})),$I.default.createElement(m,{marginLeft:3},$I.default.createElement(y,{dimColor:!0},D.pending?$I.default.createElement($I.default.Fragment,null,"Press ",D.keyName," again to exit"):$I.default.createElement($I.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var Fe1=F1(S1(),1);var LZ=F1(S1(),1);function We1({logs:A,onSelect:B}){let{rows:Q,columns:I}=G4(),G=LZ.useMemo(()=>{let X=A.filter((V)=>V.leafUuid).map((V)=>V.leafUuid);return $RA(X)},[A]);if(A.length===0)return null;let D=Q-3,Z=Math.max(0,A.length-D),Y=12,W=12,F=10,J=A.map((X)=>{let V=Mj1(X.modified).padEnd(Y),K=Mj1(X.created).padEnd(W),U=`${X.messageCount}`.padStart(F),N=X.leafUuid&&G.get(X.leafUuid)||X.firstPrompt,q=X.isSidechain?" (sidechain)":"",M=`${V}${K}${U} ${N}${q}`;return{label:M.length>I-2?`${M.slice(0,I-5)}...`:M,value:X.value.toString()}}),C=A.length.toString().length;return LZ.default.createElement(m,{flexDirection:"column",height:Q-1},LZ.default.createElement(m,{paddingLeft:3+C},LZ.default.createElement(y,{bold:!0,color:$1().text},"Modified"),LZ.default.createElement(y,null," "),LZ.default.createElement(y,{bold:!0,color:$1().text},"Created"),LZ.default.createElement(y,null," "),LZ.default.createElement(y,{bold:!0,color:$1().text},"# Messages"),LZ.default.createElement(y,null," "),LZ.default.createElement(y,{bold:!0,color:$1().text},"Summary")),LZ.default.createElement(A9,{options:J,onChange:(X)=>B(parseInt(X,10)),visibleOptionCount:D,onCancel:()=>process.exit(0)}),Z>0&&LZ.default.createElement(m,{paddingLeft:2},LZ.default.createElement(y,{color:$1().secondaryText},"and ",Z," more…")))}var FH1=F1(S1(),1);function b$2({context:A,commands:B,logs:Q,initialTools:I,mcpClients:G,dynamicMcpConfig:D,appState:Z,onChangeAppState:Y,debug:W}){let F=Q.filter((C)=>!C.isSidechain);v2();async function J(C){let X=Q[C];if(!X)return;try{A.unmount?.(),YS(X);let V=GV();await V3(),P8(FH1.default.createElement(FQ,{initialState:Z,onChangeAppState:Y},FH1.default.createElement(gd,{initialPrompt:"",debug:W,shouldShowPromptInput:!0,commands:B,initialTools:I,initialMessages:ee(X.messages,I),initialTodos:V,mcpClients:G,dynamicMcpConfig:D})),{exitOnCtrlC:!1})}catch(V){throw m1(V),V}}return FH1.default.createElement(We1,{logs:F,onSelect:J})}class Je1 extends Ca{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(Ux1,(I)=>this._oninitialize(I)),this.setNotificationHandler($x1,()=>{var I;return(I=this.oninitialized)===null||I===void 0?void 0:I.call(this)})}registerCapabilities(A){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=lI1(this._capabilities,A)}assertCapabilityForMethod(A){var B,Q;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"roots/list":if(!((Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.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:yI1.includes(B)?B:VS,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"},fU)}async createMessage(A,B){return this.request({method:"sampling/createMessage",params:A},Ox1,B)}async listRoots(A,B){return this.request({method:"roots/list",params:A},Sx1,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 g$2 from"node:process";class Ce1{constructor(A=g$2.stdin,B=g$2.stdout){this._stdin=A,this._stdout=B,this._readBuffer=new Xa,this._started=!1,this._ondata=(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()},this._onerror=(Q)=>{var I;(I=this.onerror)===null||I===void 0||I.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=nI1(A);if(this._stdout.write(Q))B();else this._stdout.once("drain",B)})}}process.env.CLAUDE_CODE_ENTRYPOINT="MCP";var h$2={readFileState:{}},m$2=[dK1];async function d$2(A,B,Q){mW(A);let I=new Je1({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.1"}.VERSION},{capabilities:{tools:{}}});I.setRequestHandler(Lx1,async()=>{let D=QV(),Z=Mj(D,VA().todoFeatureEnabled);return{tools:await Promise.all(Z.map(async(Y)=>({...Y,description:await Y.description({},{isNonInteractiveSession:!0,getToolPermissionContext:()=>D,tools:Z}),inputSchema:CS(Y.inputSchema)})))}}),I.setRequestHandler(Rx1,async({params:{name:D,arguments:Z}})=>{let Y=Mj({mode:"default",alwaysAllowRules:{},alwaysDenyRules:{}},VA().todoFeatureEnabled),W=Y.find((F)=>F.name===D);if(!W)throw new Error(`Tool ${D} not found`);try{if(!W.isEnabled())throw new Error(`Tool ${D} is not enabled`);let F=await WQ(),J=await W.validateInput?.(Z??{},{abortController:new AbortController,options:{commands:m$2,tools:Y,mainLoopModel:F,maxThinkingTokens:0,mcpClients:[],isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:QV,removeQueuedCommands:()=>{},readFileState:h$2.readFileState});if(J&&!J.result)throw new Error(`Tool ${D} input is invalid: ${J.message}`);let C=W.call(Z??{},{abortController:new AbortController,options:{commands:m$2,tools:Y,mainLoopModel:await WQ(),maxThinkingTokens:0,mcpClients:[],isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:QV,removeQueuedCommands:()=>{},readFileState:h$2.readFileState},bh,FR({content:[]})),X=await HF(C);if(X.type!=="result")throw new Error(`Tool ${D} 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(F){return m1(F instanceof Error?F:new Error(String(F))),{isError:!0,content:[{type:"text",text:`Error: ${F instanceof Error?F.message:String(F)}`}]}}});async function G(){let D=new Ce1;await I.connect(D)}return await G()}import{join as JH1}from"path";var CI5=30;function p$2(){let Q=(n7().cleanupPeriodDays??CI5)*24*60*60*1000;return new Date(Date.now()-Q)}function XI5(A,B){return{messages:A.messages+B.messages,errors:A.errors+B.errors}}function VI5(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 u$2(A,B,Q){let I={messages:0,errors:0};try{let G=b1().readdirSync(A);for(let D of G)try{if(VI5(D.name)<B)if(b1().unlinkSync(JH1(A,D.name)),Q)I.messages++;else I.errors++}catch(Z){m1(Z)}}catch(G){if(G instanceof Error&&"code"in G&&G.code!=="ENOENT")m1(G)}return I}async function KI5(){let A=b1(),B=p$2(),Q=OX.messages(),I=OX.errors(),G=OX.baseLogs(),D=u$2(I,B,!1);try{if(A.existsSync(Q))A.rmSync(Q,{recursive:!0,force:!0}),D.messages++}catch{D.errors++}try{if(A.existsSync(G)){let Y=A.readdirSync(G).filter((W)=>W.isDirectory()&&W.name.startsWith("mcp-logs-")).map((W)=>JH1(G,W.name));for(let W of Y){D=XI5(D,u$2(W,B,!0));try{if(A.isDirEmptySync(W))A.rmdirSync(W)}catch{}}}}catch(Z){if(Z instanceof Error&&"code"in Z&&Z.code!=="ENOENT")m1(Z)}return D}function HI5(){let A=p$2(),B={messages:0,errors:0},Q=yM1(),I=b1();try{if(!I.existsSync(Q))return B;let D=I.readdirSync(Q).filter((Z)=>Z.isDirectory()).map((Z)=>JH1(Q,Z.name));for(let Z of D)try{let W=I.readdirSync(Z).filter((F)=>F.isFile()&&F.name.endsWith(".jsonl"));for(let F of W)try{let J=JH1(Z,F.name);if(I.statSync(J).mtime<A)I.unlinkSync(J),B.messages++}catch{B.errors++;continue}try{if(I.isDirEmptySync(Z))I.rmdirSync(Z)}catch{B.errors++}}catch{B.errors++;continue}}catch{B.errors++}return B}function c$2(){setImmediate(()=>{KI5(),HI5()}).unref()}var zI5=`
2497
+ `)),zA("prompt"),z0(()=>[])},[X0,e1,zA,z0,d1]);fN2(E1,x4,N9,M1,Z0,X0,B1?.signal,H3,HB),j9.useEffect(()=>{if(zH()>=5&&!m0&&!y9){if(j1("tengu_cost_threshold_reached",{}),h31()&&!process.env.DISABLE_COST_WARNINGS)L0(!0)}},[N1,m0,y9]);let Q7=bN2(E1),QB=j9.useCallback((p1)=>{N((JA)=>({...JA,toolPermissionContext:p1}))},[N]),iB=j9.useCallback((p1,JA,ZA)=>{return{abortController:ZA,options:{commands:a1,tools:o1,debug:B,verbose:X,mainLoopModel:q,maxThinkingTokens:Bj(JA),mcpClients:x1,ideInstallationStatus:Q9,isNonInteractiveSession:!1,dynamicMcpConfig:T},getToolPermissionContext(){return at1},getQueuedCommands(){return kA.current},removeQueuedCommands(NA){z0((rA)=>rA.filter((bA)=>!NA.includes(bA)))},messages:p1,setMessages:t,setMessageHistory:lB,onChangeAPIKey:V2,readFileState:BB.current,setToolJSX:A1,addNotification:w1,setToolPermissionContext:QB,onChangeDynamicMcpConfig:S,nestedMemoryAttachmentTriggers:new Set}},[a1,B,o1,X,q,x1,Q9,T,lB,V2,w1,QB,S,kA,z0]);async function $G(){V2();let p1=UZ();for(let rA of p1)BB.current[rA.path]={content:rA.content,timestamp:Date.now()};if(!Q)return;AA(!0),o4(0);let JA=new AbortController;v1(JA);let{messages:ZA,shouldQuery:NA}=await vd(Q,"prompt",A1,iB(N1,N1,JA),null,PA,void 0);if(ZA.length){for(let fA of ZA)if(fA.type==="user")Yz(Q);if(t((fA)=>[...fA,...ZA]),!NA){v1(null),AA(!1);return}let[rA,bA,sA]=await Promise.all([JS(o1,q),dY(),qw(!1)]);for await(let fA of at([...N1,...ZA],rA,bA,sA,Q7,iB([...N1,...ZA],ZA,JA),K3))Cp1(fA,(iA)=>{t((P2)=>[...P2,iA])},(iA)=>o4((P2)=>P2+iA.length),(iA)=>f1(iA))}else Yz(Q);z8(VA().hasAcknowledgedCostThreshold||!1),AA(!1)}async function RZ(p1,JA,ZA){if(t((iA)=>[...iA,...p1]),o4(0),ZA)fV.handleQueryStart(x1);Ib();let NA=p1[p1.length-1];if(NA?.type==="user"&&typeof NA.message.content==="string")Ow2(NA.message.content);if(!ZA){v1(null),AA(!1);return}let rA=iB([...N1,...p1],p1,JA),[bA,sA,fA]=await Promise.all([JS(o1,q),dY(),qw(!1)]);for await(let iA of at([...N1,...p1],bA,sA,fA,Q7,rA,K3,void 0))Cp1(iA,(P2)=>{t((F2)=>[...F2,P2])},(P2)=>o4((F2)=>F2+P2.length),(P2)=>f1(P2));AA(!1)}zW2(),QV2(N1,N1.length==D?.length),kN2(),j9.useEffect(()=>{if(X0.length<1)return;let p1=VA();T0({...p1,promptQueueUseCount:(p1.promptQueueUseCount??0)+1})},[X0.length]);let I7=!M1&&m0;j9.useEffect(()=>{Op()},[d1,U2]),j9.useEffect(()=>{if(M1)return;if(N1.length<2)return;let p1=setTimeout(()=>{let JA=Date.now()-l21();if(!M1&&I1.length===0&&!o&&!T2&&!I7&&!Z0&&JA>=VA().messageIdleNotifThresholdMs)Gd({message:"Claude is waiting for your input"})},Cr1);return()=>clearTimeout(p1)},[M1,I1.length,o,T2,I7,Z0,N1]),j9.useEffect(()=>{return $G(),()=>{fV.shutdown()}},[]);let z3=j9.useMemo(()=>wQ(N1).filter(F_),[N1]),RD=j9.useMemo(()=>wQ(_1).filter(F_),[_1]),OD=j9.useMemo(()=>wN(z3),[z3]),TD=j9.useMemo(()=>hF1(z3),[z3]),IB=j9.useMemo(()=>ir(z3),[z3]),OZ=j9.useCallback((p1)=>{T2?.resolve(p1),setTimeout(()=>x4(null),0)},[T2]);A$2(async(p1)=>{Y1((JA)=>JA+1),n(p1),await V3()});let[O1,R1]=j9.useState(!1);if(f==="transcript")return p4.createElement(p4.Fragment,null,p4.createElement(nt1,{messages:N1,normalizedMessageHistory:RD,tools:o1,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],isMessageSelectorVisible:!1,tipOfTheDay:void 0,conversationId:H0,screen:f,screenToggleId:g}),p4.createElement(m,{alignItems:"center",alignSelf:"center",borderTopColor:$1().secondaryBorder,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%"},p4.createElement(y,{dimColor:!0},"Showing detailed transcript · Ctrl+R to toggle")));return p4.createElement(p4.Fragment,null,p4.createElement(nt1,{messages:N1,normalizedMessageHistory:RD,tools:o1,verbose:X,toolJSX:o,toolUseConfirmQueue:I1,isMessageSelectorVisible:Z0,tipOfTheDay:Y,conversationId:H0,screen:f,screenToggleId:g}),p4.createElement(m,{flexDirection:"column",width:"100%"},!o&&I1.length===0&&!T2&&M1&&p4.createElement(vK1,{mode:FA,haikuWords:f0,currentResponseLength:B9}),o?o.jsx:null,!1,!o&&I1[0]!==void 0&&!Z0&&!T2&&p4.createElement(ez2,{onDone:()=>E1(([p1,...JA])=>JA),onReject:H3,setToolPermissionContext:QB,toolUseConfirm:I1[0],toolUseContext:iB(N1,N1,B1??new AbortController),verbose:X}),!o&&I1.length===0&&!Z0&&!T2&&I7&&p4.createElement(IQ0,{onDone:()=>{L0(!1),z8(!0);let p1=VA();T0({...p1,hasAcknowledgedCostThreshold:!0}),j1("tengu_cost_threshold_acknowledged",{})}}),O1&&p4.createElement(x71,{onDone:async()=>{await cW(0)}}),w8&&p4.createElement(XD0,{onDone:()=>u3(!1),installedVersion:Q9?.installedVersion??null}),I1.length===0&&!o?.shouldHidePromptInput&&I&&!Z0&&!T2&&!I7&&!O1&&!w8&&p4.createElement(p4.Fragment,null,p4.createElement(jN2,{debug:B,ideSelection:PA,getToolUseContext:iB,toolPermissionContext:C,setToolPermissionContext:QB,apiKeyStatus:OQ,commands:a1,isLoading:M1,onExit:async()=>{if(!await gt1(N1)){await cW(0);return}R1(!0)},onQuery:RZ,verbose:X,messages:N1,setToolJSX:A1,onAutoUpdaterResult:OA,autoUpdaterResult:UA,input:d1,onInputChange:E6,mode:IA,onModeChange:zA,queuedCommands:X0,setQueuedCommands:z0,submitCount:U2,onSubmitCountChange:(p1)=>{return cA(null),g2(p1)},setIsLoading:AA,setAbortController:v1,onShowMessageSelector:()=>h0((p1)=>!p1),notification:r,addNotification:w1,mcpClients:H1,pastedImagesFromSelector:s2,vimMode:HB,setVimMode:w6,ideInstallationStatus:Q9}))),Z0&&p4.createElement(IV2,{erroredToolUseIDs:IB,unresolvedToolUseIDs:OD,messages:N1,onSelect:async(p1)=>{if(h0(!1),!N1.includes(p1))return;N9(),setImmediate(async()=>{await V3();let JA=N1.indexOf(p1),ZA=N1.slice(0,JA);if(t([...ZA]),j2(st1()),typeof p1.message.content==="string"){let NA=JG(p1.message.content,"bash-input");if(NA)e1(NA),zA("bash");else e1(p1.message.content),zA("prompt")}else if(Array.isArray(p1.message.content)&&p1.message.content.length>=2&&p1.message.content.some((NA)=>NA.type==="image")&&p1.message.content.some((NA)=>NA.type==="text")){let NA=p1.message.content.find((bA)=>bA.type==="text");if(NA&&NA.type==="text")e1(NA.text),zA("prompt");let rA=p1.message.content.filter((bA)=>bA.type==="image");if(rA.length>0){let bA=rA.flatMap((sA)=>sA.source.type==="base64"?[sA.source.data]:[]);Q2(bA)}}})},onEscape:()=>h0(!1),tools:o1}),!w8&&p4.createElement(QG,null))}var q$2=F1($$2(),1),{program:aIB,createCommand:sIB,createArgument:rIB,createOption:oIB,CommanderError:tIB,InvalidArgumentError:eIB,InvalidOptionArgumentError:AGB,Command:M$2,Argument:BGB,Option:hd,Help:QGB}=q$2.default;var QI5=i.object({behavior:i.literal("allow"),updatedInput:i.record(i.unknown())}),II5=i.object({behavior:i.literal("deny"),message:i.string()}),L$2=i.union([QI5,II5]);function R$2(A,B){let Q={type:"permissionPromptTool",permissionPromptToolName:B,toolResult:A};switch(A.behavior){case"allow":return{...A,decisionReason:Q};case"deny":return{...A,decisionReason:Q,ruleSuggestions:null}}}import{randomUUID as O$2}from"node:crypto";async function*P$2({commands:A,permissionContext:B,prompt:Q,cwd:I,tools:G,mcpClients:D,verbose:Z=!1,maxTurns:Y,permissionPromptTool:W,initialMessages:F=[],customSystemPrompt:J,appendSystemPrompt:C,userSpecifiedModel:X}){mW(I);let V=Date.now(),K=G.filter((w1)=>w1!==W),U=X?gP(X):await WQ(),[N,q,M]=await Promise.all([JS(K,U),dY(),qw(!0)]),R=[...J?[J]:N,...C?[C]:[]],T=GI5(F),O={messages:T,setMessages:()=>{},onChangeAPIKey:()=>{},options:{commands:A,debug:!1,tools:K,verbose:Z,mainLoopModel:U,maxThinkingTokens:Bj(T),mcpClients:D,ideInstallationStatus:null,isNonInteractiveSession:!0},getToolPermissionContext:()=>B,getQueuedCommands:()=>[],removeQueuedCommands:()=>{},abortController:new AbortController,readFileState:{},setToolPermissionContext:()=>{}},S=[...T,...(await vd(Q,"prompt",()=>{},{...O,messages:T},null,null)).messages],f=Bj(T);if(f>0)O={messages:S,setMessages:()=>{},onChangeAPIKey:()=>{},options:{commands:A,debug:!1,tools:K,verbose:Z,mainLoopModel:U,maxThinkingTokens:f,mcpClients:D,ideInstallationStatus:null,isNonInteractiveSession:!0},getToolPermissionContext:()=>B,abortController:new AbortController,readFileState:{},setToolPermissionContext:()=>{},getQueuedCommands:()=>[],removeQueuedCommands:()=>{}};let n=async(w1,H1,x,J1)=>{let x1=await bh(w1,H1,x,J1);if(x1.behavior==="allow"||x1.behavior==="deny")return x1;if(W)for await(let o1 of W.call({tool_name:w1.name,input:H1},x,n,J1)){if(o1.type!=="result")continue;let a1=W.mapToolResultToToolResultBlockParam(o1.data,"1");if(!a1.content||!Array.isArray(a1.content)||!a1.content[0]||a1.content[0].type!=="text"||typeof a1.content[0].text!=="string")throw new Error('Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.');return R$2(L$2.parse(D8(a1.content[0].text)),W.name)}return x1};yield{type:"system",subtype:"init",session_id:Q5,tools:K.map((w1)=>w1.name),mcp_servers:D.map((w1)=>({name:w1.name,status:w1.type}))};let g=0;for await(let w1 of oX1(S,R,q,M,n,O)){switch(S.push(w1),f41(S),w1.type){case"assistant":yield*T$2(w1);break;case"user":yield*T$2(w1);break;case"progress":case"attachment":break}if(w1.type==="user"&&Y&&++g>=Y){yield{type:"result",subtype:"error_max_turns",cost_usd:zH(),duration_ms:Date.now()-V,duration_api_ms:Uk(),is_error:!1,num_turns:g,session_id:Q5,total_cost:zH()};return}}let Y1=eZ(S);if(!Y1||Y1.type!=="assistant")throw new Error(`Expected content to be an assistant message, but got ${JSON.stringify(Y1?.type,null,2)}`);let r=eZ(Y1.message.content);if(r?.type!=="text"&&r?.type!=="thinking"&&r?.type!=="redacted_thinking")throw new Error(`Expected first content item to be text or thinking, but got ${JSON.stringify(Y1.message.content[0],null,2)}`);yield{type:"result",subtype:"success",cost_usd:zH(),is_error:Boolean(Y1.isApiErrorMessage),duration_ms:Date.now()-V,duration_api_ms:Uk(),num_turns:S.length-1,result:r.type==="text"?r.text:"",total_cost:zH(),session_id:Q5}}function*T$2(A){switch(A.type){case"assistant":for(let B of wQ([A]))yield{type:"assistant",message:B.message,session_id:Q5};break;case"user":for(let B of wQ([A]))yield{type:"user",message:B.message,session_id:Q5};break;default:}}function GI5(A){return A.flatMap((B)=>{switch(B.type){case"assistant":return[{type:"assistant",message:B.message,costUSD:0,durationMs:0,uuid:O$2(),timestamp:new Date().toISOString()}];case"user":return[{type:"user",message:B.message,uuid:O$2(),timestamp:new Date().toISOString()}];default:return[]}})}function S$2(A){return A.flatMap((B)=>{switch(B.type){case"assistant":return[{type:"assistant",message:B.message,session_id:Q5}];case"user":return[{type:"user",message:B.message,session_id:Q5}];default:return[]}})}var NG=F1(S1(),1);function _$2({servers:A,scope:B,onDone:Q}){let I=$1(),G=Object.keys(A),D=NG.useMemo(()=>KV(),[]),Z=G.filter((F)=>D[F]!==void 0);function Y(F){let J=0;for(let C of F){let X=A[C];if(X){let V=C;if(D[V]!==void 0){let K=1;while(D[`${C}_${K}`]!==void 0)K++;V=`${C}_${K}`}_b(V,X,B),J++}}Q(J)}let W=v2();return J0((F,J)=>{if(J.escape){Q(0);return}}),NG.default.createElement(NG.default.Fragment,null,NG.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:I.success},NG.default.createElement(y,{bold:!0,color:I.success},"Import MCP Servers from Claude Desktop"),NG.default.createElement(y,null,"Found ",G.length," MCP server",G.length!==1?"s":""," in Claude Desktop."),Z.length>0&&NG.default.createElement(y,{color:I.warning},"Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."),NG.default.createElement(y,null,"Please select the servers you want to import:"),NG.default.createElement(V71,{options:G.map((F)=>({label:`${F}${Z.includes(F)?" (already exists)":""}`,value:F})),defaultValue:G.filter((F)=>!Z.includes(F)),onSubmit:Y})),NG.default.createElement(m,{marginLeft:3},NG.default.createElement(y,{dimColor:!0},W.pending?NG.default.createElement(NG.default.Fragment,null,"Press ",W.keyName," again to exit"):NG.default.createElement(NG.default.Fragment,null,"Space to select · Enter to confirm · Esc to cancel"))))}import*as Ge1 from"path";import*as j$2 from"os";function DI5(){let A=NJ();if(!LM1.includes(A))throw new Error(`Unsupported platform: ${A} - Claude Desktop integration only works on macOS and WSL.`);if(A==="macos")return Ge1.join(j$2.homedir(),"Library","Application Support","Claude","claude_desktop_config.json");let B=process.env.USERPROFILE?process.env.USERPROFILE.replace(/\\/g,"/"):null;if(B){let I=`/mnt/c${B.replace(/^[A-Z]:/,"")}/AppData/Roaming/Claude/claude_desktop_config.json`;if(b1().existsSync(I))return I}try{if(b1().existsSync("/mnt/c/Users")){let I=b1().readdirSync("/mnt/c/Users");for(let G of I){if(G.name==="Public"||G.name==="Default"||G.name==="Default User"||G.name==="All Users")continue;let D=Ge1.join("/mnt/c/Users",G.name,"AppData","Roaming","Claude","claude_desktop_config.json");if(b1().existsSync(D))return D}}}catch(Q){m1(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 y$2(){if(!LM1.includes(NJ()))throw new Error("Unsupported platform - Claude Desktop integration only works on macOS and WSL.");try{let A=DI5();if(!b1().existsSync(A))return{};let B=b1().readFileSync(A,{encoding:"utf8"}),Q=D8(B);if(!Q||typeof Q!=="object")return{};let I=Q.mcpServers;if(!I||typeof I!=="object")return{};let G={};for(let[D,Z]of Object.entries(I)){if(!Z||typeof Z!=="object")continue;let Y=xj1.safeParse(Z);if(Y.success)G[D]=Y.data}return G}catch(A){return m1(A instanceof Error?A:new Error(String(A))),{}}}import{cwd as GO}from"process";function ZI5(A,B,Q){if(Q.type!=="assistant")return;if(!Array.isArray(Q.message.content))return;for(let I of Q.message.content){if(I.type!=="tool_use")continue;let G=A.find((D)=>D.name===I.name);if(G)B.set(I.id,G)}}function ee(A,B){try{let Q=Ru0(A);if(Q[Q.length-1]?.type==="user")Q.push(FR({content:cr}));let G=new Map;for(let D of Q)ZI5(B,G,D);return Q}catch(Q){throw m1(Q),Q}}var $0=F1(S1(),1);import{join as k$2}from"path";function WH1(){let A=b1(),B=dA(),Q=k$2(S5,"projects",B.replace(/[^a-zA-Z0-9]/g,"-"));if(!A.existsSync(Q))return!1;let G=A.readdirSync(Q).filter((Z)=>Z.name.endsWith(".jsonl")).map((Z)=>k$2(Q,Z.name));if(G.length===0)return!1;let D=new Date("2025-05-12");for(let Z of G)try{if(A.statSync(Z).birthtime<D)return!0}catch{continue}return!1}function x$2({onDismiss:A}){let{columns:B}=G4();if($0.default.useEffect(()=>{j1("tengu_ga_announcement_shown",{})},[]),$0.default.useEffect(()=>{let Q=()=>{A()};return process.stdin.on("data",Q),()=>{process.stdin.off("data",Q)}},[A]),B<50)return $0.default.createElement(JI5,{onDismiss:A});else if(B<84)return $0.default.createElement(FI5,{onDismiss:A});else return $0.default.createElement(YI5,{onDismiss:A})}function YI5({onDismiss:A}){let B=$1(),{columns:Q}=G4(),I=[{toolName:"Read",usesTx:"47.5M",usesN:47500000},{toolName:"Edit",usesTx:"39.3M",usesN:39300000},{toolName:"Bash",usesTx:"17.9M",usesN:17900000},{toolName:"Grep",usesTx:"14.7M",usesN:14700000},{toolName:"Write",usesTx:"6.8M",usesN:6800000}];return $0.default.createElement(m,{flexDirection:"column",gap:1,width:Q},$0.default.createElement(m,{borderStyle:"round",borderColor:B.claude,paddingLeft:1,paddingRight:1},$0.default.createElement(Ze1,null)),$0.default.createElement(m,null,$0.default.createElement(Ye1,null)),$0.default.createElement(m,{gap:1,flexDirection:"row"},$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1,flexGrow:1,flexBasis:0},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN NUMBERS"),$0.default.createElement(m,{flexDirection:"column",marginTop:1},$0.default.createElement(m,null,$0.default.createElement(y,null,"115 K ",$0.default.createElement(y,{color:B.remember},"developers"))),$0.default.createElement(m,null,$0.default.createElement(y,null,"195 M "),$0.default.createElement(y,{color:B.success},"lines of code changed last week")))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1,flexGrow:1,flexBasis:0},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN VIBES"),$0.default.createElement(m,{flexDirection:"column",marginTop:1},$0.default.createElement(m,null,$0.default.createElement(y,null,"Billions of"),$0.default.createElement(y,{color:B.claude}," reticulations")),$0.default.createElement(m,null,$0.default.createElement(y,null,"81% of devs "),$0.default.createElement(y,{color:B.bashBorder},"auto-accepting"))))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE’S TOP TOOLS"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(De1,{stats:I,width:Q-3}))),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,{color:B.remember},"Press Enter to continue")))}function De1({stats:A,width:B}){let Q=Math.max(...A.map((Z)=>Z.usesN)),G=Math.max(...A.map((Z)=>Z.toolName.length))+5,D=B-G-2;return $0.default.createElement(m,{flexDirection:"column",gap:1},A.map((Z,Y)=>{let W=" ".repeat(G-Z.toolName.length),F=Z.usesN/Q;return $0.default.createElement(m,{key:Y,flexDirection:"row"},$0.default.createElement(y,null,Z.toolName,":",W,$0.default.createElement(WI5,{width:D,percent:F,text:Z.usesTx})))}))}function WI5({width:A,percent:B,text:Q}){let I=$1(),{theme:G}=VA(),D=G.startsWith("dark")?"rgb(30, 30, 30)":"rgb(220, 220, 220)",Z=Math.ceil(A*B),Y=A-Z,W=Math.max(0,Z-Q.length-1),F=" "+Q+" ".repeat(W),J=" ".repeat(Math.max(0,Y)),C=$0.default.createElement(y,{backgroundColor:I.claude},F);return $0.default.createElement(y,null,C,$0.default.createElement(y,{backgroundColor:D},J))}function FI5({onDismiss:A}){let B=$1(),{columns:Q}=G4(),I=[{toolName:"Read",usesTx:"47.5M",usesN:47500000},{toolName:"Edit",usesTx:"39.3M",usesN:39300000},{toolName:"Bash",usesTx:"17.9M",usesN:17900000},{toolName:"Grep",usesTx:"14.7M",usesN:14700000},{toolName:"Write",usesTx:"6.8M",usesN:6800000}];return $0.default.createElement(m,{flexDirection:"column",gap:1,width:Q},$0.default.createElement(m,{borderStyle:"round",borderColor:B.claude,paddingLeft:1,paddingRight:1},$0.default.createElement(Ze1,null)),$0.default.createElement(m,null,$0.default.createElement(Ye1,null)),$0.default.createElement(m,{flexDirection:"column",gap:1},$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN NUMBERS"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,null,"115 K ",$0.default.createElement(y,{color:B.remember},"developers"))),$0.default.createElement(m,null,$0.default.createElement(y,null,"195 M "),$0.default.createElement(y,{color:B.success},"lines of code changed last week"))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN VIBES"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,null,"Billions of"),$0.default.createElement(y,{color:B.claude}," reticulations")),$0.default.createElement(m,null,$0.default.createElement(y,null,"81% of devs "),$0.default.createElement(y,{color:B.bashBorder},"auto-accepting"))),$0.default.createElement(m,{borderStyle:"round",borderColor:B.secondaryBorder,flexDirection:"column",paddingLeft:1,paddingRight:1},$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE’S TOP TOOLS"),$0.default.createElement(m,{marginTop:1},$0.default.createElement(De1,{stats:I,width:Q-3})))),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,{color:B.remember},"Press Enter to continue")))}function JI5({onDismiss:A}){let B=$1(),{columns:Q}=G4(),I=[{toolName:"Read",usesTx:"47.5M",usesN:47500000},{toolName:"Edit",usesTx:"39.3M",usesN:39300000},{toolName:"Bash",usesTx:"17.9M",usesN:17900000},{toolName:"Grep",usesTx:"14.7M",usesN:14700000},{toolName:"Write",usesTx:"6.8M",usesN:6800000}];return $0.default.createElement(m,{flexDirection:"column",gap:1,width:Q},$0.default.createElement(Ze1,null),$0.default.createElement(Ye1,null),$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN NUMBERS"),$0.default.createElement(y,null,"115 K ",$0.default.createElement(y,{color:B.remember},"developers")),$0.default.createElement(y,null,"195 M ",$0.default.createElement(y,{color:B.success},"lines of code changed last week")),$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE CODE IN VIBES"),$0.default.createElement(y,null,"Billions of ",$0.default.createElement(y,{color:B.claude},"reticulations")),$0.default.createElement(y,null,"81% of devs ",$0.default.createElement(y,{color:B.bashBorder},"auto-accepting")),$0.default.createElement(y,{bold:!0,color:B.text},"CLAUDE’S TOP TOOLS"),$0.default.createElement(m,null,$0.default.createElement(De1,{stats:I,width:Q})),$0.default.createElement(m,{marginTop:1},$0.default.createElement(y,{color:B.remember},"Press Enter to continue")))}function Ze1(){let A=$1();return $0.default.createElement(y,null,$0.default.createElement(y,{color:A.claude},"✻ "),$0.default.createElement(y,null,"Welcome to Claude Code"))}function Ye1(){return $0.default.createElement(m,{flexDirection:"column",gap:1},$0.default.createElement(y,null,"Claude Code is now generally available. Thank you for making it possible \uD83D\uDE4F"),$0.default.createElement(y,null,"Here's a glimpse at all of the community's contributions:"))}var $I=F1(S1(),1);import{homedir as f$2}from"os";function v$2({onDone:A}){let B=$1(),Q=UU(),I=Object.keys(Q).length>0;$I.default.useEffect(()=>{let Z=f$2()===dA();j1("trust_dialog_shown",{isHomeDir:Z,hasMcpServers:I})},[I]);function G(Z){let Y=E9();if(Z==="no")process.exit(1);let W=Z==="yes_enable_mcp",F=f$2()===dA();if(j1("trust_dialog_accept",{isHomeDir:F,hasMcpServers:I,enableMcp:W}),I)_6({...Y,...F?{}:{hasTrustDialogAccepted:!0},...W?{enabledMcpjsonServers:Object.keys(Q),enableAllProjectMcpServers:!0}:{disabledMcpjsonServers:Object.keys(Q)}});else if(!F)_6({...Y,hasTrustDialogAccepted:!0});A()}let D=v2();return J0((Z,Y)=>{if(Y.escape){process.exit(0);return}}),$I.default.createElement($I.default.Fragment,null,$I.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:B.warning},$I.default.createElement(y,{bold:!0,color:B.warning},"Do you trust the files in this folder?"),$I.default.createElement(y,{bold:!0},b1().cwd()),$I.default.createElement(m,{flexDirection:"column",gap:1},$I.default.createElement(y,null,x0," may read files in this folder. Reading untrusted files may lead ",x0," to behave in an unexpected ways."),$I.default.createElement(y,null,"With your permission ",x0," may execute files in this folder.",I&&" This project also contains MCP servers defined in .mcp.json that can execute code on your machine if enabled."," ","Executing untrusted code is unsafe."),$I.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-security"})),$I.default.createElement(A9,{options:I?[{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)=>G(Z),onCancel:()=>G("no")})),$I.default.createElement(m,{marginLeft:3},$I.default.createElement(y,{dimColor:!0},D.pending?$I.default.createElement($I.default.Fragment,null,"Press ",D.keyName," again to exit"):$I.default.createElement($I.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var Fe1=F1(S1(),1);var LZ=F1(S1(),1);function We1({logs:A,onSelect:B}){let{rows:Q,columns:I}=G4(),G=LZ.useMemo(()=>{let X=A.filter((V)=>V.leafUuid).map((V)=>V.leafUuid);return $RA(X)},[A]);if(A.length===0)return null;let D=Q-3,Z=Math.max(0,A.length-D),Y=12,W=12,F=10,J=A.map((X)=>{let V=Mj1(X.modified).padEnd(Y),K=Mj1(X.created).padEnd(W),U=`${X.messageCount}`.padStart(F),N=X.leafUuid&&G.get(X.leafUuid)||X.firstPrompt,q=X.isSidechain?" (sidechain)":"",M=`${V}${K}${U} ${N}${q}`;return{label:M.length>I-2?`${M.slice(0,I-5)}...`:M,value:X.value.toString()}}),C=A.length.toString().length;return LZ.default.createElement(m,{flexDirection:"column",height:Q-1},LZ.default.createElement(m,{paddingLeft:3+C},LZ.default.createElement(y,{bold:!0,color:$1().text},"Modified"),LZ.default.createElement(y,null," "),LZ.default.createElement(y,{bold:!0,color:$1().text},"Created"),LZ.default.createElement(y,null," "),LZ.default.createElement(y,{bold:!0,color:$1().text},"# Messages"),LZ.default.createElement(y,null," "),LZ.default.createElement(y,{bold:!0,color:$1().text},"Summary")),LZ.default.createElement(A9,{options:J,onChange:(X)=>B(parseInt(X,10)),visibleOptionCount:D,onCancel:()=>process.exit(0)}),Z>0&&LZ.default.createElement(m,{paddingLeft:2},LZ.default.createElement(y,{color:$1().secondaryText},"and ",Z," more…")))}var FH1=F1(S1(),1);function b$2({context:A,commands:B,logs:Q,initialTools:I,mcpClients:G,dynamicMcpConfig:D,appState:Z,onChangeAppState:Y,debug:W}){let F=Q.filter((C)=>!C.isSidechain);v2();async function J(C){let X=Q[C];if(!X)return;try{A.unmount?.(),YS(X);let V=GV();await V3(),P8(FH1.default.createElement(FQ,{initialState:Z,onChangeAppState:Y},FH1.default.createElement(gd,{initialPrompt:"",debug:W,shouldShowPromptInput:!0,commands:B,initialTools:I,initialMessages:ee(X.messages,I),initialTodos:V,mcpClients:G,dynamicMcpConfig:D})),{exitOnCtrlC:!1})}catch(V){throw m1(V),V}}return FH1.default.createElement(We1,{logs:F,onSelect:J})}class Je1 extends Ca{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(Ux1,(I)=>this._oninitialize(I)),this.setNotificationHandler($x1,()=>{var I;return(I=this.oninitialized)===null||I===void 0?void 0:I.call(this)})}registerCapabilities(A){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=lI1(this._capabilities,A)}assertCapabilityForMethod(A){var B,Q;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"roots/list":if(!((Q=this._clientCapabilities)===null||Q===void 0?void 0:Q.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:yI1.includes(B)?B:VS,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"},fU)}async createMessage(A,B){return this.request({method:"sampling/createMessage",params:A},Ox1,B)}async listRoots(A,B){return this.request({method:"roots/list",params:A},Sx1,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 g$2 from"node:process";class Ce1{constructor(A=g$2.stdin,B=g$2.stdout){this._stdin=A,this._stdout=B,this._readBuffer=new Xa,this._started=!1,this._ondata=(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()},this._onerror=(Q)=>{var I;(I=this.onerror)===null||I===void 0||I.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=nI1(A);if(this._stdout.write(Q))B();else this._stdout.once("drain",B)})}}process.env.CLAUDE_CODE_ENTRYPOINT="MCP";var h$2={readFileState:{}},m$2=[dK1];async function d$2(A,B,Q){mW(A);let I=new Je1({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.2"}.VERSION},{capabilities:{tools:{}}});I.setRequestHandler(Lx1,async()=>{let D=QV(),Z=Mj(D,VA().todoFeatureEnabled);return{tools:await Promise.all(Z.map(async(Y)=>({...Y,description:await Y.description({},{isNonInteractiveSession:!0,getToolPermissionContext:()=>D,tools:Z}),inputSchema:CS(Y.inputSchema)})))}}),I.setRequestHandler(Rx1,async({params:{name:D,arguments:Z}})=>{let Y=Mj({mode:"default",alwaysAllowRules:{},alwaysDenyRules:{}},VA().todoFeatureEnabled),W=Y.find((F)=>F.name===D);if(!W)throw new Error(`Tool ${D} not found`);try{if(!W.isEnabled())throw new Error(`Tool ${D} is not enabled`);let F=await WQ(),J=await W.validateInput?.(Z??{},{abortController:new AbortController,options:{commands:m$2,tools:Y,mainLoopModel:F,maxThinkingTokens:0,mcpClients:[],isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:QV,removeQueuedCommands:()=>{},readFileState:h$2.readFileState});if(J&&!J.result)throw new Error(`Tool ${D} input is invalid: ${J.message}`);let C=W.call(Z??{},{abortController:new AbortController,options:{commands:m$2,tools:Y,mainLoopModel:await WQ(),maxThinkingTokens:0,mcpClients:[],isNonInteractiveSession:!0,debug:B,verbose:Q},getQueuedCommands:()=>[],getToolPermissionContext:QV,removeQueuedCommands:()=>{},readFileState:h$2.readFileState},bh,FR({content:[]})),X=await HF(C);if(X.type!=="result")throw new Error(`Tool ${D} 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(F){return m1(F instanceof Error?F:new Error(String(F))),{isError:!0,content:[{type:"text",text:`Error: ${F instanceof Error?F.message:String(F)}`}]}}});async function G(){let D=new Ce1;await I.connect(D)}return await G()}import{join as JH1}from"path";var CI5=30;function p$2(){let Q=(n7().cleanupPeriodDays??CI5)*24*60*60*1000;return new Date(Date.now()-Q)}function XI5(A,B){return{messages:A.messages+B.messages,errors:A.errors+B.errors}}function VI5(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 u$2(A,B,Q){let I={messages:0,errors:0};try{let G=b1().readdirSync(A);for(let D of G)try{if(VI5(D.name)<B)if(b1().unlinkSync(JH1(A,D.name)),Q)I.messages++;else I.errors++}catch(Z){m1(Z)}}catch(G){if(G instanceof Error&&"code"in G&&G.code!=="ENOENT")m1(G)}return I}async function KI5(){let A=b1(),B=p$2(),Q=OX.messages(),I=OX.errors(),G=OX.baseLogs(),D=u$2(I,B,!1);try{if(A.existsSync(Q))A.rmSync(Q,{recursive:!0,force:!0}),D.messages++}catch{D.errors++}try{if(A.existsSync(G)){let Y=A.readdirSync(G).filter((W)=>W.isDirectory()&&W.name.startsWith("mcp-logs-")).map((W)=>JH1(G,W.name));for(let W of Y){D=XI5(D,u$2(W,B,!0));try{if(A.isDirEmptySync(W))A.rmdirSync(W)}catch{}}}}catch(Z){if(Z instanceof Error&&"code"in Z&&Z.code!=="ENOENT")m1(Z)}return D}function HI5(){let A=p$2(),B={messages:0,errors:0},Q=yM1(),I=b1();try{if(!I.existsSync(Q))return B;let D=I.readdirSync(Q).filter((Z)=>Z.isDirectory()).map((Z)=>JH1(Q,Z.name));for(let Z of D)try{let W=I.readdirSync(Z).filter((F)=>F.isFile()&&F.name.endsWith(".jsonl"));for(let F of W)try{let J=JH1(Z,F.name);if(I.statSync(J).mtime<A)I.unlinkSync(J),B.messages++}catch{B.errors++;continue}try{if(I.isDirEmptySync(Z))I.rmdirSync(Z)}catch{B.errors++}}catch{B.errors++;continue}}catch{B.errors++}return B}function c$2(){setImmediate(()=>{KI5(),HI5()}).unref()}var zI5=`
2498
2498
  Summarize this coding conversation in under 50 characters.
2499
2499
  Capture the main task, key files, problems addressed, and current status.
2500
2500
  `.trim();async function wI5(A){if(!A.length)throw new Error("Can't summarize empty conversation");let Q=[`Please write a 5-10 word title the following conversation:
@@ -2504,11 +2504,11 @@ ${wQ(A).map((G)=>{if(G.type==="user"){if(typeof G.message.content==="string")ret
2504
2504
 
2505
2505
  `)}
2506
2506
  `,"Respond with the title for the conversation and nothing else."];return(await KD({systemPrompt:[zI5],userPrompt:Q.join(`
2507
- `),enablePromptCaching:!0,isNonInteractiveSession:!1})).message.content.filter((G)=>G.type==="text").map((G)=>G.text).join("")}async function l$2(){let A=qRA();if(A.length===0)return;for(let B of A){let Q=B[B.length-1],I=await wI5(B);try{if(I)NRA(Q.uuid,I)}catch(G){m1(G instanceof Error?G:new Error(String(G)))}}}import{resolve as LI5}from"path";var A11=F1(S1(),1);var BW=F1(S1(),1);var Xe1=F1(S1(),1);function CH1(){return Xe1.default.createElement(y,null,"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",Xe1.default.createElement(GS,{url:"https://docs.anthropic.com/s/claude-code-mcp"},"MCP documentation"),".")}function i$2({serverNames:A,onDone:B}){let Q=$1();function I(D){let Z=E9();if(!Z.enabledMcpjsonServers)Z.enabledMcpjsonServers=[];if(!Z.disabledMcpjsonServers)Z.disabledMcpjsonServers=[];let[Y,W]=TU1(A,(F)=>D.includes(F));j1("tengu_mcp_multidialog_choice",{approved:Y.length,rejected:W.length}),Z.enabledMcpjsonServers.push(...Y),Z.disabledMcpjsonServers.push(...W),_6(Z),B()}let G=v2();return J0((D,Z)=>{if(Z.escape){let Y=E9();if(!Y.disabledMcpjsonServers)Y.disabledMcpjsonServers=[];for(let W of A)if(!Y.disabledMcpjsonServers.includes(W))Y.disabledMcpjsonServers.push(W);_6(Y),B();return}}),BW.default.createElement(BW.default.Fragment,null,BW.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Q.warning},BW.default.createElement(y,{bold:!0,color:Q.warning},A.length," new MCP servers found in .mcp.json"),BW.default.createElement(y,null,"Select any you wish to enable."),BW.default.createElement(CH1,null),BW.default.createElement(V71,{options:A.map((D)=>({label:D,value:D})),defaultValue:A,onSubmit:I})),BW.default.createElement(m,{marginLeft:3},BW.default.createElement(y,{dimColor:!0},G.pending?BW.default.createElement(BW.default.Fragment,null,"Press ",G.keyName," again to exit"):BW.default.createElement(BW.default.Fragment,null,"Space to select · Enter to confirm · Esc to reject all"))))}var jF=F1(S1(),1);function n$2({serverName:A,onDone:B}){let Q=$1();function I(D){let Z=E9();switch(j1("tengu_mcp_dialog_choice",{choice:D}),D){case"yes":case"yes_all":{if(!Z.enabledMcpjsonServers)Z.enabledMcpjsonServers=[];if(!Z.enabledMcpjsonServers.includes(A))Z.enabledMcpjsonServers.push(A);if(D==="yes_all")Z.enableAllProjectMcpServers=!0;_6(Z),B();break}case"no":{if(!Z.disabledMcpjsonServers)Z.disabledMcpjsonServers=[];if(!Z.disabledMcpjsonServers.includes(A))Z.disabledMcpjsonServers.push(A);_6(Z),B();break}}}let G=v2();return J0((D,Z)=>{if(Z.escape){B();return}}),jF.default.createElement(jF.default.Fragment,null,jF.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Q.warning},jF.default.createElement(y,{bold:!0,color:Q.warning},"New MCP server found in .mcp.json: ",A),jF.default.createElement(CH1,null),jF.default.createElement(A9,{options:[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],onChange:(D)=>I(D),onCancel:()=>I("no")})),jF.default.createElement(m,{marginLeft:3},jF.default.createElement(y,{dimColor:!0},G.pending?jF.default.createElement(jF.default.Fragment,null,"Press ",G.keyName," again to exit"):jF.default.createElement(jF.default.Fragment,null,"Enter to confirm · Esc to reject"))))}async function a$2(){let A=UU(),B=Object.keys(A).filter((Q)=>Ff1(Q)==="pending");if(B.length===0)return;await new Promise((Q)=>{let I=()=>{process.stdout.write("\x1B[2J\x1B[3J\x1B[H",()=>{Q()})};if(B.length===1&&B[0]!==void 0){let G=P8(A11.default.createElement(FQ,null,A11.default.createElement(n$2,{serverName:B[0],onDone:()=>{G.unmount?.(),I()}})),{exitOnCtrlC:!1})}else{let G=P8(A11.default.createElement(FQ,null,A11.default.createElement(i$2,{serverNames:B,onDone:()=>{G.unmount?.(),I()}})),{exitOnCtrlC:!1})}})}var qI=F1(S1(),1);function s$2({onAccept:A}){let B=$1();qI.default.useEffect(()=>{j1("bypass_permissions_mode_dialog_shown",{})},[]);function Q(G){let D=VA();switch(G){case"accept":{j1("bypass_permissions_mode_dialog_accept",{}),T0({...D,bypassPermissionsModeAccepted:!0}),A();break}case"decline":{process.exit(1);break}}}let I=v2();return J0((G,D)=>{if(D.escape){process.exit(0);return}}),qI.default.createElement(qI.default.Fragment,null,qI.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:B.error},qI.default.createElement(y,{bold:!0,color:B.error},"WARNING: ",x0," running in Bypass Permissions mode"),qI.default.createElement(m,{flexDirection:"column",gap:1},qI.default.createElement(y,null,"In Bypass Permissions mode, ",x0," will not ask for your approval before running potentially dangerous commands.",qI.default.createElement(QG,null),"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."),qI.default.createElement(y,null,"By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."),qI.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-security"})),qI.default.createElement(A9,{options:[{label:"No, exit",value:"decline"},{label:"Yes, I accept",value:"accept"}],onChange:(G)=>Q(G),onCancel:()=>Q("decline")})),qI.default.createElement(m,{marginLeft:3},qI.default.createElement(y,{dimColor:!0},I.pending?qI.default.createElement(qI.default.Fragment,null,"Press ",I.keyName," again to exit"):qI.default.createElement(qI.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var XH1=F1(S1(),1);function r$2(){let A=$1();return XH1.default.createElement(m,{flexDirection:"row"},XH1.default.createElement(y,{color:A.secondaryText},"※ Tip: Use git worktrees to run multiple Claude sessions in parallel."," ",XH1.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-worktrees"},"Learn more")))}var EI5=[{id:"claude-opus-welcome",content:"New! Introducing Claude Opus 4 - our most powerful model yet. Use /model to try it out.",cooldownSessions:1/0,isRelevant:()=>!process.env.IS_DEMO&&WH1()},{id:"ide-hotkey",content:`${NJ()==="macos"?"Cmd+Escape":"Ctrl+Escape"} to launch Claude in your IDE`,cooldownSessions:15,isRelevant:wx1},{id:"new-user-warmup",content:"Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits",cooldownSessions:3,isRelevant:()=>{return VA().numStartups<10}},{id:"git-worktrees",content:r$2,cooldownSessions:30,isRelevant:async()=>{try{let A=VA();return await Sc()<=1&&A.numStartups>50}catch(A){return!1}}},{id:"terminal-setup",content:uA.terminal==="Apple_Terminal"?"Run /terminal-setup to enable convenient terminal integration like Option + Enter for new line and more":"Run /terminal-setup to enable convenient terminal integration like Shift + Enter for new line and more",cooldownSessions:15,isRelevant:()=>{let A=VA();if(uA.terminal==="Apple_Terminal")return Zz.isEnabled&&!A.optionAsMetaKeyInstalled;return Zz.isEnabled&&!A.shiftEnterKeyBindingInstalled}},{id:"shift-enter",content:uA.terminal==="Apple_Terminal"?"Press Option+Enter to send a multi-line message":"Press Shift+Enter to send a multi-line message",cooldownSessions:20,isRelevant:()=>{let A=VA();return Boolean((uA.terminal==="Apple_Terminal"?A.optionAsMetaKeyInstalled:A.shiftEnterKeyBindingInstalled)&&A.numStartups>3)}},{id:"memory-command",content:"Use /memory to view and manage Claude memory",cooldownSessions:30,isRelevant:()=>{return VA().memoryUsageCount<=0}},{id:"theme-command",content:"Use /theme to change the color theme",cooldownSessions:40,isRelevant:()=>!0},{id:"prompt-queue",content:"Hit Enter to queue up additional messages while Claude is working.",cooldownSessions:10,isRelevant:()=>{return VA().promptQueueUseCount<=3}},{id:"enter-to-steer-in-relatime",content:"Send messages to Claude while it works to steer Claude in real-time",cooldownSessions:40,isRelevant:()=>!0},{id:"todo-list",content:"Ask Claude to create a todo list when working on complex tasks to track progress and remain on track",cooldownSessions:40,isRelevant:()=>!0},{id:"vscode-command-install",content:`Open the Command Palette (Cmd+Shift+P) and run "Shell Command: Install '${uA.terminal=="vscode"?"code":uA.terminal}' command in PATH" to enable IDE integration`,cooldownSessions:0,isRelevant:()=>{if(!AL)return!1;if(NJ()!=="macos")return!1;switch(uA.terminal){case"vscode":return!LD0();case"cursor":return!qD0();case"windsurf":return!MD0();default:return!1}}}],UI5=[],o$2=[...EI5,...UI5];function md(A){for(let B=0;B<A.length;B+=2000)process.stdout.write(A.substring(B,B+2000))}function Lj({newState:A,oldState:B}){if(B!==null&&A.mainLoopModel!==B.mainLoopModel&&A.mainLoopModel===null){yX("userSettings",{model:void 0});let{configuredModel:Q,...I}=VA();T0(I),Tp(null)}if(B!==null&&A.mainLoopModel!==B.mainLoopModel&&A.mainLoopModel!==null){yX("userSettings",{model:A.mainLoopModel});let{configuredModel:Q,...I}=VA();if(Q)T0(I);Tp(A.mainLoopModel)}if(A.maxRateLimitFallbackActive!==n21())IDA(A.maxRateLimitFallbackActive);if(B!==null&&A.todoFeatureEnabled!==B.todoFeatureEnabled&&VA().todoFeatureEnabled!==A.todoFeatureEnabled)T0({...VA(),todoFeatureEnabled:A.todoFeatureEnabled});if(B!==null&&A.verbose!==B.verbose&&VA().verbose!==A.verbose)T0({...VA(),verbose:A.verbose});if(A.toolPermissionContext!==B?.toolPermissionContext)ZH1(A.toolPermissionContext)}function t$2(){let A=VA();if(!A.apiKeyHelper)return;try{yX("userSettings",{apiKeyHelper:A.apiKeyHelper}),T0({...VA(),apiKeyHelper:void 0}),j1("tengu_migrate_apikeyhelper_success",{})}catch{j1("tengu_migrate_apikeyhelper_error",{})}}function e$2(){let A=VA();if(!A.env||Object.keys(A.env).length===0)return;try{let B=gq("userSettings"),Q=B?.env||{},I={...A.env,...Q};yX("userSettings",{...B,env:I}),T0({...VA(),env:{}}),j1("tengu_migrate_globalconfig_env_success",{numEnvVars:Object.keys(A.env).length})}catch{j1("tengu_migrate_globalconfig_env_error",{})}}var B11=F1(S1(),1);async function Aq2(){if(!(await Ni("force_local_installation_migration")&&!oR()&&!print))return;console.log(MA.yellow("⚠️ Migrating Claude CLI to local installation...")),console.log("This improves auto-updates and removes dependency on global npm permissions."),console.log("Your existing configuration and history will be preserved.");try{j1("tengu_forced_migration_start",{gateControlled:!0}),await new Promise((B)=>{let{waitUntilExit:Q}=P8(B11.createElement(FQ,null,B11.createElement(jd,null)));Q().then(()=>{B()})}),await j1("tengu_forced_migration_success",{gateControlled:!0}),console.log(MA.green("✅ Migration complete!")),console.log("Please restart Claude CLI to use the new installation."),process.exit(0)}catch(B){let Q=B instanceof Error?B:new Error(String(B));m1(Q),j1("tengu_forced_migration_failure",{gateControlled:!0}),console.log(MA.red("⚠️ Migration encountered an error, continuing with global installation."))}}process.env.COREPACK_ENABLE_AUTO_PIN="0";function NI5(){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(NI5())process.exit(1);process.env.CLAUDE_CODE_ENTRYPOINT="CLI";Z60();function RI5(){let A=VA();T0({...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.1"}.VERSION})}async function OI5(A,B){if(!1==="true"||process.env.IS_DEMO)return!1;let Q=VA(),I=!1;if(!Q.theme||!Q.hasCompletedOnboarding)I=!0,await V3(),await new Promise((G)=>{P8(cB.default.createElement(FQ,{onChangeAppState:Lj},cB.default.createElement(qt1,{onDone:async()=>{RI5(),await V3(),G()}})),{exitOnCtrlC:!1})});if(!B&&Q.hasCompletedOnboarding&&!Q.hasSeenGAAnnounce&&!I&&WH1())await V3(),await new Promise((G)=>{let{unmount:D}=P8(cB.default.createElement(FQ,{onChangeAppState:Lj},cB.default.createElement(x$2,{onDismiss:async()=>{let Z=VA();T0({...Z,hasSeenGAAnnounce:!0}),await V3(),D(),G()}})),{exitOnCtrlC:!1})});if(process.env.ANTHROPIC_API_KEY,!B&&A!=="bypassPermissions"&&process.env.CLAUBBIT!=="true"){if(!r40())await new Promise((G)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(v$2,{onDone:G})),{exitOnCtrlC:!1})});if(await a$2(),await UJ2())await new Promise((G)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(NK1,{onDone:G})),{exitOnCtrlC:!1})})}if(A==="bypassPermissions"&&!VA().bypassPermissionsModeAccepted)if(!B)await new Promise((G)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(s$2,{onAccept:G})))});else console.error("--dangerously-skip-permissions must be accepted in an interactive session first."),process.exit(1);return I}function TI5({allowedToolsCli:A,disallowedToolsCli:B,permissionMode:Q}){let I=Ve1(A),G=Ve1(B);return jm0({mode:Q,alwaysAllowRules:{cliArg:I},alwaysDenyRules:{cliArg:G}},Lm0())}function PI5(){let A=VA();T0({...A,numStartups:(A.numStartups??0)+1}),SI5(),CW2.add(1)}async function SI5(){let[A,B]=await Promise.all([_X(),Sc()]);j1("tengu_startup_telemetry",{is_git:A,worktree_count:B})}function _I5(){t$2(),e$2(),Aq2()}async function Rj(A,B,Q){let I=process.version.match(/^v(\d+)\./)?.[1];if(!I||parseInt(I)<18)console.error(MA.bold.red("Error: Claude Code requires Node.js version 18 or higher.")),process.exit(1);let G=zQ0();if(G.status==="restored")console.log(MA.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(G.status==="failed")console.error(MA.red(`Failed to restore iTerm2 settings. Please manually restore your original settings with: defaults import com.googlecode.iterm2 ${G.backupPath}.`));try{let W=await T71();if(W.status==="restored")console.log(MA.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(MA.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${W.backupPath}.`))}catch(W){m1(W instanceof Error?W:new Error(String(W)))}let D=Q??!1;xJ(),c$2(),l$2(),mt1(),XK1(D),dY(),qw(D),PM(),Nf(),Sj1(),DI1([]),x31(),nq(),ht1();let Z=new AbortController;if(setTimeout(()=>Z.abort(),3000),t91(dA(),Z.signal,[]),mW(A),B==="bypassPermissions"){if(process.platform!=="win32"&&typeof process.getuid==="function"&&process.getuid()===0)console.error("--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons"),process.exit(1);if(!VA().bypassPermissionsModeAccepted)console.error("--dangerously-skip-permissions must be accepted in an interactive session first."),process.exit(1)}let Y=E9();if(Y.lastCost!==void 0&&Y.lastDuration!==void 0)j1("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;j1("tengu_exit_feedback",{feedback_choice:W.feedbackChoice,feedback_details:W.feedbackDetails,last_session_id:W.sessionId,model:W.model}),_6({...Y,pendingExitFeedback:void 0})}}async function jI5(){if(process.argv[2]==="--ripgrep"){let A=process.argv.slice(3);process.exit(h30(A))}await kI5()}async function yI5(A){let B="",Q={exitOnCtrlC:A,onFlicker(){j1("tengu_flicker",{})}};if(!process.stdin.isTTY&&!0&&!process.argv.includes("mcp")){if(B=await xI5(),process.platform!=="win32")try{let I=qI5("/dev/tty","r");Q={...Q,stdin:new $I5(I)}}catch(I){m1(I)}}return{stdinContent:B,renderContext:Q}}async function kI5(){_I5();let A=new M$2;A.name("claude").description(`${x0} - 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 hd("--output-format <format>",'Output format (only works with --print): "text" (default), "json" (single result), or "stream-json" (realtime streaming)').choices(["text","json","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. Only works in Docker containers with no internet access.",()=>!0).addOption(new hd("--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 Write")').option("--disallowedTools <tools...>",'Comma or space-separated list of tool names to deny (e.g. "Bash(git*) Edit Write")').option("--mcp-config <file or string>","Load MCP servers from a JSON file or string").addOption(new hd("--permission-prompt-tool <tool>","MCP tool to use for permission prompts (only works with --print)").argParser(String).hideHelp()).addOption(new hd("--system-prompt <prompt>","System prompt to use for the session (only works with --print)").argParser(String).hideHelp()).addOption(new hd("--append-system-prompt <prompt>","Append a system prompt to the default system prompt (only works with --print)").argParser(String).hideHelp()).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",(I)=>I||!0).action(async(I,G)=>{let{debug:D=!1,verbose:Z=!1,print:Y,dangerouslySkipPermissions:W,allowedTools:F=[],disallowedTools:J=[],mcpConfig:C}=G,{outputFormat:X}=G,V=W?"bypassPermissions":"default",K=void 0;if(C)try{let w1=D8(C);if(w1){let H1=kv.safeParse(w1);if(!H1.success){let x=H1.error.errors.map((J1)=>`${J1.path.join(".")}: ${J1.message}`).join(", ");throw new Error(`Invalid MCP configuration: ${x}`)}K=H1.data.mcpServers}else{let H1=LI5(C);K=LY0(H1).mcpServers}}catch(w1){console.error(`Error: ${w1 instanceof Error?w1.message:String(w1)}`),process.exit(1)}if(!Y){let w1=await OI5(V,Y);if(w1&&I?.trim().toLowerCase()==="/login")I="";if(!w1)$X1()}let U=TI5({allowedToolsCli:F,disallowedToolsCli:J,permissionMode:V}),N=Mj(U,VA().todoFeatureEnabled),[,q,M,{stdinContent:R,renderContext:T}]=await Promise.all([Rj(GO(),V,Y),mt1(),aN2(o$2),yI5(!1)]),O=Object.keys(KV()).length;j1("tengu_init",{entrypoint:"claude",hasInitialPrompt:Boolean(I),hasStdin:Boolean(R),verbose:Z,debug:D,print:Y,outputFormat:X,numAllowedTools:F.length,numDisallowedTools:J.length,mcpClientCount:O}),xE2(),PI5();let S=[I,R].filter(Boolean).join(`
2508
- `),{clients:f=[],tools:n=[],commands:g=[]}=S?await Yg0(K):{clients:[],tools:[],commands:[]},Y1=G.model;Tp(Y1),GDA(Rv()||null);let r={verbose:Z??!1,mainLoopModel:i21(),todoFeatureEnabled:VA().todoFeatureEnabled,toolPermissionContext:U,maxRateLimitFallbackActive:!1};if(ZH1(U),Y)bI5(S,U,f,q,g,N,n,{continue:G.continue,resume:G.resume,verbose:G.verbose,outputFormat:G.outputFormat,permissionPromptToolName:G.permissionPromptTool,allowedTools:F,maxTurns:G.maxTurns,systemPrompt:G.systemPrompt,appendSystemPrompt:G.appendSystemPrompt,userSpecifiedModel:Y1});else if(G.continue)try{j1("tengu_continue",{});let w1=await gM1(0);if(!w1)console.error("No conversation found to continue"),process.exit(1);YS(w1);let H1=GV();P8(cB.default.createElement(FQ,{initialState:r,onChangeAppState:Lj},cB.default.createElement(gd,{debug:D,initialPrompt:"",shouldShowPromptInput:!0,commands:[...q,...g],initialTools:n,initialMessages:ee(w1.messages,n),initialTodos:H1,mcpClients:f,dynamicMcpConfig:K})),T)}catch(w1){m1(w1 instanceof Error?w1:new Error(String(w1))),process.exit(1)}else if(G.resume){let w1=null,H1=Ox(G.resume);if(!1)try{}catch(x){}if(H1){let x=H1;try{let J1=bM1(x);if(!J1)console.error(`No conversation found with session ID: ${x}`),process.exit(1);YS(J1),w1=J1.messages}catch(J1){m1(J1 instanceof Error?J1:new Error(String(J1))),console.error(`Failed to resume session ${x}`),process.exit(1)}}if(w1)P8(cB.default.createElement(FQ,{initialState:r,onChangeAppState:Lj},cB.default.createElement(gd,{debug:D,initialPrompt:S,shouldShowPromptInput:!0,commands:[...q,...g],initialTools:n,initialMessages:w1,mcpClients:f,dynamicMcpConfig:K})),T);else{let x={},J1=await b41();if(!J1.length)console.error("No conversations found to resume"),process.exit(1);let{unmount:x1}=P8(cB.default.createElement(b$2,{commands:[...q,...g],context:x,debug:D,logs:J1,initialTools:n,mcpClients:f,dynamicMcpConfig:K,appState:r,onChangeAppState:Lj}),T);x.unmount=x1}}else{let w1=GV();P8(cB.default.createElement(FQ,{initialState:r,onChangeAppState:Lj},cB.default.createElement(gd,{debug:D,commands:[...q,...g],initialPrompt:S,shouldShowPromptInput:!0,initialTools:n,initialTodos:w1,tipOfTheDay:M,mcpClients:f,dynamicMcpConfig:K})),T)}}).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.1"}.VERSION} (${x0})`,"-v, --version","Output the version number"),A.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').");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(I,{global:G})=>{await Rj(GO(),"default"),console.log(Q60(I,G??!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(I,G,{global:D})=>{await Rj(GO(),"default"),I60(I,G,D??!1),console.log(`Set ${I} to ${G}`),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(I,G,{global:D})=>{if(await Rj(GO(),"default"),xv(I,D??!1)&&G&&G.length>0){let Z=G.flatMap((Y)=>Y.includes(",")?Y.split(","):Y).map((Y)=>Y.trim()).filter((Y)=>Y.length>0);if(Z.length===0)console.error("Error: No valid values provided"),process.exit(1);o40(I,Z,D??!1,!1),console.log(`Removed from ${I} in ${D?"global":"project"} config: ${Z.join(", ")}`)}else G60(I,D??!1),console.log(`Removed ${I}`);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:I})=>{await Rj(GO(),"default"),console.log(JSON.stringify(D60(I??!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(I,G,{global:D})=>{await Rj(GO(),"default");let Z=G.flatMap((Y)=>Y.includes(",")?Y.split(","):Y).map((Y)=>Y.trim()).filter((Y)=>Y.length>0);if(Z.length===0)console.error("Error: No valid values provided"),process.exit(1);b31(I,Z,D??!1,!1),console.log(`Added to ${I} in ${D?"global":"project"} config: ${Z.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 ${x0} 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:I,verbose:G})=>{let D=GO();if(j1("tengu_mcp_start",{}),!MI5(D))console.error(`Error: Directory ${D} does not exist`),process.exit(1);try{await Rj(D,"default"),await d$2(D,I??!1,G??!1)}catch(Z){console.error("Error: Failed to start MCP server:",Z),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)","stdio").option("-e, --env <env...>","Set environment variables (e.g. -e KEY=value)").option("-H, --header <header...>",'Set HTTP headers for SSE transport (e.g. -H "X-Api-Key: abc123" -H "X-Custom: value")').helpOption("-h, --help","Display help for command").action(async(I,G,D,Z)=>{if(!I)console.error("Error: Server name is required."),console.error("Usage: claude mcp add <name> <command> [args...]"),process.exit(1);else if(!G)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 Y=Ua(Z.scope),W=NY0(Z.transport);if(await j1("tengu_mcp_add",{type:W,scope:Y,source:"command",transport:W}),W==="sse"){if(!G)console.error("Error: URL is required for SSE transport."),process.exit(1);let F=Z.header?RY0(Z.header):void 0;if(_b(I,{type:"sse",url:G,headers:F},Y),console.log(`Added SSE MCP server ${I} with URL: ${G} to ${Y} config`),F)console.log("Headers:",JSON.stringify(F,null,2))}else{let F=a40(Z.env);_b(I,{type:"stdio",command:G,args:D||[],env:F},Y),console.log(`Added stdio MCP server ${I} with command: ${G} ${(D||[]).join(" ")} to ${Y} config`)}process.exit(0)}catch(Y){console.error(Y.message),process.exit(1)}}),Q.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").helpOption("-h, --help","Display help for command").action(async(I,G)=>{try{let D=Ua(G.scope);await j1("tengu_mcp_delete",{name:I,scope:D}),qY0(I,D),console.log(`Removed MCP server ${I} from ${D} config`),process.exit(0)}catch(D){console.error(D.message),process.exit(1)}}),Q.command("list").description("List configured MCP servers").helpOption("-h, --help","Display help for command").action(async()=>{await j1("tengu_mcp_list",{});let I=KV();if(Object.keys(I).length===0)console.log("No MCP servers configured. Use `claude mcp add` to add a server.");else for(let[G,D]of Object.entries(I))if(D.type==="sse")console.log(`${G}: ${D.url} (SSE)`);else if(!D.type||D.type==="stdio")console.log(`${G}: ${D.command} ${D.args.join(" ")}`);process.exit(0)}),Q.command("get <name>").description("Get details about an MCP server").helpOption("-h, --help","Display help for command").action(async(I)=>{await j1("tengu_mcp_get",{name:I});let G=Wf1(I);if(!G)console.error(`No MCP server found with name: ${I}`),process.exit(1);if(console.log(`${I}:`),console.log(` Scope: ${UY0(G.scope)}`),G.type==="sse")console.log(" Type: sse"),console.log(` URL: ${G.url}`);else if(G.type==="stdio"){if(console.log(" Type: stdio"),console.log(` Command: ${G.command}`),console.log(` Args: ${G.args.join(" ")}`),G.env){console.log(" Environment:");for(let[D,Z]of Object.entries(G.env))console.log(` ${D}=${Z}`)}}console.log(`
2507
+ `),enablePromptCaching:!0,isNonInteractiveSession:!1})).message.content.filter((G)=>G.type==="text").map((G)=>G.text).join("")}async function l$2(){let A=qRA();if(A.length===0)return;for(let B of A){let Q=B[B.length-1],I=await wI5(B);try{if(I)NRA(Q.uuid,I)}catch(G){m1(G instanceof Error?G:new Error(String(G)))}}}import{resolve as LI5}from"path";var A11=F1(S1(),1);var BW=F1(S1(),1);var Xe1=F1(S1(),1);function CH1(){return Xe1.default.createElement(y,null,"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",Xe1.default.createElement(GS,{url:"https://docs.anthropic.com/s/claude-code-mcp"},"MCP documentation"),".")}function i$2({serverNames:A,onDone:B}){let Q=$1();function I(D){let Z=E9();if(!Z.enabledMcpjsonServers)Z.enabledMcpjsonServers=[];if(!Z.disabledMcpjsonServers)Z.disabledMcpjsonServers=[];let[Y,W]=TU1(A,(F)=>D.includes(F));j1("tengu_mcp_multidialog_choice",{approved:Y.length,rejected:W.length}),Z.enabledMcpjsonServers.push(...Y),Z.disabledMcpjsonServers.push(...W),_6(Z),B()}let G=v2();return J0((D,Z)=>{if(Z.escape){let Y=E9();if(!Y.disabledMcpjsonServers)Y.disabledMcpjsonServers=[];for(let W of A)if(!Y.disabledMcpjsonServers.includes(W))Y.disabledMcpjsonServers.push(W);_6(Y),B();return}}),BW.default.createElement(BW.default.Fragment,null,BW.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Q.warning},BW.default.createElement(y,{bold:!0,color:Q.warning},A.length," new MCP servers found in .mcp.json"),BW.default.createElement(y,null,"Select any you wish to enable."),BW.default.createElement(CH1,null),BW.default.createElement(V71,{options:A.map((D)=>({label:D,value:D})),defaultValue:A,onSubmit:I})),BW.default.createElement(m,{marginLeft:3},BW.default.createElement(y,{dimColor:!0},G.pending?BW.default.createElement(BW.default.Fragment,null,"Press ",G.keyName," again to exit"):BW.default.createElement(BW.default.Fragment,null,"Space to select · Enter to confirm · Esc to reject all"))))}var jF=F1(S1(),1);function n$2({serverName:A,onDone:B}){let Q=$1();function I(D){let Z=E9();switch(j1("tengu_mcp_dialog_choice",{choice:D}),D){case"yes":case"yes_all":{if(!Z.enabledMcpjsonServers)Z.enabledMcpjsonServers=[];if(!Z.enabledMcpjsonServers.includes(A))Z.enabledMcpjsonServers.push(A);if(D==="yes_all")Z.enableAllProjectMcpServers=!0;_6(Z),B();break}case"no":{if(!Z.disabledMcpjsonServers)Z.disabledMcpjsonServers=[];if(!Z.disabledMcpjsonServers.includes(A))Z.disabledMcpjsonServers.push(A);_6(Z),B();break}}}let G=v2();return J0((D,Z)=>{if(Z.escape){B();return}}),jF.default.createElement(jF.default.Fragment,null,jF.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Q.warning},jF.default.createElement(y,{bold:!0,color:Q.warning},"New MCP server found in .mcp.json: ",A),jF.default.createElement(CH1,null),jF.default.createElement(A9,{options:[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],onChange:(D)=>I(D),onCancel:()=>I("no")})),jF.default.createElement(m,{marginLeft:3},jF.default.createElement(y,{dimColor:!0},G.pending?jF.default.createElement(jF.default.Fragment,null,"Press ",G.keyName," again to exit"):jF.default.createElement(jF.default.Fragment,null,"Enter to confirm · Esc to reject"))))}async function a$2(){let A=UU(),B=Object.keys(A).filter((Q)=>Ff1(Q)==="pending");if(B.length===0)return;await new Promise((Q)=>{let I=()=>{process.stdout.write("\x1B[2J\x1B[3J\x1B[H",()=>{Q()})};if(B.length===1&&B[0]!==void 0){let G=P8(A11.default.createElement(FQ,null,A11.default.createElement(n$2,{serverName:B[0],onDone:()=>{G.unmount?.(),I()}})),{exitOnCtrlC:!1})}else{let G=P8(A11.default.createElement(FQ,null,A11.default.createElement(i$2,{serverNames:B,onDone:()=>{G.unmount?.(),I()}})),{exitOnCtrlC:!1})}})}var qI=F1(S1(),1);function s$2({onAccept:A}){let B=$1();qI.default.useEffect(()=>{j1("bypass_permissions_mode_dialog_shown",{})},[]);function Q(G){let D=VA();switch(G){case"accept":{j1("bypass_permissions_mode_dialog_accept",{}),T0({...D,bypassPermissionsModeAccepted:!0}),A();break}case"decline":{process.exit(1);break}}}let I=v2();return J0((G,D)=>{if(D.escape){process.exit(0);return}}),qI.default.createElement(qI.default.Fragment,null,qI.default.createElement(m,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:B.error},qI.default.createElement(y,{bold:!0,color:B.error},"WARNING: ",x0," running in Bypass Permissions mode"),qI.default.createElement(m,{flexDirection:"column",gap:1},qI.default.createElement(y,null,"In Bypass Permissions mode, ",x0," will not ask for your approval before running potentially dangerous commands.",qI.default.createElement(QG,null),"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."),qI.default.createElement(y,null,"By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."),qI.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-security"})),qI.default.createElement(A9,{options:[{label:"No, exit",value:"decline"},{label:"Yes, I accept",value:"accept"}],onChange:(G)=>Q(G),onCancel:()=>Q("decline")})),qI.default.createElement(m,{marginLeft:3},qI.default.createElement(y,{dimColor:!0},I.pending?qI.default.createElement(qI.default.Fragment,null,"Press ",I.keyName," again to exit"):qI.default.createElement(qI.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var XH1=F1(S1(),1);function r$2(){let A=$1();return XH1.default.createElement(m,{flexDirection:"row"},XH1.default.createElement(y,{color:A.secondaryText},"※ Tip: Use git worktrees to run multiple Claude sessions in parallel."," ",XH1.default.createElement($7,{url:"https://docs.anthropic.com/s/claude-code-worktrees"},"Learn more")))}var EI5=[{id:"claude-opus-welcome",content:"New! Introducing Claude Opus 4 - our most powerful model yet. Use /model to try it out.",cooldownSessions:1/0,isRelevant:()=>!process.env.IS_DEMO&&WH1()},{id:"ide-hotkey",content:`${NJ()==="macos"?"Cmd+Escape":"Ctrl+Escape"} to launch Claude in your IDE`,cooldownSessions:15,isRelevant:wx1},{id:"new-user-warmup",content:"Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits",cooldownSessions:3,isRelevant:()=>{return VA().numStartups<10}},{id:"git-worktrees",content:r$2,cooldownSessions:30,isRelevant:async()=>{try{let A=VA();return await Sc()<=1&&A.numStartups>50}catch(A){return!1}}},{id:"terminal-setup",content:uA.terminal==="Apple_Terminal"?"Run /terminal-setup to enable convenient terminal integration like Option + Enter for new line and more":"Run /terminal-setup to enable convenient terminal integration like Shift + Enter for new line and more",cooldownSessions:15,isRelevant:()=>{let A=VA();if(uA.terminal==="Apple_Terminal")return Zz.isEnabled&&!A.optionAsMetaKeyInstalled;return Zz.isEnabled&&!A.shiftEnterKeyBindingInstalled}},{id:"shift-enter",content:uA.terminal==="Apple_Terminal"?"Press Option+Enter to send a multi-line message":"Press Shift+Enter to send a multi-line message",cooldownSessions:20,isRelevant:()=>{let A=VA();return Boolean((uA.terminal==="Apple_Terminal"?A.optionAsMetaKeyInstalled:A.shiftEnterKeyBindingInstalled)&&A.numStartups>3)}},{id:"memory-command",content:"Use /memory to view and manage Claude memory",cooldownSessions:30,isRelevant:()=>{return VA().memoryUsageCount<=0}},{id:"theme-command",content:"Use /theme to change the color theme",cooldownSessions:40,isRelevant:()=>!0},{id:"prompt-queue",content:"Hit Enter to queue up additional messages while Claude is working.",cooldownSessions:10,isRelevant:()=>{return VA().promptQueueUseCount<=3}},{id:"enter-to-steer-in-relatime",content:"Send messages to Claude while it works to steer Claude in real-time",cooldownSessions:40,isRelevant:()=>!0},{id:"todo-list",content:"Ask Claude to create a todo list when working on complex tasks to track progress and remain on track",cooldownSessions:40,isRelevant:()=>!0},{id:"vscode-command-install",content:`Open the Command Palette (Cmd+Shift+P) and run "Shell Command: Install '${uA.terminal=="vscode"?"code":uA.terminal}' command in PATH" to enable IDE integration`,cooldownSessions:0,isRelevant:()=>{if(!AL)return!1;if(NJ()!=="macos")return!1;switch(uA.terminal){case"vscode":return!LD0();case"cursor":return!qD0();case"windsurf":return!MD0();default:return!1}}}],UI5=[],o$2=[...EI5,...UI5];function md(A){for(let B=0;B<A.length;B+=2000)process.stdout.write(A.substring(B,B+2000))}function Lj({newState:A,oldState:B}){if(B!==null&&A.mainLoopModel!==B.mainLoopModel&&A.mainLoopModel===null){yX("userSettings",{model:void 0});let{configuredModel:Q,...I}=VA();T0(I),Tp(null)}if(B!==null&&A.mainLoopModel!==B.mainLoopModel&&A.mainLoopModel!==null){yX("userSettings",{model:A.mainLoopModel});let{configuredModel:Q,...I}=VA();if(Q)T0(I);Tp(A.mainLoopModel)}if(A.maxRateLimitFallbackActive!==n21())IDA(A.maxRateLimitFallbackActive);if(B!==null&&A.todoFeatureEnabled!==B.todoFeatureEnabled&&VA().todoFeatureEnabled!==A.todoFeatureEnabled)T0({...VA(),todoFeatureEnabled:A.todoFeatureEnabled});if(B!==null&&A.verbose!==B.verbose&&VA().verbose!==A.verbose)T0({...VA(),verbose:A.verbose});if(A.toolPermissionContext!==B?.toolPermissionContext)ZH1(A.toolPermissionContext)}function t$2(){let A=VA();if(!A.apiKeyHelper)return;try{yX("userSettings",{apiKeyHelper:A.apiKeyHelper}),T0({...VA(),apiKeyHelper:void 0}),j1("tengu_migrate_apikeyhelper_success",{})}catch{j1("tengu_migrate_apikeyhelper_error",{})}}function e$2(){let A=VA();if(!A.env||Object.keys(A.env).length===0)return;try{let B=gq("userSettings"),Q=B?.env||{},I={...A.env,...Q};yX("userSettings",{...B,env:I}),T0({...VA(),env:{}}),j1("tengu_migrate_globalconfig_env_success",{numEnvVars:Object.keys(A.env).length})}catch{j1("tengu_migrate_globalconfig_env_error",{})}}var B11=F1(S1(),1);async function Aq2(){if(!(await Ni("force_local_installation_migration")&&!oR()&&!print))return;console.log(MA.yellow("⚠️ Migrating Claude CLI to local installation...")),console.log("This improves auto-updates and removes dependency on global npm permissions."),console.log("Your existing configuration and history will be preserved.");try{j1("tengu_forced_migration_start",{gateControlled:!0}),await new Promise((B)=>{let{waitUntilExit:Q}=P8(B11.createElement(FQ,null,B11.createElement(jd,null)));Q().then(()=>{B()})}),await j1("tengu_forced_migration_success",{gateControlled:!0}),console.log(MA.green("✅ Migration complete!")),console.log("Please restart Claude CLI to use the new installation."),process.exit(0)}catch(B){let Q=B instanceof Error?B:new Error(String(B));m1(Q),j1("tengu_forced_migration_failure",{gateControlled:!0}),console.log(MA.red("⚠️ Migration encountered an error, continuing with global installation."))}}process.env.COREPACK_ENABLE_AUTO_PIN="0";function NI5(){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(NI5())process.exit(1);process.env.CLAUDE_CODE_ENTRYPOINT="CLI";Z60();function RI5(){let A=VA();T0({...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.2"}.VERSION})}async function OI5(A,B){if(!1==="true"||process.env.IS_DEMO)return!1;let Q=VA(),I=!1;if(!Q.theme||!Q.hasCompletedOnboarding)I=!0,await V3(),await new Promise((G)=>{P8(cB.default.createElement(FQ,{onChangeAppState:Lj},cB.default.createElement(qt1,{onDone:async()=>{RI5(),await V3(),G()}})),{exitOnCtrlC:!1})});if(!B&&Q.hasCompletedOnboarding&&!Q.hasSeenGAAnnounce&&!I&&WH1())await V3(),await new Promise((G)=>{let{unmount:D}=P8(cB.default.createElement(FQ,{onChangeAppState:Lj},cB.default.createElement(x$2,{onDismiss:async()=>{let Z=VA();T0({...Z,hasSeenGAAnnounce:!0}),await V3(),D(),G()}})),{exitOnCtrlC:!1})});if(process.env.ANTHROPIC_API_KEY,!B&&A!=="bypassPermissions"&&process.env.CLAUBBIT!=="true"){if(!r40())await new Promise((G)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(v$2,{onDone:G})),{exitOnCtrlC:!1})});if(await a$2(),await UJ2())await new Promise((G)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(NK1,{onDone:G})),{exitOnCtrlC:!1})})}if(A==="bypassPermissions"&&!VA().bypassPermissionsModeAccepted)if(!B)await new Promise((G)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(s$2,{onAccept:G})))});else console.error("--dangerously-skip-permissions must be accepted in an interactive session first."),process.exit(1);return I}function TI5({allowedToolsCli:A,disallowedToolsCli:B,permissionMode:Q}){let I=Ve1(A),G=Ve1(B);return jm0({mode:Q,alwaysAllowRules:{cliArg:I},alwaysDenyRules:{cliArg:G}},Lm0())}function PI5(){let A=VA();T0({...A,numStartups:(A.numStartups??0)+1}),SI5(),CW2.add(1)}async function SI5(){let[A,B]=await Promise.all([_X(),Sc()]);j1("tengu_startup_telemetry",{is_git:A,worktree_count:B})}function _I5(){t$2(),e$2(),Aq2()}async function Rj(A,B,Q){let I=process.version.match(/^v(\d+)\./)?.[1];if(!I||parseInt(I)<18)console.error(MA.bold.red("Error: Claude Code requires Node.js version 18 or higher.")),process.exit(1);let G=zQ0();if(G.status==="restored")console.log(MA.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(G.status==="failed")console.error(MA.red(`Failed to restore iTerm2 settings. Please manually restore your original settings with: defaults import com.googlecode.iterm2 ${G.backupPath}.`));try{let W=await T71();if(W.status==="restored")console.log(MA.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(MA.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${W.backupPath}.`))}catch(W){m1(W instanceof Error?W:new Error(String(W)))}let D=Q??!1;xJ(),c$2(),l$2(),mt1(),XK1(D),dY(),qw(D),PM(),Nf(),Sj1(),DI1([]),x31(),nq(),ht1();let Z=new AbortController;if(setTimeout(()=>Z.abort(),3000),t91(dA(),Z.signal,[]),mW(A),B==="bypassPermissions"){if(process.platform!=="win32"&&typeof process.getuid==="function"&&process.getuid()===0)console.error("--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons"),process.exit(1);if(!VA().bypassPermissionsModeAccepted)console.error("--dangerously-skip-permissions must be accepted in an interactive session first."),process.exit(1)}let Y=E9();if(Y.lastCost!==void 0&&Y.lastDuration!==void 0)j1("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;j1("tengu_exit_feedback",{feedback_choice:W.feedbackChoice,feedback_details:W.feedbackDetails,last_session_id:W.sessionId,model:W.model}),_6({...Y,pendingExitFeedback:void 0})}}async function jI5(){if(process.argv[2]==="--ripgrep"){let A=process.argv.slice(3);process.exit(h30(A))}await kI5()}async function yI5(A){let B="",Q={exitOnCtrlC:A,onFlicker(){j1("tengu_flicker",{})}};if(!process.stdin.isTTY&&!0&&!process.argv.includes("mcp")){if(B=await xI5(),process.platform!=="win32")try{let I=qI5("/dev/tty","r");Q={...Q,stdin:new $I5(I)}}catch(I){m1(I)}}return{stdinContent:B,renderContext:Q}}async function kI5(){_I5();let A=new M$2;A.name("claude").description(`${x0} - 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 hd("--output-format <format>",'Output format (only works with --print): "text" (default), "json" (single result), or "stream-json" (realtime streaming)').choices(["text","json","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. Only works in Docker containers with no internet access.",()=>!0).addOption(new hd("--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 Write")').option("--disallowedTools <tools...>",'Comma or space-separated list of tool names to deny (e.g. "Bash(git*) Edit Write")').option("--mcp-config <file or string>","Load MCP servers from a JSON file or string").addOption(new hd("--permission-prompt-tool <tool>","MCP tool to use for permission prompts (only works with --print)").argParser(String).hideHelp()).addOption(new hd("--system-prompt <prompt>","System prompt to use for the session (only works with --print)").argParser(String).hideHelp()).addOption(new hd("--append-system-prompt <prompt>","Append a system prompt to the default system prompt (only works with --print)").argParser(String).hideHelp()).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",(I)=>I||!0).action(async(I,G)=>{let{debug:D=!1,verbose:Z=!1,print:Y,dangerouslySkipPermissions:W,allowedTools:F=[],disallowedTools:J=[],mcpConfig:C}=G,{outputFormat:X}=G,V=W?"bypassPermissions":"default",K=void 0;if(C)try{let w1=D8(C);if(w1){let H1=kv.safeParse(w1);if(!H1.success){let x=H1.error.errors.map((J1)=>`${J1.path.join(".")}: ${J1.message}`).join(", ");throw new Error(`Invalid MCP configuration: ${x}`)}K=H1.data.mcpServers}else{let H1=LI5(C);K=LY0(H1).mcpServers}}catch(w1){console.error(`Error: ${w1 instanceof Error?w1.message:String(w1)}`),process.exit(1)}if(!Y){let w1=await OI5(V,Y);if(w1&&I?.trim().toLowerCase()==="/login")I="";if(!w1)$X1()}let U=TI5({allowedToolsCli:F,disallowedToolsCli:J,permissionMode:V}),N=Mj(U,VA().todoFeatureEnabled),[,q,M,{stdinContent:R,renderContext:T}]=await Promise.all([Rj(GO(),V,Y),mt1(),aN2(o$2),yI5(!1)]),O=Object.keys(KV()).length;j1("tengu_init",{entrypoint:"claude",hasInitialPrompt:Boolean(I),hasStdin:Boolean(R),verbose:Z,debug:D,print:Y,outputFormat:X,numAllowedTools:F.length,numDisallowedTools:J.length,mcpClientCount:O}),xE2(),PI5();let S=[I,R].filter(Boolean).join(`
2508
+ `),{clients:f=[],tools:n=[],commands:g=[]}=S?await Yg0(K):{clients:[],tools:[],commands:[]},Y1=G.model;Tp(Y1),GDA(Rv()||null);let r={verbose:Z??!1,mainLoopModel:i21(),todoFeatureEnabled:VA().todoFeatureEnabled,toolPermissionContext:U,maxRateLimitFallbackActive:!1};if(ZH1(U),Y)bI5(S,U,f,q,g,N,n,{continue:G.continue,resume:G.resume,verbose:G.verbose,outputFormat:G.outputFormat,permissionPromptToolName:G.permissionPromptTool,allowedTools:F,maxTurns:G.maxTurns,systemPrompt:G.systemPrompt,appendSystemPrompt:G.appendSystemPrompt,userSpecifiedModel:Y1});else if(G.continue)try{j1("tengu_continue",{});let w1=await gM1(0);if(!w1)console.error("No conversation found to continue"),process.exit(1);YS(w1);let H1=GV();P8(cB.default.createElement(FQ,{initialState:r,onChangeAppState:Lj},cB.default.createElement(gd,{debug:D,initialPrompt:"",shouldShowPromptInput:!0,commands:[...q,...g],initialTools:n,initialMessages:ee(w1.messages,n),initialTodos:H1,mcpClients:f,dynamicMcpConfig:K})),T)}catch(w1){m1(w1 instanceof Error?w1:new Error(String(w1))),process.exit(1)}else if(G.resume){let w1=null,H1=Ox(G.resume);if(!1)try{}catch(x){}if(H1){let x=H1;try{let J1=bM1(x);if(!J1)console.error(`No conversation found with session ID: ${x}`),process.exit(1);YS(J1),w1=J1.messages}catch(J1){m1(J1 instanceof Error?J1:new Error(String(J1))),console.error(`Failed to resume session ${x}`),process.exit(1)}}if(w1)P8(cB.default.createElement(FQ,{initialState:r,onChangeAppState:Lj},cB.default.createElement(gd,{debug:D,initialPrompt:S,shouldShowPromptInput:!0,commands:[...q,...g],initialTools:n,initialMessages:w1,mcpClients:f,dynamicMcpConfig:K})),T);else{let x={},J1=await b41();if(!J1.length)console.error("No conversations found to resume"),process.exit(1);let{unmount:x1}=P8(cB.default.createElement(b$2,{commands:[...q,...g],context:x,debug:D,logs:J1,initialTools:n,mcpClients:f,dynamicMcpConfig:K,appState:r,onChangeAppState:Lj}),T);x.unmount=x1}}else{let w1=GV();P8(cB.default.createElement(FQ,{initialState:r,onChangeAppState:Lj},cB.default.createElement(gd,{debug:D,commands:[...q,...g],initialPrompt:S,shouldShowPromptInput:!0,initialTools:n,initialTodos:w1,tipOfTheDay:M,mcpClients:f,dynamicMcpConfig:K})),T)}}).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.2"}.VERSION} (${x0})`,"-v, --version","Output the version number"),A.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').");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(I,{global:G})=>{await Rj(GO(),"default"),console.log(Q60(I,G??!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(I,G,{global:D})=>{await Rj(GO(),"default"),I60(I,G,D??!1),console.log(`Set ${I} to ${G}`),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(I,G,{global:D})=>{if(await Rj(GO(),"default"),xv(I,D??!1)&&G&&G.length>0){let Z=G.flatMap((Y)=>Y.includes(",")?Y.split(","):Y).map((Y)=>Y.trim()).filter((Y)=>Y.length>0);if(Z.length===0)console.error("Error: No valid values provided"),process.exit(1);o40(I,Z,D??!1,!1),console.log(`Removed from ${I} in ${D?"global":"project"} config: ${Z.join(", ")}`)}else G60(I,D??!1),console.log(`Removed ${I}`);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:I})=>{await Rj(GO(),"default"),console.log(JSON.stringify(D60(I??!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(I,G,{global:D})=>{await Rj(GO(),"default");let Z=G.flatMap((Y)=>Y.includes(",")?Y.split(","):Y).map((Y)=>Y.trim()).filter((Y)=>Y.length>0);if(Z.length===0)console.error("Error: No valid values provided"),process.exit(1);b31(I,Z,D??!1,!1),console.log(`Added to ${I} in ${D?"global":"project"} config: ${Z.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 ${x0} 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:I,verbose:G})=>{let D=GO();if(j1("tengu_mcp_start",{}),!MI5(D))console.error(`Error: Directory ${D} does not exist`),process.exit(1);try{await Rj(D,"default"),await d$2(D,I??!1,G??!1)}catch(Z){console.error("Error: Failed to start MCP server:",Z),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)","stdio").option("-e, --env <env...>","Set environment variables (e.g. -e KEY=value)").option("-H, --header <header...>",'Set HTTP headers for SSE transport (e.g. -H "X-Api-Key: abc123" -H "X-Custom: value")').helpOption("-h, --help","Display help for command").action(async(I,G,D,Z)=>{if(!I)console.error("Error: Server name is required."),console.error("Usage: claude mcp add <name> <command> [args...]"),process.exit(1);else if(!G)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 Y=Ua(Z.scope),W=NY0(Z.transport);if(await j1("tengu_mcp_add",{type:W,scope:Y,source:"command",transport:W}),W==="sse"){if(!G)console.error("Error: URL is required for SSE transport."),process.exit(1);let F=Z.header?RY0(Z.header):void 0;if(_b(I,{type:"sse",url:G,headers:F},Y),console.log(`Added SSE MCP server ${I} with URL: ${G} to ${Y} config`),F)console.log("Headers:",JSON.stringify(F,null,2))}else{let F=a40(Z.env);_b(I,{type:"stdio",command:G,args:D||[],env:F},Y),console.log(`Added stdio MCP server ${I} with command: ${G} ${(D||[]).join(" ")} to ${Y} config`)}process.exit(0)}catch(Y){console.error(Y.message),process.exit(1)}}),Q.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").helpOption("-h, --help","Display help for command").action(async(I,G)=>{try{let D=Ua(G.scope);await j1("tengu_mcp_delete",{name:I,scope:D}),qY0(I,D),console.log(`Removed MCP server ${I} from ${D} config`),process.exit(0)}catch(D){console.error(D.message),process.exit(1)}}),Q.command("list").description("List configured MCP servers").helpOption("-h, --help","Display help for command").action(async()=>{await j1("tengu_mcp_list",{});let I=KV();if(Object.keys(I).length===0)console.log("No MCP servers configured. Use `claude mcp add` to add a server.");else for(let[G,D]of Object.entries(I))if(D.type==="sse")console.log(`${G}: ${D.url} (SSE)`);else if(!D.type||D.type==="stdio")console.log(`${G}: ${D.command} ${D.args.join(" ")}`);process.exit(0)}),Q.command("get <name>").description("Get details about an MCP server").helpOption("-h, --help","Display help for command").action(async(I)=>{await j1("tengu_mcp_get",{name:I});let G=Wf1(I);if(!G)console.error(`No MCP server found with name: ${I}`),process.exit(1);if(console.log(`${I}:`),console.log(` Scope: ${UY0(G.scope)}`),G.type==="sse")console.log(" Type: sse"),console.log(` URL: ${G.url}`);else if(G.type==="stdio"){if(console.log(" Type: stdio"),console.log(` Command: ${G.command}`),console.log(` Args: ${G.args.join(" ")}`),G.env){console.log(" Environment:");for(let[D,Z]of Object.entries(G.env))console.log(` ${D}=${Z}`)}}console.log(`
2509
2509
  To remove this server, run: claude mcp remove "${I}" -s ${G.scope}`),process.exit(0)}),Q.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").helpOption("-h, --help","Display help for command").action(async(I,G,D)=>{try{let Z=Ua(D.scope),Y=D8(G),W=Y&&typeof Y==="object"&&"type"in Y?String(Y.type||"stdio"):"stdio";await j1("tengu_mcp_add",{scope:Z,source:"json",type:W}),$Y0(I,G,Z),console.log(`Added ${W} MCP server ${I} to ${Z} config`),process.exit(0)}catch(Z){console.error(Z.message),process.exit(1)}}),Q.command("add-from-claude-desktop").description("Import MCP servers from Claude Desktop (Mac and WSL only)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").helpOption("-h, --help","Display help for command").action(async(I)=>{try{let G=Ua(I.scope),D=NJ();j1("tengu_mcp_add",{scope:G,platform:D,source:"desktop"});let Z=y$2();if(Object.keys(Z).length===0)console.log("No MCP servers found in Claude Desktop configuration or configuration file does not exist."),process.exit(0);let Y=0,{unmount:W}=P8(cB.default.createElement(FQ,null,cB.default.createElement(_$2,{servers:Z,scope:G,onDone:(F)=>{if(Y=F,W(),Y>0)console.log(`
2510
2510
  ${MA.ansi256(D4().success)(`Successfully imported ${Y} MCP server${Y!==1?"s":""} to ${G} config.`)}`);else console.log(`
2511
- No servers were imported.`);process.exit(0)}})),{exitOnCtrlC:!0})}catch(G){console.error(G.message),process.exit(1)}}),Q.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").helpOption("-h, --help","Display help for command").action(async()=>{await j1("tengu_mcp_reset_mcpjson_choices",{});let I=E9();_6({...I,enabledMcpjsonServers:[],disabledMcpjsonServers:[],enableAllProjectMcpServers:!1}),console.log("All project-scoped (.mcp.json) server approvals and rejections have been reset."),console.log("You will be prompted for approval next time you start Claude Code."),process.exit(0)}),A.command("migrate-installer").description("Migrate from global npm installation to local installation").helpOption("-h, --help","Display help for command").action(async()=>{if(oR())console.log("Already running from local installation. No migration needed."),process.exit(0);j1("tengu_migrate_installer_command",{}),await new Promise((I)=>{let{waitUntilExit:G}=P8(cB.default.createElement(FQ,null,cB.default.createElement(jd,null)));G().then(()=>{I()})}),process.exit(0)}),A.command("doctor").description("Check the health of your Claude Code auto-updater").helpOption("-h, --help","Display help for command").action(async()=>{j1("tengu_doctor_command",{}),await new Promise((I)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(_K1,{onDone:()=>I(),doctorMode:!0})),{exitOnCtrlC:!1})}),process.exit(0)}),A.command("update").description("Check for updates and install if available").helpOption("-h, --help","Display help for command").action(async()=>{if(j1("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.1"}.VERSION}`),console.log("Checking for updates..."),await BO())try{let W=await iK1();if(!W.latestVersion)console.error("Failed to check for updates"),process.exit(1);if(W.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.1"}.VERSION)console.log(`${x0} 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.1"}.VERSION})`);else if(W.wasUpdated)console.log(`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.1"}.VERSION} to version ${W.latestVersion}`);else console.log(`${x0} 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.1"}.VERSION})`);process.exit(0)}catch(W){console.error("Error: Failed to install native update"),console.error(String(W)),console.error('Try running "claude doctor" for diagnostics'),process.exit(1)}let I=await OK1();if(!I)console.error("Failed to check for updates"),process.exit(1);if(I==={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.1"}.VERSION)console.log(`${x0} 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.1"}.VERSION})`),process.exit(0);console.log(`New version available: ${I} (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.1"}.VERSION})`),console.log("Installing update...");let D=VA().autoUpdaterStatus==="migrated",Z=wj(),Y;if(D||Z)console.log("Using local installation update method..."),Y=await Pd();else console.log("Using global installation update method..."),Y=await TK1();switch(Y){case"success":console.log(`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.1"}.VERSION} to version ${I}`);break;case"no_permissions":if(console.error("Error: Insufficient permissions to install update"),D)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.1"}.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(" /migrate-installer");process.exit(1);break;case"install_failed":if(console.error("Error: Failed to install update"),D)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.1"}.PACKAGE_URL}`);else console.error("Or consider migrating to a local installation with:"),console.error(" /migrate-installer");process.exit(1);break;case"in_progress":console.error("Error: Another instance is currently performing an update"),console.error("Please wait and try again later"),process.exit(1);break}process.exit(0)}),await A.parseAsync(process.argv),A}async function xI5(){if(process.stdin.isTTY)return"";let A="";for await(let B of process.stdin)A+=B;return A}process.on("exit",()=>{fI5()});process.on("SIGINT",()=>{process.exit(0)});function fI5(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(`\x1B[?25h${cj1}`)}jI5();function Ve1(A){if(!A)return[];return A.flatMap((B)=>B.split(",")).map((B)=>B.trim()).filter(Boolean)}function vI5(A,B){let Q=Ve1(B);return A.filter((I)=>{return Q.some((G)=>{if(G.includes("(")&&G.includes(")")){let D=G.split("(")[0];return I.name===D}return I.name===G})})}async function bI5(A,B,Q,I,G,D,Z,Y){let W=[];if(Y.continue)try{j1("tengu_continue_print",{});let K=await gM1(0);if(K)YS(K),W=K.messages}catch(K){m1(K instanceof Error?K:new Error(String(K))),process.exit(1)}if(Y.resume)try{j1("tengu_resume_print",{});let K=Ox(Y.resume);if(!K){if(console.error("Error: --resume requires a valid session ID when used with --print"),console.error("Usage: claude -p --resume <session-id>"),typeof Y.resume==="string"&&!K)console.error("Session IDs must be in UUID format (e.g., 550e8400-e29b-41d4-a716-446655440000)"),console.error(`Provided value "${Y.resume}" is not a valid UUID`);process.exit(1)}let U=bM1(K);if(!U)console.error(`No conversation found with session ID: ${K}`),process.exit(1);YS(U),W=U.messages}catch(K){m1(K instanceof Error?K:new Error(String(K))),console.error("Failed to resume session with --print mode"),process.exit(1)}let F=Boolean(Ox(Y.resume));if(!A&&!F)console.error("Error: Input must be provided either through stdin or as a prompt argument when using --print"),process.exit(1);if(Y.outputFormat==="stream-json"&&!Y.verbose)console.error("Error: When using --print, --output-format=stream-json requires --verbose"),process.exit(1);let J=void 0;if(Y.permissionPromptToolName){if(J=Z.find((K)=>K.name===Y.permissionPromptToolName),!J)console.error(`Error: MCP tool ${Y.permissionPromptToolName} (passed via --permission-prompt-tool) not found. Available tools: ${Z.map((K)=>K.name).join(", ")}`),process.exit(1);if(!J.inputJSONSchema)console.error(`Error: tool ${Y.permissionPromptToolName} (passed via --permission-prompt-tool) must be an MCP tool`),process.exit(1)}Yz(A);let C=[...D,...Z];if(process.env.STRICT_ALLOWED_TOOLS==="1")C=vI5(C,Y.allowedTools??[]);let X=[];for await(let K of P$2({commands:[...I,...G],prompt:A,cwd:GO(),tools:C,permissionContext:B,verbose:Y.verbose,mcpClients:Q,maxTurns:Y.maxTurns,permissionPromptTool:J,streamJson:Y.outputFormat==="stream-json",userSpecifiedModel:Y.userSpecifiedModel,initialMessages:S$2(W),customSystemPrompt:Y.systemPrompt,appendSystemPrompt:Y.appendSystemPrompt})){if(Y.outputFormat==="stream-json"&&Y.verbose)md(JSON.stringify(K)+`
2511
+ No servers were imported.`);process.exit(0)}})),{exitOnCtrlC:!0})}catch(G){console.error(G.message),process.exit(1)}}),Q.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").helpOption("-h, --help","Display help for command").action(async()=>{await j1("tengu_mcp_reset_mcpjson_choices",{});let I=E9();_6({...I,enabledMcpjsonServers:[],disabledMcpjsonServers:[],enableAllProjectMcpServers:!1}),console.log("All project-scoped (.mcp.json) server approvals and rejections have been reset."),console.log("You will be prompted for approval next time you start Claude Code."),process.exit(0)}),A.command("migrate-installer").description("Migrate from global npm installation to local installation").helpOption("-h, --help","Display help for command").action(async()=>{if(oR())console.log("Already running from local installation. No migration needed."),process.exit(0);j1("tengu_migrate_installer_command",{}),await new Promise((I)=>{let{waitUntilExit:G}=P8(cB.default.createElement(FQ,null,cB.default.createElement(jd,null)));G().then(()=>{I()})}),process.exit(0)}),A.command("doctor").description("Check the health of your Claude Code auto-updater").helpOption("-h, --help","Display help for command").action(async()=>{j1("tengu_doctor_command",{}),await new Promise((I)=>{P8(cB.default.createElement(FQ,null,cB.default.createElement(_K1,{onDone:()=>I(),doctorMode:!0})),{exitOnCtrlC:!1})}),process.exit(0)}),A.command("update").description("Check for updates and install if available").helpOption("-h, --help","Display help for command").action(async()=>{if(j1("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.2"}.VERSION}`),console.log("Checking for updates..."),await BO())try{let W=await iK1();if(!W.latestVersion)console.error("Failed to check for updates"),process.exit(1);if(W.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.2"}.VERSION)console.log(`${x0} 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.2"}.VERSION})`);else if(W.wasUpdated)console.log(`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.2"}.VERSION} to version ${W.latestVersion}`);else console.log(`${x0} 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.2"}.VERSION})`);process.exit(0)}catch(W){console.error("Error: Failed to install native update"),console.error(String(W)),console.error('Try running "claude doctor" for diagnostics'),process.exit(1)}let I=await OK1();if(!I)console.error("Failed to check for updates"),process.exit(1);if(I==={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.2"}.VERSION)console.log(`${x0} 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.2"}.VERSION})`),process.exit(0);console.log(`New version available: ${I} (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.2"}.VERSION})`),console.log("Installing update...");let D=VA().autoUpdaterStatus==="migrated",Z=wj(),Y;if(D||Z)console.log("Using local installation update method..."),Y=await Pd();else console.log("Using global installation update method..."),Y=await TK1();switch(Y){case"success":console.log(`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.2"}.VERSION} to version ${I}`);break;case"no_permissions":if(console.error("Error: Insufficient permissions to install update"),D)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.2"}.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(" /migrate-installer");process.exit(1);break;case"install_failed":if(console.error("Error: Failed to install update"),D)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.2"}.PACKAGE_URL}`);else console.error("Or consider migrating to a local installation with:"),console.error(" /migrate-installer");process.exit(1);break;case"in_progress":console.error("Error: Another instance is currently performing an update"),console.error("Please wait and try again later"),process.exit(1);break}process.exit(0)}),await A.parseAsync(process.argv),A}async function xI5(){if(process.stdin.isTTY)return"";let A="";for await(let B of process.stdin)A+=B;return A}process.on("exit",()=>{fI5()});process.on("SIGINT",()=>{process.exit(0)});function fI5(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(`\x1B[?25h${cj1}`)}jI5();function Ve1(A){if(!A)return[];return A.flatMap((B)=>B.split(",")).map((B)=>B.trim()).filter(Boolean)}function vI5(A,B){let Q=Ve1(B);return A.filter((I)=>{return Q.some((G)=>{if(G.includes("(")&&G.includes(")")){let D=G.split("(")[0];return I.name===D}return I.name===G})})}async function bI5(A,B,Q,I,G,D,Z,Y){let W=[];if(Y.continue)try{j1("tengu_continue_print",{});let K=await gM1(0);if(K)YS(K),W=K.messages}catch(K){m1(K instanceof Error?K:new Error(String(K))),process.exit(1)}if(Y.resume)try{j1("tengu_resume_print",{});let K=Ox(Y.resume);if(!K){if(console.error("Error: --resume requires a valid session ID when used with --print"),console.error("Usage: claude -p --resume <session-id>"),typeof Y.resume==="string"&&!K)console.error("Session IDs must be in UUID format (e.g., 550e8400-e29b-41d4-a716-446655440000)"),console.error(`Provided value "${Y.resume}" is not a valid UUID`);process.exit(1)}let U=bM1(K);if(!U)console.error(`No conversation found with session ID: ${K}`),process.exit(1);YS(U),W=U.messages}catch(K){m1(K instanceof Error?K:new Error(String(K))),console.error("Failed to resume session with --print mode"),process.exit(1)}let F=Boolean(Ox(Y.resume));if(!A&&!F)console.error("Error: Input must be provided either through stdin or as a prompt argument when using --print"),process.exit(1);if(Y.outputFormat==="stream-json"&&!Y.verbose)console.error("Error: When using --print, --output-format=stream-json requires --verbose"),process.exit(1);let J=void 0;if(Y.permissionPromptToolName){if(J=Z.find((K)=>K.name===Y.permissionPromptToolName),!J)console.error(`Error: MCP tool ${Y.permissionPromptToolName} (passed via --permission-prompt-tool) not found. Available tools: ${Z.map((K)=>K.name).join(", ")}`),process.exit(1);if(!J.inputJSONSchema)console.error(`Error: tool ${Y.permissionPromptToolName} (passed via --permission-prompt-tool) must be an MCP tool`),process.exit(1)}Yz(A);let C=[...D,...Z];if(process.env.STRICT_ALLOWED_TOOLS==="1")C=vI5(C,Y.allowedTools??[]);let X=[];for await(let K of P$2({commands:[...I,...G],prompt:A,cwd:GO(),tools:C,permissionContext:B,verbose:Y.verbose,mcpClients:Q,maxTurns:Y.maxTurns,permissionPromptTool:J,streamJson:Y.outputFormat==="stream-json",userSpecifiedModel:Y.userSpecifiedModel,initialMessages:S$2(W),customSystemPrompt:Y.systemPrompt,appendSystemPrompt:Y.appendSystemPrompt})){if(Y.outputFormat==="stream-json"&&Y.verbose)md(JSON.stringify(K)+`
2512
2512
  `);X.push(K)}let V=eZ(X);if(!V||V.type!=="result")throw new Error("No messages returned");switch(Y.outputFormat){case"json":if(Y.verbose){md(JSON.stringify(X)+`
2513
2513
  `);break}md(JSON.stringify(V)+`
2514
2514
  `);break;case"stream-json":break;default:switch(V.subtype){case"success":md(V.result.endsWith(`