From faf312cad7723cab2e0d01660f2f0ddafcd8e8ae Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 08:49:50 +0000 Subject: [PATCH] fix(grammars): bump tree-sitter grammars and re-vendor wasm --- package.json | 2 +- pnpm-lock.yaml | 30 ++-- scripts/engine.browser.mjs | 200 +++++++++++++------------- scripts/engine.mjs | 114 ++++++++++++--- scripts/grammars/web-tree-sitter.wasm | Bin 201535 -> 209613 bytes 5 files changed, 209 insertions(+), 137 deletions(-) diff --git a/package.json b/package.json index b8b13d4..6ad87cd 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "tsup": "^8.3.0", "typescript": "^5.5.0", "vitest": "^4.1.11", - "web-tree-sitter": "^0.26.13" + "web-tree-sitter": "^0.27.0" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2f2344..13014e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -88,7 +88,7 @@ importers: version: 0.23.2 tsup: specifier: ^8.3.0 - version: 8.5.1(postcss@8.5.26)(typescript@5.9.3) + version: 8.5.1(postcss@8.5.28)(typescript@5.9.3) typescript: specifier: ^5.5.0 version: 5.9.3 @@ -96,8 +96,8 @@ importers: specifier: ^4.1.11 version: 4.1.11(@types/node@20.19.43)(vite@8.1.5(@types/node@20.19.43)(esbuild@0.28.2)) web-tree-sitter: - specifier: ^0.26.13 - version: 0.26.13 + specifier: ^0.27.0 + version: 0.27.0 packages: @@ -1747,8 +1747,8 @@ packages: yaml: optional: true - postcss@8.5.26: - resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} + postcss@8.5.28: + resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} pretty-ms@9.3.1: @@ -2349,8 +2349,8 @@ packages: jsdom: optional: true - web-tree-sitter@0.26.13: - resolution: {integrity: sha512-5bUZ7vbQ1kcondet96wzP974+JfCZDeQ7bTpacICm2nnvHpa5cO0ByRsoMcAhUP+743vpkb4m0BFlVSm+Ye9VA==} + web-tree-sitter@0.27.0: + resolution: {integrity: sha512-XK08gj6RwTMQatAG7uVRP8MunqotL/XC19vHgkSPKmELgbGPBj4ECvB8haHOUnyj6ls2B8t42UTro14zxGgAHg==} web-worker@1.5.0: resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} @@ -3768,13 +3768,13 @@ snapshots: mlly: 1.8.2 pathe: 2.0.3 - postcss-load-config@6.0.1(postcss@8.5.26): + postcss-load-config@6.0.1(postcss@8.5.28): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.26 + postcss: 8.5.28 - postcss@8.5.26: + postcss@8.5.28: dependencies: nanoid: 3.3.18 picocolors: 1.1.1 @@ -4207,7 +4207,7 @@ snapshots: tslib@2.8.1: optional: true - tsup@8.5.1(postcss@8.5.26)(typescript@5.9.3): + tsup@8.5.1(postcss@8.5.28)(typescript@5.9.3): dependencies: bundle-require: 5.1.0(esbuild@0.28.2) cac: 6.7.14 @@ -4218,7 +4218,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.26) + postcss-load-config: 6.0.1(postcss@8.5.28) resolve-from: 5.0.0 rollup: 4.62.2 source-map: 0.7.6 @@ -4227,7 +4227,7 @@ snapshots: tinyglobby: 0.2.17 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.26 + postcss: 8.5.28 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -4289,7 +4289,7 @@ snapshots: dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 - postcss: 8.5.26 + postcss: 8.5.28 rolldown: 1.1.5 tinyglobby: 0.2.17 optionalDependencies: @@ -4324,7 +4324,7 @@ snapshots: transitivePeerDependencies: - msw - web-tree-sitter@0.26.13: {} + web-tree-sitter@0.27.0: {} web-worker@1.5.0: {} diff --git a/scripts/engine.browser.mjs b/scripts/engine.browser.mjs index a224f03..4673609 100644 --- a/scripts/engine.browser.mjs +++ b/scripts/engine.browser.mjs @@ -1,16 +1,16 @@ -var af=Object.defineProperty;var O=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Di=(e,t)=>{for(var n in t)af(e,n,{get:t[n],enumerable:!0})};function ol(e){let t="";for(let r=0;r{"use strict";lf=new TextDecoder("utf-8"),cf=new TextDecoder("utf-16le"),sl=new TextEncoder,il="0123456789abcdef";N=class e extends Uint8Array{static from(t,n){if(typeof t=="string"){if(n==="hex"){let l=new e(t.length>>1);for(let c=0;ca+l.byteLength,0),s=new e(r),o=0;for(let a of t){if(o+a.byteLength>r){s.set(a.subarray(0,r-o),o);break}s.set(a,o),o+=a.byteLength}return s}subarray(t,n){return super.subarray(t,n)}toString(t,n,r){let s=n!==void 0||r!==void 0?this.subarray(n??0,r??this.length):this;switch((t??"utf8").toLowerCase()){case"utf8":case"utf-8":return lf.decode(s);case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return cf.decode(s);case"latin1":case"binary":case"ascii":return ol(s);case"hex":{let o="";for(let a of s)o+=il[a>>4]+il[a&15];return o}case"base64":return btoa(ol(s));default:throw new TypeError(`Unknown encoding: ${t}`)}}swap16(){if(this.length%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t"/",exit:e=>{throw new Error(`process.exit(${e??0}) is not available in the browser build`)},hrtime:Object.assign(e=>{let t=performance.now(),n=Math.floor(t/1e3),r=Math.floor(t%1e3*1e6);return e?[n-e[0],r-e[1]]:[n,r]},{bigint:()=>BigInt(Math.floor(performance.now()*1e6))}),memoryUsage:()=>({rss:0,heapTotal:0,heapUsed:0,external:0,arrayBuffers:0}),stdout:{write:e=>(console.log(e.replace(/\n$/,"")),!0),isTTY:!1},stderr:{write:e=>(console.warn(e.replace(/\n$/,"")),!0),isTTY:!1},on:()=>R,emitWarning:e=>console.warn(e)}});var fe,He,pn,Xe=O(()=>{"use strict";E();fe="2.28.4",He=5,pn=14});function al(e,t){let n="",r=0,s=-1,o=0,a=0;for(let l=0;l<=e.length;++l){if(l2){let c=n.lastIndexOf("/");c===-1?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=l,o=0;continue}else if(n.length!==0){n="",r=0,s=l,o=0;continue}}t&&(n+=n.length>0?"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,l):n=e.slice(s+1,l),r=l-s-1;s=l,o=0}else a===46&&o!==-1?++o:o=-1}return n}function es(e){if(e.length===0)return".";let t=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47,r=al(e,!t);return r.length===0&&!t&&(r="."),r.length>0&&n&&(r+="/"),t?"/"+r:r}function ts(e){return e.length>0&&e.charCodeAt(0)===47}function I(...e){if(e.length===0)return".";let t;for(let n of e)n.length>0&&(t=t===void 0?n:t+"/"+n);return t===void 0?".":es(t)}function Ee(...e){let t="",n=!1;for(let s=e.length-1;s>=0&&!n;s--){let o=e[s];o===void 0||o.length===0||(t=t.length===0?o:o+"/"+t,n=o.charCodeAt(0)===47)}n||(t=t.length===0?"/":"/"+t);let r=al(t,!1);return r.length>0?"/"+r:"/"}function df(e,t){if(e===t)return"";let n=Ee(e),r=Ee(t);if(n===r)return"";let s=n.slice(1).split("/").filter(Boolean),o=r.slice(1).split("/").filter(Boolean),a=0;for(;a=1;--s)if(e.charCodeAt(s)===47){if(!r){n=s;break}}else r=!1;return n===-1?t?"/":".":t&&n===1?"//":e.slice(0,n)}function ve(e,t){let n=0,r=-1,s=!0;for(let a=e.length-1;a>=0;--a)if(e.charCodeAt(a)===47){if(!s){n=a+1;break}}else r===-1&&(s=!1,r=a+1);if(r===-1)return"";let o=e.slice(n,r);return t!==void 0&&t!==o&&o.endsWith(t)?o.slice(0,o.length-t.length):o}function ns(e){let t=-1,n=0,r=-1,s=!0,o=0;for(let a=e.length-1;a>=0;--a){let l=e.charCodeAt(a);if(l===47){if(!s){n=a+1;break}continue}r===-1&&(s=!1,r=a+1),l===46?t===-1?t=a:o!==1&&(o=1):t!==-1&&(o=-1)}return t===-1||r===-1||o===0||o===1&&t===r-1&&t===n+1?"":e.slice(t,r)}function uf(e){let t=ts(e)?"/":"",n=ve(e),r=ns(e),s=_e(e);return{root:t,dir:s==="."&&t===""?"":s,base:n,ext:r,name:n.slice(0,n.length-r.length)}}function ff(e){let t=e.dir||e.root||"",n=e.base||(e.name??"")+(e.ext??"");return t?t===e.root?t+n:t+"/"+n:n}function mf(e){return e}var $,xb,ae=O(()=>{"use strict";E();$={sep:"/",delimiter:":",normalize:es,isAbsolute:ts,join:I,resolve:Ee,relative:df,dirname:_e,basename:ve,extname:ns,parse:uf,format:ff,toNamespacedPath:mf},xb={...$,posix:$,win32:$}});function cl(){return++ll}function Ue(e){let t=e.startsWith("/")?e:"/"+e,n=es(t);return n.length>1&&n.endsWith("/")?n.slice(0,-1):n}function At(e,t){let n=new Error(`ENOENT: no such file or directory, ${t} '${e}'`);return n.code="ENOENT",n.errno=-2,n.path=e,n.syscall=t,n}function dl(e,t){let n=new Error(`ENOTDIR: not a directory, ${t} '${e}'`);return n.code="ENOTDIR",n.errno=-20,n.path=e,n.syscall=t,n}function gn(e){let t=Ue(e),n=me.get(t);if(n){if(n.kind!=="dir")throw dl(e,"mkdir");return n}let r={kind:"dir",mtimeMs:0,mode:511,children:new Set};return me.set(t,r),t!==Ht&&gn(_e(t)).children.add(ve(t)),r}function pf(){me.clear(),ll=0,ml=0,me.set(Ht,{kind:"dir",mtimeMs:0,mode:511,children:new Set})}function ul(e){for(let t of e){let n=Ue(t.path);gn(_e(n)).children.add(ve(n)),me.set(n,{kind:"file",size:t.size,mtimeMs:cl(),mode:438,bytes:t.bytes})}}function rs(e,t){let n=Ue(e),r=me.get(n);if(r&&r.kind==="file"){r.bytes=t,r.size=t.byteLength,r.mtimeMs=cl();return}ul([{path:n,size:t.byteLength,bytes:t}])}function gf(e){let t=me.get(Ue(e));return!!t&&t.kind==="file"&&t.bytes!==void 0}function _f(){let e=0;for(let[t,n]of[...me]){if(n.kind!=="file"||n.bytes!==void 0)continue;me.delete(t);let r=me.get(_e(t));r&&r.kind==="dir"&&r.children.delete(ve(t)),e++}return e}function hf(){let e=0;for(let t of me.values())t.kind==="file"&&t.bytes&&(e+=t.bytes.byteLength);return e}function yf(e,t,n){return{name:e,parentPath:t,path:t,isFile:()=>n==="file",isDirectory:()=>n==="dir",isSymbolicLink:ot,isBlockDevice:ot,isCharacterDevice:ot,isFIFO:ot,isSocket:ot}}function bf(e){return{size:e.kind==="file"?e.size:0,mode:e.mode,mtimeMs:e.mtimeMs,mtime:new Date(e.mtimeMs),isFile:()=>e.kind==="file",isDirectory:()=>e.kind==="dir",isSymbolicLink:ot,isBlockDevice:ot,isCharacterDevice:ot,isFIFO:ot,isSocket:ot}}function H(e){return me.has(Ue(e))}function xe(e){let t=me.get(Ue(e));if(!t)throw At(e,"stat");return bf(t)}function _n(e){let t=Ue(e);if(!me.has(t))throw At(e,"realpath");return t}function hn(e,t){let n=Ue(e),r=me.get(n);if(!r)throw At(e,"scandir");if(r.kind!=="dir")throw dl(e,"scandir");let s=[...r.children];return t?.withFileTypes?s.map(o=>{let a=me.get(n===Ht?`/${o}`:`${n}/${o}`);return yf(o,n,a?.kind==="dir"?"dir":"file")}):s}function Q(e,t){let n=me.get(Ue(e));if(!n)throw At(e,"open");if(n.kind!=="file"){let s=new Error("EISDIR: illegal operation on a directory, read");throw s.code="EISDIR",s}if(!n.bytes)throw At(e,"open");let r=N.from(n.bytes);return t?r.toString(typeof t=="string"?t:t.encoding):r}function Me(e,t){let n=typeof t=="string"?new TextEncoder().encode(t):t;rs(e,n)}function ss(e,t){let n=me.get(Ue(e));if(!n)throw At(e,"chmod");n.mode=t}function _t(e,t){gn(e)}function Dn(e){let t=`${e}${ml++}`;return gn(t),t}function Ge(e,t){let n=Ue(e),r=me.get(n);if(!r){if(t?.force)return;throw At(e,"unlink")}if(r.kind==="dir")for(let o of[...r.children])Ge(n===Ht?`/${o}`:`${n}/${o}`,t);me.delete(n);let s=me.get(_e(n));s&&s.kind==="dir"&&s.children.delete(ve(n))}function Ln(e,t){let n=Ue(e),r=me.get(n);if(!r)throw At(e,"rename");let s=Ue(t);if(r.kind==="dir"){gn(s);for(let o of[...r.children])Ln(n===Ht?`/${o}`:`${n}/${o}`,s===Ht?`/${o}`:`${s}/${o}`)}else gn(_e(s)).children.add(ve(s)),me.set(s,r);Ge(n,{force:!0})}function pl(){throw new Error("recursive filesystem watching is unavailable in the browser VFS")}var Ht,me,ll,ot,fl,ml,Se=O(()=>{"use strict";E();ae();Ht="/",me=new Map([[Ht,{kind:"dir",mtimeMs:0,mode:511,children:new Set}]]),ll=0;ot=()=>!1;fl=xe;ml=0});function gl(e,t,n){let r=new Error(`spawnSync ${e} ENOENT`);return r.code="ENOENT",r.errno=-2,r.syscall=`spawnSync ${e}`,r.path=e,{pid:0,output:[],stdout:"",stderr:"",status:null,signal:null,error:r}}function _l(e,t,n){let r=new Map,s={pid:void 0,stdin:null,stdout:null,stderr:null,on(a,l){let c=r.get(a)??[];return c.push(l),r.set(a,c),s},kill:()=>!1},o=new Error(`spawn ${e} ENOENT`);return o.code="ENOENT",o.syscall=`spawn ${e}`,o.path=e,Promise.resolve().then(()=>{for(let a of r.get("error")??[])a(o);for(let a of r.get("close")??[])a(null)}),s}var Li=O(()=>{E()});function pe(e,t,n={}){let r=gl(e,t,{cwd:n.cwd,input:n.input,encoding:"utf8",timeout:n.timeoutMs??12e4,maxBuffer:67108864,env:n.env??R.env}),s=!!r.error&&r.error.code==="ENOENT";return{ok:!r.error&&r.status===0,status:r.status,stdout:r.stdout??"",stderr:r.stderr??(r.error?String(r.error.message):""),missing:s}}function at(e){let t=hl.get(e);if(t!==void 0)return t;let n=pe(R.platform==="win32"?"where":"which",[e]),r=n.ok&&n.stdout.trim().length>0;return hl.set(e,r),r}function ji(e){return e.toLowerCase().replace(/^https?:\/\//,"").replace(/^git@/,"").replace(/\.git$/,"").replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,120)}function wf(e,t){return e.length<=t?e:e.slice(0,t)+` -\u2026 [truncated ${e.length-t} chars]`}function xf(e,t){let n=e.replace(/\s+/g," ").trim();if(n.length<=t)return n;let r=n.slice(0,t).replace(/\s+\S*$/,"");return r||(r=n.slice(0,t)),(r.match(/`/g)?.length??0)%2===1&&(r=r.replace(/`[^`]*$/,"")),r.lastIndexOf("[")>r.lastIndexOf("]")&&(r=r.slice(0,r.lastIndexOf("["))),r.replace(/\s+$/,"")+"\u2026"}function qe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ht(e){return e.normalize("NFKD").replace(/[̀-ͯ]/g,"")}function is(e){let t=new Set,n=[];for(let r of ht(e).split(/[^A-Za-z0-9_]+/)){if(!r)continue;let s=r.toLowerCase();r.length<2||yl.has(s)||t.has(s)||(t.add(s),n.push(r))}return n}function os(e){let t=[];for(let n of ht(e).split(/[^A-Za-z0-9_]+/))n&&(n.length<2||yl.has(n.toLowerCase()))&&t.push(n);return t}function Sf(e){let t=is(e),n=r=>{let s=0;return/\d/.test(r)&&(s+=3),/[A-Z]/.test(r)&&!/^[A-Z0-9]+$/.test(r)&&(s+=2),/_/.test(r)&&(s+=2),r.length>=8?s+=1.5:r.length>=5&&(s+=.5),s};return t.map((r,s)=>({k:r,s:n(r),i:s})).sort((r,s)=>s.s-r.s||r.i-s.i).map(r=>r.k)}function Wi(e,t,n=60){let r=new Map;for(let s of e)s.forEach((o,a)=>{let l=t(o);r.set(l,(r.get(l)??0)+1/(n+a+1))});return r}function yt(e){let t=ht(e).replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2"),n=[],r=new Set,s=o=>{o.length<2||r.has(o)||(r.add(o),n.push(o))};/\s/.test(e.trim())||s(ht(e).toLowerCase().replace(/[^a-z0-9_]+/g,""));for(let o of t.split(/[^A-Za-z0-9]+/))s(o.toLowerCase());return n}function Ui(e){if(e.length<4)return e;let t=e;return t.endsWith("ies")&&t.length>4?t=t.slice(0,-3)+"y":t.endsWith("sses")?t=t.slice(0,-2):(t.endsWith("ses")&&t.length>4||t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is"))&&(t=t.slice(0,-1)),t.endsWith("ying")&&t.length>5?t=t.slice(0,-4)+"y":t.endsWith("ing")&&t.length>5?t=t.slice(0,-3):t.endsWith("ed")&&t.length>4&&(t=t.slice(0,-2)),t.endsWith("e")&&t.length>3&&(t=t.slice(0,-1)),t}var hl,yl,Ae=O(()=>{"use strict";E();Li();hl=new Map;yl=new Set(["the","a","an","is","are","was","were","be","been","being","do","does","did","how","what","why","when","where","which","who","whom","this","that","these","those","of","in","on","to","for","with","and","or","but","if","then","else","than","as","at","by","from","into","about","it","its","i","you","we","they","he","she","there","here","can","could","should","would","will","shall","may","might","must","have","has","had","not","no","yes","so","such","only","any","some","all","get","set","use","used","using","work","works","working","handle","handled","happen","happens","default","value","values","please","explain","tell","me","my","our"])});function kf(e){let t="";for(let n=0;n{"use strict";E();Ae()});function bl(e,t){return e===jn||t.has(e)||e.startsWith(".codeindex-edit-")}function vf(e,t){let n=t.find(s=>s.name===jn);if(!n)return;let r=I(e,jn);try{if(n.isDirectory())return r;let s=xe(r);if(s.isDirectory())return r;if(!s.isFile()||s.size>Ef)return;let o=Q(r,"utf8");if(!o.startsWith(wl))return;let a=o.slice(wl.length).replace(/[\r\n]+$/,"");if(!a)return;let l=Ee(e,a),c=I(l,"commondir");return H(c)?Ee(l,Q(c,"utf8").trim()):l}catch{return}}function Rf(e){if(!e)return"";try{let t=I(e,"info","exclude");return H(t)?q(t):""}catch{return""}}function Pe(e,t={}){let n=t.maxFileBytes??1048576,r=t.maxFiles??1/0,s=t.gitignore!==!1,o=t.ignoreDirs?new Set(t.ignoreDirs):Gt,a=[],l=!1,c=0,d;try{d=_n(e)}catch{return{files:a,capped:l,excluded:c}}let m=p=>p===d||p.startsWith(d+"/"),u=[{dir:e,rel:"",rules:[]}],f=new Set;e:for(;u.length;){let p=u.pop(),g;try{g=_n(p.dir)}catch{continue}if(f.has(g)||(f.add(g),!m(g)))continue;let h;try{h=hn(p.dir,{withFileTypes:!0}).sort((_,k)=>_.namek.name?1:0)}catch{continue}let y=h.some(_=>_.name===jn)?vf(p.dir,h):void 0;if(p.rel&&y){c++;continue}let S=p.rules;if(s&&!p.rel){let _=as(Rf(y),"");_.length&&(S=[...S,..._])}if(s&&h.some(_=>_.name===".gitignore")){let _=as(q(I(p.dir,".gitignore")),p.rel);_.length&&(S=[...S,..._])}for(let _ of h){let k=_.name,b=I(p.dir,k),w=p.rel?`${p.rel}/${k}`:k,v=_.isSymbolicLink();if(k===jn||_.isDirectory()&&bl(k,o))continue;let A;try{A=v?xe(b):fl(b)}catch{continue}if(A.isDirectory()){if(bl(k,o)||v||s&&S.length&&ls(S,w,!0))continue;u.push({dir:b,rel:w,rules:S});continue}if(!A.isFile())continue;if(A.size>n){c++;continue}if(zi.has(k.toLowerCase())){c++;continue}let F=ns(k).toLowerCase();if(Hi.has(F)){c++;continue}if(k.endsWith(".min.js")||k.endsWith(".min.css")){c++;continue}if(s&&S.length&&ls(S,w,!1)){c++;continue}if(v)try{if(!m(_n(b)))continue}catch{continue}if(a.length>=r){l=!0;break e}a.push({rel:w.split("/").join("/"),abs:b,size:A.size,ext:F,mtimeMs:A.mtimeMs})}}return{files:a,capped:l,excluded:c}}function q(e){try{let t=Q(e);if(t.length>=2&&t[0]===255&&t[1]===254)return t.subarray(2,2+(t.length-2&-2)).toString("utf16le");if(t.length>=2&&t[0]===254&&t[1]===255){let r=N.from(t.subarray(2,2+(t.length-2&-2)));return r.swap16(),r.toString("utf16le")}if(t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191)return t.subarray(3).toString("utf8");if(t.includes(0))return"";let n=t.toString("utf8");return n.includes("\uFFFD")?t.toString("latin1"):n}catch{return""}}var Gt,jn,wl,Ef,zi,Hi,Mf,Ne=O(()=>{"use strict";E();Se();ae();Bi();Gt=new Set([".git","node_modules",".pnpm","bower_components","vendor","dist","build","out","target",".next",".nuxt",".svelte-kit",".turbo","coverage","__pycache__",".venv","venv",".tox",".mypy_cache",".pytest_cache",".gradle",".idea",".vscode",".cache","tmp",".ultraindex",".codeindex","Pods","DerivedData",".terraform","elm-stuff",".dart_tool"]),jn=".git";wl="gitdir: ",Ef=4096;zi=new Set(["package-lock.json","npm-shrinkwrap.json","yarn.lock","pnpm-lock.yaml","bun.lockb","composer.lock","cargo.lock","poetry.lock","pipfile.lock","gemfile.lock","go.sum","flake.lock","packages.lock.json","podfile.lock","mix.lock"]),Hi=new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".icns",".svg",".pdf",".zip",".gz",".tar",".tgz",".bz2",".xz",".7z",".rar",".jar",".war",".class",".so",".dylib",".dll",".exe",".bin",".o",".a",".wasm",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".mov",".avi",".webm",".wav",".flac",".ogg",".lock",".min.js",".map"]),Mf=2e4});function ds(e){let t=pe("git",["-C",e,"rev-parse","--short","HEAD"]);return t.ok?t.stdout.trim():void 0}function qi(e){return pe("git",["-C",e,"rev-parse","--is-inside-work-tree"]).ok}function Vi(e,t){let n=l=>pe("git",[...lt(e),"rev-parse","--verify","--quiet",`${l}^{commit}`]).ok,r=l=>{let c=pe("git",[...lt(e),"merge-base",l,"HEAD"]);return c.ok?c.stdout.trim():void 0};if(t){if(!n(t))return{error:`base ref "${t}" not found (tried git rev-parse --verify)`};let l=r(t);return l?{ref:t,mergeBase:l}:{error:`no merge-base between "${t}" and HEAD`}}let s=pe("git",[...lt(e),"symbolic-ref","--quiet","refs/remotes/origin/HEAD"]),o=[...s.ok?[s.stdout.trim().replace("refs/remotes/","")]:[],"origin/main","origin/master","main","master"];for(let l of o){if(!n(l))continue;let c=r(l);if(c)return{ref:l,mergeBase:c}}let a=pe("git",[...lt(e),"rev-parse","HEAD"]);return a.ok?{ref:"HEAD",mergeBase:a.stdout.trim(),note:"base: HEAD (no default branch found \u2014 reviewing uncommitted work)"}:{error:"cannot resolve HEAD \u2014 empty repository?"}}function Ji(e,t){let n=[],r=pe("git",[...lt(e),"diff","-z","-M","--name-status",...Gi(t)]);if(r.ok){let a=r.stdout.split("\0"),l=0;for(;l[a.path,a])),o=pe("git",[...lt(e),"diff","-z","-M","--numstat",...Gi(t)]);if(o.ok){let a=o.stdout.split("\0"),l=0;for(;ln.length>0):[]}function Ze(e,t={}){let n=new Map,r=t.since?[`${t.since}..HEAD`]:[],s=pe("git",[...lt(e),"log",...r,"--pretty=format:","--name-only","-z"]);if(!s.ok)return{churn:n,ok:!1};for(let o of s.stdout.split("\0")){let a=o.replace(/^\n+/,"").trim();a&&n.set(a,(n.get(a)??0)+1)}return{churn:n,ok:!0}}function Cf(e,t){let n=new Set,r=pe("git",[...lt(e),"diff","-z","--name-only",t,"--"]);if(r.ok)for(let s of r.stdout.split("\0"))s&&n.add(s);for(let s of us(e))n.add(s);return n}var lt,Gi,qt=O(()=>{"use strict";E();Ae();lt=e=>["-C",e,"-c","core.quotePath=false"],Gi=e=>e.staged?["--cached"]:[e.mergeBase]});function Af(e){return typeof e=="string"?new TextEncoder().encode(e):e}function Tf(e,t){if(e.length===1)return e[0];let n=new Uint8Array(t),r=0;for(let s of e)n.set(s,r),r+=s.byteLength;return n}function Sl(e){let t=Math.floor(e.byteLength/536870912|0),n=e.byteLength<<3>>>0,r=Math.ceil((e.byteLength+9)/64),s=new Uint8Array(r*64);s.set(e),s[e.byteLength]=128;let o=new DataView(s.buffer);return o.setUint32(s.byteLength-8,t,!1),o.setUint32(s.byteLength-4,n,!1),o}function Xi(e,t){return(e<>>32-t)>>>0}function ct(e,t){return(e>>>t|e<<32-t)>>>0}function If(e){let t=Sl(e),n=1732584193,r=4023233417,s=2562383102,o=271733878,a=3285377520,l=new Uint32Array(80);for(let m=0;m>>0;h=g,g=p,p=Xi(f,30),f=u,u=k}n=n+u>>>0,r=r+f>>>0,s=s+p>>>0,o=o+g>>>0,a=a+h>>>0}let c=new Uint8Array(20),d=new DataView(c.buffer);return[n,r,s,o,a].forEach((m,u)=>d.setUint32(u*4,m,!1)),c}function Ff(e){let t=Sl(e),n=1779033703,r=3144134277,s=1013904242,o=2773480762,a=1359893119,l=2600822924,c=528734635,d=1541459225,m=new Uint32Array(64);for(let p=0;p>>3,U=ct(F,17)^ct(F,19)^F>>>10;m[v]=m[v-16]+T+m[v-7]+U>>>0}let g=n,h=r,y=s,S=o,_=a,k=l,b=c,w=d;for(let v=0;v<64;v++){let A=ct(_,6)^ct(_,11)^ct(_,25),F=_&k^~_&b,T=w+A+F+Nf[v]+m[v]>>>0,U=ct(g,2)^ct(g,13)^ct(g,22),te=g&h^g&y^h&y,V=U+te>>>0;w=b,b=k,k=_,_=S+T>>>0,S=y,y=h,h=g,g=T+V>>>0}n=n+g>>>0,r=r+h>>>0,s=s+y>>>0,o=o+S>>>0,a=a+_>>>0,l=l+k>>>0,c=c+b>>>0,d=d+w>>>0}let u=new Uint8Array(32),f=new DataView(u.buffer);return[n,r,s,o,a,l,c,d].forEach((p,g)=>f.setUint32(g*4,p,!1)),u}function Of(e){let t="";for(let n of e)t+=xl[n>>4]+xl[n&15];return t}function Pf(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function yn(e){let t=e.toLowerCase().replace("-","");if(t!=="sha1"&&t!=="sha256")throw new Error(`createHash: unsupported algorithm "${e}" in the browser build (sha1, sha256)`);let n=[],r=0,s={update(o){let a=Af(o);return n.push(a),r+=a.byteLength,s},digest(o){let a=r===0?new Uint8Array(0):Tf(n,r),l=t==="sha1"?If(a):Ff(a);return o==="hex"?Of(l):o==="base64"?Pf(l):l}};return s}var Nf,xl,ms=O(()=>{E();Nf=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);xl="0123456789abcdef"});function Ce(e){return yn("sha1").update(e).digest("hex")}function $f(e,t=8){return Ce(e).slice(0,t)}var Tt=O(()=>{"use strict";E();ms()});function re(e,t,n,r){let s=[],o=t.split(/\r?\n/);for(let a=0;a{if(!a){a=[0];for(let y=0;y>>1;a[y]<=p?g=y+1:h=y}return g},c=new Map;for(let p of n)c.has(p.name)||c.set(p.name,p);let d=jf(t),m=/export\s*\{([\s\S]*?)\}\s*(?:from\s*['"]([^'"]+)['"])?\s*;?/g,u;for(;(u=m.exec(d))&&s.length{"use strict";E();Df={".ts":"typescript",".tsx":"typescript",".mts":"typescript",".cts":"typescript",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".pyi":"python",".go":"go",".rb":"ruby",".rake":"ruby",".java":"java",".rs":"rust",".c":"c",".h":"c",".cc":"cpp",".cpp":"cpp",".cxx":"cpp",".hpp":"cpp",".cs":"csharp",".php":"php",".swift":"swift",".kt":"kotlin",".kts":"kotlin",".scala":"scala",".sc":"scala",".clj":"clojure",".ex":"elixir",".exs":"elixir",".erl":"erlang",".hs":"haskell",".dart":"dart",".lua":"lua",".sh":"shell",".bash":"shell",".zsh":"shell",".ksh":"shell",".fish":"shell",".hh":"cpp",".m":"objective-c",".mm":"objective-c",".sql":"sql",".graphql":"graphql",".gql":"graphql",".proto":"protobuf",".md":"markdown",".mdx":"markdown",".rst":"restructuredtext",".txt":"text",".json":"json",".yaml":"yaml",".yml":"yaml",".toml":"toml",".ini":"ini",".html":"html",".css":"css",".scss":"scss",".vue":"vue",".svelte":"svelte",".astro":"astro",".zig":"zig",".hcl":"hcl",".tf":"terraform",".tfvars":"terraform",".sol":"solidity"};Lf=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]);Zi=47,kl=42,El=10,Wf=34,Uf=39,Bf=96,zf=92,ps=400});function Vf(e){return(e.split("/").pop()??"").replace(/\.[^.]+$/,"")}function Jf(e,t){let n=o=>{if(!(!o||o==="default"))for(let a of t)a.name===o&&(a.exported=!0)},r=(o,a)=>{for(let l of o.split(",")){let c=l.trim().replace(/^type\s+/,"");if(!c)continue;let d=/^([\w$]+)\s+as\s+([\w$]+)$/.exec(c);if(d){d[2]!=="default"&&n(d[1]);continue}if(a){let m=/^([\w$]+)\s*:\s*([\w$]+)$/.exec(c);if(m){n(m[1]),n(m[2]);continue}}n(/^([\w$]+)/.exec(c)?.[1])}},s;for(vl.lastIndex=0;s=vl.exec(e);)s[2]||r(s[1]??"",!1);for(Rl.lastIndex=0;s=Rl.exec(e);)r(s[1]??"",!0);for(Ml.lastIndex=0;s=Ml.exec(e);)n(s[2])}var Hf,Gf,qf,vl,Rl,Ml,Cl,Al=O(()=>{"use strict";E();Re();Hf=[{re:/^\s*export\s+(?:async\s+)?function\s+(?[\w$]+)/,kind:"function",exported:!0},{re:/^\s*export\s+default\s+(?:async\s+)?function\s+(?[\w$]+)/,kind:"function",exported:!0},{re:/^\s*export\s+default\s+(?:abstract\s+)?class\s+(?!extends\b)(?[\w$]+)/,kind:"class",exported:!0},{re:/^\s*(?:async\s+)?function\s+(?[\w$]+)/,kind:"function",exported:!1},{re:/^\s*export\s+(?:abstract\s+)?class\s+(?[\w$]+)/,kind:"class",exported:!0},{re:/^\s*(?:abstract\s+)?class\s+(?[\w$]+)/,kind:"class",exported:!1},{re:/^\s*export\s+interface\s+(?[\w$]+)/,kind:"interface",exported:!0},{re:/^\s*interface\s+(?[\w$]+)/,kind:"interface",exported:!1},{re:/^\s*export\s+type\s+(?[\w$]+)/,kind:"type",exported:!0},{re:/^\s*type\s+(?[\w$]+)\s*[=<]/,kind:"type",exported:!1},{re:/^\s*export\s+enum\s+(?[\w$]+)/,kind:"enum",exported:!0},{re:/^\s*export\s+const\s+enum\s+(?[\w$]+)/,kind:"enum",exported:!0},{re:/^\s*export\s+(?:const|let|var)\s+(?[\w$]+)\s*[:=]/,kind:"const",exported:!0},{re:/^\s*exports\.(?[\w$]+)\s*=/,kind:"const",exported:!0},{re:/^\s*module\.exports\.(?[\w$]+)\s*=/,kind:"const",exported:!0},{re:/^\s*(?:const|let)\s+(?[\w$]+)\s*=\s*(?:async\s*)?\([^)]*\)\s*(?::[^=]+)?=>/,kind:"const",exported:!1},{re:/^(?:const|let|var)\s+(?[\w$]+)\s*[:=]/,kind:"const",exported:!1},{re:/^\s*export\s+default\s+(?[A-Za-z_$][\w$]*)\s*;?\s*$/,kind:"default",exported:!0}],Gf=/^\s*export\s+default\s+(?:async\s+)?(?:function|class)?\s*(?:\(|\{|extends\b)/,qf=/^\s*export\s+default\s+(?:async\s+)?(?:function|class)\s+(?!extends\b)[\w$]+/;vl=/export\s*\{([^}]*)\}\s*(from\b)?/g,Rl=/module\.exports\s*=\s*\{([^}]*)\}/g,Ml=/(^|\n)\s*export\s+default\s+([A-Za-z_$][\w$]*)\s*;?\s*(?=\n|$)/g;Cl={lang:"javascript/typescript",exts:[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"],extract(e,t){let n=e.match(/\.(ts|tsx|mts|cts)$/)?"typescript":"javascript",r=re(e,t,n,Hf),s=t.split(/\r?\n/);for(let o=0;o{"use strict";E();Re();_s=e=>!e.startsWith("_")||e.startsWith("__"),Kf=[{re:/^(?:async\s+)?def\s+(?[\w]+)\s*\(/,kind:"function",exported:e=>_s(e.groups.name)},{re:/^\s+(?:async\s+)?def\s+(?[\w]+)\s*\(/,kind:"method",exported:e=>_s(e.groups.name)},{re:/^class\s+(?[\w]+)/,kind:"class",exported:e=>_s(e.groups.name)},{re:/^\s+class\s+(?[\w]+)/,kind:"class",exported:e=>_s(e.groups.name)}],Tl={lang:"python",exts:[".py",".pyi"],extract(e,t){return re(e,t,"python",Kf)}}});var Wn,Xf,Nl,Fl=O(()=>{"use strict";E();Re();Wn=e=>/^[A-Z]/.test(e),Xf=[{re:/^func\s+\([^)]*\)\s+(?[\w]+)\s*\(/,kind:"method",exported:e=>Wn(e.groups.name)},{re:/^func\s+(?[\w]+)\s*\(/,kind:"function",exported:e=>Wn(e.groups.name)},{re:/^type\s+(?[\w]+)\s+struct\b/,kind:"struct",exported:e=>Wn(e.groups.name)},{re:/^type\s+(?[\w]+)\s+interface\b/,kind:"interface",exported:e=>Wn(e.groups.name)},{re:/^type\s+(?[\w]+)\s+/,kind:"type",exported:e=>Wn(e.groups.name)}],Nl={lang:"go",exts:[".go"],extract(e,t){return re(e,t,"go",Xf)}}});var Zf,Ol,Pl=O(()=>{"use strict";E();Re();Zf=[{re:/^\s*def\s+(?:self\.)?(?[\w?!=]+)/,kind:"method",exported:!0},{re:/^\s*class\s+(?[\w:]+)/,kind:"class",exported:!0},{re:/^\s*module\s+(?[\w:]+)/,kind:"module",exported:!0}],Ol={lang:"ruby",exts:[".rb",".rake"],extract(e,t){return re(e,t,"ruby",Zf)}}});var Yf,$l,Dl=O(()=>{"use strict";E();Re();Yf=[{re:/^\s*(?:public|protected|private)?\s*(?:abstract\s+|final\s+)?class\s+(?[\w]+)/,kind:"class",exported:(e,t)=>/\bpublic\b/.test(t)},{re:/^\s*(?:public|protected|private)?\s*interface\s+(?[\w]+)/,kind:"interface",exported:(e,t)=>/\bpublic\b/.test(t)},{re:/^\s*(?:public|protected|private)?\s*enum\s+(?[\w]+)/,kind:"enum",exported:(e,t)=>/\bpublic\b/.test(t)},{re:/^\s*(?:public|protected|private)\s+(?:static\s+|final\s+|abstract\s+|synchronized\s+)*[\w<>\[\],.?\s]+\s+(?[\w]+)\s*\(/,kind:"method",exported:(e,t)=>/\bpublic\b/.test(t)}],$l={lang:"java",exts:[".java"],extract(e,t){return re(e,t,"java",Yf)}}});var Un,Qf,Ll,jl=O(()=>{"use strict";E();Re();Un=(e,t)=>/^\s*pub\b/.test(t),Qf=[{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?(?:async\s+)?(?:unsafe\s+)?fn\s+(?[\w]+)/,kind:"function",exported:Un},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?struct\s+(?[\w]+)/,kind:"struct",exported:Un},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?enum\s+(?[\w]+)/,kind:"enum",exported:Un},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?trait\s+(?[\w]+)/,kind:"trait",exported:Un},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?type\s+(?[\w]+)/,kind:"type",exported:Un}],Ll={lang:"rust",exts:[".rs"],extract(e,t){return re(e,t,"rust",Qf)}}});var Bn,em,Wl,Ul=O(()=>{"use strict";E();Re();Bn=(e,t)=>/\b(public|internal)\b/.test(t),em=[{re:/^\s*(?:public|internal|protected|private)?\s*(?:static\s+|sealed\s+|abstract\s+|partial\s+)*(?:class|record)\s+(?\w+)/,kind:"class",exported:Bn},{re:/^\s*(?:public|internal|protected|private)?\s*(?:partial\s+)?interface\s+(?\w+)/,kind:"interface",exported:Bn},{re:/^\s*(?:public|internal|protected|private)?\s*(?:readonly\s+)?(?:ref\s+)?struct\s+(?\w+)/,kind:"struct",exported:Bn},{re:/^\s*(?:public|internal|protected|private)?\s*enum\s+(?\w+)/,kind:"enum",exported:Bn},{re:/^\s*(?:public|internal|protected|private)\s+(?:static\s+|virtual\s+|override\s+|async\s+|sealed\s+|abstract\s+|new\s+)*[\w<>\[\],.?]+\s+(?\w+)\s*(?:<[^>]*>)?\s*\(/,kind:"method",exported:Bn}],Wl={lang:"csharp",exts:[".cs"],extract(e,t){return re(e,t,"csharp",em)}}});var tm,Bl,zl=O(()=>{"use strict";E();Re();tm=[{re:/^\s*(?:abstract\s+|final\s+)*class\s+(?\w+)/,kind:"class",exported:!0},{re:/^\s*interface\s+(?\w+)/,kind:"interface",exported:!0},{re:/^\s*trait\s+(?\w+)/,kind:"trait",exported:!0},{re:/^\s*enum\s+(?\w+)/,kind:"enum",exported:!0},{re:/^\s*(?:public\s+|protected\s+|private\s+|static\s+|abstract\s+|final\s+)*function\s+(?\w+)\s*\(/,kind:"function",exported:(e,t)=>!/\b(private|protected)\b/.test(t)}],Bl={lang:"php",exts:[".php"],extract(e,t){return re(e,t,"php",tm)}}});var zn,hs,nm,Hl,Gl=O(()=>{"use strict";E();Re();zn=(e,t)=>!/\b(private|fileprivate)\b/.test(t),hs="(?:public\\s+|open\\s+|internal\\s+|private\\s+|fileprivate\\s+)?(?:final\\s+)?",nm=[{re:new RegExp(`^\\s*${hs}class\\s+(?\\w+)`),kind:"class",exported:zn},{re:new RegExp(`^\\s*${hs}struct\\s+(?\\w+)`),kind:"struct",exported:zn},{re:new RegExp(`^\\s*${hs}enum\\s+(?\\w+)`),kind:"enum",exported:zn},{re:new RegExp(`^\\s*${hs}protocol\\s+(?\\w+)`),kind:"protocol",exported:zn},{re:/^\s*(?:public\s+|open\s+|internal\s+|private\s+|fileprivate\s+)?(?:static\s+|class\s+|final\s+|override\s+|mutating\s+|@\w+\s+)*func\s+(?\w+)/,kind:"function",exported:zn}],Hl={lang:"swift",exts:[".swift"],extract(e,t){return re(e,t,"swift",nm)}}});var ys,rm,ql,Vl=O(()=>{"use strict";E();Re();ys=(e,t)=>!/\b(private|internal)\b/.test(t),rm=[{re:/^\s*(?:public\s+|internal\s+|private\s+|abstract\s+|sealed\s+|open\s+|final\s+|data\s+)*class\s+(?\w+)/,kind:"class",exported:ys},{re:/^\s*(?:public\s+|internal\s+|private\s+|fun\s+)?interface\s+(?\w+)/,kind:"interface",exported:ys},{re:/^\s*(?:public\s+|internal\s+|private\s+|companion\s+)?object\s+(?\w+)/,kind:"object",exported:ys},{re:/^\s*(?:public\s+|internal\s+|private\s+|protected\s+|override\s+|open\s+|abstract\s+|suspend\s+|inline\s+|operator\s+)*fun\s+(?:<[^>]*>\s+)?(?\w+)\s*\(/,kind:"function",exported:ys}],ql={lang:"kotlin",exts:[".kt",".kts"],extract(e,t){return re(e,t,"kotlin",rm)}}});var sm,im,Jl,Kl=O(()=>{"use strict";E();Re();sm="(?!\\s*(?:if|for|while|switch|return|else|do|sizeof|typedef)\\b)",im=[{re:/^\s*(?:class|struct)\s+(?[A-Za-z_]\w+)\s*(?:[:{]|$)/,kind:"class",exported:!0},{re:/^\s*namespace\s+(?[A-Za-z_]\w+)/,kind:"namespace",exported:!0},{re:/^\s*(?:typedef\s+)?(?:struct|enum|union)\s+(?[A-Za-z_]\w+)\s*\{/,kind:"struct",exported:!0},{re:new RegExp(`^${sm}[A-Za-z_][\\w\\s\\*&<>:,]*?\\b(?[A-Za-z_]\\w+)\\s*\\([^;{]*\\)\\s*(?:const)?\\s*\\{?\\s*$`),kind:"function",exported:!0}],Jl={lang:"c/cpp",exts:[".c",".h",".cc",".cpp",".cxx",".hpp",".hh"],extract(e,t){return re(e,t,e.match(/\.(c|h)$/)?"c":"cpp",im)}}});var om,Xl,Zl=O(()=>{"use strict";E();Re();om=[{re:/^\s*local\s+function\s+(?[\w.:]+)\s*\(/,kind:"function",exported:!1},{re:/^\s*function\s+(?[\w.:]+)\s*\(/,kind:"function",exported:!0},{re:/^\s*(?:local\s+)?(?[\w.]+)\s*=\s*function\s*\(/,kind:"function",exported:!0}],Xl={lang:"lua",exts:[".lua"],extract(e,t){return re(e,t,"lua",om)}}});var am,Yl,Ql=O(()=>{"use strict";E();Re();am=[{re:/^\s*function\s+(?[\w:-]+)\s*(?:\(\))?\s*\{?/,kind:"function",exported:!0},{re:/^\s*(?[A-Za-z_][\w:-]*)\s*\(\)\s*\{?/,kind:"function",exported:!0}],Yl={lang:"shell",exts:[".sh",".bash",".zsh",".ksh"],extract(e,t){return re(e,t,"shell",am)}}});var lm,ec,tc=O(()=>{"use strict";E();Re();lm=[{re:/^\s*defmodule\s+(?[\w.]+)/,kind:"module",exported:!0},{re:/^\s*defp\s+(?[\w?!]+)/,kind:"function",exported:!1},{re:/^\s*def\s+(?[\w?!]+)/,kind:"function",exported:!0},{re:/^\s*defmacrop?\s+(?[\w?!]+)/,kind:"macro",exported:!0}],ec={lang:"elixir",exts:[".ex",".exs"],extract(e,t){return re(e,t,"elixir",lm)}}});var cm,nc,rc=O(()=>{"use strict";E();Re();cm=[{re:/^\s*(?:final\s+|sealed\s+|abstract\s+|implicit\s+)*(?:case\s+)?class\s+(?\w+)/,kind:"class",exported:!0},{re:/^\s*(?:sealed\s+)?trait\s+(?\w+)/,kind:"trait",exported:!0},{re:/^\s*(?:case\s+)?object\s+(?\w+)/,kind:"object",exported:!0},{re:/^\s*(?:override\s+|final\s+|private\s+|protected\s+|implicit\s+)*def\s+(?\w+)/,kind:"def",exported:(e,t)=>!/\b(private|protected)\b/.test(t)}],nc={lang:"scala",exts:[".scala",".sc"],extract(e,t){return re(e,t,"scala",cm)}}});var It,dm,sc,ic=O(()=>{"use strict";E();Re();It=e=>!(e.groups?.name??"").startsWith("_"),dm=[{re:/^\s*(?:abstract\s+|base\s+|final\s+|sealed\s+|interface\s+)*class\s+(?\w+)/,kind:"class",exported:It},{re:/^\s*mixin\s+(?\w+)/,kind:"mixin",exported:It},{re:/^\s*extension\s+(?\w+)/,kind:"extension",exported:It},{re:/^\s*enum\s+(?\w+)/,kind:"enum",exported:It},{re:/^\s*typedef\s+(?\w+)/,kind:"type",exported:It},{re:/^\s*(?:@\w+\s+)*(?:static\s+|final\s+|const\s+|external\s+|abstract\s+)*(?:[\w<>,?\[\]. ]+\s+)?(?\w+)\s*\([^)]*\)\s*(?:async\s*\*?\s*)?(?:=>|\{|;)/,kind:"function",exported:It},{re:/^\s*(?:static\s+)?[\w<>,?\[\]. ]+\s+get\s+(?\w+)/,kind:"getter",exported:It},{re:/^\s*(?:static\s+)?set\s+(?\w+)\s*\(/,kind:"setter",exported:It}],sc={lang:"dart",exts:[".dart"],extract(e,t){return re(e,t,"dart",dm)}}});function Qi(e,t,n){let r=Yi.get(t),s;if(!r)s=[];else try{s=r.extract(e,n)}catch{s=[]}let o=new Set(s.map(l=>l.name)),a=gs(e,n,s).filter(l=>!o.has(l.name));return a.length?[...s,...a]:s}function eo(e){return Yi.get(e)?.lang??Vt(e)}var um,Yi,bn=O(()=>{"use strict";E();Re();Al();Il();Fl();Pl();Dl();jl();Ul();zl();Gl();Vl();Kl();Zl();Ql();tc();rc();ic();um=[Cl,Tl,Nl,Ol,$l,Ll,Wl,Bl,Hl,ql,Jl,Xl,Yl,ec,nc,sc],Yi=new Map;for(let e of um)for(let t of e.exts)Yi.set(t,e)});function oc(e,t){let n=e.split("/").pop().toLowerCase();return mm.has(t)||fm.test(n)||pm.test(e)}function hm(e,t){let n=e.split("/").pop().toLowerCase();return gm.has(n)||_m.has(t)}function ac(e){return!ym.has(eo(e))}function Hn(e,t){return ac(t)?"code":oc(e,t)?"doc":hm(e,t)?"config":"other"}var fm,mm,pm,gm,_m,to,ym,bs=O(()=>{"use strict";E();bn();fm=/^(readme|changelog|contributing|history|news|authors|notice|security|code_of_conduct|faq|getting[-_]?started|usage|guide|tutorial)\b/i,mm=new Set([".md",".mdx",".rst",".adoc",".txt"]),pm=/^(docs?|documentation|wiki|guides?|website|site|book)\//i,gm=new Set(["package.json","pnpm-workspace.yaml","tsconfig.json","jsconfig.json","pyproject.toml","setup.py","setup.cfg","requirements.txt","pipfile","go.mod","cargo.toml","gemfile","pom.xml","build.gradle","build.gradle.kts","composer.json","mix.exs","pubspec.yaml","build.sbt","dockerfile","docker-compose.yml","docker-compose.yaml","makefile",".env.example","manifest.json"]),_m=new Set([".json",".yaml",".yml",".toml",".ini",".cfg"]),to=new Set([".md",".mdx"]);ym=new Set(["markdown","restructuredtext","text","json","yaml","toml","ini","other","html","css","scss"])});function bm(e){let t="";for(let n=0;nt.some(r=>r.test(n))}function lc(e){if(!e||e.length===0)return null;let t=bt(e.filter(r=>!r.startsWith("!"))),n=bt(e.filter(r=>r.startsWith("!")).map(r=>r.slice(1)));return r=>(!t||t(r))&&!n?.(r)}var Gn=O(()=>{"use strict";E();Ae()});function M(e,t){return et?1:0}function no(e){return(t,n)=>M(e(t),e(n))}var Y=O(()=>{"use strict";E()});function wm(e){let t=e.split(/\r?\n/),n=[],r=null;for(let s of t){let o=/^\s*(```+|~~~+)/.exec(s);if(r){o&&s.trim().startsWith(r[0][0].repeat(3).slice(0,3))&&(r=null),n.push("");continue}if(o){r=o[1],n.push("");continue}n.push(s)}return n.join(` -`)}function xm(e){return!e||e.startsWith("#")||e.startsWith("//")?!0:/^[a-z][a-z0-9+.-]*:/i.test(e)}function cc(e){return e.replace(/!\[[^\]]*\]\([^)]*\)/g,"").replace(/`([^`]*)`/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/[#>*_~-]+/g," ").replace(/\s+/g," ").trim()}function Sm(e){return/[A-Za-zÀ-ɏ]{3,}/.test(e)}function km(e){return/^(all notable changes to this project|in the interest of fostering|this project adheres to|we as members and leaders|table of contents)\b/i.test(e)}function ro(e){let t=e,n,r=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(t);if(r){let y=/(^|\n)title:\s*["']?(.+?)["']?\s*(\n|$)/i.exec(r[1]);y&&(n=y[2].trim()),t=t.slice(r[0].length)}let s=wm(t),o=s.split(/\r?\n/),a=[],l=n,c,d=!1;for(let y of o){let S=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(y);if(S){let _=cc(S[2]);a.push(_),!l&&S[1].length===1&&(l=_),!c&&S[1].length>=2&&(d=!0);continue}if(!c&&!d){let _=y.trim();if(_&&!/^([-*+]|\d+\.)\s/.test(_)&&!_.startsWith("|")&&!_.startsWith("<")){let k=cc(_);k.length>=8&&Sm(k)&&!k.endsWith(":")&&!km(k)&&(c=k.slice(0,200))}}}let m=[],u=new Set,f=y=>{let S=y.trim();S=S.replace(/\s+["'(].*$/,"").trim(),S=S.replace(/^<|>$/g,""),!xm(S)&&(u.has(S)||(u.add(S),m.push({kind:"doc-link",spec:S})))},p=/!?\[[^\]]*\]\(([^)]+)\)/g,g;for(;g=p.exec(s);)f(g[1]);let h=/^\s*\[[^\]]+\]:\s+(\S+)/gm;for(;g=h.exec(s);)f(g[1]);return{title:l,summary:c,headings:a,refs:m}}var so=O(()=>{"use strict";E()});function Cm(e){return e.lengthdc?!1:Mm.test(e)}function Am(e){let t=e.trim();return!t||t.length>dc||Rm.has(t)?!1:Number.isFinite(Number(t))}function Tm(e){let t=e,n=/^(?:[rRbBuUfF]{1,2}|@|\$)?(?:#*)?(['"`])/.exec(t);if(n){let r=n[1],s=t.indexOf(r),o=t.lastIndexOf(r);o>s&&(t=t.slice(s+1,o))}return t}var dc,Em,vm,Rm,Mm,Nt,ws=O(()=>{"use strict";E();Y();dc=80,Em=2,vm=256,Rm=new Set(["0","1","-1","2","-2"]),Mm=/[\p{L}\p{N}]/u;Nt=class{seen=new Set;out=[];get full(){return this.out.length>=vm}add(t,n,r){if(this.full||t==="string"&&!Cm(n)||t==="number"&&!Am(n)||t==="regex"&&!n)return;let s=`${t}\0${n}\0${r}`;this.seen.has(s)||(this.seen.add(s),this.out.push({value:n,line:r,kind:t}))}addString(t,n){this.add("string",Tm(t),n)}result(){if(this.out.length)return this.out.sort((t,n)=>M(t.value,n.value)||t.line-n.line||M(t.kind,n.kind))}}});function uc(){return"/home"}function xs(){return typeof navigator<"u"&&navigator?.hardwareConcurrency?navigator.hardwareConcurrency:1}function fc(){return Array.from({length:xs()},()=>({model:"browser",speed:0,times:{user:0,nice:0,sys:0,idle:0,irq:0}}))}var io=O(()=>{E()});function Ss(e){let t=typeof e=="string"?e:e.href;try{return decodeURIComponent(new URL(t).pathname)}catch{return t}}function qn(e){return new URL(`file://${e.startsWith("/")?"":"/"}${e}`)}var ks=O(()=>{E()});var oo={};Di(oo,{createRequire:()=>Nm,default:()=>Fm});var Nm,Fm,ao=O(()=>{E();Nm=()=>{throw new Error("node-only API in the browser build")},Fm={}});function wn(e){if(e!==Ft)throw new Error("Illegal constructor")}function Jn(e){return!!e&&typeof e.row=="number"&&typeof e.column=="number"}function gc(e){x=e}function po(e,t,n,r){let s=n-t,o=e.textCallback(t,r);if(o){for(t+=o.length;t0)t+=a.length,o+=a;else break}t>n&&(o=o.slice(0,s))}return o??""}function mo(e,t,n,r,s){for(let o=0,a=s.length;o>>0,column:x.getValue(e+W,"i32")>>>0}}function hc(e,t){Ve(e,t.startPosition),e+=dt,Ve(e,t.endPosition),e+=dt,x.setValue(e,t.startIndex,"i32"),e+=W,x.setValue(e,t.endIndex,"i32"),e+=W}function Es(e){let t={};return t.startPosition=Jt(e),e+=dt,t.endPosition=Jt(e),e+=dt,t.startIndex=x.getValue(e,"i32")>>>0,e+=W,t.endIndex=x.getValue(e,"i32")>>>0,t}function yc(e,t=L){Ve(t,e.startPosition),t+=dt,Ve(t,e.oldEndPosition),t+=dt,Ve(t,e.newEndPosition),t+=dt,x.setValue(t,e.startIndex,"i32"),t+=W,x.setValue(t,e.oldEndIndex,"i32"),t+=W,x.setValue(t,e.newEndIndex,"i32"),t+=W}function bc(e){let t=x.getValue(e,"i32"),n=x.getValue(e+=W,"i32"),r=x.getValue(e+=W,"i32");return{major_version:t,minor_version:n,patch_version:r}}async function xc(moduleArg={}){var moduleRtn,Module=moduleArg,ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope<"u",ENVIRONMENT_IS_NODE=typeof R=="object"&&R.versions?.node&&R.type!="renderer";if(ENVIRONMENT_IS_NODE){let{createRequire:e}=await Promise.resolve().then(()=>(ao(),oo));var require=e(import.meta.url)}Module.currentQueryProgressCallback=null,Module.currentProgressCallback=null,Module.currentLogCallback=null,Module.currentParseCallback=null;var arguments_=[],thisProgram="./this.program",quit_=C((e,t)=>{throw t},"quit_"),_scriptName=import.meta.url,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}C(locateFile,"locateFile");var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");_scriptName.startsWith("file:")&&(scriptDirectory=require("path").dirname(require("url").fileURLToPath(_scriptName))+"/"),readBinary=C(e=>{e=isFileURI(e)?new URL(e):e;var t=fs.readFileSync(e);return t},"readBinary"),readAsync=C(async(e,t=!0)=>{e=isFileURI(e)?new URL(e):e;var n=fs.readFileSync(e,t?void 0:"utf8");return n},"readAsync"),R.argv.length>1&&(thisProgram=R.argv[1].replace(/\\/g,"/")),arguments_=R.argv.slice(2),quit_=C((e,t)=>{throw R.exitCode=e,t},"quit_")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}ENVIRONMENT_IS_WORKER&&(readBinary=C(e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)},"readBinary")),readAsync=C(async e=>{if(isFileURI(e))return new Promise((n,r)=>{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=()=>{if(s.status==200||s.status==0&&s.response){n(s.response);return}r(s.status)},s.onerror=r,s.send(null)});var t=await fetch(e,{credentials:"same-origin"});if(t.ok)return t.arrayBuffer();throw new Error(t.status+" : "+t.url)},"readAsync")}var out=console.log.bind(console),err=console.error.bind(console),dynamicLibraries=[],wasmBinary,ABORT=!1,EXITSTATUS,isFileURI=C(e=>e.startsWith("file://"),"isFileURI"),readyPromiseResolve,readyPromiseReject,wasmMemory,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,HEAP64,HEAPU64,HEAP_DATA_VIEW,runtimeInitialized=!1;function updateMemoryViews(){var e=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e),Module.HEAP64=HEAP64=new BigInt64Array(e),Module.HEAPU64=HEAPU64=new BigUint64Array(e),Module.HEAP_DATA_VIEW=HEAP_DATA_VIEW=new DataView(e),LE_HEAP_UPDATE()}C(updateMemoryViews,"updateMemoryViews");function initMemory(){if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else{var e=Module.INITIAL_MEMORY||33554432;wasmMemory=new WebAssembly.Memory({initial:e/65536,maximum:32768})}updateMemoryViews()}C(initMemory,"initMemory");var __RELOC_FUNCS__=[];function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(onPreRuns)}C(preRun,"preRun");function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),wasmExports.__wasm_call_ctors(),callRuntimeCallbacks(onPostCtors)}C(initRuntime,"initRuntime");function preMain(){}C(preMain,"preMain");function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}C(postRun,"postRun");function abort(e){Module.onAbort?.(e),e="Aborted("+e+")",err(e),ABORT=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw readyPromiseReject?.(t),t}C(abort,"abort");var wasmBinaryFile;function findWasmBinary(){return Module.locateFile?locateFile("web-tree-sitter.wasm"):new URL("web-tree-sitter.wasm",import.meta.url).href}C(findWasmBinary,"findWasmBinary");function getBinarySync(e){if(e==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(e);throw"both async and sync fetching of the wasm failed"}C(getBinarySync,"getBinarySync");async function getWasmBinary(e){if(!wasmBinary)try{var t=await readAsync(e);return new Uint8Array(t)}catch{}return getBinarySync(e)}C(getWasmBinary,"getWasmBinary");async function instantiateArrayBuffer(e,t){try{var n=await getWasmBinary(e),r=await WebAssembly.instantiate(n,t);return r}catch(s){err(`failed to asynchronously prepare wasm: ${s}`),abort(s)}}C(instantiateArrayBuffer,"instantiateArrayBuffer");async function instantiateAsync(e,t,n){if(!e&&!isFileURI(t)&&!ENVIRONMENT_IS_NODE)try{var r=fetch(t,{credentials:"same-origin"}),s=await WebAssembly.instantiateStreaming(r,n);return s}catch(o){err(`wasm streaming compile failed: ${o}`),err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(t,n)}C(instantiateAsync,"instantiateAsync");function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}C(getWasmImports,"getWasmImports");async function createWasm(){function e(o,a){wasmExports=o.exports,wasmExports=relocateExports(wasmExports,1024);var l=getDylinkMetadata(a);return l.neededDynlibs&&(dynamicLibraries=l.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(wasmExports,"main"),LDSO.init(),loadDylibs(),__RELOC_FUNCS__.push(wasmExports.__wasm_apply_data_relocs),assignWasmExports(wasmExports),wasmExports}C(e,"receiveInstance");function t(o){return e(o.instance,o.module)}C(t,"receiveInstantiationResult");var n=getWasmImports();if(Module.instantiateWasm)return new Promise((o,a)=>{Module.instantiateWasm(n,(l,c)=>{o(e(l,c))})});wasmBinaryFile??=findWasmBinary();var r=await instantiateAsync(wasmBinary,wasmBinaryFile,n),s=t(r);return s}C(createWasm,"createWasm");class ExitStatus{static{C(this,"ExitStatus")}name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`,this.status=t}}var GOT={},currentModuleWeakSymbols=new Set([]),GOTHandler={get(e,t){var n=GOT[t];return n||(n=GOT[t]=new WebAssembly.Global({value:"i32",mutable:!0})),currentModuleWeakSymbols.has(t)||(n.required=!0),n}},LE_ATOMICS_NATIVE_BYTE_ORDER=[],LE_HEAP_LOAD_F32=C(e=>HEAP_DATA_VIEW.getFloat32(e,!0),"LE_HEAP_LOAD_F32"),LE_HEAP_LOAD_F64=C(e=>HEAP_DATA_VIEW.getFloat64(e,!0),"LE_HEAP_LOAD_F64"),LE_HEAP_LOAD_I16=C(e=>HEAP_DATA_VIEW.getInt16(e,!0),"LE_HEAP_LOAD_I16"),LE_HEAP_LOAD_I32=C(e=>HEAP_DATA_VIEW.getInt32(e,!0),"LE_HEAP_LOAD_I32"),LE_HEAP_LOAD_I64=C(e=>HEAP_DATA_VIEW.getBigInt64(e,!0),"LE_HEAP_LOAD_I64"),LE_HEAP_LOAD_U32=C(e=>HEAP_DATA_VIEW.getUint32(e,!0),"LE_HEAP_LOAD_U32"),LE_HEAP_STORE_F32=C((e,t)=>HEAP_DATA_VIEW.setFloat32(e,t,!0),"LE_HEAP_STORE_F32"),LE_HEAP_STORE_F64=C((e,t)=>HEAP_DATA_VIEW.setFloat64(e,t,!0),"LE_HEAP_STORE_F64"),LE_HEAP_STORE_I16=C((e,t)=>HEAP_DATA_VIEW.setInt16(e,t,!0),"LE_HEAP_STORE_I16"),LE_HEAP_STORE_I32=C((e,t)=>HEAP_DATA_VIEW.setInt32(e,t,!0),"LE_HEAP_STORE_I32"),LE_HEAP_STORE_I64=C((e,t)=>HEAP_DATA_VIEW.setBigInt64(e,t,!0),"LE_HEAP_STORE_I64"),LE_HEAP_STORE_U32=C((e,t)=>HEAP_DATA_VIEW.setUint32(e,t,!0),"LE_HEAP_STORE_U32"),callRuntimeCallbacks=C(e=>{for(;e.length>0;)e.shift()(Module)},"callRuntimeCallbacks"),onPostRuns=[],addOnPostRun=C(e=>onPostRuns.push(e),"addOnPostRun"),onPreRuns=[],addOnPreRun=C(e=>onPreRuns.push(e),"addOnPreRun"),UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder:void 0,findStringEnd=C((e,t,n,r)=>{var s=t+n;if(r)return s;for(;e[t]&&!(t>=s);)++t;return t},"findStringEnd"),UTF8ArrayToString=C((e,t=0,n,r)=>{var s=findStringEnd(e,t,n,r);if(s-t>16&&e.buffer&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,s));for(var o="";t>10,56320|d&1023)}}return o},"UTF8ArrayToString"),getDylinkMetadata=C(e=>{var t=0,n=0;function r(){return e[t++]}C(r,"getU8");function s(){for(var V=0,z=1;;){var P=e[t++];if(V+=(P&127)*z,z*=128,!(P&128))break}return V}C(s,"getLEB");function o(){var V=s();return t+=V,UTF8ArrayToString(e,t-V,V)}C(o,"getString");function a(){for(var V=s(),z=[];V--;)z.push(o());return z}C(a,"getStringList");function l(V,z){if(V)throw new Error(z)}if(C(l,"failIf"),e instanceof WebAssembly.Module){var c=WebAssembly.Module.customSections(e,"dylink.0");l(c.length===0,"need dylink section"),e=new Uint8Array(c[0]),n=e.length}else{var d=new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer),m=d[0]==1836278016||d[0]==6386541;l(!m,"need to see wasm magic number"),l(e[8]!==0,"need the dylink section to be first"),t=9;var u=s();n=t+u;var f=o();l(f!=="dylink.0")}for(var p={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]},g=1,h=2,y=3,S=4,_=5,k=256,b=3,w=1;t>1)*2);case"i32":return LE_HEAP_LOAD_I32((e>>2)*4);case"i64":return LE_HEAP_LOAD_I64((e>>3)*8);case"float":return LE_HEAP_LOAD_F32((e>>2)*4);case"double":return LE_HEAP_LOAD_F64((e>>3)*8);case"*":return LE_HEAP_LOAD_U32((e>>2)*4);default:abort(`invalid type for getValue: ${t}`)}}C(getValue,"getValue");var newDSO=C((e,t,n)=>{var r={refcount:1/0,name:e,exports:n,global:!0};return LDSO.loadedLibsByName[e]=r,t!=null&&(LDSO.loadedLibsByHandle[t]=r),r},"newDSO"),LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}},___heap_base=78240,alignMemory=C((e,t)=>Math.ceil(e/t)*t,"alignMemory"),getMemory=C(e=>{if(runtimeInitialized)return _calloc(e,1);var t=___heap_base,n=t+alignMemory(e,16);return ___heap_base=n,GOT.__heap_base.value=n,t},"getMemory"),isInternalSym=C(e=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(e)||e.startsWith("__em_js__"),"isInternalSym"),uleb128EncodeWithLen=C(e=>{let t=e.length;return[t%128|128,t>>7,...e]},"uleb128EncodeWithLen"),wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111},generateTypePack=C(e=>uleb128EncodeWithLen(Array.from(e,t=>{var n=wasmTypeCodes[t];return n})),"generateTypePack"),convertJsFunctionToWasm=C((e,t)=>{var n=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(t.slice(1)),...generateTypePack(t[0]==="v"?"":t[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),r=new WebAssembly.Module(n),s=new WebAssembly.Instance(r,{e:{f:e}}),o=s.exports.f;return o},"convertJsFunctionToWasm"),wasmTableMirror=[],wasmTable=new WebAssembly.Table({initial:31,element:"anyfunc"}),getWasmTableEntry=C(e=>{var t=wasmTableMirror[e];return t||(wasmTableMirror[e]=t=wasmTable.get(e)),t},"getWasmTableEntry"),updateTableMap=C((e,t)=>{if(functionsInTableMap)for(var n=e;n(functionsInTableMap||(functionsInTableMap=new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(e)||0),"getFunctionAddress"),freeTableIndexes=[],getEmptyTableSlot=C(()=>freeTableIndexes.length?freeTableIndexes.pop():wasmTable.grow(1),"getEmptyTableSlot"),setWasmTableEntry=C((e,t)=>{wasmTable.set(e,t),wasmTableMirror[e]=wasmTable.get(e)},"setWasmTableEntry"),addFunction=C((e,t)=>{var n=getFunctionAddress(e);if(n)return n;var r=getEmptyTableSlot();try{setWasmTableEntry(r,e)}catch(o){if(!(o instanceof TypeError))throw o;var s=convertJsFunctionToWasm(e,t);setWasmTableEntry(r,s)}return functionsInTableMap.set(e,r),r},"addFunction"),updateGOT=C((e,t)=>{for(var n in e)if(!isInternalSym(n)){var r=e[n];GOT[n]||=new WebAssembly.Global({value:"i32",mutable:!0}),(t||GOT[n].value==0)&&(typeof r=="function"?GOT[n].value=addFunction(r):typeof r=="number"?GOT[n].value=r:err(`unhandled export type for '${n}': ${typeof r}`))}},"updateGOT"),relocateExports=C((e,t,n)=>{var r={};for(var s in e){var o=e[s];typeof o=="object"&&(o=o.value),typeof o=="number"&&(o+=t),r[s]=o}return updateGOT(r,n),r},"relocateExports"),isSymbolDefined=C(e=>{var t=wasmImports[e];return!(!t||t.stub)},"isSymbolDefined"),dynCall=C((e,t,n=[],r=!1)=>{var s=getWasmTableEntry(t),o=s(...n);function a(l){return l}return C(a,"convert"),o},"dynCall"),stackSave=C(()=>_emscripten_stack_get_current(),"stackSave"),stackRestore=C(e=>__emscripten_stack_restore(e),"stackRestore"),createInvokeFunction=C(e=>(t,...n)=>{var r=stackSave();try{return dynCall(e,t,n)}catch(s){if(stackRestore(r),s!==s+0)throw s;if(_setThrew(1,0),e[0]=="j")return 0n}},"createInvokeFunction"),resolveGlobalSymbol=C((e,t=!1)=>{var n;return isSymbolDefined(e)?n=wasmImports[e]:e.startsWith("invoke_")&&(n=wasmImports[e]=createInvokeFunction(e.split("_")[1])),{sym:n,name:e}},"resolveGlobalSymbol"),onPostCtors=[],addOnPostCtor=C(e=>onPostCtors.push(e),"addOnPostCtor"),UTF8ToString=C((e,t,n)=>e?UTF8ArrayToString(HEAPU8,e,t,n):"","UTF8ToString"),loadWebAssemblyModule=C((binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign),memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(HEAP8[handle+8]=1,LE_HEAP_STORE_U32((handle+12>>2)*4,memoryBase),LE_HEAP_STORE_I32((handle+16>>2)*4,metadata.memorySize),LE_HEAP_STORE_U32((handle+20>>2)*4,tableBase),LE_HEAP_STORE_I32((handle+24>>2)*4,metadata.tableSize)),metadata.tableSize&&wasmTable.grow(metadata.tableSize);var moduleExports;function resolveSymbol(e){var t=resolveGlobalSymbol(e).sym;return!t&&localScope&&(t=localScope[e]),t||(t=moduleExports[e]),t}C(resolveSymbol,"resolveSymbol");var proxyHandler={get(e,t){switch(t){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(t in wasmImports&&!wasmImports[t].stub){var n=wasmImports[t];return n}if(!(t in e)){var r;e[t]=(...s)=>(r||=resolveSymbol(t),r(...s))}return e[t]}},proxy=new Proxy({},proxyHandler);currentModuleWeakSymbols=metadata.weakImports;var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols();function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf("$"+arity)!=-1;arity++)args.push("$"+arity);args=args.join(",");var func=`(${args}) => { ${body} };`;ASM_CONSTS[start]=eval(func)}if(C(addEmAsm,"addEmAsm"),"__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start ${body};`;moduleExports[name]=eval(func)}C(addEmJs,"addEmJs");for(var name in moduleExports)if(name.startsWith("__em_js__")){var start=moduleExports[name],jsString=UTF8ToString(start),parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]),delete moduleExports[name]}var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;return init&&(runtimeInitialized?init():addOnPostCtor(init)),moduleExports}if(C(postInstantiation,"postInstantiation"),flags.loadAsync)return(async()=>{var e;return binary instanceof WebAssembly.Module?e=new WebAssembly.Instance(binary,info):{module:binary,instance:e}=await WebAssembly.instantiate(binary,info),postInstantiation(binary,e)})();var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}return C(loadModule,"loadModule"),flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}},flags.loadAsync?metadata.neededDynlibs.reduce((e,t)=>e.then(()=>loadDynamicLibrary(t,flags,localScope)),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach(e=>loadDynamicLibrary(e,flags,localScope)),loadModule())},"loadWebAssemblyModule"),mergeLibSymbols=C((e,t)=>{for(var[n,r]of Object.entries(e)){let s=C(a=>{isSymbolDefined(a)||(wasmImports[a]=r)},"setImport");s(n);let o="__main_argc_argv";n=="main"&&s(o),n==o&&s("main")}},"mergeLibSymbols"),asyncLoad=C(async e=>{var t=await readAsync(e);return new Uint8Array(t)},"asyncLoad");function loadDynamicLibrary(e,t={global:!0,nodelete:!0},n,r){var s=LDSO.loadedLibsByName[e];if(s)return t.global?s.global||(s.global=!0,mergeLibSymbols(s.exports,e)):n&&Object.assign(n,s.exports),t.nodelete&&s.refcount!==1/0&&(s.refcount=1/0),s.refcount++,r&&(LDSO.loadedLibsByHandle[r]=s),t.loadAsync?Promise.resolve(!0):!0;s=newDSO(e,r,"loading"),s.refcount=t.nodelete?1/0:1,s.global=t.global;function o(){if(r){var c=LE_HEAP_LOAD_U32((r+28>>2)*4),d=LE_HEAP_LOAD_U32((r+32>>2)*4);if(c&&d){var m=HEAP8.slice(c,c+d);return t.loadAsync?Promise.resolve(m):m}}var u=locateFile(e);if(t.loadAsync)return asyncLoad(u);if(!readBinary)throw new Error(`${u}: file not found, and synchronous loading of external files is not available`);return readBinary(u)}C(o,"loadLibData");function a(){return t.loadAsync?o().then(c=>loadWebAssemblyModule(c,t,e,n,r)):loadWebAssemblyModule(o(),t,e,n,r)}C(a,"getExports");function l(c){s.global?mergeLibSymbols(c,e):n&&Object.assign(n,c),s.exports=c}return C(l,"moduleLoaded"),t.loadAsync?a().then(c=>(l(c),!0)):(l(a()),!0)}C(loadDynamicLibrary,"loadDynamicLibrary");var reportUndefinedSymbols=C(()=>{for(var[e,t]of Object.entries(GOT))if(t.value==0){var n=resolveGlobalSymbol(e,!0).sym;if(!n&&!t.required)continue;if(typeof n=="function")t.value=addFunction(n,n.sig);else if(typeof n=="number")t.value=n;else throw new Error(`bad export type for '${e}': ${typeof n}`)}},"reportUndefinedSymbols"),runDependencies=0,dependenciesFulfilled=null,removeRunDependency=C(e=>{if(runDependencies--,Module.monitorRunDependencies?.(runDependencies),runDependencies==0&&dependenciesFulfilled){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}},"removeRunDependency"),addRunDependency=C(e=>{runDependencies++,Module.monitorRunDependencies?.(runDependencies)},"addRunDependency"),loadDylibs=C(async()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");for(var e of dynamicLibraries)await loadDynamicLibrary(e,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});reportUndefinedSymbols(),removeRunDependency("loadDylibs")},"loadDylibs"),noExitRuntime=!0;function setValue(e,t,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":HEAP8[e]=t;break;case"i8":HEAP8[e]=t;break;case"i16":LE_HEAP_STORE_I16((e>>1)*2,t);break;case"i32":LE_HEAP_STORE_I32((e>>2)*4,t);break;case"i64":LE_HEAP_STORE_I64((e>>3)*8,BigInt(t));break;case"float":LE_HEAP_STORE_F32((e>>2)*4,t);break;case"double":LE_HEAP_STORE_F64((e>>3)*8,t);break;case"*":LE_HEAP_STORE_U32((e>>2)*4,t);break;default:abort(`invalid type for setValue: ${n}`)}}C(setValue,"setValue");var ___memory_base=new WebAssembly.Global({value:"i32",mutable:!1},1024),___stack_high=78240,___stack_low=12704,___stack_pointer=new WebAssembly.Global({value:"i32",mutable:!0},78240),___table_base=new WebAssembly.Global({value:"i32",mutable:!1},1),__abort_js=C(()=>abort(""),"__abort_js");__abort_js.sig="v";var getHeapMax=C(()=>2147483648,"getHeapMax"),growMemory=C(e=>{var t=wasmMemory.buffer.byteLength,n=(e-t+65535)/65536|0;try{return wasmMemory.grow(n),updateMemoryViews(),1}catch{}},"growMemory"),_emscripten_resize_heap=C(e=>{var t=HEAPU8.length;e>>>=0;var n=getHeapMax();if(e>n)return!1;for(var r=1;r<=4;r*=2){var s=t*(1+.2/r);s=Math.min(s,e+100663296);var o=Math.min(n,alignMemory(Math.max(e,s),65536)),a=growMemory(o);if(a)return!0}return!1},"_emscripten_resize_heap");_emscripten_resize_heap.sig="ip";var _fd_close=C(e=>52,"_fd_close");_fd_close.sig="ii";var INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992,bigintToI53Checked=C(e=>eINT53_MAX?NaN:Number(e),"bigintToI53Checked");function _fd_seek(e,t,n,r){return t=bigintToI53Checked(t),70}C(_fd_seek,"_fd_seek"),_fd_seek.sig="iijip";var printCharBuffers=[null,[],[]],printChar=C((e,t)=>{var n=printCharBuffers[e];t===0||t===10?((e===1?out:err)(UTF8ArrayToString(n)),n.length=0):n.push(t)},"printChar"),_fd_write=C((e,t,n,r)=>{for(var s=0,o=0;o>2)*4),l=LE_HEAP_LOAD_U32((t+4>>2)*4);t+=8;for(var c=0;c>2)*4,s),0},"_fd_write");_fd_write.sig="iippp";function _tree_sitter_log_callback(e,t){if(Module.currentLogCallback){let n=UTF8ToString(t);Module.currentLogCallback(n,e!==0)}}C(_tree_sitter_log_callback,"_tree_sitter_log_callback");function _tree_sitter_parse_callback(e,t,n,r,s){let a=Module.currentParseCallback(t,{row:n,column:r});typeof a=="string"?(setValue(s,a.length,"i32"),stringToUTF16(a,e,10240)):setValue(s,0,"i32")}C(_tree_sitter_parse_callback,"_tree_sitter_parse_callback");function _tree_sitter_progress_callback(e,t){return Module.currentProgressCallback?Module.currentProgressCallback({currentOffset:e,hasError:t}):!1}C(_tree_sitter_progress_callback,"_tree_sitter_progress_callback");function _tree_sitter_query_progress_callback(e){return Module.currentQueryProgressCallback?Module.currentQueryProgressCallback({currentOffset:e}):!1}C(_tree_sitter_query_progress_callback,"_tree_sitter_query_progress_callback");var runtimeKeepaliveCounter=0,keepRuntimeAlive=C(()=>noExitRuntime||runtimeKeepaliveCounter>0,"keepRuntimeAlive"),_proc_exit=C(e=>{EXITSTATUS=e,keepRuntimeAlive()||(Module.onExit?.(e),ABORT=!0),quit_(e,new ExitStatus(e))},"_proc_exit");_proc_exit.sig="vi";var exitJS=C((e,t)=>{EXITSTATUS=e,_proc_exit(e)},"exitJS"),handleException=C(e=>{if(e instanceof ExitStatus||e=="unwind")return EXITSTATUS;quit_(1,e)},"handleException"),lengthBytesUTF8=C(e=>{for(var t=0,n=0;n=55296&&r<=57343?(t+=4,++n):t+=3}return t},"lengthBytesUTF8"),stringToUTF8Array=C((e,t,n,r)=>{if(!(r>0))return 0;for(var s=n,o=n+r-1,a=0;a=o)break;t[n++]=l}else if(l<=2047){if(n+1>=o)break;t[n++]=192|l>>6,t[n++]=128|l&63}else if(l<=65535){if(n+2>=o)break;t[n++]=224|l>>12,t[n++]=128|l>>6&63,t[n++]=128|l&63}else{if(n+3>=o)break;t[n++]=240|l>>18,t[n++]=128|l>>12&63,t[n++]=128|l>>6&63,t[n++]=128|l&63,a++}}return t[n]=0,n-s},"stringToUTF8Array"),stringToUTF8=C((e,t,n)=>stringToUTF8Array(e,HEAPU8,t,n),"stringToUTF8"),stackAlloc=C(e=>__emscripten_stack_alloc(e),"stackAlloc"),stringToUTF8OnStack=C(e=>{var t=lengthBytesUTF8(e)+1,n=stackAlloc(t);return stringToUTF8(e,n,t),n},"stringToUTF8OnStack"),AsciiToString=C(e=>{for(var t="";;){var n=HEAPU8[e++];if(!n)return t;t+=String.fromCharCode(n)}},"AsciiToString"),stringToUTF16=C((e,t,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var r=t,s=n>1)*2,a),t+=2}return LE_HEAP_STORE_I16((t>>1)*2,0),t-r},"stringToUTF16");LE_ATOMICS_NATIVE_BYTE_ORDER=new Int8Array(new Int16Array([1]).buffer)[0]===1?[(e=>e),(e=>e),void 0,(e=>e)]:[(e=>e),(e=>((e&65280)<<8|(e&255)<<24)>>16),void 0,(e=>e>>24&255|e>>8&65280|(e&65280)<<8|(e&255)<<24)];function LE_HEAP_UPDATE(){HEAPU16.unsigned=(e=>e&65535),HEAPU32.unsigned=(e=>e>>>0)}if(C(LE_HEAP_UPDATE,"LE_HEAP_UPDATE"),initMemory(),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.dynamicLibraries&&(dynamicLibraries=Module.dynamicLibraries),Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.shift()();Module.setValue=setValue,Module.getValue=getValue,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.AsciiToString=AsciiToString,Module.stringToUTF16=stringToUTF16,Module.loadWebAssemblyModule=loadWebAssemblyModule,Module.LE_HEAP_STORE_I64=LE_HEAP_STORE_I64;var ASM_CONSTS={},_malloc,_calloc,_realloc,_free,_ts_range_edit,_memcmp,_ts_language_symbol_count,_ts_language_state_count,_ts_language_abi_version,_ts_language_name,_ts_language_field_count,_ts_language_next_state,_ts_language_symbol_name,_ts_language_symbol_for_name,_strncmp,_ts_language_symbol_type,_ts_language_field_name_for_id,_ts_lookahead_iterator_new,_ts_lookahead_iterator_delete,_ts_lookahead_iterator_reset_state,_ts_lookahead_iterator_reset,_ts_lookahead_iterator_next,_ts_lookahead_iterator_current_symbol,_ts_point_edit,_ts_parser_delete,_ts_parser_reset,_ts_parser_set_language,_ts_parser_set_included_ranges,_ts_query_new,_ts_query_delete,_iswspace,_iswalnum,_ts_query_pattern_count,_ts_query_capture_count,_ts_query_string_count,_ts_query_capture_name_for_id,_ts_query_capture_quantifier_for_id,_ts_query_string_value_for_id,_ts_query_predicates_for_pattern,_ts_query_start_byte_for_pattern,_ts_query_end_byte_for_pattern,_ts_query_is_pattern_rooted,_ts_query_is_pattern_non_local,_ts_query_is_pattern_guaranteed_at_step,_ts_query_disable_capture,_ts_query_disable_pattern,_ts_tree_copy,_ts_tree_delete,_ts_init,_ts_parser_new_wasm,_ts_parser_enable_logger_wasm,_ts_parser_parse_wasm,_ts_parser_included_ranges_wasm,_ts_language_type_is_named_wasm,_ts_language_type_is_visible_wasm,_ts_language_metadata_wasm,_ts_language_supertypes_wasm,_ts_language_subtypes_wasm,_ts_tree_root_node_wasm,_ts_tree_root_node_with_offset_wasm,_ts_tree_edit_wasm,_ts_tree_included_ranges_wasm,_ts_tree_get_changed_ranges_wasm,_ts_tree_cursor_new_wasm,_ts_tree_cursor_copy_wasm,_ts_tree_cursor_delete_wasm,_ts_tree_cursor_reset_wasm,_ts_tree_cursor_reset_to_wasm,_ts_tree_cursor_goto_first_child_wasm,_ts_tree_cursor_goto_last_child_wasm,_ts_tree_cursor_goto_first_child_for_index_wasm,_ts_tree_cursor_goto_first_child_for_position_wasm,_ts_tree_cursor_goto_next_sibling_wasm,_ts_tree_cursor_goto_previous_sibling_wasm,_ts_tree_cursor_goto_descendant_wasm,_ts_tree_cursor_goto_parent_wasm,_ts_tree_cursor_current_node_type_id_wasm,_ts_tree_cursor_current_node_state_id_wasm,_ts_tree_cursor_current_node_is_named_wasm,_ts_tree_cursor_current_node_is_missing_wasm,_ts_tree_cursor_current_node_id_wasm,_ts_tree_cursor_start_position_wasm,_ts_tree_cursor_end_position_wasm,_ts_tree_cursor_start_index_wasm,_ts_tree_cursor_end_index_wasm,_ts_tree_cursor_current_field_id_wasm,_ts_tree_cursor_current_depth_wasm,_ts_tree_cursor_current_descendant_index_wasm,_ts_tree_cursor_current_node_wasm,_ts_node_symbol_wasm,_ts_node_field_name_for_child_wasm,_ts_node_field_name_for_named_child_wasm,_ts_node_children_by_field_id_wasm,_ts_node_first_child_for_byte_wasm,_ts_node_first_named_child_for_byte_wasm,_ts_node_grammar_symbol_wasm,_ts_node_child_count_wasm,_ts_node_named_child_count_wasm,_ts_node_child_wasm,_ts_node_named_child_wasm,_ts_node_child_by_field_id_wasm,_ts_node_next_sibling_wasm,_ts_node_prev_sibling_wasm,_ts_node_next_named_sibling_wasm,_ts_node_prev_named_sibling_wasm,_ts_node_descendant_count_wasm,_ts_node_parent_wasm,_ts_node_child_with_descendant_wasm,_ts_node_descendant_for_index_wasm,_ts_node_named_descendant_for_index_wasm,_ts_node_descendant_for_position_wasm,_ts_node_named_descendant_for_position_wasm,_ts_node_start_point_wasm,_ts_node_end_point_wasm,_ts_node_start_index_wasm,_ts_node_end_index_wasm,_ts_node_to_string_wasm,_ts_node_children_wasm,_ts_node_named_children_wasm,_ts_node_descendants_of_type_wasm,_ts_node_is_named_wasm,_ts_node_has_changes_wasm,_ts_node_has_error_wasm,_ts_node_is_error_wasm,_ts_node_is_missing_wasm,_ts_node_is_extra_wasm,_ts_node_parse_state_wasm,_ts_node_next_parse_state_wasm,_ts_query_matches_wasm,_ts_query_captures_wasm,_memset,_memcpy,_memmove,_iswalpha,_iswblank,_iswdigit,_iswlower,_iswupper,_iswxdigit,_memchr,_strlen,_strcmp,_strncat,_strncpy,_towlower,_towupper,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___wasm_apply_data_relocs;function assignWasmExports(e){Module._malloc=_malloc=e.malloc,Module._calloc=_calloc=e.calloc,Module._realloc=_realloc=e.realloc,Module._free=_free=e.free,Module._ts_range_edit=_ts_range_edit=e.ts_range_edit,Module._memcmp=_memcmp=e.memcmp,Module._ts_language_symbol_count=_ts_language_symbol_count=e.ts_language_symbol_count,Module._ts_language_state_count=_ts_language_state_count=e.ts_language_state_count,Module._ts_language_abi_version=_ts_language_abi_version=e.ts_language_abi_version,Module._ts_language_name=_ts_language_name=e.ts_language_name,Module._ts_language_field_count=_ts_language_field_count=e.ts_language_field_count,Module._ts_language_next_state=_ts_language_next_state=e.ts_language_next_state,Module._ts_language_symbol_name=_ts_language_symbol_name=e.ts_language_symbol_name,Module._ts_language_symbol_for_name=_ts_language_symbol_for_name=e.ts_language_symbol_for_name,Module._strncmp=_strncmp=e.strncmp,Module._ts_language_symbol_type=_ts_language_symbol_type=e.ts_language_symbol_type,Module._ts_language_field_name_for_id=_ts_language_field_name_for_id=e.ts_language_field_name_for_id,Module._ts_lookahead_iterator_new=_ts_lookahead_iterator_new=e.ts_lookahead_iterator_new,Module._ts_lookahead_iterator_delete=_ts_lookahead_iterator_delete=e.ts_lookahead_iterator_delete,Module._ts_lookahead_iterator_reset_state=_ts_lookahead_iterator_reset_state=e.ts_lookahead_iterator_reset_state,Module._ts_lookahead_iterator_reset=_ts_lookahead_iterator_reset=e.ts_lookahead_iterator_reset,Module._ts_lookahead_iterator_next=_ts_lookahead_iterator_next=e.ts_lookahead_iterator_next,Module._ts_lookahead_iterator_current_symbol=_ts_lookahead_iterator_current_symbol=e.ts_lookahead_iterator_current_symbol,Module._ts_point_edit=_ts_point_edit=e.ts_point_edit,Module._ts_parser_delete=_ts_parser_delete=e.ts_parser_delete,Module._ts_parser_reset=_ts_parser_reset=e.ts_parser_reset,Module._ts_parser_set_language=_ts_parser_set_language=e.ts_parser_set_language,Module._ts_parser_set_included_ranges=_ts_parser_set_included_ranges=e.ts_parser_set_included_ranges,Module._ts_query_new=_ts_query_new=e.ts_query_new,Module._ts_query_delete=_ts_query_delete=e.ts_query_delete,Module._iswspace=_iswspace=e.iswspace,Module._iswalnum=_iswalnum=e.iswalnum,Module._ts_query_pattern_count=_ts_query_pattern_count=e.ts_query_pattern_count,Module._ts_query_capture_count=_ts_query_capture_count=e.ts_query_capture_count,Module._ts_query_string_count=_ts_query_string_count=e.ts_query_string_count,Module._ts_query_capture_name_for_id=_ts_query_capture_name_for_id=e.ts_query_capture_name_for_id,Module._ts_query_capture_quantifier_for_id=_ts_query_capture_quantifier_for_id=e.ts_query_capture_quantifier_for_id,Module._ts_query_string_value_for_id=_ts_query_string_value_for_id=e.ts_query_string_value_for_id,Module._ts_query_predicates_for_pattern=_ts_query_predicates_for_pattern=e.ts_query_predicates_for_pattern,Module._ts_query_start_byte_for_pattern=_ts_query_start_byte_for_pattern=e.ts_query_start_byte_for_pattern,Module._ts_query_end_byte_for_pattern=_ts_query_end_byte_for_pattern=e.ts_query_end_byte_for_pattern,Module._ts_query_is_pattern_rooted=_ts_query_is_pattern_rooted=e.ts_query_is_pattern_rooted,Module._ts_query_is_pattern_non_local=_ts_query_is_pattern_non_local=e.ts_query_is_pattern_non_local,Module._ts_query_is_pattern_guaranteed_at_step=_ts_query_is_pattern_guaranteed_at_step=e.ts_query_is_pattern_guaranteed_at_step,Module._ts_query_disable_capture=_ts_query_disable_capture=e.ts_query_disable_capture,Module._ts_query_disable_pattern=_ts_query_disable_pattern=e.ts_query_disable_pattern,Module._ts_tree_copy=_ts_tree_copy=e.ts_tree_copy,Module._ts_tree_delete=_ts_tree_delete=e.ts_tree_delete,Module._ts_init=_ts_init=e.ts_init,Module._ts_parser_new_wasm=_ts_parser_new_wasm=e.ts_parser_new_wasm,Module._ts_parser_enable_logger_wasm=_ts_parser_enable_logger_wasm=e.ts_parser_enable_logger_wasm,Module._ts_parser_parse_wasm=_ts_parser_parse_wasm=e.ts_parser_parse_wasm,Module._ts_parser_included_ranges_wasm=_ts_parser_included_ranges_wasm=e.ts_parser_included_ranges_wasm,Module._ts_language_type_is_named_wasm=_ts_language_type_is_named_wasm=e.ts_language_type_is_named_wasm,Module._ts_language_type_is_visible_wasm=_ts_language_type_is_visible_wasm=e.ts_language_type_is_visible_wasm,Module._ts_language_metadata_wasm=_ts_language_metadata_wasm=e.ts_language_metadata_wasm,Module._ts_language_supertypes_wasm=_ts_language_supertypes_wasm=e.ts_language_supertypes_wasm,Module._ts_language_subtypes_wasm=_ts_language_subtypes_wasm=e.ts_language_subtypes_wasm,Module._ts_tree_root_node_wasm=_ts_tree_root_node_wasm=e.ts_tree_root_node_wasm,Module._ts_tree_root_node_with_offset_wasm=_ts_tree_root_node_with_offset_wasm=e.ts_tree_root_node_with_offset_wasm,Module._ts_tree_edit_wasm=_ts_tree_edit_wasm=e.ts_tree_edit_wasm,Module._ts_tree_included_ranges_wasm=_ts_tree_included_ranges_wasm=e.ts_tree_included_ranges_wasm,Module._ts_tree_get_changed_ranges_wasm=_ts_tree_get_changed_ranges_wasm=e.ts_tree_get_changed_ranges_wasm,Module._ts_tree_cursor_new_wasm=_ts_tree_cursor_new_wasm=e.ts_tree_cursor_new_wasm,Module._ts_tree_cursor_copy_wasm=_ts_tree_cursor_copy_wasm=e.ts_tree_cursor_copy_wasm,Module._ts_tree_cursor_delete_wasm=_ts_tree_cursor_delete_wasm=e.ts_tree_cursor_delete_wasm,Module._ts_tree_cursor_reset_wasm=_ts_tree_cursor_reset_wasm=e.ts_tree_cursor_reset_wasm,Module._ts_tree_cursor_reset_to_wasm=_ts_tree_cursor_reset_to_wasm=e.ts_tree_cursor_reset_to_wasm,Module._ts_tree_cursor_goto_first_child_wasm=_ts_tree_cursor_goto_first_child_wasm=e.ts_tree_cursor_goto_first_child_wasm,Module._ts_tree_cursor_goto_last_child_wasm=_ts_tree_cursor_goto_last_child_wasm=e.ts_tree_cursor_goto_last_child_wasm,Module._ts_tree_cursor_goto_first_child_for_index_wasm=_ts_tree_cursor_goto_first_child_for_index_wasm=e.ts_tree_cursor_goto_first_child_for_index_wasm,Module._ts_tree_cursor_goto_first_child_for_position_wasm=_ts_tree_cursor_goto_first_child_for_position_wasm=e.ts_tree_cursor_goto_first_child_for_position_wasm,Module._ts_tree_cursor_goto_next_sibling_wasm=_ts_tree_cursor_goto_next_sibling_wasm=e.ts_tree_cursor_goto_next_sibling_wasm,Module._ts_tree_cursor_goto_previous_sibling_wasm=_ts_tree_cursor_goto_previous_sibling_wasm=e.ts_tree_cursor_goto_previous_sibling_wasm,Module._ts_tree_cursor_goto_descendant_wasm=_ts_tree_cursor_goto_descendant_wasm=e.ts_tree_cursor_goto_descendant_wasm,Module._ts_tree_cursor_goto_parent_wasm=_ts_tree_cursor_goto_parent_wasm=e.ts_tree_cursor_goto_parent_wasm,Module._ts_tree_cursor_current_node_type_id_wasm=_ts_tree_cursor_current_node_type_id_wasm=e.ts_tree_cursor_current_node_type_id_wasm,Module._ts_tree_cursor_current_node_state_id_wasm=_ts_tree_cursor_current_node_state_id_wasm=e.ts_tree_cursor_current_node_state_id_wasm,Module._ts_tree_cursor_current_node_is_named_wasm=_ts_tree_cursor_current_node_is_named_wasm=e.ts_tree_cursor_current_node_is_named_wasm,Module._ts_tree_cursor_current_node_is_missing_wasm=_ts_tree_cursor_current_node_is_missing_wasm=e.ts_tree_cursor_current_node_is_missing_wasm,Module._ts_tree_cursor_current_node_id_wasm=_ts_tree_cursor_current_node_id_wasm=e.ts_tree_cursor_current_node_id_wasm,Module._ts_tree_cursor_start_position_wasm=_ts_tree_cursor_start_position_wasm=e.ts_tree_cursor_start_position_wasm,Module._ts_tree_cursor_end_position_wasm=_ts_tree_cursor_end_position_wasm=e.ts_tree_cursor_end_position_wasm,Module._ts_tree_cursor_start_index_wasm=_ts_tree_cursor_start_index_wasm=e.ts_tree_cursor_start_index_wasm,Module._ts_tree_cursor_end_index_wasm=_ts_tree_cursor_end_index_wasm=e.ts_tree_cursor_end_index_wasm,Module._ts_tree_cursor_current_field_id_wasm=_ts_tree_cursor_current_field_id_wasm=e.ts_tree_cursor_current_field_id_wasm,Module._ts_tree_cursor_current_depth_wasm=_ts_tree_cursor_current_depth_wasm=e.ts_tree_cursor_current_depth_wasm,Module._ts_tree_cursor_current_descendant_index_wasm=_ts_tree_cursor_current_descendant_index_wasm=e.ts_tree_cursor_current_descendant_index_wasm,Module._ts_tree_cursor_current_node_wasm=_ts_tree_cursor_current_node_wasm=e.ts_tree_cursor_current_node_wasm,Module._ts_node_symbol_wasm=_ts_node_symbol_wasm=e.ts_node_symbol_wasm,Module._ts_node_field_name_for_child_wasm=_ts_node_field_name_for_child_wasm=e.ts_node_field_name_for_child_wasm,Module._ts_node_field_name_for_named_child_wasm=_ts_node_field_name_for_named_child_wasm=e.ts_node_field_name_for_named_child_wasm,Module._ts_node_children_by_field_id_wasm=_ts_node_children_by_field_id_wasm=e.ts_node_children_by_field_id_wasm,Module._ts_node_first_child_for_byte_wasm=_ts_node_first_child_for_byte_wasm=e.ts_node_first_child_for_byte_wasm,Module._ts_node_first_named_child_for_byte_wasm=_ts_node_first_named_child_for_byte_wasm=e.ts_node_first_named_child_for_byte_wasm,Module._ts_node_grammar_symbol_wasm=_ts_node_grammar_symbol_wasm=e.ts_node_grammar_symbol_wasm,Module._ts_node_child_count_wasm=_ts_node_child_count_wasm=e.ts_node_child_count_wasm,Module._ts_node_named_child_count_wasm=_ts_node_named_child_count_wasm=e.ts_node_named_child_count_wasm,Module._ts_node_child_wasm=_ts_node_child_wasm=e.ts_node_child_wasm,Module._ts_node_named_child_wasm=_ts_node_named_child_wasm=e.ts_node_named_child_wasm,Module._ts_node_child_by_field_id_wasm=_ts_node_child_by_field_id_wasm=e.ts_node_child_by_field_id_wasm,Module._ts_node_next_sibling_wasm=_ts_node_next_sibling_wasm=e.ts_node_next_sibling_wasm,Module._ts_node_prev_sibling_wasm=_ts_node_prev_sibling_wasm=e.ts_node_prev_sibling_wasm,Module._ts_node_next_named_sibling_wasm=_ts_node_next_named_sibling_wasm=e.ts_node_next_named_sibling_wasm,Module._ts_node_prev_named_sibling_wasm=_ts_node_prev_named_sibling_wasm=e.ts_node_prev_named_sibling_wasm,Module._ts_node_descendant_count_wasm=_ts_node_descendant_count_wasm=e.ts_node_descendant_count_wasm,Module._ts_node_parent_wasm=_ts_node_parent_wasm=e.ts_node_parent_wasm,Module._ts_node_child_with_descendant_wasm=_ts_node_child_with_descendant_wasm=e.ts_node_child_with_descendant_wasm,Module._ts_node_descendant_for_index_wasm=_ts_node_descendant_for_index_wasm=e.ts_node_descendant_for_index_wasm,Module._ts_node_named_descendant_for_index_wasm=_ts_node_named_descendant_for_index_wasm=e.ts_node_named_descendant_for_index_wasm,Module._ts_node_descendant_for_position_wasm=_ts_node_descendant_for_position_wasm=e.ts_node_descendant_for_position_wasm,Module._ts_node_named_descendant_for_position_wasm=_ts_node_named_descendant_for_position_wasm=e.ts_node_named_descendant_for_position_wasm,Module._ts_node_start_point_wasm=_ts_node_start_point_wasm=e.ts_node_start_point_wasm,Module._ts_node_end_point_wasm=_ts_node_end_point_wasm=e.ts_node_end_point_wasm,Module._ts_node_start_index_wasm=_ts_node_start_index_wasm=e.ts_node_start_index_wasm,Module._ts_node_end_index_wasm=_ts_node_end_index_wasm=e.ts_node_end_index_wasm,Module._ts_node_to_string_wasm=_ts_node_to_string_wasm=e.ts_node_to_string_wasm,Module._ts_node_children_wasm=_ts_node_children_wasm=e.ts_node_children_wasm,Module._ts_node_named_children_wasm=_ts_node_named_children_wasm=e.ts_node_named_children_wasm,Module._ts_node_descendants_of_type_wasm=_ts_node_descendants_of_type_wasm=e.ts_node_descendants_of_type_wasm,Module._ts_node_is_named_wasm=_ts_node_is_named_wasm=e.ts_node_is_named_wasm,Module._ts_node_has_changes_wasm=_ts_node_has_changes_wasm=e.ts_node_has_changes_wasm,Module._ts_node_has_error_wasm=_ts_node_has_error_wasm=e.ts_node_has_error_wasm,Module._ts_node_is_error_wasm=_ts_node_is_error_wasm=e.ts_node_is_error_wasm,Module._ts_node_is_missing_wasm=_ts_node_is_missing_wasm=e.ts_node_is_missing_wasm,Module._ts_node_is_extra_wasm=_ts_node_is_extra_wasm=e.ts_node_is_extra_wasm,Module._ts_node_parse_state_wasm=_ts_node_parse_state_wasm=e.ts_node_parse_state_wasm,Module._ts_node_next_parse_state_wasm=_ts_node_next_parse_state_wasm=e.ts_node_next_parse_state_wasm,Module._ts_query_matches_wasm=_ts_query_matches_wasm=e.ts_query_matches_wasm,Module._ts_query_captures_wasm=_ts_query_captures_wasm=e.ts_query_captures_wasm,Module._memset=_memset=e.memset,Module._memcpy=_memcpy=e.memcpy,Module._memmove=_memmove=e.memmove,Module._iswalpha=_iswalpha=e.iswalpha,Module._iswblank=_iswblank=e.iswblank,Module._iswdigit=_iswdigit=e.iswdigit,Module._iswlower=_iswlower=e.iswlower,Module._iswupper=_iswupper=e.iswupper,Module._iswxdigit=_iswxdigit=e.iswxdigit,Module._memchr=_memchr=e.memchr,Module._strlen=_strlen=e.strlen,Module._strcmp=_strcmp=e.strcmp,Module._strncat=_strncat=e.strncat,Module._strncpy=_strncpy=e.strncpy,Module._towlower=_towlower=e.towlower,Module._towupper=_towupper=e.towupper,_setThrew=e.setThrew,__emscripten_stack_restore=e._emscripten_stack_restore,__emscripten_stack_alloc=e._emscripten_stack_alloc,_emscripten_stack_get_current=e.emscripten_stack_get_current,___wasm_apply_data_relocs=e.__wasm_apply_data_relocs}C(assignWasmExports,"assignWasmExports");var wasmImports={__heap_base:___heap_base,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__table_base:___table_base,_abort_js:__abort_js,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,tree_sitter_log_callback:_tree_sitter_log_callback,tree_sitter_parse_callback:_tree_sitter_parse_callback,tree_sitter_progress_callback:_tree_sitter_progress_callback,tree_sitter_query_progress_callback:_tree_sitter_query_progress_callback};function callMain(e=[]){var t=resolveGlobalSymbol("main").sym;if(t){e.unshift(thisProgram);var n=e.length,r=stackAlloc((n+1)*4),s=r;e.forEach(a=>{LE_HEAP_STORE_U32((s>>2)*4,stringToUTF8OnStack(a)),s+=4}),LE_HEAP_STORE_U32((s>>2)*4,0);try{var o=t(n,r);return exitJS(o,!0),o}catch(a){return handleException(a)}}}C(callMain,"callMain");function run(e=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}if(preRun(),runDependencies>0){dependenciesFulfilled=run;return}function t(){if(Module.calledRun=!0,!ABORT){initRuntime(),readyPromiseResolve?.(Module),Module.onRuntimeInitialized?.();var n=Module.noInitialRun||!1;n||callMain(e),postRun()}}C(t,"doRun"),Module.setStatus?(Module.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>Module.setStatus(""),1),t()},1)):t()}C(run,"run");var wasmExports;return wasmExports=await createWasm(),run(),runtimeInitialized?moduleRtn=Module:moduleRtn=new Promise((e,t)=>{readyPromiseResolve=e,readyPromiseReject=t}),moduleRtn}async function kc(e){return Sc??=await Wm(e)}function Ec(){return!!Sc}function Rc(e,t,n,r){if(e.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${e.length-1}`);if(!pc(e[1]))throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${e[1].value}"`);let s=n==="eq?"||n==="any-eq?",o=!n.startsWith("any-");if(pc(e[2])){let a=e[1].name,l=e[2].name;r[t].push(c=>{let d=[],m=[];for(let f of c)f.name===a&&d.push(f.node),f.name===l&&m.push(f.node);let u=C((f,p,g)=>g?f.text===p.text:f.text!==p.text,"compare");return o?d.every(f=>m.some(p=>u(f,p,s))):d.some(f=>m.some(p=>u(f,p,s)))})}else{let a=e[1].name,l=e[2].value,c=C(m=>m.text===l,"matches"),d=C(m=>m.text!==l,"doesNotMatch");r[t].push(m=>{let u=[];for(let p of m)p.name===a&&u.push(p.node);let f=s?c:d;return o?u.every(f):u.some(f)})}}function Mc(e,t,n,r){if(e.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${e.length-1}.`);if(e[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${e[1].value}".`);if(e[2].type!=="string")throw new Error(`Second argument of \`#${n}\` predicate must be a string. Got @${e[2].name}.`);let s=n==="match?"||n==="any-match?",o=!n.startsWith("any-"),a=e[1].name,l=new RegExp(e[2].value);r[t].push(c=>{let d=[];for(let u of c)u.name===a&&d.push(u.node.text);let m=C((u,f)=>f?l.test(u):!l.test(u),"test");return d.length===0?!s:o?d.every(u=>m(u,s)):d.some(u=>m(u,s))})}function Cc(e,t,n,r){if(e.length<2)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected at least 1. Got ${e.length-1}.`);if(e[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${e[1].value}".`);let s=n==="any-of?",o=e[1].name,a=e.slice(2);if(!a.every(ho))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);let l=a.map(c=>c.value);r[t].push(c=>{let d=[];for(let m of c)m.name===o&&d.push(m.node.text);return d.length===0?!s:d.every(m=>l.includes(m))===s})}function Ac(e,t,n,r,s){if(e.length<2||e.length>3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 1 or 2. Got ${e.length-1}.`);if(!e.every(ho))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);let o=n==="is?"?r:s;o[t]||(o[t]={}),o[t][e[1].value]=e[2]?.value??null}function Tc(e,t,n){if(e.length<2||e.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${e.length-1}.`);if(!e.every(ho))throw new Error('Arguments to `#set!` predicate must be strings.".');n[t]||(n[t]={}),n[t][e[1].value]=e[2]?.value??null}function Ic(e,t,n,r,s,o,a,l,c,d,m){if(t===Um){let u=r[n];o.push({type:"capture",name:u})}else if(t===Bm)o.push({type:"string",value:s[n]});else if(o.length>0){if(o[0].type!=="string")throw new Error("Predicates must begin with a literal value");let u=o[0].value;switch(u){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":Rc(o,e,u,a);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":Mc(o,e,u,a);break;case"not-any-of?":case"any-of?":Cc(o,e,u,a);break;case"is?":case"is-not?":Ac(o,e,u,d,m);break;case"set!":Tc(o,e,c);break;default:l[e].push({operator:u,operands:o.slice(1)})}o.length=0}}var Om,C,Rx,mc,W,lo,De,dt,Kn,$e,Ft,x,Pm,$m,Dm,Lm,jm,go,Wm,Sc,L,co,uo,_o,Um,Bm,zm,Mx,pc,ho,Ye,Vn,Nc,yo=O(()=>{E();Om=Object.defineProperty,C=(e,t)=>Om(e,"name",{value:t,configurable:!0}),Rx=class{static{C(this,"Edit")}startPosition;oldEndPosition;newEndPosition;startIndex;oldEndIndex;newEndIndex;constructor({startIndex:e,oldEndIndex:t,newEndIndex:n,startPosition:r,oldEndPosition:s,newEndPosition:o}){this.startIndex=e>>>0,this.oldEndIndex=t>>>0,this.newEndIndex=n>>>0,this.startPosition=r,this.oldEndPosition=s,this.newEndPosition=o}editPoint(e,t){let n=t,r={...e};if(t>=this.oldEndIndex){n=this.newEndIndex+(t-this.oldEndIndex);let s=e.row;r.row=this.newEndPosition.row+(e.row-this.oldEndPosition.row),r.column=s===this.oldEndPosition.row?this.newEndPosition.column+(e.column-this.oldEndPosition.column):e.column}else t>this.startIndex&&(n=this.newEndIndex,r.row=this.newEndPosition.row,r.column=this.newEndPosition.column);return{point:r,index:n}}editRange(e){let t={startIndex:e.startIndex,startPosition:{...e.startPosition},endIndex:e.endIndex,endPosition:{...e.endPosition}};return e.endIndex>=this.oldEndIndex?e.endIndex!==Number.MAX_SAFE_INTEGER&&(t.endIndex=this.newEndIndex+(e.endIndex-this.oldEndIndex),t.endPosition={row:this.newEndPosition.row+(e.endPosition.row-this.oldEndPosition.row),column:e.endPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(e.endPosition.column-this.oldEndPosition.column):e.endPosition.column},t.endIndexthis.startIndex&&(t.endIndex=this.startIndex,t.endPosition={...this.startPosition}),e.startIndex>=this.oldEndIndex?(t.startIndex=this.newEndIndex+(e.startIndex-this.oldEndIndex),t.startPosition={row:this.newEndPosition.row+(e.startPosition.row-this.oldEndPosition.row),column:e.startPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(e.startPosition.column-this.oldEndPosition.column):e.startPosition.column},t.startIndexthis.startIndex&&(t.startIndex=this.startIndex,t.startPosition={...this.startPosition}),t}},mc=2,W=4,lo=4*W,De=5*W,dt=2*W,Kn=2*W+2*dt,$e={row:0,column:0},Ft=Symbol("INTERNAL");C(wn,"assertInternal");C(Jn,"isPoint");C(gc,"setModule");Pm=class{static{C(this,"LookaheadIterator")}0=0;language;constructor(e,t,n){wn(e),this[0]=t,this.language=n}get currentTypeId(){return x._ts_lookahead_iterator_current_symbol(this[0])}get currentType(){return this.language.types[this.currentTypeId]||"ERROR"}delete(){x._ts_lookahead_iterator_delete(this[0]),this[0]=0}reset(e,t){return x._ts_lookahead_iterator_reset(this[0],e[0],t)?(this.language=e,!0):!1}resetState(e){return!!x._ts_lookahead_iterator_reset_state(this[0],e)}[Symbol.iterator](){return{next:C(()=>x._ts_lookahead_iterator_next(this[0])?{done:!1,value:this.currentType}:{done:!0,value:""},"next")}}};C(po,"getText");$m=class fo{static{C(this,"Tree")}0=0;textCallback;language;constructor(t,n,r,s){wn(t),this[0]=n,this.language=r,this.textCallback=s}copy(){let t=x._ts_tree_copy(this[0]);return new fo(Ft,t,this.language,this.textCallback)}delete(){x._ts_tree_delete(this[0]),this[0]=0}get rootNode(){return x._ts_tree_root_node_wasm(this[0]),ue(this)}rootNodeWithOffset(t,n){let r=L+De;return x.setValue(r,t,"i32"),Ve(r+W,n),x._ts_tree_root_node_with_offset_wasm(this[0]),ue(this)}edit(t){yc(t),x._ts_tree_edit_wasm(this[0])}walk(){return this.rootNode.walk()}getChangedRanges(t){if(!(t instanceof fo))throw new TypeError("Argument must be a Tree");x._ts_tree_get_changed_ranges_wasm(this[0],t[0]);let n=x.getValue(L,"i32"),r=x.getValue(L+W,"i32"),s=new Array(n);if(n>0){let o=r;for(let a=0;a0){let s=n;for(let o=0;o0){let s=n;for(let o=0;o0){let n=t;for(let r=0;r0){let n=t;for(let r=0;r0){let d=l;for(let m=0;m=e.oldEndIndex){this.startIndex=e.newEndIndex+(this.startIndex-e.oldEndIndex);let t,n;this.startPosition.row>e.oldEndPosition.row?(t=this.startPosition.row-e.oldEndPosition.row,n=this.startPosition.column):(t=0,n=this.startPosition.column,this.startPosition.column>=e.oldEndPosition.column&&(n=this.startPosition.column-e.oldEndPosition.column)),t>0?(this.startPosition.row+=t,this.startPosition.column=n):this.startPosition.column+=n}else this.startIndex>e.startIndex&&(this.startIndex=e.newEndIndex,this.startPosition.row=e.newEndPosition.row,this.startPosition.column=e.newEndPosition.column)}toString(){G(this);let e=x._ts_node_to_string_wasm(this.tree[0]),t=x.AsciiToString(e);return x._free(e),t}};C(mo,"unmarshalCaptures");C(G,"marshalNode");C(ue,"unmarshalNode");C(le,"marshalTreeCursor");C(Be,"unmarshalTreeCursor");C(Ve,"marshalPoint");C(Jt,"unmarshalPoint");C(hc,"marshalRange");C(Es,"unmarshalRange");C(yc,"marshalEdit");C(bc,"unmarshalLanguageMetadata");jm=/^tree_sitter_\w+$/,go=class wc{static{C(this,"Language")}0=0;types;fields;constructor(t,n){wn(t),this[0]=n,this.types=new Array(x._ts_language_symbol_count(this[0]));for(let r=0,s=this.types.length;r0){let s=n;for(let o=0;o0){let o=r;for(let a=0;a(ao(),oo))).readFile(t);else{let l=await fetch(t);if(!l.ok){let d=await l.text();throw new Error(`Language.load failed with status ${l.status}. +var mf=Object.defineProperty;var O=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(s){throw n=[s],s}};var ji=(e,t)=>{for(var n in t)mf(e,n,{get:t[n],enumerable:!0})};function ll(e){let t="";for(let s=0;s{"use strict";pf=new TextDecoder("utf-8"),gf=new TextDecoder("utf-16le"),ol=new TextEncoder,al="0123456789abcdef";F=class e extends Uint8Array{static from(t,n){if(typeof t=="string"){if(n==="hex"){let l=new e(t.length>>1);for(let c=0;ca+l.byteLength,0),r=new e(s),o=0;for(let a of t){if(o+a.byteLength>s){r.set(a.subarray(0,s-o),o);break}r.set(a,o),o+=a.byteLength}return r}subarray(t,n){return super.subarray(t,n)}toString(t,n,s){let r=n!==void 0||s!==void 0?this.subarray(n??0,s??this.length):this;switch((t??"utf8").toLowerCase()){case"utf8":case"utf-8":return pf.decode(r);case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return gf.decode(r);case"latin1":case"binary":case"ascii":return ll(r);case"hex":{let o="";for(let a of r)o+=al[a>>4]+al[a&15];return o}case"base64":return btoa(ll(r));default:throw new TypeError(`Unknown encoding: ${t}`)}}swap16(){if(this.length%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t"/",exit:e=>{throw new Error(`process.exit(${e??0}) is not available in the browser build`)},hrtime:Object.assign(e=>{let t=performance.now(),n=Math.floor(t/1e3),s=Math.floor(t%1e3*1e6);return e?[n-e[0],s-e[1]]:[n,s]},{bigint:()=>BigInt(Math.floor(performance.now()*1e6))}),memoryUsage:()=>({rss:0,heapTotal:0,heapUsed:0,external:0,arrayBuffers:0}),stdout:{write:e=>(console.log(e.replace(/\n$/,"")),!0),isTTY:!1},stderr:{write:e=>(console.warn(e.replace(/\n$/,"")),!0),isTTY:!1},on:()=>R,emitWarning:e=>console.warn(e)}});var fe,He,pn,Xe=O(()=>{"use strict";E();fe="2.28.4",He=5,pn=14});function cl(e,t){let n="",s=0,r=-1,o=0,a=0;for(let l=0;l<=e.length;++l){if(l2){let c=n.lastIndexOf("/");c===-1?(n="",s=0):(n=n.slice(0,c),s=n.length-1-n.lastIndexOf("/")),r=l,o=0;continue}else if(n.length!==0){n="",s=0,r=l,o=0;continue}}t&&(n+=n.length>0?"/..":"..",s=2)}else n.length>0?n+="/"+e.slice(r+1,l):n=e.slice(r+1,l),s=l-r-1;r=l,o=0}else a===46&&o!==-1?++o:o=-1}return n}function ts(e){if(e.length===0)return".";let t=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47,s=cl(e,!t);return s.length===0&&!t&&(s="."),s.length>0&&n&&(s+="/"),t?"/"+s:s}function ns(e){return e.length>0&&e.charCodeAt(0)===47}function I(...e){if(e.length===0)return".";let t;for(let n of e)n.length>0&&(t=t===void 0?n:t+"/"+n);return t===void 0?".":ts(t)}function Ee(...e){let t="",n=!1;for(let r=e.length-1;r>=0&&!n;r--){let o=e[r];o===void 0||o.length===0||(t=t.length===0?o:o+"/"+t,n=o.charCodeAt(0)===47)}n||(t=t.length===0?"/":"/"+t);let s=cl(t,!1);return s.length>0?"/"+s:"/"}function _f(e,t){if(e===t)return"";let n=Ee(e),s=Ee(t);if(n===s)return"";let r=n.slice(1).split("/").filter(Boolean),o=s.slice(1).split("/").filter(Boolean),a=0;for(;a=1;--r)if(e.charCodeAt(r)===47){if(!s){n=r;break}}else s=!1;return n===-1?t?"/":".":t&&n===1?"//":e.slice(0,n)}function ve(e,t){let n=0,s=-1,r=!0;for(let a=e.length-1;a>=0;--a)if(e.charCodeAt(a)===47){if(!r){n=a+1;break}}else s===-1&&(r=!1,s=a+1);if(s===-1)return"";let o=e.slice(n,s);return t!==void 0&&t!==o&&o.endsWith(t)?o.slice(0,o.length-t.length):o}function rs(e){let t=-1,n=0,s=-1,r=!0,o=0;for(let a=e.length-1;a>=0;--a){let l=e.charCodeAt(a);if(l===47){if(!r){n=a+1;break}continue}s===-1&&(r=!1,s=a+1),l===46?t===-1?t=a:o!==1&&(o=1):t!==-1&&(o=-1)}return t===-1||s===-1||o===0||o===1&&t===s-1&&t===n+1?"":e.slice(t,s)}function hf(e){let t=ns(e)?"/":"",n=ve(e),s=rs(e),r=_e(e);return{root:t,dir:r==="."&&t===""?"":r,base:n,ext:s,name:n.slice(0,n.length-s.length)}}function yf(e){let t=e.dir||e.root||"",n=e.base||(e.name??"")+(e.ext??"");return t?t===e.root?t+n:t+"/"+n:n}function bf(e){return e}var $,Mb,ae=O(()=>{"use strict";E();$={sep:"/",delimiter:":",normalize:ts,isAbsolute:ns,join:I,resolve:Ee,relative:_f,dirname:_e,basename:ve,extname:rs,parse:hf,format:yf,toNamespacedPath:bf},Mb={...$,posix:$,win32:$}});function ul(){return++dl}function Ue(e){let t=e.startsWith("/")?e:"/"+e,n=ts(t);return n.length>1&&n.endsWith("/")?n.slice(0,-1):n}function At(e,t){let n=new Error(`ENOENT: no such file or directory, ${t} '${e}'`);return n.code="ENOENT",n.errno=-2,n.path=e,n.syscall=t,n}function fl(e,t){let n=new Error(`ENOTDIR: not a directory, ${t} '${e}'`);return n.code="ENOTDIR",n.errno=-20,n.path=e,n.syscall=t,n}function gn(e){let t=Ue(e),n=me.get(t);if(n){if(n.kind!=="dir")throw fl(e,"mkdir");return n}let s={kind:"dir",mtimeMs:0,mode:511,children:new Set};return me.set(t,s),t!==Ht&&gn(_e(t)).children.add(ve(t)),s}function wf(){me.clear(),dl=0,gl=0,me.set(Ht,{kind:"dir",mtimeMs:0,mode:511,children:new Set})}function ml(e){for(let t of e){let n=Ue(t.path);gn(_e(n)).children.add(ve(n)),me.set(n,{kind:"file",size:t.size,mtimeMs:ul(),mode:438,bytes:t.bytes})}}function ss(e,t){let n=Ue(e),s=me.get(n);if(s&&s.kind==="file"){s.bytes=t,s.size=t.byteLength,s.mtimeMs=ul();return}ml([{path:n,size:t.byteLength,bytes:t}])}function xf(e){let t=me.get(Ue(e));return!!t&&t.kind==="file"&&t.bytes!==void 0}function Sf(){let e=0;for(let[t,n]of[...me]){if(n.kind!=="file"||n.bytes!==void 0)continue;me.delete(t);let s=me.get(_e(t));s&&s.kind==="dir"&&s.children.delete(ve(t)),e++}return e}function kf(){let e=0;for(let t of me.values())t.kind==="file"&&t.bytes&&(e+=t.bytes.byteLength);return e}function Ef(e,t,n){return{name:e,parentPath:t,path:t,isFile:()=>n==="file",isDirectory:()=>n==="dir",isSymbolicLink:ot,isBlockDevice:ot,isCharacterDevice:ot,isFIFO:ot,isSocket:ot}}function vf(e){return{size:e.kind==="file"?e.size:0,mode:e.mode,mtimeMs:e.mtimeMs,mtime:new Date(e.mtimeMs),isFile:()=>e.kind==="file",isDirectory:()=>e.kind==="dir",isSymbolicLink:ot,isBlockDevice:ot,isCharacterDevice:ot,isFIFO:ot,isSocket:ot}}function H(e){return me.has(Ue(e))}function xe(e){let t=me.get(Ue(e));if(!t)throw At(e,"stat");return vf(t)}function _n(e){let t=Ue(e);if(!me.has(t))throw At(e,"realpath");return t}function hn(e,t){let n=Ue(e),s=me.get(n);if(!s)throw At(e,"scandir");if(s.kind!=="dir")throw fl(e,"scandir");let r=[...s.children];return t?.withFileTypes?r.map(o=>{let a=me.get(n===Ht?`/${o}`:`${n}/${o}`);return Ef(o,n,a?.kind==="dir"?"dir":"file")}):r}function Q(e,t){let n=me.get(Ue(e));if(!n)throw At(e,"open");if(n.kind!=="file"){let r=new Error("EISDIR: illegal operation on a directory, read");throw r.code="EISDIR",r}if(!n.bytes)throw At(e,"open");let s=F.from(n.bytes);return t?s.toString(typeof t=="string"?t:t.encoding):s}function Me(e,t){let n=typeof t=="string"?new TextEncoder().encode(t):t;ss(e,n)}function is(e,t){let n=me.get(Ue(e));if(!n)throw At(e,"chmod");n.mode=t}function _t(e,t){gn(e)}function Ln(e){let t=`${e}${gl++}`;return gn(t),t}function qe(e,t){let n=Ue(e),s=me.get(n);if(!s){if(t?.force)return;throw At(e,"unlink")}if(s.kind==="dir")for(let o of[...s.children])qe(n===Ht?`/${o}`:`${n}/${o}`,t);me.delete(n);let r=me.get(_e(n));r&&r.kind==="dir"&&r.children.delete(ve(n))}function jn(e,t){let n=Ue(e),s=me.get(n);if(!s)throw At(e,"rename");let r=Ue(t);if(s.kind==="dir"){gn(r);for(let o of[...s.children])jn(n===Ht?`/${o}`:`${n}/${o}`,r===Ht?`/${o}`:`${r}/${o}`)}else gn(_e(r)).children.add(ve(r)),me.set(r,s);qe(n,{force:!0})}function _l(){throw new Error("recursive filesystem watching is unavailable in the browser VFS")}var Ht,me,dl,ot,pl,gl,Se=O(()=>{"use strict";E();ae();Ht="/",me=new Map([[Ht,{kind:"dir",mtimeMs:0,mode:511,children:new Set}]]),dl=0;ot=()=>!1;pl=xe;gl=0});function hl(e,t,n){let s=new Error(`spawnSync ${e} ENOENT`);return s.code="ENOENT",s.errno=-2,s.syscall=`spawnSync ${e}`,s.path=e,{pid:0,output:[],stdout:"",stderr:"",status:null,signal:null,error:s}}function yl(e,t,n){let s=new Map,r={pid:void 0,stdin:null,stdout:null,stderr:null,on(a,l){let c=s.get(a)??[];return c.push(l),s.set(a,c),r},kill:()=>!1},o=new Error(`spawn ${e} ENOENT`);return o.code="ENOENT",o.syscall=`spawn ${e}`,o.path=e,Promise.resolve().then(()=>{for(let a of s.get("error")??[])a(o);for(let a of s.get("close")??[])a(null)}),r}var Wi=O(()=>{E()});function pe(e,t,n={}){let s=hl(e,t,{cwd:n.cwd,input:n.input,encoding:"utf8",timeout:n.timeoutMs??12e4,maxBuffer:67108864,env:n.env??R.env}),r=!!s.error&&s.error.code==="ENOENT";return{ok:!s.error&&s.status===0,status:s.status,stdout:s.stdout??"",stderr:s.stderr??(s.error?String(s.error.message):""),missing:r}}function at(e){let t=bl.get(e);if(t!==void 0)return t;let n=pe(R.platform==="win32"?"where":"which",[e]),s=n.ok&&n.stdout.trim().length>0;return bl.set(e,s),s}function Ui(e){return e.toLowerCase().replace(/^https?:\/\//,"").replace(/^git@/,"").replace(/\.git$/,"").replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,120)}function Rf(e,t){return e.length<=t?e:e.slice(0,t)+` +\u2026 [truncated ${e.length-t} chars]`}function Mf(e,t){let n=e.replace(/\s+/g," ").trim();if(n.length<=t)return n;let s=n.slice(0,t).replace(/\s+\S*$/,"");return s||(s=n.slice(0,t)),(s.match(/`/g)?.length??0)%2===1&&(s=s.replace(/`[^`]*$/,"")),s.lastIndexOf("[")>s.lastIndexOf("]")&&(s=s.slice(0,s.lastIndexOf("["))),s.replace(/\s+$/,"")+"\u2026"}function Ge(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ht(e){return e.normalize("NFKD").replace(/[̀-ͯ]/g,"")}function os(e){let t=new Set,n=[];for(let s of ht(e).split(/[^A-Za-z0-9_]+/)){if(!s)continue;let r=s.toLowerCase();s.length<2||wl.has(r)||t.has(r)||(t.add(r),n.push(s))}return n}function as(e){let t=[];for(let n of ht(e).split(/[^A-Za-z0-9_]+/))n&&(n.length<2||wl.has(n.toLowerCase()))&&t.push(n);return t}function Cf(e){let t=os(e),n=s=>{let r=0;return/\d/.test(s)&&(r+=3),/[A-Z]/.test(s)&&!/^[A-Z0-9]+$/.test(s)&&(r+=2),/_/.test(s)&&(r+=2),s.length>=8?r+=1.5:s.length>=5&&(r+=.5),r};return t.map((s,r)=>({k:s,s:n(s),i:r})).sort((s,r)=>r.s-s.s||s.i-r.i).map(s=>s.k)}function Bi(e,t,n=60){let s=new Map;for(let r of e)r.forEach((o,a)=>{let l=t(o);s.set(l,(s.get(l)??0)+1/(n+a+1))});return s}function yt(e){let t=ht(e).replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2"),n=[],s=new Set,r=o=>{o.length<2||s.has(o)||(s.add(o),n.push(o))};/\s/.test(e.trim())||r(ht(e).toLowerCase().replace(/[^a-z0-9_]+/g,""));for(let o of t.split(/[^A-Za-z0-9]+/))r(o.toLowerCase());return n}function zi(e){if(e.length<4)return e;let t=e;return t.endsWith("ies")&&t.length>4?t=t.slice(0,-3)+"y":t.endsWith("sses")?t=t.slice(0,-2):(t.endsWith("ses")&&t.length>4||t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is"))&&(t=t.slice(0,-1)),t.endsWith("ying")&&t.length>5?t=t.slice(0,-4)+"y":t.endsWith("ing")&&t.length>5?t=t.slice(0,-3):t.endsWith("ed")&&t.length>4&&(t=t.slice(0,-2)),t.endsWith("e")&&t.length>3&&(t=t.slice(0,-1)),t}var bl,wl,Ae=O(()=>{"use strict";E();Wi();bl=new Map;wl=new Set(["the","a","an","is","are","was","were","be","been","being","do","does","did","how","what","why","when","where","which","who","whom","this","that","these","those","of","in","on","to","for","with","and","or","but","if","then","else","than","as","at","by","from","into","about","it","its","i","you","we","they","he","she","there","here","can","could","should","would","will","shall","may","might","must","have","has","had","not","no","yes","so","such","only","any","some","all","get","set","use","used","using","work","works","working","handle","handled","happen","happens","default","value","values","please","explain","tell","me","my","our"])});function Af(e){let t="";for(let n=0;n{"use strict";E();Ae()});function xl(e,t){return e===Wn||t.has(e)||e.startsWith(".codeindex-edit-")}function If(e,t){let n=t.find(r=>r.name===Wn);if(!n)return;let s=I(e,Wn);try{if(n.isDirectory())return s;let r=xe(s);if(r.isDirectory())return s;if(!r.isFile()||r.size>Tf)return;let o=Q(s,"utf8");if(!o.startsWith(Sl))return;let a=o.slice(Sl.length).replace(/[\r\n]+$/,"");if(!a)return;let l=Ee(e,a),c=I(l,"commondir");return H(c)?Ee(l,Q(c,"utf8").trim()):l}catch{return}}function Ff(e){if(!e)return"";try{let t=I(e,"info","exclude");return H(t)?G(t):""}catch{return""}}function Pe(e,t={}){let n=t.maxFileBytes??1048576,s=t.maxFiles??1/0,r=t.gitignore!==!1,o=t.ignoreDirs?new Set(t.ignoreDirs):qt,a=[],l=!1,c=0,d;try{d=_n(e)}catch{return{files:a,capped:l,excluded:c}}let m=p=>p===d||p.startsWith(d+"/"),u=[{dir:e,rel:"",rules:[]}],f=new Set;e:for(;u.length;){let p=u.pop(),g;try{g=_n(p.dir)}catch{continue}if(f.has(g)||(f.add(g),!m(g)))continue;let h;try{h=hn(p.dir,{withFileTypes:!0}).sort((_,k)=>_.namek.name?1:0)}catch{continue}let y=h.some(_=>_.name===Wn)?If(p.dir,h):void 0;if(p.rel&&y){c++;continue}let S=p.rules;if(r&&!p.rel){let _=ls(Ff(y),"");_.length&&(S=[...S,..._])}if(r&&h.some(_=>_.name===".gitignore")){let _=ls(G(I(p.dir,".gitignore")),p.rel);_.length&&(S=[...S,..._])}for(let _ of h){let k=_.name,b=I(p.dir,k),w=p.rel?`${p.rel}/${k}`:k,v=_.isSymbolicLink();if(k===Wn||_.isDirectory()&&xl(k,o))continue;let A;try{A=v?xe(b):pl(b)}catch{continue}if(A.isDirectory()){if(xl(k,o)||v||r&&S.length&&cs(S,w,!0))continue;u.push({dir:b,rel:w,rules:S});continue}if(!A.isFile())continue;if(A.size>n){c++;continue}if(qi.has(k.toLowerCase())){c++;continue}let N=rs(k).toLowerCase();if(Gi.has(N)){c++;continue}if(k.endsWith(".min.js")||k.endsWith(".min.css")){c++;continue}if(r&&S.length&&cs(S,w,!1)){c++;continue}if(v)try{if(!m(_n(b)))continue}catch{continue}if(a.length>=s){l=!0;break e}a.push({rel:w.split("/").join("/"),abs:b,size:A.size,ext:N,mtimeMs:A.mtimeMs})}}return{files:a,capped:l,excluded:c}}function G(e){try{let t=Q(e);if(t.length>=2&&t[0]===255&&t[1]===254)return t.subarray(2,2+(t.length-2&-2)).toString("utf16le");if(t.length>=2&&t[0]===254&&t[1]===255){let s=F.from(t.subarray(2,2+(t.length-2&-2)));return s.swap16(),s.toString("utf16le")}if(t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191)return t.subarray(3).toString("utf8");if(t.includes(0))return"";let n=t.toString("utf8");return n.includes("\uFFFD")?t.toString("latin1"):n}catch{return""}}var qt,Wn,Sl,Tf,qi,Gi,Nf,Fe=O(()=>{"use strict";E();Se();ae();Hi();qt=new Set([".git","node_modules",".pnpm","bower_components","vendor","dist","build","out","target",".next",".nuxt",".svelte-kit",".turbo","coverage","__pycache__",".venv","venv",".tox",".mypy_cache",".pytest_cache",".gradle",".idea",".vscode",".cache","tmp",".ultraindex",".codeindex","Pods","DerivedData",".terraform","elm-stuff",".dart_tool"]),Wn=".git";Sl="gitdir: ",Tf=4096;qi=new Set(["package-lock.json","npm-shrinkwrap.json","yarn.lock","pnpm-lock.yaml","bun.lockb","composer.lock","cargo.lock","poetry.lock","pipfile.lock","gemfile.lock","go.sum","flake.lock","packages.lock.json","podfile.lock","mix.lock"]),Gi=new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".icns",".svg",".pdf",".zip",".gz",".tar",".tgz",".bz2",".xz",".7z",".rar",".jar",".war",".class",".so",".dylib",".dll",".exe",".bin",".o",".a",".wasm",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".mov",".avi",".webm",".wav",".flac",".ogg",".lock",".min.js",".map"]),Nf=2e4});function us(e){let t=pe("git",["-C",e,"rev-parse","--short","HEAD"]);return t.ok?t.stdout.trim():void 0}function Ji(e){return pe("git",["-C",e,"rev-parse","--is-inside-work-tree"]).ok}function Ki(e,t){let n=l=>pe("git",[...lt(e),"rev-parse","--verify","--quiet",`${l}^{commit}`]).ok,s=l=>{let c=pe("git",[...lt(e),"merge-base",l,"HEAD"]);return c.ok?c.stdout.trim():void 0};if(t){if(!n(t))return{error:`base ref "${t}" not found (tried git rev-parse --verify)`};let l=s(t);return l?{ref:t,mergeBase:l}:{error:`no merge-base between "${t}" and HEAD`}}let r=pe("git",[...lt(e),"symbolic-ref","--quiet","refs/remotes/origin/HEAD"]),o=[...r.ok?[r.stdout.trim().replace("refs/remotes/","")]:[],"origin/main","origin/master","main","master"];for(let l of o){if(!n(l))continue;let c=s(l);if(c)return{ref:l,mergeBase:c}}let a=pe("git",[...lt(e),"rev-parse","HEAD"]);return a.ok?{ref:"HEAD",mergeBase:a.stdout.trim(),note:"base: HEAD (no default branch found \u2014 reviewing uncommitted work)"}:{error:"cannot resolve HEAD \u2014 empty repository?"}}function Xi(e,t){let n=[],s=pe("git",[...lt(e),"diff","-z","-M","--name-status",...Vi(t)]);if(s.ok){let a=s.stdout.split("\0"),l=0;for(;l[a.path,a])),o=pe("git",[...lt(e),"diff","-z","-M","--numstat",...Vi(t)]);if(o.ok){let a=o.stdout.split("\0"),l=0;for(;ln.length>0):[]}function Ze(e,t={}){let n=new Map,s=t.since?[`${t.since}..HEAD`]:[],r=pe("git",[...lt(e),"log",...s,"--pretty=format:","--name-only","-z"]);if(!r.ok)return{churn:n,ok:!1};for(let o of r.stdout.split("\0")){let a=o.replace(/^\n+/,"").trim();a&&n.set(a,(n.get(a)??0)+1)}return{churn:n,ok:!0}}function Of(e,t){let n=new Set,s=pe("git",[...lt(e),"diff","-z","--name-only",t,"--"]);if(s.ok)for(let r of s.stdout.split("\0"))r&&n.add(r);for(let r of ms(e))n.add(r);return n}var lt,Vi,Gt=O(()=>{"use strict";E();Ae();lt=e=>["-C",e,"-c","core.quotePath=false"],Vi=e=>e.staged?["--cached"]:[e.mergeBase]});function Pf(e){return typeof e=="string"?new TextEncoder().encode(e):e}function $f(e,t){if(e.length===1)return e[0];let n=new Uint8Array(t),s=0;for(let r of e)n.set(r,s),s+=r.byteLength;return n}function El(e){let t=Math.floor(e.byteLength/536870912|0),n=e.byteLength<<3>>>0,s=Math.ceil((e.byteLength+9)/64),r=new Uint8Array(s*64);r.set(e),r[e.byteLength]=128;let o=new DataView(r.buffer);return o.setUint32(r.byteLength-8,t,!1),o.setUint32(r.byteLength-4,n,!1),o}function Yi(e,t){return(e<>>32-t)>>>0}function ct(e,t){return(e>>>t|e<<32-t)>>>0}function Df(e){let t=El(e),n=1732584193,s=4023233417,r=2562383102,o=271733878,a=3285377520,l=new Uint32Array(80);for(let m=0;m>>0;h=g,g=p,p=Yi(f,30),f=u,u=k}n=n+u>>>0,s=s+f>>>0,r=r+p>>>0,o=o+g>>>0,a=a+h>>>0}let c=new Uint8Array(20),d=new DataView(c.buffer);return[n,s,r,o,a].forEach((m,u)=>d.setUint32(u*4,m,!1)),c}function jf(e){let t=El(e),n=1779033703,s=3144134277,r=1013904242,o=2773480762,a=1359893119,l=2600822924,c=528734635,d=1541459225,m=new Uint32Array(64);for(let p=0;p>>3,U=ct(N,17)^ct(N,19)^N>>>10;m[v]=m[v-16]+T+m[v-7]+U>>>0}let g=n,h=s,y=r,S=o,_=a,k=l,b=c,w=d;for(let v=0;v<64;v++){let A=ct(_,6)^ct(_,11)^ct(_,25),N=_&k^~_&b,T=w+A+N+Lf[v]+m[v]>>>0,U=ct(g,2)^ct(g,13)^ct(g,22),te=g&h^g&y^h&y,V=U+te>>>0;w=b,b=k,k=_,_=S+T>>>0,S=y,y=h,h=g,g=T+V>>>0}n=n+g>>>0,s=s+h>>>0,r=r+y>>>0,o=o+S>>>0,a=a+_>>>0,l=l+k>>>0,c=c+b>>>0,d=d+w>>>0}let u=new Uint8Array(32),f=new DataView(u.buffer);return[n,s,r,o,a,l,c,d].forEach((p,g)=>f.setUint32(g*4,p,!1)),u}function Wf(e){let t="";for(let n of e)t+=kl[n>>4]+kl[n&15];return t}function Uf(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function yn(e){let t=e.toLowerCase().replace("-","");if(t!=="sha1"&&t!=="sha256")throw new Error(`createHash: unsupported algorithm "${e}" in the browser build (sha1, sha256)`);let n=[],s=0,r={update(o){let a=Pf(o);return n.push(a),s+=a.byteLength,r},digest(o){let a=s===0?new Uint8Array(0):$f(n,s),l=t==="sha1"?Df(a):jf(a);return o==="hex"?Wf(l):o==="base64"?Uf(l):l}};return r}var Lf,kl,ps=O(()=>{E();Lf=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);kl="0123456789abcdef"});function Ce(e){return yn("sha1").update(e).digest("hex")}function Bf(e,t=8){return Ce(e).slice(0,t)}var Tt=O(()=>{"use strict";E();ps()});function re(e,t,n,s){let r=[],o=t.split(/\r?\n/);for(let a=0;a{if(!a){a=[0];for(let y=0;y>>1;a[y]<=p?g=y+1:h=y}return g},c=new Map;for(let p of n)c.has(p.name)||c.set(p.name,p);let d=qf(t),m=/export\s*\{([\s\S]*?)\}\s*(?:from\s*['"]([^'"]+)['"])?\s*;?/g,u;for(;(u=m.exec(d))&&r.length{"use strict";E();zf={".ts":"typescript",".tsx":"typescript",".mts":"typescript",".cts":"typescript",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".pyi":"python",".go":"go",".rb":"ruby",".rake":"ruby",".java":"java",".rs":"rust",".c":"c",".h":"c",".cc":"cpp",".cpp":"cpp",".cxx":"cpp",".hpp":"cpp",".cs":"csharp",".php":"php",".swift":"swift",".kt":"kotlin",".kts":"kotlin",".scala":"scala",".sc":"scala",".clj":"clojure",".ex":"elixir",".exs":"elixir",".erl":"erlang",".hs":"haskell",".dart":"dart",".lua":"lua",".sh":"shell",".bash":"shell",".zsh":"shell",".ksh":"shell",".fish":"shell",".hh":"cpp",".m":"objective-c",".mm":"objective-c",".sql":"sql",".graphql":"graphql",".gql":"graphql",".proto":"protobuf",".md":"markdown",".mdx":"markdown",".rst":"restructuredtext",".txt":"text",".json":"json",".yaml":"yaml",".yml":"yaml",".toml":"toml",".ini":"ini",".html":"html",".css":"css",".scss":"scss",".vue":"vue",".svelte":"svelte",".astro":"astro",".zig":"zig",".hcl":"hcl",".tf":"terraform",".tfvars":"terraform",".sol":"solidity"};Hf=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]);Qi=47,vl=42,Rl=10,Gf=34,Vf=39,Jf=96,Kf=92,gs=400});function Qf(e){return(e.split("/").pop()??"").replace(/\.[^.]+$/,"")}function em(e,t){let n=o=>{if(!(!o||o==="default"))for(let a of t)a.name===o&&(a.exported=!0)},s=(o,a)=>{for(let l of o.split(",")){let c=l.trim().replace(/^type\s+/,"");if(!c)continue;let d=/^([\w$]+)\s+as\s+([\w$]+)$/.exec(c);if(d){d[2]!=="default"&&n(d[1]);continue}if(a){let m=/^([\w$]+)\s*:\s*([\w$]+)$/.exec(c);if(m){n(m[1]),n(m[2]);continue}}n(/^([\w$]+)/.exec(c)?.[1])}},r;for(Ml.lastIndex=0;r=Ml.exec(e);)r[2]||s(r[1]??"",!1);for(Cl.lastIndex=0;r=Cl.exec(e);)s(r[1]??"",!0);for(Al.lastIndex=0;r=Al.exec(e);)n(r[2])}var Xf,Zf,Yf,Ml,Cl,Al,Tl,Il=O(()=>{"use strict";E();Re();Xf=[{re:/^\s*export\s+(?:async\s+)?function\s+(?[\w$]+)/,kind:"function",exported:!0},{re:/^\s*export\s+default\s+(?:async\s+)?function\s+(?[\w$]+)/,kind:"function",exported:!0},{re:/^\s*export\s+default\s+(?:abstract\s+)?class\s+(?!extends\b)(?[\w$]+)/,kind:"class",exported:!0},{re:/^\s*(?:async\s+)?function\s+(?[\w$]+)/,kind:"function",exported:!1},{re:/^\s*export\s+(?:abstract\s+)?class\s+(?[\w$]+)/,kind:"class",exported:!0},{re:/^\s*(?:abstract\s+)?class\s+(?[\w$]+)/,kind:"class",exported:!1},{re:/^\s*export\s+interface\s+(?[\w$]+)/,kind:"interface",exported:!0},{re:/^\s*interface\s+(?[\w$]+)/,kind:"interface",exported:!1},{re:/^\s*export\s+type\s+(?[\w$]+)/,kind:"type",exported:!0},{re:/^\s*type\s+(?[\w$]+)\s*[=<]/,kind:"type",exported:!1},{re:/^\s*export\s+enum\s+(?[\w$]+)/,kind:"enum",exported:!0},{re:/^\s*export\s+const\s+enum\s+(?[\w$]+)/,kind:"enum",exported:!0},{re:/^\s*export\s+(?:const|let|var)\s+(?[\w$]+)\s*[:=]/,kind:"const",exported:!0},{re:/^\s*exports\.(?[\w$]+)\s*=/,kind:"const",exported:!0},{re:/^\s*module\.exports\.(?[\w$]+)\s*=/,kind:"const",exported:!0},{re:/^\s*(?:const|let)\s+(?[\w$]+)\s*=\s*(?:async\s*)?\([^)]*\)\s*(?::[^=]+)?=>/,kind:"const",exported:!1},{re:/^(?:const|let|var)\s+(?[\w$]+)\s*[:=]/,kind:"const",exported:!1},{re:/^\s*export\s+default\s+(?[A-Za-z_$][\w$]*)\s*;?\s*$/,kind:"default",exported:!0}],Zf=/^\s*export\s+default\s+(?:async\s+)?(?:function|class)?\s*(?:\(|\{|extends\b)/,Yf=/^\s*export\s+default\s+(?:async\s+)?(?:function|class)\s+(?!extends\b)[\w$]+/;Ml=/export\s*\{([^}]*)\}\s*(from\b)?/g,Cl=/module\.exports\s*=\s*\{([^}]*)\}/g,Al=/(^|\n)\s*export\s+default\s+([A-Za-z_$][\w$]*)\s*;?\s*(?=\n|$)/g;Tl={lang:"javascript/typescript",exts:[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"],extract(e,t){let n=e.match(/\.(ts|tsx|mts|cts)$/)?"typescript":"javascript",s=re(e,t,n,Xf),r=t.split(/\r?\n/);for(let o=0;o{"use strict";E();Re();hs=e=>!e.startsWith("_")||e.startsWith("__"),tm=[{re:/^(?:async\s+)?def\s+(?[\w]+)\s*\(/,kind:"function",exported:e=>hs(e.groups.name)},{re:/^\s+(?:async\s+)?def\s+(?[\w]+)\s*\(/,kind:"method",exported:e=>hs(e.groups.name)},{re:/^class\s+(?[\w]+)/,kind:"class",exported:e=>hs(e.groups.name)},{re:/^\s+class\s+(?[\w]+)/,kind:"class",exported:e=>hs(e.groups.name)}],Fl={lang:"python",exts:[".py",".pyi"],extract(e,t){return re(e,t,"python",tm)}}});var Un,nm,Ol,Pl=O(()=>{"use strict";E();Re();Un=e=>/^[A-Z]/.test(e),nm=[{re:/^func\s+\([^)]*\)\s+(?[\w]+)\s*\(/,kind:"method",exported:e=>Un(e.groups.name)},{re:/^func\s+(?[\w]+)\s*\(/,kind:"function",exported:e=>Un(e.groups.name)},{re:/^type\s+(?[\w]+)\s+struct\b/,kind:"struct",exported:e=>Un(e.groups.name)},{re:/^type\s+(?[\w]+)\s+interface\b/,kind:"interface",exported:e=>Un(e.groups.name)},{re:/^type\s+(?[\w]+)\s+/,kind:"type",exported:e=>Un(e.groups.name)}],Ol={lang:"go",exts:[".go"],extract(e,t){return re(e,t,"go",nm)}}});var rm,$l,Dl=O(()=>{"use strict";E();Re();rm=[{re:/^\s*def\s+(?:self\.)?(?[\w?!=]+)/,kind:"method",exported:!0},{re:/^\s*class\s+(?[\w:]+)/,kind:"class",exported:!0},{re:/^\s*module\s+(?[\w:]+)/,kind:"module",exported:!0}],$l={lang:"ruby",exts:[".rb",".rake"],extract(e,t){return re(e,t,"ruby",rm)}}});var sm,Ll,jl=O(()=>{"use strict";E();Re();sm=[{re:/^\s*(?:public|protected|private)?\s*(?:abstract\s+|final\s+)?class\s+(?[\w]+)/,kind:"class",exported:(e,t)=>/\bpublic\b/.test(t)},{re:/^\s*(?:public|protected|private)?\s*interface\s+(?[\w]+)/,kind:"interface",exported:(e,t)=>/\bpublic\b/.test(t)},{re:/^\s*(?:public|protected|private)?\s*enum\s+(?[\w]+)/,kind:"enum",exported:(e,t)=>/\bpublic\b/.test(t)},{re:/^\s*(?:public|protected|private)\s+(?:static\s+|final\s+|abstract\s+|synchronized\s+)*[\w<>\[\],.?\s]+\s+(?[\w]+)\s*\(/,kind:"method",exported:(e,t)=>/\bpublic\b/.test(t)}],Ll={lang:"java",exts:[".java"],extract(e,t){return re(e,t,"java",sm)}}});var Bn,im,Wl,Ul=O(()=>{"use strict";E();Re();Bn=(e,t)=>/^\s*pub\b/.test(t),im=[{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?(?:async\s+)?(?:unsafe\s+)?fn\s+(?[\w]+)/,kind:"function",exported:Bn},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?struct\s+(?[\w]+)/,kind:"struct",exported:Bn},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?enum\s+(?[\w]+)/,kind:"enum",exported:Bn},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?trait\s+(?[\w]+)/,kind:"trait",exported:Bn},{re:/^\s*(?:pub(?:\([^)]*\))?\s+)?type\s+(?[\w]+)/,kind:"type",exported:Bn}],Wl={lang:"rust",exts:[".rs"],extract(e,t){return re(e,t,"rust",im)}}});var zn,om,Bl,zl=O(()=>{"use strict";E();Re();zn=(e,t)=>/\b(public|internal)\b/.test(t),om=[{re:/^\s*(?:public|internal|protected|private)?\s*(?:static\s+|sealed\s+|abstract\s+|partial\s+)*(?:class|record)\s+(?\w+)/,kind:"class",exported:zn},{re:/^\s*(?:public|internal|protected|private)?\s*(?:partial\s+)?interface\s+(?\w+)/,kind:"interface",exported:zn},{re:/^\s*(?:public|internal|protected|private)?\s*(?:readonly\s+)?(?:ref\s+)?struct\s+(?\w+)/,kind:"struct",exported:zn},{re:/^\s*(?:public|internal|protected|private)?\s*enum\s+(?\w+)/,kind:"enum",exported:zn},{re:/^\s*(?:public|internal|protected|private)\s+(?:static\s+|virtual\s+|override\s+|async\s+|sealed\s+|abstract\s+|new\s+)*[\w<>\[\],.?]+\s+(?\w+)\s*(?:<[^>]*>)?\s*\(/,kind:"method",exported:zn}],Bl={lang:"csharp",exts:[".cs"],extract(e,t){return re(e,t,"csharp",om)}}});var am,Hl,ql=O(()=>{"use strict";E();Re();am=[{re:/^\s*(?:abstract\s+|final\s+)*class\s+(?\w+)/,kind:"class",exported:!0},{re:/^\s*interface\s+(?\w+)/,kind:"interface",exported:!0},{re:/^\s*trait\s+(?\w+)/,kind:"trait",exported:!0},{re:/^\s*enum\s+(?\w+)/,kind:"enum",exported:!0},{re:/^\s*(?:public\s+|protected\s+|private\s+|static\s+|abstract\s+|final\s+)*function\s+(?\w+)\s*\(/,kind:"function",exported:(e,t)=>!/\b(private|protected)\b/.test(t)}],Hl={lang:"php",exts:[".php"],extract(e,t){return re(e,t,"php",am)}}});var Hn,ys,lm,Gl,Vl=O(()=>{"use strict";E();Re();Hn=(e,t)=>!/\b(private|fileprivate)\b/.test(t),ys="(?:public\\s+|open\\s+|internal\\s+|private\\s+|fileprivate\\s+)?(?:final\\s+)?",lm=[{re:new RegExp(`^\\s*${ys}class\\s+(?\\w+)`),kind:"class",exported:Hn},{re:new RegExp(`^\\s*${ys}struct\\s+(?\\w+)`),kind:"struct",exported:Hn},{re:new RegExp(`^\\s*${ys}enum\\s+(?\\w+)`),kind:"enum",exported:Hn},{re:new RegExp(`^\\s*${ys}protocol\\s+(?\\w+)`),kind:"protocol",exported:Hn},{re:/^\s*(?:public\s+|open\s+|internal\s+|private\s+|fileprivate\s+)?(?:static\s+|class\s+|final\s+|override\s+|mutating\s+|@\w+\s+)*func\s+(?\w+)/,kind:"function",exported:Hn}],Gl={lang:"swift",exts:[".swift"],extract(e,t){return re(e,t,"swift",lm)}}});var bs,cm,Jl,Kl=O(()=>{"use strict";E();Re();bs=(e,t)=>!/\b(private|internal)\b/.test(t),cm=[{re:/^\s*(?:public\s+|internal\s+|private\s+|abstract\s+|sealed\s+|open\s+|final\s+|data\s+)*class\s+(?\w+)/,kind:"class",exported:bs},{re:/^\s*(?:public\s+|internal\s+|private\s+|fun\s+)?interface\s+(?\w+)/,kind:"interface",exported:bs},{re:/^\s*(?:public\s+|internal\s+|private\s+|companion\s+)?object\s+(?\w+)/,kind:"object",exported:bs},{re:/^\s*(?:public\s+|internal\s+|private\s+|protected\s+|override\s+|open\s+|abstract\s+|suspend\s+|inline\s+|operator\s+)*fun\s+(?:<[^>]*>\s+)?(?\w+)\s*\(/,kind:"function",exported:bs}],Jl={lang:"kotlin",exts:[".kt",".kts"],extract(e,t){return re(e,t,"kotlin",cm)}}});var dm,um,Xl,Zl=O(()=>{"use strict";E();Re();dm="(?!\\s*(?:if|for|while|switch|return|else|do|sizeof|typedef)\\b)",um=[{re:/^\s*(?:class|struct)\s+(?[A-Za-z_]\w+)\s*(?:[:{]|$)/,kind:"class",exported:!0},{re:/^\s*namespace\s+(?[A-Za-z_]\w+)/,kind:"namespace",exported:!0},{re:/^\s*(?:typedef\s+)?(?:struct|enum|union)\s+(?[A-Za-z_]\w+)\s*\{/,kind:"struct",exported:!0},{re:new RegExp(`^${dm}[A-Za-z_][\\w\\s\\*&<>:,]*?\\b(?[A-Za-z_]\\w+)\\s*\\([^;{]*\\)\\s*(?:const)?\\s*\\{?\\s*$`),kind:"function",exported:!0}],Xl={lang:"c/cpp",exts:[".c",".h",".cc",".cpp",".cxx",".hpp",".hh"],extract(e,t){return re(e,t,e.match(/\.(c|h)$/)?"c":"cpp",um)}}});var fm,Yl,Ql=O(()=>{"use strict";E();Re();fm=[{re:/^\s*local\s+function\s+(?[\w.:]+)\s*\(/,kind:"function",exported:!1},{re:/^\s*function\s+(?[\w.:]+)\s*\(/,kind:"function",exported:!0},{re:/^\s*(?:local\s+)?(?[\w.]+)\s*=\s*function\s*\(/,kind:"function",exported:!0}],Yl={lang:"lua",exts:[".lua"],extract(e,t){return re(e,t,"lua",fm)}}});var mm,ec,tc=O(()=>{"use strict";E();Re();mm=[{re:/^\s*function\s+(?[\w:-]+)\s*(?:\(\))?\s*\{?/,kind:"function",exported:!0},{re:/^\s*(?[A-Za-z_][\w:-]*)\s*\(\)\s*\{?/,kind:"function",exported:!0}],ec={lang:"shell",exts:[".sh",".bash",".zsh",".ksh"],extract(e,t){return re(e,t,"shell",mm)}}});var pm,nc,rc=O(()=>{"use strict";E();Re();pm=[{re:/^\s*defmodule\s+(?[\w.]+)/,kind:"module",exported:!0},{re:/^\s*defp\s+(?[\w?!]+)/,kind:"function",exported:!1},{re:/^\s*def\s+(?[\w?!]+)/,kind:"function",exported:!0},{re:/^\s*defmacrop?\s+(?[\w?!]+)/,kind:"macro",exported:!0}],nc={lang:"elixir",exts:[".ex",".exs"],extract(e,t){return re(e,t,"elixir",pm)}}});var gm,sc,ic=O(()=>{"use strict";E();Re();gm=[{re:/^\s*(?:final\s+|sealed\s+|abstract\s+|implicit\s+)*(?:case\s+)?class\s+(?\w+)/,kind:"class",exported:!0},{re:/^\s*(?:sealed\s+)?trait\s+(?\w+)/,kind:"trait",exported:!0},{re:/^\s*(?:case\s+)?object\s+(?\w+)/,kind:"object",exported:!0},{re:/^\s*(?:override\s+|final\s+|private\s+|protected\s+|implicit\s+)*def\s+(?\w+)/,kind:"def",exported:(e,t)=>!/\b(private|protected)\b/.test(t)}],sc={lang:"scala",exts:[".scala",".sc"],extract(e,t){return re(e,t,"scala",gm)}}});var It,_m,oc,ac=O(()=>{"use strict";E();Re();It=e=>!(e.groups?.name??"").startsWith("_"),_m=[{re:/^\s*(?:abstract\s+|base\s+|final\s+|sealed\s+|interface\s+)*class\s+(?\w+)/,kind:"class",exported:It},{re:/^\s*mixin\s+(?\w+)/,kind:"mixin",exported:It},{re:/^\s*extension\s+(?\w+)/,kind:"extension",exported:It},{re:/^\s*enum\s+(?\w+)/,kind:"enum",exported:It},{re:/^\s*typedef\s+(?\w+)/,kind:"type",exported:It},{re:/^\s*(?:@\w+\s+)*(?:static\s+|final\s+|const\s+|external\s+|abstract\s+)*(?:[\w<>,?\[\]. ]+\s+)?(?\w+)\s*\([^)]*\)\s*(?:async\s*\*?\s*)?(?:=>|\{|;)/,kind:"function",exported:It},{re:/^\s*(?:static\s+)?[\w<>,?\[\]. ]+\s+get\s+(?\w+)/,kind:"getter",exported:It},{re:/^\s*(?:static\s+)?set\s+(?\w+)\s*\(/,kind:"setter",exported:It}],oc={lang:"dart",exts:[".dart"],extract(e,t){return re(e,t,"dart",_m)}}});function to(e,t,n){let s=eo.get(t),r;if(!s)r=[];else try{r=s.extract(e,n)}catch{r=[]}let o=new Set(r.map(l=>l.name)),a=_s(e,n,r).filter(l=>!o.has(l.name));return a.length?[...r,...a]:r}function no(e){return eo.get(e)?.lang??Vt(e)}var hm,eo,bn=O(()=>{"use strict";E();Re();Il();Nl();Pl();Dl();jl();Ul();zl();ql();Vl();Kl();Zl();Ql();tc();rc();ic();ac();hm=[Tl,Fl,Ol,$l,Ll,Wl,Bl,Hl,Gl,Jl,Xl,Yl,ec,nc,sc,oc],eo=new Map;for(let e of hm)for(let t of e.exts)eo.set(t,e)});function lc(e,t){let n=e.split("/").pop().toLowerCase();return bm.has(t)||ym.test(n)||wm.test(e)}function km(e,t){let n=e.split("/").pop().toLowerCase();return xm.has(n)||Sm.has(t)}function cc(e){return!Em.has(no(e))}function qn(e,t){return cc(t)?"code":lc(e,t)?"doc":km(e,t)?"config":"other"}var ym,bm,wm,xm,Sm,ro,Em,ws=O(()=>{"use strict";E();bn();ym=/^(readme|changelog|contributing|history|news|authors|notice|security|code_of_conduct|faq|getting[-_]?started|usage|guide|tutorial)\b/i,bm=new Set([".md",".mdx",".rst",".adoc",".txt"]),wm=/^(docs?|documentation|wiki|guides?|website|site|book)\//i,xm=new Set(["package.json","pnpm-workspace.yaml","tsconfig.json","jsconfig.json","pyproject.toml","setup.py","setup.cfg","requirements.txt","pipfile","go.mod","cargo.toml","gemfile","pom.xml","build.gradle","build.gradle.kts","composer.json","mix.exs","pubspec.yaml","build.sbt","dockerfile","docker-compose.yml","docker-compose.yaml","makefile",".env.example","manifest.json"]),Sm=new Set([".json",".yaml",".yml",".toml",".ini",".cfg"]),ro=new Set([".md",".mdx"]);Em=new Set(["markdown","restructuredtext","text","json","yaml","toml","ini","other","html","css","scss"])});function vm(e){let t="";for(let n=0;nt.some(s=>s.test(n))}function dc(e){if(!e||e.length===0)return null;let t=bt(e.filter(s=>!s.startsWith("!"))),n=bt(e.filter(s=>s.startsWith("!")).map(s=>s.slice(1)));return s=>(!t||t(s))&&!n?.(s)}var Gn=O(()=>{"use strict";E();Ae()});function M(e,t){return et?1:0}function so(e){return(t,n)=>M(e(t),e(n))}var Y=O(()=>{"use strict";E()});function Rm(e){let t=e.split(/\r?\n/),n=[],s=null;for(let r of t){let o=/^\s*(```+|~~~+)/.exec(r);if(s){o&&r.trim().startsWith(s[0][0].repeat(3).slice(0,3))&&(s=null),n.push("");continue}if(o){s=o[1],n.push("");continue}n.push(r)}return n.join(` +`)}function Mm(e){return!e||e.startsWith("#")||e.startsWith("//")?!0:/^[a-z][a-z0-9+.-]*:/i.test(e)}function uc(e){return e.replace(/!\[[^\]]*\]\([^)]*\)/g,"").replace(/`([^`]*)`/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/[#>*_~-]+/g," ").replace(/\s+/g," ").trim()}function Cm(e){return/[A-Za-zÀ-ɏ]{3,}/.test(e)}function Am(e){return/^(all notable changes to this project|in the interest of fostering|this project adheres to|we as members and leaders|table of contents)\b/i.test(e)}function io(e){let t=e,n,s=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(t);if(s){let y=/(^|\n)title:\s*["']?(.+?)["']?\s*(\n|$)/i.exec(s[1]);y&&(n=y[2].trim()),t=t.slice(s[0].length)}let r=Rm(t),o=r.split(/\r?\n/),a=[],l=n,c,d=!1;for(let y of o){let S=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(y);if(S){let _=uc(S[2]);a.push(_),!l&&S[1].length===1&&(l=_),!c&&S[1].length>=2&&(d=!0);continue}if(!c&&!d){let _=y.trim();if(_&&!/^([-*+]|\d+\.)\s/.test(_)&&!_.startsWith("|")&&!_.startsWith("<")){let k=uc(_);k.length>=8&&Cm(k)&&!k.endsWith(":")&&!Am(k)&&(c=k.slice(0,200))}}}let m=[],u=new Set,f=y=>{let S=y.trim();S=S.replace(/\s+["'(].*$/,"").trim(),S=S.replace(/^<|>$/g,""),!Mm(S)&&(u.has(S)||(u.add(S),m.push({kind:"doc-link",spec:S})))},p=/!?\[[^\]]*\]\(([^)]+)\)/g,g;for(;g=p.exec(r);)f(g[1]);let h=/^\s*\[[^\]]+\]:\s+(\S+)/gm;for(;g=h.exec(r);)f(g[1]);return{title:l,summary:c,headings:a,refs:m}}var oo=O(()=>{"use strict";E()});function Om(e){return e.lengthfc?!1:Nm.test(e)}function Pm(e){let t=e.trim();return!t||t.length>fc||Fm.has(t)?!1:Number.isFinite(Number(t))}function $m(e){let t=e,n=/^(?:[rRbBuUfF]{1,2}|@|\$)?(?:#*)?(['"`])/.exec(t);if(n){let s=n[1],r=t.indexOf(s),o=t.lastIndexOf(s);o>r&&(t=t.slice(r+1,o))}return t}var fc,Tm,Im,Fm,Nm,Ft,xs=O(()=>{"use strict";E();Y();fc=80,Tm=2,Im=256,Fm=new Set(["0","1","-1","2","-2"]),Nm=/[\p{L}\p{N}]/u;Ft=class{seen=new Set;out=[];get full(){return this.out.length>=Im}add(t,n,s){if(this.full||t==="string"&&!Om(n)||t==="number"&&!Pm(n)||t==="regex"&&!n)return;let r=`${t}\0${n}\0${s}`;this.seen.has(r)||(this.seen.add(r),this.out.push({value:n,line:s,kind:t}))}addString(t,n){this.add("string",$m(t),n)}result(){if(this.out.length)return this.out.sort((t,n)=>M(t.value,n.value)||t.line-n.line||M(t.kind,n.kind))}}});function mc(){return"/home"}function Ss(){return typeof navigator<"u"&&navigator?.hardwareConcurrency?navigator.hardwareConcurrency:1}function pc(){return Array.from({length:Ss()},()=>({model:"browser",speed:0,times:{user:0,nice:0,sys:0,idle:0,irq:0}}))}var ao=O(()=>{E()});function ks(e){let t=typeof e=="string"?e:e.href;try{return decodeURIComponent(new URL(t).pathname)}catch{return t}}function Vn(e){return new URL(`file://${e.startsWith("/")?"":"/"}${e}`)}var Es=O(()=>{E()});var lo={};ji(lo,{createRequire:()=>Lm,default:()=>jm});var Lm,jm,co=O(()=>{E();Lm=()=>{throw new Error("node-only API in the browser build")},jm={}});function wn(e){if(e!==Nt)throw new Error("Illegal constructor")}function Kn(e){return!!e&&typeof e.row=="number"&&typeof e.column=="number"}function Sc(e){x=e}function xn(e){try{return new FinalizationRegistry(e)}catch(t){console.error("Unsupported FinalizationRegistry:",t);return}}function _o(e,t,n,s){let r=n-t,o=e.textCallback(t,s);if(o){for(t+=o.length;t0)t+=a.length,o+=a;else break}t>n&&(o=o.slice(0,r))}return o??""}function go(e,t,n,s,r){for(let o=0,a=r.length;o>>0,column:x.getValue(e+W,"i32")>>>0}}function Ec(e,t){Ve(e,t.startPosition),e+=dt,Ve(e,t.endPosition),e+=dt,x.setValue(e,t.startIndex,"i32"),e+=W,x.setValue(e,t.endIndex,"i32"),e+=W}function Rs(e){let t={};return t.startPosition=Jt(e),e+=dt,t.endPosition=Jt(e),e+=dt,t.startIndex=x.getValue(e,"i32")>>>0,e+=W,t.endIndex=x.getValue(e,"i32")>>>0,t}function vc(e,t=L){Ve(t,e.startPosition),t+=dt,Ve(t,e.oldEndPosition),t+=dt,Ve(t,e.newEndPosition),t+=dt,x.setValue(t,e.startIndex,"i32"),t+=W,x.setValue(t,e.oldEndIndex,"i32"),t+=W,x.setValue(t,e.newEndIndex,"i32"),t+=W}function Rc(e){let t=x.getValue(e,"i32"),n=x.getValue(e+=W,"i32"),s=x.getValue(e+=W,"i32");return{major_version:t,minor_version:n,patch_version:s}}async function Mc(moduleArg={}){var moduleRtn,Module=moduleArg,ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope<"u",ENVIRONMENT_IS_NODE=typeof R=="object"&&R.versions?.node&&R.type!="renderer";if(ENVIRONMENT_IS_NODE){let{createRequire:e}=await Promise.resolve().then(()=>(co(),lo));var require=e(import.meta.url)}Module.currentQueryProgressCallback=null,Module.currentProgressCallback=null,Module.currentLogCallback=null,Module.currentParseCallback=null;var arguments_=[],thisProgram="./this.program",quit_=C((e,t)=>{throw t},"quit_"),_scriptName=import.meta.url,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}C(locateFile,"locateFile");var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");_scriptName.startsWith("file:")&&(scriptDirectory=require("path").dirname(require("url").fileURLToPath(_scriptName))+"/"),readBinary=C(e=>{e=isFileURI(e)?new URL(e):e;var t=fs.readFileSync(e);return t},"readBinary"),readAsync=C(async(e,t=!0)=>{e=isFileURI(e)?new URL(e):e;var n=fs.readFileSync(e,t?void 0:"utf8");return n},"readAsync"),R.argv.length>1&&(thisProgram=R.argv[1].replace(/\\/g,"/")),arguments_=R.argv.slice(2),quit_=C((e,t)=>{throw R.exitCode=e,t},"quit_")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}ENVIRONMENT_IS_WORKER&&(readBinary=C(e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)},"readBinary")),readAsync=C(async e=>{if(isFileURI(e))return new Promise((n,s)=>{var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=()=>{if(r.status==200||r.status==0&&r.response){n(r.response);return}s(r.status)},r.onerror=s,r.send(null)});var t=await fetch(e,{credentials:"same-origin"});if(t.ok)return t.arrayBuffer();throw new Error(t.status+" : "+t.url)},"readAsync")}var out=console.log.bind(console),err=console.error.bind(console),dynamicLibraries=[],wasmBinary,ABORT=!1,EXITSTATUS,isFileURI=C(e=>e.startsWith("file://"),"isFileURI"),readyPromiseResolve,readyPromiseReject,wasmMemory,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,HEAP64,HEAPU64,HEAP_DATA_VIEW,runtimeInitialized=!1;function updateMemoryViews(){var e=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e),Module.HEAP64=HEAP64=new BigInt64Array(e),Module.HEAPU64=HEAPU64=new BigUint64Array(e),Module.HEAP_DATA_VIEW=HEAP_DATA_VIEW=new DataView(e),LE_HEAP_UPDATE()}C(updateMemoryViews,"updateMemoryViews");function initMemory(){if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else{var e=Module.INITIAL_MEMORY||33554432;wasmMemory=new WebAssembly.Memory({initial:e/65536,maximum:32768})}updateMemoryViews()}C(initMemory,"initMemory");var __RELOC_FUNCS__=[];function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(onPreRuns)}C(preRun,"preRun");function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),wasmExports.__wasm_call_ctors(),callRuntimeCallbacks(onPostCtors)}C(initRuntime,"initRuntime");function preMain(){}C(preMain,"preMain");function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}C(postRun,"postRun");function abort(e){Module.onAbort?.(e),e="Aborted("+e+")",err(e),ABORT=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw readyPromiseReject?.(t),t}C(abort,"abort");var wasmBinaryFile;function findWasmBinary(){return Module.locateFile?locateFile("web-tree-sitter.wasm"):new URL("web-tree-sitter.wasm",import.meta.url).href}C(findWasmBinary,"findWasmBinary");function getBinarySync(e){if(e==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(e);throw"both async and sync fetching of the wasm failed"}C(getBinarySync,"getBinarySync");async function getWasmBinary(e){if(!wasmBinary)try{var t=await readAsync(e);return new Uint8Array(t)}catch{}return getBinarySync(e)}C(getWasmBinary,"getWasmBinary");async function instantiateArrayBuffer(e,t){try{var n=await getWasmBinary(e),s=await WebAssembly.instantiate(n,t);return s}catch(r){err(`failed to asynchronously prepare wasm: ${r}`),abort(r)}}C(instantiateArrayBuffer,"instantiateArrayBuffer");async function instantiateAsync(e,t,n){if(!e&&!isFileURI(t)&&!ENVIRONMENT_IS_NODE)try{var s=fetch(t,{credentials:"same-origin"}),r=await WebAssembly.instantiateStreaming(s,n);return r}catch(o){err(`wasm streaming compile failed: ${o}`),err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(t,n)}C(instantiateAsync,"instantiateAsync");function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}C(getWasmImports,"getWasmImports");async function createWasm(){function e(o,a){wasmExports=o.exports,wasmExports=relocateExports(wasmExports,1024);var l=getDylinkMetadata(a);return l.neededDynlibs&&(dynamicLibraries=l.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(wasmExports,"main"),LDSO.init(),loadDylibs(),__RELOC_FUNCS__.push(wasmExports.__wasm_apply_data_relocs),assignWasmExports(wasmExports),wasmExports}C(e,"receiveInstance");function t(o){return e(o.instance,o.module)}C(t,"receiveInstantiationResult");var n=getWasmImports();if(Module.instantiateWasm)return new Promise((o,a)=>{Module.instantiateWasm(n,(l,c)=>{o(e(l,c))})});wasmBinaryFile??=findWasmBinary();var s=await instantiateAsync(wasmBinary,wasmBinaryFile,n),r=t(s);return r}C(createWasm,"createWasm");class ExitStatus{static{C(this,"ExitStatus")}name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`,this.status=t}}var GOT={},currentModuleWeakSymbols=new Set([]),GOTHandler={get(e,t){var n=GOT[t];return n||(n=GOT[t]=new WebAssembly.Global({value:"i32",mutable:!0})),currentModuleWeakSymbols.has(t)||(n.required=!0),n}},LE_ATOMICS_NATIVE_BYTE_ORDER=[],LE_HEAP_LOAD_F32=C(e=>HEAP_DATA_VIEW.getFloat32(e,!0),"LE_HEAP_LOAD_F32"),LE_HEAP_LOAD_F64=C(e=>HEAP_DATA_VIEW.getFloat64(e,!0),"LE_HEAP_LOAD_F64"),LE_HEAP_LOAD_I16=C(e=>HEAP_DATA_VIEW.getInt16(e,!0),"LE_HEAP_LOAD_I16"),LE_HEAP_LOAD_I32=C(e=>HEAP_DATA_VIEW.getInt32(e,!0),"LE_HEAP_LOAD_I32"),LE_HEAP_LOAD_I64=C(e=>HEAP_DATA_VIEW.getBigInt64(e,!0),"LE_HEAP_LOAD_I64"),LE_HEAP_LOAD_U32=C(e=>HEAP_DATA_VIEW.getUint32(e,!0),"LE_HEAP_LOAD_U32"),LE_HEAP_STORE_F32=C((e,t)=>HEAP_DATA_VIEW.setFloat32(e,t,!0),"LE_HEAP_STORE_F32"),LE_HEAP_STORE_F64=C((e,t)=>HEAP_DATA_VIEW.setFloat64(e,t,!0),"LE_HEAP_STORE_F64"),LE_HEAP_STORE_I16=C((e,t)=>HEAP_DATA_VIEW.setInt16(e,t,!0),"LE_HEAP_STORE_I16"),LE_HEAP_STORE_I32=C((e,t)=>HEAP_DATA_VIEW.setInt32(e,t,!0),"LE_HEAP_STORE_I32"),LE_HEAP_STORE_I64=C((e,t)=>HEAP_DATA_VIEW.setBigInt64(e,t,!0),"LE_HEAP_STORE_I64"),LE_HEAP_STORE_U32=C((e,t)=>HEAP_DATA_VIEW.setUint32(e,t,!0),"LE_HEAP_STORE_U32"),callRuntimeCallbacks=C(e=>{for(;e.length>0;)e.shift()(Module)},"callRuntimeCallbacks"),onPostRuns=[],addOnPostRun=C(e=>onPostRuns.push(e),"addOnPostRun"),onPreRuns=[],addOnPreRun=C(e=>onPreRuns.push(e),"addOnPreRun"),UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder:void 0,findStringEnd=C((e,t,n,s)=>{var r=t+n;if(s)return r;for(;e[t]&&!(t>=r);)++t;return t},"findStringEnd"),UTF8ArrayToString=C((e,t=0,n,s)=>{var r=findStringEnd(e,t,n,s);if(r-t>16&&e.buffer&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,r));for(var o="";t>10,56320|d&1023)}}return o},"UTF8ArrayToString"),getDylinkMetadata=C(e=>{var t=0,n=0;function s(){return e[t++]}C(s,"getU8");function r(){for(var V=0,z=1;;){var P=e[t++];if(V+=(P&127)*z,z*=128,!(P&128))break}return V}C(r,"getLEB");function o(){var V=r();return t+=V,UTF8ArrayToString(e,t-V,V)}C(o,"getString");function a(){for(var V=r(),z=[];V--;)z.push(o());return z}C(a,"getStringList");function l(V,z){if(V)throw new Error(z)}if(C(l,"failIf"),e instanceof WebAssembly.Module){var c=WebAssembly.Module.customSections(e,"dylink.0");l(c.length===0,"need dylink section"),e=new Uint8Array(c[0]),n=e.length}else{var d=new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer),m=d[0]==1836278016||d[0]==6386541;l(!m,"need to see wasm magic number"),l(e[8]!==0,"need the dylink section to be first"),t=9;var u=r();n=t+u;var f=o();l(f!=="dylink.0")}for(var p={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]},g=1,h=2,y=3,S=4,_=5,k=256,b=3,w=1;t>1)*2);case"i32":return LE_HEAP_LOAD_I32((e>>2)*4);case"i64":return LE_HEAP_LOAD_I64((e>>3)*8);case"float":return LE_HEAP_LOAD_F32((e>>2)*4);case"double":return LE_HEAP_LOAD_F64((e>>3)*8);case"*":return LE_HEAP_LOAD_U32((e>>2)*4);default:abort(`invalid type for getValue: ${t}`)}}C(getValue,"getValue");var newDSO=C((e,t,n)=>{var s={refcount:1/0,name:e,exports:n,global:!0};return LDSO.loadedLibsByName[e]=s,t!=null&&(LDSO.loadedLibsByHandle[t]=s),s},"newDSO"),LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}},___heap_base=82240,alignMemory=C((e,t)=>Math.ceil(e/t)*t,"alignMemory"),getMemory=C(e=>{if(runtimeInitialized)return _calloc(e,1);var t=___heap_base,n=t+alignMemory(e,16);return ___heap_base=n,GOT.__heap_base.value=n,t},"getMemory"),isInternalSym=C(e=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(e)||e.startsWith("__em_js__"),"isInternalSym"),uleb128EncodeWithLen=C(e=>{let t=e.length;return[t%128|128,t>>7,...e]},"uleb128EncodeWithLen"),wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111},generateTypePack=C(e=>uleb128EncodeWithLen(Array.from(e,t=>{var n=wasmTypeCodes[t];return n})),"generateTypePack"),convertJsFunctionToWasm=C((e,t)=>{var n=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(t.slice(1)),...generateTypePack(t[0]==="v"?"":t[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),s=new WebAssembly.Module(n),r=new WebAssembly.Instance(s,{e:{f:e}}),o=r.exports.f;return o},"convertJsFunctionToWasm"),wasmTableMirror=[],wasmTable=new WebAssembly.Table({initial:31,element:"anyfunc"}),getWasmTableEntry=C(e=>{var t=wasmTableMirror[e];return t||(wasmTableMirror[e]=t=wasmTable.get(e)),t},"getWasmTableEntry"),updateTableMap=C((e,t)=>{if(functionsInTableMap)for(var n=e;n(functionsInTableMap||(functionsInTableMap=new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(e)||0),"getFunctionAddress"),freeTableIndexes=[],getEmptyTableSlot=C(()=>freeTableIndexes.length?freeTableIndexes.pop():wasmTable.grow(1),"getEmptyTableSlot"),setWasmTableEntry=C((e,t)=>{wasmTable.set(e,t),wasmTableMirror[e]=wasmTable.get(e)},"setWasmTableEntry"),addFunction=C((e,t)=>{var n=getFunctionAddress(e);if(n)return n;var s=getEmptyTableSlot();try{setWasmTableEntry(s,e)}catch(o){if(!(o instanceof TypeError))throw o;var r=convertJsFunctionToWasm(e,t);setWasmTableEntry(s,r)}return functionsInTableMap.set(e,s),s},"addFunction"),updateGOT=C((e,t)=>{for(var n in e)if(!isInternalSym(n)){var s=e[n];GOT[n]||=new WebAssembly.Global({value:"i32",mutable:!0}),(t||GOT[n].value==0)&&(typeof s=="function"?GOT[n].value=addFunction(s):typeof s=="number"?GOT[n].value=s:err(`unhandled export type for '${n}': ${typeof s}`))}},"updateGOT"),relocateExports=C((e,t,n)=>{var s={};for(var r in e){var o=e[r];typeof o=="object"&&(o=o.value),typeof o=="number"&&(o+=t),s[r]=o}return updateGOT(s,n),s},"relocateExports"),isSymbolDefined=C(e=>{var t=wasmImports[e];return!(!t||t.stub)},"isSymbolDefined"),dynCall=C((e,t,n=[],s=!1)=>{var r=getWasmTableEntry(t),o=r(...n);function a(l){return l}return C(a,"convert"),o},"dynCall"),stackSave=C(()=>_emscripten_stack_get_current(),"stackSave"),stackRestore=C(e=>__emscripten_stack_restore(e),"stackRestore"),createInvokeFunction=C(e=>(t,...n)=>{var s=stackSave();try{return dynCall(e,t,n)}catch(r){if(stackRestore(s),r!==r+0)throw r;if(_setThrew(1,0),e[0]=="j")return 0n}},"createInvokeFunction"),resolveGlobalSymbol=C((e,t=!1)=>{var n;return isSymbolDefined(e)?n=wasmImports[e]:e.startsWith("invoke_")&&(n=wasmImports[e]=createInvokeFunction(e.split("_")[1])),{sym:n,name:e}},"resolveGlobalSymbol"),onPostCtors=[],addOnPostCtor=C(e=>onPostCtors.push(e),"addOnPostCtor"),UTF8ToString=C((e,t,n)=>e?UTF8ArrayToString(HEAPU8,e,t,n):"","UTF8ToString"),loadWebAssemblyModule=C((binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign),memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(HEAP8[handle+8]=1,LE_HEAP_STORE_U32((handle+12>>2)*4,memoryBase),LE_HEAP_STORE_I32((handle+16>>2)*4,metadata.memorySize),LE_HEAP_STORE_U32((handle+20>>2)*4,tableBase),LE_HEAP_STORE_I32((handle+24>>2)*4,metadata.tableSize)),metadata.tableSize&&wasmTable.grow(metadata.tableSize);var moduleExports;function resolveSymbol(e){var t=resolveGlobalSymbol(e).sym;return!t&&localScope&&(t=localScope[e]),t||(t=moduleExports[e]),t}C(resolveSymbol,"resolveSymbol");var proxyHandler={get(e,t){switch(t){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(t in wasmImports&&!wasmImports[t].stub){var n=wasmImports[t];return n}if(!(t in e)){var s;e[t]=(...r)=>(s||=resolveSymbol(t),s(...r))}return e[t]}},proxy=new Proxy({},proxyHandler);currentModuleWeakSymbols=metadata.weakImports;var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols();function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf("$"+arity)!=-1;arity++)args.push("$"+arity);args=args.join(",");var func=`(${args}) => { ${body} };`;ASM_CONSTS[start]=eval(func)}if(C(addEmAsm,"addEmAsm"),"__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start ${body};`;moduleExports[name]=eval(func)}C(addEmJs,"addEmJs");for(var name in moduleExports)if(name.startsWith("__em_js__")){var start=moduleExports[name],jsString=UTF8ToString(start),parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]),delete moduleExports[name]}var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;return init&&(runtimeInitialized?init():addOnPostCtor(init)),moduleExports}if(C(postInstantiation,"postInstantiation"),flags.loadAsync)return(async()=>{var e;return binary instanceof WebAssembly.Module?e=new WebAssembly.Instance(binary,info):{module:binary,instance:e}=await WebAssembly.instantiate(binary,info),postInstantiation(binary,e)})();var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}return C(loadModule,"loadModule"),flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}},flags.loadAsync?metadata.neededDynlibs.reduce((e,t)=>e.then(()=>loadDynamicLibrary(t,flags,localScope)),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach(e=>loadDynamicLibrary(e,flags,localScope)),loadModule())},"loadWebAssemblyModule"),mergeLibSymbols=C((e,t)=>{for(var[n,s]of Object.entries(e)){let r=C(a=>{isSymbolDefined(a)||(wasmImports[a]=s)},"setImport");r(n);let o="__main_argc_argv";n=="main"&&r(o),n==o&&r("main")}},"mergeLibSymbols"),asyncLoad=C(async e=>{var t=await readAsync(e);return new Uint8Array(t)},"asyncLoad");function loadDynamicLibrary(e,t={global:!0,nodelete:!0},n,s){var r=LDSO.loadedLibsByName[e];if(r)return t.global?r.global||(r.global=!0,mergeLibSymbols(r.exports,e)):n&&Object.assign(n,r.exports),t.nodelete&&r.refcount!==1/0&&(r.refcount=1/0),r.refcount++,s&&(LDSO.loadedLibsByHandle[s]=r),t.loadAsync?Promise.resolve(!0):!0;r=newDSO(e,s,"loading"),r.refcount=t.nodelete?1/0:1,r.global=t.global;function o(){if(s){var c=LE_HEAP_LOAD_U32((s+28>>2)*4),d=LE_HEAP_LOAD_U32((s+32>>2)*4);if(c&&d){var m=HEAP8.slice(c,c+d);return t.loadAsync?Promise.resolve(m):m}}var u=locateFile(e);if(t.loadAsync)return asyncLoad(u);if(!readBinary)throw new Error(`${u}: file not found, and synchronous loading of external files is not available`);return readBinary(u)}C(o,"loadLibData");function a(){return t.loadAsync?o().then(c=>loadWebAssemblyModule(c,t,e,n,s)):loadWebAssemblyModule(o(),t,e,n,s)}C(a,"getExports");function l(c){r.global?mergeLibSymbols(c,e):n&&Object.assign(n,c),r.exports=c}return C(l,"moduleLoaded"),t.loadAsync?a().then(c=>(l(c),!0)):(l(a()),!0)}C(loadDynamicLibrary,"loadDynamicLibrary");var reportUndefinedSymbols=C(()=>{for(var[e,t]of Object.entries(GOT))if(t.value==0){var n=resolveGlobalSymbol(e,!0).sym;if(!n&&!t.required)continue;if(typeof n=="function")t.value=addFunction(n,n.sig);else if(typeof n=="number")t.value=n;else throw new Error(`bad export type for '${e}': ${typeof n}`)}},"reportUndefinedSymbols"),runDependencies=0,dependenciesFulfilled=null,removeRunDependency=C(e=>{if(runDependencies--,Module.monitorRunDependencies?.(runDependencies),runDependencies==0&&dependenciesFulfilled){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}},"removeRunDependency"),addRunDependency=C(e=>{runDependencies++,Module.monitorRunDependencies?.(runDependencies)},"addRunDependency"),loadDylibs=C(async()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");for(var e of dynamicLibraries)await loadDynamicLibrary(e,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});reportUndefinedSymbols(),removeRunDependency("loadDylibs")},"loadDylibs"),noExitRuntime=!0;function setValue(e,t,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":HEAP8[e]=t;break;case"i8":HEAP8[e]=t;break;case"i16":LE_HEAP_STORE_I16((e>>1)*2,t);break;case"i32":LE_HEAP_STORE_I32((e>>2)*4,t);break;case"i64":LE_HEAP_STORE_I64((e>>3)*8,BigInt(t));break;case"float":LE_HEAP_STORE_F32((e>>2)*4,t);break;case"double":LE_HEAP_STORE_F64((e>>3)*8,t);break;case"*":LE_HEAP_STORE_U32((e>>2)*4,t);break;default:abort(`invalid type for setValue: ${n}`)}}C(setValue,"setValue");var ___memory_base=new WebAssembly.Global({value:"i32",mutable:!1},1024),___stack_high=82240,___stack_low=16704,___stack_pointer=new WebAssembly.Global({value:"i32",mutable:!0},82240),___table_base=new WebAssembly.Global({value:"i32",mutable:!1},1),__abort_js=C(()=>abort(""),"__abort_js");__abort_js.sig="v";var getHeapMax=C(()=>2147483648,"getHeapMax"),growMemory=C(e=>{var t=wasmMemory.buffer.byteLength,n=(e-t+65535)/65536|0;try{return wasmMemory.grow(n),updateMemoryViews(),1}catch{}},"growMemory"),_emscripten_resize_heap=C(e=>{var t=HEAPU8.length;e>>>=0;var n=getHeapMax();if(e>n)return!1;for(var s=1;s<=4;s*=2){var r=t*(1+.2/s);r=Math.min(r,e+100663296);var o=Math.min(n,alignMemory(Math.max(e,r),65536)),a=growMemory(o);if(a)return!0}return!1},"_emscripten_resize_heap");_emscripten_resize_heap.sig="ip";var _fd_close=C(e=>52,"_fd_close");_fd_close.sig="ii";var INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992,bigintToI53Checked=C(e=>eINT53_MAX?NaN:Number(e),"bigintToI53Checked");function _fd_seek(e,t,n,s){return t=bigintToI53Checked(t),70}C(_fd_seek,"_fd_seek"),_fd_seek.sig="iijip";var printCharBuffers=[null,[],[]],printChar=C((e,t)=>{var n=printCharBuffers[e];t===0||t===10?((e===1?out:err)(UTF8ArrayToString(n)),n.length=0):n.push(t)},"printChar"),_fd_write=C((e,t,n,s)=>{for(var r=0,o=0;o>2)*4),l=LE_HEAP_LOAD_U32((t+4>>2)*4);t+=8;for(var c=0;c>2)*4,r),0},"_fd_write");_fd_write.sig="iippp";function _tree_sitter_log_callback(e,t){if(Module.currentLogCallback){let n=UTF8ToString(t);Module.currentLogCallback(n,e!==0)}}C(_tree_sitter_log_callback,"_tree_sitter_log_callback");function _tree_sitter_parse_callback(e,t,n,s,r){let a=Module.currentParseCallback(t,{row:n,column:s});typeof a=="string"?(setValue(r,a.length,"i32"),stringToUTF16(a,e,10240)):setValue(r,0,"i32")}C(_tree_sitter_parse_callback,"_tree_sitter_parse_callback");function _tree_sitter_progress_callback(e,t){return Module.currentProgressCallback?Module.currentProgressCallback({currentOffset:e,hasError:t}):!1}C(_tree_sitter_progress_callback,"_tree_sitter_progress_callback");function _tree_sitter_query_progress_callback(e){return Module.currentQueryProgressCallback?Module.currentQueryProgressCallback({currentOffset:e}):!1}C(_tree_sitter_query_progress_callback,"_tree_sitter_query_progress_callback");var runtimeKeepaliveCounter=0,keepRuntimeAlive=C(()=>noExitRuntime||runtimeKeepaliveCounter>0,"keepRuntimeAlive"),_proc_exit=C(e=>{EXITSTATUS=e,keepRuntimeAlive()||(Module.onExit?.(e),ABORT=!0),quit_(e,new ExitStatus(e))},"_proc_exit");_proc_exit.sig="vi";var exitJS=C((e,t)=>{EXITSTATUS=e,_proc_exit(e)},"exitJS"),handleException=C(e=>{if(e instanceof ExitStatus||e=="unwind")return EXITSTATUS;quit_(1,e)},"handleException"),lengthBytesUTF8=C(e=>{for(var t=0,n=0;n=55296&&s<=57343?(t+=4,++n):t+=3}return t},"lengthBytesUTF8"),stringToUTF8Array=C((e,t,n,s)=>{if(!(s>0))return 0;for(var r=n,o=n+s-1,a=0;a=o)break;t[n++]=l}else if(l<=2047){if(n+1>=o)break;t[n++]=192|l>>6,t[n++]=128|l&63}else if(l<=65535){if(n+2>=o)break;t[n++]=224|l>>12,t[n++]=128|l>>6&63,t[n++]=128|l&63}else{if(n+3>=o)break;t[n++]=240|l>>18,t[n++]=128|l>>12&63,t[n++]=128|l>>6&63,t[n++]=128|l&63,a++}}return t[n]=0,n-r},"stringToUTF8Array"),stringToUTF8=C((e,t,n)=>stringToUTF8Array(e,HEAPU8,t,n),"stringToUTF8"),stackAlloc=C(e=>__emscripten_stack_alloc(e),"stackAlloc"),stringToUTF8OnStack=C(e=>{var t=lengthBytesUTF8(e)+1,n=stackAlloc(t);return stringToUTF8(e,n,t),n},"stringToUTF8OnStack"),AsciiToString=C(e=>{for(var t="";;){var n=HEAPU8[e++];if(!n)return t;t+=String.fromCharCode(n)}},"AsciiToString"),stringToUTF16=C((e,t,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var s=t,r=n>1)*2,a),t+=2}return LE_HEAP_STORE_I16((t>>1)*2,0),t-s},"stringToUTF16");LE_ATOMICS_NATIVE_BYTE_ORDER=new Int8Array(new Int16Array([1]).buffer)[0]===1?[(e=>e),(e=>e),void 0,(e=>e)]:[(e=>e),(e=>((e&65280)<<8|(e&255)<<24)>>16),void 0,(e=>e>>24&255|e>>8&65280|(e&65280)<<8|(e&255)<<24)];function LE_HEAP_UPDATE(){HEAPU16.unsigned=(e=>e&65535),HEAPU32.unsigned=(e=>e>>>0)}if(C(LE_HEAP_UPDATE,"LE_HEAP_UPDATE"),initMemory(),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.dynamicLibraries&&(dynamicLibraries=Module.dynamicLibraries),Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.shift()();Module.setValue=setValue,Module.getValue=getValue,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.AsciiToString=AsciiToString,Module.stringToUTF16=stringToUTF16,Module.loadWebAssemblyModule=loadWebAssemblyModule,Module.LE_HEAP_STORE_I64=LE_HEAP_STORE_I64;var ASM_CONSTS={},_malloc,_calloc,_realloc,_free,_ts_range_edit,_memcmp,_ts_language_symbol_count,_ts_language_state_count,_ts_language_abi_version,_ts_language_name,_ts_language_field_count,_ts_language_next_state,_ts_language_symbol_name,_ts_language_symbol_for_name,_strncmp,_ts_language_symbol_type,_ts_language_field_name_for_id,_ts_lookahead_iterator_new,_ts_lookahead_iterator_delete,_ts_lookahead_iterator_reset_state,_ts_lookahead_iterator_reset,_ts_lookahead_iterator_next,_ts_lookahead_iterator_current_symbol,_ts_point_edit,_ts_parser_delete,_ts_parser_reset,_ts_parser_set_language,_ts_parser_set_included_ranges,_ts_query_new,_ts_query_delete,_iswspace,_iswalnum,_ts_query_copy,_ts_query_pattern_count,_ts_query_capture_count,_ts_query_string_count,_ts_query_capture_name_for_id,_ts_query_capture_quantifier_for_id,_ts_query_string_value_for_id,_ts_query_predicates_for_pattern,_ts_query_start_byte_for_pattern,_ts_query_end_byte_for_pattern,_ts_query_is_pattern_rooted,_ts_query_is_pattern_non_local,_ts_query_is_pattern_guaranteed_at_step,_ts_query_disable_capture,_ts_query_disable_pattern,_ts_tree_copy,_ts_tree_delete,_ts_init,_ts_parser_new_wasm,_ts_parser_enable_logger_wasm,_ts_parser_parse_wasm,_ts_parser_included_ranges_wasm,_ts_language_type_is_named_wasm,_ts_language_type_is_visible_wasm,_ts_language_metadata_wasm,_ts_language_supertypes_wasm,_ts_language_subtypes_wasm,_ts_tree_root_node_wasm,_ts_tree_root_node_with_offset_wasm,_ts_tree_edit_wasm,_ts_tree_included_ranges_wasm,_ts_tree_get_changed_ranges_wasm,_ts_tree_cursor_new_wasm,_ts_tree_cursor_copy_wasm,_ts_tree_cursor_delete_wasm,_ts_tree_cursor_reset_wasm,_ts_tree_cursor_reset_to_wasm,_ts_tree_cursor_goto_first_child_wasm,_ts_tree_cursor_goto_last_child_wasm,_ts_tree_cursor_goto_first_child_for_index_wasm,_ts_tree_cursor_goto_first_child_for_position_wasm,_ts_tree_cursor_goto_next_sibling_wasm,_ts_tree_cursor_goto_previous_sibling_wasm,_ts_tree_cursor_goto_descendant_wasm,_ts_tree_cursor_goto_parent_wasm,_ts_tree_cursor_current_node_type_id_wasm,_ts_tree_cursor_current_node_state_id_wasm,_ts_tree_cursor_current_node_is_named_wasm,_ts_tree_cursor_current_node_is_missing_wasm,_ts_tree_cursor_current_node_id_wasm,_ts_tree_cursor_start_position_wasm,_ts_tree_cursor_end_position_wasm,_ts_tree_cursor_start_index_wasm,_ts_tree_cursor_end_index_wasm,_ts_tree_cursor_current_field_id_wasm,_ts_tree_cursor_current_depth_wasm,_ts_tree_cursor_current_descendant_index_wasm,_ts_tree_cursor_current_node_wasm,_ts_node_symbol_wasm,_ts_node_field_name_for_child_wasm,_ts_node_field_name_for_named_child_wasm,_ts_node_children_by_field_id_wasm,_ts_node_first_child_for_byte_wasm,_ts_node_first_named_child_for_byte_wasm,_ts_node_grammar_symbol_wasm,_ts_node_child_count_wasm,_ts_node_named_child_count_wasm,_ts_node_child_wasm,_ts_node_named_child_wasm,_ts_node_child_by_field_id_wasm,_ts_node_next_sibling_wasm,_ts_node_prev_sibling_wasm,_ts_node_next_named_sibling_wasm,_ts_node_prev_named_sibling_wasm,_ts_node_descendant_count_wasm,_ts_node_parent_wasm,_ts_node_child_with_descendant_wasm,_ts_node_descendant_for_index_wasm,_ts_node_named_descendant_for_index_wasm,_ts_node_descendant_for_position_wasm,_ts_node_named_descendant_for_position_wasm,_ts_node_start_point_wasm,_ts_node_end_point_wasm,_ts_node_start_index_wasm,_ts_node_end_index_wasm,_ts_node_to_string_wasm,_ts_node_children_wasm,_ts_node_named_children_wasm,_ts_node_descendants_of_type_wasm,_ts_node_is_named_wasm,_ts_node_has_changes_wasm,_ts_node_has_error_wasm,_ts_node_is_error_wasm,_ts_node_is_missing_wasm,_ts_node_is_extra_wasm,_ts_node_parse_state_wasm,_ts_node_next_parse_state_wasm,_ts_query_matches_wasm,_ts_query_captures_wasm,_memset,_memcpy,_memmove,_iswalpha,_iswblank,_iswdigit,_iswlower,_iswpunct,_iswupper,_iswxdigit,_memchr,_strlen,_strcmp,_strncat,_strncpy,_towlower,_towupper,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___wasm_apply_data_relocs;function assignWasmExports(e){Module._malloc=_malloc=e.malloc,Module._calloc=_calloc=e.calloc,Module._realloc=_realloc=e.realloc,Module._free=_free=e.free,Module._ts_range_edit=_ts_range_edit=e.ts_range_edit,Module._memcmp=_memcmp=e.memcmp,Module._ts_language_symbol_count=_ts_language_symbol_count=e.ts_language_symbol_count,Module._ts_language_state_count=_ts_language_state_count=e.ts_language_state_count,Module._ts_language_abi_version=_ts_language_abi_version=e.ts_language_abi_version,Module._ts_language_name=_ts_language_name=e.ts_language_name,Module._ts_language_field_count=_ts_language_field_count=e.ts_language_field_count,Module._ts_language_next_state=_ts_language_next_state=e.ts_language_next_state,Module._ts_language_symbol_name=_ts_language_symbol_name=e.ts_language_symbol_name,Module._ts_language_symbol_for_name=_ts_language_symbol_for_name=e.ts_language_symbol_for_name,Module._strncmp=_strncmp=e.strncmp,Module._ts_language_symbol_type=_ts_language_symbol_type=e.ts_language_symbol_type,Module._ts_language_field_name_for_id=_ts_language_field_name_for_id=e.ts_language_field_name_for_id,Module._ts_lookahead_iterator_new=_ts_lookahead_iterator_new=e.ts_lookahead_iterator_new,Module._ts_lookahead_iterator_delete=_ts_lookahead_iterator_delete=e.ts_lookahead_iterator_delete,Module._ts_lookahead_iterator_reset_state=_ts_lookahead_iterator_reset_state=e.ts_lookahead_iterator_reset_state,Module._ts_lookahead_iterator_reset=_ts_lookahead_iterator_reset=e.ts_lookahead_iterator_reset,Module._ts_lookahead_iterator_next=_ts_lookahead_iterator_next=e.ts_lookahead_iterator_next,Module._ts_lookahead_iterator_current_symbol=_ts_lookahead_iterator_current_symbol=e.ts_lookahead_iterator_current_symbol,Module._ts_point_edit=_ts_point_edit=e.ts_point_edit,Module._ts_parser_delete=_ts_parser_delete=e.ts_parser_delete,Module._ts_parser_reset=_ts_parser_reset=e.ts_parser_reset,Module._ts_parser_set_language=_ts_parser_set_language=e.ts_parser_set_language,Module._ts_parser_set_included_ranges=_ts_parser_set_included_ranges=e.ts_parser_set_included_ranges,Module._ts_query_new=_ts_query_new=e.ts_query_new,Module._ts_query_delete=_ts_query_delete=e.ts_query_delete,Module._iswspace=_iswspace=e.iswspace,Module._iswalnum=_iswalnum=e.iswalnum,Module._ts_query_copy=_ts_query_copy=e.ts_query_copy,Module._ts_query_pattern_count=_ts_query_pattern_count=e.ts_query_pattern_count,Module._ts_query_capture_count=_ts_query_capture_count=e.ts_query_capture_count,Module._ts_query_string_count=_ts_query_string_count=e.ts_query_string_count,Module._ts_query_capture_name_for_id=_ts_query_capture_name_for_id=e.ts_query_capture_name_for_id,Module._ts_query_capture_quantifier_for_id=_ts_query_capture_quantifier_for_id=e.ts_query_capture_quantifier_for_id,Module._ts_query_string_value_for_id=_ts_query_string_value_for_id=e.ts_query_string_value_for_id,Module._ts_query_predicates_for_pattern=_ts_query_predicates_for_pattern=e.ts_query_predicates_for_pattern,Module._ts_query_start_byte_for_pattern=_ts_query_start_byte_for_pattern=e.ts_query_start_byte_for_pattern,Module._ts_query_end_byte_for_pattern=_ts_query_end_byte_for_pattern=e.ts_query_end_byte_for_pattern,Module._ts_query_is_pattern_rooted=_ts_query_is_pattern_rooted=e.ts_query_is_pattern_rooted,Module._ts_query_is_pattern_non_local=_ts_query_is_pattern_non_local=e.ts_query_is_pattern_non_local,Module._ts_query_is_pattern_guaranteed_at_step=_ts_query_is_pattern_guaranteed_at_step=e.ts_query_is_pattern_guaranteed_at_step,Module._ts_query_disable_capture=_ts_query_disable_capture=e.ts_query_disable_capture,Module._ts_query_disable_pattern=_ts_query_disable_pattern=e.ts_query_disable_pattern,Module._ts_tree_copy=_ts_tree_copy=e.ts_tree_copy,Module._ts_tree_delete=_ts_tree_delete=e.ts_tree_delete,Module._ts_init=_ts_init=e.ts_init,Module._ts_parser_new_wasm=_ts_parser_new_wasm=e.ts_parser_new_wasm,Module._ts_parser_enable_logger_wasm=_ts_parser_enable_logger_wasm=e.ts_parser_enable_logger_wasm,Module._ts_parser_parse_wasm=_ts_parser_parse_wasm=e.ts_parser_parse_wasm,Module._ts_parser_included_ranges_wasm=_ts_parser_included_ranges_wasm=e.ts_parser_included_ranges_wasm,Module._ts_language_type_is_named_wasm=_ts_language_type_is_named_wasm=e.ts_language_type_is_named_wasm,Module._ts_language_type_is_visible_wasm=_ts_language_type_is_visible_wasm=e.ts_language_type_is_visible_wasm,Module._ts_language_metadata_wasm=_ts_language_metadata_wasm=e.ts_language_metadata_wasm,Module._ts_language_supertypes_wasm=_ts_language_supertypes_wasm=e.ts_language_supertypes_wasm,Module._ts_language_subtypes_wasm=_ts_language_subtypes_wasm=e.ts_language_subtypes_wasm,Module._ts_tree_root_node_wasm=_ts_tree_root_node_wasm=e.ts_tree_root_node_wasm,Module._ts_tree_root_node_with_offset_wasm=_ts_tree_root_node_with_offset_wasm=e.ts_tree_root_node_with_offset_wasm,Module._ts_tree_edit_wasm=_ts_tree_edit_wasm=e.ts_tree_edit_wasm,Module._ts_tree_included_ranges_wasm=_ts_tree_included_ranges_wasm=e.ts_tree_included_ranges_wasm,Module._ts_tree_get_changed_ranges_wasm=_ts_tree_get_changed_ranges_wasm=e.ts_tree_get_changed_ranges_wasm,Module._ts_tree_cursor_new_wasm=_ts_tree_cursor_new_wasm=e.ts_tree_cursor_new_wasm,Module._ts_tree_cursor_copy_wasm=_ts_tree_cursor_copy_wasm=e.ts_tree_cursor_copy_wasm,Module._ts_tree_cursor_delete_wasm=_ts_tree_cursor_delete_wasm=e.ts_tree_cursor_delete_wasm,Module._ts_tree_cursor_reset_wasm=_ts_tree_cursor_reset_wasm=e.ts_tree_cursor_reset_wasm,Module._ts_tree_cursor_reset_to_wasm=_ts_tree_cursor_reset_to_wasm=e.ts_tree_cursor_reset_to_wasm,Module._ts_tree_cursor_goto_first_child_wasm=_ts_tree_cursor_goto_first_child_wasm=e.ts_tree_cursor_goto_first_child_wasm,Module._ts_tree_cursor_goto_last_child_wasm=_ts_tree_cursor_goto_last_child_wasm=e.ts_tree_cursor_goto_last_child_wasm,Module._ts_tree_cursor_goto_first_child_for_index_wasm=_ts_tree_cursor_goto_first_child_for_index_wasm=e.ts_tree_cursor_goto_first_child_for_index_wasm,Module._ts_tree_cursor_goto_first_child_for_position_wasm=_ts_tree_cursor_goto_first_child_for_position_wasm=e.ts_tree_cursor_goto_first_child_for_position_wasm,Module._ts_tree_cursor_goto_next_sibling_wasm=_ts_tree_cursor_goto_next_sibling_wasm=e.ts_tree_cursor_goto_next_sibling_wasm,Module._ts_tree_cursor_goto_previous_sibling_wasm=_ts_tree_cursor_goto_previous_sibling_wasm=e.ts_tree_cursor_goto_previous_sibling_wasm,Module._ts_tree_cursor_goto_descendant_wasm=_ts_tree_cursor_goto_descendant_wasm=e.ts_tree_cursor_goto_descendant_wasm,Module._ts_tree_cursor_goto_parent_wasm=_ts_tree_cursor_goto_parent_wasm=e.ts_tree_cursor_goto_parent_wasm,Module._ts_tree_cursor_current_node_type_id_wasm=_ts_tree_cursor_current_node_type_id_wasm=e.ts_tree_cursor_current_node_type_id_wasm,Module._ts_tree_cursor_current_node_state_id_wasm=_ts_tree_cursor_current_node_state_id_wasm=e.ts_tree_cursor_current_node_state_id_wasm,Module._ts_tree_cursor_current_node_is_named_wasm=_ts_tree_cursor_current_node_is_named_wasm=e.ts_tree_cursor_current_node_is_named_wasm,Module._ts_tree_cursor_current_node_is_missing_wasm=_ts_tree_cursor_current_node_is_missing_wasm=e.ts_tree_cursor_current_node_is_missing_wasm,Module._ts_tree_cursor_current_node_id_wasm=_ts_tree_cursor_current_node_id_wasm=e.ts_tree_cursor_current_node_id_wasm,Module._ts_tree_cursor_start_position_wasm=_ts_tree_cursor_start_position_wasm=e.ts_tree_cursor_start_position_wasm,Module._ts_tree_cursor_end_position_wasm=_ts_tree_cursor_end_position_wasm=e.ts_tree_cursor_end_position_wasm,Module._ts_tree_cursor_start_index_wasm=_ts_tree_cursor_start_index_wasm=e.ts_tree_cursor_start_index_wasm,Module._ts_tree_cursor_end_index_wasm=_ts_tree_cursor_end_index_wasm=e.ts_tree_cursor_end_index_wasm,Module._ts_tree_cursor_current_field_id_wasm=_ts_tree_cursor_current_field_id_wasm=e.ts_tree_cursor_current_field_id_wasm,Module._ts_tree_cursor_current_depth_wasm=_ts_tree_cursor_current_depth_wasm=e.ts_tree_cursor_current_depth_wasm,Module._ts_tree_cursor_current_descendant_index_wasm=_ts_tree_cursor_current_descendant_index_wasm=e.ts_tree_cursor_current_descendant_index_wasm,Module._ts_tree_cursor_current_node_wasm=_ts_tree_cursor_current_node_wasm=e.ts_tree_cursor_current_node_wasm,Module._ts_node_symbol_wasm=_ts_node_symbol_wasm=e.ts_node_symbol_wasm,Module._ts_node_field_name_for_child_wasm=_ts_node_field_name_for_child_wasm=e.ts_node_field_name_for_child_wasm,Module._ts_node_field_name_for_named_child_wasm=_ts_node_field_name_for_named_child_wasm=e.ts_node_field_name_for_named_child_wasm,Module._ts_node_children_by_field_id_wasm=_ts_node_children_by_field_id_wasm=e.ts_node_children_by_field_id_wasm,Module._ts_node_first_child_for_byte_wasm=_ts_node_first_child_for_byte_wasm=e.ts_node_first_child_for_byte_wasm,Module._ts_node_first_named_child_for_byte_wasm=_ts_node_first_named_child_for_byte_wasm=e.ts_node_first_named_child_for_byte_wasm,Module._ts_node_grammar_symbol_wasm=_ts_node_grammar_symbol_wasm=e.ts_node_grammar_symbol_wasm,Module._ts_node_child_count_wasm=_ts_node_child_count_wasm=e.ts_node_child_count_wasm,Module._ts_node_named_child_count_wasm=_ts_node_named_child_count_wasm=e.ts_node_named_child_count_wasm,Module._ts_node_child_wasm=_ts_node_child_wasm=e.ts_node_child_wasm,Module._ts_node_named_child_wasm=_ts_node_named_child_wasm=e.ts_node_named_child_wasm,Module._ts_node_child_by_field_id_wasm=_ts_node_child_by_field_id_wasm=e.ts_node_child_by_field_id_wasm,Module._ts_node_next_sibling_wasm=_ts_node_next_sibling_wasm=e.ts_node_next_sibling_wasm,Module._ts_node_prev_sibling_wasm=_ts_node_prev_sibling_wasm=e.ts_node_prev_sibling_wasm,Module._ts_node_next_named_sibling_wasm=_ts_node_next_named_sibling_wasm=e.ts_node_next_named_sibling_wasm,Module._ts_node_prev_named_sibling_wasm=_ts_node_prev_named_sibling_wasm=e.ts_node_prev_named_sibling_wasm,Module._ts_node_descendant_count_wasm=_ts_node_descendant_count_wasm=e.ts_node_descendant_count_wasm,Module._ts_node_parent_wasm=_ts_node_parent_wasm=e.ts_node_parent_wasm,Module._ts_node_child_with_descendant_wasm=_ts_node_child_with_descendant_wasm=e.ts_node_child_with_descendant_wasm,Module._ts_node_descendant_for_index_wasm=_ts_node_descendant_for_index_wasm=e.ts_node_descendant_for_index_wasm,Module._ts_node_named_descendant_for_index_wasm=_ts_node_named_descendant_for_index_wasm=e.ts_node_named_descendant_for_index_wasm,Module._ts_node_descendant_for_position_wasm=_ts_node_descendant_for_position_wasm=e.ts_node_descendant_for_position_wasm,Module._ts_node_named_descendant_for_position_wasm=_ts_node_named_descendant_for_position_wasm=e.ts_node_named_descendant_for_position_wasm,Module._ts_node_start_point_wasm=_ts_node_start_point_wasm=e.ts_node_start_point_wasm,Module._ts_node_end_point_wasm=_ts_node_end_point_wasm=e.ts_node_end_point_wasm,Module._ts_node_start_index_wasm=_ts_node_start_index_wasm=e.ts_node_start_index_wasm,Module._ts_node_end_index_wasm=_ts_node_end_index_wasm=e.ts_node_end_index_wasm,Module._ts_node_to_string_wasm=_ts_node_to_string_wasm=e.ts_node_to_string_wasm,Module._ts_node_children_wasm=_ts_node_children_wasm=e.ts_node_children_wasm,Module._ts_node_named_children_wasm=_ts_node_named_children_wasm=e.ts_node_named_children_wasm,Module._ts_node_descendants_of_type_wasm=_ts_node_descendants_of_type_wasm=e.ts_node_descendants_of_type_wasm,Module._ts_node_is_named_wasm=_ts_node_is_named_wasm=e.ts_node_is_named_wasm,Module._ts_node_has_changes_wasm=_ts_node_has_changes_wasm=e.ts_node_has_changes_wasm,Module._ts_node_has_error_wasm=_ts_node_has_error_wasm=e.ts_node_has_error_wasm,Module._ts_node_is_error_wasm=_ts_node_is_error_wasm=e.ts_node_is_error_wasm,Module._ts_node_is_missing_wasm=_ts_node_is_missing_wasm=e.ts_node_is_missing_wasm,Module._ts_node_is_extra_wasm=_ts_node_is_extra_wasm=e.ts_node_is_extra_wasm,Module._ts_node_parse_state_wasm=_ts_node_parse_state_wasm=e.ts_node_parse_state_wasm,Module._ts_node_next_parse_state_wasm=_ts_node_next_parse_state_wasm=e.ts_node_next_parse_state_wasm,Module._ts_query_matches_wasm=_ts_query_matches_wasm=e.ts_query_matches_wasm,Module._ts_query_captures_wasm=_ts_query_captures_wasm=e.ts_query_captures_wasm,Module._memset=_memset=e.memset,Module._memcpy=_memcpy=e.memcpy,Module._memmove=_memmove=e.memmove,Module._iswalpha=_iswalpha=e.iswalpha,Module._iswblank=_iswblank=e.iswblank,Module._iswdigit=_iswdigit=e.iswdigit,Module._iswlower=_iswlower=e.iswlower,Module._iswpunct=_iswpunct=e.iswpunct,Module._iswupper=_iswupper=e.iswupper,Module._iswxdigit=_iswxdigit=e.iswxdigit,Module._memchr=_memchr=e.memchr,Module._strlen=_strlen=e.strlen,Module._strcmp=_strcmp=e.strcmp,Module._strncat=_strncat=e.strncat,Module._strncpy=_strncpy=e.strncpy,Module._towlower=_towlower=e.towlower,Module._towupper=_towupper=e.towupper,_setThrew=e.setThrew,__emscripten_stack_restore=e._emscripten_stack_restore,__emscripten_stack_alloc=e._emscripten_stack_alloc,_emscripten_stack_get_current=e.emscripten_stack_get_current,___wasm_apply_data_relocs=e.__wasm_apply_data_relocs}C(assignWasmExports,"assignWasmExports");var wasmImports={__heap_base:___heap_base,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__table_base:___table_base,_abort_js:__abort_js,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,tree_sitter_log_callback:_tree_sitter_log_callback,tree_sitter_parse_callback:_tree_sitter_parse_callback,tree_sitter_progress_callback:_tree_sitter_progress_callback,tree_sitter_query_progress_callback:_tree_sitter_query_progress_callback};function callMain(e=[]){var t=resolveGlobalSymbol("main").sym;if(t){e.unshift(thisProgram);var n=e.length,s=stackAlloc((n+1)*4),r=s;e.forEach(a=>{LE_HEAP_STORE_U32((r>>2)*4,stringToUTF8OnStack(a)),r+=4}),LE_HEAP_STORE_U32((r>>2)*4,0);try{var o=t(n,s);return exitJS(o,!0),o}catch(a){return handleException(a)}}}C(callMain,"callMain");function run(e=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}if(preRun(),runDependencies>0){dependenciesFulfilled=run;return}function t(){if(Module.calledRun=!0,!ABORT){initRuntime(),readyPromiseResolve?.(Module),Module.onRuntimeInitialized?.();var n=Module.noInitialRun||!1;n||callMain(e),postRun()}}C(t,"doRun"),Module.setStatus?(Module.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>Module.setStatus(""),1),t()},1)):t()}C(run,"run");var wasmExports;return wasmExports=await createWasm(),run(),runtimeInitialized?moduleRtn=Module:moduleRtn=new Promise((e,t)=>{readyPromiseResolve=e,readyPromiseReject=t}),moduleRtn}async function Ac(e){return Cc??=await Gm(e)}function Tc(){return!!Cc}function Fc(e,t,n,s){if(e.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${e.length-1}`);if(!wc(e[1]))throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${e[1].value}"`);let r=n==="eq?"||n==="any-eq?",o=!n.startsWith("any-");if(wc(e[2])){let a=e[1].name,l=e[2].name;s[t].push(c=>{let d=[],m=[];for(let f of c)f.name===a&&d.push(f.node),f.name===l&&m.push(f.node);let u=C((f,p,g)=>g?f.text===p.text:f.text!==p.text,"compare");return o?d.every(f=>m.some(p=>u(f,p,r))):d.some(f=>m.some(p=>u(f,p,r)))})}else{let a=e[1].name,l=e[2].value,c=C(m=>m.text===l,"matches"),d=C(m=>m.text!==l,"doesNotMatch");s[t].push(m=>{let u=[];for(let p of m)p.name===a&&u.push(p.node);let f=r?c:d;return o?u.every(f):u.some(f)})}}function Nc(e,t,n,s){if(e.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${e.length-1}.`);if(e[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${e[1].value}".`);if(e[2].type!=="string")throw new Error(`Second argument of \`#${n}\` predicate must be a string. Got @${e[2].name}.`);let r=n==="match?"||n==="any-match?",o=!n.startsWith("any-"),a=e[1].name,l=new RegExp(e[2].value);s[t].push(c=>{let d=[];for(let u of c)u.name===a&&d.push(u.node.text);let m=C((u,f)=>f?l.test(u):!l.test(u),"test");return d.length===0?!r:o?d.every(u=>m(u,r)):d.some(u=>m(u,r))})}function Oc(e,t,n,s){if(e.length<2)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected at least 1. Got ${e.length-1}.`);if(e[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${e[1].value}".`);let r=n==="any-of?",o=e[1].name,a=e.slice(2);if(!a.every(bo))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);let l=a.map(c=>c.value);s[t].push(c=>{let d=[];for(let m of c)m.name===o&&d.push(m.node.text);return d.length===0?!r:d.every(m=>l.includes(m))===r})}function Pc(e,t,n,s,r){if(e.length<2||e.length>3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 1 or 2. Got ${e.length-1}.`);if(!e.every(bo))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);let o=n==="is?"?s:r;o[t]||(o[t]={}),o[t][e[1].value]=e[2]?.value??null}function $c(e,t,n){if(e.length<2||e.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${e.length-1}.`);if(!e.every(bo))throw new Error('Arguments to `#set!` predicate must be strings.".');n[t]||(n[t]={}),n[t][e[1].value]=e[2]?.value??null}function Dc(e,t,n,s,r,o,a,l,c,d,m){if(t===Vm){let u=s[n];o.push({type:"capture",name:u})}else if(t===Jm)o.push({type:"string",value:r[n]});else if(o.length>0){if(o[0].type!=="string")throw new Error("Predicates must begin with a literal value");let u=o[0].value;switch(u){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":Fc(o,e,u,a);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":Nc(o,e,u,a);break;case"not-any-of?":case"any-of?":Oc(o,e,u,a);break;case"is?":case"is-not?":Pc(o,e,u,d,m);break;case"set!":$c(o,e,c);break;default:l[e].push({operator:u,operands:o.slice(1)})}o.length=0}}var Wm,C,Fx,gc,W,uo,De,dt,Xn,$e,Nt,x,_c,Um,hc,Bm,yc,zm,Hm,qm,ho,Gm,Cc,L,fo,mo,bc,yo,Vm,Jm,Km,Nx,wc,bo,Ye,Jn,xc,Lc,wo=O(()=>{E();Wm=Object.defineProperty,C=(e,t)=>Wm(e,"name",{value:t,configurable:!0}),Fx=class{static{C(this,"Edit")}startPosition;oldEndPosition;newEndPosition;startIndex;oldEndIndex;newEndIndex;constructor({startIndex:e,oldEndIndex:t,newEndIndex:n,startPosition:s,oldEndPosition:r,newEndPosition:o}){this.startIndex=e>>>0,this.oldEndIndex=t>>>0,this.newEndIndex=n>>>0,this.startPosition=s,this.oldEndPosition=r,this.newEndPosition=o}editPoint(e,t){let n=t,s={...e};if(t>=this.oldEndIndex){n=this.newEndIndex+(t-this.oldEndIndex);let r=e.row;s.row=this.newEndPosition.row+(e.row-this.oldEndPosition.row),s.column=r===this.oldEndPosition.row?this.newEndPosition.column+(e.column-this.oldEndPosition.column):e.column}else t>this.startIndex&&(n=this.newEndIndex,s.row=this.newEndPosition.row,s.column=this.newEndPosition.column);return{point:s,index:n}}editRange(e){let t={startIndex:e.startIndex,startPosition:{...e.startPosition},endIndex:e.endIndex,endPosition:{...e.endPosition}};return e.endIndex>=this.oldEndIndex?e.endIndex!==Number.MAX_SAFE_INTEGER&&(t.endIndex=this.newEndIndex+(e.endIndex-this.oldEndIndex),t.endPosition={row:this.newEndPosition.row+(e.endPosition.row-this.oldEndPosition.row),column:e.endPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(e.endPosition.column-this.oldEndPosition.column):e.endPosition.column},t.endIndexthis.startIndex&&(t.endIndex=this.startIndex,t.endPosition={...this.startPosition}),e.startIndex>=this.oldEndIndex?(t.startIndex=this.newEndIndex+(e.startIndex-this.oldEndIndex),t.startPosition={row:this.newEndPosition.row+(e.startPosition.row-this.oldEndPosition.row),column:e.startPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(e.startPosition.column-this.oldEndPosition.column):e.startPosition.column},t.startIndexthis.startIndex&&(t.startIndex=this.startIndex,t.startPosition={...this.startPosition}),t}},gc=2,W=4,uo=4*W,De=5*W,dt=2*W,Xn=2*W+2*dt,$e={row:0,column:0},Nt=Symbol("INTERNAL");C(wn,"assertInternal");C(Kn,"isPoint");C(Sc,"setModule");C(xn,"newFinalizer");_c=xn(e=>{x._ts_lookahead_iterator_delete(e)}),Um=class{static{C(this,"LookaheadIterator")}0=0;language;positioned=!1;constructor(e,t,n){wn(e),this[0]=t,this.language=n,_c?.register(this,t,this)}get currentTypeId(){return this.positioned?x._ts_lookahead_iterator_current_symbol(this[0]):null}get currentType(){let e=this.currentTypeId;return e===null?null:this.language.types[e]??x.UTF8ToString(x._ts_language_symbol_name(this.language[0],e))}delete(){_c?.unregister(this),x._ts_lookahead_iterator_delete(this[0]),this[0]=0}reset(e,t){return x._ts_lookahead_iterator_reset(this[0],e[0],t)?(this.language=e,this.positioned=!1,!0):!1}resetState(e){return x._ts_lookahead_iterator_reset_state(this[0],e)?(this.positioned=!1,!0):!1}[Symbol.iterator](){return{next:C(()=>{this.positioned=!!x._ts_lookahead_iterator_next(this[0]);let e=this.currentType;return e===null?{done:!0,value:""}:{done:!1,value:e}},"next")}}};C(_o,"getText");hc=xn(e=>{x._ts_tree_delete(e)}),Bm=class po{static{C(this,"Tree")}0=0;textCallback;language;constructor(t,n,s,r){wn(t),this[0]=n,this.language=s,this.textCallback=r,hc?.register(this,n,this)}copy(){let t=x._ts_tree_copy(this[0]);return new po(Nt,t,this.language,this.textCallback)}delete(){hc?.unregister(this),x._ts_tree_delete(this[0]),this[0]=0}get rootNode(){return x._ts_tree_root_node_wasm(this[0]),ue(this)}rootNodeWithOffset(t,n){let s=L+De;return x.setValue(s,t,"i32"),Ve(s+W,n),x._ts_tree_root_node_with_offset_wasm(this[0]),ue(this)}edit(t){vc(t),x._ts_tree_edit_wasm(this[0])}walk(){return this.rootNode.walk()}getChangedRanges(t){if(!(t instanceof po))throw new TypeError("Argument must be a Tree");x._ts_tree_get_changed_ranges_wasm(this[0],t[0]);let n=x.getValue(L,"i32"),s=x.getValue(L+W,"i32"),r=new Array(n);if(n>0){let o=s;for(let a=0;a0){let r=n;for(let o=0;o{x._ts_tree_cursor_delete_wasm(e)}),zm=class kc{static{C(this,"TreeCursor")}0=0;1=0;2=0;3=0;tree;constructor(t,n){wn(t),this.tree=n,Be(this),yc?.register(this,this.tree[0],this)}copy(){let t=new kc(Nt,this.tree);return x._ts_tree_cursor_copy_wasm(this.tree[0]),Be(t),t}delete(){yc?.unregister(this),le(this),x._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}get currentNode(){return le(this),x._ts_tree_cursor_current_node_wasm(this.tree[0]),ue(this.tree)}get currentFieldId(){return le(this),x._ts_tree_cursor_current_field_id_wasm(this.tree[0])}get currentFieldName(){return this.tree.language.fields[this.currentFieldId]}get currentDepth(){return le(this),x._ts_tree_cursor_current_depth_wasm(this.tree[0])}get currentDescendantIndex(){return le(this),x._ts_tree_cursor_current_descendant_index_wasm(this.tree[0])}get nodeType(){return this.tree.language.types[this.nodeTypeId]||"ERROR"}get nodeTypeId(){return le(this),x._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeStateId(){return le(this),x._ts_tree_cursor_current_node_state_id_wasm(this.tree[0])}get nodeId(){return le(this),x._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return le(this),x._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])===1}get nodeIsMissing(){return le(this),x._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])===1}get nodeText(){le(this);let t=x._ts_tree_cursor_start_index_wasm(this.tree[0]),n=x._ts_tree_cursor_end_index_wasm(this.tree[0]);x._ts_tree_cursor_start_position_wasm(this.tree[0]);let s=Jt(L);return _o(this.tree,t,n,s)}get startPosition(){return le(this),x._ts_tree_cursor_start_position_wasm(this.tree[0]),Jt(L)}get endPosition(){return le(this),x._ts_tree_cursor_end_position_wasm(this.tree[0]),Jt(L)}get startIndex(){return le(this),x._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return le(this),x._ts_tree_cursor_end_index_wasm(this.tree[0])}gotoFirstChild(){le(this);let t=x._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return Be(this),t===1}gotoLastChild(){le(this);let t=x._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);return Be(this),t===1}gotoParent(){le(this);let t=x._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return Be(this),t===1}gotoNextSibling(){le(this);let t=x._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return Be(this),t===1}gotoPreviousSibling(){le(this);let t=x._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);return Be(this),t===1}gotoDescendant(t){le(this),x._ts_tree_cursor_goto_descendant_wasm(this.tree[0],t),Be(this)}gotoFirstChildForIndex(t){le(this),x.setValue(L+uo,t,"i32");let n=x._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]);return Be(this),n===1}gotoFirstChildForPosition(t){le(this),Ve(L+uo,t);let n=x._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]);return Be(this),n===1}reset(t){q(t),le(this,L+De),x._ts_tree_cursor_reset_wasm(this.tree[0]),Be(this)}resetTo(t){le(this,L),le(t,L+uo),x._ts_tree_cursor_reset_to_wasm(this.tree[0],t.tree[0]),Be(this)}},Hm=class{static{C(this,"Node")}0=0;_children;_namedChildren;constructor(e,{id:t,tree:n,startIndex:s,startPosition:r,other:o}){wn(e),this[0]=o,this.id=t,this.tree=n,this.startIndex=s,this.startPosition=r}id;startIndex;startPosition;tree;get typeId(){return q(this),x._ts_node_symbol_wasm(this.tree[0])}get grammarId(){return q(this),x._ts_node_grammar_symbol_wasm(this.tree[0])}get type(){return this.tree.language.types[this.typeId]||"ERROR"}get grammarType(){return this.tree.language.types[this.grammarId]||"ERROR"}get isNamed(){return q(this),x._ts_node_is_named_wasm(this.tree[0])===1}get isExtra(){return q(this),x._ts_node_is_extra_wasm(this.tree[0])===1}get isError(){return q(this),x._ts_node_is_error_wasm(this.tree[0])===1}get isMissing(){return q(this),x._ts_node_is_missing_wasm(this.tree[0])===1}get hasChanges(){return q(this),x._ts_node_has_changes_wasm(this.tree[0])===1}get hasError(){return q(this),x._ts_node_has_error_wasm(this.tree[0])===1}get endIndex(){return q(this),x._ts_node_end_index_wasm(this.tree[0])}get endPosition(){return q(this),x._ts_node_end_point_wasm(this.tree[0]),Jt(L)}get text(){return _o(this.tree,this.startIndex,this.endIndex,this.startPosition)}get parseState(){return q(this),x._ts_node_parse_state_wasm(this.tree[0])}get nextParseState(){return q(this),x._ts_node_next_parse_state_wasm(this.tree[0])}equals(e){return this.tree===e.tree&&this.id===e.id}child(e){return q(this),x._ts_node_child_wasm(this.tree[0],e),ue(this.tree)}namedChild(e){return q(this),x._ts_node_named_child_wasm(this.tree[0],e),ue(this.tree)}childForFieldId(e){return q(this),x._ts_node_child_by_field_id_wasm(this.tree[0],e),ue(this.tree)}childForFieldName(e){let t=this.tree.language.fields.indexOf(e);return t!==-1?this.childForFieldId(t):null}fieldNameForChild(e){q(this);let t=x._ts_node_field_name_for_child_wasm(this.tree[0],e);return t?x.AsciiToString(t):null}fieldNameForNamedChild(e){q(this);let t=x._ts_node_field_name_for_named_child_wasm(this.tree[0],e);return t?x.AsciiToString(t):null}childrenForFieldName(e){let t=this.tree.language.fields.indexOf(e);return t!==-1&&t!==0?this.childrenForFieldId(t):[]}childrenForFieldId(e){q(this),x._ts_node_children_by_field_id_wasm(this.tree[0],e);let t=x.getValue(L,"i32"),n=x.getValue(L+W,"i32"),s=new Array(t);if(t>0){let r=n;for(let o=0;o0){let n=t;for(let s=0;s0){let n=t;for(let s=0;s0){let d=l;for(let m=0;m=e.oldEndIndex){this.startIndex=e.newEndIndex+(this.startIndex-e.oldEndIndex);let t,n;this.startPosition.row>e.oldEndPosition.row?(t=this.startPosition.row-e.oldEndPosition.row,n=this.startPosition.column):(t=0,n=this.startPosition.column,this.startPosition.column>=e.oldEndPosition.column&&(n=this.startPosition.column-e.oldEndPosition.column)),t>0?(this.startPosition.row+=t,this.startPosition.column=n):this.startPosition.column+=n}else this.startIndex>e.startIndex&&(this.startIndex=e.newEndIndex,this.startPosition.row=e.newEndPosition.row,this.startPosition.column=e.newEndPosition.column)}toString(){q(this);let e=x._ts_node_to_string_wasm(this.tree[0]),t=x.AsciiToString(e);return x._free(e),t}};C(go,"unmarshalCaptures");C(q,"marshalNode");C(ue,"unmarshalNode");C(le,"marshalTreeCursor");C(Be,"unmarshalTreeCursor");C(Ve,"marshalPoint");C(Jt,"unmarshalPoint");C(Ec,"marshalRange");C(Rs,"unmarshalRange");C(vc,"marshalEdit");C(Rc,"unmarshalLanguageMetadata");qm=/^tree_sitter_\w+$/,ho=class vs{static{C(this,"Language")}0=0;types;fields;constructor(t,n){wn(t),this[0]=n,this.types=new Array(x._ts_language_symbol_count(this[0]));for(let s=0,r=this.types.length;s0){let r=n;for(let o=0;o0){let o=s;for(let a=0;a(co(),lo))).readFile(t);else{let r=await fetch(t);if(!r.ok){let a=await r.text();throw new Error(`Language.load failed with status ${r.status}. -${d}`)}let c=l.clone();try{n=await WebAssembly.compileStreaming(l)}catch(d){console.error("wasm streaming compile failed:",d),console.error("falling back to ArrayBuffer instantiation"),n=new Uint8Array(await c.arrayBuffer())}}let r=await x.loadWebAssemblyModule(n,{loadAsync:!0}),s=Object.keys(r),o=s.find(l=>jm.test(l)&&!l.includes("external_scanner_"));if(!o)throw console.log(`Couldn't find language function in Wasm file. Symbols: -${JSON.stringify(s,null,2)}`),new Error("Language.load failed: no language function found in Wasm file");let a=r[o]();return new wc(Ft,a)}};C(xc,"Module");Wm=xc,Sc=null;C(kc,"initializeBinding");C(Ec,"checkModule");_o=class{static{C(this,"Parser")}0=0;1=0;logCallback=null;language=null;static async init(e){gc(await kc(e)),L=x._ts_init(),co=x.getValue(L,"i32"),uo=x.getValue(L+W,"i32")}constructor(){this.initialize()}initialize(){if(!Ec())throw new Error("cannot construct a Parser before calling `init()`");x._ts_parser_new_wasm(),this[0]=x.getValue(L,"i32"),this[1]=x.getValue(L+W,"i32")}delete(){x._ts_parser_delete(this[0]),x._free(this[1]),this[0]=0,this[1]=0}setLanguage(e){let t;if(!e)t=0,this.language=null;else if(e.constructor===go){t=e[0];let n=x._ts_language_abi_version(t);if(ne.slice(l);else if(typeof e=="function")x.currentParseCallback=e;else throw new Error("Argument must be a string or a function");n?.progressCallback?x.currentProgressCallback=n.progressCallback:x.currentProgressCallback=null,this.logCallback?(x.currentLogCallback=this.logCallback,x._ts_parser_enable_logger_wasm(this[0],1)):(x.currentLogCallback=null,x._ts_parser_enable_logger_wasm(this[0],0));let r=0,s=0;if(n?.includedRanges){r=n.includedRanges.length,s=x._calloc(r,Kn);let l=s;for(let c=0;c0){let r=t;for(let s=0;se.type==="capture","isCaptureStep"),ho=C(e=>e.type==="string","isStringStep"),Ye={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},Vn=class vc extends Error{constructor(t,n,r,s){super(vc.formatMessage(t,n)),this.kind=t,this.info=n,this.index=r,this.length=s,this.name="QueryError"}static{C(this,"QueryError")}static formatMessage(t,n){switch(t){case Ye.NodeName:return`Bad node name '${n.word}'`;case Ye.FieldName:return`Bad field name '${n.word}'`;case Ye.CaptureName:return`Bad capture name @${n.word}`;case Ye.PatternStructure:return`Bad pattern structure at offset ${n.suffix}`;case Ye.Syntax:return`Bad syntax at offset ${n.suffix}`}}};C(Rc,"parseAnyPredicate");C(Mc,"parseMatchPredicate");C(Cc,"parseAnyOfPredicate");C(Ac,"parseIsPredicate");C(Tc,"parseSetDirective");C(Ic,"parsePattern");Nc=class{static{C(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(e,t){let n=x.lengthBytesUTF8(t),r=x._malloc(n+1);x.stringToUTF8(t,r,n+1);let s=x._ts_query_new(e[0],r,n,L,L+W);if(!s){let y=x.getValue(L+W,"i32"),S=x.getValue(L,"i32"),_=x.UTF8ToString(r,S).length,k=t.slice(_,_+100).split(` -`)[0],b=k.match(zm)?.[0]??"";switch(x._free(r),y){case Ye.Syntax:throw new Vn(Ye.Syntax,{suffix:`${_}: '${k}'...`},_,0);case Ye.NodeName:throw new Vn(y,{word:b},_,b.length);case Ye.FieldName:throw new Vn(y,{word:b},_,b.length);case Ye.CaptureName:throw new Vn(y,{word:b},_,b.length);case Ye.PatternStructure:throw new Vn(y,{suffix:`${_}: '${k}'...`},_,0)}}let o=x._ts_query_string_count(s),a=x._ts_query_capture_count(s),l=x._ts_query_pattern_count(s),c=new Array(a),d=new Array(l),m=new Array(o);for(let y=0;yo)throw new Error("`startIndex` cannot be greater than `endIndex`");if(r!==$e&&(n.row>r.row||n.row===r.row&&n.column>r.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(d!==0&&c>d)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==$e&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");f&&(x.currentQueryProgressCallback=f),G(e),x._ts_query_matches_wasm(this[0],e.tree[0],n.row,n.column,r.row,r.column,s,o,a.row,a.column,l.row,l.column,c,d,m,u);let p=x.getValue(L,"i32"),g=x.getValue(L+W,"i32"),h=x.getValue(L+2*W,"i32"),y=new Array(p);this.exceededMatchLimit=!!h;let S=0,_=g;for(let k=0;kA(v))){y[S]={patternIndex:b,captures:v};let A=this.setProperties[b];y[S].setProperties=A;let F=this.assertedProperties[b];y[S].assertedProperties=F;let T=this.refutedProperties[b];y[S].refutedProperties=T,S++}}return y.length=S,x._free(g),x.currentQueryProgressCallback=null,y}captures(e,t={}){let n=t.startPosition??$e,r=t.endPosition??$e,s=t.startIndex??0,o=t.endIndex??0,a=t.startContainingPosition??$e,l=t.endContainingPosition??$e,c=t.startContainingIndex??0,d=t.endContainingIndex??0,m=t.matchLimit??4294967295,u=t.maxStartDepth??4294967295,f=t.progressCallback;if(typeof m!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=m,o!==0&&s>o)throw new Error("`startIndex` cannot be greater than `endIndex`");if(r!==$e&&(n.row>r.row||n.row===r.row&&n.column>r.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(d!==0&&c>d)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==$e&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");f&&(x.currentQueryProgressCallback=f),G(e),x._ts_query_captures_wasm(this[0],e.tree[0],n.row,n.column,r.row,r.column,s,o,a.row,a.column,l.row,l.column,c,d,m,u);let p=x.getValue(L,"i32"),g=x.getValue(L+W,"i32"),h=x.getValue(L+2*W,"i32"),y=new Array;this.exceededMatchLimit=!!h;let S=new Array,_=g;for(let k=0;kA(S))){let A=S[v],F=this.setProperties[b];A.setProperties=F;let T=this.assertedProperties[b];A.assertedProperties=T;let U=this.refutedProperties[b];A.refutedProperties=U,y.push(A)}}return x._free(g),x.currentQueryProgressCallback=null,y}predicatesForPattern(e){return this.predicates[e]}disableCapture(e){let t=x.lengthBytesUTF8(e),n=x._malloc(t+1);x.stringToUTF8(e,n,t+1),x._ts_query_disable_capture(this[0],n,t),x._free(n)}disablePattern(e){if(e>=this.predicates.length)throw new Error(`Pattern index is ${e} but the pattern count is ${this.predicates.length}`);x._ts_query_disable_pattern(this[0],e)}didExceedMatchLimit(){return this.exceededMatchLimit}startIndexForPattern(e){if(e>=this.predicates.length)throw new Error(`Pattern index is ${e} but the pattern count is ${this.predicates.length}`);return x._ts_query_start_byte_for_pattern(this[0],e)}endIndexForPattern(e){if(e>=this.predicates.length)throw new Error(`Pattern index is ${e} but the pattern count is ${this.predicates.length}`);return x._ts_query_end_byte_for_pattern(this[0],e)}patternCount(){return x._ts_query_pattern_count(this[0])}captureIndexForName(e){return this.captureNames.indexOf(e)}isPatternRooted(e){return x._ts_query_is_pattern_rooted(this[0],e)===1}isPatternNonLocal(e){return x._ts_query_is_pattern_non_local(this[0],e)===1}isPatternGuaranteedAtStep(e){return x._ts_query_is_pattern_guaranteed_at_step(this[0],e)===1}}});function Qn(e){return Ms[e]}function xn(){let e=R.env.XDG_CACHE_HOME,t=e&&e.trim()?e.trim():I(uc(),".cache");return I(t,"codeindex","grammars",fe)}function Qe(e={}){let t=xn(),n=(l,c)=>({tier:l,dir:c,cacheDir:t,dirs:[c,...H(I(c,"..",Fc))?[I(c,"..",Fc)]:[]]}),r=R.env.CODEINDEX_GRAMMAR_DIR??R.env.ULTRAINDEX_GRAMMAR_DIR;if(r&&r.trim()&&H(r))return n("env",r);let s=e.moduleDir??_e(Ss(import.meta.url)),o=[I(s,"grammars"),I(s,"..","..","scripts","grammars"),I(s,"..","scripts","grammars")];for(let l of o)if(H(l))return n("adjacent",l);let a=R.env.CODEINDEX_GRAMMARS_DIR;return a&&a.trim()&&H(a)?n("env",a):H(t)?n("cache",t):{tier:"none",cacheDir:t,dirs:[]}}function Hm(e){return Qe(e).dir}async function et(e){let{dirs:t}=Qe();if(!t.length)return;let n=r=>{for(let s of t){let o=I(s,r);if(H(o))return o}};if(!Oc){let r=n("web-tree-sitter.wasm");if(!r)return;await _o.init({wasmBinary:Q(r)}),Oc=!0,Rs=new _o}for(let r of new Set(e)){if(Xn.has(r))continue;let s=n(`${r}.wasm`),o=s?(()=>{try{let a=xe(s);return`${s}:${a.size}:${a.mtimeMs}`}catch{return`${s}:unreadable`}})():`missing:${t.join("|")}`;if(vs.get(r)!==o){if(!s){vs.set(r,o);continue}try{Xn.set(r,await go.load(new Uint8Array(Q(s)))),vs.delete(r)}catch{vs.set(r,o)}}}}function bo(){return[...new Set(Object.values(Ms))]}function wt(e){let t=new Set;for(let n of e){let r=Ms[n];r!==void 0&&t.add(r)}return[...t].sort()}function tt(e){return Xn.has(e)}function wo(e){return Xn.get(e)}function Cs(e){let t=Xn.get(e);return!Rs||!t?null:(Rs.setLanguage(t),Rs)}var Zn,Yn,Ms,Fc,Oc,Rs,Xn,vs,nt=O(()=>{"use strict";E();Se();io();ae();ks();yo();Xe();Zn=new Set(["typescript","tsx","javascript","python","go","rust","java","ruby","c","cpp","c_sharp","php","scala","bash","lua"]),Yn=new Set(["kotlin","elixir","zig","hcl","terraform","solidity"]),Ms={".ts":"typescript",".mts":"typescript",".cts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".pyi":"python",".go":"go",".rs":"rust",".java":"java",".rb":"ruby",".rake":"ruby",".c":"c",".h":"c",".cc":"cpp",".cpp":"cpp",".cxx":"cpp",".hpp":"cpp",".hh":"cpp",".cs":"c_sharp",".php":"php",".scala":"scala",".sc":"scala",".sh":"bash",".bash":"bash",".lua":"lua",".kt":"kotlin",".kts":"kotlin",".ex":"elixir",".exs":"elixir",".zig":"zig",".hcl":"hcl",".tf":"terraform",".tfvars":"terraform",".sol":"solidity"};Fc="grammars-extended";Oc=!1,Rs=null,Xn=new Map,vs=new Map});function Te(e,t){for(let n of e.namedChildren){if(t(n))return n;let r=Te(n,t);if(r)return r}}function er(e){let t=e.childForFieldName("name");if(t?.text)return t.text;let n=e.childForFieldName("declarator");for(;n;){let o=n.childForFieldName("name");if(o?.text)return o.text;if(n.namedChildren.length===0&&/(^|_)identifier$/.test(n.type))return n.text;let a=n.childForFieldName("declarator");if(!a||a===n)break;n=a}let s=Te(e,o=>o.type==="variable_declarator")?.childForFieldName("name");if(s?.text)return s.text;for(let o of e.namedChildren)if(/(^|_)(identifier|name|constant)$/.test(o.type))return o.text}function Kt(e){if(!e)return;let t=e.namedChildren;if(t.length===0)return As.test(e.type)?e.text:void 0;let n=e.childForFieldName("name")??e.childForFieldName("property")??e.childForFieldName("attribute")??e.childForFieldName("field")??e.childForFieldName("function");if(n)return Kt(n);let r=t[t.length-1];return r&&r!==e?Kt(r):void 0}function tr(e){if(!e||e.namedChildren.length===0)return;let t=e.childForFieldName("object")??e.childForFieldName("operand")??e.childForFieldName("value")??e.childForFieldName("path")??e.childForFieldName("expression")??e.childForFieldName("argument")??e.childForFieldName("receiver")??e.childForFieldName("table"),n=t?Kt(t):void 0;return n&&/^[A-Za-z_]\w*$/.test(n)?n:void 0}function ze(e){if(!e)return;let t=e.childForFieldName("type")??e.childForFieldName("name");if(t&&/generic|qualified|scoped|nested/.test(e.type))return ze(t);if(e.namedChildren.length===0)return Pc.test(e.type)?e.text:void 0;let n,r=s=>{if(s.namedChildren.length===0){Pc.test(s.type)&&(n=s.text);return}if(!/arguments|parameters/.test(s.type))for(let o of s.namedChildren)r(o)};return r(e),n}var As,Pc,xo=O(()=>{"use strict";E();As=/(^|_)(identifier|name|constant|word)$/;Pc=/identifier|constant|(^|_)name$/});function Fe(e){if(!e)return[];let t=[];for(let n of e.namedChildren){if(/arguments|parameters/.test(n.type))continue;let r=ze(n);r&&t.push(r)}return t}function $c(e,t){if(!t.self)return[];let n=he(e,"class_heritage");if(!n)return[];let r=[];for(let s of Fe(he(n,"extends_clause")))r.push(ge("extends",t.self,s,e));for(let s of Fe(he(n,"implements_clause")))r.push(ge("implements",t.self,s,e));return r}function nr(e,t,n){return Fe(e).map((s,o)=>ge(o===0?"extends":"implements",t,s,n))}var he,ge,Bc,Eo,Is,Dc,So,Gm,Lc,jc,qm,rr,Vm,Ts,Wc,Jm,Uc,ko,zc,Hc=O(()=>{"use strict";E();xo();he=(e,t)=>e.namedChildren.find(n=>n.type===t),ge=(e,t,n,r)=>({kind:e,from:t,to:n,line:r.startPosition.row+1});Bc=new Set(["interface","trait","enum","protocol","annotation"]),Eo=new Set(["function","method","def","constructor","operator"]),Is=new Set(["function","function_expression","arrow_function","generator_function","class","function_definition","lambda"]),Dc=e=>/\b(public|internal)\b/.test(e),So=e=>!/\b(private|protected)\b/.test(e),Gm=e=>!/^local\b/.test(e),Lc=e=>/\bpub\b/.test(e),jc=(e,t)=>/^[A-Z]/.test(t),qm=(e,t)=>!t.startsWith("_")||/^__\w+__$/.test(t),rr=()=>!0,Vm=()=>!1,Ts=e=>Te(e,t=>t.type==="function_declarator")!==void 0,Wc={defmodule:"module",defprotocol:"protocol",defimpl:"impl",defstruct:"struct",defexception:"exception",def:"function",defp:"function",defmacro:"macro",defmacrop:"macro",defguard:"guard",defguardp:"guard",defdelegate:"function"},Jm=new Set(["resource","data","variable","output","module","provider","locals","terraform"]),Uc={lang:"terraform",defs:{block:"block"},containers:new Set(["config_file","body"]),exported:rr,kindFrom:{block:e=>{let t=e.namedChildren.find(n=>n.type==="identifier")?.text;return t&&Jm.has(t)?t:void 0}},nameFrom:{block:e=>{let t=e.namedChildren.filter(n=>n.type==="string_lit").map(n=>n.text.replace(/^"|"$/g,""));return t.length?t.join("."):e.namedChildren.find(n=>n.type==="identifier")?.text}}},ko={lang:"typescript",defs:{function_declaration:"function",generator_function_declaration:"function",function_signature:"function",class_declaration:"class",abstract_class_declaration:"class",interface_declaration:"interface",type_alias_declaration:"type",enum_declaration:"enum",enum_assignment:"enum-member",method_definition:"method",method_signature:"method",abstract_method_signature:"method",property_signature:"property",public_field_definition:"property",call_signature:"call-signature",construct_signature:"construct-signature",index_signature:"index-signature",internal_module:"namespace",module:"namespace",variable_declarator:"const"},containers:new Set(["class_body","export_statement","ambient_declaration","program","lexical_declaration","variable_declaration","interface_body","object_type","enum_body","statement_block","try_statement","catch_clause","finally_clause","if_statement","else_clause","for_statement","for_in_statement","while_statement","do_statement","switch_statement","switch_body","switch_case","switch_default","labeled_statement","return_statement","expression_statement","call_expression","arguments","arrow_function","function_expression","function","parenthesized_expression"]),exported:Vm,exportMarkers:new Set(["export_statement","ambient_declaration"]),bareMembers:{enum_body:"enum-member"},nameFrom:{call_signature:()=>"(call)",construct_signature:()=>"(construct)",index_signature:e=>`[${e.namedChildren.find(t=>t.type==="identifier")?.text??"key"}]`},privateMember:e=>{for(let t of e.namedChildren)if(t.type==="accessibility_modifier"&&/^(private|protected)/.test(t.text)||t.type==="private_property_identifier")return!0;return!1},imports:{import_statement:"string"},calls:{call_expression:"function",new_expression:"constructor"},assignments:!0,relationsFrom:{class_declaration:$c,abstract_class_declaration:$c,interface_declaration:(e,t)=>t.self?Fe(he(e,"extends_type_clause")).map(n=>ge("extends",t.self,n,e)):[]}},zc={typescript:ko,tsx:{...ko,lang:"typescript"},javascript:{...ko,lang:"javascript",defs:{function_declaration:"function",generator_function_declaration:"function",class_declaration:"class",method_definition:"method",field_definition:"property",variable_declarator:"const"}},python:{lang:"python",defs:{function_definition:"function",class_definition:"class"},containers:new Set(["block","decorated_definition","module"]),exported:qm,imports:{import_statement:"path",import_from_statement:"path"},calls:{call:"function"},docstring:!0,relationsFrom:{class_definition:(e,t)=>t.self?Fe(e.childForFieldName("superclasses")).map(n=>ge("extends",t.self,n,e)):[]},extraMembers:(e,t)=>{if(t.inFunctionBody)return[];if(e.type==="import_from_statement"){let s=[];for(let o of e.namedChildren){if(o.type!=="aliased_import")continue;let a=o.namedChildren[0]?.text,l=o.childForFieldName("alias")?.text;a&&l&&a===l&&s.push({name:l,kind:"reexport"})}return s}if(e.type!=="expression_statement")return[];let n=e.namedChildren[0];if(!n||n.type!=="assignment")return[];let r=n.childForFieldName("left");return!r||r.type!=="identifier"?[]:[{name:r.text,kind:t.ownerKind==="class"?"field":"const"}]}},go:{lang:"go",defs:{function_declaration:"function",method_declaration:"method",type_spec:"type",const_spec:"const",var_spec:"var",field_declaration:"field",method_spec:"method",method_elem:"method",package_clause:"package"},containers:new Set(["type_declaration","const_declaration","var_declaration","var_spec_list","source_file","struct_type","interface_type","field_declaration_list"]),exported:jc,imports:{import_declaration:"string"},calls:{call_expression:"function"},parentFrom:{method_declaration:e=>ze(e.childForFieldName("receiver"))},nameFrom:{field_declaration:e=>e.childForFieldName("name")?.text},relationsFrom:{field_declaration:(e,t)=>{if(!t.self||e.childForFieldName("name"))return[];let n=ze(e.childForFieldName("type"));return n?[ge("extends",t.self,n,e)]:[]}}},ruby:{lang:"ruby",defs:{method:"def",singleton_method:"def",class:"class",module:"module"},containers:new Set(["class","module","body_statement","program"]),exported:rr,calls:{call:"function"},sectionVisibility:e=>(e.type==="identifier"||e.type==="call")&&/^(private|protected)$/.test(e.text)?!1:e.type==="identifier"&&e.text==="public"?!0:void 0,relationsFrom:{class:(e,t)=>{if(!t.self)return[];let n=ze(e.childForFieldName("superclass"));return n?[ge("extends",t.self,n,e)]:[]},call:(e,t)=>{let n=e.childForFieldName("method");if(!t.self||!n||!/^(include|prepend|extend)$/.test(n.text))return[];let r=[];for(let s of e.childForFieldName("arguments")?.namedChildren??[]){let o=ze(s);o&&r.push(ge("implements",t.self,o,e))}return r}},extraMembers:(e,t)=>{if(t.inFunctionBody)return[];if(e.type==="assignment"){let n=e.childForFieldName("left");return n?.type==="constant"?[{name:n.text,kind:"const"}]:[]}if(e.type==="call"){let n=e.childForFieldName("method");if(!n||!/^attr_(reader|writer|accessor)$/.test(n.text))return[];let r=e.childForFieldName("arguments"),s=[];for(let o of r?.namedChildren??[])o.type==="simple_symbol"&&s.push({name:o.text.replace(/^:/,""),kind:"attr"});return s}return[]}},java:{lang:"java",defs:{class_declaration:"class",interface_declaration:"interface",annotation_type_declaration:"annotation",enum_declaration:"enum",enum_constant:"enum-member",record_declaration:"record",method_declaration:"method",constructor_declaration:"constructor",compact_constructor_declaration:"constructor",field_declaration:"field",constant_declaration:"field",annotation_type_element_declaration:"method"},containers:new Set(["class_body","interface_body","enum_body","enum_body_declarations","annotation_type_body","program","formal_parameters"]),exported:Dc,imports:{import_declaration:"path"},calls:{method_invocation:"function",object_creation_expression:"constructor"},kindFrom:{formal_parameter:e=>e.parent?.parent?.type==="record_declaration"?"field":void 0},publicMember:e=>e.parent?.parent?.type==="record_declaration",nameFrom:{field_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text,constant_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text},relationsFrom:{class_declaration:(e,t)=>{if(!t.self)return[];let n=[];for(let s of Fe(e.childForFieldName("superclass")))n.push(ge("extends",t.self,s,e));let r=e.childForFieldName("interfaces");for(let s of Fe(he(r??e,"type_list")??r))n.push(ge("implements",t.self,s,e));return n},interface_declaration:(e,t)=>{let n=e.childForFieldName("interfaces")??he(e,"extends_interfaces");return t.self?Fe(he(n??e,"type_list")??n).map(r=>ge("extends",t.self,r,e)):[]},record_declaration:(e,t)=>{let n=e.childForFieldName("interfaces");return t.self?Fe(he(n??e,"type_list")??n).map(r=>ge("implements",t.self,r,e)):[]}}},rust:{lang:"rust",defs:{function_item:"function",function_signature_item:"function",struct_item:"struct",enum_item:"enum",enum_variant:"enum-member",field_declaration:"field",trait_item:"trait",type_item:"type",associated_type:"type",mod_item:"mod",const_item:"const",static_item:"static",union_item:"union",macro_definition:"macro"},containers:new Set(["impl_item","declaration_list","source_file","field_declaration_list","enum_variant_list","foreign_mod_item","block"]),exported:Lc,calls:{call_expression:"function"},parentFrom:{impl_item:e=>ze(e.childForFieldName("type"))},nestedDefs:new Set(["const_item","static_item"]),publicMembersIn:{impl_item:e=>e.childForFieldName("trait")!==null},relationsFrom:{impl_item:(e,t)=>{let n=ze(e.childForFieldName("trait"));return t.self&&n?[ge("implements",t.self,n,e)]:[]}}},c_sharp:{lang:"csharp",defs:{class_declaration:"class",interface_declaration:"interface",struct_declaration:"struct",enum_declaration:"enum",enum_member_declaration:"enum-member",record_declaration:"record",delegate_declaration:"delegate",method_declaration:"method",constructor_declaration:"constructor",property_declaration:"property",indexer_declaration:"indexer",operator_declaration:"operator",field_declaration:"field",event_declaration:"event",event_field_declaration:"event",conversion_operator_declaration:"operator",destructor_declaration:"destructor"},containers:new Set(["namespace_declaration","declaration_list","compilation_unit","file_scoped_namespace_declaration","enum_member_declaration_list","parameter_list"]),exported:Dc,calls:{invocation_expression:"function",object_creation_expression:"constructor"},kindFrom:{parameter:e=>e.parent?.parent?.type==="record_declaration"?"field":void 0},publicMember:e=>e.parent?.parent?.type==="record_declaration",nameFrom:{field_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text,event_field_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text,conversion_operator_declaration:e=>e.childForFieldName("type")?.text},relationsFrom:{class_declaration:(e,t)=>t.self?nr(he(e,"base_list"),t.self,e):[],struct_declaration:(e,t)=>t.self?nr(he(e,"base_list"),t.self,e):[],record_declaration:(e,t)=>t.self?nr(he(e,"base_list"),t.self,e):[],interface_declaration:(e,t)=>t.self?Fe(he(e,"base_list")).map(n=>ge("extends",t.self,n,e)):[]}},php:{lang:"php",defs:{function_definition:"function",class_declaration:"class",interface_declaration:"interface",trait_declaration:"trait",enum_declaration:"enum",enum_case:"enum-member",method_declaration:"method",property_declaration:"property",const_declaration:"const",namespace_definition:"namespace"},containers:new Set(["declaration_list","enum_declaration_list","program"]),exported:So,calls:{function_call_expression:"function",member_call_expression:"member",object_creation_expression:"constructor"},nameFrom:{property_declaration:e=>Te(e,t=>t.type==="variable_name")?.text.replace(/^\$/,""),const_declaration:e=>Te(e,t=>t.type==="const_element")?.namedChildren[0]?.text},relationsFrom:{class_declaration:(e,t)=>{if(!t.self)return[];let n=[];for(let r of Fe(he(e,"base_clause")))n.push(ge("extends",t.self,r,e));for(let r of Fe(he(e,"class_interface_clause")))n.push(ge("implements",t.self,r,e));return n},interface_declaration:(e,t)=>t.self?Fe(he(e,"base_clause")).map(n=>ge("extends",t.self,n,e)):[]}},c:{lang:"c",defs:{function_definition:"function",struct_specifier:"struct",enum_specifier:"enum",enumerator:"enum-member",union_specifier:"union",type_definition:"type",field_declaration:"field",declaration:"const"},containers:new Set(["translation_unit","declaration_list","field_declaration_list","enumerator_list","linkage_specification","preproc_ifdef","preproc_if"]),exported:rr,calls:{call_expression:"function"},kindFrom:{field_declaration:e=>Ts(e)?"method":"field",declaration:e=>Ts(e)?"function":"const"}},cpp:{lang:"cpp",defs:{function_definition:"function",class_specifier:"class",struct_specifier:"struct",enum_specifier:"enum",enumerator:"enum-member",union_specifier:"union",type_definition:"type",alias_declaration:"type",concept_definition:"concept",namespace_definition:"namespace",namespace_alias_definition:"namespace",field_declaration:"field",declaration:"const",using_declaration:"using",friend_declaration:"friend"},containers:new Set(["translation_unit","declaration_list","field_declaration_list","enumerator_list","template_declaration","linkage_specification","preproc_ifdef","preproc_if"]),exported:rr,calls:{call_expression:"function",new_expression:"constructor"},kindFrom:{field_declaration:e=>Ts(e)?"method":"field",declaration:e=>Ts(e)?"function":"const"},sectionVisibility:e=>e.type==="access_specifier"?!/^(private|protected)/.test(e.text):void 0,nameFrom:{friend_declaration:e=>er(e)??(e.namedChildren[0]?er(e.namedChildren[0]):void 0)},relationsFrom:{class_specifier:(e,t)=>t.self?Fe(he(e,"base_class_clause")).map(n=>ge("extends",t.self,n,e)):[],struct_specifier:(e,t)=>t.self?Fe(he(e,"base_class_clause")).map(n=>ge("extends",t.self,n,e)):[]}},scala:{lang:"scala",defs:{class_definition:"class",object_definition:"object",trait_definition:"trait",enum_definition:"enum",function_definition:"def",function_declaration:"def",val_definition:"val",val_declaration:"val",var_definition:"var",type_definition:"type",given_definition:"given",package_clause:"package"},containers:new Set(["compilation_unit","package_clause","template_body","class_parameters","parameters","extension_definition"]),parentFrom:{extension_definition:e=>ze(he(e,"parameters")?.namedChildren[0]?.childForFieldName("type")??null)},exported:So,kindFrom:{class_parameter:e=>/^\s*(?:val|var)\b/.test(e.text)?/^\s*var\b/.test(e.text)?"var":"val":e.parent?.parent?.type==="class_definition"&&/\bcase\s+class\b/.test(e.parent.parent.text.slice(0,80))?"val":void 0},calls:{call_expression:"function",instance_expression:"constructor"},relationsFrom:{class_definition:(e,t)=>t.self?nr(he(e,"extends_clause"),t.self,e):[],object_definition:(e,t)=>t.self?nr(he(e,"extends_clause"),t.self,e):[],trait_definition:(e,t)=>t.self?Fe(he(e,"extends_clause")).map(n=>ge("extends",t.self,n,e)):[]}},bash:{lang:"shell",defs:{function_definition:"function",declaration_command:"const"},containers:new Set(["program","if_statement","compound_statement"]),exported:rr,calls:{command:"function"},nameFrom:{declaration_command:e=>/^\s*local\b/.test(e.text)?void 0:Te(e,t=>t.type==="variable_name")?.text}},kotlin:{lang:"kotlin",defs:{class_declaration:"class",object_declaration:"object",function_declaration:"function",property_declaration:"property",enum_entry:"enum-member",type_alias:"type",class_parameter:"property"},containers:new Set(["source_file","class_body","enum_class_body","companion_object","object_declaration","primary_constructor","class_parameters"]),exported:So,calls:{call_expression:"function"},kindFrom:{class_parameter:e=>/^\s*(?:val|var)\b/.test(e.text)||/\bdata\s+class\b/.test(e.parent?.parent?.parent?.text.slice(0,80)??"")?"property":void 0,class_declaration:e=>{let t=e.text.slice(0,80);return/\binterface\b/.test(t)?"interface":/\benum\s+class\b/.test(t)?"enum":/\bannotation\s+class\b/.test(t)?"annotation":"class"}},nameFrom:{property_declaration:e=>Te(e,t=>t.type==="variable_declaration")?.namedChildren[0]?.text??e.namedChildren.find(t=>t.type==="identifier")?.text},relationsFrom:{class_declaration:(e,t)=>{if(!t.self)return[];let n=[];for(let r of he(e,"delegation_specifiers")?.namedChildren??[]){let s=ze(r);s&&n.push(ge(Te(r,o=>o.type==="constructor_invocation")?"extends":"implements",t.self,s,e))}return n}}},elixir:{lang:"elixir",defs:{},containers:new Set(["source","do_block","call","stab_clause"]),exported:e=>!/^\s*defp?macrop\b|^\s*defp\b/.test(e),calls:{call:"function"},kindFrom:{call:e=>Wc[e.childForFieldName("target")?.text??e.namedChildren[0]?.text??""]},skipCall:e=>{if(e.parent?.type==="unary_operator")return!0;if(e.parent?.type!=="arguments")return!1;let t=e.parent.parent,n=t?.childForFieldName("target")??t?.namedChildren[0];return n!==void 0&&Wc[n.text]!==void 0},docFrom:e=>{let t=e.previousNamedSibling;for(;t&&t.type==="unary_operator";){let n=t.namedChildren[0],r=n?.childForFieldName("target")??n?.namedChildren[0];if(r&&/^(doc|moduledoc)$/.test(r.text)){let s=Te(t,o=>o.type==="string");if(s)return s.text.replace(/^"""|"""$/g,"").replace(/^"|"$/g,"").trim()||void 0}t=t.previousNamedSibling}},nameFrom:{call:e=>{let n=(e.childForFieldName("arguments")??e.namedChildren.find(s=>s.type==="arguments"))?.namedChildren[0];if(!n)return;if(n.type==="alias"||n.type==="identifier")return n.text;let r=n.childForFieldName("target")??n.namedChildren[0];return r&&/identifier|alias/.test(r.type)?r.text:void 0}}},zig:{lang:"zig",defs:{function_declaration:"function",variable_declaration:"const",container_field:"field",test_declaration:"test"},containers:new Set(["source_file","variable_declaration","struct_declaration","enum_declaration","union_declaration","error_set_declaration","opaque_declaration","block"]),exported:Lc,calls:{call_expression:"function"},kindFrom:{variable_declaration:e=>{let t=e.namedChildren.find(n=>n.type==="builtin_function");if(!(t&&/^@(import|cImport)\b/.test(t.text))){for(let n of e.namedChildren){if(n.type==="struct_declaration")return"struct";if(n.type==="enum_declaration")return"enum";if(n.type==="union_declaration")return"union";if(n.type==="error_set_declaration")return"error";if(n.type==="opaque_declaration")return"opaque"}return/^\s*(?:pub\s+)?var\b/.test(e.text.slice(0,24))?"var":"const"}},container_field:e=>e.parent?.type==="enum_declaration"?"enum-member":"field"}},solidity:{lang:"solidity",defs:{contract_declaration:"contract",interface_declaration:"interface",library_declaration:"library",function_definition:"function",constructor_definition:"constructor",modifier_definition:"modifier",event_definition:"event",error_declaration:"error",struct_declaration:"struct",struct_member:"field",enum_declaration:"enum",enum_value:"enum-member",state_variable_declaration:"field",constant_variable_declaration:"const",user_defined_type_definition:"type",fallback_receive_definition:"function"},containers:new Set(["source_file","contract_body","struct_declaration","enum_declaration","enum_body"]),exported:(e,t)=>/\b(public|external)\b/.test(e)?!0:/\b(internal|private)\b/.test(e)?!1:jc(e,t)||!0,calls:{call_expression:"function"},nameFrom:{state_variable_declaration:e=>e.namedChildren.find(t=>t.type==="identifier")?.text,fallback_receive_definition:e=>/^\s*receive\b/.test(e.text)?"receive":"fallback",enum_value:e=>e.text},relationsFrom:{contract_declaration:(e,t)=>t.self?e.namedChildren.filter(n=>n.type==="inheritance_specifier").map(n=>ze(n)).filter(n=>n!==void 0).map(n=>ge("extends",t.self,n,e)):[],interface_declaration:(e,t)=>t.self?e.namedChildren.filter(n=>n.type==="inheritance_specifier").map(n=>ze(n)).filter(n=>n!==void 0).map(n=>ge("extends",t.self,n,e)):[]}},terraform:Uc,hcl:{...Uc,lang:"hcl"},lua:{lang:"lua",defs:{function_declaration:"function"},containers:new Set(["chunk","variable_declaration"]),exported:Gm,calls:{function_call:"function"},assignments:!0}}});function Zm(e){let t=e.childForFieldName("body"),n=t&&t.startIndex>e.startIndex?t.startIndex:void 0,r=s=>{Km.has(s.type)&&s.startIndex>e.startIndex&&(n===void 0||s.startIndex|=)$/,"").trim().slice(0,Xm)}var Km,Xm,Gc=O(()=>{"use strict";E();Km=new Set(["block","statement_block","class_body","declaration_list","field_declaration_list","template_body","compound_statement","body_statement","enum_body","enum_body_declarations","enum_variant_list","enum_member_declaration_list","enumerator_list","interface_body","object_type","do_block","struct_declaration","enum_declaration","union_declaration","error_set_declaration","opaque_declaration","contract_body","enum_class_body"]),Xm=400});function vo(e){return Ym.test(e.trim())}function Ro(e){return Qm.test(e.trim())}function xt(e){return e.replace(/\*+\/\s*$/,"").replace(/^\s*\/\*+!?/,"").replace(/^\s*\/\/[/!]?/,"").replace(/^\s*--+/,"").replace(/^\s*#+/,"").replace(/^\s*\*+/,"").replace(/^\s*(?:"""|''')/,"").replace(/(?:"""|''')\s*$/,"").replace(/[-=~_]{3,}/g," ").trim()}function ep(e){return e.replace(/<\/?[A-Za-z][^>]*>/g," ").replace(/\s+/g," ").trim()}function Mo(e,t=tp){let n=[];for(let o of e){let a=o.trim();if(!(!a||vo(a)||Ro(a))){if(/^@[a-z]/i.test(a))break;n.push(a)}}let r=ep(n.join(" "));if(r.length<3)return;let s=/^(.*?[.!?])(\s|$)/.exec(r);return(s?s[1]:r).slice(0,t)}var Ym,Qm,tp,Ns=O(()=>{"use strict";E();Ym=/^(eslint\b|eslint-|prettier\b|prettier-|tslint\b|jshint\b|jslint\b|globals?\b|istanbul\b|c8\s|v8\s|@ts-|ts-|@flow\b|@jsx\b|@jsxRuntime\b|@jest-environment\b|@vitest-environment\b|@license\b|@preserve\b|@copyright\b|copyright\b|spdx-|1);)t.push(n),r=n.startPosition.row,n=n.previousNamedSibling;if(!t.length)return[];t.reverse();let s=[];for(let o of t)for(let a of o.text.split(/\r?\n/))s.push(xt(a));return s}function Sn(e){let t=e;for(;t;){let n=sp(t);if(n.length){let o=Mo(n);if(o)return o}let r=t.parent;if(!r||!rp.has(r.type))return;let s=t.previousNamedSibling;if(s&&!ip.test(s.type))return;t=r}}function qc(e){let n=e.childForFieldName("body")?.namedChildren[0];if(!n)return;let r=n.type==="string"?n:n.type==="expression_statement"?n.namedChildren[0]:void 0;if(!(!r||r.type!=="string"))return Mo(r.text.split(/\r?\n/).map(xt))}var np,rp,ip,Vc=O(()=>{"use strict";E();Ns();np=/(^|_)comment$/,rp=new Set(["export_statement","ambient_declaration","decorated_definition","template_declaration","labeled_statement","lexical_declaration","variable_declaration","type_declaration","const_declaration","var_declaration","body_statement","body"]);ip=/decorator|annotation|modifiers/});function kp(e){let t=Kc.get(e);return t===void 0&&(t=(_p.test(e)?Xc:0)|(yp.test(e)?Zc:0)|(bp.test(e)?Co:0)|(wp.test(e)?Yc:0)|(xp.test(e)?Qc:0),Kc.set(e,t)),t}function Ep(e){return e.namedChildren.every(t=>Sp.test(t.type))}function vp(e,t,n,r,s){let o=new Set,a=t.calls!==void 0,l=[],c=new Set,d=(b,w,v)=>{if(!b||b.length<2||!/^[A-Za-z_]\w*$/.test(b))return;let A=w.startPosition.row+1,F=`${b} ${A}`;c.has(F)||(c.add(F),l.push(v?{name:b,line:A,receiver:v}:{name:b,line:A}))},m=new Set,u=b=>{if(!(m.size>=Jc))for(let w of yt(b)){if(m.size>=Jc)return;m.add(w)}},f=new Nt,p=t.imports?.import_statement!==void 0,g=new Set,h=s&&t.imports!==void 0,y=[],S=new Set,_=b=>{let w=b.trim();w&&!S.has(w)&&(S.add(w),y.push({kind:"import",spec:w}))},k=b=>{let w=b.type,v=b.namedChildren,A=kp(w);if(v.length===0&&A&Xc){let F=b.text;hp.test(F)&&!n.has(F)&&o.add(F)}if(A&Zc)for(let F of b.text.split(/\r?\n/))u(xt(F));else v.length===0&&A&Co&&b.endIndex-b.startIndex<=up&&u(b.text.replace(/^['"`]+|['"`]+$/g,""));if(f.full||(A&Co?Ep(b)&&f.addString(b.text,b.startPosition.row+1):v.length===0&&A&Yc?f.add("number",b.text.trim(),b.startPosition.row+1):A&Qc&&f.add("regex",b.text,b.startPosition.row+1)),a&&!(t.kindFrom?.[w]&&t.kindFrom[w](b))&&!t.skipCall?.(b)){let F=t.calls[w];if(F==="function"){let T=b.childForFieldName("function")??b.childForFieldName("callee")??b.childForFieldName("method")??b.childForFieldName("name")??b.childForFieldName("target")??v[0]??null;d(Kt(T),b,tr(T)??tr(b))}else if(F==="member")d(Kt(b.childForFieldName("name")),b,tr(b));else if(F==="constructor"){let T=b.childForFieldName("constructor")??b.childForFieldName("type")??b.childForFieldName("name");for(let U=0;!T&&U/string/.test(U.type));T&&_(T.text.replace(/^['"]|['"]$/g,""))}else if(F==="path"){let T=b.childForFieldName("name")??b.childForFieldName("module_name");_((T??b).text.replace(/^(import|from)\s+/,"").split(/\s+/)[0])}}for(let F of v)k(F)};return k(e),l.sort((b,w)=>M(b.name,w.name)||b.line-w.line),{refs:y,idents:[...o].sort().slice(0,op),calls:l.slice(0,r),importedNames:[...g].sort(M).slice(0,lp),terms:[...m].sort(M),literals:f.result()??[]}}function Rp(e){let t=[],n=r=>{if(/^(shorthand_property_identifier_pattern|identifier)$/.test(r.type)){t.includes(r.text)||t.push(r.text);return}if(r.type==="pair_pattern"){let s=r.childForFieldName("value");s&&n(s);return}for(let s of r.namedChildren)n(s)};for(let r of e.namedChildren)n(r);return t}function Ao(e,t,n,r={}){let s=Qn(t);if(!s||!tt(s))return;let o=zc[s];if(!o)return;let a=Cs(s);if(!a)return;let l=null;try{if(l=a.parse(n),!l)return;let c=r.maxSymbols??cp,d=[],m=l.rootNode,u=(e.split("/").pop()??"").replace(/\.[^.]+$/,""),f=new Set,p=P=>{d.length{let B=o.relationsFrom?.[P.type];if(B)for(let se of B(P,{self:j})){if(se.from===se.to)continue;let J=`${se.kind} ${se.from} ${se.to}`;h.has(J)||g.length>=dp||(h.add(J),g.push(se))}},S=(P,j,B,se)=>se.inFunctionBody||o.privateMember?.(P)===!0?!1:o.publicMember?.(P)===!0?!0:se.sectionPublic?se.forcePublic?!0:se.exported||o.exported(j,B):!1,_=P=>o.docFrom?.(P)??(o.docstring?qc(P):void 0)??Sn(P),k=(P,j)=>{let B=j.sectionPublic,se=o.bareMembers?.[P.type];for(let J of P.namedChildren){if(o.sectionVisibility){let be=o.sectionVisibility(J);if(be!==void 0){B=be;continue}}let ne=B===j.sectionPublic?j:{...j,sectionPublic:B};if(se&&J.namedChildren.length===0&&As.test(J.type)){p({name:J.text,kind:se,file:e,line:J.startPosition.row+1,endLine:J.endPosition.row+1,...ne.parent?{parent:ne.parent}:{},exported:ne.forcePublic||ne.exported,lang:o.lang});continue}for(let be of o.extraMembers?.(J,{ownerKind:ne.ownerKind,inFunctionBody:ne.inFunctionBody})??[]){let Ie=Ot(J,n),X=Sn(J);p({name:be.name,kind:be.kind,file:e,line:J.startPosition.row+1,endLine:J.endPosition.row+1,...ne.parent?{parent:ne.parent}:{},...ne.parentPath&&ne.parentPath!==ne.parent?{parentPath:ne.parentPath}:{},signature:Ie,...X?{doc:X}:{},exported:S(J,Ie,be.name,ne),lang:o.lang})}w(J,ne)}},b=(P,j)=>{let B=!1;for(let se of P.namedChildren)o.containers.has(se.type)&&(B=!0,k(se,j));!B&&o.containers.has(P.type)&&k(P,j)},w=(P,j)=>{if(j.funcDepth>fp)return;let B=P.type,se=o.exportMarkers?.has(B)===!0,J=j.exported||se;if(B==="export_statement"){for(let X of P.namedChildren)if(X.type==="identifier")f.add(X.text);else if(X.type==="export_clause")for(let Z of X.namedChildren){let D=Z.childForFieldName("name")??Z.namedChildren[0];D?.text&&f.add(D.text)}if(u&&P.children.some(X=>X.type==="default"))for(let X of P.namedChildren){let Z=pp.has(X.type),D=gp.has(X.type);if((Z||D)&&!X.childForFieldName("name")){let de=Sn(P);p({name:u,kind:D?"class":"function",file:e,line:P.startPosition.row+1,endLine:P.endPosition.row+1,signature:Ot(P,n),...de?{doc:de}:{},exported:!0,lang:o.lang});break}}}if(o.assignments&&B==="expression_statement"){let X=P.namedChildren[0];if(X?.type==="assignment_expression"){let Z=X.childForFieldName("left"),D=X.childForFieldName("right");if(Z?.type==="member_expression"&&Z.text==="module.exports"&&D){if(D.type==="object"){for(let K of D.namedChildren)if(K.type==="shorthand_property_identifier")f.add(K.text);else if(K.type==="pair"){let ce=K.childForFieldName("key"),we=K.childForFieldName("value");ce?.type==="property_identifier"&&f.add(ce.text),we?.type==="identifier"&&f.add(we.text)}return}if(D.type==="identifier"){f.add(D.text);return}}let de=D&&Is.has(D.type);if(Z&&D&&de){let K,ce=!1;if(Z.type==="member_expression"){let we=Z.childForFieldName("property");if(we?.type==="property_identifier"){K=we.text;let gt=Z.text.slice(0,Z.text.length-we.text.length-1);ce=gt==="exports"||gt==="module.exports"}}else Z.type==="identifier"&&(K=Z.text);if(K){let we=Sn(P);p({name:K,kind:D.type==="class"?"class":"function",file:e,line:X.startPosition.row+1,endLine:X.endPosition.row+1,...j.parent?{parent:j.parent}:{},signature:Ot(X,n),...we?{doc:we}:{},exported:!j.inFunctionBody&&(J||ce),lang:o.lang});return}}else if(Z?.type==="member_expression"&&D){let K=Z.childForFieldName("property");if(K?.type==="property_identifier"){let ce=Z.text.slice(0,Z.text.length-K.text.length-1);if(ce==="exports"||ce==="module.exports"){D.type==="identifier"&&f.add(D.text),(D.type!=="identifier"||D.text!==K.text)&&p({name:K.text,kind:"const",file:e,line:X.startPosition.row+1,endLine:X.endPosition.row+1,...j.parent?{parent:j.parent}:{},signature:Ot(X,n),exported:!0,lang:o.lang});return}}}}}if(o.assignments&&B==="assignment_statement"){let X=P.children.find(ce=>ce.type==="variable_list"),Z=P.children.find(ce=>ce.type==="expression_list"),D=X?.namedChildren??[],de=Z?.namedChildren??[],K=Math.min(D.length,de.length);for(let ce=0;ceK.type==="object_pattern"||K.type==="array_pattern");if(D&&!j.inFunctionBody){let K=Ot(P,n),ce=_(P);for(let we of Rp(D))p({name:we,kind:Ie,file:e,line:P.startPosition.row+1,endLine:P.endPosition.row+1,...j.parent?{parent:j.parent}:{},signature:K,...ce?{doc:ce}:{},exported:S(P,K,we,{...j,exported:J}),lang:o.lang});return}let de=Eo.has(Ie)||mp.has(Ie)||o.nestedDefs?.has(B)===!0||Is.has(P.childForFieldName("value")?.type??"");if(Z&&(!j.inFunctionBody||de)){let K=Ot(P,n),ce=_(P),we=ne??j.parent,gt=ne??j.parentPath;p({name:Z,kind:Ie,file:e,line:P.startPosition.row+1,endLine:P.endPosition.row+1,...we?{parent:we}:{},...gt&>!==we?{parentPath:gt}:{},signature:K,...ce?{doc:ce}:{},exported:S(P,K,Z,{...j,exported:J}),lang:o.lang}),y(P,Z);let $n=Eo.has(Ie);b(P,{parent:Z,parentPath:gt?`${gt}/${Z}`:Z,ownerKind:Ie,exported:J,forcePublic:Bc.has(Ie),inFunctionBody:j.inFunctionBody||$n,funcDepth:j.funcDepth+($n?1:0),sectionPublic:!0});return}}if(y(P,ne??j.parent),o.containers.has(B)){let X=j.forcePublic||o.publicMembersIn?.[B]?.(P)===!0,Z=Is.has(B);k(P,{...j,exported:J,forcePublic:X,inFunctionBody:j.inFunctionBody||Z,funcDepth:j.funcDepth+(Z?1:0),...ne?{parent:ne,parentPath:ne,ownerKind:"type"}:{}})}};if(k(m,{exported:!1,forcePublic:!1,inFunctionBody:!1,funcDepth:0,sectionPublic:!0}),f.size)for(let P of d)!P.exported&&f.has(P.name)&&(P.exported=!0);let v=r.imports!==!1,{refs:A,idents:F,calls:T,importedNames:U,terms:te,literals:V}=vp(m,o,new Set(d.map(P=>P.name)),r.maxCalls??ap,v),z;if(v&&o.lang==="java"){let P=Te(m,j=>j.type==="package_declaration");P&&(z=P.text.replace(/^package\s+/,"").replace(/;.*$/,"").trim())}return g.sort((P,j)=>M(P.from,j.from)||M(P.kind,j.kind)||M(P.to,j.to)),{symbols:d,refs:A,pkg:z,idents:F,calls:T,importedNames:U,relations:g,terms:te,literals:V,...d.length>=c?{truncated:!0}:{}}}catch{return}finally{l?.delete()}}var op,ap,lp,cp,dp,Jc,up,fp,mp,pp,gp,_p,hp,yp,bp,wp,xp,Sp,Xc,Zc,Co,Yc,Qc,Kc,To=O(()=>{"use strict";E();ws();Y();nt();xo();Hc();Gc();Vc();Ns();Ae();op=512,ap=512,lp=256,cp=2e3,dp=256,Jc=512,up=80,fp=2,mp=new Set(["class","struct","enum","interface","trait","type","record","union"]),pp=new Set(["function","function_expression","function_declaration","generator_function","generator_function_declaration","arrow_function"]),gp=new Set(["class","class_declaration","abstract_class_declaration"]),_p=/identifier|constant|(^|_)name$/,hp=/^[A-Za-z_]\w{4,}$/,yp=/(^|_)comment$/,bp=/(^|_)string(_literal)?$/,wp=/(^|_)(integer|float|number|decimal|numeric)(_literal)?$/,xp=/(^|_)(regex|regular_expression)(_pattern|_literal)?$/,Sp=/(^|_)(fragment|content|escape_sequence|character)$/,Xc=1,Zc=2,Co=4,Yc=8,Qc=16,Kc=new Map});function Ip(e){let t=e.split(/\r?\n/),n=[],r=null;for(let a=0;aa&&!vo(a)&&!Ro(a)).join(" ").replace(/\s+/g," ").trim();if(s.length<8)return;let o=/^(.*?[.!?])(\s|$)/.exec(s);return(o?o[1]:s).slice(0,200)}function No(e,t=[]){if(t.length>=Np)return t;let n=e.indexOf("{");if(n===-1){let c=e.replace(/\s+as\s+\w+\s*$/,"").replace(/::\s*\*\s*$/,"").replace(/^::/,"").trim();return c&&t.push(c),t}let r=e.slice(0,n),s=0,o=-1;for(let c=n;c({kind:"import",spec:s}))}function Pp(e,t=[],n=512){let r=new Map,s=new Set(t.map(l=>`${l.name} ${l.line}`)),o=e.split(` -`),a=/(?:\bnew\s+)?(?:([A-Za-z_$][\w$]*)\s*\.\s*)?([A-Za-z_$][\w$]*)\s*\(/g;for(let l=0;ll.namec.name?1:l.line-c.line)}function Dp(e){let t=new Set,n=s=>{if(!(t.size>=Io))for(let o of yt(s)){if(t.size>=Io)return;t.add(o)}},r=!1;for(let s of e.split(` -`)){if(t.size>=Io)break;let o=s;if(r){let c=o.indexOf("*/");if(n(xt(c===-1?o:o.slice(0,c))),c===-1)continue;r=!1,o=o.slice(c+2)}let a=o.indexOf("/*");if(a!==-1){let c=o.indexOf("*/",a+2);n(xt(o.slice(a,c===-1?void 0:c))),c===-1?(r=!0,o=o.slice(0,a)):o=o.slice(0,a)+o.slice(c+2)}let l=/(^|\s)(\/\/|#|--)(.*)$/.exec(o);l&&(n(xt(l[2]+l[3])),o=o.slice(0,l.index));for(let c of o.matchAll(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g)){let d=c[2];d.length&&d.length<=$p&&n(d)}}return[...t].sort()}function Lp(e){let t=new Nt,n=!1,r=0;for(let s of e.split(` -`)){if(r++,t.full)break;let o=s;if(n){let c=o.indexOf("*/");if(c===-1)continue;n=!1,o=o.slice(c+2)}let a=o.indexOf("/*");if(a!==-1){let c=o.indexOf("*/",a+2);c===-1?(n=!0,o=o.slice(0,a)):o=o.slice(0,a)+o.slice(c+2)}let l=/(^|\s)(\/\/|#|--)(.*)$/.exec(o);l&&(o=o.slice(0,l.index));for(let c of o.matchAll(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g))t.add("string",c[2],r);for(let c of o.replace(/(['"`])(?:\\.|(?!\1)[^\\])*\1/g," ").matchAll(/(?f.name)),c=gs(e,n,a).filter(f=>!l.has(f.name)),d=Fp(t,n),m=new Set(d.map(f=>f.spec)),u=(s?s.literals.length?s.literals:void 0:Lp(n))?.filter(f=>!(f.kind==="string"&&m.has(f.value)));return{symbols:[...a,...c],...s?.truncated||o.length>a.length||c.length>=ps?{truncated:!0}:{},summary:Ip(n),refs:d,pkg:t===".java"?/^\s*package\s+([\w.]+)\s*;/m.exec(n)?.[1]:t===".cs"?/^\s*(?:file-scoped\s+)?namespace\s+([\w.]+)/m.exec(n)?.[1]:void 0,idents:s?.idents,calls:s?s.calls:Pp(n,a,r.maxCallsPerFile),importedNames:s?.importedNames,relations:s?.relations?.length?s.relations:void 0,terms:s?s.terms:Dp(n),literals:u?.length?u:void 0}}var Mp,Cp,Ap,Tp,Np,Op,ed,Io,$p,Oo=O(()=>{"use strict";E();ws();bn();To();Re();Ns();Ae();Mp=2e3,Cp=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]),Ap=new Set([".py",".pyi"]),Tp=new Set([".c",".h",".cc",".cpp",".cxx",".hpp",".hh"]);Np=16;Op=new Set(["if","else","elif","for","while","do","switch","case","match","when","unless","until","catch","except","return","throw","raise","yield","await","typeof","instanceof","sizeof","delete","void","in","of","not","and","or","assert","defer","select","with","loop"]),ed=/(?:\bfunction|\bdef|\bfunc|\bfun|\bfn|\bclass|\bsub|\bmacro|\bproc)\s*[*]?\s*$/;Io=512,$p=80});function nd(e){let t=new Nt,n=0;for(let r of e.split(` -`)){if(n++,t.full)break;let s=Bp(r);for(let a of s.matchAll(td))t.add("string",a[2],n);let o=Up.exec(s);if(o){let a=o[1].trim();a&&!/^[[{|>&*-]/.test(a)&&!jp.test(a)&&t.add("string",a,n)}for(let a of s.replace(td," ").matchAll(Wp))t.add("number",a[0].replace(/_/g,""),n)}return t.result()}function Bp(e){let t;for(let n=0;n{"use strict";E();ws();td=/(['"])((?:\\.|(?!\1)[^\\])*)\1/g,jp=/(['"])((?:\\.|(?!\1)[^\\])*)\1/,Wp=/(?u.rel)),a!==void 0&&n.length!==a.size&&(l=!1,c=!0),{root:e,commit:ds(e),files:n,languages:r,docText:s,mtimes:o,capped:m.value.capped,excluded:m.value.excluded,contentUnchanged:l,cacheDirty:c}}var Pt=O(()=>{"use strict";E();ae();Ne();qt();Tt();bs();bn();Gn();Y();so();Oo();rd()});var Os,id=O(()=>{E();Os=class{constructor(){throw new Error("worker_threads is not available in the browser build (the engine runs single-threaded here)")}}});function zp(){try{let e=Ss(import.meta.url);if(e.endsWith("engine.mjs"))return qn(e).href;let t=I(_e(e),"engine.mjs");return H(t)?qn(t).href:void 0}catch{return}}function od(e){let t=R.env.CODEINDEX_WORKERS,n=e??(t!==void 0&&t!==""?Number(t):void 0);if(n!==void 0)return Number.isFinite(n)&&n>0?Math.floor(n):0;let r=1;try{r=typeof xs=="function"?xs():fc().length}catch{r=1}return Math.max(0,Math.min(r-1,8))}async function qp(e,t){await et(e.grammarKeys);let n=e.grammarKeys.filter(s=>tt(s)),r=[];for(let s of e.jobs){let o,a;try{let d=xe(s.abs);o=d.size,a=d.mtimeMs}catch{continue}let l=q(s.abs),c=Fs(s.rel,s.ext,o,l,Ce(l),Vt(s.ext),{maxCallsPerFile:e.maxCallsPerFile});r.push({rel:s.rel,size:o,mtimeMs:a,record:c})}t({ready:n,records:r})}async function ad(e,t,n,r={}){if(n<2||e.length===0)return;let s=zp();if(!s)return;let o=t.filter(f=>tt(f)).sort(),a=Math.min(n,e.length),l=`import { runExtractWorker } from ${JSON.stringify(s)}; +${a}`)}let o=r.clone();try{n=await WebAssembly.compileStreaming(r)}catch(a){console.error("wasm streaming compile failed:",a),console.error("falling back to ArrayBuffer instantiation"),n=new Uint8Array(await o.arrayBuffer())}}let s=await x.loadWebAssemblyModule(n,{loadAsync:!0});return vs.loadFromWasmExports(s,{sync:!1})}static loadFromWasmExports(t,{sync:n}){let s=Object.keys(t),r=s.find(a=>qm.test(a)&&!a.includes("external_scanner_"));if(!r)throw console.log(`Couldn't find language function in Wasm file. Symbols: +${JSON.stringify(s,null,2)}`),new Error(`Language.${n?"loadSync":"load"} failed: no language function found in Wasm file`);let o=t[r]();return new vs(Nt,o)}static loadSync(t){let n=x.loadWebAssemblyModule(t,{loadAsync:!1});return vs.loadFromWasmExports(n,{sync:!0})}};C(Mc,"Module");Gm=Mc,Cc=null;C(Ac,"initializeBinding");C(Tc,"checkModule");bc=xn(e=>{x._ts_parser_delete(e[0]),x._free(e[1])}),yo=class{static{C(this,"Parser")}0=0;1=0;logCallback=null;language=null;static async init(e){Sc(await Ac(e)),L=x._ts_init(),fo=x.getValue(L,"i32"),mo=x.getValue(L+W,"i32")}constructor(){this.initialize(),bc?.register(this,[this[0],this[1]],this)}initialize(){if(!Tc())throw new Error("cannot construct a Parser before calling `init()`");x._ts_parser_new_wasm(),this[0]=x.getValue(L,"i32"),this[1]=x.getValue(L+W,"i32")}delete(){bc?.unregister(this),x._ts_parser_delete(this[0]),x._free(this[1]),this[0]=0,this[1]=0}setLanguage(e){let t;if(!e)t=0,this.language=null;else if(e.constructor===ho){t=e[0];let n=x._ts_language_abi_version(t);if(ne.slice(l);else if(typeof e=="function")x.currentParseCallback=e;else throw new Error("Argument must be a string or a function");n?.progressCallback?x.currentProgressCallback=n.progressCallback:x.currentProgressCallback=null,this.logCallback?(x.currentLogCallback=this.logCallback,x._ts_parser_enable_logger_wasm(this[0],1)):(x.currentLogCallback=null,x._ts_parser_enable_logger_wasm(this[0],0));let s=0,r=0;if(n?.includedRanges){s=n.includedRanges.length,r=x._calloc(s,Xn);let l=r;for(let c=0;c0){let s=t;for(let r=0;re.type==="capture","isCaptureStep"),bo=C(e=>e.type==="string","isStringStep"),Ye={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},Jn=class Ic extends Error{constructor(t,n,s,r){super(Ic.formatMessage(t,n)),this.kind=t,this.info=n,this.index=s,this.length=r,this.name="QueryError"}kind;info;index;length;static{C(this,"QueryError")}static formatMessage(t,n){switch(t){case Ye.NodeName:return`Bad node name '${n.word}'`;case Ye.FieldName:return`Bad field name '${n.word}'`;case Ye.CaptureName:return`Bad capture name @${n.word}`;case Ye.PatternStructure:return`Bad pattern structure at offset ${n.suffix}`;case Ye.Syntax:return`Bad syntax at offset ${n.suffix}`}}};C(Fc,"parseAnyPredicate");C(Nc,"parseMatchPredicate");C(Oc,"parseAnyOfPredicate");C(Pc,"parseIsPredicate");C($c,"parseSetDirective");C(Dc,"parsePattern");xc=xn(e=>{x._ts_query_delete(e)}),Lc=class{static{C(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(e,t){let n=x.lengthBytesUTF8(t),s=x._malloc(n+1);x.stringToUTF8(t,s,n+1);let r=x._ts_query_new(e[0],s,n,L,L+W);if(!r){let y=x.getValue(L+W,"i32"),S=x.getValue(L,"i32"),_=x.UTF8ToString(s,S).length,k=t.slice(_,_+100).split(` +`)[0],b=k.match(Km)?.[0]??"";switch(x._free(s),y){case Ye.Syntax:throw new Jn(Ye.Syntax,{suffix:`${_}: '${k}'...`},_,0);case Ye.NodeName:throw new Jn(y,{word:b},_,b.length);case Ye.FieldName:throw new Jn(y,{word:b},_,b.length);case Ye.CaptureName:throw new Jn(y,{word:b},_,b.length);case Ye.PatternStructure:throw new Jn(y,{suffix:`${_}: '${k}'...`},_,0)}}let o=x._ts_query_string_count(r),a=x._ts_query_capture_count(r),l=x._ts_query_pattern_count(r),c=new Array(a),d=new Array(l),m=new Array(o);for(let y=0;yo)throw new Error("`startIndex` cannot be greater than `endIndex`");if(s!==$e&&(n.row>s.row||n.row===s.row&&n.column>s.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(d!==0&&c>d)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==$e&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");f&&(x.currentQueryProgressCallback=f),q(e),x._ts_query_matches_wasm(this[0],e.tree[0],n.row,n.column,s.row,s.column,r,o,a.row,a.column,l.row,l.column,c,d,m,u);let p=x.getValue(L,"i32"),g=x.getValue(L+W,"i32"),h=x.getValue(L+2*W,"i32"),y=new Array(p);this.exceededMatchLimit=!!h;let S=0,_=g;for(let k=0;kA(v))){y[S]={patternIndex:b,captures:v};let A=this.setProperties[b];y[S].setProperties=A;let N=this.assertedProperties[b];y[S].assertedProperties=N;let T=this.refutedProperties[b];y[S].refutedProperties=T,S++}}return y.length=S,x._free(g),x.currentQueryProgressCallback=null,y}captures(e,t={}){let n=t.startPosition??$e,s=t.endPosition??$e,r=t.startIndex??0,o=t.endIndex??0,a=t.startContainingPosition??$e,l=t.endContainingPosition??$e,c=t.startContainingIndex??0,d=t.endContainingIndex??0,m=t.matchLimit??4294967295,u=t.maxStartDepth??4294967295,f=t.progressCallback;if(typeof m!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=m,o!==0&&r>o)throw new Error("`startIndex` cannot be greater than `endIndex`");if(s!==$e&&(n.row>s.row||n.row===s.row&&n.column>s.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(d!==0&&c>d)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==$e&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");f&&(x.currentQueryProgressCallback=f),q(e),x._ts_query_captures_wasm(this[0],e.tree[0],n.row,n.column,s.row,s.column,r,o,a.row,a.column,l.row,l.column,c,d,m,u);let p=x.getValue(L,"i32"),g=x.getValue(L+W,"i32"),h=x.getValue(L+2*W,"i32"),y=new Array;this.exceededMatchLimit=!!h;let S=new Array,_=g;for(let k=0;kA(S))){let A=S[v],N=this.setProperties[b];A.setProperties=N;let T=this.assertedProperties[b];A.assertedProperties=T;let U=this.refutedProperties[b];A.refutedProperties=U,y.push(A)}}return x._free(g),x.currentQueryProgressCallback=null,y}predicatesForPattern(e){return this.predicates[e]}disableCapture(e){let t=x.lengthBytesUTF8(e),n=x._malloc(t+1);x.stringToUTF8(e,n,t+1),x._ts_query_disable_capture(this[0],n,t),x._free(n)}disablePattern(e){if(e>=this.predicates.length)throw new Error(`Pattern index is ${e} but the pattern count is ${this.predicates.length}`);x._ts_query_disable_pattern(this[0],e)}didExceedMatchLimit(){return this.exceededMatchLimit}startIndexForPattern(e){if(e>=this.predicates.length)throw new Error(`Pattern index is ${e} but the pattern count is ${this.predicates.length}`);return x._ts_query_start_byte_for_pattern(this[0],e)}endIndexForPattern(e){if(e>=this.predicates.length)throw new Error(`Pattern index is ${e} but the pattern count is ${this.predicates.length}`);return x._ts_query_end_byte_for_pattern(this[0],e)}patternCount(){return x._ts_query_pattern_count(this[0])}captureIndexForName(e){return this.captureNames.indexOf(e)}isPatternRooted(e){return x._ts_query_is_pattern_rooted(this[0],e)===1}isPatternNonLocal(e){return x._ts_query_is_pattern_non_local(this[0],e)===1}isPatternGuaranteedAtStep(e){return x._ts_query_is_pattern_guaranteed_at_step(this[0],e)===1}}});function er(e){return As[e]}function Sn(){let e=R.env.XDG_CACHE_HOME,t=e&&e.trim()?e.trim():I(mc(),".cache");return I(t,"codeindex","grammars",fe)}function Qe(e={}){let t=Sn(),n=(l,c)=>({tier:l,dir:c,cacheDir:t,dirs:[c,...H(I(c,"..",jc))?[I(c,"..",jc)]:[]]}),s=R.env.CODEINDEX_GRAMMAR_DIR??R.env.ULTRAINDEX_GRAMMAR_DIR;if(s&&s.trim()&&H(s))return n("env",s);let r=e.moduleDir??_e(ks(import.meta.url)),o=[I(r,"grammars"),I(r,"..","..","scripts","grammars"),I(r,"..","scripts","grammars")];for(let l of o)if(H(l))return n("adjacent",l);let a=R.env.CODEINDEX_GRAMMARS_DIR;return a&&a.trim()&&H(a)?n("env",a):H(t)?n("cache",t):{tier:"none",cacheDir:t,dirs:[]}}function Xm(e){return Qe(e).dir}async function et(e){let{dirs:t}=Qe();if(!t.length)return;let n=s=>{for(let r of t){let o=I(r,s);if(H(o))return o}};if(!Wc){let s=n("web-tree-sitter.wasm");if(!s)return;await yo.init({wasmBinary:Q(s)}),Wc=!0,Cs=new yo}for(let s of new Set(e)){if(Zn.has(s))continue;let r=n(`${s}.wasm`),o=r?(()=>{try{let a=xe(r);return`${r}:${a.size}:${a.mtimeMs}`}catch{return`${r}:unreadable`}})():`missing:${t.join("|")}`;if(Ms.get(s)!==o){if(!r){Ms.set(s,o);continue}try{Zn.set(s,await ho.load(new Uint8Array(Q(r)))),Ms.delete(s)}catch{Ms.set(s,o)}}}}function xo(){return[...new Set(Object.values(As))]}function wt(e){let t=new Set;for(let n of e){let s=As[n];s!==void 0&&t.add(s)}return[...t].sort()}function tt(e){return Zn.has(e)}function So(e){return Zn.get(e)}function Ts(e){let t=Zn.get(e);return!Cs||!t?null:(Cs.setLanguage(t),Cs)}var Yn,Qn,As,jc,Wc,Cs,Zn,Ms,nt=O(()=>{"use strict";E();Se();ao();ae();Es();wo();Xe();Yn=new Set(["typescript","tsx","javascript","python","go","rust","java","ruby","c","cpp","c_sharp","php","scala","bash","lua"]),Qn=new Set(["kotlin","elixir","zig","hcl","terraform","solidity"]),As={".ts":"typescript",".mts":"typescript",".cts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".pyi":"python",".go":"go",".rs":"rust",".java":"java",".rb":"ruby",".rake":"ruby",".c":"c",".h":"c",".cc":"cpp",".cpp":"cpp",".cxx":"cpp",".hpp":"cpp",".hh":"cpp",".cs":"c_sharp",".php":"php",".scala":"scala",".sc":"scala",".sh":"bash",".bash":"bash",".lua":"lua",".kt":"kotlin",".kts":"kotlin",".ex":"elixir",".exs":"elixir",".zig":"zig",".hcl":"hcl",".tf":"terraform",".tfvars":"terraform",".sol":"solidity"};jc="grammars-extended";Wc=!1,Cs=null,Zn=new Map,Ms=new Map});function Te(e,t){for(let n of e.namedChildren){if(t(n))return n;let s=Te(n,t);if(s)return s}}function tr(e){let t=e.childForFieldName("name");if(t?.text)return t.text;let n=e.childForFieldName("declarator");for(;n;){let o=n.childForFieldName("name");if(o?.text)return o.text;if(n.namedChildren.length===0&&/(^|_)identifier$/.test(n.type))return n.text;let a=n.childForFieldName("declarator");if(!a||a===n)break;n=a}let r=Te(e,o=>o.type==="variable_declarator")?.childForFieldName("name");if(r?.text)return r.text;for(let o of e.namedChildren)if(/(^|_)(identifier|name|constant)$/.test(o.type))return o.text}function Kt(e){if(!e)return;let t=e.namedChildren;if(t.length===0)return Is.test(e.type)?e.text:void 0;let n=e.childForFieldName("name")??e.childForFieldName("property")??e.childForFieldName("attribute")??e.childForFieldName("field")??e.childForFieldName("function");if(n)return Kt(n);let s=t[t.length-1];return s&&s!==e?Kt(s):void 0}function nr(e){if(!e||e.namedChildren.length===0)return;let t=e.childForFieldName("object")??e.childForFieldName("operand")??e.childForFieldName("value")??e.childForFieldName("path")??e.childForFieldName("expression")??e.childForFieldName("argument")??e.childForFieldName("receiver")??e.childForFieldName("table"),n=t?Kt(t):void 0;return n&&/^[A-Za-z_]\w*$/.test(n)?n:void 0}function ze(e){if(!e)return;let t=e.childForFieldName("type")??e.childForFieldName("name");if(t&&/generic|qualified|scoped|nested/.test(e.type))return ze(t);if(e.namedChildren.length===0)return Uc.test(e.type)?e.text:void 0;let n,s=r=>{if(r.namedChildren.length===0){Uc.test(r.type)&&(n=r.text);return}if(!/arguments|parameters/.test(r.type))for(let o of r.namedChildren)s(o)};return s(e),n}var Is,Uc,ko=O(()=>{"use strict";E();Is=/(^|_)(identifier|name|constant|word)$/;Uc=/identifier|constant|(^|_)name$/});function Ne(e){if(!e)return[];let t=[];for(let n of e.namedChildren){if(/arguments|parameters/.test(n.type))continue;let s=ze(n);s&&t.push(s)}return t}function Bc(e,t){if(!t.self)return[];let n=he(e,"class_heritage");if(!n)return[];let s=[];for(let r of Ne(he(n,"extends_clause")))s.push(ge("extends",t.self,r,e));for(let r of Ne(he(n,"implements_clause")))s.push(ge("implements",t.self,r,e));return s}function rr(e,t,n){return Ne(e).map((r,o)=>ge(o===0?"extends":"implements",t,r,n))}var he,ge,Jc,Ro,Ns,zc,Eo,Zm,Hc,qc,Ym,sr,Qm,Fs,Gc,ep,Vc,vo,Kc,Xc=O(()=>{"use strict";E();ko();he=(e,t)=>e.namedChildren.find(n=>n.type===t),ge=(e,t,n,s)=>({kind:e,from:t,to:n,line:s.startPosition.row+1});Jc=new Set(["interface","trait","enum","protocol","annotation"]),Ro=new Set(["function","method","def","constructor","operator"]),Ns=new Set(["function","function_expression","arrow_function","generator_function","class","function_definition","lambda"]),zc=e=>/\b(public|internal)\b/.test(e),Eo=e=>!/\b(private|protected)\b/.test(e),Zm=e=>!/^local\b/.test(e),Hc=e=>/\bpub\b/.test(e),qc=(e,t)=>/^[A-Z]/.test(t),Ym=(e,t)=>!t.startsWith("_")||/^__\w+__$/.test(t),sr=()=>!0,Qm=()=>!1,Fs=e=>Te(e,t=>t.type==="function_declarator")!==void 0,Gc={defmodule:"module",defprotocol:"protocol",defimpl:"impl",defstruct:"struct",defexception:"exception",def:"function",defp:"function",defmacro:"macro",defmacrop:"macro",defguard:"guard",defguardp:"guard",defdelegate:"function"},ep=new Set(["resource","data","variable","output","module","provider","locals","terraform"]),Vc={lang:"terraform",defs:{block:"block"},containers:new Set(["config_file","body"]),exported:sr,kindFrom:{block:e=>{let t=e.namedChildren.find(n=>n.type==="identifier")?.text;return t&&ep.has(t)?t:void 0}},nameFrom:{block:e=>{let t=e.namedChildren.filter(n=>n.type==="string_lit").map(n=>n.text.replace(/^"|"$/g,""));return t.length?t.join("."):e.namedChildren.find(n=>n.type==="identifier")?.text}}},vo={lang:"typescript",defs:{function_declaration:"function",generator_function_declaration:"function",function_signature:"function",class_declaration:"class",abstract_class_declaration:"class",interface_declaration:"interface",type_alias_declaration:"type",enum_declaration:"enum",enum_assignment:"enum-member",method_definition:"method",method_signature:"method",abstract_method_signature:"method",property_signature:"property",public_field_definition:"property",call_signature:"call-signature",construct_signature:"construct-signature",index_signature:"index-signature",internal_module:"namespace",module:"namespace",variable_declarator:"const"},containers:new Set(["class_body","export_statement","ambient_declaration","program","lexical_declaration","variable_declaration","interface_body","object_type","enum_body","statement_block","try_statement","catch_clause","finally_clause","if_statement","else_clause","for_statement","for_in_statement","while_statement","do_statement","switch_statement","switch_body","switch_case","switch_default","labeled_statement","return_statement","expression_statement","call_expression","arguments","arrow_function","function_expression","function","parenthesized_expression"]),exported:Qm,exportMarkers:new Set(["export_statement","ambient_declaration"]),bareMembers:{enum_body:"enum-member"},nameFrom:{call_signature:()=>"(call)",construct_signature:()=>"(construct)",index_signature:e=>`[${e.namedChildren.find(t=>t.type==="identifier")?.text??"key"}]`},privateMember:e=>{for(let t of e.namedChildren)if(t.type==="accessibility_modifier"&&/^(private|protected)/.test(t.text)||t.type==="private_property_identifier")return!0;return!1},imports:{import_statement:"string"},calls:{call_expression:"function",new_expression:"constructor"},assignments:!0,relationsFrom:{class_declaration:Bc,abstract_class_declaration:Bc,interface_declaration:(e,t)=>t.self?Ne(he(e,"extends_type_clause")).map(n=>ge("extends",t.self,n,e)):[]}},Kc={typescript:vo,tsx:{...vo,lang:"typescript"},javascript:{...vo,lang:"javascript",defs:{function_declaration:"function",generator_function_declaration:"function",class_declaration:"class",method_definition:"method",field_definition:"property",variable_declarator:"const"}},python:{lang:"python",defs:{function_definition:"function",class_definition:"class"},containers:new Set(["block","decorated_definition","module"]),exported:Ym,imports:{import_statement:"path",import_from_statement:"path"},calls:{call:"function"},docstring:!0,relationsFrom:{class_definition:(e,t)=>t.self?Ne(e.childForFieldName("superclasses")).map(n=>ge("extends",t.self,n,e)):[]},extraMembers:(e,t)=>{if(t.inFunctionBody)return[];if(e.type==="import_from_statement"){let r=[];for(let o of e.namedChildren){if(o.type!=="aliased_import")continue;let a=o.namedChildren[0]?.text,l=o.childForFieldName("alias")?.text;a&&l&&a===l&&r.push({name:l,kind:"reexport"})}return r}if(e.type!=="expression_statement")return[];let n=e.namedChildren[0];if(!n||n.type!=="assignment")return[];let s=n.childForFieldName("left");return!s||s.type!=="identifier"?[]:[{name:s.text,kind:t.ownerKind==="class"?"field":"const"}]}},go:{lang:"go",defs:{function_declaration:"function",method_declaration:"method",type_spec:"type",const_spec:"const",var_spec:"var",field_declaration:"field",method_spec:"method",method_elem:"method",package_clause:"package"},containers:new Set(["type_declaration","const_declaration","var_declaration","var_spec_list","source_file","struct_type","interface_type","field_declaration_list"]),exported:qc,imports:{import_declaration:"string"},calls:{call_expression:"function"},parentFrom:{method_declaration:e=>ze(e.childForFieldName("receiver"))},nameFrom:{field_declaration:e=>e.childForFieldName("name")?.text},relationsFrom:{field_declaration:(e,t)=>{if(!t.self||e.childForFieldName("name"))return[];let n=ze(e.childForFieldName("type"));return n?[ge("extends",t.self,n,e)]:[]}}},ruby:{lang:"ruby",defs:{method:"def",singleton_method:"def",class:"class",module:"module"},containers:new Set(["class","module","body_statement","program"]),exported:sr,calls:{call:"function"},sectionVisibility:e=>(e.type==="identifier"||e.type==="call")&&/^(private|protected)$/.test(e.text)?!1:e.type==="identifier"&&e.text==="public"?!0:void 0,relationsFrom:{class:(e,t)=>{if(!t.self)return[];let n=ze(e.childForFieldName("superclass"));return n?[ge("extends",t.self,n,e)]:[]},call:(e,t)=>{let n=e.childForFieldName("method");if(!t.self||!n||!/^(include|prepend|extend)$/.test(n.text))return[];let s=[];for(let r of e.childForFieldName("arguments")?.namedChildren??[]){let o=ze(r);o&&s.push(ge("implements",t.self,o,e))}return s}},extraMembers:(e,t)=>{if(t.inFunctionBody)return[];if(e.type==="assignment"){let n=e.childForFieldName("left");return n?.type==="constant"?[{name:n.text,kind:"const"}]:[]}if(e.type==="call"){let n=e.childForFieldName("method");if(!n||!/^attr_(reader|writer|accessor)$/.test(n.text))return[];let s=e.childForFieldName("arguments"),r=[];for(let o of s?.namedChildren??[])o.type==="simple_symbol"&&r.push({name:o.text.replace(/^:/,""),kind:"attr"});return r}return[]}},java:{lang:"java",defs:{class_declaration:"class",interface_declaration:"interface",annotation_type_declaration:"annotation",enum_declaration:"enum",enum_constant:"enum-member",record_declaration:"record",method_declaration:"method",constructor_declaration:"constructor",compact_constructor_declaration:"constructor",field_declaration:"field",constant_declaration:"field",annotation_type_element_declaration:"method"},containers:new Set(["class_body","interface_body","enum_body","enum_body_declarations","annotation_type_body","program","formal_parameters"]),exported:zc,imports:{import_declaration:"path"},calls:{method_invocation:"function",object_creation_expression:"constructor"},kindFrom:{formal_parameter:e=>e.parent?.parent?.type==="record_declaration"?"field":void 0},publicMember:e=>e.parent?.parent?.type==="record_declaration",nameFrom:{field_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text,constant_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text},relationsFrom:{class_declaration:(e,t)=>{if(!t.self)return[];let n=[];for(let r of Ne(e.childForFieldName("superclass")))n.push(ge("extends",t.self,r,e));let s=e.childForFieldName("interfaces");for(let r of Ne(he(s??e,"type_list")??s))n.push(ge("implements",t.self,r,e));return n},interface_declaration:(e,t)=>{let n=e.childForFieldName("interfaces")??he(e,"extends_interfaces");return t.self?Ne(he(n??e,"type_list")??n).map(s=>ge("extends",t.self,s,e)):[]},record_declaration:(e,t)=>{let n=e.childForFieldName("interfaces");return t.self?Ne(he(n??e,"type_list")??n).map(s=>ge("implements",t.self,s,e)):[]}}},rust:{lang:"rust",defs:{function_item:"function",function_signature_item:"function",struct_item:"struct",enum_item:"enum",enum_variant:"enum-member",field_declaration:"field",trait_item:"trait",type_item:"type",associated_type:"type",mod_item:"mod",const_item:"const",static_item:"static",union_item:"union",macro_definition:"macro"},containers:new Set(["impl_item","declaration_list","source_file","field_declaration_list","enum_variant_list","foreign_mod_item","block"]),exported:Hc,calls:{call_expression:"function"},parentFrom:{impl_item:e=>ze(e.childForFieldName("type"))},nestedDefs:new Set(["const_item","static_item"]),publicMembersIn:{impl_item:e=>e.childForFieldName("trait")!==null},relationsFrom:{impl_item:(e,t)=>{let n=ze(e.childForFieldName("trait"));return t.self&&n?[ge("implements",t.self,n,e)]:[]}}},c_sharp:{lang:"csharp",defs:{class_declaration:"class",interface_declaration:"interface",struct_declaration:"struct",enum_declaration:"enum",enum_member_declaration:"enum-member",record_declaration:"record",delegate_declaration:"delegate",method_declaration:"method",constructor_declaration:"constructor",property_declaration:"property",indexer_declaration:"indexer",operator_declaration:"operator",field_declaration:"field",event_declaration:"event",event_field_declaration:"event",conversion_operator_declaration:"operator",destructor_declaration:"destructor"},containers:new Set(["namespace_declaration","declaration_list","compilation_unit","file_scoped_namespace_declaration","enum_member_declaration_list","parameter_list"]),exported:zc,calls:{invocation_expression:"function",object_creation_expression:"constructor"},kindFrom:{parameter:e=>e.parent?.parent?.type==="record_declaration"?"field":void 0},publicMember:e=>e.parent?.parent?.type==="record_declaration",nameFrom:{field_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text,event_field_declaration:e=>Te(e,t=>t.type==="variable_declarator")?.childForFieldName("name")?.text,conversion_operator_declaration:e=>e.childForFieldName("type")?.text},relationsFrom:{class_declaration:(e,t)=>t.self?rr(he(e,"base_list"),t.self,e):[],struct_declaration:(e,t)=>t.self?rr(he(e,"base_list"),t.self,e):[],record_declaration:(e,t)=>t.self?rr(he(e,"base_list"),t.self,e):[],interface_declaration:(e,t)=>t.self?Ne(he(e,"base_list")).map(n=>ge("extends",t.self,n,e)):[]}},php:{lang:"php",defs:{function_definition:"function",class_declaration:"class",interface_declaration:"interface",trait_declaration:"trait",enum_declaration:"enum",enum_case:"enum-member",method_declaration:"method",property_declaration:"property",const_declaration:"const",namespace_definition:"namespace"},containers:new Set(["declaration_list","enum_declaration_list","program"]),exported:Eo,calls:{function_call_expression:"function",member_call_expression:"member",object_creation_expression:"constructor"},nameFrom:{property_declaration:e=>Te(e,t=>t.type==="variable_name")?.text.replace(/^\$/,""),const_declaration:e=>Te(e,t=>t.type==="const_element")?.namedChildren[0]?.text},relationsFrom:{class_declaration:(e,t)=>{if(!t.self)return[];let n=[];for(let s of Ne(he(e,"base_clause")))n.push(ge("extends",t.self,s,e));for(let s of Ne(he(e,"class_interface_clause")))n.push(ge("implements",t.self,s,e));return n},interface_declaration:(e,t)=>t.self?Ne(he(e,"base_clause")).map(n=>ge("extends",t.self,n,e)):[]}},c:{lang:"c",defs:{function_definition:"function",struct_specifier:"struct",enum_specifier:"enum",enumerator:"enum-member",union_specifier:"union",type_definition:"type",field_declaration:"field",declaration:"const"},containers:new Set(["translation_unit","declaration_list","field_declaration_list","enumerator_list","linkage_specification","preproc_ifdef","preproc_if"]),exported:sr,calls:{call_expression:"function"},kindFrom:{field_declaration:e=>Fs(e)?"method":"field",declaration:e=>Fs(e)?"function":"const"}},cpp:{lang:"cpp",defs:{function_definition:"function",class_specifier:"class",struct_specifier:"struct",enum_specifier:"enum",enumerator:"enum-member",union_specifier:"union",type_definition:"type",alias_declaration:"type",concept_definition:"concept",namespace_definition:"namespace",namespace_alias_definition:"namespace",field_declaration:"field",declaration:"const",using_declaration:"using",friend_declaration:"friend"},containers:new Set(["translation_unit","declaration_list","field_declaration_list","enumerator_list","template_declaration","linkage_specification","preproc_ifdef","preproc_if"]),exported:sr,calls:{call_expression:"function",new_expression:"constructor"},kindFrom:{field_declaration:e=>Fs(e)?"method":"field",declaration:e=>Fs(e)?"function":"const"},sectionVisibility:e=>e.type==="access_specifier"?!/^(private|protected)/.test(e.text):void 0,nameFrom:{friend_declaration:e=>tr(e)??(e.namedChildren[0]?tr(e.namedChildren[0]):void 0)},relationsFrom:{class_specifier:(e,t)=>t.self?Ne(he(e,"base_class_clause")).map(n=>ge("extends",t.self,n,e)):[],struct_specifier:(e,t)=>t.self?Ne(he(e,"base_class_clause")).map(n=>ge("extends",t.self,n,e)):[]}},scala:{lang:"scala",defs:{class_definition:"class",object_definition:"object",trait_definition:"trait",enum_definition:"enum",function_definition:"def",function_declaration:"def",val_definition:"val",val_declaration:"val",var_definition:"var",type_definition:"type",given_definition:"given",package_clause:"package"},containers:new Set(["compilation_unit","package_clause","template_body","class_parameters","parameters","extension_definition"]),parentFrom:{extension_definition:e=>ze(he(e,"parameters")?.namedChildren[0]?.childForFieldName("type")??null)},exported:Eo,kindFrom:{class_parameter:e=>/^\s*(?:val|var)\b/.test(e.text)?/^\s*var\b/.test(e.text)?"var":"val":e.parent?.parent?.type==="class_definition"&&/\bcase\s+class\b/.test(e.parent.parent.text.slice(0,80))?"val":void 0},calls:{call_expression:"function",instance_expression:"constructor"},relationsFrom:{class_definition:(e,t)=>t.self?rr(he(e,"extends_clause"),t.self,e):[],object_definition:(e,t)=>t.self?rr(he(e,"extends_clause"),t.self,e):[],trait_definition:(e,t)=>t.self?Ne(he(e,"extends_clause")).map(n=>ge("extends",t.self,n,e)):[]}},bash:{lang:"shell",defs:{function_definition:"function",declaration_command:"const"},containers:new Set(["program","if_statement","compound_statement"]),exported:sr,calls:{command:"function"},nameFrom:{declaration_command:e=>/^\s*local\b/.test(e.text)?void 0:Te(e,t=>t.type==="variable_name")?.text}},kotlin:{lang:"kotlin",defs:{class_declaration:"class",object_declaration:"object",function_declaration:"function",property_declaration:"property",enum_entry:"enum-member",type_alias:"type",class_parameter:"property"},containers:new Set(["source_file","class_body","enum_class_body","companion_object","object_declaration","primary_constructor","class_parameters"]),exported:Eo,calls:{call_expression:"function"},kindFrom:{class_parameter:e=>/^\s*(?:val|var)\b/.test(e.text)||/\bdata\s+class\b/.test(e.parent?.parent?.parent?.text.slice(0,80)??"")?"property":void 0,class_declaration:e=>{let t=e.text.slice(0,80);return/\binterface\b/.test(t)?"interface":/\benum\s+class\b/.test(t)?"enum":/\bannotation\s+class\b/.test(t)?"annotation":"class"}},nameFrom:{property_declaration:e=>Te(e,t=>t.type==="variable_declaration")?.namedChildren[0]?.text??e.namedChildren.find(t=>t.type==="identifier")?.text},relationsFrom:{class_declaration:(e,t)=>{if(!t.self)return[];let n=[];for(let s of he(e,"delegation_specifiers")?.namedChildren??[]){let r=ze(s);r&&n.push(ge(Te(s,o=>o.type==="constructor_invocation")?"extends":"implements",t.self,r,e))}return n}}},elixir:{lang:"elixir",defs:{},containers:new Set(["source","do_block","call","stab_clause"]),exported:e=>!/^\s*defp?macrop\b|^\s*defp\b/.test(e),calls:{call:"function"},kindFrom:{call:e=>Gc[e.childForFieldName("target")?.text??e.namedChildren[0]?.text??""]},skipCall:e=>{if(e.parent?.type==="unary_operator")return!0;if(e.parent?.type!=="arguments")return!1;let t=e.parent.parent,n=t?.childForFieldName("target")??t?.namedChildren[0];return n!==void 0&&Gc[n.text]!==void 0},docFrom:e=>{let t=e.previousNamedSibling;for(;t&&t.type==="unary_operator";){let n=t.namedChildren[0],s=n?.childForFieldName("target")??n?.namedChildren[0];if(s&&/^(doc|moduledoc)$/.test(s.text)){let r=Te(t,o=>o.type==="string");if(r)return r.text.replace(/^"""|"""$/g,"").replace(/^"|"$/g,"").trim()||void 0}t=t.previousNamedSibling}},nameFrom:{call:e=>{let n=(e.childForFieldName("arguments")??e.namedChildren.find(r=>r.type==="arguments"))?.namedChildren[0];if(!n)return;if(n.type==="alias"||n.type==="identifier")return n.text;let s=n.childForFieldName("target")??n.namedChildren[0];return s&&/identifier|alias/.test(s.type)?s.text:void 0}}},zig:{lang:"zig",defs:{function_declaration:"function",variable_declaration:"const",container_field:"field",test_declaration:"test"},containers:new Set(["source_file","variable_declaration","struct_declaration","enum_declaration","union_declaration","error_set_declaration","opaque_declaration","block"]),exported:Hc,calls:{call_expression:"function"},kindFrom:{variable_declaration:e=>{let t=e.namedChildren.find(n=>n.type==="builtin_function");if(!(t&&/^@(import|cImport)\b/.test(t.text))){for(let n of e.namedChildren){if(n.type==="struct_declaration")return"struct";if(n.type==="enum_declaration")return"enum";if(n.type==="union_declaration")return"union";if(n.type==="error_set_declaration")return"error";if(n.type==="opaque_declaration")return"opaque"}return/^\s*(?:pub\s+)?var\b/.test(e.text.slice(0,24))?"var":"const"}},container_field:e=>e.parent?.type==="enum_declaration"?"enum-member":"field"}},solidity:{lang:"solidity",defs:{contract_declaration:"contract",interface_declaration:"interface",library_declaration:"library",function_definition:"function",constructor_definition:"constructor",modifier_definition:"modifier",event_definition:"event",error_declaration:"error",struct_declaration:"struct",struct_member:"field",enum_declaration:"enum",enum_value:"enum-member",state_variable_declaration:"field",constant_variable_declaration:"const",user_defined_type_definition:"type",fallback_receive_definition:"function"},containers:new Set(["source_file","contract_body","struct_declaration","enum_declaration","enum_body"]),exported:(e,t)=>/\b(public|external)\b/.test(e)?!0:/\b(internal|private)\b/.test(e)?!1:qc(e,t)||!0,calls:{call_expression:"function"},nameFrom:{state_variable_declaration:e=>e.namedChildren.find(t=>t.type==="identifier")?.text,fallback_receive_definition:e=>/^\s*receive\b/.test(e.text)?"receive":"fallback",enum_value:e=>e.text},relationsFrom:{contract_declaration:(e,t)=>t.self?e.namedChildren.filter(n=>n.type==="inheritance_specifier").map(n=>ze(n)).filter(n=>n!==void 0).map(n=>ge("extends",t.self,n,e)):[],interface_declaration:(e,t)=>t.self?e.namedChildren.filter(n=>n.type==="inheritance_specifier").map(n=>ze(n)).filter(n=>n!==void 0).map(n=>ge("extends",t.self,n,e)):[]}},terraform:Vc,hcl:{...Vc,lang:"hcl"},lua:{lang:"lua",defs:{function_declaration:"function"},containers:new Set(["chunk","variable_declaration"]),exported:Zm,calls:{function_call:"function"},assignments:!0}}});function rp(e){let t=e.childForFieldName("body"),n=t&&t.startIndex>e.startIndex?t.startIndex:void 0,s=r=>{tp.has(r.type)&&r.startIndex>e.startIndex&&(n===void 0||r.startIndex|=)$/,"").trim().slice(0,np)}var tp,np,Zc=O(()=>{"use strict";E();tp=new Set(["block","statement_block","class_body","declaration_list","field_declaration_list","template_body","compound_statement","body_statement","enum_body","enum_body_declarations","enum_variant_list","enum_member_declaration_list","enumerator_list","interface_body","object_type","do_block","struct_declaration","enum_declaration","union_declaration","error_set_declaration","opaque_declaration","contract_body","enum_class_body"]),np=400});function Mo(e){return sp.test(e.trim())}function Co(e){return ip.test(e.trim())}function xt(e){return e.replace(/\*+\/\s*$/,"").replace(/^\s*\/\*+!?/,"").replace(/^\s*\/\/[/!]?/,"").replace(/^\s*--+/,"").replace(/^\s*#+/,"").replace(/^\s*\*+/,"").replace(/^\s*(?:"""|''')/,"").replace(/(?:"""|''')\s*$/,"").replace(/[-=~_]{3,}/g," ").trim()}function op(e){return e.replace(/<\/?[A-Za-z][^>]*>/g," ").replace(/\s+/g," ").trim()}function Ao(e,t=ap){let n=[];for(let o of e){let a=o.trim();if(!(!a||Mo(a)||Co(a))){if(/^@[a-z]/i.test(a))break;n.push(a)}}let s=op(n.join(" "));if(s.length<3)return;let r=/^(.*?[.!?])(\s|$)/.exec(s);return(r?r[1]:s).slice(0,t)}var sp,ip,ap,Os=O(()=>{"use strict";E();sp=/^(eslint\b|eslint-|prettier\b|prettier-|tslint\b|jshint\b|jslint\b|globals?\b|istanbul\b|c8\s|v8\s|@ts-|ts-|@flow\b|@jsx\b|@jsxRuntime\b|@jest-environment\b|@vitest-environment\b|@license\b|@preserve\b|@copyright\b|copyright\b|spdx-|1);)t.push(n),s=n.startPosition.row,n=n.previousNamedSibling;if(!t.length)return[];t.reverse();let r=[];for(let o of t)for(let a of o.text.split(/\r?\n/))r.push(xt(a));return r}function kn(e){let t=e;for(;t;){let n=dp(t);if(n.length){let o=Ao(n);if(o)return o}let s=t.parent;if(!s||!cp.has(s.type))return;let r=t.previousNamedSibling;if(r&&!up.test(r.type))return;t=s}}function Yc(e){let n=e.childForFieldName("body")?.namedChildren[0];if(!n)return;let s=n.type==="string"?n:n.type==="expression_statement"?n.namedChildren[0]:void 0;if(!(!s||s.type!=="string"))return Ao(s.text.split(/\r?\n/).map(xt))}var lp,cp,up,Qc=O(()=>{"use strict";E();Os();lp=/(^|_)comment$/,cp=new Set(["export_statement","ambient_declaration","decorated_definition","template_declaration","labeled_statement","lexical_declaration","variable_declaration","type_declaration","const_declaration","var_declaration","body_statement","body"]);up=/decorator|annotation|modifiers/});function Ap(e){let t=td.get(e);return t===void 0&&(t=(Sp.test(e)?nd:0)|(Ep.test(e)?rd:0)|(vp.test(e)?To:0)|(Rp.test(e)?sd:0)|(Mp.test(e)?id:0),td.set(e,t)),t}function Tp(e){return e.namedChildren.every(t=>Cp.test(t.type))}function Ip(e,t,n,s,r){let o=new Set,a=t.calls!==void 0,l=[],c=new Set,d=(b,w,v)=>{if(!b||b.length<2||!/^[A-Za-z_]\w*$/.test(b))return;let A=w.startPosition.row+1,N=`${b} ${A}`;c.has(N)||(c.add(N),l.push(v?{name:b,line:A,receiver:v}:{name:b,line:A}))},m=new Set,u=b=>{if(!(m.size>=ed))for(let w of yt(b)){if(m.size>=ed)return;m.add(w)}},f=new Ft,p=t.imports?.import_statement!==void 0,g=new Set,h=r&&t.imports!==void 0,y=[],S=new Set,_=b=>{let w=b.trim();w&&!S.has(w)&&(S.add(w),y.push({kind:"import",spec:w}))},k=b=>{let w=b.type,v=b.namedChildren,A=Ap(w);if(v.length===0&&A&nd){let N=b.text;kp.test(N)&&!n.has(N)&&o.add(N)}if(A&rd)for(let N of b.text.split(/\r?\n/))u(xt(N));else v.length===0&&A&To&&b.endIndex-b.startIndex<=hp&&u(b.text.replace(/^['"`]+|['"`]+$/g,""));if(f.full||(A&To?Tp(b)&&f.addString(b.text,b.startPosition.row+1):v.length===0&&A&sd?f.add("number",b.text.trim(),b.startPosition.row+1):A&id&&f.add("regex",b.text,b.startPosition.row+1)),a&&!(t.kindFrom?.[w]&&t.kindFrom[w](b))&&!t.skipCall?.(b)){let N=t.calls[w];if(N==="function"){let T=b.childForFieldName("function")??b.childForFieldName("callee")??b.childForFieldName("method")??b.childForFieldName("name")??b.childForFieldName("target")??v[0]??null;d(Kt(T),b,nr(T)??nr(b))}else if(N==="member")d(Kt(b.childForFieldName("name")),b,nr(b));else if(N==="constructor"){let T=b.childForFieldName("constructor")??b.childForFieldName("type")??b.childForFieldName("name");for(let U=0;!T&&U/string/.test(U.type));T&&_(T.text.replace(/^['"]|['"]$/g,""))}else if(N==="path"){let T=b.childForFieldName("name")??b.childForFieldName("module_name");_((T??b).text.replace(/^(import|from)\s+/,"").split(/\s+/)[0])}}for(let N of v)k(N)};return k(e),l.sort((b,w)=>M(b.name,w.name)||b.line-w.line),{refs:y,idents:[...o].sort().slice(0,fp),calls:l.slice(0,s),importedNames:[...g].sort(M).slice(0,pp),terms:[...m].sort(M),literals:f.result()??[]}}function Fp(e){let t=[],n=s=>{if(/^(shorthand_property_identifier_pattern|identifier)$/.test(s.type)){t.includes(s.text)||t.push(s.text);return}if(s.type==="pair_pattern"){let r=s.childForFieldName("value");r&&n(r);return}for(let r of s.namedChildren)n(r)};for(let s of e.namedChildren)n(s);return t}function Io(e,t,n,s={}){let r=er(t);if(!r||!tt(r))return;let o=Kc[r];if(!o)return;let a=Ts(r);if(!a)return;let l=null;try{if(l=a.parse(n),!l)return;let c=s.maxSymbols??gp,d=[],m=l.rootNode,u=(e.split("/").pop()??"").replace(/\.[^.]+$/,""),f=new Set,p=P=>{d.length{let B=o.relationsFrom?.[P.type];if(B)for(let se of B(P,{self:j})){if(se.from===se.to)continue;let J=`${se.kind} ${se.from} ${se.to}`;h.has(J)||g.length>=_p||(h.add(J),g.push(se))}},S=(P,j,B,se)=>se.inFunctionBody||o.privateMember?.(P)===!0?!1:o.publicMember?.(P)===!0?!0:se.sectionPublic?se.forcePublic?!0:se.exported||o.exported(j,B):!1,_=P=>o.docFrom?.(P)??(o.docstring?Yc(P):void 0)??kn(P),k=(P,j)=>{let B=j.sectionPublic,se=o.bareMembers?.[P.type];for(let J of P.namedChildren){if(o.sectionVisibility){let be=o.sectionVisibility(J);if(be!==void 0){B=be;continue}}let ne=B===j.sectionPublic?j:{...j,sectionPublic:B};if(se&&J.namedChildren.length===0&&Is.test(J.type)){p({name:J.text,kind:se,file:e,line:J.startPosition.row+1,endLine:J.endPosition.row+1,...ne.parent?{parent:ne.parent}:{},exported:ne.forcePublic||ne.exported,lang:o.lang});continue}for(let be of o.extraMembers?.(J,{ownerKind:ne.ownerKind,inFunctionBody:ne.inFunctionBody})??[]){let Ie=Ot(J,n),X=kn(J);p({name:be.name,kind:be.kind,file:e,line:J.startPosition.row+1,endLine:J.endPosition.row+1,...ne.parent?{parent:ne.parent}:{},...ne.parentPath&&ne.parentPath!==ne.parent?{parentPath:ne.parentPath}:{},signature:Ie,...X?{doc:X}:{},exported:S(J,Ie,be.name,ne),lang:o.lang})}w(J,ne)}},b=(P,j)=>{let B=!1;for(let se of P.namedChildren)o.containers.has(se.type)&&(B=!0,k(se,j));!B&&o.containers.has(P.type)&&k(P,j)},w=(P,j)=>{if(j.funcDepth>yp)return;let B=P.type,se=o.exportMarkers?.has(B)===!0,J=j.exported||se;if(B==="export_statement"){for(let X of P.namedChildren)if(X.type==="identifier")f.add(X.text);else if(X.type==="export_clause")for(let Z of X.namedChildren){let D=Z.childForFieldName("name")??Z.namedChildren[0];D?.text&&f.add(D.text)}if(u&&P.children.some(X=>X.type==="default"))for(let X of P.namedChildren){let Z=wp.has(X.type),D=xp.has(X.type);if((Z||D)&&!X.childForFieldName("name")){let de=kn(P);p({name:u,kind:D?"class":"function",file:e,line:P.startPosition.row+1,endLine:P.endPosition.row+1,signature:Ot(P,n),...de?{doc:de}:{},exported:!0,lang:o.lang});break}}}if(o.assignments&&B==="expression_statement"){let X=P.namedChildren[0];if(X?.type==="assignment_expression"){let Z=X.childForFieldName("left"),D=X.childForFieldName("right");if(Z?.type==="member_expression"&&Z.text==="module.exports"&&D){if(D.type==="object"){for(let K of D.namedChildren)if(K.type==="shorthand_property_identifier")f.add(K.text);else if(K.type==="pair"){let ce=K.childForFieldName("key"),we=K.childForFieldName("value");ce?.type==="property_identifier"&&f.add(ce.text),we?.type==="identifier"&&f.add(we.text)}return}if(D.type==="identifier"){f.add(D.text);return}}let de=D&&Ns.has(D.type);if(Z&&D&&de){let K,ce=!1;if(Z.type==="member_expression"){let we=Z.childForFieldName("property");if(we?.type==="property_identifier"){K=we.text;let gt=Z.text.slice(0,Z.text.length-we.text.length-1);ce=gt==="exports"||gt==="module.exports"}}else Z.type==="identifier"&&(K=Z.text);if(K){let we=kn(P);p({name:K,kind:D.type==="class"?"class":"function",file:e,line:X.startPosition.row+1,endLine:X.endPosition.row+1,...j.parent?{parent:j.parent}:{},signature:Ot(X,n),...we?{doc:we}:{},exported:!j.inFunctionBody&&(J||ce),lang:o.lang});return}}else if(Z?.type==="member_expression"&&D){let K=Z.childForFieldName("property");if(K?.type==="property_identifier"){let ce=Z.text.slice(0,Z.text.length-K.text.length-1);if(ce==="exports"||ce==="module.exports"){D.type==="identifier"&&f.add(D.text),(D.type!=="identifier"||D.text!==K.text)&&p({name:K.text,kind:"const",file:e,line:X.startPosition.row+1,endLine:X.endPosition.row+1,...j.parent?{parent:j.parent}:{},signature:Ot(X,n),exported:!0,lang:o.lang});return}}}}}if(o.assignments&&B==="assignment_statement"){let X=P.children.find(ce=>ce.type==="variable_list"),Z=P.children.find(ce=>ce.type==="expression_list"),D=X?.namedChildren??[],de=Z?.namedChildren??[],K=Math.min(D.length,de.length);for(let ce=0;ceK.type==="object_pattern"||K.type==="array_pattern");if(D&&!j.inFunctionBody){let K=Ot(P,n),ce=_(P);for(let we of Fp(D))p({name:we,kind:Ie,file:e,line:P.startPosition.row+1,endLine:P.endPosition.row+1,...j.parent?{parent:j.parent}:{},signature:K,...ce?{doc:ce}:{},exported:S(P,K,we,{...j,exported:J}),lang:o.lang});return}let de=Ro.has(Ie)||bp.has(Ie)||o.nestedDefs?.has(B)===!0||Ns.has(P.childForFieldName("value")?.type??"");if(Z&&(!j.inFunctionBody||de)){let K=Ot(P,n),ce=_(P),we=ne??j.parent,gt=ne??j.parentPath;p({name:Z,kind:Ie,file:e,line:P.startPosition.row+1,endLine:P.endPosition.row+1,...we?{parent:we}:{},...gt&>!==we?{parentPath:gt}:{},signature:K,...ce?{doc:ce}:{},exported:S(P,K,Z,{...j,exported:J}),lang:o.lang}),y(P,Z);let Dn=Ro.has(Ie);b(P,{parent:Z,parentPath:gt?`${gt}/${Z}`:Z,ownerKind:Ie,exported:J,forcePublic:Jc.has(Ie),inFunctionBody:j.inFunctionBody||Dn,funcDepth:j.funcDepth+(Dn?1:0),sectionPublic:!0});return}}if(y(P,ne??j.parent),o.containers.has(B)){let X=j.forcePublic||o.publicMembersIn?.[B]?.(P)===!0,Z=Ns.has(B);k(P,{...j,exported:J,forcePublic:X,inFunctionBody:j.inFunctionBody||Z,funcDepth:j.funcDepth+(Z?1:0),...ne?{parent:ne,parentPath:ne,ownerKind:"type"}:{}})}};if(k(m,{exported:!1,forcePublic:!1,inFunctionBody:!1,funcDepth:0,sectionPublic:!0}),f.size)for(let P of d)!P.exported&&f.has(P.name)&&(P.exported=!0);let v=s.imports!==!1,{refs:A,idents:N,calls:T,importedNames:U,terms:te,literals:V}=Ip(m,o,new Set(d.map(P=>P.name)),s.maxCalls??mp,v),z;if(v&&o.lang==="java"){let P=Te(m,j=>j.type==="package_declaration");P&&(z=P.text.replace(/^package\s+/,"").replace(/;.*$/,"").trim())}return g.sort((P,j)=>M(P.from,j.from)||M(P.kind,j.kind)||M(P.to,j.to)),{symbols:d,refs:A,pkg:z,idents:N,calls:T,importedNames:U,relations:g,terms:te,literals:V,...d.length>=c?{truncated:!0}:{}}}catch{return}finally{l?.delete()}}var fp,mp,pp,gp,_p,ed,hp,yp,bp,wp,xp,Sp,kp,Ep,vp,Rp,Mp,Cp,nd,rd,To,sd,id,td,Fo=O(()=>{"use strict";E();xs();Y();nt();ko();Xc();Zc();Qc();Os();Ae();fp=512,mp=512,pp=256,gp=2e3,_p=256,ed=512,hp=80,yp=2,bp=new Set(["class","struct","enum","interface","trait","type","record","union"]),wp=new Set(["function","function_expression","function_declaration","generator_function","generator_function_declaration","arrow_function"]),xp=new Set(["class","class_declaration","abstract_class_declaration"]),Sp=/identifier|constant|(^|_)name$/,kp=/^[A-Za-z_]\w{4,}$/,Ep=/(^|_)comment$/,vp=/(^|_)string(_literal)?$/,Rp=/(^|_)(integer|float|number|decimal|numeric)(_literal)?$/,Mp=/(^|_)(regex|regular_expression)(_pattern|_literal)?$/,Cp=/(^|_)(fragment|content|escape_sequence|character)$/,nd=1,rd=2,To=4,sd=8,id=16,td=new Map});function Dp(e){let t=e.split(/\r?\n/),n=[],s=null;for(let a=0;aa&&!Mo(a)&&!Co(a)).join(" ").replace(/\s+/g," ").trim();if(r.length<8)return;let o=/^(.*?[.!?])(\s|$)/.exec(r);return(o?o[1]:r).slice(0,200)}function Oo(e,t=[]){if(t.length>=Lp)return t;let n=e.indexOf("{");if(n===-1){let c=e.replace(/\s+as\s+\w+\s*$/,"").replace(/::\s*\*\s*$/,"").replace(/^::/,"").trim();return c&&t.push(c),t}let s=e.slice(0,n),r=0,o=-1;for(let c=n;c({kind:"import",spec:r}))}function Up(e,t=[],n=512){let s=new Map,r=new Set(t.map(l=>`${l.name} ${l.line}`)),o=e.split(` +`),a=/(?:\bnew\s+)?(?:([A-Za-z_$][\w$]*)\s*\.\s*)?([A-Za-z_$][\w$]*)\s*\(/g;for(let l=0;ll.namec.name?1:l.line-c.line)}function zp(e){let t=new Set,n=r=>{if(!(t.size>=No))for(let o of yt(r)){if(t.size>=No)return;t.add(o)}},s=!1;for(let r of e.split(` +`)){if(t.size>=No)break;let o=r;if(s){let c=o.indexOf("*/");if(n(xt(c===-1?o:o.slice(0,c))),c===-1)continue;s=!1,o=o.slice(c+2)}let a=o.indexOf("/*");if(a!==-1){let c=o.indexOf("*/",a+2);n(xt(o.slice(a,c===-1?void 0:c))),c===-1?(s=!0,o=o.slice(0,a)):o=o.slice(0,a)+o.slice(c+2)}let l=/(^|\s)(\/\/|#|--)(.*)$/.exec(o);l&&(n(xt(l[2]+l[3])),o=o.slice(0,l.index));for(let c of o.matchAll(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g)){let d=c[2];d.length&&d.length<=Bp&&n(d)}}return[...t].sort()}function Hp(e){let t=new Ft,n=!1,s=0;for(let r of e.split(` +`)){if(s++,t.full)break;let o=r;if(n){let c=o.indexOf("*/");if(c===-1)continue;n=!1,o=o.slice(c+2)}let a=o.indexOf("/*");if(a!==-1){let c=o.indexOf("*/",a+2);c===-1?(n=!0,o=o.slice(0,a)):o=o.slice(0,a)+o.slice(c+2)}let l=/(^|\s)(\/\/|#|--)(.*)$/.exec(o);l&&(o=o.slice(0,l.index));for(let c of o.matchAll(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g))t.add("string",c[2],s);for(let c of o.replace(/(['"`])(?:\\.|(?!\1)[^\\])*\1/g," ").matchAll(/(?f.name)),c=_s(e,n,a).filter(f=>!l.has(f.name)),d=jp(t,n),m=new Set(d.map(f=>f.spec)),u=(r?r.literals.length?r.literals:void 0:Hp(n))?.filter(f=>!(f.kind==="string"&&m.has(f.value)));return{symbols:[...a,...c],...r?.truncated||o.length>a.length||c.length>=gs?{truncated:!0}:{},summary:Dp(n),refs:d,pkg:t===".java"?/^\s*package\s+([\w.]+)\s*;/m.exec(n)?.[1]:t===".cs"?/^\s*(?:file-scoped\s+)?namespace\s+([\w.]+)/m.exec(n)?.[1]:void 0,idents:r?.idents,calls:r?r.calls:Up(n,a,s.maxCallsPerFile),importedNames:r?.importedNames,relations:r?.relations?.length?r.relations:void 0,terms:r?r.terms:zp(n),literals:u?.length?u:void 0}}var Np,Op,Pp,$p,Lp,Wp,od,No,Bp,$o=O(()=>{"use strict";E();xs();bn();Fo();Re();Os();Ae();Np=2e3,Op=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]),Pp=new Set([".py",".pyi"]),$p=new Set([".c",".h",".cc",".cpp",".cxx",".hpp",".hh"]);Lp=16;Wp=new Set(["if","else","elif","for","while","do","switch","case","match","when","unless","until","catch","except","return","throw","raise","yield","await","typeof","instanceof","sizeof","delete","void","in","of","not","and","or","assert","defer","select","with","loop"]),od=/(?:\bfunction|\bdef|\bfunc|\bfun|\bfn|\bclass|\bsub|\bmacro|\bproc)\s*[*]?\s*$/;No=512,Bp=80});function ld(e){let t=new Ft,n=0;for(let s of e.split(` +`)){if(n++,t.full)break;let r=Jp(s);for(let a of r.matchAll(ad))t.add("string",a[2],n);let o=Vp.exec(r);if(o){let a=o[1].trim();a&&!/^[[{|>&*-]/.test(a)&&!qp.test(a)&&t.add("string",a,n)}for(let a of r.replace(ad," ").matchAll(Gp))t.add("number",a[0].replace(/_/g,""),n)}return t.result()}function Jp(e){let t;for(let n=0;n{"use strict";E();xs();ad=/(['"])((?:\\.|(?!\1)[^\\])*)\1/g,qp=/(['"])((?:\\.|(?!\1)[^\\])*)\1/,Gp=/(?u.rel)),a!==void 0&&n.length!==a.size&&(l=!1,c=!0),{root:e,commit:us(e),files:n,languages:s,docText:r,mtimes:o,capped:m.value.capped,excluded:m.value.excluded,contentUnchanged:l,cacheDirty:c}}var Pt=O(()=>{"use strict";E();ae();Fe();Gt();Tt();ws();bn();Gn();Y();oo();$o();cd()});var $s,ud=O(()=>{E();$s=class{constructor(){throw new Error("worker_threads is not available in the browser build (the engine runs single-threaded here)")}}});function Kp(){try{let e=ks(import.meta.url);if(e.endsWith("engine.mjs"))return Vn(e).href;let t=I(_e(e),"engine.mjs");return H(t)?Vn(t).href:void 0}catch{return}}function fd(e){let t=R.env.CODEINDEX_WORKERS,n=e??(t!==void 0&&t!==""?Number(t):void 0);if(n!==void 0)return Number.isFinite(n)&&n>0?Math.floor(n):0;let s=1;try{s=typeof Ss=="function"?Ss():pc().length}catch{s=1}return Math.max(0,Math.min(s-1,8))}async function Yp(e,t){await et(e.grammarKeys);let n=e.grammarKeys.filter(r=>tt(r)),s=[];for(let r of e.jobs){let o,a;try{let d=xe(r.abs);o=d.size,a=d.mtimeMs}catch{continue}let l=G(r.abs),c=Ps(r.rel,r.ext,o,l,Ce(l),Vt(r.ext),{maxCallsPerFile:e.maxCallsPerFile});s.push({rel:r.rel,size:o,mtimeMs:a,record:c})}t({ready:n,records:s})}async function md(e,t,n,s={}){if(n<2||e.length===0)return;let r=Kp();if(!r)return;let o=t.filter(f=>tt(f)).sort(),a=Math.min(n,e.length),l=`import { runExtractWorker } from ${JSON.stringify(r)}; import { parentPort, workerData } from "node:worker_threads"; const base = workerData.input; const post = (o) => parentPort.postMessage(o); @@ -21,60 +21,60 @@ runExtractWorker({ ...base, jobs: [] }, post).then(() => { runExtractWorker({ ...base, jobs: m.jobs }, post).catch(fail); }); }).catch(fail); -`,c=new Map,d=0,m=()=>{let f=e.length-d;if(f<=0)return[];let p=Math.max(Jp,Math.ceil(f/(a*Vp))),g=e.slice(d,d+p);return d+=g.length,g},u=[];try{return await Promise.all(Array.from({length:a},()=>new Promise((f,p)=>{let g=new Os(l,{eval:!0,workerData:{input:{jobs:[],grammarKeys:o,maxCallsPerFile:r.maxCallsPerFile}}});u.push(g);let h=!1,y,S=()=>{y&&clearTimeout(y),y=setTimeout(()=>{_(()=>p(new Error("extraction worker timed out"))),g.terminate()},Hp)},_=w=>{y&&clearTimeout(y),h=!0,w()};S();let k=0,b=()=>{let w=m();return w.length===0?!1:(k++,g.postMessage({jobs:w}),!0)};g.on("message",w=>{if(!h){if("error"in w){_(()=>p(new Error(w.error))),g.terminate();return}if(w.ready.slice().sort().join(",")!==o.join(",")){_(()=>p(new Error("extraction worker grammar tier mismatch"))),g.terminate();return}for(let v of w.records)c.set(v.rel,{size:v.size,mtimeMs:v.mtimeMs,record:v.record});if(k===0?b():k--,b(),k===0){_(()=>f()),g.postMessage({done:!0}),g.terminate();return}S()}}),g.once("error",w=>_(()=>p(w))),g.once("exit",w=>{!h&&w!==0&&_(()=>p(new Error(`extraction worker exited with ${w}`)))})}))),c}catch{for(let f of u)f.terminate();return}}async function ut(e,t={}){let n=od(t.workers);if(n<2)return Le(e,t);let r=t.precomputedWalk??Pe(e,{maxFileBytes:t.maxBytes,maxFiles:t.maxFiles,gitignore:t.gitignore,ignoreDirs:t.ignoreDirs}),s={...t,precomputedWalk:r},o=[];for(let{f:d}of $o(e,s)){let m=t.cache?.get(d.rel);!t.fullHash&&m&&m.size!==void 0&&m.mtimeMs!==void 0&&m.size===d.size&&m.mtimeMs===d.mtimeMs||o.push({abs:d.abs,rel:d.rel,ext:d.ext})}if(o.length===0)return Le(e,s);if(!(t.workers!==void 0||(R.env.CODEINDEX_WORKERS??"")!=="")&&o.lengthd.ext)),c=await ad(o,l,n,{maxCallsPerFile:t.maxCallsPerFile});return Le(e,c?{...s,extracted:c}:s)}var Hp,Gp,Vp,Jp,ir=O(()=>{"use strict";E();Se();io();ae();ks();id();Tt();Ne();bn();nt();Pt();Hp=600*1e3,Gp=200;Vp=4,Jp=4});function je(e){let t=new Map;for(let n of e.files)t.set(n.rel,{hash:n.hash,record:n,size:n.size,mtimeMs:e.mtimes.get(n.rel)});return t}function Do(e,t,n=!1){let r=e.files.filter(s=>Hn(s.rel,s.ext)==="code");return n&&r.length>0||r.some(s=>{let o=t.get(s.rel);return!o||o.size!==s.size||o.mtimeMs!==s.mtimeMs})}function Lo(e,t=ft){let n;try{n=JSON.parse(Q(I(e,t,"cache.json"),"utf8"))}catch{return}if(!(!n||n.schemaVersion!==5||n.extractorVersion!==14||!n.files))return{cacheMap:new Map(Object.entries(n.files)),meta:{engineVersion:n.engineVersion,commit:n.commit,graphSha1:n.graphSha1,symbolsSha1:n.symbolsSha1}}}function jo(e,t,n,r=ft){if(!t.contentUnchanged||n.engineVersion!==fe||n.commit!==t.commit||n.graphSha1===void 0||n.symbolsSha1===void 0)return;let s=I(e,r),o,a;try{o=Q(I(s,"graph.json")),a=Q(I(s,"symbols.json"))}catch{return}if(!(Ce(o)!==n.graphSha1||Ce(a)!==n.symbolsSha1))try{let l=JSON.parse(o.toString("utf8")),c=JSON.parse(a.toString("utf8"));return l.schemaVersion!==5||c.schemaVersion!==5?void 0:{scan:t,graph:l,symbols:c}}catch{return}}function Wo(e,t,n=ft){let r=Lo(e,n);if(!r)return;let s=Le(e,{...t,cache:r.cacheMap});return{scan:s,cacheMap:je(s),arts:jo(e,s,r.meta,n)}}async function Ps(e,t,n,r=ft){let s=Lo(e,r);if(!s)return;let o=t.precomputedWalk??Pe(e,{maxFileBytes:t.maxBytes,maxFiles:t.maxFiles,gitignore:t.gitignore,ignoreDirs:t.ignoreDirs});Do(o,s.cacheMap,t.fullHash)&&await n();let l=await ut(e,{...t,cache:s.cacheMap,precomputedWalk:o}),c=!1,d;return{scan:l,cacheMap:je(l),loadArtifacts:()=>(c||(c=!0,d=jo(e,l,s.meta,r)),d)}}var ft,or=O(()=>{"use strict";E();Se();ae();Xe();Pt();ir();Tt();Ne();bs();ft=".codeindex"});function hd(e,t,n){let r=e.dirFilesMemo??=new Map,s=n+"\0"+t,o=r.get(s);return o||r.set(s,o=(e.filesByDir.get(t)??[]).filter(a=>a.endsWith(n)).sort()),o}function wg(e){let t=ke(e).split("/").filter(s=>s!=="."),n=[],r=0;for(;rt?1:0)}function Go(e){let t="",n=!1;for(let s=0;s=kg)){if(typeof e=="string")t.includes(e)||t.push(e);else if(Array.isArray(e))for(let n of e)qo(n,t);else if(e!==null&&typeof e=="object"){let n=Object.keys(e).sort((r,s)=>_d(r)-_d(s)||(rs?1:0));for(let r of n)qo(e[r],t)}}}function Eg(e){if(e==null)return[];let t=[],n=(r,s)=>{let o=[];qo(s,o),o.length&&t.push({key:r,star:r.includes("*"),targets:o})};if(typeof e=="string"||Array.isArray(e))n(".",e);else if(typeof e=="object"){let r=Object.keys(e);if(r.every(s=>s==="."||s.startsWith("./")))for(let s of r)n(s,e[s]);else n(".",e)}return t.sort((r,s)=>Number(r.star)-Number(s.star)||s.key.length-r.key.length||(r.key{let o=/^\s*([^\s=]+)(?:\s+v\S+)?\s*=>\s*(\S+)(?:\s+v\S+)?\s*$/.exec(s);if(!o)return;let a=o[2];if(!/^\.\.?\//.test(a))return;let l=ke($.join(t,a));l.startsWith("..")||n.push({from:o[1],toDir:l})};for(let s of e.matchAll(/^[ \t]*replace[ \t]+([^(\r\n][^\r\n]*)$/gm))r(s[1]);for(let s of e.matchAll(/^[ \t]*replace[ \t]*\(([\s\S]*?)\)/gm))for(let o of s[1].split(/\r?\n/))r(o);return n}function Vo(e){let t=new Set(e.files.map(h=>h.rel)),n=new Map,r=new Set;for(let h of e.files){let y=h.rel.includes("/")?$.dirname(h.rel):"",S=n.get(y);S||n.set(y,S=[]),S.push(h.rel);let _=y;for(;_&&!r.has(_);)r.add(_),_=_.includes("/")?$.dirname(_):""}let s=[],o=[];for(let h of t){let y=h.slice(h.lastIndexOf("/")+1);if(y!=="tsconfig.json"&&y!=="jsconfig.json"&&!(h==="tsconfig.base.json"))continue;let _=h.includes("/")?$.dirname(h):"",k=yd(e.root,t,h,s,new Set);if(!k?.paths)continue;let b=[];for(let[v,A]of Object.entries(k.paths)){if(!Array.isArray(A))continue;let F=v.endsWith("*");b.push({prefix:F?v.slice(0,-1):v,star:F,targets:A})}if(!b.length)continue;let w=k.baseUrl!==void 0?ke($.join(k.baseUrlDir,k.baseUrl)).replace(/^\.$/,""):k.pathsDir;o.push({dir:_,baseUrl:w,paths:b})}o.sort((h,y)=>y.dir.length-h.dir.length);let a=[];for(let h of t){if(h!=="go.mod"&&!h.endsWith("/go.mod"))continue;let y=q(I(e.root,h)),S=/^\s*module\s+(\S+)/m.exec(y);if(!S)continue;let _=h.includes("/")?$.dirname(h):"";a.push({module:S[1],dir:_,replaces:vg(y,_)})}a.sort((h,y)=>y.dir.length-h.dir.length||(h.diry.dir.length-h.dir.length||(h.dirtypeof _=="string");m.push({name:y.name,dir:h.includes("/")?$.dirname(h):"",exportEntries:Eg(y.exports),mainCandidates:S})}m.sort((h,y)=>y.name.length-h.name.length);let u=new Set([""]);for(let h of r){let y=h.slice(h.lastIndexOf("/")+1);(y==="include"||y==="inc"||y==="src")&&u.add(h)}let f=new Set([""]);for(let h of r)h.slice(h.lastIndexOf("/")+1)==="lib"&&f.add(h);let p=[];for(let h of t){if(h!=="composer.json"&&!h.endsWith("/composer.json"))continue;let y=Go(q(I(e.root,h)));if(!y){s.push(`unparseable ${h} \u2014 skipped for PHP PSR-4 resolution`);continue}let S=h.includes("/")?$.dirname(h):"";for(let _ of[y.autoload?.["psr-4"],y["autoload-dev"]?.["psr-4"]])if(_)for(let[k,b]of Object.entries(_))for(let w of Array.isArray(b)?b:[b])typeof w=="string"&&p.push({prefix:k.replace(/\\+$/,""),dir:ke($.join(S,w)).replace(/^\.$/,"")})}p.sort((h,y)=>y.prefix.length-h.prefix.length);let g=new Map;for(let h of e.files){if(h.ext!==".cs"||!h.pkg)continue;let y=g.get(h.pkg);y||g.set(h.pkg,y=[]),y.push(h.rel)}for(let h of g.values())h.sort(M);return{fileSet:t,dirSet:r,filesByDir:n,tsConfigs:o,goModules:a,rustCrates:l,javaRoots:[...c].sort(zo),pyRoots:[...d],workspacePackages:m,cIncludeRoots:[...u].sort(zo),rubyLibRoots:[...f].sort(zo),phpPsr4:p,csharpNamespaces:g,warnings:s}}function mt(e,t){for(let n of t){let r=ke(n);if(r&&!r.startsWith("..")&&e.fileSet.has(r))return r}}function Jo(e,t,n){let r=t.split("#")[0].split("?")[0];if(!r)return{kind:"external"};if(r.startsWith("//")||/^[a-z][a-z0-9+.-]*:/i.test(r))return{kind:"external"};let s=e.includes("/")?$.dirname(e):"",o=ke($.join(s,r));if(o.startsWith(".."))return{kind:"dangling",reason:"escapes-repo-root"};let a=mt(n,[o,o+".md",o+".mdx",$.join(o,"README.md"),$.join(o,"readme.md"),$.join(o,"index.md"),$.join(o,"index.mdx")]);return a?{kind:"resolved",target:a}:n.dirSet.has(o)?{kind:"external"}:{kind:"dangling",reason:"missing-target"}}function Rg(e,t,n){let r=a=>mt(n,[...mg.map(l=>a+l),...pg.map(l=>$.join(a,l))]),s=a=>{let l=r(a);if(l)return l;let c=a.replace(/\.(js|jsx|mjs|cjs)$/,"");return c!==a?r(c):void 0};if(t.startsWith(".")){let a=e.includes("/")?$.dirname(e):"",l=ke($.join(a,t));if(l.startsWith(".."))return{kind:"dangling",reason:"escapes-repo-root"};let c=s(l);return c?{kind:"resolved",target:c}:{kind:"dangling",reason:"missing-module"}}let o;for(let a of n.tsConfigs){if(a.dir&&e!==a.dir&&!e.startsWith(a.dir+"/"))continue;let l=!1;for(let c of a.paths){if(!(c.star?t.startsWith(c.prefix):t===c.prefix))continue;l=!0;let d=c.star?t.slice(c.prefix.length):"",m=!1;for(let u of c.targets){let f=c.star?u.replace(/\*/,d):u,p=ke($.join(a.baseUrl,f)),g=s(p);if(g)return{kind:"resolved",target:g};let h=p.includes("/")?$.dirname(p):"";(n.dirSet.has(h)||n.fileSet.has(p))&&(m=!0)}o=m?{kind:"dangling",reason:"alias-unresolved"}:{kind:"external"};break}if(l)break}for(let a of n.workspacePackages){if(t!==a.name&&!t.startsWith(a.name+"/"))continue;let l=t.slice(a.name.length).replace(/^\//,""),c=u=>{for(let f of[u,...wg(u)]){let p=s(ke($.join(a.dir,f)));if(p)return p}},d=l?"./"+l:".";for(let u of a.exportEntries){let f;if(u.star){let p=u.key.indexOf("*"),g=u.key.slice(0,p),h=u.key.slice(p+1);if(!d.startsWith(g)||!d.endsWith(h)||d.length{let a=o?o.replace(/\./g,"/"):"",l=ke($.join(s,a));return mt(n,[l+".py",l+".pyi",$.join(l,"__init__.py")])};if(t.startsWith(".")){let s=/^\.+/.exec(t)[0].length,o=t.slice(s),l=e.includes("/")?$.dirname(e):"";for(let d=1;d{let l=ke(a).replace(/^\.$/,""),c=hd(n,l,".go");return c.length?{kind:"resolved",target:c[0]}:{kind:"dangling",reason:"missing-package"}},s=n.goModules.find(a=>!a.dir||e===a.dir||e.startsWith(a.dir+"/"));if(s)for(let a of s.replaces){if(t!==a.from&&!t.startsWith(a.from+"/"))continue;let l=t.slice(a.from.length).replace(/^\//,"");return r($.join(a.toDir,l))}let o=s?[s,...n.goModules.filter(a=>a!==s)]:n.goModules;for(let a of o){if(t!==a.module&&!t.startsWith(a.module+"/"))continue;let l=t.slice(a.module.length).replace(/^\//,"");return r($.join(a.dir,l))}return{kind:"external"}}function Ag(e,t,n){if(!n.rustCrates.length)return{kind:"external"};let r=(_,k)=>mt(n,[$.join(_,k+".rs"),$.join(_,k,"mod.rs")]),s=(_,k)=>{for(let b=k.length;b>=1;b--){let w=ke($.join(_,...k.slice(0,b-1))),v=r(w,k[b-1]);if(v)return v}},o=e.includes("/")?$.dirname(e):"",a=e.slice(e.lastIndexOf("/")+1).replace(/\.rs$/,""),l=a==="mod"||a==="lib"||a==="main",c=l?o:$.join(o,a);if(t.startsWith("mod ")){let _=t.slice(4),k=r(c,_)??(l?void 0:r(o,_));return k?{kind:"resolved",target:k}:{kind:"dangling",reason:"missing-module"}}let d=t.split("::").map(_=>_.trim()).filter(Boolean);if(!d.length)return{kind:"external"};let m=d[0],u=n.rustCrates.find(_=>!_.dir||e===_.dir||e.startsWith(_.dir+"/")),f,p=[];if(m==="crate"&&u)f=u.srcDir,p=d.slice(1);else if(m==="self")f=c,p=d.slice(1);else if(m==="super"){let _=l?o.includes("/")?$.dirname(o):"":o,k=1;for(;kk.name===m);if(_){let k=s(_.srcDir,d.slice(1));if(k)return{kind:"resolved",target:k};if(_.rootFile)return{kind:"resolved",target:_.rootFile}}return{kind:"external"}}if(!p.length)return{kind:"external"};let g=s(f,p);if(g)return{kind:"resolved",target:g};if(u&&f===u.srcDir&&u.rootFile)return{kind:"resolved",target:u.rootFile};let h=f.includes("/")?$.dirname(f):"",y=f.slice(f.lastIndexOf("/")+1),S=y?r(h,y):void 0;return S&&S!==e?{kind:"resolved",target:S}:{kind:"external"}}function Tg(e,t){if(!t.javaRoots.length)return{kind:"external"};let n=o=>{for(let a of t.javaRoots){let l=ke($.join(a,o));if(l.endsWith("/*")||l==="*"){let c=l==="*"?"":l.slice(0,-2),d=hd(t,c,".java");if(d.length)return d[0];continue}if(t.fileSet.has(l+".java"))return l+".java"}},r=e.replace(/\./g,"/"),s=n(r);if(!s&&!e.endsWith(".*")){let o=r.split("/");for(let a=o.length-1;a>=2&&!s;a--)s=n(o.slice(0,a).join("/"))}return s?{kind:"resolved",target:s}:{kind:"external"}}function Ig(e,t,n){let r=e.includes("/")?$.dirname(e):"",s=mt(n,[$.join(r,t),...n.cIncludeRoots.map(o=>$.join(o,t))]);return s?{kind:"resolved",target:s}:{kind:"dangling",reason:"missing-include"}}function Ng(e,t,n){if(t.startsWith(".")){let r=e.includes("/")?$.dirname(e):"",s=ke($.join(r,t)),o=mt(n,[s+".rb",$.join(s,"index.rb")]);return o?{kind:"resolved",target:o}:{kind:"dangling",reason:"missing-module"}}for(let r of n.rubyLibRoots){let s=mt(n,[$.join(r,t+".rb")]);if(s)return{kind:"resolved",target:s}}return{kind:"external"}}function Fg(e,t,n){if(t.startsWith(".")){let s=e.includes("/")?$.dirname(e):"",o=ke($.join(s,t)),a=mt(n,[o,o+".php"]);return a?{kind:"resolved",target:a}:{kind:"dangling",reason:"missing-module"}}let r=t.replace(/^\\+/,"");for(let{prefix:s,dir:o}of n.phpPsr4){if(s&&r!==s&&!r.startsWith(s+"\\"))continue;let a=s?r.slice(s.length).replace(/^\\+/,""):r,l=mt(n,[$.join(o,a.replace(/\\/g,"/"))+".php"]);if(l)return{kind:"resolved",target:l}}return{kind:"external"}}function Og(e,t){let n=t.csharpNamespaces.get(e);if(n?.length)return{kind:"resolved",target:n[0]};let r;for(let[s,o]of t.csharpNamespaces)if(s===e||s.startsWith(e+".")){let a=o[0];(r===void 0||M(a,r)<0)&&(r=a)}return r?{kind:"resolved",target:r}:{kind:"external"}}function lr(e,t,n,r){let s=n.lastIndexOf(".");if(s!==-1&&fg.has(n.slice(s).toLowerCase().replace(/[?#].*$/,"")))return{kind:"external"};if(gg.has(t)||_g.has(t)){let a=(e.includes("/")?$.dirname(e):"")+"\0"+n,l=r.jsMemo??=new Map,c=l.get(a);return c||l.set(a,c=Rg(e,n,r)),{...c}}return hg.has(t)?Mg(e,n,r):t===".go"?Cg(e,n,r):t===".rs"?Ag(e,n,r):t===".java"?Tg(n,r):yg.has(t)?Ig(e,n,r):t===".rb"||t===".rake"?Ng(e,n,r):t===".php"?Fg(e,n,r):t===".cs"?Og(n,r):{kind:"external"}}var fg,mg,pg,gg,_g,hg,yg,bg,Ho,kg,Ds=O(()=>{"use strict";E();ae();ae();Ne();Y();fg=new Set([".svg",".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".icns",".pdf",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".mov",".avi",".webm",".wav",".flac",".ogg",".map"]),mg=["",".ts",".tsx",".d.ts",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".svelte",".astro",".html",".htm"],pg=["index.ts","index.tsx","index.js","index.jsx","index.mjs","index.cjs"],gg=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]),_g=new Set([".vue",".svelte",".astro",".html",".htm"]),hg=new Set([".py",".pyi"]),yg=new Set([".c",".h",".cc",".cpp",".cxx",".hpp",".hh"]),bg=new Set(["dist","build","lib","out","output","esm","cjs","umd"]);Ho=["source","ts","import","module","require","node","default"],kg=8});function js(e){return Lg.test(e.split("/").pop())}function jg(e){return e.includes("/")?$.dirname(e):Ls}function bd(e){return e===Ls?0:$g.test(e)||Dg.test(e)?2:Pg.test(e)?0:null}function Wg(e,t){let n=bd(e);return n!==null?n:t.every(r=>r.kind==="doc"||r.kind==="config"||js(r.rel))?2:1}function Ug(e,t){let n=t.find(a=>/^(readme|index)\.(md|mdx)$/i.test(a.rel.split("/").pop()));if(n?.summary)return n.summary;if(n?.title)return n.title;let r=t.filter(a=>a.summary).sort((a,l)=>(l.summary?.length??0)-(a.summary?.length??0));if(r[0]?.summary)return r[0].summary;let s=[...new Set(t.map(a=>a.lang))].filter(a=>a!=="other"),o=e===Ls?"the repository root":`\`${e}/\``;return`${t.length} file(s) in ${o}${s.length?` (${s.slice(0,3).join(", ")})`:""}.`}function Ko(e){let t=new Map;for(let c of e.files){let d=jg(c.rel),m=t.get(d);m||t.set(d,m=[]),m.push(c)}let n=[...t.keys()].sort(M),r=new Map,s=new Map;for(let c of n){let d=c===Ls?"root":ji(c);r.set(c,d),s.set(d,(s.get(d)??0)+1)}let o=c=>{let d=r.get(c);return d&&s.get(d)===1?d:`${d||"module"}-${Ce(c).slice(0,8)}`},a=[],l=new Map;for(let c of n){let d=t.get(c).slice().sort((f,p)=>M(f.rel,p.rel)),m=o(c),u={slug:m,path:c,title:c,tier:Wg(c,d),members:d.map(f=>f.rel),summary:Ug(c,d)};a.push(u);for(let f of d)l.set(f.rel,m)}return a.sort((c,d)=>M(c.slug,d.slug)),{modules:a,moduleOf:l}}var Ls,Pg,$g,Dg,Lg,Ws=O(()=>{"use strict";E();ae();Ae();Tt();Y();Ls="(root)",Pg=/(^|\/)(types?|util|utils|lib|libs|common|core|config|configs|constants|shared|helpers|internal)$/i,$g=/(^|\/)(tests?|__tests?__|__mocks?__|__snapshots?__|spec|specs|e2e|examples?|example|benchmark|benchmarks|fixtures?|docs?|documentation|\.github)(\/|$)/i,Dg=/(^|\/)(scripts?|bin|\.storybook)$/i,Lg=/\.(test|spec|e2e|stories|story)\.[cm]?[jt]sx?$/i});function st(e){return e==="typescript"||e==="javascript"?"js":e==="c"||e==="cpp"?"c":e}function zg(e,t){let n=e.split("/"),r=t.split("/"),s=0;for(;sr?(r=a,n=o,s=!1):a===r&&(s=!0)}return s?void 0:n}function Xo(e,t){let n=new Map,r=new Set;for(let o of e.files)for(let a of o.symbols){if(!a.exported||Bg.has(a.kind))continue;let l=`${a.name} ${a.file}`;if(r.has(l))continue;r.add(l);let c=n.get(a.name);c||n.set(a.name,c=[]),c.push({file:a.file,lang:a.lang})}let s=new Map;for(let o of e.files){if(!o.calls?.length)continue;let a=st(o.lang),l=new Set(o.symbols.map(d=>d.name)),c=new Map;for(let d of o.calls)c.set(d.name,(c.get(d.name)??0)+1);for(let[d,m]of c){if(l.has(d))continue;let u=(n.get(d)??[]).filter(S=>st(S.lang)===a&&S.file!==o.rel);if(!u.length)continue;let f=u.filter(S=>t.has(`${o.rel}|${S.file}`)),p,g;if(a==="js"){if(!f.length)continue;p=rt(o.rel,f),g="extracted"}else f.length?(p=rt(o.rel,f),g="extracted"):(p=rt(o.rel,u),g="inferred");if(!p)continue;let h=`${o.rel}|${p.file}`,y=s.get(h);y?(y.weight+=m,g==="extracted"&&(y.confidence="extracted")):s.set(h,{from:o.rel,to:p.file,weight:m,confidence:g})}}return[...s.values()].map(o=>({from:o.from,to:o.to,kind:"call",weight:Math.min(o.weight,5),confidence:o.confidence})).sort((o,a)=>M(o.from,a.from)||M(o.to,a.to))}var Bg,kn=O(()=>{"use strict";E();Y();Bg=new Set(["reexport","reexport-all","default"])});function wd(e){let t=new Map,n=new Set;for(let r of e.files)for(let s of r.symbols){if(!Gg.has(s.kind))continue;let o=`${s.name} ${s.file}`;if(n.has(o))continue;n.add(o);let a=t.get(s.name);a||t.set(s.name,a=[]),a.push({name:s.name,file:s.file,kind:s.kind,lang:s.lang,line:s.line})}return t}function cr(e,t){let n=wd(e),r=[];for(let s of e.files){if(!s.relations?.length)continue;let o=st(s.lang);for(let a of s.relations){let l=(n.get(a.to)??[]).filter(f=>st(f.lang)===o);if(!l.length)continue;let c=l.filter(f=>t.has(`${s.rel}|${f.file}`)||f.file===s.rel),d=c.length?c:l,m=rt(s.rel,d.map(f=>({file:f.file,lang:f.lang})));if(!m)continue;let u=d.find(f=>f.file===m.file);r.push({kind:Hg.has(u.kind)?"implements":a.kind,from:a.from,fromFile:s.rel,fromLine:a.line,to:u.name,toFile:u.file,toKind:u.kind})}}return r.sort((s,o)=>M(s.fromFile,o.fromFile)||M(s.from,o.from)||M(s.kind,o.kind)||M(s.to,o.to))}function Zo(e,t){let n=new Map;for(let r of cr(e,t)){if(r.toFile===r.fromFile)continue;let s=`${r.fromFile}${We}${r.toFile}${We}${r.kind}`,o=n.get(s);o?o.weight=Math.min(o.weight+1,5):n.set(s,{from:r.fromFile,to:r.toFile,kind:r.kind,weight:1})}return[...n.values()].sort((r,s)=>M(r.from,s.from)||M(r.to,s.to)||M(r.kind,s.kind))}function En(e,t){let n=wd(e),r=cr(e,t),s=new Map,o=(u,f)=>`${u}${We}${f}`;for(let u of n.values())for(let f of u)s.set(o(f.name,f.file),{name:f.name,file:f.file,line:f.line,kind:f.kind,extends:[],implements:[],extendedBy:[],implementedBy:[],unresolved:[]});let a=u=>({name:u.name,file:u.file,line:u.line,kind:u.kind});for(let u of r){let f=s.get(o(u.from,u.fromFile)),p=s.get(o(u.to,u.toFile));p&&(f?((u.kind==="extends"?f.extends:f.implements).push(a(p)),(u.kind==="extends"?p.extendedBy:p.implementedBy).push(a(f))):(u.kind==="extends"?p.extendedBy:p.implementedBy).push({name:u.from,file:u.fromFile,line:u.fromLine,kind:"unknown"}))}let l=new Set(r.map(u=>`${u.fromFile}${We}${u.from}${We}${u.kind}${We}${u.to}`));for(let u of e.files)for(let f of u.relations??[]){if(l.has(`${u.rel}${We}${f.from}${We}${f.kind}${We}${f.to}`))continue;let p=f.kind==="extends"?"implements":"extends";l.has(`${u.rel}${We}${f.from}${We}${p}${We}${f.to}`)||s.get(o(f.from,u.rel))?.unresolved.push({kind:f.kind,to:f.to})}let c=(u,f)=>M(u.name,f.name)||M(u.file,f.file),d=new Map,m=[...s.keys()].sort(M);for(let u of m){let f=s.get(u);f.extends.sort(c),f.implements.sort(c),f.extendedBy.sort(c),f.implementedBy.sort(c),f.unresolved.sort((p,g)=>M(p.kind,g.kind)||M(p.to,g.to)),d.has(f.name)?d.set(`${f.name}@${f.file}`,f):d.set(f.name,f)}return d}function dr(e,t){let n=e.get(t);if(!n)return[];let r=new Set([`${n.name}${We}${n.file}`]),s=[],o=[n];for(;o.length;){let a=[];for(let l of o)for(let c of[...l.implementedBy,...l.extendedBy]){let d=`${c.name}${We}${c.file}`;if(r.has(d))continue;r.add(d),s.push(c);let m=e.get(c.name)??e.get(`${c.name}@${c.file}`);m&&m.file===c.file&&a.push(m)}o=a}return s.sort((a,l)=>M(a.name,l.name)||M(a.file,l.file))}function qg(e,t){return e.get(t)}var We,Hg,Gg,Xt=O(()=>{"use strict";E();kn();Y();We="\0",Hg=new Set(["interface","trait","protocol"]),Gg=new Set(["class","interface","trait","struct","type","enum","record","object","protocol","module","mod","union","annotation"])});function Yo(e){let t=Zt(e),n=new Map;if(!t.size)return n;let r=(o,a)=>{let l=n.get(o);l||n.set(o,l=new Set),l.add(a)},s=Bs(e);for(let o of e.files)if(o.kind==="code"&&o.idents)for(let a of o.idents){let l=t.get(a);l&&l!==o.rel&&r(a,o.rel)}else if(o.kind==="doc"){let a=s.get(o.rel);if(!a||!a.retained)continue;for(let l of a.counts.keys()){let c=t.get(l);c&&c!==o.rel&&r(l,o.rel)}}return n}function Qo(e,t=new Map,n=5){let r=new Map;for(let a of e.files)for(let l of a.symbols){let c=r.get(l.name);c||r.set(l.name,c=[]),c.push({file:l.file,line:l.line,...l.endLine!==void 0?{endLine:l.endLine}:{},kind:l.kind,exported:l.exported,lang:l.lang,...l.parent?{parent:l.parent}:{}})}let s={};for(let a of[...r.keys()].sort(M))s[a]=r.get(a).slice().sort((l,c)=>M(l.file,c.file)||l.line-c.line||M(l.kind,c.kind));let o={};for(let a of[...t.keys()].sort(M)){let l=[...t.get(a)].sort(M);l.length&&(o[a]=l)}return{schemaVersion:n,defs:s,refs:o}}function Us(e){return JSON.stringify(e,null,2)+` -`}var ur=O(()=>{"use strict";E();Xe();Y();pt()});function fr(e){return new Set(en(e))}function Yt(e,t,n={}){let r=t??en(e),s=n.recall===!0,o=new Map;for(let f of e.files){let p=new Set;for(let g of f.symbols){if(!g.exported||zs.has(g.kind)||p.has(g.name))continue;p.add(g.name);let h=o.get(g.name);h||o.set(g.name,h=[]),h.push(g)}}let a=new Map;for(let[f,p]of o){let g=new Map;for(let h of p){let y=st(h.lang),S=g.get(y);S||g.set(y,S=[]),S.push(h)}a.set(f,g)}let l=new Map;for(let f of e.files){let p=new Map;for(let g of f.symbols)!zs.has(g.kind)&&!p.has(g.name)&&p.set(g.name,g);l.set(f.rel,p)}let c=new Map,d=(f,p)=>{let g=c.get(f.name+"\0"+f.file);g||c.set(f.name+"\0"+f.file,g={def:f,callers:[]}),g.callers.push(p)};for(let f of e.files){if(!f.calls?.length)continue;let p=st(f.lang),g=l.get(f.rel);for(let h of f.calls){let y=g.get(h.name);if(y){y.line!==h.line&&d(y,s?{file:f.rel,line:h.line,confidence:"corroborated"}:{file:f.rel,line:h.line});continue}let S=(a.get(h.name)?.get(p)??[]).filter(w=>w.file!==f.rel);if(!S.length)continue;let _=S.filter(w=>r.has(`${f.rel}|${w.file}`)),k=p==="js"?_.length?rt(f.rel,_):s&&S.length===1?S[0]:void 0:_.length?rt(f.rel,_):rt(f.rel,S);if(!k)continue;d(k,s?{file:f.rel,line:h.line,confidence:_.length?"corroborated":"unique-name"}:{file:f.rel,line:h.line})}}let m=new Map,u=[...c.keys()].sort(M);for(let f of u){let{def:p,callers:g}=c.get(f);g.sort((h,y)=>M(h.file,y.file)||h.line-y.line),m.has(p.name)?m.set(`${p.name}@${p.file}`,{def:p,callers:g}):m.set(p.name,{def:p,callers:g})}return m}function Vg(e,t,n){let r=e.files.find(s=>s.rel===t);if(r?.symbols.length)return Hs(r.symbols,n)}function Hs(e,t){let n;for(let r of e)zs.has(r.kind)||r.line>t||r.endLine!==void 0&&t>r.endLine||(!n||r.line>n.line||r.line===n.line&&(r.endLine??1/0)<=(n.endLine??1/0))&&(n=r);return n}function Jg(e){let t=new Map;for(let r of e.files){if(!r.calls?.length)continue;let s=r.symbols.filter(o=>!zs.has(o.kind));for(let o of r.calls){let a={file:r.rel,line:o.line};o.receiver!==void 0&&(a.receiver=o.receiver);let l=Hs(s,o.line);l&&(a.enclosingSymbol=l);let c=t.get(o.name);c||t.set(o.name,c=[]),c.push(a)}}let n=new Map;for(let r of[...t.keys()].sort(M)){let s=t.get(r);s.sort((o,a)=>M(o.file,a.file)||o.line-a.line),n.set(r,s)}return n}var zs,Qt=O(()=>{"use strict";E();kn();pt();Y();zs=new Set(["reexport","reexport-all","default"])});function tn(e){return e.parent?`${e.file}#${e.parent}/${e.name}`:`${e.file}#${e.name}`}function Xg(e){return{id:tn(e),name:e.name,kind:e.kind,file:e.file,line:e.line,...e.endLine!==void 0?{endLine:e.endLine}:{},exported:e.exported,...e.doc?{doc:e.doc}:{},...e.signature?{signature:e.signature}:{}}}function mr(e,t){let n=new Map,r=new Map,s=new Map,o=new Set;for(let p of e.files){let g=[];for(let h of p.symbols){if(Kg.has(h.kind)||(g.push(h),n.set(tn(h),Xg(h)),!h.exported))continue;let y=`${h.name} ${h.file}`;if(o.has(y))continue;o.add(y);let S=s.get(h.name);S||s.set(h.name,S=[]),S.push(h)}r.set(p.rel,g)}let a=new Map,l=(p,g,h)=>{if(p===g)return;let y=`${p}${Gs}${g}${Gs}${h}`,S=a.get(y);S?S.weight+=1:a.set(y,{from:p,to:g,kind:h,weight:1})};for(let p of e.files){if(!p.calls?.length)continue;let g=st(p.lang),h=r.get(p.rel)??[],y=new Map;for(let S of h)y.has(S.name)||y.set(S.name,S);for(let S of p.calls){let _=Hs(h,S.line);if(!_)continue;let k=y.get(S.name);if(k){k.line!==S.line&&l(tn(_),tn(k),"calls");continue}let b=(s.get(S.name)??[]).filter(T=>st(T.lang)===g&&T.file!==p.rel);if(!b.length)continue;let w=b.filter(T=>t.has(`${p.rel}|${T.file}`)),v=w.length?w:g==="js"?[]:b;if(!v.length)continue;let A=rt(p.rel,v.map(T=>({file:T.file,lang:T.lang})));if(!A)continue;let F=v.find(T=>T.file===A.file);l(tn(_),tn(F),"calls")}}let c=new Map;for(let p of n.values())c.set(`${p.name} ${p.file}`,p.id);for(let p of cr(e,t)){let g=c.get(`${p.from} ${p.fromFile}`),h=c.get(`${p.to} ${p.toFile}`);g&&h&&l(g,h,p.kind)}let d=[...a.values()].sort((p,g)=>M(p.from,g.from)||M(p.kind,g.kind)||M(p.to,g.to)),m=new Map,u=new Map;for(let p of d)(m.get(p.from)??m.set(p.from,[]).get(p.from)).push(p),(u.get(p.to)??u.set(p.to,[]).get(p.to)).push(p);let f=new Map;for(let p of[...n.keys()].sort(M)){let g=n.get(p);(f.get(g.name)??f.set(g.name,[]).get(g.name)).push(p)}return{nodes:n,edges:d,out:m,in:u,byName:f}}function pr(e,t,n={}){let r=Math.max(1,Math.min(n.depth??2,Zg)),s=n.direction??"both",o=e.nodes.has(t)?[t]:e.byName.get(t)??[...e.nodes.keys()].filter(p=>p.endsWith(`#${t}`)),a=o.map(p=>e.nodes.get(p)).filter(Boolean);if(!a.length)return{root:[],nodes:[],edges:[]};let l=new Map;for(let p of o)l.set(p,0);let c=new Map,d=[...o],m=!1;for(let p=1;p<=r&&d.length;p++){let g=[];for(let h of d){let y=(S,_)=>{for(let k of S??[]){c.set(`${k.from}${Gs}${k.to}${Gs}${k.kind}`,k);let b=_(k);if(!l.has(b)){if(l.size>=Yg){m=!0;continue}l.set(b,p),g.push(b)}}};s!=="in"&&y(e.out.get(h),S=>S.to),s!=="out"&&y(e.in.get(h),S=>S.from)}d=g}let u=[...l.entries()].map(([p,g])=>({...e.nodes.get(p),depth:g})).sort((p,g)=>p.depth-g.depth||M(p.file,g.file)||M(p.name,g.name)),f=[...c.values()].filter(p=>l.has(p.from)&&l.has(p.to)).sort((p,g)=>M(p.from,g.from)||M(p.kind,g.kind)||M(p.to,g.to));return{root:a,nodes:u,edges:f,...m?{truncated:!0}:{}}}var Gs,Kg,Zg,Yg,gr=O(()=>{"use strict";E();kn();Qt();Xt();Y();Gs="\0",Kg=new Set(["reexport","reexport-all","default"]);Zg=5,Yg=400});function $t(e){if(e_.test(e)||js(e))return!0;let t=e.split("/").pop();return Qg.some(n=>n.test(t))}function _r(e){let t=new Set,n=new Map;for(let a of e.files)n.set(a.rel,a.module),a.fileKind==="code"&&$t(a.rel)&&t.add(a.rel);let r=new Map,s=new Map;for(let a of e.fileEdges){if(a.dangling||a.kind!=="import"&&a.kind!=="use"&&a.kind!=="call"||!t.has(a.from)||t.has(a.to))continue;let l=r.get(a.to);l||r.set(a.to,l=new Set),l.add(a.from);let c=n.get(a.to);if(c!==void 0){let d=s.get(c);d||s.set(c,d=new Set),d.add(a.from)}}let o=a=>{let l=new Map;for(let c of[...a.keys()].sort(M))l.set(c,[...a.get(c)].sort(M));return l};return{testFiles:t,testedByFile:o(r),testedByModule:o(s)}}function t_(e,t){let n=e.modules.find(r=>r.slug===t);return n?.testedBy?n.testedBy:_r(e).testedByModule.get(t)??[]}function n_(e){let t=_r(e),n=new Map;for(let r of e.files)r.fileKind!=="code"||t.testFiles.has(r.rel)||n.set(r.module,(n.get(r.module)??0)+1);return e.modules.filter(r=>r.tier<=1&&r.symbols>0&&(n.get(r.slug)??0)>0&&!t.testedByModule.has(r.slug))}var Qg,e_,vn=O(()=>{"use strict";E();Ws();Y();Qg=[/^test_.*\.py$/i,/_test\.py$/i,/_test\.go$/,/(Test|Tests|IT)\.java$/,/(Test|Tests)\.kt$/,/_spec\.rb$/,/_test\.rb$/,/Test\.php$/,/(Test|Tests)\.cs$/,/_test\.exs$/],e_=/(^|\/)(tests?|__tests?__|spec|specs|e2e)(\/|$)/i});function Rn(e,t,n){let r=e.fields[t];for(let s of yt(n))r.tf.set(s,(r.tf.get(s)??0)+1),r.len++,e.all.add(s)}function u_(){let e={};for(let t of qs)e[t]={tf:new Map,len:0};return e}function Vs(e){let t=[];for(let n of e.files){let r={file:n.rel,fields:u_(),all:new Set,symbols:[],decls:[],exactNames:new Set,isTest:$t(n.rel)},s=new Set;for(let o of n.symbols)Rn(r,"name",o.name),o.doc&&Rn(r,"doc",o.doc),r.exactNames.add(ht(o.name).toLowerCase()),s.has(o.name)||(s.add(o.name),r.symbols.push(o.name),r.decls.push({name:o.name,kind:o.kind,line:o.line}));for(let o of n.rel.split("/"))Rn(r,"path",o);for(let o of n.headings)Rn(r,"heading",o);n.summary&&Rn(r,"summary",n.summary);for(let o of n.terms??[])Rn(r,"body",o);t.push(r)}return t}function vd(e){let t=`^^${e}$$`,n=new Set;for(let r=0;r+3<=t.length;r++)n.add(t.slice(r,r+3));return n}function f_(e,t){if(!e.size||!t.size)return 0;let n=0;for(let r of e)t.has(r)&&n++;return 2*n/(e.size+t.size)}function Rd(e){let t=new Set,n=new Map;for(let r of e)for(let s of r.all){if(t.has(s))continue;t.add(s);let o=Ui(s);if(o===s)continue;let a=n.get(o);a||n.set(o,a=[]),a.push(s)}for(let r of n.values())r.sort(M);return n}function Md(e){let t=new Map;for(let n of e)for(let r of n.all)t.has(r)||t.set(r,vd(r));return t}function Dt(e,t,n={}){return Cd(e,t,n).results}function nn(e,t,n={}){return Cd(e,t,n)}function kd(e,t,n){return{results:[],explain:{query:e,terms:[],droppedStopwords:os(e),unresolvedTerms:[],verdict:t,note:n,bridgedOnlyResults:0,resultCount:0}}}function Cd(e,t,n={}){let r=[],s=new Set;for(let _ of is(t))for(let k of yt(_))s.has(k)||(s.add(k),r.push(k));if(!r.length){let _=os(t);return kd(t,"none",_.length?`Nothing was searched for: every token in this query (${_.join(", ")}) is a stopword or too short to index. Search with the identifiers or domain words you are actually looking for.`:"Nothing was searched for: the query carried no indexable token.")}let o=r.some(_=>d_.test(_)),a=Ad(e),l=a.length;if(!l)return kd(t,"none","This index contains no files.");let c={};for(let _ of qs){let k=0;for(let b of a)k+=b.fields[_].len;c[_]=k/l||1}let d=new Map;for(let _ of r){let k=0;for(let b of a)b.all.has(_)&&k++;d.set(_,k)}let m=n.fuzzy??!0,u=new Map;if(m){let _=r.filter(k=>d.get(k)===0);if(_.length){let k=Nd(e),b=[];for(let w of _){let v=(k.get(Ui(w))??[]).filter(A=>A!==w);v.length?u.set(w,v.slice(0,Sd).map(A=>({term:A,dice:Ed}))):b.push(w)}if(b.length){let w=Td(e);for(let v of b){let A=vd(v),F=[];for(let[T,U]of w){let te=f_(A,U);te>=i_&&F.push({term:T,dice:te})}F.sort((T,U)=>U.dice-T.dice||M(T.term,U.term)),u.set(v,F.slice(0,Sd))}}}}let f=new Map,p=_=>{let k=d.get(_)??f.get(_);if(k!==void 0)return k;let b=0;for(let w of a)w.all.has(_)&&b++;return f.set(_,b),b},g=_=>Math.log(1+(l-_+.5)/(_+.5)),h=n.rank==="graph"?Id(e):void 0,y=[];for(let _ of a){let k=0,b=[],w=new Set,v=new Set,A=new Set,F=!1,T=z=>{let P=0;for(let j of qs){let B=_.fields[j],se=B.tf.get(z);if(!se)continue;w.add(j);let J=a_[j];P+=o_[j]*se/(1-J+J*B.len/c[j])}return P};for(let z of r){let P=T(z);if(P>0){b.push(z),v.add(z),_.exactNames.has(z)&&(F=!0),k+=g(d.get(z))*(P/(xd+P));continue}for(let j of u.get(z)??[]){let B=T(j.term);B&&(k+=g(p(j.term))*(B/(xd+B))*j.dice,v.add(j.term),A.add(z))}}if(!b.length&&!A.size)continue;F&&(k*=l_),_.isTest&&!o&&(k*=c_),h&&(k*=1+.35*Math.log1p(h.get(_.file)??0));let te=_.decls.map(z=>{let P=new Set(yt(z.name)),j=0;for(let B of v)P.has(B)&&j++;return{decl:z,hits:j}}).filter(z=>z.hits>0).sort((z,P)=>P.hits-z.hits||M(z.decl.name,P.decl.name)).slice(0,s_).map(z=>z.decl),V={file:_.file,score:Number(k.toFixed(4)),matchedTerms:b.sort(M),topSymbols:te.map(z=>z.name)};w.size&&(V.matchedFields=qs.filter(z=>w.has(z))),te.length&&(V.symbolHits=te,V.line=Math.min(...te.map(z=>z.line))),A.size&&(V.fuzzyTerms=[...A].sort(M)),b.length||(V.bridgedOnly=!0),y.push(V)}y.sort((_,k)=>k.score-_.score||M(_.file,k.file));let S=(n.exact?y.filter(_=>!_.bridgedOnly):y).slice(0,n.limit??r_);return{results:S,explain:m_(t,r,d,u,S)}}function m_(e,t,n,r,s){let o=t.map(g=>{let h=n.get(g)??0,y=h===0?r.get(g)??[]:[];if(!y.length)return{term:g,df:h};let S=y[0].dice===Ed?"stem":"trigram";return{term:g,df:h,bridge:{via:S,to:y.map(_=>_.term),dice:y[0].dice}}}),a=o.filter(g=>g.df===0&&!g.bridge).map(g=>g.term).sort(M),l=!/\s/.test(e.trim())&&t.length?{term:t[0],df:n.get(t[0])??0}:void 0,c=s.filter(g=>g.bridgedOnly).length,d=s.length>0&&c===s.length,m=l?.df===0,u=s.length?m||d?"weak":"match":"none",f={query:e,terms:o,droppedStopwords:os(e),unresolvedTerms:a,...l?{wholeIdentifier:l}:{},verdict:u,bridgedOnlyResults:c,resultCount:s.length},p=p_(f,m,d);return p&&(f.note=p),f}function p_(e,t,n){let{verdict:r,wholeIdentifier:s,resultCount:o,terms:a}=e;if(r!=="match"){if(!o)return e.unresolvedTerms.length?`No file matches. ${e.unresolvedTerms.length===1?"The term":"The terms"} ${e.unresolvedTerms.join(", ")} appear nowhere in this index.`:"No file matches this query.";if(t&&s){let l=a.filter(u=>u.term!==s.term&&u.df>0).map(u=>u.term).join(", "),c=a.find(u=>u.term===s.term)?.bridge?.to??[],d=l?` The ${o} result${o===1?"":"s"} below match only its parts (${l}).`:"",m=c.length?` Closest indexed name${c.length===1?"":"s"}: ${c.join(", ")}.`:"";return`No file in this index defines or mentions "${s.term}".${d}${m} If you expected it here, check you are indexing the right branch or commit.`}if(n)return`Nothing matched verbatim. Every result below came from a near match: ${a.filter(d=>d.bridge).map(d=>`"${d.term}" \u2192 ${d.bridge.to.join(", ")}`).join("; ")}. Re-run with --exact to see only literal matches.`}}var xd,r_,s_,i_,Sd,Ed,qs,o_,a_,l_,c_,d_,Mn=O(()=>{"use strict";E();pt();Ae();vn();Y();xd=1.2,r_=20,s_=5,i_=.6,Sd=3,Ed=.9,qs=["name","path","heading","summary","doc","body"],o_={name:3,path:2,heading:1.5,summary:1.5,doc:1.6,body:.7},a_={name:.75,path:.75,heading:.75,summary:.75,doc:.75,body:.4},l_=1.35,c_=.65,d_=/^(test|tests|spec|specs|fixture|fixtures|mock|mocks|stub|stubs)$/});function hr(e,t,n=.85){let r=new Map,s=e.length;if(s===0)return r;let o=new Map(e.map((d,m)=>[d,m])),a=Array.from({length:s},()=>[]),l=new Array(s).fill(0);for(let d of t){if(d.dangling)continue;let m=o.get(d.from),u=o.get(d.to);m===void 0||u===void 0||m===u||(a[m].push([u,d.weight]),l[m]+=d.weight)}let c=new Array(s).fill(1/s);for(let d=0;d<100;d++){let m=0;for(let g=0;gr.set(d,c[m])),r}function Fd(e,t){let n=new Map;for(let h of e)n.set(h,0);let r=e.length;if(r<3)return n;let s=new Map(e.map((h,y)=>[h,y])),o=Array.from({length:r},()=>new Set);for(let h of t){if(h.dangling)continue;let y=s.get(h.from),S=s.get(h.to);y===void 0||S===void 0||y===S||(o[y].add(S),o[S].add(y))}let a=o.map(h=>[...h].sort((y,S)=>y-S)),l=new Float64Array(r),c=[],d=[],m=Array.from({length:r},()=>[]),u=new Float64Array(r),f=new Int32Array(r).fill(-1),p=new Float64Array(r);for(let h=0;h=0;y--){let S=c[y];for(let _ of m[S])p[_]+=u[_]/u[S]*(1+p[S]);S!==h&&(l[S]+=p[S])}}let g=(r-1)*(r-2)/2;return e.forEach((h,y)=>n.set(h,l[y]/2/g)),n}function ea(e){let t=[],n=e.modules.length;if(n>0){let s=e.modules.map(a=>a.id),o=hr(s,e.moduleEdges);for(let a of e.modules)a.pagerank=Number(((o.get(a.id)??0)*n).toFixed(4));if(n>3e3)t.push(`betweenness skipped (${n} modules > 3000)`);else{let a=Fd(s,e.moduleEdges);for(let l of e.modules)l.betweenness=Number((a.get(l.id)??0).toFixed(6))}}let r=e.files.length;if(r>0){let s=e.files.map(a=>a.id),o=hr(s,e.fileEdges);for(let a of e.files)a.pagerank=Number(((o.get(a.id)??0)*r).toFixed(4))}return t}var Js=O(()=>{"use strict";E()});function Ks(e){return 1+(e.match(g_)??[]).length}function yr(e,t,n=50){let r=[];for(let s of e.files){if(s.kind!=="code"||t&&s.rel!==t||!s.symbols.length)continue;let o=q(I(e.root,s.rel)).split(` -`);for(let a of s.symbols){if(a.kind==="reexport"||a.kind==="reexport-all")continue;let l=a.endLine??a.line,c=o.slice(a.line-1,l).join(` -`),d={file:s.rel,name:a.name,line:a.line,complexity:Ks(c)};a.endLine!==void 0&&(d.endLine=a.endLine),r.push(d)}}return r.sort((s,o)=>o.complexity-s.complexity||M(s.file,o.file)||s.line-o.line),r.slice(0,n)}function br(e,t,n=20){let r=Od(e),s=e.files.filter(o=>o.kind==="code").map(o=>{let a=r.get(o.rel),l=t.get(o.rel)??0;return{file:o.rel,complexity:a,commits:l,score:(l+1)*a}});return s.sort((o,a)=>a.score-o.score||M(o.file,a.file)),s.slice(0,n)}var g_,wr=O(()=>{"use strict";E();ae();pt();Ne();Y();g_=/\b(if|elif|elsif|else\s+if|for|foreach|while|until|unless|case|when|match|catch|rescue|except)\b|&&|\|\||(?[n.rel,n]))}function $d(e){let t=Oe(e);if(!t.symbolsByName){let n=new Map;for(let r of e.files)for(let s of r.symbols){let o=n.get(s.name);o?o.push(s):n.set(s.name,[s])}t.symbolsByName=n}return t.symbolsByName}function na(e){let t=Oe(e);return t.resolveCtx??=Vo(e)}function en(e){let t=Oe(e);if(!t.importPairs){let n=na(e),r=new Set;for(let s of e.files)for(let o of s.refs){if(o.kind!=="import")continue;let a=lr(s.rel,s.ext,o.spec,n);a.kind==="resolved"&&a.target!==s.rel&&r.add(`${s.rel}|${a.target}`)}t.importPairs=r}return t.importPairs}function Dd(e,t,n){let r=ta.get(e);!r||r.resolveCtx!==t||r.importPairs||(r.importPairs=n)}function Zt(e){let t=Oe(e);return t.uniqueDefs??=sa(e)}function Xs(e){let t=Oe(e);return t.symbolRefs??=Yo(e)}function Bs(e){let t=Oe(e);if(t.docMentions)return t.docMentions;let n=Zt(e),r=new Map;if(n.size)for(let s of e.files){if(s.kind!=="doc")continue;let o=e.docText.get(s.rel),a=o??q(I(e.root,s.rel));if(!a)continue;let l=new Map;for(let c of a.split(/[^A-Za-z0-9_]+/))n.has(c)&&l.set(c,(l.get(c)??0)+1);r.set(s.rel,{counts:l,retained:o!==void 0})}return t.docMentions=r}function Ld(e){let t=Oe(e);if(t.identSets)return t.identSets;let n=new Map;for(let r of e.files)r.kind==="code"&&r.idents?.length&&n.set(r.rel,new Set(r.idents));return t.identSets=n}function Cn(e){let t=Oe(e);return t.callerIndex??=Yt(e,en(e))}function ra(e){let t=Oe(e);return t.hierarchy??=En(e,en(e))}function jd(e){let t=Oe(e);return t.symbolGraph??=mr(e,en(e))}function Ad(e){let t=Oe(e);return(t.bm25??={docs:Vs(e)}).docs}function Td(e){let t=Oe(e),n=t.bm25??={docs:Vs(e)};return n.trigrams??=Md(n.docs)}function Id(e){let t=Oe(e);if(!t.importPagerank){let n=e.files.map(s=>s.rel),r=[];for(let s of en(e)){let o=s.indexOf("|");r.push({from:s.slice(0,o),to:s.slice(o+1),kind:"import",weight:1})}t.importPagerank=hr(n,r)}return t.importPagerank}function Nd(e){let t=Oe(e),n=t.bm25??={docs:Vs(e)};return n.stems??=Rd(n.docs)}function Od(e){let t=Oe(e);if(!t.fileComplexity){let n=new Map;for(let r of e.files)r.kind==="code"&&n.set(r.rel,Ks(q(I(e.root,r.rel))));t.fileComplexity=n}return t.fileComplexity}var ta,pt=O(()=>{"use strict";E();ae();Ds();Zs();ur();Qt();Xt();gr();Mn();Js();wr();Ne();ta=new WeakMap});function __(e){return e.length<5?!1:/[a-z][A-Z]/.test(e)||/[A-Z]{2}/.test(e)||e.includes("_")||/\d/.test(e)}function sa(e){let t=new Map;for(let r of e.files)for(let s of r.symbols){if(!s.exported||h_.has(s.kind)||!__(s.name))continue;let o=t.get(s.name);o||t.set(s.name,o=new Set),o.add(r.rel)}let n=new Map;for(let[r,s]of t)s.size===1&&n.set(r,[...s][0]);return n}function Lt(e,t){let n=y_(t.from,t.to,t.kind),r=e.get(n);if(r){r.weight+=t.weight;return}e.set(n,{...t})}function oa(e,t,n,r,s){let o=new Map,a=new Set;for(let w of e.files)for(let v of w.refs)if(v.kind==="doc-link"){let A=Jo(w.rel,v.spec,t);if(A.kind==="external")continue;A.kind==="dangling"?Lt(o,{from:w.rel,to:v.spec,kind:"doc-link",weight:1,dangling:!0,reason:A.reason}):A.target!==w.rel&&Lt(o,{from:w.rel,to:A.target,kind:"doc-link",weight:1})}else{let A=lr(w.rel,w.ext,v.spec,t);if(A.kind==="external")continue;A.kind==="dangling"?Lt(o,{from:w.rel,to:v.spec,kind:"import",weight:1,dangling:!0,reason:A.reason}):A.target!==w.rel&&(Lt(o,{from:w.rel,to:A.target,kind:"import",weight:1}),a.add(`${w.rel}|${A.target}`))}let l=new Set;for(let w of Xo(e,a))Lt(o,w),l.add(`${w.from}|${w.to}`);for(let w of Zo(e,a))Lt(o,w),l.add(`${w.from}|${w.to}`);Dd(e,t,a);let c=Zt(e);if(c.size)for(let w of e.files){if(w.kind!=="code"||!w.idents?.length)continue;let v=new Map;for(let A of w.idents){let F=c.get(A);!F||F===w.rel||v.set(F,(v.get(F)??0)+1)}for(let[A,F]of v){let T=`${w.rel}|${A}`;a.has(T)||l.has(T)||Lt(o,{from:w.rel,to:A,kind:"use",weight:Math.min(F,5)})}}if(c.size)for(let[w,{counts:v}]of Bs(e))for(let[A,F]of v){let T=c.get(A);T!==w&&Lt(o,{from:w,to:T,kind:"mention",weight:Math.min(F,5)})}let d=[...o.values()].sort((w,v)=>M(w.from,v.from)||M(w.to,v.to)||M(w.kind,v.kind)),m=new Map,u=new Map,f=new Set(e.files.map(w=>w.rel));for(let w of d)w.dangling||!f.has(w.to)||(u.set(w.from,(u.get(w.from)??0)+1),m.set(w.to,(m.get(w.to)??0)+1));let p={import:7,extends:6,implements:5,call:4,use:3,"doc-link":2,mention:1,contains:0},g=new Map;for(let w of d){if(w.dangling||!f.has(w.to))continue;let v=r.get(w.from),A=r.get(w.to);if(!v||!A||v===A)continue;let F=`${v}${ia}${A}`,T=g.get(F);T?(T.weight+=w.weight,(p[w.kind]??0)>(p[T.kind]??0)&&(T.kind=w.kind)):g.set(F,{from:v,to:A,kind:w.kind,weight:w.weight})}let h=[...g.values()].sort((w,v)=>M(w.from,v.from)||M(w.to,v.to)),y=new Map,S=new Map;for(let w of h)S.set(w.from,(S.get(w.from)??0)+1),y.set(w.to,(y.get(w.to)??0)+1);let _=e.files.map(w=>({id:w.rel,kind:"file",rel:w.rel,fileKind:w.kind,lang:w.lang,module:r.get(w.rel)??"root",title:w.title,summary:w.summary,symbols:w.symbols.length,lines:w.lines,degIn:m.get(w.rel)??0,degOut:u.get(w.rel)??0})).sort((w,v)=>M(w.rel,v.rel)),k=new Map;for(let w of e.files){let v=r.get(w.rel)??"root";k.set(v,(k.get(v)??0)+w.symbols.length)}let b=n.map(w=>({id:w.slug,kind:"module",slug:w.slug,path:w.path,title:w.title,summary:w.summary,tier:w.tier,members:w.members,symbols:k.get(w.slug)??0,degIn:y.get(w.slug)??0,degOut:S.get(w.slug)??0})).sort((w,v)=>M(w.slug,v.slug));return{schemaVersion:s?.schemaVersion??5,version:s?.version??fe,commit:e.commit,fileCount:e.files.length,languages:e.languages,files:_,modules:b,fileEdges:d,moduleEdges:h}}var h_,ia,y_,Zs=O(()=>{"use strict";E();Xe();Ds();kn();Xt();pt();Y();h_=new Set(["reexport","reexport-all","default"]);ia="\0",y_=(e,t,n)=>`${e}${ia}${t}${ia}${n}`});function*b_(e){for(let t of e.files)yield*t.symbols}function la(e,t){let n=Pd(e).get(t);return n?[...n.symbols].filter(r=>!aa.has(r.kind)).sort((r,s)=>r.line-s.line||M(r.name,s.name)):[]}function An(e,t,n={}){let r=t.split("/").filter(Boolean);if(!r.length)return[];let s=r[r.length-1],o=r.slice(0,-1),a=(m,u)=>n.substring?m.toLowerCase().includes(u.toLowerCase()):m===u,l=[],c=n.substring?b_(e):$d(e).get(s)??[];for(let m of c)if(!aa.has(m.kind)&&a(m.name,s)){if(o.length){let u=o[o.length-1];if(!m.parent||m.parent!==u)continue}l.push({...m})}l.sort((m,u)=>+(u.name===s)-+(m.name===s)||M(m.file,u.file)||m.line-u.line);let d=l.slice(0,n.maxResults??50);if(n.includeBody){let m=new Map,u=new Set;for(let f of d){let p=f.endLine??f.line;if(u.has(f.file))continue;let g=m.get(f.file);if(!g){let h=q(I(e.root,f.file));if(!h){u.add(f.file);continue}g=h.split(` +`,c=new Map,d=0,m=()=>{let f=e.length-d;if(f<=0)return[];let p=Math.max(eg,Math.ceil(f/(a*Qp))),g=e.slice(d,d+p);return d+=g.length,g},u=[];try{return await Promise.all(Array.from({length:a},()=>new Promise((f,p)=>{let g=new $s(l,{eval:!0,workerData:{input:{jobs:[],grammarKeys:o,maxCallsPerFile:s.maxCallsPerFile}}});u.push(g);let h=!1,y,S=()=>{y&&clearTimeout(y),y=setTimeout(()=>{_(()=>p(new Error("extraction worker timed out"))),g.terminate()},Xp)},_=w=>{y&&clearTimeout(y),h=!0,w()};S();let k=0,b=()=>{let w=m();return w.length===0?!1:(k++,g.postMessage({jobs:w}),!0)};g.on("message",w=>{if(!h){if("error"in w){_(()=>p(new Error(w.error))),g.terminate();return}if(w.ready.slice().sort().join(",")!==o.join(",")){_(()=>p(new Error("extraction worker grammar tier mismatch"))),g.terminate();return}for(let v of w.records)c.set(v.rel,{size:v.size,mtimeMs:v.mtimeMs,record:v.record});if(k===0?b():k--,b(),k===0){_(()=>f()),g.postMessage({done:!0}),g.terminate();return}S()}}),g.once("error",w=>_(()=>p(w))),g.once("exit",w=>{!h&&w!==0&&_(()=>p(new Error(`extraction worker exited with ${w}`)))})}))),c}catch{for(let f of u)f.terminate();return}}async function ut(e,t={}){let n=fd(t.workers);if(n<2)return Le(e,t);let s=t.precomputedWalk??Pe(e,{maxFileBytes:t.maxBytes,maxFiles:t.maxFiles,gitignore:t.gitignore,ignoreDirs:t.ignoreDirs}),r={...t,precomputedWalk:s},o=[];for(let{f:d}of Lo(e,r)){let m=t.cache?.get(d.rel);!t.fullHash&&m&&m.size!==void 0&&m.mtimeMs!==void 0&&m.size===d.size&&m.mtimeMs===d.mtimeMs||o.push({abs:d.abs,rel:d.rel,ext:d.ext})}if(o.length===0)return Le(e,r);if(!(t.workers!==void 0||(R.env.CODEINDEX_WORKERS??"")!=="")&&o.lengthd.ext)),c=await md(o,l,n,{maxCallsPerFile:t.maxCallsPerFile});return Le(e,c?{...r,extracted:c}:r)}var Xp,Zp,Qp,eg,or=O(()=>{"use strict";E();Se();ao();ae();Es();ud();Tt();Fe();bn();nt();Pt();Xp=600*1e3,Zp=200;Qp=4,eg=4});function je(e){let t=new Map;for(let n of e.files)t.set(n.rel,{hash:n.hash,record:n,size:n.size,mtimeMs:e.mtimes.get(n.rel)});return t}function jo(e,t,n=!1){let s=e.files.filter(r=>qn(r.rel,r.ext)==="code");return n&&s.length>0||s.some(r=>{let o=t.get(r.rel);return!o||o.size!==r.size||o.mtimeMs!==r.mtimeMs})}function Wo(e,t=ft){let n;try{n=JSON.parse(Q(I(e,t,"cache.json"),"utf8"))}catch{return}if(!(!n||n.schemaVersion!==5||n.extractorVersion!==14||!n.files))return{cacheMap:new Map(Object.entries(n.files)),meta:{engineVersion:n.engineVersion,commit:n.commit,graphSha1:n.graphSha1,symbolsSha1:n.symbolsSha1}}}function Uo(e,t,n,s=ft){if(!t.contentUnchanged||n.engineVersion!==fe||n.commit!==t.commit||n.graphSha1===void 0||n.symbolsSha1===void 0)return;let r=I(e,s),o,a;try{o=Q(I(r,"graph.json")),a=Q(I(r,"symbols.json"))}catch{return}if(!(Ce(o)!==n.graphSha1||Ce(a)!==n.symbolsSha1))try{let l=JSON.parse(o.toString("utf8")),c=JSON.parse(a.toString("utf8"));return l.schemaVersion!==5||c.schemaVersion!==5?void 0:{scan:t,graph:l,symbols:c}}catch{return}}function Bo(e,t,n=ft){let s=Wo(e,n);if(!s)return;let r=Le(e,{...t,cache:s.cacheMap});return{scan:r,cacheMap:je(r),arts:Uo(e,r,s.meta,n)}}async function Ds(e,t,n,s=ft){let r=Wo(e,s);if(!r)return;let o=t.precomputedWalk??Pe(e,{maxFileBytes:t.maxBytes,maxFiles:t.maxFiles,gitignore:t.gitignore,ignoreDirs:t.ignoreDirs});jo(o,r.cacheMap,t.fullHash)&&await n();let l=await ut(e,{...t,cache:r.cacheMap,precomputedWalk:o}),c=!1,d;return{scan:l,cacheMap:je(l),loadArtifacts:()=>(c||(c=!0,d=Uo(e,l,r.meta,s)),d)}}var ft,ar=O(()=>{"use strict";E();Se();ae();Xe();Pt();or();Tt();Fe();ws();ft=".codeindex"});function kd(e,t,n){let s=e.dirFilesMemo??=new Map,r=n+"\0"+t,o=s.get(r);return o||s.set(r,o=(e.filesByDir.get(t)??[]).filter(a=>a.endsWith(n)).sort()),o}function Rg(e){let t=ke(e).split("/").filter(r=>r!=="."),n=[],s=0;for(;st?1:0)}function Vo(e){let t="",n=!1;for(let r=0;r=Ag)){if(typeof e=="string")t.includes(e)||t.push(e);else if(Array.isArray(e))for(let n of e)Jo(n,t);else if(e!==null&&typeof e=="object"){let n=Object.keys(e).sort((s,r)=>Sd(s)-Sd(r)||(sr?1:0));for(let s of n)Jo(e[s],t)}}}function Tg(e){if(e==null)return[];let t=[],n=(s,r)=>{let o=[];Jo(r,o),o.length&&t.push({key:s,star:s.includes("*"),targets:o})};if(typeof e=="string"||Array.isArray(e))n(".",e);else if(typeof e=="object"){let s=Object.keys(e);if(s.every(r=>r==="."||r.startsWith("./")))for(let r of s)n(r,e[r]);else n(".",e)}return t.sort((s,r)=>Number(s.star)-Number(r.star)||r.key.length-s.key.length||(s.key{let o=/^\s*([^\s=]+)(?:\s+v\S+)?\s*=>\s*(\S+)(?:\s+v\S+)?\s*$/.exec(r);if(!o)return;let a=o[2];if(!/^\.\.?\//.test(a))return;let l=ke($.join(t,a));l.startsWith("..")||n.push({from:o[1],toDir:l})};for(let r of e.matchAll(/^[ \t]*replace[ \t]+([^(\r\n][^\r\n]*)$/gm))s(r[1]);for(let r of e.matchAll(/^[ \t]*replace[ \t]*\(([\s\S]*?)\)/gm))for(let o of r[1].split(/\r?\n/))s(o);return n}function Ko(e){let t=new Set(e.files.map(h=>h.rel)),n=new Map,s=new Set;for(let h of e.files){let y=h.rel.includes("/")?$.dirname(h.rel):"",S=n.get(y);S||n.set(y,S=[]),S.push(h.rel);let _=y;for(;_&&!s.has(_);)s.add(_),_=_.includes("/")?$.dirname(_):""}let r=[],o=[];for(let h of t){let y=h.slice(h.lastIndexOf("/")+1);if(y!=="tsconfig.json"&&y!=="jsconfig.json"&&!(h==="tsconfig.base.json"))continue;let _=h.includes("/")?$.dirname(h):"",k=Ed(e.root,t,h,r,new Set);if(!k?.paths)continue;let b=[];for(let[v,A]of Object.entries(k.paths)){if(!Array.isArray(A))continue;let N=v.endsWith("*");b.push({prefix:N?v.slice(0,-1):v,star:N,targets:A})}if(!b.length)continue;let w=k.baseUrl!==void 0?ke($.join(k.baseUrlDir,k.baseUrl)).replace(/^\.$/,""):k.pathsDir;o.push({dir:_,baseUrl:w,paths:b})}o.sort((h,y)=>y.dir.length-h.dir.length);let a=[];for(let h of t){if(h!=="go.mod"&&!h.endsWith("/go.mod"))continue;let y=G(I(e.root,h)),S=/^\s*module\s+(\S+)/m.exec(y);if(!S)continue;let _=h.includes("/")?$.dirname(h):"";a.push({module:S[1],dir:_,replaces:Ig(y,_)})}a.sort((h,y)=>y.dir.length-h.dir.length||(h.diry.dir.length-h.dir.length||(h.dirtypeof _=="string");m.push({name:y.name,dir:h.includes("/")?$.dirname(h):"",exportEntries:Tg(y.exports),mainCandidates:S})}m.sort((h,y)=>y.name.length-h.name.length);let u=new Set([""]);for(let h of s){let y=h.slice(h.lastIndexOf("/")+1);(y==="include"||y==="inc"||y==="src")&&u.add(h)}let f=new Set([""]);for(let h of s)h.slice(h.lastIndexOf("/")+1)==="lib"&&f.add(h);let p=[];for(let h of t){if(h!=="composer.json"&&!h.endsWith("/composer.json"))continue;let y=Vo(G(I(e.root,h)));if(!y){r.push(`unparseable ${h} \u2014 skipped for PHP PSR-4 resolution`);continue}let S=h.includes("/")?$.dirname(h):"";for(let _ of[y.autoload?.["psr-4"],y["autoload-dev"]?.["psr-4"]])if(_)for(let[k,b]of Object.entries(_))for(let w of Array.isArray(b)?b:[b])typeof w=="string"&&p.push({prefix:k.replace(/\\+$/,""),dir:ke($.join(S,w)).replace(/^\.$/,"")})}p.sort((h,y)=>y.prefix.length-h.prefix.length);let g=new Map;for(let h of e.files){if(h.ext!==".cs"||!h.pkg)continue;let y=g.get(h.pkg);y||g.set(h.pkg,y=[]),y.push(h.rel)}for(let h of g.values())h.sort(M);return{fileSet:t,dirSet:s,filesByDir:n,tsConfigs:o,goModules:a,rustCrates:l,javaRoots:[...c].sort(qo),pyRoots:[...d],workspacePackages:m,cIncludeRoots:[...u].sort(qo),rubyLibRoots:[...f].sort(qo),phpPsr4:p,csharpNamespaces:g,warnings:r}}function mt(e,t){for(let n of t){let s=ke(n);if(s&&!s.startsWith("..")&&e.fileSet.has(s))return s}}function Xo(e,t,n){let s=t.split("#")[0].split("?")[0];if(!s)return{kind:"external"};if(s.startsWith("//")||/^[a-z][a-z0-9+.-]*:/i.test(s))return{kind:"external"};let r=e.includes("/")?$.dirname(e):"",o=ke($.join(r,s));if(o.startsWith(".."))return{kind:"dangling",reason:"escapes-repo-root"};let a=mt(n,[o,o+".md",o+".mdx",$.join(o,"README.md"),$.join(o,"readme.md"),$.join(o,"index.md"),$.join(o,"index.mdx")]);return a?{kind:"resolved",target:a}:n.dirSet.has(o)?{kind:"external"}:{kind:"dangling",reason:"missing-target"}}function Fg(e,t,n){let s=a=>mt(n,[...bg.map(l=>a+l),...wg.map(l=>$.join(a,l))]),r=a=>{let l=s(a);if(l)return l;let c=a.replace(/\.(js|jsx|mjs|cjs)$/,"");return c!==a?s(c):void 0};if(t.startsWith(".")){let a=e.includes("/")?$.dirname(e):"",l=ke($.join(a,t));if(l.startsWith(".."))return{kind:"dangling",reason:"escapes-repo-root"};let c=r(l);return c?{kind:"resolved",target:c}:{kind:"dangling",reason:"missing-module"}}let o;for(let a of n.tsConfigs){if(a.dir&&e!==a.dir&&!e.startsWith(a.dir+"/"))continue;let l=!1;for(let c of a.paths){if(!(c.star?t.startsWith(c.prefix):t===c.prefix))continue;l=!0;let d=c.star?t.slice(c.prefix.length):"",m=!1;for(let u of c.targets){let f=c.star?u.replace(/\*/,d):u,p=ke($.join(a.baseUrl,f)),g=r(p);if(g)return{kind:"resolved",target:g};let h=p.includes("/")?$.dirname(p):"";(n.dirSet.has(h)||n.fileSet.has(p))&&(m=!0)}o=m?{kind:"dangling",reason:"alias-unresolved"}:{kind:"external"};break}if(l)break}for(let a of n.workspacePackages){if(t!==a.name&&!t.startsWith(a.name+"/"))continue;let l=t.slice(a.name.length).replace(/^\//,""),c=u=>{for(let f of[u,...Rg(u)]){let p=r(ke($.join(a.dir,f)));if(p)return p}},d=l?"./"+l:".";for(let u of a.exportEntries){let f;if(u.star){let p=u.key.indexOf("*"),g=u.key.slice(0,p),h=u.key.slice(p+1);if(!d.startsWith(g)||!d.endsWith(h)||d.length{let a=o?o.replace(/\./g,"/"):"",l=ke($.join(r,a));return mt(n,[l+".py",l+".pyi",$.join(l,"__init__.py")])};if(t.startsWith(".")){let r=/^\.+/.exec(t)[0].length,o=t.slice(r),l=e.includes("/")?$.dirname(e):"";for(let d=1;d{let l=ke(a).replace(/^\.$/,""),c=kd(n,l,".go");return c.length?{kind:"resolved",target:c[0]}:{kind:"dangling",reason:"missing-package"}},r=n.goModules.find(a=>!a.dir||e===a.dir||e.startsWith(a.dir+"/"));if(r)for(let a of r.replaces){if(t!==a.from&&!t.startsWith(a.from+"/"))continue;let l=t.slice(a.from.length).replace(/^\//,"");return s($.join(a.toDir,l))}let o=r?[r,...n.goModules.filter(a=>a!==r)]:n.goModules;for(let a of o){if(t!==a.module&&!t.startsWith(a.module+"/"))continue;let l=t.slice(a.module.length).replace(/^\//,"");return s($.join(a.dir,l))}return{kind:"external"}}function Pg(e,t,n){if(!n.rustCrates.length)return{kind:"external"};let s=(_,k)=>mt(n,[$.join(_,k+".rs"),$.join(_,k,"mod.rs")]),r=(_,k)=>{for(let b=k.length;b>=1;b--){let w=ke($.join(_,...k.slice(0,b-1))),v=s(w,k[b-1]);if(v)return v}},o=e.includes("/")?$.dirname(e):"",a=e.slice(e.lastIndexOf("/")+1).replace(/\.rs$/,""),l=a==="mod"||a==="lib"||a==="main",c=l?o:$.join(o,a);if(t.startsWith("mod ")){let _=t.slice(4),k=s(c,_)??(l?void 0:s(o,_));return k?{kind:"resolved",target:k}:{kind:"dangling",reason:"missing-module"}}let d=t.split("::").map(_=>_.trim()).filter(Boolean);if(!d.length)return{kind:"external"};let m=d[0],u=n.rustCrates.find(_=>!_.dir||e===_.dir||e.startsWith(_.dir+"/")),f,p=[];if(m==="crate"&&u)f=u.srcDir,p=d.slice(1);else if(m==="self")f=c,p=d.slice(1);else if(m==="super"){let _=l?o.includes("/")?$.dirname(o):"":o,k=1;for(;kk.name===m);if(_){let k=r(_.srcDir,d.slice(1));if(k)return{kind:"resolved",target:k};if(_.rootFile)return{kind:"resolved",target:_.rootFile}}return{kind:"external"}}if(!p.length)return{kind:"external"};let g=r(f,p);if(g)return{kind:"resolved",target:g};if(u&&f===u.srcDir&&u.rootFile)return{kind:"resolved",target:u.rootFile};let h=f.includes("/")?$.dirname(f):"",y=f.slice(f.lastIndexOf("/")+1),S=y?s(h,y):void 0;return S&&S!==e?{kind:"resolved",target:S}:{kind:"external"}}function $g(e,t){if(!t.javaRoots.length)return{kind:"external"};let n=o=>{for(let a of t.javaRoots){let l=ke($.join(a,o));if(l.endsWith("/*")||l==="*"){let c=l==="*"?"":l.slice(0,-2),d=kd(t,c,".java");if(d.length)return d[0];continue}if(t.fileSet.has(l+".java"))return l+".java"}},s=e.replace(/\./g,"/"),r=n(s);if(!r&&!e.endsWith(".*")){let o=s.split("/");for(let a=o.length-1;a>=2&&!r;a--)r=n(o.slice(0,a).join("/"))}return r?{kind:"resolved",target:r}:{kind:"external"}}function Dg(e,t,n){let s=e.includes("/")?$.dirname(e):"",r=mt(n,[$.join(s,t),...n.cIncludeRoots.map(o=>$.join(o,t))]);return r?{kind:"resolved",target:r}:{kind:"dangling",reason:"missing-include"}}function Lg(e,t,n){if(t.startsWith(".")){let s=e.includes("/")?$.dirname(e):"",r=ke($.join(s,t)),o=mt(n,[r+".rb",$.join(r,"index.rb")]);return o?{kind:"resolved",target:o}:{kind:"dangling",reason:"missing-module"}}for(let s of n.rubyLibRoots){let r=mt(n,[$.join(s,t+".rb")]);if(r)return{kind:"resolved",target:r}}return{kind:"external"}}function jg(e,t,n){if(t.startsWith(".")){let r=e.includes("/")?$.dirname(e):"",o=ke($.join(r,t)),a=mt(n,[o,o+".php"]);return a?{kind:"resolved",target:a}:{kind:"dangling",reason:"missing-module"}}let s=t.replace(/^\\+/,"");for(let{prefix:r,dir:o}of n.phpPsr4){if(r&&s!==r&&!s.startsWith(r+"\\"))continue;let a=r?s.slice(r.length).replace(/^\\+/,""):s,l=mt(n,[$.join(o,a.replace(/\\/g,"/"))+".php"]);if(l)return{kind:"resolved",target:l}}return{kind:"external"}}function Wg(e,t){let n=t.csharpNamespaces.get(e);if(n?.length)return{kind:"resolved",target:n[0]};let s;for(let[r,o]of t.csharpNamespaces)if(r===e||r.startsWith(e+".")){let a=o[0];(s===void 0||M(a,s)<0)&&(s=a)}return s?{kind:"resolved",target:s}:{kind:"external"}}function cr(e,t,n,s){let r=n.lastIndexOf(".");if(r!==-1&&yg.has(n.slice(r).toLowerCase().replace(/[?#].*$/,"")))return{kind:"external"};if(xg.has(t)||Sg.has(t)){let a=(e.includes("/")?$.dirname(e):"")+"\0"+n,l=s.jsMemo??=new Map,c=l.get(a);return c||l.set(a,c=Fg(e,n,s)),{...c}}return kg.has(t)?Ng(e,n,s):t===".go"?Og(e,n,s):t===".rs"?Pg(e,n,s):t===".java"?$g(n,s):Eg.has(t)?Dg(e,n,s):t===".rb"||t===".rake"?Lg(e,n,s):t===".php"?jg(e,n,s):t===".cs"?Wg(n,s):{kind:"external"}}var yg,bg,wg,xg,Sg,kg,Eg,vg,Go,Ag,js=O(()=>{"use strict";E();ae();ae();Fe();Y();yg=new Set([".svg",".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".icns",".pdf",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".mov",".avi",".webm",".wav",".flac",".ogg",".map"]),bg=["",".ts",".tsx",".d.ts",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".svelte",".astro",".html",".htm"],wg=["index.ts","index.tsx","index.js","index.jsx","index.mjs","index.cjs"],xg=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]),Sg=new Set([".vue",".svelte",".astro",".html",".htm"]),kg=new Set([".py",".pyi"]),Eg=new Set([".c",".h",".cc",".cpp",".cxx",".hpp",".hh"]),vg=new Set(["dist","build","lib","out","output","esm","cjs","umd"]);Go=["source","ts","import","module","require","node","default"],Ag=8});function Us(e){return Hg.test(e.split("/").pop())}function qg(e){return e.includes("/")?$.dirname(e):Ws}function vd(e){return e===Ws?0:Bg.test(e)||zg.test(e)?2:Ug.test(e)?0:null}function Gg(e,t){let n=vd(e);return n!==null?n:t.every(s=>s.kind==="doc"||s.kind==="config"||Us(s.rel))?2:1}function Vg(e,t){let n=t.find(a=>/^(readme|index)\.(md|mdx)$/i.test(a.rel.split("/").pop()));if(n?.summary)return n.summary;if(n?.title)return n.title;let s=t.filter(a=>a.summary).sort((a,l)=>(l.summary?.length??0)-(a.summary?.length??0));if(s[0]?.summary)return s[0].summary;let r=[...new Set(t.map(a=>a.lang))].filter(a=>a!=="other"),o=e===Ws?"the repository root":`\`${e}/\``;return`${t.length} file(s) in ${o}${r.length?` (${r.slice(0,3).join(", ")})`:""}.`}function Zo(e){let t=new Map;for(let c of e.files){let d=qg(c.rel),m=t.get(d);m||t.set(d,m=[]),m.push(c)}let n=[...t.keys()].sort(M),s=new Map,r=new Map;for(let c of n){let d=c===Ws?"root":Ui(c);s.set(c,d),r.set(d,(r.get(d)??0)+1)}let o=c=>{let d=s.get(c);return d&&r.get(d)===1?d:`${d||"module"}-${Ce(c).slice(0,8)}`},a=[],l=new Map;for(let c of n){let d=t.get(c).slice().sort((f,p)=>M(f.rel,p.rel)),m=o(c),u={slug:m,path:c,title:c,tier:Gg(c,d),members:d.map(f=>f.rel),summary:Vg(c,d)};a.push(u);for(let f of d)l.set(f.rel,m)}return a.sort((c,d)=>M(c.slug,d.slug)),{modules:a,moduleOf:l}}var Ws,Ug,Bg,zg,Hg,Bs=O(()=>{"use strict";E();ae();Ae();Tt();Y();Ws="(root)",Ug=/(^|\/)(types?|util|utils|lib|libs|common|core|config|configs|constants|shared|helpers|internal)$/i,Bg=/(^|\/)(tests?|__tests?__|__mocks?__|__snapshots?__|spec|specs|e2e|examples?|example|benchmark|benchmarks|fixtures?|docs?|documentation|\.github)(\/|$)/i,zg=/(^|\/)(scripts?|bin|\.storybook)$/i,Hg=/\.(test|spec|e2e|stories|story)\.[cm]?[jt]sx?$/i});function st(e){return e==="typescript"||e==="javascript"?"js":e==="c"||e==="cpp"?"c":e}function Kg(e,t){let n=e.split("/"),s=t.split("/"),r=0;for(;rs?(s=a,n=o,r=!1):a===s&&(r=!0)}return r?void 0:n}function Yo(e,t){let n=new Map,s=new Set;for(let o of e.files)for(let a of o.symbols){if(!a.exported||Jg.has(a.kind))continue;let l=`${a.name} ${a.file}`;if(s.has(l))continue;s.add(l);let c=n.get(a.name);c||n.set(a.name,c=[]),c.push({file:a.file,lang:a.lang})}let r=new Map;for(let o of e.files){if(!o.calls?.length)continue;let a=st(o.lang),l=new Set(o.symbols.map(d=>d.name)),c=new Map;for(let d of o.calls)c.set(d.name,(c.get(d.name)??0)+1);for(let[d,m]of c){if(l.has(d))continue;let u=(n.get(d)??[]).filter(S=>st(S.lang)===a&&S.file!==o.rel);if(!u.length)continue;let f=u.filter(S=>t.has(`${o.rel}|${S.file}`)),p,g;if(a==="js"){if(!f.length)continue;p=rt(o.rel,f),g="extracted"}else f.length?(p=rt(o.rel,f),g="extracted"):(p=rt(o.rel,u),g="inferred");if(!p)continue;let h=`${o.rel}|${p.file}`,y=r.get(h);y?(y.weight+=m,g==="extracted"&&(y.confidence="extracted")):r.set(h,{from:o.rel,to:p.file,weight:m,confidence:g})}}return[...r.values()].map(o=>({from:o.from,to:o.to,kind:"call",weight:Math.min(o.weight,5),confidence:o.confidence})).sort((o,a)=>M(o.from,a.from)||M(o.to,a.to))}var Jg,En=O(()=>{"use strict";E();Y();Jg=new Set(["reexport","reexport-all","default"])});function Rd(e){let t=new Map,n=new Set;for(let s of e.files)for(let r of s.symbols){if(!Zg.has(r.kind))continue;let o=`${r.name} ${r.file}`;if(n.has(o))continue;n.add(o);let a=t.get(r.name);a||t.set(r.name,a=[]),a.push({name:r.name,file:r.file,kind:r.kind,lang:r.lang,line:r.line})}return t}function dr(e,t){let n=Rd(e),s=[];for(let r of e.files){if(!r.relations?.length)continue;let o=st(r.lang);for(let a of r.relations){let l=(n.get(a.to)??[]).filter(f=>st(f.lang)===o);if(!l.length)continue;let c=l.filter(f=>t.has(`${r.rel}|${f.file}`)||f.file===r.rel),d=c.length?c:l,m=rt(r.rel,d.map(f=>({file:f.file,lang:f.lang})));if(!m)continue;let u=d.find(f=>f.file===m.file);s.push({kind:Xg.has(u.kind)?"implements":a.kind,from:a.from,fromFile:r.rel,fromLine:a.line,to:u.name,toFile:u.file,toKind:u.kind})}}return s.sort((r,o)=>M(r.fromFile,o.fromFile)||M(r.from,o.from)||M(r.kind,o.kind)||M(r.to,o.to))}function Qo(e,t){let n=new Map;for(let s of dr(e,t)){if(s.toFile===s.fromFile)continue;let r=`${s.fromFile}${We}${s.toFile}${We}${s.kind}`,o=n.get(r);o?o.weight=Math.min(o.weight+1,5):n.set(r,{from:s.fromFile,to:s.toFile,kind:s.kind,weight:1})}return[...n.values()].sort((s,r)=>M(s.from,r.from)||M(s.to,r.to)||M(s.kind,r.kind))}function vn(e,t){let n=Rd(e),s=dr(e,t),r=new Map,o=(u,f)=>`${u}${We}${f}`;for(let u of n.values())for(let f of u)r.set(o(f.name,f.file),{name:f.name,file:f.file,line:f.line,kind:f.kind,extends:[],implements:[],extendedBy:[],implementedBy:[],unresolved:[]});let a=u=>({name:u.name,file:u.file,line:u.line,kind:u.kind});for(let u of s){let f=r.get(o(u.from,u.fromFile)),p=r.get(o(u.to,u.toFile));p&&(f?((u.kind==="extends"?f.extends:f.implements).push(a(p)),(u.kind==="extends"?p.extendedBy:p.implementedBy).push(a(f))):(u.kind==="extends"?p.extendedBy:p.implementedBy).push({name:u.from,file:u.fromFile,line:u.fromLine,kind:"unknown"}))}let l=new Set(s.map(u=>`${u.fromFile}${We}${u.from}${We}${u.kind}${We}${u.to}`));for(let u of e.files)for(let f of u.relations??[]){if(l.has(`${u.rel}${We}${f.from}${We}${f.kind}${We}${f.to}`))continue;let p=f.kind==="extends"?"implements":"extends";l.has(`${u.rel}${We}${f.from}${We}${p}${We}${f.to}`)||r.get(o(f.from,u.rel))?.unresolved.push({kind:f.kind,to:f.to})}let c=(u,f)=>M(u.name,f.name)||M(u.file,f.file),d=new Map,m=[...r.keys()].sort(M);for(let u of m){let f=r.get(u);f.extends.sort(c),f.implements.sort(c),f.extendedBy.sort(c),f.implementedBy.sort(c),f.unresolved.sort((p,g)=>M(p.kind,g.kind)||M(p.to,g.to)),d.has(f.name)?d.set(`${f.name}@${f.file}`,f):d.set(f.name,f)}return d}function ur(e,t){let n=e.get(t);if(!n)return[];let s=new Set([`${n.name}${We}${n.file}`]),r=[],o=[n];for(;o.length;){let a=[];for(let l of o)for(let c of[...l.implementedBy,...l.extendedBy]){let d=`${c.name}${We}${c.file}`;if(s.has(d))continue;s.add(d),r.push(c);let m=e.get(c.name)??e.get(`${c.name}@${c.file}`);m&&m.file===c.file&&a.push(m)}o=a}return r.sort((a,l)=>M(a.name,l.name)||M(a.file,l.file))}function Yg(e,t){return e.get(t)}var We,Xg,Zg,Xt=O(()=>{"use strict";E();En();Y();We="\0",Xg=new Set(["interface","trait","protocol"]),Zg=new Set(["class","interface","trait","struct","type","enum","record","object","protocol","module","mod","union","annotation"])});function ea(e){let t=Zt(e),n=new Map;if(!t.size)return n;let s=(o,a)=>{let l=n.get(o);l||n.set(o,l=new Set),l.add(a)},r=Hs(e);for(let o of e.files)if(o.kind==="code"&&o.idents)for(let a of o.idents){let l=t.get(a);l&&l!==o.rel&&s(a,o.rel)}else if(o.kind==="doc"){let a=r.get(o.rel);if(!a||!a.retained)continue;for(let l of a.counts.keys()){let c=t.get(l);c&&c!==o.rel&&s(l,o.rel)}}return n}function ta(e,t=new Map,n=5){let s=new Map;for(let a of e.files)for(let l of a.symbols){let c=s.get(l.name);c||s.set(l.name,c=[]),c.push({file:l.file,line:l.line,...l.endLine!==void 0?{endLine:l.endLine}:{},kind:l.kind,exported:l.exported,lang:l.lang,...l.parent?{parent:l.parent}:{}})}let r={};for(let a of[...s.keys()].sort(M))r[a]=s.get(a).slice().sort((l,c)=>M(l.file,c.file)||l.line-c.line||M(l.kind,c.kind));let o={};for(let a of[...t.keys()].sort(M)){let l=[...t.get(a)].sort(M);l.length&&(o[a]=l)}return{schemaVersion:n,defs:r,refs:o}}function zs(e){return JSON.stringify(e,null,2)+` +`}var fr=O(()=>{"use strict";E();Xe();Y();pt()});function mr(e){return new Set(en(e))}function Yt(e,t,n={}){let s=t??en(e),r=n.recall===!0,o=new Map;for(let f of e.files){let p=new Set;for(let g of f.symbols){if(!g.exported||qs.has(g.kind)||p.has(g.name))continue;p.add(g.name);let h=o.get(g.name);h||o.set(g.name,h=[]),h.push(g)}}let a=new Map;for(let[f,p]of o){let g=new Map;for(let h of p){let y=st(h.lang),S=g.get(y);S||g.set(y,S=[]),S.push(h)}a.set(f,g)}let l=new Map;for(let f of e.files){let p=new Map;for(let g of f.symbols)!qs.has(g.kind)&&!p.has(g.name)&&p.set(g.name,g);l.set(f.rel,p)}let c=new Map,d=(f,p)=>{let g=c.get(f.name+"\0"+f.file);g||c.set(f.name+"\0"+f.file,g={def:f,callers:[]}),g.callers.push(p)};for(let f of e.files){if(!f.calls?.length)continue;let p=st(f.lang),g=l.get(f.rel);for(let h of f.calls){let y=g.get(h.name);if(y){y.line!==h.line&&d(y,r?{file:f.rel,line:h.line,confidence:"corroborated"}:{file:f.rel,line:h.line});continue}let S=(a.get(h.name)?.get(p)??[]).filter(w=>w.file!==f.rel);if(!S.length)continue;let _=S.filter(w=>s.has(`${f.rel}|${w.file}`)),k=p==="js"?_.length?rt(f.rel,_):r&&S.length===1?S[0]:void 0:_.length?rt(f.rel,_):rt(f.rel,S);if(!k)continue;d(k,r?{file:f.rel,line:h.line,confidence:_.length?"corroborated":"unique-name"}:{file:f.rel,line:h.line})}}let m=new Map,u=[...c.keys()].sort(M);for(let f of u){let{def:p,callers:g}=c.get(f);g.sort((h,y)=>M(h.file,y.file)||h.line-y.line),m.has(p.name)?m.set(`${p.name}@${p.file}`,{def:p,callers:g}):m.set(p.name,{def:p,callers:g})}return m}function Qg(e,t,n){let s=e.files.find(r=>r.rel===t);if(s?.symbols.length)return Gs(s.symbols,n)}function Gs(e,t){let n;for(let s of e)qs.has(s.kind)||s.line>t||s.endLine!==void 0&&t>s.endLine||(!n||s.line>n.line||s.line===n.line&&(s.endLine??1/0)<=(n.endLine??1/0))&&(n=s);return n}function e_(e){let t=new Map;for(let s of e.files){if(!s.calls?.length)continue;let r=s.symbols.filter(o=>!qs.has(o.kind));for(let o of s.calls){let a={file:s.rel,line:o.line};o.receiver!==void 0&&(a.receiver=o.receiver);let l=Gs(r,o.line);l&&(a.enclosingSymbol=l);let c=t.get(o.name);c||t.set(o.name,c=[]),c.push(a)}}let n=new Map;for(let s of[...t.keys()].sort(M)){let r=t.get(s);r.sort((o,a)=>M(o.file,a.file)||o.line-a.line),n.set(s,r)}return n}var qs,Qt=O(()=>{"use strict";E();En();pt();Y();qs=new Set(["reexport","reexport-all","default"])});function tn(e){return e.parent?`${e.file}#${e.parent}/${e.name}`:`${e.file}#${e.name}`}function n_(e){return{id:tn(e),name:e.name,kind:e.kind,file:e.file,line:e.line,...e.endLine!==void 0?{endLine:e.endLine}:{},exported:e.exported,...e.doc?{doc:e.doc}:{},...e.signature?{signature:e.signature}:{}}}function pr(e,t){let n=new Map,s=new Map,r=new Map,o=new Set;for(let p of e.files){let g=[];for(let h of p.symbols){if(t_.has(h.kind)||(g.push(h),n.set(tn(h),n_(h)),!h.exported))continue;let y=`${h.name} ${h.file}`;if(o.has(y))continue;o.add(y);let S=r.get(h.name);S||r.set(h.name,S=[]),S.push(h)}s.set(p.rel,g)}let a=new Map,l=(p,g,h)=>{if(p===g)return;let y=`${p}${Vs}${g}${Vs}${h}`,S=a.get(y);S?S.weight+=1:a.set(y,{from:p,to:g,kind:h,weight:1})};for(let p of e.files){if(!p.calls?.length)continue;let g=st(p.lang),h=s.get(p.rel)??[],y=new Map;for(let S of h)y.has(S.name)||y.set(S.name,S);for(let S of p.calls){let _=Gs(h,S.line);if(!_)continue;let k=y.get(S.name);if(k){k.line!==S.line&&l(tn(_),tn(k),"calls");continue}let b=(r.get(S.name)??[]).filter(T=>st(T.lang)===g&&T.file!==p.rel);if(!b.length)continue;let w=b.filter(T=>t.has(`${p.rel}|${T.file}`)),v=w.length?w:g==="js"?[]:b;if(!v.length)continue;let A=rt(p.rel,v.map(T=>({file:T.file,lang:T.lang})));if(!A)continue;let N=v.find(T=>T.file===A.file);l(tn(_),tn(N),"calls")}}let c=new Map;for(let p of n.values())c.set(`${p.name} ${p.file}`,p.id);for(let p of dr(e,t)){let g=c.get(`${p.from} ${p.fromFile}`),h=c.get(`${p.to} ${p.toFile}`);g&&h&&l(g,h,p.kind)}let d=[...a.values()].sort((p,g)=>M(p.from,g.from)||M(p.kind,g.kind)||M(p.to,g.to)),m=new Map,u=new Map;for(let p of d)(m.get(p.from)??m.set(p.from,[]).get(p.from)).push(p),(u.get(p.to)??u.set(p.to,[]).get(p.to)).push(p);let f=new Map;for(let p of[...n.keys()].sort(M)){let g=n.get(p);(f.get(g.name)??f.set(g.name,[]).get(g.name)).push(p)}return{nodes:n,edges:d,out:m,in:u,byName:f}}function gr(e,t,n={}){let s=Math.max(1,Math.min(n.depth??2,r_)),r=n.direction??"both",o=e.nodes.has(t)?[t]:e.byName.get(t)??[...e.nodes.keys()].filter(p=>p.endsWith(`#${t}`)),a=o.map(p=>e.nodes.get(p)).filter(Boolean);if(!a.length)return{root:[],nodes:[],edges:[]};let l=new Map;for(let p of o)l.set(p,0);let c=new Map,d=[...o],m=!1;for(let p=1;p<=s&&d.length;p++){let g=[];for(let h of d){let y=(S,_)=>{for(let k of S??[]){c.set(`${k.from}${Vs}${k.to}${Vs}${k.kind}`,k);let b=_(k);if(!l.has(b)){if(l.size>=s_){m=!0;continue}l.set(b,p),g.push(b)}}};r!=="in"&&y(e.out.get(h),S=>S.to),r!=="out"&&y(e.in.get(h),S=>S.from)}d=g}let u=[...l.entries()].map(([p,g])=>({...e.nodes.get(p),depth:g})).sort((p,g)=>p.depth-g.depth||M(p.file,g.file)||M(p.name,g.name)),f=[...c.values()].filter(p=>l.has(p.from)&&l.has(p.to)).sort((p,g)=>M(p.from,g.from)||M(p.kind,g.kind)||M(p.to,g.to));return{root:a,nodes:u,edges:f,...m?{truncated:!0}:{}}}var Vs,t_,r_,s_,_r=O(()=>{"use strict";E();En();Qt();Xt();Y();Vs="\0",t_=new Set(["reexport","reexport-all","default"]);r_=5,s_=400});function $t(e){if(o_.test(e)||Us(e))return!0;let t=e.split("/").pop();return i_.some(n=>n.test(t))}function hr(e){let t=new Set,n=new Map;for(let a of e.files)n.set(a.rel,a.module),a.fileKind==="code"&&$t(a.rel)&&t.add(a.rel);let s=new Map,r=new Map;for(let a of e.fileEdges){if(a.dangling||a.kind!=="import"&&a.kind!=="use"&&a.kind!=="call"||!t.has(a.from)||t.has(a.to))continue;let l=s.get(a.to);l||s.set(a.to,l=new Set),l.add(a.from);let c=n.get(a.to);if(c!==void 0){let d=r.get(c);d||r.set(c,d=new Set),d.add(a.from)}}let o=a=>{let l=new Map;for(let c of[...a.keys()].sort(M))l.set(c,[...a.get(c)].sort(M));return l};return{testFiles:t,testedByFile:o(s),testedByModule:o(r)}}function a_(e,t){let n=e.modules.find(s=>s.slug===t);return n?.testedBy?n.testedBy:hr(e).testedByModule.get(t)??[]}function l_(e){let t=hr(e),n=new Map;for(let s of e.files)s.fileKind!=="code"||t.testFiles.has(s.rel)||n.set(s.module,(n.get(s.module)??0)+1);return e.modules.filter(s=>s.tier<=1&&s.symbols>0&&(n.get(s.slug)??0)>0&&!t.testedByModule.has(s.slug))}var i_,o_,Rn=O(()=>{"use strict";E();Bs();Y();i_=[/^test_.*\.py$/i,/_test\.py$/i,/_test\.go$/,/(Test|Tests|IT)\.java$/,/(Test|Tests)\.kt$/,/_spec\.rb$/,/_test\.rb$/,/Test\.php$/,/(Test|Tests)\.cs$/,/_test\.exs$/],o_=/(^|\/)(tests?|__tests?__|spec|specs|e2e)(\/|$)/i});function Mn(e,t,n){let s=e.fields[t];for(let r of yt(n))s.tf.set(r,(s.tf.get(r)??0)+1),s.len++,e.all.add(r)}function h_(){let e={};for(let t of Js)e[t]={tf:new Map,len:0};return e}function Ks(e){let t=[];for(let n of e.files){let s={file:n.rel,fields:h_(),all:new Set,symbols:[],decls:[],exactNames:new Set,isTest:$t(n.rel)},r=new Set;for(let o of n.symbols)Mn(s,"name",o.name),o.doc&&Mn(s,"doc",o.doc),s.exactNames.add(ht(o.name).toLowerCase()),r.has(o.name)||(r.add(o.name),s.symbols.push(o.name),s.decls.push({name:o.name,kind:o.kind,line:o.line}));for(let o of n.rel.split("/"))Mn(s,"path",o);for(let o of n.headings)Mn(s,"heading",o);n.summary&&Mn(s,"summary",n.summary);for(let o of n.terms??[])Mn(s,"body",o);t.push(s)}return t}function Id(e){let t=`^^${e}$$`,n=new Set;for(let s=0;s+3<=t.length;s++)n.add(t.slice(s,s+3));return n}function y_(e,t){if(!e.size||!t.size)return 0;let n=0;for(let s of e)t.has(s)&&n++;return 2*n/(e.size+t.size)}function Fd(e){let t=new Set,n=new Map;for(let s of e)for(let r of s.all){if(t.has(r))continue;t.add(r);let o=zi(r);if(o===r)continue;let a=n.get(o);a||n.set(o,a=[]),a.push(r)}for(let s of n.values())s.sort(M);return n}function Nd(e){let t=new Map;for(let n of e)for(let s of n.all)t.has(s)||t.set(s,Id(s));return t}function Dt(e,t,n={}){return Od(e,t,n).results}function nn(e,t,n={}){return Od(e,t,n)}function Ad(e,t,n){return{results:[],explain:{query:e,terms:[],droppedStopwords:as(e),unresolvedTerms:[],verdict:t,note:n,bridgedOnlyResults:0,resultCount:0}}}function Od(e,t,n={}){let s=[],r=new Set;for(let _ of os(t))for(let k of yt(_))r.has(k)||(r.add(k),s.push(k));if(!s.length){let _=as(t);return Ad(t,"none",_.length?`Nothing was searched for: every token in this query (${_.join(", ")}) is a stopword or too short to index. Search with the identifiers or domain words you are actually looking for.`:"Nothing was searched for: the query carried no indexable token.")}let o=s.some(_=>__.test(_)),a=Pd(e),l=a.length;if(!l)return Ad(t,"none","This index contains no files.");let c={};for(let _ of Js){let k=0;for(let b of a)k+=b.fields[_].len;c[_]=k/l||1}let d=new Map;for(let _ of s){let k=0;for(let b of a)b.all.has(_)&&k++;d.set(_,k)}let m=n.fuzzy??!0,u=new Map;if(m){let _=s.filter(k=>d.get(k)===0);if(_.length){let k=Ld(e),b=[];for(let w of _){let v=(k.get(zi(w))??[]).filter(A=>A!==w);v.length?u.set(w,v.slice(0,Cd).map(A=>({term:A,dice:Td}))):b.push(w)}if(b.length){let w=$d(e);for(let v of b){let A=Id(v),N=[];for(let[T,U]of w){let te=y_(A,U);te>=u_&&N.push({term:T,dice:te})}N.sort((T,U)=>U.dice-T.dice||M(T.term,U.term)),u.set(v,N.slice(0,Cd))}}}}let f=new Map,p=_=>{let k=d.get(_)??f.get(_);if(k!==void 0)return k;let b=0;for(let w of a)w.all.has(_)&&b++;return f.set(_,b),b},g=_=>Math.log(1+(l-_+.5)/(_+.5)),h=n.rank==="graph"?Dd(e):void 0,y=[];for(let _ of a){let k=0,b=[],w=new Set,v=new Set,A=new Set,N=!1,T=z=>{let P=0;for(let j of Js){let B=_.fields[j],se=B.tf.get(z);if(!se)continue;w.add(j);let J=m_[j];P+=f_[j]*se/(1-J+J*B.len/c[j])}return P};for(let z of s){let P=T(z);if(P>0){b.push(z),v.add(z),_.exactNames.has(z)&&(N=!0),k+=g(d.get(z))*(P/(Md+P));continue}for(let j of u.get(z)??[]){let B=T(j.term);B&&(k+=g(p(j.term))*(B/(Md+B))*j.dice,v.add(j.term),A.add(z))}}if(!b.length&&!A.size)continue;N&&(k*=p_),_.isTest&&!o&&(k*=g_),h&&(k*=1+.35*Math.log1p(h.get(_.file)??0));let te=_.decls.map(z=>{let P=new Set(yt(z.name)),j=0;for(let B of v)P.has(B)&&j++;return{decl:z,hits:j}}).filter(z=>z.hits>0).sort((z,P)=>P.hits-z.hits||M(z.decl.name,P.decl.name)).slice(0,d_).map(z=>z.decl),V={file:_.file,score:Number(k.toFixed(4)),matchedTerms:b.sort(M),topSymbols:te.map(z=>z.name)};w.size&&(V.matchedFields=Js.filter(z=>w.has(z))),te.length&&(V.symbolHits=te,V.line=Math.min(...te.map(z=>z.line))),A.size&&(V.fuzzyTerms=[...A].sort(M)),b.length||(V.bridgedOnly=!0),y.push(V)}y.sort((_,k)=>k.score-_.score||M(_.file,k.file));let S=(n.exact?y.filter(_=>!_.bridgedOnly):y).slice(0,n.limit??c_);return{results:S,explain:b_(t,s,d,u,S)}}function b_(e,t,n,s,r){let o=t.map(g=>{let h=n.get(g)??0,y=h===0?s.get(g)??[]:[];if(!y.length)return{term:g,df:h};let S=y[0].dice===Td?"stem":"trigram";return{term:g,df:h,bridge:{via:S,to:y.map(_=>_.term),dice:y[0].dice}}}),a=o.filter(g=>g.df===0&&!g.bridge).map(g=>g.term).sort(M),l=!/\s/.test(e.trim())&&t.length?{term:t[0],df:n.get(t[0])??0}:void 0,c=r.filter(g=>g.bridgedOnly).length,d=r.length>0&&c===r.length,m=l?.df===0,u=r.length?m||d?"weak":"match":"none",f={query:e,terms:o,droppedStopwords:as(e),unresolvedTerms:a,...l?{wholeIdentifier:l}:{},verdict:u,bridgedOnlyResults:c,resultCount:r.length},p=w_(f,m,d);return p&&(f.note=p),f}function w_(e,t,n){let{verdict:s,wholeIdentifier:r,resultCount:o,terms:a}=e;if(s!=="match"){if(!o)return e.unresolvedTerms.length?`No file matches. ${e.unresolvedTerms.length===1?"The term":"The terms"} ${e.unresolvedTerms.join(", ")} appear nowhere in this index.`:"No file matches this query.";if(t&&r){let l=a.filter(u=>u.term!==r.term&&u.df>0).map(u=>u.term).join(", "),c=a.find(u=>u.term===r.term)?.bridge?.to??[],d=l?` The ${o} result${o===1?"":"s"} below match only its parts (${l}).`:"",m=c.length?` Closest indexed name${c.length===1?"":"s"}: ${c.join(", ")}.`:"";return`No file in this index defines or mentions "${r.term}".${d}${m} If you expected it here, check you are indexing the right branch or commit.`}if(n)return`Nothing matched verbatim. Every result below came from a near match: ${a.filter(d=>d.bridge).map(d=>`"${d.term}" \u2192 ${d.bridge.to.join(", ")}`).join("; ")}. Re-run with --exact to see only literal matches.`}}var Md,c_,d_,u_,Cd,Td,Js,f_,m_,p_,g_,__,Cn=O(()=>{"use strict";E();pt();Ae();Rn();Y();Md=1.2,c_=20,d_=5,u_=.6,Cd=3,Td=.9,Js=["name","path","heading","summary","doc","body"],f_={name:3,path:2,heading:1.5,summary:1.5,doc:1.6,body:.7},m_={name:.75,path:.75,heading:.75,summary:.75,doc:.75,body:.4},p_=1.35,g_=.65,__=/^(test|tests|spec|specs|fixture|fixtures|mock|mocks|stub|stubs)$/});function yr(e,t,n=.85){let s=new Map,r=e.length;if(r===0)return s;let o=new Map(e.map((d,m)=>[d,m])),a=Array.from({length:r},()=>[]),l=new Array(r).fill(0);for(let d of t){if(d.dangling)continue;let m=o.get(d.from),u=o.get(d.to);m===void 0||u===void 0||m===u||(a[m].push([u,d.weight]),l[m]+=d.weight)}let c=new Array(r).fill(1/r);for(let d=0;d<100;d++){let m=0;for(let g=0;gs.set(d,c[m])),s}function jd(e,t){let n=new Map;for(let h of e)n.set(h,0);let s=e.length;if(s<3)return n;let r=new Map(e.map((h,y)=>[h,y])),o=Array.from({length:s},()=>new Set);for(let h of t){if(h.dangling)continue;let y=r.get(h.from),S=r.get(h.to);y===void 0||S===void 0||y===S||(o[y].add(S),o[S].add(y))}let a=o.map(h=>[...h].sort((y,S)=>y-S)),l=new Float64Array(s),c=[],d=[],m=Array.from({length:s},()=>[]),u=new Float64Array(s),f=new Int32Array(s).fill(-1),p=new Float64Array(s);for(let h=0;h=0;y--){let S=c[y];for(let _ of m[S])p[_]+=u[_]/u[S]*(1+p[S]);S!==h&&(l[S]+=p[S])}}let g=(s-1)*(s-2)/2;return e.forEach((h,y)=>n.set(h,l[y]/2/g)),n}function na(e){let t=[],n=e.modules.length;if(n>0){let r=e.modules.map(a=>a.id),o=yr(r,e.moduleEdges);for(let a of e.modules)a.pagerank=Number(((o.get(a.id)??0)*n).toFixed(4));if(n>3e3)t.push(`betweenness skipped (${n} modules > 3000)`);else{let a=jd(r,e.moduleEdges);for(let l of e.modules)l.betweenness=Number((a.get(l.id)??0).toFixed(6))}}let s=e.files.length;if(s>0){let r=e.files.map(a=>a.id),o=yr(r,e.fileEdges);for(let a of e.files)a.pagerank=Number(((o.get(a.id)??0)*s).toFixed(4))}return t}var Xs=O(()=>{"use strict";E()});function Zs(e){return 1+(e.match(x_)??[]).length}function br(e,t,n=50){let s=[];for(let r of e.files){if(r.kind!=="code"||t&&r.rel!==t||!r.symbols.length)continue;let o=G(I(e.root,r.rel)).split(` +`);for(let a of r.symbols){if(a.kind==="reexport"||a.kind==="reexport-all")continue;let l=a.endLine??a.line,c=o.slice(a.line-1,l).join(` +`),d={file:r.rel,name:a.name,line:a.line,complexity:Zs(c)};a.endLine!==void 0&&(d.endLine=a.endLine),s.push(d)}}return s.sort((r,o)=>o.complexity-r.complexity||M(r.file,o.file)||r.line-o.line),s.slice(0,n)}function wr(e,t,n=20){let s=Wd(e),r=e.files.filter(o=>o.kind==="code").map(o=>{let a=s.get(o.rel),l=t.get(o.rel)??0;return{file:o.rel,complexity:a,commits:l,score:(l+1)*a}});return r.sort((o,a)=>a.score-o.score||M(o.file,a.file)),r.slice(0,n)}var x_,xr=O(()=>{"use strict";E();ae();pt();Fe();Y();x_=/\b(if|elif|elsif|else\s+if|for|foreach|while|until|unless|case|when|match|catch|rescue|except)\b|&&|\|\||(?[n.rel,n]))}function Bd(e){let t=Oe(e);if(!t.symbolsByName){let n=new Map;for(let s of e.files)for(let r of s.symbols){let o=n.get(r.name);o?o.push(r):n.set(r.name,[r])}t.symbolsByName=n}return t.symbolsByName}function sa(e){let t=Oe(e);return t.resolveCtx??=Ko(e)}function en(e){let t=Oe(e);if(!t.importPairs){let n=sa(e),s=new Set;for(let r of e.files)for(let o of r.refs){if(o.kind!=="import")continue;let a=cr(r.rel,r.ext,o.spec,n);a.kind==="resolved"&&a.target!==r.rel&&s.add(`${r.rel}|${a.target}`)}t.importPairs=s}return t.importPairs}function zd(e,t,n){let s=ra.get(e);!s||s.resolveCtx!==t||s.importPairs||(s.importPairs=n)}function Zt(e){let t=Oe(e);return t.uniqueDefs??=oa(e)}function Ys(e){let t=Oe(e);return t.symbolRefs??=ea(e)}function Hs(e){let t=Oe(e);if(t.docMentions)return t.docMentions;let n=Zt(e),s=new Map;if(n.size)for(let r of e.files){if(r.kind!=="doc")continue;let o=e.docText.get(r.rel),a=o??G(I(e.root,r.rel));if(!a)continue;let l=new Map;for(let c of a.split(/[^A-Za-z0-9_]+/))n.has(c)&&l.set(c,(l.get(c)??0)+1);s.set(r.rel,{counts:l,retained:o!==void 0})}return t.docMentions=s}function Hd(e){let t=Oe(e);if(t.identSets)return t.identSets;let n=new Map;for(let s of e.files)s.kind==="code"&&s.idents?.length&&n.set(s.rel,new Set(s.idents));return t.identSets=n}function An(e){let t=Oe(e);return t.callerIndex??=Yt(e,en(e))}function ia(e){let t=Oe(e);return t.hierarchy??=vn(e,en(e))}function qd(e){let t=Oe(e);return t.symbolGraph??=pr(e,en(e))}function Pd(e){let t=Oe(e);return(t.bm25??={docs:Ks(e)}).docs}function $d(e){let t=Oe(e),n=t.bm25??={docs:Ks(e)};return n.trigrams??=Nd(n.docs)}function Dd(e){let t=Oe(e);if(!t.importPagerank){let n=e.files.map(r=>r.rel),s=[];for(let r of en(e)){let o=r.indexOf("|");s.push({from:r.slice(0,o),to:r.slice(o+1),kind:"import",weight:1})}t.importPagerank=yr(n,s)}return t.importPagerank}function Ld(e){let t=Oe(e),n=t.bm25??={docs:Ks(e)};return n.stems??=Fd(n.docs)}function Wd(e){let t=Oe(e);if(!t.fileComplexity){let n=new Map;for(let s of e.files)s.kind==="code"&&n.set(s.rel,Zs(G(I(e.root,s.rel))));t.fileComplexity=n}return t.fileComplexity}var ra,pt=O(()=>{"use strict";E();ae();js();Qs();fr();Qt();Xt();_r();Cn();Xs();xr();Fe();ra=new WeakMap});function S_(e){return e.length<5?!1:/[a-z][A-Z]/.test(e)||/[A-Z]{2}/.test(e)||e.includes("_")||/\d/.test(e)}function oa(e){let t=new Map;for(let s of e.files)for(let r of s.symbols){if(!r.exported||k_.has(r.kind)||!S_(r.name))continue;let o=t.get(r.name);o||t.set(r.name,o=new Set),o.add(s.rel)}let n=new Map;for(let[s,r]of t)r.size===1&&n.set(s,[...r][0]);return n}function Lt(e,t){let n=E_(t.from,t.to,t.kind),s=e.get(n);if(s){s.weight+=t.weight;return}e.set(n,{...t})}function la(e,t,n,s,r){let o=new Map,a=new Set;for(let w of e.files)for(let v of w.refs)if(v.kind==="doc-link"){let A=Xo(w.rel,v.spec,t);if(A.kind==="external")continue;A.kind==="dangling"?Lt(o,{from:w.rel,to:v.spec,kind:"doc-link",weight:1,dangling:!0,reason:A.reason}):A.target!==w.rel&&Lt(o,{from:w.rel,to:A.target,kind:"doc-link",weight:1})}else{let A=cr(w.rel,w.ext,v.spec,t);if(A.kind==="external")continue;A.kind==="dangling"?Lt(o,{from:w.rel,to:v.spec,kind:"import",weight:1,dangling:!0,reason:A.reason}):A.target!==w.rel&&(Lt(o,{from:w.rel,to:A.target,kind:"import",weight:1}),a.add(`${w.rel}|${A.target}`))}let l=new Set;for(let w of Yo(e,a))Lt(o,w),l.add(`${w.from}|${w.to}`);for(let w of Qo(e,a))Lt(o,w),l.add(`${w.from}|${w.to}`);zd(e,t,a);let c=Zt(e);if(c.size)for(let w of e.files){if(w.kind!=="code"||!w.idents?.length)continue;let v=new Map;for(let A of w.idents){let N=c.get(A);!N||N===w.rel||v.set(N,(v.get(N)??0)+1)}for(let[A,N]of v){let T=`${w.rel}|${A}`;a.has(T)||l.has(T)||Lt(o,{from:w.rel,to:A,kind:"use",weight:Math.min(N,5)})}}if(c.size)for(let[w,{counts:v}]of Hs(e))for(let[A,N]of v){let T=c.get(A);T!==w&&Lt(o,{from:w,to:T,kind:"mention",weight:Math.min(N,5)})}let d=[...o.values()].sort((w,v)=>M(w.from,v.from)||M(w.to,v.to)||M(w.kind,v.kind)),m=new Map,u=new Map,f=new Set(e.files.map(w=>w.rel));for(let w of d)w.dangling||!f.has(w.to)||(u.set(w.from,(u.get(w.from)??0)+1),m.set(w.to,(m.get(w.to)??0)+1));let p={import:7,extends:6,implements:5,call:4,use:3,"doc-link":2,mention:1,contains:0},g=new Map;for(let w of d){if(w.dangling||!f.has(w.to))continue;let v=s.get(w.from),A=s.get(w.to);if(!v||!A||v===A)continue;let N=`${v}${aa}${A}`,T=g.get(N);T?(T.weight+=w.weight,(p[w.kind]??0)>(p[T.kind]??0)&&(T.kind=w.kind)):g.set(N,{from:v,to:A,kind:w.kind,weight:w.weight})}let h=[...g.values()].sort((w,v)=>M(w.from,v.from)||M(w.to,v.to)),y=new Map,S=new Map;for(let w of h)S.set(w.from,(S.get(w.from)??0)+1),y.set(w.to,(y.get(w.to)??0)+1);let _=e.files.map(w=>({id:w.rel,kind:"file",rel:w.rel,fileKind:w.kind,lang:w.lang,module:s.get(w.rel)??"root",title:w.title,summary:w.summary,symbols:w.symbols.length,lines:w.lines,degIn:m.get(w.rel)??0,degOut:u.get(w.rel)??0})).sort((w,v)=>M(w.rel,v.rel)),k=new Map;for(let w of e.files){let v=s.get(w.rel)??"root";k.set(v,(k.get(v)??0)+w.symbols.length)}let b=n.map(w=>({id:w.slug,kind:"module",slug:w.slug,path:w.path,title:w.title,summary:w.summary,tier:w.tier,members:w.members,symbols:k.get(w.slug)??0,degIn:y.get(w.slug)??0,degOut:S.get(w.slug)??0})).sort((w,v)=>M(w.slug,v.slug));return{schemaVersion:r?.schemaVersion??5,version:r?.version??fe,commit:e.commit,fileCount:e.files.length,languages:e.languages,files:_,modules:b,fileEdges:d,moduleEdges:h}}var k_,aa,E_,Qs=O(()=>{"use strict";E();Xe();js();En();Xt();pt();Y();k_=new Set(["reexport","reexport-all","default"]);aa="\0",E_=(e,t,n)=>`${e}${aa}${t}${aa}${n}`});function*v_(e){for(let t of e.files)yield*t.symbols}function da(e,t){let n=Ud(e).get(t);return n?[...n.symbols].filter(s=>!ca.has(s.kind)).sort((s,r)=>s.line-r.line||M(s.name,r.name)):[]}function Tn(e,t,n={}){let s=t.split("/").filter(Boolean);if(!s.length)return[];let r=s[s.length-1],o=s.slice(0,-1),a=(m,u)=>n.substring?m.toLowerCase().includes(u.toLowerCase()):m===u,l=[],c=n.substring?v_(e):Bd(e).get(r)??[];for(let m of c)if(!ca.has(m.kind)&&a(m.name,r)){if(o.length){let u=o[o.length-1];if(!m.parent||m.parent!==u)continue}l.push({...m})}l.sort((m,u)=>+(u.name===r)-+(m.name===r)||M(m.file,u.file)||m.line-u.line);let d=l.slice(0,n.maxResults??50);if(n.includeBody){let m=new Map,u=new Set;for(let f of d){let p=f.endLine??f.line;if(u.has(f.file))continue;let g=m.get(f.file);if(!g){let h=G(I(e.root,f.file));if(!h){u.add(f.file);continue}g=h.split(` `),m.set(f.file,g)}f.body=g.slice(f.line-1,p).join(` -`)}}return n.concise?d.map(m=>({name:m.name,kind:m.kind,file:m.file,line:m.line,...m.body!==void 0?{body:m.body}:{}})):d}function ca(e,t){let n=[];for(let u of e.files)for(let f of u.symbols)f.name===t&&!aa.has(f.kind)&&n.push(f);n.sort((u,f)=>M(u.file,f.file)||u.line-f.line);let s=Cn(e).get(t),o=s?[...s.callers]:[],a=new Set,c=Zt(e).get(t),d=Ld(e),m=new RegExp(`\\b${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\b`);for(let u of e.files)if(u.rel!==c){if(u.kind==="code"&&d.get(u.rel)?.has(t))a.add(u.rel);else if(u.kind==="doc"){let f=e.docText.get(u.rel);f&&m.test(f)&&a.add(u.rel)}}for(let u of o)a.add(u.file);return{defs:n,callSites:o,referencingFiles:[...a].sort(M)}}var aa,Ys=O(()=>{"use strict";E();ae();Ne();pt();Y();aa=new Set(["reexport","reexport-all","default"])});function Qs(e,t,n){let r=An(e,t);if(n&&(r=r.filter(o=>o.file===n)),r.length===1)return r[0];if(r.length===0){let o=An(e,t,{substring:!0,maxResults:5}).map(a=>`${a.file}:${a.line} ${a.parent?a.parent+"/":""}${a.name}`).join(", ");throw new Error(`no symbol matches "${t}"${n?` in ${n}`:""}${o?` \u2014 near matches: ${o}`:""}`)}let s=r.map(o=>`${o.file}:${o.line}`).join(", ");throw new Error(`"${t}" is ambiguous (${r.length} matches: ${s}) \u2014 qualify with \`file\` or a Parent/name path`)}function Wd(e){return Q(e,"utf8").split(` -`)}function Ud(e,t,n=Ge){let r=_n(e),s=xe(r).mode,o;try{o=Dn(I(_e(r),".codeindex-edit-"))}catch{Me(r,t),ss(r,s);return}let a=I(o,ve(r));try{Me(a,t),ss(a,s);try{Ln(a,r)}catch{Me(r,t),ss(r,s)}}finally{try{n(o,{recursive:!0,force:!0})}catch{}}}function da(e,t,n,r){let s=Qs(e,t,r),o=s.endLine??s.line,a=I(e.root,s.file),l=Wd(a),c=n.replace(/^\n+|\n+$/g,"").split(` -`);return l.splice(s.line-1,o-s.line+1,...c),Ud(a,l.join(` -`)),{file:s.file,startLine:s.line,endLine:s.line+c.length-1,lines:c.length}}function Bd(e,t,n,r,s,o){let a=I(e.root,t.file),l=Wd(a),c=w_.has(t.kind)?1:0,d=n.replace(/^\n+|\n+$/g,"").split(` -`),m=[];return s&&c&&l[r-1]?.trim()!==""&&m.push(""),m.push(...d),o&&c&&l[r]?.trim()!==""&&m.push(""),l.splice(r,0,...m),Ud(a,l.join(` -`)),{file:t.file,startLine:r+1,endLine:r+m.length,lines:m.length}}function ua(e,t,n,r){let s=Qs(e,t,r),o=s.endLine??s.line;return Bd(e,s,n,o,!0,!0)}function fa(e,t,n,r){let s=Qs(e,t,r);return Bd(e,s,n,s.line-1,!0,!0)}var w_,ma=O(()=>{"use strict";E();Se();ae();Ys();w_=new Set(["function","method","class","interface","struct","trait","enum","def"])});function Hd(e){let t=e.replace(/^mem:/,"").replace(/\.md$/,"");if(!t)throw new Error("memory name is empty");let n=t.split("/");for(let r of n){if(!r||r==="."||r===".."||r.includes("\\"))throw new Error(`invalid memory name: "${e}"`);if(!/^[\w][\w.-]*$/.test(r))throw new Error(`invalid memory name segment: "${r}"`)}return t}function pa(e,t){return I(e,...zd,`${Hd(t)}.md`)}function xr(e,t,n){let r=pa(e,t);return _t(_e(r),{recursive:!0}),Me(r,n.endsWith(` +`)}}return n.concise?d.map(m=>({name:m.name,kind:m.kind,file:m.file,line:m.line,...m.body!==void 0?{body:m.body}:{}})):d}function ua(e,t){let n=[];for(let u of e.files)for(let f of u.symbols)f.name===t&&!ca.has(f.kind)&&n.push(f);n.sort((u,f)=>M(u.file,f.file)||u.line-f.line);let r=An(e).get(t),o=r?[...r.callers]:[],a=new Set,c=Zt(e).get(t),d=Hd(e),m=new RegExp(`\\b${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\b`);for(let u of e.files)if(u.rel!==c){if(u.kind==="code"&&d.get(u.rel)?.has(t))a.add(u.rel);else if(u.kind==="doc"){let f=e.docText.get(u.rel);f&&m.test(f)&&a.add(u.rel)}}for(let u of o)a.add(u.file);return{defs:n,callSites:o,referencingFiles:[...a].sort(M)}}var ca,ei=O(()=>{"use strict";E();ae();Fe();pt();Y();ca=new Set(["reexport","reexport-all","default"])});function ti(e,t,n){let s=Tn(e,t);if(n&&(s=s.filter(o=>o.file===n)),s.length===1)return s[0];if(s.length===0){let o=Tn(e,t,{substring:!0,maxResults:5}).map(a=>`${a.file}:${a.line} ${a.parent?a.parent+"/":""}${a.name}`).join(", ");throw new Error(`no symbol matches "${t}"${n?` in ${n}`:""}${o?` \u2014 near matches: ${o}`:""}`)}let r=s.map(o=>`${o.file}:${o.line}`).join(", ");throw new Error(`"${t}" is ambiguous (${s.length} matches: ${r}) \u2014 qualify with \`file\` or a Parent/name path`)}function Gd(e){return Q(e,"utf8").split(` +`)}function Vd(e,t,n=qe){let s=_n(e),r=xe(s).mode,o;try{o=Ln(I(_e(s),".codeindex-edit-"))}catch{Me(s,t),is(s,r);return}let a=I(o,ve(s));try{Me(a,t),is(a,r);try{jn(a,s)}catch{Me(s,t),is(s,r)}}finally{try{n(o,{recursive:!0,force:!0})}catch{}}}function fa(e,t,n,s){let r=ti(e,t,s),o=r.endLine??r.line,a=I(e.root,r.file),l=Gd(a),c=n.replace(/^\n+|\n+$/g,"").split(` +`);return l.splice(r.line-1,o-r.line+1,...c),Vd(a,l.join(` +`)),{file:r.file,startLine:r.line,endLine:r.line+c.length-1,lines:c.length}}function Jd(e,t,n,s,r,o){let a=I(e.root,t.file),l=Gd(a),c=R_.has(t.kind)?1:0,d=n.replace(/^\n+|\n+$/g,"").split(` +`),m=[];return r&&c&&l[s-1]?.trim()!==""&&m.push(""),m.push(...d),o&&c&&l[s]?.trim()!==""&&m.push(""),l.splice(s,0,...m),Vd(a,l.join(` +`)),{file:t.file,startLine:s+1,endLine:s+m.length,lines:m.length}}function ma(e,t,n,s){let r=ti(e,t,s),o=r.endLine??r.line;return Jd(e,r,n,o,!0,!0)}function pa(e,t,n,s){let r=ti(e,t,s);return Jd(e,r,n,r.line-1,!0,!0)}var R_,ga=O(()=>{"use strict";E();Se();ae();ei();R_=new Set(["function","method","class","interface","struct","trait","enum","def"])});function Xd(e){let t=e.replace(/^mem:/,"").replace(/\.md$/,"");if(!t)throw new Error("memory name is empty");let n=t.split("/");for(let s of n){if(!s||s==="."||s===".."||s.includes("\\"))throw new Error(`invalid memory name: "${e}"`);if(!/^[\w][\w.-]*$/.test(s))throw new Error(`invalid memory name segment: "${s}"`)}return t}function _a(e,t){return I(e,...Kd,`${Xd(t)}.md`)}function Sr(e,t,n){let s=_a(e,t);return _t(_e(s),{recursive:!0}),Me(s,n.endsWith(` `)?n:n+` -`),Hd(t)}function ga(e,t){try{return Q(pa(e,t),"utf8")}catch{return}}function _a(e,t){let n=pa(e,t);try{xe(n)}catch{return!1}return Ge(n),!0}function ha(e){let t=I(e,...zd),n=[],r=(s,o)=>{let a;try{a=hn(s,{withFileTypes:!0})}catch{return}for(let l of a)l.isDirectory()?r(I(s,l.name),o?`${o}/${l.name}`:l.name):l.name.endsWith(".md")&&n.push(o?`${o}/${l.name.slice(0,-3)}`:l.name.slice(0,-3))};return r(t,""),n.sort()}var zd,ei=O(()=>{"use strict";E();Se();ae();zd=[".codeindex","memories"]});function St(e,t,n){let r=q(e);if(r)try{let s=JSON.parse(r);if(s&&typeof s=="object")return s;t&&n&&n.push(`malformed ${t}: not a JSON object`);return}catch(s){if(t&&n){let o=String(s instanceof Error?s.message:s).split(` -`)[0];n.push(`malformed ${t}: ${o}`)}return}}function jt(e,t){let n=new RegExp(`^\\[${qe(t)}\\]\\s*$([\\s\\S]*?)(?=^\\[|$(?![\\s\\S]))`,"m"),r=e.match(n);return r?r[1]:null}function Sr(e,t){let n=e.match(new RegExp(`${qe(t)}\\s*=\\s*\\[([^\\]]*)\\]`));return n?n[1].split(/\r?\n/).map(r=>r.replace(/#.*$/,"")).join(` -`).split(",").map(r=>r.trim().replace(/^["']|["']$/g,"")).filter(Boolean):[]}function Tn(e,t){return e?.match(new RegExp(`^\\s*${qe(t)}\\s*=\\s*["']([^"']+)["']`,"m"))?.[1]}function ya(e){let t="";for(let n=0;nk_(e,t,n,r),o=()=>E_(e,t),a=()=>v_(e,t),l=()=>R_(e,t),c=()=>M_(e,t),d=()=>C_(e,t,r),m=()=>A_(e,t,r),f=n==="go"?[a,s,o,l,c,d,m]:n==="uv"?[c,s,o,a,l,d,m]:n==="composer"?[d,s,c,o,a,l,m]:n==="gradle"?[s,l,o,a,c,d,m,()=>T_(e,t)]:[s,o,a,l,c,d,m];for(let p of f){let g=p();if(g)return g}}function N_(e){return e.replace(/[\s\S]*?<\/parent>/g,"").replace(/[\s\S]*?<\/dependencies>/g,"").match(/\s*([^<]+?)\s*<\/artifactId>/)?.[1]}function kr(e,t,n,r,s){let o=t.replace(/^\.\//,"").replace(/\/+$/,"");if(!o||o==="."||n.has(o)||o.split("/").includes(".."))return;let a=I_(e,o,r,s);a&&n.set(o,a)}function F_(e,t){try{return xe(I(e,t)).isDirectory()}catch{return!1}}function Gd(e,t){let n;try{n=hn(t?I(e,t):e,{withFileTypes:!0})}catch{return[]}return n.filter(r=>r.isDirectory()&&!r.name.startsWith(".")&&!x_.has(r.name)).map(r=>t?`${t}/${r.name}`:r.name).sort(M)}function qd(e,t,n,r){if(!(n>S_))for(let s of Gd(e,t))r.push(s),qd(e,s,n+1,r)}function O_(e,t){let n=t.split("/").filter(s=>s&&s!==".");if(n.includes(".."))return[];let r=[""];for(let s of n){let o=new Set;if(s==="**")for(let a of r){a&&o.add(a);let l=[];qd(e,a,0,l);for(let c of l)o.add(c)}else if(s.includes("*")){let a=new RegExp(`^${s.split("*").map(qe).join("[^/]*")}$`);for(let l of r)for(let c of Gd(e,l))a.test(c.split("/").pop())&&o.add(c)}else for(let a of r){let l=a?`${a}/${s}`:s;F_(e,l)&&o.add(l)}if(r=[...o],!r.length)return[]}return r.filter(Boolean)}function ti(e,t,n,r,s){let o=t.replace(/^\.\//,"").replace(/\/+$/,"");if(o){if(!o.includes("*")){kr(e,o,n,r,s);return}for(let a of O_(e,o))kr(e,a,n,r,s)}}function P_(e,t){let n=[],r=[],s=(d,m)=>{let u=d.trim();u&&(u.startsWith("!")?r.push(u.slice(1)):n.push({pattern:u,kind:m}))},a=St(I(e,"package.json"),"package.json",t)?.workspaces;if(Array.isArray(a))for(let d of a)typeof d=="string"&&s(d,"npm");else if(a&&typeof a=="object"&&Array.isArray(a.packages))for(let d of a.packages)typeof d=="string"&&s(d,"npm");let l=q(I(e,"pnpm-workspace.yaml")),c=!1;for(let d of l.split(/\r?\n/)){if(/^\S/.test(d)){c=/^packages\s*:/.test(d);continue}if(!c)continue;let m=d.match(/^\s*-\s*['"]?([^'"#]+?)['"]?\s*(?:#.*)?$/);m&&s(m[1].trim(),"pnpm")}return{positives:n,negations:r}}function $_(e,t){let n=St(I(e,"lerna.json"),"lerna.json",t);if(n&&Array.isArray(n.packages))return n.packages.filter(s=>typeof s=="string").map(s=>({pattern:s,kind:"lerna"}));let r=St(I(e,"nx.json"),"nx.json",t);if(r){let s=r.workspaceLayout??{},o=typeof s.appsDir=="string"?s.appsDir:"apps",a=typeof s.libsDir=="string"?s.libsDir:"libs";return[...new Set([o,a])].map(l=>({pattern:`${l}/*`,kind:"nx"}))}return[]}function D_(e,t,n){let r=q(I(e,"Cargo.toml"));if(!r)return;let s=jt(r,"workspace");if(!s)return;let o=Sr(s,"members");if(!o.length)return;let a=Sr(s,"exclude").map(ya),l=new Map;for(let c of o)ti(e,c,l,"cargo",n);for(let[c,d]of l)a.some(m=>m.test(c))||t.has(c)||t.set(c,d)}function L_(e,t,n){let r=q(I(e,"go.work"));if(!r)return;let s=[];for(let o of r.matchAll(/^use\s*\(([\s\S]*?)\)/gm))for(let a of o[1].split(/\r?\n/)){let l=a.replace(/\/\/.*$/,"").trim();l&&s.push(l)}for(let o of r.matchAll(/^use\s+([^\s(]+)/gm))s.push(o[1]);for(let o of s)o==="."||o==="./"||kr(e,o,t,"go",n)}function j_(e,t,n){let r=q(I(e,"pom.xml"));if(!r)return;let s=r.match(/([\s\S]*?)<\/modules>/)?.[1];if(s)for(let o of s.matchAll(/\s*([^<]+?)\s*<\/module>/g))kr(e,o[1],t,"maven",n)}function W_(e,t,n){let r=q(I(e,"pyproject.toml"));if(!r)return;let s=jt(r,"tool.uv.workspace");if(!s)return;let o=Sr(s,"members");if(!o.length)return;let a=Sr(s,"exclude").map(ya),l=new Map;for(let c of o)ti(e,c,l,"uv",n);for(let[c,d]of l)a.some(m=>m.test(c))||t.has(c)||t.set(c,d)}function U_(e,t,n){let s=St(I(e,"composer.json"),"composer.json",n)?.repositories;if(Array.isArray(s))for(let o of s){if(!o||typeof o!="object")continue;let{type:a,url:l}=o;a==="path"&&typeof l=="string"&&l&&ti(e,l,t,"composer",n)}}function B_(e,t,n){for(let r of["settings.gradle","settings.gradle.kts"]){let s=q(I(e,r));if(s){for(let o of s.split(/\r?\n/))if(/^\s*include[\s(]/.test(o))for(let a of o.matchAll(/["']([^"']+)["']/g)){let l=a[1].replace(/^:/,"").replace(/:/g,"/");l&&kr(e,l,t,"gradle",n)}}}}function z_(e,t,n,r){let s=St(I(e,t.dir,"package.json"),`${t.dir}/package.json`,r);if(!s)return[];let o=new Set;for(let a of["dependencies","devDependencies","peerDependencies"]){let l=s[a];if(!(!l||typeof l!="object"))for(let c of Object.keys(l))c!==t.name&&n.has(c)&&o.add(c)}return[...o]}function Vd(e,t){let n=`${e}/${t}`.split("/"),r=[];for(let s of n)!s||s==="."||(s===".."?r.pop():r.push(s));return r.join("/")}function H_(e,t,n,r){let s=q(I(e,t.dir,"Cargo.toml"));if(!s)return[];let o=new Set;for(let a of["dependencies","dev-dependencies","build-dependencies"]){let l=jt(s,a);if(l)for(let c of l.split(/\r?\n/)){let d=c.match(/^\s*([A-Za-z0-9_-]+)\s*=\s*(.+)$/);if(!d)continue;let m=d[1];if(m!==t.name&&n.has(m)){o.add(m);continue}let u=d[2].match(/path\s*=\s*["']([^"']+)["']/);if(u){let f=r.get(Vd(t.dir,u[1]));f&&f!==t.name&&o.add(f)}}}return[...o]}function G_(e,t,n,r){let s=q(I(e,t.dir,"go.mod"));if(!s)return[];let o=new Set;for(let a of s.matchAll(/^\s*(?:require\s+)?([^\s/(][^\s]*)\s+v[^\s]+/gm)){let l=a[1];l!==t.name&&n.has(l)&&o.add(l)}for(let a of s.matchAll(/^\s*(?:replace\s+)?(\S+)(?:\s+\S+)?\s*=>\s*(\.\.?\/\S+)/gm)){let l=r.get(Vd(t.dir,a[2]));l&&l!==t.name&&o.add(l)}return[...o]}function q_(e,t,n){let r=q(I(e,t.dir,"pom.xml"));if(!r)return[];let s=new Set;for(let o of r.replace(/[\s\S]*?<\/parent>/g,"").matchAll(/([\s\S]*?)<\/dependency>/g)){let a=o[1].match(/\s*([^<]+?)\s*<\/artifactId>/)?.[1];a&&a!==t.name&&n.has(a)&&s.add(a)}return[...s]}function V_(e,t,n){let r=q(I(e,t.dir,"pyproject.toml"));if(!r)return[];let s=new Set,o=jt(r,"project");if(o)for(let l of Sr(o,"dependencies")){let c=l.match(/^[A-Za-z0-9_.-]+/)?.[0];c&&c!==t.name&&n.has(c)&&s.add(c)}let a=jt(r,"tool.uv.sources");if(a)for(let l of a.split(/\r?\n/)){let c=l.match(/^\s*([A-Za-z0-9_.-]+)\s*=\s*\{[^}]*workspace\s*=\s*true/);c&&c[1]!==t.name&&n.has(c[1])&&s.add(c[1])}return[...s]}function J_(e,t,n,r){let s=St(I(e,t.dir,"composer.json"),`${t.dir}/composer.json`,r);if(!s)return[];let o=new Set;for(let a of["require","require-dev"]){let l=s[a];if(!(!l||typeof l!="object"))for(let c of Object.keys(l))c!==t.name&&n.has(c)&&o.add(c)}return[...o]}function K_(e,t,n,r){for(let s of["build.gradle","build.gradle.kts"]){let o=q(I(e,t.dir,s));if(!o)continue;let a=new Set;for(let l of o.matchAll(/project\s*\(\s*["']:?([^"']+)["']\s*\)/g)){let c=l[1].replace(/:/g,"/"),d=r.get(c)??(n.has(c)?c:void 0);d&&d!==t.name&&a.add(d)}return[...a]}return[]}function X_(e,t,n,r,s){switch(t.kind){case"cargo":return H_(e,t,n,r);case"go":return G_(e,t,n,r);case"maven":return q_(e,t,n);case"uv":return V_(e,t,n);case"composer":return J_(e,t,n,s);case"gradle":return K_(e,t,n,r);default:return z_(e,t,n,s)}}function Z_(e){let t=new Map(e.map(o=>[o.name,[...o.dependsOn??[]].sort(M)])),n=new Map,r=[],s=o=>{n.set(o,"visiting"),r.push(o);for(let a of t.get(o)??[])if(t.has(a)){if(n.get(a)==="visiting")return[...r.slice(r.indexOf(a)),a];if(!n.has(a)){let l=s(a);if(l)return l}}return r.pop(),n.set(o,"done"),null};for(let o of[...t.keys()].sort(M))if(!n.has(o)){let a=s(o);if(a)return a}}function Y_(e){let t=new Map(e.map(r=>[r.name,new Set(r.dependsOn??[])])),n=[];for(;t.size>0;){let r=[...t.entries()].filter(([,s])=>[...s].every(o=>!t.has(o))).map(([s])=>s).sort(M);if(!r.length){n.push(...[...t.keys()].sort(M));break}for(let s of r)n.push(s),t.delete(s)}return n}function rn(e){let t=[],n=new Map,{positives:r,negations:s}=P_(e,t),o=r.length?r:$_(e,t);if(o.length){let m=new Map;for(let{pattern:f,kind:p}of o)ti(e,f,m,p,t);let u=s.map(ya);for(let[f,p]of m)u.some(g=>g.test(f))||n.set(f,p)}D_(e,n,t),L_(e,n,t),j_(e,n,t),W_(e,n,t),U_(e,n,t),B_(e,n,t);let a=[...n.values()].sort((m,u)=>M(m.dir,u.dir)),l=new Set(a.map(m=>m.name)),c=new Map(a.map(m=>[m.dir,m.name]));for(let m of a){let u=X_(e,m,l,c,t);u.length&&(m.dependsOn=u.sort(M))}let d=[...a].sort((m,u)=>u.dir.length-m.dir.length);return{packages:a,cycle:Z_(a),topoOrder:Y_(a),warnings:[...new Set(t)].sort(M),packageOf:m=>d.find(u=>m===u.dir||m.startsWith(u.dir+"/"))}}var x_,S_,Er=O(()=>{"use strict";E();Se();ae();Ne();Y();Ae();x_=new Set(["node_modules",".git","dist","build","target","coverage"]),S_=4});function Q_(e,t){return e.modules.find(n=>n.slug===t)?.community}function ih(e,t){let n=e.length,r=new Map(e.map((l,c)=>[l,c])),s=Array.from({length:n},()=>new Map);for(let l of t){if(l.dangling)continue;let c=r.get(l.from),d=r.get(l.to);c===void 0||d===void 0||c===d||(s[c].set(d,(s[c].get(d)??0)+l.weight),s[d].set(c,(s[d].get(c)??0)+l.weight))}let o=s.map(l=>{let c=0;for(let d of l.values())c+=d;return c}),a=o.reduce((l,c)=>l+c,0);return{n,adj:s,k:o,twoM:a}}function ba(e){let t=new Map,n=new Array(e.length);for(let r=0;rm);if(s===0)return ba(o);let a=r.slice(),l=!0,c=0;for(;l&&ch-y)){if(g===m)continue;let h=u.get(g)-Jd*r[d]*a[g]/s;h>p+nh&&(p=h,f=g)}a[f]+=r[d],f!==m&&(o[d]=f,l=!0)}}return ba(o)}function ah(e,t,n){let r=Array.from({length:n},()=>new Map);for(let a=0;a{let l=0;for(let c of a.values())l+=c;return l}),o=s.reduce((a,l)=>a+l,0);return{n,adj:r,k:s,twoM:o}}function Kd(e){if(e.n===0)return[];let t=e,n=Array.from({length:e.n},(r,s)=>s);for(let r=0;rn&&n.length>0)}function lh(e,t){let n=t.length,r=new Map;t.forEach((c,d)=>r.set(c,d));let s=Array.from({length:n},()=>new Map);for(let c=0;c{let d=0;for(let m of c.values())d+=m;return d}),a=o.reduce((c,d)=>c+d,0),l=Kd({n,adj:s,k:o,twoM:a});return Xd(l).map(c=>c.map(d=>t[d]))}function ch(e,t,n){let r=[];for(let s of e){if(s.length>rh*n&&s.length>=sh){let o=lh(t,s);if(o.length>1){r.push(...o);continue}}r.push(s)}return r}function dh(e,t){if(e.length!==t.length)return t.length-e.length;for(let n=0;n({id:Number(u),set:new Set(f)})),o=[];e.forEach((u,f)=>{for(let p of s){let g=0;for(let h of u)p.set.has(h)&&g++;g>0&&o.push({ni:f,prevId:p.id,inter:g})}}),o.sort((u,f)=>f.inter-u.inter||u.ni-f.ni||u.prevId-f.prevId);let a=new Map,l=new Set;for(let u of o)a.has(u.ni)||l.has(u.prevId)||(a.set(u.ni,u.prevId),l.add(u.prevId));let c=new Set;for(let u=0;u=0&&fm.slug).sort(M),o=ih(s,t),a=Kd(o),c=ch(Xd(a),o,s.length).map(m=>m.map(u=>s[u]).sort(M));c.sort(dh);let d=uh(c,n);return c.forEach((m,u)=>{for(let f of m)r.set(f,d[u])}),r}var Jd,eh,th,nh,rh,sh,xa=O(()=>{"use strict";E();Y();Jd=1,eh=20,th=10,nh=1e-12,rh=.25,sh=10});function ni(e){let t=new Map,n=new Map;for(let a of e.modules)a.community!==void 0&&t.set(a.slug,a.community),n.set(a.slug,a.tier);let r=new Map,s=(a,l)=>ar.get(s(a.comms[0],a.comms[1]))<=mh).map(a=>({from:a.edge.from,to:a.edge.to,kind:a.edge.kind,weight:a.edge.weight,communities:a.comms,pairEdges:r.get(s(a.comms[0],a.comms[1]))})).sort((a,l)=>a.pairEdges-l.pairEdges||M(a.from,l.from)||M(a.to,l.to)).slice(0,fh)}function gh(e,t,n){return(e.surprises??ni(e)).some(s=>s.from===t&&s.to===n)}var fh,mh,ph,Sa=O(()=>{"use strict";E();Y();fh=24,mh=2,ph=new Set(["import","call","use"])});function _h(e){let t={};for(let n of Object.keys(e).sort(M))t[n]=e[n];return t}function In(e){let t={...e,languages:_h(e.languages)};return JSON.stringify(t,null,2)+` -`}var ri=O(()=>{"use strict";E();Y()});function ty(e,t){return t!=="string"?!0:e.length>=Qh||ey.test(e)}function oy(e){if(!e)return!1;for(let t=0;t")&&!"=!<>+-*/%&|^".includes(e[t-1]??""))return iy.test(e.slice(t+1));return!1}function ay(e){let t=[];for(let n of e)Zh.has(n.kind)&&(oy(n.signature)||(n.endLine??n.line)-n.line>Yh||t.push(n));return t}function ly(e,t){let n;for(let r of e){let s=r.endLine??r.line;ts||(!n||r.line>n.line)&&(n=r)}return n}function sn(e,t={}){let n=t.minFiles??iu.minFiles,r=t.minCount??iu.minCount,s=new Map;for(let a of e.files){if(!a.literals?.length||!t.includeTests&&$t(a.rel))continue;let l;for(let c of a.literals){if(t.kinds&&!t.kinds.has(c.kind)||!ty(c.value,c.kind))continue;let d=`${c.kind}\0${c.value}`,m=s.get(d);m||s.set(d,m={value:c.value,kind:c.kind,sites:[]});let u=ly(l??=ay(a.symbols),c.line);m.sites.push(u?{file:a.rel,line:c.line,holder:u.name,holderExported:u.exported}:{file:a.rel,line:c.line})}}let o=[];for(let a of s.values()){let l=new Set(a.sites.map(p=>p.file));if(l.sizep.holder),d=a.sites.filter(p=>!p.holder),m=new Set(c.map(p=>p.holder)),f=new Set(c.map(p=>`${p.file}\0${p.holder}`)).size>=2?"competing":c.length>0?"bypassed":"uncentralized";if(a.kind==="number"){if(m.size!==1||d.length===0)continue;f="bypassed"}f==="bypassed"&&d.length===0||o.push({value:a.value,kind:a.kind,tier:f,holders:c.sort(ou),literals:d.sort(ou),files:l.size,count:a.sites.length})}return o.sort((a,l)=>au(a.tier)-au(l.tier)||l.files-a.files||l.count-a.count||M(a.value,l.value)),{duplications:o,families:cy(o)}}function ou(e,t){return M(e.file,t.file)||e.line-t.line}function au(e){return e==="competing"?0:e==="bypassed"?1:2}function cy(e){let t=new Map;for(let r of e){if(r.kind!=="string"||!ny.test(r.value))continue;let s=dy(r.value);if(!s)continue;let o=t.get(s);o?o.push(r):t.set(s,[r])}let n=[];for(let[r,s]of t){if(s.lengths.files-r.files||s.count-r.count||M(r.prefix,s.prefix)),n}function dy(e){let t=e.startsWith("/")?e.slice(1):e,n=t.search(/[/:]/);if(n<=0)return;let r=(e.startsWith("/")?"/":"")+t.slice(0,n);return r.length>=sy?r:void 0}var lu,iu,Zh,Yh,Qh,ey,ny,ry,sy,iy,vr=O(()=>{"use strict";E();vn();Y();lu=24,iu={minFiles:2,minCount:3},Zh=new Set(["const","constant","variable","enum","enumerator","property","field","static"]),Yh=12,Qh=6,ey=/[/:._-]/;ny=/^[/@a-z0-9][\w./:@-]*$/i,ry=2,sy=4,iy=/^\s*(?:async\b|function\b|\(|[A-Za-z_$][\w$]*\s*=>)/});function uy(e,t={}){return vt(Le(e,t),t)}function vt(e,t={}){let n=na(e),{modules:r,moduleOf:s}=Ko(e),o=oa(e,n,r,s,t.meta),a=wa(o.modules,o.moduleEdges,t.previousCommunities);for(let u of o.modules){let f=a.get(u.slug);f!==void 0&&(u.community=f)}ea(o);let l=_r(o);for(let u of o.files)l.testFiles.has(u.rel)&&(u.testFile=!0);for(let u of o.modules){let f=l.testedByModule.get(u.slug);f?.length&&(u.testedBy=f)}let c=ni(o);c.length&&(o.surprises=c);let{duplications:d}=sn(e);d.length&&(o.literalDuplications=d.slice(0,lu));let m=Qo(e,Xs(e),t.meta?.schemaVersion);return{scan:e,graph:o,symbols:m}}var oi=O(()=>{"use strict";E();Pt();pt();Ws();Zs();xa();Js();vn();Sa();vr();ur()});function my(e){return e.sort((t,n)=>M(t.file,n.file)||t.line-n.line)}function py(e,t,n){let r=["--no-heading","--line-number","--null","--color=never","--no-messages","--hidden","--no-require-git","--no-ignore-global","--no-ignore-exclude","--no-ignore-parent","--no-ignore-dot","--max-filesize","1M"];for(let c of Gt)r.push("--glob",`!**/${c}/**`);for(let c of zi)r.push("--iglob",`!**/${c}`);for(let c of Hi)r.push("--iglob",`!**/*${c}`);r.push("--glob","!*.min.js","--glob","!*.min.css"),n.ignoreCase&&r.push("--ignore-case");let s=n.globs??[],o=c=>c.startsWith("/")?c:`/${c}`;for(let c of s.filter(d=>!d.startsWith("!")))r.push("--glob",o(c));for(let c of s.filter(d=>d.startsWith("!")))r.push("--glob",`!${o(c.slice(1))}`);r.push("--regexp",t,"./");let a=pe("rg",r,{cwd:e});if(a.missing||!a.ok&&a.status!==1)return;let l=[];for(let c of a.stdout.split(` -`)){if(!c)continue;let d=c.indexOf("\0");if(d===-1)continue;let m=c.slice(0,d).replace(/^\.\//,""),u=c.slice(d+1),f=u.indexOf(":");f!==-1&&l.push({file:m,line:Number(u.slice(0,f)),text:u.slice(f+1)})}return l}function gy(e,t,n){let r=lc(n.globs?.map(o=>o.replace(/^(!?)\//,"$1"))),s=[];for(let o of Pe(e).files){if(r&&!r(o.rel))continue;let a=q(o.abs);if(!a)continue;let l=a.split(` -`);for(let c=0;c{"use strict";E();Ne();Gn();Ae();Y();fy=200});function Rt(e){let t=R.env.CODEINDEX_EMBED_DIR,n=[];t&&n.push(t),e&&n.push(I(e,".codeindex",cu)),n.push(I(R.cwd(),".codeindex",cu));for(let r of n)if(H(I(r,"model.json")))return r}function yy(e){return Rt(e)!==void 0}function Ea(e,t){let{modelId:n,dim:r,vocab:s,weights:o,unk:a}=e??{};if(typeof n!="string"||!n)throw new Error(`embed model: missing modelId in ${t}`);if(!Number.isInteger(r)||r<=0)throw new Error(`embed model: bad dim ${r} in ${t}`);if(!Array.isArray(s)||!Array.isArray(o)||s.length!==o.length)throw new Error(`embed model: vocab/weights length mismatch in ${t}`);let l=s.length,c=new Float64Array(l*r),d=new Map;for(let f=0;f{"use strict";E();ms();Se();ae();it=1,cu="models",_y="https://github.com/maxgfr/codeindex/releases/download/embed-model-v1/model.json",hy="163ad053eab4e9a80d421ed4164f32292c83290f02fbbe6fe4b9b1cd6ea18d34"});function uu(e){let t=ht(e).replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2"),n=[];for(let r of t.toLowerCase().split(/[^a-z0-9]+/))r&&n.push(r);return n}function fu(e,t){if(!e)return[];let n=[],r=0,s=e.length;for(;rr;){let l=r===0?e.slice(r,o):"##"+e.slice(r,o),c=t.vocab.get(l);if(c!==void 0){a=c;break}o--}if(a===-1)return t.unkId>=0?[t.unkId]:[];n.push(a),r=o}return n}function mu(e,t){let n=[];for(let r of uu(e))for(let s of fu(r,t))n.push(s);return n}function pu(e){let t=Math.floor(e),n=e-t;return n<.5?t:n>.5?t+1:t%2===0?t:t+1}function Cr(e){let t=e.length,n=new Int8Array(t),r=0;for(let o=0;oMr?a=Mr:a<-Mr&&(a=-Mr),n[o]=a}return n}function Ar(e,t){let{dim:n,weights:r}=e,s=mu(t,e);if(s.length===0)return new Int8Array(n);let o=new Float64Array(n);for(let l of s){let c=l*n;for(let d=0;d{"use strict";E();Ae();Mr=127});function by(e,t,n,r){return[t,n??"",r??"",e.replace(/\//g," ")].join(` -`)}function wy(e,t,n,r){return[t??"",n??"",...r,e.replace(/\//g," ")].join(` -`)}function li(e){let t=[];for(let n of e.files){let r=new Set,s=!1;for(let o of n.symbols)r.has(o.name)||(r.add(o.name),s=!0,t.push({file:n.rel,symbol:o.name,line:o.line,text:by(n.rel,o.name,o.signature,n.summary)}));if(!s){let o=wy(n.rel,n.title,n.summary,n.headings);o.replace(/\s+/g,"")&&t.push({file:n.rel,text:o})}}return t}function an(e,t){let n=li(e).map(r=>{let s={file:r.file,vec:Ar(t,r.text)};return r.symbol!==void 0&&(s.symbol=r.symbol),r.line!==void 0&&(s.line=r.line),s});return{embedVersion:it,modelId:t.modelId,dim:t.dim,records:n}}function ci(e){let t=JSON.stringify({embedVersion:e.embedVersion,modelId:e.modelId,dim:e.dim,count:e.records.length,records:e.records.map(a=>({file:a.file,symbol:a.symbol??"",line:a.line??0}))}),n=new TextEncoder().encode(t),r=e.records.length*e.dim,s=new Uint8Array(8+n.length+r);s.set([67,73,69,49],0),new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(4,n.length,!0),s.set(n,8);let o=8+n.length;for(let a of e.records)for(let l=0;le.byteLength)throw new Error("embeddings.bin: truncated header");let r=JSON.parse(new TextDecoder().decode(e.subarray(8,8+n))),s=8+n,{dim:o}=r;if(s+r.records.length*o>e.byteLength)throw new Error("embeddings.bin: truncated body");let a=r.records.map((l,c)=>{let d=new Int8Array(e.buffer.slice(e.byteOffset+s+c*o,e.byteOffset+s+(c+1)*o)),m={file:l.file,vec:d};return l.symbol&&(m.symbol=l.symbol),l.line&&(m.line=l.line),m});return{embedVersion:r.embedVersion,modelId:r.modelId,dim:o,records:a}}var xy,Fn=O(()=>{"use strict";E();Tr();on();xy="CIE1"});function ln(e,t,n,r={}){let s=r.limit??ky,o=Dt(e,t,{limit:Math.max(s,50),fuzzy:r.fuzzy}),a=r.queryVec??(r.model?Ar(r.model,t):void 0);if(!a||!n||n.records.length===0)return o.slice(0,s);let l=new Map;for(let p of n.records){let g=Ra(a,p.vec),h=l.get(p.file);(!h||g>h.score)&&l.set(p.file,{score:g,symbol:p.symbol})}let c=[...l.entries()].filter(([,p])=>p.score>0).sort((p,g)=>g[1].score-p[1].score||M(p[0],g[0])).map(([p])=>p),d=o.map(p=>p.file),m=Wi([d,c],p=>p,r.rrfK??Ey),u=new Map(o.map(p=>[p.file,p]));return[...m.entries()].sort((p,g)=>g[1]-p[1]||M(p[0],g[0])).map(([p,g])=>{let h=u.get(p),y={file:p,score:Number(g.toFixed(4)),matchedTerms:h?.matchedTerms??[],topSymbols:h?.topSymbols??[]},S=l.get(p);return S?.symbol&&(y.semanticSymbol=S.symbol),h?.fuzzyTerms&&(y.fuzzyTerms=h.fuzzyTerms),y}).slice(0,s)}var ky,Ey,di=O(()=>{"use strict";E();Ae();Y();Mn();Tr();ky=20,Ey=60});function Ut(e={}){let t=e.url??R.env.CODEINDEX_EMBED_ENDPOINT;return t&&t.trim()?t.trim():void 0}function gu(e){return e.replace(/\/+$/,"")}function _u(e){let t=gu(e);return t.endsWith("/embed")?t:t+"/embed"}function hu(e){return gu(e).replace(/\/embed$/,"")+"/healthz"}function yu(e){if(typeof e.timeoutMs=="number")return e.timeoutMs;let t=Number(R.env.CODEINDEX_EMBED_TIMEOUT_MS);return Number.isFinite(t)&&t>0?t:3e4}async function Ma(e,t={}){let n=Ut(t);if(!n)throw new Error("no embedding endpoint configured (set CODEINDEX_EMBED_ENDPOINT or pass opts.url)");let r=_u(n),s=new AbortController,o=setTimeout(()=>s.abort(),yu(t));try{let a=await fetch(r,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify({texts:e}),signal:s.signal});if(!a.ok)throw new Error(`embedding endpoint ${r} returned HTTP ${a.status}`);let c=(await a.json()).vectors;if(!Array.isArray(c)||!c.every(d=>Array.isArray(d)&&d.every(m=>typeof m=="number")))throw new Error(`embedding endpoint ${r} returned a malformed { vectors } payload`);return c}finally{clearTimeout(o)}}async function Ir(e,t={}){let n=new AbortController,r=setTimeout(()=>n.abort(),yu(t));try{return(await fetch(hu(e),{signal:n.signal,headers:t.headers})).ok}catch{return!1}finally{clearTimeout(r)}}async function Nr(e,t={}){let[n]=await Ma([e],t);if(!n)throw new Error("embedding endpoint returned no vector for the query");return Cr(n)}async function Fr(e,t={}){let n=li(e),r=t.batchSize&&t.batchSize>0?t.batchSize:64,s=[],o=0;for(let a=0;ad.text),t);if(c.length!==l.length)throw new Error(`embedding endpoint returned ${c.length} vectors for ${l.length} texts`);for(let d=0;do&&(o=u.length);let f={file:m.file,vec:u};m.symbol!==void 0&&(f.symbol=m.symbol),m.line!==void 0&&(f.line=m.line),s.push(f)}}return{embedVersion:it,modelId:"endpoint",dim:o,records:s}}var ui=O(()=>{"use strict";E();Tr();on();Fn()});function cn(e,t,n={}){let r=(n.budgetTokens??1024)*bu,s=n.maxSymbolsPerFile??8,o=[...t.files].filter(m=>m.fileKind==="code").sort((m,u)=>(u.pagerank??0)-(m.pagerank??0)||u.symbols-m.symbols||M(m.rel,u.rel)),a=new Map(e.files.map(m=>[m.rel,m])),c=`# repo map \u2014 ${t.fileCount} files -`,d=0;for(let m of o){let u=a.get(m.rel);if(!u)continue;let f=[...u.symbols].filter(g=>g.kind!=="reexport"&&g.kind!=="reexport-all").sort((g,h)=>Number(h.exported)-Number(g.exported)||g.line-h.line).slice(0,s),p=` +`),Xd(t)}function ha(e,t){try{return Q(_a(e,t),"utf8")}catch{return}}function ya(e,t){let n=_a(e,t);try{xe(n)}catch{return!1}return qe(n),!0}function ba(e){let t=I(e,...Kd),n=[],s=(r,o)=>{let a;try{a=hn(r,{withFileTypes:!0})}catch{return}for(let l of a)l.isDirectory()?s(I(r,l.name),o?`${o}/${l.name}`:l.name):l.name.endsWith(".md")&&n.push(o?`${o}/${l.name.slice(0,-3)}`:l.name.slice(0,-3))};return s(t,""),n.sort()}var Kd,ni=O(()=>{"use strict";E();Se();ae();Kd=[".codeindex","memories"]});function St(e,t,n){let s=G(e);if(s)try{let r=JSON.parse(s);if(r&&typeof r=="object")return r;t&&n&&n.push(`malformed ${t}: not a JSON object`);return}catch(r){if(t&&n){let o=String(r instanceof Error?r.message:r).split(` +`)[0];n.push(`malformed ${t}: ${o}`)}return}}function jt(e,t){let n=new RegExp(`^\\[${Ge(t)}\\]\\s*$([\\s\\S]*?)(?=^\\[|$(?![\\s\\S]))`,"m"),s=e.match(n);return s?s[1]:null}function kr(e,t){let n=e.match(new RegExp(`${Ge(t)}\\s*=\\s*\\[([^\\]]*)\\]`));return n?n[1].split(/\r?\n/).map(s=>s.replace(/#.*$/,"")).join(` +`).split(",").map(s=>s.trim().replace(/^["']|["']$/g,"")).filter(Boolean):[]}function In(e,t){return e?.match(new RegExp(`^\\s*${Ge(t)}\\s*=\\s*["']([^"']+)["']`,"m"))?.[1]}function wa(e){let t="";for(let n=0;nA_(e,t,n,s),o=()=>T_(e,t),a=()=>I_(e,t),l=()=>F_(e,t),c=()=>N_(e,t),d=()=>O_(e,t,s),m=()=>P_(e,t,s),f=n==="go"?[a,r,o,l,c,d,m]:n==="uv"?[c,r,o,a,l,d,m]:n==="composer"?[d,r,c,o,a,l,m]:n==="gradle"?[r,l,o,a,c,d,m,()=>$_(e,t)]:[r,o,a,l,c,d,m];for(let p of f){let g=p();if(g)return g}}function L_(e){return e.replace(/[\s\S]*?<\/parent>/g,"").replace(/[\s\S]*?<\/dependencies>/g,"").match(/\s*([^<]+?)\s*<\/artifactId>/)?.[1]}function Er(e,t,n,s,r){let o=t.replace(/^\.\//,"").replace(/\/+$/,"");if(!o||o==="."||n.has(o)||o.split("/").includes(".."))return;let a=D_(e,o,s,r);a&&n.set(o,a)}function j_(e,t){try{return xe(I(e,t)).isDirectory()}catch{return!1}}function Zd(e,t){let n;try{n=hn(t?I(e,t):e,{withFileTypes:!0})}catch{return[]}return n.filter(s=>s.isDirectory()&&!s.name.startsWith(".")&&!M_.has(s.name)).map(s=>t?`${t}/${s.name}`:s.name).sort(M)}function Yd(e,t,n,s){if(!(n>C_))for(let r of Zd(e,t))s.push(r),Yd(e,r,n+1,s)}function W_(e,t){let n=t.split("/").filter(r=>r&&r!==".");if(n.includes(".."))return[];let s=[""];for(let r of n){let o=new Set;if(r==="**")for(let a of s){a&&o.add(a);let l=[];Yd(e,a,0,l);for(let c of l)o.add(c)}else if(r.includes("*")){let a=new RegExp(`^${r.split("*").map(Ge).join("[^/]*")}$`);for(let l of s)for(let c of Zd(e,l))a.test(c.split("/").pop())&&o.add(c)}else for(let a of s){let l=a?`${a}/${r}`:r;j_(e,l)&&o.add(l)}if(s=[...o],!s.length)return[]}return s.filter(Boolean)}function ri(e,t,n,s,r){let o=t.replace(/^\.\//,"").replace(/\/+$/,"");if(o){if(!o.includes("*")){Er(e,o,n,s,r);return}for(let a of W_(e,o))Er(e,a,n,s,r)}}function U_(e,t){let n=[],s=[],r=(d,m)=>{let u=d.trim();u&&(u.startsWith("!")?s.push(u.slice(1)):n.push({pattern:u,kind:m}))},a=St(I(e,"package.json"),"package.json",t)?.workspaces;if(Array.isArray(a))for(let d of a)typeof d=="string"&&r(d,"npm");else if(a&&typeof a=="object"&&Array.isArray(a.packages))for(let d of a.packages)typeof d=="string"&&r(d,"npm");let l=G(I(e,"pnpm-workspace.yaml")),c=!1;for(let d of l.split(/\r?\n/)){if(/^\S/.test(d)){c=/^packages\s*:/.test(d);continue}if(!c)continue;let m=d.match(/^\s*-\s*['"]?([^'"#]+?)['"]?\s*(?:#.*)?$/);m&&r(m[1].trim(),"pnpm")}return{positives:n,negations:s}}function B_(e,t){let n=St(I(e,"lerna.json"),"lerna.json",t);if(n&&Array.isArray(n.packages))return n.packages.filter(r=>typeof r=="string").map(r=>({pattern:r,kind:"lerna"}));let s=St(I(e,"nx.json"),"nx.json",t);if(s){let r=s.workspaceLayout??{},o=typeof r.appsDir=="string"?r.appsDir:"apps",a=typeof r.libsDir=="string"?r.libsDir:"libs";return[...new Set([o,a])].map(l=>({pattern:`${l}/*`,kind:"nx"}))}return[]}function z_(e,t,n){let s=G(I(e,"Cargo.toml"));if(!s)return;let r=jt(s,"workspace");if(!r)return;let o=kr(r,"members");if(!o.length)return;let a=kr(r,"exclude").map(wa),l=new Map;for(let c of o)ri(e,c,l,"cargo",n);for(let[c,d]of l)a.some(m=>m.test(c))||t.has(c)||t.set(c,d)}function H_(e,t,n){let s=G(I(e,"go.work"));if(!s)return;let r=[];for(let o of s.matchAll(/^use\s*\(([\s\S]*?)\)/gm))for(let a of o[1].split(/\r?\n/)){let l=a.replace(/\/\/.*$/,"").trim();l&&r.push(l)}for(let o of s.matchAll(/^use\s+([^\s(]+)/gm))r.push(o[1]);for(let o of r)o==="."||o==="./"||Er(e,o,t,"go",n)}function q_(e,t,n){let s=G(I(e,"pom.xml"));if(!s)return;let r=s.match(/([\s\S]*?)<\/modules>/)?.[1];if(r)for(let o of r.matchAll(/\s*([^<]+?)\s*<\/module>/g))Er(e,o[1],t,"maven",n)}function G_(e,t,n){let s=G(I(e,"pyproject.toml"));if(!s)return;let r=jt(s,"tool.uv.workspace");if(!r)return;let o=kr(r,"members");if(!o.length)return;let a=kr(r,"exclude").map(wa),l=new Map;for(let c of o)ri(e,c,l,"uv",n);for(let[c,d]of l)a.some(m=>m.test(c))||t.has(c)||t.set(c,d)}function V_(e,t,n){let r=St(I(e,"composer.json"),"composer.json",n)?.repositories;if(Array.isArray(r))for(let o of r){if(!o||typeof o!="object")continue;let{type:a,url:l}=o;a==="path"&&typeof l=="string"&&l&&ri(e,l,t,"composer",n)}}function J_(e,t,n){for(let s of["settings.gradle","settings.gradle.kts"]){let r=G(I(e,s));if(r){for(let o of r.split(/\r?\n/))if(/^\s*include[\s(]/.test(o))for(let a of o.matchAll(/["']([^"']+)["']/g)){let l=a[1].replace(/^:/,"").replace(/:/g,"/");l&&Er(e,l,t,"gradle",n)}}}}function K_(e,t,n,s){let r=St(I(e,t.dir,"package.json"),`${t.dir}/package.json`,s);if(!r)return[];let o=new Set;for(let a of["dependencies","devDependencies","peerDependencies"]){let l=r[a];if(!(!l||typeof l!="object"))for(let c of Object.keys(l))c!==t.name&&n.has(c)&&o.add(c)}return[...o]}function Qd(e,t){let n=`${e}/${t}`.split("/"),s=[];for(let r of n)!r||r==="."||(r===".."?s.pop():s.push(r));return s.join("/")}function X_(e,t,n,s){let r=G(I(e,t.dir,"Cargo.toml"));if(!r)return[];let o=new Set;for(let a of["dependencies","dev-dependencies","build-dependencies"]){let l=jt(r,a);if(l)for(let c of l.split(/\r?\n/)){let d=c.match(/^\s*([A-Za-z0-9_-]+)\s*=\s*(.+)$/);if(!d)continue;let m=d[1];if(m!==t.name&&n.has(m)){o.add(m);continue}let u=d[2].match(/path\s*=\s*["']([^"']+)["']/);if(u){let f=s.get(Qd(t.dir,u[1]));f&&f!==t.name&&o.add(f)}}}return[...o]}function Z_(e,t,n,s){let r=G(I(e,t.dir,"go.mod"));if(!r)return[];let o=new Set;for(let a of r.matchAll(/^\s*(?:require\s+)?([^\s/(][^\s]*)\s+v[^\s]+/gm)){let l=a[1];l!==t.name&&n.has(l)&&o.add(l)}for(let a of r.matchAll(/^\s*(?:replace\s+)?(\S+)(?:\s+\S+)?\s*=>\s*(\.\.?\/\S+)/gm)){let l=s.get(Qd(t.dir,a[2]));l&&l!==t.name&&o.add(l)}return[...o]}function Y_(e,t,n){let s=G(I(e,t.dir,"pom.xml"));if(!s)return[];let r=new Set;for(let o of s.replace(/[\s\S]*?<\/parent>/g,"").matchAll(/([\s\S]*?)<\/dependency>/g)){let a=o[1].match(/\s*([^<]+?)\s*<\/artifactId>/)?.[1];a&&a!==t.name&&n.has(a)&&r.add(a)}return[...r]}function Q_(e,t,n){let s=G(I(e,t.dir,"pyproject.toml"));if(!s)return[];let r=new Set,o=jt(s,"project");if(o)for(let l of kr(o,"dependencies")){let c=l.match(/^[A-Za-z0-9_.-]+/)?.[0];c&&c!==t.name&&n.has(c)&&r.add(c)}let a=jt(s,"tool.uv.sources");if(a)for(let l of a.split(/\r?\n/)){let c=l.match(/^\s*([A-Za-z0-9_.-]+)\s*=\s*\{[^}]*workspace\s*=\s*true/);c&&c[1]!==t.name&&n.has(c[1])&&r.add(c[1])}return[...r]}function eh(e,t,n,s){let r=St(I(e,t.dir,"composer.json"),`${t.dir}/composer.json`,s);if(!r)return[];let o=new Set;for(let a of["require","require-dev"]){let l=r[a];if(!(!l||typeof l!="object"))for(let c of Object.keys(l))c!==t.name&&n.has(c)&&o.add(c)}return[...o]}function th(e,t,n,s){for(let r of["build.gradle","build.gradle.kts"]){let o=G(I(e,t.dir,r));if(!o)continue;let a=new Set;for(let l of o.matchAll(/project\s*\(\s*["']:?([^"']+)["']\s*\)/g)){let c=l[1].replace(/:/g,"/"),d=s.get(c)??(n.has(c)?c:void 0);d&&d!==t.name&&a.add(d)}return[...a]}return[]}function nh(e,t,n,s,r){switch(t.kind){case"cargo":return X_(e,t,n,s);case"go":return Z_(e,t,n,s);case"maven":return Y_(e,t,n);case"uv":return Q_(e,t,n);case"composer":return eh(e,t,n,r);case"gradle":return th(e,t,n,s);default:return K_(e,t,n,r)}}function rh(e){let t=new Map(e.map(o=>[o.name,[...o.dependsOn??[]].sort(M)])),n=new Map,s=[],r=o=>{n.set(o,"visiting"),s.push(o);for(let a of t.get(o)??[])if(t.has(a)){if(n.get(a)==="visiting")return[...s.slice(s.indexOf(a)),a];if(!n.has(a)){let l=r(a);if(l)return l}}return s.pop(),n.set(o,"done"),null};for(let o of[...t.keys()].sort(M))if(!n.has(o)){let a=r(o);if(a)return a}}function sh(e){let t=new Map(e.map(s=>[s.name,new Set(s.dependsOn??[])])),n=[];for(;t.size>0;){let s=[...t.entries()].filter(([,r])=>[...r].every(o=>!t.has(o))).map(([r])=>r).sort(M);if(!s.length){n.push(...[...t.keys()].sort(M));break}for(let r of s)n.push(r),t.delete(r)}return n}function rn(e){let t=[],n=new Map,{positives:s,negations:r}=U_(e,t),o=s.length?s:B_(e,t);if(o.length){let m=new Map;for(let{pattern:f,kind:p}of o)ri(e,f,m,p,t);let u=r.map(wa);for(let[f,p]of m)u.some(g=>g.test(f))||n.set(f,p)}z_(e,n,t),H_(e,n,t),q_(e,n,t),G_(e,n,t),V_(e,n,t),J_(e,n,t);let a=[...n.values()].sort((m,u)=>M(m.dir,u.dir)),l=new Set(a.map(m=>m.name)),c=new Map(a.map(m=>[m.dir,m.name]));for(let m of a){let u=nh(e,m,l,c,t);u.length&&(m.dependsOn=u.sort(M))}let d=[...a].sort((m,u)=>u.dir.length-m.dir.length);return{packages:a,cycle:rh(a),topoOrder:sh(a),warnings:[...new Set(t)].sort(M),packageOf:m=>d.find(u=>m===u.dir||m.startsWith(u.dir+"/"))}}var M_,C_,vr=O(()=>{"use strict";E();Se();ae();Fe();Y();Ae();M_=new Set(["node_modules",".git","dist","build","target","coverage"]),C_=4});function ih(e,t){return e.modules.find(n=>n.slug===t)?.community}function uh(e,t){let n=e.length,s=new Map(e.map((l,c)=>[l,c])),r=Array.from({length:n},()=>new Map);for(let l of t){if(l.dangling)continue;let c=s.get(l.from),d=s.get(l.to);c===void 0||d===void 0||c===d||(r[c].set(d,(r[c].get(d)??0)+l.weight),r[d].set(c,(r[d].get(c)??0)+l.weight))}let o=r.map(l=>{let c=0;for(let d of l.values())c+=d;return c}),a=o.reduce((l,c)=>l+c,0);return{n,adj:r,k:o,twoM:a}}function xa(e){let t=new Map,n=new Array(e.length);for(let s=0;sm);if(r===0)return xa(o);let a=s.slice(),l=!0,c=0;for(;l&&ch-y)){if(g===m)continue;let h=u.get(g)-eu*s[d]*a[g]/r;h>p+lh&&(p=h,f=g)}a[f]+=s[d],f!==m&&(o[d]=f,l=!0)}}return xa(o)}function mh(e,t,n){let s=Array.from({length:n},()=>new Map);for(let a=0;a{let l=0;for(let c of a.values())l+=c;return l}),o=r.reduce((a,l)=>a+l,0);return{n,adj:s,k:r,twoM:o}}function tu(e){if(e.n===0)return[];let t=e,n=Array.from({length:e.n},(s,r)=>r);for(let s=0;sn&&n.length>0)}function ph(e,t){let n=t.length,s=new Map;t.forEach((c,d)=>s.set(c,d));let r=Array.from({length:n},()=>new Map);for(let c=0;c{let d=0;for(let m of c.values())d+=m;return d}),a=o.reduce((c,d)=>c+d,0),l=tu({n,adj:r,k:o,twoM:a});return nu(l).map(c=>c.map(d=>t[d]))}function gh(e,t,n){let s=[];for(let r of e){if(r.length>ch*n&&r.length>=dh){let o=ph(t,r);if(o.length>1){s.push(...o);continue}}s.push(r)}return s}function _h(e,t){if(e.length!==t.length)return t.length-e.length;for(let n=0;n({id:Number(u),set:new Set(f)})),o=[];e.forEach((u,f)=>{for(let p of r){let g=0;for(let h of u)p.set.has(h)&&g++;g>0&&o.push({ni:f,prevId:p.id,inter:g})}}),o.sort((u,f)=>f.inter-u.inter||u.ni-f.ni||u.prevId-f.prevId);let a=new Map,l=new Set;for(let u of o)a.has(u.ni)||l.has(u.prevId)||(a.set(u.ni,u.prevId),l.add(u.prevId));let c=new Set;for(let u=0;u=0&&fm.slug).sort(M),o=uh(r,t),a=tu(o),c=gh(nu(a),o,r.length).map(m=>m.map(u=>r[u]).sort(M));c.sort(_h);let d=hh(c,n);return c.forEach((m,u)=>{for(let f of m)s.set(f,d[u])}),s}var eu,oh,ah,lh,ch,dh,ka=O(()=>{"use strict";E();Y();eu=1,oh=20,ah=10,lh=1e-12,ch=.25,dh=10});function si(e){let t=new Map,n=new Map;for(let a of e.modules)a.community!==void 0&&t.set(a.slug,a.community),n.set(a.slug,a.tier);let s=new Map,r=(a,l)=>as.get(r(a.comms[0],a.comms[1]))<=bh).map(a=>({from:a.edge.from,to:a.edge.to,kind:a.edge.kind,weight:a.edge.weight,communities:a.comms,pairEdges:s.get(r(a.comms[0],a.comms[1]))})).sort((a,l)=>a.pairEdges-l.pairEdges||M(a.from,l.from)||M(a.to,l.to)).slice(0,yh)}function xh(e,t,n){return(e.surprises??si(e)).some(r=>r.from===t&&r.to===n)}var yh,bh,wh,Ea=O(()=>{"use strict";E();Y();yh=24,bh=2,wh=new Set(["import","call","use"])});function Sh(e){let t={};for(let n of Object.keys(e).sort(M))t[n]=e[n];return t}function Fn(e){let t={...e,languages:Sh(e.languages)};return JSON.stringify(t,null,2)+` +`}var ii=O(()=>{"use strict";E();Y()});function ay(e,t){return t!=="string"?!0:e.length>=iy||oy.test(e)}function fy(e){if(!e)return!1;for(let t=0;t")&&!"=!<>+-*/%&|^".includes(e[t-1]??""))return uy.test(e.slice(t+1));return!1}function my(e){let t=[];for(let n of e)ry.has(n.kind)&&(fy(n.signature)||(n.endLine??n.line)-n.line>sy||t.push(n));return t}function py(e,t){let n;for(let s of e){let r=s.endLine??s.line;tr||(!n||s.line>n.line)&&(n=s)}return n}function sn(e,t={}){let n=t.minFiles??uu.minFiles,s=t.minCount??uu.minCount,r=new Map;for(let a of e.files){if(!a.literals?.length||!t.includeTests&&$t(a.rel))continue;let l;for(let c of a.literals){if(t.kinds&&!t.kinds.has(c.kind)||!ay(c.value,c.kind))continue;let d=`${c.kind}\0${c.value}`,m=r.get(d);m||r.set(d,m={value:c.value,kind:c.kind,sites:[]});let u=py(l??=my(a.symbols),c.line);m.sites.push(u?{file:a.rel,line:c.line,holder:u.name,holderExported:u.exported}:{file:a.rel,line:c.line})}}let o=[];for(let a of r.values()){let l=new Set(a.sites.map(p=>p.file));if(l.sizep.holder),d=a.sites.filter(p=>!p.holder),m=new Set(c.map(p=>p.holder)),f=new Set(c.map(p=>`${p.file}\0${p.holder}`)).size>=2?"competing":c.length>0?"bypassed":"uncentralized";if(a.kind==="number"){if(m.size!==1||d.length===0)continue;f="bypassed"}f==="bypassed"&&d.length===0||o.push({value:a.value,kind:a.kind,tier:f,holders:c.sort(fu),literals:d.sort(fu),files:l.size,count:a.sites.length})}return o.sort((a,l)=>mu(a.tier)-mu(l.tier)||l.files-a.files||l.count-a.count||M(a.value,l.value)),{duplications:o,families:gy(o)}}function fu(e,t){return M(e.file,t.file)||e.line-t.line}function mu(e){return e==="competing"?0:e==="bypassed"?1:2}function gy(e){let t=new Map;for(let s of e){if(s.kind!=="string"||!ly.test(s.value))continue;let r=_y(s.value);if(!r)continue;let o=t.get(r);o?o.push(s):t.set(r,[s])}let n=[];for(let[s,r]of t){if(r.lengthr.files-s.files||r.count-s.count||M(s.prefix,r.prefix)),n}function _y(e){let t=e.startsWith("/")?e.slice(1):e,n=t.search(/[/:]/);if(n<=0)return;let s=(e.startsWith("/")?"/":"")+t.slice(0,n);return s.length>=dy?s:void 0}var pu,uu,ry,sy,iy,oy,ly,cy,dy,uy,Rr=O(()=>{"use strict";E();Rn();Y();pu=24,uu={minFiles:2,minCount:3},ry=new Set(["const","constant","variable","enum","enumerator","property","field","static"]),sy=12,iy=6,oy=/[/:._-]/;ly=/^[/@a-z0-9][\w./:@-]*$/i,cy=2,dy=4,uy=/^\s*(?:async\b|function\b|\(|[A-Za-z_$][\w$]*\s*=>)/});function hy(e,t={}){return vt(Le(e,t),t)}function vt(e,t={}){let n=sa(e),{modules:s,moduleOf:r}=Zo(e),o=la(e,n,s,r,t.meta),a=Sa(o.modules,o.moduleEdges,t.previousCommunities);for(let u of o.modules){let f=a.get(u.slug);f!==void 0&&(u.community=f)}na(o);let l=hr(o);for(let u of o.files)l.testFiles.has(u.rel)&&(u.testFile=!0);for(let u of o.modules){let f=l.testedByModule.get(u.slug);f?.length&&(u.testedBy=f)}let c=si(o);c.length&&(o.surprises=c);let{duplications:d}=sn(e);d.length&&(o.literalDuplications=d.slice(0,pu));let m=ta(e,Ys(e),t.meta?.schemaVersion);return{scan:e,graph:o,symbols:m}}var li=O(()=>{"use strict";E();Pt();pt();Bs();Qs();ka();Xs();Rn();Ea();Rr();fr()});function by(e){return e.sort((t,n)=>M(t.file,n.file)||t.line-n.line)}function wy(e,t,n){let s=["--no-heading","--line-number","--null","--color=never","--no-messages","--hidden","--no-require-git","--no-ignore-global","--no-ignore-exclude","--no-ignore-parent","--no-ignore-dot","--max-filesize","1M"];for(let c of qt)s.push("--glob",`!**/${c}/**`);for(let c of qi)s.push("--iglob",`!**/${c}`);for(let c of Gi)s.push("--iglob",`!**/*${c}`);s.push("--glob","!*.min.js","--glob","!*.min.css"),n.ignoreCase&&s.push("--ignore-case");let r=n.globs??[],o=c=>c.startsWith("/")?c:`/${c}`;for(let c of r.filter(d=>!d.startsWith("!")))s.push("--glob",o(c));for(let c of r.filter(d=>d.startsWith("!")))s.push("--glob",`!${o(c.slice(1))}`);s.push("--regexp",t,"./");let a=pe("rg",s,{cwd:e});if(a.missing||!a.ok&&a.status!==1)return;let l=[];for(let c of a.stdout.split(` +`)){if(!c)continue;let d=c.indexOf("\0");if(d===-1)continue;let m=c.slice(0,d).replace(/^\.\//,""),u=c.slice(d+1),f=u.indexOf(":");f!==-1&&l.push({file:m,line:Number(u.slice(0,f)),text:u.slice(f+1)})}return l}function xy(e,t,n){let s=dc(n.globs?.map(o=>o.replace(/^(!?)\//,"$1"))),r=[];for(let o of Pe(e).files){if(s&&!s(o.rel))continue;let a=G(o.abs);if(!a)continue;let l=a.split(` +`);for(let c=0;c{"use strict";E();Fe();Gn();Ae();Y();yy=200});function Rt(e){let t=R.env.CODEINDEX_EMBED_DIR,n=[];t&&n.push(t),e&&n.push(I(e,".codeindex",gu)),n.push(I(R.cwd(),".codeindex",gu));for(let s of n)if(H(I(s,"model.json")))return s}function Ey(e){return Rt(e)!==void 0}function Ra(e,t){let{modelId:n,dim:s,vocab:r,weights:o,unk:a}=e??{};if(typeof n!="string"||!n)throw new Error(`embed model: missing modelId in ${t}`);if(!Number.isInteger(s)||s<=0)throw new Error(`embed model: bad dim ${s} in ${t}`);if(!Array.isArray(r)||!Array.isArray(o)||r.length!==o.length)throw new Error(`embed model: vocab/weights length mismatch in ${t}`);let l=r.length,c=new Float64Array(l*s),d=new Map;for(let f=0;f{"use strict";E();ps();Se();ae();it=1,gu="models",Sy="https://github.com/maxgfr/codeindex/releases/download/embed-model-v1/model.json",ky="163ad053eab4e9a80d421ed4164f32292c83290f02fbbe6fe4b9b1cd6ea18d34"});function hu(e){let t=ht(e).replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2"),n=[];for(let s of t.toLowerCase().split(/[^a-z0-9]+/))s&&n.push(s);return n}function yu(e,t){if(!e)return[];let n=[],s=0,r=e.length;for(;ss;){let l=s===0?e.slice(s,o):"##"+e.slice(s,o),c=t.vocab.get(l);if(c!==void 0){a=c;break}o--}if(a===-1)return t.unkId>=0?[t.unkId]:[];n.push(a),s=o}return n}function bu(e,t){let n=[];for(let s of hu(e))for(let r of yu(s,t))n.push(r);return n}function wu(e){let t=Math.floor(e),n=e-t;return n<.5?t:n>.5?t+1:t%2===0?t:t+1}function Ar(e){let t=e.length,n=new Int8Array(t),s=0;for(let o=0;oCr?a=Cr:a<-Cr&&(a=-Cr),n[o]=a}return n}function Tr(e,t){let{dim:n,weights:s}=e,r=bu(t,e);if(r.length===0)return new Int8Array(n);let o=new Float64Array(n);for(let l of r){let c=l*n;for(let d=0;d{"use strict";E();Ae();Cr=127});function vy(e,t,n,s){return[t,n??"",s??"",e.replace(/\//g," ")].join(` +`)}function Ry(e,t,n,s){return[t??"",n??"",...s,e.replace(/\//g," ")].join(` +`)}function di(e){let t=[];for(let n of e.files){let s=new Set,r=!1;for(let o of n.symbols)s.has(o.name)||(s.add(o.name),r=!0,t.push({file:n.rel,symbol:o.name,line:o.line,text:vy(n.rel,o.name,o.signature,n.summary)}));if(!r){let o=Ry(n.rel,n.title,n.summary,n.headings);o.replace(/\s+/g,"")&&t.push({file:n.rel,text:o})}}return t}function an(e,t){let n=di(e).map(s=>{let r={file:s.file,vec:Tr(t,s.text)};return s.symbol!==void 0&&(r.symbol=s.symbol),s.line!==void 0&&(r.line=s.line),r});return{embedVersion:it,modelId:t.modelId,dim:t.dim,records:n}}function ui(e){let t=JSON.stringify({embedVersion:e.embedVersion,modelId:e.modelId,dim:e.dim,count:e.records.length,records:e.records.map(a=>({file:a.file,symbol:a.symbol??"",line:a.line??0}))}),n=new TextEncoder().encode(t),s=e.records.length*e.dim,r=new Uint8Array(8+n.length+s);r.set([67,73,69,49],0),new DataView(r.buffer,r.byteOffset,r.byteLength).setUint32(4,n.length,!0),r.set(n,8);let o=8+n.length;for(let a of e.records)for(let l=0;le.byteLength)throw new Error("embeddings.bin: truncated header");let s=JSON.parse(new TextDecoder().decode(e.subarray(8,8+n))),r=8+n,{dim:o}=s;if(r+s.records.length*o>e.byteLength)throw new Error("embeddings.bin: truncated body");let a=s.records.map((l,c)=>{let d=new Int8Array(e.buffer.slice(e.byteOffset+r+c*o,e.byteOffset+r+(c+1)*o)),m={file:l.file,vec:d};return l.symbol&&(m.symbol=l.symbol),l.line&&(m.line=l.line),m});return{embedVersion:s.embedVersion,modelId:s.modelId,dim:o,records:a}}var My,On=O(()=>{"use strict";E();Ir();on();My="CIE1"});function ln(e,t,n,s={}){let r=s.limit??Ay,o=Dt(e,t,{limit:Math.max(r,50),fuzzy:s.fuzzy}),a=s.queryVec??(s.model?Tr(s.model,t):void 0);if(!a||!n||n.records.length===0)return o.slice(0,r);let l=new Map;for(let p of n.records){let g=Ca(a,p.vec),h=l.get(p.file);(!h||g>h.score)&&l.set(p.file,{score:g,symbol:p.symbol})}let c=[...l.entries()].filter(([,p])=>p.score>0).sort((p,g)=>g[1].score-p[1].score||M(p[0],g[0])).map(([p])=>p),d=o.map(p=>p.file),m=Bi([d,c],p=>p,s.rrfK??Ty),u=new Map(o.map(p=>[p.file,p]));return[...m.entries()].sort((p,g)=>g[1]-p[1]||M(p[0],g[0])).map(([p,g])=>{let h=u.get(p),y={file:p,score:Number(g.toFixed(4)),matchedTerms:h?.matchedTerms??[],topSymbols:h?.topSymbols??[]},S=l.get(p);return S?.symbol&&(y.semanticSymbol=S.symbol),h?.fuzzyTerms&&(y.fuzzyTerms=h.fuzzyTerms),y}).slice(0,r)}var Ay,Ty,fi=O(()=>{"use strict";E();Ae();Y();Cn();Ir();Ay=20,Ty=60});function Ut(e={}){let t=e.url??R.env.CODEINDEX_EMBED_ENDPOINT;return t&&t.trim()?t.trim():void 0}function xu(e){return e.replace(/\/+$/,"")}function Su(e){let t=xu(e);return t.endsWith("/embed")?t:t+"/embed"}function ku(e){return xu(e).replace(/\/embed$/,"")+"/healthz"}function Eu(e){if(typeof e.timeoutMs=="number")return e.timeoutMs;let t=Number(R.env.CODEINDEX_EMBED_TIMEOUT_MS);return Number.isFinite(t)&&t>0?t:3e4}async function Aa(e,t={}){let n=Ut(t);if(!n)throw new Error("no embedding endpoint configured (set CODEINDEX_EMBED_ENDPOINT or pass opts.url)");let s=Su(n),r=new AbortController,o=setTimeout(()=>r.abort(),Eu(t));try{let a=await fetch(s,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify({texts:e}),signal:r.signal});if(!a.ok)throw new Error(`embedding endpoint ${s} returned HTTP ${a.status}`);let c=(await a.json()).vectors;if(!Array.isArray(c)||!c.every(d=>Array.isArray(d)&&d.every(m=>typeof m=="number")))throw new Error(`embedding endpoint ${s} returned a malformed { vectors } payload`);return c}finally{clearTimeout(o)}}async function Fr(e,t={}){let n=new AbortController,s=setTimeout(()=>n.abort(),Eu(t));try{return(await fetch(ku(e),{signal:n.signal,headers:t.headers})).ok}catch{return!1}finally{clearTimeout(s)}}async function Nr(e,t={}){let[n]=await Aa([e],t);if(!n)throw new Error("embedding endpoint returned no vector for the query");return Ar(n)}async function Or(e,t={}){let n=di(e),s=t.batchSize&&t.batchSize>0?t.batchSize:64,r=[],o=0;for(let a=0;ad.text),t);if(c.length!==l.length)throw new Error(`embedding endpoint returned ${c.length} vectors for ${l.length} texts`);for(let d=0;do&&(o=u.length);let f={file:m.file,vec:u};m.symbol!==void 0&&(f.symbol=m.symbol),m.line!==void 0&&(f.line=m.line),r.push(f)}}return{embedVersion:it,modelId:"endpoint",dim:o,records:r}}var mi=O(()=>{"use strict";E();Ir();on();On()});function cn(e,t,n={}){let s=(n.budgetTokens??1024)*vu,r=n.maxSymbolsPerFile??8,o=[...t.files].filter(m=>m.fileKind==="code").sort((m,u)=>(u.pagerank??0)-(m.pagerank??0)||u.symbols-m.symbols||M(m.rel,u.rel)),a=new Map(e.files.map(m=>[m.rel,m])),c=`# repo map \u2014 ${t.fileCount} files +`,d=0;for(let m of o){let u=a.get(m.rel);if(!u)continue;let f=[...u.symbols].filter(g=>g.kind!=="reexport"&&g.kind!=="reexport-all").sort((g,h)=>Number(h.exported)-Number(g.exported)||g.line-h.line).slice(0,r),p=` ${m.rel}: `;for(let g of f){let h=(g.signature??`${g.kind} ${g.name}`).replace(/\s+/g," ").trim().slice(0,120);p+=` ${g.line}: ${h} -`}if(c.length+p.length>r)break;c+=p,d++}return`${c} -(${d} of ${o.length} code files shown, ~${Math.ceil(c.length/bu)} tokens) -`}var bu,Or=O(()=>{"use strict";E();Y();bu=4});function Pr(e,t={}){let n=t.maxCommitFiles??30,r=t.minTogether??3,s=t.maxPairs??100,o=t.since?[`${t.since}..HEAD`]:[],a=pe("git",["-C",e,"-c","core.quotePath=false","log",...o,"--pretty=format:%x1e","--name-only"]);if(!a.ok)return{ok:!1,couplings:[]};let l=new Map,c=new Map;for(let m of a.stdout.split("")){let u=m.split(` -`).map(p=>p.trim()).filter(Boolean);if(!u.length||u.length>n)continue;let f=[...new Set(u)].sort(M);for(let p of f)l.set(p,(l.get(p)??0)+1);for(let p=0;pu.strength-m.strength||u.together-m.together||M(m.a,u.a)||M(m.b,u.b)),{ok:!0,couplings:d.slice(0,s)}}function dn(e,t,n=20){let r=e.files.filter(s=>s.kind==="code").map(s=>{let o=t.get(s.rel)??0;return{rel:s.rel,lines:s.lines,commits:o,score:Number((o*Math.log2(s.lines+1)).toFixed(2))}});return r.sort((s,o)=>o.score-s.score||o.lines-s.lines||M(s.rel,o.rel)),r.slice(0,n)}var wu,$r=O(()=>{"use strict";E();Ae();Y();wu="\0"});function Ry(e){for(let t of vy){let n=I(e,t);if(!H(n))continue;let r;try{r=Q(n,"utf8")}catch{continue}for(let s of r.split(/\n\s*\n/)){let o=s.trim();if(!o||o.startsWith("#")||o.startsWith("<")||/^(\[!\[|!\[|\[)/.test(o)&&!/[.:]\s/.test(o))continue;let a=o.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/[*_`]/g,"").replace(/\s+/g," ").trim();if(a.length>20)return a.slice(0,400)}break}}function Ca(e,t,n={}){let r=[],s=Ee(e.root).replace(/\/+$/,"").split("/").pop()||"repository";r.push(`# ${s}`,"");let o=Ry(e.root);o&&r.push(o,"");let a=Object.entries(t.languages).sort((f,p)=>p[1]-f[1]||M(f[0],p[0])).slice(0,6).map(([f,p])=>`${f} ${p}`).join(", ");r.push(`**${t.fileCount} indexed files** \xB7 ${a}`,"");let l=rn(e.root);if(l.packages.length>1){r.push(`## Layout \u2014 monorepo, ${l.packages.length} packages`,"");for(let f of l.packages.slice(0,20))r.push(`- \`${f.dir}\` \u2014 ${f.name}`);l.packages.length>20&&r.push(`- \u2026and ${l.packages.length-20} more`),l.cycle?.length&&r.push("",`\u26A0 dependency cycle: ${l.cycle.join(" \u2192 ")}`),r.push("")}r.push("## Key files","",cn(e,t,{budgetTokens:n.budgetTokens??900}).trim(),"");let{churn:c,ok:d}=Ze(e.root);if(d&&c.size){let f=dn(e,c,8);if(f.length){r.push("## Where work concentrates","","Files ranked by commits \xD7 size \u2014 where changes and defects cluster.","");for(let p of f)r.push(`- \`${p.rel}\` \u2014 ${p.commits} commits, ${p.lines} lines`);r.push("")}}r.push("## Next","","- `search ` \u2014 BM25 over names, paths, doc comments and prose; `explain_search` says whether it really matched","- `find_symbol ` / `symbols_overview ` \u2014 read structure without reading files","- `find_references ` \u2014 three labelled tiers; add `lsp: true` when a language server is configured","");let m=r.join(` -`);if(n.remember===!1)return{brief:m};let u=n.memoryName??"onboarding";return xr(e.root,u,m),{brief:m,memory:u}}var vy,Aa=O(()=>{"use strict";E();Se();ae();Or();Er();$r();qt();ei();Y();vy=["README.md","README.markdown","README.rst","README.txt","README"]});function fi(e){let t=JSON.stringify(e);return`Content-Length: ${Cy(t)}${My}${t}`}function Cy(e){return new TextEncoder().encode(e).byteLength}function Ta(){let e=new TextEncoder,t=new TextDecoder,n=new Uint8Array(0),r=o=>{let a=new Uint8Array(n.length+o.length);a.set(n),a.set(o,n.length),n=a},s=()=>{for(let o=0;o+3xu){n=n.subarray(l+4);continue}let u=l+4;if(n.lengthc===0||c===1&&/^[A-Za-z]:$/.test(l)?l:encodeURIComponent(l)).join("/")}function Su(e,t){if(!t.startsWith("file://"))return;let n;try{let l=t.slice(7);n=decodeURIComponent(l.startsWith("/")?l:`//${l}`).replace(/\\/g,"/")}catch{return}/^\/[A-Za-z]:/.test(n)&&(n=n.slice(1));let r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=/^[A-Za-z]:/.test(r)||r.startsWith("//"),o=s?n.toLowerCase():n,a=s?r.toLowerCase():r;if(o===a)return"";if(o.startsWith(`${a}/`))return n.slice(r.length+1)}function mi(e,t){let n=Array.isArray(t)?t:t&&typeof t=="object"?[t]:[],r=new Set,s=[];for(let o of n){if(!o||typeof o!="object")continue;let a=o.uri??o.targetUri;if(!a)continue;let l=Su(e,a);if(l===void 0||l==="")continue;let c=(o.range??o.targetSelectionRange??o.targetRange)?.start,d=typeof c?.line=="number"?c.line+1:1,m=typeof c?.character=="number"?c.character:void 0,u=`${l}:${d}:${m??""}`;r.has(u)||(r.add(u),s.push(m===void 0?{file:l,line:d}:{file:l,line:d,character:m}))}return s.sort((o,a)=>M(o.file,a.file)||o.line-a.line||(o.character??0)-(a.character??0))}var xu,My,Ia=O(()=>{"use strict";E();Y();xu=32*1024*1024,My=`\r +`}if(c.length+p.length>s)break;c+=p,d++}return`${c} +(${d} of ${o.length} code files shown, ~${Math.ceil(c.length/vu)} tokens) +`}var vu,Pr=O(()=>{"use strict";E();Y();vu=4});function $r(e,t={}){let n=t.maxCommitFiles??30,s=t.minTogether??3,r=t.maxPairs??100,o=t.since?[`${t.since}..HEAD`]:[],a=pe("git",["-C",e,"-c","core.quotePath=false","log",...o,"--pretty=format:%x1e","--name-only"]);if(!a.ok)return{ok:!1,couplings:[]};let l=new Map,c=new Map;for(let m of a.stdout.split("")){let u=m.split(` +`).map(p=>p.trim()).filter(Boolean);if(!u.length||u.length>n)continue;let f=[...new Set(u)].sort(M);for(let p of f)l.set(p,(l.get(p)??0)+1);for(let p=0;pu.strength-m.strength||u.together-m.together||M(m.a,u.a)||M(m.b,u.b)),{ok:!0,couplings:d.slice(0,r)}}function dn(e,t,n=20){let s=e.files.filter(r=>r.kind==="code").map(r=>{let o=t.get(r.rel)??0;return{rel:r.rel,lines:r.lines,commits:o,score:Number((o*Math.log2(r.lines+1)).toFixed(2))}});return s.sort((r,o)=>o.score-r.score||o.lines-r.lines||M(r.rel,o.rel)),s.slice(0,n)}var Ru,Dr=O(()=>{"use strict";E();Ae();Y();Ru="\0"});function Fy(e){for(let t of Iy){let n=I(e,t);if(!H(n))continue;let s;try{s=Q(n,"utf8")}catch{continue}for(let r of s.split(/\n\s*\n/)){let o=r.trim();if(!o||o.startsWith("#")||o.startsWith("<")||/^(\[!\[|!\[|\[)/.test(o)&&!/[.:]\s/.test(o))continue;let a=o.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/[*_`]/g,"").replace(/\s+/g," ").trim();if(a.length>20)return a.slice(0,400)}break}}function Ta(e,t,n={}){let s=[],r=Ee(e.root).replace(/\/+$/,"").split("/").pop()||"repository";s.push(`# ${r}`,"");let o=Fy(e.root);o&&s.push(o,"");let a=Object.entries(t.languages).sort((f,p)=>p[1]-f[1]||M(f[0],p[0])).slice(0,6).map(([f,p])=>`${f} ${p}`).join(", ");s.push(`**${t.fileCount} indexed files** \xB7 ${a}`,"");let l=rn(e.root);if(l.packages.length>1){s.push(`## Layout \u2014 monorepo, ${l.packages.length} packages`,"");for(let f of l.packages.slice(0,20))s.push(`- \`${f.dir}\` \u2014 ${f.name}`);l.packages.length>20&&s.push(`- \u2026and ${l.packages.length-20} more`),l.cycle?.length&&s.push("",`\u26A0 dependency cycle: ${l.cycle.join(" \u2192 ")}`),s.push("")}s.push("## Key files","",cn(e,t,{budgetTokens:n.budgetTokens??900}).trim(),"");let{churn:c,ok:d}=Ze(e.root);if(d&&c.size){let f=dn(e,c,8);if(f.length){s.push("## Where work concentrates","","Files ranked by commits \xD7 size \u2014 where changes and defects cluster.","");for(let p of f)s.push(`- \`${p.rel}\` \u2014 ${p.commits} commits, ${p.lines} lines`);s.push("")}}s.push("## Next","","- `search ` \u2014 BM25 over names, paths, doc comments and prose; `explain_search` says whether it really matched","- `find_symbol ` / `symbols_overview ` \u2014 read structure without reading files","- `find_references ` \u2014 three labelled tiers; add `lsp: true` when a language server is configured","");let m=s.join(` +`);if(n.remember===!1)return{brief:m};let u=n.memoryName??"onboarding";return Sr(e.root,u,m),{brief:m,memory:u}}var Iy,Ia=O(()=>{"use strict";E();Se();ae();Pr();vr();Dr();Gt();ni();Y();Iy=["README.md","README.markdown","README.rst","README.txt","README"]});function pi(e){let t=JSON.stringify(e);return`Content-Length: ${Oy(t)}${Ny}${t}`}function Oy(e){return new TextEncoder().encode(e).byteLength}function Fa(){let e=new TextEncoder,t=new TextDecoder,n=new Uint8Array(0),s=o=>{let a=new Uint8Array(n.length+o.length);a.set(n),a.set(o,n.length),n=a},r=()=>{for(let o=0;o+3Mu){n=n.subarray(l+4);continue}let u=l+4;if(n.lengthc===0||c===1&&/^[A-Za-z]:$/.test(l)?l:encodeURIComponent(l)).join("/")}function Cu(e,t){if(!t.startsWith("file://"))return;let n;try{let l=t.slice(7);n=decodeURIComponent(l.startsWith("/")?l:`//${l}`).replace(/\\/g,"/")}catch{return}/^\/[A-Za-z]:/.test(n)&&(n=n.slice(1));let s=e.replace(/\\/g,"/").replace(/\/+$/,""),r=/^[A-Za-z]:/.test(s)||s.startsWith("//"),o=r?n.toLowerCase():n,a=r?s.toLowerCase():s;if(o===a)return"";if(o.startsWith(`${a}/`))return n.slice(s.length+1)}function gi(e,t){let n=Array.isArray(t)?t:t&&typeof t=="object"?[t]:[],s=new Set,r=[];for(let o of n){if(!o||typeof o!="object")continue;let a=o.uri??o.targetUri;if(!a)continue;let l=Cu(e,a);if(l===void 0||l==="")continue;let c=(o.range??o.targetSelectionRange??o.targetRange)?.start,d=typeof c?.line=="number"?c.line+1:1,m=typeof c?.character=="number"?c.character:void 0,u=`${l}:${d}:${m??""}`;s.has(u)||(s.add(u),r.push(m===void 0?{file:l,line:d}:{file:l,line:d,character:m}))}return r.sort((o,a)=>M(o.file,a.file)||o.line-a.line||(o.character??0)-(a.character??0))}var Mu,Ny,Na=O(()=>{"use strict";E();Y();Mu=32*1024*1024,Ny=`\r \r -`});async function Na(e,t){let n=t.timeoutMs??Ay,r=t.startupTimeoutMs??Ty,s=Ta(),o=new Map,a=new Set,l=1,c,d=y=>{c=y;for(let[,S]of o)clearTimeout(S.timer),S.reject(y);o.clear()};e.onData(y=>{for(let S of s.push(y)){if(typeof S.id!="number")continue;let _=o.get(S.id);_&&(o.delete(S.id),clearTimeout(_.timer),S.error?_.reject(new Error(`${S.error.message} (code ${S.error.code})`)):_.resolve(S.result))}}),e.onExit(y=>d(new Error(`language server exited (code ${y??"unknown"})`)));let m=(y,S)=>{c||e.write(fi({jsonrpc:"2.0",method:y,params:S}))},u=(y,S,_=n)=>{if(c)return Promise.reject(c);let k=l++;return new Promise((b,w)=>{let v=setTimeout(()=>{o.delete(k),w(new pi(y,_))},_);v.unref?.(),o.set(k,{resolve:b,reject:w,timer:v}),e.write(fi({jsonrpc:"2.0",id:k,method:y,params:S}))})},f=await u("initialize",{processId:null,rootUri:un(t.root,""),workspaceFolders:[{uri:un(t.root,""),name:"repo"}],capabilities:{textDocument:{references:{dynamicRegistration:!1},definition:{dynamicRegistration:!1,linkSupport:!0},implementation:{dynamicRegistration:!1,linkSupport:!0}}},...t.initializationOptions!==void 0?{initializationOptions:t.initializationOptions}:{}},r);m("initialized",{});let p=y=>{let S=f?.capabilities?.[y];return S===!0||typeof S=="object"&&S!==null},g={references:p("referencesProvider"),definition:p("definitionProvider"),implementation:p("implementationProvider"),typeHierarchy:p("typeHierarchyProvider")},h=(y,S,_)=>({textDocument:{uri:un(t.root,y)},position:{line:Math.max(0,S-1),character:_}});return{capabilities:g,didOpen(y,S,_){a.has(y)||(a.add(y),m("textDocument/didOpen",{textDocument:{uri:un(t.root,y),languageId:_,version:1,text:S}}))},async references(y,S,_){if(!g.references)return[];let k=await u("textDocument/references",{...h(y,S,_),context:{includeDeclaration:!0}});return mi(t.root,k)},async definition(y,S,_){return g.definition?mi(t.root,await u("textDocument/definition",h(y,S,_))):[]},async shutdown(){try{for(let y of a)m("textDocument/didClose",{textDocument:{uri:un(t.root,y)}});a.clear(),await u("shutdown",null,Math.min(n,2e3)),m("exit",void 0)}catch{}finally{d(new Error("session closed")),e.close()}}}}var pi,Ay,Ty,Fa=O(()=>{"use strict";E();Ia();pi=class extends Error{constructor(t,n){super(`${t} exceeded ${n}ms`),this.name="LspTimeout"}},Ay=5e3,Ty=15e3});function gi(e){let t=R.env.CODEINDEX_LSP_CONFIG;if(t!==void 0){let s=t.trim();return!s||s==="0"||s.toLowerCase()==="off"?{path:void 0,source:"none"}:{path:Ee(s),source:"env"}}let n=I(e,Eu,ku);if(H(n))return{path:n,source:"repo"};let r=I(R.cwd(),Eu,ku);return r!==n&&H(r)?{path:r,source:"cwd"}:{path:void 0,source:"none"}}function vu(e){if(!e||typeof e!="object")throw new Error("lsp.json must be a JSON object");let t=e;if(t.version!==1)throw new Error(`lsp.json: unsupported version ${JSON.stringify(t.version)} (expected 1)`);if(!Array.isArray(t.servers))throw new Error("lsp.json: `servers` must be an array");let n=new Set;return{version:1,servers:t.servers.map((s,o)=>{if(!s||typeof s!="object")throw new Error(`lsp.json: servers[${o}] must be an object`);let a=s,l=typeof a.id=="string"&&a.id.trim()?a.id.trim():void 0;if(!l)throw new Error(`lsp.json: servers[${o}].id must be a non-empty string`);if(n.has(l))throw new Error(`lsp.json: duplicate server id ${JSON.stringify(l)}`);if(n.add(l),typeof a.command!="string"||!a.command.trim())throw new Error(`lsp.json: servers[${o}].command must be a non-empty string`);if(!Array.isArray(a.languages)||!a.languages.length||a.languages.some(c=>typeof c!="string"))throw new Error(`lsp.json: servers[${o}].languages must be a non-empty array of strings`);if(a.args!==void 0&&(!Array.isArray(a.args)||a.args.some(c=>typeof c!="string")))throw new Error(`lsp.json: servers[${o}].args must be an array of strings`);return{id:l,languages:a.languages,...typeof a.languageId=="string"?{languageId:a.languageId}:{},command:a.command,...Array.isArray(a.args)?{args:a.args}:{},...a.env&&typeof a.env=="object"?{env:a.env}:{},...a.initializationOptions!==void 0?{initializationOptions:a.initializationOptions}:{},...typeof a.timeoutMs=="number"?{timeoutMs:a.timeoutMs}:{},...typeof a.startupTimeoutMs=="number"?{startupTimeoutMs:a.startupTimeoutMs}:{}}})}}function _i(e){let{path:t}=gi(e);if(!t||!H(t))return;let n;try{n=JSON.parse(Q(t,"utf8"))}catch(r){throw new Error(`${t}: ${r instanceof Error?r.message:String(r)}`)}return vu(n)}function Oa(e,t){return e.servers.find(n=>n.languages.includes(t))}function Ru(e){return Cu("CODEINDEX_LSP_TIMEOUT_MS")??e.timeoutMs??Iy}function Mu(e){return Cu("CODEINDEX_LSP_STARTUP_TIMEOUT_MS")??e.startupTimeoutMs??Ny}function Cu(e){let t=R.env[e];if(t===void 0)return;let n=Number(t);return Number.isFinite(n)&&n>0?n:void 0}var ku,Eu,Iy,Ny,Pa=O(()=>{"use strict";E();Se();ae();ku="lsp.json",Eu=".codeindex";Iy=5e3,Ny=15e3});function Bt(e,t){return{server:e,ok:!1,reason:t,refs:[],agreement:{both:[],lspOnly:[],staticOnly:[]}}}function Tu(e,t,n,r){try{let o=Q(I(e,t),"utf8").split(/\r?\n/)[n-1]?.indexOf(r)??-1;return o<0?0:o}catch{return 0}}function $a(e,t){let n=new Set(e.map(l=>l.file)),r=new Set([...t.callSites.map(l=>l.file),...t.referencingFiles,...t.defs.map(l=>l.file)]),s=[],o=[],a=[];for(let l of n)(r.has(l)?s:o).push(l);for(let l of r)n.has(l)||a.push(l);return{both:s.sort(M),lspOnly:o.sort(M),staticOnly:a.sort(M)}}async function Iu(e,t,n,r,s,o){if(!r.capabilities.references)return{...n,lsp:Bt(s,"server does not provide textDocument/references")};if(!n.defs.length)return{...n,lsp:Bt(s,`no declaration of ${t} to anchor a request on`)};let a=new Set,l=[];try{for(let c of n.defs){let d=Fy(e.root,c.file);if(!d)continue;r.didOpen(c.file,d,o);let m=Tu(e.root,c.file,c.line,t);for(let u of await r.references(c.file,c.line,m)){let f=`${u.file}:${u.line}:${u.character??""}`;a.has(f)||(a.add(f),l.push(u))}}}catch(c){return{...n,lsp:{server:s,ok:!1,reason:c instanceof Error?c.message:String(c),refs:l.sort(Au),agreement:$a(l,n)}}}return l.sort(Au),{...n,lsp:{server:s,ok:!0,refs:l,agreement:$a(l,n)}}}function Au(e,t){return M(e.file,t.file)||e.line-t.line||(e.character??0)-(t.character??0)}function Fy(e,t){try{return Q(I(e,t),"utf8")}catch{return""}}var Da=O(()=>{"use strict";E();Se();ae();Y()});function La(e,t){let n;try{n=_l(e.command,e.args??[],{cwd:t,stdio:["pipe","pipe","pipe"],...e.env?{env:{...R.env,...e.env}}:{}})}catch{return}let r=!1,s=[],o=[],a=l=>{if(!r){r=!0;for(let c of o)c(l)}};return n.on("error",()=>a(null)),n.on("close",l=>a(l)),n.stdout?.on("data",l=>{for(let c of s)c(l)}),n.stderr?.on("data",()=>{}),{write(l){if(!r)try{n.stdin?.write(l)}catch{a(null)}},onData(l){s.push(l)},onExit(l){r?l(null):o.push(l)},close(){try{n.stdin?.end()}catch{}let l=setTimeout(()=>{try{n.kill("SIGKILL")}catch{}},2e3);l.unref?.(),n.on("close",()=>clearTimeout(l))}}}var ja=O(()=>{"use strict";E();Li()});async function Dr(e,t,n=!1){let{path:r,source:s}=gi(t),o=_i(t);if(!o)return{lspVersion:1,mode:"none",configPath:r??null,source:s,servers:[],unmappedLanguages:[]};let a=new Map;for(let m of e.files)a.set(m.lang,(a.get(m.lang)??0)+1);let l=[];for(let m of o.servers){let u={id:m.id,languages:m.languages,command:m.command,onPath:at(m.command),filesInRepo:m.languages.reduce((f,p)=>f+(a.get(p)??0),0)};if(n){let f=await Nu(m,e.root);f.ok?(u.reachable=!0,u.capabilities=f.session.capabilities,await f.session.shutdown()):(u.reachable=!1,u.error=f.reason)}l.push(u)}let c=new Set(o.servers.flatMap(m=>m.languages)),d=[...a.keys()].filter(m=>!c.has(m)&&m!=="other").sort();return{lspVersion:1,mode:"configured",configPath:r??null,source:s,servers:l,unmappedLanguages:d}}async function Nu(e,t){if(!at(e.command))return{ok:!1,reason:`${e.command} is not on PATH`};let n=La(e,t);if(!n)return{ok:!1,reason:`could not start ${e.command}`};try{return{ok:!0,session:await Na(n,{root:t,timeoutMs:Ru(e),startupTimeoutMs:Mu(e),...e.initializationOptions!==void 0?{initializationOptions:e.initializationOptions}:{}})}}catch(r){return n.close(),{ok:!1,reason:r instanceof Error?r.message:String(r)}}}async function Wa(e,t,n,r){let s;try{s=_i(t)}catch(c){return{...r,lsp:Bt("(config)",c instanceof Error?c.message:String(c))}}if(!s)return r;let o=r.defs[0]?.lang;if(!o)return{...r,lsp:Bt("(none)",`no declaration of ${n} to anchor a request on`)};let a=Oa(s,o);if(!a)return{...r,lsp:Bt("(none)",`no server configured for ${o}`)};let l=await Nu(a,e.root);if(!l.ok)return{...r,lsp:Bt(a.id,l.reason)};try{return await Iu(e,n,r,l.session,a.id,a.languageId??a.languages[0])}finally{await l.session.shutdown()}}var hi=O(()=>{"use strict";E();Ae();Fa();Pa();Da();ja()});function Ly(e){let n=e.split("/").pop().split(".")[0].toLowerCase();return Dy.has(n)}function Ou(e){return Array.isArray(e)?e:[e]}function Lr(e){let t=Array.isArray(e)?e:e?.rules;if(!Array.isArray(t))throw new Error("rules config must be an array (or an object with a `rules` array)");return t.map((n,r)=>{let s=`rules[${r}]`;if(typeof n!="object"||n===null)throw new Error(`${s}: must be an object`);let o=n;if(typeof o.name!="string"||!o.name)throw new Error(`${s}: \`name\` (non-empty string) is required`);if(o.severity!==void 0&&!Oy.has(o.severity))throw new Error(`${s} (${o.name}): \`severity\` must be "error" or "warn"`);if(o.comment!==void 0&&typeof o.comment!="string")throw new Error(`${s} (${o.name}): \`comment\` must be a string`);if(o.builtin!==void 0){if(!Py.has(o.builtin))throw new Error(`${s} (${o.name}): \`builtin\` must be "cycles", "orphans" or "literals"`);return{name:o.name,builtin:o.builtin,severity:o.severity,comment:o.comment,...o.tiers!==void 0?{tiers:o.tiers}:{}}}let a=d=>{let m=o[d];if(!(typeof m=="string"?m.length>0:Array.isArray(m)&&m.length>0&&m.every(f=>typeof f=="string"&&f)))throw new Error(`${s} (${o.name}): \`${d}\` must be a glob or a non-empty array of globs`);return m},l=a("from"),c=a("to");if(o.kind!==void 0&&!(Array.isArray(o.kind)&&o.kind.every(m=>Fu.has(m))))throw new Error(`${s} (${o.name}): \`kind\` must be an array of edge kinds (${[...Fu].join(", ")})`);return{name:o.name,from:l,to:c,kind:o.kind,severity:o.severity,comment:o.comment}})}function jy(e){let t=new Map;for(let m of e.moduleEdges){if(m.kind!=="import")continue;let u=t.get(m.from);u||t.set(m.from,u=[]),u.push(m.to)}for(let m of t.values())m.sort(M);let n=[...t.keys()].sort(M),r=new Map,s=new Map,o=new Set,a=[],l=[],c=0;for(let m of n){if(r.has(m))continue;let u=[{node:m,next:0}];for(;u.length;){let f=u[u.length-1],p=f.node;f.next===0&&(r.set(p,c),s.set(p,c),c++,a.push(p),o.add(p));let g=t.get(p)??[];if(f.next1&&l.push(y)}u.pop();let h=u[u.length-1];h&&s.set(h.node,Math.min(s.get(h.node),s.get(p)))}}}let d=[];for(let m of l){let u=new Set(m),f=[...m].sort(M)[0],p=new Map([[f,null]]),g=[f];for(let S=0;S(t.get(S)??[]).includes(f)&&S!==f)??f,y=[];for(let S=h;S!==null;S=p.get(S)??null)y.unshift(S);y.push(f),d.push({start:f,path:y})}return d}function jr(e,t){let n=[],r=(o,a)=>{n.push({rule:o.name,...a,severity:o.severity??"error",...o.comment!==void 0?{comment:o.comment}:{}})},s=new Set(e.files.map(o=>o.rel));for(let o of t){if("builtin"in o){if(o.builtin==="cycles")for(let d of jy(e))r(o,{from:d.start,to:d.path.join(" -> "),kind:"cycle"});else if(o.builtin==="literals"){let d=new Set(o.tiers?.length?o.tiers:$y);for(let m of e.literalDuplications??[]){if(!d.has(m.tier))continue;let u=m.holders[0]??m.literals[0];r(o,{from:`${u.file}:${u.line}`,to:`${m.tier} ${JSON.stringify(m.value)} (${m.count} sites, ${m.files} files)`,kind:"literal"})}}else for(let d of e.files)d.fileKind!=="code"||d.degIn!==0||d.degOut!==0||Ly(d.rel)||r(o,{from:d.rel,to:d.rel,kind:"orphan"});continue}let a=bt(Ou(o.from)),l=bt(Ou(o.to));if(!a||!l)continue;let c=o.kind?.length?new Set(o.kind):null;for(let d of e.fileEdges)d.dangling||!s.has(d.to)||c&&!c.has(d.kind)||!a(d.from)||!l(d.to)||r(o,{from:d.from,to:d.to,kind:d.kind})}return n.sort((o,a)=>M(o.rule,a.rule)||M(o.from,a.from)||M(o.to,a.to)||M(o.kind,a.kind)),n}var Fu,Oy,Py,$y,Dy,yi=O(()=>{"use strict";E();Gn();Y();Fu=new Set(["contains","doc-link","import","call","use","mention"]),Oy=new Set(["error","warn"]),Py=new Set(["cycles","orphans","literals"]),$y=["competing","bypassed"],Dy=new Set(["index","main","app","application","cli","server","entry","entrypoint","setup","conftest","__init__","__main__","mod","lib"])});function Wr(e){let t=Cn(e),n=Xs(e),r=[],s=o=>o.exported&&!Wy.has(o.kind)&&!$t(o.file)&&!Uy.test(o.file);for(let o of e.files)for(let a of o.symbols){if(!s(a))continue;let l=t.get(`${a.name}@${a.file}`)??t.get(a.name);if(!!l&&l.def.file===a.file&&l.callers.length>0)continue;let d=(n.get(a.name)?.size??0)>0;r.push({name:a.name,file:a.file,line:a.line,kind:a.kind,tier:d?"uncalled":"unreferenced"})}return r.sort((o,a)=>M(o.tier,a.tier)||M(o.file,a.file)||o.line-a.line)}var Wy,Uy,bi=O(()=>{"use strict";E();pt();vn();Y();Wy=new Set(["reexport","reexport-all","default"]),Uy=/(^|\/)(index|main|cli|app|server|engine)\.[a-z]+$/});function Ur(e,t={}){let n=t.maxEdges??80,r=[...e.moduleEdges].filter(l=>!l.dangling);t.module&&(r=r.filter(l=>l.from===t.module||l.to===t.module)),r.sort((l,c)=>c.weight-l.weight||M(l.from,c.from)||M(l.to,c.to));let s=Math.max(0,r.length-n);r=r.slice(0,n);let o=new Set;for(let l of r)o.add(l.from),o.add(l.to);t.module&&o.add(t.module);let a=["graph LR"];for(let l of[...e.modules].sort((c,d)=>M(c.slug,d.slug)))o.has(l.slug)&&a.push(` ${Ua(l.slug)}["${l.slug}${l.tier===0?" (core)":""}"]`);for(let l of r){let c=l.kind==="import"?"":`|${l.kind}|`;a.push(` ${Ua(l.from)} -->${c} ${Ua(l.to)}`)}return s&&a.push(` %% ${s} lighter edges omitted (maxEdges=${n})`),a.join(` +`});async function Oa(e,t){let n=t.timeoutMs??Py,s=t.startupTimeoutMs??$y,r=Fa(),o=new Map,a=new Set,l=1,c,d=y=>{c=y;for(let[,S]of o)clearTimeout(S.timer),S.reject(y);o.clear()};e.onData(y=>{for(let S of r.push(y)){if(typeof S.id!="number")continue;let _=o.get(S.id);_&&(o.delete(S.id),clearTimeout(_.timer),S.error?_.reject(new Error(`${S.error.message} (code ${S.error.code})`)):_.resolve(S.result))}}),e.onExit(y=>d(new Error(`language server exited (code ${y??"unknown"})`)));let m=(y,S)=>{c||e.write(pi({jsonrpc:"2.0",method:y,params:S}))},u=(y,S,_=n)=>{if(c)return Promise.reject(c);let k=l++;return new Promise((b,w)=>{let v=setTimeout(()=>{o.delete(k),w(new _i(y,_))},_);v.unref?.(),o.set(k,{resolve:b,reject:w,timer:v}),e.write(pi({jsonrpc:"2.0",id:k,method:y,params:S}))})},f=await u("initialize",{processId:null,rootUri:un(t.root,""),workspaceFolders:[{uri:un(t.root,""),name:"repo"}],capabilities:{textDocument:{references:{dynamicRegistration:!1},definition:{dynamicRegistration:!1,linkSupport:!0},implementation:{dynamicRegistration:!1,linkSupport:!0}}},...t.initializationOptions!==void 0?{initializationOptions:t.initializationOptions}:{}},s);m("initialized",{});let p=y=>{let S=f?.capabilities?.[y];return S===!0||typeof S=="object"&&S!==null},g={references:p("referencesProvider"),definition:p("definitionProvider"),implementation:p("implementationProvider"),typeHierarchy:p("typeHierarchyProvider")},h=(y,S,_)=>({textDocument:{uri:un(t.root,y)},position:{line:Math.max(0,S-1),character:_}});return{capabilities:g,didOpen(y,S,_){a.has(y)||(a.add(y),m("textDocument/didOpen",{textDocument:{uri:un(t.root,y),languageId:_,version:1,text:S}}))},async references(y,S,_){if(!g.references)return[];let k=await u("textDocument/references",{...h(y,S,_),context:{includeDeclaration:!0}});return gi(t.root,k)},async definition(y,S,_){return g.definition?gi(t.root,await u("textDocument/definition",h(y,S,_))):[]},async shutdown(){try{for(let y of a)m("textDocument/didClose",{textDocument:{uri:un(t.root,y)}});a.clear(),await u("shutdown",null,Math.min(n,2e3)),m("exit",void 0)}catch{}finally{d(new Error("session closed")),e.close()}}}}var _i,Py,$y,Pa=O(()=>{"use strict";E();Na();_i=class extends Error{constructor(t,n){super(`${t} exceeded ${n}ms`),this.name="LspTimeout"}},Py=5e3,$y=15e3});function hi(e){let t=R.env.CODEINDEX_LSP_CONFIG;if(t!==void 0){let r=t.trim();return!r||r==="0"||r.toLowerCase()==="off"?{path:void 0,source:"none"}:{path:Ee(r),source:"env"}}let n=I(e,Tu,Au);if(H(n))return{path:n,source:"repo"};let s=I(R.cwd(),Tu,Au);return s!==n&&H(s)?{path:s,source:"cwd"}:{path:void 0,source:"none"}}function Iu(e){if(!e||typeof e!="object")throw new Error("lsp.json must be a JSON object");let t=e;if(t.version!==1)throw new Error(`lsp.json: unsupported version ${JSON.stringify(t.version)} (expected 1)`);if(!Array.isArray(t.servers))throw new Error("lsp.json: `servers` must be an array");let n=new Set;return{version:1,servers:t.servers.map((r,o)=>{if(!r||typeof r!="object")throw new Error(`lsp.json: servers[${o}] must be an object`);let a=r,l=typeof a.id=="string"&&a.id.trim()?a.id.trim():void 0;if(!l)throw new Error(`lsp.json: servers[${o}].id must be a non-empty string`);if(n.has(l))throw new Error(`lsp.json: duplicate server id ${JSON.stringify(l)}`);if(n.add(l),typeof a.command!="string"||!a.command.trim())throw new Error(`lsp.json: servers[${o}].command must be a non-empty string`);if(!Array.isArray(a.languages)||!a.languages.length||a.languages.some(c=>typeof c!="string"))throw new Error(`lsp.json: servers[${o}].languages must be a non-empty array of strings`);if(a.args!==void 0&&(!Array.isArray(a.args)||a.args.some(c=>typeof c!="string")))throw new Error(`lsp.json: servers[${o}].args must be an array of strings`);return{id:l,languages:a.languages,...typeof a.languageId=="string"?{languageId:a.languageId}:{},command:a.command,...Array.isArray(a.args)?{args:a.args}:{},...a.env&&typeof a.env=="object"?{env:a.env}:{},...a.initializationOptions!==void 0?{initializationOptions:a.initializationOptions}:{},...typeof a.timeoutMs=="number"?{timeoutMs:a.timeoutMs}:{},...typeof a.startupTimeoutMs=="number"?{startupTimeoutMs:a.startupTimeoutMs}:{}}})}}function yi(e){let{path:t}=hi(e);if(!t||!H(t))return;let n;try{n=JSON.parse(Q(t,"utf8"))}catch(s){throw new Error(`${t}: ${s instanceof Error?s.message:String(s)}`)}return Iu(n)}function $a(e,t){return e.servers.find(n=>n.languages.includes(t))}function Fu(e){return Ou("CODEINDEX_LSP_TIMEOUT_MS")??e.timeoutMs??Dy}function Nu(e){return Ou("CODEINDEX_LSP_STARTUP_TIMEOUT_MS")??e.startupTimeoutMs??Ly}function Ou(e){let t=R.env[e];if(t===void 0)return;let n=Number(t);return Number.isFinite(n)&&n>0?n:void 0}var Au,Tu,Dy,Ly,Da=O(()=>{"use strict";E();Se();ae();Au="lsp.json",Tu=".codeindex";Dy=5e3,Ly=15e3});function Bt(e,t){return{server:e,ok:!1,reason:t,refs:[],agreement:{both:[],lspOnly:[],staticOnly:[]}}}function $u(e,t,n,s){try{let o=Q(I(e,t),"utf8").split(/\r?\n/)[n-1]?.indexOf(s)??-1;return o<0?0:o}catch{return 0}}function La(e,t){let n=new Set(e.map(l=>l.file)),s=new Set([...t.callSites.map(l=>l.file),...t.referencingFiles,...t.defs.map(l=>l.file)]),r=[],o=[],a=[];for(let l of n)(s.has(l)?r:o).push(l);for(let l of s)n.has(l)||a.push(l);return{both:r.sort(M),lspOnly:o.sort(M),staticOnly:a.sort(M)}}async function Du(e,t,n,s,r,o){if(!s.capabilities.references)return{...n,lsp:Bt(r,"server does not provide textDocument/references")};if(!n.defs.length)return{...n,lsp:Bt(r,`no declaration of ${t} to anchor a request on`)};let a=new Set,l=[];try{for(let c of n.defs){let d=jy(e.root,c.file);if(!d)continue;s.didOpen(c.file,d,o);let m=$u(e.root,c.file,c.line,t);for(let u of await s.references(c.file,c.line,m)){let f=`${u.file}:${u.line}:${u.character??""}`;a.has(f)||(a.add(f),l.push(u))}}}catch(c){return{...n,lsp:{server:r,ok:!1,reason:c instanceof Error?c.message:String(c),refs:l.sort(Pu),agreement:La(l,n)}}}return l.sort(Pu),{...n,lsp:{server:r,ok:!0,refs:l,agreement:La(l,n)}}}function Pu(e,t){return M(e.file,t.file)||e.line-t.line||(e.character??0)-(t.character??0)}function jy(e,t){try{return Q(I(e,t),"utf8")}catch{return""}}var ja=O(()=>{"use strict";E();Se();ae();Y()});function Wa(e,t){let n;try{n=yl(e.command,e.args??[],{cwd:t,stdio:["pipe","pipe","pipe"],...e.env?{env:{...R.env,...e.env}}:{}})}catch{return}let s=!1,r=[],o=[],a=l=>{if(!s){s=!0;for(let c of o)c(l)}};return n.on("error",()=>a(null)),n.on("close",l=>a(l)),n.stdout?.on("data",l=>{for(let c of r)c(l)}),n.stderr?.on("data",()=>{}),{write(l){if(!s)try{n.stdin?.write(l)}catch{a(null)}},onData(l){r.push(l)},onExit(l){s?l(null):o.push(l)},close(){try{n.stdin?.end()}catch{}let l=setTimeout(()=>{try{n.kill("SIGKILL")}catch{}},2e3);l.unref?.(),n.on("close",()=>clearTimeout(l))}}}var Ua=O(()=>{"use strict";E();Wi()});async function Lr(e,t,n=!1){let{path:s,source:r}=hi(t),o=yi(t);if(!o)return{lspVersion:1,mode:"none",configPath:s??null,source:r,servers:[],unmappedLanguages:[]};let a=new Map;for(let m of e.files)a.set(m.lang,(a.get(m.lang)??0)+1);let l=[];for(let m of o.servers){let u={id:m.id,languages:m.languages,command:m.command,onPath:at(m.command),filesInRepo:m.languages.reduce((f,p)=>f+(a.get(p)??0),0)};if(n){let f=await Lu(m,e.root);f.ok?(u.reachable=!0,u.capabilities=f.session.capabilities,await f.session.shutdown()):(u.reachable=!1,u.error=f.reason)}l.push(u)}let c=new Set(o.servers.flatMap(m=>m.languages)),d=[...a.keys()].filter(m=>!c.has(m)&&m!=="other").sort();return{lspVersion:1,mode:"configured",configPath:s??null,source:r,servers:l,unmappedLanguages:d}}async function Lu(e,t){if(!at(e.command))return{ok:!1,reason:`${e.command} is not on PATH`};let n=Wa(e,t);if(!n)return{ok:!1,reason:`could not start ${e.command}`};try{return{ok:!0,session:await Oa(n,{root:t,timeoutMs:Fu(e),startupTimeoutMs:Nu(e),...e.initializationOptions!==void 0?{initializationOptions:e.initializationOptions}:{}})}}catch(s){return n.close(),{ok:!1,reason:s instanceof Error?s.message:String(s)}}}async function Ba(e,t,n,s){let r;try{r=yi(t)}catch(c){return{...s,lsp:Bt("(config)",c instanceof Error?c.message:String(c))}}if(!r)return s;let o=s.defs[0]?.lang;if(!o)return{...s,lsp:Bt("(none)",`no declaration of ${n} to anchor a request on`)};let a=$a(r,o);if(!a)return{...s,lsp:Bt("(none)",`no server configured for ${o}`)};let l=await Lu(a,e.root);if(!l.ok)return{...s,lsp:Bt(a.id,l.reason)};try{return await Du(e,n,s,l.session,a.id,a.languageId??a.languages[0])}finally{await l.session.shutdown()}}var bi=O(()=>{"use strict";E();Ae();Pa();Da();ja();Ua()});function Hy(e){let n=e.split("/").pop().split(".")[0].toLowerCase();return zy.has(n)}function Wu(e){return Array.isArray(e)?e:[e]}function jr(e){let t=Array.isArray(e)?e:e?.rules;if(!Array.isArray(t))throw new Error("rules config must be an array (or an object with a `rules` array)");return t.map((n,s)=>{let r=`rules[${s}]`;if(typeof n!="object"||n===null)throw new Error(`${r}: must be an object`);let o=n;if(typeof o.name!="string"||!o.name)throw new Error(`${r}: \`name\` (non-empty string) is required`);if(o.severity!==void 0&&!Wy.has(o.severity))throw new Error(`${r} (${o.name}): \`severity\` must be "error" or "warn"`);if(o.comment!==void 0&&typeof o.comment!="string")throw new Error(`${r} (${o.name}): \`comment\` must be a string`);if(o.builtin!==void 0){if(!Uy.has(o.builtin))throw new Error(`${r} (${o.name}): \`builtin\` must be "cycles", "orphans" or "literals"`);return{name:o.name,builtin:o.builtin,severity:o.severity,comment:o.comment,...o.tiers!==void 0?{tiers:o.tiers}:{}}}let a=d=>{let m=o[d];if(!(typeof m=="string"?m.length>0:Array.isArray(m)&&m.length>0&&m.every(f=>typeof f=="string"&&f)))throw new Error(`${r} (${o.name}): \`${d}\` must be a glob or a non-empty array of globs`);return m},l=a("from"),c=a("to");if(o.kind!==void 0&&!(Array.isArray(o.kind)&&o.kind.every(m=>ju.has(m))))throw new Error(`${r} (${o.name}): \`kind\` must be an array of edge kinds (${[...ju].join(", ")})`);return{name:o.name,from:l,to:c,kind:o.kind,severity:o.severity,comment:o.comment}})}function qy(e){let t=new Map;for(let m of e.moduleEdges){if(m.kind!=="import")continue;let u=t.get(m.from);u||t.set(m.from,u=[]),u.push(m.to)}for(let m of t.values())m.sort(M);let n=[...t.keys()].sort(M),s=new Map,r=new Map,o=new Set,a=[],l=[],c=0;for(let m of n){if(s.has(m))continue;let u=[{node:m,next:0}];for(;u.length;){let f=u[u.length-1],p=f.node;f.next===0&&(s.set(p,c),r.set(p,c),c++,a.push(p),o.add(p));let g=t.get(p)??[];if(f.next1&&l.push(y)}u.pop();let h=u[u.length-1];h&&r.set(h.node,Math.min(r.get(h.node),r.get(p)))}}}let d=[];for(let m of l){let u=new Set(m),f=[...m].sort(M)[0],p=new Map([[f,null]]),g=[f];for(let S=0;S(t.get(S)??[]).includes(f)&&S!==f)??f,y=[];for(let S=h;S!==null;S=p.get(S)??null)y.unshift(S);y.push(f),d.push({start:f,path:y})}return d}function Wr(e,t){let n=[],s=(o,a)=>{n.push({rule:o.name,...a,severity:o.severity??"error",...o.comment!==void 0?{comment:o.comment}:{}})},r=new Set(e.files.map(o=>o.rel));for(let o of t){if("builtin"in o){if(o.builtin==="cycles")for(let d of qy(e))s(o,{from:d.start,to:d.path.join(" -> "),kind:"cycle"});else if(o.builtin==="literals"){let d=new Set(o.tiers?.length?o.tiers:By);for(let m of e.literalDuplications??[]){if(!d.has(m.tier))continue;let u=m.holders[0]??m.literals[0];s(o,{from:`${u.file}:${u.line}`,to:`${m.tier} ${JSON.stringify(m.value)} (${m.count} sites, ${m.files} files)`,kind:"literal"})}}else for(let d of e.files)d.fileKind!=="code"||d.degIn!==0||d.degOut!==0||Hy(d.rel)||s(o,{from:d.rel,to:d.rel,kind:"orphan"});continue}let a=bt(Wu(o.from)),l=bt(Wu(o.to));if(!a||!l)continue;let c=o.kind?.length?new Set(o.kind):null;for(let d of e.fileEdges)d.dangling||!r.has(d.to)||c&&!c.has(d.kind)||!a(d.from)||!l(d.to)||s(o,{from:d.from,to:d.to,kind:d.kind})}return n.sort((o,a)=>M(o.rule,a.rule)||M(o.from,a.from)||M(o.to,a.to)||M(o.kind,a.kind)),n}var ju,Wy,Uy,By,zy,wi=O(()=>{"use strict";E();Gn();Y();ju=new Set(["contains","doc-link","import","call","use","mention"]),Wy=new Set(["error","warn"]),Uy=new Set(["cycles","orphans","literals"]),By=["competing","bypassed"],zy=new Set(["index","main","app","application","cli","server","entry","entrypoint","setup","conftest","__init__","__main__","mod","lib"])});function Ur(e){let t=An(e),n=Ys(e),s=[],r=o=>o.exported&&!Gy.has(o.kind)&&!$t(o.file)&&!Vy.test(o.file);for(let o of e.files)for(let a of o.symbols){if(!r(a))continue;let l=t.get(`${a.name}@${a.file}`)??t.get(a.name);if(!!l&&l.def.file===a.file&&l.callers.length>0)continue;let d=(n.get(a.name)?.size??0)>0;s.push({name:a.name,file:a.file,line:a.line,kind:a.kind,tier:d?"uncalled":"unreferenced"})}return s.sort((o,a)=>M(o.tier,a.tier)||M(o.file,a.file)||o.line-a.line)}var Gy,Vy,xi=O(()=>{"use strict";E();pt();Rn();Y();Gy=new Set(["reexport","reexport-all","default"]),Vy=/(^|\/)(index|main|cli|app|server|engine)\.[a-z]+$/});function Br(e,t={}){let n=t.maxEdges??80,s=[...e.moduleEdges].filter(l=>!l.dangling);t.module&&(s=s.filter(l=>l.from===t.module||l.to===t.module)),s.sort((l,c)=>c.weight-l.weight||M(l.from,c.from)||M(l.to,c.to));let r=Math.max(0,s.length-n);s=s.slice(0,n);let o=new Set;for(let l of s)o.add(l.from),o.add(l.to);t.module&&o.add(t.module);let a=["graph LR"];for(let l of[...e.modules].sort((c,d)=>M(c.slug,d.slug)))o.has(l.slug)&&a.push(` ${za(l.slug)}["${l.slug}${l.tier===0?" (core)":""}"]`);for(let l of s){let c=l.kind==="import"?"":`|${l.kind}|`;a.push(` ${za(l.from)} -->${c} ${za(l.to)}`)}return r&&a.push(` %% ${r} lighter edges omitted (maxEdges=${n})`),a.join(` `)+` -`}function Ba(e){return"m_"+e.replace(/[^A-Za-z0-9_]/g,"_")}function Gy(e,t={}){let n=t.maxModules??zy,r=t.maxEdges??Hy,o=e.modules.slice().sort((d,m)=>Pu(m)-Pu(d)||M(d.slug,m.slug)).slice(0,n),a=new Set(o.map(d=>d.slug)),l=e.moduleEdges.filter(d=>a.has(d.from)&&a.has(d.to)).sort((d,m)=>m.weight-d.weight||M(d.from,m.from)||M(d.to,m.to)).slice(0,r),c=[];c.push(`%% ${t.title??"module graph"} \u2014 ${o.length} of ${e.modules.length} modules, ${l.length} of ${e.moduleEdges.length} edges`),(o.lengthu.tier===d);if(m.length){c.push(` subgraph ${By[d]}`);for(let u of m)c.push(` ${Ba(u.slug)}["${u.path.replace(/"/g,"'")}"]`);c.push(" end")}}for(let d of l){let m=d.weight>1?`|${d.weight}| `:"";c.push(` ${Ba(d.from)} -->${m?" "+m:" "}${Ba(d.to)}`)}return{content:"```mermaid\n"+c.join(` -`)+"\n```\n",shownModules:o.length,totalModules:e.modules.length,shownEdges:l.length,totalEdges:e.moduleEdges.length}}var Ua,By,zy,Hy,Pu,wi=O(()=>{"use strict";E();Y();Ua=e=>e.replace(/[^\w]/g,"_");By={0:"Foundations",1:"Features",2:"Tail"},zy=40,Hy=80,Pu=e=>e.degIn+e.degOut});function Bu(){throw new Error("readline is not available in the browser build (the MCP stdio transport is Node-only)")}var zu=O(()=>{E()});function Si(e,t){let n=e.properties??{};for(let[r,s]of Object.entries(t)){if(s==null)continue;let o=n[r];if(!o?.type)continue;let a=Array.isArray(s)?"array":typeof s;if(o.type==="number"){let l=a==="number"?s:a==="string"&&s.trim()!==""?Number(s):NaN;if(!Number.isFinite(l))return`\`${r}\` must be a number, got ${a==="string"?JSON.stringify(s):a}`;if(o.minimum!==void 0&&lo.maximum)return`\`${r}\` must be at most ${o.maximum}`;continue}if(o.type==="array"){if(a!=="array")return`\`${r}\` must be an array of strings, got ${a}`;if(o.items?.type==="string"&&!s.every(l=>typeof l=="string"))return`\`${r}\` must be an array of strings`;continue}if(a!==o.type)return`\`${r}\` must be a ${o.type}, got ${a}`}}function ki(e,t,n){if(t||!n)return;let r;try{r=JSON.parse(e)}catch{return}if(!(r===null||typeof r!="object"||Array.isArray(r)))return r}function Ei(e){return typeof e=="string"&&Ct.includes(e)?e:eb}function Ri(e,t,n,r){let s=N.byteLength(e,"utf8");if(s<=r)return e;let o=Va[t]?I(n,ft,Va[t]):void 0;return JSON.stringify({truncated:!0,tool:t,bytes:s,maxBytes:r,reason:"This response exceeds the configured limit and was withheld rather than sent as an unusable partial payload.",narrower:tb[t]??"narrow the request with `scope`, `include`/`exclude`, or a `limit`",...o&&H(o)?{artifact:o,artifactNote:"The full result is already on disk here \u2014 read it directly if you need all of it."}:o?{artifactNote:`Run \`codeindex index --repo ${n} --out ${I(n,ft)}\` to get this as a file.`}:{}},null,2)+` -`}function Mi(e,t){let n=Va[t];if(!n)return;let r;try{r=JSON.parse(e)}catch{return}if(!(r.truncated!==!0||typeof r.artifact!="string"))return{type:"resource_link",uri:qn(r.artifact).href,name:n,description:`The full ${t} result this call was too large to inline.`,mimeType:"application/json"}}var Ct,eb,Hu,zr,vi,tb,Va,Ci=O(()=>{"use strict";E();Se();ae();ks();or();Ct=["2024-11-05","2025-03-26","2025-06-18","2025-11-25"],eb=Ct[Ct.length-1],Hu="2025-03-26",zr="2025-06-18";vi=1e6,tb={graph:"pass `scope` to a subdirectory, or use repo_map / mermaid for an overview",symbols:"pass `name` to look up one symbol, or use find_symbol / symbols_overview",callers:"pass `name` to look up one symbol's call sites",dead_code:"pass `scope` to a subdirectory",find_references:"the symbol is referenced very widely \u2014 narrow with `scope` on a graph query",check_rules:"narrow the rule set, or pass `scope` to a subdirectory"},Va={graph:"graph.json",symbols:"symbols.json"}});function Ja(e){let t=Gr[e];if(t)return{readOnlyHint:!t.write,...t.write?{destructiveHint:t.destructive===!0,idempotentHint:t.idempotent===!0}:{},openWorldHint:t.openWorld===!0}}function qr(){return["all",...Object.keys(Ai).sort()]}function Vr(e){let t=e.split(",").map(r=>r.trim()).filter(Boolean),n=new Set;for(let r of t){if(r==="all")return new Set(Hr.map(o=>o.name));let s=Ai[r];if(!s)throw new Error(`unknown tool profile "${r}" \u2014 one of: ${qr().join(", ")}`);for(let o of s)n.add(o)}return n}function Jr(e,t=Ct[0],n){let r=t>=Hu,s=t>=zr,o=n?Vr(n):void 0,a=o?Hr.filter(l=>o.has(l.name)):Hr;return!e&&!r&&!s?a:a.map(l=>({...l,...s&&Gr[l.name]?{title:Gr[l.name].title}:{},...s&&mn[l.name]?{outputSchema:mn[l.name]}:{},...r?{annotations:Ja(l.name)}:{},inputSchema:e?{...l.inputSchema,properties:{...l.inputSchema.properties,repo:{type:"string",description:`Absolute path to the repository root (optional \u2014 defaults to ${e})`}},required:l.inputSchema.required.filter(c=>c!=="repo")}:l.inputSchema}))}var ee,fn,Hr,On,ye,mn,Gr,Ai,Ti=O(()=>{"use strict";E();Ci();ee={repo:{type:"string",description:"Absolute path to the repository root"}},fn={scope:{type:"string",description:"Restrict to one directory (repo-relative)"},include:{type:"array",items:{type:"string"},description:"Include globs"},exclude:{type:"array",items:{type:"string"},description:"Exclude globs"}},Hr=[{name:"scan_summary",description:"Deterministically scan a repository: file count, per-language file histogram, HEAD commit, and whether the walk was capped. Fast first look at any codebase.",inputSchema:{type:"object",properties:{...ee,...fn},required:["repo"]}},{name:"graph",description:"Build the full typed cross-file link-graph (import/call/use/doc-link/mention edges, module grouping, PageRank centrality, Louvain communities, tests-map). Returns graph.json. Large on big repos \u2014 prefer scan_summary/symbols/callers for targeted questions.",inputSchema:{type:"object",properties:{...ee,...fn},required:["repo"]}},{name:"symbols",description:"Where is a symbol defined and which files reference it? Returns the definition sites (file, line, kind, exported) and referencing files. Omit `name` for the full symbol index.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Symbol name to look up"}},required:["repo"]}},{name:"callers",description:"Who calls a function? Per-symbol caller index: each defined symbol with the exact (file, line) call sites that bind to it. Omit `name` for the full index.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Symbol name to look up"},recall:{type:"boolean",description:"Recall-oriented binding: relax the JS/TS import gate to unique repo-wide names, labelling each site corroborated|unique-name (default false = precision)"}},required:["repo"]}},{name:"workspaces",description:"Detect monorepo packages (npm/pnpm/yarn/lerna/nx/cargo/go.work/maven) with the workspace dependency graph, one cycle if present, and a topological build order.",inputSchema:{type:"object",properties:{...ee},required:["repo"]}},{name:"churn",description:"Per-file git commit counts (whole history, or since a ref) \u2014 the churn half of hotspot analysis.",inputSchema:{type:"object",properties:{...ee,since:{type:"string",description:"Only count commits after this ref"}},required:["repo"]}},{name:"symbols_overview",description:"All symbols declared in ONE file (name, kind, line span, exported, parent), in declaration order \u2014 the fastest way to understand a file without reading it.",inputSchema:{type:"object",properties:{...ee,file:{type:"string",description:"Repo-relative file path"}},required:["repo","file"]}},{name:"find_symbol",description:`Find symbol declarations by name or name path ('Class/method' matches a method inside Class). Each match carries its COMPLETE SIGNATURE (parameters and return type) by default, because "what shape is it" is the question that follows "where is it" almost every time and one round trip beats two. Options: substring matching, includeBody for the declaration's source, concise to drop everything but name/kind/file/line when you genuinely only want a location. Exact-name matches rank first.`,inputSchema:{type:"object",properties:{...ee,namePath:{type:"string",description:"Symbol name or Parent/child path"},substring:{type:"boolean"},includeBody:{type:"boolean"},concise:{type:"boolean",description:"Return only name/kind/file/line \u2014 drop the signature, line span, visibility and language. Roughly 2.5x smaller; use it when you are resolving a path and nothing more (default false)."},maxResults:{type:"number",minimum:1,description:"Cap matches (default 50)"}},required:["repo","namePath"]}},{name:"find_references",description:"Who references a symbol? Three labeled tiers: defs (declarations), callSites (line-precise, import-corroborated call bindings), referencingFiles (file-level identifier/doc mentions \u2014 may include homonyms). Confidence decreases across tiers; the labels let you decide what to trust.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Symbol name"},lsp:{type:"boolean",description:"Also ask a configured language server (see lsp_status) and append an `lsp` block: its references plus an `agreement` matrix (both / lspOnly / staticOnly). The three static tiers are unchanged either way. `staticOnly` is where the homonyms are. No config, no binary, a crash or a timeout all degrade to the static answer with a stated reason (default false)."}},required:["repo","name"]}},{name:"lsp_status",description:"Is the optional LSP tier configured, and would it answer? Reports the config path and its source, each server with whether its command is on PATH and how many files in this repo it claims, and the languages no server covers. Opt-in by asset: the tier is active only when /.codeindex/lsp.json exists (or CODEINDEX_LSP_CONFIG points at one). `probe: true` additionally starts each server to read the capabilities it really advertises. The tier never touches graph.json/symbols.json \u2014 it annotates query answers only.",inputSchema:{type:"object",properties:{...ee,probe:{type:"boolean",description:"Start each server and read its real capabilities (default false: no spawn)"}},required:["repo"]}},{name:"onboard",description:"One call that says what this repository IS: its own tagline, size and language mix, monorepo layout when there is one, a token-budgeted map of the highest-PageRank files with their key signatures, and where git says work concentrates. Composes scan_summary + workspaces + repo_map + hotspots so the first four round trips of a session become one, and persists the result as the `onboarding` memory (read_memory) so the next session does not repeat them. Set remember:false to skip the write.",inputSchema:{type:"object",properties:{...ee,budgetTokens:{type:"number",minimum:1,description:"Token budget for the key-files section (default 900)"},remember:{type:"boolean",description:"Persist the brief as the `onboarding` memory (default true)"}},required:["repo"]}},{name:"repo_map",description:"Token-budgeted map of the repository: the highest-PageRank files with their key exported signatures, deterministically rendered to fit `budgetTokens` (default 1024). The densest single read to understand an unfamiliar codebase.",inputSchema:{type:"object",properties:{...ee,budgetTokens:{type:"number",minimum:1,description:"Approximate token budget (default 1024)"}},required:["repo"]}},{name:"hotspots",description:"Where does work concentrate? Files ranked by git churn \xD7 size (commits \xD7 log2 lines). High-scoring files are where changes and defects cluster.",inputSchema:{type:"object",properties:{...ee,since:{type:"string",description:"Only count commits after this ref"}},required:["repo"]}},{name:"coupling",description:"Change coupling: pairs of files that repeatedly change in the same commits \u2014 hidden dependencies no import shows. strength 1.0 = every change to one touched the other.",inputSchema:{type:"object",properties:{...ee,since:{type:"string",description:"Only mine commits after this ref"}},required:["repo"]}},{name:"replace_symbol_body",description:"WRITE: replace a symbol's whole declaration with `body` (verbatim, supply full indentation). The symbol is resolved by name path ('Class/method'); ambiguity errors list the candidates \u2014 qualify with `file`. Line spans come from the AST index.",inputSchema:{type:"object",properties:{...ee,namePath:{type:"string"},body:{type:"string"},file:{type:"string",description:"Disambiguate: repo-relative file containing the symbol"}},required:["repo","namePath","body"]}},{name:"insert_after_symbol",description:"WRITE: insert `body` after a symbol's declaration (blank-line separation preserved for definition-like kinds). Resolved like replace_symbol_body.",inputSchema:{type:"object",properties:{...ee,namePath:{type:"string"},body:{type:"string"},file:{type:"string"}},required:["repo","namePath","body"]}},{name:"insert_before_symbol",description:"WRITE: insert `body` before a symbol's declaration (blank-line separation preserved). Resolved like replace_symbol_body.",inputSchema:{type:"object",properties:{...ee,namePath:{type:"string"},body:{type:"string"},file:{type:"string"}},required:["repo","namePath","body"]}},{name:"write_memory",description:"Persist a named markdown note under /.codeindex/memories/ (names may use topic/name form). Write small, focused notes: project map, build commands, conventions.",inputSchema:{type:"object",properties:{...ee,name:{type:"string"},content:{type:"string"}},required:["repo","name","content"]}},{name:"read_memory",description:"Read one persisted memory by name.",inputSchema:{type:"object",properties:{...ee,name:{type:"string"}},required:["repo","name"]}},{name:"list_memories",description:"List persisted memory names \u2014 load this first, then read individual memories on relevance.",inputSchema:{type:"object",properties:{...ee},required:["repo"]}},{name:"delete_memory",description:"Delete one persisted memory by name.",inputSchema:{type:"object",properties:{...ee,name:{type:"string"}},required:["repo","name"]}},{name:"dead_code",description:"Dead-code candidates in two labeled tiers: 'unreferenced' (no call site binds AND nothing references the name) and 'uncalled' (referenced somewhere \u2014 re-export, type position \u2014 but never called). Exported symbols only; test files and entrypoint-looking files excluded as roots. On a large repo this list runs to thousands of entries \u2014 pass `limit`, or `scope` to one subdirectory.",inputSchema:{type:"object",properties:{...ee,...fn,limit:{type:"number",minimum:0,description:"Cap entries (default: all)"}},required:["repo"]}},{name:"duplicated_literals",description:"Values with no single source of truth: one literal written out across many files. Three labeled tiers \u2014 'competing' (two or more exported constants hold the same value), 'bypassed' (a constant holds it and other files rewrite it anyway), 'uncentralized' (nothing holds it). Path-like values are also grouped into namespace families, so a whole route space reports once instead of once per route. Covers config files (JSON/YAML/TOML) as well as code, which is where the dangerous cases live: a threshold declared in TypeScript and again in a rules JSON is checked by no compiler. Use it to answer 'what breaks if this value changes' and 'is there already a helper for this'.",inputSchema:{type:"object",properties:{...ee,...fn,minFiles:{type:"number",minimum:1,description:"Distinct files a value must span (default 2)"},minCount:{type:"number",minimum:1,description:"Total occurrences required (default 3)"},includeTests:{type:"boolean",description:"Count test files too (default false)"},limit:{type:"number",minimum:0,description:"Cap duplications (default: all)"}},required:["repo"]}},{name:"complexity",description:"Cyclomatic-complexity estimates (branch-token counting over AST line spans), most-complex first. Pass `file` for one file's symbols, omit for the repo-wide top. Combine with hotspots: the `risk` field of this tool's sibling ranks complexity \xD7 churn.",inputSchema:{type:"object",properties:{...ee,file:{type:"string"},risk:{type:"boolean",description:"Return complexity \xD7 git-churn risk ranking instead"},since:{type:"string",description:"Only count risk churn after this ref"},top:{type:"number",minimum:1,description:"Cap ranked symbols"}},required:["repo"]}},{name:"mermaid",description:"Mermaid diagram of the module graph (renders inline in Claude/GitHub \u2014 no graph database). Optionally scoped to one module's neighborhood.",inputSchema:{type:"object",properties:{...ee,module:{type:"string",description:"Module slug to focus on"},maxEdges:{type:"number",minimum:1,description:"Cap rendered edges"}},required:["repo"]}},{name:"grep",description:"Search file contents (ripgrep when available, deterministic JS fallback otherwise). Returns sorted (file, line, text) hits.",inputSchema:{type:"object",properties:{...ee,pattern:{type:"string",description:"Regular expression to search for"},scope:{type:"string",description:"Restrict to one directory (repo-relative)"},globs:{type:"array",items:{type:"string"},description:"Restrict to matching paths"},ignoreCase:{type:"boolean"},maxHits:{type:"number",minimum:1}},required:["repo","pattern"]}},{name:"search",description:'Natural-language-ish lexical search: BM25F ranking over SIX weighted fields \u2014 symbol names (camelCase/snake_case subtokens), path segments, markdown headings, the file summary, per-symbol DOC COMMENTS, and the prose body (comment + short-literal words). The last two are why "where is rate limiting handled" works: the phrase lives in a comment, not in a name. Results carry `matchedFields`, a `line` anchor and `symbolHits` (name/kind/line). NOT embeddings by default \u2014 deterministic, diacritic-folded, zero API keys. Answers "where is auth handled?"-style queries with ranked files, matched terms and top symbols. Query terms with zero document frequency get a deterministic trigram-fuzzy fallback (typo-tolerant) unless `fuzzy: false`. Set `semantic: true` to RRF-fuse an embedding tier (HTTP endpoint, else a local static model) with lexical \u2014 the response then wraps the ranked list as `{ results, tier, degradedReason? }`, `tier` being "endpoint"/"static" when fusion happened or "lexical" (with `degradedReason`) when it did not (see embed_status). Without `semantic`, the response is the bare ranked array, unchanged.',inputSchema:{type:"object",properties:{...ee,...fn,query:{type:"string",description:"Natural-language or identifier query"},limit:{type:"number",minimum:0,description:"Max results (default 20)"},fuzzy:{type:"boolean",description:'Fallback for query terms with zero document frequency: a morphological stem match first ("caching" finds "cache"), then trigram similarity for typos (default true)'},rank:{type:"string",description:`Structural prior: "graph" multiplies the lexical score by the file's PageRank over the resolved import graph; "lexical" (default) scores on text alone. Unproven on the judged corpus \u2014 see SearchOptions.rank.`},exact:{type:"boolean",description:"Drop results that carry no verbatim query-term match \u2014 the ones the stem/trigram bridge produced (default false)."},explain:{type:"boolean",description:"Wrap the response as `{ results, explain }` with the query verdict (default false = bare array). See explain_search."},semantic:{type:"boolean",description:'RRF-fuse an embedding tier with lexical (default false). Precedence: the HTTP endpoint (CODEINDEX_EMBED_ENDPOINT) if set, else a local static model. The response reports the effective tier as a top-level `tier` field ("endpoint"/"static" on success, "lexical" plus `degradedReason` when neither is available/reachable) instead of degrading silently \u2014 see embed_status.'}},required:["repo","query"]}},{name:"explain_search",description:'Search, and say whether the query actually found anything. Returns `{ results, explain }` where explain.verdict is "match" (a verbatim term matched), "weak" (results exist but rest on a near match, or the identifier you asked for has document frequency 0) or "none". Use this instead of `search` whenever an empty-feeling or surprising result matters: a query for an identifier that is NOT in the indexed tree still returns confident-looking rows built from its subtokens \u2014 searching "nullGipStep7" in a repo that only has "nullGipStep2" ranks files matching "null" and "gip" \u2014 and only the verdict distinguishes that from a real hit. Also names the terms dropped as stopwords, the terms that exist nowhere, and what each near match bridged to.',inputSchema:{type:"object",properties:{...ee,...fn,query:{type:"string",description:"Natural-language or identifier query"},limit:{type:"number",minimum:0,description:"Max results (default 20)"},fuzzy:{type:"boolean",description:"Stem/trigram fallback for zero-document-frequency terms (default true)"},exact:{type:"boolean",description:"Drop results carrying no verbatim term match (default false)"}},required:["repo","query"]}},{name:"embed_status",description:"Report the embedding tier: the effective mode (none/static/endpoint; endpoint > static model), the resolved model (opt-in, never shipped in the package) with its modelId/dim, EMBED_VERSION, and the configured HTTP endpoint with its reachability. Use to check whether `search` with semantic:true will fuse embeddings or degrade to lexical.",inputSchema:{type:"object",properties:{...ee},required:["repo"]}},{name:"type_hierarchy",description:"How do types relate? For one type: the base classes it extends, the interfaces/traits it implements, and \u2014 the reverse direction, which no other tool answers \u2014 what extends or implements IT, plus any declared supertype with no definition in this repo. Omit `name` for the whole hierarchy.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Type name to look up"}},required:["repo"]}},{name:"implementations",description:"Who implements this interface (or extends this class)? Walks the hierarchy TRANSITIVELY, so a class implementing a sub-interface of the one asked about is included. The tool to reach for before changing an interface.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Interface/trait/class name"}},required:["repo","name"]}},{name:"call_graph",description:"What does this symbol reach, and what reaches it? A bounded symbol-to-symbol neighborhood around `symbol` \u2014 `depth` hops (default 2) following `calls`/`extends`/`implements` edges, `direction` out (callees) | in (callers) | both. Answers impact questions the one-hop `callers` tool cannot.",inputSchema:{type:"object",properties:{...ee,symbol:{type:"string",description:"Symbol name to centre on"},depth:{type:"number",minimum:1,maximum:5,description:"Hops to follow (default 2, max 5)"},direction:{type:"string",description:"out | in | both (default both)"}},required:["repo","symbol"]}},{name:"check_rules",description:'Validate dependency-cruiser-style architecture rules against the link-graph. Rules (inline JSON array): forbidden edges {name, from, to, kind?, severity?, comment?} with glob paths, plus builtins {name, builtin: "cycles"|"orphans"} (module-level import cycles; edge-less code files). Returns deterministic violations with severity error|warn \u2014 a CI gate.',inputSchema:{type:"object",properties:{...ee,...fn,rules:{type:"array",description:"Rules array (inline JSON \u2014 see description)"},configPath:{type:"string",description:"Read the rules from this JSON file instead (repo-relative or absolute) \u2014 the CLI's --config. Ignored when `rules` is given."}},required:["repo"]}}],On={type:"array",items:{type:"string"}},ye={type:"object"},mn={call_graph:{type:"object",properties:{root:{type:"array",items:ye},nodes:{type:"array",items:ye},edges:{type:"array",items:ye},truncated:{type:"boolean"}},required:["root","nodes","edges"]},scan_summary:{type:"object",properties:{engineVersion:{type:"string"},commit:{type:"string"},fileCount:{type:"integer"},languages:{type:"object",additionalProperties:{type:"integer"}},capped:{type:"boolean"}},required:["engineVersion","fileCount","languages","capped"]},graph:{type:"object",properties:{schemaVersion:{type:"integer"},version:{type:"string"},commit:{type:"string"},fileCount:{type:"integer"},languages:{type:"object",additionalProperties:{type:"integer"}},files:{type:"array",items:ye},modules:{type:"array",items:ye},fileEdges:{type:"array",items:ye},moduleEdges:{type:"array",items:ye}},required:["schemaVersion","files","fileEdges","modules","moduleEdges"]},symbols:{oneOf:[{type:"object",properties:{schemaVersion:{type:"integer"},defs:ye,refs:ye},required:["schemaVersion","defs"]},{type:"object",properties:{name:{type:"string"},defs:{type:"array",items:ye},refs:On},required:["name","defs","refs"]}]},callers:{oneOf:[{type:"object",additionalProperties:ye},{type:"object",properties:{error:{type:"string"}},required:["error"]}]},workspaces:{type:"object",properties:{packages:{type:"array",items:ye},cycle:{type:["array","null"],items:{type:"string"}},topoOrder:On},required:["packages","topoOrder"]},churn:{type:"object",properties:{ok:{type:"boolean"},churn:{type:"object",additionalProperties:{type:"integer"}}},required:["ok","churn"]},find_references:{type:"object",properties:{defs:{type:"array",items:ye},callSites:{type:"array",items:ye},referencingFiles:On},required:["defs","callSites","referencingFiles"]},lsp_status:{type:"object",properties:{lspVersion:{type:"number"},mode:{type:"string",enum:["none","configured"]},configPath:{type:["string","null"]},source:{type:"string",enum:["env","repo","cwd","none"]},servers:{type:"array",items:ye},unmappedLanguages:On},required:["lspVersion","mode","source","servers","unmappedLanguages"]},onboard:{type:"object",properties:{brief:{type:"string"},memory:{type:"string"}},required:["brief"]},explain_search:{type:"object",properties:{results:{type:"array",items:ye},explain:{type:"object",properties:{query:{type:"string"},terms:{type:"array",items:ye},droppedStopwords:On,unresolvedTerms:On,wholeIdentifier:ye,verdict:{type:"string",enum:["match","weak","none"]},note:{type:"string"},bridgedOnlyResults:{type:"number"},resultCount:{type:"number"}},required:["query","terms","droppedStopwords","unresolvedTerms","verdict","bridgedOnlyResults","resultCount"]}},required:["results","explain"]},hotspots:{type:"object",properties:{churnOk:{type:"boolean"},hotspots:{type:"array",items:ye}},required:["churnOk","hotspots"]},coupling:{type:"object",properties:{ok:{type:"boolean"},couplings:{type:"array",items:ye}},required:["ok","couplings"]},duplicated_literals:{type:"object",properties:{duplications:{type:"array",items:ye},families:{type:"array",items:ye}},required:["duplications","families"]},embed_status:{type:"object",properties:{embedVersion:{type:"integer"},mode:{type:"string",enum:["none","static","endpoint"]},model:{},endpoint:{},endpointReachable:{type:"boolean"}},required:["embedVersion","mode"]},write_memory:{type:"object",properties:{written:{type:"string"}},required:["written"]},delete_memory:{type:"object",properties:{deleted:{type:"boolean"}},required:["deleted"]}};for(let e of["replace_symbol_body","insert_after_symbol","insert_before_symbol"])mn[e]={type:"object",properties:{file:{type:"string"},symbol:{type:"string"},startLine:{type:"integer"},endLine:{type:"integer"}},required:["file"]};Gr={scan_summary:{title:"Scan summary"},graph:{title:"Link graph"},symbols:{title:"Symbol index"},callers:{title:"Caller index"},workspaces:{title:"Monorepo workspaces"},churn:{title:"Git churn"},symbols_overview:{title:"File symbol overview"},find_symbol:{title:"Find symbol"},find_references:{title:"Find references"},repo_map:{title:"Repository map"},onboard:{title:"Project brief",write:!0,destructive:!1,idempotent:!0},hotspots:{title:"Hotspots"},coupling:{title:"Change coupling"},replace_symbol_body:{title:"Replace symbol body",write:!0,destructive:!0,idempotent:!0},insert_after_symbol:{title:"Insert after symbol",write:!0,destructive:!1,idempotent:!1},insert_before_symbol:{title:"Insert before symbol",write:!0,destructive:!1,idempotent:!1},write_memory:{title:"Write memory",write:!0,destructive:!1,idempotent:!0},read_memory:{title:"Read memory"},list_memories:{title:"List memories"},delete_memory:{title:"Delete memory",write:!0,destructive:!0,idempotent:!0},dead_code:{title:"Dead-code candidates"},duplicated_literals:{title:"Values with no single source of truth"},complexity:{title:"Complexity"},mermaid:{title:"Mermaid module diagram"},grep:{title:"Grep file contents"},search:{title:"Lexical search",openWorld:!0},explain_search:{title:"Search with a verdict",openWorld:!0},lsp_status:{title:"LSP tier status",openWorld:!0},embed_status:{title:"Embedding tier status",openWorld:!0},type_hierarchy:{title:"Type hierarchy"},implementations:{title:"Implementations"},call_graph:{title:"Call graph neighborhood"},check_rules:{title:"Check architecture rules"}};Ai={orient:["scan_summary","repo_map","onboard","workspaces","mermaid","read_memory","list_memories"],find:["search","explain_search","grep","find_symbol","symbols","symbols_overview"],impact:["find_references","callers","call_graph","dead_code","type_hierarchy","implementations","lsp_status"],edit:["find_symbol","symbols_overview","replace_symbol_body","insert_after_symbol","insert_before_symbol"],risk:["hotspots","churn","coupling","complexity","check_rules","duplicated_literals","dead_code"]}});function Ka(e){return Ce(e.files.map(t=>`${t.rel}:${t.hash}`).join(` -`))}async function Kr(e,t){let n=`${e.mode}:${e.identity}:${Ka(e.scan)}`;if(Ii&&Ii.key===n)return Ii.index;let r=await t();return Ii={key:n,index:r},r}function Xr(e){let t;try{t=xe(I(e,"model.json"))}catch{return}let n=`${e}:${t.mtimeMs}:${t.size}`;if(Ni&&Ni.key===n)return Ni.model;let r=Wt(e);return r&&(Ni={key:n,model:r}),r}function Gu(e){let t=Je.findIndex(r=>r.key===e);if(t<0)return;let[n]=Je.splice(t,1);return Je.unshift(n),n}function zt(e){let t=Je.findIndex(n=>n.key===e.key);return t>=0&&Je.splice(t,1),Je.unshift(e),Je.length=Math.min(Je.length,nb),e}function qu(){Je.length=0}function Xa(e,t){let n=e+"\0";for(let r of Je)r.key.startsWith(n)&&(t?r.cacheMap.delete(t):r.cacheMap.clear())}function Vu(e,t){return e+"\0"+JSON.stringify({scope:t.scope,include:t.include,exclude:t.exclude,gitignore:t.gitignore,ignoreDirs:t.ignoreDirs,maxBytes:t.maxBytes,maxFiles:t.maxFiles,maxCallsPerFile:t.maxCallsPerFile,out:t.out,fullHash:t.fullHash})}function Zr(e,t={},n){let r=Vu(e,t),s=Gu(r);if(s){let l=Le(e,{...t,cache:s.cacheMap,precomputedWalk:n});return l.contentUnchanged?(l.cacheDirty&&(s.cacheMap=je(l)),s.scan.commit!==l.commit&&(s.scan.commit=l.commit,s.arts=void 0,s.loadArtifacts=void 0),s.scan):(zt({key:r,scan:l,cacheMap:je(l)}),l)}let o=Wo(e,{...t,precomputedWalk:n});if(o)return zt({key:r,scan:o.scan,cacheMap:o.cacheMap,arts:o.arts}),o.scan;let a=Le(e,{...t,precomputedWalk:n});return zt({key:r,scan:a,cacheMap:je(a)}),a}async function Fi(e,t={},n,r=async()=>{}){let s=Vu(e,t),o=Je.find(c=>c.key===s);if(o){let c=o.cacheMap,d=f=>(f.cacheDirty&&(o.cacheMap=je(f)),o.scan.commit!==f.commit&&(o.scan.commit=f.commit,o.arts=void 0,o.loadArtifacts=void 0),Gu(s),o.scan);if(n&&Do(n,c,t.fullHash)){await r();let f=await ut(e,{...t,cache:c,precomputedWalk:n});return f.contentUnchanged?d(f):(zt({key:s,scan:f,cacheMap:je(f)}),f)}let m=Le(e,{...t,cache:c,precomputedWalk:n});if(m.contentUnchanged)return d(m);if(n)return zt({key:s,scan:m,cacheMap:je(m)}),m;await r();let u=await ut(e,{...t,cache:c,precomputedWalk:n});return zt({key:s,scan:u,cacheMap:je(u)}),u}let a=await Ps(e,{...t,precomputedWalk:n},r);if(a)return zt({key:s,scan:a.scan,cacheMap:a.cacheMap,arts:a.arts,loadArtifacts:a.loadArtifacts}),a.scan;await r();let l=await ut(e,{...t,precomputedWalk:n});return zt({key:s,scan:l,cacheMap:je(l)}),l}function Oi(e,t={},n){return sr(e,{...t,precomputedWalk:n})}function Pi(e,t={},n,r){let s=r??Zr(e,t,n),o=Je.find(a=>a.scan===s);return o?o.arts??=o.loadArtifacts?.()??vt(s,t):vt(s,t)}async function Ju(e){await Yr(Pe(e,{}))}async function Yr(e){await et(wt(e.files.map(t=>t.ext)))}var Ii,Ni,nb,Je,Za=O(()=>{"use strict";E();Se();ae();oi();Pt();ir();or();Ne();nt();on();Fn();Tt();nb=4,Je=[]});var Zu={};Di(Zu,{DEFAULT_MAX_RESPONSE_BYTES:()=>vi,OUTPUT_SCHEMAS:()=>mn,PROTOCOL_VERSIONS:()=>Ct,TOOLS:()=>Hr,TOOL_META:()=>Gr,TOOL_PROFILES:()=>Ai,annotationsFor:()=>Ja,capResponse:()=>Ri,getArtifacts:()=>Pi,getScan:()=>Zr,getScanParallel:()=>Fi,getScanSummary:()=>Oi,memoizedEmbedModel:()=>Xr,memoizedEmbeddingIndex:()=>Kr,negotiateProtocol:()=>Ei,profileNames:()=>qr,resourceLinkFor:()=>Mi,runMcpServer:()=>Xu,scanFingerprint:()=>Ka,structuredContentFor:()=>ki,toCacheMap:()=>je,toolsFor:()=>Jr,toolsInProfiles:()=>Vr,validateArgs:()=>Si,warmGrammarsForRepo:()=>Ju,warmGrammarsForWalk:()=>Yr});function rb(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.jsonrpc!=="2.0"||typeof t.method!="string"?!1:t.id===void 0||t.id===null||typeof t.id=="number"||typeof t.id=="string"}function sb(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method!="string"&&("result"in t||"error"in t)}function ie(e){return typeof e=="string"&&e?e:void 0}function Ya(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")&&e.length?e:void 0}function Qr(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):NaN;return Number.isFinite(t)&&t>=0?t:void 0}function Ke(e){let t=Qr(e);return t!==void 0&&t>0?t:void 0}function Ku(e){return e instanceof Error?e.message:String(e)}async function ob(e,t,n){let r=ie(t.repo)??n;if(!r)throw new Error("`repo` is required (absolute path to the repository root)");try{if(!xe(r).isDirectory())throw new Error("not a directory")}catch{throw new Error(`repository root is not a readable directory: ${r}`)}let s={scope:ie(t.scope),include:Ya(t.include),exclude:Ya(t.exclude)},o=ie(t.rank),a=o==="graph"||o==="lexical"?{rank:o}:{},l,c;ib.has(e)||(l=Pe(r,{}),c=await Fi(r,s,l,()=>l?Yr(l):Promise.resolve()));let d=()=>c??Zr(r,s,l),m=()=>Pi(r,s,l,c);if(e==="scan_summary"){let u=Oi(r,s,l);return JSON.stringify({engineVersion:fe,commit:u.commit,fileCount:u.fileCount,languages:u.languages,capped:u.capped},null,2)}if(e==="graph")return In(m().graph);if(e==="symbols"){let{symbols:u}=m(),f=ie(t.name);return JSON.stringify(f?{name:f,defs:u.defs[f]??[],refs:u.refs[f]??[]}:u,null,2)}if(e==="callers"){let u=d(),f=t.recall===!0?Yt(u,void 0,{recall:!0}):Cn(u),p=ie(t.name);if(p){let h=f.get(p);return JSON.stringify(h??{error:`no tracked callers for "${p}"`},null,2)}let g={};for(let[h,y]of f)g[h]=y;return JSON.stringify(g,null,2)}if(e==="workspaces"){let u=rn(r);return JSON.stringify({packages:u.packages,cycle:u.cycle??null,topoOrder:u.topoOrder},null,2)}if(e==="churn"){let{churn:u,ok:f}=Ze(r,{since:ie(t.since)}),p={};for(let g of[...u.keys()].sort())p[g]=u.get(g);return JSON.stringify({ok:f,churn:p},null,2)}if(e==="symbols_overview"){let u=ie(t.file);if(!u)throw new Error("`file` is required");return JSON.stringify(la(d(),u),null,2)}if(e==="find_symbol"){let u=ie(t.namePath);if(!u)throw new Error("`namePath` is required");let f=An(d(),u,{substring:t.substring===!0,includeBody:t.includeBody===!0,concise:t.concise===!0,maxResults:Ke(t.maxResults)});return JSON.stringify(f,null,2)}if(e==="find_references"){let u=ie(t.name);if(!u)throw new Error("`name` is required");let f=d(),p=ca(f,u);return t.lsp===!0?JSON.stringify(await Wa(f,r,u,p),null,2):JSON.stringify(p,null,2)}if(e==="lsp_status")return JSON.stringify(await Dr(d(),r,t.probe===!0),null,2);if(e==="replace_symbol_body"||e==="insert_after_symbol"||e==="insert_before_symbol"){let u=ie(t.namePath),f=typeof t.body=="string"?t.body:void 0;if(!u||f===void 0)throw new Error("`namePath` and `body` are required");let p=d(),h=(e==="replace_symbol_body"?da:e==="insert_after_symbol"?ua:fa)(p,u,f,ie(t.file));return qu(),JSON.stringify(h,null,2)}if(e==="write_memory"){let u=ie(t.name),f=typeof t.content=="string"?t.content:void 0;if(!u||f===void 0)throw new Error("`name` and `content` are required");return JSON.stringify({written:xr(r,u,f)},null,2)}if(e==="read_memory"){let u=ie(t.name);if(!u)throw new Error("`name` is required");let f=ga(r,u);if(f===void 0)throw new Error(`no memory named "${u}" \u2014 see list_memories`);return f}if(e==="list_memories")return JSON.stringify(ha(r),null,2);if(e==="delete_memory"){let u=ie(t.name);if(!u)throw new Error("`name` is required");return JSON.stringify({deleted:_a(r,u)},null,2)}if(e==="dead_code"){let u=Wr(d()),f=Qr(t.limit);return f===void 0||u.length<=f?JSON.stringify(u,null,2):JSON.stringify({total:u.length,shown:f,truncated:!0,candidates:u.slice(0,f)},null,2)}if(e==="duplicated_literals"){let u=sn(d(),{minFiles:Ke(t.minFiles),minCount:Ke(t.minCount),includeTests:t.includeTests===!0}),f=Qr(t.limit);return f===void 0||u.duplications.length<=f?JSON.stringify(u,null,2):JSON.stringify({total:u.duplications.length,shown:f,truncated:!0,duplications:u.duplications.slice(0,f),families:u.families},null,2)}if(e==="complexity"){let u=d();if(t.risk===!0){let{churn:f,ok:p}=Ze(r,{since:ie(t.since)});return JSON.stringify({churnOk:p,risks:br(u,f,Ke(t.top))},null,2)}return JSON.stringify(yr(u,ie(t.file),Ke(t.top)),null,2)}if(e==="mermaid"){let{graph:u}=m();return Ur(u,{module:ie(t.module),maxEdges:Ke(t.maxEdges)})}if(e==="onboard"){let u=d(),{graph:f}=m();return JSON.stringify(Ca(u,f,{...Ke(t.budgetTokens)!==void 0?{budgetTokens:Ke(t.budgetTokens)}:{},...t.remember===!1?{remember:!1}:{}}),null,2)}if(e==="repo_map"){let{scan:u,graph:f}=m();return cn(u,f,{budgetTokens:Ke(t.budgetTokens)})}if(e==="hotspots"){let u=d(),{churn:f,ok:p}=Ze(r,{since:ie(t.since)});return JSON.stringify({churnOk:p,hotspots:dn(u,f)},null,2)}if(e==="coupling"){let{ok:u,couplings:f}=Pr(r,{since:ie(t.since)});return JSON.stringify({ok:u,couplings:f},null,2)}if(e==="grep"){let u=ie(t.pattern);if(!u)throw new Error("`pattern` is required");let f=ie(t.scope),p=Ya(t.globs),g=Rr(r,u,{globs:f?[...p??[],`${f.replace(/\/+$/,"")}/**`]:p,ignoreCase:t.ignoreCase===!0,maxHits:Ke(t.maxHits)});return JSON.stringify(g,null,2)}if(e==="search"){let u=ie(t.query);if(!u)throw new Error("`query` is required");let f=d(),p=Qr(t.limit),g=typeof t.fuzzy=="boolean"?t.fuzzy:void 0,h=t.exact===!0?{exact:!0}:{};if(t.semantic===!0){let _=Ut();if(_)try{let v=await Kr({mode:"endpoint",identity:_,scan:f},()=>Fr(f)),A=await Nr(u),F=ln(f,u,v,{queryVec:A,limit:p,fuzzy:g});return JSON.stringify({results:F,tier:"endpoint"},null,2)}catch(v){let A=Dt(f,u,{limit:p,fuzzy:g,...a});return JSON.stringify({results:A,tier:"lexical",degradedReason:`embedding endpoint failed: ${Ku(v)}`},null,2)}let k=Rt(r),b=k?Xr(k):void 0;if(b){let v=await Kr({mode:"static",identity:`${k}#${b.modelId}`,scan:f},()=>an(f,b)),A=ln(f,u,v,{model:b,limit:p,fuzzy:g});return JSON.stringify({results:A,tier:"static"},null,2)}let w=Dt(f,u,{limit:p,fuzzy:g,...a});return JSON.stringify({results:w,tier:"lexical",degradedReason:"no embedding endpoint or static model configured \u2014 see embed_status"},null,2)}let{results:y,explain:S}=nn(f,u,{limit:p,fuzzy:g,...h,...a});return JSON.stringify(t.explain===!0?{results:y,explain:S}:y,null,2)}if(e==="explain_search"){let u=ie(t.query);if(!u)throw new Error("`query` is required");let f=d(),p=Qr(t.limit),g=typeof t.fuzzy=="boolean"?t.fuzzy:void 0,{results:h,explain:y}=nn(f,u,{limit:p,fuzzy:g,...t.exact===!0?{exact:!0}:{},...a});return JSON.stringify({results:h,explain:y},null,2)}if(e==="embed_status"){let u=Rt(r),f=u?Xr(u):void 0,p=Ut(),h={embedVersion:it,mode:p?"endpoint":f?"static":"none",model:f?{present:!0,dir:u,modelId:f.modelId,dim:f.dim,vocabSize:f.vocabSize}:{present:!1},endpoint:p??null};return p&&(h.endpointReachable=await Ir(p)),JSON.stringify(h,null,2)}if(e==="type_hierarchy"){let u=ra(d()),f=ie(t.name);if(!f){let g={};for(let[h,y]of u)g[h]=y;return JSON.stringify(g,null,2)}let p=u.get(f);return JSON.stringify(p||{error:`no type named ${f}`},null,2)}if(e==="implementations"){let u=ie(t.name);if(!u)throw new Error("`name` is required");let f=ra(d());return f.has(u)?JSON.stringify({name:u,implementations:dr(f,u)},null,2):JSON.stringify({error:`no type named ${u}`},null,2)}if(e==="call_graph"){let u=ie(t.symbol);if(!u)throw new Error("`symbol` is required");let f=ie(t.direction),p=f==="out"||f==="in"?f:"both",g=pr(jd(d()),u,{...Ke(t.depth)!==void 0?{depth:Ke(t.depth)}:{},direction:p});return g.root.length?JSON.stringify(g,null,2):JSON.stringify({error:`no symbol named ${u}`},null,2)}if(e==="check_rules"){let u=ie(t.configPath),f=t.rules;if(f===void 0&&u){let h=ts(u)?u:I(r,u);try{f=JSON.parse(Q(h,"utf8"))}catch(y){throw new Error(`cannot read rules from ${h}: ${Ku(y)}`)}}if(f===void 0)throw new Error("`rules` (or `configPath`) is required");let p=Lr(f),{graph:g}=m();return JSON.stringify(jr(g,p),null,2)}throw new Error(`unknown tool: ${e}`)}async function Xu(e={}){let t={name:e.serverInfo?.name??"codeindex",version:e.serverInfo?.version??fe},n=Ct[0],r=Jr(e.defaultRepo,n,e.profile),s;if(e.watch&&e.defaultRepo)try{s=pl(e.defaultRepo,{recursive:!0},(c,d)=>{let m=d?.toString().replaceAll("\\","/")??"";m.split("/").some(f=>Gt.has(f)||f.startsWith(".codeindex-edit-"))||Xa(e.defaultRepo,m||void 0)}),s.on("error",c=>{R.stderr.write(`codeindex: MCP watcher disabled (${c.message}); using freshness scans -`),s?.close(),s=void 0,Xa(e.defaultRepo)})}catch(c){R.stderr.write(`codeindex: MCP watcher unavailable (${c instanceof Error?c.message:String(c)}); using freshness scans +`}function Ha(e){return"m_"+e.replace(/[^A-Za-z0-9_]/g,"_")}function Zy(e,t={}){let n=t.maxModules??Ky,s=t.maxEdges??Xy,o=e.modules.slice().sort((d,m)=>Uu(m)-Uu(d)||M(d.slug,m.slug)).slice(0,n),a=new Set(o.map(d=>d.slug)),l=e.moduleEdges.filter(d=>a.has(d.from)&&a.has(d.to)).sort((d,m)=>m.weight-d.weight||M(d.from,m.from)||M(d.to,m.to)).slice(0,s),c=[];c.push(`%% ${t.title??"module graph"} \u2014 ${o.length} of ${e.modules.length} modules, ${l.length} of ${e.moduleEdges.length} edges`),(o.lengthu.tier===d);if(m.length){c.push(` subgraph ${Jy[d]}`);for(let u of m)c.push(` ${Ha(u.slug)}["${u.path.replace(/"/g,"'")}"]`);c.push(" end")}}for(let d of l){let m=d.weight>1?`|${d.weight}| `:"";c.push(` ${Ha(d.from)} -->${m?" "+m:" "}${Ha(d.to)}`)}return{content:"```mermaid\n"+c.join(` +`)+"\n```\n",shownModules:o.length,totalModules:e.modules.length,shownEdges:l.length,totalEdges:e.moduleEdges.length}}var za,Jy,Ky,Xy,Uu,Si=O(()=>{"use strict";E();Y();za=e=>e.replace(/[^\w]/g,"_");Jy={0:"Foundations",1:"Features",2:"Tail"},Ky=40,Xy=80,Uu=e=>e.degIn+e.degOut});function Ju(){throw new Error("readline is not available in the browser build (the MCP stdio transport is Node-only)")}var Ku=O(()=>{E()});function Ei(e,t){let n=e.properties??{};for(let[s,r]of Object.entries(t)){if(r==null)continue;let o=n[s];if(!o?.type)continue;let a=Array.isArray(r)?"array":typeof r;if(o.type==="number"){let l=a==="number"?r:a==="string"&&r.trim()!==""?Number(r):NaN;if(!Number.isFinite(l))return`\`${s}\` must be a number, got ${a==="string"?JSON.stringify(r):a}`;if(o.minimum!==void 0&&lo.maximum)return`\`${s}\` must be at most ${o.maximum}`;continue}if(o.type==="array"){if(a!=="array")return`\`${s}\` must be an array of strings, got ${a}`;if(o.items?.type==="string"&&!r.every(l=>typeof l=="string"))return`\`${s}\` must be an array of strings`;continue}if(a!==o.type)return`\`${s}\` must be a ${o.type}, got ${a}`}}function vi(e,t,n){if(t||!n)return;let s;try{s=JSON.parse(e)}catch{return}if(!(s===null||typeof s!="object"||Array.isArray(s)))return s}function Ri(e){return typeof e=="string"&&Ct.includes(e)?e:ob}function Ci(e,t,n,s){let r=F.byteLength(e,"utf8");if(r<=s)return e;let o=Ka[t]?I(n,ft,Ka[t]):void 0;return JSON.stringify({truncated:!0,tool:t,bytes:r,maxBytes:s,reason:"This response exceeds the configured limit and was withheld rather than sent as an unusable partial payload.",narrower:ab[t]??"narrow the request with `scope`, `include`/`exclude`, or a `limit`",...o&&H(o)?{artifact:o,artifactNote:"The full result is already on disk here \u2014 read it directly if you need all of it."}:o?{artifactNote:`Run \`codeindex index --repo ${n} --out ${I(n,ft)}\` to get this as a file.`}:{}},null,2)+` +`}function Ai(e,t){let n=Ka[t];if(!n)return;let s;try{s=JSON.parse(e)}catch{return}if(!(s.truncated!==!0||typeof s.artifact!="string"))return{type:"resource_link",uri:Vn(s.artifact).href,name:n,description:`The full ${t} result this call was too large to inline.`,mimeType:"application/json"}}var Ct,ob,Xu,Hr,Mi,ab,Ka,Ti=O(()=>{"use strict";E();Se();ae();Es();ar();Ct=["2024-11-05","2025-03-26","2025-06-18","2025-11-25"],ob=Ct[Ct.length-1],Xu="2025-03-26",Hr="2025-06-18";Mi=1e6,ab={graph:"pass `scope` to a subdirectory, or use repo_map / mermaid for an overview",symbols:"pass `name` to look up one symbol, or use find_symbol / symbols_overview",callers:"pass `name` to look up one symbol's call sites",dead_code:"pass `scope` to a subdirectory",find_references:"the symbol is referenced very widely \u2014 narrow with `scope` on a graph query",check_rules:"narrow the rule set, or pass `scope` to a subdirectory"},Ka={graph:"graph.json",symbols:"symbols.json"}});function Xa(e){let t=Gr[e];if(t)return{readOnlyHint:!t.write,...t.write?{destructiveHint:t.destructive===!0,idempotentHint:t.idempotent===!0}:{},openWorldHint:t.openWorld===!0}}function Vr(){return["all",...Object.keys(Ii).sort()]}function Jr(e){let t=e.split(",").map(s=>s.trim()).filter(Boolean),n=new Set;for(let s of t){if(s==="all")return new Set(qr.map(o=>o.name));let r=Ii[s];if(!r)throw new Error(`unknown tool profile "${s}" \u2014 one of: ${Vr().join(", ")}`);for(let o of r)n.add(o)}return n}function Kr(e,t=Ct[0],n){let s=t>=Xu,r=t>=Hr,o=n?Jr(n):void 0,a=o?qr.filter(l=>o.has(l.name)):qr;return!e&&!s&&!r?a:a.map(l=>({...l,...r&&Gr[l.name]?{title:Gr[l.name].title}:{},...r&&mn[l.name]?{outputSchema:mn[l.name]}:{},...s?{annotations:Xa(l.name)}:{},inputSchema:e?{...l.inputSchema,properties:{...l.inputSchema.properties,repo:{type:"string",description:`Absolute path to the repository root (optional \u2014 defaults to ${e})`}},required:l.inputSchema.required.filter(c=>c!=="repo")}:l.inputSchema}))}var ee,fn,qr,Pn,ye,mn,Gr,Ii,Fi=O(()=>{"use strict";E();Ti();ee={repo:{type:"string",description:"Absolute path to the repository root"}},fn={scope:{type:"string",description:"Restrict to one directory (repo-relative)"},include:{type:"array",items:{type:"string"},description:"Include globs"},exclude:{type:"array",items:{type:"string"},description:"Exclude globs"}},qr=[{name:"scan_summary",description:"Deterministically scan a repository: file count, per-language file histogram, HEAD commit, and whether the walk was capped. Fast first look at any codebase.",inputSchema:{type:"object",properties:{...ee,...fn},required:["repo"]}},{name:"graph",description:"Build the full typed cross-file link-graph (import/call/use/doc-link/mention edges, module grouping, PageRank centrality, Louvain communities, tests-map). Returns graph.json. Large on big repos \u2014 prefer scan_summary/symbols/callers for targeted questions.",inputSchema:{type:"object",properties:{...ee,...fn},required:["repo"]}},{name:"symbols",description:"Where is a symbol defined and which files reference it? Returns the definition sites (file, line, kind, exported) and referencing files. Omit `name` for the full symbol index.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Symbol name to look up"}},required:["repo"]}},{name:"callers",description:"Who calls a function? Per-symbol caller index: each defined symbol with the exact (file, line) call sites that bind to it. Omit `name` for the full index.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Symbol name to look up"},recall:{type:"boolean",description:"Recall-oriented binding: relax the JS/TS import gate to unique repo-wide names, labelling each site corroborated|unique-name (default false = precision)"}},required:["repo"]}},{name:"workspaces",description:"Detect monorepo packages (npm/pnpm/yarn/lerna/nx/cargo/go.work/maven) with the workspace dependency graph, one cycle if present, and a topological build order.",inputSchema:{type:"object",properties:{...ee},required:["repo"]}},{name:"churn",description:"Per-file git commit counts (whole history, or since a ref) \u2014 the churn half of hotspot analysis.",inputSchema:{type:"object",properties:{...ee,since:{type:"string",description:"Only count commits after this ref"}},required:["repo"]}},{name:"symbols_overview",description:"All symbols declared in ONE file (name, kind, line span, exported, parent), in declaration order \u2014 the fastest way to understand a file without reading it.",inputSchema:{type:"object",properties:{...ee,file:{type:"string",description:"Repo-relative file path"}},required:["repo","file"]}},{name:"find_symbol",description:`Find symbol declarations by name or name path ('Class/method' matches a method inside Class). Each match carries its COMPLETE SIGNATURE (parameters and return type) by default, because "what shape is it" is the question that follows "where is it" almost every time and one round trip beats two. Options: substring matching, includeBody for the declaration's source, concise to drop everything but name/kind/file/line when you genuinely only want a location. Exact-name matches rank first.`,inputSchema:{type:"object",properties:{...ee,namePath:{type:"string",description:"Symbol name or Parent/child path"},substring:{type:"boolean"},includeBody:{type:"boolean"},concise:{type:"boolean",description:"Return only name/kind/file/line \u2014 drop the signature, line span, visibility and language. Roughly 2.5x smaller; use it when you are resolving a path and nothing more (default false)."},maxResults:{type:"number",minimum:1,description:"Cap matches (default 50)"}},required:["repo","namePath"]}},{name:"find_references",description:"Who references a symbol? Three labeled tiers: defs (declarations), callSites (line-precise, import-corroborated call bindings), referencingFiles (file-level identifier/doc mentions \u2014 may include homonyms). Confidence decreases across tiers; the labels let you decide what to trust.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Symbol name"},lsp:{type:"boolean",description:"Also ask a configured language server (see lsp_status) and append an `lsp` block: its references plus an `agreement` matrix (both / lspOnly / staticOnly). The three static tiers are unchanged either way. `staticOnly` is where the homonyms are. No config, no binary, a crash or a timeout all degrade to the static answer with a stated reason (default false)."}},required:["repo","name"]}},{name:"lsp_status",description:"Is the optional LSP tier configured, and would it answer? Reports the config path and its source, each server with whether its command is on PATH and how many files in this repo it claims, and the languages no server covers. Opt-in by asset: the tier is active only when /.codeindex/lsp.json exists (or CODEINDEX_LSP_CONFIG points at one). `probe: true` additionally starts each server to read the capabilities it really advertises. The tier never touches graph.json/symbols.json \u2014 it annotates query answers only.",inputSchema:{type:"object",properties:{...ee,probe:{type:"boolean",description:"Start each server and read its real capabilities (default false: no spawn)"}},required:["repo"]}},{name:"onboard",description:"One call that says what this repository IS: its own tagline, size and language mix, monorepo layout when there is one, a token-budgeted map of the highest-PageRank files with their key signatures, and where git says work concentrates. Composes scan_summary + workspaces + repo_map + hotspots so the first four round trips of a session become one, and persists the result as the `onboarding` memory (read_memory) so the next session does not repeat them. Set remember:false to skip the write.",inputSchema:{type:"object",properties:{...ee,budgetTokens:{type:"number",minimum:1,description:"Token budget for the key-files section (default 900)"},remember:{type:"boolean",description:"Persist the brief as the `onboarding` memory (default true)"}},required:["repo"]}},{name:"repo_map",description:"Token-budgeted map of the repository: the highest-PageRank files with their key exported signatures, deterministically rendered to fit `budgetTokens` (default 1024). The densest single read to understand an unfamiliar codebase.",inputSchema:{type:"object",properties:{...ee,budgetTokens:{type:"number",minimum:1,description:"Approximate token budget (default 1024)"}},required:["repo"]}},{name:"hotspots",description:"Where does work concentrate? Files ranked by git churn \xD7 size (commits \xD7 log2 lines). High-scoring files are where changes and defects cluster.",inputSchema:{type:"object",properties:{...ee,since:{type:"string",description:"Only count commits after this ref"}},required:["repo"]}},{name:"coupling",description:"Change coupling: pairs of files that repeatedly change in the same commits \u2014 hidden dependencies no import shows. strength 1.0 = every change to one touched the other.",inputSchema:{type:"object",properties:{...ee,since:{type:"string",description:"Only mine commits after this ref"}},required:["repo"]}},{name:"replace_symbol_body",description:"WRITE: replace a symbol's whole declaration with `body` (verbatim, supply full indentation). The symbol is resolved by name path ('Class/method'); ambiguity errors list the candidates \u2014 qualify with `file`. Line spans come from the AST index.",inputSchema:{type:"object",properties:{...ee,namePath:{type:"string"},body:{type:"string"},file:{type:"string",description:"Disambiguate: repo-relative file containing the symbol"}},required:["repo","namePath","body"]}},{name:"insert_after_symbol",description:"WRITE: insert `body` after a symbol's declaration (blank-line separation preserved for definition-like kinds). Resolved like replace_symbol_body.",inputSchema:{type:"object",properties:{...ee,namePath:{type:"string"},body:{type:"string"},file:{type:"string"}},required:["repo","namePath","body"]}},{name:"insert_before_symbol",description:"WRITE: insert `body` before a symbol's declaration (blank-line separation preserved). Resolved like replace_symbol_body.",inputSchema:{type:"object",properties:{...ee,namePath:{type:"string"},body:{type:"string"},file:{type:"string"}},required:["repo","namePath","body"]}},{name:"write_memory",description:"Persist a named markdown note under /.codeindex/memories/ (names may use topic/name form). Write small, focused notes: project map, build commands, conventions.",inputSchema:{type:"object",properties:{...ee,name:{type:"string"},content:{type:"string"}},required:["repo","name","content"]}},{name:"read_memory",description:"Read one persisted memory by name.",inputSchema:{type:"object",properties:{...ee,name:{type:"string"}},required:["repo","name"]}},{name:"list_memories",description:"List persisted memory names \u2014 load this first, then read individual memories on relevance.",inputSchema:{type:"object",properties:{...ee},required:["repo"]}},{name:"delete_memory",description:"Delete one persisted memory by name.",inputSchema:{type:"object",properties:{...ee,name:{type:"string"}},required:["repo","name"]}},{name:"dead_code",description:"Dead-code candidates in two labeled tiers: 'unreferenced' (no call site binds AND nothing references the name) and 'uncalled' (referenced somewhere \u2014 re-export, type position \u2014 but never called). Exported symbols only; test files and entrypoint-looking files excluded as roots. On a large repo this list runs to thousands of entries \u2014 pass `limit`, or `scope` to one subdirectory.",inputSchema:{type:"object",properties:{...ee,...fn,limit:{type:"number",minimum:0,description:"Cap entries (default: all)"}},required:["repo"]}},{name:"duplicated_literals",description:"Values with no single source of truth: one literal written out across many files. Three labeled tiers \u2014 'competing' (two or more exported constants hold the same value), 'bypassed' (a constant holds it and other files rewrite it anyway), 'uncentralized' (nothing holds it). Path-like values are also grouped into namespace families, so a whole route space reports once instead of once per route. Covers config files (JSON/YAML/TOML) as well as code, which is where the dangerous cases live: a threshold declared in TypeScript and again in a rules JSON is checked by no compiler. Use it to answer 'what breaks if this value changes' and 'is there already a helper for this'.",inputSchema:{type:"object",properties:{...ee,...fn,minFiles:{type:"number",minimum:1,description:"Distinct files a value must span (default 2)"},minCount:{type:"number",minimum:1,description:"Total occurrences required (default 3)"},includeTests:{type:"boolean",description:"Count test files too (default false)"},limit:{type:"number",minimum:0,description:"Cap duplications (default: all)"}},required:["repo"]}},{name:"complexity",description:"Cyclomatic-complexity estimates (branch-token counting over AST line spans), most-complex first. Pass `file` for one file's symbols, omit for the repo-wide top. Combine with hotspots: the `risk` field of this tool's sibling ranks complexity \xD7 churn.",inputSchema:{type:"object",properties:{...ee,file:{type:"string"},risk:{type:"boolean",description:"Return complexity \xD7 git-churn risk ranking instead"},since:{type:"string",description:"Only count risk churn after this ref"},top:{type:"number",minimum:1,description:"Cap ranked symbols"}},required:["repo"]}},{name:"mermaid",description:"Mermaid diagram of the module graph (renders inline in Claude/GitHub \u2014 no graph database). Optionally scoped to one module's neighborhood.",inputSchema:{type:"object",properties:{...ee,module:{type:"string",description:"Module slug to focus on"},maxEdges:{type:"number",minimum:1,description:"Cap rendered edges"}},required:["repo"]}},{name:"grep",description:"Search file contents (ripgrep when available, deterministic JS fallback otherwise). Returns sorted (file, line, text) hits.",inputSchema:{type:"object",properties:{...ee,pattern:{type:"string",description:"Regular expression to search for"},scope:{type:"string",description:"Restrict to one directory (repo-relative)"},globs:{type:"array",items:{type:"string"},description:"Restrict to matching paths"},ignoreCase:{type:"boolean"},maxHits:{type:"number",minimum:1}},required:["repo","pattern"]}},{name:"search",description:'Natural-language-ish lexical search: BM25F ranking over SIX weighted fields \u2014 symbol names (camelCase/snake_case subtokens), path segments, markdown headings, the file summary, per-symbol DOC COMMENTS, and the prose body (comment + short-literal words). The last two are why "where is rate limiting handled" works: the phrase lives in a comment, not in a name. Results carry `matchedFields`, a `line` anchor and `symbolHits` (name/kind/line). NOT embeddings by default \u2014 deterministic, diacritic-folded, zero API keys. Answers "where is auth handled?"-style queries with ranked files, matched terms and top symbols. Query terms with zero document frequency get a deterministic trigram-fuzzy fallback (typo-tolerant) unless `fuzzy: false`. Set `semantic: true` to RRF-fuse an embedding tier (HTTP endpoint, else a local static model) with lexical \u2014 the response then wraps the ranked list as `{ results, tier, degradedReason? }`, `tier` being "endpoint"/"static" when fusion happened or "lexical" (with `degradedReason`) when it did not (see embed_status). Without `semantic`, the response is the bare ranked array, unchanged.',inputSchema:{type:"object",properties:{...ee,...fn,query:{type:"string",description:"Natural-language or identifier query"},limit:{type:"number",minimum:0,description:"Max results (default 20)"},fuzzy:{type:"boolean",description:'Fallback for query terms with zero document frequency: a morphological stem match first ("caching" finds "cache"), then trigram similarity for typos (default true)'},rank:{type:"string",description:`Structural prior: "graph" multiplies the lexical score by the file's PageRank over the resolved import graph; "lexical" (default) scores on text alone. Unproven on the judged corpus \u2014 see SearchOptions.rank.`},exact:{type:"boolean",description:"Drop results that carry no verbatim query-term match \u2014 the ones the stem/trigram bridge produced (default false)."},explain:{type:"boolean",description:"Wrap the response as `{ results, explain }` with the query verdict (default false = bare array). See explain_search."},semantic:{type:"boolean",description:'RRF-fuse an embedding tier with lexical (default false). Precedence: the HTTP endpoint (CODEINDEX_EMBED_ENDPOINT) if set, else a local static model. The response reports the effective tier as a top-level `tier` field ("endpoint"/"static" on success, "lexical" plus `degradedReason` when neither is available/reachable) instead of degrading silently \u2014 see embed_status.'}},required:["repo","query"]}},{name:"explain_search",description:'Search, and say whether the query actually found anything. Returns `{ results, explain }` where explain.verdict is "match" (a verbatim term matched), "weak" (results exist but rest on a near match, or the identifier you asked for has document frequency 0) or "none". Use this instead of `search` whenever an empty-feeling or surprising result matters: a query for an identifier that is NOT in the indexed tree still returns confident-looking rows built from its subtokens \u2014 searching "nullGipStep7" in a repo that only has "nullGipStep2" ranks files matching "null" and "gip" \u2014 and only the verdict distinguishes that from a real hit. Also names the terms dropped as stopwords, the terms that exist nowhere, and what each near match bridged to.',inputSchema:{type:"object",properties:{...ee,...fn,query:{type:"string",description:"Natural-language or identifier query"},limit:{type:"number",minimum:0,description:"Max results (default 20)"},fuzzy:{type:"boolean",description:"Stem/trigram fallback for zero-document-frequency terms (default true)"},exact:{type:"boolean",description:"Drop results carrying no verbatim term match (default false)"}},required:["repo","query"]}},{name:"embed_status",description:"Report the embedding tier: the effective mode (none/static/endpoint; endpoint > static model), the resolved model (opt-in, never shipped in the package) with its modelId/dim, EMBED_VERSION, and the configured HTTP endpoint with its reachability. Use to check whether `search` with semantic:true will fuse embeddings or degrade to lexical.",inputSchema:{type:"object",properties:{...ee},required:["repo"]}},{name:"type_hierarchy",description:"How do types relate? For one type: the base classes it extends, the interfaces/traits it implements, and \u2014 the reverse direction, which no other tool answers \u2014 what extends or implements IT, plus any declared supertype with no definition in this repo. Omit `name` for the whole hierarchy.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Type name to look up"}},required:["repo"]}},{name:"implementations",description:"Who implements this interface (or extends this class)? Walks the hierarchy TRANSITIVELY, so a class implementing a sub-interface of the one asked about is included. The tool to reach for before changing an interface.",inputSchema:{type:"object",properties:{...ee,name:{type:"string",description:"Interface/trait/class name"}},required:["repo","name"]}},{name:"call_graph",description:"What does this symbol reach, and what reaches it? A bounded symbol-to-symbol neighborhood around `symbol` \u2014 `depth` hops (default 2) following `calls`/`extends`/`implements` edges, `direction` out (callees) | in (callers) | both. Answers impact questions the one-hop `callers` tool cannot.",inputSchema:{type:"object",properties:{...ee,symbol:{type:"string",description:"Symbol name to centre on"},depth:{type:"number",minimum:1,maximum:5,description:"Hops to follow (default 2, max 5)"},direction:{type:"string",description:"out | in | both (default both)"}},required:["repo","symbol"]}},{name:"check_rules",description:'Validate dependency-cruiser-style architecture rules against the link-graph. Rules (inline JSON array): forbidden edges {name, from, to, kind?, severity?, comment?} with glob paths, plus builtins {name, builtin: "cycles"|"orphans"} (module-level import cycles; edge-less code files). Returns deterministic violations with severity error|warn \u2014 a CI gate.',inputSchema:{type:"object",properties:{...ee,...fn,rules:{type:"array",description:"Rules array (inline JSON \u2014 see description)"},configPath:{type:"string",description:"Read the rules from this JSON file instead (repo-relative or absolute) \u2014 the CLI's --config. Ignored when `rules` is given."}},required:["repo"]}}],Pn={type:"array",items:{type:"string"}},ye={type:"object"},mn={call_graph:{type:"object",properties:{root:{type:"array",items:ye},nodes:{type:"array",items:ye},edges:{type:"array",items:ye},truncated:{type:"boolean"}},required:["root","nodes","edges"]},scan_summary:{type:"object",properties:{engineVersion:{type:"string"},commit:{type:"string"},fileCount:{type:"integer"},languages:{type:"object",additionalProperties:{type:"integer"}},capped:{type:"boolean"}},required:["engineVersion","fileCount","languages","capped"]},graph:{type:"object",properties:{schemaVersion:{type:"integer"},version:{type:"string"},commit:{type:"string"},fileCount:{type:"integer"},languages:{type:"object",additionalProperties:{type:"integer"}},files:{type:"array",items:ye},modules:{type:"array",items:ye},fileEdges:{type:"array",items:ye},moduleEdges:{type:"array",items:ye}},required:["schemaVersion","files","fileEdges","modules","moduleEdges"]},symbols:{oneOf:[{type:"object",properties:{schemaVersion:{type:"integer"},defs:ye,refs:ye},required:["schemaVersion","defs"]},{type:"object",properties:{name:{type:"string"},defs:{type:"array",items:ye},refs:Pn},required:["name","defs","refs"]}]},callers:{oneOf:[{type:"object",additionalProperties:ye},{type:"object",properties:{error:{type:"string"}},required:["error"]}]},workspaces:{type:"object",properties:{packages:{type:"array",items:ye},cycle:{type:["array","null"],items:{type:"string"}},topoOrder:Pn},required:["packages","topoOrder"]},churn:{type:"object",properties:{ok:{type:"boolean"},churn:{type:"object",additionalProperties:{type:"integer"}}},required:["ok","churn"]},find_references:{type:"object",properties:{defs:{type:"array",items:ye},callSites:{type:"array",items:ye},referencingFiles:Pn},required:["defs","callSites","referencingFiles"]},lsp_status:{type:"object",properties:{lspVersion:{type:"number"},mode:{type:"string",enum:["none","configured"]},configPath:{type:["string","null"]},source:{type:"string",enum:["env","repo","cwd","none"]},servers:{type:"array",items:ye},unmappedLanguages:Pn},required:["lspVersion","mode","source","servers","unmappedLanguages"]},onboard:{type:"object",properties:{brief:{type:"string"},memory:{type:"string"}},required:["brief"]},explain_search:{type:"object",properties:{results:{type:"array",items:ye},explain:{type:"object",properties:{query:{type:"string"},terms:{type:"array",items:ye},droppedStopwords:Pn,unresolvedTerms:Pn,wholeIdentifier:ye,verdict:{type:"string",enum:["match","weak","none"]},note:{type:"string"},bridgedOnlyResults:{type:"number"},resultCount:{type:"number"}},required:["query","terms","droppedStopwords","unresolvedTerms","verdict","bridgedOnlyResults","resultCount"]}},required:["results","explain"]},hotspots:{type:"object",properties:{churnOk:{type:"boolean"},hotspots:{type:"array",items:ye}},required:["churnOk","hotspots"]},coupling:{type:"object",properties:{ok:{type:"boolean"},couplings:{type:"array",items:ye}},required:["ok","couplings"]},duplicated_literals:{type:"object",properties:{duplications:{type:"array",items:ye},families:{type:"array",items:ye}},required:["duplications","families"]},embed_status:{type:"object",properties:{embedVersion:{type:"integer"},mode:{type:"string",enum:["none","static","endpoint"]},model:{},endpoint:{},endpointReachable:{type:"boolean"}},required:["embedVersion","mode"]},write_memory:{type:"object",properties:{written:{type:"string"}},required:["written"]},delete_memory:{type:"object",properties:{deleted:{type:"boolean"}},required:["deleted"]}};for(let e of["replace_symbol_body","insert_after_symbol","insert_before_symbol"])mn[e]={type:"object",properties:{file:{type:"string"},symbol:{type:"string"},startLine:{type:"integer"},endLine:{type:"integer"}},required:["file"]};Gr={scan_summary:{title:"Scan summary"},graph:{title:"Link graph"},symbols:{title:"Symbol index"},callers:{title:"Caller index"},workspaces:{title:"Monorepo workspaces"},churn:{title:"Git churn"},symbols_overview:{title:"File symbol overview"},find_symbol:{title:"Find symbol"},find_references:{title:"Find references"},repo_map:{title:"Repository map"},onboard:{title:"Project brief",write:!0,destructive:!1,idempotent:!0},hotspots:{title:"Hotspots"},coupling:{title:"Change coupling"},replace_symbol_body:{title:"Replace symbol body",write:!0,destructive:!0,idempotent:!0},insert_after_symbol:{title:"Insert after symbol",write:!0,destructive:!1,idempotent:!1},insert_before_symbol:{title:"Insert before symbol",write:!0,destructive:!1,idempotent:!1},write_memory:{title:"Write memory",write:!0,destructive:!1,idempotent:!0},read_memory:{title:"Read memory"},list_memories:{title:"List memories"},delete_memory:{title:"Delete memory",write:!0,destructive:!0,idempotent:!0},dead_code:{title:"Dead-code candidates"},duplicated_literals:{title:"Values with no single source of truth"},complexity:{title:"Complexity"},mermaid:{title:"Mermaid module diagram"},grep:{title:"Grep file contents"},search:{title:"Lexical search",openWorld:!0},explain_search:{title:"Search with a verdict",openWorld:!0},lsp_status:{title:"LSP tier status",openWorld:!0},embed_status:{title:"Embedding tier status",openWorld:!0},type_hierarchy:{title:"Type hierarchy"},implementations:{title:"Implementations"},call_graph:{title:"Call graph neighborhood"},check_rules:{title:"Check architecture rules"}};Ii={orient:["scan_summary","repo_map","onboard","workspaces","mermaid","read_memory","list_memories"],find:["search","explain_search","grep","find_symbol","symbols","symbols_overview"],impact:["find_references","callers","call_graph","dead_code","type_hierarchy","implementations","lsp_status"],edit:["find_symbol","symbols_overview","replace_symbol_body","insert_after_symbol","insert_before_symbol"],risk:["hotspots","churn","coupling","complexity","check_rules","duplicated_literals","dead_code"]}});function Za(e){return Ce(e.files.map(t=>`${t.rel}:${t.hash}`).join(` +`))}async function Xr(e,t){let n=`${e.mode}:${e.identity}:${Za(e.scan)}`;if(Ni&&Ni.key===n)return Ni.index;let s=await t();return Ni={key:n,index:s},s}function Zr(e){let t;try{t=xe(I(e,"model.json"))}catch{return}let n=`${e}:${t.mtimeMs}:${t.size}`;if(Oi&&Oi.key===n)return Oi.model;let s=Wt(e);return s&&(Oi={key:n,model:s}),s}function Zu(e){let t=Je.findIndex(s=>s.key===e);if(t<0)return;let[n]=Je.splice(t,1);return Je.unshift(n),n}function zt(e){let t=Je.findIndex(n=>n.key===e.key);return t>=0&&Je.splice(t,1),Je.unshift(e),Je.length=Math.min(Je.length,lb),e}function Yu(){Je.length=0}function Ya(e,t){let n=e+"\0";for(let s of Je)s.key.startsWith(n)&&(t?s.cacheMap.delete(t):s.cacheMap.clear())}function Qu(e,t){return e+"\0"+JSON.stringify({scope:t.scope,include:t.include,exclude:t.exclude,gitignore:t.gitignore,ignoreDirs:t.ignoreDirs,maxBytes:t.maxBytes,maxFiles:t.maxFiles,maxCallsPerFile:t.maxCallsPerFile,out:t.out,fullHash:t.fullHash})}function Yr(e,t={},n){let s=Qu(e,t),r=Zu(s);if(r){let l=Le(e,{...t,cache:r.cacheMap,precomputedWalk:n});return l.contentUnchanged?(l.cacheDirty&&(r.cacheMap=je(l)),r.scan.commit!==l.commit&&(r.scan.commit=l.commit,r.arts=void 0,r.loadArtifacts=void 0),r.scan):(zt({key:s,scan:l,cacheMap:je(l)}),l)}let o=Bo(e,{...t,precomputedWalk:n});if(o)return zt({key:s,scan:o.scan,cacheMap:o.cacheMap,arts:o.arts}),o.scan;let a=Le(e,{...t,precomputedWalk:n});return zt({key:s,scan:a,cacheMap:je(a)}),a}async function Pi(e,t={},n,s=async()=>{}){let r=Qu(e,t),o=Je.find(c=>c.key===r);if(o){let c=o.cacheMap,d=f=>(f.cacheDirty&&(o.cacheMap=je(f)),o.scan.commit!==f.commit&&(o.scan.commit=f.commit,o.arts=void 0,o.loadArtifacts=void 0),Zu(r),o.scan);if(n&&jo(n,c,t.fullHash)){await s();let f=await ut(e,{...t,cache:c,precomputedWalk:n});return f.contentUnchanged?d(f):(zt({key:r,scan:f,cacheMap:je(f)}),f)}let m=Le(e,{...t,cache:c,precomputedWalk:n});if(m.contentUnchanged)return d(m);if(n)return zt({key:r,scan:m,cacheMap:je(m)}),m;await s();let u=await ut(e,{...t,cache:c,precomputedWalk:n});return zt({key:r,scan:u,cacheMap:je(u)}),u}let a=await Ds(e,{...t,precomputedWalk:n},s);if(a)return zt({key:r,scan:a.scan,cacheMap:a.cacheMap,arts:a.arts,loadArtifacts:a.loadArtifacts}),a.scan;await s();let l=await ut(e,{...t,precomputedWalk:n});return zt({key:r,scan:l,cacheMap:je(l)}),l}function $i(e,t={},n){return ir(e,{...t,precomputedWalk:n})}function Di(e,t={},n,s){let r=s??Yr(e,t,n),o=Je.find(a=>a.scan===r);return o?o.arts??=o.loadArtifacts?.()??vt(r,t):vt(r,t)}async function ef(e){await Qr(Pe(e,{}))}async function Qr(e){await et(wt(e.files.map(t=>t.ext)))}var Ni,Oi,lb,Je,Qa=O(()=>{"use strict";E();Se();ae();li();Pt();or();ar();Fe();nt();on();On();Tt();lb=4,Je=[]});var rf={};ji(rf,{DEFAULT_MAX_RESPONSE_BYTES:()=>Mi,OUTPUT_SCHEMAS:()=>mn,PROTOCOL_VERSIONS:()=>Ct,TOOLS:()=>qr,TOOL_META:()=>Gr,TOOL_PROFILES:()=>Ii,annotationsFor:()=>Xa,capResponse:()=>Ci,getArtifacts:()=>Di,getScan:()=>Yr,getScanParallel:()=>Pi,getScanSummary:()=>$i,memoizedEmbedModel:()=>Zr,memoizedEmbeddingIndex:()=>Xr,negotiateProtocol:()=>Ri,profileNames:()=>Vr,resourceLinkFor:()=>Ai,runMcpServer:()=>nf,scanFingerprint:()=>Za,structuredContentFor:()=>vi,toCacheMap:()=>je,toolsFor:()=>Kr,toolsInProfiles:()=>Jr,validateArgs:()=>Ei,warmGrammarsForRepo:()=>ef,warmGrammarsForWalk:()=>Qr});function cb(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.jsonrpc!=="2.0"||typeof t.method!="string"?!1:t.id===void 0||t.id===null||typeof t.id=="number"||typeof t.id=="string"}function db(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method!="string"&&("result"in t||"error"in t)}function ie(e){return typeof e=="string"&&e?e:void 0}function el(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")&&e.length?e:void 0}function es(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):NaN;return Number.isFinite(t)&&t>=0?t:void 0}function Ke(e){let t=es(e);return t!==void 0&&t>0?t:void 0}function tf(e){return e instanceof Error?e.message:String(e)}async function fb(e,t,n){let s=ie(t.repo)??n;if(!s)throw new Error("`repo` is required (absolute path to the repository root)");try{if(!xe(s).isDirectory())throw new Error("not a directory")}catch{throw new Error(`repository root is not a readable directory: ${s}`)}let r={scope:ie(t.scope),include:el(t.include),exclude:el(t.exclude)},o=ie(t.rank),a=o==="graph"||o==="lexical"?{rank:o}:{},l,c;ub.has(e)||(l=Pe(s,{}),c=await Pi(s,r,l,()=>l?Qr(l):Promise.resolve()));let d=()=>c??Yr(s,r,l),m=()=>Di(s,r,l,c);if(e==="scan_summary"){let u=$i(s,r,l);return JSON.stringify({engineVersion:fe,commit:u.commit,fileCount:u.fileCount,languages:u.languages,capped:u.capped},null,2)}if(e==="graph")return Fn(m().graph);if(e==="symbols"){let{symbols:u}=m(),f=ie(t.name);return JSON.stringify(f?{name:f,defs:u.defs[f]??[],refs:u.refs[f]??[]}:u,null,2)}if(e==="callers"){let u=d(),f=t.recall===!0?Yt(u,void 0,{recall:!0}):An(u),p=ie(t.name);if(p){let h=f.get(p);return JSON.stringify(h??{error:`no tracked callers for "${p}"`},null,2)}let g={};for(let[h,y]of f)g[h]=y;return JSON.stringify(g,null,2)}if(e==="workspaces"){let u=rn(s);return JSON.stringify({packages:u.packages,cycle:u.cycle??null,topoOrder:u.topoOrder},null,2)}if(e==="churn"){let{churn:u,ok:f}=Ze(s,{since:ie(t.since)}),p={};for(let g of[...u.keys()].sort())p[g]=u.get(g);return JSON.stringify({ok:f,churn:p},null,2)}if(e==="symbols_overview"){let u=ie(t.file);if(!u)throw new Error("`file` is required");return JSON.stringify(da(d(),u),null,2)}if(e==="find_symbol"){let u=ie(t.namePath);if(!u)throw new Error("`namePath` is required");let f=Tn(d(),u,{substring:t.substring===!0,includeBody:t.includeBody===!0,concise:t.concise===!0,maxResults:Ke(t.maxResults)});return JSON.stringify(f,null,2)}if(e==="find_references"){let u=ie(t.name);if(!u)throw new Error("`name` is required");let f=d(),p=ua(f,u);return t.lsp===!0?JSON.stringify(await Ba(f,s,u,p),null,2):JSON.stringify(p,null,2)}if(e==="lsp_status")return JSON.stringify(await Lr(d(),s,t.probe===!0),null,2);if(e==="replace_symbol_body"||e==="insert_after_symbol"||e==="insert_before_symbol"){let u=ie(t.namePath),f=typeof t.body=="string"?t.body:void 0;if(!u||f===void 0)throw new Error("`namePath` and `body` are required");let p=d(),h=(e==="replace_symbol_body"?fa:e==="insert_after_symbol"?ma:pa)(p,u,f,ie(t.file));return Yu(),JSON.stringify(h,null,2)}if(e==="write_memory"){let u=ie(t.name),f=typeof t.content=="string"?t.content:void 0;if(!u||f===void 0)throw new Error("`name` and `content` are required");return JSON.stringify({written:Sr(s,u,f)},null,2)}if(e==="read_memory"){let u=ie(t.name);if(!u)throw new Error("`name` is required");let f=ha(s,u);if(f===void 0)throw new Error(`no memory named "${u}" \u2014 see list_memories`);return f}if(e==="list_memories")return JSON.stringify(ba(s),null,2);if(e==="delete_memory"){let u=ie(t.name);if(!u)throw new Error("`name` is required");return JSON.stringify({deleted:ya(s,u)},null,2)}if(e==="dead_code"){let u=Ur(d()),f=es(t.limit);return f===void 0||u.length<=f?JSON.stringify(u,null,2):JSON.stringify({total:u.length,shown:f,truncated:!0,candidates:u.slice(0,f)},null,2)}if(e==="duplicated_literals"){let u=sn(d(),{minFiles:Ke(t.minFiles),minCount:Ke(t.minCount),includeTests:t.includeTests===!0}),f=es(t.limit);return f===void 0||u.duplications.length<=f?JSON.stringify(u,null,2):JSON.stringify({total:u.duplications.length,shown:f,truncated:!0,duplications:u.duplications.slice(0,f),families:u.families},null,2)}if(e==="complexity"){let u=d();if(t.risk===!0){let{churn:f,ok:p}=Ze(s,{since:ie(t.since)});return JSON.stringify({churnOk:p,risks:wr(u,f,Ke(t.top))},null,2)}return JSON.stringify(br(u,ie(t.file),Ke(t.top)),null,2)}if(e==="mermaid"){let{graph:u}=m();return Br(u,{module:ie(t.module),maxEdges:Ke(t.maxEdges)})}if(e==="onboard"){let u=d(),{graph:f}=m();return JSON.stringify(Ta(u,f,{...Ke(t.budgetTokens)!==void 0?{budgetTokens:Ke(t.budgetTokens)}:{},...t.remember===!1?{remember:!1}:{}}),null,2)}if(e==="repo_map"){let{scan:u,graph:f}=m();return cn(u,f,{budgetTokens:Ke(t.budgetTokens)})}if(e==="hotspots"){let u=d(),{churn:f,ok:p}=Ze(s,{since:ie(t.since)});return JSON.stringify({churnOk:p,hotspots:dn(u,f)},null,2)}if(e==="coupling"){let{ok:u,couplings:f}=$r(s,{since:ie(t.since)});return JSON.stringify({ok:u,couplings:f},null,2)}if(e==="grep"){let u=ie(t.pattern);if(!u)throw new Error("`pattern` is required");let f=ie(t.scope),p=el(t.globs),g=Mr(s,u,{globs:f?[...p??[],`${f.replace(/\/+$/,"")}/**`]:p,ignoreCase:t.ignoreCase===!0,maxHits:Ke(t.maxHits)});return JSON.stringify(g,null,2)}if(e==="search"){let u=ie(t.query);if(!u)throw new Error("`query` is required");let f=d(),p=es(t.limit),g=typeof t.fuzzy=="boolean"?t.fuzzy:void 0,h=t.exact===!0?{exact:!0}:{};if(t.semantic===!0){let _=Ut();if(_)try{let v=await Xr({mode:"endpoint",identity:_,scan:f},()=>Or(f)),A=await Nr(u),N=ln(f,u,v,{queryVec:A,limit:p,fuzzy:g});return JSON.stringify({results:N,tier:"endpoint"},null,2)}catch(v){let A=Dt(f,u,{limit:p,fuzzy:g,...a});return JSON.stringify({results:A,tier:"lexical",degradedReason:`embedding endpoint failed: ${tf(v)}`},null,2)}let k=Rt(s),b=k?Zr(k):void 0;if(b){let v=await Xr({mode:"static",identity:`${k}#${b.modelId}`,scan:f},()=>an(f,b)),A=ln(f,u,v,{model:b,limit:p,fuzzy:g});return JSON.stringify({results:A,tier:"static"},null,2)}let w=Dt(f,u,{limit:p,fuzzy:g,...a});return JSON.stringify({results:w,tier:"lexical",degradedReason:"no embedding endpoint or static model configured \u2014 see embed_status"},null,2)}let{results:y,explain:S}=nn(f,u,{limit:p,fuzzy:g,...h,...a});return JSON.stringify(t.explain===!0?{results:y,explain:S}:y,null,2)}if(e==="explain_search"){let u=ie(t.query);if(!u)throw new Error("`query` is required");let f=d(),p=es(t.limit),g=typeof t.fuzzy=="boolean"?t.fuzzy:void 0,{results:h,explain:y}=nn(f,u,{limit:p,fuzzy:g,...t.exact===!0?{exact:!0}:{},...a});return JSON.stringify({results:h,explain:y},null,2)}if(e==="embed_status"){let u=Rt(s),f=u?Zr(u):void 0,p=Ut(),h={embedVersion:it,mode:p?"endpoint":f?"static":"none",model:f?{present:!0,dir:u,modelId:f.modelId,dim:f.dim,vocabSize:f.vocabSize}:{present:!1},endpoint:p??null};return p&&(h.endpointReachable=await Fr(p)),JSON.stringify(h,null,2)}if(e==="type_hierarchy"){let u=ia(d()),f=ie(t.name);if(!f){let g={};for(let[h,y]of u)g[h]=y;return JSON.stringify(g,null,2)}let p=u.get(f);return JSON.stringify(p||{error:`no type named ${f}`},null,2)}if(e==="implementations"){let u=ie(t.name);if(!u)throw new Error("`name` is required");let f=ia(d());return f.has(u)?JSON.stringify({name:u,implementations:ur(f,u)},null,2):JSON.stringify({error:`no type named ${u}`},null,2)}if(e==="call_graph"){let u=ie(t.symbol);if(!u)throw new Error("`symbol` is required");let f=ie(t.direction),p=f==="out"||f==="in"?f:"both",g=gr(qd(d()),u,{...Ke(t.depth)!==void 0?{depth:Ke(t.depth)}:{},direction:p});return g.root.length?JSON.stringify(g,null,2):JSON.stringify({error:`no symbol named ${u}`},null,2)}if(e==="check_rules"){let u=ie(t.configPath),f=t.rules;if(f===void 0&&u){let h=ns(u)?u:I(s,u);try{f=JSON.parse(Q(h,"utf8"))}catch(y){throw new Error(`cannot read rules from ${h}: ${tf(y)}`)}}if(f===void 0)throw new Error("`rules` (or `configPath`) is required");let p=jr(f),{graph:g}=m();return JSON.stringify(Wr(g,p),null,2)}throw new Error(`unknown tool: ${e}`)}async function nf(e={}){let t={name:e.serverInfo?.name??"codeindex",version:e.serverInfo?.version??fe},n=Ct[0],s=Kr(e.defaultRepo,n,e.profile),r;if(e.watch&&e.defaultRepo)try{r=_l(e.defaultRepo,{recursive:!0},(c,d)=>{let m=d?.toString().replaceAll("\\","/")??"";m.split("/").some(f=>qt.has(f)||f.startsWith(".codeindex-edit-"))||Ya(e.defaultRepo,m||void 0)}),r.on("error",c=>{R.stderr.write(`codeindex: MCP watcher disabled (${c.message}); using freshness scans +`),r?.close(),r=void 0,Ya(e.defaultRepo)})}catch(c){R.stderr.write(`codeindex: MCP watcher unavailable (${c instanceof Error?c.message:String(c)}); using freshness scans `)}let o=c=>{let d=Array.isArray(c)?c.map(m=>({jsonrpc:"2.0",...m})):{jsonrpc:"2.0",...c};R.stdout.write(JSON.stringify(d)+` -`)},a=Bu({input:R.stdin,terminal:!1});try{for await(let c of a){let d=c.trim();if(!d)continue;let m;try{m=JSON.parse(d)}catch{o({id:null,error:{code:-32700,message:"parse error"}});continue}if(Array.isArray(m)&&m.length===0){o({id:null,error:{code:-32600,message:"invalid request"}});continue}let u=async f=>{if(!sb(f))return rb(f)?l(f):{id:null,error:{code:-32600,message:"invalid request"}}};if(Array.isArray(m)){let f=[];for(let p of m){let g=await u(p);g&&f.push(g)}f.length>0&&o(f)}else{let f=await u(m);f&&o(f)}}}finally{s?.close()}async function l(c){let d=!("id"in c),m=u=>d?void 0:{id:c.id??null,...u};try{if(c.method==="initialize")return n=Ei(c.params?.protocolVersion),r=Jr(e.defaultRepo,n,e.profile),m({result:{protocolVersion:n,capabilities:{tools:{}},serverInfo:t}});if(c.method==="ping")return m({result:{}});if(c.method==="tools/list")return m({result:{tools:r}});if(c.method==="tools/call"){let u=c.params??{},f=ie(u.name)??"",p=u.arguments??{};try{let g=r.find(v=>v.name===f),h=g?Si(g.inputSchema,p):void 0;if(h)throw new Error(h);let y=await ob(f,p,e.defaultRepo),S=ie(p.repo)??e.defaultRepo??"",_=Ri(y,f,S,e.maxResponseBytes??vi),k=_!==y,b=k&&n>=zr?Mi(_,f):void 0,w=n>=zr?ki(_,k,mn[f]!==void 0):void 0;return m({result:{content:b?[{type:"text",text:_},b]:[{type:"text",text:_}],...w?{structuredContent:w}:{}}})}catch(g){return m({result:{content:[{type:"text",text:g instanceof Error?g.message:String(g)}],isError:!0}})}}else return m({error:{code:-32601,message:`method not found: ${c.method}`}})}catch(u){return m({error:{code:-32603,message:u instanceof Error?u.message:String(u)}})}}}var ib,Qa=O(()=>{"use strict";E();Se();ae();zu();Xe();ri();Qt();pt();Xt();gr();Er();qt();ai();$r();Or();bi();vr();wr();wi();Ys();hi();Aa();ma();ei();Mn();yi();on();Fn();di();ui();Ne();Ti();Ci();Za();Ti();Ci();Za();ib=new Set(["workspaces","churn","coupling","grep","write_memory","read_memory","list_memories","delete_memory","embed_status","scan_summary"])});var ef={};Di(ef,{rewriteCommand:()=>Qu,shellQuote:()=>$i,tokenize:()=>Yu});function Yu(e){let t=[],n="",r,s=!1;for(let o=0;o2&&/^-[a-zA-Z]+$/.test(o)){let a=o.slice(1).split("").map(l=>`-${l}`);t.splice(s,1,...a),s--}else return}}if(n.pattern===void 0){let s=r.shift();if(s===void 0||s==="")return;n.pattern=s}if(!(r.length>1))return n.path=r[0],n}function Qu(e,t="codeindex"){let n=e.trim();if(!n||ab.test(n))return;let r=Yu(n);if(!r||r.length<2)return;let[s,...o]=r;if(s===void 0||!lb.has(s))return;let a=cb(s,o);if(!a||a.pattern===void 0)return;let l=a.pattern;if(!a.recursive)return;let c=a.path,d=[t,"grep",$i(l)];c&&c!=="."&&c!=="./"&&d.push("--scope",$i(c.replace(/\/+$/,""))),a.ignoreCase&&d.push("--ignore-case");for(let m of a.includes)d.push("--include",$i(m));return d.join(" ")}var ab,lb,el=O(()=>{"use strict";E();ab=/[|&;<>`\n\r$(){}]/,lb=new Set(["grep","egrep","rg","ripgrep"])});E();E();Xe();Ne();Pt();Pt();or();ir();Gn();Bi();bs();E();ae();var Kp=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".svelte",".astro",".py",".rb",".go",".rs",".java",".kt",".kts",".php",".c",".cc",".cpp",".h",".hpp",".cs",".swift",".scala",".clj",".ex",".exs",".dart",".lua",".sh",".bash",".zig",".elm",".hcl",".tf",".tfvars",".sol",".hh",".sc",".pyi",".rake",".cxx"]),Xp=new Set([".css",".scss",".sass",".less",".styl",".pcss"]),Zp=new Set([".md",".mdx",".rst",".adoc",".txt"]),Yp=new Set([".json",".yaml",".yml",".toml",".csv",".xml",".env"]),Qp=new Set([".png",".jpg",".jpeg",".gif",".webp",".avif",".ico",".bmp",".tiff",".svg",".pdf",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".mov",".avi",".webm",".zip",".gz",".tar",".rar",".7z",".wasm",".so",".dylib",".dll",".exe",".bin",".class",".jar",".pyc",".node"]),eg=["locales","locale","i18n","lang","langs","translations","messages"],tg=new Set([".json",".yaml",".yml",".po",".properties"]),ng=["__tests__","test","tests","spec","e2e","__mocks__"],rg=["migrations","entities","models"],sg=new Set(["package.json","tsconfig.json","dockerfile","makefile","pyproject.toml","cargo.toml","go.mod","requirements.txt","gemfile","composer.json","pubspec.yaml"]);function ig(e,t){let n=e.toLowerCase(),r=ve(n),s=n.split("/"),o=a=>a.some(l=>s.includes(l));return o(eg)&&tg.has(t)?"i18n":t===".prisma"||t===".sql"||t===".graphql"||t===".gql"||r.startsWith("schema.")||r==="models.py"||o(rg)?"schema":n.includes(".test.")||n.includes(".spec.")||o(ng)?"test":sg.has(r)||r.endsWith(".config.js")||r.endsWith(".config.ts")||r.endsWith(".config.mjs")||r.startsWith(".eslintrc")||r.startsWith(".prettierrc")||r.startsWith(".env")||r.startsWith("docker-compose")?"config":Zp.has(t)?"doc":Xp.has(t)?"style":Kp.has(t)?"code":Qp.has(t)?"asset":Yp.has(t)?"data":"other"}bn();Oo();so();nt();To();E();Se();ae();yo();nt();Y();var ld=new Map;function cd(e,t){let n=ld.get(e);if(n!==void 0)return n;let r=null;for(let s of Qe().dirs){let o=I(s,`${e}.tags.scm`);if(H(o)){try{r=new Nc(t,Q(o,"utf8"))}catch{r=null}break}}return ld.set(e,r),r}function og(e){if(!Qe().dirs.some(r=>H(I(r,`${e}.tags.scm`))))return{present:!1,compiled:!1};let n=wo(e);return n?{present:!0,compiled:cd(e,n)!==null}:{present:!0,compiled:!1}}function ag(e,t){let n=Qn(e);if(!n)return[];let r=wo(n),s=Cs(n);if(!r||!s)return[];let o=cd(n,r);if(!o)return[];let a=null;try{if(a=s.parse(t),!a)return[];let l=[],c=new Set;for(let d of o.matches(a.rootNode)){let m,u,f=0;for(let g of d.captures)g.name==="name"?(m=g.node.text,f=g.node.startPosition.row+1):g.name.startsWith("definition.")&&(u=g.name.slice(11));if(!m||!u)continue;let p=`${u} ${m} ${f}`;c.has(p)||(c.add(p),l.push({kind:u,name:m,line:f}))}return l.sort((d,m)=>d.line-m.line||M(d.name,m.name)||M(d.kind,m.kind))}catch{return[]}finally{a?.delete()}}nt();nt();E();ms();Se();ae();E();function dd(){throw new Error("zlib.gunzipSync is not available in the browser build (use DecompressionStream at an async boundary)")}Xe();var Bo=`https://github.com/maxgfr/codeindex/releases/download/v${fe}/grammars-${fe}.tar.gz`;function $s(){let e=R.env.CODEINDEX_GRAMMARS_URL;return e&&e.trim()?{url:e.trim()}:{url:Bo,sha256Url:`${Bo}.sha256`}}async function ud(e,t){let n=await fetch(e);if(!n.ok)throw new Error(`HTTP ${n.status} from ${e}`);let r=N.from(await n.arrayBuffer());if(t){let s=yn("sha256").update(r).digest("hex");if(s!==t)throw new Error(`sha256 mismatch: expected ${t}, got ${s}`)}return r}function fd(e){return N.isBuffer(e)?e:N.from(e.buffer,e.byteOffset,e.byteLength)}async function md(e){let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status} from ${e}`);let r=((await t.text()).trim().split(/\s+/)[0]??"").toLowerCase();if(!/^[0-9a-f]{64}$/.test(r))throw new Error(`invalid sha256 sidecar at ${e}`);return r}function Uo(e,t,n){let r=e.subarray(t,t+n),s=r.indexOf(0);return r.toString("utf8",0,s===-1?r.length:s)}function*lg(e){let t=0;for(;t+512<=e.length;){let n=e.subarray(t,t+512),r=!0;for(let m=0;m<512;m++)if(n[m]!==0){r=!1;break}if(r)break;let s=Uo(n,0,100),o=Uo(n,345,155),a=Uo(n,124,12).trim(),l=a?parseInt(a,8):0,c=String.fromCharCode(n[156]??0);t+=512;let d=e.subarray(t,t+l);t+=Math.ceil(l/512)*512,yield{name:o?`${o}/${s}`:s,type:c,data:d}}}function cg(e){if(!e||e.includes("\0")||e.startsWith("/")||e.startsWith("\\")||/^[A-Za-z]:/.test(e))return null;let t=[];for(let n of e.split(/[/\\]/))if(!(n===""||n===".")){if(n==="..")return null;t.push(n)}return t.length?t.join("/"):null}function pd(e,t){let n=Ee(t),r=[];for(let s of lg(fd(e))){if(s.type!=="0"&&s.type!=="\0")continue;let o=cg(s.name);if(o===null)throw new Error(`refusing unsafe tar entry: ${s.name}`);let a=Ee(t,o);if(a!==n&&!a.startsWith(n+"/"))throw new Error(`tar entry escapes destination: ${s.name}`);_t(_e(a),{recursive:!0}),Me(a,s.data),r.push(o)}return r}function gd(e,t){let n=fd(e),r=n.length>=2&&n[0]===31&&n[1]===139?dd(n):n;return pd(r,t)}function dg(e,t,n,r,s=Ln,o=Ge){let a=_e(t),l=Dn(I(a,".grammars-swap-")),c=I(l,"previous-cache"),d=I(l,"previous-marker"),m=I(l,"next-marker"),u=!1,f=!1,p=!1,g=!1;try{r&&Me(m,r+` -`),H(t)&&(s(t,c),u=!0),H(n)&&(s(n,d),f=!0),s(e,t),p=!0,r&&(s(m,n),g=!0)}catch(h){let y=[],S=_=>{try{_()}catch(k){y.push(k)}};if(g&&H(n)&&S(()=>Ge(n,{force:!0})),p&&H(t)&&S(()=>Ge(t,{recursive:!0,force:!0})),f&&H(d)&&S(()=>s(d,n)),u&&H(c)&&S(()=>s(c,t)),y.length===0)try{Ge(l,{recursive:!0,force:!0})}catch{}if(y.length>0){let _=y[0];throw new Error(`${h instanceof Error?h.message:String(h)}; rollback failed: ${_ instanceof Error?_.message:String(_)} (backup preserved at ${l})`)}throw h}try{o(l,{recursive:!0,force:!0})}catch{}}async function ar(e,t={}){let n=t.onNote??(()=>{}),r=$s(),s;if(r.sha256Url)try{s=await md(r.sha256Url)}catch(d){n(`codeindex: could not fetch checksum (${d instanceof Error?d.message:String(d)}) \u2014 proceeding unverified -`)}let o=I(e,"web-tree-sitter.wasm"),a=I(_e(e),`${fe}.sha256`);if(H(o)&&s&&H(a)){let d="";try{d=Q(a,"utf8").trim()}catch{}if(d===s)return{ok:!0,status:"up-to-date",cacheDir:e,message:`codeindex: grammars already present at ${e} (up to date) -`}}n(`codeindex: fetching grammars from ${r.url} \u2192 ${e} -`);let l;try{l=await ud(r.url,s)}catch(d){return{ok:!1,status:"failed",cacheDir:e,message:`codeindex: pull failed \u2014 ${d instanceof Error?d.message:String(d)} (nothing written) -`}}let c;try{if(_t(_e(e),{recursive:!0}),c=Dn(I(_e(e),".grammars-tmp-")),gd(l,c),!H(I(c,"web-tree-sitter.wasm")))throw new Error("archive is missing web-tree-sitter.wasm");dg(c,e,a,s),c=void 0}catch(d){if(c)try{Ge(c,{recursive:!0,force:!0})}catch{}return{ok:!1,status:"failed",cacheDir:e,message:`codeindex: pull failed \u2014 ${d instanceof Error?d.message:String(d)} (nothing written) +`)},a=Ju({input:R.stdin,terminal:!1});try{for await(let c of a){let d=c.trim();if(!d)continue;let m;try{m=JSON.parse(d)}catch{o({id:null,error:{code:-32700,message:"parse error"}});continue}if(Array.isArray(m)&&m.length===0){o({id:null,error:{code:-32600,message:"invalid request"}});continue}let u=async f=>{if(!db(f))return cb(f)?l(f):{id:null,error:{code:-32600,message:"invalid request"}}};if(Array.isArray(m)){let f=[];for(let p of m){let g=await u(p);g&&f.push(g)}f.length>0&&o(f)}else{let f=await u(m);f&&o(f)}}}finally{r?.close()}async function l(c){let d=!("id"in c),m=u=>d?void 0:{id:c.id??null,...u};try{if(c.method==="initialize")return n=Ri(c.params?.protocolVersion),s=Kr(e.defaultRepo,n,e.profile),m({result:{protocolVersion:n,capabilities:{tools:{}},serverInfo:t}});if(c.method==="ping")return m({result:{}});if(c.method==="tools/list")return m({result:{tools:s}});if(c.method==="tools/call"){let u=c.params??{},f=ie(u.name)??"",p=u.arguments??{};try{let g=s.find(v=>v.name===f),h=g?Ei(g.inputSchema,p):void 0;if(h)throw new Error(h);let y=await fb(f,p,e.defaultRepo),S=ie(p.repo)??e.defaultRepo??"",_=Ci(y,f,S,e.maxResponseBytes??Mi),k=_!==y,b=k&&n>=Hr?Ai(_,f):void 0,w=n>=Hr?vi(_,k,mn[f]!==void 0):void 0;return m({result:{content:b?[{type:"text",text:_},b]:[{type:"text",text:_}],...w?{structuredContent:w}:{}}})}catch(g){return m({result:{content:[{type:"text",text:g instanceof Error?g.message:String(g)}],isError:!0}})}}else return m({error:{code:-32601,message:`method not found: ${c.method}`}})}catch(u){return m({error:{code:-32603,message:u instanceof Error?u.message:String(u)}})}}}var ub,tl=O(()=>{"use strict";E();Se();ae();Ku();Xe();ii();Qt();pt();Xt();_r();vr();Gt();ci();Dr();Pr();xi();Rr();xr();Si();ei();bi();Ia();ga();ni();Cn();wi();on();On();fi();mi();Fe();Fi();Ti();Qa();Fi();Ti();Qa();ub=new Set(["workspaces","churn","coupling","grep","write_memory","read_memory","list_memories","delete_memory","embed_status","scan_summary"])});var af={};ji(af,{rewriteCommand:()=>of,shellQuote:()=>Li,tokenize:()=>sf});function sf(e){let t=[],n="",s,r=!1;for(let o=0;o2&&/^-[a-zA-Z]+$/.test(o)){let a=o.slice(1).split("").map(l=>`-${l}`);t.splice(r,1,...a),r--}else return}}if(n.pattern===void 0){let r=s.shift();if(r===void 0||r==="")return;n.pattern=r}if(!(s.length>1))return n.path=s[0],n}function of(e,t="codeindex"){let n=e.trim();if(!n||mb.test(n))return;let s=sf(n);if(!s||s.length<2)return;let[r,...o]=s;if(r===void 0||!pb.has(r))return;let a=gb(r,o);if(!a||a.pattern===void 0)return;let l=a.pattern;if(!a.recursive)return;let c=a.path,d=[t,"grep",Li(l)];c&&c!=="."&&c!=="./"&&d.push("--scope",Li(c.replace(/\/+$/,""))),a.ignoreCase&&d.push("--ignore-case");for(let m of a.includes)d.push("--include",Li(m));return d.join(" ")}var mb,pb,nl=O(()=>{"use strict";E();mb=/[|&;<>`\n\r$(){}]/,pb=new Set(["grep","egrep","rg","ripgrep"])});E();E();Xe();Fe();Pt();Pt();ar();or();Gn();Hi();ws();E();ae();var tg=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".svelte",".astro",".py",".rb",".go",".rs",".java",".kt",".kts",".php",".c",".cc",".cpp",".h",".hpp",".cs",".swift",".scala",".clj",".ex",".exs",".dart",".lua",".sh",".bash",".zig",".elm",".hcl",".tf",".tfvars",".sol",".hh",".sc",".pyi",".rake",".cxx"]),ng=new Set([".css",".scss",".sass",".less",".styl",".pcss"]),rg=new Set([".md",".mdx",".rst",".adoc",".txt"]),sg=new Set([".json",".yaml",".yml",".toml",".csv",".xml",".env"]),ig=new Set([".png",".jpg",".jpeg",".gif",".webp",".avif",".ico",".bmp",".tiff",".svg",".pdf",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".mov",".avi",".webm",".zip",".gz",".tar",".rar",".7z",".wasm",".so",".dylib",".dll",".exe",".bin",".class",".jar",".pyc",".node"]),og=["locales","locale","i18n","lang","langs","translations","messages"],ag=new Set([".json",".yaml",".yml",".po",".properties"]),lg=["__tests__","test","tests","spec","e2e","__mocks__"],cg=["migrations","entities","models"],dg=new Set(["package.json","tsconfig.json","dockerfile","makefile","pyproject.toml","cargo.toml","go.mod","requirements.txt","gemfile","composer.json","pubspec.yaml"]);function ug(e,t){let n=e.toLowerCase(),s=ve(n),r=n.split("/"),o=a=>a.some(l=>r.includes(l));return o(og)&&ag.has(t)?"i18n":t===".prisma"||t===".sql"||t===".graphql"||t===".gql"||s.startsWith("schema.")||s==="models.py"||o(cg)?"schema":n.includes(".test.")||n.includes(".spec.")||o(lg)?"test":dg.has(s)||s.endsWith(".config.js")||s.endsWith(".config.ts")||s.endsWith(".config.mjs")||s.startsWith(".eslintrc")||s.startsWith(".prettierrc")||s.startsWith(".env")||s.startsWith("docker-compose")?"config":rg.has(t)?"doc":ng.has(t)?"style":tg.has(t)?"code":ig.has(t)?"asset":sg.has(t)?"data":"other"}bn();$o();oo();nt();Fo();E();Se();ae();wo();nt();Y();var pd=new Map;function gd(e,t){let n=pd.get(e);if(n!==void 0)return n;let s=null;for(let r of Qe().dirs){let o=I(r,`${e}.tags.scm`);if(H(o)){try{s=new Lc(t,Q(o,"utf8"))}catch{s=null}break}}return pd.set(e,s),s}function fg(e){if(!Qe().dirs.some(s=>H(I(s,`${e}.tags.scm`))))return{present:!1,compiled:!1};let n=So(e);return n?{present:!0,compiled:gd(e,n)!==null}:{present:!0,compiled:!1}}function mg(e,t){let n=er(e);if(!n)return[];let s=So(n),r=Ts(n);if(!s||!r)return[];let o=gd(n,s);if(!o)return[];let a=null;try{if(a=r.parse(t),!a)return[];let l=[],c=new Set;for(let d of o.matches(a.rootNode)){let m,u,f=0;for(let g of d.captures)g.name==="name"?(m=g.node.text,f=g.node.startPosition.row+1):g.name.startsWith("definition.")&&(u=g.name.slice(11));if(!m||!u)continue;let p=`${u} ${m} ${f}`;c.has(p)||(c.add(p),l.push({kind:u,name:m,line:f}))}return l.sort((d,m)=>d.line-m.line||M(d.name,m.name)||M(d.kind,m.kind))}catch{return[]}finally{a?.delete()}}nt();nt();E();ps();Se();ae();E();function _d(){throw new Error("zlib.gunzipSync is not available in the browser build (use DecompressionStream at an async boundary)")}Xe();var Ho=`https://github.com/maxgfr/codeindex/releases/download/v${fe}/grammars-${fe}.tar.gz`;function Ls(){let e=R.env.CODEINDEX_GRAMMARS_URL;return e&&e.trim()?{url:e.trim()}:{url:Ho,sha256Url:`${Ho}.sha256`}}async function hd(e,t){let n=await fetch(e);if(!n.ok)throw new Error(`HTTP ${n.status} from ${e}`);let s=F.from(await n.arrayBuffer());if(t){let r=yn("sha256").update(s).digest("hex");if(r!==t)throw new Error(`sha256 mismatch: expected ${t}, got ${r}`)}return s}function yd(e){return F.isBuffer(e)?e:F.from(e.buffer,e.byteOffset,e.byteLength)}async function bd(e){let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status} from ${e}`);let s=((await t.text()).trim().split(/\s+/)[0]??"").toLowerCase();if(!/^[0-9a-f]{64}$/.test(s))throw new Error(`invalid sha256 sidecar at ${e}`);return s}function zo(e,t,n){let s=e.subarray(t,t+n),r=s.indexOf(0);return s.toString("utf8",0,r===-1?s.length:r)}function*pg(e){let t=0;for(;t+512<=e.length;){let n=e.subarray(t,t+512),s=!0;for(let m=0;m<512;m++)if(n[m]!==0){s=!1;break}if(s)break;let r=zo(n,0,100),o=zo(n,345,155),a=zo(n,124,12).trim(),l=a?parseInt(a,8):0,c=String.fromCharCode(n[156]??0);t+=512;let d=e.subarray(t,t+l);t+=Math.ceil(l/512)*512,yield{name:o?`${o}/${r}`:r,type:c,data:d}}}function gg(e){if(!e||e.includes("\0")||e.startsWith("/")||e.startsWith("\\")||/^[A-Za-z]:/.test(e))return null;let t=[];for(let n of e.split(/[/\\]/))if(!(n===""||n===".")){if(n==="..")return null;t.push(n)}return t.length?t.join("/"):null}function wd(e,t){let n=Ee(t),s=[];for(let r of pg(yd(e))){if(r.type!=="0"&&r.type!=="\0")continue;let o=gg(r.name);if(o===null)throw new Error(`refusing unsafe tar entry: ${r.name}`);let a=Ee(t,o);if(a!==n&&!a.startsWith(n+"/"))throw new Error(`tar entry escapes destination: ${r.name}`);_t(_e(a),{recursive:!0}),Me(a,r.data),s.push(o)}return s}function xd(e,t){let n=yd(e),s=n.length>=2&&n[0]===31&&n[1]===139?_d(n):n;return wd(s,t)}function _g(e,t,n,s,r=jn,o=qe){let a=_e(t),l=Ln(I(a,".grammars-swap-")),c=I(l,"previous-cache"),d=I(l,"previous-marker"),m=I(l,"next-marker"),u=!1,f=!1,p=!1,g=!1;try{s&&Me(m,s+` +`),H(t)&&(r(t,c),u=!0),H(n)&&(r(n,d),f=!0),r(e,t),p=!0,s&&(r(m,n),g=!0)}catch(h){let y=[],S=_=>{try{_()}catch(k){y.push(k)}};if(g&&H(n)&&S(()=>qe(n,{force:!0})),p&&H(t)&&S(()=>qe(t,{recursive:!0,force:!0})),f&&H(d)&&S(()=>r(d,n)),u&&H(c)&&S(()=>r(c,t)),y.length===0)try{qe(l,{recursive:!0,force:!0})}catch{}if(y.length>0){let _=y[0];throw new Error(`${h instanceof Error?h.message:String(h)}; rollback failed: ${_ instanceof Error?_.message:String(_)} (backup preserved at ${l})`)}throw h}try{o(l,{recursive:!0,force:!0})}catch{}}async function lr(e,t={}){let n=t.onNote??(()=>{}),s=Ls(),r;if(s.sha256Url)try{r=await bd(s.sha256Url)}catch(d){n(`codeindex: could not fetch checksum (${d instanceof Error?d.message:String(d)}) \u2014 proceeding unverified +`)}let o=I(e,"web-tree-sitter.wasm"),a=I(_e(e),`${fe}.sha256`);if(H(o)&&r&&H(a)){let d="";try{d=Q(a,"utf8").trim()}catch{}if(d===r)return{ok:!0,status:"up-to-date",cacheDir:e,message:`codeindex: grammars already present at ${e} (up to date) +`}}n(`codeindex: fetching grammars from ${s.url} \u2192 ${e} +`);let l;try{l=await hd(s.url,r)}catch(d){return{ok:!1,status:"failed",cacheDir:e,message:`codeindex: pull failed \u2014 ${d instanceof Error?d.message:String(d)} (nothing written) +`}}let c;try{if(_t(_e(e),{recursive:!0}),c=Ln(I(_e(e),".grammars-tmp-")),xd(l,c),!H(I(c,"web-tree-sitter.wasm")))throw new Error("archive is missing web-tree-sitter.wasm");_g(c,e,a,r),c=void 0}catch(d){if(c)try{qe(c,{recursive:!0,force:!0})}catch{}return{ok:!1,status:"failed",cacheDir:e,message:`codeindex: pull failed \u2014 ${d instanceof Error?d.message:String(d)} (nothing written) `}}return{ok:!0,status:"pulled",cacheDir:e,message:`codeindex: grammars extracted \u2192 ${e} -`}}E();nt();async function ug(e={}){let t=e.label??"codeindex",n=[],r=m=>{n.push(m),e.onNote?e.onNote(m):R.stderr.write(m)},s=R.env.CODEINDEX_NO_GRAMMARS_PULL,o=(e.pull??!0)&&!(s&&s.trim()&&s!=="0"),a=[...e.keys??bo()],l=!1;if(Qe().tier==="none"&&o){r(`${t}: tree-sitter grammars not found locally \u2014 pulling them into the shared cache (once per machine)\u2026 -`);let m=await ar(xn(),{onNote:r});r(m.message),l=m.ok&&m.status==="pulled"}await et(a);let c=Qe().tier,d=a.some(m=>tt(m));return d||r(`${t}: no tree-sitter grammars available (offline?) \u2014 extracting with the regex tier, so symbols and call sites are less precise. Run \`codeindex grammars pull\` once online to enable AST precision. -`),{tier:c,ready:d,pulled:l,notes:n}}Ds();Ws();Zs();kn();Xt();gr();Qt();Ys();ma();ei();Er();Js();xa();vn();Sa();ur();ri();E();ae();Xe();Ne();Y();var Et=class{buf;len=0;constructor(t=64){this.buf=new Uint8Array(t)}get length(){return this.len}grow(t){if(this.len+t<=this.buf.length)return;let n=this.buf.length*2||64;for(;n127;)e.push(t&127|128),t=Math.floor(t/128);e.push(t&127)}function Qd(e,t,n){ii(e,t*8+n)}function si(e,t,n){Qd(e,t,0),ii(e,n)}function eu(e,t,n){Qd(e,t,2),ii(e,n.length),e.pushAll(n)}function Nn(e,t,n){eu(e,t,n.view())}function kt(e,t,n){eu(e,t,hh.encode(n))}function yh(e,t,n){let r=new Et(n.length*2);for(let s of n)ii(r,s);Nn(e,t,r)}var bh=1,wh=2,xh=2,Sh=3,kh=4,Eh=1,vh=2,Rh=1,Mh=2,Ch=3,Ah=4,Th=6,Ih=1,Nh=2,Fh=3,Oh=1,Ph=5,$h=6,Dh=8,Lh=1,jh=1,Wh=2,Uh={function:17,method:26,class:7,interface:21,enum:11,struct:49,trait:53,type:54,const:8,var:61},tu="codeindex . . . ",Bh=/^[A-Za-z0-9_+\-$]+$/;function nu(e){return Bh.test(e)?e:"`"+e.replace(/`/g,"``")+"`"}function ru(e){return"`"+e.replace(/`/g,"``")+"`/"}function su(e){return nu(e)+"#"}var zh=new Set(["class","interface","enum","struct","trait","type"]),Hh=new Set(["function","method","def"]);function Gh(e){return zh.has(e)?"#":Hh.has(e)?"().":"."}function qh(e,t){let n=tu+ru(e);return t.parent&&(n+=su(t.parent)),n+nu(t.name)+Gh(t.kind)}function Vh(e,t){return tu+ru(e)+su(t)}function Jh(e,t,n){if(!n.has(e))return n.add(e),e;for(let r=0;;r++){let s=r===0?String(t):`${t}_${r}`,o=`${e}(${s})`;if(!n.has(o))return n.add(o),o}}function Zd(e){return e==="typescript"||e==="javascript"?"js":e==="c"||e==="cpp"?"c":e}var Kh=new Set(["reexport","reexport-all","default"]);function Yd(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95||e===36}function Xh(e,t){if(!t)return null;let n=/^[A-Za-z_$][\w$]*$/.test(t),r=0;for(;;){let s=e.indexOf(t,r);if(s<0)return null;if(!n)return[s,s+t.length];let o=s>0?e.charCodeAt(s-1):-1,a=s+t.length,l=ap.kind==="code"&&p.symbols.length>0),o=new Map,a=new Map;for(let p of s){let g=new Set,h=[];for(let y of p.symbols){let S=Jh(qh(p.rel,y),y.line,g);if(h.push({sym:y,symbolString:S}),y.exported&&!Kh.has(y.kind)){let _=a.get(y.name);_||a.set(y.name,_=[]),_.push({symbolString:S,family:Zd(y.lang)})}}o.set(p.rel,h)}let l=(p,g)=>{let h=a.get(p);if(!h||h.length!==1)return;let y=h[0];return y.family===g?y.symbolString:void 0},c=[];for(let p of s){let h=q(I(e.root,p.rel)).split(` -`).map(T=>T.endsWith("\r")?T.slice(0,-1):T),y=(T,U)=>{let te=h[T-1];if(te===void 0)return[T-1,0,0];let V=Xh(te,U);return V?[T-1,V[0],V[1]]:[T-1,0,te.length]},S=o.get(p.rel),_=[];for(let{sym:T,symbolString:U}of S)_.push({range:y(T.line,T.name),symbol:U,roles:jh});let k=Zd(p.lang);for(let T of p.calls??[]){let U=l(T.name,k);U&&_.push({range:y(T.line,T.name),symbol:U,roles:0})}_.sort((T,U)=>T.range[0]-U.range[0]||T.range[1]-U.range[1]||T.range[2]-U.range[2]||T.roles-U.roles||M(T.symbol,U.symbol));let b=new Set,w=S.map(({sym:T,symbolString:U})=>({symbol:U,displayName:T.name,kind:Uh[T.kind],enclosing:T.parent?Vh(p.rel,T.parent):void 0})).sort((T,U)=>M(T.symbol,U.symbol)),v=new Et(1024);kt(v,Rh,p.rel);let A=new Et(64);for(let T of _){let U=`${T.range.join(",")} ${T.roles} ${T.symbol}`;b.has(U)||(b.add(U),A.reset(),yh(A,Ih,T.range),kt(A,Nh,T.symbol),T.roles!==0&&si(A,Fh,T.roles),Nn(v,Mh,A))}let F=new Et(64);for(let T of w)F.reset(),kt(F,Oh,T.symbol),T.kind!==void 0&&si(F,Ph,T.kind),kt(F,$h,T.displayName),T.enclosing&&kt(F,Dh,T.enclosing),Nn(v,Ch,F);kt(v,Ah,p.lang),si(v,Th,Wh),c.push(v)}let d=new Et;kt(d,Eh,"codeindex"),kt(d,vh,r);let m=new Et;Nn(m,xh,d),kt(m,Sh,n),si(m,kh,Lh);let u=0;for(let p of c)u+=p.length;let f=new Et(u+m.length+16);Nn(f,bh,m);for(let p of c)Nn(f,wh,p);return f.toUint8Array()}oi();qt();ai();Mn();on();Tr();Fn();di();ui();Aa();hi();Pa();Fa();ja();Ia();Da();yi();$r();Or();bi();vr();wr();wi();E();Y();var qy=new Set(["import","use","call"]),xi=6;function Vy(e){let t=new Array(e.length*xi);for(let n=0;nM(m.to,u.to));for(let d of a.values())d.sort((m,u)=>M(m.from,u.from));let c={out:o,inn:a,degree:l,threshold:Lu([...l.values()])};return r.views.set(n,c),c}function Lu(e){let t=e.slice().sort((s,o)=>s-o),n=t.length,r=n===0?0:t[Math.min(n-1,Math.floor(.99*n))];return Math.max(50,r)}function ju(e,t,n=1/0){let r=new Map;for(let l of e){if(l.dangling||!qy.has(l.kind))continue;let c=r.get(l.to);c||r.set(l.to,c=[]),c.push(l)}let s=new Map,o=new Set(t),a=[...t];for(let l=1;l<=n&&a.length;l++){let c=[];for(let d of a)for(let m of(r.get(d)??[]).slice().sort((u,f)=>M(u.from,f.from)))o.has(m.from)||(o.add(m.from),s.set(m.from,l),c.push(m.from));a=c}return s}function Br(e,t,n=1/0){let r=new Map(e.files.map(m=>[m.rel,m.module])),s=e.modules.find(m=>m.slug===t),o=s?void 0:e.files.find(m=>m.rel===t);if(!s&&!o)return;let a=s?s.members:[o.rel],c=[...ju(e.fileEdges,a,n).entries()].map(([m,u])=>({rel:m,module:r.get(m)??"root",depth:u})).sort((m,u)=>m.depth-u.depth||M(m.rel,u.rel)),d=[...new Set(c.map(m=>m.module).filter(m=>m!==t))].sort(M);return{target:t,scope:s?"module":"file",seeds:a,files:c,modules:d}}function Du(e,t,n,r){let{out:s,inn:o,degree:a,threshold:l}=Ky(e,r),c=new Set([t]),d=[],m=[t];for(let u=1;u<=n;u++){let f=[];for(let p of m)if(!(p!==t&&(a.get(p)??0)>=l)){for(let g of s.get(p)??[])c.has(g.to)||(d.push({node:g.to,direction:"out",kind:g.kind,weight:g.weight,depth:u,confidence:g.confidence}),c.add(g.to),f.push(g.to));for(let g of o.get(p)??[])c.has(g.from)||(d.push({node:g.from,direction:"in",kind:g.kind,weight:g.weight,depth:u,confidence:g.confidence}),c.add(g.from),f.push(g.from))}m=f}return d}function za(e,t,n=1,r){let s=e.modules.find(a=>a.slug===t);if(s)return{target:t,scope:"module",links:Du(e.moduleEdges,t,n,r),members:s.members};if(e.files.find(a=>a.rel===t))return{target:t,scope:"file",links:Du(e.fileEdges,t,n,r)}}E();qt();Y();Ne();Ae();var Mt={exportedChange:25,hubHigh:20,hubMed:10,blastHigh:20,blastMed:10,testGap:20,surprise:10,dangling:15},Xy=60,Zy=30,Yy=3,Ha=2;function Wu(e,t){let n=[],r=new Set,s=(a,l)=>{let c=`${a.name}:${a.line}`;r.has(c)||(r.add(c),n.push({name:a.name,kind:a.kind,exported:a.exported,line:a.line,...a.endLine!==void 0?{endLine:a.endLine}:{},...a.parent!==void 0?{parent:a.parent}:{},...l?{approx:!0}:{}}))},o=a=>(a.endLine??a.line)-a.line;for(let a of t){let l=e.filter(c=>c.line<=a.end&&(c.endLine??c.line)>=a.start);if(l.length){l.sort((c,d)=>o(c)-o(d)||d.line-c.line||M(c.name,d.name));for(let c of l)s(c,!1)}else{let c=e.filter(m=>m.line<=a.start&&m.endLine===void 0),d=c[c.length-1];d&&s(d,!0)}}return n}function Qy(e,t){if(e.length<=1)return 0;let n=0;for(let r of e)r[b.rel,b])),a=new Map;if(t){for(let[b,w]of Object.entries(t.defs))for(let v of w){let A=a.get(v.file);A||a.set(v.file,A=[]),A.push({name:b,...v})}for(let b of a.values())b.sort((w,v)=>w.line-v.line||M(w.name,v.name))}let l=[],c=[],d=[];for(let b of[...n.files].sort((w,v)=>M(w.path,v.path))){let w={...b.oldPath!==void 0?{oldPath:b.oldPath}:{},...b.binary?{binary:!0}:{},...b.linesAdded!==void 0?{linesAdded:b.linesAdded}:{},...b.linesDeleted!==void 0?{linesDeleted:b.linesDeleted}:{}};if(b.status==="deleted"){l.push(b.path),d.push({path:b.path,status:b.status,...w,hunks:[],symbols:[]});continue}let v=o.get(b.path);if(!v){c.push(b.path);continue}let A=n.hunks.get(b.path)??[];!A.length&&b.status==="added"&&!b.binary&&(A=[{start:1,end:Math.max(v.lines,1)}]);let F=b.binary?[]:Wu(a.get(b.path)??[],A);d.push({path:b.path,status:b.status,...w,module:v.module,hunks:A.map(T=>({start:T.start,end:T.end})),symbols:F})}let m=new Set(d.filter(b=>b.status!=="deleted").map(b=>b.path)),u=e.fileEdges.filter(b=>b.dangling&&(b.kind==="import"||b.kind==="doc-link")&&m.has(b.from)).map(b=>({from:b.from,spec:b.to,reason:b.reason??"unknown"})).sort((b,w)=>M(b.from,w.from)||M(b.spec,w.spec)),f=(b,w)=>{if(!w.startsWith("."))return!1;let v=b.split("/").slice(0,-1);for(let A of w.split("/"))A==="."||A===""||(A===".."?v.pop():v.push(A));return v.some(A=>Gt.has(A))},p=new Map;for(let b of d){if(b.status==="deleted"||!b.module)continue;let w=p.get(b.module);w||p.set(b.module,w=[]),w.push(b)}let g=new Set;for(let b of e.files)b.fileKind==="code"&&!b.testFile&&g.add(b.module);let h=e.modules.some(b=>b.pagerank!==void 0),y=b=>h?b.pagerank??0:b.degIn+b.degOut,S=e.modules.map(y),_=h?"pagerank":"degree",k=[];for(let b of[...p.keys()].sort(M)){let w=e.modules.find(D=>D.slug===b);if(!w)continue;let v=p.get(b),A=[],F=0,T=[...new Set(v.flatMap(D=>D.symbols.filter(de=>de.exported).map(de=>de.name)))].sort(M);if(T.length){F+=Mt.exportedChange;let D=T.slice(0,3).join(", ")+(T.length>3?", \u2026":"");A.push(T.length===1?`exported symbol ${D} changed`:`exported symbols ${D} changed`)}let U=Qy(S,y(w));U>=.9?(F+=Mt.hubHigh,A.push(`${_} p${Math.round(U*100)} hub`)):U>=.75&&(F+=Mt.hubMed,A.push(`${_} p${Math.round(U*100)} hub`));let te=new Map,V=new Set;for(let D of v){let de=Br(e,D.path,r);if(de){for(let K of de.files){let ce=te.get(K.rel);(ce===void 0||K.depthD===1).length,transitiveFiles:z,modules:[...V].sort(M)};z>=20||j.modules.length>=5?(F+=Mt.blastHigh,A.push(`${z} dependent files across ${j.modules.length} modules (depth ${r})`)):z>=5&&(F+=Mt.blastMed,A.push(`${z} dependent files across ${j.modules.length} modules (depth ${r})`));let B=w.tier<=1&&w.symbols>0&&g.has(b),se=w.testedBy??[],J=B?se.length?{status:"covered",files:se}:{status:"gap",files:[]}:{status:"n/a",files:[]};J.status==="gap"&&(F+=Mt.testGap,A.push("no test covers this module"));let ne=(e.surprises??[]).find(D=>D.from===b||D.to===b);ne&&(F+=Mt.surprise,A.push(`cross-community edge to ${ne.from===b?ne.to:ne.from} (surprising)`));let be=u.filter(D=>v.some(de=>de.path===D.from)&&!f(D.from,D.spec));if(be.length){F+=Mt.dangling;let D=be[0],de=be.length>1?` (+${be.length-1} more)`:"";A.push(`dangling import "${D.spec}" in ${D.from}${de}`)}F=Math.min(100,F);let Ie=v.map(D=>D.path).sort(M),X=v.flatMap(D=>D.symbols),Z=v.slice().sort((D,de)=>de.symbols.filter(K=>K.exported).length-D.symbols.filter(K=>K.exported).length||de.symbols.length-D.symbols.length||M(D.path,de.path)).slice(0,Yy).map(D=>D.path);k.push({slug:b,path:w.path,score:F,bucket:F>=Xy?"HIGH":F>=Zy?"MEDIUM":"LOW",reasons:A,changedFiles:Ie,changedSymbols:{total:new Set(X.map(D=>`${D.name}:${D.line}`)).size,exported:new Set(X.filter(D=>D.exported).map(D=>`${D.name}:${D.line}`)).size},impact:j,tests:J,open:Z})}return k.sort((b,w)=>w.score-b.score||M(b.slug,w.slug)),{base:n.base,...e.commit!==void 0?{indexCommit:e.commit}:{},depth:r,changes:d,modules:k,dangling:u,deleted:l.sort(M),unindexed:c.sort(M),notes:s}}function Ga(e,t,n,r={}){if(!at("git"))return{error:"git is required for delta and was not found on PATH"};if(!qi(e))return{error:`delta needs a git worktree \u2014 ${e} is not inside one`};let s=[],o;if(r.staged){let c=pe("git",["-C",e,"rev-parse","HEAD"]);if(!c.ok)return{error:"cannot resolve HEAD \u2014 empty repository?"};o={ref:"HEAD",mergeBase:c.stdout.trim(),staged:!0}}else{let c=Vi(e,r.base);if("error"in c)return{error:c.error};c.note&&s.push(c.note),o={ref:c.ref,mergeBase:c.mergeBase,staged:!1}}let a=r.staged?{staged:!0}:{mergeBase:o.mergeBase},l=Ji(e,a);if(!r.staged){let c=new Set(l.map(d=>d.path));for(let d of us(e))c.has(d)||l.push({path:d,status:"added"})}return Uu(t,n,{files:l,hunks:Ki(e,a),base:o,notes:s},r.depth??Ha)}function qa(e){let t=e.base.mergeBase.slice(0,7),n=`${e.base.staged?"staged vs ":""}${e.base.ref}`;if(!e.changes.length&&!e.unindexed.length)return`codeindex: no changes vs ${n} (merge-base ${t}) -`;let r=e.changes.length+e.unindexed.length,s=[`codeindex: delta vs ${n} (merge-base ${t}) \u2014 ${r} changed file(s), ${e.modules.length} module(s)${e.indexCommit?`, index @ ${e.indexCommit}`:""}`];for(let o of e.notes)s.push(` note: ${o}`);for(let o of e.modules){s.push(` ${o.bucket.padEnd(6)} ${o.slug} score ${o.score}${o.reasons.length?` \u2014 ${o.reasons.join("; ")}`:""}`);let a=o.tests.status==="gap"?"GAP":o.tests.status==="covered"?`covered (${o.tests.files.length})`:"n/a";s.push(` open: ${o.open.join(", ")||"\u2014"} \xB7 tests: ${a}`)}return e.dangling.length&&s.push(` dangling: ${e.dangling.map(o=>`${o.spec} (from ${o.from})`).join(" \xB7 ")}`),e.deleted.length&&s.push(` deleted: ${e.deleted.join(", ")}`),e.unindexed.length&&s.push(` unindexed: ${e.unindexed.join(", ")}`),s.join(` +`}}E();nt();async function hg(e={}){let t=e.label??"codeindex",n=[],s=m=>{n.push(m),e.onNote?e.onNote(m):R.stderr.write(m)},r=R.env.CODEINDEX_NO_GRAMMARS_PULL,o=(e.pull??!0)&&!(r&&r.trim()&&r!=="0"),a=[...e.keys??xo()],l=!1;if(Qe().tier==="none"&&o){s(`${t}: tree-sitter grammars not found locally \u2014 pulling them into the shared cache (once per machine)\u2026 +`);let m=await lr(Sn(),{onNote:s});s(m.message),l=m.ok&&m.status==="pulled"}await et(a);let c=Qe().tier,d=a.some(m=>tt(m));return d||s(`${t}: no tree-sitter grammars available (offline?) \u2014 extracting with the regex tier, so symbols and call sites are less precise. Run \`codeindex grammars pull\` once online to enable AST precision. +`),{tier:c,ready:d,pulled:l,notes:n}}js();Bs();Qs();En();Xt();_r();Qt();ei();ga();ni();vr();Xs();ka();Rn();Ea();fr();ii();E();ae();Xe();Fe();Y();var Et=class{buf;len=0;constructor(t=64){this.buf=new Uint8Array(t)}get length(){return this.len}grow(t){if(this.len+t<=this.buf.length)return;let n=this.buf.length*2||64;for(;n127;)e.push(t&127|128),t=Math.floor(t/128);e.push(t&127)}function iu(e,t,n){ai(e,t*8+n)}function oi(e,t,n){iu(e,t,0),ai(e,n)}function ou(e,t,n){iu(e,t,2),ai(e,n.length),e.pushAll(n)}function Nn(e,t,n){ou(e,t,n.view())}function kt(e,t,n){ou(e,t,kh.encode(n))}function Eh(e,t,n){let s=new Et(n.length*2);for(let r of n)ai(s,r);Nn(e,t,s)}var vh=1,Rh=2,Mh=2,Ch=3,Ah=4,Th=1,Ih=2,Fh=1,Nh=2,Oh=3,Ph=4,$h=6,Dh=1,Lh=2,jh=3,Wh=1,Uh=5,Bh=6,zh=8,Hh=1,qh=1,Gh=2,Vh={function:17,method:26,class:7,interface:21,enum:11,struct:49,trait:53,type:54,const:8,var:61},au="codeindex . . . ",Jh=/^[A-Za-z0-9_+\-$]+$/;function lu(e){return Jh.test(e)?e:"`"+e.replace(/`/g,"``")+"`"}function cu(e){return"`"+e.replace(/`/g,"``")+"`/"}function du(e){return lu(e)+"#"}var Kh=new Set(["class","interface","enum","struct","trait","type"]),Xh=new Set(["function","method","def"]);function Zh(e){return Kh.has(e)?"#":Xh.has(e)?"().":"."}function Yh(e,t){let n=au+cu(e);return t.parent&&(n+=du(t.parent)),n+lu(t.name)+Zh(t.kind)}function Qh(e,t){return au+cu(e)+du(t)}function ey(e,t,n){if(!n.has(e))return n.add(e),e;for(let s=0;;s++){let r=s===0?String(t):`${t}_${s}`,o=`${e}(${r})`;if(!n.has(o))return n.add(o),o}}function ru(e){return e==="typescript"||e==="javascript"?"js":e==="c"||e==="cpp"?"c":e}var ty=new Set(["reexport","reexport-all","default"]);function su(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95||e===36}function ny(e,t){if(!t)return null;let n=/^[A-Za-z_$][\w$]*$/.test(t),s=0;for(;;){let r=e.indexOf(t,s);if(r<0)return null;if(!n)return[r,r+t.length];let o=r>0?e.charCodeAt(r-1):-1,a=r+t.length,l=ap.kind==="code"&&p.symbols.length>0),o=new Map,a=new Map;for(let p of r){let g=new Set,h=[];for(let y of p.symbols){let S=ey(Yh(p.rel,y),y.line,g);if(h.push({sym:y,symbolString:S}),y.exported&&!ty.has(y.kind)){let _=a.get(y.name);_||a.set(y.name,_=[]),_.push({symbolString:S,family:ru(y.lang)})}}o.set(p.rel,h)}let l=(p,g)=>{let h=a.get(p);if(!h||h.length!==1)return;let y=h[0];return y.family===g?y.symbolString:void 0},c=[];for(let p of r){let h=G(I(e.root,p.rel)).split(` +`).map(T=>T.endsWith("\r")?T.slice(0,-1):T),y=(T,U)=>{let te=h[T-1];if(te===void 0)return[T-1,0,0];let V=ny(te,U);return V?[T-1,V[0],V[1]]:[T-1,0,te.length]},S=o.get(p.rel),_=[];for(let{sym:T,symbolString:U}of S)_.push({range:y(T.line,T.name),symbol:U,roles:qh});let k=ru(p.lang);for(let T of p.calls??[]){let U=l(T.name,k);U&&_.push({range:y(T.line,T.name),symbol:U,roles:0})}_.sort((T,U)=>T.range[0]-U.range[0]||T.range[1]-U.range[1]||T.range[2]-U.range[2]||T.roles-U.roles||M(T.symbol,U.symbol));let b=new Set,w=S.map(({sym:T,symbolString:U})=>({symbol:U,displayName:T.name,kind:Vh[T.kind],enclosing:T.parent?Qh(p.rel,T.parent):void 0})).sort((T,U)=>M(T.symbol,U.symbol)),v=new Et(1024);kt(v,Fh,p.rel);let A=new Et(64);for(let T of _){let U=`${T.range.join(",")} ${T.roles} ${T.symbol}`;b.has(U)||(b.add(U),A.reset(),Eh(A,Dh,T.range),kt(A,Lh,T.symbol),T.roles!==0&&oi(A,jh,T.roles),Nn(v,Nh,A))}let N=new Et(64);for(let T of w)N.reset(),kt(N,Wh,T.symbol),T.kind!==void 0&&oi(N,Uh,T.kind),kt(N,Bh,T.displayName),T.enclosing&&kt(N,zh,T.enclosing),Nn(v,Oh,N);kt(v,Ph,p.lang),oi(v,$h,Gh),c.push(v)}let d=new Et;kt(d,Th,"codeindex"),kt(d,Ih,s);let m=new Et;Nn(m,Mh,d),kt(m,Ch,n),oi(m,Ah,Hh);let u=0;for(let p of c)u+=p.length;let f=new Et(u+m.length+16);Nn(f,vh,m);for(let p of c)Nn(f,Rh,p);return f.toUint8Array()}li();Gt();ci();Cn();on();Ir();On();fi();mi();Ia();bi();Da();Pa();Ua();Na();ja();wi();Dr();Pr();xi();Rr();xr();Si();E();Y();var Yy=new Set(["import","use","call"]),ki=6;function Qy(e){let t=new Array(e.length*ki);for(let n=0;nM(m.to,u.to));for(let d of a.values())d.sort((m,u)=>M(m.from,u.from));let c={out:o,inn:a,degree:l,threshold:Hu([...l.values()])};return s.views.set(n,c),c}function Hu(e){let t=e.slice().sort((r,o)=>r-o),n=t.length,s=n===0?0:t[Math.min(n-1,Math.floor(.99*n))];return Math.max(50,s)}function qu(e,t,n=1/0){let s=new Map;for(let l of e){if(l.dangling||!Yy.has(l.kind))continue;let c=s.get(l.to);c||s.set(l.to,c=[]),c.push(l)}let r=new Map,o=new Set(t),a=[...t];for(let l=1;l<=n&&a.length;l++){let c=[];for(let d of a)for(let m of(s.get(d)??[]).slice().sort((u,f)=>M(u.from,f.from)))o.has(m.from)||(o.add(m.from),r.set(m.from,l),c.push(m.from));a=c}return r}function zr(e,t,n=1/0){let s=new Map(e.files.map(m=>[m.rel,m.module])),r=e.modules.find(m=>m.slug===t),o=r?void 0:e.files.find(m=>m.rel===t);if(!r&&!o)return;let a=r?r.members:[o.rel],c=[...qu(e.fileEdges,a,n).entries()].map(([m,u])=>({rel:m,module:s.get(m)??"root",depth:u})).sort((m,u)=>m.depth-u.depth||M(m.rel,u.rel)),d=[...new Set(c.map(m=>m.module).filter(m=>m!==t))].sort(M);return{target:t,scope:r?"module":"file",seeds:a,files:c,modules:d}}function zu(e,t,n,s){let{out:r,inn:o,degree:a,threshold:l}=tb(e,s),c=new Set([t]),d=[],m=[t];for(let u=1;u<=n;u++){let f=[];for(let p of m)if(!(p!==t&&(a.get(p)??0)>=l)){for(let g of r.get(p)??[])c.has(g.to)||(d.push({node:g.to,direction:"out",kind:g.kind,weight:g.weight,depth:u,confidence:g.confidence}),c.add(g.to),f.push(g.to));for(let g of o.get(p)??[])c.has(g.from)||(d.push({node:g.from,direction:"in",kind:g.kind,weight:g.weight,depth:u,confidence:g.confidence}),c.add(g.from),f.push(g.from))}m=f}return d}function qa(e,t,n=1,s){let r=e.modules.find(a=>a.slug===t);if(r)return{target:t,scope:"module",links:zu(e.moduleEdges,t,n,s),members:r.members};if(e.files.find(a=>a.rel===t))return{target:t,scope:"file",links:zu(e.fileEdges,t,n,s)}}E();Gt();Y();Fe();Ae();var Mt={exportedChange:25,hubHigh:20,hubMed:10,blastHigh:20,blastMed:10,testGap:20,surprise:10,dangling:15},nb=60,rb=30,sb=3,Ga=2;function Gu(e,t){let n=[],s=new Set,r=(a,l)=>{let c=`${a.name}:${a.line}`;s.has(c)||(s.add(c),n.push({name:a.name,kind:a.kind,exported:a.exported,line:a.line,...a.endLine!==void 0?{endLine:a.endLine}:{},...a.parent!==void 0?{parent:a.parent}:{},...l?{approx:!0}:{}}))},o=a=>(a.endLine??a.line)-a.line;for(let a of t){let l=e.filter(c=>c.line<=a.end&&(c.endLine??c.line)>=a.start);if(l.length){l.sort((c,d)=>o(c)-o(d)||d.line-c.line||M(c.name,d.name));for(let c of l)r(c,!1)}else{let c=e.filter(m=>m.line<=a.start&&m.endLine===void 0),d=c[c.length-1];d&&r(d,!0)}}return n}function ib(e,t){if(e.length<=1)return 0;let n=0;for(let s of e)s[b.rel,b])),a=new Map;if(t){for(let[b,w]of Object.entries(t.defs))for(let v of w){let A=a.get(v.file);A||a.set(v.file,A=[]),A.push({name:b,...v})}for(let b of a.values())b.sort((w,v)=>w.line-v.line||M(w.name,v.name))}let l=[],c=[],d=[];for(let b of[...n.files].sort((w,v)=>M(w.path,v.path))){let w={...b.oldPath!==void 0?{oldPath:b.oldPath}:{},...b.binary?{binary:!0}:{},...b.linesAdded!==void 0?{linesAdded:b.linesAdded}:{},...b.linesDeleted!==void 0?{linesDeleted:b.linesDeleted}:{}};if(b.status==="deleted"){l.push(b.path),d.push({path:b.path,status:b.status,...w,hunks:[],symbols:[]});continue}let v=o.get(b.path);if(!v){c.push(b.path);continue}let A=n.hunks.get(b.path)??[];!A.length&&b.status==="added"&&!b.binary&&(A=[{start:1,end:Math.max(v.lines,1)}]);let N=b.binary?[]:Gu(a.get(b.path)??[],A);d.push({path:b.path,status:b.status,...w,module:v.module,hunks:A.map(T=>({start:T.start,end:T.end})),symbols:N})}let m=new Set(d.filter(b=>b.status!=="deleted").map(b=>b.path)),u=e.fileEdges.filter(b=>b.dangling&&(b.kind==="import"||b.kind==="doc-link")&&m.has(b.from)).map(b=>({from:b.from,spec:b.to,reason:b.reason??"unknown"})).sort((b,w)=>M(b.from,w.from)||M(b.spec,w.spec)),f=(b,w)=>{if(!w.startsWith("."))return!1;let v=b.split("/").slice(0,-1);for(let A of w.split("/"))A==="."||A===""||(A===".."?v.pop():v.push(A));return v.some(A=>qt.has(A))},p=new Map;for(let b of d){if(b.status==="deleted"||!b.module)continue;let w=p.get(b.module);w||p.set(b.module,w=[]),w.push(b)}let g=new Set;for(let b of e.files)b.fileKind==="code"&&!b.testFile&&g.add(b.module);let h=e.modules.some(b=>b.pagerank!==void 0),y=b=>h?b.pagerank??0:b.degIn+b.degOut,S=e.modules.map(y),_=h?"pagerank":"degree",k=[];for(let b of[...p.keys()].sort(M)){let w=e.modules.find(D=>D.slug===b);if(!w)continue;let v=p.get(b),A=[],N=0,T=[...new Set(v.flatMap(D=>D.symbols.filter(de=>de.exported).map(de=>de.name)))].sort(M);if(T.length){N+=Mt.exportedChange;let D=T.slice(0,3).join(", ")+(T.length>3?", \u2026":"");A.push(T.length===1?`exported symbol ${D} changed`:`exported symbols ${D} changed`)}let U=ib(S,y(w));U>=.9?(N+=Mt.hubHigh,A.push(`${_} p${Math.round(U*100)} hub`)):U>=.75&&(N+=Mt.hubMed,A.push(`${_} p${Math.round(U*100)} hub`));let te=new Map,V=new Set;for(let D of v){let de=zr(e,D.path,s);if(de){for(let K of de.files){let ce=te.get(K.rel);(ce===void 0||K.depthD===1).length,transitiveFiles:z,modules:[...V].sort(M)};z>=20||j.modules.length>=5?(N+=Mt.blastHigh,A.push(`${z} dependent files across ${j.modules.length} modules (depth ${s})`)):z>=5&&(N+=Mt.blastMed,A.push(`${z} dependent files across ${j.modules.length} modules (depth ${s})`));let B=w.tier<=1&&w.symbols>0&&g.has(b),se=w.testedBy??[],J=B?se.length?{status:"covered",files:se}:{status:"gap",files:[]}:{status:"n/a",files:[]};J.status==="gap"&&(N+=Mt.testGap,A.push("no test covers this module"));let ne=(e.surprises??[]).find(D=>D.from===b||D.to===b);ne&&(N+=Mt.surprise,A.push(`cross-community edge to ${ne.from===b?ne.to:ne.from} (surprising)`));let be=u.filter(D=>v.some(de=>de.path===D.from)&&!f(D.from,D.spec));if(be.length){N+=Mt.dangling;let D=be[0],de=be.length>1?` (+${be.length-1} more)`:"";A.push(`dangling import "${D.spec}" in ${D.from}${de}`)}N=Math.min(100,N);let Ie=v.map(D=>D.path).sort(M),X=v.flatMap(D=>D.symbols),Z=v.slice().sort((D,de)=>de.symbols.filter(K=>K.exported).length-D.symbols.filter(K=>K.exported).length||de.symbols.length-D.symbols.length||M(D.path,de.path)).slice(0,sb).map(D=>D.path);k.push({slug:b,path:w.path,score:N,bucket:N>=nb?"HIGH":N>=rb?"MEDIUM":"LOW",reasons:A,changedFiles:Ie,changedSymbols:{total:new Set(X.map(D=>`${D.name}:${D.line}`)).size,exported:new Set(X.filter(D=>D.exported).map(D=>`${D.name}:${D.line}`)).size},impact:j,tests:J,open:Z})}return k.sort((b,w)=>w.score-b.score||M(b.slug,w.slug)),{base:n.base,...e.commit!==void 0?{indexCommit:e.commit}:{},depth:s,changes:d,modules:k,dangling:u,deleted:l.sort(M),unindexed:c.sort(M),notes:r}}function Va(e,t,n,s={}){if(!at("git"))return{error:"git is required for delta and was not found on PATH"};if(!Ji(e))return{error:`delta needs a git worktree \u2014 ${e} is not inside one`};let r=[],o;if(s.staged){let c=pe("git",["-C",e,"rev-parse","HEAD"]);if(!c.ok)return{error:"cannot resolve HEAD \u2014 empty repository?"};o={ref:"HEAD",mergeBase:c.stdout.trim(),staged:!0}}else{let c=Ki(e,s.base);if("error"in c)return{error:c.error};c.note&&r.push(c.note),o={ref:c.ref,mergeBase:c.mergeBase,staged:!1}}let a=s.staged?{staged:!0}:{mergeBase:o.mergeBase},l=Xi(e,a);if(!s.staged){let c=new Set(l.map(d=>d.path));for(let d of ms(e))c.has(d)||l.push({path:d,status:"added"})}return Vu(t,n,{files:l,hunks:Zi(e,a),base:o,notes:r},s.depth??Ga)}function Ja(e){let t=e.base.mergeBase.slice(0,7),n=`${e.base.staged?"staged vs ":""}${e.base.ref}`;if(!e.changes.length&&!e.unindexed.length)return`codeindex: no changes vs ${n} (merge-base ${t}) +`;let s=e.changes.length+e.unindexed.length,r=[`codeindex: delta vs ${n} (merge-base ${t}) \u2014 ${s} changed file(s), ${e.modules.length} module(s)${e.indexCommit?`, index @ ${e.indexCommit}`:""}`];for(let o of e.notes)r.push(` note: ${o}`);for(let o of e.modules){r.push(` ${o.bucket.padEnd(6)} ${o.slug} score ${o.score}${o.reasons.length?` \u2014 ${o.reasons.join("; ")}`:""}`);let a=o.tests.status==="gap"?"GAP":o.tests.status==="covered"?`covered (${o.tests.files.length})`:"n/a";r.push(` open: ${o.open.join(", ")||"\u2014"} \xB7 tests: ${a}`)}return e.dangling.length&&r.push(` dangling: ${e.dangling.map(o=>`${o.spec} (from ${o.from})`).join(" \xB7 ")}`),e.deleted.length&&r.push(` deleted: ${e.deleted.join(", ")}`),e.unindexed.length&&r.push(` unindexed: ${e.unindexed.join(", ")}`),r.join(` `)+` -`}Qa();el();Tt();Y();Ae();E();Se();ae();Xe();Xe();nt();oi();Tt();ri();ur();Pt();ir();or();Ne();Xt();Qt();gr();Qt();Er();qt();ai();$r();Or();bi();vr();wr();wi();Mn();yi();on();Fn();di();ui();Ae();hi();Ti();var tf=`codeindex engine v${fe} \u2014 deterministic repo indexing +`}tl();nl();Tt();Y();Ae();E();Se();ae();Xe();Xe();nt();li();Tt();ii();fr();Pt();or();ar();Fe();Xt();Qt();_r();Qt();vr();Gt();ci();Dr();Pr();xi();Rr();xr();Si();Cn();wi();on();On();fi();mi();Ae();bi();Fi();var lf=`codeindex engine v${fe} \u2014 deterministic repo indexing Usage: engine.mjs [flags] @@ -232,54 +232,54 @@ Flags (accepted before OR after the subcommand: '--repo X scan' and --min-count \`literals\`: total occurrences required (default 3) --include-tests \`literals\`: count test files too. Off by default \u2014 a test restating a value is usually asserting it deliberately -`;function db(e){let t={repo:R.cwd(),include:[],exclude:[],gitignore:!0,ignoreDirs:[],noAst:!1,fuzzy:!0,semantic:!1};for(let n=0;n{let a=e[++n];if(a===void 0)throw new Error(`missing value for ${r}`);return a},o=()=>{let a=s(),l=Number(a);if(!Number.isFinite(l)||l<=0)throw new Error(`${r} expects a positive number, got "${a}"`);return l};if(r==="--repo")t.repo=Ee(s());else if(r==="--out"){let a=s();t.out=a==="-"?"-":Ee(a)}else if(r==="--project-root")t.projectRoot=s();else if(r==="--include")t.include.push(s());else if(r==="--exclude")t.exclude.push(s());else if(r==="--scope")t.scope=s();else if(r==="--no-gitignore")t.gitignore=!1;else if(r==="--ignore-dir")t.ignoreDirs.push(s());else if(r==="--max-files")t.maxFiles=o();else if(r==="--max-bytes")t.maxBytes=o();else if(r==="--max-calls")t.maxCalls=o();else if(r==="--ignore-case")t.ignoreCase=!0;else if(r==="--max-hits")t.maxHits=o();else if(r==="--budget-tokens")t.budgetTokens=o();else if(r==="--min-files")t.minFiles=o();else if(r==="--min-count")t.minCount=o();else if(r==="--include-tests")t.includeTests=!0;else if(r==="--no-ast")t.noAst=!0;else if(r==="--index")t.indexDir=s();else if(r==="--no-index-cache")t.noIndexCache=!0;else if(r==="--workers"){let a=s(),l=Number(a);if(!Number.isInteger(l)||l<0)throw new Error(`--workers expects a non-negative integer, got "${a}"`);t.workers=l}else if(r==="--since")t.since=s();else if(r==="--config")t.config=Ee(s());else if(r==="--limit")t.limit=o();else if(r==="--no-fuzzy")t.fuzzy=!1;else if(r==="--exact")t.exact=!0;else if(r==="--explain")t.explain=!0;else if(r==="--semantic")t.semantic=!0;else if(r==="--recall")t.recall=!0;else if(r==="--run")t.run=!0;else if(r==="--probe")t.probe=!0;else if(r==="--base")t.base=s();else if(r==="--staged")t.staged=!0;else if(r==="--depth")t.depth=o();else if(r==="--kind")t.kind=s();else if(r==="--rank"){let a=s();if(a!=="graph"&&a!=="lexical")throw new Error(`--rank expects graph|lexical, got "${a}"`);t.rank=a}else if(r==="--direction"){let a=s();if(a!=="out"&&a!=="in"&&a!=="both")throw new Error(`--direction expects out|in|both, got "${a}"`);t.direction=a}else if(r==="--json")t.json=!0;else if(!r.startsWith("--")&&t.positional===void 0)t.positional=r;else throw new Error(`unknown flag: ${r}`)}return t}function oe(e,t){t?Me(t,e):R.stdout.write(e)}function Pn(e,t){return{include:e.include.length?e.include:void 0,exclude:e.exclude.length?e.exclude:void 0,scope:e.scope,gitignore:e.gitignore,ignoreDirs:e.ignoreDirs.length?e.ignoreDirs:void 0,maxFiles:e.maxFiles,maxBytes:e.maxBytes,maxCallsPerFile:e.maxCalls,precomputedWalk:t}}var ub=new Set(["grep","churn","coupling","workspaces","grammars"]);function fb(e){let t,n,r,s,o=!1;for(let a=0;a");return{defaultRepo:t,serverInfo:n?{name:n}:void 0,maxResponseBytes:r,profile:s,watch:o}}var mb=new Set(["--repo","--out","--project-root","--include","--exclude","--scope","--ignore-dir","--max-files","--max-bytes","--max-calls","--max-hits","--budget-tokens","--min-files","--min-count","--since","--config","--limit","--server-name","--tools","--workers","--index","--max-response-bytes","--base","--depth","--kind","--rank","--direction"]);function pb(e){let t=[],n=0;for(;n=e.length?e:[e[n],...t,...e.slice(n+1)]}async function gb(e){let t=pb(e),[n,...r]=t;if(!n||n==="help"||n==="--help"||n==="-h"){R.stdout.write(tf);return}if(n==="version"||n==="--version"){R.stdout.write(fe+` -`);return}if(n==="rewrite"){let{rewriteCommand:_}=await Promise.resolve().then(()=>(el(),ef)),k=_(r.join(" "));if(!k){R.exitCode=1;return}R.stdout.write(k+` -`);return}if(n==="mcp"){let{runMcpServer:_}=await Promise.resolve().then(()=>(Qa(),Zu));await _(fb(r));return}let s=db(r);if(!H(s.repo))throw new Error(`--repo path does not exist: ${s.repo}`);if(!xe(s.repo).isDirectory())throw new Error(`--repo path is not a directory: ${s.repo}`);let o=!ub.has(n)&&!(n==="embed"&&s.positional!=="build"),a;o&&!s.noAst&&(a=Pe(s.repo,{maxFileBytes:s.maxBytes,maxFiles:s.maxFiles,gitignore:s.gitignore,ignoreDirs:s.ignoreDirs.length?s.ignoreDirs:void 0}));let l=!1,c=async()=>{l||s.noAst||!a||(await et(wt(a.files.map(_=>_.ext))),l=!0)},d=s.indexDir??ft,m=!1,u,f,p=async()=>{if(u)return u;if(m)return f;if(m=!0,!s.noIndexCache)return u=Ps(s.repo,{...Pn(s,a),workers:s.workers},c,d).then(_=>(_&&(f={scan:_.scan,arts:_.arts,loadArtifacts:_.loadArtifacts}),f)),u},g,h=async()=>{let _=(await p())?.scan;return _||(g??=c().then(()=>ut(s.repo,{...Pn(s,a),workers:s.workers})))},y,S=async()=>{let _=await p();return _?.arts?_.arts:_?_.arts??=_.loadArtifacts?.()??vt(_.scan,Pn(s,a)):y??=h().then(k=>vt(k,Pn(s,a)))};if(n==="index"){if(!s.out)throw new Error("index needs --out ");let _=s.out;_t(_,{recursive:!0});let k=I(_,"cache.json"),b,w={};try{let B=JSON.parse(Q(k,"utf8"));B.schemaVersion===5&&B.extractorVersion===14&&(b=new Map(Object.entries(B.files)),w={engineVersion:B.engineVersion,commit:B.commit,graphSha1:B.graphSha1,symbolsSha1:B.symbolsSha1,embed:B.embed})}catch{}await c();let v=await ut(s.repo,{...Pn(s,a),cache:b,out:_,workers:s.workers}),A=Rt(s.repo),F=A?Wt(A):void 0,T=I(_,"graph.json"),U=I(_,"symbols.json"),te=I(_,"embeddings.bin"),V=B=>{try{return Ce(Q(B))}catch{return}},z=B=>{let se={};for(let J of v.files){let ne={hash:J.hash,record:J,size:J.size},be=v.mtimes.get(J.rel);be!==void 0&&(ne.mtimeMs=be),se[J.rel]=ne}Me(k,JSON.stringify({schemaVersion:5,extractorVersion:14,engineVersion:fe,commit:v.commit,graphSha1:B.graphSha1,symbolsSha1:B.symbolsSha1,embed:B.embed,files:se})+` -`)},P=!F||w.embed!==void 0&&w.embed.embedVersion===it&&w.embed.modelId===F.modelId&&w.embed.sha1!==void 0&&V(te)===w.embed.sha1;if(v.contentUnchanged&&w.engineVersion===fe&&w.commit===v.commit&&w.graphSha1!==void 0&&V(T)===w.graphSha1&&w.symbolsSha1!==void 0&&V(U)===w.symbolsSha1&&P)v.cacheDirty&&z(w),R.stderr.write(`codeindex: ${v.files.length} files \u2192 ${_}/graph.json + symbols.json${v.capped?" (capped)":""} (unchanged \u2014 artifacts reused) -`);else{let{graph:B,symbols:se}=vt(v),J=In(B),ne=Us(se);Me(T,J),Me(U,ne);let be="",Ie;if(F){let X=an(v,F),Z=ci(X);Me(te,Z),Ie={embedVersion:it,modelId:F.modelId,sha1:Ce(Z)},be=` + embeddings.bin (${X.records.length} records, model ${F.modelId})`}z({graphSha1:Ce(J),symbolsSha1:Ce(ne),embed:Ie}),R.stderr.write(`codeindex: ${v.files.length} files \u2192 ${_}/graph.json + symbols.json${be}${v.capped?" (capped)":""} -`)}}else if(n==="scan"){let _=sr(s.repo,Pn(s,a)),k={engineVersion:fe,commit:_.commit,fileCount:_.fileCount,languages:_.languages,capped:_.capped};oe(JSON.stringify(k,null,2)+` -`,s.out)}else if(n==="graph"){let{graph:_}=await S();oe(In(_),s.out)}else if(n==="symbols"){let{symbols:_}=await S();oe(Us(_),s.out)}else if(n==="scip"){let _=await h(),k=ka(_,{projectRoot:s.projectRoot}),b=s.out??Ee("index.scip");b==="-"?R.stdout.write(N.from(k)):(Me(b,k),R.stderr.write(`codeindex: SCIP index \u2192 ${b} (${k.length} bytes) -`))}else if(n==="callers"){let _=await h(),k=Yt(_,void 0,{recall:s.recall}),b={};for(let[w,v]of k)b[w]=v;oe(JSON.stringify(b,null,2)+` -`,s.out)}else if(n==="hierarchy"){let _=await h(),k=En(_,fr(_));if(s.positional){let b=k.get(s.positional);if(!b)throw new Error(`no type named ${s.positional}`);oe(JSON.stringify(b,null,2)+` -`,s.out)}else{let b={};for(let[w,v]of k)b[w]=v;oe(JSON.stringify(b,null,2)+` -`,s.out)}}else if(n==="implementations"){if(!s.positional)throw new Error("implementations needs a type name: cli.mjs implementations --repo ");let _=await h(),k=En(_,fr(_));if(!k.has(s.positional))throw new Error(`no type named ${s.positional}`);oe(JSON.stringify({name:s.positional,implementations:dr(k,s.positional)},null,2)+` -`,s.out)}else if(n==="callgraph"){if(!s.positional)throw new Error("callgraph needs a symbol: cli.mjs callgraph --repo ");let _=await h(),k=mr(_,fr(_)),b=pr(k,s.positional,{...s.depth!==void 0?{depth:s.depth}:{},...s.direction?{direction:s.direction}:{}});if(!b.root.length)throw new Error(`no symbol named ${s.positional}`);oe(JSON.stringify(b,null,2)+` -`,s.out)}else if(n==="search"){if(!s.positional)throw new Error('search needs a query: cli.mjs search "" --repo ');let _=await h(),k={limit:s.limit,fuzzy:s.fuzzy,...s.exact?{exact:!0}:{},...s.rank?{rank:s.rank}:{}},b=()=>{let{explain:w}=nn(_,s.positional,k);w.note&&R.stderr.write(`codeindex: ${w.note} -`)};if(s.semantic){let w=Ut(),v=()=>{let A=Dt(_,s.positional,k);oe(JSON.stringify(A,null,2)+` -`,s.out)};if(w)try{let A=await Fr(_),F=await Nr(s.positional),T=ln(_,s.positional,A,{queryVec:F,limit:s.limit,fuzzy:s.fuzzy});oe(JSON.stringify(T,null,2)+` -`,s.out)}catch(A){R.stderr.write(`codeindex: embedding endpoint ${w} unavailable (${A instanceof Error?A.message:A}) \u2014 returning lexical results -`),v()}else{let A=Rt(s.repo),F=A?Wt(A):void 0;if(!F)R.stderr.write("codeindex: semantic search unavailable (no embedding model or endpoint) \u2014 returning lexical results; run `codeindex embed pull` or set CODEINDEX_EMBED_ENDPOINT to enable it\n"),v();else{let T=an(_,F),U=ln(_,s.positional,T,{model:F,limit:s.limit,fuzzy:s.fuzzy});oe(JSON.stringify(U,null,2)+` -`,s.out)}}b()}else{let{results:w,explain:v}=nn(_,s.positional,k);oe(JSON.stringify(s.explain?{results:w,explain:v}:w,null,2)+` -`,s.out),v.note&&R.stderr.write(`codeindex: ${v.note} -`)}}else if(n==="embed"){let _=s.positional,k=Rt(s.repo);if(_==="status"){let b=k?Wt(k):void 0,w=Ut(),A={embedVersion:it,mode:w?"endpoint":b?"static":"none",model:b?{present:!0,dir:k,modelId:b.modelId,dim:b.dim,vocabSize:b.vocabSize}:{present:!1},endpoint:w??null};w&&(A.endpointReachable=await Ir(w)),oe(JSON.stringify(A,null,2)+` -`,s.out)}else if(_==="serve"){let b=["run","-d","-p","8756:8756","ghcr.io/maxgfr/codeindex-embed:latest"],w=`docker ${b.join(" ")}`;if(!at("docker")){R.stderr.write(`codeindex: docker not found on PATH. Install Docker, then run: +`;function _b(e){let t={repo:R.cwd(),include:[],exclude:[],gitignore:!0,ignoreDirs:[],noAst:!1,fuzzy:!0,semantic:!1};for(let n=0;n{let a=e[++n];if(a===void 0)throw new Error(`missing value for ${s}`);return a},o=()=>{let a=r(),l=Number(a);if(!Number.isFinite(l)||l<=0)throw new Error(`${s} expects a positive number, got "${a}"`);return l};if(s==="--repo")t.repo=Ee(r());else if(s==="--out"){let a=r();t.out=a==="-"?"-":Ee(a)}else if(s==="--project-root")t.projectRoot=r();else if(s==="--include")t.include.push(r());else if(s==="--exclude")t.exclude.push(r());else if(s==="--scope")t.scope=r();else if(s==="--no-gitignore")t.gitignore=!1;else if(s==="--ignore-dir")t.ignoreDirs.push(r());else if(s==="--max-files")t.maxFiles=o();else if(s==="--max-bytes")t.maxBytes=o();else if(s==="--max-calls")t.maxCalls=o();else if(s==="--ignore-case")t.ignoreCase=!0;else if(s==="--max-hits")t.maxHits=o();else if(s==="--budget-tokens")t.budgetTokens=o();else if(s==="--min-files")t.minFiles=o();else if(s==="--min-count")t.minCount=o();else if(s==="--include-tests")t.includeTests=!0;else if(s==="--no-ast")t.noAst=!0;else if(s==="--index")t.indexDir=r();else if(s==="--no-index-cache")t.noIndexCache=!0;else if(s==="--workers"){let a=r(),l=Number(a);if(!Number.isInteger(l)||l<0)throw new Error(`--workers expects a non-negative integer, got "${a}"`);t.workers=l}else if(s==="--since")t.since=r();else if(s==="--config")t.config=Ee(r());else if(s==="--limit")t.limit=o();else if(s==="--no-fuzzy")t.fuzzy=!1;else if(s==="--exact")t.exact=!0;else if(s==="--explain")t.explain=!0;else if(s==="--semantic")t.semantic=!0;else if(s==="--recall")t.recall=!0;else if(s==="--run")t.run=!0;else if(s==="--probe")t.probe=!0;else if(s==="--base")t.base=r();else if(s==="--staged")t.staged=!0;else if(s==="--depth")t.depth=o();else if(s==="--kind")t.kind=r();else if(s==="--rank"){let a=r();if(a!=="graph"&&a!=="lexical")throw new Error(`--rank expects graph|lexical, got "${a}"`);t.rank=a}else if(s==="--direction"){let a=r();if(a!=="out"&&a!=="in"&&a!=="both")throw new Error(`--direction expects out|in|both, got "${a}"`);t.direction=a}else if(s==="--json")t.json=!0;else if(!s.startsWith("--")&&t.positional===void 0)t.positional=s;else throw new Error(`unknown flag: ${s}`)}return t}function oe(e,t){t?Me(t,e):R.stdout.write(e)}function $n(e,t){return{include:e.include.length?e.include:void 0,exclude:e.exclude.length?e.exclude:void 0,scope:e.scope,gitignore:e.gitignore,ignoreDirs:e.ignoreDirs.length?e.ignoreDirs:void 0,maxFiles:e.maxFiles,maxBytes:e.maxBytes,maxCallsPerFile:e.maxCalls,precomputedWalk:t}}var hb=new Set(["grep","churn","coupling","workspaces","grammars"]);function yb(e){let t,n,s,r,o=!1;for(let a=0;a");return{defaultRepo:t,serverInfo:n?{name:n}:void 0,maxResponseBytes:s,profile:r,watch:o}}var bb=new Set(["--repo","--out","--project-root","--include","--exclude","--scope","--ignore-dir","--max-files","--max-bytes","--max-calls","--max-hits","--budget-tokens","--min-files","--min-count","--since","--config","--limit","--server-name","--tools","--workers","--index","--max-response-bytes","--base","--depth","--kind","--rank","--direction"]);function wb(e){let t=[],n=0;for(;n=e.length?e:[e[n],...t,...e.slice(n+1)]}async function xb(e){let t=wb(e),[n,...s]=t;if(!n||n==="help"||n==="--help"||n==="-h"){R.stdout.write(lf);return}if(n==="version"||n==="--version"){R.stdout.write(fe+` +`);return}if(n==="rewrite"){let{rewriteCommand:_}=await Promise.resolve().then(()=>(nl(),af)),k=_(s.join(" "));if(!k){R.exitCode=1;return}R.stdout.write(k+` +`);return}if(n==="mcp"){let{runMcpServer:_}=await Promise.resolve().then(()=>(tl(),rf));await _(yb(s));return}let r=_b(s);if(!H(r.repo))throw new Error(`--repo path does not exist: ${r.repo}`);if(!xe(r.repo).isDirectory())throw new Error(`--repo path is not a directory: ${r.repo}`);let o=!hb.has(n)&&!(n==="embed"&&r.positional!=="build"),a;o&&!r.noAst&&(a=Pe(r.repo,{maxFileBytes:r.maxBytes,maxFiles:r.maxFiles,gitignore:r.gitignore,ignoreDirs:r.ignoreDirs.length?r.ignoreDirs:void 0}));let l=!1,c=async()=>{l||r.noAst||!a||(await et(wt(a.files.map(_=>_.ext))),l=!0)},d=r.indexDir??ft,m=!1,u,f,p=async()=>{if(u)return u;if(m)return f;if(m=!0,!r.noIndexCache)return u=Ds(r.repo,{...$n(r,a),workers:r.workers},c,d).then(_=>(_&&(f={scan:_.scan,arts:_.arts,loadArtifacts:_.loadArtifacts}),f)),u},g,h=async()=>{let _=(await p())?.scan;return _||(g??=c().then(()=>ut(r.repo,{...$n(r,a),workers:r.workers})))},y,S=async()=>{let _=await p();return _?.arts?_.arts:_?_.arts??=_.loadArtifacts?.()??vt(_.scan,$n(r,a)):y??=h().then(k=>vt(k,$n(r,a)))};if(n==="index"){if(!r.out)throw new Error("index needs --out ");let _=r.out;_t(_,{recursive:!0});let k=I(_,"cache.json"),b,w={};try{let B=JSON.parse(Q(k,"utf8"));B.schemaVersion===5&&B.extractorVersion===14&&(b=new Map(Object.entries(B.files)),w={engineVersion:B.engineVersion,commit:B.commit,graphSha1:B.graphSha1,symbolsSha1:B.symbolsSha1,embed:B.embed})}catch{}await c();let v=await ut(r.repo,{...$n(r,a),cache:b,out:_,workers:r.workers}),A=Rt(r.repo),N=A?Wt(A):void 0,T=I(_,"graph.json"),U=I(_,"symbols.json"),te=I(_,"embeddings.bin"),V=B=>{try{return Ce(Q(B))}catch{return}},z=B=>{let se={};for(let J of v.files){let ne={hash:J.hash,record:J,size:J.size},be=v.mtimes.get(J.rel);be!==void 0&&(ne.mtimeMs=be),se[J.rel]=ne}Me(k,JSON.stringify({schemaVersion:5,extractorVersion:14,engineVersion:fe,commit:v.commit,graphSha1:B.graphSha1,symbolsSha1:B.symbolsSha1,embed:B.embed,files:se})+` +`)},P=!N||w.embed!==void 0&&w.embed.embedVersion===it&&w.embed.modelId===N.modelId&&w.embed.sha1!==void 0&&V(te)===w.embed.sha1;if(v.contentUnchanged&&w.engineVersion===fe&&w.commit===v.commit&&w.graphSha1!==void 0&&V(T)===w.graphSha1&&w.symbolsSha1!==void 0&&V(U)===w.symbolsSha1&&P)v.cacheDirty&&z(w),R.stderr.write(`codeindex: ${v.files.length} files \u2192 ${_}/graph.json + symbols.json${v.capped?" (capped)":""} (unchanged \u2014 artifacts reused) +`);else{let{graph:B,symbols:se}=vt(v),J=Fn(B),ne=zs(se);Me(T,J),Me(U,ne);let be="",Ie;if(N){let X=an(v,N),Z=ui(X);Me(te,Z),Ie={embedVersion:it,modelId:N.modelId,sha1:Ce(Z)},be=` + embeddings.bin (${X.records.length} records, model ${N.modelId})`}z({graphSha1:Ce(J),symbolsSha1:Ce(ne),embed:Ie}),R.stderr.write(`codeindex: ${v.files.length} files \u2192 ${_}/graph.json + symbols.json${be}${v.capped?" (capped)":""} +`)}}else if(n==="scan"){let _=ir(r.repo,$n(r,a)),k={engineVersion:fe,commit:_.commit,fileCount:_.fileCount,languages:_.languages,capped:_.capped};oe(JSON.stringify(k,null,2)+` +`,r.out)}else if(n==="graph"){let{graph:_}=await S();oe(Fn(_),r.out)}else if(n==="symbols"){let{symbols:_}=await S();oe(zs(_),r.out)}else if(n==="scip"){let _=await h(),k=va(_,{projectRoot:r.projectRoot}),b=r.out??Ee("index.scip");b==="-"?R.stdout.write(F.from(k)):(Me(b,k),R.stderr.write(`codeindex: SCIP index \u2192 ${b} (${k.length} bytes) +`))}else if(n==="callers"){let _=await h(),k=Yt(_,void 0,{recall:r.recall}),b={};for(let[w,v]of k)b[w]=v;oe(JSON.stringify(b,null,2)+` +`,r.out)}else if(n==="hierarchy"){let _=await h(),k=vn(_,mr(_));if(r.positional){let b=k.get(r.positional);if(!b)throw new Error(`no type named ${r.positional}`);oe(JSON.stringify(b,null,2)+` +`,r.out)}else{let b={};for(let[w,v]of k)b[w]=v;oe(JSON.stringify(b,null,2)+` +`,r.out)}}else if(n==="implementations"){if(!r.positional)throw new Error("implementations needs a type name: cli.mjs implementations --repo ");let _=await h(),k=vn(_,mr(_));if(!k.has(r.positional))throw new Error(`no type named ${r.positional}`);oe(JSON.stringify({name:r.positional,implementations:ur(k,r.positional)},null,2)+` +`,r.out)}else if(n==="callgraph"){if(!r.positional)throw new Error("callgraph needs a symbol: cli.mjs callgraph --repo ");let _=await h(),k=pr(_,mr(_)),b=gr(k,r.positional,{...r.depth!==void 0?{depth:r.depth}:{},...r.direction?{direction:r.direction}:{}});if(!b.root.length)throw new Error(`no symbol named ${r.positional}`);oe(JSON.stringify(b,null,2)+` +`,r.out)}else if(n==="search"){if(!r.positional)throw new Error('search needs a query: cli.mjs search "" --repo ');let _=await h(),k={limit:r.limit,fuzzy:r.fuzzy,...r.exact?{exact:!0}:{},...r.rank?{rank:r.rank}:{}},b=()=>{let{explain:w}=nn(_,r.positional,k);w.note&&R.stderr.write(`codeindex: ${w.note} +`)};if(r.semantic){let w=Ut(),v=()=>{let A=Dt(_,r.positional,k);oe(JSON.stringify(A,null,2)+` +`,r.out)};if(w)try{let A=await Or(_),N=await Nr(r.positional),T=ln(_,r.positional,A,{queryVec:N,limit:r.limit,fuzzy:r.fuzzy});oe(JSON.stringify(T,null,2)+` +`,r.out)}catch(A){R.stderr.write(`codeindex: embedding endpoint ${w} unavailable (${A instanceof Error?A.message:A}) \u2014 returning lexical results +`),v()}else{let A=Rt(r.repo),N=A?Wt(A):void 0;if(!N)R.stderr.write("codeindex: semantic search unavailable (no embedding model or endpoint) \u2014 returning lexical results; run `codeindex embed pull` or set CODEINDEX_EMBED_ENDPOINT to enable it\n"),v();else{let T=an(_,N),U=ln(_,r.positional,T,{model:N,limit:r.limit,fuzzy:r.fuzzy});oe(JSON.stringify(U,null,2)+` +`,r.out)}}b()}else{let{results:w,explain:v}=nn(_,r.positional,k);oe(JSON.stringify(r.explain?{results:w,explain:v}:w,null,2)+` +`,r.out),v.note&&R.stderr.write(`codeindex: ${v.note} +`)}}else if(n==="embed"){let _=r.positional,k=Rt(r.repo);if(_==="status"){let b=k?Wt(k):void 0,w=Ut(),A={embedVersion:it,mode:w?"endpoint":b?"static":"none",model:b?{present:!0,dir:k,modelId:b.modelId,dim:b.dim,vocabSize:b.vocabSize}:{present:!1},endpoint:w??null};w&&(A.endpointReachable=await Fr(w)),oe(JSON.stringify(A,null,2)+` +`,r.out)}else if(_==="serve"){let b=["run","-d","-p","8756:8756","ghcr.io/maxgfr/codeindex-embed:latest"],w=`docker ${b.join(" ")}`;if(!at("docker")){R.stderr.write(`codeindex: docker not found on PATH. Install Docker, then run: `+w+` -`),R.exitCode=1;return}if(s.run){R.stderr.write(`codeindex: starting embedding server \u2192 ${w} +`),R.exitCode=1;return}if(r.run){R.stderr.write(`codeindex: starting embedding server \u2192 ${w} `);let v=pe("docker",b);if(v.stdout.trim()&&R.stdout.write(v.stdout.trim()+` `),!v.ok){R.stderr.write(v.stderr||`codeindex: docker run failed `),R.exitCode=1;return}R.stderr.write(`codeindex: server starting on http://localhost:8756 \u2014 then: CODEINDEX_EMBED_ENDPOINT=http://localhost:8756 codeindex search "" --repo . --semantic `)}else R.stdout.write(w+` -`),R.stderr.write('codeindex: run the line above to start the embedding server (or `embed serve --run`), then:\n CODEINDEX_EMBED_ENDPOINT=http://localhost:8756 codeindex search "" --repo . --semantic\n')}else if(_==="build"){if(!s.out)throw new Error("embed build needs --out ");if(!k){R.stderr.write("codeindex: no embedding model present \u2014 run `codeindex embed pull` first (nothing written)\n"),R.exitCode=1;return}let b=Wt(k);_t(s.out,{recursive:!0});let w=await h(),v=an(w,b);Me(I(s.out,"embeddings.bin"),ci(v)),R.stderr.write(`codeindex: ${v.records.length} embedding records \u2192 ${s.out}/embeddings.bin (model ${b.modelId}) -`)}else if(_==="pull"){let{url:b,sha256:w}=va(),v=R.env.CODEINDEX_EMBED_DIR??I(s.repo,".codeindex","models");_t(v,{recursive:!0}),R.stderr.write(`codeindex: fetching model from ${b} \u2192 ${I(v,"model.json")} -`);let A;try{A=await du(b,w)}catch(F){R.stderr.write(`codeindex: pull failed \u2014 ${F instanceof Error?F.message:String(F)} (nothing written) -`),R.exitCode=1;return}try{Ea(JSON.parse(A),b)}catch(F){R.stderr.write(`codeindex: pull failed \u2014 response is not a valid model.json (${F instanceof Error?F.message:String(F)}) (nothing written) +`),R.stderr.write('codeindex: run the line above to start the embedding server (or `embed serve --run`), then:\n CODEINDEX_EMBED_ENDPOINT=http://localhost:8756 codeindex search "" --repo . --semantic\n')}else if(_==="build"){if(!r.out)throw new Error("embed build needs --out ");if(!k){R.stderr.write("codeindex: no embedding model present \u2014 run `codeindex embed pull` first (nothing written)\n"),R.exitCode=1;return}let b=Wt(k);_t(r.out,{recursive:!0});let w=await h(),v=an(w,b);Me(I(r.out,"embeddings.bin"),ui(v)),R.stderr.write(`codeindex: ${v.records.length} embedding records \u2192 ${r.out}/embeddings.bin (model ${b.modelId}) +`)}else if(_==="pull"){let{url:b,sha256:w}=Ma(),v=R.env.CODEINDEX_EMBED_DIR??I(r.repo,".codeindex","models");_t(v,{recursive:!0}),R.stderr.write(`codeindex: fetching model from ${b} \u2192 ${I(v,"model.json")} +`);let A;try{A=await _u(b,w)}catch(N){R.stderr.write(`codeindex: pull failed \u2014 ${N instanceof Error?N.message:String(N)} (nothing written) +`),R.exitCode=1;return}try{Ra(JSON.parse(A),b)}catch(N){R.stderr.write(`codeindex: pull failed \u2014 response is not a valid model.json (${N instanceof Error?N.message:String(N)}) (nothing written) `),R.exitCode=1;return}Me(I(v,"model.json"),A),R.stderr.write(`codeindex: model written to ${I(v,"model.json")} -`)}else throw new Error("embed needs a subcommand: status | build | pull | serve")}else if(n==="lsp"){if(s.positional!=="status")throw new Error("lsp needs a subcommand: status");oe(JSON.stringify(await Dr(await h(),s.repo,s.probe===!0),null,2)+` -`,s.out)}else if(n==="grammars"){let _=s.positional,k=xn();if(_==="status"){let b=Qe(),w=V=>b.dirs.some(z=>H(I(z,V))),v=w("web-tree-sitter.wasm"),A=$s(),F=V=>[...V].filter(z=>w(`${z}.wasm`)).sort(),T=F(Zn),U=F(Yn),te={engineVersion:fe,tier:b.tier,dir:b.dir??null,dirs:b.dirs,cacheDir:k,runtimePresent:v,pullNeeded:!v,core:{resolved:T.length,of:Zn.size,missing:[...Zn].filter(V=>!T.includes(V)).sort()},extended:{resolved:U.length,of:Yn.size,missing:[...Yn].filter(V=>!U.includes(V)).sort()},url:A.url};oe(JSON.stringify(te,null,2)+` -`,s.out)}else if(_==="pull"){let b=await ar(k,{onNote:w=>R.stderr.write(w)});R.stderr.write(b.message),b.ok||(R.exitCode=1)}else throw new Error("grammars needs a subcommand: status | pull")}else if(n==="rules"){if(!s.config)throw new Error("rules needs --config ");let _=Lr(JSON.parse(Q(s.config,"utf8"))),{graph:k}=await S(),b=jr(k,_),w=b.filter(v=>v.severity==="error").length;oe(JSON.stringify({errors:w,warnings:b.length-w,violations:b},null,2)+` -`,s.out),w>0&&(R.exitCode=1)}else if(n==="workspaces"){let _=rn(s.repo);oe(JSON.stringify({packages:_.packages,cycle:_.cycle??null,topoOrder:_.topoOrder},null,2)+` -`,s.out)}else if(n==="churn"){let{churn:_,ok:k}=Ze(s.repo,{since:s.since}),b={};for(let w of[..._.keys()].sort())b[w]=_.get(w);oe(JSON.stringify({ok:k,churn:b},null,2)+` -`,s.out)}else if(n==="repomap"){let{scan:_,graph:k}=await S();oe(cn(_,k,{budgetTokens:s.budgetTokens}),s.out)}else if(n==="hotspots"){let _=await h(),{churn:k,ok:b}=Ze(s.repo,{since:s.since});oe(JSON.stringify({churnOk:b,hotspots:dn(_,k)},null,2)+` -`,s.out)}else if(n==="coupling"){let{ok:_,couplings:k}=Pr(s.repo,{since:s.since});oe(JSON.stringify({ok:_,couplings:k},null,2)+` -`,s.out)}else if(n==="deadcode")oe(JSON.stringify(Wr(await h()),null,2)+` -`,s.out);else if(n==="literals"){let _=sn(await h(),{minFiles:s.minFiles,minCount:s.minCount,includeTests:s.includeTests});oe(JSON.stringify(_,null,2)+` -`,s.out)}else if(n==="complexity"){let _=await h();oe(JSON.stringify(yr(_,s.positional),null,2)+` -`,s.out)}else if(n==="risk"){let _=await h(),{churn:k,ok:b}=Ze(s.repo,{since:s.since});oe(JSON.stringify({churnOk:b,risks:br(_,k)},null,2)+` -`,s.out)}else if(n==="delta"){let{graph:_,symbols:k}=await S(),b=Ga(s.repo,_,k,{base:s.base,staged:s.staged,depth:s.depth});if("error"in b)throw new Error(b.error);oe(s.json?JSON.stringify(b,null,2)+` -`:qa(b),s.out)}else if(n==="impact"){if(!s.positional)throw new Error("impact needs a target: cli.mjs impact --repo ");let{graph:_}=await S(),k=Br(_,s.positional,s.depth??1/0);if(!k)throw new Error(`no such file or module in the index: ${s.positional}`);oe(JSON.stringify(k,null,2)+` -`,s.out)}else if(n==="neighbors"){if(!s.positional)throw new Error("neighbors needs a target: cli.mjs neighbors --repo ");let{graph:_}=await S(),k=s.kind?new Set(s.kind.split(",").map(w=>w.trim()).filter(Boolean)):void 0,b=za(_,s.positional,s.depth??1,k);if(!b)throw new Error(`no such file or module in the index: ${s.positional}`);oe(JSON.stringify(b,null,2)+` -`,s.out)}else if(n==="mermaid"){let{graph:_}=await S();oe(Ur(_,{module:s.positional}),s.out)}else if(n==="grep"){if(!s.positional)throw new Error("grep needs a pattern: cli.mjs grep --repo ");let k=[...s.scope?[`${s.scope.replace(/\/+$/,"")}/**`]:[],...s.include,...s.exclude.map(w=>`!${w}`)],b=Rr(s.repo,s.positional,{globs:k.length?k:void 0,ignoreCase:s.ignoreCase,maxHits:s.maxHits});oe(JSON.stringify(b,null,2)+` -`,s.out)}else R.stderr.write(`unknown command: ${n} +`)}else throw new Error("embed needs a subcommand: status | build | pull | serve")}else if(n==="lsp"){if(r.positional!=="status")throw new Error("lsp needs a subcommand: status");oe(JSON.stringify(await Lr(await h(),r.repo,r.probe===!0),null,2)+` +`,r.out)}else if(n==="grammars"){let _=r.positional,k=Sn();if(_==="status"){let b=Qe(),w=V=>b.dirs.some(z=>H(I(z,V))),v=w("web-tree-sitter.wasm"),A=Ls(),N=V=>[...V].filter(z=>w(`${z}.wasm`)).sort(),T=N(Yn),U=N(Qn),te={engineVersion:fe,tier:b.tier,dir:b.dir??null,dirs:b.dirs,cacheDir:k,runtimePresent:v,pullNeeded:!v,core:{resolved:T.length,of:Yn.size,missing:[...Yn].filter(V=>!T.includes(V)).sort()},extended:{resolved:U.length,of:Qn.size,missing:[...Qn].filter(V=>!U.includes(V)).sort()},url:A.url};oe(JSON.stringify(te,null,2)+` +`,r.out)}else if(_==="pull"){let b=await lr(k,{onNote:w=>R.stderr.write(w)});R.stderr.write(b.message),b.ok||(R.exitCode=1)}else throw new Error("grammars needs a subcommand: status | pull")}else if(n==="rules"){if(!r.config)throw new Error("rules needs --config ");let _=jr(JSON.parse(Q(r.config,"utf8"))),{graph:k}=await S(),b=Wr(k,_),w=b.filter(v=>v.severity==="error").length;oe(JSON.stringify({errors:w,warnings:b.length-w,violations:b},null,2)+` +`,r.out),w>0&&(R.exitCode=1)}else if(n==="workspaces"){let _=rn(r.repo);oe(JSON.stringify({packages:_.packages,cycle:_.cycle??null,topoOrder:_.topoOrder},null,2)+` +`,r.out)}else if(n==="churn"){let{churn:_,ok:k}=Ze(r.repo,{since:r.since}),b={};for(let w of[..._.keys()].sort())b[w]=_.get(w);oe(JSON.stringify({ok:k,churn:b},null,2)+` +`,r.out)}else if(n==="repomap"){let{scan:_,graph:k}=await S();oe(cn(_,k,{budgetTokens:r.budgetTokens}),r.out)}else if(n==="hotspots"){let _=await h(),{churn:k,ok:b}=Ze(r.repo,{since:r.since});oe(JSON.stringify({churnOk:b,hotspots:dn(_,k)},null,2)+` +`,r.out)}else if(n==="coupling"){let{ok:_,couplings:k}=$r(r.repo,{since:r.since});oe(JSON.stringify({ok:_,couplings:k},null,2)+` +`,r.out)}else if(n==="deadcode")oe(JSON.stringify(Ur(await h()),null,2)+` +`,r.out);else if(n==="literals"){let _=sn(await h(),{minFiles:r.minFiles,minCount:r.minCount,includeTests:r.includeTests});oe(JSON.stringify(_,null,2)+` +`,r.out)}else if(n==="complexity"){let _=await h();oe(JSON.stringify(br(_,r.positional),null,2)+` +`,r.out)}else if(n==="risk"){let _=await h(),{churn:k,ok:b}=Ze(r.repo,{since:r.since});oe(JSON.stringify({churnOk:b,risks:wr(_,k)},null,2)+` +`,r.out)}else if(n==="delta"){let{graph:_,symbols:k}=await S(),b=Va(r.repo,_,k,{base:r.base,staged:r.staged,depth:r.depth});if("error"in b)throw new Error(b.error);oe(r.json?JSON.stringify(b,null,2)+` +`:Ja(b),r.out)}else if(n==="impact"){if(!r.positional)throw new Error("impact needs a target: cli.mjs impact --repo ");let{graph:_}=await S(),k=zr(_,r.positional,r.depth??1/0);if(!k)throw new Error(`no such file or module in the index: ${r.positional}`);oe(JSON.stringify(k,null,2)+` +`,r.out)}else if(n==="neighbors"){if(!r.positional)throw new Error("neighbors needs a target: cli.mjs neighbors --repo ");let{graph:_}=await S(),k=r.kind?new Set(r.kind.split(",").map(w=>w.trim()).filter(Boolean)):void 0,b=qa(_,r.positional,r.depth??1,k);if(!b)throw new Error(`no such file or module in the index: ${r.positional}`);oe(JSON.stringify(b,null,2)+` +`,r.out)}else if(n==="mermaid"){let{graph:_}=await S();oe(Br(_,{module:r.positional}),r.out)}else if(n==="grep"){if(!r.positional)throw new Error("grep needs a pattern: cli.mjs grep --repo ");let k=[...r.scope?[`${r.scope.replace(/\/+$/,"")}/**`]:[],...r.include,...r.exclude.map(w=>`!${w}`)],b=Mr(r.repo,r.positional,{globs:k.length?k:void 0,ignoreCase:r.ignoreCase,maxHits:r.maxHits});oe(JSON.stringify(b,null,2)+` +`,r.out)}else R.stderr.write(`unknown command: ${n} -${tf}`),R.exitCode=2}Se();E();Se();nt();var tl="/grammars",nl="web-tree-sitter.wasm";function nf(e){sf(nl,e)}function rf(e,t){sf(`${e}.wasm`,t)}function sf(e,t){rs(`${tl}/${e}`,t),R.env.CODEINDEX_GRAMMAR_DIR=tl}function of(e){return`${e}.wasm`}async function _b(e,t){let n=wt(e);if(!n.length)return{tier:"regex",loaded:[],failed:[],note:"no language here ships a tree-sitter grammar"};try{nf(await t(nl))}catch(o){return{tier:"regex",loaded:[],failed:[...n],note:`tree-sitter runtime unavailable (${o.message})`}}await Promise.all(n.map(async o=>{try{rf(o,await t(of(o)))}catch{}})),await et(n);let r=n.filter(o=>tt(o)).sort(),s=n.filter(o=>!tt(o)).sort();return{tier:r.length?"ast":"regex",loaded:r,failed:s,note:s.length?`${s.join(", ")} could not load; those languages use the regex tier`:""}}export{Zn as CORE_GRAMMARS,Ha as DEFAULT_DELTA_DEPTH,Bo as DEFAULT_GRAMMARS_URL,Mf as DEFAULT_MAX_FILES,it as EMBED_VERSION,fe as ENGINE_VERSION,Yn as EXTENDED_GRAMMARS,pn as EXTRACTOR_VERSION,Ms as EXT_GRAMMAR,tl as GRAMMARS_DIR,ft as INDEX_DIR,pi as LspTimeout,to as MARKDOWN_EXT,xu as MAX_FRAME_BYTES,Mt as RISK_WEIGHTS,nl as RUNTIME_WASM,He as SCHEMA_VERSION,$a as agreementOf,bo as allGrammarKeys,ea as applyCentrality,uu as basicTokenize,Fd as betweennessOf,vt as buildArtifactsFromScan,Yt as buildCallerIndex,Fs as buildCodeRecord,an as buildEmbeddingIndex,Fr as buildEndpointIndex,oa as buildGraph,uy as buildIndexArtifacts,Ko as buildModules,Jg as buildRawCallerIndex,Vo as buildResolveContext,mr as buildSymbolGraph,Qo as buildSymbolIndex,En as buildTypeHierarchy,no as byKey,M as byStr,ig as categorize,Pr as changeCoupling,Cf as changedSince,jr as checkRules,Hn as classify,wf as clip,xf as clipInline,Tu as columnOfSymbol,Q_ as communityOf,bt as compileGlobs,Ks as complexityOfSource,Uu as computeDelta,fr as computeImportPairs,ni as computeSurprises,Yo as computeSymbolRefs,_r as computeTestMap,Ta as createFramer,_a as deleteMemory,Ga as deltaFor,Sy as deserializeEmbeddings,wa as detectCommunities,rn as detectWorkspaces,Ji as diffFiles,Ki as diffHunks,_u as embedEndpointUrl,Ma as embedViaEndpoint,li as embeddingUnits,Vg as enclosingSymbol,Ar as encode,fi as encodeMessage,Nr as encodeQueryViaEndpoint,et as ensureGrammars,qe as escapeRegExp,nn as explainQuery,Vt as extToLang,Ao as extractAst,Fo as extractCode,gd as extractGrammarsTarball,ad as extractInParallel,ro as extractMarkdown,Qi as extractSymbols,ag as extractTags,pd as extractTarInto,md as fetchExpectedSha256,ud as fetchGrammarsTarball,un as fileUri,Wr as findDeadCode,sn as findLiteralDuplications,ca as findReferences,An as findSymbol,ht as foldText,qa as formatDeltaPanel,Ze as gitChurn,Qn as grammarKeyForExt,wt as grammarKeysForExts,tt as grammarReady,of as grammarWasmName,Rr as grepRepo,yy as hasEmbedModel,gf as hasFileBytes,at as have,ds as headCommit,hu as healthzUrl,Lu as hubThreshold,Br as impactOf,dr as implementationsOf,ua as insertAfterSymbol,fa as insertBeforeSymbol,Ra as intDot,ac as isCode,oc as isDoc,qi as isGitWorktree,ls as isIgnored,gh as isSurprising,js as isTestFile,$t as isTestPath,$o as keptCodeFiles,is as keywords,eo as languageOf,ha as listMemories,Wt as loadEmbedModel,_b as loadGrammars,_i as loadLspConfig,mi as locationsToRefs,Dr as lspStatus,Bt as lspUnavailable,ul as mountFiles,rf as mountGrammar,nf as mountRuntime,pr as neighborhood,za as neighborsOf,Ca as onboardBrief,Na as openLspSession,hr as pagerankOf,as as parseGitignore,vu as parseLspConfig,Lr as parseRules,jo as preloadArtifacts,Wo as preloadSession,Ir as probeEndpoint,_f as pruneUnfetched,ar as pullGrammars,Cr as quantize,dn as rankHotspots,Sf as rankedKeywords,ga as readMemory,Lo as readPersistedIndex,q as readText,Wa as referencesWithLsp,Su as relFromUri,In as renderGraphJson,Ur as renderMermaid,Gy as renderMermaidClustered,cn as renderRepoMap,ka as renderScip,Us as renderSymbolsJson,da as replaceSymbolBody,pf as resetVfs,hf as residentBytes,Vi as resolveBaseRef,Xo as resolveCallEdges,Jo as resolveDocLink,Ut as resolveEmbedEndpoint,Rt as resolveEmbedModelDir,va as resolveEmbedPullUrl,Hm as resolveGrammarsDir,$s as resolveGrammarsPullTarget,Qe as resolveGrammarsTier,lr as resolveImport,gi as resolveLspConfigPath,Zo as resolveRelationEdges,cr as resolveRelations,Qs as resolveUniqueSymbol,ju as reverseClosure,Qu as rewriteCommand,br as riskHotspots,pu as roundHalfToEven,Wi as rrf,gb as runCli,qp as runExtractWorker,Xu as runMcpServer,Le as scanRepo,ut as scanRepoParallel,sr as scanSummary,Dt as searchIndex,ln as searchSemantic,ci as serializeEmbeddings,Oa as serverForLang,rs as setFileBytes,pe as sh,Ce as sha1,xn as sharedGrammarsCacheDir,$f as shortHash,ji as slugify,La as spawnLspTransport,yt as subtokens,yr as symbolComplexity,tn as symbolId,Wu as symbolsInHunks,la as symbolsOverview,og as tagsQueryStatus,t_ as testsForModule,bd as tierForPath,je as toCacheMap,mu as tokenize,qg as typeEntry,sa as uniqueSymbolDefs,n_ as untestedModules,us as untrackedFiles,Pe as walk,ug as warmGrammars,fu as wordpiece,od as workerCount,xr as writeMemory}; +${lf}`),R.exitCode=2}Se();E();Se();nt();var rl="/grammars",sl="web-tree-sitter.wasm";function cf(e){uf(sl,e)}function df(e,t){uf(`${e}.wasm`,t)}function uf(e,t){ss(`${rl}/${e}`,t),R.env.CODEINDEX_GRAMMAR_DIR=rl}function ff(e){return`${e}.wasm`}async function Sb(e,t){let n=wt(e);if(!n.length)return{tier:"regex",loaded:[],failed:[],note:"no language here ships a tree-sitter grammar"};try{cf(await t(sl))}catch(o){return{tier:"regex",loaded:[],failed:[...n],note:`tree-sitter runtime unavailable (${o.message})`}}await Promise.all(n.map(async o=>{try{df(o,await t(ff(o)))}catch{}})),await et(n);let s=n.filter(o=>tt(o)).sort(),r=n.filter(o=>!tt(o)).sort();return{tier:s.length?"ast":"regex",loaded:s,failed:r,note:r.length?`${r.join(", ")} could not load; those languages use the regex tier`:""}}export{Yn as CORE_GRAMMARS,Ga as DEFAULT_DELTA_DEPTH,Ho as DEFAULT_GRAMMARS_URL,Nf as DEFAULT_MAX_FILES,it as EMBED_VERSION,fe as ENGINE_VERSION,Qn as EXTENDED_GRAMMARS,pn as EXTRACTOR_VERSION,As as EXT_GRAMMAR,rl as GRAMMARS_DIR,ft as INDEX_DIR,_i as LspTimeout,ro as MARKDOWN_EXT,Mu as MAX_FRAME_BYTES,Mt as RISK_WEIGHTS,sl as RUNTIME_WASM,He as SCHEMA_VERSION,La as agreementOf,xo as allGrammarKeys,na as applyCentrality,hu as basicTokenize,jd as betweennessOf,vt as buildArtifactsFromScan,Yt as buildCallerIndex,Ps as buildCodeRecord,an as buildEmbeddingIndex,Or as buildEndpointIndex,la as buildGraph,hy as buildIndexArtifacts,Zo as buildModules,e_ as buildRawCallerIndex,Ko as buildResolveContext,pr as buildSymbolGraph,ta as buildSymbolIndex,vn as buildTypeHierarchy,so as byKey,M as byStr,ug as categorize,$r as changeCoupling,Of as changedSince,Wr as checkRules,qn as classify,Rf as clip,Mf as clipInline,$u as columnOfSymbol,ih as communityOf,bt as compileGlobs,Zs as complexityOfSource,Vu as computeDelta,mr as computeImportPairs,si as computeSurprises,ea as computeSymbolRefs,hr as computeTestMap,Fa as createFramer,ya as deleteMemory,Va as deltaFor,Cy as deserializeEmbeddings,Sa as detectCommunities,rn as detectWorkspaces,Xi as diffFiles,Zi as diffHunks,Su as embedEndpointUrl,Aa as embedViaEndpoint,di as embeddingUnits,Qg as enclosingSymbol,Tr as encode,pi as encodeMessage,Nr as encodeQueryViaEndpoint,et as ensureGrammars,Ge as escapeRegExp,nn as explainQuery,Vt as extToLang,Io as extractAst,Po as extractCode,xd as extractGrammarsTarball,md as extractInParallel,io as extractMarkdown,to as extractSymbols,mg as extractTags,wd as extractTarInto,bd as fetchExpectedSha256,hd as fetchGrammarsTarball,un as fileUri,Ur as findDeadCode,sn as findLiteralDuplications,ua as findReferences,Tn as findSymbol,ht as foldText,Ja as formatDeltaPanel,Ze as gitChurn,er as grammarKeyForExt,wt as grammarKeysForExts,tt as grammarReady,ff as grammarWasmName,Mr as grepRepo,Ey as hasEmbedModel,xf as hasFileBytes,at as have,us as headCommit,ku as healthzUrl,Hu as hubThreshold,zr as impactOf,ur as implementationsOf,ma as insertAfterSymbol,pa as insertBeforeSymbol,Ca as intDot,cc as isCode,lc as isDoc,Ji as isGitWorktree,cs as isIgnored,xh as isSurprising,Us as isTestFile,$t as isTestPath,Lo as keptCodeFiles,os as keywords,no as languageOf,ba as listMemories,Wt as loadEmbedModel,Sb as loadGrammars,yi as loadLspConfig,gi as locationsToRefs,Lr as lspStatus,Bt as lspUnavailable,ml as mountFiles,df as mountGrammar,cf as mountRuntime,gr as neighborhood,qa as neighborsOf,Ta as onboardBrief,Oa as openLspSession,yr as pagerankOf,ls as parseGitignore,Iu as parseLspConfig,jr as parseRules,Uo as preloadArtifacts,Bo as preloadSession,Fr as probeEndpoint,Sf as pruneUnfetched,lr as pullGrammars,Ar as quantize,dn as rankHotspots,Cf as rankedKeywords,ha as readMemory,Wo as readPersistedIndex,G as readText,Ba as referencesWithLsp,Cu as relFromUri,Fn as renderGraphJson,Br as renderMermaid,Zy as renderMermaidClustered,cn as renderRepoMap,va as renderScip,zs as renderSymbolsJson,fa as replaceSymbolBody,wf as resetVfs,kf as residentBytes,Ki as resolveBaseRef,Yo as resolveCallEdges,Xo as resolveDocLink,Ut as resolveEmbedEndpoint,Rt as resolveEmbedModelDir,Ma as resolveEmbedPullUrl,Xm as resolveGrammarsDir,Ls as resolveGrammarsPullTarget,Qe as resolveGrammarsTier,cr as resolveImport,hi as resolveLspConfigPath,Qo as resolveRelationEdges,dr as resolveRelations,ti as resolveUniqueSymbol,qu as reverseClosure,of as rewriteCommand,wr as riskHotspots,wu as roundHalfToEven,Bi as rrf,xb as runCli,Yp as runExtractWorker,nf as runMcpServer,Le as scanRepo,ut as scanRepoParallel,ir as scanSummary,Dt as searchIndex,ln as searchSemantic,ui as serializeEmbeddings,$a as serverForLang,ss as setFileBytes,pe as sh,Ce as sha1,Sn as sharedGrammarsCacheDir,Bf as shortHash,Ui as slugify,Wa as spawnLspTransport,yt as subtokens,br as symbolComplexity,tn as symbolId,Gu as symbolsInHunks,da as symbolsOverview,fg as tagsQueryStatus,a_ as testsForModule,vd as tierForPath,je as toCacheMap,bu as tokenize,Yg as typeEntry,oa as uniqueSymbolDefs,l_ as untestedModules,ms as untrackedFiles,Pe as walk,hg as warmGrammars,yu as wordpiece,fd as workerCount,Sr as writeMemory}; diff --git a/scripts/engine.mjs b/scripts/engine.mjs index 77bcfa7..c023dc5 100755 --- a/scripts/engine.mjs +++ b/scripts/engine.mjs @@ -1850,7 +1850,7 @@ var init_literals = __esm({ } }); -// node_modules/.pnpm/web-tree-sitter@0.26.13/node_modules/web-tree-sitter/web-tree-sitter.js +// node_modules/.pnpm/web-tree-sitter@0.27.0/node_modules/web-tree-sitter/web-tree-sitter.js function assertInternal(x) { if (x !== INTERNAL) throw new Error("Illegal constructor"); } @@ -1860,6 +1860,14 @@ function isPoint(point) { function setModule(module2) { C = module2; } +function newFinalizer(handler) { + try { + return new FinalizationRegistry(handler); + } catch (e) { + console.error("Unsupported FinalizationRegistry:", e); + return; + } +} function getText(tree, startIndex, endIndex, startPosition) { const length = endIndex - startIndex; let result = tree.textCallback(startIndex, startPosition); @@ -2507,7 +2515,7 @@ async function Module2(moduleArg = {}) { newDSO("__main__", 0, wasmImports); } }; - var ___heap_base = 78240; + var ___heap_base = 82240; var alignMemory = /* @__PURE__ */ __name((size, alignment) => Math.ceil(size / alignment) * alignment, "alignMemory"); var getMemory = /* @__PURE__ */ __name((size) => { if (runtimeInitialized) { @@ -3072,12 +3080,12 @@ async function Module2(moduleArg = {}) { "value": "i32", "mutable": false }, 1024); - var ___stack_high = 78240; - var ___stack_low = 12704; + var ___stack_high = 82240; + var ___stack_low = 16704; var ___stack_pointer = new WebAssembly.Global({ "value": "i32", "mutable": true - }, 78240); + }, 82240); var ___table_base = new WebAssembly.Global({ "value": "i32", "mutable": false @@ -3338,7 +3346,7 @@ async function Module2(moduleArg = {}) { Module["loadWebAssemblyModule"] = loadWebAssemblyModule; Module["LE_HEAP_STORE_I64"] = LE_HEAP_STORE_I64; var ASM_CONSTS = {}; - var _malloc, _calloc, _realloc, _free, _ts_range_edit, _memcmp, _ts_language_symbol_count, _ts_language_state_count, _ts_language_abi_version, _ts_language_name, _ts_language_field_count, _ts_language_next_state, _ts_language_symbol_name, _ts_language_symbol_for_name, _strncmp, _ts_language_symbol_type, _ts_language_field_name_for_id, _ts_lookahead_iterator_new, _ts_lookahead_iterator_delete, _ts_lookahead_iterator_reset_state, _ts_lookahead_iterator_reset, _ts_lookahead_iterator_next, _ts_lookahead_iterator_current_symbol, _ts_point_edit, _ts_parser_delete, _ts_parser_reset, _ts_parser_set_language, _ts_parser_set_included_ranges, _ts_query_new, _ts_query_delete, _iswspace, _iswalnum, _ts_query_pattern_count, _ts_query_capture_count, _ts_query_string_count, _ts_query_capture_name_for_id, _ts_query_capture_quantifier_for_id, _ts_query_string_value_for_id, _ts_query_predicates_for_pattern, _ts_query_start_byte_for_pattern, _ts_query_end_byte_for_pattern, _ts_query_is_pattern_rooted, _ts_query_is_pattern_non_local, _ts_query_is_pattern_guaranteed_at_step, _ts_query_disable_capture, _ts_query_disable_pattern, _ts_tree_copy, _ts_tree_delete, _ts_init, _ts_parser_new_wasm, _ts_parser_enable_logger_wasm, _ts_parser_parse_wasm, _ts_parser_included_ranges_wasm, _ts_language_type_is_named_wasm, _ts_language_type_is_visible_wasm, _ts_language_metadata_wasm, _ts_language_supertypes_wasm, _ts_language_subtypes_wasm, _ts_tree_root_node_wasm, _ts_tree_root_node_with_offset_wasm, _ts_tree_edit_wasm, _ts_tree_included_ranges_wasm, _ts_tree_get_changed_ranges_wasm, _ts_tree_cursor_new_wasm, _ts_tree_cursor_copy_wasm, _ts_tree_cursor_delete_wasm, _ts_tree_cursor_reset_wasm, _ts_tree_cursor_reset_to_wasm, _ts_tree_cursor_goto_first_child_wasm, _ts_tree_cursor_goto_last_child_wasm, _ts_tree_cursor_goto_first_child_for_index_wasm, _ts_tree_cursor_goto_first_child_for_position_wasm, _ts_tree_cursor_goto_next_sibling_wasm, _ts_tree_cursor_goto_previous_sibling_wasm, _ts_tree_cursor_goto_descendant_wasm, _ts_tree_cursor_goto_parent_wasm, _ts_tree_cursor_current_node_type_id_wasm, _ts_tree_cursor_current_node_state_id_wasm, _ts_tree_cursor_current_node_is_named_wasm, _ts_tree_cursor_current_node_is_missing_wasm, _ts_tree_cursor_current_node_id_wasm, _ts_tree_cursor_start_position_wasm, _ts_tree_cursor_end_position_wasm, _ts_tree_cursor_start_index_wasm, _ts_tree_cursor_end_index_wasm, _ts_tree_cursor_current_field_id_wasm, _ts_tree_cursor_current_depth_wasm, _ts_tree_cursor_current_descendant_index_wasm, _ts_tree_cursor_current_node_wasm, _ts_node_symbol_wasm, _ts_node_field_name_for_child_wasm, _ts_node_field_name_for_named_child_wasm, _ts_node_children_by_field_id_wasm, _ts_node_first_child_for_byte_wasm, _ts_node_first_named_child_for_byte_wasm, _ts_node_grammar_symbol_wasm, _ts_node_child_count_wasm, _ts_node_named_child_count_wasm, _ts_node_child_wasm, _ts_node_named_child_wasm, _ts_node_child_by_field_id_wasm, _ts_node_next_sibling_wasm, _ts_node_prev_sibling_wasm, _ts_node_next_named_sibling_wasm, _ts_node_prev_named_sibling_wasm, _ts_node_descendant_count_wasm, _ts_node_parent_wasm, _ts_node_child_with_descendant_wasm, _ts_node_descendant_for_index_wasm, _ts_node_named_descendant_for_index_wasm, _ts_node_descendant_for_position_wasm, _ts_node_named_descendant_for_position_wasm, _ts_node_start_point_wasm, _ts_node_end_point_wasm, _ts_node_start_index_wasm, _ts_node_end_index_wasm, _ts_node_to_string_wasm, _ts_node_children_wasm, _ts_node_named_children_wasm, _ts_node_descendants_of_type_wasm, _ts_node_is_named_wasm, _ts_node_has_changes_wasm, _ts_node_has_error_wasm, _ts_node_is_error_wasm, _ts_node_is_missing_wasm, _ts_node_is_extra_wasm, _ts_node_parse_state_wasm, _ts_node_next_parse_state_wasm, _ts_query_matches_wasm, _ts_query_captures_wasm, _memset, _memcpy, _memmove, _iswalpha, _iswblank, _iswdigit, _iswlower, _iswupper, _iswxdigit, _memchr, _strlen, _strcmp, _strncat, _strncpy, _towlower, _towupper, _setThrew, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, ___wasm_apply_data_relocs; + var _malloc, _calloc, _realloc, _free, _ts_range_edit, _memcmp, _ts_language_symbol_count, _ts_language_state_count, _ts_language_abi_version, _ts_language_name, _ts_language_field_count, _ts_language_next_state, _ts_language_symbol_name, _ts_language_symbol_for_name, _strncmp, _ts_language_symbol_type, _ts_language_field_name_for_id, _ts_lookahead_iterator_new, _ts_lookahead_iterator_delete, _ts_lookahead_iterator_reset_state, _ts_lookahead_iterator_reset, _ts_lookahead_iterator_next, _ts_lookahead_iterator_current_symbol, _ts_point_edit, _ts_parser_delete, _ts_parser_reset, _ts_parser_set_language, _ts_parser_set_included_ranges, _ts_query_new, _ts_query_delete, _iswspace, _iswalnum, _ts_query_copy, _ts_query_pattern_count, _ts_query_capture_count, _ts_query_string_count, _ts_query_capture_name_for_id, _ts_query_capture_quantifier_for_id, _ts_query_string_value_for_id, _ts_query_predicates_for_pattern, _ts_query_start_byte_for_pattern, _ts_query_end_byte_for_pattern, _ts_query_is_pattern_rooted, _ts_query_is_pattern_non_local, _ts_query_is_pattern_guaranteed_at_step, _ts_query_disable_capture, _ts_query_disable_pattern, _ts_tree_copy, _ts_tree_delete, _ts_init, _ts_parser_new_wasm, _ts_parser_enable_logger_wasm, _ts_parser_parse_wasm, _ts_parser_included_ranges_wasm, _ts_language_type_is_named_wasm, _ts_language_type_is_visible_wasm, _ts_language_metadata_wasm, _ts_language_supertypes_wasm, _ts_language_subtypes_wasm, _ts_tree_root_node_wasm, _ts_tree_root_node_with_offset_wasm, _ts_tree_edit_wasm, _ts_tree_included_ranges_wasm, _ts_tree_get_changed_ranges_wasm, _ts_tree_cursor_new_wasm, _ts_tree_cursor_copy_wasm, _ts_tree_cursor_delete_wasm, _ts_tree_cursor_reset_wasm, _ts_tree_cursor_reset_to_wasm, _ts_tree_cursor_goto_first_child_wasm, _ts_tree_cursor_goto_last_child_wasm, _ts_tree_cursor_goto_first_child_for_index_wasm, _ts_tree_cursor_goto_first_child_for_position_wasm, _ts_tree_cursor_goto_next_sibling_wasm, _ts_tree_cursor_goto_previous_sibling_wasm, _ts_tree_cursor_goto_descendant_wasm, _ts_tree_cursor_goto_parent_wasm, _ts_tree_cursor_current_node_type_id_wasm, _ts_tree_cursor_current_node_state_id_wasm, _ts_tree_cursor_current_node_is_named_wasm, _ts_tree_cursor_current_node_is_missing_wasm, _ts_tree_cursor_current_node_id_wasm, _ts_tree_cursor_start_position_wasm, _ts_tree_cursor_end_position_wasm, _ts_tree_cursor_start_index_wasm, _ts_tree_cursor_end_index_wasm, _ts_tree_cursor_current_field_id_wasm, _ts_tree_cursor_current_depth_wasm, _ts_tree_cursor_current_descendant_index_wasm, _ts_tree_cursor_current_node_wasm, _ts_node_symbol_wasm, _ts_node_field_name_for_child_wasm, _ts_node_field_name_for_named_child_wasm, _ts_node_children_by_field_id_wasm, _ts_node_first_child_for_byte_wasm, _ts_node_first_named_child_for_byte_wasm, _ts_node_grammar_symbol_wasm, _ts_node_child_count_wasm, _ts_node_named_child_count_wasm, _ts_node_child_wasm, _ts_node_named_child_wasm, _ts_node_child_by_field_id_wasm, _ts_node_next_sibling_wasm, _ts_node_prev_sibling_wasm, _ts_node_next_named_sibling_wasm, _ts_node_prev_named_sibling_wasm, _ts_node_descendant_count_wasm, _ts_node_parent_wasm, _ts_node_child_with_descendant_wasm, _ts_node_descendant_for_index_wasm, _ts_node_named_descendant_for_index_wasm, _ts_node_descendant_for_position_wasm, _ts_node_named_descendant_for_position_wasm, _ts_node_start_point_wasm, _ts_node_end_point_wasm, _ts_node_start_index_wasm, _ts_node_end_index_wasm, _ts_node_to_string_wasm, _ts_node_children_wasm, _ts_node_named_children_wasm, _ts_node_descendants_of_type_wasm, _ts_node_is_named_wasm, _ts_node_has_changes_wasm, _ts_node_has_error_wasm, _ts_node_is_error_wasm, _ts_node_is_missing_wasm, _ts_node_is_extra_wasm, _ts_node_parse_state_wasm, _ts_node_next_parse_state_wasm, _ts_query_matches_wasm, _ts_query_captures_wasm, _memset, _memcpy, _memmove, _iswalpha, _iswblank, _iswdigit, _iswlower, _iswpunct, _iswupper, _iswxdigit, _memchr, _strlen, _strcmp, _strncat, _strncpy, _towlower, _towupper, _setThrew, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, ___wasm_apply_data_relocs; function assignWasmExports(wasmExports2) { Module["_malloc"] = _malloc = wasmExports2["malloc"]; Module["_calloc"] = _calloc = wasmExports2["calloc"]; @@ -3372,6 +3380,7 @@ async function Module2(moduleArg = {}) { Module["_ts_query_delete"] = _ts_query_delete = wasmExports2["ts_query_delete"]; Module["_iswspace"] = _iswspace = wasmExports2["iswspace"]; Module["_iswalnum"] = _iswalnum = wasmExports2["iswalnum"]; + Module["_ts_query_copy"] = _ts_query_copy = wasmExports2["ts_query_copy"]; Module["_ts_query_pattern_count"] = _ts_query_pattern_count = wasmExports2["ts_query_pattern_count"]; Module["_ts_query_capture_count"] = _ts_query_capture_count = wasmExports2["ts_query_capture_count"]; Module["_ts_query_string_count"] = _ts_query_string_count = wasmExports2["ts_query_string_count"]; @@ -3477,6 +3486,7 @@ async function Module2(moduleArg = {}) { Module["_iswblank"] = _iswblank = wasmExports2["iswblank"]; Module["_iswdigit"] = _iswdigit = wasmExports2["iswdigit"]; Module["_iswlower"] = _iswlower = wasmExports2["iswlower"]; + Module["_iswpunct"] = _iswpunct = wasmExports2["iswpunct"]; Module["_iswupper"] = _iswupper = wasmExports2["iswupper"]; Module["_iswxdigit"] = _iswxdigit = wasmExports2["iswxdigit"]; Module["_memchr"] = _memchr = wasmExports2["memchr"]; @@ -3776,9 +3786,9 @@ function parsePattern(index, stepType, stepValueId, captureNames, stringValues, steps.length = 0; } } -var __defProp2, __name, Edit, SIZE_OF_SHORT, SIZE_OF_INT, SIZE_OF_CURSOR, SIZE_OF_NODE, SIZE_OF_POINT, SIZE_OF_RANGE, ZERO_POINT, INTERNAL, C, LookaheadIterator, Tree, TreeCursor, Node, LANGUAGE_FUNCTION_REGEX, Language, web_tree_sitter_default, Module3, TRANSFER_BUFFER, LANGUAGE_VERSION, MIN_COMPATIBLE_VERSION, Parser, PREDICATE_STEP_TYPE_CAPTURE, PREDICATE_STEP_TYPE_STRING, QUERY_WORD_REGEX, CaptureQuantifier, isCaptureStep, isStringStep, QueryErrorKind, QueryError, Query; +var __defProp2, __name, Edit, SIZE_OF_SHORT, SIZE_OF_INT, SIZE_OF_CURSOR, SIZE_OF_NODE, SIZE_OF_POINT, SIZE_OF_RANGE, ZERO_POINT, INTERNAL, C, finalizer, LookaheadIterator, finalizer2, Tree, finalizer3, TreeCursor, Node, LANGUAGE_FUNCTION_REGEX, Language, web_tree_sitter_default, Module3, TRANSFER_BUFFER, LANGUAGE_VERSION, MIN_COMPATIBLE_VERSION, finalizer4, Parser, PREDICATE_STEP_TYPE_CAPTURE, PREDICATE_STEP_TYPE_STRING, QUERY_WORD_REGEX, CaptureQuantifier, isCaptureStep, isStringStep, QueryErrorKind, QueryError, finalizer5, Query; var init_web_tree_sitter = __esm({ - "node_modules/.pnpm/web-tree-sitter@0.26.13/node_modules/web-tree-sitter/web-tree-sitter.js"() { + "node_modules/.pnpm/web-tree-sitter@0.27.0/node_modules/web-tree-sitter/web-tree-sitter.js"() { "use strict"; __defProp2 = Object.defineProperty; __name = (target, value) => __defProp2(target, "name", { value, configurable: true }); @@ -3893,6 +3903,10 @@ var init_web_tree_sitter = __esm({ __name(assertInternal, "assertInternal"); __name(isPoint, "isPoint"); __name(setModule, "setModule"); + __name(newFinalizer, "newFinalizer"); + finalizer = newFinalizer((address) => { + C._ts_lookahead_iterator_delete(address); + }); LookaheadIterator = class { static { __name(this, "LookaheadIterator"); @@ -3903,21 +3917,39 @@ var init_web_tree_sitter = __esm({ /** @internal */ language; /** @internal */ + positioned = false; + /** @internal */ constructor(internal, address, language) { assertInternal(internal); this[0] = address; this.language = language; + finalizer?.register(this, address, this); } - /** Get the current symbol of the lookahead iterator. */ + /** + * Get the current symbol of the lookahead iterator. + * + * Returns `null` if the iterator is not positioned on a symbol: + * + * - Before the first iteration step + * - After the iterator is exhausted + * - After a {@link reset} or {@link resetState} call + */ get currentTypeId() { - return C._ts_lookahead_iterator_current_symbol(this[0]); + return this.positioned ? C._ts_lookahead_iterator_current_symbol(this[0]) : null; } - /** Get the current symbol name of the lookahead iterator. */ + /** + * Get the current symbol name of the lookahead iterator. + * + * Returns `null` if the iterator is not positioned on a symbol. + */ get currentType() { - return this.language.types[this.currentTypeId] || "ERROR"; + const id = this.currentTypeId; + if (id === null) return null; + return this.language.types[id] ?? C.UTF8ToString(C._ts_language_symbol_name(this.language[0], id)); } /** Delete the lookahead iterator, freeing its resources. */ delete() { + finalizer?.unregister(this); C._ts_lookahead_iterator_delete(this[0]); this[0] = 0; } @@ -3930,6 +3962,7 @@ var init_web_tree_sitter = __esm({ reset(language, stateId) { if (C._ts_lookahead_iterator_reset(this[0], language[0], stateId)) { this.language = language; + this.positioned = false; return true; } return false; @@ -3941,7 +3974,9 @@ var init_web_tree_sitter = __esm({ * `false` otherwise. */ resetState(stateId) { - return Boolean(C._ts_lookahead_iterator_reset_state(this[0], stateId)); + if (!C._ts_lookahead_iterator_reset_state(this[0], stateId)) return false; + this.positioned = false; + return true; } /** * Returns an iterator that iterates over the symbols of the lookahead iterator. @@ -3952,15 +3987,17 @@ var init_web_tree_sitter = __esm({ [Symbol.iterator]() { return { next: /* @__PURE__ */ __name(() => { - if (C._ts_lookahead_iterator_next(this[0])) { - return { done: false, value: this.currentType }; - } - return { done: true, value: "" }; + this.positioned = Boolean(C._ts_lookahead_iterator_next(this[0])); + const value = this.currentType; + return value === null ? { done: true, value: "" } : { done: false, value }; }, "next") }; } }; __name(getText, "getText"); + finalizer2 = newFinalizer((address) => { + C._ts_tree_delete(address); + }); Tree = class _Tree { static { __name(this, "Tree"); @@ -3978,6 +4015,7 @@ var init_web_tree_sitter = __esm({ this[0] = address; this.language = language; this.textCallback = textCallback; + finalizer2?.register(this, address, this); } /** Create a shallow copy of the syntax tree. This is very fast. */ copy() { @@ -3986,6 +4024,7 @@ var init_web_tree_sitter = __esm({ } /** Delete the syntax tree, freeing its resources. */ delete() { + finalizer2?.unregister(this); C._ts_tree_delete(this[0]); this[0] = 0; } @@ -4066,6 +4105,9 @@ var init_web_tree_sitter = __esm({ return result; } }; + finalizer3 = newFinalizer((address) => { + C._ts_tree_cursor_delete_wasm(address); + }); TreeCursor = class _TreeCursor { static { __name(this, "TreeCursor"); @@ -4093,6 +4135,7 @@ var init_web_tree_sitter = __esm({ assertInternal(internal); this.tree = tree; unmarshalTreeCursor(this); + finalizer3?.register(this, this.tree[0], this); } /** Creates a deep copy of the tree cursor. This allocates new memory. */ copy() { @@ -4103,6 +4146,7 @@ var init_web_tree_sitter = __esm({ } /** Delete the tree cursor, freeing its resources. */ delete() { + finalizer3?.unregister(this); marshalTreeCursor(this); C._ts_tree_cursor_delete_wasm(this.tree[0]); this[0] = this[1] = this[2] = 0; @@ -5091,8 +5135,9 @@ var init_web_tree_sitter = __esm({ * This returns `null` if state is invalid for this language. * * Iterating {@link LookaheadIterator} will yield valid symbols in the given - * parse state. Newly created lookahead iterators will return the `ERROR` - * symbol from {@link LookaheadIterator#currentType}. + * parse state. A newly created iterator is not positioned on a symbol, so + * {@link LookaheadIterator#currentType} returns `null` until the first + * iteration step. * * Lookahead iterators can be useful for generating suggestions and improving * syntax error diagnostics. To get symbols valid in an `ERROR` node, use the @@ -5107,7 +5152,8 @@ var init_web_tree_sitter = __esm({ } /** * Load a language from a WebAssembly module. - * The module can be provided as a path to a file or as a buffer. + * The module can be provided as a path to a file, a `URL` to a file, or as a + * buffer. */ static async load(input) { let binary2; @@ -5134,22 +5180,37 @@ ${body2}`); } } const mod = await C.loadWebAssemblyModule(binary2, { loadAsync: true }); + return _Language.loadFromWasmExports(mod, { sync: false }); + } + static loadFromWasmExports(mod, { sync }) { const symbolNames = Object.keys(mod); const functionName = symbolNames.find((key) => LANGUAGE_FUNCTION_REGEX.test(key) && !key.includes("external_scanner_")); if (!functionName) { console.log(`Couldn't find language function in Wasm file. Symbols: ${JSON.stringify(symbolNames, null, 2)}`); - throw new Error("Language.load failed: no language function found in Wasm file"); + throw new Error(`Language.${sync ? "loadSync" : "load"} failed: no language function found in Wasm file`); } const languageAddress = mod[functionName](); return new _Language(INTERNAL, languageAddress); } + /** + * Load a language synchronously from a pre-compiled WebAssembly module. + * Use this when the host environment provides a `WebAssembly.Module` directly. + */ + static loadSync(wasmModule) { + const mod = C.loadWebAssemblyModule(wasmModule, { loadAsync: false }); + return _Language.loadFromWasmExports(mod, { sync: true }); + } }; __name(Module2, "Module"); web_tree_sitter_default = Module2; Module3 = null; __name(initializeBinding, "initializeBinding"); __name(checkModule, "checkModule"); + finalizer4 = newFinalizer((addresses) => { + C._ts_parser_delete(addresses[0]); + C._free(addresses[1]); + }); Parser = class { static { __name(this, "Parser"); @@ -5181,6 +5242,7 @@ ${JSON.stringify(symbolNames, null, 2)}`); */ constructor() { this.initialize(); + finalizer4?.register(this, [this[0], this[1]], this); } /** @internal */ initialize() { @@ -5193,6 +5255,7 @@ ${JSON.stringify(symbolNames, null, 2)}`); } /** Delete the parser, freeing its resources. */ delete() { + finalizer4?.unregister(this); C._ts_parser_delete(this[0]); C._free(this[1]); this[0] = 0; @@ -5368,6 +5431,10 @@ ${JSON.stringify(symbolNames, null, 2)}`); this.length = length; this.name = "QueryError"; } + kind; + info; + index; + length; static { __name(this, "QueryError"); } @@ -5393,6 +5460,9 @@ ${JSON.stringify(symbolNames, null, 2)}`); __name(parseIsPredicate, "parseIsPredicate"); __name(parseSetDirective, "parseSetDirective"); __name(parsePattern, "parsePattern"); + finalizer5 = newFinalizer((address) => { + C._ts_query_delete(address); + }); Query = class { static { __name(this, "Query"); @@ -5547,9 +5617,11 @@ ${JSON.stringify(symbolNames, null, 2)}`); this.assertedProperties = assertedProperties; this.refutedProperties = refutedProperties; this.exceededMatchLimit = false; + finalizer5?.register(this, address, this); } /** Delete the query, freeing its resources. */ delete() { + finalizer5?.unregister(this); C._ts_query_delete(this[0]); this[0] = 0; } diff --git a/scripts/grammars/web-tree-sitter.wasm b/scripts/grammars/web-tree-sitter.wasm index d65f64aca582c9d111ac0b0b66e57b1c60ac8abe..abae0b51d9871d76948a3966f4e39233b2e7f737 100755 GIT binary patch delta 56554 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∋ejs*r?K{XdEP^hsg+wNJnQ??BvGTm}Shy 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 BX08AL delta 49429 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 O*15~m<&SPmZu}2E=`pkb