codestrate 0.3.0 → 0.5.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.
@@ -0,0 +1,418 @@
1
+ import { registerCiTool } from "./register.js";
2
+ import { DeepExploreSchema, DeepExploreOutputSchema, ResponseFormat, } from "../schemas/index.js";
3
+ import { findSymbols } from "../store/index.js";
4
+ import { getStore } from "../store/sqlite.js";
5
+ import { asStructured } from "../types.js";
6
+ import { loadConfig, MAX_RESPONSE_CHARS } from "../constants.js";
7
+ import { readFileSync, existsSync } from "fs";
8
+ import { resolve, extname } from "path";
9
+ import { initTreeSitter, getDeclarationRange } from "../services/tree-sitter.js";
10
+ // ─── Language detection ──────────────────────────────────
11
+ /** Map file extension → tree-sitter language key. */
12
+ const EXT_TO_LANG = {
13
+ ".ts": "typescript",
14
+ ".tsx": "typescript",
15
+ ".js": "typescript",
16
+ ".jsx": "typescript",
17
+ ".mjs": "typescript",
18
+ ".cjs": "typescript",
19
+ ".py": "python",
20
+ ".go": "go",
21
+ ".rs": "rust",
22
+ ".java": "java",
23
+ ".c": "c",
24
+ ".cpp": "cpp",
25
+ ".h": "c",
26
+ ".hpp": "cpp",
27
+ };
28
+ function detectLanguage(file) {
29
+ const ext = extname(file);
30
+ return EXT_TO_LANG[ext] ?? null;
31
+ }
32
+ /**
33
+ * Read exact declaration source using tree-sitter AST.
34
+ * Falls back to line-range heuristic when tree-sitter is unavailable.
35
+ *
36
+ * Ưu tiên dùng AST để lấy chính xác function/class body,
37
+ * thay vì ±N lines heuristic.
38
+ */
39
+ async function readSourceWithAST(fullPath, file, line) {
40
+ try {
41
+ const content = readFileSync(fullPath, "utf-8");
42
+ if (!content)
43
+ return null;
44
+ const lang = detectLanguage(file);
45
+ if (!lang)
46
+ throw new Error("unsupported language");
47
+ await initTreeSitter();
48
+ const range = getDeclarationRange(lang, content, line - 1);
49
+ if (range && range.startLine >= 1 && range.endLine >= range.startLine) {
50
+ const lines = content.split("\n");
51
+ const slice = lines.slice(range.startLine - 1, range.endLine);
52
+ const header = `--- ${file}:${range.startLine}-${range.endLine} (AST boundary) ---`;
53
+ const numbered = slice.map((l, i) => {
54
+ const lineNum = range.startLine + i;
55
+ const marker = lineNum === line ? ">" : " ";
56
+ return `${marker}${String(lineNum).padStart(4, " ")}| ${l}`;
57
+ });
58
+ return { sourceCode: header + "\n" + numbered.join("\n"), isPrecise: true };
59
+ }
60
+ throw new Error("could not determine declaration range");
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ }
66
+ // ─── Source code reader ──────────────────────────────────
67
+ /**
68
+ * Read source code around a symbol's location.
69
+ * Returns N lines context around the symbol (+/- contextLines).
70
+ */
71
+ function readSourceLines(file, line, contextLines = 40) {
72
+ const config = loadConfig();
73
+ if (!config.repoPath)
74
+ return null;
75
+ const fullPath = resolve(config.repoPath, file);
76
+ if (!existsSync(fullPath))
77
+ return null;
78
+ try {
79
+ const content = readFileSync(fullPath, "utf-8");
80
+ const lines = content.split("\n");
81
+ // Normalize line (1-indexed → 0-indexed)
82
+ const zeroIdx = Math.max(0, line - 1);
83
+ const start = Math.max(0, zeroIdx - contextLines);
84
+ const end = Math.min(lines.length, zeroIdx + contextLines);
85
+ const slice = lines.slice(start, end);
86
+ const header = `--- ${file}:${start + 1}-${end} (showing ${slice.length} lines around line ${line}) ---`;
87
+ // Add line numbers
88
+ const numbered = slice.map((l, i) => {
89
+ const lineNum = start + i + 1;
90
+ const marker = lineNum === line ? ">" : " ";
91
+ return `${marker}${String(lineNum).padStart(4, " ")}| ${l}`;
92
+ });
93
+ return header + "\n" + numbered.join("\n");
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ /**
100
+ * Read source block for a symbol: try tree-sitter AST first for
101
+ * precise declaration boundaries, fall back to ±40 line heuristic.
102
+ */
103
+ async function readSourceBlock(fullPath, file, line) {
104
+ // Try tree-sitter AST for precise declaration boundary
105
+ const astResult = await readSourceWithAST(fullPath, file, line);
106
+ if (astResult && astResult.isPrecise) {
107
+ return astResult.sourceCode;
108
+ }
109
+ // Fallback: heuristic ±40 lines
110
+ return readSourceLines(file, line, 40);
111
+ }
112
+ /**
113
+ * BFS forward from a node to find all callee paths up to depth.
114
+ */
115
+ function bfsCallPaths(store, fromNode, depth) {
116
+ const visited = new Set();
117
+ const calleeNames = new Set();
118
+ const paths = [];
119
+ const queue = [
120
+ { nodeId: fromNode.id, trail: [fromNode.name], d: 0 },
121
+ ];
122
+ visited.add(fromNode.id);
123
+ while (queue.length > 0) {
124
+ const { nodeId, trail, d } = queue.shift();
125
+ if (d >= depth)
126
+ continue;
127
+ const edges = store.getGraphEdges(nodeId, "outgoing");
128
+ for (const edge of edges) {
129
+ const targetNode = store.getGraphNode(edge.targetNodeId);
130
+ if (!targetNode)
131
+ continue;
132
+ calleeNames.add(targetNode.name);
133
+ const newTrail = [...trail, targetNode.name];
134
+ if (newTrail.length > 1) {
135
+ paths.push({
136
+ from: fromNode.name,
137
+ to: targetNode.name,
138
+ path: newTrail,
139
+ kind: edge.kind,
140
+ });
141
+ }
142
+ if (!visited.has(targetNode.id)) {
143
+ visited.add(targetNode.id);
144
+ if (d + 1 < depth) {
145
+ queue.push({ nodeId: targetNode.id, trail: newTrail, d: d + 1 });
146
+ }
147
+ }
148
+ }
149
+ }
150
+ return { callees: [...calleeNames], paths };
151
+ }
152
+ /**
153
+ * BFS backward from a node to find all callers (blast radius).
154
+ */
155
+ function bfsBlastRadius(store, fromNode, depth) {
156
+ const visited = new Set();
157
+ const directDependents = new Set();
158
+ const transitiveDependents = new Set();
159
+ const affectedFiles = new Set();
160
+ const queue = [
161
+ { nodeId: fromNode.id, d: 0 },
162
+ ];
163
+ visited.add(fromNode.id);
164
+ while (queue.length > 0) {
165
+ const { nodeId, d } = queue.shift();
166
+ const edges = store.getGraphEdges(nodeId, "incoming");
167
+ for (const edge of edges) {
168
+ const sourceNode = store.getGraphNode(edge.sourceNodeId);
169
+ if (!sourceNode)
170
+ continue;
171
+ if (sourceNode.file)
172
+ affectedFiles.add(sourceNode.file);
173
+ if (d === 0) {
174
+ directDependents.add(sourceNode.name);
175
+ }
176
+ else {
177
+ transitiveDependents.add(sourceNode.name);
178
+ }
179
+ if (!visited.has(sourceNode.id)) {
180
+ visited.add(sourceNode.id);
181
+ if (d + 1 < depth) {
182
+ queue.push({ nodeId: sourceNode.id, d: d + 1 });
183
+ }
184
+ }
185
+ }
186
+ }
187
+ return {
188
+ symbol: fromNode.name,
189
+ directDependents: [...directDependents],
190
+ transitiveDependents: [...transitiveDependents],
191
+ totalAffectedFiles: affectedFiles.size,
192
+ affectedFiles: [...affectedFiles],
193
+ };
194
+ }
195
+ // ─── Tool registration ───────────────────────────────────
196
+ export function registerDeepExplore(server) {
197
+ registerCiTool(server, "ci_deep_explore", {
198
+ title: "Deep Explore Codebase",
199
+ 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
+ inputSchema: DeepExploreSchema.shape,
201
+ annotations: { readOnlyHint: true, idempotentHint: true },
202
+ outputSchema: DeepExploreOutputSchema,
203
+ }, async (args) => {
204
+ try {
205
+ const input = args;
206
+ const query = input.query;
207
+ const maxSymbols = input.maxSymbols ?? 10;
208
+ const depth = input.depth ?? 2;
209
+ const includeSource = input.includeSource !== false;
210
+ const includeCallPaths = input.includeCallPaths !== false;
211
+ const includeBlastRadius = input.includeBlastRadius !== false;
212
+ // 1. Tìm symbols từ query
213
+ const rawSymbols = findSymbols(query).slice(0, maxSymbols);
214
+ let symbols = rawSymbols;
215
+ // Fallback: thử search qua SQLite graph nếu JSON store không có kết quả
216
+ if (symbols.length === 0) {
217
+ try {
218
+ const sqlStore = getStore();
219
+ const graphNodes = sqlStore.searchGraphNodesFTS(query, maxSymbols);
220
+ if (graphNodes.length > 0) {
221
+ symbols = graphNodes.map((n) => ({
222
+ name: n.name,
223
+ kind: n.kind,
224
+ file: n.file,
225
+ line: n.line ?? 0,
226
+ column: n.column ?? 0,
227
+ signature: n.signature,
228
+ summary: "",
229
+ imports: [],
230
+ calls: [],
231
+ calledBy: [],
232
+ relatedTests: [],
233
+ commitSha: undefined,
234
+ repoFingerprint: undefined,
235
+ }));
236
+ }
237
+ }
238
+ catch {
239
+ // silently skip — no SQLite store available
240
+ }
241
+ }
242
+ if (symbols.length === 0) {
243
+ return {
244
+ content: [{ type: "text", text: `No symbols found for query "${query}". Try a different query or check ci_status to verify the index is populated.` }],
245
+ structuredContent: asStructured({
246
+ query,
247
+ symbols: [],
248
+ totalSymbols: 0,
249
+ totalFiles: 0,
250
+ }),
251
+ };
252
+ }
253
+ // 2. Xây dựng kết quả
254
+ const uniqueFiles = new Set();
255
+ const resultSymbols = [];
256
+ let allCallPaths = [];
257
+ let allBlastRadius = [];
258
+ const store = (() => { try {
259
+ return getStore();
260
+ }
261
+ catch {
262
+ return null;
263
+ } })();
264
+ const config = loadConfig();
265
+ const repoPath = config.repoPath || "";
266
+ for (const sym of symbols.slice(0, maxSymbols)) {
267
+ if (sym.file)
268
+ uniqueFiles.add(sym.file);
269
+ let sourceCode;
270
+ if (includeSource && sym.line) {
271
+ const fullPath = resolve(repoPath, sym.file);
272
+ if (existsSync(fullPath)) {
273
+ sourceCode = await readSourceBlock(fullPath, sym.file, sym.line) ?? undefined;
274
+ }
275
+ }
276
+ let callers = [];
277
+ let callees = [];
278
+ let symCallPaths = [];
279
+ let symBlastRadius = null;
280
+ if (store) {
281
+ // Graph node lookup
282
+ const graphNodes = store.searchGraphNodes(sym.name, 1);
283
+ if (graphNodes.length > 0) {
284
+ const node = graphNodes[0];
285
+ // Edges
286
+ if (includeCallPaths) {
287
+ const edges = store.getGraphEdges(node.id, "both");
288
+ callers = edges
289
+ .filter((e) => e.targetNodeId === node.id)
290
+ .map((e) => {
291
+ const src = store.getGraphNode(e.sourceNodeId);
292
+ return src?.name ?? `#${e.sourceNodeId}`;
293
+ });
294
+ callees = edges
295
+ .filter((e) => e.sourceNodeId === node.id)
296
+ .map((e) => {
297
+ const tgt = store.getGraphNode(e.targetNodeId);
298
+ return tgt?.name ?? `#${e.targetNodeId}`;
299
+ });
300
+ // BFS call paths
301
+ const bfsResult = bfsCallPaths(store, node, depth);
302
+ symCallPaths = bfsResult.paths;
303
+ }
304
+ // Blast radius
305
+ if (includeBlastRadius) {
306
+ symBlastRadius = bfsBlastRadius(store, node, depth);
307
+ }
308
+ }
309
+ }
310
+ resultSymbols.push({
311
+ name: sym.name,
312
+ file: sym.file,
313
+ line: sym.line,
314
+ kind: sym.kind,
315
+ signature: sym.signature,
316
+ sourceCode,
317
+ callers: [...new Set(callers)],
318
+ callees: [...new Set(callees)],
319
+ });
320
+ if (symCallPaths.length > 0)
321
+ allCallPaths.push(...symCallPaths);
322
+ if (symBlastRadius)
323
+ allBlastRadius.push(symBlastRadius);
324
+ }
325
+ // Deduplicate call paths and blast radius
326
+ allCallPaths = allCallPaths.filter((p, i, arr) => arr.findIndex((x) => x.from === p.from && x.to === p.to) === i);
327
+ allBlastRadius = allBlastRadius.filter((b, i, arr) => arr.findIndex((x) => x.symbol === b.symbol) === i);
328
+ // 3. Build structured content
329
+ const structured = {
330
+ query,
331
+ symbols: resultSymbols,
332
+ totalSymbols: symbols.length,
333
+ totalFiles: uniqueFiles.size,
334
+ };
335
+ const structuredExtended = { ...structured };
336
+ if (includeCallPaths)
337
+ structuredExtended.callPaths = allCallPaths;
338
+ if (includeBlastRadius)
339
+ structuredExtended.blastRadius = allBlastRadius;
340
+ // 4. Build Markdown
341
+ if (input.responseFormat === ResponseFormat.JSON) {
342
+ return {
343
+ content: [{ type: "text", text: JSON.stringify(structuredExtended, null, 2) }],
344
+ structuredContent: asStructured(structuredExtended),
345
+ };
346
+ }
347
+ const lines = [];
348
+ lines.push(`# Deep Explore: \`${query}\``);
349
+ lines.push(`**Found:** ${symbols.length} symbols in ${uniqueFiles.size} files`);
350
+ if (depth > 1)
351
+ lines.push(`**Trace depth:** ${depth}`);
352
+ lines.push("");
353
+ for (const sym of resultSymbols) {
354
+ lines.push(`## ${sym.name} \`${sym.kind}\``);
355
+ lines.push(`- **File:** \`${sym.file}:${sym.line}\``);
356
+ lines.push(`- **Signature:** \`${sym.signature}\``);
357
+ if (sym.callers.length > 0) {
358
+ lines.push(`- **Called by:** ${sym.callers.join(", ")}`);
359
+ }
360
+ if (sym.callees.length > 0) {
361
+ lines.push(`- **Calls:** ${sym.callees.join(", ")}`);
362
+ }
363
+ if (sym.sourceCode) {
364
+ lines.push("");
365
+ lines.push("```typescript");
366
+ lines.push(sym.sourceCode);
367
+ lines.push("```");
368
+ }
369
+ lines.push("");
370
+ }
371
+ // Call paths section
372
+ if (includeCallPaths && allCallPaths.length > 0) {
373
+ lines.push("---");
374
+ lines.push("## Call Paths");
375
+ lines.push("");
376
+ for (const cp of allCallPaths) {
377
+ lines.push(`- **${cp.from}** → ${cp.path.slice(1).join(" → ")} (${cp.kind})`);
378
+ }
379
+ lines.push("");
380
+ }
381
+ // Blast radius section
382
+ if (includeBlastRadius && allBlastRadius.length > 0) {
383
+ lines.push("---");
384
+ lines.push("## Blast Radius");
385
+ lines.push("");
386
+ for (const br of allBlastRadius) {
387
+ lines.push(`### ${br.symbol}`);
388
+ lines.push(`- **Direct dependents:** ${br.directDependents.length}`);
389
+ lines.push(`- **Transitive dependents:** ${br.transitiveDependents.length}`);
390
+ lines.push(`- **Affected files:** ${br.totalAffectedFiles}`);
391
+ if (br.directDependents.length > 0) {
392
+ lines.push(`- **Direct:** ${br.directDependents.join(", ")}`);
393
+ }
394
+ if (br.transitiveDependents.length > 0) {
395
+ lines.push(`- **Transitive:** ${br.transitiveDependents.join(", ")}`);
396
+ }
397
+ if (br.affectedFiles.length > 0) {
398
+ lines.push(`- **Files:** ${br.affectedFiles.join(", ")}`);
399
+ }
400
+ lines.push("");
401
+ }
402
+ }
403
+ const text = lines.join("\n");
404
+ return {
405
+ content: [{ type: "text", text: text.slice(0, MAX_RESPONSE_CHARS) }],
406
+ structuredContent: asStructured(structuredExtended),
407
+ };
408
+ }
409
+ catch (error) {
410
+ const message = error instanceof Error ? error.message : String(error);
411
+ return {
412
+ content: [{ type: "text", text: `Error in deep explore: ${message}` }],
413
+ isError: true,
414
+ };
415
+ }
416
+ });
417
+ }
418
+ //# sourceMappingURL=deep-explore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-explore.js","sourceRoot":"","sources":["../../src/tools/deep-explore.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -46,7 +46,7 @@ export interface SymbolInfo {
46
46
  export interface SymbolRelation {
47
47
  source: string;
48
48
  target: string;
49
- kind: "calls" | "extends" | "implements" | "imports" | "composes";
49
+ kind: "calls" | "extends" | "implements" | "imports" | "composes" | "renders";
50
50
  }
51
51
  export interface GraphNode {
52
52
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codestrate",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Code understanding via tree-sitter AST parsing, graph-based symbol navigation, and MCP integration for coding agents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",