pando-ai 0.7.9 → 0.8.0

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.
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ "use strict";var N=Object.create;var E=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var C=(e,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of T(o))!w.call(e,t)&&t!==r&&E(e,t,{get:()=>o[t],enumerable:!(n=D(o,t))||n.enumerable});return e};var h=(e,o,r)=>(r=e!=null?N(j(e)):{},C(o||!e||!e.__esModule?E(r,"default",{value:e,enumerable:!0}):r,e));var u=h(require("fs")),y=h(require("net")),O=h(require("os")),d=h(require("path")),_=require("child_process");var A=h(require("os")),l=h(require("path")),k=["/usr","/bin","/sbin","/System","/Library","/etc","/private/etc","/var","/private/var","/opt","/dev","/Applications"],I=["/Volumes","/mnt","/media","/srv","/tmp","/private/tmp","/private/var/folders"];function L(e){return[l.default.join(e,".ssh"),l.default.join(e,".aws"),l.default.join(e,".gnupg"),l.default.join(e,".config"),l.default.join(e,".pando-ai"),l.default.join(e,".pando-data"),l.default.join(e,"Library")]}function $(e){return["/",e,"/Users","/home"]}function g(e){let o=l.default.resolve(e);return o.length>1&&o.endsWith(l.default.sep)?o.slice(0,-1):o}function S(e,o){if(e===o)return!0;let r=l.default.relative(o,e);return r!==""&&!r.startsWith("..")&&!l.default.isAbsolute(r)}function b(e,o){let r=g(o?.home??A.default.homedir()),n=g(e),t=process.env.PANDO_ALLOW_TEMP_ROOTS==="1",i=new Set(["/var","/private/var"]),c=$(r).map(g);for(let s of c)if(n===s)return s;for(let s of c)if(S(s,n))return s;let p=[...t?k.filter(s=>!i.has(s)):k,...t?[]:I,...L(r)].map(g);for(let s of p)if(S(n,s)||S(s,n))return s;for(let s of["/Users","/home"].map(g)){let a=l.default.relative(s,n);if(a&&!a.startsWith("..")&&!l.default.isAbsolute(a)&&a.split(l.default.sep).filter(Boolean).length===1)return s}return null}var U="/var/run/pando-security-helper.sock",H="PANDO_INTERNAL_SERVE",B="PANDO_HELPER_EXTRA_ROOTS",M="PANDO_REAL_PROJECT_ROOT",R="PANDO_SECURITY_DATA_ROOT",Y="PANDO_SECURITY_SANDBOX_ROOT",V={core:"pando-ai-core",workspace:"pando-ai-ws"},G=["LANG","LC_ALL","LC_CTYPE","LC_MESSAGES"],X=["PANDO_MCP_OUTPUT","PANDO_MCP_CLIENT","CODEX_THREAD_ID","CODEX_SANDBOX","CODEX_MANAGED_BY_NPM"];function f(e,o={}){let r=process.env[R]||d.default.join(O.default.homedir(),".pando-data"),n=process.env.PANDO_GATEWAY_LOG_FILE||d.default.join(r,"gateway-debug.jsonl");try{u.default.mkdirSync(d.default.dirname(n),{recursive:!0}),u.default.appendFileSync(n,`${JSON.stringify({ts:new Date().toISOString(),event:`security_daemon_${e}`,pid:process.pid,...o})}
3
+ `,"utf8")}catch{}}function m(e){let o=d.default.resolve(e);try{return u.default.realpathSync.native(o)}catch{return o}}function v(e,o){let r=d.default.relative(o,e);return r===""||r.length>0&&!r.startsWith("..")&&!d.default.isAbsolute(r)}function q(){return m(process.env[Y]||d.default.join(O.default.homedir(),".pando","sandboxes"))}function J(){let e=process.env[R];if(!e)return null;try{let o=u.default.statSync(e);return{uid:o.uid,gid:o.gid}}catch{return null}}function F(e){if(typeof process.getuid!="function"||process.getuid()!==0)return{ok:!1,error:"security daemon must run as root"};let o=process.env.PANDO_SECURITY_HELPER_SOCKET||U;for(let r=0;r<e.length;r+=1){let n=e[r];if(n==="--socket"){let t=e[++r];if(!t||t.startsWith("--"))return{ok:!1,error:"--socket requires a value"};o=t;continue}return{ok:!1,error:`Unknown security daemon option: ${n}`}}return d.default.isAbsolute(o)?{ok:!0,socketPath:o,cliPath:process.env.PANDO_HELPER_CLI_PATH||d.default.join(d.default.dirname(__dirname),"dist","cli.js"),execPath:process.execPath}:{ok:!1,error:"--socket must be an absolute path"}}function W(e){let o;try{o=JSON.parse(e)}catch{return{ok:!1,error:"Invalid helper request JSON"}}if(!o||typeof o!="object"||Array.isArray(o))return{ok:!1,error:"Invalid helper request"};let r=o,n=new Set(["command","role","projectRoot","realProjectRoot","extraSandboxRoots","stdio"]);for(let t of Object.keys(r))if(!n.has(t))return{ok:!1,error:`Unknown helper request field: ${t}`};return r.command!=="launch"?{ok:!1,error:"Unsupported helper command"}:r.role!=="core"&&r.role!=="workspace"?{ok:!1,error:"Invalid helper launch role"}:typeof r.projectRoot!="string"||!r.projectRoot?{ok:!1,error:"Invalid helper projectRoot"}:r.realProjectRoot!==void 0&&(typeof r.realProjectRoot!="string"||!r.realProjectRoot)?{ok:!1,error:"Invalid helper realProjectRoot"}:r.extraSandboxRoots!==void 0&&(!Array.isArray(r.extraSandboxRoots)||!r.extraSandboxRoots.every(t=>typeof t=="string"&&t.length>0))?{ok:!1,error:"Invalid helper extraSandboxRoots"}:r.stdio!==!0?{ok:!1,error:"Only stdio helper launch is supported"}:{ok:!0,request:{command:"launch",role:r.role,projectRoot:r.projectRoot,realProjectRoot:r.realProjectRoot,extraSandboxRoots:r.extraSandboxRoots,stdio:!0}}}function K(e){let o=(0,_.spawnSync)("id",["-u",e],{encoding:"utf8"});if(o.status!==0)return{ok:!1,error:`Dedicated user '${e}' does not exist`};let r=(0,_.spawnSync)("id",["-g",e],{encoding:"utf8"});if(r.status!==0)return{ok:!1,error:`Could not resolve primary group for '${e}'`};let n=Number(String(o.stdout||"").trim()),t=Number(String(r.stdout||"").trim());return!Number.isInteger(n)||!Number.isInteger(t)?{ok:!1,error:`Invalid uid/gid for '${e}'`}:{ok:!0,uid:n,gid:t}}function z(e,o){let r=d.default.join(e.projectRoot,".pando-sandbox","home",".pando-data"),n={PATH:process.env.PATH||["/opt/homebrew/bin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin"].join(d.default.delimiter),PANDO_PROCESS_ROLE:e.role,PANDO_SECURITY_HELPER_LAUNCHED:"1",[H]:"1",PANDO_DATA_DIR:r,PANDO_AGENT_SANDBOX_CONTEXT:"1"};for(let t of G)process.env[t]&&(n[t]=process.env[t]);for(let t of X)process.env[t]&&(n[t]=process.env[t]);return e.role==="workspace"&&(n.PANDO_BROKERED_AUTH="1"),n[M]=o,e.role==="workspace"&&(n.PANDO_PUBLISH_TARGET_ROOT=o),e.extraSandboxRoots?.length&&(n[B]=JSON.stringify(e.extraSandboxRoots)),process.env[R]&&(n[R]=process.env[R]),n}function Q(e,o){if(!e.realProjectRoot)return{ok:!1,error:"Helper launch requires realProjectRoot"};let r=m(e.realProjectRoot),n=b(r);if(n)return{ok:!1,error:`Refusing to launch Pando for forbidden project root '${r}' (matches protected path '${n}')`};let t=m(e.projectRoot),i=q();if(!v(t,i))return{ok:!1,error:`Refusing sandbox root outside configured sandbox base: ${t}`};for(let s of e.extraSandboxRoots??[]){let a=m(s);if(!v(a,i))return{ok:!1,error:`Refusing extra sandbox root outside configured sandbox base: ${a}`}}try{if(!u.default.statSync(t).isDirectory())return{ok:!1,error:`Sandbox root is not a directory: ${t}`}}catch(s){return{ok:!1,error:`Sandbox root does not exist: ${t}: ${s?.message||s}`}}let c=K(V[e.role]);if(!c.ok)return c;let p={cwd:t,env:z(e,r),stdio:["pipe","pipe","inherit"]};return p.uid=c.uid,p.gid=c.gid,{ok:!0,child:(0,_.spawn)(o.execPath,[o.cliPath,"serve",t],p)}}function Z(e,o){f("connection");let r=Buffer.alloc(0),n=t=>{r=Buffer.concat([r,t]);let i=r.indexOf(10);if(i===-1){r.length>8192&&(f("request_too_large",{bytes:r.length}),e.end(`Helper request too large
4
+ `));return}e.off("data",n);let c=W(r.slice(0,i).toString("utf8")),p=r.slice(i+1);if(!c.ok){f("parse_failed",{error:c.error}),e.end(`${c.error}
5
+ `);return}let s=Q(c.request,o);if(!s.ok){f("launch_failed",{role:c.request.role,projectRoot:c.request.projectRoot,error:s.error}),console.error(`Pando helper failed to launch MCP server: ${s.error}`),e.end(`${s.error}
6
+ `);return}let a=s.child;f("child_spawned",{childPid:a.pid,role:c.request.role,projectRoot:c.request.projectRoot}),p.length&&a.stdin?.write(p),e.pipe(a.stdin),a.stdout?.pipe(e),e.on("close",()=>{f("socket_closed",{childPid:a.pid});try{a.kill("SIGTERM")}catch{}}),a.on("exit",(P,x)=>{f("child_exit",{childPid:a.pid,code:P,signal:x}),e.end()}),a.on("error",P=>{f("child_error",{childPid:a.pid,error:P.message}),e.end(`Failed to launch Pando MCP server: ${P.message}
7
+ `)})};e.on("data",n)}async function ee(){let e=F(process.argv.slice(2));if(!e.ok)return console.error(e.error),1;try{u.default.mkdirSync(d.default.dirname(e.socketPath),{recursive:!0}),u.default.rmSync(e.socketPath,{force:!0})}catch(o){return console.error(`Could not prepare helper socket ${e.socketPath}: ${o?.message||o}`),1}return await new Promise((o,r)=>{let n=y.default.createServer(i=>Z(i,e));n.on("error",r),n.listen(e.socketPath,()=>{try{let i=J();if(!i)throw new Error(`${R} is not configured or cannot be statted`);u.default.chownSync(e.socketPath,i.uid,i.gid),u.default.chmodSync(e.socketPath,384)}catch(i){f("socket_permission_failed",{socketPath:e.socketPath,error:i?.message||String(i)}),console.error(`Could not secure helper socket ${e.socketPath}: ${i?.message||i}`),n.close(()=>o());return}f("listening",{socketPath:e.socketPath,cliPath:e.cliPath}),console.error(`pando security helper daemon listening on ${e.socketPath}`)});let t=()=>{n.close(()=>{try{u.default.rmSync(e.socketPath,{force:!0})}catch{}o()})};process.once("SIGINT",t),process.once("SIGTERM",t)}),0}ee().then(e=>process.exit(e)).catch(e=>{console.error(`security helper daemon failed: ${e?.message||e}`),process.exit(1)});
@@ -32182,7 +32182,7 @@ Project '${p.projectName}' (${qQ[p.projectKind]}) ${a}
32182
32182
  `,a++};this.projectService.externalProjects.forEach(d),this.projectService.configuredProjects.forEach(d),this.projectService.inferredProjects.forEach(d)}}this.logger.msg(s,"Err")}send(e){if(e.type==="event"&&!this.canUseEvents){this.logger.hasLevel(3)&&this.logger.info(`Session does not support events: ignored event: ${Q9(e)}`);return}this.writeMessage(e)}writeMessage(e){let t=LMe(e,this.logger,this.byteLength,this.host.newLine);this.host.write(t)}event(e,t){this.send(iHe(t,e))}doOutput(e,t,r,s,a,d){let p={seq:0,type:"response",command:t,request_seq:r,success:s,performanceData:a&&lHe(a)};if(s){let h;if(Ba(e))p.body=e,h=e.metadata,delete e.metadata;else if(typeof e=="object")if(e.metadata){let{metadata:y,...x}=e;p.body=x,h=y}else p.body=e;else p.body=e;h&&(p.metadata=h)}else B.assert(e===void 0);d&&(p.message=d),this.send(p)}semanticCheck(e,t){var r,s;let a=jc();(r=oi)==null||r.push(oi.Phase.Session,"semanticCheck",{file:e,configFilePath:t.canonicalConfigFilePath});let d=got(t,e)?qv:t.getLanguageService().getSemanticDiagnostics(e).filter(p=>!!p.file);this.sendDiagnosticsEvent(e,t,d,"semanticDiag",a),(s=oi)==null||s.pop()}syntacticCheck(e,t){var r,s;let a=jc();(r=oi)==null||r.push(oi.Phase.Session,"syntacticCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.sendDiagnosticsEvent(e,t,t.getLanguageService().getSyntacticDiagnostics(e),"syntaxDiag",a),(s=oi)==null||s.pop()}suggestionCheck(e,t){var r,s;let a=jc();(r=oi)==null||r.push(oi.Phase.Session,"suggestionCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.sendDiagnosticsEvent(e,t,t.getLanguageService().getSuggestionDiagnostics(e),"suggestionDiag",a),(s=oi)==null||s.pop()}regionSemanticCheck(e,t,r){var s,a,d;let p=jc();(s=oi)==null||s.push(oi.Phase.Session,"regionSemanticCheck",{file:e,configFilePath:t.canonicalConfigFilePath});let h;if(!this.shouldDoRegionCheck(e)||!(h=t.getLanguageService().getRegionSemanticDiagnostics(e,r))){(a=oi)==null||a.pop();return}this.sendDiagnosticsEvent(e,t,h.diagnostics,"regionSemanticDiag",p,h.spans),(d=oi)==null||d.pop()}shouldDoRegionCheck(e){var t;let r=(t=this.projectService.getScriptInfoForNormalizedPath(e))==null?void 0:t.textStorage.getLineInfo().getLineCount();return!!(r&&r>=this.regionDiagLineCountThreshold)}sendDiagnosticsEvent(e,t,r,s,a,d){try{let p=B.checkDefined(t.getScriptInfo(e)),h=jc()-a,y={file:e,diagnostics:r.map(x=>vot(e,t,x)),spans:d?.map(x=>Ik(x,p))};this.event(y,s),this.addDiagnosticsPerformanceData(e,s,h)}catch(p){this.logError(p,s)}}updateErrorCheck(e,t,r,s=!0){if(t.length===0)return;B.assert(!this.suppressDiagnosticEvents);let a=this.changeSeq,d=Math.min(r,200),p=0,h=()=>{if(p++,t.length>p)return e.delay("checkOne",d,x)},y=(E,D)=>{if(this.semanticCheck(E,D),this.changeSeq===a){if(this.getPreferences(E).disableSuggestions)return h();e.immediate("suggestionCheck",()=>{this.suggestionCheck(E,D),h()})}},x=()=>{if(this.changeSeq!==a)return;let E,D=t[p];if(ka(D)?D=this.toPendingErrorCheck(D):"ranges"in D&&(E=D.ranges,D=this.toPendingErrorCheck(D.file)),!D)return h();let{fileName:N,project:R}=D;if(_I(R),!!R.containsFile(N,s)&&(this.syntacticCheck(N,R),this.changeSeq===a)){if(R.projectService.serverMode!==0)return h();if(E)return e.immediate("regionSemanticCheck",()=>{let F=this.projectService.getScriptInfoForNormalizedPath(N);F&&this.regionSemanticCheck(N,R,E.map(z=>this.getRange({file:N,...z},F))),this.changeSeq===a&&e.immediate("semanticCheck",()=>y(N,R))});e.immediate("semanticCheck",()=>y(N,R))}};t.length>p&&this.changeSeq===a&&e.delay("checkOne",r,x)}cleanProjects(e,t){if(t){this.logger.info(`cleaning ${e}`);for(let r of t)r.getLanguageService(!1).cleanupSemanticCache(),r.cleanupProgram()}}cleanup(){this.cleanProjects("inferred projects",this.projectService.inferredProjects),this.cleanProjects("configured projects",Ga(this.projectService.configuredProjects.values())),this.cleanProjects("external projects",this.projectService.externalProjects),this.host.gc&&(this.logger.info("host.gc()"),this.host.gc())}getEncodedSyntacticClassifications(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e);return r.getEncodedSyntacticClassifications(t,e)}getEncodedSemanticClassifications(e){let{file:t,project:r}=this.getFileAndProject(e),s=e.format==="2020"?"2020":"original";return r.getLanguageService().getEncodedSemanticClassifications(t,e,s)}getProject(e){return e===void 0?void 0:this.projectService.findProject(e)}getConfigFileAndProject(e){let t=this.getProject(e.projectFileName),r=bp(e.file);return{configFile:t&&t.hasConfigFile(r)?r:void 0,project:t}}getConfigFileDiagnostics(e,t,r){let s=t.getAllProjectErrors(),a=t.getLanguageService().getCompilerOptionsDiagnostics(),d=Kt(Hr(s,a),p=>!!p.file&&p.file.fileName===e);return r?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(d):At(d,p=>TB(p,!1))}convertToDiagnosticsWithLinePositionFromDiagnosticFile(e){return e.map(t=>({message:Sk(t.messageText,this.host.newLine),start:t.start,length:t.length,category:Xx(t),code:t.code,source:t.source,startLocation:t.file&&VU(Ho(t.file,t.start)),endLocation:t.file&&VU(Ho(t.file,t.start+t.length)),reportsUnnecessary:t.reportsUnnecessary,reportsDeprecated:t.reportsDeprecated,relatedInformation:At(t.relatedInformation,iTe)}))}getCompilerOptionsDiagnostics(e){let t=this.getProject(e.projectFileName);return this.convertToDiagnosticsWithLinePosition(Kt(t.getLanguageService().getCompilerOptionsDiagnostics(),r=>!r.file),void 0)}convertToDiagnosticsWithLinePosition(e,t){return e.map(r=>({message:Sk(r.messageText,this.host.newLine),start:r.start,length:r.length,category:Xx(r),code:r.code,source:r.source,startLocation:t&&t.positionToLineOffset(r.start),endLocation:t&&t.positionToLineOffset(r.start+r.length),reportsUnnecessary:r.reportsUnnecessary,reportsDeprecated:r.reportsDeprecated,relatedInformation:At(r.relatedInformation,iTe)}))}getDiagnosticsWorker(e,t,r,s){let{project:a,file:d}=this.getFileAndProject(e);if(t&&got(a,d))return qv;let p=a.getScriptInfoForNormalizedPath(d),h=r(a,d);return s?this.convertToDiagnosticsWithLinePosition(h,p):h.map(y=>vot(d,a,y))}getDefinition(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.getPositionInFile(e,r),d=this.mapDefinitionInfoLocations(s.getLanguageService().getDefinitionAtPosition(r,a)||qv,s);return t?this.mapDefinitionInfo(d,s):d.map(Dvt.mapToOriginalLocation)}mapDefinitionInfoLocations(e,t){return e.map(r=>{let s=sTe(r,t);return s?{...s,containerKind:r.containerKind,containerName:r.containerName,kind:r.kind,name:r.name,failedAliasResolution:r.failedAliasResolution,...r.unverified&&{unverified:r.unverified}}:r})}getDefinitionAndBoundSpan(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.getPositionInFile(e,r),d=B.checkDefined(s.getScriptInfo(r)),p=s.getLanguageService().getDefinitionAndBoundSpan(r,a);if(!p||!p.definitions)return{definitions:qv,textSpan:void 0};let h=this.mapDefinitionInfoLocations(p.definitions,s),{textSpan:y}=p;return t?{definitions:this.mapDefinitionInfo(h,s),textSpan:Ik(y,d)}:{definitions:h.map(Dvt.mapToOriginalLocation),textSpan:y}}findSourceDefinition(e){var t;let{file:r,project:s}=this.getFileAndProject(e),a=this.getPositionInFile(e,r),d=s.getLanguageService().getDefinitionAtPosition(r,a),p=this.mapDefinitionInfoLocations(d||qv,s).slice();if(this.projectService.serverMode===0&&(!dt(p,N=>bp(N.fileName)!==r&&!N.isAmbient)||dt(p,N=>!!N.failedAliasResolution))){let N=DE(U=>U.textSpan.start,p2e(this.host.useCaseSensitiveFileNames));p?.forEach(U=>N.add(U));let R=s.getNoDtsResolutionProject(r),F=R.getLanguageService(),z=(t=F.getDefinitionAtPosition(r,a,!0,!1))==null?void 0:t.filter(U=>bp(U.fileName)!==r);if(dt(z))for(let U of z){if(U.unverified){let K=E(U,s.getLanguageService().getProgram(),F.getProgram());if(dt(K)){for(let Q of K)N.add(Q);continue}}N.add(U)}else{let U=p.filter(K=>bp(K.fileName)!==r&&K.isAmbient);for(let K of dt(U)?U:x()){let Q=y(K.fileName,r,R);if(!Q)continue;let ee=this.projectService.getOrCreateScriptInfoNotOpenedByClient(Q,R.currentDirectory,R.directoryStructureHost,!1);if(!ee)continue;R.containsScriptInfo(ee)||(R.addRoot(ee),R.updateGraph());let ie=F.getProgram(),ae=B.checkDefined(ie.getSourceFile(Q));for(let ue of D(K.name,ae,ie))N.add(ue)}}p=Ga(N.values())}return p=p.filter(N=>!N.isAmbient&&!N.failedAliasResolution),this.mapDefinitionInfo(p,s);function y(N,R,F){var z,U,K;let Q=Y6(N);if(Q&&N.lastIndexOf(ML)===Q.topLevelNodeModulesIndex){let ee=N.substring(0,Q.packageRootIndex),ie=(z=s.getModuleResolutionCache())==null?void 0:z.getPackageJsonInfoCache(),ae=s.getCompilationSettings(),ue=tU(Ia(ee,s.getCurrentDirectory()),eU(ie,s,ae));if(!ue)return;let le=Kae(ue,{moduleResolution:2},s,s.getModuleResolutionCache()),ge=N.substring(Q.topLevelPackageNameIndex+1,Q.packageRootIndex),Ie=gk(RX(ge)),fe=s.toPath(N);if(le&&dt(le,he=>s.toPath(he)===fe))return(U=F.resolutionCache.resolveSingleModuleNameWithoutWatching(Ie,R).resolvedModule)==null?void 0:U.resolvedFileName;{let he=N.substring(Q.packageRootIndex+1),De=`${Ie}/${sp(he)}`;return(K=F.resolutionCache.resolveSingleModuleNameWithoutWatching(De,R).resolvedModule)==null?void 0:K.resolvedFileName}}}function x(){let N=s.getLanguageService(),R=N.getProgram(),F=JE(R.getSourceFile(r),a);return(Zl(F)||qn(F))&&_m(F.parent)&&u9(F,z=>{var U;if(z===F)return;let K=(U=N.getDefinitionAtPosition(r,z.getStart(),!0,!1))==null?void 0:U.filter(Q=>bp(Q.fileName)!==r&&Q.isAmbient).map(Q=>({fileName:Q.fileName,name:F1(F)}));if(dt(K))return K})||qv}function E(N,R,F){var z;let U=F.getSourceFile(N.fileName);if(!U)return;let K=JE(R.getSourceFile(r),a),Q=R.getTypeChecker().getSymbolAtLocation(K),ee=Q&&jm(Q,277);if(!ee)return;let ie=((z=ee.propertyName)==null?void 0:z.text)||ee.name.text;return D(ie,U,F)}function D(N,R,F){let z=sh.Core.getTopMostDeclarationNamesInFile(N,R);return Ar(z,U=>{let K=F.getTypeChecker().getSymbolAtLocation(U),Q=xw(U);if(K&&Q)return MF.createDefinitionInfo(Q,F.getTypeChecker(),K,Q,!0)})}}getEmitOutput(e){let{file:t,project:r}=this.getFileAndProject(e);if(!r.shouldEmitFile(r.getScriptInfo(t)))return{emitSkipped:!0,outputFiles:[],diagnostics:[]};let s=r.getLanguageService().getEmitOutput(t);return e.richResponse?{...s,diagnostics:e.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(s.diagnostics):s.diagnostics.map(a=>TB(a,!0))}:s}mapJSDocTagInfo(e,t,r){return e?e.map(s=>{var a;return{...s,text:r?this.mapDisplayParts(s.text,t):(a=s.text)==null?void 0:a.map(d=>d.text).join("")}}):[]}mapDisplayParts(e,t){return e?e.map(r=>r.kind!=="linkName"?r:{...r,target:this.toFileSpan(r.target.fileName,r.target.textSpan,t)}):[]}mapSignatureHelpItems(e,t,r){return e.map(s=>({...s,documentation:this.mapDisplayParts(s.documentation,t),parameters:s.parameters.map(a=>({...a,documentation:this.mapDisplayParts(a.documentation,t)})),tags:this.mapJSDocTagInfo(s.tags,t,r)}))}mapDefinitionInfo(e,t){return e.map(r=>({...this.toFileSpanWithContext(r.fileName,r.textSpan,r.contextSpan,t),...r.unverified&&{unverified:r.unverified}}))}static mapToOriginalLocation(e){return e.originalFileName?(B.assert(e.originalTextSpan!==void 0,"originalTextSpan should be present if originalFileName is"),{...e,fileName:e.originalFileName,textSpan:e.originalTextSpan,targetFileName:e.fileName,targetTextSpan:e.textSpan,contextSpan:e.originalContextSpan,targetContextSpan:e.contextSpan}):e}toFileSpan(e,t,r){let s=r.getLanguageService(),a=s.toLineColumnOffset(e,t.start),d=s.toLineColumnOffset(e,_u(t));return{file:e,start:{line:a.line+1,offset:a.character+1},end:{line:d.line+1,offset:d.character+1}}}toFileSpanWithContext(e,t,r,s){let a=this.toFileSpan(e,t,s),d=r&&this.toFileSpan(e,r,s);return d?{...a,contextStart:d.start,contextEnd:d.end}:a}getTypeDefinition(e){let{file:t,project:r}=this.getFileAndProject(e),s=this.getPositionInFile(e,t),a=this.mapDefinitionInfoLocations(r.getLanguageService().getTypeDefinitionAtPosition(t,s)||qv,r);return this.mapDefinitionInfo(a,r)}mapImplementationLocations(e,t){return e.map(r=>{let s=sTe(r,t);return s?{...s,kind:r.kind,displayParts:r.displayParts}:r})}getImplementation(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.getPositionInFile(e,r),d=this.mapImplementationLocations(s.getLanguageService().getImplementationAtPosition(r,a)||qv,s);return t?d.map(({fileName:p,textSpan:h,contextSpan:y})=>this.toFileSpanWithContext(p,h,y,s)):d.map(Dvt.mapToOriginalLocation)}getSyntacticDiagnosticsSync(e){let{configFile:t}=this.getConfigFileAndProject(e);return t?qv:this.getDiagnosticsWorker(e,!1,(r,s)=>r.getLanguageService().getSyntacticDiagnostics(s),!!e.includeLinePosition)}getSemanticDiagnosticsSync(e){let{configFile:t,project:r}=this.getConfigFileAndProject(e);return t?this.getConfigFileDiagnostics(t,r,!!e.includeLinePosition):this.getDiagnosticsWorker(e,!0,(s,a)=>s.getLanguageService().getSemanticDiagnostics(a).filter(d=>!!d.file),!!e.includeLinePosition)}getSuggestionDiagnosticsSync(e){let{configFile:t}=this.getConfigFileAndProject(e);return t?qv:this.getDiagnosticsWorker(e,!0,(r,s)=>r.getLanguageService().getSuggestionDiagnostics(s),!!e.includeLinePosition)}getJsxClosingTag(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t),a=r.getJsxClosingTagAtPosition(t,s);return a===void 0?void 0:{newText:a.newText,caretOffset:0}}getLinkedEditingRange(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t),a=r.getLinkedEditingRangeAtPosition(t,s),d=this.projectService.getScriptInfoForNormalizedPath(t);if(!(d===void 0||a===void 0))return wot(a,d)}getDocumentHighlights(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.getPositionInFile(e,r),d=s.getLanguageService().getDocumentHighlights(r,a,e.filesToSearch);return d?t?d.map(({fileName:p,highlightSpans:h})=>{let y=s.getScriptInfo(p);return{file:p,highlightSpans:h.map(({textSpan:x,kind:E,contextSpan:D})=>({...iN(x,D,y),kind:E}))}}):d:qv}provideInlayHints(e){let{file:t,project:r}=this.getFileAndProject(e),s=this.projectService.getScriptInfoForNormalizedPath(t);return r.getLanguageService().provideInlayHints(t,e,this.getPreferences(t)).map(d=>{let{position:p,displayParts:h}=d;return{...d,position:s.positionToLineOffset(p),displayParts:h?.map(({text:y,span:x,file:E})=>{if(x){B.assertIsDefined(E,"Target file should be defined together with its span.");let D=this.projectService.getScriptInfo(E);return{text:y,span:{start:D.positionToLineOffset(x.start),end:D.positionToLineOffset(x.start+x.length),file:E}}}else return{text:y}})}})}mapCode(e){var t;let r=this.getHostFormatOptions(),s=this.getHostPreferences(),{file:a,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(e),p=this.projectService.getScriptInfoForNormalizedPath(a),h=(t=e.mapping.focusLocations)==null?void 0:t.map(x=>x.map(E=>{let D=p.lineOffsetToPosition(E.start.line,E.start.offset),N=p.lineOffsetToPosition(E.end.line,E.end.offset);return{start:D,length:N-D}})),y=d.mapCode(a,e.mapping.contents,h,r,s);return this.mapTextChangesToCodeEdits(y)}getCopilotRelatedInfo(){return{relatedFiles:[]}}setCompilerOptionsForInferredProjects(e){this.projectService.setCompilerOptionsForInferredProjects(e.options,e.projectRootPath)}getProjectInfo(e){return this.getProjectInfoWorker(e.file,e.projectFileName,e.needFileNameList,e.needDefaultConfiguredProjectInfo,!1)}getProjectInfoWorker(e,t,r,s,a){let{project:d}=this.getFileAndProjectWorker(e,t);return _I(d),{configFileName:d.getProjectName(),languageServiceDisabled:!d.languageServiceEnabled,fileNames:r?d.getFileNames(!1,a):void 0,configuredProjectInfo:s?this.getDefaultConfiguredProjectInfo(e):void 0}}getDefaultConfiguredProjectInfo(e){var t;let r=this.projectService.getScriptInfo(e);if(!r)return;let s=this.projectService.findDefaultConfiguredProjectWorker(r,3);if(!s)return;let a,d;return s.seenProjects.forEach((p,h)=>{h!==s.defaultProject&&(p!==3?(a??(a=[])).push(bp(h.getConfigFilePath())):(d??(d=[])).push(bp(h.getConfigFilePath())))}),(t=s.seenConfigs)==null||t.forEach(p=>(a??(a=[])).push(p)),{notMatchedByConfig:a,notInProject:d,defaultProject:s.defaultProject&&bp(s.defaultProject.getConfigFilePath())}}getRenameInfo(e){let{file:t,project:r}=this.getFileAndProject(e),s=this.getPositionInFile(e,t),a=this.getPreferences(t);return r.getLanguageService().getRenameInfo(t,s,a)}getProjects(e,t,r){let s,a;if(e.projectFileName){let d=this.getProject(e.projectFileName);d&&(s=[d])}else{let d=t?this.projectService.getScriptInfoEnsuringProjectsUptoDate(e.file):this.projectService.getScriptInfo(e.file);if(d)t||this.projectService.ensureDefaultProjectForFile(d);else return r?qv:(this.projectService.logErrorForScriptInfoNotFound(e.file),KL.ThrowNoProject());s=d.containingProjects,a=this.projectService.getSymlinkedProjects(d)}return s=Kt(s,d=>d.languageServiceEnabled&&!d.isOrphan()),!r&&(!s||!s.length)&&!a?(this.projectService.logErrorForScriptInfoNotFound(e.file??e.projectFileName),KL.ThrowNoProject()):a?{projects:s,symLinkedProjects:a}:s}getDefaultProject(e){if(e.projectFileName){let r=this.getProject(e.projectFileName);if(r)return r;if(!e.file)return KL.ThrowNoProject()}return this.projectService.getScriptInfo(e.file).getDefaultProject()}getRenameLocations(e,t){let r=bp(e.file),s=this.getPositionInFile(e,r),a=this.getProjects(e),d=this.getDefaultProject(e),p=this.getPreferences(r),h=this.mapRenameInfo(d.getLanguageService().getRenameInfo(r,s,p),B.checkDefined(this.projectService.getScriptInfo(r)));if(!h.canRename)return t?{info:h,locs:[]}:[];let y=FMe(a,d,{fileName:e.file,pos:s},!!e.findInStrings,!!e.findInComments,p,this.host.useCaseSensitiveFileNames);return t?{info:h,locs:this.toSpanGroups(y)}:y}mapRenameInfo(e,t){if(e.canRename){let{canRename:r,fileToRename:s,displayName:a,fullDisplayName:d,kind:p,kindModifiers:h,triggerSpan:y}=e;return{canRename:r,fileToRename:s,displayName:a,fullDisplayName:d,kind:p,kindModifiers:h,triggerSpan:Ik(y,t)}}else return e}toSpanGroups(e){let t=new Map;for(let{fileName:r,textSpan:s,contextSpan:a,originalContextSpan:d,originalTextSpan:p,originalFileName:h,...y}of e){let x=t.get(r);x||t.set(r,x={file:r,locs:[]});let E=B.checkDefined(this.projectService.getScriptInfo(r));x.locs.push({...iN(s,a,E),...y})}return Ga(t.values())}getReferences(e,t){let r=bp(e.file),s=this.getProjects(e),a=this.getPositionInFile(e,r),d=xot(s,this.getDefaultProject(e),{fileName:e.file,pos:a},this.host.useCaseSensitiveFileNames,this.logger);if(!t)return d;let p=this.getPreferences(r),h=this.getDefaultProject(e),y=h.getScriptInfoForNormalizedPath(r),x=h.getLanguageService().getQuickInfoAtPosition(r,a),E=x?zle(x.displayParts):"",D=x&&x.textSpan,N=D?y.positionToLineOffset(D.start).offset:0,R=D?y.getSnapshot().getText(D.start,_u(D)):"";return{refs:gr(d,z=>z.references.map(U=>Not(this.projectService,U,p))),symbolName:R,symbolStartOffset:N,symbolDisplayString:E}}getFileReferences(e,t){let r=this.getProjects(e),s=bp(e.file),a=this.getPreferences(s),d={fileName:s,pos:0},p=BMe(r,this.getDefaultProject(e),d,d,WMe,x=>(this.logger.info(`Finding references to file ${s} in project ${x.getProjectName()}`),x.getLanguageService().getFileReferences(s))),h;if(Ba(p))h=p;else{h=[];let x=OMe(this.host.useCaseSensitiveFileNames);p.forEach(E=>{for(let D of E)x.has(D)||(h.push(D),x.add(D))})}return t?{refs:h.map(x=>Not(this.projectService,x,a)),symbolName:`"${e.file}"`}:h}openClientFile(e,t,r,s){this.projectService.openClientFileWithNormalizedPath(e,t,r,!1,s)}getPosition(e,t){return e.position!==void 0?e.position:t.lineOffsetToPosition(e.line,e.offset)}getPositionInFile(e,t){let r=this.projectService.getScriptInfoForNormalizedPath(t);return this.getPosition(e,r)}getFileAndProject(e){return this.getFileAndProjectWorker(e.file,e.projectFileName)}getFileAndLanguageServiceForSyntacticOperation(e){let{file:t,project:r}=this.getFileAndProject(e);return{file:t,languageService:r.getLanguageService(!1)}}getFileAndProjectWorker(e,t){let r=bp(e),s=this.getProject(t)||this.projectService.ensureDefaultProjectForFile(r);return{file:r,project:s}}getOutliningSpans(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=s.getOutliningSpans(r);if(t){let d=this.projectService.getScriptInfoForNormalizedPath(r);return a.map(p=>({textSpan:Ik(p.textSpan,d),hintSpan:Ik(p.hintSpan,d),bannerText:p.bannerText,autoCollapse:p.autoCollapse,kind:p.kind}))}else return a}getTodoComments(e){let{file:t,project:r}=this.getFileAndProject(e);return r.getLanguageService().getTodoComments(t,e.descriptors)}getDocCommentTemplate(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t);return r.getDocCommentTemplateAtPosition(t,s,this.getPreferences(t),this.getFormatOptions(t))}getSpanOfEnclosingComment(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=e.onlyMultiLine,a=this.getPositionInFile(e,t);return r.getSpanOfEnclosingComment(t,a,s)}getIndentation(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t),a=e.options?WK(e.options):this.getFormatOptions(t),d=r.getIndentationAtPosition(t,s,a);return{position:s,indentation:d}}getBreakpointStatement(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t);return r.getBreakpointStatementAtPosition(t,s)}getNameOrDottedNameSpan(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t);return r.getNameOrDottedNameSpan(t,s,s)}isValidBraceCompletion(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.getPositionInFile(e,t);return r.isValidBraceCompletionAtPosition(t,s,e.openingBrace.charCodeAt(0))}getQuickInfoWorker(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getPreferences(r),p=s.getLanguageService().getQuickInfoAtPosition(r,this.getPosition(e,a),d.maximumHoverLength,e.verbosityLevel);if(!p)return;let h=!!d.displayPartsForJSDoc;if(t){let y=zle(p.displayParts);return{kind:p.kind,kindModifiers:p.kindModifiers,start:a.positionToLineOffset(p.textSpan.start),end:a.positionToLineOffset(_u(p.textSpan)),displayString:y,documentation:h?this.mapDisplayParts(p.documentation,s):zle(p.documentation),tags:this.mapJSDocTagInfo(p.tags,s,h),canIncreaseVerbosityLevel:p.canIncreaseVerbosityLevel}}else return h?p:{...p,tags:this.mapJSDocTagInfo(p.tags,s,!1)}}getFormattingEditsForRange(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.projectService.getScriptInfoForNormalizedPath(t),a=s.lineOffsetToPosition(e.line,e.offset),d=s.lineOffsetToPosition(e.endLine,e.endOffset),p=r.getFormattingEditsForRange(t,a,d,this.getFormatOptions(t));if(p)return p.map(h=>this.convertTextChangeToCodeEdit(h,s))}getFormattingEditsForRangeFull(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=e.options?WK(e.options):this.getFormatOptions(t);return r.getFormattingEditsForRange(t,e.position,e.endPosition,s)}getFormattingEditsForDocumentFull(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=e.options?WK(e.options):this.getFormatOptions(t);return r.getFormattingEditsForDocument(t,s)}getFormattingEditsAfterKeystrokeFull(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=e.options?WK(e.options):this.getFormatOptions(t);return r.getFormattingEditsAfterKeystroke(t,e.position,e.key,s)}getFormattingEditsAfterKeystroke(e){let{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),s=this.projectService.getScriptInfoForNormalizedPath(t),a=s.lineOffsetToPosition(e.line,e.offset),d=this.getFormatOptions(t),p=r.getFormattingEditsAfterKeystroke(t,a,e.key,d);if(e.key===`
32183
32183
  `&&(!p||p.length===0||Ihe(p,a))){let{lineText:h,absolutePosition:y}=s.textStorage.getAbsolutePositionAndLineText(e.line);if(h&&h.search("\\S")<0){let x=r.getIndentationAtPosition(t,a,d),E=0,D,N;for(D=0,N=h.length;D<N;D++)if(h.charAt(D)===" ")E++;else if(h.charAt(D)===" ")E+=d.tabSize;else break;if(x!==E){let R=y+D;p.push({span:kd(y,R),newText:Hg.getIndentationString(x,d)})}}}if(p)return p.map(h=>({start:s.positionToLineOffset(h.span.start),end:s.positionToLineOffset(_u(h.span)),newText:h.newText?h.newText:""}))}getCompletions(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getPosition(e,a),p=s.getLanguageService().getCompletionsAtPosition(r,d,{...xhe(this.getPreferences(r)),triggerCharacter:e.triggerCharacter,triggerKind:e.triggerKind,includeExternalModuleExports:e.includeExternalModuleExports,includeInsertTextCompletions:e.includeInsertTextCompletions},s.projectService.getFormatCodeOptions(r));if(p===void 0)return;if(t==="completions-full")return p;let h=e.prefix||"",y=Ar(p.entries,E=>{if(p.isMemberCompletion||On(E.name.toLowerCase(),h.toLowerCase())){let D=E.replacementSpan?Ik(E.replacementSpan,a):void 0;return{...E,replacementSpan:D,hasAction:E.hasAction||void 0,symbol:void 0}}});return t==="completions"?(p.metadata&&(y.metadata=p.metadata),y):{...p,optionalReplacementSpan:p.optionalReplacementSpan&&Ik(p.optionalReplacementSpan,a),entries:y}}getCompletionEntryDetails(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getPosition(e,a),p=s.projectService.getFormatCodeOptions(r),h=!!this.getPreferences(r).displayPartsForJSDoc,y=Ar(e.entryNames,x=>{let{name:E,source:D,data:N}=typeof x=="string"?{name:x,source:void 0,data:void 0}:x;return s.getLanguageService().getCompletionEntryDetails(r,d,E,p,D,this.getPreferences(r),N?no(N,PPt):void 0)});return t?h?y:y.map(x=>({...x,tags:this.mapJSDocTagInfo(x.tags,s,!1)})):y.map(x=>({...x,codeActions:At(x.codeActions,E=>this.mapCodeAction(E)),documentation:this.mapDisplayParts(x.documentation,s),tags:this.mapJSDocTagInfo(x.tags,s,h)}))}getCompileOnSaveAffectedFileList(e){let t=this.getProjects(e,!0,!0),r=this.projectService.getScriptInfo(e.file);return r?sHe(r,s=>this.projectService.getScriptInfoForPath(s),t,(s,a)=>{if(!s.compileOnSaveEnabled||!s.languageServiceEnabled||s.isOrphan())return;let d=s.getCompilationSettings();if(!(d.noEmit||Hb(a.fileName)&&!yot(d)))return{projectFileName:s.getProjectName(),fileNames:s.getCompileOnSaveAffectedFileList(a),projectUsesOutFile:!!d.outFile}}):qv}emitFile(e){let{file:t,project:r}=this.getFileAndProject(e);if(r||KL.ThrowNoProject(),!r.languageServiceEnabled)return e.richResponse?{emitSkipped:!0,diagnostics:[]}:!1;let s=r.getScriptInfo(t),{emitSkipped:a,diagnostics:d}=r.emitFile(s,(p,h,y)=>this.host.writeFile(p,h,y));return e.richResponse?{emitSkipped:a,diagnostics:e.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(d):d.map(p=>TB(p,!0))}:!a}getSignatureHelpItems(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getPosition(e,a),p=s.getLanguageService().getSignatureHelpItems(r,d,e),h=!!this.getPreferences(r).displayPartsForJSDoc;if(p&&t){let y=p.applicableSpan;return{...p,applicableSpan:{start:a.positionToLineOffset(y.start),end:a.positionToLineOffset(y.start+y.length)},items:this.mapSignatureHelpItems(p.items,s,h)}}else return h||!p?p:{...p,items:p.items.map(y=>({...y,tags:this.mapJSDocTagInfo(y.tags,s,!1)}))}}toPendingErrorCheck(e){let t=bp(e),r=this.projectService.tryGetDefaultProjectForFile(t);return r&&{fileName:t,project:r}}getDiagnostics(e,t,r){this.suppressDiagnosticEvents||r.length>0&&this.updateErrorCheck(e,r,t)}change(e){let t=this.projectService.getScriptInfo(e.file);B.assert(!!t),t.textStorage.switchToScriptVersionCache();let r=t.lineOffsetToPosition(e.line,e.offset),s=t.lineOffsetToPosition(e.endLine,e.endOffset);r>=0&&(this.changeSeq++,this.projectService.applyChangesToFile(t,Ms({span:{start:r,length:s-r},newText:e.insertString})))}reload(e){let t=bp(e.file),r=e.tmpfile===void 0?void 0:bp(e.tmpfile),s=this.projectService.getScriptInfoForNormalizedPath(t);s&&(this.changeSeq++,s.reloadFromFile(r))}saveToTmp(e,t){let r=this.projectService.getScriptInfo(e);r&&r.saveTo(t)}closeClientFile(e){if(!e)return;let t=al(e);this.projectService.closeClientFile(t)}mapLocationNavigationBarItems(e,t){return At(e,r=>({text:r.text,kind:r.kind,kindModifiers:r.kindModifiers,spans:r.spans.map(s=>Ik(s,t)),childItems:this.mapLocationNavigationBarItems(r.childItems,t),indent:r.indent}))}getNavigationBarItems(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=s.getNavigationBarItems(r);return a?t?this.mapLocationNavigationBarItems(a,this.projectService.getScriptInfoForNormalizedPath(r)):a:void 0}toLocationNavigationTree(e,t){return{text:e.text,kind:e.kind,kindModifiers:e.kindModifiers,spans:e.spans.map(r=>Ik(r,t)),nameSpan:e.nameSpan&&Ik(e.nameSpan,t),childItems:At(e.childItems,r=>this.toLocationNavigationTree(r,t))}}getNavigationTree(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=s.getNavigationTree(r);return a?t?this.toLocationNavigationTree(a,this.projectService.getScriptInfoForNormalizedPath(r)):a:void 0}getNavigateToItems(e,t){let r=this.getFullNavigateToItems(e);return t?gr(r,({project:s,navigateToItems:a})=>a.map(d=>{let p=s.getScriptInfo(d.fileName),h={name:d.name,kind:d.kind,kindModifiers:d.kindModifiers,isCaseSensitive:d.isCaseSensitive,matchKind:d.matchKind,file:d.fileName,start:p.positionToLineOffset(d.textSpan.start),end:p.positionToLineOffset(_u(d.textSpan))};return d.kindModifiers&&d.kindModifiers!==""&&(h.kindModifiers=d.kindModifiers),d.containerName&&d.containerName.length>0&&(h.containerName=d.containerName),d.containerKind&&d.containerKind.length>0&&(h.containerKind=d.containerKind),h})):gr(r,({navigateToItems:s})=>s)}getFullNavigateToItems(e){let{currentFileOnly:t,searchValue:r,maxResultCount:s,projectFileName:a}=e;if(t){B.assertIsDefined(e.file);let{file:D,project:N}=this.getFileAndProject(e);return[{project:N,navigateToItems:N.getLanguageService().getNavigateToItems(r,s,D)}]}let d=this.getHostPreferences(),p=[],h=new Map;if(!e.file&&!a)this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(D=>y(D));else{let D=this.getProjects(e);Eot(D,void 0,N=>y(N))}return p;function y(D){let N=D.getLanguageService().getNavigateToItems(r,s,void 0,D.isNonTsProject(),d.excludeLibrarySymbolsInNavTo),R=Kt(N,F=>x(F)&&!zK(Rce(F),D));R.length&&p.push({project:D,navigateToItems:R})}function x(D){let N=D.name;if(!h.has(N))return h.set(N,[D]),!0;let R=h.get(N);for(let F of R)if(E(F,D))return!1;return R.push(D),!0}function E(D,N){return D===N?!0:!D||!N?!1:D.containerKind===N.containerKind&&D.containerName===N.containerName&&D.fileName===N.fileName&&D.isCaseSensitive===N.isCaseSensitive&&D.kind===N.kind&&D.kindModifiers===N.kindModifiers&&D.matchKind===N.matchKind&&D.name===N.name&&D.textSpan.start===N.textSpan.start&&D.textSpan.length===N.textSpan.length}}getSupportedCodeFixes(e){if(!e)return Bne();if(e.file){let{file:r,project:s}=this.getFileAndProject(e);return s.getLanguageService().getSupportedCodeFixes(r)}let t=this.getProject(e.projectFileName);return t||KL.ThrowNoProject(),t.getLanguageService().getSupportedCodeFixes()}isLocation(e){return e.line!==void 0}extractPositionOrRange(e,t){let r,s;return this.isLocation(e)?r=a(e):s=this.getRange(e,t),B.checkDefined(r===void 0?s:r);function a(d){return d.position!==void 0?d.position:t.lineOffsetToPosition(d.line,d.offset)}}getRange(e,t){let{startPosition:r,endPosition:s}=this.getStartAndEndPosition(e,t);return{pos:r,end:s}}getApplicableRefactors(e){let{file:t,project:r}=this.getFileAndProject(e),s=r.getScriptInfoForNormalizedPath(t);return r.getLanguageService().getApplicableRefactors(t,this.extractPositionOrRange(e,s),this.getPreferences(t),e.triggerReason,e.kind,e.includeInteractiveActions).map(d=>({...d,actions:d.actions.map(p=>({...p,range:p.range?{start:VU({line:p.range.start.line,character:p.range.start.offset}),end:VU({line:p.range.end.line,character:p.range.end.offset})}:void 0}))}))}getEditsForRefactor(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=s.getScriptInfoForNormalizedPath(r),d=s.getLanguageService().getEditsForRefactor(r,this.getFormatOptions(r),this.extractPositionOrRange(e,a),e.refactor,e.action,this.getPreferences(r),e.interactiveRefactorArguments);if(d===void 0)return{edits:[]};if(t){let{renameFilename:p,renameLocation:h,edits:y}=d,x;if(p!==void 0&&h!==void 0){let E=s.getScriptInfoForNormalizedPath(bp(p));x=uHe(nj(E.getSnapshot()),p,h,y)}return{renameLocation:x,renameFilename:p,edits:this.mapTextChangesToCodeEdits(y),notApplicableReason:d.notApplicableReason}}return d}getMoveToRefactoringFileSuggestions(e){let{file:t,project:r}=this.getFileAndProject(e),s=r.getScriptInfoForNormalizedPath(t);return r.getLanguageService().getMoveToRefactoringFileSuggestions(t,this.extractPositionOrRange(e,s),this.getPreferences(t))}preparePasteEdits(e){let{file:t,project:r}=this.getFileAndProject(e);return r.getLanguageService().preparePasteEditsForFile(t,e.copiedTextSpan.map(s=>this.getRange({file:t,startLine:s.start.line,startOffset:s.start.offset,endLine:s.end.line,endOffset:s.end.offset},this.projectService.getScriptInfoForNormalizedPath(t))))}getPasteEdits(e){let{file:t,project:r}=this.getFileAndProject(e);if(JQ(t))return;let s=e.copiedFrom?{file:e.copiedFrom.file,range:e.copiedFrom.spans.map(d=>this.getRange({file:e.copiedFrom.file,startLine:d.start.line,startOffset:d.start.offset,endLine:d.end.line,endOffset:d.end.offset},r.getScriptInfoForNormalizedPath(bp(e.copiedFrom.file))))}:void 0,a=r.getLanguageService().getPasteEdits({targetFile:t,pastedText:e.pastedText,pasteLocations:e.pasteLocations.map(d=>this.getRange({file:t,startLine:d.start.line,startOffset:d.start.offset,endLine:d.end.line,endOffset:d.end.offset},r.getScriptInfoForNormalizedPath(t))),copiedFrom:s,preferences:this.getPreferences(t)},this.getFormatOptions(t));return a&&this.mapPasteEditsAction(a)}organizeImports(e,t){B.assert(e.scope.type==="file");let{file:r,project:s}=this.getFileAndProject(e.scope.args),a=s.getLanguageService().organizeImports({fileName:r,mode:e.mode??(e.skipDestructiveCodeActions?"SortAndCombine":void 0),type:"file"},this.getFormatOptions(r),this.getPreferences(r));return t?this.mapTextChangesToCodeEdits(a):a}getEditsForFileRename(e,t){let r=bp(e.oldFilePath),s=bp(e.newFilePath),a=this.getHostFormatOptions(),d=this.getHostPreferences(),p=new Set,h=[];return this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(y=>{let x=y.getLanguageService().getEditsForFileRename(r,s,a,d),E=[];for(let D of x)p.has(D.fileName)||(h.push(D),E.push(D.fileName));for(let D of E)p.add(D)}),t?h.map(y=>this.mapTextChangeToCodeEdit(y)):h}getCodeFixes(e,t){let{file:r,project:s}=this.getFileAndProject(e),a=s.getScriptInfoForNormalizedPath(r),{startPosition:d,endPosition:p}=this.getStartAndEndPosition(e,a),h;try{h=s.getLanguageService().getCodeFixesAtPosition(r,d,p,e.errorCodes,this.getFormatOptions(r),this.getPreferences(r))}catch(y){let x=y instanceof Error?y:new Error(y),E=s.getLanguageService(),D=[...E.getSyntacticDiagnostics(r),...E.getSemanticDiagnostics(r),...E.getSuggestionDiagnostics(r)].filter(R=>ND(d,p-d,R.start,R.length)).map(R=>R.code),N=e.errorCodes.find(R=>!D.includes(R));throw N!==void 0&&(x.message+=`
32184
32184
  Additional information: BADCLIENT: Bad error code, ${N} not found in range ${d}..${p} (found: ${D.join(", ")})`),x}return t?h.map(y=>this.mapCodeFixAction(y)):h}getCombinedCodeFix({scope:e,fixId:t},r){B.assert(e.type==="file");let{file:s,project:a}=this.getFileAndProject(e.args),d=a.getLanguageService().getCombinedCodeFix({type:"file",fileName:s},t,this.getFormatOptions(s),this.getPreferences(s));return r?{changes:this.mapTextChangesToCodeEdits(d.changes),commands:d.commands}:d}applyCodeActionCommand(e){let t=e.command;for(let r of kp(t)){let{file:s,project:a}=this.getFileAndProject(r);a.getLanguageService().applyCodeActionCommand(r,this.getFormatOptions(s)).then(d=>{},d=>{})}return{}}getStartAndEndPosition(e,t){let r,s;return e.startPosition!==void 0?r=e.startPosition:(r=t.lineOffsetToPosition(e.startLine,e.startOffset),e.startPosition=r),e.endPosition!==void 0?s=e.endPosition:(s=t.lineOffsetToPosition(e.endLine,e.endOffset),e.endPosition=s),{startPosition:r,endPosition:s}}mapCodeAction({description:e,changes:t,commands:r}){return{description:e,changes:this.mapTextChangesToCodeEdits(t),commands:r}}mapCodeFixAction({fixName:e,description:t,changes:r,commands:s,fixId:a,fixAllDescription:d}){return{fixName:e,description:t,changes:this.mapTextChangesToCodeEdits(r),commands:s,fixId:a,fixAllDescription:d}}mapPasteEditsAction({edits:e,fixId:t}){return{edits:this.mapTextChangesToCodeEdits(e),fixId:t}}mapTextChangesToCodeEdits(e){return e.map(t=>this.mapTextChangeToCodeEdit(t))}mapTextChangeToCodeEdit(e){let t=this.projectService.getScriptInfoOrConfig(e.fileName);return!!e.isNewFile==!!t&&(t||this.projectService.logErrorForScriptInfoNotFound(e.fileName),B.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!e.isNewFile,hasScriptInfo:!!t}))),t?{fileName:e.fileName,textChanges:e.textChanges.map(r=>cHe(r,t))}:IPt(e)}convertTextChangeToCodeEdit(e,t){return{start:t.positionToLineOffset(e.span.start),end:t.positionToLineOffset(e.span.start+e.span.length),newText:e.newText?e.newText:""}}getBraceMatching(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getPosition(e,a),p=s.getBraceMatchingAtPosition(r,d);return p?t?p.map(h=>Ik(h,a)):p:void 0}getDiagnosticsForProject(e,t,r){if(this.suppressDiagnosticEvents)return;let{fileNames:s,languageServiceDisabled:a}=this.getProjectInfoWorker(r,void 0,!0,void 0,!0);if(a)return;let d=s.filter(F=>!F.includes("lib.d.ts"));if(d.length===0)return;let p=[],h=[],y=[],x=[],E=bp(r),D=this.projectService.ensureDefaultProjectForFile(E);for(let F of d)this.getCanonicalFileName(F)===this.getCanonicalFileName(r)?p.push(F):this.projectService.getScriptInfo(F).isScriptOpen()?h.push(F):Hb(F)?x.push(F):y.push(F);let R=[...p,...h,...y,...x].map(F=>({fileName:F,project:D}));this.updateErrorCheck(e,R,t,!1)}configurePlugin(e){this.projectService.configurePlugin(e)}getSmartSelectionRange(e,t){let{locations:r}=e,{file:s,languageService:a}=this.getFileAndLanguageServiceForSyntacticOperation(e),d=B.checkDefined(this.projectService.getScriptInfo(s));return At(r,p=>{let h=this.getPosition(p,d),y=a.getSmartSelectionRange(s,h);return t?this.mapSelectionRange(y,d):y})}toggleLineComment(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=this.projectService.getScriptInfo(r),d=this.getRange(e,a),p=s.toggleLineComment(r,d);if(t){let h=this.projectService.getScriptInfoForNormalizedPath(r);return p.map(y=>this.convertTextChangeToCodeEdit(y,h))}return p}toggleMultilineComment(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getRange(e,a),p=s.toggleMultilineComment(r,d);if(t){let h=this.projectService.getScriptInfoForNormalizedPath(r);return p.map(y=>this.convertTextChangeToCodeEdit(y,h))}return p}commentSelection(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getRange(e,a),p=s.commentSelection(r,d);if(t){let h=this.projectService.getScriptInfoForNormalizedPath(r);return p.map(y=>this.convertTextChangeToCodeEdit(y,h))}return p}uncommentSelection(e,t){let{file:r,languageService:s}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=this.projectService.getScriptInfoForNormalizedPath(r),d=this.getRange(e,a),p=s.uncommentSelection(r,d);if(t){let h=this.projectService.getScriptInfoForNormalizedPath(r);return p.map(y=>this.convertTextChangeToCodeEdit(y,h))}return p}mapSelectionRange(e,t){let r={textSpan:Ik(e.textSpan,t)};return e.parent&&(r.parent=this.mapSelectionRange(e.parent,t)),r}getScriptInfoFromProjectService(e){let t=bp(e),r=this.projectService.getScriptInfoForNormalizedPath(t);return r||(this.projectService.logErrorForScriptInfoNotFound(t),KL.ThrowNoProject())}toProtocolCallHierarchyItem(e){let t=this.getScriptInfoFromProjectService(e.file);return{name:e.name,kind:e.kind,kindModifiers:e.kindModifiers,file:e.file,containerName:e.containerName,span:Ik(e.span,t),selectionSpan:Ik(e.selectionSpan,t)}}toProtocolCallHierarchyIncomingCall(e){let t=this.getScriptInfoFromProjectService(e.from.file);return{from:this.toProtocolCallHierarchyItem(e.from),fromSpans:e.fromSpans.map(r=>Ik(r,t))}}toProtocolCallHierarchyOutgoingCall(e,t){return{to:this.toProtocolCallHierarchyItem(e.to),fromSpans:e.fromSpans.map(r=>Ik(r,t))}}prepareCallHierarchy(e){let{file:t,project:r}=this.getFileAndProject(e),s=this.projectService.getScriptInfoForNormalizedPath(t);if(s){let a=this.getPosition(e,s),d=r.getLanguageService().prepareCallHierarchy(t,a);return d&&Dle(d,p=>this.toProtocolCallHierarchyItem(p))}}provideCallHierarchyIncomingCalls(e){let{file:t,project:r}=this.getFileAndProject(e),s=this.getScriptInfoFromProjectService(t);return r.getLanguageService().provideCallHierarchyIncomingCalls(t,this.getPosition(e,s)).map(d=>this.toProtocolCallHierarchyIncomingCall(d))}provideCallHierarchyOutgoingCalls(e){let{file:t,project:r}=this.getFileAndProject(e),s=this.getScriptInfoFromProjectService(t);return r.getLanguageService().provideCallHierarchyOutgoingCalls(t,this.getPosition(e,s)).map(d=>this.toProtocolCallHierarchyOutgoingCall(d,s))}getCanonicalFileName(e){let t=this.host.useCaseSensitiveFileNames?e:ki(e);return al(t)}exit(){}notRequired(e){return e&&this.doOutput(void 0,e.command,e.seq,!0,this.performanceData),{responseRequired:!1,performanceData:this.performanceData}}requiredResponse(e){return{response:e,responseRequired:!0,performanceData:this.performanceData}}addProtocolHandler(e,t){if(this.handlers.has(e))throw new Error(`Protocol handler already exists for command "${e}"`);this.handlers.set(e,t)}setCurrentRequest(e){B.assert(this.currentRequestId===void 0),this.currentRequestId=e,this.cancellationToken.setRequest(e)}resetCurrentRequest(e){B.assert(this.currentRequestId===e),this.currentRequestId=void 0,this.cancellationToken.resetRequest(e)}executeWithRequestId(e,t,r){let s=this.performanceData;try{return this.performanceData=r,this.setCurrentRequest(e),t()}finally{this.resetCurrentRequest(e),this.performanceData=s}}executeCommand(e){let t=this.handlers.get(e.command);if(t){let r=this.executeWithRequestId(e.seq,()=>t(e),void 0);return this.projectService.enableRequestedPlugins(),r}else return this.logger.msg(`Unrecognized JSON command:${Q9(e)}`,"Err"),this.doOutput(void 0,"unknown",e.seq,!1,void 0,`Unrecognized JSON command: ${e.command}`),{responseRequired:!1}}onMessage(e){var t,r,s,a,d,p,h;this.gcTimer.scheduleCollect();let y,x=this.performanceData;this.logger.hasLevel(2)&&(y=this.hrtime(),this.logger.hasLevel(3)&&this.logger.info(`request:${Yte(this.toStringMessage(e))}`));let E,D;try{E=this.parseMessage(e),D=E.arguments&&E.arguments.file?E.arguments:void 0,(t=oi)==null||t.instant(oi.Phase.Session,"request",{seq:E.seq,command:E.command}),(r=oi)==null||r.push(oi.Phase.Session,"executeCommand",{seq:E.seq,command:E.command},!0);let{response:N,responseRequired:R,performanceData:F}=this.executeCommand(E);if((s=oi)==null||s.pop(),this.logger.hasLevel(2)){let z=hot(this.hrtime(y)).toFixed(4);R?this.logger.perftrc(`${E.seq}::${E.command}: elapsed time (in milliseconds) ${z}`):this.logger.perftrc(`${E.seq}::${E.command}: async elapsed time (in milliseconds) ${z}`)}(a=oi)==null||a.instant(oi.Phase.Session,"response",{seq:E.seq,command:E.command,success:!!N}),N?this.doOutput(N,E.command,E.seq,!0,F):R&&this.doOutput(void 0,E.command,E.seq,!1,F,"No content available.")}catch(N){if((d=oi)==null||d.popAll(),N instanceof oR){(p=oi)==null||p.instant(oi.Phase.Session,"commandCanceled",{seq:E?.seq,command:E?.command}),this.doOutput({canceled:!0},E.command,E.seq,!0,this.performanceData);return}this.logErrorWorker(N,this.toStringMessage(e),D),(h=oi)==null||h.instant(oi.Phase.Session,"commandError",{seq:E?.seq,command:E?.command,message:N.message}),this.doOutput(void 0,E?E.command:"unknown",E?E.seq:0,!1,this.performanceData,"Error processing request. "+N.message+`
32185
- `+N.stack)}finally{this.performanceData=x}}parseMessage(e){return JSON.parse(e)}toStringMessage(e){return e}getFormatOptions(e){return this.projectService.getFormatCodeOptions(e)}getPreferences(e){return this.projectService.getPreferences(e)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function lHe(n){let e=n.diagnosticsDuration&&Ga(n.diagnosticsDuration,([t,r])=>({...r,file:t}));return{...n,diagnosticsDuration:e}}function Ik(n,e){return{start:e.positionToLineOffset(n.start),end:e.positionToLineOffset(_u(n))}}function iN(n,e,t){let r=Ik(n,t),s=e&&Ik(e,t);return s?{...r,contextStart:s.start,contextEnd:s.end}:r}function cHe(n,e){return{start:Pot(e,n.span.start),end:Pot(e,_u(n.span)),newText:n.newText}}function Pot(n,e){return nHe(n)?DPt(n.getLineAndCharacterOfPosition(e)):n.positionToLineOffset(e)}function wot(n,e){let t=n.ranges.map(r=>({start:e.positionToLineOffset(r.start),end:e.positionToLineOffset(r.start+r.length)}));return n.wordPattern?{ranges:t,wordPattern:n.wordPattern}:{ranges:t}}function DPt(n){return{line:n.line+1,offset:n.character+1}}function IPt(n){B.assert(n.textChanges.length===1);let e=jo(n.textChanges);return B.assert(e.span.start===0&&e.span.length===0),{fileName:n.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:e.newText}]}}function uHe(n,e,t,r){let s=dHe(n,e,r),{line:a,character:d}=wD(zN(s),t);return{line:a+1,offset:d+1}}function dHe(n,e,t){for(let{fileName:r,textChanges:s}of t)if(r===e)for(let a=s.length-1;a>=0;a--){let{newText:d,span:{start:p,length:h}}=s[a];n=n.slice(0,p)+d+n.slice(p+h)}return n}function Not(n,{fileName:e,textSpan:t,contextSpan:r,isWriteAccess:s,isDefinition:a},{disableLineTextInReferences:d}){let p=B.checkDefined(n.getScriptInfo(e)),h=iN(t,r,p),y=d?void 0:kot(p,h);return{file:e,...h,lineText:y,isWriteAccess:s,isDefinition:a}}function kot(n,e){let t=n.lineToTextSpan(e.start.line-1);return n.getSnapshot().getText(t.start,_u(t)).replace(/\r|\n/g,"")}function PPt(n){return n===void 0||n&&typeof n=="object"&&typeof n.exportName=="string"&&(n.fileName===void 0||typeof n.fileName=="string")&&(n.ambientModuleName===void 0||typeof n.ambientModuleName=="string"&&(n.isPackageJsonImport===void 0||typeof n.isPackageJsonImport=="boolean"))}var ere=4,GK=(n=>(n[n.PreStart=0]="PreStart",n[n.Start=1]="Start",n[n.Entire=2]="Entire",n[n.Mid=3]="Mid",n[n.End=4]="End",n[n.PostEnd=5]="PostEnd",n))(GK||{}),fHe=class{constructor(){this.goSubtree=!0,this.lineIndex=new Lce,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new CB,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(n,e){e&&(this.trailingText=""),n?n=this.initialText+n+this.trailingText:n=this.initialText+this.trailingText;let r=Lce.linesFromText(n).lines;r.length>1&&r[r.length-1]===""&&r.pop();let s,a;for(let p=this.endBranch.length-1;p>=0;p--)this.endBranch[p].updateCounts(),this.endBranch[p].charCount()===0&&(a=this.endBranch[p],p>0?s=this.endBranch[p-1]:s=this.branchNode);a&&s.remove(a);let d=this.startPath[this.startPath.length-1];if(r.length>0)if(d.text=r[0],r.length>1){let p=new Array(r.length-1),h=d;for(let E=1;E<r.length;E++)p[E-1]=new Dj(r[E]);let y=this.startPath.length-2;for(;y>=0;){let E=this.startPath[y];p=E.insertAt(h,p),y--,h=E}let x=p.length;for(;x>0;){let E=new CB;E.add(this.lineIndex.root),p=E.insertAt(this.lineIndex.root,p),x=p.length,this.lineIndex.root=E}this.lineIndex.root.updateCounts()}else for(let p=this.startPath.length-2;p>=0;p--)this.startPath[p].updateCounts();else{this.startPath[this.startPath.length-2].remove(d);for(let h=this.startPath.length-2;h>=0;h--)this.startPath[h].updateCounts()}return this.lineIndex}post(n,e,t){t===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(n,e,t,r,s){let a=this.stack[this.stack.length-1];this.state===2&&s===1&&(this.state=1,this.branchNode=a,this.lineCollectionAtBranch=t);let d;function p(h){return h.isLeaf()?new Dj(""):new CB}switch(s){case 0:this.goSubtree=!1,this.state!==4&&a.add(t);break;case 1:this.state===4?this.goSubtree=!1:(d=p(t),a.add(d),this.startPath.push(d));break;case 2:this.state!==4?(d=p(t),a.add(d),this.startPath.push(d)):t.isLeaf()||(d=p(t),a.add(d),this.endBranch.push(d));break;case 3:this.goSubtree=!1;break;case 4:this.state!==4?this.goSubtree=!1:t.isLeaf()||(d=p(t),a.add(d),this.endBranch.push(d));break;case 5:this.goSubtree=!1,this.state!==1&&a.add(t);break}this.goSubtree&&this.stack.push(d)}leaf(n,e,t){this.state===1?this.initialText=t.text.substring(0,n):this.state===2?(this.initialText=t.text.substring(0,n),this.trailingText=t.text.substring(n+e)):this.trailingText=t.text.substring(n+e)}},wPt=class{constructor(n,e,t){this.pos=n,this.deleteLen=e,this.insertedText=t}getTextChangeRange(){return X7(qp(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},jMe=class hie{constructor(){this.changes=[],this.versions=new Array(hie.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(e){if(!(e<this.minVersion||e>this.currentVersion))return e%hie.maxVersions}currentVersionToIndex(){return this.currentVersion%hie.maxVersions}edit(e,t,r){this.changes.push(new wPt(e,t,r)),(this.changes.length>hie.changeNumberThreshold||t>hie.changeLengthThreshold||r&&r.length>hie.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let e=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let t=e.index;for(let r of this.changes)t=t.edit(r.pos,r.deleteLen,r.insertedText);e=new aTe(this.currentVersion+1,this,t,this.changes),this.currentVersion=e.version,this.versions[this.currentVersionToIndex()]=e,this.changes=[],this.currentVersion-this.minVersion>=hie.maxVersions&&(this.minVersion=this.currentVersion-hie.maxVersions+1)}return e}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(e){return this._getSnapshot().index.lineNumberToInfo(e)}lineOffsetToPosition(e,t){return this._getSnapshot().index.absolutePositionOfStartOfLine(e)+(t-1)}positionToLineOffset(e){return this._getSnapshot().index.positionToLineOffset(e)}lineToTextSpan(e){let t=this._getSnapshot().index,{lineText:r,absolutePosition:s}=t.lineNumberToInfo(e+1),a=r!==void 0?r.length:t.absolutePositionOfStartOfLine(e+2)-s;return qp(s,a)}getTextChangesBetweenVersions(e,t){if(e<t)if(e>=this.minVersion){let r=[];for(let s=e+1;s<=t;s++){let a=this.versions[this.versionToIndex(s)];for(let d of a.changesSincePreviousVersion)r.push(d.getTextChangeRange())}return sse(r)}else return;else return kz}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(e){let t=new hie,r=new aTe(0,t,new Lce);t.versions[t.currentVersion]=r;let s=Lce.linesFromText(e);return r.index.load(s.lines),t}};jMe.changeNumberThreshold=8,jMe.changeLengthThreshold=256,jMe.maxVersions=8;var Mce=jMe,aTe=class gJt{constructor(e,t,r,s=qv){this.version=e,this.cache=t,this.index=r,this.changesSincePreviousVersion=s}getText(e,t){return this.index.getText(e,t-e)}getLength(){return this.index.getLength()}getChangeRange(e){if(e instanceof gJt&&this.cache===e.cache)return this.version<=e.version?kz:this.cache.getTextChangesBetweenVersions(e.version,this.version)}},Lce=class T4t{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(e){return this.lineNumberToInfo(e).absolutePosition}positionToLineOffset(e){let{oneBasedLine:t,zeroBasedColumn:r}=this.root.charOffsetToLineInfo(1,e);return{line:t,offset:r+1}}positionToColumnAndLineText(e){return this.root.charOffsetToLineInfo(1,e)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(e){let t=this.getLineCount();if(e<=t){let{position:r,leaf:s}=this.root.lineNumberToInfo(e,0);return{absolutePosition:r,lineText:s&&s.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(e){if(e.length>0){let t=[];for(let r=0;r<e.length;r++)t[r]=new Dj(e[r]);this.root=T4t.buildTreeFromBottom(t)}else this.root=new CB}walk(e,t,r){this.root.walk(e,t,r)}getText(e,t){let r="";return t>0&&e<this.root.charCount()&&this.walk(e,t,{goSubtree:!0,done:!1,leaf:(s,a,d)=>{r=r.concat(d.text.substring(s,s+a))}}),r}getLength(){return this.root.charCount()}every(e,t,r){r||(r=this.root.charCount());let s={goSubtree:!0,done:!1,leaf(a,d,p){e(p,a,d)||(this.done=!0)}};return this.walk(t,r-t,s),!s.done}edit(e,t,r){if(this.root.charCount()===0)return B.assert(t===0),r!==void 0?(this.load(T4t.linesFromText(r).lines),this):void 0;{let s;if(this.checkEdits){let p=this.getText(0,this.root.charCount());s=p.slice(0,e)+r+p.slice(e+t)}let a=new fHe,d=!1;if(e>=this.root.charCount()){e=this.root.charCount()-1;let p=this.getText(e,1);r?r=p+r:r=p,t=0,d=!0}else if(t>0){let p=e+t,{zeroBasedColumn:h,lineText:y}=this.positionToColumnAndLineText(p);h===0&&(t+=y.length,r=r?r+y:y)}if(this.root.walk(e,t,a),a.insertLines(r,d),this.checkEdits){let p=a.lineIndex.getText(0,a.lineIndex.getLength());B.assert(s===p,"buffer edit mismatch")}return a.lineIndex}}static buildTreeFromBottom(e){if(e.length<ere)return new CB(e);let t=new Array(Math.ceil(e.length/ere)),r=0;for(let s=0;s<t.length;s++){let a=Math.min(r+ere,e.length);t[s]=new CB(e.slice(r,a)),r=a}return this.buildTreeFromBottom(t)}static linesFromText(e){let t=zN(e);if(t.length===0)return{lines:[],lineMap:t};let r=new Array(t.length),s=t.length-1;for(let d=0;d<s;d++)r[d]=e.substring(t[d],t[d+1]);let a=e.substring(t[s]);return a.length>0?r[s]=a:r.pop(),{lines:r,lineMap:t}}},CB=class C4t{constructor(e=[]){this.children=e,this.totalChars=0,this.totalLines=0,e.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let e of this.children)this.totalChars+=e.charCount(),this.totalLines+=e.lineCount()}execWalk(e,t,r,s,a){return r.pre&&r.pre(e,t,this.children[s],this,a),r.goSubtree?(this.children[s].walk(e,t,r),r.post&&r.post(e,t,this.children[s],this,a)):r.goSubtree=!0,r.done}skipChild(e,t,r,s,a){s.pre&&!s.done&&(s.pre(e,t,this.children[r],this,a),s.goSubtree=!0)}walk(e,t,r){if(this.children.length===0)return;let s=0,a=this.children[s].charCount(),d=e;for(;d>=a;)this.skipChild(d,t,s,r,0),d-=a,s++,a=this.children[s].charCount();if(d+t<=a){if(this.execWalk(d,t,r,s,2))return}else{if(this.execWalk(d,a-d,r,s,1))return;let p=t-(a-d);for(s++,a=this.children[s].charCount();p>a;){if(this.execWalk(0,a,r,s,3))return;p-=a,s++,a=this.children[s].charCount()}if(p>0&&this.execWalk(0,p,r,s,4))return}if(r.pre){let p=this.children.length;if(s<p-1)for(let h=s+1;h<p;h++)this.skipChild(0,0,h,r,5)}}charOffsetToLineInfo(e,t){if(this.children.length===0)return{oneBasedLine:e,zeroBasedColumn:t,lineText:void 0};for(let a of this.children){if(a.charCount()>t)return a.isLeaf()?{oneBasedLine:e,zeroBasedColumn:t,lineText:a.text}:a.charOffsetToLineInfo(e,t);t-=a.charCount(),e+=a.lineCount()}let r=this.lineCount();if(r===0)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};let s=B.checkDefined(this.lineNumberToInfo(r,0).leaf);return{oneBasedLine:r,zeroBasedColumn:s.charCount(),lineText:void 0}}lineNumberToInfo(e,t){for(let r of this.children){let s=r.lineCount();if(s>=e)return r.isLeaf()?{position:t,leaf:r}:r.lineNumberToInfo(e,t);e-=s,t+=r.charCount()}return{position:t,leaf:void 0}}splitAfter(e){let t,r=this.children.length;e++;let s=e;if(e<r){for(t=new C4t;e<r;)t.add(this.children[e]),e++;t.updateCounts()}return this.children.length=s,t}remove(e){let t=this.findChildIndex(e),r=this.children.length;if(t<r-1)for(let s=t;s<r-1;s++)this.children[s]=this.children[s+1];this.children.pop()}findChildIndex(e){let t=this.children.indexOf(e);return B.assert(t!==-1),t}insertAt(e,t){let r=this.findChildIndex(e),s=this.children.length,a=t.length;if(s<ere&&r===s-1&&a===1)return this.add(t[0]),this.updateCounts(),[];{let d=this.splitAfter(r),p=0;for(r++;r<ere&&p<a;)this.children[r]=t[p],r++,p++;let h=[],y=0;if(p<a){y=Math.ceil((a-p)/ere),h=new Array(y);let x=0;for(let D=0;D<y;D++)h[D]=new C4t;let E=h[0];for(;p<a;)E.add(t[p]),p++,E.children.length===ere&&(x++,E=h[x]);for(let D=h.length-1;D>=0;D--)h[D].children.length===0&&h.pop()}d&&h.push(d),this.updateCounts();for(let x=0;x<y;x++)h[x].updateCounts();return h}}add(e){this.children.push(e),B.assert(this.children.length<=ere)}charCount(){return this.totalChars}lineCount(){return this.totalLines}},Dj=class{constructor(n){this.text=n}isLeaf(){return!0}walk(n,e,t){t.leaf(n,e,this)}charCount(){return this.text.length}lineCount(){return 1}},Phe=class yJt{constructor(e,t,r,s,a,d){this.telemetryEnabled=e,this.logger=t,this.host=r,this.globalTypingsCacheLocation=s,this.event=a,this.maxActiveRequestCount=d,this.activeRequestCount=0,this.requestQueue=Ab(),this.requestMap=new Map,this.requestedRegistry=!1,this.packageInstallId=0}isKnownTypesPackageName(e){var t;return XR.validatePackageName(e)!==XR.NameValidationResult.Ok?!1:(this.requestedRegistry||(this.requestedRegistry=!0,this.installer.send({kind:"typesRegistry"})),!!((t=this.typesRegistryCache)!=null&&t.has(e)))}installPackage(e){this.packageInstallId++;let t={kind:"installPackage",...e,id:this.packageInstallId},r=new Promise((s,a)=>{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:s,reject:a})});return this.installer.send(t),r}attach(e){this.projectService=e,this.installer=this.createInstallerProcess()}onProjectClosed(e){this.installer.send({projectName:e.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(e,t,r){let s=kEe(e,t,r);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${Q9(s)}`),this.activeRequestCount<this.maxActiveRequestCount?this.scheduleRequest(s):(this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Deferring request for: ${s.projectName}`),this.requestQueue.enqueue(s),this.requestMap.set(s.projectName,s))}handleMessage(e){var t,r;switch(this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Received response:${Q9(e)}`),e.kind){case hSe:this.typesRegistryCache=new Map(Object.entries(e.typesRegistry));break;case x_e:{let s=(t=this.packageInstalledPromise)==null?void 0:t.get(e.id);B.assertIsDefined(s,"Should find the promise for package install"),(r=this.packageInstalledPromise)==null||r.delete(e.id),e.success?s.resolve({successMessage:e.message}):s.reject(e.message),this.projectService.updateTypingsForProject(e),this.event(e,"setTypings");break}case $8:{let s={message:e.message};this.event(s,"typesInstallerInitializationFailed");break}case gSe:{let s={eventId:e.eventId,packages:e.packagesToInstall};this.event(s,"beginInstallTypes");break}case sK:{if(this.telemetryEnabled){let d={telemetryEventName:"typingsInstalled",payload:{installedPackages:e.packagesToInstall.join(","),installSuccess:e.installSuccess,typingsInstallerVersion:e.typingsInstallerVersion}};this.event(d,"telemetry")}let s={eventId:e.eventId,packages:e.packagesToInstall,success:e.installSuccess};this.event(s,"endInstallTypes");break}case S_e:{this.projectService.updateTypingsForProject(e);break}case Qte:{for(this.activeRequestCount>0?this.activeRequestCount--:B.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){let s=this.requestQueue.dequeue();if(this.requestMap.get(s.projectName)===s){this.requestMap.delete(s.projectName),this.scheduleRequest(s);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${s.projectName}`)}this.projectService.updateTypingsForProject(e),this.event(e,"setTypings");break}case Yoe:this.projectService.watchTypingLocations(e);break;default:}}scheduleRequest(e){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${e.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${Q9(e)}`),this.installer.send(e)},yJt.requestDelayMillis,`${e.projectName}::${e.kind}`)}};Phe.requestDelayMillis=100;var pHe=Phe,_He={};T(_He,{ActionInvalidate:()=>S_e,ActionPackageInstalled:()=>x_e,ActionSet:()=>Qte,ActionWatchTypingLocations:()=>Yoe,Arguments:()=>ySe,AutoImportProviderProject:()=>JEe,AuxiliaryProject:()=>VEe,CharRangeSection:()=>GK,CloseFileWatcherEvent:()=>Pce,CommandNames:()=>bot,ConfigFileDiagEvent:()=>Cce,ConfiguredProject:()=>KEe,ConfiguredProjectLoadKind:()=>Che,CreateDirectoryWatcherEvent:()=>Ice,CreateFileWatcherEvent:()=>bhe,Errors:()=>KL,EventBeginInstallTypes:()=>gSe,EventEndInstallTypes:()=>sK,EventInitializationFailed:()=>$8,EventTypesRegistry:()=>hSe,ExternalProject:()=>yhe,GcTimer:()=>BEe,InferredProject:()=>JVe,LargeFileReferencedEvent:()=>Tce,LineIndex:()=>Lce,LineLeaf:()=>Dj,LineNode:()=>CB,LogLevel:()=>SMe,Msg:()=>$v,OpenFileInfoTelemetryEvent:()=>vhe,Project:()=>$Q,ProjectInfoTelemetryEvent:()=>Dce,ProjectKind:()=>qQ,ProjectLanguageServiceStateEvent:()=>Ace,ProjectLoadingFinishEvent:()=>Ece,ProjectLoadingStartEvent:()=>Yne,ProjectService:()=>RMe,ProjectsUpdatedInBackgroundEvent:()=>Qne,ScriptInfo:()=>KQ,ScriptVersionCache:()=>Mce,Session:()=>Iot,TextStorage:()=>TMe,ThrottledOperations:()=>FEe,TypingsInstallerAdapter:()=>pHe,allFilesAreJsOrDts:()=>zEe,allRootFilesAreJsOrDts:()=>HVe,asNormalizedPath:()=>HQ,convertCompilerOptions:()=>Aj,convertFormatOptions:()=>WK,convertScriptKindName:()=>wce,convertTypeAcquisition:()=>Zne,convertUserPreferences:()=>xhe,convertWatchOptions:()=>jK,countEachFileTypes:()=>Cj,createInstallTypingsRequest:()=>kEe,createModuleSpecifierCache:()=>nTe,createNormalizedPathMap:()=>MVe,createPackageJsonCache:()=>rTe,createSortedArray:()=>OEe,emptyArray:()=>qv,findArgument:()=>ntt,formatDiagnosticToProtocol:()=>TB,formatMessage:()=>LMe,getBaseConfigFileName:()=>mhe,getDetailWatchInfo:()=>QEe,getLocationInNewDocument:()=>uHe,hasArgument:()=>ttt,hasNoTypeScriptSource:()=>GEe,indent:()=>Yte,isBackgroundProject:()=>GU,isConfigFile:()=>nHe,isConfiguredProject:()=>Hw,isDynamicFileName:()=>JQ,isExternalProject:()=>Dk,isInferredProject:()=>zU,isInferredProjectName:()=>xMe,isProjectDeferredClose:()=>UU,makeAutoImportProviderProjectName:()=>MEe,makeAuxiliaryProjectName:()=>LEe,makeInferredProjectName:()=>REe,maxFileSize:()=>xce,maxProgramSizeForNonTsFiles:()=>QQ,normalizedPathToPath:()=>y_,nowString:()=>rtt,nullCancellationToken:()=>MMe,nullTypingsInstaller:()=>The,protocol:()=>hhe,scriptInfoIsContainedByBackgroundProject:()=>VVe,scriptInfoIsContainedByDeferredClosedProject:()=>jEe,stringifyIndented:()=>Q9,toEvent:()=>iHe,toNormalizedPath:()=>bp,tryConvertScriptKindName:()=>She,typingsInstaller:()=>bMe,updateProjectIfDirty:()=>_I}),typeof console<"u"&&(B.loggingHost={log(n,e){switch(n){case 1:return console.error(e);case 2:return console.warn(e);case 3:return console.log(e);case 4:return console.log(e)}}})})({get exports(){return dJt},set exports(u){dJt=u,typeof Ivt<"u"&&Ivt.exports&&(Ivt.exports=u)}})});function Pvt(u){if(!lhn)return()=>{};let i=u||"Profiler",l=process.hrtime.bigint(),_=l;return(v,T)=>{let P=process.hrtime.bigint(),O=Number(P-l)/1e6,V=Number(P-_)/1e6;_=P;let J={stage:v,sinceStartMs:O,sinceLastMs:V,...T||{}};try{console.log(`[${i}][PROFILE]`,JSON.stringify(J))}catch{console.log(`[${i}][PROFILE]`,J)}}}var lhn,A4t=pc(()=>{"use strict";lhn=process.env.AST_FIND_NODES_PROFILING==="1"});var wvt,aXe,vJt,chn,tZ,oXe=pc(()=>{"use strict";wvt=rl(RI()),aXe=rl(x6e()),vJt=rl(require("fs"));A4t();chn={target:aXe.default.ScriptTarget.ESNext,module:aXe.default.ModuleKind.ESNext,moduleResolution:aXe.default.ModuleResolutionKind.NodeNext,jsx:aXe.default.JsxEmit.React,allowJs:!0,checkJs:!1,skipLibCheck:!0,skipDefaultLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,resolveJsonModule:!0,experimentalDecorators:!0,emitDecoratorMetadata:!0,useDefineForClassFields:!1,noEmit:!0},tZ=class u{static getDefaultCompilerOptions(){return{...chn}}static getSupportedEditCompilerOptions(){return{allowJs:!0}}static initializeProject(i,l){let _=Pvt("ProjectInit");if(_("start",{projectPath:i}),l)return _("usingTestProject"),l;let v=`${i}/tsconfig.json`,T={},P=!1;try{vJt.existsSync(v)?(P=!0,T.tsConfigFilePath=v,T.skipAddingFilesFromTsConfig=!0,T.compilerOptions=u.getSupportedEditCompilerOptions()):T.compilerOptions=u.getDefaultCompilerOptions()}catch{T.useInMemoryFileSystem=!0,T.compilerOptions=u.getDefaultCompilerOptions()}_("tsconfigChecked",{hasTsconfig:P});let O;try{_("projectConstruct.start"),O=new wvt.Project(T),_("projectConstruct.complete")}catch(V){console.log("Failed to load tsconfig, using defaults:",V.message),delete T.tsConfigFilePath,T.compilerOptions=u.getDefaultCompilerOptions(),_("projectConstruct.retry.start",{reason:V?.message}),O=new wvt.Project(T),_("projectConstruct.retry.complete")}return _("lazyMode.enabled",{hasTsconfig:P}),_("complete",{sourceFiles:O.getSourceFiles().length}),O}static createProject(i){return new wvt.Project(i)}static getProjectStats(i){let l=i.getSourceFiles(),_=0,v=0,T=0;for(let P of l)_+=P.getFunctions().length,v+=P.getClasses().length,T+=P.getInterfaces().length;return{sourceFiles:l.length,functions:_,classes:v,interfaces:T}}}});function D4t(u,i){return{...u,allowJs:!0,jsx:u.jsx??ED.default.JsxEmit.React,skipLibCheck:u.skipLibCheck??!0,skipDefaultLibCheck:u.skipDefaultLibCheck??!0,baseUrl:u.baseUrl??i}}function dhn(u){let i=ED.default.findConfigFile(u,ED.default.sys.fileExists,"tsconfig.json");if(!i)return{options:D4t({},u),fileNames:[]};let l=ED.default.readConfigFile(i,ED.default.sys.readFile),_={...l.config||{},compilerOptions:{...l.config&&l.config.compilerOptions||{},allowJs:!0}},v=ED.default.parseJsonConfigFileContent(_,ED.default.sys,SO.dirname(i));return{options:D4t(v.options,SO.dirname(i)),fileNames:v.fileNames}}function P4t(u,i,l,_,v){let T={getCompilationSettings:()=>u,getScriptFileNames:()=>Array.from(i),getScriptVersion:P=>l.get(SO.resolve(P))||"0",getScriptSnapshot:P=>{try{let O=SO.resolve(P);if(!E6e.existsSync(O))return;if(v>0)try{if(E6e.statSync(O).size>v)return}catch{return}return ED.default.ScriptSnapshot.fromString(E6e.readFileSync(O,"utf8"))}catch{return}},fileExists:ED.default.sys.fileExists,readFile:ED.default.sys.readFile,readDirectory:ED.default.sys.readDirectory,getDirectories:ED.default.sys.getDirectories,directoryExists:ED.default.sys.directoryExists,getCurrentDirectory:()=>SO.resolve(_),getDefaultLibFileName:P=>ED.default.getDefaultLibFilePath(P),realpath:ED.default.sys.realpath?ED.default.sys.realpath.bind(ED.default.sys):void 0};return ED.default.createLanguageService(T,ED.default.createDocumentRegistry())}function fhn(u){let i=SO.resolve(u),l=bJt.get(i);if(l)return l;let{options:_,fileNames:v}=dhn(i),T=v.map(te=>SO.resolve(te)),P=new Set(T),O=new Map,J={ls:P4t(_,P,O,i,I4t),options:_,fileNames:T,versions:O,filesSet:P};return bJt.set(i,J),J}function phn(u){let i=ED.default.readConfigFile(u,ED.default.sys.readFile),l={...i.config||{},compilerOptions:{...i.config&&i.config.compilerOptions||{},allowJs:!0}},_=ED.default.parseJsonConfigFileContent(l,ED.default.sys,SO.dirname(u));return{options:D4t(_.options,SO.dirname(u)),fileNames:_.fileNames}}function xJt(u){let i=SO.dirname(u);try{return ED.default.findConfigFile(i,ED.default.sys.fileExists,"tsconfig.json")||void 0}catch{return}}function Nvt(u,i){let l=xJt(i);if(!l)return fhn(u);let _=SO.resolve(l),v=SJt.get(_);if(v)return v;let{options:T,fileNames:P}=phn(_),O=new Set(P.map(oe=>SO.resolve(oe))),V=new Map,te={ls:P4t(T,O,V,SO.dirname(_),I4t),options:T,fileNames:Array.from(O),versions:V,filesSet:O};return SJt.set(_,te),te}function EJt(u,i){let l=Nvt(u,i),_=SO.resolve(i);if(!l.filesSet.has(_)){l.filesSet.add(_),l.versions.has(_)||l.versions.set(_,"0"),l.ls.dispose?.();let v=xJt(_),T=v?SO.dirname(v):u;l.ls=P4t(l.options,l.filesSet,l.versions,T,I4t)}}function TJt(u,i){let l=Nvt(u,i),_=SO.resolve(i),v=l.versions.get(_)||"0",T=String(Number(v)+1);l.versions.set(_,T)}var ED,SO,E6e,uhn,I4t,bJt,SJt,CJt=pc(()=>{"use strict";ED=rl(x6e()),SO=rl(require("path")),E6e=rl(require("fs"));oXe();uhn=10*1024*1024,I4t=(()=>{let u=process.env.PANDO_LS_MAX_FILE_BYTES??process.env.AST_LS_MAX_FILE_BYTES,i=u?Number(u):NaN;return Number.isFinite(i)&&i>0?i:uhn})(),bJt=new Map,SJt=new Map});function mhn(u){return[sW.default.join(u,".ssh"),sW.default.join(u,".aws"),sW.default.join(u,".gnupg"),sW.default.join(u,".config"),sW.default.join(u,".pando-ai"),sW.default.join(u,".pando-data"),sW.default.join(u,"Library")]}function hhn(u){return["/",u,"/Users","/home"]}function lXe(u){let i=sW.default.resolve(u);return i.length>1&&i.endsWith(sW.default.sep)?i.slice(0,-1):i}function w4t(u,i){if(u===i)return!0;let l=sW.default.relative(i,u);return l!==""&&!l.startsWith("..")&&!sW.default.isAbsolute(l)}function ghn(u,i){let l=lXe(i?.home??DJt.default.homedir()),_=lXe(u),v=process.env.PANDO_ALLOW_TEMP_ROOTS==="1",T=new Set(["/var","/private/var"]),P=[...v?AJt.filter(V=>!T.has(V)):AJt,...v?[]:_hn,...mhn(l)].map(lXe);for(let V of P)if(w4t(_,V)||w4t(V,_))return V;let O=hhn(l).map(lXe);for(let V of O)if(_===V||w4t(V,_))return V;for(let V of["/Users","/home"].map(lXe)){let J=sW.default.relative(V,_);if(J&&!J.startsWith("..")&&!sW.default.isAbsolute(J)&&J.split(sW.default.sep).filter(Boolean).length===1)return V}return null}function N4t(u,i){return ghn(u,i)!==null}var DJt,sW,AJt,_hn,IJt=pc(()=>{"use strict";DJt=rl(require("os")),sW=rl(require("path")),AJt=["/usr","/bin","/sbin","/System","/Library","/etc","/private/etc","/var","/private/var","/opt","/dev","/Applications"],_hn=["/Volumes","/mnt","/media","/srv","/tmp","/private/tmp","/private/var/folders"]});var LJt={};bD(LJt,{PANDO_DATA_DIRNAME:()=>uXe,addWorkspaceExtraRoot:()=>Phn,canonicalizeProjectRoot:()=>N7,computeWorkspaceIdentity:()=>Bye,getCanonicalRepoRoot:()=>k4t,getCanonicalStorageRoot:()=>Thn,getPandoDataDir:()=>Sy,getPandoFtsChunkPath:()=>khn,getPandoHistoryDir:()=>fXe,getPandoHomeDir:()=>dXe,getPandoIndexChunkPath:()=>xO,getPandoMetaDbPath:()=>C6e,getPandoSnapshotsDbPath:()=>pXe,getWorkspaceExtraRoots:()=>Ihn,getWorkspaceId:()=>Nhn,removeWorkspaceExtraRoot:()=>whn});function dXe(){return process.env.PANDO_DATA_DIR||TD.default.join(PJt.default.homedir(),uXe)}function NJt(u){let i=u,l=TD.default.parse(i);for(;i.length>l.root.length&&/[\\/]+$/.test(i);)i=i.replace(/[\\/]+$/,"");return i}function N7(u){let i=TD.default.resolve(u),l=i;try{let _=gie.default.realpathSync.native;l=typeof _=="function"?_(i):gie.default.realpathSync(i)}catch{}return NJt(l)}function yhn(u){let i=u.trim().replace(/\.git$/,"");if(!i)return null;let l=i.match(/^git@([^:]+):(.+)$/);if(l){let _=l[1],T=l[2].replace(/^\/+/,"").split("/");if(T.length>=2)return`${_}/${T[0]}/${T[1]}`}try{let _=new URL(i),v=_.hostname,P=_.pathname.replace(/^\/+/,"").split("/");if(v&&P.length>=2)return`${v}/${P[0]}/${P[1]}`}catch{}return null}function kvt(u){return wJt.default.createHash("sha1").update(u).digest("hex").slice(0,12)}function vhn(u){return u.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^A-Za-z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^[-._]+|[-._]+$/g,"").slice(0,64).replace(/^[-._]+|[-._]+$/g,"")||"workspace"}function bhn(u,i){let l=TD.default.basename(NJt(u));return`${vhn(l)}-${i}`}function kJt(){return TD.default.join(dXe(),"workspace-registry.json")}function T6e(u){try{return gie.default.readFileSync(u,"utf8").trim()}catch{return null}}function RJt(u){let i=TD.default.join(u,".git");try{let l=gie.default.statSync(i);if(l.isDirectory())return i;if(l.isFile()){let v=T6e(i)?.match(/^gitdir:\s*(.+)$/i);if(v){let T=v[1].trim();return TD.default.isAbsolute(T)?T:TD.default.resolve(u,T)}}}catch{return null}return null}function Shn(u){let i=TD.default.join(u,"commondir"),l=T6e(i);if(!l)return N7(u);let _=TD.default.isAbsolute(l)?l:TD.default.resolve(u,l);return N7(_)}function xhn(u){return N7(TD.default.join(u,"objects"))}function Ehn(u){let i=N7(u);for(;;){let l=TD.default.join(i,".git");if(gie.default.existsSync(l))return i;let _=TD.default.dirname(i);if(_===i)break;i=_}return null}function k4t(u){let i=N7(u),l=Ehn(i);return l?N7(l):null}function Thn(u){return k4t(u)??N7(u)}function Chn(u){let i=TD.default.join(u,"config"),l=T6e(i);if(!l)return null;let _=l.split(/\r?\n/),v=!1,T=null;for(let P of _){if(P.match(/^\s*\[remote\s+"([^"]+)"\]\s*$/)){v=!0;continue}if(P.startsWith("[")&&(v=!1),v){let V=P.match(/^\s*url\s*=\s*(.+)$/);if(V&&(T=V[1].trim(),T))return T}}return T}function Ahn(u){let i=TD.default.join(u,"HEAD"),l=T6e(i);if(!l)return{branch:null,commit:null};if(l.startsWith("ref:")){let _=l.replace("ref:","").trim(),v=_.split("/").slice(-1)[0]||null,T=TD.default.join(u,_),P=T6e(T);if(!P){let O=T6e(TD.default.join(u,"packed-refs"));if(O){let V=O.split(/\r?\n/).find(J=>J.endsWith(` ${_}`));V&&(P=V.split(" ")[0])}}return{branch:v,commit:P||null}}return{branch:"HEAD",commit:l||null}}function cXe(){try{let u=gie.default.readFileSync(kJt(),"utf8"),i=JSON.parse(u);if(i&&i.version===1&&i.entries&&typeof i.entries=="object")return{version:1,entries:i.entries}}catch{}return{version:1,entries:{}}}function R4t(u){let i=kJt(),l=TD.default.dirname(i);gie.default.mkdirSync(l,{recursive:!0});let _=`${i}.${process.pid}.${Date.now()}.tmp`;gie.default.writeFileSync(_,`${JSON.stringify(u,null,2)}
32185
+ `+N.stack)}finally{this.performanceData=x}}parseMessage(e){return JSON.parse(e)}toStringMessage(e){return e}getFormatOptions(e){return this.projectService.getFormatCodeOptions(e)}getPreferences(e){return this.projectService.getPreferences(e)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function lHe(n){let e=n.diagnosticsDuration&&Ga(n.diagnosticsDuration,([t,r])=>({...r,file:t}));return{...n,diagnosticsDuration:e}}function Ik(n,e){return{start:e.positionToLineOffset(n.start),end:e.positionToLineOffset(_u(n))}}function iN(n,e,t){let r=Ik(n,t),s=e&&Ik(e,t);return s?{...r,contextStart:s.start,contextEnd:s.end}:r}function cHe(n,e){return{start:Pot(e,n.span.start),end:Pot(e,_u(n.span)),newText:n.newText}}function Pot(n,e){return nHe(n)?DPt(n.getLineAndCharacterOfPosition(e)):n.positionToLineOffset(e)}function wot(n,e){let t=n.ranges.map(r=>({start:e.positionToLineOffset(r.start),end:e.positionToLineOffset(r.start+r.length)}));return n.wordPattern?{ranges:t,wordPattern:n.wordPattern}:{ranges:t}}function DPt(n){return{line:n.line+1,offset:n.character+1}}function IPt(n){B.assert(n.textChanges.length===1);let e=jo(n.textChanges);return B.assert(e.span.start===0&&e.span.length===0),{fileName:n.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:e.newText}]}}function uHe(n,e,t,r){let s=dHe(n,e,r),{line:a,character:d}=wD(zN(s),t);return{line:a+1,offset:d+1}}function dHe(n,e,t){for(let{fileName:r,textChanges:s}of t)if(r===e)for(let a=s.length-1;a>=0;a--){let{newText:d,span:{start:p,length:h}}=s[a];n=n.slice(0,p)+d+n.slice(p+h)}return n}function Not(n,{fileName:e,textSpan:t,contextSpan:r,isWriteAccess:s,isDefinition:a},{disableLineTextInReferences:d}){let p=B.checkDefined(n.getScriptInfo(e)),h=iN(t,r,p),y=d?void 0:kot(p,h);return{file:e,...h,lineText:y,isWriteAccess:s,isDefinition:a}}function kot(n,e){let t=n.lineToTextSpan(e.start.line-1);return n.getSnapshot().getText(t.start,_u(t)).replace(/\r|\n/g,"")}function PPt(n){return n===void 0||n&&typeof n=="object"&&typeof n.exportName=="string"&&(n.fileName===void 0||typeof n.fileName=="string")&&(n.ambientModuleName===void 0||typeof n.ambientModuleName=="string"&&(n.isPackageJsonImport===void 0||typeof n.isPackageJsonImport=="boolean"))}var ere=4,GK=(n=>(n[n.PreStart=0]="PreStart",n[n.Start=1]="Start",n[n.Entire=2]="Entire",n[n.Mid=3]="Mid",n[n.End=4]="End",n[n.PostEnd=5]="PostEnd",n))(GK||{}),fHe=class{constructor(){this.goSubtree=!0,this.lineIndex=new Lce,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new CB,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(n,e){e&&(this.trailingText=""),n?n=this.initialText+n+this.trailingText:n=this.initialText+this.trailingText;let r=Lce.linesFromText(n).lines;r.length>1&&r[r.length-1]===""&&r.pop();let s,a;for(let p=this.endBranch.length-1;p>=0;p--)this.endBranch[p].updateCounts(),this.endBranch[p].charCount()===0&&(a=this.endBranch[p],p>0?s=this.endBranch[p-1]:s=this.branchNode);a&&s.remove(a);let d=this.startPath[this.startPath.length-1];if(r.length>0)if(d.text=r[0],r.length>1){let p=new Array(r.length-1),h=d;for(let E=1;E<r.length;E++)p[E-1]=new Dj(r[E]);let y=this.startPath.length-2;for(;y>=0;){let E=this.startPath[y];p=E.insertAt(h,p),y--,h=E}let x=p.length;for(;x>0;){let E=new CB;E.add(this.lineIndex.root),p=E.insertAt(this.lineIndex.root,p),x=p.length,this.lineIndex.root=E}this.lineIndex.root.updateCounts()}else for(let p=this.startPath.length-2;p>=0;p--)this.startPath[p].updateCounts();else{this.startPath[this.startPath.length-2].remove(d);for(let h=this.startPath.length-2;h>=0;h--)this.startPath[h].updateCounts()}return this.lineIndex}post(n,e,t){t===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(n,e,t,r,s){let a=this.stack[this.stack.length-1];this.state===2&&s===1&&(this.state=1,this.branchNode=a,this.lineCollectionAtBranch=t);let d;function p(h){return h.isLeaf()?new Dj(""):new CB}switch(s){case 0:this.goSubtree=!1,this.state!==4&&a.add(t);break;case 1:this.state===4?this.goSubtree=!1:(d=p(t),a.add(d),this.startPath.push(d));break;case 2:this.state!==4?(d=p(t),a.add(d),this.startPath.push(d)):t.isLeaf()||(d=p(t),a.add(d),this.endBranch.push(d));break;case 3:this.goSubtree=!1;break;case 4:this.state!==4?this.goSubtree=!1:t.isLeaf()||(d=p(t),a.add(d),this.endBranch.push(d));break;case 5:this.goSubtree=!1,this.state!==1&&a.add(t);break}this.goSubtree&&this.stack.push(d)}leaf(n,e,t){this.state===1?this.initialText=t.text.substring(0,n):this.state===2?(this.initialText=t.text.substring(0,n),this.trailingText=t.text.substring(n+e)):this.trailingText=t.text.substring(n+e)}},wPt=class{constructor(n,e,t){this.pos=n,this.deleteLen=e,this.insertedText=t}getTextChangeRange(){return X7(qp(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},jMe=class hie{constructor(){this.changes=[],this.versions=new Array(hie.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(e){if(!(e<this.minVersion||e>this.currentVersion))return e%hie.maxVersions}currentVersionToIndex(){return this.currentVersion%hie.maxVersions}edit(e,t,r){this.changes.push(new wPt(e,t,r)),(this.changes.length>hie.changeNumberThreshold||t>hie.changeLengthThreshold||r&&r.length>hie.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let e=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let t=e.index;for(let r of this.changes)t=t.edit(r.pos,r.deleteLen,r.insertedText);e=new aTe(this.currentVersion+1,this,t,this.changes),this.currentVersion=e.version,this.versions[this.currentVersionToIndex()]=e,this.changes=[],this.currentVersion-this.minVersion>=hie.maxVersions&&(this.minVersion=this.currentVersion-hie.maxVersions+1)}return e}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(e){return this._getSnapshot().index.lineNumberToInfo(e)}lineOffsetToPosition(e,t){return this._getSnapshot().index.absolutePositionOfStartOfLine(e)+(t-1)}positionToLineOffset(e){return this._getSnapshot().index.positionToLineOffset(e)}lineToTextSpan(e){let t=this._getSnapshot().index,{lineText:r,absolutePosition:s}=t.lineNumberToInfo(e+1),a=r!==void 0?r.length:t.absolutePositionOfStartOfLine(e+2)-s;return qp(s,a)}getTextChangesBetweenVersions(e,t){if(e<t)if(e>=this.minVersion){let r=[];for(let s=e+1;s<=t;s++){let a=this.versions[this.versionToIndex(s)];for(let d of a.changesSincePreviousVersion)r.push(d.getTextChangeRange())}return sse(r)}else return;else return kz}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(e){let t=new hie,r=new aTe(0,t,new Lce);t.versions[t.currentVersion]=r;let s=Lce.linesFromText(e);return r.index.load(s.lines),t}};jMe.changeNumberThreshold=8,jMe.changeLengthThreshold=256,jMe.maxVersions=8;var Mce=jMe,aTe=class gJt{constructor(e,t,r,s=qv){this.version=e,this.cache=t,this.index=r,this.changesSincePreviousVersion=s}getText(e,t){return this.index.getText(e,t-e)}getLength(){return this.index.getLength()}getChangeRange(e){if(e instanceof gJt&&this.cache===e.cache)return this.version<=e.version?kz:this.cache.getTextChangesBetweenVersions(e.version,this.version)}},Lce=class T4t{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(e){return this.lineNumberToInfo(e).absolutePosition}positionToLineOffset(e){let{oneBasedLine:t,zeroBasedColumn:r}=this.root.charOffsetToLineInfo(1,e);return{line:t,offset:r+1}}positionToColumnAndLineText(e){return this.root.charOffsetToLineInfo(1,e)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(e){let t=this.getLineCount();if(e<=t){let{position:r,leaf:s}=this.root.lineNumberToInfo(e,0);return{absolutePosition:r,lineText:s&&s.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(e){if(e.length>0){let t=[];for(let r=0;r<e.length;r++)t[r]=new Dj(e[r]);this.root=T4t.buildTreeFromBottom(t)}else this.root=new CB}walk(e,t,r){this.root.walk(e,t,r)}getText(e,t){let r="";return t>0&&e<this.root.charCount()&&this.walk(e,t,{goSubtree:!0,done:!1,leaf:(s,a,d)=>{r=r.concat(d.text.substring(s,s+a))}}),r}getLength(){return this.root.charCount()}every(e,t,r){r||(r=this.root.charCount());let s={goSubtree:!0,done:!1,leaf(a,d,p){e(p,a,d)||(this.done=!0)}};return this.walk(t,r-t,s),!s.done}edit(e,t,r){if(this.root.charCount()===0)return B.assert(t===0),r!==void 0?(this.load(T4t.linesFromText(r).lines),this):void 0;{let s;if(this.checkEdits){let p=this.getText(0,this.root.charCount());s=p.slice(0,e)+r+p.slice(e+t)}let a=new fHe,d=!1;if(e>=this.root.charCount()){e=this.root.charCount()-1;let p=this.getText(e,1);r?r=p+r:r=p,t=0,d=!0}else if(t>0){let p=e+t,{zeroBasedColumn:h,lineText:y}=this.positionToColumnAndLineText(p);h===0&&(t+=y.length,r=r?r+y:y)}if(this.root.walk(e,t,a),a.insertLines(r,d),this.checkEdits){let p=a.lineIndex.getText(0,a.lineIndex.getLength());B.assert(s===p,"buffer edit mismatch")}return a.lineIndex}}static buildTreeFromBottom(e){if(e.length<ere)return new CB(e);let t=new Array(Math.ceil(e.length/ere)),r=0;for(let s=0;s<t.length;s++){let a=Math.min(r+ere,e.length);t[s]=new CB(e.slice(r,a)),r=a}return this.buildTreeFromBottom(t)}static linesFromText(e){let t=zN(e);if(t.length===0)return{lines:[],lineMap:t};let r=new Array(t.length),s=t.length-1;for(let d=0;d<s;d++)r[d]=e.substring(t[d],t[d+1]);let a=e.substring(t[s]);return a.length>0?r[s]=a:r.pop(),{lines:r,lineMap:t}}},CB=class C4t{constructor(e=[]){this.children=e,this.totalChars=0,this.totalLines=0,e.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let e of this.children)this.totalChars+=e.charCount(),this.totalLines+=e.lineCount()}execWalk(e,t,r,s,a){return r.pre&&r.pre(e,t,this.children[s],this,a),r.goSubtree?(this.children[s].walk(e,t,r),r.post&&r.post(e,t,this.children[s],this,a)):r.goSubtree=!0,r.done}skipChild(e,t,r,s,a){s.pre&&!s.done&&(s.pre(e,t,this.children[r],this,a),s.goSubtree=!0)}walk(e,t,r){if(this.children.length===0)return;let s=0,a=this.children[s].charCount(),d=e;for(;d>=a;)this.skipChild(d,t,s,r,0),d-=a,s++,a=this.children[s].charCount();if(d+t<=a){if(this.execWalk(d,t,r,s,2))return}else{if(this.execWalk(d,a-d,r,s,1))return;let p=t-(a-d);for(s++,a=this.children[s].charCount();p>a;){if(this.execWalk(0,a,r,s,3))return;p-=a,s++,a=this.children[s].charCount()}if(p>0&&this.execWalk(0,p,r,s,4))return}if(r.pre){let p=this.children.length;if(s<p-1)for(let h=s+1;h<p;h++)this.skipChild(0,0,h,r,5)}}charOffsetToLineInfo(e,t){if(this.children.length===0)return{oneBasedLine:e,zeroBasedColumn:t,lineText:void 0};for(let a of this.children){if(a.charCount()>t)return a.isLeaf()?{oneBasedLine:e,zeroBasedColumn:t,lineText:a.text}:a.charOffsetToLineInfo(e,t);t-=a.charCount(),e+=a.lineCount()}let r=this.lineCount();if(r===0)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};let s=B.checkDefined(this.lineNumberToInfo(r,0).leaf);return{oneBasedLine:r,zeroBasedColumn:s.charCount(),lineText:void 0}}lineNumberToInfo(e,t){for(let r of this.children){let s=r.lineCount();if(s>=e)return r.isLeaf()?{position:t,leaf:r}:r.lineNumberToInfo(e,t);e-=s,t+=r.charCount()}return{position:t,leaf:void 0}}splitAfter(e){let t,r=this.children.length;e++;let s=e;if(e<r){for(t=new C4t;e<r;)t.add(this.children[e]),e++;t.updateCounts()}return this.children.length=s,t}remove(e){let t=this.findChildIndex(e),r=this.children.length;if(t<r-1)for(let s=t;s<r-1;s++)this.children[s]=this.children[s+1];this.children.pop()}findChildIndex(e){let t=this.children.indexOf(e);return B.assert(t!==-1),t}insertAt(e,t){let r=this.findChildIndex(e),s=this.children.length,a=t.length;if(s<ere&&r===s-1&&a===1)return this.add(t[0]),this.updateCounts(),[];{let d=this.splitAfter(r),p=0;for(r++;r<ere&&p<a;)this.children[r]=t[p],r++,p++;let h=[],y=0;if(p<a){y=Math.ceil((a-p)/ere),h=new Array(y);let x=0;for(let D=0;D<y;D++)h[D]=new C4t;let E=h[0];for(;p<a;)E.add(t[p]),p++,E.children.length===ere&&(x++,E=h[x]);for(let D=h.length-1;D>=0;D--)h[D].children.length===0&&h.pop()}d&&h.push(d),this.updateCounts();for(let x=0;x<y;x++)h[x].updateCounts();return h}}add(e){this.children.push(e),B.assert(this.children.length<=ere)}charCount(){return this.totalChars}lineCount(){return this.totalLines}},Dj=class{constructor(n){this.text=n}isLeaf(){return!0}walk(n,e,t){t.leaf(n,e,this)}charCount(){return this.text.length}lineCount(){return 1}},Phe=class yJt{constructor(e,t,r,s,a,d){this.telemetryEnabled=e,this.logger=t,this.host=r,this.globalTypingsCacheLocation=s,this.event=a,this.maxActiveRequestCount=d,this.activeRequestCount=0,this.requestQueue=Ab(),this.requestMap=new Map,this.requestedRegistry=!1,this.packageInstallId=0}isKnownTypesPackageName(e){var t;return XR.validatePackageName(e)!==XR.NameValidationResult.Ok?!1:(this.requestedRegistry||(this.requestedRegistry=!0,this.installer.send({kind:"typesRegistry"})),!!((t=this.typesRegistryCache)!=null&&t.has(e)))}installPackage(e){this.packageInstallId++;let t={kind:"installPackage",...e,id:this.packageInstallId},r=new Promise((s,a)=>{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:s,reject:a})});return this.installer.send(t),r}attach(e){this.projectService=e,this.installer=this.createInstallerProcess()}onProjectClosed(e){this.installer.send({projectName:e.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(e,t,r){let s=kEe(e,t,r);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${Q9(s)}`),this.activeRequestCount<this.maxActiveRequestCount?this.scheduleRequest(s):(this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Deferring request for: ${s.projectName}`),this.requestQueue.enqueue(s),this.requestMap.set(s.projectName,s))}handleMessage(e){var t,r;switch(this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Received response:${Q9(e)}`),e.kind){case hSe:this.typesRegistryCache=new Map(Object.entries(e.typesRegistry));break;case x_e:{let s=(t=this.packageInstalledPromise)==null?void 0:t.get(e.id);B.assertIsDefined(s,"Should find the promise for package install"),(r=this.packageInstalledPromise)==null||r.delete(e.id),e.success?s.resolve({successMessage:e.message}):s.reject(e.message),this.projectService.updateTypingsForProject(e),this.event(e,"setTypings");break}case $8:{let s={message:e.message};this.event(s,"typesInstallerInitializationFailed");break}case gSe:{let s={eventId:e.eventId,packages:e.packagesToInstall};this.event(s,"beginInstallTypes");break}case sK:{if(this.telemetryEnabled){let d={telemetryEventName:"typingsInstalled",payload:{installedPackages:e.packagesToInstall.join(","),installSuccess:e.installSuccess,typingsInstallerVersion:e.typingsInstallerVersion}};this.event(d,"telemetry")}let s={eventId:e.eventId,packages:e.packagesToInstall,success:e.installSuccess};this.event(s,"endInstallTypes");break}case S_e:{this.projectService.updateTypingsForProject(e);break}case Qte:{for(this.activeRequestCount>0?this.activeRequestCount--:B.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){let s=this.requestQueue.dequeue();if(this.requestMap.get(s.projectName)===s){this.requestMap.delete(s.projectName),this.scheduleRequest(s);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${s.projectName}`)}this.projectService.updateTypingsForProject(e),this.event(e,"setTypings");break}case Yoe:this.projectService.watchTypingLocations(e);break;default:}}scheduleRequest(e){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${e.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${Q9(e)}`),this.installer.send(e)},yJt.requestDelayMillis,`${e.projectName}::${e.kind}`)}};Phe.requestDelayMillis=100;var pHe=Phe,_He={};T(_He,{ActionInvalidate:()=>S_e,ActionPackageInstalled:()=>x_e,ActionSet:()=>Qte,ActionWatchTypingLocations:()=>Yoe,Arguments:()=>ySe,AutoImportProviderProject:()=>JEe,AuxiliaryProject:()=>VEe,CharRangeSection:()=>GK,CloseFileWatcherEvent:()=>Pce,CommandNames:()=>bot,ConfigFileDiagEvent:()=>Cce,ConfiguredProject:()=>KEe,ConfiguredProjectLoadKind:()=>Che,CreateDirectoryWatcherEvent:()=>Ice,CreateFileWatcherEvent:()=>bhe,Errors:()=>KL,EventBeginInstallTypes:()=>gSe,EventEndInstallTypes:()=>sK,EventInitializationFailed:()=>$8,EventTypesRegistry:()=>hSe,ExternalProject:()=>yhe,GcTimer:()=>BEe,InferredProject:()=>JVe,LargeFileReferencedEvent:()=>Tce,LineIndex:()=>Lce,LineLeaf:()=>Dj,LineNode:()=>CB,LogLevel:()=>SMe,Msg:()=>$v,OpenFileInfoTelemetryEvent:()=>vhe,Project:()=>$Q,ProjectInfoTelemetryEvent:()=>Dce,ProjectKind:()=>qQ,ProjectLanguageServiceStateEvent:()=>Ace,ProjectLoadingFinishEvent:()=>Ece,ProjectLoadingStartEvent:()=>Yne,ProjectService:()=>RMe,ProjectsUpdatedInBackgroundEvent:()=>Qne,ScriptInfo:()=>KQ,ScriptVersionCache:()=>Mce,Session:()=>Iot,TextStorage:()=>TMe,ThrottledOperations:()=>FEe,TypingsInstallerAdapter:()=>pHe,allFilesAreJsOrDts:()=>zEe,allRootFilesAreJsOrDts:()=>HVe,asNormalizedPath:()=>HQ,convertCompilerOptions:()=>Aj,convertFormatOptions:()=>WK,convertScriptKindName:()=>wce,convertTypeAcquisition:()=>Zne,convertUserPreferences:()=>xhe,convertWatchOptions:()=>jK,countEachFileTypes:()=>Cj,createInstallTypingsRequest:()=>kEe,createModuleSpecifierCache:()=>nTe,createNormalizedPathMap:()=>MVe,createPackageJsonCache:()=>rTe,createSortedArray:()=>OEe,emptyArray:()=>qv,findArgument:()=>ntt,formatDiagnosticToProtocol:()=>TB,formatMessage:()=>LMe,getBaseConfigFileName:()=>mhe,getDetailWatchInfo:()=>QEe,getLocationInNewDocument:()=>uHe,hasArgument:()=>ttt,hasNoTypeScriptSource:()=>GEe,indent:()=>Yte,isBackgroundProject:()=>GU,isConfigFile:()=>nHe,isConfiguredProject:()=>Hw,isDynamicFileName:()=>JQ,isExternalProject:()=>Dk,isInferredProject:()=>zU,isInferredProjectName:()=>xMe,isProjectDeferredClose:()=>UU,makeAutoImportProviderProjectName:()=>MEe,makeAuxiliaryProjectName:()=>LEe,makeInferredProjectName:()=>REe,maxFileSize:()=>xce,maxProgramSizeForNonTsFiles:()=>QQ,normalizedPathToPath:()=>y_,nowString:()=>rtt,nullCancellationToken:()=>MMe,nullTypingsInstaller:()=>The,protocol:()=>hhe,scriptInfoIsContainedByBackgroundProject:()=>VVe,scriptInfoIsContainedByDeferredClosedProject:()=>jEe,stringifyIndented:()=>Q9,toEvent:()=>iHe,toNormalizedPath:()=>bp,tryConvertScriptKindName:()=>She,typingsInstaller:()=>bMe,updateProjectIfDirty:()=>_I}),typeof console<"u"&&(B.loggingHost={log(n,e){switch(n){case 1:return console.error(e);case 2:return console.warn(e);case 3:return console.log(e);case 4:return console.log(e)}}})})({get exports(){return dJt},set exports(u){dJt=u,typeof Ivt<"u"&&Ivt.exports&&(Ivt.exports=u)}})});function Pvt(u){if(!lhn)return()=>{};let i=u||"Profiler",l=process.hrtime.bigint(),_=l;return(v,T)=>{let P=process.hrtime.bigint(),O=Number(P-l)/1e6,V=Number(P-_)/1e6;_=P;let J={stage:v,sinceStartMs:O,sinceLastMs:V,...T||{}};try{console.log(`[${i}][PROFILE]`,JSON.stringify(J))}catch{console.log(`[${i}][PROFILE]`,J)}}}var lhn,A4t=pc(()=>{"use strict";lhn=process.env.AST_FIND_NODES_PROFILING==="1"});var wvt,aXe,vJt,chn,tZ,oXe=pc(()=>{"use strict";wvt=rl(RI()),aXe=rl(x6e()),vJt=rl(require("fs"));A4t();chn={target:aXe.default.ScriptTarget.ESNext,module:aXe.default.ModuleKind.ESNext,moduleResolution:aXe.default.ModuleResolutionKind.NodeNext,jsx:aXe.default.JsxEmit.React,allowJs:!0,checkJs:!1,skipLibCheck:!0,skipDefaultLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,resolveJsonModule:!0,experimentalDecorators:!0,emitDecoratorMetadata:!0,useDefineForClassFields:!1,noEmit:!0},tZ=class u{static getDefaultCompilerOptions(){return{...chn}}static getSupportedEditCompilerOptions(){return{allowJs:!0}}static initializeProject(i,l){let _=Pvt("ProjectInit");if(_("start",{projectPath:i}),l)return _("usingTestProject"),l;let v=`${i}/tsconfig.json`,T={},P=!1;try{vJt.existsSync(v)?(P=!0,T.tsConfigFilePath=v,T.skipAddingFilesFromTsConfig=!0,T.compilerOptions=u.getSupportedEditCompilerOptions()):T.compilerOptions=u.getDefaultCompilerOptions()}catch{T.useInMemoryFileSystem=!0,T.compilerOptions=u.getDefaultCompilerOptions()}_("tsconfigChecked",{hasTsconfig:P});let O;try{_("projectConstruct.start"),O=new wvt.Project(T),_("projectConstruct.complete")}catch(V){console.log("Failed to load tsconfig, using defaults:",V.message),delete T.tsConfigFilePath,T.compilerOptions=u.getDefaultCompilerOptions(),_("projectConstruct.retry.start",{reason:V?.message}),O=new wvt.Project(T),_("projectConstruct.retry.complete")}return _("lazyMode.enabled",{hasTsconfig:P}),_("complete",{sourceFiles:O.getSourceFiles().length}),O}static createProject(i){return new wvt.Project(i)}static getProjectStats(i){let l=i.getSourceFiles(),_=0,v=0,T=0;for(let P of l)_+=P.getFunctions().length,v+=P.getClasses().length,T+=P.getInterfaces().length;return{sourceFiles:l.length,functions:_,classes:v,interfaces:T}}}});function D4t(u,i){return{...u,allowJs:!0,jsx:u.jsx??ED.default.JsxEmit.React,skipLibCheck:u.skipLibCheck??!0,skipDefaultLibCheck:u.skipDefaultLibCheck??!0,baseUrl:u.baseUrl??i}}function dhn(u){let i=ED.default.findConfigFile(u,ED.default.sys.fileExists,"tsconfig.json");if(!i)return{options:D4t({},u),fileNames:[]};let l=ED.default.readConfigFile(i,ED.default.sys.readFile),_={...l.config||{},compilerOptions:{...l.config&&l.config.compilerOptions||{},allowJs:!0}},v=ED.default.parseJsonConfigFileContent(_,ED.default.sys,SO.dirname(i));return{options:D4t(v.options,SO.dirname(i)),fileNames:v.fileNames}}function P4t(u,i,l,_,v){let T={getCompilationSettings:()=>u,getScriptFileNames:()=>Array.from(i),getScriptVersion:P=>l.get(SO.resolve(P))||"0",getScriptSnapshot:P=>{try{let O=SO.resolve(P);if(!E6e.existsSync(O))return;if(v>0)try{if(E6e.statSync(O).size>v)return}catch{return}return ED.default.ScriptSnapshot.fromString(E6e.readFileSync(O,"utf8"))}catch{return}},fileExists:ED.default.sys.fileExists,readFile:ED.default.sys.readFile,readDirectory:ED.default.sys.readDirectory,getDirectories:ED.default.sys.getDirectories,directoryExists:ED.default.sys.directoryExists,getCurrentDirectory:()=>SO.resolve(_),getDefaultLibFileName:P=>ED.default.getDefaultLibFilePath(P),realpath:ED.default.sys.realpath?ED.default.sys.realpath.bind(ED.default.sys):void 0};return ED.default.createLanguageService(T,ED.default.createDocumentRegistry())}function fhn(u){let i=SO.resolve(u),l=bJt.get(i);if(l)return l;let{options:_,fileNames:v}=dhn(i),T=v.map(te=>SO.resolve(te)),P=new Set(T),O=new Map,J={ls:P4t(_,P,O,i,I4t),options:_,fileNames:T,versions:O,filesSet:P};return bJt.set(i,J),J}function phn(u){let i=ED.default.readConfigFile(u,ED.default.sys.readFile),l={...i.config||{},compilerOptions:{...i.config&&i.config.compilerOptions||{},allowJs:!0}},_=ED.default.parseJsonConfigFileContent(l,ED.default.sys,SO.dirname(u));return{options:D4t(_.options,SO.dirname(u)),fileNames:_.fileNames}}function xJt(u){let i=SO.dirname(u);try{return ED.default.findConfigFile(i,ED.default.sys.fileExists,"tsconfig.json")||void 0}catch{return}}function Nvt(u,i){let l=xJt(i);if(!l)return fhn(u);let _=SO.resolve(l),v=SJt.get(_);if(v)return v;let{options:T,fileNames:P}=phn(_),O=new Set(P.map(oe=>SO.resolve(oe))),V=new Map,te={ls:P4t(T,O,V,SO.dirname(_),I4t),options:T,fileNames:Array.from(O),versions:V,filesSet:O};return SJt.set(_,te),te}function EJt(u,i){let l=Nvt(u,i),_=SO.resolve(i);if(!l.filesSet.has(_)){l.filesSet.add(_),l.versions.has(_)||l.versions.set(_,"0"),l.ls.dispose?.();let v=xJt(_),T=v?SO.dirname(v):u;l.ls=P4t(l.options,l.filesSet,l.versions,T,I4t)}}function TJt(u,i){let l=Nvt(u,i),_=SO.resolve(i),v=l.versions.get(_)||"0",T=String(Number(v)+1);l.versions.set(_,T)}var ED,SO,E6e,uhn,I4t,bJt,SJt,CJt=pc(()=>{"use strict";ED=rl(x6e()),SO=rl(require("path")),E6e=rl(require("fs"));oXe();uhn=10*1024*1024,I4t=(()=>{let u=process.env.PANDO_LS_MAX_FILE_BYTES??process.env.AST_LS_MAX_FILE_BYTES,i=u?Number(u):NaN;return Number.isFinite(i)&&i>0?i:uhn})(),bJt=new Map,SJt=new Map});function mhn(u){return[sW.default.join(u,".ssh"),sW.default.join(u,".aws"),sW.default.join(u,".gnupg"),sW.default.join(u,".config"),sW.default.join(u,".pando-ai"),sW.default.join(u,".pando-data"),sW.default.join(u,"Library")]}function hhn(u){return["/",u,"/Users","/home"]}function lXe(u){let i=sW.default.resolve(u);return i.length>1&&i.endsWith(sW.default.sep)?i.slice(0,-1):i}function w4t(u,i){if(u===i)return!0;let l=sW.default.relative(i,u);return l!==""&&!l.startsWith("..")&&!sW.default.isAbsolute(l)}function ghn(u,i){let l=lXe(i?.home??DJt.default.homedir()),_=lXe(u),v=process.env.PANDO_ALLOW_TEMP_ROOTS==="1",T=new Set(["/var","/private/var"]),P=hhn(l).map(lXe);for(let V of P)if(_===V)return V;for(let V of P)if(w4t(V,_))return V;let O=[...v?AJt.filter(V=>!T.has(V)):AJt,...v?[]:_hn,...mhn(l)].map(lXe);for(let V of O)if(w4t(_,V)||w4t(V,_))return V;for(let V of["/Users","/home"].map(lXe)){let J=sW.default.relative(V,_);if(J&&!J.startsWith("..")&&!sW.default.isAbsolute(J)&&J.split(sW.default.sep).filter(Boolean).length===1)return V}return null}function N4t(u,i){return ghn(u,i)!==null}var DJt,sW,AJt,_hn,IJt=pc(()=>{"use strict";DJt=rl(require("os")),sW=rl(require("path")),AJt=["/usr","/bin","/sbin","/System","/Library","/etc","/private/etc","/var","/private/var","/opt","/dev","/Applications"],_hn=["/Volumes","/mnt","/media","/srv","/tmp","/private/tmp","/private/var/folders"]});var LJt={};bD(LJt,{PANDO_DATA_DIRNAME:()=>uXe,addWorkspaceExtraRoot:()=>Phn,canonicalizeProjectRoot:()=>N7,computeWorkspaceIdentity:()=>Bye,getCanonicalRepoRoot:()=>k4t,getCanonicalStorageRoot:()=>Thn,getPandoDataDir:()=>Sy,getPandoFtsChunkPath:()=>khn,getPandoHistoryDir:()=>fXe,getPandoHomeDir:()=>dXe,getPandoIndexChunkPath:()=>xO,getPandoMetaDbPath:()=>C6e,getPandoSnapshotsDbPath:()=>pXe,getWorkspaceExtraRoots:()=>Ihn,getWorkspaceId:()=>Nhn,removeWorkspaceExtraRoot:()=>whn});function dXe(){return process.env.PANDO_DATA_DIR||TD.default.join(PJt.default.homedir(),uXe)}function NJt(u){let i=u,l=TD.default.parse(i);for(;i.length>l.root.length&&/[\\/]+$/.test(i);)i=i.replace(/[\\/]+$/,"");return i}function N7(u){let i=TD.default.resolve(u),l=i;try{let _=gie.default.realpathSync.native;l=typeof _=="function"?_(i):gie.default.realpathSync(i)}catch{}return NJt(l)}function yhn(u){let i=u.trim().replace(/\.git$/,"");if(!i)return null;let l=i.match(/^git@([^:]+):(.+)$/);if(l){let _=l[1],T=l[2].replace(/^\/+/,"").split("/");if(T.length>=2)return`${_}/${T[0]}/${T[1]}`}try{let _=new URL(i),v=_.hostname,P=_.pathname.replace(/^\/+/,"").split("/");if(v&&P.length>=2)return`${v}/${P[0]}/${P[1]}`}catch{}return null}function kvt(u){return wJt.default.createHash("sha1").update(u).digest("hex").slice(0,12)}function vhn(u){return u.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^A-Za-z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^[-._]+|[-._]+$/g,"").slice(0,64).replace(/^[-._]+|[-._]+$/g,"")||"workspace"}function bhn(u,i){let l=TD.default.basename(NJt(u));return`${vhn(l)}-${i}`}function kJt(){return TD.default.join(dXe(),"workspace-registry.json")}function T6e(u){try{return gie.default.readFileSync(u,"utf8").trim()}catch{return null}}function RJt(u){let i=TD.default.join(u,".git");try{let l=gie.default.statSync(i);if(l.isDirectory())return i;if(l.isFile()){let v=T6e(i)?.match(/^gitdir:\s*(.+)$/i);if(v){let T=v[1].trim();return TD.default.isAbsolute(T)?T:TD.default.resolve(u,T)}}}catch{return null}return null}function Shn(u){let i=TD.default.join(u,"commondir"),l=T6e(i);if(!l)return N7(u);let _=TD.default.isAbsolute(l)?l:TD.default.resolve(u,l);return N7(_)}function xhn(u){return N7(TD.default.join(u,"objects"))}function Ehn(u){let i=N7(u);for(;;){let l=TD.default.join(i,".git");if(gie.default.existsSync(l))return i;let _=TD.default.dirname(i);if(_===i)break;i=_}return null}function k4t(u){let i=N7(u),l=Ehn(i);return l?N7(l):null}function Thn(u){return k4t(u)??N7(u)}function Chn(u){let i=TD.default.join(u,"config"),l=T6e(i);if(!l)return null;let _=l.split(/\r?\n/),v=!1,T=null;for(let P of _){if(P.match(/^\s*\[remote\s+"([^"]+)"\]\s*$/)){v=!0;continue}if(P.startsWith("[")&&(v=!1),v){let V=P.match(/^\s*url\s*=\s*(.+)$/);if(V&&(T=V[1].trim(),T))return T}}return T}function Ahn(u){let i=TD.default.join(u,"HEAD"),l=T6e(i);if(!l)return{branch:null,commit:null};if(l.startsWith("ref:")){let _=l.replace("ref:","").trim(),v=_.split("/").slice(-1)[0]||null,T=TD.default.join(u,_),P=T6e(T);if(!P){let O=T6e(TD.default.join(u,"packed-refs"));if(O){let V=O.split(/\r?\n/).find(J=>J.endsWith(` ${_}`));V&&(P=V.split(" ")[0])}}return{branch:v,commit:P||null}}return{branch:"HEAD",commit:l||null}}function cXe(){try{let u=gie.default.readFileSync(kJt(),"utf8"),i=JSON.parse(u);if(i&&i.version===1&&i.entries&&typeof i.entries=="object")return{version:1,entries:i.entries}}catch{}return{version:1,entries:{}}}function R4t(u){let i=kJt(),l=TD.default.dirname(i);gie.default.mkdirSync(l,{recursive:!0});let _=`${i}.${process.pid}.${Date.now()}.tmp`;gie.default.writeFileSync(_,`${JSON.stringify(u,null,2)}
32186
32186
  `,"utf8"),gie.default.renameSync(_,i)}function Dhn(u,i){if(!i)return{canonicalRepoRoot:u,gitCommonDir:null,gitObjectDir:null,fingerprint:`non-git:path:${u}`};let l=RJt(i),_=l?Shn(l):null,v=_?xhn(_):null;return{canonicalRepoRoot:i,gitCommonDir:_,gitObjectDir:v,fingerprint:["git",`root:${i}`,`common:${_??""}`,`objects:${v??""}`].join("|")}}function MJt(u){try{let i=cXe();i.entries[u.storageRoot]={workspaceId:u.id,workspaceDirName:u.dirName,locationId:u.locationId,incarnationId:u.incarnationId,canonicalProjectRoot:u.canonicalProjectRoot,canonicalRepoRoot:u.canonicalRepoRoot,storageRoot:u.storageRoot,repoIdentity:u.repoIdentity??null,gitCommonDir:u.gitCommonDir??null,gitObjectDir:u.gitObjectDir??null,remote:u.remote??null,branch:u.branch??null,commit:u.commit??null,updatedAt:new Date().toISOString()},R4t(i)}catch{}}function Ihn(u){try{let i=Bye(u),v=cXe().entries[i.storageRoot]?.extraRoots;if(!Array.isArray(v))return[];let T=i.canonicalProjectRoot,P=new Set,O=[];for(let V of v){if(typeof V!="string")continue;let J=N7(V);J===T||P.has(J)||N4t(J)||(P.add(J),O.push(J))}return O}catch{return[]}}function Phn(u,i){let l=Bye(u),_=N7(i);if(_===l.canonicalProjectRoot||N4t(_))return!1;cXe().entries[l.storageRoot]||MJt(l);let P=cXe(),O=P.entries[l.storageRoot];if(!O)return!1;let J=(Array.isArray(O.extraRoots)?O.extraRoots:[]).map(te=>N7(te));return J.includes(_)?!1:(O.extraRoots=[...J,_],O.updatedAt=new Date().toISOString(),R4t(P),!0)}function whn(u,i){let l=Bye(u),_=N7(i),v=cXe(),T=v.entries[l.storageRoot];if(!T||!Array.isArray(T.extraRoots))return!1;let P=T.extraRoots.map(O=>N7(O)).filter((O,V,J)=>O!==_&&J.indexOf(O)===V);return P.length===T.extraRoots.length?!1:(T.extraRoots=P,T.updatedAt=new Date().toISOString(),R4t(v),!0)}function Bye(u){let i=N7(u),l=k4t(i),_=l??i,v=l,T=kvt(_),P=Dhn(_,v),O=kvt(P.fingerprint),V=`ws-${kvt(`${T}:${O}`)}`,J=bhn(_,V);if(!v)return{id:V,dirName:J,locationId:T,incarnationId:O,canonicalProjectRoot:i,canonicalRepoRoot:_,storageRoot:_,gitCommonDir:P.gitCommonDir,gitObjectDir:P.gitObjectDir,repoIdentity:null,remote:null,branch:null,commit:null};let te=RJt(v),oe=te?Chn(te):null,q=oe?yhn(oe):null,Ce=te?Ahn(te):{branch:null,commit:null};return{id:V,dirName:J,locationId:T,incarnationId:O,canonicalProjectRoot:i,canonicalRepoRoot:v,storageRoot:_,gitCommonDir:P.gitCommonDir,gitObjectDir:P.gitObjectDir,repoIdentity:q??`local:${kvt(_)}`,remote:oe,branch:Ce.branch,commit:Ce.commit}}function Nhn(u){return Bye(u).id}function Sy(u){let i=Bye(u);return MJt(i),TD.default.join(dXe(),"workspaces",i.dirName)}function C6e(u){return TD.default.join(Sy(u),"meta.db")}function fXe(u){return TD.default.join(Sy(u),"history")}function xO(u,i){return TD.default.join(Sy(u),`.pando-index-chunk-${i}.db`)}function khn(u,i){return TD.default.join(Sy(u),`.pando-fts-chunk-${i}.db`)}function pXe(u){return TD.default.join(Sy(u),".pando-snapshots.db")}var TD,PJt,gie,wJt,uXe,BM=pc(()=>{"use strict";TD=rl(require("path")),PJt=rl(require("os")),gie=rl(require("fs")),wJt=rl(require("crypto"));IJt();uXe=".pando-data"});function FJt(){let u=process.env.PANDO_LOG_DIR||process.env.PANDO_WORKSPACE_DATA_DIR;if(u)return u;try{return dXe()}catch{let l=typeof M4t.default.homedir=="function"?M4t.default.homedir():process.env.HOME;if(l)return Rvt.default.join(l,uXe)}let i=process.env.HOME||process.cwd();return Rvt.default.join(i,uXe)}function Mhn(){return Rvt.default.join(FJt(),"pando.log")}function jhn(){try{L4t.default.mkdirSync(FJt(),{recursive:!0})}catch{}}function zhn(u){if(u!==void 0)try{return typeof u=="string"?u:(0,OJt.inspect)(u,{depth:null,breakLength:1/0,maxArrayLength:1/0})}catch{try{return JSON.stringify(u)}catch{return String(u)}}}function KT(){return Lvt}function Uhn(u){return Lvt?Whn.has(u)?Fhn:!(!Ohn&&Bhn.has(u)):!1}function Du(u,i,l){if(!Uhn(u))return;let _=new Date().toISOString(),v=zhn(l),T=v?`[${_}] [${u}] ${i} :: ${v}`:`[${_}] [${u}] ${i}`;if(!Ghn&&!process.env.PANDO_QUIET)try{process.stderr.write(T+`
32187
32187
  `)}catch{}try{jhn(),L4t.default.appendFileSync(Mhn(),T+`
32188
32188
  `,"utf8")}catch{}}var L4t,M4t,Rvt,OJt,Rhn,Mvt,Lhn,Lvt,Ohn,Fhn,Bhn,Whn,Ghn,qT=pc(()=>{"use strict";L4t=rl(require("fs")),M4t=rl(require("os")),Rvt=rl(require("path"));BM();OJt=require("util"),Rhn=require("crypto");Mvt=u=>{if(u==null)return!1;let i=u.trim().toLowerCase();return i!=="0"&&i!=="false"&&i!=="off"&&i!=="no"},Lhn=Mvt(process.env.PANDO_LOG_DISABLED),Lvt=!Lhn&&(process.env.PANDO_DEBUG==null||Mvt(process.env.PANDO_DEBUG)),Ohn=Lvt&&(process.env.PANDO_INDEX_HOT_LOG==null||Mvt(process.env.PANDO_INDEX_HOT_LOG)),Fhn=Lvt&&(process.env.PANDO_INDEX_TIMING==null||Mvt(process.env.PANDO_INDEX_TIMING)),Bhn=new Set(["BatchAnalysisScheduler","ClojureIndex","ClojureIndexer","ThreadedIndexer"]),Whn=new Set(["IndexTiming"]);Ghn=!1});function O4t(u,i){KT()&&Du("ClojureTrace",u,i)}var Ovt,BJt=pc(()=>{"use strict";CJt();qT();Ovt=class{constructor(i,l){this.fileStates=new Map;this.operationMetadata=new WeakMap;this.project=i,this.projectRoot=l,this.ls={getForFile:_=>Nvt(this.projectRoot,_),ensureInProgram:_=>EJt(this.projectRoot,_),bump:_=>TJt(this.projectRoot,_)}}setQueryLayer(i){this._queries=i}get queries(){return this._queries}getOperationMetadata(i,l){return this.operationMetadata.get(i)?.get(l)}setOperationMetadata(i,l,_){let v=this.operationMetadata.get(i);v||(v=new Map,this.operationMetadata.set(i,v)),v.set(l,_)}clearOperationMetadata(i,l){if(l==null){this.operationMetadata.delete(i);return}let _=this.operationMetadata.get(i);_&&(_.delete(l),_.size===0&&this.operationMetadata.delete(i))}setLspHost(i){this._lspHost=i}get lsp(){if(!this._lspHost)try{let{CodeEngineFactory:i}=(tDe(),Zf(A6e)),l=i.getEngineOptions(this.projectRoot);l?.lspHost&&(this._lspHost=l.lspHost,O4t("ExecutionContext.lsp recovered host from engine options",{projectRoot:this.projectRoot,hasHost:!0}))}catch{}return this._lspHost?O4t("ExecutionContext.lsp returning host",{projectRoot:this.projectRoot,lspType:this._lspHost?.constructor?.name??typeof this._lspHost,hasReferences:!!this._lspHost?.references,hasRename:!!this._lspHost?.rename,hasWorkspaceFilesChanged:!!this._lspHost?.workspaceFilesChanged}):O4t("ExecutionContext.lsp returning undefined host",{projectRoot:this.projectRoot}),this._lspHost}saveFileState(i){let l=this.project.getSourceFile(i);l&&this.fileStates.set(i,l.getFullText())}saveFileStates(i){for(let l of i)this.saveFileState(l)}getSavedFilePaths(){return Array.from(this.fileStates.keys())}restoreFileStates(){for(let[i,l]of this.fileStates){let _=this.project.getSourceFile(i);_&&_.replaceWithText(l)}this.fileStates.clear()}}});var OV={};bD(OV,{Database:()=>Bvt,Statement:()=>Fvt,default:()=>ox});var WJt,Fvt,Bvt,ox,MI=pc(()=>{"use strict";WJt=require("node:sqlite"),Fvt=class{constructor(i){this.statement=i}run(...i){let l=this.statement.run(...i);return{changes:l.changes,lastInsertRowid:l.lastInsertRowid}}get(...i){let l=this.statement.get(...i);return l??void 0}all(...i){return this.statement.all(...i)}iterate(...i){return this.statement.iterate(...i)}setAllowBareNamedParameters(i){return this.statement.setAllowBareNamedParameters(i),this}setReadBigInts(i){return this.statement.setReadBigInts(i),this}},Bvt=class u{constructor(i,l){this.file=i;this.transactionDepth=0;let _=l??{},v=!!(_.readOnly??_.readonly);this.connectionId=u.nextId++,this.database=new WJt.DatabaseSync(i,{readOnly:v,fileMustExist:!!_.fileMustExist,timeout:typeof _.timeout=="number"?Math.max(0,Math.floor(_.timeout)):void 0})}static{this.nextId=1}prepare(i){return new Fvt(this.database.prepare(i))}exec(i){this.database.exec(i)}close(){this.database.close()}getConnectionId(){return this.connectionId}pragma(i){return this.database.prepare(`PRAGMA ${i}`).all()}transaction(i){return(...l)=>{this.transactionDepth+=1;let _=this.transactionDepth;_===1&&this.database.exec("BEGIN");try{let v=i(...l);if(v instanceof Promise)throw new TypeError("SQLite transactions must be synchronous. Received a Promise.");return _===1&&this.database.exec("COMMIT"),v}catch(v){if(_===1)try{this.database.exec("ROLLBACK")}catch{}throw v}finally{this.transactionDepth=Math.max(0,this.transactionDepth-1)}}}loadExtension(){throw new Error("loadExtension is not supported by the embedded SQLite runtime")}},ox=Bvt});var nDe,jJt,Vhn,_Xe,zJt=pc(()=>{"use strict";nDe=rl(require("fs")),jJt=rl(require("path"));MI();BM();Vhn=2,_Xe=class{constructor(i=process.cwd()){this.projectRoot=i,this.chunkDbPaths=[],this.discoverChunkDatabases()}discoverChunkDatabases(){let i=Sy(this.projectRoot),l;try{l=nDe.readdirSync(i)}catch{this.chunkDbPaths=[];return}let _=/^\.pando-index-chunk-\d+\.db$/;this.chunkDbPaths=l.filter(v=>_.test(v)).sort().map(v=>jJt.join(i,v))}getChunkPaths(){return[...this.chunkDbPaths]}async queryAllChunks(i,l=[],_={}){let v=Date.now();if(this.chunkDbPaths.length===0)return console.log("\u26A0\uFE0F No chunk databases found. Run indexing first."),[];console.log(`\u{1F50D} Querying ${this.chunkDbPaths.length} chunks in parallel...`);let T=this.chunkDbPaths.map(async(oe,q)=>this.queryChunk(oe,q,i,l)),P=await Promise.all(T),O=[],V=0,J=[];for(let oe of P)oe.error?J.push(`Chunk ${oe.chunkIndex}: ${oe.error}`):(O.push(...oe.results),V+=oe.queryTime);if(_.deduplicateBy){let oe=new Set;O=O.filter(q=>{let Ce=q[_.deduplicateBy];return oe.has(Ce)?!1:(oe.add(Ce),!0)})}if(_.orderBy){let oe=_.orderDirection==="DESC"?-1:1;O.sort((q,Ce)=>{let ye=q[_.orderBy],be=Ce[_.orderBy];return ye<be?-1*oe:ye>be?1*oe:0})}_.offset&&(O=O.slice(_.offset)),_.limit&&(O=O.slice(0,_.limit));let te=Date.now()-v;return console.log(`\u2705 Distributed query complete: ${O.length} results in ${te}ms`),console.log(` \u{1F4CA} Avg chunk query time: ${(V/this.chunkDbPaths.length).toFixed(1)}ms`),J.length>0&&console.log(`\u26A0\uFE0F ${J.length} chunk errors:`,J),O}async queryChunk(i,l,_,v){let T=Date.now();try{if(!nDe.existsSync(i))return{chunkIndex:l,chunkPath:i,results:[],queryTime:0,error:`Database file not found: ${i}`};let P=new ox(i,{readonly:!0}),V=P.prepare(_).all(...v);P.close();let J=Date.now()-T;return{chunkIndex:l,chunkPath:i,results:V,queryTime:J}}catch(P){let O=Date.now()-T;return{chunkIndex:l,chunkPath:i,results:[],queryTime:O,error:`Query failed: ${P.message}`}}}async getStats(){console.log(`\u{1F4CA} Gathering statistics from ${this.chunkDbPaths.length} chunks...`);let i=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pando-ai",
3
- "version": "0.7.9",
3
+ "version": "0.8.0",
4
4
  "description": "AI coding firewall for Codex and Claude Code: supervised launchers, Pando MCP, policy enforcement, Claude hooks, and local provider gateway.",
5
5
  "bin": {
6
6
  "pando-ai": "bin/pando-ai.js"