codebase-context 1.6.1 → 1.7.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 (149) hide show
  1. package/README.md +142 -46
  2. package/dist/analyzers/angular/index.d.ts +4 -0
  3. package/dist/analyzers/angular/index.d.ts.map +1 -1
  4. package/dist/analyzers/angular/index.js +51 -10
  5. package/dist/analyzers/angular/index.js.map +1 -1
  6. package/dist/analyzers/generic/index.d.ts +1 -0
  7. package/dist/analyzers/generic/index.d.ts.map +1 -1
  8. package/dist/analyzers/generic/index.js +89 -10
  9. package/dist/analyzers/generic/index.js.map +1 -1
  10. package/dist/cli.d.ts +8 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +352 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/constants/codebase-context.d.ts +13 -0
  15. package/dist/constants/codebase-context.d.ts.map +1 -1
  16. package/dist/constants/codebase-context.js +13 -0
  17. package/dist/constants/codebase-context.js.map +1 -1
  18. package/dist/core/index-meta.d.ts +24 -0
  19. package/dist/core/index-meta.d.ts.map +1 -0
  20. package/dist/core/index-meta.js +204 -0
  21. package/dist/core/index-meta.js.map +1 -0
  22. package/dist/core/indexer.d.ts +0 -5
  23. package/dist/core/indexer.d.ts.map +1 -1
  24. package/dist/core/indexer.js +265 -60
  25. package/dist/core/indexer.js.map +1 -1
  26. package/dist/core/search.d.ts +1 -0
  27. package/dist/core/search.d.ts.map +1 -1
  28. package/dist/core/search.js +60 -5
  29. package/dist/core/search.js.map +1 -1
  30. package/dist/core/symbol-references.d.ts +21 -0
  31. package/dist/core/symbol-references.d.ts.map +1 -0
  32. package/dist/core/symbol-references.js +91 -0
  33. package/dist/core/symbol-references.js.map +1 -0
  34. package/dist/eval/harness.d.ts +5 -0
  35. package/dist/eval/harness.d.ts.map +1 -0
  36. package/dist/eval/harness.js +153 -0
  37. package/dist/eval/harness.js.map +1 -0
  38. package/dist/eval/types.d.ts +59 -0
  39. package/dist/eval/types.d.ts.map +1 -0
  40. package/dist/eval/types.js +2 -0
  41. package/dist/eval/types.js.map +1 -0
  42. package/dist/grammars/manifest.d.ts +26 -0
  43. package/dist/grammars/manifest.d.ts.map +1 -0
  44. package/dist/grammars/manifest.js +63 -0
  45. package/dist/grammars/manifest.js.map +1 -0
  46. package/dist/index.d.ts +12 -2
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +146 -1231
  49. package/dist/index.js.map +1 -1
  50. package/dist/memory/store.d.ts +3 -0
  51. package/dist/memory/store.d.ts.map +1 -1
  52. package/dist/memory/store.js +9 -0
  53. package/dist/memory/store.js.map +1 -1
  54. package/dist/patterns/semantics.d.ts +6 -0
  55. package/dist/patterns/semantics.d.ts.map +1 -1
  56. package/dist/patterns/semantics.js +22 -6
  57. package/dist/patterns/semantics.js.map +1 -1
  58. package/dist/preflight/evidence-lock.d.ts +8 -0
  59. package/dist/preflight/evidence-lock.d.ts.map +1 -1
  60. package/dist/preflight/evidence-lock.js +49 -3
  61. package/dist/preflight/evidence-lock.js.map +1 -1
  62. package/dist/storage/lancedb.d.ts +9 -1
  63. package/dist/storage/lancedb.d.ts.map +1 -1
  64. package/dist/storage/lancedb.js +26 -8
  65. package/dist/storage/lancedb.js.map +1 -1
  66. package/dist/tools/detect-circular-dependencies.d.ts +5 -0
  67. package/dist/tools/detect-circular-dependencies.d.ts.map +1 -0
  68. package/dist/tools/detect-circular-dependencies.js +117 -0
  69. package/dist/tools/detect-circular-dependencies.js.map +1 -0
  70. package/dist/tools/get-codebase-metadata.d.ts +5 -0
  71. package/dist/tools/get-codebase-metadata.d.ts.map +1 -0
  72. package/dist/tools/get-codebase-metadata.js +53 -0
  73. package/dist/tools/get-codebase-metadata.js.map +1 -0
  74. package/dist/tools/get-component-usage.d.ts +5 -0
  75. package/dist/tools/get-component-usage.d.ts.map +1 -0
  76. package/dist/tools/get-component-usage.js +83 -0
  77. package/dist/tools/get-component-usage.js.map +1 -0
  78. package/dist/tools/get-indexing-status.d.ts +5 -0
  79. package/dist/tools/get-indexing-status.d.ts.map +1 -0
  80. package/dist/tools/get-indexing-status.js +44 -0
  81. package/dist/tools/get-indexing-status.js.map +1 -0
  82. package/dist/tools/get-memory.d.ts +5 -0
  83. package/dist/tools/get-memory.d.ts.map +1 -0
  84. package/dist/tools/get-memory.js +89 -0
  85. package/dist/tools/get-memory.js.map +1 -0
  86. package/dist/tools/get-style-guide.d.ts +5 -0
  87. package/dist/tools/get-style-guide.d.ts.map +1 -0
  88. package/dist/tools/get-style-guide.js +151 -0
  89. package/dist/tools/get-style-guide.js.map +1 -0
  90. package/dist/tools/get-symbol-references.d.ts +5 -0
  91. package/dist/tools/get-symbol-references.d.ts.map +1 -0
  92. package/dist/tools/get-symbol-references.js +70 -0
  93. package/dist/tools/get-symbol-references.js.map +1 -0
  94. package/dist/tools/get-team-patterns.d.ts +5 -0
  95. package/dist/tools/get-team-patterns.d.ts.map +1 -0
  96. package/dist/tools/get-team-patterns.js +131 -0
  97. package/dist/tools/get-team-patterns.js.map +1 -0
  98. package/dist/tools/index.d.ts +6 -0
  99. package/dist/tools/index.d.ts.map +1 -0
  100. package/dist/tools/index.js +41 -0
  101. package/dist/tools/index.js.map +1 -0
  102. package/dist/tools/refresh-index.d.ts +5 -0
  103. package/dist/tools/refresh-index.d.ts.map +1 -0
  104. package/dist/tools/refresh-index.js +40 -0
  105. package/dist/tools/refresh-index.js.map +1 -0
  106. package/dist/tools/remember.d.ts +5 -0
  107. package/dist/tools/remember.d.ts.map +1 -0
  108. package/dist/tools/remember.js +101 -0
  109. package/dist/tools/remember.js.map +1 -0
  110. package/dist/tools/search-codebase.d.ts +5 -0
  111. package/dist/tools/search-codebase.d.ts.map +1 -0
  112. package/dist/tools/search-codebase.js +638 -0
  113. package/dist/tools/search-codebase.js.map +1 -0
  114. package/dist/tools/types.d.ts +31 -0
  115. package/dist/tools/types.d.ts.map +1 -0
  116. package/dist/tools/types.js +2 -0
  117. package/dist/tools/types.js.map +1 -0
  118. package/dist/types/index.d.ts +8 -0
  119. package/dist/types/index.d.ts.map +1 -1
  120. package/dist/utils/ast-chunker.d.ts +71 -0
  121. package/dist/utils/ast-chunker.d.ts.map +1 -0
  122. package/dist/utils/ast-chunker.js +453 -0
  123. package/dist/utils/ast-chunker.js.map +1 -0
  124. package/dist/utils/chunking.d.ts.map +1 -1
  125. package/dist/utils/chunking.js +10 -3
  126. package/dist/utils/chunking.js.map +1 -1
  127. package/dist/utils/dependency-detection.d.ts +2 -1
  128. package/dist/utils/dependency-detection.d.ts.map +1 -1
  129. package/dist/utils/dependency-detection.js.map +1 -1
  130. package/dist/utils/language-detection.d.ts.map +1 -1
  131. package/dist/utils/language-detection.js +20 -0
  132. package/dist/utils/language-detection.js.map +1 -1
  133. package/dist/utils/tree-sitter.d.ts +17 -0
  134. package/dist/utils/tree-sitter.d.ts.map +1 -0
  135. package/dist/utils/tree-sitter.js +311 -0
  136. package/dist/utils/tree-sitter.js.map +1 -0
  137. package/docs/capabilities.md +131 -37
  138. package/grammars/.gitkeep +0 -0
  139. package/grammars/tree-sitter-c.wasm +0 -0
  140. package/grammars/tree-sitter-c_sharp.wasm +0 -0
  141. package/grammars/tree-sitter-cpp.wasm +0 -0
  142. package/grammars/tree-sitter-go.wasm +0 -0
  143. package/grammars/tree-sitter-java.wasm +0 -0
  144. package/grammars/tree-sitter-javascript.wasm +0 -0
  145. package/grammars/tree-sitter-python.wasm +0 -0
  146. package/grammars/tree-sitter-rust.wasm +0 -0
  147. package/grammars/tree-sitter-tsx.wasm +0 -0
  148. package/grammars/tree-sitter-typescript.wasm +0 -0
  149. package/package.json +12 -5
@@ -12,6 +12,7 @@ import { IndexCorruptedError } from '../errors/index.js';
12
12
  import { isTestingRelatedQuery } from '../preflight/query-scope.js';
13
13
  import { assessSearchQuality } from './search-quality.js';
14
14
  import { rerank } from './reranker.js';
15
+ import { readIndexMeta, validateIndexArtifacts } from './index-meta.js';
15
16
  import { CODEBASE_CONTEXT_DIRNAME, INTELLIGENCE_FILENAME, KEYWORD_INDEX_FILENAME, VECTOR_DB_DIRNAME } from '../constants/codebase-context.js';
16
17
  const DEFAULT_SEARCH_OPTIONS = {
17
18
  useSemanticSearch: true,
@@ -73,6 +74,7 @@ const QUERY_STOP_WORDS = new Set([
73
74
  export class CodebaseSearcher {
74
75
  rootPath;
75
76
  storagePath;
77
+ indexMeta = null;
76
78
  fuseIndex = null;
77
79
  chunks = [];
78
80
  embeddingProvider = null;
@@ -89,6 +91,9 @@ export class CodebaseSearcher {
89
91
  if (this.initialized)
90
92
  return;
91
93
  try {
94
+ // Fail closed on version mismatch/corruption before serving any results.
95
+ this.indexMeta = await readIndexMeta(this.rootPath);
96
+ await validateIndexArtifacts(this.rootPath, this.indexMeta);
92
97
  await this.loadKeywordIndex();
93
98
  await this.loadPatternIntelligence();
94
99
  this.embeddingProvider = await getEmbeddingProvider();
@@ -109,7 +114,15 @@ export class CodebaseSearcher {
109
114
  try {
110
115
  const indexPath = path.join(this.rootPath, CODEBASE_CONTEXT_DIRNAME, KEYWORD_INDEX_FILENAME);
111
116
  const content = await fs.readFile(indexPath, 'utf-8');
112
- this.chunks = JSON.parse(content);
117
+ const parsed = JSON.parse(content);
118
+ if (Array.isArray(parsed)) {
119
+ throw new IndexCorruptedError('Legacy keyword index format detected (missing header). Rebuild required.');
120
+ }
121
+ const chunks = parsed && Array.isArray(parsed.chunks) ? parsed.chunks : null;
122
+ if (!chunks) {
123
+ throw new IndexCorruptedError('Keyword index corrupted: expected { header, chunks }');
124
+ }
125
+ this.chunks = chunks;
113
126
  this.fuseIndex = new Fuse(this.chunks, {
114
127
  keys: [
115
128
  { name: 'content', weight: 0.4 },
@@ -127,9 +140,10 @@ export class CodebaseSearcher {
127
140
  });
128
141
  }
129
142
  catch (error) {
130
- console.warn('Keyword index load failed:', error);
131
- this.chunks = [];
132
- this.fuseIndex = null;
143
+ if (error instanceof IndexCorruptedError) {
144
+ throw error;
145
+ }
146
+ throw new IndexCorruptedError(`Keyword index load failed (rebuild required): ${error instanceof Error ? error.message : String(error)}`);
133
147
  }
134
148
  }
135
149
  /**
@@ -513,6 +527,20 @@ export class CodebaseSearcher {
513
527
  };
514
528
  })
515
529
  .sort((a, b) => b.score - a.score);
530
+ // SEARCH-01: Definition-first boost for EXACT_NAME intent
531
+ // Boost results where symbolName matches query (case-insensitive)
532
+ if (intent === 'EXACT_NAME') {
533
+ const queryNormalized = query.toLowerCase();
534
+ for (const result of scoredResults) {
535
+ const symbolName = result.metadata?.symbolName;
536
+ if (symbolName && symbolName.toLowerCase() === queryNormalized) {
537
+ result.score *= 1.15; // +15% boost for definition
538
+ }
539
+ }
540
+ // Re-sort after boost
541
+ scoredResults.sort((a, b) => b.score - a.score);
542
+ }
543
+ // File-level deduplication
516
544
  const seenFiles = new Set();
517
545
  const deduped = [];
518
546
  for (const result of scoredResults) {
@@ -524,7 +552,34 @@ export class CodebaseSearcher {
524
552
  if (deduped.length >= limit)
525
553
  break;
526
554
  }
527
- const finalResults = deduped;
555
+ // SEARCH-01: Symbol-level deduplication
556
+ // Within each symbol group (symbolPath), keep only the highest-scoring chunk
557
+ const seenSymbols = new Map();
558
+ const symbolDeduped = [];
559
+ for (const result of deduped) {
560
+ const symbolPath = result.metadata?.symbolPath;
561
+ if (!symbolPath) {
562
+ // No symbol info, keep as-is
563
+ symbolDeduped.push(result);
564
+ continue;
565
+ }
566
+ const symbolPathKey = Array.isArray(symbolPath) ? symbolPath.join('.') : String(symbolPath);
567
+ const existing = seenSymbols.get(symbolPathKey);
568
+ if (!existing || result.score > existing.score) {
569
+ if (existing) {
570
+ // Replace lower-scoring version
571
+ const idx = symbolDeduped.indexOf(existing);
572
+ if (idx >= 0) {
573
+ symbolDeduped[idx] = result;
574
+ }
575
+ }
576
+ else {
577
+ symbolDeduped.push(result);
578
+ }
579
+ seenSymbols.set(symbolPathKey, result);
580
+ }
581
+ }
582
+ const finalResults = symbolDeduped;
528
583
  if (isNonTestQuery &&
529
584
  finalResults.length < 3 &&
530
585
  finalResults.length < limit &&
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface SymbolUsage {
2
+ file: string;
3
+ line: number;
4
+ preview: string;
5
+ }
6
+ interface SymbolReferencesSuccess {
7
+ status: 'success';
8
+ symbol: string;
9
+ usageCount: number;
10
+ usages: SymbolUsage[];
11
+ confidence: 'syntactic';
12
+ isComplete: boolean;
13
+ }
14
+ interface SymbolReferencesError {
15
+ status: 'error';
16
+ message: string;
17
+ }
18
+ export type SymbolReferencesResult = SymbolReferencesSuccess | SymbolReferencesError;
19
+ export declare function findSymbolReferences(rootPath: string, symbol: string, limit?: number): Promise<SymbolReferencesResult>;
20
+ export {};
21
+ //# sourceMappingURL=symbol-references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-references.d.ts","sourceRoot":"","sources":["../../src/core/symbol-references.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,qBAAqB,CAAC;AA8BrF,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,SAAK,GACT,OAAO,CAAC,sBAAsB,CAAC,CAmFjC"}
@@ -0,0 +1,91 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ import { CODEBASE_CONTEXT_DIRNAME, KEYWORD_INDEX_FILENAME } from '../constants/codebase-context.js';
4
+ import { IndexCorruptedError } from '../errors/index.js';
5
+ function escapeRegex(value) {
6
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
7
+ }
8
+ function getUsageFile(rootPath, chunk) {
9
+ if (typeof chunk.relativePath === 'string' && chunk.relativePath.trim()) {
10
+ return chunk.relativePath.replace(/\\/g, '/');
11
+ }
12
+ if (typeof chunk.filePath === 'string' && chunk.filePath.trim()) {
13
+ const relativePath = path.relative(rootPath, chunk.filePath);
14
+ if (!relativePath || relativePath.startsWith('..')) {
15
+ return path.basename(chunk.filePath);
16
+ }
17
+ return relativePath.replace(/\\/g, '/');
18
+ }
19
+ return 'unknown';
20
+ }
21
+ function buildPreview(content, lineOffset) {
22
+ const lines = content.split('\n');
23
+ const start = Math.max(0, lineOffset - 1);
24
+ const end = Math.min(lines.length, lineOffset + 2);
25
+ const previewLines = lines.slice(start, end);
26
+ return previewLines.join('\n').trim();
27
+ }
28
+ export async function findSymbolReferences(rootPath, symbol, limit = 10) {
29
+ const normalizedSymbol = symbol.trim();
30
+ const normalizedLimit = Number.isFinite(limit) && limit > 0 ? Math.floor(limit) : 10;
31
+ if (!normalizedSymbol) {
32
+ return {
33
+ status: 'error',
34
+ message: 'Symbol is required'
35
+ };
36
+ }
37
+ const indexPath = path.join(rootPath, CODEBASE_CONTEXT_DIRNAME, KEYWORD_INDEX_FILENAME);
38
+ let chunksRaw;
39
+ try {
40
+ const content = await fs.readFile(indexPath, 'utf-8');
41
+ chunksRaw = JSON.parse(content);
42
+ }
43
+ catch (error) {
44
+ throw new IndexCorruptedError(`Keyword index missing or unreadable (rebuild required): ${error instanceof Error ? error.message : String(error)}`);
45
+ }
46
+ if (Array.isArray(chunksRaw)) {
47
+ throw new IndexCorruptedError('Legacy keyword index format detected (missing header). Rebuild required.');
48
+ }
49
+ const chunks = chunksRaw && typeof chunksRaw === 'object' && Array.isArray(chunksRaw.chunks)
50
+ ? chunksRaw.chunks
51
+ : null;
52
+ if (!chunks) {
53
+ throw new IndexCorruptedError('Keyword index corrupted: expected { header, chunks }');
54
+ }
55
+ const usages = [];
56
+ let usageCount = 0;
57
+ const escapedSymbol = escapeRegex(normalizedSymbol);
58
+ const matcher = new RegExp(`\\b${escapedSymbol}\\b`, 'g');
59
+ for (const chunkRaw of chunks) {
60
+ const chunk = chunkRaw;
61
+ if (typeof chunk.content !== 'string') {
62
+ continue;
63
+ }
64
+ const chunkContent = chunk.content;
65
+ const startLine = typeof chunk.startLine === 'number' ? chunk.startLine : 1;
66
+ matcher.lastIndex = 0;
67
+ let match;
68
+ while ((match = matcher.exec(chunkContent)) !== null) {
69
+ usageCount += 1;
70
+ if (usages.length >= normalizedLimit) {
71
+ continue;
72
+ }
73
+ const prefix = chunkContent.slice(0, match.index);
74
+ const lineOffset = prefix.split('\n').length - 1;
75
+ usages.push({
76
+ file: getUsageFile(rootPath, chunk),
77
+ line: startLine + lineOffset,
78
+ preview: buildPreview(chunkContent, lineOffset)
79
+ });
80
+ }
81
+ }
82
+ return {
83
+ status: 'success',
84
+ symbol: normalizedSymbol,
85
+ usageCount,
86
+ usages,
87
+ confidence: 'syntactic',
88
+ isComplete: usageCount < normalizedLimit
89
+ };
90
+ }
91
+ //# sourceMappingURL=symbol-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-references.js","sourceRoot":"","sources":["../../src/core/symbol-references.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { EvalGate, EvalResult, EvalSummary, EvaluateFixtureParams, FormatEvalReportParams } from './types.js';
2
+ export declare function evaluateFixture({ fixture, searcher, limit, searchOptions }: EvaluateFixtureParams): Promise<EvalSummary>;
3
+ export declare function summarizeEvaluation(results: EvalResult[], gate?: EvalGate): EvalSummary;
4
+ export declare function formatEvalReport({ codebaseLabel, fixturePath, summary, redactPaths }: FormatEvalReportParams): string;
5
+ //# sourceMappingURL=harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/eval/harness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAER,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AA4GpB,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,QAAQ,EACR,KAAS,EACT,aAAa,EACd,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAS9C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,GAAE,QAAc,GAAG,WAAW,CAsB5F;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,EACb,WAAW,EACX,OAAO,EACP,WAAkB,EACnB,EAAE,sBAAsB,GAAG,MAAM,CAuDjC"}
@@ -0,0 +1,153 @@
1
+ import crypto from 'crypto';
2
+ function normalizePath(filePath) {
3
+ return filePath.toLowerCase().replace(/\\/g, '/');
4
+ }
5
+ function isTestFile(filePath) {
6
+ const normalized = normalizePath(filePath);
7
+ return (normalized.includes('.spec.') ||
8
+ normalized.includes('.test.') ||
9
+ normalized.includes('/e2e/') ||
10
+ normalized.includes('/__tests__/'));
11
+ }
12
+ function matchesPattern(filePath, patterns) {
13
+ const normalized = normalizePath(filePath);
14
+ return patterns.some((pattern) => normalized.includes(pattern.toLowerCase()));
15
+ }
16
+ function dedupeByFile(results) {
17
+ const seen = new Set();
18
+ const deduped = [];
19
+ for (const result of results) {
20
+ const key = normalizePath(result.filePath);
21
+ if (seen.has(key)) {
22
+ continue;
23
+ }
24
+ seen.add(key);
25
+ deduped.push(result);
26
+ }
27
+ return deduped;
28
+ }
29
+ function getExpectedPatterns(query) {
30
+ return query.expectedPatterns ?? query.expectedTopFiles ?? [];
31
+ }
32
+ function getExpectedNotPatterns(query) {
33
+ return query.expectedNotPatterns ?? query.expectedNotTopFiles ?? [];
34
+ }
35
+ function evaluateQuery(query, results) {
36
+ const uniqueResults = dedupeByFile(results);
37
+ const topFile = uniqueResults.length > 0 ? uniqueResults[0].filePath : null;
38
+ const top3Files = uniqueResults.slice(0, 3).map((result) => result.filePath);
39
+ const expectedPatterns = getExpectedPatterns(query);
40
+ const expectedNotPatterns = getExpectedNotPatterns(query);
41
+ const top1Correct = topFile !== null &&
42
+ matchesPattern(topFile, expectedPatterns) &&
43
+ !matchesPattern(topFile, expectedNotPatterns);
44
+ const top3Recall = top3Files.some((filePath) => matchesPattern(filePath, expectedPatterns) && !matchesPattern(filePath, expectedNotPatterns));
45
+ const specCount = top3Files.filter((filePath) => isTestFile(filePath)).length;
46
+ const specContaminated = specCount >= 2;
47
+ return {
48
+ queryId: query.id,
49
+ query: query.query,
50
+ category: query.category,
51
+ expectedPatterns,
52
+ expectedNotPatterns,
53
+ topFile,
54
+ top3Files,
55
+ top1Correct,
56
+ top3Recall,
57
+ specContaminated,
58
+ score: uniqueResults.length > 0 ? uniqueResults[0].score : 0
59
+ };
60
+ }
61
+ function resolveGateThreshold(total, gate) {
62
+ if (gate <= 1) {
63
+ return Math.ceil(total * gate);
64
+ }
65
+ return Math.ceil(gate);
66
+ }
67
+ function hashPath(filePath) {
68
+ return crypto.createHash('sha1').update(normalizePath(filePath)).digest('hex').slice(0, 8);
69
+ }
70
+ function formatPath(filePath, redactPaths) {
71
+ if (!filePath) {
72
+ return 'none';
73
+ }
74
+ const normalized = filePath.replace(/\\/g, '/');
75
+ if (!redactPaths) {
76
+ return normalized;
77
+ }
78
+ const base = normalized.split('/').pop() || normalized;
79
+ return `path#${hashPath(normalized)}/${base}`;
80
+ }
81
+ export async function evaluateFixture({ fixture, searcher, limit = 5, searchOptions }) {
82
+ const results = [];
83
+ for (const query of fixture.queries) {
84
+ const searchResults = await searcher.search(query.query, limit, undefined, searchOptions);
85
+ results.push(evaluateQuery(query, searchResults));
86
+ }
87
+ return summarizeEvaluation(results);
88
+ }
89
+ export function summarizeEvaluation(results, gate = 0.7) {
90
+ const total = results.length;
91
+ const top1Correct = results.filter((result) => result.top1Correct).length;
92
+ const top3RecallCount = results.filter((result) => result.top3Recall).length;
93
+ const specContaminatedCount = results.filter((result) => result.specContaminated).length;
94
+ const avgTopScore = total > 0 ? results.reduce((sum, result) => sum + result.score, 0) / total : 0;
95
+ const gateThreshold = resolveGateThreshold(total, gate);
96
+ return {
97
+ total,
98
+ top1Correct,
99
+ top1Accuracy: total > 0 ? top1Correct / total : 0,
100
+ top3RecallCount,
101
+ top3Recall: total > 0 ? top3RecallCount / total : 0,
102
+ specContaminatedCount,
103
+ specContaminationRate: total > 0 ? specContaminatedCount / total : 0,
104
+ avgTopScore,
105
+ gateThreshold,
106
+ passesGate: total > 0 && top1Correct >= gateThreshold,
107
+ results
108
+ };
109
+ }
110
+ export function formatEvalReport({ codebaseLabel, fixturePath, summary, redactPaths = true }) {
111
+ const lines = [];
112
+ const wins = summary.results.filter((result) => result.top1Correct);
113
+ const failures = summary.results.filter((result) => !result.top1Correct);
114
+ lines.push(`\n=== Eval Report: ${codebaseLabel} ===`);
115
+ lines.push(`Fixture: ${fixturePath}`);
116
+ lines.push(`Top-1 Accuracy: ${summary.top1Correct}/${summary.total} (${(summary.top1Accuracy * 100).toFixed(0)}%)`);
117
+ lines.push(`Top-3 Recall: ${summary.top3RecallCount}/${summary.total} (${(summary.top3Recall * 100).toFixed(0)}%)`);
118
+ lines.push(`Spec Contamination: ${summary.specContaminatedCount}/${summary.total} (${(summary.specContaminationRate * 100).toFixed(0)}%)`);
119
+ lines.push(`Gate (${summary.gateThreshold}/${summary.total}): ${summary.passesGate ? 'PASS' : 'FAIL'}`);
120
+ lines.push(`Wins: ${wins.length} | Failures: ${failures.length}`);
121
+ lines.push('\nWins:');
122
+ if (wins.length === 0) {
123
+ lines.push(' (none)');
124
+ }
125
+ else {
126
+ for (const result of wins) {
127
+ lines.push(` PASS #${result.queryId} [${result.category}] "${result.query}" -> ${formatPath(result.topFile, redactPaths)} (${result.score.toFixed(3)})`);
128
+ }
129
+ }
130
+ lines.push('\nFailures:');
131
+ if (failures.length === 0) {
132
+ lines.push(' (none)');
133
+ }
134
+ else {
135
+ for (const result of failures) {
136
+ lines.push(` FAIL #${result.queryId} [${result.category}] "${result.query}" -> ${formatPath(result.topFile, redactPaths)} (${result.score.toFixed(3)})`);
137
+ lines.push(` expected: ${result.expectedPatterns.join(' | ') || '(none)'}`);
138
+ lines.push(` expected-not: ${result.expectedNotPatterns.join(' | ') || '(none)'}`);
139
+ lines.push(' top-3 actual:');
140
+ if (result.top3Files.length === 0) {
141
+ lines.push(' 1. none');
142
+ }
143
+ else {
144
+ for (let index = 0; index < result.top3Files.length; index++) {
145
+ lines.push(` ${index + 1}. ${formatPath(result.top3Files[index], redactPaths)}`);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ lines.push('\n================================');
151
+ return lines.join('\n');
152
+ }
153
+ //# sourceMappingURL=harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/eval/harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { SearchOptions, CodebaseSearcher } from '../core/search.js';
2
+ export interface EvalQuery {
3
+ id: number;
4
+ query: string;
5
+ category: string;
6
+ expectedPatterns?: string[];
7
+ expectedNotPatterns?: string[];
8
+ expectedTopFiles?: string[];
9
+ expectedNotTopFiles?: string[];
10
+ notes?: string;
11
+ }
12
+ export interface EvalFixture {
13
+ description?: string;
14
+ codebase?: string;
15
+ repository?: string;
16
+ frozenDate?: string;
17
+ notes?: string;
18
+ queries: EvalQuery[];
19
+ }
20
+ export interface EvalResult {
21
+ queryId: number;
22
+ query: string;
23
+ category: string;
24
+ expectedPatterns: string[];
25
+ expectedNotPatterns: string[];
26
+ topFile: string | null;
27
+ top3Files: string[];
28
+ top1Correct: boolean;
29
+ top3Recall: boolean;
30
+ specContaminated: boolean;
31
+ score: number;
32
+ }
33
+ export interface EvalSummary {
34
+ total: number;
35
+ top1Correct: number;
36
+ top1Accuracy: number;
37
+ top3RecallCount: number;
38
+ top3Recall: number;
39
+ specContaminatedCount: number;
40
+ specContaminationRate: number;
41
+ avgTopScore: number;
42
+ gateThreshold: number;
43
+ passesGate: boolean;
44
+ results: EvalResult[];
45
+ }
46
+ export interface EvaluateFixtureParams {
47
+ fixture: EvalFixture;
48
+ searcher: CodebaseSearcher;
49
+ limit?: number;
50
+ searchOptions?: SearchOptions;
51
+ }
52
+ export type EvalGate = number;
53
+ export interface FormatEvalReportParams {
54
+ codebaseLabel: string;
55
+ fixturePath: string;
56
+ summary: EvalSummary;
57
+ redactPaths?: boolean;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/eval/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/eval/types.ts"],"names":[],"mappings":""}