code-auditor-mcp 3.10.0 → 4.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 (261) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +171 -0
  3. package/dist/analyzers/analyzerUtils.js +2 -2
  4. package/dist/analyzers/analyzerUtils.js.map +1 -1
  5. package/dist/analyzers/applicability.d.ts.map +1 -1
  6. package/dist/analyzers/applicability.js +1 -0
  7. package/dist/analyzers/applicability.js.map +1 -1
  8. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +1 -1
  9. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  10. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +3 -3
  11. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  12. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -2
  13. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +39 -15
  15. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  16. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  17. package/dist/analyzers/documentationAnalyzer.js +14 -16
  18. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  19. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
  20. package/dist/analyzers/invariantsAnalyzer.js +30 -25
  21. package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
  22. package/dist/analyzers/reactAnalyzer.d.ts +1 -1
  23. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  24. package/dist/analyzers/reactAnalyzer.js +34 -116
  25. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  26. package/dist/analyzers/ruleRegistry.d.ts +5 -3
  27. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  28. package/dist/analyzers/ruleRegistry.js +198 -54
  29. package/dist/analyzers/ruleRegistry.js.map +1 -1
  30. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +2 -2
  31. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +10 -17
  33. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  34. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +6 -6
  35. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +13 -13
  36. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  37. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  38. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +22 -64
  39. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  40. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +3 -2
  41. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  42. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +14 -13
  43. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  44. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +11 -11
  45. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  46. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +1 -1
  47. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  48. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +18 -7
  49. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  50. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -2
  51. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  52. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +38 -26
  53. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  54. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +37 -13
  55. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  56. package/dist/analyzers/universal/schema/codeAnalysis.js +42 -54
  57. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  58. package/dist/analyzers/universal/schema/jsonSchema.js +1 -1
  59. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  60. package/dist/analyzers/universal/schema/violations.d.ts +1 -1
  61. package/dist/analyzers/universal/schema/violations.d.ts.map +1 -1
  62. package/dist/auditRouter.js +7 -7
  63. package/dist/auditRouter.js.map +1 -1
  64. package/dist/auditRunner.d.ts.map +1 -1
  65. package/dist/auditRunner.js +36 -6
  66. package/dist/auditRunner.js.map +1 -1
  67. package/dist/cli.js +23 -17
  68. package/dist/cli.js.map +1 -1
  69. package/dist/codeIndexDB.d.ts +1 -1
  70. package/dist/codeIndexDB.d.ts.map +1 -1
  71. package/dist/codeIndexDB.js +148 -18
  72. package/dist/codeIndexDB.js.map +1 -1
  73. package/dist/componentScanner.d.ts.map +1 -1
  74. package/dist/componentScanner.js +89 -28
  75. package/dist/componentScanner.js.map +1 -1
  76. package/dist/config/configLoader.js +1 -1
  77. package/dist/config/configLoader.js.map +1 -1
  78. package/dist/config/defaults.js +3 -3
  79. package/dist/config/defaults.js.map +1 -1
  80. package/dist/constants.d.ts +1 -1
  81. package/dist/constants.d.ts.map +1 -1
  82. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  83. package/dist/conventions/conventionMiner.js +3 -10
  84. package/dist/conventions/conventionMiner.js.map +1 -1
  85. package/dist/daemon/core.d.ts.map +1 -1
  86. package/dist/daemon/core.js +33 -38
  87. package/dist/daemon/core.js.map +1 -1
  88. package/dist/daemon/lspServer.js +1 -1
  89. package/dist/daemon/lspServer.js.map +1 -1
  90. package/dist/daemon/main.d.ts.map +1 -1
  91. package/dist/daemon/main.js +14 -4
  92. package/dist/daemon/main.js.map +1 -1
  93. package/dist/enforcement/gate.js +2 -2
  94. package/dist/functionScanner.d.ts.map +1 -1
  95. package/dist/functionScanner.js +47 -42
  96. package/dist/functionScanner.js.map +1 -1
  97. package/dist/graph/importClassification.d.ts +76 -0
  98. package/dist/graph/importClassification.d.ts.map +1 -0
  99. package/dist/graph/importClassification.js +221 -0
  100. package/dist/graph/importClassification.js.map +1 -0
  101. package/dist/graph/importGraph.d.ts +1 -0
  102. package/dist/graph/importGraph.d.ts.map +1 -1
  103. package/dist/graph/importGraph.js +1 -1
  104. package/dist/graph/importGraph.js.map +1 -1
  105. package/dist/hooks/codex.d.ts.map +1 -1
  106. package/dist/hooks/codex.js +1 -1
  107. package/dist/hooks/codex.js.map +1 -1
  108. package/dist/hooks/core.d.ts +1 -1
  109. package/dist/hooks/core.d.ts.map +1 -1
  110. package/dist/hooks/core.js +4 -4
  111. package/dist/hooks/core.js.map +1 -1
  112. package/dist/hooks/cursor.d.ts.map +1 -1
  113. package/dist/hooks/cursor.js +2 -2
  114. package/dist/hooks/cursor.js.map +1 -1
  115. package/dist/index.d.ts +1 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js.map +1 -1
  118. package/dist/installer.d.ts +13 -7
  119. package/dist/installer.d.ts.map +1 -1
  120. package/dist/installer.js +25 -15
  121. package/dist/installer.js.map +1 -1
  122. package/dist/invariants/invariant-rules.schema.json +1 -1
  123. package/dist/invariants/ruleValidator.js +1 -1
  124. package/dist/invariants/ruleValidator.js.map +1 -1
  125. package/dist/invariants/types.d.ts +1 -1
  126. package/dist/invariants/types.d.ts.map +1 -1
  127. package/dist/languages/LanguageOrchestrator.d.ts +3 -2
  128. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  129. package/dist/languages/LanguageOrchestrator.js +1 -1
  130. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  131. package/dist/languages/RuntimeManager.d.ts +20 -11
  132. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  133. package/dist/languages/RuntimeManager.js +151 -51
  134. package/dist/languages/RuntimeManager.js.map +1 -1
  135. package/dist/languages/adapterBridge.d.ts +10 -0
  136. package/dist/languages/adapterBridge.d.ts.map +1 -1
  137. package/dist/languages/adapterBridge.js +30 -7
  138. package/dist/languages/adapterBridge.js.map +1 -1
  139. package/dist/languages/go/GoAdapter.d.ts +1 -19
  140. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  141. package/dist/languages/go/GoAdapter.js +33 -116
  142. package/dist/languages/go/GoAdapter.js.map +1 -1
  143. package/dist/languages/go/analyzer +0 -0
  144. package/dist/languages/go/analyzer-src/analyzer.go +8 -8
  145. package/dist/languages/go/analyzer-src/solid.go +5 -5
  146. package/dist/languages/goBinary.d.ts +46 -0
  147. package/dist/languages/goBinary.d.ts.map +1 -0
  148. package/dist/languages/goBinary.js +169 -0
  149. package/dist/languages/goBinary.js.map +1 -0
  150. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +1 -28
  151. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
  152. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +3 -42
  153. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  154. package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
  155. package/dist/languages/tree-sitter/converter.js +2 -1
  156. package/dist/languages/tree-sitter/converter.js.map +1 -1
  157. package/dist/languages/tree-sitter/rawNode.d.ts +31 -0
  158. package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -0
  159. package/dist/languages/tree-sitter/rawNode.js +38 -0
  160. package/dist/languages/tree-sitter/rawNode.js.map +1 -0
  161. package/dist/languages/types.d.ts +0 -21
  162. package/dist/languages/types.d.ts.map +1 -1
  163. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +1 -32
  164. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  165. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +69 -203
  166. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  167. package/dist/ledger.d.ts +3 -0
  168. package/dist/ledger.d.ts.map +1 -1
  169. package/dist/ledger.js +45 -9
  170. package/dist/ledger.js.map +1 -1
  171. package/dist/mcp-tools/projectTasks.js +2 -2
  172. package/dist/mcp-tools/projectTasks.js.map +1 -1
  173. package/dist/mcp-tools/workflowGuide.js +3 -3
  174. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  175. package/dist/mcp-tools-shared.js +13 -13
  176. package/dist/mcp-tools-shared.js.map +1 -1
  177. package/dist/mcp-ui-simple.js +7 -7
  178. package/dist/mcp-ui-simple.js.map +1 -1
  179. package/dist/mcp.js +14 -14
  180. package/dist/mcp.js.map +1 -1
  181. package/dist/mcpAuditJobs.js +7 -7
  182. package/dist/mcpAuditJobs.js.map +1 -1
  183. package/dist/mcpAutoIndex.js +1 -1
  184. package/dist/mcpAutoIndex.js.map +1 -1
  185. package/dist/nextFile.d.ts +2 -2
  186. package/dist/nextFile.d.ts.map +1 -1
  187. package/dist/nextFile.js +19 -5
  188. package/dist/nextFile.js.map +1 -1
  189. package/dist/nextFileIncremental.d.ts +3 -2
  190. package/dist/nextFileIncremental.d.ts.map +1 -1
  191. package/dist/nextFileIncremental.js +20 -7
  192. package/dist/nextFileIncremental.js.map +1 -1
  193. package/dist/pipelineAdapters.d.ts +17 -0
  194. package/dist/pipelineAdapters.d.ts.map +1 -1
  195. package/dist/pipelineAdapters.js +279 -178
  196. package/dist/pipelineAdapters.js.map +1 -1
  197. package/dist/reporting/csvReportGenerator.js +6 -6
  198. package/dist/reporting/csvReportGenerator.js.map +1 -1
  199. package/dist/reporting/htmlReportGenerator.js +11 -11
  200. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  201. package/dist/reporting/jsonReportGenerator.js +2 -2
  202. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  203. package/dist/reporting/sarifReportGenerator.js +1 -1
  204. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  205. package/dist/scripts/benchmarkWorkers.js +1 -1
  206. package/dist/scripts/benchmarkWorkers.js.map +1 -1
  207. package/dist/styles/cssAstExtractor.d.ts +2 -2
  208. package/dist/styles/cssAstExtractor.d.ts.map +1 -1
  209. package/dist/styles/cssAstExtractor.js +67 -111
  210. package/dist/styles/cssAstExtractor.js.map +1 -1
  211. package/dist/styles/styleIndexer.d.ts.map +1 -1
  212. package/dist/styles/styleIndexer.js +19 -6
  213. package/dist/styles/styleIndexer.js.map +1 -1
  214. package/dist/telemetry.d.ts +1 -1
  215. package/dist/telemetry.d.ts.map +1 -1
  216. package/dist/types/crossLanguage.d.ts +1 -1
  217. package/dist/types/crossLanguage.d.ts.map +1 -1
  218. package/dist/types.d.ts +59 -19
  219. package/dist/types.d.ts.map +1 -1
  220. package/dist/types.js +6 -5
  221. package/dist/types.js.map +1 -1
  222. package/dist/utils/astParser.d.ts +1 -17
  223. package/dist/utils/astParser.d.ts.map +1 -1
  224. package/dist/utils/astParser.js +18 -60
  225. package/dist/utils/astParser.js.map +1 -1
  226. package/dist/utils/astUtils.d.ts +12 -12
  227. package/dist/utils/astUtils.d.ts.map +1 -1
  228. package/dist/utils/astUtils.js +83 -82
  229. package/dist/utils/astUtils.js.map +1 -1
  230. package/dist/utils/componentResponsibility.d.ts +8 -8
  231. package/dist/utils/componentResponsibility.d.ts.map +1 -1
  232. package/dist/utils/componentResponsibility.js +33 -38
  233. package/dist/utils/componentResponsibility.js.map +1 -1
  234. package/dist/utils/dependencyExtractor.d.ts +3 -3
  235. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  236. package/dist/utils/dependencyExtractor.js +26 -30
  237. package/dist/utils/dependencyExtractor.js.map +1 -1
  238. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  239. package/dist/utils/fileDiscovery.js +65 -0
  240. package/dist/utils/fileDiscovery.js.map +1 -1
  241. package/dist/utils/jsDocParser.d.ts +6 -6
  242. package/dist/utils/jsDocParser.d.ts.map +1 -1
  243. package/dist/utils/jsDocParser.js +18 -21
  244. package/dist/utils/jsDocParser.js.map +1 -1
  245. package/dist/utils/reactDetection.d.ts +7 -7
  246. package/dist/utils/reactDetection.d.ts.map +1 -1
  247. package/dist/utils/reactDetection.js +42 -49
  248. package/dist/utils/reactDetection.js.map +1 -1
  249. package/dist/version.generated.d.ts +1 -1
  250. package/dist/version.generated.d.ts.map +1 -1
  251. package/dist/version.generated.js +1 -1
  252. package/dist/version.generated.js.map +1 -1
  253. package/package.json +1 -1
  254. package/plugin/.claude-plugin/plugin.json +1 -1
  255. package/plugin/README.md +5 -4
  256. package/plugin/hooks/hooks.json +11 -0
  257. package/plugin/scripts/hook-common.sh +85 -31
  258. package/plugin/scripts/hook-warm.sh +44 -0
  259. package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +28 -21
  260. package/plugin/skills/code-auditor/SKILL.md +10 -10
  261. package/server.json +2 -2
@@ -7,6 +7,7 @@ import { promisify } from 'util';
7
7
  import * as path from 'path';
8
8
  import * as fs from 'fs/promises';
9
9
  import { fileURLToPath } from 'node:url';
10
+ import { binaryMatchesPlatform, describeBinaryMismatch } from './goBinary.js';
10
11
  const execAsync = promisify(exec);
11
12
  // This module is ESM, so `__dirname` is undefined at runtime. Derive the
12
13
  // directory of this file (src/languages in dev, dist/languages when compiled)
@@ -22,6 +23,47 @@ function describeError(error) {
22
23
  return error.message;
23
24
  return String(error);
24
25
  }
26
+ /** Filename of the Go analyzer binary for this platform. Go appends `.exe`
27
+ * when GOOS=windows; we mirror that for the prebuilt name so a Windows rebuild
28
+ * lands where `runGoAnalyzer` looks. */
29
+ function goAnalyzerBinaryName() {
30
+ return process.platform === 'win32' ? 'analyzer.exe' : 'analyzer';
31
+ }
32
+ /** GOOS/GOARCH for a native rebuild, derived from the Node platform/arch the
33
+ * runtime is executing on (NOT the arch of the Go toolchain, which may itself
34
+ * be emulated — e.g. an amd64 toolchain on darwin/arm64 must still emit arm64). */
35
+ function goBuildTarget() {
36
+ const goos = process.platform === 'win32' ? 'windows' : process.platform;
37
+ const goarch = { x64: 'amd64', arm64: 'arm64', ia32: '386', arm: 'arm' }[process.arch]
38
+ ?? 'amd64';
39
+ return { goos, goarch };
40
+ }
41
+ /**
42
+ * Read the first bytes of a file as a header for `binaryMatchesPlatform`.
43
+ * Returns null when the file is absent or unreadable — callers already run
44
+ * their own existence check, so the distinction (absent vs. wrong content)
45
+ * lives in the match reason, not here.
46
+ */
47
+ async function readExecutableHeader(filePath) {
48
+ let handle;
49
+ try {
50
+ handle = await fs.open(filePath, 'r');
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ try {
56
+ const buf = Buffer.alloc(128);
57
+ const { bytesRead } = await handle.read(buf, 0, 128, 0);
58
+ return bytesRead > 0 ? buf.subarray(0, bytesRead) : null;
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ finally {
64
+ await handle.close().catch(() => { });
65
+ }
66
+ }
25
67
  // ---------------------------------------------------------------------------
26
68
  // Detection layer: shared state + runtime discovery (leaf — no cross-layer calls)
27
69
  // ---------------------------------------------------------------------------
@@ -90,57 +132,81 @@ class RuntimeManagerDetection {
90
132
  /**
91
133
  * Detect Go runtime.
92
134
  *
93
- * Split into two steps so each failure mode carries its own reason instead of
94
- * collapsing into a single `available: false` that reads identically whether
95
- * the toolchain is absent, the path resolution broke, or the analyzer binary
96
- * is missing. The orchestrator relays `failureReason` as a stated notApplicable
97
- * rather than a silent skip (see LanguageOrchestrator.collectNotApplicable).
135
+ * Resolve the analyzer binary FIRST so availability is decided by "is there a
136
+ * native binary?" OR "is there a toolchain to rebuild one?" — not toolchain
137
+ * alone. That ordering is what lets a wrong-arch binary surface as its own
138
+ * named failure (`go-analyzer-wrong-arch`) instead of collapsing into the
139
+ * generic "toolchain missing" case. The orchestrator relays `failureReason` /
140
+ * `failureKind` as a stated diagnostic rather than a silent skip (see
141
+ * LanguageOrchestrator.collectNotApplicable).
98
142
  */
99
143
  async detectGoRuntime() {
100
144
  console.error('[RuntimeManager] Detecting Go runtime...');
101
- // Step 1 — toolchain presence. `go version` failing means Go is not
102
- // installed (or not on PATH); that is the "Go analysis skipped" case.
103
- const version = await this.detectGoToolchainVersion();
104
- if (version === null) {
145
+ // Step 1 — binary. A native prebuilt binary means Go analysis runs with no
146
+ // toolchain at all. A missing or wrong-arch binary is NOT a detection
147
+ // failure either: `ensureGoAnalyzerBuilt` rebuilds it from shipped source on
148
+ // first use, provided a toolchain exists. Only path-resolution failure marks
149
+ // the runtime unavailable outright.
150
+ const resolved = await this.resolveGoAnalyzerPath();
151
+ if (resolved.failureReason) {
105
152
  this.runtimes.set('go', {
106
153
  name: 'Go',
107
154
  command: 'go',
108
155
  version: 'unknown',
109
156
  available: false,
110
- failureReason: 'Go toolchain not found (go version failed)'
157
+ failureReason: resolved.failureReason,
158
+ failureKind: 'go-analyzer-build-failed'
111
159
  });
112
160
  return;
113
161
  }
114
- // Step 2 — analyzer binary presence. A missing binary is NOT a detection
115
- // failure: `ensureGoAnalyzerBuilt` compiles it from shipped source on first
116
- // use. Only a path-resolution failure marks the runtime unavailable.
117
- const resolved = await this.resolveGoAnalyzerPath();
118
- if (resolved.failureReason) {
162
+ const analyzerPath = resolved.path;
163
+ const version = await this.detectGoToolchainVersion();
164
+ // Native binary present → usable without a toolchain.
165
+ if (resolved.exists && resolved.matchesPlatform) {
119
166
  this.runtimes.set('go', {
120
167
  name: 'Go',
121
168
  command: 'go',
122
- version,
169
+ version: version ?? 'unknown',
170
+ available: true,
171
+ minVersion: '1.18.0',
172
+ executablePath: analyzerPath,
173
+ analyzer: createGoAnalyzer(analyzerPath)
174
+ });
175
+ console.error('[RuntimeManager] Go runtime configured (native prebuilt binary)');
176
+ return;
177
+ }
178
+ // No usable binary → a toolchain is required to rebuild from source. Distinguish
179
+ // a wrong-arch binary (present but foreign) from a missing one, so the named
180
+ // diagnostic says which rather than a generic "go version failed".
181
+ if (version === null) {
182
+ const wrongArch = resolved.exists && !resolved.matchesPlatform;
183
+ this.runtimes.set('go', {
184
+ name: 'Go',
185
+ command: 'go',
186
+ version: 'unknown',
123
187
  available: false,
124
- failureReason: resolved.failureReason
188
+ failureReason: wrongArch
189
+ ? `${describeBinaryMismatch(resolved.match, process.platform, process.arch)}; no Go toolchain to rebuild it`
190
+ : 'Go toolchain not found (go version failed) — needed to build the Go analyzer',
191
+ failureKind: wrongArch ? 'go-analyzer-wrong-arch' : 'go-toolchain-missing'
125
192
  });
126
193
  return;
127
194
  }
128
- const analyzerPath = resolved.path;
129
- const analyzerExists = resolved.exists;
195
+ // Toolchain present, no usable binary yet → available; rebuild on first use.
130
196
  this.runtimes.set('go', {
131
197
  name: 'Go',
132
198
  command: 'go',
133
199
  version,
134
200
  available: true,
135
201
  minVersion: '1.18.0',
136
- executablePath: analyzerExists ? analyzerPath : undefined,
202
+ executablePath: undefined,
137
203
  analyzer: createGoAnalyzer(analyzerPath)
138
204
  });
139
- console.error('[RuntimeManager] Go runtime configured successfully');
205
+ console.error('[RuntimeManager] Go runtime configured (rebuild on first use)');
140
206
  }
141
207
  /**
142
- * Step 1 of Go detection: probe the toolchain. Returns the version string,
143
- * or null when `go` is not installed / not on PATH.
208
+ * Probe the Go toolchain. Returns the version string, or null when `go` is
209
+ * not installed / not on PATH.
144
210
  */
145
211
  async detectGoToolchainVersion() {
146
212
  try {
@@ -156,22 +222,35 @@ class RuntimeManagerDetection {
156
222
  }
157
223
  }
158
224
  /**
159
- * Step 2 of Go detection: locate the analyzer binary. Returns the path and
160
- * whether the binary already exists, or a `failureReason` when path
161
- * resolution itself fails. A missing binary is NOT a failure — the runtime
162
- * still registers as available and compiles it from source on first use.
225
+ * Locate the analyzer binary and report whether it runs natively here. Returns
226
+ * the path, existence, and a `BinaryMatch` against the current platform/arch;
227
+ * `failureReason` is set only when path resolution itself fails. A missing or
228
+ * mismatched binary is NOT a failure — it just means "rebuild on first use",
229
+ * so the mismatch is caught on every path that reaches for the binary, not
230
+ * only the one that happens to build it.
163
231
  */
164
232
  async resolveGoAnalyzerPath() {
165
233
  try {
166
- const analyzerPath = path.join(moduleDir, 'go', 'analyzer');
234
+ const analyzerPath = path.join(moduleDir, 'go', goAnalyzerBinaryName());
167
235
  console.error('[RuntimeManager] Looking for Go analyzer at:', analyzerPath);
168
- const analyzerExists = (await this.fileExists(analyzerPath)) || (await this.fileExists(analyzerPath + '.exe'));
169
- console.error('[RuntimeManager] Go analyzer exists:', analyzerExists);
170
- return { path: analyzerPath, exists: analyzerExists };
236
+ const exists = await this.fileExists(analyzerPath);
237
+ console.error('[RuntimeManager] Go analyzer exists:', exists);
238
+ if (!exists) {
239
+ return { path: analyzerPath, exists: false, matchesPlatform: false, match: null };
240
+ }
241
+ const header = await readExecutableHeader(analyzerPath);
242
+ const match = binaryMatchesPlatform(header, process.platform, process.arch);
243
+ console.error('[RuntimeManager] Go analyzer matches platform:', match.matches, match.reason);
244
+ return { path: analyzerPath, exists: true, matchesPlatform: match.matches, match };
171
245
  }
172
246
  catch (error) {
173
247
  console.error('[RuntimeManager] Go analyzer path resolution failed:', error);
174
- return { failureReason: `Go analyzer path resolution failed: ${describeError(error)}` };
248
+ return {
249
+ exists: false,
250
+ matchesPlatform: false,
251
+ match: null,
252
+ failureReason: `Go analyzer path resolution failed: ${describeError(error)}`
253
+ };
175
254
  }
176
255
  }
177
256
  /**
@@ -701,7 +780,7 @@ class TypeScriptAnalyzer {
701
780
  projectRoot: options?.projectRoot,
702
781
  includePaths: files,
703
782
  enabledAnalyzers: options?.analyzers || ['solid', 'dry', 'documentation', 'data-access'],
704
- minSeverity: options?.minSeverity || 'high',
783
+ minSeverity: options?.minSeverity || 'advisory',
705
784
  verbose: false
706
785
  });
707
786
  const executionTime = Date.now() - startTime;
@@ -790,6 +869,17 @@ function extractErrors(auditResult) {
790
869
  }
791
870
  return errors;
792
871
  }
872
+ /** A Go analyzer build failure, tagged with a named kind so `GoAnalyzer.analyze`
873
+ * can relay it to the report's diagnostic channel as `go-toolchain-missing` or
874
+ * `go-analyzer-build-failed` rather than an anonymous skip. */
875
+ class GoAnalyzerBuildError extends Error {
876
+ code;
877
+ constructor(code, message) {
878
+ super(message);
879
+ this.code = code;
880
+ this.name = 'GoAnalyzerBuildError';
881
+ }
882
+ }
793
883
  class GoAnalyzer {
794
884
  analyzerPath;
795
885
  name = 'go';
@@ -804,13 +894,13 @@ class GoAnalyzer {
804
894
  console.log(`[GoAnalyzer] Analyzing ${files.length} Go files`);
805
895
  const startTime = Date.now();
806
896
  try {
807
- // Build the Go analyzer if needed
897
+ // Build the Go analyzer if needed (no-op when a native binary is present).
808
898
  const goAnalyzerDir = path.join(moduleDir, 'go');
809
899
  await this.ensureGoAnalyzerBuilt(goAnalyzerDir);
810
900
  // Prepare analysis options
811
901
  const analysisOptions = {
812
902
  analyzers: options?.analyzers || ['solid', 'imports', 'errors'],
813
- minSeverity: options?.minSeverity || 'high',
903
+ minSeverity: options?.minSeverity || 'advisory',
814
904
  timeout: options?.timeout || 30000,
815
905
  language: options?.language || 'go',
816
906
  verbose: options?.verbose || false
@@ -825,6 +915,12 @@ class GoAnalyzer {
825
915
  catch (error) {
826
916
  const executionTime = Date.now() - startTime;
827
917
  console.error(`[GoAnalyzer] Error during analysis:`, error);
918
+ // Classify into a named diagnostic kind so a wrong-arch binary, a missing
919
+ // toolchain, and a failed build each say which — once — instead of all
920
+ // collapsing into `go_analysis_skipped` with empty violations.
921
+ const type = error instanceof GoAnalyzerBuildError
922
+ ? error.code
923
+ : (error instanceof Error && /timed out/i.test(error.message) ? 'timeout' : 'go-analysis-error');
828
924
  return {
829
925
  violations: [],
830
926
  indexEntries: [],
@@ -833,25 +929,25 @@ class GoAnalyzer {
833
929
  executionTime
834
930
  },
835
931
  errors: [{
836
- message: error instanceof Error ? error.message : String(error),
837
- type: 'go_analysis_skipped',
932
+ message: describeError(error),
933
+ type,
838
934
  language: 'go'
839
935
  }]
840
936
  };
841
937
  }
842
938
  }
843
939
  async ensureGoAnalyzerBuilt(goDir) {
844
- const binaryPath = path.join(goDir, 'analyzer');
845
- try {
846
- // Check if binary exists
847
- await fs.access(binaryPath);
848
- console.log(`[GoAnalyzer] Binary already exists at ${binaryPath}`);
940
+ const binaryPath = path.join(goDir, goAnalyzerBinaryName());
941
+ // A native binary is the fast path; anything else (absent, wrong arch, wrong
942
+ // format) must be rebuilt from shipped source rather than spawned — a foreign
943
+ // binary fails to exec, and a wrong-arch one would be silently mis-run.
944
+ const header = await readExecutableHeader(binaryPath);
945
+ const match = binaryMatchesPlatform(header, process.platform, process.arch);
946
+ if (match.matches) {
947
+ console.log(`[GoAnalyzer] Binary is native at ${binaryPath}`);
849
948
  return;
850
949
  }
851
- catch {
852
- // Binary absent — fall through to build-from-source.
853
- }
854
- console.log(`[GoAnalyzer] Building Go analyzer binary...`);
950
+ console.log(`[GoAnalyzer] Rebuilding Go analyzer binary (${match.reason}): ${binaryPath}`);
855
951
  // A missing toolchain here is a stated, distinct failure — not a silent
856
952
  // zero. `detectGoRuntime` normally precludes this (it only registers Go as
857
953
  // available when `go version` succeeds), but a direct call or a toolchain
@@ -860,21 +956,25 @@ class GoAnalyzer {
860
956
  await execAsync('go version');
861
957
  }
862
958
  catch {
863
- throw new Error('Go toolchain not found — Go analysis skipped');
959
+ throw new GoAnalyzerBuildError('go-toolchain-missing', `Go toolchain not found — cannot rebuild the Go analyzer (${describeBinaryMismatch(match, process.platform, process.arch)})`);
864
960
  }
961
+ // Build for the platform Node is running on, NOT the toolchain's own arch
962
+ // (an amd64 toolchain on darwin/arm64 must still emit arm64, else the
963
+ // rebuild reproduces the same foreign binary and loops forever).
964
+ const { goos, goarch } = goBuildTarget();
865
965
  try {
866
- const { stderr } = await execAsync(`cd "${goDir}" && go build -o analyzer main.go`);
966
+ const { stderr } = await execAsync(`cd "${goDir}" && GOOS=${goos} GOARCH=${goarch} CGO_ENABLED=0 go build -o ${goAnalyzerBinaryName()} main.go`);
867
967
  if (stderr) {
868
968
  console.warn(`[GoAnalyzer] Build warnings: ${stderr}`);
869
969
  }
870
- console.log(`[GoAnalyzer] Successfully built Go analyzer binary`);
970
+ console.log(`[GoAnalyzer] Successfully built Go analyzer binary (${goos}/${goarch})`);
871
971
  }
872
972
  catch (buildError) {
873
- throw new Error(`Go analyzer build failed: ${describeError(buildError)}`);
973
+ throw new GoAnalyzerBuildError('go-analyzer-build-failed', `Go analyzer build failed (${goos}/${goarch}): ${describeError(buildError)}`);
874
974
  }
875
975
  }
876
976
  async runGoAnalyzer(goDir, files, options) {
877
- const binaryPath = path.join(goDir, 'analyzer');
977
+ const binaryPath = path.join(goDir, goAnalyzerBinaryName());
878
978
  return spawnGoAnalyzer(binaryPath, goDir, files, options);
879
979
  }
880
980
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeManager.js","sourceRoot":"","sources":["../../src/languages/RuntimeManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeManager.js","sourceRoot":"","sources":["../../src/languages/RuntimeManager.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,16 @@ export declare function isAsync(node: ASTNode): boolean;
109
109
  * @returns
110
110
  */
111
111
  export declare function getNodeName(node: ASTNode): string | null;
112
+ /**
113
+ * Resolve a tree-sitter field name to its backing `ASTNode` child.
114
+ *
115
+ * Field children are always named nodes, so they already appear in
116
+ * `node.children`; the field→child mapping is resolved through the raw node
117
+ * (which never leaves this module), and the matching `ASTNode` is returned so
118
+ * callers can read it via `getNodeText`/`getNodeName` without holding a
119
+ * parser-specific node. Returns `undefined` when the field is absent.
120
+ */
121
+ export declare function getFieldNode(node: ASTNode, field: string): ASTNode | undefined;
112
122
  /**
113
123
  * Count parameters of a function-like node.
114
124
  * @param node
@@ -1 +1 @@
1
- {"version":3,"file":"adapterBridge.d.ts","sourceRoot":"","sources":["../../src/languages/adapterBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapterBridge.d.ts","sourceRoot":"","sources":["../../src/languages/adapterBridge.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { LanguageRegistry } from './LanguageRegistry.js';
13
13
  import { toASTNode } from './tree-sitter/converter.js';
14
+ import { getRawNode } from './tree-sitter/rawNode.js';
14
15
  import { getParser, isInitialized } from './tree-sitter/parser.js';
15
16
  // ---------------------------------------------------------------------------
16
17
  // Guards
@@ -228,7 +229,7 @@ const MODIFIER_KEYWORDS = new Set([
228
229
  * @returns
229
230
  */
230
231
  export function hasModifier(node, modifier) {
231
- const raw = node.raw;
232
+ const raw = getRawNode(node);
232
233
  if (!raw?.children)
233
234
  return false;
234
235
  for (const child of raw.children) {
@@ -247,7 +248,7 @@ export function isExported(node) {
247
248
  if (hasModifier(node, 'export'))
248
249
  return true;
249
250
  // Check if the parent is an export_statement
250
- const raw = node.raw;
251
+ const raw = getRawNode(node);
251
252
  if (raw?.parent?.type === 'export_statement')
252
253
  return true;
253
254
  // Walk up to check for export_statement ancestor
@@ -276,7 +277,7 @@ export function isAsync(node) {
276
277
  * @returns
277
278
  */
278
279
  export function getNodeName(node) {
279
- const raw = node.raw;
280
+ const raw = getRawNode(node);
280
281
  if (!raw)
281
282
  return null;
282
283
  // Check for a direct name child
@@ -293,6 +294,28 @@ export function getNodeName(node) {
293
294
  }
294
295
  return null;
295
296
  }
297
+ /**
298
+ * Resolve a tree-sitter field name to its backing `ASTNode` child.
299
+ *
300
+ * Field children are always named nodes, so they already appear in
301
+ * `node.children`; the field→child mapping is resolved through the raw node
302
+ * (which never leaves this module), and the matching `ASTNode` is returned so
303
+ * callers can read it via `getNodeText`/`getNodeName` without holding a
304
+ * parser-specific node. Returns `undefined` when the field is absent.
305
+ */
306
+ export function getFieldNode(node, field) {
307
+ const raw = getRawNode(node);
308
+ const rawChild = typeof raw?.childForFieldName === 'function'
309
+ ? raw.childForFieldName(field)
310
+ : null;
311
+ if (!rawChild)
312
+ return undefined;
313
+ // web-tree-sitter returns fresh JS wrappers per access, so match the field
314
+ // child against `node.children` by node id (stable within a tree) rather
315
+ // than object identity.
316
+ const rawChildId = rawChild.id;
317
+ return node.children?.find((c) => getRawNode(c).id === rawChildId);
318
+ }
296
319
  // ---------------------------------------------------------------------------
297
320
  // Parameter count
298
321
  // ---------------------------------------------------------------------------
@@ -302,7 +325,7 @@ export function getNodeName(node) {
302
325
  * @returns
303
326
  */
304
327
  export function getParameterCount(node) {
305
- const raw = node.raw;
328
+ const raw = getRawNode(node);
306
329
  if (!raw?.namedChildren)
307
330
  return 0;
308
331
  for (const child of raw.namedChildren) {
@@ -323,7 +346,7 @@ export function getParameterCount(node) {
323
346
  export function calculateComplexity(node) {
324
347
  let complexity = 1;
325
348
  // Walk the tree-sitter subtree
326
- const raw = node.raw;
349
+ const raw = getRawNode(node);
327
350
  function count(node) {
328
351
  if (LOOP_TYPES.has(node.type) || CONDITIONAL_TYPES.has(node.type)) {
329
352
  complexity++;
@@ -356,7 +379,7 @@ export function calculateComplexity(node) {
356
379
  * @returns
357
380
  */
358
381
  export function getFunctionBody(node, sourceCode) {
359
- const raw = node.raw;
382
+ const raw = getRawNode(node);
360
383
  if (!raw)
361
384
  return undefined;
362
385
  const body = raw.namedChildren.find((c) => c.type === 'statement_block');
@@ -384,7 +407,7 @@ export function extractImports(filePath, content) {
384
407
  // Find import_statement nodes
385
408
  const importNodes = findNodes(ast.root, (n) => n.type === 'import_statement');
386
409
  for (const imp of importNodes) {
387
- const raw = imp.raw;
410
+ const raw = getRawNode(imp);
388
411
  const moduleSpecifier = extractModuleSpecifier(raw);
389
412
  // Get import clause
390
413
  const importClause = raw.namedChildren.find((c) => c.type === 'import_clause');