codestrate 0.6.1 → 0.6.3
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/README.md +97 -101
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +54 -4
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +198 -119
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +0 -0
- package/dist/install.d.ts.map +0 -0
- package/dist/install.js +2 -2
- package/dist/install.js.map +1 -1
- package/dist/profiles.d.ts +28 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +89 -0
- package/dist/profiles.js.map +1 -0
- package/dist/schemas/index.d.ts +1441 -126
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +221 -10
- package/dist/schemas/index.js.map +1 -1
- package/dist/security/guard.d.ts +15 -2
- package/dist/security/guard.d.ts.map +1 -1
- package/dist/security/guard.js +42 -8
- package/dist/security/guard.js.map +1 -1
- package/dist/services/code-chunker.d.ts +50 -0
- package/dist/services/code-chunker.d.ts.map +1 -0
- package/dist/services/code-chunker.js +148 -0
- package/dist/services/code-chunker.js.map +1 -0
- package/dist/services/code-searcher.d.ts +6 -2
- package/dist/services/code-searcher.d.ts.map +1 -1
- package/dist/services/code-searcher.js +111 -17
- package/dist/services/code-searcher.js.map +1 -1
- package/dist/services/context-builder.d.ts +0 -11
- package/dist/services/context-builder.d.ts.map +1 -1
- package/dist/services/context-builder.js +74 -128
- package/dist/services/context-builder.js.map +1 -1
- package/dist/services/embedding-runtime.d.ts +41 -0
- package/dist/services/embedding-runtime.d.ts.map +1 -0
- package/dist/services/embedding-runtime.js +636 -0
- package/dist/services/embedding-runtime.js.map +1 -0
- package/dist/services/embedding.d.ts +79 -0
- package/dist/services/embedding.d.ts.map +1 -0
- package/dist/services/embedding.js +257 -0
- package/dist/services/embedding.js.map +1 -0
- package/dist/services/index-state.d.ts +74 -0
- package/dist/services/index-state.d.ts.map +1 -0
- package/dist/services/index-state.js +151 -0
- package/dist/services/index-state.js.map +1 -0
- package/dist/services/index-worker.d.ts +60 -0
- package/dist/services/index-worker.d.ts.map +1 -0
- package/dist/services/index-worker.js +182 -0
- package/dist/services/index-worker.js.map +1 -0
- package/dist/services/logger.d.ts +48 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +106 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/memory-store.d.ts +9 -7
- package/dist/services/memory-store.d.ts.map +1 -1
- package/dist/services/memory-store.js +93 -7
- package/dist/services/memory-store.js.map +1 -1
- package/dist/services/repository-parser.d.ts +0 -0
- package/dist/services/repository-parser.d.ts.map +0 -0
- package/dist/services/repository-parser.js +0 -0
- package/dist/services/repository-parser.js.map +0 -0
- package/dist/services/symbol-indexer.d.ts +0 -0
- package/dist/services/symbol-indexer.d.ts.map +1 -1
- package/dist/services/symbol-indexer.js +25 -13
- package/dist/services/symbol-indexer.js.map +1 -1
- package/dist/services/tree-sitter.d.ts +0 -0
- package/dist/services/tree-sitter.d.ts.map +0 -0
- package/dist/services/tree-sitter.js +0 -0
- package/dist/services/tree-sitter.js.map +0 -0
- package/dist/services/validation-runner.d.ts +0 -0
- package/dist/services/validation-runner.d.ts.map +1 -1
- package/dist/services/validation-runner.js +9 -9
- package/dist/services/validation-runner.js.map +1 -1
- package/dist/services/vector-indexer.d.ts +53 -0
- package/dist/services/vector-indexer.d.ts.map +1 -0
- package/dist/services/vector-indexer.js +230 -0
- package/dist/services/vector-indexer.js.map +1 -0
- package/dist/store/index.d.ts +0 -0
- package/dist/store/index.d.ts.map +0 -0
- package/dist/store/index.js +0 -0
- package/dist/store/index.js.map +0 -0
- package/dist/store/interface.d.ts +70 -1
- package/dist/store/interface.d.ts.map +1 -1
- package/dist/store/interface.js +0 -0
- package/dist/store/interface.js.map +0 -0
- package/dist/store/memory.d.ts +0 -0
- package/dist/store/memory.d.ts.map +0 -0
- package/dist/store/memory.js +0 -0
- package/dist/store/memory.js.map +0 -0
- package/dist/store/service.d.ts +49 -0
- package/dist/store/service.d.ts.map +1 -0
- package/dist/store/service.js +147 -0
- package/dist/store/service.js.map +1 -0
- package/dist/store/sqlite.d.ts +68 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +708 -58
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/vector-store.d.ts +66 -0
- package/dist/store/vector-store.d.ts.map +1 -0
- package/dist/store/vector-store.js +330 -0
- package/dist/store/vector-store.js.map +1 -0
- package/dist/tools/analyze-impact.d.ts +0 -0
- package/dist/tools/analyze-impact.d.ts.map +1 -1
- package/dist/tools/analyze-impact.js +101 -39
- package/dist/tools/analyze-impact.js.map +1 -1
- package/dist/tools/deep-explore.d.ts +0 -0
- package/dist/tools/deep-explore.d.ts.map +1 -1
- package/dist/tools/deep-explore.js +18 -4
- package/dist/tools/deep-explore.js.map +1 -1
- package/dist/tools/detect-cycles.d.ts +3 -0
- package/dist/tools/detect-cycles.d.ts.map +1 -0
- package/dist/tools/detect-cycles.js +61 -0
- package/dist/tools/detect-cycles.js.map +1 -0
- package/dist/tools/detect-dead-code.d.ts +0 -0
- package/dist/tools/detect-dead-code.d.ts.map +1 -1
- package/dist/tools/detect-dead-code.js +1 -0
- package/dist/tools/detect-dead-code.js.map +1 -1
- package/dist/tools/explore.d.ts +13 -0
- package/dist/tools/explore.d.ts.map +1 -1
- package/dist/tools/explore.js +122 -88
- package/dist/tools/explore.js.map +1 -1
- package/dist/tools/get-context.d.ts +15 -0
- package/dist/tools/get-context.d.ts.map +1 -1
- package/dist/tools/get-context.js +66 -61
- package/dist/tools/get-context.js.map +1 -1
- package/dist/tools/graph-explain.d.ts +3 -0
- package/dist/tools/graph-explain.d.ts.map +1 -0
- package/dist/tools/graph-explain.js +140 -0
- package/dist/tools/graph-explain.js.map +1 -0
- package/dist/tools/graph-stats.d.ts +3 -0
- package/dist/tools/graph-stats.d.ts.map +1 -0
- package/dist/tools/graph-stats.js +73 -0
- package/dist/tools/graph-stats.js.map +1 -0
- package/dist/tools/inspect-symbol.d.ts +10 -0
- package/dist/tools/inspect-symbol.d.ts.map +1 -1
- package/dist/tools/inspect-symbol.js +112 -101
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/ping.d.ts +0 -0
- package/dist/tools/ping.d.ts.map +1 -1
- package/dist/tools/ping.js +2 -3
- package/dist/tools/ping.js.map +1 -1
- package/dist/tools/profile.d.ts +9 -0
- package/dist/tools/profile.d.ts.map +1 -0
- package/dist/tools/profile.js +101 -0
- package/dist/tools/profile.js.map +1 -0
- package/dist/tools/query-graph.d.ts +3 -0
- package/dist/tools/query-graph.d.ts.map +1 -0
- package/dist/tools/query-graph.js +157 -0
- package/dist/tools/query-graph.js.map +1 -0
- package/dist/tools/recall-experience.d.ts +0 -0
- package/dist/tools/recall-experience.d.ts.map +1 -1
- package/dist/tools/recall-experience.js +5 -5
- package/dist/tools/recall-experience.js.map +1 -1
- package/dist/tools/record-experience.d.ts +0 -0
- package/dist/tools/record-experience.d.ts.map +1 -1
- package/dist/tools/record-experience.js +2 -5
- package/dist/tools/record-experience.js.map +1 -1
- package/dist/tools/reflect.d.ts +4 -0
- package/dist/tools/reflect.d.ts.map +1 -0
- package/dist/tools/reflect.js +99 -0
- package/dist/tools/reflect.js.map +1 -0
- package/dist/tools/register.d.ts +5 -2
- package/dist/tools/register.d.ts.map +1 -1
- package/dist/tools/register.js +31 -1
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/reindex.d.ts +0 -0
- package/dist/tools/reindex.d.ts.map +1 -1
- package/dist/tools/reindex.js +102 -21
- package/dist/tools/reindex.js.map +1 -1
- package/dist/tools/repo-overview.d.ts +0 -0
- package/dist/tools/repo-overview.d.ts.map +1 -1
- package/dist/tools/repo-overview.js +8 -6
- package/dist/tools/repo-overview.js.map +1 -1
- package/dist/tools/run-validation.d.ts +0 -0
- package/dist/tools/run-validation.d.ts.map +1 -1
- package/dist/tools/run-validation.js +15 -1
- package/dist/tools/run-validation.js.map +1 -1
- package/dist/tools/search-code.d.ts +0 -0
- package/dist/tools/search-code.d.ts.map +1 -1
- package/dist/tools/search-code.js +11 -4
- package/dist/tools/search-code.js.map +1 -1
- package/dist/tools/search-history.d.ts +0 -0
- package/dist/tools/search-history.d.ts.map +0 -0
- package/dist/tools/search-history.js +0 -0
- package/dist/tools/search-history.js.map +0 -0
- package/dist/tools/session-heartbeat.d.ts +0 -0
- package/dist/tools/session-heartbeat.d.ts.map +1 -1
- package/dist/tools/session-heartbeat.js +1 -0
- package/dist/tools/session-heartbeat.js.map +1 -1
- package/dist/tools/session-status.d.ts +0 -0
- package/dist/tools/session-status.d.ts.map +1 -1
- package/dist/tools/session-status.js +1 -0
- package/dist/tools/session-status.js.map +1 -1
- package/dist/tools/status.d.ts +0 -0
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +87 -24
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/trace-bfs.d.ts +13 -0
- package/dist/tools/trace-bfs.d.ts.map +1 -0
- package/dist/tools/trace-bfs.js +251 -0
- package/dist/tools/trace-bfs.js.map +1 -0
- package/dist/tools/trace-flow.d.ts +1 -1
- package/dist/tools/trace-flow.d.ts.map +1 -1
- package/dist/tools/trace-flow.js +113 -69
- package/dist/tools/trace-flow.js.map +1 -1
- package/dist/types.d.ts +75 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/grammars/tree-sitter-c.wasm +0 -0
- package/grammars/tree-sitter-cpp.wasm +0 -0
- package/grammars/tree-sitter-go.wasm +0 -0
- package/grammars/tree-sitter-java.wasm +0 -0
- package/grammars/tree-sitter-javascript.wasm +0 -0
- package/grammars/tree-sitter-python.wasm +0 -0
- package/grammars/tree-sitter-rust.wasm +0 -0
- package/grammars/tree-sitter-tsx.wasm +0 -0
- package/grammars/tree-sitter-typescript.wasm +0 -0
- package/package.json +8 -6
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* and related tests to identify affected modules.
|
|
6
6
|
*/
|
|
7
7
|
import { AnalyzeImpactSchema, AnalyzeImpactOutputSchema, ResponseFormat } from "../schemas/index.js";
|
|
8
|
-
import {
|
|
8
|
+
import { getSymbols, getRelations } from "../store/service.js";
|
|
9
9
|
import { asStructured } from "../types.js";
|
|
10
10
|
import { loadConfig, MAX_RESPONSE_CHARS } from "../constants.js";
|
|
11
11
|
import { registerCiTool } from "./register.js";
|
|
12
|
+
import { requireIndexReady, ciErrorToolResult, indexMeta, } from "../services/index-state.js";
|
|
12
13
|
export function registerAnalyzeImpact(server) {
|
|
13
14
|
registerCiTool(server, "ci_analyze_impact", {
|
|
14
15
|
title: "Analyze Impact",
|
|
@@ -18,53 +19,113 @@ export function registerAnalyzeImpact(server) {
|
|
|
18
19
|
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
19
20
|
}, async (params) => {
|
|
20
21
|
try {
|
|
22
|
+
const indexErr = requireIndexReady();
|
|
23
|
+
if (indexErr) {
|
|
24
|
+
return ciErrorToolResult(indexErr);
|
|
25
|
+
}
|
|
21
26
|
const config = loadConfig();
|
|
22
|
-
|
|
23
|
-
const
|
|
27
|
+
void config;
|
|
28
|
+
const affectedSymbolsSet = new Set();
|
|
29
|
+
const affectedFilesSet = new Set();
|
|
30
|
+
const testFilesSet = new Set();
|
|
31
|
+
const allSymbols = getSymbols();
|
|
32
|
+
const allRelations = getRelations();
|
|
33
|
+
// Build name→SymbolInfo map for O(1) lookup
|
|
34
|
+
const symByName = new Map();
|
|
35
|
+
for (const s of allSymbols)
|
|
36
|
+
symByName.set(s.name, s);
|
|
37
|
+
// Build caller/callee maps from in-memory allRelations (avoid N+1 SQL queries)
|
|
38
|
+
const callerMap = new Map();
|
|
39
|
+
const calleeMap = new Map();
|
|
40
|
+
for (const r of allRelations) {
|
|
41
|
+
if (r.kind !== "calls")
|
|
42
|
+
continue;
|
|
43
|
+
if (!callerMap.has(r.target))
|
|
44
|
+
callerMap.set(r.target, []);
|
|
45
|
+
callerMap.get(r.target).push(r);
|
|
46
|
+
if (!calleeMap.has(r.source))
|
|
47
|
+
calleeMap.set(r.source, []);
|
|
48
|
+
calleeMap.get(r.source).push(r);
|
|
49
|
+
}
|
|
24
50
|
for (const file of params.files) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
51
|
+
const normalized = file.replace(/\\/g, "/");
|
|
52
|
+
const basename = normalized.split("/").pop() ?? normalized;
|
|
53
|
+
const fileSymbols = allSymbols.filter((s) => s.file === normalized ||
|
|
54
|
+
s.file.endsWith("/" + basename) ||
|
|
55
|
+
s.file.endsWith(basename) ||
|
|
56
|
+
s.file.includes(normalized));
|
|
57
|
+
for (const sym of fileSymbols) {
|
|
58
|
+
affectedSymbolsSet.add(sym.name);
|
|
59
|
+
for (const r of callerMap.get(sym.name) ?? []) {
|
|
60
|
+
affectedSymbolsSet.add(r.source);
|
|
61
|
+
const srcSym = symByName.get(r.source);
|
|
62
|
+
if (srcSym)
|
|
63
|
+
affectedFilesSet.add(srcSym.file);
|
|
64
|
+
}
|
|
65
|
+
for (const r of calleeMap.get(sym.name) ?? []) {
|
|
66
|
+
affectedSymbolsSet.add(r.target);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Relations where source/target file matches changed file
|
|
70
|
+
for (const rel of allRelations) {
|
|
71
|
+
const src = symByName.get(rel.source);
|
|
72
|
+
const tgt = symByName.get(rel.target);
|
|
73
|
+
const touches = (src && (src.file.endsWith(basename) || src.file.includes(normalized))) ||
|
|
74
|
+
(tgt && (tgt.file.endsWith(basename) || tgt.file.includes(normalized)));
|
|
75
|
+
if (touches) {
|
|
76
|
+
if (src)
|
|
77
|
+
affectedFilesSet.add(src.file);
|
|
78
|
+
if (tgt)
|
|
79
|
+
affectedFilesSet.add(tgt.file);
|
|
80
|
+
affectedSymbolsSet.add(rel.source);
|
|
81
|
+
affectedSymbolsSet.add(rel.target);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Stem-based fallback
|
|
85
|
+
const stem = basename.replace(/\.\w+$/, "");
|
|
28
86
|
const candidates = [
|
|
29
87
|
stem,
|
|
30
88
|
stem.charAt(0).toUpperCase() + stem.slice(1),
|
|
31
|
-
stem.replace(
|
|
89
|
+
stem.replace(/[-_](\w)/g, (_, c) => c.toUpperCase()),
|
|
32
90
|
];
|
|
33
|
-
// Check if any callers/callees reference symbols derived from this file
|
|
34
91
|
for (const candidate of candidates) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
for (const r of
|
|
38
|
-
|
|
39
|
-
affectedFiles.push(r.source);
|
|
40
|
-
}
|
|
41
|
-
for (const r of callees) {
|
|
42
|
-
if (!affectedFiles.includes(r.target))
|
|
43
|
-
affectedFiles.push(r.target);
|
|
44
|
-
}
|
|
92
|
+
for (const r of callerMap.get(candidate) ?? [])
|
|
93
|
+
affectedSymbolsSet.add(r.source);
|
|
94
|
+
for (const r of calleeMap.get(candidate) ?? [])
|
|
95
|
+
affectedSymbolsSet.add(r.target);
|
|
45
96
|
}
|
|
46
|
-
// Find related test files
|
|
47
97
|
if (params.includeTests) {
|
|
48
98
|
const testCandidates = [
|
|
49
99
|
file.replace(/\.(ts|js|tsx|jsx)$/, ".test.$1"),
|
|
50
100
|
file.replace(/\.(ts|js|tsx|jsx)$/, ".spec.$1"),
|
|
51
101
|
file.replace(/^src\//, "tests/"),
|
|
52
102
|
];
|
|
53
|
-
for (const tc of testCandidates)
|
|
54
|
-
|
|
55
|
-
|
|
103
|
+
for (const tc of testCandidates)
|
|
104
|
+
testFilesSet.add(tc);
|
|
105
|
+
for (const s of allSymbols) {
|
|
106
|
+
if ((/\.(test|spec)\./.test(s.file) || s.file.includes("/tests/")) &&
|
|
107
|
+
fileSymbols.some((fs) => s.calls?.includes(fs.name) || s.imports?.some((i) => i.includes(stem)))) {
|
|
108
|
+
testFilesSet.add(s.file);
|
|
109
|
+
}
|
|
56
110
|
}
|
|
57
111
|
}
|
|
58
112
|
}
|
|
59
|
-
const
|
|
60
|
-
|
|
113
|
+
for (const f of params.files)
|
|
114
|
+
affectedFilesSet.add(f);
|
|
115
|
+
const uniqueAffected = [...affectedFilesSet].slice(0, params.maxAffected);
|
|
116
|
+
const uniqueSymbols = [...affectedSymbolsSet].slice(0, params.maxAffected);
|
|
117
|
+
const uniqueTests = [...testFilesSet];
|
|
118
|
+
const meta = indexMeta();
|
|
119
|
+
const output = {
|
|
120
|
+
changedFiles: params.files,
|
|
121
|
+
affectedFiles: uniqueAffected,
|
|
122
|
+
affectedSymbols: uniqueSymbols,
|
|
123
|
+
testFiles: uniqueTests,
|
|
124
|
+
totalAffected: uniqueAffected.length + uniqueSymbols.length,
|
|
125
|
+
...meta,
|
|
126
|
+
partial: meta.partial,
|
|
127
|
+
};
|
|
61
128
|
if (params.responseFormat === ResponseFormat.JSON) {
|
|
62
|
-
const output = {
|
|
63
|
-
changedFiles: params.files,
|
|
64
|
-
affectedFiles: uniqueAffected,
|
|
65
|
-
testFiles: uniqueTests,
|
|
66
|
-
totalAffected: uniqueAffected.length,
|
|
67
|
-
};
|
|
68
129
|
return {
|
|
69
130
|
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
70
131
|
structuredContent: asStructured(output),
|
|
@@ -73,16 +134,22 @@ export function registerAnalyzeImpact(server) {
|
|
|
73
134
|
const lines = [
|
|
74
135
|
"# Impact Analysis",
|
|
75
136
|
`**Changed Files:** ${params.files.length}`,
|
|
76
|
-
`**Affected
|
|
137
|
+
`**Affected Files:** ${uniqueAffected.length}`,
|
|
138
|
+
`**Affected Symbols:** ${uniqueSymbols.length}`,
|
|
77
139
|
`**Related Tests:** ${uniqueTests.length}`,
|
|
78
140
|
"",
|
|
79
141
|
"## Changed Files",
|
|
80
142
|
...params.files.map((f) => `- \`${f}\``),
|
|
81
143
|
"",
|
|
82
|
-
"## Potentially Affected",
|
|
144
|
+
"## Potentially Affected Files",
|
|
83
145
|
...(uniqueAffected.length > 0
|
|
84
146
|
? uniqueAffected.map((f) => `- ${f}`)
|
|
85
|
-
: ["(none detected
|
|
147
|
+
: ["(none detected)"]),
|
|
148
|
+
"",
|
|
149
|
+
"## Affected Symbols",
|
|
150
|
+
...(uniqueSymbols.length > 0
|
|
151
|
+
? uniqueSymbols.map((s) => `- \`${s}\``)
|
|
152
|
+
: ["(none detected)"]),
|
|
86
153
|
];
|
|
87
154
|
if (uniqueTests.length > 0) {
|
|
88
155
|
lines.push("", "## Related Tests", ...uniqueTests.map((t) => `- \`${t}\``));
|
|
@@ -93,12 +160,7 @@ export function registerAnalyzeImpact(server) {
|
|
|
93
160
|
: text;
|
|
94
161
|
return {
|
|
95
162
|
content: [{ type: "text", text: truncated }],
|
|
96
|
-
structuredContent: asStructured(
|
|
97
|
-
changedFiles: params.files,
|
|
98
|
-
affectedFiles: uniqueAffected,
|
|
99
|
-
testFiles: uniqueTests,
|
|
100
|
-
totalAffected: uniqueAffected.length,
|
|
101
|
-
}),
|
|
163
|
+
structuredContent: asStructured(output),
|
|
102
164
|
};
|
|
103
165
|
}
|
|
104
166
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-impact.js","sourceRoot":"","sources":["../../src/tools/analyze-impact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"analyze-impact.js","sourceRoot":"","sources":["../../src/tools/analyze-impact.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-explore.d.ts","sourceRoot":"","sources":["../../src/tools/deep-explore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"deep-explore.d.ts","sourceRoot":"","sources":["../../src/tools/deep-explore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0PpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwQ3D"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { registerCiTool } from "./register.js";
|
|
2
2
|
import { DeepExploreSchema, DeepExploreOutputSchema, ResponseFormat, } from "../schemas/index.js";
|
|
3
|
-
import { findSymbols } from "../store/
|
|
3
|
+
import { findSymbols } from "../store/service.js";
|
|
4
4
|
import { getStore } from "../store/sqlite.js";
|
|
5
5
|
import { asStructured } from "../types.js";
|
|
6
6
|
import { loadConfig, MAX_RESPONSE_CHARS } from "../constants.js";
|
|
7
7
|
import { readFileSync, existsSync } from "fs";
|
|
8
|
-
import {
|
|
8
|
+
import { extname } from "path";
|
|
9
|
+
import { validateRepoPath } from "../security/guard.js";
|
|
9
10
|
import { initTreeSitter, getDeclarationRange } from "../services/tree-sitter.js";
|
|
10
11
|
// ─── Language detection ──────────────────────────────────
|
|
11
12
|
/** Map file extension → tree-sitter language key. */
|
|
@@ -72,7 +73,13 @@ function readSourceLines(file, line, contextLines = 40) {
|
|
|
72
73
|
const config = loadConfig();
|
|
73
74
|
if (!config.repoPath)
|
|
74
75
|
return null;
|
|
75
|
-
|
|
76
|
+
let fullPath;
|
|
77
|
+
try {
|
|
78
|
+
fullPath = validateRepoPath(file, config.repoPath);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
76
83
|
if (!existsSync(fullPath))
|
|
77
84
|
return null;
|
|
78
85
|
try {
|
|
@@ -199,6 +206,7 @@ export function registerDeepExplore(server) {
|
|
|
199
206
|
description: "One-call code understanding: search symbols by natural language or name, then return full source code, BFS call paths, and blast radius. Replaces 2-3 separate tool calls with one comprehensive response.",
|
|
200
207
|
inputSchema: DeepExploreSchema.shape,
|
|
201
208
|
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
209
|
+
profile: "full",
|
|
202
210
|
outputSchema: DeepExploreOutputSchema,
|
|
203
211
|
}, async (args) => {
|
|
204
212
|
try {
|
|
@@ -277,7 +285,13 @@ export function registerDeepExplore(server) {
|
|
|
277
285
|
sourceCode = undefined;
|
|
278
286
|
}
|
|
279
287
|
else {
|
|
280
|
-
|
|
288
|
+
let fullPath;
|
|
289
|
+
try {
|
|
290
|
+
fullPath = validateRepoPath(sym.file, repoPath);
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
281
295
|
if (existsSync(fullPath)) {
|
|
282
296
|
sourceCode = await readSourceBlock(fullPath, sym.file, sym.line) ?? undefined;
|
|
283
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-explore.js","sourceRoot":"","sources":["../../src/tools/deep-explore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deep-explore.js","sourceRoot":"","sources":["../../src/tools/deep-explore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-cycles.d.ts","sourceRoot":"","sources":["../../src/tools/detect-cycles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6D5D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { registerCiTool } from "./register.js";
|
|
2
|
+
import { DetectCyclesSchema, DetectCyclesOutputSchema } from "../schemas/index.js";
|
|
3
|
+
import { getStore } from "../store/sqlite.js";
|
|
4
|
+
import { asStructured } from "../types.js";
|
|
5
|
+
export function registerDetectCycles(server) {
|
|
6
|
+
registerCiTool(server, "ci_detect_cycles", {
|
|
7
|
+
title: "Detect Import Cycles",
|
|
8
|
+
description: "Detect circular dependencies in the dependency graph using recursive SQL CTE. Walks edges until it finds a node already visited (cycle detected). Returns each unique cycle path with node names and edge kind.",
|
|
9
|
+
inputSchema: DetectCyclesSchema,
|
|
10
|
+
outputSchema: DetectCyclesOutputSchema,
|
|
11
|
+
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
12
|
+
}, async (params) => {
|
|
13
|
+
try {
|
|
14
|
+
const store = getStore();
|
|
15
|
+
const cycles = store.detectCycles();
|
|
16
|
+
// Sort by cycle length descending
|
|
17
|
+
const sorted = [...cycles].sort((a, b) => b.length - a.length);
|
|
18
|
+
const limited = sorted.slice(0, params.maxResults);
|
|
19
|
+
const lines = [
|
|
20
|
+
`# Import Cycle Detection`,
|
|
21
|
+
``,
|
|
22
|
+
`**Total cycles found:** ${cycles.length}`,
|
|
23
|
+
`**Showing:** ${Math.min(limited.length, params.maxResults)} of ${cycles.length}`,
|
|
24
|
+
``,
|
|
25
|
+
];
|
|
26
|
+
if (cycles.length === 0) {
|
|
27
|
+
lines.push("_No circular dependencies detected. The dependency graph is acyclic._");
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
for (let i = 0; i < limited.length; i++) {
|
|
31
|
+
const c = limited[i];
|
|
32
|
+
lines.push(`### Cycle ${i + 1} (${c.length} nodes, kind: ${c.kind})`, ``);
|
|
33
|
+
lines.push("```");
|
|
34
|
+
lines.push(c.cycle.join(" → "));
|
|
35
|
+
lines.push("```", ``);
|
|
36
|
+
}
|
|
37
|
+
if (limited.length < cycles.length) {
|
|
38
|
+
lines.push(`_${cycles.length - limited.length} more cycles not shown. Increase maxResults to see more._`);
|
|
39
|
+
}
|
|
40
|
+
lines.push(``, `## Summary`, ``);
|
|
41
|
+
lines.push(`- **Total cycles:** ${cycles.length}`);
|
|
42
|
+
lines.push(`- **Worst cycle:** ${sorted[0]?.length ?? 0} nodes (${sorted[0]?.cycle[0] ?? "N/A"})`);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
46
|
+
structuredContent: asStructured({
|
|
47
|
+
totalCycles: cycles.length,
|
|
48
|
+
cycles: limited,
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
54
|
+
return {
|
|
55
|
+
content: [{ type: "text", text: `Cycle detection error: ${msg}` }],
|
|
56
|
+
isError: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=detect-cycles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-cycles.js","sourceRoot":"","sources":["../../src/tools/detect-cycles.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-dead-code.d.ts","sourceRoot":"","sources":["../../src/tools/detect-dead-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"detect-dead-code.d.ts","sourceRoot":"","sources":["../../src/tools/detect-dead-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmE9D"}
|
|
@@ -10,6 +10,7 @@ export function registerDetectDeadCode(server) {
|
|
|
10
10
|
inputSchema: DeadCodeSchema,
|
|
11
11
|
outputSchema: DeadCodeOutputSchema,
|
|
12
12
|
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
13
|
+
profile: "full",
|
|
13
14
|
}, async (params) => {
|
|
14
15
|
try {
|
|
15
16
|
const store = getStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-dead-code.js","sourceRoot":"","sources":["../../src/tools/detect-dead-code.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAC5C;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,oLAAoL;QACjM,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"detect-dead-code.js","sourceRoot":"","sources":["../../src/tools/detect-dead-code.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/explore.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
/** Handler exported for tests — same path as the registered MCP tool. */
|
|
3
|
+
export declare function handleExplore(args: {
|
|
4
|
+
query: string;
|
|
5
|
+
maxResults?: number;
|
|
6
|
+
responseFormat?: string;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
content: Array<{
|
|
9
|
+
type: "text";
|
|
10
|
+
text: string;
|
|
11
|
+
}>;
|
|
12
|
+
structuredContent?: Record<string, unknown>;
|
|
13
|
+
isError?: boolean;
|
|
14
|
+
}>;
|
|
2
15
|
export declare function registerExplore(server: McpServer): void;
|
|
3
16
|
//# sourceMappingURL=explore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore.d.ts","sourceRoot":"","sources":["../../src/tools/explore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"explore.d.ts","sourceRoot":"","sources":["../../src/tools/explore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,yEAAyE;AACzE,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CA6HD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAWvD"}
|