codebaseiq 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{chunk-BFBIMTCJ.js → chunk-2XBJRZEM.js} +2 -2
  3. package/dist/{chunk-GDHWOA57.js → chunk-2Z7K66D7.js} +2 -2
  4. package/dist/{chunk-HVFB3PME.js → chunk-3H2H5ODK.js} +2 -2
  5. package/dist/{chunk-LZSQ6X7E.js → chunk-3LQJRS4I.js} +2 -2
  6. package/dist/{chunk-GIDCP7KV.js → chunk-3ON3A2QV.js} +2 -2
  7. package/dist/{chunk-TPO7XC5Z.js → chunk-4GWN76B2.js} +2 -2
  8. package/dist/{chunk-GL6UTNUB.js → chunk-53ELMZRF.js} +2 -2
  9. package/dist/{chunk-6VREELBC.js → chunk-57OPIQFM.js} +2 -2
  10. package/dist/{chunk-JSNTHRLQ.js → chunk-5CR4U5X2.js} +2 -2
  11. package/dist/{chunk-GUFPEFBG.js → chunk-5MPBSFZH.js} +2 -2
  12. package/dist/{chunk-K7JLSGCJ.js → chunk-5TZNHP4T.js} +3 -3
  13. package/dist/{chunk-DVWO7RBC.js → chunk-5YBDBY5L.js} +2 -2
  14. package/dist/{chunk-T5X7DK6C.js → chunk-6EYESTJM.js} +2 -2
  15. package/dist/{chunk-AQI4N64O.js → chunk-6FXXYYQM.js} +2 -2
  16. package/dist/{chunk-VWYGCMV5.js → chunk-AGGR2BKS.js} +2 -2
  17. package/dist/{chunk-FEIZXBLH.js → chunk-ALOEHWJS.js} +2 -2
  18. package/dist/{chunk-D53LWANR.js → chunk-AXQCHG77.js} +2 -2
  19. package/dist/{chunk-7JELP5YE.js → chunk-BFANZRQ5.js} +2 -2
  20. package/dist/{chunk-5IZRKWTZ.js → chunk-BGYRF5YX.js} +2 -2
  21. package/dist/{chunk-5IC2WZAL.js → chunk-BIADXGC3.js} +2 -2
  22. package/dist/{chunk-HENP2O4A.js → chunk-BPKNP3KZ.js} +2 -2
  23. package/dist/{chunk-GP7C5VAE.js → chunk-CB5AVJMM.js} +2 -2
  24. package/dist/{chunk-HQA7EBSK.js → chunk-CJTKGAGH.js} +2 -2
  25. package/dist/{chunk-JLZLLLW5.js → chunk-CLPCFGRT.js} +2 -2
  26. package/dist/{chunk-EXZ7VLRY.js → chunk-CSPDQLLU.js} +2 -2
  27. package/dist/{chunk-AEXQYQD7.js → chunk-CYJS33YX.js} +2 -2
  28. package/dist/{chunk-AURCQHSG.js → chunk-DDRA3QKN.js} +2 -2
  29. package/dist/{chunk-3RSBGWGL.js → chunk-DECN422G.js} +2 -2
  30. package/dist/{chunk-3RR2K7EZ.js → chunk-DJKOXMNG.js} +2 -2
  31. package/dist/{chunk-PFC44E6D.js → chunk-DWBAESVW.js} +2 -2
  32. package/dist/{chunk-FQTIFWLR.js → chunk-EHPOTEQX.js} +2 -2
  33. package/dist/{chunk-NBCQZSGR.js → chunk-ELYMY5S2.js} +2 -2
  34. package/dist/{chunk-FTTV7IRX.js → chunk-EOKVZXNF.js} +42 -42
  35. package/dist/{chunk-HINZQKSY.js → chunk-F5CJO5JN.js} +2 -2
  36. package/dist/{chunk-SMDIEDM4.js → chunk-G7GVV2TV.js} +2 -2
  37. package/dist/{chunk-67VJAYVR.js → chunk-HJTM3C4Y.js} +2 -2
  38. package/dist/{chunk-I22IZYDI.js → chunk-HNXRVGMY.js} +2 -2
  39. package/dist/{chunk-NCJILOAK.js → chunk-I3OK27P7.js} +2 -2
  40. package/dist/{chunk-FWQGH2N2.js → chunk-ILGTMRMZ.js} +2 -2
  41. package/dist/{chunk-DDN2F6GB.js → chunk-JAFDMV5I.js} +2 -2
  42. package/dist/{chunk-LONKINMJ.js → chunk-JNXI6NQ7.js} +2 -2
  43. package/dist/{chunk-6BF3VYEF.js → chunk-JSB43EX6.js} +2 -2
  44. package/dist/chunk-JYRJYXUV.js +2 -0
  45. package/dist/chunk-K4S2VH42.js +82 -0
  46. package/dist/{chunk-75KJGYX7.js → chunk-K6FNTQQW.js} +2 -2
  47. package/dist/{chunk-XQPPURLQ.js → chunk-KEJ2HLRW.js} +2 -2
  48. package/dist/{chunk-D7AZAOZX.js → chunk-KFTHI2R6.js} +2 -2
  49. package/dist/{chunk-J3GLP7Q5.js → chunk-KLX6NSWT.js} +2 -2
  50. package/dist/{chunk-TJBOJUVN.js → chunk-KUKKLWJD.js} +2 -2
  51. package/dist/{chunk-2EDX3JT5.js → chunk-KUKWHP4R.js} +2 -2
  52. package/dist/{chunk-JFIA2JI3.js → chunk-KWRQVLPX.js} +2 -2
  53. package/dist/{chunk-5DSL3NT2.js → chunk-L37EQYAX.js} +2 -2
  54. package/dist/{chunk-ITSJMNUD.js → chunk-LCW3PSGL.js} +2 -2
  55. package/dist/{chunk-2PRONPAS.js → chunk-LSZYMN2A.js} +2 -2
  56. package/dist/{chunk-Q23IMHXS.js → chunk-MC46AL7B.js} +2 -2
  57. package/dist/{chunk-JYI7CV25.js → chunk-MDFT325O.js} +2 -2
  58. package/dist/{chunk-CVHOQONG.js → chunk-N2XDMNVI.js} +2 -2
  59. package/dist/chunk-NNG6M6XD.js +3 -0
  60. package/dist/{chunk-MVRGB4KJ.js → chunk-O2KWU34K.js} +2 -2
  61. package/dist/{chunk-USOAJHY7.js → chunk-OBC7HSSO.js} +2 -2
  62. package/dist/{chunk-RIYJ4L33.js → chunk-OKAF4OQS.js} +2 -2
  63. package/dist/{chunk-GQXXOS55.js → chunk-OP6BUIV6.js} +2 -2
  64. package/dist/{chunk-23C5AD3B.js → chunk-OQ3DK7FW.js} +2 -2
  65. package/dist/chunk-OT5ISJSR.js +2 -0
  66. package/dist/{chunk-C7QWUBR2.js → chunk-OWJWOEDU.js} +2 -2
  67. package/dist/{chunk-RJVAPMHF.js → chunk-PIFYOWS4.js} +2 -2
  68. package/dist/{chunk-CR3OG6SQ.js → chunk-PTR3EOXC.js} +2 -2
  69. package/dist/{chunk-NBZKSTXP.js → chunk-QY7QB7I6.js} +2 -2
  70. package/dist/{chunk-Q3ZCQY2Y.js → chunk-R4OJGTMP.js} +2 -2
  71. package/dist/{chunk-UQE4XFSA.js → chunk-RIO3JXHM.js} +2 -2
  72. package/dist/{chunk-CW6AXOLR.js → chunk-SA7G6GJX.js} +2 -2
  73. package/dist/{chunk-Q4XEU3UH.js → chunk-SB53KPWA.js} +2 -2
  74. package/dist/{chunk-36JC5BG2.js → chunk-SUE7SHZL.js} +2 -2
  75. package/dist/{chunk-ZAFGY22Q.js → chunk-SZ4P7MF7.js} +2 -2
  76. package/dist/{chunk-BBP7HVBJ.js → chunk-T2M5HWBQ.js} +2 -2
  77. package/dist/{chunk-MHWMEZDA.js → chunk-TEMM2FEL.js} +2 -2
  78. package/dist/{chunk-JX6ZWDOS.js → chunk-TLTSESB4.js} +2 -2
  79. package/dist/{chunk-FOZ74V56.js → chunk-UIAUPFBJ.js} +2 -2
  80. package/dist/{chunk-PHNCEUXX.js → chunk-UJIXCI3L.js} +2 -2
  81. package/dist/{chunk-XMJ53WG4.js → chunk-UMEPSVKT.js} +2 -2
  82. package/dist/{chunk-GWYZVVKY.js → chunk-V4NGDIEA.js} +2 -2
  83. package/dist/{chunk-E52K4L2W.js → chunk-VSGOIZMQ.js} +2 -2
  84. package/dist/{chunk-Z6RL7XOE.js → chunk-W7QDASTN.js} +2 -2
  85. package/dist/{chunk-PTQPPPG2.js → chunk-WO6OFKUC.js} +2 -2
  86. package/dist/{chunk-C7OUW52M.js → chunk-XJBK3QDV.js} +2 -2
  87. package/dist/{chunk-FH5WG4LE.js → chunk-XUPFA6GH.js} +2 -2
  88. package/dist/{chunk-DAKIGMIK.js → chunk-YPBKBYPS.js} +2 -2
  89. package/dist/{chunk-ZQ62NNKN.js → chunk-Z66XYVLZ.js} +2 -2
  90. package/dist/{chunk-OFGOOL6U.js → chunk-ZMA5HWXY.js} +2 -2
  91. package/dist/{cli-program-UO7PZD6V.js → cli-program-SCHOHOQE.js} +2 -2
  92. package/dist/cli.js +1 -1
  93. package/dist/{code-viewer-VHLBLIUM.js → code-viewer-AMRXV444.js} +2 -2
  94. package/dist/{code-viewer-KIXEYQNJ.js → code-viewer-EXI5SFFR.js} +2 -2
  95. package/dist/{command-descriptors-F5P2V3NW.js → command-descriptors-H6A4UY72.js} +3 -3
  96. package/dist/{command-descriptors-YCLATF5I.js → command-descriptors-ROIOTCCW.js} +3 -3
  97. package/dist/direct-navigation-3JOYP2MO.js +3 -0
  98. package/dist/direct-navigation-SJMJLBY7.js +2 -0
  99. package/dist/index.js +1 -1
  100. package/dist/invocation-command-descriptors-GMZX3UAD.js +2 -0
  101. package/dist/invocation-command-descriptors-HNMKDEF6.js +3 -0
  102. package/dist/{output-continuation-command-BTETTXEC.js → output-continuation-command-5NWVDQT7.js} +2 -2
  103. package/dist/output-continuation-command-RNEHNYPU.js +3 -0
  104. package/dist/project-reindex-MIW5CYEG.js +3 -0
  105. package/dist/{project-reindex-CRJU3IFG.js → project-reindex-VQ23LWDA.js} +2 -2
  106. package/dist/queries/affected.js +1 -1
  107. package/dist/queries/anchors.js +1 -1
  108. package/dist/queries/bottlenecks.js +1 -1
  109. package/dist/queries/call-graph.js +1 -1
  110. package/dist/queries/change-surface.js +1 -1
  111. package/dist/queries/cleanup-plan.js +1 -1
  112. package/dist/queries/complexity-hotspots.js +1 -1
  113. package/dist/queries/complexity.js +1 -1
  114. package/dist/queries/context.js +1 -1
  115. package/dist/queries/convergence.js +1 -1
  116. package/dist/queries/dataflow.js +1 -1
  117. package/dist/queries/dead.js +1 -1
  118. package/dist/queries/decorative-checkers.js +1 -1
  119. package/dist/queries/dependence-slice.js +1 -1
  120. package/dist/queries/diff-impact.js +1 -1
  121. package/dist/queries/drift.js +1 -1
  122. package/dist/queries/entry-map.js +1 -1
  123. package/dist/queries/evidence.js +1 -1
  124. package/dist/queries/extract-candidates.js +1 -1
  125. package/dist/queries/health.js +1 -1
  126. package/dist/queries/hotspots.js +1 -1
  127. package/dist/queries/imports.js +1 -1
  128. package/dist/queries/incomplete-migration.js +1 -1
  129. package/dist/queries/index.js +1 -1
  130. package/dist/queries/isolated.js +1 -1
  131. package/dist/queries/locality-candidates.js +1 -1
  132. package/dist/queries/members.js +1 -1
  133. package/dist/queries/methods.js +1 -1
  134. package/dist/queries/not-implemented.js +1 -1
  135. package/dist/queries/passthrough-candidates.js +1 -1
  136. package/dist/queries/plan-context.js +1 -1
  137. package/dist/queries/recent-duplicates.js +1 -1
  138. package/dist/queries/redundant-reexports.js +1 -1
  139. package/dist/queries/reference-neighborhood.js +1 -1
  140. package/dist/queries/reference-reachability.js +1 -1
  141. package/dist/queries/refs.js +1 -1
  142. package/dist/queries/self-audit.js +1 -1
  143. package/dist/queries/similar-signatures.js +1 -1
  144. package/dist/queries/similar.js +1 -1
  145. package/dist/queries/slice.js +1 -1
  146. package/dist/queries/source-inspection.js +1 -1
  147. package/dist/queries/stale-abstractions.js +1 -1
  148. package/dist/queries/surface.js +1 -1
  149. package/dist/queries/system-map.js +1 -1
  150. package/dist/queries/trace.js +1 -1
  151. package/dist/queries/twin-ab.js +1 -1
  152. package/dist/queries/unused-imports.js +1 -1
  153. package/dist/queries/unused-params.js +1 -1
  154. package/dist/queries/value-flow.js +1 -1
  155. package/dist/queries/wrapper-candidates.js +1 -1
  156. package/dist/reindex-worker.js +1 -1
  157. package/dist/reindex.js +1 -1
  158. package/dist/runtime.js +1 -1
  159. package/dist/rust-semantic-session-server.js +1 -1
  160. package/dist/rust-semantic-session-worker.js +1 -1
  161. package/dist/rust-semantic-worker.js +1 -1
  162. package/dist/{sentinel-ensure-command-SPW7XQLB.js → sentinel-ensure-command-H66AZ3VE.js} +2 -2
  163. package/dist/sentinel-ensure-command-R4YAUCJB.js +3 -0
  164. package/dist/watch-server.js +1 -1
  165. package/package.json +1 -1
  166. package/dist/chunk-6JMAVFL4.js +0 -3
  167. package/dist/chunk-6WAPPQ5F.js +0 -82
  168. package/dist/chunk-P4NVCOM7.js +0 -2
  169. package/dist/chunk-Z35GOVEH.js +0 -2
  170. package/dist/direct-navigation-4XJTXIDT.js +0 -2
  171. package/dist/direct-navigation-J5MVYYAD.js +0 -3
  172. package/dist/invocation-command-descriptors-RWV4VAI4.js +0 -2
  173. package/dist/invocation-command-descriptors-U76PN7IY.js +0 -3
  174. package/dist/output-continuation-command-BL25S26S.js +0 -3
  175. package/dist/project-reindex-TQFCOA2O.js +0 -3
  176. package/dist/sentinel-ensure-command-OSWGCFFL.js +0 -3
@@ -1,3 +1,3 @@
1
- import{a as Z}from"./chunk-P5XHIJHI.js";import{$ as pt,E as Dn,F as me,G as $,H as Ne,I as X,J as ee,K as _e,N as xn,O as Cn,P as wn,Q as lt,R as Le,S as te,T as kn,U as En,V as Oe,W as Pn,Y as ut,_ as ft,w as vn}from"./chunk-SMDIEDM4.js";import{d as Mn}from"./chunk-ELNRLMC5.js";import{a as De,b as xe,c as Ce,d as Te,e as q,n as Tn}from"./chunk-6JMAVFL4.js";import{b as hn,e as V,f as Ae,h as In,j as de,t as z,u as Fe}from"./chunk-GVAF222T.js";import{a as pe,f as Pe,n as bn,p as Rn}from"./chunk-F74LZWCE.js";import{C as gn,a as ke,c as ln,d as un,q as ot,z as Sn}from"./chunk-ICUL7XRT.js";import{c as en,d as tn,g as sn,h as on,k as we,m as st,o as an,q as cn,t as at,u as ct,v as ue}from"./chunk-7GAK2F3H.js";import{d as dn,f as mn,g as fe,j as yn}from"./chunk-SX72EVMY.js";import{a as _,c as fn,d as k,f as Ee}from"./chunk-3LCDIREB.js";import{A as nn,B as H,G as B,H as rn,L as it,fa as pn,n as le,q as N}from"./chunk-UC2FD2PS.js";function An(t){let e=new Map,n=li(t),r=new Map;return i=>{let s=ci(i),o=r.get(s);if(o!==void 0)return o;if(!n.has(i.file))return r.set(s,i.symbol),i.symbol;let a=e.get(i.file);a||(a=ui(z(t,i.file)),e.set(i.file,a));let c=fi(a,i);return r.set(s,c),c}}function ci(t){return`${t.file}\0${t.symbol}\0${t.line}`}function li(t){return new Set(t.all("SELECT relative_path FROM documents").map(e=>e.relative_path))}function ui(t){let e=new Map,n=new Map;for(let r of t){let i=e.get(r.leaf);i?i.push(r):e.set(r.leaf,[r]);let s=n.get(r.startLine);s?s.push(r):n.set(r.startLine,[r])}return{definitions:t,byLeaf:e,byStartLine:n}}function fi(t,e){if(t.definitions.length===0)return e.symbol;let n=mi(e.symbol),r=pi(t.byLeaf,n),i=di(r,e.line);if(i)return i.symbol;let s=t.byStartLine.get(e.line)??[];return s.length===1?s[0].symbol:e.symbol}function pi(t,e){let n=[],r=new Set;for(let i of e)for(let s of t.get(i)??[])r.has(s.symbolId)||(r.add(s.symbolId),n.push(s));return n}function di(t,e){let n=null;for(let r of t)if(!(r.startLine>e||r.endLine<e)){if(r.startLine===e)return r;(!n||r.endLine-r.startLine<n.endLine-n.startLine)&&(n=r)}return n}function mi(t){let e=new Set([t]),r=t.split(/::|\.|#/).filter(Boolean).at(-1);return r&&e.add(r),e}function Fn(t,e){let r=Rn(t,e).map(i=>Si(e,i));return{usage:r,positions:gi(t,e,r)}}function Nn(t,e){return{importUsage(n){let r=t.importUsageFacts(n);if(!e||r.positions.length===0)return r.usage;let i=e.importDefinitionsForFile(n,r.positions);return i.available?yi(r.usage,i.sourcePaths):r.usage}}}function yi(t,e){return t.map((n,r)=>{let i=e.get(String(r));return i?{...n,sourcePath:i}:n})}function Si(t,e){let n=e.isTypeOnly===!0,r=e.kind==="side-effect"||n||e.used;return{importer:t,sourcePath:e.sourcePath,importedName:e.importedName,localName:e.localName,kind:e.kind,isTypeOnly:n,isUsed:r,isTypeUsed:n,isValueUsed:e.kind==="side-effect"||!n&&e.used,references:[]}}function gi(t,e,n){let r=gn(t,e);if(!r)return[];let i=bi(r.rootNode),s=new Map;for(let a of i){let c=s.get(mt(a.importedName,a.localName));c?c.push(a.position):s.set(mt(a.importedName,a.localName),[a.position])}let o=[];return n.forEach((a,c)=>{let p=s.get(mt(a.importedName,a.localName??a.importedName))?.shift();p&&o.push({...p,id:String(c),file:e})}),o}function bi(t){let e=[];for(let n of t.descendantsOfType("use_declaration")){let r=n.namedChildren.find(i=>i.type!=="visibility_modifier");r&&e.push(...Ue(r,""))}return e.filter(n=>n.importedName!=="*")}function Ue(t,e){switch(t.type){case"identifier":case"super":case"self":case"crate":return[{importedName:t.text,localName:t.text,position:dt(t,t.text)}];case"scoped_identifier":{let n=t.text.split("::").pop()??t.text;return[{importedName:n,localName:n,position:dt(t,n)}]}case"scoped_use_list":{let n=t.namedChild(0),r=t.namedChild(1);if(!n||!r)return[];let i=bn(e,n.text);return r.namedChildren.flatMap(s=>Ue(s,i))}case"use_list":return t.namedChildren.flatMap(n=>Ue(n,e));case"use_as_clause":{let n=t.namedChild(0),r=t.namedChild(1);return!n||!r?[]:Ue(n,e).map(i=>({...i,localName:r.text}))}case"use_wildcard":{let n=t.namedChild(0),r="*";return[{importedName:r,localName:r,position:dt(n??t,r)}]}default:return[]}}function dt(t,e){let n=Math.max(0,t.text.lastIndexOf(e));return{id:"",file:"",line:t.startPosition.row,column:t.startPosition.column+n+Ri(e)}}function Ri(t){return Math.max(0,Math.min(t.length-1,1))}function mt(t,e){return`${t}\0${e}`}import{spawnSync as Dt}from"child_process";import{existsSync as xt}from"fs";import{fileURLToPath as Ss}from"url";function Be(t){let e=Dn(vn,t),n=e.runnable;return n?{available:!0,dependencyAvailable:n,resolvedBinary:e.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:n,resolvedBinary:e.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}import{existsSync as Xi,mkdtempSync as ir,rmSync as Rt}from"fs";import{tmpdir as sr}from"os";import{join as ht}from"path";import{fileURLToPath as Ve,pathToFileURL as es}from"url";import{SHARE_ENV as ts,Worker as ns}from"worker_threads";function K(t,e,n=new Set){let r=new Map;for(let i of t)n.has(i.symbolId)||r.set(i.symbolId,e.get(i.symbolId)??[]);return r}function Y(t,e,n){let r=Z(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let i=Math.max(1,Math.ceil(t/Math.max(1,n)));return Math.max(12e4,3e4+i*e)}import{spawn as Fi}from"child_process";import{createHash as Ni,randomUUID as _i}from"crypto";import{existsSync as Jn,realpathSync as Li,rmSync as Oi}from"fs";import{tmpdir as Ui}from"os";import{resolve as re}from"path";import{execFileSync as Mi}from"child_process";import{realpathSync as Vo}from"fs";import{basename as Yo,dirname as Jo,join as Go,relative as Qo,sep as Zo}from"path";import{fileURLToPath as ea,pathToFileURL as ta}from"url";function qe(t){let e=new Map;for(let n of t)e.set(`${n.file}\0${n.line}\0${n.column}`,n);return[...e.values()].sort((n,r)=>{let i=n.file.localeCompare(r.file);return i!==0?i:n.line!==r.line?n.line-r.line:n.column-r.column})}var _n=new WeakMap,hi="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function Ln(t,e){let n=new Map,r=je(),i=e.filter(o=>Un(o,r));if(i.length===0)return n;let s=Bn(t,i.map(o=>o.symbol));for(let o of i){let a=s.get(o.symbol);a&&n.set(o.symbolId,a)}return n}function On(t,e){return Un(e,je())?Bn(t,[e.symbol]).get(e.symbol)??null:null}function Un(t,e="safe"){if(!t.symbol.startsWith("rust-analyzer ")||!t.relativePath.endsWith(".rs")||de(t.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(t.symbol))return!1;if(e==="all")return!0;let n=Ae(t.symbol);if(n==="method")return!0;if(n!=="term")return!1;let r=hn(t.symbol);return"kind"in r?!1:!Ii(r)}function Ii(t){for(let e=0;e<t.descriptors.length-1;e+=1)if(t.descriptors[e]?.suffix==="type")return!0;return!1}function Bn(t,e){let n=_n.get(t);n||(n=new Map,_n.set(t,n));let r=[...new Set(e)].filter(i=>!n.has(i));if(r.length>0){let i=Cn(t,r);for(let s of r){let o=i?.get(s);n.set(s,o?qe(o.filter(({relativePath:a})=>!t.isIgnored(a)).map(({relativePath:a,occurrence:c})=>({file:a,line:c.range[0],column:c.range[1]}))):null)}}return new Map(e.map(i=>[i,n.get(i)??null]))}function je(){return process.env[hi]==="all"?"all":"safe"}var qn=new Map;function yt(t){let n=Be(t).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:n,version:n?vi(t,n):"unavailable"}}function St(t){return{...yt(t),scipOccurrenceReferenceMode:je()}}function vi(t,e){let n=`${t}\0${e}`,r=qn.get(n);if(r)return r;let i;try{i=Mi(e,["--version"],{cwd:t,encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:2e3}).trim()}catch{i="unknown"}return qn.set(n,i),i}import{createHash as Di}from"crypto";var xi=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function jn(t){let e=yn(t,{includePath:Ci});return Di("sha256").update(JSON.stringify(e)).digest("hex")}function Ci(t){let e=t.replaceAll("\\","/"),n=e.split("/").at(-1)??e;return e.endsWith(".rs")||xi.has(n)?!0:e===".cargo/config"||e===".cargo/config.toml"||e.endsWith("/.cargo/config")||e.endsWith("/.cargo/config.toml")}import{createHash as Ti}from"crypto";import{resolve as wi}from"path";var ne=3;function bt(t){return Ti("sha256").update(me({kind:"codebaseiq-durable-rust-mailbox",protocolVersion:ne,sessionDir:wi(t)})).digest("hex")}function Kn(t,e){return le(t)?t.protocolVersion!==ne?zn(t.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(t.protocolVersion)}`):t.mailboxVersion!==$||t.id!==e.requestId||t.operationKey!==e.operationKey||t.sessionIdentity!==e.sessionIdentity||t.deadlineAtMs!==e.deadlineAtMs?zn("helper wrote an incompatible response identity"):typeof t.completedAtMs!="number"||!Number.isFinite(t.completedAtMs)||t.completedAtMs>e.deadlineAtMs||e.nowMs>e.deadlineAtMs?{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:t.ok===!1?typeof t.error!="string"||!Ai(t.errorCode)?gt("helper wrote an invalid rejection response"):{ok:!1,code:t.errorCode,error:t.error}:t.ok!==!0||t.session!=="created"&&t.session!=="reused"&&t.session!=="invalidated"||!ki(t.response,e.requestKind)?gt("helper wrote an invalid success response"):{ok:!0,session:t.session,response:t.response}:gt("helper wrote an invalid response object")}function ki(t,e){return!le(t)||typeof t.available!="boolean"||t.available===!1&&(typeof t.reason!="string"||t.reason.length===0)||t.available===!0&&t.reason!==void 0?!1:e==="import-definitions"?Array.isArray(t.sourcePaths)&&t.sourcePaths.every(n=>Array.isArray(n)&&n.length===2&&typeof n[0]=="string"&&(n[1]===null||typeof n[1]=="string")):Wn(t.references,Ei)&&(t.incompleteReferenceSymbolIds===void 0||Array.isArray(t.incompleteReferenceSymbolIds)&&t.incompleteReferenceSymbolIds.every(n=>Number.isSafeInteger(n)))&&(t.callees===void 0||Wn(t.callees,Pi))&&(t.signatures===void 0||Array.isArray(t.signatures)&&t.signatures.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&(n[1]===null||typeof n[1]=="string")))}function Wn(t,e){return Array.isArray(t)&&t.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&Array.isArray(n[1])&&n[1].every(e))}function Ei(t){return le(t)&&typeof t.file=="string"&&N(t.line)&&N(t.column)}function Pi(t){return le(t)&&typeof t.symbol=="string"&&typeof t.file=="string"&&N(t.line)&&(t.callsiteLine===void 0||N(t.callsiteLine))}function Ai(t){return t==="unsupported-protocol"||t==="malformed-request"||t==="expired-request"||t==="handler-error"}function gt(t){return{ok:!1,code:"malformed-response",error:t}}function zn(t){return{ok:!1,code:"incompatible-response",error:t}}var Bi=5e3,Gn=10,qi=3e4;function Hn(t,e,n,r=tr){let i=r.engineIdentity(t),s={protocolVersion:ne,projectRoot:r.canonicalProjectRoot(t),projectFingerprint:r.projectFingerprint(t),engine:{engine:i.engine,resolvedBinary:i.resolvedBinary,version:i.version},workerFingerprint:r.fileFingerprint(e),environment:Zn(r.environment())};return{key:nr(me(s)),...s}}function We(t,e,n,r){if(t.protocolVersion!==ne||!n(t.pid))return!1;if(!t.processIdentity)return!0;let i=r?.(t.pid);return i!=null&&xe(t.processIdentity,i)}function Qn(t,e,n){let r;try{r=it(e,{maxBytes:H,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let i=nr(me({projectRoot:re(t),serverPath:re(e),serverFingerprint:r})).slice(0,20);return re(n,`codebaseiq-rust-session-${i}`)}function Vn(t){let e=t===void 0?Number.NaN:Number(t);return Number.isInteger(e)&&e>=0?e:0}function Zn(t){return Object.fromEntries(Object.entries(t).filter(([e])=>er(e)).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>[e,n??null]))}function Xn(t,e){let n=e.runtime??Vi,r=e.identityRuntime??tr,i=Qn(t,e.serverPath,e.tempRoot??Ui()),s=!1,o=(a,c)=>{if(s)throw new Error("Durable Rust semantic session was already disposed.");return Wi(i,e.serverPath,e.semanticWorkerPath,a,c,n,e.mailboxLimits)};return{requestSemantic(a,c){let p=Hn(t,e.semanticWorkerPath,a,r),{readinessDeadlineMs:u,...l}=a;return o({kind:"semantic",identityKey:p.key,workerEnvironment:Yn(),request:{...l,referenceRetryTimeoutMs:ji(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,a.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Vn(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},requestImportDefinitions(a,c){let p=Hn(t,e.semanticWorkerPath,a,r),{readinessDeadlineMs:u,...l}=a;return o({kind:"import-definitions",identityKey:p.key,workerEnvironment:Yn(),request:{...l,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Vn(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},shutdown(){s=!0}}}function ji(t,e){return e!==void 0?e:t===void 0?qi:void 0}function Wi(t,e,n,r,i,s,o={}){let a=s.now(),c=a+i,p=(s.monotonicNow??q)(),u=p+i,l=X("rust-semantic-v3",r),f=ee(l),d=Ne(t),m=bt(t),R=_e(d,{mailboxVersion:$,protocolVersion:ne,id:f,operationKey:l,clientId:s.randomId(),enqueuedAtMs:a,deadlineAtMs:c,sessionIdentity:m,request:r},{nowMs:a,limits:o});for($n(t,e,n,u,s);(s.monotonicNow??q)()<=u;){if(Jn(R.responsePath)){let S=zi(B(R.responsePath,{maxBytes:o.maxItemBytes??H,inputKind:"durable Rust semantic mailbox response"}),{requestId:f,operationKey:l,sessionIdentity:m,deadlineAtMs:R.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:s.now()});if(!S.ok)throw new Error(S.error);return _()&&Ee({type:"span",name:"rust.semantic.durable-session.request",durationMs:(s.monotonicNow??q)()-p,ok:!0,session:S.session,kind:r.kind}),S.response}let I=ze(t);(!I||!We(I,s.now(),s.isProcessAlive,s.readProcessIdentity))&&$n(t,e,n,u,s),s.sleep(Gn)}throw new Error(`Durable Rust semantic session timed out after ${(i/1e3).toFixed(0)}s.`)}function $n(t,e,n,r,i){let s=ze(t);if(s&&We(s,i.now(),i.isProcessAlive,i.readProcessIdentity))return;Oi(re(t,"server.json"),{force:!0}),i.spawnServer(e,t,n);let o=i.monotonicNow??q,a=Math.min(r,o()+Bi);for(;o()<=a;){let c=ze(t);if(c&&We(c,i.now(),i.isProcessAlive,i.readProcessIdentity))return;i.sleep(Gn)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function ze(t){try{let e=JSON.parse(B(re(t,"server.json"),{maxBytes:nn,inputKind:"durable Rust session state"}));if(typeof e.protocolVersion!="number"||e.sessionIdentity!==void 0&&(typeof e.sessionIdentity!="string"||e.sessionIdentity!==bt(t))||typeof e.pid!="number"||typeof e.heartbeatAtMs!="number"||e.busyUntilMs!==void 0&&typeof e.busyUntilMs!="number"||e.mailbox!==void 0&&!Ki(e.mailbox))return null;let n=e.processIdentity===void 0?null:De(e.processIdentity);return e.processIdentity!==void 0&&(!n||n.pid!==e.pid)?null:{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...n?{processIdentity:n}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}catch{return null}}function zi(t,e){try{return Kn(JSON.parse(t),e)}catch(n){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${n instanceof Error?n.message:String(n)}`}}}function Ki(t){if(!t||typeof t!="object")return!1;let e=t;return N(e.pending)&&N(e.inflight)&&N(e.responses)&&N(e.deadLetters)&&N(e.invalid)&&N(e.totalItems)&&typeof e.totalBytes=="number"&&Number.isFinite(e.totalBytes)&&e.totalBytes>=0&&(e.oldestPendingAt===void 0||Number.isFinite(Date.parse(e.oldestPendingAt)))}function Yn(){return Object.fromEntries(Object.entries(process.env).filter(([t])=>Hi(t)).sort(([t],[e])=>t.localeCompare(e)).map(([t,e])=>[t,e??null]))}function er(t){return t==="HOME"||t==="PATH"||t.startsWith("CARGO_")||t.startsWith("RA_")||t.startsWith("RUST")}function Hi(t){return er(t)||t.startsWith("SCIP_RUST_")||t==="CODEBASEIQ_PROFILE"||t==="CODEBASEIQ_PROFILE_CACHE_STATE"||t==="CODEBASEIQ_PROFILE_COMMAND"||t==="CODEBASEIQ_PROFILE_OUT"||t==="CODEBASEIQ_PROFILE_RUN_ID"||t==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY"||t==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY_KIND"||t==="CODEBASEIQ_PROFILE_MIN_MS"}var tr={canonicalProjectRoot(t){try{return Li(t)}catch{return re(t)}},projectFingerprint(t){return jn(t)},engineIdentity:yt,fileFingerprint(t){return it(t,{maxBytes:H,inputKind:"Rust semantic engine artifact"})},environment(){return Zn(process.env)}},Vi={now:Date.now,monotonicNow:q,randomId:_i,isProcessAlive:Te,readProcessIdentity:Ce,spawnServer(t,e,n){if(!Jn(t))throw new Error(`Durable Rust semantic session helper was not found at ${t}. Run npm run build first.`);Fi(process.execPath,[t,e,n],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()},sleep(t){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)}};function nr(t){return Ni("sha256").update(t).digest("hex")}import{randomUUID as Wa}from"crypto";import{readdirSync as $i,rmSync as Ka,writeFileSync as Ha}from"fs";import{join as Yi}from"path";var Ji="rust-analyzer-owner-",Gi=".json",Qi=16*1024;async function rr(t,e){if(!t)return[];let n;try{n=$i(t)}catch{return[]}let r=n.filter(o=>o.startsWith(Ji)&&o.endsWith(Gi)).map(o=>Yi(t,o)),i=[],s=[];for(let o of r){let a=Zi(o);a?s.push(a):i.push({reaped:!1,reason:"identity-unavailable",detail:`Rust analyzer ownership record ${o} could not be validated.`})}return i.push(...await Promise.all(s.map(o=>Tn(o,e)))),i}function Zi(t){try{let e=B(t,{maxBytes:Qi,inputKind:"rust-analyzer process ownership record"}),n=JSON.parse(e),r=De(n.rootIdentity);return n.version!==1||!r||typeof n.ownsProcessGroup!="boolean"?null:{rootPid:r.pid,rootIdentity:r,ownsProcessGroup:n.ownsProcessGroup,knownMembers:new Map([[r.pid,r]])}}catch{return null}}var or=15e3,ar=8,lr=5e3,rs=64,is=96,Mt=class{constructor(e,n,r={}){this.projectRoot=e;this.status=n;this.opts=r;this.requester=r.requester??cs(e,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Se(n),references:ge(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!0});return{...ye(r),resolvedBinary:n.resolvedBinary,references:K(e,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:ge(e)}}}calleesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Se(n),callees:be(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!1,includeCallees:!0});return{...ye(r),resolvedBinary:n.resolvedBinary,callees:It(e,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:be(e)}}}referencesAndCalleesForDefinitions(e,n){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),references:ge(e),callees:be(n)};let i=[...e,...n];try{let s=this.requestSession(r.resolvedBinary,i,{includeReferences:e.length>0,includeCallees:n.length>0,referenceDefinitions:e,calleeDefinitions:n});return{...ye(s),resolvedBinary:r.resolvedBinary,references:K(e,new Map(s.references),new Set(s.incompleteReferenceSymbolIds??[])),callees:It(n,new Map(s.callees??[]))}}catch(s){return this.fallbackReferencesAndCallees(r,e,n,s)}}signaturesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Se(n),signatures:cr(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...ye(r),resolvedBinary:n.resolvedBinary,signatures:ds(e,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:cr(e)}}}importDefinitionsForFile(e,n){let r=this.status(this.projectRoot);if(n.length===0)return r.available?{available:!0,resolvedBinary:r.resolvedBinary,sourcePaths:new Map}:{available:!1,reason:r.reason,resolvedBinary:r.resolvedBinary,sourcePaths:new Map};if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),sourcePaths:new Map(n.map(i=>[i.id,null]))};try{let i=this.requestImportDefinitions(r.resolvedBinary,e,n);return{...ye(i),resolvedBinary:r.resolvedBinary,sourcePaths:new Map(i.sourcePaths)}}catch(i){return{available:!1,resolvedBinary:r.resolvedBinary,reason:i instanceof Error?i.message:String(i),sourcePaths:new Map(n.map(s=>[s.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(e,n,r){let i=Ke(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,or),s=He(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),o=Ke(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,ar),a=He(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),c=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,p=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,u=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,l=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,...r}),f={projectRoot:this.projectRoot,rustAnalyzerBinary:e,definitions:[...n],...c?{referenceDefinitions:c}:{},...p?{calleeDefinitions:p}:{},...u?{signatureDefinitions:u}:{},requestTimeoutMs:i,...r.includeReferences!==!1&&s>0?{referenceRetryTimeoutMs:s}:{},diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:o,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},d=ms(f);return k("rust.semantic.session.request",()=>this.requester.requestSemantic(f,Y(d,vt(i,f.referenceRetryTimeoutMs),o)),()=>({definitions:n.length,operationDefinitions:d,referenceDefinitions:f.referenceDefinitions?.length,calleeDefinitions:f.calleeDefinitions?.length,signatureDefinitions:f.signatureDefinitions?.length,references:f.includeReferences!==!1,callees:f.includeCallees===!0,signatures:f.includeSignatures===!0,referenceRetryTimeoutMs:f.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(e,n,r,i){let s=n.length===0?{available:!0,resolvedBinary:e.resolvedBinary,references:ge(n)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(n),o=r.length===0?{available:!0,resolvedBinary:e.resolvedBinary,callees:be(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);if(s&&o){let a={resolvedBinary:s.resolvedBinary??o.resolvedBinary??e.resolvedBinary,references:K(n,s.references),callees:It(r,o.callees)};return s.available&&o.available?{available:!0,...a}:{available:!1,reason:(s.available?void 0:s.reason)??(o.available?void 0:o.reason)??"Rust semantic fallback was unavailable.",...a}}return{available:!1,resolvedBinary:e.resolvedBinary,reason:i instanceof Error?i.message:String(i),references:ge(n),callees:be(r)}}requestImportDefinitions(e,n,r){let i=Ke(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,or),s=Ke(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,ar),o=He(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),a=He(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,lr),c={projectRoot:this.projectRoot,rustAnalyzerBinary:e,file:n,positions:[...r],requestTimeoutMs:i,diagnosticsTimeoutMs:o,settleDelayMs:a,concurrency:s};return k("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(c,Y(r.length,i,s)),()=>({file:n,positions:r.length}))}};function ye(t){return t.available?{available:!0}:{available:!1,reason:t.reason}}function Se(t){return t.available?"rust-analyzer binary path is unavailable.":t.reason}function ur(t,e,n={}){return new Mt(t,e,n)}function Re(t,e){let n=pr(t);if(n!==null)return n;let r=e.includeReferences!==!1;return r&&e.includeCallees!==!0&&e.includeSignatures!==!0&&e.definitionCount<=rs||r&&e.includeCallees===!0&&e.includeSignatures!==!0&&e.definitionCount<=is?0:lr}function ss(t){let e=t?.trim().toLowerCase(),n=e==="0"||e==="false"||e==="off"||e==="worker",r=e==="1"||e==="true"||e==="on"||e==="durable",i=e===void 0||e==="";return{transport:n||!i&&!r?"worker":"durable",source:i?"default":"environment",fallback:"worker",valid:i||n||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function os(t){return ss(t).transport}function as(t,e){let n=null,r=!1,i=!1,s=!1,o=()=>n??=e(),a=()=>{i||(t.shutdown(),i=!0)},c=(u,l,f)=>{let d=ps(u);r=!0;try{a()}catch{}_()&&Ee({type:"span",name:"rust.semantic.durable-session.request",durationMs:f,ok:!1,kind:l,session:"worker-fallback",reason:d})},p=(u,l,f)=>{if(s)throw new Error("Rust semantic failover session was already disposed.");if(r)return f(o());let d=performance.now();try{return l(t)}catch(m){c(m,u,performance.now()-d)}return f(o())};return{requestSemantic(u,l){return p("semantic",f=>f.requestSemantic(u,l),f=>f.requestSemantic(u,l))},requestImportDefinitions(u,l){return p("import-definitions",f=>f.requestImportDefinitions(u,l),f=>f.requestImportDefinitions(u,l))},shutdown(){if(s)return;s=!0;let u=[];try{a()}catch(l){u.push(l)}try{n?.shutdown()}catch(l){u.push(l)}if(u.length>0)throw u[0]}}}function cs(t,e,n={worker:()=>ls(),durable:()=>Xn(t,{serverPath:Ve(ys()),semanticWorkerPath:Ve(fr())})}){return os(e)==="durable"?as(n.durable(),n.worker):n.worker()}function ls(t={}){let e=null,n=null,r=1,i=!1,s=null,o=null,a=l=>{l&&Rt(l,{recursive:!0,force:!0})},c=()=>{if(s)return;let l=e,f=n;e=null,n=null;let d=l?l.terminate():Promise.resolve(0);s=Promise.allSettled([d,rr(f,{gracefulMs:1e3,forceMs:1e3})]).then(([m,R])=>{let S=(R.status==="fulfilled"?R.value:[{reaped:!1,detail:String(R.reason)}]).filter(h=>!h.reaped);if(m.status==="rejected"||S.length>0){o=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${f??"unknown"}.`);return}a(f)}).finally(()=>{s=null})},p=()=>{if(e)return e;if(s)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(o)throw o;let l=t.semanticWorkerPath?es(t.semanticWorkerPath):fr();if(!Xi(Ve(l)))throw new Error(`Rust semantic session worker was not found at ${Ve(l)}. Run npm run build before using built semantic Rust queries.`);return n=ir(ht(sr(),"codebaseiq-rust-session-")),e=new ns(l,t.shareEnvironment?{env:ts}:void 0),e.unref(),e},u=()=>{let l=n??ir(ht(sr(),"codebaseiq-rust-session-"));return n=l,ht(l,`${r++}.json`)};return{requestSemantic(l,f){if(i)throw new Error("Rust semantic session was already disposed.");let d=p(),m=u(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(d.postMessage({kind:"semantic",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,f)==="timed-out")throw c(),new Error(`Rust semantic session worker timed out after ${(f/1e3).toFixed(0)}s`);try{let h=us(B(m,{maxBytes:H,inputKind:"Rust semantic worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{Rt(m,{force:!0})}},requestImportDefinitions(l,f){if(i)throw new Error("Rust semantic session was already disposed.");let d=p(),m=u(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(d.postMessage({kind:"import-definitions",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,f)==="timed-out")throw c(),new Error(`Rust semantic import-definition session worker timed out after ${(f/1e3).toFixed(0)}s`);try{let h=fs(B(m,{maxBytes:H,inputKind:"Rust import-definition worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{Rt(m,{force:!0})}},shutdown(){if(i)return;if(i=!0,!e){a(n),n=null;return}let l=u(),f=new SharedArrayBuffer(4),d=new Int32Array(f);e.postMessage({kind:"shutdown",responsePath:l,sharedBuffer:f}),Atomics.wait(d,0,0,5e3),c()}}}function us(t){let e=JSON.parse(t);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let n=e;return n.ok===!0&&"response"in n?{ok:!0,response:n.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function fs(t){let e=JSON.parse(t);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let n=e;return n.ok===!0&&"response"in n?{ok:!0,response:n.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function ps(t){let e=t instanceof Error?`${t.name} ${t.message}`.toLowerCase():String(t).toLowerCase();return e.includes("readiness")?"readiness":e.includes("timeout")||e.includes("timed out")?"timeout":e.includes("helper")?"helper":"request"}function ge(t){return new Map(t.map(e=>[e.symbolId,[]]))}function be(t){return new Map(t.map(e=>[e.symbolId,[]]))}function cr(t){return new Map(t.map(e=>[e.symbolId,null]))}function It(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??[]]))}function ds(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??null]))}function ms(t){let e=0;return t.includeReferences!==!1&&(e+=(t.referenceDefinitions??t.definitions).length),t.includeCallees===!0&&(e+=(t.calleeDefinitions??t.definitions).length),t.includeSignatures===!0&&(e+=(t.signatureDefinitions??t.definitions).length),Math.max(1,e)}function vt(t,e){return e&&e>0?Math.max(t,e):t}function fr(){return new URL("./rust-semantic-session-worker.js",import.meta.url)}function ys(){return new URL("./rust-semantic-session-server.js",import.meta.url)}function Ke(t,e){return Z(t)??e}function He(t,e){return pr(t)??e}function pr(t){if(!t)return null;let e=Number(t);return Number.isInteger(e)&&e>=0?e:null}var Ct=15e3,Tt=8;function Sr(t,e={}){let n=e.status??Be,r=Rs(t,n),i=hs(t,n),s=Is(t,n),o=e.referenceResolver||e.calleeResolver||e.signatureResolver||!gs(e)?null:ur(t,n,{fallbackReferenceResolver:r,fallbackCalleeResolver:i,fallbackSignatureResolver:s}),a=e.referenceResolver??o??r,c=e.calleeResolver??o??i,p=e.signatureResolver??o??s,u=e.importUsageResolver??Nn(e.sourceImportUsageResolver??bs(),e.importDefinitionResolver??o),l=e.calleeSymbolResolver,f=e.sourceZeroCalleeOracle,d=e.scipOccurrenceCalleeOracle,m=new Map,R=new Map,I=null,S=null,h=()=>(I??=n(t),I),E=()=>{let b=h();return b.dependencyAvailable?S??b:b},M=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=a.referencesForDefinitions(y),T=h();return S=$e(T,g),g.available?new Map(g.references):K(y,g.references)}catch(g){let T=h();return S=he(T,g),J(y)}},v=b=>{if(b.length===0)return new Map;let y=Ie(b),g=y.filter(dr);if(g.length===0)return G(y);let T=new Map,j=yr(g,d),F=[];for(let w of g)R.has(w.symbolId)?T.set(w.symbolId,R.get(w.symbolId)??[]):j.has(w.symbolId)?T.set(w.symbolId,j.get(w.symbolId)??[]):mr(w,f)?T.set(w.symbolId,[]):F.push(w);if(F.length===0)return ie(y,T,void 0);try{let w=c.calleesForDefinitions(F),O=h();S=$e(O,w);let P=ie(F,w.callees,l);for(let[ce,tt]of P)T.set(ce,tt);return ie(y,T,void 0)}catch(w){let O=h();return S=he(O,w),G(y)}},C=(b,y)=>{let g=Ie(b),T=Ie(y),j=T.filter(dr),F=new Map,w=yr(j,d),O=[];for(let P of j)w.has(P.symbolId)?F.set(P.symbolId,w.get(P.symbolId)??[]):mr(P,f)?F.set(P.symbolId,[]):O.push(P);if(g.length===0&&O.length===0)return{references:J(g),callees:ie(T,F,void 0)};try{let P=o?o.referencesAndCalleesForDefinitions(g,O):xs(a,c,{referenceDefinitions:g,calleeDefinitions:O}),ce=h();S=$e(ce,P);let tt=P.available?new Map(P.references):K(g,P.references);for(let[nt,rt]of P.callees)F.set(nt,rt);let Xt=ie(T,F,l);for(let[nt,rt]of Xt)R.set(nt,rt);return{references:tt,callees:Xt}}catch(P){let ce=h();return S=he(ce,P),{references:J(g),callees:G(T)}}},D=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=p.signaturesForDefinitions(y),T=h();return S=$e(T,g),gr(y,g.signatures)}catch(g){let T=h();return S=he(T,g),Ye(y)}};return{language:"rust",availability:E,dispose:()=>{o?.dispose()},importUsage:b=>{let y=m.get(b);if(y)return y;try{let g=u.importUsage(b);return m.set(b,g),g}catch(g){let T=h();return S=he(T,g),[]}},referencesFor:b=>M([b]).get(b.symbolId)??[],referencesForDefinitions:M,referencesAndCalleesForDefinitions:C,calleesFor:b=>v([b]).get(b.symbolId)??[],calleesForDefinitions:v,signatureFor:b=>D([b]).get(b.symbolId)??null}}function $e(t,e){let n={dependencyAvailable:t.dependencyAvailable,resolvedBinary:e.resolvedBinary??t.resolvedBinary,...t.note?{note:t.note}:{}};return e.available?{available:!0,...n}:{available:!1,reason:e.reason,...n}}function he(t,e){return{available:!1,dependencyAvailable:t.dependencyAvailable,resolvedBinary:t.resolvedBinary,...t.note?{note:t.note}:{},reason:e instanceof Error?e.message:String(e)}}function gs(t){if(t.usePersistentSession!==void 0)return t.usePersistentSession;let e=process.env.SCIP_RUST_SEMANTIC_SESSION;return e!=="0"&&e!=="false"}function bs(){return{importUsageFacts:()=>({usage:[],positions:[]})}}function Ie(t){return t.map(e=>{let n=e;return{...e,leaf:typeof n.leaf=="string"?n.leaf:V(e.symbol),parentTypeName:n.parentTypeName??null,isFunctionLike:typeof n.isFunctionLike=="boolean"?n.isFunctionLike:In(e.symbol),isTypeLike:n.isTypeLike??!1,kind:n.kind??null,documentation:n.documentation??null,enclosingSymbol:n.enclosingSymbol??null}})}function dr(t){return t.isFunctionLike}function mr(t,e){if(!e)return!1;try{return e(t)}catch{return!1}}function yr(t,e){if(!e||t.length===0)return new Map;try{return e(t)}catch{return new Map}}function Rs(t,e){return{referencesForDefinitions:n=>Ms(t,e,n)}}function hs(t,e){return{calleesForDefinitions:n=>vs(t,e,n)}}function Is(t,e){return{signaturesForDefinitions:n=>Ds(t,e,n)}}function Ms(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Et(r),references:J(n)};let i=wt();if(!xt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,references:J(n)};let s=se(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Ct),o=Je(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),a=se(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Tt),c=Je(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),p=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!0}),u={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,...o>0?{referenceRetryTimeoutMs:o}:{},diagnosticsTimeoutMs:c,settleDelayMs:p,concurrency:a},l=Dt(process.execPath,[i],{cwd:t,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(n.length,vt(s,u.referenceRetryTimeoutMs),a)}),f=Pt(l.stdout);if(f)return{...kt(f),resolvedBinary:r.resolvedBinary,references:K(n,new Map(f.references),new Set(f.incompleteReferenceSymbolIds??[]))};let d=l.error instanceof Error?l.error.message:l.stderr.trim()||`Rust semantic worker exited with status ${l.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,references:J(n)}}function vs(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Et(r),callees:G(n)};let i=wt();if(!xt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,callees:G(n)};let s=se(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Ct),o=se(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Tt),a=Je(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!1,includeCallees:!0}),p={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:o,includeReferences:!1,includeCallees:!0},u=Dt(process.execPath,[i],{cwd:t,input:JSON.stringify(p),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(n.length,s,o)}),l=Pt(u.stdout);if(l)return{...kt(l),resolvedBinary:r.resolvedBinary,callees:ie(n,new Map(l.callees??[]),void 0)};let f=u.error instanceof Error?u.error.message:u.stderr.trim()||`Rust semantic worker exited with status ${u.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:f,callees:G(n)}}function Ds(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Et(r),signatures:Ye(n)};let i=wt();if(!xt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,signatures:Ye(n)};let s=se(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Ct),o=se(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Tt),a=Je(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!1,includeCallees:!1,includeSignatures:!0}),p={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:o,includeReferences:!1,includeCallees:!1,includeSignatures:!0},u=Dt(process.execPath,[i],{cwd:t,input:JSON.stringify(p),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(n.length,s,o)}),l=Pt(u.stdout);if(l)return{...kt(l),resolvedBinary:r.resolvedBinary,signatures:gr(n,new Map(l.signatures??[]))};let f=u.error instanceof Error?u.error.message:u.stderr.trim()||`Rust semantic worker exited with status ${u.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:f,signatures:Ye(n)}}function xs(t,e,n){let r=n.referenceDefinitions.length>0?t.referencesForDefinitions(n.referenceDefinitions):{available:!0,references:J(n.referenceDefinitions)},i=n.calleeDefinitions.length>0?e.calleesForDefinitions(n.calleeDefinitions):{available:!0,callees:G(n.calleeDefinitions)},s={resolvedBinary:r.resolvedBinary??i.resolvedBinary,references:r.references,callees:i.callees};return r.available&&i.available?{available:!0,...s}:{available:!1,reason:(r.available?void 0:r.reason)??(i.available?void 0:i.reason)??"Rust semantic resolution was unavailable.",...s}}function J(t){return new Map(t.map(e=>[e.symbolId,[]]))}function G(t){return new Map(t.map(e=>[e.symbolId,[]]))}function Ye(t){return new Map(t.map(e=>[e.symbolId,null]))}function ie(t,e,n){let r=0,i=0;return k("rust.semantic.callees.complete-map",()=>{let s=new Map;for(let o of t){let a=e.get(o.symbolId)??[];a.length>0&&(r+=1),i+=a.length,s.set(o.symbolId,a.map(c=>({...c,symbol:n?n(c):c.symbol})))}return s},()=>({definitions:t.length,rows:r,callees:i,resolveSymbols:!!n}))}function gr(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??null]))}function wt(){return Ss(new URL("./rust-semantic-worker.js",import.meta.url))}function kt(t){return t.available?{available:!0}:{available:!1,reason:t.reason}}function Et(t){return t.available?"rust-analyzer binary path is unavailable.":t.reason}function Pt(t){try{let e=JSON.parse(t);if(!e||typeof e!="object")return null;let n=e;if(typeof n.available!="boolean"||!Array.isArray(n.references)||n.available===!1&&typeof n.reason!="string"||n.available===!0&&n.reason!==void 0)return null;let r={references:n.references,incompleteReferenceSymbolIds:Array.isArray(n.incompleteReferenceSymbolIds)?n.incompleteReferenceSymbolIds.filter(i=>typeof i=="number"):void 0,callees:Array.isArray(n.callees)?n.callees:void 0,signatures:Array.isArray(n.signatures)?n.signatures:void 0};return n.available===!0?{available:!0,...r}:{available:!1,reason:String(n.reason),...r}}catch{return null}}function se(t,e){return Z(t)??e}function Je(t,e){if(!t)return e;let n=Number(t);return Number.isInteger(n)&&n>=0?n:e}var br=new WeakMap;function hr(t,e){let n=e.filter(Cs);if(n.length===0)return new Map;let r=0,i=0;return k("rust.scip-occurrence.callees",()=>{let s=ks(t),o=new Map;for(let a of n){let c=Ts(t,s,a);c!==null&&(o.set(a.symbolId,c),r+=1,i+=c.length)}return o},()=>({definitions:e.length,candidates:n.length,resolvedDefinitions:r,resolvedCallees:i}))}function Cs(t){return!(!t.symbol.startsWith("rust-analyzer ")||!t.relativePath.endsWith(".rs")||!t.isFunctionLike||t.leaf==="main"||de(t.symbol))}function Ts(t,e,n){let r=Pe(t,n.relativePath);if(!r||r.language!=="rust")return null;let i=r.callables.find(u=>u.startLine!==n.startLine||u.endLine!==n.endLine?!1:u.name===n.leaf||n.leaf.endsWith(u.name)||u.name.endsWith(n.leaf));if(!i)return null;let s=r.callSites.filter(u=>u.line>=i.startLine&&u.line<=i.endLine);if(s.length===0)return null;let o=Es(t,e,n.relativePath);if(!o)return null;let a=o.filter(u=>u.line>=i.startLine&&u.line<=i.endLine&&u.callee.symbol!==n.symbol);if(a.some(u=>u.traitImplMember)||!ws(s,a))return null;let c=[],p=new Set;for(let u of a){let l=`${u.callee.symbol}\0${u.callee.file}\0${u.callee.line}`;p.has(l)||(p.add(l),c.push(u.callee))}return c}function ws(t,e){let n=Rr(t),r=Rr(e);if(n.size!==r.size)return!1;for(let[i,s]of n)if(r.get(i)!==s)return!1;return!0}function Rr(t){let e=new Map;for(let n of t){let r=n.calleeLeaf??n.leaf;if(!r)continue;let i=`${n.line}\0${r}`;e.set(i,(e.get(i)??0)+1)}return e}function ks(t){let e=br.get(t);if(!e){let n=Fe(t).filter(r=>r.symbol.startsWith("rust-analyzer ")&&r.relativePath.endsWith(".rs")&&r.isFunctionLike);e={definitionBySymbol:new Map(n.map(r=>[r.symbol,r])),occurrencesByFile:new Map},br.set(t,e)}return e}function Es(t,e,n){return e.occurrencesByFile.has(n)||e.occurrencesByFile.set(n,Ps(t,e,n)),e.occurrencesByFile.get(n)??null}function Ps(t,e,n){if(!n.endsWith(".rs")||t.isIgnored(n))return[];let r=xn(t,n);if(!r)return null;let i=[];for(let s of r){if((s.roles&1)!==0)continue;let o=e.definitionBySymbol.get(s.symbol);if(!o)continue;let a=s.range[0];i.push({line:a,leaf:o.leaf,traitImplMember:de(o.symbol),callee:{symbol:o.symbol,file:o.relativePath,line:o.startLine,callsiteLine:a}})}return i}var Ge=class{sessions=new WeakMap;getOrCreate(e,n,r){let i=As(e,n),s=this.sessions.get(e);s||(s=new Map,this.sessions.set(e,s));let o=s.get(i);if(o)return o.hits+=1,o.lastUsedAtMs=Date.now(),o.provider;let a=Date.now(),c=r();return s.set(i,{key:i,language:n,projectRoot:e.config.projectRoot,provider:c,createdAtMs:a,lastUsedAtMs:a,hits:1}),c}sessionsFor(e){return[...this.sessions.get(e)?.values()??[]]}clear(e){let n=this.sessions.get(e);if(n)for(let r of n.values())r.provider.dispose?.();this.sessions.delete(e)}};function As(t,e){return`${t.config.projectRoot}:${e}-workspace`}import{randomUUID as io}from"crypto";import{existsSync as so}from"fs";import{dirname as oo}from"path";function Ir(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t;if(typeof e.available!="boolean"||e.dependencyAvailable!==void 0&&typeof e.dependencyAvailable!="boolean"||e.tsconfigPath!==void 0&&typeof e.tsconfigPath!="string"||e.tsconfigPaths!==void 0&&(!Array.isArray(e.tsconfigPaths)||!e.tsconfigPaths.every(n=>typeof n=="string"))||e.resolvedBinary!==void 0&&typeof e.resolvedBinary!="string"||e.note!==void 0&&typeof e.note!="string")return null;if(e.available===!0){if(e.reason!==void 0)return null}else if(typeof e.reason!="string"||e.reason.length===0)return null;return e}import{performance as x}from"perf_hooks";function U(t,e,n){if(t.has(e))return t.get(e);let r=n();return t.set(e,r),r}import Dr from"path";import{realpathSync as Mr}from"fs";function Fs(t,e){return t.getReferences().map(n=>{let r=n.getNode();return Qe(r,e)})}function Ns(t){let e=t;return typeof e.findReferences=="function"?e.findReferences():[]}function xr(t,e,n,r){let i=[];for(let s of Ns(t))for(let o of Fs(s,r))o.file===e.relativePath&&o.line>=e.startLine&&o.line<=e.endLine||i.push(o);for(let s of n)i.push(s);return oe(i)}function Cr(t,e,n,r){let i=[],s=n?.getStart();for(let o of t.getReferences()){let a=o.getNode();ae(r,a.getSourceFile().getFilePath())===e&&(s!==void 0&&a.getStart()===s||i.push({location:Qe(a,r),node:a}))}return i}function Qe(t,e){let n=t.getSourceFile(),r=n.getLineAndColumnAtPos(t.getStart());return{file:ae(e,n.getFilePath())??n.getBaseName(),line:r.line-1,column:r.column-1}}function At(t,e,n){let r=t.getSourceFile(),i=Nt(r,t),s=t.getText(),o=new RegExp(`\\b${pe(s)}\\b`,"g"),a=r.getFullText().split(`
1
+ import{a as Z}from"./chunk-P5XHIJHI.js";import{$ as pt,E as Dn,F as me,G as $,H as Ne,I as X,J as ee,K as _e,N as xn,O as Cn,P as wn,Q as lt,R as Le,S as te,T as kn,U as En,V as Oe,W as Pn,Y as ut,_ as ft,w as vn}from"./chunk-G7GVV2TV.js";import{d as Mn}from"./chunk-ELNRLMC5.js";import{a as De,b as xe,c as Ce,d as Te,e as q,n as Tn}from"./chunk-NNG6M6XD.js";import{b as hn,e as V,f as Ae,h as In,j as de,t as z,u as Fe}from"./chunk-GVAF222T.js";import{a as pe,f as Pe,n as bn,p as Rn}from"./chunk-F74LZWCE.js";import{C as gn,a as ke,c as ln,d as un,q as ot,z as Sn}from"./chunk-ICUL7XRT.js";import{c as en,d as tn,g as sn,h as on,k as we,m as st,o as an,q as cn,t as at,u as ct,v as ue}from"./chunk-7GAK2F3H.js";import{d as dn,f as mn,g as fe,j as yn}from"./chunk-SX72EVMY.js";import{a as _,c as fn,d as k,f as Ee}from"./chunk-3LCDIREB.js";import{A as nn,B as H,G as B,H as rn,L as it,fa as pn,n as le,q as N}from"./chunk-UC2FD2PS.js";function An(t){let e=new Map,n=li(t),r=new Map;return i=>{let s=ci(i),o=r.get(s);if(o!==void 0)return o;if(!n.has(i.file))return r.set(s,i.symbol),i.symbol;let a=e.get(i.file);a||(a=ui(z(t,i.file)),e.set(i.file,a));let c=fi(a,i);return r.set(s,c),c}}function ci(t){return`${t.file}\0${t.symbol}\0${t.line}`}function li(t){return new Set(t.all("SELECT relative_path FROM documents").map(e=>e.relative_path))}function ui(t){let e=new Map,n=new Map;for(let r of t){let i=e.get(r.leaf);i?i.push(r):e.set(r.leaf,[r]);let s=n.get(r.startLine);s?s.push(r):n.set(r.startLine,[r])}return{definitions:t,byLeaf:e,byStartLine:n}}function fi(t,e){if(t.definitions.length===0)return e.symbol;let n=mi(e.symbol),r=pi(t.byLeaf,n),i=di(r,e.line);if(i)return i.symbol;let s=t.byStartLine.get(e.line)??[];return s.length===1?s[0].symbol:e.symbol}function pi(t,e){let n=[],r=new Set;for(let i of e)for(let s of t.get(i)??[])r.has(s.symbolId)||(r.add(s.symbolId),n.push(s));return n}function di(t,e){let n=null;for(let r of t)if(!(r.startLine>e||r.endLine<e)){if(r.startLine===e)return r;(!n||r.endLine-r.startLine<n.endLine-n.startLine)&&(n=r)}return n}function mi(t){let e=new Set([t]),r=t.split(/::|\.|#/).filter(Boolean).at(-1);return r&&e.add(r),e}function Fn(t,e){let r=Rn(t,e).map(i=>Si(e,i));return{usage:r,positions:gi(t,e,r)}}function Nn(t,e){return{importUsage(n){let r=t.importUsageFacts(n);if(!e||r.positions.length===0)return r.usage;let i=e.importDefinitionsForFile(n,r.positions);return i.available?yi(r.usage,i.sourcePaths):r.usage}}}function yi(t,e){return t.map((n,r)=>{let i=e.get(String(r));return i?{...n,sourcePath:i}:n})}function Si(t,e){let n=e.isTypeOnly===!0,r=e.kind==="side-effect"||n||e.used;return{importer:t,sourcePath:e.sourcePath,importedName:e.importedName,localName:e.localName,kind:e.kind,isTypeOnly:n,isUsed:r,isTypeUsed:n,isValueUsed:e.kind==="side-effect"||!n&&e.used,references:[]}}function gi(t,e,n){let r=gn(t,e);if(!r)return[];let i=bi(r.rootNode),s=new Map;for(let a of i){let c=s.get(mt(a.importedName,a.localName));c?c.push(a.position):s.set(mt(a.importedName,a.localName),[a.position])}let o=[];return n.forEach((a,c)=>{let p=s.get(mt(a.importedName,a.localName??a.importedName))?.shift();p&&o.push({...p,id:String(c),file:e})}),o}function bi(t){let e=[];for(let n of t.descendantsOfType("use_declaration")){let r=n.namedChildren.find(i=>i.type!=="visibility_modifier");r&&e.push(...Ue(r,""))}return e.filter(n=>n.importedName!=="*")}function Ue(t,e){switch(t.type){case"identifier":case"super":case"self":case"crate":return[{importedName:t.text,localName:t.text,position:dt(t,t.text)}];case"scoped_identifier":{let n=t.text.split("::").pop()??t.text;return[{importedName:n,localName:n,position:dt(t,n)}]}case"scoped_use_list":{let n=t.namedChild(0),r=t.namedChild(1);if(!n||!r)return[];let i=bn(e,n.text);return r.namedChildren.flatMap(s=>Ue(s,i))}case"use_list":return t.namedChildren.flatMap(n=>Ue(n,e));case"use_as_clause":{let n=t.namedChild(0),r=t.namedChild(1);return!n||!r?[]:Ue(n,e).map(i=>({...i,localName:r.text}))}case"use_wildcard":{let n=t.namedChild(0),r="*";return[{importedName:r,localName:r,position:dt(n??t,r)}]}default:return[]}}function dt(t,e){let n=Math.max(0,t.text.lastIndexOf(e));return{id:"",file:"",line:t.startPosition.row,column:t.startPosition.column+n+Ri(e)}}function Ri(t){return Math.max(0,Math.min(t.length-1,1))}function mt(t,e){return`${t}\0${e}`}import{spawnSync as Dt}from"child_process";import{existsSync as xt}from"fs";import{fileURLToPath as Ss}from"url";function Be(t){let e=Dn(vn,t),n=e.runnable;return n?{available:!0,dependencyAvailable:n,resolvedBinary:e.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:n,resolvedBinary:e.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}import{existsSync as Xi,mkdtempSync as ir,rmSync as Rt}from"fs";import{tmpdir as sr}from"os";import{join as ht}from"path";import{fileURLToPath as Ve,pathToFileURL as es}from"url";import{SHARE_ENV as ts,Worker as ns}from"worker_threads";function K(t,e,n=new Set){let r=new Map;for(let i of t)n.has(i.symbolId)||r.set(i.symbolId,e.get(i.symbolId)??[]);return r}function Y(t,e,n){let r=Z(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let i=Math.max(1,Math.ceil(t/Math.max(1,n)));return Math.max(12e4,3e4+i*e)}import{spawn as Fi}from"child_process";import{createHash as Ni,randomUUID as _i}from"crypto";import{existsSync as Jn,realpathSync as Li,rmSync as Oi}from"fs";import{tmpdir as Ui}from"os";import{resolve as re}from"path";import{execFileSync as Mi}from"child_process";import{realpathSync as Vo}from"fs";import{basename as Yo,dirname as Jo,join as Go,relative as Qo,sep as Zo}from"path";import{fileURLToPath as ea,pathToFileURL as ta}from"url";function qe(t){let e=new Map;for(let n of t)e.set(`${n.file}\0${n.line}\0${n.column}`,n);return[...e.values()].sort((n,r)=>{let i=n.file.localeCompare(r.file);return i!==0?i:n.line!==r.line?n.line-r.line:n.column-r.column})}var _n=new WeakMap,hi="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function Ln(t,e){let n=new Map,r=je(),i=e.filter(o=>Un(o,r));if(i.length===0)return n;let s=Bn(t,i.map(o=>o.symbol));for(let o of i){let a=s.get(o.symbol);a&&n.set(o.symbolId,a)}return n}function On(t,e){return Un(e,je())?Bn(t,[e.symbol]).get(e.symbol)??null:null}function Un(t,e="safe"){if(!t.symbol.startsWith("rust-analyzer ")||!t.relativePath.endsWith(".rs")||de(t.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(t.symbol))return!1;if(e==="all")return!0;let n=Ae(t.symbol);if(n==="method")return!0;if(n!=="term")return!1;let r=hn(t.symbol);return"kind"in r?!1:!Ii(r)}function Ii(t){for(let e=0;e<t.descriptors.length-1;e+=1)if(t.descriptors[e]?.suffix==="type")return!0;return!1}function Bn(t,e){let n=_n.get(t);n||(n=new Map,_n.set(t,n));let r=[...new Set(e)].filter(i=>!n.has(i));if(r.length>0){let i=Cn(t,r);for(let s of r){let o=i?.get(s);n.set(s,o?qe(o.filter(({relativePath:a})=>!t.isIgnored(a)).map(({relativePath:a,occurrence:c})=>({file:a,line:c.range[0],column:c.range[1]}))):null)}}return new Map(e.map(i=>[i,n.get(i)??null]))}function je(){return process.env[hi]==="all"?"all":"safe"}var qn=new Map;function yt(t){let n=Be(t).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:n,version:n?vi(t,n):"unavailable"}}function St(t){return{...yt(t),scipOccurrenceReferenceMode:je()}}function vi(t,e){let n=`${t}\0${e}`,r=qn.get(n);if(r)return r;let i;try{i=Mi(e,["--version"],{cwd:t,encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:2e3}).trim()}catch{i="unknown"}return qn.set(n,i),i}import{createHash as Di}from"crypto";var xi=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function jn(t){let e=yn(t,{includePath:Ci});return Di("sha256").update(JSON.stringify(e)).digest("hex")}function Ci(t){let e=t.replaceAll("\\","/"),n=e.split("/").at(-1)??e;return e.endsWith(".rs")||xi.has(n)?!0:e===".cargo/config"||e===".cargo/config.toml"||e.endsWith("/.cargo/config")||e.endsWith("/.cargo/config.toml")}import{createHash as Ti}from"crypto";import{resolve as wi}from"path";var ne=3;function bt(t){return Ti("sha256").update(me({kind:"codebaseiq-durable-rust-mailbox",protocolVersion:ne,sessionDir:wi(t)})).digest("hex")}function Kn(t,e){return le(t)?t.protocolVersion!==ne?zn(t.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(t.protocolVersion)}`):t.mailboxVersion!==$||t.id!==e.requestId||t.operationKey!==e.operationKey||t.sessionIdentity!==e.sessionIdentity||t.deadlineAtMs!==e.deadlineAtMs?zn("helper wrote an incompatible response identity"):typeof t.completedAtMs!="number"||!Number.isFinite(t.completedAtMs)||t.completedAtMs>e.deadlineAtMs||e.nowMs>e.deadlineAtMs?{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:t.ok===!1?typeof t.error!="string"||!Ai(t.errorCode)?gt("helper wrote an invalid rejection response"):{ok:!1,code:t.errorCode,error:t.error}:t.ok!==!0||t.session!=="created"&&t.session!=="reused"&&t.session!=="invalidated"||!ki(t.response,e.requestKind)?gt("helper wrote an invalid success response"):{ok:!0,session:t.session,response:t.response}:gt("helper wrote an invalid response object")}function ki(t,e){return!le(t)||typeof t.available!="boolean"||t.available===!1&&(typeof t.reason!="string"||t.reason.length===0)||t.available===!0&&t.reason!==void 0?!1:e==="import-definitions"?Array.isArray(t.sourcePaths)&&t.sourcePaths.every(n=>Array.isArray(n)&&n.length===2&&typeof n[0]=="string"&&(n[1]===null||typeof n[1]=="string")):Wn(t.references,Ei)&&(t.incompleteReferenceSymbolIds===void 0||Array.isArray(t.incompleteReferenceSymbolIds)&&t.incompleteReferenceSymbolIds.every(n=>Number.isSafeInteger(n)))&&(t.callees===void 0||Wn(t.callees,Pi))&&(t.signatures===void 0||Array.isArray(t.signatures)&&t.signatures.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&(n[1]===null||typeof n[1]=="string")))}function Wn(t,e){return Array.isArray(t)&&t.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&Array.isArray(n[1])&&n[1].every(e))}function Ei(t){return le(t)&&typeof t.file=="string"&&N(t.line)&&N(t.column)}function Pi(t){return le(t)&&typeof t.symbol=="string"&&typeof t.file=="string"&&N(t.line)&&(t.callsiteLine===void 0||N(t.callsiteLine))}function Ai(t){return t==="unsupported-protocol"||t==="malformed-request"||t==="expired-request"||t==="handler-error"}function gt(t){return{ok:!1,code:"malformed-response",error:t}}function zn(t){return{ok:!1,code:"incompatible-response",error:t}}var Bi=5e3,Gn=10,qi=3e4;function Hn(t,e,n,r=tr){let i=r.engineIdentity(t),s={protocolVersion:ne,projectRoot:r.canonicalProjectRoot(t),projectFingerprint:r.projectFingerprint(t),engine:{engine:i.engine,resolvedBinary:i.resolvedBinary,version:i.version},workerFingerprint:r.fileFingerprint(e),environment:Zn(r.environment())};return{key:nr(me(s)),...s}}function We(t,e,n,r){if(t.protocolVersion!==ne||!n(t.pid))return!1;if(!t.processIdentity)return!0;let i=r?.(t.pid);return i!=null&&xe(t.processIdentity,i)}function Qn(t,e,n){let r;try{r=it(e,{maxBytes:H,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let i=nr(me({projectRoot:re(t),serverPath:re(e),serverFingerprint:r})).slice(0,20);return re(n,`codebaseiq-rust-session-${i}`)}function Vn(t){let e=t===void 0?Number.NaN:Number(t);return Number.isInteger(e)&&e>=0?e:0}function Zn(t){return Object.fromEntries(Object.entries(t).filter(([e])=>er(e)).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>[e,n??null]))}function Xn(t,e){let n=e.runtime??Vi,r=e.identityRuntime??tr,i=Qn(t,e.serverPath,e.tempRoot??Ui()),s=!1,o=(a,c)=>{if(s)throw new Error("Durable Rust semantic session was already disposed.");return Wi(i,e.serverPath,e.semanticWorkerPath,a,c,n,e.mailboxLimits)};return{requestSemantic(a,c){let p=Hn(t,e.semanticWorkerPath,a,r),{readinessDeadlineMs:u,...l}=a;return o({kind:"semantic",identityKey:p.key,workerEnvironment:Yn(),request:{...l,referenceRetryTimeoutMs:ji(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,a.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Vn(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},requestImportDefinitions(a,c){let p=Hn(t,e.semanticWorkerPath,a,r),{readinessDeadlineMs:u,...l}=a;return o({kind:"import-definitions",identityKey:p.key,workerEnvironment:Yn(),request:{...l,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Vn(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},shutdown(){s=!0}}}function ji(t,e){return e!==void 0?e:t===void 0?qi:void 0}function Wi(t,e,n,r,i,s,o={}){let a=s.now(),c=a+i,p=(s.monotonicNow??q)(),u=p+i,l=X("rust-semantic-v3",r),f=ee(l),d=Ne(t),m=bt(t),R=_e(d,{mailboxVersion:$,protocolVersion:ne,id:f,operationKey:l,clientId:s.randomId(),enqueuedAtMs:a,deadlineAtMs:c,sessionIdentity:m,request:r},{nowMs:a,limits:o});for($n(t,e,n,u,s);(s.monotonicNow??q)()<=u;){if(Jn(R.responsePath)){let S=zi(B(R.responsePath,{maxBytes:o.maxItemBytes??H,inputKind:"durable Rust semantic mailbox response"}),{requestId:f,operationKey:l,sessionIdentity:m,deadlineAtMs:R.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:s.now()});if(!S.ok)throw new Error(S.error);return _()&&Ee({type:"span",name:"rust.semantic.durable-session.request",durationMs:(s.monotonicNow??q)()-p,ok:!0,session:S.session,kind:r.kind}),S.response}let I=ze(t);(!I||!We(I,s.now(),s.isProcessAlive,s.readProcessIdentity))&&$n(t,e,n,u,s),s.sleep(Gn)}throw new Error(`Durable Rust semantic session timed out after ${(i/1e3).toFixed(0)}s.`)}function $n(t,e,n,r,i){let s=ze(t);if(s&&We(s,i.now(),i.isProcessAlive,i.readProcessIdentity))return;Oi(re(t,"server.json"),{force:!0}),i.spawnServer(e,t,n);let o=i.monotonicNow??q,a=Math.min(r,o()+Bi);for(;o()<=a;){let c=ze(t);if(c&&We(c,i.now(),i.isProcessAlive,i.readProcessIdentity))return;i.sleep(Gn)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function ze(t){try{let e=JSON.parse(B(re(t,"server.json"),{maxBytes:nn,inputKind:"durable Rust session state"}));if(typeof e.protocolVersion!="number"||e.sessionIdentity!==void 0&&(typeof e.sessionIdentity!="string"||e.sessionIdentity!==bt(t))||typeof e.pid!="number"||typeof e.heartbeatAtMs!="number"||e.busyUntilMs!==void 0&&typeof e.busyUntilMs!="number"||e.mailbox!==void 0&&!Ki(e.mailbox))return null;let n=e.processIdentity===void 0?null:De(e.processIdentity);return e.processIdentity!==void 0&&(!n||n.pid!==e.pid)?null:{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...n?{processIdentity:n}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}catch{return null}}function zi(t,e){try{return Kn(JSON.parse(t),e)}catch(n){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${n instanceof Error?n.message:String(n)}`}}}function Ki(t){if(!t||typeof t!="object")return!1;let e=t;return N(e.pending)&&N(e.inflight)&&N(e.responses)&&N(e.deadLetters)&&N(e.invalid)&&N(e.totalItems)&&typeof e.totalBytes=="number"&&Number.isFinite(e.totalBytes)&&e.totalBytes>=0&&(e.oldestPendingAt===void 0||Number.isFinite(Date.parse(e.oldestPendingAt)))}function Yn(){return Object.fromEntries(Object.entries(process.env).filter(([t])=>Hi(t)).sort(([t],[e])=>t.localeCompare(e)).map(([t,e])=>[t,e??null]))}function er(t){return t==="HOME"||t==="PATH"||t.startsWith("CARGO_")||t.startsWith("RA_")||t.startsWith("RUST")}function Hi(t){return er(t)||t.startsWith("SCIP_RUST_")||t==="CODEBASEIQ_PROFILE"||t==="CODEBASEIQ_PROFILE_CACHE_STATE"||t==="CODEBASEIQ_PROFILE_COMMAND"||t==="CODEBASEIQ_PROFILE_OUT"||t==="CODEBASEIQ_PROFILE_RUN_ID"||t==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY"||t==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY_KIND"||t==="CODEBASEIQ_PROFILE_MIN_MS"}var tr={canonicalProjectRoot(t){try{return Li(t)}catch{return re(t)}},projectFingerprint(t){return jn(t)},engineIdentity:yt,fileFingerprint(t){return it(t,{maxBytes:H,inputKind:"Rust semantic engine artifact"})},environment(){return Zn(process.env)}},Vi={now:Date.now,monotonicNow:q,randomId:_i,isProcessAlive:Te,readProcessIdentity:Ce,spawnServer(t,e,n){if(!Jn(t))throw new Error(`Durable Rust semantic session helper was not found at ${t}. Run npm run build first.`);Fi(process.execPath,[t,e,n],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()},sleep(t){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)}};function nr(t){return Ni("sha256").update(t).digest("hex")}import{randomUUID as Wa}from"crypto";import{readdirSync as $i,rmSync as Ka,writeFileSync as Ha}from"fs";import{join as Yi}from"path";var Ji="rust-analyzer-owner-",Gi=".json",Qi=16*1024;async function rr(t,e){if(!t)return[];let n;try{n=$i(t)}catch{return[]}let r=n.filter(o=>o.startsWith(Ji)&&o.endsWith(Gi)).map(o=>Yi(t,o)),i=[],s=[];for(let o of r){let a=Zi(o);a?s.push(a):i.push({reaped:!1,reason:"identity-unavailable",detail:`Rust analyzer ownership record ${o} could not be validated.`})}return i.push(...await Promise.all(s.map(o=>Tn(o,e)))),i}function Zi(t){try{let e=B(t,{maxBytes:Qi,inputKind:"rust-analyzer process ownership record"}),n=JSON.parse(e),r=De(n.rootIdentity);return n.version!==1||!r||typeof n.ownsProcessGroup!="boolean"?null:{rootPid:r.pid,rootIdentity:r,ownsProcessGroup:n.ownsProcessGroup,knownMembers:new Map([[r.pid,r]])}}catch{return null}}var or=15e3,ar=8,lr=5e3,rs=64,is=96,Mt=class{constructor(e,n,r={}){this.projectRoot=e;this.status=n;this.opts=r;this.requester=r.requester??cs(e,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Se(n),references:ge(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!0});return{...ye(r),resolvedBinary:n.resolvedBinary,references:K(e,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:ge(e)}}}calleesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Se(n),callees:be(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!1,includeCallees:!0});return{...ye(r),resolvedBinary:n.resolvedBinary,callees:It(e,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:be(e)}}}referencesAndCalleesForDefinitions(e,n){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),references:ge(e),callees:be(n)};let i=[...e,...n];try{let s=this.requestSession(r.resolvedBinary,i,{includeReferences:e.length>0,includeCallees:n.length>0,referenceDefinitions:e,calleeDefinitions:n});return{...ye(s),resolvedBinary:r.resolvedBinary,references:K(e,new Map(s.references),new Set(s.incompleteReferenceSymbolIds??[])),callees:It(n,new Map(s.callees??[]))}}catch(s){return this.fallbackReferencesAndCallees(r,e,n,s)}}signaturesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Se(n),signatures:cr(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...ye(r),resolvedBinary:n.resolvedBinary,signatures:ds(e,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:cr(e)}}}importDefinitionsForFile(e,n){let r=this.status(this.projectRoot);if(n.length===0)return r.available?{available:!0,resolvedBinary:r.resolvedBinary,sourcePaths:new Map}:{available:!1,reason:r.reason,resolvedBinary:r.resolvedBinary,sourcePaths:new Map};if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),sourcePaths:new Map(n.map(i=>[i.id,null]))};try{let i=this.requestImportDefinitions(r.resolvedBinary,e,n);return{...ye(i),resolvedBinary:r.resolvedBinary,sourcePaths:new Map(i.sourcePaths)}}catch(i){return{available:!1,resolvedBinary:r.resolvedBinary,reason:i instanceof Error?i.message:String(i),sourcePaths:new Map(n.map(s=>[s.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(e,n,r){let i=Ke(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,or),s=He(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),o=Ke(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,ar),a=He(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),c=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,p=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,u=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,l=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,...r}),f={projectRoot:this.projectRoot,rustAnalyzerBinary:e,definitions:[...n],...c?{referenceDefinitions:c}:{},...p?{calleeDefinitions:p}:{},...u?{signatureDefinitions:u}:{},requestTimeoutMs:i,...r.includeReferences!==!1&&s>0?{referenceRetryTimeoutMs:s}:{},diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:o,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},d=ms(f);return k("rust.semantic.session.request",()=>this.requester.requestSemantic(f,Y(d,vt(i,f.referenceRetryTimeoutMs),o)),()=>({definitions:n.length,operationDefinitions:d,referenceDefinitions:f.referenceDefinitions?.length,calleeDefinitions:f.calleeDefinitions?.length,signatureDefinitions:f.signatureDefinitions?.length,references:f.includeReferences!==!1,callees:f.includeCallees===!0,signatures:f.includeSignatures===!0,referenceRetryTimeoutMs:f.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(e,n,r,i){let s=n.length===0?{available:!0,resolvedBinary:e.resolvedBinary,references:ge(n)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(n),o=r.length===0?{available:!0,resolvedBinary:e.resolvedBinary,callees:be(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);if(s&&o){let a={resolvedBinary:s.resolvedBinary??o.resolvedBinary??e.resolvedBinary,references:K(n,s.references),callees:It(r,o.callees)};return s.available&&o.available?{available:!0,...a}:{available:!1,reason:(s.available?void 0:s.reason)??(o.available?void 0:o.reason)??"Rust semantic fallback was unavailable.",...a}}return{available:!1,resolvedBinary:e.resolvedBinary,reason:i instanceof Error?i.message:String(i),references:ge(n),callees:be(r)}}requestImportDefinitions(e,n,r){let i=Ke(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,or),s=Ke(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,ar),o=He(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),a=He(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,lr),c={projectRoot:this.projectRoot,rustAnalyzerBinary:e,file:n,positions:[...r],requestTimeoutMs:i,diagnosticsTimeoutMs:o,settleDelayMs:a,concurrency:s};return k("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(c,Y(r.length,i,s)),()=>({file:n,positions:r.length}))}};function ye(t){return t.available?{available:!0}:{available:!1,reason:t.reason}}function Se(t){return t.available?"rust-analyzer binary path is unavailable.":t.reason}function ur(t,e,n={}){return new Mt(t,e,n)}function Re(t,e){let n=pr(t);if(n!==null)return n;let r=e.includeReferences!==!1;return r&&e.includeCallees!==!0&&e.includeSignatures!==!0&&e.definitionCount<=rs||r&&e.includeCallees===!0&&e.includeSignatures!==!0&&e.definitionCount<=is?0:lr}function ss(t){let e=t?.trim().toLowerCase(),n=e==="0"||e==="false"||e==="off"||e==="worker",r=e==="1"||e==="true"||e==="on"||e==="durable",i=e===void 0||e==="";return{transport:n||!i&&!r?"worker":"durable",source:i?"default":"environment",fallback:"worker",valid:i||n||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function os(t){return ss(t).transport}function as(t,e){let n=null,r=!1,i=!1,s=!1,o=()=>n??=e(),a=()=>{i||(t.shutdown(),i=!0)},c=(u,l,f)=>{let d=ps(u);r=!0;try{a()}catch{}_()&&Ee({type:"span",name:"rust.semantic.durable-session.request",durationMs:f,ok:!1,kind:l,session:"worker-fallback",reason:d})},p=(u,l,f)=>{if(s)throw new Error("Rust semantic failover session was already disposed.");if(r)return f(o());let d=performance.now();try{return l(t)}catch(m){c(m,u,performance.now()-d)}return f(o())};return{requestSemantic(u,l){return p("semantic",f=>f.requestSemantic(u,l),f=>f.requestSemantic(u,l))},requestImportDefinitions(u,l){return p("import-definitions",f=>f.requestImportDefinitions(u,l),f=>f.requestImportDefinitions(u,l))},shutdown(){if(s)return;s=!0;let u=[];try{a()}catch(l){u.push(l)}try{n?.shutdown()}catch(l){u.push(l)}if(u.length>0)throw u[0]}}}function cs(t,e,n={worker:()=>ls(),durable:()=>Xn(t,{serverPath:Ve(ys()),semanticWorkerPath:Ve(fr())})}){return os(e)==="durable"?as(n.durable(),n.worker):n.worker()}function ls(t={}){let e=null,n=null,r=1,i=!1,s=null,o=null,a=l=>{l&&Rt(l,{recursive:!0,force:!0})},c=()=>{if(s)return;let l=e,f=n;e=null,n=null;let d=l?l.terminate():Promise.resolve(0);s=Promise.allSettled([d,rr(f,{gracefulMs:1e3,forceMs:1e3})]).then(([m,R])=>{let S=(R.status==="fulfilled"?R.value:[{reaped:!1,detail:String(R.reason)}]).filter(h=>!h.reaped);if(m.status==="rejected"||S.length>0){o=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${f??"unknown"}.`);return}a(f)}).finally(()=>{s=null})},p=()=>{if(e)return e;if(s)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(o)throw o;let l=t.semanticWorkerPath?es(t.semanticWorkerPath):fr();if(!Xi(Ve(l)))throw new Error(`Rust semantic session worker was not found at ${Ve(l)}. Run npm run build before using built semantic Rust queries.`);return n=ir(ht(sr(),"codebaseiq-rust-session-")),e=new ns(l,t.shareEnvironment?{env:ts}:void 0),e.unref(),e},u=()=>{let l=n??ir(ht(sr(),"codebaseiq-rust-session-"));return n=l,ht(l,`${r++}.json`)};return{requestSemantic(l,f){if(i)throw new Error("Rust semantic session was already disposed.");let d=p(),m=u(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(d.postMessage({kind:"semantic",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,f)==="timed-out")throw c(),new Error(`Rust semantic session worker timed out after ${(f/1e3).toFixed(0)}s`);try{let h=us(B(m,{maxBytes:H,inputKind:"Rust semantic worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{Rt(m,{force:!0})}},requestImportDefinitions(l,f){if(i)throw new Error("Rust semantic session was already disposed.");let d=p(),m=u(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(d.postMessage({kind:"import-definitions",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,f)==="timed-out")throw c(),new Error(`Rust semantic import-definition session worker timed out after ${(f/1e3).toFixed(0)}s`);try{let h=fs(B(m,{maxBytes:H,inputKind:"Rust import-definition worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{Rt(m,{force:!0})}},shutdown(){if(i)return;if(i=!0,!e){a(n),n=null;return}let l=u(),f=new SharedArrayBuffer(4),d=new Int32Array(f);e.postMessage({kind:"shutdown",responsePath:l,sharedBuffer:f}),Atomics.wait(d,0,0,5e3),c()}}}function us(t){let e=JSON.parse(t);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let n=e;return n.ok===!0&&"response"in n?{ok:!0,response:n.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function fs(t){let e=JSON.parse(t);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let n=e;return n.ok===!0&&"response"in n?{ok:!0,response:n.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function ps(t){let e=t instanceof Error?`${t.name} ${t.message}`.toLowerCase():String(t).toLowerCase();return e.includes("readiness")?"readiness":e.includes("timeout")||e.includes("timed out")?"timeout":e.includes("helper")?"helper":"request"}function ge(t){return new Map(t.map(e=>[e.symbolId,[]]))}function be(t){return new Map(t.map(e=>[e.symbolId,[]]))}function cr(t){return new Map(t.map(e=>[e.symbolId,null]))}function It(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??[]]))}function ds(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??null]))}function ms(t){let e=0;return t.includeReferences!==!1&&(e+=(t.referenceDefinitions??t.definitions).length),t.includeCallees===!0&&(e+=(t.calleeDefinitions??t.definitions).length),t.includeSignatures===!0&&(e+=(t.signatureDefinitions??t.definitions).length),Math.max(1,e)}function vt(t,e){return e&&e>0?Math.max(t,e):t}function fr(){return new URL("./rust-semantic-session-worker.js",import.meta.url)}function ys(){return new URL("./rust-semantic-session-server.js",import.meta.url)}function Ke(t,e){return Z(t)??e}function He(t,e){return pr(t)??e}function pr(t){if(!t)return null;let e=Number(t);return Number.isInteger(e)&&e>=0?e:null}var Ct=15e3,Tt=8;function Sr(t,e={}){let n=e.status??Be,r=Rs(t,n),i=hs(t,n),s=Is(t,n),o=e.referenceResolver||e.calleeResolver||e.signatureResolver||!gs(e)?null:ur(t,n,{fallbackReferenceResolver:r,fallbackCalleeResolver:i,fallbackSignatureResolver:s}),a=e.referenceResolver??o??r,c=e.calleeResolver??o??i,p=e.signatureResolver??o??s,u=e.importUsageResolver??Nn(e.sourceImportUsageResolver??bs(),e.importDefinitionResolver??o),l=e.calleeSymbolResolver,f=e.sourceZeroCalleeOracle,d=e.scipOccurrenceCalleeOracle,m=new Map,R=new Map,I=null,S=null,h=()=>(I??=n(t),I),E=()=>{let b=h();return b.dependencyAvailable?S??b:b},M=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=a.referencesForDefinitions(y),T=h();return S=$e(T,g),g.available?new Map(g.references):K(y,g.references)}catch(g){let T=h();return S=he(T,g),J(y)}},v=b=>{if(b.length===0)return new Map;let y=Ie(b),g=y.filter(dr);if(g.length===0)return G(y);let T=new Map,j=yr(g,d),F=[];for(let w of g)R.has(w.symbolId)?T.set(w.symbolId,R.get(w.symbolId)??[]):j.has(w.symbolId)?T.set(w.symbolId,j.get(w.symbolId)??[]):mr(w,f)?T.set(w.symbolId,[]):F.push(w);if(F.length===0)return ie(y,T,void 0);try{let w=c.calleesForDefinitions(F),O=h();S=$e(O,w);let P=ie(F,w.callees,l);for(let[ce,tt]of P)T.set(ce,tt);return ie(y,T,void 0)}catch(w){let O=h();return S=he(O,w),G(y)}},C=(b,y)=>{let g=Ie(b),T=Ie(y),j=T.filter(dr),F=new Map,w=yr(j,d),O=[];for(let P of j)w.has(P.symbolId)?F.set(P.symbolId,w.get(P.symbolId)??[]):mr(P,f)?F.set(P.symbolId,[]):O.push(P);if(g.length===0&&O.length===0)return{references:J(g),callees:ie(T,F,void 0)};try{let P=o?o.referencesAndCalleesForDefinitions(g,O):xs(a,c,{referenceDefinitions:g,calleeDefinitions:O}),ce=h();S=$e(ce,P);let tt=P.available?new Map(P.references):K(g,P.references);for(let[nt,rt]of P.callees)F.set(nt,rt);let Xt=ie(T,F,l);for(let[nt,rt]of Xt)R.set(nt,rt);return{references:tt,callees:Xt}}catch(P){let ce=h();return S=he(ce,P),{references:J(g),callees:G(T)}}},D=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=p.signaturesForDefinitions(y),T=h();return S=$e(T,g),gr(y,g.signatures)}catch(g){let T=h();return S=he(T,g),Ye(y)}};return{language:"rust",availability:E,dispose:()=>{o?.dispose()},importUsage:b=>{let y=m.get(b);if(y)return y;try{let g=u.importUsage(b);return m.set(b,g),g}catch(g){let T=h();return S=he(T,g),[]}},referencesFor:b=>M([b]).get(b.symbolId)??[],referencesForDefinitions:M,referencesAndCalleesForDefinitions:C,calleesFor:b=>v([b]).get(b.symbolId)??[],calleesForDefinitions:v,signatureFor:b=>D([b]).get(b.symbolId)??null}}function $e(t,e){let n={dependencyAvailable:t.dependencyAvailable,resolvedBinary:e.resolvedBinary??t.resolvedBinary,...t.note?{note:t.note}:{}};return e.available?{available:!0,...n}:{available:!1,reason:e.reason,...n}}function he(t,e){return{available:!1,dependencyAvailable:t.dependencyAvailable,resolvedBinary:t.resolvedBinary,...t.note?{note:t.note}:{},reason:e instanceof Error?e.message:String(e)}}function gs(t){if(t.usePersistentSession!==void 0)return t.usePersistentSession;let e=process.env.SCIP_RUST_SEMANTIC_SESSION;return e!=="0"&&e!=="false"}function bs(){return{importUsageFacts:()=>({usage:[],positions:[]})}}function Ie(t){return t.map(e=>{let n=e;return{...e,leaf:typeof n.leaf=="string"?n.leaf:V(e.symbol),parentTypeName:n.parentTypeName??null,isFunctionLike:typeof n.isFunctionLike=="boolean"?n.isFunctionLike:In(e.symbol),isTypeLike:n.isTypeLike??!1,kind:n.kind??null,documentation:n.documentation??null,enclosingSymbol:n.enclosingSymbol??null}})}function dr(t){return t.isFunctionLike}function mr(t,e){if(!e)return!1;try{return e(t)}catch{return!1}}function yr(t,e){if(!e||t.length===0)return new Map;try{return e(t)}catch{return new Map}}function Rs(t,e){return{referencesForDefinitions:n=>Ms(t,e,n)}}function hs(t,e){return{calleesForDefinitions:n=>vs(t,e,n)}}function Is(t,e){return{signaturesForDefinitions:n=>Ds(t,e,n)}}function Ms(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Et(r),references:J(n)};let i=wt();if(!xt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,references:J(n)};let s=se(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Ct),o=Je(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),a=se(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Tt),c=Je(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),p=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!0}),u={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,...o>0?{referenceRetryTimeoutMs:o}:{},diagnosticsTimeoutMs:c,settleDelayMs:p,concurrency:a},l=Dt(process.execPath,[i],{cwd:t,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(n.length,vt(s,u.referenceRetryTimeoutMs),a)}),f=Pt(l.stdout);if(f)return{...kt(f),resolvedBinary:r.resolvedBinary,references:K(n,new Map(f.references),new Set(f.incompleteReferenceSymbolIds??[]))};let d=l.error instanceof Error?l.error.message:l.stderr.trim()||`Rust semantic worker exited with status ${l.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,references:J(n)}}function vs(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Et(r),callees:G(n)};let i=wt();if(!xt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,callees:G(n)};let s=se(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Ct),o=se(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Tt),a=Je(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!1,includeCallees:!0}),p={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:o,includeReferences:!1,includeCallees:!0},u=Dt(process.execPath,[i],{cwd:t,input:JSON.stringify(p),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(n.length,s,o)}),l=Pt(u.stdout);if(l)return{...kt(l),resolvedBinary:r.resolvedBinary,callees:ie(n,new Map(l.callees??[]),void 0)};let f=u.error instanceof Error?u.error.message:u.stderr.trim()||`Rust semantic worker exited with status ${u.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:f,callees:G(n)}}function Ds(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Et(r),signatures:Ye(n)};let i=wt();if(!xt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,signatures:Ye(n)};let s=se(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Ct),o=se(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Tt),a=Je(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!1,includeCallees:!1,includeSignatures:!0}),p={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:o,includeReferences:!1,includeCallees:!1,includeSignatures:!0},u=Dt(process.execPath,[i],{cwd:t,input:JSON.stringify(p),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(n.length,s,o)}),l=Pt(u.stdout);if(l)return{...kt(l),resolvedBinary:r.resolvedBinary,signatures:gr(n,new Map(l.signatures??[]))};let f=u.error instanceof Error?u.error.message:u.stderr.trim()||`Rust semantic worker exited with status ${u.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:f,signatures:Ye(n)}}function xs(t,e,n){let r=n.referenceDefinitions.length>0?t.referencesForDefinitions(n.referenceDefinitions):{available:!0,references:J(n.referenceDefinitions)},i=n.calleeDefinitions.length>0?e.calleesForDefinitions(n.calleeDefinitions):{available:!0,callees:G(n.calleeDefinitions)},s={resolvedBinary:r.resolvedBinary??i.resolvedBinary,references:r.references,callees:i.callees};return r.available&&i.available?{available:!0,...s}:{available:!1,reason:(r.available?void 0:r.reason)??(i.available?void 0:i.reason)??"Rust semantic resolution was unavailable.",...s}}function J(t){return new Map(t.map(e=>[e.symbolId,[]]))}function G(t){return new Map(t.map(e=>[e.symbolId,[]]))}function Ye(t){return new Map(t.map(e=>[e.symbolId,null]))}function ie(t,e,n){let r=0,i=0;return k("rust.semantic.callees.complete-map",()=>{let s=new Map;for(let o of t){let a=e.get(o.symbolId)??[];a.length>0&&(r+=1),i+=a.length,s.set(o.symbolId,a.map(c=>({...c,symbol:n?n(c):c.symbol})))}return s},()=>({definitions:t.length,rows:r,callees:i,resolveSymbols:!!n}))}function gr(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??null]))}function wt(){return Ss(new URL("./rust-semantic-worker.js",import.meta.url))}function kt(t){return t.available?{available:!0}:{available:!1,reason:t.reason}}function Et(t){return t.available?"rust-analyzer binary path is unavailable.":t.reason}function Pt(t){try{let e=JSON.parse(t);if(!e||typeof e!="object")return null;let n=e;if(typeof n.available!="boolean"||!Array.isArray(n.references)||n.available===!1&&typeof n.reason!="string"||n.available===!0&&n.reason!==void 0)return null;let r={references:n.references,incompleteReferenceSymbolIds:Array.isArray(n.incompleteReferenceSymbolIds)?n.incompleteReferenceSymbolIds.filter(i=>typeof i=="number"):void 0,callees:Array.isArray(n.callees)?n.callees:void 0,signatures:Array.isArray(n.signatures)?n.signatures:void 0};return n.available===!0?{available:!0,...r}:{available:!1,reason:String(n.reason),...r}}catch{return null}}function se(t,e){return Z(t)??e}function Je(t,e){if(!t)return e;let n=Number(t);return Number.isInteger(n)&&n>=0?n:e}var br=new WeakMap;function hr(t,e){let n=e.filter(Cs);if(n.length===0)return new Map;let r=0,i=0;return k("rust.scip-occurrence.callees",()=>{let s=ks(t),o=new Map;for(let a of n){let c=Ts(t,s,a);c!==null&&(o.set(a.symbolId,c),r+=1,i+=c.length)}return o},()=>({definitions:e.length,candidates:n.length,resolvedDefinitions:r,resolvedCallees:i}))}function Cs(t){return!(!t.symbol.startsWith("rust-analyzer ")||!t.relativePath.endsWith(".rs")||!t.isFunctionLike||t.leaf==="main"||de(t.symbol))}function Ts(t,e,n){let r=Pe(t,n.relativePath);if(!r||r.language!=="rust")return null;let i=r.callables.find(u=>u.startLine!==n.startLine||u.endLine!==n.endLine?!1:u.name===n.leaf||n.leaf.endsWith(u.name)||u.name.endsWith(n.leaf));if(!i)return null;let s=r.callSites.filter(u=>u.line>=i.startLine&&u.line<=i.endLine);if(s.length===0)return null;let o=Es(t,e,n.relativePath);if(!o)return null;let a=o.filter(u=>u.line>=i.startLine&&u.line<=i.endLine&&u.callee.symbol!==n.symbol);if(a.some(u=>u.traitImplMember)||!ws(s,a))return null;let c=[],p=new Set;for(let u of a){let l=`${u.callee.symbol}\0${u.callee.file}\0${u.callee.line}`;p.has(l)||(p.add(l),c.push(u.callee))}return c}function ws(t,e){let n=Rr(t),r=Rr(e);if(n.size!==r.size)return!1;for(let[i,s]of n)if(r.get(i)!==s)return!1;return!0}function Rr(t){let e=new Map;for(let n of t){let r=n.calleeLeaf??n.leaf;if(!r)continue;let i=`${n.line}\0${r}`;e.set(i,(e.get(i)??0)+1)}return e}function ks(t){let e=br.get(t);if(!e){let n=Fe(t).filter(r=>r.symbol.startsWith("rust-analyzer ")&&r.relativePath.endsWith(".rs")&&r.isFunctionLike);e={definitionBySymbol:new Map(n.map(r=>[r.symbol,r])),occurrencesByFile:new Map},br.set(t,e)}return e}function Es(t,e,n){return e.occurrencesByFile.has(n)||e.occurrencesByFile.set(n,Ps(t,e,n)),e.occurrencesByFile.get(n)??null}function Ps(t,e,n){if(!n.endsWith(".rs")||t.isIgnored(n))return[];let r=xn(t,n);if(!r)return null;let i=[];for(let s of r){if((s.roles&1)!==0)continue;let o=e.definitionBySymbol.get(s.symbol);if(!o)continue;let a=s.range[0];i.push({line:a,leaf:o.leaf,traitImplMember:de(o.symbol),callee:{symbol:o.symbol,file:o.relativePath,line:o.startLine,callsiteLine:a}})}return i}var Ge=class{sessions=new WeakMap;getOrCreate(e,n,r){let i=As(e,n),s=this.sessions.get(e);s||(s=new Map,this.sessions.set(e,s));let o=s.get(i);if(o)return o.hits+=1,o.lastUsedAtMs=Date.now(),o.provider;let a=Date.now(),c=r();return s.set(i,{key:i,language:n,projectRoot:e.config.projectRoot,provider:c,createdAtMs:a,lastUsedAtMs:a,hits:1}),c}sessionsFor(e){return[...this.sessions.get(e)?.values()??[]]}clear(e){let n=this.sessions.get(e);if(n)for(let r of n.values())r.provider.dispose?.();this.sessions.delete(e)}};function As(t,e){return`${t.config.projectRoot}:${e}-workspace`}import{randomUUID as io}from"crypto";import{existsSync as so}from"fs";import{dirname as oo}from"path";function Ir(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t;if(typeof e.available!="boolean"||e.dependencyAvailable!==void 0&&typeof e.dependencyAvailable!="boolean"||e.tsconfigPath!==void 0&&typeof e.tsconfigPath!="string"||e.tsconfigPaths!==void 0&&(!Array.isArray(e.tsconfigPaths)||!e.tsconfigPaths.every(n=>typeof n=="string"))||e.resolvedBinary!==void 0&&typeof e.resolvedBinary!="string"||e.note!==void 0&&typeof e.note!="string")return null;if(e.available===!0){if(e.reason!==void 0)return null}else if(typeof e.reason!="string"||e.reason.length===0)return null;return e}import{performance as x}from"perf_hooks";function U(t,e,n){if(t.has(e))return t.get(e);let r=n();return t.set(e,r),r}import Dr from"path";import{realpathSync as Mr}from"fs";function Fs(t,e){return t.getReferences().map(n=>{let r=n.getNode();return Qe(r,e)})}function Ns(t){let e=t;return typeof e.findReferences=="function"?e.findReferences():[]}function xr(t,e,n,r){let i=[];for(let s of Ns(t))for(let o of Fs(s,r))o.file===e.relativePath&&o.line>=e.startLine&&o.line<=e.endLine||i.push(o);for(let s of n)i.push(s);return oe(i)}function Cr(t,e,n,r){let i=[],s=n?.getStart();for(let o of t.getReferences()){let a=o.getNode();ae(r,a.getSourceFile().getFilePath())===e&&(s!==void 0&&a.getStart()===s||i.push({location:Qe(a,r),node:a}))}return i}function Qe(t,e){let n=t.getSourceFile(),r=n.getLineAndColumnAtPos(t.getStart());return{file:ae(e,n.getFilePath())??n.getBaseName(),line:r.line-1,column:r.column-1}}function At(t,e,n){let r=t.getSourceFile(),i=Nt(r,t),s=t.getText(),o=new RegExp(`\\b${pe(s)}\\b`,"g"),a=r.getFullText().split(`
2
2
  `),c=[];for(let p=0;p<a.length;p++){if(p===i)continue;let u=a[p]??"";o.lastIndex=0;let l;for(;(l=o.exec(u))!==null;)c.push({file:e,line:p,column:l.index})}return oe(c.filter(p=>ae(n,Dr.join(n,p.file))===e))}function Ft(t){for(let e=t;e;e=e.getParent()){let n=e.getKindName();if(n.includes("Type")||n==="InterfaceDeclaration"||n==="TypeAliasDeclaration")return!0;if(n==="CallExpression"||n==="NewExpression"||n==="ExpressionStatement")return!1}return!1}function Nt(t,e){return t.getLineAndColumnAtPos(e.getStart()).line-1}function oe(t){let e=new Set,n=[];for(let r of t){let i=`${r.file}:${r.line}:${r.column}`;e.has(i)||(e.add(i),n.push(r))}return n}function ae(t,e){let n=t||process.cwd(),r=vr(n,e);if(r)return r;try{return vr(Mr(n),Mr(e))}catch{return null}}function vr(t,e){let n=Dr.relative(t,e).replace(/\\/g,"/");return!n||n===".."||n.startsWith("../")?null:n}function Tr(t,e,n,r){let i=_s(e,r);return i.size===0?new Map:Ls(t,n,i)}function _s(t,e){let n=new Map;for(let r of z(t,e)){let i=V(r.symbol)??r.leaf;if(!i)continue;let s=n.get(i);s||(s=[],n.set(i,s)),s.push(r)}return n}function Ls(t,e,n){let r=new Map,i=new Map;return e.forEachDescendant(s=>{for(let o of Os(t,s)){let a=n.get(o);if(!a)continue;let c=Nt(e,s);for(let p of a){if(c<p.startLine-1||c>p.endLine+1)continue;let u=Math.abs(c-p.startLine),l=i.get(p.symbolId);l!==void 0&&l<=u||(i.set(p.symbolId,u),r.set(p.symbolId,s))}}}),r}function Os(t,e){let n=[],r=i=>{i&&!n.includes(i)&&n.push(i)};if("getNameNode"in e&&typeof e.getNameNode=="function"){let i=e.getNameNode();r(i?.getText())}if("getName"in e&&typeof e.getName=="function"){let i=e.getName();r(i)}return t.Node.isIdentifier(e)&&r(e.getText()),n}var Us=sn("ts-definition-leaf-candidates",{clearGroups:["definition-catalog"]});function wr(t,e,n,r){let i=Ot(t,e),s=_t(i.get(r)??[],n);if(s)return s;let o=[];for(let a of i.values())for(let c of a)((c.leaf||V(c.symbol)||"").includes(r)||c.symbol.includes(r))&&o.push(c);return _t(o,n)}function Lt(t,e,n,r){return _t(Ot(t,e).get(r)??[],n)}function kr(t,e){let n=new Map;for(let[r,i]of Ot(t,e)){let s=i[0];s&&n.set(r,s)}return n}function Ot(t,e){return Us.get(t,e,()=>{let n=new Map;for(let r of z(t,e)){let i=r.leaf||V(r.symbol);if(!i)continue;let s=n.get(i);s||(s=[],n.set(i,s)),s.push({...r,leaf:i})}for(let r of n.values())r.sort((i,s)=>i.startLine-s.startLine||i.endLine-s.endLine||i.symbolId-s.symbolId);return n})}function _t(t,e){let n=null,r=Number.POSITIVE_INFINITY;for(let i of t){let s=Math.abs(i.startLine-e);(s<r||s===r&&n&&i.startLine<n.startLine)&&(n=i,r=s)}return n}import Bs from"path";import{realpathSync as qs}from"fs";function Er(t,e){let n=new Map,r=null,i=null,s=()=>(i??=ke(t,{extensions:Le}),i),o=()=>(r??=k("typescript.source-file-index",()=>js(t.config.projectRoot,e,s()),()=>({projects:e.length,indexedDocuments:s().length})),r),a=c=>te(c)?U(n,c,()=>{let p=Pr(t.config.projectRoot,c);if(!p)return null;for(let{project:u,sourceFiles:l}of o()){let f=l.get(p)??null;if(f||(f=u.addSourceFileAtPathIfExists(p)??null,f&&Ut(l,f)),f)return{project:u,sourceFile:f}}return null}):null;return{sourceFile:c=>a(c)?.sourceFile??null,sourceFileMatch:a,indexedTypeScriptLikeDocuments:s}}function js(t,e,n){let r=e.map(({project:i})=>{let s=new Map;for(let o of i.getSourceFiles())Ut(s,o);return{project:i,sourceFiles:s}});for(let i of n){let s=Pr(t,i);if(s)for(let o of r){if(o.sourceFiles.has(s))break;let a=o.project.addSourceFileAtPathIfExists(s)??null;if(a){Ut(o.sourceFiles,a);break}}}return r}function Ut(t,e){let n=Bt(e.getFilePath());t.set(n,e);try{t.set(Bt(qs(n)),e)}catch(r){if(!fe(r))throw r}}function Pr(t,e){try{return Bt(dn(t,e,{inputKind:"indexed TypeScript source file"}).absolutePath)}catch(n){if(!fe(n))throw n;return null}}function Bt(t){return Bs.resolve(t)}function qt(t,e){for(let n of t)if(e===n.name||e.startsWith(`${n.name}/`))return n.name;return null}function Ar(t){let e=`${t.relativeDir}/src`;return[`${e}/index.ts`,`${e}/index.tsx`,`${e}/index.mts`,`${e}/index.cts`]}import{existsSync as Me}from"fs";import A from"path";var jt=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"];function Wt(t,e){let r=e?A.dirname(A.join(t,e)):t,i=A.resolve(t);for(;r.startsWith(i);){for(let o of jt){let a=A.join(r,o);if(Me(a))return a}let s=A.dirname(r);if(s===r)break;r=s}for(let s of jt){let o=A.join(t,s);if(Me(o))return o}return null}function Fr(t){let e=t.config.projectRoot,n=new Set(Ws(e,t.config.semantic?.typescript?.tsconfigs)),r=ke(t,{includeIgnored:!1,extensions:Le});for(let i of r){let s=Wt(e,i);s&&n.add(A.resolve(s))}if(n.size===0){let i=Wt(e);i&&n.add(A.resolve(i))}return[...n].filter(i=>!Nr(e,i)).sort((i,s)=>i.localeCompare(s))}function Ws(t,e=[]){let n=new Set;for(let r of e){let i=A.isAbsolute(r)?r:A.join(t,r);Me(i)&&n.add(A.resolve(i))}for(let r of zs(t))for(let i of jt){let s=A.join(r,i);Me(s)&&n.add(A.resolve(s))}if(n.size===0){let r=Wt(t);r&&n.add(A.resolve(r))}return[...n].filter(r=>!Nr(t,r)).sort((r,i)=>r.localeCompare(i))}function zs(t){let e=A.join(t,"package.json");if(!Me(e))return[];let n;try{n=JSON.parse(rn(e,"project package manifest"))}catch{return[]}return(Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages??[]).flatMap(i=>un(t,i))}function Nr(t,e){let n=A.relative(t,e).replace(/\\/g,"/");return n.startsWith("..")||n.includes("/node_modules/")||n.startsWith("node_modules/")||n.includes("/dist/")||n.startsWith("dist/")}function zt(t,e){try{return t()}catch{e?.();return}}var Ks=32;function qr(t,e){let n=k("typescript.provider.load",()=>kn());if(!n)return Oe("ts-morph is not installed");let r=k("typescript.provider.tsconfig-discovery",()=>Fr(t));if(r.length===0)return Oe("no tsconfig found");try{let i=k("typescript.provider.project-bundles",()=>En(n,r),()=>({tsconfigs:r.length}));return Hs(t,n,i)}catch(i){return Oe(i instanceof Error?i.message:String(i),r[0],r)}}function Hs(t,e,n,r={}){return k("typescript.provider.construct",()=>new Kt(t,e,n),()=>({tsconfigs:n.length,reusedProjects:r.reusedProjects===!0}))}var Kt=class{constructor(e,n,r){this.db=e;this.tsMorph=n;this.projects=r;this.workspacePackages=ln(e.config.projectRoot),this.sourceFiles=Er(e,r)}db;tsMorph;projects;language="typescript";importUsageCache=new Map;referencesCache=new Map;calleesCache=new Map;fileCalleesCache=new Map;signatureCache=new Map;definitionNodeCache=new Map;fileDefinitionNodeCache=new Map;indexedDefinitionLeafCache=new Map;compilerCheckerCache=new WeakMap;packageImportReferenceIndex=null;packageExportIndex=null;workspacePackages;sourceFiles;availability(){return{available:!0,tsconfigPath:this.projects[0]?.tsconfigPath,tsconfigPaths:this.projects.map(e=>e.tsconfigPath)}}importUsage(e){return U(this.importUsageCache,e,()=>{let n=this.sourceFiles.sourceFile(e);if(!n)return[];let r=$s();return k("typescript.import-usage.file",()=>this.importUsageForSourceFile(e,n,r),()=>({file:e,...r}))})}referencesFor(e){return U(this.referencesCache,e.symbolId,()=>{let n=this.nodeForDefinition(e);return this.referencesForDefinitionNode(e,n)})}referencesForDefinitions(e,n={}){let r=new Map,i=_(),s=[];for(let u of e){let l=this.referencesCache.get(u.symbolId);l?r.set(u.symbolId,l):s.push(u)}if(s.length===0)return r;let o=s,a=n.exact?[]:s.filter(u=>!Lr(u));if(a.length>=Ks){let u=this.referencesForDefinitionsBySymbolScan(a);if(u.incompleteFiles.size===0)for(let l of a){let f=u.references.get(l.symbolId)??[];this.referencesCache.set(l.symbolId,f),r.set(l.symbolId,f)}if(o=s.filter(l=>Lr(l)),o.length===0)return r}let c=new Map;for(let u of o){let l=c.get(u.relativePath);l?l.push(u):c.set(u.relativePath,[u])}let p=[];for(let[u,l]of c){let f=Or();k("typescript.references-map.file",()=>{let d=this.definitionNodesForFile(u);for(let m of l){i&&(f.cacheMisses+=1);let R=d.get(m.symbolId)??null;i&&(R?f.nodeHits+=1:f.nodeMisses+=1);try{let I=this.referencesForDefinitionNode(m,R,i?f:void 0);this.referencesCache.set(m.symbolId,I),r.set(m.symbolId,I)}catch{f.preciseSearchFailures+=1,p.push(m)}}},()=>({relativePath:u,definitions:l.length,...Ur(f)}))}if(p.length>0){let u=this.referencesForDefinitionsBySymbolScan(p);if(u.incompleteFiles.size===0)for(let l of p){let f=u.references.get(l.symbolId)??[];this.referencesCache.set(l.symbolId,f),r.set(l.symbolId,f)}}return r}referenceFragmentsForFiles(e){let n=Fe(this.db).filter(o=>te(o.relativePath)),r=e.filter(o=>this.sourceFiles.sourceFile(o)!==null),i=this.referencesForDefinitionsBySymbolScan(n,r),s=r.filter(o=>!i.incompleteFiles.has(o));return Pn(n,i.references,s)}referencesForDefinitionsBySymbolScan(e,n){let r=_(),i=Or(),s=new Map,o=new Set,a=new Set(e.map(p=>p.symbolId)),c=new Map(e.map(p=>[p.symbolId,p]));for(let p of e)s.set(p.symbolId,[]);return k("typescript.references-map.inverted-scan",()=>{let p=r?x.now():0,u=n?this.packageImportReferencesForFiles(n):this.packageImportReferences();for(let S of e){let h=u.get(S.symbolId)??[];if(h.length>0){let E=s.get(S.symbolId)??[];E.push(...h),s.set(S.symbolId,E)}r&&(i.packageReferenceCount+=h.length)}r&&(i.packageRefsMs+=x.now()-p);let l=new Map,f=new Map,d=this.hierarchyTargetsForDefinitions(e),m=new Set(e.map(S=>S.leaf).filter(Boolean)),R=r?x.now():0;for(let S of n??this.sourceFiles.indexedTypeScriptLikeDocuments()){if(this.db.isIgnored(S))continue;let h=this.sourceFiles.sourceFile(S);if(!h)continue;r&&(i.scanFiles+=1),this.addReferencesFromSourceFileScan(h,S,a,c,d,m,l,f,s,r?i:void 0)||o.add(S)}r&&(i.scanMs+=x.now()-R);let I=r?x.now():0;this.addHierarchyMemberReferences(e,s,r?i:void 0),r&&(i.hierarchyMs+=x.now()-I);for(let[S,h]of s){let E=oe(h);s.set(S,E),r&&(i.referenceCount+=E.length)}},()=>({definitions:e.length,...Ur(i)})),{references:s,incompleteFiles:o}}addReferencesFromSourceFileScan(e,n,r,i,s,o,a,c,p,u){let l=this.compilerCheckerForSourceFile(e),f=e.compilerNode,d=Gs(e),m=!0,R=I=>{if(this.tsMorph.ts.isIdentifier(I)){if(u&&(u.identifiers+=1),!o.has(I.text)&&!d.has(I.text)){this.tsMorph.ts.forEachChild(I,R);return}let S=this.compilerReferenceSymbol(l,I,u,()=>{m=!1});if(S){let h;a.has(S)?h=a.get(S)??null:(h=this.referenceDefinitionFromCompilerSymbol(S),a.set(S,h)),u&&(h?u.targetHits+=1:u.targetMisses+=1);let E=U(c,S,()=>this.compilerSymbolKeys(S)),M=null,v=null,C=h&&r.has(h.symbolId)?i.get(h.symbolId):void 0;if(C&&(M=Ze(f,I),!_r(C,n,M))){let D=f.getLineAndCharacterOfPosition(I.getStart(f));v={file:n,line:D.line,column:D.character};let b=p.get(C.symbolId)??[];b.push(v),p.set(C.symbolId,b),u&&(u.requestedHits+=1)}for(let D of E)for(let b of s.get(D)?.values()??[]){if(M??=Ze(f,I),_r(b,n,M))continue;if(!v){let g=f.getLineAndCharacterOfPosition(I.getStart(f));v={file:n,line:g.line,column:g.character}}let y=p.get(b.symbolId)??[];y.push(v),p.set(b.symbolId,y),u&&(u.requestedHits+=1)}}}this.tsMorph.ts.forEachChild(I,R)};return R(f),m}hierarchyTargetsForDefinitions(e){let n=new Map;for(let r of e){let i=this.nodeForDefinition(r),s=i?.compilerNode;if(!s||!this.isHierarchyMethod(s))continue;let o=s.parent;if(!this.isHierarchyContainer(o))continue;let a=this.compilerCheckerForSourceFile(i.getSourceFile()),c=a.getSymbolAtLocation(s.name);if(c)for(let p of this.hierarchyMemberSymbols(a,o,c))for(let u of this.compilerSymbolKeys(p)){let l=n.get(u)??new Map;l.set(r.symbolId,r),n.set(u,l)}}return n}hierarchyMemberSymbols(e,n,r){let i=new Set,s=new Set,o=(a,c,p)=>{if(!s.has(a)){s.add(a),i.add(c);for(let u of p){let l=u.getProperty(r.name);l&&o(u,l,this.hierarchyAncestorTypesForType(e,u))}}};return o(e.getTypeAtLocation(n),r,this.hierarchyAncestorTypes(e,n)),i}addHierarchyMemberReferences(e,n,r){let i=new Map;for(let s of e){let o=this.nodeForDefinition(s),a=o?.compilerNode;if(!a||!this.isHierarchyMethod(a))continue;let c=a.parent;if(!this.isHierarchyContainer(c))continue;let p=this.compilerCheckerForSourceFile(o.getSourceFile()),u=p.getSymbolAtLocation(a.name);if(!u)continue;let l=a.getSourceFile(),f=l.getLineAndCharacterOfPosition(a.name.getStart(l)),d={definition:s,location:{file:s.relativePath,line:f.line,column:f.character}},m=n.get(s.symbolId)??[];for(let I of this.hierarchyMemberSymbols(p,c,u))if(I!==u)for(let S of this.compilerSymbolLocations(I))m.push(S),r&&(r.hierarchyReferences+=1);n.set(s.symbolId,m);let R=this.hierarchyRootMemberSymbols(p,c,u);for(let I of R){let S=i.get(I)??new Map;S.set(s.symbolId,d),i.set(I,S)}r&&(r.hierarchyDefinitions+=1)}for(let s of i.values())if(!(s.size<2)){r&&(r.hierarchyFamilies+=1);for(let{definition:o}of s.values()){let a=n.get(o.symbolId)??[];for(let c of s.values())c.definition.symbolId!==o.symbolId&&(a.push(c.location),r&&(r.hierarchyReferences+=1));n.set(o.symbolId,a)}}}hierarchyRootMemberSymbols(e,n,r){let i=new Set,s=new Set,o=(a,c,p)=>{if(s.has(a))return;s.add(a);let u=!1;for(let l of p){let f=l.getProperty(r.name);f&&(u=!0,o(l,f,this.hierarchyAncestorTypesForType(e,l)))}if(!u)for(let l of this.compilerSymbolKeys(c))i.add(l)};return o(e.getTypeAtLocation(n),r,this.hierarchyAncestorTypes(e,n)),i}compilerSymbolKeys(e){return(e.declarations??[]).map(n=>{let r=n.getSourceFile();return`${r.fileName}\0${n.getStart(r)}\0${e.name}`})}compilerSymbolLocations(e){let n=[];for(let r of e.declarations??[]){let i=r.getSourceFile(),s=ae(this.db.config.projectRoot,i.fileName);if(!s)continue;let o=r.name,a=i.getLineAndCharacterOfPosition((o??r).getStart(i));n.push({file:s,line:a.line,column:a.character})}return n}baseTypes(e,n){try{return e.getBaseTypes(n)??[]}catch{return[]}}hierarchyAncestorTypes(e,n){let r=new Set(this.hierarchyAncestorTypesForType(e,e.getTypeAtLocation(n)));for(let i of n.heritageClauses??[])for(let s of i.types)r.add(e.getTypeAtLocation(s));return[...r]}hierarchyAncestorTypesForType(e,n){let r=new Set(this.baseTypes(e,n));for(let i of n.getSymbol()?.declarations??[])if(this.isHierarchyContainer(i))for(let s of i.heritageClauses??[])for(let o of s.types)r.add(e.getTypeAtLocation(o));return[...r]}isHierarchyMethod(e){return this.tsMorph.ts.isMethodDeclaration(e)||this.tsMorph.ts.isMethodSignature(e)}isHierarchyContainer(e){return this.tsMorph.ts.isClassDeclaration(e)||this.tsMorph.ts.isClassExpression(e)||this.tsMorph.ts.isInterfaceDeclaration(e)}compilerReferenceSymbol(e,n,r,i){r&&(r.symbolLookups+=1);let s=zt(()=>e.getSymbolAtLocation(n),i);if(s){if((s.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return s;try{return r&&(r.aliasResolutions+=1),e.getAliasedSymbol(s)}catch{return i?.(),s}}}calleesFor(e){if(this.calleesCache.has(e.symbolId))return this.calleesCache.get(e.symbolId)??[];let n=U(this.fileCalleesCache,e.relativePath,()=>this.calleeMapForFile(e.relativePath));if(n.incompleteSymbolIds.has(e.symbolId))throw new Error(`TypeScript callee evidence is incomplete for ${e.symbol}.`);let r=n.callees.get(e.symbolId)??[];return this.calleesCache.set(e.symbolId,r),r}calleesForDefinitions(e){let n=new Map,r=new Map;for(let i of e){if(this.calleesCache.has(i.symbolId)){n.set(i.symbolId,this.calleesCache.get(i.symbolId)??[]);continue}let s=r.get(i.relativePath);s?s.push(i):r.set(i.relativePath,[i])}for(let[i,s]of r){let o=this.fileCalleesCache.get(i),a=new Set(s.map(p=>p.symbolId)),c=o??this.calleeMapForFile(i,a);for(let p of s){if(c.incompleteSymbolIds.has(p.symbolId))continue;let u=c.callees.get(p.symbolId)??[];this.calleesCache.set(p.symbolId,u),n.set(p.symbolId,u)}}return n}referencesForDefinitionNode(e,n,r){let i=r?x.now():0,s=this.packageImportReferencesForDefinition(e);if(r&&(r.packageRefsMs+=x.now()-i,r.packageReferenceCount+=s.length),!n)return s;let o=r?x.now():0,a=xr(n,e,s,this.db.config.projectRoot);return r&&(r.semanticRefsMs+=x.now()-o,r.referenceCount+=a.length),a}signatureFor(e){return U(this.signatureCache,e.symbolId,()=>{let n=this.nodeForDefinition(e);if(!n||!this.tsMorph.Node.isFunctionDeclaration(n)&&!this.tsMorph.Node.isMethodDeclaration(n)&&!this.tsMorph.Node.isArrowFunction(n)&&!this.tsMorph.Node.isFunctionExpression(n)&&!this.tsMorph.Node.isConstructorDeclaration(n))return null;let r=n.getType().getCallSignatures()[0];if(!r)return null;let i=r.getParameters().map(o=>{let a=o.getDeclarations()[0],c=a?o.getTypeAtLocation(a).getText(a):o.getValueDeclaration()?.getType().getText()??"unknown";return Br(c)}),s=r.getReturnType().getText(n);return`(${i.join(",")})=>${Br(s)}`})}importUsageForSourceFile(e,n,r){let i=[],s=new Map;for(let o of n.getImportDeclarations()){r.declarations+=1;let a=ot(this.db,e,o.getModuleSpecifierValue()),c=o.getImportClause()?.isTypeOnly()??!1;for(let p of Ht(o)){r.entries+=1;let u=c?null:p.identifier?.getSymbol()?.compilerSymbol??null;!c&&p.identifier&&(u?r.bindingSymbols+=1:r.missingBindingSymbols+=1);let l={sourcePath:a,entry:p,typeOnlyDeclaration:c,bindingSymbol:u,references:[]};if(i.push(l),c||!p.localName||!u)continue;let f=s.get(p.localName);f?f.push(l):s.set(p.localName,[l])}}return s.size>0&&n.forEachDescendant(o=>{if(o.getKindName()!=="Identifier")return;let a=s.get(o.getText());if(!a||Ys(o))return;r.scannedIdentifiers+=1;let c=o.getSymbol()?.compilerSymbol;if(r.symbolLookups+=1,!!c){for(let p of a)if(p.bindingSymbol===c){p.references.push({location:Qe(o,this.db.config.projectRoot),node:o}),r.matchedReferences+=1;break}}}),i.map(o=>o.typeOnlyDeclaration?Vs(e,o.sourcePath,o.entry):o.entry.identifier&&!o.bindingSymbol?(r.fallbackEntries+=1,this.valueImportUsageForEntry(e,o.sourcePath,o.entry)):this.valueImportUsageFromLocations(e,o.sourcePath,o.entry,o.references))}valueImportUsageForEntry(e,n,r){let i;try{i=r.identifier?r.identifier.findReferences():[]}catch{let o=r.identifier?At(r.identifier,e,this.db.config.projectRoot):[];return{importer:e,sourcePath:n,importedName:r.importedName,localName:r.localName,kind:r.kind,isTypeOnly:r.isTypeOnly,isUsed:r.isTypeOnly||o.length>0,isTypeUsed:r.isTypeOnly,isValueUsed:!r.isTypeOnly&&o.length>0,references:o}}let s=[];for(let o of i)for(let a of Cr(o,e,r.identifier,this.db.config.projectRoot))s.push(a);return this.valueImportUsageFromLocations(e,n,r,s)}valueImportUsageFromLocations(e,n,r,i){let s=i.some(c=>!Ft(c.node)),o=i.some(c=>Ft(c.node)),a=r.isTypeOnly;return{importer:e,sourcePath:n,importedName:r.importedName,localName:r.localName,kind:r.kind,isTypeOnly:a,isUsed:a||i.length>0,isTypeUsed:a||o,isValueUsed:s,references:i.map(c=>c.location)}}packageImportReferencesForDefinition(e){return this.packageImportReferences().get(e.symbolId)??[]}packageImportReferencesForFiles(e){let n=new Map,r=new Set;for(let s of e){let o=this.sourceFiles.sourceFile(s);if(o)for(let a of o.getImportDeclarations()){let c=qt(this.workspacePackages,a.getModuleSpecifierValue());c&&r.add(c)}}if(r.size===0)return n;let i=this.packageExportsForNames(r);for(let s of e)this.addPackageImportReferencesForDocument(n,i,s);for(let[s,o]of n)n.set(s,oe(o));return n}packageImportReferences(){if(this.packageImportReferenceIndex)return this.packageImportReferenceIndex;let e=new Map,n=this.packageExports();for(let r of this.sourceFiles.indexedTypeScriptLikeDocuments())this.addPackageImportReferencesForDocument(e,n,r);for(let[r,i]of e)e.set(r,oe(i));return this.packageImportReferenceIndex=e,e}addPackageImportReferencesForDocument(e,n,r){if(this.db.isIgnored(r))return;let i=this.sourceFiles.sourceFileMatch(r);if(i)for(let s of i.sourceFile.getImportDeclarations())this.addPackageImportReferencesForDeclaration(e,n,r,s)}addPackageImportReferencesForDeclaration(e,n,r,i){let s=qt(this.workspacePackages,i.getModuleSpecifierValue());if(!s)return;let o=n.get(s);if(o)for(let a of Ht(i)){if(a.kind!=="named"||!a.identifier)continue;let c=o.get(a.importedName);if(!c||c.size===0)continue;let p=At(a.identifier,r,this.db.config.projectRoot);p.length>0&&eo(e,c,p)}}packageExports(){return this.packageExportIndex?this.packageExportIndex:(this.packageExportIndex=this.packageExportsForNames(new Set(this.workspacePackages.map(e=>e.name))),this.packageExportIndex)}packageExportsForNames(e){let n=new Map;for(let r of this.workspacePackages){if(!e.has(r.name))continue;let i=new Map;for(let s of Ar(r))this.collectPackageExports(r,s,i,new Set);i.size>0&&n.set(r.name,i)}return n}collectPackageExports(e,n,r,i){if(i.has(n))return;i.add(n);let s=this.sourceFiles.sourceFile(n);if(s)for(let o of s.getExportDeclarations()){let a=o.getModuleSpecifierValue(),c=a?ot(this.db,n,a):n;if(!c||!c.startsWith(`${e.relativeDir}/src/`))continue;let p=o.getNamedExports();if(p.length===0){if(o.isNamespaceExport())continue;this.collectPackageExports(e,c,r,i);continue}for(let u of p){let l=u.getNameNode().getText(),f=u.getAliasNode()?.getText()??l,d=this.indexedDefinitionByLeaf(c,l);if(!d)continue;let m=r.get(f);m||(m=new Set,r.set(f,m)),m.add(d.symbolId)}}}indexedDefinitionByLeaf(e,n){return U(this.indexedDefinitionLeafCache,e,()=>kr(this.db,e)).get(n)??null}nodeForDefinition(e){return U(this.definitionNodeCache,e.symbolId,()=>this.definitionNodesForFile(e.relativePath).get(e.symbolId)??null)}definitionNodesForFile(e){return U(this.fileDefinitionNodeCache,e,()=>{let n=this.sourceFiles.sourceFile(e);return n?Tr(this.tsMorph,this.db,n,e):new Map})}referenceDefinitionFromCompilerSymbol(e){return this.definitionFromCompilerSymbol(e,void 0,!0)}definitionFromCompilerSymbol(e,n,r=!1){let i=e.name,s=n?x.now():0,o=e.declarations??[];n&&(n.declarationsMs+=x.now()-s,n.declarationChecks+=o.length);for(let a of o){let c=n?x.now():0,p=a.getSourceFile(),u=ae(this.db.config.projectRoot,p.fileName),l=p.getLineAndCharacterOfPosition(a.getStart(p)).line;if(n&&(n.declarationLocationMs+=x.now()-c),!u||this.db.isIgnored(u))continue;let f=n?x.now():0,d=this.compilerDeclarationName(a),m=r?Lt(this.db,u,l,i)??(d&&d!==i?Lt(this.db,u,l,d):null):wr(this.db,u,l,i);if(n&&(n.indexedLookupMs+=x.now()-f),m)return{symbolId:m.symbolId,symbol:m.symbol,file:m.relativePath,line:m.startLine}}return null}compilerDeclarationName(e){let n=e.name;return n&&this.tsMorph.ts.isIdentifier(n)?n.text:null}calleeMapForFile(e,n){let r=_(),i=0,s=0,o=0,a=0,c=0,p=0,u=0,l=0,f=r?Zs():void 0;return k("typescript.callee-map.file",()=>{let d=r?x.now():0,m=this.sourceFiles.sourceFile(e);if(r&&(c=Math.round(x.now()-d)),!m)return{callees:new Map,incompleteSymbolIds:new Set};let R=r?x.now():0,I=z(this.db,e).sort((y,g)=>y.startLine-g.startLine||g.endLine-y.endLine);if(r&&(p=Math.round(x.now()-R)),i=I.length,I.length===0)return{callees:new Map,incompleteSymbolIds:new Set};let S=new Map,h=new Set,E=r?x.now():0,M=this.compilerCheckerForSourceFile(m),v=m.compilerNode;r&&(u=Math.round(x.now()-E));let C=new Map,D=y=>{if(this.tsMorph.ts.isCallExpression(y)||this.tsMorph.ts.isNewExpression(y)){r&&(s+=1);let g=this.semanticCalleeForCallNode(M,v,I,y,C,n,h,f);g&&(r&&(o+=1),Js(S,g.callerId,g.target))}this.tsMorph.ts.forEachChild(y,D)},b=r?x.now():0;D(v),r&&(l=Math.round(x.now()-b));for(let[y,g]of S)S.set(y,to(g));return a=S.size,{callees:S,incompleteSymbolIds:h}},()=>({relativePath:e,definitions:i,callNodes:s,resolvedCallees:o,outputRows:a,requestedDefinitions:n?.size??i,sourceFileLookupMs:c,definitionsLoadMs:p,checkerLookupMs:u,traversalMs:l,...f?Xs(f):{}}))}semanticCalleeForCallNode(e,n,r,i,s,o,a,c){let p=c?x.now():0,u=Qs(r,Ze(n,i));if(c&&(c.callerLookupMs+=x.now()-p),!u)return null;if(o&&!o.has(u.symbolId))return c&&(c.skippedUnrequestedCallers+=1),null;let l=i.expression,f=this.compilerSymbolForExpression(e,l,c);f.incomplete&&a?.add(u.symbolId);let d=f.symbol,m=null;if(d)if(c&&(c.targetSymbolHits+=1),s.has(d))c&&(c.compilerSymbolCacheHits+=1),m=s.get(d)??null;else{c&&(c.compilerSymbolCacheMisses+=1);let R=c?x.now():0;m=this.definitionFromCompilerSymbol(d,c),c&&(c.targetLookupMs+=x.now()-R),s.set(d,m)}else c&&(c.targetMisses+=1);return m?{callerId:u.symbolId,target:{symbol:m.symbol,file:m.file,line:m.line,callsiteLine:Ze(n,i)}}:null}compilerSymbolForExpression(e,n,r){let i=!1,s=r?x.now():0,o=zt(()=>e.getSymbolAtLocation(n),()=>{i=!0});if(r&&(r.expressionSymbolMs+=x.now()-s),o)return{symbol:o,incomplete:!1};r&&(r.typeFallbacks+=1);let a=!1,c=r?x.now():0,p=zt(()=>e.getTypeAtLocation(n).getSymbol(),()=>{a=!0});return r&&(r.typeSymbolMs+=x.now()-c),{symbol:p,incomplete:!p&&(i||a)}}compilerCheckerForSourceFile(e){let n=e.getProject(),r=this.compilerCheckerCache.get(n);return r||(r=n.getTypeChecker().compilerObject,this.compilerCheckerCache.set(n,r)),r}};function Ht(t){let e=[],n=t.getDefaultImport();n&&e.push({identifier:n,importedName:"default",localName:n.getText(),kind:"default",isTypeOnly:t.getImportClause()?.isTypeOnly()??!1});let r=t.getNamespaceImport();r&&e.push({identifier:r,importedName:"*",localName:r.getText(),kind:"namespace",isTypeOnly:t.getImportClause()?.isTypeOnly()??!1});for(let i of t.getNamedImports()){let s=i.getNameNode(),a=i.getAliasNode()??(s.getKindName()==="Identifier"?s:null);e.push({identifier:a,importedName:s.getText(),localName:a?.getText()??s.getText(),kind:"named",isTypeOnly:i.isTypeOnly()||(t.getImportClause()?.isTypeOnly()??!1)})}return e.length===0&&e.push({identifier:null,importedName:"*",localName:null,kind:"side-effect",isTypeOnly:!1}),e}function Vs(t,e,n){return{importer:t,sourcePath:e,importedName:n.importedName,localName:n.localName,kind:n.kind,isTypeOnly:!0,isUsed:!0,isTypeUsed:!0,isValueUsed:!1,references:[]}}function $s(){return{declarations:0,entries:0,bindingSymbols:0,missingBindingSymbols:0,scannedIdentifiers:0,symbolLookups:0,matchedReferences:0,fallbackEntries:0}}function Ys(t){for(let e=t;e;e=e.getParent())if(e.getKindName()==="ImportDeclaration")return!0;return!1}function Js(t,e,n){let r=t.get(e);r||(r=[],t.set(e,r)),r.push(n)}function Gs(t){let e=new Set;for(let n of t.getImportDeclarations())for(let r of Ht(n))r.localName&&e.add(r.localName);return e}function Qs(t,e){let n=null;for(let r of t)e<r.startLine||e>r.endLine||(!n||r.startLine>=n.startLine)&&(n=r);return n}function Ze(t,e){return t.getLineAndCharacterOfPosition(e.getStart(t)).line}function _r(t,e,n){return e===t.relativePath&&n>=t.startLine&&n<=t.endLine}function Lr(t){return t.symbol.includes("#")?Ae(t.symbol)==="type"&&t.relativePath.endsWith(".d.ts"):!1}function Zs(){return{callerLookupMs:0,expressionSymbolMs:0,typeSymbolMs:0,targetLookupMs:0,declarationsMs:0,declarationLocationMs:0,indexedLookupMs:0,compilerSymbolCacheHits:0,compilerSymbolCacheMisses:0,targetSymbolHits:0,targetMisses:0,typeFallbacks:0,declarationChecks:0,skippedUnrequestedCallers:0}}function Xs(t){return{...t,callerLookupMs:Math.round(t.callerLookupMs),expressionSymbolMs:Math.round(t.expressionSymbolMs),typeSymbolMs:Math.round(t.typeSymbolMs),targetLookupMs:Math.round(t.targetLookupMs),declarationsMs:Math.round(t.declarationsMs),declarationLocationMs:Math.round(t.declarationLocationMs),indexedLookupMs:Math.round(t.indexedLookupMs)}}function Or(){return{cacheHits:0,cacheMisses:0,nodeHits:0,nodeMisses:0,scanFiles:0,identifiers:0,symbolLookups:0,aliasResolutions:0,targetHits:0,targetMisses:0,requestedHits:0,scanMs:0,packageRefsMs:0,semanticRefsMs:0,packageReferenceCount:0,referenceCount:0,preciseSearchFailures:0,hierarchyDefinitions:0,hierarchyFamilies:0,hierarchyReferences:0,hierarchyMs:0}}function Ur(t){return{...t,scanMs:Math.round(t.scanMs),packageRefsMs:Math.round(t.packageRefsMs),semanticRefsMs:Math.round(t.semanticRefsMs),hierarchyMs:Math.round(t.hierarchyMs)}}function eo(t,e,n){for(let r of e){let i=t.get(r)??[];i.push(...n),t.set(r,i)}}function to(t){let e=new Set,n=[];for(let r of t){let i=`${r.symbol}|${r.file}|${r.line}|${r.callsiteLine??""}`;e.has(i)||(e.add(i),n.push(r))}return n}function Br(t){return t.replace(/\s+/g," ").replace(/\bimport\("[^"]+"\)\./g,"").trim()}import{join as no}from"path";var Xe=4;var ro="typescript-semantic";function jr(t){let e=no(t,ro),n=Ne(e);return{...n,requestDir:n.legacyRequestDir}}var ao=12e4,co=5;function Hr(t,e,n={}){let r=new Vt(t,n),i=null,s=null,o=process.env.CODEBASEIQ_SKIP_WATCH_SERVICE==="1",a=()=>(i??=qr(t,e),i),c=(l,f,d)=>{if(o)return d();try{return f(r.request(l))}catch{return o=!0,d()}},p=(l,f)=>c({kind:"references",definitions:[...l],...f?.exact?{exact:!0}:{}},d=>Kr(d),()=>a().referencesForDefinitions?.(l,f)??new Map(l.map(d=>[d.symbolId,a().referencesFor(d)]))),u=l=>c({kind:"callees",definitions:[...l]},f=>Kr(f),()=>a().calleesForDefinitions?.(l)??new Map(l.map(f=>[f.symbolId,a().calleesFor(f)])));return{language:"typescript",availability:()=>(s??=c({kind:"availability"},fo,()=>a().availability()),s),importUsage:l=>c({kind:"import-usage",file:l},f=>f,()=>a().importUsage(l)),referencesFor:l=>Wr(p([l]),l,"reference"),referencesForDefinitions:p,referenceFragmentsForFiles:l=>c({kind:"reference-fragments",files:[...l]},f=>uo(f),()=>a().referenceFragmentsForFiles?.(l)??new Map),calleesFor:l=>Wr(u([l]),l,"callee"),calleesForDefinitions:u,signatureFor:l=>c({kind:"signature",definition:l},po,()=>a().signatureFor(l)),dispose:()=>i?.dispose?.()}}function Wr(t,e,n){if(!t.has(e.symbolId))throw new Error(`TypeScript ${n} evidence is incomplete for ${e.symbol}.`);return t.get(e.symbolId)}var Vt=class{constructor(e,n={}){this.db=e;this.runtime=n.runtime??yo,this.timeoutMs=n.timeoutMs??mo(),this.mailboxLimits=n.mailboxLimits??{},this.cacheDir=oo(e.config.dbPath),this.projectRoot=pn(e.config.projectRoot)}db;runtime;timeoutMs;cacheDir;projectRoot;mailboxLimits;request(e){let n=wn(this.cacheDir),r=jr(this.cacheDir),i=lt(n.statePath);if(!zr(i,this.projectRoot,this.runtime))throw new Error("Compatible TypeScript semantic service is not running.");let s=this.db.generation.identity;if(!s)throw new Error("Published TypeScript generation identity is unavailable.");let o=this.runtime.now(),a=o+this.timeoutMs,c=(this.runtime.monotonicNow??q)()+this.timeoutMs,p=fn(),u=X("typescript-semantic-v4",{generation:s,profileEnvironment:p,request:e}),l=ee(u),f=_e(r,{mailboxVersion:$,operationKey:u,clientId:this.runtime.randomId(),enqueuedAtMs:o,deadlineAtMs:a,protocolVersion:Xe,id:l,generation:s,profileEnvironment:p,request:e},{nowMs:o,limits:this.mailboxLimits});for(;(this.runtime.monotonicNow??q)()<=c;){if(so(f.responsePath))return lo(B(f.responsePath,{maxBytes:this.mailboxLimits.maxItemBytes??64*1024*1024,inputKind:"TypeScript semantic mailbox response"}),l,s,u);let d=lt(n.statePath);if(!zr(d,this.projectRoot,this.runtime))throw new Error("TypeScript semantic service stopped while processing a request.");this.runtime.sleep(co)}throw new Error(`TypeScript semantic service timed out after ${this.timeoutMs}ms.`)}};function zr(t,e,n){let r=t?.processIdentity?n.readProcessIdentity?.(t.pid):null;return t!==null&&t.projectRoot===e&&t.typescriptSemantic?.protocolVersion===Xe&&n.isProcessAlive(t.pid)&&(!t.processIdentity||r!=null&&xe(t.processIdentity,r))}function lo(t,e,n,r){let i=JSON.parse(t);if(i.protocolVersion!==Xe||i.id!==e||i.operationKey!==r||i.ok===!0&&i.generation!==n)throw new Error("TypeScript semantic service wrote an incompatible response.");if(i.ok===!0)return i.response;throw new Error(typeof i.error=="string"?i.error:"TypeScript semantic service request failed.")}function Kr(t){if(!Array.isArray(t))throw new Error("TypeScript semantic service wrote an invalid numeric map.");return new Map(t)}function uo(t){if(!Array.isArray(t))throw new Error("TypeScript semantic service wrote an invalid string map.");return new Map(t)}function fo(t){let e=Ir(t);if(!e)throw new Error("TypeScript semantic service wrote invalid availability.");return e}function po(t){if(t!==null&&typeof t!="string")throw new Error("TypeScript semantic service wrote an invalid signature.");return t}function mo(){let t=Number(process.env.SCIP_TYPESCRIPT_SEMANTIC_TIMEOUT_MS);return Number.isInteger(t)&&t>0?t:ao}var yo={now:Date.now,monotonicNow:q,randomId:io,sleep(t){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)},isProcessAlive:Te,readProcessIdentity:Ce};var $t=new Ge;en({name:"semantic-provider",groups:["semantic-provider"],clearAll:t=>$t.clear(t)});tn({name:"semantic-provider",close:t=>$t.clear(t)});function Q(t,e){let n=L(e)??"typescript";return $t.getOrCreate(t,n,()=>n==="rust"?Sr(t.config.projectRoot,{sourceImportUsageResolver:{importUsageFacts:r=>Fn(t,r)},calleeSymbolResolver:An(t),sourceZeroCalleeOracle:r=>So(t,r),scipOccurrenceCalleeOracle:r=>hr(t,r)}):Hr(t,e))}function L(t){return t?Sn(t)==="rust"?"rust":te(t)?"typescript":null:"typescript"}function So(t,e){let n=Pe(t,e.relativePath);if(!n||n.language!=="rust")return!1;let r=n.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine&&i.name===e.leaf)??n.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine);return r?!n.callSites.some(i=>i.line>=r.startLine&&i.line<=r.endLine):!1}var go=/^[A-Za-z_][A-Za-z0-9_]*$/,Vr=/\bDefault::default\b/g,bo=/^\.\.\s*Default::default\b/;function $r(t,e){let n=new Map,r=new Map;for(let i of e){let s=Yt(t,i,r);s!==null&&n.set(i.symbolId,s)}return n}function Yt(t,e,n=new Map){let r=ho(e.symbol);if(!r)return null;let i=Mn(t,[e.symbolId]);if(i.length===0)return null;let s=new RegExp(`(^|[^A-Za-z0-9_])${pe(r)}::default\\b`,"g"),o=new RegExp(`(^|[^A-Za-z0-9_])${pe(r)}\\s*$`),a=Ro(t,e.symbolId),c=[];for(let p of i){let u=Io(t,p.relative_path,n);if(u===null)return null;let l=u.split(/\r?\n/),f=0,d=[],m=0;for(let R=p.chunk_start;R<=p.chunk_end&&R<l.length;R+=1){let S=l[R]??"",h=new Set;s.lastIndex=0;let E;for(;E=s.exec(S);)c.push({file:p.relative_path,line:R,column:E.index+E[1].length+r.length+2}),m+=1;for(let M=0;M<S.length;M+=1){let v=bo.exec(S.slice(M));if(v){if(a&&d.includes(f)){let D=M+v[0].lastIndexOf("default");c.push({file:p.relative_path,line:R,column:D}),h.add(D),m+=1}M+=v[0].length-1;continue}let C=S[M];if(C==="{"){let D=o.test(S.slice(0,M));f+=1,D&&d.push(f);continue}if(C==="}")for(f=Math.max(0,f-1);d.length>0&&d[d.length-1]>f;)d.pop()}for(Vr.lastIndex=0;E=Vr.exec(S);){let M=E.index+9;if(!h.has(M))return null}}if(m===0)return null}return qe(c)}function Ro(t,e){return t.get("SELECT 1 AS present FROM mentions WHERE symbol_id = ? AND role = 1 LIMIT 1",e)?.present===1}function ho(t){let e=/impl#\[([^\]]+)\]\[Default\]default\(\)\./.exec(t)?.[1]??null;return!e||!go.test(e)?null:e}function Io(t,e,n){if(n.has(e))return n.get(e)??null;let r=t.get("SELECT text FROM documents WHERE relative_path = ?",e),i=typeof r?.text=="string"?r.text:Mo(t,e);return n.set(e,i),i}function Mo(t,e){try{return mn(t.config.projectRoot,e,{inputKind:"indexed Rust source file"})}catch(n){if(!fe(n))throw n;return null}}function Yr(t){let e=new Map;for(let n of t){let r=e.get(n.relativePath)??[];r.push(n),e.set(n.relativePath,r)}return e}var et=new WeakMap;function du(t){et.delete(t)}function mu(t){let e=et.get(t);return{incompleteSymbolIds:new Set(e?.incompleteSymbolIds),unavailableSymbolIds:new Set(e?.unavailableSymbolIds)}}function Qt(t,e){if(e.incompleteSymbolIds.size===0&&e.unavailableSymbolIds.size===0)return;let n=et.get(t)??{incompleteSymbolIds:new Set,unavailableSymbolIds:new Set};for(let r of e.incompleteSymbolIds)n.incompleteSymbolIds.add(r);for(let r of e.unavailableSymbolIds)n.unavailableSymbolIds.add(r);et.set(t,n)}var vo="typescript-import-usage-v1",Do="typescript-signatures-v1",Jt=on("semantic-prefetched-callees",{clearGroups:["whole-project","source-file","semantic-provider"]}),Jr=ct({kind:"semantic-import-usage",invalidation:ue("semantic-import-usage"),serialize:t=>JSON.stringify(t),deserialize:oi}),Gr=ct({kind:"semantic-signatures",invalidation:ue("semantic-signatures"),serialize:t=>JSON.stringify(t),deserialize:Fo}),Qr=at({kind:"typescript-import-usage",invalidation:ue("typescript-import-usage"),serialize:t=>JSON.stringify(t),deserialize:oi}),Zr=at({kind:"typescript-signatures",invalidation:ue("typescript-signatures"),serialize:t=>JSON.stringify(t),deserialize:No});function Zt(t){let e=new Map,n=new Set;return{capability:(r,i)=>ai(t,r,i),importUsage:r=>Co(t,r),references:r=>ei(t,r),materializeReferences:(r,i)=>ti(t,r,e,n,i),callerMap:r=>wo(t,r,e,n),calleeMap:r=>ii(t,r),signature:r=>Po(t,r)}}function xo(t,e){if(e.size===0)return;let n=Jt.get(t,()=>new Map);for(let[r,i]of e)n.set(r,[...i])}function yu(t,e){if(!Jt.has(t))return{hits:[],misses:[...e]};let n=Jt.get(t,()=>new Map),r=[],i=[];for(let s of e)n.has(s.symbolId)?r.push({definition:s,callees:n.get(s.symbolId)??[]}):i.push(s);return{hits:r,misses:i}}function Su(t,e){return Zt(t).importUsage(e)}function Co(t,e){if(L(e)==="typescript"){let s="fallback",o=0,a=0,c=0,p=0;return k("typescript.import-usage.materialize",()=>{let u=ut(t,e,vo);if(u?.key){o=1;let f=Qr.read(t,e,u.key);if(f)return s="hit",a=1,f;c=1;let d=W(t,e);if(!d)return s="unavailable",[];let m=d.importUsage(e);return Qr.write(t,e,u.key,m),s="computed",m}p=1;let l=W(t,e);return l?(s="direct-fallback",l.importUsage(e)):(s="unavailable",[])},()=>({state:s,eligible:o,cacheHits:a,cacheMisses:c,fallbacks:p}))}let n=si(t,"semantic-import-usage",e);if(n){let s=Jr.read(t,e,n);if(s)return s}let r=W(t,e);if(!r)return[];let i=r.importUsage(e);return n&&Jr.write(t,e,n,i),i}function gu(t,e){return Zt(t).references(e)}function ei(t,e){let n=Yt(t,e);if(n)return n;let r=On(t,e);if(r)return r;let i=W(t,e.relativePath);return i?i.referencesFor(e):[]}function bu(t,e){let n=To(t,e),r=n.incompleteSymbolIds.size+n.unavailableSymbolIds.size;if(r>0)throw new Error(`Exact semantic caller evidence is incomplete for ${r} definition(s).`);return n.callers}function To(t,e,n=r=>Q(t,r)){let r=new Map,i=new Set,s=new Set,o=new Map;for(let c of e){let p=L(c.relativePath);if(!p)continue;let u;try{u=n(c.relativePath)}catch{s.add(c.symbolId);continue}if(!u.availability().available){s.add(c.symbolId);continue}if(p==="typescript"){let l=o.get(u)??[];l.push(c),o.set(u,l);continue}Gt(t,r,c,ei(t,c))}for(let[c,p]of o){let u=pt(t,p,n),l=u?.references??(c.referencesForDefinitions?c.referencesForDefinitions(p,{exact:!0}):new Map(p.map(f=>[f.symbolId,c.referencesFor(f)])));!u&&_()&&ft(t,p,l,n);for(let f of p){if(!l.has(f.symbolId)){i.add(f.symbolId);continue}Gt(t,r,f,l.get(f.symbolId)??[])}}let a={callers:r,incompleteSymbolIds:i,unavailableSymbolIds:s};return Qt(t,a),a}function wo(t,e,n=new Map,r=new Set){let i=new Map,s=ti(t,e,n,r),o=0;return k("semantic.callers.from-references",()=>{for(let a of e)o+=Gt(t,i,a,n.get(a.symbolId)??[])},()=>({definitions:e.length,materialized:s.definitions,inMemoryHits:s.inMemoryHits,incompleteInMemoryHits:s.incompleteInMemoryHits,resultRows:i.size,callerFiles:o})),i}function ti(t,e,n,r,i={}){let s=st(t),o=[],a=[],c=[],p=0,u=0,l=0,f=0,d=0,m=0,R=0,I=0,S=0,h=0,E=0,M=0,v=[],C=new Map,D=e.filter(y=>L(y.relativePath)==="typescript"&&!n.has(y.symbolId)&&!r.has(y.symbolId)),b=pt(t,D,y=>Q(t,y));if(b){S=D.length,h=b.cacheHits,E=b.cacheMisses,M=b.computedFiles;for(let y of D)n.set(y.symbolId,b.references.get(y.symbolId)??[])}if(k("semantic.references.cache-scan",()=>{for(let[y,g]of Yr(e)){let T=[];for(let w of g)n.has(w.symbolId)?u+=1:r.has(w.symbolId)?I+=1:T.push(w);if(T.length===0){R+=1;continue}let j=ko(t,s,y);if(!j){for(let w of T)L(w.relativePath)||(p+=1),c.push(w);continue}m+=1;let F=an(t,y,j);for(let w of T){let O=F.get(w.symbol)??null;if(O!==null){let P=Eo(O);if(P){l+=1,n.set(w.symbolId,P);continue}f+=1}a.push({definition:w,cacheFingerprint:j})}}},()=>({definitions:e.length,skippedUnsupportedLanguage:p,cacheHits:l,parseFailures:f,misses:a.length,unkeyed:c.length,inMemoryHits:u,incompleteInMemoryHits:I,fullyInMemoryFiles:R,cacheReadFiles:m})),a.length>0||c.length>0){v=[...c,...a.map(y=>y.definition)],C=k("semantic.references.compute-misses",()=>{let y=ni(t,v,i);return d=y.size,y},()=>({definitions:v.length,misses:a.length,unkeyed:c.length,rows:d}));for(let y of v)C.has(y.symbolId)?(n.set(y.symbolId,C.get(y.symbolId)??[]),r.delete(y.symbolId)):r.add(y.symbolId);for(let{definition:y,cacheFingerprint:g}of a)C.has(y.symbolId)&&ai(t,"semantic-references",y.relativePath).available&&o.push({relativePath:y.relativePath,symbol:y.symbol,projectFingerprint:g,payload:JSON.stringify(C.get(y.symbolId)??[])})}return o.length>0&&k("semantic.references.cache-write",()=>cn(t,o),()=>({entries:o.length})),C.size>0&&ft(t,v,C,y=>Q(t,y)),{definitions:e.length,inMemoryHits:u,incompleteInMemoryHits:I,cacheHits:l,misses:a.length,unkeyed:c.length,skippedUnsupportedLanguage:p,parseFailures:f,computed:d,incomplete:r.size,cacheWrites:o.length,fragmentDefinitions:S,fragmentCacheHits:h,fragmentCacheMisses:E,fragmentComputedFiles:M}}function ko(t,e,n){if(!e)return null;let r=L(n);return r==="typescript"?we(JSON.stringify({kind:"semantic-references",language:r,schema:"typescript-references-v2-incomplete-scan",projectFingerprint:e})):r==="rust"?we(JSON.stringify({kind:"semantic-references",language:r,engine:St(t.config.projectRoot),projectFingerprint:e})):null}function ni(t,e,n={}){let r=_(),i=new Map,s=0,o=0,a=0,c=0,p=0,u=0,l=0,f=0,d=0;return k("semantic.references.provider-loop",()=>{let m=$r(t,e),R=Ln(t,e),I=new Map,S=n.prefetchCallees?new Map:null,h=[];for(let M of e){let v,C=()=>(v??=W(t,M.relativePath),v);if(S){let g=C();if(g?.referencesAndCalleesForDefinitions){let T=S.get(g);T?T.push(M):S.set(g,[M]),d+=1}}let D=m.get(M.symbolId);if(D){a+=1,c+=D.length,ve(i,M.symbolId,D,r,g=>{l+=1,f+=g});continue}let b=R.get(M.symbolId);if(b){p+=1,u+=b.length,ve(i,M.symbolId,b,r,g=>{l+=1,f+=g});continue}let y=C();if(!y){r&&(o+=1);continue}if(r&&(s+=1),y.referencesForDefinitions){let g=I.get(y);g?g.push(M):I.set(y,[M])}else h.push({provider:y,definition:M})}let E=new Set;if(S)for(let[M,v]of S){if(!M.referencesAndCalleesForDefinitions)continue;let C=I.get(M)??[],D=M.referencesAndCalleesForDefinitions(C,v);E.add(M),xo(t,D.callees);for(let b of C){if(!D.references.has(b.symbolId))continue;let y=D.references.get(b.symbolId)??[];ve(i,b.symbolId,y,r,g=>{l+=1,f+=g})}}for(let[M,v]of I){if(E.has(M))continue;let C=M.referencesForDefinitions(v);for(let D of v){if(!C.has(D.symbolId))continue;let b=C.get(D.symbolId)??[];ve(i,D.symbolId,b,r,y=>{l+=1,f+=y})}}for(let{provider:M,definition:v}of h){let C=M.referencesFor(v);ve(i,v.symbolId,C,r,D=>{l+=1,f+=D})}return i},()=>({definitions:e.length,providerHits:s,providerMisses:o,rustDefaultFastPathRows:a,rustDefaultFastPathReferences:c,rustScipOccurrenceFastPathRows:p,rustScipOccurrenceFastPathReferences:u,prefetchCalleeDefinitions:d,definitionsWithReferences:l,referenceCount:f,rows:i.size}))}function Ru(t,e,n={}){let r=ni(t,e,n),i=ri(t,e,r);return Qt(t,i),{rows:r,...i}}function ve(t,e,n,r,i){t.set(e,n),r&&n.length>0&&i(n.length)}function Gt(t,e,n,r){let i=0;for(let s of r){if(s.file===n.relativePath||t.isIgnored(s.file))continue;let o=e.get(n.symbolId);o||(o=new Set,e.set(n.symbolId,o));let a=o.size;o.add(s.file),o.size!==a&&(i+=1)}return i}function Eo(t){try{return JSON.parse(t)}catch{return null}}function hu(t,e,n){let r=ii(t,e,n),i=ri(t,e,r,n);return Qt(t,i),{rows:r,...i}}function ri(t,e,n,r){let i=new Set,s=new Set;for(let o of e)if(!(n.has(o.symbolId)||!L(o.relativePath)))try{(r?r(o.relativePath):Q(t,o.relativePath)).availability().available?i.add(o.symbolId):s.add(o.symbolId)}catch{s.add(o.symbolId)}return{incompleteSymbolIds:i,unavailableSymbolIds:s}}function ii(t,e,n){let r=_(),i=new Map,s=0,o=0,a=0,c=0;return k("semantic.callees.provider-loop",()=>{let p=new Map,u=[];for(let l of e){let f=n?n(l.relativePath):W(t,l.relativePath);if(f&&!f.availability().available){r&&(o+=1);continue}if(!f){r&&(o+=1);continue}r&&(s+=1);let d=l;if(f.calleesForDefinitions){let m=p.get(f);m?m.push(d):p.set(f,[d])}else u.push({provider:f,definition:d})}for(let[l,f]of p){let d=l.calleesForDefinitions(f);for(let m of f){if(!d.has(m.symbolId))continue;let R=d.get(m.symbolId)??[];Xr(i,m.symbolId,R,r,I=>{a+=1,c+=I})}}for(let{provider:l,definition:f}of u){let d=l.calleesFor(f);Xr(i,f.symbolId,d,r,m=>{a+=1,c+=m})}return i},()=>({definitions:e.length,providerHits:s,providerMisses:o,definitionsWithCallees:a,calleeCount:c,rows:i.size}))}function Xr(t,e,n,r,i){t.set(e,n),r&&n.length>0&&i(n.length)}function Iu(t,e){return Zt(t).signature(e)}function Po(t,e){if(L(e.relativePath)==="typescript"){let o="fallback",a=0,c=0,p=0,u=0;return k("typescript.signature.materialize",()=>{let l=ut(t,e.relativePath,Do);if(l?.key){a=1;let d=Zr.read(t,e.relativePath,l.key)??{};if(Object.prototype.hasOwnProperty.call(d,e.symbol))return o="hit",c=1,d[e.symbol]??null;p=1;let m=W(t,e.relativePath);if(!m)return o="unavailable",null;let R=m.signatureFor(e);return Zr.write(t,e.relativePath,l.key,{...d,[e.symbol]:R}),o="computed",R}u=1;let f=W(t,e.relativePath);return f?(o="direct-fallback",f.signatureFor(e)):(o="unavailable",null)},()=>({state:o,eligible:a,cacheHits:c,cacheMisses:p,fallbacks:u}))}let n=si(t,"semantic-signatures",e.relativePath),r=Ao(e);if(n){let o=Gr.read(t,r,n);if(o)return o.signature}let i=W(t,e.relativePath);if(!i)return null;let s=i.signatureFor(e);return n&&Gr.write(t,r,n,{signature:s}),s}function si(t,e,n){let r=st(t);if(!r)return null;let i=L(n);return i!=="rust"?null:we(JSON.stringify({kind:e,language:i,engine:St(t.config.projectRoot),projectFingerprint:r}))}function Ao(t){return`${t.relativePath}\0${t.symbol}`}function oi(t){try{let e=JSON.parse(t);return Array.isArray(e)?e:null}catch{return null}}function Fo(t){try{let e=JSON.parse(t);if(!e||typeof e!="object")return null;let n=e.signature;return n!==null&&typeof n!="string"?null:{signature:n}}catch{return null}}function No(t){try{let e=JSON.parse(t);if(!e||typeof e!="object"||Array.isArray(e))return null;for(let n of Object.values(e))if(n!==null&&typeof n!="string")return null;return e}catch{return null}}function ai(t,e,n){let r=L(n);if(!r)return{slot:e,language:"typescript",available:!1,reason:"semantic evidence is only available for TypeScript or Rust files"};try{return{slot:e,language:r,...Q(t,n).availability()}}catch(i){return{slot:e,language:r,available:!1,reason:i instanceof Error?i.message:String(i)}}}function W(t,e){if(!L(e))return null;let n=Q(t,e);return n.availability().available?n:null}export{Yr as a,St as b,L as c,du as d,mu as e,Zt as f,yu as g,Su as h,gu as i,bu as j,To as k,ni as l,Ru as m,hu as n,Iu as o};
3
- //# sourceMappingURL=chunk-J3GLP7Q5.js.map
3
+ //# sourceMappingURL=chunk-KLX6NSWT.js.map
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{e as p,o as x,q as l,r as g,u as v}from"./chunk-5IC2WZAL.js";import{M as h,P as u,da as f}from"./chunk-7UCDGXRW.js";import{d}from"./chunk-D62CTZX6.js";import{l as m}from"./chunk-5T44HG5Y.js";import{existsSync as C}from"fs";var E=5e3,S=100,R={prepare:f,freshness:h,ensureService:l,inspectService:g,requestRefresh:v,async reindex(e,t,n,o){let{reindexConfiguredProject:a}=await import("./project-reindex-TQFCOA2O.js");return a(e,t,n,o)},indexExists:C,wait(e){return new Promise(t=>setTimeout(t,e))},now:Date.now};async function I(e,t=R,n={}){if(e.dbPathSource==="env")return{source:"explicit-index",service:{kind:"skipped",reason:"environment"}};if(p(e.commandName,e.config)&&t.indexExists(e.paths.dbPath))return{source:"published-generation",service:{kind:"skipped",reason:"excluded-command"}};let o=y(e,t),a=t.prepare(e.projectRoot,e.config,e.paths,{gitContext:e.gitContext,...o?{watcherGeneration:o}:{}}),r=t.freshness(e.projectRoot,e.config,e.paths),i=t.ensureService({commandName:e.commandName,projectRoot:e.projectRoot,cacheDir:e.paths.cacheDir,cliVersion:m,config:e.config,gitContext:e.gitContext});if(r.state==="fresh")return{source:a.kind==="local-fresh"?"existing":"shared-generation",service:i};if((i.kind==="started"||i.kind==="reused")&&(t.requestRefresh(d(e.paths.cacheDir).activityPath,`evidence command ${e.commandName} requires a fresh generation`),r=await F(e,r,t,n,i),r.state==="fresh"))return{source:"watcher",service:i};try{await t.reindex(e.projectRoot,e.config,e.paths,{allowPartial:!1,skipAutoInstall:!0,trigger:{kind:"watch-demand",detail:`codebaseiq ${e.commandName}`},onStatus:()=>{}})}catch(s){throw new Error(`Could not prepare fresh evidence for codebaseiq ${e.commandName}: ${s instanceof Error?s.message:String(s)}`,{cause:s})}if(r=t.freshness(e.projectRoot,e.config,e.paths),r.state!=="fresh")throw new Error(`Could not prepare fresh evidence for codebaseiq ${e.commandName}: index remained ${r.state} (${r.reason})`);return{source:"synchronous-reindex",service:i}}function y(e,t){if(e.config.watch?.enabled===!0)try{return x(t.inspectService({projectRoot:e.projectRoot,cacheDir:e.paths.cacheDir,cliVersion:m,gitContext:e.gitContext}))}catch{return}}async function F(e,t,n,o,a){if(a.state.watcher.state==="budget-paused")return t;let r=Math.max(0,o.waitMs??E),i=Math.max(1,o.pollMs??S),s=n.now()+r,c=t;for(;n.now()<s;)if(await n.wait(Math.min(i,Math.max(1,s-n.now()))),u(),c=n.freshness(e.projectRoot,e.config,e.paths),c.state==="fresh")return c;return c}export{I as a};
3
- //# sourceMappingURL=chunk-TJBOJUVN.js.map
2
+ import{e as p,o as x,q as l,r as g,u as v}from"./chunk-BIADXGC3.js";import{M as h,P as u,da as f}from"./chunk-7UCDGXRW.js";import{d}from"./chunk-D62CTZX6.js";import{l as m}from"./chunk-5T44HG5Y.js";import{existsSync as C}from"fs";var E=5e3,S=100,R={prepare:f,freshness:h,ensureService:l,inspectService:g,requestRefresh:v,async reindex(e,t,n,o){let{reindexConfiguredProject:a}=await import("./project-reindex-MIW5CYEG.js");return a(e,t,n,o)},indexExists:C,wait(e){return new Promise(t=>setTimeout(t,e))},now:Date.now};async function I(e,t=R,n={}){if(e.dbPathSource==="env")return{source:"explicit-index",service:{kind:"skipped",reason:"environment"}};if(p(e.commandName,e.config)&&t.indexExists(e.paths.dbPath))return{source:"published-generation",service:{kind:"skipped",reason:"excluded-command"}};let o=y(e,t),a=t.prepare(e.projectRoot,e.config,e.paths,{gitContext:e.gitContext,...o?{watcherGeneration:o}:{}}),r=t.freshness(e.projectRoot,e.config,e.paths),i=t.ensureService({commandName:e.commandName,projectRoot:e.projectRoot,cacheDir:e.paths.cacheDir,cliVersion:m,config:e.config,gitContext:e.gitContext});if(r.state==="fresh")return{source:a.kind==="local-fresh"?"existing":"shared-generation",service:i};if((i.kind==="started"||i.kind==="reused")&&(t.requestRefresh(d(e.paths.cacheDir).activityPath,`evidence command ${e.commandName} requires a fresh generation`),r=await F(e,r,t,n,i),r.state==="fresh"))return{source:"watcher",service:i};try{await t.reindex(e.projectRoot,e.config,e.paths,{allowPartial:!1,skipAutoInstall:!0,trigger:{kind:"watch-demand",detail:`codebaseiq ${e.commandName}`},onStatus:()=>{}})}catch(s){throw new Error(`Could not prepare fresh evidence for codebaseiq ${e.commandName}: ${s instanceof Error?s.message:String(s)}`,{cause:s})}if(r=t.freshness(e.projectRoot,e.config,e.paths),r.state!=="fresh")throw new Error(`Could not prepare fresh evidence for codebaseiq ${e.commandName}: index remained ${r.state} (${r.reason})`);return{source:"synchronous-reindex",service:i}}function y(e,t){if(e.config.watch?.enabled===!0)try{return x(t.inspectService({projectRoot:e.projectRoot,cacheDir:e.paths.cacheDir,cliVersion:m,gitContext:e.gitContext}))}catch{return}}async function F(e,t,n,o,a){if(a.state.watcher.state==="budget-paused")return t;let r=Math.max(0,o.waitMs??E),i=Math.max(1,o.pollMs??S),s=n.now()+r,c=t;for(;n.now()<s;)if(await n.wait(Math.min(i,Math.max(1,s-n.now()))),u(),c=n.freshness(e.projectRoot,e.config,e.paths),c.state==="fresh")return c;return c}export{I as a};
3
+ //# sourceMappingURL=chunk-KUKKLWJD.js.map
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- var s=new Set(["code","outline","refs"]),c=["--symbol","--at","--search","--view","--edge","--direction","--subtype","--connecting","--inventory-only","--fold","--depth","--max-edges"];function d(e){if(e[2]!=="evidence")return;let t=e[3];if(!t||t.startsWith("-"))return;if(e.slice(4).some(i=>c.some(r=>i===r||i.startsWith(`${r}=`)))){e.splice(3,1,"--symbol",t);return}e[2]="evidence-source"}function a(e){return e!==void 0&&s.has(e)}async function p(e){if(e==="continue"){let{outputContinuationCommandDescriptor:n}=await import("./output-continuation-command-BL25S26S.js");return[n]}if(e==="__sentinel-ensure-service"){let{sentinelEnsureCommandDescriptor:n}=await import("./sentinel-ensure-command-OSWGCFFL.js");return[n]}if(a(e)){let{directNavigationQueryCommandDescriptors:n}=await import("./direct-navigation-J5MVYYAD.js"),o=n.find(i=>i.id===e);if(!o)throw new Error(`Direct navigation command descriptor is unavailable: ${e}`);return[o]}let{commandDescriptors:t}=await import("./command-descriptors-YCLATF5I.js");return t}export{d as a,a as b,p as c};
3
- //# sourceMappingURL=chunk-2EDX3JT5.js.map
2
+ var s=new Set(["code","outline","refs"]),c=["--symbol","--at","--search","--view","--edge","--direction","--subtype","--connecting","--inventory-only","--fold","--depth","--max-edges"];function d(e){if(e[2]!=="evidence")return;let t=e[3];if(!t||t.startsWith("-"))return;if(e.slice(4).some(i=>c.some(r=>i===r||i.startsWith(`${r}=`)))){e.splice(3,1,"--symbol",t);return}e[2]="evidence-source"}function a(e){return e!==void 0&&s.has(e)}async function p(e){if(e==="continue"){let{outputContinuationCommandDescriptor:n}=await import("./output-continuation-command-RNEHNYPU.js");return[n]}if(e==="__sentinel-ensure-service"){let{sentinelEnsureCommandDescriptor:n}=await import("./sentinel-ensure-command-R4YAUCJB.js");return[n]}if(a(e)){let{directNavigationQueryCommandDescriptors:n}=await import("./direct-navigation-3JOYP2MO.js"),o=n.find(i=>i.id===e);if(!o)throw new Error(`Direct navigation command descriptor is unavailable: ${e}`);return[o]}let{commandDescriptors:t}=await import("./command-descriptors-ROIOTCCW.js");return t}export{d as a,a as b,p as c};
3
+ //# sourceMappingURL=chunk-KUKWHP4R.js.map
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{d as R,e as k}from"./chunk-D62CTZX6.js";import{i as f,j as L,w as E,x as v}from"./chunk-DUKHVPU5.js";import{connect as D}from"net";import{performance as S}from"perf_hooks";import{createHash as b}from"crypto";import{tmpdir as V,userInfo as j}from"os";import{join as Q}from"path";var c=1,_=1*1024*1024,h=64*1024*1024,y=12e4,x=["NO_COLOR","FORCE_COLOR","CLICOLOR","CLICOLOR_FORCE","TERM","CODEBASEIQ_DEBUG"],O=1500;function P(t){let e=T(),r=b("sha256").update(`${e}\0${t}`).digest("hex");return process.platform==="win32"?`\\\\.\\pipe\\codebaseiq-lane-${r.slice(0,32)}`:Q(Y(),`lane-${r.slice(0,24)}.sock`)}function Y(){let t=T(),e=b("sha256").update(t).digest("hex").slice(0,16);return Q(V(),`codebaseiq-${e}`)}function T(){try{return j().username}catch{return`uid-${typeof process.getuid=="function"?process.getuid():"unknown"}`}}function A(t,e){let r=Buffer.from(JSON.stringify(t),"utf8");if(r.byteLength>e)throw new Error(`query-lane frame of ${r.byteLength} bytes exceeds the ${e}-byte limit`);let n=Buffer.allocUnsafe(4+r.byteLength);return n.writeUInt32LE(r.byteLength,0),r.copy(n,4),n}function w(t,e,r){let n=Buffer.alloc(0),u=!1,i=s=>{u||(u=!0,r(new Error(s)))};return{push(s){if(!u)for(n=n.byteLength===0?s:Buffer.concat([n,s]);n.byteLength>=4;){let a=n.readUInt32LE(0);if(a>t){i(`query-lane frame of ${a} bytes exceeds the ${t}-byte limit`);return}if(n.byteLength<4+a)return;let l=n.subarray(4,4+a);n=n.subarray(4+a);let o;try{o=JSON.parse(l.toString("utf8"))}catch{i("query-lane frame carried invalid JSON");return}if(e(o),u)return}}}}function N(t){if(!t||typeof t!="object")return null;let e=t;if(e.protocolVersion!==c)return null;if(e.ok===!1)return e.code!=="unsupported"&&e.code!=="invalid-request"&&e.code!=="wrong-project"&&e.code!=="busy"&&e.code!=="stale-index"&&e.code!=="ineligible-command"&&e.code!=="execution-error"||typeof e.message!="string"?null:{ok:!1,protocolVersion:c,code:e.code,message:e.message};if(e.ok!==!0)return null;if(e.kind==="accepted"){let n=e.serverPid;return typeof n!="number"||!Number.isInteger(n)||n<=0?null:{ok:!0,kind:"accepted",protocolVersion:c,serverPid:n}}if(e.kind==="executed"){let n=e;return typeof n.serverPid!="number"||!Number.isInteger(n.serverPid)||n.serverPid<=0||typeof n.exitCode!="number"||!Number.isInteger(n.exitCode)||typeof n.stdout!="string"||typeof n.stderr!="string"||typeof n.generation!="string"||!/^[a-f0-9]{64}$/.test(n.generation)||typeof n.durationMs!="number"||!Number.isFinite(n.durationMs)?null:{ok:!0,kind:"executed",protocolVersion:c,serverPid:n.serverPid,exitCode:n.exitCode,stdout:n.stdout,stderr:n.stderr,generation:n.generation,durationMs:n.durationMs}}if(e.kind!=="pong"||typeof e.serverPid!="number"||!Number.isInteger(e.serverPid)||e.serverPid<=0||typeof e.cliVersion!="string"||typeof e.projectRoot!="string"||e.indexGeneration!==void 0&&!/^[a-f0-9]{64}$/.test(e.indexGeneration))return null;let r;if(e.processIdentity!==void 0){let n=E(e.processIdentity);if(!n||n.pid!==e.serverPid)return null;r=n}return{ok:!0,kind:"pong",protocolVersion:c,serverPid:e.serverPid,...r?{processIdentity:r}:{},cliVersion:e.cliVersion,projectRoot:e.projectRoot,...e.indexGeneration!==void 0?{indexGeneration:e.indexGeneration}:{}}}var I=250,q=2e3,C="CODEBASEIQ_NO_DAEMON",$="CODEBASEIQ_DAEMON";async function se(t,e={}){let r=await M(t,{protocolVersion:c,kind:"ping",projectRoot:f(t.projectRoot)},e);if(r.kind!=="ok")return r;let n=r.response;return n.ok!==!0?{kind:"incompatible",reason:`query lane refused ping: ${n.code}: ${n.message}`}:n.kind!=="pong"?{kind:"incompatible",reason:"query lane answered ping with a non-pong response"}:n.serverPid!==r.state.pid?{kind:"incompatible",reason:"query lane responder is not the advertised watch service process"}:n.processIdentity&&r.state.processIdentity&&!v(n.processIdentity,r.state.processIdentity)?{kind:"incompatible",reason:"query lane responder identity differs from the advertised service"}:{kind:"ok",pong:n,roundTripMs:r.roundTripMs,state:r.state}}async function ie(t){let e=t[0];if(!e||e.startsWith("-"))return{served:!1,reason:"no eligible command was invoked"};if(process.env.CODEBASEIQ_INDEX_DB)return{served:!1,reason:"an explicit index database is pinned by the environment"};if(process.env.CODEBASEIQ_SESSION)return{served:!1,reason:"session-ledger evidence runs in-process"};let r;try{let{resolveProjectRoot:d,resolveCliProjectContext:p,residentQueryLaneEligible:U}=await import("./cli-context-FJL2JHOE.js");if(!U(e))return{served:!1,reason:`command ${e} always executes in-process`};let m=d(),g=p(m);r={projectRoot:m,cacheDir:g.paths.cacheDir,enabled:process.env[$]==="1"||g.config.daemon?.enabled===!0}}catch(d){return{served:!1,reason:`project resolution failed: ${d instanceof Error?d.message:d}`}}if(!r.enabled)return{served:!1,reason:"resident execution is not enabled for this project"};let{normalizeLegacyEvidenceInvocation:n}=await import("./invocation-command-descriptors-U76PN7IY.js"),u=["node","codebaseiq",...t];n(u);let i=u.slice(2),s={};for(let d of x){let p=process.env[d];p!==void 0&&(s[d]=p)}let a={protocolVersion:c,kind:"execute",projectRoot:f(r.projectRoot),argv:i,cwd:process.cwd(),envAllowlist:s,tty:{isTTY:process.stdout.isTTY===!0,...typeof process.stdout.columns=="number"?{columns:process.stdout.columns}:{}},deadlineMs:y,clientInvocation:{execPath:process.execPath,...process.argv[1]!==void 0?{scriptPath:process.argv[1]}:{}}},l=await M(r,a,{acceptTimeoutMs:O,responseTimeoutMs:y+5e3});if(l.kind!=="ok")return{served:!1,reason:l.reason};let o=l.response;return o.ok!==!0||o.kind!=="executed"?{served:!1,reason:o.ok===!1?`${o.code}: ${o.message}`:"the lane answered with a non-execution response"}:o.serverPid!==l.state.pid?{served:!1,reason:"the executing process is not the advertised watch service"}:(o.stdout.length>0&&process.stdout.write(o.stdout),o.stderr.length>0&&process.stderr.write(o.stderr),process.exitCode=o.exitCode,{served:!0,exitCode:o.exitCode})}async function M(t,e,r={}){if(process.env[C]==="1")return{kind:"unavailable",reason:`${C}=1 disables the query lane`};let n=B(t);if("reason"in n)return n;let u=r.socketPathOverride??P(t.cacheDir),i=S.now(),s=await W(u,e,r);if("reason"in s)return s;let a=N(s.value);return a?{kind:"ok",response:a,roundTripMs:S.now()-i,state:n.state}:{kind:"incompatible",reason:"query lane returned a response this client cannot validate"}}function F(t){return!!t&&typeof t=="object"&&t.kind==="accepted"&&t.ok===!0}function B(t){let e=k(R(t.cacheDir).statePath);return e?e.projectRoot!==f(t.projectRoot)?{kind:"unavailable",reason:"the published watch service serves a different project root"}:e.queryLane===void 0?{kind:"unavailable",reason:"the running watch service does not advertise a query lane"}:e.queryLane.protocolVersion!==c?{kind:"incompatible",reason:`query lane protocol ${e.queryLane.protocolVersion} does not match client protocol ${c}`}:L(e.pid)?{state:e}:{kind:"unavailable",reason:"the advertised watch service process is not alive"}:{kind:"unavailable",reason:"no watch service state is published for this cache"}}function W(t,e,r){return new Promise(n=>{let u=!1,i=o=>{u||(u=!0,clearTimeout(a),s.destroy(),n(o))},s=D({path:t,timeout:r.connectTimeoutMs??I}),a=setTimeout(()=>i({kind:"unavailable",reason:"query lane response timed out"}),(r.connectTimeoutMs??I)+(r.acceptTimeoutMs??r.responseTimeoutMs??q)),l=w(h,o=>{if(F(o)){clearTimeout(a),a=setTimeout(()=>i({kind:"unavailable",reason:"query lane response timed out after acknowledgement"}),r.responseTimeoutMs??q);return}i({value:o})},o=>i({kind:"unavailable",reason:`query lane response was malformed: ${o.message}`}));s.on("timeout",()=>i({kind:"unavailable",reason:"query lane connection timed out"})),s.on("error",o=>i({kind:"unavailable",reason:`query lane connection failed: ${o.message}`})),s.on("close",()=>i({kind:"unavailable",reason:"query lane closed before responding"})),s.on("data",o=>l.push(o)),s.on("connect",()=>{s.setTimeout(0);try{s.write(A(e,_))}catch(o){i({kind:"unavailable",reason:`query lane request could not be encoded: ${o instanceof Error?o.message:String(o)}`})}})})}export{se as a,ie as b};
3
- //# sourceMappingURL=chunk-JFIA2JI3.js.map
2
+ import{d as R,e as k}from"./chunk-D62CTZX6.js";import{i as f,j as L,w as E,x as v}from"./chunk-DUKHVPU5.js";import{connect as D}from"net";import{performance as S}from"perf_hooks";import{createHash as b}from"crypto";import{tmpdir as V,userInfo as j}from"os";import{join as Q}from"path";var c=1,_=1*1024*1024,h=64*1024*1024,y=12e4,x=["NO_COLOR","FORCE_COLOR","CLICOLOR","CLICOLOR_FORCE","TERM","CODEBASEIQ_DEBUG"],O=1500;function P(t){let e=T(),r=b("sha256").update(`${e}\0${t}`).digest("hex");return process.platform==="win32"?`\\\\.\\pipe\\codebaseiq-lane-${r.slice(0,32)}`:Q(Y(),`lane-${r.slice(0,24)}.sock`)}function Y(){let t=T(),e=b("sha256").update(t).digest("hex").slice(0,16);return Q(V(),`codebaseiq-${e}`)}function T(){try{return j().username}catch{return`uid-${typeof process.getuid=="function"?process.getuid():"unknown"}`}}function A(t,e){let r=Buffer.from(JSON.stringify(t),"utf8");if(r.byteLength>e)throw new Error(`query-lane frame of ${r.byteLength} bytes exceeds the ${e}-byte limit`);let n=Buffer.allocUnsafe(4+r.byteLength);return n.writeUInt32LE(r.byteLength,0),r.copy(n,4),n}function w(t,e,r){let n=Buffer.alloc(0),u=!1,i=s=>{u||(u=!0,r(new Error(s)))};return{push(s){if(!u)for(n=n.byteLength===0?s:Buffer.concat([n,s]);n.byteLength>=4;){let a=n.readUInt32LE(0);if(a>t){i(`query-lane frame of ${a} bytes exceeds the ${t}-byte limit`);return}if(n.byteLength<4+a)return;let l=n.subarray(4,4+a);n=n.subarray(4+a);let o;try{o=JSON.parse(l.toString("utf8"))}catch{i("query-lane frame carried invalid JSON");return}if(e(o),u)return}}}}function N(t){if(!t||typeof t!="object")return null;let e=t;if(e.protocolVersion!==c)return null;if(e.ok===!1)return e.code!=="unsupported"&&e.code!=="invalid-request"&&e.code!=="wrong-project"&&e.code!=="busy"&&e.code!=="stale-index"&&e.code!=="ineligible-command"&&e.code!=="execution-error"||typeof e.message!="string"?null:{ok:!1,protocolVersion:c,code:e.code,message:e.message};if(e.ok!==!0)return null;if(e.kind==="accepted"){let n=e.serverPid;return typeof n!="number"||!Number.isInteger(n)||n<=0?null:{ok:!0,kind:"accepted",protocolVersion:c,serverPid:n}}if(e.kind==="executed"){let n=e;return typeof n.serverPid!="number"||!Number.isInteger(n.serverPid)||n.serverPid<=0||typeof n.exitCode!="number"||!Number.isInteger(n.exitCode)||typeof n.stdout!="string"||typeof n.stderr!="string"||typeof n.generation!="string"||!/^[a-f0-9]{64}$/.test(n.generation)||typeof n.durationMs!="number"||!Number.isFinite(n.durationMs)?null:{ok:!0,kind:"executed",protocolVersion:c,serverPid:n.serverPid,exitCode:n.exitCode,stdout:n.stdout,stderr:n.stderr,generation:n.generation,durationMs:n.durationMs}}if(e.kind!=="pong"||typeof e.serverPid!="number"||!Number.isInteger(e.serverPid)||e.serverPid<=0||typeof e.cliVersion!="string"||typeof e.projectRoot!="string"||e.indexGeneration!==void 0&&!/^[a-f0-9]{64}$/.test(e.indexGeneration))return null;let r;if(e.processIdentity!==void 0){let n=E(e.processIdentity);if(!n||n.pid!==e.serverPid)return null;r=n}return{ok:!0,kind:"pong",protocolVersion:c,serverPid:e.serverPid,...r?{processIdentity:r}:{},cliVersion:e.cliVersion,projectRoot:e.projectRoot,...e.indexGeneration!==void 0?{indexGeneration:e.indexGeneration}:{}}}var I=250,q=2e3,C="CODEBASEIQ_NO_DAEMON",$="CODEBASEIQ_DAEMON";async function se(t,e={}){let r=await M(t,{protocolVersion:c,kind:"ping",projectRoot:f(t.projectRoot)},e);if(r.kind!=="ok")return r;let n=r.response;return n.ok!==!0?{kind:"incompatible",reason:`query lane refused ping: ${n.code}: ${n.message}`}:n.kind!=="pong"?{kind:"incompatible",reason:"query lane answered ping with a non-pong response"}:n.serverPid!==r.state.pid?{kind:"incompatible",reason:"query lane responder is not the advertised watch service process"}:n.processIdentity&&r.state.processIdentity&&!v(n.processIdentity,r.state.processIdentity)?{kind:"incompatible",reason:"query lane responder identity differs from the advertised service"}:{kind:"ok",pong:n,roundTripMs:r.roundTripMs,state:r.state}}async function ie(t){let e=t[0];if(!e||e.startsWith("-"))return{served:!1,reason:"no eligible command was invoked"};if(process.env.CODEBASEIQ_INDEX_DB)return{served:!1,reason:"an explicit index database is pinned by the environment"};if(process.env.CODEBASEIQ_SESSION)return{served:!1,reason:"session-ledger evidence runs in-process"};let r;try{let{resolveProjectRoot:d,resolveCliProjectContext:p,residentQueryLaneEligible:U}=await import("./cli-context-FJL2JHOE.js");if(!U(e))return{served:!1,reason:`command ${e} always executes in-process`};let m=d(),g=p(m);r={projectRoot:m,cacheDir:g.paths.cacheDir,enabled:process.env[$]==="1"||g.config.daemon?.enabled===!0}}catch(d){return{served:!1,reason:`project resolution failed: ${d instanceof Error?d.message:d}`}}if(!r.enabled)return{served:!1,reason:"resident execution is not enabled for this project"};let{normalizeLegacyEvidenceInvocation:n}=await import("./invocation-command-descriptors-HNMKDEF6.js"),u=["node","codebaseiq",...t];n(u);let i=u.slice(2),s={};for(let d of x){let p=process.env[d];p!==void 0&&(s[d]=p)}let a={protocolVersion:c,kind:"execute",projectRoot:f(r.projectRoot),argv:i,cwd:process.cwd(),envAllowlist:s,tty:{isTTY:process.stdout.isTTY===!0,...typeof process.stdout.columns=="number"?{columns:process.stdout.columns}:{}},deadlineMs:y,clientInvocation:{execPath:process.execPath,...process.argv[1]!==void 0?{scriptPath:process.argv[1]}:{}}},l=await M(r,a,{acceptTimeoutMs:O,responseTimeoutMs:y+5e3});if(l.kind!=="ok")return{served:!1,reason:l.reason};let o=l.response;return o.ok!==!0||o.kind!=="executed"?{served:!1,reason:o.ok===!1?`${o.code}: ${o.message}`:"the lane answered with a non-execution response"}:o.serverPid!==l.state.pid?{served:!1,reason:"the executing process is not the advertised watch service"}:(o.stdout.length>0&&process.stdout.write(o.stdout),o.stderr.length>0&&process.stderr.write(o.stderr),process.exitCode=o.exitCode,{served:!0,exitCode:o.exitCode})}async function M(t,e,r={}){if(process.env[C]==="1")return{kind:"unavailable",reason:`${C}=1 disables the query lane`};let n=B(t);if("reason"in n)return n;let u=r.socketPathOverride??P(t.cacheDir),i=S.now(),s=await W(u,e,r);if("reason"in s)return s;let a=N(s.value);return a?{kind:"ok",response:a,roundTripMs:S.now()-i,state:n.state}:{kind:"incompatible",reason:"query lane returned a response this client cannot validate"}}function F(t){return!!t&&typeof t=="object"&&t.kind==="accepted"&&t.ok===!0}function B(t){let e=k(R(t.cacheDir).statePath);return e?e.projectRoot!==f(t.projectRoot)?{kind:"unavailable",reason:"the published watch service serves a different project root"}:e.queryLane===void 0?{kind:"unavailable",reason:"the running watch service does not advertise a query lane"}:e.queryLane.protocolVersion!==c?{kind:"incompatible",reason:`query lane protocol ${e.queryLane.protocolVersion} does not match client protocol ${c}`}:L(e.pid)?{state:e}:{kind:"unavailable",reason:"the advertised watch service process is not alive"}:{kind:"unavailable",reason:"no watch service state is published for this cache"}}function W(t,e,r){return new Promise(n=>{let u=!1,i=o=>{u||(u=!0,clearTimeout(a),s.destroy(),n(o))},s=D({path:t,timeout:r.connectTimeoutMs??I}),a=setTimeout(()=>i({kind:"unavailable",reason:"query lane response timed out"}),(r.connectTimeoutMs??I)+(r.acceptTimeoutMs??r.responseTimeoutMs??q)),l=w(h,o=>{if(F(o)){clearTimeout(a),a=setTimeout(()=>i({kind:"unavailable",reason:"query lane response timed out after acknowledgement"}),r.responseTimeoutMs??q);return}i({value:o})},o=>i({kind:"unavailable",reason:`query lane response was malformed: ${o.message}`}));s.on("timeout",()=>i({kind:"unavailable",reason:"query lane connection timed out"})),s.on("error",o=>i({kind:"unavailable",reason:`query lane connection failed: ${o.message}`})),s.on("close",()=>i({kind:"unavailable",reason:"query lane closed before responding"})),s.on("data",o=>l.push(o)),s.on("connect",()=>{s.setTimeout(0);try{s.write(A(e,_))}catch(o){i({kind:"unavailable",reason:`query lane request could not be encoded: ${o instanceof Error?o.message:String(o)}`})}})})}export{se as a,ie as b};
3
+ //# sourceMappingURL=chunk-KWRQVLPX.js.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{K as yt,f as mt,g as pt,p as Z,q as W,r as de,s as Et}from"./chunk-C7QWUBR2.js";import{b as X,c as be,d as Ke,e as Ve,f as Ge,i as qe,j as ze,k as Je}from"./chunk-7UCDGXRW.js";import{a as Ct}from"./chunk-EN4AHLL3.js";import{Ca as Ee,Da as ut,J as tt,K as nt,L as rt,M as ot,Na as ft,Pb as St,Qb as vt,b as Xe,c as he,cb as gt,db as bt,eb as ht,ha as st,ia as at,ja as it,qa as dt,r as Ye,ra as ct,t as Qe,u as Ze,ua as lt,v as et}from"./chunk-FTTV7IRX.js";import{J as ge,K as ie,L as H,M as J,T as je,u as We}from"./chunk-5T44HG5Y.js";import{o as He,q as pe}from"./chunk-DUKHVPU5.js";import{join as De}from"path";import{createHash as Rn}from"crypto";import{mkdirSync as Pt,mkdtempSync as Pn,renameSync as An,rmSync as At,statSync as _n,writeFileSync as _t}from"fs";import{tmpdir as Tn}from"os";import{extname as Nn,join as ee,resolve as Mn,sep as Bn}from"path";var On=1024*1024,kt=500,Ln=64,Fn=/\.(?:cmd|bat)$/i;async function Tt(e,t,n={}){let r=Se(e);if(!r.ok)return D(r.reason,r.detail);let a=JSON.stringify(Ke),o;try{Pt(t.workDir,{recursive:!0}),o=Pn(ee(Tn(),"codebaseiq-probe-")),e.argv.includes("{schemaFile}")&&_t(ee(o,"schema.json"),a)}catch(s){return xt(o),D("spawn-failed",`could not prepare the agent sandbox: ${te(In(s))}`)}try{let s=ee(o,"schema.json"),d=ee(o,"output.json"),i=e.argv.includes("{outputFile}"),l=new Map([["{schemaJson}",a],["{schemaFile}",s],["{outputFile}",d]]),c=bt(r.path,e.argv.slice(1).map(S=>l.get(S)??S)),p;try{p=await vt({command:c.binary,args:c.args,label:`agent probe command ${e.name}`,timeoutMs:e.timeoutMs,maxStdoutBytes:e.maxOutputBytes,maxStderrBytes:On,cwd:t.workDir,env:Un(n.env??process.env),input:Ge(t.description,t.languages),signal:n.signal})}catch(S){return Hn(S,n.signal)}if(p.status!==0){let S=wt(p.stdout),b=p.status===null?`signal ${p.signal}`:`code ${p.status}`,m=S.kind==="error"?S.detail:p.stderr.trim()||p.stdout.trim();return D("agent-error",`${e.name} exited with ${b}: ${te(m)}`)}let g=[];if(i){let S=Wn(d,e.maxOutputBytes);if(S==="too-large")return D("output-too-large",`${e.name} wrote more than ${e.maxOutputBytes} bytes.`);S!==null&&g.push(S)}g.push(p.stdout);for(let S of g){let b=wt(S);if(b.kind==="error")return D("agent-error",b.detail);if(b.kind==="none")continue;let{probes:m,diagnostics:x}=be(b.value);return X(m)?{ok:!0,probes:m,diagnostics:x,raw:S.trim()}:D("invalid-probes",Vn(x))}return D("no-json",`${e.name} printed no JSON object: ${te(p.stdout.trim())}`)}finally{xt(o)}}function xt(e){if(e!==void 0)try{At(e,{recursive:!0,force:!0,maxRetries:3})}catch{}}function In(e){return e instanceof Error?e.message:String(e)}function D(e,t){return{ok:!1,reason:e,detail:t}}function Dn(e){let t=ze({agent:{commands:[e]}}).filter(n=>n.level==="error");return t.length>0?t.map(n=>`${n.path}: ${n.message}`).join(" "):Je.has(e.argv[0])?"argv[0] must be the executable, not a placeholder.":[e.timeoutMs,e.maxOutputBytes].every(n=>Number.isFinite(n)&&n>0)?null:"timeoutMs and maxOutputBytes must be positive numbers."}function Se(e){let t=Dn(e);if(t)return{ok:!1,reason:"misconfigured",detail:t};let n=e.argv[0],r=`argv[0] "${n}" is a .cmd/.bat shim, which cannot be started without a shell. Point argv[0] at the real executable or at a node script (.js, .mjs, .cjs).`,a=n.includes("/")||n.includes(Bn),o;if(a){o=$n(Mn(n));let s=ye(o);if(s==="missing")return{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found.`};if(s==="other")return{ok:!1,reason:"misconfigured",detail:`argv[0] "${n}" is not an executable file.`}}else o=ht(n);return o===null?gt(n)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found on PATH.`}:process.platform==="win32"&&Fn.test(o)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!0,path:o}}function $n(e,t=process.platform){return t!=="win32"||Nn(e)!==""||ye(e)!=="missing"?e:[".exe",".com"].map(n=>`${e}${n}`).find(n=>ye(n)==="file")??e}function ye(e){try{return _n(e).isFile()?"file":"other"}catch{return"missing"}}function Un(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!/^CODEBASEIQ_/i.test(n)&&(t[n]=r);return t}function Hn(e,t){if(!(e instanceof St))throw e;switch(e.kind){case"spawn":return D("spawn-failed",e.message);case"timeout":return D("timeout",e.message);case"stdout-limit":case"stderr-limit":return D("output-too-large",e.message);case"aborted":throw t?H(t,e.message):e}}function Wn(e,t){try{return pe(e,{maxBytes:t,inputKind:"agent output file"})}catch(n){return n instanceof He&&n.reason==="too-large"?"too-large":null}}function wt(e){let t=Rt(e);if(!t)return{kind:"none"};if(t.type!=="result")return{kind:"object",value:t};if(t.is_error===!0){let r=typeof t.result=="string"&&t.result?t.result:t.subtype;return{kind:"error",detail:te(`The agent reported an error: ${String(r??"no message")}`)}}if(Mt(t.structured_output))return{kind:"object",value:t.structured_output};let n=typeof t.result=="string"?Rt(t.result):null;return n?{kind:"object",value:n}:{kind:"none"}}function Rt(e){let t=e.trim();return Nt(t)??jn(t)}function Nt(e){try{let t=JSON.parse(e);return Mt(t)?t:null}catch{return null}}function jn(e){let t=/\{\s*["}]/g,n=null,r=0;for(let a=0;a<Ln;){t.lastIndex=r;let o=t.exec(e);if(!o)break;let s=Kn(e,o.index),d=s===-1?null:Nt(e.slice(o.index,s+1));d?(n=d,r=s+1):(r=o.index+1,a++)}return n}function Kn(e,t){let n=0,r=!1,a=!1;for(let o=t;o<e.length;o++){let s=e[o];if(r)a?a=!1:s==="\\"?a=!0:s==='"'&&(r=!1);else if(s==='"')r=!0;else if(s==="{")n++;else if(s==="}"&&--n===0)return o}return-1}function Mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e){return e.length===0?"The agent returned no usable probes.":te(`The agent returned no usable probes: ${e.slice(0,3).map(t=>`${t.path||"root"}: ${t.message}`).join("; ")}`)}function te(e){return e.length>kt?`${e.slice(0,kt)}...`:e}var Gn=64*1024,qn=3600*1e3;function Bt(e,t,n=Date.now){let r=(a,o)=>ee(e,`${Rn("sha256").update(JSON.stringify([a,3,o])).digest("hex")}.json`);return{get(a,o){try{let s=JSON.parse(pe(r(a,o),{maxBytes:Gn,inputKind:"agent probe cache entry"}));if(typeof s.storedAt!="number"||n()-s.storedAt>=t*qn)return;let{probes:d}=be(s.probes);return X(d)?d:void 0}catch{return}},set(a,o,s){let d=r(a,o),i=`${d}.${process.pid}.tmp`;try{Pt(e,{recursive:!0}),_t(i,JSON.stringify({storedAt:n(),probes:s})),An(i,d)}catch{try{At(i,{force:!0})}catch{}}}}}import{BlockList as zn,isIP as Jn}from"net";var Ce=64*1024*1024,Xn=2,Ot="embedding request aborted",Yn="codebaseiq embedding canary: parse a retry delay from a config file",N=class extends Error{constructor(n,r,a){super(r);this.kind=n;this.status=a;this.name="EmbeddingClientError"}kind;status},ne=new zn;for(let[e,t]of[["127.0.0.0",8],["10.0.0.0",8],["172.16.0.0",12],["192.168.0.0",16],["100.64.0.0",10],["169.254.0.0",16]])ne.addSubnet(e,t,"ipv4");ne.addAddress("::1","ipv6");ne.addSubnet("fe80::",10,"ipv6");ne.addSubnet("fc00::",7,"ipv6");var Qn=[".local",".lan",".home.arpa",".internal"];function Lt(e){let t;try{t=new URL(e).hostname}catch{return!1}let n=(t.startsWith("[")?t.slice(1,-1):t).replace(/\.$/,""),r=Jn(n);return r!==0?ne.check(n,r===4?"ipv4":"ipv6"):n==="localhost"||Qn.some(a=>n.endsWith(a))}function Dt(e,t={}){let n=t.fetchImpl??fetch,r=t.env??process.env,a=e.baseUrl.replace(/\/+$/,"");function o(){let c=e.apiKeyEnv?r[e.apiKeyEnv]:void 0;return c||void 0}function s(){let c;try{c=new URL(e.baseUrl)}catch{throw new N("invalid-endpoint",`embedding endpoint "${e.name}" has an invalid baseUrl`)}if(c.protocol!=="http:"&&c.protocol!=="https:")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must use http or https`);if(c.username!==""||c.password!=="")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must not embed credentials in baseUrl; use apiKeyEnv`);if(!e.allowRemote&&!Lt(e.baseUrl))throw new N("remote-not-allowed",`embedding endpoint "${e.name}" is not on a private network; set allowRemote to use it`);if(c.protocol==="http:"&&o()!==void 0&&!Lt(e.baseUrl))throw new N("insecure-token-transport",`embedding endpoint "${e.name}" would send its API key over plain http to a non-private host; use https`)}function d(c){let p={};c&&(p["content-type"]="application/json");let g=o();return g&&(p.authorization=`Bearer ${g}`),p}async function i(c,p,g,S){let b={model:e.model,input:c,encoding_format:"float",...e.dimensions!==void 0?{dimensions:e.dimensions}:{}},{status:m,text:x}=await Ft(n,`${a}/embeddings`,{method:"POST",headers:d(!0),body:JSON.stringify(b)},p,!0,S);if(m<200||m>=300)throw new N("http",`embeddings request failed with HTTP ${m}`,m);return nr(x,c.length,g)}async function l(c,p,g){try{return await i(c,e.requestTimeoutMs,p,g)}catch(S){if(!Zn(S))throw S;return i(c,e.requestTimeoutMs,p,g)}}return{async checkHealth({signal:c}={}){try{s()}catch(g){return ve(g)}try{await Ft(n,`${a}/models`,{method:"GET",headers:d(!1)},e.healthTimeoutMs,!1,c)}catch(g){return c?.aborted?ve(g,c):{ok:!1,reason:"unreachable",detail:ke(g)}}let p=ge();try{let[g]=await i([e.documentPrefix+Yn],e.warmTimeoutMs,{dims:e.dimensions},c);return{ok:!0,model:e.model,dimensions:g.length,latencyMs:Math.round(ge()-p),canary:g}}catch(g){return ve(g,c)}},async embed(c,p,{signal:g}={}){if(s(),c.length===0)return[];let S=p==="query"?e.queryPrefix:e.documentPrefix,b=Math.max(1,Math.floor(e.batchSize)),m=[];for(let R=0;R<c.length;R+=b)m.push(c.slice(R,R+b).map(A=>S+A));let x={dims:e.dimensions};return(await Ct(m,Xn,R=>l(R,x,g))).flat()}}}function Zn(e){return e instanceof N&&(e.kind==="timeout"||e.kind==="http"&&(e.status??0)>=500)}function ve(e,t){let n=ke(e);if(t?.aborted)return{ok:!1,reason:"aborted",detail:n};if(!(e instanceof N))return{ok:!1,reason:"bad-response",detail:n};switch(e.kind){case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":return{ok:!1,reason:e.kind,detail:n};case"network":return{ok:!1,reason:"unreachable",detail:n};case"timeout":return{ok:!1,reason:"model-loading",detail:n};case"http":return e.status===503?{ok:!1,reason:"model-loading",detail:n}:e.status===401||e.status===403?{ok:!1,reason:"unauthorized",detail:n}:{ok:!1,reason:"bad-response",detail:n};default:return{ok:!1,reason:"bad-response",detail:n}}}function ke(e){return e instanceof Error?e.message:String(e)}async function Ft(e,t,n,r,a,o){J(o,Ot);let s=new AbortController,d=setTimeout(()=>{s.abort(new N("timeout",`no response within ${r}ms`))},r),i=()=>s.abort(o?.reason);o?.addEventListener("abort",i,{once:!0});try{let l=await $t(e(t,{...n,signal:s.signal,redirect:"error"}),s.signal);return{status:l.status,text:a?await tr(l,s.signal):""}}catch(l){throw o?.aborted&&s.signal.reason===o.reason?H(o,Ot):l instanceof N?l:s.signal.aborted&&s.signal.reason instanceof N?s.signal.reason:new N("network",`could not reach the embeddings endpoint: ${er(l)}`)}finally{clearTimeout(d),o?.removeEventListener("abort",i),s.abort()}}function er(e){let t=e instanceof Error?e.cause:void 0;return typeof t?.code=="string"?t.code:ke(e)}async function tr(e,t){let n=Number(e.headers.get("content-length"));if(Number.isFinite(n)&&n>Ce)throw It();if(!e.body)return"";let r=e.body.getReader(),a=[],o=0;for(;;){let{done:s,value:d}=await $t(r.read(),t);if(s)break;if(o+=d.byteLength,o>Ce)throw r.cancel().catch(()=>{}),It();a.push(d)}return new TextDecoder().decode(Buffer.concat(a))}function It(){return new N("too-large",`embeddings response exceeded the ${Ce} byte limit`)}function $t(e,t){return new Promise((n,r)=>{let a=()=>r(t.reason);if(t.aborted){a();return}t.addEventListener("abort",a,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener("abort",a))})}function nr(e,t,n){let r;try{r=JSON.parse(e)}catch{throw j("response is not valid JSON")}let a=typeof r=="object"&&r!==null?r.data:void 0;if(!Array.isArray(a)||a.length!==t)throw j(`expected ${t} embeddings, received ${Array.isArray(a)?a.length:"none"}`);let o=new Array(t).fill(void 0),s=new Set;return a.forEach((d,i)=>{let l=typeof d=="object"&&d!==null?d:{},c=l.index===void 0?i:l.index;if(typeof c!="number"||!Number.isInteger(c)||c<0||c>=t||s.has(c))throw j("embedding indexes are not a permutation of the inputs");s.add(c),o[c]=l.embedding}),o.map(d=>rr(d,n))}function rr(e,t){if(!Array.isArray(e)||e.length===0)throw j("embedding is not a non-empty float array");if(t.dims!==void 0&&e.length!==t.dims)throw j(`embedding has ${e.length} dimensions, expected ${t.dims}`);let n=0;for(let o of e){if(typeof o!="number"||!Number.isFinite(o))throw j("embedding contains a non-finite value");n+=o*o}let r=Math.sqrt(n);if(!Number.isFinite(r)||r===0)throw j("embedding has zero or unrepresentable magnitude");t.dims=e.length;let a=new Float32Array(e.length);for(let o=0;o<e.length;o+=1)a[o]=e[o]/r;return a}function j(e){return new N("bad-response",`embeddings response rejected: ${e}`)}import{createHash as Kt}from"crypto";var Ut=2,Ht=200,or=new Set(["string","template_string","string_literal","raw_string_literal","char_literal","concatenated_string"]),sr={class_declaration:"name",abstract_class_declaration:"name",class:"name",class_definition:"name",trait_item:"name",impl_item:"type",mod_item:"name"},Wt=Ye({kind:"callable-units",invalidation:Qe("callable-units"),serialize:e=>JSON.stringify({version:Ut,...e}),deserialize:e=>{try{let t=JSON.parse(e);return t.version!==Ut?null:{language:t.language,contentHash:t.contentHash,units:t.units}}catch{return null}}});function ar(e){return Kt("sha256").update(e).digest("hex")}function Vt(e,t,n){let r=ar(n),a=Wt.read(e,t,r);if(a&&a.contentHash===r)return a;let o=tt(e,t,n);if(!o)return null;let s={language:o.language,contentHash:r,units:ir(o.tree,o.language)};return Wt.write(e,t,r,s),s}function ir(e,t){let n=[],r=new Map,a=[],o=s=>{let d=ot(s,t),i=d?.functionNode.childForFieldName("body");if(d&&i){let c=`${a.join(".")}#${d.name}`,p=r.get(c)??0;r.set(c,p+1),n.push(dr(d.name,[...a],p,d.definitionNode,i,t)),a.push(d.name);for(let g of s.children)o(g);a.pop();return}let l=cr(s);l&&a.push(l);for(let c of s.children)o(c);l&&a.pop()};return o(e.rootNode),n}function dr(e,t,n,r,a,o){let s=[],d=[],i=new Set,l=c=>{if(rt(c))return;let p=nt(c,o);if(p&&i.add(p.calleeLeaf),or.has(c.type)){s.push(c.text.replace(/\r\n/g,`
2
+ import{K as yt,f as mt,g as pt,p as Z,q as W,r as de,s as Et}from"./chunk-OWJWOEDU.js";import{b as X,c as be,d as Ke,e as Ve,f as Ge,i as qe,j as ze,k as Je}from"./chunk-7UCDGXRW.js";import{a as Ct}from"./chunk-EN4AHLL3.js";import{Ca as Ee,Da as ut,J as tt,K as nt,L as rt,M as ot,Na as ft,Pb as St,Qb as vt,b as Xe,c as he,cb as gt,db as bt,eb as ht,ha as st,ia as at,ja as it,qa as dt,r as Ye,ra as ct,t as Qe,u as Ze,ua as lt,v as et}from"./chunk-EOKVZXNF.js";import{J as ge,K as ie,L as H,M as J,T as je,u as We}from"./chunk-5T44HG5Y.js";import{o as He,q as pe}from"./chunk-DUKHVPU5.js";import{join as De}from"path";import{createHash as Rn}from"crypto";import{mkdirSync as Pt,mkdtempSync as Pn,renameSync as An,rmSync as At,statSync as _n,writeFileSync as _t}from"fs";import{tmpdir as Tn}from"os";import{extname as Nn,join as ee,resolve as Mn,sep as Bn}from"path";var On=1024*1024,kt=500,Ln=64,Fn=/\.(?:cmd|bat)$/i;async function Tt(e,t,n={}){let r=Se(e);if(!r.ok)return D(r.reason,r.detail);let a=JSON.stringify(Ke),o;try{Pt(t.workDir,{recursive:!0}),o=Pn(ee(Tn(),"codebaseiq-probe-")),e.argv.includes("{schemaFile}")&&_t(ee(o,"schema.json"),a)}catch(s){return xt(o),D("spawn-failed",`could not prepare the agent sandbox: ${te(In(s))}`)}try{let s=ee(o,"schema.json"),d=ee(o,"output.json"),i=e.argv.includes("{outputFile}"),l=new Map([["{schemaJson}",a],["{schemaFile}",s],["{outputFile}",d]]),c=bt(r.path,e.argv.slice(1).map(S=>l.get(S)??S)),p;try{p=await vt({command:c.binary,args:c.args,label:`agent probe command ${e.name}`,timeoutMs:e.timeoutMs,maxStdoutBytes:e.maxOutputBytes,maxStderrBytes:On,cwd:t.workDir,env:Un(n.env??process.env),input:Ge(t.description,t.languages),signal:n.signal})}catch(S){return Hn(S,n.signal)}if(p.status!==0){let S=wt(p.stdout),b=p.status===null?`signal ${p.signal}`:`code ${p.status}`,m=S.kind==="error"?S.detail:p.stderr.trim()||p.stdout.trim();return D("agent-error",`${e.name} exited with ${b}: ${te(m)}`)}let g=[];if(i){let S=Wn(d,e.maxOutputBytes);if(S==="too-large")return D("output-too-large",`${e.name} wrote more than ${e.maxOutputBytes} bytes.`);S!==null&&g.push(S)}g.push(p.stdout);for(let S of g){let b=wt(S);if(b.kind==="error")return D("agent-error",b.detail);if(b.kind==="none")continue;let{probes:m,diagnostics:x}=be(b.value);return X(m)?{ok:!0,probes:m,diagnostics:x,raw:S.trim()}:D("invalid-probes",Vn(x))}return D("no-json",`${e.name} printed no JSON object: ${te(p.stdout.trim())}`)}finally{xt(o)}}function xt(e){if(e!==void 0)try{At(e,{recursive:!0,force:!0,maxRetries:3})}catch{}}function In(e){return e instanceof Error?e.message:String(e)}function D(e,t){return{ok:!1,reason:e,detail:t}}function Dn(e){let t=ze({agent:{commands:[e]}}).filter(n=>n.level==="error");return t.length>0?t.map(n=>`${n.path}: ${n.message}`).join(" "):Je.has(e.argv[0])?"argv[0] must be the executable, not a placeholder.":[e.timeoutMs,e.maxOutputBytes].every(n=>Number.isFinite(n)&&n>0)?null:"timeoutMs and maxOutputBytes must be positive numbers."}function Se(e){let t=Dn(e);if(t)return{ok:!1,reason:"misconfigured",detail:t};let n=e.argv[0],r=`argv[0] "${n}" is a .cmd/.bat shim, which cannot be started without a shell. Point argv[0] at the real executable or at a node script (.js, .mjs, .cjs).`,a=n.includes("/")||n.includes(Bn),o;if(a){o=$n(Mn(n));let s=ye(o);if(s==="missing")return{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found.`};if(s==="other")return{ok:!1,reason:"misconfigured",detail:`argv[0] "${n}" is not an executable file.`}}else o=ht(n);return o===null?gt(n)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!1,reason:"spawn-failed",detail:`argv[0] "${n}" was not found on PATH.`}:process.platform==="win32"&&Fn.test(o)?{ok:!1,reason:"misconfigured",detail:r}:{ok:!0,path:o}}function $n(e,t=process.platform){return t!=="win32"||Nn(e)!==""||ye(e)!=="missing"?e:[".exe",".com"].map(n=>`${e}${n}`).find(n=>ye(n)==="file")??e}function ye(e){try{return _n(e).isFile()?"file":"other"}catch{return"missing"}}function Un(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!/^CODEBASEIQ_/i.test(n)&&(t[n]=r);return t}function Hn(e,t){if(!(e instanceof St))throw e;switch(e.kind){case"spawn":return D("spawn-failed",e.message);case"timeout":return D("timeout",e.message);case"stdout-limit":case"stderr-limit":return D("output-too-large",e.message);case"aborted":throw t?H(t,e.message):e}}function Wn(e,t){try{return pe(e,{maxBytes:t,inputKind:"agent output file"})}catch(n){return n instanceof He&&n.reason==="too-large"?"too-large":null}}function wt(e){let t=Rt(e);if(!t)return{kind:"none"};if(t.type!=="result")return{kind:"object",value:t};if(t.is_error===!0){let r=typeof t.result=="string"&&t.result?t.result:t.subtype;return{kind:"error",detail:te(`The agent reported an error: ${String(r??"no message")}`)}}if(Mt(t.structured_output))return{kind:"object",value:t.structured_output};let n=typeof t.result=="string"?Rt(t.result):null;return n?{kind:"object",value:n}:{kind:"none"}}function Rt(e){let t=e.trim();return Nt(t)??jn(t)}function Nt(e){try{let t=JSON.parse(e);return Mt(t)?t:null}catch{return null}}function jn(e){let t=/\{\s*["}]/g,n=null,r=0;for(let a=0;a<Ln;){t.lastIndex=r;let o=t.exec(e);if(!o)break;let s=Kn(e,o.index),d=s===-1?null:Nt(e.slice(o.index,s+1));d?(n=d,r=s+1):(r=o.index+1,a++)}return n}function Kn(e,t){let n=0,r=!1,a=!1;for(let o=t;o<e.length;o++){let s=e[o];if(r)a?a=!1:s==="\\"?a=!0:s==='"'&&(r=!1);else if(s==='"')r=!0;else if(s==="{")n++;else if(s==="}"&&--n===0)return o}return-1}function Mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e){return e.length===0?"The agent returned no usable probes.":te(`The agent returned no usable probes: ${e.slice(0,3).map(t=>`${t.path||"root"}: ${t.message}`).join("; ")}`)}function te(e){return e.length>kt?`${e.slice(0,kt)}...`:e}var Gn=64*1024,qn=3600*1e3;function Bt(e,t,n=Date.now){let r=(a,o)=>ee(e,`${Rn("sha256").update(JSON.stringify([a,3,o])).digest("hex")}.json`);return{get(a,o){try{let s=JSON.parse(pe(r(a,o),{maxBytes:Gn,inputKind:"agent probe cache entry"}));if(typeof s.storedAt!="number"||n()-s.storedAt>=t*qn)return;let{probes:d}=be(s.probes);return X(d)?d:void 0}catch{return}},set(a,o,s){let d=r(a,o),i=`${d}.${process.pid}.tmp`;try{Pt(e,{recursive:!0}),_t(i,JSON.stringify({storedAt:n(),probes:s})),An(i,d)}catch{try{At(i,{force:!0})}catch{}}}}}import{BlockList as zn,isIP as Jn}from"net";var Ce=64*1024*1024,Xn=2,Ot="embedding request aborted",Yn="codebaseiq embedding canary: parse a retry delay from a config file",N=class extends Error{constructor(n,r,a){super(r);this.kind=n;this.status=a;this.name="EmbeddingClientError"}kind;status},ne=new zn;for(let[e,t]of[["127.0.0.0",8],["10.0.0.0",8],["172.16.0.0",12],["192.168.0.0",16],["100.64.0.0",10],["169.254.0.0",16]])ne.addSubnet(e,t,"ipv4");ne.addAddress("::1","ipv6");ne.addSubnet("fe80::",10,"ipv6");ne.addSubnet("fc00::",7,"ipv6");var Qn=[".local",".lan",".home.arpa",".internal"];function Lt(e){let t;try{t=new URL(e).hostname}catch{return!1}let n=(t.startsWith("[")?t.slice(1,-1):t).replace(/\.$/,""),r=Jn(n);return r!==0?ne.check(n,r===4?"ipv4":"ipv6"):n==="localhost"||Qn.some(a=>n.endsWith(a))}function Dt(e,t={}){let n=t.fetchImpl??fetch,r=t.env??process.env,a=e.baseUrl.replace(/\/+$/,"");function o(){let c=e.apiKeyEnv?r[e.apiKeyEnv]:void 0;return c||void 0}function s(){let c;try{c=new URL(e.baseUrl)}catch{throw new N("invalid-endpoint",`embedding endpoint "${e.name}" has an invalid baseUrl`)}if(c.protocol!=="http:"&&c.protocol!=="https:")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must use http or https`);if(c.username!==""||c.password!=="")throw new N("invalid-endpoint",`embedding endpoint "${e.name}" must not embed credentials in baseUrl; use apiKeyEnv`);if(!e.allowRemote&&!Lt(e.baseUrl))throw new N("remote-not-allowed",`embedding endpoint "${e.name}" is not on a private network; set allowRemote to use it`);if(c.protocol==="http:"&&o()!==void 0&&!Lt(e.baseUrl))throw new N("insecure-token-transport",`embedding endpoint "${e.name}" would send its API key over plain http to a non-private host; use https`)}function d(c){let p={};c&&(p["content-type"]="application/json");let g=o();return g&&(p.authorization=`Bearer ${g}`),p}async function i(c,p,g,S){let b={model:e.model,input:c,encoding_format:"float",...e.dimensions!==void 0?{dimensions:e.dimensions}:{}},{status:m,text:x}=await Ft(n,`${a}/embeddings`,{method:"POST",headers:d(!0),body:JSON.stringify(b)},p,!0,S);if(m<200||m>=300)throw new N("http",`embeddings request failed with HTTP ${m}`,m);return nr(x,c.length,g)}async function l(c,p,g){try{return await i(c,e.requestTimeoutMs,p,g)}catch(S){if(!Zn(S))throw S;return i(c,e.requestTimeoutMs,p,g)}}return{async checkHealth({signal:c}={}){try{s()}catch(g){return ve(g)}try{await Ft(n,`${a}/models`,{method:"GET",headers:d(!1)},e.healthTimeoutMs,!1,c)}catch(g){return c?.aborted?ve(g,c):{ok:!1,reason:"unreachable",detail:ke(g)}}let p=ge();try{let[g]=await i([e.documentPrefix+Yn],e.warmTimeoutMs,{dims:e.dimensions},c);return{ok:!0,model:e.model,dimensions:g.length,latencyMs:Math.round(ge()-p),canary:g}}catch(g){return ve(g,c)}},async embed(c,p,{signal:g}={}){if(s(),c.length===0)return[];let S=p==="query"?e.queryPrefix:e.documentPrefix,b=Math.max(1,Math.floor(e.batchSize)),m=[];for(let R=0;R<c.length;R+=b)m.push(c.slice(R,R+b).map(A=>S+A));let x={dims:e.dimensions};return(await Ct(m,Xn,R=>l(R,x,g))).flat()}}}function Zn(e){return e instanceof N&&(e.kind==="timeout"||e.kind==="http"&&(e.status??0)>=500)}function ve(e,t){let n=ke(e);if(t?.aborted)return{ok:!1,reason:"aborted",detail:n};if(!(e instanceof N))return{ok:!1,reason:"bad-response",detail:n};switch(e.kind){case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":return{ok:!1,reason:e.kind,detail:n};case"network":return{ok:!1,reason:"unreachable",detail:n};case"timeout":return{ok:!1,reason:"model-loading",detail:n};case"http":return e.status===503?{ok:!1,reason:"model-loading",detail:n}:e.status===401||e.status===403?{ok:!1,reason:"unauthorized",detail:n}:{ok:!1,reason:"bad-response",detail:n};default:return{ok:!1,reason:"bad-response",detail:n}}}function ke(e){return e instanceof Error?e.message:String(e)}async function Ft(e,t,n,r,a,o){J(o,Ot);let s=new AbortController,d=setTimeout(()=>{s.abort(new N("timeout",`no response within ${r}ms`))},r),i=()=>s.abort(o?.reason);o?.addEventListener("abort",i,{once:!0});try{let l=await $t(e(t,{...n,signal:s.signal,redirect:"error"}),s.signal);return{status:l.status,text:a?await tr(l,s.signal):""}}catch(l){throw o?.aborted&&s.signal.reason===o.reason?H(o,Ot):l instanceof N?l:s.signal.aborted&&s.signal.reason instanceof N?s.signal.reason:new N("network",`could not reach the embeddings endpoint: ${er(l)}`)}finally{clearTimeout(d),o?.removeEventListener("abort",i),s.abort()}}function er(e){let t=e instanceof Error?e.cause:void 0;return typeof t?.code=="string"?t.code:ke(e)}async function tr(e,t){let n=Number(e.headers.get("content-length"));if(Number.isFinite(n)&&n>Ce)throw It();if(!e.body)return"";let r=e.body.getReader(),a=[],o=0;for(;;){let{done:s,value:d}=await $t(r.read(),t);if(s)break;if(o+=d.byteLength,o>Ce)throw r.cancel().catch(()=>{}),It();a.push(d)}return new TextDecoder().decode(Buffer.concat(a))}function It(){return new N("too-large",`embeddings response exceeded the ${Ce} byte limit`)}function $t(e,t){return new Promise((n,r)=>{let a=()=>r(t.reason);if(t.aborted){a();return}t.addEventListener("abort",a,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener("abort",a))})}function nr(e,t,n){let r;try{r=JSON.parse(e)}catch{throw j("response is not valid JSON")}let a=typeof r=="object"&&r!==null?r.data:void 0;if(!Array.isArray(a)||a.length!==t)throw j(`expected ${t} embeddings, received ${Array.isArray(a)?a.length:"none"}`);let o=new Array(t).fill(void 0),s=new Set;return a.forEach((d,i)=>{let l=typeof d=="object"&&d!==null?d:{},c=l.index===void 0?i:l.index;if(typeof c!="number"||!Number.isInteger(c)||c<0||c>=t||s.has(c))throw j("embedding indexes are not a permutation of the inputs");s.add(c),o[c]=l.embedding}),o.map(d=>rr(d,n))}function rr(e,t){if(!Array.isArray(e)||e.length===0)throw j("embedding is not a non-empty float array");if(t.dims!==void 0&&e.length!==t.dims)throw j(`embedding has ${e.length} dimensions, expected ${t.dims}`);let n=0;for(let o of e){if(typeof o!="number"||!Number.isFinite(o))throw j("embedding contains a non-finite value");n+=o*o}let r=Math.sqrt(n);if(!Number.isFinite(r)||r===0)throw j("embedding has zero or unrepresentable magnitude");t.dims=e.length;let a=new Float32Array(e.length);for(let o=0;o<e.length;o+=1)a[o]=e[o]/r;return a}function j(e){return new N("bad-response",`embeddings response rejected: ${e}`)}import{createHash as Kt}from"crypto";var Ut=2,Ht=200,or=new Set(["string","template_string","string_literal","raw_string_literal","char_literal","concatenated_string"]),sr={class_declaration:"name",abstract_class_declaration:"name",class:"name",class_definition:"name",trait_item:"name",impl_item:"type",mod_item:"name"},Wt=Ye({kind:"callable-units",invalidation:Qe("callable-units"),serialize:e=>JSON.stringify({version:Ut,...e}),deserialize:e=>{try{let t=JSON.parse(e);return t.version!==Ut?null:{language:t.language,contentHash:t.contentHash,units:t.units}}catch{return null}}});function ar(e){return Kt("sha256").update(e).digest("hex")}function Vt(e,t,n){let r=ar(n),a=Wt.read(e,t,r);if(a&&a.contentHash===r)return a;let o=tt(e,t,n);if(!o)return null;let s={language:o.language,contentHash:r,units:ir(o.tree,o.language)};return Wt.write(e,t,r,s),s}function ir(e,t){let n=[],r=new Map,a=[],o=s=>{let d=ot(s,t),i=d?.functionNode.childForFieldName("body");if(d&&i){let c=`${a.join(".")}#${d.name}`,p=r.get(c)??0;r.set(c,p+1),n.push(dr(d.name,[...a],p,d.definitionNode,i,t)),a.push(d.name);for(let g of s.children)o(g);a.pop();return}let l=cr(s);l&&a.push(l);for(let c of s.children)o(c);l&&a.pop()};return o(e.rootNode),n}function dr(e,t,n,r,a,o){let s=[],d=[],i=new Set,l=c=>{if(rt(c))return;let p=nt(c,o);if(p&&i.add(p.calleeLeaf),or.has(c.type)){s.push(c.text.replace(/\r\n/g,`
3
3
  `)),d.push("\0L");return}if(c.childCount===0){s.push(c.text),d.push(c.text);return}for(let g of c.children)l(g)};return l(a),{name:e,container:t,ordinal:n,startLine:r.startPosition.row,endLine:r.endPosition.row,bodyStartLine:a.startPosition.row,bodyLines:a.text.split(/\r?\n/).filter(c=>c.trim().length>0).length,tokenCount:s.length,signature:lr(r,a),exactHash:jt(s),shapeHash:jt(d),calleeLeaves:[...i].sort(),exported:fr(r)}}function cr(e){let t=sr[e.type];return t?e.childForFieldName(t)?.text??null:null}function lr(e,t){let n=e.text.lastIndexOf(t.text),a=(n>=0?e.text.slice(0,n):ur(e.text)).replace(/\s+/g," ").trim().replace(/[=:]?\s*$/,"").trim();return a.length>Ht?`${a.slice(0,Ht-1)}\u2026`:a}function ur(e){let t=e.indexOf(`
4
4
  `);return t>=0?e.slice(0,t):e}function fr(e){if(e.namedChildren.some(n=>n.type==="visibility_modifier"&&n.text.startsWith("pub")))return!0;let t=e;for(let n=0;t&&n<3;n++,t=t.parent)if(t.type==="export_statement")return!0;return!1}function jt(e){return Kt("sha256").update(e.join("")).digest("hex").slice(0,24)}var Re=["name","container","doc","signature","path"],mr=1e3,pr=150,gr=400,br=3,xe=/@deprecated\b|#\[deprecated\b|\bdeprecated\s*[:(]/i,Gt=/^\s*(?:\/\/|\/\*|\*|#|@)/,hr=new Set(pt()),Er=/(?:^|\/)(?:__generated__|generated)\/|\.(?:generated|gen|g)\.[a-z0-9]+$|\.pb2?\.[a-z0-9]+$|_pb2?\.[a-z0-9]+$/i,we=/@generated\b|\bcode generated\b.*\bdo not edit\b/i,yr=40,Sr=/^(?:\/\/|--|#(?![[!\w]))/,vr=/^\s*export\s+(?:default\s+)?(?:(?:async\s+)?function|(?:abstract\s+)?class|interface|type|enum|namespace|module|const|let|var)\s+([\p{L}\p{N}_$]+)/u,Cr=/^\s*export\s*\{([^}\n]*)/,kr=/[\p{L}\p{N}_$]+/gu,xr=2,wr=Xe("builder-candidate-corpus",{clearGroups:["whole-project","definition-catalog"]});function Y(e){return wr.get(e,()=>Ar(e))}function $(e,t=2,n=Number.POSITIVE_INFINITY){let r=[],a=[],o=new Set;for(let s of W(e)){if(r.length>=n)break;if(Z.has(s.toLocaleLowerCase()))continue;let d=de(s),i=d[0];if(!(i.length<t||Z.has(i))){r.push(i),a.push(d);for(let l of d)o.add(l)}}return{words:r,variants:a,set:o}}function Pe(e){return W(e).map(Et)}function Rr(e){let t=0,n=0,r=0,a=-1;for(let i=0;i<e.length&&a<0;i+=1){let l=e[i];l==="["?t+=1:l==="]"?t=Math.max(0,t-1):l==="{"?n+=1:l==="}"?n=Math.max(0,n-1):l==="<"?r+=1:l===">"&&e[i-1]!=="="&&e[i-1]!=="-"?r=Math.max(0,r-1):l==="("&&t===0&&n===0&&r===0&&(a=i)}if(a<0)return{params:null,returns:null};let o=0,s=-1;for(let i=a;i<e.length;i+=1){let l=e[i];if(l==="(")o+=1;else if(l===")"&&(o-=1,o===0)){s=i;break}}if(s<0)return{params:e.slice(a+1).trim(),returns:null};let d=e.slice(s+1).trim().replace(/^(?:=>|->|:)\s*/,"").replace(/\s+where\b.*$/,"").replace(/\s*(?:=>|=|\{|:)\s*$/,"").trim();return{params:e.slice(a+1,s).trim(),returns:d||null}}function Pr(e){if(!e)return"";let t=/^\s*```(?:\w+)?\s*\n?[\s\S]*?\n?```/.exec(e);return(t?e.slice(t[0].length):e.includes("|")?e.slice(0,e.indexOf("|")):"").replace(/\s+/g," ").trim().slice(0,mr)}function Ar(e){let t=new Map,n=new Set;for(let s of lt(e)){if(s.symbol.startsWith("local ")||!s.isFunctionLike&&!s.isTypeLike||e.isIgnored(s.relativePath)||Ee(s.relativePath)==="test")continue;let d=`${s.symbol}\0${s.relativePath}`;if(n.has(d))continue;n.add(d);let i=t.get(s.relativePath);i?i.push(s):t.set(s.relativePath,[s])}let r=[];for(let s of[...t.keys()].sort()){let d=et(e,s);if(Wr(s,d))continue;let i=t.get(s),l=Mr(e,s,d,i);for(let c of i){let p=Or(c,l);p&&r.push({definition:c,candidate:p})}}r.sort((s,d)=>s.candidate.file.localeCompare(d.candidate.file)||s.candidate.startLine-d.candidate.startLine||s.candidate.name.localeCompare(d.candidate.name));let a=yt(e,new Set,r.map(({definition:s})=>s.symbolId)),o=r.map(({definition:s,candidate:d})=>{let i=[...a.get(s.symbolId)??[]].filter(([l,c])=>l!==d.file&&c.occurrences>0&&Ee(l)!=="test").map(([l])=>l).sort();return{...d,referencedFrom:i,consumable:d.exported||i.length>0}});return Tr(o,r.map(({definition:s})=>_r(s)))}function _r(e){let{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}=e;return{symbolId:t,documentId:n,startLine:r,endLine:a,symbol:o,relativePath:s}}function Tr(e,t){let n=new Map,r=new Map,a=new Map,o=new Set;return e.forEach((s,d)=>{let i=new Set;for(let l of Re)for(let c of s.fields[l].set)i.add(c);for(let l of i)zt(n,l,d);for(let l of s.fields.name.set)r.set(l,(r.get(l)??0)+1);zt(a,s.name,d);for(let l of s.calleeLeaves)o.add(l)}),{candidates:e,locations:t,byToken:n,nameDocFreq:r,byName:a,calledLeaves:o}}var qt=new WeakMap;function Jt(e,t,n,r){let a=qt.get(t);a||(a=new Map,qt.set(t,a));let o=a.get(n);return o||(o=Nr(e,t.locations[n],t.candidates[n].name),a.set(n,o)),o.get(r)??[]}function Nr(e,t,n){let r=new Map;for(let o of ft(e,[t.symbolId])){if(e.isIgnored(o.relative_path))continue;let s=[o.chunk_start,o.chunk_end],d=r.get(o.relative_path);d?d.push(s):r.set(o.relative_path,[s])}let a=new Map;for(let[o,s]of r){let d=o===t.relativePath?{excludeStartLine:t.startLine,excludeEndLine:t.endLine}:{},i=ut(e,o,n,d);a.set(o,s.flatMap(([l,c])=>{let p=i.filter(g=>g>=l&&g<=c);return p.length>0?p.map(g=>[g,g]):[[l,c]]}))}return a}function zt(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function Mr(e,t,n,r){let a=null;return{lines:n,units:Br(e,t),endLines:r.map(o=>o.endLine).sort((o,s)=>o-s),exportedNames:()=>a??=Ur(n)}}function Br(e,t){let n=new Map,r=Ze(e,t);if(!r)return n;for(let a of Vt(e,t,r)?.units??[]){let o=n.get(a.name);o?o.push(a):n.set(a.name,[a])}return n}function Or(e,t){let{units:n}=t,r=e.isTypeLike?null:Lr(n.get(e.leaf),e.startLine),a=!e.isTypeLike&&(r!==null||it(e.symbol)||hr.has(e.kind??-1));if(!e.isTypeLike&&!a)return null;let o=dt(ct(e.documentation)),s=jr(a&&(!o||!o.includes("("))&&r?r.signature:o??r?.signature??"").slice(0,gr),d=a&&s?Rr(s):{params:null,returns:null},i=Pr(e.documentation),l=Fr(e,r),c=e.leaf;return{symbol:e.symbol,name:c,kind:a?e.parentTypeName?"method":"function":Ir(e,s),file:e.relativePath,startLine:e.startLine,endLine:e.endLine,container:l,doc:i,signature:s||null,paramsText:d.params,returnsText:d.returns,nameWords:Pe(c),fields:{name:$(c),container:$(l??""),doc:$(i,3,pr),signature:$(s),path:$(e.relativePath.replace(/\.[^./]+$/,""))},calleeLeaves:r?.calleeLeaves??[],hasBody:r!==null,exported:r?.exported===!0||Hr(t.exportedNames(),e),deprecated:Dr(t,e,i)}}function Lr(e,t){let n=null;for(let r of e??[]){let a=Math.abs(r.startLine-t);a<=br&&(!n||a<Math.abs(n.startLine-t))&&(n=r)}return n}function Fr(e,t){return e.parentTypeName?e.parentTypeName:e.enclosingSymbol&&at(e.enclosingSymbol)!=="namespace"?st(e.enclosingSymbol)||null:t?.container.at(-1)??null}function Ir(e,t){let r=(/^(?:export\s+)?(?:default\s+)?(?:declare\s+)?(?:abstract\s+)?(class|struct|interface|trait|protocol)\b/.exec(t)?.[1]??mt(e.kind??0)).toLowerCase();return r==="class"||r==="struct"?"class":r==="interface"||r==="trait"||r==="protocol"?"interface":"type"}function Dr(e,t,n){if(xe.test(n))return!0;let{lines:r}=e,a=r[t.startLine];if(a!==void 0&&Gt.test(a)&&xe.test(a))return!0;let o=$r(e.endLines,t.startLine),s=!1;for(let d=t.startLine-1;d>o;d-=1){let i=r[d]?.trim()??"";if(i===""){if(s)continue;return!1}if(!s&&!Gt.test(i))return!1;if(xe.test(i))return!0;s?s=!i.includes("/*"):s=i.endsWith("*/")&&!i.includes("/*")}return!1}function $r(e,t){let n=0,r=e.length;for(;n<r;){let a=n+r>>>1;e[a]<t?n=a+1:r=a}return n>0?e[n-1]:-1}function Ur(e){let t=new Map,n=new Set;return e.forEach((r,a)=>{if(!r.includes("export"))return;let o=vr.exec(r)?.[1];if(o){let s=t.get(o);s?s.push(a):t.set(o,[a])}for(let s of Cr.exec(r)?.[1]?.match(kr)??[])n.add(s)}),{declared:t,listed:n}}function Hr(e,t){if(e.listed.has(t.leaf))return!0;let n=t.startLine-xr;return e.declared.get(t.leaf)?.some(r=>r>=n&&r<=t.startLine)??!1}function Wr(e,t){if(Er.test(e.replace(/\\/g,"/")))return!0;let n=!1;for(let[r,a]of t.slice(0,yr).entries()){let o=a.trim();if(n){if(we.test(o))return!0;n=!o.includes("*/")}else{if(o===""||r===0&&o.startsWith("#!"))continue;if(o.startsWith("/*")){if(we.test(o))return!0;n=!o.includes("*/",2)}else if(Sr.test(o)){if(we.test(o))return!0}else return!1}}return!1}function jr(e){return e.replace(/\s+/g," ").trim()}var Kr={name:1,container:.8,doc:.6,signature:.5,path:.3},Vr=200,Gr=3,qr=5,zr=new Set(["add","apply","build","calculate","call","check","compute","config","context","convert","create","data","default","delete","do","ensure","error","fetch","find","format","get","handle","has","info","init","is","item","load","make","new","normalize","option","param","parse","process","read","remove","resolve","result","run","set","state","type","update","use","validate","value","with","wrap","write"]);function Yt(e,t,n={}){let r=Jr(e,t,n.scope),a=[];for(let o of Yr(e,r)){if(!Zt(r,e.candidates[o]))continue;let s=en(r,e,o);(s.exactName||s.match>0)&&a.push(s)}return a.sort((o,s)=>Number(s.exactName)-Number(o.exactName)||s.match-o.match||s.nameCoverage-o.nameCoverage||o.index-s.index),{plan:r,corpusUnits:e.candidates.filter(o=>Q(r.scope,o)).length,shortlist:a.slice(0,Vr).map(o=>tn(r,e,o)),unresolvedProbes:r.calls.filter(o=>o.status!=="matched").map(o=>({probe:o.probe,status:o.status}))}}function Qt(e,t,n){return Zt(t,e.candidates[n])?tn(t,e,en(t,e,n)):null}function re(e){return e?e.replace(/\\/g,"/").toLowerCase():null}function Q(e,t){return!e||t.file.toLowerCase().includes(e)}function Zt(e,t){return Q(e.scope,t)?e.kinds.size===0||e.kinds.has(t.kind)?!0:(t.kind==="function"||t.kind==="method")&&(e.kinds.has("function")||e.kinds.has("method")):!1}function Jr(e,t,n){let r=new Set,a=i=>{for(let l of W(i))for(let c of de(l))r.add(c)},o=[];for(let i of t.terms){let l=[],c=[];for(let g of i){let S=Ae(g);S.length!==0&&(l.push(g),c.push(S),a(g))}if(c.length===0)continue;let p=Math.max(...c.map(g=>Xr(e,g)));o.push({labels:l,synonyms:c,weight:Math.log((e.candidates.length+1)/(p+1))+1})}let s=t.names.map(Pe).filter(i=>i.length>0);for(let i of t.names)a(i);for(let i of t.calls)a(i);for(let i of[...t.params,...t.returns])a(i);let d=t.calls.map(i=>Zr(e,i));return{groups:o,totalWeight:o.reduce((i,l)=>i+l.weight,0),names:s,vocab:r,calls:d,callTargets:new Set(d.flatMap(i=>i.targets)),params:{label:t.params.join("/"),words:t.params.flatMap(Ae)},returns:{label:t.returns.join("/"),words:t.returns.flatMap(Ae)},kinds:new Set(t.kinds),scope:re(n)}}function Ae(e){return $(e).variants}function Xr(e,t){return Math.min(...t.map(n=>Math.max(0,...n.map(r=>e.nameDocFreq.get(r)??0))))}function Yr(e,t){let n=new Set,r=o=>o.flatMap(s=>e.byToken.get(s)??[]),a=o=>{let s=o.map(r).sort((d,i)=>d.length-i.length)[0];for(let d of s??[])n.add(d)};for(let o of t.groups)for(let s of o.synonyms)a(s);for(let o of t.names)a(o.filter(s=>s.length>=2&&!Z.has(s)).map(s=>[s]));return n}var Qr=/[.#:/]/;function Zr(e,t){let n=t.replace(/`/g,""),r=Qr.test(n),a=r?n.split(/[.#:/]+/).filter(Boolean).at(-1)??n:n,o=e.byName.get(a)??[],s=r?o.filter(i=>to(e.candidates[i]).has(n)):o;if(s.length>0)return new Set(s.map(l=>eo(e.candidates[l]))).size>qr?{probe:t,leaf:a,status:"ambiguous",targets:[]}:{probe:t,leaf:a,status:"matched",targets:s};let d=!r&&e.calledLeaves.has(n);return{probe:t,leaf:a,status:d?"matched":"unmatched",targets:[]}}function eo(e){return`${e.file}\0${e.container??""}`}function to(e){let t=new Set,n=[e.name];if(e.container){for(let r of[".","#","::"])t.add(`${e.container}${r}${e.name}`);n.push(`${e.container}.${e.name}`)}for(let r of[e.file,e.file.replace(/\.[^./]+$/,"")])for(let a of[":","#","/"])for(let o of n)t.add(`${r}${a}${o}`);return t}function en(e,t,n){let r=t.candidates[n],a=e.names.some(c=>no(c,r.nameWords)),o=0,s=0,d=0,i=[];for(let c of e.groups){let p={label:c.labels[0],field:null};for(let g of Re){let S=c.synonyms.findIndex(b=>ro(r.fields[g],b));if(!(S<0)){p={label:c.labels[S],field:g};break}}i.push(p),p.field&&(o+=c.weight*Kr[p.field]),p.field==="name"&&(s+=c.weight,d+=1)}let l=e.totalWeight;return{index:n,match:l>0?o/l:0,nameCoverage:l>0?s/l:0,nameGroups:d,exactName:a,hits:i}}function no(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function ro(e,t){if(t.length===1)return t[0].some(n=>e.set.has(n));for(let n=0;n+t.length<=e.words.length;n+=1)if(t.every((r,a)=>e.variants[n+a].some(o=>r.includes(o))))return!0;return!1}function tn(e,t,n){let r=t.candidates[n.index],a=e.calls.filter(i=>i.status==="matched"),o=a.filter(i=>r.calleeLeaves.includes(i.leaf)).map(i=>i.probe),{fit:s,note:d}=so(e,r);return{...n,candidate:r,callContainment:r.hasBody&&a.length>0?o.length/a.length:null,callsFound:o,fit:s,fitNote:d,specializedWords:oo(e,t,r),isCallTarget:e.callTargets.has(n.index)}}function oo(e,t,n){let r=n.fields.name;return r.words.filter((a,o)=>(t.nameDocFreq.get(a)??0)<=Gr&&!zr.has(a)&&!r.variants[o].some(s=>e.vocab.has(s)))}function so(e,t){if(t.kind!=="function"&&t.kind!=="method")return{fit:"unknown",note:null};let n=[ao(e,t),io(e,t)].filter(a=>a!==null),r=n.find(a=>a.verdict==="conflicts")??n[0];return r?{fit:r.verdict,note:r.note}:{fit:"unknown",note:null}}function ao(e,t){if(e.returns.words.length===0)return null;let n=t.returnsText;return n?nn($(n),e.returns.words)?{verdict:"fits",note:`returns ${Xt(n)}`}:{verdict:"conflicts",note:`returns ${Xt(n)}, probe expects ${e.returns.label}`}:null}function io(e,t){return e.params.words.length===0||t.paramsText===null?null:t.paramsText===""?{verdict:"conflicts",note:`takes no parameters, probe expects ${e.params.label}`}:nn($(t.paramsText),e.params.words)?{verdict:"fits",note:`parameters include ${e.params.label}`}:null}function nn(e,t){return t.some(n=>n.some(r=>e.set.has(r)))}function Xt(e){return e.length>40?`${e.slice(0,39)}\u2026`:e}import{createHash as Eo}from"crypto";var co=.6,lo=.35,rn=.5,uo=.75,fo=.5,Ne="blocked: file-internal (not exported, no references from other files)",Me="blocked: marked @deprecated",oe=["reuse","rework","compose"];function sn(e,t,n){let{plan:r}=n,a=new Map(n.shortlist.map(i=>[i.index,i])),o=i=>{if(a.has(i))return;let l=Qt(t,r,i);l&&a.set(i,l)};for(let i of r.callTargets)o(i);let s=new Map;for(let i of[...a.values()].filter(l=>po(r,l)))for(let l of i.candidate.calleeLeaves)for(let c of bo(e,t,i.candidate,l)){if(c===i.index)continue;let p=s.get(c);p?p.push(i):s.set(c,[i])}for(let i of s.keys())o(i);let d=[];for(let i of a.values()){let l=mo(r,i,s.get(i.index)??[]);l&&d.push(l)}return d.sort(ho)}function mo(e,t,n){let r=cn(t),a=go(e,t,n),o=t.exactName||t.nameCoverage>=uo,s=t.candidate.consumable&&!t.candidate.deprecated;return a.length>0&&!o&&s?_e(t,"compose",[...Te(t),...a]):an(t,r)?_e(t,"reuse",Te(t)):(t.exactName||t.match>=lo)&&r.length>0?_e(t,"rework",[...Te(t),...r.map(d=>d.text)]):null}function _e(e,t,n){let r=e.exactName||(e.callContainment??0)>=fo&&e.fit==="fits";return{candidate:e.candidate,bucket:t,tier:r?"direct":"signal",score:Fe(e.exactName?Math.max(e.match,.9):e.match),why:n}}function an(e,t){return(e.exactName||e.match>=co)&&t.length===0}function po(e,t){return an(t,cn(t))&&!t.isCallTarget&&!dn(e,t)}function dn(e,t){return e.groups.length>=2&&t.nameGroups===1&&t.specializedWords.length===0&&t.hits.some(n=>n.field===null)}function go(e,t,n){let r=[];t.isCallTarget&&r.push(`name matches call probe ${t.candidate.name}`),dn(e,t)&&r.push(`part of the task: name covers 1 of ${e.groups.length} concepts`);let a=n.filter(o=>on(o)>on(t));if(a.length>0){let o=[...new Set(a.map(s=>s.candidate.name))].slice(0,3);r.push(`referenced inside ${o.join(", ")}`)}return r}function on(e){return e.exactName?Math.max(e.match,.9):e.match}function bo(e,t,n,r){return(t.byName.get(r)??[]).filter(a=>{let o=t.candidates[a];return o.file!==n.file&&!o.referencedFrom.includes(n.file)?!1:Jt(e,t,a,n.file).some(([s,d])=>s>=n.startLine&&d<=n.endLine)})}function cn(e){let{candidate:t}=e,n=[];e.fit==="conflicts"&&n.push({kind:"signature",text:`blocked: ${e.fitNote??"signature conflicts with the probes"}`}),t.consumable||n.push({kind:"file-internal",text:Ne}),e.specializedWords.length>0&&n.push({kind:"specialized",text:`blocked: specialized name (${e.specializedWords.join(", ")} not in the probes)`}),t.deprecated&&n.push({kind:"deprecated",text:Me});let r=[...new Set(e.hits.flatMap(o=>o.field&&o.field!=="name"?[o.field]:[]))],a=e.exactName||e.nameCoverage>=rn||(e.callContainment??0)>=rn;return r.length>0&&!a&&n.push({kind:"doc-only",text:`blocked: concept appears only in ${r.join("/")}, not in the name or callees`}),n}function Te(e){let t=[];e.exactName&&t.push(`name equals probe name ${e.candidate.name}`);let n=new Map;for(let a of e.hits){if(!a.field)continue;let o=n.get(a.field)??[];o.push(a.label),n.set(a.field,o)}let r=n.get("name");r&&!e.exactName&&t.push(`name matches ${r.join("+")}`);for(let[a,o]of n)a!=="name"&&t.push(`${a} mentions ${o.join("+")}`);return e.callsFound.length>0&&t.push(`calls ${e.callsFound.join(", ")}`),e.candidate.consumable&&t.push(Be(e.candidate)),e.fit==="fits"&&e.fitNote&&t.push(`signature fits: ${e.fitNote}`),t}function Be(e){let t=e.referencedFrom.length,n=`referenced from ${t} ${t===1?"file":"files"}`;return e.exported?t>0?`exported, ${n}`:"exported, no references from other files":t>0?`not exported, ${n}`:"file-internal"}function Oe(e,t){return{symbolId:e.symbol,name:e.kind==="method"&&e.container?`${e.container}.${e.name}`:e.name,file:e.file,line:e.startLine+1,signature:e.signature,...t}}function Le(e,t,n){let r=new Map;return e.filter(a=>{if(n&&a.bucket!==n)return!1;let o=r.get(a.bucket)??0;return r.set(a.bucket,o+1),o<t})}function ho(e,t){return oe.indexOf(e.bucket)-oe.indexOf(t.bucket)||+(t.tier==="direct")-+(e.tier==="direct")||t.score-e.score||e.candidate.file.localeCompare(t.candidate.file)||e.candidate.startLine-t.candidate.startLine||e.candidate.name.localeCompare(t.candidate.name)}function Fe(e){return Math.round(e*1e3)/1e3}var mn=5,pn=1200,yo=.05,So=.12,vo=15,Co=3,ko=.5,xo=200,wo=300,ln=1e-9;function gn(e,t,n={}){let r=Y(e),a=Yt(r,t,{scope:n.scope}),o=sn(e,r,a);return{candidates:Le(o,n.limit??mn,n.bucket).map(s=>Oe(s.candidate,{bucket:s.bucket,tier:s.tier,score:s.score,scoreBasis:"probe-match",why:s.why})),unresolvedProbes:a.unresolvedProbes,coverage:{corpusUnits:a.corpusUnits}}}var un=new WeakMap;function bn(e,t=pn){return hn(Y(e),t).cards}function hn(e,t){let n=un.get(e);n||(n=new Map,un.set(e,n));let r=n.get(t);if(!r){let a=e.candidates.map((s,d)=>{let i=Po(s,t);return{cardHash:Ro(i),text:i,candidateIndex:d}}),o=new Map;for(let s of a){let d=o.get(s.cardHash);d?d.push(s.candidateIndex):o.set(s.cardHash,[s.candidateIndex])}r={cards:a,indexesByHash:o},n.set(t,r)}return r}function Ro(e){return Eo("sha256").update(`card-format-${1}
5
5
  ${e}`).digest("hex")}function Po(e,t){let n=o=>W(o).map(s=>s.toLocaleLowerCase()).join(" "),r=`name: ${n(e.name)} | kind: ${e.kind} | in: ${e.container??""}`,a=[`signature: ${(e.signature??"").slice(0,xo)}`,`doc: ${e.doc.slice(0,wo)}`,`path: ${n(e.file.replace(/\.[^./]+$/,""))}`].join(" | ");return`${r}
@@ -14,4 +14,4 @@ ${a}`.slice(0,t)}function En(e,t,n={}){let{topBandMargin:r=yo,maxCardChars:a=pn}
14
14
  `),Uo(n,t),{db:n,readDataVersion:n.prepare("PRAGMA data_version").pluck(),readCanary:n.prepare("SELECT value FROM meta WHERE key = 'canary'"),writeCanary:n.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES ('canary', ?)"),readUsed:n.prepare("SELECT last_used_at FROM vectors WHERE card_hash = ?"),touch:n.prepare("UPDATE vectors SET last_used_at = ? WHERE card_hash = ?"),upsert:n.prepare("INSERT OR REPLACE INTO vectors (card_hash, embedded_at, last_used_at, vector) VALUES (?, ?, ?, ?)"),countRows:n.prepare("SELECT COUNT(*) AS count FROM vectors"),readAll:n.prepare("SELECT card_hash, vector FROM vectors"),deleteUnusedBefore:n.prepare("DELETE FROM vectors WHERE last_used_at < ?"),deleteOldest:n.prepare(`DELETE FROM vectors WHERE card_hash IN (
15
15
  SELECT card_hash FROM vectors ORDER BY last_used_at ASC, embedded_at ASC, card_hash ASC LIMIT ?
16
16
  )`)}}catch(r){ce("disabled (open failed)",r);try{n?.close()}catch{}return null}}function Uo(e,t){let n={schema_version:String(Oo),model:t.model,dims:String(t.dims),document_prefix:t.documentPrefix,card_format_version:String(t.cardFormatVersion)};e.transaction(()=>{let r=new Map(e.prepare("SELECT key, value FROM meta").all().map(s=>[s.key,s.value]));if(Object.entries(n).every(([s,d])=>r.get(s)===d))return;e.exec("DELETE FROM vectors; DELETE FROM meta;");let o=e.prepare("INSERT INTO meta (key, value) VALUES (?, ?)");for(let[s,d]of Object.entries(n))o.run(s,d)}).immediate()}function Sn(e){return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function Ho(e){return new Float32Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}function Wo(e,t){if(e.length!==t.length)return 0;let n=0,r=0,a=0;for(let o=0;o<e.length;o+=1)n+=e[o]*t[o],r+=e[o]*e[o],a+=t[o]*t[o];return r===0||a===0?0:n/Math.sqrt(r*a)}var jo="builder";function ua(e){return De(e,jo)}var Ko=.8,Cn="inside an agent session: pass probes (--term/--name/--calls) instead of a description",Vo=3e4,Go=6e4,qo=2,zo=50,Jo=12,$e=2e3,Xo=5,se="builder query aborted",Yo=2147483647;function Qo(e){return e>=$e?`vector search returns at most ${$e} hits; lower-ranked units are not listed`:void 0}function fa(e){let{settings:t,storeRoot:n,languages:r}=e,a=e.env??process.env,o=e.now??ie,s=new Map,d;function i(u){let f=e.openDb();try{return u(f)}finally{e.closeDb?.(f)}}function l(){return Object.entries(a).some(([u,f])=>f!==void 0&&(u==="CLAUDECODE"||u.startsWith("CODEX_")))}function c(u){let f=s.get(u.name);return f||(f={client:Dt(u,{fetchImpl:e.fetchImpl,env:a})},s.set(u.name,f)),f}function p(u,f,h){u.health=void 0,u.failure={state:f,detail:h,openUntil:o()+Go}}async function g(u,f,h=!1){let E=c(u),v=o();if(!h&&E.failure&&v<E.failure.openUntil){let k=Math.ceil((E.failure.openUntil-v)/1e3);return{ok:!1,state:E.failure.state,detail:`${E.failure.detail} (not retried for another ${k}s)`}}let C=!h&&E.health!==void 0&&v-E.health.checkedAt<Vo,y;if(C)y=E.health.value;else{let k=await E.client.checkHealth({signal:f});if(!k.ok){J(f,se);let _=Zo(k.reason);return p(E,_,k.detail),{ok:!1,state:_,detail:k.detail}}y=k,E.health={value:k,checkedAt:o()},E.failure=void 0}let w=S(E,u,y,!C);return w.ok?{ok:!0,endpoint:u,store:w.held.store,client:E.client,...w.held.forked?{note:`model weights differ from the shared ${u.model} store; using a store forked for ${u.name}`}:{}}:w}function S(u,f,h,E){let v=u.held;if(v&&v.dims===h.dimensions&&(!E||v.store.verifyCanary(h.canary)!=="drift"))return{ok:!0,held:v};v?.store.close(),u.held=void 0;let C={model:f.model,dims:h.dimensions,documentPrefix:f.documentPrefix,cardFormatVersion:1},y=Ie(n,C);if(!y.available)return y.close(),{ok:!1,state:"degraded",detail:`the vector store ${y.path} could not be opened`};if(y.verifyCanary(h.canary)!=="drift")return u.held={store:y,dims:h.dimensions,forked:!1},{ok:!0,held:u.held};let w=y.key;y.close();let k=Ie(n,C,{storeKey:vn(w,f.name)});return!k.available||k.verifyCanary(h.canary)==="drift"?(k.close(),{ok:!1,state:"degraded",detail:`model weights for ${f.model} keep changing between runs`}):(u.held={store:k,dims:h.dimensions,forked:!0},{ok:!0,held:u.held})}function b(u){return i(f=>{let h=bn(f,t.maxCardChars),E=new Map;for(let y of h)E.has(y.cardHash)||E.set(y.cardHash,y.text);let v=re(u),C=null;if(v){let{candidates:y}=Y(f);C=new Set(h.filter(w=>Q(v,y[w.candidateIndex])).map(w=>w.cardHash))}return{hashes:h.map(y=>y.cardHash),textByHash:E,scopedHashes:C}})}function m(u,f){let h=new Set(u.missing(f.hashes)),E=f.hashes.filter(v=>!h.has(v)).length;return{embeddedUnits:E,fraction:f.hashes.length===0?1:E/f.hashes.length}}async function x(u,f,h,E){let{endpoint:v,store:C,client:y}=u,w=C.missing(f.hashes);if(w.length===0)return{embedded:0,budgetExhausted:!1};let k=AbortSignal.timeout(Math.min(E,Yo)),_=h?AbortSignal.any([h,k]):k,L=Math.max(1,Math.floor(v.batchSize))*qo,T={embedded:0,budgetExhausted:!1};return(await C.withRefreshLock(async()=>{for(let q=0;q<w.length;q+=L){let z=w.slice(q,q+L);try{let U=await y.embed(z.map(F=>f.textByHash.get(F)),"document",{signal:_});C.put(z.map((F,me)=>({cardHash:F,vector:U[me]}))),T.embedded+=z.length}catch(U){if(h?.aborted)throw H(h,se);if(k.aborted){T.budgetExhausted=!0;return}p(c(v),"degraded",ue(U)),T.note=`embedding stopped: ${ue(U)}`;return}}})).acquired?T.embedded>0&&C.prune():T.note="another process is already embedding this repository",T}async function P(u,f,h,E){let v=await g(u,E);if(!v.ok)return{kind:"failed",reason:`${v.state}: ${v.detail}`};let C=b(f.scope),y=await x(v,C,E,t.indexBudgetMs),{embeddedUnits:w,fraction:k}=m(v.store,C),_;try{let[F]=await v.client.embed([h],"query",{signal:E}),me=Math.min($e,Math.max(zo,(f.limit??Xo)*Jo));_=v.store.topK(F,me,C.scopedHashes??new Set(C.hashes))}catch(F){if(E?.aborted)throw H(E,se);return p(c(u),"degraded",ue(F)),{kind:"failed",reason:`degraded: ${ue(F)}`}}let L=i(F=>En(F,_,{topBandMargin:t.topBandMargin,maxCardChars:t.maxCardChars,limit:f.limit,scope:f.scope,bucket:f.bucket})),T=C.hashes.length,Ue=w<T?`partial embeddings: ${w} of ${T} units (${le(k)})`:void 0,q=y.budgetExhausted?`index budget of ${t.indexBudgetMs} ms used up`:void 0,z=[v.note,Ue,q,y.note,Qo(_.length)].filter(F=>F!==void 0),U={provider:`embeddings:${u.name}`,probes:null,unresolvedProbes:[],candidates:L,coverage:{corpusUnits:T,embeddedUnits:w,...z.length>0?{note:z.join("; ")}:{}}};return k>=t.minCoverage?{kind:"answer",answer:U}:{kind:"degraded",answer:U,fraction:k,reason:`degraded: embedded ${w} of ${T} units (${le(k)}), below the ${le(t.minCoverage)} minimum`}}function R(){return d??=Bt(De(n,"agent-probes"),t.cacheTtlHours,o),d}async function A(u,f,h,E){if(l())return{kind:"failed",reason:Cn};let v=R(),C=v.get(u.argv,h);if(!C){let y=await Tt(u,{description:h,languages:r,workDir:De(n,"agent-sandbox")},{signal:E,env:a});if(!y.ok)return{kind:"failed",reason:`${y.reason}: ${y.detail}`};C=y.probes,v.set(u.argv,h,C)}return{kind:"answer",answer:{provider:`agent:${u.name}`,...B(f,C)}}}function B(u,f){let h=i(E=>gn(E,f,{limit:u.limit,scope:u.scope,bucket:u.bucket}));return{probes:f,unresolvedProbes:h.unresolvedProbes,candidates:h.candidates,coverage:h.coverage}}function O(u){return u==="agent"?t.agents.map(f=>({kind:"agent",name:f.name})):u==="embeddings"?t.endpoints.map(f=>({kind:"embeddings",name:f.name})):t.chain}async function ae(u,f,h,E){if(u.kind==="agent"){let C=t.agents.find(y=>y.name===u.name);return C?A(C,f,h,E):{kind:"failed",reason:"not configured"}}let v=t.endpoints.find(C=>C.name===u.name);return v?P(v,f,h,E):{kind:"failed",reason:"not configured"}}function M(u,f){return{...u,fallbacksTried:f,evidence:"heuristic"}}function I(u,f){return M({provider:"none",probes:null,unresolvedProbes:[],candidates:[],coverage:{corpusUnits:0,note:f}},u)}async function K(u,f={}){let{signal:h}=f;J(h,se);let E=u.mode??t.mode;if(u.probes&&X(u.probes)&&E!=="embeddings")return M({provider:"agent:caller",...B(u,u.probes)},[]);let v=Ve(u.description?.trim()??"").trim();if(v===""){let k=E==="embeddings"&&u.probes&&X(u.probes)?"embeddings mode ranks a description; probes are not embedded":"no description or probes were given";return I([{provider:"request",reason:k}],"nothing to look up")}let C=O(E);if(C.length===0)return I([{provider:E,reason:"no providers are configured for this mode"}],"no provider ran");let y=[],w=[];for(let k of C){J(h,se);let _=await ae(k,u,v,h);if(_.kind==="answer")return M(_.answer,y);let L={provider:qe(k),reason:_.reason};y.push(L),_.kind==="degraded"&&w.push({entry:L,answer:_.answer,fraction:_.fraction})}if(w.length>0){let k=w.reduce((_,L)=>L.fraction>_.fraction?L:_);return M(k.answer,y.filter(_=>_!==k.entry))}return I(y,"no provider answered")}function fe(u){let f=`agent:${u.name}`;if(l())return{provider:f,state:"skipped",detail:Cn};let h=Se(u);return h.ok?{provider:f,state:"ok",detail:`runs ${u.argv[0]} with a ${Math.round(u.timeoutMs/1e3)}s timeout`}:{provider:f,state:h.reason==="misconfigured"?"misconfigured":"unreachable",detail:h.detail}}async function V(u,f){let h=`embeddings:${u.name}`,E=await g(u,f,!0);if(!E.ok)return{provider:h,state:E.state,detail:E.detail};let v=b(void 0),{embeddedUnits:C,fraction:y}=m(E.store,v),w=`${u.model} reachable; embedded ${C} of ${v.hashes.length} units (${le(y)})`;return{provider:h,state:y>=t.minCoverage?"ok":"degraded",detail:E.note?`${w}; ${E.note}`:w,coverage:y}}async function G(u={}){let f=[];for(let h of t.endpoints)f.push(await V(h,u.signal));for(let h of t.agents)f.push(fe(h));return f}async function kn(u={}){let{endpoint:f,signal:h,endsAt:E,budgetMs:v=t.indexBudgetMs}=u,C=f===void 0?t.endpoints:t.endpoints.filter(w=>w.name===f);if(C.length===0)throw new Error(f===void 0?"No embeddings endpoint is configured.":`No embeddings endpoint is named ${f}.`);let y=[];for(let w of C){let k=await g(w,h);if(!k.ok){y.push(`embeddings:${w.name} ${k.state}: ${k.detail}`);continue}let _=b(void 0),L=E===void 0?v:Math.max(1,Math.floor((E-o())*Ko)),T=await x(k,_,h,L);return{provider:`embeddings:${w.name}`,embedded:T.embedded,coverage:m(k.store,_).fraction,budgetExhausted:T.budgetExhausted,...T.note?{note:T.note}:{}}}throw new Error(`No embeddings endpoint could be refreshed: ${y.join("; ")}`)}function xn(){for(let u of s.values())u.held?.store.close(),u.held=void 0}return{query:K,providerStatus:G,refreshEmbeddings:kn,close:xn}}function Zo(e){switch(e){case"unreachable":return"unreachable";case"remote-not-allowed":case"insecure-token-transport":case"invalid-endpoint":case"unauthorized":return"misconfigured";default:return"degraded"}}function le(e){return`${Math.round(e*100)}%`}function ue(e){return e instanceof Error?e.message:String(e)}export{ua as a,fa as b};
17
- //# sourceMappingURL=chunk-5DSL3NT2.js.map
17
+ //# sourceMappingURL=chunk-L37EQYAX.js.map