code-auditor-mcp 3.9.11 → 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 +200 -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 +20 -0
  119. package/dist/installer.d.ts.map +1 -1
  120. package/dist/installer.js +58 -0
  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 +129 -26
  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
@@ -158,14 +158,14 @@ func (a *Analyzer) runImportAnalysis() []Violation {
158
158
  violations = append(violations, Violation{
159
159
  File: filePath,
160
160
  Line: line,
161
- Severity: "high",
161
+ Severity: "advisory",
162
162
  Message: "Import block mixes standard library and third-party imports without grouping",
163
163
  Details: map[string]interface{}{
164
164
  "importCount": len(file.Imports),
165
165
  "groupingViolations": grouped,
166
166
  },
167
167
  Suggestion: "Group standard library imports first, then third-party imports, each block separated by a blank line",
168
- Analyzer: "imports",
168
+ Analyzer: "go",
169
169
  Rule: "import-organization",
170
170
  })
171
171
  }
@@ -177,13 +177,13 @@ func (a *Analyzer) runImportAnalysis() []Violation {
177
177
  violations = append(violations, Violation{
178
178
  File: filePath,
179
179
  Line: pos.Line,
180
- Severity: "high",
180
+ Severity: "advisory",
181
181
  Message: "Dot import detected - can lead to namespace pollution",
182
182
  Details: map[string]interface{}{
183
183
  "import": importSpec.Path.Value,
184
184
  },
185
185
  Suggestion: "Use explicit import names instead of dot imports",
186
- Analyzer: "imports",
186
+ Analyzer: "go",
187
187
  Rule: "import-style",
188
188
  })
189
189
  }
@@ -223,7 +223,7 @@ func (a *Analyzer) runErrorAnalysis() []Violation {
223
223
  "function": funcDecl.Name.Name,
224
224
  },
225
225
  Suggestion: "Check the error, return it, or explicitly ignore it with '_ = err'",
226
- Analyzer: "errors",
226
+ Analyzer: "go",
227
227
  Rule: "error-handling",
228
228
  })
229
229
  return true
@@ -264,7 +264,7 @@ func (a *Analyzer) runGoroutineAnalysis() []Violation {
264
264
  "function": funcDecl.Name.Name,
265
265
  },
266
266
  Suggestion: "Use sync.WaitGroup or a channel to synchronize the goroutine",
267
- Analyzer: "goroutines",
267
+ Analyzer: "go",
268
268
  Rule: "concurrency",
269
269
  })
270
270
  return true
@@ -312,7 +312,7 @@ func (a *Analyzer) runChannelAnalysis() []Violation {
312
312
  "channel": channel,
313
313
  },
314
314
  Suggestion: "Buffer the channel, or run one side (send or receive) in its own goroutine",
315
- Analyzer: "channels",
315
+ Analyzer: "go",
316
316
  Rule: "channel-deadlock",
317
317
  })
318
318
  return true
@@ -329,7 +329,7 @@ func (a *Analyzer) filterViolationsBySeverity(violations []Violation) []Violatio
329
329
  }
330
330
 
331
331
  severityOrder := map[string]int{
332
- "high": 1,
332
+ "advisory": 1,
333
333
  "severe": 2,
334
334
  "critical": 3,
335
335
  }
@@ -67,7 +67,7 @@ func (s *SOLIDAnalyzer) analyzeFunctionSize() []Violation {
67
67
  violations = append(violations, Violation{
68
68
  File: function.File,
69
69
  Line: function.StartLine,
70
- Severity: "high",
70
+ Severity: "severe",
71
71
  Message: "Function has many parameters, multiple returns, and high complexity",
72
72
  Details: map[string]interface{}{
73
73
  "function": function.Name,
@@ -102,7 +102,7 @@ func (s *SOLIDAnalyzer) analyzeStructSize() []Violation {
102
102
  violations = append(violations, Violation{
103
103
  File: structInfo.File,
104
104
  Line: structInfo.StartLine,
105
- Severity: "high",
105
+ Severity: "severe",
106
106
  Message: "Struct has many fields",
107
107
  Details: map[string]interface{}{
108
108
  "struct": structInfo.Name,
@@ -142,7 +142,7 @@ func (s *SOLIDAnalyzer) analyzeSwitchSize() []Violation {
142
142
  violations = append(violations, Violation{
143
143
  File: filePath,
144
144
  Line: pos.Line,
145
- Severity: "high",
145
+ Severity: "severe",
146
146
  Message: "Switch statement has many case clauses",
147
147
  Details: map[string]interface{}{
148
148
  "caseCount": caseCount,
@@ -160,7 +160,7 @@ func (s *SOLIDAnalyzer) analyzeSwitchSize() []Violation {
160
160
  violations = append(violations, Violation{
161
161
  File: filePath,
162
162
  Line: pos.Line,
163
- Severity: "high",
163
+ Severity: "severe",
164
164
  Message: "Type switch has many case clauses",
165
165
  Details: map[string]interface{}{
166
166
  "caseCount": caseCount,
@@ -245,7 +245,7 @@ func (s *SOLIDAnalyzer) analyzeISP() []Violation {
245
245
  violations = append(violations, Violation{
246
246
  File: interfaceInfo.File,
247
247
  Line: interfaceInfo.StartLine,
248
- Severity: "high",
248
+ Severity: "severe",
249
249
  Message: "Interface has many methods",
250
250
  Details: map[string]interface{}{
251
251
  "interface": interfaceInfo.Name,
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Prebuilt-binary architecture inspection for the Go analyzer subprocess.
3
+ *
4
+ * The Go analyzer ships as a single prebuilt binary (currently darwin/amd64).
5
+ * On any other platform/architecture it cannot run, so the runtime must detect
6
+ * the mismatch and rebuild from the shipped source instead of spawning a binary
7
+ * that will fail to exec (or silently no-op). This module is the pure,
8
+ * header-only check shared by path resolution (detection) and the build step,
9
+ * so a stale or wrong-arch binary is caught on every path that reaches for it —
10
+ * not only the one that happens to rebuild.
11
+ *
12
+ * No filesystem access here: callers read the first bytes of the binary and
13
+ * pass the buffer in, which keeps this deterministic and unit-testable.
14
+ */
15
+ export type ExecutableFormat = 'macho' | 'elf' | 'pe' | 'fat-macho' | 'unknown';
16
+ export type ExecutableArch = 'x64' | 'arm64' | 'ia32' | 'arm' | 'unknown';
17
+ export interface ExecutableIdentity {
18
+ format: ExecutableFormat;
19
+ arch: ExecutableArch;
20
+ }
21
+ export interface BinaryMatch {
22
+ /** True when the binary runs natively on the given platform/arch. */
23
+ matches: boolean;
24
+ /**
25
+ * Why the binary does not match. `absent` means no header was supplied
26
+ * (the file is missing or could not be read); the caller distinguishes the
27
+ * two because it already performs its own existence check.
28
+ */
29
+ reason: 'ok' | 'absent' | 'format-mismatch' | 'arch-mismatch' | 'unknown-format';
30
+ /** Parsed identity when a header was available, else null. */
31
+ identity: ExecutableIdentity | null;
32
+ }
33
+ /**
34
+ * Inspect a binary's header and report its format and architecture.
35
+ * `header` must be the first bytes of the file (>= 4; up to ~128 is plenty —
36
+ * PE needs 0x3c + 6).
37
+ */
38
+ export declare function inspectExecutable(header: Buffer): ExecutableIdentity;
39
+ /**
40
+ * Decide whether an existing binary is runnable on the given platform/arch.
41
+ * Pass `null` for the header when the file is absent or unreadable.
42
+ */
43
+ export declare function binaryMatchesPlatform(header: Buffer | null, platform?: string, arch?: string): BinaryMatch;
44
+ /** Human-readable reason a mismatched binary can't run, for diagnostics. */
45
+ export declare function describeBinaryMismatch(match: BinaryMatch, platform: string, arch: string): string;
46
+ //# sourceMappingURL=goBinary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goBinary.d.ts","sourceRoot":"","sources":["../../src/languages/goBinary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,CAAC;IACjF,8DAA8D;IAC9D,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACrC;AAyBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAuCpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,GAC1B,WAAW,CAyBb;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBjG"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Prebuilt-binary architecture inspection for the Go analyzer subprocess.
3
+ *
4
+ * The Go analyzer ships as a single prebuilt binary (currently darwin/amd64).
5
+ * On any other platform/architecture it cannot run, so the runtime must detect
6
+ * the mismatch and rebuild from the shipped source instead of spawning a binary
7
+ * that will fail to exec (or silently no-op). This module is the pure,
8
+ * header-only check shared by path resolution (detection) and the build step,
9
+ * so a stale or wrong-arch binary is caught on every path that reaches for it —
10
+ * not only the one that happens to rebuild.
11
+ *
12
+ * No filesystem access here: callers read the first bytes of the binary and
13
+ * pass the buffer in, which keeps this deterministic and unit-testable.
14
+ */
15
+ // Mach-O 64-bit little-endian magic and cputype (thin header, offset 4).
16
+ const MH_MAGIC = 0xfeedface;
17
+ const MH_MAGIC_64 = 0xfeedfacf;
18
+ const FAT_MAGIC_BE = 0xcafebabe; // read little-endian from a big-endian blob
19
+ const FAT_MAGIC_LE = 0xbebafeca; // the reverse, also accepted defensively
20
+ const CPU_TYPE_X86 = 7;
21
+ const CPU_TYPE_ARM = 12;
22
+ const CPU_TYPE_X86_64 = 0x01000007;
23
+ const CPU_TYPE_ARM64 = 0x0100000c;
24
+ // ELF e_machine constants (offset 18).
25
+ const EM_386 = 3;
26
+ const EM_ARM = 40;
27
+ const EM_X86_64 = 62;
28
+ const EM_AARCH64 = 183;
29
+ // PE machine constants (e_lfanew + 4).
30
+ const IMAGE_FILE_MACHINE_I386 = 0x014c;
31
+ const IMAGE_FILE_MACHINE_ARM = 0x01c0;
32
+ const IMAGE_FILE_MACHINE_ARM64 = 0xaa64;
33
+ const IMAGE_FILE_MACHINE_AMD64 = 0x8664;
34
+ /**
35
+ * Inspect a binary's header and report its format and architecture.
36
+ * `header` must be the first bytes of the file (>= 4; up to ~128 is plenty —
37
+ * PE needs 0x3c + 6).
38
+ */
39
+ export function inspectExecutable(header) {
40
+ if (header.length < 4)
41
+ return { format: 'unknown', arch: 'unknown' };
42
+ const b0 = header[0];
43
+ const b1 = header[1];
44
+ const b2 = header[2];
45
+ const b3 = header[3];
46
+ const leMagic = header.readUInt32LE(0);
47
+ // Mach-O (thin, little-endian). 64-bit and 32-bit share the cputype offset.
48
+ if (leMagic === MH_MAGIC_64 || leMagic === MH_MAGIC) {
49
+ const cputype = header.readUInt32LE(4);
50
+ return { format: 'macho', arch: machoCpuToArch(cputype) };
51
+ }
52
+ // Fat/universal Mach-O. We do not enumerate slices; a universal binary is
53
+ // never shipped, and treating it as unresolved forces the safe rebuild.
54
+ if (leMagic === FAT_MAGIC_BE || leMagic === FAT_MAGIC_LE) {
55
+ return { format: 'fat-macho', arch: 'unknown' };
56
+ }
57
+ // ELF
58
+ if (b0 === 0x7f && b1 === 0x45 && b2 === 0x4c && b3 === 0x46) {
59
+ if (header.length < 20)
60
+ return { format: 'elf', arch: 'unknown' };
61
+ const bigEndian = header[5] === 2;
62
+ const machine = bigEndian ? header.readUInt16BE(18) : header.readUInt16LE(18);
63
+ return { format: 'elf', arch: elfMachineToArch(machine) };
64
+ }
65
+ // PE ("MZ")
66
+ if (b0 === 0x4d && b1 === 0x5a) {
67
+ if (header.length < 0x3c + 6)
68
+ return { format: 'pe', arch: 'unknown' };
69
+ const peOffset = header.readUInt32LE(0x3c);
70
+ if (peOffset + 6 > header.length)
71
+ return { format: 'pe', arch: 'unknown' };
72
+ const machine = header.readUInt16LE(peOffset + 4);
73
+ return { format: 'pe', arch: peMachineToArch(machine) };
74
+ }
75
+ return { format: 'unknown', arch: 'unknown' };
76
+ }
77
+ /**
78
+ * Decide whether an existing binary is runnable on the given platform/arch.
79
+ * Pass `null` for the header when the file is absent or unreadable.
80
+ */
81
+ export function binaryMatchesPlatform(header, platform = process.platform, arch = process.arch) {
82
+ if (header === null) {
83
+ return { matches: false, reason: 'absent', identity: null };
84
+ }
85
+ const identity = inspectExecutable(header);
86
+ const expectedFormat = platformToFormat(platform);
87
+ if (expectedFormat === null || identity.format === 'unknown' || identity.format === 'fat-macho') {
88
+ // An unsupported platform or an unparsed header can't be confirmed native,
89
+ // so the only safe answer is "rebuild".
90
+ return { matches: false, reason: 'unknown-format', identity };
91
+ }
92
+ if (identity.format !== expectedFormat) {
93
+ return { matches: false, reason: 'format-mismatch', identity };
94
+ }
95
+ const expectedArch = nodeArchToExecutableArch(arch);
96
+ if (identity.arch === 'unknown') {
97
+ return { matches: false, reason: 'unknown-format', identity };
98
+ }
99
+ if (identity.arch !== expectedArch) {
100
+ return { matches: false, reason: 'arch-mismatch', identity };
101
+ }
102
+ return { matches: true, reason: 'ok', identity };
103
+ }
104
+ /** Human-readable reason a mismatched binary can't run, for diagnostics. */
105
+ export function describeBinaryMismatch(match, platform, arch) {
106
+ if (match.identity) {
107
+ const target = match.identity.arch !== 'unknown'
108
+ ? `${match.identity.format}/${match.identity.arch}`
109
+ : match.identity.format;
110
+ if (match.reason === 'arch-mismatch') {
111
+ return `shipped analyzer targets ${target}, but this machine is ${platform}/${arch}`;
112
+ }
113
+ if (match.reason === 'format-mismatch') {
114
+ return `shipped analyzer is ${target} (not runnable on ${platform}/${arch})`;
115
+ }
116
+ if (match.reason === 'unknown-format') {
117
+ return `shipped analyzer has an unrecognized executable format`;
118
+ }
119
+ }
120
+ if (match.reason === 'absent')
121
+ return 'analyzer binary is absent';
122
+ return 'analyzer binary is not runnable here';
123
+ }
124
+ // --- Mappers -----------------------------------------------------------------
125
+ function platformToFormat(platform) {
126
+ switch (platform) {
127
+ case 'darwin': return 'macho';
128
+ case 'linux': return 'elf';
129
+ case 'win32': return 'pe';
130
+ default: return null;
131
+ }
132
+ }
133
+ function nodeArchToExecutableArch(arch) {
134
+ switch (arch) {
135
+ case 'x64': return 'x64';
136
+ case 'arm64': return 'arm64';
137
+ case 'ia32': return 'ia32';
138
+ case 'arm': return 'arm';
139
+ default: return 'unknown';
140
+ }
141
+ }
142
+ function machoCpuToArch(cputype) {
143
+ switch (cputype) {
144
+ case CPU_TYPE_X86_64: return 'x64';
145
+ case CPU_TYPE_ARM64: return 'arm64';
146
+ case CPU_TYPE_X86: return 'ia32';
147
+ case CPU_TYPE_ARM: return 'arm';
148
+ default: return 'unknown';
149
+ }
150
+ }
151
+ function elfMachineToArch(machine) {
152
+ switch (machine) {
153
+ case EM_X86_64: return 'x64';
154
+ case EM_AARCH64: return 'arm64';
155
+ case EM_386: return 'ia32';
156
+ case EM_ARM: return 'arm';
157
+ default: return 'unknown';
158
+ }
159
+ }
160
+ function peMachineToArch(machine) {
161
+ switch (machine) {
162
+ case IMAGE_FILE_MACHINE_AMD64: return 'x64';
163
+ case IMAGE_FILE_MACHINE_ARM64: return 'arm64';
164
+ case IMAGE_FILE_MACHINE_I386: return 'ia32';
165
+ case IMAGE_FILE_MACHINE_ARM: return 'arm';
166
+ default: return 'unknown';
167
+ }
168
+ }
169
+ //# sourceMappingURL=goBinary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goBinary.js","sourceRoot":"","sources":["../../src/languages/goBinary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAuBH,yEAAyE;AACzE,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,4CAA4C;AAC7E,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,yCAAyC;AAE1E,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC,uCAAuC;AACvC,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,uCAAuC;AACvC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAErE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEvC,4EAA4E;IAC5E,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;IAED,MAAM;IACN,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,YAAY;IACZ,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,QAAQ,GAAW,OAAO,CAAC,QAAQ,EACnC,IAAI,GAAW,OAAO,CAAC,IAAI;IAE3B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAChG,2EAA2E;QAC3E,wCAAwC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB,CAAC,KAAkB,EAAE,QAAgB,EAAE,IAAY;IACvF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YAC9C,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YACnD,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YACrC,OAAO,4BAA4B,MAAM,yBAAyB,QAAQ,IAAI,IAAI,EAAE,CAAC;QACvF,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACvC,OAAO,uBAAuB,MAAM,qBAAqB,QAAQ,IAAI,IAAI,GAAG,CAAC;QAC/E,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACtC,OAAO,wDAAwD,CAAC;QAClE,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,2BAA2B,CAAC;IAClE,OAAO,sCAAsC,CAAC;AAChD,CAAC;AAED,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,QAAgB;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC;QAC9B,KAAK,OAAO,EAAE,OAAO,KAAK,CAAC;QAC3B,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC;QAC1B,SAAS,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;QACzB,KAAK,OAAO,EAAE,OAAO,OAAO,CAAC;QAC7B,KAAK,MAAM,EAAE,OAAO,MAAM,CAAC;QAC3B,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;QACzB,SAAS,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,eAAe,EAAE,OAAO,KAAK,CAAC;QACnC,KAAK,cAAc,EAAE,OAAO,OAAO,CAAC;QACpC,KAAK,YAAY,EAAE,OAAO,MAAM,CAAC;QACjC,KAAK,YAAY,EAAE,OAAO,KAAK,CAAC;QAChC,SAAS,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS,EAAE,OAAO,KAAK,CAAC;QAC7B,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC;QAChC,KAAK,MAAM,EAAE,OAAO,MAAM,CAAC;QAC3B,KAAK,MAAM,EAAE,OAAO,KAAK,CAAC;QAC1B,SAAS,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,wBAAwB,EAAE,OAAO,KAAK,CAAC;QAC5C,KAAK,wBAAwB,EAAE,OAAO,OAAO,CAAC;QAC9C,KAAK,uBAAuB,EAAE,OAAO,MAAM,CAAC;QAC5C,KAAK,sBAAsB,EAAE,OAAO,KAAK,CAAC;QAC1C,SAAS,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -14,7 +14,7 @@
14
14
  * interface-segregation): each link contributes a cohesive slice of the
15
15
  * adapter so no single class exceeds the SOLID class-size threshold.
16
16
  */
17
- import type { AST, ASTNode, ClassInfo, ExportInfo, FunctionInfo, ImportInfo, InterfaceInfo, LanguageAdapter, NodePattern, SourceLocation } from '../types.js';
17
+ import type { AST, ASTNode, ClassInfo, ExportInfo, FunctionInfo, ImportInfo, InterfaceInfo, LanguageAdapter, NodePattern } from '../types.js';
18
18
  declare class CssParserCore {
19
19
  readonly name = "css";
20
20
  readonly fileExtensions: string[];
@@ -26,11 +26,9 @@ declare class CssAstSupport extends CssParserCore {
26
26
  findNodes(ast: AST, pattern: NodePattern): ASTNode[];
27
27
  getParent(node: ASTNode): ASTNode | null;
28
28
  getChildren(node: ASTNode): ASTNode[];
29
- getSiblings(node: ASTNode): ASTNode[];
30
29
  getNodeType(node: ASTNode): string;
31
30
  getNodeText(node: ASTNode, sourceCode: string): string;
32
31
  getNodeName(node: ASTNode): string | null;
33
- getNodeLocation(node: ASTNode): SourceLocation;
34
32
  private walk;
35
33
  private matchesPattern;
36
34
  }
@@ -42,13 +40,8 @@ declare class CssLanguageSupport extends CssAstSupport {
42
40
  isClass(_node: ASTNode): boolean;
43
41
  isFunction(_node: ASTNode): boolean;
44
42
  isMethod(_node: ASTNode): boolean;
45
- isInterface(_node: ASTNode): boolean;
46
- isImport(_node: ASTNode): boolean;
47
- isExport(_node: ASTNode): boolean;
48
43
  isLoop(_node: ASTNode): boolean;
49
- isConditional(_node: ASTNode): boolean;
50
44
  isVariableDeclaration(_node: ASTNode): boolean;
51
- getTypeInfo(_node: ASTNode): string | null;
52
45
  getDocumentation(_node: ASTNode): string | null;
53
46
  }
54
47
  /**
@@ -63,26 +56,6 @@ export declare class TreeSitterCssAdapter extends CssLanguageSupport implements
63
56
  * Extract interfaces.
64
57
  */
65
58
  extractInterfaces(_ast: AST): InterfaceInfo[];
66
- /**
67
- * Extract raw imports.
68
- * @param _content
69
- * @param _filePath
70
- * @returns
71
- */
72
- extractRawImports(_filePath: string, _content: string): Array<{
73
- moduleSpecifier: string;
74
- isStatic: boolean;
75
- isDynamic: boolean;
76
- isRequire: boolean;
77
- line: number;
78
- }>;
79
- /**
80
- * Extract exported symbols.
81
- */
82
- extractExportedSymbols(_ast: AST): Array<{
83
- name: string;
84
- line: number;
85
- }>;
86
59
  }
87
60
  export {};
88
61
  //# sourceMappingURL=TreeSitterCssAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSitterCssAdapter.d.ts","sourceRoot":"","sources":["../../../src/languages/tree-sitter/TreeSitterCssAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeSitterCssAdapter.d.ts","sourceRoot":"","sources":["../../../src/languages/tree-sitter/TreeSitterCssAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EAKZ,MAAM,aAAa,CAAC;AAYrB,cAAM,aAAa;IACjB,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,cAAc,WAAqB;IAI5C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtC;IAIK,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAqB3D;IAED,OAAO,CAAC,aAAa;CAYtB;AAMD,cAAM,aAAc,SAAQ,aAAa;IAGvC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,EAAE,CAQnD;IAED,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAEvC;IAED,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAEpC;IAID,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEjC;IAED,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAErD;IAED,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA2BxC;IAED,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,cAAc;CAoCvB;AAMD,cAAM,kBAAmB,SAAQ,aAAa;IAI5C,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,EAAE,CAE1C;IAED,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,EAAE,CAErC;IAED,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU,EAAE,CAEtC;IAED,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU,EAAE,CAEtC;IAKD,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/B;IAED,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElC;IAED,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhC;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9B;IAED,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7C;IAID,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI9C;CACF;AAMD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,kBAAmB,YAAW,eAAe;IAGrF;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpC;IAID;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa,EAAE,CAE5C;CACF"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import { parseWithRecovery } from './parser.js';
18
18
  import { toASTNode, toSourceLocation } from './converter.js';
19
+ import { getRawNode } from './rawNode.js';
19
20
  // ---------------------------------------------------------------------------
20
21
  // Source code storage
21
22
  // ---------------------------------------------------------------------------
@@ -83,11 +84,6 @@ class CssAstSupport extends CssParserCore {
83
84
  getChildren(node) {
84
85
  return node.children ?? [];
85
86
  }
86
- getSiblings(node) {
87
- if (!node.parent?.children)
88
- return [];
89
- return node.parent.children.filter((c) => c !== node);
90
- }
91
87
  // -- Node Information -----------------------------------------------------
92
88
  getNodeType(node) {
93
89
  return node.type;
@@ -96,7 +92,7 @@ class CssAstSupport extends CssParserCore {
96
92
  return sourceCode.slice(node.range[0], node.range[1]);
97
93
  }
98
94
  getNodeName(node) {
99
- const n = node.raw;
95
+ const n = getRawNode(node);
100
96
  // CSS rule sets don't have named children in the tree-sitter sense,
101
97
  // but we can extract meaningful names for certain node types.
102
98
  switch (n.type) {
@@ -124,9 +120,6 @@ class CssAstSupport extends CssParserCore {
124
120
  return null;
125
121
  }
126
122
  }
127
- getNodeLocation(node) {
128
- return node.location;
129
- }
130
123
  walk(node, visitor) {
131
124
  visitor(node);
132
125
  if (node.children) {
@@ -136,7 +129,7 @@ class CssAstSupport extends CssParserCore {
136
129
  }
137
130
  }
138
131
  matchesPattern(node, pattern) {
139
- const syntaxNode = node.raw;
132
+ const syntaxNode = getRawNode(node);
140
133
  if (pattern.type !== undefined) {
141
134
  const types = Array.isArray(pattern.type) ? pattern.type : [pattern.type];
142
135
  if (!types.includes(syntaxNode.type))
@@ -203,28 +196,13 @@ class CssLanguageSupport extends CssAstSupport {
203
196
  isMethod(_node) {
204
197
  return false;
205
198
  }
206
- isInterface(_node) {
207
- return false;
208
- }
209
- isImport(_node) {
210
- return false;
211
- }
212
- isExport(_node) {
213
- return false;
214
- }
215
199
  isLoop(_node) {
216
200
  return false;
217
201
  }
218
- isConditional(_node) {
219
- return false;
220
- }
221
202
  isVariableDeclaration(_node) {
222
203
  return false;
223
204
  }
224
205
  // -- Advanced Features ----------------------------------------------------
225
- getTypeInfo(_node) {
226
- return null;
227
- }
228
206
  getDocumentation(_node) {
229
207
  // CSS/SCSS uses comments, but they're not attached to any particular node
230
208
  // in a way that maps cleanly to "documentation for this node".
@@ -252,22 +230,5 @@ export class TreeSitterCssAdapter extends CssLanguageSupport {
252
230
  extractInterfaces(_ast) {
253
231
  return [];
254
232
  }
255
- // -- Optional: Raw imports ------------------------------------------------
256
- /**
257
- * Extract raw imports.
258
- * @param _content
259
- * @param _filePath
260
- * @returns
261
- */
262
- extractRawImports(_filePath, _content) {
263
- return [];
264
- }
265
- // -- Optional: Exported symbols -------------------------------------------
266
- /**
267
- * Extract exported symbols.
268
- */
269
- extractExportedSymbols(_ast) {
270
- return [];
271
- }
272
233
  }
273
234
  //# sourceMappingURL=TreeSitterCssAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSitterCssAdapter.js","sourceRoot":"","sources":["../../../src/languages/tree-sitter/TreeSitterCssAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeSitterCssAdapter.js","sourceRoot":"","sources":["../../../src/languages/tree-sitter/TreeSitterCssAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../src/languages/tree-sitter/converter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM3D;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,GAAE,MAAqB,GAC9B,OAAO,CAsBT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAWrE;AAMD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUvD"}
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../src/languages/tree-sitter/converter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAO3D;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,GAAE,MAAqB,GAC9B,OAAO,CAsBT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAWrE;AAMD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUvD"}
@@ -4,6 +4,7 @@
4
4
  * Maps tree-sitter's S-expression node types (e.g. "function_declaration") to
5
5
  * the language-agnostic ASTNode format used by the LanguageAdapter interface.
6
6
  */
7
+ import { registerRawNode } from './rawNode.js';
7
8
  // ---------------------------------------------------------------------------
8
9
  // Conversion
9
10
  // ---------------------------------------------------------------------------
@@ -21,8 +22,8 @@ export function toASTNode(node, parent, language = 'typescript') {
21
22
  type: node.type,
22
23
  range: [node.startIndex, node.endIndex],
23
24
  location: toSourceLocation(node),
24
- raw: node,
25
25
  };
26
+ registerRawNode(astNode, node);
26
27
  if (parent) {
27
28
  astNode.parent = parent;
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/languages/tree-sitter/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/languages/tree-sitter/converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Adapter-internal tree-sitter node retention.
3
+ *
4
+ * `ASTNode` deliberately has no `raw` member — nothing outside `src/languages/`
5
+ * may hold (or reach) a parser-specific node. Adapters still need the live
6
+ * tree-sitter node to do their own work (named-field access, node identity,
7
+ * complexity over the raw subtree), so the mapping is kept here, in a side
8
+ * `WeakMap`, keyed by the `ASTNode` the converter produced.
9
+ *
10
+ * The value is *not* reachable from an `ASTNode` held outside this directory:
11
+ * an `ASTNode` carries only `type`/`range`/`location`/`children`/`parent`, and
12
+ * the accessor below is exported from within `src/languages/` only (never from
13
+ * the package entry point). The map is `WeakMap` so a discarded `ASTNode` lets
14
+ * its tree-sitter node be collected.
15
+ */
16
+ import type { Node as TreeSitterNode } from 'web-tree-sitter';
17
+ import type { ASTNode } from '../types.js';
18
+ /** Register the tree-sitter node backing an `ASTNode` (called by `toASTNode`). */
19
+ export declare function registerRawNode(astNode: ASTNode, raw: TreeSitterNode): void;
20
+ /**
21
+ * Return the tree-sitter node backing an `ASTNode`.
22
+ *
23
+ * Every `ASTNode` an adapter walks came from `toASTNode`, which registers its
24
+ * raw node, so this is always present in adapter code. The one synthetic node
25
+ * (`SAFE_STRING_NODE`) is short-circuited by identity before any raw access.
26
+ * Throwing here — rather than returning `undefined` and letting strict-null
27
+ * checks surface a soft miss deep in a traversal — keeps the adapter's
28
+ * "raw is always present" invariant explicit.
29
+ */
30
+ export declare function getRawNode(node: ASTNode): TreeSitterNode;
31
+ //# sourceMappingURL=rawNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawNode.d.ts","sourceRoot":"","sources":["../../../src/languages/tree-sitter/rawNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAE3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAMxD"}