scip-query 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +2 -1
  3. package/dist/chunk-2GX3TNOW.js +38 -0
  4. package/dist/{chunk-Y4BBVPRK.js → chunk-35TZERMO.js} +2 -2
  5. package/dist/{chunk-PPAT3XUL.js → chunk-43QUXX3E.js} +2 -2
  6. package/dist/{chunk-O27267B6.js → chunk-45XOH33S.js} +2 -2
  7. package/dist/{chunk-SQJ72PQW.js → chunk-4MFMTEJ4.js} +5 -5
  8. package/dist/chunk-4XTPZ5CR.js +9 -0
  9. package/dist/chunk-6JSTKSZH.js +3 -0
  10. package/dist/{chunk-75H6GOND.js → chunk-7ROLM67J.js} +2 -2
  11. package/dist/{chunk-35DURZXI.js → chunk-ABDXTPCT.js} +2 -2
  12. package/dist/{chunk-HYRSGWFX.js → chunk-AV54WZUK.js} +2 -2
  13. package/dist/chunk-AWYKDRYV.js +2 -0
  14. package/dist/{chunk-O56VBJKB.js → chunk-BAMVG4WQ.js} +2 -2
  15. package/dist/{chunk-RPPV6Y4K.js → chunk-BECOMXAL.js} +2 -2
  16. package/dist/{chunk-W3HSUCRG.js → chunk-BJJHBKEC.js} +2 -2
  17. package/dist/{chunk-IZLWLO4X.js → chunk-D5F3IQYP.js} +2 -2
  18. package/dist/{chunk-2TM23JYJ.js → chunk-DDGO34I2.js} +2 -2
  19. package/dist/{chunk-G4IUQW27.js → chunk-DUKRAHV2.js} +2 -2
  20. package/dist/{chunk-MBDBNQBW.js → chunk-EJ65IVPV.js} +2 -2
  21. package/dist/{chunk-MON5XXTG.js → chunk-EMEXMHOP.js} +2 -2
  22. package/dist/{chunk-JYBP5ZIR.js → chunk-FMD46HAG.js} +2 -2
  23. package/dist/{chunk-WENI5ZDR.js → chunk-GTANVH72.js} +2 -2
  24. package/dist/{chunk-FZXN37RN.js → chunk-GWCW25ON.js} +2 -2
  25. package/dist/chunk-GWNE2WJN.js +3 -0
  26. package/dist/{chunk-CSMPXDYE.js → chunk-H4JNB7RT.js} +2 -2
  27. package/dist/{chunk-WGDIA2TU.js → chunk-HOZ3IXZ5.js} +2 -2
  28. package/dist/{chunk-OP5JXGDV.js → chunk-IG6X65MG.js} +2 -2
  29. package/dist/{chunk-KZ2LZBQT.js → chunk-IKMOYFUM.js} +2 -2
  30. package/dist/{chunk-HGO3D2JD.js → chunk-J7IMQRCU.js} +2 -2
  31. package/dist/{chunk-5N5ZC566.js → chunk-K65T4TJS.js} +2 -2
  32. package/dist/{chunk-BTYDBDX5.js → chunk-L2RE5P3X.js} +2 -2
  33. package/dist/{chunk-2DUWNJKE.js → chunk-L2TSLMPT.js} +2 -2
  34. package/dist/{chunk-OC7XDK62.js → chunk-LADYDOS5.js} +2 -2
  35. package/dist/{chunk-Y5BOEWAE.js → chunk-LL5NQB5V.js} +2 -2
  36. package/dist/{chunk-QYBCGCY5.js → chunk-MN54AGZ3.js} +2 -2
  37. package/dist/chunk-MNRKD3WP.js +18 -0
  38. package/dist/chunk-MPBN5DO4.js +2 -0
  39. package/dist/{chunk-IKAJI4SI.js → chunk-NQBMGFFD.js} +2 -2
  40. package/dist/{chunk-LG33DNTZ.js → chunk-NX2YAXVQ.js} +2 -2
  41. package/dist/{chunk-VDHEX6YO.js → chunk-O5A7BTMA.js} +2 -2
  42. package/dist/{chunk-OBPR6E5Z.js → chunk-O5Y3ISO3.js} +2 -2
  43. package/dist/{chunk-WT34AUWL.js → chunk-ODH4FT3P.js} +2 -2
  44. package/dist/{chunk-U3JW5AYG.js → chunk-OINSINYW.js} +2 -2
  45. package/dist/{chunk-FY6RCFDH.js → chunk-OM6JHEW3.js} +2 -2
  46. package/dist/{chunk-DQYG5JHT.js → chunk-OQFPCIXO.js} +2 -2
  47. package/dist/{chunk-BW4VDICR.js → chunk-OSBLECSI.js} +2 -2
  48. package/dist/{chunk-5QSMW5IO.js → chunk-OTTHMUMV.js} +2 -2
  49. package/dist/{chunk-W2I4QAW7.js → chunk-OUXPJ4H5.js} +2 -2
  50. package/dist/{chunk-BBTVIIOI.js → chunk-OWXNDSG3.js} +2 -2
  51. package/dist/{chunk-CKRVVBM6.js → chunk-P4L5QQT5.js} +2 -2
  52. package/dist/{chunk-E5HPTSRD.js → chunk-POGZSZPX.js} +2 -2
  53. package/dist/{chunk-V7MX6YUF.js → chunk-PV3GKBO5.js} +2 -2
  54. package/dist/{chunk-KWMRY4RN.js → chunk-PZV2PGBR.js} +3 -3
  55. package/dist/{chunk-KWQKWY6M.js → chunk-Q4UM4JJP.js} +2 -2
  56. package/dist/{chunk-7H37Z4UO.js → chunk-QPF7CS5W.js} +2 -2
  57. package/dist/chunk-R4VPIS4D.js +10 -0
  58. package/dist/{chunk-623AZLTE.js → chunk-RDX6WWHN.js} +2 -2
  59. package/dist/{chunk-HJYHSTCP.js → chunk-S43DIBME.js} +2 -2
  60. package/dist/chunk-SALRDXWM.js +121 -0
  61. package/dist/{chunk-PA2MQKXD.js → chunk-SUYCF4SX.js} +2 -2
  62. package/dist/{chunk-SSH2NPYS.js → chunk-SW7LKHRU.js} +2 -2
  63. package/dist/{chunk-HZVG4KID.js → chunk-SWJEREML.js} +2 -2
  64. package/dist/{chunk-TR7C5HOC.js → chunk-T4P27T6S.js} +2 -2
  65. package/dist/chunk-VQWDZ34M.js +928 -0
  66. package/dist/chunk-VXDMXZKC.js +5 -0
  67. package/dist/chunk-W3557RPL.js +3 -0
  68. package/dist/chunk-W3SKYOTF.js +2 -0
  69. package/dist/{chunk-UKUISUS6.js → chunk-XEEQX5X3.js} +2 -2
  70. package/dist/{chunk-7Z5UT44B.js → chunk-YMFHC5J2.js} +2 -2
  71. package/dist/cli.js +3 -1528
  72. package/dist/command-descriptors-AQWWJNTT.js +599 -0
  73. package/dist/direct-navigation-K3CTVVBU.js +3 -0
  74. package/dist/index.js +1 -1
  75. package/dist/postinstall.js +1 -1
  76. package/dist/queries/affected.js +1 -1
  77. package/dist/queries/bottlenecks.js +1 -1
  78. package/dist/queries/call-graph.js +1 -1
  79. package/dist/queries/change-surface.js +1 -1
  80. package/dist/queries/cleanup-plan.js +1 -1
  81. package/dist/queries/co-change.d.ts +2 -0
  82. package/dist/queries/co-change.js +1 -1
  83. package/dist/queries/code.js +1 -1
  84. package/dist/queries/complexity-hotspots.js +1 -1
  85. package/dist/queries/complexity.js +1 -1
  86. package/dist/queries/convergence.js +1 -1
  87. package/dist/queries/coupling.js +1 -1
  88. package/dist/queries/dataflow.js +1 -1
  89. package/dist/queries/dead.js +1 -1
  90. package/dist/queries/decorative-checkers.js +1 -1
  91. package/dist/queries/deps.js +1 -1
  92. package/dist/queries/diff-gate.js +1 -1
  93. package/dist/queries/diff-impact.js +1 -1
  94. package/dist/queries/doc-drift.js +1 -1
  95. package/dist/queries/drift.js +1 -1
  96. package/dist/queries/duplicate-bodies.js +1 -1
  97. package/dist/queries/extract-candidates.js +1 -1
  98. package/dist/queries/fan.js +1 -1
  99. package/dist/queries/health.js +1 -1
  100. package/dist/queries/hierarchy.js +1 -1
  101. package/dist/queries/hotspots.js +1 -1
  102. package/dist/queries/imports.js +1 -1
  103. package/dist/queries/incomplete-migration.js +1 -1
  104. package/dist/queries/index.js +1 -1
  105. package/dist/queries/isolated.js +1 -1
  106. package/dist/queries/locality-candidates.js +1 -1
  107. package/dist/queries/members.js +1 -1
  108. package/dist/queries/methods.js +1 -1
  109. package/dist/queries/not-implemented.js +1 -1
  110. package/dist/queries/outline.js +1 -1
  111. package/dist/queries/passthrough-candidates.js +1 -1
  112. package/dist/queries/plan-context.d.ts +2 -0
  113. package/dist/queries/plan-context.js +1 -1
  114. package/dist/queries/recent-duplicates.js +1 -1
  115. package/dist/queries/redundant-reexports.js +1 -1
  116. package/dist/queries/refs.js +1 -1
  117. package/dist/queries/self-audit.js +1 -1
  118. package/dist/queries/similar-signatures.js +1 -1
  119. package/dist/queries/similar.js +1 -1
  120. package/dist/queries/slice.js +1 -1
  121. package/dist/queries/stale-abstractions.js +1 -1
  122. package/dist/queries/surface.js +1 -1
  123. package/dist/queries/symbols.js +1 -1
  124. package/dist/queries/system.js +1 -1
  125. package/dist/queries/test-quality.js +1 -1
  126. package/dist/queries/trace.js +1 -1
  127. package/dist/queries/twin-ab.js +1 -1
  128. package/dist/queries/twin-drift.js +1 -1
  129. package/dist/queries/unused-imports.js +1 -1
  130. package/dist/queries/unused-params.js +1 -1
  131. package/dist/queries/wrapper-candidates.js +1 -1
  132. package/dist/reindex-worker.js +24 -24
  133. package/dist/reindex.js +36 -36
  134. package/dist/runtime.js +1 -1
  135. package/dist/watch-server.js +4 -4
  136. package/docs/COMMAND_REFERENCE.md +4 -1
  137. package/package.json +1 -1
  138. package/skills/_shared/SKILL.md +1 -1
  139. package/skills/scip-api-impact/SKILL.md +5 -1
  140. package/skills/scip-claim-audit/SKILL.md +1 -0
  141. package/skills/scip-cleanup-audit/SKILL.md +4 -0
  142. package/skills/scip-concrete-plan/SKILL.md +129 -48
  143. package/skills/scip-debug/SKILL.md +6 -1
  144. package/skills/scip-explore/SKILL.md +2 -1
  145. package/skills/scip-integrity-audit/SKILL.md +17 -0
  146. package/skills/scip-maintainability/SKILL.md +6 -1
  147. package/skills/scip-query/SKILL.md +3 -0
  148. package/skills/scip-root-cause/SKILL.md +150 -0
  149. package/skills/scip-root-cause/agents/openai.yaml +4 -0
  150. package/skills/scip-tla-model-system/SKILL.md +7 -9
  151. package/skills/scip-verify/SKILL.md +19 -2
  152. package/dist/chunk-2HCWAL42.js +0 -3
  153. package/dist/chunk-3YEBIYXL.js +0 -38
  154. package/dist/chunk-6TJERPN3.js +0 -2
  155. package/dist/chunk-E7BTIEAY.js +0 -2
  156. package/dist/chunk-EUMETOTD.js +0 -21
  157. package/dist/chunk-GRHA5NGF.js +0 -2
  158. package/dist/chunk-IHD2CHMX.js +0 -10
  159. package/dist/chunk-TFWDJDGO.js +0 -2
  160. package/dist/chunk-U267E6YN.js +0 -120
  161. package/dist/chunk-X566NT42.js +0 -9
@@ -44,6 +44,7 @@ Use this shortlist first. Open [`../_shared/SKILL.md`](../_shared/SKILL.md) only
44
44
  3. Run every postcheck that matches the actual edit, not only the check you expected to need.
45
45
  4. If `.scipquery.json` or suppressions changed, run `scip-query config-validate`.
46
46
  5. Prefer fixing findings. Suppress only intentional design, compatibility shims, framework entry points, or accepted false positives with a specific reason.
47
+ 6. A PASS ends scrutiny, so it must survive refutation first: construct the cheapest checks that could still break this diff and run them before claiming PASS. A FAIL needs no refutation — report it with the evidence.
47
48
 
48
49
  ## Flow
49
50
 
@@ -115,12 +116,24 @@ scip-query self-audit
115
116
 
116
117
  This step is complete only when changed documentation and config surfaces are checked or explicitly out of scope.
117
118
 
119
+ ### 6. Refute the PASS
120
+
121
+ A PASS is the verdict nobody re-checks — attack it before making it. Construct at least two refutation attempts and run the cheapest check that would expose each. Prefer executed probes (run the consumer's test, invoke the command, feed the edge input) over argued ones. Pick attacks that fit the diff:
122
+
123
+ - an unexercised consumer: a caller in `diff-impact` output whose tests did not run — run them, or trace the contract it depends on;
124
+ - an unexercised input: an edge the changed code newly handles or newly rejects — execute it;
125
+ - the intent gap: one case the stated goal implies that the diff does not visibly cover — find where it is handled or show it missing.
126
+
127
+ Record every attempt; an attempt that breaks the diff converts the verdict to FAIL with a finding, and the attempt stays in the record either way.
128
+
129
+ This step is complete only when every refutation attempt has an executed result.
130
+
118
131
  ## Report
119
132
 
120
133
  End with:
121
134
 
122
135
  ```markdown
123
- Verification: PASS/FAIL
136
+ Verification: PASS/FAIL — <n> postchecks, <m> refutation attempts, <k> broke
124
137
 
125
138
  Environment:
126
139
 
@@ -144,11 +157,15 @@ Health/docs/config:
144
157
 
145
158
  - <commands and results>
146
159
 
160
+ Refutation attempts:
161
+
162
+ - R1: <attack> → survived (evidence) | broke (finding)
163
+
147
164
  Remaining risk:
148
165
 
149
166
  - <accepted findings, unavailable capabilities, or checks not run>
150
167
  ```
151
168
 
152
- Do not claim ready-to-ship unless freshness is `fresh` after the final edit and diff-gate is passed or fully explained.
169
+ Do not claim ready-to-ship unless freshness is `fresh` after the final edit, diff-gate is passed or fully explained, and the PASS survived every refutation attempt.
153
170
 
154
171
  - `dead`/`new-dead` correctly resolve `import type` consumers, tsconfig `paths` aliases, pnpm/npm/yarn workspace cross-package imports, and Vue `<script setup>` composables. The one residual gap is a same-named symbol reached only through a re-exporting barrel file in a workspace package; that shape self-labels `unconfirmed (cross-package ambiguous-name resolution gap)` in the finding — treat only that label as unconfirmed until `refs` agrees. See the Detector Reliability section in `../_shared/SKILL.md`.
@@ -1,3 +0,0 @@
1
- import{A as C,c as M,d as L,e as Q,g as I,h as E,i as K,n as y,o as d,r as b}from"./chunk-7XP7ZRSI.js";function se(e,n){return O(e,n).match}function O(e,n){let t=z(e,n.trim()).filter(r=>!e.isIgnored(r.relative_path));if(t.length>0)return S(e,t);let o=G(e,n);if(o&&!e.isIgnored(o.relative_path))return S(e,[o]);let i=W(e,n);return i.length>0?S(e,i):X(e,n)}function W(e,n){let t=N(n),o=x(t);if(!o)return[];let i=`%${o.path}%`,r=o.leaf;return j(e,i,r,t)}function j(e,n,t,o){let i=b([],[...q(e,n,t),...T(e,n,t)]).filter(r=>!e.isIgnored(r.relative_path)).filter(r=>f(r,o)>1);return i.sort((r,a)=>f(a,o)-f(r,o)||r.end_line-r.start_line-(a.end_line-a.start_line)||r.start_line-a.start_line||r.symbol.localeCompare(a.symbol)),i}function q(e,n,t){return y(e,{where:"d.relative_path LIKE ? AND (gs.display_name = ? OR gs.symbol LIKE ?)",params:[n,t,`%/${t}.%`]})}function T(e,n,t){return d(e,{where:"d.relative_path LIKE ? AND (gs.display_name = ? OR gs.symbol LIKE ?)",params:[n,t,`%/${t}.%`]})}function X(e,n){let t=N(n),o=P(n),i=V(e,o),r=ee(i,n,t).filter(s=>!e.isIgnored(s.relative_path));if(r.length>0)return S(e,r);let a=[];for(let s of i){if(e.isIgnored(s.relative_path))continue;let c=Y(s,n,t,o);c<=0||a.push({row:s,score:c})}return a.sort((s,c)=>c.score-s.score||s.row.end_line-s.row.start_line-(c.row.end_line-c.row.start_line)||s.row.relative_path.localeCompare(c.row.relative_path)||s.row.symbol.localeCompare(c.row.symbol)),S(e,a.map(s=>s.row))}function S(e,n){let t=n.map(i=>C(e,i)),o=t[0]??null;return{match:o,candidates:o?Z(t,o):[],total:t.length}}function Z(e,n){let t=new Set([`${n.symbolId}:${n.relativePath}:${n.startLine}`]),o=[];for(let i of e){let r=`${i.symbolId}:${i.relativePath}:${i.startLine}`;if(!t.has(r)&&(t.add(r),o.push({symbol:i.symbol,shortName:L(i.symbol),relativePath:i.relativePath,startLine:i.startLine}),o.length>=5))break}return o}function G(e,n){let t=n.match(/^(.+):(\d+)-(\d+)$/);if(!t)return;let[,o,i,r]=t,a=Math.max(0,parseInt(i,10)-1),s=Math.max(a,parseInt(r,10)-1);return H(e,o,a,s)??J(e,o,a,s)}function H(e,n,t,o){return y(e,{where:"d.relative_path LIKE ? AND der.start_line <= ? AND der.end_line >= ?",params:[`%${n}%`,t,o],orderBy:"(der.end_line - der.start_line) ASC",limit:1})[0]}function J(e,n,t,o){return d(e,{where:"d.relative_path LIKE ? AND c.start_line <= ? AND c.end_line >= ?",params:[`%${n}%`,t,o],orderBy:"(MAX(c.end_line) - MIN(c.start_line)) ASC",limit:1})[0]}function le(e,n){let t=z(e,n).find(o=>!e.isIgnored(o.relative_path));return t?C(e,t):null}function z(e,n){let t=y(e,{where:"gs.symbol = ?",params:[n],orderBy:"d.relative_path, der.start_line"}),o=t.length>0?[]:d(e,{where:"gs.symbol = ?",params:[n],orderBy:"d.relative_path, start_line"});return b(t,o)}function ce(e,n){if("symbol"in n&&"relativePath"in n)return n;let t=U(e,n.symbolId)[0];return t?C(e,t):null}function U(e,n){let t=y(e,{where:"gs.id = ?",params:[n],orderBy:"der.start_line, der.end_line"}),o=d(e,{where:"gs.id = ?",params:[n],orderBy:"start_line, end_line"});return b(t,o)}function V(e,n){let t=n.map(()=>"(gs.symbol LIKE ? OR d.relative_path LIKE ? OR COALESCE(gs.display_name, '') LIKE ?)"),o=n.flatMap(s=>{let c=`%${s}%`;return[c,c,c]}),i=t.join(`
2
- AND `),r=y(e,{where:i,params:o,limit:200}),a=d(e,{where:i,params:o,limit:200});return b(r,a)}function Y(e,n,t,o){let i=n.trim(),r=t,a=r.replace(/\(\)$/,""),s=n.toLowerCase(),c=t.toLowerCase(),h=c.replace(/\(\)$/,""),k=e.symbol,v=L(e.symbol),g=Q(e.symbol),A=e.display_name??"",w=e.symbol.toLowerCase(),m=v.toLowerCase(),u=g.toLowerCase(),D=A.toLowerCase(),p=e.relative_path.toLowerCase(),F=/[/:.]/.test(t),$=x(t),_=$?.leaf.toLowerCase(),l=0;return(k===i||k===r)&&(l+=1150),(v===i||v===r)&&(l+=1100),A===a&&(l+=1180),g===a&&(l+=1160),(`${g}()`===i||`${g}()`===r)&&(l+=955),(w===s||w===c)&&(l+=1e3),(m===s||m===c)&&(l+=950),(p===s||p===c)&&(l+=925),(p.endsWith(`/${c}`)||p.endsWith(`/${s}`))&&(l+=875),D===h&&(l+=850),u===h&&(l+=825),(`${u}()`===s||`${u}()`===c)&&(l+=820),(m.endsWith(`:${c}`)||m.endsWith(`:${h}`)||m.endsWith(`:${h}()`))&&(l+=800),w.includes(c)&&(l+=120),m.includes(c)&&(l+=140),p.includes(c)&&(l+=140),D.includes(c)&&(l+=110),o.every(B=>{let R=B.toLowerCase();return w.includes(R)||m.includes(R)||p.includes(R)||D.includes(R)})&&(l+=100+o.length*15),$&&p.includes($.path.toLowerCase())&&(l+=360,_&&(u===_||`${u}()`===_||`${u}()`==`${_}()`)&&(l+=700),I(e.symbol)&&(l+=180)),E(e.symbol)&&u===h&&(l+=60),!F&&K(e.symbol)&&(l-=160),l-=Math.min(50,Math.max(0,e.end_line-e.start_line)),l}function x(e){let n=e.trim().replace(/\\/g,"/"),t=n.lastIndexOf("/");if(t<=0||t===n.length-1)return null;let o=n.slice(t+1).replace(/\(\)$/,"");return!o||o.includes(".")?null:{path:n.slice(0,t),leaf:o}}function N(e){return e.trim().replace(/\(\)$/,"").replace(/\(.*$/,"")}function P(e){let n=N(e),t=n.split(/[^A-Za-z0-9_]+/).map(o=>o.trim()).filter(o=>o.length>0);return t.length>0?[...new Set(t)]:[n]}function ee(e,n,t){let o=n.trim(),i=e.filter(r=>{let a=L(r.symbol),s=(r.display_name??"").trim();return r.symbol===o||a===o||a===t||s===o||s===t||`${s}()`===o||f(r,t)>1||r.relative_path===o});return i.length===0?[]:(i.sort((r,a)=>f(a,t)-f(r,t)||r.end_line-r.start_line-(a.end_line-a.start_line)||r.relative_path.localeCompare(a.relative_path)||r.symbol.localeCompare(a.symbol)),i)}function f(e,n){let t=x(n);if(!t)return 0;let o=e.relative_path.toLowerCase(),i=Q(e.symbol).toLowerCase(),r=t.path.toLowerCase(),a=t.leaf.toLowerCase();return o.includes(r)?i!==a?1:I(e.symbol)?M(e.symbol)===null?5:4:M(e.symbol)===null?3:2:0}export{se as a,O as b,le as c,ce as d};
3
- //# sourceMappingURL=chunk-2HCWAL42.js.map
@@ -1,38 +0,0 @@
1
- import{b as ae,c as O,d as T,e as H,k as pe,l as be}from"./chunk-FY6RCFDH.js";import{d as le,e as me,f as $,g as de,i as ue,l as fe}from"./chunk-KWMRY4RN.js";import{D as ce,n as re,x as j}from"./chunk-SQJ72PQW.js";import{a as ne}from"./chunk-QEIGJJBC.js";import{d as ye,e as ge}from"./chunk-MTDBHTSF.js";import{e as P,g as te,s as oe,t as F,y as ie,z as se}from"./chunk-7XP7ZRSI.js";import{k as E,m as X,p as ee}from"./chunk-JLZUM476.js";import{B as w,c as Z}from"./chunk-TLTLJ4SW.js";import{a as Y}from"./chunk-64MNV6AB.js";import{c as V,d as z,g as B,h as x,j as Q,l as K,q,s as D,y as N}from"./chunk-M2TRDR25.js";function Mn(e,n,t={}){let o=Ce(e,[n],{additive:t.additive,semantic:t.semantic}),s=t.callableOnly?(o.get(n.symbolId)??[]).filter(a=>te(a.symbol)||a.source==="ast-callsite"):o.get(n.symbolId)??[];return typeof t.limit=="number"?s.slice(0,t.limit):s}function Se(e,n,t={}){let o=De(e)?ke(e,n,{semantic:t.semantic!==!1}):we(e).get(n.symbolId)??[];return typeof t.limit=="number"?o.slice(0,t.limit):o}var Le=z("caller-rows",{clearGroups:["whole-project"]}),_e=2e4;function De(e){return(e.get("SELECT COUNT(*) AS count FROM global_symbols")?.count??0)>_e}function we(e){return Le.get(e,()=>{let n=F(e),t=Ce(e,n),o=new Map;for(let i of n)o.set(i.symbol,i.symbolId);let s=new Map,a=new Map;for(let i of n){let l=t.get(i.symbolId);if(!(!l||l.length===0))for(let m of l){let c=o.get(m.symbol);if(c===void 0||c===i.symbolId)continue;let d=s.get(c);d||(d=[],s.set(c,d),a.set(c,new Set));let b=`${i.symbol}|${i.relativePath}`;a.get(c).has(b)||(a.get(c).add(b),d.push({symbol:i.symbol,file:i.relativePath,source:"caller-map-inversion"}))}}return s})}function ke(e,n,t){let o=[],s=new Set,a=l=>{if(l.symbol===n.symbol)return;let m=`${l.symbol}|${l.file}`;s.has(m)||(s.add(m),o.push(l))};for(let l of be(e,n))l.file!==n.relativePath&&a({symbol:l.enclosingSymbol??l.file,file:l.file,source:"resolved-reference"});let i=t.semantic?Ee(e,n):null;if(i)for(let l of ue(e,i)){if(l.file===n.relativePath||e.isIgnored(l.file))continue;let m=se(oe(e,l.file),l.line);a({symbol:m?.symbol??l.file,file:l.file,source:"semantic-reference"})}return o}function Ee(e,n){let t=ye().join(", "),o=ge().join(", ");return e.get(`SELECT
2
- d.id AS documentId,
3
- gs.id AS symbolId,
4
- gs.symbol,
5
- d.relative_path AS relativePath,
6
- COALESCE(der.start_line, c.start_line) AS startLine,
7
- COALESCE(der.end_line, c.end_line) AS endLine,
8
- COALESCE(gs.display_name, '') AS leaf,
9
- NULL AS parentTypeName,
10
- CASE WHEN gs.kind IN (${t}) OR gs.symbol LIKE '%().' THEN 1 ELSE 0 END AS isFunctionLike,
11
- CASE WHEN gs.kind IN (${o}) THEN 1 ELSE 0 END AS isTypeLike,
12
- gs.kind AS kind,
13
- gs.documentation AS documentation,
14
- gs.enclosing_symbol AS enclosingSymbol
15
- FROM global_symbols gs
16
- LEFT JOIN defn_enclosing_ranges der ON der.symbol_id = gs.id
17
- LEFT JOIN chunks c ON c.document_id = der.document_id
18
- JOIN documents d ON d.id = COALESCE(der.document_id, c.document_id)
19
- WHERE gs.id = ?
20
- LIMIT 1`,n.symbolId)??null}function Ce(e,n,t={}){if(n.length===0)return new Map;let o=t.additive??!1,s=[],a=[];for(let d of n)w(d.relativePath)&&E(e,d.relativePath)!==null?s.push(d):a.push(d);let i=new Map,l=new Map,m=d=>{for(let[b,L]of d){let r=i.get(b);r||(r=[],i.set(b,r));let y=l.get(b);y||(y=new Set,l.set(b,y));for(let M of L){let S=`${M.symbol}|${M.chunkId}`;y.has(S)||(y.add(S),r.push(M))}}};s.length>0&&m(Oe(e,s)),t.semantic!==!1&&m(Be(ve(e,n)));let c=o?n:a;return c.length>0&&m($e(e,c)),i}function ve(e,n){let t=q(),o=new Map,s=de(e,n),a=[],i=[],l=0,m=0,c=0,d=0,b=0,L=0,r=0;for(let{definition:f,callees:u}of s.hits)b+=1,u.length>0&&(L+=1,r+=u.length,o.set(f.symbolId,u));let y=Ae(e,s.hits);if(y.entries.length>0&&D("semantic.callees.prefetch-cache-write",()=>K(e,y.entries),()=>({entries:y.entries.length,sourceMissing:y.sourceMissing,skippedUnsupportedLanguage:y.skippedUnsupportedLanguage})),D("semantic.callees.cache-scan",()=>{for(let[f,u]of me(s.misses)){if(!j(f)){t&&(l+=u.length);continue}let g=N(e,f);if(!g){t&&(m+=u.length),i.push(...u);continue}let k=x(e,f,g),R=Me(e,f);if(!R){i.push(...u);continue}let G=Q(e,f,k,R);for(let p of u){let h=G.get(p.symbol)??null;if(h!==null){let I=Ne(h);if(I){t&&(c+=1),I.length>0&&o.set(p.symbolId,I);continue}t&&(d+=1)}a.push({def:p,contentHash:k,depsDigest:R})}}},()=>({definitions:n.length,skippedUnsupportedLanguage:l,sourceMissing:m,cacheHits:c,parseFailures:d,misses:a.length,unkeyed:i.length,inMemoryHits:b,inMemoryRows:L,inMemoryCalleeCount:r,resultRows:o.size})),a.length===0&&i.length===0)return o;let M=[...i,...a.map(f=>f.def)],S=0,v=D("semantic.callees.compute-misses",()=>{let f=fe(e,M);return S=f.size,f},()=>({definitions:M.length,misses:a.length,unkeyed:i.length,rows:S}));for(let[f,u]of v)o.set(f,u);let C=a.filter(f=>$(e).capability("semantic-callees",f.def.relativePath).available).map(f=>({relativePath:f.def.relativePath,symbol:f.def.symbol,contentHash:f.contentHash,depsDigest:f.depsDigest,payload:JSON.stringify(v.get(f.def.symbolId)??[])}));return C.length>0?D("semantic.callees.cache-write",()=>K(e,C),()=>({entries:C.length})):D("semantic.callees.cache-write-skip",()=>{},()=>({reason:"provider-unavailable",misses:a.length})),o}function Ae(e,n){let t=[],o=new Map,s=0,a=0;for(let{definition:i,callees:l}of n){if(!j(i.relativePath)){a+=1;continue}if(!o.has(i.relativePath)){let c=N(e,i.relativePath),d=c?Me(e,i.relativePath):null;o.set(i.relativePath,c&&d?{contentHash:x(e,i.relativePath,c),depsDigest:d}:null)}let m=o.get(i.relativePath);if(!m){s+=1;continue}t.push({relativePath:i.relativePath,symbol:i.symbol,contentHash:m.contentHash,depsDigest:m.depsDigest,payload:JSON.stringify(l)})}return{entries:t,sourceMissing:s,skippedUnsupportedLanguage:a}}var xe="typescript-callees-v1";function Me(e,n){let t=j(n);if(t==="typescript")return ce(e,n,xe)?.key??null;let o=Fe(e,n);return t==="rust"?B(JSON.stringify({kind:"semantic-callees",language:t,engine:re(e.config.projectRoot),positionMapping:"nearby-leaf-v1",depsDigest:o})):o}function Ne(e){try{return JSON.parse(e)}catch{return null}}var Pe=V("semantic-deps-digest",{clearGroups:["whole-project","source-file"]});function Fe(e,n){return Pe.get(e,n,()=>{let o=[...ne(e).get(n)??[]].sort().map(s=>`${s}:${x(e,s,N(e,s))}`);return B(o.join("|"))})}function Oe(e,n){let t=new Map,o=Te(n,t),s=H(e);for(let[a,i]of o){let l=E(e,a);if(!l)continue;let m=ie(i);for(let c of l){let d=m.get(c.line);if(!d)continue;let b=He(e,a,s,c);b&&b.symbol!==d.symbol&&t.get(d.symbolId).push({symbol:b.symbol,file:b.file,chunkId:c.line,source:"ast-callsite"})}}return t}function Te(e,n){let t=new Map;for(let o of e){let s=t.get(o.relativePath);s?s.push(o):t.set(o.relativePath,[o]),n.set(o.symbolId,[])}for(let o of t.values())o.sort((s,a)=>s.endLine-s.startLine-(a.endLine-a.startLine));return t}function He(e,n,t,o){let s=O(n,t.get(o.calleeLeaf)??[]);if(s.length===0)return null;let a=je(e,n,s,o.calleeQualifier);return a||T(e,n,s,o.memberAccess)}function je(e,n,t,o){if(!o||w(n)!=="clojure")return null;let a=ee(e,n).filter(i=>i.kind==="namespace"&&i.localName===o&&i.sourcePath).map(i=>i.sourcePath);for(let i of a){let l=t.find(m=>Z(i,m.file));if(l)return l}return t.find(i=>/`([^`]+)`\//.exec(i.symbol)?.[1]===o)??null}function $e(e,n){if(n.length===0)return new Map;let o=J(n.map(r=>r.documentId)).flatMap(r=>e.all(`SELECT c.document_id, c.id AS chunk_id, c.start_line, c.end_line, m.symbol_id
21
- FROM mentions m
22
- JOIN chunks c ON m.chunk_id = c.id
23
- WHERE m.role != 1
24
- AND c.document_id IN (${r.map(()=>"?").join(",")})`,...r)),s=new Map;for(let r of o)s.has(r.document_id)||s.set(r.document_id,[]),s.get(r.document_id).push(r);let i=J(o.map(r=>r.symbol_id)).flatMap(r=>e.all(`SELECT gs.id AS symbol_id, gs.symbol,
25
- COALESCE(der.document_id, def_chunk.document_id) AS document_id
26
- FROM global_symbols gs
27
- LEFT JOIN defn_enclosing_ranges der ON der.symbol_id = gs.id
28
- LEFT JOIN (
29
- SELECT m.symbol_id, MIN(c.document_id) AS document_id
30
- FROM mentions m
31
- JOIN chunks c ON m.chunk_id = c.id
32
- WHERE m.role = 1
33
- AND m.symbol_id IN (${r.map(()=>"?").join(",")})
34
- GROUP BY m.symbol_id
35
- ) def_chunk ON def_chunk.symbol_id = gs.id
36
- WHERE gs.id IN (${r.map(()=>"?").join(",")})`,...r,...r)),l=J([...n.map(r=>r.documentId),...i.flatMap(r=>r.document_id===null?[]:[r.document_id])]),m=new Map(l.flatMap(r=>e.all(`SELECT id, relative_path FROM documents
37
- WHERE id IN (${r.map(()=>"?").join(",")})`,...r).map(y=>[y.id,y.relative_path]))),c=new Map;for(let r of i)c.has(r.symbol_id)||c.set(r.symbol_id,{symbol:r.symbol,file:r.document_id!==null?m.get(r.document_id)??"":""});let d=new Map,b=m,L=Ge(n);for(let[r,y]of L){let S=[...s.get(r)??[]].sort((u,g)=>u.start_line-g.start_line||u.end_line-g.end_line),v=[...y].sort((u,g)=>u.startLine-g.startLine||u.endLine-g.endLine),C=new Set,f=0;for(let u of v){for(;f<S.length&&S[f].start_line<=u.endLine;)C.add(S[f]),f+=1;for(let p of C)p.end_line<u.startLine&&C.delete(p);let g=new Set,k=[],R=null,G=()=>{if(R)return R;let p=b.get(u.documentId)??"",h=new Set;if(p){let I=ae(e,p),A=Math.max(0,u.startLine),W=Math.min(I.length-1,u.endLine);for(let _=A;_<=W;_+=1)for(let Ie of I[_])h.add(Ie)}return R=h,h};for(let p of C){if(p.symbol_id===u.symbolId)continue;let h=c.get(p.symbol_id);if(!h)continue;if(!(p.start_line>=u.startLine&&p.end_line<=u.endLine)){if(!(p.start_line<=u.endLine&&p.end_line>=u.startLine))continue;let _=P(h.symbol);if(!_||!G().has(_))continue}let A=`${h.symbol}|${p.chunk_id}`;g.has(A)||(g.add(A),k.push({...h,chunkId:p.chunk_id,source:"scip-chunk"}))}d.set(u.symbolId,k)}}return d}var he=500;function J(e){let n=[...new Set(e)],t=[];for(let o=0;o<n.length;o+=he)t.push(n.slice(o,o+he));return t}function Ge(e){let n=new Map;for(let t of e){let o=n.get(t.documentId);o?o.push(t):n.set(t.documentId,[t])}return n}function Be(e){let n=new Map;for(let[t,o]of e){let s=[];for(let a of o)s.push({symbol:a.symbol,file:a.file,chunkId:-1,source:"semantic-callee"});n.set(t,s)}return n}function Re(e,n,t={}){let o=new Map;if(n&&n.length===0)return o;let s=Y(e,{includeIgnored:!1}),a=H(e),i=n??F(e),l=new Set(i.map(c=>c.symbolId)),m=Qe(i);if(Ke(e,o,s,a,l,m),Je(e,o,i,l),ze(e,o,s,a,l,m),t.semantic!==!1){let c=$(e);Ze(o,c.callerMap(Ye(i)))}return o}function Ke(e,n,t,o,s,a){for(let i of t){if(!w(i))continue;let l=E(e,i);if(l)for(let m of l){if(a&&!a.has(m.calleeLeaf))continue;let c=O(i,o.get(m.calleeLeaf)??[]);if(!c||c.length===0)continue;let d=T(e,i,c,m.memberAccess);d&&s.has(d.symbolId)&&d.file!==i&&U(n,d.symbolId,i)}}}function Je(e,n,t,o){let s=We(t);for(let a of Ue(e,o))e.isIgnored(a.relative_path)||Ve(a,s.get(a.symbol_id))||U(n,a.symbol_id,a.relative_path)}function Ue(e,n){return le(e,n?[...n]:void 0)}function We(e){let n=new Map;for(let t of e)n.set(t.symbolId,{docId:t.documentId,startLine:t.startLine,endLine:t.endLine});return n}function Ve(e,n){return!!n&&n.docId===e.document_id&&e.chunk_start>=n.startLine&&e.chunk_end<=n.endLine}function ze(e,n,t,o,s,a){for(let i of t){if(w(i)!=="rust")continue;let l=X(e,i,{includeRustAttributeNames:!0});if(l.length!==0)for(let{name:m}of l){if(a&&!a.has(m))continue;let c=o.get(m);if(c)for(let d of c)s.has(d.symbolId)&&d.file!==i&&U(n,d.symbolId,i)}}}function U(e,n,t){let o=e.get(n);o||(o=new Set,e.set(n,o)),o.add(t)}function Qe(e){let n=new Set;for(let t of e){let o="leaf"in t&&typeof t.leaf=="string"?t.leaf:"symbol"in t&&typeof t.symbol=="string"?P(t.symbol):"";o&&n.add(o)}return n.size>0?n:null}function Ye(e){return e.filter(n=>"relativePath"in n&&"symbol"in n&&"leaf"in n)}function Ze(e,n){for(let[t,o]of n){let s=e.get(t);s||(s=new Set,e.set(t,s));for(let a of o)s.add(a)}}function Pn(e,n,t={}){return Se(e,n,t)}function qe(e,n,t={}){return Re(e,n,t)}function Xe(e,n,t={}){return pe(e,n,t)}function Fn(e,n,t={}){let o=qe(e,n,{semantic:t.semantic});return t.sourceFallback===!1?o:en(o,Xe(e,n))}function en(e,n){let t=new Map;for(let[o,s]of e)t.set(o,new Set(s));for(let[o,s]of n){let a=t.get(o)??new Set;for(let i of s)a.add(i);t.set(o,a)}return t}export{Mn as a,Ce as b,Pn as c,qe as d,Xe as e,Fn as f,en as g};
38
- //# sourceMappingURL=chunk-3YEBIYXL.js.map
@@ -1,2 +0,0 @@
1
- import{a as v}from"./chunk-FZXN37RN.js";import{a as j}from"./chunk-75H6GOND.js";import{a as w}from"./chunk-623AZLTE.js";import{a as p}from"./chunk-KWQKWY6M.js";import{a as H}from"./chunk-H4T2AST4.js";import{a as T}from"./chunk-G4IUQW27.js";import{a as P,b as A}from"./chunk-PA2MQKXD.js";import{b as D}from"./chunk-GRHA5NGF.js";import{a as S}from"./chunk-X566NT42.js";import{a as I}from"./chunk-PPAT3XUL.js";import{a as G}from"./chunk-IHD2CHMX.js";import{a as k}from"./chunk-IKAJI4SI.js";import{a as F}from"./chunk-MBDBNQBW.js";function X(t,e,n={}){let o=n.impactDepth??3,r=n.sliceDepth??3,l=n.semantic,s=!z(e),a=s?w(t,e,{semantic:l}):{definitions:[],referencedBy:[]},m=s?k(t,e,{semantic:l}):null,f=s?I(t,e,{semantic:l}):null,h=s?T(t,e,{semantic:l}):null,y=s?p(t,e,{direction:"backward",maxDepth:r,semantic:l}):null,R=s?p(t,e,{direction:"forward",maxDepth:r,semantic:l}):null,d=s?G(t,e,{maxDepth:o,scope:n.scope}):[],i=F(t,e,{semantic:l}),C=P(t,e),g=A(t,e),u=j(t,e),x=v(t,e),c={symbol:a.definitions.length>0||a.referencedBy.length>0||m!==null||f!==null||h!==null||y!==null||R!==null||d.length>0,file:i!==null||C.length>0||g.length>0,module:u.files.length>0||u.symbols.length>0||x.length>0},b=[];!c.symbol&&!c.file&&!c.module&&b.push("No symbol, file, or module matched target.");let B=i?.file??a.definitions[0]?.relativePath??null;return{target:e,matched:c,history:O(t,B),trace:a,callGraph:m,complexity:f,dataflow:h,backwardSlice:y,forwardSlice:R,affected:d,changeSurface:i,deps:C,rdeps:g,system:u,surface:x,warnings:b}}function O(t,e){let n={available:!1,file:e,churn:null,coChangePartners:[],suppressionsInFile:0};if(!e)return n;let o=S(t).fileChurn();if(!o)return n;let r=D(t,e,{limit:5});return{available:!0,file:e,churn:o.get(e)??{changes:0,fixChanges:0,lastChangedAt:0},coChangePartners:r.findings.map(l=>({file:l.fileA===e?l.fileB:l.fileA,together:l.together,confidence:l.confidence,subjectContext:l.subjectContext})),suppressionsInFile:H(t).byFile.get(e)??0}}function z(t){return t.includes("/")||t.includes("\\")||/\.[A-Za-z0-9]+(?::\d+(?:-\d+)?)?$/.test(t)}export{X as a};
2
- //# sourceMappingURL=chunk-6TJERPN3.js.map
@@ -1,2 +0,0 @@
1
- import{execFileSync as y}from"child_process";import{platform as G}from"os";var h=G()==="win32";function S(t){let e=h?"where":"which";try{return y(e,[t],{stdio:"pipe"}),!0}catch{return!1}}import{spawnSync as R}from"child_process";import{createHash as x}from"crypto";import{existsSync as b,lstatSync as w,realpathSync as v}from"fs";import{dirname as I,isAbsolute as E,join as W,resolve as d}from"path";var a={run(t,e){let r=l(t,e);return r.kind==="success"?r.output:void 0},runResult:l};function $(t,e=a){let r=C(t,e);if(r.kind!=="worktree")return;let o=r.identity,n=o.projectRoot,i=e.run(n,["rev-parse","--git-common-dir"])?.trim();if(!i)return;let s=u(p(n,i)),m=c(e.run(n,["rev-parse","--verify","HEAD"])),k=c(e.run(n,["rev-parse","--verify","HEAD^{tree}"])),f=e.run(n,["status","--porcelain=v1","-z","--untracked-files=all"]);if(f!==void 0)return{...o,commonDir:s,repositoryId:g("repository",s),headCommit:m,treeOid:k,clean:f.length===0}}function C(t,e=a){let r=e.runResult(t,["rev-parse","--show-toplevel"]);if(r.kind==="not-repository")return{kind:"non-git"};if(r.kind==="error")return r;let o=r.output.trim();if(!o)return{kind:"error",message:"Git returned an empty worktree root."};let n=u(o),i=e.run(n,["rev-parse","--absolute-git-dir"])?.trim();if(!i)return{kind:"error",message:"Git did not return an absolute worktree directory."};let s=u(p(n,i));return{kind:"worktree",identity:{projectRoot:n,gitDir:s,worktreeId:g("worktree",`${n}\0${s}`)}}}function H(t,e,r=a){return c(r.run(t,e))}function p(t,e){return E(e)?e:d(t,e)}function u(t){try{return v(t)}catch{return d(t)}}function g(t,e){return x("sha256").update(`${t}\0${e}`).digest("hex").slice(0,24)}function c(t){return t?.trim()||void 0}function l(t,e){let r=R("git",["-C",t,...e],{encoding:"utf-8",env:{...process.env,LC_ALL:"C"},maxBuffer:52428800,stdio:["ignore","pipe","pipe"]});if(r.status===0)return{kind:"success",output:r.stdout.trimEnd()};let n=(typeof r.stderr=="string"?r.stderr.trim():"")||r.error?.message||`git exited with status ${r.status??"unknown"}`,i=r.error?.code;return(/not a git repository/i.test(n)||i==="ENOENT"&&b(d(t)))&&!D(t)?{kind:"not-repository"}:{kind:"error",message:n}}function D(t){if(process.env.GIT_DIR||process.env.GIT_COMMON_DIR)return!0;let e=d(t);for(;;){try{return w(W(e,".git")),!0}catch(o){let n=o.code;if(n!=="ENOENT"&&n!=="ENOTDIR")return!0}let r=I(e);if(r===e)return!1;e=r}}export{S as a,$ as b,H as c,p as d,u as e};
2
- //# sourceMappingURL=chunk-E7BTIEAY.js.map
@@ -1,21 +0,0 @@
1
- import{a as B}from"./chunk-WXVGNFAO.js";import{a as _}from"./chunk-BTYDBDX5.js";import{e as N}from"./chunk-3YEBIYXL.js";import{j as M}from"./chunk-KWMRY4RN.js";import{d as R,g as y,i as F}from"./chunk-7XP7ZRSI.js";import{E as w}from"./chunk-TLTLJ4SW.js";import{execFileSync as g}from"child_process";import{existsSync as q,readFileSync as H}from"fs";import{basename as v}from"path";var J="Unable to compute git diff.";function Be(e,n={}){let i=n.plan??Z(e,n);return i.note?j(i.note,i.changedFileLines):i.changedFiles.length===0?V(i.changedFileLines):Y(i.changedFiles,[G(e,i.changedFiles,i.changedFiles,i.changedRanges)])}function Z(e,n={}){let{base:i="HEAD"}=n;try{let t=K(e.config.projectRoot,i),r=oe(e,t),o=se(e,Q(e.config.projectRoot,i));return{changedFileLines:t,changedFiles:r,changedRanges:o,renamedFiles:ne(e.config.projectRoot,i,r),note:t.length===0?"No changed files found.":void 0}}catch{return{changedFileLines:[],changedFiles:[],changedRanges:[],renamedFiles:[],note:J}}}function G(e,n,i,t=[]){let r=new _(e),o=new Set(i),s=B(t),a=[],l=new Map,d=n.flatMap(u=>r.definitionsForFile(u)).filter(Le),f=d.filter(u=>ce(u,s)),c=le(e,d,f,s),m=me([...f,...c.definitions]).sort((u,h)=>u.relativePath.localeCompare(h.relativePath)||u.startLine-h.startLine),p=m.map(u=>u.symbolId),C=ye(e,p),z=be(e,p,i),I=m.filter(u=>(C.get(u.symbolId)??0)===0),x=T(()=>M(e,I)),W=I.filter(u=>(x.get(u.symbolId)?.size??0)===0),U=T(()=>N(e,W));for(let u of m)he(e,u,o,a,l,x.get(u.symbolId)??new Set,U.get(u.symbolId)??new Set,C.get(u.symbolId)??0,z.get(u.symbolId)??new Set);return{changedSymbols:a,consumerEntries:[...l.entries()].map(([u,h])=>({file:u,symbols:[...h].sort()})),attributionNotes:c.notes}}function Y(e,n){let i=new Map,t=n.flatMap(s=>s.changedSymbols),r=n.flatMap(s=>s.attributionNotes??[]);for(let s of n)for(let a of s.consumerEntries){let l=i.get(a.file);l||(l=new Set,i.set(a.file,l));for(let d of a.symbols)l.add(d)}let o=Se(i);return{changedFiles:[...e],changedSymbols:t,affectedConsumers:o,attributionNotes:r,summary:{totalChangedFiles:e.length,totalChangedSymbols:t.length,totalAffectedFiles:o.length}}}function j(e,n=[]){return{changedFiles:n,changedSymbols:[],affectedConsumers:[],attributionNotes:[],summary:{totalChangedFiles:n.length,totalChangedSymbols:0,totalAffectedFiles:0,note:e}}}function V(e){return{changedFiles:e,changedSymbols:[],affectedConsumers:[],attributionNotes:[],summary:{totalChangedFiles:e.length,totalChangedSymbols:0,totalAffectedFiles:0,note:"Changed files are not present in the current SCIP index."}}}function K(e,n){let i=g("git",["diff","--name-only",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:67108864}),t=g("git",["diff","--name-only","--cached",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:64*1024*1024}),r=g("git",["ls-files","--others","--exclude-standard"],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:64*1024*1024});return[...new Set([i,t,r].flatMap(o=>o.split(`
2
- `)).map(o=>o.trim()).filter(o=>o.length>0))]}function Q(e,n){let i=g("git",["diff","--unified=0",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:67108864}),t=g("git",["diff","--unified=0","--cached",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:64*1024*1024});return O([...E(i),...E(t)])}function L(e,n,i){try{return g("git",["show",`${n}:./${i}`],{encoding:"utf-8",cwd:e,timeout:1e4,stdio:["ignore","pipe","ignore"]})}catch{return null}}function ve(e,n,i=[]){let t=X(e,n,i);return r=>(t.has(r)||t.set(r,L(e,n,r)),t.get(r)??null)}function Ae(e,n=e.changedFiles){let i=new Map(e.renamedFiles.map(t=>[t.to,t.from]));return[...new Set(n.map(t=>i.get(t)??t))]}function X(e,n,i){let t=[...new Set(i)],r=new Map;if(t.length===0)return r;try{let o=t.map(a=>`${n}:./${a}
3
- `).join(""),s=g("git",["cat-file","--batch"],{cwd:e,input:o,maxBuffer:256*1024*1024,timeout:1e4,stdio:["pipe","pipe","ignore"]});return ee(s,t)}catch{for(let o of t)r.set(o,L(e,n,o));return r}}function ee(e,n){let i=new Map,t=0;for(let r of n){let o=e.indexOf(10,t);if(o<0)throw new Error("git cat-file batch output ended before object header");let s=e.subarray(t,o).toString("utf-8");if(t=o+1,s.endsWith(" missing")){i.set(r,null);continue}let a=/^[0-9a-f]+ ([^ ]+) (\d+)$/.exec(s);if(!a)throw new Error(`unexpected git cat-file batch header: ${s}`);let[,l,d]=a,f=Number(d);if(!Number.isFinite(f)||f<0)throw new Error(`unexpected git cat-file batch size: ${s}`);if(t+f>e.length)throw new Error("git cat-file batch output ended before blob payload");let c=e.subarray(t,t+f);i.set(r,l==="blob"?c.toString("utf-8"):null),t+=f,e[t]===10&&(t+=1)}return i}function ne(e,n,i){if(i.length===0)return[];let t=new Map,r=new Set;for(let s of ie(e,n))i.includes(s.to)&&(t.set(s.to,s),r.add(s.from));let o=te(e,n);if(o.length===0)return[...t.values()].sort((s,a)=>s.to.localeCompare(a.to));for(let s of i){if(t.has(s)||!q(`${e}/${s}`))continue;let a=o.filter(f=>!r.has(f)).filter(f=>v(f)===v(s));if(a.length===0)continue;let l=H(`${e}/${s}`,"utf-8"),d=a.map(f=>({from:f,to:s,similarity:re(L(e,n,f)??"",l)})).sort((f,c)=>c.similarity-f.similarity)[0];d&&d.similarity>=.45&&(t.set(s,d),r.add(d.from))}return[...t.values()].sort((s,a)=>s.to.localeCompare(a.to))}function te(e,n){let i=g("git",["diff","--name-only","--diff-filter=D",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:67108864}),t=g("git",["diff","--name-only","--diff-filter=D","--cached",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:64*1024*1024});return[...new Set([...P(i),...P(t)])]}function ie(e,n){let i=g("git",["diff","--name-status","--find-renames",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:67108864}),t=g("git",["diff","--name-status","--find-renames","--cached",n],{encoding:"utf-8",cwd:e,timeout:3e4,maxBuffer:64*1024*1024});return[...i.split(`
4
- `),...t.split(`
5
- `)].map(r=>r.trim()).filter(r=>r.startsWith("R")).map(r=>r.split(" ")).filter(r=>r.length>=3).map(([r,o,s])=>({from:o,to:s,similarity:Number(r.slice(1))/100}))}function re(e,n){let i=new Set(A(e)),t=new Set(A(n));if(i.size===0&&t.size===0)return 1;if(i.size===0||t.size===0)return 0;let r=0;for(let o of i)t.has(o)&&(r+=1);return 2*r/(i.size+t.size)}function A(e){return e.match(/[A-Za-z_$][\w$]*|[{}()[\].,]/g)??[]}function P(e){return e.split(`
6
- `).map(n=>n.trim()).filter(n=>n.length>0)}function oe(e,n){let i=$(e),t=[];for(let r of n){let o=i(r);o&&!e.isIgnored(o)&&t.push(o)}return t}function se(e,n){let i=$(e),t=[];for(let r of n){let o=i(r.file);o&&!e.isIgnored(o)&&t.push({...r,file:o})}return O(t)}function $(e){let n=e.all(`SELECT relative_path FROM documents
7
- ORDER BY id`).map(t=>t.relative_path),i=new Map(n.map(t=>[t,t]));return t=>{let r=t.replace(/\\/g,"/"),o=i.get(r);return o||(n.find(s=>s.endsWith(r))??null)}}function E(e){let n=[],i=null;for(let t of e.split(`
8
- `)){if(t.startsWith("+++ ")){i=ae(t.slice(4).trim());continue}if(!i||!t.startsWith("@@ "))continue;let r=/@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/.exec(t);if(!r)continue;let o=Math.max(0,Number(r[1])-1),s=r[2]===void 0?1:Number(r[2]);n.push({file:i,startLine:o,endLine:Math.max(o,o+Math.max(s,1)-1)})}return n}function ae(e){return e==="/dev/null"?null:e.startsWith("a/")||e.startsWith("b/")?e.slice(2):e}function O(e){let n=new Set,i=[];for(let t of e){let r=`${t.file}:${t.startLine}:${t.endLine}`;n.has(r)||(n.add(r),i.push(t))}return i}function ce(e,n){let i=n.get(e.relativePath);return!i||i.length===0?!0:i.some(t=>D(e.startLine,e.endLine,t.startLine,t.endLine))}function fe(e,n,i){let t=new Map,r=[],o=k(e),s=ge(i);for(let a of n){let l=o.get(a.file)??[];if(l.some(c=>D(c.startLine,c.endLine,a.startLine,a.endLine)))continue;let d=s.get(a.file)??[],f=pe(d,a);if(f){let c=l.find(m=>m.startLine>=f.startLine&&m.startLine<=f.endLine);if(c){t.set(c.symbolId,c),r.push(b(a,"ast-widened"));continue}}if(d.length===0){let c=[...l].filter(m=>m.startLine<=a.startLine).sort((m,p)=>p.startLine-m.startLine||m.endLine-p.endLine)[0];if(c){t.set(c.symbolId,c),r.push(b(a,"nearest-preceding"));continue}}r.push(b(a,"unattributed"))}return{definitions:[...t.values()],notes:r}}function le(e,n,i,t){let r=k(i),o=[],s=[],a=[...new Set(n.map(l=>l.relativePath))];for(let l of a){let d=t.get(l)??[];if(d.length===0)continue;let f=r.get(l)??[];for(let c of d)f.some(m=>D(m.startLine,m.endLine,c.startLine,c.endLine))||o.push(c);o.some(c=>c.file===l)&&s.push(...de(e,l))}return fe(n,o,s)}function de(e,n){let i=w(e,n);return i?i.rootNode.namedChildren.filter(ue).map(t=>({file:n,startLine:t.startPosition.row,endLine:t.endPosition.row})).filter(t=>t.endLine>=t.startLine):[]}function ue(e){return e.endPosition.row<e.startPosition.row?!1:!new Set(["import_statement","comment"]).has(e.type)}function me(e){let n=new Map;for(let i of e)n.set(i.symbolId,i);return[...n.values()]}function k(e){let n=new Map;for(let i of e){let t=n.get(i.relativePath)??[];t.push(i),n.set(i.relativePath,t)}return n}function ge(e){let n=new Map;for(let i of e){let t=n.get(i.file)??[];t.push(i),n.set(i.file,t)}return n}function pe(e,n){return e.filter(i=>i.startLine<=n.startLine&&i.endLine>=n.endLine).sort((i,t)=>i.endLine-i.startLine-(t.endLine-t.startLine))[0]}function b(e,n){return{file:e.file,startLine:e.startLine,endLine:e.endLine,method:n}}function D(e,n,i,t){return e<=t&&i<=n}function he(e,n,i,t,r,o,s,a,l){let d=Math.max(a,o.size,s.size);if(!De(n,d))return;let f=R(n.symbol);t.push({symbol:n.symbol,shortName:f,file:n.relativePath,startLine:n.startLine,endLine:n.endLine,fanIn:d});for(let c of l)S(e,i,r,c,f);for(let c of o)S(e,i,r,c,f);for(let c of s)S(e,i,r,c,f)}function T(e){try{return e()}catch(n){return console.error(`warning: diff-impact enrichment scan failed, continuing without it: ${n instanceof Error?n.message:n}`),new Map}}function ye(e,n){if(n.length===0)return new Map;let i=e.all(`SELECT m.symbol_id, COUNT(DISTINCT c.document_id) AS fan_in
9
- FROM mentions m
10
- JOIN chunks c ON m.chunk_id = c.id
11
- WHERE m.symbol_id IN (${n.map(()=>"?").join(",")})
12
- AND m.role != 1
13
- GROUP BY m.symbol_id`,...n);return new Map(i.map(t=>[t.symbol_id,t.fan_in]))}function be(e,n,i){if(n.length===0||i.length===0)return new Map;let t=e.all(`SELECT DISTINCT m.symbol_id, ref_d.relative_path
14
- FROM mentions m
15
- JOIN chunks c ON m.chunk_id = c.id
16
- JOIN documents ref_d ON c.document_id = ref_d.id
17
- WHERE m.symbol_id IN (${n.map(()=>"?").join(",")})
18
- AND m.role != 1
19
- AND ref_d.relative_path NOT IN (${i.map(()=>"?").join(",")})
20
- ${e.pathExclusionsFor("ref_d")}`,...n,...i),r=new Map;for(let o of t){let s=r.get(o.symbol_id);s||(s=new Set,r.set(o.symbol_id,s)),s.add(o.relative_path)}return r}function S(e,n,i,t,r){if(e.isIgnored(t)||n.has(t))return;let o=i.get(t);o||(o=new Set,i.set(t,o)),o.add(r)}function Se(e){return[...e.entries()].map(([n,i])=>({file:n,consumedSymbols:i.size})).sort((n,i)=>i.consumedSymbols-n.consumedSymbols)}function Le(e){return!(F(e.symbol)||e.parentTypeName!==null&&!y(e.symbol))}function De(e,n){return y(e.symbol)||e.isTypeLike?!0:e.parentTypeName===null&&n>0}export{J as a,Be as b,Z as c,G as d,Y as e,L as f,ve as g,Ae as h,X as i,fe as j};
21
- //# sourceMappingURL=chunk-EUMETOTD.js.map
@@ -1,2 +0,0 @@
1
- import{a as y}from"./chunk-X566NT42.js";import{b as u}from"./chunk-5CJ6AQN7.js";import{a as p}from"./chunk-QEIGJJBC.js";import{existsSync as v}from"fs";import{join as w}from"path";function ne(e){return b.test(e)}var b=/(?:^|\/)(?:package-lock\.json|pnpm-lock\.yaml|yarn\.lock|Cargo\.lock|uv\.lock|poetry\.lock|Pipfile\.lock|bun\.lockb?|\.SRCINFO|CHANGELOG(?:\.[a-z]+)?|.*\.(?:map|tsbuildinfo))$|(?:^|\/)(?:dist|build|out|node_modules|docs\/plans)\//i;function se(e,t,n={}){let{minTogether:s=4,minConfidence:o=.6,limit:r=30,maxFilesPerCommit:l=20}=n,g=y(e,{historyMode:n.historyMode}),a=g.commitHistory(),c=t!==void 0,d=g.coChangePairs({minTogether:c?Math.min(s,2):s,minConfidence:c?0:o,maxFilesPerCommit:l});if(!a||!d)return{available:!1,commitsAnalyzed:0,findings:[]};let f=typeof n.scanLimit=="number"?d.slice(0,n.scanLimit):d,E=p(e),R=k(e),j=F(e,E,R),L=n.includeLinked===!0||c,m=[];for(let i of f){if(b.test(i.fileA)||b.test(i.fileB)||!x(e,i.fileA)||!x(e,i.fileB)||c&&!i.fileA.includes(t)&&!i.fileB.includes(t)||!c&&(u(i.fileA)==="test"||u(i.fileB)==="test"||D(i.fileA,i.fileB)||N(i.fileA,i.fileB)))continue;let h=j(i.fileA,i.fileB);if(!L&&h)continue;let C=$(i.fileA,i.fileB),S=_(i,C,h);if(m.push({...i,structurallyLinked:h,partnerClass:C.partnerClass,partnerClassReasons:C.reasons,...S?{declaredCouplingSuggestion:S}:{}}),m.length>=r)break}return{available:!0,commitsAnalyzed:a.commits.length,findings:m}}function x(e,t){return v(w(e.config.projectRoot,t))}function $(e,t){let n=T(e),s=T(t),o=[],r=a=>{o.includes(a)||o.push(a)},l=(a,c)=>n.tags.has(a)&&s.tags.has(c)||n.tags.has(c)&&s.tags.has(a);if(l("doc","code"))return r("one side is documentation and the other is executable source"),{partnerClass:"doc-code",reasons:o};if(n.tags.has("test")||s.tags.has("test"))return r("one side is classified as a test file"),{partnerClass:"test-code",reasons:o};if(l("schema","script"))return r("schema or contract file changes with a script or generated-code path"),{partnerClass:"schema-script",reasons:o};if(l("model","view"))return r("model or state path changes with a view or component path"),{partnerClass:"model-view",reasons:o};if(l("config","code"))return r("configuration file changes with executable source"),{partnerClass:"config-code",reasons:o};let g=U(n.tokens,s.tokens).filter(a=>!J.has(a));return A(e,t)||g.length>=2?(r(A(e,t)?"both files live in the same directory":`files share feature tokens: ${g.slice(0,4).join(", ")}`),{partnerClass:"same-feature",reasons:o}):(r("no specific relationship pattern matched"),{partnerClass:"unknown",reasons:o})}function _(e,t,n){if(n||e.together<4||e.confidence<.75||e.commitScope==="broad-sweep"||e.recency==="stale"||!Z.has(t.partnerClass))return;let s=[e.fileA,e.fileB].sort();return{name:`co-change ${t.partnerClass}: ${V(s)}`,files:s,reason:`${t.partnerClass} pair changed together ${e.together}x with ${Math.round(e.confidence*100)}% confidence; declare it if future edits should require both sides.`}}function F(e,t=p(e),n=k(e)){return(s,o)=>B(t,n,s,o)}var I=/(?:^|\/)(?:locales|i18n)\//i;function P(e){return I.test(e)}function N(e,t){return P(e)&&P(t)?!0:O(e,t)}function O(e,t){if(!e.endsWith(".json")||!t.endsWith(".json"))return!1;let n=e.lastIndexOf("/"),s=t.lastIndexOf("/");if(n<0||s<0)return!1;let o=e.slice(0,n),r=t.slice(0,s);if(o===r)return!1;let l=e.slice(n+1),g=t.slice(s+1);if(l!==g)return!1;let a=o.lastIndexOf("/"),c=r.lastIndexOf("/"),d=a>=0?o.slice(0,a):"",f=c>=0?r.slice(0,c):"";return d===f}function D(e,t){let n=e.lastIndexOf("/"),s=t.lastIndexOf("/");if(e.slice(0,n)!==t.slice(0,s))return!1;let o=e.slice(n+1).split(".")[0],r=t.slice(s+1).split(".")[0];return o!==""&&o===r}function k(e){return(e.config.declaredCouplings??[]).filter(t=>Array.isArray(t.files)&&t.files.length>=2).map(t=>new Set(t.files))}function B(e,t,n,s){return e.get(n)?.has(s)===!0||e.get(s)?.has(n)===!0?!0:t.some(o=>o.has(n)&&o.has(s))}var M=/(?:^|\/)(?:readme|docs?|guides?|adr|architecture|design)(?:\/|$)|\.(?:md|mdx|rst|adoc|txt)$/i,z=/(?:^|\/)(?:\.[a-z0-9-]+rc|config|configs|settings|\.github)(?:\/|$)|(?:^|\/)(?:package\.json|tsconfig(?:\.[^.]+)?\.json|vite\.config\.[cm]?[jt]s|rollup\.config\.[cm]?[jt]s|eslint\.config\.[cm]?[jt]s)$|\.(?:json|ya?ml|toml|ini|env)$/i,G=/(?:^|\/)(?:schemas?|contracts?|migrations?|models?|types?)(?:\/|$)|(?:^|\/)[^/]*(?:schema|contract|migration|model|types?)[^/]*|(?:\.schema)?\.(?:graphql|gql|proto|prisma)$/i,H=/(?:^|\/)(?:scripts?|bin|tools?|tasks?|generators?|codegen|migrations?|seeds?)(?:\/|$)|(?:^|\/)[^/]*(?:generate|codegen|migrate|seed|script)[^/]*\.[cm]?[jt]s$/i,q=/(?:^|\/)(?:models?|entities|domain|state|stores?|reducers?)(?:\/|$)|(?:^|\/)[^/]*(?:model|entity|state|store|reducer|viewmodel)[^/]*\.[^.]+$/i,W=/(?:^|\/)(?:views?|pages?|components?|screens?|routes?|templates?)(?:\/|$)|(?:^|\/)[^/]*(?:view|page|component|screen|template)[^/]*\.[^.]+$|\.(?:vue|svelte|tsx|jsx)$/i,Z=new Set(["doc-code","config-code","schema-script","model-view","test-code"]),J=new Set(["src","lib","app","apps","packages","frontend","backend","examples","python","typescript","javascript","test","tests","spec","index","main","utils","util","types","type","config","docs","doc","package","requirements","ts","tsx","js","jsx","mjs","cjs","vue","py","md","mdx","json","yaml","yml","toml","txt"]);function T(e){let t=e.replace(/\\/g,"/"),n=new Set;return M.test(t)&&n.add("doc"),z.test(t)&&n.add("config"),G.test(t)&&n.add("schema"),H.test(t)&&n.add("script"),q.test(t)&&n.add("model"),W.test(t)&&n.add("view"),u(t)==="test"&&n.add("test"),!n.has("doc")&&!n.has("config")&&n.add("code"),{tags:n,tokens:K(t)}}function A(e,t){let n=e.lastIndexOf("/"),s=t.lastIndexOf("/"),o=n>=0?e.slice(0,n):"",r=s>=0?t.slice(0,s):"";return o!==""&&o===r}function K(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).map(t=>t.toLowerCase()).filter(t=>t.length>=2)}function U(e,t){let n=new Set(t);return[...new Set(e.filter(s=>n.has(s)))].sort()}function V(e){return e.map(t=>t.split("/").pop()?.replace(/\.[^.]+$/,"")||t).join(" + ")}export{ne as a,se as b,$ as c,_ as d,F as e};
2
- //# sourceMappingURL=chunk-GRHA5NGF.js.map
@@ -1,10 +0,0 @@
1
- import{c as M}from"./chunk-3YEBIYXL.js";import{a as I,c as N}from"./chunk-2HCWAL42.js";import{d as b,f as p,s as g,z as S}from"./chunk-7XP7ZRSI.js";import{B as h}from"./chunk-TLTLJ4SW.js";function $(o,s,i={}){let{maxDepth:c=5,scope:a}=i,l=I(o,s);if(!l)return[];let u=[],f=new Set([l.symbolId]),m=new Set,t=[l];for(let e=1;e<=c&&t.length!==0;e++){let r=[];for(let y of t)for(let n of D(o,y,a)){let d=`${n.file}|${n.shortName}`;if(n.symbolId!==null){if(f.has(n.symbolId))continue;f.add(n.symbolId)}else if(m.has(d))continue;m.add(d),u.push({symbol:n.symbol,shortName:n.shortName,file:n.file,depth:e}),n.symbolId!==null&&n.symbolMatch&&r.push(n.symbolMatch)}t=r}return u.sort((e,r)=>e.depth-r.depth||e.file.localeCompare(r.file)),u}function D(o,s,i){let c=M(o,s,{limit:500}).filter(t=>!o.isIgnored(t.file)).filter(t=>!i||t.file.includes(i)),a=new Set(c.map(t=>t.file)),l=[];for(let t of _(o,s,i)){if(a.has(t))continue;let e=g(o,t),r=e.length>0?S(e,e[0].startLine):null;l.push({symbol:r?.symbol??t,file:t})}let u=[...c,...l],f=[],m=new Set;for(let t of u){let e=N(o,t.symbol);if(!e){let y=`${t.file}|${t.symbol}`;if(m.has(y))continue;m.add(y),f.push({symbolId:null,symbol:t.symbol,shortName:b(t.symbol),file:t.file,symbolMatch:null});continue}if(e.symbolId===s.symbolId||o.isIgnored(e.relativePath)||!w(e))continue;let r=`${e.symbolId}|${e.relativePath}`;m.has(r)||(m.add(r),f.push({symbolId:e.symbolId,symbol:e.symbol,shortName:b(e.symbol),file:e.relativePath,symbolMatch:e}))}return f}function _(o,s,i){let c=i?"AND consumer_d.relative_path LIKE ?":"",a=[s.symbolId,s.documentId];return i&&a.push(`%${i}%`),new Set(o.all(`SELECT DISTINCT consumer_d.relative_path
2
- FROM mentions m
3
- JOIN chunks c ON m.chunk_id = c.id
4
- JOIN documents consumer_d ON consumer_d.id = c.document_id
5
- WHERE m.symbol_id = ?
6
- AND m.role != 1
7
- AND c.document_id != ?
8
- ${o.pathExclusionsFor("consumer_d")}
9
- ${c}`,...a).map(l=>l.relative_path).filter(l=>!o.isIgnored(l)))}function w(o){if(o.symbol.startsWith("scip-clojure ")||h(o.relativePath)==="clojure")return!0;let s=p(o.symbol);return s==="method"||s==="type"||o.symbol.endsWith("().")}export{$ as a};
10
- //# sourceMappingURL=chunk-IHD2CHMX.js.map
@@ -1,2 +0,0 @@
1
- import{execFileSync as t}from"child_process";import{platform as l}from"os";var c=l()==="win32";function n(e){let r=c?"where":"which";try{return t(r,[e],{stdio:"pipe"}),!0}catch{return!1}}import{execFileSync as o}from"child_process";import{createRequire as a}from"module";import{existsSync as p}from"fs";import{platform as s,arch as u}from"os";var g="https://github.com/sourcegraph/scip",f="SCIP_QUERY_SCIP_BIN";function m(e){if(e.isOnPath("scip"))return{source:"path",path:"scip"};let r=e.env[f];if(r&&e.fileExists(r))return{source:"env",path:r};if(e.platform==="win32"){let i=e.resolveSidecar(e.arch);if(i&&e.fileExists(i))return{source:"sidecar",path:i}}return null}function d(e){let r=a(import.meta.url);for(let i of e==="arm64"?["arm64","x64"]:[e])try{return r.resolve(`scip-query-scip-windows/scip-win32-${i}.exe`)}catch{}return null}function P(e=process.env){return m({platform:s(),arch:u(),env:e,isOnPath:n,fileExists:p,resolveSidecar:d})?.path??null}function B(e){if(s()==="darwin"&&n("brew")){e("Installing scip CLI via Homebrew...");try{if(o("brew",["install","sourcegraph/scip/scip"],{stdio:"inherit",timeout:3e5,env:process.env}),n("scip"))return e("Successfully installed scip CLI via Homebrew"),!0}catch(r){let i=r instanceof Error?r.message:String(r);e(`Homebrew install failed: ${i}`)}}if(n("go")){e("Installing scip CLI via go install...");try{if(o("go",["install","github.com/sourcegraph/scip/cmd/scip@latest"],{stdio:"inherit",timeout:3e5,env:process.env}),n("scip"))return e("Successfully installed scip CLI via go install"),!0}catch(r){let i=r instanceof Error?r.message:String(r);e(`go install failed: ${i}`)}}return e("Could not auto-install scip CLI."),e(`Install manually from: ${g}/releases`),!1}export{n as a,P as b,B as c};
2
- //# sourceMappingURL=chunk-TFWDJDGO.js.map