codeguardian-mcp 1.0.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.
Files changed (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +348 -0
  3. package/dist/agent/agentTools.d.ts +26 -0
  4. package/dist/agent/agentTools.d.ts.map +1 -0
  5. package/dist/agent/agentTools.js +699 -0
  6. package/dist/agent/agentTools.js.map +1 -0
  7. package/dist/agent/autoValidator.d.ts +110 -0
  8. package/dist/agent/autoValidator.d.ts.map +1 -0
  9. package/dist/agent/autoValidator.js +964 -0
  10. package/dist/agent/autoValidator.js.map +1 -0
  11. package/dist/agent/fileWatcher.d.ts +28 -0
  12. package/dist/agent/fileWatcher.d.ts.map +1 -0
  13. package/dist/agent/fileWatcher.js +88 -0
  14. package/dist/agent/fileWatcher.js.map +1 -0
  15. package/dist/agent/guardianPersistence.d.ts +98 -0
  16. package/dist/agent/guardianPersistence.d.ts.map +1 -0
  17. package/dist/agent/guardianPersistence.js +296 -0
  18. package/dist/agent/guardianPersistence.js.map +1 -0
  19. package/dist/agent/mcpNotifications.d.ts +38 -0
  20. package/dist/agent/mcpNotifications.d.ts.map +1 -0
  21. package/dist/agent/mcpNotifications.js +81 -0
  22. package/dist/agent/mcpNotifications.js.map +1 -0
  23. package/dist/analyzers/aiPatterns.d.ts +16 -0
  24. package/dist/analyzers/aiPatterns.d.ts.map +1 -0
  25. package/dist/analyzers/aiPatterns.js +103 -0
  26. package/dist/analyzers/aiPatterns.js.map +1 -0
  27. package/dist/analyzers/antiPatterns.d.ts +60 -0
  28. package/dist/analyzers/antiPatterns.d.ts.map +1 -0
  29. package/dist/analyzers/antiPatterns.js +198 -0
  30. package/dist/analyzers/antiPatterns.js.map +1 -0
  31. package/dist/analyzers/builtinTypes.d.ts +18 -0
  32. package/dist/analyzers/builtinTypes.d.ts.map +1 -0
  33. package/dist/analyzers/builtinTypes.js +1275 -0
  34. package/dist/analyzers/builtinTypes.js.map +1 -0
  35. package/dist/analyzers/complexity.d.ts +14 -0
  36. package/dist/analyzers/complexity.d.ts.map +1 -0
  37. package/dist/analyzers/complexity.js +610 -0
  38. package/dist/analyzers/complexity.js.map +1 -0
  39. package/dist/analyzers/findingVerifier.d.ts +59 -0
  40. package/dist/analyzers/findingVerifier.d.ts.map +1 -0
  41. package/dist/analyzers/findingVerifier.js +1169 -0
  42. package/dist/analyzers/findingVerifier.js.map +1 -0
  43. package/dist/analyzers/impactAnalyzer.d.ts +53 -0
  44. package/dist/analyzers/impactAnalyzer.d.ts.map +1 -0
  45. package/dist/analyzers/impactAnalyzer.js +152 -0
  46. package/dist/analyzers/impactAnalyzer.js.map +1 -0
  47. package/dist/analyzers/languageDetector.d.ts +48 -0
  48. package/dist/analyzers/languageDetector.d.ts.map +1 -0
  49. package/dist/analyzers/languageDetector.js +404 -0
  50. package/dist/analyzers/languageDetector.js.map +1 -0
  51. package/dist/analyzers/parsers/incrementalParser.d.ts +53 -0
  52. package/dist/analyzers/parsers/incrementalParser.d.ts.map +1 -0
  53. package/dist/analyzers/parsers/incrementalParser.js +193 -0
  54. package/dist/analyzers/parsers/incrementalParser.js.map +1 -0
  55. package/dist/analyzers/parsers/scopeResolver.d.ts +92 -0
  56. package/dist/analyzers/parsers/scopeResolver.d.ts.map +1 -0
  57. package/dist/analyzers/parsers/scopeResolver.js +324 -0
  58. package/dist/analyzers/parsers/scopeResolver.js.map +1 -0
  59. package/dist/analyzers/parsers/semanticIndex.d.ts +127 -0
  60. package/dist/analyzers/parsers/semanticIndex.d.ts.map +1 -0
  61. package/dist/analyzers/parsers/semanticIndex.js +429 -0
  62. package/dist/analyzers/parsers/semanticIndex.js.map +1 -0
  63. package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts +42 -0
  64. package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts.map +1 -0
  65. package/dist/analyzers/parsers/sessionDiffAnalyzer.js +233 -0
  66. package/dist/analyzers/parsers/sessionDiffAnalyzer.js.map +1 -0
  67. package/dist/analyzers/parsers/treeSitterParser.d.ts +76 -0
  68. package/dist/analyzers/parsers/treeSitterParser.d.ts.map +1 -0
  69. package/dist/analyzers/parsers/treeSitterParser.js +709 -0
  70. package/dist/analyzers/parsers/treeSitterParser.js.map +1 -0
  71. package/dist/analyzers/relevanceScorer.d.ts +43 -0
  72. package/dist/analyzers/relevanceScorer.d.ts.map +1 -0
  73. package/dist/analyzers/relevanceScorer.js +200 -0
  74. package/dist/analyzers/relevanceScorer.js.map +1 -0
  75. package/dist/analyzers/standardLibrary.d.ts +22 -0
  76. package/dist/analyzers/standardLibrary.d.ts.map +1 -0
  77. package/dist/analyzers/standardLibrary.js +211 -0
  78. package/dist/analyzers/standardLibrary.js.map +1 -0
  79. package/dist/analyzers/symbolGraph.d.ts +30 -0
  80. package/dist/analyzers/symbolGraph.d.ts.map +1 -0
  81. package/dist/analyzers/symbolGraph.js +380 -0
  82. package/dist/analyzers/symbolGraph.js.map +1 -0
  83. package/dist/analyzers/symbolTable.d.ts +18 -0
  84. package/dist/analyzers/symbolTable.d.ts.map +1 -0
  85. package/dist/analyzers/symbolTable.js +176 -0
  86. package/dist/analyzers/symbolTable.js.map +1 -0
  87. package/dist/analyzers/typeChecker.d.ts +13 -0
  88. package/dist/analyzers/typeChecker.d.ts.map +1 -0
  89. package/dist/analyzers/typeChecker.js +580 -0
  90. package/dist/analyzers/typeChecker.js.map +1 -0
  91. package/dist/analyzers/usagePatterns.d.ts +42 -0
  92. package/dist/analyzers/usagePatterns.d.ts.map +1 -0
  93. package/dist/analyzers/usagePatterns.js +75 -0
  94. package/dist/analyzers/usagePatterns.js.map +1 -0
  95. package/dist/api-contract/context/backend.d.ts +19 -0
  96. package/dist/api-contract/context/backend.d.ts.map +1 -0
  97. package/dist/api-contract/context/backend.js +64 -0
  98. package/dist/api-contract/context/backend.js.map +1 -0
  99. package/dist/api-contract/context/contract.d.ts +34 -0
  100. package/dist/api-contract/context/contract.d.ts.map +1 -0
  101. package/dist/api-contract/context/contract.js +306 -0
  102. package/dist/api-contract/context/contract.js.map +1 -0
  103. package/dist/api-contract/context/frontend.d.ts +19 -0
  104. package/dist/api-contract/context/frontend.d.ts.map +1 -0
  105. package/dist/api-contract/context/frontend.js +64 -0
  106. package/dist/api-contract/context/frontend.js.map +1 -0
  107. package/dist/api-contract/detector.d.ts +28 -0
  108. package/dist/api-contract/detector.d.ts.map +1 -0
  109. package/dist/api-contract/detector.js +393 -0
  110. package/dist/api-contract/detector.js.map +1 -0
  111. package/dist/api-contract/extractors/python.d.ts +32 -0
  112. package/dist/api-contract/extractors/python.d.ts.map +1 -0
  113. package/dist/api-contract/extractors/python.js +521 -0
  114. package/dist/api-contract/extractors/python.js.map +1 -0
  115. package/dist/api-contract/extractors/pythonAstUtils.d.ts +44 -0
  116. package/dist/api-contract/extractors/pythonAstUtils.d.ts.map +1 -0
  117. package/dist/api-contract/extractors/pythonAstUtils.js +489 -0
  118. package/dist/api-contract/extractors/pythonAstUtils.js.map +1 -0
  119. package/dist/api-contract/extractors/tsAstUtils.d.ts +47 -0
  120. package/dist/api-contract/extractors/tsAstUtils.d.ts.map +1 -0
  121. package/dist/api-contract/extractors/tsAstUtils.js +173 -0
  122. package/dist/api-contract/extractors/tsAstUtils.js.map +1 -0
  123. package/dist/api-contract/extractors/typescript.d.ts +32 -0
  124. package/dist/api-contract/extractors/typescript.d.ts.map +1 -0
  125. package/dist/api-contract/extractors/typescript.js +666 -0
  126. package/dist/api-contract/extractors/typescript.js.map +1 -0
  127. package/dist/api-contract/index.d.ts +104 -0
  128. package/dist/api-contract/index.d.ts.map +1 -0
  129. package/dist/api-contract/index.js +232 -0
  130. package/dist/api-contract/index.js.map +1 -0
  131. package/dist/api-contract/types.d.ts +151 -0
  132. package/dist/api-contract/types.d.ts.map +1 -0
  133. package/dist/api-contract/types.js +19 -0
  134. package/dist/api-contract/types.js.map +1 -0
  135. package/dist/api-contract/validators/endpoint.d.ts +21 -0
  136. package/dist/api-contract/validators/endpoint.d.ts.map +1 -0
  137. package/dist/api-contract/validators/endpoint.js +224 -0
  138. package/dist/api-contract/validators/endpoint.js.map +1 -0
  139. package/dist/api-contract/validators/index.d.ts +40 -0
  140. package/dist/api-contract/validators/index.d.ts.map +1 -0
  141. package/dist/api-contract/validators/index.js +875 -0
  142. package/dist/api-contract/validators/index.js.map +1 -0
  143. package/dist/api-contract/validators/parameter.d.ts +17 -0
  144. package/dist/api-contract/validators/parameter.d.ts.map +1 -0
  145. package/dist/api-contract/validators/parameter.js +250 -0
  146. package/dist/api-contract/validators/parameter.js.map +1 -0
  147. package/dist/api-contract/validators/type.d.ts +38 -0
  148. package/dist/api-contract/validators/type.d.ts.map +1 -0
  149. package/dist/api-contract/validators/type.js +244 -0
  150. package/dist/api-contract/validators/type.js.map +1 -0
  151. package/dist/context/apiContract/complexTypeSupport.d.ts +83 -0
  152. package/dist/context/apiContract/complexTypeSupport.d.ts.map +1 -0
  153. package/dist/context/apiContract/complexTypeSupport.js +665 -0
  154. package/dist/context/apiContract/complexTypeSupport.js.map +1 -0
  155. package/dist/context/apiContract/graphqlSupport.d.ts +105 -0
  156. package/dist/context/apiContract/graphqlSupport.d.ts.map +1 -0
  157. package/dist/context/apiContract/graphqlSupport.js +671 -0
  158. package/dist/context/apiContract/graphqlSupport.js.map +1 -0
  159. package/dist/context/apiContract/index.d.ts +14 -0
  160. package/dist/context/apiContract/index.d.ts.map +1 -0
  161. package/dist/context/apiContract/index.js +17 -0
  162. package/dist/context/apiContract/index.js.map +1 -0
  163. package/dist/context/apiContract/webSocketSupport.d.ts +104 -0
  164. package/dist/context/apiContract/webSocketSupport.d.ts.map +1 -0
  165. package/dist/context/apiContract/webSocketSupport.js +465 -0
  166. package/dist/context/apiContract/webSocketSupport.js.map +1 -0
  167. package/dist/context/apiContractContext.d.ts +15 -0
  168. package/dist/context/apiContractContext.d.ts.map +1 -0
  169. package/dist/context/apiContractContext.js +979 -0
  170. package/dist/context/apiContractContext.js.map +1 -0
  171. package/dist/context/apiContractExtraction.d.ts +52 -0
  172. package/dist/context/apiContractExtraction.d.ts.map +1 -0
  173. package/dist/context/apiContractExtraction.js +438 -0
  174. package/dist/context/apiContractExtraction.js.map +1 -0
  175. package/dist/context/contextLineage.d.ts +79 -0
  176. package/dist/context/contextLineage.d.ts.map +1 -0
  177. package/dist/context/contextLineage.js +259 -0
  178. package/dist/context/contextLineage.js.map +1 -0
  179. package/dist/context/contextOrchestrator.d.ts +57 -0
  180. package/dist/context/contextOrchestrator.d.ts.map +1 -0
  181. package/dist/context/contextOrchestrator.js +162 -0
  182. package/dist/context/contextOrchestrator.js.map +1 -0
  183. package/dist/context/intentTracker.d.ts +73 -0
  184. package/dist/context/intentTracker.d.ts.map +1 -0
  185. package/dist/context/intentTracker.js +168 -0
  186. package/dist/context/intentTracker.js.map +1 -0
  187. package/dist/context/projectContext.d.ts +219 -0
  188. package/dist/context/projectContext.d.ts.map +1 -0
  189. package/dist/context/projectContext.js +1984 -0
  190. package/dist/context/projectContext.js.map +1 -0
  191. package/dist/prompts/index.d.ts +17 -0
  192. package/dist/prompts/index.d.ts.map +1 -0
  193. package/dist/prompts/index.js +260 -0
  194. package/dist/prompts/index.js.map +1 -0
  195. package/dist/prompts/library.d.ts +51 -0
  196. package/dist/prompts/library.d.ts.map +1 -0
  197. package/dist/prompts/library.js +65 -0
  198. package/dist/prompts/library.js.map +1 -0
  199. package/dist/prompts/templates.d.ts +44 -0
  200. package/dist/prompts/templates.d.ts.map +1 -0
  201. package/dist/prompts/templates.js +97 -0
  202. package/dist/prompts/templates.js.map +1 -0
  203. package/dist/queue/jobPersistence.d.ts +46 -0
  204. package/dist/queue/jobPersistence.d.ts.map +1 -0
  205. package/dist/queue/jobPersistence.js +158 -0
  206. package/dist/queue/jobPersistence.js.map +1 -0
  207. package/dist/queue/jobQueue.d.ts +116 -0
  208. package/dist/queue/jobQueue.d.ts.map +1 -0
  209. package/dist/queue/jobQueue.js +275 -0
  210. package/dist/queue/jobQueue.js.map +1 -0
  211. package/dist/queue/validationJob.d.ts +69 -0
  212. package/dist/queue/validationJob.d.ts.map +1 -0
  213. package/dist/queue/validationJob.js +435 -0
  214. package/dist/queue/validationJob.js.map +1 -0
  215. package/dist/resources/index.d.ts +15 -0
  216. package/dist/resources/index.d.ts.map +1 -0
  217. package/dist/resources/index.js +328 -0
  218. package/dist/resources/index.js.map +1 -0
  219. package/dist/resources/validationReportStore.d.ts +170 -0
  220. package/dist/resources/validationReportStore.d.ts.map +1 -0
  221. package/dist/resources/validationReportStore.js +515 -0
  222. package/dist/resources/validationReportStore.js.map +1 -0
  223. package/dist/server.d.ts +12 -0
  224. package/dist/server.d.ts.map +1 -0
  225. package/dist/server.js +102 -0
  226. package/dist/server.js.map +1 -0
  227. package/dist/tools/asyncValidation.d.ts +19 -0
  228. package/dist/tools/asyncValidation.d.ts.map +1 -0
  229. package/dist/tools/asyncValidation.js +346 -0
  230. package/dist/tools/asyncValidation.js.map +1 -0
  231. package/dist/tools/buildContext.d.ts +17 -0
  232. package/dist/tools/buildContext.d.ts.map +1 -0
  233. package/dist/tools/buildContext.js +188 -0
  234. package/dist/tools/buildContext.js.map +1 -0
  235. package/dist/tools/getDependencyGraph.d.ts +16 -0
  236. package/dist/tools/getDependencyGraph.d.ts.map +1 -0
  237. package/dist/tools/getDependencyGraph.js +436 -0
  238. package/dist/tools/getDependencyGraph.js.map +1 -0
  239. package/dist/tools/incrementalValidation.d.ts +71 -0
  240. package/dist/tools/incrementalValidation.d.ts.map +1 -0
  241. package/dist/tools/incrementalValidation.js +203 -0
  242. package/dist/tools/incrementalValidation.js.map +1 -0
  243. package/dist/tools/index.d.ts +24 -0
  244. package/dist/tools/index.d.ts.map +1 -0
  245. package/dist/tools/index.js +106 -0
  246. package/dist/tools/index.js.map +1 -0
  247. package/dist/tools/validateCode.d.ts +17 -0
  248. package/dist/tools/validateCode.d.ts.map +1 -0
  249. package/dist/tools/validateCode.js +368 -0
  250. package/dist/tools/validateCode.js.map +1 -0
  251. package/dist/tools/validateCodeLite.d.ts +2 -0
  252. package/dist/tools/validateCodeLite.d.ts.map +1 -0
  253. package/dist/tools/validateCodeLite.js +2 -0
  254. package/dist/tools/validateCodeLite.js.map +1 -0
  255. package/dist/tools/validation/builtins.d.ts +92 -0
  256. package/dist/tools/validation/builtins.d.ts.map +1 -0
  257. package/dist/tools/validation/builtins.js +2184 -0
  258. package/dist/tools/validation/builtins.js.map +1 -0
  259. package/dist/tools/validation/contextualNaming.d.ts +99 -0
  260. package/dist/tools/validation/contextualNaming.d.ts.map +1 -0
  261. package/dist/tools/validation/contextualNaming.js +959 -0
  262. package/dist/tools/validation/contextualNaming.js.map +1 -0
  263. package/dist/tools/validation/deadCode.d.ts +115 -0
  264. package/dist/tools/validation/deadCode.d.ts.map +1 -0
  265. package/dist/tools/validation/deadCode.js +861 -0
  266. package/dist/tools/validation/deadCode.js.map +1 -0
  267. package/dist/tools/validation/extractors/index.d.ts +131 -0
  268. package/dist/tools/validation/extractors/index.d.ts.map +1 -0
  269. package/dist/tools/validation/extractors/index.js +233 -0
  270. package/dist/tools/validation/extractors/index.js.map +1 -0
  271. package/dist/tools/validation/extractors/javascript.d.ts +73 -0
  272. package/dist/tools/validation/extractors/javascript.d.ts.map +1 -0
  273. package/dist/tools/validation/extractors/javascript.js +1841 -0
  274. package/dist/tools/validation/extractors/javascript.js.map +1 -0
  275. package/dist/tools/validation/extractors/python.d.ts +93 -0
  276. package/dist/tools/validation/extractors/python.d.ts.map +1 -0
  277. package/dist/tools/validation/extractors/python.js +799 -0
  278. package/dist/tools/validation/extractors/python.js.map +1 -0
  279. package/dist/tools/validation/manifest.d.ts +45 -0
  280. package/dist/tools/validation/manifest.d.ts.map +1 -0
  281. package/dist/tools/validation/manifest.js +719 -0
  282. package/dist/tools/validation/manifest.js.map +1 -0
  283. package/dist/tools/validation/parser.d.ts +58 -0
  284. package/dist/tools/validation/parser.d.ts.map +1 -0
  285. package/dist/tools/validation/parser.js +232 -0
  286. package/dist/tools/validation/parser.js.map +1 -0
  287. package/dist/tools/validation/registry.d.ts +15 -0
  288. package/dist/tools/validation/registry.d.ts.map +1 -0
  289. package/dist/tools/validation/registry.js +169 -0
  290. package/dist/tools/validation/registry.js.map +1 -0
  291. package/dist/tools/validation/scoring.d.ts +54 -0
  292. package/dist/tools/validation/scoring.d.ts.map +1 -0
  293. package/dist/tools/validation/scoring.js +242 -0
  294. package/dist/tools/validation/scoring.js.map +1 -0
  295. package/dist/tools/validation/types.d.ts +120 -0
  296. package/dist/tools/validation/types.d.ts.map +1 -0
  297. package/dist/tools/validation/types.js +11 -0
  298. package/dist/tools/validation/types.js.map +1 -0
  299. package/dist/tools/validation/unusedLocals.d.ts +36 -0
  300. package/dist/tools/validation/unusedLocals.d.ts.map +1 -0
  301. package/dist/tools/validation/unusedLocals.js +333 -0
  302. package/dist/tools/validation/unusedLocals.js.map +1 -0
  303. package/dist/tools/validation/validation.d.ts +98 -0
  304. package/dist/tools/validation/validation.d.ts.map +1 -0
  305. package/dist/tools/validation/validation.js +1837 -0
  306. package/dist/tools/validation/validation.js.map +1 -0
  307. package/dist/types/codeGraph.d.ts +163 -0
  308. package/dist/types/codeGraph.d.ts.map +1 -0
  309. package/dist/types/codeGraph.js +9 -0
  310. package/dist/types/codeGraph.js.map +1 -0
  311. package/dist/types/symbolGraph.d.ts +68 -0
  312. package/dist/types/symbolGraph.d.ts.map +1 -0
  313. package/dist/types/symbolGraph.js +10 -0
  314. package/dist/types/symbolGraph.js.map +1 -0
  315. package/dist/types/tools.d.ts +43 -0
  316. package/dist/types/tools.d.ts.map +1 -0
  317. package/dist/types/tools.js +7 -0
  318. package/dist/types/tools.js.map +1 -0
  319. package/dist/utils/fileFilter.d.ts +37 -0
  320. package/dist/utils/fileFilter.d.ts.map +1 -0
  321. package/dist/utils/fileFilter.js +91 -0
  322. package/dist/utils/fileFilter.js.map +1 -0
  323. package/dist/utils/gitUtils.d.ts +28 -0
  324. package/dist/utils/gitUtils.d.ts.map +1 -0
  325. package/dist/utils/gitUtils.js +81 -0
  326. package/dist/utils/gitUtils.js.map +1 -0
  327. package/dist/utils/logger.d.ts +15 -0
  328. package/dist/utils/logger.d.ts.map +1 -0
  329. package/dist/utils/logger.js +38 -0
  330. package/dist/utils/logger.js.map +1 -0
  331. package/dist/utils/serialization.d.ts +25 -0
  332. package/dist/utils/serialization.d.ts.map +1 -0
  333. package/dist/utils/serialization.js +53 -0
  334. package/dist/utils/serialization.js.map +1 -0
  335. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incrementalParser.js","sourceRoot":"","sources":["../../../src/analyzers/parsers/incrementalParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Context-Aware Scope Resolution
3
+ *
4
+ * Accurately resolves symbols considering scope hierarchy, imports, and context.
5
+ * Critical for detecting hallucinations in AI-generated code.
6
+ *
7
+ * @format
8
+ */
9
+ import { CodeGraph, SymbolNode, Reference, Scope, SemanticIndex } from "../../types/codeGraph.js";
10
+ export declare class ScopeResolver {
11
+ private graph;
12
+ private index?;
13
+ constructor(graph: CodeGraph, index?: SemanticIndex | undefined);
14
+ /**
15
+ * Resolve symbol in given scope with full context awareness
16
+ */
17
+ resolveSymbol(name: string, currentScope: Scope): SymbolNode | null;
18
+ /**
19
+ * Resolve method call on an object
20
+ */
21
+ resolveMethodCall(objectName: string, methodName: string, scope: Scope): SymbolNode | null;
22
+ /**
23
+ * Resolve property access
24
+ */
25
+ resolvePropertyAccess(objectName: string, propertyName: string, scope: Scope): SymbolNode | null;
26
+ /**
27
+ * Resolve import
28
+ */
29
+ private resolveImport;
30
+ /**
31
+ * Get symbol type information
32
+ */
33
+ private getSymbolType;
34
+ /**
35
+ * Find scope by name
36
+ */
37
+ private findScopeByName;
38
+ /**
39
+ * Resolve all references in a scope
40
+ */
41
+ resolveAllReferences(scope: Scope): Map<Reference, SymbolNode | null>;
42
+ /**
43
+ * Check if a reference is valid in given scope
44
+ */
45
+ isValidReference(ref: Reference, scope: Scope): boolean;
46
+ /**
47
+ * Find unresolved references in scope
48
+ */
49
+ findUnresolvedReferences(scope: Scope): Reference[];
50
+ /**
51
+ * Get scope chain (for debugging)
52
+ */
53
+ getScopeChain(scope: Scope): string[];
54
+ /**
55
+ * Find symbol with full qualification
56
+ */
57
+ resolveQualifiedName(qualifiedName: string, scope: Scope): SymbolNode | null;
58
+ }
59
+ /**
60
+ * Scope analysis utilities
61
+ */
62
+ export declare class ScopeAnalyzer {
63
+ /**
64
+ * Analyze scope complexity
65
+ */
66
+ static analyzeScopeComplexity(scope: Scope): {
67
+ depth: number;
68
+ symbolCount: number;
69
+ childCount: number;
70
+ totalDescendants: number;
71
+ };
72
+ /**
73
+ * Get scope depth in hierarchy
74
+ */
75
+ private static getScopeDepth;
76
+ /**
77
+ * Count all descendant scopes
78
+ */
79
+ private static countDescendants;
80
+ /**
81
+ * Find all symbols in scope and descendants
82
+ */
83
+ static getAllSymbols(scope: Scope): SymbolNode[];
84
+ /**
85
+ * Check for shadowed variables
86
+ */
87
+ static findShadowedSymbols(scope: Scope): Array<{
88
+ symbol: SymbolNode;
89
+ shadowedBy: SymbolNode;
90
+ }>;
91
+ }
92
+ //# sourceMappingURL=scopeResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeResolver.d.ts","sourceRoot":"","sources":["../../../src/analyzers/parsers/scopeResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,aAAa,EACd,MAAM,0BAA0B,CAAC;AAGlC,qBAAa,aAAa;IAEtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK,CAAC;gBADN,KAAK,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,aAAa,YAAA;IAG/B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,GAAG,UAAU,GAAG,IAAI;IAgCnE;;OAEG;IACH,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,GACX,UAAU,GAAG,IAAI;IAyCpB;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GACX,UAAU,GAAG,IAAI;IAuBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAerE;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;IAKvD;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE;IAiBnD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE;IAYrC;;OAEG;IACH,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,IAAI;CAyC7E;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG;QAC3C,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IASD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAU/B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE;IAUhD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;QAC9C,MAAM,EAAE,UAAU,CAAC;QACnB,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC;CA2BH"}
@@ -0,0 +1,324 @@
1
+ /**
2
+ * Context-Aware Scope Resolution
3
+ *
4
+ * Accurately resolves symbols considering scope hierarchy, imports, and context.
5
+ * Critical for detecting hallucinations in AI-generated code.
6
+ *
7
+ * @format
8
+ */
9
+ import { logger } from "../../utils/logger.js";
10
+ export class ScopeResolver {
11
+ graph;
12
+ index;
13
+ constructor(graph, index) {
14
+ this.graph = graph;
15
+ this.index = index;
16
+ }
17
+ /**
18
+ * Resolve symbol in given scope with full context awareness
19
+ */
20
+ resolveSymbol(name, currentScope) {
21
+ // 1. Check local scope first
22
+ let scope = currentScope;
23
+ while (scope) {
24
+ const symbol = scope.symbols.get(name);
25
+ if (symbol) {
26
+ logger.debug(`Resolved '${name}' in scope '${scope.name}'`);
27
+ return symbol;
28
+ }
29
+ scope = scope.parent;
30
+ }
31
+ // 2. Check imports in current file
32
+ if (currentScope.location) {
33
+ const imported = this.resolveImport(name, currentScope.location.file);
34
+ if (imported) {
35
+ logger.debug(`Resolved '${name}' from imports`);
36
+ return imported;
37
+ }
38
+ }
39
+ // 3. Check global scope
40
+ const globalSymbol = this.graph.globalScope.symbols.get(name);
41
+ if (globalSymbol) {
42
+ logger.debug(`Resolved '${name}' in global scope`);
43
+ return globalSymbol;
44
+ }
45
+ logger.debug(`Could not resolve '${name}'`);
46
+ return null; // Symbol doesn't exist - HALLUCINATION!
47
+ }
48
+ /**
49
+ * Resolve method call on an object
50
+ */
51
+ resolveMethodCall(objectName, methodName, scope) {
52
+ // 1. Resolve the object
53
+ const objectSymbol = this.resolveSymbol(objectName, scope);
54
+ if (!objectSymbol) {
55
+ logger.debug(`Object '${objectName}' not found`);
56
+ return null;
57
+ }
58
+ // 2. Get object's type
59
+ const type = this.getSymbolType(objectSymbol);
60
+ if (!type) {
61
+ logger.debug(`Could not determine type of '${objectName}'`);
62
+ return null;
63
+ }
64
+ // 3. Check if type has this method
65
+ if (objectSymbol.methods && objectSymbol.methods.has(methodName)) {
66
+ const method = objectSymbol.methods.get(methodName);
67
+ logger.debug(`Resolved method '${methodName}' on '${objectName}'`);
68
+ return method || null;
69
+ }
70
+ // 4. Check class definition for methods
71
+ if (objectSymbol.type === "class") {
72
+ // Look for method in class scope
73
+ const classScope = this.findScopeByName(objectSymbol.name);
74
+ if (classScope) {
75
+ const method = classScope.symbols.get(methodName);
76
+ if (method && method.type === "method") {
77
+ logger.debug(`Resolved method '${methodName}' in class '${objectName}'`);
78
+ return method;
79
+ }
80
+ }
81
+ }
82
+ logger.debug(`Method '${methodName}' not found on '${objectName}'`);
83
+ return null; // Method doesn't exist - HALLUCINATION!
84
+ }
85
+ /**
86
+ * Resolve property access
87
+ */
88
+ resolvePropertyAccess(objectName, propertyName, scope) {
89
+ const objectSymbol = this.resolveSymbol(objectName, scope);
90
+ if (!objectSymbol)
91
+ return null;
92
+ // Check properties
93
+ if (objectSymbol.properties && objectSymbol.properties.has(propertyName)) {
94
+ return objectSymbol.properties.get(propertyName) || null;
95
+ }
96
+ // Check class fields
97
+ if (objectSymbol.type === "class") {
98
+ const classScope = this.findScopeByName(objectSymbol.name);
99
+ if (classScope) {
100
+ const property = classScope.symbols.get(propertyName);
101
+ if (property && property.type === "property") {
102
+ return property;
103
+ }
104
+ }
105
+ }
106
+ return null;
107
+ }
108
+ /**
109
+ * Resolve import
110
+ */
111
+ resolveImport(name, filePath) {
112
+ const importNode = this.graph.imports.get(filePath);
113
+ if (!importNode)
114
+ return null;
115
+ // Check if name is imported
116
+ for (const imported of importNode.names) {
117
+ if (imported.local === name) {
118
+ // Create symbol for imported name
119
+ return {
120
+ name: imported.local,
121
+ type: "variable", // Could be function, class, etc.
122
+ location: importNode.location,
123
+ usages: [],
124
+ definedIn: "external",
125
+ documentation: `Imported from ${importNode.module}`,
126
+ };
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ /**
132
+ * Get symbol type information
133
+ */
134
+ getSymbolType(symbol) {
135
+ // If symbol has explicit type
136
+ if (symbol.returnType) {
137
+ return symbol.returnType;
138
+ }
139
+ // Use symbol's declared type
140
+ return symbol.type;
141
+ }
142
+ /**
143
+ * Find scope by name
144
+ */
145
+ findScopeByName(name) {
146
+ for (const scope of this.graph.scopes.values()) {
147
+ if (scope.name === name) {
148
+ return scope;
149
+ }
150
+ }
151
+ return null;
152
+ }
153
+ /**
154
+ * Resolve all references in a scope
155
+ */
156
+ resolveAllReferences(scope) {
157
+ const resolutions = new Map();
158
+ for (const refs of this.graph.references.values()) {
159
+ for (const ref of refs) {
160
+ if (ref.scope === scope.name) {
161
+ const resolved = this.resolveSymbol(ref.name, scope);
162
+ resolutions.set(ref, resolved);
163
+ }
164
+ }
165
+ }
166
+ return resolutions;
167
+ }
168
+ /**
169
+ * Check if a reference is valid in given scope
170
+ */
171
+ isValidReference(ref, scope) {
172
+ const resolved = this.resolveSymbol(ref.name, scope);
173
+ return resolved !== null;
174
+ }
175
+ /**
176
+ * Find unresolved references in scope
177
+ */
178
+ findUnresolvedReferences(scope) {
179
+ const unresolved = [];
180
+ for (const refs of this.graph.references.values()) {
181
+ for (const ref of refs) {
182
+ if (ref.scope === scope.name) {
183
+ const resolved = this.resolveSymbol(ref.name, scope);
184
+ if (!resolved) {
185
+ unresolved.push(ref);
186
+ }
187
+ }
188
+ }
189
+ }
190
+ return unresolved;
191
+ }
192
+ /**
193
+ * Get scope chain (for debugging)
194
+ */
195
+ getScopeChain(scope) {
196
+ const chain = [];
197
+ let current = scope;
198
+ while (current) {
199
+ chain.unshift(current.name);
200
+ current = current.parent;
201
+ }
202
+ return chain;
203
+ }
204
+ /**
205
+ * Find symbol with full qualification
206
+ */
207
+ resolveQualifiedName(qualifiedName, scope) {
208
+ const parts = qualifiedName.split(".");
209
+ if (parts.length === 1) {
210
+ return this.resolveSymbol(qualifiedName, scope);
211
+ }
212
+ // Resolve first part
213
+ let current = this.resolveSymbol(parts[0], scope);
214
+ if (!current)
215
+ return null;
216
+ // Resolve remaining parts
217
+ for (let i = 1; i < parts.length; i++) {
218
+ const part = parts[i];
219
+ // Check if it's a method
220
+ if (current.methods && current.methods.has(part)) {
221
+ current = current.methods.get(part) || null;
222
+ if (!current)
223
+ return null;
224
+ }
225
+ // Check if it's a property
226
+ else if (current.properties && current.properties.has(part)) {
227
+ current = current.properties.get(part) || null;
228
+ if (!current)
229
+ return null;
230
+ }
231
+ // Try to find in class scope
232
+ else if (current.type === "class") {
233
+ const classScope = this.findScopeByName(current.name);
234
+ if (classScope) {
235
+ current = classScope.symbols.get(part) || null;
236
+ if (!current)
237
+ return null;
238
+ }
239
+ else {
240
+ return null;
241
+ }
242
+ }
243
+ else {
244
+ return null;
245
+ }
246
+ }
247
+ return current;
248
+ }
249
+ }
250
+ /**
251
+ * Scope analysis utilities
252
+ */
253
+ export class ScopeAnalyzer {
254
+ /**
255
+ * Analyze scope complexity
256
+ */
257
+ static analyzeScopeComplexity(scope) {
258
+ const depth = this.getScopeDepth(scope);
259
+ const symbolCount = scope.symbols.size;
260
+ const childCount = scope.children.length;
261
+ const totalDescendants = this.countDescendants(scope);
262
+ return { depth, symbolCount, childCount, totalDescendants };
263
+ }
264
+ /**
265
+ * Get scope depth in hierarchy
266
+ */
267
+ static getScopeDepth(scope) {
268
+ let depth = 0;
269
+ let current = scope;
270
+ while (current.parent) {
271
+ depth++;
272
+ current = current.parent;
273
+ }
274
+ return depth;
275
+ }
276
+ /**
277
+ * Count all descendant scopes
278
+ */
279
+ static countDescendants(scope) {
280
+ let count = scope.children.length;
281
+ for (const child of scope.children) {
282
+ count += this.countDescendants(child);
283
+ }
284
+ return count;
285
+ }
286
+ /**
287
+ * Find all symbols in scope and descendants
288
+ */
289
+ static getAllSymbols(scope) {
290
+ const symbols = Array.from(scope.symbols.values());
291
+ for (const child of scope.children) {
292
+ symbols.push(...this.getAllSymbols(child));
293
+ }
294
+ return symbols;
295
+ }
296
+ /**
297
+ * Check for shadowed variables
298
+ */
299
+ static findShadowedSymbols(scope) {
300
+ const shadowed = [];
301
+ // Check each symbol in this scope
302
+ for (const [name, symbol] of scope.symbols) {
303
+ // Check if parent scopes have same name
304
+ let parent = scope.parent;
305
+ while (parent) {
306
+ const parentSymbol = parent.symbols.get(name);
307
+ if (parentSymbol) {
308
+ shadowed.push({
309
+ symbol: parentSymbol,
310
+ shadowedBy: symbol,
311
+ });
312
+ break;
313
+ }
314
+ parent = parent.parent;
315
+ }
316
+ }
317
+ // Recursively check children
318
+ for (const child of scope.children) {
319
+ shadowed.push(...this.findShadowedSymbols(child));
320
+ }
321
+ return shadowed;
322
+ }
323
+ }
324
+ //# sourceMappingURL=scopeResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeResolver.js","sourceRoot":"","sources":["../../../src/analyzers/parsers/scopeResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Semantic Index for O(1) Symbol Lookups
3
+ *
4
+ * Pre-computed indexes for fast symbol resolution and queries.
5
+ * Enables instant lookups without traversing the entire graph.
6
+ *
7
+ * @format
8
+ */
9
+ import { CodeGraph, SemanticIndex, SymbolNode, SymbolType, Reference, Scope } from "../../types/codeGraph.js";
10
+ export declare class SemanticIndexBuilder {
11
+ /**
12
+ * Build complete semantic index from CodeGraph
13
+ */
14
+ static buildIndex(graph: CodeGraph): SemanticIndex;
15
+ /**
16
+ * Update index incrementally (for changed files)
17
+ */
18
+ static updateIndex(index: SemanticIndex, graph: CodeGraph, changedFiles: string[]): SemanticIndex;
19
+ /**
20
+ * Find symbol by name with scope resolution
21
+ */
22
+ static findSymbol(name: string, index: SemanticIndex, scope?: string, file?: string): SymbolNode | null;
23
+ /**
24
+ * Find all references to a symbol
25
+ */
26
+ static findReferences(name: string, index: SemanticIndex): Reference[];
27
+ /**
28
+ * Find unused symbols
29
+ */
30
+ static findUnusedSymbols(index: SemanticIndex): SymbolNode[];
31
+ /**
32
+ * Find symbols by type
33
+ */
34
+ static findSymbolsByType(type: SymbolType, index: SemanticIndex): SymbolNode[];
35
+ /**
36
+ * Find symbols in file
37
+ */
38
+ static findSymbolsInFile(file: string, index: SemanticIndex): SymbolNode[];
39
+ /**
40
+ * Check if symbol exists
41
+ */
42
+ static symbolExists(name: string, index: SemanticIndex): boolean;
43
+ /**
44
+ * Get symbol statistics
45
+ */
46
+ static getStatistics(index: SemanticIndex): {
47
+ totalSymbols: number;
48
+ symbolsByType: Record<SymbolType, number>;
49
+ unusedCount: number;
50
+ unresolvedCount: number;
51
+ };
52
+ /**
53
+ * Resolve reference to its symbol definition
54
+ */
55
+ private static resolveReference;
56
+ /**
57
+ * Resolve symbol in scope hierarchy
58
+ */
59
+ private static resolveInScope;
60
+ }
61
+ /**
62
+ * Query helper for semantic index
63
+ */
64
+ export declare class SemanticQuery {
65
+ private index;
66
+ private graph;
67
+ constructor(index: SemanticIndex, graph: CodeGraph);
68
+ /**
69
+ * Find symbol with context
70
+ */
71
+ findSymbol(name: string, context?: {
72
+ file?: string;
73
+ scope?: string;
74
+ }): SymbolNode | null;
75
+ /**
76
+ * Find all usages of a symbol
77
+ */
78
+ findUsages(symbolName: string): Reference[];
79
+ /**
80
+ * Check if reference is valid
81
+ */
82
+ isValidReference(ref: Reference): boolean;
83
+ /**
84
+ * Find dead code (unused and not exported)
85
+ */
86
+ findDeadCode(): SymbolNode[];
87
+ /**
88
+ * Find all functions that call a given function
89
+ */
90
+ findCallers(functionName: string): string[];
91
+ /**
92
+ * Find all functions called by a given function
93
+ */
94
+ findCallees(functionName: string): string[];
95
+ /**
96
+ * Find symbols matching pattern
97
+ */
98
+ findByPattern(pattern: RegExp, type?: SymbolType): SymbolNode[];
99
+ /**
100
+ * Get symbol with all its relationships
101
+ */
102
+ getSymbolWithRelationships(name: string): {
103
+ symbol: SymbolNode | null;
104
+ usages: Reference[];
105
+ callers: string[];
106
+ callees: string[];
107
+ scope: Scope | null;
108
+ };
109
+ /**
110
+ * Find similar symbol names (for suggestions)
111
+ */
112
+ findSimilar(name: string, maxDistance?: number): SymbolNode[];
113
+ /**
114
+ * Calculate Levenshtein distance for fuzzy matching
115
+ */
116
+ private levenshteinDistance;
117
+ /**
118
+ * Get index statistics
119
+ */
120
+ getStatistics(): {
121
+ totalSymbols: number;
122
+ symbolsByType: Record<SymbolType, number>;
123
+ unusedCount: number;
124
+ unresolvedCount: number;
125
+ };
126
+ }
127
+ //# sourceMappingURL=semanticIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticIndex.d.ts","sourceRoot":"","sources":["../../../src/analyzers/parsers/semanticIndex.ts"],"names":[],"mappings":"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"}