@gitlab/duo-cli 8.40.0 → 8.40.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/dist/index.js +4 -4
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -989,7 +989,7 @@ gpgsig`+XP1(E)+`
|
|
|
989
989
|
`,A.children)for(let B of A.children)Q+=xy1(B,D+1);return Q},X_A=(A)=>{return xy1(A).trim()};class g${#A;#D;#_;constructor(A,D){this.#A=A,this.#D=D}#Q(A,D,_){let Q=this.#D.logLevel;if(z_A(Q)>=Fl[A])this.#B(A,D,jy1(_))}#B(A,D,_){let Q=(E)=>`${E.stack??E.message}`,B=(E)=>{let z=F51("Full Context",this.#_,K51(E));return z?`
|
|
990
990
|
${X_A(z)}`:""};if(typeof D==="string"){let E=_?`
|
|
991
991
|
${Q(_)}`:"";this.#E(`${D}${E}${B(_)}`,A)}else{let E=jy1(D);if(!E)return;this.#E(`${Q(E)}${B(D)}`,A)}}#E(A,D){let _=`${by1.default().format("YYYY-MM-DDTHH:mm:ss:SSS")} [${D}]: `,Q=(B)=>B.replace(/\n/g,`
|
|
992
|
-
${" ".repeat(J_A)}`);this.#A.write(`${_}${Q(A)}`)}setContext(A){this.#_=A}debug(A,D){this.#Q(b_.DEBUG,A,D)}info(A,D){this.#Q(b_.INFO,A,D)}warn(A,D){this.#Q(b_.WARNING,A,D)}error(A,D){this.#Q(b_.ERROR,A,D)}withContext(A){let D=new g$(this.#A,this.#D);return D.setContext(A),D}}g$=p0([ky1.Injectable(_A,[dV,Wb])],g$);var Kl="8.40.0";import $l from"fs";import gy1 from"path";import K_A from"os";import{spawn as U51}from"child_process";import Y_A from"path";import F_A from"os";var Mb=()=>{return Y_A.join(F_A.tmpdir(),"gitlab-duo-cli")};function w51(){let A=Mb();if(!$l.existsSync(A))console.error("Log directory does not exist:",A),process.exit(1);let D;try{D=$l.readdirSync(A)}catch(_){if(_ instanceof Error)console.error("Failed to read log directory:",_.message);process.exit(1)}if(D.length===0)return[];return D.map((_)=>{let Q=gy1.join(A,_),B=$l.statSync(Q);return{path:Q,mtime:B.mtime}}).sort((_,Q)=>Q.mtime.getTime()-_.mtime.getTime())}function fy1(){let A=w51();if(A.length===0)console.error("No log files found in:",gy1.join(K_A.tmpdir(),"gitlab-duo-cli")),process.exit(1);return A[0].path}function $_A(A){let D=process.env.EDITOR||"vim";console.log(`Opening ${A} in ${D}...`);let _=U51(D,[A],{stdio:"inherit"});_.on("error",(Q)=>{console.error("Failed to start editor:",Q.message),process.exit(1)}),_.on("close",(Q)=>{if(Q!==0)console.error(`Editor exited with code ${Q}`),process.exit(Q)})}function Z_A(){let A=w51(),D=Mb();if(A.length===0){console.log("No log files found in:",D);return}A.forEach((_)=>{console.log(_.path)})}var uy1=()=>{let A=fy1();$_A(A)},my1=()=>{Z_A()},hy1=(A=[])=>{let D=fy1(),_=process.platform==="win32",Q;if(_){let B=["-Command","Get-Content","-Path",D];if(A.length>0)B.push(...A);else B.push("-Tail","10");Q=U51("powershell",B,{stdio:"inherit"})}else{let B=A.length>0?[...A,D]:[D];Q=U51("tail",B,{stdio:"inherit"})}Q.on("error",(B)=>{console.error("Process failed:",B.message),process.exit(1)}),Q.on("close",(B)=>process.exit(B||0))};function U_A(){let A=w51();if(A.length===0){console.log("No log files found to clear.");return}let D=0,_=0;for(let Q of A){let B=Q.path;try{$l.unlinkSync(B),D++,console.log(`Deleted: ${B}`)}catch(E){if(_++,E instanceof Error)console.error(`Failed to delete ${B}:`,E.message)}}if(D>0)console.log(`Successfully deleted ${D} log file(s).`);if(_>0)console.error(`Failed to delete ${_} file(s).`),process.exit(1)}var py1=()=>{U_A()};import{Stream as RJA}from"node:stream";import Ui from"node:process";var J71=F0(N2(),1);import Hb1 from"node:process";function ey1(A,D,{signal:_,edges:Q}={}){let B=void 0,E=null,z=Q!=null&&Q.includes("leading"),J=Q==null||Q.includes("trailing"),X=()=>{if(E!==null)A.apply(B,E),B=void 0,E=null},G=()=>{if(J)X();F()},Y=null,K=()=>{if(Y!=null)clearTimeout(Y);Y=setTimeout(()=>{Y=null,G()},D)},$=()=>{if(Y!==null)clearTimeout(Y),Y=null},F=()=>{$(),B=void 0,E=null},Z=()=>{X()},U=function(...I){if(_?.aborted)return;B=this,E=I;let V=Y==null;if(K(),z&&V)X()};return U.schedule=K,U.cancel=F,U.flush=Z,_?.addEventListener("abort",F,{once:!0}),U}function Av1(A,D=0,_={}){if(typeof _!=="object")_={};let{leading:Q=!1,trailing:B=!0,maxWait:E}=_,z=Array(2);if(Q)z[0]="leading";if(B)z[1]="trailing";let J=void 0,X=null,G=ey1(function(...$){J=A.apply(this,$),X=null},D,{edges:z}),Y=function(...$){if(E!=null){if(X===null)X=Date.now();if(Date.now()-X>=E)return J=A.apply(this,$),X=Date.now(),G.cancel(),G.schedule(),J}return G.apply(this,$),J},K=()=>{return G.flush(),J};return Y.cancel=G.cancel,Y.flush=K,Y}function Ul(A,D=0,_={}){let{leading:Q=!0,trailing:B=!0}=_;return Av1(A,D,{leading:Q,maxWait:D,trailing:B})}var f$={};ZF(f$,{scrollUp:()=>mQA,scrollDown:()=>hQA,link:()=>aQA,image:()=>nQA,iTerm:()=>oQA,exitAlternativeScreen:()=>lQA,eraseUp:()=>uQA,eraseStartLine:()=>gQA,eraseScreen:()=>O51,eraseLines:()=>kQA,eraseLine:()=>Bv1,eraseEndLine:()=>xQA,eraseDown:()=>fQA,enterAlternativeScreen:()=>dQA,cursorUp:()=>_v1,cursorTo:()=>MQA,cursorShow:()=>bQA,cursorSavePosition:()=>RQA,cursorRestorePosition:()=>TQA,cursorPrevLine:()=>SQA,cursorNextLine:()=>vQA,cursorMove:()=>OQA,cursorLeft:()=>Qv1,cursorHide:()=>jQA,cursorGetPosition:()=>yQA,cursorForward:()=>LQA,cursorDown:()=>NQA,cursorBackward:()=>PQA,clearTerminal:()=>cQA,clearScreen:()=>pQA,beep:()=>iQA});import N51 from"node:process";var cw=globalThis.window?.document!==void 0,D$4=globalThis.process?.versions?.node!==void 0,_$4=globalThis.process?.versions?.bun!==void 0,Q$4=globalThis.Deno?.version?.deno!==void 0,B$4=globalThis.process?.versions?.electron!==void 0,E$4=globalThis.navigator?.userAgent?.includes("jsdom")===!0,z$4=typeof WorkerGlobalScope!=="undefined"&&globalThis instanceof WorkerGlobalScope,J$4=typeof DedicatedWorkerGlobalScope!=="undefined"&&globalThis instanceof DedicatedWorkerGlobalScope,X$4=typeof SharedWorkerGlobalScope!=="undefined"&&globalThis instanceof SharedWorkerGlobalScope,G$4=typeof ServiceWorkerGlobalScope!=="undefined"&&globalThis instanceof ServiceWorkerGlobalScope,Ob=globalThis.navigator?.userAgentData?.platform,Y$4=Ob==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",F$4=Ob==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",K$4=Ob==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",$$4=Ob==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Z$4=Ob==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var P8="\x1B[",Lb="\x1B]",XL="\x07",Nb=";",Dv1=!cw&&N51.env.TERM_PROGRAM==="Apple_Terminal",qQA=!cw&&N51.platform==="win32",WQA=cw?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:N51.cwd,MQA=(A,D)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");if(typeof D!=="number")return P8+(A+1)+"G";return P8+(D+1)+Nb+(A+1)+"H"},OQA=(A,D)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");let _="";if(A<0)_+=P8+-A+"D";else if(A>0)_+=P8+A+"C";if(D<0)_+=P8+-D+"A";else if(D>0)_+=P8+D+"B";return _},_v1=(A=1)=>P8+A+"A",NQA=(A=1)=>P8+A+"B",LQA=(A=1)=>P8+A+"C",PQA=(A=1)=>P8+A+"D",Qv1=P8+"G",RQA=Dv1?"\x1B7":P8+"s",TQA=Dv1?"\x1B8":P8+"u",yQA=P8+"6n",vQA=P8+"E",SQA=P8+"F",jQA=P8+"?25l",bQA=P8+"?25h",kQA=(A)=>{let D="";for(let _=0;_<A;_++)D+=Bv1+(_<A-1?_v1():"");if(A)D+=Qv1;return D},xQA=P8+"K",gQA=P8+"1K",Bv1=P8+"2K",fQA=P8+"J",uQA=P8+"1J",O51=P8+"2J",mQA=P8+"S",hQA=P8+"T",pQA="\x1Bc",cQA=qQA?`${O51}${P8}0f`:`${O51}${P8}3J${P8}H`,dQA=P8+"?1049h",lQA=P8+"?1049l",iQA=XL,aQA=(A,D)=>[Lb,"8",Nb,Nb,D,XL,A,Lb,"8",Nb,Nb,XL].join(""),nQA=(A,D={})=>{let _=`${Lb}1337;File=inline=1`;if(D.width)_+=`;width=${D.width}`;if(D.height)_+=`;height=${D.height}`;if(D.preserveAspectRatio===!1)_+=";preserveAspectRatio=0";return _+":"+Buffer.from(A).toString("base64")+XL},oQA={setCwd:(A=WQA())=>`${Lb}50;CurrentDir=${A}${XL}`,annotation(A,D={}){let _=`${Lb}1337;`,Q=D.x!==void 0,B=D.y!==void 0;if((Q||B)&&!(Q&&B&&D.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replaceAll("|",""),_+=D.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",D.length>0)_+=(Q?[A,D.length,D.x,D.y]:[D.length,A]).join("|");else _+=A;return _+XL}};import{env as L51}from"node:process";var Ev1=(A)=>(A in L51)&&L51[A]!=="0"&&L51[A]!=="false",rQA=Ev1("CI")||Ev1("CONTINUOUS_INTEGRATION"),lV=rQA;var sQA=(A)=>{let D=new Set;do for(let _ of Reflect.ownKeys(A))D.add([A,_]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return D};function P51(A,{include:D,exclude:_}={}){let Q=(B)=>{let E=(z)=>typeof z==="string"?B===z:z.test(B);if(D)return D.some(E);if(_)return!_.some(E);return!0};for(let[B,E]of sQA(A.constructor.prototype)){if(E==="constructor"||!Q(E))continue;let z=Reflect.getOwnPropertyDescriptor(B,E);if(z&&typeof z.value==="function")A[E]=A[E].bind(A)}return A}var qb1=F0(Hl(),1);import{PassThrough as Jv1}from"node:stream";var Xv1=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],S51={},tQA=(A)=>{let D=new Jv1,_=new Jv1;D.write=(B)=>{A("stdout",B)},_.write=(B)=>{A("stderr",B)};let Q=new console.Console(D,_);for(let B of Xv1)S51[B]=console[B],console[B]=Q[B];return()=>{for(let B of Xv1)console[B]=S51[B];S51={}}},Gv1=tQA;var j51=32;var b51=0,Vl=0;var eQA=(()=>{var A=import.meta.url;return function(D){D=D||{};var _;_||(_=typeof D!=="undefined"?D:{});var Q,B;_.ready=new Promise(function(N1,L1){Q=N1,B=L1});var E=Object.assign({},_),z="";typeof document!="undefined"&&document.currentScript&&(z=document.currentScript.src),A&&(z=A),z.indexOf("blob:")!==0?z=z.substr(0,z.replace(/[?#].*/,"").lastIndexOf("/")+1):z="";var J=_.print||console.log.bind(console),X=_.printErr||console.warn.bind(console);Object.assign(_,E),E=null;var G;_.wasmBinary&&(G=_.wasmBinary);var Y=_.noExitRuntime||!0;typeof WebAssembly!="object"&&o("no native wasm support detected");var K,$=!1;function F(N1,L1,t1){t1=L1+t1;for(var Z0="";!(L1>=t1);){var P0=N1[L1++];if(!P0)break;if(P0&128){var i0=N1[L1++]&63;if((P0&224)==192)Z0+=String.fromCharCode((P0&31)<<6|i0);else{var FA=N1[L1++]&63;P0=(P0&240)==224?(P0&15)<<12|i0<<6|FA:(P0&7)<<18|i0<<12|FA<<6|N1[L1++]&63,65536>P0?Z0+=String.fromCharCode(P0):(P0-=65536,Z0+=String.fromCharCode(55296|P0>>10,56320|P0&1023))}}else Z0+=String.fromCharCode(P0)}return Z0}var Z,U,I,V,q,W,M,R,v;function T(){var N1=K.buffer;Z=N1,_.HEAP8=U=new Int8Array(N1),_.HEAP16=V=new Int16Array(N1),_.HEAP32=W=new Int32Array(N1),_.HEAPU8=I=new Uint8Array(N1),_.HEAPU16=q=new Uint16Array(N1),_.HEAPU32=M=new Uint32Array(N1),_.HEAPF32=R=new Float32Array(N1),_.HEAPF64=v=new Float64Array(N1)}var u,S=[],r=[],m=[];function s(){var N1=_.preRun.shift();S.unshift(N1)}var c=0,x=null,l=null;function o(N1){if(_.onAbort)_.onAbort(N1);throw N1="Aborted("+N1+")",X(N1),$=!0,N1=new WebAssembly.RuntimeError(N1+". Build with -sASSERTIONS for more info."),B(N1),N1}function _1(N1){return N1.startsWith("data:application/octet-stream;base64,")}var I1="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(!_1(I1)){var Z1=I1;I1=_.locateFile?_.locateFile(Z1,z):z+Z1}function C1(){var N1=I1;try{if(N1==I1&&G)return new Uint8Array(G);if(_1(N1))try{var L1=S2(N1.slice(37)),t1=new Uint8Array(L1.length);for(N1=0;N1<L1.length;++N1)t1[N1]=L1.charCodeAt(N1);var Z0=t1}catch(i0){throw Error("Converting base64 string to bytes failed.")}else Z0=void 0;var P0=Z0;if(P0)return P0;throw"both async and sync fetching of the wasm failed"}catch(i0){o(i0)}}function G1(){return G||typeof fetch!="function"?Promise.resolve().then(function(){return C1()}):fetch(I1,{credentials:"same-origin"}).then(function(N1){if(!N1.ok)throw"failed to load wasm binary file at '"+I1+"'";return N1.arrayBuffer()}).catch(function(){return C1()})}function D1(N1){for(;0<N1.length;)N1.shift()(_)}function e(N1){if(N1===void 0)return"_unknown";N1=N1.replace(/[^a-zA-Z0-9_]/g,"$");var L1=N1.charCodeAt(0);return 48<=L1&&57>=L1?"_"+N1:N1}function V1(N1,L1){return N1=e(N1),function(){return L1.apply(this,arguments)}}var j1=[{},{value:void 0},{value:null},{value:!0},{value:!1}],l1=[];function E0(N1){var L1=Error,t1=V1(N1,function(Z0){this.name=N1,this.message=Z0,Z0=Error(Z0).stack,Z0!==void 0&&(this.stack=this.toString()+`
|
|
992
|
+
${" ".repeat(J_A)}`);this.#A.write(`${_}${Q(A)}`)}setContext(A){this.#_=A}debug(A,D){this.#Q(b_.DEBUG,A,D)}info(A,D){this.#Q(b_.INFO,A,D)}warn(A,D){this.#Q(b_.WARNING,A,D)}error(A,D){this.#Q(b_.ERROR,A,D)}withContext(A){let D=new g$(this.#A,this.#D);return D.setContext(A),D}}g$=p0([ky1.Injectable(_A,[dV,Wb])],g$);var Kl="8.40.1";import $l from"fs";import gy1 from"path";import K_A from"os";import{spawn as U51}from"child_process";import Y_A from"path";import F_A from"os";var Mb=()=>{return Y_A.join(F_A.tmpdir(),"gitlab-duo-cli")};function w51(){let A=Mb();if(!$l.existsSync(A))console.error("Log directory does not exist:",A),process.exit(1);let D;try{D=$l.readdirSync(A)}catch(_){if(_ instanceof Error)console.error("Failed to read log directory:",_.message);process.exit(1)}if(D.length===0)return[];return D.map((_)=>{let Q=gy1.join(A,_),B=$l.statSync(Q);return{path:Q,mtime:B.mtime}}).sort((_,Q)=>Q.mtime.getTime()-_.mtime.getTime())}function fy1(){let A=w51();if(A.length===0)console.error("No log files found in:",gy1.join(K_A.tmpdir(),"gitlab-duo-cli")),process.exit(1);return A[0].path}function $_A(A){let D=process.env.EDITOR||"vim";console.log(`Opening ${A} in ${D}...`);let _=U51(D,[A],{stdio:"inherit"});_.on("error",(Q)=>{console.error("Failed to start editor:",Q.message),process.exit(1)}),_.on("close",(Q)=>{if(Q!==0)console.error(`Editor exited with code ${Q}`),process.exit(Q)})}function Z_A(){let A=w51(),D=Mb();if(A.length===0){console.log("No log files found in:",D);return}A.forEach((_)=>{console.log(_.path)})}var uy1=()=>{let A=fy1();$_A(A)},my1=()=>{Z_A()},hy1=(A=[])=>{let D=fy1(),_=process.platform==="win32",Q;if(_){let B=["-Command","Get-Content","-Path",D];if(A.length>0)B.push(...A);else B.push("-Tail","10");Q=U51("powershell",B,{stdio:"inherit"})}else{let B=A.length>0?[...A,D]:[D];Q=U51("tail",B,{stdio:"inherit"})}Q.on("error",(B)=>{console.error("Process failed:",B.message),process.exit(1)}),Q.on("close",(B)=>process.exit(B||0))};function U_A(){let A=w51();if(A.length===0){console.log("No log files found to clear.");return}let D=0,_=0;for(let Q of A){let B=Q.path;try{$l.unlinkSync(B),D++,console.log(`Deleted: ${B}`)}catch(E){if(_++,E instanceof Error)console.error(`Failed to delete ${B}:`,E.message)}}if(D>0)console.log(`Successfully deleted ${D} log file(s).`);if(_>0)console.error(`Failed to delete ${_} file(s).`),process.exit(1)}var py1=()=>{U_A()};import{Stream as RJA}from"node:stream";import Ui from"node:process";var J71=F0(N2(),1);import Hb1 from"node:process";function ey1(A,D,{signal:_,edges:Q}={}){let B=void 0,E=null,z=Q!=null&&Q.includes("leading"),J=Q==null||Q.includes("trailing"),X=()=>{if(E!==null)A.apply(B,E),B=void 0,E=null},G=()=>{if(J)X();F()},Y=null,K=()=>{if(Y!=null)clearTimeout(Y);Y=setTimeout(()=>{Y=null,G()},D)},$=()=>{if(Y!==null)clearTimeout(Y),Y=null},F=()=>{$(),B=void 0,E=null},Z=()=>{X()},U=function(...I){if(_?.aborted)return;B=this,E=I;let V=Y==null;if(K(),z&&V)X()};return U.schedule=K,U.cancel=F,U.flush=Z,_?.addEventListener("abort",F,{once:!0}),U}function Av1(A,D=0,_={}){if(typeof _!=="object")_={};let{leading:Q=!1,trailing:B=!0,maxWait:E}=_,z=Array(2);if(Q)z[0]="leading";if(B)z[1]="trailing";let J=void 0,X=null,G=ey1(function(...$){J=A.apply(this,$),X=null},D,{edges:z}),Y=function(...$){if(E!=null){if(X===null)X=Date.now();if(Date.now()-X>=E)return J=A.apply(this,$),X=Date.now(),G.cancel(),G.schedule(),J}return G.apply(this,$),J},K=()=>{return G.flush(),J};return Y.cancel=G.cancel,Y.flush=K,Y}function Ul(A,D=0,_={}){let{leading:Q=!0,trailing:B=!0}=_;return Av1(A,D,{leading:Q,maxWait:D,trailing:B})}var f$={};ZF(f$,{scrollUp:()=>mQA,scrollDown:()=>hQA,link:()=>aQA,image:()=>nQA,iTerm:()=>oQA,exitAlternativeScreen:()=>lQA,eraseUp:()=>uQA,eraseStartLine:()=>gQA,eraseScreen:()=>O51,eraseLines:()=>kQA,eraseLine:()=>Bv1,eraseEndLine:()=>xQA,eraseDown:()=>fQA,enterAlternativeScreen:()=>dQA,cursorUp:()=>_v1,cursorTo:()=>MQA,cursorShow:()=>bQA,cursorSavePosition:()=>RQA,cursorRestorePosition:()=>TQA,cursorPrevLine:()=>SQA,cursorNextLine:()=>vQA,cursorMove:()=>OQA,cursorLeft:()=>Qv1,cursorHide:()=>jQA,cursorGetPosition:()=>yQA,cursorForward:()=>LQA,cursorDown:()=>NQA,cursorBackward:()=>PQA,clearTerminal:()=>cQA,clearScreen:()=>pQA,beep:()=>iQA});import N51 from"node:process";var cw=globalThis.window?.document!==void 0,D$4=globalThis.process?.versions?.node!==void 0,_$4=globalThis.process?.versions?.bun!==void 0,Q$4=globalThis.Deno?.version?.deno!==void 0,B$4=globalThis.process?.versions?.electron!==void 0,E$4=globalThis.navigator?.userAgent?.includes("jsdom")===!0,z$4=typeof WorkerGlobalScope!=="undefined"&&globalThis instanceof WorkerGlobalScope,J$4=typeof DedicatedWorkerGlobalScope!=="undefined"&&globalThis instanceof DedicatedWorkerGlobalScope,X$4=typeof SharedWorkerGlobalScope!=="undefined"&&globalThis instanceof SharedWorkerGlobalScope,G$4=typeof ServiceWorkerGlobalScope!=="undefined"&&globalThis instanceof ServiceWorkerGlobalScope,Ob=globalThis.navigator?.userAgentData?.platform,Y$4=Ob==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",F$4=Ob==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",K$4=Ob==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",$$4=Ob==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Z$4=Ob==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var P8="\x1B[",Lb="\x1B]",XL="\x07",Nb=";",Dv1=!cw&&N51.env.TERM_PROGRAM==="Apple_Terminal",qQA=!cw&&N51.platform==="win32",WQA=cw?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:N51.cwd,MQA=(A,D)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");if(typeof D!=="number")return P8+(A+1)+"G";return P8+(D+1)+Nb+(A+1)+"H"},OQA=(A,D)=>{if(typeof A!=="number")throw new TypeError("The `x` argument is required");let _="";if(A<0)_+=P8+-A+"D";else if(A>0)_+=P8+A+"C";if(D<0)_+=P8+-D+"A";else if(D>0)_+=P8+D+"B";return _},_v1=(A=1)=>P8+A+"A",NQA=(A=1)=>P8+A+"B",LQA=(A=1)=>P8+A+"C",PQA=(A=1)=>P8+A+"D",Qv1=P8+"G",RQA=Dv1?"\x1B7":P8+"s",TQA=Dv1?"\x1B8":P8+"u",yQA=P8+"6n",vQA=P8+"E",SQA=P8+"F",jQA=P8+"?25l",bQA=P8+"?25h",kQA=(A)=>{let D="";for(let _=0;_<A;_++)D+=Bv1+(_<A-1?_v1():"");if(A)D+=Qv1;return D},xQA=P8+"K",gQA=P8+"1K",Bv1=P8+"2K",fQA=P8+"J",uQA=P8+"1J",O51=P8+"2J",mQA=P8+"S",hQA=P8+"T",pQA="\x1Bc",cQA=qQA?`${O51}${P8}0f`:`${O51}${P8}3J${P8}H`,dQA=P8+"?1049h",lQA=P8+"?1049l",iQA=XL,aQA=(A,D)=>[Lb,"8",Nb,Nb,D,XL,A,Lb,"8",Nb,Nb,XL].join(""),nQA=(A,D={})=>{let _=`${Lb}1337;File=inline=1`;if(D.width)_+=`;width=${D.width}`;if(D.height)_+=`;height=${D.height}`;if(D.preserveAspectRatio===!1)_+=";preserveAspectRatio=0";return _+":"+Buffer.from(A).toString("base64")+XL},oQA={setCwd:(A=WQA())=>`${Lb}50;CurrentDir=${A}${XL}`,annotation(A,D={}){let _=`${Lb}1337;`,Q=D.x!==void 0,B=D.y!==void 0;if((Q||B)&&!(Q&&B&&D.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replaceAll("|",""),_+=D.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",D.length>0)_+=(Q?[A,D.length,D.x,D.y]:[D.length,A]).join("|");else _+=A;return _+XL}};import{env as L51}from"node:process";var Ev1=(A)=>(A in L51)&&L51[A]!=="0"&&L51[A]!=="false",rQA=Ev1("CI")||Ev1("CONTINUOUS_INTEGRATION"),lV=rQA;var sQA=(A)=>{let D=new Set;do for(let _ of Reflect.ownKeys(A))D.add([A,_]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return D};function P51(A,{include:D,exclude:_}={}){let Q=(B)=>{let E=(z)=>typeof z==="string"?B===z:z.test(B);if(D)return D.some(E);if(_)return!_.some(E);return!0};for(let[B,E]of sQA(A.constructor.prototype)){if(E==="constructor"||!Q(E))continue;let z=Reflect.getOwnPropertyDescriptor(B,E);if(z&&typeof z.value==="function")A[E]=A[E].bind(A)}return A}var qb1=F0(Hl(),1);import{PassThrough as Jv1}from"node:stream";var Xv1=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],S51={},tQA=(A)=>{let D=new Jv1,_=new Jv1;D.write=(B)=>{A("stdout",B)},_.write=(B)=>{A("stderr",B)};let Q=new console.Console(D,_);for(let B of Xv1)S51[B]=console[B],console[B]=Q[B];return()=>{for(let B of Xv1)console[B]=S51[B];S51={}}},Gv1=tQA;var j51=32;var b51=0,Vl=0;var eQA=(()=>{var A=import.meta.url;return function(D){D=D||{};var _;_||(_=typeof D!=="undefined"?D:{});var Q,B;_.ready=new Promise(function(N1,L1){Q=N1,B=L1});var E=Object.assign({},_),z="";typeof document!="undefined"&&document.currentScript&&(z=document.currentScript.src),A&&(z=A),z.indexOf("blob:")!==0?z=z.substr(0,z.replace(/[?#].*/,"").lastIndexOf("/")+1):z="";var J=_.print||console.log.bind(console),X=_.printErr||console.warn.bind(console);Object.assign(_,E),E=null;var G;_.wasmBinary&&(G=_.wasmBinary);var Y=_.noExitRuntime||!0;typeof WebAssembly!="object"&&o("no native wasm support detected");var K,$=!1;function F(N1,L1,t1){t1=L1+t1;for(var Z0="";!(L1>=t1);){var P0=N1[L1++];if(!P0)break;if(P0&128){var i0=N1[L1++]&63;if((P0&224)==192)Z0+=String.fromCharCode((P0&31)<<6|i0);else{var FA=N1[L1++]&63;P0=(P0&240)==224?(P0&15)<<12|i0<<6|FA:(P0&7)<<18|i0<<12|FA<<6|N1[L1++]&63,65536>P0?Z0+=String.fromCharCode(P0):(P0-=65536,Z0+=String.fromCharCode(55296|P0>>10,56320|P0&1023))}}else Z0+=String.fromCharCode(P0)}return Z0}var Z,U,I,V,q,W,M,R,v;function T(){var N1=K.buffer;Z=N1,_.HEAP8=U=new Int8Array(N1),_.HEAP16=V=new Int16Array(N1),_.HEAP32=W=new Int32Array(N1),_.HEAPU8=I=new Uint8Array(N1),_.HEAPU16=q=new Uint16Array(N1),_.HEAPU32=M=new Uint32Array(N1),_.HEAPF32=R=new Float32Array(N1),_.HEAPF64=v=new Float64Array(N1)}var u,S=[],r=[],m=[];function s(){var N1=_.preRun.shift();S.unshift(N1)}var c=0,x=null,l=null;function o(N1){if(_.onAbort)_.onAbort(N1);throw N1="Aborted("+N1+")",X(N1),$=!0,N1=new WebAssembly.RuntimeError(N1+". Build with -sASSERTIONS for more info."),B(N1),N1}function _1(N1){return N1.startsWith("data:application/octet-stream;base64,")}var I1="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(!_1(I1)){var Z1=I1;I1=_.locateFile?_.locateFile(Z1,z):z+Z1}function C1(){var N1=I1;try{if(N1==I1&&G)return new Uint8Array(G);if(_1(N1))try{var L1=S2(N1.slice(37)),t1=new Uint8Array(L1.length);for(N1=0;N1<L1.length;++N1)t1[N1]=L1.charCodeAt(N1);var Z0=t1}catch(i0){throw Error("Converting base64 string to bytes failed.")}else Z0=void 0;var P0=Z0;if(P0)return P0;throw"both async and sync fetching of the wasm failed"}catch(i0){o(i0)}}function G1(){return G||typeof fetch!="function"?Promise.resolve().then(function(){return C1()}):fetch(I1,{credentials:"same-origin"}).then(function(N1){if(!N1.ok)throw"failed to load wasm binary file at '"+I1+"'";return N1.arrayBuffer()}).catch(function(){return C1()})}function D1(N1){for(;0<N1.length;)N1.shift()(_)}function e(N1){if(N1===void 0)return"_unknown";N1=N1.replace(/[^a-zA-Z0-9_]/g,"$");var L1=N1.charCodeAt(0);return 48<=L1&&57>=L1?"_"+N1:N1}function V1(N1,L1){return N1=e(N1),function(){return L1.apply(this,arguments)}}var j1=[{},{value:void 0},{value:null},{value:!0},{value:!1}],l1=[];function E0(N1){var L1=Error,t1=V1(N1,function(Z0){this.name=N1,this.message=Z0,Z0=Error(Z0).stack,Z0!==void 0&&(this.stack=this.toString()+`
|
|
993
993
|
`+Z0.replace(/^Error(:[^\n]*)?\n/,""))});return t1.prototype=Object.create(L1.prototype),t1.prototype.constructor=t1,t1.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},t1}var f0=void 0;function H0(N1){throw new f0(N1)}var k0=(N1)=>{return N1||H0("Cannot use deleted val. handle = "+N1),j1[N1].value},S0=(N1)=>{switch(N1){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var L1=l1.length?l1.pop():j1.length;return j1[L1]={ga:1,value:N1},L1}},v1=void 0,M1=void 0;function H1(N1){for(var L1="";I[N1];)L1+=M1[I[N1++]];return L1}var E1=[];function T1(){for(;E1.length;){var N1=E1.pop();N1.M.$=!1,N1.delete()}}var Q0=void 0,e1={};function b0(N1,L1){for(L1===void 0&&H0("ptr should not be undefined");N1.R;)L1=N1.ba(L1),N1=N1.R;return L1}var l0={};function j0(N1){N1=A3(N1);var L1=H1(N1);return q2(N1),L1}function qA(N1,L1){var t1=l0[N1];return t1===void 0&&H0(L1+" has unknown type "+j0(N1)),t1}function bA(){}var PA=!1;function B6(N1){--N1.count.value,N1.count.value===0&&(N1.T?N1.U.W(N1.T):N1.P.N.W(N1.O))}function R0(N1,L1,t1){if(L1===t1)return N1;if(t1.R===void 0)return null;return N1=R0(N1,L1,t1.R),N1===null?null:t1.na(N1)}var m0={};function ZA(N1,L1){return L1=b0(N1,L1),e1[L1]}var p=void 0;function B1(N1){throw new p(N1)}function W1(N1,L1){return L1.P&&L1.O||B1("makeClassHandle requires ptr and ptrType"),!!L1.U!==!!L1.T&&B1("Both smartPtrType and smartPtr must be specified"),L1.count={value:1},p1(Object.create(N1,{M:{value:L1}}))}function p1(N1){if(typeof FinalizationRegistry==="undefined")return p1=(L1)=>L1,N1;return PA=new FinalizationRegistry((L1)=>{B6(L1.M)}),p1=(L1)=>{var t1=L1.M;return t1.T&&PA.register(L1,{M:t1},L1),L1},bA=(L1)=>{PA.unregister(L1)},p1(N1)}var L0={};function x0(N1){for(;N1.length;){var L1=N1.pop();N1.pop()(L1)}}function CA(N1){return this.fromWireType(W[N1>>2])}var XA={},QA={};function MA(N1,L1,t1){function Z0(JA){JA=t1(JA),JA.length!==N1.length&&B1("Mismatched type converter count");for(var vA=0;vA<N1.length;++vA)z0(N1[vA],JA[vA])}N1.forEach(function(JA){QA[JA]=L1});var P0=Array(L1.length),i0=[],FA=0;L1.forEach((JA,vA)=>{l0.hasOwnProperty(JA)?P0[vA]=l0[JA]:(i0.push(JA),XA.hasOwnProperty(JA)||(XA[JA]=[]),XA[JA].push(()=>{P0[vA]=l0[JA],++FA,FA===i0.length&&Z0(P0)}))}),i0.length===0&&Z0(P0)}function h0(N1){switch(N1){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+N1)}}function z0(N1,L1,t1={}){if(!("argPackAdvance"in L1))throw new TypeError("registerType registeredInstance requires argPackAdvance");var Z0=L1.name;if(N1||H0('type "'+Z0+'" must have a positive integer typeid pointer'),l0.hasOwnProperty(N1)){if(t1.ua)return;H0("Cannot register type '"+Z0+"' twice")}l0[N1]=L1,delete QA[N1],XA.hasOwnProperty(N1)&&(L1=XA[N1],delete XA[N1],L1.forEach((P0)=>P0()))}function V0(N1){H0(N1.M.P.N.name+" instance already deleted")}function u0(){}function yA(N1,L1,t1){if(N1[L1].S===void 0){var Z0=N1[L1];N1[L1]=function(){return N1[L1].S.hasOwnProperty(arguments.length)||H0("Function '"+t1+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+N1[L1].S+")!"),N1[L1].S[arguments.length].apply(this,arguments)},N1[L1].S=[],N1[L1].S[Z0.Z]=Z0}}function i(N1,L1){_.hasOwnProperty(N1)?(H0("Cannot register public name '"+N1+"' twice"),yA(_,N1,N1),_.hasOwnProperty(void 0)&&H0("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),_[N1].S[void 0]=L1):_[N1]=L1}function w1(N1,L1,t1,Z0,P0,i0,FA,JA){this.name=N1,this.constructor=L1,this.X=t1,this.W=Z0,this.R=P0,this.pa=i0,this.ba=FA,this.na=JA,this.ja=[]}function Y1(N1,L1,t1){for(;L1!==t1;)L1.ba||H0("Expected null or instance of "+t1.name+", got an instance of "+L1.name),N1=L1.ba(N1),L1=L1.R;return N1}function q1(N1,L1){if(L1===null)return this.ea&&H0("null is not a valid "+this.name),0;return L1.M||H0('Cannot pass "'+SA(L1)+'" as a '+this.name),L1.M.O||H0("Cannot pass deleted object as a pointer of type "+this.name),Y1(L1.M.O,L1.M.P.N,this.N)}function x1(N1,L1){if(L1===null){if(this.ea&&H0("null is not a valid "+this.name),this.da){var t1=this.fa();return N1!==null&&N1.push(this.W,t1),t1}return 0}if(L1.M||H0('Cannot pass "'+SA(L1)+'" as a '+this.name),L1.M.O||H0("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&L1.M.P.ca&&H0("Cannot convert argument of type "+(L1.M.U?L1.M.U.name:L1.M.P.name)+" to parameter type "+this.name),t1=Y1(L1.M.O,L1.M.P.N,this.N),this.da)switch(L1.M.T===void 0&&H0("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:L1.M.U===this?t1=L1.M.T:H0("Cannot convert argument of type "+(L1.M.U?L1.M.U.name:L1.M.P.name)+" to parameter type "+this.name);break;case 1:t1=L1.M.T;break;case 2:if(L1.M.U===this)t1=L1.M.T;else{var Z0=L1.clone();t1=this.xa(t1,S0(function(){Z0.delete()})),N1!==null&&N1.push(this.W,t1)}break;default:H0("Unsupporting sharing policy")}return t1}function f1(N1,L1){if(L1===null)return this.ea&&H0("null is not a valid "+this.name),0;return L1.M||H0('Cannot pass "'+SA(L1)+'" as a '+this.name),L1.M.O||H0("Cannot pass deleted object as a pointer of type "+this.name),L1.M.P.ca&&H0("Cannot convert argument of type "+L1.M.P.name+" to parameter type "+this.name),Y1(L1.M.O,L1.M.P.N,this.N)}function Q1(N1,L1,t1,Z0){this.name=N1,this.N=L1,this.ea=t1,this.ca=Z0,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,L1.R!==void 0?this.toWireType=x1:(this.toWireType=Z0?q1:f1,this.V=null)}function k1(N1,L1){_.hasOwnProperty(N1)||B1("Replacing nonexistant public symbol"),_[N1]=L1,_[N1].Z=void 0}function h1(N1,L1){var t1=[];return function(){if(t1.length=0,Object.assign(t1,arguments),N1.includes("j")){var Z0=_["dynCall_"+N1];Z0=t1&&t1.length?Z0.apply(null,[L1].concat(t1)):Z0.call(null,L1)}else Z0=u.get(L1).apply(null,t1);return Z0}}function t(N1,L1){N1=H1(N1);var t1=N1.includes("j")?h1(N1,L1):u.get(L1);return typeof t1!="function"&&H0("unknown function pointer with signature "+N1+": "+L1),t1}var h=void 0;function O1(N1,L1){function t1(i0){P0[i0]||l0[i0]||(QA[i0]?QA[i0].forEach(t1):(Z0.push(i0),P0[i0]=!0))}var Z0=[],P0={};throw L1.forEach(t1),new h(N1+": "+Z0.map(j0).join([", "]))}function c1(N1,L1,t1,Z0,P0){var i0=L1.length;2>i0&&H0("argTypes array size mismatch! Must at least get return value and 'this' types!");var FA=L1[1]!==null&&t1!==null,JA=!1;for(t1=1;t1<L1.length;++t1)if(L1[t1]!==null&&L1[t1].V===void 0){JA=!0;break}var vA=L1[0].name!=="void",RA=i0-2,mA=Array(RA),W6=[],t6=[];return function(){if(arguments.length!==RA&&H0("function "+N1+" called with "+arguments.length+" arguments, expected "+RA+" args!"),t6.length=0,W6.length=FA?2:1,W6[0]=P0,FA){var X1=L1[1].toWireType(t6,this);W6[1]=X1}for(var F1=0;F1<RA;++F1)mA[F1]=L1[F1+2].toWireType(t6,arguments[F1]),W6.push(mA[F1]);if(F1=Z0.apply(null,W6),JA)x0(t6);else for(var S1=FA?1:2;S1<L1.length;S1++){var X0=S1===1?X1:mA[S1-2];L1[S1].V!==null&&L1[S1].V(X0)}return X1=vA?L1[0].fromWireType(F1):void 0,X1}}function I0(N1,L1){for(var t1=[],Z0=0;Z0<N1;Z0++)t1.push(M[L1+4*Z0>>2]);return t1}function UA(N1){4<N1&&--j1[N1].ga===0&&(j1[N1]=void 0,l1.push(N1))}function SA(N1){if(N1===null)return"null";var L1=typeof N1;return L1==="object"||L1==="array"||L1==="function"?N1.toString():""+N1}function P6(N1,L1){switch(L1){case 2:return function(t1){return this.fromWireType(R[t1>>2])};case 3:return function(t1){return this.fromWireType(v[t1>>3])};default:throw new TypeError("Unknown float type: "+N1)}}function a6(N1,L1,t1){switch(L1){case 0:return t1?function(Z0){return U[Z0]}:function(Z0){return I[Z0]};case 1:return t1?function(Z0){return V[Z0>>1]}:function(Z0){return q[Z0>>1]};case 2:return t1?function(Z0){return W[Z0>>2]}:function(Z0){return M[Z0>>2]};default:throw new TypeError("Unknown integer type: "+N1)}}function v4(N1,L1){for(var t1="",Z0=0;!(Z0>=L1/2);++Z0){var P0=V[N1+2*Z0>>1];if(P0==0)break;t1+=String.fromCharCode(P0)}return t1}function E6(N1,L1,t1){if(t1===void 0&&(t1=2147483647),2>t1)return 0;t1-=2;var Z0=L1;t1=t1<2*N1.length?t1/2:N1.length;for(var P0=0;P0<t1;++P0)V[L1>>1]=N1.charCodeAt(P0),L1+=2;return V[L1>>1]=0,L1-Z0}function P4(N1){return 2*N1.length}function e4(N1,L1){for(var t1=0,Z0="";!(t1>=L1/4);){var P0=W[N1+4*t1>>2];if(P0==0)break;++t1,65536<=P0?(P0-=65536,Z0+=String.fromCharCode(55296|P0>>10,56320|P0&1023)):Z0+=String.fromCharCode(P0)}return Z0}function d6(N1,L1,t1){if(t1===void 0&&(t1=2147483647),4>t1)return 0;var Z0=L1;t1=Z0+t1-4;for(var P0=0;P0<N1.length;++P0){var i0=N1.charCodeAt(P0);if(55296<=i0&&57343>=i0){var FA=N1.charCodeAt(++P0);i0=65536+((i0&1023)<<10)|FA&1023}if(W[L1>>2]=i0,L1+=4,L1+4>t1)break}return W[L1>>2]=0,L1-Z0}function n6(N1){for(var L1=0,t1=0;t1<N1.length;++t1){var Z0=N1.charCodeAt(t1);55296<=Z0&&57343>=Z0&&++t1,L1+=4}return L1}var Z2={};function W4(N1){var L1=Z2[N1];return L1===void 0?H1(N1):L1}var Q5=[];function P9(N1){var L1=Q5.length;return Q5.push(N1),L1}function $9(N1,L1){for(var t1=Array(N1),Z0=0;Z0<N1;++Z0)t1[Z0]=qA(M[L1+4*Z0>>2],"parameter "+Z0);return t1}var S4=[],p8=[null,[],[]];f0=_.BindingError=E0("BindingError"),_.count_emval_handles=function(){for(var N1=0,L1=5;L1<j1.length;++L1)j1[L1]!==void 0&&++N1;return N1},_.get_first_emval=function(){for(var N1=5;N1<j1.length;++N1)if(j1[N1]!==void 0)return j1[N1];return null},v1=_.PureVirtualError=E0("PureVirtualError");for(var A2=Array(256),R4=0;256>R4;++R4)A2[R4]=String.fromCharCode(R4);M1=A2,_.getInheritedInstanceCount=function(){return Object.keys(e1).length},_.getLiveInheritedInstances=function(){var N1=[],L1;for(L1 in e1)e1.hasOwnProperty(L1)&&N1.push(e1[L1]);return N1},_.flushPendingDeletes=T1,_.setDelayFunction=function(N1){Q0=N1,E1.length&&Q0&&Q0(T1)},p=_.InternalError=E0("InternalError"),u0.prototype.isAliasOf=function(N1){if(!(this instanceof u0&&N1 instanceof u0))return!1;var L1=this.M.P.N,t1=this.M.O,Z0=N1.M.P.N;for(N1=N1.M.O;L1.R;)t1=L1.ba(t1),L1=L1.R;for(;Z0.R;)N1=Z0.ba(N1),Z0=Z0.R;return L1===Z0&&t1===N1},u0.prototype.clone=function(){if(this.M.O||V0(this),this.M.aa)return this.M.count.value+=1,this;var N1=p1,L1=Object,t1=L1.create,Z0=Object.getPrototypeOf(this),P0=this.M;return N1=N1(t1.call(L1,Z0,{M:{value:{count:P0.count,$:P0.$,aa:P0.aa,O:P0.O,P:P0.P,T:P0.T,U:P0.U}}})),N1.M.count.value+=1,N1.M.$=!1,N1},u0.prototype.delete=function(){this.M.O||V0(this),this.M.$&&!this.M.aa&&H0("Object already scheduled for deletion"),bA(this),B6(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},u0.prototype.isDeleted=function(){return!this.M.O},u0.prototype.deleteLater=function(){return this.M.O||V0(this),this.M.$&&!this.M.aa&&H0("Object already scheduled for deletion"),E1.push(this),E1.length===1&&Q0&&Q0(T1),this.M.$=!0,this},Q1.prototype.qa=function(N1){return this.ka&&(N1=this.ka(N1)),N1},Q1.prototype.ha=function(N1){this.W&&this.W(N1)},Q1.prototype.argPackAdvance=8,Q1.prototype.readValueFromPointer=CA,Q1.prototype.deleteObject=function(N1){if(N1!==null)N1.delete()},Q1.prototype.fromWireType=function(N1){function L1(){return this.da?W1(this.N.X,{P:this.wa,O:t1,U:this,T:N1}):W1(this.N.X,{P:this,O:N1})}var t1=this.qa(N1);if(!t1)return this.ha(N1),null;var Z0=ZA(this.N,t1);if(Z0!==void 0){if(Z0.M.count.value===0)return Z0.M.O=t1,Z0.M.T=N1,Z0.clone();return Z0=Z0.clone(),this.ha(N1),Z0}if(Z0=this.N.pa(t1),Z0=m0[Z0],!Z0)return L1.call(this);Z0=this.ca?Z0.la:Z0.pointerType;var P0=R0(t1,this.N,Z0.N);return P0===null?L1.call(this):this.da?W1(Z0.N.X,{P:Z0,O:P0,U:this,T:N1}):W1(Z0.N.X,{P:Z0,O:P0})},h=_.UnboundTypeError=E0("UnboundTypeError");var S2=typeof atob=="function"?atob:function(N1){var L1="",t1=0;N1=N1.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var Z0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N1.charAt(t1++)),P0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N1.charAt(t1++)),i0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N1.charAt(t1++)),FA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N1.charAt(t1++));Z0=Z0<<2|P0>>4,P0=(P0&15)<<4|i0>>2;var JA=(i0&3)<<6|FA;L1+=String.fromCharCode(Z0),i0!==64&&(L1+=String.fromCharCode(P0)),FA!==64&&(L1+=String.fromCharCode(JA))}while(t1<N1.length);return L1},R9={l:function(N1,L1,t1,Z0){o("Assertion failed: "+(N1?F(I,N1):"")+", at: "+[L1?L1?F(I,L1):"":"unknown filename",t1,Z0?Z0?F(I,Z0):"":"unknown function"])},q:function(N1,L1,t1){N1=H1(N1),L1=qA(L1,"wrapper"),t1=k0(t1);var Z0=[].slice,P0=L1.N,i0=P0.X,FA=P0.R.X,JA=P0.R.constructor;N1=V1(N1,function(){P0.R.ja.forEach(function(RA){if(this[RA]===FA[RA])throw new v1("Pure virtual function "+RA+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:i0}),this.__construct.apply(this,Z0.call(arguments))}),i0.__construct=function(){this===i0&&H0("Pass correct 'this' to __construct");var RA=JA.implement.apply(void 0,[this].concat(Z0.call(arguments)));bA(RA);var mA=RA.M;RA.notifyOnDestruction(),mA.aa=!0,Object.defineProperties(this,{M:{value:mA}}),p1(this),RA=mA.O,RA=b0(P0,RA),e1.hasOwnProperty(RA)?H0("Tried to register registered instance: "+RA):e1[RA]=this},i0.__destruct=function(){this===i0&&H0("Pass correct 'this' to __destruct"),bA(this);var RA=this.M.O;RA=b0(P0,RA),e1.hasOwnProperty(RA)?delete e1[RA]:H0("Tried to unregister unregistered instance: "+RA)},N1.prototype=Object.create(i0);for(var vA in t1)N1.prototype[vA]=t1[vA];return S0(N1)},j:function(N1){var L1=L0[N1];delete L0[N1];var{fa:t1,W:Z0,ia:P0}=L1,i0=P0.map((FA)=>FA.ta).concat(P0.map((FA)=>FA.za));MA([N1],i0,(FA)=>{var JA={};return P0.forEach((vA,RA)=>{var mA=FA[RA],W6=vA.ra,t6=vA.sa,X1=FA[RA+P0.length],F1=vA.ya,S1=vA.Aa;JA[vA.oa]={read:(X0)=>mA.fromWireType(W6(t6,X0)),write:(X0,n0)=>{var s0=[];F1(S1,X0,X1.toWireType(s0,n0)),x0(s0)}}}),[{name:L1.name,fromWireType:function(vA){var RA={},mA;for(mA in JA)RA[mA]=JA[mA].read(vA);return Z0(vA),RA},toWireType:function(vA,RA){for(var mA in JA)if(!(mA in RA))throw new TypeError('Missing field: "'+mA+'"');var W6=t1();for(mA in JA)JA[mA].write(W6,RA[mA]);return vA!==null&&vA.push(Z0,W6),W6},argPackAdvance:8,readValueFromPointer:CA,V:Z0}]})},v:function(){},B:function(N1,L1,t1,Z0,P0){var i0=h0(t1);L1=H1(L1),z0(N1,{name:L1,fromWireType:function(FA){return!!FA},toWireType:function(FA,JA){return JA?Z0:P0},argPackAdvance:8,readValueFromPointer:function(FA){if(t1===1)var JA=U;else if(t1===2)JA=V;else if(t1===4)JA=W;else throw new TypeError("Unknown boolean type size: "+L1);return this.fromWireType(JA[FA>>i0])},V:null})},f:function(N1,L1,t1,Z0,P0,i0,FA,JA,vA,RA,mA,W6,t6){mA=H1(mA),i0=t(P0,i0),JA&&(JA=t(FA,JA)),RA&&(RA=t(vA,RA)),t6=t(W6,t6);var X1=e(mA);i(X1,function(){O1("Cannot construct "+mA+" due to unbound types",[Z0])}),MA([N1,L1,t1],Z0?[Z0]:[],function(F1){if(F1=F1[0],Z0)var S1=F1.N,X0=S1.X;else X0=u0.prototype;F1=V1(X1,function(){if(Object.getPrototypeOf(this)!==n0)throw new f0("Use 'new' to construct "+mA);if(s0.Y===void 0)throw new f0(mA+" has no accessible constructor");var dA=s0.Y[arguments.length];if(dA===void 0)throw new f0("Tried to invoke ctor of "+mA+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(s0.Y).toString()+") parameters instead!");return dA.apply(this,arguments)});var n0=Object.create(X0,{constructor:{value:F1}});F1.prototype=n0;var s0=new w1(mA,F1,n0,t6,S1,i0,JA,RA);S1=new Q1(mA,s0,!0,!1),X0=new Q1(mA+"*",s0,!1,!1);var nA=new Q1(mA+" const*",s0,!1,!0);return m0[N1]={pointerType:X0,la:nA},k1(X1,F1),[S1,X0,nA]})},d:function(N1,L1,t1,Z0,P0,i0,FA){var JA=I0(t1,Z0);L1=H1(L1),i0=t(P0,i0),MA([],[N1],function(vA){function RA(){O1("Cannot call "+mA+" due to unbound types",JA)}vA=vA[0];var mA=vA.name+"."+L1;L1.startsWith("@@")&&(L1=Symbol[L1.substring(2)]);var W6=vA.N.constructor;return W6[L1]===void 0?(RA.Z=t1-1,W6[L1]=RA):(yA(W6,L1,mA),W6[L1].S[t1-1]=RA),MA([],JA,function(t6){return t6=c1(mA,[t6[0],null].concat(t6.slice(1)),null,i0,FA),W6[L1].S===void 0?(t6.Z=t1-1,W6[L1]=t6):W6[L1].S[t1-1]=t6,[]}),[]})},p:function(N1,L1,t1,Z0,P0,i0){0<L1||o();var FA=I0(L1,t1);P0=t(Z0,P0),MA([],[N1],function(JA){JA=JA[0];var vA="constructor "+JA.name;if(JA.N.Y===void 0&&(JA.N.Y=[]),JA.N.Y[L1-1]!==void 0)throw new f0("Cannot register multiple constructors with identical number of parameters ("+(L1-1)+") for class '"+JA.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return JA.N.Y[L1-1]=()=>{O1("Cannot construct "+JA.name+" due to unbound types",FA)},MA([],FA,function(RA){return RA.splice(1,0,null),JA.N.Y[L1-1]=c1(vA,RA,null,P0,i0),[]}),[]})},a:function(N1,L1,t1,Z0,P0,i0,FA,JA){var vA=I0(t1,Z0);L1=H1(L1),i0=t(P0,i0),MA([],[N1],function(RA){function mA(){O1("Cannot call "+W6+" due to unbound types",vA)}RA=RA[0];var W6=RA.name+"."+L1;L1.startsWith("@@")&&(L1=Symbol[L1.substring(2)]),JA&&RA.N.ja.push(L1);var t6=RA.N.X,X1=t6[L1];return X1===void 0||X1.S===void 0&&X1.className!==RA.name&&X1.Z===t1-2?(mA.Z=t1-2,mA.className=RA.name,t6[L1]=mA):(yA(t6,L1,W6),t6[L1].S[t1-2]=mA),MA([],vA,function(F1){return F1=c1(W6,F1,RA,i0,FA),t6[L1].S===void 0?(F1.Z=t1-2,t6[L1]=F1):t6[L1].S[t1-2]=F1,[]}),[]})},A:function(N1,L1){L1=H1(L1),z0(N1,{name:L1,fromWireType:function(t1){var Z0=k0(t1);return UA(t1),Z0},toWireType:function(t1,Z0){return S0(Z0)},argPackAdvance:8,readValueFromPointer:CA,V:null})},n:function(N1,L1,t1){t1=h0(t1),L1=H1(L1),z0(N1,{name:L1,fromWireType:function(Z0){return Z0},toWireType:function(Z0,P0){return P0},argPackAdvance:8,readValueFromPointer:P6(L1,t1),V:null})},e:function(N1,L1,t1,Z0,P0){L1=H1(L1),P0===-1&&(P0=4294967295),P0=h0(t1);var i0=(JA)=>JA;if(Z0===0){var FA=32-8*t1;i0=(JA)=>JA<<FA>>>FA}t1=L1.includes("unsigned")?function(JA,vA){return vA>>>0}:function(JA,vA){return vA},z0(N1,{name:L1,fromWireType:i0,toWireType:t1,argPackAdvance:8,readValueFromPointer:a6(L1,P0,Z0!==0),V:null})},b:function(N1,L1,t1){function Z0(i0){i0>>=2;var FA=M;return new P0(Z,FA[i0+1],FA[i0])}var P0=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][L1];t1=H1(t1),z0(N1,{name:t1,fromWireType:Z0,argPackAdvance:8,readValueFromPointer:Z0},{ua:!0})},o:function(N1,L1){L1=H1(L1);var t1=L1==="std::string";z0(N1,{name:L1,fromWireType:function(Z0){var P0=M[Z0>>2],i0=Z0+4;if(t1)for(var FA=i0,JA=0;JA<=P0;++JA){var vA=i0+JA;if(JA==P0||I[vA]==0){if(FA=FA?F(I,FA,vA-FA):"",RA===void 0)var RA=FA;else RA+=String.fromCharCode(0),RA+=FA;FA=vA+1}}else{RA=Array(P0);for(JA=0;JA<P0;++JA)RA[JA]=String.fromCharCode(I[i0+JA]);RA=RA.join("")}return q2(Z0),RA},toWireType:function(Z0,P0){P0 instanceof ArrayBuffer&&(P0=new Uint8Array(P0));var i0,FA=typeof P0=="string";if(FA||P0 instanceof Uint8Array||P0 instanceof Uint8ClampedArray||P0 instanceof Int8Array||H0("Cannot pass non-string to std::string"),t1&&FA){var JA=0;for(i0=0;i0<P0.length;++i0){var vA=P0.charCodeAt(i0);127>=vA?JA++:2047>=vA?JA+=2:55296<=vA&&57343>=vA?(JA+=4,++i0):JA+=3}i0=JA}else i0=P0.length;if(JA=k5(4+i0+1),vA=JA+4,M[JA>>2]=i0,t1&&FA){if(FA=vA,vA=i0+1,i0=I,0<vA){vA=FA+vA-1;for(var RA=0;RA<P0.length;++RA){var mA=P0.charCodeAt(RA);if(55296<=mA&&57343>=mA){var W6=P0.charCodeAt(++RA);mA=65536+((mA&1023)<<10)|W6&1023}if(127>=mA){if(FA>=vA)break;i0[FA++]=mA}else{if(2047>=mA){if(FA+1>=vA)break;i0[FA++]=192|mA>>6}else{if(65535>=mA){if(FA+2>=vA)break;i0[FA++]=224|mA>>12}else{if(FA+3>=vA)break;i0[FA++]=240|mA>>18,i0[FA++]=128|mA>>12&63}i0[FA++]=128|mA>>6&63}i0[FA++]=128|mA&63}}i0[FA]=0}}else if(FA)for(FA=0;FA<i0;++FA)RA=P0.charCodeAt(FA),255<RA&&(q2(vA),H0("String has UTF-16 code units that do not fit in 8 bits")),I[vA+FA]=RA;else for(FA=0;FA<i0;++FA)I[vA+FA]=P0[FA];return Z0!==null&&Z0.push(q2,JA),JA},argPackAdvance:8,readValueFromPointer:CA,V:function(Z0){q2(Z0)}})},i:function(N1,L1,t1){if(t1=H1(t1),L1===2)var Z0=v4,P0=E6,i0=P4,FA=()=>q,JA=1;else L1===4&&(Z0=e4,P0=d6,i0=n6,FA=()=>M,JA=2);z0(N1,{name:t1,fromWireType:function(vA){for(var RA=M[vA>>2],mA=FA(),W6,t6=vA+4,X1=0;X1<=RA;++X1){var F1=vA+4+X1*L1;if(X1==RA||mA[F1>>JA]==0)t6=Z0(t6,F1-t6),W6===void 0?W6=t6:(W6+=String.fromCharCode(0),W6+=t6),t6=F1+L1}return q2(vA),W6},toWireType:function(vA,RA){typeof RA!="string"&&H0("Cannot pass non-string to C++ string type "+t1);var mA=i0(RA),W6=k5(4+mA+L1);return M[W6>>2]=mA>>JA,P0(RA,W6+4,mA+L1),vA!==null&&vA.push(q2,W6),W6},argPackAdvance:8,readValueFromPointer:CA,V:function(vA){q2(vA)}})},k:function(N1,L1,t1,Z0,P0,i0){L0[N1]={name:H1(L1),fa:t(t1,Z0),W:t(P0,i0),ia:[]}},h:function(N1,L1,t1,Z0,P0,i0,FA,JA,vA,RA){L0[N1].ia.push({oa:H1(L1),ta:t1,ra:t(Z0,P0),sa:i0,za:FA,ya:t(JA,vA),Aa:RA})},C:function(N1,L1){L1=H1(L1),z0(N1,{va:!0,name:L1,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(N1,L1,t1,Z0,P0){N1=Q5[N1],L1=k0(L1),t1=W4(t1);var i0=[];return M[Z0>>2]=S0(i0),N1(L1,t1,i0,P0)},t:function(N1,L1,t1,Z0){N1=Q5[N1],L1=k0(L1),t1=W4(t1),N1(L1,t1,null,Z0)},g:UA,m:function(N1,L1){var t1=$9(N1,L1),Z0=t1[0];L1=Z0.name+"_$"+t1.slice(1).map(function(FA){return FA.name}).join("_")+"$";var P0=S4[L1];if(P0!==void 0)return P0;var i0=Array(N1-1);return P0=P9((FA,JA,vA,RA)=>{for(var mA=0,W6=0;W6<N1-1;++W6)i0[W6]=t1[W6+1].readValueFromPointer(RA+mA),mA+=t1[W6+1].argPackAdvance;FA=FA[JA].apply(FA,i0);for(W6=0;W6<N1-1;++W6)t1[W6+1].ma&&t1[W6+1].ma(i0[W6]);if(!Z0.va)return Z0.toWireType(vA,FA)}),S4[L1]=P0},D:function(N1){4<N1&&(j1[N1].ga+=1)},r:function(N1){var L1=k0(N1);x0(L1),UA(N1)},c:function(){o("")},x:function(N1,L1,t1){I.copyWithin(N1,L1,L1+t1)},w:function(N1){var L1=I.length;if(N1>>>=0,2147483648<N1)return!1;for(var t1=1;4>=t1;t1*=2){var Z0=L1*(1+0.2/t1);Z0=Math.min(Z0,N1+100663296);var P0=Math;Z0=Math.max(N1,Z0),P0=P0.min.call(P0,2147483648,Z0+(65536-Z0%65536)%65536);A:{try{K.grow(P0-Z.byteLength+65535>>>16),T();var i0=1;break A}catch(FA){}i0=void 0}if(i0)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(N1,L1,t1,Z0){for(var P0=0,i0=0;i0<t1;i0++){var FA=M[L1>>2],JA=M[L1+4>>2];L1+=8;for(var vA=0;vA<JA;vA++){var RA=I[FA+vA],mA=p8[N1];RA===0||RA===10?((N1===1?J:X)(F(mA,0)),mA.length=0):mA.push(RA)}P0+=JA}return M[Z0>>2]=P0,0}};(function(){function N1(P0){_.asm=P0.exports,K=_.asm.E,T(),u=_.asm.J,r.unshift(_.asm.F),c--,_.monitorRunDependencies&&_.monitorRunDependencies(c),c==0&&(x!==null&&(clearInterval(x),x=null),l&&(P0=l,l=null,P0()))}function L1(P0){N1(P0.instance)}function t1(P0){return G1().then(function(i0){return WebAssembly.instantiate(i0,Z0)}).then(function(i0){return i0}).then(P0,function(i0){X("failed to asynchronously prepare wasm: "+i0),o(i0)})}var Z0={a:R9};if(c++,_.monitorRunDependencies&&_.monitorRunDependencies(c),_.instantiateWasm)try{return _.instantiateWasm(Z0,N1)}catch(P0){X("Module.instantiateWasm callback failed with error: "+P0),B(P0)}return function(){return G||typeof WebAssembly.instantiateStreaming!="function"||_1(I1)||typeof fetch!="function"?t1(L1):fetch(I1,{credentials:"same-origin"}).then(function(P0){return WebAssembly.instantiateStreaming(P0,Z0).then(L1,function(i0){return X("wasm streaming compile failed: "+i0),X("falling back to ArrayBuffer instantiation"),t1(L1)})})}().catch(B),{}})(),_.___wasm_call_ctors=function(){return(_.___wasm_call_ctors=_.asm.F).apply(null,arguments)};var A3=_.___getTypeName=function(){return(A3=_.___getTypeName=_.asm.G).apply(null,arguments)};_.__embind_initialize_bindings=function(){return(_.__embind_initialize_bindings=_.asm.H).apply(null,arguments)};var k5=_._malloc=function(){return(k5=_._malloc=_.asm.I).apply(null,arguments)},q2=_._free=function(){return(q2=_._free=_.asm.K).apply(null,arguments)};_.dynCall_jiji=function(){return(_.dynCall_jiji=_.asm.L).apply(null,arguments)};var U2;l=function N1(){U2||r4(),U2||(l=N1)};function r4(){function N1(){if(!U2&&(U2=!0,_.calledRun=!0,!$)){if(D1(r),Q(_),_.onRuntimeInitialized)_.onRuntimeInitialized();if(_.postRun)for(typeof _.postRun=="function"&&(_.postRun=[_.postRun]);_.postRun.length;){var L1=_.postRun.shift();m.unshift(L1)}D1(m)}}if(!(0<c)){if(_.preRun)for(typeof _.preRun=="function"&&(_.preRun=[_.preRun]);_.preRun.length;)s();D1(S),0<c||(_.setStatus?(_.setStatus("Running..."),setTimeout(function(){setTimeout(function(){_.setStatus("")},1),N1()},1)):N1())}}if(_.preInit)for(typeof _.preInit=="function"&&(_.preInit=[_.preInit]);0<_.preInit.length;)_.preInit.pop()();return r4(),D.ready}})(),Yv1=eQA;var u$=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),Fv1=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),Kv1=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),yb=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),k51=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),m$=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),FL=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),ABA=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),ql=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),x51=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),KL=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),$L=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),g51=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),$v1=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),f51=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),u51=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),UG=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),m51=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),DBA={ALIGN_AUTO:u$.Auto,ALIGN_FLEX_START:u$.FlexStart,ALIGN_CENTER:u$.Center,ALIGN_FLEX_END:u$.FlexEnd,ALIGN_STRETCH:u$.Stretch,ALIGN_BASELINE:u$.Baseline,ALIGN_SPACE_BETWEEN:u$.SpaceBetween,ALIGN_SPACE_AROUND:u$.SpaceAround,ALIGN_SPACE_EVENLY:u$.SpaceEvenly,BOX_SIZING_BORDER_BOX:Fv1.BorderBox,BOX_SIZING_CONTENT_BOX:Fv1.ContentBox,DIMENSION_WIDTH:Kv1.Width,DIMENSION_HEIGHT:Kv1.Height,DIRECTION_INHERIT:yb.Inherit,DIRECTION_LTR:yb.LTR,DIRECTION_RTL:yb.RTL,DISPLAY_FLEX:k51.Flex,DISPLAY_NONE:k51.None,DISPLAY_CONTENTS:k51.Contents,EDGE_LEFT:m$.Left,EDGE_TOP:m$.Top,EDGE_RIGHT:m$.Right,EDGE_BOTTOM:m$.Bottom,EDGE_START:m$.Start,EDGE_END:m$.End,EDGE_HORIZONTAL:m$.Horizontal,EDGE_VERTICAL:m$.Vertical,EDGE_ALL:m$.All,ERRATA_NONE:FL.None,ERRATA_STRETCH_FLEX_BASIS:FL.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:FL.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:FL.AbsolutePercentAgainstInnerSize,ERRATA_ALL:FL.All,ERRATA_CLASSIC:FL.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:ABA.WebFlexBasis,FLEX_DIRECTION_COLUMN:ql.Column,FLEX_DIRECTION_COLUMN_REVERSE:ql.ColumnReverse,FLEX_DIRECTION_ROW:ql.Row,FLEX_DIRECTION_ROW_REVERSE:ql.RowReverse,GUTTER_COLUMN:x51.Column,GUTTER_ROW:x51.Row,GUTTER_ALL:x51.All,JUSTIFY_FLEX_START:KL.FlexStart,JUSTIFY_CENTER:KL.Center,JUSTIFY_FLEX_END:KL.FlexEnd,JUSTIFY_SPACE_BETWEEN:KL.SpaceBetween,JUSTIFY_SPACE_AROUND:KL.SpaceAround,JUSTIFY_SPACE_EVENLY:KL.SpaceEvenly,LOG_LEVEL_ERROR:$L.Error,LOG_LEVEL_WARN:$L.Warn,LOG_LEVEL_INFO:$L.Info,LOG_LEVEL_DEBUG:$L.Debug,LOG_LEVEL_VERBOSE:$L.Verbose,LOG_LEVEL_FATAL:$L.Fatal,MEASURE_MODE_UNDEFINED:g51.Undefined,MEASURE_MODE_EXACTLY:g51.Exactly,MEASURE_MODE_AT_MOST:g51.AtMost,NODE_TYPE_DEFAULT:$v1.Default,NODE_TYPE_TEXT:$v1.Text,OVERFLOW_VISIBLE:f51.Visible,OVERFLOW_HIDDEN:f51.Hidden,OVERFLOW_SCROLL:f51.Scroll,POSITION_TYPE_STATIC:u51.Static,POSITION_TYPE_RELATIVE:u51.Relative,POSITION_TYPE_ABSOLUTE:u51.Absolute,UNIT_UNDEFINED:UG.Undefined,UNIT_POINT:UG.Point,UNIT_PERCENT:UG.Percent,UNIT_AUTO:UG.Auto,WRAP_NO_WRAP:m51.NoWrap,WRAP_WRAP:m51.Wrap,WRAP_WRAP_REVERSE:m51.WrapReverse},Zv1=DBA;function h51(A){function D(B,E,z){let J=B[E];B[E]=function(){for(var X=arguments.length,G=new Array(X),Y=0;Y<X;Y++)G[Y]=arguments[Y];return z.call(this,J,...G)}}for(let B of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let E={[UG.Point]:A.Node.prototype[B],[UG.Percent]:A.Node.prototype[`${B}Percent`],[UG.Auto]:A.Node.prototype[`${B}Auto`]};D(A.Node.prototype,B,function(z){for(var J=arguments.length,X=new Array(J>1?J-1:0),G=1;G<J;G++)X[G-1]=arguments[G];let Y=X.pop(),K,$;if(Y==="auto")K=UG.Auto,$=void 0;else if(typeof Y==="object")K=Y.unit,$=Y.valueOf();else if(K=typeof Y==="string"&&Y.endsWith("%")?UG.Percent:UG.Point,$=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN($))throw new Error(`Invalid value ${Y} for ${B}`);if(!E[K])throw new Error(`Failed to execute "${B}": Unsupported unit '${Y}'`);if($!==void 0)return E[K].call(this,...X,$);else return E[K].call(this,...X)})}function _(B){return A.MeasureCallback.implement({measure:function(){let{width:E,height:z}=B(...arguments);return{width:E??NaN,height:z??NaN}}})}D(A.Node.prototype,"setMeasureFunc",function(B,E){if(E)return B.call(this,_(E));else return this.unsetMeasureFunc()});function Q(B){return A.DirtiedCallback.implement({dirtied:B})}return D(A.Node.prototype,"setDirtiedFunc",function(B,E){B.call(this,Q(E))}),D(A.Config.prototype,"free",function(){A.Config.destroy(this)}),D(A.Node,"create",(B,E)=>{return E?A.Node.createWithConfig(E):A.Node.createDefault()}),D(A.Node.prototype,"free",function(){A.Node.destroy(this)}),D(A.Node.prototype,"freeRecursive",function(){for(let B=0,E=this.getChildCount();B<E;++B)this.getChild(0).freeRecursive();this.free()}),D(A.Node.prototype,"calculateLayout",function(B){let E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,J=arguments.length>3&&arguments[3]!==void 0?arguments[3]:yb.LTR;return B.call(this,E,z,J)}),{Config:A.Config,Node:A.Node,...Zv1}}var _BA=h51(await Yv1()),y6=_BA;function p51({onlyFirst:A=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",A?void 0:"g")}var QBA=p51();function vb(A){if(typeof A!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof A}\``);return A.replace(QBA,"")}function Uv1(A){return A===161||A===164||A===167||A===168||A===170||A===173||A===174||A>=176&&A<=180||A>=182&&A<=186||A>=188&&A<=191||A===198||A===208||A===215||A===216||A>=222&&A<=225||A===230||A>=232&&A<=234||A===236||A===237||A===240||A===242||A===243||A>=247&&A<=250||A===252||A===254||A===257||A===273||A===275||A===283||A===294||A===295||A===299||A>=305&&A<=307||A===312||A>=319&&A<=322||A===324||A>=328&&A<=331||A===333||A===338||A===339||A===358||A===359||A===363||A===462||A===464||A===466||A===468||A===470||A===472||A===474||A===476||A===593||A===609||A===708||A===711||A>=713&&A<=715||A===717||A===720||A>=728&&A<=731||A===733||A===735||A>=768&&A<=879||A>=913&&A<=929||A>=931&&A<=937||A>=945&&A<=961||A>=963&&A<=969||A===1025||A>=1040&&A<=1103||A===1105||A===8208||A>=8211&&A<=8214||A===8216||A===8217||A===8220||A===8221||A>=8224&&A<=8226||A>=8228&&A<=8231||A===8240||A===8242||A===8243||A===8245||A===8251||A===8254||A===8308||A===8319||A>=8321&&A<=8324||A===8364||A===8451||A===8453||A===8457||A===8467||A===8470||A===8481||A===8482||A===8486||A===8491||A===8531||A===8532||A>=8539&&A<=8542||A>=8544&&A<=8555||A>=8560&&A<=8569||A===8585||A>=8592&&A<=8601||A===8632||A===8633||A===8658||A===8660||A===8679||A===8704||A===8706||A===8707||A===8711||A===8712||A===8715||A===8719||A===8721||A===8725||A===8730||A>=8733&&A<=8736||A===8739||A===8741||A>=8743&&A<=8748||A===8750||A>=8756&&A<=8759||A===8764||A===8765||A===8776||A===8780||A===8786||A===8800||A===8801||A>=8804&&A<=8807||A===8810||A===8811||A===8814||A===8815||A===8834||A===8835||A===8838||A===8839||A===8853||A===8857||A===8869||A===8895||A===8978||A>=9312&&A<=9449||A>=9451&&A<=9547||A>=9552&&A<=9587||A>=9600&&A<=9615||A>=9618&&A<=9621||A===9632||A===9633||A>=9635&&A<=9641||A===9650||A===9651||A===9654||A===9655||A===9660||A===9661||A===9664||A===9665||A>=9670&&A<=9672||A===9675||A>=9678&&A<=9681||A>=9698&&A<=9701||A===9711||A===9733||A===9734||A===9737||A===9742||A===9743||A===9756||A===9758||A===9792||A===9794||A===9824||A===9825||A>=9827&&A<=9829||A>=9831&&A<=9834||A===9836||A===9837||A===9839||A===9886||A===9887||A===9919||A>=9926&&A<=9933||A>=9935&&A<=9939||A>=9941&&A<=9953||A===9955||A===9960||A===9961||A>=9963&&A<=9969||A===9972||A>=9974&&A<=9977||A===9979||A===9980||A===9982||A===9983||A===10045||A>=10102&&A<=10111||A>=11094&&A<=11097||A>=12872&&A<=12879||A>=57344&&A<=63743||A>=65024&&A<=65039||A===65533||A>=127232&&A<=127242||A>=127248&&A<=127277||A>=127280&&A<=127337||A>=127344&&A<=127373||A===127375||A===127376||A>=127387&&A<=127404||A>=917760&&A<=917999||A>=983040&&A<=1048573||A>=1048576&&A<=1114109}function oV(A){return A===12288||A>=65281&&A<=65376||A>=65504&&A<=65510}function rV(A){return A>=4352&&A<=4447||A===8986||A===8987||A===9001||A===9002||A>=9193&&A<=9196||A===9200||A===9203||A===9725||A===9726||A===9748||A===9749||A>=9776&&A<=9783||A>=9800&&A<=9811||A===9855||A>=9866&&A<=9871||A===9875||A===9889||A===9898||A===9899||A===9917||A===9918||A===9924||A===9925||A===9934||A===9940||A===9962||A===9970||A===9971||A===9973||A===9978||A===9981||A===9989||A===9994||A===9995||A===10024||A===10060||A===10062||A>=10067&&A<=10069||A===10071||A>=10133&&A<=10135||A===10160||A===10175||A===11035||A===11036||A===11088||A===11093||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12287||A>=12289&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12591||A>=12593&&A<=12686||A>=12688&&A<=12773||A>=12783&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=94176&&A<=94180||A===94192||A===94193||A>=94208&&A<=100343||A>=100352&&A<=101589||A>=101631&&A<=101640||A>=110576&&A<=110579||A>=110581&&A<=110587||A===110589||A===110590||A>=110592&&A<=110882||A===110898||A>=110928&&A<=110930||A===110933||A>=110948&&A<=110951||A>=110960&&A<=111355||A>=119552&&A<=119638||A>=119648&&A<=119670||A===126980||A===127183||A===127374||A>=127377&&A<=127386||A>=127488&&A<=127490||A>=127504&&A<=127547||A>=127552&&A<=127560||A===127568||A===127569||A>=127584&&A<=127589||A>=127744&&A<=127776||A>=127789&&A<=127797||A>=127799&&A<=127868||A>=127870&&A<=127891||A>=127904&&A<=127946||A>=127951&&A<=127955||A>=127968&&A<=127984||A===127988||A>=127992&&A<=128062||A===128064||A>=128066&&A<=128252||A>=128255&&A<=128317||A>=128331&&A<=128334||A>=128336&&A<=128359||A===128378||A===128405||A===128406||A===128420||A>=128507&&A<=128591||A>=128640&&A<=128709||A===128716||A>=128720&&A<=128722||A>=128725&&A<=128727||A>=128732&&A<=128735||A===128747||A===128748||A>=128756&&A<=128764||A>=128992&&A<=129003||A===129008||A>=129292&&A<=129338||A>=129340&&A<=129349||A>=129351&&A<=129535||A>=129648&&A<=129660||A>=129664&&A<=129673||A>=129679&&A<=129734||A>=129742&&A<=129756||A>=129759&&A<=129769||A>=129776&&A<=129784||A>=131072&&A<=196605||A>=196608&&A<=262141}function BBA(A){if(!Number.isSafeInteger(A))throw new TypeError(`Expected a code point, got \`${typeof A}\`.`)}function ZL(A,{ambiguousAsWide:D=!1}={}){if(BBA(A),oV(A)||rV(A)||D&&Uv1(A))return 2;return 1}var Cv1=F0(Iv1(),1),EBA=new Intl.Segmenter,zBA=/^\p{Default_Ignorable_Code_Point}$/u;function UF(A,D={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:_=!0,countAnsiEscapeCodes:Q=!1}=D;if(!Q)A=vb(A);if(A.length===0)return 0;let B=0,E={ambiguousAsWide:!_};for(let{segment:z}of EBA.segment(A)){let J=z.codePointAt(0);if(J<=31||J>=127&&J<=159)continue;if(J>=8203&&J<=8207||J===65279)continue;if(J>=768&&J<=879||J>=6832&&J<=6911||J>=7616&&J<=7679||J>=8400&&J<=8447||J>=65056&&J<=65071)continue;if(J>=55296&&J<=57343)continue;if(J>=65024&&J<=65039)continue;if(zBA.test(z))continue;if(Cv1.default().test(z)){B+=2;continue}B+=ZL(J,E)}return B}var Hv1=(A=0)=>(D)=>`\x1B[${D+A}m`,Vv1=(A=0)=>(D)=>`\x1B[${38+A};5;${D}m`,qv1=(A=0)=>(D,_,Q)=>`\x1B[${38+A};2;${D};${_};${Q}m`,K5={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]}},o$4=Object.keys(K5.modifier),JBA=Object.keys(K5.color),XBA=Object.keys(K5.bgColor),r$4=[...JBA,...XBA];function GBA(){let A=new Map;for(let[D,_]of Object.entries(K5)){for(let[Q,B]of Object.entries(_))K5[Q]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},_[Q]=K5[Q],A.set(B[0],B[1]);Object.defineProperty(K5,D,{value:_,enumerable:!1})}return Object.defineProperty(K5,"codes",{value:A,enumerable:!1}),K5.color.close="\x1B[39m",K5.bgColor.close="\x1B[49m",K5.color.ansi=Hv1(),K5.color.ansi256=Vv1(),K5.color.ansi16m=qv1(),K5.bgColor.ansi=Hv1(10),K5.bgColor.ansi256=Vv1(10),K5.bgColor.ansi16m=qv1(10),Object.defineProperties(K5,{rgbToAnsi256:{value:(D,_,Q)=>{if(D===_&&_===Q){if(D<8)return 16;if(D>248)return 231;return Math.round((D-8)/247*24)+232}return 16+36*Math.round(D/255*5)+6*Math.round(_/255*5)+Math.round(Q/255*5)},enumerable:!1},hexToRgb:{value:(D)=>{let _=/[a-f\d]{6}|[a-f\d]{3}/i.exec(D.toString(16));if(!_)return[0,0,0];let[Q]=_;if(Q.length===3)Q=[...Q].map((E)=>E+E).join("");let B=Number.parseInt(Q,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(D)=>K5.rgbToAnsi256(...K5.hexToRgb(D)),enumerable:!1},ansi256ToAnsi:{value:(D)=>{if(D<8)return 30+D;if(D<16)return 90+(D-8);let _,Q,B;if(D>=232)_=((D-232)*10+8)/255,Q=_,B=_;else{D-=16;let J=D%36;_=Math.floor(D/36)/5,Q=Math.floor(J/6)/5,B=J%6/5}let E=Math.max(_,Q,B)*2;if(E===0)return 30;let z=30+(Math.round(B)<<2|Math.round(Q)<<1|Math.round(_));if(E===2)z+=60;return z},enumerable:!1},rgbToAnsi:{value:(D,_,Q)=>K5.ansi256ToAnsi(K5.rgbToAnsi256(D,_,Q)),enumerable:!1},hexToAnsi:{value:(D)=>K5.ansi256ToAnsi(K5.hexToAnsi256(D)),enumerable:!1}}),K5}var YBA=GBA(),Wv1=YBA;var Ml=new Set(["\x1B",""]),FBA=39,d51="\x07",Nv1="[",KBA="]",Lv1="m",Wl=`${KBA}8;;`,Mv1=(A)=>`${Ml.values().next().value}${Nv1}${A}${Lv1}`,Ov1=(A)=>`${Ml.values().next().value}${Wl}${A}${d51}`,$BA=(A)=>A.split(" ").map((D)=>UF(D)),c51=(A,D,_)=>{let Q=[...D],B=!1,E=!1,z=UF(vb(A.at(-1)));for(let[J,X]of Q.entries()){let G=UF(X);if(z+G<=_)A[A.length-1]+=X;else A.push(X),z=0;if(Ml.has(X))B=!0,E=Q.slice(J+1,J+1+Wl.length).join("")===Wl;if(B){if(E){if(X===d51)B=!1,E=!1}else if(X===Lv1)B=!1;continue}if(z+=G,z===_&&J<Q.length-1)A.push(""),z=0}if(!z&&A.at(-1).length>0&&A.length>1)A[A.length-2]+=A.pop()},ZBA=(A)=>{let D=A.split(" "),_=D.length;while(_>0){if(UF(D[_-1])>0)break;_--}if(_===D.length)return A;return D.slice(0,_).join(" ")+D.slice(_).join("")},UBA=(A,D,_={})=>{if(_.trim!==!1&&A.trim()==="")return"";let Q="",B,E,z=$BA(A),J=[""];for(let[K,$]of A.split(" ").entries()){if(_.trim!==!1)J[J.length-1]=J.at(-1).trimStart();let F=UF(J.at(-1));if(K!==0){if(F>=D&&(_.wordWrap===!1||_.trim===!1))J.push(""),F=0;if(F>0||_.trim===!1)J[J.length-1]+=" ",F++}if(_.hard&&z[K]>D){let Z=D-F,U=1+Math.floor((z[K]-Z-1)/D);if(Math.floor((z[K]-1)/D)<U)J.push("");c51(J,$,D);continue}if(F+z[K]>D&&F>0&&z[K]>0){if(_.wordWrap===!1&&F<D){c51(J,$,D);continue}J.push("")}if(F+z[K]>D&&_.wordWrap===!1){c51(J,$,D);continue}J[J.length-1]+=$}if(_.trim!==!1)J=J.map((K)=>ZBA(K));let X=J.join(`
|
|
994
994
|
`),G=[...X],Y=0;for(let[K,$]of G.entries()){if(Q+=$,Ml.has($)){let{groups:Z}=new RegExp(`(?:\\${Nv1}(?<code>\\d+)m|\\${Wl}(?<uri>.*)${d51})`).exec(X.slice(Y))||{groups:{}};if(Z.code!==void 0){let U=Number.parseFloat(Z.code);B=U===FBA?void 0:U}else if(Z.uri!==void 0)E=Z.uri.length===0?void 0:Z.uri}let F=Wv1.codes.get(Number(B));if(G[K+1]===`
|
|
995
995
|
`){if(E)Q+=Ov1("");if(B&&F)Q+=Mv1(F)}else if($===`
|
|
@@ -1152,7 +1152,7 @@ Please report this to https://github.com/markedjs/marked.`,A){let Q="<p>An error
|
|
|
1152
1152
|
`).slice(0,CvA).map((D)=>D.length<=v10?D:`${D.slice(0,v10-3)}...`).join(`
|
|
1153
1153
|
`),Zq=(A)=>sL(A).length!==A.length,S10=({tool:A,expanded:D})=>{let _=A.input.type==="text"&&Zq(A.input.value)||A.input.type==="file"&&Zq(A.input.content),Q=A.state.type==="success"&&Zq(A.state.output),B=!D&&(_||Q),E=D&&(_||Q);return E4(t0,{flexDirection:"column",marginY:0,children:[a0(t0,{children:E4(T0,{color:"yellow",children:["\uD83D\uDD27 Tool: ",A.name]})}),E4(t0,{paddingLeft:2,flexDirection:"column",children:[A.input.type==="text"&&a0(ti1,{value:A.input.value,expanded:D}),A.input.type==="file"&&a0(ei1,{filepath:A.input.filepath,content:A.input.content,expanded:D}),A.input.type==="diff"&&a0(y10,{old:A.input.old,new:A.input.new}),A.state.type==="approval_request"&&a0(zI,{markdown:A.state.content}),A.state.type==="loading"&&a0(T0,{color:"yellow",children:"⏳ Loading..."}),A.state.type==="success"&&E4(PF,{children:[E4(T0,{color:"green",children:["✓ Output:",a0(CG,{}),D?A.state.output:sL(A.state.output)]}),!D&&Q&&a0(T0,{dimColor:!0,children:"(truncated)"})]}),A.state.type==="error"&&E4(T0,{color:"red",children:["✗ Error: ",A.state.error]}),B&&a0(T0,{dimColor:!0,children:"Press Ctrl+O to expand"}),E&&a0(T0,{dimColor:!0,children:"Press Ctrl+O to collapse"})]}),a0(CG,{})]})};var IW=F0(N2(),1);var BT=F0(N2(),1);var j10=F0(wA(),1),C2=j10.createInterfaceId("GitLabApiService");var x10=F0(ZG(),1);function b10(A){return(A.split(`
|
|
1154
1154
|
`).find((D)=>D.trim())??A.replace(`
|
|
1155
|
-
`,"")).trim()}function HvA(A){return b10(A).match(/^(query|mutation|subscription)\s+/)?.[1]}function VvA(A){return b10(A).match(/(?:query|mutation|subscription)\s+(\w+)/)?.[1]}function En(A){let D=HvA(A),_=VvA(A);if(D)return`${D}: ${_??"anonymous"}`;return}var qvA=(A)=>{if(A.method==="GET"||A.method==="HEAD")return;if(!A.body)return;return n9("Body",JSON.stringify(A.body))},WvA=(A)=>{if(A.method==="POST"||A.method==="PATCH"||A.method==="PUT")return;if(!A.searchParams)return;return n9("Search Params",JSON.stringify(A.searchParams))},MvA=(A)=>{if(!A.headers)return;return n9("Headers",JSON.stringify(A.headers))},qx=(A)=>{switch(A.type){case"graphql":return gB("GraphQL Request",n9("Query",A.query.replace(/[\s\n]+/g," ").trim()),n9("Variables",JSON.stringify(A.variables)));case"rest":return gB("REST Request",n9("Method",A.method),n9("Path",A.path),MvA(A),WvA(A),qvA(A));default:return n9("Unknown request type",A.type)}};var g10=(A)=>{try{return JSON.parse(A)?.error}catch{return}},OvA=(A)=>{if(!A)return"";try{return JSON.parse(A)?.error_description??""}catch{return""}},_Q1=(A,D)=>Boolean(A.status===401&&D&&g10(D)==="invalid_token"),QQ1=(A,D)=>Boolean(A.status===400&&D&&g10(D)==="invalid_grant");class zn extends Error{request;cause;constructor(A,D,_){super(A);this.request=D,this.cause=_?.cause}get sanitizedMessage(){return"API request failed"}}class BQ1 extends zn{status;constructor(A,D,_,Q){super(A,D,Q);this.status=_}}class Jn extends BQ1{type="rest";response;#A;constructor(A,D,_,Q){let B=`Fetching ${_} from ${D.url} failed. ${OvA(Q)}`;if(_Q1(D,Q))B=`Request for ${_} failed because the token is expired or revoked.`;if(QQ1(D,Q))B="Request to refresh token failed, because it's revoked or already refreshed.";super(B,A,D.status);this.response=D,this.#A=Q}isInvalidTokenOrInvalidRefresh(){return _Q1(this.response,this.#A)||QQ1(this.response,this.#A)}get ctx(){return gB("Error details",qx(this.request),this.#D())}get sanitizedMessage(){if(_Q1(this.response,this.#A))return"Request failed because the token is expired or revoked.";if(QQ1(this.response,this.#A))return"Request to refresh token failed, because it's revoked or already refreshed.";return`Request failed with error code: ${this.response.status}`}#D(){let A=Object.fromEntries(this.response.headers.entries());return gB("Response",n9("Status",String(this.status)),!x10.default.isEmpty(A)?n9("Headers",JSON.stringify(A)):void 0,this.#A?n9("Response body",this.#A):void 0)}get body(){return this.#A}}var k10=(A)=>A.errors?.map((D)=>D.message).join(",")||"";class EQ1 extends BQ1{type="graphql";graphQlResponse;#A;constructor(A,D){let _=En(A.query),Q=`GraphQL request "${_}" failed with ${k10(D)}`;super(Q,A,D.status);this.graphQlResponse=D,this.#A=_}get sanitizedMessage(){return`GraphQL request "${this.#A}" failed with status ${this.graphQlResponse.status}`}get ctx(){return gB("Error details",qx(this.request),this.#D())}#D(){return gB("Response",n9("Status",String(this.graphQlResponse.status)),n9("Errors",k10(this.graphQlResponse)))}}class Xn extends zn{type="network";cause;constructor(A,D){let _=D instanceof Error?D.message:`Network error occurred: ${D}`;super(_,A);this.cause=D}get ctx(){return gB("Error details",qx(this.request),this.#A())}get sanitizedMessage(){let A=this.cause,D=A?.code||A?.errno,_=this.#D(D);return`Network error occurred${_?`: ${_}`:""}`}#A(){if(!this.cause||!(this.cause instanceof Error))return;let A=this.cause;if(A.code||A.errno){let D=A.code||A.errno,_=this.#D(D),Q=_?`${_} (${D})`:`Error code: ${D}`;return n9("Network issue",Q)}return}#D(A){return{ENOTFOUND:"DNS lookup failed - hostname could not be resolved",ECONNREFUSED:"Connection refused - server is not accepting connections",ECONNRESET:"Connection reset by peer - server closed the connection unexpectedly",ETIMEDOUT:"Connection timed out - server did not respond in time",EHOSTUNREACH:"Host unreachable - network route to server not available",ENETUNREACH:"Network unreachable - no network connectivity",ECONNABORTED:"Connection aborted - request was cancelled",EBADF:"Bad file descriptor - network connection issue",EPIPE:"Broken pipe - connection closed while writing data",EAI_AGAIN:"DNS lookup failed temporarily - try again later"}[A]}}class NvA extends zn{type="timeout";#A;constructor(A,D){let _=`Request timed out${D?` after ${D}ms`:""}`;super(_,A);this.#A=_}get ctx(){return gB("Error details",qx(this.request))}get sanitizedMessage(){return this.#A}}var f10=Jn;var Wx={type:"rest",method:"GET",path:"/api/v4/version"};var Gn=JSON;var u10=(A)=>A.toUpperCase(),m10=(A)=>{let D={};return A.forEach((_,Q)=>{D[Q]=_}),D};var h10=(A,D,_)=>{return A.document?A:{document:A,variables:D,requestHeaders:_,signal:void 0}},p10=(A,D,_)=>{return A.query?A:{query:A,variables:D,requestHeaders:_,signal:void 0}},c10=(A,D)=>{return A.documents?A:{documents:A,requestHeaders:D,signal:void 0}};var Xo=F0(x90(),1),g90=(A)=>{let D=void 0,_=A.definitions.filter((Q)=>Q.kind==="OperationDefinition");if(_.length===1)D=_[0]?.name?.value;return D},AW=(A)=>{if(typeof A==="string"){let _=void 0;try{let Q=Xo.parse(A);_=g90(Q)}catch(Q){}return{query:A,operationName:_}}let D=g90(A);return{query:Xo.print(A),operationName:D}};class Cz extends Error{constructor(A,D){let _=`${Cz.extractMessage(A)}: ${JSON.stringify({response:A,request:D})}`;super(_);if(Object.setPrototypeOf(this,Cz.prototype),this.response=A,this.request=D,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,Cz)}static extractMessage(A){return A.errors?.[0]?.message??`GraphQL Error (Code: ${A.status})`}}var cI=F0(L50(),1);var QaA="connection_init",BaA="connection_ack",R50="ping",T50="pong",EaA="subscribe",zaA="next",JaA="error",y50="complete";class pI{get type(){return this._type}get id(){return this._id}get payload(){return this._payload}constructor(A,D,_){this._type=A,this._payload=D,this._id=_}get text(){let A={type:this.type};if(this.id!=null&&this.id!=null)A.id=this.id;if(this.payload!=null&&this.payload!=null)A.payload=this.payload;return JSON.stringify(A)}static parse(A,D){let{type:_,payload:Q,id:B}=JSON.parse(A);return new pI(_,D(Q),B)}}class dE1{constructor(A,{onInit:D,onAcknowledged:_,onPing:Q,onPong:B}){this.socketState={acknowledged:!1,lastRequestId:0,subscriptions:{}},this.socket=A,A.addEventListener("open",async(E)=>{this.socketState.acknowledged=!1,this.socketState.subscriptions={},A.send(GaA(D?await D():null).text)}),A.addEventListener("close",(E)=>{this.socketState.acknowledged=!1,this.socketState.subscriptions={}}),A.addEventListener("error",(E)=>{console.error(E)}),A.addEventListener("message",(E)=>{try{let z=XaA(E.data);switch(z.type){case BaA:{if(this.socketState.acknowledged)console.warn("Duplicate CONNECTION_ACK message ignored");else if(this.socketState.acknowledged=!0,_)_(z.payload);return}case R50:{if(Q)Q(z.payload).then((Y)=>A.send(P50(Y).text));else A.send(P50(null).text);return}case T50:{if(B)B(z.payload);return}}if(!this.socketState.acknowledged)return;if(z.id===void 0||z.id===null||!this.socketState.subscriptions[z.id])return;let{query:J,variables:X,subscriber:G}=this.socketState.subscriptions[z.id];switch(z.type){case zaA:{if(!z.payload.errors&&z.payload.data)G.next&&G.next(z.payload.data);if(z.payload.errors)G.error&&G.error(new Cz({...z.payload,status:200},{query:J,variables:X}));return}case JaA:{G.error&&G.error(new Cz({errors:z.payload,status:200},{query:J,variables:X}));return}case y50:{G.complete&&G.complete(),delete this.socketState.subscriptions[z.id];return}}}catch(z){console.error(z),A.close(1006)}A.close(4400,"Unknown graphql-ws message.")})}makeSubscribe(A,D,_,Q){let B=(this.socketState.lastRequestId++).toString();return this.socketState.subscriptions[B]={query:A,variables:Q,subscriber:_},this.socket.send(FaA(B,{query:A,operationName:D,variables:Q}).text),()=>{this.socket.send(KaA(B).text),delete this.socketState.subscriptions[B]}}rawRequest(A,D){return new Promise((_,Q)=>{let B;this.rawSubscribe(A,{next:(E,z)=>B={data:E,extensions:z},error:Q,complete:()=>_(B)},D)})}request(A,D){return new Promise((_,Q)=>{let B;this.subscribe(A,{next:(E)=>B=E,error:Q,complete:()=>_(B)},D)})}subscribe(A,D,_){let{query:Q,operationName:B}=AW(A);return this.makeSubscribe(Q,B,D,_)}rawSubscribe(A,D,_){return this.makeSubscribe(A,void 0,D,_)}ping(A){this.socket.send(YaA(A).text)}close(){this.socket.close(1000)}}dE1.PROTOCOL="graphql-transport-ws";function XaA(A,D=(_)=>_){return pI.parse(A,D)}function GaA(A){return new pI(QaA,A)}function YaA(A){return new pI(R50,A,void 0)}function P50(A){return new pI(T50,A,void 0)}function FaA(A,D){return new pI(EaA,D,A)}function KaA(A){return new pI(y50,void 0,A)}var UR=(A)=>{let D={};if(A)if(typeof Headers!=="undefined"&&A instanceof Headers||cI&&cI.Headers&&A instanceof cI.Headers)D=m10(A);else if(Array.isArray(A))A.forEach(([_,Q])=>{if(_&&Q!==void 0)D[_]=Q});else D=A;return D},v50=(A)=>A.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),$aA=(A)=>{if(!Array.isArray(A.query)){let Q=A,B=[`query=${encodeURIComponent(v50(Q.query))}`];if(A.variables)B.push(`variables=${encodeURIComponent(Q.jsonSerializer.stringify(Q.variables))}`);if(Q.operationName)B.push(`operationName=${encodeURIComponent(Q.operationName)}`);return B.join("&")}if(typeof A.variables!=="undefined"&&!Array.isArray(A.variables))throw new Error("Cannot create query with given variable type, array expected");let D=A,_=A.query.reduce((Q,B,E)=>{return Q.push({query:v50(B),variables:D.variables?D.jsonSerializer.stringify(D.variables[E]):void 0}),Q},[]);return`query=${encodeURIComponent(D.jsonSerializer.stringify(_))}`},ZaA=(A)=>async(D)=>{let{url:_,query:Q,variables:B,operationName:E,fetch:z,fetchOptions:J,middleware:X}=D,G={...D.headers},Y="",K=void 0;if(A==="POST"){if(K=UaA(Q,B,E,J.jsonSerializer),typeof K==="string")G["Content-Type"]="application/json"}else Y=$aA({query:Q,variables:B,operationName:E,jsonSerializer:J.jsonSerializer??Gn});let $={method:A,headers:G,body:K,...J},F=_,Z=$;if(X){let U=await Promise.resolve(X({...$,url:_,operationName:E,variables:B})),{url:I,...V}=U;F=I,Z=V}if(Y)F=`${F}?${Y}`;return await z(F,Z)};class aE1{constructor(A,D={}){this.url=A,this.requestConfig=D,this.rawRequest=async(..._)=>{let[Q,B,E]=_,z=p10(Q,B,E),{headers:J,fetch:X=cI.default,method:G="POST",requestMiddleware:Y,responseMiddleware:K,...$}=this.requestConfig,{url:F}=this;if(z.signal!==void 0)$.signal=z.signal;let{operationName:Z}=AW(z.query);return lE1({url:F,query:z.query,variables:z.variables,headers:{...UR(iE1(J)),...UR(z.requestHeaders)},operationName:Z,fetch:X,method:G,fetchOptions:$,middleware:Y}).then((U)=>{if(K)K(U);return U}).catch((U)=>{if(K)K(U);throw U})}}async request(A,...D){let[_,Q]=D,B=h10(A,_,Q),{headers:E,fetch:z=cI.default,method:J="POST",requestMiddleware:X,responseMiddleware:G,...Y}=this.requestConfig,{url:K}=this;if(B.signal!==void 0)Y.signal=B.signal;let{query:$,operationName:F}=AW(B.document);return lE1({url:K,query:$,variables:B.variables,headers:{...UR(iE1(E)),...UR(B.requestHeaders)},operationName:F,fetch:z,method:J,fetchOptions:Y,middleware:X}).then((Z)=>{if(G)G(Z);return Z.data}).catch((Z)=>{if(G)G(Z);throw Z})}batchRequests(A,D){let _=c10(A,D),{headers:Q,...B}=this.requestConfig;if(_.signal!==void 0)B.signal=_.signal;let E=_.documents.map(({document:J})=>AW(J).query),z=_.documents.map(({variables:J})=>J);return lE1({url:this.url,query:E,variables:z,headers:{...UR(iE1(Q)),...UR(_.requestHeaders)},operationName:void 0,fetch:this.requestConfig.fetch??cI.default,method:this.requestConfig.method||"POST",fetchOptions:B,middleware:this.requestConfig.requestMiddleware}).then((J)=>{if(this.requestConfig.responseMiddleware)this.requestConfig.responseMiddleware(J);return J.data}).catch((J)=>{if(this.requestConfig.responseMiddleware)this.requestConfig.responseMiddleware(J);throw J})}setHeaders(A){return this.requestConfig.headers=A,this}setHeader(A,D){let{headers:_}=this.requestConfig;if(_)_[A]=D;else this.requestConfig.headers={[A]:D};return this}setEndpoint(A){return this.url=A,this}}var lE1=async(A)=>{let{query:D,variables:_,fetchOptions:Q}=A,B=ZaA(u10(A.method??"post")),E=Array.isArray(A.query),z=await B(A),J=await waA(z,Q.jsonSerializer??Gn),X=Array.isArray(J)?!J.some(({data:Y})=>!Y):Boolean(J.data),G=Array.isArray(J)||!J.errors||Array.isArray(J.errors)&&!J.errors.length||Q.errorPolicy==="all"||Q.errorPolicy==="ignore";if(z.ok&&G&&X){let{errors:Y,...K}=Array.isArray(J)?J:J,$=Q.errorPolicy==="ignore"?K:J;return{...E?{data:$}:$,headers:z.headers,status:z.status}}else throw new Cz({...typeof J==="string"?{error:J}:J,status:z.status,headers:z.headers},{query:D,variables:_})};var UaA=(A,D,_,Q)=>{let B=Q??Gn;if(!Array.isArray(A))return B.stringify({query:A,variables:D,operationName:_});if(typeof D!=="undefined"&&!Array.isArray(D))throw new Error("Cannot create request body with given variable type, array expected");let E=A.reduce((z,J,X)=>{return z.push({query:J,variables:D?D[X]:void 0}),z},[]);return B.stringify(E)},waA=async(A,D)=>{let _;if(A.headers.forEach((Q,B)=>{if(B.toLowerCase()==="content-type")_=Q}),_&&(_.toLowerCase().startsWith("application/json")||_.toLowerCase().startsWith("application/graphql+json")||_.toLowerCase().startsWith("application/graphql-response+json")))return D.parse(await A.text());else return A.text()},iE1=(A)=>{return typeof A==="function"?A():A},pJ=(A,...D)=>{return A.reduce((_,Q,B)=>`${_}${Q}${B in D?String(D[B]):""}`,"")};var S50=async(A,D,_)=>{if(!D.ok){let Q=await D.text().catch(()=>{return});throw new f10(A,D,_,Q)}};function LD(){return"8.40.0"}var j50=(A)=>{let D=A?`${A?.name}:${A?.version}`:"missing client info";return`gitlab-language-server:${LD()} (${D})`};function b50(A){return A!==null&&A!==void 0}var nE1=(A,D)=>{return Object.entries(D).forEach(([_,Q])=>{if(b50(Q))A.searchParams.append(_,String(Q))}),A},Uo=(A)=>A.toString().replace(/\/?$/,"/"),wR=(A)=>A.replace(/^\.?\/?/,"./"),k50=(A)=>{if(A.startsWith("git@")){let D=A.match(/git@([^:]+):(.+)/);if(D){let[,_,Q]=D;return`https://${_}/${Q}`}}if(A.startsWith("git://"))return A.replace("git://","https://");if(A.startsWith("ssh://"))return A.replace("ssh://","https://").replace(/git@([^/]+)/,"$1");return A};var IaA=(A)=>A.split("/").pop()||"unknown resource";class oE1{#A;#D;#_;#Q;#B;constructor(A,D,_,Q,B){this.#A=A,this.#D=D,this.#_=new URL(Uo(Q)),this.#Q=B,this.#B=_}getDefaultHeaders(){return{Authorization:`Bearer ${this.#Q}`,"User-Agent":j50(this.#B),"X-Gitlab-Language-Server-Version":LD()}}async fetchFromApiRaw(A){try{let D=`Unknown request method "${A.method}", request type "${A.type}"`;switch(A.method){case"GET":return await this.#z(A);case"POST":return await this.#J(A);case"PATCH":return await this.#X(A);case"PUT":return await this.#Y(A);case"HEAD":return await this.#G(A);default:throw new Error(D)}}catch(D){throw new Xn(A,D)}}async fetchFromApi(A){if(A.type==="graphql")return this.#E(A);let D=await this.fetchFromApiRaw(A);return await S50(A,D,IaA(A.path)),D.json()}fetchOperation=(A)=>(D)=>this.fetchFromApi({...A,signal:D});async#E(A){let D=new URL("./api/graphql",this.#_),_=En(A.query);if(_)this.#A.debug(`[SimpleApiClient] Making GraphQL request: ${_}`);let Q=async(E,z)=>{let J=E instanceof URL?E.toString():E;return this.#D.post(J,{...z,headers:{...z?.headers},signal:A.signal})},B=new aE1(D.href,{fetch:Q,headers:{...this.getDefaultHeaders()}});try{return await B.request(A.query,A.variables)}catch(E){if(E instanceof Cz)throw new EQ1(A,E.response);throw new Xn(A,E)}}async#z(A){let D=wR(A.path),_=new URL(D,this.#_);return nE1(_,A.searchParams??{}),this.#D.get(_,{headers:{...this.getDefaultHeaders(),...A.headers},signal:A.signal})}async#J(A){let D=wR(A.path),_=new URL(D,this.#_);return this.#D.post(_,{headers:{"Content-Type":"application/json",...this.getDefaultHeaders(),...A.headers},body:JSON.stringify(A.body),signal:A.signal})}async#X(A){let D=wR(A.path),_=new URL(D,this.#_);return this.#D.patch(_,{headers:{"Content-Type":"application/json",...this.getDefaultHeaders(),...A.headers},body:JSON.stringify(A.body),signal:A.signal})}async#Y(A){let D=wR(A.path),_=new URL(D,this.#_);return this.#D.put(_,{headers:{"Content-Type":"application/json",...this.getDefaultHeaders(),...A.headers},body:JSON.stringify(A.body),signal:A.signal})}async#G(A){let D=wR(A.path),_=new URL(D,this.#_);return nE1(_,A.searchParams??{}),this.#D.head(_,{headers:{...this.getDefaultHeaders(),...A.headers},signal:A.signal})}}var x50="api",g50=(A)=>{if(!(A instanceof Jn)||!A.isInvalidTokenOrInvalidRefresh())return{valid:!1,reason:"unknown",message:`Token validation failed: ${A}`};return{valid:!1,reason:"invalid_token",message:"Token is invalid or expired."}},f50=(A)=>{if(A.includes(x50))return;return{valid:!1,reason:"invalid_scopes",message:`Token has scope(s) ${A.map((_)=>`'${_}'`).join(", ")} (needs ${x50}).`}};async function CaA(A,D){let _={type:"rest",method:"GET",path:"/api/v4/personal_access_tokens/self"},{scopes:Q}=await A.fetchFromApi(_),B=f50(Q);if(B)return B;return{valid:!0,tokenInfo:{scopes:Q,type:"pat",token:D}}}async function HaA(A,D){let _={type:"rest",method:"GET",path:"/oauth/token/info"},{scope:Q}=await A.fetchFromApi(_),B=f50(Q);if(B)return B;return{valid:!0,tokenInfo:{scopes:Q,type:"oauth",token:D}}}async function u50(A,D){if(!D)return{valid:!1,message:"No token provided",reason:"invalid_token"};let _=await Promise.all([CaA(A,D).catch(g50),HaA(A,D).catch(g50)]),Q=_.find((J)=>J.valid);if(Q)return Q;let B=_.filter((J)=>!J.valid),E=B.find((J)=>J.reason==="invalid_scopes");if(E)return E;let z=B.find((J)=>J.reason==="invalid_token");if(z)return z;return _[0]}var wo=F0(wA(),1);var rE1=wo.createInterfaceId("ProjectService");class wg{#A;#D;constructor(A,D){this.#A=D,this.#D=NA(A,"[ProjectService]")}async getProjectFromPathWithNamespace(A){return this.#D.debug(`Fetching details for project: ${A}`),this.#A.fetchFromApi({type:"rest",method:"GET",path:`/api/v4/projects/${encodeURIComponent(A)}`})}async getProjectIdsFromPaths(A){return(await this.#A.fetchFromApi({type:"graphql",query:pJ`
|
|
1155
|
+
`,"")).trim()}function HvA(A){return b10(A).match(/^(query|mutation|subscription)\s+/)?.[1]}function VvA(A){return b10(A).match(/(?:query|mutation|subscription)\s+(\w+)/)?.[1]}function En(A){let D=HvA(A),_=VvA(A);if(D)return`${D}: ${_??"anonymous"}`;return}var qvA=(A)=>{if(A.method==="GET"||A.method==="HEAD")return;if(!A.body)return;return n9("Body",JSON.stringify(A.body))},WvA=(A)=>{if(A.method==="POST"||A.method==="PATCH"||A.method==="PUT")return;if(!A.searchParams)return;return n9("Search Params",JSON.stringify(A.searchParams))},MvA=(A)=>{if(!A.headers)return;return n9("Headers",JSON.stringify(A.headers))},qx=(A)=>{switch(A.type){case"graphql":return gB("GraphQL Request",n9("Query",A.query.replace(/[\s\n]+/g," ").trim()),n9("Variables",JSON.stringify(A.variables)));case"rest":return gB("REST Request",n9("Method",A.method),n9("Path",A.path),MvA(A),WvA(A),qvA(A));default:return n9("Unknown request type",A.type)}};var g10=(A)=>{try{return JSON.parse(A)?.error}catch{return}},OvA=(A)=>{if(!A)return"";try{return JSON.parse(A)?.error_description??""}catch{return""}},_Q1=(A,D)=>Boolean(A.status===401&&D&&g10(D)==="invalid_token"),QQ1=(A,D)=>Boolean(A.status===400&&D&&g10(D)==="invalid_grant");class zn extends Error{request;cause;constructor(A,D,_){super(A);this.request=D,this.cause=_?.cause}get sanitizedMessage(){return"API request failed"}}class BQ1 extends zn{status;constructor(A,D,_,Q){super(A,D,Q);this.status=_}}class Jn extends BQ1{type="rest";response;#A;constructor(A,D,_,Q){let B=`Fetching ${_} from ${D.url} failed. ${OvA(Q)}`;if(_Q1(D,Q))B=`Request for ${_} failed because the token is expired or revoked.`;if(QQ1(D,Q))B="Request to refresh token failed, because it's revoked or already refreshed.";super(B,A,D.status);this.response=D,this.#A=Q}isInvalidTokenOrInvalidRefresh(){return _Q1(this.response,this.#A)||QQ1(this.response,this.#A)}get ctx(){return gB("Error details",qx(this.request),this.#D())}get sanitizedMessage(){if(_Q1(this.response,this.#A))return"Request failed because the token is expired or revoked.";if(QQ1(this.response,this.#A))return"Request to refresh token failed, because it's revoked or already refreshed.";return`Request failed with error code: ${this.response.status}`}#D(){let A=Object.fromEntries(this.response.headers.entries());return gB("Response",n9("Status",String(this.status)),!x10.default.isEmpty(A)?n9("Headers",JSON.stringify(A)):void 0,this.#A?n9("Response body",this.#A):void 0)}get body(){return this.#A}}var k10=(A)=>A.errors?.map((D)=>D.message).join(",")||"";class EQ1 extends BQ1{type="graphql";graphQlResponse;#A;constructor(A,D){let _=En(A.query),Q=`GraphQL request "${_}" failed with ${k10(D)}`;super(Q,A,D.status);this.graphQlResponse=D,this.#A=_}get sanitizedMessage(){return`GraphQL request "${this.#A}" failed with status ${this.graphQlResponse.status}`}get ctx(){return gB("Error details",qx(this.request),this.#D())}#D(){return gB("Response",n9("Status",String(this.graphQlResponse.status)),n9("Errors",k10(this.graphQlResponse)))}}class Xn extends zn{type="network";cause;constructor(A,D){let _=D instanceof Error?D.message:`Network error occurred: ${D}`;super(_,A);this.cause=D}get ctx(){return gB("Error details",qx(this.request),this.#A())}get sanitizedMessage(){let A=this.cause,D=A?.code||A?.errno,_=this.#D(D);return`Network error occurred${_?`: ${_}`:""}`}#A(){if(!this.cause||!(this.cause instanceof Error))return;let A=this.cause;if(A.code||A.errno){let D=A.code||A.errno,_=this.#D(D),Q=_?`${_} (${D})`:`Error code: ${D}`;return n9("Network issue",Q)}return}#D(A){return{ENOTFOUND:"DNS lookup failed - hostname could not be resolved",ECONNREFUSED:"Connection refused - server is not accepting connections",ECONNRESET:"Connection reset by peer - server closed the connection unexpectedly",ETIMEDOUT:"Connection timed out - server did not respond in time",EHOSTUNREACH:"Host unreachable - network route to server not available",ENETUNREACH:"Network unreachable - no network connectivity",ECONNABORTED:"Connection aborted - request was cancelled",EBADF:"Bad file descriptor - network connection issue",EPIPE:"Broken pipe - connection closed while writing data",EAI_AGAIN:"DNS lookup failed temporarily - try again later"}[A]}}class NvA extends zn{type="timeout";#A;constructor(A,D){let _=`Request timed out${D?` after ${D}ms`:""}`;super(_,A);this.#A=_}get ctx(){return gB("Error details",qx(this.request))}get sanitizedMessage(){return this.#A}}var f10=Jn;var Wx={type:"rest",method:"GET",path:"/api/v4/version"};var Gn=JSON;var u10=(A)=>A.toUpperCase(),m10=(A)=>{let D={};return A.forEach((_,Q)=>{D[Q]=_}),D};var h10=(A,D,_)=>{return A.document?A:{document:A,variables:D,requestHeaders:_,signal:void 0}},p10=(A,D,_)=>{return A.query?A:{query:A,variables:D,requestHeaders:_,signal:void 0}},c10=(A,D)=>{return A.documents?A:{documents:A,requestHeaders:D,signal:void 0}};var Xo=F0(x90(),1),g90=(A)=>{let D=void 0,_=A.definitions.filter((Q)=>Q.kind==="OperationDefinition");if(_.length===1)D=_[0]?.name?.value;return D},AW=(A)=>{if(typeof A==="string"){let _=void 0;try{let Q=Xo.parse(A);_=g90(Q)}catch(Q){}return{query:A,operationName:_}}let D=g90(A);return{query:Xo.print(A),operationName:D}};class Cz extends Error{constructor(A,D){let _=`${Cz.extractMessage(A)}: ${JSON.stringify({response:A,request:D})}`;super(_);if(Object.setPrototypeOf(this,Cz.prototype),this.response=A,this.request=D,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,Cz)}static extractMessage(A){return A.errors?.[0]?.message??`GraphQL Error (Code: ${A.status})`}}var cI=F0(L50(),1);var QaA="connection_init",BaA="connection_ack",R50="ping",T50="pong",EaA="subscribe",zaA="next",JaA="error",y50="complete";class pI{get type(){return this._type}get id(){return this._id}get payload(){return this._payload}constructor(A,D,_){this._type=A,this._payload=D,this._id=_}get text(){let A={type:this.type};if(this.id!=null&&this.id!=null)A.id=this.id;if(this.payload!=null&&this.payload!=null)A.payload=this.payload;return JSON.stringify(A)}static parse(A,D){let{type:_,payload:Q,id:B}=JSON.parse(A);return new pI(_,D(Q),B)}}class dE1{constructor(A,{onInit:D,onAcknowledged:_,onPing:Q,onPong:B}){this.socketState={acknowledged:!1,lastRequestId:0,subscriptions:{}},this.socket=A,A.addEventListener("open",async(E)=>{this.socketState.acknowledged=!1,this.socketState.subscriptions={},A.send(GaA(D?await D():null).text)}),A.addEventListener("close",(E)=>{this.socketState.acknowledged=!1,this.socketState.subscriptions={}}),A.addEventListener("error",(E)=>{console.error(E)}),A.addEventListener("message",(E)=>{try{let z=XaA(E.data);switch(z.type){case BaA:{if(this.socketState.acknowledged)console.warn("Duplicate CONNECTION_ACK message ignored");else if(this.socketState.acknowledged=!0,_)_(z.payload);return}case R50:{if(Q)Q(z.payload).then((Y)=>A.send(P50(Y).text));else A.send(P50(null).text);return}case T50:{if(B)B(z.payload);return}}if(!this.socketState.acknowledged)return;if(z.id===void 0||z.id===null||!this.socketState.subscriptions[z.id])return;let{query:J,variables:X,subscriber:G}=this.socketState.subscriptions[z.id];switch(z.type){case zaA:{if(!z.payload.errors&&z.payload.data)G.next&&G.next(z.payload.data);if(z.payload.errors)G.error&&G.error(new Cz({...z.payload,status:200},{query:J,variables:X}));return}case JaA:{G.error&&G.error(new Cz({errors:z.payload,status:200},{query:J,variables:X}));return}case y50:{G.complete&&G.complete(),delete this.socketState.subscriptions[z.id];return}}}catch(z){console.error(z),A.close(1006)}A.close(4400,"Unknown graphql-ws message.")})}makeSubscribe(A,D,_,Q){let B=(this.socketState.lastRequestId++).toString();return this.socketState.subscriptions[B]={query:A,variables:Q,subscriber:_},this.socket.send(FaA(B,{query:A,operationName:D,variables:Q}).text),()=>{this.socket.send(KaA(B).text),delete this.socketState.subscriptions[B]}}rawRequest(A,D){return new Promise((_,Q)=>{let B;this.rawSubscribe(A,{next:(E,z)=>B={data:E,extensions:z},error:Q,complete:()=>_(B)},D)})}request(A,D){return new Promise((_,Q)=>{let B;this.subscribe(A,{next:(E)=>B=E,error:Q,complete:()=>_(B)},D)})}subscribe(A,D,_){let{query:Q,operationName:B}=AW(A);return this.makeSubscribe(Q,B,D,_)}rawSubscribe(A,D,_){return this.makeSubscribe(A,void 0,D,_)}ping(A){this.socket.send(YaA(A).text)}close(){this.socket.close(1000)}}dE1.PROTOCOL="graphql-transport-ws";function XaA(A,D=(_)=>_){return pI.parse(A,D)}function GaA(A){return new pI(QaA,A)}function YaA(A){return new pI(R50,A,void 0)}function P50(A){return new pI(T50,A,void 0)}function FaA(A,D){return new pI(EaA,D,A)}function KaA(A){return new pI(y50,void 0,A)}var UR=(A)=>{let D={};if(A)if(typeof Headers!=="undefined"&&A instanceof Headers||cI&&cI.Headers&&A instanceof cI.Headers)D=m10(A);else if(Array.isArray(A))A.forEach(([_,Q])=>{if(_&&Q!==void 0)D[_]=Q});else D=A;return D},v50=(A)=>A.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),$aA=(A)=>{if(!Array.isArray(A.query)){let Q=A,B=[`query=${encodeURIComponent(v50(Q.query))}`];if(A.variables)B.push(`variables=${encodeURIComponent(Q.jsonSerializer.stringify(Q.variables))}`);if(Q.operationName)B.push(`operationName=${encodeURIComponent(Q.operationName)}`);return B.join("&")}if(typeof A.variables!=="undefined"&&!Array.isArray(A.variables))throw new Error("Cannot create query with given variable type, array expected");let D=A,_=A.query.reduce((Q,B,E)=>{return Q.push({query:v50(B),variables:D.variables?D.jsonSerializer.stringify(D.variables[E]):void 0}),Q},[]);return`query=${encodeURIComponent(D.jsonSerializer.stringify(_))}`},ZaA=(A)=>async(D)=>{let{url:_,query:Q,variables:B,operationName:E,fetch:z,fetchOptions:J,middleware:X}=D,G={...D.headers},Y="",K=void 0;if(A==="POST"){if(K=UaA(Q,B,E,J.jsonSerializer),typeof K==="string")G["Content-Type"]="application/json"}else Y=$aA({query:Q,variables:B,operationName:E,jsonSerializer:J.jsonSerializer??Gn});let $={method:A,headers:G,body:K,...J},F=_,Z=$;if(X){let U=await Promise.resolve(X({...$,url:_,operationName:E,variables:B})),{url:I,...V}=U;F=I,Z=V}if(Y)F=`${F}?${Y}`;return await z(F,Z)};class aE1{constructor(A,D={}){this.url=A,this.requestConfig=D,this.rawRequest=async(..._)=>{let[Q,B,E]=_,z=p10(Q,B,E),{headers:J,fetch:X=cI.default,method:G="POST",requestMiddleware:Y,responseMiddleware:K,...$}=this.requestConfig,{url:F}=this;if(z.signal!==void 0)$.signal=z.signal;let{operationName:Z}=AW(z.query);return lE1({url:F,query:z.query,variables:z.variables,headers:{...UR(iE1(J)),...UR(z.requestHeaders)},operationName:Z,fetch:X,method:G,fetchOptions:$,middleware:Y}).then((U)=>{if(K)K(U);return U}).catch((U)=>{if(K)K(U);throw U})}}async request(A,...D){let[_,Q]=D,B=h10(A,_,Q),{headers:E,fetch:z=cI.default,method:J="POST",requestMiddleware:X,responseMiddleware:G,...Y}=this.requestConfig,{url:K}=this;if(B.signal!==void 0)Y.signal=B.signal;let{query:$,operationName:F}=AW(B.document);return lE1({url:K,query:$,variables:B.variables,headers:{...UR(iE1(E)),...UR(B.requestHeaders)},operationName:F,fetch:z,method:J,fetchOptions:Y,middleware:X}).then((Z)=>{if(G)G(Z);return Z.data}).catch((Z)=>{if(G)G(Z);throw Z})}batchRequests(A,D){let _=c10(A,D),{headers:Q,...B}=this.requestConfig;if(_.signal!==void 0)B.signal=_.signal;let E=_.documents.map(({document:J})=>AW(J).query),z=_.documents.map(({variables:J})=>J);return lE1({url:this.url,query:E,variables:z,headers:{...UR(iE1(Q)),...UR(_.requestHeaders)},operationName:void 0,fetch:this.requestConfig.fetch??cI.default,method:this.requestConfig.method||"POST",fetchOptions:B,middleware:this.requestConfig.requestMiddleware}).then((J)=>{if(this.requestConfig.responseMiddleware)this.requestConfig.responseMiddleware(J);return J.data}).catch((J)=>{if(this.requestConfig.responseMiddleware)this.requestConfig.responseMiddleware(J);throw J})}setHeaders(A){return this.requestConfig.headers=A,this}setHeader(A,D){let{headers:_}=this.requestConfig;if(_)_[A]=D;else this.requestConfig.headers={[A]:D};return this}setEndpoint(A){return this.url=A,this}}var lE1=async(A)=>{let{query:D,variables:_,fetchOptions:Q}=A,B=ZaA(u10(A.method??"post")),E=Array.isArray(A.query),z=await B(A),J=await waA(z,Q.jsonSerializer??Gn),X=Array.isArray(J)?!J.some(({data:Y})=>!Y):Boolean(J.data),G=Array.isArray(J)||!J.errors||Array.isArray(J.errors)&&!J.errors.length||Q.errorPolicy==="all"||Q.errorPolicy==="ignore";if(z.ok&&G&&X){let{errors:Y,...K}=Array.isArray(J)?J:J,$=Q.errorPolicy==="ignore"?K:J;return{...E?{data:$}:$,headers:z.headers,status:z.status}}else throw new Cz({...typeof J==="string"?{error:J}:J,status:z.status,headers:z.headers},{query:D,variables:_})};var UaA=(A,D,_,Q)=>{let B=Q??Gn;if(!Array.isArray(A))return B.stringify({query:A,variables:D,operationName:_});if(typeof D!=="undefined"&&!Array.isArray(D))throw new Error("Cannot create request body with given variable type, array expected");let E=A.reduce((z,J,X)=>{return z.push({query:J,variables:D?D[X]:void 0}),z},[]);return B.stringify(E)},waA=async(A,D)=>{let _;if(A.headers.forEach((Q,B)=>{if(B.toLowerCase()==="content-type")_=Q}),_&&(_.toLowerCase().startsWith("application/json")||_.toLowerCase().startsWith("application/graphql+json")||_.toLowerCase().startsWith("application/graphql-response+json")))return D.parse(await A.text());else return A.text()},iE1=(A)=>{return typeof A==="function"?A():A},pJ=(A,...D)=>{return A.reduce((_,Q,B)=>`${_}${Q}${B in D?String(D[B]):""}`,"")};var S50=async(A,D,_)=>{if(!D.ok){let Q=await D.text().catch(()=>{return});throw new f10(A,D,_,Q)}};function LD(){return"8.40.1"}var j50=(A)=>{let D=A?`${A?.name}:${A?.version}`:"missing client info";return`gitlab-language-server:${LD()} (${D})`};function b50(A){return A!==null&&A!==void 0}var nE1=(A,D)=>{return Object.entries(D).forEach(([_,Q])=>{if(b50(Q))A.searchParams.append(_,String(Q))}),A},Uo=(A)=>A.toString().replace(/\/?$/,"/"),wR=(A)=>A.replace(/^\.?\/?/,"./"),k50=(A)=>{if(A.startsWith("git@")){let D=A.match(/git@([^:]+):(.+)/);if(D){let[,_,Q]=D;return`https://${_}/${Q}`}}if(A.startsWith("git://"))return A.replace("git://","https://");if(A.startsWith("ssh://"))return A.replace("ssh://","https://").replace(/git@([^/]+)/,"$1");return A};var IaA=(A)=>A.split("/").pop()||"unknown resource";class oE1{#A;#D;#_;#Q;#B;constructor(A,D,_,Q,B){this.#A=A,this.#D=D,this.#_=new URL(Uo(Q)),this.#Q=B,this.#B=_}getDefaultHeaders(){return{Authorization:`Bearer ${this.#Q}`,"User-Agent":j50(this.#B),"X-Gitlab-Language-Server-Version":LD()}}async fetchFromApiRaw(A){try{let D=`Unknown request method "${A.method}", request type "${A.type}"`;switch(A.method){case"GET":return await this.#z(A);case"POST":return await this.#J(A);case"PATCH":return await this.#X(A);case"PUT":return await this.#Y(A);case"HEAD":return await this.#G(A);default:throw new Error(D)}}catch(D){throw new Xn(A,D)}}async fetchFromApi(A){if(A.type==="graphql")return this.#E(A);let D=await this.fetchFromApiRaw(A);return await S50(A,D,IaA(A.path)),D.json()}fetchOperation=(A)=>(D)=>this.fetchFromApi({...A,signal:D});async#E(A){let D=new URL("./api/graphql",this.#_),_=En(A.query);if(_)this.#A.debug(`[SimpleApiClient] Making GraphQL request: ${_}`);let Q=async(E,z)=>{let J=E instanceof URL?E.toString():E;return this.#D.post(J,{...z,headers:{...z?.headers},signal:A.signal})},B=new aE1(D.href,{fetch:Q,headers:{...this.getDefaultHeaders()}});try{return await B.request(A.query,A.variables)}catch(E){if(E instanceof Cz)throw new EQ1(A,E.response);throw new Xn(A,E)}}async#z(A){let D=wR(A.path),_=new URL(D,this.#_);return nE1(_,A.searchParams??{}),this.#D.get(_,{headers:{...this.getDefaultHeaders(),...A.headers},signal:A.signal})}async#J(A){let D=wR(A.path),_=new URL(D,this.#_);return this.#D.post(_,{headers:{"Content-Type":"application/json",...this.getDefaultHeaders(),...A.headers},body:JSON.stringify(A.body),signal:A.signal})}async#X(A){let D=wR(A.path),_=new URL(D,this.#_);return this.#D.patch(_,{headers:{"Content-Type":"application/json",...this.getDefaultHeaders(),...A.headers},body:JSON.stringify(A.body),signal:A.signal})}async#Y(A){let D=wR(A.path),_=new URL(D,this.#_);return this.#D.put(_,{headers:{"Content-Type":"application/json",...this.getDefaultHeaders(),...A.headers},body:JSON.stringify(A.body),signal:A.signal})}async#G(A){let D=wR(A.path),_=new URL(D,this.#_);return nE1(_,A.searchParams??{}),this.#D.head(_,{headers:{...this.getDefaultHeaders(),...A.headers},signal:A.signal})}}var x50="api",g50=(A)=>{if(!(A instanceof Jn)||!A.isInvalidTokenOrInvalidRefresh())return{valid:!1,reason:"unknown",message:`Token validation failed: ${A}`};return{valid:!1,reason:"invalid_token",message:"Token is invalid or expired."}},f50=(A)=>{if(A.includes(x50))return;return{valid:!1,reason:"invalid_scopes",message:`Token has scope(s) ${A.map((_)=>`'${_}'`).join(", ")} (needs ${x50}).`}};async function CaA(A,D){let _={type:"rest",method:"GET",path:"/api/v4/personal_access_tokens/self"},{scopes:Q}=await A.fetchFromApi(_),B=f50(Q);if(B)return B;return{valid:!0,tokenInfo:{scopes:Q,type:"pat",token:D}}}async function HaA(A,D){let _={type:"rest",method:"GET",path:"/oauth/token/info"},{scope:Q}=await A.fetchFromApi(_),B=f50(Q);if(B)return B;return{valid:!0,tokenInfo:{scopes:Q,type:"oauth",token:D}}}async function u50(A,D){if(!D)return{valid:!1,message:"No token provided",reason:"invalid_token"};let _=await Promise.all([CaA(A,D).catch(g50),HaA(A,D).catch(g50)]),Q=_.find((J)=>J.valid);if(Q)return Q;let B=_.filter((J)=>!J.valid),E=B.find((J)=>J.reason==="invalid_scopes");if(E)return E;let z=B.find((J)=>J.reason==="invalid_token");if(z)return z;return _[0]}var wo=F0(wA(),1);var rE1=wo.createInterfaceId("ProjectService");class wg{#A;#D;constructor(A,D){this.#A=D,this.#D=NA(A,"[ProjectService]")}async getProjectFromPathWithNamespace(A){return this.#D.debug(`Fetching details for project: ${A}`),this.#A.fetchFromApi({type:"rest",method:"GET",path:`/api/v4/projects/${encodeURIComponent(A)}`})}async getProjectIdsFromPaths(A){return(await this.#A.fetchFromApi({type:"graphql",query:pJ`
|
|
1156
1156
|
query getProjectIds($fullPaths: [String!]!) {
|
|
1157
1157
|
projects(fullPaths: $fullPaths) {
|
|
1158
1158
|
nodes {
|
|
@@ -1236,7 +1236,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
1236
1236
|
`,Q),z=-1;if(B!==-1&&E!==-1?z=Math.min(B,E):B!==-1?z=B:E!==-1&&(z=E),z===-1){_=A.slice(Q);break}else{let J=A.slice(Q,z);D.push(J),Q=z+1,A[Q-1]==="\r"&&A[Q]===`
|
|
1237
1237
|
`&&Q++}}return[D,_]}class BC1 extends TransformStream{constructor({onError:A,onRetry:D,onComment:_}={}){let Q;super({start(B){Q=o11({onEvent:(E)=>{B.enqueue(E)},onError(E){A==="terminate"?B.error(E):typeof A=="function"&&A(E)},onRetry:D,onComment:_})},transform(B){Q.feed(B)}})}}var xL6={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};class r11 extends Error{constructor(A,D){super(`Streamable HTTP error: ${D}`);this.code=A}}class EC1{constructor(A,D){var _;this._url=A,this._resourceMetadataUrl=void 0,this._requestInit=D===null||D===void 0?void 0:D.requestInit,this._authProvider=D===null||D===void 0?void 0:D.authProvider,this._fetch=D===null||D===void 0?void 0:D.fetch,this._sessionId=D===null||D===void 0?void 0:D.sessionId,this._reconnectionOptions=(_=D===null||D===void 0?void 0:D.reconnectionOptions)!==null&&_!==void 0?_:xL6}async _authThenStart(){var A;if(!this._authProvider)throw new aQ("No auth provider");let D;try{D=await zC(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})}catch(_){throw(A=this.onerror)===null||A===void 0||A.call(this,_),_}if(D!=="AUTHORIZED")throw new aQ;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){var A;let D={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)D.Authorization=`Bearer ${Q.access_token}`}if(this._sessionId)D["mcp-session-id"]=this._sessionId;if(this._protocolVersion)D["mcp-protocol-version"]=this._protocolVersion;let _=this._normalizeHeaders((A=this._requestInit)===null||A===void 0?void 0:A.headers);return new Headers({...D,..._})}async _startOrAuthSse(A){var D,_,Q;let{resumptionToken:B}=A;try{let E=await this._commonHeaders();if(E.set("Accept","text/event-stream"),B)E.set("last-event-id",B);let z=await((D=this._fetch)!==null&&D!==void 0?D:fetch)(this._url,{method:"GET",headers:E,signal:(_=this._abortController)===null||_===void 0?void 0:_.signal});if(!z.ok){if(z.status===401&&this._authProvider)return await this._authThenStart();if(z.status===405)return;throw new r11(z.status,`Failed to open SSE stream: ${z.statusText}`)}this._handleSseStream(z.body,A,!0)}catch(E){throw(Q=this.onerror)===null||Q===void 0||Q.call(this,E),E}}_getNextReconnectionDelay(A){let D=this._reconnectionOptions.initialReconnectionDelay,_=this._reconnectionOptions.reconnectionDelayGrowFactor,Q=this._reconnectionOptions.maxReconnectionDelay;return Math.min(D*Math.pow(_,A),Q)}_normalizeHeaders(A){if(!A)return{};if(A instanceof Headers)return Object.fromEntries(A.entries());if(Array.isArray(A))return Object.fromEntries(A);return{...A}}_scheduleReconnection(A,D=0){var _;let Q=this._reconnectionOptions.maxRetries;if(Q>0&&D>=Q){(_=this.onerror)===null||_===void 0||_.call(this,new Error(`Maximum reconnection attempts (${Q}) exceeded.`));return}let B=this._getNextReconnectionDelay(D);setTimeout(()=>{this._startOrAuthSse(A).catch((E)=>{var z;(z=this.onerror)===null||z===void 0||z.call(this,new Error(`Failed to reconnect SSE stream: ${E instanceof Error?E.message:String(E)}`)),this._scheduleReconnection(A,D+1)})},B)}_handleSseStream(A,D,_){if(!A)return;let{onresumptiontoken:Q,replayMessageId:B}=D,E;(async()=>{var J,X,G,Y;try{let K=A.pipeThrough(new TextDecoderStream).pipeThrough(new BC1).getReader();while(!0){let{value:$,done:F}=await K.read();if(F)break;if($.id)E=$.id,Q===null||Q===void 0||Q($.id);if(!$.event||$.event==="message")try{let Z=BC.parse(JSON.parse($.data));if(B!==void 0&&cf(Z))Z.id=B;(J=this.onmessage)===null||J===void 0||J.call(this,Z)}catch(Z){(X=this.onerror)===null||X===void 0||X.call(this,Z)}}}catch(K){if((G=this.onerror)===null||G===void 0||G.call(this,new Error(`SSE stream disconnected: ${K}`)),_&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:E,onresumptiontoken:Q,replayMessageId:B},0)}catch($){(Y=this.onerror)===null||Y===void 0||Y.call(this,new Error(`Failed to reconnect: ${$ instanceof Error?$.message:String($)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(A){if(!this._authProvider)throw new aQ("No auth provider");if(await zC(this._authProvider,{serverUrl:this._url,authorizationCode:A,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})!=="AUTHORIZED")throw new aQ("Failed to authorize")}async close(){var A,D;(A=this._abortController)===null||A===void 0||A.abort(),(D=this.onclose)===null||D===void 0||D.call(this)}async send(A,D){var _,Q,B,E;try{let{resumptionToken:z,onresumptiontoken:J}=D||{};if(z){this._startOrAuthSse({resumptionToken:z,replayMessageId:js(A)?A.id:void 0}).catch((U)=>{var I;return(I=this.onerror)===null||I===void 0?void 0:I.call(this,U)});return}let X=await this._commonHeaders();X.set("content-type","application/json"),X.set("accept","application/json, text/event-stream");let G={...this._requestInit,method:"POST",headers:X,body:JSON.stringify(A),signal:(_=this._abortController)===null||_===void 0?void 0:_.signal},Y=await((Q=this._fetch)!==null&&Q!==void 0?Q:fetch)(this._url,G),K=Y.headers.get("mcp-session-id");if(K)this._sessionId=K;if(!Y.ok){if(Y.status===401&&this._authProvider){if(this._resourceMetadataUrl=lf(Y),await zC(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})!=="AUTHORIZED")throw new aQ;return this.send(A)}let U=await Y.text().catch(()=>null);throw new Error(`Error POSTing to endpoint (HTTP ${Y.status}): ${U}`)}if(Y.status===202){if(_F0(A))this._startOrAuthSse({resumptionToken:void 0}).catch((U)=>{var I;return(I=this.onerror)===null||I===void 0?void 0:I.call(this,U)});return}let F=(Array.isArray(A)?A:[A]).filter((U)=>("method"in U)&&("id"in U)&&U.id!==void 0).length>0,Z=Y.headers.get("content-type");if(F)if(Z===null||Z===void 0?void 0:Z.includes("text/event-stream"))this._handleSseStream(Y.body,{onresumptiontoken:J},!1);else if(Z===null||Z===void 0?void 0:Z.includes("application/json")){let U=await Y.json(),I=Array.isArray(U)?U.map((V)=>BC.parse(V)):[BC.parse(U)];for(let V of I)(B=this.onmessage)===null||B===void 0||B.call(this,V)}else throw new r11(-1,`Unexpected content type: ${Z}`)}catch(z){throw(E=this.onerror)===null||E===void 0||E.call(this,z),z}}get sessionId(){return this._sessionId}async terminateSession(){var A,D,_;if(!this._sessionId)return;try{let Q=await this._commonHeaders(),B={...this._requestInit,method:"DELETE",headers:Q,signal:(A=this._abortController)===null||A===void 0?void 0:A.signal},E=await((D=this._fetch)!==null&&D!==void 0?D:fetch)(this._url,B);if(!E.ok&&E.status!==405)throw new r11(E.status,`Failed to terminate session: ${E.statusText}`);this._sessionId=void 0}catch(Q){throw(_=this.onerror)===null||_===void 0||_.call(this,Q),Q}}setProtocolVersion(A){this._protocolVersion=A}get protocolVersion(){return this._protocolVersion}}class zC1 extends Event{constructor(A,D){var _,Q;super(A),this.code=(_=D==null?void 0:D.code)!=null?_:void 0,this.message=(Q=D==null?void 0:D.message)!=null?Q:void 0}[Symbol.for("nodejs.util.inspect.custom")](A,D,_){return _(nR0(this),D)}[Symbol.for("Deno.customInspect")](A,D){return A(nR0(this),D)}}function gL6(A){let D=globalThis.DOMException;return typeof D=="function"?new D(A,"SyntaxError"):new SyntaxError(A)}function JC1(A){return A instanceof Error?"errors"in A&&Array.isArray(A.errors)?A.errors.map(JC1).join(", "):("cause"in A)&&A.cause instanceof Error?`${A}: ${JC1(A.cause)}`:A.message:`${A}`}function nR0(A){return{type:A.type,message:A.message,code:A.code,defaultPrevented:A.defaultPrevented,cancelable:A.cancelable,timeStamp:A.timeStamp}}var rR0=(A)=>{throw TypeError(A)},UC1=(A,D,_)=>D.has(A)||rR0("Cannot "+_),v2=(A,D,_)=>(UC1(A,D,"read from private field"),_?_.call(A):D.get(A)),p7=(A,D,_)=>D.has(A)?rR0("Cannot add the same private member more than once"):D instanceof WeakSet?D.add(A):D.set(A,_),T5=(A,D,_,Q)=>(UC1(A,D,"write to private field"),D.set(A,_),_),sZ=(A,D,_)=>(UC1(A,D,"access private method"),_),QE,DM,Oy,s11,t11,qm,Py,Wm,SC,Ny,Ry,Ly,Hm,$Y,XC1,GC1,YC1,oR0,FC1,KC1,Vm,$C1,ZC1;class Ty extends EventTarget{constructor(A,D){var _,Q;super(),p7(this,$Y),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,p7(this,QE),p7(this,DM),p7(this,Oy),p7(this,s11),p7(this,t11),p7(this,qm),p7(this,Py),p7(this,Wm,null),p7(this,SC),p7(this,Ny),p7(this,Ry,null),p7(this,Ly,null),p7(this,Hm,null),p7(this,GC1,async(B)=>{var E;v2(this,Ny).reset();let{body:z,redirected:J,status:X,headers:G}=B;if(X===204){sZ(this,$Y,Vm).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(J?T5(this,Oy,new URL(B.url)):T5(this,Oy,void 0),X!==200){sZ(this,$Y,Vm).call(this,`Non-200 status code (${X})`,X);return}if(!(G.get("content-type")||"").startsWith("text/event-stream")){sZ(this,$Y,Vm).call(this,'Invalid content type, expected "text/event-stream"',X);return}if(v2(this,QE)===this.CLOSED)return;T5(this,QE,this.OPEN);let Y=new Event("open");if((E=v2(this,Hm))==null||E.call(this,Y),this.dispatchEvent(Y),typeof z!="object"||!z||!("getReader"in z)){sZ(this,$Y,Vm).call(this,"Invalid response body, expected a web ReadableStream",X),this.close();return}let K=new TextDecoder,$=z.getReader(),F=!0;do{let{done:Z,value:U}=await $.read();U&&v2(this,Ny).feed(K.decode(U,{stream:!Z})),Z&&(F=!1,v2(this,Ny).reset(),sZ(this,$Y,$C1).call(this))}while(F)}),p7(this,YC1,(B)=>{T5(this,SC,void 0),!(B.name==="AbortError"||B.type==="aborted")&&sZ(this,$Y,$C1).call(this,JC1(B))}),p7(this,FC1,(B)=>{typeof B.id=="string"&&T5(this,Wm,B.id);let E=new MessageEvent(B.event||"message",{data:B.data,origin:v2(this,Oy)?v2(this,Oy).origin:v2(this,DM).origin,lastEventId:B.id||""});v2(this,Ly)&&(!B.event||B.event==="message")&&v2(this,Ly).call(this,E),this.dispatchEvent(E)}),p7(this,KC1,(B)=>{T5(this,qm,B)}),p7(this,ZC1,()=>{T5(this,Py,void 0),v2(this,QE)===this.CONNECTING&&sZ(this,$Y,XC1).call(this)});try{if(A instanceof URL)T5(this,DM,A);else if(typeof A=="string")T5(this,DM,new URL(A,fL6()));else throw new Error("Invalid URL")}catch{throw gL6("An invalid or illegal string was specified")}T5(this,Ny,o11({onEvent:v2(this,FC1),onRetry:v2(this,KC1)})),T5(this,QE,this.CONNECTING),T5(this,qm,3000),T5(this,t11,(_=D==null?void 0:D.fetch)!=null?_:globalThis.fetch),T5(this,s11,(Q=D==null?void 0:D.withCredentials)!=null?Q:!1),sZ(this,$Y,XC1).call(this)}get readyState(){return v2(this,QE)}get url(){return v2(this,DM).href}get withCredentials(){return v2(this,s11)}get onerror(){return v2(this,Ry)}set onerror(A){T5(this,Ry,A)}get onmessage(){return v2(this,Ly)}set onmessage(A){T5(this,Ly,A)}get onopen(){return v2(this,Hm)}set onopen(A){T5(this,Hm,A)}addEventListener(A,D,_){let Q=D;super.addEventListener(A,Q,_)}removeEventListener(A,D,_){let Q=D;super.removeEventListener(A,Q,_)}close(){v2(this,Py)&&clearTimeout(v2(this,Py)),v2(this,QE)!==this.CLOSED&&(v2(this,SC)&&v2(this,SC).abort(),T5(this,QE,this.CLOSED),T5(this,SC,void 0))}}QE=new WeakMap,DM=new WeakMap,Oy=new WeakMap,s11=new WeakMap,t11=new WeakMap,qm=new WeakMap,Py=new WeakMap,Wm=new WeakMap,SC=new WeakMap,Ny=new WeakMap,Ry=new WeakMap,Ly=new WeakMap,Hm=new WeakMap,$Y=new WeakSet,XC1=function(){T5(this,QE,this.CONNECTING),T5(this,SC,new AbortController),v2(this,t11)(v2(this,DM),sZ(this,$Y,oR0).call(this)).then(v2(this,GC1)).catch(v2(this,YC1))},GC1=new WeakMap,YC1=new WeakMap,oR0=function(){var A;let D={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...v2(this,Wm)?{"Last-Event-ID":v2(this,Wm)}:void 0},cache:"no-store",signal:(A=v2(this,SC))==null?void 0:A.signal};return"window"in globalThis&&(D.credentials=this.withCredentials?"include":"same-origin"),D},FC1=new WeakMap,KC1=new WeakMap,Vm=function(A,D){var _;v2(this,QE)!==this.CLOSED&&T5(this,QE,this.CLOSED);let Q=new zC1("error",{code:D,message:A});(_=v2(this,Ry))==null||_.call(this,Q),this.dispatchEvent(Q)},$C1=function(A,D){var _;if(v2(this,QE)===this.CLOSED)return;T5(this,QE,this.CONNECTING);let Q=new zC1("error",{code:D,message:A});(_=v2(this,Ry))==null||_.call(this,Q),this.dispatchEvent(Q),T5(this,Py,setTimeout(v2(this,ZC1),v2(this,qm)))},ZC1=new WeakMap,Ty.CONNECTING=0,Ty.OPEN=1,Ty.CLOSED=2;function fL6(){let A="document"in globalThis?globalThis.document:void 0;return A&&typeof A=="object"&&"baseURI"in A&&typeof A.baseURI=="string"?A.baseURI:void 0}class sR0 extends Error{constructor(A,D,_){super(`SSE error: ${D}`);this.code=A,this.event=_}}class wC1{constructor(A,D){this._url=A,this._resourceMetadataUrl=void 0,this._eventSourceInit=D===null||D===void 0?void 0:D.eventSourceInit,this._requestInit=D===null||D===void 0?void 0:D.requestInit,this._authProvider=D===null||D===void 0?void 0:D.authProvider,this._fetch=D===null||D===void 0?void 0:D.fetch}async _authThenStart(){var A;if(!this._authProvider)throw new aQ("No auth provider");let D;try{D=await zC(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})}catch(_){throw(A=this.onerror)===null||A===void 0||A.call(this,_),_}if(D!=="AUTHORIZED")throw new aQ;return await this._startOrAuth()}async _commonHeaders(){var A;let D={};if(this._authProvider){let _=await this._authProvider.tokens();if(_)D.Authorization=`Bearer ${_.access_token}`}if(this._protocolVersion)D["mcp-protocol-version"]=this._protocolVersion;return new Headers({...D,...(A=this._requestInit)===null||A===void 0?void 0:A.headers})}_startOrAuth(){var A,D,_;let Q=(_=(D=(A=this===null||this===void 0?void 0:this._eventSourceInit)===null||A===void 0?void 0:A.fetch)!==null&&D!==void 0?D:this._fetch)!==null&&_!==void 0?_:fetch;return new Promise((B,E)=>{this._eventSource=new Ty(this._url.href,{...this._eventSourceInit,fetch:async(z,J)=>{let X=await this._commonHeaders();X.set("Accept","text/event-stream");let G=await Q(z,{...J,headers:X});if(G.status===401&&G.headers.has("www-authenticate"))this._resourceMetadataUrl=lf(G);return G}}),this._abortController=new AbortController,this._eventSource.onerror=(z)=>{var J;if(z.code===401&&this._authProvider){this._authThenStart().then(B,E);return}let X=new sR0(z.code,z.message,z);E(X),(J=this.onerror)===null||J===void 0||J.call(this,X)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(z)=>{var J;let X=z;try{if(this._endpoint=new URL(X.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(G){E(G),(J=this.onerror)===null||J===void 0||J.call(this,G),this.close();return}B()}),this._eventSource.onmessage=(z)=>{var J,X;let G=z,Y;try{Y=BC.parse(JSON.parse(G.data))}catch(K){(J=this.onerror)===null||J===void 0||J.call(this,K);return}(X=this.onmessage)===null||X===void 0||X.call(this,Y)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(A){if(!this._authProvider)throw new aQ("No auth provider");if(await zC(this._authProvider,{serverUrl:this._url,authorizationCode:A,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})!=="AUTHORIZED")throw new aQ("Failed to authorize")}async close(){var A,D,_;(A=this._abortController)===null||A===void 0||A.abort(),(D=this._eventSource)===null||D===void 0||D.close(),(_=this.onclose)===null||_===void 0||_.call(this)}async send(A){var D,_,Q;if(!this._endpoint)throw new Error("Not connected");try{let B=await this._commonHeaders();B.set("content-type","application/json");let E={...this._requestInit,method:"POST",headers:B,body:JSON.stringify(A),signal:(D=this._abortController)===null||D===void 0?void 0:D.signal},z=await((_=this._fetch)!==null&&_!==void 0?_:fetch)(this._endpoint,E);if(!z.ok){if(z.status===401&&this._authProvider){if(this._resourceMetadataUrl=lf(z),await zC(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})!=="AUTHORIZED")throw new aQ;return this.send(A)}let J=await z.text().catch(()=>null);throw new Error(`Error POSTing to endpoint (HTTP ${z.status}): ${J}`)}}catch(B){throw(Q=this.onerror)===null||Q===void 0||Q.call(this,B),B}}setProtocolVersion(A){this._protocolVersion=A}}var hT0=F0(uT0(),1);import A01 from"node:process";import{PassThrough as UP6}from"node:stream";class LC1{append(A){this._buffer=this._buffer?Buffer.concat([this._buffer,A]):A}readMessage(){if(!this._buffer)return null;let A=this._buffer.indexOf(`
|
|
1238
1238
|
`);if(A===-1)return null;let D=this._buffer.toString("utf8",0,A).replace(/\r$/,"");return this._buffer=this._buffer.subarray(A+1),ZP6(D)}clear(){this._buffer=void 0}}function ZP6(A){return BC.parse(JSON.parse(A))}function mT0(A){return JSON.stringify(A)+`
|
|
1239
|
-
`}var wP6=A01.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function IP6(){let A={};for(let D of wP6){let _=A01.env[D];if(_===void 0)continue;if(_.startsWith("()"))continue;A[D]=_}return A}class PC1{constructor(A){if(this._abortController=new AbortController,this._readBuffer=new LC1,this._stderrStream=null,this._serverParams=A,A.stderr==="pipe"||A.stderr==="overlapped")this._stderrStream=new UP6}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((A,D)=>{var _,Q,B,E,z;if(this._process=hT0.default(this._serverParams.command,(_=this._serverParams.args)!==null&&_!==void 0?_:[],{env:{...IP6(),...this._serverParams.env},stdio:["pipe","pipe",(Q=this._serverParams.stderr)!==null&&Q!==void 0?Q:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:this._serverParams.windowsHide??(A01.platform==="win32"&&CP6()),cwd:this._serverParams.cwd}),this._process.on("error",(J)=>{var X,G;if(J.name==="AbortError"){(X=this.onclose)===null||X===void 0||X.call(this);return}D(J),(G=this.onerror)===null||G===void 0||G.call(this,J)}),this._process.on("spawn",()=>{A()}),this._process.on("close",(J)=>{var X;this._process=void 0,(X=this.onclose)===null||X===void 0||X.call(this)}),(B=this._process.stdin)===null||B===void 0||B.on("error",(J)=>{var X;(X=this.onerror)===null||X===void 0||X.call(this,J)}),(E=this._process.stdout)===null||E===void 0||E.on("data",(J)=>{this._readBuffer.append(J),this.processReadBuffer()}),(z=this._process.stdout)===null||z===void 0||z.on("error",(J)=>{var X;(X=this.onerror)===null||X===void 0||X.call(this,J)}),this._stderrStream&&this._process.stderr)this._process.stderr.pipe(this._stderrStream)})}get stderr(){var A,D;if(this._stderrStream)return this._stderrStream;return(D=(A=this._process)===null||A===void 0?void 0:A.stderr)!==null&&D!==void 0?D:null}get pid(){var A,D;return(D=(A=this._process)===null||A===void 0?void 0:A.pid)!==null&&D!==void 0?D:null}processReadBuffer(){var A,D;while(!0)try{let _=this._readBuffer.readMessage();if(_===null)break;(A=this.onmessage)===null||A===void 0||A.call(this,_)}catch(_){(D=this.onerror)===null||D===void 0||D.call(this,_)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(A){return new Promise((D)=>{var _;if(!((_=this._process)===null||_===void 0?void 0:_.stdin))throw new Error("Not connected");let Q=mT0(A);if(this._process.stdin.write(Q))D();else this._process.stdin.once("drain",D)})}}function CP6(){return"type"in A01}var cT0=F0(RC1(),1),dT0=F0(wA(),1),JX=dT0.createInterfaceId("LsFetch");class TC1{updateRequestInit(A,D){if(typeof D==="undefined")D={method:A};else D.method=A;return D}async initialize(){}async destroy(){}async fetch(A,D){return cT0.default(A,D)}async*streamResponse(A,D){throw new Error("Not implemented")}async delete(A,D){return this.fetch(A,this.updateRequestInit("DELETE",D))}async get(A,D){return this.fetch(A,this.updateRequestInit("GET",D))}async post(A,D){return this.fetch(A,this.updateRequestInit("POST",D))}async put(A,D){return this.fetch(A,this.updateRequestInit("PUT",D))}async patch(A,D){return this.fetch(A,this.updateRequestInit("PATCH",D))}async head(A,D){return this.fetch(A,this.updateRequestInit("HEAD",D))}async fetchBase(A,D){return(typeof global==="undefined"?self:global).fetch(A,D)}getWebSocketOptions(A){return}updateAgentOptions(A){}}var _01=15000;function lT0(A){if(A instanceof URL)return A.toString();if(typeof A==="string")return A;return A.url}class yC1 extends Error{constructor(A){let D=Math.round(_01/1000);super(`Request to ${lT0(A)} timed out after ${D} second${D===1?"":"s"}`)}}var Q01=F0(wA(),1);var Om={invalidConfig:(A,D)=>n8("TRANSPORT_INVALID_CONFIG",`Invalid transport config for ${A}: ${D}`,{serverName:A,reason:D}),creationFailed:(A,D,_)=>n8("TRANSPORT_CREATION_FAILED",`Failed to create ${D} transport for ${A}`,{serverName:A,transportType:D,cause:_}),invalidUrl:(A,D)=>n8("TRANSPORT_INVALID_URL",`Invalid URL for ${A}: ${D}`,{serverName:A,url:D})};class QM{#A;#D;constructor(A,D){this.#A=A,this.#D=D}createTransport(A,D){switch(A.config.type){case"stdio":{if(!A.config.command)return G8(Om.invalidConfig(A.name,"Missing `command` for stdio transport"));return z_(new PC1({command:A.config.command,args:A.config.args,env:A.config.env,cwd:A.config.cwd??D,windowsHide:!0}))}case"sse":{let{config:_}=A;return this.#A.createOAuthClientProvider(A).mapErr((Q)=>Om.creationFailed(A.name,A.config.type,Q)).andThen((Q)=>z_(new wC1(_.url,{authProvider:Q,fetch:this.#D.fetch,requestInit:_.headers?{headers:_.headers}:void 0})))}case"http":{let{config:_}=A;return this.#A.createOAuthClientProvider(A).mapErr((Q)=>Om.creationFailed(A.name,A.config.type,Q)).andThen((Q)=>z_(new EC1(_.url,{authProvider:Q,fetch:this.#D.fetch,requestInit:_.headers?{headers:_.headers}:void 0})))}default:return G8(Om.invalidConfig(A.name,`Unsupported transport type: ${A.config.type}`))}}}QM=p0([Q01.Service({dependencies:[Cm,JX],lifetime:Q01.ServiceLifetime.Singleton})],QM);var iT0=(A)=>({create:A});class jC{#A;#D;#_;#Q;constructor(A,D,_,Q){this.#A=A,this.#D=D,this.#_=_,this.#Q=NA(Q,"[MCP][ServerConnectionFactory]")}connect(A,D){this.#Q.debug(`Creating client - server="${A.name}" type="${A.config.type}"`);let _=new U$1({name:"gitlab-language-server",version:"1.0.0"}),Q=iT0(()=>this.#A.createTransport(A,D));return Q.create().mapErr((B)=>m8.transportCreationFailed(A.name,A.config.type,B)).andThen((B)=>{let E=new cK1(_,B,Q,A,this.#Q,this.#D,this.#_);return E.attemptConnect().map(()=>E)})}}jC=p0([B01.Service({lifetime:B01.ServiceLifetime.Singleton,dependencies:[QM,EK,bT,_A]})],jC);function vC1(A){return A.addClass(QM),A.addClass(jC),A}import VP6 from"crypto";function Nm(A,D){return{...A,...D}}function jC1(A){if(Array.isArray(A))return A.map(jC1);if(A&&typeof A==="object"){let D=A;return Object.fromEntries(Object.keys(D).sort().map((_)=>[_,jC1(D[_])]))}return A}class bC1{#A;#D;#_;#Q;#B={status:"disconnected"};#E;#z;#J;#X=0;#Y=0;#G=new Set;#F;constructor(A,D,_,Q,B){this.#A=A,this.#D=_,this.#_=Q,this.#Q=NA(B,`[MCP][ServerSessionManager][${A}]`);let E=this.#K(D);if(E.success)this.#z=E.config,this.#J=E.hash;else this.#Q.error(`Initial config parse failed: ${E.error}`),this.#B={status:"failed",error:E.error,failedAt:new Date}}get serverName(){return this.#A}get currentConfig(){return this.#z}get currentConfigHash(){return this.#J}getState(){return this.#B}#U(){if(!this.#E)return G8(m8.connectionFailed(this.#A,"No connection established"));return this.#E.getConnectedClient()}getTools(){return this.#U().andThen((A)=>A.getTools())}executeTool(A,D){return this.#U().andThen((_)=>_.executeTool(A,D))}async start(){if(this.#B.status==="connecting"||this.#B.status==="connected")return;if(!this.#z){this.#Q.error("Cannot start - no valid config"),this.#w({status:"failed",error:"Invalid configuration",failedAt:new Date});return}await this.#Z()}async reconnect(){if(!this.#z||!this.#J)throw this.#Q.error("Cannot reconnect - no valid config"),this.#w({status:"failed",error:"Cannot reconnect - no valid config",failedAt:new Date}),new Error("Cannot reconnect - no valid config");this.#H(),this.#w({status:"disconnected"});try{await this.#Z()}catch(A){throw this.#Q.error("Reconnect failed",A),A}}async applyConfig(A){let D=this.#K(A);if(!D.success)return this.#Q.error(`Config parse failed: ${D.error}`),{changed:!1,parseError:D.error};if(this.#J===D.hash)return{changed:!1};return this.#Q.info("Config changed - reconnecting"),this.#H(),this.#z=D.config,this.#J=D.hash,this.#X=0,await this.#Z(),{changed:!0}}finishAuth(A){if(!this.#E)return G8(m8.connectionFailed(this.#A,"No connection to authenticate"));return this.#E.finishAuth(A)}onStateChanged(A){return this.#G.add(A),()=>this.#G.delete(A)}dispose(){this.#H(),this.#G.clear(),this.#z=void 0,this.#J=void 0,this.#X=0,this.#w({status:"disconnected"})}#K(A){try{let D=ff.safeParse(A);if(!D.success)return{success:!1,error:`Invalid config: ${D.error.message}`};let _=D.data,Q=JSON.stringify(jC1(_)),B=VP6.createHash("sha256").update(Q).digest("hex");return{success:!0,config:_,hash:B}}catch(D){return{success:!1,error:D instanceof Error?D.message:"Config parse failed"}}}async#Z(){if(!this.#z||!this.#J)throw this.#Q.error("Cannot connect - no valid config"),this.#w({status:"failed",error:"Cannot connect - no valid config",failedAt:new Date}),new Error("Cannot connect - no valid config");let A=++this.#Y;this.#w({status:"connecting",config:this.#z,configHash:this.#J,startedAt:new Date}),this.#Q.debug("Connecting...");let D={name:this.#A,config:this.#z};await this.#_.connect(D,this.#D).andTee((_)=>{if(this.#Y!==A){_.dispose();return}this.#E=_,this.#I(_);let Q=_.getStateSnapshot();this.#$(Q)}).orTee((_)=>{if(this.#Y!==A)return;this.#Q.error(`Connection failed: ${_.message}`),this.#w({status:"failed",config:this.#z,configHash:this.#J,error:_.message,failedAt:new Date})}).match(()=>{},()=>{})}#I(A){this.#F?.(),this.#F=A.onStateChanged((D)=>{if(D.status==="connected")this.#V(D);this.#$(D)})}#V(A){if(this.#X>0)return;this.#U().andThen((D)=>D.getTools()).map((D)=>D.length).match((D)=>{if(typeof D==="number"&&D!==this.#X)this.#X=D,this.#$(A)},()=>{return}).catch(()=>{})}#$(A){let D=this.#C(A);this.#w(D)}#C(A){switch(A.status){case"connecting":return Nm(A,{configHash:this.#J??""});case"authenticating":return Nm(A,{configHash:this.#J??""});case"connected":return Nm(A,{configHash:this.#J??"",toolCount:this.#X});case"failed":return Nm(A,{configHash:this.#J,error:A.error.message});case"disconnected":return Nm(A,{});default:return A}}#H(){if(!this.#E)return;this.#F?.(),this.#F=void 0,this.#Q.debug("Disposing connection"),this.#E.dispose(),this.#E=void 0}#w(A){if(this.#B.status===A.status&&A.status==="disconnected")return;let D=this.#B.status;this.#B=A,this.#Q.debug(`State: ${D} → ${A.status}`);for(let _ of this.#G)try{_(A)}catch(Q){this.#Q.error("State handler error",Q)}}}class BM{#A;#D;constructor(A,D){this.#A=A,this.#D=D}create(A,D,_){return new bC1(A,D,_,this.#A,this.#D)}}BM=p0([E01.Service({lifetime:E01.ServiceLifetime.Singleton,dependencies:[jC,_A]})],BM);var WP6={error:"error",warning:"warn",info:"info",debug:"debug"};class IK{#A;#D;#_;#Q;#B=new Map;#E=[];#z=[];#J=0;#X=new qP6;#Y;#G;constructor(A,D,_,Q){this.#A=A,this.#D=D,this.#_=_,this.#Q=Q}async dispose(){this.#A.info("[MCP Manager] Disposing service"),await Promise.all([...this.#B.values()].map((A)=>A.dispose())),this.#B.clear(),this.#z=[],this.#E=[],this.#X.removeAllListeners()}async getServers(){return[...this.#B.keys()].map((A)=>this.#K(A))}async getServer(A){return this.#B.get(A)?this.#K(A):null}async restartServer(A){this.#A.info(`[MCP Manager] Restarting server: ${A}`);let D=this.#B.get(A);if(!D){this.#A.warn(`[MCP Manager] Server not found: ${A}`);return}try{await D.reconnect()}catch(_){throw this.#A.error(`Failed to restart ${A}`,_),_}}async restartAllServers(){this.#A.info("[MCP Manager] Restarting all servers"),(await Promise.allSettled([...this.#B.values()].map((D)=>D.reconnect()))).forEach((D,_)=>{if(D.status==="rejected"){let Q=[...this.#B.keys()][_];this.#A.error(`Failed to restart ${Q}`,D.reason)}})}async reloadAllServers(A){if(A&&A!==this.#Y)this.#Y=A;if(!this.#Y){this.#A.warn("[MCP Manager] Cannot reload: no workspace path set");return}this.#A.info("[MCP Manager] Reloading all servers from disk");let D=await this.#H(this.#Y);if(!D){this.#A.warn("[MCP Manager] No configuration found during reload");return}this.#G=D.serversOrigin;for(let[_]of this.#B)if(!D.config.mcpServers[_])this.#A.debug(`[MCP Manager] Server removed: ${_}`),this.#$("server:disconnected",_,"Server removed from configuration"),this.#B.get(_)?.dispose(),this.#B.delete(_);await Promise.all(Object.entries(D.serversOrigin).map(async([_,Q])=>{let B=_,E=this.#B.get(B);if(E)await E.applyConfig(Q.parseResult.config);else{let z=this.#_.create(B,Q.parseResult.config,this.#Y);this.#F(B,z),this.#B.set(B,z),await z.start()}}))}async getTools(A){return(await Promise.all([...this.#B.values()].map((_)=>_.getTools().map((Q)=>this.#Z(Q,A)).unwrapOr([])))).flat()}getToolsForServer(A,D){let _=this.#B.get(A);if(!_)return Promise.resolve([]);return _.getTools().map((Q)=>this.#Z(Q,D)).unwrapOr([])}executeTool(A,D){let _=Date.now();if(!iQ.is(A))throw new Error(`Invalid tool name format: ${A}`);let Q=iQ.parse(A),B=this.#B.get(Q.serverName);if(!B)throw new Error(`Server not found: ${Q.serverName}`);return this.#A.debug(`[MCP Manager] Executing tool="${Q.toolName}" server="${Q.serverName}"`),B.executeTool(Q.toolName,D).andTee((E)=>{this.#E.push({toolName:A,success:!0,result:E,executedAt:new Date}),this.#C(Q.serverName,"info",`Tool executed: ${Q.toolName}`,{duration:Date.now()-_})}).orTee((E)=>{this.#E.push({toolName:A,success:!1,error:E.message,executedAt:new Date}),this.#A.error(`[MCP Manager] Tool execution failed - tool="${A}"`,E)}).match((E)=>E,(E)=>{throw new Error(E.message)})}async getExecutionHistory(){return[...this.#E]}async waitForAllServersSettled(A=30000,D={}){let{requireAll:_=!1}=D,Q=(z)=>{return z==="connected"||z==="disconnected"||z==="failed"},B=()=>{if(this.#B.size===0)return!0;for(let z of this.#B.values()){let J=z.getState();if(!Q(J.status))return!1}return!0},E=()=>{for(let z of this.#B.values())if(z.getState().status==="connected")return!0;return!1};if(B()){this.#A.debug("[MCP Manager] All servers already settled");return}this.#A.debug(`[MCP Manager] Waiting for servers to settle (timeout=${A}ms)`),await new Promise((z,J)=>{let X=null,G=()=>{if(B()){if(X)clearTimeout(X);this.off("server:state-changed",G),this.#A.debug("[MCP Manager] All servers settled"),z()}};this.on("server:state-changed",G),X=setTimeout(()=>{this.off("server:state-changed",G);let Y=[...this.#B.entries()].filter(([,K])=>!Q(K.getState().status)).map(([K])=>K);if(!_&&E()){this.#A.warn(`[MCP Manager] Timeout reached but continuing with ${this.#B.size-Y.length} settled server(s). Still waiting for: ${Y.join(", ")}`),z();return}this.#A.error(`[MCP Manager] Timeout waiting for servers to settle: ${Y.join(", ")}`),J(new Error(`Timeout after ${A}ms waiting for servers to settle. Unsettled servers: ${Y.join(", ")}`))},A)})}async getLogs(){return[...this.#z]}async getLogsForServer(A){return this.#z.filter((D)=>D.serverName===A)}async clearLogsForServer(A){this.#z=this.#z.filter((D)=>D.serverName!==A)}on(A,D){this.#X.on(A,D)}off(A,D){this.#X.off(A,D)}#F(A,D){return D.onStateChanged((Q)=>this.#U(A,Q))}#U(A,D){switch(this.#$("server:state-changed",A,this.#K(A)),D.status){case"connected":this.#C(A,"info","Connected"),this.#$("server:connected",A,this.#K(A)),this.getToolsForServer(A).then((_)=>{this.#$("tools:updated",A,_);return}).catch((_)=>{this.#A.error(`Failed to fetch tools for ${A}`,_)});break;case"authenticating":if(D.authUrl)this.#C(A,"warning","Authentication required",{authUrl:D.authUrl});else this.#C(A,"warning","Authentication required");break;case"failed":this.#C(A,"error",D.error),this.#$("server:error",A,D.error);break;case"disconnected":this.#C(A,"info","Disconnected"),this.#$("server:disconnected",A,"Disconnected");break;case"connecting":default:break}}#K(A){let D=this.#B.get(A);if(!D)throw new Error(`Server session not found: ${A}`);let _=D.getState(),Q=_.status==="connected"?_.connectedAt:void 0,B=_.status==="failed"?_.error:void 0,E=_.status==="authenticating"?_.authUrl:void 0;return{name:A,config:D.currentConfig||{},connectionState:_.status,connectedAt:Q,error:B,authUrl:E,serverInfo:_.status==="connected"?_.serverInfo:void 0,configSource:this.#G?.[A]?.resolvedPath}}#Z(A,D){return A.map((_)=>({..._,isApproved:D?this.#V(_.serverName,_.originalToolName,D):this.#I(_.serverName,_.originalToolName)}))}#I(A,D){let _=this.#G?.[A];if(!_?.parseResult.success)return!1;let{approvedTools:Q}=_.parseResult.config;if(Q===!0)return!0;if(Array.isArray(Q))return Q.includes(D);return!1}#V(A,D,_){let Q=this.#I(A,D),B=_?this.#Q.isToolApproved(_,{serverName:A,toolName:D}):!1;return Q||B}#$(A,...D){this.#X.emit(A,...D)}#C(A,D,_,Q){let B={id:`log-${++this.#J}-${Date.now()}`,serverName:A,timestamp:new Date,level:D,message:_,details:Q};if(this.#z.unshift(B),this.#z.length>1000)this.#z=this.#z.slice(0,1000);this.#$("log:added",B);let E=WP6[D];this.#A[E](`[MCP Manager] ${A}: ${_}`)}async#H(A){let D=cY0(A),_=await this.#D.loadAndMerge(D);if(dY0(this.#A,_,D),!_.config)return;return{config:_.config,serversOrigin:_.serversOrigin}}}IK=p0([z01.Service({dependencies:[_A,Ts,BM,NZ],lifetime:z01.ServiceLifetime.Singleton})],IK);var J01=F0(wA(),1);class XX{#A;#D;constructor(A,D){this.#A=A,this.#D=D}async reload(A,D){try{await this.#D.reloadAllServers(A),await this.#D.waitForAllServersSettled(30000);let _=await this.#D.getTools(D);return this.#A.info(`[MCP] Reload complete - tools=${_.length}`),_}catch(_){return this.#A.warn(`[MCP] Error during reload: ${_}`),[]}}async execute(A,D){try{let _=JSON.parse(D);return await this.#D.executeTool(A,_)}catch(_){return this.#A.error(`[MCP] Tool execution failed - tool="${A}" error="${_}"`,_),`The tool cannot be executed: ${_}`}}}XX=p0([J01.Service({dependencies:[_A,IK],lifetime:J01.ServiceLifetime.Singleton})],XX);function kC1(A){return HK1(A),DC1(A),vC1(A),UK1(A),A.addClass(BM),A.addClass(IK),A.addClass(XX),A}var gY=F0(wA(),1);var am0=F0(RC1(),1),nm0=F0(gy0(),1),om0=F0(dm0(),1),rm0=F0(ZG(),1),sm0=F0(wA(),1);import Tc6 from"https";import yc6 from"http";import jq1 from"fs";var lm0=F0(ZG(),1);function Iv(A){return A instanceof Error&&A.name==="AbortError"}var Rc6=(A)=>!Iv(A);var I_2={max:3,backoffBaseMs:1000,backoffExponent:1.5,onRetry:lm0.default.noop,shouldRetry:Rc6,signal:new AbortController().signal};function vq1(A,D=1000,_=2){return D*_**(A-1)}function Sq1(A){return new Promise((D)=>{setTimeout(D,A)})}var im0=new yc6.Agent({keepAlive:!0});class $h extends TC1{#A;#D;#_=!1;#Q;#B;#E;constructor(A,D){super();this.#E=A,this.#B={rejectUnauthorized:!0},this.#D=D,this.#Q=this.#z()}async initialize(){try{let A=await nm0.getProxySettings();if(A?.http){if(process.env.http_proxy=`${A.http.protocol}://${A.http.host}:${A.http.port}`,this.#E.info(`fetch: Detected http proxy through settings: ${process.env.http_proxy}`),A.http?.credentials&&A.http.credentials?.username&&A.http.credentials?.password)this.#E.info(`fetch: Added credentials to http_proxy for username: ${A.http.credentials.username}`),process.env.http_proxy=`${A.http.protocol}://${A.http.credentials.username}:${A.http.credentials.password}@${A.http.host}:${A.http.port}`}if(A?.https){if(process.env.https_proxy=`${A.https.protocol}://${A.https.host}:${A.https.port}`,this.#E.info(`fetch: Detected https proxy through settings: ${process.env.https_proxy}`),A.https?.credentials&&A.https.credentials?.username&&A.https.credentials?.password)this.#E.info(`fetch: Added credentials to HTTPS_PROXY for username: ${A.https.credentials.username}`),process.env.https_proxy=`${A.https.protocol}://${A.https.credentials.username}:${A.https.credentials.password}@${A.https.host}:${A.https.port}`}if(!A?.http&&!A?.https)this.#E.info("fetch: Detected no proxy settings")}catch(A){this.#E.warn("Unable to load proxy settings",A)}if(this.#D)this.#E.debug(`fetch: Detected user proxy ${this.#D}`),process.env.http_proxy=this.#D,process.env.https_proxy=this.#D;if(process.env.http_proxy||process.env.https_proxy)this.#A=this.#J();this.#_=!0}async destroy(){this.#A?.destroy()}async fetch(A,D){if(!this.#_)throw new Error("LsFetch not initialized. Make sure LsFetch.initialize() was called.");let _=new AbortController,Q=AbortSignal.timeout(_01);[D?.signal,Q].forEach((B)=>{B?.addEventListener("abort",()=>_.abort(B.reason),{once:!0})});try{return await this.#X(A,{...D,signal:_.signal,agent:this.#Y(A)})}catch(B){if(Iv(B)){let{reason:E}=_.signal;if(E instanceof Error&&E.name==="TimeoutError")throw new yC1(A)}throw B}}getWebSocketOptions(A){let D=this.#Y(A),_=A.toString().startsWith("https://")?"https":"http",Q=D===this.#A?"proxy":_;return{...this.#B,agent:D,agentType:Q}}updateAgentOptions({ignoreCertificateErrors:A,ca:D,cert:_,certKey:Q}){let B={};try{B={...D?{ca:jq1.readFileSync(D)}:{},..._?{cert:jq1.readFileSync(_)}:{},...Q?{key:jq1.readFileSync(Q)}:{}}}catch(z){this.#E.error("Error reading https agent options from file",z)}let E={rejectUnauthorized:!A,...B};if(rm0.default.isEqual(E,this.#B))return;if(this.#B=E,this.#Q=this.#z(),this.#A)this.#A=this.#J()}async*streamResponse(A,D){let _=this.#E;if(!A.body)return;let Q=new TextDecoder;async function*B(E){for await(let z of E){if(D.isCancellationRequested){if("destroy"in E)_.debug("Cancelling stream"),E.destroy();return}yield Q.decode(z)}}yield*B(A.body)}#z(){let A={...this.#B,keepAlive:!0};return this.#E.debug(`fetch: https agent with options initialized ${JSON.stringify(this.#F(A))}.`),new Tc6.Agent(A)}#J(){return this.#E.debug(`fetch: proxy agent with options initialized ${JSON.stringify(this.#F(this.#B))}.`),new om0.ProxyAgent(this.#B)}async#X(A,D){let _=Date.now(),Q=this.#G(A);if(D.agent===im0)this.#E.debug(`fetch: request for ${Q} made with http agent.`);else{let B=D.agent===this.#A?"proxy":"https";this.#E.debug(`fetch: request for ${Q} made with ${B} agent.`)}try{let B=await am0.default(A,D),E=Date.now()-_;return this.#E.debug(`fetch: request to ${Q} returned HTTP ${B.status} after ${E} ms`),B}catch(B){let E=Date.now()-_;throw this.#E.debug(`fetch: request to ${Q} threw an exception after ${E} ms`),B}}#Y(A){if(this.#A)return this.#A;if(A.toString().startsWith("https://"))return this.#Q;return im0}#G(A){if(A instanceof URL)return A.toString();if(typeof A==="string")return A;return A.url}#F(A){let{ca:D,cert:_,key:Q,...B}=A;return{...B,...D?{ca:"<hidden>"}:{},..._?{cert:"<hidden>"}:{},...Q?{key:"<hidden>"}:{}}}}$h=p0([sm0.Injectable(JX,[_A])],$h);var tm0=F0(ZG(),1);var MA1=F0(wA(),1);var{set:vc6,get:Sc6,mergeWith:jc6,isArray:bc6}=tm0.default;var h_2=d.object({enabled:d.boolean().optional(),enableSecretRedaction:d.boolean().optional(),additionalLanguages:d.array(d.string()).optional(),disabledSupportedLanguages:d.array(d.string()).optional()}),p_2=d.object({chat:d.object({name:d.string(),ref:d.string()}).optional()}),U_=MA1.createInterfaceId("ConfigService");class Zh{#A;#D=vo(new cJ);constructor(){this.#A={baseUrl:c70,codeCompletion:{enableSecretRedaction:!0},telemetry:{enabled:!0},logLevel:b_.INFO,ignoreCertificateErrors:!1,httpAgentOptions:{},duo:{enabledWithoutGitlabProject:!0},featureFlagOverrides:{},knowledgeGraph:{}}}get=(A)=>{return A?Sc6(this.#A,A):this.#A};set=(A,D)=>{vc6(this.#A,A,D),this.#D.fire(this.#A)};onConfigChange=this.#D.event;merge(A){jc6(this.#A,A,(D,_)=>bc6(D)?_:void 0),this.#D.fire(this.#A)}}Zh=p0([MA1.Injectable(U_,[])],Zh);var Ap0=F0(wA(),1);var em0=[1,2,3,4,6,5],bq1=[1,2,3,4,6,5];var FE=(A,...D)=>{return A.reduce((_,Q,B)=>`${_}${Q}${B in D?String(D[B]):""}`,"")};var Ah0=FE`
|
|
1239
|
+
`}var wP6=A01.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function IP6(){let A={};for(let D of wP6){let _=A01.env[D];if(_===void 0)continue;if(_.startsWith("()"))continue;A[D]=_}return A}class PC1{constructor(A){if(this._abortController=new AbortController,this._readBuffer=new LC1,this._stderrStream=null,this._serverParams=A,A.stderr==="pipe"||A.stderr==="overlapped")this._stderrStream=new UP6}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((A,D)=>{var _,Q,B,E,z;if(this._process=hT0.default(this._serverParams.command,(_=this._serverParams.args)!==null&&_!==void 0?_:[],{env:{...IP6(),...this._serverParams.env},stdio:["pipe","pipe",(Q=this._serverParams.stderr)!==null&&Q!==void 0?Q:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:this._serverParams.windowsHide??(A01.platform==="win32"&&CP6()),cwd:this._serverParams.cwd}),this._process.on("error",(J)=>{var X,G;if(J.name==="AbortError"){(X=this.onclose)===null||X===void 0||X.call(this);return}D(J),(G=this.onerror)===null||G===void 0||G.call(this,J)}),this._process.on("spawn",()=>{A()}),this._process.on("close",(J)=>{var X;this._process=void 0,(X=this.onclose)===null||X===void 0||X.call(this)}),(B=this._process.stdin)===null||B===void 0||B.on("error",(J)=>{var X;(X=this.onerror)===null||X===void 0||X.call(this,J)}),(E=this._process.stdout)===null||E===void 0||E.on("data",(J)=>{this._readBuffer.append(J),this.processReadBuffer()}),(z=this._process.stdout)===null||z===void 0||z.on("error",(J)=>{var X;(X=this.onerror)===null||X===void 0||X.call(this,J)}),this._stderrStream&&this._process.stderr)this._process.stderr.pipe(this._stderrStream)})}get stderr(){var A,D;if(this._stderrStream)return this._stderrStream;return(D=(A=this._process)===null||A===void 0?void 0:A.stderr)!==null&&D!==void 0?D:null}get pid(){var A,D;return(D=(A=this._process)===null||A===void 0?void 0:A.pid)!==null&&D!==void 0?D:null}processReadBuffer(){var A,D;while(!0)try{let _=this._readBuffer.readMessage();if(_===null)break;(A=this.onmessage)===null||A===void 0||A.call(this,_)}catch(_){(D=this.onerror)===null||D===void 0||D.call(this,_)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(A){return new Promise((D)=>{var _;if(!((_=this._process)===null||_===void 0?void 0:_.stdin))throw new Error("Not connected");let Q=mT0(A);if(this._process.stdin.write(Q))D();else this._process.stdin.once("drain",D)})}}function CP6(){return"type"in A01}var cT0=F0(RC1(),1),dT0=F0(wA(),1),JX=dT0.createInterfaceId("LsFetch");class TC1{updateRequestInit(A,D){if(typeof D==="undefined")D={method:A};else D.method=A;return D}async initialize(){}async destroy(){}async fetch(A,D){return cT0.default(A,D)}async*streamResponse(A,D){throw new Error("Not implemented")}async delete(A,D){return this.fetch(A,this.updateRequestInit("DELETE",D))}async get(A,D){return this.fetch(A,this.updateRequestInit("GET",D))}async post(A,D){return this.fetch(A,this.updateRequestInit("POST",D))}async put(A,D){return this.fetch(A,this.updateRequestInit("PUT",D))}async patch(A,D){return this.fetch(A,this.updateRequestInit("PATCH",D))}async head(A,D){return this.fetch(A,this.updateRequestInit("HEAD",D))}async fetchBase(A,D){return(typeof global==="undefined"?self:global).fetch(A,D)}getWebSocketOptions(A){return}updateAgentOptions(A){}}var _01=15000;function lT0(A){if(A instanceof URL)return A.toString();if(typeof A==="string")return A;return A.url}class yC1 extends Error{constructor(A){let D=Math.round(_01/1000);super(`Request to ${lT0(A)} timed out after ${D} second${D===1?"":"s"}`)}}var Q01=F0(wA(),1);var Om={invalidConfig:(A,D)=>n8("TRANSPORT_INVALID_CONFIG",`Invalid transport config for ${A}: ${D}`,{serverName:A,reason:D}),creationFailed:(A,D,_)=>n8("TRANSPORT_CREATION_FAILED",`Failed to create ${D} transport for ${A}`,{serverName:A,transportType:D,cause:_}),invalidUrl:(A,D)=>n8("TRANSPORT_INVALID_URL",`Invalid URL for ${A}: ${D}`,{serverName:A,url:D})};class QM{#A;#D;constructor(A,D){this.#A=A,this.#D=D}createTransport(A,D){switch(A.config.type){case"stdio":{if(!A.config.command)return G8(Om.invalidConfig(A.name,"Missing `command` for stdio transport"));return z_(new PC1({command:A.config.command,args:A.config.args,env:A.config.env,cwd:A.config.cwd??D,windowsHide:!0}))}case"sse":{let{config:_}=A;return this.#A.createOAuthClientProvider(A).mapErr((Q)=>Om.creationFailed(A.name,A.config.type,Q)).andThen((Q)=>z_(new wC1(_.url,{authProvider:Q,requestInit:_.headers?{headers:_.headers}:void 0})))}case"http":{let{config:_}=A;return this.#A.createOAuthClientProvider(A).mapErr((Q)=>Om.creationFailed(A.name,A.config.type,Q)).andThen((Q)=>z_(new EC1(_.url,{authProvider:Q,requestInit:_.headers?{headers:_.headers}:void 0})))}default:return G8(Om.invalidConfig(A.name,`Unsupported transport type: ${A.config.type}`))}}}QM=p0([Q01.Service({dependencies:[Cm,JX],lifetime:Q01.ServiceLifetime.Singleton})],QM);var iT0=(A)=>({create:A});class jC{#A;#D;#_;#Q;constructor(A,D,_,Q){this.#A=A,this.#D=D,this.#_=_,this.#Q=NA(Q,"[MCP][ServerConnectionFactory]")}connect(A,D){this.#Q.debug(`Creating client - server="${A.name}" type="${A.config.type}"`);let _=new U$1({name:"gitlab-language-server",version:"1.0.0"}),Q=iT0(()=>this.#A.createTransport(A,D));return Q.create().mapErr((B)=>m8.transportCreationFailed(A.name,A.config.type,B)).andThen((B)=>{let E=new cK1(_,B,Q,A,this.#Q,this.#D,this.#_);return E.attemptConnect().map(()=>E)})}}jC=p0([B01.Service({lifetime:B01.ServiceLifetime.Singleton,dependencies:[QM,EK,bT,_A]})],jC);function vC1(A){return A.addClass(QM),A.addClass(jC),A}import VP6 from"crypto";function Nm(A,D){return{...A,...D}}function jC1(A){if(Array.isArray(A))return A.map(jC1);if(A&&typeof A==="object"){let D=A;return Object.fromEntries(Object.keys(D).sort().map((_)=>[_,jC1(D[_])]))}return A}class bC1{#A;#D;#_;#Q;#B={status:"disconnected"};#E;#z;#J;#X=0;#Y=0;#G=new Set;#F;constructor(A,D,_,Q,B){this.#A=A,this.#D=_,this.#_=Q,this.#Q=NA(B,`[MCP][ServerSessionManager][${A}]`);let E=this.#K(D);if(E.success)this.#z=E.config,this.#J=E.hash;else this.#Q.error(`Initial config parse failed: ${E.error}`),this.#B={status:"failed",error:E.error,failedAt:new Date}}get serverName(){return this.#A}get currentConfig(){return this.#z}get currentConfigHash(){return this.#J}getState(){return this.#B}#U(){if(!this.#E)return G8(m8.connectionFailed(this.#A,"No connection established"));return this.#E.getConnectedClient()}getTools(){return this.#U().andThen((A)=>A.getTools())}executeTool(A,D){return this.#U().andThen((_)=>_.executeTool(A,D))}async start(){if(this.#B.status==="connecting"||this.#B.status==="connected")return;if(!this.#z){this.#Q.error("Cannot start - no valid config"),this.#w({status:"failed",error:"Invalid configuration",failedAt:new Date});return}await this.#Z()}async reconnect(){if(!this.#z||!this.#J)throw this.#Q.error("Cannot reconnect - no valid config"),this.#w({status:"failed",error:"Cannot reconnect - no valid config",failedAt:new Date}),new Error("Cannot reconnect - no valid config");this.#H(),this.#w({status:"disconnected"});try{await this.#Z()}catch(A){throw this.#Q.error("Reconnect failed",A),A}}async applyConfig(A){let D=this.#K(A);if(!D.success)return this.#Q.error(`Config parse failed: ${D.error}`),{changed:!1,parseError:D.error};if(this.#J===D.hash)return{changed:!1};return this.#Q.info("Config changed - reconnecting"),this.#H(),this.#z=D.config,this.#J=D.hash,this.#X=0,await this.#Z(),{changed:!0}}finishAuth(A){if(!this.#E)return G8(m8.connectionFailed(this.#A,"No connection to authenticate"));return this.#E.finishAuth(A)}onStateChanged(A){return this.#G.add(A),()=>this.#G.delete(A)}dispose(){this.#H(),this.#G.clear(),this.#z=void 0,this.#J=void 0,this.#X=0,this.#w({status:"disconnected"})}#K(A){try{let D=ff.safeParse(A);if(!D.success)return{success:!1,error:`Invalid config: ${D.error.message}`};let _=D.data,Q=JSON.stringify(jC1(_)),B=VP6.createHash("sha256").update(Q).digest("hex");return{success:!0,config:_,hash:B}}catch(D){return{success:!1,error:D instanceof Error?D.message:"Config parse failed"}}}async#Z(){if(!this.#z||!this.#J)throw this.#Q.error("Cannot connect - no valid config"),this.#w({status:"failed",error:"Cannot connect - no valid config",failedAt:new Date}),new Error("Cannot connect - no valid config");let A=++this.#Y;this.#w({status:"connecting",config:this.#z,configHash:this.#J,startedAt:new Date}),this.#Q.debug("Connecting...");let D={name:this.#A,config:this.#z};await this.#_.connect(D,this.#D).andTee((_)=>{if(this.#Y!==A){_.dispose();return}this.#E=_,this.#I(_);let Q=_.getStateSnapshot();this.#$(Q)}).orTee((_)=>{if(this.#Y!==A)return;this.#Q.error(`Connection failed: ${_.message}`),this.#w({status:"failed",config:this.#z,configHash:this.#J,error:_.message,failedAt:new Date})}).match(()=>{},()=>{})}#I(A){this.#F?.(),this.#F=A.onStateChanged((D)=>{if(D.status==="connected")this.#V(D);this.#$(D)})}#V(A){if(this.#X>0)return;this.#U().andThen((D)=>D.getTools()).map((D)=>D.length).match((D)=>{if(typeof D==="number"&&D!==this.#X)this.#X=D,this.#$(A)},()=>{return}).catch(()=>{})}#$(A){let D=this.#C(A);this.#w(D)}#C(A){switch(A.status){case"connecting":return Nm(A,{configHash:this.#J??""});case"authenticating":return Nm(A,{configHash:this.#J??""});case"connected":return Nm(A,{configHash:this.#J??"",toolCount:this.#X});case"failed":return Nm(A,{configHash:this.#J,error:A.error.message});case"disconnected":return Nm(A,{});default:return A}}#H(){if(!this.#E)return;this.#F?.(),this.#F=void 0,this.#Q.debug("Disposing connection"),this.#E.dispose(),this.#E=void 0}#w(A){if(this.#B.status===A.status&&A.status==="disconnected")return;let D=this.#B.status;this.#B=A,this.#Q.debug(`State: ${D} → ${A.status}`);for(let _ of this.#G)try{_(A)}catch(Q){this.#Q.error("State handler error",Q)}}}class BM{#A;#D;constructor(A,D){this.#A=A,this.#D=D}create(A,D,_){return new bC1(A,D,_,this.#A,this.#D)}}BM=p0([E01.Service({lifetime:E01.ServiceLifetime.Singleton,dependencies:[jC,_A]})],BM);var WP6={error:"error",warning:"warn",info:"info",debug:"debug"};class IK{#A;#D;#_;#Q;#B=new Map;#E=[];#z=[];#J=0;#X=new qP6;#Y;#G;constructor(A,D,_,Q){this.#A=A,this.#D=D,this.#_=_,this.#Q=Q}async dispose(){this.#A.info("[MCP Manager] Disposing service"),await Promise.all([...this.#B.values()].map((A)=>A.dispose())),this.#B.clear(),this.#z=[],this.#E=[],this.#X.removeAllListeners()}async getServers(){return[...this.#B.keys()].map((A)=>this.#K(A))}async getServer(A){return this.#B.get(A)?this.#K(A):null}async restartServer(A){this.#A.info(`[MCP Manager] Restarting server: ${A}`);let D=this.#B.get(A);if(!D){this.#A.warn(`[MCP Manager] Server not found: ${A}`);return}try{await D.reconnect()}catch(_){throw this.#A.error(`Failed to restart ${A}`,_),_}}async restartAllServers(){this.#A.info("[MCP Manager] Restarting all servers"),(await Promise.allSettled([...this.#B.values()].map((D)=>D.reconnect()))).forEach((D,_)=>{if(D.status==="rejected"){let Q=[...this.#B.keys()][_];this.#A.error(`Failed to restart ${Q}`,D.reason)}})}async reloadAllServers(A){if(A&&A!==this.#Y)this.#Y=A;if(!this.#Y){this.#A.warn("[MCP Manager] Cannot reload: no workspace path set");return}this.#A.info("[MCP Manager] Reloading all servers from disk");let D=await this.#H(this.#Y);if(!D){this.#A.warn("[MCP Manager] No configuration found during reload");return}this.#G=D.serversOrigin;for(let[_]of this.#B)if(!D.config.mcpServers[_])this.#A.debug(`[MCP Manager] Server removed: ${_}`),this.#$("server:disconnected",_,"Server removed from configuration"),this.#B.get(_)?.dispose(),this.#B.delete(_);await Promise.all(Object.entries(D.serversOrigin).map(async([_,Q])=>{let B=_,E=this.#B.get(B);if(E)await E.applyConfig(Q.parseResult.config);else{let z=this.#_.create(B,Q.parseResult.config,this.#Y);this.#F(B,z),this.#B.set(B,z),await z.start()}}))}async getTools(A){return(await Promise.all([...this.#B.values()].map((_)=>_.getTools().map((Q)=>this.#Z(Q,A)).unwrapOr([])))).flat()}getToolsForServer(A,D){let _=this.#B.get(A);if(!_)return Promise.resolve([]);return _.getTools().map((Q)=>this.#Z(Q,D)).unwrapOr([])}executeTool(A,D){let _=Date.now();if(!iQ.is(A))throw new Error(`Invalid tool name format: ${A}`);let Q=iQ.parse(A),B=this.#B.get(Q.serverName);if(!B)throw new Error(`Server not found: ${Q.serverName}`);return this.#A.debug(`[MCP Manager] Executing tool="${Q.toolName}" server="${Q.serverName}"`),B.executeTool(Q.toolName,D).andTee((E)=>{this.#E.push({toolName:A,success:!0,result:E,executedAt:new Date}),this.#C(Q.serverName,"info",`Tool executed: ${Q.toolName}`,{duration:Date.now()-_})}).orTee((E)=>{this.#E.push({toolName:A,success:!1,error:E.message,executedAt:new Date}),this.#A.error(`[MCP Manager] Tool execution failed - tool="${A}"`,E)}).match((E)=>E,(E)=>{throw new Error(E.message)})}async getExecutionHistory(){return[...this.#E]}async waitForAllServersSettled(A=30000,D={}){let{requireAll:_=!1}=D,Q=(z)=>{return z==="connected"||z==="disconnected"||z==="failed"},B=()=>{if(this.#B.size===0)return!0;for(let z of this.#B.values()){let J=z.getState();if(!Q(J.status))return!1}return!0},E=()=>{for(let z of this.#B.values())if(z.getState().status==="connected")return!0;return!1};if(B()){this.#A.debug("[MCP Manager] All servers already settled");return}this.#A.debug(`[MCP Manager] Waiting for servers to settle (timeout=${A}ms)`),await new Promise((z,J)=>{let X=null,G=()=>{if(B()){if(X)clearTimeout(X);this.off("server:state-changed",G),this.#A.debug("[MCP Manager] All servers settled"),z()}};this.on("server:state-changed",G),X=setTimeout(()=>{this.off("server:state-changed",G);let Y=[...this.#B.entries()].filter(([,K])=>!Q(K.getState().status)).map(([K])=>K);if(!_&&E()){this.#A.warn(`[MCP Manager] Timeout reached but continuing with ${this.#B.size-Y.length} settled server(s). Still waiting for: ${Y.join(", ")}`),z();return}this.#A.error(`[MCP Manager] Timeout waiting for servers to settle: ${Y.join(", ")}`),J(new Error(`Timeout after ${A}ms waiting for servers to settle. Unsettled servers: ${Y.join(", ")}`))},A)})}async getLogs(){return[...this.#z]}async getLogsForServer(A){return this.#z.filter((D)=>D.serverName===A)}async clearLogsForServer(A){this.#z=this.#z.filter((D)=>D.serverName!==A)}on(A,D){this.#X.on(A,D)}off(A,D){this.#X.off(A,D)}#F(A,D){return D.onStateChanged((Q)=>this.#U(A,Q))}#U(A,D){switch(this.#$("server:state-changed",A,this.#K(A)),D.status){case"connected":this.#C(A,"info","Connected"),this.#$("server:connected",A,this.#K(A)),this.getToolsForServer(A).then((_)=>{this.#$("tools:updated",A,_);return}).catch((_)=>{this.#A.error(`Failed to fetch tools for ${A}`,_)});break;case"authenticating":if(D.authUrl)this.#C(A,"warning","Authentication required",{authUrl:D.authUrl});else this.#C(A,"warning","Authentication required");break;case"failed":this.#C(A,"error",D.error),this.#$("server:error",A,D.error);break;case"disconnected":this.#C(A,"info","Disconnected"),this.#$("server:disconnected",A,"Disconnected");break;case"connecting":default:break}}#K(A){let D=this.#B.get(A);if(!D)throw new Error(`Server session not found: ${A}`);let _=D.getState(),Q=_.status==="connected"?_.connectedAt:void 0,B=_.status==="failed"?_.error:void 0,E=_.status==="authenticating"?_.authUrl:void 0;return{name:A,config:D.currentConfig||{},connectionState:_.status,connectedAt:Q,error:B,authUrl:E,serverInfo:_.status==="connected"?_.serverInfo:void 0,configSource:this.#G?.[A]?.resolvedPath}}#Z(A,D){return A.map((_)=>({..._,isApproved:D?this.#V(_.serverName,_.originalToolName,D):this.#I(_.serverName,_.originalToolName)}))}#I(A,D){let _=this.#G?.[A];if(!_?.parseResult.success)return!1;let{approvedTools:Q}=_.parseResult.config;if(Q===!0)return!0;if(Array.isArray(Q))return Q.includes(D);return!1}#V(A,D,_){let Q=this.#I(A,D),B=_?this.#Q.isToolApproved(_,{serverName:A,toolName:D}):!1;return Q||B}#$(A,...D){this.#X.emit(A,...D)}#C(A,D,_,Q){let B={id:`log-${++this.#J}-${Date.now()}`,serverName:A,timestamp:new Date,level:D,message:_,details:Q};if(this.#z.unshift(B),this.#z.length>1000)this.#z=this.#z.slice(0,1000);this.#$("log:added",B);let E=WP6[D];this.#A[E](`[MCP Manager] ${A}: ${_}`)}async#H(A){let D=cY0(A),_=await this.#D.loadAndMerge(D);if(dY0(this.#A,_,D),!_.config)return;return{config:_.config,serversOrigin:_.serversOrigin}}}IK=p0([z01.Service({dependencies:[_A,Ts,BM,NZ],lifetime:z01.ServiceLifetime.Singleton})],IK);var J01=F0(wA(),1);class XX{#A;#D;constructor(A,D){this.#A=A,this.#D=D}async reload(A,D){try{await this.#D.reloadAllServers(A),await this.#D.waitForAllServersSettled(30000);let _=await this.#D.getTools(D);return this.#A.info(`[MCP] Reload complete - tools=${_.length}`),_}catch(_){return this.#A.warn(`[MCP] Error during reload: ${_}`),[]}}async execute(A,D){try{let _=JSON.parse(D);return await this.#D.executeTool(A,_)}catch(_){return this.#A.error(`[MCP] Tool execution failed - tool="${A}" error="${_}"`,_),`The tool cannot be executed: ${_}`}}}XX=p0([J01.Service({dependencies:[_A,IK],lifetime:J01.ServiceLifetime.Singleton})],XX);function kC1(A){return HK1(A),DC1(A),vC1(A),UK1(A),A.addClass(BM),A.addClass(IK),A.addClass(XX),A}var gY=F0(wA(),1);var am0=F0(RC1(),1),nm0=F0(gy0(),1),om0=F0(dm0(),1),rm0=F0(ZG(),1),sm0=F0(wA(),1);import Tc6 from"https";import yc6 from"http";import jq1 from"fs";var lm0=F0(ZG(),1);function Iv(A){return A instanceof Error&&A.name==="AbortError"}var Rc6=(A)=>!Iv(A);var I_2={max:3,backoffBaseMs:1000,backoffExponent:1.5,onRetry:lm0.default.noop,shouldRetry:Rc6,signal:new AbortController().signal};function vq1(A,D=1000,_=2){return D*_**(A-1)}function Sq1(A){return new Promise((D)=>{setTimeout(D,A)})}var im0=new yc6.Agent({keepAlive:!0});class $h extends TC1{#A;#D;#_=!1;#Q;#B;#E;constructor(A,D){super();this.#E=A,this.#B={rejectUnauthorized:!0},this.#D=D,this.#Q=this.#z()}async initialize(){try{let A=await nm0.getProxySettings();if(A?.http){if(process.env.http_proxy=`${A.http.protocol}://${A.http.host}:${A.http.port}`,this.#E.info(`fetch: Detected http proxy through settings: ${process.env.http_proxy}`),A.http?.credentials&&A.http.credentials?.username&&A.http.credentials?.password)this.#E.info(`fetch: Added credentials to http_proxy for username: ${A.http.credentials.username}`),process.env.http_proxy=`${A.http.protocol}://${A.http.credentials.username}:${A.http.credentials.password}@${A.http.host}:${A.http.port}`}if(A?.https){if(process.env.https_proxy=`${A.https.protocol}://${A.https.host}:${A.https.port}`,this.#E.info(`fetch: Detected https proxy through settings: ${process.env.https_proxy}`),A.https?.credentials&&A.https.credentials?.username&&A.https.credentials?.password)this.#E.info(`fetch: Added credentials to HTTPS_PROXY for username: ${A.https.credentials.username}`),process.env.https_proxy=`${A.https.protocol}://${A.https.credentials.username}:${A.https.credentials.password}@${A.https.host}:${A.https.port}`}if(!A?.http&&!A?.https)this.#E.info("fetch: Detected no proxy settings")}catch(A){this.#E.warn("Unable to load proxy settings",A)}if(this.#D)this.#E.debug(`fetch: Detected user proxy ${this.#D}`),process.env.http_proxy=this.#D,process.env.https_proxy=this.#D;if(process.env.http_proxy||process.env.https_proxy)this.#A=this.#J();this.#_=!0}async destroy(){this.#A?.destroy()}async fetch(A,D){if(!this.#_)throw new Error("LsFetch not initialized. Make sure LsFetch.initialize() was called.");let _=new AbortController,Q=AbortSignal.timeout(_01);[D?.signal,Q].forEach((B)=>{B?.addEventListener("abort",()=>_.abort(B.reason),{once:!0})});try{return await this.#X(A,{...D,signal:_.signal,agent:this.#Y(A)})}catch(B){if(Iv(B)){let{reason:E}=_.signal;if(E instanceof Error&&E.name==="TimeoutError")throw new yC1(A)}throw B}}getWebSocketOptions(A){let D=this.#Y(A),_=A.toString().startsWith("https://")?"https":"http",Q=D===this.#A?"proxy":_;return{...this.#B,agent:D,agentType:Q}}updateAgentOptions({ignoreCertificateErrors:A,ca:D,cert:_,certKey:Q}){let B={};try{B={...D?{ca:jq1.readFileSync(D)}:{},..._?{cert:jq1.readFileSync(_)}:{},...Q?{key:jq1.readFileSync(Q)}:{}}}catch(z){this.#E.error("Error reading https agent options from file",z)}let E={rejectUnauthorized:!A,...B};if(rm0.default.isEqual(E,this.#B))return;if(this.#B=E,this.#Q=this.#z(),this.#A)this.#A=this.#J()}async*streamResponse(A,D){let _=this.#E;if(!A.body)return;let Q=new TextDecoder;async function*B(E){for await(let z of E){if(D.isCancellationRequested){if("destroy"in E)_.debug("Cancelling stream"),E.destroy();return}yield Q.decode(z)}}yield*B(A.body)}#z(){let A={...this.#B,keepAlive:!0};return this.#E.debug(`fetch: https agent with options initialized ${JSON.stringify(this.#F(A))}.`),new Tc6.Agent(A)}#J(){return this.#E.debug(`fetch: proxy agent with options initialized ${JSON.stringify(this.#F(this.#B))}.`),new om0.ProxyAgent(this.#B)}async#X(A,D){let _=Date.now(),Q=this.#G(A);if(D.agent===im0)this.#E.debug(`fetch: request for ${Q} made with http agent.`);else{let B=D.agent===this.#A?"proxy":"https";this.#E.debug(`fetch: request for ${Q} made with ${B} agent.`)}try{let B=await am0.default(A,D),E=Date.now()-_;return this.#E.debug(`fetch: request to ${Q} returned HTTP ${B.status} after ${E} ms`),B}catch(B){let E=Date.now()-_;throw this.#E.debug(`fetch: request to ${Q} threw an exception after ${E} ms`),B}}#Y(A){if(this.#A)return this.#A;if(A.toString().startsWith("https://"))return this.#Q;return im0}#G(A){if(A instanceof URL)return A.toString();if(typeof A==="string")return A;return A.url}#F(A){let{ca:D,cert:_,key:Q,...B}=A;return{...B,...D?{ca:"<hidden>"}:{},..._?{cert:"<hidden>"}:{},...Q?{key:"<hidden>"}:{}}}}$h=p0([sm0.Injectable(JX,[_A])],$h);var tm0=F0(ZG(),1);var MA1=F0(wA(),1);var{set:vc6,get:Sc6,mergeWith:jc6,isArray:bc6}=tm0.default;var h_2=d.object({enabled:d.boolean().optional(),enableSecretRedaction:d.boolean().optional(),additionalLanguages:d.array(d.string()).optional(),disabledSupportedLanguages:d.array(d.string()).optional()}),p_2=d.object({chat:d.object({name:d.string(),ref:d.string()}).optional()}),U_=MA1.createInterfaceId("ConfigService");class Zh{#A;#D=vo(new cJ);constructor(){this.#A={baseUrl:c70,codeCompletion:{enableSecretRedaction:!0},telemetry:{enabled:!0},logLevel:b_.INFO,ignoreCertificateErrors:!1,httpAgentOptions:{},duo:{enabledWithoutGitlabProject:!0},featureFlagOverrides:{},knowledgeGraph:{}}}get=(A)=>{return A?Sc6(this.#A,A):this.#A};set=(A,D)=>{vc6(this.#A,A,D),this.#D.fire(this.#A)};onConfigChange=this.#D.event;merge(A){jc6(this.#A,A,(D,_)=>bc6(D)?_:void 0),this.#D.fire(this.#A)}}Zh=p0([MA1.Injectable(U_,[])],Zh);var Ap0=F0(wA(),1);var em0=[1,2,3,4,6,5],bq1=[1,2,3,4,6,5];var FE=(A,...D)=>{return A.reduce((_,Q,B)=>`${_}${Q}${B in D?String(D[B]):""}`,"")};var Ah0=FE`
|
|
1240
1240
|
query getOptionalProjectData($projectPath: ID!) {
|
|
1241
1241
|
project(fullPath: $projectPath) {
|
|
1242
1242
|
id
|
|
@@ -1813,5 +1813,5 @@ Use this for any git operations like status, log, diff, branch operations, etc.
|
|
|
1813
1813
|
${D91(this.#B,D)}`);let _=A.getRequiredService(Rd);this.#Q=A.getRequiredService(_A);let Q=A.getRequiredService(C2);if(e81(Q)){let E=await Q.initialize();if(E.isErr()){this.#Q.error("API initialization failed:",E.error),this.#_.setState({...this.#_.getState(),criticalErrorMessage:E.error.message}),setTimeout(()=>process.exit(1),1);return}}this.#Q.info("Successfully initialized API");let B=A.getRequiredService(R5);this.#D=_.backend,await Promise.all([this.#D.initialize().then(()=>this.#V()),this.#K(A.getRequiredService(IK)),this.#Z(B)])}async#K(A){try{await A.reloadAllServers(this.#B.cwd),await A.waitForAllServersSettled(30000)}catch(D){this.#Q?.warn(`Failed to preload MCP servers during controller initialization: ${D}`)}}async#Z(A){this.#F=await A.getRepositoriesForWorkspace(this.#B.cwd)}getCallbacks(){return{onKeyPress:(A,D)=>{if(D.escape&&this.#_.getState().isLoading&&this.#Y){this.#Q?.info("Cancelling stream due to ESC key press"),this.#Y.abort();return}if(this.#_.getState().input.inputType===CW.TEXT)this.#J.handleKeyPress(A,D);else this.#X.handleKeyPress(A,D)},onSubmit:(A)=>{this.#J.onSubmit(A)},onExit:()=>this.#M(),toggleExpanded:()=>{let A=this.#_.getState();this.#_.setState({...A,expanded:!A.expanded})},onFileSearch:async(A)=>{this.#Q?.info(`onFileSearch callback triggered: ${A}`);let D=cX0(A);return this.#Q?.info(`Translated search pattern to glob pattern: ${D}`),(await Promise.all(this.#F.map(async(Q)=>{let B=await Q.getFiles(D),E=vY4(this.#B.cwd,Q.fsPath);return B.map((z)=>yY4(E,z))}))).flat()}}}#I(){let A={type:"message",id:"welcome",role:"assistant",content:"Hi!"};this.#_.setState({elements:[A],isLoading:!1,input:zT,expanded:!1})}async#V(){if(!this.#D)throw new Error("Backend not initialized");let A=await this.#D.getWelcomeMessage(),D=this.#_.getState();this.#_.setState({...D,elements:D.elements.map((_)=>{return _.id==="welcome"?{..._,content:A}:_}),isLoading:!1})}async#$(A){let D=this.#_.getState();if(D.isLoading)return;this.#_.setState({...D,input:zT}),await this.#H(A)}async#C(A){if(this.#_.getState().isLoading||!A.prompt.trim())return;this.#J.clear();let _={id:Date.now().toString(),type:"message",role:"user",content:A.prompt};this.#w(_),await this.#H(A)}async#H(A){if(this.#_.setState({...this.#_.getState(),input:zT,isLoading:!0}),await this.#G,!this.#D)throw new Error("Backend not initialized");this.#Y=new AbortController;try{let D;for await(let _ of this.#D.sendMessageStream(A,this.#Y.signal))D=_,this.#W(_);if(D?.type==="TOOL_AWAITING_APPROVAL"){let _={type:"SEND_TOOL_APPROVAL",scope:"session",toolId:D.toolId,toolName:D.toolName};this.#X.setChoice([{label:"Approve",value:{..._,approved:!0}},{label:"Reject",value:{..._,approved:!1}}])}}catch(D){this.#Q?.error("Error in message streaming",D),this.#W({type:"ERROR",message:"Sorry, there was an error processing your message. Please try again."})}finally{this.#E=void 0,this.#z.clear(),this.#Y=void 0,this.#_.setState({...this.#_.getState(),isLoading:!1})}}#w(A){let D=this.#_.getState();this.#_.setState({...D,elements:[...D.elements,A]})}#W(A){if(!this.#_)throw new Error("Store not initialized");let D=this.#_.getState();switch(A.type){case"TEXT_CHUNK":{if(!this.#E||this.#E.id!==A.messageId)this.#E={id:A.messageId,type:"message",role:"assistant",content:A.content},this.#w(this.#E);else{this.#E.content+=A.content;let _=D.elements.map((Q)=>Q.type==="message"&&Q.id===A.messageId&&this.#E?this.#E:Q);this.#_.setState({...D,elements:_})}break}case"TOOL_START":{let _={id:A.toolId,type:"tool",name:A.name,input:A.input,state:{type:"loading"}};this.#z.set(A.toolId,_),this.#q(_);break}case"TOOL_AWAITING_APPROVAL":{let _={id:A.toolId,type:"tool",name:A.toolName,input:A.input,state:{type:"approval_request",content:""}};this.#z.set(A.toolId,_),this.#q(_);break}case"TOOL_COMPLETE":{let _=this.#z.get(A.toolId);if(_){let Q={..._,state:A.error?{type:"error",error:A.error}:{type:"success",output:A.result}};this.#q(Q),this.#z.delete(A.toolId)}break}case"ERROR":{this.#Q?.error("Agent error:",A.message);let _={id:`error-${Date.now()}`,type:"error",error:`${A.message}`};this.#w(_);break}default:this.#Q?.warn("Unknown agent event type:",A);break}}#q(A){let D=this.#_.getState(),_=D.elements.findIndex((B)=>B.type==="tool"&&B.id===A.id);if(_<0){this.#w(A);return}let Q=[...D.elements];Q[_]=A,this.#_.setState({...D,elements:Q})}#M(){process.exit(0)}}var SY4=({runConfig:A,children:D})=>{if(A.environment==="development")return a0(tO.StrictMode,{children:D});return a0(PF,{children:D})},jY4=({runConfig:A})=>{let[D,_]=tO.useState(void 0),[Q]=tO.useState(()=>new PT1(_,A));if(tO.useEffect(()=>{CZ(Q.initialize())},[Q]),!D)return a0(T0,{children:"Initializing..."});return a0(xJ1,{state:D,callbacks:Q.getCallbacks()})},Q7A=(A)=>{process.stdout.write("\x1B]0;GitLab Duo CLI\x07"),process.stdout.write("\x1B[?2004h");let{waitUntilExit:D}=Ak(a0(SY4,{runConfig:A,children:a0(jY4,{runConfig:A})}),{exitOnCtrlC:!1});D().then(()=>{process.exit(0)}).catch((_)=>{console.error(_),process.exit(1)}),process.on("exit",()=>{process.stdout.write("\x1B[?2004l")})};class RT1{#A;#D;#_;#Q=null;constructor(A){this.#_=A}async initialize(){let A=await A91({logDestination:"stdout"},this.#_),D=A.getRequiredService(Rd);this.#A=D.backend,this.#D=A.getRequiredService(_A);let _=A.getRequiredService(iB);this.#D.debug(`CLI run config:
|
|
1814
1814
|
${D91(this.#_,_)}`);let Q=A.getRequiredService(C2);if(e81(Q)){let B=await Q.initialize();if(B.isErr())this.#D.error("API initialization failed:",B.error),process.exit(1)}await this.#A.initialize()}async execute(){if(!this.#A||this.#_.command?.name!=="run")throw new Error("Controller not initialized. Call initialize() first.");let{goal:A}=this.#_.command;this.#D?.info(`Executing workflow: ${JSON.stringify({goal:A},null,4)}`);let D={id:Date.now().toString(),type:"message",role:"user",content:A};try{let _;for await(let Q of this.#A.sendMessageStream({type:"SEND_PROMPT",prompt:D.content}))this.#B(Q),_=Q;if(this.#Q)this.#D?.info(JSON.stringify(this.#Q,null,2));process.exit(_?.type==="ERROR"?1:0)}catch(_){throw this.#D?.error("Workflow failed:",_ instanceof Error?_.message:String(_)),_}}#B(A){switch(A.type){case"TEXT_CHUNK":{if(!this.#Q||this.#Q.id!==A.messageId){if(this.#Q)this.#D?.info(JSON.stringify(this.#Q,null,4));this.#Q={id:A.messageId,type:"message",role:"assistant",content:A.content}}else this.#Q.content+=A.content;break}case"TOOL_START":{this.#D?.info(`Tool started: ${A.name}`);break}case"TOOL_COMPLETE":{if(this.#D?.info(`Tool completed: ${A.toolId}`),A.error)this.#D?.error(`Tool error: ${A.error}`);break}case"TOOL_AWAITING_APPROVAL":break;case"ERROR":{this.#D?.error(`Error: ${A.message}`);break}default:{let D=A;this.#D?.warn(`Unexpected event received: ${JSON.stringify(D)}`);break}}}}var TT1=()=>{return"production"};import{statSync as bY4}from"node:fs";import{isAbsolute as kY4,normalize as xY4,resolve as gY4}from"node:path";function B7A(A,D=process.cwd()){let _;if(kY4(A))_=xY4(A);else _=gY4(D,A);return fY4(_),_}function fY4(A){try{if(!bY4(A).isDirectory())throw new hw(`Path "${A}" exists but is not a directory`)}catch(D){if(D instanceof Error&&D.code==="ENOENT")throw new hw(`Directory "${A}" does not exist`);throw D}}function E7A(A){try{let D=JSON.parse(A);return Array.isArray(D)?D.map((Q)=>({category:Q.Category||Q.category,content:Q.Content||Q.content,metadata:Q.metadata||{}})):[]}catch(D){if(D instanceof SyntaxError)throw new hw(`Invalid JSON format: ${D.message}`);throw new hw(`AI Context Item schema error: ${D}`)}}var W7A=F0(V7A(),1),z91=F0(wA(),1);import{join as wF4,dirname as IF4}from"path";import{mkdirSync as CF4,existsSync as E91,writeFileSync as HF4,accessSync as q7A,constants as xT1,promises as kd}from"fs";import{homedir as VF4}from"node:os";var J91=z91.createInterfaceId("PersistentStorage");class Oj{#A;#D;#_;constructor(A,D){this.#D=NA(A,"[PersistentStorage]");try{if(D)this.#A=D;else{let _=process.env.GITLAB_LSP_STORAGE_DIR||VF4();this.#A=wF4(_,".gitlab","storage.json")}this.#D.info(`Initializing storage at: ${this.#A}`),this.#Q()}catch(_){this.#D.error("Failed to construct PersistentStorage:",_),this.#_={status:"failed",error:_}}}#Q(){try{let A=IF4(this.#A);if(this.#D.debug(`Creating directory: ${A}`),!E91(A))CF4(A,{recursive:!0}),this.#D.debug(`Directory created: ${A}`);try{q7A(A,xT1.W_OK)}catch(D){let _=new Error(`Cannot write to directory: ${A}`);throw this.#D.error("Directory write permission error:",D),_}if(!E91(this.#A))this.#D.debug("Creating initial storage file"),HF4(this.#A,JSON.stringify({}),"utf8");else try{q7A(this.#A,xT1.R_OK|xT1.W_OK),this.#D.debug("Storage file is accessible")}catch(D){let _=new Error(`Cannot access storage file: ${this.#A}`);throw this.#D.error("Storage access error:",D),_}this.#_={status:"initialized"},this.#D.info("Persistent storage initialized successfully")}catch(A){this.#_={status:"failed",error:A},this.#D.error("Failed to initialize persistent storage",A)}}isInitialized(){return this.#_?.status==="initialized"}async#B(){try{let A=await kd.readFile(this.#A,"utf8");return JSON.parse(A)}catch(A){this.#D.error("Failed to read storage file, recreating with empty data",A);try{if(E91(this.#A))await kd.unlink(this.#A),this.#D.info("Corrupted storage file removed");let D={};return await kd.writeFile(this.#A,JSON.stringify(D,null,2),"utf8"),this.#D.info("Storage file recreated with empty data"),D}catch(D){return this.#D.error("Failed to recreate storage file",D),{}}}}async#E(A){try{await kd.writeFile(this.#A,JSON.stringify(A,null,2),"utf8")}catch(D){throw this.#D.error("Failed to write storage file",D),D}}async#z(A){let D=null;try{if(!E91(this.#A))this.#D.debug("Storage file does not exist, creating it before locking"),await kd.writeFile(this.#A,JSON.stringify({}),"utf8");return D=await W7A.lock(this.#A,{retries:{retries:5,minTimeout:100,maxTimeout:1000},stale:5000}),await A()}catch(_){throw this.#D.error("Lock operation failed",_),_}finally{if(D)try{await D()}catch(_){this.#D.error("Failed to release lock",_)}}}async get(A){try{if(!this.isInitialized())throw this.#D.error(`Storage is not initialized: ${this.#_?.status==="failed"&&this.#_.error.message||"unknown error"}`),new Error("Storage is not initialized");this.#D.debug(`Getting value for key: ${A}`);let _=(await this.#B())[A];if(_===void 0){this.#D.debug(`No value found for key: ${A}`);return}return _}catch(D){throw this.#D.error(`Storage get error for key: ${A}`,D),D}}async set(A,D){if(!this.isInitialized())throw new Error("Storage is not initialized");this.#D.debug(`Setting value for key: ${A}`),await this.#z(async()=>{let _=await this.#B();_[A]=D,await this.#E(_),this.#D.debug(`Successfully set value for key: ${A}`)})}async delete(A){if(!this.isInitialized())throw new Error("Storage is not initialized");this.#D.debug(`Deleting value for key: ${A}`),await this.#z(async()=>{let D=await this.#B();if(D[A]!==void 0)delete D[A],await this.#E(D),this.#D.debug(`Successfully deleted value for key: ${A}`);else this.#D.debug(`Key not found for deletion: ${A}`)})}close(){this.#D.info("Storage closed"),this.#_={status:"closed"}}}Oj=p0([z91.Injectable(J91,[_A])],Oj);var G91=F0(wA(),1);var M7A="selectedProjectInRepository",O7A="heartbeatActivity",qF4=d.object({accountId:d.string(),namespaceWithPath:d.string(),remoteName:d.string(),remoteUrl:d.string(),repositoryRootPath:d.string()}),WF4=d.record(d.number()),gT1={telemetry:d.object({enabled:d.boolean()})},fT1={telemetry:d.object({enabled:d.boolean()}),[M7A]:d.array(qF4),[O7A]:WF4};var N7A=G91.createInterfaceId("UserPersistentStorage"),uT1="__global__";class X91{#A;#D;#_;#Q;constructor(A,D,_,Q){this.#A=A,this.#D=D,this.#_=_,this.#Q=NA(Q,"[UserPersistentStorage]")}#B(A,D,_){let Q=_.safeParse(D);if(Q.success)return Q.data;this.#Q.warn(`Validation failed for key: ${A} - error: ${JSON.stringify(Q.error.format())}, value: ${JSON.stringify(D)}`);return}#E(A,D,_){return`${A}:${D}:${_}`}async#z(A,D,_){try{let Q=this.#G;if(!Q){this.#Q.warn("No user ID available");return}let B=this.#E(Q,A,D);this.#Q.debug(`Getting value for key: ${D} - userId: ${Q}, client: ${A}`);let E=await this.#A.get(B);if(E===void 0){this.#Q.debug(`No value found for key: ${D}`);return}let z=this.#B(D,E,_);if(z===void 0)this.#Q.warn(`Stored value failed validation for key: ${D}`);return z}catch(Q){this.#Q.error(`Storage get error for key: ${D}`,Q);return}}async#J(A,D,_,Q){let B=this.#G;if(!B){this.#Q.warn("No user ID available, cannot set value");return}let E;try{E=Q.parse(_)}catch(J){throw this.#Q.error(`Validation failed for key: ${D}`,J),new Error(`Invalid value for key ${D}: ${J}`)}let z=this.#E(B,A,D);this.#Q.debug(`Setting value for key: ${D} - userId: ${B}, client: ${A}`),await this.#A.set(z,E),this.#Q.debug(`Successfully set value for key: ${D}`)}async#X(A,D){let _=this.#G;if(!_){this.#Q.warn("No user ID available, cannot delete value");return}let Q=this.#E(_,A,D);this.#Q.debug(`Deleting value for key: ${D} - userId: ${_}, client: ${A}`),await this.#A.delete(Q),this.#Q.debug(`Successfully deleted value for key: ${D}`)}async get(A){let D=this.#Y;if(!D)return;return await this.#z(D,A,fT1[A])}async set(A,D){let _=this.#Y;if(!_){this.#Q.warn("No client name available, cannot set value");return}await this.#J(_,A,D,fT1[A])}async delete(A){let D=this.#Y;if(!D){this.#Q.warn("No client name available, cannot delete value");return}await this.#X(D,A)}async getGlobal(A){return await this.#z(uT1,A,gT1[A])}async setGlobal(A,D){return this.#J(uT1,A,D,gT1[A])}async deleteGlobal(A){return this.#X(uT1,A)}get#Y(){let A=this.#D.get("clientInfo.name");if(!A){this.#Q.warn("No client name in config");return}return A}get#G(){let A=this.#_.user?.id;if(!A)this.#Q.debug("No user ID available from UserService");return A}}X91=p0([G91.Injectable(N7A,[J91,U_,BW,_A])],X91);var MF4=d.object({gitlabBaseUrl:d.string().optional(),gitlabAuthToken:d.string().optional()}),L7A="duo-cli-config";class P7A{#A;#D;#_;constructor(A,D,_){this.#A=A,this.#_=_,this.#D=D}async saveConfig(A){try{let{configurationEntries:D}=A,_={gitlabAuthToken:"",gitlabBaseUrl:""};for(let Q of D){let B=Q.key;if(B in _)_[B]=Q.value}return this.#A=_,await this.#D.set(L7A,_),$7()}catch(D){return this.#_.error("Failed to save configuration:",D),u7(D)}}exit(){process.exit(0)}getDuoConfiguration(){return this.#A}async initialize(){let A=await this.#D.get(L7A),D=MF4.safeParse(A);if(D.success)this.#A={...D.data,...this.#A}}isMissingConfiguration(){let{gitlabAuthToken:A,gitlabBaseUrl:D}=this.#A;return!A||!D}getConfigurationModel(){return{configurationEntries:[{key:"gitlabBaseUrl",value:this.#A.gitlabBaseUrl??"",displayName:"\uD83D\uDD17 GitLab Instance URL",description:"The URL of the GitLab instance to connect to.",defaultValue:"https://gitlab.com",isSensitive:!1},{key:"gitlabAuthToken",value:this.#A.gitlabAuthToken??"",displayName:"\uD83D\uDD16 GitLab Token",description:"GitLab access token with API permissions. Create one here: https://gitlab.com/-/user_settings/personal_access_tokens",defaultValue:"",isSensitive:!0}]}}}var Y91=async(A={})=>{let D=new cO,_=new V81("info"),Q=new g$(D,_),B=new Oj(Q),E=new P7A(A,B,Q);return await E.initialize(),E};var mT1=(A)=>{process.stdout.write("\x1B[?2004h");let D=A.getConfigurationModel(),_=LD(),{waitUntilExit:Q}=Ak(a0(_G0,{initialState:D,controller:A,duoCliVersion:_}),{exitOnCtrlC:!1});Q().then(()=>{process.exit(0)}).catch((B)=>{console.error(B),process.exit(1)}),process.on("exit",()=>{process.stdout.write("\x1B[?2004l")})};var OF4=process.platform==="win32",F91=n3A(),hH=new zy1,hT1=(A)=>{(global.__logger||console).error(A),process.exit(1)};process.on("unhandledRejection",hT1);process.on("uncaughtException",hT1);hH.name("duo").description("GitLab Duo for your command line").version(Kl,"-v, --version","Display version number").option("-C, --cwd <path>","change working directory",(A)=>B7A(A),process.cwd()).addOption(new A9("--gitlab-base-url <url>","Base URL of GitLab instance").env("GITLAB_URL").default(process.env.GITLAB_BASE_URL||"https://gitlab.com")).addOption(new A9("--gitlab-auth-token <token>","Authentication token for GitLab instance").env("GITLAB_TOKEN").default(process.env.GITLAB_OAUTH_TOKEN)).addOption(new A9("--log-level <level>","Set logging level").choices(Object.values(b_)).env("LOG_LEVEL").default(b_.DEBUG)).addOption(new A9("--git-http-user <user>","Username for git HTTP authentication credentials").env("DUO_WORKFLOW_GIT_HTTP_USER")).addOption(new A9("--git-http-password <password>","Password for git HTTP authentication credentials").env("DUO_WORKFLOW_GIT_HTTP_PASSWORD"));F91.registerOptions(hH.addOption(new A9("--existing-session-id <sessionId>","ID of existing session to resume").default(process.env.DUO_WORKFLOW_WORKFLOW_ID)).action(async(A)=>{let D=hH.opts(),{cwd:_,logLevel:Q,gitHttpUser:B,gitHttpPassword:E}=D,{existingSessionId:z}=A,J=await Y91(D);if(J.isMissingConfiguration()){mT1(J);return}let G=J.getDuoConfiguration(),Y=F91.mapConfig({cliVersion:Kl,cwd:_,logLevel:Q,gitlabBaseUrl:G.gitlabBaseUrl,gitlabAuthToken:G.gitlabAuthToken,environment:TT1(),gitHttpUser:B,gitHttpPassword:E,command:{name:"tui",existingSessionId:z}},{programConfig:D,commandConfig:A});Q7A(Y)}));var NF4=hH.command("config").description("configuration management commands");NF4.command("edit").description("edit duo CLI configuration").action(async()=>{let A=await Y91();mT1(A)});var K91=hH.command("log").description("log management commands");K91.command("last").description("open the last log file").action(()=>{uy1()});K91.command("list").description("list all log files").action(()=>{my1()});K91.command("tail [args...]").description(`tail the last log file. "args" can be any standard ${OF4?'PowerShell "Get-Content"':'"tail"'} arguments`).allowUnknownOption().action((A)=>hy1(A||[]));K91.command("clear").description("remove all existing log files").action(()=>{py1()});F91.registerOptions(hH.command("run").description("Run a workflow in non-interactive / headless mode").addOption(new A9("-g, --goal <goal>","Goal/prompt for the session").default(process.env.DUO_WORKFLOW_GOAL).makeOptionMandatory()).addOption(new A9("--ai-context-items <contextItems>","JSON encoded array of additional context items").env("DUO_WORKFLOW_ADDITIONAL_CONTEXT_CONTENT").argParser((A)=>E7A(A))).addOption(new A9("--existing-session-id <sessionId>","ID of existing session to resume").default(process.env.DUO_WORKFLOW_WORKFLOW_ID)).action(async(A)=>{let D=hH.opts(),{cwd:_,logLevel:Q,gitHttpUser:B,gitHttpPassword:E}=D,{goal:z,aiContextItems:J,existingSessionId:X}=A,Y=(await Y91(D)).getDuoConfiguration();if(!Y.gitlabAuthToken)throw new hw("--gitlab-auth-token / GITLAB_AUTH_TOKEN option is required.");let K=F91.mapConfig({cliVersion:Kl,cwd:_,gitlabBaseUrl:Y.gitlabBaseUrl,gitlabAuthToken:Y.gitlabAuthToken,logLevel:Q,environment:TT1(),gitHttpUser:B,gitHttpPassword:E,command:{name:"run",goal:z,aiContextItems:J,existingSessionId:X}},{programConfig:D,commandConfig:A}),$=new RT1(K);await $.initialize(),await $.execute()}));try{await hH.parseAsync(process.argv)}catch(A){hT1(A)}
|
|
1815
1815
|
|
|
1816
|
-
//# debugId=
|
|
1816
|
+
//# debugId=18C13BCDECBA27F664756E2164756E21
|
|
1817
1817
|
//# sourceMappingURL=index.js.map
|