quantwise 1.3.0 → 1.3.1
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.mjs +15 -15
- package/package.json +1 -1
package/cli.mjs
CHANGED
|
@@ -548,16 +548,16 @@ Event: ${Rp(I)}`),!0}return!1}function npl(I,G){if(!G?.length)return!1;return Mr
|
|
|
548
548
|
`;let Y=nHG(l);l.write(`${N}\r
|
|
549
549
|
`);let{connect:c,buffered:V}=await Y;if(I.emit("proxyConnect",c),this.emit("proxyConnect",c,I),c.statusCode===200){if(I.once("socket",Wnl),G.secureEndpoint){Gq("Upgrading socket connection to TLS");let m=G.servername||G.host;return V5I.connect({...jHG(G,"host","path","port"),socket:l,servername:f4.isIP(m)?void 0:m})}return l}l.destroy();let d=new f4.Socket({writable:!1});return d.readable=!0,I.once("socket",(m)=>{Gq("Replaying proxy buffer for failed request"),m.push(V),m.push(null)}),d}}he.__initStatic();function Wnl(I){I.resume()}function jHG(I,...G){let Z={},l;for(l in I)if(!G.includes(l))Z[l]=I[l];return Z}var dnl=32768;function mnl(I){return new cnl({read(){this.push(I),this.push(null)}})}function d5I(I){let G;try{G=new URL(I.url)}catch(c){return Qd(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),n7(I,()=>Promise.resolve({}))}let Z=G.protocol==="https:",l=Qnl(G,I.proxy||(Z?process.env.https_proxy:void 0)||process.env.http_proxy),b=Z?Ynl:Nnl,W=I.keepAlive===void 0?!1:I.keepAlive,N=l?new he(l):new b.Agent({keepAlive:W,maxSockets:30,timeout:2000}),Y=Xnl(I,I.httpModule??b,N);return n7(I,Y)}function Qnl(I,G){let{no_proxy:Z}=process.env;if(Z?.split(",").some((b)=>I.host.endsWith(b)||I.hostname.endsWith(b)))return;else return G}function Xnl(I,G,Z){let{hostname:l,pathname:b,port:W,protocol:N,search:Y}=new URL(I.url);return function(V){return new Promise((d,m)=>{TU(()=>{let X=mnl(V.body),R={...I.headers};if(V.body.length>dnl)R["content-encoding"]="gzip",X=X.pipe(Vnl());let H=G.request({method:"POST",agent:Z,headers:R,hostname:l,path:`${b}${Y}`,port:W,protocol:N,ca:I.caCerts},(w)=>{w.on("data",()=>{}),w.on("end",()=>{}),w.setEncoding("utf8");let A=w.headers["retry-after"]??null,y=w.headers["x-sentry-rate-limits"]??null;d({statusCode:w.statusCode,headers:{"retry-after":A,"x-sentry-rate-limits":Array.isArray(y)?y[0]||null:y}})});H.on("error",m),X.pipe(H)})})}}var Fnl=new Set(["false","f","n","no","off","0"]),Rnl=new Set(["true","t","y","yes","on","1"]);function we(I,G){let Z=String(I).toLowerCase();if(Fnl.has(Z))return!1;if(Rnl.has(Z))return!0;return G?.strict?null:Boolean(I)}import{posix as Hnl,sep as hnl}from"node:path";function qHG(I){return I.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function m5I(I=process.argv[1]?DhI(process.argv[1]):process.cwd(),G=hnl==="\\"){let Z=G?qHG(I):I;return(l)=>{if(!l)return;let b=G?qHG(l):l,{dir:W,base:N,ext:Y}=Hnl.parse(b);if(Y===".js"||Y===".mjs"||Y===".cjs")N=N.slice(0,Y.length*-1);let c=decodeURIComponent(N);if(!W)W=".";let V=W.lastIndexOf("/node_modules");if(V>-1)return`${W.slice(V+14).replace(/\//g,".")}:${c}`;if(W.startsWith(Z)){let d=W.slice(Z.length+1).replace(/\//g,".");return d?`${d}:${c}`:c}return c}}function Q5I(I){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(QW.SENTRY_RELEASE?.id)return QW.SENTRY_RELEASE.id;let G=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,Z=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,l=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return G||Z||l||I}var X5I=wr(fhI(m5I()));var SHG=hI(Il(),1),iHG=hI(BN(),1);import*as THG from"node:os";import{threadId as wnl,isMainThread as Jnl}from"worker_threads";var Anl=60000;class Je extends nr{constructor(I){let G=I.includeServerName===!1?void 0:I.serverName||global.process.env.SENTRY_NAME||THG.hostname(),Z={...I,platform:"node",runtime:{name:"node",version:global.process.version},serverName:G};if(I.openTelemetryInstrumentations)iHG.registerInstrumentations({instrumentations:I.openTelemetryInstrumentations});Mg(Z,"node"),yG.log(`Initializing Sentry: process: ${process.pid}, thread: ${Jnl?"main":`worker-${wnl}`}.`);super(Z);let{enableLogs:l,_experiments:b}=this.getOptions();if(l??b?.enableLogs){if(this._logOnExitFlushListener=()=>{Og(this)},G)this.on("beforeCaptureLog",(N)=>{N.attributes={...N.attributes,"server.address":G}});process.on("beforeExit",this._logOnExitFlushListener)}}get tracer(){if(this._tracer)return this._tracer;let I="@sentry/node",G=oY,Z=SHG.trace.getTracer(I,G);return this._tracer=Z,Z}async flush(I){if(await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports)this._flushOutcomes();return super.flush(I)}close(I){if(this._clientReportInterval)clearInterval(this._clientReportInterval);if(this._clientReportOnExitFlushListener)process.off("beforeExit",this._clientReportOnExitFlushListener);if(this._logOnExitFlushListener)process.off("beforeExit",this._logOnExitFlushListener);return super.close(I)}startClientReportTracking(){let I=this.getOptions();if(I.sendClientReports)this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{RN&&yG.log("Flushing client reports based on interval."),this._flushOutcomes()},I.clientReportFlushInterval??Anl).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener)}_getTraceInfoFromScope(I){if(!I)return[void 0,void 0];return jRG(this,I)}}var PHG=hI(Gr(),1);import Enl from"module";function _HG(){let[I=0,G=0]=process.versions.node.split(".").map(Number);if(I>=21||I===20&&G>=6||I===18&&G>=19){if(!QW._sentryEsmLoaderHookRegistered)try{let{addHookMessagePort:Z}=PHG.createAddHookMessageChannel();Enl.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:Z,include:[]},transferList:[Z]})}catch(Z){yG.warn("Failed to register ESM hook",Z)}}else Qd(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)})}function Ae(){return[Tr(),sU(),fU(),Sr(),G5I(),$U(),MHG(),KHG(),twI(),rwI(),swI(),$wI(),PwI(),l5I(),DHG(),Rx()]}function F5I(I={}){return vnl(I,Ae)}function vnl(I={},G){let Z=Cnl(I,G);if(Z.debug===!0)if(RN)yG.enable();else Qd(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")});if(!Fx()&&Z.registerEsmLoaderHooks!==!1)_HG();if(TRG(),jW().update(Z.initialScope),Z.spotlight&&!Z.integrations.some(({name:W})=>W===ewI))Z.integrations.push(I5I({sidecarUrl:typeof Z.spotlight==="string"?Z.spotlight:void 0}));Mg(Z,"node-core");let b=new Je(Z);return jW().setClient(b),b.init(),yG.log(`Running in ${Fx()?"CommonJS":"ESM"} mode.`),b.startClientReportTracking(),unl(),BRG(b),qRG(b),b}function Ee(){if(!RN)return;let I=ORG(),G=["SentryContextManager","SentryPropagator"];if(a0())G.push("SentrySpanProcessor");for(let Z of G)if(!I.includes(Z))yG.error(`You have to set up the ${Z}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);if(!I.includes("SentrySampler"))yG.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function Cnl(I,G){let Z=pnl(I.release),l=I.spotlight??we(process.env.SENTRY_SPOTLIGHT,{strict:!0})??process.env.SENTRY_SPOTLIGHT,b=ynl(I.tracesSampleRate),W={...I,dsn:I.dsn??process.env.SENTRY_DSN,environment:I.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:I.sendClientReports??!0,transport:I.transport??d5I,stackParser:FhI(I.stackParser||X5I),release:Z,tracesSampleRate:b,spotlight:l,debug:we(I.debug??process.env.SENTRY_DEBUG)},N=I.integrations,Y=I.defaultIntegrations??G(W);return{...W,integrations:phI({defaultIntegrations:Y,integrations:N})}}function pnl(I){if(I!==void 0)return I;let G=Q5I();if(G!==void 0)return G;return}function ynl(I){if(I!==void 0)return I;let G=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!G)return;let Z=parseFloat(G);return isFinite(Z)?Z:void 0}function unl(){if(we(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let I=process.env.SENTRY_TRACE,G=process.env.SENTRY_BAGGAGE,Z=g7(I,G);jW().setPropagationContext(Z)}}function Sc(I,G){I.setAttribute(oN,G)}var R5I="Http",sHG="@opentelemetry_sentry-patched/instrumentation-http",Lnl=cb(`${R5I}.sentry`,(I)=>{return new mx(I)}),gnl=cb(R5I,(I)=>{let G=new $HG.HttpInstrumentation(I);try{G._diag=fHG.diag.createComponentLogger({namespace:sHG}),G.instrumentationName=sHG}catch{}return G});function anl(I,G={}){if(typeof I.spans==="boolean")return I.spans;if(G.skipOpenTelemetrySetup)return!1;if(!a0(G)&&up.major>=22)return!1;return!0}var Zq=tZ((I={})=>{let G=I.dropSpansForIncomingRequestStatusCodes??[[401,404],[300,399]];return{name:R5I,setupOnce(){let Z=anl(I,Cb()?.getOptions());if(Lnl({...I,extractIncomingTraceFromHeader:!Z,propagateTraceInOutgoingRequests:!Z}),Z){let l=knl(I);gnl(l)}},processEvent(Z){if(Z.type==="transaction"){let l=Z.contexts?.trace?.data?.["http.response.status_code"];if(typeof l==="number"&&G.some((b)=>{if(typeof b==="number")return b===l;let[W,N]=b;return l>=W&&l<=N}))return null}return Z}}});function znl(I){return"outputData"in I&&"outputSize"in I&&!("client"in I)&&!("statusCode"in I)}function Bnl(I){return I.headers["next-router-prefetch"]==="1"}function knl(I={}){return{...I.instrumentation?._experimentalConfig,disableIncomingRequestInstrumentation:I.disableIncomingRequestSpans,ignoreOutgoingRequestHook:(Z)=>{let l=Vx(Z);if(!l)return!1;let b=I.ignoreOutgoingRequests;if(b?.(l,Z))return!0;return!1},ignoreIncomingRequestHook:(Z)=>{let l=Z.url,b=Z.method?.toUpperCase();if(b==="OPTIONS"||b==="HEAD")return!0;let W=I.ignoreIncomingRequests;if(l&&W?.(l,Z))return!0;return!1},requireParentforOutgoingSpans:!1,requireParentforIncomingSpans:!1,requestHook:(Z,l)=>{if(Sc(Z,"auto.http.otel.http"),!znl(l)&&Bnl(l))Z.setAttribute("sentry.http.prefetch",!0);I.instrumentation?.requestHook?.(Z,l)},responseHook:(Z,l)=>{I.instrumentation?.responseHook?.(Z,l)},applyCustomAttributesOnSpan:(Z,l,b)=>{I.instrumentation?.applyCustomAttributesOnSpan?.(Z,l,b)}}}var mhG=hI(dhG(),1);var QhG="NodeFetch",Mnl=cb(QhG,mhG.UndiciInstrumentation,(I)=>{return qnl(I)}),Knl=cb(`${QhG}.sentry`,Xx,(I)=>{return I}),Dnl=(I={})=>{return{name:"NodeFetch",setupOnce(){if(jnl(I,Cb()?.getOptions()))Mnl(I);Knl(I)}}},XhG=tZ(Dnl);function nnl(I,G="/"){let Z=`${I}`;if(Z.endsWith("/")&&G.startsWith("/"))return`${Z}${G.slice(1)}`;if(!Z.endsWith("/")&&!G.startsWith("/"))return`${Z}/${G.slice(1)}`;return`${Z}${G}`}function jnl(I,G={}){return typeof I.spans==="boolean"?I.spans:!G.skipOpenTelemetrySetup&&a0(G)}function qnl(I={}){return{requireParentforSpans:!1,ignoreRequestHook:(Z)=>{let l=nnl(Z.origin,Z.path),b=I.ignoreOutgoingRequests;return!!(b&&l&&b(l))},startSpanHook:()=>{return{[oN]:"auto.http.otel.node_fetch"}}}}var ThG=hI(OhG(),1);var RA=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var kw=hI(Il(),1),Le=hI($N(),1),HA=hI(BN(),1),qhG=hI(tY(),1);var UH;(function(I){I.EXPRESS_TYPE="express.type";let Z="express.name";I.EXPRESS_NAME=Z})(UH||(UH={}));var $4;(function(I){I.ROUTER="router";let Z="middleware";I.MIDDLEWARE=Z;let l="request_handler";I.REQUEST_HANDLER=l})($4||($4={}));var v5I=Symbol("express-layer-patched"),ap="__ot_middlewares";var KhG=(I,G)=>{if(Array.isArray(I[ap])===!1)Object.defineProperty(I,ap,{enumerable:!1,value:[]});if(G===void 0)return;I[ap].push(G)},DhG=(I,G)=>{let Z=G.handle?.stack?.[0];if(Z?.route?.path)return`${I}${Z.route.path}`;if(Z?.handle?.stack)return DhG(I,Z);return I},nhG=(I,G,Z)=>{if(G.name==="router"){let l=DhG("",G),b=l?l:Z||I||"/";return{attributes:{[UH.EXPRESS_NAME]:b,[UH.EXPRESS_TYPE]:$4.ROUTER},name:`router - ${b}`}}else if(G.name==="bound dispatch"||G.name==="handle")return{attributes:{[UH.EXPRESS_NAME]:(I||Z)??"request handler",[UH.EXPRESS_TYPE]:$4.REQUEST_HANDLER},name:`request handler${G.path?` - ${I||Z}`:""}`};else return{attributes:{[UH.EXPRESS_NAME]:G.name,[UH.EXPRESS_TYPE]:$4.MIDDLEWARE},name:`middleware - ${G.name}`}},Wjl=(I,G)=>{if(typeof G==="string")return G===I;else if(G instanceof RegExp)return G.test(I);else if(typeof G==="function")return G(I);else throw TypeError("Pattern is in unsupported datatype")},jhG=(I,G,Z)=>{if(Array.isArray(Z?.ignoreLayersType)&&Z?.ignoreLayersType?.includes(G))return!0;if(Array.isArray(Z?.ignoreLayers)===!1)return!1;try{for(let l of Z.ignoreLayers)if(Wjl(I,l))return!0}catch{}return!1},C5I=(I)=>I instanceof Error?[I,I.message]:[String(I),String(I)],ue=(I)=>{let G=I[0];if(Array.isArray(G))return G.map((Z)=>MhG(Z)||"").join(",");return MhG(G)},MhG=(I)=>{if(typeof I==="string")return I;if(I instanceof RegExp||typeof I==="number")return I.toString();return};var Njl="0.1.0",Yjl="@sentry/instrumentation-express-v5";class p5I extends HA.InstrumentationBase{constructor(I={}){super(Yjl,Njl,I)}init(){return[new HA.InstrumentationNodeModuleDefinition("express",[">=5.0.0"],(I)=>this._setup(I),(I)=>this._tearDown(I))]}_setup(I){let G=I.Router.prototype;if(HA.isWrapped(G.route))this._unwrap(G,"route");if(this._wrap(G,"route",this._getRoutePatch()),HA.isWrapped(G.use))this._unwrap(G,"use");if(this._wrap(G,"use",this._getRouterUsePatch()),HA.isWrapped(I.application.use))this._unwrap(I.application,"use");return this._wrap(I.application,"use",this._getAppUsePatch()),I}_tearDown(I){if(I===void 0)return;let G=I.Router.prototype;this._unwrap(G,"route"),this._unwrap(G,"use"),this._unwrap(I.application,"use")}_getRoutePatch(){let I=this;return function(G){return function(...l){let b=G.apply(this,l),W=this.stack[this.stack.length-1];return I._applyPatch(W,ue(l)),b}}}_getRouterUsePatch(){let I=this;return function(G){return function(...l){let b=G.apply(this,l),W=this.stack[this.stack.length-1];return I._applyPatch(W,ue(l)),b}}}_getAppUsePatch(){let I=this;return function(G){return function(...l){let b=this.router,W=G.apply(this,l);if(b){let N=b.stack[b.stack.length-1];I._applyPatch(N,ue(l))}return W}}}_applyPatch(I,G){let Z=this;if(I[v5I]===!0)return;I[v5I]=!0,this._wrap(I,"handle",(l)=>{if(l.length===4)return l;let b=function(W,N){KhG(W,G);let Y=W[ap].filter((B)=>B!=="/"&&B!=="/*").join("").replace(/\/{2,}/g,"/"),c=Y.length>0?Y:void 0,V={[qhG.SEMATTRS_HTTP_ROUTE]:c},d=nhG(Y,I,G),m=d.attributes[UH.EXPRESS_TYPE],X=Le.getRPCMetadata(kw.context.active());if(X?.type===Le.RPCType.HTTP)X.route=c;if(jhG(d.name,m,Z.getConfig())){if(m===$4.MIDDLEWARE)W[ap].pop();return l.apply(this,arguments)}if(kw.trace.getSpan(kw.context.active())===void 0)return l.apply(this,arguments);let R=Z._getSpanName({request:W,layerType:m,route:Y},d.name),H=Z.tracer.startSpan(R,{attributes:Object.assign(V,d.attributes)}),{requestHook:w}=Z.getConfig();if(w)HA.safeExecuteInTheMiddle(()=>w(H,{request:W,layerType:m,route:Y}),(B)=>{if(B)kw.diag.error("express instrumentation: request hook failed",B)},!0);let A=!1;if(d.attributes[UH.EXPRESS_TYPE]!==$4.MIDDLEWARE)H.end(),A=!0;let y=()=>{if(A===!1)A=!0,H.end()},g=Array.from(arguments),a=g.findIndex((B)=>typeof B==="function");if(a>=0)arguments[a]=function(){let B=arguments[0],U=![void 0,null,"route","router"].includes(B);if(!A&&U){let[$,lI]=C5I(B);H.recordException($),H.setStatus({code:kw.SpanStatusCode.ERROR,message:lI})}if(A===!1)A=!0,W.res?.removeListener("finish",y),H.end();if(!(W.route&&U))W[ap].pop();return g[a].apply(this,arguments)};try{return l.apply(this,arguments)}catch(B){let[U,q]=C5I(B);throw H.recordException(U),H.setStatus({code:kw.SpanStatusCode.ERROR,message:q}),B}finally{if(!A)N.once("finish",y)}};for(let W in l)Object.defineProperty(b,W,{get(){return l[W]},set(N){l[W]=N}});return b})}_getSpanName(I,G){let{spanNameHook:Z}=this.getConfig();if(!(Z instanceof Function))return G;try{return Z(I,G)??G}catch(l){return kw.diag.error("express instrumentation: error calling span name rewrite hook",l),G}}}var ShG="Express",cjl="Express-V5";function ihG(I){Sc(I,"auto.http.otel.express");let G=pb(I).data,Z=G["express.type"];if(Z)I.setAttribute(XW,`${Z}.express`);let l=G["express.name"];if(typeof l==="string")I.updateName(l)}function PhG(I,G){if(kN()===vw())return RA&&yG.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),G;if(I.layerType==="request_handler"){let Z=I.request,l=Z.method?Z.method.toUpperCase():"GET";kN().setTransactionName(`${l} ${I.route}`)}return G}var _hG=cb(ShG,()=>new ThG.ExpressInstrumentation({requestHook:(I)=>ihG(I),spanNameHook:(I,G)=>PhG(I,G)})),shG=cb(cjl,()=>new p5I({requestHook:(I)=>ihG(I),spanNameHook:(I,G)=>PhG(I,G)})),Vjl=()=>{return{name:ShG,setupOnce(){_hG(),shG()}}},fhG=tZ(Vjl);import*as U5I from"node:diagnostics_channel";var td=hI(Il(),1),ze=hI($N(),1),ywG=hI(BN(),1),p2=hI(tY(),1);import AwG from"node:diagnostics_channel";var RwG=hI(YwG(),1);var Yq=(I)=>{if(typeof I!=="string")throw TypeError("invalid pattern");if(I.length>65536)throw TypeError("pattern is too long")};var hjl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},cq=(I)=>I.replace(/[[\]\\-]/g,"\\$&"),wjl=(I)=>I.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),cwG=(I)=>I.join(""),VwG=(I,G)=>{let Z=G;if(I.charAt(Z)!=="[")throw Error("not in a brace expression");let l=[],b=[],W=Z+1,N=!1,Y=!1,c=!1,V=!1,d=Z,m="";I:while(W<I.length){let w=I.charAt(W);if((w==="!"||w==="^")&&W===Z+1){V=!0,W++;continue}if(w==="]"&&N&&!c){d=W+1;break}if(N=!0,w==="\\"){if(!c){c=!0,W++;continue}}if(w==="["&&!c){for(let[A,[y,g,a]]of Object.entries(hjl))if(I.startsWith(A,W)){if(m)return["$.",!1,I.length-Z,!0];if(W+=A.length,a)b.push(y);else l.push(y);Y=Y||g;continue I}}if(c=!1,m){if(w>m)l.push(cq(m)+"-"+cq(w));else if(w===m)l.push(cq(w));m="",W++;continue}if(I.startsWith("-]",W+1)){l.push(cq(w+"-")),W+=2;continue}if(I.startsWith("-",W+1)){m=w,W+=2;continue}l.push(cq(w)),W++}if(d<W)return["",!1,0,!1];if(!l.length&&!b.length)return["$.",!1,I.length-Z,!0];if(b.length===0&&l.length===1&&/^\\?.$/.test(l[0])&&!V){let w=l[0].length===2?l[0].slice(-1):l[0];return[wjl(w),!1,d-Z,!1]}let X="["+(V?"^":"")+cwG(l)+"]",R="["+(V?"":"^")+cwG(b)+"]";return[l.length&&b.length?"("+X+"|"+R+")":l.length?X:R,Y,d-Z,!0]};var zp=(I,{windowsPathsNoEscape:G=!1}={})=>{return G?I.replace(/\[([^\/\\])\]/g,"$1"):I.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var Jjl=new Set(["!","?","+","*","@"]),dwG=(I)=>Jjl.has(I),Ajl="(?!(?:^|/)\\.\\.?(?:$|/))",ge="(?!\\.)",Ejl=new Set(["[","."]),vjl=new Set(["..","."]),Cjl=new Set("().*{}+?[]^$\\!"),pjl=(I)=>I.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),g5I="[^/]",mwG=g5I+"*?",QwG=g5I+"+?";class Jm{type;#I;#G;#W=!1;#Z=[];#l;#F;#X;#c=!1;#Y;#Q;#d=!1;constructor(I,G,Z={}){if(this.type=I,I)this.#G=!0;if(this.#l=G,this.#I=this.#l?this.#l.#I:this,this.#Y=this.#I===this?Z:this.#I.#Y,this.#X=this.#I===this?[]:this.#I.#X,I==="!"&&!this.#I.#c)this.#X.push(this);this.#F=this.#l?this.#l.#Z.length:0}get hasMagic(){if(this.#G!==void 0)return this.#G;for(let I of this.#Z){if(typeof I==="string")continue;if(I.type||I.hasMagic)return this.#G=!0}return this.#G}toString(){if(this.#Q!==void 0)return this.#Q;if(!this.type)return this.#Q=this.#Z.map((I)=>String(I)).join("");else return this.#Q=this.type+"("+this.#Z.map((I)=>String(I)).join("|")+")"}#V(){if(this!==this.#I)throw Error("should only call on root");if(this.#c)return this;this.toString(),this.#c=!0;let I;while(I=this.#X.pop()){if(I.type!=="!")continue;let G=I,Z=G.#l;while(Z){for(let l=G.#F+1;!Z.type&&l<Z.#Z.length;l++)for(let b of I.#Z){if(typeof b==="string")throw Error("string part in extglob AST??");b.copyIn(Z.#Z[l])}G=Z,Z=G.#l}}return this}push(...I){for(let G of I){if(G==="")continue;if(typeof G!=="string"&&!(G instanceof Jm&&G.#l===this))throw Error("invalid part: "+G);this.#Z.push(G)}}toJSON(){let I=this.type===null?this.#Z.slice().map((G)=>typeof G==="string"?G:G.toJSON()):[this.type,...this.#Z.map((G)=>G.toJSON())];if(this.isStart()&&!this.type)I.unshift([]);if(this.isEnd()&&(this===this.#I||this.#I.#c&&this.#l?.type==="!"))I.push({});return I}isStart(){if(this.#I===this)return!0;if(!this.#l?.isStart())return!1;if(this.#F===0)return!0;let I=this.#l;for(let G=0;G<this.#F;G++){let Z=I.#Z[G];if(!(Z instanceof Jm&&Z.type==="!"))return!1}return!0}isEnd(){if(this.#I===this)return!0;if(this.#l?.type==="!")return!0;if(!this.#l?.isEnd())return!1;if(!this.type)return this.#l?.isEnd();let I=this.#l?this.#l.#Z.length:0;return this.#F===I-1}copyIn(I){if(typeof I==="string")this.push(I);else this.push(I.clone(this))}clone(I){let G=new Jm(this.type,I);for(let Z of this.#Z)G.copyIn(Z);return G}static#N(I,G,Z,l){let b=!1,W=!1,N=-1,Y=!1;if(G.type===null){let X=Z,R="";while(X<I.length){let H=I.charAt(X++);if(b||H==="\\"){b=!b,R+=H;continue}if(W){if(X===N+1){if(H==="^"||H==="!")Y=!0}else if(H==="]"&&!(X===N+2&&Y))W=!1;R+=H;continue}else if(H==="["){W=!0,N=X,Y=!1,R+=H;continue}if(!l.noext&&dwG(H)&&I.charAt(X)==="("){G.push(R),R="";let w=new Jm(H,G);X=Jm.#N(I,w,X,l),G.push(w);continue}R+=H}return G.push(R),X}let c=Z+1,V=new Jm(null,G),d=[],m="";while(c<I.length){let X=I.charAt(c++);if(b||X==="\\"){b=!b,m+=X;continue}if(W){if(c===N+1){if(X==="^"||X==="!")Y=!0}else if(X==="]"&&!(c===N+2&&Y))W=!1;m+=X;continue}else if(X==="["){W=!0,N=c,Y=!1,m+=X;continue}if(dwG(X)&&I.charAt(c)==="("){V.push(m),m="";let R=new Jm(X,V);V.push(R),c=Jm.#N(I,R,c,l);continue}if(X==="|"){V.push(m),m="",d.push(V),V=new Jm(null,G);continue}if(X===")"){if(m===""&&G.#Z.length===0)G.#d=!0;return V.push(m),m="",G.push(...d,V),c}m+=X}return G.type=null,G.#G=void 0,G.#Z=[I.substring(Z-1)],c}static fromGlob(I,G={}){let Z=new Jm(null,void 0,G);return Jm.#N(I,Z,0,G),Z}toMMPattern(){if(this!==this.#I)return this.#I.toMMPattern();let I=this.toString(),[G,Z,l,b]=this.toRegExpSource();if(!(l||this.#G||this.#Y.nocase&&!this.#Y.nocaseMagicOnly&&I.toUpperCase()!==I.toLowerCase()))return Z;let N=(this.#Y.nocase?"i":"")+(b?"u":"");return Object.assign(new RegExp(`^${G}$`,N),{_src:G,_glob:I})}get options(){return this.#Y}toRegExpSource(I){let G=I??!!this.#Y.dot;if(this.#I===this)this.#V();if(!this.type){let Y=this.isStart()&&this.isEnd(),c=this.#Z.map((X)=>{let[R,H,w,A]=typeof X==="string"?Jm.#J(X,this.#G,Y):X.toRegExpSource(I);return this.#G=this.#G||w,this.#W=this.#W||A,R}).join(""),V="";if(this.isStart()){if(typeof this.#Z[0]==="string"){if(!(this.#Z.length===1&&vjl.has(this.#Z[0]))){let R=Ejl,H=G&&R.has(c.charAt(0))||c.startsWith("\\.")&&R.has(c.charAt(2))||c.startsWith("\\.\\.")&&R.has(c.charAt(4)),w=!G&&!I&&R.has(c.charAt(0));V=H?Ajl:w?ge:""}}}let d="";if(this.isEnd()&&this.#I.#c&&this.#l?.type==="!")d="(?:$|\\/)";return[V+c+d,zp(c),this.#G=!!this.#G,this.#W]}let Z=this.type==="*"||this.type==="+",l=this.type==="!"?"(?:(?!(?:":"(?:",b=this.#R(G);if(this.isStart()&&this.isEnd()&&!b&&this.type!=="!"){let Y=this.toString();return this.#Z=[Y],this.type=null,this.#G=void 0,[Y,zp(this.toString()),!1,!1]}let W=!Z||I||G||!ge?"":this.#R(!0);if(W===b)W="";if(W)b=`(?:${b})(?:${W})*?`;let N="";if(this.type==="!"&&this.#d)N=(this.isStart()&&!G?ge:"")+QwG;else{let Y=this.type==="!"?"))"+(this.isStart()&&!G&&!I?ge:"")+mwG+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&W?")":this.type==="*"&&W?")?":`)${this.type}`;N=l+b+Y}return[N,zp(b),this.#G=!!this.#G,this.#W]}#R(I){return this.#Z.map((G)=>{if(typeof G==="string")throw Error("string type in extglob ast??");let[Z,l,b,W]=G.toRegExpSource(I);return this.#W=this.#W||W,Z}).filter((G)=>!(this.isStart()&&this.isEnd())||!!G).join("|")}static#J(I,G,Z=!1){let l=!1,b="",W=!1;for(let N=0;N<I.length;N++){let Y=I.charAt(N);if(l){l=!1,b+=(Cjl.has(Y)?"\\":"")+Y;continue}if(Y==="\\"){if(N===I.length-1)b+="\\\\";else l=!0;continue}if(Y==="["){let[c,V,d,m]=VwG(I,N);if(d){b+=c,W=W||V,N+=d-1,G=G||m;continue}}if(Y==="*"){if(Z&&I==="*")b+=QwG;else b+=mwG;G=!0;continue}if(Y==="?"){b+=g5I,G=!0;continue}b+=pjl(Y)}return[b,zp(I),!!G,W]}}var a5I=(I,{windowsPathsNoEscape:G=!1}={})=>{return G?I.replace(/[?*()[\]]/g,"[$&]"):I.replace(/[?*()[\]\\]/g,"\\$&")};var Am=(I,G,Z={})=>{if(Yq(G),!Z.nocomment&&G.charAt(0)==="#")return!1;return new Vq(G,Z).match(I)},yjl=/^\*+([^+@!?\*\[\(]*)$/,ujl=(I)=>(G)=>!G.startsWith(".")&&G.endsWith(I),Ljl=(I)=>(G)=>G.endsWith(I),gjl=(I)=>{return I=I.toLowerCase(),(G)=>!G.startsWith(".")&&G.toLowerCase().endsWith(I)},ajl=(I)=>{return I=I.toLowerCase(),(G)=>G.toLowerCase().endsWith(I)},zjl=/^\*+\.\*+$/,Bjl=(I)=>!I.startsWith(".")&&I.includes("."),kjl=(I)=>I!=="."&&I!==".."&&I.includes("."),Ujl=/^\.\*+$/,xjl=(I)=>I!=="."&&I!==".."&&I.startsWith("."),Ojl=/^\*+$/,Mjl=(I)=>I.length!==0&&!I.startsWith("."),Kjl=(I)=>I.length!==0&&I!=="."&&I!=="..",Djl=/^\?+([^+@!?\*\[\(]*)?$/,njl=([I,G=""])=>{let Z=HwG([I]);if(!G)return Z;return G=G.toLowerCase(),(l)=>Z(l)&&l.toLowerCase().endsWith(G)},jjl=([I,G=""])=>{let Z=hwG([I]);if(!G)return Z;return G=G.toLowerCase(),(l)=>Z(l)&&l.toLowerCase().endsWith(G)},qjl=([I,G=""])=>{let Z=hwG([I]);return!G?Z:(l)=>Z(l)&&l.endsWith(G)},Tjl=([I,G=""])=>{let Z=HwG([I]);return!G?Z:(l)=>Z(l)&&l.endsWith(G)},HwG=([I])=>{let G=I.length;return(Z)=>Z.length===G&&!Z.startsWith(".")},hwG=([I])=>{let G=I.length;return(Z)=>Z.length===G&&Z!=="."&&Z!==".."},wwG=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",XwG={win32:{sep:"\\"},posix:{sep:"/"}},Sjl=wwG==="win32"?XwG.win32.sep:XwG.posix.sep;Am.sep=Sjl;var OH=Symbol("globstar **");Am.GLOBSTAR=OH;var ijl="[^/]",Pjl=ijl+"*?",_jl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",sjl="(?:(?!(?:\\/|^)\\.).)*?",fjl=(I,G={})=>(Z)=>Am(Z,I,G);Am.filter=fjl;var xH=(I,G={})=>Object.assign({},I,G),$jl=(I)=>{if(!I||typeof I!=="object"||!Object.keys(I).length)return Am;let G=Am;return Object.assign((l,b,W={})=>G(l,b,xH(I,W)),{Minimatch:class extends G.Minimatch{constructor(b,W={}){super(b,xH(I,W))}static defaults(b){return G.defaults(xH(I,b)).Minimatch}},AST:class extends G.AST{constructor(b,W,N={}){super(b,W,xH(I,N))}static fromGlob(b,W={}){return G.AST.fromGlob(b,xH(I,W))}},unescape:(l,b={})=>G.unescape(l,xH(I,b)),escape:(l,b={})=>G.escape(l,xH(I,b)),filter:(l,b={})=>G.filter(l,xH(I,b)),defaults:(l)=>G.defaults(xH(I,l)),makeRe:(l,b={})=>G.makeRe(l,xH(I,b)),braceExpand:(l,b={})=>G.braceExpand(l,xH(I,b)),match:(l,b,W={})=>G.match(l,b,xH(I,W)),sep:G.sep,GLOBSTAR:OH})};Am.defaults=$jl;var JwG=(I,G={})=>{if(Yq(I),G.nobrace||!/\{(?:(?!\{).)*\}/.test(I))return[I];return RwG.default(I)};Am.braceExpand=JwG;var ojl=(I,G={})=>new Vq(I,G).makeRe();Am.makeRe=ojl;var tjl=(I,G,Z={})=>{let l=new Vq(G,Z);if(I=I.filter((b)=>l.match(b)),l.options.nonull&&!I.length)I.push(G);return I};Am.match=tjl;var FwG=/[?*]|[+@!]\(.*?\)|\[|\]/,rjl=(I)=>I.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class Vq{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(I,G={}){if(Yq(I),G=G||{},this.options=G,this.pattern=I,this.platform=G.platform||wwG,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!G.windowsPathsNoEscape||G.allowWindowsEscape===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!G.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!G.nonegate,this.comment=!1,this.empty=!1,this.partial=!!G.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=G.windowsNoMagicRoot!==void 0?G.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let I of this.set)for(let G of I)if(typeof G!=="string")return!0;return!1}debug(...I){}make(){let I=this.pattern,G=this.options;if(!G.nocomment&&I.charAt(0)==="#"){this.comment=!0;return}if(!I){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],G.debug)this.debug=(...b)=>console.error(...b);this.debug(this.pattern,this.globSet);let Z=this.globSet.map((b)=>this.slashSplit(b));this.globParts=this.preprocess(Z),this.debug(this.pattern,this.globParts);let l=this.globParts.map((b,W,N)=>{if(this.isWindows&&this.windowsNoMagicRoot){let Y=b[0]===""&&b[1]===""&&(b[2]==="?"||!FwG.test(b[2]))&&!FwG.test(b[3]),c=/^[a-z]:/i.test(b[0]);if(Y)return[...b.slice(0,4),...b.slice(4).map((V)=>this.parse(V))];else if(c)return[b[0],...b.slice(1).map((V)=>this.parse(V))]}return b.map((Y)=>this.parse(Y))});if(this.debug(this.pattern,l),this.set=l.filter((b)=>b.indexOf(!1)===-1),this.isWindows)for(let b=0;b<this.set.length;b++){let W=this.set[b];if(W[0]===""&&W[1]===""&&this.globParts[b][2]==="?"&&typeof W[3]==="string"&&/^[a-z]:$/i.test(W[3]))W[2]="?"}this.debug(this.pattern,this.set)}preprocess(I){if(this.options.noglobstar){for(let Z=0;Z<I.length;Z++)for(let l=0;l<I[Z].length;l++)if(I[Z][l]==="**")I[Z][l]="*"}let{optimizationLevel:G=1}=this.options;if(G>=2)I=this.firstPhasePreProcess(I),I=this.secondPhasePreProcess(I);else if(G>=1)I=this.levelOneOptimize(I);else I=this.adjascentGlobstarOptimize(I);return I}adjascentGlobstarOptimize(I){return I.map((G)=>{let Z=-1;while((Z=G.indexOf("**",Z+1))!==-1){let l=Z;while(G[l+1]==="**")l++;if(l!==Z)G.splice(Z,l-Z)}return G})}levelOneOptimize(I){return I.map((G)=>{return G=G.reduce((Z,l)=>{let b=Z[Z.length-1];if(l==="**"&&b==="**")return Z;if(l===".."){if(b&&b!==".."&&b!=="."&&b!=="**")return Z.pop(),Z}return Z.push(l),Z},[]),G.length===0?[""]:G})}levelTwoFileOptimize(I){if(!Array.isArray(I))I=this.slashSplit(I);let G=!1;do{if(G=!1,!this.preserveMultipleSlashes){for(let l=1;l<I.length-1;l++){let b=I[l];if(l===1&&b===""&&I[0]==="")continue;if(b==="."||b==="")G=!0,I.splice(l,1),l--}if(I[0]==="."&&I.length===2&&(I[1]==="."||I[1]===""))G=!0,I.pop()}let Z=0;while((Z=I.indexOf("..",Z+1))!==-1){let l=I[Z-1];if(l&&l!=="."&&l!==".."&&l!=="**")G=!0,I.splice(Z-1,2),Z-=2}}while(G);return I.length===0?[""]:I}firstPhasePreProcess(I){let G=!1;do{G=!1;for(let Z of I){let l=-1;while((l=Z.indexOf("**",l+1))!==-1){let W=l;while(Z[W+1]==="**")W++;if(W>l)Z.splice(l+1,W-l);let N=Z[l+1],Y=Z[l+2],c=Z[l+3];if(N!=="..")continue;if(!Y||Y==="."||Y===".."||!c||c==="."||c==="..")continue;G=!0,Z.splice(l,1);let V=Z.slice(0);V[l]="**",I.push(V),l--}if(!this.preserveMultipleSlashes){for(let W=1;W<Z.length-1;W++){let N=Z[W];if(W===1&&N===""&&Z[0]==="")continue;if(N==="."||N==="")G=!0,Z.splice(W,1),W--}if(Z[0]==="."&&Z.length===2&&(Z[1]==="."||Z[1]===""))G=!0,Z.pop()}let b=0;while((b=Z.indexOf("..",b+1))!==-1){let W=Z[b-1];if(W&&W!=="."&&W!==".."&&W!=="**"){G=!0;let Y=b===1&&Z[b+1]==="**"?["."]:[];if(Z.splice(b-1,2,...Y),Z.length===0)Z.push("");b-=2}}}}while(G);return I}secondPhasePreProcess(I){for(let G=0;G<I.length-1;G++)for(let Z=G+1;Z<I.length;Z++){let l=this.partsMatch(I[G],I[Z],!this.preserveMultipleSlashes);if(l){I[G]=[],I[Z]=l;break}}return I.filter((G)=>G.length)}partsMatch(I,G,Z=!1){let l=0,b=0,W=[],N="";while(l<I.length&&b<G.length)if(I[l]===G[b])W.push(N==="b"?G[b]:I[l]),l++,b++;else if(Z&&I[l]==="**"&&G[b]===I[l+1])W.push(I[l]),l++;else if(Z&&G[b]==="**"&&I[l]===G[b+1])W.push(G[b]),b++;else if(I[l]==="*"&&G[b]&&(this.options.dot||!G[b].startsWith("."))&&G[b]!=="**"){if(N==="b")return!1;N="a",W.push(I[l]),l++,b++}else if(G[b]==="*"&&I[l]&&(this.options.dot||!I[l].startsWith("."))&&I[l]!=="**"){if(N==="a")return!1;N="b",W.push(G[b]),l++,b++}else return!1;return I.length===G.length&&W}parseNegate(){if(this.nonegate)return;let I=this.pattern,G=!1,Z=0;for(let l=0;l<I.length&&I.charAt(l)==="!";l++)G=!G,Z++;if(Z)this.pattern=I.slice(Z);this.negate=G}matchOne(I,G,Z=!1){let l=this.options;if(this.isWindows){let H=typeof I[0]==="string"&&/^[a-z]:$/i.test(I[0]),w=!H&&I[0]===""&&I[1]===""&&I[2]==="?"&&/^[a-z]:$/i.test(I[3]),A=typeof G[0]==="string"&&/^[a-z]:$/i.test(G[0]),y=!A&&G[0]===""&&G[1]===""&&G[2]==="?"&&typeof G[3]==="string"&&/^[a-z]:$/i.test(G[3]),g=w?3:H?0:void 0,a=y?3:A?0:void 0;if(typeof g==="number"&&typeof a==="number"){let[B,U]=[I[g],G[a]];if(B.toLowerCase()===U.toLowerCase()){if(G[a]=B,a>g)G=G.slice(a);else if(g>a)I=I.slice(g)}}}let{optimizationLevel:b=1}=this.options;if(b>=2)I=this.levelTwoFileOptimize(I);this.debug("matchOne",this,{file:I,pattern:G}),this.debug("matchOne",I.length,G.length);for(var W=0,N=0,Y=I.length,c=G.length;W<Y&&N<c;W++,N++){this.debug("matchOne loop");var V=G[N],d=I[W];if(this.debug(G,V,d),V===!1)return!1;if(V===OH){this.debug("GLOBSTAR",[G,V,d]);var m=W,X=N+1;if(X===c){this.debug("** at the end");for(;W<Y;W++)if(I[W]==="."||I[W]===".."||!l.dot&&I[W].charAt(0)===".")return!1;return!0}while(m<Y){var R=I[m];if(this.debug(`
|
|
550
550
|
globstar while`,I,m,G,X,R),this.matchOne(I.slice(m),G.slice(X),Z))return this.debug("globstar found match!",m,Y,R),!0;else{if(R==="."||R===".."||!l.dot&&R.charAt(0)==="."){this.debug("dot detected!",I,m,G,X);break}this.debug("globstar swallow a segment, and continue"),m++}}if(Z){if(this.debug(`
|
|
551
|
-
>>> no match, partial?`,I,m,G,X),m===Y)return!0}return!1}let H;if(typeof V==="string")H=d===V,this.debug("string match",V,d,H);else H=V.test(d),this.debug("pattern match",V,d,H);if(!H)return!1}if(W===Y&&N===c)return!0;else if(W===Y)return Z;else if(N===c)return W===Y-1&&I[W]==="";else throw Error("wtf?")}braceExpand(){return JwG(this.pattern,this.options)}parse(I){Yq(I);let G=this.options;if(I==="**")return OH;if(I==="")return"";let Z,l=null;if(Z=I.match(Ojl))l=G.dot?Kjl:Mjl;else if(Z=I.match(yjl))l=(G.nocase?G.dot?ajl:gjl:G.dot?Ljl:ujl)(Z[1]);else if(Z=I.match(Djl))l=(G.nocase?G.dot?jjl:njl:G.dot?qjl:Tjl)(Z);else if(Z=I.match(zjl))l=G.dot?kjl:Bjl;else if(Z=I.match(Ujl))l=xjl;let b=Jm.fromGlob(I,this.options).toMMPattern();if(l&&typeof b==="object")Reflect.defineProperty(b,"test",{value:l});return b}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let I=this.set;if(!I.length)return this.regexp=!1,this.regexp;let G=this.options,Z=G.noglobstar?Pjl:G.dot?_jl:sjl,l=new Set(G.nocase?["i"]:[]),b=I.map((Y)=>{let c=Y.map((V)=>{if(V instanceof RegExp)for(let d of V.flags.split(""))l.add(d);return typeof V==="string"?rjl(V):V===OH?OH:V._src});return c.forEach((V,d)=>{let m=c[d+1],X=c[d-1];if(V!==OH||X===OH)return;if(X===void 0)if(m!==void 0&&m!==OH)c[d+1]="(?:\\/|"+Z+"\\/)?"+m;else c[d]=Z;else if(m===void 0)c[d-1]=X+"(?:\\/|"+Z+")?";else if(m!==OH)c[d-1]=X+"(?:\\/|\\/"+Z+"\\/)"+m,c[d+1]=OH}),c.filter((V)=>V!==OH).join("/")}).join("|"),[W,N]=I.length>1?["(?:",")"]:["",""];if(b="^"+W+b+N+"$",this.negate)b="^(?!"+b+").+$";try{this.regexp=new RegExp(b,[...l].join(""))}catch(Y){this.regexp=!1}return this.regexp}slashSplit(I){if(this.preserveMultipleSlashes)return I.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(I))return["",...I.split(/\/+/)];else return I.split(/\/+/)}match(I,G=this.partial){if(this.debug("match",I,this.pattern),this.comment)return!1;if(this.empty)return I==="";if(I==="/"&&G)return!0;let Z=this.options;if(this.isWindows)I=I.split("\\").join("/");let l=this.slashSplit(I);this.debug(this.pattern,"split",l);let b=this.set;this.debug(this.pattern,"set",b);let W=l[l.length-1];if(!W)for(let N=l.length-2;!W&&N>=0;N--)W=l[N];for(let N=0;N<b.length;N++){let Y=b[N],c=l;if(Z.matchBase&&Y.length===1)c=[W];if(this.matchOne(c,Y,G)){if(Z.flipNegate)return!0;return!this.negate}}if(Z.flipNegate)return!1;return this.negate}static defaults(I){return Am.defaults(I).Minimatch}}Am.AST=Jm;Am.Minimatch=Vq;Am.escape=a5I;Am.unescape=zp;var EwG="@fastify/otel",I8l="0.8.0",G8l=">=4.0.0 <6",vwG=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],ic={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Bp={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},o4="anonymous",gX=Symbol("fastify otel instance"),kp=Symbol("fastify otel request spans"),dq=Symbol("fastify otel request context"),CwG=Symbol("fastify otel addhook original"),pwG=Symbol("fastify otel setnotfound original"),ae=Symbol("fastify otel ignore path");class z5I extends ywG.InstrumentationBase{constructor(I){super(EwG,I8l,I);if(this.servername=I?.servername??process.env.OTEL_SERVICE_NAME??"fastify",this[ae]=null,this._logger=td.diag.createComponentLogger({namespace:EwG}),I?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let G=I?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof G!=="string"||G.length===0)&&typeof G!=="function")throw TypeError("ignorePaths must be a string or a function");let Z=Am;this[ae]=(l)=>{if(typeof G==="function")return G(l);else return Z(l.url,G)}}}enable(){if(this._handleInitialization===void 0&&this.getConfig().registerOnInitialization){let I=this.plugin();this._handleInitialization=(G)=>{G.fastify.register(I)},AwG.subscribe("fastify.initialization",this._handleInitialization)}return super.enable()}disable(){if(this._handleInitialization)AwG.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0;return super.disable()}init(){return[]}plugin(){let I=this;return G[Symbol.for("skip-override")]=!0,G[Symbol.for("fastify.display-name")]="@fastify/otel",G[Symbol.for("plugin-meta")]={fastify:G8l,name:"@fastify/otel"},G;function G(Z,l,b){Z.decorate(gX,I),Z.decorate(CwG,Z.addHook),Z.decorate(pwG,Z.setNotFoundHandler),Z.decorateRequest("opentelemetry",function(){let m=this[dq];return{span:this[kp],tracer:I.tracer,context:m,inject:(R,H)=>{return td.propagation.inject(m,R,H)},extract:(R,H)=>{return td.propagation.extract(m,R,H)}}}),Z.decorateRequest(kp,null),Z.decorateRequest(dq,null),Z.addHook("onRoute",function(d){if(I[ae]?.(d)===!0){I._logger.debug(`Ignoring route instrumentation ${d.method} ${d.url} because it matches the ignore path`);return}for(let m of vwG)if(d[m]!=null){let X=d[m];if(typeof X==="function")d[m]=V(X,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - route -> ${m}`,[ic.FASTIFY_TYPE]:Bp.ROUTE,[p2.ATTR_HTTP_ROUTE]:d.url,[ic.HOOK_CALLBACK_NAME]:X.name?.length>0?X.name:o4});else if(Array.isArray(X)){let R=[];for(let H of X)R.push(V(H,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - route -> ${m}`,[ic.FASTIFY_TYPE]:Bp.ROUTE,[p2.ATTR_HTTP_ROUTE]:d.url,[ic.HOOK_CALLBACK_NAME]:H.name?.length>0?H.name:o4}));d[m]=R}}if(d.onSend!=null)d.onSend=Array.isArray(d.onSend)?[...d.onSend,W]:[d.onSend,W];else d.onSend=W;if(d.onError!=null)d.onError=Array.isArray(d.onError)?[...d.onError,N]:[d.onError,N];else d.onError=N;d.handler=V(d.handler,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - route-handler`,[ic.FASTIFY_TYPE]:Bp.HANDLER,[p2.ATTR_HTTP_ROUTE]:d.url,[ic.HOOK_CALLBACK_NAME]:d.handler.name.length>0?d.handler.name:o4})}),Z.addHook("onRequest",function(d,m,X){if(this[gX].isEnabled()===!1)return X();else if(this[gX][ae]?.({url:d.url,method:d.method})===!0)return this[gX]._logger.debug(`Ignoring request ${d.method} ${d.url} because it matches the ignore path`),X();let R=td.context.active();if(td.trace.getSpan(R)==null)R=td.propagation.extract(R,d.headers);let H=ze.getRPCMetadata(R);if(d.routeOptions.url!=null&&H?.type===ze.RPCType.HTTP)H.route=d.routeOptions.url;let w=this[gX].tracer.startSpan("request",{attributes:{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.ROOT]:"@fastify/otel",[p2.ATTR_HTTP_ROUTE]:d.url,[p2.ATTR_HTTP_REQUEST_METHOD]:d.method}},R);d[dq]=td.trace.setSpan(R,w),d[kp]=w,td.context.with(d[dq],()=>{X()})}),Z.addHook("onResponse",function(d,m,X){let R=d[kp];if(R!=null)R.setStatus({code:td.SpanStatusCode.OK,message:"OK"}),R.setAttributes({[p2.ATTR_HTTP_RESPONSE_STATUS_CODE]:404}),R.end();d[kp]=null,X()}),Z.addHook=Y,Z.setNotFoundHandler=c,b();function W(d,m,X,R){let H=d[kp];if(H!=null){if(m.statusCode<500)H.setStatus({code:td.SpanStatusCode.OK,message:"OK"});H.setAttributes({[p2.ATTR_HTTP_RESPONSE_STATUS_CODE]:m.statusCode}),H.end()}d[kp]=null,R(null,X)}function N(d,m,X,R){let H=d[kp];if(H!=null)H.setStatus({code:td.SpanStatusCode.ERROR,message:X.message}),H.recordException(X);R()}function Y(d,m){let X=this[CwG];if(vwG.includes(d))return X.call(this,d,V(m,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - ${d}`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:o4}));else return X.call(this,d,m)}function c(d,m){let X=this[pwG];if(typeof d==="function")m=V(d,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:d.name?.length>0?d.name:o4}),X.call(this,m);else{if(d.preValidation!=null)d.preValidation=V(d.preValidation,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:d.preValidation.name?.length>0?d.preValidation.name:o4});if(d.preHandler!=null)d.preHandler=V(d.preHandler,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:d.preHandler.name?.length>0?d.preHandler.name:o4});m=V(m,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:o4}),X.call(this,d,m)}}function V(d,m={}){return function(...R){let H=this[gX],[w]=R;if(H.isEnabled()===!1)return d.call(this,...R);let A=w[dq]??td.context.active(),y=H.tracer.startSpan(`handler - ${d.name?.length>0?d.name:this.pluginName??o4}`,{attributes:m},A);return td.context.with(td.trace.setSpan(A,y),function(){try{let g=d.call(this,...R);if(typeof g?.then==="function")return g.then((a)=>{return y.end(),a},(a)=>{return y.setStatus({code:td.SpanStatusCode.ERROR,message:a.message}),y.recordException(a),y.end(),Promise.reject(a)});return y.end(),g}catch(g){throw y.setStatus({code:td.SpanStatusCode.ERROR,message:g.message}),y.recordException(g),y.end(),g}},this)}}}}}var Uw=hI(Il(),1),ke=hI($N(),1),sg=hI(BN(),1),zwG=hI(tY(),1);var t4;(function(I){I.FASTIFY_NAME="fastify.name";let Z="fastify.type";I.FASTIFY_TYPE=Z;let l="hook.name";I.HOOK_NAME=l;let b="plugin.name";I.PLUGIN_NAME=b})(t4||(t4={}));var mq;(function(I){I.MIDDLEWARE="middleware";let Z="request_handler";I.REQUEST_HANDLER=Z})(mq||(mq={}));var Qq;(function(I){I.MIDDLEWARE="middleware";let Z="request handler";I.REQUEST_HANDLER=Z})(Qq||(Qq={}));var LwG=hI(Il(),1);var Xq=Symbol("opentelemetry.instrumentation.fastify.request_active_span");function B5I(I,G,Z,l={}){let b=G.startSpan(Z,{attributes:l}),W=I[Xq]||[];return W.push(b),Object.defineProperty(I,Xq,{enumerable:!1,configurable:!0,value:W}),b}function Be(I,G){let Z=I[Xq]||[];if(!Z.length)return;Z.forEach((l)=>{if(G)l.setStatus({code:LwG.SpanStatusCode.ERROR,message:G.message}),l.recordException(G);l.end()}),delete I[Xq]}function gwG(I,G,Z){let l,b=void 0;try{if(b=I(),uwG(b))b.then((W)=>G(void 0,W),(W)=>G(W))}catch(W){l=W}finally{if(!uwG(b)){if(G(l,b),l)throw l}return b}}function uwG(I){return typeof I==="object"&&I&&typeof Object.getOwnPropertyDescriptor(I,"then")?.value==="function"||!1}var Z8l="0.1.0",l8l="@sentry/instrumentation-fastify-v3",awG="anonymous",b8l=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class k5I extends sg.InstrumentationBase{constructor(I={}){super(l8l,Z8l,I)}init(){return[new sg.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],(I)=>{return this._patchConstructor(I)})]}_hookOnRequest(){let I=this;return function(Z,l,b){if(!I.isEnabled())return b();I._wrap(l,"send",I._patchSend());let W=Z,N=ke.getRPCMetadata(Uw.context.active()),Y=W.routeOptions?W.routeOptions.url:Z.routerPath;if(Y&&N?.type===ke.RPCType.HTTP)N.route=Y;let c=Z.method||"GET";kN().setTransactionName(`${c} ${Y}`),b()}}_wrapHandler(I,G,Z,l){let b=this;return this._diag.debug("Patching fastify route.handler function"),function(...W){if(!b.isEnabled())return Z.apply(this,W);let N=Z.name||I||awG,Y=`${Qq.MIDDLEWARE} - ${N}`,c=W[1],V=B5I(c,b.tracer,Y,{[t4.FASTIFY_TYPE]:mq.MIDDLEWARE,[t4.PLUGIN_NAME]:I,[t4.HOOK_NAME]:G}),d=l&&W[W.length-1];if(d)W[W.length-1]=function(...m){Be(c),d.apply(this,m)};return Uw.context.with(Uw.trace.setSpan(Uw.context.active(),V),()=>{return gwG(()=>{return Z.apply(this,W)},(m)=>{if(m instanceof Error)V.setStatus({code:Uw.SpanStatusCode.ERROR,message:m.message}),V.recordException(m);if(!l)Be(c)})})}}_wrapAddHook(){let I=this;return this._diag.debug("Patching fastify server.addHook function"),function(G){return function(...l){let b=l[0],W=l[1],N=this.pluginName;if(!b8l.has(b))return G.apply(this,l);let Y=typeof l[l.length-1]==="function"&&W.constructor.name!=="AsyncFunction";return G.apply(this,[b,I._wrapHandler(N,b,W,Y)])}}}_patchConstructor(I){let G=this;function Z(...l){let b=I.fastify.apply(this,l);return b.addHook("onRequest",G._hookOnRequest()),b.addHook("preHandler",G._hookPreHandler()),W8l(),G._wrap(b,"addHook",G._wrapAddHook()),b}if(I.errorCodes!==void 0)Z.errorCodes=I.errorCodes;return Z.fastify=Z,Z.default=Z,Z}_patchSend(){let I=this;return this._diag.debug("Patching fastify reply.send function"),function(Z){return function(...b){let W=b[0];if(!I.isEnabled())return Z.apply(this,b);return sg.safeExecuteInTheMiddle(()=>{return Z.apply(this,b)},(N)=>{if(!N&&W instanceof Error)N=W;Be(this,N)})}}}_hookPreHandler(){let I=this;return this._diag.debug("Patching fastify preHandler function"),function(Z,l,b){if(!I.isEnabled())return b();let W=Z,N=W.routeOptions?.handler||W.context?.handler,Y=N?.name.startsWith("bound ")?N.name.substring(6):N?.name,c=`${Qq.REQUEST_HANDLER} - ${Y||this.pluginName||awG}`,V={[t4.PLUGIN_NAME]:this.pluginName,[t4.FASTIFY_TYPE]:mq.REQUEST_HANDLER,[zwG.SEMATTRS_HTTP_ROUTE]:W.routeOptions?W.routeOptions.url:Z.routerPath};if(Y)V[t4.FASTIFY_NAME]=Y;let d=B5I(l,I.tracer,c,V);BwG(d);let{requestHook:m}=I.getConfig();if(m)sg.safeExecuteInTheMiddle(()=>m(d,{request:Z}),(X)=>{if(X)I._diag.error("request hook failed",X)},!0);return Uw.context.with(Uw.trace.setSpan(Uw.context.active(),d),()=>{b()})}}}function W8l(){let I=Cb();if(I)I.on("spanStart",(G)=>{BwG(G)})}function BwG(I){let G=pb(I).data,Z=G["fastify.type"];if(G[XW]||!Z)return;I.setAttributes({[oN]:"auto.http.otel.fastify",[XW]:`${Z}.fastify`});let l=G["fastify.name"]||G["plugin.name"]||G["hook.name"];if(typeof l==="string"){let b=l.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");I.updateName(b)}}var UwG="Fastify",N8l="Fastify-V5",Y8l="Fastify-V3",xwG=cb(Y8l,()=>new k5I);function c8l(){let I=Cb();if(!I)return;else return I.getIntegrationByName(UwG)}function kwG(I,G,Z,l){let b=c8l()?.getShouldHandleError()||KwG;if(l==="diagnostics-channel")this.diagnosticsChannelExists=!0;if(this.diagnosticsChannelExists&&l==="onError-hook"){RA&&yG.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}if(b(I,G,Z))z0(I,{mechanism:{handled:!1,type:"fastify"}})}var OwG=cb(N8l,()=>{let I=new z5I,G=I.plugin();return U5I.subscribe("fastify.initialization",(Z)=>{let l=Z.fastify;l?.register(G).after((b)=>{if(b)RA&&yG.error("Failed to setup Fastify instrumentation",b);else if(d8l(),l)m8l(l)})}),U5I.subscribe("tracing:fastify.request.handler:error",(Z)=>{let{error:l,request:b,reply:W}=Z;kwG.call(kwG,l,b,W,"diagnostics-channel")}),I}),V8l=({shouldHandleError:I})=>{let G;return{name:UwG,setupOnce(){G=I||KwG,xwG(),OwG()},getShouldHandleError(){return G},setShouldHandleError(Z){G=Z}}},MwG=tZ((I={})=>V8l(I));function KwG(I,G,Z){let l=Z.statusCode;return l>=500||l<=299}function DwG(I){let G=pb(I),Z=G.description,l=G.data,b=l["fastify.type"],W=b==="hook",N=b===Z?.startsWith("handler -"),Y=Z==="request"||b==="request-handler";if(l[XW]||!N&&!Y&&!W)return;let c=W?"hook":N?"middleware":Y?"request-handler":"<unknown>";I.setAttributes({[oN]:"auto.http.otel.fastify",[XW]:`${c}.fastify`});let V=l["fastify.name"]||l["plugin.name"]||l["hook.name"];if(typeof V==="string"){let d=V.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");I.updateName(d)}}function d8l(){let I=Cb();if(I)I.on("spanStart",(G)=>{DwG(G)})}function m8l(I){I.addHook("onRequest",async(G,Z)=>{if(G.opentelemetry){let{span:W}=G.opentelemetry();if(W)DwG(W)}let l=G.routeOptions?.url,b=G.method||"GET";kN().setTransactionName(`${b} ${l}`)})}var v5G=hI(Il(),1),C5G=hI(E5G(),1);var p5G="Graphql",y5G=cb(p5G,C5G.GraphQLInstrumentation,(I)=>{let G=L5G(I);return{...G,responseHook(Z,l){if(Sc(Z,"auto.graphql.otel.graphql"),l.errors?.length&&!pb(Z).status)Z.setStatus({code:v5G.SpanStatusCode.ERROR});let W=pb(Z).data,N=W["graphql.operation.type"],Y=W["graphql.operation.name"];if(G.useOperationNameForRootSpan&&N){let c=Xd(Z),d=pb(c).data[Yx]||[],m=Y?`${N} ${Y}`:`${N}`;if(Array.isArray(d))d.push(m),c.setAttribute(Yx,d);else if(typeof d==="string")c.setAttribute(Yx,[d,m]);else c.setAttribute(Yx,m);if(!pb(c).data["original-description"])c.setAttribute("original-description",pb(c).description);c.updateName(`${pb(c).data["original-description"]} (${D8l(d)})`)}}}}),K8l=(I={})=>{return{name:p5G,setupOnce(){y5G(L5G(I))}}},u5G=tZ(K8l);function L5G(I){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...I}}function D8l(I){if(Array.isArray(I)){let G=I.slice().sort();if(G.length<=5)return G.join(", ");else return`${G.slice(0,5).join(", ")}, +${G.length-5}`}return`${I}`}var i5G=hI(S5G(),1);var P5G="Kafka",_5G=cb(P5G,()=>new i5G.KafkaJsInstrumentation({consumerHook(I){Sc(I,"auto.kafkajs.otel.consumer")},producerHook(I){Sc(I,"auto.kafkajs.otel.producer")}})),q8l=()=>{return{name:P5G,setupOnce(){_5G()}}},s5G=tZ(q8l);var WJG=hI(bJG(),1);var NJG="LruMemoizer",YJG=cb(NJG,()=>new WJG.LruMemoizerInstrumentation),P8l=()=>{return{name:NJG,setupOnce(){YJG()}}},cJG=tZ(P8l);var CJG=hI(vJG(),1);var pJG="Mongo",yJG=cb(pJG,()=>new CJG.MongoDBInstrumentation({dbStatementSerializer:o8l,responseHook(I){Sc(I,"auto.db.otel.mongo")}}));function o8l(I){let G=S5I(I);return JSON.stringify(G)}function S5I(I){if(Array.isArray(I))return I.map((G)=>S5I(G));if(t8l(I)){let G={};return Object.entries(I).map(([Z,l])=>[Z,S5I(l)]).reduce((Z,l)=>{if(e8l(l))Z[l[0]]=l[1];return Z},G)}return"?"}function t8l(I){return typeof I==="object"&&I!==null&&!r8l(I)}function r8l(I){let G=!1;if(typeof Buffer<"u")G=Buffer.isBuffer(I);return G}function e8l(I){return Array.isArray(I)}var I7l=()=>{return{name:pJG,setupOnce(){yJG()}}},uJG=tZ(I7l);var sJG=hI(_JG(),1);var fJG="Mongoose",$JG=cb(fJG,()=>new sJG.MongooseInstrumentation({responseHook(I){Sc(I,"auto.db.otel.mongoose")}})),X7l=()=>{return{name:fJG,setupOnce(){$JG()}}},oJG=tZ(X7l);var FAG=hI(XAG(),1);var RAG="Mysql",HAG=cb(RAG,()=>new FAG.MySQLInstrumentation({})),a7l=()=>{return{name:RAG,setupOnce(){HAG()}}},hAG=tZ(a7l);var KAG=hI(MAG(),1);var DAG="Mysql2",nAG=cb(DAG,()=>new KAG.MySQL2Instrumentation({responseHook(I){Sc(I,"auto.db.otel.mysql2")}})),_7l=()=>{return{name:DAG,setupOnce(){nAG()}}},jAG=tZ(_7l);var LEG=hI(WEG(),1),gEG=hI(vEG(),1);var Nql=["get","set","setex"],IJI=["get","mget"],Yql=["set","setex"];function vq(I,G){return I.includes(G.toLowerCase())}function GJI(I){if(vq(IJI,I))return"cache.get";else if(vq(Yql,I))return"cache.put";else return}function cql(I,G){return G.some((Z)=>I.startsWith(Z))}function pEG(I,G){try{if(G.length===0)return;let Z=(b)=>{if(typeof b==="string"||typeof b==="number"||Buffer.isBuffer(b))return[b.toString()];else if(Array.isArray(b))return CEG(b.map((W)=>Z(W)));else return["<unknown>"]},l=G[0];if(vq(Nql,I)&&l!=null)return Z(l);return CEG(G.map((b)=>Z(b)))}catch{return}}function yEG(I,G,Z){if(!GJI(I))return!1;for(let l of G)if(cql(l,Z))return!0;return!1}function uEG(I){let G=(Z)=>{try{if(Buffer.isBuffer(Z))return Z.byteLength;else if(typeof Z==="string")return Z.length;else if(typeof Z==="number")return Z.toString().length;else if(Z===null||Z===void 0)return 0;return JSON.stringify(Z).length}catch{return}};return Array.isArray(I)?I.reduce((Z,l)=>{let b=G(l);return typeof b==="number"?Z!==void 0?Z+b:b:Z},0):G(I)}function CEG(I){let G=[],Z=(l)=>{l.forEach((b)=>{if(Array.isArray(b))Z(b);else G.push(b)})};return Z(I),G}var aEG="Redis",ZJI={},zEG=(I,G,Z,l)=>{I.setAttribute(oN,"auto.db.otel.redis");let b=pEG(G,Z),W=GJI(G);if(!b||!W||!ZJI.cachePrefixes||!yEG(G,b,ZJI.cachePrefixes))return;let N=pb(I).data["net.peer.name"],Y=pb(I).data["net.peer.port"];if(Y&&N)I.setAttributes({"network.peer.address":N,"network.peer.port":Y});let c=uEG(l);if(c)I.setAttribute(VhI,c);if(vq(IJI,G)&&c!==void 0)I.setAttribute(YhI,c>0);I.setAttributes({[XW]:W,[chI]:b});let V=b.join(", ");I.updateName(NA(V,1024))},Vql=cb("IORedis",()=>{return new LEG.IORedisInstrumentation({responseHook:zEG})}),dql=cb("Redis-4",()=>{return new gEG.RedisInstrumentation({responseHook:zEG})}),BEG=Object.assign(()=>{Vql(),dql()},{id:aEG}),mql=(I={})=>{return{name:aEG,setupOnce(){ZJI=I,BEG()}}},kEG=tZ(mql);var d4G=hI(V4G(),1);var m4G="Postgres",Q4G=cb(m4G,()=>new d4G.PgInstrumentation({requireParentSpan:!0,requestHook(I){Sc(I,"auto.db.otel.postgres")}})),$ql=()=>{return{name:m4G,setupOnce(){Q4G()}}},X4G=tZ($ql);var Cx=hI(Il(),1),bv=hI(BN(),1),BQ=hI(tY(),1);var dJI="PostgresJs",F4G=[">=3.0.0 <4"],R4G=cb(dJI,(I)=>new H4G({requireParentSpan:I?.requireParentSpan??!0,requestHook:I?.requestHook}));class H4G extends bv.InstrumentationBase{constructor(I){super("sentry-postgres-js",oY,I)}init(){let I=new bv.InstrumentationNodeModuleDefinition("postgres",F4G);return["src","cf/src","cjs/src"].forEach((G)=>{I.files.push(new bv.InstrumentationNodeModuleFile(`postgres/${G}/connection.js`,["*"],this._patchConnection.bind(this),this._unwrap.bind(this))),I.files.push(new bv.InstrumentationNodeModuleFile(`postgres/${G}/query.js`,F4G,this._patchQuery.bind(this),this._unwrap.bind(this)))}),[I]}_shouldCreateSpans(){let I=this.getConfig();return Cx.trace.getSpan(Cx.context.active())!==void 0||!I.requireParentSpan}_patchReject(I,G){return new Proxy(I,{apply:(Z,l,b)=>{G.setStatus({code:SF,message:b?.[0]?.message||"unknown_error"});let W=Reflect.apply(Z,l,b);return G.setAttribute(BQ.ATTR_DB_RESPONSE_STATUS_CODE,b?.[0]?.code||"Unknown error"),G.setAttribute(BQ.ATTR_ERROR_TYPE,b?.[0]?.name||"Unknown error"),G.end(),W}})}_patchResolve(I,G){return new Proxy(I,{apply:(Z,l,b)=>{let W=Reflect.apply(Z,l,b),N=b?.[0]?.command;if(N)G.setAttribute(BQ.ATTR_DB_OPERATION_NAME,N);return G.end(),W}})}_patchQuery(I){return I.Query.prototype.handle=new Proxy(I.Query.prototype.handle,{apply:async(G,Z,l)=>{if(!this._shouldCreateSpans())return Reflect.apply(G,Z,l);let b=this._sanitizeSqlQuery(Z.strings?.[0]);return pr({name:b||"postgresjs.query",op:"db"},(W)=>{let Y=jW().getScopeData().contexts.postgresjsConnection;Sc(W,"auto.db.otel.postgres");let{requestHook:c}=this.getConfig();if(c)bv.safeExecuteInTheMiddle(()=>c(W,b,Y),(X)=>{if(X)yG.error(`Error in requestHook for ${dJI} integration:`,X)});let V=Y?.ATTR_DB_NAMESPACE||"<unknown database>",d=Y?.ATTR_SERVER_ADDRESS||"<unknown host>",m=Y?.ATTR_SERVER_PORT||"<unknown port>";W.setAttribute(BQ.ATTR_DB_SYSTEM_NAME,"postgres"),W.setAttribute(BQ.ATTR_DB_NAMESPACE,V),W.setAttribute(BQ.ATTR_SERVER_ADDRESS,d),W.setAttribute(BQ.ATTR_SERVER_PORT,m),W.setAttribute(BQ.ATTR_DB_QUERY_TEXT,b),Z.resolve=this._patchResolve(Z.resolve,W),Z.reject=this._patchReject(Z.reject,W);try{return Reflect.apply(G,Z,l)}catch(X){throw W.setStatus({code:SF}),W.end(),X}})}}),I}_patchConnection(I){return new Proxy(I,{apply:(G,Z,l)=>{let b=l[0]?.database||"<unknown database>",W=l[0]?.host?.[0]||"<unknown host>",N=l[0]?.port?.[0]||"<unknown port>";return jW().setContext("postgresjsConnection",{ATTR_DB_NAMESPACE:b,ATTR_SERVER_ADDRESS:W,ATTR_SERVER_PORT:N}),Reflect.apply(G,Z,l)}})}_sanitizeSqlQuery(I){if(!I)return"Unknown SQL Query";return I.replace(/\s+/g," ").trim().substring(0,1024).replace(/--.*?(\r?\n|$)/g,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\b\d+\b/g,"?").replace(/\s+/g," ").replace(/\bIN\b\s*\(\s*\?(?:\s*,\s*\?)*\s*\)/g,"IN (?)")}}var oql=()=>{return{name:dJI,setupOnce(){R4G()}}},h4G=tZ(oql);var A4G=hI(Il(),1),Se=hI(BN(),1),sp=hI(Il(),1);var tql=process.env.PRISMA_SHOW_ALL_TRACES==="true",rql="00-10-10-00";function eql(I){switch(I){case"client":return sp.SpanKind.CLIENT;case"internal":default:return sp.SpanKind.INTERNAL}}var ITl=class{traceMiddleware;tracerProvider;ignoreSpanTypes;constructor({traceMiddleware:I,tracerProvider:G,ignoreSpanTypes:Z}){this.traceMiddleware=I,this.tracerProvider=G,this.ignoreSpanTypes=Z}isEnabled(){return!0}getTraceParent(I){let G=sp.trace.getSpanContext(I??sp.context.active());if(G)return`00-${G.traceId}-${G.spanId}-0${G.traceFlags}`;return rql}dispatchEngineSpans(I){let G=this.tracerProvider.getTracer("prisma"),Z=new Map,l=I.filter((b)=>b.parentId===null);for(let b of l)E4G(G,b,I,Z,this.ignoreSpanTypes)}getActiveContext(){return sp.context.active()}runInChildSpan(I,G){if(typeof I==="string")I={name:I};if(I.internal&&!tql)return G();if(I.middleware&&!this.traceMiddleware)return G();let Z=this.tracerProvider.getTracer("prisma"),l=I.context??this.getActiveContext(),b=`prisma:client:${I.name}`;if(v4G(b,this.ignoreSpanTypes))return G();if(I.active===!1){let W=Z.startSpan(b,I,l);return w4G(W,G(W,l))}return Z.startActiveSpan(b,I,(W)=>w4G(W,G(W,l)))}};function E4G(I,G,Z,l,b){if(v4G(G.name,b))return;let W={attributes:G.attributes,kind:eql(G.kind),startTime:G.startTime};I.startActiveSpan(G.name,W,(N)=>{if(l.set(G.id,N.spanContext().spanId),G.links)N.addLinks(G.links.flatMap((c)=>{let V=l.get(c);if(!V)return[];return{context:{spanId:V,traceId:N.spanContext().traceId,traceFlags:N.spanContext().traceFlags}}}));let Y=Z.filter((c)=>c.parentId===G.id);for(let c of Y)E4G(I,c,Z,l,b);N.end(G.endTime)})}function w4G(I,G){if(GTl(G))return G.then((Z)=>{return I.end(),Z},(Z)=>{throw I.end(),Z});return I.end(),G}function GTl(I){return I!=null&&typeof I.then==="function"}function v4G(I,G){return G.some((Z)=>typeof Z==="string"?Z===I:Z.test(I))}var C4G={name:"@prisma/instrumentation",version:"6.11.1",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@prisma/internals":"workspace:*","@swc/core":"1.11.5","@types/jest":"29.5.14","@types/node":"18.19.76","@opentelemetry/api":"1.9.0",jest:"29.7.0","jest-junit":"16.0.0",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"jest"},sideEffects:!1},QJI=C4G.version,ZTl=QJI.split(".")[0],J4G="PRISMA_INSTRUMENTATION",mJI=`V${ZTl}_PRISMA_INSTRUMENTATION`,lTl=C4G.name,bTl="@prisma/client",p4G=class extends Se.InstrumentationBase{tracerProvider;constructor(I={}){super(lTl,QJI,I)}setTracerProvider(I){this.tracerProvider=I}init(){return[new Se.InstrumentationNodeModuleDefinition(bTl,[QJI])]}enable(){let I=this._config,G={helper:new ITl({traceMiddleware:I.middleware??!1,tracerProvider:this.tracerProvider??A4G.trace.getTracerProvider(),ignoreSpanTypes:I.ignoreSpanTypes??[]})};global[J4G]=G,global[mJI]=G}disable(){delete global[J4G],delete global[mJI]}isEnabled(){return Boolean(global[mJI])}};var y4G="Prisma";function WTl(I){return!!I&&typeof I==="object"&&"dispatchEngineSpans"in I}function u4G(){let I=globalThis.PRISMA_INSTRUMENTATION;return I&&typeof I==="object"&&"helper"in I?I.helper:void 0}class L4G extends p4G{constructor(){super()}enable(){super.enable();let I=u4G(),G=!1;if(WTl(I))I.createEngineSpan=()=>{Qd(()=>{if(!G)G=!0,console.warn("[Sentry] The Sentry SDK supports tracing with Prisma version 5 only with limited capabilities. For full tracing capabilities pass `prismaInstrumentation` for version 5 to the Sentry `prismaIntegration`. Read more: https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/")})}}}var NTl=cb(y4G,(I)=>{if(I?.prismaInstrumentation)return I.prismaInstrumentation;return new L4G}),g4G=tZ(({prismaInstrumentation:I}={})=>{return{name:y4G,setupOnce(){NTl({prismaInstrumentation:I})},setup(G){if(!u4G())return;G.on("spanStart",(Z)=>{let l=pb(Z);if(l.description?.startsWith("prisma:"))Z.setAttribute(oN,"auto.db.otel.prisma");if(l.description==="prisma:engine:db_query"&&l.data["db.query.text"])Z.updateName(l.data["db.query.text"]);if(l.description==="prisma:engine:db_query"&&!l.data["db.system"])Z.setAttribute("db.system","prisma")})}}});var _4G=hI(P4G(),1);var s4G="Hapi",f4G=cb(s4G,()=>new _4G.HapiInstrumentation),LTl=()=>{return{name:s4G,setupOnce(){f4G()}}},$4G=tZ(LTl);var wvG=hI(hvG(),1),JvG=hI(tY(),1);var AvG="Koa",EvG=cb(AvG,wvG.KoaInstrumentation,(I={})=>{return{ignoreLayersType:I.ignoreLayersType,requestHook(G,Z){Sc(G,"auto.http.otel.koa");let l=pb(G).data,b=l["koa.type"];if(b)G.setAttribute(XW,`${b}.koa`);let W=l["koa.name"];if(typeof W==="string")G.updateName(W||"< unknown >");if(kN()===vw()){RA&&yG.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let N=l[JvG.ATTR_HTTP_ROUTE],Y=Z.context?.request?.method?.toUpperCase()||"GET";if(N)kN().setTransactionName(`${Y} ${N}`)}}}),MTl=(I={})=>{return{name:AvG,setupOnce(){EvG(I)}}},vvG=tZ(MTl);var SvG=hI(TvG(),1);var ivG="Connect",PvG=cb(ivG,()=>new SvG.ConnectInstrumentation),oTl=()=>{return{name:ivG,setupOnce(){PvG()}}},_vG=tZ(oTl);var dCG=hI(VCG(),1);var lSl=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),mCG="Tedious",QCG=cb(mCG,()=>new dCG.TediousInstrumentation({})),bSl=()=>{let I;return{name:mCG,setupOnce(){let G=QCG();I=Iq(G)},setup(G){I?.(()=>G.on("spanStart",(Z)=>{let{description:l,data:b}=pb(Z);if(!l||b["db.system"]!=="mssql")return;let W=l.split(" ")[0]||"";if(lSl.has(W))Z.setAttribute(oN,"auto.db.otel.tedious")}))}}},XCG=tZ(bSl);var CCG=hI(vCG(),1);var pCG="GenericPool",yCG=cb(pCG,()=>new CCG.GenericPoolInstrumentation({})),cSl=()=>{let I;return{name:pCG,setupOnce(){let G=yCG();I=Iq(G)},setup(G){I?.(()=>G.on("spanStart",(Z)=>{let b=pb(Z).description;if(b==="generic-pool.aquire"||b==="generic-pool.acquire")Z.setAttribute(oN,"auto.db.otel.generic_pool")}))}}},uCG=tZ(cSl);var _CG=hI(PCG(),1);var sCG="Amqplib",gSl={consumeEndHook:(I)=>{Sc(I,"auto.amqplib.otel.consumer")},publishHook:(I)=>{Sc(I,"auto.amqplib.otel.publisher")}},fCG=cb(sCG,()=>new _CG.AmqplibInstrumentation(gSl)),aSl=()=>{return{name:sCG,setupOnce(){fCG()}}},$CG=tZ(aSl);var Lq="VercelAI";var III=hI(BN(),1);var oCG=["generateText","streamText","generateObject","streamObject","embed","embedMany"];function zSl(I,G,Z,l){let b=I?.recordInputs!==void 0?I.recordInputs:G.recordInputs!==void 0?G.recordInputs:Z===!0?!0:l,W=I?.recordOutputs!==void 0?I.recordOutputs:G.recordOutputs!==void 0?G.recordOutputs:Z===!0?!0:l;return{recordInputs:b,recordOutputs:W}}class gq extends III.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(I={}){super("@sentry/instrumentation-vercel-ai",oY,I);gq.prototype.__init.call(this),gq.prototype.__init2.call(this)}init(){return new III.InstrumentationNodeModuleDefinition("ai",[">=3.0.0 <5"],this._patch.bind(this))}callWhenPatched(I){if(this._isPatched)I();else this._callbacks.push(I)}_patch(I){this._isPatched=!0,this._callbacks.forEach((Z)=>Z()),this._callbacks=[];function G(Z){return(...l)=>{let b=l[0].experimental_telemetry||{},W=b.isEnabled,N=jW().getClient(),Y=N?.getIntegrationByName(Lq),c=Y?.options,V=Y?Boolean(N?.getOptions().sendDefaultPii):!1,{recordInputs:d,recordOutputs:m}=zSl(c,b,W,V);return l[0].experimental_telemetry={...b,isEnabled:W!==void 0?W:!0,recordInputs:d,recordOutputs:m},q4(()=>{return Z.apply(this,l)},(X)=>{if(X&&typeof X==="object")C2(X,"_sentry_active_span",VA())})}}if(Object.prototype.toString.call(I)==="[object Module]"){for(let Z of oCG)I[Z]=G(I[Z]);return I}else{let Z=oCG.reduce((l,b)=>{return l[b]=G(I[b]),l},{});return{...I,...Z}}}}var tCG=cb(Lq,()=>new gq({}));function BSl(I){return!!I.getIntegrationByName("Modules")?.getModules?.()?.ai}var kSl=(I={})=>{let G;return{name:Lq,options:I,setupOnce(){G=tCG()},afterAllSetup(Z){if(I.force??BSl(Z))_r(Z);else G?.callWhenPatched(()=>_r(Z))}}},rCG=tZ(kSl);var GII=hI(BN(),1);var USl=[">=4.0.0 <6"];function xSl(I,G){let Z=I?.recordInputs??G,l=I?.recordOutputs??G;return{recordInputs:Z,recordOutputs:l}}class aJI extends GII.InstrumentationBase{constructor(I={}){super("@sentry/instrumentation-openai",oY,I)}init(){return new GII.InstrumentationNodeModuleDefinition("openai",USl,this._patch.bind(this))}_patch(I){let G=I.OpenAI,Z=function(...l){let b=Reflect.construct(G,l),W=jW().getClient(),Y=W?.getIntegrationByName(Cp)?.options,c=Boolean(W?.getOptions().sendDefaultPii),{recordInputs:V,recordOutputs:d}=xSl(Y,c);return shI(b,{recordInputs:V,recordOutputs:d})};Object.setPrototypeOf(Z,G),Object.setPrototypeOf(Z.prototype,G.prototype);for(let l of Object.getOwnPropertyNames(G))if(!["length","name","prototype"].includes(l)){let b=Object.getOwnPropertyDescriptor(G,l);if(b)Object.defineProperty(Z,l,b)}try{I.OpenAI=Z}catch(l){Object.defineProperty(I,"OpenAI",{value:Z,writable:!0,configurable:!0,enumerable:!0})}if(I.default===G)try{I.default=Z}catch(l){Object.defineProperty(I,"default",{value:Z,writable:!0,configurable:!0,enumerable:!0})}return I}}var eCG=cb(Cp,()=>new aJI({})),OSl=(I={})=>{return{name:Cp,options:I,setupOnce(){eCG()}}},I3G=tZ(OSl);function G3G(){return[fhG(),MwG(),u5G(),uJG(),oJG(),hAG(),jAG(),kEG(),X4G(),g4G(),$4G(),vvG(),_vG(),XCG(),uCG(),s5G(),$CG(),cJG(),rCG(),I3G(),h4G()]}var Lx=hI(Il(),1),Z3G=hI(JwI(),1),l3G=hI(vwI(),1),gx=hI(tY(),1);var MSl=hI(Gr(),1);var zJI=1e6;function b3G(I,G={}){if(I.getOptions().debug)W5I();let Z=KSl(I,G);I.traceProvider=Z}function KSl(I,G={}){let Z=new l3G.BasicTracerProvider({sampler:new qwI(I),resource:new Z3G.Resource({[gx.ATTR_SERVICE_NAME]:"node",[gx.SEMRESATTRS_SERVICE_NAMESPACE]:"sentry",[gx.ATTR_SERVICE_VERSION]:oY}),forceFlushTimeoutMillis:500,spanProcessors:[new jwI({timeout:DSl(I.getOptions().maxSpanWaitDuration)}),...G.spanProcessors||[]]});return Lx.trace.setGlobalTracerProvider(Z),Lx.propagation.setGlobalPropagator(new OwI),Lx.context.setGlobalContextManager(new Re),Z}function DSl(I){if(I==null)return;if(I>zJI)return RA&&yG.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${zJI}`),zJI;else if(I<=0||Number.isNaN(I)){RA&&yG.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return I}function W3G(){return Ae().filter((G)=>G.name!=="Http"&&G.name!=="NodeFetch").concat(Zq(),XhG())}function N3G(I){return[...W3G(),...a0(I)?G3G():[]]}function BJI(I={}){return nSl(I,N3G)}function nSl(I={},G){Mg(I,"node");let Z=F5I({...I,defaultIntegrations:I.defaultIntegrations??G(I)});if(Z&&!I.skipOpenTelemetrySetup)b3G(Z,{spanProcessors:I.openTelemetrySpanProcessors}),Ee();return Z}import{existsSync as lT,readFileSync as bT,writeFileSync as Ulb}from"fs";import{resolve as dEI,join as MGI}from"path";function qSl(){this.__data__=[],this.size=0}var Y3G=qSl;function TSl(I,G){return I===G||I!==I&&G!==G}var ax=TSl;function SSl(I,G){var Z=I.length;while(Z--)if(ax(I[Z][0],G))return Z;return-1}var Gy=SSl;var iSl=Array.prototype,PSl=iSl.splice;function _Sl(I){var G=this.__data__,Z=Gy(G,I);if(Z<0)return!1;var l=G.length-1;if(Z==l)G.pop();else PSl.call(G,Z,1);return--this.size,!0}var c3G=_Sl;function sSl(I){var G=this.__data__,Z=Gy(G,I);return Z<0?void 0:G[Z][1]}var V3G=sSl;function fSl(I){return Gy(this.__data__,I)>-1}var d3G=fSl;function $Sl(I,G){var Z=this.__data__,l=Gy(Z,I);if(l<0)++this.size,Z.push([I,G]);else Z[l][1]=G;return this}var m3G=$Sl;function zx(I){var G=-1,Z=I==null?0:I.length;this.clear();while(++G<Z){var l=I[G];this.set(l[0],l[1])}}zx.prototype.clear=Y3G;zx.prototype.delete=c3G;zx.prototype.get=V3G;zx.prototype.has=d3G;zx.prototype.set=m3G;var Zy=zx;function oSl(){this.__data__=new Zy,this.size=0}var Q3G=oSl;function tSl(I){var G=this.__data__,Z=G.delete(I);return this.size=G.size,Z}var X3G=tSl;function rSl(I){return this.__data__.get(I)}var F3G=rSl;function eSl(I){return this.__data__.has(I)}var R3G=eSl;var Iil=typeof global=="object"&&global&&global.Object===Object&&global,ZII=Iil;var Gil=typeof self=="object"&&self&&self.Object===Object&&self,Zil=ZII||Gil||Function("return this")(),u2=Zil;var lil=u2.Symbol,U0=lil;var H3G=Object.prototype,bil=H3G.hasOwnProperty,Wil=H3G.toString,aq=U0?U0.toStringTag:void 0;function Nil(I){var G=bil.call(I,aq),Z=I[aq];try{I[aq]=void 0;var l=!0}catch(W){}var b=Wil.call(I);if(l)if(G)I[aq]=Z;else delete I[aq];return b}var h3G=Nil;var Yil=Object.prototype,cil=Yil.toString;function Vil(I){return cil.call(I)}var w3G=Vil;var dil="[object Null]",mil="[object Undefined]",J3G=U0?U0.toStringTag:void 0;function Qil(I){if(I==null)return I===void 0?mil:dil;return J3G&&J3G in Object(I)?h3G(I):w3G(I)}var NR=Qil;function Xil(I){var G=typeof I;return I!=null&&(G=="object"||G=="function")}var BX=Xil;var Fil="[object AsyncFunction]",Ril="[object Function]",Hil="[object GeneratorFunction]",hil="[object Proxy]";function wil(I){if(!BX(I))return!1;var G=NR(I);return G==Ril||G==Hil||G==Fil||G==hil}var lII=wil;var Jil=u2["__core-js_shared__"],bII=Jil;var A3G=function(){var I=/[^.]+$/.exec(bII&&bII.keys&&bII.keys.IE_PROTO||"");return I?"Symbol(src)_1."+I:""}();function Ail(I){return!!A3G&&A3G in I}var E3G=Ail;var Eil=Function.prototype,vil=Eil.toString;function Cil(I){if(I!=null){try{return vil.call(I)}catch(G){}try{return I+""}catch(G){}}return""}var cv=Cil;var pil=/[\\^$.*+?()[\]{}|]/g,yil=/^\[object .+?Constructor\]$/,uil=Function.prototype,Lil=Object.prototype,gil=uil.toString,ail=Lil.hasOwnProperty,zil=RegExp("^"+gil.call(ail).replace(pil,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Bil(I){if(!BX(I)||E3G(I))return!1;var G=lII(I)?zil:yil;return G.test(cv(I))}var v3G=Bil;function kil(I,G){return I==null?void 0:I[G]}var C3G=kil;function Uil(I,G){var Z=C3G(I,G);return v3G(Z)?Z:void 0}var $F=Uil;var xil=$F(u2,"Map"),ly=xil;var Oil=$F(Object,"create"),Vv=Oil;function Mil(){this.__data__=Vv?Vv(null):{},this.size=0}var p3G=Mil;function Kil(I){var G=this.has(I)&&delete this.__data__[I];return this.size-=G?1:0,G}var y3G=Kil;var Dil="__lodash_hash_undefined__",nil=Object.prototype,jil=nil.hasOwnProperty;function qil(I){var G=this.__data__;if(Vv){var Z=G[I];return Z===Dil?void 0:Z}return jil.call(G,I)?G[I]:void 0}var u3G=qil;var Til=Object.prototype,Sil=Til.hasOwnProperty;function iil(I){var G=this.__data__;return Vv?G[I]!==void 0:Sil.call(G,I)}var L3G=iil;var Pil="__lodash_hash_undefined__";function _il(I,G){var Z=this.__data__;return this.size+=this.has(I)?0:1,Z[I]=Vv&&G===void 0?Pil:G,this}var g3G=_il;function Bx(I){var G=-1,Z=I==null?0:I.length;this.clear();while(++G<Z){var l=I[G];this.set(l[0],l[1])}}Bx.prototype.clear=p3G;Bx.prototype.delete=y3G;Bx.prototype.get=u3G;Bx.prototype.has=L3G;Bx.prototype.set=g3G;var kJI=Bx;function sil(){this.size=0,this.__data__={hash:new kJI,map:new(ly||Zy),string:new kJI}}var a3G=sil;function fil(I){var G=typeof I;return G=="string"||G=="number"||G=="symbol"||G=="boolean"?I!=="__proto__":I===null}var z3G=fil;function $il(I,G){var Z=I.__data__;return z3G(G)?Z[typeof G=="string"?"string":"hash"]:Z.map}var by=$il;function oil(I){var G=by(this,I).delete(I);return this.size-=G?1:0,G}var B3G=oil;function til(I){return by(this,I).get(I)}var k3G=til;function ril(I){return by(this,I).has(I)}var U3G=ril;function eil(I,G){var Z=by(this,I),l=Z.size;return Z.set(I,G),this.size+=Z.size==l?0:1,this}var x3G=eil;function kx(I){var G=-1,Z=I==null?0:I.length;this.clear();while(++G<Z){var l=I[G];this.set(l[0],l[1])}}kx.prototype.clear=a3G;kx.prototype.delete=B3G;kx.prototype.get=k3G;kx.prototype.has=U3G;kx.prototype.set=x3G;var Ia=kx;var IPl=200;function GPl(I,G){var Z=this.__data__;if(Z instanceof Zy){var l=Z.__data__;if(!ly||l.length<IPl-1)return l.push([I,G]),this.size=++Z.size,this;Z=this.__data__=new Ia(l)}return Z.set(I,G),this.size=Z.size,this}var O3G=GPl;function Ux(I){var G=this.__data__=new Zy(I);this.size=G.size}Ux.prototype.clear=Q3G;Ux.prototype.delete=X3G;Ux.prototype.get=F3G;Ux.prototype.has=R3G;Ux.prototype.set=O3G;var Wy=Ux;function ZPl(I,G){var Z=-1,l=I==null?0:I.length;while(++Z<l)if(G(I[Z],Z,I)===!1)break;return I}var M3G=ZPl;var lPl=function(){try{var I=$F(Object,"defineProperty");return I({},"",{}),I}catch(G){}}(),xx=lPl;function bPl(I,G,Z){if(G=="__proto__"&&xx)xx(I,G,{configurable:!0,enumerable:!0,value:Z,writable:!0});else I[G]=Z}var Ox=bPl;var WPl=Object.prototype,NPl=WPl.hasOwnProperty;function YPl(I,G,Z){var l=I[G];if(!(NPl.call(I,G)&&ax(l,Z))||Z===void 0&&!(G in I))Ox(I,G,Z)}var Ny=YPl;function cPl(I,G,Z,l){var b=!Z;Z||(Z={});var W=-1,N=G.length;while(++W<N){var Y=G[W],c=l?l(Z[Y],I[Y],Y,Z,I):void 0;if(c===void 0)c=I[Y];if(b)Ox(Z,Y,c);else Ny(Z,Y,c)}return Z}var wA=cPl;function VPl(I,G){var Z=-1,l=Array(I);while(++Z<I)l[Z]=G(Z);return l}var WII=VPl;function dPl(I){return I!=null&&typeof I=="object"}var W0=dPl;var mPl="[object Arguments]";function QPl(I){return W0(I)&&NR(I)==mPl}var UJI=QPl;var K3G=Object.prototype,XPl=K3G.hasOwnProperty,FPl=K3G.propertyIsEnumerable,RPl=UJI(function(){return arguments}())?UJI:function(I){return W0(I)&&XPl.call(I,"callee")&&!FPl.call(I,"callee")},Mx=RPl;var HPl=Array.isArray,_c=HPl;var YII={};JH(YII,{default:()=>Yy});function hPl(){return!1}var D3G=hPl;var q3G=typeof YII=="object"&&YII&&!YII.nodeType&&YII,n3G=q3G&&typeof NII=="object"&&NII&&!NII.nodeType&&NII,wPl=n3G&&n3G.exports===q3G,j3G=wPl?u2.Buffer:void 0,JPl=j3G?j3G.isBuffer:void 0,APl=JPl||D3G,Yy=APl;var EPl=9007199254740991,vPl=/^(?:0|[1-9]\d*)$/;function CPl(I,G){var Z=typeof I;return G=G==null?EPl:G,!!G&&(Z=="number"||Z!="symbol"&&vPl.test(I))&&(I>-1&&I%1==0&&I<G)}var Kx=CPl;var pPl=9007199254740991;function yPl(I){return typeof I=="number"&&I>-1&&I%1==0&&I<=pPl}var Dx=yPl;var uPl="[object Arguments]",LPl="[object Array]",gPl="[object Boolean]",aPl="[object Date]",zPl="[object Error]",BPl="[object Function]",kPl="[object Map]",UPl="[object Number]",xPl="[object Object]",OPl="[object RegExp]",MPl="[object Set]",KPl="[object String]",DPl="[object WeakMap]",nPl="[object ArrayBuffer]",jPl="[object DataView]",qPl="[object Float32Array]",TPl="[object Float64Array]",SPl="[object Int8Array]",iPl="[object Int16Array]",PPl="[object Int32Array]",_Pl="[object Uint8Array]",sPl="[object Uint8ClampedArray]",fPl="[object Uint16Array]",$Pl="[object Uint32Array]",sc={};sc[qPl]=sc[TPl]=sc[SPl]=sc[iPl]=sc[PPl]=sc[_Pl]=sc[sPl]=sc[fPl]=sc[$Pl]=!0;sc[uPl]=sc[LPl]=sc[nPl]=sc[gPl]=sc[jPl]=sc[aPl]=sc[zPl]=sc[BPl]=sc[kPl]=sc[UPl]=sc[xPl]=sc[OPl]=sc[MPl]=sc[KPl]=sc[DPl]=!1;function oPl(I){return W0(I)&&Dx(I.length)&&!!sc[NR(I)]}var T3G=oPl;function tPl(I){return function(G){return I(G)}}var nx=tPl;var VII={};JH(VII,{default:()=>JA});var S3G=typeof VII=="object"&&VII&&!VII.nodeType&&VII,zq=S3G&&typeof cII=="object"&&cII&&!cII.nodeType&&cII,rPl=zq&&zq.exports===S3G,xJI=rPl&&ZII.process,ePl=function(){try{var I=zq&&zq.require&&zq.require("util").types;if(I)return I;return xJI&&xJI.binding&&xJI.binding("util")}catch(G){}}(),JA=ePl;var i3G=JA&&JA.isTypedArray,I_l=i3G?nx(i3G):T3G,dII=I_l;var G_l=Object.prototype,Z_l=G_l.hasOwnProperty;function l_l(I,G){var Z=_c(I),l=!Z&&Mx(I),b=!Z&&!l&&Yy(I),W=!Z&&!l&&!b&&dII(I),N=Z||l||b||W,Y=N?WII(I.length,String):[],c=Y.length;for(var V in I)if((G||Z_l.call(I,V))&&!(N&&(V=="length"||b&&(V=="offset"||V=="parent")||W&&(V=="buffer"||V=="byteLength"||V=="byteOffset")||Kx(V,c))))Y.push(V);return Y}var mII=l_l;var b_l=Object.prototype;function W_l(I){var G=I&&I.constructor,Z=typeof G=="function"&&G.prototype||b_l;return I===Z}var jx=W_l;function N_l(I,G){return function(Z){return I(G(Z))}}var QII=N_l;var Y_l=QII(Object.keys,Object),P3G=Y_l;var c_l=Object.prototype,V_l=c_l.hasOwnProperty;function d_l(I){if(!jx(I))return P3G(I);var G=[];for(var Z in Object(I))if(V_l.call(I,Z)&&Z!="constructor")G.push(Z);return G}var _3G=d_l;function m_l(I){return I!=null&&Dx(I.length)&&!lII(I)}var cy=m_l;function Q_l(I){return cy(I)?mII(I):_3G(I)}var jH=Q_l;function X_l(I,G){return I&&wA(G,jH(G),I)}var s3G=X_l;function F_l(I){var G=[];if(I!=null)for(var Z in Object(I))G.push(Z);return G}var f3G=F_l;var R_l=Object.prototype,H_l=R_l.hasOwnProperty;function h_l(I){if(!BX(I))return f3G(I);var G=jx(I),Z=[];for(var l in I)if(!(l=="constructor"&&(G||!H_l.call(I,l))))Z.push(l);return Z}var $3G=h_l;function w_l(I){return cy(I)?mII(I,!0):$3G(I)}var qx=w_l;function J_l(I,G){return I&&wA(G,qx(G),I)}var o3G=J_l;var FII={};JH(FII,{default:()=>OJI});var IpG=typeof FII=="object"&&FII&&!FII.nodeType&&FII,t3G=IpG&&typeof XII=="object"&&XII&&!XII.nodeType&&XII,A_l=t3G&&t3G.exports===IpG,r3G=A_l?u2.Buffer:void 0,e3G=r3G?r3G.allocUnsafe:void 0;function E_l(I,G){if(G)return I.slice();var Z=I.length,l=e3G?e3G(Z):new I.constructor(Z);return I.copy(l),l}var OJI=E_l;function v_l(I,G){var Z=-1,l=I.length;G||(G=Array(l));while(++Z<l)G[Z]=I[Z];return G}var GpG=v_l;function C_l(I,G){var Z=-1,l=I==null?0:I.length,b=0,W=[];while(++Z<l){var N=I[Z];if(G(N,Z,I))W[b++]=N}return W}var RII=C_l;function p_l(){return[]}var HII=p_l;var y_l=Object.prototype,u_l=y_l.propertyIsEnumerable,ZpG=Object.getOwnPropertySymbols,L_l=!ZpG?HII:function(I){if(I==null)return[];return I=Object(I),RII(ZpG(I),function(G){return u_l.call(I,G)})},Tx=L_l;function g_l(I,G){return wA(I,Tx(I),G)}var lpG=g_l;function a_l(I,G){var Z=-1,l=G.length,b=I.length;while(++Z<l)I[b+Z]=G[Z];return I}var Sx=a_l;var z_l=QII(Object.getPrototypeOf,Object),ix=z_l;var B_l=Object.getOwnPropertySymbols,k_l=!B_l?HII:function(I){var G=[];while(I)Sx(G,Tx(I)),I=ix(I);return G},hII=k_l;function U_l(I,G){return wA(I,hII(I),G)}var bpG=U_l;function x_l(I,G,Z){var l=G(I);return _c(I)?l:Sx(l,Z(I))}var wII=x_l;function O_l(I){return wII(I,jH,Tx)}var Bq=O_l;function M_l(I){return wII(I,qx,hII)}var Px=M_l;var K_l=$F(u2,"DataView"),JII=K_l;var D_l=$F(u2,"Promise"),AII=D_l;var n_l=$F(u2,"Set"),EII=n_l;var j_l=$F(u2,"WeakMap"),vII=j_l;var WpG="[object Map]",q_l="[object Object]",NpG="[object Promise]",YpG="[object Set]",cpG="[object WeakMap]",VpG="[object DataView]",T_l=cv(JII),S_l=cv(ly),i_l=cv(AII),P_l=cv(EII),__l=cv(vII),Ga=NR;if(JII&&Ga(new JII(new ArrayBuffer(1)))!=VpG||ly&&Ga(new ly)!=WpG||AII&&Ga(AII.resolve())!=NpG||EII&&Ga(new EII)!=YpG||vII&&Ga(new vII)!=cpG)Ga=function(I){var G=NR(I),Z=G==q_l?I.constructor:void 0,l=Z?cv(Z):"";if(l)switch(l){case T_l:return VpG;case S_l:return WpG;case i_l:return NpG;case P_l:return YpG;case __l:return cpG}return G};var dv=Ga;var s_l=Object.prototype,f_l=s_l.hasOwnProperty;function $_l(I){var G=I.length,Z=new I.constructor(G);if(G&&typeof I[0]=="string"&&f_l.call(I,"index"))Z.index=I.index,Z.input=I.input;return Z}var dpG=$_l;var o_l=u2.Uint8Array,_x=o_l;function t_l(I){var G=new I.constructor(I.byteLength);return new _x(G).set(new _x(I)),G}var sx=t_l;function r_l(I,G){var Z=G?sx(I.buffer):I.buffer;return new I.constructor(Z,I.byteOffset,I.byteLength)}var mpG=r_l;var e_l=/\w*$/;function Isl(I){var G=new I.constructor(I.source,e_l.exec(I));return G.lastIndex=I.lastIndex,G}var QpG=Isl;var XpG=U0?U0.prototype:void 0,FpG=XpG?XpG.valueOf:void 0;function Gsl(I){return FpG?Object(FpG.call(I)):{}}var RpG=Gsl;function Zsl(I,G){var Z=G?sx(I.buffer):I.buffer;return new I.constructor(Z,I.byteOffset,I.length)}var HpG=Zsl;var lsl="[object Boolean]",bsl="[object Date]",Wsl="[object Map]",Nsl="[object Number]",Ysl="[object RegExp]",csl="[object Set]",Vsl="[object String]",dsl="[object Symbol]",msl="[object ArrayBuffer]",Qsl="[object DataView]",Xsl="[object Float32Array]",Fsl="[object Float64Array]",Rsl="[object Int8Array]",Hsl="[object Int16Array]",hsl="[object Int32Array]",wsl="[object Uint8Array]",Jsl="[object Uint8ClampedArray]",Asl="[object Uint16Array]",Esl="[object Uint32Array]";function vsl(I,G,Z){var l=I.constructor;switch(G){case msl:return sx(I);case lsl:case bsl:return new l(+I);case Qsl:return mpG(I,Z);case Xsl:case Fsl:case Rsl:case Hsl:case hsl:case wsl:case Jsl:case Asl:case Esl:return HpG(I,Z);case Wsl:return new l;case Nsl:case Vsl:return new l(I);case Ysl:return QpG(I);case csl:return new l;case dsl:return RpG(I)}}var hpG=vsl;var wpG=Object.create,Csl=function(){function I(){}return function(G){if(!BX(G))return{};if(wpG)return wpG(G);I.prototype=G;var Z=new I;return I.prototype=void 0,Z}}(),JpG=Csl;function psl(I){return typeof I.constructor=="function"&&!jx(I)?JpG(ix(I)):{}}var ApG=psl;var ysl="[object Map]";function usl(I){return W0(I)&&dv(I)==ysl}var EpG=usl;var vpG=JA&&JA.isMap,Lsl=vpG?nx(vpG):EpG,CpG=Lsl;var gsl="[object Set]";function asl(I){return W0(I)&&dv(I)==gsl}var ppG=asl;var ypG=JA&&JA.isSet,zsl=ypG?nx(ypG):ppG,upG=zsl;var Bsl=1,ksl=2,Usl=4,LpG="[object Arguments]",xsl="[object Array]",Osl="[object Boolean]",Msl="[object Date]",Ksl="[object Error]",gpG="[object Function]",Dsl="[object GeneratorFunction]",nsl="[object Map]",jsl="[object Number]",apG="[object Object]",qsl="[object RegExp]",Tsl="[object Set]",Ssl="[object String]",isl="[object Symbol]",Psl="[object WeakMap]",_sl="[object ArrayBuffer]",ssl="[object DataView]",fsl="[object Float32Array]",$sl="[object Float64Array]",osl="[object Int8Array]",tsl="[object Int16Array]",rsl="[object Int32Array]",esl="[object Uint8Array]",Ifl="[object Uint8ClampedArray]",Gfl="[object Uint16Array]",Zfl="[object Uint32Array]",yc={};yc[LpG]=yc[xsl]=yc[_sl]=yc[ssl]=yc[Osl]=yc[Msl]=yc[fsl]=yc[$sl]=yc[osl]=yc[tsl]=yc[rsl]=yc[nsl]=yc[jsl]=yc[apG]=yc[qsl]=yc[Tsl]=yc[Ssl]=yc[isl]=yc[esl]=yc[Ifl]=yc[Gfl]=yc[Zfl]=!0;yc[Ksl]=yc[gpG]=yc[Psl]=!1;function CII(I,G,Z,l,b,W){var N,Y=G&Bsl,c=G&ksl,V=G&Usl;if(Z)N=b?Z(I,l,b,W):Z(I);if(N!==void 0)return N;if(!BX(I))return I;var d=_c(I);if(d){if(N=dpG(I),!Y)return GpG(I,N)}else{var m=dv(I),X=m==gpG||m==Dsl;if(Yy(I))return OJI(I,Y);if(m==apG||m==LpG||X&&!b){if(N=c||X?{}:ApG(I),!Y)return c?bpG(I,o3G(N,I)):lpG(I,s3G(N,I))}else{if(!yc[m])return b?I:{};N=hpG(I,m,Y)}}W||(W=new Wy);var R=W.get(I);if(R)return R;if(W.set(I,N),upG(I))I.forEach(function(A){N.add(CII(A,G,Z,A,I,W))});else if(CpG(I))I.forEach(function(A,y){N.set(y,CII(A,G,Z,y,I,W))});var H=V?c?Px:Bq:c?qx:jH,w=d?void 0:H(I);return M3G(w||I,function(A,y){if(w)y=A,A=I[y];Ny(N,y,CII(A,G,Z,y,I,W))}),N}var pII=CII;var lfl=1,bfl=4;function Wfl(I){return pII(I,lfl|bfl)}var kq=Wfl;var Nfl="__lodash_hash_undefined__";function Yfl(I){return this.__data__.set(I,Nfl),this}var zpG=Yfl;function cfl(I){return this.__data__.has(I)}var BpG=cfl;function yII(I){var G=-1,Z=I==null?0:I.length;this.__data__=new Ia;while(++G<Z)this.add(I[G])}yII.prototype.add=yII.prototype.push=zpG;yII.prototype.has=BpG;var kpG=yII;function Vfl(I,G){var Z=-1,l=I==null?0:I.length;while(++Z<l)if(G(I[Z],Z,I))return!0;return!1}var UpG=Vfl;function dfl(I,G){return I.has(G)}var xpG=dfl;var mfl=1,Qfl=2;function Xfl(I,G,Z,l,b,W){var N=Z&mfl,Y=I.length,c=G.length;if(Y!=c&&!(N&&c>Y))return!1;var V=W.get(I),d=W.get(G);if(V&&d)return V==G&&d==I;var m=-1,X=!0,R=Z&Qfl?new kpG:void 0;W.set(I,G),W.set(G,I);while(++m<Y){var H=I[m],w=G[m];if(l)var A=N?l(w,H,m,G,I,W):l(H,w,m,I,G,W);if(A!==void 0){if(A)continue;X=!1;break}if(R){if(!UpG(G,function(y,g){if(!xpG(R,g)&&(H===y||b(H,y,Z,l,W)))return R.push(g)})){X=!1;break}}else if(!(H===w||b(H,w,Z,l,W))){X=!1;break}}return W.delete(I),W.delete(G),X}var uII=Xfl;function Ffl(I){var G=-1,Z=Array(I.size);return I.forEach(function(l,b){Z[++G]=[b,l]}),Z}var OpG=Ffl;function Rfl(I){var G=-1,Z=Array(I.size);return I.forEach(function(l){Z[++G]=l}),Z}var MpG=Rfl;var Hfl=1,hfl=2,wfl="[object Boolean]",Jfl="[object Date]",Afl="[object Error]",Efl="[object Map]",vfl="[object Number]",Cfl="[object RegExp]",pfl="[object Set]",yfl="[object String]",ufl="[object Symbol]",Lfl="[object ArrayBuffer]",gfl="[object DataView]",KpG=U0?U0.prototype:void 0,MJI=KpG?KpG.valueOf:void 0;function afl(I,G,Z,l,b,W,N){switch(Z){case gfl:if(I.byteLength!=G.byteLength||I.byteOffset!=G.byteOffset)return!1;I=I.buffer,G=G.buffer;case Lfl:if(I.byteLength!=G.byteLength||!W(new _x(I),new _x(G)))return!1;return!0;case wfl:case Jfl:case vfl:return ax(+I,+G);case Afl:return I.name==G.name&&I.message==G.message;case Cfl:case yfl:return I==G+"";case Efl:var Y=OpG;case pfl:var c=l&Hfl;if(Y||(Y=MpG),I.size!=G.size&&!c)return!1;var V=N.get(I);if(V)return V==G;l|=hfl,N.set(I,G);var d=uII(Y(I),Y(G),l,b,W,N);return N.delete(I),d;case ufl:if(MJI)return MJI.call(I)==MJI.call(G)}return!1}var DpG=afl;var zfl=1,Bfl=Object.prototype,kfl=Bfl.hasOwnProperty;function Ufl(I,G,Z,l,b,W){var N=Z&zfl,Y=Bq(I),c=Y.length,V=Bq(G),d=V.length;if(c!=d&&!N)return!1;var m=c;while(m--){var X=Y[m];if(!(N?X in G:kfl.call(G,X)))return!1}var R=W.get(I),H=W.get(G);if(R&&H)return R==G&&H==I;var w=!0;W.set(I,G),W.set(G,I);var A=N;while(++m<c){X=Y[m];var y=I[X],g=G[X];if(l)var a=N?l(g,y,X,G,I,W):l(y,g,X,I,G,W);if(!(a===void 0?y===g||b(y,g,Z,l,W):a)){w=!1;break}A||(A=X=="constructor")}if(w&&!A){var B=I.constructor,U=G.constructor;if(B!=U&&(("constructor"in I)&&("constructor"in G))&&!(typeof B=="function"&&B instanceof B&&typeof U=="function"&&U instanceof U))w=!1}return W.delete(I),W.delete(G),w}var npG=Ufl;var xfl=1,jpG="[object Arguments]",qpG="[object Array]",LII="[object Object]",Ofl=Object.prototype,TpG=Ofl.hasOwnProperty;function Mfl(I,G,Z,l,b,W){var N=_c(I),Y=_c(G),c=N?qpG:dv(I),V=Y?qpG:dv(G);c=c==jpG?LII:c,V=V==jpG?LII:V;var d=c==LII,m=V==LII,X=c==V;if(X&&Yy(I)){if(!Yy(G))return!1;N=!0,d=!1}if(X&&!d)return W||(W=new Wy),N||dII(I)?uII(I,G,Z,l,b,W):DpG(I,G,c,Z,l,b,W);if(!(Z&xfl)){var R=d&&TpG.call(I,"__wrapped__"),H=m&&TpG.call(G,"__wrapped__");if(R||H){var w=R?I.value():I,A=H?G.value():G;return W||(W=new Wy),b(w,A,Z,l,W)}}if(!X)return!1;return W||(W=new Wy),npG(I,G,Z,l,b,W)}var SpG=Mfl;function ipG(I,G,Z,l,b){if(I===G)return!0;if(I==null||G==null||!W0(I)&&!W0(G))return I!==I&&G!==G;return SpG(I,G,Z,l,ipG,b)}var fx=ipG;function Kfl(I,G){return fx(I,G)}var gII=Kfl;function Dfl(I){var G=I==null?0:I.length;return G?I[G-1]:void 0}var Ow=Dfl;function nfl(I){return function(G,Z,l){var b=-1,W=Object(G),N=l(G),Y=N.length;while(Y--){var c=N[I?Y:++b];if(Z(W[c],c,W)===!1)break}return G}}var PpG=nfl;var jfl=PpG(),_pG=jfl;function qfl(I,G){return I&&_pG(I,G,jH)}var aII=qfl;var Tfl=1,Sfl=2;function ifl(I,G,Z,l){var b=Z.length,W=b,N=!l;if(I==null)return!W;I=Object(I);while(b--){var Y=Z[b];if(N&&Y[2]?Y[1]!==I[Y[0]]:!(Y[0]in I))return!1}while(++b<W){Y=Z[b];var c=Y[0],V=I[c],d=Y[1];if(N&&Y[2]){if(V===void 0&&!(c in I))return!1}else{var m=new Wy;if(l)var X=l(V,d,c,I,G,m);if(!(X===void 0?fx(d,V,Tfl|Sfl,l,m):X))return!1}}return!0}var spG=ifl;function Pfl(I){return I===I&&!BX(I)}var zII=Pfl;function _fl(I){var G=jH(I),Z=G.length;while(Z--){var l=G[Z],b=I[l];G[Z]=[l,b,zII(b)]}return G}var fpG=_fl;function sfl(I,G){return function(Z){if(Z==null)return!1;return Z[I]===G&&(G!==void 0||(I in Object(Z)))}}var BII=sfl;function ffl(I){var G=fpG(I);if(G.length==1&&G[0][2])return BII(G[0][0],G[0][1]);return function(Z){return Z===I||spG(Z,I,G)}}var $pG=ffl;var $fl="[object Symbol]";function ofl(I){return typeof I=="symbol"||W0(I)&&NR(I)==$fl}var $x=ofl;var tfl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rfl=/^\w*$/;function efl(I,G){if(_c(I))return!1;var Z=typeof I;if(Z=="number"||Z=="symbol"||Z=="boolean"||I==null||$x(I))return!0;return rfl.test(I)||!tfl.test(I)||G!=null&&I in Object(G)}var ox=efl;var I$l="Expected a function";function KJI(I,G){if(typeof I!="function"||G!=null&&typeof G!="function")throw TypeError(I$l);var Z=function(){var l=arguments,b=G?G.apply(this,l):l[0],W=Z.cache;if(W.has(b))return W.get(b);var N=I.apply(this,l);return Z.cache=W.set(b,N)||W,N};return Z.cache=new(KJI.Cache||Ia),Z}KJI.Cache=Ia;var Zb=KJI;var G$l=500;function Z$l(I){var G=Zb(I,function(l){if(Z.size===G$l)Z.clear();return l}),Z=G.cache;return G}var opG=Z$l;var l$l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,b$l=/\\(\\)?/g,W$l=opG(function(I){var G=[];if(I.charCodeAt(0)===46)G.push("");return I.replace(l$l,function(Z,l,b,W){G.push(b?W.replace(b$l,"$1"):l||Z)}),G}),tpG=W$l;function N$l(I,G){var Z=-1,l=I==null?0:I.length,b=Array(l);while(++Z<l)b[Z]=G(I[Z],Z,I);return b}var AA=N$l;var Y$l=1/0,rpG=U0?U0.prototype:void 0,epG=rpG?rpG.toString:void 0;function IyG(I){if(typeof I=="string")return I;if(_c(I))return AA(I,IyG)+"";if($x(I))return epG?epG.call(I):"";var G=I+"";return G=="0"&&1/I==-Y$l?"-0":G}var GyG=IyG;function c$l(I){return I==null?"":GyG(I)}var ZyG=c$l;function V$l(I,G){if(_c(I))return I;return ox(I,G)?[I]:tpG(ZyG(I))}var qH=V$l;var d$l=1/0;function m$l(I){if(typeof I=="string"||$x(I))return I;var G=I+"";return G=="0"&&1/I==-d$l?"-0":G}var TH=m$l;function Q$l(I,G){G=qH(G,I);var Z=0,l=G.length;while(I!=null&&Z<l)I=I[TH(G[Z++])];return Z&&Z==l?I:void 0}var Vy=Q$l;function X$l(I,G,Z){var l=I==null?void 0:Vy(I,G);return l===void 0?Z:l}var lyG=X$l;function F$l(I,G){return I!=null&&G in Object(I)}var byG=F$l;function R$l(I,G,Z){G=qH(G,I);var l=-1,b=G.length,W=!1;while(++l<b){var N=TH(G[l]);if(!(W=I!=null&&Z(I,N)))break;I=I[N]}if(W||++l!=b)return W;return b=I==null?0:I.length,!!b&&Dx(b)&&Kx(N,b)&&(_c(I)||Mx(I))}var WyG=R$l;function H$l(I,G){return I!=null&&WyG(I,G,byG)}var kII=H$l;var h$l=1,w$l=2;function J$l(I,G){if(ox(I)&&zII(G))return BII(TH(I),G);return function(Z){var l=lyG(Z,I);return l===void 0&&l===G?kII(Z,I):fx(G,l,h$l|w$l)}}var NyG=J$l;function A$l(I){return I}var tx=A$l;function E$l(I){return function(G){return G==null?void 0:G[I]}}var UII=E$l;function v$l(I){return function(G){return Vy(G,I)}}var YyG=v$l;function C$l(I){return ox(I)?UII(TH(I)):YyG(I)}var cyG=C$l;function p$l(I){if(typeof I=="function")return I;if(I==null)return tx;if(typeof I=="object")return _c(I)?NyG(I[0],I[1]):$pG(I);return cyG(I)}var rx=p$l;function y$l(I,G){var Z={};return G=rx(G,3),aII(I,function(l,b,W){Ox(Z,b,G(l,b,W))}),Z}var xII=y$l;function u$l(I,G,Z){var l=-1,b=I.length;if(G<0)G=-G>b?0:b+G;if(Z=Z>b?b:Z,Z<0)Z+=b;b=G>Z?0:Z-G>>>0,G>>>=0;var W=Array(b);while(++l<b)W[l]=I[l+G];return W}var VyG=u$l;function L$l(I,G){return G.length<2?I:Vy(I,VyG(G,0,-1))}var dyG=L$l;var g$l=Object.prototype,a$l=g$l.hasOwnProperty;function z$l(I,G){G=qH(G,I);var Z=-1,l=G.length;if(!l)return!0;var b=I==null||typeof I!=="object"&&typeof I!=="function";while(++Z<l){var W=G[Z];if(typeof W!=="string")continue;if(W==="__proto__"&&!a$l.call(I,"__proto__"))return!1;if(W==="constructor"&&Z+1<l&&typeof G[Z+1]==="string"&&G[Z+1]==="prototype"){if(b&&Z===0)continue;return!1}}var N=dyG(I,G);return N==null||delete N[TH(Ow(G))]}var myG=z$l;var B$l="[object Object]",k$l=Function.prototype,U$l=Object.prototype,QyG=k$l.toString,x$l=U$l.hasOwnProperty,O$l=QyG.call(Object);function M$l(I){if(!W0(I)||NR(I)!=B$l)return!1;var G=ix(I);if(G===null)return!0;var Z=x$l.call(G,"constructor")&&G.constructor;return typeof Z=="function"&&Z instanceof Z&&QyG.call(Z)==O$l}var XyG=M$l;function K$l(I){return XyG(I)?void 0:I}var FyG=K$l;var RyG=U0?U0.isConcatSpreadable:void 0;function D$l(I){return _c(I)||Mx(I)||!!(RyG&&I&&I[RyG])}var HyG=D$l;function hyG(I,G,Z,l,b){var W=-1,N=I.length;Z||(Z=HyG),b||(b=[]);while(++W<N){var Y=I[W];if(G>0&&Z(Y))if(G>1)hyG(Y,G-1,Z,l,b);else Sx(b,Y);else if(!l)b[b.length]=Y}return b}var wyG=hyG;function n$l(I){var G=I==null?0:I.length;return G?wyG(I,1):[]}var JyG=n$l;function j$l(I,G,Z){switch(Z.length){case 0:return I.call(G);case 1:return I.call(G,Z[0]);case 2:return I.call(G,Z[0],Z[1]);case 3:return I.call(G,Z[0],Z[1],Z[2])}return I.apply(G,Z)}var AyG=j$l;var EyG=Math.max;function q$l(I,G,Z){return G=EyG(G===void 0?I.length-1:G,0),function(){var l=arguments,b=-1,W=EyG(l.length-G,0),N=Array(W);while(++b<W)N[b]=l[G+b];b=-1;var Y=Array(G+1);while(++b<G)Y[b]=l[b];return Y[G]=Z(N),AyG(I,this,Y)}}var OII=q$l;function T$l(I){return function(){return I}}var vyG=T$l;var S$l=!xx?tx:function(I,G){return xx(I,"toString",{configurable:!0,enumerable:!1,value:vyG(G),writable:!0})},CyG=S$l;var i$l=800,P$l=16,_$l=Date.now;function s$l(I){var G=0,Z=0;return function(){var l=_$l(),b=P$l-(l-Z);if(Z=l,b>0){if(++G>=i$l)return arguments[0]}else G=0;return I.apply(void 0,arguments)}}var pyG=s$l;var f$l=pyG(CyG),MII=f$l;function $$l(I){return MII(OII(I,void 0,JyG),I+"")}var KII=$$l;var o$l=1,t$l=2,r$l=4,e$l=KII(function(I,G){var Z={};if(I==null)return Z;var l=!1;if(G=AA(G,function(W){return W=qH(W,I),l||(l=W.length>1),W}),wA(I,Px(I),Z),l)Z=pII(Z,o$l|t$l|r$l,FyG);var b=G.length;while(b--)myG(Z,G[b]);return Z}),Za=e$l;function Iol(I,G,Z,l){var b=-1,W=I==null?0:I.length;while(++b<W){var N=I[b];G(l,N,Z(N),I)}return l}var yyG=Iol;function Gol(I,G){return function(Z,l){if(Z==null)return Z;if(!cy(Z))return I(Z,l);var b=Z.length,W=G?b:-1,N=Object(Z);while(G?W--:++W<b)if(l(N[W],W,N)===!1)break;return Z}}var uyG=Gol;var Zol=uyG(aII),LyG=Zol;function lol(I,G,Z,l){return LyG(I,function(b,W,N){G(l,b,Z(b),N)}),l}var gyG=lol;function bol(I,G){return function(Z,l){var b=_c(Z)?yyG:gyG,W=G?G():{};return b(Z,I,rx(l,2),W)}}var ayG=bol;var Wol=ayG(function(I,G,Z){I[Z?0:1].push(G)},function(){return[[],[]]}),DJI=Wol;function Nol(I,G,Z,l){if(!BX(I))return I;G=qH(G,I);var b=-1,W=G.length,N=W-1,Y=I;while(Y!=null&&++b<W){var c=TH(G[b]),V=Z;if(c==="__proto__"||c==="constructor"||c==="prototype")return I;if(b!=N){var d=Y[c];if(V=l?l(d,c,Y):void 0,V===void 0)V=BX(d)?d:Kx(G[b+1])?[]:{}}Ny(Y,c,V),Y=Y[c]}return I}var zyG=Nol;function Yol(I,G,Z){var l=-1,b=G.length,W={};while(++l<b){var N=G[l],Y=Vy(I,N);if(Z(Y,N))zyG(W,qH(N,I),Y)}return W}var DII=Yol;function col(I,G){return DII(I,G,function(Z,l){return kII(I,l)})}var ByG=col;var Vol=KII(function(I,G){return I==null?{}:ByG(I,G)}),nII=Vol;function dol(I,G){if(I==null)return{};var Z=AA(Px(I),function(l){return[l]});return G=rx(G),DII(I,Z,function(l,b){return G(l,b[0])})}var jII=dol;var{floor:mol,random:Qol}=Math;function Xol(I,G){return I+mol(Qol()*(G-I+1))}var kyG=Xol;function Fol(I){var G=I.length;return G?I[kyG(0,G-1)]:void 0}var qII=Fol;function Rol(I,G){return AA(G,function(Z){return I[Z]})}var UyG=Rol;function Hol(I){return I==null?[]:UyG(I,jH(I))}var xyG=Hol;function hol(I){return qII(xyG(I))}var OyG=hol;function wol(I){var G=_c(I)?qII:OyG;return G(I)}var la=wol;function Jol(I,G){return MII(OII(I,G,tx),I+"")}var MyG=Jol;function Aol(I){return W0(I)&&cy(I)}var KyG=Aol;var Eol=Math.max;function vol(I){if(!(I&&I.length))return[];var G=0;return I=RII(I,function(Z){if(KyG(Z))return G=Eol(Z.length,G),!0}),WII(G,function(Z){return AA(I,UII(Z))})}var DyG=vol;var Col=MyG(DyG),nJI=Col;function pol(I,G,Z){var l=-1,b=I.length,W=G.length,N={};while(++l<b){var Y=l<W?G[l]:void 0;Z(N,I[l],Y)}return N}var nyG=pol;function yol(I,G){return nyG(I||[],G||[],Ny)}var jJI=yol;import{homedir as xlb}from"os";import{execFile as glb}from"child_process";import{cwd as ulb}from"process";var xaG=hI(TJI(),1);import*as L2 from"fs";import{homedir as wlb}from"os";import{existsSync as kaG}from"fs";import{spawn as Jlb,execSync as UaG}from"child_process";import{isAbsolute as Alb,resolve as Elb,join as vlb}from"path";import{existsSync as Mw,mkdirSync as iII}from"fs";import{dirname as $JI,join as my}from"path";import{writeFileSync as IO,readFileSync as tyG}from"fs";import{randomUUID as jol}from"crypto";import jV from"node:path";import $yG from"node:os";import SJI from"node:process";var dy=$yG.homedir(),iJI=$yG.tmpdir(),{env:ex}=SJI,Kol=(I)=>{let G=jV.join(dy,"Library");return{data:jV.join(G,"Application Support",I),config:jV.join(G,"Preferences",I),cache:jV.join(G,"Caches",I),log:jV.join(G,"Logs",I),temp:jV.join(iJI,I)}},Dol=(I)=>{let G=ex.APPDATA||jV.join(dy,"AppData","Roaming"),Z=ex.LOCALAPPDATA||jV.join(dy,"AppData","Local");return{data:jV.join(Z,I,"Data"),config:jV.join(G,I,"Config"),cache:jV.join(Z,I,"Cache"),log:jV.join(Z,I,"Log"),temp:jV.join(iJI,I)}},nol=(I)=>{let G=jV.basename(dy);return{data:jV.join(ex.XDG_DATA_HOME||jV.join(dy,".local","share"),I),config:jV.join(ex.XDG_CONFIG_HOME||jV.join(dy,".config"),I),cache:jV.join(ex.XDG_CACHE_HOME||jV.join(dy,".cache"),I),log:jV.join(ex.XDG_STATE_HOME||jV.join(dy,".local","state"),I),temp:jV.join(iJI,G,I)}};function PJI(I,{suffix:G="nodejs"}={}){if(typeof I!=="string")throw TypeError(`Expected a string, got ${typeof I}`);if(G)I+=`-${G}`;if(SJI.platform==="darwin")return Kol(I);if(SJI.platform==="win32")return Dol(I);return nol(I)}import{promises as oyG}from"fs";var SII=[],qol=100,kX=jol(),_JI=PJI("claude-cli");function sJI(I){return I.replace(/[^a-zA-Z0-9]/g,"-")}var UX={errors:()=>my(_JI.cache,sJI(process.cwd()),"errors"),messages:()=>my(_JI.cache,sJI(process.cwd()),"messages"),mcpLogs:(I)=>my(_JI.cache,sJI(process.cwd()),`mcp-logs-${I}`)};function PII(I){return I.toISOString().replace(/[:.]/g,"-")}var ryG=PII(new Date);function Tol(){return my(UX.errors(),ryG+".txt")}function Qy(I,G,Z){return my(UX.messages(),`${I}${G>0?`-${G}`:""}${Z>0?`-sidechain-${Z}`:""}.json`)}function DG(I){try{let G=I instanceof Error?I.stack||I.message:String(I),Z={error:G,timestamp:new Date().toISOString()};if(SII.length>=qol)SII.shift();SII.push(Z),Sol(Tol(),{error:G})}catch{}_II(I)}function eyG(){return[...SII]}function IuG(I){if(!Mw(I))return[];try{return JSON.parse(tyG(I,"utf8"))}catch{return[]}}function Sol(I,G){if(process.env.USER_TYPE==="external")return;let Z=$JI(I);if(!Mw(Z))iII(Z,{recursive:!0});if(!Mw(I))IO(I,"[]","utf8");let l=IuG(I),b={...G,cwd:process.cwd(),userType:process.env.USER_TYPE,sessionId:kX,timestamp:new Date().toISOString(),version:"1.3.0"};l.push(b),IO(I,JSON.stringify(l,null,2),"utf8")}function GO(I,G){if(process.env.USER_TYPE==="external")return;if(!G.length)return;let Z=$JI(I);if(!Mw(Z))iII(Z,{recursive:!0});let l=G.map((b)=>({...b,cwd:process.cwd(),userType:process.env.USER_TYPE,sessionId:kX,timestamp:new Date().toISOString(),version:"1.3.0"}));IO(I,JSON.stringify(l,null,2),"utf8")}async function ZO(I=UX.messages()){if(!Mw(I))return DG(`No logs found at ${I}`),[];let G=rJI(),Z=await oyG.readdir(I),l=await Promise.all(Z.filter((b)=>b.endsWith(".json")&&!b.startsWith("_")).map(async(b,W)=>{let N=my(I,b),Y=await oyG.readFile(N,"utf8"),c=JSON.parse(Y),V=c[0],d=c[c.length-1],m=V?.type==="user"&&typeof V?.message?.content==="string"?V?.message?.content:"No prompt",{date:X,forkNumber:R,sidechainNumber:H}=oJI(b);return{date:X,forkNumber:R,fullPath:N,messages:c,value:W,created:fJI(V?.timestamp||X),modified:d?.timestamp?fJI(d.timestamp):fJI(X),firstPrompt:m.split(`
|
|
551
|
+
>>> no match, partial?`,I,m,G,X),m===Y)return!0}return!1}let H;if(typeof V==="string")H=d===V,this.debug("string match",V,d,H);else H=V.test(d),this.debug("pattern match",V,d,H);if(!H)return!1}if(W===Y&&N===c)return!0;else if(W===Y)return Z;else if(N===c)return W===Y-1&&I[W]==="";else throw Error("wtf?")}braceExpand(){return JwG(this.pattern,this.options)}parse(I){Yq(I);let G=this.options;if(I==="**")return OH;if(I==="")return"";let Z,l=null;if(Z=I.match(Ojl))l=G.dot?Kjl:Mjl;else if(Z=I.match(yjl))l=(G.nocase?G.dot?ajl:gjl:G.dot?Ljl:ujl)(Z[1]);else if(Z=I.match(Djl))l=(G.nocase?G.dot?jjl:njl:G.dot?qjl:Tjl)(Z);else if(Z=I.match(zjl))l=G.dot?kjl:Bjl;else if(Z=I.match(Ujl))l=xjl;let b=Jm.fromGlob(I,this.options).toMMPattern();if(l&&typeof b==="object")Reflect.defineProperty(b,"test",{value:l});return b}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let I=this.set;if(!I.length)return this.regexp=!1,this.regexp;let G=this.options,Z=G.noglobstar?Pjl:G.dot?_jl:sjl,l=new Set(G.nocase?["i"]:[]),b=I.map((Y)=>{let c=Y.map((V)=>{if(V instanceof RegExp)for(let d of V.flags.split(""))l.add(d);return typeof V==="string"?rjl(V):V===OH?OH:V._src});return c.forEach((V,d)=>{let m=c[d+1],X=c[d-1];if(V!==OH||X===OH)return;if(X===void 0)if(m!==void 0&&m!==OH)c[d+1]="(?:\\/|"+Z+"\\/)?"+m;else c[d]=Z;else if(m===void 0)c[d-1]=X+"(?:\\/|"+Z+")?";else if(m!==OH)c[d-1]=X+"(?:\\/|\\/"+Z+"\\/)"+m,c[d+1]=OH}),c.filter((V)=>V!==OH).join("/")}).join("|"),[W,N]=I.length>1?["(?:",")"]:["",""];if(b="^"+W+b+N+"$",this.negate)b="^(?!"+b+").+$";try{this.regexp=new RegExp(b,[...l].join(""))}catch(Y){this.regexp=!1}return this.regexp}slashSplit(I){if(this.preserveMultipleSlashes)return I.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(I))return["",...I.split(/\/+/)];else return I.split(/\/+/)}match(I,G=this.partial){if(this.debug("match",I,this.pattern),this.comment)return!1;if(this.empty)return I==="";if(I==="/"&&G)return!0;let Z=this.options;if(this.isWindows)I=I.split("\\").join("/");let l=this.slashSplit(I);this.debug(this.pattern,"split",l);let b=this.set;this.debug(this.pattern,"set",b);let W=l[l.length-1];if(!W)for(let N=l.length-2;!W&&N>=0;N--)W=l[N];for(let N=0;N<b.length;N++){let Y=b[N],c=l;if(Z.matchBase&&Y.length===1)c=[W];if(this.matchOne(c,Y,G)){if(Z.flipNegate)return!0;return!this.negate}}if(Z.flipNegate)return!1;return this.negate}static defaults(I){return Am.defaults(I).Minimatch}}Am.AST=Jm;Am.Minimatch=Vq;Am.escape=a5I;Am.unescape=zp;var EwG="@fastify/otel",I8l="0.8.0",G8l=">=4.0.0 <6",vwG=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],ic={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Bp={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},o4="anonymous",gX=Symbol("fastify otel instance"),kp=Symbol("fastify otel request spans"),dq=Symbol("fastify otel request context"),CwG=Symbol("fastify otel addhook original"),pwG=Symbol("fastify otel setnotfound original"),ae=Symbol("fastify otel ignore path");class z5I extends ywG.InstrumentationBase{constructor(I){super(EwG,I8l,I);if(this.servername=I?.servername??process.env.OTEL_SERVICE_NAME??"fastify",this[ae]=null,this._logger=td.diag.createComponentLogger({namespace:EwG}),I?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let G=I?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof G!=="string"||G.length===0)&&typeof G!=="function")throw TypeError("ignorePaths must be a string or a function");let Z=Am;this[ae]=(l)=>{if(typeof G==="function")return G(l);else return Z(l.url,G)}}}enable(){if(this._handleInitialization===void 0&&this.getConfig().registerOnInitialization){let I=this.plugin();this._handleInitialization=(G)=>{G.fastify.register(I)},AwG.subscribe("fastify.initialization",this._handleInitialization)}return super.enable()}disable(){if(this._handleInitialization)AwG.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0;return super.disable()}init(){return[]}plugin(){let I=this;return G[Symbol.for("skip-override")]=!0,G[Symbol.for("fastify.display-name")]="@fastify/otel",G[Symbol.for("plugin-meta")]={fastify:G8l,name:"@fastify/otel"},G;function G(Z,l,b){Z.decorate(gX,I),Z.decorate(CwG,Z.addHook),Z.decorate(pwG,Z.setNotFoundHandler),Z.decorateRequest("opentelemetry",function(){let m=this[dq];return{span:this[kp],tracer:I.tracer,context:m,inject:(R,H)=>{return td.propagation.inject(m,R,H)},extract:(R,H)=>{return td.propagation.extract(m,R,H)}}}),Z.decorateRequest(kp,null),Z.decorateRequest(dq,null),Z.addHook("onRoute",function(d){if(I[ae]?.(d)===!0){I._logger.debug(`Ignoring route instrumentation ${d.method} ${d.url} because it matches the ignore path`);return}for(let m of vwG)if(d[m]!=null){let X=d[m];if(typeof X==="function")d[m]=V(X,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - route -> ${m}`,[ic.FASTIFY_TYPE]:Bp.ROUTE,[p2.ATTR_HTTP_ROUTE]:d.url,[ic.HOOK_CALLBACK_NAME]:X.name?.length>0?X.name:o4});else if(Array.isArray(X)){let R=[];for(let H of X)R.push(V(H,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - route -> ${m}`,[ic.FASTIFY_TYPE]:Bp.ROUTE,[p2.ATTR_HTTP_ROUTE]:d.url,[ic.HOOK_CALLBACK_NAME]:H.name?.length>0?H.name:o4}));d[m]=R}}if(d.onSend!=null)d.onSend=Array.isArray(d.onSend)?[...d.onSend,W]:[d.onSend,W];else d.onSend=W;if(d.onError!=null)d.onError=Array.isArray(d.onError)?[...d.onError,N]:[d.onError,N];else d.onError=N;d.handler=V(d.handler,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - route-handler`,[ic.FASTIFY_TYPE]:Bp.HANDLER,[p2.ATTR_HTTP_ROUTE]:d.url,[ic.HOOK_CALLBACK_NAME]:d.handler.name.length>0?d.handler.name:o4})}),Z.addHook("onRequest",function(d,m,X){if(this[gX].isEnabled()===!1)return X();else if(this[gX][ae]?.({url:d.url,method:d.method})===!0)return this[gX]._logger.debug(`Ignoring request ${d.method} ${d.url} because it matches the ignore path`),X();let R=td.context.active();if(td.trace.getSpan(R)==null)R=td.propagation.extract(R,d.headers);let H=ze.getRPCMetadata(R);if(d.routeOptions.url!=null&&H?.type===ze.RPCType.HTTP)H.route=d.routeOptions.url;let w=this[gX].tracer.startSpan("request",{attributes:{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.ROOT]:"@fastify/otel",[p2.ATTR_HTTP_ROUTE]:d.url,[p2.ATTR_HTTP_REQUEST_METHOD]:d.method}},R);d[dq]=td.trace.setSpan(R,w),d[kp]=w,td.context.with(d[dq],()=>{X()})}),Z.addHook("onResponse",function(d,m,X){let R=d[kp];if(R!=null)R.setStatus({code:td.SpanStatusCode.OK,message:"OK"}),R.setAttributes({[p2.ATTR_HTTP_RESPONSE_STATUS_CODE]:404}),R.end();d[kp]=null,X()}),Z.addHook=Y,Z.setNotFoundHandler=c,b();function W(d,m,X,R){let H=d[kp];if(H!=null){if(m.statusCode<500)H.setStatus({code:td.SpanStatusCode.OK,message:"OK"});H.setAttributes({[p2.ATTR_HTTP_RESPONSE_STATUS_CODE]:m.statusCode}),H.end()}d[kp]=null,R(null,X)}function N(d,m,X,R){let H=d[kp];if(H!=null)H.setStatus({code:td.SpanStatusCode.ERROR,message:X.message}),H.recordException(X);R()}function Y(d,m){let X=this[CwG];if(vwG.includes(d))return X.call(this,d,V(m,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - ${d}`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:o4}));else return X.call(this,d,m)}function c(d,m){let X=this[pwG];if(typeof d==="function")m=V(d,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:d.name?.length>0?d.name:o4}),X.call(this,m);else{if(d.preValidation!=null)d.preValidation=V(d.preValidation,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:d.preValidation.name?.length>0?d.preValidation.name:o4});if(d.preHandler!=null)d.preHandler=V(d.preHandler,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:d.preHandler.name?.length>0?d.preHandler.name:o4});m=V(m,{[p2.ATTR_SERVICE_NAME]:Z[gX].servername,[ic.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[ic.FASTIFY_TYPE]:Bp.INSTANCE,[ic.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:o4}),X.call(this,d,m)}}function V(d,m={}){return function(...R){let H=this[gX],[w]=R;if(H.isEnabled()===!1)return d.call(this,...R);let A=w[dq]??td.context.active(),y=H.tracer.startSpan(`handler - ${d.name?.length>0?d.name:this.pluginName??o4}`,{attributes:m},A);return td.context.with(td.trace.setSpan(A,y),function(){try{let g=d.call(this,...R);if(typeof g?.then==="function")return g.then((a)=>{return y.end(),a},(a)=>{return y.setStatus({code:td.SpanStatusCode.ERROR,message:a.message}),y.recordException(a),y.end(),Promise.reject(a)});return y.end(),g}catch(g){throw y.setStatus({code:td.SpanStatusCode.ERROR,message:g.message}),y.recordException(g),y.end(),g}},this)}}}}}var Uw=hI(Il(),1),ke=hI($N(),1),sg=hI(BN(),1),zwG=hI(tY(),1);var t4;(function(I){I.FASTIFY_NAME="fastify.name";let Z="fastify.type";I.FASTIFY_TYPE=Z;let l="hook.name";I.HOOK_NAME=l;let b="plugin.name";I.PLUGIN_NAME=b})(t4||(t4={}));var mq;(function(I){I.MIDDLEWARE="middleware";let Z="request_handler";I.REQUEST_HANDLER=Z})(mq||(mq={}));var Qq;(function(I){I.MIDDLEWARE="middleware";let Z="request handler";I.REQUEST_HANDLER=Z})(Qq||(Qq={}));var LwG=hI(Il(),1);var Xq=Symbol("opentelemetry.instrumentation.fastify.request_active_span");function B5I(I,G,Z,l={}){let b=G.startSpan(Z,{attributes:l}),W=I[Xq]||[];return W.push(b),Object.defineProperty(I,Xq,{enumerable:!1,configurable:!0,value:W}),b}function Be(I,G){let Z=I[Xq]||[];if(!Z.length)return;Z.forEach((l)=>{if(G)l.setStatus({code:LwG.SpanStatusCode.ERROR,message:G.message}),l.recordException(G);l.end()}),delete I[Xq]}function gwG(I,G,Z){let l,b=void 0;try{if(b=I(),uwG(b))b.then((W)=>G(void 0,W),(W)=>G(W))}catch(W){l=W}finally{if(!uwG(b)){if(G(l,b),l)throw l}return b}}function uwG(I){return typeof I==="object"&&I&&typeof Object.getOwnPropertyDescriptor(I,"then")?.value==="function"||!1}var Z8l="0.1.0",l8l="@sentry/instrumentation-fastify-v3",awG="anonymous",b8l=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class k5I extends sg.InstrumentationBase{constructor(I={}){super(l8l,Z8l,I)}init(){return[new sg.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],(I)=>{return this._patchConstructor(I)})]}_hookOnRequest(){let I=this;return function(Z,l,b){if(!I.isEnabled())return b();I._wrap(l,"send",I._patchSend());let W=Z,N=ke.getRPCMetadata(Uw.context.active()),Y=W.routeOptions?W.routeOptions.url:Z.routerPath;if(Y&&N?.type===ke.RPCType.HTTP)N.route=Y;let c=Z.method||"GET";kN().setTransactionName(`${c} ${Y}`),b()}}_wrapHandler(I,G,Z,l){let b=this;return this._diag.debug("Patching fastify route.handler function"),function(...W){if(!b.isEnabled())return Z.apply(this,W);let N=Z.name||I||awG,Y=`${Qq.MIDDLEWARE} - ${N}`,c=W[1],V=B5I(c,b.tracer,Y,{[t4.FASTIFY_TYPE]:mq.MIDDLEWARE,[t4.PLUGIN_NAME]:I,[t4.HOOK_NAME]:G}),d=l&&W[W.length-1];if(d)W[W.length-1]=function(...m){Be(c),d.apply(this,m)};return Uw.context.with(Uw.trace.setSpan(Uw.context.active(),V),()=>{return gwG(()=>{return Z.apply(this,W)},(m)=>{if(m instanceof Error)V.setStatus({code:Uw.SpanStatusCode.ERROR,message:m.message}),V.recordException(m);if(!l)Be(c)})})}}_wrapAddHook(){let I=this;return this._diag.debug("Patching fastify server.addHook function"),function(G){return function(...l){let b=l[0],W=l[1],N=this.pluginName;if(!b8l.has(b))return G.apply(this,l);let Y=typeof l[l.length-1]==="function"&&W.constructor.name!=="AsyncFunction";return G.apply(this,[b,I._wrapHandler(N,b,W,Y)])}}}_patchConstructor(I){let G=this;function Z(...l){let b=I.fastify.apply(this,l);return b.addHook("onRequest",G._hookOnRequest()),b.addHook("preHandler",G._hookPreHandler()),W8l(),G._wrap(b,"addHook",G._wrapAddHook()),b}if(I.errorCodes!==void 0)Z.errorCodes=I.errorCodes;return Z.fastify=Z,Z.default=Z,Z}_patchSend(){let I=this;return this._diag.debug("Patching fastify reply.send function"),function(Z){return function(...b){let W=b[0];if(!I.isEnabled())return Z.apply(this,b);return sg.safeExecuteInTheMiddle(()=>{return Z.apply(this,b)},(N)=>{if(!N&&W instanceof Error)N=W;Be(this,N)})}}}_hookPreHandler(){let I=this;return this._diag.debug("Patching fastify preHandler function"),function(Z,l,b){if(!I.isEnabled())return b();let W=Z,N=W.routeOptions?.handler||W.context?.handler,Y=N?.name.startsWith("bound ")?N.name.substring(6):N?.name,c=`${Qq.REQUEST_HANDLER} - ${Y||this.pluginName||awG}`,V={[t4.PLUGIN_NAME]:this.pluginName,[t4.FASTIFY_TYPE]:mq.REQUEST_HANDLER,[zwG.SEMATTRS_HTTP_ROUTE]:W.routeOptions?W.routeOptions.url:Z.routerPath};if(Y)V[t4.FASTIFY_NAME]=Y;let d=B5I(l,I.tracer,c,V);BwG(d);let{requestHook:m}=I.getConfig();if(m)sg.safeExecuteInTheMiddle(()=>m(d,{request:Z}),(X)=>{if(X)I._diag.error("request hook failed",X)},!0);return Uw.context.with(Uw.trace.setSpan(Uw.context.active(),d),()=>{b()})}}}function W8l(){let I=Cb();if(I)I.on("spanStart",(G)=>{BwG(G)})}function BwG(I){let G=pb(I).data,Z=G["fastify.type"];if(G[XW]||!Z)return;I.setAttributes({[oN]:"auto.http.otel.fastify",[XW]:`${Z}.fastify`});let l=G["fastify.name"]||G["plugin.name"]||G["hook.name"];if(typeof l==="string"){let b=l.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");I.updateName(b)}}var UwG="Fastify",N8l="Fastify-V5",Y8l="Fastify-V3",xwG=cb(Y8l,()=>new k5I);function c8l(){let I=Cb();if(!I)return;else return I.getIntegrationByName(UwG)}function kwG(I,G,Z,l){let b=c8l()?.getShouldHandleError()||KwG;if(l==="diagnostics-channel")this.diagnosticsChannelExists=!0;if(this.diagnosticsChannelExists&&l==="onError-hook"){RA&&yG.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}if(b(I,G,Z))z0(I,{mechanism:{handled:!1,type:"fastify"}})}var OwG=cb(N8l,()=>{let I=new z5I,G=I.plugin();return U5I.subscribe("fastify.initialization",(Z)=>{let l=Z.fastify;l?.register(G).after((b)=>{if(b)RA&&yG.error("Failed to setup Fastify instrumentation",b);else if(d8l(),l)m8l(l)})}),U5I.subscribe("tracing:fastify.request.handler:error",(Z)=>{let{error:l,request:b,reply:W}=Z;kwG.call(kwG,l,b,W,"diagnostics-channel")}),I}),V8l=({shouldHandleError:I})=>{let G;return{name:UwG,setupOnce(){G=I||KwG,xwG(),OwG()},getShouldHandleError(){return G},setShouldHandleError(Z){G=Z}}},MwG=tZ((I={})=>V8l(I));function KwG(I,G,Z){let l=Z.statusCode;return l>=500||l<=299}function DwG(I){let G=pb(I),Z=G.description,l=G.data,b=l["fastify.type"],W=b==="hook",N=b===Z?.startsWith("handler -"),Y=Z==="request"||b==="request-handler";if(l[XW]||!N&&!Y&&!W)return;let c=W?"hook":N?"middleware":Y?"request-handler":"<unknown>";I.setAttributes({[oN]:"auto.http.otel.fastify",[XW]:`${c}.fastify`});let V=l["fastify.name"]||l["plugin.name"]||l["hook.name"];if(typeof V==="string"){let d=V.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");I.updateName(d)}}function d8l(){let I=Cb();if(I)I.on("spanStart",(G)=>{DwG(G)})}function m8l(I){I.addHook("onRequest",async(G,Z)=>{if(G.opentelemetry){let{span:W}=G.opentelemetry();if(W)DwG(W)}let l=G.routeOptions?.url,b=G.method||"GET";kN().setTransactionName(`${b} ${l}`)})}var v5G=hI(Il(),1),C5G=hI(E5G(),1);var p5G="Graphql",y5G=cb(p5G,C5G.GraphQLInstrumentation,(I)=>{let G=L5G(I);return{...G,responseHook(Z,l){if(Sc(Z,"auto.graphql.otel.graphql"),l.errors?.length&&!pb(Z).status)Z.setStatus({code:v5G.SpanStatusCode.ERROR});let W=pb(Z).data,N=W["graphql.operation.type"],Y=W["graphql.operation.name"];if(G.useOperationNameForRootSpan&&N){let c=Xd(Z),d=pb(c).data[Yx]||[],m=Y?`${N} ${Y}`:`${N}`;if(Array.isArray(d))d.push(m),c.setAttribute(Yx,d);else if(typeof d==="string")c.setAttribute(Yx,[d,m]);else c.setAttribute(Yx,m);if(!pb(c).data["original-description"])c.setAttribute("original-description",pb(c).description);c.updateName(`${pb(c).data["original-description"]} (${D8l(d)})`)}}}}),K8l=(I={})=>{return{name:p5G,setupOnce(){y5G(L5G(I))}}},u5G=tZ(K8l);function L5G(I){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...I}}function D8l(I){if(Array.isArray(I)){let G=I.slice().sort();if(G.length<=5)return G.join(", ");else return`${G.slice(0,5).join(", ")}, +${G.length-5}`}return`${I}`}var i5G=hI(S5G(),1);var P5G="Kafka",_5G=cb(P5G,()=>new i5G.KafkaJsInstrumentation({consumerHook(I){Sc(I,"auto.kafkajs.otel.consumer")},producerHook(I){Sc(I,"auto.kafkajs.otel.producer")}})),q8l=()=>{return{name:P5G,setupOnce(){_5G()}}},s5G=tZ(q8l);var WJG=hI(bJG(),1);var NJG="LruMemoizer",YJG=cb(NJG,()=>new WJG.LruMemoizerInstrumentation),P8l=()=>{return{name:NJG,setupOnce(){YJG()}}},cJG=tZ(P8l);var CJG=hI(vJG(),1);var pJG="Mongo",yJG=cb(pJG,()=>new CJG.MongoDBInstrumentation({dbStatementSerializer:o8l,responseHook(I){Sc(I,"auto.db.otel.mongo")}}));function o8l(I){let G=S5I(I);return JSON.stringify(G)}function S5I(I){if(Array.isArray(I))return I.map((G)=>S5I(G));if(t8l(I)){let G={};return Object.entries(I).map(([Z,l])=>[Z,S5I(l)]).reduce((Z,l)=>{if(e8l(l))Z[l[0]]=l[1];return Z},G)}return"?"}function t8l(I){return typeof I==="object"&&I!==null&&!r8l(I)}function r8l(I){let G=!1;if(typeof Buffer<"u")G=Buffer.isBuffer(I);return G}function e8l(I){return Array.isArray(I)}var I7l=()=>{return{name:pJG,setupOnce(){yJG()}}},uJG=tZ(I7l);var sJG=hI(_JG(),1);var fJG="Mongoose",$JG=cb(fJG,()=>new sJG.MongooseInstrumentation({responseHook(I){Sc(I,"auto.db.otel.mongoose")}})),X7l=()=>{return{name:fJG,setupOnce(){$JG()}}},oJG=tZ(X7l);var FAG=hI(XAG(),1);var RAG="Mysql",HAG=cb(RAG,()=>new FAG.MySQLInstrumentation({})),a7l=()=>{return{name:RAG,setupOnce(){HAG()}}},hAG=tZ(a7l);var KAG=hI(MAG(),1);var DAG="Mysql2",nAG=cb(DAG,()=>new KAG.MySQL2Instrumentation({responseHook(I){Sc(I,"auto.db.otel.mysql2")}})),_7l=()=>{return{name:DAG,setupOnce(){nAG()}}},jAG=tZ(_7l);var LEG=hI(WEG(),1),gEG=hI(vEG(),1);var Nql=["get","set","setex"],IJI=["get","mget"],Yql=["set","setex"];function vq(I,G){return I.includes(G.toLowerCase())}function GJI(I){if(vq(IJI,I))return"cache.get";else if(vq(Yql,I))return"cache.put";else return}function cql(I,G){return G.some((Z)=>I.startsWith(Z))}function pEG(I,G){try{if(G.length===0)return;let Z=(b)=>{if(typeof b==="string"||typeof b==="number"||Buffer.isBuffer(b))return[b.toString()];else if(Array.isArray(b))return CEG(b.map((W)=>Z(W)));else return["<unknown>"]},l=G[0];if(vq(Nql,I)&&l!=null)return Z(l);return CEG(G.map((b)=>Z(b)))}catch{return}}function yEG(I,G,Z){if(!GJI(I))return!1;for(let l of G)if(cql(l,Z))return!0;return!1}function uEG(I){let G=(Z)=>{try{if(Buffer.isBuffer(Z))return Z.byteLength;else if(typeof Z==="string")return Z.length;else if(typeof Z==="number")return Z.toString().length;else if(Z===null||Z===void 0)return 0;return JSON.stringify(Z).length}catch{return}};return Array.isArray(I)?I.reduce((Z,l)=>{let b=G(l);return typeof b==="number"?Z!==void 0?Z+b:b:Z},0):G(I)}function CEG(I){let G=[],Z=(l)=>{l.forEach((b)=>{if(Array.isArray(b))Z(b);else G.push(b)})};return Z(I),G}var aEG="Redis",ZJI={},zEG=(I,G,Z,l)=>{I.setAttribute(oN,"auto.db.otel.redis");let b=pEG(G,Z),W=GJI(G);if(!b||!W||!ZJI.cachePrefixes||!yEG(G,b,ZJI.cachePrefixes))return;let N=pb(I).data["net.peer.name"],Y=pb(I).data["net.peer.port"];if(Y&&N)I.setAttributes({"network.peer.address":N,"network.peer.port":Y});let c=uEG(l);if(c)I.setAttribute(VhI,c);if(vq(IJI,G)&&c!==void 0)I.setAttribute(YhI,c>0);I.setAttributes({[XW]:W,[chI]:b});let V=b.join(", ");I.updateName(NA(V,1024))},Vql=cb("IORedis",()=>{return new LEG.IORedisInstrumentation({responseHook:zEG})}),dql=cb("Redis-4",()=>{return new gEG.RedisInstrumentation({responseHook:zEG})}),BEG=Object.assign(()=>{Vql(),dql()},{id:aEG}),mql=(I={})=>{return{name:aEG,setupOnce(){ZJI=I,BEG()}}},kEG=tZ(mql);var d4G=hI(V4G(),1);var m4G="Postgres",Q4G=cb(m4G,()=>new d4G.PgInstrumentation({requireParentSpan:!0,requestHook(I){Sc(I,"auto.db.otel.postgres")}})),$ql=()=>{return{name:m4G,setupOnce(){Q4G()}}},X4G=tZ($ql);var Cx=hI(Il(),1),bv=hI(BN(),1),BQ=hI(tY(),1);var dJI="PostgresJs",F4G=[">=3.0.0 <4"],R4G=cb(dJI,(I)=>new H4G({requireParentSpan:I?.requireParentSpan??!0,requestHook:I?.requestHook}));class H4G extends bv.InstrumentationBase{constructor(I){super("sentry-postgres-js",oY,I)}init(){let I=new bv.InstrumentationNodeModuleDefinition("postgres",F4G);return["src","cf/src","cjs/src"].forEach((G)=>{I.files.push(new bv.InstrumentationNodeModuleFile(`postgres/${G}/connection.js`,["*"],this._patchConnection.bind(this),this._unwrap.bind(this))),I.files.push(new bv.InstrumentationNodeModuleFile(`postgres/${G}/query.js`,F4G,this._patchQuery.bind(this),this._unwrap.bind(this)))}),[I]}_shouldCreateSpans(){let I=this.getConfig();return Cx.trace.getSpan(Cx.context.active())!==void 0||!I.requireParentSpan}_patchReject(I,G){return new Proxy(I,{apply:(Z,l,b)=>{G.setStatus({code:SF,message:b?.[0]?.message||"unknown_error"});let W=Reflect.apply(Z,l,b);return G.setAttribute(BQ.ATTR_DB_RESPONSE_STATUS_CODE,b?.[0]?.code||"Unknown error"),G.setAttribute(BQ.ATTR_ERROR_TYPE,b?.[0]?.name||"Unknown error"),G.end(),W}})}_patchResolve(I,G){return new Proxy(I,{apply:(Z,l,b)=>{let W=Reflect.apply(Z,l,b),N=b?.[0]?.command;if(N)G.setAttribute(BQ.ATTR_DB_OPERATION_NAME,N);return G.end(),W}})}_patchQuery(I){return I.Query.prototype.handle=new Proxy(I.Query.prototype.handle,{apply:async(G,Z,l)=>{if(!this._shouldCreateSpans())return Reflect.apply(G,Z,l);let b=this._sanitizeSqlQuery(Z.strings?.[0]);return pr({name:b||"postgresjs.query",op:"db"},(W)=>{let Y=jW().getScopeData().contexts.postgresjsConnection;Sc(W,"auto.db.otel.postgres");let{requestHook:c}=this.getConfig();if(c)bv.safeExecuteInTheMiddle(()=>c(W,b,Y),(X)=>{if(X)yG.error(`Error in requestHook for ${dJI} integration:`,X)});let V=Y?.ATTR_DB_NAMESPACE||"<unknown database>",d=Y?.ATTR_SERVER_ADDRESS||"<unknown host>",m=Y?.ATTR_SERVER_PORT||"<unknown port>";W.setAttribute(BQ.ATTR_DB_SYSTEM_NAME,"postgres"),W.setAttribute(BQ.ATTR_DB_NAMESPACE,V),W.setAttribute(BQ.ATTR_SERVER_ADDRESS,d),W.setAttribute(BQ.ATTR_SERVER_PORT,m),W.setAttribute(BQ.ATTR_DB_QUERY_TEXT,b),Z.resolve=this._patchResolve(Z.resolve,W),Z.reject=this._patchReject(Z.reject,W);try{return Reflect.apply(G,Z,l)}catch(X){throw W.setStatus({code:SF}),W.end(),X}})}}),I}_patchConnection(I){return new Proxy(I,{apply:(G,Z,l)=>{let b=l[0]?.database||"<unknown database>",W=l[0]?.host?.[0]||"<unknown host>",N=l[0]?.port?.[0]||"<unknown port>";return jW().setContext("postgresjsConnection",{ATTR_DB_NAMESPACE:b,ATTR_SERVER_ADDRESS:W,ATTR_SERVER_PORT:N}),Reflect.apply(G,Z,l)}})}_sanitizeSqlQuery(I){if(!I)return"Unknown SQL Query";return I.replace(/\s+/g," ").trim().substring(0,1024).replace(/--.*?(\r?\n|$)/g,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\b\d+\b/g,"?").replace(/\s+/g," ").replace(/\bIN\b\s*\(\s*\?(?:\s*,\s*\?)*\s*\)/g,"IN (?)")}}var oql=()=>{return{name:dJI,setupOnce(){R4G()}}},h4G=tZ(oql);var A4G=hI(Il(),1),Se=hI(BN(),1),sp=hI(Il(),1);var tql=process.env.PRISMA_SHOW_ALL_TRACES==="true",rql="00-10-10-00";function eql(I){switch(I){case"client":return sp.SpanKind.CLIENT;case"internal":default:return sp.SpanKind.INTERNAL}}var ITl=class{traceMiddleware;tracerProvider;ignoreSpanTypes;constructor({traceMiddleware:I,tracerProvider:G,ignoreSpanTypes:Z}){this.traceMiddleware=I,this.tracerProvider=G,this.ignoreSpanTypes=Z}isEnabled(){return!0}getTraceParent(I){let G=sp.trace.getSpanContext(I??sp.context.active());if(G)return`00-${G.traceId}-${G.spanId}-0${G.traceFlags}`;return rql}dispatchEngineSpans(I){let G=this.tracerProvider.getTracer("prisma"),Z=new Map,l=I.filter((b)=>b.parentId===null);for(let b of l)E4G(G,b,I,Z,this.ignoreSpanTypes)}getActiveContext(){return sp.context.active()}runInChildSpan(I,G){if(typeof I==="string")I={name:I};if(I.internal&&!tql)return G();if(I.middleware&&!this.traceMiddleware)return G();let Z=this.tracerProvider.getTracer("prisma"),l=I.context??this.getActiveContext(),b=`prisma:client:${I.name}`;if(v4G(b,this.ignoreSpanTypes))return G();if(I.active===!1){let W=Z.startSpan(b,I,l);return w4G(W,G(W,l))}return Z.startActiveSpan(b,I,(W)=>w4G(W,G(W,l)))}};function E4G(I,G,Z,l,b){if(v4G(G.name,b))return;let W={attributes:G.attributes,kind:eql(G.kind),startTime:G.startTime};I.startActiveSpan(G.name,W,(N)=>{if(l.set(G.id,N.spanContext().spanId),G.links)N.addLinks(G.links.flatMap((c)=>{let V=l.get(c);if(!V)return[];return{context:{spanId:V,traceId:N.spanContext().traceId,traceFlags:N.spanContext().traceFlags}}}));let Y=Z.filter((c)=>c.parentId===G.id);for(let c of Y)E4G(I,c,Z,l,b);N.end(G.endTime)})}function w4G(I,G){if(GTl(G))return G.then((Z)=>{return I.end(),Z},(Z)=>{throw I.end(),Z});return I.end(),G}function GTl(I){return I!=null&&typeof I.then==="function"}function v4G(I,G){return G.some((Z)=>typeof Z==="string"?Z===I:Z.test(I))}var C4G={name:"@prisma/instrumentation",version:"6.11.1",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@prisma/internals":"workspace:*","@swc/core":"1.11.5","@types/jest":"29.5.14","@types/node":"18.19.76","@opentelemetry/api":"1.9.0",jest:"29.7.0","jest-junit":"16.0.0",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"jest"},sideEffects:!1},QJI=C4G.version,ZTl=QJI.split(".")[0],J4G="PRISMA_INSTRUMENTATION",mJI=`V${ZTl}_PRISMA_INSTRUMENTATION`,lTl=C4G.name,bTl="@prisma/client",p4G=class extends Se.InstrumentationBase{tracerProvider;constructor(I={}){super(lTl,QJI,I)}setTracerProvider(I){this.tracerProvider=I}init(){return[new Se.InstrumentationNodeModuleDefinition(bTl,[QJI])]}enable(){let I=this._config,G={helper:new ITl({traceMiddleware:I.middleware??!1,tracerProvider:this.tracerProvider??A4G.trace.getTracerProvider(),ignoreSpanTypes:I.ignoreSpanTypes??[]})};global[J4G]=G,global[mJI]=G}disable(){delete global[J4G],delete global[mJI]}isEnabled(){return Boolean(global[mJI])}};var y4G="Prisma";function WTl(I){return!!I&&typeof I==="object"&&"dispatchEngineSpans"in I}function u4G(){let I=globalThis.PRISMA_INSTRUMENTATION;return I&&typeof I==="object"&&"helper"in I?I.helper:void 0}class L4G extends p4G{constructor(){super()}enable(){super.enable();let I=u4G(),G=!1;if(WTl(I))I.createEngineSpan=()=>{Qd(()=>{if(!G)G=!0,console.warn("[Sentry] The Sentry SDK supports tracing with Prisma version 5 only with limited capabilities. For full tracing capabilities pass `prismaInstrumentation` for version 5 to the Sentry `prismaIntegration`. Read more: https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/")})}}}var NTl=cb(y4G,(I)=>{if(I?.prismaInstrumentation)return I.prismaInstrumentation;return new L4G}),g4G=tZ(({prismaInstrumentation:I}={})=>{return{name:y4G,setupOnce(){NTl({prismaInstrumentation:I})},setup(G){if(!u4G())return;G.on("spanStart",(Z)=>{let l=pb(Z);if(l.description?.startsWith("prisma:"))Z.setAttribute(oN,"auto.db.otel.prisma");if(l.description==="prisma:engine:db_query"&&l.data["db.query.text"])Z.updateName(l.data["db.query.text"]);if(l.description==="prisma:engine:db_query"&&!l.data["db.system"])Z.setAttribute("db.system","prisma")})}}});var _4G=hI(P4G(),1);var s4G="Hapi",f4G=cb(s4G,()=>new _4G.HapiInstrumentation),LTl=()=>{return{name:s4G,setupOnce(){f4G()}}},$4G=tZ(LTl);var wvG=hI(hvG(),1),JvG=hI(tY(),1);var AvG="Koa",EvG=cb(AvG,wvG.KoaInstrumentation,(I={})=>{return{ignoreLayersType:I.ignoreLayersType,requestHook(G,Z){Sc(G,"auto.http.otel.koa");let l=pb(G).data,b=l["koa.type"];if(b)G.setAttribute(XW,`${b}.koa`);let W=l["koa.name"];if(typeof W==="string")G.updateName(W||"< unknown >");if(kN()===vw()){RA&&yG.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let N=l[JvG.ATTR_HTTP_ROUTE],Y=Z.context?.request?.method?.toUpperCase()||"GET";if(N)kN().setTransactionName(`${Y} ${N}`)}}}),MTl=(I={})=>{return{name:AvG,setupOnce(){EvG(I)}}},vvG=tZ(MTl);var SvG=hI(TvG(),1);var ivG="Connect",PvG=cb(ivG,()=>new SvG.ConnectInstrumentation),oTl=()=>{return{name:ivG,setupOnce(){PvG()}}},_vG=tZ(oTl);var dCG=hI(VCG(),1);var lSl=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),mCG="Tedious",QCG=cb(mCG,()=>new dCG.TediousInstrumentation({})),bSl=()=>{let I;return{name:mCG,setupOnce(){let G=QCG();I=Iq(G)},setup(G){I?.(()=>G.on("spanStart",(Z)=>{let{description:l,data:b}=pb(Z);if(!l||b["db.system"]!=="mssql")return;let W=l.split(" ")[0]||"";if(lSl.has(W))Z.setAttribute(oN,"auto.db.otel.tedious")}))}}},XCG=tZ(bSl);var CCG=hI(vCG(),1);var pCG="GenericPool",yCG=cb(pCG,()=>new CCG.GenericPoolInstrumentation({})),cSl=()=>{let I;return{name:pCG,setupOnce(){let G=yCG();I=Iq(G)},setup(G){I?.(()=>G.on("spanStart",(Z)=>{let b=pb(Z).description;if(b==="generic-pool.aquire"||b==="generic-pool.acquire")Z.setAttribute(oN,"auto.db.otel.generic_pool")}))}}},uCG=tZ(cSl);var _CG=hI(PCG(),1);var sCG="Amqplib",gSl={consumeEndHook:(I)=>{Sc(I,"auto.amqplib.otel.consumer")},publishHook:(I)=>{Sc(I,"auto.amqplib.otel.publisher")}},fCG=cb(sCG,()=>new _CG.AmqplibInstrumentation(gSl)),aSl=()=>{return{name:sCG,setupOnce(){fCG()}}},$CG=tZ(aSl);var Lq="VercelAI";var III=hI(BN(),1);var oCG=["generateText","streamText","generateObject","streamObject","embed","embedMany"];function zSl(I,G,Z,l){let b=I?.recordInputs!==void 0?I.recordInputs:G.recordInputs!==void 0?G.recordInputs:Z===!0?!0:l,W=I?.recordOutputs!==void 0?I.recordOutputs:G.recordOutputs!==void 0?G.recordOutputs:Z===!0?!0:l;return{recordInputs:b,recordOutputs:W}}class gq extends III.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(I={}){super("@sentry/instrumentation-vercel-ai",oY,I);gq.prototype.__init.call(this),gq.prototype.__init2.call(this)}init(){return new III.InstrumentationNodeModuleDefinition("ai",[">=3.0.0 <5"],this._patch.bind(this))}callWhenPatched(I){if(this._isPatched)I();else this._callbacks.push(I)}_patch(I){this._isPatched=!0,this._callbacks.forEach((Z)=>Z()),this._callbacks=[];function G(Z){return(...l)=>{let b=l[0].experimental_telemetry||{},W=b.isEnabled,N=jW().getClient(),Y=N?.getIntegrationByName(Lq),c=Y?.options,V=Y?Boolean(N?.getOptions().sendDefaultPii):!1,{recordInputs:d,recordOutputs:m}=zSl(c,b,W,V);return l[0].experimental_telemetry={...b,isEnabled:W!==void 0?W:!0,recordInputs:d,recordOutputs:m},q4(()=>{return Z.apply(this,l)},(X)=>{if(X&&typeof X==="object")C2(X,"_sentry_active_span",VA())})}}if(Object.prototype.toString.call(I)==="[object Module]"){for(let Z of oCG)I[Z]=G(I[Z]);return I}else{let Z=oCG.reduce((l,b)=>{return l[b]=G(I[b]),l},{});return{...I,...Z}}}}var tCG=cb(Lq,()=>new gq({}));function BSl(I){return!!I.getIntegrationByName("Modules")?.getModules?.()?.ai}var kSl=(I={})=>{let G;return{name:Lq,options:I,setupOnce(){G=tCG()},afterAllSetup(Z){if(I.force??BSl(Z))_r(Z);else G?.callWhenPatched(()=>_r(Z))}}},rCG=tZ(kSl);var GII=hI(BN(),1);var USl=[">=4.0.0 <6"];function xSl(I,G){let Z=I?.recordInputs??G,l=I?.recordOutputs??G;return{recordInputs:Z,recordOutputs:l}}class aJI extends GII.InstrumentationBase{constructor(I={}){super("@sentry/instrumentation-openai",oY,I)}init(){return new GII.InstrumentationNodeModuleDefinition("openai",USl,this._patch.bind(this))}_patch(I){let G=I.OpenAI,Z=function(...l){let b=Reflect.construct(G,l),W=jW().getClient(),Y=W?.getIntegrationByName(Cp)?.options,c=Boolean(W?.getOptions().sendDefaultPii),{recordInputs:V,recordOutputs:d}=xSl(Y,c);return shI(b,{recordInputs:V,recordOutputs:d})};Object.setPrototypeOf(Z,G),Object.setPrototypeOf(Z.prototype,G.prototype);for(let l of Object.getOwnPropertyNames(G))if(!["length","name","prototype"].includes(l)){let b=Object.getOwnPropertyDescriptor(G,l);if(b)Object.defineProperty(Z,l,b)}try{I.OpenAI=Z}catch(l){Object.defineProperty(I,"OpenAI",{value:Z,writable:!0,configurable:!0,enumerable:!0})}if(I.default===G)try{I.default=Z}catch(l){Object.defineProperty(I,"default",{value:Z,writable:!0,configurable:!0,enumerable:!0})}return I}}var eCG=cb(Cp,()=>new aJI({})),OSl=(I={})=>{return{name:Cp,options:I,setupOnce(){eCG()}}},I3G=tZ(OSl);function G3G(){return[fhG(),MwG(),u5G(),uJG(),oJG(),hAG(),jAG(),kEG(),X4G(),g4G(),$4G(),vvG(),_vG(),XCG(),uCG(),s5G(),$CG(),cJG(),rCG(),I3G(),h4G()]}var Lx=hI(Il(),1),Z3G=hI(JwI(),1),l3G=hI(vwI(),1),gx=hI(tY(),1);var MSl=hI(Gr(),1);var zJI=1e6;function b3G(I,G={}){if(I.getOptions().debug)W5I();let Z=KSl(I,G);I.traceProvider=Z}function KSl(I,G={}){let Z=new l3G.BasicTracerProvider({sampler:new qwI(I),resource:new Z3G.Resource({[gx.ATTR_SERVICE_NAME]:"node",[gx.SEMRESATTRS_SERVICE_NAMESPACE]:"sentry",[gx.ATTR_SERVICE_VERSION]:oY}),forceFlushTimeoutMillis:500,spanProcessors:[new jwI({timeout:DSl(I.getOptions().maxSpanWaitDuration)}),...G.spanProcessors||[]]});return Lx.trace.setGlobalTracerProvider(Z),Lx.propagation.setGlobalPropagator(new OwI),Lx.context.setGlobalContextManager(new Re),Z}function DSl(I){if(I==null)return;if(I>zJI)return RA&&yG.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${zJI}`),zJI;else if(I<=0||Number.isNaN(I)){RA&&yG.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return I}function W3G(){return Ae().filter((G)=>G.name!=="Http"&&G.name!=="NodeFetch").concat(Zq(),XhG())}function N3G(I){return[...W3G(),...a0(I)?G3G():[]]}function BJI(I={}){return nSl(I,N3G)}function nSl(I={},G){Mg(I,"node");let Z=F5I({...I,defaultIntegrations:I.defaultIntegrations??G(I)});if(Z&&!I.skipOpenTelemetrySetup)b3G(Z,{spanProcessors:I.openTelemetrySpanProcessors}),Ee();return Z}import{existsSync as lT,readFileSync as bT,writeFileSync as Ulb}from"fs";import{resolve as dEI,join as MGI}from"path";function qSl(){this.__data__=[],this.size=0}var Y3G=qSl;function TSl(I,G){return I===G||I!==I&&G!==G}var ax=TSl;function SSl(I,G){var Z=I.length;while(Z--)if(ax(I[Z][0],G))return Z;return-1}var Gy=SSl;var iSl=Array.prototype,PSl=iSl.splice;function _Sl(I){var G=this.__data__,Z=Gy(G,I);if(Z<0)return!1;var l=G.length-1;if(Z==l)G.pop();else PSl.call(G,Z,1);return--this.size,!0}var c3G=_Sl;function sSl(I){var G=this.__data__,Z=Gy(G,I);return Z<0?void 0:G[Z][1]}var V3G=sSl;function fSl(I){return Gy(this.__data__,I)>-1}var d3G=fSl;function $Sl(I,G){var Z=this.__data__,l=Gy(Z,I);if(l<0)++this.size,Z.push([I,G]);else Z[l][1]=G;return this}var m3G=$Sl;function zx(I){var G=-1,Z=I==null?0:I.length;this.clear();while(++G<Z){var l=I[G];this.set(l[0],l[1])}}zx.prototype.clear=Y3G;zx.prototype.delete=c3G;zx.prototype.get=V3G;zx.prototype.has=d3G;zx.prototype.set=m3G;var Zy=zx;function oSl(){this.__data__=new Zy,this.size=0}var Q3G=oSl;function tSl(I){var G=this.__data__,Z=G.delete(I);return this.size=G.size,Z}var X3G=tSl;function rSl(I){return this.__data__.get(I)}var F3G=rSl;function eSl(I){return this.__data__.has(I)}var R3G=eSl;var Iil=typeof global=="object"&&global&&global.Object===Object&&global,ZII=Iil;var Gil=typeof self=="object"&&self&&self.Object===Object&&self,Zil=ZII||Gil||Function("return this")(),u2=Zil;var lil=u2.Symbol,U0=lil;var H3G=Object.prototype,bil=H3G.hasOwnProperty,Wil=H3G.toString,aq=U0?U0.toStringTag:void 0;function Nil(I){var G=bil.call(I,aq),Z=I[aq];try{I[aq]=void 0;var l=!0}catch(W){}var b=Wil.call(I);if(l)if(G)I[aq]=Z;else delete I[aq];return b}var h3G=Nil;var Yil=Object.prototype,cil=Yil.toString;function Vil(I){return cil.call(I)}var w3G=Vil;var dil="[object Null]",mil="[object Undefined]",J3G=U0?U0.toStringTag:void 0;function Qil(I){if(I==null)return I===void 0?mil:dil;return J3G&&J3G in Object(I)?h3G(I):w3G(I)}var NR=Qil;function Xil(I){var G=typeof I;return I!=null&&(G=="object"||G=="function")}var BX=Xil;var Fil="[object AsyncFunction]",Ril="[object Function]",Hil="[object GeneratorFunction]",hil="[object Proxy]";function wil(I){if(!BX(I))return!1;var G=NR(I);return G==Ril||G==Hil||G==Fil||G==hil}var lII=wil;var Jil=u2["__core-js_shared__"],bII=Jil;var A3G=function(){var I=/[^.]+$/.exec(bII&&bII.keys&&bII.keys.IE_PROTO||"");return I?"Symbol(src)_1."+I:""}();function Ail(I){return!!A3G&&A3G in I}var E3G=Ail;var Eil=Function.prototype,vil=Eil.toString;function Cil(I){if(I!=null){try{return vil.call(I)}catch(G){}try{return I+""}catch(G){}}return""}var cv=Cil;var pil=/[\\^$.*+?()[\]{}|]/g,yil=/^\[object .+?Constructor\]$/,uil=Function.prototype,Lil=Object.prototype,gil=uil.toString,ail=Lil.hasOwnProperty,zil=RegExp("^"+gil.call(ail).replace(pil,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Bil(I){if(!BX(I)||E3G(I))return!1;var G=lII(I)?zil:yil;return G.test(cv(I))}var v3G=Bil;function kil(I,G){return I==null?void 0:I[G]}var C3G=kil;function Uil(I,G){var Z=C3G(I,G);return v3G(Z)?Z:void 0}var $F=Uil;var xil=$F(u2,"Map"),ly=xil;var Oil=$F(Object,"create"),Vv=Oil;function Mil(){this.__data__=Vv?Vv(null):{},this.size=0}var p3G=Mil;function Kil(I){var G=this.has(I)&&delete this.__data__[I];return this.size-=G?1:0,G}var y3G=Kil;var Dil="__lodash_hash_undefined__",nil=Object.prototype,jil=nil.hasOwnProperty;function qil(I){var G=this.__data__;if(Vv){var Z=G[I];return Z===Dil?void 0:Z}return jil.call(G,I)?G[I]:void 0}var u3G=qil;var Til=Object.prototype,Sil=Til.hasOwnProperty;function iil(I){var G=this.__data__;return Vv?G[I]!==void 0:Sil.call(G,I)}var L3G=iil;var Pil="__lodash_hash_undefined__";function _il(I,G){var Z=this.__data__;return this.size+=this.has(I)?0:1,Z[I]=Vv&&G===void 0?Pil:G,this}var g3G=_il;function Bx(I){var G=-1,Z=I==null?0:I.length;this.clear();while(++G<Z){var l=I[G];this.set(l[0],l[1])}}Bx.prototype.clear=p3G;Bx.prototype.delete=y3G;Bx.prototype.get=u3G;Bx.prototype.has=L3G;Bx.prototype.set=g3G;var kJI=Bx;function sil(){this.size=0,this.__data__={hash:new kJI,map:new(ly||Zy),string:new kJI}}var a3G=sil;function fil(I){var G=typeof I;return G=="string"||G=="number"||G=="symbol"||G=="boolean"?I!=="__proto__":I===null}var z3G=fil;function $il(I,G){var Z=I.__data__;return z3G(G)?Z[typeof G=="string"?"string":"hash"]:Z.map}var by=$il;function oil(I){var G=by(this,I).delete(I);return this.size-=G?1:0,G}var B3G=oil;function til(I){return by(this,I).get(I)}var k3G=til;function ril(I){return by(this,I).has(I)}var U3G=ril;function eil(I,G){var Z=by(this,I),l=Z.size;return Z.set(I,G),this.size+=Z.size==l?0:1,this}var x3G=eil;function kx(I){var G=-1,Z=I==null?0:I.length;this.clear();while(++G<Z){var l=I[G];this.set(l[0],l[1])}}kx.prototype.clear=a3G;kx.prototype.delete=B3G;kx.prototype.get=k3G;kx.prototype.has=U3G;kx.prototype.set=x3G;var Ia=kx;var IPl=200;function GPl(I,G){var Z=this.__data__;if(Z instanceof Zy){var l=Z.__data__;if(!ly||l.length<IPl-1)return l.push([I,G]),this.size=++Z.size,this;Z=this.__data__=new Ia(l)}return Z.set(I,G),this.size=Z.size,this}var O3G=GPl;function Ux(I){var G=this.__data__=new Zy(I);this.size=G.size}Ux.prototype.clear=Q3G;Ux.prototype.delete=X3G;Ux.prototype.get=F3G;Ux.prototype.has=R3G;Ux.prototype.set=O3G;var Wy=Ux;function ZPl(I,G){var Z=-1,l=I==null?0:I.length;while(++Z<l)if(G(I[Z],Z,I)===!1)break;return I}var M3G=ZPl;var lPl=function(){try{var I=$F(Object,"defineProperty");return I({},"",{}),I}catch(G){}}(),xx=lPl;function bPl(I,G,Z){if(G=="__proto__"&&xx)xx(I,G,{configurable:!0,enumerable:!0,value:Z,writable:!0});else I[G]=Z}var Ox=bPl;var WPl=Object.prototype,NPl=WPl.hasOwnProperty;function YPl(I,G,Z){var l=I[G];if(!(NPl.call(I,G)&&ax(l,Z))||Z===void 0&&!(G in I))Ox(I,G,Z)}var Ny=YPl;function cPl(I,G,Z,l){var b=!Z;Z||(Z={});var W=-1,N=G.length;while(++W<N){var Y=G[W],c=l?l(Z[Y],I[Y],Y,Z,I):void 0;if(c===void 0)c=I[Y];if(b)Ox(Z,Y,c);else Ny(Z,Y,c)}return Z}var wA=cPl;function VPl(I,G){var Z=-1,l=Array(I);while(++Z<I)l[Z]=G(Z);return l}var WII=VPl;function dPl(I){return I!=null&&typeof I=="object"}var W0=dPl;var mPl="[object Arguments]";function QPl(I){return W0(I)&&NR(I)==mPl}var UJI=QPl;var K3G=Object.prototype,XPl=K3G.hasOwnProperty,FPl=K3G.propertyIsEnumerable,RPl=UJI(function(){return arguments}())?UJI:function(I){return W0(I)&&XPl.call(I,"callee")&&!FPl.call(I,"callee")},Mx=RPl;var HPl=Array.isArray,_c=HPl;var YII={};JH(YII,{default:()=>Yy});function hPl(){return!1}var D3G=hPl;var q3G=typeof YII=="object"&&YII&&!YII.nodeType&&YII,n3G=q3G&&typeof NII=="object"&&NII&&!NII.nodeType&&NII,wPl=n3G&&n3G.exports===q3G,j3G=wPl?u2.Buffer:void 0,JPl=j3G?j3G.isBuffer:void 0,APl=JPl||D3G,Yy=APl;var EPl=9007199254740991,vPl=/^(?:0|[1-9]\d*)$/;function CPl(I,G){var Z=typeof I;return G=G==null?EPl:G,!!G&&(Z=="number"||Z!="symbol"&&vPl.test(I))&&(I>-1&&I%1==0&&I<G)}var Kx=CPl;var pPl=9007199254740991;function yPl(I){return typeof I=="number"&&I>-1&&I%1==0&&I<=pPl}var Dx=yPl;var uPl="[object Arguments]",LPl="[object Array]",gPl="[object Boolean]",aPl="[object Date]",zPl="[object Error]",BPl="[object Function]",kPl="[object Map]",UPl="[object Number]",xPl="[object Object]",OPl="[object RegExp]",MPl="[object Set]",KPl="[object String]",DPl="[object WeakMap]",nPl="[object ArrayBuffer]",jPl="[object DataView]",qPl="[object Float32Array]",TPl="[object Float64Array]",SPl="[object Int8Array]",iPl="[object Int16Array]",PPl="[object Int32Array]",_Pl="[object Uint8Array]",sPl="[object Uint8ClampedArray]",fPl="[object Uint16Array]",$Pl="[object Uint32Array]",sc={};sc[qPl]=sc[TPl]=sc[SPl]=sc[iPl]=sc[PPl]=sc[_Pl]=sc[sPl]=sc[fPl]=sc[$Pl]=!0;sc[uPl]=sc[LPl]=sc[nPl]=sc[gPl]=sc[jPl]=sc[aPl]=sc[zPl]=sc[BPl]=sc[kPl]=sc[UPl]=sc[xPl]=sc[OPl]=sc[MPl]=sc[KPl]=sc[DPl]=!1;function oPl(I){return W0(I)&&Dx(I.length)&&!!sc[NR(I)]}var T3G=oPl;function tPl(I){return function(G){return I(G)}}var nx=tPl;var VII={};JH(VII,{default:()=>JA});var S3G=typeof VII=="object"&&VII&&!VII.nodeType&&VII,zq=S3G&&typeof cII=="object"&&cII&&!cII.nodeType&&cII,rPl=zq&&zq.exports===S3G,xJI=rPl&&ZII.process,ePl=function(){try{var I=zq&&zq.require&&zq.require("util").types;if(I)return I;return xJI&&xJI.binding&&xJI.binding("util")}catch(G){}}(),JA=ePl;var i3G=JA&&JA.isTypedArray,I_l=i3G?nx(i3G):T3G,dII=I_l;var G_l=Object.prototype,Z_l=G_l.hasOwnProperty;function l_l(I,G){var Z=_c(I),l=!Z&&Mx(I),b=!Z&&!l&&Yy(I),W=!Z&&!l&&!b&&dII(I),N=Z||l||b||W,Y=N?WII(I.length,String):[],c=Y.length;for(var V in I)if((G||Z_l.call(I,V))&&!(N&&(V=="length"||b&&(V=="offset"||V=="parent")||W&&(V=="buffer"||V=="byteLength"||V=="byteOffset")||Kx(V,c))))Y.push(V);return Y}var mII=l_l;var b_l=Object.prototype;function W_l(I){var G=I&&I.constructor,Z=typeof G=="function"&&G.prototype||b_l;return I===Z}var jx=W_l;function N_l(I,G){return function(Z){return I(G(Z))}}var QII=N_l;var Y_l=QII(Object.keys,Object),P3G=Y_l;var c_l=Object.prototype,V_l=c_l.hasOwnProperty;function d_l(I){if(!jx(I))return P3G(I);var G=[];for(var Z in Object(I))if(V_l.call(I,Z)&&Z!="constructor")G.push(Z);return G}var _3G=d_l;function m_l(I){return I!=null&&Dx(I.length)&&!lII(I)}var cy=m_l;function Q_l(I){return cy(I)?mII(I):_3G(I)}var jH=Q_l;function X_l(I,G){return I&&wA(G,jH(G),I)}var s3G=X_l;function F_l(I){var G=[];if(I!=null)for(var Z in Object(I))G.push(Z);return G}var f3G=F_l;var R_l=Object.prototype,H_l=R_l.hasOwnProperty;function h_l(I){if(!BX(I))return f3G(I);var G=jx(I),Z=[];for(var l in I)if(!(l=="constructor"&&(G||!H_l.call(I,l))))Z.push(l);return Z}var $3G=h_l;function w_l(I){return cy(I)?mII(I,!0):$3G(I)}var qx=w_l;function J_l(I,G){return I&&wA(G,qx(G),I)}var o3G=J_l;var FII={};JH(FII,{default:()=>OJI});var IpG=typeof FII=="object"&&FII&&!FII.nodeType&&FII,t3G=IpG&&typeof XII=="object"&&XII&&!XII.nodeType&&XII,A_l=t3G&&t3G.exports===IpG,r3G=A_l?u2.Buffer:void 0,e3G=r3G?r3G.allocUnsafe:void 0;function E_l(I,G){if(G)return I.slice();var Z=I.length,l=e3G?e3G(Z):new I.constructor(Z);return I.copy(l),l}var OJI=E_l;function v_l(I,G){var Z=-1,l=I.length;G||(G=Array(l));while(++Z<l)G[Z]=I[Z];return G}var GpG=v_l;function C_l(I,G){var Z=-1,l=I==null?0:I.length,b=0,W=[];while(++Z<l){var N=I[Z];if(G(N,Z,I))W[b++]=N}return W}var RII=C_l;function p_l(){return[]}var HII=p_l;var y_l=Object.prototype,u_l=y_l.propertyIsEnumerable,ZpG=Object.getOwnPropertySymbols,L_l=!ZpG?HII:function(I){if(I==null)return[];return I=Object(I),RII(ZpG(I),function(G){return u_l.call(I,G)})},Tx=L_l;function g_l(I,G){return wA(I,Tx(I),G)}var lpG=g_l;function a_l(I,G){var Z=-1,l=G.length,b=I.length;while(++Z<l)I[b+Z]=G[Z];return I}var Sx=a_l;var z_l=QII(Object.getPrototypeOf,Object),ix=z_l;var B_l=Object.getOwnPropertySymbols,k_l=!B_l?HII:function(I){var G=[];while(I)Sx(G,Tx(I)),I=ix(I);return G},hII=k_l;function U_l(I,G){return wA(I,hII(I),G)}var bpG=U_l;function x_l(I,G,Z){var l=G(I);return _c(I)?l:Sx(l,Z(I))}var wII=x_l;function O_l(I){return wII(I,jH,Tx)}var Bq=O_l;function M_l(I){return wII(I,qx,hII)}var Px=M_l;var K_l=$F(u2,"DataView"),JII=K_l;var D_l=$F(u2,"Promise"),AII=D_l;var n_l=$F(u2,"Set"),EII=n_l;var j_l=$F(u2,"WeakMap"),vII=j_l;var WpG="[object Map]",q_l="[object Object]",NpG="[object Promise]",YpG="[object Set]",cpG="[object WeakMap]",VpG="[object DataView]",T_l=cv(JII),S_l=cv(ly),i_l=cv(AII),P_l=cv(EII),__l=cv(vII),Ga=NR;if(JII&&Ga(new JII(new ArrayBuffer(1)))!=VpG||ly&&Ga(new ly)!=WpG||AII&&Ga(AII.resolve())!=NpG||EII&&Ga(new EII)!=YpG||vII&&Ga(new vII)!=cpG)Ga=function(I){var G=NR(I),Z=G==q_l?I.constructor:void 0,l=Z?cv(Z):"";if(l)switch(l){case T_l:return VpG;case S_l:return WpG;case i_l:return NpG;case P_l:return YpG;case __l:return cpG}return G};var dv=Ga;var s_l=Object.prototype,f_l=s_l.hasOwnProperty;function $_l(I){var G=I.length,Z=new I.constructor(G);if(G&&typeof I[0]=="string"&&f_l.call(I,"index"))Z.index=I.index,Z.input=I.input;return Z}var dpG=$_l;var o_l=u2.Uint8Array,_x=o_l;function t_l(I){var G=new I.constructor(I.byteLength);return new _x(G).set(new _x(I)),G}var sx=t_l;function r_l(I,G){var Z=G?sx(I.buffer):I.buffer;return new I.constructor(Z,I.byteOffset,I.byteLength)}var mpG=r_l;var e_l=/\w*$/;function Isl(I){var G=new I.constructor(I.source,e_l.exec(I));return G.lastIndex=I.lastIndex,G}var QpG=Isl;var XpG=U0?U0.prototype:void 0,FpG=XpG?XpG.valueOf:void 0;function Gsl(I){return FpG?Object(FpG.call(I)):{}}var RpG=Gsl;function Zsl(I,G){var Z=G?sx(I.buffer):I.buffer;return new I.constructor(Z,I.byteOffset,I.length)}var HpG=Zsl;var lsl="[object Boolean]",bsl="[object Date]",Wsl="[object Map]",Nsl="[object Number]",Ysl="[object RegExp]",csl="[object Set]",Vsl="[object String]",dsl="[object Symbol]",msl="[object ArrayBuffer]",Qsl="[object DataView]",Xsl="[object Float32Array]",Fsl="[object Float64Array]",Rsl="[object Int8Array]",Hsl="[object Int16Array]",hsl="[object Int32Array]",wsl="[object Uint8Array]",Jsl="[object Uint8ClampedArray]",Asl="[object Uint16Array]",Esl="[object Uint32Array]";function vsl(I,G,Z){var l=I.constructor;switch(G){case msl:return sx(I);case lsl:case bsl:return new l(+I);case Qsl:return mpG(I,Z);case Xsl:case Fsl:case Rsl:case Hsl:case hsl:case wsl:case Jsl:case Asl:case Esl:return HpG(I,Z);case Wsl:return new l;case Nsl:case Vsl:return new l(I);case Ysl:return QpG(I);case csl:return new l;case dsl:return RpG(I)}}var hpG=vsl;var wpG=Object.create,Csl=function(){function I(){}return function(G){if(!BX(G))return{};if(wpG)return wpG(G);I.prototype=G;var Z=new I;return I.prototype=void 0,Z}}(),JpG=Csl;function psl(I){return typeof I.constructor=="function"&&!jx(I)?JpG(ix(I)):{}}var ApG=psl;var ysl="[object Map]";function usl(I){return W0(I)&&dv(I)==ysl}var EpG=usl;var vpG=JA&&JA.isMap,Lsl=vpG?nx(vpG):EpG,CpG=Lsl;var gsl="[object Set]";function asl(I){return W0(I)&&dv(I)==gsl}var ppG=asl;var ypG=JA&&JA.isSet,zsl=ypG?nx(ypG):ppG,upG=zsl;var Bsl=1,ksl=2,Usl=4,LpG="[object Arguments]",xsl="[object Array]",Osl="[object Boolean]",Msl="[object Date]",Ksl="[object Error]",gpG="[object Function]",Dsl="[object GeneratorFunction]",nsl="[object Map]",jsl="[object Number]",apG="[object Object]",qsl="[object RegExp]",Tsl="[object Set]",Ssl="[object String]",isl="[object Symbol]",Psl="[object WeakMap]",_sl="[object ArrayBuffer]",ssl="[object DataView]",fsl="[object Float32Array]",$sl="[object Float64Array]",osl="[object Int8Array]",tsl="[object Int16Array]",rsl="[object Int32Array]",esl="[object Uint8Array]",Ifl="[object Uint8ClampedArray]",Gfl="[object Uint16Array]",Zfl="[object Uint32Array]",yc={};yc[LpG]=yc[xsl]=yc[_sl]=yc[ssl]=yc[Osl]=yc[Msl]=yc[fsl]=yc[$sl]=yc[osl]=yc[tsl]=yc[rsl]=yc[nsl]=yc[jsl]=yc[apG]=yc[qsl]=yc[Tsl]=yc[Ssl]=yc[isl]=yc[esl]=yc[Ifl]=yc[Gfl]=yc[Zfl]=!0;yc[Ksl]=yc[gpG]=yc[Psl]=!1;function CII(I,G,Z,l,b,W){var N,Y=G&Bsl,c=G&ksl,V=G&Usl;if(Z)N=b?Z(I,l,b,W):Z(I);if(N!==void 0)return N;if(!BX(I))return I;var d=_c(I);if(d){if(N=dpG(I),!Y)return GpG(I,N)}else{var m=dv(I),X=m==gpG||m==Dsl;if(Yy(I))return OJI(I,Y);if(m==apG||m==LpG||X&&!b){if(N=c||X?{}:ApG(I),!Y)return c?bpG(I,o3G(N,I)):lpG(I,s3G(N,I))}else{if(!yc[m])return b?I:{};N=hpG(I,m,Y)}}W||(W=new Wy);var R=W.get(I);if(R)return R;if(W.set(I,N),upG(I))I.forEach(function(A){N.add(CII(A,G,Z,A,I,W))});else if(CpG(I))I.forEach(function(A,y){N.set(y,CII(A,G,Z,y,I,W))});var H=V?c?Px:Bq:c?qx:jH,w=d?void 0:H(I);return M3G(w||I,function(A,y){if(w)y=A,A=I[y];Ny(N,y,CII(A,G,Z,y,I,W))}),N}var pII=CII;var lfl=1,bfl=4;function Wfl(I){return pII(I,lfl|bfl)}var kq=Wfl;var Nfl="__lodash_hash_undefined__";function Yfl(I){return this.__data__.set(I,Nfl),this}var zpG=Yfl;function cfl(I){return this.__data__.has(I)}var BpG=cfl;function yII(I){var G=-1,Z=I==null?0:I.length;this.__data__=new Ia;while(++G<Z)this.add(I[G])}yII.prototype.add=yII.prototype.push=zpG;yII.prototype.has=BpG;var kpG=yII;function Vfl(I,G){var Z=-1,l=I==null?0:I.length;while(++Z<l)if(G(I[Z],Z,I))return!0;return!1}var UpG=Vfl;function dfl(I,G){return I.has(G)}var xpG=dfl;var mfl=1,Qfl=2;function Xfl(I,G,Z,l,b,W){var N=Z&mfl,Y=I.length,c=G.length;if(Y!=c&&!(N&&c>Y))return!1;var V=W.get(I),d=W.get(G);if(V&&d)return V==G&&d==I;var m=-1,X=!0,R=Z&Qfl?new kpG:void 0;W.set(I,G),W.set(G,I);while(++m<Y){var H=I[m],w=G[m];if(l)var A=N?l(w,H,m,G,I,W):l(H,w,m,I,G,W);if(A!==void 0){if(A)continue;X=!1;break}if(R){if(!UpG(G,function(y,g){if(!xpG(R,g)&&(H===y||b(H,y,Z,l,W)))return R.push(g)})){X=!1;break}}else if(!(H===w||b(H,w,Z,l,W))){X=!1;break}}return W.delete(I),W.delete(G),X}var uII=Xfl;function Ffl(I){var G=-1,Z=Array(I.size);return I.forEach(function(l,b){Z[++G]=[b,l]}),Z}var OpG=Ffl;function Rfl(I){var G=-1,Z=Array(I.size);return I.forEach(function(l){Z[++G]=l}),Z}var MpG=Rfl;var Hfl=1,hfl=2,wfl="[object Boolean]",Jfl="[object Date]",Afl="[object Error]",Efl="[object Map]",vfl="[object Number]",Cfl="[object RegExp]",pfl="[object Set]",yfl="[object String]",ufl="[object Symbol]",Lfl="[object ArrayBuffer]",gfl="[object DataView]",KpG=U0?U0.prototype:void 0,MJI=KpG?KpG.valueOf:void 0;function afl(I,G,Z,l,b,W,N){switch(Z){case gfl:if(I.byteLength!=G.byteLength||I.byteOffset!=G.byteOffset)return!1;I=I.buffer,G=G.buffer;case Lfl:if(I.byteLength!=G.byteLength||!W(new _x(I),new _x(G)))return!1;return!0;case wfl:case Jfl:case vfl:return ax(+I,+G);case Afl:return I.name==G.name&&I.message==G.message;case Cfl:case yfl:return I==G+"";case Efl:var Y=OpG;case pfl:var c=l&Hfl;if(Y||(Y=MpG),I.size!=G.size&&!c)return!1;var V=N.get(I);if(V)return V==G;l|=hfl,N.set(I,G);var d=uII(Y(I),Y(G),l,b,W,N);return N.delete(I),d;case ufl:if(MJI)return MJI.call(I)==MJI.call(G)}return!1}var DpG=afl;var zfl=1,Bfl=Object.prototype,kfl=Bfl.hasOwnProperty;function Ufl(I,G,Z,l,b,W){var N=Z&zfl,Y=Bq(I),c=Y.length,V=Bq(G),d=V.length;if(c!=d&&!N)return!1;var m=c;while(m--){var X=Y[m];if(!(N?X in G:kfl.call(G,X)))return!1}var R=W.get(I),H=W.get(G);if(R&&H)return R==G&&H==I;var w=!0;W.set(I,G),W.set(G,I);var A=N;while(++m<c){X=Y[m];var y=I[X],g=G[X];if(l)var a=N?l(g,y,X,G,I,W):l(y,g,X,I,G,W);if(!(a===void 0?y===g||b(y,g,Z,l,W):a)){w=!1;break}A||(A=X=="constructor")}if(w&&!A){var B=I.constructor,U=G.constructor;if(B!=U&&(("constructor"in I)&&("constructor"in G))&&!(typeof B=="function"&&B instanceof B&&typeof U=="function"&&U instanceof U))w=!1}return W.delete(I),W.delete(G),w}var npG=Ufl;var xfl=1,jpG="[object Arguments]",qpG="[object Array]",LII="[object Object]",Ofl=Object.prototype,TpG=Ofl.hasOwnProperty;function Mfl(I,G,Z,l,b,W){var N=_c(I),Y=_c(G),c=N?qpG:dv(I),V=Y?qpG:dv(G);c=c==jpG?LII:c,V=V==jpG?LII:V;var d=c==LII,m=V==LII,X=c==V;if(X&&Yy(I)){if(!Yy(G))return!1;N=!0,d=!1}if(X&&!d)return W||(W=new Wy),N||dII(I)?uII(I,G,Z,l,b,W):DpG(I,G,c,Z,l,b,W);if(!(Z&xfl)){var R=d&&TpG.call(I,"__wrapped__"),H=m&&TpG.call(G,"__wrapped__");if(R||H){var w=R?I.value():I,A=H?G.value():G;return W||(W=new Wy),b(w,A,Z,l,W)}}if(!X)return!1;return W||(W=new Wy),npG(I,G,Z,l,b,W)}var SpG=Mfl;function ipG(I,G,Z,l,b){if(I===G)return!0;if(I==null||G==null||!W0(I)&&!W0(G))return I!==I&&G!==G;return SpG(I,G,Z,l,ipG,b)}var fx=ipG;function Kfl(I,G){return fx(I,G)}var gII=Kfl;function Dfl(I){var G=I==null?0:I.length;return G?I[G-1]:void 0}var Ow=Dfl;function nfl(I){return function(G,Z,l){var b=-1,W=Object(G),N=l(G),Y=N.length;while(Y--){var c=N[I?Y:++b];if(Z(W[c],c,W)===!1)break}return G}}var PpG=nfl;var jfl=PpG(),_pG=jfl;function qfl(I,G){return I&&_pG(I,G,jH)}var aII=qfl;var Tfl=1,Sfl=2;function ifl(I,G,Z,l){var b=Z.length,W=b,N=!l;if(I==null)return!W;I=Object(I);while(b--){var Y=Z[b];if(N&&Y[2]?Y[1]!==I[Y[0]]:!(Y[0]in I))return!1}while(++b<W){Y=Z[b];var c=Y[0],V=I[c],d=Y[1];if(N&&Y[2]){if(V===void 0&&!(c in I))return!1}else{var m=new Wy;if(l)var X=l(V,d,c,I,G,m);if(!(X===void 0?fx(d,V,Tfl|Sfl,l,m):X))return!1}}return!0}var spG=ifl;function Pfl(I){return I===I&&!BX(I)}var zII=Pfl;function _fl(I){var G=jH(I),Z=G.length;while(Z--){var l=G[Z],b=I[l];G[Z]=[l,b,zII(b)]}return G}var fpG=_fl;function sfl(I,G){return function(Z){if(Z==null)return!1;return Z[I]===G&&(G!==void 0||(I in Object(Z)))}}var BII=sfl;function ffl(I){var G=fpG(I);if(G.length==1&&G[0][2])return BII(G[0][0],G[0][1]);return function(Z){return Z===I||spG(Z,I,G)}}var $pG=ffl;var $fl="[object Symbol]";function ofl(I){return typeof I=="symbol"||W0(I)&&NR(I)==$fl}var $x=ofl;var tfl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rfl=/^\w*$/;function efl(I,G){if(_c(I))return!1;var Z=typeof I;if(Z=="number"||Z=="symbol"||Z=="boolean"||I==null||$x(I))return!0;return rfl.test(I)||!tfl.test(I)||G!=null&&I in Object(G)}var ox=efl;var I$l="Expected a function";function KJI(I,G){if(typeof I!="function"||G!=null&&typeof G!="function")throw TypeError(I$l);var Z=function(){var l=arguments,b=G?G.apply(this,l):l[0],W=Z.cache;if(W.has(b))return W.get(b);var N=I.apply(this,l);return Z.cache=W.set(b,N)||W,N};return Z.cache=new(KJI.Cache||Ia),Z}KJI.Cache=Ia;var Zb=KJI;var G$l=500;function Z$l(I){var G=Zb(I,function(l){if(Z.size===G$l)Z.clear();return l}),Z=G.cache;return G}var opG=Z$l;var l$l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,b$l=/\\(\\)?/g,W$l=opG(function(I){var G=[];if(I.charCodeAt(0)===46)G.push("");return I.replace(l$l,function(Z,l,b,W){G.push(b?W.replace(b$l,"$1"):l||Z)}),G}),tpG=W$l;function N$l(I,G){var Z=-1,l=I==null?0:I.length,b=Array(l);while(++Z<l)b[Z]=G(I[Z],Z,I);return b}var AA=N$l;var Y$l=1/0,rpG=U0?U0.prototype:void 0,epG=rpG?rpG.toString:void 0;function IyG(I){if(typeof I=="string")return I;if(_c(I))return AA(I,IyG)+"";if($x(I))return epG?epG.call(I):"";var G=I+"";return G=="0"&&1/I==-Y$l?"-0":G}var GyG=IyG;function c$l(I){return I==null?"":GyG(I)}var ZyG=c$l;function V$l(I,G){if(_c(I))return I;return ox(I,G)?[I]:tpG(ZyG(I))}var qH=V$l;var d$l=1/0;function m$l(I){if(typeof I=="string"||$x(I))return I;var G=I+"";return G=="0"&&1/I==-d$l?"-0":G}var TH=m$l;function Q$l(I,G){G=qH(G,I);var Z=0,l=G.length;while(I!=null&&Z<l)I=I[TH(G[Z++])];return Z&&Z==l?I:void 0}var Vy=Q$l;function X$l(I,G,Z){var l=I==null?void 0:Vy(I,G);return l===void 0?Z:l}var lyG=X$l;function F$l(I,G){return I!=null&&G in Object(I)}var byG=F$l;function R$l(I,G,Z){G=qH(G,I);var l=-1,b=G.length,W=!1;while(++l<b){var N=TH(G[l]);if(!(W=I!=null&&Z(I,N)))break;I=I[N]}if(W||++l!=b)return W;return b=I==null?0:I.length,!!b&&Dx(b)&&Kx(N,b)&&(_c(I)||Mx(I))}var WyG=R$l;function H$l(I,G){return I!=null&&WyG(I,G,byG)}var kII=H$l;var h$l=1,w$l=2;function J$l(I,G){if(ox(I)&&zII(G))return BII(TH(I),G);return function(Z){var l=lyG(Z,I);return l===void 0&&l===G?kII(Z,I):fx(G,l,h$l|w$l)}}var NyG=J$l;function A$l(I){return I}var tx=A$l;function E$l(I){return function(G){return G==null?void 0:G[I]}}var UII=E$l;function v$l(I){return function(G){return Vy(G,I)}}var YyG=v$l;function C$l(I){return ox(I)?UII(TH(I)):YyG(I)}var cyG=C$l;function p$l(I){if(typeof I=="function")return I;if(I==null)return tx;if(typeof I=="object")return _c(I)?NyG(I[0],I[1]):$pG(I);return cyG(I)}var rx=p$l;function y$l(I,G){var Z={};return G=rx(G,3),aII(I,function(l,b,W){Ox(Z,b,G(l,b,W))}),Z}var xII=y$l;function u$l(I,G,Z){var l=-1,b=I.length;if(G<0)G=-G>b?0:b+G;if(Z=Z>b?b:Z,Z<0)Z+=b;b=G>Z?0:Z-G>>>0,G>>>=0;var W=Array(b);while(++l<b)W[l]=I[l+G];return W}var VyG=u$l;function L$l(I,G){return G.length<2?I:Vy(I,VyG(G,0,-1))}var dyG=L$l;var g$l=Object.prototype,a$l=g$l.hasOwnProperty;function z$l(I,G){G=qH(G,I);var Z=-1,l=G.length;if(!l)return!0;var b=I==null||typeof I!=="object"&&typeof I!=="function";while(++Z<l){var W=G[Z];if(typeof W!=="string")continue;if(W==="__proto__"&&!a$l.call(I,"__proto__"))return!1;if(W==="constructor"&&Z+1<l&&typeof G[Z+1]==="string"&&G[Z+1]==="prototype"){if(b&&Z===0)continue;return!1}}var N=dyG(I,G);return N==null||delete N[TH(Ow(G))]}var myG=z$l;var B$l="[object Object]",k$l=Function.prototype,U$l=Object.prototype,QyG=k$l.toString,x$l=U$l.hasOwnProperty,O$l=QyG.call(Object);function M$l(I){if(!W0(I)||NR(I)!=B$l)return!1;var G=ix(I);if(G===null)return!0;var Z=x$l.call(G,"constructor")&&G.constructor;return typeof Z=="function"&&Z instanceof Z&&QyG.call(Z)==O$l}var XyG=M$l;function K$l(I){return XyG(I)?void 0:I}var FyG=K$l;var RyG=U0?U0.isConcatSpreadable:void 0;function D$l(I){return _c(I)||Mx(I)||!!(RyG&&I&&I[RyG])}var HyG=D$l;function hyG(I,G,Z,l,b){var W=-1,N=I.length;Z||(Z=HyG),b||(b=[]);while(++W<N){var Y=I[W];if(G>0&&Z(Y))if(G>1)hyG(Y,G-1,Z,l,b);else Sx(b,Y);else if(!l)b[b.length]=Y}return b}var wyG=hyG;function n$l(I){var G=I==null?0:I.length;return G?wyG(I,1):[]}var JyG=n$l;function j$l(I,G,Z){switch(Z.length){case 0:return I.call(G);case 1:return I.call(G,Z[0]);case 2:return I.call(G,Z[0],Z[1]);case 3:return I.call(G,Z[0],Z[1],Z[2])}return I.apply(G,Z)}var AyG=j$l;var EyG=Math.max;function q$l(I,G,Z){return G=EyG(G===void 0?I.length-1:G,0),function(){var l=arguments,b=-1,W=EyG(l.length-G,0),N=Array(W);while(++b<W)N[b]=l[G+b];b=-1;var Y=Array(G+1);while(++b<G)Y[b]=l[b];return Y[G]=Z(N),AyG(I,this,Y)}}var OII=q$l;function T$l(I){return function(){return I}}var vyG=T$l;var S$l=!xx?tx:function(I,G){return xx(I,"toString",{configurable:!0,enumerable:!1,value:vyG(G),writable:!0})},CyG=S$l;var i$l=800,P$l=16,_$l=Date.now;function s$l(I){var G=0,Z=0;return function(){var l=_$l(),b=P$l-(l-Z);if(Z=l,b>0){if(++G>=i$l)return arguments[0]}else G=0;return I.apply(void 0,arguments)}}var pyG=s$l;var f$l=pyG(CyG),MII=f$l;function $$l(I){return MII(OII(I,void 0,JyG),I+"")}var KII=$$l;var o$l=1,t$l=2,r$l=4,e$l=KII(function(I,G){var Z={};if(I==null)return Z;var l=!1;if(G=AA(G,function(W){return W=qH(W,I),l||(l=W.length>1),W}),wA(I,Px(I),Z),l)Z=pII(Z,o$l|t$l|r$l,FyG);var b=G.length;while(b--)myG(Z,G[b]);return Z}),Za=e$l;function Iol(I,G,Z,l){var b=-1,W=I==null?0:I.length;while(++b<W){var N=I[b];G(l,N,Z(N),I)}return l}var yyG=Iol;function Gol(I,G){return function(Z,l){if(Z==null)return Z;if(!cy(Z))return I(Z,l);var b=Z.length,W=G?b:-1,N=Object(Z);while(G?W--:++W<b)if(l(N[W],W,N)===!1)break;return Z}}var uyG=Gol;var Zol=uyG(aII),LyG=Zol;function lol(I,G,Z,l){return LyG(I,function(b,W,N){G(l,b,Z(b),N)}),l}var gyG=lol;function bol(I,G){return function(Z,l){var b=_c(Z)?yyG:gyG,W=G?G():{};return b(Z,I,rx(l,2),W)}}var ayG=bol;var Wol=ayG(function(I,G,Z){I[Z?0:1].push(G)},function(){return[[],[]]}),DJI=Wol;function Nol(I,G,Z,l){if(!BX(I))return I;G=qH(G,I);var b=-1,W=G.length,N=W-1,Y=I;while(Y!=null&&++b<W){var c=TH(G[b]),V=Z;if(c==="__proto__"||c==="constructor"||c==="prototype")return I;if(b!=N){var d=Y[c];if(V=l?l(d,c,Y):void 0,V===void 0)V=BX(d)?d:Kx(G[b+1])?[]:{}}Ny(Y,c,V),Y=Y[c]}return I}var zyG=Nol;function Yol(I,G,Z){var l=-1,b=G.length,W={};while(++l<b){var N=G[l],Y=Vy(I,N);if(Z(Y,N))zyG(W,qH(N,I),Y)}return W}var DII=Yol;function col(I,G){return DII(I,G,function(Z,l){return kII(I,l)})}var ByG=col;var Vol=KII(function(I,G){return I==null?{}:ByG(I,G)}),nII=Vol;function dol(I,G){if(I==null)return{};var Z=AA(Px(I),function(l){return[l]});return G=rx(G),DII(I,Z,function(l,b){return G(l,b[0])})}var jII=dol;var{floor:mol,random:Qol}=Math;function Xol(I,G){return I+mol(Qol()*(G-I+1))}var kyG=Xol;function Fol(I){var G=I.length;return G?I[kyG(0,G-1)]:void 0}var qII=Fol;function Rol(I,G){return AA(G,function(Z){return I[Z]})}var UyG=Rol;function Hol(I){return I==null?[]:UyG(I,jH(I))}var xyG=Hol;function hol(I){return qII(xyG(I))}var OyG=hol;function wol(I){var G=_c(I)?qII:OyG;return G(I)}var la=wol;function Jol(I,G){return MII(OII(I,G,tx),I+"")}var MyG=Jol;function Aol(I){return W0(I)&&cy(I)}var KyG=Aol;var Eol=Math.max;function vol(I){if(!(I&&I.length))return[];var G=0;return I=RII(I,function(Z){if(KyG(Z))return G=Eol(Z.length,G),!0}),WII(G,function(Z){return AA(I,UII(Z))})}var DyG=vol;var Col=MyG(DyG),nJI=Col;function pol(I,G,Z){var l=-1,b=I.length,W=G.length,N={};while(++l<b){var Y=l<W?G[l]:void 0;Z(N,I[l],Y)}return N}var nyG=pol;function yol(I,G){return nyG(I||[],G||[],Ny)}var jJI=yol;import{homedir as xlb}from"os";import{execFile as glb}from"child_process";import{cwd as ulb}from"process";var xaG=hI(TJI(),1);import*as L2 from"fs";import{homedir as wlb}from"os";import{existsSync as kaG}from"fs";import{spawn as Jlb,execSync as UaG}from"child_process";import{isAbsolute as Alb,resolve as Elb,join as vlb}from"path";import{existsSync as Mw,mkdirSync as iII}from"fs";import{dirname as $JI,join as my}from"path";import{writeFileSync as IO,readFileSync as tyG}from"fs";import{randomUUID as jol}from"crypto";import jV from"node:path";import $yG from"node:os";import SJI from"node:process";var dy=$yG.homedir(),iJI=$yG.tmpdir(),{env:ex}=SJI,Kol=(I)=>{let G=jV.join(dy,"Library");return{data:jV.join(G,"Application Support",I),config:jV.join(G,"Preferences",I),cache:jV.join(G,"Caches",I),log:jV.join(G,"Logs",I),temp:jV.join(iJI,I)}},Dol=(I)=>{let G=ex.APPDATA||jV.join(dy,"AppData","Roaming"),Z=ex.LOCALAPPDATA||jV.join(dy,"AppData","Local");return{data:jV.join(Z,I,"Data"),config:jV.join(G,I,"Config"),cache:jV.join(Z,I,"Cache"),log:jV.join(Z,I,"Log"),temp:jV.join(iJI,I)}},nol=(I)=>{let G=jV.basename(dy);return{data:jV.join(ex.XDG_DATA_HOME||jV.join(dy,".local","share"),I),config:jV.join(ex.XDG_CONFIG_HOME||jV.join(dy,".config"),I),cache:jV.join(ex.XDG_CACHE_HOME||jV.join(dy,".cache"),I),log:jV.join(ex.XDG_STATE_HOME||jV.join(dy,".local","state"),I),temp:jV.join(iJI,G,I)}};function PJI(I,{suffix:G="nodejs"}={}){if(typeof I!=="string")throw TypeError(`Expected a string, got ${typeof I}`);if(G)I+=`-${G}`;if(SJI.platform==="darwin")return Kol(I);if(SJI.platform==="win32")return Dol(I);return nol(I)}import{promises as oyG}from"fs";var SII=[],qol=100,kX=jol(),_JI=PJI("claude-cli");function sJI(I){return I.replace(/[^a-zA-Z0-9]/g,"-")}var UX={errors:()=>my(_JI.cache,sJI(process.cwd()),"errors"),messages:()=>my(_JI.cache,sJI(process.cwd()),"messages"),mcpLogs:(I)=>my(_JI.cache,sJI(process.cwd()),`mcp-logs-${I}`)};function PII(I){return I.toISOString().replace(/[:.]/g,"-")}var ryG=PII(new Date);function Tol(){return my(UX.errors(),ryG+".txt")}function Qy(I,G,Z){return my(UX.messages(),`${I}${G>0?`-${G}`:""}${Z>0?`-sidechain-${Z}`:""}.json`)}function DG(I){try{let G=I instanceof Error?I.stack||I.message:String(I),Z={error:G,timestamp:new Date().toISOString()};if(SII.length>=qol)SII.shift();SII.push(Z),Sol(Tol(),{error:G})}catch{}_II(I)}function eyG(){return[...SII]}function IuG(I){if(!Mw(I))return[];try{return JSON.parse(tyG(I,"utf8"))}catch{return[]}}function Sol(I,G){if(process.env.USER_TYPE==="external")return;let Z=$JI(I);if(!Mw(Z))iII(Z,{recursive:!0});if(!Mw(I))IO(I,"[]","utf8");let l=IuG(I),b={...G,cwd:process.cwd(),userType:process.env.USER_TYPE,sessionId:kX,timestamp:new Date().toISOString(),version:"1.3.1"};l.push(b),IO(I,JSON.stringify(l,null,2),"utf8")}function GO(I,G){if(process.env.USER_TYPE==="external")return;if(!G.length)return;let Z=$JI(I);if(!Mw(Z))iII(Z,{recursive:!0});let l=G.map((b)=>({...b,cwd:process.cwd(),userType:process.env.USER_TYPE,sessionId:kX,timestamp:new Date().toISOString(),version:"1.3.1"}));IO(I,JSON.stringify(l,null,2),"utf8")}async function ZO(I=UX.messages()){if(!Mw(I))return DG(`No logs found at ${I}`),[];let G=rJI(),Z=await oyG.readdir(I),l=await Promise.all(Z.filter((b)=>b.endsWith(".json")&&!b.startsWith("_")).map(async(b,W)=>{let N=my(I,b),Y=await oyG.readFile(N,"utf8"),c=JSON.parse(Y),V=c[0],d=c[c.length-1],m=V?.type==="user"&&typeof V?.message?.content==="string"?V?.message?.content:"No prompt",{date:X,forkNumber:R,sidechainNumber:H}=oJI(b);return{date:X,forkNumber:R,fullPath:N,messages:c,value:W,created:fJI(V?.timestamp||X),modified:d?.timestamp?fJI(d.timestamp):fJI(X),firstPrompt:m.split(`
|
|
552
552
|
`)[0]?.slice(0,50)+(m.length>50?"…":"")||"No prompt",messageCount:c.length,sidechainNumber:H,title:G[X]}}));return iol(l.filter((b)=>b.messages.length)).map((b,W)=>({...b,value:W}))}function oJI(I){let G=I.split(".")[0],Z=G.split("-"),l=G.includes("-sidechain-"),b=G,W=void 0,N=void 0;if(l){let Y=Z.indexOf("sidechain");if(N=Number(Z[Y+1]),Y>6)W=Number(Z[Y-1]),b=Z.slice(0,6).join("-");else b=Z.slice(0,6).join("-")}else if(Z.length>6){let Y=Number(Z[Z.length-1]);W=Y>=0?Y:void 0,b=Z.slice(0,6).join("-")}else b=G;return{date:b,forkNumber:W,sidechainNumber:N}}function lO(I,G,Z){while(Mw(Qy(I,G,Z)))G++;return G}function GuG(I,G){let Z=1;while(Mw(Qy(I,G,Z)))Z++;return Z}function iol(I){return I.sort((G,Z)=>{let l=Z.modified.getTime()-G.modified.getTime();if(l!==0)return l;let b=Z.created.getTime()-G.created.getTime();if(b!==0)return b;return(Z.forkNumber??0)-(G.forkNumber??0)})}function tJI(I){let G=new Date,Z=new Date(G);Z.setDate(Z.getDate()-1);let l=I.toDateString()===G.toDateString(),b=I.toDateString()===Z.toDateString(),W=I.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase();if(l)return`Today at ${W}`;else if(b)return`Yesterday at ${W}`;else return I.toLocaleDateString("en-US",{month:"short",day:"numeric"})+` at ${W}`}function fJI(I){let G=I.split(/\D+/);return new Date(Date.UTC(parseInt(G[0],10),parseInt(G[1],10)-1,parseInt(G[2],10),parseInt(G[3],10),parseInt(G[4],10),parseInt(G[5],10),parseInt(G[6],10)))}function ZuG(){return my(UX.messages(),"_titles.json")}function rJI(){let I=ZuG();if(!Mw(I))return{};try{return JSON.parse(tyG(I,"utf8"))}catch{return{}}}function luG(I,G){let Z=ZuG(),l=$JI(Z);if(!Mw(l))iII(l,{recursive:!0});let b=rJI();b[I]=G,IO(Z,JSON.stringify(b,null,2),"utf8")}function buG(I){return rJI()[I]}function SH(I,G){try{let Z=UX.mcpLogs(I),l=G instanceof Error?G.stack||G.message:String(G),b=new Date().toISOString(),W=my(Z,ryG+".txt");if(!Mw(Z))iII(Z,{recursive:!0});if(!Mw(W))IO(W,"[]","utf8");let N={error:l,timestamp:b,sessionId:kX,cwd:process.cwd()},Y=IuG(W);Y.push(N),IO(W,JSON.stringify(Y,null,2),"utf8")}catch{}}import*as OaG from"os";var hlb=hI(YG(),1);var WuG=(I=0)=>(G)=>`\x1B[${G+I}m`,NuG=(I=0)=>(G)=>`\x1B[${38+I};5;${G}m`,YuG=(I=0)=>(G,Z,l)=>`\x1B[${38+I};2;${G};${Z};${l}m`,NV={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]}},zYY=Object.keys(NV.modifier),_ol=Object.keys(NV.color),sol=Object.keys(NV.bgColor),BYY=[..._ol,...sol];function fol(){let I=new Map;for(let[G,Z]of Object.entries(NV)){for(let[l,b]of Object.entries(Z))NV[l]={open:`\x1B[${b[0]}m`,close:`\x1B[${b[1]}m`},Z[l]=NV[l],I.set(b[0],b[1]);Object.defineProperty(NV,G,{value:Z,enumerable:!1})}return Object.defineProperty(NV,"codes",{value:I,enumerable:!1}),NV.color.close="\x1B[39m",NV.bgColor.close="\x1B[49m",NV.color.ansi=WuG(),NV.color.ansi256=NuG(),NV.color.ansi16m=YuG(),NV.bgColor.ansi=WuG(10),NV.bgColor.ansi256=NuG(10),NV.bgColor.ansi16m=YuG(10),Object.defineProperties(NV,{rgbToAnsi256:{value(G,Z,l){if(G===Z&&Z===l){if(G<8)return 16;if(G>248)return 231;return Math.round((G-8)/247*24)+232}return 16+36*Math.round(G/255*5)+6*Math.round(Z/255*5)+Math.round(l/255*5)},enumerable:!1},hexToRgb:{value(G){let Z=/[a-f\d]{6}|[a-f\d]{3}/i.exec(G.toString(16));if(!Z)return[0,0,0];let[l]=Z;if(l.length===3)l=[...l].map((W)=>W+W).join("");let b=Number.parseInt(l,16);return[b>>16&255,b>>8&255,b&255]},enumerable:!1},hexToAnsi256:{value:(G)=>NV.rgbToAnsi256(...NV.hexToRgb(G)),enumerable:!1},ansi256ToAnsi:{value(G){if(G<8)return 30+G;if(G<16)return 90+(G-8);let Z,l,b;if(G>=232)Z=((G-232)*10+8)/255,l=Z,b=Z;else{G-=16;let Y=G%36;Z=Math.floor(G/36)/5,l=Math.floor(Y/6)/5,b=Y%6/5}let W=Math.max(Z,l,b)*2;if(W===0)return 30;let N=30+(Math.round(b)<<2|Math.round(l)<<1|Math.round(Z));if(W===2)N+=60;return N},enumerable:!1},rgbToAnsi:{value:(G,Z,l)=>NV.ansi256ToAnsi(NV.rgbToAnsi256(G,Z,l)),enumerable:!1},hexToAnsi:{value:(G)=>NV.ansi256ToAnsi(NV.hexToAnsi256(G)),enumerable:!1}}),NV}var $ol=fol(),Kw=$ol;import eJI from"node:process";import ool from"node:os";import cuG from"node:tty";function iH(I,G=globalThis.Deno?globalThis.Deno.args:eJI.argv){let Z=I.startsWith("-")?"":I.length===1?"-":"--",l=G.indexOf(Z+I),b=G.indexOf("--");return l!==-1&&(b===-1||l<b)}var{env:YV}=eJI,fII;if(iH("no-color")||iH("no-colors")||iH("color=false")||iH("color=never"))fII=0;else if(iH("color")||iH("colors")||iH("color=true")||iH("color=always"))fII=1;function tol(){if("FORCE_COLOR"in YV){if(YV.FORCE_COLOR==="true")return 1;if(YV.FORCE_COLOR==="false")return 0;return YV.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(YV.FORCE_COLOR,10),3)}}function rol(I){if(I===0)return!1;return{level:I,hasBasic:!0,has256:I>=2,has16m:I>=3}}function eol(I,{streamIsTTY:G,sniffFlags:Z=!0}={}){let l=tol();if(l!==void 0)fII=l;let b=Z?fII:l;if(b===0)return 0;if(Z){if(iH("color=16m")||iH("color=full")||iH("color=truecolor"))return 3;if(iH("color=256"))return 2}if("TF_BUILD"in YV&&"AGENT_NAME"in YV)return 1;if(I&&!G&&b===void 0)return 0;let W=b||0;if(YV.TERM==="dumb")return W;if(eJI.platform==="win32"){let N=ool.release().split(".");if(Number(N[0])>=10&&Number(N[2])>=10586)return Number(N[2])>=14931?3:2;return 1}if("CI"in YV){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((N)=>(N in YV)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((N)=>(N in YV))||YV.CI_NAME==="codeship")return 1;return W}if("TEAMCITY_VERSION"in YV)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(YV.TEAMCITY_VERSION)?1:0;if(YV.COLORTERM==="truecolor")return 3;if(YV.TERM==="xterm-kitty")return 3;if(YV.TERM==="xterm-ghostty")return 3;if(YV.TERM==="wezterm")return 3;if("TERM_PROGRAM"in YV){let N=Number.parseInt((YV.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(YV.TERM_PROGRAM){case"iTerm.app":return N>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(YV.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(YV.TERM))return 1;if("COLORTERM"in YV)return 1;return W}function VuG(I,G={}){let Z=eol(I,{streamIsTTY:I&&I.isTTY,...G});return rol(Z)}var Itl={stdout:VuG({isTTY:cuG.isatty(1)}),stderr:VuG({isTTY:cuG.isatty(2)})},duG=Itl;function muG(I,G,Z){let l=I.indexOf(G);if(l===-1)return I;let b=G.length,W=0,N="";do N+=I.slice(W,l)+G+Z,W=l+b,l=I.indexOf(G,W);while(l!==-1);return N+=I.slice(W),N}function QuG(I,G,Z,l){let b=0,W="";do{let N=I[l-1]==="\r";W+=I.slice(b,N?l-1:l)+G+(N?`\r
|
|
553
553
|
`:`
|
|
554
554
|
`)+Z,b=l+1,l=I.indexOf(`
|
|
555
555
|
`,b)}while(l!==-1);return W+=I.slice(b),W}var{stdout:XuG,stderr:FuG}=duG,IAI=Symbol("GENERATOR"),bO=Symbol("STYLER"),Uq=Symbol("IS_EMPTY"),RuG=["ansi","ansi","ansi256","ansi16m"],WO=Object.create(null),Gtl=(I,G={})=>{if(G.level&&!(Number.isInteger(G.level)&&G.level>=0&&G.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let Z=XuG?XuG.level:0;I.level=G.level===void 0?Z:G.level};var Ztl=(I)=>{let G=(...Z)=>Z.join(" ");return Gtl(G,I),Object.setPrototypeOf(G,xq.prototype),G};function xq(I){return Ztl(I)}Object.setPrototypeOf(xq.prototype,Function.prototype);for(let[I,G]of Object.entries(Kw))WO[I]={get(){let Z=$II(this,ZAI(G.open,G.close,this[bO]),this[Uq]);return Object.defineProperty(this,I,{value:Z}),Z}};WO.visible={get(){let I=$II(this,this[bO],!0);return Object.defineProperty(this,"visible",{value:I}),I}};var GAI=(I,G,Z,...l)=>{if(I==="rgb"){if(G==="ansi16m")return Kw[Z].ansi16m(...l);if(G==="ansi256")return Kw[Z].ansi256(Kw.rgbToAnsi256(...l));return Kw[Z].ansi(Kw.rgbToAnsi(...l))}if(I==="hex")return GAI("rgb",G,Z,...Kw.hexToRgb(...l));return Kw[Z][I](...l)},ltl=["rgb","hex","ansi256"];for(let I of ltl){WO[I]={get(){let{level:Z}=this;return function(...l){let b=ZAI(GAI(I,RuG[Z],"color",...l),Kw.color.close,this[bO]);return $II(this,b,this[Uq])}}};let G="bg"+I[0].toUpperCase()+I.slice(1);WO[G]={get(){let{level:Z}=this;return function(...l){let b=ZAI(GAI(I,RuG[Z],"bgColor",...l),Kw.bgColor.close,this[bO]);return $II(this,b,this[Uq])}}}}var btl=Object.defineProperties(()=>{},{...WO,level:{enumerable:!0,get(){return this[IAI].level},set(I){this[IAI].level=I}}}),ZAI=(I,G,Z)=>{let l,b;if(Z===void 0)l=I,b=G;else l=Z.openAll+I,b=G+Z.closeAll;return{open:I,close:G,openAll:l,closeAll:b,parent:Z}},$II=(I,G,Z)=>{let l=(...b)=>Wtl(l,b.length===1?""+b[0]:b.join(" "));return Object.setPrototypeOf(l,btl),l[IAI]=I,l[bO]=G,l[Uq]=Z,l},Wtl=(I,G)=>{if(I.level<=0||!G)return I[Uq]?"":G;let Z=I[bO];if(Z===void 0)return G;let{openAll:l,closeAll:b}=Z;if(G.includes("\x1B"))while(Z!==void 0)G=muG(G,Z.close,Z.open),Z=Z.parent;let W=G.indexOf(`
|
|
556
|
-
`);if(W!==-1)G=QuG(G,b,l,W);return l+G+b};Object.defineProperties(xq.prototype,WO);var Ntl=xq(),qYY=xq({level:FuG?FuG.level:0});var uZ=Ntl;var BGI=hI(QgG(),1);var fIb={visibilityState:"visible",documentElement:{lang:"en"},addEventListener:(I,G)=>{}},$Ib={document:fIb,location:{href:"node://localhost",pathname:"/"},addEventListener:(I,G)=>{if(I==="beforeunload")process.on("exit",()=>{if(typeof G==="function")G({});else G.handleEvent({})})},focus:()=>{},innerHeight:768,innerWidth:1024},oIb={sendBeacon:(I,G)=>{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>"u")global.window=$Ib;if(typeof navigator>"u")global.navigator=oIb;import*as jw from"fs";import*as rq from"path";import{homedir as tIb}from"os";import{existsSync as rIb,unlinkSync as eIb}from"fs";var da=rq.join(tIb(),".claude","statsig");try{jw.mkdirSync(da,{recursive:!0})}catch(I){DG(`Failed to create statsig storage directory: ${I}`)}class iAI{cache=new Map;ready=!1;constructor(){try{if(!jw.existsSync(da))jw.mkdirSync(da,{recursive:!0});let I=jw.readdirSync(da);for(let G of I){let Z=decodeURIComponent(G),l=jw.readFileSync(rq.join(da,G),"utf8");this.cache.set(Z,l)}this.ready=!0}catch(I){DG(`Failed to initialize statsig storage: ${I}`),this.ready=!0}}isReady(){return this.ready}isReadyResolver(){return this.ready?Promise.resolve():null}getProviderName(){return"FileSystemStorageProvider"}getItem(I){return this.cache.get(I)??null}setItem(I,G){this.cache.set(I,G);try{let Z=encodeURIComponent(I);jw.writeFileSync(rq.join(da,Z),G,"utf8")}catch(Z){DG(`Failed to write statsig storage item: ${Z}`)}}removeItem(I){this.cache.delete(I);let G=encodeURIComponent(I),Z=rq.join(da,G);if(!rIb(Z))return;try{eIb(Z)}catch(l){DG(`Failed to remove statsig storage item: ${l}`)}}getAllKeys(){return Array.from(this.cache.keys())}}var XgG="https://e531a1d9ec1de9064fae9d4affb0b0f4@o1158394.ingest.us.sentry.io/4508259541909504",FgG="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var RgG="tengu-token-efficient-tools",HgG="token-efficient-tools-2024-12-11",hgG="tengu-use-external-updater",wgG="claude-code-20250219";var AGI=Zb(async()=>{let I=[wgG];if(process.env.USER_TYPE==="ant"||process.env.SWE_BENCH){if(await wy(RgG))I.push(HgG)}return I});var PH=Zb(async()=>{let{code:I}=await oW("git",["rev-parse","--is-inside-work-tree"]);return I===0}),IGb=async()=>{let{stdout:I}=await oW("git",["rev-parse","HEAD"]);return I.trim()},GGb=async()=>{let{stdout:I}=await oW("git",["rev-parse","--abbrev-ref","HEAD"],void 0,void 0,!1);return I.trim()},JgG=async()=>{let{stdout:I,code:G}=await oW("git",["remote","get-url","origin"],void 0,void 0,!1);return G===0?I.trim():null},ZGb=async()=>{let{code:I}=await oW("git",["rev-parse","@{u}"],void 0,void 0,!1);return I===0},lGb=async()=>{let{stdout:I}=await oW("git",["status","--porcelain"],void 0,void 0,!1);return I.trim().length===0},vO=async()=>{let I=await JgG();if(I&&/github/i.test(I))return"github";return"gitlab"};async function EGI(){try{let[I,G,Z,l,b]=await Promise.all([IGb(),GGb(),JgG(),ZGb(),lGb()]);return{commitHash:I,branchName:G,remoteUrl:Z,isHeadOnRemote:l,isClean:b}}catch(I){return null}}var ma=`claude-cli/1.3.
|
|
556
|
+
`);if(W!==-1)G=QuG(G,b,l,W);return l+G+b};Object.defineProperties(xq.prototype,WO);var Ntl=xq(),qYY=xq({level:FuG?FuG.level:0});var uZ=Ntl;var BGI=hI(QgG(),1);var fIb={visibilityState:"visible",documentElement:{lang:"en"},addEventListener:(I,G)=>{}},$Ib={document:fIb,location:{href:"node://localhost",pathname:"/"},addEventListener:(I,G)=>{if(I==="beforeunload")process.on("exit",()=>{if(typeof G==="function")G({});else G.handleEvent({})})},focus:()=>{},innerHeight:768,innerWidth:1024},oIb={sendBeacon:(I,G)=>{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>"u")global.window=$Ib;if(typeof navigator>"u")global.navigator=oIb;import*as jw from"fs";import*as rq from"path";import{homedir as tIb}from"os";import{existsSync as rIb,unlinkSync as eIb}from"fs";var da=rq.join(tIb(),".claude","statsig");try{jw.mkdirSync(da,{recursive:!0})}catch(I){DG(`Failed to create statsig storage directory: ${I}`)}class iAI{cache=new Map;ready=!1;constructor(){try{if(!jw.existsSync(da))jw.mkdirSync(da,{recursive:!0});let I=jw.readdirSync(da);for(let G of I){let Z=decodeURIComponent(G),l=jw.readFileSync(rq.join(da,G),"utf8");this.cache.set(Z,l)}this.ready=!0}catch(I){DG(`Failed to initialize statsig storage: ${I}`),this.ready=!0}}isReady(){return this.ready}isReadyResolver(){return this.ready?Promise.resolve():null}getProviderName(){return"FileSystemStorageProvider"}getItem(I){return this.cache.get(I)??null}setItem(I,G){this.cache.set(I,G);try{let Z=encodeURIComponent(I);jw.writeFileSync(rq.join(da,Z),G,"utf8")}catch(Z){DG(`Failed to write statsig storage item: ${Z}`)}}removeItem(I){this.cache.delete(I);let G=encodeURIComponent(I),Z=rq.join(da,G);if(!rIb(Z))return;try{eIb(Z)}catch(l){DG(`Failed to remove statsig storage item: ${l}`)}}getAllKeys(){return Array.from(this.cache.keys())}}var XgG="https://e531a1d9ec1de9064fae9d4affb0b0f4@o1158394.ingest.us.sentry.io/4508259541909504",FgG="client-RRNS7R65EAtReO5XA4xDC3eU6ZdJQi6lLEP6b5j32Me";var RgG="tengu-token-efficient-tools",HgG="token-efficient-tools-2024-12-11",hgG="tengu-use-external-updater",wgG="claude-code-20250219";var AGI=Zb(async()=>{let I=[wgG];if(process.env.USER_TYPE==="ant"||process.env.SWE_BENCH){if(await wy(RgG))I.push(HgG)}return I});var PH=Zb(async()=>{let{code:I}=await oW("git",["rev-parse","--is-inside-work-tree"]);return I===0}),IGb=async()=>{let{stdout:I}=await oW("git",["rev-parse","HEAD"]);return I.trim()},GGb=async()=>{let{stdout:I}=await oW("git",["rev-parse","--abbrev-ref","HEAD"],void 0,void 0,!1);return I.trim()},JgG=async()=>{let{stdout:I,code:G}=await oW("git",["remote","get-url","origin"],void 0,void 0,!1);return G===0?I.trim():null},ZGb=async()=>{let{code:I}=await oW("git",["rev-parse","@{u}"],void 0,void 0,!1);return I===0},lGb=async()=>{let{stdout:I}=await oW("git",["status","--porcelain"],void 0,void 0,!1);return I.trim().length===0},vO=async()=>{let I=await JgG();if(I&&/github/i.test(I))return"github";return"gitlab"};async function EGI(){try{let[I,G,Z,l,b]=await Promise.all([IGb(),GGb(),JgG(),ZGb(),lGb()]);return{commitHash:I,branchName:G,remoteUrl:Z,isHeadOnRemote:l,isClean:b}}catch(I){return null}}var ma=`claude-cli/1.3.1 (${process.env.USER_TYPE})`;var yaG=hI(paG(),1);function Rlb(){return process.env.SOCKS_PROXY||process.env.SOCKS5_PROXY}function Ha(){let I=Rlb();if(!I)return;return new yaG.SocksProxyAgent(I)}var Rd=!!process.env.CLAUDE_CODE_USE_BEDROCK,Hd=!!process.env.CLAUDE_CODE_USE_VERTEX,uaG={bedrock:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",vertex:"claude-sonnet-4-5@20250929",firstParty:"claude-sonnet-4-5-20250929"},hd=Rd?"us.anthropic.claude-haiku-4-5-20251001-v1:0":Hd?"claude-haiku-4-5@20251001":"claude-haiku-4-5-20251001";async function Hlb(){try{return await GT("tengu-capable-model-config",uaG)}catch(I){return DG(I),uaG}}var qV=Zb(async()=>{let I=fZ();if(I.model)return I.model;if(process.env.USER_TYPE==="ant"){if(process.env.ANTHROPIC_MODEL)return process.env.ANTHROPIC_MODEL;return(await zaG("chihuahua",{color:"research-claude-denim"})).color}if(process.env.USER_TYPE==="SWE_BENCH"){if(process.env.ANTHROPIC_MODEL)return process.env.ANTHROPIC_MODEL}let G=await Hlb();if(Rd)return G.bedrock;if(Hd)return G.vertex;return G.firstParty});function LaG(){qV.cache.clear?.()}async function IT(){return!process.env.ANTHROPIC_MODEL||process.env.ANTHROPIC_MODEL===await qV()}function YEI(I){return I.includes("opus-4-6")||I.includes("sonnet-4-6")}function gaG(I){if(I?.startsWith("claude-3-5-haiku"))return process.env.VERTEX_REGION_CLAUDE_3_5_HAIKU;else if(I?.startsWith("claude-3-5-sonnet"))return process.env.VERTEX_REGION_CLAUDE_3_5_SONNET;else if(I?.startsWith("claude-3-7-sonnet"))return process.env.VERTEX_REGION_CLAUDE_3_7_SONNET;else if(I?.startsWith("claude-sonnet-4-5"))return process.env.VERTEX_REGION_CLAUDE_SONNET_4_5}async function aaG(){let I=sH(),G=process.env.ANTHROPIC_AUTH_TOKEN;if(!I&&!G)throw Error("No API key or auth token available");let Z=Ha(),l={"anthropic-version":"2023-06-01","User-Agent":ma};if(G)l.Authorization=`Bearer ${G}`;else l["x-api-key"]=I;let b={method:"GET",headers:l,...Z?{agent:Z}:{}},W=process.env.ANTHROPIC_BASE_URL||"https://api.anthropic.com",N=await fetch(`${W}/v1/models`,b);if(!N.ok)throw Error(`Failed to fetch models: ${N.status} ${N.statusText}`);return(await N.json()).data.map((c)=>({...c,display_name:c.display_name&&c.display_name.trim()||c.id}))}var cEI={},ZT=null,uO=Zb(async()=>{if(Ol.isCI)return null;let I=await kGI(),G={networkConfig:{api:"https://statsig.anthropic.com/v1/"},environment:{tier:Ol.isCI||["test","development"].includes("development")?"dev":"production"},logLevel:BGI.LogLevel.None,storageProvider:new iAI};return ZT=new BGI.StatsigClient(FgG,I,G),ZT.on("error",(Z)=>{DG(`Statsig error: ${Z}`)}),await ZT.initializeAsync(),process.on("exit",()=>{ZT?.flush()}),ZT});function wG(I,G){if(Ol.isCI)return;Promise.all([uO(),PH(),AGI(),G.model?Promise.resolve(G.model):qV()]).then(([Z,l,b,W])=>{if(!Z)return;let N={...G,model:W,sessionId:kX,userType:process.env.USER_TYPE||"",...process.env.SWE_BENCH_RUN_ID?{sweBenchId:process.env.SWE_BENCH_RUN_ID}:{},...b.length>0?{betas:b.join(",")}:{},env:JSON.stringify({isGit:l,platform:Ol.platform,nodeVersion:Ol.nodeVersion,terminal:Ol.terminal,version:"1.3.1"})};if(process.env.USER_TYPE==="ant"&&(process.argv.includes("--debug")||process.argv.includes("-d")))console.log(uZ.dim(`[DEBUG-ONLY] Statsig event: ${I} ${JSON.stringify(G,null,0)}`));let Y={eventName:I,metadata:N};Z.logEvent(Y)})}var wy=Zb(async(I)=>{if(Ol.isCI)return!1;if(process.env.MOCK_STICKER_GATE==="true"&&I==="tengu_sticker_easter_egg")return cEI[I]=!0,!0;let G=await uO();if(!G)return!1;let Z=G.checkGate(I);return cEI[I]=Z,Z});function BaG(){return{...cEI}}var zaG=Zb(async(I,G)=>{if(Ol.isCI)return G;let Z=await uO();if(!Z)return G;let l=Z.getExperiment(I);if(Object.keys(l.value).length===0)return DG(`getExperimentValue got empty value for ${I}`),G;return l.value}),GT=async(I,G)=>{if(Ol.isCI)return G;let Z=await uO();if(!Z)return G;let l=Z.getDynamicConfig(I);if(Object.keys(l.value).length===0)return DG(`getDynamicConfig got empty value for ${I}`),G;return l.value};var UGI=OaG.tmpdir()+"/claude-",Clb=1800000,plb=143,xGI={STATUS:"-status",STDOUT:"-stdout",STDERR:"-stderr",CWD:"-cwd"},ylb={"/bin/bash":".bashrc","/bin/zsh":".zshrc"};class vm{commandQueue=[];isExecuting=!1;shell;isAlive=!0;commandInterrupted=!1;statusFile;stdoutFile;stderrFile;cwdFile;cwd;binShell;constructor(I){this.binShell=process.env.SHELL||"/bin/bash",this.shell=Jlb(this.binShell,["-l"],{stdio:["pipe","pipe","pipe"],cwd:I,env:{...process.env,GIT_EDITOR:"true"}}),this.cwd=I,this.shell.on("exit",(l,b)=>{if(l)DG(`Shell exited with code ${l} and signal ${b}`),wG("persistent_shell_exit",{code:l?.toString()||"null",signal:b||"null"});for(let W of[this.statusFile,this.stdoutFile,this.stderrFile,this.cwdFile])if(L2.existsSync(W))L2.unlinkSync(W);this.isAlive=!1});let G=Math.floor(Math.random()*65536).toString(16).padStart(4,"0");this.statusFile=UGI+G+xGI.STATUS,this.stdoutFile=UGI+G+xGI.STDOUT,this.stderrFile=UGI+G+xGI.STDERR,this.cwdFile=UGI+G+xGI.CWD;for(let l of[this.statusFile,this.stdoutFile,this.stderrFile])L2.writeFileSync(l,"");L2.writeFileSync(this.cwdFile,I);let Z=ylb[this.binShell];if(Z){let l=vlb(wlb(),Z);if(kaG(l))this.sendToShell(`source ${l}`)}}static instance=null;static restart(){if(vm.instance)vm.instance.close(),vm.instance=null}static getInstance(){if(!vm.instance||!vm.instance.isAlive)vm.instance=new vm(process.cwd());return vm.instance}killChildren(){let I=this.shell.pid;try{let G=UaG(`pgrep -P ${I}`).toString().trim().split(`
|
|
557
557
|
`).filter(Boolean);if(G.length>0)wG("persistent_shell_command_interrupted",{numChildProcesses:G.length.toString()});G.forEach((Z)=>{try{process.kill(Number(Z),"SIGTERM")}catch(l){DG(`Failed to kill process ${Z}: ${l}`),wG("persistent_shell_kill_process_error",{error:l.message.substring(0,10)})}})}catch{}finally{this.commandInterrupted=!0}}async processQueue(){if(this.isExecuting||this.commandQueue.length===0)return;this.isExecuting=!0;let{command:I,abortSignal:G,timeout:Z,resolve:l,reject:b}=this.commandQueue.shift(),W=()=>this.killChildren();if(G)G.addEventListener("abort",W);try{let N=await this.exec_(I,Z);l(N)}catch(N){wG("persistent_shell_command_error",{error:N.message.substring(0,10)}),b(N)}finally{if(this.isExecuting=!1,G)G.removeEventListener("abort",W);this.processQueue()}}async exec(I,G,Z){return new Promise((l,b)=>{this.commandQueue.push({command:I,abortSignal:G,timeout:Z,resolve:l,reject:b}),this.processQueue()})}async exec_(I,G){let Z=xaG.default.quote([I]);try{UaG(`${this.binShell} -n -c ${Z}`,{stdio:"ignore",timeout:1000})}catch(b){let W=typeof b==="string"?b:String(b||"");return wG("persistent_shell_syntax_error",{error:W.substring(0,10)}),Promise.resolve({stdout:"",stderr:W,code:128,interrupted:!1})}let l=G||Clb;return this.commandInterrupted=!1,new Promise((b)=>{L2.writeFileSync(this.stdoutFile,""),L2.writeFileSync(this.stderrFile,""),L2.writeFileSync(this.statusFile,"");let W=[];W.push(`eval ${Z} < /dev/null > ${this.stdoutFile} 2> ${this.stderrFile}`),W.push("EXEC_EXIT_CODE=$?"),W.push(`pwd > ${this.cwdFile}`),W.push(`echo $EXEC_EXIT_CODE > ${this.statusFile}`),this.sendToShell(W.join(`
|
|
558
558
|
`));let N=Date.now(),Y=setInterval(()=>{try{let c=0;if(L2.existsSync(this.statusFile))c=L2.statSync(this.statusFile).size;if(c>0||Date.now()-N>l||this.commandInterrupted){clearInterval(Y);let V=L2.existsSync(this.stdoutFile)?L2.readFileSync(this.stdoutFile,"utf8"):"",d=L2.existsSync(this.stderrFile)?L2.readFileSync(this.stderrFile,"utf8"):"",m;if(c)m=Number(L2.readFileSync(this.statusFile,"utf8"));else this.killChildren(),m=plb,d+=(d?`
|
|
559
559
|
`:"")+"Command execution timed out",wG("persistent_shell_command_timeout",{command:I.substring(0,10),timeout:l.toString()});b({stdout:V,stderr:d,code:m,interrupted:this.commandInterrupted})}}catch{}},10)})}sendToShell(I){try{this.shell.stdin.write(I+`
|
|
560
|
-
`)}catch(G){let Z=G instanceof Error?G.message:String(G||"Unknown error");throw DG(`Error in sendToShell: ${Z}`),wG("persistent_shell_write_error",{error:Z.substring(0,100),command:I.substring(0,30)}),G}}pwd(){try{let I=L2.readFileSync(this.cwdFile,"utf8").trim();if(I)this.cwd=I}catch(I){DG(`Shell pwd error ${I}`)}return this.cwd}async setCwd(I){let G=Alb(I)?I:Elb(process.cwd(),I);if(!kaG(G))throw Error(`Path "${G}" does not exist`);await this.exec(`cd ${G}`)}close(){this.shell.stdin.end(),this.shell.kill()}}var Llb={originalCwd:ulb()};async function LA(I){await vm.getInstance().setCwd(I)}function OX(){return Llb.originalCwd}function XZ(){return vm.getInstance().pwd()}var alb=1000,zlb=60;function oW(I,G,Z,l=10*zlb*alb,b=!0){return new Promise((W)=>{try{glb(I,G,{maxBuffer:1e6,signal:Z,timeout:l,cwd:XZ()},(N,Y,c)=>{if(N)if(b){let V=typeof N.code==="number"?N.code:1;W({stdout:Y||"",stderr:c||"",code:V})}else W({stdout:"",stderr:"",code:1});else W({stdout:Y,stderr:c,code:0})})}catch(N){DG(N),W({stdout:"",stderr:"",code:1})}})}import{join as OGI}from"path";import{homedir as MaG}from"os";var Ay=process.env.CLAUDE_CONFIG_DIR??OGI(MaG(),".claude"),Fv=process.env.CLAUDE_CONFIG_DIR?OGI(Ay,"config.json"):OGI(MaG(),".claude.json"),ddY=OGI(Ay,"memory"),Blb=Zb(async()=>{let{code:I}=await oW("test",["-f","/.dockerenv"]);if(I!==0)return!1;return process.platform==="linux"}),klb=Zb(async()=>{try{let I=new AbortController,G=setTimeout(()=>I.abort(),1000);return await fetch("http://1.1.1.1",{method:"HEAD",signal:I.signal}),clearTimeout(G),!0}catch{return!1}}),mdY=Boolean(process.env.CLAUDE_CODE_SIMPLE),Ol={getIsDocker:Blb,hasInternetAccess:klb,isCI:Boolean(process.env.CI),platform:process.platform==="win32"?"windows":process.platform==="darwin"?"macos":"linux",nodeVersion:process.version,terminal:process.env.TERM_PROGRAM};import{randomBytes as Olb}from"crypto";function MX(I){if(!I)return null;try{return JSON.parse(I)}catch(G){return DG(G),null}}class VEI extends TypeError{}class LO extends Error{}class gO extends Error{filePath;defaultConfig;constructor(I,G,Z){super(I);this.name="ConfigParseError",this.filePath=G,this.defaultConfig=Z}}var DaG={allowedTools:[],context:{},history:[],dontCrawlDirectory:!1,enableArchitectTool:!1,mcpContextUris:[],mcpServers:{},approvedMcpJsonServers:[],rejectedMcpJsonServers:[],disabledMcpServers:[],hasTrustDialogAccepted:!1};function KaG(I){let G={...DaG};if(I===xlb())G.dontCrawlDirectory=!0;return G}function Mlb(I){return["disabled","enabled","no_permissions","not_configured"].includes(I)}var Tw={numStartups:0,autoUpdaterStatus:"enabled",theme:"dark",preferredNotifChannel:"iterm2",verbose:!1,customApiKeyResponses:{approved:[],rejected:[]}},WT=["autoUpdaterStatus","theme","hasCompletedOnboarding","lastOnboardingVersion","lastReleaseNotesSeen","verbose","customApiKeyResponses","primaryApiKey","preferredNotifChannel","shiftEnterKeyBindingInstalled","model"];function mEI(I){return WT.includes(I)}var NT=["dontCrawlDirectory","enableArchitectTool","simpleMode","hasTrustDialogAccepted","hasCompletedProjectOnboarding"];function naG(){let I=XZ(),G=zO(Fv,Tw);while(!0){if(G.projects?.[I]?.hasTrustDialogAccepted)return!0;let l=dEI(I,"..");if(l===I)break;I=l}return!1}var LdY={...Tw,autoUpdaterStatus:"disabled"},gdY={...DaG};function QEI(I){return NT.includes(I)}function YW(I){jaG(Fv,{...I,projects:zO(Fv,Tw).projects},Tw)}function fZ(){return zO(Fv,Tw)}function sH(){let I=fZ();if(process.env.USER_TYPE==="SWE_BENCH")return process.env.ANTHROPIC_API_KEY_OVERRIDE??null;if(process.env.USER_TYPE==="external")return I.primaryApiKey??null;if(process.env.USER_TYPE==="ant"){if(process.env.ANTHROPIC_API_KEY&&I.customApiKeyResponses?.approved?.includes(dR(process.env.ANTHROPIC_API_KEY)))return process.env.ANTHROPIC_API_KEY;return I.primaryApiKey??null}return null}function dR(I){return I.slice(-20)}function KGI(){let I=fZ();return sH()===I.primaryApiKey}function DGI(I){let G=fZ();if(G.customApiKeyResponses?.approved?.includes(I))return"approved";if(G.customApiKeyResponses?.rejected?.includes(I))return"rejected";return"new"}function jaG(I,G,Z){let l=Object.fromEntries(Object.entries(G).filter(([b,W])=>JSON.stringify(W)!==JSON.stringify(Z[b])));Ulb(I,JSON.stringify(l,null,2),"utf-8")}var qaG=!1;function TaG(){qaG=!0,zO(Fv,Tw,!0)}function zO(I,G,Z){if(!qaG)throw Error("Config accessed before allowed.");if(!lT(I))return kq(G);try{let l=bT(I,"utf-8");try{let b=JSON.parse(l);return{...kq(G),...b}}catch(b){let W=b instanceof Error?b.message:String(b);throw new gO(W,I,G)}}catch(l){if(l instanceof gO&&Z)throw l;return kq(G)}}function ab(){let I=dEI(XZ()),G=zO(Fv,Tw);if(!G.projects)return KaG(I);let Z=G.projects[I]??KaG(I);if(typeof Z.allowedTools==="string")Z.allowedTools=MX(Z.allowedTools)??[];return Z}function Sw(){return Boolean(process.env.CLAUDE_CODE_SIMPLE)||Boolean(ab().simpleMode)}function HN(I){let G=zO(Fv,Tw);jaG(Fv,{...G,projects:{...G.projects,[dEI(XZ())]:I}},Tw)}async function SaG(){return fZ().autoUpdaterStatus==="disabled"}function aO(I){let G={...I};if(G.type==="streamable-http")G.type="http";if(!G.type&&typeof G.url==="string")G.type="sse";if(G.type==="http"||G.type==="sse"){if(G.oauth===!0)G.oauth={};else if(!G.oauth||typeof G.oauth!=="object"){if("clientId"in G||"clientSecret"in G)G.oauth={...G.clientId?{clientId:G.clientId}:{},...G.clientSecret?{clientSecret:G.clientSecret}:{}},delete G.clientId,delete G.clientSecret}}return G}var BO=Zb(()=>{let I=MGI(XZ(),".mcp.json"),G=MGI(XZ(),".mcprc");if(lT(I))try{let Z=bT(I,"utf-8"),l=MX(Z);if(l&&typeof l==="object"){let b=l.mcpServers;if(b&&typeof b==="object"){let W={};for(let[N,Y]of Object.entries(b))W[N]=aO(Y);return wG("tengu_mcp_json_found",{numServers:Object.keys(W).length.toString()}),W}}}catch{}if(lT(G))try{let Z=bT(G,"utf-8"),l=MX(Z);if(l&&typeof l==="object"){let b={};for(let[W,N]of Object.entries(l))b[W]=aO(N);return wG("tengu_mcprc_found",{numServers:Object.keys(b).length.toString()}),b}}catch{}return{}},()=>{let I=XZ(),G=MGI(I,".mcp.json"),Z=MGI(I,".mcprc");if(lT(G))try{let l=bT(G,"utf-8");return`${I}:mcp.json:${l}`}catch{return I}if(lT(Z))try{let l=bT(Z,"utf-8");return`${I}:mcprc:${l}`}catch{return I}return I});function nGI(){let I=fZ();if(I.userID)return I.userID;let G=Olb(32).toString("hex");return YW({...I,userID:G}),G}function iaG(I,G){if(wG("tengu_config_get",{key:I,global:G?.toString()??"false"}),G){if(!mEI(I))console.error(`Error: '${I}' is not a valid config key. Valid keys are: ${WT.join(", ")}`),process.exit(1);return fZ()[I]}else{if(!QEI(I))console.error(`Error: '${I}' is not a valid config key. Valid keys are: ${NT.join(", ")}`),process.exit(1);return ab()[I]}}function PaG(I,G,Z){if(wG("tengu_config_set",{key:I,global:Z?.toString()??"false"}),Z){if(!mEI(I))console.error(`Error: Cannot set '${I}'. Only these keys can be modified: ${WT.join(", ")}`),process.exit(1);if(I==="autoUpdaterStatus"&&!Mlb(G))console.error("Error: Invalid value for autoUpdaterStatus. Must be one of: disabled, enabled, no_permissions, not_configured"),process.exit(1);let l=fZ();YW({...l,[I]:G})}else{if(!QEI(I))console.error(`Error: Cannot set '${I}'. Only these keys can be modified: ${NT.join(", ")}. Did you mean --global?`),process.exit(1);let l=ab();HN({...l,[I]:G})}setTimeout(()=>{process.exit(0)},100)}function _aG(I,G){if(wG("tengu_config_delete",{key:I,global:G?.toString()??"false"}),G){if(!mEI(I))console.error(`Error: Cannot delete '${I}'. Only these keys can be modified: ${WT.join(", ")}`),process.exit(1);let Z=fZ();delete Z[I],YW(Z)}else{if(!QEI(I))console.error(`Error: Cannot delete '${I}'. Only these keys can be modified: ${NT.join(", ")}. Did you mean --global?`),process.exit(1);let Z=ab();delete Z[I],HN(Z)}}function XEI(I){if(wG("tengu_config_list",{global:I?.toString()??"false"}),I)return nII(fZ(),WT);else return nII(ab(),NT)}var FEI=Zb(async()=>{let I=await oW("git",["config","user.email"]);if(I.code!==0){DG(`Failed to get git email: ${I.stdout} ${I.stderr}`);return}return I.stdout.trim()||void 0}),kGI=Zb(async()=>{let I=nGI(),G=fZ(),Z=process.env.USER_TYPE==="ant"?G.oauthAccount?.emailAddress??await FEI()??(process.env.COO_CREATOR?`${process.env.COO_CREATOR}@quantumio.com.cn`:void 0):void 0;return{customIDs:{sessionId:kX},userID:I,appVersion:"1.3.0",userAgent:Ol.platform,email:Z,custom:{nodeVersion:Ol.nodeVersion,userType:process.env.USER_TYPE,organizationUuid:G.oauthAccount?.organizationUuid,accountUuid:G.oauthAccount?.accountUuid}}});function saG(){BJI({dsn:XgG,release:"1.3.0",integrations:[Zq(),Rx(),$U(),sU(),fU()],tracesSampleRate:1,tracePropagationTargets:["localhost"]})}async function _II(I){try{let[G,Z]=await Promise.all([PH(),kGI()]);kr({nodeVersion:Ol.nodeVersion,platform:Ol.platform,cwd:XZ(),isCI:Ol.isCI,isGit:G,isTest:!1,packageVersion:"1.3.0",sessionId:kX,statsigGates:BaG(),terminal:Ol.terminal,userType:process.env.USER_TYPE}),Ur({id:Z.userID,email:Z.email}),z0(I)}catch{}}var KX="Claude Code",hN="QuantWise",jGI="https://docs.anthropic.com/s/claude-code";var vJ=hI(YG(),1);import{ReadStream as ZhN}from"tty";import{openSync as lhN,existsSync as $bl}from"fs";import{Stream as FYb}from"node:stream";import aZI from"node:process";var jkG=hI(YG(),1);import XYb from"node:process";function faG(I,G,{signal:Z,edges:l}={}){let b=void 0,W=null,N=l!=null&&l.includes("leading"),Y=l==null||l.includes("trailing"),c=()=>{if(W!==null)I.apply(b,W),b=void 0,W=null},V=()=>{if(Y)c();R()},d=null,m=()=>{if(d!=null)clearTimeout(d);d=setTimeout(()=>{d=null,V()},G)},X=()=>{if(d!==null)clearTimeout(d),d=null},R=()=>{X(),b=void 0,W=null},H=()=>{c()},w=function(...A){if(Z?.aborted)return;b=this,W=A;let y=d==null;if(m(),N&&y)c()};return w.schedule=m,w.cancel=R,w.flush=H,Z?.addEventListener("abort",R,{once:!0}),w}function $aG(I,G=0,Z={}){if(typeof Z!=="object")Z={};let{leading:l=!1,trailing:b=!0,maxWait:W}=Z,N=Array(2);if(l)N[0]="leading";if(b)N[1]="trailing";let Y=void 0,c=null,V=faG(function(...X){Y=I.apply(this,X),c=null},G,{edges:N}),d=function(...X){if(W!=null){if(c===null)c=Date.now();if(Date.now()-c>=W)return Y=I.apply(this,X),c=Date.now(),V.cancel(),V.schedule(),Y}return V.apply(this,X),Y},m=()=>{return V.flush(),Y};return d.cancel=V.cancel,d.flush=m,d}function qGI(I,G=0,Z={}){let{leading:l=!0,trailing:b=!0}=Z;return $aG(I,G,{leading:l,maxWait:G,trailing:b})}var wa={};JH(wa,{setCwd:()=>Xbb,scrollUp:()=>Zbb,scrollDown:()=>lbb,link:()=>mbb,image:()=>Qbb,iTerm:()=>IzG,exitAlternativeScreen:()=>Vbb,eraseUp:()=>Gbb,eraseStartLine:()=>elb,eraseScreen:()=>TGI,eraseLines:()=>tlb,eraseLine:()=>eaG,eraseEndLine:()=>rlb,eraseDown:()=>Ibb,enterAlternativeScreen:()=>cbb,cursorUp:()=>taG,cursorTo:()=>jlb,cursorShow:()=>HEI,cursorSavePosition:()=>Plb,cursorRestorePosition:()=>_lb,cursorPrevLine:()=>$lb,cursorNextLine:()=>flb,cursorMove:()=>qlb,cursorLeft:()=>raG,cursorHide:()=>olb,cursorGetPosition:()=>slb,cursorForward:()=>Slb,cursorDown:()=>Tlb,cursorBackward:()=>ilb,clearViewport:()=>Wbb,clearTerminal:()=>Ybb,clearScreen:()=>bbb,beep:()=>dbb,ConEmu:()=>GzG});import UO from"node:process";import Klb from"node:os";var kO=globalThis.window?.document!==void 0,swY=globalThis.process?.versions?.node!==void 0,fwY=globalThis.process?.versions?.bun!==void 0,$wY=globalThis.Deno?.version?.deno!==void 0,owY=globalThis.process?.versions?.electron!==void 0,twY=globalThis.navigator?.userAgent?.includes("jsdom")===!0,rwY=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,ewY=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,I5Y=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,G5Y=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,YT=globalThis.navigator?.userAgentData?.platform,Z5Y=YT==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",l5Y=YT==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",b5Y=YT==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",W5Y=YT==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),N5Y=YT==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var tN="\x1B[",xO="\x1B]",ha="\x07",cT=";",oaG=!kO&&UO.env.TERM_PROGRAM==="Apple_Terminal",Dlb=!kO&&UO.platform==="win32",nlb=!kO&&(UO.env.TERM?.startsWith("screen")||UO.env.TERM?.startsWith("tmux")||UO.env.TMUX!==void 0),REI=kO?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:UO.cwd,OO=(I)=>{if(nlb)return"\x1BPtmux;"+I.replaceAll("\x1B","\x1B\x1B")+"\x1B\\";return I},jlb=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");if(typeof G!=="number")return tN+(I+1)+"G";return tN+(G+1)+cT+(I+1)+"H"},qlb=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");let Z="";if(I<0)Z+=tN+-I+"D";else if(I>0)Z+=tN+I+"C";if(G<0)Z+=tN+-G+"A";else if(G>0)Z+=tN+G+"B";return Z},taG=(I=1)=>tN+I+"A",Tlb=(I=1)=>tN+I+"B",Slb=(I=1)=>tN+I+"C",ilb=(I=1)=>tN+I+"D",raG=tN+"G",Plb=oaG?"\x1B7":tN+"s",_lb=oaG?"\x1B8":tN+"u",slb=tN+"6n",flb=tN+"E",$lb=tN+"F",olb=tN+"?25l",HEI=tN+"?25h",tlb=(I)=>{let G="";for(let Z=0;Z<I;Z++)G+=eaG+(Z<I-1?taG():"");if(I)G+=raG;return G},rlb=tN+"K",elb=tN+"1K",eaG=tN+"2K",Ibb=tN+"J",Gbb=tN+"1J",TGI=tN+"2J",Zbb=tN+"S",lbb=tN+"T",bbb="\x1Bc",Wbb=`${TGI}${tN}H`,Nbb=()=>{if(kO||!Dlb)return!1;let I=Klb.release().split("."),G=Number(I[0]),Z=Number(I[2]??0);if(G<10)return!0;if(G===10&&Z<10586)return!0;return!1},Ybb=Nbb()?`${TGI}${tN}0f`:`${TGI}${tN}3J${tN}H`,cbb=tN+"?1049h",Vbb=tN+"?1049l",dbb=ha,mbb=(I,G)=>{let Z=OO(`${xO}8${cT}${cT}${G}${ha}`),l=OO(`${xO}8${cT}${cT}${ha}`);return Z+I+l},Qbb=(I,G={})=>{let Z=`${xO}1337;File=inline=1`;if(G.width)Z+=`;width=${G.width}`;if(G.height)Z+=`;height=${G.height}`;if(G.preserveAspectRatio===!1)Z+=";preserveAspectRatio=0";let l=Buffer.from(I);return OO(Z+`;size=${l.byteLength}:`+l.toString("base64")+ha)},IzG={setCwd:(I=REI())=>OO(`${xO}50;CurrentDir=${I}${ha}`),annotation(I,G={}){let Z=`${xO}1337;`,l=G.x!==void 0,b=G.y!==void 0;if((l||b)&&!(l&&b&&G.length!==void 0))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(I=I.replaceAll("|",""),Z+=G.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",G.length>0)Z+=(l?[I,G.length,G.x,G.y]:[G.length,I]).join("|");else Z+=I;return OO(Z+ha)}},GzG={setCwd:(I=REI())=>OO(`${xO}9;9;${I}${ha}`)},Xbb=(I=REI())=>IzG.setCwd(I)+GzG.setCwd(I);import{env as VT}from"node:process";var Fbb=VT.CI!=="0"&&VT.CI!=="false"&&(("CI"in VT)||("CONTINUOUS_INTEGRATION"in VT)||Object.keys(VT).some((I)=>I.startsWith("CI_"))),Ja=Fbb;var Rbb=(I)=>{let G=new Set;do for(let Z of Reflect.ownKeys(I))G.add([I,Z]);while((I=Reflect.getPrototypeOf(I))&&I!==Object.prototype);return G};function hEI(I,{include:G,exclude:Z}={}){let l=(b)=>{let W=(N)=>typeof N==="string"?b===N:N.test(b);if(G)return G.some(W);if(Z)return!Z.some(W);return!0};for(let[b,W]of Rbb(I.constructor.prototype)){if(W==="constructor"||!l(W))continue;let N=Reflect.getOwnPropertyDescriptor(b,W);if(N&&typeof N.value==="function")I[W]=I[W].bind(I)}return I}var qkG=hI(vEI(),1);import{PassThrough as lzG}from"node:stream";var bzG=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],CEI={},Hbb=(I)=>{let G=new lzG,Z=new lzG;G.write=(b)=>{I("stdout",b)},Z.write=(b)=>{I("stderr",b)};let l=new console.Console(G,Z);for(let b of bzG)CEI[b]=console[b],console[b]=l[b];return()=>{for(let b of bzG)console[b]=CEI[b];CEI={}}},WzG=Hbb;var hbb=(()=>{var I=import.meta.url;return function(G){G=G||{};var Z;Z||(Z=typeof G<"u"?G:{});var l,b;Z.ready=new Promise(function(dI,XI){l=dI,b=XI});var W=Object.assign({},Z),N="";typeof document<"u"&&document.currentScript&&(N=document.currentScript.src),I&&(N=I),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="";var Y=Z.print||console.log.bind(console),c=Z.printErr||console.warn.bind(console);Object.assign(Z,W),W=null;var V;Z.wasmBinary&&(V=Z.wasmBinary);var d=Z.noExitRuntime||!0;typeof WebAssembly!="object"&&EI("no native wasm support detected");var m,X=!1;function R(dI,XI,iI){iI=XI+iI;for(var lG="";!(XI>=iI);){var HG=dI[XI++];if(!HG)break;if(HG&128){var SG=dI[XI++]&63;if((HG&224)==192)lG+=String.fromCharCode((HG&31)<<6|SG);else{var cZ=dI[XI++]&63;HG=(HG&240)==224?(HG&15)<<12|SG<<6|cZ:(HG&7)<<18|SG<<12|cZ<<6|dI[XI++]&63,65536>HG?lG+=String.fromCharCode(HG):(HG-=65536,lG+=String.fromCharCode(55296|HG>>10,56320|HG&1023))}}else lG+=String.fromCharCode(HG)}return lG}var H,w,A,y,g,a,B,U,q;function $(){var dI=m.buffer;H=dI,Z.HEAP8=w=new Int8Array(dI),Z.HEAP16=y=new Int16Array(dI),Z.HEAP32=a=new Int32Array(dI),Z.HEAPU8=A=new Uint8Array(dI),Z.HEAPU16=g=new Uint16Array(dI),Z.HEAPU32=B=new Uint32Array(dI),Z.HEAPF32=U=new Float32Array(dI),Z.HEAPF64=q=new Float64Array(dI)}var lI,o=[],LI=[],mI=[];function ZG(){var dI=Z.preRun.shift();o.unshift(dI)}var gI=0,II=null,BI=null;function EI(dI){if(Z.onAbort)Z.onAbort(dI);throw dI="Aborted("+dI+")",c(dI),X=!0,dI=new WebAssembly.RuntimeError(dI+". Build with -sASSERTIONS for more info."),b(dI),dI}function cI(dI){return dI.startsWith("data:application/octet-stream;base64,")}var wI="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECYLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBXRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBXRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEIkBIhNBAEgNCCAIKAJMIQkLQQAhB0F/IQsCfyAJLQAAQS5HBEAgCSEBQQAMAQsgCS0AAUEqRgRAAn8CQCAJLAACIgEQV0UNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgFQ0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIkBIQsgCCgCTCEBQQELIQ8DQCAHIRFBHCEKIAEiECwAACIHQfsAa0FGSQ0JIBBBAWohASAHIBFBOmxqQf8qai0AACIHQQFrQQhJDQALIAggATYCTAJAAkAgB0EbRwRAIAdFDQsgEkEATgRAIAQgEkECdGogBzYCACAIIAMgEkEDdGopAwA3A0AMAgsgAEUNCCAIQUBrIAcgAiAGEIcBDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQZAvai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQRyENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQY4lIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBApDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEIYBIgpBAEgiDSAKIAsgB2tLckUEQCAJQQRqIQkgCyAHIApqIgdLDQEMAgsLIA0NDQtBPSEKIAdBAEgNCyAAQSAgEyAHIAwQKSAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACINRQ0BIAhBBGogDRCGASINIApqIgogB0sNASAAIAhBBGogDRAmIAlBBGohCSAHIApLDQALCyAAQSAgEyAHIAxBgMAAcxApIBMgByAHIBNIGyEHDAgLIA9BACALQQBIGw0IQT0hCiAAIAgrA0AgEyALIAwgByAFERwAIgdBAE4NBwwJCyAIIAgpA0A8ADdBASELIBchDSAJIQwMBAsgBy0AASEJIAdBAWohBwwACwALIAANByAVRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQhwFBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBApIAAgFiASECYgAEEwIAcgCyAMQYCABHMQKSAAQTAgCSAQQQAQKSAAIA0gEBAmIABBICAHIAsgDEGAwABzECkMAQsLQQAhDgwDC0E9IQoLQfw7IAo2AgALQX8hDgsgCEHQAGokACAOC9kCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEIoBQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEJ0BDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIoBCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfwIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQjAEhACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwsVACAARQRAQQAPC0H8OyAANgIAQX8LzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBxABqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC9EDAEHUO0GoHBAcQdU7QYoWQQFBAUEAEBtB1jtB/RJBAUGAf0H/ABAEQdc7QfYSQQFBgH9B/wAQBEHYO0H0EkEBQQBB/wEQBEHZO0GUCkECQYCAfkH//wEQBEHaO0GLCkECQQBB//8DEARB2ztBsQpBBEGAgICAeEH/////BxAEQdw7QagKQQRBAEF/EARB3TtB+BhBBEGAgICAeEH/////BxAEQd47Qe8YQQRBAEF/EARB3ztBjxBCgICAgICAgICAf0L///////////8AEIQBQeA7QY4QQgBCfxCEAUHhO0GIEEEEEA1B4jtB9BtBCBANQeM7QaQZEA5B5DtBmSIQDkHlO0EEQZcZEAhB5jtBAkGwGRAIQec7QQRBvxkQCEHoO0GPFhAaQek7QQBB1CEQAUHqO0EAQboiEAFB6ztBAUHyIRABQew7QQJB5B4QAUHtO0EDQYMfEAFB7jtBBEGrHxABQe87QQVByB8QAUHwO0EEQd8iEAFB8TtBBUH9IhABQeo7QQBBriAQAUHrO0EBQY0gEAFB7DtBAkHwIBABQe07QQNBziAQAUHuO0EEQbMhEAFB7ztBBUGRIRABQfI7QQZB7h8QAUHzO0EHQaQjEAELJQAgAEH0JjYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAsDAAALJQAgAEHsJzYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEGjOyAAQeI7QfooQcEBIAJB4jtB/ihBwgEgAxAHCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBQALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMACwkAIAEgABEAAAsHACAAEQ4ACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQAACzABAX8jAEEQayICJAAgAiABNgIIIAJBCGogABECACEAIAIoAggQBiACQRBqJAAgAAsMACABIAAoAgARAAALCQAgAEEBOgAEC9coAQJ/QaA7QaE7QaI7QQBBjCZBB0GPJkEAQY8mQQBB2RZBkSZBCBAFQQgQHiIAQoiAgIAQNwMAQaA7QZcbQQZBoCZBuCZBCSAAQQEQAEGkO0GlO0GmO0GgO0GMJkEKQYwmQQtBjCZBDEG4EUGRJkENEAVBBBAeIgBBDjYCAEGkO0HoFEECQcAmQcgmQQ8gAEEAEABBoDtBowxBAkHMJkHUJkEQQREQA0GgO0GAHEEDQaQnQbAnQRJBExADQbg7Qbk7Qbo7QQBBjCZBFEGPJkEAQY8mQQBB6RZBkSZBFRAFQQgQHiIAQoiAgIAQNwMAQbg7QegcQQJBuCdByCZBFiAAQQEQAEG7O0G8O0G9O0G4O0GMJkEXQYwmQRhBjCZBGUHPEUGRJkEaEAVBBBAeIgBBGzYCAEG7O0HoFEECQcAnQcgmQRwgAEEAEABBuDtBowxBAkHIJ0HUJkEdQR4QA0G4O0GAHEEDQaQnQbAnQRJBHxADQb47Qb87QcA7QQBBjCZBIEGPJkEAQY8mQQBB2hpBkSZBIRAFQb47QQFB+CdBjCZBIkEjEA9BvjtBkBtBAUH4J0GMJkEiQSMQA0G+O0HpCEECQfwnQcgmQSRBJRADQQgQHiIAQQA2AgQgAEEmNgIAQb47Qa0cQQRBkChBoChBJyAAQQAQAEEIEB4iAEEANgIEIABBKDYCAEG+O0GkEUEDQagoQbQoQSkgAEEAEABBCBAeIgBBADYCBCAAQSo2AgBBvjtByB1BA0G8KEHIKEErIABBABAAQQgQHiIAQQA2AgQgAEEsNgIAQb47QaYQQQNB0ChByChBLSAAQQAQAEEIEB4iAEEANgIEIABBLjYCAEG+O0HLHEEDQdwoQbAnQS8gAEEAEABBCBAeIgBBADYCBCAAQTA2AgBBvjtB0h1BAkHoKEHUJkExIABBABAAQQgQHiIAQQA2AgQgAEEyNgIAQb47QZcQQQJB8ChB1CZBMyAAQQAQAEHBO0GECkH4KEE0QZEmQTUQCkHiD0EAEEhB6g5BCBBIQYITQRAQSEHxFUEYEEhBgxdBIBBIQfAOQSgQSEHBOxAJQaM7Qf8aQfgoQTZBkSZBNxAKQYMXQQAQkwFB8A5BCBCTAUGjOxAJQcI7QYobQfgoQThBkSZBORAKQQQQHiIAQQg2AgBBBBAeIgFBCDYCAEHCO0GEG0HiO0H6KEE6IABB4jtB/ihBOyABEAdBBBAeIgBBADYCAEEEEB4iAUEANgIAQcI7QeUOQds7QdQmQTwgAEHbO0HIKEE9IAEQB0HCOxAJQcM7QcQ7QcU7QQBBjCZBPkGPJkEAQY8mQQBB+xtBkSZBPxAFQcM7QQFBhClBjCZBwABBwQAQD0HDO0HXDkEBQYQpQYwmQcAAQcEAEANBwztB0BpBAkGIKUHUJkHCAEHDABADQcM7QekIQQJBkClByCZBxABBxQAQA0EIEB4iAEEANgIEIABBxgA2AgBBwztB9w9BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABByAA2AgBBwztB6htBA0GYKUHIKEHJACAAQQAQAEEIEB4iAEEANgIEIABBygA2AgBBwztBnxtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABBzAA2AgBBwztB0BRBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzgA2AgBBwztBiA1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzwA2AgBBwztB3RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0AA2AgBBwztB+QtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0QA2AgBBwztBuBBBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0gA2AgBBwztB5RpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0wA2AgBBwztB/BRBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1AA2AgBBwztBlRNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1QA2AgBBwztBtQpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1gA2AgBBwztBuBVBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB1wA2AgBBwztBmw1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB2AA2AgBBwztB7RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2QA2AgBBwztBxAlBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2gA2AgBBwztB8QhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2wA2AgBBwztBhwlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3QA2AgBBwztB1BBBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3gA2AgBBwztB5gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3wA2AgBBwztBzBNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB4AA2AgBBwztBrAlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4QA2AgBBwztBnxZBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4gA2AgBBwztBoRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4wA2AgBBwztBvw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5AA2AgBBwztB+xNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB5QA2AgBBwztBkQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5gA2AgBBwztBwQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5wA2AgBBwztBvhNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB6AA2AgBBwztBsxdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6QA2AgBBwztBzw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6gA2AgBBwztBpQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6wA2AgBBwztB0gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7AA2AgBBwztBiRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7QA2AgBBwztBrA1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7gA2AgBBwztB9w5BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7wA2AgBBwztBrQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8AA2AgBBwztB/RhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB8QA2AgBBwztBshRBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8gA2AgBBwztBlBJBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB8wA2AgBBwztBzhlBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9AA2AgBBwztB4g1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9QA2AgBBwztBrRNBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9gA2AgBBwztB+gxBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9wA2AgBBwztBnhVBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB+AA2AgBBwztBrxtBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB+gA2AgBBwztB3BRBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABB/AA2AgBBwztBiQxBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/QA2AgBBwztBxhBBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/gA2AgBBwztB8hpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/wA2AgBBwztBjRVBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgAE2AgBBwztBoRNBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgQE2AgBBwztBxwpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBggE2AgBBwztBwhVBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBgwE2AgBBwztB4RBBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBhQE2AgBBwztBuAlBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBhwE2AgBBwztBrRZBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBiAE2AgBBwztBqhdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiQE2AgBBwztBmw9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBigE2AgBBwztBvxdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiwE2AgBBwztBsg9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjAE2AgBBwztBlRdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjQE2AgBBwztBhA9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjgE2AgBBwztBihlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBjwE2AgBBwztBwRRBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBkAE2AgBBwztBnhJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBkgE2AgBBwztB0AlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBkwE2AgBBwztB/AhBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBlAE2AgBBwztB2RlBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBlQE2AgBBwztBtBNBA0GMKkGYKkGWASAAQQAQAEEIEB4iAEEANgIEIABBlwE2AgBBwztBhxxBBEGgKkGgKEGYASAAQQAQAEEIEB4iAEEANgIEIABBmQE2AgBBwztBnBxBA0GwKkHIKEGaASAAQQAQAEEIEB4iAEEANgIEIABBmwE2AgBBwztBmgpBAkG8KkHUJkGcASAAQQAQAEEIEB4iAEEANgIEIABBnQE2AgBBwztBmQxBAkHEKkHUJkGeASAAQQAQAEEIEB4iAEEANgIEIABBnwE2AgBBwztBkxxBA0HMKkGwJ0GgASAAQQAQAEEIEB4iAEEANgIEIABBoQE2AgBBwztBuxZBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBowE2AgBBwztBvxtBAkHkKkHUJkGkASAAQQAQAEEIEB4iAEEANgIEIABBpQE2AgBBwztB0xtBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBpgE2AgBBwztBqB1BA0HsKkHIKEGnASAAQQAQAEEIEB4iAEEANgIEIABBqAE2AgBBwztBph1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBqQE2AgBBwztBuR1BA0H4KkHIKEGqASAAQQAQAEEIEB4iAEEANgIEIABBqwE2AgBBwztBtx1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrAE2AgBBwztB3whBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrQE2AgBBwztB1whBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBrwE2AgBBwztB3hVBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBsAE2AgBBwztB3AlBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBsQE2AgBBwztB6QlBBUGQK0GkK0GyASAAQQAQAEEIEB4iAEEANgIEIABBswE2AgBBwztB5w9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtAE2AgBBwztB0Q9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtQE2AgBBwztBhhNBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtgE2AgBBwztB+BVBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtwE2AgBBwztByxdBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuAE2AgBBwztBvw9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuQE2AgBBwztB+QlBAkGsK0HUJkG6ASAAQQAQAEEIEB4iAEEANgIEIABBuwE2AgBBwztBzBVBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvAE2AgBBwztBqBJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvQE2AgBBwztB5BlBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvgE2AgBBwztBqxVBAkHUKUHUJkH5ACAAQQAQAAtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAtHAAJAIAFBA00EfyAAIAFBAnRqQQRqBSABQQRrIgEgACgCGCIAKAIEIAAoAgAiAGtBAnVPDQEgACABQQJ0agsoAgAPCxACAAs4AQF/IAFBAEgEQBACAAsgAUEBa0EFdkEBaiIBQQJ0EB4hAiAAIAE2AgggAEEANgIEIAAgAjYCAAvSBQEJfyAAIAEvAQA7AQAgACABKQIENwIEIAAgASkCDDcCDCAAIAEoAhQ2AhQCQAJAIAEoAhgiA0UNAEEYEB4iBUEANgIIIAVCADcCACADKAIEIgEgAygCACICRwRAIAEgAmsiAkEASA0CIAUgAhAeIgE2AgAgBSABIAJqNgIIIAMoAgAiAiADKAIEIgZHBEADQCABIAIoAgA2AgAgAUEEaiEBIAJBBGoiAiAGRw0ACwsgBSABNgIECyAFQgA3AgwgBUEANgIUIAMoAhAiAUUNACAFQQxqIAEQnwEgAygCDCEGIAUgBSgCECIEIAMoAhAiAkEfcWogAkFgcWoiATYCEAJAAkAgBEUEQCABQQFrIQMMAQsgAUEBayIDIARBAWtzQSBJDQELIAUoAgwgA0EFdkEAIAFBIU8bQQJ0akEANgIACyAFKAIMIARBA3ZB/P///wFxaiEBIARBH3EiA0UEQCACQQBMDQEgAkEgbSEDIAJBH2pBP08EQCABIAYgA0ECdBAzGgsgAiADQQV0ayICQQBMDQEgASADQQJ0IgNqIgEgASgCAEF/QSAgAmt2IgFBf3NxIAMgBmooAgAgAXFyNgIADAELIAJBAEwNAEF/IAN0IQhBICADayEEIAJBIE4EQCAIQX9zIQkgASgCACEHA0AgASAHIAlxIAYoAgAiByADdHI2AgAgASABKAIEIAhxIAcgBHZyIgc2AgQgBkEEaiEGIAFBBGohASACQT9LIQogAkEgayECIAoNAAsgAkEATA0BCyABIAEoAgBBfyAEIAQgAiACIARKGyIEa3YgCHFBf3NxIAYoAgBBf0EgIAJrdnEiBiADdHI2AgAgAiAEayICQQBMDQAgASADIARqQQN2Qfz///8BcWoiASABKAIAQX9BICACa3ZBf3NxIAYgBHZyNgIACyAAKAIYIQEgACAFNgIYIAEEQCABEFsLDwsQAgALvQMBB38gAARAIwBBIGsiBiQAIAAoAgAiASgC5AMiAwRAIAMgARBvGiABQQA2AuQDCyABKALsAyICIAEoAugDIgNHBEBBASACIANrQQJ1IgIgAkEBTRshBEEAIQIDQCADIAJBAnRqKAIAQQA2AuQDIAJBAWoiAiAERw0ACwsgASADNgLsAwJAIAMgAUHwA2oiAigCAEYNACAGQQhqQQBBACACEEoiAigCBCABKALsAyABKALoAyIEayIFayIDIAQgBRAzIQUgASgC6AMhBCABIAU2AugDIAIgBDYCBCABKALsAyEFIAEgAigCCDYC7AMgAiAFNgIIIAEoAvADIQcgASACKAIMNgLwAyACIAQ2AgAgAiAHNgIMIAQgBUcEQCACIAUgBCAFa0EDakF8cWo2AggLIARFDQAgBBAnIAEoAugDIQMLIAMEQCABIAM2AuwDIAMQJwsgASgClAEhAyABQQA2ApQBIAMEQCADEFsLIAEQJyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgQhASAAQQA2AgQgAQRAIAEgASgCACgCBBEAAAsgBkEgaiQAIAAQIwsLtQEBAX8jAEEQayICJAACfyABBEAgASgCACEBQYgEEB4gARBcIAENARogAkH3GTYCACACEHIQJAALQZQ7LQAARQRAQfg6QQM2AgBBiDtCgICAgICAgMA/NwIAQYA7QgA3AgBBlDtBAToAAEH8OkH8Oi0AAEH+AXE6AABB9DpBADYCAEGQO0EANgIAC0GIBBAeQfQ6EFwLIQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!cI(wI)){var yI=wI;wI=Z.locateFile?Z.locateFile(yI,N):N+yI}function OI(){var dI=wI;try{if(dI==wI&&V)return new Uint8Array(V);if(cI(dI))try{var XI=J0(dI.slice(37)),iI=new Uint8Array(XI.length);for(dI=0;dI<XI.length;++dI)iI[dI]=XI.charCodeAt(dI);var lG=iI}catch(SG){throw Error("Converting base64 string to bytes failed.")}else lG=void 0;var HG=lG;if(HG)return HG;throw"both async and sync fetching of the wasm failed"}catch(SG){EI(SG)}}function aI(){return V||typeof fetch!="function"?Promise.resolve().then(function(){return OI()}):fetch(wI,{credentials:"same-origin"}).then(function(dI){if(!dI.ok)throw"failed to load wasm binary file at '"+wI+"'";return dI.arrayBuffer()}).catch(function(){return OI()})}function mG(dI){for(;0<dI.length;)dI.shift()(Z)}function P(dI){if(dI===void 0)return"_unknown";dI=dI.replace(/[^a-zA-Z0-9_]/g,"$");var XI=dI.charCodeAt(0);return 48<=XI&&57>=XI?"_"+dI:dI}function i(dI,XI){return dI=P(dI),function(){return XI.apply(this,arguments)}}var WI=[{},{value:void 0},{value:null},{value:!0},{value:!1}],IG=[];function GG(dI){var XI=Error,iI=i(dI,function(lG){this.name=dI,this.message=lG,lG=Error(lG).stack,lG!==void 0&&(this.stack=this.toString()+`
|
|
560
|
+
`)}catch(G){let Z=G instanceof Error?G.message:String(G||"Unknown error");throw DG(`Error in sendToShell: ${Z}`),wG("persistent_shell_write_error",{error:Z.substring(0,100),command:I.substring(0,30)}),G}}pwd(){try{let I=L2.readFileSync(this.cwdFile,"utf8").trim();if(I)this.cwd=I}catch(I){DG(`Shell pwd error ${I}`)}return this.cwd}async setCwd(I){let G=Alb(I)?I:Elb(process.cwd(),I);if(!kaG(G))throw Error(`Path "${G}" does not exist`);await this.exec(`cd ${G}`)}close(){this.shell.stdin.end(),this.shell.kill()}}var Llb={originalCwd:ulb()};async function LA(I){await vm.getInstance().setCwd(I)}function OX(){return Llb.originalCwd}function XZ(){return vm.getInstance().pwd()}var alb=1000,zlb=60;function oW(I,G,Z,l=10*zlb*alb,b=!0){return new Promise((W)=>{try{glb(I,G,{maxBuffer:1e6,signal:Z,timeout:l,cwd:XZ()},(N,Y,c)=>{if(N)if(b){let V=typeof N.code==="number"?N.code:1;W({stdout:Y||"",stderr:c||"",code:V})}else W({stdout:"",stderr:"",code:1});else W({stdout:Y,stderr:c,code:0})})}catch(N){DG(N),W({stdout:"",stderr:"",code:1})}})}import{join as OGI}from"path";import{homedir as MaG}from"os";var Ay=process.env.CLAUDE_CONFIG_DIR??OGI(MaG(),".claude"),Fv=process.env.CLAUDE_CONFIG_DIR?OGI(Ay,"config.json"):OGI(MaG(),".claude.json"),ddY=OGI(Ay,"memory"),Blb=Zb(async()=>{let{code:I}=await oW("test",["-f","/.dockerenv"]);if(I!==0)return!1;return process.platform==="linux"}),klb=Zb(async()=>{try{let I=new AbortController,G=setTimeout(()=>I.abort(),1000);return await fetch("http://1.1.1.1",{method:"HEAD",signal:I.signal}),clearTimeout(G),!0}catch{return!1}}),mdY=Boolean(process.env.CLAUDE_CODE_SIMPLE),Ol={getIsDocker:Blb,hasInternetAccess:klb,isCI:Boolean(process.env.CI),platform:process.platform==="win32"?"windows":process.platform==="darwin"?"macos":"linux",nodeVersion:process.version,terminal:process.env.TERM_PROGRAM};import{randomBytes as Olb}from"crypto";function MX(I){if(!I)return null;try{return JSON.parse(I)}catch(G){return DG(G),null}}class VEI extends TypeError{}class LO extends Error{}class gO extends Error{filePath;defaultConfig;constructor(I,G,Z){super(I);this.name="ConfigParseError",this.filePath=G,this.defaultConfig=Z}}var DaG={allowedTools:[],context:{},history:[],dontCrawlDirectory:!1,enableArchitectTool:!1,mcpContextUris:[],mcpServers:{},approvedMcpJsonServers:[],rejectedMcpJsonServers:[],disabledMcpServers:[],hasTrustDialogAccepted:!1};function KaG(I){let G={...DaG};if(I===xlb())G.dontCrawlDirectory=!0;return G}function Mlb(I){return["disabled","enabled","no_permissions","not_configured"].includes(I)}var Tw={numStartups:0,autoUpdaterStatus:"enabled",theme:"dark",preferredNotifChannel:"iterm2",verbose:!1,customApiKeyResponses:{approved:[],rejected:[]}},WT=["autoUpdaterStatus","theme","hasCompletedOnboarding","lastOnboardingVersion","lastReleaseNotesSeen","verbose","customApiKeyResponses","primaryApiKey","preferredNotifChannel","shiftEnterKeyBindingInstalled","model"];function mEI(I){return WT.includes(I)}var NT=["dontCrawlDirectory","enableArchitectTool","simpleMode","hasTrustDialogAccepted","hasCompletedProjectOnboarding"];function naG(){let I=XZ(),G=zO(Fv,Tw);while(!0){if(G.projects?.[I]?.hasTrustDialogAccepted)return!0;let l=dEI(I,"..");if(l===I)break;I=l}return!1}var LdY={...Tw,autoUpdaterStatus:"disabled"},gdY={...DaG};function QEI(I){return NT.includes(I)}function YW(I){jaG(Fv,{...I,projects:zO(Fv,Tw).projects},Tw)}function fZ(){return zO(Fv,Tw)}function sH(){let I=fZ();if(process.env.USER_TYPE==="SWE_BENCH")return process.env.ANTHROPIC_API_KEY_OVERRIDE??null;if(process.env.USER_TYPE==="external")return I.primaryApiKey??null;if(process.env.USER_TYPE==="ant"){if(process.env.ANTHROPIC_API_KEY&&I.customApiKeyResponses?.approved?.includes(dR(process.env.ANTHROPIC_API_KEY)))return process.env.ANTHROPIC_API_KEY;return I.primaryApiKey??null}return null}function dR(I){return I.slice(-20)}function KGI(){let I=fZ();return sH()===I.primaryApiKey}function DGI(I){let G=fZ();if(G.customApiKeyResponses?.approved?.includes(I))return"approved";if(G.customApiKeyResponses?.rejected?.includes(I))return"rejected";return"new"}function jaG(I,G,Z){let l=Object.fromEntries(Object.entries(G).filter(([b,W])=>JSON.stringify(W)!==JSON.stringify(Z[b])));Ulb(I,JSON.stringify(l,null,2),"utf-8")}var qaG=!1;function TaG(){qaG=!0,zO(Fv,Tw,!0)}function zO(I,G,Z){if(!qaG)throw Error("Config accessed before allowed.");if(!lT(I))return kq(G);try{let l=bT(I,"utf-8");try{let b=JSON.parse(l);return{...kq(G),...b}}catch(b){let W=b instanceof Error?b.message:String(b);throw new gO(W,I,G)}}catch(l){if(l instanceof gO&&Z)throw l;return kq(G)}}function ab(){let I=dEI(XZ()),G=zO(Fv,Tw);if(!G.projects)return KaG(I);let Z=G.projects[I]??KaG(I);if(typeof Z.allowedTools==="string")Z.allowedTools=MX(Z.allowedTools)??[];return Z}function Sw(){return Boolean(process.env.CLAUDE_CODE_SIMPLE)||Boolean(ab().simpleMode)}function HN(I){let G=zO(Fv,Tw);jaG(Fv,{...G,projects:{...G.projects,[dEI(XZ())]:I}},Tw)}async function SaG(){return fZ().autoUpdaterStatus==="disabled"}function aO(I){let G={...I};if(G.type==="streamable-http")G.type="http";if(!G.type&&typeof G.url==="string")G.type="sse";if(G.type==="http"||G.type==="sse"){if(G.oauth===!0)G.oauth={};else if(!G.oauth||typeof G.oauth!=="object"){if("clientId"in G||"clientSecret"in G)G.oauth={...G.clientId?{clientId:G.clientId}:{},...G.clientSecret?{clientSecret:G.clientSecret}:{}},delete G.clientId,delete G.clientSecret}}return G}var BO=Zb(()=>{let I=MGI(XZ(),".mcp.json"),G=MGI(XZ(),".mcprc");if(lT(I))try{let Z=bT(I,"utf-8"),l=MX(Z);if(l&&typeof l==="object"){let b=l.mcpServers;if(b&&typeof b==="object"){let W={};for(let[N,Y]of Object.entries(b))W[N]=aO(Y);return wG("tengu_mcp_json_found",{numServers:Object.keys(W).length.toString()}),W}}}catch{}if(lT(G))try{let Z=bT(G,"utf-8"),l=MX(Z);if(l&&typeof l==="object"){let b={};for(let[W,N]of Object.entries(l))b[W]=aO(N);return wG("tengu_mcprc_found",{numServers:Object.keys(b).length.toString()}),b}}catch{}return{}},()=>{let I=XZ(),G=MGI(I,".mcp.json"),Z=MGI(I,".mcprc");if(lT(G))try{let l=bT(G,"utf-8");return`${I}:mcp.json:${l}`}catch{return I}if(lT(Z))try{let l=bT(Z,"utf-8");return`${I}:mcprc:${l}`}catch{return I}return I});function nGI(){let I=fZ();if(I.userID)return I.userID;let G=Olb(32).toString("hex");return YW({...I,userID:G}),G}function iaG(I,G){if(wG("tengu_config_get",{key:I,global:G?.toString()??"false"}),G){if(!mEI(I))console.error(`Error: '${I}' is not a valid config key. Valid keys are: ${WT.join(", ")}`),process.exit(1);return fZ()[I]}else{if(!QEI(I))console.error(`Error: '${I}' is not a valid config key. Valid keys are: ${NT.join(", ")}`),process.exit(1);return ab()[I]}}function PaG(I,G,Z){if(wG("tengu_config_set",{key:I,global:Z?.toString()??"false"}),Z){if(!mEI(I))console.error(`Error: Cannot set '${I}'. Only these keys can be modified: ${WT.join(", ")}`),process.exit(1);if(I==="autoUpdaterStatus"&&!Mlb(G))console.error("Error: Invalid value for autoUpdaterStatus. Must be one of: disabled, enabled, no_permissions, not_configured"),process.exit(1);let l=fZ();YW({...l,[I]:G})}else{if(!QEI(I))console.error(`Error: Cannot set '${I}'. Only these keys can be modified: ${NT.join(", ")}. Did you mean --global?`),process.exit(1);let l=ab();HN({...l,[I]:G})}setTimeout(()=>{process.exit(0)},100)}function _aG(I,G){if(wG("tengu_config_delete",{key:I,global:G?.toString()??"false"}),G){if(!mEI(I))console.error(`Error: Cannot delete '${I}'. Only these keys can be modified: ${WT.join(", ")}`),process.exit(1);let Z=fZ();delete Z[I],YW(Z)}else{if(!QEI(I))console.error(`Error: Cannot delete '${I}'. Only these keys can be modified: ${NT.join(", ")}. Did you mean --global?`),process.exit(1);let Z=ab();delete Z[I],HN(Z)}}function XEI(I){if(wG("tengu_config_list",{global:I?.toString()??"false"}),I)return nII(fZ(),WT);else return nII(ab(),NT)}var FEI=Zb(async()=>{let I=await oW("git",["config","user.email"]);if(I.code!==0){DG(`Failed to get git email: ${I.stdout} ${I.stderr}`);return}return I.stdout.trim()||void 0}),kGI=Zb(async()=>{let I=nGI(),G=fZ(),Z=process.env.USER_TYPE==="ant"?G.oauthAccount?.emailAddress??await FEI()??(process.env.COO_CREATOR?`${process.env.COO_CREATOR}@quantumio.com.cn`:void 0):void 0;return{customIDs:{sessionId:kX},userID:I,appVersion:"1.3.1",userAgent:Ol.platform,email:Z,custom:{nodeVersion:Ol.nodeVersion,userType:process.env.USER_TYPE,organizationUuid:G.oauthAccount?.organizationUuid,accountUuid:G.oauthAccount?.accountUuid}}});function saG(){BJI({dsn:XgG,release:"1.3.1",integrations:[Zq(),Rx(),$U(),sU(),fU()],tracesSampleRate:1,tracePropagationTargets:["localhost"]})}async function _II(I){try{let[G,Z]=await Promise.all([PH(),kGI()]);kr({nodeVersion:Ol.nodeVersion,platform:Ol.platform,cwd:XZ(),isCI:Ol.isCI,isGit:G,isTest:!1,packageVersion:"1.3.1",sessionId:kX,statsigGates:BaG(),terminal:Ol.terminal,userType:process.env.USER_TYPE}),Ur({id:Z.userID,email:Z.email}),z0(I)}catch{}}var KX="Claude Code",hN="QuantWise",jGI="https://docs.anthropic.com/s/claude-code";var vJ=hI(YG(),1);import{ReadStream as ZhN}from"tty";import{openSync as lhN,existsSync as $bl}from"fs";import{Stream as FYb}from"node:stream";import aZI from"node:process";var jkG=hI(YG(),1);import XYb from"node:process";function faG(I,G,{signal:Z,edges:l}={}){let b=void 0,W=null,N=l!=null&&l.includes("leading"),Y=l==null||l.includes("trailing"),c=()=>{if(W!==null)I.apply(b,W),b=void 0,W=null},V=()=>{if(Y)c();R()},d=null,m=()=>{if(d!=null)clearTimeout(d);d=setTimeout(()=>{d=null,V()},G)},X=()=>{if(d!==null)clearTimeout(d),d=null},R=()=>{X(),b=void 0,W=null},H=()=>{c()},w=function(...A){if(Z?.aborted)return;b=this,W=A;let y=d==null;if(m(),N&&y)c()};return w.schedule=m,w.cancel=R,w.flush=H,Z?.addEventListener("abort",R,{once:!0}),w}function $aG(I,G=0,Z={}){if(typeof Z!=="object")Z={};let{leading:l=!1,trailing:b=!0,maxWait:W}=Z,N=Array(2);if(l)N[0]="leading";if(b)N[1]="trailing";let Y=void 0,c=null,V=faG(function(...X){Y=I.apply(this,X),c=null},G,{edges:N}),d=function(...X){if(W!=null){if(c===null)c=Date.now();if(Date.now()-c>=W)return Y=I.apply(this,X),c=Date.now(),V.cancel(),V.schedule(),Y}return V.apply(this,X),Y},m=()=>{return V.flush(),Y};return d.cancel=V.cancel,d.flush=m,d}function qGI(I,G=0,Z={}){let{leading:l=!0,trailing:b=!0}=Z;return $aG(I,G,{leading:l,maxWait:G,trailing:b})}var wa={};JH(wa,{setCwd:()=>Xbb,scrollUp:()=>Zbb,scrollDown:()=>lbb,link:()=>mbb,image:()=>Qbb,iTerm:()=>IzG,exitAlternativeScreen:()=>Vbb,eraseUp:()=>Gbb,eraseStartLine:()=>elb,eraseScreen:()=>TGI,eraseLines:()=>tlb,eraseLine:()=>eaG,eraseEndLine:()=>rlb,eraseDown:()=>Ibb,enterAlternativeScreen:()=>cbb,cursorUp:()=>taG,cursorTo:()=>jlb,cursorShow:()=>HEI,cursorSavePosition:()=>Plb,cursorRestorePosition:()=>_lb,cursorPrevLine:()=>$lb,cursorNextLine:()=>flb,cursorMove:()=>qlb,cursorLeft:()=>raG,cursorHide:()=>olb,cursorGetPosition:()=>slb,cursorForward:()=>Slb,cursorDown:()=>Tlb,cursorBackward:()=>ilb,clearViewport:()=>Wbb,clearTerminal:()=>Ybb,clearScreen:()=>bbb,beep:()=>dbb,ConEmu:()=>GzG});import UO from"node:process";import Klb from"node:os";var kO=globalThis.window?.document!==void 0,swY=globalThis.process?.versions?.node!==void 0,fwY=globalThis.process?.versions?.bun!==void 0,$wY=globalThis.Deno?.version?.deno!==void 0,owY=globalThis.process?.versions?.electron!==void 0,twY=globalThis.navigator?.userAgent?.includes("jsdom")===!0,rwY=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,ewY=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,I5Y=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,G5Y=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,YT=globalThis.navigator?.userAgentData?.platform,Z5Y=YT==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",l5Y=YT==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",b5Y=YT==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",W5Y=YT==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),N5Y=YT==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var tN="\x1B[",xO="\x1B]",ha="\x07",cT=";",oaG=!kO&&UO.env.TERM_PROGRAM==="Apple_Terminal",Dlb=!kO&&UO.platform==="win32",nlb=!kO&&(UO.env.TERM?.startsWith("screen")||UO.env.TERM?.startsWith("tmux")||UO.env.TMUX!==void 0),REI=kO?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:UO.cwd,OO=(I)=>{if(nlb)return"\x1BPtmux;"+I.replaceAll("\x1B","\x1B\x1B")+"\x1B\\";return I},jlb=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");if(typeof G!=="number")return tN+(I+1)+"G";return tN+(G+1)+cT+(I+1)+"H"},qlb=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");let Z="";if(I<0)Z+=tN+-I+"D";else if(I>0)Z+=tN+I+"C";if(G<0)Z+=tN+-G+"A";else if(G>0)Z+=tN+G+"B";return Z},taG=(I=1)=>tN+I+"A",Tlb=(I=1)=>tN+I+"B",Slb=(I=1)=>tN+I+"C",ilb=(I=1)=>tN+I+"D",raG=tN+"G",Plb=oaG?"\x1B7":tN+"s",_lb=oaG?"\x1B8":tN+"u",slb=tN+"6n",flb=tN+"E",$lb=tN+"F",olb=tN+"?25l",HEI=tN+"?25h",tlb=(I)=>{let G="";for(let Z=0;Z<I;Z++)G+=eaG+(Z<I-1?taG():"");if(I)G+=raG;return G},rlb=tN+"K",elb=tN+"1K",eaG=tN+"2K",Ibb=tN+"J",Gbb=tN+"1J",TGI=tN+"2J",Zbb=tN+"S",lbb=tN+"T",bbb="\x1Bc",Wbb=`${TGI}${tN}H`,Nbb=()=>{if(kO||!Dlb)return!1;let I=Klb.release().split("."),G=Number(I[0]),Z=Number(I[2]??0);if(G<10)return!0;if(G===10&&Z<10586)return!0;return!1},Ybb=Nbb()?`${TGI}${tN}0f`:`${TGI}${tN}3J${tN}H`,cbb=tN+"?1049h",Vbb=tN+"?1049l",dbb=ha,mbb=(I,G)=>{let Z=OO(`${xO}8${cT}${cT}${G}${ha}`),l=OO(`${xO}8${cT}${cT}${ha}`);return Z+I+l},Qbb=(I,G={})=>{let Z=`${xO}1337;File=inline=1`;if(G.width)Z+=`;width=${G.width}`;if(G.height)Z+=`;height=${G.height}`;if(G.preserveAspectRatio===!1)Z+=";preserveAspectRatio=0";let l=Buffer.from(I);return OO(Z+`;size=${l.byteLength}:`+l.toString("base64")+ha)},IzG={setCwd:(I=REI())=>OO(`${xO}50;CurrentDir=${I}${ha}`),annotation(I,G={}){let Z=`${xO}1337;`,l=G.x!==void 0,b=G.y!==void 0;if((l||b)&&!(l&&b&&G.length!==void 0))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(I=I.replaceAll("|",""),Z+=G.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",G.length>0)Z+=(l?[I,G.length,G.x,G.y]:[G.length,I]).join("|");else Z+=I;return OO(Z+ha)}},GzG={setCwd:(I=REI())=>OO(`${xO}9;9;${I}${ha}`)},Xbb=(I=REI())=>IzG.setCwd(I)+GzG.setCwd(I);import{env as VT}from"node:process";var Fbb=VT.CI!=="0"&&VT.CI!=="false"&&(("CI"in VT)||("CONTINUOUS_INTEGRATION"in VT)||Object.keys(VT).some((I)=>I.startsWith("CI_"))),Ja=Fbb;var Rbb=(I)=>{let G=new Set;do for(let Z of Reflect.ownKeys(I))G.add([I,Z]);while((I=Reflect.getPrototypeOf(I))&&I!==Object.prototype);return G};function hEI(I,{include:G,exclude:Z}={}){let l=(b)=>{let W=(N)=>typeof N==="string"?b===N:N.test(b);if(G)return G.some(W);if(Z)return!Z.some(W);return!0};for(let[b,W]of Rbb(I.constructor.prototype)){if(W==="constructor"||!l(W))continue;let N=Reflect.getOwnPropertyDescriptor(b,W);if(N&&typeof N.value==="function")I[W]=I[W].bind(I)}return I}var qkG=hI(vEI(),1);import{PassThrough as lzG}from"node:stream";var bzG=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],CEI={},Hbb=(I)=>{let G=new lzG,Z=new lzG;G.write=(b)=>{I("stdout",b)},Z.write=(b)=>{I("stderr",b)};let l=new console.Console(G,Z);for(let b of bzG)CEI[b]=console[b],console[b]=l[b];return()=>{for(let b of bzG)console[b]=CEI[b];CEI={}}},WzG=Hbb;var hbb=(()=>{var I=import.meta.url;return function(G){G=G||{};var Z;Z||(Z=typeof G<"u"?G:{});var l,b;Z.ready=new Promise(function(dI,XI){l=dI,b=XI});var W=Object.assign({},Z),N="";typeof document<"u"&&document.currentScript&&(N=document.currentScript.src),I&&(N=I),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="";var Y=Z.print||console.log.bind(console),c=Z.printErr||console.warn.bind(console);Object.assign(Z,W),W=null;var V;Z.wasmBinary&&(V=Z.wasmBinary);var d=Z.noExitRuntime||!0;typeof WebAssembly!="object"&&EI("no native wasm support detected");var m,X=!1;function R(dI,XI,iI){iI=XI+iI;for(var lG="";!(XI>=iI);){var HG=dI[XI++];if(!HG)break;if(HG&128){var SG=dI[XI++]&63;if((HG&224)==192)lG+=String.fromCharCode((HG&31)<<6|SG);else{var cZ=dI[XI++]&63;HG=(HG&240)==224?(HG&15)<<12|SG<<6|cZ:(HG&7)<<18|SG<<12|cZ<<6|dI[XI++]&63,65536>HG?lG+=String.fromCharCode(HG):(HG-=65536,lG+=String.fromCharCode(55296|HG>>10,56320|HG&1023))}}else lG+=String.fromCharCode(HG)}return lG}var H,w,A,y,g,a,B,U,q;function $(){var dI=m.buffer;H=dI,Z.HEAP8=w=new Int8Array(dI),Z.HEAP16=y=new Int16Array(dI),Z.HEAP32=a=new Int32Array(dI),Z.HEAPU8=A=new Uint8Array(dI),Z.HEAPU16=g=new Uint16Array(dI),Z.HEAPU32=B=new Uint32Array(dI),Z.HEAPF32=U=new Float32Array(dI),Z.HEAPF64=q=new Float64Array(dI)}var lI,o=[],LI=[],mI=[];function ZG(){var dI=Z.preRun.shift();o.unshift(dI)}var gI=0,II=null,BI=null;function EI(dI){if(Z.onAbort)Z.onAbort(dI);throw dI="Aborted("+dI+")",c(dI),X=!0,dI=new WebAssembly.RuntimeError(dI+". Build with -sASSERTIONS for more info."),b(dI),dI}function cI(dI){return dI.startsWith("data:application/octet-stream;base64,")}var wI="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!cI(wI)){var yI=wI;wI=Z.locateFile?Z.locateFile(yI,N):N+yI}function OI(){var dI=wI;try{if(dI==wI&&V)return new Uint8Array(V);if(cI(dI))try{var XI=J0(dI.slice(37)),iI=new Uint8Array(XI.length);for(dI=0;dI<XI.length;++dI)iI[dI]=XI.charCodeAt(dI);var lG=iI}catch(SG){throw Error("Converting base64 string to bytes failed.")}else lG=void 0;var HG=lG;if(HG)return HG;throw"both async and sync fetching of the wasm failed"}catch(SG){EI(SG)}}function aI(){return V||typeof fetch!="function"?Promise.resolve().then(function(){return OI()}):fetch(wI,{credentials:"same-origin"}).then(function(dI){if(!dI.ok)throw"failed to load wasm binary file at '"+wI+"'";return dI.arrayBuffer()}).catch(function(){return OI()})}function mG(dI){for(;0<dI.length;)dI.shift()(Z)}function P(dI){if(dI===void 0)return"_unknown";dI=dI.replace(/[^a-zA-Z0-9_]/g,"$");var XI=dI.charCodeAt(0);return 48<=XI&&57>=XI?"_"+dI:dI}function i(dI,XI){return dI=P(dI),function(){return XI.apply(this,arguments)}}var WI=[{},{value:void 0},{value:null},{value:!0},{value:!1}],IG=[];function GG(dI){var XI=Error,iI=i(dI,function(lG){this.name=dI,this.message=lG,lG=Error(lG).stack,lG!==void 0&&(this.stack=this.toString()+`
|
|
561
561
|
`+lG.replace(/^Error(:[^\n]*)?\n/,""))});return iI.prototype=Object.create(XI.prototype),iI.prototype.constructor=iI,iI.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},iI}var NG=void 0;function ZI(dI){throw new NG(dI)}var VI=(dI)=>{return dI||ZI("Cannot use deleted val. handle = "+dI),WI[dI].value},vI=(dI)=>{switch(dI){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var XI=IG.length?IG.pop():WI.length;return WI[XI]={ga:1,value:dI},XI}},uI=void 0,KI=void 0;function kI(dI){for(var XI="";A[dI];)XI+=KI[A[dI++]];return XI}var sI=[];function t(){for(;sI.length;){var dI=sI.pop();dI.M.$=!1,dI.delete()}}var JI=void 0,pI={};function jI(dI,XI){for(XI===void 0&&ZI("ptr should not be undefined");dI.R;)XI=dI.ba(XI),dI=dI.R;return XI}var tI={};function aG(dI){dI=n2(dI);var XI=kI(dI);return CN(dI),XI}function EG(dI,XI){var iI=tI[dI];return iI===void 0&&ZI(XI+" has unknown type "+aG(dI)),iI}function lZ(){}var OZ=!1;function TG(dI){--dI.count.value,dI.count.value===0&&(dI.T?dI.U.W(dI.T):dI.P.N.W(dI.O))}function RG(dI,XI,iI){if(XI===iI)return dI;if(iI.R===void 0)return null;return dI=RG(dI,XI,iI.R),dI===null?null:iI.na(dI)}var AG={};function eG(dI,XI){return XI=jI(dI,XI),pI[XI]}var zZ=void 0;function $G(dI){throw new zZ(dI)}function JG(dI,XI){return XI.P&&XI.O||$G("makeClassHandle requires ptr and ptrType"),!!XI.U!==!!XI.T&&$G("Both smartPtrType and smartPtr must be specified"),XI.count={value:1},uG(Object.create(dI,{M:{value:XI}}))}function uG(dI){if(typeof FinalizationRegistry>"u")return uG=(XI)=>XI,dI;return OZ=new FinalizationRegistry((XI)=>{TG(XI.M)}),uG=(XI)=>{var iI=XI.M;return iI.T&&OZ.register(XI,{M:iI},XI),XI},lZ=(XI)=>{OZ.unregister(XI)},uG(dI)}var iG={};function rG(dI){for(;dI.length;){var XI=dI.pop();dI.pop()(XI)}}function D(dI){return this.fromWireType(a[dI>>2])}var T={},UI={};function PI(dI,XI,iI){function lG(QZ){QZ=iI(QZ),QZ.length!==dI.length&&$G("Mismatched type converter count");for(var vZ=0;vZ<dI.length;++vZ)TI(dI[vZ],QZ[vZ])}dI.forEach(function(QZ){UI[QZ]=XI});var HG=Array(XI.length),SG=[],cZ=0;XI.forEach((QZ,vZ)=>{tI.hasOwnProperty(QZ)?HG[vZ]=tI[QZ]:(SG.push(QZ),T.hasOwnProperty(QZ)||(T[QZ]=[]),T[QZ].push(()=>{HG[vZ]=tI[QZ],++cZ,cZ===SG.length&&lG(HG)}))}),SG.length===0&&lG(HG)}function zI(dI){switch(dI){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+dI)}}function TI(dI,XI,iI={}){if(!("argPackAdvance"in XI))throw TypeError("registerType registeredInstance requires argPackAdvance");var lG=XI.name;if(dI||ZI('type "'+lG+'" must have a positive integer typeid pointer'),tI.hasOwnProperty(dI)){if(iI.ua)return;ZI("Cannot register type '"+lG+"' twice")}tI[dI]=XI,delete UI[dI],T.hasOwnProperty(dI)&&(XI=T[dI],delete T[dI],XI.forEach((HG)=>HG()))}function MG(dI){ZI(dI.M.P.N.name+" instance already deleted")}function CG(){}function BG(dI,XI,iI){if(dI[XI].S===void 0){var lG=dI[XI];dI[XI]=function(){return dI[XI].S.hasOwnProperty(arguments.length)||ZI("Function '"+iI+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+dI[XI].S+")!"),dI[XI].S[arguments.length].apply(this,arguments)},dI[XI].S=[],dI[XI].S[lG.Z]=lG}}function EZ(dI,XI){Z.hasOwnProperty(dI)?(ZI("Cannot register public name '"+dI+"' twice"),BG(Z,dI,dI),Z.hasOwnProperty(void 0)&&ZI("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),Z[dI].S[void 0]=XI):Z[dI]=XI}function El(dI,XI,iI,lG,HG,SG,cZ,QZ){this.name=dI,this.constructor=XI,this.X=iI,this.W=lG,this.R=HG,this.pa=SG,this.ba=cZ,this.na=QZ,this.ja=[]}function eZ(dI,XI,iI){for(;XI!==iI;)XI.ba||ZI("Expected null or instance of "+iI.name+", got an instance of "+XI.name),dI=XI.ba(dI),XI=XI.R;return dI}function Ib(dI,XI){if(XI===null)return this.ea&&ZI("null is not a valid "+this.name),0;return XI.M||ZI('Cannot pass "'+Ac(XI)+'" as a '+this.name),XI.M.O||ZI("Cannot pass deleted object as a pointer of type "+this.name),eZ(XI.M.O,XI.M.P.N,this.N)}function bb(dI,XI){if(XI===null){if(this.ea&&ZI("null is not a valid "+this.name),this.da){var iI=this.fa();return dI!==null&&dI.push(this.W,iI),iI}return 0}if(XI.M||ZI('Cannot pass "'+Ac(XI)+'" as a '+this.name),XI.M.O||ZI("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&XI.M.P.ca&&ZI("Cannot convert argument of type "+(XI.M.U?XI.M.U.name:XI.M.P.name)+" to parameter type "+this.name),iI=eZ(XI.M.O,XI.M.P.N,this.N),this.da)switch(XI.M.T===void 0&&ZI("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:XI.M.U===this?iI=XI.M.T:ZI("Cannot convert argument of type "+(XI.M.U?XI.M.U.name:XI.M.P.name)+" to parameter type "+this.name);break;case 1:iI=XI.M.T;break;case 2:if(XI.M.U===this)iI=XI.M.T;else{var lG=XI.clone();iI=this.xa(iI,vI(function(){lG.delete()})),dI!==null&&dI.push(this.W,iI)}break;default:ZI("Unsupporting sharing policy")}return iI}function vl(dI,XI){if(XI===null)return this.ea&&ZI("null is not a valid "+this.name),0;return XI.M||ZI('Cannot pass "'+Ac(XI)+'" as a '+this.name),XI.M.O||ZI("Cannot pass deleted object as a pointer of type "+this.name),XI.M.P.ca&&ZI("Cannot convert argument of type "+XI.M.P.name+" to parameter type "+this.name),eZ(XI.M.O,XI.M.P.N,this.N)}function kb(dI,XI,iI,lG){this.name=dI,this.N=XI,this.ea=iI,this.ca=lG,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,XI.R!==void 0?this.toWireType=bb:(this.toWireType=lG?Ib:vl,this.V=null)}function cc(dI,XI){Z.hasOwnProperty(dI)||$G("Replacing nonexistant public symbol"),Z[dI]=XI,Z[dI].Z=void 0}function pV(dI,XI){var iI=[];return function(){if(iI.length=0,Object.assign(iI,arguments),dI.includes("j")){var lG=Z["dynCall_"+dI];lG=iI&&iI.length?lG.apply(null,[XI].concat(iI)):lG.call(null,XI)}else lG=lI.get(XI).apply(null,iI);return lG}}function vW(dI,XI){dI=kI(dI);var iI=dI.includes("j")?pV(dI,XI):lI.get(XI);return typeof iI!="function"&&ZI("unknown function pointer with signature "+dI+": "+XI),iI}var qZ=void 0;function Hb(dI,XI){function iI(SG){HG[SG]||tI[SG]||(UI[SG]?UI[SG].forEach(iI):(lG.push(SG),HG[SG]=!0))}var lG=[],HG={};throw XI.forEach(iI),new qZ(dI+": "+lG.map(aG).join([", "]))}function Mc(dI,XI,iI,lG,HG){var SG=XI.length;2>SG&&ZI("argTypes array size mismatch! Must at least get return value and 'this' types!");var cZ=XI[1]!==null&&iI!==null,QZ=!1;for(iI=1;iI<XI.length;++iI)if(XI[iI]!==null&&XI[iI].V===void 0){QZ=!0;break}var vZ=XI[0].name!=="void",RZ=SG-2,BZ=Array(RZ),Gl=[],Tb=[];return function(){if(arguments.length!==RZ&&ZI("function "+dI+" called with "+arguments.length+" arguments, expected "+RZ+" args!"),Tb.length=0,Gl.length=cZ?2:1,Gl[0]=HG,cZ){var ob=XI[1].toWireType(Tb,this);Gl[1]=ob}for(var HW=0;HW<RZ;++HW)BZ[HW]=XI[HW+2].toWireType(Tb,arguments[HW]),Gl.push(BZ[HW]);if(HW=lG.apply(null,Gl),QZ)rG(Tb);else for(var PW=cZ?1:2;PW<XI.length;PW++){var YY=PW===1?ob:BZ[PW-2];XI[PW].V!==null&&XI[PW].V(YY)}return ob=vZ?XI[0].fromWireType(HW):void 0,ob}}function UY(dI,XI){for(var iI=[],lG=0;lG<dI;lG++)iI.push(B[XI+4*lG>>2]);return iI}function Ub(dI){4<dI&&--WI[dI].ga===0&&(WI[dI]=void 0,IG.push(dI))}function Ac(dI){if(dI===null)return"null";var XI=typeof dI;return XI==="object"||XI==="array"||XI==="function"?dI.toString():""+dI}function rc(dI,XI){switch(XI){case 2:return function(iI){return this.fromWireType(U[iI>>2])};case 3:return function(iI){return this.fromWireType(q[iI>>3])};default:throw TypeError("Unknown float type: "+dI)}}function yV(dI,XI,iI){switch(XI){case 0:return iI?function(lG){return w[lG]}:function(lG){return A[lG]};case 1:return iI?function(lG){return y[lG>>1]}:function(lG){return g[lG>>1]};case 2:return iI?function(lG){return a[lG>>2]}:function(lG){return B[lG>>2]};default:throw TypeError("Unknown integer type: "+dI)}}function H0(dI,XI){for(var iI="",lG=0;!(lG>=XI/2);++lG){var HG=y[dI+2*lG>>1];if(HG==0)break;iI+=String.fromCharCode(HG)}return iI}function Y2(dI,XI,iI){if(iI===void 0&&(iI=2147483647),2>iI)return 0;iI-=2;var lG=XI;iI=iI<2*dI.length?iI/2:dI.length;for(var HG=0;HG<iI;++HG)y[XI>>1]=dI.charCodeAt(HG),XI+=2;return y[XI>>1]=0,XI-lG}function D2(dI){return 2*dI.length}function rV(dI,XI){for(var iI=0,lG="";!(iI>=XI/4);){var HG=a[dI+4*iI>>2];if(HG==0)break;++iI,65536<=HG?(HG-=65536,lG+=String.fromCharCode(55296|HG>>10,56320|HG&1023)):lG+=String.fromCharCode(HG)}return lG}function uV(dI,XI,iI){if(iI===void 0&&(iI=2147483647),4>iI)return 0;var lG=XI;iI=lG+iI-4;for(var HG=0;HG<dI.length;++HG){var SG=dI.charCodeAt(HG);if(55296<=SG&&57343>=SG){var cZ=dI.charCodeAt(++HG);SG=65536+((SG&1023)<<10)|cZ&1023}if(a[XI>>2]=SG,XI+=4,XI+4>iI)break}return a[XI>>2]=0,XI-lG}function cX(dI){for(var XI=0,iI=0;iI<dI.length;++iI){var lG=dI.charCodeAt(iI);55296<=lG&&57343>=lG&&++iI,XI+=4}return XI}var h0={};function lQ(dI){var XI=h0[dI];return XI===void 0?kI(dI):XI}var w0=[];function Im(dI){var XI=w0.length;return w0.push(dI),XI}function Gm(dI,XI){for(var iI=Array(dI),lG=0;lG<dI;++lG)iI[lG]=EG(B[XI+4*lG>>2],"parameter "+lG);return iI}var Zm=[],_Y=[null,[],[]];NG=Z.BindingError=GG("BindingError"),Z.count_emval_handles=function(){for(var dI=0,XI=5;XI<WI.length;++XI)WI[XI]!==void 0&&++dI;return dI},Z.get_first_emval=function(){for(var dI=5;dI<WI.length;++dI)if(WI[dI]!==void 0)return WI[dI];return null},uI=Z.PureVirtualError=GG("PureVirtualError");for(var bQ=Array(256),c2=0;256>c2;++c2)bQ[c2]=String.fromCharCode(c2);KI=bQ,Z.getInheritedInstanceCount=function(){return Object.keys(pI).length},Z.getLiveInheritedInstances=function(){var dI=[],XI;for(XI in pI)pI.hasOwnProperty(XI)&&dI.push(pI[XI]);return dI},Z.flushPendingDeletes=t,Z.setDelayFunction=function(dI){JI=dI,sI.length&&JI&&JI(t)},zZ=Z.InternalError=GG("InternalError"),CG.prototype.isAliasOf=function(dI){if(!(this instanceof CG&&dI instanceof CG))return!1;var XI=this.M.P.N,iI=this.M.O,lG=dI.M.P.N;for(dI=dI.M.O;XI.R;)iI=XI.ba(iI),XI=XI.R;for(;lG.R;)dI=lG.ba(dI),lG=lG.R;return XI===lG&&iI===dI},CG.prototype.clone=function(){if(this.M.O||MG(this),this.M.aa)return this.M.count.value+=1,this;var dI=uG,XI=Object,iI=XI.create,lG=Object.getPrototypeOf(this),HG=this.M;return dI=dI(iI.call(XI,lG,{M:{value:{count:HG.count,$:HG.$,aa:HG.aa,O:HG.O,P:HG.P,T:HG.T,U:HG.U}}})),dI.M.count.value+=1,dI.M.$=!1,dI},CG.prototype.delete=function(){this.M.O||MG(this),this.M.$&&!this.M.aa&&ZI("Object already scheduled for deletion"),lZ(this),TG(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},CG.prototype.isDeleted=function(){return!this.M.O},CG.prototype.deleteLater=function(){return this.M.O||MG(this),this.M.$&&!this.M.aa&&ZI("Object already scheduled for deletion"),sI.push(this),sI.length===1&&JI&&JI(t),this.M.$=!0,this},kb.prototype.qa=function(dI){return this.ka&&(dI=this.ka(dI)),dI},kb.prototype.ha=function(dI){this.W&&this.W(dI)},kb.prototype.argPackAdvance=8,kb.prototype.readValueFromPointer=D,kb.prototype.deleteObject=function(dI){if(dI!==null)dI.delete()},kb.prototype.fromWireType=function(dI){function XI(){return this.da?JG(this.N.X,{P:this.wa,O:iI,U:this,T:dI}):JG(this.N.X,{P:this,O:dI})}var iI=this.qa(dI);if(!iI)return this.ha(dI),null;var lG=eG(this.N,iI);if(lG!==void 0){if(lG.M.count.value===0)return lG.M.O=iI,lG.M.T=dI,lG.clone();return lG=lG.clone(),this.ha(dI),lG}if(lG=this.N.pa(iI),lG=AG[lG],!lG)return XI.call(this);lG=this.ca?lG.la:lG.pointerType;var HG=RG(iI,this.N,lG.N);return HG===null?XI.call(this):this.da?JG(lG.N.X,{P:lG,O:HG,U:this,T:dI}):JG(lG.N.X,{P:lG,O:HG})},qZ=Z.UnboundTypeError=GG("UnboundTypeError");var J0=typeof atob=="function"?atob:function(dI){var XI="",iI=0;dI=dI.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var lG="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(dI.charAt(iI++)),HG="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(dI.charAt(iI++)),SG="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(dI.charAt(iI++)),cZ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(dI.charAt(iI++));lG=lG<<2|HG>>4,HG=(HG&15)<<4|SG>>2;var QZ=(SG&3)<<6|cZ;XI+=String.fromCharCode(lG),SG!==64&&(XI+=String.fromCharCode(HG)),cZ!==64&&(XI+=String.fromCharCode(QZ))}while(iI<dI.length);return XI},iN={l:function(dI,XI,iI,lG){EI("Assertion failed: "+(dI?R(A,dI):"")+", at: "+[XI?XI?R(A,XI):"":"unknown filename",iI,lG?lG?R(A,lG):"":"unknown function"])},q:function(dI,XI,iI){dI=kI(dI),XI=EG(XI,"wrapper"),iI=VI(iI);var lG=[].slice,HG=XI.N,SG=HG.X,cZ=HG.R.X,QZ=HG.R.constructor;dI=i(dI,function(){HG.R.ja.forEach(function(RZ){if(this[RZ]===cZ[RZ])throw new uI("Pure virtual function "+RZ+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:SG}),this.__construct.apply(this,lG.call(arguments))}),SG.__construct=function(){this===SG&&ZI("Pass correct 'this' to __construct");var RZ=QZ.implement.apply(void 0,[this].concat(lG.call(arguments)));lZ(RZ);var BZ=RZ.M;RZ.notifyOnDestruction(),BZ.aa=!0,Object.defineProperties(this,{M:{value:BZ}}),uG(this),RZ=BZ.O,RZ=jI(HG,RZ),pI.hasOwnProperty(RZ)?ZI("Tried to register registered instance: "+RZ):pI[RZ]=this},SG.__destruct=function(){this===SG&&ZI("Pass correct 'this' to __destruct"),lZ(this);var RZ=this.M.O;RZ=jI(HG,RZ),pI.hasOwnProperty(RZ)?delete pI[RZ]:ZI("Tried to unregister unregistered instance: "+RZ)},dI.prototype=Object.create(SG);for(var vZ in iI)dI.prototype[vZ]=iI[vZ];return vI(dI)},j:function(dI){var XI=iG[dI];delete iG[dI];var{fa:iI,W:lG,ia:HG}=XI,SG=HG.map((cZ)=>cZ.ta).concat(HG.map((cZ)=>cZ.za));PI([dI],SG,(cZ)=>{var QZ={};return HG.forEach((vZ,RZ)=>{var BZ=cZ[RZ],Gl=vZ.ra,Tb=vZ.sa,ob=cZ[RZ+HG.length],HW=vZ.ya,PW=vZ.Aa;QZ[vZ.oa]={read:(YY)=>BZ.fromWireType(Gl(Tb,YY)),write:(YY,Kc)=>{var ON=[];HW(PW,YY,ob.toWireType(ON,Kc)),rG(ON)}}}),[{name:XI.name,fromWireType:function(vZ){var RZ={},BZ;for(BZ in QZ)RZ[BZ]=QZ[BZ].read(vZ);return lG(vZ),RZ},toWireType:function(vZ,RZ){for(var BZ in QZ)if(!(BZ in RZ))throw TypeError('Missing field: "'+BZ+'"');var Gl=iI();for(BZ in QZ)QZ[BZ].write(Gl,RZ[BZ]);return vZ!==null&&vZ.push(lG,Gl),Gl},argPackAdvance:8,readValueFromPointer:D,V:lG}]})},v:function(){},B:function(dI,XI,iI,lG,HG){var SG=zI(iI);XI=kI(XI),TI(dI,{name:XI,fromWireType:function(cZ){return!!cZ},toWireType:function(cZ,QZ){return QZ?lG:HG},argPackAdvance:8,readValueFromPointer:function(cZ){if(iI===1)var QZ=w;else if(iI===2)QZ=y;else if(iI===4)QZ=a;else throw TypeError("Unknown boolean type size: "+XI);return this.fromWireType(QZ[cZ>>SG])},V:null})},f:function(dI,XI,iI,lG,HG,SG,cZ,QZ,vZ,RZ,BZ,Gl,Tb){BZ=kI(BZ),SG=vW(HG,SG),QZ&&(QZ=vW(cZ,QZ)),RZ&&(RZ=vW(vZ,RZ)),Tb=vW(Gl,Tb);var ob=P(BZ);EZ(ob,function(){Hb("Cannot construct "+BZ+" due to unbound types",[lG])}),PI([dI,XI,iI],lG?[lG]:[],function(HW){if(HW=HW[0],lG)var PW=HW.N,YY=PW.X;else YY=CG.prototype;HW=i(ob,function(){if(Object.getPrototypeOf(this)!==Kc)throw new NG("Use 'new' to construct "+BZ);if(ON.Y===void 0)throw new NG(BZ+" has no accessible constructor");var Ud=ON.Y[arguments.length];if(Ud===void 0)throw new NG("Tried to invoke ctor of "+BZ+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(ON.Y).toString()+") parameters instead!");return Ud.apply(this,arguments)});var Kc=Object.create(YY,{constructor:{value:HW}});HW.prototype=Kc;var ON=new El(BZ,HW,Kc,Tb,PW,SG,QZ,RZ);PW=new kb(BZ,ON,!0,!1),YY=new kb(BZ+"*",ON,!1,!1);var eV=new kb(BZ+" const*",ON,!1,!0);return AG[dI]={pointerType:YY,la:eV},cc(ob,HW),[PW,YY,eV]})},d:function(dI,XI,iI,lG,HG,SG,cZ){var QZ=UY(iI,lG);XI=kI(XI),SG=vW(HG,SG),PI([],[dI],function(vZ){function RZ(){Hb("Cannot call "+BZ+" due to unbound types",QZ)}vZ=vZ[0];var BZ=vZ.name+"."+XI;XI.startsWith("@@")&&(XI=Symbol[XI.substring(2)]);var Gl=vZ.N.constructor;return Gl[XI]===void 0?(RZ.Z=iI-1,Gl[XI]=RZ):(BG(Gl,XI,BZ),Gl[XI].S[iI-1]=RZ),PI([],QZ,function(Tb){return Tb=Mc(BZ,[Tb[0],null].concat(Tb.slice(1)),null,SG,cZ),Gl[XI].S===void 0?(Tb.Z=iI-1,Gl[XI]=Tb):Gl[XI].S[iI-1]=Tb,[]}),[]})},p:function(dI,XI,iI,lG,HG,SG){0<XI||EI();var cZ=UY(XI,iI);HG=vW(lG,HG),PI([],[dI],function(QZ){QZ=QZ[0];var vZ="constructor "+QZ.name;if(QZ.N.Y===void 0&&(QZ.N.Y=[]),QZ.N.Y[XI-1]!==void 0)throw new NG("Cannot register multiple constructors with identical number of parameters ("+(XI-1)+") for class '"+QZ.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return QZ.N.Y[XI-1]=()=>{Hb("Cannot construct "+QZ.name+" due to unbound types",cZ)},PI([],cZ,function(RZ){return RZ.splice(1,0,null),QZ.N.Y[XI-1]=Mc(vZ,RZ,null,HG,SG),[]}),[]})},a:function(dI,XI,iI,lG,HG,SG,cZ,QZ){var vZ=UY(iI,lG);XI=kI(XI),SG=vW(HG,SG),PI([],[dI],function(RZ){function BZ(){Hb("Cannot call "+Gl+" due to unbound types",vZ)}RZ=RZ[0];var Gl=RZ.name+"."+XI;XI.startsWith("@@")&&(XI=Symbol[XI.substring(2)]),QZ&&RZ.N.ja.push(XI);var Tb=RZ.N.X,ob=Tb[XI];return ob===void 0||ob.S===void 0&&ob.className!==RZ.name&&ob.Z===iI-2?(BZ.Z=iI-2,BZ.className=RZ.name,Tb[XI]=BZ):(BG(Tb,XI,Gl),Tb[XI].S[iI-2]=BZ),PI([],vZ,function(HW){return HW=Mc(Gl,HW,RZ,SG,cZ),Tb[XI].S===void 0?(HW.Z=iI-2,Tb[XI]=HW):Tb[XI].S[iI-2]=HW,[]}),[]})},A:function(dI,XI){XI=kI(XI),TI(dI,{name:XI,fromWireType:function(iI){var lG=VI(iI);return Ub(iI),lG},toWireType:function(iI,lG){return vI(lG)},argPackAdvance:8,readValueFromPointer:D,V:null})},n:function(dI,XI,iI){iI=zI(iI),XI=kI(XI),TI(dI,{name:XI,fromWireType:function(lG){return lG},toWireType:function(lG,HG){return HG},argPackAdvance:8,readValueFromPointer:rc(XI,iI),V:null})},e:function(dI,XI,iI,lG,HG){XI=kI(XI),HG===-1&&(HG=4294967295),HG=zI(iI);var SG=(QZ)=>QZ;if(lG===0){var cZ=32-8*iI;SG=(QZ)=>QZ<<cZ>>>cZ}iI=XI.includes("unsigned")?function(QZ,vZ){return vZ>>>0}:function(QZ,vZ){return vZ},TI(dI,{name:XI,fromWireType:SG,toWireType:iI,argPackAdvance:8,readValueFromPointer:yV(XI,HG,lG!==0),V:null})},b:function(dI,XI,iI){function lG(SG){SG>>=2;var cZ=B;return new HG(H,cZ[SG+1],cZ[SG])}var HG=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][XI];iI=kI(iI),TI(dI,{name:iI,fromWireType:lG,argPackAdvance:8,readValueFromPointer:lG},{ua:!0})},o:function(dI,XI){XI=kI(XI);var iI=XI==="std::string";TI(dI,{name:XI,fromWireType:function(lG){var HG=B[lG>>2],SG=lG+4;if(iI)for(var cZ=SG,QZ=0;QZ<=HG;++QZ){var vZ=SG+QZ;if(QZ==HG||A[vZ]==0){if(cZ=cZ?R(A,cZ,vZ-cZ):"",RZ===void 0)var RZ=cZ;else RZ+=String.fromCharCode(0),RZ+=cZ;cZ=vZ+1}}else{RZ=Array(HG);for(QZ=0;QZ<HG;++QZ)RZ[QZ]=String.fromCharCode(A[SG+QZ]);RZ=RZ.join("")}return CN(lG),RZ},toWireType:function(lG,HG){HG instanceof ArrayBuffer&&(HG=new Uint8Array(HG));var SG,cZ=typeof HG=="string";if(cZ||HG instanceof Uint8Array||HG instanceof Uint8ClampedArray||HG instanceof Int8Array||ZI("Cannot pass non-string to std::string"),iI&&cZ){var QZ=0;for(SG=0;SG<HG.length;++SG){var vZ=HG.charCodeAt(SG);127>=vZ?QZ++:2047>=vZ?QZ+=2:55296<=vZ&&57343>=vZ?(QZ+=4,++SG):QZ+=3}SG=QZ}else SG=HG.length;if(QZ=V2(4+SG+1),vZ=QZ+4,B[QZ>>2]=SG,iI&&cZ){if(cZ=vZ,vZ=SG+1,SG=A,0<vZ){vZ=cZ+vZ-1;for(var RZ=0;RZ<HG.length;++RZ){var BZ=HG.charCodeAt(RZ);if(55296<=BZ&&57343>=BZ){var Gl=HG.charCodeAt(++RZ);BZ=65536+((BZ&1023)<<10)|Gl&1023}if(127>=BZ){if(cZ>=vZ)break;SG[cZ++]=BZ}else{if(2047>=BZ){if(cZ+1>=vZ)break;SG[cZ++]=192|BZ>>6}else{if(65535>=BZ){if(cZ+2>=vZ)break;SG[cZ++]=224|BZ>>12}else{if(cZ+3>=vZ)break;SG[cZ++]=240|BZ>>18,SG[cZ++]=128|BZ>>12&63}SG[cZ++]=128|BZ>>6&63}SG[cZ++]=128|BZ&63}}SG[cZ]=0}}else if(cZ)for(cZ=0;cZ<SG;++cZ)RZ=HG.charCodeAt(cZ),255<RZ&&(CN(vZ),ZI("String has UTF-16 code units that do not fit in 8 bits")),A[vZ+cZ]=RZ;else for(cZ=0;cZ<SG;++cZ)A[vZ+cZ]=HG[cZ];return lG!==null&&lG.push(CN,QZ),QZ},argPackAdvance:8,readValueFromPointer:D,V:function(lG){CN(lG)}})},i:function(dI,XI,iI){if(iI=kI(iI),XI===2)var lG=H0,HG=Y2,SG=D2,cZ=()=>g,QZ=1;else XI===4&&(lG=rV,HG=uV,SG=cX,cZ=()=>B,QZ=2);TI(dI,{name:iI,fromWireType:function(vZ){for(var RZ=B[vZ>>2],BZ=cZ(),Gl,Tb=vZ+4,ob=0;ob<=RZ;++ob){var HW=vZ+4+ob*XI;if(ob==RZ||BZ[HW>>QZ]==0)Tb=lG(Tb,HW-Tb),Gl===void 0?Gl=Tb:(Gl+=String.fromCharCode(0),Gl+=Tb),Tb=HW+XI}return CN(vZ),Gl},toWireType:function(vZ,RZ){typeof RZ!="string"&&ZI("Cannot pass non-string to C++ string type "+iI);var BZ=SG(RZ),Gl=V2(4+BZ+XI);return B[Gl>>2]=BZ>>QZ,HG(RZ,Gl+4,BZ+XI),vZ!==null&&vZ.push(CN,Gl),Gl},argPackAdvance:8,readValueFromPointer:D,V:function(vZ){CN(vZ)}})},k:function(dI,XI,iI,lG,HG,SG){iG[dI]={name:kI(XI),fa:vW(iI,lG),W:vW(HG,SG),ia:[]}},h:function(dI,XI,iI,lG,HG,SG,cZ,QZ,vZ,RZ){iG[dI].ia.push({oa:kI(XI),ta:iI,ra:vW(lG,HG),sa:SG,za:cZ,ya:vW(QZ,vZ),Aa:RZ})},C:function(dI,XI){XI=kI(XI),TI(dI,{va:!0,name:XI,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(dI,XI,iI,lG,HG){dI=w0[dI],XI=VI(XI),iI=lQ(iI);var SG=[];return B[lG>>2]=vI(SG),dI(XI,iI,SG,HG)},t:function(dI,XI,iI,lG){dI=w0[dI],XI=VI(XI),iI=lQ(iI),dI(XI,iI,null,lG)},g:Ub,m:function(dI,XI){var iI=Gm(dI,XI),lG=iI[0];XI=lG.name+"_$"+iI.slice(1).map(function(cZ){return cZ.name}).join("_")+"$";var HG=Zm[XI];if(HG!==void 0)return HG;var SG=Array(dI-1);return HG=Im((cZ,QZ,vZ,RZ)=>{for(var BZ=0,Gl=0;Gl<dI-1;++Gl)SG[Gl]=iI[Gl+1].readValueFromPointer(RZ+BZ),BZ+=iI[Gl+1].argPackAdvance;cZ=cZ[QZ].apply(cZ,SG);for(Gl=0;Gl<dI-1;++Gl)iI[Gl+1].ma&&iI[Gl+1].ma(SG[Gl]);if(!lG.va)return lG.toWireType(vZ,cZ)}),Zm[XI]=HG},D:function(dI){4<dI&&(WI[dI].ga+=1)},r:function(dI){var XI=VI(dI);rG(XI),Ub(dI)},c:function(){EI("")},x:function(dI,XI,iI){A.copyWithin(dI,XI,XI+iI)},w:function(dI){var XI=A.length;if(dI>>>=0,2147483648<dI)return!1;for(var iI=1;4>=iI;iI*=2){var lG=XI*(1+0.2/iI);lG=Math.min(lG,dI+100663296);var HG=Math;lG=Math.max(dI,lG),HG=HG.min.call(HG,2147483648,lG+(65536-lG%65536)%65536);I:{try{m.grow(HG-H.byteLength+65535>>>16),$();var SG=1;break I}catch(cZ){}SG=void 0}if(SG)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(dI,XI,iI,lG){for(var HG=0,SG=0;SG<iI;SG++){var cZ=B[XI>>2],QZ=B[XI+4>>2];XI+=8;for(var vZ=0;vZ<QZ;vZ++){var RZ=A[cZ+vZ],BZ=_Y[dI];RZ===0||RZ===10?((dI===1?Y:c)(R(BZ,0)),BZ.length=0):BZ.push(RZ)}HG+=QZ}return B[lG>>2]=HG,0}};(function(){function dI(HG){Z.asm=HG.exports,m=Z.asm.E,$(),lI=Z.asm.J,LI.unshift(Z.asm.F),gI--,Z.monitorRunDependencies&&Z.monitorRunDependencies(gI),gI==0&&(II!==null&&(clearInterval(II),II=null),BI&&(HG=BI,BI=null,HG()))}function XI(HG){dI(HG.instance)}function iI(HG){return aI().then(function(SG){return WebAssembly.instantiate(SG,lG)}).then(function(SG){return SG}).then(HG,function(SG){c("failed to asynchronously prepare wasm: "+SG),EI(SG)})}var lG={a:iN};if(gI++,Z.monitorRunDependencies&&Z.monitorRunDependencies(gI),Z.instantiateWasm)try{return Z.instantiateWasm(lG,dI)}catch(HG){c("Module.instantiateWasm callback failed with error: "+HG),b(HG)}return function(){return V||typeof WebAssembly.instantiateStreaming!="function"||cI(wI)||typeof fetch!="function"?iI(XI):fetch(wI,{credentials:"same-origin"}).then(function(HG){return WebAssembly.instantiateStreaming(HG,lG).then(XI,function(SG){return c("wasm streaming compile failed: "+SG),c("falling back to ArrayBuffer instantiation"),iI(XI)})})}().catch(b),{}})(),Z.___wasm_call_ctors=function(){return(Z.___wasm_call_ctors=Z.asm.F).apply(null,arguments)};var n2=Z.___getTypeName=function(){return(n2=Z.___getTypeName=Z.asm.G).apply(null,arguments)};Z.__embind_initialize_bindings=function(){return(Z.__embind_initialize_bindings=Z.asm.H).apply(null,arguments)};var V2=Z._malloc=function(){return(V2=Z._malloc=Z.asm.I).apply(null,arguments)},CN=Z._free=function(){return(CN=Z._free=Z.asm.K).apply(null,arguments)};Z.dynCall_jiji=function(){return(Z.dynCall_jiji=Z.asm.L).apply(null,arguments)};var kd;BI=function dI(){kd||Ec(),kd||(BI=dI)};function Ec(){function dI(){if(!kd&&(kd=!0,Z.calledRun=!0,!X)){if(mG(LI),l(Z),Z.onRuntimeInitialized)Z.onRuntimeInitialized();if(Z.postRun)for(typeof Z.postRun=="function"&&(Z.postRun=[Z.postRun]);Z.postRun.length;){var XI=Z.postRun.shift();mI.unshift(XI)}mG(mI)}}if(!(0<gI)){if(Z.preRun)for(typeof Z.preRun=="function"&&(Z.preRun=[Z.preRun]);Z.preRun.length;)ZG();mG(o),0<gI||(Z.setStatus?(Z.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Z.setStatus("")},1),dI()},1)):dI())}}if(Z.preInit)for(typeof Z.preInit=="function"&&(Z.preInit=[Z.preInit]);0<Z.preInit.length;)Z.preInit.pop()();return Ec(),G.ready}})(),NzG=hbb;var Rv=function(I){return I[I.Auto=0]="Auto",I[I.FlexStart=1]="FlexStart",I[I.Center=2]="Center",I[I.FlexEnd=3]="FlexEnd",I[I.Stretch=4]="Stretch",I[I.Baseline=5]="Baseline",I[I.SpaceBetween=6]="SpaceBetween",I[I.SpaceAround=7]="SpaceAround",I[I.SpaceEvenly=8]="SpaceEvenly",I}({}),YzG=function(I){return I[I.BorderBox=0]="BorderBox",I[I.ContentBox=1]="ContentBox",I}({}),czG=function(I){return I[I.Width=0]="Width",I[I.Height=1]="Height",I}({}),XT=function(I){return I[I.Inherit=0]="Inherit",I[I.LTR=1]="LTR",I[I.RTL=2]="RTL",I}({}),pEI=function(I){return I[I.Flex=0]="Flex",I[I.None=1]="None",I[I.Contents=2]="Contents",I}({}),Hv=function(I){return I[I.Left=0]="Left",I[I.Top=1]="Top",I[I.Right=2]="Right",I[I.Bottom=3]="Bottom",I[I.Start=4]="Start",I[I.End=5]="End",I[I.Horizontal=6]="Horizontal",I[I.Vertical=7]="Vertical",I[I.All=8]="All",I}({}),DO=function(I){return I[I.None=0]="None",I[I.StretchFlexBasis=1]="StretchFlexBasis",I[I.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",I[I.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",I[I.All=2147483647]="All",I[I.Classic=2147483646]="Classic",I}({}),wbb=function(I){return I[I.WebFlexBasis=0]="WebFlexBasis",I}({}),_GI=function(I){return I[I.Column=0]="Column",I[I.ColumnReverse=1]="ColumnReverse",I[I.Row=2]="Row",I[I.RowReverse=3]="RowReverse",I}({}),yEI=function(I){return I[I.Column=0]="Column",I[I.Row=1]="Row",I[I.All=2]="All",I}({}),nO=function(I){return I[I.FlexStart=0]="FlexStart",I[I.Center=1]="Center",I[I.FlexEnd=2]="FlexEnd",I[I.SpaceBetween=3]="SpaceBetween",I[I.SpaceAround=4]="SpaceAround",I[I.SpaceEvenly=5]="SpaceEvenly",I}({}),jO=function(I){return I[I.Error=0]="Error",I[I.Warn=1]="Warn",I[I.Info=2]="Info",I[I.Debug=3]="Debug",I[I.Verbose=4]="Verbose",I[I.Fatal=5]="Fatal",I}({}),uEI=function(I){return I[I.Undefined=0]="Undefined",I[I.Exactly=1]="Exactly",I[I.AtMost=2]="AtMost",I}({}),VzG=function(I){return I[I.Default=0]="Default",I[I.Text=1]="Text",I}({}),LEI=function(I){return I[I.Visible=0]="Visible",I[I.Hidden=1]="Hidden",I[I.Scroll=2]="Scroll",I}({}),gEI=function(I){return I[I.Static=0]="Static",I[I.Relative=1]="Relative",I[I.Absolute=2]="Absolute",I}({}),iw=function(I){return I[I.Undefined=0]="Undefined",I[I.Point=1]="Point",I[I.Percent=2]="Percent",I[I.Auto=3]="Auto",I}({}),aEI=function(I){return I[I.NoWrap=0]="NoWrap",I[I.Wrap=1]="Wrap",I[I.WrapReverse=2]="WrapReverse",I}({}),Jbb={ALIGN_AUTO:Rv.Auto,ALIGN_FLEX_START:Rv.FlexStart,ALIGN_CENTER:Rv.Center,ALIGN_FLEX_END:Rv.FlexEnd,ALIGN_STRETCH:Rv.Stretch,ALIGN_BASELINE:Rv.Baseline,ALIGN_SPACE_BETWEEN:Rv.SpaceBetween,ALIGN_SPACE_AROUND:Rv.SpaceAround,ALIGN_SPACE_EVENLY:Rv.SpaceEvenly,BOX_SIZING_BORDER_BOX:YzG.BorderBox,BOX_SIZING_CONTENT_BOX:YzG.ContentBox,DIMENSION_WIDTH:czG.Width,DIMENSION_HEIGHT:czG.Height,DIRECTION_INHERIT:XT.Inherit,DIRECTION_LTR:XT.LTR,DIRECTION_RTL:XT.RTL,DISPLAY_FLEX:pEI.Flex,DISPLAY_NONE:pEI.None,DISPLAY_CONTENTS:pEI.Contents,EDGE_LEFT:Hv.Left,EDGE_TOP:Hv.Top,EDGE_RIGHT:Hv.Right,EDGE_BOTTOM:Hv.Bottom,EDGE_START:Hv.Start,EDGE_END:Hv.End,EDGE_HORIZONTAL:Hv.Horizontal,EDGE_VERTICAL:Hv.Vertical,EDGE_ALL:Hv.All,ERRATA_NONE:DO.None,ERRATA_STRETCH_FLEX_BASIS:DO.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:DO.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:DO.AbsolutePercentAgainstInnerSize,ERRATA_ALL:DO.All,ERRATA_CLASSIC:DO.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:wbb.WebFlexBasis,FLEX_DIRECTION_COLUMN:_GI.Column,FLEX_DIRECTION_COLUMN_REVERSE:_GI.ColumnReverse,FLEX_DIRECTION_ROW:_GI.Row,FLEX_DIRECTION_ROW_REVERSE:_GI.RowReverse,GUTTER_COLUMN:yEI.Column,GUTTER_ROW:yEI.Row,GUTTER_ALL:yEI.All,JUSTIFY_FLEX_START:nO.FlexStart,JUSTIFY_CENTER:nO.Center,JUSTIFY_FLEX_END:nO.FlexEnd,JUSTIFY_SPACE_BETWEEN:nO.SpaceBetween,JUSTIFY_SPACE_AROUND:nO.SpaceAround,JUSTIFY_SPACE_EVENLY:nO.SpaceEvenly,LOG_LEVEL_ERROR:jO.Error,LOG_LEVEL_WARN:jO.Warn,LOG_LEVEL_INFO:jO.Info,LOG_LEVEL_DEBUG:jO.Debug,LOG_LEVEL_VERBOSE:jO.Verbose,LOG_LEVEL_FATAL:jO.Fatal,MEASURE_MODE_UNDEFINED:uEI.Undefined,MEASURE_MODE_EXACTLY:uEI.Exactly,MEASURE_MODE_AT_MOST:uEI.AtMost,NODE_TYPE_DEFAULT:VzG.Default,NODE_TYPE_TEXT:VzG.Text,OVERFLOW_VISIBLE:LEI.Visible,OVERFLOW_HIDDEN:LEI.Hidden,OVERFLOW_SCROLL:LEI.Scroll,POSITION_TYPE_STATIC:gEI.Static,POSITION_TYPE_RELATIVE:gEI.Relative,POSITION_TYPE_ABSOLUTE:gEI.Absolute,UNIT_UNDEFINED:iw.Undefined,UNIT_POINT:iw.Point,UNIT_PERCENT:iw.Percent,UNIT_AUTO:iw.Auto,WRAP_NO_WRAP:aEI.NoWrap,WRAP_WRAP:aEI.Wrap,WRAP_WRAP_REVERSE:aEI.WrapReverse},dzG=Jbb;function zEI(I){function G(b,W,N){let Y=b[W];b[W]=function(){for(var c=arguments.length,V=Array(c),d=0;d<c;d++)V[d]=arguments[d];return N.call(this,Y,...V)}}for(let b of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let W={[iw.Point]:I.Node.prototype[b],[iw.Percent]:I.Node.prototype[`${b}Percent`],[iw.Auto]:I.Node.prototype[`${b}Auto`]};G(I.Node.prototype,b,function(N){for(var Y=arguments.length,c=Array(Y>1?Y-1:0),V=1;V<Y;V++)c[V-1]=arguments[V];let d=c.pop(),m,X;if(d==="auto")m=iw.Auto,X=void 0;else if(typeof d==="object")m=d.unit,X=d.valueOf();else if(m=typeof d==="string"&&d.endsWith("%")?iw.Percent:iw.Point,X=parseFloat(d),d!==void 0&&!Number.isNaN(d)&&Number.isNaN(X))throw Error(`Invalid value ${d} for ${b}`);if(!W[m])throw Error(`Failed to execute "${b}": Unsupported unit '${d}'`);if(X!==void 0)return W[m].call(this,...c,X);else return W[m].call(this,...c)})}function Z(b){return I.MeasureCallback.implement({measure:function(){let{width:W,height:N}=b(...arguments);return{width:W??NaN,height:N??NaN}}})}G(I.Node.prototype,"setMeasureFunc",function(b,W){if(W)return b.call(this,Z(W));else return this.unsetMeasureFunc()});function l(b){return I.DirtiedCallback.implement({dirtied:b})}return G(I.Node.prototype,"setDirtiedFunc",function(b,W){b.call(this,l(W))}),G(I.Config.prototype,"free",function(){I.Config.destroy(this)}),G(I.Node,"create",(b,W)=>{return W?I.Node.createWithConfig(W):I.Node.createDefault()}),G(I.Node.prototype,"free",function(){I.Node.destroy(this)}),G(I.Node.prototype,"freeRecursive",function(){for(let b=0,W=this.getChildCount();b<W;++b)this.getChild(0).freeRecursive();this.free()}),G(I.Node.prototype,"calculateLayout",function(b){let W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,Y=arguments.length>3&&arguments[3]!==void 0?arguments[3]:XT.LTR;return b.call(this,W,N,Y)}),{Config:I.Config,Node:I.Node,...dzG}}var Abb=zEI(await NzG()),Ml=Abb;var PBG=hI(XzG(),1),_BG=hI(FzG(),1);import ANb from"node:process";function kEI({onlyFirst:I=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",I?void 0:"g")}var Cbb=kEI();function FT(I){if(typeof I!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof I}\``);return I.replace(Cbb,"")}function RzG(I){return I===161||I===164||I===167||I===168||I===170||I===173||I===174||I>=176&&I<=180||I>=182&&I<=186||I>=188&&I<=191||I===198||I===208||I===215||I===216||I>=222&&I<=225||I===230||I>=232&&I<=234||I===236||I===237||I===240||I===242||I===243||I>=247&&I<=250||I===252||I===254||I===257||I===273||I===275||I===283||I===294||I===295||I===299||I>=305&&I<=307||I===312||I>=319&&I<=322||I===324||I>=328&&I<=331||I===333||I===338||I===339||I===358||I===359||I===363||I===462||I===464||I===466||I===468||I===470||I===472||I===474||I===476||I===593||I===609||I===708||I===711||I>=713&&I<=715||I===717||I===720||I>=728&&I<=731||I===733||I===735||I>=768&&I<=879||I>=913&&I<=929||I>=931&&I<=937||I>=945&&I<=961||I>=963&&I<=969||I===1025||I>=1040&&I<=1103||I===1105||I===8208||I>=8211&&I<=8214||I===8216||I===8217||I===8220||I===8221||I>=8224&&I<=8226||I>=8228&&I<=8231||I===8240||I===8242||I===8243||I===8245||I===8251||I===8254||I===8308||I===8319||I>=8321&&I<=8324||I===8364||I===8451||I===8453||I===8457||I===8467||I===8470||I===8481||I===8482||I===8486||I===8491||I===8531||I===8532||I>=8539&&I<=8542||I>=8544&&I<=8555||I>=8560&&I<=8569||I===8585||I>=8592&&I<=8601||I===8632||I===8633||I===8658||I===8660||I===8679||I===8704||I===8706||I===8707||I===8711||I===8712||I===8715||I===8719||I===8721||I===8725||I===8730||I>=8733&&I<=8736||I===8739||I===8741||I>=8743&&I<=8748||I===8750||I>=8756&&I<=8759||I===8764||I===8765||I===8776||I===8780||I===8786||I===8800||I===8801||I>=8804&&I<=8807||I===8810||I===8811||I===8814||I===8815||I===8834||I===8835||I===8838||I===8839||I===8853||I===8857||I===8869||I===8895||I===8978||I>=9312&&I<=9449||I>=9451&&I<=9547||I>=9552&&I<=9587||I>=9600&&I<=9615||I>=9618&&I<=9621||I===9632||I===9633||I>=9635&&I<=9641||I===9650||I===9651||I===9654||I===9655||I===9660||I===9661||I===9664||I===9665||I>=9670&&I<=9672||I===9675||I>=9678&&I<=9681||I>=9698&&I<=9701||I===9711||I===9733||I===9734||I===9737||I===9742||I===9743||I===9756||I===9758||I===9792||I===9794||I===9824||I===9825||I>=9827&&I<=9829||I>=9831&&I<=9834||I===9836||I===9837||I===9839||I===9886||I===9887||I===9919||I>=9926&&I<=9933||I>=9935&&I<=9939||I>=9941&&I<=9953||I===9955||I===9960||I===9961||I>=9963&&I<=9969||I===9972||I>=9974&&I<=9977||I===9979||I===9980||I===9982||I===9983||I===10045||I>=10102&&I<=10111||I>=11094&&I<=11097||I>=12872&&I<=12879||I>=57344&&I<=63743||I>=65024&&I<=65039||I===65533||I>=127232&&I<=127242||I>=127248&&I<=127277||I>=127280&&I<=127337||I>=127344&&I<=127373||I===127375||I===127376||I>=127387&&I<=127404||I>=917760&&I<=917999||I>=983040&&I<=1048573||I>=1048576&&I<=1114109}function RT(I){return I===12288||I>=65281&&I<=65376||I>=65504&&I<=65510}function HT(I){return I>=4352&&I<=4447||I===8986||I===8987||I===9001||I===9002||I>=9193&&I<=9196||I===9200||I===9203||I===9725||I===9726||I===9748||I===9749||I>=9776&&I<=9783||I>=9800&&I<=9811||I===9855||I>=9866&&I<=9871||I===9875||I===9889||I===9898||I===9899||I===9917||I===9918||I===9924||I===9925||I===9934||I===9940||I===9962||I===9970||I===9971||I===9973||I===9978||I===9981||I===9989||I===9994||I===9995||I===10024||I===10060||I===10062||I>=10067&&I<=10069||I===10071||I>=10133&&I<=10135||I===10160||I===10175||I===11035||I===11036||I===11088||I===11093||I>=11904&&I<=11929||I>=11931&&I<=12019||I>=12032&&I<=12245||I>=12272&&I<=12287||I>=12289&&I<=12350||I>=12353&&I<=12438||I>=12441&&I<=12543||I>=12549&&I<=12591||I>=12593&&I<=12686||I>=12688&&I<=12773||I>=12783&&I<=12830||I>=12832&&I<=12871||I>=12880&&I<=42124||I>=42128&&I<=42182||I>=43360&&I<=43388||I>=44032&&I<=55203||I>=63744&&I<=64255||I>=65040&&I<=65049||I>=65072&&I<=65106||I>=65108&&I<=65126||I>=65128&&I<=65131||I>=94176&&I<=94180||I>=94192&&I<=94198||I>=94208&&I<=101589||I>=101631&&I<=101662||I>=101760&&I<=101874||I>=110576&&I<=110579||I>=110581&&I<=110587||I===110589||I===110590||I>=110592&&I<=110882||I===110898||I>=110928&&I<=110930||I===110933||I>=110948&&I<=110951||I>=110960&&I<=111355||I>=119552&&I<=119638||I>=119648&&I<=119670||I===126980||I===127183||I===127374||I>=127377&&I<=127386||I>=127488&&I<=127490||I>=127504&&I<=127547||I>=127552&&I<=127560||I===127568||I===127569||I>=127584&&I<=127589||I>=127744&&I<=127776||I>=127789&&I<=127797||I>=127799&&I<=127868||I>=127870&&I<=127891||I>=127904&&I<=127946||I>=127951&&I<=127955||I>=127968&&I<=127984||I===127988||I>=127992&&I<=128062||I===128064||I>=128066&&I<=128252||I>=128255&&I<=128317||I>=128331&&I<=128334||I>=128336&&I<=128359||I===128378||I===128405||I===128406||I===128420||I>=128507&&I<=128591||I>=128640&&I<=128709||I===128716||I>=128720&&I<=128722||I>=128725&&I<=128728||I>=128732&&I<=128735||I===128747||I===128748||I>=128756&&I<=128764||I>=128992&&I<=129003||I===129008||I>=129292&&I<=129338||I>=129340&&I<=129349||I>=129351&&I<=129535||I>=129648&&I<=129660||I>=129664&&I<=129674||I>=129678&&I<=129734||I===129736||I>=129741&&I<=129756||I>=129759&&I<=129770||I>=129775&&I<=129784||I>=131072&&I<=196605||I>=196608&&I<=262141}function pbb(I){if(!Number.isSafeInteger(I))throw TypeError(`Expected a code point, got \`${typeof I}\`.`)}function HzG(I,{ambiguousAsWide:G=!1}={}){if(pbb(I),RT(I)||HT(I)||G&&RzG(I))return 2;return 1}var JzG=hI(wzG(),1),ybb=new Intl.Segmenter,ubb=/^\p{Default_Ignorable_Code_Point}$/u;function UQ(I,G={}){if(typeof I!=="string"||I.length===0)return 0;let{ambiguousIsNarrow:Z=!0,countAnsiEscapeCodes:l=!1}=G;if(!l)I=FT(I);if(I.length===0)return 0;let b=0,W={ambiguousAsWide:!Z};for(let{segment:N}of ybb.segment(I)){let Y=N.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(ubb.test(N))continue;if(JzG.default().test(N)){b+=2;continue}b+=HzG(Y,W)}return b}function pa(I){let G=0;for(let Z of I.split(`
|
|
562
562
|
`))G=Math.max(G,UQ(Z));return G}var AzG={},Lbb=(I)=>{if(I.length===0)return{width:0,height:0};let G=AzG[I];if(G)return G;let Z=pa(I),l=I.split(`
|
|
563
563
|
`).length;return AzG[I]={width:Z,height:l},{width:Z,height:l}},UEI=Lbb;var EzG=(I=0)=>(G)=>`\x1B[${G+I}m`,vzG=(I=0)=>(G)=>`\x1B[${38+I};5;${G}m`,CzG=(I=0)=>(G,Z,l)=>`\x1B[${38+I};2;${G};${Z};${l}m`,dV={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]}},AJY=Object.keys(dV.modifier),gbb=Object.keys(dV.color),abb=Object.keys(dV.bgColor),EJY=[...gbb,...abb];function zbb(){let I=new Map;for(let[G,Z]of Object.entries(dV)){for(let[l,b]of Object.entries(Z))dV[l]={open:`\x1B[${b[0]}m`,close:`\x1B[${b[1]}m`},Z[l]=dV[l],I.set(b[0],b[1]);Object.defineProperty(dV,G,{value:Z,enumerable:!1})}return Object.defineProperty(dV,"codes",{value:I,enumerable:!1}),dV.color.close="\x1B[39m",dV.bgColor.close="\x1B[49m",dV.color.ansi=EzG(),dV.color.ansi256=vzG(),dV.color.ansi16m=CzG(),dV.bgColor.ansi=EzG(10),dV.bgColor.ansi256=vzG(10),dV.bgColor.ansi16m=CzG(10),Object.defineProperties(dV,{rgbToAnsi256:{value(G,Z,l){if(G===Z&&Z===l){if(G<8)return 16;if(G>248)return 231;return Math.round((G-8)/247*24)+232}return 16+36*Math.round(G/255*5)+6*Math.round(Z/255*5)+Math.round(l/255*5)},enumerable:!1},hexToRgb:{value(G){let Z=/[a-f\d]{6}|[a-f\d]{3}/i.exec(G.toString(16));if(!Z)return[0,0,0];let[l]=Z;if(l.length===3)l=[...l].map((W)=>W+W).join("");let b=Number.parseInt(l,16);return[b>>16&255,b>>8&255,b&255]},enumerable:!1},hexToAnsi256:{value:(G)=>dV.rgbToAnsi256(...dV.hexToRgb(G)),enumerable:!1},ansi256ToAnsi:{value(G){if(G<8)return 30+G;if(G<16)return 90+(G-8);let Z,l,b;if(G>=232)Z=((G-232)*10+8)/255,l=Z,b=Z;else{G-=16;let Y=G%36;Z=Math.floor(G/36)/5,l=Math.floor(Y/6)/5,b=Y%6/5}let W=Math.max(Z,l,b)*2;if(W===0)return 30;let N=30+(Math.round(b)<<2|Math.round(l)<<1|Math.round(Z));if(W===2)N+=60;return N},enumerable:!1},rgbToAnsi:{value:(G,Z,l)=>dV.ansi256ToAnsi(dV.rgbToAnsi256(G,Z,l)),enumerable:!1},hexToAnsi:{value:(G)=>dV.ansi256ToAnsi(dV.hexToAnsi256(G)),enumerable:!1}}),dV}var Bbb=zbb(),mV=Bbb;var fGI=new Set(["\x1B",""]),kbb=39,OEI="\x07",uzG="[",Ubb="]",LzG="m",sGI=`${Ubb}8;;`,pzG=(I)=>`${fGI.values().next().value}${uzG}${I}${LzG}`,yzG=(I)=>`${fGI.values().next().value}${sGI}${I}${OEI}`,xbb=(I)=>I.split(" ").map((G)=>UQ(G)),xEI=(I,G,Z)=>{let l=[...G],b=!1,W=!1,N=UQ(FT(I.at(-1)));for(let[Y,c]of l.entries()){let V=UQ(c);if(N+V<=Z)I[I.length-1]+=c;else I.push(c),N=0;if(fGI.has(c))b=!0,W=l.slice(Y+1,Y+1+sGI.length).join("")===sGI;if(b){if(W){if(c===OEI)b=!1,W=!1}else if(c===LzG)b=!1;continue}if(N+=V,N===Z&&Y<l.length-1)I.push(""),N=0}if(!N&&I.at(-1).length>0&&I.length>1)I[I.length-2]+=I.pop()},Obb=(I)=>{let G=I.split(" "),Z=G.length;while(Z>0){if(UQ(G[Z-1])>0)break;Z--}if(Z===G.length)return I;return G.slice(0,Z).join(" ")+G.slice(Z).join("")},Mbb=(I,G,Z={})=>{if(Z.trim!==!1&&I.trim()==="")return"";let l="",b,W,N=xbb(I),Y=[""];for(let[m,X]of I.split(" ").entries()){if(Z.trim!==!1)Y[Y.length-1]=Y.at(-1).trimStart();let R=UQ(Y.at(-1));if(m!==0){if(R>=G&&(Z.wordWrap===!1||Z.trim===!1))Y.push(""),R=0;if(R>0||Z.trim===!1)Y[Y.length-1]+=" ",R++}if(Z.hard&&N[m]>G){let H=G-R,w=1+Math.floor((N[m]-H-1)/G);if(Math.floor((N[m]-1)/G)<w)Y.push("");xEI(Y,X,G);continue}if(R+N[m]>G&&R>0&&N[m]>0){if(Z.wordWrap===!1&&R<G){xEI(Y,X,G);continue}Y.push("")}if(R+N[m]>G&&Z.wordWrap===!1){xEI(Y,X,G);continue}Y[Y.length-1]+=X}if(Z.trim!==!1)Y=Y.map((m)=>Obb(m));let c=Y.join(`
|
|
@@ -612,7 +612,7 @@ globstar while`,I,m,G,X,R),this.matchOne(I.slice(m),G.slice(X),Z))return this.de
|
|
|
612
612
|
`).join(`\r
|
|
613
613
|
`);Cpb(I,b,{encoding:Z,flush:!0})}var zpb=new fw({fetchMethod:(I)=>Bpb(I),ttl:300000,ttlAutopurge:!1,max:1000});async function BqG(I){return zpb.fetch(XS(I))}async function Bpb(I){let G=new AbortController;setTimeout(()=>{G.abort()},1000);let Z=await JqG(I,G.signal,15),l=0;for(let b of Z)if(Ka(b)==="CRLF")l++;return l>3?"CRLF":"LF"}function kqG(I,G,Z){if(I.has(G))return I.get(G);let l=Z();return I.set(G,l),l}var kpb=new fw({fetchMethod:(I)=>UqG(I),ttl:300000,ttlAutopurge:!1,max:1000});function Z1(I){let G=XS(I);return kqG(kpb,G,()=>UqG(G))}function UqG(I){let Z=Buffer.alloc(4096),l=void 0;try{l=yqG(I,"r");let b=uqG(l,Z,0,4096,0);if(b>=2){if(Z[0]===255&&Z[1]===254)return"utf16le"}if(b>=3&&Z[0]===239&&Z[1]===187&&Z[2]===191)return"utf8";return Z.slice(0,b).toString("utf8").length>0?"utf8":"ascii"}catch(b){return DG(`Error detecting encoding for file ${I}: ${b}`),"utf8"}finally{if(l)LqG(l)}}var Upb=new fw({fetchMethod:(I)=>xqG(I),ttl:300000,ttlAutopurge:!1,max:1000});function Ka(I){let G=XS(I);return kqG(Upb,G,()=>xqG(G))}function xqG(I,G="utf8"){try{let Z=Buffer.alloc(4096),l=yqG(I,"r"),b=uqG(l,Z,0,4096,0);LqG(l);let W=Z.toString(G,0,b),N=0,Y=0;for(let c=0;c<W.length;c++)if(W[c]===`
|
|
614
614
|
`)if(c>0&&W[c-1]==="\r")N++;else Y++;return N>Y?"CRLF":"LF"}catch(Z){return DG(`Error detecting line endings for file ${I}: ${Z}`),"LF"}}function p3I(I){let G=gqG(I)?I:XS(XZ(),I);if(G.endsWith(" AM.png"))return G.replace(" AM.png",`${String.fromCharCode(8239)}AM.png`);if(G.endsWith(" PM.png"))return G.replace(" PM.png",`${String.fromCharCode(8239)}PM.png`);return G}function y3I(I){return I?gqG(I)?I:XS(XZ(),I):void 0}function OqG(I){let G=y3I(I),Z=G?Lpb(XZ(),G):void 0;return{absolutePath:G,relativePath:Z}}function $M(I){try{let G=gpb(I),Z=vqG(I,CqG(I));if(!ppb(G))return;let W=ypb(G).filter((N)=>vqG(N,CqG(N))===Z&&apb(G,N)!==I)[0];if(W)return W;return}catch(G){DG(`Error finding similar file for ${I}: ${G}`);return}}function oM({content:I,startLine:G}){if(!I)return"";return I.split(/\r?\n/).map((Z,l)=>{let b=l+G,W=String(b);if(W.length>=6)return`${W} ${Z}`;return`${W.padStart(6," ")} ${Z}`}).join(`
|
|
615
|
-
`)}function MqG(I){try{let G=upb(I),Z=G.readSync();return G.closeSync(),Z===null}catch(G){return DG(`Error checking directory: ${G}`),!1}}function YM(){let I=ab();if(!I.hasCompletedProjectOnboarding)HN({...I,hasCompletedProjectOnboarding:!0})}function Kpb(){let I=fZ();YW({...I,lastReleaseNotesSeen:"1.3.0"})}function u3I({workspaceDir:I}){let Z=!ab().hasCompletedProjectOnboarding,b=fZ().lastReleaseNotesSeen,W=[];if(!b||KqG.gt("1.3.0",b))W=jZI["1.3.0"]||[];let N=W.length>0;if(Xb.useEffect(()=>{if(N&&!Z)Kpb()},[N,Z]),!Z&&!N)return null;let Y=xpb(Opb(I,"CLAUDE.md")),c=MqG(I),V=!Y&&!c,d=NM.isEnabled&&!fZ().shiftEnterKeyBindingInstalled,m=XG();return Xb.createElement(GI,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},Z&&Xb.createElement(Xb.Fragment,null,Xb.createElement(K,{color:m.secondaryText},"Tips for getting started:"),Xb.createElement(Cm,null,(()=>{let X=[];if(c)X.push(Xb.createElement(Cm.Item,{key:"workspace"},Xb.createElement(K,{color:m.secondaryText},"Ask Claude to create a new app or clone a repository.")));if(V)X.push(Xb.createElement(Cm.Item,{key:"claudemd"},Xb.createElement(K,{color:m.secondaryText},"Run ",Xb.createElement(K,{color:m.text},"/init")," to create a CLAUDE.md file with instructions for Claude.")));if(d)X.push(Xb.createElement(Cm.Item,{key:"terminal"},Xb.createElement(K,{color:m.secondaryText},"Run ",Xb.createElement(K,{color:m.text},"/terminal-setup"),Xb.createElement(K,{bold:!1}," to set up terminal integration"))));return X.push(Xb.createElement(Cm.Item,{key:"questions"},Xb.createElement(K,{color:m.secondaryText},"Ask Claude questions about your codebase."))),X.push(Xb.createElement(Cm.Item,{key:"changes"},Xb.createElement(K,{color:m.secondaryText},"Ask Claude to implement changes to your codebase."))),X})())),!Z&&N&&Xb.createElement(GI,{borderColor:XG().secondaryBorder,flexDirection:"column",marginRight:1},Xb.createElement(GI,{flexDirection:"column",gap:0},Xb.createElement(GI,{marginBottom:1},Xb.createElement(K,null,"\uD83C\uDD95 What's new in v","1.3.0",":")),Xb.createElement(GI,{flexDirection:"column",marginLeft:1},W.map((X,R)=>Xb.createElement(K,{key:R,color:XG().secondaryText},"• ",X))))),I===Mpb()&&Xb.createElement(K,{color:XG().warning},"Note: You have launched ",Xb.createElement(K,{bold:!0},"claude")," in your home directory. For the best experience, launch it in a project directory instead."))}var Iu=hI(YG(),1);var tM=hI(YG(),1);var FS=hI(YG(),1);function L3I({isFocused:I,isSelected:G,smallPointer:Z,children:l}){let{styles:b}=AY("Select");return FS.default.createElement(GI,{...b.option({isFocused:I})},I&&FS.default.createElement(K,{...b.focusIndicator()},Z?YN.triangleDownSmall:YN.pointer),FS.default.createElement(K,{...b.label({isFocused:I,isSelected:G})},l),G&&FS.default.createElement(K,{...b.selectedIndicator()},YN.tick))}var l1=hI(YG(),1);import{isDeepStrictEqual as Dpb}from"node:util";class jlI extends Map{first;constructor(I){let G=[],Z,l,b=0;for(let W of I){let N={...W,previous:l,next:void 0,index:b};if(l)l.next=N;Z||=N;let Y="value"in W?W.value:g3I(W);G.push([Y,N]),b++,l=N}super(G);this.first=Z}}var npb=(I,G)=>{switch(G.type){case"focus-next-option":{if(!I.focusedValue)return I;let Z=I.optionMap.get(I.focusedValue);if(!Z)return I;let l=Z.next;while(l&&!("value"in l))l=l.next;if(!l)return I;let b="value"in l?l.value:I.focusedValue;if(!(l.index>=I.visibleToIndex))return{...I,focusedValue:b};let N=Math.min(I.optionMap.size,I.visibleToIndex+1),Y=N-I.visibleOptionCount;return{...I,focusedValue:b,visibleFromIndex:Y,visibleToIndex:N}}case"focus-previous-option":{if(!I.focusedValue)return I;let Z=I.optionMap.get(I.focusedValue);if(!Z)return I;let l=Z.previous;while(l&&!("value"in l))l=l.previous;if(!l)return I;let b="value"in l?l.value:I.focusedValue;if(!(l.index<=I.visibleFromIndex))return{...I,focusedValue:b};let N=Math.max(0,I.visibleFromIndex-1),Y=N+I.visibleOptionCount;return{...I,focusedValue:b,visibleFromIndex:N,visibleToIndex:Y}}case"select-focused-option":return{...I,previousValue:I.value,value:I.focusedValue};case"reset":return G.state;case"set-focus":return{...I,focusedValue:G.value}}},a3I=(I)=>I.flatMap((G)=>{if("options"in G){let Z=a3I(G.options),l=Z.flatMap((W)=>("value"in W)?W.value:[]);return[...G.header!==void 0?[{header:G.header,optionValues:l}]:[],...Z]}return G}),DqG=({visibleOptionCount:I,defaultValue:G,options:Z})=>{let l=a3I(Z),b=typeof I==="number"?Math.min(I,l.length):l.length,W=new jlI(l),N=W.first,Y=N&&"value"in N?N.value:void 0;return{optionMap:W,visibleOptionCount:b,focusedValue:Y,visibleFromIndex:0,visibleToIndex:b,previousValue:G,value:G}},z3I=({visibleOptionCount:I=5,options:G,defaultValue:Z,onChange:l,onFocus:b,focusValue:W})=>{let N=a3I(G),[Y,c]=l1.useReducer(npb,{visibleOptionCount:I,defaultValue:Z,options:G},DqG),[V,d]=l1.useState(N);if(N!==V&&!Dpb(N,V))c({type:"reset",state:DqG({visibleOptionCount:I,defaultValue:Z,options:G})}),d(N);let m=l1.useCallback(()=>{c({type:"focus-next-option"})},[]),X=l1.useCallback(()=>{c({type:"focus-previous-option"})},[]),R=l1.useCallback(()=>{c({type:"select-focused-option"})},[]),H=l1.useMemo(()=>{return N.map((w,A)=>({...w,index:A})).slice(Y.visibleFromIndex,Y.visibleToIndex)},[N,Y.visibleFromIndex,Y.visibleToIndex]);return l1.useEffect(()=>{if(Y.value&&Y.previousValue!==Y.value)l?.(Y.value)},[Y.previousValue,Y.value,G,l]),l1.useEffect(()=>{if(Y.focusedValue)b?.(Y.focusedValue)},[Y.focusedValue,b]),l1.useEffect(()=>{if(W)c({type:"set-focus",value:W})},[W]),{focusedValue:Y.focusedValue,visibleFromIndex:Y.visibleFromIndex,visibleToIndex:Y.visibleToIndex,value:Y.value,visibleOptions:H,focusNextOption:m,focusPreviousOption:X,selectFocusedOption:R}};var B3I=({isDisabled:I=!1,state:G})=>{zb((Z,l)=>{if(l.downArrow)G.focusNextOption();if(l.upArrow)G.focusPreviousOption();if(l.return)G.selectFocusedOption()},{isActive:!I})};var g3I=(I)=>`HEADER-${I.optionValues.join(",")}`;function zv({isDisabled:I=!1,visibleOptionCount:G=5,highlightText:Z,options:l,defaultValue:b,onChange:W,onFocus:N,focusValue:Y}){let c=z3I({visibleOptionCount:G,options:l,defaultValue:b,onChange:W,onFocus:N,focusValue:Y});B3I({isDisabled:I,state:c});let{styles:V}=AY("Select");return tM.default.createElement(GI,{...V.container()},c.visibleOptions.map((d)=>{let m="value"in d?d.value:g3I(d),X=!I&&c.focusedValue!==void 0&&("value"in d?c.focusedValue===d.value:d.optionValues.includes(c.focusedValue)),R=!!c.value&&("value"in d?c.value===d.value:d.optionValues.includes(c.value)),H="header"in d,w="label"in d?d.label:d.header,A=w;if(Z&&w.includes(Z)){let y=w.indexOf(Z);A=tM.default.createElement(tM.default.Fragment,null,w.slice(0,y),tM.default.createElement(K,{...V.highlightedText()},Z),w.slice(y+Z.length))}return tM.default.createElement(L3I,{key:m,isFocused:X,isSelected:R,smallPointer:H},A)}))}var T3I=hI(YG(),1);var na=hI(rqG(),1);var eqG=process.env.TERM_PROGRAM==="Apple_Terminal",wN={};wN.cursorTo=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");if(typeof G!=="number")return"\x1B["+(I+1)+"G";return"\x1B["+(G+1)+";"+(I+1)+"H"};wN.cursorMove=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");let Z="";if(I<0)Z+="\x1B["+-I+"D";else if(I>0)Z+="\x1B["+I+"C";if(G<0)Z+="\x1B["+-G+"A";else if(G>0)Z+="\x1B["+G+"B";return Z};wN.cursorUp=(I=1)=>"\x1B["+I+"A";wN.cursorDown=(I=1)=>"\x1B["+I+"B";wN.cursorForward=(I=1)=>"\x1B["+I+"C";wN.cursorBackward=(I=1)=>"\x1B["+I+"D";wN.cursorLeft="\x1B[G";wN.cursorSavePosition=eqG?"\x1B7":"\x1B[s";wN.cursorRestorePosition=eqG?"\x1B8":"\x1B[u";wN.cursorGetPosition="\x1B[6n";wN.cursorNextLine="\x1B[E";wN.cursorPrevLine="\x1B[F";wN.cursorHide="\x1B[?25l";wN.cursorShow="\x1B[?25h";wN.eraseLines=(I)=>{let G="";for(let Z=0;Z<I;Z++)G+=wN.eraseLine+(Z<I-1?wN.cursorUp():"");if(I)G+=wN.cursorLeft;return G};wN.eraseEndLine="\x1B[K";wN.eraseStartLine="\x1B[1K";wN.eraseLine="\x1B[2K";wN.eraseDown="\x1B[J";wN.eraseUp="\x1B[1J";wN.eraseScreen="\x1B[2J";wN.scrollUp="\x1B[S";wN.scrollDown="\x1B[T";wN.clearScreen="\x1Bc";wN.clearTerminal=process.platform==="win32"?`${wN.eraseScreen}\x1B[0f`:`${wN.eraseScreen}\x1B[3J\x1B[H`;wN.beep="\x07";wN.link=(I,G)=>{return["\x1B]","8",";",";",G,"\x07",I,"\x1B]","8",";",";","\x07"].join("")};wN.image=(I,G={})=>{let Z="\x1B]1337;File=inline=1";if(G.width)Z+=`;width=${G.width}`;if(G.height)Z+=`;height=${G.height}`;if(G.preserveAspectRatio===!1)Z+=";preserveAspectRatio=0";return Z+":"+I.toString("base64")+"\x07"};wN.iTerm={setCwd:(I=process.cwd())=>`\x1B]50;CurrentDir=${I}\x07`,annotation:(I,G={})=>{let Z="\x1B]1337;",l=typeof G.x<"u",b=typeof G.y<"u";if((l||b)&&!(l&&b&&typeof G.length<"u"))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(I=I.replace(/\|/g,""),Z+=G.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",G.length>0)Z+=(l?[I,G.length,G.x,G.y]:[G.length,I]).join("|");else Z+=I;return Z+"\x07"}};var ITG=wN;var TlI=hI(lTG(),1);function Da(I,G,{target:Z="stdout",...l}={}){if(!TlI.default[Z]){if(l.fallback===!1)return I;return typeof l.fallback==="function"?l.fallback(I,G):`${I} (${G})`}return ITG.link(I,G)}Da.isSupported=TlI.default.stdout;Da.stderr=(I,G,Z={})=>Da(I,G,{target:"stderr",...Z});Da.stderr.isSupported=TlI.default.stderr;var bTG=({children:I,url:G,fallback:Z=!0})=>T3I.default.createElement(zZI,{transform:(l)=>Da(l,G,{fallback:Z})},T3I.default.createElement(K,null,I));bTG.propTypes={children:na.default.oneOfType([na.default.arrayOf(na.default.node),na.default.node]).isRequired,url:na.default.string.isRequired,fallback:na.default.bool};var ry=bTG;var SlI=hI(YG(),1);var fpb=["iTerm.app","WezTerm","Hyper","VSCode"];function ey({url:I,children:G}){let Z=fpb.includes(Ol.terminal??""),l=G||I;if(Z||l!==I)return SlI.default.createElement(ry,{url:I},SlI.default.createElement(K,null,l));else return SlI.default.createElement(K,{underline:!0},l)}function WTG({onDone:I}){return zb((G,Z)=>{if(Z.ctrl&&(G==="c"||G==="d")||Z.escape)I()}),Iu.default.createElement(GI,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:XG().secondaryBorder},Iu.default.createElement(GI,{marginBottom:1,flexDirection:"column"},Iu.default.createElement(K,{bold:!0},"You've spent $5 on the Anthropic API this session."),Iu.default.createElement(K,null,"Learn more about how to monitor your spending:"),Iu.default.createElement(ey,{url:"https://docs.anthropic.com/s/claude-code-cost"})),Iu.default.createElement(GI,null,Iu.default.createElement(zv,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:I})))}var ZW=hI(YG(),1),vN=hI(YG(),1);var fG=hI(YG(),1);var ilI=hI(YG(),1);function rN(){let[I,G]=ilI.useState({columns:process.stdout.columns||80,rows:process.stdout.rows||24});return ilI.useEffect(()=>{function Z(){G({columns:process.stdout.columns||80,rows:process.stdout.rows||24})}return process.stdout.on("resize",Z),()=>{process.stdout.off("resize",Z)}},[]),I}var i3I=hI(YG(),1);var S3I=[" ██████╗ ██╗ ██╗","██╔═══██╗██║ ██║","██║ ██║██║ █╗ ██║","╚██████╔╝╚███╔███╔╝"," ╚═══▀▀╝ ╚══╝╚══╝"],NTG=["#D97757","#DC8555","#E09353","#E49E4E","#E8A849"];function $pb(I,G,Z){let l=(N)=>({r:parseInt(N.slice(1,3),16),g:parseInt(N.slice(3,5),16),b:parseInt(N.slice(5,7),16)}),b=l(I),W=l(G);return Array.from({length:Z},(N,Y)=>{let c=Z===1?0:Y/(Z-1),V=Math.round(b.r+(W.r-b.r)*c),d=Math.round(b.g+(W.g-b.g)*c),m=Math.round(b.b+(W.b-b.b)*c);return`#${V.toString(16).padStart(2,"0")}${d.toString(16).padStart(2,"0")}${m.toString(16).padStart(2,"0")}`})}function PlI(){let I=XG(),Z=I.claude==="#ff9933"||I.claude==="#006699"||I.claude==="#3399ff"?S3I.map(()=>I.claude):$pb(NTG[0],NTG[4],S3I.length);return i3I.default.createElement(GI,{flexDirection:"column",alignItems:"flex-start"},S3I.map((l,b)=>i3I.default.createElement(K,{key:b,color:Z[b]},l)))}var P3I=46;function opb(I,G){if(I.length<=G)return I;return"..."+I.slice(I.length-G+3)}function YTG({mcpClients:I,theme:G}){if(!I.length)return null;return fG.createElement(K,null,fG.createElement(K,{color:G.secondaryText},"MCP: "),I.map((Z,l)=>fG.createElement(fG.Fragment,{key:l},l>0&&fG.createElement(K,{color:G.secondaryText}," · "),fG.createElement(K,{color:G.secondaryText},Z.name," "),fG.createElement(K,{bold:!0,color:Z.type==="connected"?G.success:G.error},Z.type==="connected"?"✓":"✗"))))}function cTG({mcpClients:I,isDefaultModel:G=!1}){let{columns:Z}=rN(),l=Z>=80,b=XG(),W=process.env.ANTHROPIC_MODEL,Y=fZ().model,c=sH(),V=!KGI(),d=!G&&Boolean(W),m=process.env.USER_TYPE==="ant"&&Boolean(V||process.env.DISABLE_PROMPT_CACHING||process.env.API_TIMEOUT_MS||process.env.MAX_THINKING_TOKENS||process.env.ANTHROPIC_BASE_URL||d),X="1.3.0",R=Y||W||"claude-sonnet-4-5-20250929",H=XZ(),w=l?Z-30:Z-12,A=opb(H,w),y=l?Math.min(Z-2,Math.max(78,H.length+12)):Math.max(P3I,Math.min(Z-2,H.length+12));if(l)return fG.createElement(GI,{flexDirection:"column"},fG.createElement(GI,{borderColor:b.claude,borderStyle:"round",flexDirection:"column",paddingLeft:1,paddingRight:1,width:y},fG.createElement(GI,{flexDirection:"row",gap:3,paddingTop:0},fG.createElement(GI,{flexDirection:"column",justifyContent:"center"},fG.createElement(PlI,null)),fG.createElement(GI,{flexDirection:"column",justifyContent:"center",gap:0},fG.createElement(K,null,fG.createElement(K,{bold:!0,color:b.claude},hN),fG.createElement(K,{color:b.secondaryText}," v","1.3.0")),fG.createElement(K,{color:b.secondaryText},R),fG.createElement(K,{color:b.secondaryText,italic:!0},"/help for help"),fG.createElement(K,null," "),fG.createElement(K,{color:b.secondaryText},"cwd: ",A))),m&&fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"column",marginLeft:2,marginRight:1,paddingTop:1},fG.createElement(GI,{marginBottom:1},fG.createElement(K,{color:b.secondaryText},"Overrides (via env):")),d&&fG.createElement(K,{color:b.secondaryText},"• Model: ",fG.createElement(K,{bold:!0},W)),V&&c?fG.createElement(K,{color:b.secondaryText},"• API Key: ",fG.createElement(K,{bold:!0},"sk-ant-…",c.slice(-y+25))):null,process.env.DISABLE_PROMPT_CACHING?fG.createElement(K,{color:b.secondaryText},"• Prompt caching:"," ",fG.createElement(K,{color:b.error,bold:!0},"off")):null,process.env.API_TIMEOUT_MS?fG.createElement(K,{color:b.secondaryText},"• API timeout: ",fG.createElement(K,{bold:!0},process.env.API_TIMEOUT_MS,"ms")):null,process.env.MAX_THINKING_TOKENS?fG.createElement(K,{color:b.secondaryText},"• Max thinking tokens: ",fG.createElement(K,{bold:!0},process.env.MAX_THINKING_TOKENS)):null,process.env.ANTHROPIC_BASE_URL?fG.createElement(K,{color:b.secondaryText},"• API Base URL: ",fG.createElement(K,{bold:!0},process.env.ANTHROPIC_BASE_URL)):null),I.length?fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"row",marginLeft:1,marginRight:1,paddingTop:1,paddingBottom:0},fG.createElement(YTG,{mcpClients:I,theme:b})):null));return fG.createElement(GI,{flexDirection:"column"},fG.createElement(GI,{borderColor:b.claude,borderStyle:"round",flexDirection:"column",gap:1,paddingLeft:1,width:y},fG.createElement(K,null,fG.createElement(K,{color:b.claude},"✦")," ",fG.createElement(K,{bold:!0},hN),fG.createElement(K,{color:b.secondaryText}," v","1.3.0")),fG.createElement(GI,{paddingLeft:2,flexDirection:"column",gap:1},fG.createElement(K,{color:b.secondaryText},R),fG.createElement(K,{color:b.secondaryText,italic:!0},"/help for help"),fG.createElement(K,{color:b.secondaryText},"cwd: ",A)),m&&fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"column",marginLeft:2,marginRight:1,paddingTop:1},fG.createElement(GI,{marginBottom:1},fG.createElement(K,{color:b.secondaryText},"Overrides (via env):")),d&&fG.createElement(K,{color:b.secondaryText},"• Model: ",fG.createElement(K,{bold:!0},W)),V&&c?fG.createElement(K,{color:b.secondaryText},"• API Key: ",fG.createElement(K,{bold:!0},"sk-ant-…",c.slice(-y+25))):null,process.env.DISABLE_PROMPT_CACHING?fG.createElement(K,{color:b.secondaryText},"• Prompt caching:"," ",fG.createElement(K,{color:b.error,bold:!0},"off")):null,process.env.API_TIMEOUT_MS?fG.createElement(K,{color:b.secondaryText},"• API timeout: ",fG.createElement(K,{bold:!0},process.env.API_TIMEOUT_MS,"ms")):null,process.env.MAX_THINKING_TOKENS?fG.createElement(K,{color:b.secondaryText},"• Max thinking tokens: ",fG.createElement(K,{bold:!0},process.env.MAX_THINKING_TOKENS)):null,process.env.ANTHROPIC_BASE_URL?fG.createElement(K,{color:b.secondaryText},"• API Base URL: ",fG.createElement(K,{bold:!0},process.env.ANTHROPIC_BASE_URL)):null),I.length?fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"row",flexWrap:"wrap",marginLeft:1,marginRight:1,paddingTop:1,paddingBottom:0},fG.createElement(YTG,{mcpClients:I,theme:b})):null))}var W2=hI(YG(),1);var fC=hI(YG(),1);import{randomUUID as zB}from"crypto";var _a=hI(YG(),1),HK=hI(YG(),1);import{existsSync as cub,readdirSync as Vub,readFileSync as dub,statSync as mub}from"fs";import{join as $3I,basename as Qub}from"path";import{homedir as Xub}from"os";var _G={};JH(_G,{void:()=>xyb,util:()=>tW,unknown:()=>kyb,union:()=>Dyb,undefined:()=>ayb,tuple:()=>qyb,transformer:()=>tyb,symbol:()=>gyb,string:()=>hTG,strictObject:()=>Kyb,setErrorMap:()=>epb,set:()=>iyb,record:()=>Tyb,quotelessJson:()=>tpb,promise:()=>oyb,preprocess:()=>Iub,pipeline:()=>Gub,ostring:()=>Zub,optional:()=>ryb,onumber:()=>lub,oboolean:()=>bub,objectUtil:()=>_3I,object:()=>Myb,number:()=>wTG,nullable:()=>eyb,null:()=>zyb,never:()=>Uyb,nativeEnum:()=>$yb,nan:()=>yyb,map:()=>Syb,makeIssue:()=>HS,literal:()=>syb,lazy:()=>_yb,late:()=>Cyb,isValid:()=>Gu,isDirty:()=>slI,isAsync:()=>ZK,isAborted:()=>_lI,intersection:()=>jyb,instanceof:()=>pyb,getParsedType:()=>nA,getErrorMap:()=>GK,function:()=>Pyb,enum:()=>fyb,effect:()=>tyb,discriminatedUnion:()=>nyb,defaultErrorMap:()=>Bv,datetimeRegex:()=>FTG,date:()=>Lyb,custom:()=>HTG,coerce:()=>Wub,boolean:()=>JTG,bigint:()=>uyb,array:()=>Oyb,any:()=>Byb,addIssueToContext:()=>cl,ZodVoid:()=>wS,ZodUnknown:()=>Zu,ZodUnion:()=>cK,ZodUndefined:()=>NK,ZodType:()=>qW,ZodTuple:()=>qA,ZodTransformer:()=>b5,ZodSymbol:()=>hS,ZodString:()=>I5,ZodSet:()=>Sa,ZodSchema:()=>qW,ZodRecord:()=>JS,ZodReadonly:()=>RK,ZodPromise:()=>ia,ZodPipeline:()=>vS,ZodParsedType:()=>PZ,ZodOptional:()=>Z5,ZodObject:()=>TV,ZodNumber:()=>lu,ZodNullable:()=>Uv,ZodNull:()=>YK,ZodNever:()=>jA,ZodNativeEnum:()=>QK,ZodNaN:()=>ES,ZodMap:()=>AS,ZodLiteral:()=>mK,ZodLazy:()=>dK,ZodIssueCode:()=>LZ,ZodIntersection:()=>VK,ZodFunction:()=>bK,ZodFirstPartyTypeKind:()=>gZ,ZodError:()=>b1,ZodEnum:()=>Wu,ZodEffects:()=>b5,ZodDiscriminatedUnion:()=>flI,ZodDefault:()=>XK,ZodDate:()=>qa,ZodCatch:()=>FK,ZodBranded:()=>$lI,ZodBoolean:()=>WK,ZodBigInt:()=>bu,ZodArray:()=>G5,ZodAny:()=>Ta,Schema:()=>qW,ParseStatus:()=>am,OK:()=>OQ,NEVER:()=>Nub,INVALID:()=>qb,EMPTY_PATH:()=>Iyb,DIRTY:()=>ja,BRAND:()=>vyb});var tW;(function(I){I.assertEqual=(b)=>{};function G(b){}I.assertIs=G;function Z(b){throw Error()}I.assertNever=Z,I.arrayToEnum=(b)=>{let W={};for(let N of b)W[N]=N;return W},I.getValidEnumValues=(b)=>{let W=I.objectKeys(b).filter((Y)=>typeof b[b[Y]]!=="number"),N={};for(let Y of W)N[Y]=b[Y];return I.objectValues(N)},I.objectValues=(b)=>{return I.objectKeys(b).map(function(W){return b[W]})},I.objectKeys=typeof Object.keys==="function"?(b)=>Object.keys(b):(b)=>{let W=[];for(let N in b)if(Object.prototype.hasOwnProperty.call(b,N))W.push(N);return W},I.find=(b,W)=>{for(let N of b)if(W(N))return N;return},I.isInteger=typeof Number.isInteger==="function"?(b)=>Number.isInteger(b):(b)=>typeof b==="number"&&Number.isFinite(b)&&Math.floor(b)===b;function l(b,W=" | "){return b.map((N)=>typeof N==="string"?`'${N}'`:N).join(W)}I.joinValues=l,I.jsonStringifyReplacer=(b,W)=>{if(typeof W==="bigint")return W.toString();return W}})(tW||(tW={}));var _3I;(function(I){I.mergeShapes=(G,Z)=>{return{...G,...Z}}})(_3I||(_3I={}));var PZ=tW.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nA=(I)=>{switch(typeof I){case"undefined":return PZ.undefined;case"string":return PZ.string;case"number":return Number.isNaN(I)?PZ.nan:PZ.number;case"boolean":return PZ.boolean;case"function":return PZ.function;case"bigint":return PZ.bigint;case"symbol":return PZ.symbol;case"object":if(Array.isArray(I))return PZ.array;if(I===null)return PZ.null;if(I.then&&typeof I.then==="function"&&I.catch&&typeof I.catch==="function")return PZ.promise;if(typeof Map<"u"&&I instanceof Map)return PZ.map;if(typeof Set<"u"&&I instanceof Set)return PZ.set;if(typeof Date<"u"&&I instanceof Date)return PZ.date;return PZ.object;default:return PZ.unknown}};var LZ=tW.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),tpb=(I)=>{return JSON.stringify(I,null,2).replace(/"([^"]+)":/g,"$1:")};class b1 extends Error{get errors(){return this.issues}constructor(I){super();this.issues=[],this.addIssue=(Z)=>{this.issues=[...this.issues,Z]},this.addIssues=(Z=[])=>{this.issues=[...this.issues,...Z]};let G=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,G);else this.__proto__=G;this.name="ZodError",this.issues=I}format(I){let G=I||function(b){return b.message},Z={_errors:[]},l=(b)=>{for(let W of b.issues)if(W.code==="invalid_union")W.unionErrors.map(l);else if(W.code==="invalid_return_type")l(W.returnTypeError);else if(W.code==="invalid_arguments")l(W.argumentsError);else if(W.path.length===0)Z._errors.push(G(W));else{let N=Z,Y=0;while(Y<W.path.length){let c=W.path[Y];if(Y!==W.path.length-1)N[c]=N[c]||{_errors:[]};else N[c]=N[c]||{_errors:[]},N[c]._errors.push(G(W));N=N[c],Y++}}};return l(this),Z}static assert(I){if(!(I instanceof b1))throw Error(`Not a ZodError: ${I}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,tW.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(I=(G)=>G.message){let G={},Z=[];for(let l of this.issues)if(l.path.length>0){let b=l.path[0];G[b]=G[b]||[],G[b].push(I(l))}else Z.push(I(l));return{formErrors:Z,fieldErrors:G}}get formErrors(){return this.flatten()}}b1.create=(I)=>{return new b1(I)};var rpb=(I,G)=>{let Z;switch(I.code){case LZ.invalid_type:if(I.received===PZ.undefined)Z="Required";else Z=`Expected ${I.expected}, received ${I.received}`;break;case LZ.invalid_literal:Z=`Invalid literal value, expected ${JSON.stringify(I.expected,tW.jsonStringifyReplacer)}`;break;case LZ.unrecognized_keys:Z=`Unrecognized key(s) in object: ${tW.joinValues(I.keys,", ")}`;break;case LZ.invalid_union:Z="Invalid input";break;case LZ.invalid_union_discriminator:Z=`Invalid discriminator value. Expected ${tW.joinValues(I.options)}`;break;case LZ.invalid_enum_value:Z=`Invalid enum value. Expected ${tW.joinValues(I.options)}, received '${I.received}'`;break;case LZ.invalid_arguments:Z="Invalid function arguments";break;case LZ.invalid_return_type:Z="Invalid function return type";break;case LZ.invalid_date:Z="Invalid date";break;case LZ.invalid_string:if(typeof I.validation==="object")if("includes"in I.validation){if(Z=`Invalid input: must include "${I.validation.includes}"`,typeof I.validation.position==="number")Z=`${Z} at one or more positions greater than or equal to ${I.validation.position}`}else if("startsWith"in I.validation)Z=`Invalid input: must start with "${I.validation.startsWith}"`;else if("endsWith"in I.validation)Z=`Invalid input: must end with "${I.validation.endsWith}"`;else tW.assertNever(I.validation);else if(I.validation!=="regex")Z=`Invalid ${I.validation}`;else Z="Invalid";break;case LZ.too_small:if(I.type==="array")Z=`Array must contain ${I.exact?"exactly":I.inclusive?"at least":"more than"} ${I.minimum} element(s)`;else if(I.type==="string")Z=`String must contain ${I.exact?"exactly":I.inclusive?"at least":"over"} ${I.minimum} character(s)`;else if(I.type==="number")Z=`Number must be ${I.exact?"exactly equal to ":I.inclusive?"greater than or equal to ":"greater than "}${I.minimum}`;else if(I.type==="bigint")Z=`Number must be ${I.exact?"exactly equal to ":I.inclusive?"greater than or equal to ":"greater than "}${I.minimum}`;else if(I.type==="date")Z=`Date must be ${I.exact?"exactly equal to ":I.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(I.minimum))}`;else Z="Invalid input";break;case LZ.too_big:if(I.type==="array")Z=`Array must contain ${I.exact?"exactly":I.inclusive?"at most":"less than"} ${I.maximum} element(s)`;else if(I.type==="string")Z=`String must contain ${I.exact?"exactly":I.inclusive?"at most":"under"} ${I.maximum} character(s)`;else if(I.type==="number")Z=`Number must be ${I.exact?"exactly":I.inclusive?"less than or equal to":"less than"} ${I.maximum}`;else if(I.type==="bigint")Z=`BigInt must be ${I.exact?"exactly":I.inclusive?"less than or equal to":"less than"} ${I.maximum}`;else if(I.type==="date")Z=`Date must be ${I.exact?"exactly":I.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(I.maximum))}`;else Z="Invalid input";break;case LZ.custom:Z="Invalid input";break;case LZ.invalid_intersection_types:Z="Intersection results could not be merged";break;case LZ.not_multiple_of:Z=`Number must be a multiple of ${I.multipleOf}`;break;case LZ.not_finite:Z="Number must be finite";break;default:Z=G.defaultError,tW.assertNever(I)}return{message:Z}},Bv=rpb;var VTG=Bv;function epb(I){VTG=I}function GK(){return VTG}var HS=(I)=>{let{data:G,path:Z,errorMaps:l,issueData:b}=I,W=[...Z,...b.path||[]],N={...b,path:W};if(b.message!==void 0)return{...b,path:W,message:b.message};let Y="",c=l.filter((V)=>!!V).slice().reverse();for(let V of c)Y=V(N,{data:G,defaultError:Y}).message;return{...b,path:W,message:Y}},Iyb=[];function cl(I,G){let Z=GK(),l=HS({issueData:G,data:I.data,path:I.path,errorMaps:[I.common.contextualErrorMap,I.schemaErrorMap,Z,Z===Bv?void 0:Bv].filter((b)=>!!b)});I.common.issues.push(l)}class am{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(I,G){let Z=[];for(let l of G){if(l.status==="aborted")return qb;if(l.status==="dirty")I.dirty();Z.push(l.value)}return{status:I.value,value:Z}}static async mergeObjectAsync(I,G){let Z=[];for(let l of G){let b=await l.key,W=await l.value;Z.push({key:b,value:W})}return am.mergeObjectSync(I,Z)}static mergeObjectSync(I,G){let Z={};for(let l of G){let{key:b,value:W}=l;if(b.status==="aborted")return qb;if(W.status==="aborted")return qb;if(b.status==="dirty")I.dirty();if(W.status==="dirty")I.dirty();if(b.value!=="__proto__"&&(typeof W.value<"u"||l.alwaysSet))Z[b.value]=W.value}return{status:I.value,value:Z}}}var qb=Object.freeze({status:"aborted"}),ja=(I)=>({status:"dirty",value:I}),OQ=(I)=>({status:"valid",value:I}),_lI=(I)=>I.status==="aborted",slI=(I)=>I.status==="dirty",Gu=(I)=>I.status==="valid",ZK=(I)=>typeof Promise<"u"&&I instanceof Promise;var sl;(function(I){I.errToObj=(G)=>typeof G==="string"?{message:G}:G||{},I.toString=(G)=>typeof G==="string"?G:G?.message})(sl||(sl={}));class l5{constructor(I,G,Z,l){this._cachedPath=[],this.parent=I,this.data=G,this._path=Z,this._key=l}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var dTG=(I,G)=>{if(Gu(G))return{success:!0,data:G.value};else{if(!I.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Z=new b1(I.common.issues);return this._error=Z,this._error}}}};function EW(I){if(!I)return{};let{errorMap:G,invalid_type_error:Z,required_error:l,description:b}=I;if(G&&(Z||l))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(G)return{errorMap:G,description:b};return{errorMap:(N,Y)=>{let{message:c}=I;if(N.code==="invalid_enum_value")return{message:c??Y.defaultError};if(typeof Y.data>"u")return{message:c??l??Y.defaultError};if(N.code!=="invalid_type")return{message:Y.defaultError};return{message:c??Z??Y.defaultError}},description:b}}class qW{get description(){return this._def.description}_getType(I){return nA(I.data)}_getOrReturnCtx(I,G){return G||{common:I.parent.common,data:I.data,parsedType:nA(I.data),schemaErrorMap:this._def.errorMap,path:I.path,parent:I.parent}}_processInputParams(I){return{status:new am,ctx:{common:I.parent.common,data:I.data,parsedType:nA(I.data),schemaErrorMap:this._def.errorMap,path:I.path,parent:I.parent}}}_parseSync(I){let G=this._parse(I);if(ZK(G))throw Error("Synchronous parse encountered promise.");return G}_parseAsync(I){let G=this._parse(I);return Promise.resolve(G)}parse(I,G){let Z=this.safeParse(I,G);if(Z.success)return Z.data;throw Z.error}safeParse(I,G){let Z={common:{issues:[],async:G?.async??!1,contextualErrorMap:G?.errorMap},path:G?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:I,parsedType:nA(I)},l=this._parseSync({data:I,path:Z.path,parent:Z});return dTG(Z,l)}"~validate"(I){let G={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:I,parsedType:nA(I)};if(!this["~standard"].async)try{let Z=this._parseSync({data:I,path:[],parent:G});return Gu(Z)?{value:Z.value}:{issues:G.common.issues}}catch(Z){if(Z?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;G.common={issues:[],async:!0}}return this._parseAsync({data:I,path:[],parent:G}).then((Z)=>Gu(Z)?{value:Z.value}:{issues:G.common.issues})}async parseAsync(I,G){let Z=await this.safeParseAsync(I,G);if(Z.success)return Z.data;throw Z.error}async safeParseAsync(I,G){let Z={common:{issues:[],contextualErrorMap:G?.errorMap,async:!0},path:G?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:I,parsedType:nA(I)},l=this._parse({data:I,path:Z.path,parent:Z}),b=await(ZK(l)?l:Promise.resolve(l));return dTG(Z,b)}refine(I,G){let Z=(l)=>{if(typeof G==="string"||typeof G>"u")return{message:G};else if(typeof G==="function")return G(l);else return G};return this._refinement((l,b)=>{let W=I(l),N=()=>b.addIssue({code:LZ.custom,...Z(l)});if(typeof Promise<"u"&&W instanceof Promise)return W.then((Y)=>{if(!Y)return N(),!1;else return!0});if(!W)return N(),!1;else return!0})}refinement(I,G){return this._refinement((Z,l)=>{if(!I(Z))return l.addIssue(typeof G==="function"?G(Z,l):G),!1;else return!0})}_refinement(I){return new b5({schema:this,typeName:gZ.ZodEffects,effect:{type:"refinement",refinement:I}})}superRefine(I){return this._refinement(I)}constructor(I){this.spa=this.safeParseAsync,this._def=I,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(G)=>this["~validate"](G)}}optional(){return Z5.create(this,this._def)}nullable(){return Uv.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return G5.create(this)}promise(){return ia.create(this,this._def)}or(I){return cK.create([this,I],this._def)}and(I){return VK.create(this,I,this._def)}transform(I){return new b5({...EW(this._def),schema:this,typeName:gZ.ZodEffects,effect:{type:"transform",transform:I}})}default(I){let G=typeof I==="function"?I:()=>I;return new XK({...EW(this._def),innerType:this,defaultValue:G,typeName:gZ.ZodDefault})}brand(){return new $lI({typeName:gZ.ZodBranded,type:this,...EW(this._def)})}catch(I){let G=typeof I==="function"?I:()=>I;return new FK({...EW(this._def),innerType:this,catchValue:G,typeName:gZ.ZodCatch})}describe(I){return new this.constructor({...this._def,description:I})}pipe(I){return vS.create(this,I)}readonly(){return RK.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Gyb=/^c[^\s-]{8,}$/i,Zyb=/^[0-9a-z]+$/,lyb=/^[0-9A-HJKMNP-TV-Z]{26}$/i,byb=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Wyb=/^[a-z0-9_-]{21}$/i,Nyb=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Yyb=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,cyb=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Vyb="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",s3I,dyb=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,myb=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Qyb=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xyb=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fyb=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ryb=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,QTG="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Hyb=new RegExp(`^${QTG}$`);function XTG(I){let G="[0-5]\\d";if(I.precision)G=`${G}\\.\\d{${I.precision}}`;else if(I.precision==null)G=`${G}(\\.\\d+)?`;let Z=I.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${G})${Z}`}function hyb(I){return new RegExp(`^${XTG(I)}$`)}function FTG(I){let G=`${QTG}T${XTG(I)}`,Z=[];if(Z.push(I.local?"Z?":"Z"),I.offset)Z.push("([+-]\\d{2}:?\\d{2})");return G=`${G}(${Z.join("|")})`,new RegExp(`^${G}$`)}function wyb(I,G){if((G==="v4"||!G)&&dyb.test(I))return!0;if((G==="v6"||!G)&&Qyb.test(I))return!0;return!1}function Jyb(I,G){if(!Nyb.test(I))return!1;try{let[Z]=I.split(".");if(!Z)return!1;let l=Z.replace(/-/g,"+").replace(/_/g,"/").padEnd(Z.length+(4-Z.length%4)%4,"="),b=JSON.parse(atob(l));if(typeof b!=="object"||b===null)return!1;if("typ"in b&&b?.typ!=="JWT")return!1;if(!b.alg)return!1;if(G&&b.alg!==G)return!1;return!0}catch{return!1}}function Ayb(I,G){if((G==="v4"||!G)&&myb.test(I))return!0;if((G==="v6"||!G)&&Xyb.test(I))return!0;return!1}class I5 extends qW{_parse(I){if(this._def.coerce)I.data=String(I.data);if(this._getType(I)!==PZ.string){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_type,expected:PZ.string,received:b.parsedType}),qb}let Z=new am,l=void 0;for(let b of this._def.checks)if(b.kind==="min"){if(I.data.length<b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_small,minimum:b.value,type:"string",inclusive:!0,exact:!1,message:b.message}),Z.dirty()}else if(b.kind==="max"){if(I.data.length>b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_big,maximum:b.value,type:"string",inclusive:!0,exact:!1,message:b.message}),Z.dirty()}else if(b.kind==="length"){let W=I.data.length>b.value,N=I.data.length<b.value;if(W||N){if(l=this._getOrReturnCtx(I,l),W)cl(l,{code:LZ.too_big,maximum:b.value,type:"string",inclusive:!0,exact:!0,message:b.message});else if(N)cl(l,{code:LZ.too_small,minimum:b.value,type:"string",inclusive:!0,exact:!0,message:b.message});Z.dirty()}}else if(b.kind==="email"){if(!cyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"email",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="emoji"){if(!s3I)s3I=new RegExp(Vyb,"u");if(!s3I.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"emoji",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="uuid"){if(!byb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"uuid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="nanoid"){if(!Wyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"nanoid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="cuid"){if(!Gyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"cuid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="cuid2"){if(!Zyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"cuid2",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="ulid"){if(!lyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"ulid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="url")try{new URL(I.data)}catch{l=this._getOrReturnCtx(I,l),cl(l,{validation:"url",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="regex"){if(b.regex.lastIndex=0,!b.regex.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"regex",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="trim")I.data=I.data.trim();else if(b.kind==="includes"){if(!I.data.includes(b.value,b.position))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:{includes:b.value,position:b.position},message:b.message}),Z.dirty()}else if(b.kind==="toLowerCase")I.data=I.data.toLowerCase();else if(b.kind==="toUpperCase")I.data=I.data.toUpperCase();else if(b.kind==="startsWith"){if(!I.data.startsWith(b.value))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:{startsWith:b.value},message:b.message}),Z.dirty()}else if(b.kind==="endsWith"){if(!I.data.endsWith(b.value))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:{endsWith:b.value},message:b.message}),Z.dirty()}else if(b.kind==="datetime"){if(!FTG(b).test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:"datetime",message:b.message}),Z.dirty()}else if(b.kind==="date"){if(!Hyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:"date",message:b.message}),Z.dirty()}else if(b.kind==="time"){if(!hyb(b).test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:"time",message:b.message}),Z.dirty()}else if(b.kind==="duration"){if(!Yyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"duration",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="ip"){if(!wyb(I.data,b.version))l=this._getOrReturnCtx(I,l),cl(l,{validation:"ip",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="jwt"){if(!Jyb(I.data,b.alg))l=this._getOrReturnCtx(I,l),cl(l,{validation:"jwt",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="cidr"){if(!Ayb(I.data,b.version))l=this._getOrReturnCtx(I,l),cl(l,{validation:"cidr",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="base64"){if(!Fyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"base64",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="base64url"){if(!Ryb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"base64url",code:LZ.invalid_string,message:b.message}),Z.dirty()}else tW.assertNever(b);return{status:Z.value,value:I.data}}_regex(I,G,Z){return this.refinement((l)=>I.test(l),{validation:G,code:LZ.invalid_string,...sl.errToObj(Z)})}_addCheck(I){return new I5({...this._def,checks:[...this._def.checks,I]})}email(I){return this._addCheck({kind:"email",...sl.errToObj(I)})}url(I){return this._addCheck({kind:"url",...sl.errToObj(I)})}emoji(I){return this._addCheck({kind:"emoji",...sl.errToObj(I)})}uuid(I){return this._addCheck({kind:"uuid",...sl.errToObj(I)})}nanoid(I){return this._addCheck({kind:"nanoid",...sl.errToObj(I)})}cuid(I){return this._addCheck({kind:"cuid",...sl.errToObj(I)})}cuid2(I){return this._addCheck({kind:"cuid2",...sl.errToObj(I)})}ulid(I){return this._addCheck({kind:"ulid",...sl.errToObj(I)})}base64(I){return this._addCheck({kind:"base64",...sl.errToObj(I)})}base64url(I){return this._addCheck({kind:"base64url",...sl.errToObj(I)})}jwt(I){return this._addCheck({kind:"jwt",...sl.errToObj(I)})}ip(I){return this._addCheck({kind:"ip",...sl.errToObj(I)})}cidr(I){return this._addCheck({kind:"cidr",...sl.errToObj(I)})}datetime(I){if(typeof I==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:I});return this._addCheck({kind:"datetime",precision:typeof I?.precision>"u"?null:I?.precision,offset:I?.offset??!1,local:I?.local??!1,...sl.errToObj(I?.message)})}date(I){return this._addCheck({kind:"date",message:I})}time(I){if(typeof I==="string")return this._addCheck({kind:"time",precision:null,message:I});return this._addCheck({kind:"time",precision:typeof I?.precision>"u"?null:I?.precision,...sl.errToObj(I?.message)})}duration(I){return this._addCheck({kind:"duration",...sl.errToObj(I)})}regex(I,G){return this._addCheck({kind:"regex",regex:I,...sl.errToObj(G)})}includes(I,G){return this._addCheck({kind:"includes",value:I,position:G?.position,...sl.errToObj(G?.message)})}startsWith(I,G){return this._addCheck({kind:"startsWith",value:I,...sl.errToObj(G)})}endsWith(I,G){return this._addCheck({kind:"endsWith",value:I,...sl.errToObj(G)})}min(I,G){return this._addCheck({kind:"min",value:I,...sl.errToObj(G)})}max(I,G){return this._addCheck({kind:"max",value:I,...sl.errToObj(G)})}length(I,G){return this._addCheck({kind:"length",value:I,...sl.errToObj(G)})}nonempty(I){return this.min(1,sl.errToObj(I))}trim(){return new I5({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new I5({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new I5({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((I)=>I.kind==="datetime")}get isDate(){return!!this._def.checks.find((I)=>I.kind==="date")}get isTime(){return!!this._def.checks.find((I)=>I.kind==="time")}get isDuration(){return!!this._def.checks.find((I)=>I.kind==="duration")}get isEmail(){return!!this._def.checks.find((I)=>I.kind==="email")}get isURL(){return!!this._def.checks.find((I)=>I.kind==="url")}get isEmoji(){return!!this._def.checks.find((I)=>I.kind==="emoji")}get isUUID(){return!!this._def.checks.find((I)=>I.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((I)=>I.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((I)=>I.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((I)=>I.kind==="cuid2")}get isULID(){return!!this._def.checks.find((I)=>I.kind==="ulid")}get isIP(){return!!this._def.checks.find((I)=>I.kind==="ip")}get isCIDR(){return!!this._def.checks.find((I)=>I.kind==="cidr")}get isBase64(){return!!this._def.checks.find((I)=>I.kind==="base64")}get isBase64url(){return!!this._def.checks.find((I)=>I.kind==="base64url")}get minLength(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I}get maxLength(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I}}I5.create=(I)=>{return new I5({checks:[],typeName:gZ.ZodString,coerce:I?.coerce??!1,...EW(I)})};function Eyb(I,G){let Z=(I.toString().split(".")[1]||"").length,l=(G.toString().split(".")[1]||"").length,b=Z>l?Z:l,W=Number.parseInt(I.toFixed(b).replace(".","")),N=Number.parseInt(G.toFixed(b).replace(".",""));return W%N/10**b}class lu extends qW{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(I){if(this._def.coerce)I.data=Number(I.data);if(this._getType(I)!==PZ.number){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_type,expected:PZ.number,received:b.parsedType}),qb}let Z=void 0,l=new am;for(let b of this._def.checks)if(b.kind==="int"){if(!tW.isInteger(I.data))Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.invalid_type,expected:"integer",received:"float",message:b.message}),l.dirty()}else if(b.kind==="min"){if(b.inclusive?I.data<b.value:I.data<=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_small,minimum:b.value,type:"number",inclusive:b.inclusive,exact:!1,message:b.message}),l.dirty()}else if(b.kind==="max"){if(b.inclusive?I.data>b.value:I.data>=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_big,maximum:b.value,type:"number",inclusive:b.inclusive,exact:!1,message:b.message}),l.dirty()}else if(b.kind==="multipleOf"){if(Eyb(I.data,b.value)!==0)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.not_multiple_of,multipleOf:b.value,message:b.message}),l.dirty()}else if(b.kind==="finite"){if(!Number.isFinite(I.data))Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.not_finite,message:b.message}),l.dirty()}else tW.assertNever(b);return{status:l.value,value:I.data}}gte(I,G){return this.setLimit("min",I,!0,sl.toString(G))}gt(I,G){return this.setLimit("min",I,!1,sl.toString(G))}lte(I,G){return this.setLimit("max",I,!0,sl.toString(G))}lt(I,G){return this.setLimit("max",I,!1,sl.toString(G))}setLimit(I,G,Z,l){return new lu({...this._def,checks:[...this._def.checks,{kind:I,value:G,inclusive:Z,message:sl.toString(l)}]})}_addCheck(I){return new lu({...this._def,checks:[...this._def.checks,I]})}int(I){return this._addCheck({kind:"int",message:sl.toString(I)})}positive(I){return this._addCheck({kind:"min",value:0,inclusive:!1,message:sl.toString(I)})}negative(I){return this._addCheck({kind:"max",value:0,inclusive:!1,message:sl.toString(I)})}nonpositive(I){return this._addCheck({kind:"max",value:0,inclusive:!0,message:sl.toString(I)})}nonnegative(I){return this._addCheck({kind:"min",value:0,inclusive:!0,message:sl.toString(I)})}multipleOf(I,G){return this._addCheck({kind:"multipleOf",value:I,message:sl.toString(G)})}finite(I){return this._addCheck({kind:"finite",message:sl.toString(I)})}safe(I){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:sl.toString(I)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:sl.toString(I)})}get minValue(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I}get maxValue(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I}get isInt(){return!!this._def.checks.find((I)=>I.kind==="int"||I.kind==="multipleOf"&&tW.isInteger(I.value))}get isFinite(){let I=null,G=null;for(let Z of this._def.checks)if(Z.kind==="finite"||Z.kind==="int"||Z.kind==="multipleOf")return!0;else if(Z.kind==="min"){if(G===null||Z.value>G)G=Z.value}else if(Z.kind==="max"){if(I===null||Z.value<I)I=Z.value}return Number.isFinite(G)&&Number.isFinite(I)}}lu.create=(I)=>{return new lu({checks:[],typeName:gZ.ZodNumber,coerce:I?.coerce||!1,...EW(I)})};class bu extends qW{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(I){if(this._def.coerce)try{I.data=BigInt(I.data)}catch{return this._getInvalidInput(I)}if(this._getType(I)!==PZ.bigint)return this._getInvalidInput(I);let Z=void 0,l=new am;for(let b of this._def.checks)if(b.kind==="min"){if(b.inclusive?I.data<b.value:I.data<=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_small,type:"bigint",minimum:b.value,inclusive:b.inclusive,message:b.message}),l.dirty()}else if(b.kind==="max"){if(b.inclusive?I.data>b.value:I.data>=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_big,type:"bigint",maximum:b.value,inclusive:b.inclusive,message:b.message}),l.dirty()}else if(b.kind==="multipleOf"){if(I.data%b.value!==BigInt(0))Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.not_multiple_of,multipleOf:b.value,message:b.message}),l.dirty()}else tW.assertNever(b);return{status:l.value,value:I.data}}_getInvalidInput(I){let G=this._getOrReturnCtx(I);return cl(G,{code:LZ.invalid_type,expected:PZ.bigint,received:G.parsedType}),qb}gte(I,G){return this.setLimit("min",I,!0,sl.toString(G))}gt(I,G){return this.setLimit("min",I,!1,sl.toString(G))}lte(I,G){return this.setLimit("max",I,!0,sl.toString(G))}lt(I,G){return this.setLimit("max",I,!1,sl.toString(G))}setLimit(I,G,Z,l){return new bu({...this._def,checks:[...this._def.checks,{kind:I,value:G,inclusive:Z,message:sl.toString(l)}]})}_addCheck(I){return new bu({...this._def,checks:[...this._def.checks,I]})}positive(I){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:sl.toString(I)})}negative(I){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:sl.toString(I)})}nonpositive(I){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:sl.toString(I)})}nonnegative(I){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:sl.toString(I)})}multipleOf(I,G){return this._addCheck({kind:"multipleOf",value:I,message:sl.toString(G)})}get minValue(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I}get maxValue(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I}}bu.create=(I)=>{return new bu({checks:[],typeName:gZ.ZodBigInt,coerce:I?.coerce??!1,...EW(I)})};class WK extends qW{_parse(I){if(this._def.coerce)I.data=Boolean(I.data);if(this._getType(I)!==PZ.boolean){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.boolean,received:Z.parsedType}),qb}return OQ(I.data)}}WK.create=(I)=>{return new WK({typeName:gZ.ZodBoolean,coerce:I?.coerce||!1,...EW(I)})};class qa extends qW{_parse(I){if(this._def.coerce)I.data=new Date(I.data);if(this._getType(I)!==PZ.date){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_type,expected:PZ.date,received:b.parsedType}),qb}if(Number.isNaN(I.data.getTime())){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_date}),qb}let Z=new am,l=void 0;for(let b of this._def.checks)if(b.kind==="min"){if(I.data.getTime()<b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_small,message:b.message,inclusive:!0,exact:!1,minimum:b.value,type:"date"}),Z.dirty()}else if(b.kind==="max"){if(I.data.getTime()>b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_big,message:b.message,inclusive:!0,exact:!1,maximum:b.value,type:"date"}),Z.dirty()}else tW.assertNever(b);return{status:Z.value,value:new Date(I.data.getTime())}}_addCheck(I){return new qa({...this._def,checks:[...this._def.checks,I]})}min(I,G){return this._addCheck({kind:"min",value:I.getTime(),message:sl.toString(G)})}max(I,G){return this._addCheck({kind:"max",value:I.getTime(),message:sl.toString(G)})}get minDate(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I!=null?new Date(I):null}get maxDate(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I!=null?new Date(I):null}}qa.create=(I)=>{return new qa({checks:[],coerce:I?.coerce||!1,typeName:gZ.ZodDate,...EW(I)})};class hS extends qW{_parse(I){if(this._getType(I)!==PZ.symbol){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.symbol,received:Z.parsedType}),qb}return OQ(I.data)}}hS.create=(I)=>{return new hS({typeName:gZ.ZodSymbol,...EW(I)})};class NK extends qW{_parse(I){if(this._getType(I)!==PZ.undefined){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.undefined,received:Z.parsedType}),qb}return OQ(I.data)}}NK.create=(I)=>{return new NK({typeName:gZ.ZodUndefined,...EW(I)})};class YK extends qW{_parse(I){if(this._getType(I)!==PZ.null){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.null,received:Z.parsedType}),qb}return OQ(I.data)}}YK.create=(I)=>{return new YK({typeName:gZ.ZodNull,...EW(I)})};class Ta extends qW{constructor(){super(...arguments);this._any=!0}_parse(I){return OQ(I.data)}}Ta.create=(I)=>{return new Ta({typeName:gZ.ZodAny,...EW(I)})};class Zu extends qW{constructor(){super(...arguments);this._unknown=!0}_parse(I){return OQ(I.data)}}Zu.create=(I)=>{return new Zu({typeName:gZ.ZodUnknown,...EW(I)})};class jA extends qW{_parse(I){let G=this._getOrReturnCtx(I);return cl(G,{code:LZ.invalid_type,expected:PZ.never,received:G.parsedType}),qb}}jA.create=(I)=>{return new jA({typeName:gZ.ZodNever,...EW(I)})};class wS extends qW{_parse(I){if(this._getType(I)!==PZ.undefined){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.void,received:Z.parsedType}),qb}return OQ(I.data)}}wS.create=(I)=>{return new wS({typeName:gZ.ZodVoid,...EW(I)})};class G5 extends qW{_parse(I){let{ctx:G,status:Z}=this._processInputParams(I),l=this._def;if(G.parsedType!==PZ.array)return cl(G,{code:LZ.invalid_type,expected:PZ.array,received:G.parsedType}),qb;if(l.exactLength!==null){let W=G.data.length>l.exactLength.value,N=G.data.length<l.exactLength.value;if(W||N)cl(G,{code:W?LZ.too_big:LZ.too_small,minimum:N?l.exactLength.value:void 0,maximum:W?l.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:l.exactLength.message}),Z.dirty()}if(l.minLength!==null){if(G.data.length<l.minLength.value)cl(G,{code:LZ.too_small,minimum:l.minLength.value,type:"array",inclusive:!0,exact:!1,message:l.minLength.message}),Z.dirty()}if(l.maxLength!==null){if(G.data.length>l.maxLength.value)cl(G,{code:LZ.too_big,maximum:l.maxLength.value,type:"array",inclusive:!0,exact:!1,message:l.maxLength.message}),Z.dirty()}if(G.common.async)return Promise.all([...G.data].map((W,N)=>{return l.type._parseAsync(new l5(G,W,G.path,N))})).then((W)=>{return am.mergeArray(Z,W)});let b=[...G.data].map((W,N)=>{return l.type._parseSync(new l5(G,W,G.path,N))});return am.mergeArray(Z,b)}get element(){return this._def.type}min(I,G){return new G5({...this._def,minLength:{value:I,message:sl.toString(G)}})}max(I,G){return new G5({...this._def,maxLength:{value:I,message:sl.toString(G)}})}length(I,G){return new G5({...this._def,exactLength:{value:I,message:sl.toString(G)}})}nonempty(I){return this.min(1,I)}}G5.create=(I,G)=>{return new G5({type:I,minLength:null,maxLength:null,exactLength:null,typeName:gZ.ZodArray,...EW(G)})};function lK(I){if(I instanceof TV){let G={};for(let Z in I.shape){let l=I.shape[Z];G[Z]=Z5.create(lK(l))}return new TV({...I._def,shape:()=>G})}else if(I instanceof G5)return new G5({...I._def,type:lK(I.element)});else if(I instanceof Z5)return Z5.create(lK(I.unwrap()));else if(I instanceof Uv)return Uv.create(lK(I.unwrap()));else if(I instanceof qA)return qA.create(I.items.map((G)=>lK(G)));else return I}class TV extends qW{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let I=this._def.shape(),G=tW.objectKeys(I);return this._cached={shape:I,keys:G},this._cached}_parse(I){if(this._getType(I)!==PZ.object){let c=this._getOrReturnCtx(I);return cl(c,{code:LZ.invalid_type,expected:PZ.object,received:c.parsedType}),qb}let{status:Z,ctx:l}=this._processInputParams(I),{shape:b,keys:W}=this._getCached(),N=[];if(!(this._def.catchall instanceof jA&&this._def.unknownKeys==="strip")){for(let c in l.data)if(!W.includes(c))N.push(c)}let Y=[];for(let c of W){let V=b[c],d=l.data[c];Y.push({key:{status:"valid",value:c},value:V._parse(new l5(l,d,l.path,c)),alwaysSet:c in l.data})}if(this._def.catchall instanceof jA){let c=this._def.unknownKeys;if(c==="passthrough")for(let V of N)Y.push({key:{status:"valid",value:V},value:{status:"valid",value:l.data[V]}});else if(c==="strict"){if(N.length>0)cl(l,{code:LZ.unrecognized_keys,keys:N}),Z.dirty()}else if(c==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let V of N){let d=l.data[V];Y.push({key:{status:"valid",value:V},value:c._parse(new l5(l,d,l.path,V)),alwaysSet:V in l.data})}}if(l.common.async)return Promise.resolve().then(async()=>{let c=[];for(let V of Y){let d=await V.key,m=await V.value;c.push({key:d,value:m,alwaysSet:V.alwaysSet})}return c}).then((c)=>{return am.mergeObjectSync(Z,c)});else return am.mergeObjectSync(Z,Y)}get shape(){return this._def.shape()}strict(I){return sl.errToObj,new TV({...this._def,unknownKeys:"strict",...I!==void 0?{errorMap:(G,Z)=>{let l=this._def.errorMap?.(G,Z).message??Z.defaultError;if(G.code==="unrecognized_keys")return{message:sl.errToObj(I).message??l};return{message:l}}}:{}})}strip(){return new TV({...this._def,unknownKeys:"strip"})}passthrough(){return new TV({...this._def,unknownKeys:"passthrough"})}extend(I){return new TV({...this._def,shape:()=>({...this._def.shape(),...I})})}merge(I){return new TV({unknownKeys:I._def.unknownKeys,catchall:I._def.catchall,shape:()=>({...this._def.shape(),...I._def.shape()}),typeName:gZ.ZodObject})}setKey(I,G){return this.augment({[I]:G})}catchall(I){return new TV({...this._def,catchall:I})}pick(I){let G={};for(let Z of tW.objectKeys(I))if(I[Z]&&this.shape[Z])G[Z]=this.shape[Z];return new TV({...this._def,shape:()=>G})}omit(I){let G={};for(let Z of tW.objectKeys(this.shape))if(!I[Z])G[Z]=this.shape[Z];return new TV({...this._def,shape:()=>G})}deepPartial(){return lK(this)}partial(I){let G={};for(let Z of tW.objectKeys(this.shape)){let l=this.shape[Z];if(I&&!I[Z])G[Z]=l;else G[Z]=l.optional()}return new TV({...this._def,shape:()=>G})}required(I){let G={};for(let Z of tW.objectKeys(this.shape))if(I&&!I[Z])G[Z]=this.shape[Z];else{let b=this.shape[Z];while(b instanceof Z5)b=b._def.innerType;G[Z]=b}return new TV({...this._def,shape:()=>G})}keyof(){return RTG(tW.objectKeys(this.shape))}}TV.create=(I,G)=>{return new TV({shape:()=>I,unknownKeys:"strip",catchall:jA.create(),typeName:gZ.ZodObject,...EW(G)})};TV.strictCreate=(I,G)=>{return new TV({shape:()=>I,unknownKeys:"strict",catchall:jA.create(),typeName:gZ.ZodObject,...EW(G)})};TV.lazycreate=(I,G)=>{return new TV({shape:I,unknownKeys:"strip",catchall:jA.create(),typeName:gZ.ZodObject,...EW(G)})};class cK extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z=this._def.options;function l(b){for(let N of b)if(N.result.status==="valid")return N.result;for(let N of b)if(N.result.status==="dirty")return G.common.issues.push(...N.ctx.common.issues),N.result;let W=b.map((N)=>new b1(N.ctx.common.issues));return cl(G,{code:LZ.invalid_union,unionErrors:W}),qb}if(G.common.async)return Promise.all(Z.map(async(b)=>{let W={...G,common:{...G.common,issues:[]},parent:null};return{result:await b._parseAsync({data:G.data,path:G.path,parent:W}),ctx:W}})).then(l);else{let b=void 0,W=[];for(let Y of Z){let c={...G,common:{...G.common,issues:[]},parent:null},V=Y._parseSync({data:G.data,path:G.path,parent:c});if(V.status==="valid")return V;else if(V.status==="dirty"&&!b)b={result:V,ctx:c};if(c.common.issues.length)W.push(c.common.issues)}if(b)return G.common.issues.push(...b.ctx.common.issues),b.result;let N=W.map((Y)=>new b1(Y));return cl(G,{code:LZ.invalid_union,unionErrors:N}),qb}}get options(){return this._def.options}}cK.create=(I,G)=>{return new cK({options:I,typeName:gZ.ZodUnion,...EW(G)})};var kv=(I)=>{if(I instanceof dK)return kv(I.schema);else if(I instanceof b5)return kv(I.innerType());else if(I instanceof mK)return[I.value];else if(I instanceof Wu)return I.options;else if(I instanceof QK)return tW.objectValues(I.enum);else if(I instanceof XK)return kv(I._def.innerType);else if(I instanceof NK)return[void 0];else if(I instanceof YK)return[null];else if(I instanceof Z5)return[void 0,...kv(I.unwrap())];else if(I instanceof Uv)return[null,...kv(I.unwrap())];else if(I instanceof $lI)return kv(I.unwrap());else if(I instanceof RK)return kv(I.unwrap());else if(I instanceof FK)return kv(I._def.innerType);else return[]};class flI extends qW{_parse(I){let{ctx:G}=this._processInputParams(I);if(G.parsedType!==PZ.object)return cl(G,{code:LZ.invalid_type,expected:PZ.object,received:G.parsedType}),qb;let Z=this.discriminator,l=G.data[Z],b=this.optionsMap.get(l);if(!b)return cl(G,{code:LZ.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Z]}),qb;if(G.common.async)return b._parseAsync({data:G.data,path:G.path,parent:G});else return b._parseSync({data:G.data,path:G.path,parent:G})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(I,G,Z){let l=new Map;for(let b of G){let W=kv(b.shape[I]);if(!W.length)throw Error(`A discriminator value for key \`${I}\` could not be extracted from all schema options`);for(let N of W){if(l.has(N))throw Error(`Discriminator property ${String(I)} has duplicate value ${String(N)}`);l.set(N,b)}}return new flI({typeName:gZ.ZodDiscriminatedUnion,discriminator:I,options:G,optionsMap:l,...EW(Z)})}}function f3I(I,G){let Z=nA(I),l=nA(G);if(I===G)return{valid:!0,data:I};else if(Z===PZ.object&&l===PZ.object){let b=tW.objectKeys(G),W=tW.objectKeys(I).filter((Y)=>b.indexOf(Y)!==-1),N={...I,...G};for(let Y of W){let c=f3I(I[Y],G[Y]);if(!c.valid)return{valid:!1};N[Y]=c.data}return{valid:!0,data:N}}else if(Z===PZ.array&&l===PZ.array){if(I.length!==G.length)return{valid:!1};let b=[];for(let W=0;W<I.length;W++){let N=I[W],Y=G[W],c=f3I(N,Y);if(!c.valid)return{valid:!1};b.push(c.data)}return{valid:!0,data:b}}else if(Z===PZ.date&&l===PZ.date&&+I===+G)return{valid:!0,data:I};else return{valid:!1}}class VK extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I),l=(b,W)=>{if(_lI(b)||_lI(W))return qb;let N=f3I(b.value,W.value);if(!N.valid)return cl(Z,{code:LZ.invalid_intersection_types}),qb;if(slI(b)||slI(W))G.dirty();return{status:G.value,value:N.data}};if(Z.common.async)return Promise.all([this._def.left._parseAsync({data:Z.data,path:Z.path,parent:Z}),this._def.right._parseAsync({data:Z.data,path:Z.path,parent:Z})]).then(([b,W])=>l(b,W));else return l(this._def.left._parseSync({data:Z.data,path:Z.path,parent:Z}),this._def.right._parseSync({data:Z.data,path:Z.path,parent:Z}))}}VK.create=(I,G,Z)=>{return new VK({left:I,right:G,typeName:gZ.ZodIntersection,...EW(Z)})};class qA extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.array)return cl(Z,{code:LZ.invalid_type,expected:PZ.array,received:Z.parsedType}),qb;if(Z.data.length<this._def.items.length)return cl(Z,{code:LZ.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),qb;if(!this._def.rest&&Z.data.length>this._def.items.length)cl(Z,{code:LZ.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),G.dirty();let b=[...Z.data].map((W,N)=>{let Y=this._def.items[N]||this._def.rest;if(!Y)return null;return Y._parse(new l5(Z,W,Z.path,N))}).filter((W)=>!!W);if(Z.common.async)return Promise.all(b).then((W)=>{return am.mergeArray(G,W)});else return am.mergeArray(G,b)}get items(){return this._def.items}rest(I){return new qA({...this._def,rest:I})}}qA.create=(I,G)=>{if(!Array.isArray(I))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new qA({items:I,typeName:gZ.ZodTuple,rest:null,...EW(G)})};class JS extends qW{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.object)return cl(Z,{code:LZ.invalid_type,expected:PZ.object,received:Z.parsedType}),qb;let l=[],b=this._def.keyType,W=this._def.valueType;for(let N in Z.data)l.push({key:b._parse(new l5(Z,N,Z.path,N)),value:W._parse(new l5(Z,Z.data[N],Z.path,N)),alwaysSet:N in Z.data});if(Z.common.async)return am.mergeObjectAsync(G,l);else return am.mergeObjectSync(G,l)}get element(){return this._def.valueType}static create(I,G,Z){if(G instanceof qW)return new JS({keyType:I,valueType:G,typeName:gZ.ZodRecord,...EW(Z)});return new JS({keyType:I5.create(),valueType:I,typeName:gZ.ZodRecord,...EW(G)})}}class AS extends qW{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.map)return cl(Z,{code:LZ.invalid_type,expected:PZ.map,received:Z.parsedType}),qb;let l=this._def.keyType,b=this._def.valueType,W=[...Z.data.entries()].map(([N,Y],c)=>{return{key:l._parse(new l5(Z,N,Z.path,[c,"key"])),value:b._parse(new l5(Z,Y,Z.path,[c,"value"]))}});if(Z.common.async){let N=new Map;return Promise.resolve().then(async()=>{for(let Y of W){let c=await Y.key,V=await Y.value;if(c.status==="aborted"||V.status==="aborted")return qb;if(c.status==="dirty"||V.status==="dirty")G.dirty();N.set(c.value,V.value)}return{status:G.value,value:N}})}else{let N=new Map;for(let Y of W){let{key:c,value:V}=Y;if(c.status==="aborted"||V.status==="aborted")return qb;if(c.status==="dirty"||V.status==="dirty")G.dirty();N.set(c.value,V.value)}return{status:G.value,value:N}}}}AS.create=(I,G,Z)=>{return new AS({valueType:G,keyType:I,typeName:gZ.ZodMap,...EW(Z)})};class Sa extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.set)return cl(Z,{code:LZ.invalid_type,expected:PZ.set,received:Z.parsedType}),qb;let l=this._def;if(l.minSize!==null){if(Z.data.size<l.minSize.value)cl(Z,{code:LZ.too_small,minimum:l.minSize.value,type:"set",inclusive:!0,exact:!1,message:l.minSize.message}),G.dirty()}if(l.maxSize!==null){if(Z.data.size>l.maxSize.value)cl(Z,{code:LZ.too_big,maximum:l.maxSize.value,type:"set",inclusive:!0,exact:!1,message:l.maxSize.message}),G.dirty()}let b=this._def.valueType;function W(Y){let c=new Set;for(let V of Y){if(V.status==="aborted")return qb;if(V.status==="dirty")G.dirty();c.add(V.value)}return{status:G.value,value:c}}let N=[...Z.data.values()].map((Y,c)=>b._parse(new l5(Z,Y,Z.path,c)));if(Z.common.async)return Promise.all(N).then((Y)=>W(Y));else return W(N)}min(I,G){return new Sa({...this._def,minSize:{value:I,message:sl.toString(G)}})}max(I,G){return new Sa({...this._def,maxSize:{value:I,message:sl.toString(G)}})}size(I,G){return this.min(I,G).max(I,G)}nonempty(I){return this.min(1,I)}}Sa.create=(I,G)=>{return new Sa({valueType:I,minSize:null,maxSize:null,typeName:gZ.ZodSet,...EW(G)})};class bK extends qW{constructor(){super(...arguments);this.validate=this.implement}_parse(I){let{ctx:G}=this._processInputParams(I);if(G.parsedType!==PZ.function)return cl(G,{code:LZ.invalid_type,expected:PZ.function,received:G.parsedType}),qb;function Z(N,Y){return HS({data:N,path:G.path,errorMaps:[G.common.contextualErrorMap,G.schemaErrorMap,GK(),Bv].filter((c)=>!!c),issueData:{code:LZ.invalid_arguments,argumentsError:Y}})}function l(N,Y){return HS({data:N,path:G.path,errorMaps:[G.common.contextualErrorMap,G.schemaErrorMap,GK(),Bv].filter((c)=>!!c),issueData:{code:LZ.invalid_return_type,returnTypeError:Y}})}let b={errorMap:G.common.contextualErrorMap},W=G.data;if(this._def.returns instanceof ia){let N=this;return OQ(async function(...Y){let c=new b1([]),V=await N._def.args.parseAsync(Y,b).catch((X)=>{throw c.addIssue(Z(Y,X)),c}),d=await Reflect.apply(W,this,V);return await N._def.returns._def.type.parseAsync(d,b).catch((X)=>{throw c.addIssue(l(d,X)),c})})}else{let N=this;return OQ(function(...Y){let c=N._def.args.safeParse(Y,b);if(!c.success)throw new b1([Z(Y,c.error)]);let V=Reflect.apply(W,this,c.data),d=N._def.returns.safeParse(V,b);if(!d.success)throw new b1([l(V,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...I){return new bK({...this._def,args:qA.create(I).rest(Zu.create())})}returns(I){return new bK({...this._def,returns:I})}implement(I){return this.parse(I)}strictImplement(I){return this.parse(I)}static create(I,G,Z){return new bK({args:I?I:qA.create([]).rest(Zu.create()),returns:G||Zu.create(),typeName:gZ.ZodFunction,...EW(Z)})}}class dK extends qW{get schema(){return this._def.getter()}_parse(I){let{ctx:G}=this._processInputParams(I);return this._def.getter()._parse({data:G.data,path:G.path,parent:G})}}dK.create=(I,G)=>{return new dK({getter:I,typeName:gZ.ZodLazy,...EW(G)})};class mK extends qW{_parse(I){if(I.data!==this._def.value){let G=this._getOrReturnCtx(I);return cl(G,{received:G.data,code:LZ.invalid_literal,expected:this._def.value}),qb}return{status:"valid",value:I.data}}get value(){return this._def.value}}mK.create=(I,G)=>{return new mK({value:I,typeName:gZ.ZodLiteral,...EW(G)})};function RTG(I,G){return new Wu({values:I,typeName:gZ.ZodEnum,...EW(G)})}class Wu extends qW{_parse(I){if(typeof I.data!=="string"){let G=this._getOrReturnCtx(I),Z=this._def.values;return cl(G,{expected:tW.joinValues(Z),received:G.parsedType,code:LZ.invalid_type}),qb}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(I.data)){let G=this._getOrReturnCtx(I),Z=this._def.values;return cl(G,{received:G.data,code:LZ.invalid_enum_value,options:Z}),qb}return OQ(I.data)}get options(){return this._def.values}get enum(){let I={};for(let G of this._def.values)I[G]=G;return I}get Values(){let I={};for(let G of this._def.values)I[G]=G;return I}get Enum(){let I={};for(let G of this._def.values)I[G]=G;return I}extract(I,G=this._def){return Wu.create(I,{...this._def,...G})}exclude(I,G=this._def){return Wu.create(this.options.filter((Z)=>!I.includes(Z)),{...this._def,...G})}}Wu.create=RTG;class QK extends qW{_parse(I){let G=tW.getValidEnumValues(this._def.values),Z=this._getOrReturnCtx(I);if(Z.parsedType!==PZ.string&&Z.parsedType!==PZ.number){let l=tW.objectValues(G);return cl(Z,{expected:tW.joinValues(l),received:Z.parsedType,code:LZ.invalid_type}),qb}if(!this._cache)this._cache=new Set(tW.getValidEnumValues(this._def.values));if(!this._cache.has(I.data)){let l=tW.objectValues(G);return cl(Z,{received:Z.data,code:LZ.invalid_enum_value,options:l}),qb}return OQ(I.data)}get enum(){return this._def.values}}QK.create=(I,G)=>{return new QK({values:I,typeName:gZ.ZodNativeEnum,...EW(G)})};class ia extends qW{unwrap(){return this._def.type}_parse(I){let{ctx:G}=this._processInputParams(I);if(G.parsedType!==PZ.promise&&G.common.async===!1)return cl(G,{code:LZ.invalid_type,expected:PZ.promise,received:G.parsedType}),qb;let Z=G.parsedType===PZ.promise?G.data:Promise.resolve(G.data);return OQ(Z.then((l)=>{return this._def.type.parseAsync(l,{path:G.path,errorMap:G.common.contextualErrorMap})}))}}ia.create=(I,G)=>{return new ia({type:I,typeName:gZ.ZodPromise,...EW(G)})};class b5 extends qW{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===gZ.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(I){let{status:G,ctx:Z}=this._processInputParams(I),l=this._def.effect||null,b={addIssue:(W)=>{if(cl(Z,W),W.fatal)G.abort();else G.dirty()},get path(){return Z.path}};if(b.addIssue=b.addIssue.bind(b),l.type==="preprocess"){let W=l.transform(Z.data,b);if(Z.common.async)return Promise.resolve(W).then(async(N)=>{if(G.value==="aborted")return qb;let Y=await this._def.schema._parseAsync({data:N,path:Z.path,parent:Z});if(Y.status==="aborted")return qb;if(Y.status==="dirty")return ja(Y.value);if(G.value==="dirty")return ja(Y.value);return Y});else{if(G.value==="aborted")return qb;let N=this._def.schema._parseSync({data:W,path:Z.path,parent:Z});if(N.status==="aborted")return qb;if(N.status==="dirty")return ja(N.value);if(G.value==="dirty")return ja(N.value);return N}}if(l.type==="refinement"){let W=(N)=>{let Y=l.refinement(N,b);if(Z.common.async)return Promise.resolve(Y);if(Y instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return N};if(Z.common.async===!1){let N=this._def.schema._parseSync({data:Z.data,path:Z.path,parent:Z});if(N.status==="aborted")return qb;if(N.status==="dirty")G.dirty();return W(N.value),{status:G.value,value:N.value}}else return this._def.schema._parseAsync({data:Z.data,path:Z.path,parent:Z}).then((N)=>{if(N.status==="aborted")return qb;if(N.status==="dirty")G.dirty();return W(N.value).then(()=>{return{status:G.value,value:N.value}})})}if(l.type==="transform")if(Z.common.async===!1){let W=this._def.schema._parseSync({data:Z.data,path:Z.path,parent:Z});if(!Gu(W))return qb;let N=l.transform(W.value,b);if(N instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:G.value,value:N}}else return this._def.schema._parseAsync({data:Z.data,path:Z.path,parent:Z}).then((W)=>{if(!Gu(W))return qb;return Promise.resolve(l.transform(W.value,b)).then((N)=>({status:G.value,value:N}))});tW.assertNever(l)}}b5.create=(I,G,Z)=>{return new b5({schema:I,typeName:gZ.ZodEffects,effect:G,...EW(Z)})};b5.createWithPreprocess=(I,G,Z)=>{return new b5({schema:G,effect:{type:"preprocess",transform:I},typeName:gZ.ZodEffects,...EW(Z)})};class Z5 extends qW{_parse(I){if(this._getType(I)===PZ.undefined)return OQ(void 0);return this._def.innerType._parse(I)}unwrap(){return this._def.innerType}}Z5.create=(I,G)=>{return new Z5({innerType:I,typeName:gZ.ZodOptional,...EW(G)})};class Uv extends qW{_parse(I){if(this._getType(I)===PZ.null)return OQ(null);return this._def.innerType._parse(I)}unwrap(){return this._def.innerType}}Uv.create=(I,G)=>{return new Uv({innerType:I,typeName:gZ.ZodNullable,...EW(G)})};class XK extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z=G.data;if(G.parsedType===PZ.undefined)Z=this._def.defaultValue();return this._def.innerType._parse({data:Z,path:G.path,parent:G})}removeDefault(){return this._def.innerType}}XK.create=(I,G)=>{return new XK({innerType:I,typeName:gZ.ZodDefault,defaultValue:typeof G.default==="function"?G.default:()=>G.default,...EW(G)})};class FK extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z={...G,common:{...G.common,issues:[]}},l=this._def.innerType._parse({data:Z.data,path:Z.path,parent:{...Z}});if(ZK(l))return l.then((b)=>{return{status:"valid",value:b.status==="valid"?b.value:this._def.catchValue({get error(){return new b1(Z.common.issues)},input:Z.data})}});else return{status:"valid",value:l.status==="valid"?l.value:this._def.catchValue({get error(){return new b1(Z.common.issues)},input:Z.data})}}removeCatch(){return this._def.innerType}}FK.create=(I,G)=>{return new FK({innerType:I,typeName:gZ.ZodCatch,catchValue:typeof G.catch==="function"?G.catch:()=>G.catch,...EW(G)})};class ES extends qW{_parse(I){if(this._getType(I)!==PZ.nan){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.nan,received:Z.parsedType}),qb}return{status:"valid",value:I.data}}}ES.create=(I)=>{return new ES({typeName:gZ.ZodNaN,...EW(I)})};var vyb=Symbol("zod_brand");class $lI extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z=G.data;return this._def.type._parse({data:Z,path:G.path,parent:G})}unwrap(){return this._def.type}}class vS extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.common.async)return(async()=>{let b=await this._def.in._parseAsync({data:Z.data,path:Z.path,parent:Z});if(b.status==="aborted")return qb;if(b.status==="dirty")return G.dirty(),ja(b.value);else return this._def.out._parseAsync({data:b.value,path:Z.path,parent:Z})})();else{let l=this._def.in._parseSync({data:Z.data,path:Z.path,parent:Z});if(l.status==="aborted")return qb;if(l.status==="dirty")return G.dirty(),{status:"dirty",value:l.value};else return this._def.out._parseSync({data:l.value,path:Z.path,parent:Z})}}static create(I,G){return new vS({in:I,out:G,typeName:gZ.ZodPipeline})}}class RK extends qW{_parse(I){let G=this._def.innerType._parse(I),Z=(l)=>{if(Gu(l))l.value=Object.freeze(l.value);return l};return ZK(G)?G.then((l)=>Z(l)):Z(G)}unwrap(){return this._def.innerType}}RK.create=(I,G)=>{return new RK({innerType:I,typeName:gZ.ZodReadonly,...EW(G)})};function mTG(I,G){let Z=typeof I==="function"?I(G):typeof I==="string"?{message:I}:I;return typeof Z==="string"?{message:Z}:Z}function HTG(I,G={},Z){if(I)return Ta.create().superRefine((l,b)=>{let W=I(l);if(W instanceof Promise)return W.then((N)=>{if(!N){let Y=mTG(G,l),c=Y.fatal??Z??!0;b.addIssue({code:"custom",...Y,fatal:c})}});if(!W){let N=mTG(G,l),Y=N.fatal??Z??!0;b.addIssue({code:"custom",...N,fatal:Y})}return});return Ta.create()}var Cyb={object:TV.lazycreate},gZ;(function(I){I.ZodString="ZodString",I.ZodNumber="ZodNumber",I.ZodNaN="ZodNaN",I.ZodBigInt="ZodBigInt",I.ZodBoolean="ZodBoolean",I.ZodDate="ZodDate",I.ZodSymbol="ZodSymbol",I.ZodUndefined="ZodUndefined",I.ZodNull="ZodNull",I.ZodAny="ZodAny",I.ZodUnknown="ZodUnknown",I.ZodNever="ZodNever",I.ZodVoid="ZodVoid",I.ZodArray="ZodArray",I.ZodObject="ZodObject",I.ZodUnion="ZodUnion",I.ZodDiscriminatedUnion="ZodDiscriminatedUnion",I.ZodIntersection="ZodIntersection",I.ZodTuple="ZodTuple",I.ZodRecord="ZodRecord",I.ZodMap="ZodMap",I.ZodSet="ZodSet",I.ZodFunction="ZodFunction",I.ZodLazy="ZodLazy",I.ZodLiteral="ZodLiteral",I.ZodEnum="ZodEnum",I.ZodEffects="ZodEffects",I.ZodNativeEnum="ZodNativeEnum",I.ZodOptional="ZodOptional",I.ZodNullable="ZodNullable",I.ZodDefault="ZodDefault",I.ZodCatch="ZodCatch",I.ZodPromise="ZodPromise",I.ZodBranded="ZodBranded",I.ZodPipeline="ZodPipeline",I.ZodReadonly="ZodReadonly"})(gZ||(gZ={}));var pyb=(I,G={message:`Input not instance of ${I.name}`})=>HTG((Z)=>Z instanceof I,G),hTG=I5.create,wTG=lu.create,yyb=ES.create,uyb=bu.create,JTG=WK.create,Lyb=qa.create,gyb=hS.create,ayb=NK.create,zyb=YK.create,Byb=Ta.create,kyb=Zu.create,Uyb=jA.create,xyb=wS.create,Oyb=G5.create,Myb=TV.create,Kyb=TV.strictCreate,Dyb=cK.create,nyb=flI.create,jyb=VK.create,qyb=qA.create,Tyb=JS.create,Syb=AS.create,iyb=Sa.create,Pyb=bK.create,_yb=dK.create,syb=mK.create,fyb=Wu.create,$yb=QK.create,oyb=ia.create,tyb=b5.create,ryb=Z5.create,eyb=Uv.create,Iub=b5.createWithPreprocess,Gub=vS.create,Zub=()=>hTG().optional(),lub=()=>wTG().optional(),bub=()=>JTG().optional(),Wub={string:(I)=>I5.create({...I,coerce:!0}),number:(I)=>lu.create({...I,coerce:!0}),boolean:(I)=>WK.create({...I,coerce:!0}),bigint:(I)=>bu.create({...I,coerce:!0}),date:(I)=>qa.create({...I,coerce:!0})};var Nub=qb;var olI=_G.object({name:_G.string().optional(),description:_G.string().optional(),tools:_G.string().optional(),disallowedTools:_G.string().optional(),model:_G.enum(["sonnet","opus","haiku","inherit"]).optional().default("inherit"),permissionMode:_G.enum(["default","acceptEdits","dontAsk","bypassPermissions","plan"]).optional(),maxTurns:_G.number().optional()});var Yub=/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;function ATG(I){let G=I.match(Yub);if(!G)return{frontmatter:olI.parse({}),body:I.trim()};let Z=G[1],l=G[2].trim(),b={};for(let W of Z.split(`
|
|
615
|
+
`)}function MqG(I){try{let G=upb(I),Z=G.readSync();return G.closeSync(),Z===null}catch(G){return DG(`Error checking directory: ${G}`),!1}}function YM(){let I=ab();if(!I.hasCompletedProjectOnboarding)HN({...I,hasCompletedProjectOnboarding:!0})}function Kpb(){let I=fZ();YW({...I,lastReleaseNotesSeen:"1.3.1"})}function u3I({workspaceDir:I}){let Z=!ab().hasCompletedProjectOnboarding,b=fZ().lastReleaseNotesSeen,W=[];if(!b||KqG.gt("1.3.1",b))W=jZI["1.3.1"]||[];let N=W.length>0;if(Xb.useEffect(()=>{if(N&&!Z)Kpb()},[N,Z]),!Z&&!N)return null;let Y=xpb(Opb(I,"CLAUDE.md")),c=MqG(I),V=!Y&&!c,d=NM.isEnabled&&!fZ().shiftEnterKeyBindingInstalled,m=XG();return Xb.createElement(GI,{flexDirection:"column",gap:1,padding:1,paddingBottom:0},Z&&Xb.createElement(Xb.Fragment,null,Xb.createElement(K,{color:m.secondaryText},"Tips for getting started:"),Xb.createElement(Cm,null,(()=>{let X=[];if(c)X.push(Xb.createElement(Cm.Item,{key:"workspace"},Xb.createElement(K,{color:m.secondaryText},"Ask Claude to create a new app or clone a repository.")));if(V)X.push(Xb.createElement(Cm.Item,{key:"claudemd"},Xb.createElement(K,{color:m.secondaryText},"Run ",Xb.createElement(K,{color:m.text},"/init")," to create a CLAUDE.md file with instructions for Claude.")));if(d)X.push(Xb.createElement(Cm.Item,{key:"terminal"},Xb.createElement(K,{color:m.secondaryText},"Run ",Xb.createElement(K,{color:m.text},"/terminal-setup"),Xb.createElement(K,{bold:!1}," to set up terminal integration"))));return X.push(Xb.createElement(Cm.Item,{key:"questions"},Xb.createElement(K,{color:m.secondaryText},"Ask Claude questions about your codebase."))),X.push(Xb.createElement(Cm.Item,{key:"changes"},Xb.createElement(K,{color:m.secondaryText},"Ask Claude to implement changes to your codebase."))),X})())),!Z&&N&&Xb.createElement(GI,{borderColor:XG().secondaryBorder,flexDirection:"column",marginRight:1},Xb.createElement(GI,{flexDirection:"column",gap:0},Xb.createElement(GI,{marginBottom:1},Xb.createElement(K,null,"\uD83C\uDD95 What's new in v","1.3.1",":")),Xb.createElement(GI,{flexDirection:"column",marginLeft:1},W.map((X,R)=>Xb.createElement(K,{key:R,color:XG().secondaryText},"• ",X))))),I===Mpb()&&Xb.createElement(K,{color:XG().warning},"Note: You have launched ",Xb.createElement(K,{bold:!0},"claude")," in your home directory. For the best experience, launch it in a project directory instead."))}var Iu=hI(YG(),1);var tM=hI(YG(),1);var FS=hI(YG(),1);function L3I({isFocused:I,isSelected:G,smallPointer:Z,children:l}){let{styles:b}=AY("Select");return FS.default.createElement(GI,{...b.option({isFocused:I})},I&&FS.default.createElement(K,{...b.focusIndicator()},Z?YN.triangleDownSmall:YN.pointer),FS.default.createElement(K,{...b.label({isFocused:I,isSelected:G})},l),G&&FS.default.createElement(K,{...b.selectedIndicator()},YN.tick))}var l1=hI(YG(),1);import{isDeepStrictEqual as Dpb}from"node:util";class jlI extends Map{first;constructor(I){let G=[],Z,l,b=0;for(let W of I){let N={...W,previous:l,next:void 0,index:b};if(l)l.next=N;Z||=N;let Y="value"in W?W.value:g3I(W);G.push([Y,N]),b++,l=N}super(G);this.first=Z}}var npb=(I,G)=>{switch(G.type){case"focus-next-option":{if(!I.focusedValue)return I;let Z=I.optionMap.get(I.focusedValue);if(!Z)return I;let l=Z.next;while(l&&!("value"in l))l=l.next;if(!l)return I;let b="value"in l?l.value:I.focusedValue;if(!(l.index>=I.visibleToIndex))return{...I,focusedValue:b};let N=Math.min(I.optionMap.size,I.visibleToIndex+1),Y=N-I.visibleOptionCount;return{...I,focusedValue:b,visibleFromIndex:Y,visibleToIndex:N}}case"focus-previous-option":{if(!I.focusedValue)return I;let Z=I.optionMap.get(I.focusedValue);if(!Z)return I;let l=Z.previous;while(l&&!("value"in l))l=l.previous;if(!l)return I;let b="value"in l?l.value:I.focusedValue;if(!(l.index<=I.visibleFromIndex))return{...I,focusedValue:b};let N=Math.max(0,I.visibleFromIndex-1),Y=N+I.visibleOptionCount;return{...I,focusedValue:b,visibleFromIndex:N,visibleToIndex:Y}}case"select-focused-option":return{...I,previousValue:I.value,value:I.focusedValue};case"reset":return G.state;case"set-focus":return{...I,focusedValue:G.value}}},a3I=(I)=>I.flatMap((G)=>{if("options"in G){let Z=a3I(G.options),l=Z.flatMap((W)=>("value"in W)?W.value:[]);return[...G.header!==void 0?[{header:G.header,optionValues:l}]:[],...Z]}return G}),DqG=({visibleOptionCount:I,defaultValue:G,options:Z})=>{let l=a3I(Z),b=typeof I==="number"?Math.min(I,l.length):l.length,W=new jlI(l),N=W.first,Y=N&&"value"in N?N.value:void 0;return{optionMap:W,visibleOptionCount:b,focusedValue:Y,visibleFromIndex:0,visibleToIndex:b,previousValue:G,value:G}},z3I=({visibleOptionCount:I=5,options:G,defaultValue:Z,onChange:l,onFocus:b,focusValue:W})=>{let N=a3I(G),[Y,c]=l1.useReducer(npb,{visibleOptionCount:I,defaultValue:Z,options:G},DqG),[V,d]=l1.useState(N);if(N!==V&&!Dpb(N,V))c({type:"reset",state:DqG({visibleOptionCount:I,defaultValue:Z,options:G})}),d(N);let m=l1.useCallback(()=>{c({type:"focus-next-option"})},[]),X=l1.useCallback(()=>{c({type:"focus-previous-option"})},[]),R=l1.useCallback(()=>{c({type:"select-focused-option"})},[]),H=l1.useMemo(()=>{return N.map((w,A)=>({...w,index:A})).slice(Y.visibleFromIndex,Y.visibleToIndex)},[N,Y.visibleFromIndex,Y.visibleToIndex]);return l1.useEffect(()=>{if(Y.value&&Y.previousValue!==Y.value)l?.(Y.value)},[Y.previousValue,Y.value,G,l]),l1.useEffect(()=>{if(Y.focusedValue)b?.(Y.focusedValue)},[Y.focusedValue,b]),l1.useEffect(()=>{if(W)c({type:"set-focus",value:W})},[W]),{focusedValue:Y.focusedValue,visibleFromIndex:Y.visibleFromIndex,visibleToIndex:Y.visibleToIndex,value:Y.value,visibleOptions:H,focusNextOption:m,focusPreviousOption:X,selectFocusedOption:R}};var B3I=({isDisabled:I=!1,state:G})=>{zb((Z,l)=>{if(l.downArrow)G.focusNextOption();if(l.upArrow)G.focusPreviousOption();if(l.return)G.selectFocusedOption()},{isActive:!I})};var g3I=(I)=>`HEADER-${I.optionValues.join(",")}`;function zv({isDisabled:I=!1,visibleOptionCount:G=5,highlightText:Z,options:l,defaultValue:b,onChange:W,onFocus:N,focusValue:Y}){let c=z3I({visibleOptionCount:G,options:l,defaultValue:b,onChange:W,onFocus:N,focusValue:Y});B3I({isDisabled:I,state:c});let{styles:V}=AY("Select");return tM.default.createElement(GI,{...V.container()},c.visibleOptions.map((d)=>{let m="value"in d?d.value:g3I(d),X=!I&&c.focusedValue!==void 0&&("value"in d?c.focusedValue===d.value:d.optionValues.includes(c.focusedValue)),R=!!c.value&&("value"in d?c.value===d.value:d.optionValues.includes(c.value)),H="header"in d,w="label"in d?d.label:d.header,A=w;if(Z&&w.includes(Z)){let y=w.indexOf(Z);A=tM.default.createElement(tM.default.Fragment,null,w.slice(0,y),tM.default.createElement(K,{...V.highlightedText()},Z),w.slice(y+Z.length))}return tM.default.createElement(L3I,{key:m,isFocused:X,isSelected:R,smallPointer:H},A)}))}var T3I=hI(YG(),1);var na=hI(rqG(),1);var eqG=process.env.TERM_PROGRAM==="Apple_Terminal",wN={};wN.cursorTo=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");if(typeof G!=="number")return"\x1B["+(I+1)+"G";return"\x1B["+(G+1)+";"+(I+1)+"H"};wN.cursorMove=(I,G)=>{if(typeof I!=="number")throw TypeError("The `x` argument is required");let Z="";if(I<0)Z+="\x1B["+-I+"D";else if(I>0)Z+="\x1B["+I+"C";if(G<0)Z+="\x1B["+-G+"A";else if(G>0)Z+="\x1B["+G+"B";return Z};wN.cursorUp=(I=1)=>"\x1B["+I+"A";wN.cursorDown=(I=1)=>"\x1B["+I+"B";wN.cursorForward=(I=1)=>"\x1B["+I+"C";wN.cursorBackward=(I=1)=>"\x1B["+I+"D";wN.cursorLeft="\x1B[G";wN.cursorSavePosition=eqG?"\x1B7":"\x1B[s";wN.cursorRestorePosition=eqG?"\x1B8":"\x1B[u";wN.cursorGetPosition="\x1B[6n";wN.cursorNextLine="\x1B[E";wN.cursorPrevLine="\x1B[F";wN.cursorHide="\x1B[?25l";wN.cursorShow="\x1B[?25h";wN.eraseLines=(I)=>{let G="";for(let Z=0;Z<I;Z++)G+=wN.eraseLine+(Z<I-1?wN.cursorUp():"");if(I)G+=wN.cursorLeft;return G};wN.eraseEndLine="\x1B[K";wN.eraseStartLine="\x1B[1K";wN.eraseLine="\x1B[2K";wN.eraseDown="\x1B[J";wN.eraseUp="\x1B[1J";wN.eraseScreen="\x1B[2J";wN.scrollUp="\x1B[S";wN.scrollDown="\x1B[T";wN.clearScreen="\x1Bc";wN.clearTerminal=process.platform==="win32"?`${wN.eraseScreen}\x1B[0f`:`${wN.eraseScreen}\x1B[3J\x1B[H`;wN.beep="\x07";wN.link=(I,G)=>{return["\x1B]","8",";",";",G,"\x07",I,"\x1B]","8",";",";","\x07"].join("")};wN.image=(I,G={})=>{let Z="\x1B]1337;File=inline=1";if(G.width)Z+=`;width=${G.width}`;if(G.height)Z+=`;height=${G.height}`;if(G.preserveAspectRatio===!1)Z+=";preserveAspectRatio=0";return Z+":"+I.toString("base64")+"\x07"};wN.iTerm={setCwd:(I=process.cwd())=>`\x1B]50;CurrentDir=${I}\x07`,annotation:(I,G={})=>{let Z="\x1B]1337;",l=typeof G.x<"u",b=typeof G.y<"u";if((l||b)&&!(l&&b&&typeof G.length<"u"))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(I=I.replace(/\|/g,""),Z+=G.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",G.length>0)Z+=(l?[I,G.length,G.x,G.y]:[G.length,I]).join("|");else Z+=I;return Z+"\x07"}};var ITG=wN;var TlI=hI(lTG(),1);function Da(I,G,{target:Z="stdout",...l}={}){if(!TlI.default[Z]){if(l.fallback===!1)return I;return typeof l.fallback==="function"?l.fallback(I,G):`${I} (${G})`}return ITG.link(I,G)}Da.isSupported=TlI.default.stdout;Da.stderr=(I,G,Z={})=>Da(I,G,{target:"stderr",...Z});Da.stderr.isSupported=TlI.default.stderr;var bTG=({children:I,url:G,fallback:Z=!0})=>T3I.default.createElement(zZI,{transform:(l)=>Da(l,G,{fallback:Z})},T3I.default.createElement(K,null,I));bTG.propTypes={children:na.default.oneOfType([na.default.arrayOf(na.default.node),na.default.node]).isRequired,url:na.default.string.isRequired,fallback:na.default.bool};var ry=bTG;var SlI=hI(YG(),1);var fpb=["iTerm.app","WezTerm","Hyper","VSCode"];function ey({url:I,children:G}){let Z=fpb.includes(Ol.terminal??""),l=G||I;if(Z||l!==I)return SlI.default.createElement(ry,{url:I},SlI.default.createElement(K,null,l));else return SlI.default.createElement(K,{underline:!0},l)}function WTG({onDone:I}){return zb((G,Z)=>{if(Z.ctrl&&(G==="c"||G==="d")||Z.escape)I()}),Iu.default.createElement(GI,{flexDirection:"column",borderStyle:"round",padding:1,borderColor:XG().secondaryBorder},Iu.default.createElement(GI,{marginBottom:1,flexDirection:"column"},Iu.default.createElement(K,{bold:!0},"You've spent $5 on the Anthropic API this session."),Iu.default.createElement(K,null,"Learn more about how to monitor your spending:"),Iu.default.createElement(ey,{url:"https://docs.anthropic.com/s/claude-code-cost"})),Iu.default.createElement(GI,null,Iu.default.createElement(zv,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:I})))}var ZW=hI(YG(),1),vN=hI(YG(),1);var fG=hI(YG(),1);var ilI=hI(YG(),1);function rN(){let[I,G]=ilI.useState({columns:process.stdout.columns||80,rows:process.stdout.rows||24});return ilI.useEffect(()=>{function Z(){G({columns:process.stdout.columns||80,rows:process.stdout.rows||24})}return process.stdout.on("resize",Z),()=>{process.stdout.off("resize",Z)}},[]),I}var i3I=hI(YG(),1);var S3I=[" ██████╗ ██╗ ██╗","██╔═══██╗██║ ██║","██║ ██║██║ █╗ ██║","╚██████╔╝╚███╔███╔╝"," ╚═══▀▀╝ ╚══╝╚══╝"],NTG=["#D97757","#DC8555","#E09353","#E49E4E","#E8A849"];function $pb(I,G,Z){let l=(N)=>({r:parseInt(N.slice(1,3),16),g:parseInt(N.slice(3,5),16),b:parseInt(N.slice(5,7),16)}),b=l(I),W=l(G);return Array.from({length:Z},(N,Y)=>{let c=Z===1?0:Y/(Z-1),V=Math.round(b.r+(W.r-b.r)*c),d=Math.round(b.g+(W.g-b.g)*c),m=Math.round(b.b+(W.b-b.b)*c);return`#${V.toString(16).padStart(2,"0")}${d.toString(16).padStart(2,"0")}${m.toString(16).padStart(2,"0")}`})}function PlI(){let I=XG(),Z=I.claude==="#ff9933"||I.claude==="#006699"||I.claude==="#3399ff"?S3I.map(()=>I.claude):$pb(NTG[0],NTG[4],S3I.length);return i3I.default.createElement(GI,{flexDirection:"column",alignItems:"flex-start"},S3I.map((l,b)=>i3I.default.createElement(K,{key:b,color:Z[b]},l)))}var P3I=46;function opb(I,G){if(I.length<=G)return I;return"..."+I.slice(I.length-G+3)}function YTG({mcpClients:I,theme:G}){if(!I.length)return null;return fG.createElement(K,null,fG.createElement(K,{color:G.secondaryText},"MCP: "),I.map((Z,l)=>fG.createElement(fG.Fragment,{key:l},l>0&&fG.createElement(K,{color:G.secondaryText}," · "),fG.createElement(K,{color:G.secondaryText},Z.name," "),fG.createElement(K,{bold:!0,color:Z.type==="connected"?G.success:G.error},Z.type==="connected"?"✓":"✗"))))}function cTG({mcpClients:I,isDefaultModel:G=!1}){let{columns:Z}=rN(),l=Z>=80,b=XG(),W=process.env.ANTHROPIC_MODEL,Y=fZ().model,c=sH(),V=!KGI(),d=!G&&Boolean(W),m=process.env.USER_TYPE==="ant"&&Boolean(V||process.env.DISABLE_PROMPT_CACHING||process.env.API_TIMEOUT_MS||process.env.MAX_THINKING_TOKENS||process.env.ANTHROPIC_BASE_URL||d),X="1.3.1",R=Y||W||"claude-sonnet-4-5-20250929",H=XZ(),w=l?Z-30:Z-12,A=opb(H,w),y=l?Math.min(Z-2,Math.max(78,H.length+12)):Math.max(P3I,Math.min(Z-2,H.length+12));if(l)return fG.createElement(GI,{flexDirection:"column"},fG.createElement(GI,{borderColor:b.claude,borderStyle:"round",flexDirection:"column",paddingLeft:1,paddingRight:1,width:y},fG.createElement(GI,{flexDirection:"row",gap:3,paddingTop:0},fG.createElement(GI,{flexDirection:"column",justifyContent:"center"},fG.createElement(PlI,null)),fG.createElement(GI,{flexDirection:"column",justifyContent:"center",gap:0},fG.createElement(K,null,fG.createElement(K,{bold:!0,color:b.claude},hN),fG.createElement(K,{color:b.secondaryText}," v","1.3.1")),fG.createElement(K,{color:b.secondaryText},R),fG.createElement(K,{color:b.secondaryText,italic:!0},"/help for help"),fG.createElement(K,null," "),fG.createElement(K,{color:b.secondaryText},"cwd: ",A))),m&&fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"column",marginLeft:2,marginRight:1,paddingTop:1},fG.createElement(GI,{marginBottom:1},fG.createElement(K,{color:b.secondaryText},"Overrides (via env):")),d&&fG.createElement(K,{color:b.secondaryText},"• Model: ",fG.createElement(K,{bold:!0},W)),V&&c?fG.createElement(K,{color:b.secondaryText},"• API Key: ",fG.createElement(K,{bold:!0},"sk-ant-…",c.slice(-y+25))):null,process.env.DISABLE_PROMPT_CACHING?fG.createElement(K,{color:b.secondaryText},"• Prompt caching:"," ",fG.createElement(K,{color:b.error,bold:!0},"off")):null,process.env.API_TIMEOUT_MS?fG.createElement(K,{color:b.secondaryText},"• API timeout: ",fG.createElement(K,{bold:!0},process.env.API_TIMEOUT_MS,"ms")):null,process.env.MAX_THINKING_TOKENS?fG.createElement(K,{color:b.secondaryText},"• Max thinking tokens: ",fG.createElement(K,{bold:!0},process.env.MAX_THINKING_TOKENS)):null,process.env.ANTHROPIC_BASE_URL?fG.createElement(K,{color:b.secondaryText},"• API Base URL: ",fG.createElement(K,{bold:!0},process.env.ANTHROPIC_BASE_URL)):null),I.length?fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"row",marginLeft:1,marginRight:1,paddingTop:1,paddingBottom:0},fG.createElement(YTG,{mcpClients:I,theme:b})):null));return fG.createElement(GI,{flexDirection:"column"},fG.createElement(GI,{borderColor:b.claude,borderStyle:"round",flexDirection:"column",gap:1,paddingLeft:1,width:y},fG.createElement(K,null,fG.createElement(K,{color:b.claude},"✦")," ",fG.createElement(K,{bold:!0},hN),fG.createElement(K,{color:b.secondaryText}," v","1.3.1")),fG.createElement(GI,{paddingLeft:2,flexDirection:"column",gap:1},fG.createElement(K,{color:b.secondaryText},R),fG.createElement(K,{color:b.secondaryText,italic:!0},"/help for help"),fG.createElement(K,{color:b.secondaryText},"cwd: ",A)),m&&fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"column",marginLeft:2,marginRight:1,paddingTop:1},fG.createElement(GI,{marginBottom:1},fG.createElement(K,{color:b.secondaryText},"Overrides (via env):")),d&&fG.createElement(K,{color:b.secondaryText},"• Model: ",fG.createElement(K,{bold:!0},W)),V&&c?fG.createElement(K,{color:b.secondaryText},"• API Key: ",fG.createElement(K,{bold:!0},"sk-ant-…",c.slice(-y+25))):null,process.env.DISABLE_PROMPT_CACHING?fG.createElement(K,{color:b.secondaryText},"• Prompt caching:"," ",fG.createElement(K,{color:b.error,bold:!0},"off")):null,process.env.API_TIMEOUT_MS?fG.createElement(K,{color:b.secondaryText},"• API timeout: ",fG.createElement(K,{bold:!0},process.env.API_TIMEOUT_MS,"ms")):null,process.env.MAX_THINKING_TOKENS?fG.createElement(K,{color:b.secondaryText},"• Max thinking tokens: ",fG.createElement(K,{bold:!0},process.env.MAX_THINKING_TOKENS)):null,process.env.ANTHROPIC_BASE_URL?fG.createElement(K,{color:b.secondaryText},"• API Base URL: ",fG.createElement(K,{bold:!0},process.env.ANTHROPIC_BASE_URL)):null),I.length?fG.createElement(GI,{borderColor:b.secondaryBorder,borderStyle:"single",borderBottom:!1,borderLeft:!1,borderRight:!1,borderTop:!0,flexDirection:"row",flexWrap:"wrap",marginLeft:1,marginRight:1,paddingTop:1,paddingBottom:0},fG.createElement(YTG,{mcpClients:I,theme:b})):null))}var W2=hI(YG(),1);var fC=hI(YG(),1);import{randomUUID as zB}from"crypto";var _a=hI(YG(),1),HK=hI(YG(),1);import{existsSync as cub,readdirSync as Vub,readFileSync as dub,statSync as mub}from"fs";import{join as $3I,basename as Qub}from"path";import{homedir as Xub}from"os";var _G={};JH(_G,{void:()=>xyb,util:()=>tW,unknown:()=>kyb,union:()=>Dyb,undefined:()=>ayb,tuple:()=>qyb,transformer:()=>tyb,symbol:()=>gyb,string:()=>hTG,strictObject:()=>Kyb,setErrorMap:()=>epb,set:()=>iyb,record:()=>Tyb,quotelessJson:()=>tpb,promise:()=>oyb,preprocess:()=>Iub,pipeline:()=>Gub,ostring:()=>Zub,optional:()=>ryb,onumber:()=>lub,oboolean:()=>bub,objectUtil:()=>_3I,object:()=>Myb,number:()=>wTG,nullable:()=>eyb,null:()=>zyb,never:()=>Uyb,nativeEnum:()=>$yb,nan:()=>yyb,map:()=>Syb,makeIssue:()=>HS,literal:()=>syb,lazy:()=>_yb,late:()=>Cyb,isValid:()=>Gu,isDirty:()=>slI,isAsync:()=>ZK,isAborted:()=>_lI,intersection:()=>jyb,instanceof:()=>pyb,getParsedType:()=>nA,getErrorMap:()=>GK,function:()=>Pyb,enum:()=>fyb,effect:()=>tyb,discriminatedUnion:()=>nyb,defaultErrorMap:()=>Bv,datetimeRegex:()=>FTG,date:()=>Lyb,custom:()=>HTG,coerce:()=>Wub,boolean:()=>JTG,bigint:()=>uyb,array:()=>Oyb,any:()=>Byb,addIssueToContext:()=>cl,ZodVoid:()=>wS,ZodUnknown:()=>Zu,ZodUnion:()=>cK,ZodUndefined:()=>NK,ZodType:()=>qW,ZodTuple:()=>qA,ZodTransformer:()=>b5,ZodSymbol:()=>hS,ZodString:()=>I5,ZodSet:()=>Sa,ZodSchema:()=>qW,ZodRecord:()=>JS,ZodReadonly:()=>RK,ZodPromise:()=>ia,ZodPipeline:()=>vS,ZodParsedType:()=>PZ,ZodOptional:()=>Z5,ZodObject:()=>TV,ZodNumber:()=>lu,ZodNullable:()=>Uv,ZodNull:()=>YK,ZodNever:()=>jA,ZodNativeEnum:()=>QK,ZodNaN:()=>ES,ZodMap:()=>AS,ZodLiteral:()=>mK,ZodLazy:()=>dK,ZodIssueCode:()=>LZ,ZodIntersection:()=>VK,ZodFunction:()=>bK,ZodFirstPartyTypeKind:()=>gZ,ZodError:()=>b1,ZodEnum:()=>Wu,ZodEffects:()=>b5,ZodDiscriminatedUnion:()=>flI,ZodDefault:()=>XK,ZodDate:()=>qa,ZodCatch:()=>FK,ZodBranded:()=>$lI,ZodBoolean:()=>WK,ZodBigInt:()=>bu,ZodArray:()=>G5,ZodAny:()=>Ta,Schema:()=>qW,ParseStatus:()=>am,OK:()=>OQ,NEVER:()=>Nub,INVALID:()=>qb,EMPTY_PATH:()=>Iyb,DIRTY:()=>ja,BRAND:()=>vyb});var tW;(function(I){I.assertEqual=(b)=>{};function G(b){}I.assertIs=G;function Z(b){throw Error()}I.assertNever=Z,I.arrayToEnum=(b)=>{let W={};for(let N of b)W[N]=N;return W},I.getValidEnumValues=(b)=>{let W=I.objectKeys(b).filter((Y)=>typeof b[b[Y]]!=="number"),N={};for(let Y of W)N[Y]=b[Y];return I.objectValues(N)},I.objectValues=(b)=>{return I.objectKeys(b).map(function(W){return b[W]})},I.objectKeys=typeof Object.keys==="function"?(b)=>Object.keys(b):(b)=>{let W=[];for(let N in b)if(Object.prototype.hasOwnProperty.call(b,N))W.push(N);return W},I.find=(b,W)=>{for(let N of b)if(W(N))return N;return},I.isInteger=typeof Number.isInteger==="function"?(b)=>Number.isInteger(b):(b)=>typeof b==="number"&&Number.isFinite(b)&&Math.floor(b)===b;function l(b,W=" | "){return b.map((N)=>typeof N==="string"?`'${N}'`:N).join(W)}I.joinValues=l,I.jsonStringifyReplacer=(b,W)=>{if(typeof W==="bigint")return W.toString();return W}})(tW||(tW={}));var _3I;(function(I){I.mergeShapes=(G,Z)=>{return{...G,...Z}}})(_3I||(_3I={}));var PZ=tW.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),nA=(I)=>{switch(typeof I){case"undefined":return PZ.undefined;case"string":return PZ.string;case"number":return Number.isNaN(I)?PZ.nan:PZ.number;case"boolean":return PZ.boolean;case"function":return PZ.function;case"bigint":return PZ.bigint;case"symbol":return PZ.symbol;case"object":if(Array.isArray(I))return PZ.array;if(I===null)return PZ.null;if(I.then&&typeof I.then==="function"&&I.catch&&typeof I.catch==="function")return PZ.promise;if(typeof Map<"u"&&I instanceof Map)return PZ.map;if(typeof Set<"u"&&I instanceof Set)return PZ.set;if(typeof Date<"u"&&I instanceof Date)return PZ.date;return PZ.object;default:return PZ.unknown}};var LZ=tW.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),tpb=(I)=>{return JSON.stringify(I,null,2).replace(/"([^"]+)":/g,"$1:")};class b1 extends Error{get errors(){return this.issues}constructor(I){super();this.issues=[],this.addIssue=(Z)=>{this.issues=[...this.issues,Z]},this.addIssues=(Z=[])=>{this.issues=[...this.issues,...Z]};let G=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,G);else this.__proto__=G;this.name="ZodError",this.issues=I}format(I){let G=I||function(b){return b.message},Z={_errors:[]},l=(b)=>{for(let W of b.issues)if(W.code==="invalid_union")W.unionErrors.map(l);else if(W.code==="invalid_return_type")l(W.returnTypeError);else if(W.code==="invalid_arguments")l(W.argumentsError);else if(W.path.length===0)Z._errors.push(G(W));else{let N=Z,Y=0;while(Y<W.path.length){let c=W.path[Y];if(Y!==W.path.length-1)N[c]=N[c]||{_errors:[]};else N[c]=N[c]||{_errors:[]},N[c]._errors.push(G(W));N=N[c],Y++}}};return l(this),Z}static assert(I){if(!(I instanceof b1))throw Error(`Not a ZodError: ${I}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,tW.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(I=(G)=>G.message){let G={},Z=[];for(let l of this.issues)if(l.path.length>0){let b=l.path[0];G[b]=G[b]||[],G[b].push(I(l))}else Z.push(I(l));return{formErrors:Z,fieldErrors:G}}get formErrors(){return this.flatten()}}b1.create=(I)=>{return new b1(I)};var rpb=(I,G)=>{let Z;switch(I.code){case LZ.invalid_type:if(I.received===PZ.undefined)Z="Required";else Z=`Expected ${I.expected}, received ${I.received}`;break;case LZ.invalid_literal:Z=`Invalid literal value, expected ${JSON.stringify(I.expected,tW.jsonStringifyReplacer)}`;break;case LZ.unrecognized_keys:Z=`Unrecognized key(s) in object: ${tW.joinValues(I.keys,", ")}`;break;case LZ.invalid_union:Z="Invalid input";break;case LZ.invalid_union_discriminator:Z=`Invalid discriminator value. Expected ${tW.joinValues(I.options)}`;break;case LZ.invalid_enum_value:Z=`Invalid enum value. Expected ${tW.joinValues(I.options)}, received '${I.received}'`;break;case LZ.invalid_arguments:Z="Invalid function arguments";break;case LZ.invalid_return_type:Z="Invalid function return type";break;case LZ.invalid_date:Z="Invalid date";break;case LZ.invalid_string:if(typeof I.validation==="object")if("includes"in I.validation){if(Z=`Invalid input: must include "${I.validation.includes}"`,typeof I.validation.position==="number")Z=`${Z} at one or more positions greater than or equal to ${I.validation.position}`}else if("startsWith"in I.validation)Z=`Invalid input: must start with "${I.validation.startsWith}"`;else if("endsWith"in I.validation)Z=`Invalid input: must end with "${I.validation.endsWith}"`;else tW.assertNever(I.validation);else if(I.validation!=="regex")Z=`Invalid ${I.validation}`;else Z="Invalid";break;case LZ.too_small:if(I.type==="array")Z=`Array must contain ${I.exact?"exactly":I.inclusive?"at least":"more than"} ${I.minimum} element(s)`;else if(I.type==="string")Z=`String must contain ${I.exact?"exactly":I.inclusive?"at least":"over"} ${I.minimum} character(s)`;else if(I.type==="number")Z=`Number must be ${I.exact?"exactly equal to ":I.inclusive?"greater than or equal to ":"greater than "}${I.minimum}`;else if(I.type==="bigint")Z=`Number must be ${I.exact?"exactly equal to ":I.inclusive?"greater than or equal to ":"greater than "}${I.minimum}`;else if(I.type==="date")Z=`Date must be ${I.exact?"exactly equal to ":I.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(I.minimum))}`;else Z="Invalid input";break;case LZ.too_big:if(I.type==="array")Z=`Array must contain ${I.exact?"exactly":I.inclusive?"at most":"less than"} ${I.maximum} element(s)`;else if(I.type==="string")Z=`String must contain ${I.exact?"exactly":I.inclusive?"at most":"under"} ${I.maximum} character(s)`;else if(I.type==="number")Z=`Number must be ${I.exact?"exactly":I.inclusive?"less than or equal to":"less than"} ${I.maximum}`;else if(I.type==="bigint")Z=`BigInt must be ${I.exact?"exactly":I.inclusive?"less than or equal to":"less than"} ${I.maximum}`;else if(I.type==="date")Z=`Date must be ${I.exact?"exactly":I.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(I.maximum))}`;else Z="Invalid input";break;case LZ.custom:Z="Invalid input";break;case LZ.invalid_intersection_types:Z="Intersection results could not be merged";break;case LZ.not_multiple_of:Z=`Number must be a multiple of ${I.multipleOf}`;break;case LZ.not_finite:Z="Number must be finite";break;default:Z=G.defaultError,tW.assertNever(I)}return{message:Z}},Bv=rpb;var VTG=Bv;function epb(I){VTG=I}function GK(){return VTG}var HS=(I)=>{let{data:G,path:Z,errorMaps:l,issueData:b}=I,W=[...Z,...b.path||[]],N={...b,path:W};if(b.message!==void 0)return{...b,path:W,message:b.message};let Y="",c=l.filter((V)=>!!V).slice().reverse();for(let V of c)Y=V(N,{data:G,defaultError:Y}).message;return{...b,path:W,message:Y}},Iyb=[];function cl(I,G){let Z=GK(),l=HS({issueData:G,data:I.data,path:I.path,errorMaps:[I.common.contextualErrorMap,I.schemaErrorMap,Z,Z===Bv?void 0:Bv].filter((b)=>!!b)});I.common.issues.push(l)}class am{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(I,G){let Z=[];for(let l of G){if(l.status==="aborted")return qb;if(l.status==="dirty")I.dirty();Z.push(l.value)}return{status:I.value,value:Z}}static async mergeObjectAsync(I,G){let Z=[];for(let l of G){let b=await l.key,W=await l.value;Z.push({key:b,value:W})}return am.mergeObjectSync(I,Z)}static mergeObjectSync(I,G){let Z={};for(let l of G){let{key:b,value:W}=l;if(b.status==="aborted")return qb;if(W.status==="aborted")return qb;if(b.status==="dirty")I.dirty();if(W.status==="dirty")I.dirty();if(b.value!=="__proto__"&&(typeof W.value<"u"||l.alwaysSet))Z[b.value]=W.value}return{status:I.value,value:Z}}}var qb=Object.freeze({status:"aborted"}),ja=(I)=>({status:"dirty",value:I}),OQ=(I)=>({status:"valid",value:I}),_lI=(I)=>I.status==="aborted",slI=(I)=>I.status==="dirty",Gu=(I)=>I.status==="valid",ZK=(I)=>typeof Promise<"u"&&I instanceof Promise;var sl;(function(I){I.errToObj=(G)=>typeof G==="string"?{message:G}:G||{},I.toString=(G)=>typeof G==="string"?G:G?.message})(sl||(sl={}));class l5{constructor(I,G,Z,l){this._cachedPath=[],this.parent=I,this.data=G,this._path=Z,this._key=l}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var dTG=(I,G)=>{if(Gu(G))return{success:!0,data:G.value};else{if(!I.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Z=new b1(I.common.issues);return this._error=Z,this._error}}}};function EW(I){if(!I)return{};let{errorMap:G,invalid_type_error:Z,required_error:l,description:b}=I;if(G&&(Z||l))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(G)return{errorMap:G,description:b};return{errorMap:(N,Y)=>{let{message:c}=I;if(N.code==="invalid_enum_value")return{message:c??Y.defaultError};if(typeof Y.data>"u")return{message:c??l??Y.defaultError};if(N.code!=="invalid_type")return{message:Y.defaultError};return{message:c??Z??Y.defaultError}},description:b}}class qW{get description(){return this._def.description}_getType(I){return nA(I.data)}_getOrReturnCtx(I,G){return G||{common:I.parent.common,data:I.data,parsedType:nA(I.data),schemaErrorMap:this._def.errorMap,path:I.path,parent:I.parent}}_processInputParams(I){return{status:new am,ctx:{common:I.parent.common,data:I.data,parsedType:nA(I.data),schemaErrorMap:this._def.errorMap,path:I.path,parent:I.parent}}}_parseSync(I){let G=this._parse(I);if(ZK(G))throw Error("Synchronous parse encountered promise.");return G}_parseAsync(I){let G=this._parse(I);return Promise.resolve(G)}parse(I,G){let Z=this.safeParse(I,G);if(Z.success)return Z.data;throw Z.error}safeParse(I,G){let Z={common:{issues:[],async:G?.async??!1,contextualErrorMap:G?.errorMap},path:G?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:I,parsedType:nA(I)},l=this._parseSync({data:I,path:Z.path,parent:Z});return dTG(Z,l)}"~validate"(I){let G={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:I,parsedType:nA(I)};if(!this["~standard"].async)try{let Z=this._parseSync({data:I,path:[],parent:G});return Gu(Z)?{value:Z.value}:{issues:G.common.issues}}catch(Z){if(Z?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;G.common={issues:[],async:!0}}return this._parseAsync({data:I,path:[],parent:G}).then((Z)=>Gu(Z)?{value:Z.value}:{issues:G.common.issues})}async parseAsync(I,G){let Z=await this.safeParseAsync(I,G);if(Z.success)return Z.data;throw Z.error}async safeParseAsync(I,G){let Z={common:{issues:[],contextualErrorMap:G?.errorMap,async:!0},path:G?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:I,parsedType:nA(I)},l=this._parse({data:I,path:Z.path,parent:Z}),b=await(ZK(l)?l:Promise.resolve(l));return dTG(Z,b)}refine(I,G){let Z=(l)=>{if(typeof G==="string"||typeof G>"u")return{message:G};else if(typeof G==="function")return G(l);else return G};return this._refinement((l,b)=>{let W=I(l),N=()=>b.addIssue({code:LZ.custom,...Z(l)});if(typeof Promise<"u"&&W instanceof Promise)return W.then((Y)=>{if(!Y)return N(),!1;else return!0});if(!W)return N(),!1;else return!0})}refinement(I,G){return this._refinement((Z,l)=>{if(!I(Z))return l.addIssue(typeof G==="function"?G(Z,l):G),!1;else return!0})}_refinement(I){return new b5({schema:this,typeName:gZ.ZodEffects,effect:{type:"refinement",refinement:I}})}superRefine(I){return this._refinement(I)}constructor(I){this.spa=this.safeParseAsync,this._def=I,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(G)=>this["~validate"](G)}}optional(){return Z5.create(this,this._def)}nullable(){return Uv.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return G5.create(this)}promise(){return ia.create(this,this._def)}or(I){return cK.create([this,I],this._def)}and(I){return VK.create(this,I,this._def)}transform(I){return new b5({...EW(this._def),schema:this,typeName:gZ.ZodEffects,effect:{type:"transform",transform:I}})}default(I){let G=typeof I==="function"?I:()=>I;return new XK({...EW(this._def),innerType:this,defaultValue:G,typeName:gZ.ZodDefault})}brand(){return new $lI({typeName:gZ.ZodBranded,type:this,...EW(this._def)})}catch(I){let G=typeof I==="function"?I:()=>I;return new FK({...EW(this._def),innerType:this,catchValue:G,typeName:gZ.ZodCatch})}describe(I){return new this.constructor({...this._def,description:I})}pipe(I){return vS.create(this,I)}readonly(){return RK.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Gyb=/^c[^\s-]{8,}$/i,Zyb=/^[0-9a-z]+$/,lyb=/^[0-9A-HJKMNP-TV-Z]{26}$/i,byb=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Wyb=/^[a-z0-9_-]{21}$/i,Nyb=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Yyb=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,cyb=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Vyb="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",s3I,dyb=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,myb=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Qyb=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xyb=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fyb=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ryb=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,QTG="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Hyb=new RegExp(`^${QTG}$`);function XTG(I){let G="[0-5]\\d";if(I.precision)G=`${G}\\.\\d{${I.precision}}`;else if(I.precision==null)G=`${G}(\\.\\d+)?`;let Z=I.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${G})${Z}`}function hyb(I){return new RegExp(`^${XTG(I)}$`)}function FTG(I){let G=`${QTG}T${XTG(I)}`,Z=[];if(Z.push(I.local?"Z?":"Z"),I.offset)Z.push("([+-]\\d{2}:?\\d{2})");return G=`${G}(${Z.join("|")})`,new RegExp(`^${G}$`)}function wyb(I,G){if((G==="v4"||!G)&&dyb.test(I))return!0;if((G==="v6"||!G)&&Qyb.test(I))return!0;return!1}function Jyb(I,G){if(!Nyb.test(I))return!1;try{let[Z]=I.split(".");if(!Z)return!1;let l=Z.replace(/-/g,"+").replace(/_/g,"/").padEnd(Z.length+(4-Z.length%4)%4,"="),b=JSON.parse(atob(l));if(typeof b!=="object"||b===null)return!1;if("typ"in b&&b?.typ!=="JWT")return!1;if(!b.alg)return!1;if(G&&b.alg!==G)return!1;return!0}catch{return!1}}function Ayb(I,G){if((G==="v4"||!G)&&myb.test(I))return!0;if((G==="v6"||!G)&&Xyb.test(I))return!0;return!1}class I5 extends qW{_parse(I){if(this._def.coerce)I.data=String(I.data);if(this._getType(I)!==PZ.string){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_type,expected:PZ.string,received:b.parsedType}),qb}let Z=new am,l=void 0;for(let b of this._def.checks)if(b.kind==="min"){if(I.data.length<b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_small,minimum:b.value,type:"string",inclusive:!0,exact:!1,message:b.message}),Z.dirty()}else if(b.kind==="max"){if(I.data.length>b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_big,maximum:b.value,type:"string",inclusive:!0,exact:!1,message:b.message}),Z.dirty()}else if(b.kind==="length"){let W=I.data.length>b.value,N=I.data.length<b.value;if(W||N){if(l=this._getOrReturnCtx(I,l),W)cl(l,{code:LZ.too_big,maximum:b.value,type:"string",inclusive:!0,exact:!0,message:b.message});else if(N)cl(l,{code:LZ.too_small,minimum:b.value,type:"string",inclusive:!0,exact:!0,message:b.message});Z.dirty()}}else if(b.kind==="email"){if(!cyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"email",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="emoji"){if(!s3I)s3I=new RegExp(Vyb,"u");if(!s3I.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"emoji",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="uuid"){if(!byb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"uuid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="nanoid"){if(!Wyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"nanoid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="cuid"){if(!Gyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"cuid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="cuid2"){if(!Zyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"cuid2",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="ulid"){if(!lyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"ulid",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="url")try{new URL(I.data)}catch{l=this._getOrReturnCtx(I,l),cl(l,{validation:"url",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="regex"){if(b.regex.lastIndex=0,!b.regex.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"regex",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="trim")I.data=I.data.trim();else if(b.kind==="includes"){if(!I.data.includes(b.value,b.position))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:{includes:b.value,position:b.position},message:b.message}),Z.dirty()}else if(b.kind==="toLowerCase")I.data=I.data.toLowerCase();else if(b.kind==="toUpperCase")I.data=I.data.toUpperCase();else if(b.kind==="startsWith"){if(!I.data.startsWith(b.value))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:{startsWith:b.value},message:b.message}),Z.dirty()}else if(b.kind==="endsWith"){if(!I.data.endsWith(b.value))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:{endsWith:b.value},message:b.message}),Z.dirty()}else if(b.kind==="datetime"){if(!FTG(b).test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:"datetime",message:b.message}),Z.dirty()}else if(b.kind==="date"){if(!Hyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:"date",message:b.message}),Z.dirty()}else if(b.kind==="time"){if(!hyb(b).test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.invalid_string,validation:"time",message:b.message}),Z.dirty()}else if(b.kind==="duration"){if(!Yyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"duration",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="ip"){if(!wyb(I.data,b.version))l=this._getOrReturnCtx(I,l),cl(l,{validation:"ip",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="jwt"){if(!Jyb(I.data,b.alg))l=this._getOrReturnCtx(I,l),cl(l,{validation:"jwt",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="cidr"){if(!Ayb(I.data,b.version))l=this._getOrReturnCtx(I,l),cl(l,{validation:"cidr",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="base64"){if(!Fyb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"base64",code:LZ.invalid_string,message:b.message}),Z.dirty()}else if(b.kind==="base64url"){if(!Ryb.test(I.data))l=this._getOrReturnCtx(I,l),cl(l,{validation:"base64url",code:LZ.invalid_string,message:b.message}),Z.dirty()}else tW.assertNever(b);return{status:Z.value,value:I.data}}_regex(I,G,Z){return this.refinement((l)=>I.test(l),{validation:G,code:LZ.invalid_string,...sl.errToObj(Z)})}_addCheck(I){return new I5({...this._def,checks:[...this._def.checks,I]})}email(I){return this._addCheck({kind:"email",...sl.errToObj(I)})}url(I){return this._addCheck({kind:"url",...sl.errToObj(I)})}emoji(I){return this._addCheck({kind:"emoji",...sl.errToObj(I)})}uuid(I){return this._addCheck({kind:"uuid",...sl.errToObj(I)})}nanoid(I){return this._addCheck({kind:"nanoid",...sl.errToObj(I)})}cuid(I){return this._addCheck({kind:"cuid",...sl.errToObj(I)})}cuid2(I){return this._addCheck({kind:"cuid2",...sl.errToObj(I)})}ulid(I){return this._addCheck({kind:"ulid",...sl.errToObj(I)})}base64(I){return this._addCheck({kind:"base64",...sl.errToObj(I)})}base64url(I){return this._addCheck({kind:"base64url",...sl.errToObj(I)})}jwt(I){return this._addCheck({kind:"jwt",...sl.errToObj(I)})}ip(I){return this._addCheck({kind:"ip",...sl.errToObj(I)})}cidr(I){return this._addCheck({kind:"cidr",...sl.errToObj(I)})}datetime(I){if(typeof I==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:I});return this._addCheck({kind:"datetime",precision:typeof I?.precision>"u"?null:I?.precision,offset:I?.offset??!1,local:I?.local??!1,...sl.errToObj(I?.message)})}date(I){return this._addCheck({kind:"date",message:I})}time(I){if(typeof I==="string")return this._addCheck({kind:"time",precision:null,message:I});return this._addCheck({kind:"time",precision:typeof I?.precision>"u"?null:I?.precision,...sl.errToObj(I?.message)})}duration(I){return this._addCheck({kind:"duration",...sl.errToObj(I)})}regex(I,G){return this._addCheck({kind:"regex",regex:I,...sl.errToObj(G)})}includes(I,G){return this._addCheck({kind:"includes",value:I,position:G?.position,...sl.errToObj(G?.message)})}startsWith(I,G){return this._addCheck({kind:"startsWith",value:I,...sl.errToObj(G)})}endsWith(I,G){return this._addCheck({kind:"endsWith",value:I,...sl.errToObj(G)})}min(I,G){return this._addCheck({kind:"min",value:I,...sl.errToObj(G)})}max(I,G){return this._addCheck({kind:"max",value:I,...sl.errToObj(G)})}length(I,G){return this._addCheck({kind:"length",value:I,...sl.errToObj(G)})}nonempty(I){return this.min(1,sl.errToObj(I))}trim(){return new I5({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new I5({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new I5({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((I)=>I.kind==="datetime")}get isDate(){return!!this._def.checks.find((I)=>I.kind==="date")}get isTime(){return!!this._def.checks.find((I)=>I.kind==="time")}get isDuration(){return!!this._def.checks.find((I)=>I.kind==="duration")}get isEmail(){return!!this._def.checks.find((I)=>I.kind==="email")}get isURL(){return!!this._def.checks.find((I)=>I.kind==="url")}get isEmoji(){return!!this._def.checks.find((I)=>I.kind==="emoji")}get isUUID(){return!!this._def.checks.find((I)=>I.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((I)=>I.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((I)=>I.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((I)=>I.kind==="cuid2")}get isULID(){return!!this._def.checks.find((I)=>I.kind==="ulid")}get isIP(){return!!this._def.checks.find((I)=>I.kind==="ip")}get isCIDR(){return!!this._def.checks.find((I)=>I.kind==="cidr")}get isBase64(){return!!this._def.checks.find((I)=>I.kind==="base64")}get isBase64url(){return!!this._def.checks.find((I)=>I.kind==="base64url")}get minLength(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I}get maxLength(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I}}I5.create=(I)=>{return new I5({checks:[],typeName:gZ.ZodString,coerce:I?.coerce??!1,...EW(I)})};function Eyb(I,G){let Z=(I.toString().split(".")[1]||"").length,l=(G.toString().split(".")[1]||"").length,b=Z>l?Z:l,W=Number.parseInt(I.toFixed(b).replace(".","")),N=Number.parseInt(G.toFixed(b).replace(".",""));return W%N/10**b}class lu extends qW{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(I){if(this._def.coerce)I.data=Number(I.data);if(this._getType(I)!==PZ.number){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_type,expected:PZ.number,received:b.parsedType}),qb}let Z=void 0,l=new am;for(let b of this._def.checks)if(b.kind==="int"){if(!tW.isInteger(I.data))Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.invalid_type,expected:"integer",received:"float",message:b.message}),l.dirty()}else if(b.kind==="min"){if(b.inclusive?I.data<b.value:I.data<=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_small,minimum:b.value,type:"number",inclusive:b.inclusive,exact:!1,message:b.message}),l.dirty()}else if(b.kind==="max"){if(b.inclusive?I.data>b.value:I.data>=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_big,maximum:b.value,type:"number",inclusive:b.inclusive,exact:!1,message:b.message}),l.dirty()}else if(b.kind==="multipleOf"){if(Eyb(I.data,b.value)!==0)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.not_multiple_of,multipleOf:b.value,message:b.message}),l.dirty()}else if(b.kind==="finite"){if(!Number.isFinite(I.data))Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.not_finite,message:b.message}),l.dirty()}else tW.assertNever(b);return{status:l.value,value:I.data}}gte(I,G){return this.setLimit("min",I,!0,sl.toString(G))}gt(I,G){return this.setLimit("min",I,!1,sl.toString(G))}lte(I,G){return this.setLimit("max",I,!0,sl.toString(G))}lt(I,G){return this.setLimit("max",I,!1,sl.toString(G))}setLimit(I,G,Z,l){return new lu({...this._def,checks:[...this._def.checks,{kind:I,value:G,inclusive:Z,message:sl.toString(l)}]})}_addCheck(I){return new lu({...this._def,checks:[...this._def.checks,I]})}int(I){return this._addCheck({kind:"int",message:sl.toString(I)})}positive(I){return this._addCheck({kind:"min",value:0,inclusive:!1,message:sl.toString(I)})}negative(I){return this._addCheck({kind:"max",value:0,inclusive:!1,message:sl.toString(I)})}nonpositive(I){return this._addCheck({kind:"max",value:0,inclusive:!0,message:sl.toString(I)})}nonnegative(I){return this._addCheck({kind:"min",value:0,inclusive:!0,message:sl.toString(I)})}multipleOf(I,G){return this._addCheck({kind:"multipleOf",value:I,message:sl.toString(G)})}finite(I){return this._addCheck({kind:"finite",message:sl.toString(I)})}safe(I){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:sl.toString(I)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:sl.toString(I)})}get minValue(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I}get maxValue(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I}get isInt(){return!!this._def.checks.find((I)=>I.kind==="int"||I.kind==="multipleOf"&&tW.isInteger(I.value))}get isFinite(){let I=null,G=null;for(let Z of this._def.checks)if(Z.kind==="finite"||Z.kind==="int"||Z.kind==="multipleOf")return!0;else if(Z.kind==="min"){if(G===null||Z.value>G)G=Z.value}else if(Z.kind==="max"){if(I===null||Z.value<I)I=Z.value}return Number.isFinite(G)&&Number.isFinite(I)}}lu.create=(I)=>{return new lu({checks:[],typeName:gZ.ZodNumber,coerce:I?.coerce||!1,...EW(I)})};class bu extends qW{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(I){if(this._def.coerce)try{I.data=BigInt(I.data)}catch{return this._getInvalidInput(I)}if(this._getType(I)!==PZ.bigint)return this._getInvalidInput(I);let Z=void 0,l=new am;for(let b of this._def.checks)if(b.kind==="min"){if(b.inclusive?I.data<b.value:I.data<=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_small,type:"bigint",minimum:b.value,inclusive:b.inclusive,message:b.message}),l.dirty()}else if(b.kind==="max"){if(b.inclusive?I.data>b.value:I.data>=b.value)Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.too_big,type:"bigint",maximum:b.value,inclusive:b.inclusive,message:b.message}),l.dirty()}else if(b.kind==="multipleOf"){if(I.data%b.value!==BigInt(0))Z=this._getOrReturnCtx(I,Z),cl(Z,{code:LZ.not_multiple_of,multipleOf:b.value,message:b.message}),l.dirty()}else tW.assertNever(b);return{status:l.value,value:I.data}}_getInvalidInput(I){let G=this._getOrReturnCtx(I);return cl(G,{code:LZ.invalid_type,expected:PZ.bigint,received:G.parsedType}),qb}gte(I,G){return this.setLimit("min",I,!0,sl.toString(G))}gt(I,G){return this.setLimit("min",I,!1,sl.toString(G))}lte(I,G){return this.setLimit("max",I,!0,sl.toString(G))}lt(I,G){return this.setLimit("max",I,!1,sl.toString(G))}setLimit(I,G,Z,l){return new bu({...this._def,checks:[...this._def.checks,{kind:I,value:G,inclusive:Z,message:sl.toString(l)}]})}_addCheck(I){return new bu({...this._def,checks:[...this._def.checks,I]})}positive(I){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:sl.toString(I)})}negative(I){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:sl.toString(I)})}nonpositive(I){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:sl.toString(I)})}nonnegative(I){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:sl.toString(I)})}multipleOf(I,G){return this._addCheck({kind:"multipleOf",value:I,message:sl.toString(G)})}get minValue(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I}get maxValue(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I}}bu.create=(I)=>{return new bu({checks:[],typeName:gZ.ZodBigInt,coerce:I?.coerce??!1,...EW(I)})};class WK extends qW{_parse(I){if(this._def.coerce)I.data=Boolean(I.data);if(this._getType(I)!==PZ.boolean){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.boolean,received:Z.parsedType}),qb}return OQ(I.data)}}WK.create=(I)=>{return new WK({typeName:gZ.ZodBoolean,coerce:I?.coerce||!1,...EW(I)})};class qa extends qW{_parse(I){if(this._def.coerce)I.data=new Date(I.data);if(this._getType(I)!==PZ.date){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_type,expected:PZ.date,received:b.parsedType}),qb}if(Number.isNaN(I.data.getTime())){let b=this._getOrReturnCtx(I);return cl(b,{code:LZ.invalid_date}),qb}let Z=new am,l=void 0;for(let b of this._def.checks)if(b.kind==="min"){if(I.data.getTime()<b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_small,message:b.message,inclusive:!0,exact:!1,minimum:b.value,type:"date"}),Z.dirty()}else if(b.kind==="max"){if(I.data.getTime()>b.value)l=this._getOrReturnCtx(I,l),cl(l,{code:LZ.too_big,message:b.message,inclusive:!0,exact:!1,maximum:b.value,type:"date"}),Z.dirty()}else tW.assertNever(b);return{status:Z.value,value:new Date(I.data.getTime())}}_addCheck(I){return new qa({...this._def,checks:[...this._def.checks,I]})}min(I,G){return this._addCheck({kind:"min",value:I.getTime(),message:sl.toString(G)})}max(I,G){return this._addCheck({kind:"max",value:I.getTime(),message:sl.toString(G)})}get minDate(){let I=null;for(let G of this._def.checks)if(G.kind==="min"){if(I===null||G.value>I)I=G.value}return I!=null?new Date(I):null}get maxDate(){let I=null;for(let G of this._def.checks)if(G.kind==="max"){if(I===null||G.value<I)I=G.value}return I!=null?new Date(I):null}}qa.create=(I)=>{return new qa({checks:[],coerce:I?.coerce||!1,typeName:gZ.ZodDate,...EW(I)})};class hS extends qW{_parse(I){if(this._getType(I)!==PZ.symbol){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.symbol,received:Z.parsedType}),qb}return OQ(I.data)}}hS.create=(I)=>{return new hS({typeName:gZ.ZodSymbol,...EW(I)})};class NK extends qW{_parse(I){if(this._getType(I)!==PZ.undefined){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.undefined,received:Z.parsedType}),qb}return OQ(I.data)}}NK.create=(I)=>{return new NK({typeName:gZ.ZodUndefined,...EW(I)})};class YK extends qW{_parse(I){if(this._getType(I)!==PZ.null){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.null,received:Z.parsedType}),qb}return OQ(I.data)}}YK.create=(I)=>{return new YK({typeName:gZ.ZodNull,...EW(I)})};class Ta extends qW{constructor(){super(...arguments);this._any=!0}_parse(I){return OQ(I.data)}}Ta.create=(I)=>{return new Ta({typeName:gZ.ZodAny,...EW(I)})};class Zu extends qW{constructor(){super(...arguments);this._unknown=!0}_parse(I){return OQ(I.data)}}Zu.create=(I)=>{return new Zu({typeName:gZ.ZodUnknown,...EW(I)})};class jA extends qW{_parse(I){let G=this._getOrReturnCtx(I);return cl(G,{code:LZ.invalid_type,expected:PZ.never,received:G.parsedType}),qb}}jA.create=(I)=>{return new jA({typeName:gZ.ZodNever,...EW(I)})};class wS extends qW{_parse(I){if(this._getType(I)!==PZ.undefined){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.void,received:Z.parsedType}),qb}return OQ(I.data)}}wS.create=(I)=>{return new wS({typeName:gZ.ZodVoid,...EW(I)})};class G5 extends qW{_parse(I){let{ctx:G,status:Z}=this._processInputParams(I),l=this._def;if(G.parsedType!==PZ.array)return cl(G,{code:LZ.invalid_type,expected:PZ.array,received:G.parsedType}),qb;if(l.exactLength!==null){let W=G.data.length>l.exactLength.value,N=G.data.length<l.exactLength.value;if(W||N)cl(G,{code:W?LZ.too_big:LZ.too_small,minimum:N?l.exactLength.value:void 0,maximum:W?l.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:l.exactLength.message}),Z.dirty()}if(l.minLength!==null){if(G.data.length<l.minLength.value)cl(G,{code:LZ.too_small,minimum:l.minLength.value,type:"array",inclusive:!0,exact:!1,message:l.minLength.message}),Z.dirty()}if(l.maxLength!==null){if(G.data.length>l.maxLength.value)cl(G,{code:LZ.too_big,maximum:l.maxLength.value,type:"array",inclusive:!0,exact:!1,message:l.maxLength.message}),Z.dirty()}if(G.common.async)return Promise.all([...G.data].map((W,N)=>{return l.type._parseAsync(new l5(G,W,G.path,N))})).then((W)=>{return am.mergeArray(Z,W)});let b=[...G.data].map((W,N)=>{return l.type._parseSync(new l5(G,W,G.path,N))});return am.mergeArray(Z,b)}get element(){return this._def.type}min(I,G){return new G5({...this._def,minLength:{value:I,message:sl.toString(G)}})}max(I,G){return new G5({...this._def,maxLength:{value:I,message:sl.toString(G)}})}length(I,G){return new G5({...this._def,exactLength:{value:I,message:sl.toString(G)}})}nonempty(I){return this.min(1,I)}}G5.create=(I,G)=>{return new G5({type:I,minLength:null,maxLength:null,exactLength:null,typeName:gZ.ZodArray,...EW(G)})};function lK(I){if(I instanceof TV){let G={};for(let Z in I.shape){let l=I.shape[Z];G[Z]=Z5.create(lK(l))}return new TV({...I._def,shape:()=>G})}else if(I instanceof G5)return new G5({...I._def,type:lK(I.element)});else if(I instanceof Z5)return Z5.create(lK(I.unwrap()));else if(I instanceof Uv)return Uv.create(lK(I.unwrap()));else if(I instanceof qA)return qA.create(I.items.map((G)=>lK(G)));else return I}class TV extends qW{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let I=this._def.shape(),G=tW.objectKeys(I);return this._cached={shape:I,keys:G},this._cached}_parse(I){if(this._getType(I)!==PZ.object){let c=this._getOrReturnCtx(I);return cl(c,{code:LZ.invalid_type,expected:PZ.object,received:c.parsedType}),qb}let{status:Z,ctx:l}=this._processInputParams(I),{shape:b,keys:W}=this._getCached(),N=[];if(!(this._def.catchall instanceof jA&&this._def.unknownKeys==="strip")){for(let c in l.data)if(!W.includes(c))N.push(c)}let Y=[];for(let c of W){let V=b[c],d=l.data[c];Y.push({key:{status:"valid",value:c},value:V._parse(new l5(l,d,l.path,c)),alwaysSet:c in l.data})}if(this._def.catchall instanceof jA){let c=this._def.unknownKeys;if(c==="passthrough")for(let V of N)Y.push({key:{status:"valid",value:V},value:{status:"valid",value:l.data[V]}});else if(c==="strict"){if(N.length>0)cl(l,{code:LZ.unrecognized_keys,keys:N}),Z.dirty()}else if(c==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let V of N){let d=l.data[V];Y.push({key:{status:"valid",value:V},value:c._parse(new l5(l,d,l.path,V)),alwaysSet:V in l.data})}}if(l.common.async)return Promise.resolve().then(async()=>{let c=[];for(let V of Y){let d=await V.key,m=await V.value;c.push({key:d,value:m,alwaysSet:V.alwaysSet})}return c}).then((c)=>{return am.mergeObjectSync(Z,c)});else return am.mergeObjectSync(Z,Y)}get shape(){return this._def.shape()}strict(I){return sl.errToObj,new TV({...this._def,unknownKeys:"strict",...I!==void 0?{errorMap:(G,Z)=>{let l=this._def.errorMap?.(G,Z).message??Z.defaultError;if(G.code==="unrecognized_keys")return{message:sl.errToObj(I).message??l};return{message:l}}}:{}})}strip(){return new TV({...this._def,unknownKeys:"strip"})}passthrough(){return new TV({...this._def,unknownKeys:"passthrough"})}extend(I){return new TV({...this._def,shape:()=>({...this._def.shape(),...I})})}merge(I){return new TV({unknownKeys:I._def.unknownKeys,catchall:I._def.catchall,shape:()=>({...this._def.shape(),...I._def.shape()}),typeName:gZ.ZodObject})}setKey(I,G){return this.augment({[I]:G})}catchall(I){return new TV({...this._def,catchall:I})}pick(I){let G={};for(let Z of tW.objectKeys(I))if(I[Z]&&this.shape[Z])G[Z]=this.shape[Z];return new TV({...this._def,shape:()=>G})}omit(I){let G={};for(let Z of tW.objectKeys(this.shape))if(!I[Z])G[Z]=this.shape[Z];return new TV({...this._def,shape:()=>G})}deepPartial(){return lK(this)}partial(I){let G={};for(let Z of tW.objectKeys(this.shape)){let l=this.shape[Z];if(I&&!I[Z])G[Z]=l;else G[Z]=l.optional()}return new TV({...this._def,shape:()=>G})}required(I){let G={};for(let Z of tW.objectKeys(this.shape))if(I&&!I[Z])G[Z]=this.shape[Z];else{let b=this.shape[Z];while(b instanceof Z5)b=b._def.innerType;G[Z]=b}return new TV({...this._def,shape:()=>G})}keyof(){return RTG(tW.objectKeys(this.shape))}}TV.create=(I,G)=>{return new TV({shape:()=>I,unknownKeys:"strip",catchall:jA.create(),typeName:gZ.ZodObject,...EW(G)})};TV.strictCreate=(I,G)=>{return new TV({shape:()=>I,unknownKeys:"strict",catchall:jA.create(),typeName:gZ.ZodObject,...EW(G)})};TV.lazycreate=(I,G)=>{return new TV({shape:I,unknownKeys:"strip",catchall:jA.create(),typeName:gZ.ZodObject,...EW(G)})};class cK extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z=this._def.options;function l(b){for(let N of b)if(N.result.status==="valid")return N.result;for(let N of b)if(N.result.status==="dirty")return G.common.issues.push(...N.ctx.common.issues),N.result;let W=b.map((N)=>new b1(N.ctx.common.issues));return cl(G,{code:LZ.invalid_union,unionErrors:W}),qb}if(G.common.async)return Promise.all(Z.map(async(b)=>{let W={...G,common:{...G.common,issues:[]},parent:null};return{result:await b._parseAsync({data:G.data,path:G.path,parent:W}),ctx:W}})).then(l);else{let b=void 0,W=[];for(let Y of Z){let c={...G,common:{...G.common,issues:[]},parent:null},V=Y._parseSync({data:G.data,path:G.path,parent:c});if(V.status==="valid")return V;else if(V.status==="dirty"&&!b)b={result:V,ctx:c};if(c.common.issues.length)W.push(c.common.issues)}if(b)return G.common.issues.push(...b.ctx.common.issues),b.result;let N=W.map((Y)=>new b1(Y));return cl(G,{code:LZ.invalid_union,unionErrors:N}),qb}}get options(){return this._def.options}}cK.create=(I,G)=>{return new cK({options:I,typeName:gZ.ZodUnion,...EW(G)})};var kv=(I)=>{if(I instanceof dK)return kv(I.schema);else if(I instanceof b5)return kv(I.innerType());else if(I instanceof mK)return[I.value];else if(I instanceof Wu)return I.options;else if(I instanceof QK)return tW.objectValues(I.enum);else if(I instanceof XK)return kv(I._def.innerType);else if(I instanceof NK)return[void 0];else if(I instanceof YK)return[null];else if(I instanceof Z5)return[void 0,...kv(I.unwrap())];else if(I instanceof Uv)return[null,...kv(I.unwrap())];else if(I instanceof $lI)return kv(I.unwrap());else if(I instanceof RK)return kv(I.unwrap());else if(I instanceof FK)return kv(I._def.innerType);else return[]};class flI extends qW{_parse(I){let{ctx:G}=this._processInputParams(I);if(G.parsedType!==PZ.object)return cl(G,{code:LZ.invalid_type,expected:PZ.object,received:G.parsedType}),qb;let Z=this.discriminator,l=G.data[Z],b=this.optionsMap.get(l);if(!b)return cl(G,{code:LZ.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Z]}),qb;if(G.common.async)return b._parseAsync({data:G.data,path:G.path,parent:G});else return b._parseSync({data:G.data,path:G.path,parent:G})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(I,G,Z){let l=new Map;for(let b of G){let W=kv(b.shape[I]);if(!W.length)throw Error(`A discriminator value for key \`${I}\` could not be extracted from all schema options`);for(let N of W){if(l.has(N))throw Error(`Discriminator property ${String(I)} has duplicate value ${String(N)}`);l.set(N,b)}}return new flI({typeName:gZ.ZodDiscriminatedUnion,discriminator:I,options:G,optionsMap:l,...EW(Z)})}}function f3I(I,G){let Z=nA(I),l=nA(G);if(I===G)return{valid:!0,data:I};else if(Z===PZ.object&&l===PZ.object){let b=tW.objectKeys(G),W=tW.objectKeys(I).filter((Y)=>b.indexOf(Y)!==-1),N={...I,...G};for(let Y of W){let c=f3I(I[Y],G[Y]);if(!c.valid)return{valid:!1};N[Y]=c.data}return{valid:!0,data:N}}else if(Z===PZ.array&&l===PZ.array){if(I.length!==G.length)return{valid:!1};let b=[];for(let W=0;W<I.length;W++){let N=I[W],Y=G[W],c=f3I(N,Y);if(!c.valid)return{valid:!1};b.push(c.data)}return{valid:!0,data:b}}else if(Z===PZ.date&&l===PZ.date&&+I===+G)return{valid:!0,data:I};else return{valid:!1}}class VK extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I),l=(b,W)=>{if(_lI(b)||_lI(W))return qb;let N=f3I(b.value,W.value);if(!N.valid)return cl(Z,{code:LZ.invalid_intersection_types}),qb;if(slI(b)||slI(W))G.dirty();return{status:G.value,value:N.data}};if(Z.common.async)return Promise.all([this._def.left._parseAsync({data:Z.data,path:Z.path,parent:Z}),this._def.right._parseAsync({data:Z.data,path:Z.path,parent:Z})]).then(([b,W])=>l(b,W));else return l(this._def.left._parseSync({data:Z.data,path:Z.path,parent:Z}),this._def.right._parseSync({data:Z.data,path:Z.path,parent:Z}))}}VK.create=(I,G,Z)=>{return new VK({left:I,right:G,typeName:gZ.ZodIntersection,...EW(Z)})};class qA extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.array)return cl(Z,{code:LZ.invalid_type,expected:PZ.array,received:Z.parsedType}),qb;if(Z.data.length<this._def.items.length)return cl(Z,{code:LZ.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),qb;if(!this._def.rest&&Z.data.length>this._def.items.length)cl(Z,{code:LZ.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),G.dirty();let b=[...Z.data].map((W,N)=>{let Y=this._def.items[N]||this._def.rest;if(!Y)return null;return Y._parse(new l5(Z,W,Z.path,N))}).filter((W)=>!!W);if(Z.common.async)return Promise.all(b).then((W)=>{return am.mergeArray(G,W)});else return am.mergeArray(G,b)}get items(){return this._def.items}rest(I){return new qA({...this._def,rest:I})}}qA.create=(I,G)=>{if(!Array.isArray(I))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new qA({items:I,typeName:gZ.ZodTuple,rest:null,...EW(G)})};class JS extends qW{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.object)return cl(Z,{code:LZ.invalid_type,expected:PZ.object,received:Z.parsedType}),qb;let l=[],b=this._def.keyType,W=this._def.valueType;for(let N in Z.data)l.push({key:b._parse(new l5(Z,N,Z.path,N)),value:W._parse(new l5(Z,Z.data[N],Z.path,N)),alwaysSet:N in Z.data});if(Z.common.async)return am.mergeObjectAsync(G,l);else return am.mergeObjectSync(G,l)}get element(){return this._def.valueType}static create(I,G,Z){if(G instanceof qW)return new JS({keyType:I,valueType:G,typeName:gZ.ZodRecord,...EW(Z)});return new JS({keyType:I5.create(),valueType:I,typeName:gZ.ZodRecord,...EW(G)})}}class AS extends qW{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.map)return cl(Z,{code:LZ.invalid_type,expected:PZ.map,received:Z.parsedType}),qb;let l=this._def.keyType,b=this._def.valueType,W=[...Z.data.entries()].map(([N,Y],c)=>{return{key:l._parse(new l5(Z,N,Z.path,[c,"key"])),value:b._parse(new l5(Z,Y,Z.path,[c,"value"]))}});if(Z.common.async){let N=new Map;return Promise.resolve().then(async()=>{for(let Y of W){let c=await Y.key,V=await Y.value;if(c.status==="aborted"||V.status==="aborted")return qb;if(c.status==="dirty"||V.status==="dirty")G.dirty();N.set(c.value,V.value)}return{status:G.value,value:N}})}else{let N=new Map;for(let Y of W){let{key:c,value:V}=Y;if(c.status==="aborted"||V.status==="aborted")return qb;if(c.status==="dirty"||V.status==="dirty")G.dirty();N.set(c.value,V.value)}return{status:G.value,value:N}}}}AS.create=(I,G,Z)=>{return new AS({valueType:G,keyType:I,typeName:gZ.ZodMap,...EW(Z)})};class Sa extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.parsedType!==PZ.set)return cl(Z,{code:LZ.invalid_type,expected:PZ.set,received:Z.parsedType}),qb;let l=this._def;if(l.minSize!==null){if(Z.data.size<l.minSize.value)cl(Z,{code:LZ.too_small,minimum:l.minSize.value,type:"set",inclusive:!0,exact:!1,message:l.minSize.message}),G.dirty()}if(l.maxSize!==null){if(Z.data.size>l.maxSize.value)cl(Z,{code:LZ.too_big,maximum:l.maxSize.value,type:"set",inclusive:!0,exact:!1,message:l.maxSize.message}),G.dirty()}let b=this._def.valueType;function W(Y){let c=new Set;for(let V of Y){if(V.status==="aborted")return qb;if(V.status==="dirty")G.dirty();c.add(V.value)}return{status:G.value,value:c}}let N=[...Z.data.values()].map((Y,c)=>b._parse(new l5(Z,Y,Z.path,c)));if(Z.common.async)return Promise.all(N).then((Y)=>W(Y));else return W(N)}min(I,G){return new Sa({...this._def,minSize:{value:I,message:sl.toString(G)}})}max(I,G){return new Sa({...this._def,maxSize:{value:I,message:sl.toString(G)}})}size(I,G){return this.min(I,G).max(I,G)}nonempty(I){return this.min(1,I)}}Sa.create=(I,G)=>{return new Sa({valueType:I,minSize:null,maxSize:null,typeName:gZ.ZodSet,...EW(G)})};class bK extends qW{constructor(){super(...arguments);this.validate=this.implement}_parse(I){let{ctx:G}=this._processInputParams(I);if(G.parsedType!==PZ.function)return cl(G,{code:LZ.invalid_type,expected:PZ.function,received:G.parsedType}),qb;function Z(N,Y){return HS({data:N,path:G.path,errorMaps:[G.common.contextualErrorMap,G.schemaErrorMap,GK(),Bv].filter((c)=>!!c),issueData:{code:LZ.invalid_arguments,argumentsError:Y}})}function l(N,Y){return HS({data:N,path:G.path,errorMaps:[G.common.contextualErrorMap,G.schemaErrorMap,GK(),Bv].filter((c)=>!!c),issueData:{code:LZ.invalid_return_type,returnTypeError:Y}})}let b={errorMap:G.common.contextualErrorMap},W=G.data;if(this._def.returns instanceof ia){let N=this;return OQ(async function(...Y){let c=new b1([]),V=await N._def.args.parseAsync(Y,b).catch((X)=>{throw c.addIssue(Z(Y,X)),c}),d=await Reflect.apply(W,this,V);return await N._def.returns._def.type.parseAsync(d,b).catch((X)=>{throw c.addIssue(l(d,X)),c})})}else{let N=this;return OQ(function(...Y){let c=N._def.args.safeParse(Y,b);if(!c.success)throw new b1([Z(Y,c.error)]);let V=Reflect.apply(W,this,c.data),d=N._def.returns.safeParse(V,b);if(!d.success)throw new b1([l(V,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...I){return new bK({...this._def,args:qA.create(I).rest(Zu.create())})}returns(I){return new bK({...this._def,returns:I})}implement(I){return this.parse(I)}strictImplement(I){return this.parse(I)}static create(I,G,Z){return new bK({args:I?I:qA.create([]).rest(Zu.create()),returns:G||Zu.create(),typeName:gZ.ZodFunction,...EW(Z)})}}class dK extends qW{get schema(){return this._def.getter()}_parse(I){let{ctx:G}=this._processInputParams(I);return this._def.getter()._parse({data:G.data,path:G.path,parent:G})}}dK.create=(I,G)=>{return new dK({getter:I,typeName:gZ.ZodLazy,...EW(G)})};class mK extends qW{_parse(I){if(I.data!==this._def.value){let G=this._getOrReturnCtx(I);return cl(G,{received:G.data,code:LZ.invalid_literal,expected:this._def.value}),qb}return{status:"valid",value:I.data}}get value(){return this._def.value}}mK.create=(I,G)=>{return new mK({value:I,typeName:gZ.ZodLiteral,...EW(G)})};function RTG(I,G){return new Wu({values:I,typeName:gZ.ZodEnum,...EW(G)})}class Wu extends qW{_parse(I){if(typeof I.data!=="string"){let G=this._getOrReturnCtx(I),Z=this._def.values;return cl(G,{expected:tW.joinValues(Z),received:G.parsedType,code:LZ.invalid_type}),qb}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(I.data)){let G=this._getOrReturnCtx(I),Z=this._def.values;return cl(G,{received:G.data,code:LZ.invalid_enum_value,options:Z}),qb}return OQ(I.data)}get options(){return this._def.values}get enum(){let I={};for(let G of this._def.values)I[G]=G;return I}get Values(){let I={};for(let G of this._def.values)I[G]=G;return I}get Enum(){let I={};for(let G of this._def.values)I[G]=G;return I}extract(I,G=this._def){return Wu.create(I,{...this._def,...G})}exclude(I,G=this._def){return Wu.create(this.options.filter((Z)=>!I.includes(Z)),{...this._def,...G})}}Wu.create=RTG;class QK extends qW{_parse(I){let G=tW.getValidEnumValues(this._def.values),Z=this._getOrReturnCtx(I);if(Z.parsedType!==PZ.string&&Z.parsedType!==PZ.number){let l=tW.objectValues(G);return cl(Z,{expected:tW.joinValues(l),received:Z.parsedType,code:LZ.invalid_type}),qb}if(!this._cache)this._cache=new Set(tW.getValidEnumValues(this._def.values));if(!this._cache.has(I.data)){let l=tW.objectValues(G);return cl(Z,{received:Z.data,code:LZ.invalid_enum_value,options:l}),qb}return OQ(I.data)}get enum(){return this._def.values}}QK.create=(I,G)=>{return new QK({values:I,typeName:gZ.ZodNativeEnum,...EW(G)})};class ia extends qW{unwrap(){return this._def.type}_parse(I){let{ctx:G}=this._processInputParams(I);if(G.parsedType!==PZ.promise&&G.common.async===!1)return cl(G,{code:LZ.invalid_type,expected:PZ.promise,received:G.parsedType}),qb;let Z=G.parsedType===PZ.promise?G.data:Promise.resolve(G.data);return OQ(Z.then((l)=>{return this._def.type.parseAsync(l,{path:G.path,errorMap:G.common.contextualErrorMap})}))}}ia.create=(I,G)=>{return new ia({type:I,typeName:gZ.ZodPromise,...EW(G)})};class b5 extends qW{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===gZ.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(I){let{status:G,ctx:Z}=this._processInputParams(I),l=this._def.effect||null,b={addIssue:(W)=>{if(cl(Z,W),W.fatal)G.abort();else G.dirty()},get path(){return Z.path}};if(b.addIssue=b.addIssue.bind(b),l.type==="preprocess"){let W=l.transform(Z.data,b);if(Z.common.async)return Promise.resolve(W).then(async(N)=>{if(G.value==="aborted")return qb;let Y=await this._def.schema._parseAsync({data:N,path:Z.path,parent:Z});if(Y.status==="aborted")return qb;if(Y.status==="dirty")return ja(Y.value);if(G.value==="dirty")return ja(Y.value);return Y});else{if(G.value==="aborted")return qb;let N=this._def.schema._parseSync({data:W,path:Z.path,parent:Z});if(N.status==="aborted")return qb;if(N.status==="dirty")return ja(N.value);if(G.value==="dirty")return ja(N.value);return N}}if(l.type==="refinement"){let W=(N)=>{let Y=l.refinement(N,b);if(Z.common.async)return Promise.resolve(Y);if(Y instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return N};if(Z.common.async===!1){let N=this._def.schema._parseSync({data:Z.data,path:Z.path,parent:Z});if(N.status==="aborted")return qb;if(N.status==="dirty")G.dirty();return W(N.value),{status:G.value,value:N.value}}else return this._def.schema._parseAsync({data:Z.data,path:Z.path,parent:Z}).then((N)=>{if(N.status==="aborted")return qb;if(N.status==="dirty")G.dirty();return W(N.value).then(()=>{return{status:G.value,value:N.value}})})}if(l.type==="transform")if(Z.common.async===!1){let W=this._def.schema._parseSync({data:Z.data,path:Z.path,parent:Z});if(!Gu(W))return qb;let N=l.transform(W.value,b);if(N instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:G.value,value:N}}else return this._def.schema._parseAsync({data:Z.data,path:Z.path,parent:Z}).then((W)=>{if(!Gu(W))return qb;return Promise.resolve(l.transform(W.value,b)).then((N)=>({status:G.value,value:N}))});tW.assertNever(l)}}b5.create=(I,G,Z)=>{return new b5({schema:I,typeName:gZ.ZodEffects,effect:G,...EW(Z)})};b5.createWithPreprocess=(I,G,Z)=>{return new b5({schema:G,effect:{type:"preprocess",transform:I},typeName:gZ.ZodEffects,...EW(Z)})};class Z5 extends qW{_parse(I){if(this._getType(I)===PZ.undefined)return OQ(void 0);return this._def.innerType._parse(I)}unwrap(){return this._def.innerType}}Z5.create=(I,G)=>{return new Z5({innerType:I,typeName:gZ.ZodOptional,...EW(G)})};class Uv extends qW{_parse(I){if(this._getType(I)===PZ.null)return OQ(null);return this._def.innerType._parse(I)}unwrap(){return this._def.innerType}}Uv.create=(I,G)=>{return new Uv({innerType:I,typeName:gZ.ZodNullable,...EW(G)})};class XK extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z=G.data;if(G.parsedType===PZ.undefined)Z=this._def.defaultValue();return this._def.innerType._parse({data:Z,path:G.path,parent:G})}removeDefault(){return this._def.innerType}}XK.create=(I,G)=>{return new XK({innerType:I,typeName:gZ.ZodDefault,defaultValue:typeof G.default==="function"?G.default:()=>G.default,...EW(G)})};class FK extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z={...G,common:{...G.common,issues:[]}},l=this._def.innerType._parse({data:Z.data,path:Z.path,parent:{...Z}});if(ZK(l))return l.then((b)=>{return{status:"valid",value:b.status==="valid"?b.value:this._def.catchValue({get error(){return new b1(Z.common.issues)},input:Z.data})}});else return{status:"valid",value:l.status==="valid"?l.value:this._def.catchValue({get error(){return new b1(Z.common.issues)},input:Z.data})}}removeCatch(){return this._def.innerType}}FK.create=(I,G)=>{return new FK({innerType:I,typeName:gZ.ZodCatch,catchValue:typeof G.catch==="function"?G.catch:()=>G.catch,...EW(G)})};class ES extends qW{_parse(I){if(this._getType(I)!==PZ.nan){let Z=this._getOrReturnCtx(I);return cl(Z,{code:LZ.invalid_type,expected:PZ.nan,received:Z.parsedType}),qb}return{status:"valid",value:I.data}}}ES.create=(I)=>{return new ES({typeName:gZ.ZodNaN,...EW(I)})};var vyb=Symbol("zod_brand");class $lI extends qW{_parse(I){let{ctx:G}=this._processInputParams(I),Z=G.data;return this._def.type._parse({data:Z,path:G.path,parent:G})}unwrap(){return this._def.type}}class vS extends qW{_parse(I){let{status:G,ctx:Z}=this._processInputParams(I);if(Z.common.async)return(async()=>{let b=await this._def.in._parseAsync({data:Z.data,path:Z.path,parent:Z});if(b.status==="aborted")return qb;if(b.status==="dirty")return G.dirty(),ja(b.value);else return this._def.out._parseAsync({data:b.value,path:Z.path,parent:Z})})();else{let l=this._def.in._parseSync({data:Z.data,path:Z.path,parent:Z});if(l.status==="aborted")return qb;if(l.status==="dirty")return G.dirty(),{status:"dirty",value:l.value};else return this._def.out._parseSync({data:l.value,path:Z.path,parent:Z})}}static create(I,G){return new vS({in:I,out:G,typeName:gZ.ZodPipeline})}}class RK extends qW{_parse(I){let G=this._def.innerType._parse(I),Z=(l)=>{if(Gu(l))l.value=Object.freeze(l.value);return l};return ZK(G)?G.then((l)=>Z(l)):Z(G)}unwrap(){return this._def.innerType}}RK.create=(I,G)=>{return new RK({innerType:I,typeName:gZ.ZodReadonly,...EW(G)})};function mTG(I,G){let Z=typeof I==="function"?I(G):typeof I==="string"?{message:I}:I;return typeof Z==="string"?{message:Z}:Z}function HTG(I,G={},Z){if(I)return Ta.create().superRefine((l,b)=>{let W=I(l);if(W instanceof Promise)return W.then((N)=>{if(!N){let Y=mTG(G,l),c=Y.fatal??Z??!0;b.addIssue({code:"custom",...Y,fatal:c})}});if(!W){let N=mTG(G,l),Y=N.fatal??Z??!0;b.addIssue({code:"custom",...N,fatal:Y})}return});return Ta.create()}var Cyb={object:TV.lazycreate},gZ;(function(I){I.ZodString="ZodString",I.ZodNumber="ZodNumber",I.ZodNaN="ZodNaN",I.ZodBigInt="ZodBigInt",I.ZodBoolean="ZodBoolean",I.ZodDate="ZodDate",I.ZodSymbol="ZodSymbol",I.ZodUndefined="ZodUndefined",I.ZodNull="ZodNull",I.ZodAny="ZodAny",I.ZodUnknown="ZodUnknown",I.ZodNever="ZodNever",I.ZodVoid="ZodVoid",I.ZodArray="ZodArray",I.ZodObject="ZodObject",I.ZodUnion="ZodUnion",I.ZodDiscriminatedUnion="ZodDiscriminatedUnion",I.ZodIntersection="ZodIntersection",I.ZodTuple="ZodTuple",I.ZodRecord="ZodRecord",I.ZodMap="ZodMap",I.ZodSet="ZodSet",I.ZodFunction="ZodFunction",I.ZodLazy="ZodLazy",I.ZodLiteral="ZodLiteral",I.ZodEnum="ZodEnum",I.ZodEffects="ZodEffects",I.ZodNativeEnum="ZodNativeEnum",I.ZodOptional="ZodOptional",I.ZodNullable="ZodNullable",I.ZodDefault="ZodDefault",I.ZodCatch="ZodCatch",I.ZodPromise="ZodPromise",I.ZodBranded="ZodBranded",I.ZodPipeline="ZodPipeline",I.ZodReadonly="ZodReadonly"})(gZ||(gZ={}));var pyb=(I,G={message:`Input not instance of ${I.name}`})=>HTG((Z)=>Z instanceof I,G),hTG=I5.create,wTG=lu.create,yyb=ES.create,uyb=bu.create,JTG=WK.create,Lyb=qa.create,gyb=hS.create,ayb=NK.create,zyb=YK.create,Byb=Ta.create,kyb=Zu.create,Uyb=jA.create,xyb=wS.create,Oyb=G5.create,Myb=TV.create,Kyb=TV.strictCreate,Dyb=cK.create,nyb=flI.create,jyb=VK.create,qyb=qA.create,Tyb=JS.create,Syb=AS.create,iyb=Sa.create,Pyb=bK.create,_yb=dK.create,syb=mK.create,fyb=Wu.create,$yb=QK.create,oyb=ia.create,tyb=b5.create,ryb=Z5.create,eyb=Uv.create,Iub=b5.createWithPreprocess,Gub=vS.create,Zub=()=>hTG().optional(),lub=()=>wTG().optional(),bub=()=>JTG().optional(),Wub={string:(I)=>I5.create({...I,coerce:!0}),number:(I)=>lu.create({...I,coerce:!0}),boolean:(I)=>WK.create({...I,coerce:!0}),bigint:(I)=>bu.create({...I,coerce:!0}),date:(I)=>qa.create({...I,coerce:!0})};var Nub=qb;var olI=_G.object({name:_G.string().optional(),description:_G.string().optional(),tools:_G.string().optional(),disallowedTools:_G.string().optional(),model:_G.enum(["sonnet","opus","haiku","inherit"]).optional().default("inherit"),permissionMode:_G.enum(["default","acceptEdits","dontAsk","bypassPermissions","plan"]).optional(),maxTurns:_G.number().optional()});var Yub=/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;function ATG(I){let G=I.match(Yub);if(!G)return{frontmatter:olI.parse({}),body:I.trim()};let Z=G[1],l=G[2].trim(),b={};for(let W of Z.split(`
|
|
616
616
|
`)){let N=W.indexOf(":");if(N===-1)continue;let Y=W.slice(0,N).trim(),c=W.slice(N+1).trim();if(typeof c==="string"&&(c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'")))c=c.slice(1,-1);if(c==="true")c=!0;else if(c==="false")c=!1;if(typeof c==="string"&&/^\d+$/.test(c))c=parseInt(c,10);if(typeof c==="string"&&c.startsWith("[")&&c.endsWith("]"))c=c.slice(1,-1).split(",").map((V)=>V.trim()).filter(Boolean);b[Y]=c}try{return{frontmatter:olI.parse(b),body:l}}catch(W){return DG(W),{frontmatter:olI.parse({}),body:I.trim()}}}var ETG=[{name:"Explore",scope:"builtin",filePath:null,frontmatter:{name:"Explore",description:"Fast agent specialized for exploring codebases. Use for file searches, keyword searches, and codebase questions.",tools:"Glob, Grep, FileRead, WebFetch, WebSearch",model:"haiku"},body:`You are a fast code exploration agent. Your job is to quickly find files, search for keywords, and answer questions about the codebase.
|
|
617
617
|
|
|
618
618
|
Notes:
|
|
@@ -1700,13 +1700,13 @@ Notes:
|
|
|
1700
1700
|
3. Any file paths you return in your final response MUST be absolute. DO NOT use relative paths.`,`${await WBZ()}`]}var F1="API Error",TxI="Prompt is too long",SxI="Credit balance is too low",SdI="Invalid API key · Please run /login",h9="(no content)",YB=!process.env.DISABLE_PROMPT_CACHING,T7W=1,S7W=5,i7W=1.25,P7W=0.1,_7W=3,s7W=15,f7W=3.75,$7W=0.3,o7W=5,t7W=25,r7W=6.25,e7W=0.5,x_=1;function ixI(I){if(I.includes("haiku-4-5")||I.includes("haiku-4.5"))return{inputCost:T7W,outputCost:S7W,cacheWriteCost:i7W,cacheReadCost:P7W};if(I.includes("opus-4-5")||I.includes("opus-4.5")||I.includes("opus-4-6")||I.includes("opus-4.6"))return{inputCost:o7W,outputCost:t7W,cacheWriteCost:r7W,cacheReadCost:e7W};return{inputCost:_7W,outputCost:s7W,cacheWriteCost:f7W,cacheReadCost:$7W}}function idI(){return{user_id:`${nGI()}_${kX}`}}var IqW=process.env.USER_TYPE==="SWE_BENCH"?100:10,GqW=500;function ZqW(I,G){if(G){let Z=parseInt(G,10);if(!isNaN(Z))return Z*1000}return Math.min(GqW*Math.pow(2,I-1),32000)}function lqW(I){if(I.message?.includes('"type":"overloaded_error"'))return process.env.USER_TYPE==="SWE_BENCH";let G=I.headers?.["x-should-retry"];if(G==="true")return!0;if(G==="false")return!1;if(I instanceof Ov)return!0;if(!I.status)return!1;if(I.status===408)return!0;if(I.status===409)return!0;if(I.status===429)return!0;if(I.status&&I.status>=500)return!0;return!1}async function PdI(I,G={}){let Z=G.maxRetries??IqW,l;for(let b=1;b<=Z+1;b++)try{return await I(b)}catch(W){if(l=W,b>Z||!(W instanceof Lc)||!lqW(W))throw W;let N=W.headers?.["retry-after"]??null,Y=ZqW(b,N);console.log(` ⎿ ${uZ.red(`API ${W.name} (${W.message}) · Retrying in ${Math.round(Y/1000)} seconds… (attempt ${b}/${Z})`)}`),wG("tengu_api_retry",{attempt:String(b),delayMs:String(Y),error:W.message,status:String(W.status),provider:Rd?"bedrock":Hd?"vertex":"1p"}),await new Promise((c)=>setTimeout(c,Y))}throw l}async function YBZ(I){let G={apiKey:I,dangerouslyAllowBrowser:!0,maxRetries:3,defaultHeaders:{"User-Agent":ma}};if(process.env.ANTHROPIC_BASE_URL)G.baseURL=process.env.ANTHROPIC_BASE_URL;let Z=new SA(G);try{return await PdI(async()=>{let l=hd,b=[{role:"user",content:"test"}];return await Z.messages.create({model:l,max_tokens:1,messages:b,temperature:0,metadata:idI()}),!0},{maxRetries:2}),!0}catch(l){if(DG(l),l instanceof Error&&l.message.includes('{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}'))return!1;throw l}}async function PxI(I){let G=Date.now(),Z;for await(let b of I)if(b.type==="message_start")Z=Date.now()-G;return{...await I.finalMessage(),ttftMs:Z}}var aC=null;function gD(I){if(aC)return aC;let G=gaG(I),l={defaultHeaders:{"x-app":"cli","User-Agent":ma},maxRetries:0,timeout:parseInt(process.env.API_TIMEOUT_MS||String(60000),10),httpAgent:Ha()};if(Rd)return aC=new GVI(l),aC;if(Hd){let N={...l,region:G||process.env.CLOUD_ML_REGION||"us-east5"};return aC=new qVI(N),aC}let b=sH();if(process.env.USER_TYPE==="ant"&&!b)console.error(uZ.red("[ANT-ONLY] Please set the ANTHROPIC_API_KEY environment variable to use the CLI. To create a new key, go to https://console.anthropic.com/settings/keys."));let W={dangerouslyAllowBrowser:!0,...l,...process.env.ANTHROPIC_AUTH_TOKEN?{authToken:process.env.ANTHROPIC_AUTH_TOKEN}:{apiKey:b},...process.env.ANTHROPIC_BASE_URL?{baseURL:process.env.ANTHROPIC_BASE_URL}:{}};return aC=new SA(W),aC}function cBZ(){aC=null}function bqW(I,G=!1){if(G)if(typeof I.message.content==="string")return{role:"user",content:[{type:"text",text:I.message.content,...YB?{cache_control:{type:"ephemeral"}}:{}}]};else return{role:"user",content:I.message.content.map((Z,l)=>({...Z,...l===I.message.content.length-1?YB?{cache_control:{type:"ephemeral"}}:{}:{}}))};return{role:"user",content:I.message.content}}function WqW(I,G=!1){if(G)if(typeof I.message.content==="string")return{role:"assistant",content:[{type:"text",text:I.message.content,...YB?{cache_control:{type:"ephemeral"}}:{}}]};else return{role:"assistant",content:I.message.content.map((Z,l)=>({...Z,...l===I.message.content.length-1&&Z.type!=="thinking"&&Z.type!=="redacted_thinking"?YB?{cache_control:{type:"ephemeral"}}:{}:{}}))};return{role:"assistant",content:I.message.content}}function TdI(I){let G=I[0]||"",Z=I.slice(1);return[G,Z.join(`
|
|
1701
1701
|
`)].filter(Boolean)}async function aD(I,G,Z,l,b,W){let N=typeof Z==="number"?Z>0?{type:"enabled",budget_tokens:Z}:{type:"disabled"}:Z;return await RUI(I,()=>YqW(I,G,N,l,b,W))}function VBZ(I,G){if(Object.entries(G).length===0)return I;return[...I,`
|
|
1702
1702
|
As you answer the user's questions, you can use the following context:
|
|
1703
|
-
`,...Object.entries(G).map(([Z,l])=>`<context name="${Z}">${l}</context>`)]}function NqW(I,G){switch(I.type){case"adaptive":return{max_tokens:zC(G),thinking:{type:"adaptive"},output_config:{effort:I.effort}};case"enabled":return{max_tokens:Math.max(I.budget_tokens+1,zC(G)),thinking:{type:"enabled",budget_tokens:I.budget_tokens}};case"disabled":return{max_tokens:zC(G)}}}async function YqW(I,G,Z,l,b,W){let N=await gD(W.model);if(W.prependCLISysprompt){let[lI]=TdI(G);wG("tengu_sysprompt_block",{snippet:lI?.slice(0,20),length:String(lI?.length??0),hash:lI?q7W("sha256").update(lI).digest("hex"):""}),G=[bBZ(),...G]}let Y=TdI(G).map((lI)=>({...YB?{cache_control:{type:"ephemeral"}}:{},text:lI,type:"text"})),c=await Promise.all(l.map(async(lI)=>({name:lI.name,description:await lI.prompt({dangerouslySkipPermissions:W.dangerouslySkipPermissions}),input_schema:"inputJSONSchema"in lI&&lI.inputJSONSchema?lI.inputJSONSchema:Y9(lI.inputSchema)}))),V=await AGI(),d=YB&&V.length>0;wG("tengu_api_query",{model:W.model,messagesLength:String(JSON.stringify([...Y,...I,...c]).length),temperature:String(x_),provider:Rd?"bedrock":Hd?"vertex":"1p",...d?{betas:V.join(",")}:{}});let m=Date.now(),X=Date.now(),R=0,H,w=void 0;try{H=await PdI(async(lI)=>{R=lI,X=Date.now();let o=NqW(Z,W.model),LI=N.beta.messages.stream({model:W.model,max_tokens:o.max_tokens??zC(W.model),...o,messages:cqW(I),temperature:x_,system:Y,tools:c,...d?{betas:V}:{},metadata:idI()},{signal:b});return w=LI,PxI(LI)})}catch(lI){return DG(lI),wG("tengu_api_error",{model:W.model,error:lI instanceof Error?lI.message:String(lI),status:lI instanceof Lc?String(lI.status):void 0,messageCount:String(I.length),messageTokens:String(hE(I)),durationMs:String(Date.now()-X),durationMsIncludingRetries:String(Date.now()-m),attempt:String(R),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:w?.request_id??void 0}),_xI(lI)}let A=Date.now()-X,y=Date.now()-m;wG("tengu_api_success",{model:W.model,messageCount:String(I.length),messageTokens:String(hE(I)),inputTokens:String(H.usage.input_tokens),outputTokens:String(H.usage.output_tokens),cachedInputTokens:String(H.usage.cache_read_input_tokens??0),uncachedInputTokens:String(H.usage.cache_creation_input_tokens??0),durationMs:String(A),durationMsIncludingRetries:String(y),attempt:String(R),ttftMs:String(H.ttftMs),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:w?.request_id??void 0,stop_reason:H.stop_reason??void 0});let g=H.usage.input_tokens,a=H.usage.output_tokens,B=H.usage.cache_read_input_tokens??0,U=H.usage.cache_creation_input_tokens??0,q=ixI(W.model),$=g/1e6*q.inputCost+a/1e6*q.outputCost+B/1e6*q.cacheReadCost+U/1e6*q.cacheWriteCost;return $z($,y),{message:{...H,content:_dI(H.content),usage:{...H.usage,cache_read_input_tokens:H.usage.cache_read_input_tokens??0,cache_creation_input_tokens:H.usage.cache_creation_input_tokens??0}},costUSD:$,durationMs:A,type:"assistant",uuid:U_()}}function _xI(I){if(I instanceof Error&&I.message.includes("prompt is too long"))return LD(TxI);if(I instanceof Error&&I.message.includes("Your credit balance is too low"))return LD(SxI);if(I instanceof Error&&I.message.toLowerCase().includes("x-api-key"))return LD(SdI);if(I instanceof Error)return LD(`${F1}: ${I.message}`);return LD(F1)}function cqW(I){return I.map((G,Z)=>{return G.type==="user"?bqW(G,Z>I.length-3):WqW(G,Z>I.length-3)})}async function VqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:l}){let b=await gD(hd),W=hd,N=[{role:"user",content:G},...Z?[{role:"assistant",content:Z}]:[]],Y=TdI(I).map((q)=>({...YB?{cache_control:{type:"ephemeral"}}:{},text:q,type:"text"}));wG("tengu_api_query",{model:W,messagesLength:String(JSON.stringify([...Y,...N]).length),provider:Rd?"bedrock":Hd?"vertex":"1p"});let c=0,V=Date.now(),d=Date.now(),m,X=void 0;try{m=await PdI(async(q)=>{c=q,V=Date.now();let $=b.beta.messages.stream({model:W,max_tokens:512,messages:N,system:Y,temperature:0,metadata:idI(),stream:!0},{signal:l});return X=$,await PxI($)})}catch(q){return DG(q),wG("tengu_api_error",{error:q instanceof Error?q.message:String(q),status:q instanceof Lc?String(q.status):void 0,model:hd,messageCount:String(Z?2:1),durationMs:String(Date.now()-V),durationMsIncludingRetries:String(Date.now()-d),attempt:String(c),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:X?.request_id??void 0}),_xI(q)}let R=m.usage.input_tokens,H=m.usage.output_tokens,w=m.usage.cache_read_input_tokens??0,A=m.usage.cache_creation_input_tokens??0,y=ixI(hd),g=R/1e6*y.inputCost+H/1e6*y.outputCost+w/1e6*y.cacheReadCost+A/1e6*y.cacheWriteCost,a=Date.now()-V,B=Date.now()-d;$z(g,B);let U={durationMs:a,message:{...m,content:_dI(m.content)},costUSD:g,uuid:U_(),type:"assistant"};return wG("tengu_api_success",{model:hd,messageCount:String(Z?2:1),inputTokens:String(R),outputTokens:String(m.usage.output_tokens),cachedInputTokens:String(m.usage.cache_read_input_tokens??0),uncachedInputTokens:String(m.usage.cache_creation_input_tokens??0),durationMs:String(a),durationMsIncludingRetries:String(B),ttftMs:String(m.ttftMs),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:X?.request_id??void 0,stop_reason:m.stop_reason??void 0}),U}async function dqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:l}){let b=await gD(hd),W=hd,N=[{role:"user",content:G},...Z?[{role:"assistant",content:Z}]:[]];wG("tengu_api_query",{model:W,messagesLength:String(JSON.stringify([{systemPrompt:I},...N]).length),provider:Rd?"bedrock":Hd?"vertex":"1p"});let Y=0,c=Date.now(),V=Date.now(),d,m=void 0;try{d=await PdI(async(a)=>{Y=a,c=Date.now();let B=b.beta.messages.stream({model:W,max_tokens:512,messages:N,system:TdI(I).map((U)=>({type:"text",text:U})),temperature:0,metadata:idI(),stream:!0},{signal:l});return m=B,await PxI(B)})}catch(a){return DG(a),wG("tengu_api_error",{error:a instanceof Error?a.message:String(a),status:a instanceof Lc?String(a.status):void 0,model:hd,messageCount:String(Z?2:1),durationMs:String(Date.now()-c),durationMsIncludingRetries:String(Date.now()-V),attempt:String(Y),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:m?.request_id??void 0}),_xI(a)}let X=Date.now()-c,R=Date.now()-V;wG("tengu_api_success",{model:hd,messageCount:String(Z?2:1),inputTokens:String(d.usage.input_tokens),outputTokens:String(d.usage.output_tokens),durationMs:String(X),durationMsIncludingRetries:String(R),attempt:String(Y),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:m?.request_id??void 0,stop_reason:d.stop_reason??void 0});let H=d.usage.input_tokens,w=d.usage.output_tokens,A=ixI(hd),y=H/1e6*A.inputCost+w/1e6*A.outputCost;return $z(y,X),{durationMs:X,message:{...d,content:_dI(d.content),usage:{...d.usage,cache_read_input_tokens:0,cache_creation_input_tokens:0}},costUSD:y,type:"assistant",uuid:U_()}}async function gh({systemPrompt:I=[],userPrompt:G,assistantPrompt:Z,enablePromptCaching:l=!1,signal:b}){return await RUI([{message:{role:"user",content:I.map((W)=>({type:"text",text:W}))},type:"user",uuid:U_()},{message:{role:"user",content:G},type:"user",uuid:U_()}],()=>{return l?VqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:b}):dqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:b})})}function zC(I){if(I.includes("opus-4-6"))return 128000;if(I.includes("sonnet-4-6"))return 64000;if(I.includes("haiku-4-5"))return 64000;if(I.includes("sonnet-4-5"))return 64000;if(I.includes("opus-4-5"))return 64000;if(I.includes("opus-4-1"))return 32000;if(I.includes("sonnet-4"))return 64000;if(I.includes("opus-4"))return 32000;if(I.includes("haiku-3")||I.includes("3-haiku"))return 4000;if(I.includes("sonnet-3"))return 64000;return 8000}function sxI(I){return 200000}async function w9(I){let G=process.platform,Z=G==="win32"?"start":G==="darwin"?"open":"xdg-open";try{let{code:l}=await oW(Z,[I]);return l===0}catch(l){return!1}}var mqW="https://github.com/quantumiodb/ccode/issues";function dBZ({onDone:I}){let[G,Z]=kh.useState("userInput"),[l,b]=kh.useState(0),[W,N]=kh.useState(""),[Y,c]=kh.useState(null),[V,d]=kh.useState(null),[m,X]=kh.useState({isGit:!1,gitState:null}),[R,H]=kh.useState(null),w=rN().columns-4,A=TA()();kh.useEffect(()=>{async function B(){let U=await PH(),q=null;if(U)q=await EGI();X({isGit:U,gitState:q})}B()},[]);let y=EY(()=>process.exit(0)),g=kh.useCallback(async()=>{Z("submitting"),d(null),c(null);let B={message_count:A.length,datetime:new Date().toISOString(),description:W,platform:Ol.platform,gitRepo:m.isGit,terminal:Ol.terminal,version:"1.3.0",transcript:A,errors:eyG()},[U,q]=await Promise.all([FqW(B),XqW(W)]);if(H(q),U.success){if(U.feedbackId)c(U.feedbackId),wG("tengu_bug_report_submitted",{feedback_id:U.feedbackId});Z("done")}else d("Could not submit feedback. Please try again later."),Z("userInput")},[W,m.isGit,A]);zb((B,U)=>{if(G==="done"){if(U.return&&Y&&R){let q=QqW(Y,R,W);w9(q)}I("<bash-stdout>Bug report submitted</bash-stdout>");return}if(V){I("<bash-stderr>Error submitting bug report</bash-stderr>");return}if(U.escape){I("<bash-stderr>Bug report cancelled</bash-stderr>");return}if(G==="consent"&&(U.return||B===" "))g()});let a=XG();return SZ.createElement(SZ.Fragment,null,SZ.createElement(GI,{flexDirection:"column",borderStyle:"round",borderColor:a.permission,paddingX:1,paddingBottom:1,gap:1},SZ.createElement(K,{bold:!0,color:a.permission},"Submit Bug Report"),G==="userInput"&&SZ.createElement(GI,{flexDirection:"column",gap:1},SZ.createElement(K,null,"Describe the issue below:"),SZ.createElement(W5,{value:W,onChange:N,columns:w,onSubmit:()=>Z("consent"),onExitMessage:()=>I("<bash-stderr>Bug report cancelled</bash-stderr>"),cursorOffset:l,onChangeCursorOffset:b}),V&&SZ.createElement(GI,{flexDirection:"column",gap:1},SZ.createElement(K,{color:"red"},V),SZ.createElement(K,{dimColor:!0},"Press any key to close"))),G==="consent"&&SZ.createElement(GI,{flexDirection:"column"},SZ.createElement(K,null,"This report will include:"),SZ.createElement(GI,{marginLeft:2,flexDirection:"column"},SZ.createElement(K,null,"- Your bug description: ",SZ.createElement(K,{dimColor:!0},W)),SZ.createElement(K,null,"- Environment info:"," ",SZ.createElement(K,{dimColor:!0},Ol.platform,", ",Ol.terminal,", v","1.3.0")),m.gitState&&SZ.createElement(K,null,"- Git repo metadata:"," ",SZ.createElement(K,{dimColor:!0},m.gitState.branchName,m.gitState.commitHash?`, ${m.gitState.commitHash.slice(0,7)}`:"",m.gitState.remoteUrl?` @ ${m.gitState.remoteUrl}`:"",!m.gitState.isHeadOnRemote&&", not synced",!m.gitState.isClean&&", has local changes")),SZ.createElement(K,null,"- Current session transcript")),SZ.createElement(GI,{marginTop:1},SZ.createElement(K,{wrap:"wrap",dimColor:!0},"We will use your feedback to debug related issues or to improve ",hN,"'s functionality (eg. to reduce the risk of bugs occurring in the future). Anthropic will not train generative models using feedback from ",hN,".")),SZ.createElement(GI,{marginTop:1},SZ.createElement(K,null,"Press ",SZ.createElement(K,{bold:!0},"Enter")," to confirm and submit."))),G==="submitting"&&SZ.createElement(GI,{flexDirection:"row",gap:1},SZ.createElement(K,null,"Submitting report…")),G==="done"&&SZ.createElement(GI,{flexDirection:"column"},SZ.createElement(K,{color:XG().success},"Thank you for your report!"),Y&&SZ.createElement(K,{dimColor:!0},"Feedback ID: ",Y),SZ.createElement(GI,{marginTop:1},SZ.createElement(K,null,"Press "),SZ.createElement(K,{bold:!0},"Enter "),SZ.createElement(K,null,"to also create a GitHub issue, or any other key to close.")))),SZ.createElement(GI,{marginLeft:3},SZ.createElement(K,{dimColor:!0},y.pending?SZ.createElement(SZ.Fragment,null,"Press ",y.keyName," again to exit"):G==="userInput"?SZ.createElement(SZ.Fragment,null,"Enter to continue · Esc to cancel"):G==="consent"?SZ.createElement(SZ.Fragment,null,"Enter to submit · Esc to cancel"):null)))}function QqW(I,G,Z){let l=encodeURIComponent(`**Bug Description**
|
|
1703
|
+
`,...Object.entries(G).map(([Z,l])=>`<context name="${Z}">${l}</context>`)]}function NqW(I,G){switch(I.type){case"adaptive":return{max_tokens:zC(G),thinking:{type:"adaptive"},output_config:{effort:I.effort}};case"enabled":return{max_tokens:Math.max(I.budget_tokens+1,zC(G)),thinking:{type:"enabled",budget_tokens:I.budget_tokens}};case"disabled":return{max_tokens:zC(G)}}}async function YqW(I,G,Z,l,b,W){let N=await gD(W.model);if(W.prependCLISysprompt){let[lI]=TdI(G);wG("tengu_sysprompt_block",{snippet:lI?.slice(0,20),length:String(lI?.length??0),hash:lI?q7W("sha256").update(lI).digest("hex"):""}),G=[bBZ(),...G]}let Y=TdI(G).map((lI)=>({...YB?{cache_control:{type:"ephemeral"}}:{},text:lI,type:"text"})),c=await Promise.all(l.map(async(lI)=>({name:lI.name,description:await lI.prompt({dangerouslySkipPermissions:W.dangerouslySkipPermissions}),input_schema:"inputJSONSchema"in lI&&lI.inputJSONSchema?lI.inputJSONSchema:Y9(lI.inputSchema)}))),V=await AGI(),d=YB&&V.length>0;wG("tengu_api_query",{model:W.model,messagesLength:String(JSON.stringify([...Y,...I,...c]).length),temperature:String(x_),provider:Rd?"bedrock":Hd?"vertex":"1p",...d?{betas:V.join(",")}:{}});let m=Date.now(),X=Date.now(),R=0,H,w=void 0;try{H=await PdI(async(lI)=>{R=lI,X=Date.now();let o=NqW(Z,W.model),LI=N.beta.messages.stream({model:W.model,max_tokens:o.max_tokens??zC(W.model),...o,messages:cqW(I),temperature:x_,system:Y,tools:c,...d?{betas:V}:{},metadata:idI()},{signal:b});return w=LI,PxI(LI)})}catch(lI){return DG(lI),wG("tengu_api_error",{model:W.model,error:lI instanceof Error?lI.message:String(lI),status:lI instanceof Lc?String(lI.status):void 0,messageCount:String(I.length),messageTokens:String(hE(I)),durationMs:String(Date.now()-X),durationMsIncludingRetries:String(Date.now()-m),attempt:String(R),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:w?.request_id??void 0}),_xI(lI)}let A=Date.now()-X,y=Date.now()-m;wG("tengu_api_success",{model:W.model,messageCount:String(I.length),messageTokens:String(hE(I)),inputTokens:String(H.usage.input_tokens),outputTokens:String(H.usage.output_tokens),cachedInputTokens:String(H.usage.cache_read_input_tokens??0),uncachedInputTokens:String(H.usage.cache_creation_input_tokens??0),durationMs:String(A),durationMsIncludingRetries:String(y),attempt:String(R),ttftMs:String(H.ttftMs),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:w?.request_id??void 0,stop_reason:H.stop_reason??void 0});let g=H.usage.input_tokens,a=H.usage.output_tokens,B=H.usage.cache_read_input_tokens??0,U=H.usage.cache_creation_input_tokens??0,q=ixI(W.model),$=g/1e6*q.inputCost+a/1e6*q.outputCost+B/1e6*q.cacheReadCost+U/1e6*q.cacheWriteCost;return $z($,y),{message:{...H,content:_dI(H.content),usage:{...H.usage,cache_read_input_tokens:H.usage.cache_read_input_tokens??0,cache_creation_input_tokens:H.usage.cache_creation_input_tokens??0}},costUSD:$,durationMs:A,type:"assistant",uuid:U_()}}function _xI(I){if(I instanceof Error&&I.message.includes("prompt is too long"))return LD(TxI);if(I instanceof Error&&I.message.includes("Your credit balance is too low"))return LD(SxI);if(I instanceof Error&&I.message.toLowerCase().includes("x-api-key"))return LD(SdI);if(I instanceof Error)return LD(`${F1}: ${I.message}`);return LD(F1)}function cqW(I){return I.map((G,Z)=>{return G.type==="user"?bqW(G,Z>I.length-3):WqW(G,Z>I.length-3)})}async function VqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:l}){let b=await gD(hd),W=hd,N=[{role:"user",content:G},...Z?[{role:"assistant",content:Z}]:[]],Y=TdI(I).map((q)=>({...YB?{cache_control:{type:"ephemeral"}}:{},text:q,type:"text"}));wG("tengu_api_query",{model:W,messagesLength:String(JSON.stringify([...Y,...N]).length),provider:Rd?"bedrock":Hd?"vertex":"1p"});let c=0,V=Date.now(),d=Date.now(),m,X=void 0;try{m=await PdI(async(q)=>{c=q,V=Date.now();let $=b.beta.messages.stream({model:W,max_tokens:512,messages:N,system:Y,temperature:0,metadata:idI(),stream:!0},{signal:l});return X=$,await PxI($)})}catch(q){return DG(q),wG("tengu_api_error",{error:q instanceof Error?q.message:String(q),status:q instanceof Lc?String(q.status):void 0,model:hd,messageCount:String(Z?2:1),durationMs:String(Date.now()-V),durationMsIncludingRetries:String(Date.now()-d),attempt:String(c),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:X?.request_id??void 0}),_xI(q)}let R=m.usage.input_tokens,H=m.usage.output_tokens,w=m.usage.cache_read_input_tokens??0,A=m.usage.cache_creation_input_tokens??0,y=ixI(hd),g=R/1e6*y.inputCost+H/1e6*y.outputCost+w/1e6*y.cacheReadCost+A/1e6*y.cacheWriteCost,a=Date.now()-V,B=Date.now()-d;$z(g,B);let U={durationMs:a,message:{...m,content:_dI(m.content)},costUSD:g,uuid:U_(),type:"assistant"};return wG("tengu_api_success",{model:hd,messageCount:String(Z?2:1),inputTokens:String(R),outputTokens:String(m.usage.output_tokens),cachedInputTokens:String(m.usage.cache_read_input_tokens??0),uncachedInputTokens:String(m.usage.cache_creation_input_tokens??0),durationMs:String(a),durationMsIncludingRetries:String(B),ttftMs:String(m.ttftMs),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:X?.request_id??void 0,stop_reason:m.stop_reason??void 0}),U}async function dqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:l}){let b=await gD(hd),W=hd,N=[{role:"user",content:G},...Z?[{role:"assistant",content:Z}]:[]];wG("tengu_api_query",{model:W,messagesLength:String(JSON.stringify([{systemPrompt:I},...N]).length),provider:Rd?"bedrock":Hd?"vertex":"1p"});let Y=0,c=Date.now(),V=Date.now(),d,m=void 0;try{d=await PdI(async(a)=>{Y=a,c=Date.now();let B=b.beta.messages.stream({model:W,max_tokens:512,messages:N,system:TdI(I).map((U)=>({type:"text",text:U})),temperature:0,metadata:idI(),stream:!0},{signal:l});return m=B,await PxI(B)})}catch(a){return DG(a),wG("tengu_api_error",{error:a instanceof Error?a.message:String(a),status:a instanceof Lc?String(a.status):void 0,model:hd,messageCount:String(Z?2:1),durationMs:String(Date.now()-c),durationMsIncludingRetries:String(Date.now()-V),attempt:String(Y),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:m?.request_id??void 0}),_xI(a)}let X=Date.now()-c,R=Date.now()-V;wG("tengu_api_success",{model:hd,messageCount:String(Z?2:1),inputTokens:String(d.usage.input_tokens),outputTokens:String(d.usage.output_tokens),durationMs:String(X),durationMsIncludingRetries:String(R),attempt:String(Y),provider:Rd?"bedrock":Hd?"vertex":"1p",requestId:m?.request_id??void 0,stop_reason:d.stop_reason??void 0});let H=d.usage.input_tokens,w=d.usage.output_tokens,A=ixI(hd),y=H/1e6*A.inputCost+w/1e6*A.outputCost;return $z(y,X),{durationMs:X,message:{...d,content:_dI(d.content),usage:{...d.usage,cache_read_input_tokens:0,cache_creation_input_tokens:0}},costUSD:y,type:"assistant",uuid:U_()}}async function gh({systemPrompt:I=[],userPrompt:G,assistantPrompt:Z,enablePromptCaching:l=!1,signal:b}){return await RUI([{message:{role:"user",content:I.map((W)=>({type:"text",text:W}))},type:"user",uuid:U_()},{message:{role:"user",content:G},type:"user",uuid:U_()}],()=>{return l?VqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:b}):dqW({systemPrompt:I,userPrompt:G,assistantPrompt:Z,signal:b})})}function zC(I){if(I.includes("opus-4-6"))return 128000;if(I.includes("sonnet-4-6"))return 64000;if(I.includes("haiku-4-5"))return 64000;if(I.includes("sonnet-4-5"))return 64000;if(I.includes("opus-4-5"))return 64000;if(I.includes("opus-4-1"))return 32000;if(I.includes("sonnet-4"))return 64000;if(I.includes("opus-4"))return 32000;if(I.includes("haiku-3")||I.includes("3-haiku"))return 4000;if(I.includes("sonnet-3"))return 64000;return 8000}function sxI(I){return 200000}async function w9(I){let G=process.platform,Z=G==="win32"?"start":G==="darwin"?"open":"xdg-open";try{let{code:l}=await oW(Z,[I]);return l===0}catch(l){return!1}}var mqW="https://github.com/quantumiodb/ccode/issues";function dBZ({onDone:I}){let[G,Z]=kh.useState("userInput"),[l,b]=kh.useState(0),[W,N]=kh.useState(""),[Y,c]=kh.useState(null),[V,d]=kh.useState(null),[m,X]=kh.useState({isGit:!1,gitState:null}),[R,H]=kh.useState(null),w=rN().columns-4,A=TA()();kh.useEffect(()=>{async function B(){let U=await PH(),q=null;if(U)q=await EGI();X({isGit:U,gitState:q})}B()},[]);let y=EY(()=>process.exit(0)),g=kh.useCallback(async()=>{Z("submitting"),d(null),c(null);let B={message_count:A.length,datetime:new Date().toISOString(),description:W,platform:Ol.platform,gitRepo:m.isGit,terminal:Ol.terminal,version:"1.3.1",transcript:A,errors:eyG()},[U,q]=await Promise.all([FqW(B),XqW(W)]);if(H(q),U.success){if(U.feedbackId)c(U.feedbackId),wG("tengu_bug_report_submitted",{feedback_id:U.feedbackId});Z("done")}else d("Could not submit feedback. Please try again later."),Z("userInput")},[W,m.isGit,A]);zb((B,U)=>{if(G==="done"){if(U.return&&Y&&R){let q=QqW(Y,R,W);w9(q)}I("<bash-stdout>Bug report submitted</bash-stdout>");return}if(V){I("<bash-stderr>Error submitting bug report</bash-stderr>");return}if(U.escape){I("<bash-stderr>Bug report cancelled</bash-stderr>");return}if(G==="consent"&&(U.return||B===" "))g()});let a=XG();return SZ.createElement(SZ.Fragment,null,SZ.createElement(GI,{flexDirection:"column",borderStyle:"round",borderColor:a.permission,paddingX:1,paddingBottom:1,gap:1},SZ.createElement(K,{bold:!0,color:a.permission},"Submit Bug Report"),G==="userInput"&&SZ.createElement(GI,{flexDirection:"column",gap:1},SZ.createElement(K,null,"Describe the issue below:"),SZ.createElement(W5,{value:W,onChange:N,columns:w,onSubmit:()=>Z("consent"),onExitMessage:()=>I("<bash-stderr>Bug report cancelled</bash-stderr>"),cursorOffset:l,onChangeCursorOffset:b}),V&&SZ.createElement(GI,{flexDirection:"column",gap:1},SZ.createElement(K,{color:"red"},V),SZ.createElement(K,{dimColor:!0},"Press any key to close"))),G==="consent"&&SZ.createElement(GI,{flexDirection:"column"},SZ.createElement(K,null,"This report will include:"),SZ.createElement(GI,{marginLeft:2,flexDirection:"column"},SZ.createElement(K,null,"- Your bug description: ",SZ.createElement(K,{dimColor:!0},W)),SZ.createElement(K,null,"- Environment info:"," ",SZ.createElement(K,{dimColor:!0},Ol.platform,", ",Ol.terminal,", v","1.3.1")),m.gitState&&SZ.createElement(K,null,"- Git repo metadata:"," ",SZ.createElement(K,{dimColor:!0},m.gitState.branchName,m.gitState.commitHash?`, ${m.gitState.commitHash.slice(0,7)}`:"",m.gitState.remoteUrl?` @ ${m.gitState.remoteUrl}`:"",!m.gitState.isHeadOnRemote&&", not synced",!m.gitState.isClean&&", has local changes")),SZ.createElement(K,null,"- Current session transcript")),SZ.createElement(GI,{marginTop:1},SZ.createElement(K,{wrap:"wrap",dimColor:!0},"We will use your feedback to debug related issues or to improve ",hN,"'s functionality (eg. to reduce the risk of bugs occurring in the future). Anthropic will not train generative models using feedback from ",hN,".")),SZ.createElement(GI,{marginTop:1},SZ.createElement(K,null,"Press ",SZ.createElement(K,{bold:!0},"Enter")," to confirm and submit."))),G==="submitting"&&SZ.createElement(GI,{flexDirection:"row",gap:1},SZ.createElement(K,null,"Submitting report…")),G==="done"&&SZ.createElement(GI,{flexDirection:"column"},SZ.createElement(K,{color:XG().success},"Thank you for your report!"),Y&&SZ.createElement(K,{dimColor:!0},"Feedback ID: ",Y),SZ.createElement(GI,{marginTop:1},SZ.createElement(K,null,"Press "),SZ.createElement(K,{bold:!0},"Enter "),SZ.createElement(K,null,"to also create a GitHub issue, or any other key to close.")))),SZ.createElement(GI,{marginLeft:3},SZ.createElement(K,{dimColor:!0},y.pending?SZ.createElement(SZ.Fragment,null,"Press ",y.keyName," again to exit"):G==="userInput"?SZ.createElement(SZ.Fragment,null,"Enter to continue · Esc to cancel"):G==="consent"?SZ.createElement(SZ.Fragment,null,"Enter to submit · Esc to cancel"):null)))}function QqW(I,G,Z){let l=encodeURIComponent(`**Bug Description**
|
|
1704
1704
|
${Z}
|
|
1705
1705
|
|
|
1706
1706
|
**Environment Info**
|
|
1707
1707
|
- Platform: ${Ol.platform}
|
|
1708
1708
|
- Terminal: ${Ol.terminal}
|
|
1709
|
-
- Version: 1.3.
|
|
1709
|
+
- Version: 1.3.1
|
|
1710
1710
|
- Feedback ID: ${I}
|
|
1711
1711
|
`);return`${mqW}/new?title=${encodeURIComponent(G)}&body=${l}&labels=user-reported,bug`}async function XqW(I){let G=await gh({systemPrompt:['Generate a concise issue title (max 80 chars) that captures the key point of this feedback. Do not include quotes or prefixes like "Feedback:" or "Issue:". If you cannot generate a title, just use "User Feedback".'],userPrompt:I}),Z=G.message.content[0]?.type==="text"?G.message.content[0].text:"Bug Report";if(Z.startsWith(F1))return`Bug Report: ${I.slice(0,60)}${I.length>60?"...":""}`;return Z}async function FqW(I){try{let G=sH(),Z=process.env.ANTHROPIC_AUTH_TOKEN;if(!G&&!Z)return{success:!1};let l=process.env.ANTHROPIC_BASE_URL||"https://api.anthropic.com",b={"Content-Type":"application/json","User-Agent":ma};if(Z)b.Authorization=`Bearer ${Z}`;else b["x-api-key"]=G;let W=await fetch(`${l}/api/claude_cli_feedback`,{method:"POST",headers:b,body:JSON.stringify({content:JSON.stringify(I)})});if(W.ok){let N=await W.json();if(N?.feedback_id)return{success:!0,feedbackId:N.feedback_id};return DG("Failed to submit feedback: request did not return feedback_id"),{success:!1}}return DG("Failed to submit feedback:"+W.status),{success:!1}}catch(G){return DG("Error submitting feedback: "+(G instanceof Error?G.message:"Unknown error")),{success:!1}}}var fxI=hI(YG(),1);var RqW={type:"local-jsx",name:"bug",description:`Submit feedback about ${hN}`,isEnabled:!0,isHidden:!1,async call(I){return fxI.createElement(dBZ,{onDone:I})},userFacingName(){return"bug"}},mBZ=RqW;import{existsSync as HqW,readFileSync as hqW}from"fs";import{join as wqW,parse as JqW,dirname as AqW}from"path";var EqW="The codebase follows strict style guidelines shown below. All code changes must strictly adhere to these guidelines to maintain consistency and quality.",BC=Zb(()=>{let I=[],G=XZ();while(G!==JqW(G).root){let Z=wqW(G,"CLAUDE.md");if(HqW(Z))I.push(`Contents of ${Z}:
|
|
1712
1712
|
|
|
@@ -1784,13 +1784,13 @@ ${I}`});function m6I(I){if(process.platform==="win32")process.title=I?`✳ ${I}`
|
|
|
1784
1784
|
<context name="${V}">${d}</context>`;let N=b.map((V)=>{let d=V.prompt({dangerouslySkipPermissions:!1}),m=JSON.stringify("inputJSONSchema"in V&&V.inputJSONSchema?V.inputJSONSchema:V.inputSchema&&("_def"in V.inputSchema)?Y9(V.inputSchema):V.inputSchema??{});return{name:V.name,description:`${d}
|
|
1785
1785
|
|
|
1786
1786
|
Schema:
|
|
1787
|
-
${m}`}}),Y=TA()(),c=$IN(W);return oIN(W,c,N,Y)}},p6I=tIN;var B8Z=hI(YG(),1);var GN=hI(YG(),1);var iY=hI(YG(),1);var om=hI(YG(),1),lJ=hI(YG(),1);var i0I=process.platform==="darwin"?["·","✢","✳","∗","✻","✽"]:["·","✢","*","∗","✻","✽"],rIN=["Accomplishing","Actioning","Actualizing","Baking","Brewing","Calculating","Cerebrating","Churning","Clauding","Coalescing","Cogitating","Computing","Conjuring","Considering","Cooking","Crafting","Creating","Crunching","Deliberating","Determining","Doing","Effecting","Finagling","Forging","Forming","Generating","Hatching","Herding","Honking","Hustling","Ideating","Inferring","Manifesting","Marinating","Moseying","Mulling","Mustering","Musing","Noodling","Percolating","Pondering","Processing","Puttering","Reticulating","Ruminating","Schlepping","Shucking","Simmering","Smooshing","Spinning","Stewing","Synthesizing","Thinking","Transmuting","Vibing","Working"];function P0I(){let I=[...i0I,...[...i0I].reverse()],[G,Z]=lJ.useState(0),[l,b]=lJ.useState(0),W=lJ.useRef(la(rIN)),N=lJ.useRef(Date.now());return lJ.useEffect(()=>{let Y=setInterval(()=>{Z((c)=>(c+1)%I.length)},120);return()=>clearInterval(Y)},[I.length]),lJ.useEffect(()=>{let Y=setInterval(()=>{b(Math.floor((Date.now()-N.current)/1000))},1000);return()=>clearInterval(Y)},[]),om.createElement(GI,{flexDirection:"row",marginTop:1},om.createElement(GI,{flexWrap:"nowrap",height:1,width:2},om.createElement(K,{color:XG().claude},I[G])),om.createElement(K,{color:XG().claude},W.current,"… "),om.createElement(K,{color:XG().secondaryText},"(",l,"s · ",om.createElement(K,{bold:!0},"esc")," to interrupt)"))}function is(){let I=[...i0I,...[...i0I].reverse()],[G,Z]=lJ.useState(0);return lJ.useEffect(()=>{let l=setInterval(()=>{Z((b)=>(b+1)%I.length)},120);return()=>clearInterval(l)},[I.length]),om.createElement(GI,{flexWrap:"nowrap",height:1,width:2},om.createElement(K,{color:XG().claude},I[G]))}import{homedir as Ps}from"os";import{join as wn}from"path";import{existsSync as _s,mkdirSync as E8Z,appendFileSync as A8Z,readFileSync as v8Z,constants as eIN,writeFileSync as IGN,unlinkSync as C8Z,statSync as GGN}from"fs";import{platform as p8Z}from"process";import{accessSync as ZGN}from"fs";var lGN=hI(AU(),1);var CB=wn(Ay,".update.lock"),bGN=300000;function y8Z(){try{if(!_s(Ay))E8Z(Ay,{recursive:!0});if(_s(CB)){let I=GGN(CB);if(Date.now()-I.mtimeMs<bGN)return!1;try{C8Z(CB)}catch(Z){return DG(`Failed to remove stale lock file: ${Z}`),!1}}return IGN(CB,`${process.pid}`,"utf8"),!0}catch(I){return DG(`Failed to acquire lock: ${I}`),!1}}function u8Z(){try{if(_s(CB)){if(v8Z(CB,"utf8")===`${process.pid}`)C8Z(CB)}}catch(I){DG(`Failed to release lock: ${I}`)}}async function y6I(){try{let I=await oW("npm",["-g","config","get","prefix"]);if(I.code!==0)return DG("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let G=I.stdout.trim(),Z=!1;try{ZGN(G,eIN.W_OK),Z=!0}catch{Z=!1}if(Z)return{hasPermissions:!0,npmPrefix:G};return DG("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:G}}catch(I){return DG(`Failed to verify npm global install permissions: ${I}`),{hasPermissions:!1,npmPrefix:null}}}async function L8Z(I){if(!y8Z())throw wG("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:"1.3.
|
|
1787
|
+
${m}`}}),Y=TA()(),c=$IN(W);return oIN(W,c,N,Y)}},p6I=tIN;var B8Z=hI(YG(),1);var GN=hI(YG(),1);var iY=hI(YG(),1);var om=hI(YG(),1),lJ=hI(YG(),1);var i0I=process.platform==="darwin"?["·","✢","✳","∗","✻","✽"]:["·","✢","*","∗","✻","✽"],rIN=["Accomplishing","Actioning","Actualizing","Baking","Brewing","Calculating","Cerebrating","Churning","Clauding","Coalescing","Cogitating","Computing","Conjuring","Considering","Cooking","Crafting","Creating","Crunching","Deliberating","Determining","Doing","Effecting","Finagling","Forging","Forming","Generating","Hatching","Herding","Honking","Hustling","Ideating","Inferring","Manifesting","Marinating","Moseying","Mulling","Mustering","Musing","Noodling","Percolating","Pondering","Processing","Puttering","Reticulating","Ruminating","Schlepping","Shucking","Simmering","Smooshing","Spinning","Stewing","Synthesizing","Thinking","Transmuting","Vibing","Working"];function P0I(){let I=[...i0I,...[...i0I].reverse()],[G,Z]=lJ.useState(0),[l,b]=lJ.useState(0),W=lJ.useRef(la(rIN)),N=lJ.useRef(Date.now());return lJ.useEffect(()=>{let Y=setInterval(()=>{Z((c)=>(c+1)%I.length)},120);return()=>clearInterval(Y)},[I.length]),lJ.useEffect(()=>{let Y=setInterval(()=>{b(Math.floor((Date.now()-N.current)/1000))},1000);return()=>clearInterval(Y)},[]),om.createElement(GI,{flexDirection:"row",marginTop:1},om.createElement(GI,{flexWrap:"nowrap",height:1,width:2},om.createElement(K,{color:XG().claude},I[G])),om.createElement(K,{color:XG().claude},W.current,"… "),om.createElement(K,{color:XG().secondaryText},"(",l,"s · ",om.createElement(K,{bold:!0},"esc")," to interrupt)"))}function is(){let I=[...i0I,...[...i0I].reverse()],[G,Z]=lJ.useState(0);return lJ.useEffect(()=>{let l=setInterval(()=>{Z((b)=>(b+1)%I.length)},120);return()=>clearInterval(l)},[I.length]),om.createElement(GI,{flexWrap:"nowrap",height:1,width:2},om.createElement(K,{color:XG().claude},I[G]))}import{homedir as Ps}from"os";import{join as wn}from"path";import{existsSync as _s,mkdirSync as E8Z,appendFileSync as A8Z,readFileSync as v8Z,constants as eIN,writeFileSync as IGN,unlinkSync as C8Z,statSync as GGN}from"fs";import{platform as p8Z}from"process";import{accessSync as ZGN}from"fs";var lGN=hI(AU(),1);var CB=wn(Ay,".update.lock"),bGN=300000;function y8Z(){try{if(!_s(Ay))E8Z(Ay,{recursive:!0});if(_s(CB)){let I=GGN(CB);if(Date.now()-I.mtimeMs<bGN)return!1;try{C8Z(CB)}catch(Z){return DG(`Failed to remove stale lock file: ${Z}`),!1}}return IGN(CB,`${process.pid}`,"utf8"),!0}catch(I){return DG(`Failed to acquire lock: ${I}`),!1}}function u8Z(){try{if(_s(CB)){if(v8Z(CB,"utf8")===`${process.pid}`)C8Z(CB)}}catch(I){DG(`Failed to release lock: ${I}`)}}async function y6I(){try{let I=await oW("npm",["-g","config","get","prefix"]);if(I.code!==0)return DG("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let G=I.stdout.trim(),Z=!1;try{ZGN(G,eIN.W_OK),Z=!0}catch{Z=!1}if(Z)return{hasPermissions:!0,npmPrefix:G};return DG("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:G}}catch(I){return DG(`Failed to verify npm global install permissions: ${I}`),{hasPermissions:!1,npmPrefix:null}}}async function L8Z(I){if(!y8Z())throw wG("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:"1.3.1",prefix:I}),Error("Another process is currently setting up npm prefix");try{if(!_s(I))E8Z(I,{recursive:!0});let G=await oW("npm",["-g","config","set","prefix",I]);if(G.code!==0)throw Error(`Failed to set npm prefix: ${G.stderr}`);let Z=`
|
|
1788
1788
|
# npm global path
|
|
1789
1789
|
export PATH="${I}/bin:$PATH"
|
|
1790
1790
|
`;if(p8Z==="win32"){let l=await oW("setx",["PATH",`${process.env.PATH};${I}`]);if(l.code!==0)throw Error(`Failed to update PATH on Windows: ${l.stderr}`)}else{let l=[wn(Ps(),".bashrc"),wn(Ps(),".bash_profile"),wn(Ps(),".zshrc"),wn(Ps(),".config","fish","config.fish")];for(let b of l)if(_s(b))try{if(!v8Z(b,"utf8").includes(I)){if(b.includes("fish")){let N=`
|
|
1791
1791
|
# npm global path
|
|
1792
1792
|
set -gx PATH ${I}/bin $PATH
|
|
1793
|
-
`;A8Z(b,N)}else A8Z(b,Z);wG("npm_prefix_path_updated",{configPath:b})}}catch(W){wG("npm_prefix_path_update_failed",{configPath:b,error:W instanceof Error?W.message.slice(0,200):String(W).slice(0,200)}),DG(`Failed to update shell config ${b}: ${W}`)}}}finally{u8Z()}}function g8Z(){return wn(Ps(),".npm-global")}function a8Z(I){let G=`icacls "${I}" /grant "%USERNAME%:(OI)(CI)F"`,Z=I||"$(npm -g config get prefix)",l=`sudo chown -R $USER:$(id -gn) ${Z} && sudo chmod -R u+w ${Z}`;return p8Z==="win32"?G:l}async function _0I(){let I=new AbortController;setTimeout(()=>I.abort(),5000);let G=await oW("npm",["view","quantwise","version"],I.signal);if(G.code!==0)return null;return G.stdout.trim()}async function Jn(){if(!y8Z())return DG("Another process is currently installing an update"),wG("tengu_auto_updater_lock_contention",{pid:String(process.pid),currentVersion:"1.3.0"}),"in_progress";try{let{hasPermissions:I}=await y6I();if(!I)return"no_permissions";let G=await oW("npm",["install","-g","quantwise"]);if(G.code!==0)return DG(`Failed to install new version of claude: ${G.stdout} ${G.stderr}`),"install_failed";return"success"}finally{u8Z()}}function z8Z({customPrefix:I,onCustomPrefixChange:G,onSuccess:Z,onCancel:l}){let[b,W]=iY.useState(I.length),[N,Y]=iY.useState(!1),[c,V]=iY.useState(!1),[d,m]=iY.useState(null),[X,R]=iY.useState({completeSteps:[!1,!1,!1,!1],inProgressStep:null}),H=rN().columns-6,w=XG();async function A(g){V(!0),m(null);try{R({completeSteps:[!1,!1,!1,!1],inProgressStep:0}),await L8Z(g),R({completeSteps:[!0,!0,!0,!1],inProgressStep:3}),await Jn(),R({completeSteps:[!0,!0,!0,!0],inProgressStep:null}),wG("tengu_auto_updater_config_complete",{finalStatus:"enabled",method:"prefix",success:"true"}),Z()}catch(a){DG(a);let B=a instanceof Error?a.message:"Failed to setup npm prefix";m(B),V(!1),wG("tengu_auto_updater_config_complete",{finalStatus:"not_configured",method:"prefix",success:"false",error:B})}}let y=[{label:"Create new directory for npm global packages",command:`mkdir -p ${I}`},{label:"Configure npm to use new location",command:`npm -g config set prefix ${I}`},{label:"Update shell PATH configuration",command:`export PATH=${I}/bin:$PATH`},{label:`Reinstall ${hN} globally`,command:"npm install -g quantwise"}];return iY.default.createElement(GI,{marginLeft:2,flexDirection:"column"},iY.default.createElement(GI,{flexDirection:"column",gap:1},iY.default.createElement(K,null,"⚠️ Warning: This will modify your global npm configuration and can be dangerous. The following changes will be made:"),y.map((g,a)=>iY.default.createElement(GI,{key:a,flexDirection:"column"},iY.default.createElement(GI,{flexDirection:"row"},iY.default.createElement(K,{color:X.completeSteps[a]?w.success:void 0},c?X.completeSteps[a]?"✓":" ":`${a+1}.`),iY.default.createElement(GI,{width:2},X.inProgressStep===a&&iY.default.createElement(is,null)),iY.default.createElement(K,{color:X.completeSteps[a]?w.success:void 0},g.label)),g.command&&iY.default.createElement(GI,{marginLeft:2},iY.default.createElement(K,{color:w.suggestion,dimColor:!0},"$ ",g.command)))),iY.default.createElement(K,{color:w.suggestion},"Note: You'll need to restart your terminal after this change"),iY.default.createElement(K,{color:w.warning},"Important: Any existing global npm packages may need to be reinstalled")),!c&&iY.default.createElement(GI,{marginTop:1,flexDirection:"column"},iY.default.createElement(K,null,"Enter prefix path:"),iY.default.createElement(GI,{flexDirection:"row",gap:1},iY.default.createElement(K,null,">"),iY.default.createElement(W5,{placeholder:I,value:I,onChange:G,onSubmit:()=>Y(!0),columns:H,cursorOffset:b,onChangeCursorOffset:W})),N&&iY.default.createElement(GI,{marginTop:1,flexDirection:"column"},iY.default.createElement(K,null,"Are you sure you want to continue with prefix: ",I,"?"),iY.default.createElement(jY,{options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}],onChange:(g)=>{if(Y(!1),g==="yes")A(I);else l()}}))),d&&iY.default.createElement(K,{color:w.error},"Error: ",d))}import{platform as WGN}from"process";var ss=hI(YG(),1);function K9(){return ss.createElement(K,{color:XG().permission},"Press ",ss.createElement(K,{bold:!0},"Enter")," to continue…")}function fs({onDone:I,doctorMode:G=!1}){let[Z,l]=GN.useState(null),[b,W]=GN.useState(null),[N,Y]=GN.useState(null),[c,V]=GN.useState(g8Z()),d=XG(),[m,X]=GN.useState(!1),R=[{label:"Manually fix permissions on current npm prefix (Recommended)",value:"manual",description:WGN==="win32"?"Uses icacls to grant write permissions":"Uses sudo to change ownership"},{label:"Create new npm prefix directory",value:"auto",description:"Creates a new directory for global npm packages in your home directory"},{label:"Skip configuration until next session",value:"ignore",description:"Skip this warning (you will be reminded again later)"}],H=GN.useCallback(async()=>{let w=await y6I();if(wG("tengu_auto_updater_permissions_check",{hasPermissions:w.hasPermissions.toString(),npmPrefix:w.npmPrefix??"null"}),l(w.hasPermissions),w.npmPrefix)W(w.npmPrefix);if(w.hasPermissions){let A=fZ();if(YW({...A,autoUpdaterStatus:"enabled"}),!G)I()}},[I,G]);if(GN.useEffect(()=>{wG("tengu_auto_updater_config_start",{}),H()},[H]),zb((w,A)=>{if((m||G&&Z===!0)&&A.return)I()},{isActive:m||G&&Z===!0}),Z===null)return GN.default.createElement(GI,{paddingX:1,paddingTop:1},GN.default.createElement(K,{color:d.secondaryText},"Checking npm permissions…"));if(Z===!0){if(G)return GN.default.createElement(GI,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},GN.default.createElement(K,{color:d.success},"✓ npm permissions: OK"),GN.default.createElement(K,null,"Your installation is healthy and ready for auto-updates."),GN.default.createElement(K9,null));return GN.default.createElement(GI,{paddingX:1,paddingTop:1},GN.default.createElement(K,{color:d.success},"✓ Auto-updates enabled"))}return GN.default.createElement(GI,{borderColor:d.permission,borderStyle:"round",flexDirection:"column",gap:1,paddingX:1,paddingTop:1},GN.default.createElement(K,{bold:!0,color:d.permission},"Enable automatic updates?"),GN.default.createElement(K,null,hN," can't update itself because it doesn't have permissions. Do you want to fix this to get automatic updates?"),GN.default.createElement(GI,{flexDirection:"column"},!N&&GN.default.createElement(GI,{marginLeft:2},GN.default.createElement(K,null,"Select an option below to fix the permissions issue:"),GN.default.createElement(jY,{options:R,onChange:(w)=>{if(w!=="auto"&&w!=="manual"&&w!=="ignore")return;if(Y(w),wG("tengu_auto_updater_config_option_selected",{option:w,npmPrefix:b??"null"}),w==="manual"){let A=fZ();YW({...A,autoUpdaterStatus:"not_configured"}),X(!0)}else if(w==="ignore"){let A=fZ();YW({...A,autoUpdaterStatus:"not_configured"}),I()}}})),N==="auto"&&GN.default.createElement(GI,{marginLeft:2},GN.default.createElement(z8Z,{customPrefix:c,onCustomPrefixChange:V,onSuccess:H,onCancel:I})),N==="manual"&&GN.default.createElement(GN.default.Fragment,null,GN.default.createElement(GI,{marginLeft:4,flexDirection:"column"},GN.default.createElement(K,null,"Run this command in your terminal:"),GN.default.createElement(GI,{flexDirection:"row",gap:1},GN.default.createElement(K,{color:d.warning},a8Z(b??""))),GN.default.createElement(GI,{flexDirection:"row",gap:1},GN.default.createElement(K,{color:d.suggestion},"After running the command, restart ",hN))),GN.default.createElement(K9,null))))}var NGN={name:"doctor",description:"Checks the health of your QuantWise installation",isEnabled:!0,isHidden:!1,userFacingName(){return"doctor"},type:"local-jsx",call(I){let G=B8Z.default.createElement(fs,{onDone:I,doctorMode:!0});return Promise.resolve(G)}},k8Z=NGN;var YGN={type:"local",name:"exit",description:"Exit QuantWise",aliases:["quit"],isEnabled:!0,isHidden:!1,async call(){process.exit(0)},userFacingName(){return"exit"}},U8Z=YGN;var Xl=hI(YG(),1);function x8Z({commands:I,onClose:G}){let Z=XG(),b=process.env.USER_TYPE==="ant"?"[ANT-ONLY] For more help: go/claude-cli or #claude-cli-feedback":"Learn more at: https://github.com/quantumiodb/ccode",W=I.filter((c)=>!c.isHidden),[N,Y]=Xl.useState(0);return Xl.useEffect(()=>{let c=setTimeout(()=>{if(N<3)Y(N+1)},250);return()=>clearTimeout(c)},[N]),zb((c,V)=>{if(V.return)G()}),Xl.createElement(GI,{flexDirection:"column",padding:1},Xl.createElement(K,{bold:!0,color:Z.claude},`${hN} v1.3.0`),Xl.createElement(GI,{marginTop:1,flexDirection:"column"},Xl.createElement(K,null,hN," is a beta research preview. 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.")),N>=1&&Xl.createElement(GI,{flexDirection:"column",marginTop:1},Xl.createElement(K,{bold:!0},"Usage Modes:"),Xl.createElement(K,null,"• REPL: ",Xl.createElement(K,{bold:!0},"claude")," (interactive session)"),Xl.createElement(K,null,"• Non-interactive: ",Xl.createElement(K,{bold:!0},'claude -p "question"')),Xl.createElement(GI,{marginTop:1},Xl.createElement(K,null,"Run ",Xl.createElement(K,{bold:!0},"quantwise -h")," for all command line options"))),N>=2&&Xl.createElement(GI,{marginTop:1,flexDirection:"column"},Xl.createElement(K,{bold:!0},"Common Tasks:"),Xl.createElement(K,null,"• Ask questions about your codebase"," ",Xl.createElement(K,{color:XG().secondaryText},"> How does foo.py work?")),Xl.createElement(K,null,"• Edit files ",Xl.createElement(K,{color:XG().secondaryText},"> Update bar.ts to...")),Xl.createElement(K,null,"• Fix errors ",Xl.createElement(K,{color:XG().secondaryText},"> cargo build")),Xl.createElement(K,null,"• Run commands ",Xl.createElement(K,{color:XG().secondaryText},"> /help")),Xl.createElement(K,null,"• Run bash commands ",Xl.createElement(K,{color:XG().secondaryText},"> !ls"))),N>=3&&Xl.createElement(GI,{marginTop:1,flexDirection:"column"},Xl.createElement(K,{bold:!0},"Interactive Mode Commands:"),Xl.createElement(GI,{flexDirection:"column"},W.map((c,V)=>Xl.createElement(GI,{key:V,marginLeft:1},Xl.createElement(K,{bold:!0},`/${c.name}`),Xl.createElement(K,null," - ",c.description))))),Xl.createElement(GI,{marginTop:1},Xl.createElement(K,{color:Z.secondaryText},b)),Xl.createElement(GI,{marginTop:2},Xl.createElement(K9,null)))}var u6I=hI(YG(),1),cGN={type:"local-jsx",name:"help",description:"Show help and available commands",isEnabled:!0,isHidden:!1,async call(I,{options:{commands:G}}){return u6I.createElement(x8Z,{commands:G,onClose:I})},userFacingName(){return"help"}},O8Z=cGN;var VGN={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(I){return YM(),[{role:"user",content:[{type:"text",text:`Please analyze this codebase and create a CLAUDE.md file containing:
|
|
1793
|
+
`;A8Z(b,N)}else A8Z(b,Z);wG("npm_prefix_path_updated",{configPath:b})}}catch(W){wG("npm_prefix_path_update_failed",{configPath:b,error:W instanceof Error?W.message.slice(0,200):String(W).slice(0,200)}),DG(`Failed to update shell config ${b}: ${W}`)}}}finally{u8Z()}}function g8Z(){return wn(Ps(),".npm-global")}function a8Z(I){let G=`icacls "${I}" /grant "%USERNAME%:(OI)(CI)F"`,Z=I||"$(npm -g config get prefix)",l=`sudo chown -R $USER:$(id -gn) ${Z} && sudo chmod -R u+w ${Z}`;return p8Z==="win32"?G:l}async function _0I(){let I=new AbortController;setTimeout(()=>I.abort(),5000);let G=await oW("npm",["view","quantwise","version"],I.signal);if(G.code!==0)return null;return G.stdout.trim()}async function Jn(){if(!y8Z())return DG("Another process is currently installing an update"),wG("tengu_auto_updater_lock_contention",{pid:String(process.pid),currentVersion:"1.3.1"}),"in_progress";try{let{hasPermissions:I}=await y6I();if(!I)return"no_permissions";let G=await oW("npm",["install","-g","quantwise"]);if(G.code!==0)return DG(`Failed to install new version of claude: ${G.stdout} ${G.stderr}`),"install_failed";return"success"}finally{u8Z()}}function z8Z({customPrefix:I,onCustomPrefixChange:G,onSuccess:Z,onCancel:l}){let[b,W]=iY.useState(I.length),[N,Y]=iY.useState(!1),[c,V]=iY.useState(!1),[d,m]=iY.useState(null),[X,R]=iY.useState({completeSteps:[!1,!1,!1,!1],inProgressStep:null}),H=rN().columns-6,w=XG();async function A(g){V(!0),m(null);try{R({completeSteps:[!1,!1,!1,!1],inProgressStep:0}),await L8Z(g),R({completeSteps:[!0,!0,!0,!1],inProgressStep:3}),await Jn(),R({completeSteps:[!0,!0,!0,!0],inProgressStep:null}),wG("tengu_auto_updater_config_complete",{finalStatus:"enabled",method:"prefix",success:"true"}),Z()}catch(a){DG(a);let B=a instanceof Error?a.message:"Failed to setup npm prefix";m(B),V(!1),wG("tengu_auto_updater_config_complete",{finalStatus:"not_configured",method:"prefix",success:"false",error:B})}}let y=[{label:"Create new directory for npm global packages",command:`mkdir -p ${I}`},{label:"Configure npm to use new location",command:`npm -g config set prefix ${I}`},{label:"Update shell PATH configuration",command:`export PATH=${I}/bin:$PATH`},{label:`Reinstall ${hN} globally`,command:"npm install -g quantwise"}];return iY.default.createElement(GI,{marginLeft:2,flexDirection:"column"},iY.default.createElement(GI,{flexDirection:"column",gap:1},iY.default.createElement(K,null,"⚠️ Warning: This will modify your global npm configuration and can be dangerous. The following changes will be made:"),y.map((g,a)=>iY.default.createElement(GI,{key:a,flexDirection:"column"},iY.default.createElement(GI,{flexDirection:"row"},iY.default.createElement(K,{color:X.completeSteps[a]?w.success:void 0},c?X.completeSteps[a]?"✓":" ":`${a+1}.`),iY.default.createElement(GI,{width:2},X.inProgressStep===a&&iY.default.createElement(is,null)),iY.default.createElement(K,{color:X.completeSteps[a]?w.success:void 0},g.label)),g.command&&iY.default.createElement(GI,{marginLeft:2},iY.default.createElement(K,{color:w.suggestion,dimColor:!0},"$ ",g.command)))),iY.default.createElement(K,{color:w.suggestion},"Note: You'll need to restart your terminal after this change"),iY.default.createElement(K,{color:w.warning},"Important: Any existing global npm packages may need to be reinstalled")),!c&&iY.default.createElement(GI,{marginTop:1,flexDirection:"column"},iY.default.createElement(K,null,"Enter prefix path:"),iY.default.createElement(GI,{flexDirection:"row",gap:1},iY.default.createElement(K,null,">"),iY.default.createElement(W5,{placeholder:I,value:I,onChange:G,onSubmit:()=>Y(!0),columns:H,cursorOffset:b,onChangeCursorOffset:W})),N&&iY.default.createElement(GI,{marginTop:1,flexDirection:"column"},iY.default.createElement(K,null,"Are you sure you want to continue with prefix: ",I,"?"),iY.default.createElement(jY,{options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}],onChange:(g)=>{if(Y(!1),g==="yes")A(I);else l()}}))),d&&iY.default.createElement(K,{color:w.error},"Error: ",d))}import{platform as WGN}from"process";var ss=hI(YG(),1);function K9(){return ss.createElement(K,{color:XG().permission},"Press ",ss.createElement(K,{bold:!0},"Enter")," to continue…")}function fs({onDone:I,doctorMode:G=!1}){let[Z,l]=GN.useState(null),[b,W]=GN.useState(null),[N,Y]=GN.useState(null),[c,V]=GN.useState(g8Z()),d=XG(),[m,X]=GN.useState(!1),R=[{label:"Manually fix permissions on current npm prefix (Recommended)",value:"manual",description:WGN==="win32"?"Uses icacls to grant write permissions":"Uses sudo to change ownership"},{label:"Create new npm prefix directory",value:"auto",description:"Creates a new directory for global npm packages in your home directory"},{label:"Skip configuration until next session",value:"ignore",description:"Skip this warning (you will be reminded again later)"}],H=GN.useCallback(async()=>{let w=await y6I();if(wG("tengu_auto_updater_permissions_check",{hasPermissions:w.hasPermissions.toString(),npmPrefix:w.npmPrefix??"null"}),l(w.hasPermissions),w.npmPrefix)W(w.npmPrefix);if(w.hasPermissions){let A=fZ();if(YW({...A,autoUpdaterStatus:"enabled"}),!G)I()}},[I,G]);if(GN.useEffect(()=>{wG("tengu_auto_updater_config_start",{}),H()},[H]),zb((w,A)=>{if((m||G&&Z===!0)&&A.return)I()},{isActive:m||G&&Z===!0}),Z===null)return GN.default.createElement(GI,{paddingX:1,paddingTop:1},GN.default.createElement(K,{color:d.secondaryText},"Checking npm permissions…"));if(Z===!0){if(G)return GN.default.createElement(GI,{flexDirection:"column",gap:1,paddingX:1,paddingTop:1},GN.default.createElement(K,{color:d.success},"✓ npm permissions: OK"),GN.default.createElement(K,null,"Your installation is healthy and ready for auto-updates."),GN.default.createElement(K9,null));return GN.default.createElement(GI,{paddingX:1,paddingTop:1},GN.default.createElement(K,{color:d.success},"✓ Auto-updates enabled"))}return GN.default.createElement(GI,{borderColor:d.permission,borderStyle:"round",flexDirection:"column",gap:1,paddingX:1,paddingTop:1},GN.default.createElement(K,{bold:!0,color:d.permission},"Enable automatic updates?"),GN.default.createElement(K,null,hN," can't update itself because it doesn't have permissions. Do you want to fix this to get automatic updates?"),GN.default.createElement(GI,{flexDirection:"column"},!N&&GN.default.createElement(GI,{marginLeft:2},GN.default.createElement(K,null,"Select an option below to fix the permissions issue:"),GN.default.createElement(jY,{options:R,onChange:(w)=>{if(w!=="auto"&&w!=="manual"&&w!=="ignore")return;if(Y(w),wG("tengu_auto_updater_config_option_selected",{option:w,npmPrefix:b??"null"}),w==="manual"){let A=fZ();YW({...A,autoUpdaterStatus:"not_configured"}),X(!0)}else if(w==="ignore"){let A=fZ();YW({...A,autoUpdaterStatus:"not_configured"}),I()}}})),N==="auto"&&GN.default.createElement(GI,{marginLeft:2},GN.default.createElement(z8Z,{customPrefix:c,onCustomPrefixChange:V,onSuccess:H,onCancel:I})),N==="manual"&&GN.default.createElement(GN.default.Fragment,null,GN.default.createElement(GI,{marginLeft:4,flexDirection:"column"},GN.default.createElement(K,null,"Run this command in your terminal:"),GN.default.createElement(GI,{flexDirection:"row",gap:1},GN.default.createElement(K,{color:d.warning},a8Z(b??""))),GN.default.createElement(GI,{flexDirection:"row",gap:1},GN.default.createElement(K,{color:d.suggestion},"After running the command, restart ",hN))),GN.default.createElement(K9,null))))}var NGN={name:"doctor",description:"Checks the health of your QuantWise installation",isEnabled:!0,isHidden:!1,userFacingName(){return"doctor"},type:"local-jsx",call(I){let G=B8Z.default.createElement(fs,{onDone:I,doctorMode:!0});return Promise.resolve(G)}},k8Z=NGN;var YGN={type:"local",name:"exit",description:"Exit QuantWise",aliases:["quit"],isEnabled:!0,isHidden:!1,async call(){process.exit(0)},userFacingName(){return"exit"}},U8Z=YGN;var Xl=hI(YG(),1);function x8Z({commands:I,onClose:G}){let Z=XG(),b=process.env.USER_TYPE==="ant"?"[ANT-ONLY] For more help: go/claude-cli or #claude-cli-feedback":"Learn more at: https://github.com/quantumiodb/ccode",W=I.filter((c)=>!c.isHidden),[N,Y]=Xl.useState(0);return Xl.useEffect(()=>{let c=setTimeout(()=>{if(N<3)Y(N+1)},250);return()=>clearTimeout(c)},[N]),zb((c,V)=>{if(V.return)G()}),Xl.createElement(GI,{flexDirection:"column",padding:1},Xl.createElement(K,{bold:!0,color:Z.claude},`${hN} v1.3.1`),Xl.createElement(GI,{marginTop:1,flexDirection:"column"},Xl.createElement(K,null,hN," is a beta research preview. 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.")),N>=1&&Xl.createElement(GI,{flexDirection:"column",marginTop:1},Xl.createElement(K,{bold:!0},"Usage Modes:"),Xl.createElement(K,null,"• REPL: ",Xl.createElement(K,{bold:!0},"claude")," (interactive session)"),Xl.createElement(K,null,"• Non-interactive: ",Xl.createElement(K,{bold:!0},'claude -p "question"')),Xl.createElement(GI,{marginTop:1},Xl.createElement(K,null,"Run ",Xl.createElement(K,{bold:!0},"quantwise -h")," for all command line options"))),N>=2&&Xl.createElement(GI,{marginTop:1,flexDirection:"column"},Xl.createElement(K,{bold:!0},"Common Tasks:"),Xl.createElement(K,null,"• Ask questions about your codebase"," ",Xl.createElement(K,{color:XG().secondaryText},"> How does foo.py work?")),Xl.createElement(K,null,"• Edit files ",Xl.createElement(K,{color:XG().secondaryText},"> Update bar.ts to...")),Xl.createElement(K,null,"• Fix errors ",Xl.createElement(K,{color:XG().secondaryText},"> cargo build")),Xl.createElement(K,null,"• Run commands ",Xl.createElement(K,{color:XG().secondaryText},"> /help")),Xl.createElement(K,null,"• Run bash commands ",Xl.createElement(K,{color:XG().secondaryText},"> !ls"))),N>=3&&Xl.createElement(GI,{marginTop:1,flexDirection:"column"},Xl.createElement(K,{bold:!0},"Interactive Mode Commands:"),Xl.createElement(GI,{flexDirection:"column"},W.map((c,V)=>Xl.createElement(GI,{key:V,marginLeft:1},Xl.createElement(K,{bold:!0},`/${c.name}`),Xl.createElement(K,null," - ",c.description))))),Xl.createElement(GI,{marginTop:1},Xl.createElement(K,{color:Z.secondaryText},b)),Xl.createElement(GI,{marginTop:2},Xl.createElement(K9,null)))}var u6I=hI(YG(),1),cGN={type:"local-jsx",name:"help",description:"Show help and available commands",isEnabled:!0,isHidden:!1,async call(I,{options:{commands:G}}){return u6I.createElement(x8Z,{commands:G,onClose:I})},userFacingName(){return"help"}},O8Z=cGN;var VGN={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(I){return YM(),[{role:"user",content:[{type:"text",text:`Please analyze this codebase and create a CLAUDE.md file containing:
|
|
1794
1794
|
1. Build/lint/test commands - especially for running a single test
|
|
1795
1795
|
2. Code style guidelines including imports, formatting, types, naming conventions, error handling, etc.
|
|
1796
1796
|
|
|
@@ -1812,7 +1812,7 @@ menu "Edit" to tell ¬
|
|
|
1812
1812
|
menu item "Start Dictation" to ¬
|
|
1813
1813
|
if exists then click it`],G.signal);if(b!==0)return DG(`Failed to start dictation: ${l}`),"Failed to start dictation";return"Dictation started. Press esc to stop."}},L6I=mGN;var IX=hI(YG(),1);var Lb=hI(YG(),1);import*as Gf from"crypto";import*as A7Z from"http";import*as E7Z from"url";import DGN from"node:http";import nGN from"node:https";import Cn from"node:zlib";import h7Z,{PassThrough as w7Z,pipeline as pn}from"node:stream";import{Buffer as ZmI}from"node:buffer";function QGN(I){if(!/^data:/i.test(I))throw TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');I=I.replace(/\r?\n/g,"");let G=I.indexOf(",");if(G===-1||G<=4)throw TypeError("malformed data: URI");let Z=I.substring(5,G).split(";"),l="",b=!1,W=Z[0]||"text/plain",N=W;for(let d=1;d<Z.length;d++)if(Z[d]==="base64")b=!0;else if(Z[d]){if(N+=`;${Z[d]}`,Z[d].indexOf("charset=")===0)l=Z[d].substring(8)}if(!Z[0]&&!l.length)N+=";charset=US-ASCII",l="US-ASCII";let Y=b?"base64":"ascii",c=unescape(I.substring(G+1)),V=Buffer.from(c,Y);return V.type=W,V.typeFull=N,V.charset=l,V}var K8Z=QGN;$s();f0I();import j9,{PassThrough as l7Z}from"node:stream";import{types as b7Z,deprecate as x6I,promisify as aGN}from"node:util";import{Buffer as Kh}from"node:buffer";class D9 extends Error{constructor(I,G){super(I);Error.captureStackTrace(this,this.constructor),this.type=G}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}}class kR extends D9{constructor(I,G,Z){super(I,G);if(Z)this.code=this.errno=Z.code,this.erroredSysCall=Z.syscall}}var $0I=Symbol.toStringTag,B6I=(I)=>{return typeof I==="object"&&typeof I.append==="function"&&typeof I.delete==="function"&&typeof I.get==="function"&&typeof I.getAll==="function"&&typeof I.has==="function"&&typeof I.set==="function"&&typeof I.sort==="function"&&I[$0I]==="URLSearchParams"},ts=(I)=>{return I&&typeof I==="object"&&typeof I.arrayBuffer==="function"&&typeof I.type==="string"&&typeof I.stream==="function"&&typeof I.constructor==="function"&&/^(Blob|File)$/.test(I[$0I])},_8Z=(I)=>{return typeof I==="object"&&(I[$0I]==="AbortSignal"||I[$0I]==="EventTarget")},s8Z=(I,G)=>{let Z=new URL(G).hostname,l=new URL(I).hostname;return Z===l||Z.endsWith(`.${l}`)},f8Z=(I,G)=>{let Z=new URL(G).protocol,l=new URL(I).protocol;return Z===l};var zGN=aGN(j9.pipeline),p1=Symbol("Body internals");class _C{constructor(I,{size:G=0}={}){let Z=null;if(I===null)I=null;else if(B6I(I))I=Kh.from(I.toString());else if(ts(I));else if(Kh.isBuffer(I));else if(b7Z.isAnyArrayBuffer(I))I=Kh.from(I);else if(ArrayBuffer.isView(I))I=Kh.from(I.buffer,I.byteOffset,I.byteLength);else if(I instanceof j9);else if(I instanceof yB)I=P8Z(I),Z=I.type.split("=")[1];else I=Kh.from(String(I));let l=I;if(Kh.isBuffer(I))l=j9.Readable.from(I);else if(ts(I))l=j9.Readable.from(I.stream());if(this[p1]={body:I,stream:l,boundary:Z,disturbed:!1,error:null},this.size=G,I instanceof j9)I.on("error",(b)=>{let W=b instanceof D9?b:new kR(`Invalid response body while trying to fetch ${this.url}: ${b.message}`,"system",b);this[p1].error=W})}get body(){return this[p1].stream}get bodyUsed(){return this[p1].disturbed}async arrayBuffer(){let{buffer:I,byteOffset:G,byteLength:Z}=await U6I(this);return I.slice(G,G+Z)}async formData(){let I=this.headers.get("content-type");if(I.startsWith("application/x-www-form-urlencoded")){let Z=new yB,l=new URLSearchParams(await this.text());for(let[b,W]of l)Z.append(b,W);return Z}let{toFormData:G}=await Promise.resolve().then(() => (Z7Z(),G7Z));return G(this.body,I)}async blob(){let I=this.headers&&this.headers.get("content-type")||this[p1].body&&this[p1].body.type||"",G=await this.arrayBuffer();return new PC([G],{type:I})}async json(){let I=await this.text();return JSON.parse(I)}async text(){let I=await U6I(this);return new TextDecoder().decode(I)}buffer(){return U6I(this)}}_C.prototype.buffer=x6I(_C.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(_C.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:x6I(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function U6I(I){if(I[p1].disturbed)throw TypeError(`body used already for: ${I.url}`);if(I[p1].disturbed=!0,I[p1].error)throw I[p1].error;let{body:G}=I;if(G===null)return Kh.alloc(0);if(!(G instanceof j9))return Kh.alloc(0);let Z=[],l=0;try{for await(let b of G){if(I.size>0&&l+b.length>I.size){let W=new kR(`content size at ${I.url} over limit: ${I.size}`,"max-size");throw G.destroy(W),W}l+=b.length,Z.push(b)}}catch(b){throw b instanceof D9?b:new kR(`Invalid response body while trying to fetch ${I.url}: ${b.message}`,"system",b)}if(G.readableEnded===!0||G._readableState.ended===!0)try{if(Z.every((b)=>typeof b==="string"))return Kh.from(Z.join(""));return Kh.concat(Z,l)}catch(b){throw new kR(`Could not create Buffer from response body for ${I.url}: ${b.message}`,"system",b)}else throw new kR(`Premature close of server response while trying to fetch ${I.url}`)}var En=(I,G)=>{let Z,l,{body:b}=I[p1];if(I.bodyUsed)throw Error("cannot clone body after it is used");if(b instanceof j9&&typeof b.getBoundary!=="function")Z=new l7Z({highWaterMark:G}),l=new l7Z({highWaterMark:G}),b.pipe(Z),b.pipe(l),I[p1].stream=Z,b=l;return b},BGN=x6I((I)=>I.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),r0I=(I,G)=>{if(I===null)return null;if(typeof I==="string")return"text/plain;charset=UTF-8";if(B6I(I))return"application/x-www-form-urlencoded;charset=UTF-8";if(ts(I))return I.type||null;if(Kh.isBuffer(I)||b7Z.isAnyArrayBuffer(I)||ArrayBuffer.isView(I))return null;if(I instanceof yB)return`multipart/form-data; boundary=${G[p1].boundary}`;if(I&&typeof I.getBoundary==="function")return`multipart/form-data;boundary=${BGN(I)}`;if(I instanceof j9)return null;return"text/plain;charset=UTF-8"},W7Z=(I)=>{let{body:G}=I[p1];if(G===null)return 0;if(ts(G))return G.size;if(Kh.isBuffer(G))return G.length;if(G&&typeof G.getLengthSync==="function")return G.hasKnownLength&&G.hasKnownLength()?G.getLengthSync():null;return null},N7Z=async(I,{body:G})=>{if(G===null)I.end();else await zGN(G,I)};import{types as Y7Z}from"node:util";import ImI from"node:http";var e0I=typeof ImI.validateHeaderName==="function"?ImI.validateHeaderName:(I)=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(I)){let G=TypeError(`Header name must be a valid HTTP token [${I}]`);throw Object.defineProperty(G,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),G}},O6I=typeof ImI.validateHeaderValue==="function"?ImI.validateHeaderValue:(I,G)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(G)){let Z=TypeError(`Invalid character in header content ["${I}"]`);throw Object.defineProperty(Z,"code",{value:"ERR_INVALID_CHAR"}),Z}};class UR extends URLSearchParams{constructor(I){let G=[];if(I instanceof UR){let Z=I.raw();for(let[l,b]of Object.entries(Z))G.push(...b.map((W)=>[l,W]))}else if(I==null);else if(typeof I==="object"&&!Y7Z.isBoxedPrimitive(I)){let Z=I[Symbol.iterator];if(Z==null)G.push(...Object.entries(I));else{if(typeof Z!=="function")throw TypeError("Header pairs must be iterable");G=[...I].map((l)=>{if(typeof l!=="object"||Y7Z.isBoxedPrimitive(l))throw TypeError("Each header pair must be an iterable object");return[...l]}).map((l)=>{if(l.length!==2)throw TypeError("Each header pair must be a name/value tuple");return[...l]})}}else throw TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");G=G.length>0?G.map(([Z,l])=>{return e0I(Z),O6I(Z,String(l)),[String(Z).toLowerCase(),String(l)]}):void 0;super(G);return new Proxy(this,{get(Z,l,b){switch(l){case"append":case"set":return(W,N)=>{return e0I(W),O6I(W,String(N)),URLSearchParams.prototype[l].call(Z,String(W).toLowerCase(),String(N))};case"delete":case"has":case"getAll":return(W)=>{return e0I(W),URLSearchParams.prototype[l].call(Z,String(W).toLowerCase())};case"keys":return()=>{return Z.sort(),new Set(URLSearchParams.prototype.keys.call(Z)).keys()};default:return Reflect.get(Z,l,b)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(I){let G=this.getAll(I);if(G.length===0)return null;let Z=G.join(", ");if(/^content-encoding$/i.test(I))Z=Z.toLowerCase();return Z}forEach(I,G=void 0){for(let Z of this.keys())Reflect.apply(I,G,[this.get(Z),Z,this])}*values(){for(let I of this.keys())yield this.get(I)}*entries(){for(let I of this.keys())yield[I,this.get(I)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((I,G)=>{return I[G]=this.getAll(G),I},{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((I,G)=>{let Z=this.getAll(G);if(G==="host")I[G]=Z[0];else I[G]=Z.length>1?Z:Z[0];return I},{})}}Object.defineProperties(UR.prototype,["get","entries","forEach","values"].reduce((I,G)=>{return I[G]={enumerable:!0},I},{}));function c7Z(I=[]){return new UR(I.reduce((G,Z,l,b)=>{if(l%2===0)G.push(b.slice(l,l+2));return G},[]).filter(([G,Z])=>{try{return e0I(G),O6I(G,String(Z)),!0}catch{return!1}}))}var kGN=new Set([301,302,303,307,308]),GmI=(I)=>{return kGN.has(I)};var bJ=Symbol("Response internals");class QF extends _C{constructor(I=null,G={}){super(I,G);let Z=G.status!=null?G.status:200,l=new UR(G.headers);if(I!==null&&!l.has("Content-Type")){let b=r0I(I,this);if(b)l.append("Content-Type",b)}this[bJ]={type:"default",url:G.url,status:Z,statusText:G.statusText||"",headers:l,counter:G.counter,highWaterMark:G.highWaterMark}}get type(){return this[bJ].type}get url(){return this[bJ].url||""}get status(){return this[bJ].status}get ok(){return this[bJ].status>=200&&this[bJ].status<300}get redirected(){return this[bJ].counter>0}get statusText(){return this[bJ].statusText}get headers(){return this[bJ].headers}get highWaterMark(){return this[bJ].highWaterMark}clone(){return new QF(En(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(I,G=302){if(!GmI(G))throw RangeError('Failed to execute "redirect" on "response": Invalid status code');return new QF(null,{headers:{location:new URL(I).toString()},status:G})}static error(){let I=new QF(null,{status:0,statusText:""});return I[bJ].type="error",I}static json(I=void 0,G={}){let Z=JSON.stringify(I);if(Z===void 0)throw TypeError("data is not JSON serializable");let l=new UR(G&&G.headers);if(!l.has("content-type"))l.set("content-type","application/json");return new QF(Z,{...G,headers:l})}get[Symbol.toStringTag](){return"Response"}}Object.defineProperties(QF.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});import{format as OGN}from"node:url";import{deprecate as MGN}from"node:util";var V7Z=(I)=>{if(I.search)return I.search;let G=I.href.length-1,Z=I.hash||(I.href[G]==="#"?"#":"");return I.href[G-Z.length]==="?"?"?":""};import{isIP as UGN}from"node:net";function d7Z(I,G=!1){if(I==null)return"no-referrer";if(I=new URL(I),/^(about|blob|data):$/.test(I.protocol))return"no-referrer";if(I.username="",I.password="",I.hash="",G)I.pathname="",I.search="";return I}var m7Z=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),Q7Z="strict-origin-when-cross-origin";function X7Z(I){if(!m7Z.has(I))throw TypeError(`Invalid referrerPolicy: ${I}`);return I}function xGN(I){if(/^(http|ws)s:$/.test(I.protocol))return!0;let G=I.host.replace(/(^\[)|(]$)/g,""),Z=UGN(G);if(Z===4&&/^127\./.test(G))return!0;if(Z===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(G))return!0;if(I.host==="localhost"||I.host.endsWith(".localhost"))return!1;if(I.protocol==="file:")return!0;return!1}function vn(I){if(/^about:(blank|srcdoc)$/.test(I))return!0;if(I.protocol==="data:")return!0;if(/^(blob|filesystem):$/.test(I.protocol))return!0;return xGN(I)}function F7Z(I,{referrerURLCallback:G,referrerOriginCallback:Z}={}){if(I.referrer==="no-referrer"||I.referrerPolicy==="")return null;let l=I.referrerPolicy;if(I.referrer==="about:client")return"no-referrer";let b=I.referrer,W=d7Z(b),N=d7Z(b,!0);if(W.toString().length>4096)W=N;if(G)W=G(W);if(Z)N=Z(N);let Y=new URL(I.url);switch(l){case"no-referrer":return"no-referrer";case"origin":return N;case"unsafe-url":return W;case"strict-origin":if(vn(W)&&!vn(Y))return"no-referrer";return N.toString();case"strict-origin-when-cross-origin":if(W.origin===Y.origin)return W;if(vn(W)&&!vn(Y))return"no-referrer";return N;case"same-origin":if(W.origin===Y.origin)return W;return"no-referrer";case"origin-when-cross-origin":if(W.origin===Y.origin)return W;return N;case"no-referrer-when-downgrade":if(vn(W)&&!vn(Y))return"no-referrer";return W;default:throw TypeError(`Invalid referrerPolicy: ${l}`)}}function R7Z(I){let G=(I.get("referrer-policy")||"").split(/[,\s]+/),Z="";for(let l of G)if(l&&m7Z.has(l))Z=l;return Z}var $0=Symbol("Request internals"),es=(I)=>{return typeof I==="object"&&typeof I[$0]==="object"},KGN=MGN(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)");class LB extends _C{constructor(I,G={}){let Z;if(es(I))Z=new URL(I.url);else Z=new URL(I),I={};if(Z.username!==""||Z.password!=="")throw TypeError(`${Z} is an url with embedded credentials.`);let l=G.method||I.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(l))l=l.toUpperCase();if(!es(G)&&"data"in G)KGN();if((G.body!=null||es(I)&&I.body!==null)&&(l==="GET"||l==="HEAD"))throw TypeError("Request with GET/HEAD method cannot have body");let b=G.body?G.body:es(I)&&I.body!==null?En(I):null;super(b,{size:G.size||I.size||0});let W=new UR(G.headers||I.headers||{});if(b!==null&&!W.has("Content-Type")){let c=r0I(b,this);if(c)W.set("Content-Type",c)}let N=es(I)?I.signal:null;if("signal"in G)N=G.signal;if(N!=null&&!_8Z(N))throw TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let Y=G.referrer==null?I.referrer:G.referrer;if(Y==="")Y="no-referrer";else if(Y){let c=new URL(Y);Y=/^about:(\/\/)?client$/.test(c)?"client":c}else Y=void 0;this[$0]={method:l,redirect:G.redirect||I.redirect||"follow",headers:W,parsedURL:Z,signal:N,referrer:Y},this.follow=G.follow===void 0?I.follow===void 0?20:I.follow:G.follow,this.compress=G.compress===void 0?I.compress===void 0?!0:I.compress:G.compress,this.counter=G.counter||I.counter||0,this.agent=G.agent||I.agent,this.highWaterMark=G.highWaterMark||I.highWaterMark||16384,this.insecureHTTPParser=G.insecureHTTPParser||I.insecureHTTPParser||!1,this.referrerPolicy=G.referrerPolicy||I.referrerPolicy||""}get method(){return this[$0].method}get url(){return OGN(this[$0].parsedURL)}get headers(){return this[$0].headers}get redirect(){return this[$0].redirect}get signal(){return this[$0].signal}get referrer(){if(this[$0].referrer==="no-referrer")return"";if(this[$0].referrer==="client")return"about:client";if(this[$0].referrer)return this[$0].referrer.toString();return}get referrerPolicy(){return this[$0].referrerPolicy}set referrerPolicy(I){this[$0].referrerPolicy=X7Z(I)}clone(){return new LB(this)}get[Symbol.toStringTag](){return"Request"}}Object.defineProperties(LB.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var H7Z=(I)=>{let{parsedURL:G}=I[$0],Z=new UR(I[$0].headers);if(!Z.has("Accept"))Z.set("Accept","*/*");let l=null;if(I.body===null&&/^(post|put)$/i.test(I.method))l="0";if(I.body!==null){let Y=W7Z(I);if(typeof Y==="number"&&!Number.isNaN(Y))l=String(Y)}if(l)Z.set("Content-Length",l);if(I.referrerPolicy==="")I.referrerPolicy=Q7Z;if(I.referrer&&I.referrer!=="no-referrer")I[$0].referrer=F7Z(I);else I[$0].referrer="no-referrer";if(I[$0].referrer instanceof URL)Z.set("Referer",I.referrer);if(!Z.has("User-Agent"))Z.set("User-Agent","node-fetch");if(I.compress&&!Z.has("Accept-Encoding"))Z.set("Accept-Encoding","gzip, deflate, br");let{agent:b}=I;if(typeof b==="function")b=b(G);let W=V7Z(G),N={path:G.pathname+W,method:I.method,headers:Z[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:I.insecureHTTPParser,agent:b};return{parsedURL:G,options:N}};class M6I extends D9{constructor(I,G="aborted"){super(I,G)}}f0I();k6I();var jGN=new Set(["data:","http:","https:"]);async function If(I,G){return new Promise((Z,l)=>{let b=new LB(I,G),{parsedURL:W,options:N}=H7Z(b);if(!jGN.has(W.protocol))throw TypeError(`node-fetch cannot load ${I}. URL scheme "${W.protocol.replace(/:$/,"")}" is not supported.`);if(W.protocol==="data:"){let H=K8Z(b.url),w=new QF(H,{headers:{"Content-Type":H.typeFull}});Z(w);return}let Y=(W.protocol==="https:"?nGN:DGN).request,{signal:c}=b,V=null,d=()=>{let H=new M6I("The operation was aborted.");if(l(H),b.body&&b.body instanceof h7Z.Readable)b.body.destroy(H);if(!V||!V.body)return;V.body.emit("error",H)};if(c&&c.aborted){d();return}let m=()=>{d(),R()},X=Y(W.toString(),N);if(c)c.addEventListener("abort",m);let R=()=>{if(X.abort(),c)c.removeEventListener("abort",m)};if(X.on("error",(H)=>{l(new kR(`request to ${b.url} failed, reason: ${H.message}`,"system",H)),R()}),qGN(X,(H)=>{if(V&&V.body)V.body.destroy(H)}),process.version<"v14")X.on("socket",(H)=>{let w;H.prependListener("end",()=>{w=H._eventsCount}),H.prependListener("close",(A)=>{if(V&&w<H._eventsCount&&!A){let y=Error("Premature close");y.code="ERR_STREAM_PREMATURE_CLOSE",V.body.emit("error",y)}})});X.on("response",(H)=>{X.setTimeout(0);let w=c7Z(H.rawHeaders);if(GmI(H.statusCode)){let B=w.get("Location"),U=null;try{U=B===null?null:new URL(B,b.url)}catch{if(b.redirect!=="manual"){l(new kR(`uri requested responds with an invalid redirect URL: ${B}`,"invalid-redirect")),R();return}}switch(b.redirect){case"error":l(new kR(`uri requested responds with a redirect, redirect mode is set to error: ${b.url}`,"no-redirect")),R();return;case"manual":break;case"follow":{if(U===null)break;if(b.counter>=b.follow){l(new kR(`maximum redirect reached at: ${b.url}`,"max-redirect")),R();return}let q={headers:new UR(b.headers),follow:b.follow,counter:b.counter+1,agent:b.agent,compress:b.compress,method:b.method,body:En(b),signal:b.signal,size:b.size,referrer:b.referrer,referrerPolicy:b.referrerPolicy};if(!s8Z(b.url,U)||!f8Z(b.url,U))for(let lI of["authorization","www-authenticate","cookie","cookie2"])q.headers.delete(lI);if(H.statusCode!==303&&b.body&&G.body instanceof h7Z.Readable){l(new kR("Cannot follow redirect with body being a readable stream","unsupported-redirect")),R();return}if(H.statusCode===303||(H.statusCode===301||H.statusCode===302)&&b.method==="POST")q.method="GET",q.body=void 0,q.headers.delete("content-length");let $=R7Z(w);if($)q.referrerPolicy=$;Z(If(new LB(U,q))),R();return}default:return l(TypeError(`Redirect option '${b.redirect}' is not a valid value of RequestRedirect`))}}if(c)H.once("end",()=>{c.removeEventListener("abort",m)});let A=pn(H,new w7Z,(B)=>{if(B)l(B)});if(process.version<"v12.10")H.on("aborted",m);let y={url:b.url,status:H.statusCode,statusText:H.statusMessage,headers:w,size:b.size,counter:b.counter,highWaterMark:b.highWaterMark},g=w.get("Content-Encoding");if(!b.compress||b.method==="HEAD"||g===null||H.statusCode===204||H.statusCode===304){V=new QF(A,y),Z(V);return}let a={flush:Cn.Z_SYNC_FLUSH,finishFlush:Cn.Z_SYNC_FLUSH};if(g==="gzip"||g==="x-gzip"){A=pn(A,Cn.createGunzip(a),(B)=>{if(B)l(B)}),V=new QF(A,y),Z(V);return}if(g==="deflate"||g==="x-deflate"){let B=pn(H,new w7Z,(U)=>{if(U)l(U)});B.once("data",(U)=>{if((U[0]&15)===8)A=pn(A,Cn.createInflate(),(q)=>{if(q)l(q)});else A=pn(A,Cn.createInflateRaw(),(q)=>{if(q)l(q)});V=new QF(A,y),Z(V)}),B.once("end",()=>{if(!V)V=new QF(A,y),Z(V)});return}if(g==="br"){A=pn(A,Cn.createBrotliDecompress(),(B)=>{if(B)l(B)}),V=new QF(A,y),Z(V);return}V=new QF(A,y),Z(V)}),N7Z(X,b).catch(l)})}function qGN(I,G){let Z=ZmI.from(`0\r
|
|
1814
1814
|
\r
|
|
1815
|
-
`),l=!1,b=!1,W;I.on("response",(N)=>{let{headers:Y}=N;l=Y["transfer-encoding"]==="chunked"&&!Y["content-length"]}),I.on("socket",(N)=>{let Y=()=>{if(l&&!b){let V=Error("Premature close");V.code="ERR_STREAM_PREMATURE_CLOSE",G(V)}},c=(V)=>{if(b=ZmI.compare(V.slice(-5),Z)===0,!b&&W)b=ZmI.compare(W.slice(-3),Z.slice(0,3))===0&&ZmI.compare(V.slice(-2),Z.slice(3))===0;W=V};N.prependListener("close",Y),N.on("data",c),I.on("close",()=>{N.removeListener("close",Y),N.removeListener("data",c)})})}var J7Z={REDIRECT_PORT:54545,MANUAL_REDIRECT_URL:"/oauth/code/callback",SCOPES:["org:create_api_key","user:profile"]},TGN={...J7Z,AUTHORIZE_URL:"https://console.anthropic.com/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",SUCCESS_URL:"https://console.anthropic.com/buy_credits?returnUrl=/oauth/code/success",CLIENT_ID:"9d1c250a-e61b-44d9-88ed-5944d1962f5e"},SGN=process.env.USER_TYPE==="ant"&&process.env.USE_STAGING_OAUTH==="1"?{...J7Z,AUTHORIZE_URL:"https://console.staging.ant.dev/oauth/authorize",TOKEN_URL:"https://console.staging.ant.dev/v1/oauth/token",API_KEY_URL:"https://api-staging.anthropic.com/api/oauth/claude_cli/create_api_key",SUCCESS_URL:"https://console.staging.ant.dev/buy_credits?returnUrl=/oauth/code/success",CLIENT_ID:"22422756-60c9-4084-8eb7-27705fd5cf9a"}:void 0;var y1=process.env.USER_TYPE==="ant"&&process.env.USE_STAGING_OAUTH==="1"&&SGN||TGN;function K6I(I){return I.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function iGN(){return K6I(Gf.randomBytes(32))}async function PGN(I){let Z=new TextEncoder().encode(I),l=await Gf.subtle.digest("SHA-256",Z);return K6I(Buffer.from(l))}class D6I{server=null;codeVerifier;expectedState=null;pendingCodePromise=null;constructor(){this.codeVerifier=iGN()}generateAuthUrls(I,G){function Z(l){let b=new URL(y1.AUTHORIZE_URL);return b.searchParams.append("client_id",y1.CLIENT_ID),b.searchParams.append("response_type","code"),b.searchParams.append("redirect_uri",l?y1.MANUAL_REDIRECT_URL:`http://localhost:${y1.REDIRECT_PORT}/callback`),b.searchParams.append("scope",y1.SCOPES.join(" ")),b.searchParams.append("code_challenge",I),b.searchParams.append("code_challenge_method","S256"),b.searchParams.append("state",G),b.toString()}return{autoUrl:Z(!1),manualUrl:Z(!0)}}async startOAuthFlow(I){let G=await PGN(this.codeVerifier),Z=K6I(Gf.randomBytes(32));this.expectedState=Z;let{autoUrl:l,manualUrl:b}=this.generateAuthUrls(G,Z),W=async()=>{await I(b),await w9(l)},{authorizationCode:N,useManualRedirect:Y}=await new Promise((m,X)=>{this.pendingCodePromise={resolve:m,reject:X},this.startLocalServer(Z,W)}),{access_token:c,account:V,organization:d}=await this.exchangeCodeForTokens(N,Z,Y);if(V){let m={accountUuid:V.uuid,emailAddress:V.email_address,organizationUuid:d?.uuid},X=fZ();X.oauthAccount=m,YW(X)}return{accessToken:c}}startLocalServer(I,G){if(this.server)this.closeServer();this.server=A7Z.createServer((Z,l)=>{let b=E7Z.parse(Z.url||"",!0);if(b.pathname==="/callback"){let W=b.query.code,N=b.query.state;if(!W){if(l.writeHead(400),l.end("Authorization code not found"),this.pendingCodePromise)this.pendingCodePromise.reject(Error("No authorization code received"));return}if(N!==I){if(l.writeHead(400),l.end("Invalid state parameter"),this.pendingCodePromise)this.pendingCodePromise.reject(Error("Invalid state parameter"));return}l.writeHead(302,{Location:y1.SUCCESS_URL}),l.end(),wG("tengu_oauth_automatic_redirect",{}),this.processCallback({authorizationCode:W,state:I,useManualRedirect:!1})}else l.writeHead(404),l.end()}),this.server.listen(y1.REDIRECT_PORT,async()=>{G?.()}),this.server.on("error",(Z)=>{if(Z.code==="EADDRINUSE"){let b=Error(`Port ${y1.REDIRECT_PORT} is already in use. Please ensure no other applications are using this port.`);if(DG(b),this.closeServer(),this.pendingCodePromise)this.pendingCodePromise.reject(b);return}else{if(DG(Z),this.closeServer(),this.pendingCodePromise)this.pendingCodePromise.reject(Z);return}})}async exchangeCodeForTokens(I,G,Z=!1){let l={grant_type:"authorization_code",code:I,redirect_uri:Z?y1.MANUAL_REDIRECT_URL:`http://localhost:${y1.REDIRECT_PORT}/callback`,client_id:y1.CLIENT_ID,code_verifier:this.codeVerifier,state:G},b=await If(y1.TOKEN_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l),agent:Ha()});if(!b.ok)throw Error(`Token exchange failed: ${b.statusText}`);return await b.json()}processCallback({authorizationCode:I,state:G,useManualRedirect:Z}){if(this.closeServer(),G!==this.expectedState){if(this.pendingCodePromise)this.pendingCodePromise.reject(Error("Invalid state parameter")),this.pendingCodePromise=null;return}if(this.pendingCodePromise)this.pendingCodePromise.resolve({authorizationCode:I,useManualRedirect:Z}),this.pendingCodePromise=null}closeServer(){if(this.server)this.server.close(),this.server=null}}async function v7Z(I){try{let G=await If(y1.API_KEY_URL,{method:"POST",headers:{Authorization:`Bearer ${I}`},agent:Ha()}),Z,l="";try{Z=await G.json()}catch(b){l=await G.text()}if(wG("tengu_oauth_api_key",{status:G.ok?"success":"failure",statusCode:G.status.toString(),error:G.ok?"":l||JSON.stringify(Z)}),G.ok&&Z&&Z.raw_key){let b=Z.raw_key,W=fZ();if(W.primaryApiKey=b,!W.customApiKeyResponses)W.customApiKeyResponses={approved:[],rejected:[]};if(!W.customApiKeyResponses.approved)W.customApiKeyResponses.approved=[];let N=dR(b);if(!W.customApiKeyResponses.approved.includes(N))W.customApiKeyResponses.approved.push(N);return YW(W),cBZ(),b}return null}catch(G){throw wG("tengu_oauth_api_key",{status:"failure",statusCode:"exception",error:G instanceof Error?G.message:String(G)}),G}}var hl=hI(YG(),1);var eQ=hI(YG(),1);function lmI({customApiKeyTruncated:I,onDone:G}){let Z=XG();function l(W){let N=fZ();switch(W){case"yes":{YW({...N,customApiKeyResponses:{...N.customApiKeyResponses,approved:[...N.customApiKeyResponses?.approved??[],I]}}),G();break}case"no":{YW({...N,customApiKeyResponses:{...N.customApiKeyResponses,rejected:[...N.customApiKeyResponses?.rejected??[],I]}}),G();break}}}let b=EY(()=>process.exit(0));return eQ.default.createElement(eQ.default.Fragment,null,eQ.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Z.warning},eQ.default.createElement(K,{bold:!0,color:Z.warning},"Detected a custom API key in your environment"),eQ.default.createElement(K,null,"Your environment sets ",eQ.default.createElement(K,{color:Z.warning},"ANTHROPIC_API_KEY"),":"," ",eQ.default.createElement(K,{bold:!0},"sk-ant-...",I)),eQ.default.createElement(K,null,"Do you want to use this API key?"),eQ.default.createElement(jY,{options:[{label:`No (${uZ.bold("recommended")})`,value:"no"},{label:"Yes",value:"yes"}],onChange:(W)=>l(W)})),eQ.default.createElement(GI,{marginLeft:3},eQ.default.createElement(K,{dimColor:!0},b.pending?eQ.default.createElement(eQ.default.Fragment,null,"Press ",b.keyName," again to exit"):eQ.default.createElement(eQ.default.Fragment,null,"Enter to confirm"))))}var sV=hI(YG(),1);var C7Z=hI(YG(),1);function Dh({patch:I,dim:G,width:Z,overrideTheme:l}){return C7Z.useMemo(()=>_GN(I.lines,I.oldStart,Z,G,l),[I.lines,I.oldStart,Z,G,l]).map((W,N)=>sV.createElement(GI,{key:N},W))}function _GN(I,G,Z,l,b){let W=XG(b),N=sGN(I.map((V)=>{if(V.startsWith("+"))return{code:" "+V.slice(1),i:0,type:"add"};if(V.startsWith("-"))return{code:" "+V.slice(1),i:0,type:"remove"};return{code:V,i:0,type:"nochange"}}),G),c=Math.max(...N.map(({i:V})=>V)).toString().length;return N.flatMap(({type:V,code:d,i:m})=>{return a4Z(d,Z-c).map((R,H)=>{let w=`${V}-${m}-${H}`;switch(V){case"add":return sV.createElement(K,{key:w},sV.createElement(n6I,{i:H===0?m:void 0,width:c}),sV.createElement(K,{color:b?W.text:void 0,backgroundColor:l?W.diff.addedDimmed:W.diff.added,dimColor:l},R));case"remove":return sV.createElement(K,{key:w},sV.createElement(n6I,{i:H===0?m:void 0,width:c}),sV.createElement(K,{color:b?W.text:void 0,backgroundColor:l?W.diff.removedDimmed:W.diff.removed,dimColor:l},R));case"nochange":return sV.createElement(K,{key:w},sV.createElement(n6I,{i:H===0?m:void 0,width:c}),sV.createElement(K,{color:b?W.text:void 0,dimColor:l},R))}})})}function n6I({i:I,width:G}){return sV.createElement(K,{color:XG().secondaryText},I!==void 0?I.toString().padStart(G):" ".repeat(G)," ")}function sGN(I,G){let Z=G,l=[],b=[...I];while(b.length>0){let{code:W,type:N}=b.shift(),Y={code:W,type:N,i:Z};switch(N){case"nochange":Z++,l.push(Y);break;case"add":Z++,l.push(Y);break;case"remove":{l.push(Y);let c=0;while(b[0]?.type==="remove"){Z++;let{code:V,type:d}=b.shift(),m={code:V,type:d,i:Z};l.push(m),c++}Z-=c;break}}}return l}function bmI(){return!(Rd||Hd)}function p7Z(){return!!fZ().primaryApiKey}function WmI({onDone:I}){let[G,Z]=hl.useState(0),l=fZ(),b=bmI(),[W,N]=hl.useState(Tw.theme),Y=XG();function c(){if(G<A.length-1){let y=G+1;Z(y)}}function V(y){YW({...l,theme:y}),c()}function d(y){N(y)}let m=EY(()=>process.exit(0));zb(async(y,g)=>{let a=A[G];if(g.return&&a&&["usage","security"].includes(a.id))if(G===A.length-1)I();else{if(a.id==="security")await vV();c()}});let X=hl.default.createElement(GI,{flexDirection:"column",gap:1,paddingLeft:1},hl.default.createElement(K,null,"Let's get started."),hl.default.createElement(GI,{flexDirection:"column"},hl.default.createElement(K,{bold:!0},"Choose the option that looks best when you select it:"),hl.default.createElement(K,{dimColor:!0},"To change this later, run /config")),hl.default.createElement(zv,{options:[{label:"Light text",value:"dark"},{label:"Dark text",value:"light"},{label:"Light text (colorblind-friendly)",value:"dark-daltonized"},{label:"Dark text (colorblind-friendly)",value:"light-daltonized"}],onFocus:d,onChange:V}),hl.default.createElement(GI,{flexDirection:"column"},hl.default.createElement(GI,{paddingLeft:1,marginRight:1,borderStyle:"round",borderColor:"gray",flexDirection:"column"},hl.default.createElement(Dh,{patch:{oldStart:1,newStart:1,oldLines:3,newLines:3,lines:["function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Claude!");',"}"]},dim:!1,width:40,overrideTheme:W})))),R=hl.default.createElement(GI,{flexDirection:"column",gap:1,paddingLeft:1},hl.default.createElement(K,{bold:!0},"Security notes:"),hl.default.createElement(GI,{flexDirection:"column",width:70},hl.default.createElement(Cm,null,hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"QuantWise is currently in research preview"),hl.default.createElement(K,{color:Y.secondaryText,wrap:"wrap"},"This beta version may have limitations or unexpected behaviors.",hl.default.createElement(ed,null),"Run /bug at any time to report issues.",hl.default.createElement(ed,null))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Claude can make mistakes"),hl.default.createElement(K,{color:Y.secondaryText,wrap:"wrap"},"You should always review Claude's responses, especially when",hl.default.createElement(ed,null),"running code.",hl.default.createElement(ed,null))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Due to prompt injection risks, only use it with code you trust"),hl.default.createElement(K,{color:Y.secondaryText,wrap:"wrap"},"For more details see:",hl.default.createElement(ed,null),hl.default.createElement(ey,{url:"https://docs.anthropic.com/s/claude-code-security"}))))),hl.default.createElement(K9,null)),H=hl.default.createElement(GI,{flexDirection:"column",gap:1,paddingLeft:1},hl.default.createElement(K,{bold:!0},"Using ",hN," effectively:"),hl.default.createElement(GI,{flexDirection:"column",width:70},hl.default.createElement(Cm,null,hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Start in your project directory",hl.default.createElement(ed,null),hl.default.createElement(K,{color:Y.secondaryText},"Files are automatically added to context when needed."),hl.default.createElement(ed,null))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Use ",hN," as a development partner",hl.default.createElement(ed,null),hl.default.createElement(K,{color:Y.secondaryText},"Get help with file analysis, editing, bash commands,",hl.default.createElement(ed,null),"and git history.",hl.default.createElement(ed,null)))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Provide clear context",hl.default.createElement(ed,null),hl.default.createElement(K,{color:Y.secondaryText},"Be as specific as you would with another engineer. ",hl.default.createElement(ed,null),"The better the context, the better the results. ",hl.default.createElement(ed,null))))),hl.default.createElement(GI,null,hl.default.createElement(K,null,"For more details on ",hN,", see:",hl.default.createElement(ed,null),hl.default.createElement(ey,{url:"https://github.com/quantumiodb/ccode"})))),hl.default.createElement(K9,null)),w=hl.useMemo(()=>{if(process.env.USER_TYPE!=="ant")return"";if(!process.env.ANTHROPIC_API_KEY)return"";let y=dR(process.env.ANTHROPIC_API_KEY);if(DGI(y)==="new")return y},[]),A=[];if(A.push({id:"theme",component:X}),b)A.push({id:"oauth",component:hl.default.createElement(NmI,{onDone:c})});if(w)A.push({id:"api-key",component:hl.default.createElement(lmI,{customApiKeyTruncated:w,onDone:c})});return A.push({id:"security",component:R}),A.push({id:"usage",component:H}),hl.default.createElement(GI,{flexDirection:"column",gap:1},A[G]?.id!=="oauth"&&hl.default.createElement(j6I,null),hl.default.createElement(GI,{flexDirection:"column",padding:0,gap:0},A[G]?.component,m.pending&&hl.default.createElement(GI,{padding:1},hl.default.createElement(K,{dimColor:!0},"Press ",m.keyName," again to exit"))))}function j6I(){let I=XG(),G="1.3.0";return hl.default.createElement(GI,{borderColor:I.claude,borderStyle:"round",paddingX:1,width:P3I},hl.default.createElement(K,null,hl.default.createElement(K,{color:I.claude},"✦")," ",hl.default.createElement(K,{bold:!0},hN)," ",hl.default.createElement(K,{color:I.secondaryText},"v","1.3.0")))}function y7Z({message:I,title:G}){let Z=G?`${G}:
|
|
1815
|
+
`),l=!1,b=!1,W;I.on("response",(N)=>{let{headers:Y}=N;l=Y["transfer-encoding"]==="chunked"&&!Y["content-length"]}),I.on("socket",(N)=>{let Y=()=>{if(l&&!b){let V=Error("Premature close");V.code="ERR_STREAM_PREMATURE_CLOSE",G(V)}},c=(V)=>{if(b=ZmI.compare(V.slice(-5),Z)===0,!b&&W)b=ZmI.compare(W.slice(-3),Z.slice(0,3))===0&&ZmI.compare(V.slice(-2),Z.slice(3))===0;W=V};N.prependListener("close",Y),N.on("data",c),I.on("close",()=>{N.removeListener("close",Y),N.removeListener("data",c)})})}var J7Z={REDIRECT_PORT:54545,MANUAL_REDIRECT_URL:"/oauth/code/callback",SCOPES:["org:create_api_key","user:profile"]},TGN={...J7Z,AUTHORIZE_URL:"https://console.anthropic.com/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",SUCCESS_URL:"https://console.anthropic.com/buy_credits?returnUrl=/oauth/code/success",CLIENT_ID:"9d1c250a-e61b-44d9-88ed-5944d1962f5e"},SGN=process.env.USER_TYPE==="ant"&&process.env.USE_STAGING_OAUTH==="1"?{...J7Z,AUTHORIZE_URL:"https://console.staging.ant.dev/oauth/authorize",TOKEN_URL:"https://console.staging.ant.dev/v1/oauth/token",API_KEY_URL:"https://api-staging.anthropic.com/api/oauth/claude_cli/create_api_key",SUCCESS_URL:"https://console.staging.ant.dev/buy_credits?returnUrl=/oauth/code/success",CLIENT_ID:"22422756-60c9-4084-8eb7-27705fd5cf9a"}:void 0;var y1=process.env.USER_TYPE==="ant"&&process.env.USE_STAGING_OAUTH==="1"&&SGN||TGN;function K6I(I){return I.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function iGN(){return K6I(Gf.randomBytes(32))}async function PGN(I){let Z=new TextEncoder().encode(I),l=await Gf.subtle.digest("SHA-256",Z);return K6I(Buffer.from(l))}class D6I{server=null;codeVerifier;expectedState=null;pendingCodePromise=null;constructor(){this.codeVerifier=iGN()}generateAuthUrls(I,G){function Z(l){let b=new URL(y1.AUTHORIZE_URL);return b.searchParams.append("client_id",y1.CLIENT_ID),b.searchParams.append("response_type","code"),b.searchParams.append("redirect_uri",l?y1.MANUAL_REDIRECT_URL:`http://localhost:${y1.REDIRECT_PORT}/callback`),b.searchParams.append("scope",y1.SCOPES.join(" ")),b.searchParams.append("code_challenge",I),b.searchParams.append("code_challenge_method","S256"),b.searchParams.append("state",G),b.toString()}return{autoUrl:Z(!1),manualUrl:Z(!0)}}async startOAuthFlow(I){let G=await PGN(this.codeVerifier),Z=K6I(Gf.randomBytes(32));this.expectedState=Z;let{autoUrl:l,manualUrl:b}=this.generateAuthUrls(G,Z),W=async()=>{await I(b),await w9(l)},{authorizationCode:N,useManualRedirect:Y}=await new Promise((m,X)=>{this.pendingCodePromise={resolve:m,reject:X},this.startLocalServer(Z,W)}),{access_token:c,account:V,organization:d}=await this.exchangeCodeForTokens(N,Z,Y);if(V){let m={accountUuid:V.uuid,emailAddress:V.email_address,organizationUuid:d?.uuid},X=fZ();X.oauthAccount=m,YW(X)}return{accessToken:c}}startLocalServer(I,G){if(this.server)this.closeServer();this.server=A7Z.createServer((Z,l)=>{let b=E7Z.parse(Z.url||"",!0);if(b.pathname==="/callback"){let W=b.query.code,N=b.query.state;if(!W){if(l.writeHead(400),l.end("Authorization code not found"),this.pendingCodePromise)this.pendingCodePromise.reject(Error("No authorization code received"));return}if(N!==I){if(l.writeHead(400),l.end("Invalid state parameter"),this.pendingCodePromise)this.pendingCodePromise.reject(Error("Invalid state parameter"));return}l.writeHead(302,{Location:y1.SUCCESS_URL}),l.end(),wG("tengu_oauth_automatic_redirect",{}),this.processCallback({authorizationCode:W,state:I,useManualRedirect:!1})}else l.writeHead(404),l.end()}),this.server.listen(y1.REDIRECT_PORT,async()=>{G?.()}),this.server.on("error",(Z)=>{if(Z.code==="EADDRINUSE"){let b=Error(`Port ${y1.REDIRECT_PORT} is already in use. Please ensure no other applications are using this port.`);if(DG(b),this.closeServer(),this.pendingCodePromise)this.pendingCodePromise.reject(b);return}else{if(DG(Z),this.closeServer(),this.pendingCodePromise)this.pendingCodePromise.reject(Z);return}})}async exchangeCodeForTokens(I,G,Z=!1){let l={grant_type:"authorization_code",code:I,redirect_uri:Z?y1.MANUAL_REDIRECT_URL:`http://localhost:${y1.REDIRECT_PORT}/callback`,client_id:y1.CLIENT_ID,code_verifier:this.codeVerifier,state:G},b=await If(y1.TOKEN_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l),agent:Ha()});if(!b.ok)throw Error(`Token exchange failed: ${b.statusText}`);return await b.json()}processCallback({authorizationCode:I,state:G,useManualRedirect:Z}){if(this.closeServer(),G!==this.expectedState){if(this.pendingCodePromise)this.pendingCodePromise.reject(Error("Invalid state parameter")),this.pendingCodePromise=null;return}if(this.pendingCodePromise)this.pendingCodePromise.resolve({authorizationCode:I,useManualRedirect:Z}),this.pendingCodePromise=null}closeServer(){if(this.server)this.server.close(),this.server=null}}async function v7Z(I){try{let G=await If(y1.API_KEY_URL,{method:"POST",headers:{Authorization:`Bearer ${I}`},agent:Ha()}),Z,l="";try{Z=await G.json()}catch(b){l=await G.text()}if(wG("tengu_oauth_api_key",{status:G.ok?"success":"failure",statusCode:G.status.toString(),error:G.ok?"":l||JSON.stringify(Z)}),G.ok&&Z&&Z.raw_key){let b=Z.raw_key,W=fZ();if(W.primaryApiKey=b,!W.customApiKeyResponses)W.customApiKeyResponses={approved:[],rejected:[]};if(!W.customApiKeyResponses.approved)W.customApiKeyResponses.approved=[];let N=dR(b);if(!W.customApiKeyResponses.approved.includes(N))W.customApiKeyResponses.approved.push(N);return YW(W),cBZ(),b}return null}catch(G){throw wG("tengu_oauth_api_key",{status:"failure",statusCode:"exception",error:G instanceof Error?G.message:String(G)}),G}}var hl=hI(YG(),1);var eQ=hI(YG(),1);function lmI({customApiKeyTruncated:I,onDone:G}){let Z=XG();function l(W){let N=fZ();switch(W){case"yes":{YW({...N,customApiKeyResponses:{...N.customApiKeyResponses,approved:[...N.customApiKeyResponses?.approved??[],I]}}),G();break}case"no":{YW({...N,customApiKeyResponses:{...N.customApiKeyResponses,rejected:[...N.customApiKeyResponses?.rejected??[],I]}}),G();break}}}let b=EY(()=>process.exit(0));return eQ.default.createElement(eQ.default.Fragment,null,eQ.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Z.warning},eQ.default.createElement(K,{bold:!0,color:Z.warning},"Detected a custom API key in your environment"),eQ.default.createElement(K,null,"Your environment sets ",eQ.default.createElement(K,{color:Z.warning},"ANTHROPIC_API_KEY"),":"," ",eQ.default.createElement(K,{bold:!0},"sk-ant-...",I)),eQ.default.createElement(K,null,"Do you want to use this API key?"),eQ.default.createElement(jY,{options:[{label:`No (${uZ.bold("recommended")})`,value:"no"},{label:"Yes",value:"yes"}],onChange:(W)=>l(W)})),eQ.default.createElement(GI,{marginLeft:3},eQ.default.createElement(K,{dimColor:!0},b.pending?eQ.default.createElement(eQ.default.Fragment,null,"Press ",b.keyName," again to exit"):eQ.default.createElement(eQ.default.Fragment,null,"Enter to confirm"))))}var sV=hI(YG(),1);var C7Z=hI(YG(),1);function Dh({patch:I,dim:G,width:Z,overrideTheme:l}){return C7Z.useMemo(()=>_GN(I.lines,I.oldStart,Z,G,l),[I.lines,I.oldStart,Z,G,l]).map((W,N)=>sV.createElement(GI,{key:N},W))}function _GN(I,G,Z,l,b){let W=XG(b),N=sGN(I.map((V)=>{if(V.startsWith("+"))return{code:" "+V.slice(1),i:0,type:"add"};if(V.startsWith("-"))return{code:" "+V.slice(1),i:0,type:"remove"};return{code:V,i:0,type:"nochange"}}),G),c=Math.max(...N.map(({i:V})=>V)).toString().length;return N.flatMap(({type:V,code:d,i:m})=>{return a4Z(d,Z-c).map((R,H)=>{let w=`${V}-${m}-${H}`;switch(V){case"add":return sV.createElement(K,{key:w},sV.createElement(n6I,{i:H===0?m:void 0,width:c}),sV.createElement(K,{color:b?W.text:void 0,backgroundColor:l?W.diff.addedDimmed:W.diff.added,dimColor:l},R));case"remove":return sV.createElement(K,{key:w},sV.createElement(n6I,{i:H===0?m:void 0,width:c}),sV.createElement(K,{color:b?W.text:void 0,backgroundColor:l?W.diff.removedDimmed:W.diff.removed,dimColor:l},R));case"nochange":return sV.createElement(K,{key:w},sV.createElement(n6I,{i:H===0?m:void 0,width:c}),sV.createElement(K,{color:b?W.text:void 0,dimColor:l},R))}})})}function n6I({i:I,width:G}){return sV.createElement(K,{color:XG().secondaryText},I!==void 0?I.toString().padStart(G):" ".repeat(G)," ")}function sGN(I,G){let Z=G,l=[],b=[...I];while(b.length>0){let{code:W,type:N}=b.shift(),Y={code:W,type:N,i:Z};switch(N){case"nochange":Z++,l.push(Y);break;case"add":Z++,l.push(Y);break;case"remove":{l.push(Y);let c=0;while(b[0]?.type==="remove"){Z++;let{code:V,type:d}=b.shift(),m={code:V,type:d,i:Z};l.push(m),c++}Z-=c;break}}}return l}function bmI(){return!(Rd||Hd)}function p7Z(){return!!fZ().primaryApiKey}function WmI({onDone:I}){let[G,Z]=hl.useState(0),l=fZ(),b=bmI(),[W,N]=hl.useState(Tw.theme),Y=XG();function c(){if(G<A.length-1){let y=G+1;Z(y)}}function V(y){YW({...l,theme:y}),c()}function d(y){N(y)}let m=EY(()=>process.exit(0));zb(async(y,g)=>{let a=A[G];if(g.return&&a&&["usage","security"].includes(a.id))if(G===A.length-1)I();else{if(a.id==="security")await vV();c()}});let X=hl.default.createElement(GI,{flexDirection:"column",gap:1,paddingLeft:1},hl.default.createElement(K,null,"Let's get started."),hl.default.createElement(GI,{flexDirection:"column"},hl.default.createElement(K,{bold:!0},"Choose the option that looks best when you select it:"),hl.default.createElement(K,{dimColor:!0},"To change this later, run /config")),hl.default.createElement(zv,{options:[{label:"Light text",value:"dark"},{label:"Dark text",value:"light"},{label:"Light text (colorblind-friendly)",value:"dark-daltonized"},{label:"Dark text (colorblind-friendly)",value:"light-daltonized"}],onFocus:d,onChange:V}),hl.default.createElement(GI,{flexDirection:"column"},hl.default.createElement(GI,{paddingLeft:1,marginRight:1,borderStyle:"round",borderColor:"gray",flexDirection:"column"},hl.default.createElement(Dh,{patch:{oldStart:1,newStart:1,oldLines:3,newLines:3,lines:["function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Claude!");',"}"]},dim:!1,width:40,overrideTheme:W})))),R=hl.default.createElement(GI,{flexDirection:"column",gap:1,paddingLeft:1},hl.default.createElement(K,{bold:!0},"Security notes:"),hl.default.createElement(GI,{flexDirection:"column",width:70},hl.default.createElement(Cm,null,hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"QuantWise is currently in research preview"),hl.default.createElement(K,{color:Y.secondaryText,wrap:"wrap"},"This beta version may have limitations or unexpected behaviors.",hl.default.createElement(ed,null),"Run /bug at any time to report issues.",hl.default.createElement(ed,null))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Claude can make mistakes"),hl.default.createElement(K,{color:Y.secondaryText,wrap:"wrap"},"You should always review Claude's responses, especially when",hl.default.createElement(ed,null),"running code.",hl.default.createElement(ed,null))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Due to prompt injection risks, only use it with code you trust"),hl.default.createElement(K,{color:Y.secondaryText,wrap:"wrap"},"For more details see:",hl.default.createElement(ed,null),hl.default.createElement(ey,{url:"https://docs.anthropic.com/s/claude-code-security"}))))),hl.default.createElement(K9,null)),H=hl.default.createElement(GI,{flexDirection:"column",gap:1,paddingLeft:1},hl.default.createElement(K,{bold:!0},"Using ",hN," effectively:"),hl.default.createElement(GI,{flexDirection:"column",width:70},hl.default.createElement(Cm,null,hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Start in your project directory",hl.default.createElement(ed,null),hl.default.createElement(K,{color:Y.secondaryText},"Files are automatically added to context when needed."),hl.default.createElement(ed,null))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Use ",hN," as a development partner",hl.default.createElement(ed,null),hl.default.createElement(K,{color:Y.secondaryText},"Get help with file analysis, editing, bash commands,",hl.default.createElement(ed,null),"and git history.",hl.default.createElement(ed,null)))),hl.default.createElement(Cm.Item,null,hl.default.createElement(K,null,"Provide clear context",hl.default.createElement(ed,null),hl.default.createElement(K,{color:Y.secondaryText},"Be as specific as you would with another engineer. ",hl.default.createElement(ed,null),"The better the context, the better the results. ",hl.default.createElement(ed,null))))),hl.default.createElement(GI,null,hl.default.createElement(K,null,"For more details on ",hN,", see:",hl.default.createElement(ed,null),hl.default.createElement(ey,{url:"https://github.com/quantumiodb/ccode"})))),hl.default.createElement(K9,null)),w=hl.useMemo(()=>{if(process.env.USER_TYPE!=="ant")return"";if(!process.env.ANTHROPIC_API_KEY)return"";let y=dR(process.env.ANTHROPIC_API_KEY);if(DGI(y)==="new")return y},[]),A=[];if(A.push({id:"theme",component:X}),b)A.push({id:"oauth",component:hl.default.createElement(NmI,{onDone:c})});if(w)A.push({id:"api-key",component:hl.default.createElement(lmI,{customApiKeyTruncated:w,onDone:c})});return A.push({id:"security",component:R}),A.push({id:"usage",component:H}),hl.default.createElement(GI,{flexDirection:"column",gap:1},A[G]?.id!=="oauth"&&hl.default.createElement(j6I,null),hl.default.createElement(GI,{flexDirection:"column",padding:0,gap:0},A[G]?.component,m.pending&&hl.default.createElement(GI,{padding:1},hl.default.createElement(K,{dimColor:!0},"Press ",m.keyName," again to exit"))))}function j6I(){let I=XG(),G="1.3.1";return hl.default.createElement(GI,{borderColor:I.claude,borderStyle:"round",paddingX:1,width:P3I},hl.default.createElement(K,null,hl.default.createElement(K,{color:I.claude},"✦")," ",hl.default.createElement(K,{bold:!0},hN)," ",hl.default.createElement(K,{color:I.secondaryText},"v","1.3.1")))}function y7Z({message:I,title:G}){let Z=G?`${G}:
|
|
1816
1816
|
${I}`:I;try{process.stdout.write(`\x1B]9;
|
|
1817
1817
|
|
|
1818
1818
|
${Z}\x07`)}catch{}}function u7Z(){process.stdout.write("\x07")}async function YmI(I){switch(fZ().preferredNotifChannel){case"iterm2":y7Z(I);break;case"terminal_bell":u7Z();break;case"iterm2_with_bell":y7Z(I),u7Z();break;case"notifications_disabled":break}}var L7Z="Paste code here if prompted > ";function NmI({onDone:I}){let[G,Z]=Lb.useState({state:"idle"}),l=XG(),[b,W]=Lb.useState(""),[N,Y]=Lb.useState(0),[c]=Lb.useState(()=>new D6I),[V,d]=Lb.useState(!1),[m,X]=Lb.useState(!1),R=rN().columns-L7Z.length-1;Lb.useEffect(()=>{if(m)vV(),X(!1)},[m]),Lb.useEffect(()=>{if(G.state==="about_to_retry")X(!0),setTimeout(()=>{Z(G.nextState)},1000)},[G]),zb(async(g,a)=>{if(a.return){if(G.state==="idle")wG("tengu_oauth_start",{}),Z({state:"ready_to_start"});else if(G.state==="success")wG("tengu_oauth_success",{}),await vV(),I();else if(G.state==="error"&&G.toRetry)W(""),Z({state:"about_to_retry",nextState:G.toRetry})}});async function H(g,a){try{let[B,U]=g.split("#");if(!B||!U){Z({state:"error",message:"Invalid code. Please make sure the full code was copied",toRetry:{state:"waiting_for_login",url:a}});return}wG("tengu_oauth_manual_entry",{}),c.processCallback({authorizationCode:B,state:U,useManualRedirect:!0})}catch(B){DG(B),Z({state:"error",message:B.message,toRetry:{state:"waiting_for_login",url:a}})}}let w=Lb.useCallback(async()=>{try{let g=await c.startOAuthFlow(async(B)=>{Z({state:"waiting_for_login",url:B}),setTimeout(()=>d(!0),3000)}).catch((B)=>{if(B.message.includes("Token exchange failed"))Z({state:"error",message:"Failed to exchange authorization code for access token. Please try again.",toRetry:{state:"ready_to_start"}}),wG("tengu_oauth_token_exchange_error",{error:B.message});else Z({state:"error",message:B.message,toRetry:{state:"ready_to_start"}});throw B});Z({state:"creating_api_key"});let a=await v7Z(g.accessToken).catch((B)=>{throw Z({state:"error",message:"Failed to create API key: "+B.message,toRetry:{state:"ready_to_start"}}),wG("tengu_oauth_api_key_error",{error:B.message}),B});if(a)Z({state:"success",apiKey:a}),YmI({message:"QuantWise login successful"});else Z({state:"error",message:"Unable to create API key. The server accepted the request but didn't return a key.",toRetry:{state:"ready_to_start"}}),wG("tengu_oauth_api_key_error",{error:"server_returned_no_key"})}catch(g){let a=g.message;wG("tengu_oauth_error",{error:a})}},[c,d]);Lb.useEffect(()=>{if(G.state==="ready_to_start")w()},[G.state,w]);function A(){switch(G.state){case"idle":return Lb.default.createElement(GI,{flexDirection:"column",gap:1},Lb.default.createElement(K,{bold:!0},hN," is billed based on API usage through your Anthropic Console account."),Lb.default.createElement(GI,null,Lb.default.createElement(K,null,"Pricing may evolve as we move towards general availability.")),Lb.default.createElement(GI,{marginTop:1},Lb.default.createElement(K,{color:l.permission},"Press ",Lb.default.createElement(K,{bold:!0},"Enter")," to login to your Anthropic Console account…")));case"waiting_for_login":return Lb.default.createElement(GI,{flexDirection:"column",gap:1},!V&&Lb.default.createElement(GI,null,Lb.default.createElement(is,null),Lb.default.createElement(K,null,"Opening browser to sign in…")),V&&Lb.default.createElement(GI,null,Lb.default.createElement(K,null,L7Z),Lb.default.createElement(W5,{value:b,onChange:W,onSubmit:(g)=>H(g,G.url),cursorOffset:N,onChangeCursorOffset:Y,columns:R})));case"creating_api_key":return Lb.default.createElement(GI,{flexDirection:"column",gap:1},Lb.default.createElement(GI,null,Lb.default.createElement(is,null),Lb.default.createElement(K,null,"Creating API key for QuantWise…")));case"about_to_retry":return Lb.default.createElement(GI,{flexDirection:"column",gap:1},Lb.default.createElement(K,{color:l.permission},"Retrying…"));case"success":return Lb.default.createElement(GI,{flexDirection:"column",gap:1},Lb.default.createElement(K,{color:l.success},"Login successful. Press ",Lb.default.createElement(K,{bold:!0},"Enter")," to continue…"));case"error":return Lb.default.createElement(GI,{flexDirection:"column",gap:1},Lb.default.createElement(K,{color:l.error},"OAuth error: ",G.message),G.toRetry&&Lb.default.createElement(GI,{marginTop:1},Lb.default.createElement(K,{color:l.permission},"Press ",Lb.default.createElement(K,{bold:!0},"Enter")," to retry.")));default:return null}}let y={};if(!m)y.header=Lb.default.createElement(GI,{key:"header",flexDirection:"column",gap:1},Lb.default.createElement(j6I,null),Lb.default.createElement(GI,{paddingBottom:1,paddingLeft:1},Lb.default.createElement(PlI,null)));if(G.state==="waiting_for_login"&&V)y.urlToCopy=Lb.default.createElement(GI,{flexDirection:"column",key:"urlToCopy",gap:1,paddingBottom:1},Lb.default.createElement(GI,{paddingX:1},Lb.default.createElement(K,{dimColor:!0},"Browser didn't open? Use the url below to sign in:")),Lb.default.createElement(GI,{width:1000},Lb.default.createElement(K,{dimColor:!0},G.url)));return Lb.default.createElement(GI,{flexDirection:"column",gap:1},Lb.default.createElement(tO,{items:Object.keys(y)},(g)=>y[g]),Lb.default.createElement(GI,{paddingLeft:1,flexDirection:"column",gap:1},A()))}var g7Z=()=>({type:"local-jsx",name:"login",description:p7Z()?"Switch Anthropic accounts":"Sign in with your Anthropic account",isEnabled:!0,isHidden:!1,async call(I,G){return await vV(),IX.createElement(fGN,{onDone:async()=>{js(G),I()}})},userFacingName(){return"login"}});function fGN(I){let G=EY(I.onDone);return IX.createElement(GI,{flexDirection:"column"},IX.createElement(NmI,{onDone:I.onDone}),IX.createElement(GI,{marginLeft:3},IX.createElement(K,{dimColor:!0},G.pending?IX.createElement(IX.Fragment,null,"Press ",G.keyName," again to exit"):"")))}var q6I=hI(YG(),1);var a7Z={type:"local-jsx",name:"logout",description:"Sign out from your Anthropic account",isEnabled:!0,isHidden:!1,async call(){await vV();let I=fZ();if(I.oauthAccount=void 0,I.primaryApiKey=void 0,I.hasCompletedOnboarding=!1,I.customApiKeyResponses?.approved)I.customApiKeyResponses.approved=[];YW(I);let G=q6I.createElement(K,null,"Successfully logged out from your Anthropic account.");return setTimeout(()=>{process.exit(0)},200),G},userFacingName(){return"logout"}};var jZ=hI(YG(),1),cmI=hI(YG(),1);async function gB(){let[I,G]=await Promise.all([ljZ(),TC()]);return{servers:I,clients:G}}function z7Z({connected:I,disabled:G}){let Z=XG();if(G)return jZ.createElement(K,{color:"gray"},"○ disabled");if(I)return jZ.createElement(K,{color:Z.success??"green"},"● connected");return jZ.createElement(K,{color:"red"},"✕ failed")}function $GN({onDone:I}){let[G,Z]=cmI.useState({phase:"loading"}),l=EY(()=>I());if(cmI.useEffect(()=>{gB().then(({servers:b,clients:W})=>{if(b.length===0&&W.every((N)=>N.type==="failed")){I("No MCP servers connected. Use `claude mcp add` to configure a server.");return}Z({phase:"server-list",servers:b,clients:W})})},[]),G.phase==="loading")return jZ.createElement(GI,{paddingLeft:2},jZ.createElement(lM,{label:"Connecting to MCP servers..."}));if(G.phase==="server-list"){let{servers:b,clients:W}=G,N=Ks(),Y=new Set(b.map((R)=>R.serverName)),c=W.filter((R)=>R.type==="failed").map((R)=>R.name),d=Object.keys(N).filter(Ds),m=[...b.map((R)=>({label:`${R.serverName} (${R.tools.length} tools) ● connected`,value:R.serverName})),...c.filter((R)=>!Y.has(R)&&!Ds(R)).map((R)=>({label:`${R} ✕ failed`,value:R})),...d.map((R)=>({label:`${R} ○ disabled`,value:R})),{label:"← Exit",value:"__exit__"}],X=b.reduce((R,H)=>R+H.tools.length,0);return jZ.createElement(GI,{flexDirection:"column"},jZ.createElement(GI,{paddingLeft:2,marginBottom:1},jZ.createElement(K,{color:XG().text,bold:!0},"MCP Servers (",b.length," connected, ",X," tools total)")),jZ.createElement(jY,{options:m,onChange:(R)=>{if(R==="__exit__"){I();return}let H=b.find((y)=>y.serverName===R),w=Ds(R),A=Y.has(R);Z({phase:"server-detail",serverName:R,connected:A,disabled:w,server:H})}}),l.pending&&jZ.createElement(GI,{paddingLeft:2,marginTop:1},jZ.createElement(K,{dimColor:!0},"Press ",l.keyName," again to exit")))}if(G.phase==="server-detail"){let{serverName:b,connected:W,disabled:N,server:Y}=G,c=[...W&&Y?[{label:"\uD83D\uDD27 View Tools",value:"__tools__"}]:[],N?{label:"▶ Enable",value:"__enable__"}:{label:"⏸ Disable",value:"__disable__"},{label:"← Back to servers",value:"__back__"}];return jZ.createElement(GI,{flexDirection:"column"},jZ.createElement(GI,{paddingLeft:2,marginBottom:1,flexDirection:"column",gap:0},jZ.createElement(K,{bold:!0},b),jZ.createElement(GI,{marginTop:1,gap:2},jZ.createElement(K,{dimColor:!0},"Status:"),jZ.createElement(z7Z,{connected:W,disabled:N})),jZ.createElement(GI,{gap:2},jZ.createElement(K,{dimColor:!0},"Config:"),jZ.createElement(K,null,N?"disabled in this project":"enabled"))),jZ.createElement(jY,{options:c,onChange:(V)=>{if(V==="__tools__"&&Y)Z({phase:"tool-list",server:Y});else if(V==="__disable__")V6I(b),Z({phase:"loading"}),gB().then(({servers:d,clients:m})=>Z({phase:"server-list",servers:d,clients:m}));else if(V==="__enable__")WjZ(b),Z({phase:"loading"}),gB().then(({servers:d,clients:m})=>Z({phase:"server-list",servers:d,clients:m}));else Z({phase:"loading"}),gB().then(({servers:d,clients:m})=>Z({phase:"server-list",servers:d,clients:m}))}}),l.pending&&jZ.createElement(GI,{paddingLeft:2,marginTop:1},jZ.createElement(K,{dimColor:!0},"Press ",l.keyName," again to exit")))}if(G.phase==="tool-list"){let{server:b}=G,W=Ds(b.serverName),N=[...b.tools.map((Y,c)=>({label:`${String(c+1).padStart(2," ")}. ${Y.name}`,value:String(c)})),{label:"⏸ Disable this server",value:"__disable__"},{label:"← Back to servers",value:"__back__"}];return jZ.createElement(GI,{flexDirection:"column"},jZ.createElement(GI,{paddingLeft:2,marginBottom:1,flexDirection:"column"},jZ.createElement(K,{color:XG().text,bold:!0},b.serverName),jZ.createElement(GI,{gap:2},jZ.createElement(K,{dimColor:!0},b.tools.length," tools"),jZ.createElement(z7Z,{connected:!0,disabled:W}))),jZ.createElement(jY,{options:N,onChange:(Y)=>{if(Y==="__back__"){Z({phase:"loading"}),gB().then(({servers:V,clients:d})=>Z({phase:"server-list",servers:V,clients:d}));return}if(Y==="__disable__"){V6I(b.serverName),Z({phase:"loading"}),gB().then(({servers:V,clients:d})=>Z({phase:"server-list",servers:V,clients:d}));return}let c=parseInt(Y,10);Z({phase:"tool-detail",server:b,toolIdx:c})}}),l.pending&&jZ.createElement(GI,{paddingLeft:2,marginTop:1},jZ.createElement(K,{dimColor:!0},"Press ",l.keyName," again to exit")))}if(G.phase==="tool-detail"){let{server:b,toolIdx:W}=G,N=b.tools[W];if(!N)return Z({phase:"tool-list",server:b}),null;return jZ.createElement(GI,{flexDirection:"column"},jZ.createElement(GI,{paddingLeft:2,marginBottom:1,flexDirection:"column"},jZ.createElement(K,{color:XG().text,bold:!0},b.serverName,":",N.name),N.description?jZ.createElement(GI,{marginTop:1},jZ.createElement(K,null,N.description)):jZ.createElement(GI,{marginTop:1},jZ.createElement(K,{dimColor:!0},"(no description)"))),jZ.createElement(jY,{options:[{label:"← Back to tool list",value:"__back__"},{label:"← Back to servers",value:"__servers__"},{label:"← Exit",value:"__exit__"}],onChange:(Y)=>{if(Y==="__back__")Z({phase:"tool-list",server:b});else if(Y==="__servers__")Z({phase:"loading"}),gB().then(({servers:c,clients:V})=>Z({phase:"server-list",servers:c,clients:V}));else I()}}),l.pending&&jZ.createElement(GI,{paddingLeft:2,marginTop:1},jZ.createElement(K,{dimColor:!0},"Press ",l.keyName," again to exit")))}return null}var B7Z={type:"local-jsx",name:"mcp",description:"View and manage MCP servers",isEnabled:!0,isHidden:!1,async call(I){return jZ.createElement($GN,{onDone:I})},userFacingName(){return"mcp"}};var GX=hI(YG(),1);var O2=hI(YG(),1);function k7Z({onDone:I}){let[G,Z]=O2.useState([]),[l,b]=O2.useState(!0),[W,N]=O2.useState(null),Y=fZ().model;O2.useEffect(()=>{async function d(){try{let m=await aaG();Z(m),b(!1)}catch(m){N(m instanceof Error?m.message:"Failed to fetch models"),b(!1)}}d()},[]);let c=(d)=>{let m=fZ();if(d==="__default__")delete m.model;else m.model=d;YW(m),LaG(),I(d==="__default__"?void 0:d)};if(l)return O2.default.createElement(GI,{flexDirection:"column",paddingLeft:2},O2.default.createElement(GI,null,O2.default.createElement(lM,{label:"Fetching available models..."})));if(W)return O2.default.createElement(GI,{flexDirection:"column",paddingLeft:2},O2.default.createElement(K,{color:"red"},"Error: ",W));if(G.length===0)return O2.default.createElement(GI,{flexDirection:"column",paddingLeft:2},O2.default.createElement(K,{color:XG().warning},"No models available"));let V=[{label:`Use default${!Y?" (current)":""}`,value:"__default__"},...G.map((d)=>({label:`${d.display_name} (${d.id})${Y===d.id?" (current)":""}`,value:d.id}))];return O2.default.createElement(GI,{flexDirection:"column"},O2.default.createElement(GI,{paddingLeft:2,marginBottom:1},O2.default.createElement(K,{color:XG().text},"Select a model (use arrow keys, Enter to confirm):")),O2.default.createElement(jY,{options:V,onChange:c}),Y&&O2.default.createElement(GI,{paddingLeft:2,marginTop:1},O2.default.createElement(K,{dimColor:!0},"Current: ",Y)))}var U7Z={type:"local-jsx",name:"model",description:"Select a model to use",isEnabled:!0,isHidden:!1,async call(I){return GX.createElement(oGN,{onDone:(G)=>{if(G){let Z=zC(G),l=Z>=1000?`${(Z/1000).toFixed(0)}K`:Z.toString();I(`Model changed to: ${G}
|
|
@@ -1933,7 +1933,7 @@ Remember:
|
|
|
1933
1933
|
4. Show the file and line number context for code review comments
|
|
1934
1934
|
5. Use jq to parse the JSON responses
|
|
1935
1935
|
|
|
1936
|
-
${I?"Additional user input: "+I:""}`}var M7Z={type:"prompt",name:"pr-comments",description:"Get comments from a pull/merge request",progressMessage:"fetching PR/MR comments",isEnabled:!0,isHidden:!1,userFacingName(){return"pr-comments"},async getPromptForCommand(I){return[{role:"user",content:[{type:"text",text:await vO()==="gitlab"?IZN(I):eGN(I)}]}]}};var GZN={description:"Show release notes for the current or specified version",isEnabled:!1,isHidden:!1,name:"release-notes",userFacingName(){return"release-notes"},type:"local",async call(I){let Z=I?I.trim():"1.3.
|
|
1936
|
+
${I?"Additional user input: "+I:""}`}var M7Z={type:"prompt",name:"pr-comments",description:"Get comments from a pull/merge request",progressMessage:"fetching PR/MR comments",isEnabled:!0,isHidden:!1,userFacingName(){return"pr-comments"},async getPromptForCommand(I){return[{role:"user",content:[{type:"text",text:await vO()==="gitlab"?IZN(I):eGN(I)}]}]}};var GZN={description:"Show release notes for the current or specified version",isEnabled:!1,isHidden:!1,name:"release-notes",userFacingName(){return"release-notes"},type:"local",async call(I){let Z=I?I.trim():"1.3.1",l=jZI[Z];if(!l||l.length===0)return`No release notes available for version ${Z}.`;let b=`Release notes for version ${Z}:`,W=l.map((N)=>`• ${N}`).join(`
|
|
1937
1937
|
`);return`${b}
|
|
1938
1938
|
|
|
1939
1939
|
${W}`}},K7Z=GZN;var D7Z=null;function S6I(I){D7Z=I}var ZZN={type:"local",name:"reload",description:"Reload skills and commands",isEnabled:!0,isHidden:!1,async call(){let I=await j7Z();return D7Z?.(I),`Reloaded ${I.length} commands.`},userFacingName(){return"reload"}},n7Z=ZZN;var lZN={type:"local",name:"rename",description:"Rename the current conversation (visible in /resume)",isEnabled:!0,isHidden:!1,async call(I,G){let Z=G.options.messageLogName;if(!Z)return"Unable to rename: no active conversation.";let l=I.trim();if(!l){let b=buG(Z);if(b)return`Current name: "${b}". Usage: /rename <new name>`;return"Usage: /rename <new name>"}return luG(Z,l),`Conversation renamed to "${l}"`},userFacingName(){return"rename"}},q7Z=lZN;var P6I=hI(YG(),1);var rZ=hI(YG(),1),u1=hI(YG(),1);var VmI=[{key:"restore",label:"Restore conversation",description:"Rewind to this point"},{key:"summarize",label:"Summarize from here",description:"Compress messages after this point"},{key:"cancel",label:"Cancel",description:"Return to message list"}],dmI=7;function T7Z({erroredToolUseIDs:I,messages:G,allMessages:Z,onDone:l,onRestore:b,onSummarize:W,tools:N,unresolvedToolUseIDs:Y}){let[c,V]=u1.useState("select-message"),[d,m]=u1.useState(0),[X,R]=u1.useState(0),[H,w]=u1.useState(!1);u1.useEffect(()=>{wG("tengu_rewind_menu_opened",{})},[]);let A=u1.useMemo(()=>G.filter((lI)=>!(lI.type==="user"&&Array.isArray(lI.message.content)&&lI.message.content[0]?.type==="tool_result")).filter((lI)=>lI.type!=="assistant").filter((lI)=>{if(lI.type!=="user")return!0;let o=lI.message.content;if(typeof o==="string")return!o.includes("<command-name>");if(Array.isArray(o)&&o[0]?.type==="text")return!o[0].text.includes("<command-name>");return!0}),[G]),[y,g]=u1.useState(Math.max(0,A.length-1)),a=EY(()=>process.exit(0)),B=u1.useCallback(()=>{let lI=A[y];if(!lI||!Z.includes(lI))return;wG("tengu_rewind_restore",{index_from_end:(A.length-1-y).toString()}),b(Z.indexOf(lI))},[y,A,Z,b]),U=u1.useCallback(async()=>{let lI=A[y];if(!lI||!Z.includes(lI))return;w(!0),wG("tengu_rewind_summarize",{index_from_end:(A.length-1-y).toString()});try{await W(Z.indexOf(lI))}finally{w(!1)}},[y,A,Z,W]);zb((lI,o)=>{if(H)return;if(o.tab||o.escape){if(c==="select-action")V("select-message"),R(0);else wG("tengu_rewind_menu_cancelled",{}),l();return}if(c==="select-message"){if(o.return){let mI=A[y];if(!mI||!Z.includes(mI))return;m(y),V("select-action"),R(0);return}if(o.upArrow)if(o.ctrl||o.shift||o.meta)g(0);else g((mI)=>Math.max(0,mI-1));if(o.downArrow)if(o.ctrl||o.shift||o.meta)g(A.length-1);else g((mI)=>Math.min(A.length-1,mI+1));let LI=Number(lI);if(!isNaN(LI)&&LI>=1&&LI<=Math.min(9,A.length)){let mI=A[LI-1];if(mI&&Z.includes(mI))m(LI-1),g(LI-1),V("select-action"),R(0)}}else if(c==="select-action"){if(o.return){let LI=VmI[X];if(LI.key==="restore")B();else if(LI.key==="summarize")U();else V("select-message"),R(0);return}if(o.upArrow)R((LI)=>Math.max(0,LI-1));if(o.downArrow)R((LI)=>Math.min(VmI.length-1,LI+1))}});let q=Math.max(0,Math.min(y-Math.floor(dmI/2),A.length-dmI)),$=u1.useMemo(()=>nh(G).filter(yn),[G]);if(H)return rZ.createElement(GI,{flexDirection:"column",marginTop:1,paddingX:1},rZ.createElement(K,{color:"blue"},"Summarizing conversation..."));if(c==="select-action"){let lI=A[d],o=lI?typeof lI.message.content==="string"?lI.message.content.slice(0,60):Array.isArray(lI.message.content)&&lI.message.content[0]?.type==="text"?lI.message.content[0].text.slice(0,60):"(message)":"";return rZ.createElement(rZ.Fragment,null,rZ.createElement(GI,{flexDirection:"column",borderStyle:"round",borderColor:XG().secondaryBorder,height:4+VmI.length*2,paddingX:1,marginTop:1},rZ.createElement(GI,{flexDirection:"column",minHeight:2,marginBottom:1},rZ.createElement(K,{bold:!0},"Rewind action"),rZ.createElement(K,{dimColor:!0},"Selected: ",o,o.length>=60?"...":"")),VmI.map((LI,mI)=>{let ZG=mI===X;return rZ.createElement(GI,{key:LI.key,flexDirection:"row",height:2,minHeight:2},rZ.createElement(GI,{width:4},ZG?rZ.createElement(K,{color:"blue",bold:!0},YN.pointer," "):rZ.createElement(K,null," ")),rZ.createElement(GI,{flexDirection:"column"},rZ.createElement(K,{bold:ZG,color:ZG?"blue":void 0},LI.label),rZ.createElement(K,{dimColor:!0},LI.description)))})),rZ.createElement(GI,{marginLeft:3},rZ.createElement(K,{dimColor:!0},a.pending?rZ.createElement(rZ.Fragment,null,"Press ",a.keyName," again to exit"):rZ.createElement(rZ.Fragment,null,"↑/↓ to select · Enter to confirm · Esc to go back"))))}return rZ.createElement(rZ.Fragment,null,rZ.createElement(GI,{flexDirection:"column",borderStyle:"round",borderColor:XG().secondaryBorder,height:4+Math.min(dmI,A.length)*2,paddingX:1,marginTop:1},rZ.createElement(GI,{flexDirection:"column",minHeight:2,marginBottom:1},rZ.createElement(K,{bold:!0},"Rewind conversation"),rZ.createElement(K,{dimColor:!0},"Select a message to rewind to")),A.slice(q,q+dmI).map((lI,o)=>{let mI=q+o===y;return rZ.createElement(GI,{key:lI.uuid,flexDirection:"row",height:2,minHeight:2},rZ.createElement(GI,{width:7},mI?rZ.createElement(K,{color:"blue",bold:!0},YN.pointer," ",q+o+1," "):rZ.createElement(K,null," ",q+o+1," ")),rZ.createElement(GI,{height:1,overflow:"hidden",width:100},Array.isArray(lI.message.content)&&lI.message.content[0]?.type==="text"&&un(lI.message.content[0].text)?rZ.createElement(K,{dimColor:!0,italic:!0},"(empty message)"):rZ.createElement(aE,{message:lI,messages:$,addMargin:!1,tools:N,verbose:!1,debug:!1,erroredToolUseIDs:I,inProgressToolUseIDs:new Set,unresolvedToolUseIDs:Y,shouldAnimate:!1,shouldShowDot:!1})))})),rZ.createElement(GI,{marginLeft:3},rZ.createElement(K,{dimColor:!0},a.pending?rZ.createElement(rZ.Fragment,null,"Press ",a.keyName," again to exit"):rZ.createElement(rZ.Fragment,null,"↑/↓ to select · Enter to choose action · Tab/Esc to cancel"))))}function i6I(I,G){let Z=G+1;while(Z<I.length&&I[Z].type!=="user")Z++;return Z}var S7Z={type:"local-jsx",name:"rewind",description:"Rewind conversation to a previous point or summarize from a point",isEnabled:!0,isHidden:!1,userFacingName(){return"rewind"},async call(I,G){let Z=TA()(),l=SC(Z),b=(Y)=>{let c=i6I(Z,Y);N(),setImmediate(async()=>{await vV(),sa()([]),G.setForkConvoWithMessagesOnTheNextRender(Z.slice(0,c)),yd.cache.clear?.(),BC.cache.clear?.(),I()})},W=async(Y)=>{let c=i6I(Z,Y),V=Z.slice(0,c),d=Z.slice(c),m=LY("Provide a detailed but concise summary of our conversation above. Focus on information that would be helpful for continuing the conversation, including what we did, what we're doing, which files we're working on, and what we're going to do next."),X=await aD(SC([...d,m]),["You are a helpful AI assistant tasked with summarizing conversations."],0,G.options.tools,G.abortController.signal,{dangerouslySkipPermissions:!1,model:G.options.slowAndCapableModel,prependCLISysprompt:!0}),R=X.message.content,H=typeof R==="string"?R:R.length>0&&R[0]?.type==="text"?R[0].text:null;if(!H||H.startsWith(F1)){b(Y);return}X.message.usage={input_tokens:0,output_tokens:X.message.usage.output_tokens,cache_creation:null,cache_creation_input_tokens:0,cache_read_input_tokens:0,server_tool_use:null,service_tier:null},await vV(),sa()([]),G.setForkConvoWithMessagesOnTheNextRender([...V,LY("Summary of conversation after this point:"),X]),yd.cache.clear?.(),BC.cache.clear?.(),I()};function N(){G.abortController?.abort()}return P6I.createElement(T7Z,{erroredToolUseIDs:new Set,unresolvedToolUseIDs:new Set,messages:l,allMessages:Z,onDone:()=>I(),onRestore:b,onSummarize:W,tools:G.options.tools})}};var mmI={type:"prompt",name:"review",description:"Review a pull/merge request",isEnabled:!0,isHidden:!1,progressMessage:"reviewing pull/merge request",userFacingName(){return"review"},async getPromptForCommand(I){let Z=await vO()==="gitlab",l=Z?"glab":"gh",b=Z?"mr":"pr",W=Z?"MR":"PR";return[{role:"user",content:[{type:"text",text:`
|
|
@@ -2136,7 +2136,7 @@ ${W}`;yield{type:"result",resultForAssistant:N,data:N}},renderToolUseMessage({sk
|
|
|
2136
2136
|
|
|
2137
2137
|
Files modified by other users:
|
|
2138
2138
|
`+W}let l=(await gh({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:I})).message.content[0];if(!l||l.type!=="text")return[];let b=l.text.trim().split(`
|
|
2139
|
-
`);if(b.length<5)return[];return b}catch(I){return DG(I),[]}}var IQI=Zb(async()=>{let I=fZ(),G=ab(),Z=Date.now(),l=G.exampleFilesGeneratedAt??0,b=604800000;if(Z-l>604800000)G.exampleFiles=[];let W={...I,numStartups:(I.numStartups??0)+1};if(YW(W),!G.exampleFiles?.length)_VN().then((Y)=>{if(Y.length)HN({...ab(),exampleFiles:Y,exampleFilesGeneratedAt:Date.now()})});let N=G.exampleFiles?.length?la(G.exampleFiles):"<filepath>";return["fix lint errors","fix typecheck errors",`how does ${N} work?`,`refactor ${N}`,"how do I log an error?",`edit ${N} to...`,`write a test for ${N}`,"create a util logging.py that..."]});var bl=hI(YG(),1);var _DI=hI(YG(),1);var sVN=100;function PDI(){return ab().history??[]}function o9(I){let G=ab(),Z=G.history??[];if(Z[0]===I)return;Z.unshift(I),HN({...G,history:Z.slice(0,sVN)})}function JoZ(I,G){let[Z,l]=_DI.useState(0),[b,W]=_DI.useState(""),N=(d)=>{if(d!==void 0){let m=d.startsWith("!")?"bash":"prompt",X=m==="bash"?d.slice(1):d;I(X,m)}};function Y(){let d=PDI();if(Z<d.length){if(Z===0&&G.trim()!=="")W(G);let m=Z+1;l(m),N(d[Z])}}function c(){let d=PDI();if(Z>1){let m=Z-1;l(m),N(d[m-1])}else if(Z===1)l(0),N(b)}function V(){W(""),l(0)}return{historyIndex:Z,setHistoryIndex:l,onHistoryUp:Y,onHistoryDown:c,resetHistory:V}}var af=hI(YG(),1);function AoZ({commands:I,onInputChange:G,onSubmit:Z,setCursorOffset:l}){let[b,W]=af.useState([]),[N,Y]=af.useState(-1);function c(d){if(d.startsWith("/")){let m=d.slice(1).toLowerCase(),R=I.filter((w)=>!w.isHidden).filter((w)=>{let A=[w.userFacingName()];if(w.aliases)A.push(...w.aliases);return A.some((y)=>y.toLowerCase().startsWith(m))}).map((w)=>w.userFacingName());W(R);let H=N>-1?R.indexOf(b[N]):0;if(H>-1)Y(H);else Y(0)}else W([]),Y(-1)}zb((d,m)=>{if(b.length>0){if(m.downArrow)return Y((X)=>X>=b.length-1?0:X+1),!0;else if(m.upArrow)return Y((X)=>X<=0?b.length-1:X-1),!0;else if(m.tab||m.return&&N>=0){if(N===-1&&m.tab)Y(0);let X=N>=0?N:0,R=b[X];if(!R)return!0;let H="/"+R+" ";if(G(H),l(H.length),W([]),Y(-1),m.return){let w=HmI(R,I);if(w.type!=="prompt"||(w.argNames??[]).length===0)Z(H,!0)}return!0}}});let V=af.useCallback(()=>{W([]),Y(-1)},[]);return{suggestions:b,selectedSuggestion:N,updateSuggestions:c,clearSuggestions:V}}var R0=hI(YG(),1);var EoZ=hI(YG(),1);class GQI extends EoZ.Component{constructor(I){super(I);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(I){_II(I)}render(){if(this.state.hasError)return null;return this.props.children}}var zY=hI(YG(),1);var voZ=hI(AU(),1),ZQI=hI(YG(),1);function sDI({debug:I,isUpdating:G,onChangeIsUpdating:Z,onAutoUpdaterResult:l,autoUpdaterResult:b}){let W=XG(),[N,Y]=ZQI.useState({}),c=zY.useCallback(async()=>{if(G)return;let V="1.3.
|
|
2139
|
+
`);if(b.length<5)return[];return b}catch(I){return DG(I),[]}}var IQI=Zb(async()=>{let I=fZ(),G=ab(),Z=Date.now(),l=G.exampleFilesGeneratedAt??0,b=604800000;if(Z-l>604800000)G.exampleFiles=[];let W={...I,numStartups:(I.numStartups??0)+1};if(YW(W),!G.exampleFiles?.length)_VN().then((Y)=>{if(Y.length)HN({...ab(),exampleFiles:Y,exampleFilesGeneratedAt:Date.now()})});let N=G.exampleFiles?.length?la(G.exampleFiles):"<filepath>";return["fix lint errors","fix typecheck errors",`how does ${N} work?`,`refactor ${N}`,"how do I log an error?",`edit ${N} to...`,`write a test for ${N}`,"create a util logging.py that..."]});var bl=hI(YG(),1);var _DI=hI(YG(),1);var sVN=100;function PDI(){return ab().history??[]}function o9(I){let G=ab(),Z=G.history??[];if(Z[0]===I)return;Z.unshift(I),HN({...G,history:Z.slice(0,sVN)})}function JoZ(I,G){let[Z,l]=_DI.useState(0),[b,W]=_DI.useState(""),N=(d)=>{if(d!==void 0){let m=d.startsWith("!")?"bash":"prompt",X=m==="bash"?d.slice(1):d;I(X,m)}};function Y(){let d=PDI();if(Z<d.length){if(Z===0&&G.trim()!=="")W(G);let m=Z+1;l(m),N(d[Z])}}function c(){let d=PDI();if(Z>1){let m=Z-1;l(m),N(d[m-1])}else if(Z===1)l(0),N(b)}function V(){W(""),l(0)}return{historyIndex:Z,setHistoryIndex:l,onHistoryUp:Y,onHistoryDown:c,resetHistory:V}}var af=hI(YG(),1);function AoZ({commands:I,onInputChange:G,onSubmit:Z,setCursorOffset:l}){let[b,W]=af.useState([]),[N,Y]=af.useState(-1);function c(d){if(d.startsWith("/")){let m=d.slice(1).toLowerCase(),R=I.filter((w)=>!w.isHidden).filter((w)=>{let A=[w.userFacingName()];if(w.aliases)A.push(...w.aliases);return A.some((y)=>y.toLowerCase().startsWith(m))}).map((w)=>w.userFacingName());W(R);let H=N>-1?R.indexOf(b[N]):0;if(H>-1)Y(H);else Y(0)}else W([]),Y(-1)}zb((d,m)=>{if(b.length>0){if(m.downArrow)return Y((X)=>X>=b.length-1?0:X+1),!0;else if(m.upArrow)return Y((X)=>X<=0?b.length-1:X-1),!0;else if(m.tab||m.return&&N>=0){if(N===-1&&m.tab)Y(0);let X=N>=0?N:0,R=b[X];if(!R)return!0;let H="/"+R+" ";if(G(H),l(H.length),W([]),Y(-1),m.return){let w=HmI(R,I);if(w.type!=="prompt"||(w.argNames??[]).length===0)Z(H,!0)}return!0}}});let V=af.useCallback(()=>{W([]),Y(-1)},[]);return{suggestions:b,selectedSuggestion:N,updateSuggestions:c,clearSuggestions:V}}var R0=hI(YG(),1);var EoZ=hI(YG(),1);class GQI extends EoZ.Component{constructor(I){super(I);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(I){_II(I)}render(){if(this.state.hasError)return null;return this.props.children}}var zY=hI(YG(),1);var voZ=hI(AU(),1),ZQI=hI(YG(),1);function sDI({debug:I,isUpdating:G,onChangeIsUpdating:Z,onAutoUpdaterResult:l,autoUpdaterResult:b}){let W=XG(),[N,Y]=ZQI.useState({}),c=zY.useCallback(async()=>{if(G)return;let V="1.3.1",d=await _0I(),m=await SaG();if(Y({global:V,latest:d}),!m&&V&&d&&!voZ.gte(V,d)){let X=Date.now();Z(!0);let R=await Jn();if(Z(!1),R==="success")wG("tengu_auto_updater_success",{fromVersion:V,toVersion:d,durationMs:String(Date.now()-X)});else wG("tengu_auto_updater_fail",{fromVersion:V,attemptedVersion:d,status:R,durationMs:String(Date.now()-X)});l({version:d,status:R})}},[l]);if(ZQI.useEffect(()=>{c()},[c]),EmI(c,1800000),I)return zY.createElement(GI,{flexDirection:"row"},zY.createElement(K,{dimColor:!0},"globalVersion: ",N.global," · latestVersion: ",N.latest));if(!b?.version&&(!N.global||!N.latest))return null;if(!b?.version&&!G)return null;return zY.createElement(GI,{flexDirection:"row"},I&&zY.createElement(K,{dimColor:!0},"globalVersion: ",N.global," · latestVersion: ",N.latest),G&&zY.createElement(zY.Fragment,null,zY.createElement(GI,null,zY.createElement(K,{color:W.secondaryText,dimColor:!0,wrap:"end"},"Auto-updating to v",N.latest,"…"))),b?.status==="success"&&b?.version?zY.createElement(K,{color:W.success},"✓ Update v",b.version," installed · Type ",zY.createElement(K,{bold:!0},"/restart")," ","to apply"):null,(b?.status==="install_failed"||b?.status==="no_permissions")&&zY.createElement(K,{color:W.error},"✗ Auto-update failed · Try ",zY.createElement(K,{bold:!0},"claude doctor")," or"," ",zY.createElement(K,{bold:!0},"npm i -g ","quantwise")))}var zf=hI(YG(),1);var CoZ=1e4;function fDI(I){return(sxI(I??"")-CoZ)*0.6}var tAc=fDI();function $DI({tokenUsage:I,model:G}){let Z=XG(),l=sxI(G??"")-CoZ,b=l*0.6,W=l*0.8;if(I<b)return null;let N=I>=W;return zf.createElement(GI,{flexDirection:"row"},zf.createElement(K,{color:N?Z.error:Z.warning},"Context low (",Math.max(0,100-Math.round(I/l*100)),"% remaining) · Run /compact to compact & continue"))}var Bf=hI(YG(),1);var lQI=hI(YG(),1);function poZ({model:I,messages:G,columns:Z}){let[,l]=lQI.useState(0);lQI.useEffect(()=>{let w=setInterval(()=>l((A)=>A+1),1000);return()=>clearInterval(w)},[]);let b=YD();if(b===0)return null;let W=hE(G),N=SVI(G),Y=TVI(),c=W>0?Math.round(100*N/W):0,V=Z>=80,d=V?I:I.replace(/^claude-/,"").replace(/-\d{8}$/,""),m=V?`${Y_(W)} tokens (${c}% cached)`:`${Y_(W)} tkn`,X=V?XUI(b):`$${b.toFixed(2)}`,R=V?W9(Y):W9(Y).replace(/\.(\d)s/,"s");return Bf.createElement(GI,{paddingX:2},Bf.createElement(K,{dimColor:!0},[d,m].join(" · ")))}function yoZ(I){return`[Pasted text +${(I.match(/\r\n|\r|\n/g)||[]).length} lines] `}function fVN({commands:I,forkNumber:G,messageLogName:Z,isDisabled:l,isLoading:b,onQuery:W,debug:N,verbose:Y,messages:c,setToolJSX:V,onAutoUpdaterResult:d,autoUpdaterResult:m,tools:X,input:R,onInputChange:H,mode:w,onModeChange:A,submitCount:y,onSubmitCountChange:g,setIsLoading:a,setAbortController:B,onShowMessageSelector:U,setForkConvoWithMessagesOnTheNextRender:q,readFileTimestamps:$,permissionMode:lI,onPermissionModeChange:o}){let[LI,mI]=R0.useState(!1),[ZG,gI]=R0.useState({show:!1}),[II,BI]=R0.useState({show:!1}),[EI,cI]=R0.useState(null),[wI,yI]=R0.useState(""),[OI,aI]=R0.useState(""),[mG,P]=R0.useState(R.length),[i,WI]=R0.useState(null),[IG,GG]=R0.useState({show:!1});R0.useEffect(()=>{IQI().then((RG)=>{aI(`Try "${la(RG)}"`)}),qV().then(yI)},[]);let{columns:NG}=rN(),ZI=R0.useMemo(()=>Math.max(...I.map((RG)=>RG.userFacingName().length))+5,[I]),{suggestions:VI,selectedSuggestion:vI,updateSuggestions:uI,clearSuggestions:KI}=AoZ({commands:I,onInputChange:H,onSubmit:tI,setCursorOffset:P}),kI=R0.useCallback((RG)=>{if(RG.startsWith("!")){A("bash");return}uI(RG),H(RG)},[A,H,uI]),{resetHistory:sI,onHistoryUp:t,onHistoryDown:JI}=JoZ((RG,AG)=>{kI(RG),A(AG)},R),pI=()=>{if(VI.length<=1)t()},jI=()=>{if(VI.length<=1)JI()};async function tI(RG,AG=!1){if(RG==="")return;if(l)return;if(b)return;if(VI.length>0&&!AG)return;if(["exit","quit",":q",":q!",":wq",":wq!"].includes(RG.trim()))$VN();let eG=RG;if(i){let uG=yoZ(i);if(eG.includes(uG))eG=eG.replace(uG,i)}H(""),A("prompt"),KI(),cI(null),WI(null),g((uG)=>uG+1),a(!0);let zZ=new AbortController;B(zZ);let $G=await qV(),JG=await JmI(eG,w,V,{options:{commands:I,forkNumber:G,messageLogName:Z,tools:X,verbose:Y,slowAndCapableModel:$G,maxThinkingTokens:0},messageId:void 0,abortController:zZ,readFileTimestamps:$,setForkConvoWithMessagesOnTheNextRender:q},EI??null);if(JG.length)W(JG,zZ);else{o9(RG),sI();return}for(let uG of JG)if(uG.type==="user"){let iG=w==="bash"?`!${RG}`:RG;o9(iG),sI()}}function aG(RG){A("prompt"),cI(RG)}function EG(RG){let AG=RG.replace(/\r/g,`
|
|
2140
2140
|
`),eG=yoZ(AG),zZ=R.slice(0,mG)+eG+R.slice(mG);H(zZ),P(mG+eG.length),WI(AG)}zb((RG,AG)=>{if(AG.shift&&AG.tab){let eG=["default","auto-accept-edits","plan-mode"],$G=(eG.indexOf(lI)+1)%eG.length,JG=eG[$G];o(JG),GG({show:!0,text:`Mode: ${{default:"Default mode (ask for all permissions)","auto-accept-edits":"Auto-accept edits mode (no ask for file edits)","plan-mode":"Plan mode (read-only, creates plans for approval)"}[JG]}`}),setTimeout(()=>{GG({show:!1})},2000);return}if(R===""&&(AG.escape||AG.backspace||AG.delete))A("prompt");if(AG.escape&&c.length>0&&!R&&!b)U()});let lZ=rN().columns-6,OZ=R0.useMemo(()=>hE(c),[c]),TG=XG();return bl.createElement(GI,{flexDirection:"column"},bl.createElement(GI,{alignItems:"flex-start",justifyContent:"flex-start",borderColor:w==="bash"?TG.bashBorder:TG.secondaryBorder,borderDimColor:!0,borderStyle:"round",marginTop:1,width:"100%"},bl.createElement(GI,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start"},w==="bash"?bl.createElement(K,{color:TG.bashBorder}," ! "):bl.createElement(K,{color:b?TG.secondaryText:void 0}," > ")),bl.createElement(GI,{paddingRight:1,flexGrow:1},bl.createElement(W5,{multiline:!0,onSubmit:tI,onChange:kI,value:R,onHistoryUp:pI,onHistoryDown:jI,onHistoryReset:()=>sI(),placeholder:y>0?void 0:OI,onExit:()=>process.exit(0),onExitMessage:(RG,AG)=>gI({show:RG,key:AG}),onMessage:(RG,AG)=>BI({show:RG,text:AG}),onImagePaste:aG,columns:lZ,isDimmed:l||b,disableCursorMovementForUpDownKeys:VI.length>0,cursorOffset:mG,onChangeCursorOffset:P,onPaste:EG}))),VI.length===0&&bl.createElement(GI,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},bl.createElement(GI,{justifyContent:"flex-start",gap:1},IG.show?bl.createElement(K,{dimColor:!0},IG.text):ZG.show?bl.createElement(K,{dimColor:!0},"Press ",ZG.key," again to exit"):II.show?bl.createElement(K,{dimColor:!0},II.text):bl.createElement(bl.Fragment,null,bl.createElement(K,{color:w==="bash"?TG.bashBorder:void 0,dimColor:w!=="bash"},"! for bash mode"),bl.createElement(K,{dimColor:!0},"· / for commands · esc to undo"),bl.createElement(K,{dimColor:!0},"· Shift+Tab to cycle modes"),lI!=="default"&&bl.createElement(K,{dimColor:!0},"· Permission: [",lI==="auto-accept-edits"?"auto-accept":lI,"]"))),bl.createElement(GQI,null,bl.createElement(GI,{justifyContent:"flex-end",gap:1},!m&&!LI&&!N&&OZ<fDI(wI)&&bl.createElement(K,{dimColor:!0},NM.isEnabled&&UUG()?"shift + ⏎ for newline":"\\⏎ for newline"),N&&bl.createElement(K,{dimColor:!0},`${hE(c)} tokens (${Math.round(1e4*(SVI(c)||1)/(hE(c)||1))/100}% cached)`),bl.createElement($DI,{tokenUsage:OZ,model:wI}),bl.createElement(sDI,{debug:N,onAutoUpdaterResult:d,autoUpdaterResult:m,isUpdating:LI,onChangeIsUpdating:mI})))),VI.length>0&&bl.createElement(GI,{flexDirection:"row",justifyContent:"space-between",paddingX:2,paddingY:0},bl.createElement(GI,{flexDirection:"column"},VI.map((RG,AG)=>{let eG=I.find((zZ)=>zZ.userFacingName()===RG.replace("/",""));return bl.createElement(GI,{key:RG,flexDirection:NG<80?"column":"row"},bl.createElement(GI,{width:NG<80?void 0:ZI},bl.createElement(K,{color:AG===vI?TG.suggestion:void 0,dimColor:AG!==vI},"/",RG,eG?.aliases&&eG.aliases.length>0&&bl.createElement(K,{dimColor:!0}," (",eG.aliases.join(", "),")"))),eG&&bl.createElement(GI,{width:NG-(NG<80?4:ZI+4),paddingLeft:NG<80?4:0},bl.createElement(K,{color:AG===vI?TG.suggestion:void 0,dimColor:AG!==vI,wrap:"wrap"},bl.createElement(K,{dimColor:AG!==vI},eG.description,eG.type==="prompt"&&eG.argNames?.length?` (arguments: ${eG.argNames.join(", ")})`:null))))})),bl.createElement(GQI,null,bl.createElement(GI,{justifyContent:"flex-end",gap:1},bl.createElement($DI,{tokenUsage:hE(c),model:wI}),bl.createElement(sDI,{debug:N,onAutoUpdaterResult:d,autoUpdaterResult:m,isUpdating:LI,onChangeIsUpdating:mI})))),bl.createElement(poZ,{model:wI,messages:c,columns:NG}))}var uoZ=R0.memo(fVN);function $VN(){m6I(""),process.exit(0)}var LoZ=hI(YG(),1);function goZ(){LoZ.useEffect(()=>{let I=Math.round(process.uptime()*1000);wG("tengu_timer",{event:"startup",durationMs:String(I)})},[])}var kf=hI(YG(),1);function aoZ(){let[I,G]=kf.useState(()=>{return sH()?"loading":"missing"}),[Z,l]=kf.useState(null),b=kf.useCallback(async()=>{if(KGI()){G("valid");return}let W=sH();if(!W){G("missing");return}try{let Y=await YBZ(W)?"valid":"invalid";G(Y);return}catch(N){l(N),G("error");return}},[]);return{status:I,reverify:b,error:Z}}function zoZ(I,G,Z,l,b,W,N){zb((Y,c)=>{if(!c.escape)return;if(N?.aborted)return;if(!N)return;if(!b)return;if(W)return;wG("tengu_cancel",{}),I(null),G(null),Z(null),l()})}var BoZ=hI(YG(),1);function oVN(I){return BoZ.useCallback(async(G,Z,l,b)=>{return new Promise((W)=>{function N(){wG("tengu_tool_use_cancelled",{messageID:b.message.id,toolName:G.name})}function Y(){W({result:!1,message:q9}),l.abortController.abort()}if(l.abortController.signal.aborted){N(),Y();return}return f9(G,Z,l,b).then(async(c)=>{if(c.result){wG("tengu_tool_use_granted_in_config",{messageID:b.message.id,toolName:G.name}),W({result:!0});return}let[V,d]=await Promise.all([G.description(Z),G===dN?fVI(k_.parse(Z).command,l.abortController.signal):Promise.resolve(null)]);if(l.abortController.signal.aborted){N(),Y();return}let m=Math.random().toString(36).slice(2,10),X=!1,R=(H)=>{if(X)return;X=!0,I(null),TY.removePendingPermission(m),W(H)};I({assistantMessage:b,tool:G,description:V,input:Z,commandPrefix:d,riskScore:null,onAbort(){N(),wG("tengu_tool_use_rejected_in_prompt",{messageID:b.message.id,toolName:G.name}),R({result:!1,message:q9}),l.abortController.abort()},onAllow(H){if(H==="permanent")wG("tengu_tool_use_granted_in_prompt_permanent",{messageID:b.message.id,toolName:G.name});else wG("tengu_tool_use_granted_in_prompt_temporary",{messageID:b.message.id,toolName:G.name});R({result:!0})},onReject(){wG("tengu_tool_use_rejected_in_prompt",{messageID:b.message.id,toolName:G.name}),R({result:!1,message:q9}),l.abortController.abort()}}),TY.addPendingPermission({requestId:m,toolName:G.userFacingName(Z),description:V,input:Z,onAllow(H){if(H==="permanent")wG("tengu_tool_use_granted_in_prompt_permanent",{messageID:b.message.id,toolName:G.name});else wG("tengu_tool_use_granted_in_prompt_temporary",{messageID:b.message.id,toolName:G.name});R({result:!0})},onReject(){wG("tengu_tool_use_rejected_in_prompt",{messageID:b.message.id,toolName:G.name}),R({result:!1,message:q9}),l.abortController.abort()},savePermissionFn:()=>VJ(G,Z,d?.prefix??null)})}).catch((c)=>{if(c instanceof LO)N(),Y();else DG(c)})})},[I])}var koZ=oVN;var UoZ=hI(YG(),1);function xoZ(I,G,Z){UoZ.useEffect(()=>{GO(Qy(G,Z,0),I.filter((l)=>l.type!=="progress"))},[I,G,Z])}async function tVN(){return await GT("tengu-binary-feedback-config",{sampleFrequency:0})}function bQI(I){return I.message.content.map((G)=>{if(G.type==="text")return"text";if(G.type==="tool_use")return G.name;return G.type})}async function KoZ(I,G,Z){let l=I.message.model,b=G.message.model,W=await EGI();wG("tengu_binary_feedback",{msg_id_A:I.message.id,msg_id_B:G.message.id,choice:{"prefer-left":I.message.id,"prefer-right":G.message.id,neither:void 0,"no-preference":void 0}[Z],choiceStr:Z,gitHead:W?.commitHash,gitBranch:W?.branchName,gitRepoRemoteUrl:W?.remoteUrl||void 0,gitRepoIsHeadOnRemote:W?.isHeadOnRemote?.toString(),gitRepoIsClean:W?.isClean?.toString(),modelA:l,modelB:b,temperatureA:String(x_),temperatureB:String(x_),seqA:String(bQI(I)),seqB:String(bQI(G))})}async function Kn(I,G){wG("tengu_binary_feedback_sampling_decision",{decision:I.toString(),reason:G})}async function OoZ(I,G,Z,l){wG("tengu_binary_feedback_display_decision",{decision:I.toString(),reason:l,msg_id_A:G.message.id,msg_id_B:Z.message.id,seqA:String(bQI(G)),seqB:String(bQI(Z))})}function rVN(I,G){if(I.type!==G.type)return!1;if(I.type==="text")return"text"in I&&"text"in G&&I.text===G.text;if(I.type==="tool_use"||I.type==="server_tool_use")return"name"in I&&"name"in G&&"input"in I&&"input"in G&&I.name===G.name&&gII(I.input,G.input);return gII(I,G)}function MoZ(I,G){if(I.length!==G.length)return!1;return nJI(I,G).every(([Z,l])=>rVN(Z,l))}async function DoZ(){if(process.env.DISABLE_BINARY_FEEDBACK)return Kn(!1,"disabled_by_env_var"),!1;if(process.env.FORCE_BINARY_FEEDBACK)return Kn(!0,"forced_by_env_var"),!0;if(process.env.USER_TYPE!=="ant")return Kn(!1,"not_ant"),!1;let I=await tVN();if(I.sampleFrequency===0)return Kn(!1,"top_level_frequency_zero"),!1;if(Math.random()>I.sampleFrequency)return Kn(!1,"top_level_frequency_rng"),!1;return Kn(!0),!0}function noZ(I,G){let Z=()=>OoZ(!0,I,G),l=(Y)=>OoZ(!1,I,G,Y),b=I.message.content.filter((Y)=>Y.type!=="thinking"&&Y.type!=="redacted_thinking"),W=G.message.content.filter((Y)=>Y.type!=="thinking"&&Y.type!=="redacted_thinking");if(!(b.some((Y)=>Y.type==="tool_use")||W.some((Y)=>Y.type==="tool_use"))){if(MoZ(b,W))return l("contents_identical"),!1;return Z(),!0}if(MoZ(b.filter((Y)=>Y.type==="tool_use"),W.filter((Y)=>Y.type==="tool_use")))return l("contents_identical"),!1;return Z(),!0}function joZ(I,G,Z){switch(Z){case"prefer-left":return{message:I,shouldSkipPermissionCheck:!0};case"prefer-right":return{message:G,shouldSkipPermissionCheck:!0};case"no-preference":return{message:Math.random()<0.5?I:G,shouldSkipPermissionCheck:!1};case"neither":return{message:null,shouldSkipPermissionCheck:!1}}}var eVN=10;async function IdN(I,G,Z){if(process.env.USER_TYPE!=="ant"||!Z||!await DoZ()){let W=await G();if(I.abortController.signal.aborted)return{message:null,shouldSkipPermissionCheck:!1};return{message:W,shouldSkipPermissionCheck:!1}}let[l,b]=await Promise.all([G(),G()]);if(I.abortController.signal.aborted)return{message:null,shouldSkipPermissionCheck:!1};if(b.isApiErrorMessage)return{message:l,shouldSkipPermissionCheck:!1};if(l.isApiErrorMessage)return{message:b,shouldSkipPermissionCheck:!1};if(!noZ(l,b))return{message:l,shouldSkipPermissionCheck:!1};return await Z(l,b)}async function*ME(I,G,Z,l,b,W){let N=VBZ(G,Z);function Y(){return aD(SC(I),N,b.options.thinkingConfig??b.options.maxThinkingTokens,b.options.tools,b.abortController.signal,{dangerouslySkipPermissions:b.options.dangerouslySkipPermissions??!1,model:b.options.slowAndCapableModel,prependCLISysprompt:!0})}let c=await IdN(b,Y,W);if(c.message===null){yield tm(P5);return}let{message:V,shouldSkipPermissionCheck:d}=c;yield V;let m=V.message.content.filter((H)=>H.type==="tool_use");if(!m.length)return;let X=[];if(m.every((H)=>b.options.tools.find((w)=>w.name===H.name)?.isReadOnly())){for await(let H of GdN(m,V,l,b,d))if(yield H,H.type==="user")X.push(H)}else for await(let H of ZdN(m,V,l,b,d))if(yield H,H.type==="user")X.push(H);if(b.abortController.signal.aborted){yield tm(H9);return}let R=X.sort((H,w)=>{let A=m.findIndex((g)=>g.id===H.message.content[0].id),y=m.findIndex((g)=>g.id===w.message.content[0].id);return A-y});yield*await ME([...I,V,...R],G,Z,l,b,W)}async function*GdN(I,G,Z,l,b){yield*XBZ(I.map((W)=>qoZ(W,new Set(I.map((N)=>N.id)),G,Z,l,b)),eVN)}async function*ZdN(I,G,Z,l,b){for(let W of I)yield*qoZ(W,new Set(I.map((N)=>N.id)),G,Z,l,b)}async function*qoZ(I,G,Z,l,b,W){let N=I.name,Y=b.options.tools.find((V)=>V.name===N);if(!Y){wG("tengu_tool_use_error",{error:`No such tool available: ${N}`,messageID:Z.message.id,toolName:N,toolUseID:I.id}),yield LY([{type:"tool_result",content:`Error: No such tool available: ${N}`,is_error:!0,tool_use_id:I.id}]);return}let c=I.input;try{if(b.abortController.signal.aborted){wG("tengu_tool_use_cancelled",{toolName:Y.name,toolUseID:I.id}),yield LY([$7Z(I.id)]);return}for await(let V of bdN(Y,I.id,G,c,b,l,Z,W))yield V}catch(V){DG(V)}}function ldN(I,G){switch(I.name){case dN.name:{let{command:Z,timeout:l}=dN.inputSchema.parse(G);return{command:Z.replace(`cd ${XZ()} && `,""),...l?{timeout:l}:{}}}default:return G}}async function*bdN(I,G,Z,l,b,W,N,Y){let c=I.inputSchema.safeParse(l);if(!c.success){wG("tengu_tool_use_error",{error:`InputValidationError: ${c.error.message}`,messageID:N.message.id,toolName:I.name,toolInput:JSON.stringify(l).slice(0,200)}),yield LY([{type:"tool_result",content:`InputValidationError: ${c.error.message}`,is_error:!0,tool_use_id:G}]);return}let V=ldN(I,l),d=await I.validateInput?.(V,b);if(d?.result===!1){wG("tengu_tool_use_error",{error:d?.message.slice(0,2000),messageID:N.message.id,toolName:I.name,toolInput:JSON.stringify(l).slice(0,200),...d?.meta??{}}),yield LY([{type:"tool_result",content:d.message,is_error:!0,tool_use_id:G}]);return}let m=Y?{result:!0}:await W(I,V,b,N);if(m.result===!1){yield LY([{type:"tool_result",content:m.message,is_error:!0,tool_use_id:G}]);return}try{let X=I.call(V,b,W);for await(let R of X)switch(R.type){case"result":wG("tengu_tool_use_success",{messageID:N.message.id,toolName:I.name}),yield LY([{type:"tool_result",content:R.resultForAssistant,tool_use_id:G}],{data:R.data,resultForAssistant:R.resultForAssistant});return;case"progress":wG("tengu_tool_use_progress",{messageID:N.message.id,toolName:I.name}),yield f7Z(G,Z,R.content,R.normalizedMessages,R.tools)}}catch(X){let R=WdN(X);DG(X),wG("tengu_tool_use_error",{error:R.slice(0,2000),messageID:N.message.id,toolName:I.name,toolInput:JSON.stringify(l).slice(0,1000)}),yield LY([{type:"tool_result",content:R,is_error:!0,tool_use_id:G}])}}function WdN(I){if(!(I instanceof Error))return String(I);let G=[I.message];if("stderr"in I&&typeof I.stderr==="string")G.push(I.stderr);if("stdout"in I&&typeof I.stdout==="string")G.push(I.stdout);let Z=G.filter(Boolean).join(`
|
|
2141
2141
|
`);if(Z.length<=1e4)return Z;let l=5000,b=Z.slice(0,l),W=Z.slice(-l);return`${b}
|
|
2142
2142
|
|
|
@@ -2652,13 +2652,13 @@ Terminate the debugger session. If attached to a process, detaches first. If deb
|
|
|
2652
2652
|
`).length} lines truncated] ...
|
|
2653
2653
|
|
|
2654
2654
|
${l}`;return{totalLines:I.split(`
|
|
2655
|
-
`).length,truncatedContent:b}}function iHN(I){if(!I.isAlive)return"session ended";if(I.isAttached)return"attached";if(I.hasTarget)return"target loaded";return"session active"}function j8I(I){return I||mj()}var Obl={name:"Debugger",async description({action:I,command:G,debugger:Z}){let l=(Z||mj()).toUpperCase();switch(I){case"launch":return`Launch ${l} debugger with executable`;case"attach":return`Attach ${l} to running process`;case"command":return`${l}: ${G||"execute command"}`;case"detach":return`Detach ${l} from process`;case"stop":return`Stop ${l} session`;default:return`${l} debugger operation`}},async prompt(){return Ubl},isReadOnly(){return!1},inputSchema:THN,userFacingName({action:I,debugger:G}={}){let Z=(G||mj()).toUpperCase();if(I)return`${Z} (${I})`;return"Debugger"},async isEnabled(){try{return hXI("which lldb",{stdio:"ignore"}),!0}catch{}try{return hXI("which gdb",{stdio:"ignore"}),!0}catch{return!1}},needsPermissions(){return!0},async validateInput({action:I,executable:G,pid:Z,command:l,debugger:b}){let W=j8I(b),N=HXI(W);switch(I){case"launch":{if(!G)return{result:!1,message:"executable is required for launch action"};if(!jHN(G))return{result:!1,message:`Executable not found: ${G}`};try{hXI(`which ${W}`,{stdio:"ignore"})}catch{return{result:!1,message:`${W} is not installed. Install it or use a different debugger.`}}return{result:!0}}case"attach":{if(Z===void 0||Z===null)return{result:!1,message:"pid is required for attach action"};if(!Number.isInteger(Z)||Z<=0)return{result:!1,message:`Invalid PID: ${Z}. Must be a positive integer.`};try{hXI(`which ${W}`,{stdio:"ignore"})}catch{return{result:!1,message:`${W} is not installed. Install it or use a different debugger.`}}return{result:!0}}case"command":{if(!l)return{result:!1,message:"command is required for command action"};if(N.isBlockedCommand(l))return{result:!1,message:"Command is blocked for security reasons. Use the Bash tool for shell commands."};if(!TR.getInstance(W).isAlive)return{result:!1,message:`No active ${W} session. Use launch or attach first.`};return{result:!0}}case"detach":case"stop":return{result:!0};default:return{result:!1,message:`Unknown action: ${I}`}}},renderToolUseMessage({action:I,executable:G,pid:Z,command:l,debugger:b}){let W=j8I(b);switch(I){case"launch":return`${W} launch ${G}${l?` ${l}`:""}`;case"attach":return`${W} attach --pid ${Z}`;case"command":return`(${W}) ${l}`;case"detach":return`${W} detach`;case"stop":return`${W} quit`;default:return`${W} ${I}`}},renderToolUseRejectedMessage(){return L$.createElement(cN,null)},renderToolResultMessage(I,{verbose:G}){return L$.createElement(xbl,{content:I,verbose:G})},renderResultForAssistant({output:I,stopReason:G,exitCode:Z,sessionStatus:l,interrupted:b}){let W=[];if(I.trim())W.push(I.trim());let N=[];if(G)N.push(`Stop reason: ${G}`);if(Z!==void 0)N.push(`Exit code: ${Z}`);if(l)N.push(`Session: ${l}`);if(b)N.push("Command was interrupted");if(N.length>0)W.push(`[${N.join(" | ")}]`);return W.join(qHN)||"(No output)"},async*call({action:I,executable:G,args:Z,pid:l,command:b,timeout:W,debugger:N},{abortController:Y}){let c=j8I(N),V=TR.getInstance(c),d="",m,X,R=!1;try{switch(I){case"launch":{let g=await V.launch(G,Z);d=g.output,m=g.stopReason,R=g.interrupted;break}case"attach":{let g=await V.attach(l);d=g.output,m=g.stopReason,R=g.interrupted;break}case"command":{let g=await V.exec(b,Y.signal,W);d=g.output,m=g.stopReason,X=g.exitCode,R=g.interrupted;break}case"detach":{let g=await V.detach();d=g.output,R=g.interrupted;break}case"stop":{await V.stop(),d=`${c.toUpperCase()} session terminated.`;break}}}catch(g){DG(g),d=`Error: ${g instanceof Error?g.message:String(g)}`}let H=iHN(V),{totalLines:w,truncatedContent:A}=SHN(d.trim()),y={output:A,outputLines:w,stopReason:m,exitCode:X,sessionStatus:H,interrupted:R};yield{type:"result",resultForAssistant:this.renderResultForAssistant(y),data:y}}};var cQI=()=>{return[G3,dN,HtZ,rm,L1,YF,h1,em,F0,R9,ZX,EtZ,ptZ,BtZ,BB,VGl,zbl,Obl]},r9=Zb(async(I)=>{let G=Sw()?[]:await x0I(),Z=[...cQI(),...G];if(I)Z.push(wtZ);if(!Sw())Z.push(Ef);let l=await Promise.all(Z.map((b)=>b.isEnabled()));return Z.filter((b,W)=>l[W])}),XtZ=Zb(async()=>{let I=cQI().filter((Z)=>Z.isReadOnly()),G=await Promise.all(I.map((Z)=>Z.isEnabled()));return I.filter((Z,l)=>G[l])});import{cwd as SR}from"process";var e0=hI(YG(),1);import{homedir as PHN}from"os";function Mbl({onDone:I}){let G=XG();e0.default.useEffect(()=>{wG("trust_dialog_shown",{})},[]);function Z(b){let W=ab();switch(b){case"yes":{let N=PHN()===XZ();if(wG("trust_dialog_accept",{isHomeDir:String(N)}),!N)HN({...W,hasTrustDialogAccepted:!0});I();break}case"no":{process.exit(1);break}}}let l=EY(()=>process.exit(0));return zb((b,W)=>{if(W.escape){process.exit(0);return}}),e0.default.createElement(e0.default.Fragment,null,e0.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:G.warning},e0.default.createElement(K,{bold:!0,color:G.warning},"Do you trust the files in this folder?"),e0.default.createElement(K,{bold:!0},process.cwd()),e0.default.createElement(GI,{flexDirection:"column",gap:1},e0.default.createElement(K,null,hN," may read files in this folder. Reading untrusted files may lead to ",hN," ","to behave in an unexpected ways."),e0.default.createElement(K,null,"With your permission ",hN," may execute files in this folder. Executing untrusted code is unsafe."),e0.default.createElement(ey,{url:"https://docs.anthropic.com/s/claude-code-security"})),e0.default.createElement(jY,{options:[{label:"Yes, proceed",value:"yes"},{label:"No, exit",value:"no"}],onChange:(b)=>Z(b)})),e0.default.createElement(GI,{marginLeft:3},e0.default.createElement(K,{dimColor:!0},l.pending?e0.default.createElement(e0.default.Fragment,null,"Press ",l.keyName," again to exit"):e0.default.createElement(e0.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var Gk=hI(YG(),1);function q8I({context:I,type:G,logNumber:Z}){let[l,b]=Gk.useState([]),[W,N]=Gk.useState(!1);Gk.useEffect(()=>{ZO(G==="messages"?UX.messages():UX.errors()).then((c)=>{if(Z!==void 0){let V=c[Z>=0?Z:0];if(V)console.log(JSON.stringify(V.messages,null,2)),process.exit(0);else console.error("No log found at index",Z),process.exit(1)}b(c)}).catch((c)=>{if(DG(c),Z!==void 0)process.exit(1);else I.unmount?.()})},[I,G,Z]);function Y(c){let V=l[c];if(!V)return;N(!0),setTimeout(()=>{console.log(JSON.stringify(V.messages,null,2)),process.exit(0)},100)}if(Z!==void 0)return null;if(W)return null;return Gk.default.createElement(QmI,{logs:l,onSelect:Y})}var izc=hI(c1I(),1);class T8I{constructor(I){this._server=I}requestStream(I,G,Z){return this._server.requestStream(I,G,Z)}async getTask(I,G){return this._server.getTask({taskId:I},G)}async getTaskResult(I,G,Z){return this._server.getTaskResult({taskId:I},G,Z)}async listTasks(I,G){return this._server.listTasks(I?{cursor:I}:void 0,G)}async cancelTask(I,G){return this._server.cancelTask({taskId:I},G)}}class S8I extends bs{constructor(I,G){super(G);if(this._serverInfo=I,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Gs.options.map((Z,l)=>[Z,l])),this.isMessageIgnored=(Z,l)=>{let b=this._loggingLevels.get(l);return b?this.LOG_LEVEL_SEVERITY.get(Z)<this.LOG_LEVEL_SEVERITY.get(b):!1},this._capabilities=G?.capabilities??{},this._instructions=G?.instructions,this._jsonSchemaValidator=G?.jsonSchemaValidator??new gs,this.setRequestHandler(_OI,(Z)=>this._oninitialize(Z)),this.setNotificationHandler(X2I,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(cMI,async(Z,l)=>{let b=l.sessionId||l.requestInfo?.headers["mcp-session-id"]||void 0,{level:W}=Z.params,N=Gs.safeParse(W);if(N.success)this._loggingLevels.set(b,N.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new T8I(this)};return this._experimental}registerCapabilities(I){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=v2I(this._capabilities,I)}setRequestHandler(I,G){let l=KD(I)?.method;if(!l)throw Error("Schema is missing a method literal");let b;if(v9(l)){let N=l;b=N._zod?.def?.value??N.value}else{let N=l;b=N._def?.value??N.value}if(typeof b!=="string")throw Error("Schema method literal must be a string");if(b==="tools/call"){let N=async(Y,c)=>{let V=cF(Is,Y);if(!V.success){let R=V.error instanceof Error?V.error.message:String(V.error);throw new lb(Ob.InvalidParams,`Invalid tools/call request: ${R}`)}let{params:d}=V.data,m=await Promise.resolve(G(Y,c));if(d.task){let R=cF(xC,m);if(!R.success){let H=R.error instanceof Error?R.error.message:String(R.error);throw new lb(Ob.InvalidParams,`Invalid task creation result: ${H}`)}return R.data}let X=cF(CE,m);if(!X.success){let R=X.error instanceof Error?X.error.message:String(X.error);throw new lb(Ob.InvalidParams,`Invalid tools/call result: ${R}`)}return X.data};return super.setRequestHandler(I,N)}return super.setRequestHandler(I,G)}assertCapabilityForMethod(I){switch(I){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${I})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${I})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${I})`);break;case"ping":break}}assertNotificationCapability(I){switch(I){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${I})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${I})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${I})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${I})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${I})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(I){if(!this._capabilities)return;switch(I){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${I})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${I})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${I})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${I})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${I})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${I})`);break;case"ping":case"initialize":break}}assertTaskCapability(I){c0I(this._clientCapabilities?.tasks?.requests,I,"Client")}assertTaskHandlerCapability(I){if(!this._capabilities)return;Y0I(this._capabilities.tasks?.requests,I,"Server")}async _oninitialize(I){let G=I.params.protocolVersion;return this._clientCapabilities=I.params.capabilities,this._clientVersion=I.params.clientInfo,{protocolVersion:V2I.includes(G)?G:C9,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"},UC)}async createMessage(I,G){if(I.tools||I.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if(I.messages.length>0){let Z=I.messages[I.messages.length-1],l=Array.isArray(Z.content)?Z.content:[Z.content],b=l.some((c)=>c.type==="tool_result"),W=I.messages.length>1?I.messages[I.messages.length-2]:void 0,N=W?Array.isArray(W.content)?W.content:[W.content]:[],Y=N.some((c)=>c.type==="tool_use");if(b){if(l.some((c)=>c.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!Y)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(Y){let c=new Set(N.filter((d)=>d.type==="tool_use").map((d)=>d.id)),V=new Set(l.filter((d)=>d.type==="tool_result").map((d)=>d.toolUseId));if(c.size!==V.size||![...c].every((d)=>V.has(d)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if(I.tools)return this.request({method:"sampling/createMessage",params:I},ls,G);return this.request({method:"sampling/createMessage",params:I},Zs,G)}async elicitInput(I,G){switch(I.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let l=I;return this.request({method:"elicitation/create",params:l},qD,G)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let l=I.mode==="form"?I:{...I,mode:"form"},b=await this.request({method:"elicitation/create",params:l},qD,G);if(b.action==="accept"&&b.content&&l.requestedSchema)try{let N=this._jsonSchemaValidator.getValidator(l.requestedSchema)(b.content);if(!N.valid)throw new lb(Ob.InvalidParams,`Elicitation response content does not match requested schema: ${N.errorMessage}`)}catch(W){if(W instanceof lb)throw W;throw new lb(Ob.InternalError,`Error validating elicitation response: ${W instanceof Error?W.message:String(W)}`)}return b}}}createElicitationCompletionNotifier(I,G){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:I}},G)}async listRoots(I,G){return this.request({method:"roots/list",params:I},QMI,G)}async sendLoggingMessage(I,G){if(this._capabilities.logging){if(!this.isMessageIgnored(I.level,G))return this.notification({method:"notifications/message",params:I})}}async sendResourceUpdated(I){return this.notification({method:"notifications/resources/updated",params:I})}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 Kbl from"node:process";class i8I{constructor(I=Kbl.stdin,G=Kbl.stdout){this._stdin=I,this._stdout=G,this._readBuffer=new as,this._started=!1,this._ondata=(Z)=>{this._readBuffer.append(Z),this.processReadBuffer()},this._onerror=(Z)=>{this.onerror?.(Z)}}async start(){if(this._started)throw 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(){while(!0)try{let I=this._readBuffer.readMessage();if(I===null)break;this.onmessage?.(I)}catch(I){this.onerror?.(I)}}async close(){if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send(I){return new Promise((G)=>{let Z=Q0I(I);if(this._stdout.write(Z))G();else this._stdout.once("drain",G)})}}var _HN={readFileTimestamps:{}},sHN=[mmI],P8I=[G3,dN,em,h1,rm,L1,F0,YF];async function Dbl(I){await LA(I);let G=new S8I({name:"claude/tengu",version:"1.3.0"},{capabilities:{tools:{}}});G.setRequestHandler(NMI,async()=>{return{tools:await Promise.all(P8I.map(async(b)=>({name:b.name,description:await b.description({}),inputSchema:Y9(b.inputSchema)})))}}),G.setRequestHandler(Is,async(l)=>{let{name:b,arguments:W}=l.params,N=P8I.find((Y)=>Y.name===b);if(!N)throw Error(`Tool ${b} not found`);try{if(!await N.isEnabled())throw Error(`Tool ${b} is not enabled`);let Y=await qV(),c={abortController:new AbortController,options:{commands:sHN,tools:P8I,slowAndCapableModel:Y,forkNumber:0,messageLogName:"unused",maxThinkingTokens:0},messageId:void 0,readFileTimestamps:_HN.readFileTimestamps},V=await N.validateInput?.(W??{},c);if(V&&!V.result)throw Error(`Tool ${b} input is invalid: ${V.message}`);let d=N.call(W??{},c,f9),m=await J9(d);if(m.type!=="result")throw Error(`Tool ${b} did not return a result`);let X=m.resultForAssistant;return{content:Array.isArray(X)?X.map((R)=>({type:"text",text:typeof R==="string"?R:typeof R==="object"&&R!==null&&("text"in R)&&typeof R.text==="string"?R.text:JSON.stringify(R)})):[{type:"text",text:typeof X==="string"?X:JSON.stringify(X)}]}}catch(Y){return DG(Y),{isError:!0,content:[{type:"text",text:`Error: ${Y instanceof Error?Y.message:String(Y)}`}]}}});async function Z(){let l=new i8I;await G.connect(l)}return await Z()}import{promises as nbl}from"fs";import{join as fHN}from"path";var $HN=2592000000;function oHN(I){let G=I.split(".")[0].replace(/T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z/,"T$1:$2:$3.$4Z");return new Date(G)}async function tHN(){let I=UX.messages(),G=UX.errors(),Z=new Date(Date.now()-$HN),l={messages:0,errors:0};for(let b of[I,G])try{let W=await nbl.readdir(b);for(let N of W)try{if(oHN(N)<Z)if(await nbl.unlink(fHN(b,N)),b===I)l.messages++;else l.errors++}catch(Y){DG(`Failed to process file ${N}: ${Y instanceof Error?Y.message:String(Y)}`)}}catch(W){if(W instanceof Error&&"code"in W&&W.code!=="ENOENT")DG(`Failed to cleanup directory ${b}: ${W instanceof Error?W.message:String(W)}`)}return l}function jbl(){setImmediate(tHN).unref()}var qbl={getCurrentProjectConfig:ab,saveCurrentProjectConfig:HN};function Tbl(I,G=qbl){let Z=G.getCurrentProjectConfig();return`Allowed tools for ${I}:
|
|
2655
|
+
`).length,truncatedContent:b}}function iHN(I){if(!I.isAlive)return"session ended";if(I.isAttached)return"attached";if(I.hasTarget)return"target loaded";return"session active"}function j8I(I){return I||mj()}var Obl={name:"Debugger",async description({action:I,command:G,debugger:Z}){let l=(Z||mj()).toUpperCase();switch(I){case"launch":return`Launch ${l} debugger with executable`;case"attach":return`Attach ${l} to running process`;case"command":return`${l}: ${G||"execute command"}`;case"detach":return`Detach ${l} from process`;case"stop":return`Stop ${l} session`;default:return`${l} debugger operation`}},async prompt(){return Ubl},isReadOnly(){return!1},inputSchema:THN,userFacingName({action:I,debugger:G}={}){let Z=(G||mj()).toUpperCase();if(I)return`${Z} (${I})`;return"Debugger"},async isEnabled(){try{return hXI("which lldb",{stdio:"ignore"}),!0}catch{}try{return hXI("which gdb",{stdio:"ignore"}),!0}catch{return!1}},needsPermissions(){return!0},async validateInput({action:I,executable:G,pid:Z,command:l,debugger:b}){let W=j8I(b),N=HXI(W);switch(I){case"launch":{if(!G)return{result:!1,message:"executable is required for launch action"};if(!jHN(G))return{result:!1,message:`Executable not found: ${G}`};try{hXI(`which ${W}`,{stdio:"ignore"})}catch{return{result:!1,message:`${W} is not installed. Install it or use a different debugger.`}}return{result:!0}}case"attach":{if(Z===void 0||Z===null)return{result:!1,message:"pid is required for attach action"};if(!Number.isInteger(Z)||Z<=0)return{result:!1,message:`Invalid PID: ${Z}. Must be a positive integer.`};try{hXI(`which ${W}`,{stdio:"ignore"})}catch{return{result:!1,message:`${W} is not installed. Install it or use a different debugger.`}}return{result:!0}}case"command":{if(!l)return{result:!1,message:"command is required for command action"};if(N.isBlockedCommand(l))return{result:!1,message:"Command is blocked for security reasons. Use the Bash tool for shell commands."};if(!TR.getInstance(W).isAlive)return{result:!1,message:`No active ${W} session. Use launch or attach first.`};return{result:!0}}case"detach":case"stop":return{result:!0};default:return{result:!1,message:`Unknown action: ${I}`}}},renderToolUseMessage({action:I,executable:G,pid:Z,command:l,debugger:b}){let W=j8I(b);switch(I){case"launch":return`${W} launch ${G}${l?` ${l}`:""}`;case"attach":return`${W} attach --pid ${Z}`;case"command":return`(${W}) ${l}`;case"detach":return`${W} detach`;case"stop":return`${W} quit`;default:return`${W} ${I}`}},renderToolUseRejectedMessage(){return L$.createElement(cN,null)},renderToolResultMessage(I,{verbose:G}){return L$.createElement(xbl,{content:I,verbose:G})},renderResultForAssistant({output:I,stopReason:G,exitCode:Z,sessionStatus:l,interrupted:b}){let W=[];if(I.trim())W.push(I.trim());let N=[];if(G)N.push(`Stop reason: ${G}`);if(Z!==void 0)N.push(`Exit code: ${Z}`);if(l)N.push(`Session: ${l}`);if(b)N.push("Command was interrupted");if(N.length>0)W.push(`[${N.join(" | ")}]`);return W.join(qHN)||"(No output)"},async*call({action:I,executable:G,args:Z,pid:l,command:b,timeout:W,debugger:N},{abortController:Y}){let c=j8I(N),V=TR.getInstance(c),d="",m,X,R=!1;try{switch(I){case"launch":{let g=await V.launch(G,Z);d=g.output,m=g.stopReason,R=g.interrupted;break}case"attach":{let g=await V.attach(l);d=g.output,m=g.stopReason,R=g.interrupted;break}case"command":{let g=await V.exec(b,Y.signal,W);d=g.output,m=g.stopReason,X=g.exitCode,R=g.interrupted;break}case"detach":{let g=await V.detach();d=g.output,R=g.interrupted;break}case"stop":{await V.stop(),d=`${c.toUpperCase()} session terminated.`;break}}}catch(g){DG(g),d=`Error: ${g instanceof Error?g.message:String(g)}`}let H=iHN(V),{totalLines:w,truncatedContent:A}=SHN(d.trim()),y={output:A,outputLines:w,stopReason:m,exitCode:X,sessionStatus:H,interrupted:R};yield{type:"result",resultForAssistant:this.renderResultForAssistant(y),data:y}}};var cQI=()=>{return[G3,dN,HtZ,rm,L1,YF,h1,em,F0,R9,ZX,EtZ,ptZ,BtZ,BB,VGl,zbl,Obl]},r9=Zb(async(I)=>{let G=Sw()?[]:await x0I(),Z=[...cQI(),...G];if(I)Z.push(wtZ);if(!Sw())Z.push(Ef);let l=await Promise.all(Z.map((b)=>b.isEnabled()));return Z.filter((b,W)=>l[W])}),XtZ=Zb(async()=>{let I=cQI().filter((Z)=>Z.isReadOnly()),G=await Promise.all(I.map((Z)=>Z.isEnabled()));return I.filter((Z,l)=>G[l])});import{cwd as SR}from"process";var e0=hI(YG(),1);import{homedir as PHN}from"os";function Mbl({onDone:I}){let G=XG();e0.default.useEffect(()=>{wG("trust_dialog_shown",{})},[]);function Z(b){let W=ab();switch(b){case"yes":{let N=PHN()===XZ();if(wG("trust_dialog_accept",{isHomeDir:String(N)}),!N)HN({...W,hasTrustDialogAccepted:!0});I();break}case"no":{process.exit(1);break}}}let l=EY(()=>process.exit(0));return zb((b,W)=>{if(W.escape){process.exit(0);return}}),e0.default.createElement(e0.default.Fragment,null,e0.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:G.warning},e0.default.createElement(K,{bold:!0,color:G.warning},"Do you trust the files in this folder?"),e0.default.createElement(K,{bold:!0},process.cwd()),e0.default.createElement(GI,{flexDirection:"column",gap:1},e0.default.createElement(K,null,hN," may read files in this folder. Reading untrusted files may lead to ",hN," ","to behave in an unexpected ways."),e0.default.createElement(K,null,"With your permission ",hN," may execute files in this folder. Executing untrusted code is unsafe."),e0.default.createElement(ey,{url:"https://docs.anthropic.com/s/claude-code-security"})),e0.default.createElement(jY,{options:[{label:"Yes, proceed",value:"yes"},{label:"No, exit",value:"no"}],onChange:(b)=>Z(b)})),e0.default.createElement(GI,{marginLeft:3},e0.default.createElement(K,{dimColor:!0},l.pending?e0.default.createElement(e0.default.Fragment,null,"Press ",l.keyName," again to exit"):e0.default.createElement(e0.default.Fragment,null,"Enter to confirm · Esc to exit"))))}var Gk=hI(YG(),1);function q8I({context:I,type:G,logNumber:Z}){let[l,b]=Gk.useState([]),[W,N]=Gk.useState(!1);Gk.useEffect(()=>{ZO(G==="messages"?UX.messages():UX.errors()).then((c)=>{if(Z!==void 0){let V=c[Z>=0?Z:0];if(V)console.log(JSON.stringify(V.messages,null,2)),process.exit(0);else console.error("No log found at index",Z),process.exit(1)}b(c)}).catch((c)=>{if(DG(c),Z!==void 0)process.exit(1);else I.unmount?.()})},[I,G,Z]);function Y(c){let V=l[c];if(!V)return;N(!0),setTimeout(()=>{console.log(JSON.stringify(V.messages,null,2)),process.exit(0)},100)}if(Z!==void 0)return null;if(W)return null;return Gk.default.createElement(QmI,{logs:l,onSelect:Y})}var izc=hI(c1I(),1);class T8I{constructor(I){this._server=I}requestStream(I,G,Z){return this._server.requestStream(I,G,Z)}async getTask(I,G){return this._server.getTask({taskId:I},G)}async getTaskResult(I,G,Z){return this._server.getTaskResult({taskId:I},G,Z)}async listTasks(I,G){return this._server.listTasks(I?{cursor:I}:void 0,G)}async cancelTask(I,G){return this._server.cancelTask({taskId:I},G)}}class S8I extends bs{constructor(I,G){super(G);if(this._serverInfo=I,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Gs.options.map((Z,l)=>[Z,l])),this.isMessageIgnored=(Z,l)=>{let b=this._loggingLevels.get(l);return b?this.LOG_LEVEL_SEVERITY.get(Z)<this.LOG_LEVEL_SEVERITY.get(b):!1},this._capabilities=G?.capabilities??{},this._instructions=G?.instructions,this._jsonSchemaValidator=G?.jsonSchemaValidator??new gs,this.setRequestHandler(_OI,(Z)=>this._oninitialize(Z)),this.setNotificationHandler(X2I,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(cMI,async(Z,l)=>{let b=l.sessionId||l.requestInfo?.headers["mcp-session-id"]||void 0,{level:W}=Z.params,N=Gs.safeParse(W);if(N.success)this._loggingLevels.set(b,N.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new T8I(this)};return this._experimental}registerCapabilities(I){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=v2I(this._capabilities,I)}setRequestHandler(I,G){let l=KD(I)?.method;if(!l)throw Error("Schema is missing a method literal");let b;if(v9(l)){let N=l;b=N._zod?.def?.value??N.value}else{let N=l;b=N._def?.value??N.value}if(typeof b!=="string")throw Error("Schema method literal must be a string");if(b==="tools/call"){let N=async(Y,c)=>{let V=cF(Is,Y);if(!V.success){let R=V.error instanceof Error?V.error.message:String(V.error);throw new lb(Ob.InvalidParams,`Invalid tools/call request: ${R}`)}let{params:d}=V.data,m=await Promise.resolve(G(Y,c));if(d.task){let R=cF(xC,m);if(!R.success){let H=R.error instanceof Error?R.error.message:String(R.error);throw new lb(Ob.InvalidParams,`Invalid task creation result: ${H}`)}return R.data}let X=cF(CE,m);if(!X.success){let R=X.error instanceof Error?X.error.message:String(X.error);throw new lb(Ob.InvalidParams,`Invalid tools/call result: ${R}`)}return X.data};return super.setRequestHandler(I,N)}return super.setRequestHandler(I,G)}assertCapabilityForMethod(I){switch(I){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${I})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${I})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${I})`);break;case"ping":break}}assertNotificationCapability(I){switch(I){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${I})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${I})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${I})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${I})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${I})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(I){if(!this._capabilities)return;switch(I){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${I})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${I})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${I})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${I})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${I})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${I})`);break;case"ping":case"initialize":break}}assertTaskCapability(I){c0I(this._clientCapabilities?.tasks?.requests,I,"Client")}assertTaskHandlerCapability(I){if(!this._capabilities)return;Y0I(this._capabilities.tasks?.requests,I,"Server")}async _oninitialize(I){let G=I.params.protocolVersion;return this._clientCapabilities=I.params.capabilities,this._clientVersion=I.params.clientInfo,{protocolVersion:V2I.includes(G)?G:C9,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"},UC)}async createMessage(I,G){if(I.tools||I.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if(I.messages.length>0){let Z=I.messages[I.messages.length-1],l=Array.isArray(Z.content)?Z.content:[Z.content],b=l.some((c)=>c.type==="tool_result"),W=I.messages.length>1?I.messages[I.messages.length-2]:void 0,N=W?Array.isArray(W.content)?W.content:[W.content]:[],Y=N.some((c)=>c.type==="tool_use");if(b){if(l.some((c)=>c.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!Y)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(Y){let c=new Set(N.filter((d)=>d.type==="tool_use").map((d)=>d.id)),V=new Set(l.filter((d)=>d.type==="tool_result").map((d)=>d.toolUseId));if(c.size!==V.size||![...c].every((d)=>V.has(d)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if(I.tools)return this.request({method:"sampling/createMessage",params:I},ls,G);return this.request({method:"sampling/createMessage",params:I},Zs,G)}async elicitInput(I,G){switch(I.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let l=I;return this.request({method:"elicitation/create",params:l},qD,G)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let l=I.mode==="form"?I:{...I,mode:"form"},b=await this.request({method:"elicitation/create",params:l},qD,G);if(b.action==="accept"&&b.content&&l.requestedSchema)try{let N=this._jsonSchemaValidator.getValidator(l.requestedSchema)(b.content);if(!N.valid)throw new lb(Ob.InvalidParams,`Elicitation response content does not match requested schema: ${N.errorMessage}`)}catch(W){if(W instanceof lb)throw W;throw new lb(Ob.InternalError,`Error validating elicitation response: ${W instanceof Error?W.message:String(W)}`)}return b}}}createElicitationCompletionNotifier(I,G){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:I}},G)}async listRoots(I,G){return this.request({method:"roots/list",params:I},QMI,G)}async sendLoggingMessage(I,G){if(this._capabilities.logging){if(!this.isMessageIgnored(I.level,G))return this.notification({method:"notifications/message",params:I})}}async sendResourceUpdated(I){return this.notification({method:"notifications/resources/updated",params:I})}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 Kbl from"node:process";class i8I{constructor(I=Kbl.stdin,G=Kbl.stdout){this._stdin=I,this._stdout=G,this._readBuffer=new as,this._started=!1,this._ondata=(Z)=>{this._readBuffer.append(Z),this.processReadBuffer()},this._onerror=(Z)=>{this.onerror?.(Z)}}async start(){if(this._started)throw 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(){while(!0)try{let I=this._readBuffer.readMessage();if(I===null)break;this.onmessage?.(I)}catch(I){this.onerror?.(I)}}async close(){if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send(I){return new Promise((G)=>{let Z=Q0I(I);if(this._stdout.write(Z))G();else this._stdout.once("drain",G)})}}var _HN={readFileTimestamps:{}},sHN=[mmI],P8I=[G3,dN,em,h1,rm,L1,F0,YF];async function Dbl(I){await LA(I);let G=new S8I({name:"claude/tengu",version:"1.3.1"},{capabilities:{tools:{}}});G.setRequestHandler(NMI,async()=>{return{tools:await Promise.all(P8I.map(async(b)=>({name:b.name,description:await b.description({}),inputSchema:Y9(b.inputSchema)})))}}),G.setRequestHandler(Is,async(l)=>{let{name:b,arguments:W}=l.params,N=P8I.find((Y)=>Y.name===b);if(!N)throw Error(`Tool ${b} not found`);try{if(!await N.isEnabled())throw Error(`Tool ${b} is not enabled`);let Y=await qV(),c={abortController:new AbortController,options:{commands:sHN,tools:P8I,slowAndCapableModel:Y,forkNumber:0,messageLogName:"unused",maxThinkingTokens:0},messageId:void 0,readFileTimestamps:_HN.readFileTimestamps},V=await N.validateInput?.(W??{},c);if(V&&!V.result)throw Error(`Tool ${b} input is invalid: ${V.message}`);let d=N.call(W??{},c,f9),m=await J9(d);if(m.type!=="result")throw Error(`Tool ${b} did not return a result`);let X=m.resultForAssistant;return{content:Array.isArray(X)?X.map((R)=>({type:"text",text:typeof R==="string"?R:typeof R==="object"&&R!==null&&("text"in R)&&typeof R.text==="string"?R.text:JSON.stringify(R)})):[{type:"text",text:typeof X==="string"?X:JSON.stringify(X)}]}}catch(Y){return DG(Y),{isError:!0,content:[{type:"text",text:`Error: ${Y instanceof Error?Y.message:String(Y)}`}]}}});async function Z(){let l=new i8I;await G.connect(l)}return await Z()}import{promises as nbl}from"fs";import{join as fHN}from"path";var $HN=2592000000;function oHN(I){let G=I.split(".")[0].replace(/T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z/,"T$1:$2:$3.$4Z");return new Date(G)}async function tHN(){let I=UX.messages(),G=UX.errors(),Z=new Date(Date.now()-$HN),l={messages:0,errors:0};for(let b of[I,G])try{let W=await nbl.readdir(b);for(let N of W)try{if(oHN(N)<Z)if(await nbl.unlink(fHN(b,N)),b===I)l.messages++;else l.errors++}catch(Y){DG(`Failed to process file ${N}: ${Y instanceof Error?Y.message:String(Y)}`)}}catch(W){if(W instanceof Error&&"code"in W&&W.code!=="ENOENT")DG(`Failed to cleanup directory ${b}: ${W instanceof Error?W.message:String(W)}`)}return l}function jbl(){setImmediate(tHN).unref()}var qbl={getCurrentProjectConfig:ab,saveCurrentProjectConfig:HN};function Tbl(I,G=qbl){let Z=G.getCurrentProjectConfig();return`Allowed tools for ${I}:
|
|
2656
2656
|
${Z.allowedTools.join(`
|
|
2657
|
-
`)}`}function Sbl(I,G=qbl){let Z=G.getCurrentProjectConfig(),l=Z.allowedTools.length,b=Z.allowedTools.filter((W)=>W!==I);if(l!==b.length)return Z.allowedTools=b,G.saveCurrentProjectConfig(Z),{success:!0,message:`Removed ${I} from the list of approved tools`};else return{success:!1,message:`${I} was not in the list of approved tools`}}var _8I=hI(YG(),1);var hF=hI(YG(),1);var Qj=hI(YG(),1);function wXI(){return Qj.default.createElement(Qj.default.Fragment,null,Qj.default.createElement(K,null,"MCP servers provide additional functionality to Claude. They may execute code, make network requests, or access system resources via tool calls. All tool calls will require your explicit approval before execution. For more information, see"," ",Qj.default.createElement(ry,{url:"https://docs.anthropic.com/s/claude-code-mcp"},"MCP documentation")),Qj.default.createElement(K,{dimColor:!0},"Remember: You can always change these choices later by running `claude mcp reset-project-choices`"))}function ibl({serverNames:I,onDone:G}){let Z=XG();function l(W){let N=ab();if(!N.approvedMcpJsonServers)N.approvedMcpJsonServers=[];if(!N.rejectedMcpJsonServers)N.rejectedMcpJsonServers=[];let[Y,c]=DJI(I,(V)=>W.includes(V));N.approvedMcpJsonServers.push(...Y),N.rejectedMcpJsonServers.push(...c),HN(N),G()}let b=EY(()=>process.exit());return zb((W,N)=>{if(N.escape){let Y=ab();if(!Y.rejectedMcpJsonServers)Y.rejectedMcpJsonServers=[];for(let c of I)if(!Y.rejectedMcpJsonServers.includes(c))Y.rejectedMcpJsonServers.push(c);HN(Y),G();return}}),hF.default.createElement(hF.default.Fragment,null,hF.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Z.warning},hF.default.createElement(K,{bold:!0,color:Z.warning},"New MCP Servers Detected"),hF.default.createElement(K,null,"This project contains a .mcp.json file with ",I.length," MCP servers that require your approval."),hF.default.createElement(wXI,null),hF.default.createElement(K,null,"Please select the servers you want to enable:"),hF.default.createElement(CUG,{options:I.map((W)=>({label:W,value:W})),defaultValue:I,onSubmit:l})),hF.default.createElement(GI,{marginLeft:3},hF.default.createElement(K,{dimColor:!0},b.pending?hF.default.createElement(hF.default.Fragment,null,"Press ",b.keyName," again to exit"):hF.default.createElement(hF.default.Fragment,null,"Space to select · Enter to confirm · Esc to reject all"))))}var YX=hI(YG(),1);function Pbl({serverName:I,onDone:G}){let Z=XG();function l(W){let N=ab();switch(W){case"yes":{if(!N.approvedMcpJsonServers)N.approvedMcpJsonServers=[];if(!N.approvedMcpJsonServers.includes(I))N.approvedMcpJsonServers.push(I);HN(N),G();break}case"no":{if(!N.rejectedMcpJsonServers)N.rejectedMcpJsonServers=[];if(!N.rejectedMcpJsonServers.includes(I))N.rejectedMcpJsonServers.push(I);HN(N),G();break}}}let b=EY(()=>process.exit(0));return zb((W,N)=>{if(N.escape){G();return}}),YX.default.createElement(YX.default.Fragment,null,YX.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Z.warning},YX.default.createElement(K,{bold:!0,color:Z.warning},"New MCP Server Detected"),YX.default.createElement(K,null,"This project contains a .mcp.json file with an MCP server that requires your approval:"),YX.default.createElement(K,{bold:!0},I),YX.default.createElement(wXI,null),YX.default.createElement(K,null,"Do you want to approve this MCP server?"),YX.default.createElement(jY,{options:[{label:"Yes, approve this server",value:"yes"},{label:"No, reject this server",value:"no"}],onChange:(W)=>l(W)})),YX.default.createElement(GI,{marginLeft:3},YX.default.createElement(K,{dimColor:!0},b.pending?YX.default.createElement(YX.default.Fragment,null,"Press ",b.keyName," again to exit"):YX.default.createElement(YX.default.Fragment,null,"Enter to confirm · Esc to reject"))))}async function _bl(){let I=BO(),G=Object.keys(I).filter((Z)=>Y6I(Z)==="pending");if(G.length===0)return;await new Promise((Z)=>{let l=()=>{process.stdout.write("\x1B[2J\x1B[3J\x1B[H",()=>{Z()})};if(G.length===1&&G[0]!==void 0){let b=rd(_8I.default.createElement(Pbl,{serverName:G[0],onDone:()=>{b.unmount?.(),l()}}),{exitOnCtrlC:!1})}else{let b=rd(_8I.default.createElement(ibl,{serverNames:G,onDone:()=>{b.unmount?.(),l()}}),{exitOnCtrlC:!1})}})}var wF=hI(YG(),1);import{writeFileSync as rHN}from"fs";function eHN({filePath:I,errorDescription:G,onExit:Z,onReset:l}){let b=XG();zb((Y,c)=>{if(c.escape)Z()});let W=EY(()=>process.exit(0)),N=(Y)=>{if(Y==="exit")Z();else l()};return wF.default.createElement(wF.default.Fragment,null,wF.default.createElement(GI,{flexDirection:"column",borderColor:b.error,borderStyle:"round",padding:1,width:70,gap:1},wF.default.createElement(K,{bold:!0},"Configuration Error"),wF.default.createElement(GI,{flexDirection:"column",gap:1},wF.default.createElement(K,null,"The configuration file at ",wF.default.createElement(K,{bold:!0},I)," contains invalid JSON."),wF.default.createElement(K,null,G)),wF.default.createElement(GI,{flexDirection:"column"},wF.default.createElement(K,{bold:!0},"Choose an option:"),wF.default.createElement(jY,{options:[{label:"Exit and fix manually",value:"exit"},{label:"Reset with default configuration",value:"reset"}],onChange:N}))),W.pending?wF.default.createElement(K,{dimColor:!0},"Press ",W.keyName," again to exit"):wF.default.createElement(ed,null))}function sbl({error:I}){return new Promise((G)=>{rd(wF.default.createElement(eHN,{filePath:I.filePath,errorDescription:I.message,onExit:()=>{G(),process.exit(1)},onReset:()=>{rHN(I.filePath,JSON.stringify(I.defaultConfig,null,2)),G(),process.exit(0)}}),{exitOnCtrlC:!1})})}saG();function bhN(){let I=fZ();YW({...I,hasCompletedOnboarding:!0,lastOnboardingVersion:"1.3.
|
|
2657
|
+
`)}`}function Sbl(I,G=qbl){let Z=G.getCurrentProjectConfig(),l=Z.allowedTools.length,b=Z.allowedTools.filter((W)=>W!==I);if(l!==b.length)return Z.allowedTools=b,G.saveCurrentProjectConfig(Z),{success:!0,message:`Removed ${I} from the list of approved tools`};else return{success:!1,message:`${I} was not in the list of approved tools`}}var _8I=hI(YG(),1);var hF=hI(YG(),1);var Qj=hI(YG(),1);function wXI(){return Qj.default.createElement(Qj.default.Fragment,null,Qj.default.createElement(K,null,"MCP servers provide additional functionality to Claude. They may execute code, make network requests, or access system resources via tool calls. All tool calls will require your explicit approval before execution. For more information, see"," ",Qj.default.createElement(ry,{url:"https://docs.anthropic.com/s/claude-code-mcp"},"MCP documentation")),Qj.default.createElement(K,{dimColor:!0},"Remember: You can always change these choices later by running `claude mcp reset-project-choices`"))}function ibl({serverNames:I,onDone:G}){let Z=XG();function l(W){let N=ab();if(!N.approvedMcpJsonServers)N.approvedMcpJsonServers=[];if(!N.rejectedMcpJsonServers)N.rejectedMcpJsonServers=[];let[Y,c]=DJI(I,(V)=>W.includes(V));N.approvedMcpJsonServers.push(...Y),N.rejectedMcpJsonServers.push(...c),HN(N),G()}let b=EY(()=>process.exit());return zb((W,N)=>{if(N.escape){let Y=ab();if(!Y.rejectedMcpJsonServers)Y.rejectedMcpJsonServers=[];for(let c of I)if(!Y.rejectedMcpJsonServers.includes(c))Y.rejectedMcpJsonServers.push(c);HN(Y),G();return}}),hF.default.createElement(hF.default.Fragment,null,hF.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Z.warning},hF.default.createElement(K,{bold:!0,color:Z.warning},"New MCP Servers Detected"),hF.default.createElement(K,null,"This project contains a .mcp.json file with ",I.length," MCP servers that require your approval."),hF.default.createElement(wXI,null),hF.default.createElement(K,null,"Please select the servers you want to enable:"),hF.default.createElement(CUG,{options:I.map((W)=>({label:W,value:W})),defaultValue:I,onSubmit:l})),hF.default.createElement(GI,{marginLeft:3},hF.default.createElement(K,{dimColor:!0},b.pending?hF.default.createElement(hF.default.Fragment,null,"Press ",b.keyName," again to exit"):hF.default.createElement(hF.default.Fragment,null,"Space to select · Enter to confirm · Esc to reject all"))))}var YX=hI(YG(),1);function Pbl({serverName:I,onDone:G}){let Z=XG();function l(W){let N=ab();switch(W){case"yes":{if(!N.approvedMcpJsonServers)N.approvedMcpJsonServers=[];if(!N.approvedMcpJsonServers.includes(I))N.approvedMcpJsonServers.push(I);HN(N),G();break}case"no":{if(!N.rejectedMcpJsonServers)N.rejectedMcpJsonServers=[];if(!N.rejectedMcpJsonServers.includes(I))N.rejectedMcpJsonServers.push(I);HN(N),G();break}}}let b=EY(()=>process.exit(0));return zb((W,N)=>{if(N.escape){G();return}}),YX.default.createElement(YX.default.Fragment,null,YX.default.createElement(GI,{flexDirection:"column",gap:1,padding:1,borderStyle:"round",borderColor:Z.warning},YX.default.createElement(K,{bold:!0,color:Z.warning},"New MCP Server Detected"),YX.default.createElement(K,null,"This project contains a .mcp.json file with an MCP server that requires your approval:"),YX.default.createElement(K,{bold:!0},I),YX.default.createElement(wXI,null),YX.default.createElement(K,null,"Do you want to approve this MCP server?"),YX.default.createElement(jY,{options:[{label:"Yes, approve this server",value:"yes"},{label:"No, reject this server",value:"no"}],onChange:(W)=>l(W)})),YX.default.createElement(GI,{marginLeft:3},YX.default.createElement(K,{dimColor:!0},b.pending?YX.default.createElement(YX.default.Fragment,null,"Press ",b.keyName," again to exit"):YX.default.createElement(YX.default.Fragment,null,"Enter to confirm · Esc to reject"))))}async function _bl(){let I=BO(),G=Object.keys(I).filter((Z)=>Y6I(Z)==="pending");if(G.length===0)return;await new Promise((Z)=>{let l=()=>{process.stdout.write("\x1B[2J\x1B[3J\x1B[H",()=>{Z()})};if(G.length===1&&G[0]!==void 0){let b=rd(_8I.default.createElement(Pbl,{serverName:G[0],onDone:()=>{b.unmount?.(),l()}}),{exitOnCtrlC:!1})}else{let b=rd(_8I.default.createElement(ibl,{serverNames:G,onDone:()=>{b.unmount?.(),l()}}),{exitOnCtrlC:!1})}})}var wF=hI(YG(),1);import{writeFileSync as rHN}from"fs";function eHN({filePath:I,errorDescription:G,onExit:Z,onReset:l}){let b=XG();zb((Y,c)=>{if(c.escape)Z()});let W=EY(()=>process.exit(0)),N=(Y)=>{if(Y==="exit")Z();else l()};return wF.default.createElement(wF.default.Fragment,null,wF.default.createElement(GI,{flexDirection:"column",borderColor:b.error,borderStyle:"round",padding:1,width:70,gap:1},wF.default.createElement(K,{bold:!0},"Configuration Error"),wF.default.createElement(GI,{flexDirection:"column",gap:1},wF.default.createElement(K,null,"The configuration file at ",wF.default.createElement(K,{bold:!0},I)," contains invalid JSON."),wF.default.createElement(K,null,G)),wF.default.createElement(GI,{flexDirection:"column"},wF.default.createElement(K,{bold:!0},"Choose an option:"),wF.default.createElement(jY,{options:[{label:"Exit and fix manually",value:"exit"},{label:"Reset with default configuration",value:"reset"}],onChange:N}))),W.pending?wF.default.createElement(K,{dimColor:!0},"Press ",W.keyName," again to exit"):wF.default.createElement(ed,null))}function sbl({error:I}){return new Promise((G)=>{rd(wF.default.createElement(eHN,{filePath:I.filePath,errorDescription:I.message,onExit:()=>{G(),process.exit(1)},onReset:()=>{rHN(I.filePath,JSON.stringify(I.defaultConfig,null,2)),G(),process.exit(0)}}),{exitOnCtrlC:!1})})}saG();function bhN(){let I=fZ();YW({...I,hasCompletedOnboarding:!0,lastOnboardingVersion:"1.3.1"})}async function WhN(I,G){let Z=fZ();if(!Z.theme||!Z.hasCompletedOnboarding)await vV(),await new Promise((l)=>{rd(vJ.default.createElement(WmI,{onDone:async()=>{bhN(),await vV(),l()}}),{exitOnCtrlC:!1})});if(process.env.ANTHROPIC_API_KEY&&process.env.USER_TYPE==="ant"){let l=dR(process.env.ANTHROPIC_API_KEY);if(DGI(l)==="new")await new Promise((W)=>{rd(vJ.default.createElement(lmI,{customApiKeyTruncated:l,onDone:async()=>{await vV(),W()}}),{exitOnCtrlC:!1})})}if(!G&&!I){if(!naG())await new Promise((l)=>{rd(vJ.default.createElement(Mbl,{onDone:()=>{yxI(),l()}}),{exitOnCtrlC:!1})});await _bl()}}function obl(){let I=fZ();YW({...I,numStartups:(I.numStartups??0)+1})}async function iR(I,G){if(LA(I),yxI(),G){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);let[W,N]=await Promise.all([Ol.getIsDocker(),Ol.hasInternetAccess()]);if(!W||N)console.error(`--dangerously-skip-permissions can only be used in Docker containers with no internet access but got Docker: ${W} and hasInternet: ${N}`),process.exit(1)}jbl(),IQI(),yd(),uO();let Z=fZ();if(Z.iterm2KeyBindingInstalled===!0&&Z.shiftEnterKeyBindingInstalled!==!0){let W={...Z,shiftEnterKeyBindingInstalled:!0};delete W.iterm2KeyBindingInstalled,YW(W)}let l=ab();if(l.lastCost!==void 0&&l.lastDuration!==void 0)wG("tengu_exit",{last_session_cost:String(l.lastCost),last_session_api_duration:String(l.lastAPIDuration),last_session_duration:String(l.lastDuration),last_session_id:l.lastSessionId}),HN({...l,lastCost:void 0,lastAPIDuration:void 0,lastDuration:void 0,lastSessionId:void 0});if((Z.autoUpdaterStatus??"disabled")==="not_configured")wG("tengu_setup_auto_updater_not_configured",{}),await new Promise((W)=>{rd(vJ.default.createElement(fs,{onDone:()=>W()}))})}async function NhN(){try{TaG()}catch(Z){if(Z instanceof gO){await sbl({error:Z});return}}let I="",G={exitOnCtrlC:!1};if(!process.stdin.isTTY&&!process.env.CI&&!process.argv.includes("mcp")){if(I=await chN(),process.platform!=="win32")try{let Z=lhN("/dev/tty","r");G={...G,stdin:new ZhN(Z)}}catch(Z){DG(`Could not open /dev/tty: ${Z}`)}}await YhN(I,G)}async function YhN(I,G){let Z=new VtZ,l={...G,exitOnCtrlC:!0},b=await lf(),W=b.filter((V)=>!V.isHidden).map((V)=>`/${V.name} - ${V.description}`).join(`
|
|
2658
2658
|
`);if(Z.name("quantwise").description(`${hN} - starts an interactive session by default, use -p/--print for non-interactive output
|
|
2659
2659
|
|
|
2660
2660
|
Slash commands available during an interactive session:
|
|
2661
2661
|
${W}`).argument("[prompt]","Your prompt",String).option("-c, --cwd <cwd>","The current working directory",String,SR()).option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).option("-e, --enable-architect","Enable the Architect tool",()=>!0).option("-p, --print","Print response and exit (useful for pipes)",()=>!0).option("--dangerously-skip-permissions","Skip all permission checks. Only works in Docker containers with no internet access. Will crash otherwise.",()=>!0).action(async(V,{cwd:d,debug:m,verbose:X,enableArchitect:R,print:H,dangerouslySkipPermissions:w})=>{await WhN(w,H),wG("tengu_init",{entrypoint:"claude",hasInitialPrompt:Boolean(V).toString(),hasStdin:Boolean(I).toString(),enableArchitect:R?.toString()??"false",verbose:X?.toString()??"false",debug:m?.toString()??"false",print:H?.toString()??"false"}),await iR(d,w);let[A,y]=await Promise.all([r9(R??ab().enableArchitectTool),TC()]);obl();let g=[V,I].filter(Boolean).join(`
|
|
2662
|
-
`);if(H){if(!g)console.error("Error: Input must be provided either through stdin or as a prompt argument when using --print"),process.exit(1);o9(g);let{resultText:a}=await dtZ({commands:b,hasPermissionsToUseTool:f9,messageLogName:PII(new Date),prompt:g,cwd:d,tools:A,dangerouslySkipPermissions:w});console.log(a),process.exit(0)}else{let a=await IT();TX.start(),rd(vJ.default.createElement(Zf,{commands:b,debug:m,initialPrompt:g,messageLogName:PII(new Date),shouldShowPromptInput:!0,verbose:X,tools:A,dangerouslySkipPermissions:w,mcpClients:y,isDefaultModel:a}),G)}}).version("1.3.
|
|
2662
|
+
`);if(H){if(!g)console.error("Error: Input must be provided either through stdin or as a prompt argument when using --print"),process.exit(1);o9(g);let{resultText:a}=await dtZ({commands:b,hasPermissionsToUseTool:f9,messageLogName:PII(new Date),prompt:g,cwd:d,tools:A,dangerouslySkipPermissions:w});console.log(a),process.exit(0)}else{let a=await IT();TX.start(),rd(vJ.default.createElement(Zf,{commands:b,debug:m,initialPrompt:g,messageLogName:PII(new Date),shouldShowPromptInput:!0,verbose:X,tools:A,dangerouslySkipPermissions:w,mcpClients:y,isDefaultModel:a}),G)}}).version("1.3.1","-v, --version"),process.env.USER_TYPE==="ant")Z.option("--melon","Enable melon mode").hook("preAction",async()=>{if(Z.opts().melon){let{runMelonWrapper:V}=await Promise.resolve().then(() => fbl);await V(),process.exit(0)}});let N=Z.command("config").description("Manage configuration (eg. claude config set -g theme dark)");N.command("get <key>").description("Get a config value").option("-c, --cwd <cwd>","The current working directory",String,SR()).option("-g, --global","Use global config").action(async(V,{cwd:d,global:m})=>{await iR(d,!1),console.log(iaG(V,m??!1)),process.exit(0)}),N.command("set <key> <value>").description("Set a config value").option("-c, --cwd <cwd>","The current working directory",String,SR()).option("-g, --global","Use global config").action(async(V,d,{cwd:m,global:X})=>{await iR(m,!1),PaG(V,d,X??!1),console.log(`Set ${V} to ${d}`),process.exit(0)}),N.command("remove <key>").description("Remove a config value").option("-c, --cwd <cwd>","The current working directory",String,SR()).option("-g, --global","Use global config").action(async(V,{cwd:d,global:m})=>{await iR(d,!1),_aG(V,m??!1),console.log(`Removed ${V}`),process.exit(0)}),N.command("list").description("List all config values").option("-c, --cwd <cwd>","The current working directory",String,SR()).option("-g, --global","Use global config",!1).action(async({cwd:V,global:d})=>{await iR(V,!1);let m=d?XEI(!0):XEI(!1);console.log(JSON.stringify(m,null,2)),process.exit(0)});let Y=Z.command("approved-tools").description("Manage approved tools");Y.command("list").description("List all approved tools").action(async()=>{let V=Tbl(XZ());console.log(V),process.exit(0)}),Y.command("remove <tool>").description("Remove a tool from the list of approved tools").action(async(V)=>{let d=Sbl(V);wG("tengu_approved_tool_remove",{tool:V,success:String(d.success)}),console.log(d.message),process.exit(d.success?0:1)});let c=Z.command("mcp").description("Configure and manage MCP servers");if(c.command("serve").description(`Start the ${hN} MCP server`).action(async()=>{let V=Z.opts().cwd??SR();if(wG("tengu_mcp_start",{providedCwd:V}),!$bl(V))console.error(`Error: Directory ${V} does not exist`),process.exit(1);try{await iR(V,!1),await Dbl(V)}catch(d){console.error("Error: Failed to start MCP server:",d),process.exit(1)}}),c.command("add <name> <commandOrUrl> [args...]").description("Add an MCP server (stdio by default, use -t for http/sse)").option("-t, --transport <transport>","Transport type: stdio, http, or sse","stdio").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("--env <value>","Set environment variables (stdio only, e.g. --env KEY=value)",(V,d)=>[...d,V],[]).option("-H, --header <value>",'HTTP headers (http/sse only, e.g. -H "Auth: Bearer xxx")',(V,d)=>[...d,V],[]).option("--callback-port <port>","OAuth callback port",parseInt).option("--client-id <clientId>","OAuth client ID").option("--client-secret","Read OAuth client secret from MCP_CLIENT_SECRET env or stdin").action(async(V,d,m,X)=>{try{let R=Os(X.scope),H=X.transport;if(H==="http"||H==="sse"){wG("tengu_mcp_add",{name:V,type:H,scope:R});let w={type:H,url:d};if(X.header&&X.header.length>0){let y={};for(let g of X.header){let a=g.indexOf(":");if(a===-1)throw Error(`Invalid header format: ${g}. Expected "Name: Value"`);y[g.slice(0,a).trim()]=g.slice(a+1).trim()}w.headers=y}let A={};if(X.clientId)A.clientId=X.clientId;if(X.clientSecret){let y=process.env.MCP_CLIENT_SECRET;if(y)A.clientSecret=y;else{let g="";process.stdin.setEncoding("utf-8");for await(let a of process.stdin)g+=a;A.clientSecret=g.trim()}}if(X.callbackPort)A.callbackPort=X.callbackPort;if(Object.keys(A).length>0)w.oauth=A;Ms(V,w,R),console.log(`Added ${H} MCP server "${V}" with URL ${d} to ${R} config`)}else{wG("tengu_mcp_add",{name:V,type:"stdio",scope:R});let w=rnZ(X.env);Ms(V,{type:"stdio",command:d,args:m||[],env:w},R),console.log(`Added stdio MCP server "${V}" with command: ${d} ${(m||[]).join(" ")} to ${R} config`)}process.exit(0)}catch(R){console.error(R.message),process.exit(1)}}),c.command("add-json <name> <json>").description("Add an MCP server from a JSON config string").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("--client-secret","Read OAuth client secret from MCP_CLIENT_SECRET env or stdin").action(async(V,d,m)=>{try{let X=Os(m.scope);wG("tengu_mcp_add_json",{name:V,scope:X});let R;try{R=JSON.parse(d)}catch{throw Error("Invalid JSON provided")}if(m.clientSecret&&"url"in R){let H=process.env.MCP_CLIENT_SECRET;if(H){if(!R.oauth)R.oauth={};R.oauth.clientSecret=H}}Ms(V,R,X),console.log(`Added MCP server "${V}" from JSON to ${X} config`),process.exit(0)}catch(X){console.error(X.message),process.exit(1)}}),c.command("add-from-claude-desktop").description("Import MCP servers from Claude Desktop config").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(V)=>{try{let d=Os(V.scope);wG("tengu_mcp_add_from_desktop",{scope:d});let{homedir:m}=await import("os"),{join:X}=await import("path"),{readFileSync:R,existsSync:H}=await import("fs"),w;if(process.platform==="darwin")w=X(m(),"Library","Application Support","Claude","claude_desktop_config.json");else if(process.platform==="win32")w=X(process.env.APPDATA??"","Claude","claude_desktop_config.json");else w=X(m(),".config","Claude","claude_desktop_config.json");if(!H(w))console.error(`Claude Desktop config not found at: ${w}`),process.exit(1);let A=R(w,"utf-8"),y=JSON.parse(A);if(!y.mcpServers||Object.keys(y.mcpServers).length===0)console.log("No MCP servers found in Claude Desktop config."),process.exit(0);let g=0;for(let[a,B]of Object.entries(y.mcpServers))Ms(a,B,d),console.log(` Added: ${a}`),g++;console.log(`
|
|
2663
2663
|
Imported ${g} MCP server(s) from Claude Desktop to ${d} config`),process.exit(0)}catch(d){console.error(d.message),process.exit(1)}}),c.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project)").action(async(V,d)=>{try{let m=d.scope?Os(d.scope):void 0;wG("tengu_mcp_delete",{name:V,scope:m??"auto"}),enZ(V,m),console.log(`Removed MCP server "${V}"`),process.exit(0)}catch(m){console.error(m.message),process.exit(1)}}),c.command("list").description("List configured MCP servers").action(()=>{wG("tengu_mcp_list",{});let V=Ks();if(Object.keys(V).length===0)console.log("No MCP servers configured. Use `claude mcp add` to add a server.");else for(let[d,m]of Object.entries(V))if("url"in m){let X=m.type;console.log(`${d}: ${m.url} (${X})`)}else console.log(`${d}: ${m.command} ${(m.args??[]).join(" ")} (stdio)`);process.exit(0)}),c.command("get <name>").description("Get details about an MCP server").action((V)=>{wG("tengu_mcp_get",{name:V});let d=U0I(V);if(!d)console.error(`No MCP server found with name: ${V}`),process.exit(1);if(console.log(`${V}:`),console.log(` Scope: ${d.scope}`),"url"in d){let m=d.type??"sse";if(console.log(` Type: ${m}`),console.log(` URL: ${d.url}`),d.headers&&Object.keys(d.headers).length>0){console.log(" Headers:");for(let[X,R]of Object.entries(d.headers))console.log(` ${X}: ${R}`)}if(d.oauth){if(d.oauth.clientId)if(console.log(` Client ID: ${d.oauth.clientId}`),d.oauth.clientSecret)console.log(" Auth: client_credentials");else console.log(" Auth: authorization_code (PKCE)");else console.log(" Auth: OAuth (dynamic registration)");if(d.oauth.callbackPort)console.log(` Callback Port: ${d.oauth.callbackPort}`)}}else if(console.log(" Type: stdio"),console.log(` Command: ${d.command}`),console.log(` Args: ${(d.args??[]).join(" ")}`),d.env){console.log(" Environment:");for(let[m,X]of Object.entries(d.env))console.log(` ${m}=${X}`)}process.exit(0)}),c.command("reset-project-choices").description("Reset all approved and rejected .mcp.json servers for this project").action(()=>{wG("tengu_mcp_reset_project_choices",{});let V=ab();HN({...V,approvedMcpJsonServers:[],rejectedMcpJsonServers:[],approvedMcprcServers:[],rejectedMcprcServers:[]}),console.log("All .mcp.json server approvals and rejections have been reset."),console.log("You will be prompted for approval next time you start QuantWise."),process.exit(0)}),c.command("debug [name]").description("Diagnose MCP server connection issues").action(async(V)=>{wG("tengu_mcp_debug",{name:V??"all"});let d="\x1B[32m✓\x1B[0m",m="\x1B[33m⚠\x1B[0m",X="\x1B[31m✗\x1B[0m",R=(A)=>`\x1B[1m${A}\x1B[0m`,H=(A)=>`\x1B[2m${A}\x1B[0m`,w=V?[V]:Object.keys(Ks());if(w.length===0)console.log("No MCP servers configured."),process.exit(0);for(let A of w){console.log(`
|
|
2664
|
-
${R(A)}`);let y=await NjZ(A),g=y.config;if("command"in g)console.log(H(` type: stdio | ${g.command} ${(g.args??[]).join(" ")}`));else if("url"in g)console.log(H(` type: ${g.type??"sse"} | ${g.url}`));for(let a of y.checks){let B=a.status==="ok"?d:a.status==="warn"?m:X,U=a.detail?H(` → ${a.detail}`):"";console.log(` ${B} ${a.label}${U}`)}if(y.connectionResult.success)console.log(` ${d} Connected ${H(`(${y.connectionResult.tools??0} tools)`)}`);else if(console.log(` ${X} Connection failed`),y.connectionResult.error)console.log(H(` ${y.connectionResult.error}`))}console.log(),process.exit(0)}),Z.command("doctor").description("Check the health of your QuantWise auto-updater").action(async()=>{wG("tengu_doctor_command",{}),await new Promise((V)=>{rd(vJ.default.createElement(fs,{onDone:()=>V(),doctorMode:!0}))}),process.exit(0)}),process.env.USER_TYPE==="ant"){Z.command("update").description("Check for updates and install if available").action(async()=>{if(await wy(hgG))console.log("This version of QuantWise is no longer supported."),process.exit(0);wG("tengu_update_check",{}),console.log("Current version: 1.3.
|
|
2664
|
+
${R(A)}`);let y=await NjZ(A),g=y.config;if("command"in g)console.log(H(` type: stdio | ${g.command} ${(g.args??[]).join(" ")}`));else if("url"in g)console.log(H(` type: ${g.type??"sse"} | ${g.url}`));for(let a of y.checks){let B=a.status==="ok"?d:a.status==="warn"?m:X,U=a.detail?H(` → ${a.detail}`):"";console.log(` ${B} ${a.label}${U}`)}if(y.connectionResult.success)console.log(` ${d} Connected ${H(`(${y.connectionResult.tools??0} tools)`)}`);else if(console.log(` ${X} Connection failed`),y.connectionResult.error)console.log(H(` ${y.connectionResult.error}`))}console.log(),process.exit(0)}),Z.command("doctor").description("Check the health of your QuantWise auto-updater").action(async()=>{wG("tengu_doctor_command",{}),await new Promise((V)=>{rd(vJ.default.createElement(fs,{onDone:()=>V(),doctorMode:!0}))}),process.exit(0)}),process.env.USER_TYPE==="ant"){Z.command("update").description("Check for updates and install if available").action(async()=>{if(await wy(hgG))console.log("This version of QuantWise is no longer supported."),process.exit(0);wG("tengu_update_check",{}),console.log("Current version: 1.3.1"),console.log("Checking for updates...");let m=await _0I();if(!m)console.error("Failed to check for updates"),process.exit(1);if(m==="1.3.1")console.log(`${hN} is up to date`),process.exit(0);switch(console.log(`New version available: ${m}`),console.log("Installing update..."),await Jn()){case"success":console.log(`Successfully updated to version ${m}`);break;case"no_permissions":console.error("Error: Insufficient permissions to install update"),console.error("Try running with sudo or fix npm permissions"),process.exit(1);break;case"install_failed":console.error("Error: Failed to install update"),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)}),Z.command("log").description("Manage conversation logs.").argument("[number]","A number (0, 1, 2, etc.) to display a specific log",parseInt).option("-c, --cwd <cwd>","The current working directory",String,SR()).action(async(d,{cwd:m})=>{await iR(m,!1),wG("tengu_view_logs",{number:d?.toString()??""});let X={},{unmount:R}=rd(vJ.default.createElement(q8I,{context:X,type:"messages",logNumber:d}),l);X.unmount=R}),Z.command("resume").description("Resume a previous conversation. Optionally provide a number (0, 1, 2, etc.) or file path to resume a specific conversation.").argument("[identifier]","A number (0, 1, 2, etc.) or file path to resume a specific conversation").option("-c, --cwd <cwd>","The current working directory",String,SR()).option("-e, --enable-architect","Enable the Architect tool",()=>!0).option("-v, --verbose","Do not truncate message output",()=>!0).option("--dangerously-skip-permissions","Skip all permission checks. Only works in Docker containers with no internet access. Will crash otherwise.",()=>!0).action(async(d,{cwd:m,enableArchitect:X,dangerouslySkipPermissions:R,verbose:H})=>{await iR(m,R);let[w,A,y,g]=await Promise.all([r9(X??ab().enableArchitectTool),lf(),ZO(UX.messages()),TC()]);if(obl(),d!==void 0){let a=Math.abs(parseInt(d)),B=!isNaN(a),U,q,$;try{if(B){wG("tengu_resume",{number:a.toString()});let LI=y[a];if(!LI)console.error("No conversation found at index",a),process.exit(1);U=await _6I(LI.fullPath),{date:q,forkNumber:$}=LI}else{if(wG("tengu_resume",{filePath:d}),!$bl(d))console.error("File does not exist:",d),process.exit(1);U=await _6I(d);let LI=d.split("/"),mI=LI[LI.length-1]??"unknown";({date:q,forkNumber:$}=oJI(mI))}let lI=lO(q,$??1,0),o=await IT();rd(vJ.default.createElement(Zf,{initialPrompt:"",messageLogName:q,initialForkNumber:lI,shouldShowPromptInput:!0,verbose:H,commands:A,tools:w,initialMessages:U,mcpClients:g,isDefaultModel:o}),{exitOnCtrlC:!1})}catch(lI){DG(`Failed to load conversation: ${lI}`),process.exit(1)}}else{let a={},{unmount:B}=rd(vJ.default.createElement(XmI,{context:a,commands:A,logs:y,tools:w,verbose:H}),l);a.unmount=B}}),Z.command("error").description("View error logs. Optionally provide a number (0, -1, -2, etc.) to display a specific log.").argument("[number]","A number (0, 1, 2, etc.) to display a specific log",parseInt).option("-c, --cwd <cwd>","The current working directory",String,SR()).action(async(d,{cwd:m})=>{await iR(m,!1),wG("tengu_view_errors",{number:d?.toString()??""});let X={},{unmount:R}=rd(vJ.default.createElement(q8I,{context:X,type:"errors",logNumber:d}),l);X.unmount=R});let V=Z.command("context").description("Set static context (eg. claude context add-file ./src/*.py)");V.command("get <key>").option("-c, --cwd <cwd>","The current working directory",String,SR()).description("Get a value from context").action(async(d,{cwd:m})=>{await iR(m,!1),wG("tengu_context_get",{key:d});let X=Za(await yd(),"codeStyle","directoryStructure");console.log(X[d]),process.exit(0)}),V.command("set <key> <value>").description("Set a value in context").option("-c, --cwd <cwd>","The current working directory",String,SR()).action(async(d,m,{cwd:X})=>{await iR(X,!1),wG("tengu_context_set",{key:d}),XjZ(d,m),console.log(`Set context.${d} to "${m}"`),process.exit(0)}),V.command("list").description("List all context values").option("-c, --cwd <cwd>","The current working directory",String,SR()).action(async({cwd:d})=>{await iR(d,!1),wG("tengu_context_list",{});let m=Za(await yd(),"codeStyle","directoryStructure","gitStatus");console.log(JSON.stringify(m,null,2)),process.exit(0)}),V.command("remove <key>").description("Remove a value from context").option("-c, --cwd <cwd>","The current working directory",String,SR()).action(async(d,{cwd:m})=>{await iR(m,!1),wG("tengu_context_delete",{key:d}),FjZ(d),console.log(`Removed context.${d}`),process.exit(0)})}return await Z.parseAsync(process.argv),Z}async function chN(){if(process.stdin.isTTY)return"";let I="";for await(let G of process.stdin)I+=G;return I}process.on("exit",()=>{VhN(),TX.stop(),vm.getInstance().close()});process.on("SIGINT",()=>{process.exit(0)});function VhN(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(`\x1B[?25h${HEI}`)}NhN();export{bhN as completeOnboarding};
|