ghagga-core 2.8.0 → 2.9.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.
- package/dist/acp/adapter.d.ts +91 -0
- package/dist/acp/adapter.d.ts.map +1 -0
- package/dist/acp/adapter.js +315 -0
- package/dist/acp/adapter.js.map +1 -0
- package/dist/acp/index.d.ts +4 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +2 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/types.d.ts +142 -0
- package/dist/acp/types.d.ts.map +1 -0
- package/dist/acp/types.js +13 -0
- package/dist/acp/types.js.map +1 -0
- package/dist/adversarial-qa.d.ts +60 -0
- package/dist/adversarial-qa.d.ts.map +1 -0
- package/dist/adversarial-qa.js +85 -0
- package/dist/adversarial-qa.js.map +1 -0
- package/dist/agents/audit.d.ts +18 -0
- package/dist/agents/audit.d.ts.map +1 -0
- package/dist/agents/audit.js +78 -0
- package/dist/agents/audit.js.map +1 -0
- package/dist/agents/consensus.d.ts +1 -1
- package/dist/agents/consensus.d.ts.map +1 -1
- package/dist/agents/consensus.js +10 -8
- package/dist/agents/consensus.js.map +1 -1
- package/dist/agents/diagnostic.d.ts.map +1 -1
- package/dist/agents/diagnostic.js +22 -20
- package/dist/agents/diagnostic.js.map +1 -1
- package/dist/agents/fan-out-lenses.d.ts +41 -0
- package/dist/agents/fan-out-lenses.d.ts.map +1 -1
- package/dist/agents/fan-out-lenses.js +117 -3
- package/dist/agents/fan-out-lenses.js.map +1 -1
- package/dist/agents/prompts.d.ts +12 -0
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +31 -0
- package/dist/agents/prompts.js.map +1 -1
- package/dist/agents/simple.d.ts +1 -1
- package/dist/agents/simple.d.ts.map +1 -1
- package/dist/agents/simple.js +10 -6
- package/dist/agents/simple.js.map +1 -1
- package/dist/agents/workflow.d.ts +1 -1
- package/dist/agents/workflow.d.ts.map +1 -1
- package/dist/agents/workflow.js +9 -8
- package/dist/agents/workflow.js.map +1 -1
- package/dist/aisvs.d.ts +44 -0
- package/dist/aisvs.d.ts.map +1 -0
- package/dist/aisvs.js +189 -0
- package/dist/aisvs.js.map +1 -0
- package/dist/checklist/context.d.ts.map +1 -1
- package/dist/checklist/context.js +2 -8
- package/dist/checklist/context.js.map +1 -1
- package/dist/checklist/defaults.d.ts.map +1 -1
- package/dist/checklist/defaults.js.map +1 -1
- package/dist/checklist/scorer.d.ts.map +1 -1
- package/dist/checklist/scorer.js +105 -12
- package/dist/checklist/scorer.js.map +1 -1
- package/dist/code-intel/client.d.ts +30 -0
- package/dist/code-intel/client.d.ts.map +1 -0
- package/dist/code-intel/client.js +91 -0
- package/dist/code-intel/client.js.map +1 -0
- package/dist/code-intel/context.d.ts +21 -0
- package/dist/code-intel/context.d.ts.map +1 -0
- package/dist/code-intel/context.js +72 -0
- package/dist/code-intel/context.js.map +1 -0
- package/dist/code-intel/index.d.ts +10 -0
- package/dist/code-intel/index.d.ts.map +1 -0
- package/dist/code-intel/index.js +11 -0
- package/dist/code-intel/index.js.map +1 -0
- package/dist/code-intel/types.d.ts +63 -0
- package/dist/code-intel/types.d.ts.map +1 -0
- package/dist/code-intel/types.js +9 -0
- package/dist/code-intel/types.js.map +1 -0
- package/dist/compress/index.d.ts +55 -0
- package/dist/compress/index.d.ts.map +1 -0
- package/dist/compress/index.js +166 -0
- package/dist/compress/index.js.map +1 -0
- package/dist/cost-footer.d.ts +38 -0
- package/dist/cost-footer.d.ts.map +1 -0
- package/dist/cost-footer.js +95 -0
- package/dist/cost-footer.js.map +1 -0
- package/dist/critique/critique.d.ts +40 -0
- package/dist/critique/critique.d.ts.map +1 -0
- package/dist/critique/critique.js +194 -0
- package/dist/critique/critique.js.map +1 -0
- package/dist/critique/cross-model.d.ts +123 -0
- package/dist/critique/cross-model.d.ts.map +1 -0
- package/dist/critique/cross-model.js +267 -0
- package/dist/critique/cross-model.js.map +1 -0
- package/dist/critique/index.d.ts +8 -0
- package/dist/critique/index.d.ts.map +1 -0
- package/dist/critique/index.js +6 -0
- package/dist/critique/index.js.map +1 -0
- package/dist/critique/prompts.d.ts +11 -0
- package/dist/critique/prompts.d.ts.map +1 -0
- package/dist/critique/prompts.js +66 -0
- package/dist/critique/prompts.js.map +1 -0
- package/dist/critique/types.d.ts +84 -0
- package/dist/critique/types.d.ts.map +1 -0
- package/dist/critique/types.js +13 -0
- package/dist/critique/types.js.map +1 -0
- package/dist/doc-validation/index.d.ts +9 -0
- package/dist/doc-validation/index.d.ts.map +1 -0
- package/dist/doc-validation/index.js +9 -0
- package/dist/doc-validation/index.js.map +1 -0
- package/dist/doc-validation/scanner.d.ts +40 -0
- package/dist/doc-validation/scanner.d.ts.map +1 -0
- package/dist/doc-validation/scanner.js +163 -0
- package/dist/doc-validation/scanner.js.map +1 -0
- package/dist/doc-validation/types.d.ts +27 -0
- package/dist/doc-validation/types.d.ts.map +1 -0
- package/dist/doc-validation/types.js +8 -0
- package/dist/doc-validation/types.js.map +1 -0
- package/dist/embed.d.ts +27 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +47 -0
- package/dist/embed.js.map +1 -0
- package/dist/enhance/enhance.d.ts.map +1 -1
- package/dist/enhance/enhance.js +7 -25
- package/dist/enhance/enhance.js.map +1 -1
- package/dist/enhance/types.d.ts +5 -0
- package/dist/enhance/types.d.ts.map +1 -1
- package/dist/exploitability/analyzer.d.ts +42 -0
- package/dist/exploitability/analyzer.d.ts.map +1 -1
- package/dist/exploitability/analyzer.js +225 -0
- package/dist/exploitability/analyzer.js.map +1 -1
- package/dist/exploitability/index.d.ts +3 -2
- package/dist/exploitability/index.d.ts.map +1 -1
- package/dist/exploitability/index.js +1 -2
- package/dist/exploitability/index.js.map +1 -1
- package/dist/exploitability/types.d.ts +27 -0
- package/dist/exploitability/types.d.ts.map +1 -1
- package/dist/fetch-fix.d.ts +60 -0
- package/dist/fetch-fix.d.ts.map +1 -0
- package/dist/fetch-fix.js +137 -0
- package/dist/fetch-fix.js.map +1 -0
- package/dist/flood/index.d.ts +34 -0
- package/dist/flood/index.d.ts.map +1 -0
- package/dist/flood/index.js +67 -0
- package/dist/flood/index.js.map +1 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +6 -1
- package/dist/format.js.map +1 -1
- package/dist/graph/blast-radius.js +2 -2
- package/dist/graph/blast-radius.js.map +1 -1
- package/dist/graph/call-chain.d.ts +36 -0
- package/dist/graph/call-chain.d.ts.map +1 -0
- package/dist/graph/call-chain.js +291 -0
- package/dist/graph/call-chain.js.map +1 -0
- package/dist/graph/index.d.ts +4 -0
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +2 -0
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/reverse-deps.d.ts +37 -0
- package/dist/graph/reverse-deps.d.ts.map +1 -0
- package/dist/graph/reverse-deps.js +136 -0
- package/dist/graph/reverse-deps.js.map +1 -0
- package/dist/index.d.ts +50 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -7
- package/dist/index.js.map +1 -1
- package/dist/injection-corpus.d.ts +41 -0
- package/dist/injection-corpus.d.ts.map +1 -0
- package/dist/injection-corpus.js +181 -0
- package/dist/injection-corpus.js.map +1 -0
- package/dist/latent-comms.d.ts +31 -0
- package/dist/latent-comms.d.ts.map +1 -0
- package/dist/latent-comms.js +139 -0
- package/dist/latent-comms.js.map +1 -0
- package/dist/memory/pageindex/chunker.d.ts +33 -0
- package/dist/memory/pageindex/chunker.d.ts.map +1 -0
- package/dist/memory/pageindex/chunker.js +112 -0
- package/dist/memory/pageindex/chunker.js.map +1 -0
- package/dist/memory/pageindex/example.d.ts +22 -0
- package/dist/memory/pageindex/example.d.ts.map +1 -0
- package/dist/memory/pageindex/example.js +94 -0
- package/dist/memory/pageindex/example.js.map +1 -0
- package/dist/memory/pageindex/index.d.ts +15 -0
- package/dist/memory/pageindex/index.d.ts.map +1 -0
- package/dist/memory/pageindex/index.js +17 -0
- package/dist/memory/pageindex/index.js.map +1 -0
- package/dist/memory/pageindex/service.d.ts +53 -0
- package/dist/memory/pageindex/service.d.ts.map +1 -0
- package/dist/memory/pageindex/service.js +229 -0
- package/dist/memory/pageindex/service.js.map +1 -0
- package/dist/memory/pageindex/types.d.ts +67 -0
- package/dist/memory/pageindex/types.d.ts.map +1 -0
- package/dist/memory/pageindex/types.js +14 -0
- package/dist/memory/pageindex/types.js.map +1 -0
- package/dist/memory/persist.d.ts.map +1 -1
- package/dist/memory/persist.js +6 -2
- package/dist/memory/persist.js.map +1 -1
- package/dist/memory/sqlite.d.ts +69 -2
- package/dist/memory/sqlite.d.ts.map +1 -1
- package/dist/memory/sqlite.js +312 -5
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/memory/taxonomy.d.ts +34 -0
- package/dist/memory/taxonomy.d.ts.map +1 -0
- package/dist/memory/taxonomy.js +189 -0
- package/dist/memory/taxonomy.js.map +1 -0
- package/dist/memory/versioning.d.ts.map +1 -1
- package/dist/memory/versioning.js.map +1 -1
- package/dist/negative.d.ts +23 -0
- package/dist/negative.d.ts.map +1 -0
- package/dist/negative.js +40 -0
- package/dist/negative.js.map +1 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +455 -46
- package/dist/pipeline.js.map +1 -1
- package/dist/prompt-intel.d.ts +39 -0
- package/dist/prompt-intel.d.ts.map +1 -0
- package/dist/prompt-intel.js +148 -0
- package/dist/prompt-intel.js.map +1 -0
- package/dist/providers/cli-bridge.d.ts +4 -0
- package/dist/providers/cli-bridge.d.ts.map +1 -1
- package/dist/providers/cli-bridge.js +4 -0
- package/dist/providers/cli-bridge.js.map +1 -1
- package/dist/providers/generate-fn.d.ts +3 -15
- package/dist/providers/generate-fn.d.ts.map +1 -1
- package/dist/providers/generate-fn.js +3 -30
- package/dist/providers/generate-fn.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.d.ts +15 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +30 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/ranking/index.d.ts +9 -0
- package/dist/ranking/index.d.ts.map +1 -0
- package/dist/ranking/index.js +82 -0
- package/dist/ranking/index.js.map +1 -0
- package/dist/recursive/circuit-breaker.d.ts +36 -0
- package/dist/recursive/circuit-breaker.d.ts.map +1 -0
- package/dist/recursive/circuit-breaker.js +62 -0
- package/dist/recursive/circuit-breaker.js.map +1 -0
- package/dist/recursive/index.d.ts +4 -0
- package/dist/recursive/index.d.ts.map +1 -1
- package/dist/recursive/index.js +18 -1
- package/dist/recursive/index.js.map +1 -1
- package/dist/recursive/types.d.ts +2 -0
- package/dist/recursive/types.d.ts.map +1 -1
- package/dist/recursive/types.js +1 -0
- package/dist/recursive/types.js.map +1 -1
- package/dist/scope/diff-mapper.js.map +1 -1
- package/dist/scope/entity-diff.d.ts +58 -0
- package/dist/scope/entity-diff.d.ts.map +1 -0
- package/dist/scope/entity-diff.js +224 -0
- package/dist/scope/entity-diff.js.map +1 -0
- package/dist/scope/extractor.d.ts.map +1 -1
- package/dist/scope/extractor.js.map +1 -1
- package/dist/scope/index.d.ts +3 -1
- package/dist/scope/index.d.ts.map +1 -1
- package/dist/scope/index.js +3 -0
- package/dist/scope/index.js.map +1 -1
- package/dist/scope/parser.d.ts +1 -1
- package/dist/scope/parser.d.ts.map +1 -1
- package/dist/scope/parser.js.map +1 -1
- package/dist/scope/types.d.ts +32 -0
- package/dist/scope/types.d.ts.map +1 -1
- package/dist/scope/types.js +7 -1
- package/dist/scope/types.js.map +1 -1
- package/dist/search/index.d.ts +11 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +10 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/indexer.d.ts +67 -0
- package/dist/search/indexer.d.ts.map +1 -0
- package/dist/search/indexer.js +196 -0
- package/dist/search/indexer.js.map +1 -0
- package/dist/search/searcher.d.ts +34 -0
- package/dist/search/searcher.d.ts.map +1 -0
- package/dist/search/searcher.js +101 -0
- package/dist/search/searcher.js.map +1 -0
- package/dist/search/types.d.ts +81 -0
- package/dist/search/types.d.ts.map +1 -0
- package/dist/search/types.js +8 -0
- package/dist/search/types.js.map +1 -0
- package/dist/self-improve/index.d.ts +53 -0
- package/dist/self-improve/index.d.ts.map +1 -0
- package/dist/self-improve/index.js +136 -0
- package/dist/self-improve/index.js.map +1 -0
- package/dist/semantic-diff/index.d.ts +31 -0
- package/dist/semantic-diff/index.d.ts.map +1 -0
- package/dist/semantic-diff/index.js +215 -0
- package/dist/semantic-diff/index.js.map +1 -0
- package/dist/testing/index.d.ts +67 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +76 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/vitest-helpers.d.ts +26 -0
- package/dist/testing/vitest-helpers.d.ts.map +1 -0
- package/dist/testing/vitest-helpers.js +37 -0
- package/dist/testing/vitest-helpers.js.map +1 -0
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/remote-query.d.ts +40 -0
- package/dist/tools/remote-query.d.ts.map +1 -0
- package/dist/tools/remote-query.js +71 -0
- package/dist/tools/remote-query.js.map +1 -0
- package/dist/tracing/index.d.ts +39 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +70 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/trajectory.d.ts +65 -0
- package/dist/trajectory.d.ts.map +1 -0
- package/dist/trajectory.js +126 -0
- package/dist/trajectory.js.map +1 -0
- package/dist/trust/index.d.ts +34 -0
- package/dist/trust/index.d.ts.map +1 -0
- package/dist/trust/index.js +78 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/types.d.ts +144 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -11
- package/dist/types.js.map +1 -1
- package/package.json +1 -3
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity-Level Semantic Diff
|
|
3
|
+
*
|
|
4
|
+
* Classifies affected symbols into cosmetic (whitespace/comments/formatting),
|
|
5
|
+
* logic (actual behavior change), or renamed (name changed, body equivalent).
|
|
6
|
+
*
|
|
7
|
+
* Operates as a post-processing step on top of diff-mapper output.
|
|
8
|
+
* Uses regex heuristics — no AST required for v1.
|
|
9
|
+
*
|
|
10
|
+
* Pure functions with no side effects.
|
|
11
|
+
*/
|
|
12
|
+
import { ENTITY_CHANGE_KIND } from './types.js';
|
|
13
|
+
// ─── Constants ────────────────────────────────────────────────
|
|
14
|
+
const DEFAULT_SIMILARITY_THRESHOLD = 0.9;
|
|
15
|
+
/**
|
|
16
|
+
* Patterns that indicate a line is cosmetic (not a logic change).
|
|
17
|
+
* Applied to the content portion of a diff line (after the +/- prefix).
|
|
18
|
+
*/
|
|
19
|
+
const COSMETIC_LINE_PATTERNS = [
|
|
20
|
+
/^\s*$/, // blank / whitespace-only
|
|
21
|
+
/^\s*\/\//, // single-line comment (JS/TS/Go/Java/C)
|
|
22
|
+
/^\s*#/, // comment (Python/Ruby/Shell)
|
|
23
|
+
/^\s*\/?\*/, // block comment line (/* ... */ or * continuation)
|
|
24
|
+
/^\s*\*\/\s*$/, // block comment end
|
|
25
|
+
/^\s*"""/, // Python docstring delimiter
|
|
26
|
+
/^\s*'''/, // Python docstring delimiter (single-quote)
|
|
27
|
+
];
|
|
28
|
+
// ─── Extract Diff Lines ───────────────────────────────────────
|
|
29
|
+
/**
|
|
30
|
+
* Extract the actual addition/deletion lines from a diff that fall
|
|
31
|
+
* within a symbol's line range (new-side lines for +, old-side for -).
|
|
32
|
+
*
|
|
33
|
+
* Walks the diff content, tracking the current new-side line number
|
|
34
|
+
* via hunk headers and line prefixes, and collects lines that overlap
|
|
35
|
+
* with the symbol's [startLine, endLine] range.
|
|
36
|
+
*
|
|
37
|
+
* @param diffContent - Raw unified diff content for a single file
|
|
38
|
+
* @param symbol - The symbol whose range to extract lines for
|
|
39
|
+
* @returns Array of raw diff lines (with +/- prefix) within the symbol range
|
|
40
|
+
*/
|
|
41
|
+
export function extractEntityDiffLines(diffContent, symbol) {
|
|
42
|
+
const lines = diffContent.split('\n');
|
|
43
|
+
const result = [];
|
|
44
|
+
let currentNewLine = 0;
|
|
45
|
+
let currentOldLine = 0;
|
|
46
|
+
let inHunk = false;
|
|
47
|
+
const HUNK_RE = /^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/;
|
|
48
|
+
for (const line of lines) {
|
|
49
|
+
const hunkMatch = HUNK_RE.exec(line);
|
|
50
|
+
if (hunkMatch) {
|
|
51
|
+
currentOldLine = Number.parseInt(hunkMatch[1], 10);
|
|
52
|
+
currentNewLine = Number.parseInt(hunkMatch[2], 10);
|
|
53
|
+
inHunk = true;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (!inHunk)
|
|
57
|
+
continue;
|
|
58
|
+
if (line.startsWith('+') && !line.startsWith('+++')) {
|
|
59
|
+
// Addition — tracked on new-side line number
|
|
60
|
+
if (currentNewLine >= symbol.startLine && currentNewLine <= symbol.endLine) {
|
|
61
|
+
result.push(line);
|
|
62
|
+
}
|
|
63
|
+
currentNewLine++;
|
|
64
|
+
}
|
|
65
|
+
else if (line.startsWith('-') && !line.startsWith('---')) {
|
|
66
|
+
// Deletion — tracked on old-side line number but we include if
|
|
67
|
+
// it maps to the symbol's range (using new-side context position)
|
|
68
|
+
if (currentOldLine >= symbol.startLine && currentOldLine <= symbol.endLine) {
|
|
69
|
+
result.push(line);
|
|
70
|
+
}
|
|
71
|
+
currentOldLine++;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Context line — advances both counters
|
|
75
|
+
currentNewLine++;
|
|
76
|
+
currentOldLine++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
// ─── Classification ───────────────────────────────────────────
|
|
82
|
+
/**
|
|
83
|
+
* Check if a diff line (after removing the +/- prefix) is cosmetic.
|
|
84
|
+
* A line is cosmetic if it's whitespace-only, a comment, or formatting.
|
|
85
|
+
*/
|
|
86
|
+
function isCosmeticLine(diffLine) {
|
|
87
|
+
// Strip the leading +/- prefix to get the actual content
|
|
88
|
+
const content = diffLine.slice(1);
|
|
89
|
+
return COSMETIC_LINE_PATTERNS.some((pattern) => pattern.test(content));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Classify affected symbols into cosmetic or logic changes based on
|
|
93
|
+
* their diff lines.
|
|
94
|
+
*
|
|
95
|
+
* A change is `cosmetic` if ALL diff lines within the entity are cosmetic
|
|
96
|
+
* (whitespace, comments, formatting). Otherwise it's `logic`.
|
|
97
|
+
*
|
|
98
|
+
* @param affectedSymbols - Symbols affected by the diff (from mapDiffToSymbols)
|
|
99
|
+
* @param diffContent - Raw unified diff content for the file
|
|
100
|
+
* @returns Array of EntityChange with classification
|
|
101
|
+
*/
|
|
102
|
+
export function classifyEntityChanges(affectedSymbols, diffContent) {
|
|
103
|
+
return affectedSymbols.map((affected) => {
|
|
104
|
+
const diffLines = extractEntityDiffLines(diffContent, affected.symbol);
|
|
105
|
+
// No diff lines within range → default to logic (conservative)
|
|
106
|
+
if (diffLines.length === 0) {
|
|
107
|
+
return {
|
|
108
|
+
symbol: affected.symbol,
|
|
109
|
+
kind: ENTITY_CHANGE_KIND.LOGIC,
|
|
110
|
+
diffLines,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const allCosmetic = diffLines.every(isCosmeticLine);
|
|
114
|
+
return {
|
|
115
|
+
symbol: affected.symbol,
|
|
116
|
+
kind: allCosmetic ? ENTITY_CHANGE_KIND.COSMETIC : ENTITY_CHANGE_KIND.LOGIC,
|
|
117
|
+
diffLines,
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// ─── Rename Detection ─────────────────────────────────────────
|
|
122
|
+
/**
|
|
123
|
+
* Normalize a source body for comparison: strip comments, collapse
|
|
124
|
+
* whitespace, remove blank lines.
|
|
125
|
+
*/
|
|
126
|
+
function normalizeBody(body) {
|
|
127
|
+
return body
|
|
128
|
+
.split('\n')
|
|
129
|
+
.map((line) => line.trim())
|
|
130
|
+
.filter((line) => line.length > 0)
|
|
131
|
+
.filter((line) => !COSMETIC_LINE_PATTERNS.some((p) => p.test(line)))
|
|
132
|
+
.join('\n')
|
|
133
|
+
.replace(/\s+/g, ' ')
|
|
134
|
+
.trim();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Compute similarity ratio between two strings (0.0–1.0).
|
|
138
|
+
* Uses a simple longest-common-subsequence ratio approach.
|
|
139
|
+
* Returns 1.0 for identical strings, 0.0 for completely different.
|
|
140
|
+
*/
|
|
141
|
+
function computeSimilarity(a, b) {
|
|
142
|
+
if (a === b)
|
|
143
|
+
return 1.0;
|
|
144
|
+
if (a.length === 0 || b.length === 0)
|
|
145
|
+
return 0.0;
|
|
146
|
+
const maxLen = Math.max(a.length, b.length);
|
|
147
|
+
// For performance, use character-level comparison for short strings
|
|
148
|
+
// and a simplified ratio for longer ones
|
|
149
|
+
let matches = 0;
|
|
150
|
+
const shorter = a.length <= b.length ? a : b;
|
|
151
|
+
const longer = a.length > b.length ? a : b;
|
|
152
|
+
// Count matching characters at same positions
|
|
153
|
+
const minLen = shorter.length;
|
|
154
|
+
for (let i = 0; i < minLen; i++) {
|
|
155
|
+
if (shorter[i] === longer[i])
|
|
156
|
+
matches++;
|
|
157
|
+
}
|
|
158
|
+
return matches / maxLen;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Detect renamed entities by matching removed symbols with added symbols
|
|
162
|
+
* that have similar bodies.
|
|
163
|
+
*
|
|
164
|
+
* @param removedSymbols - Symbols present in old version but not in new
|
|
165
|
+
* @param addedSymbols - Symbols present in new version but not in old
|
|
166
|
+
* @param oldSource - Full source of the old file version
|
|
167
|
+
* @param newSource - Full source of the new file version
|
|
168
|
+
* @param options - Configuration options
|
|
169
|
+
* @returns Array of rename matches
|
|
170
|
+
*/
|
|
171
|
+
export function detectRenames(removedSymbols, addedSymbols, oldSource, newSource, options) {
|
|
172
|
+
const threshold = options?.similarityThreshold ?? DEFAULT_SIMILARITY_THRESHOLD;
|
|
173
|
+
const renames = [];
|
|
174
|
+
const matchedAdded = new Set();
|
|
175
|
+
const oldLines = oldSource.split('\n');
|
|
176
|
+
const newLines = newSource.split('\n');
|
|
177
|
+
for (const removed of removedSymbols) {
|
|
178
|
+
// Skip the first line (declaration/signature contains the name) to compare body only
|
|
179
|
+
const oldBodyStart = Math.min(removed.startLine, removed.endLine);
|
|
180
|
+
const oldBody = normalizeBody(oldLines.slice(oldBodyStart, removed.endLine).join('\n'));
|
|
181
|
+
if (oldBody.length === 0)
|
|
182
|
+
continue;
|
|
183
|
+
let bestMatch;
|
|
184
|
+
for (let i = 0; i < addedSymbols.length; i++) {
|
|
185
|
+
if (matchedAdded.has(i))
|
|
186
|
+
continue;
|
|
187
|
+
const added = addedSymbols[i];
|
|
188
|
+
// Must be same kind (function→function, class→class)
|
|
189
|
+
if (added.kind !== removed.kind)
|
|
190
|
+
continue;
|
|
191
|
+
// Skip the first line (declaration/signature contains the name) to compare body only
|
|
192
|
+
const newBodyStart = Math.min(added.startLine, added.endLine);
|
|
193
|
+
const newBody = normalizeBody(newLines.slice(newBodyStart, added.endLine).join('\n'));
|
|
194
|
+
if (newBody.length === 0)
|
|
195
|
+
continue;
|
|
196
|
+
const similarity = computeSimilarity(oldBody, newBody);
|
|
197
|
+
if (similarity >= threshold && (!bestMatch || similarity > bestMatch.similarity)) {
|
|
198
|
+
bestMatch = { index: i, similarity, symbol: added };
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (bestMatch) {
|
|
202
|
+
matchedAdded.add(bestMatch.index);
|
|
203
|
+
renames.push({
|
|
204
|
+
oldName: removed.name,
|
|
205
|
+
newName: bestMatch.symbol.name,
|
|
206
|
+
similarity: bestMatch.similarity,
|
|
207
|
+
symbol: bestMatch.symbol,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return renames;
|
|
212
|
+
}
|
|
213
|
+
// ─── Filtering ────────────────────────────────────────────────
|
|
214
|
+
/**
|
|
215
|
+
* Filter entity changes to only those with logic changes.
|
|
216
|
+
* Cosmetic and renamed entities are excluded.
|
|
217
|
+
*
|
|
218
|
+
* @param changes - Classified entity changes
|
|
219
|
+
* @returns Only entities with `logic` classification
|
|
220
|
+
*/
|
|
221
|
+
export function filterLogicChanges(changes) {
|
|
222
|
+
return changes.filter((c) => c.kind === ENTITY_CHANGE_KIND.LOGIC);
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=entity-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-diff.js","sourceRoot":"","sources":["../../src/scope/entity-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/scope/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AA+DxE;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/scope/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AA+DxE;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,UAAU,EAAE,CAaxF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/scope/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyBH,MAAM,YAAY,GAA4C;IAC5D,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;QACrD,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;QACrD,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,qBAAqB,CAAC;QAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,+CAA+C;QACjF,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,EAAE,EAAE;QACF,SAAS,EAAE,CAAC,sBAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,cAAc;QAC7C,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,UAAU,EAAE,CAAC,kBAAkB,CAAC,EAAE,iBAAiB;QACnD,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;CACF,CAAC;AAEF,kEAAkE;AAElE;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/scope/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyBH,MAAM,YAAY,GAA4C;IAC5D,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;QACrD,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,UAAU,EAAE,CAAC,uBAAuB,CAAC;QACrC,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;QACrD,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,qBAAqB,CAAC;QAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,+CAA+C;QACjF,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,EAAE,EAAE;QACF,SAAS,EAAE,CAAC,sBAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,cAAc;QAC7C,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,UAAU,EAAE,CAAC,kBAAkB,CAAC,EAAE,iBAAiB;QACnD,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM;KAClB;CACF,CAAC;AAEF,kEAAkE;AAElE;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAU,EAAE,QAAuB;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kEAAkE;AAElE,SAAS,qBAAqB,CAC5B,IAAU,EACV,MAAwB,EACxB,QAAuB,EACvB,OAAqB,EACrB,eAAmC;IAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAE3B,8BAA8B;IAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAE/C,gCAAgC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;YAChE,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,KAAK,EAAE,CAAC;wBACV,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,CAAC,0CAA0C;QACpD,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IACE,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,CAAC;QACxD,CAAC,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,KAAK,sBAAsB,CAAC,EAC3E,CAAC;QACD,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,0CAA0C;IAC1C,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,IAAI,QAAQ,KAAK,QAAQ,IAAI,eAAe,IAAI,QAAQ,KAAK,qBAAqB,EAAE,CAAC;QACnF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,IAAU,EACV,MAAwB,EACxB,QAAuB,EACvB,OAAqB,EACrB,SAAiB;IAEjB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrF,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,IAAI,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO;IACT,CAAC;IAED,iEAAiE;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAU,EAAE,OAAqB;IACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,UAAU,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,QAAQ,IAAI,SAAS,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrD,gEAAgE;gBAChE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,kEAAkE;AAElE,SAAS,gBAAgB,CAAC,IAAU,EAAE,MAAwB,EAAE,OAAqB;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAE3B,IAAI,QAAQ,KAAK,sBAAsB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAA8B,CAAC;QAEnC,IAAI,QAAQ,EAAE,CAAC;YACb,6CAA6C;YAC7C,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QAC3C,kDAAkD;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAe,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;oBACpF,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,IACE,QAAQ,KAAK,sBAAsB;QACnC,QAAQ,KAAK,oBAAoB;QACjC,QAAQ,KAAK,kBAAkB,EAC/B,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,CAAC;gBACV,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAc;IAC3C,mGAAmG;IACnG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACrC,qBAAqB;oBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB;4BAAE,OAAO,KAAK,CAAC,IAAI,CAAC;oBAC3D,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAC/C,OAAO,QAAQ,CAAC,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kEAAkE;AAElE,SAAS,WAAW,CAAC,IAAU,EAAE,SAAiB,EAAE,SAAwB;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO,QAAQ,EAAE,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,IAAgB,EAAE,IAAU,EAAE,MAAe;IAC9E,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,sDAAsD;QACtD,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;QACrC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACjC,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC"}
|
package/dist/scope/index.d.ts
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
* Extracts symbol definitions, maps diff changes to affected symbols,
|
|
6
6
|
* and builds focused review context.
|
|
7
7
|
*/
|
|
8
|
-
export type { AffectedSymbol, DiffHunk,
|
|
8
|
+
export type { AffectedSymbol, DiffHunk, EntityChange, EntityChangeKind, EntityDiffOptions, RenameMatch, ScopedFile, ScopeLanguage, SymbolInfo, SymbolKind, } from './types.js';
|
|
9
|
+
export { ENTITY_CHANGE_KIND } from './types.js';
|
|
9
10
|
export { buildScopedContext } from './context-builder.js';
|
|
10
11
|
export { mapDiffToSymbols, parseHunks } from './diff-mapper.js';
|
|
12
|
+
export { classifyEntityChanges, detectRenames, extractEntityDiffLines, filterLogicChanges, } from './entity-diff.js';
|
|
11
13
|
export { extractSymbolsFromTree } from './extractor.js';
|
|
12
14
|
export { initParser, loadLanguage, parseSource, resetParser, resolveGrammarPath, } from './parser.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scope/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,YAAY,EACV,cAAc,EACd,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scope/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,YAAY,EACV,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
|
package/dist/scope/index.js
CHANGED
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* Extracts symbol definitions, maps diff changes to affected symbols,
|
|
6
6
|
* and builds focused review context.
|
|
7
7
|
*/
|
|
8
|
+
export { ENTITY_CHANGE_KIND } from './types.js';
|
|
8
9
|
// ─── Context Builder ───────────────────────────────────────────
|
|
9
10
|
export { buildScopedContext } from './context-builder.js';
|
|
10
11
|
// ─── Diff Mapper ───────────────────────────────────────────────
|
|
11
12
|
export { mapDiffToSymbols, parseHunks } from './diff-mapper.js';
|
|
13
|
+
// ─── Entity Diff ──────────────────────────────────────────────
|
|
14
|
+
export { classifyEntityChanges, detectRenames, extractEntityDiffLines, filterLogicChanges, } from './entity-diff.js';
|
|
12
15
|
// ─── Symbol Extractor ──────────────────────────────────────────
|
|
13
16
|
export { extractSymbolsFromTree } from './extractor.js';
|
|
14
17
|
// ─── Parser ────────────────────────────────────────────────────
|
package/dist/scope/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scope/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scope/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,kEAAkE;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,kEAAkE;AAElE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhE,iEAAiE;AAEjE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,kEAAkE;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,kEAAkE;AAElE,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
|
package/dist/scope/parser.d.ts
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* for subsequent calls. WASM grammars are loaded from the
|
|
9
9
|
* `tree-sitter-wasms` package.
|
|
10
10
|
*/
|
|
11
|
-
import { Language } from 'web-tree-sitter';
|
|
12
11
|
import type { Tree } from 'web-tree-sitter';
|
|
12
|
+
import { Language } from 'web-tree-sitter';
|
|
13
13
|
import type { ScopeLanguage } from './types.js';
|
|
14
14
|
/**
|
|
15
15
|
* Initialize the tree-sitter WASM runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/scope/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/scope/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAU,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWhD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAIhD;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQtE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CASpE;AAYD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAW9E;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|
package/dist/scope/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/scope/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/scope/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,kEAAkE;AAElE,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;AAElD,kEAAkE;AAElE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,WAAW;QAAE,OAAO;IACxB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,UAAU,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,QAAkB;IAC5D,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AAEjE,mEAAmE;AACnE,MAAM,kBAAkB,GAAkC;IACxD,UAAU,EAAE,6BAA6B;IACzC,UAAU,EAAE,6BAA6B;IACzC,MAAM,EAAE,yBAAyB;IACjC,EAAE,EAAE,qBAAqB;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAuB;IACxD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,WAAW,GAAG,KAAK,CAAC;IACpB,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/scope/types.d.ts
CHANGED
|
@@ -43,6 +43,38 @@ export interface AffectedSymbol {
|
|
|
43
43
|
/** Which hunks overlap with this symbol */
|
|
44
44
|
overlappingHunks: DiffHunk[];
|
|
45
45
|
}
|
|
46
|
+
/** Classification of how an entity was changed. */
|
|
47
|
+
export declare const ENTITY_CHANGE_KIND: {
|
|
48
|
+
readonly COSMETIC: "cosmetic";
|
|
49
|
+
readonly LOGIC: "logic";
|
|
50
|
+
readonly RENAMED: "renamed";
|
|
51
|
+
};
|
|
52
|
+
export type EntityChangeKind = (typeof ENTITY_CHANGE_KIND)[keyof typeof ENTITY_CHANGE_KIND];
|
|
53
|
+
/** An entity with its classified change type and relevant diff lines. */
|
|
54
|
+
export interface EntityChange {
|
|
55
|
+
/** The affected symbol */
|
|
56
|
+
symbol: SymbolInfo;
|
|
57
|
+
/** Classification of the change */
|
|
58
|
+
kind: EntityChangeKind;
|
|
59
|
+
/** Raw diff lines (+/-) within this entity's range */
|
|
60
|
+
diffLines: string[];
|
|
61
|
+
}
|
|
62
|
+
/** A detected rename: old name removed, new name added, body similar. */
|
|
63
|
+
export interface RenameMatch {
|
|
64
|
+
/** Original entity name */
|
|
65
|
+
oldName: string;
|
|
66
|
+
/** New entity name */
|
|
67
|
+
newName: string;
|
|
68
|
+
/** Body similarity ratio (0.0–1.0) */
|
|
69
|
+
similarity: number;
|
|
70
|
+
/** The new symbol (post-rename) */
|
|
71
|
+
symbol: SymbolInfo;
|
|
72
|
+
}
|
|
73
|
+
/** Options for entity diff classification. */
|
|
74
|
+
export interface EntityDiffOptions {
|
|
75
|
+
/** Minimum body similarity to consider a rename (0.0–1.0). Default: 0.9 */
|
|
76
|
+
similarityThreshold?: number;
|
|
77
|
+
}
|
|
46
78
|
/** A file with its affected symbols and source content, ready for scoped review. */
|
|
47
79
|
export interface ScopedFile {
|
|
48
80
|
/** Path to the file (relative or absolute) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scope/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AAI1E,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvE,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC;IAEjB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,yCAAyC;AACzC,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,UAAU,CAAC;IAEnB,2CAA2C;IAC3C,gBAAgB,EAAE,QAAQ,EAAE,CAAC;CAC9B;AAID,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scope/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AAI1E,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvE,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC;IAEjB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,yCAAyC;AACzC,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,UAAU,CAAC;IAEnB,2CAA2C;IAC3C,gBAAgB,EAAE,QAAQ,EAAE,CAAC;CAC9B;AAID,mDAAmD;AACnD,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE5F,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;IAEnB,mCAAmC;IACnC,IAAI,EAAE,gBAAgB,CAAC;IAEvB,sDAAsD;IACtD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAEhB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAEhB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
|
package/dist/scope/types.js
CHANGED
|
@@ -4,5 +4,11 @@
|
|
|
4
4
|
* Defines the core data structures for tree-sitter based
|
|
5
5
|
* symbol-level scoping of code reviews.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
// ─── Entity Change Types ──────────────────────────────────────
|
|
8
|
+
/** Classification of how an entity was changed. */
|
|
9
|
+
export const ENTITY_CHANGE_KIND = {
|
|
10
|
+
COSMETIC: 'cosmetic',
|
|
11
|
+
LOGIC: 'logic',
|
|
12
|
+
RENAMED: 'renamed',
|
|
13
|
+
};
|
|
8
14
|
//# sourceMappingURL=types.js.map
|
package/dist/scope/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/scope/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/scope/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgEH,iEAAiE;AAEjE,mDAAmD;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACV,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Search Module
|
|
3
|
+
*
|
|
4
|
+
* BM25-based search over historical review comments and PR descriptions.
|
|
5
|
+
* Enables reviewers to query past reviews using natural language, e.g.,
|
|
6
|
+
* "memory leak in connection pool" → finds related past findings.
|
|
7
|
+
*/
|
|
8
|
+
export type { BM25Params, IndexSnapshot, SearchDocument, SearchDocumentSource, SearchOptions, SearchResult, TermPosting, TermStats, } from './types.js';
|
|
9
|
+
export { SearchIndexer, STOP_WORDS, tokenize } from './indexer.js';
|
|
10
|
+
export { SearchEngine } from './searcher.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Search Module
|
|
3
|
+
*
|
|
4
|
+
* BM25-based search over historical review comments and PR descriptions.
|
|
5
|
+
* Enables reviewers to query past reviews using natural language, e.g.,
|
|
6
|
+
* "memory leak in connection pool" → finds related past findings.
|
|
7
|
+
*/
|
|
8
|
+
export { SearchIndexer, STOP_WORDS, tokenize } from './indexer.js';
|
|
9
|
+
export { SearchEngine } from './searcher.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Indexer — builds and maintains an inverted index for BM25 search.
|
|
3
|
+
*
|
|
4
|
+
* Tokenizes documents, builds an inverted index with positional data,
|
|
5
|
+
* and supports incremental indexing (add/remove documents).
|
|
6
|
+
* No external dependencies — pure TypeScript implementation.
|
|
7
|
+
*/
|
|
8
|
+
import type { IndexSnapshot, SearchDocument, TermStats } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Common English stop words to exclude from indexing.
|
|
11
|
+
* Keeps the index lean and improves search relevance.
|
|
12
|
+
*/
|
|
13
|
+
export declare const STOP_WORDS: Set<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Tokenize text into lowercase terms, filtering stop words and short tokens.
|
|
16
|
+
*
|
|
17
|
+
* @param text - Raw text to tokenize.
|
|
18
|
+
* @returns Array of normalized tokens in order of appearance.
|
|
19
|
+
*/
|
|
20
|
+
export declare function tokenize(text: string): string[];
|
|
21
|
+
export declare class SearchIndexer {
|
|
22
|
+
/** Inverted index: term -> posting list with positions. */
|
|
23
|
+
private terms;
|
|
24
|
+
/** Per-document term counts for BM25 length normalization. */
|
|
25
|
+
private docLengths;
|
|
26
|
+
/** Stored documents for retrieval. */
|
|
27
|
+
private documents;
|
|
28
|
+
/** Running sum of all document lengths for avgDocLength. */
|
|
29
|
+
private totalTerms;
|
|
30
|
+
/** Number of indexed documents. */
|
|
31
|
+
get totalDocs(): number;
|
|
32
|
+
/** Average document length in terms. Returns 0 when empty. */
|
|
33
|
+
get avgDocLength(): number;
|
|
34
|
+
/**
|
|
35
|
+
* Index a single document.
|
|
36
|
+
* If the document ID already exists, it is replaced (remove + add).
|
|
37
|
+
*/
|
|
38
|
+
addDocument(doc: SearchDocument): void;
|
|
39
|
+
/**
|
|
40
|
+
* Index multiple documents at once.
|
|
41
|
+
*/
|
|
42
|
+
addDocuments(docs: SearchDocument[]): void;
|
|
43
|
+
/**
|
|
44
|
+
* Remove a document from the index by ID.
|
|
45
|
+
* Returns true if the document was found and removed.
|
|
46
|
+
*/
|
|
47
|
+
removeDocument(docId: string): boolean;
|
|
48
|
+
/** Check if a document ID is already indexed. */
|
|
49
|
+
hasDocument(docId: string): boolean;
|
|
50
|
+
/** Get a stored document by ID. */
|
|
51
|
+
getDocument(docId: string): SearchDocument | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Export the full index as a JSON-serializable snapshot.
|
|
54
|
+
* Use this for persistence (save to disk / SQLite / etc.).
|
|
55
|
+
*/
|
|
56
|
+
toSnapshot(): IndexSnapshot;
|
|
57
|
+
/**
|
|
58
|
+
* Restore the index from a snapshot.
|
|
59
|
+
* Clears any existing state before loading.
|
|
60
|
+
*/
|
|
61
|
+
static fromSnapshot(snapshot: IndexSnapshot): SearchIndexer;
|
|
62
|
+
/** Get term stats from the inverted index. */
|
|
63
|
+
getTermStats(term: string): TermStats | undefined;
|
|
64
|
+
/** Get the term count for a specific document. */
|
|
65
|
+
getDocLength(docId: string): number;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/search/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAe,SAAS,EAAE,MAAM,YAAY,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,UAAU,aAKrB,CAAC;AAKH;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAID,qBAAa,aAAa;IACxB,2DAA2D;IAC3D,OAAO,CAAC,KAAK,CAAgC;IAE7C,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAA6B;IAE/C,sCAAsC;IACtC,OAAO,CAAC,SAAS,CAAqC;IAEtD,4DAA4D;IAC5D,OAAO,CAAC,UAAU,CAAK;IAIvB,mCAAmC;IACnC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,8DAA8D;IAC9D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IA0CtC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI;IAM1C;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IA0BtC,iDAAiD;IACjD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,mCAAmC;IACnC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAMtD;;;OAGG;IACH,UAAU,IAAI,aAAa;IA0B3B;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;IA0B3D,8CAA8C;IAC9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD,kDAAkD;IAClD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAGpC"}
|