autodocs-engine 0.10.2 → 0.10.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.
@@ -4,12 +4,12 @@
4
4
  import { createHash } from "node:crypto";
5
5
  import { appendFileSync, mkdirSync } from "node:fs";
6
6
  import { homedir } from "node:os";
7
- import { join } from "node:path";
7
+ import { basename, join, resolve } from "node:path";
8
8
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
9
  import { z } from "zod";
10
10
  import { ENGINE_VERSION } from "../types.js";
11
11
  import { AnalysisCache } from "./cache.js";
12
- import { safeToolHandler } from "./errors.js";
12
+ import { safeToolHandler, ToolError } from "./errors.js";
13
13
  import * as tools from "./tools.js";
14
14
  const CHARS_PER_TOKEN = 3.5;
15
15
  function estimateTokens(text) {
@@ -84,19 +84,66 @@ function getNextStepHint(toolName) {
84
84
  return "\n\n**Next:** Call `review_changes` to verify pattern compliance.";
85
85
  case "search":
86
86
  return "\n\n**Next:** Call `analyze_impact` or `plan_change` on a result to understand its dependencies.";
87
+ case "rename":
88
+ return "\n\n**Next:** Apply the rename edits, then run tests to verify.";
89
+ case "get_module_doc":
90
+ return "\n\n**Next:** Call `plan_change` on specific files to check impact before editing.";
87
91
  default:
88
92
  return "";
89
93
  }
90
94
  }
91
95
  /**
92
96
  * Create an autodocs-engine MCP server with all tools registered.
93
- * Call server.connect(transport) then cache.warm() after.
97
+ * Supports single or multiple project paths (multi-repo).
98
+ * Call server.connect(transport) then warm caches after.
94
99
  */
95
- export function createAutodocsServer(projectPath, options = {}) {
100
+ export function createAutodocsServer(projectPaths, options = {}) {
96
101
  const verbose = options.verbose ?? Boolean(process.env.AUTODOCS_DEBUG);
97
102
  const telemetryEnabled = options.telemetry ?? process.env.AUTODOCS_TELEMETRY === "1";
98
103
  const server = new McpServer({ name: "autodocs-engine", version: ENGINE_VERSION }, { instructions: SERVER_INSTRUCTIONS });
99
- const cache = new AnalysisCache(projectPath, { typeChecking: options.typeChecking });
104
+ // Build cache registry one AnalysisCache per project path
105
+ const paths = Array.isArray(projectPaths) ? projectPaths : [projectPaths];
106
+ const caches = new Map();
107
+ for (const p of paths) {
108
+ const resolved = resolve(p);
109
+ caches.set(resolved, new AnalysisCache(resolved, { typeChecking: options.typeChecking }));
110
+ }
111
+ const primaryPath = resolve(paths[0]);
112
+ /**
113
+ * Resolve which cache to use for a tool call.
114
+ * - No repo param + single repo → return the only cache
115
+ * - No repo param + multiple repos → throw with available repos
116
+ * - repo param → match by path suffix, basename, or exact path
117
+ */
118
+ function resolveCache(repo) {
119
+ if (!repo) {
120
+ if (caches.size === 1)
121
+ return caches.values().next().value;
122
+ throw new ToolError("AMBIGUOUS_REPO", "Multiple repos indexed. Specify the repo parameter.", [
123
+ `Available: ${[...caches.keys()].map((p) => basename(p)).join(", ")}`,
124
+ "Use the directory name or full path",
125
+ ]);
126
+ }
127
+ // Exact path match
128
+ const resolved = resolve(repo);
129
+ if (caches.has(resolved))
130
+ return caches.get(resolved);
131
+ // Basename match
132
+ for (const [path, cache] of caches) {
133
+ if (basename(path) === repo || basename(path).toLowerCase() === repo.toLowerCase())
134
+ return cache;
135
+ }
136
+ // Suffix match (only for path-like values containing /)
137
+ if (repo.includes("/")) {
138
+ for (const [path, cache] of caches) {
139
+ if (path.endsWith(repo))
140
+ return cache;
141
+ }
142
+ }
143
+ throw new ToolError("REPO_NOT_FOUND", `Repo '${repo}' not found.`, [
144
+ `Available: ${[...caches.keys()].map((p) => basename(p)).join(", ")}`,
145
+ ]);
146
+ }
100
147
  const session = {
101
148
  startTime: Date.now(),
102
149
  calls: new Map(),
@@ -105,7 +152,7 @@ export function createAutodocsServer(projectPath, options = {}) {
105
152
  errors: 0,
106
153
  seq: 0,
107
154
  runId: `${Date.now()}-${process.pid}`,
108
- telemetryPath: telemetryEnabled ? getTelemetryPath(projectPath) : null,
155
+ telemetryPath: telemetryEnabled ? getTelemetryPath(primaryPath) : null,
109
156
  };
110
157
  /**
111
158
  * Telemetry wrapper: tracks token estimates, logs to stderr when verbose,
@@ -116,7 +163,18 @@ export function createAutodocsServer(projectPath, options = {}) {
116
163
  const estInputTokens = args ? estimateTokens(JSON.stringify(args)) : 0;
117
164
  return safeToolHandler(fn).then((result) => {
118
165
  const latencyMs = Math.round(performance.now() - start);
119
- const cacheStatus = cache.lastWasCacheHit ? "hit" : "miss";
166
+ let cacheStatus = "unknown";
167
+ let usedCache = null;
168
+ try {
169
+ usedCache =
170
+ caches.size === 1
171
+ ? caches.values().next().value
172
+ : resolveCache(args?.repo);
173
+ cacheStatus = usedCache.lastWasCacheHit ? "hit" : "miss";
174
+ }
175
+ catch {
176
+ // resolveCache may throw if repo param was invalid — telemetry should not crash
177
+ }
120
178
  const isError = Boolean(result.isError);
121
179
  // Estimate output tokens (filter to text blocks only — non-text blocks are ignored)
122
180
  const estOutputTokens = estimateTokens((result.content ?? [])
@@ -155,8 +213,8 @@ export function createAutodocsServer(projectPath, options = {}) {
155
213
  hintTarget.text += hint;
156
214
  }
157
215
  // Append freshness metadata to every tool response
158
- if (!isError && result.content.length > 0) {
159
- const meta = cache.getMeta();
216
+ if (!isError && usedCache && result.content.length > 0) {
217
+ const meta = usedCache.getMeta();
160
218
  const last = result.content[result.content.length - 1];
161
219
  if (last.type === "text") {
162
220
  last.text += `\n\n---\n*Analyzed: ${meta.analyzedAt} | Commit: ${meta.analyzedCommit} | ${meta.isFresh ? "Fresh" : "Stale — files changed since analysis"}*`;
@@ -174,7 +232,12 @@ WHEN TO CALL:
174
232
 
175
233
  DO NOT CALL:
176
234
  - User asks about architecture or where to put code (use get_architecture)
177
- - User asks about dependencies or what frameworks are used`, { packagePath: z.string().optional().describe("Package path or name. Omit for single-package repos.") }, async (args) => withTelemetry("get_commands", () => cache.get().then((a) => tools.handleGetCommands(a, args)), args));
235
+ - User asks about dependencies or what frameworks are used`, {
236
+ packagePath: z.string().optional().describe("Package path or name. Omit for single-package repos."),
237
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
238
+ }, async (args) => withTelemetry("get_commands", () => resolveCache(args?.repo)
239
+ .get()
240
+ .then((a) => tools.handleGetCommands(a, args)), args));
178
241
  // ─── P0: get_architecture ────────────────────────────────────────────
179
242
  server.tool("get_architecture", `Get project directory structure with entry point, directory purposes, file counts, and package type.
180
243
 
@@ -185,7 +248,12 @@ WHEN TO CALL:
185
248
 
186
249
  DO NOT CALL:
187
250
  - User asks about specific file contents or imports (use analyze_impact)
188
- - User asks about build/test commands (use get_commands)`, { packagePath: z.string().optional().describe("Package path or name.") }, async (args) => withTelemetry("get_architecture", () => cache.get().then((a) => tools.handleGetArchitecture(a, args)), args));
251
+ - User asks about build/test commands (use get_commands)`, {
252
+ packagePath: z.string().optional().describe("Package path or name."),
253
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
254
+ }, async (args) => withTelemetry("get_architecture", () => resolveCache(args?.repo)
255
+ .get()
256
+ .then((a) => tools.handleGetArchitecture(a, args)), args));
189
257
  // ─── P0: analyze_impact ──────────────────────────────────────────────
190
258
  server.tool("analyze_impact", `Analyze what code is affected by changing a specific file or function. Returns importers (who depends on this file), callers (who calls this function), and co-change partners (files that historically change together from git).
191
259
 
@@ -201,12 +269,15 @@ DO NOT CALL:
201
269
  filePath: z.string().optional().describe("File to analyze (e.g., 'src/types.ts')"),
202
270
  functionName: z.string().optional().describe("Function to find callers for"),
203
271
  packagePath: z.string().optional().describe("Package path or name"),
272
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
204
273
  scope: z
205
274
  .enum(["all", "imports", "callers", "cochanges"])
206
275
  .optional()
207
276
  .describe("Narrow analysis: 'imports' for file importers only, 'callers' for function callers only, 'cochanges' for git history only. Default: all."),
208
277
  limit: z.number().min(1).max(50).optional().describe("Max results per section. Default: 20."),
209
- }, async (args) => withTelemetry("analyze_impact", () => cache.get().then((a) => tools.handleAnalyzeImpact(a, args)), args));
278
+ }, async (args) => withTelemetry("analyze_impact", () => resolveCache(args?.repo)
279
+ .get()
280
+ .then((a) => tools.handleAnalyzeImpact(a, args)), args));
210
281
  // ─── P0: get_workflow_rules ──────────────────────────────────────────
211
282
  server.tool("get_workflow_rules", `Get operational rules about what to do AFTER modifying specific files or technologies. Examples: "after changing schema.prisma, run db:generate", "when modifying src/types.ts, check 12 dependent files".
212
283
 
@@ -220,7 +291,10 @@ DO NOT CALL:
220
291
  - User asks WHERE to put new code (use get_architecture)`, {
221
292
  filePath: z.string().optional().describe("Filter to rules mentioning this file (e.g., 'src/types.ts')"),
222
293
  packagePath: z.string().optional().describe("Package path or name."),
223
- }, async (args) => withTelemetry("get_workflow_rules", () => cache.get().then((a) => tools.handleGetWorkflowRules(a, args)), args));
294
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
295
+ }, async (args) => withTelemetry("get_workflow_rules", () => resolveCache(args?.repo)
296
+ .get()
297
+ .then((a) => tools.handleGetWorkflowRules(a, args)), args));
224
298
  // ─── P0: list_packages ──────────────────────────────────────────────
225
299
  server.tool("list_packages", `List all packages in this project with names, paths, types, and entry points.
226
300
 
@@ -230,7 +304,9 @@ WHEN TO CALL:
230
304
  - Another tool returned AMBIGUOUS_PACKAGE error
231
305
 
232
306
  DO NOT CALL:
233
- - Single-package repos (will return one item, which is fine but unnecessary)`, {}, async () => withTelemetry("list_packages", () => cache.get().then((a) => tools.handleListPackages(a))));
307
+ - Single-package repos (will return one item, which is fine but unnecessary)`, { repo: z.string().optional().describe("Repository name or path. Omit if single repo.") }, async (args) => withTelemetry("list_packages", () => resolveCache(args?.repo)
308
+ .get()
309
+ .then((a) => tools.handleListPackages(a)), args));
234
310
  // ─── P1: get_contribution_guide ──────────────────────────────────────
235
311
  server.tool("get_contribution_guide", `Get step-by-step recipes for adding new code: file patterns, common imports, export conventions, registration files.
236
312
 
@@ -239,7 +315,10 @@ WHEN TO CALL:
239
315
  - User is creating a new file and wants to follow project conventions`, {
240
316
  directory: z.string().optional().describe("Filter to patterns in this directory (e.g., 'src/detectors/')"),
241
317
  packagePath: z.string().optional().describe("Package path or name."),
242
- }, async (args) => withTelemetry("get_contribution_guide", () => cache.get().then((a) => tools.handleGetContributionGuide(a, args)), args));
318
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
319
+ }, async (args) => withTelemetry("get_contribution_guide", () => resolveCache(args?.repo)
320
+ .get()
321
+ .then((a) => tools.handleGetContributionGuide(a, args)), args));
243
322
  // ─── P1: get_exports ─────────────────────────────────────────────────
244
323
  server.tool("get_exports", `Get public API exports sorted by usage (import count), with kind, signature, and source file.
245
324
 
@@ -247,9 +326,12 @@ WHEN TO CALL:
247
326
  - User asks "what can I import from this package?", "what's the public API?"
248
327
  - User needs to find a specific export by name`, {
249
328
  packagePath: z.string().optional().describe("Package path or name."),
329
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
250
330
  query: z.string().optional().describe("Filter exports by name (substring match)"),
251
331
  limit: z.number().min(1).max(100).optional().describe("Max results. Default: 20."),
252
- }, async (args) => withTelemetry("get_exports", () => cache.get().then((a) => tools.handleGetExports(a, args)), args));
332
+ }, async (args) => withTelemetry("get_exports", () => resolveCache(args?.repo)
333
+ .get()
334
+ .then((a) => tools.handleGetExports(a, args)), args));
253
335
  // ─── P2: get_conventions ─────────────────────────────────────────────
254
336
  server.tool("get_conventions", `Get DO/DON'T coding conventions for this project (architecture patterns, not style rules handled by linters).
255
337
 
@@ -260,7 +342,10 @@ WHEN TO CALL:
260
342
  .optional()
261
343
  .describe("Filter by convention category (e.g., 'file-naming', 'hooks', 'testing', 'ecosystem')"),
262
344
  packagePath: z.string().optional().describe("Package path or name."),
263
- }, async (args) => withTelemetry("get_conventions", () => cache.get().then((a) => tools.handleGetConventions(a, args)), args));
345
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
346
+ }, async (args) => withTelemetry("get_conventions", () => resolveCache(args?.repo)
347
+ .get()
348
+ .then((a) => tools.handleGetConventions(a, args)), args));
264
349
  // ─── New: plan_change ──────────────────────────────────────────────
265
350
  server.tool("plan_change", `Analyze what files need updating when you change specific files. Returns dependent files (import graph), co-change partners (git history), registration/barrel files that need updating, corresponding test files, blast radius, and an ordered checklist.
266
351
 
@@ -280,7 +365,10 @@ DO NOT CALL:
280
365
  .optional()
281
366
  .describe("Specific symbols being modified (e.g. ['Convention', 'WorkflowRule']). Narrows dependents to files importing these symbols."),
282
367
  packagePath: z.string().optional().describe("Package path or name"),
283
- }, async (args) => withTelemetry("plan_change", () => cache.get().then((a) => tools.handlePlanChange(a, args)), args));
368
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
369
+ }, async (args) => withTelemetry("plan_change", () => resolveCache(args?.repo)
370
+ .get()
371
+ .then((a) => tools.handlePlanChange(a, args)), args));
284
372
  // ─── New: get_test_info ───────────────────────────────────────────
285
373
  server.tool("get_test_info", `Get the test file path and exact run command for a specific source file. Maps source files to their corresponding test files using detected patterns.
286
374
 
@@ -293,7 +381,10 @@ DO NOT CALL:
293
381
  - When you need test conventions for the whole project (use get_conventions with category='testing')`, {
294
382
  filePath: z.string().describe("Source file path (e.g., 'src/detectors/file-naming.ts')"),
295
383
  packagePath: z.string().optional().describe("Package path or name"),
296
- }, async (args) => withTelemetry("get_test_info", () => cache.get().then((a) => tools.handleGetTestInfo(a, args)), args));
384
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
385
+ }, async (args) => withTelemetry("get_test_info", () => resolveCache(args?.repo)
386
+ .get()
387
+ .then((a) => tools.handleGetTestInfo(a, args)), args));
297
388
  // ─── New: auto_register ─────────────────────────────────────────
298
389
  server.tool("auto_register", `Generate exact code insertions to register a new file in registration files and barrel/index files. Returns line numbers and code to insert.
299
390
 
@@ -306,7 +397,10 @@ DO NOT CALL:
306
397
  - When modifying existing files (this is for NEW files only)`, {
307
398
  newFilePath: z.string().describe("Path of the newly created file (e.g., 'src/detectors/graphql.ts')"),
308
399
  packagePath: z.string().optional().describe("Package path or name"),
309
- }, async (args) => withTelemetry("auto_register", () => cache.get().then((a) => tools.handleAutoRegister(a, args)), args));
400
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
401
+ }, async (args) => withTelemetry("auto_register", () => resolveCache(args?.repo)
402
+ .get()
403
+ .then((a) => tools.handleAutoRegister(a, args)), args));
310
404
  // ─── New: review_changes ──────────────────────────────────────────
311
405
  server.tool("review_changes", `Review generated code against detected contribution patterns. Checks: export naming suffix, common imports, registration status, barrel exports, and test file existence. Returns pass/fail per check.
312
406
 
@@ -324,7 +418,27 @@ DO NOT CALL:
324
418
  }))
325
419
  .describe("Files to review"),
326
420
  packagePath: z.string().optional().describe("Package path or name"),
327
- }, async (args) => withTelemetry("review_changes", () => cache.get().then((a) => tools.handleReviewChanges(a, args)), args));
421
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
422
+ }, async (args) => withTelemetry("review_changes", () => resolveCache(args?.repo)
423
+ .get()
424
+ .then((a) => tools.handleReviewChanges(a, args)), args));
425
+ // ─── New: get_module_doc ────────────────────────────────────────
426
+ server.tool("get_module_doc", `Get structured documentation for a directory/module: files, exports, dependencies, dependents, internal call graph, execution flows, co-change partners, and contribution patterns.
427
+
428
+ WHEN TO CALL:
429
+ - User asks "tell me about the MCP module" or "what does src/detectors/ do?"
430
+ - User needs an overview of a directory before modifying it
431
+ - User wants to understand module boundaries and dependencies
432
+
433
+ DO NOT CALL:
434
+ - For individual file or symbol details (use analyze_impact or get_exports)
435
+ - For finding code by concept (use search)`, {
436
+ directory: z.string().describe("Directory path (e.g., 'src/mcp', 'src/detectors')"),
437
+ packagePath: z.string().optional().describe("Package path or name"),
438
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
439
+ }, async (args) => withTelemetry("get_module_doc", () => resolveCache(args?.repo)
440
+ .get()
441
+ .then((a) => tools.handleGetModuleDoc(a, args)), args));
328
442
  // ─── New: diagnose ──────────────────────────────────────────────
329
443
  server.tool("diagnose", `Diagnose test failures by tracing backward from errors to likely root cause using import graph, git co-change history, and call graph analysis. Returns ranked suspect files with evidence.
330
444
 
@@ -341,7 +455,10 @@ DO NOT CALL:
341
455
  filePath: z.string().optional().describe("File where the error occurs (e.g., 'src/types.ts')"),
342
456
  testFile: z.string().optional().describe("Failing test file (e.g., 'test/pipeline.test.ts')"),
343
457
  packagePath: z.string().optional().describe("Package path or name"),
344
- }, async (args) => withTelemetry("diagnose", () => cache.get().then((a) => tools.handleDiagnose(a, args)), args));
458
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
459
+ }, async (args) => withTelemetry("diagnose", () => resolveCache(args?.repo)
460
+ .get()
461
+ .then((a) => tools.handleDiagnose(a, args)), args));
345
462
  // ─── New: search ────────────────────────────────────────────────
346
463
  server.tool("search", `Search for symbols, files, and patterns across the codebase. Returns functions, types, files, and conventions matching the query, enriched with call graph context (callers/callees) and co-change partners.
347
464
 
@@ -355,9 +472,161 @@ DO NOT CALL:
355
472
  - User wants to understand what changes when modifying known files (use plan_change)`, {
356
473
  query: z.string().describe("Search term — matches symbol names, file paths, and convention descriptions"),
357
474
  packagePath: z.string().optional().describe("Package path or name"),
475
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
358
476
  limit: z.number().min(1).max(50).optional().describe("Max results. Default: 20."),
359
- }, async (args) => withTelemetry("search", () => cache.get().then((a) => tools.handleSearch(a, args)), args));
360
- return { server, cache, session };
477
+ }, async (args) => withTelemetry("search", () => resolveCache(args?.repo)
478
+ .get()
479
+ .then((a) => tools.handleSearch(a, args)), args));
480
+ // ─── New: rename ─────────────────────────────────────────────────
481
+ server.tool("rename", `Find all references to a symbol for safe renaming. Returns the definition location, all import sites, re-exports, and call sites with a rename checklist. Preview only — does not modify files.
482
+
483
+ WHEN TO CALL:
484
+ - User wants to rename a function, type, class, or constant across the codebase
485
+ - User asks "what would break if I rename X?" or "where is X used?"
486
+ - User needs to find all import statements referencing a symbol
487
+
488
+ DO NOT CALL:
489
+ - For simple find-and-replace of string literals (use grep)
490
+ - For renaming files (this tracks symbol references, not file paths)`, {
491
+ symbolName: z.string().describe("Current name of the symbol to rename"),
492
+ newName: z.string().describe("New name for the symbol"),
493
+ filePath: z.string().optional().describe("File where the symbol is defined (for disambiguation)"),
494
+ packagePath: z.string().optional().describe("Package path or name"),
495
+ repo: z.string().optional().describe("Repository name or path. Omit if single repo."),
496
+ }, async (args) => withTelemetry("rename", () => resolveCache(args?.repo)
497
+ .get()
498
+ .then((a) => tools.handleRename(a, args)), args));
499
+ // ─── MCP Resources ────────────────────────────────────────────────
500
+ // Static data exposed as resources — cheaper than tool calls for context.
501
+ server.resource("conventions", "autodocs://conventions", { mimeType: "text/markdown" }, async () => {
502
+ const a = await resolveCache().get();
503
+ const pkg = a.packages[0];
504
+ if (!pkg)
505
+ return {
506
+ contents: [{ uri: "autodocs://conventions", mimeType: "text/markdown", text: "No analysis available." }],
507
+ };
508
+ const lines = ["# Conventions", ""];
509
+ for (const c of pkg.conventions) {
510
+ lines.push(`- **${c.name}** (${c.category}): ${c.description}`);
511
+ }
512
+ for (const ap of pkg.antiPatterns) {
513
+ lines.push(`- **DON'T:** ${ap.rule} — ${ap.reason}`);
514
+ }
515
+ return { contents: [{ uri: "autodocs://conventions", mimeType: "text/markdown", text: lines.join("\n") }] };
516
+ });
517
+ server.resource("processes", "autodocs://processes", { mimeType: "text/markdown" }, async () => {
518
+ const a = await resolveCache().get();
519
+ const pkg = a.packages[0];
520
+ const flows = pkg?.executionFlows ?? [];
521
+ const lines = ["# Execution Flows", ""];
522
+ if (flows.length === 0) {
523
+ lines.push("No execution flows detected (call graph may be too sparse).");
524
+ }
525
+ else {
526
+ for (const f of flows) {
527
+ const conf = f.confidence > 0 ? ` (confidence: ${Math.round(f.confidence * 100)}%)` : "";
528
+ lines.push(`- ${f.label}${conf}`);
529
+ }
530
+ }
531
+ return { contents: [{ uri: "autodocs://processes", mimeType: "text/markdown", text: lines.join("\n") }] };
532
+ });
533
+ server.resource("clusters", "autodocs://clusters", { mimeType: "text/markdown" }, async () => {
534
+ const a = await resolveCache().get();
535
+ const pkg = a.packages[0];
536
+ const clusters = pkg?.coChangeClusters ?? [];
537
+ const lines = [
538
+ "# Co-change Clusters",
539
+ "",
540
+ "Groups of files that frequently change together (all pairs co-change).",
541
+ "",
542
+ ];
543
+ if (clusters.length === 0) {
544
+ lines.push("No clusters detected (requires git history with 3+ files co-changing as a clique).");
545
+ }
546
+ else {
547
+ for (let i = 0; i < clusters.length; i++) {
548
+ lines.push(`### Cluster ${i + 1} (${clusters[i].length} files)`);
549
+ for (const f of clusters[i])
550
+ lines.push(`- \`${f}\``);
551
+ lines.push("");
552
+ }
553
+ }
554
+ return { contents: [{ uri: "autodocs://clusters", mimeType: "text/markdown", text: lines.join("\n") }] };
555
+ });
556
+ server.resource("packages", "autodocs://packages", { mimeType: "text/markdown" }, async () => {
557
+ const a = await resolveCache().get();
558
+ const lines = ["# Packages", ""];
559
+ for (const pkg of a.packages) {
560
+ lines.push(`- **${pkg.name}** (${pkg.relativePath}) — ${pkg.architecture.packageType}, ${pkg.files.total} files, entry: ${pkg.architecture.entryPoint}`);
561
+ }
562
+ return { contents: [{ uri: "autodocs://packages", mimeType: "text/markdown", text: lines.join("\n") }] };
563
+ });
564
+ server.resource("schema", "autodocs://schema", { mimeType: "text/markdown" }, async () => ({
565
+ contents: [
566
+ {
567
+ uri: "autodocs://schema",
568
+ mimeType: "text/markdown",
569
+ text: [
570
+ "# autodocs-engine Analysis Schema",
571
+ "",
572
+ "Each analyzed package contains:",
573
+ "- **publicAPI**: Exported symbols with kind, source file, import count, resolved types",
574
+ "- **callGraph**: Cross-file function call edges with confidence",
575
+ "- **importChain**: File-to-file import edges with symbol lists",
576
+ "- **gitHistory.coChangeEdges**: File pairs that frequently change together (Jaccard similarity)",
577
+ "- **implicitCoupling**: Co-change pairs with NO import relationship",
578
+ "- **coChangeClusters**: Groups of 3+ files that ALL co-change (cliques)",
579
+ "- **executionFlows**: Entry-to-terminal execution paths through call graph",
580
+ "- **conventions**: Detected coding patterns from 13 AST-based detectors",
581
+ "- **contributionPatterns**: How to add new code (file patterns, registration, common imports)",
582
+ "- **commands**: Build, test, lint, start commands with exact flags",
583
+ "",
584
+ "Use `search` to find symbols by concept. Use `plan_change` before modifying files.",
585
+ "Use `diagnose` when tests fail. Use `analyze_impact` for blast radius.",
586
+ ].join("\n"),
587
+ },
588
+ ],
589
+ }));
590
+ // ─── MCP Prompts ──────────────────────────────────────────────────
591
+ // Guided workflows composing tools + resources.
592
+ server.prompt("analyze-impact", "Analyze blast radius of current changes before committing", async () => ({
593
+ messages: [
594
+ {
595
+ role: "user",
596
+ content: {
597
+ type: "text",
598
+ text: [
599
+ "Analyze the impact of my current code changes. Follow these steps:",
600
+ "",
601
+ "1. Run `git diff --name-only` to identify changed files",
602
+ "2. Call the `plan_change` tool with those files to see dependents, co-change partners, and registration needs",
603
+ "3. Check the `autodocs://clusters` resource to see if any changed files belong to co-change clusters",
604
+ "4. Summarize: what's the blast radius? What other files might need updating? What tests should I run?",
605
+ ].join("\n"),
606
+ },
607
+ },
608
+ ],
609
+ }));
610
+ server.prompt("onboard", "Understand this codebase — commands, architecture, conventions, and key patterns", async () => ({
611
+ messages: [
612
+ {
613
+ role: "user",
614
+ content: {
615
+ type: "text",
616
+ text: [
617
+ "Help me understand this codebase. Follow these steps:",
618
+ "",
619
+ "1. Call `get_commands` for build, test, and lint commands",
620
+ "2. Call `get_architecture` for directory structure, entry points, and execution flows",
621
+ "3. Call `get_conventions` for the project's DO and DON'T rules",
622
+ "4. Read the `autodocs://schema` resource to understand what analysis data is available",
623
+ "5. Summarize the key things I need to know to start contributing",
624
+ ].join("\n"),
625
+ },
626
+ },
627
+ ],
628
+ }));
629
+ return { server, caches, cache: caches.get(primaryPath), session };
361
630
  }
362
631
  /**
363
632
  * Format session telemetry as a human-readable summary for stderr.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,16 @@ export declare function handleSearch(analysis: StructuredAnalysis, args: {
61
61
  packagePath?: string;
62
62
  limit?: number;
63
63
  }): ToolResult;
64
+ export declare function handleGetModuleDoc(analysis: StructuredAnalysis, args: {
65
+ directory: string;
66
+ packagePath?: string;
67
+ }): ToolResult;
68
+ export declare function handleRename(analysis: StructuredAnalysis, args: {
69
+ symbolName: string;
70
+ newName: string;
71
+ filePath?: string;
72
+ packagePath?: string;
73
+ }): ToolResult;
64
74
  export declare function handleDiagnose(analysis: StructuredAnalysis, args: {
65
75
  errorText?: string;
66
76
  filePath?: string;