codeguardian-mcp 1.3.8 → 1.4.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.
@@ -24,8 +24,215 @@ import * as path from "path";
24
24
  import { minimatch as minimatchFunc } from "minimatch";
25
25
  const minimatch = minimatchFunc;
26
26
  // Import the AST-based unused locals detection
27
- import { detectUnusedLocals, detectUnusedLocalsAST, shouldSkipFrameworkPattern } from "./unusedLocals.js";
28
- export { detectUnusedLocals, detectUnusedLocalsAST, shouldSkipFrameworkPattern };
27
+ import { detectUnusedLocals, detectUnusedLocalsAST, shouldSkipFrameworkPattern, } from "./unusedLocals.js";
28
+ export { detectUnusedLocals, detectUnusedLocalsAST, shouldSkipFrameworkPattern, };
29
+ import { getParser } from "./parser.js";
30
+ /**
31
+ * Detect unused methods on exported class singletons by tracing cross-file usage.
32
+ *
33
+ * Strategy:
34
+ * 1. Parse the file for class definitions and their public methods.
35
+ * 2. Find exported singleton instances (export const x = new ClassName()).
36
+ * 3. Use reverseImportGraph to locate every file that imports this module.
37
+ * 4. Scan those files (and the current file itself) for `instanceName.methodName` calls.
38
+ * 5. Report methods that are never called anywhere in the project.
39
+ *
40
+ * This fills the gap left by:
41
+ * - detectUnusedLocals — hard-skips sym.type === "method" (single-file only)
42
+ * - detectDeadCode — only tracks top-level exported symbols, not instance methods
43
+ *
44
+ * Example: spoonacular.ts exports `spoonacularService = new SpoonacularService()`.
45
+ * If no file ever calls `spoonacularService.getRecipeNutrition()`, it is dead code.
46
+ */
47
+ export async function detectUnusedClassMethods(content, filePath, context) {
48
+ const issues = [];
49
+ // Only applicable to TypeScript / JavaScript
50
+ const ext = path.extname(filePath).toLowerCase();
51
+ if (ext !== ".ts" && ext !== ".tsx" && ext !== ".js" && ext !== ".jsx") {
52
+ return issues;
53
+ }
54
+ // Step 1: Extract class definitions and their public instance methods
55
+ const classes = _extractClassesWithMethods(content);
56
+ if (classes.size === 0)
57
+ return issues;
58
+ // Step 2: Find exported singleton instances of those classes in this file
59
+ // e.g. export const spoonacularService = new SpoonacularService();
60
+ const exportedInstances = _extractExportedClassInstances(content, classes);
61
+ if (exportedInstances.size === 0)
62
+ return issues;
63
+ // Step 3: Collect all files to search — this file plus every importer
64
+ const importerPaths = context.reverseImportGraph?.get(filePath) ?? [];
65
+ const filesToSearch = [filePath, ...importerPaths];
66
+ // Step 4: For each exported instance, determine which methods are actually called
67
+ const usedMethodKeys = new Set(); // "ClassName.methodName"
68
+ for (const searchPath of filesToSearch) {
69
+ try {
70
+ const searchContent = searchPath === filePath
71
+ ? content
72
+ : await fs.readFile(searchPath, "utf-8");
73
+ for (const [instanceName, className] of exportedInstances) {
74
+ const classInfo = classes.get(className);
75
+ if (!classInfo)
76
+ continue;
77
+ for (const method of classInfo.methods) {
78
+ const key = `${className}.${method.name}`;
79
+ if (usedMethodKeys.has(key))
80
+ continue; // already confirmed used
81
+ // Match: instanceName.methodName or instanceName?.methodName
82
+ const pattern = new RegExp(`\\b${_escapeRegex(instanceName)}\\??\\s*\\.\\s*${_escapeRegex(method.name)}\\b`);
83
+ if (pattern.test(searchContent)) {
84
+ usedMethodKeys.add(key);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ catch {
90
+ // Unreadable file — skip
91
+ }
92
+ }
93
+ // Step 5: Report methods that were never found in any file
94
+ for (const [, className] of exportedInstances) {
95
+ const classInfo = classes.get(className);
96
+ if (!classInfo)
97
+ continue;
98
+ for (const method of classInfo.methods) {
99
+ const key = `${className}.${method.name}`;
100
+ if (!usedMethodKeys.has(key)) {
101
+ issues.push({
102
+ type: "unusedFunction",
103
+ severity: "medium",
104
+ name: method.name,
105
+ file: filePath,
106
+ line: method.line,
107
+ message: `Method '${method.name}' on exported class '${className}' is never called anywhere in the project`,
108
+ });
109
+ }
110
+ }
111
+ }
112
+ return issues;
113
+ }
114
+ /** Parse class declarations from TypeScript/JavaScript source using tree-sitter. */
115
+ function _extractClassesWithMethods(content) {
116
+ const classes = new Map();
117
+ try {
118
+ const parser = getParser("typescript");
119
+ const tree = parser.parse(content);
120
+ if (!tree)
121
+ return classes;
122
+ const visitChildren = (node) => {
123
+ for (const child of node.children ?? [])
124
+ visit(child);
125
+ };
126
+ const visit = (node) => {
127
+ if (node.type === "class_declaration" ||
128
+ node.type === "class" // class expression
129
+ ) {
130
+ const nameNode = node.childForFieldName("name");
131
+ if (!nameNode) {
132
+ visitChildren(node);
133
+ return;
134
+ }
135
+ const className = content.slice(nameNode.startIndex, nameNode.endIndex);
136
+ const line = node.startPosition.row + 1;
137
+ const methods = [];
138
+ const body = node.childForFieldName("body");
139
+ if (body) {
140
+ for (const child of body.children ?? []) {
141
+ if (child.type !== "method_definition")
142
+ continue;
143
+ // Skip JavaScript private fields (#name)
144
+ const hasPrivateField = child.children?.some((c) => c.type === "private_property_identifier");
145
+ if (hasPrivateField)
146
+ continue;
147
+ // Skip TypeScript `private` accessibility modifier
148
+ const accessMod = child.children?.find((c) => c.type === "accessibility_modifier");
149
+ if (accessMod &&
150
+ content.slice(accessMod.startIndex, accessMod.endIndex) ===
151
+ "private") {
152
+ continue;
153
+ }
154
+ const methodNameNode = child.childForFieldName("name");
155
+ if (!methodNameNode)
156
+ continue;
157
+ const methodName = content.slice(methodNameNode.startIndex, methodNameNode.endIndex);
158
+ // Skip constructor and JS private field syntax
159
+ if (methodName === "constructor" || methodName.startsWith("#")) {
160
+ continue;
161
+ }
162
+ // Skip getters/setters — they behave like properties, not callable methods
163
+ const kindNode = child.childForFieldName("kind");
164
+ const kindText = kindNode
165
+ ? content.slice(kindNode.startIndex, kindNode.endIndex)
166
+ : "";
167
+ if (kindText === "get" || kindText === "set")
168
+ continue;
169
+ methods.push({
170
+ name: methodName,
171
+ line: child.startPosition.row + 1,
172
+ });
173
+ }
174
+ }
175
+ if (methods.length > 0) {
176
+ classes.set(className, { name: className, line, methods });
177
+ }
178
+ }
179
+ visitChildren(node);
180
+ };
181
+ visit(tree.rootNode);
182
+ }
183
+ catch {
184
+ // Best-effort — return whatever was collected before the error
185
+ }
186
+ return classes;
187
+ }
188
+ /**
189
+ * Find exported singleton instances of the given classes.
190
+ * Handles: export const foo = new Foo();
191
+ */
192
+ function _extractExportedClassInstances(content, classes) {
193
+ // varName → className
194
+ const instances = new Map();
195
+ try {
196
+ const parser = getParser("typescript");
197
+ const tree = parser.parse(content);
198
+ if (!tree)
199
+ return instances;
200
+ const visit = (node) => {
201
+ if (node.type === "export_statement") {
202
+ const decl = node.children?.find((c) => c.type === "lexical_declaration" ||
203
+ c.type === "variable_declaration");
204
+ if (decl) {
205
+ for (const child of decl.children ?? []) {
206
+ if (child.type !== "variable_declarator")
207
+ continue;
208
+ const nameNode = child.childForFieldName("name");
209
+ const valueNode = child.childForFieldName("value");
210
+ if (nameNode && valueNode?.type === "new_expression") {
211
+ const constructorNode = valueNode.childForFieldName("constructor");
212
+ if (constructorNode) {
213
+ const varName = content.slice(nameNode.startIndex, nameNode.endIndex);
214
+ const className = content.slice(constructorNode.startIndex, constructorNode.endIndex);
215
+ if (classes.has(className)) {
216
+ instances.set(varName, className);
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ for (const child of node.children ?? [])
224
+ visit(child);
225
+ };
226
+ visit(tree.rootNode);
227
+ }
228
+ catch {
229
+ // Best-effort
230
+ }
231
+ return instances;
232
+ }
233
+ function _escapeRegex(s) {
234
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
235
+ }
29
236
  // ============================================================================
30
237
  // Caches for Performance
31
238
  // ============================================================================
@@ -107,7 +314,8 @@ export async function isSymbolTypeReferenced(symbolName, definedInFile, context)
107
314
  // This is faster than parsing AST for type references
108
315
  for (const [filePath, fileInfo] of context.files) {
109
316
  for (const imp of fileInfo.imports) {
110
- if (imp.namedImports.includes(symbolName) || imp.defaultImport === symbolName) {
317
+ if (imp.namedImports.includes(symbolName) ||
318
+ imp.defaultImport === symbolName) {
111
319
  return true;
112
320
  }
113
321
  }
@@ -167,7 +375,7 @@ export async function isSymbolCalledOrInstantiated(symbolName, context, symbolSc
167
375
  // Check for direct function calls or instantiations
168
376
  for (const usage of usages) {
169
377
  if (usage.name === symbolName) {
170
- // If symbol has a scope (e.g., it's a method of an object),
378
+ // If symbol has a scope (e.g., it's a method of an object),
171
379
  // verify that the usage is via that object
172
380
  if (symbolScope && usage.type === "methodCall" && usage.object) {
173
381
  if (usage.object === symbolScope) {
@@ -182,7 +390,9 @@ export async function isSymbolCalledOrInstantiated(symbolName, context, symbolSc
182
390
  if (resolvedPath) {
183
391
  const defFileInfo = context.files.get(resolvedPath);
184
392
  if (defFileInfo) {
185
- const matchingSymbol = defFileInfo.symbols.find(s => s.name === symbolName && s.scope === symbolScope && s.exported);
393
+ const matchingSymbol = defFileInfo.symbols.find((s) => s.name === symbolName &&
394
+ s.scope === symbolScope &&
395
+ s.exported);
186
396
  if (matchingSymbol) {
187
397
  return true;
188
398
  }
@@ -197,7 +407,9 @@ export async function isSymbolCalledOrInstantiated(symbolName, context, symbolSc
197
407
  }
198
408
  }
199
409
  // Check for method calls on objects (e.g., api.symbolName())
200
- if (usage.type === "methodCall" && usage.name === symbolName && !symbolScope) {
410
+ if (usage.type === "methodCall" &&
411
+ usage.name === symbolName &&
412
+ !symbolScope) {
201
413
  return true;
202
414
  }
203
415
  }
@@ -227,10 +439,10 @@ export async function isSymbolUsedInSameFileExports(symbolName, definedInFile, c
227
439
  return false;
228
440
  // Check if this symbol is a method/property of an exported parent object
229
441
  // e.g., startNewConversation is a method of supportChatService which is exported
230
- const symbol = fileInfo.symbols.find(s => s.name === symbolName);
442
+ const symbol = fileInfo.symbols.find((s) => s.name === symbolName);
231
443
  if (symbol?.scope) {
232
444
  // This symbol has a scope (parent object) - check if the parent is exported
233
- const parentSymbol = fileInfo.symbols.find(s => s.name === symbol.scope);
445
+ const parentSymbol = fileInfo.symbols.find((s) => s.name === symbol.scope);
234
446
  if (parentSymbol?.exported) {
235
447
  // The parent object is exported, so this method is accessible via the parent
236
448
  return true;
@@ -330,7 +542,7 @@ async function isSymbolUsedAnywhere(symbolName, definedInFile, context, symbolsI
330
542
  // Check 3: Is it called or instantiated anywhere?
331
543
  // Look up the symbol to get its scope (for method detection)
332
544
  const fileInfo = context.files.get(definedInFile);
333
- const symbol = fileInfo?.symbols.find(s => s.name === symbolName);
545
+ const symbol = fileInfo?.symbols.find((s) => s.name === symbolName);
334
546
  if (await isSymbolCalledOrInstantiated(symbolName, context, symbol?.scope)) {
335
547
  symbolUsageCache.set(cacheKey, true);
336
548
  return true;
@@ -489,10 +701,11 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
489
701
  for (const [filePath, fileInfo] of context.files) {
490
702
  if (fileInfo.isTest || fileInfo.isConfig || fileInfo.isEntryPoint)
491
703
  continue;
492
- if (fileInfo.exports.length === 0 && !fileInfo.symbols.some((s) => s.exported))
704
+ if (fileInfo.exports.length === 0 &&
705
+ !fileInfo.symbols.some((s) => s.exported))
493
706
  continue;
494
707
  // Only deep-analyze if exports aren't in import graph
495
- const hasUnimportedExports = fileInfo.exports.some(exp => !isSymbolImported(exp.name, filePath, symbolsImportedFromFile));
708
+ const hasUnimportedExports = fileInfo.exports.some((exp) => !isSymbolImported(exp.name, filePath, symbolsImportedFromFile));
496
709
  if (hasUnimportedExports) {
497
710
  filesToPreload.add(filePath);
498
711
  }
@@ -591,8 +804,9 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
591
804
  const toAnalyze = potentiallyUnused.slice(0, MAX_DEEP_ANALYSIS);
592
805
  if (potentiallyUnused.length > MAX_DEEP_ANALYSIS) {
593
806
  const deepLimitWarning = `Limited deep analysis to ${MAX_DEEP_ANALYSIS} of ${potentiallyUnused.length} potentially unused exports.`;
594
- limitWarning =
595
- limitWarning ? `${limitWarning} ${deepLimitWarning}` : deepLimitWarning;
807
+ limitWarning = limitWarning
808
+ ? `${limitWarning} ${deepLimitWarning}`
809
+ : deepLimitWarning;
596
810
  logger.warn(deepLimitWarning);
597
811
  }
598
812
  // Phase 2: Deep analysis - process potentially unused exports in smaller batches
@@ -605,13 +819,15 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
605
819
  const cacheKey = `${exp.file}:${exp.name}`;
606
820
  const cached = symbolUsageCache.get(cacheKey);
607
821
  if (cached !== undefined) {
608
- return cached ? null : ({
609
- type: "unusedExport",
610
- severity: "low", // Downgrade from medium to low
611
- name: exp.name,
612
- file: exp.relativePath,
613
- message: `Export '${exp.name}' is never used anywhere in the codebase`,
614
- });
822
+ return cached
823
+ ? null
824
+ : {
825
+ type: "unusedExport",
826
+ severity: "low", // Downgrade from medium to low
827
+ name: exp.name,
828
+ file: exp.relativePath,
829
+ message: `Export '${exp.name}' is never used anywhere in the codebase`,
830
+ };
615
831
  }
616
832
  // Check same-file usage first (fastest - uses cached file content)
617
833
  const isUsedInSameFile = await isSymbolUsedInSameFileExports(exp.name, exp.file, context, symbolsImportedFromFile);
@@ -663,7 +879,8 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
663
879
  if (importers.length === 0 && hasExports) {
664
880
  // Python standalone scripts with a __main__ entrypoint are intentionally
665
881
  // runnable modules and should not be treated as orphaned files.
666
- if (context.language === "python" && await isPythonCliScript(filePath)) {
882
+ if (context.language === "python" &&
883
+ (await isPythonCliScript(filePath))) {
667
884
  continue;
668
885
  }
669
886
  // Python-specific: Check if this file is re-exported via __init__.py
@@ -751,7 +968,8 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
751
968
  // and are always up-to-date.
752
969
  if (!anyExportUsed) {
753
970
  for (const exp of fileInfo.exports) {
754
- if (jsxUsedComponents.has(exp.name) || allRawImportedNames.has(exp.name)) {
971
+ if (jsxUsedComponents.has(exp.name) ||
972
+ allRawImportedNames.has(exp.name)) {
755
973
  anyExportUsed = true;
756
974
  break;
757
975
  }
@@ -759,7 +977,9 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
759
977
  // Also check symbols (some exports are tracked as symbols, not in exports array)
760
978
  if (!anyExportUsed) {
761
979
  for (const sym of fileInfo.symbols) {
762
- if (sym.exported && (jsxUsedComponents.has(sym.name) || allRawImportedNames.has(sym.name))) {
980
+ if (sym.exported &&
981
+ (jsxUsedComponents.has(sym.name) ||
982
+ allRawImportedNames.has(sym.name))) {
763
983
  anyExportUsed = true;
764
984
  break;
765
985
  }
@@ -785,10 +1005,22 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
785
1005
  const definedSymbols = new Set();
786
1006
  const usedSymbols = new Set();
787
1007
  const defPatterns = [
788
- { pattern: /function\s+([a-zA-Z0-9_$]+)\s*\(/g, type: "function" },
789
- { pattern: /(?:const|let|var)\s+([a-zA-Z0-9_$]+)\s*=\s*(?:async\s*)?\(/g, type: "function" },
790
- { pattern: /(?:const|let|var)\s+([a-zA-Z0-9_$]+)\s*=\s*.*=>/g, type: "function" },
791
- { pattern: /(?:const|let|var)\s+([A-Z0-9_$]{3,})\s*=/g, type: "constant" },
1008
+ {
1009
+ pattern: /function\s+([a-zA-Z0-9_$]+)\s*\(/g,
1010
+ type: "function",
1011
+ },
1012
+ {
1013
+ pattern: /(?:const|let|var)\s+([a-zA-Z0-9_$]+)\s*=\s*(?:async\s*)?\(/g,
1014
+ type: "function",
1015
+ },
1016
+ {
1017
+ pattern: /(?:const|let|var)\s+([a-zA-Z0-9_$]+)\s*=\s*.*=>/g,
1018
+ type: "function",
1019
+ },
1020
+ {
1021
+ pattern: /(?:const|let|var)\s+([A-Z0-9_$]{3,})\s*=/g,
1022
+ type: "constant",
1023
+ },
792
1024
  { pattern: /def\s+([a-zA-Z0-9_$]+)\s*\(/g, type: "function" },
793
1025
  { pattern: /([A-Z0-9_$]{3,})\s*=\s*/g, type: "constant" }, // Python constants
794
1026
  ];
@@ -804,9 +1036,10 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
804
1036
  usedSymbols.add(match[1]);
805
1037
  }
806
1038
  for (const sym of definedSymbols) {
807
- // For each defined symbol, we expect at least 2 occurrences of the name
1039
+ // For each defined symbol, we expect at least 2 occurrences of the name
808
1040
  // (one for definition, one for usage).
809
- const count = (newCode.match(new RegExp(`\\b${sym.name}\\b`, "g")) || []).length;
1041
+ const count = (newCode.match(new RegExp(`\\b${sym.name}\\b`, "g")) || [])
1042
+ .length;
810
1043
  if (count <= 1) {
811
1044
  issues.push({
812
1045
  type: sym.type === "function" ? "unusedFunction" : "unusedExport",
@@ -827,8 +1060,8 @@ export async function detectDeadCode(context, newCode, filePathFilter, perFileOn
827
1060
  // Separate orphanedFile issues from other dead code issues.
828
1061
  // Limit non-orphan issues (unusedExport, unusedFunction) to 30 for performance,
829
1062
  // but always include ALL orphanedFile entries — they are high-signal and cheap.
830
- const orphanIssues = issues.filter(i => i.type === "orphanedFile");
831
- const otherIssues = issues.filter(i => i.type !== "orphanedFile");
1063
+ const orphanIssues = issues.filter((i) => i.type === "orphanedFile");
1064
+ const otherIssues = issues.filter((i) => i.type !== "orphanedFile");
832
1065
  return [...otherIssues.slice(0, 30), ...orphanIssues];
833
1066
  }
834
1067
  /**
@@ -865,7 +1098,10 @@ async function loadIgnorePatterns(projectPath) {
865
1098
  try {
866
1099
  const ignoreFile = path.join(projectPath, ".vibeguardignore");
867
1100
  const content = await fs.readFile(ignoreFile, "utf-8");
868
- patterns.push(...content.split("\n").map((l) => l.trim()).filter((l) => l && !l.startsWith("#")));
1101
+ patterns.push(...content
1102
+ .split("\n")
1103
+ .map((l) => l.trim())
1104
+ .filter((l) => l && !l.startsWith("#")));
869
1105
  }
870
1106
  catch {
871
1107
  // Fallback to basic patterns if file doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"deadCode.js","sourceRoot":"","sources":["../../../src/tools/validation/deadCode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deadCode.js","sourceRoot":"","sources":["../../../src/tools/validation/deadCode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/tools/validation/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA8HpB;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAqB,EAC/B,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CA8F5B;AA4BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrE;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,aAAa,EAAE,CA8BjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAiE5C;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,QAAQ,EAAE,EACvB,WAAW,EAAE,aAAa,EAAE,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,SAAS,EAAO,EACzB,aAAa,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa,EACnD,OAAO,GAAE,cAAc,GAAG,IAAW,EAAE,gBAAgB;AACvD,QAAQ,GAAE,MAAW,EAAE,kBAAkB;AACzC,eAAe,GAAE,GAAG,CAAC,MAAM,CAAa,EAAE,8CAA8C;AACxF,cAAc,GAAE,gBAAgB,EAAO,GACtC,eAAe,EAAE,CAiwEnB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,QAAQ,EAAE,EACvB,cAAc,EAAE,cAAc,EAC9B,QAAQ,GAAE,MAAW,GACpB,eAAe,EAAE,CAkCnB"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/tools/validation/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA+JpB;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAqB,EAC/B,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CA8F5B;AA4BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrE;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,aAAa,EAAE,CA8BjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAiE5C;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,QAAQ,EAAE,EACvB,WAAW,EAAE,aAAa,EAAE,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,SAAS,EAAO,EACzB,aAAa,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa,EACnD,OAAO,GAAE,cAAc,GAAG,IAAW,EAAE,gBAAgB;AACvD,QAAQ,GAAE,MAAW,EAAE,kBAAkB;AACzC,eAAe,GAAE,GAAG,CAAC,MAAM,CAAa,EAAE,8CAA8C;AACxF,cAAc,GAAE,gBAAgB,EAAO,GACtC,eAAe,EAAE,CAiyEnB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,QAAQ,EAAE,EACvB,cAAc,EAAE,cAAc,EAC9B,QAAQ,GAAE,MAAW,GACpB,eAAe,EAAE,CAkCnB"}
@@ -27,6 +27,41 @@ import { isJSBuiltin, isPythonBuiltin, isTSBuiltinType, NODE_BUILTIN_MODULES, }
27
27
  import { usagePatternAnalyzer } from "../../analyzers/usagePatterns.js";
28
28
  import { isContextuallyValid, } from "./contextualNaming.js";
29
29
  import { checkPackageRegistry } from "./registry.js";
30
+ // =============================================================================
31
+ // Optional Prisma model delegate validation (monorepo-friendly, sync)
32
+ // =============================================================================
33
+ /**
34
+ * Exhaustive list of methods exposed on every Prisma Client delegate (model accessor).
35
+ * Source: https://www.prisma.io/docs/orm/reference/prisma-client-reference
36
+ *
37
+ * Used to catch hallucinated Prisma methods like `prisma.user.bulkUpdate()` —
38
+ * the delegate (user) may be valid, but the method name is fabricated.
39
+ * Update this set when Prisma releases new delegate-level operations.
40
+ */
41
+ const PRISMA_DELEGATE_METHODS = new Set([
42
+ // Reads
43
+ "findUnique",
44
+ "findUniqueOrThrow",
45
+ "findFirst",
46
+ "findFirstOrThrow",
47
+ "findMany",
48
+ // Writes
49
+ "create",
50
+ "createMany",
51
+ "createManyAndReturn",
52
+ "update",
53
+ "updateMany",
54
+ "updateManyAndReturn",
55
+ "upsert",
56
+ "delete",
57
+ "deleteMany",
58
+ // Aggregation
59
+ "count",
60
+ "aggregate",
61
+ "groupBy",
62
+ // Field references (Prisma 5+)
63
+ "fields",
64
+ ]);
30
65
  let prismaDelegateCache = null;
31
66
  function toPrismaDelegateName(modelName) {
32
67
  if (!modelName)
@@ -1376,6 +1411,34 @@ typeReferences = []) {
1376
1411
  });
1377
1412
  continue;
1378
1413
  }
1414
+ else if (delegates.size > 0 &&
1415
+ !PRISMA_DELEGATE_METHODS.has(used.name)) {
1416
+ // The model delegate IS valid, but the method called on it does not exist
1417
+ // in Prisma Client's fixed operation set — this is a hallucinated method.
1418
+ // Example: prisma.pantryItem.bulkUpdate() — pantryItem is real, bulkUpdate is not.
1419
+ const { confidence, reasoning } = calculateConfidence({
1420
+ issueType: "nonExistentMethod",
1421
+ symbolName: used.name,
1422
+ similarSymbols: [],
1423
+ existsInProject: false,
1424
+ strictMode,
1425
+ });
1426
+ issues.push({
1427
+ type: "nonExistentMethod",
1428
+ severity: "critical",
1429
+ message: `Prisma method '${used.name}' does not exist on delegate '${delegate}' — Prisma Client does not expose this operation`,
1430
+ line: used.line,
1431
+ file: filePath,
1432
+ code: used.code,
1433
+ suggestion: `Replace '${used.name}' with a real Prisma delegate method. ` +
1434
+ `For bulk writes use: createMany, updateMany, deleteMany, or upsert inside $transaction. ` +
1435
+ `Full list: findMany, findUnique, findFirst, create, createMany, update, updateMany, upsert, delete, deleteMany, count, aggregate, groupBy.`,
1436
+ confidence: Math.max(confidence, 95),
1437
+ reasoning: reasoning +
1438
+ ` Prisma Client delegates expose only a fixed set of CRUD operations. '${used.name}' is not among them — it is a hallucinated method name.`,
1439
+ });
1440
+ continue;
1441
+ }
1379
1442
  }
1380
1443
  }
1381
1444
  }