code-auditor-mcp 2.6.2 → 3.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 (343) hide show
  1. package/README.md +319 -147
  2. package/dist/analyzers/analyzerUtils.d.ts +13 -11
  3. package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
  4. package/dist/analyzers/analyzerUtils.js +22 -56
  5. package/dist/analyzers/analyzerUtils.js.map +1 -1
  6. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  7. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
  8. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
  9. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  10. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  11. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  12. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  13. package/dist/analyzers/dataAccessAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/dataAccessAnalyzer.js +50 -24
  15. package/dist/analyzers/dataAccessAnalyzer.js.map +1 -1
  16. package/dist/analyzers/documentationAnalyzer.d.ts +4 -1
  17. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  18. package/dist/analyzers/documentationAnalyzer.js +210 -111
  19. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  20. package/dist/analyzers/dryAnalyzer.d.ts.map +1 -1
  21. package/dist/analyzers/dryAnalyzer.js +190 -58
  22. package/dist/analyzers/dryAnalyzer.js.map +1 -1
  23. package/dist/analyzers/invariantsAnalyzer.d.ts +20 -0
  24. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -0
  25. package/dist/analyzers/invariantsAnalyzer.js +148 -0
  26. package/dist/analyzers/invariantsAnalyzer.js.map +1 -0
  27. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  28. package/dist/analyzers/reactAnalyzer.js +2 -2
  29. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  30. package/dist/analyzers/schemaAnalyzer.d.ts +2 -0
  31. package/dist/analyzers/schemaAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/schemaAnalyzer.js +306 -147
  33. package/dist/analyzers/schemaAnalyzer.js.map +1 -1
  34. package/dist/analyzers/solidAnalyzer.d.ts.map +1 -1
  35. package/dist/analyzers/solidAnalyzer.js +145 -119
  36. package/dist/analyzers/solidAnalyzer.js.map +1 -1
  37. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +3 -1
  38. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  39. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +41 -1
  40. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  41. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  42. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +8 -8
  43. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  44. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  45. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +6 -6
  46. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  47. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  48. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  49. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +1 -1
  50. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  51. package/dist/api/index.js +1 -0
  52. package/dist/api/index.js.map +1 -1
  53. package/dist/auditRunner.d.ts.map +1 -1
  54. package/dist/auditRunner.js +367 -24
  55. package/dist/auditRunner.js.map +1 -1
  56. package/dist/cli.d.ts +1 -1
  57. package/dist/cli.d.ts.map +1 -1
  58. package/dist/cli.js +740 -18
  59. package/dist/cli.js.map +1 -1
  60. package/dist/codeIndexDB-enhanced.d.ts +35 -13
  61. package/dist/codeIndexDB-enhanced.d.ts.map +1 -1
  62. package/dist/codeIndexDB-enhanced.js +311 -214
  63. package/dist/codeIndexDB-enhanced.js.map +1 -1
  64. package/dist/{codeIndexDb.d.ts → codeIndexDB.d.ts} +51 -224
  65. package/dist/codeIndexDB.d.ts.map +1 -0
  66. package/dist/codeIndexDB.js +2042 -0
  67. package/dist/codeIndexDB.js.map +1 -0
  68. package/dist/codeIndexService.d.ts.map +1 -1
  69. package/dist/codeIndexService.js.map +1 -1
  70. package/dist/componentScanner.d.ts +14 -8
  71. package/dist/componentScanner.d.ts.map +1 -1
  72. package/dist/componentScanner.js +136 -113
  73. package/dist/componentScanner.js.map +1 -1
  74. package/dist/config/configLoader.d.ts.map +1 -1
  75. package/dist/config/configLoader.js +10 -7
  76. package/dist/config/configLoader.js.map +1 -1
  77. package/dist/config/defaults.d.ts.map +1 -1
  78. package/dist/constants.js.map +1 -1
  79. package/dist/fingerprint.d.ts +15 -0
  80. package/dist/fingerprint.d.ts.map +1 -0
  81. package/dist/fingerprint.js +32 -0
  82. package/dist/fingerprint.js.map +1 -0
  83. package/dist/functionScanner.d.ts +5 -0
  84. package/dist/functionScanner.d.ts.map +1 -1
  85. package/dist/functionScanner.js +417 -341
  86. package/dist/functionScanner.js.map +1 -1
  87. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  88. package/dist/generators/AiderConfigGenerator.d.ts.map +1 -1
  89. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
  90. package/dist/generators/BaseConfigGenerator.js.map +1 -1
  91. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  92. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  93. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  94. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  95. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  96. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  97. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  98. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  99. package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -1
  100. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  101. package/dist/grammars/tree-sitter-go.wasm +0 -0
  102. package/dist/grammars/tree-sitter-javascript.wasm +0 -0
  103. package/dist/grammars/tree-sitter-tsx.wasm +0 -0
  104. package/dist/grammars/tree-sitter-typescript.wasm +0 -0
  105. package/dist/index.d.ts +1 -0
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +2 -1
  108. package/dist/index.js.map +1 -1
  109. package/dist/invariants/index.d.ts +9 -0
  110. package/dist/invariants/index.d.ts.map +1 -0
  111. package/dist/invariants/index.js +4 -0
  112. package/dist/invariants/index.js.map +1 -0
  113. package/dist/invariants/invariant-rules.schema.json +137 -0
  114. package/dist/invariants/ruleEngine.d.ts +32 -0
  115. package/dist/invariants/ruleEngine.d.ts.map +1 -0
  116. package/dist/invariants/ruleEngine.js +536 -0
  117. package/dist/invariants/ruleEngine.js.map +1 -0
  118. package/dist/invariants/ruleValidator.d.ts +17 -0
  119. package/dist/invariants/ruleValidator.d.ts.map +1 -0
  120. package/dist/invariants/ruleValidator.js +264 -0
  121. package/dist/invariants/ruleValidator.js.map +1 -0
  122. package/dist/invariants/types.d.ts +78 -0
  123. package/dist/invariants/types.d.ts.map +1 -0
  124. package/dist/invariants/types.js +5 -0
  125. package/dist/invariants/types.js.map +1 -0
  126. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  127. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  128. package/dist/languages/LanguageRegistry.d.ts.map +1 -1
  129. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  130. package/dist/languages/RuntimeManager.js +1 -1
  131. package/dist/languages/RuntimeManager.js.map +1 -1
  132. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  133. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  134. package/dist/languages/adapterBridge.d.ts +102 -0
  135. package/dist/languages/adapterBridge.d.ts.map +1 -0
  136. package/dist/languages/adapterBridge.js +382 -0
  137. package/dist/languages/adapterBridge.js.map +1 -0
  138. package/dist/languages/go/GoAdapter.d.ts +37 -26
  139. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  140. package/dist/languages/go/GoAdapter.js +560 -281
  141. package/dist/languages/go/GoAdapter.js.map +1 -1
  142. package/dist/languages/index.d.ts +5 -2
  143. package/dist/languages/index.d.ts.map +1 -1
  144. package/dist/languages/index.js +11 -9
  145. package/dist/languages/index.js.map +1 -1
  146. package/dist/languages/tree-sitter/converter.d.ts +43 -0
  147. package/dist/languages/tree-sitter/converter.d.ts.map +1 -0
  148. package/dist/languages/tree-sitter/converter.js +150 -0
  149. package/dist/languages/tree-sitter/converter.js.map +1 -0
  150. package/dist/languages/tree-sitter/parser.d.ts +36 -0
  151. package/dist/languages/tree-sitter/parser.d.ts.map +1 -0
  152. package/dist/languages/tree-sitter/parser.js +114 -0
  153. package/dist/languages/tree-sitter/parser.js.map +1 -0
  154. package/dist/languages/types.d.ts +11 -0
  155. package/dist/languages/types.d.ts.map +1 -1
  156. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +92 -0
  157. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -0
  158. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +951 -0
  159. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -0
  160. package/dist/mcp-tools/projectTasks.d.ts +58 -22
  161. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  162. package/dist/mcp-tools/projectTasks.js +172 -10
  163. package/dist/mcp-tools/projectTasks.js.map +1 -1
  164. package/dist/mcp-tools/whitelistTools.d.ts +21 -21
  165. package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
  166. package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
  167. package/dist/mcp-tools/workflowGuide.js +130 -126
  168. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  169. package/dist/mcp-tools-shared.d.ts.map +1 -1
  170. package/dist/mcp-tools-shared.js.map +1 -1
  171. package/dist/mcp-ui-simple.js +1 -1
  172. package/dist/mcp-ui-simple.js.map +1 -1
  173. package/dist/mcp.d.ts +1 -1
  174. package/dist/mcp.d.ts.map +1 -1
  175. package/dist/mcp.js +1376 -1181
  176. package/dist/mcp.js.map +1 -1
  177. package/dist/mcpAuditJobs.d.ts +4 -0
  178. package/dist/mcpAuditJobs.d.ts.map +1 -1
  179. package/dist/mcpAuditJobs.js +49 -2
  180. package/dist/mcpAuditJobs.js.map +1 -1
  181. package/dist/mcpToolErrors.d.ts.map +1 -1
  182. package/dist/mcpToolErrors.js.map +1 -1
  183. package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
  184. package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
  185. package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
  186. package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
  187. package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
  188. package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
  189. package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
  190. package/dist/native-bootstrap.d.ts +15 -0
  191. package/dist/native-bootstrap.d.ts.map +1 -0
  192. package/dist/native-bootstrap.js +75 -0
  193. package/dist/native-bootstrap.js.map +1 -0
  194. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  195. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  196. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  197. package/dist/reporting/reportGenerator.d.ts.map +1 -1
  198. package/dist/reporting/reportGenerator.js +4 -0
  199. package/dist/reporting/reportGenerator.js.map +1 -1
  200. package/dist/reporting/sarifReportGenerator.d.ts +39 -0
  201. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -0
  202. package/dist/reporting/sarifReportGenerator.js +229 -0
  203. package/dist/reporting/sarifReportGenerator.js.map +1 -0
  204. package/dist/search/QueryParser.d.ts +41 -0
  205. package/dist/search/QueryParser.d.ts.map +1 -1
  206. package/dist/search/QueryParser.js +200 -19
  207. package/dist/search/QueryParser.js.map +1 -1
  208. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  209. package/dist/services/CodeMapGenerator.js +4 -4
  210. package/dist/services/CodeMapGenerator.js.map +1 -1
  211. package/dist/services/ProjectTaskRepository.d.ts +15 -2
  212. package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
  213. package/dist/services/ProjectTaskRepository.js +16 -1
  214. package/dist/services/ProjectTaskRepository.js.map +1 -1
  215. package/dist/services/SchemaParser.d.ts.map +1 -1
  216. package/dist/services/SchemaParser.js +5 -8
  217. package/dist/services/SchemaParser.js.map +1 -1
  218. package/dist/services/auditJobService.d.ts +1 -1
  219. package/dist/services/projectTaskHelpers.js.map +1 -1
  220. package/dist/services/whitelistService.d.ts.map +1 -1
  221. package/dist/services/whitelistService.js +1 -1
  222. package/dist/services/whitelistService.js.map +1 -1
  223. package/dist/tool-registry.d.ts +79 -0
  224. package/dist/tool-registry.d.ts.map +1 -0
  225. package/dist/tool-registry.js +139 -0
  226. package/dist/tool-registry.js.map +1 -0
  227. package/dist/types/projectTask.d.ts +4 -0
  228. package/dist/types/projectTask.d.ts.map +1 -1
  229. package/dist/types.d.ts +26 -2
  230. package/dist/types.d.ts.map +1 -1
  231. package/dist/types.js.map +1 -1
  232. package/dist/ui/InteractivePrompts.d.ts.map +1 -1
  233. package/dist/ui/InteractivePrompts.js.map +1 -1
  234. package/dist/utils/astParser.d.ts +31 -38
  235. package/dist/utils/astParser.d.ts.map +1 -1
  236. package/dist/utils/astParser.js +138 -196
  237. package/dist/utils/astParser.js.map +1 -1
  238. package/dist/utils/astUtils.d.ts +87 -58
  239. package/dist/utils/astUtils.d.ts.map +1 -1
  240. package/dist/utils/astUtils.js +852 -581
  241. package/dist/utils/astUtils.js.map +1 -1
  242. package/dist/utils/componentPatterns.js.map +1 -1
  243. package/dist/utils/componentResponsibility.d.ts +13 -9
  244. package/dist/utils/componentResponsibility.d.ts.map +1 -1
  245. package/dist/utils/componentResponsibility.js +236 -206
  246. package/dist/utils/componentResponsibility.js.map +1 -1
  247. package/dist/utils/dependencyExtractor.d.ts +11 -6
  248. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  249. package/dist/utils/dependencyExtractor.js +200 -119
  250. package/dist/utils/dependencyExtractor.js.map +1 -1
  251. package/dist/utils/fileDiscovery.d.ts +1 -1
  252. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  253. package/dist/utils/fileDiscovery.js.map +1 -1
  254. package/dist/utils/jsDocParser.d.ts +27 -30
  255. package/dist/utils/jsDocParser.d.ts.map +1 -1
  256. package/dist/utils/jsDocParser.js +271 -207
  257. package/dist/utils/jsDocParser.js.map +1 -1
  258. package/dist/utils/reactDetection.d.ts +27 -12
  259. package/dist/utils/reactDetection.d.ts.map +1 -1
  260. package/dist/utils/reactDetection.js +331 -219
  261. package/dist/utils/reactDetection.js.map +1 -1
  262. package/dist/workers/auditWorker.js +17 -3
  263. package/dist/workers/auditWorker.js.map +1 -1
  264. package/package.json +54 -51
  265. package/dist/adapters/GoAdapter.d.ts +0 -53
  266. package/dist/adapters/GoAdapter.d.ts.map +0 -1
  267. package/dist/adapters/GoAdapter.js +0 -611
  268. package/dist/adapters/GoAdapter.js.map +0 -1
  269. package/dist/adapters/GoConfig.d.ts +0 -35
  270. package/dist/adapters/GoConfig.d.ts.map +0 -1
  271. package/dist/adapters/GoConfig.js +0 -155
  272. package/dist/adapters/GoConfig.js.map +0 -1
  273. package/dist/adapters/LanguageAdapter.d.ts +0 -135
  274. package/dist/adapters/LanguageAdapter.d.ts.map +0 -1
  275. package/dist/adapters/LanguageAdapter.js +0 -47
  276. package/dist/adapters/LanguageAdapter.js.map +0 -1
  277. package/dist/adapters/TypeScriptAdapter.d.ts +0 -43
  278. package/dist/adapters/TypeScriptAdapter.d.ts.map +0 -1
  279. package/dist/adapters/TypeScriptAdapter.js +0 -386
  280. package/dist/adapters/TypeScriptAdapter.js.map +0 -1
  281. package/dist/adapters/UniversalAnalyzer.d.ts +0 -42
  282. package/dist/adapters/UniversalAnalyzer.d.ts.map +0 -1
  283. package/dist/adapters/UniversalAnalyzer.js +0 -103
  284. package/dist/adapters/UniversalAnalyzer.js.map +0 -1
  285. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +0 -48
  286. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +0 -1
  287. package/dist/adapters/UniversalSOLIDAnalyzer.js +0 -178
  288. package/dist/adapters/UniversalSOLIDAnalyzer.js.map +0 -1
  289. package/dist/adapters/solidAnalyzerCompat.d.ts +0 -21
  290. package/dist/adapters/solidAnalyzerCompat.d.ts.map +0 -1
  291. package/dist/adapters/solidAnalyzerCompat.js +0 -78
  292. package/dist/adapters/solidAnalyzerCompat.js.map +0 -1
  293. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +0 -20
  294. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +0 -1
  295. package/dist/analyzers/dataAccessAnalyzerCompat.js +0 -59
  296. package/dist/analyzers/dataAccessAnalyzerCompat.js.map +0 -1
  297. package/dist/analyzers/documentationAnalyzerCompat.d.ts +0 -20
  298. package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +0 -1
  299. package/dist/analyzers/documentationAnalyzerCompat.js +0 -52
  300. package/dist/analyzers/documentationAnalyzerCompat.js.map +0 -1
  301. package/dist/analyzers/dryAnalyzerCompat.d.ts +0 -20
  302. package/dist/analyzers/dryAnalyzerCompat.d.ts.map +0 -1
  303. package/dist/analyzers/dryAnalyzerCompat.js +0 -44
  304. package/dist/analyzers/dryAnalyzerCompat.js.map +0 -1
  305. package/dist/analyzers/schemaAnalyzerCompat.d.ts +0 -20
  306. package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +0 -1
  307. package/dist/analyzers/schemaAnalyzerCompat.js +0 -69
  308. package/dist/analyzers/schemaAnalyzerCompat.js.map +0 -1
  309. package/dist/analyzers/solidAnalyzerCompat.d.ts +0 -20
  310. package/dist/analyzers/solidAnalyzerCompat.d.ts.map +0 -1
  311. package/dist/analyzers/solidAnalyzerCompat.js +0 -78
  312. package/dist/analyzers/solidAnalyzerCompat.js.map +0 -1
  313. package/dist/codeIndexDb.d.ts.map +0 -1
  314. package/dist/codeIndexDb.js +0 -2102
  315. package/dist/codeIndexDb.js.map +0 -1
  316. package/dist/languages/typescript/TypeScriptAdapter.d.ts +0 -108
  317. package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +0 -1
  318. package/dist/languages/typescript/TypeScriptAdapter.js +0 -567
  319. package/dist/languages/typescript/TypeScriptAdapter.js.map +0 -1
  320. package/dist/languages/typescript/test-extraction.d.ts +0 -2
  321. package/dist/languages/typescript/test-extraction.d.ts.map +0 -1
  322. package/dist/languages/typescript/test-extraction.js +0 -36
  323. package/dist/languages/typescript/test-extraction.js.map +0 -1
  324. package/dist/mcp-hybrid.d.ts +0 -10
  325. package/dist/mcp-hybrid.d.ts.map +0 -1
  326. package/dist/mcp-hybrid.js +0 -41
  327. package/dist/mcp-hybrid.js.map +0 -1
  328. package/dist/mcp-index.d.ts +0 -13
  329. package/dist/mcp-index.d.ts.map +0 -1
  330. package/dist/mcp-index.js +0 -136
  331. package/dist/mcp-index.js.map +0 -1
  332. package/dist/mcp-standalone.d.ts +0 -3
  333. package/dist/mcp-standalone.d.ts.map +0 -1
  334. package/dist/mcp-standalone.js +0 -1324
  335. package/dist/mcp-standalone.js.map +0 -1
  336. package/dist/mcp-ui-server.d.ts +0 -27
  337. package/dist/mcp-ui-server.d.ts.map +0 -1
  338. package/dist/mcp-ui-server.js +0 -484
  339. package/dist/mcp-ui-server.js.map +0 -1
  340. package/dist/test-multi-strategy-search.d.ts +0 -3
  341. package/dist/test-multi-strategy-search.d.ts.map +0 -1
  342. package/dist/test-multi-strategy-search.js +0 -170
  343. package/dist/test-multi-strategy-search.js.map +0 -1
@@ -1,611 +0,0 @@
1
- /**
2
- * Go Language Adapter
3
- *
4
- * Provides Go language support through the LanguageAdapter interface.
5
- * Uses the Go-based analyzer as a child process for proper AST analysis.
6
- */
7
- import path from 'path';
8
- import { spawn } from 'child_process';
9
- import { fileURLToPath } from 'url';
10
- import fs from 'fs';
11
- import { IS_DEV_MODE } from '../constants.js';
12
- // ES module equivalent of __dirname
13
- const __filename = fileURLToPath(import.meta.url);
14
- const __dirname = path.dirname(__filename);
15
- export class GoAdapter {
16
- name = 'go';
17
- extensions = ['.go'];
18
- goAnalyzerProcess = null;
19
- requestId = 0;
20
- pendingRequests = new Map();
21
- goExecutablePath;
22
- logFile;
23
- isInitialized = false;
24
- initializationPromise = null;
25
- jsonBuffer = '';
26
- constructor(goExecutablePath = 'go') {
27
- this.goExecutablePath = goExecutablePath;
28
- // Create log file for Go child process debugging (only in dev mode)
29
- if (IS_DEV_MODE) {
30
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
31
- this.logFile = path.join(process.cwd(), `go-analyzer-${timestamp}.log`);
32
- console.error(`[DEBUG] Go: Development mode - logs will be written to: ${this.logFile}`);
33
- // Initialize log file
34
- this.writeLog('=== Go Analyzer Process Log Started ===');
35
- this.writeLog(`Go executable path: ${this.goExecutablePath}`);
36
- this.writeLog(`Path is absolute: ${path.isAbsolute(this.goExecutablePath)}`);
37
- }
38
- else {
39
- this.logFile = ''; // No logging in production
40
- }
41
- console.error(`[DEBUG] Go: Initialized with executable path: ${this.goExecutablePath}`);
42
- // Register cleanup on process exit
43
- this.registerProcessCleanup();
44
- }
45
- writeLog(message) {
46
- // Only log to file in development mode
47
- if (!IS_DEV_MODE || !this.logFile)
48
- return;
49
- try {
50
- const timestamp = new Date().toISOString();
51
- const logEntry = `[${timestamp}] ${message}\n`;
52
- fs.appendFileSync(this.logFile, logEntry);
53
- }
54
- catch (error) {
55
- console.error('[DEBUG] Go: Failed to write to log file:', error);
56
- }
57
- }
58
- registerProcessCleanup() {
59
- // Cleanup on various exit signals
60
- const cleanup = () => {
61
- console.error('[DEBUG] Go: Process cleanup triggered');
62
- this.writeLog('Process cleanup triggered by exit signal');
63
- this.cleanup();
64
- };
65
- process.on('SIGINT', cleanup);
66
- process.on('SIGTERM', cleanup);
67
- process.on('exit', cleanup);
68
- process.on('beforeExit', cleanup);
69
- this.writeLog('Registered process cleanup handlers');
70
- }
71
- async parse(file, content) {
72
- console.error(`[DEBUG] Go: Parsing file using persistent child process: ${file} (content length: ${content.length})`);
73
- this.writeLog(`parse() called for ${file}, content length: ${content.length}`);
74
- try {
75
- // Ensure the process is initialized (lazy initialization)
76
- await this.ensureInitialized();
77
- // Use persistent process to analyze the file
78
- const result = await this.analyzeFileWithPersistentProcess(file, content);
79
- console.error(`[DEBUG] Go: Child process returned result with ${result.Violations?.length || 0} violations and ${result.IndexEntries?.length || 0} entities`);
80
- this.writeLog(`Child process returned ${result.Violations?.length || 0} violations and ${result.IndexEntries?.length || 0} entities`);
81
- // Convert Go analysis result to our AST format
82
- const ast = this.convertToAST(file, content, result);
83
- console.error(`[DEBUG] Go: Successfully parsed ${file} - AST conversion complete`);
84
- this.writeLog(`Successfully parsed ${file} - AST conversion complete`);
85
- return ast;
86
- }
87
- catch (error) {
88
- console.error(`[DEBUG] Go: Error parsing ${file}:`, error);
89
- console.error(`[DEBUG] Go: Error stack:`, error.stack);
90
- // Return a minimal AST with error information
91
- const lines = content.split('\n');
92
- return {
93
- root: {
94
- type: 'SourceFile',
95
- range: [0, content.length],
96
- location: {
97
- start: { line: 1, column: 1 },
98
- end: { line: lines.length, column: lines[lines.length - 1]?.length || 1 }
99
- },
100
- raw: { error: error.message }
101
- },
102
- language: this.name,
103
- filePath: file,
104
- errors: [{
105
- message: error.message,
106
- location: { start: { line: 1, column: 1 }, end: { line: 1, column: 1 } },
107
- severity: 'error'
108
- }]
109
- };
110
- }
111
- }
112
- async ensureInitialized() {
113
- if (this.isInitialized && this.goAnalyzerProcess) {
114
- return;
115
- }
116
- if (this.initializationPromise) {
117
- return this.initializationPromise;
118
- }
119
- this.initializationPromise = this.initializeProcess();
120
- return this.initializationPromise;
121
- }
122
- async initializeProcess() {
123
- try {
124
- await this.ensureGoAnalyzer();
125
- this.isInitialized = true;
126
- this.writeLog('Persistent Go analyzer process initialized successfully');
127
- }
128
- catch (error) {
129
- this.initializationPromise = null;
130
- throw error;
131
- }
132
- }
133
- async analyzeFileWithPersistentProcess(file, content) {
134
- if (!this.goAnalyzerProcess) {
135
- throw new Error('Go analyzer process not available');
136
- }
137
- const options = {
138
- Analyzers: ['solid', 'imports'],
139
- MinSeverity: 'info',
140
- IncludeIndexing: true
141
- };
142
- const request = {
143
- method: 'analyzeContent',
144
- params: {
145
- file: file,
146
- content: content,
147
- options: options
148
- },
149
- id: ++this.requestId
150
- };
151
- this.writeLog(`Sending analysis request for ${file} (using content instead of file path)`);
152
- return new Promise((resolve, reject) => {
153
- // Set timeout for request
154
- const timeout = setTimeout(() => {
155
- this.pendingRequests.delete(request.id);
156
- reject(new Error(`Go analyzer request timeout after 10 seconds`));
157
- }, 10000);
158
- this.pendingRequests.set(request.id, {
159
- resolve: (result) => {
160
- clearTimeout(timeout);
161
- resolve(result);
162
- },
163
- reject: (error) => {
164
- clearTimeout(timeout);
165
- reject(error);
166
- }
167
- });
168
- const requestLine = JSON.stringify(request) + '\n';
169
- this.writeLog(`Sending JSON-RPC request: ${requestLine.trim()}`);
170
- try {
171
- this.goAnalyzerProcess.stdin?.write(requestLine);
172
- this.writeLog(`Request sent successfully to stdin`);
173
- }
174
- catch (error) {
175
- this.writeLog(`Error writing to stdin: ${error.message}`);
176
- reject(error);
177
- }
178
- });
179
- }
180
- async analyzeFile(file) {
181
- console.error(`[DEBUG] Go: analyzeFile called for: ${file}`);
182
- try {
183
- await this.ensureGoAnalyzer();
184
- console.error(`[DEBUG] Go: Go analyzer ensured successfully`);
185
- }
186
- catch (error) {
187
- console.error(`[DEBUG] Go: Failed to ensure analyzer:`, error);
188
- throw error;
189
- }
190
- const options = {
191
- Analyzers: ['solid', 'imports'],
192
- MinSeverity: 'info',
193
- IncludeIndexing: true
194
- };
195
- const request = {
196
- method: 'analyze',
197
- params: {
198
- files: [file],
199
- options: options
200
- },
201
- id: ++this.requestId
202
- };
203
- console.error(`[DEBUG] Go: Created request with ID ${request.id}`);
204
- return new Promise((resolve, reject) => {
205
- // Set timeout for request
206
- const timeout = setTimeout(() => {
207
- this.pendingRequests.delete(request.id);
208
- reject(new Error(`Go analyzer request timeout after 10 seconds`));
209
- }, 10000);
210
- this.pendingRequests.set(request.id, {
211
- resolve: (result) => {
212
- clearTimeout(timeout);
213
- resolve(result);
214
- },
215
- reject: (error) => {
216
- clearTimeout(timeout);
217
- reject(error);
218
- }
219
- });
220
- if (!this.goAnalyzerProcess) {
221
- reject(new Error('Go analyzer process not available after ensure'));
222
- return;
223
- }
224
- // Send the request
225
- const requestLine = JSON.stringify(request) + '\n';
226
- console.error(`[DEBUG] Go: Sending request to analyzer: ${requestLine.trim()}`);
227
- this.writeLog(`Sending JSON-RPC request: ${requestLine.trim()}`);
228
- try {
229
- this.goAnalyzerProcess.stdin?.write(requestLine);
230
- console.error(`[DEBUG] Go: Request sent successfully`);
231
- this.writeLog(`Request sent successfully to stdin`);
232
- }
233
- catch (error) {
234
- console.error(`[DEBUG] Go: Error writing to stdin:`, error);
235
- this.writeLog(`Error writing to stdin: ${error.message}`);
236
- reject(error);
237
- }
238
- });
239
- }
240
- async ensureGoAnalyzer() {
241
- if (this.goAnalyzerProcess) {
242
- console.error('[DEBUG] Go: Analyzer process already running');
243
- return;
244
- }
245
- console.error('[DEBUG] Go: Starting Go analyzer process...');
246
- // Path to the Go analyzer binary
247
- // __dirname points to dist/adapters, so we need to go to src/languages/go
248
- const goAnalyzerPath = path.join(__dirname, '../../src/languages/go/main.go');
249
- const goModPath = path.dirname(goAnalyzerPath);
250
- console.error(`[DEBUG] Go: Go analyzer path: ${goAnalyzerPath}`);
251
- console.error(`[DEBUG] Go: Go mod path: ${goModPath}`);
252
- try {
253
- // Start the Go analyzer as a child process
254
- console.error(`[DEBUG] Go: Spawning ${this.goExecutablePath} run main.go...`);
255
- this.writeLog(`Starting Go analyzer: ${this.goExecutablePath} run main.go`);
256
- this.writeLog(`Working directory: ${goModPath}`);
257
- this.goAnalyzerProcess = spawn(this.goExecutablePath, ['run', 'main.go'], {
258
- cwd: goModPath,
259
- stdio: ['pipe', 'pipe', 'pipe'],
260
- env: process.env // Inherit full environment including PATH
261
- });
262
- console.error(`[DEBUG] Go: Process spawned with PID: ${this.goAnalyzerProcess.pid}`);
263
- this.writeLog(`Process spawned with PID: ${this.goAnalyzerProcess.pid}`);
264
- // Handle stdout (JSON-RPC responses) with proper buffering for large responses
265
- this.goAnalyzerProcess.stdout?.on('data', (data) => {
266
- const dataStr = data.toString();
267
- console.error(`[DEBUG] Go: Raw stdout chunk (${dataStr.length} chars): ${dataStr.substring(0, 200)}...`);
268
- this.writeLog(`STDOUT Chunk (${dataStr.length} chars): ${dataStr.substring(0, 200)}${dataStr.length > 200 ? '...[TRUNCATED]' : ''}`);
269
- // Add to JSON buffer
270
- this.jsonBuffer += dataStr;
271
- // Process complete JSON objects from buffer
272
- this.processJsonBuffer();
273
- });
274
- // Handle stderr (debug output)
275
- this.goAnalyzerProcess.stderr?.on('data', (data) => {
276
- const stderrStr = data.toString().trim();
277
- console.error(`[GoAnalyzer] ${stderrStr}`);
278
- this.writeLog(`STDERR: ${stderrStr}`);
279
- });
280
- // Handle process exit
281
- this.goAnalyzerProcess.on('exit', (code) => {
282
- console.error(`[DEBUG] Go: Analyzer process exited with code ${code}`);
283
- this.writeLog(`Process exited with code: ${code}`);
284
- this.goAnalyzerProcess = null;
285
- // Reject all pending requests
286
- for (const [id, pending] of this.pendingRequests) {
287
- pending.reject(new Error(`Go analyzer process exited with code ${code}`));
288
- }
289
- this.pendingRequests.clear();
290
- });
291
- // Handle process error
292
- this.goAnalyzerProcess.on('error', (error) => {
293
- console.error(`[DEBUG] Go: Process error:`, error);
294
- this.writeLog(`Process error: ${JSON.stringify(error)}`);
295
- if (error.code === 'ENOENT') {
296
- console.error(`[DEBUG] Go: 'go' command not found. Is Go installed and in your system's PATH?`);
297
- this.writeLog(`ENOENT: Go command not found`);
298
- }
299
- this.goAnalyzerProcess = null;
300
- // Reject all pending requests
301
- for (const [id, pending] of this.pendingRequests) {
302
- pending.reject(new Error(`Go command not found: ${error.message}`));
303
- }
304
- this.pendingRequests.clear();
305
- });
306
- // Wait a bit for the process to start
307
- await new Promise(resolve => setTimeout(resolve, 1000));
308
- // Test the connection
309
- console.error('[DEBUG] Go: Testing connection with ping...');
310
- const pingResult = await this.sendPing();
311
- console.error('[DEBUG] Go: Analyzer ready, ping result:', pingResult);
312
- }
313
- catch (error) {
314
- console.error('[DEBUG] Go: Failed to start analyzer process:', error);
315
- console.error('[DEBUG] Go: Error stack:', error.stack);
316
- throw new Error(`Failed to start Go analyzer: ${error.message}`);
317
- }
318
- }
319
- async sendPing() {
320
- const request = {
321
- method: 'ping',
322
- params: {},
323
- id: ++this.requestId
324
- };
325
- return new Promise((resolve, reject) => {
326
- this.pendingRequests.set(request.id, { resolve, reject });
327
- if (!this.goAnalyzerProcess) {
328
- this.writeLog('Ping failed: Go analyzer process not available');
329
- reject(new Error('Go analyzer process not available'));
330
- return;
331
- }
332
- const requestLine = JSON.stringify(request) + '\n';
333
- this.writeLog(`Sending ping request: ${requestLine.trim()}`);
334
- this.goAnalyzerProcess.stdin?.write(requestLine);
335
- });
336
- }
337
- convertToAST(file, content, result) {
338
- console.error(`[DEBUG] Go: convertToAST called for: ${file}`);
339
- this.writeLog(`convertToAST() called for ${file}`);
340
- const lines = content.split('\n');
341
- // Log the raw result we got from Go analyzer
342
- console.error(`[DEBUG] Go: Raw result from Go analyzer:`, {
343
- violations: result.Violations?.length || 0,
344
- indexEntries: result.IndexEntries?.length || 0,
345
- errors: result.Errors?.length || 0
346
- });
347
- this.writeLog(`Raw result: ${result.Violations?.length || 0} violations, ${result.IndexEntries?.length || 0} index entries, ${result.Errors?.length || 0} errors`);
348
- if (result.IndexEntries) {
349
- const functionEntries = result.IndexEntries.filter(e => e.Type === 'function');
350
- const structEntries = result.IndexEntries.filter(e => e.Type === 'struct');
351
- const interfaceEntries = result.IndexEntries.filter(e => e.Type === 'interface');
352
- console.error(`[DEBUG] Go: Filtering IndexEntries - functions: ${functionEntries.length}, structs: ${structEntries.length}, interfaces: ${interfaceEntries.length}`);
353
- this.writeLog(`Filtering IndexEntries - functions: ${functionEntries.length}, structs: ${structEntries.length}, interfaces: ${interfaceEntries.length}`);
354
- if (functionEntries.length > 0) {
355
- console.error(`[DEBUG] Go: Sample function entry:`, functionEntries[0]);
356
- this.writeLog(`Sample function entry: ${JSON.stringify(functionEntries[0])}`);
357
- }
358
- }
359
- // Convert Go analysis result to our unified AST format
360
- const entities = {
361
- functions: result.IndexEntries?.filter(e => e.Type === 'function') || [],
362
- structs: result.IndexEntries?.filter(e => e.Type === 'struct') || [],
363
- interfaces: result.IndexEntries?.filter(e => e.Type === 'interface') || [],
364
- violations: result.Violations || []
365
- };
366
- console.error(`[DEBUG] Go: Final entities object:`, {
367
- functions: entities.functions.length,
368
- structs: entities.structs.length,
369
- interfaces: entities.interfaces.length,
370
- violations: entities.violations.length
371
- });
372
- this.writeLog(`Final entities: ${entities.functions.length} functions, ${entities.structs.length} structs, ${entities.interfaces.length} interfaces, ${entities.violations.length} violations`);
373
- return {
374
- root: {
375
- type: 'SourceFile',
376
- range: [0, content.length],
377
- location: {
378
- start: { line: 1, column: 1 },
379
- end: { line: lines.length, column: lines[lines.length - 1]?.length || 1 }
380
- },
381
- raw: entities
382
- },
383
- language: this.name,
384
- filePath: file,
385
- errors: result.Errors?.map(err => ({
386
- message: err.Message,
387
- location: {
388
- start: { line: err.Line, column: 1 },
389
- end: { line: err.Line, column: 1 }
390
- },
391
- severity: 'error'
392
- })) || []
393
- };
394
- }
395
- supportsFile(filePath) {
396
- const ext = path.extname(filePath).toLowerCase();
397
- return this.extensions.includes(ext);
398
- }
399
- findNodes(ast, pattern) {
400
- const results = [];
401
- const entities = ast.root.raw;
402
- if (pattern.type === 'function' && entities.functions) {
403
- for (const func of entities.functions) {
404
- results.push(this.createFunctionNode(func));
405
- }
406
- }
407
- if (pattern.type === 'struct' && entities.structs) {
408
- for (const struct of entities.structs) {
409
- results.push(this.createStructNode(struct));
410
- }
411
- }
412
- return results;
413
- }
414
- createFunctionNode(func) {
415
- return {
416
- type: 'function',
417
- range: [0, 0], // Simplified
418
- location: {
419
- start: { line: func.StartLine, column: 1 },
420
- end: { line: func.EndLine, column: 1 }
421
- },
422
- raw: func
423
- };
424
- }
425
- createStructNode(struct) {
426
- return {
427
- type: 'struct',
428
- range: [0, 0], // Simplified
429
- location: {
430
- start: { line: struct.StartLine, column: 1 },
431
- end: { line: struct.EndLine, column: 1 }
432
- },
433
- raw: struct
434
- };
435
- }
436
- extractFunctions(ast) {
437
- console.error(`[DEBUG] Go: extractFunctions called for: ${ast.filePath}`);
438
- this.writeLog(`extractFunctions() called for ${ast.filePath}`);
439
- const entities = ast.root.raw;
440
- console.error(`[DEBUG] Go: Raw entities:`, JSON.stringify(entities, null, 2).substring(0, 500) + '...');
441
- this.writeLog(`Raw entities keys: ${Object.keys(entities || {})}`);
442
- if (!entities.functions) {
443
- console.error(`[DEBUG] Go: No functions found in entities for ${ast.filePath}`);
444
- this.writeLog(`No functions found in entities for ${ast.filePath}`);
445
- return [];
446
- }
447
- console.error(`[DEBUG] Go: Found ${entities.functions.length} functions in ${ast.filePath}`);
448
- this.writeLog(`Found ${entities.functions.length} functions in ${ast.filePath}`);
449
- return entities.functions.map((func) => ({
450
- name: func.Name,
451
- location: {
452
- start: { line: func.StartLine, column: 1 },
453
- end: { line: func.EndLine, column: 1 }
454
- },
455
- parameters: (func.Parameters || []).map((param) => ({
456
- name: param,
457
- type: 'unknown', // Could be enhanced
458
- optional: false,
459
- defaultValue: undefined
460
- })),
461
- returnType: func.ReturnType || undefined,
462
- isAsync: false, // Go doesn't have async/await
463
- isExported: func.IsExported,
464
- isMethod: func.Type === 'method',
465
- className: undefined, // Go uses receivers, not classes
466
- complexity: func.Complexity || 1,
467
- lineCount: func.EndLine - func.StartLine + 1
468
- }));
469
- }
470
- extractClasses(ast) {
471
- const entities = ast.root.raw;
472
- if (!entities.structs)
473
- return [];
474
- // In Go, structs are the closest equivalent to classes
475
- return entities.structs.map((struct) => ({
476
- name: struct.Name,
477
- location: {
478
- start: { line: struct.StartLine, column: 1 },
479
- end: { line: struct.EndLine, column: 1 }
480
- },
481
- methods: [], // Methods would be found separately
482
- properties: [], // Could be enhanced to extract fields
483
- extends: [], // Go uses composition, not inheritance
484
- implements: [], // Could be enhanced
485
- isExported: struct.IsExported,
486
- isAbstract: false // Go doesn't have abstract structs
487
- }));
488
- }
489
- extractImports(ast) {
490
- // Could be enhanced to extract import information from the Go analyzer
491
- return [];
492
- }
493
- extractExports(ast) {
494
- // Could be enhanced to extract export information from the Go analyzer
495
- return [];
496
- }
497
- // AST Navigation
498
- getParent(node) {
499
- // Simplified implementation - could be enhanced with proper parent tracking
500
- return null;
501
- }
502
- getChildren(node) {
503
- // Simplified implementation - could be enhanced with proper child extraction
504
- return [];
505
- }
506
- // Node Information
507
- getNodeType(node) {
508
- return node.type;
509
- }
510
- getNodeText(node) {
511
- // Extract text representation from the Go entity
512
- const entity = node.raw;
513
- if (entity.Name) {
514
- return entity.Name;
515
- }
516
- return node.type;
517
- }
518
- getNodeLocation(node) {
519
- return node.location;
520
- }
521
- getNodeName(node) {
522
- const entity = node.raw;
523
- return entity.Name || null;
524
- }
525
- // Pattern Matching
526
- isClass(node) {
527
- return node.type === 'struct';
528
- }
529
- isFunction(node) {
530
- return node.type === 'function';
531
- }
532
- isMethod(node) {
533
- return node.type === 'function' && node.raw.Type === 'method';
534
- }
535
- isInterface(node) {
536
- return node.type === 'interface';
537
- }
538
- isImport(node) {
539
- return node.type === 'import';
540
- }
541
- isVariable(node) {
542
- return node.type === 'variable';
543
- }
544
- processJsonBuffer() {
545
- // Look for complete JSON objects (each ends with newline)
546
- const lines = this.jsonBuffer.split('\n');
547
- // Keep the last partial line in buffer (it might be incomplete)
548
- this.jsonBuffer = lines.pop() || '';
549
- // Process complete lines
550
- for (const line of lines) {
551
- const trimmed = line.trim();
552
- if (!trimmed)
553
- continue;
554
- try {
555
- const response = JSON.parse(trimmed);
556
- console.error(`[DEBUG] Go: Received complete response for ID ${response.id}`);
557
- this.writeLog(`Complete JSON-RPC Response for ID ${response.id}: ${JSON.stringify(response).substring(0, 500)}${JSON.stringify(response).length > 500 ? '...[TRUNCATED]' : ''}`);
558
- const pending = this.pendingRequests.get(response.id);
559
- if (pending) {
560
- this.pendingRequests.delete(response.id);
561
- if (response.error) {
562
- console.error(`[DEBUG] Go: Response has error:`, response.error);
563
- this.writeLog(`Response error: ${JSON.stringify(response.error)}`);
564
- pending.reject(new Error(response.error.message));
565
- }
566
- else {
567
- console.error(`[DEBUG] Go: Response successful, resolving with ${JSON.stringify(response.result).length} chars`);
568
- this.writeLog(`Response successful for ID ${response.id}, result size: ${JSON.stringify(response.result).length} chars`);
569
- pending.resolve(response.result);
570
- }
571
- }
572
- else {
573
- console.error(`[DEBUG] Go: No pending request found for ID ${response.id}`);
574
- this.writeLog(`No pending request found for ID ${response.id}`);
575
- }
576
- }
577
- catch (error) {
578
- console.error('[DEBUG] Go: Error parsing JSON line:', error.message, 'Line length:', trimmed.length);
579
- this.writeLog(`JSON Parse Error: ${error.message}, Line length: ${trimmed.length}, Line start: ${trimmed.substring(0, 100)}`);
580
- // If this line can't be parsed, it might be part of a larger JSON object
581
- // Put it back in the buffer and hope the next chunk completes it
582
- if (this.jsonBuffer) {
583
- this.jsonBuffer = trimmed + '\n' + this.jsonBuffer;
584
- }
585
- else {
586
- this.jsonBuffer = trimmed;
587
- }
588
- }
589
- }
590
- }
591
- async cleanup() {
592
- if (this.goAnalyzerProcess) {
593
- console.error('[DEBUG] Go: Cleaning up analyzer process...');
594
- this.writeLog('Cleanup initiated - terminating Go process');
595
- this.goAnalyzerProcess.kill();
596
- this.goAnalyzerProcess = null;
597
- }
598
- // Clear JSON buffer
599
- this.jsonBuffer = '';
600
- // Reject all pending requests
601
- for (const [id, pending] of this.pendingRequests) {
602
- pending.reject(new Error('Adapter cleanup'));
603
- }
604
- this.pendingRequests.clear();
605
- // Reset initialization state
606
- this.isInitialized = false;
607
- this.initializationPromise = null;
608
- this.writeLog('Cleanup completed');
609
- }
610
- }
611
- //# sourceMappingURL=GoAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoAdapter.js","sourceRoot":"","sources":["../../src/adapters/GoAdapter.ts"],"names":[],"mappings":"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"}