@yalehwang/archguard 0.1.31 → 0.1.33

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 (574) hide show
  1. package/README.md +106 -19
  2. package/assets/grammars/benchmarks.md +101 -0
  3. package/assets/grammars/checksums.json +8 -0
  4. package/{node_modules/tree-sitter/LICENSE → assets/grammars/licenses/tree-sitter-cpp.LICENSE} +2 -2
  5. package/{node_modules/node-gyp-build/LICENSE → assets/grammars/licenses/tree-sitter-go.LICENSE} +5 -5
  6. package/assets/grammars/licenses/tree-sitter-java.LICENSE +21 -0
  7. package/assets/grammars/licenses/tree-sitter-kotlin.LICENSE +21 -0
  8. package/assets/grammars/licenses/tree-sitter-python.LICENSE +21 -0
  9. package/assets/grammars/licenses/tree-sitter.LICENSE +21 -0
  10. package/assets/grammars/provenance.json +66 -0
  11. package/assets/grammars/tree-sitter-cpp.wasm +0 -0
  12. package/assets/grammars/tree-sitter-go.wasm +0 -0
  13. package/assets/grammars/tree-sitter-java.wasm +0 -0
  14. package/assets/grammars/tree-sitter-kotlin.wasm +0 -0
  15. package/assets/grammars/tree-sitter-python.wasm +0 -0
  16. package/assets/grammars/tree-sitter.wasm +0 -0
  17. package/dist/analysis/fitness/rule-types.d.ts +1 -33
  18. package/dist/analysis/fitness/rule-types.d.ts.map +1 -1
  19. package/dist/analysis/gim/direction-hint.d.ts.map +1 -1
  20. package/dist/analysis/gim/direction-hint.js +15 -5
  21. package/dist/analysis/gim/direction-hint.js.map +1 -1
  22. package/dist/analysis/gim/gim-loss-evaluator.d.ts.map +1 -1
  23. package/dist/analysis/gim/gim-loss-evaluator.js +12 -6
  24. package/dist/analysis/gim/gim-loss-evaluator.js.map +1 -1
  25. package/dist/analysis/jl/adjacency-builder.d.ts +8 -0
  26. package/dist/analysis/jl/adjacency-builder.d.ts.map +1 -0
  27. package/dist/analysis/jl/adjacency-builder.js +65 -0
  28. package/dist/analysis/jl/adjacency-builder.js.map +1 -0
  29. package/dist/analysis/jl/cluster-boundary-analyzer.d.ts +13 -0
  30. package/dist/analysis/jl/cluster-boundary-analyzer.d.ts.map +1 -0
  31. package/dist/analysis/jl/cluster-boundary-analyzer.js +233 -0
  32. package/dist/analysis/jl/cluster-boundary-analyzer.js.map +1 -0
  33. package/dist/analysis/jl/drift-calculator.d.ts +6 -0
  34. package/dist/analysis/jl/drift-calculator.d.ts.map +1 -0
  35. package/dist/analysis/jl/drift-calculator.js +104 -0
  36. package/dist/analysis/jl/drift-calculator.js.map +1 -0
  37. package/dist/analysis/jl/drift-exit-code.d.ts +4 -0
  38. package/dist/analysis/jl/drift-exit-code.d.ts.map +1 -0
  39. package/dist/analysis/jl/drift-exit-code.js +9 -0
  40. package/dist/analysis/jl/drift-exit-code.js.map +1 -0
  41. package/dist/analysis/jl/entity-aligner.d.ts +6 -0
  42. package/dist/analysis/jl/entity-aligner.d.ts.map +1 -0
  43. package/dist/analysis/jl/entity-aligner.js +33 -0
  44. package/dist/analysis/jl/entity-aligner.js.map +1 -0
  45. package/dist/analysis/jl/history-writer.d.ts +7 -0
  46. package/dist/analysis/jl/history-writer.d.ts.map +1 -0
  47. package/dist/analysis/jl/history-writer.js +74 -0
  48. package/dist/analysis/jl/history-writer.js.map +1 -0
  49. package/dist/analysis/jl/intrinsic-dimension.d.ts +14 -0
  50. package/dist/analysis/jl/intrinsic-dimension.d.ts.map +1 -0
  51. package/dist/analysis/jl/intrinsic-dimension.js +80 -0
  52. package/dist/analysis/jl/intrinsic-dimension.js.map +1 -0
  53. package/dist/analysis/jl/jl-projector.d.ts +7 -0
  54. package/dist/analysis/jl/jl-projector.d.ts.map +1 -0
  55. package/dist/analysis/jl/jl-projector.js +52 -0
  56. package/dist/analysis/jl/jl-projector.js.map +1 -0
  57. package/dist/analysis/jl/kmeans.d.ts +11 -0
  58. package/dist/analysis/jl/kmeans.d.ts.map +1 -0
  59. package/dist/analysis/jl/kmeans.js +273 -0
  60. package/dist/analysis/jl/kmeans.js.map +1 -0
  61. package/dist/analysis/jl/types.d.ts +166 -0
  62. package/dist/analysis/jl/types.d.ts.map +1 -0
  63. package/dist/analysis/jl/types.js +19 -0
  64. package/dist/analysis/jl/types.js.map +1 -0
  65. package/dist/analysis/shape-smells/index.d.ts +5 -0
  66. package/dist/analysis/shape-smells/index.d.ts.map +1 -0
  67. package/dist/analysis/shape-smells/index.js +5 -0
  68. package/dist/analysis/shape-smells/index.js.map +1 -0
  69. package/dist/analysis/shape-smells/literal-dispersion.d.ts +9 -0
  70. package/dist/analysis/shape-smells/literal-dispersion.d.ts.map +1 -0
  71. package/dist/analysis/shape-smells/literal-dispersion.js +157 -0
  72. package/dist/analysis/shape-smells/literal-dispersion.js.map +1 -0
  73. package/dist/analysis/shape-smells/persistence.d.ts +5 -0
  74. package/dist/analysis/shape-smells/persistence.d.ts.map +1 -0
  75. package/dist/analysis/shape-smells/persistence.js +59 -0
  76. package/dist/analysis/shape-smells/persistence.js.map +1 -0
  77. package/dist/analysis/shape-smells/scope-filter.d.ts +7 -0
  78. package/dist/analysis/shape-smells/scope-filter.d.ts.map +1 -0
  79. package/dist/analysis/shape-smells/scope-filter.js +28 -0
  80. package/dist/analysis/shape-smells/scope-filter.js.map +1 -0
  81. package/dist/analysis/shape-smells/types.d.ts +40 -0
  82. package/dist/analysis/shape-smells/types.d.ts.map +1 -0
  83. package/dist/analysis/shape-smells/types.js +2 -0
  84. package/dist/analysis/shape-smells/types.js.map +1 -0
  85. package/dist/analysis/snapshot-store.js +2 -2
  86. package/dist/analysis/snapshot-store.js.map +1 -1
  87. package/dist/analysis/test-analyzer.d.ts.map +1 -1
  88. package/dist/analysis/test-analyzer.js +1 -1
  89. package/dist/analysis/test-analyzer.js.map +1 -1
  90. package/dist/cli/analyze/normalize-to-diagrams.d.ts.map +1 -1
  91. package/dist/cli/analyze/normalize-to-diagrams.js +35 -0
  92. package/dist/cli/analyze/normalize-to-diagrams.js.map +1 -1
  93. package/dist/cli/analyze/run-analysis.d.ts +6 -0
  94. package/dist/cli/analyze/run-analysis.d.ts.map +1 -1
  95. package/dist/cli/analyze/run-analysis.js +65 -43
  96. package/dist/cli/analyze/run-analysis.js.map +1 -1
  97. package/dist/cli/cache/cache-manager.js +2 -2
  98. package/dist/cli/cache/cache-manager.js.map +1 -1
  99. package/dist/cli/cognitive/ccb-assembler.js.map +1 -1
  100. package/dist/cli/commands/analyze.d.ts +17 -0
  101. package/dist/cli/commands/analyze.d.ts.map +1 -1
  102. package/dist/cli/commands/analyze.js +129 -2
  103. package/dist/cli/commands/analyze.js.map +1 -1
  104. package/dist/cli/commands/check.js.map +1 -1
  105. package/dist/cli/commands/diff.js +1 -1
  106. package/dist/cli/commands/diff.js.map +1 -1
  107. package/dist/cli/commands/init.js.map +1 -1
  108. package/dist/cli/commands/query.d.ts +3 -0
  109. package/dist/cli/commands/query.d.ts.map +1 -1
  110. package/dist/cli/commands/query.js +128 -0
  111. package/dist/cli/commands/query.js.map +1 -1
  112. package/dist/cli/config-loader.d.ts.map +1 -1
  113. package/dist/cli/config-loader.js +6 -1
  114. package/dist/cli/config-loader.js.map +1 -1
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/cli/mcp/analyze-tool.d.ts +2 -0
  117. package/dist/cli/mcp/analyze-tool.d.ts.map +1 -1
  118. package/dist/cli/mcp/analyze-tool.js +5 -0
  119. package/dist/cli/mcp/analyze-tool.js.map +1 -1
  120. package/dist/cli/mcp/mcp-server.d.ts +7 -2
  121. package/dist/cli/mcp/mcp-server.d.ts.map +1 -1
  122. package/dist/cli/mcp/mcp-server.js +43 -3
  123. package/dist/cli/mcp/mcp-server.js.map +1 -1
  124. package/dist/cli/mcp/tools/arch-health-tools.d.ts +16 -0
  125. package/dist/cli/mcp/tools/arch-health-tools.d.ts.map +1 -0
  126. package/dist/cli/mcp/tools/arch-health-tools.js +207 -0
  127. package/dist/cli/mcp/tools/arch-health-tools.js.map +1 -0
  128. package/dist/cli/mcp/tools/atlas-analytics-tools.d.ts.map +1 -1
  129. package/dist/cli/mcp/tools/atlas-analytics-tools.js +5 -4
  130. package/dist/cli/mcp/tools/atlas-analytics-tools.js.map +1 -1
  131. package/dist/cli/mcp/tools/gim-tools.d.ts.map +1 -1
  132. package/dist/cli/mcp/tools/gim-tools.js +5 -1
  133. package/dist/cli/mcp/tools/gim-tools.js.map +1 -1
  134. package/dist/cli/mcp/tools/git-history-analyze-tool.d.ts.map +1 -1
  135. package/dist/cli/mcp/tools/git-history-analyze-tool.js.map +1 -1
  136. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.js.map +1 -1
  137. package/dist/cli/mcp/tools/git-history-tools.js.map +1 -1
  138. package/dist/cli/mcp/tools/metric-trend-tools.d.ts.map +1 -1
  139. package/dist/cli/mcp/tools/metric-trend-tools.js +2 -1
  140. package/dist/cli/mcp/tools/metric-trend-tools.js.map +1 -1
  141. package/dist/cli/mcp/tools/package-metrics-tools.d.ts.map +1 -1
  142. package/dist/cli/mcp/tools/package-metrics-tools.js +2 -1
  143. package/dist/cli/mcp/tools/package-metrics-tools.js.map +1 -1
  144. package/dist/cli/mcp/tools/shape-smell-tools.d.ts +3 -0
  145. package/dist/cli/mcp/tools/shape-smell-tools.d.ts.map +1 -0
  146. package/dist/cli/mcp/tools/shape-smell-tools.js +187 -0
  147. package/dist/cli/mcp/tools/shape-smell-tools.js.map +1 -0
  148. package/dist/cli/mcp/tools/test-analysis-tools.d.ts.map +1 -1
  149. package/dist/cli/mcp/tools/test-analysis-tools.js +4 -4
  150. package/dist/cli/mcp/tools/test-analysis-tools.js.map +1 -1
  151. package/dist/cli/processors/arch-json-provider-types.d.ts +5 -0
  152. package/dist/cli/processors/arch-json-provider-types.d.ts.map +1 -1
  153. package/dist/cli/processors/arch-json-provider.d.ts +5 -0
  154. package/dist/cli/processors/arch-json-provider.d.ts.map +1 -1
  155. package/dist/cli/processors/arch-json-provider.js +113 -55
  156. package/dist/cli/processors/arch-json-provider.js.map +1 -1
  157. package/dist/cli/processors/arch-json-utils.d.ts.map +1 -1
  158. package/dist/cli/processors/arch-json-utils.js +12 -3
  159. package/dist/cli/processors/arch-json-utils.js.map +1 -1
  160. package/dist/cli/processors/diagram-output-router.d.ts +1 -0
  161. package/dist/cli/processors/diagram-output-router.d.ts.map +1 -1
  162. package/dist/cli/processors/diagram-output-router.js +54 -66
  163. package/dist/cli/processors/diagram-output-router.js.map +1 -1
  164. package/dist/cli/processors/diagram-processor.d.ts +4 -0
  165. package/dist/cli/processors/diagram-processor.d.ts.map +1 -1
  166. package/dist/cli/processors/diagram-processor.js +2 -0
  167. package/dist/cli/processors/diagram-processor.js.map +1 -1
  168. package/dist/cli/processors/worker-pool-factory.d.ts +3 -0
  169. package/dist/cli/processors/worker-pool-factory.d.ts.map +1 -1
  170. package/dist/cli/processors/worker-pool-factory.js +9 -0
  171. package/dist/cli/processors/worker-pool-factory.js.map +1 -1
  172. package/dist/cli/query/engine-loader.d.ts.map +1 -1
  173. package/dist/cli/query/engine-loader.js +3 -3
  174. package/dist/cli/query/engine-loader.js.map +1 -1
  175. package/dist/cli/query/query-artifacts.js +2 -2
  176. package/dist/cli/query/query-artifacts.js.map +1 -1
  177. package/dist/cli/utils/cluster-archjson-loader.d.ts +3 -0
  178. package/dist/cli/utils/cluster-archjson-loader.d.ts.map +1 -0
  179. package/dist/cli/utils/cluster-archjson-loader.js +28 -0
  180. package/dist/cli/utils/cluster-archjson-loader.js.map +1 -0
  181. package/dist/cli/utils/drift-baseline.d.ts +27 -0
  182. package/dist/cli/utils/drift-baseline.d.ts.map +1 -0
  183. package/dist/cli/utils/drift-baseline.js +95 -0
  184. package/dist/cli/utils/drift-baseline.js.map +1 -0
  185. package/dist/cli/utils/drift-reporter.d.ts +3 -0
  186. package/dist/cli/utils/drift-reporter.d.ts.map +1 -0
  187. package/dist/cli/utils/drift-reporter.js +49 -0
  188. package/dist/cli/utils/drift-reporter.js.map +1 -0
  189. package/dist/core/index.d.ts +7 -0
  190. package/dist/core/index.d.ts.map +1 -0
  191. package/dist/core/index.js +4 -0
  192. package/dist/core/index.js.map +1 -0
  193. package/dist/core/interfaces/language-plugin.d.ts +1 -0
  194. package/dist/core/interfaces/language-plugin.d.ts.map +1 -1
  195. package/dist/core/pack-registry/errors.d.ts +5 -0
  196. package/dist/core/pack-registry/errors.d.ts.map +1 -0
  197. package/dist/core/pack-registry/errors.js +9 -0
  198. package/dist/core/pack-registry/errors.js.map +1 -0
  199. package/dist/core/pack-registry/index.d.ts +7 -0
  200. package/dist/core/pack-registry/index.d.ts.map +1 -0
  201. package/dist/core/pack-registry/index.js +4 -0
  202. package/dist/core/pack-registry/index.js.map +1 -0
  203. package/dist/core/pack-registry/knowledge-pack-schema.d.ts +188 -0
  204. package/dist/core/pack-registry/knowledge-pack-schema.d.ts.map +1 -0
  205. package/dist/core/pack-registry/knowledge-pack-schema.js +108 -0
  206. package/dist/core/pack-registry/knowledge-pack-schema.js.map +1 -0
  207. package/dist/core/pack-registry/pack-registry.d.ts +15 -0
  208. package/dist/core/pack-registry/pack-registry.d.ts.map +1 -0
  209. package/dist/core/pack-registry/pack-registry.js +99 -0
  210. package/dist/core/pack-registry/pack-registry.js.map +1 -0
  211. package/dist/core/pack-registry/types.d.ts +87 -0
  212. package/dist/core/pack-registry/types.d.ts.map +1 -0
  213. package/dist/core/pack-registry/types.js +2 -0
  214. package/dist/core/pack-registry/types.js.map +1 -0
  215. package/dist/core/plugin-registry.d.ts +2 -0
  216. package/dist/core/plugin-registry.d.ts.map +1 -1
  217. package/dist/core/plugin-registry.js +15 -2
  218. package/dist/core/plugin-registry.js.map +1 -1
  219. package/dist/core/query/arch-index-builder.js.map +1 -1
  220. package/dist/core/rule-engine/ast-node.d.ts +6 -0
  221. package/dist/core/rule-engine/ast-node.d.ts.map +1 -0
  222. package/dist/core/rule-engine/ast-node.js +15 -0
  223. package/dist/core/rule-engine/ast-node.js.map +1 -0
  224. package/dist/core/rule-engine/index.d.ts +5 -0
  225. package/dist/core/rule-engine/index.d.ts.map +1 -0
  226. package/dist/core/rule-engine/index.js +4 -0
  227. package/dist/core/rule-engine/index.js.map +1 -0
  228. package/dist/core/rule-engine/rule-based-plugin.d.ts +22 -0
  229. package/dist/core/rule-engine/rule-based-plugin.d.ts.map +1 -0
  230. package/dist/core/rule-engine/rule-based-plugin.js +171 -0
  231. package/dist/core/rule-engine/rule-based-plugin.js.map +1 -0
  232. package/dist/core/rule-engine/rule-engine.d.ts +52 -0
  233. package/dist/core/rule-engine/rule-engine.d.ts.map +1 -0
  234. package/dist/core/rule-engine/rule-engine.js +655 -0
  235. package/dist/core/rule-engine/rule-engine.js.map +1 -0
  236. package/dist/mermaid/auto-repair.js +1 -1
  237. package/dist/mermaid/auto-repair.js.map +1 -1
  238. package/dist/mermaid/cpp-package-flowchart-generator.js.map +1 -1
  239. package/dist/mermaid/diagram-generator.d.ts.map +1 -1
  240. package/dist/mermaid/diagram-generator.js +17 -18
  241. package/dist/mermaid/diagram-generator.js.map +1 -1
  242. package/dist/mermaid/generator.d.ts.map +1 -1
  243. package/dist/mermaid/generator.js +19 -1
  244. package/dist/mermaid/generator.js.map +1 -1
  245. package/dist/mermaid/renderer.d.ts.map +1 -1
  246. package/dist/mermaid/renderer.js +1 -1
  247. package/dist/mermaid/renderer.js.map +1 -1
  248. package/dist/mermaid/test-coverage-renderer.d.ts.map +1 -1
  249. package/dist/mermaid/test-coverage-renderer.js +18 -12
  250. package/dist/mermaid/test-coverage-renderer.js.map +1 -1
  251. package/dist/mermaid/types.d.ts +25 -1
  252. package/dist/mermaid/types.d.ts.map +1 -1
  253. package/dist/mermaid/validation-pipeline.d.ts +4 -16
  254. package/dist/mermaid/validation-pipeline.d.ts.map +1 -1
  255. package/dist/mermaid/validation-pipeline.js.map +1 -1
  256. package/dist/parser/archjson-aggregator.js +2 -2
  257. package/dist/parser/archjson-aggregator.js.map +1 -1
  258. package/dist/parser/parallel-parser.d.ts +10 -0
  259. package/dist/parser/parallel-parser.d.ts.map +1 -1
  260. package/dist/parser/parallel-parser.js +76 -35
  261. package/dist/parser/parallel-parser.js.map +1 -1
  262. package/dist/parser/parse-worker-pool.d.ts +59 -0
  263. package/dist/parser/parse-worker-pool.d.ts.map +1 -0
  264. package/dist/parser/parse-worker-pool.js +170 -0
  265. package/dist/parser/parse-worker-pool.js.map +1 -0
  266. package/dist/parser/parse-worker.d.ts +2 -0
  267. package/dist/parser/parse-worker.d.ts.map +1 -0
  268. package/dist/parser/parse-worker.js +72 -0
  269. package/dist/parser/parse-worker.js.map +1 -0
  270. package/dist/parser/process-parse-worker-pools.d.ts +18 -0
  271. package/dist/parser/process-parse-worker-pools.d.ts.map +1 -0
  272. package/dist/parser/process-parse-worker-pools.js +31 -0
  273. package/dist/parser/process-parse-worker-pools.js.map +1 -0
  274. package/dist/parser/typescript-parser.d.ts.map +1 -1
  275. package/dist/parser/typescript-parser.js +3 -2
  276. package/dist/parser/typescript-parser.js.map +1 -1
  277. package/dist/plugins/cpp/builders/class-builder.d.ts +3 -2
  278. package/dist/plugins/cpp/builders/class-builder.d.ts.map +1 -1
  279. package/dist/plugins/cpp/builders/class-builder.js +19 -0
  280. package/dist/plugins/cpp/builders/class-builder.js.map +1 -1
  281. package/dist/plugins/cpp/index.d.ts +4 -1
  282. package/dist/plugins/cpp/index.d.ts.map +1 -1
  283. package/dist/plugins/cpp/index.js +11 -2
  284. package/dist/plugins/cpp/index.js.map +1 -1
  285. package/dist/plugins/cpp/mappers/class-capture-mapper.d.ts +14 -0
  286. package/dist/plugins/cpp/mappers/class-capture-mapper.d.ts.map +1 -0
  287. package/dist/plugins/cpp/mappers/class-capture-mapper.js +76 -0
  288. package/dist/plugins/cpp/mappers/class-capture-mapper.js.map +1 -0
  289. package/dist/plugins/cpp/mappers/enum-capture-mapper.d.ts +6 -0
  290. package/dist/plugins/cpp/mappers/enum-capture-mapper.d.ts.map +1 -0
  291. package/dist/plugins/cpp/mappers/enum-capture-mapper.js +31 -0
  292. package/dist/plugins/cpp/mappers/enum-capture-mapper.js.map +1 -0
  293. package/dist/plugins/cpp/mappers/field-capture-mapper.d.ts +12 -0
  294. package/dist/plugins/cpp/mappers/field-capture-mapper.d.ts.map +1 -0
  295. package/dist/plugins/cpp/mappers/field-capture-mapper.js +66 -0
  296. package/dist/plugins/cpp/mappers/field-capture-mapper.js.map +1 -0
  297. package/dist/plugins/cpp/mappers/function-capture-mapper.d.ts +6 -0
  298. package/dist/plugins/cpp/mappers/function-capture-mapper.d.ts.map +1 -0
  299. package/dist/plugins/cpp/mappers/function-capture-mapper.js +25 -0
  300. package/dist/plugins/cpp/mappers/function-capture-mapper.js.map +1 -0
  301. package/dist/plugins/cpp/mappers/include-capture-mapper.d.ts +5 -0
  302. package/dist/plugins/cpp/mappers/include-capture-mapper.d.ts.map +1 -0
  303. package/dist/plugins/cpp/mappers/include-capture-mapper.js +10 -0
  304. package/dist/plugins/cpp/mappers/include-capture-mapper.js.map +1 -0
  305. package/dist/plugins/cpp/queries/classes.scm +7 -0
  306. package/dist/plugins/cpp/queries/enums.scm +3 -0
  307. package/dist/plugins/cpp/queries/fields.scm +6 -0
  308. package/dist/plugins/cpp/queries/functions.scm +7 -0
  309. package/dist/plugins/cpp/queries/includes.scm +8 -0
  310. package/dist/plugins/cpp/tree-sitter-bridge.d.ts +8 -14
  311. package/dist/plugins/cpp/tree-sitter-bridge.d.ts.map +1 -1
  312. package/dist/plugins/cpp/tree-sitter-bridge.js +60 -238
  313. package/dist/plugins/cpp/tree-sitter-bridge.js.map +1 -1
  314. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts.map +1 -1
  315. package/dist/plugins/golang/atlas/behavior-analyzer.js.map +1 -1
  316. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js.map +1 -1
  317. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js.map +1 -1
  318. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts.map +1 -1
  319. package/dist/plugins/golang/atlas/go-mod-resolver.js +2 -1
  320. package/dist/plugins/golang/atlas/go-mod-resolver.js.map +1 -1
  321. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.d.ts.map +1 -1
  322. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.js.map +1 -1
  323. package/dist/plugins/golang/atlas/renderers/flow-mermaid-template.d.ts.map +1 -1
  324. package/dist/plugins/golang/atlas/renderers/flow-mermaid-template.js.map +1 -1
  325. package/dist/plugins/golang/atlas/renderers/goroutine-mermaid-template.d.ts.map +1 -1
  326. package/dist/plugins/golang/atlas/renderers/goroutine-mermaid-template.js.map +1 -1
  327. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts.map +1 -1
  328. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js.map +1 -1
  329. package/dist/plugins/golang/builders/function-builder.d.ts +4 -4
  330. package/dist/plugins/golang/builders/function-builder.d.ts.map +1 -1
  331. package/dist/plugins/golang/builders/function-builder.js.map +1 -1
  332. package/dist/plugins/golang/builders/goroutine-builder.d.ts +2 -2
  333. package/dist/plugins/golang/builders/goroutine-builder.d.ts.map +1 -1
  334. package/dist/plugins/golang/builders/goroutine-builder.js.map +1 -1
  335. package/dist/plugins/golang/builders/interface-builder.d.ts +4 -4
  336. package/dist/plugins/golang/builders/interface-builder.d.ts.map +1 -1
  337. package/dist/plugins/golang/builders/interface-builder.js.map +1 -1
  338. package/dist/plugins/golang/builders/node-utils.d.ts +3 -3
  339. package/dist/plugins/golang/builders/node-utils.d.ts.map +1 -1
  340. package/dist/plugins/golang/builders/node-utils.js.map +1 -1
  341. package/dist/plugins/golang/builders/struct-builder.d.ts +2 -2
  342. package/dist/plugins/golang/builders/struct-builder.d.ts.map +1 -1
  343. package/dist/plugins/golang/builders/struct-builder.js.map +1 -1
  344. package/dist/plugins/golang/go-atlas-adapter.d.ts +3 -3
  345. package/dist/plugins/golang/go-atlas-adapter.d.ts.map +1 -1
  346. package/dist/plugins/golang/go-atlas-adapter.js +4 -4
  347. package/dist/plugins/golang/go-atlas-adapter.js.map +1 -1
  348. package/dist/plugins/golang/go-parse-coordinator.d.ts +10 -2
  349. package/dist/plugins/golang/go-parse-coordinator.d.ts.map +1 -1
  350. package/dist/plugins/golang/go-parse-coordinator.js +44 -6
  351. package/dist/plugins/golang/go-parse-coordinator.js.map +1 -1
  352. package/dist/plugins/golang/gopls-client.d.ts +32 -3
  353. package/dist/plugins/golang/gopls-client.d.ts.map +1 -1
  354. package/dist/plugins/golang/gopls-client.js +246 -40
  355. package/dist/plugins/golang/gopls-client.js.map +1 -1
  356. package/dist/plugins/golang/gopls-interface-resolver.d.ts +14 -1
  357. package/dist/plugins/golang/gopls-interface-resolver.d.ts.map +1 -1
  358. package/dist/plugins/golang/gopls-interface-resolver.js +42 -11
  359. package/dist/plugins/golang/gopls-interface-resolver.js.map +1 -1
  360. package/dist/plugins/golang/index.d.ts +3 -1
  361. package/dist/plugins/golang/index.d.ts.map +1 -1
  362. package/dist/plugins/golang/index.js +20 -3
  363. package/dist/plugins/golang/index.js.map +1 -1
  364. package/dist/plugins/golang/interface-matcher.d.ts.map +1 -1
  365. package/dist/plugins/golang/interface-matcher.js +32 -30
  366. package/dist/plugins/golang/interface-matcher.js.map +1 -1
  367. package/dist/plugins/golang/tree-sitter-bridge.d.ts +3 -2
  368. package/dist/plugins/golang/tree-sitter-bridge.d.ts.map +1 -1
  369. package/dist/plugins/golang/tree-sitter-bridge.js +25 -23
  370. package/dist/plugins/golang/tree-sitter-bridge.js.map +1 -1
  371. package/dist/plugins/golang/types.d.ts +4 -0
  372. package/dist/plugins/golang/types.d.ts.map +1 -1
  373. package/dist/plugins/java/dependency-extractor.d.ts.map +1 -1
  374. package/dist/plugins/java/dependency-extractor.js.map +1 -1
  375. package/dist/plugins/java/index.d.ts +4 -0
  376. package/dist/plugins/java/index.d.ts.map +1 -1
  377. package/dist/plugins/java/index.js +12 -1
  378. package/dist/plugins/java/index.js.map +1 -1
  379. package/dist/plugins/java/tree-sitter-bridge.d.ts +3 -2
  380. package/dist/plugins/java/tree-sitter-bridge.d.ts.map +1 -1
  381. package/dist/plugins/java/tree-sitter-bridge.js +33 -31
  382. package/dist/plugins/java/tree-sitter-bridge.js.map +1 -1
  383. package/dist/plugins/java/types.d.ts +1 -1
  384. package/dist/plugins/java/types.d.ts.map +1 -1
  385. package/dist/plugins/kotlin/builders/class-builder.d.ts +2 -1
  386. package/dist/plugins/kotlin/builders/class-builder.d.ts.map +1 -1
  387. package/dist/plugins/kotlin/builders/class-builder.js.map +1 -1
  388. package/dist/plugins/kotlin/builders/function-builder.d.ts +2 -1
  389. package/dist/plugins/kotlin/builders/function-builder.d.ts.map +1 -1
  390. package/dist/plugins/kotlin/builders/function-builder.js.map +1 -1
  391. package/dist/plugins/kotlin/index.d.ts +6 -3
  392. package/dist/plugins/kotlin/index.d.ts.map +1 -1
  393. package/dist/plugins/kotlin/index.js +12 -4
  394. package/dist/plugins/kotlin/index.js.map +1 -1
  395. package/dist/plugins/kotlin/tree-sitter-bridge.d.ts +3 -3
  396. package/dist/plugins/kotlin/tree-sitter-bridge.d.ts.map +1 -1
  397. package/dist/plugins/kotlin/tree-sitter-bridge.js +6 -7
  398. package/dist/plugins/kotlin/tree-sitter-bridge.js.map +1 -1
  399. package/dist/plugins/python/archjson-mapper.d.ts.map +1 -1
  400. package/dist/plugins/python/archjson-mapper.js.map +1 -1
  401. package/dist/plugins/python/index.d.ts +4 -0
  402. package/dist/plugins/python/index.d.ts.map +1 -1
  403. package/dist/plugins/python/index.js +12 -1
  404. package/dist/plugins/python/index.js.map +1 -1
  405. package/dist/plugins/python/tree-sitter-bridge.d.ts +3 -2
  406. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -1
  407. package/dist/plugins/python/tree-sitter-bridge.js +50 -48
  408. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -1
  409. package/dist/plugins/shared/capture-mapper.d.ts +12 -0
  410. package/dist/plugins/shared/capture-mapper.d.ts.map +1 -0
  411. package/dist/plugins/shared/capture-mapper.js +33 -0
  412. package/dist/plugins/shared/capture-mapper.js.map +1 -0
  413. package/dist/plugins/shared/index.d.ts +4 -0
  414. package/dist/plugins/shared/index.d.ts.map +1 -0
  415. package/dist/plugins/shared/index.js +3 -0
  416. package/dist/plugins/shared/index.js.map +1 -0
  417. package/dist/plugins/shared/native-parser-backend.d.ts +34 -0
  418. package/dist/plugins/shared/native-parser-backend.d.ts.map +1 -0
  419. package/dist/plugins/shared/native-parser-backend.js +96 -0
  420. package/dist/plugins/shared/native-parser-backend.js.map +1 -0
  421. package/dist/plugins/shared/parser-backend.d.ts +13 -0
  422. package/dist/plugins/shared/parser-backend.d.ts.map +1 -0
  423. package/dist/plugins/shared/parser-backend.js +39 -0
  424. package/dist/plugins/shared/parser-backend.js.map +1 -0
  425. package/dist/plugins/shared/parser-runtime.d.ts +32 -0
  426. package/dist/plugins/shared/parser-runtime.d.ts.map +1 -0
  427. package/dist/plugins/shared/parser-runtime.js +156 -0
  428. package/dist/plugins/shared/parser-runtime.js.map +1 -0
  429. package/dist/plugins/shared/plugin-factory.d.ts +5 -0
  430. package/dist/plugins/shared/plugin-factory.d.ts.map +1 -0
  431. package/dist/plugins/shared/plugin-factory.js +27 -0
  432. package/dist/plugins/shared/plugin-factory.js.map +1 -0
  433. package/dist/plugins/shared/query-loader.d.ts +14 -0
  434. package/dist/plugins/shared/query-loader.d.ts.map +1 -0
  435. package/dist/plugins/shared/query-loader.js +47 -0
  436. package/dist/plugins/shared/query-loader.js.map +1 -0
  437. package/dist/plugins/shared/syntax-tree.d.ts +45 -0
  438. package/dist/plugins/shared/syntax-tree.d.ts.map +1 -0
  439. package/dist/plugins/shared/syntax-tree.js +2 -0
  440. package/dist/plugins/shared/syntax-tree.js.map +1 -0
  441. package/dist/plugins/shared/wasm-parser-backend.d.ts +18 -0
  442. package/dist/plugins/shared/wasm-parser-backend.d.ts.map +1 -0
  443. package/dist/plugins/shared/wasm-parser-backend.js +127 -0
  444. package/dist/plugins/shared/wasm-parser-backend.js.map +1 -0
  445. package/dist/plugins/typescript/builders/module-graph-builder.d.ts.map +1 -1
  446. package/dist/plugins/typescript/builders/module-graph-builder.js +2 -3
  447. package/dist/plugins/typescript/builders/module-graph-builder.js.map +1 -1
  448. package/dist/plugins/typescript/index.d.ts.map +1 -1
  449. package/dist/plugins/typescript/index.js +6 -6
  450. package/dist/plugins/typescript/index.js.map +1 -1
  451. package/dist/types/config-cli.d.ts +3 -0
  452. package/dist/types/config-cli.d.ts.map +1 -1
  453. package/dist/types/config-global.d.ts +7 -1
  454. package/dist/types/config-global.d.ts.map +1 -1
  455. package/dist/types/config.d.ts +1 -0
  456. package/dist/types/config.d.ts.map +1 -1
  457. package/dist/types/config.js +1 -0
  458. package/dist/types/config.js.map +1 -1
  459. package/dist/types/fitness-rules.d.ts +34 -0
  460. package/dist/types/fitness-rules.d.ts.map +1 -0
  461. package/dist/types/fitness-rules.js +2 -0
  462. package/dist/types/fitness-rules.js.map +1 -0
  463. package/dist/types/index.d.ts +1 -1
  464. package/dist/types/index.d.ts.map +1 -1
  465. package/dist/types/parser-runtime.d.ts +4 -0
  466. package/dist/types/parser-runtime.d.ts.map +1 -0
  467. package/dist/types/parser-runtime.js +5 -0
  468. package/dist/types/parser-runtime.js.map +1 -0
  469. package/dist/utils/error-message.d.ts +2 -0
  470. package/dist/utils/error-message.d.ts.map +1 -0
  471. package/dist/utils/error-message.js +8 -0
  472. package/dist/utils/error-message.js.map +1 -0
  473. package/package.json +34 -18
  474. package/node_modules/node-addon-api/LICENSE.md +0 -9
  475. package/node_modules/node-addon-api/README.md +0 -95
  476. package/node_modules/node-addon-api/common.gypi +0 -21
  477. package/node_modules/node-addon-api/except.gypi +0 -25
  478. package/node_modules/node-addon-api/index.js +0 -14
  479. package/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
  480. package/node_modules/node-addon-api/napi-inl.h +0 -7033
  481. package/node_modules/node-addon-api/napi.h +0 -3309
  482. package/node_modules/node-addon-api/node_addon_api.gyp +0 -42
  483. package/node_modules/node-addon-api/node_api.gyp +0 -9
  484. package/node_modules/node-addon-api/noexcept.gypi +0 -26
  485. package/node_modules/node-addon-api/nothing.c +0 -0
  486. package/node_modules/node-addon-api/package-support.json +0 -21
  487. package/node_modules/node-addon-api/package.json +0 -480
  488. package/node_modules/node-addon-api/tools/README.md +0 -73
  489. package/node_modules/node-addon-api/tools/check-napi.js +0 -99
  490. package/node_modules/node-addon-api/tools/clang-format.js +0 -71
  491. package/node_modules/node-addon-api/tools/conversion.js +0 -301
  492. package/node_modules/node-gyp-build/README.md +0 -58
  493. package/node_modules/node-gyp-build/SECURITY.md +0 -5
  494. package/node_modules/node-gyp-build/bin.js +0 -84
  495. package/node_modules/node-gyp-build/build-test.js +0 -19
  496. package/node_modules/node-gyp-build/index.js +0 -6
  497. package/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  498. package/node_modules/node-gyp-build/optional.js +0 -7
  499. package/node_modules/node-gyp-build/package.json +0 -43
  500. package/node_modules/tree-sitter/README.md +0 -128
  501. package/node_modules/tree-sitter/binding.gyp +0 -80
  502. package/node_modules/tree-sitter/index.js +0 -916
  503. package/node_modules/tree-sitter/package.json +0 -76
  504. package/node_modules/tree-sitter/prebuilds/linux-x64/node.napi.glibc.node +0 -0
  505. package/node_modules/tree-sitter/src/addon_data.h +0 -47
  506. package/node_modules/tree-sitter/src/binding.cc +0 -35
  507. package/node_modules/tree-sitter/src/conversions.cc +0 -140
  508. package/node_modules/tree-sitter/src/conversions.h +0 -22
  509. package/node_modules/tree-sitter/src/language.cc +0 -106
  510. package/node_modules/tree-sitter/src/language.h +0 -17
  511. package/node_modules/tree-sitter/src/logger.cc +0 -70
  512. package/node_modules/tree-sitter/src/logger.h +0 -19
  513. package/node_modules/tree-sitter/src/lookaheaditerator.cc +0 -122
  514. package/node_modules/tree-sitter/src/lookaheaditerator.h +0 -33
  515. package/node_modules/tree-sitter/src/node.cc +0 -1088
  516. package/node_modules/tree-sitter/src/node.h +0 -30
  517. package/node_modules/tree-sitter/src/parser.cc +0 -306
  518. package/node_modules/tree-sitter/src/parser.h +0 -35
  519. package/node_modules/tree-sitter/src/query.cc +0 -397
  520. package/node_modules/tree-sitter/src/query.h +0 -40
  521. package/node_modules/tree-sitter/src/tree.cc +0 -316
  522. package/node_modules/tree-sitter/src/tree.h +0 -45
  523. package/node_modules/tree-sitter/src/tree_cursor.cc +0 -213
  524. package/node_modules/tree-sitter/src/tree_cursor.h +0 -52
  525. package/node_modules/tree-sitter/tree-sitter.d.ts +0 -1042
  526. package/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +0 -1478
  527. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +0 -48
  528. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +0 -41
  529. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +0 -291
  530. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +0 -68
  531. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +0 -146
  532. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +0 -11
  533. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +0 -523
  534. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +0 -36
  535. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +0 -21
  536. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +0 -293
  537. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +0 -293
  538. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +0 -52
  539. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +0 -483
  540. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +0 -54
  541. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +0 -12
  542. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +0 -875
  543. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +0 -2293
  544. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +0 -286
  545. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +0 -48
  546. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +0 -239
  547. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +0 -4350
  548. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +0 -34
  549. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +0 -95
  550. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +0 -911
  551. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +0 -133
  552. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +0 -1034
  553. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +0 -399
  554. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +0 -170
  555. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +0 -31
  556. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +0 -717
  557. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +0 -48
  558. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +0 -11
  559. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +0 -1
  560. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +0 -414
  561. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +0 -29
  562. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +0 -1
  563. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +0 -448
  564. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +0 -1
  565. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +0 -1
  566. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +0 -733
  567. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +0 -881
  568. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +0 -75
  569. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +0 -24
  570. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +0 -113
  571. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +0 -1314
  572. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +0 -1935
  573. package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +0 -31
  574. package/scripts/postinstall-tree-sitter.mjs +0 -28
@@ -0,0 +1,188 @@
1
+ import { z } from 'zod';
2
+ export declare const KnowledgePackManifestSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ version: z.ZodString;
5
+ engine: z.ZodString;
6
+ language: z.ZodString;
7
+ extensions: z.ZodArray<z.ZodString>;
8
+ frameworks: z.ZodDefault<z.ZodArray<z.ZodString>>;
9
+ sha256: z.ZodOptional<z.ZodString>;
10
+ repository: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ export declare const ImportPatternRuleSchema: z.ZodObject<{
13
+ type: z.ZodString;
14
+ pattern: z.ZodString;
15
+ moduleGroup: z.ZodOptional<z.ZodNumber>;
16
+ }, z.core.$strip>;
17
+ export declare const EntityNodeRuleSchema: z.ZodObject<{
18
+ nodeType: z.ZodString;
19
+ entityType: z.ZodString;
20
+ abstractEntityType: z.ZodOptional<z.ZodString>;
21
+ nameField: z.ZodString;
22
+ bodyField: z.ZodOptional<z.ZodString>;
23
+ methodNode: z.ZodOptional<z.ZodString>;
24
+ fieldNode: z.ZodOptional<z.ZodString>;
25
+ constructorNode: z.ZodOptional<z.ZodString>;
26
+ extendsField: z.ZodOptional<z.ZodString>;
27
+ implementsField: z.ZodOptional<z.ZodString>;
28
+ typeIdentifierNode: z.ZodOptional<z.ZodString>;
29
+ functionNode: z.ZodOptional<z.ZodString>;
30
+ baseClassField: z.ZodOptional<z.ZodString>;
31
+ }, z.core.$strip>;
32
+ export declare const RelationEmissionConfigSchema: z.ZodDefault<z.ZodObject<{
33
+ inheritance: z.ZodDefault<z.ZodBoolean>;
34
+ implementation: z.ZodDefault<z.ZodBoolean>;
35
+ fieldDependency: z.ZodDefault<z.ZodBoolean>;
36
+ parameterDependency: z.ZodDefault<z.ZodBoolean>;
37
+ importDependency: z.ZodDefault<z.ZodBoolean>;
38
+ }, z.core.$strip>>;
39
+ export declare const ModuleRuleSetSchema: z.ZodDefault<z.ZodObject<{
40
+ importPatterns: z.ZodDefault<z.ZodArray<z.ZodObject<{
41
+ type: z.ZodString;
42
+ pattern: z.ZodString;
43
+ moduleGroup: z.ZodOptional<z.ZodNumber>;
44
+ }, z.core.$strip>>>;
45
+ entityNodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
46
+ nodeType: z.ZodString;
47
+ entityType: z.ZodString;
48
+ abstractEntityType: z.ZodOptional<z.ZodString>;
49
+ nameField: z.ZodString;
50
+ bodyField: z.ZodOptional<z.ZodString>;
51
+ methodNode: z.ZodOptional<z.ZodString>;
52
+ fieldNode: z.ZodOptional<z.ZodString>;
53
+ constructorNode: z.ZodOptional<z.ZodString>;
54
+ extendsField: z.ZodOptional<z.ZodString>;
55
+ implementsField: z.ZodOptional<z.ZodString>;
56
+ typeIdentifierNode: z.ZodOptional<z.ZodString>;
57
+ functionNode: z.ZodOptional<z.ZodString>;
58
+ baseClassField: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>>>;
60
+ relations: z.ZodDefault<z.ZodObject<{
61
+ inheritance: z.ZodDefault<z.ZodBoolean>;
62
+ implementation: z.ZodDefault<z.ZodBoolean>;
63
+ fieldDependency: z.ZodDefault<z.ZodBoolean>;
64
+ parameterDependency: z.ZodDefault<z.ZodBoolean>;
65
+ importDependency: z.ZodDefault<z.ZodBoolean>;
66
+ }, z.core.$strip>>;
67
+ pathResolution: z.ZodDefault<z.ZodObject<{
68
+ rootRelative: z.ZodDefault<z.ZodBoolean>;
69
+ extensions: z.ZodDefault<z.ZodArray<z.ZodString>>;
70
+ indexFiles: z.ZodDefault<z.ZodArray<z.ZodString>>;
71
+ }, z.core.$strip>>;
72
+ }, z.core.$strip>>;
73
+ export declare const DependencyRuleSetSchema: z.ZodDefault<z.ZodObject<{
74
+ packageFiles: z.ZodDefault<z.ZodArray<z.ZodString>>;
75
+ }, z.core.$strip>>;
76
+ export declare const DetectRuleSchema: z.ZodObject<{
77
+ fileMatch: z.ZodOptional<z.ZodString>;
78
+ contentContains: z.ZodOptional<z.ZodString>;
79
+ annotationPresent: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$strip>;
81
+ export declare const FrameworkModuleRuleSchema: z.ZodObject<{
82
+ annotations: z.ZodDefault<z.ZodArray<z.ZodString>>;
83
+ diagramLevel: z.ZodDefault<z.ZodString>;
84
+ }, z.core.$strip>;
85
+ export declare const EntryPointRuleSchema: z.ZodObject<{
86
+ annotation: z.ZodString;
87
+ protocol: z.ZodOptional<z.ZodString>;
88
+ method: z.ZodOptional<z.ZodString>;
89
+ pathArg: z.ZodOptional<z.ZodString>;
90
+ }, z.core.$strip>;
91
+ export declare const FrameworkRuleSchema: z.ZodObject<{
92
+ name: z.ZodString;
93
+ detect: z.ZodDefault<z.ZodArray<z.ZodObject<{
94
+ fileMatch: z.ZodOptional<z.ZodString>;
95
+ contentContains: z.ZodOptional<z.ZodString>;
96
+ annotationPresent: z.ZodOptional<z.ZodString>;
97
+ }, z.core.$strip>>>;
98
+ modules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
99
+ annotations: z.ZodDefault<z.ZodArray<z.ZodString>>;
100
+ diagramLevel: z.ZodDefault<z.ZodString>;
101
+ }, z.core.$strip>>>;
102
+ entryPoints: z.ZodDefault<z.ZodArray<z.ZodObject<{
103
+ annotation: z.ZodString;
104
+ protocol: z.ZodOptional<z.ZodString>;
105
+ method: z.ZodOptional<z.ZodString>;
106
+ pathArg: z.ZodOptional<z.ZodString>;
107
+ }, z.core.$strip>>>;
108
+ }, z.core.$strip>;
109
+ export declare const ArchitecturalPatternSchema: z.ZodObject<{
110
+ name: z.ZodString;
111
+ pattern: z.ZodString;
112
+ description: z.ZodOptional<z.ZodString>;
113
+ }, z.core.$strip>;
114
+ export declare const KnowledgePackSchema: z.ZodObject<{
115
+ manifest: z.ZodObject<{
116
+ name: z.ZodString;
117
+ version: z.ZodString;
118
+ engine: z.ZodString;
119
+ language: z.ZodString;
120
+ extensions: z.ZodArray<z.ZodString>;
121
+ frameworks: z.ZodDefault<z.ZodArray<z.ZodString>>;
122
+ sha256: z.ZodOptional<z.ZodString>;
123
+ repository: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strip>;
125
+ modules: z.ZodDefault<z.ZodObject<{
126
+ importPatterns: z.ZodDefault<z.ZodArray<z.ZodObject<{
127
+ type: z.ZodString;
128
+ pattern: z.ZodString;
129
+ moduleGroup: z.ZodOptional<z.ZodNumber>;
130
+ }, z.core.$strip>>>;
131
+ entityNodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
132
+ nodeType: z.ZodString;
133
+ entityType: z.ZodString;
134
+ abstractEntityType: z.ZodOptional<z.ZodString>;
135
+ nameField: z.ZodString;
136
+ bodyField: z.ZodOptional<z.ZodString>;
137
+ methodNode: z.ZodOptional<z.ZodString>;
138
+ fieldNode: z.ZodOptional<z.ZodString>;
139
+ constructorNode: z.ZodOptional<z.ZodString>;
140
+ extendsField: z.ZodOptional<z.ZodString>;
141
+ implementsField: z.ZodOptional<z.ZodString>;
142
+ typeIdentifierNode: z.ZodOptional<z.ZodString>;
143
+ functionNode: z.ZodOptional<z.ZodString>;
144
+ baseClassField: z.ZodOptional<z.ZodString>;
145
+ }, z.core.$strip>>>;
146
+ relations: z.ZodDefault<z.ZodObject<{
147
+ inheritance: z.ZodDefault<z.ZodBoolean>;
148
+ implementation: z.ZodDefault<z.ZodBoolean>;
149
+ fieldDependency: z.ZodDefault<z.ZodBoolean>;
150
+ parameterDependency: z.ZodDefault<z.ZodBoolean>;
151
+ importDependency: z.ZodDefault<z.ZodBoolean>;
152
+ }, z.core.$strip>>;
153
+ pathResolution: z.ZodDefault<z.ZodObject<{
154
+ rootRelative: z.ZodDefault<z.ZodBoolean>;
155
+ extensions: z.ZodDefault<z.ZodArray<z.ZodString>>;
156
+ indexFiles: z.ZodDefault<z.ZodArray<z.ZodString>>;
157
+ }, z.core.$strip>>;
158
+ }, z.core.$strip>>;
159
+ dependencies: z.ZodDefault<z.ZodObject<{
160
+ packageFiles: z.ZodDefault<z.ZodArray<z.ZodString>>;
161
+ }, z.core.$strip>>;
162
+ frameworks: z.ZodDefault<z.ZodArray<z.ZodObject<{
163
+ name: z.ZodString;
164
+ detect: z.ZodDefault<z.ZodArray<z.ZodObject<{
165
+ fileMatch: z.ZodOptional<z.ZodString>;
166
+ contentContains: z.ZodOptional<z.ZodString>;
167
+ annotationPresent: z.ZodOptional<z.ZodString>;
168
+ }, z.core.$strip>>>;
169
+ modules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
170
+ annotations: z.ZodDefault<z.ZodArray<z.ZodString>>;
171
+ diagramLevel: z.ZodDefault<z.ZodString>;
172
+ }, z.core.$strip>>>;
173
+ entryPoints: z.ZodDefault<z.ZodArray<z.ZodObject<{
174
+ annotation: z.ZodString;
175
+ protocol: z.ZodOptional<z.ZodString>;
176
+ method: z.ZodOptional<z.ZodString>;
177
+ pathArg: z.ZodOptional<z.ZodString>;
178
+ }, z.core.$strip>>>;
179
+ }, z.core.$strip>>>;
180
+ patterns: z.ZodDefault<z.ZodArray<z.ZodObject<{
181
+ name: z.ZodString;
182
+ pattern: z.ZodString;
183
+ description: z.ZodOptional<z.ZodString>;
184
+ }, z.core.$strip>>>;
185
+ }, z.core.$strip>;
186
+ export type KnowledgePackSchemaInput = z.input<typeof KnowledgePackSchema>;
187
+ export type KnowledgePackSchemaOutput = z.output<typeof KnowledgePackSchema>;
188
+ //# sourceMappingURL=knowledge-pack-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-pack-schema.d.ts","sourceRoot":"","sources":["../../../src/core/pack-registry/knowledge-pack-schema.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,2BAA2B;;;;;;;;;iBAStC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAc/B,CAAC;AAoBH,eAAO,MAAM,4BAA4B;;;;;;kBAQZ,CAAC;AAE9B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAaC,CAAC;AAElC,eAAO,MAAM,uBAAuB;;kBAIC,CAAC;AAEtC,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC3E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { z } from 'zod';
2
+ export const KnowledgePackManifestSchema = z.object({
3
+ name: z.string(),
4
+ version: z.string(),
5
+ engine: z.string(),
6
+ language: z.string(),
7
+ extensions: z.array(z.string()),
8
+ frameworks: z.array(z.string()).default([]),
9
+ sha256: z.string().optional(),
10
+ repository: z.string().optional(),
11
+ });
12
+ export const ImportPatternRuleSchema = z.object({
13
+ type: z.string(),
14
+ pattern: z.string(),
15
+ moduleGroup: z.number().int().positive().optional(),
16
+ });
17
+ export const EntityNodeRuleSchema = z.object({
18
+ nodeType: z.string(),
19
+ entityType: z.string(),
20
+ abstractEntityType: z.string().optional(),
21
+ nameField: z.string(),
22
+ bodyField: z.string().optional(),
23
+ methodNode: z.string().optional(),
24
+ fieldNode: z.string().optional(),
25
+ constructorNode: z.string().optional(),
26
+ extendsField: z.string().optional(),
27
+ implementsField: z.string().optional(),
28
+ typeIdentifierNode: z.string().optional(),
29
+ functionNode: z.string().optional(),
30
+ baseClassField: z.string().optional(),
31
+ });
32
+ const EMPTY_PATH_RESOLUTION = { rootRelative: true, extensions: [], indexFiles: [] };
33
+ const DEFAULT_RELATIONS = {
34
+ inheritance: true,
35
+ implementation: true,
36
+ fieldDependency: true,
37
+ parameterDependency: true,
38
+ importDependency: true,
39
+ };
40
+ const EMPTY_MODULE_RULE_SET = {
41
+ importPatterns: [],
42
+ entityNodes: [],
43
+ relations: DEFAULT_RELATIONS,
44
+ pathResolution: EMPTY_PATH_RESOLUTION,
45
+ };
46
+ const EMPTY_DEPENDENCY_RULE_SET = { packageFiles: [] };
47
+ export const RelationEmissionConfigSchema = z
48
+ .object({
49
+ inheritance: z.boolean().default(true),
50
+ implementation: z.boolean().default(true),
51
+ fieldDependency: z.boolean().default(true),
52
+ parameterDependency: z.boolean().default(true),
53
+ importDependency: z.boolean().default(true),
54
+ })
55
+ .default(DEFAULT_RELATIONS);
56
+ export const ModuleRuleSetSchema = z
57
+ .object({
58
+ importPatterns: z.array(ImportPatternRuleSchema).default([]),
59
+ entityNodes: z.array(EntityNodeRuleSchema).default([]),
60
+ relations: RelationEmissionConfigSchema,
61
+ pathResolution: z
62
+ .object({
63
+ rootRelative: z.boolean().default(true),
64
+ extensions: z.array(z.string()).default([]),
65
+ indexFiles: z.array(z.string()).default([]),
66
+ })
67
+ .default(EMPTY_PATH_RESOLUTION),
68
+ })
69
+ .default(EMPTY_MODULE_RULE_SET);
70
+ export const DependencyRuleSetSchema = z
71
+ .object({
72
+ packageFiles: z.array(z.string()).default([]),
73
+ })
74
+ .default(EMPTY_DEPENDENCY_RULE_SET);
75
+ export const DetectRuleSchema = z.object({
76
+ fileMatch: z.string().optional(),
77
+ contentContains: z.string().optional(),
78
+ annotationPresent: z.string().optional(),
79
+ });
80
+ export const FrameworkModuleRuleSchema = z.object({
81
+ annotations: z.array(z.string()).default([]),
82
+ diagramLevel: z.string().default('class'),
83
+ });
84
+ export const EntryPointRuleSchema = z.object({
85
+ annotation: z.string(),
86
+ protocol: z.string().optional(),
87
+ method: z.string().optional(),
88
+ pathArg: z.string().optional(),
89
+ });
90
+ export const FrameworkRuleSchema = z.object({
91
+ name: z.string(),
92
+ detect: z.array(DetectRuleSchema).default([]),
93
+ modules: z.record(z.string(), FrameworkModuleRuleSchema).default({}),
94
+ entryPoints: z.array(EntryPointRuleSchema).default([]),
95
+ });
96
+ export const ArchitecturalPatternSchema = z.object({
97
+ name: z.string(),
98
+ pattern: z.string(),
99
+ description: z.string().optional(),
100
+ });
101
+ export const KnowledgePackSchema = z.object({
102
+ manifest: KnowledgePackManifestSchema,
103
+ modules: ModuleRuleSetSchema,
104
+ dependencies: DependencyRuleSetSchema,
105
+ frameworks: z.array(FrameworkRuleSchema).default([]),
106
+ patterns: z.array(ArchitecturalPatternSchema).default([]),
107
+ });
108
+ //# sourceMappingURL=knowledge-pack-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-pack-schema.js","sourceRoot":"","sources":["../../../src/core/pack-registry/knowledge-pack-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { LoadedPack } from './types.js';
2
+ export interface PackRegistryOptions {
3
+ builtinPacksRoot?: string;
4
+ }
5
+ export declare class PackRegistry {
6
+ private readonly builtinPacksRoot;
7
+ constructor(options?: PackRegistryOptions);
8
+ get packsRoot(): string;
9
+ load(packDir: string): Promise<LoadedPack>;
10
+ resolve(language: string): Promise<LoadedPack | undefined>;
11
+ list(): Promise<string[]>;
12
+ private readYaml;
13
+ private readFrameworks;
14
+ }
15
+ //# sourceMappingURL=pack-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-registry.d.ts","sourceRoot":"","sources":["../../../src/core/pack-registry/pack-registry.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkC7C,MAAM,WAAW,mBAAmB;IAElC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,OAAO,GAAE,mBAAwB;IAK7C,IAAI,SAAS,IAAI,MAAM,CAEtB;IAQK,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8B1C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAgB1D,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAQjB,QAAQ;YAQR,cAAc;CAc7B"}
@@ -0,0 +1,99 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import * as yaml from 'js-yaml';
5
+ import { KnowledgePackSchema } from './knowledge-pack-schema.js';
6
+ import { PackNotFoundError } from './errors.js';
7
+ function defaultBuiltinPacksRoot() {
8
+ return fileURLToPath(new URL('../../plugins/packs/', import.meta.url));
9
+ }
10
+ function normalizeKeys(value) {
11
+ if (Array.isArray(value)) {
12
+ return value.map((v) => normalizeKeys(v));
13
+ }
14
+ if (value !== null && typeof value === 'object') {
15
+ const obj = value;
16
+ const out = {};
17
+ for (const [key, val] of Object.entries(obj)) {
18
+ out[toCamelCase(key)] = normalizeKeys(val);
19
+ }
20
+ return out;
21
+ }
22
+ return value;
23
+ }
24
+ function toCamelCase(key) {
25
+ return key.replace(/_([a-z])/g, (_match, char) => char.toUpperCase());
26
+ }
27
+ export class PackRegistry {
28
+ builtinPacksRoot;
29
+ constructor(options = {}) {
30
+ this.builtinPacksRoot = options.builtinPacksRoot ?? defaultBuiltinPacksRoot();
31
+ }
32
+ get packsRoot() {
33
+ return this.builtinPacksRoot;
34
+ }
35
+ async load(packDir) {
36
+ const resolved = path.resolve(packDir);
37
+ const manifestPath = path.join(resolved, 'manifest.json');
38
+ if (!(await fs.pathExists(manifestPath))) {
39
+ throw new PackNotFoundError(resolved);
40
+ }
41
+ const manifest = (await fs.readJson(manifestPath));
42
+ const modules = await this.readYaml(path.join(resolved, 'rules', 'modules.yaml'));
43
+ const dependencies = await this.readYaml(path.join(resolved, 'rules', 'dependencies.yaml'));
44
+ const frameworks = await this.readFrameworks(path.join(resolved, 'rules', 'frameworks'));
45
+ const patterns = await this.readYaml(path.join(resolved, 'patterns', 'architectural.yaml'));
46
+ const parsed = KnowledgePackSchema.parse({
47
+ manifest,
48
+ modules: modules ?? {},
49
+ dependencies: dependencies ?? {},
50
+ frameworks: frameworks ?? [],
51
+ patterns: patterns ?? [],
52
+ });
53
+ return { ...parsed, rootPath: resolved };
54
+ }
55
+ async resolve(language) {
56
+ const packDir = path.join(this.builtinPacksRoot, language);
57
+ if (!(await fs.pathExists(packDir))) {
58
+ return undefined;
59
+ }
60
+ try {
61
+ return await this.load(packDir);
62
+ }
63
+ catch (error) {
64
+ if (error instanceof PackNotFoundError) {
65
+ return undefined;
66
+ }
67
+ throw error;
68
+ }
69
+ }
70
+ async list() {
71
+ if (!(await fs.pathExists(this.builtinPacksRoot))) {
72
+ return [];
73
+ }
74
+ const entries = await fs.readdir(this.builtinPacksRoot, { withFileTypes: true });
75
+ return entries.filter((e) => e.isDirectory()).map((e) => e.name);
76
+ }
77
+ async readYaml(filePath) {
78
+ if (!(await fs.pathExists(filePath))) {
79
+ return undefined;
80
+ }
81
+ const content = await fs.readFile(filePath, 'utf-8');
82
+ return normalizeKeys(yaml.load(content));
83
+ }
84
+ async readFrameworks(dir) {
85
+ if (!(await fs.pathExists(dir))) {
86
+ return [];
87
+ }
88
+ const files = (await fs.readdir(dir)).filter((f) => f.endsWith('.yaml') || f.endsWith('.yml'));
89
+ const result = [];
90
+ for (const file of files) {
91
+ const rule = await this.readYaml(path.join(dir, file));
92
+ if (rule !== undefined) {
93
+ result.push(rule);
94
+ }
95
+ }
96
+ return result;
97
+ }
98
+ }
99
+ //# sourceMappingURL=pack-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-registry.js","sourceRoot":"","sources":["../../../src/core/pack-registry/pack-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ export interface KnowledgePackManifest {
2
+ name: string;
3
+ version: string;
4
+ engine: string;
5
+ language: string;
6
+ extensions: string[];
7
+ frameworks: string[];
8
+ sha256?: string;
9
+ repository?: string;
10
+ }
11
+ export interface ImportPatternRule {
12
+ type: string;
13
+ pattern: string;
14
+ moduleGroup?: number;
15
+ }
16
+ export interface EntityNodeRule {
17
+ nodeType: string;
18
+ entityType: string;
19
+ abstractEntityType?: string;
20
+ nameField: string;
21
+ bodyField?: string;
22
+ methodNode?: string;
23
+ fieldNode?: string;
24
+ constructorNode?: string;
25
+ extendsField?: string;
26
+ implementsField?: string;
27
+ typeIdentifierNode?: string;
28
+ functionNode?: string;
29
+ baseClassField?: string;
30
+ }
31
+ export interface RelationEmissionConfig {
32
+ inheritance: boolean;
33
+ implementation: boolean;
34
+ fieldDependency: boolean;
35
+ parameterDependency: boolean;
36
+ importDependency: boolean;
37
+ }
38
+ export interface ModuleRuleSet {
39
+ importPatterns: ImportPatternRule[];
40
+ entityNodes: EntityNodeRule[];
41
+ relations: RelationEmissionConfig;
42
+ pathResolution: {
43
+ rootRelative: boolean;
44
+ extensions: string[];
45
+ indexFiles: string[];
46
+ };
47
+ }
48
+ export interface DependencyRuleSet {
49
+ packageFiles: string[];
50
+ }
51
+ export interface DetectRule {
52
+ fileMatch?: string;
53
+ contentContains?: string;
54
+ annotationPresent?: string;
55
+ }
56
+ export interface FrameworkModuleRule {
57
+ annotations: string[];
58
+ diagramLevel: string;
59
+ }
60
+ export interface EntryPointRule {
61
+ annotation: string;
62
+ protocol?: string;
63
+ method?: string;
64
+ pathArg?: string;
65
+ }
66
+ export interface FrameworkRule {
67
+ name: string;
68
+ detect: DetectRule[];
69
+ modules: Record<string, FrameworkModuleRule>;
70
+ entryPoints: EntryPointRule[];
71
+ }
72
+ export interface ArchitecturalPattern {
73
+ name: string;
74
+ pattern: string;
75
+ description?: string;
76
+ }
77
+ export interface KnowledgePack {
78
+ manifest: KnowledgePackManifest;
79
+ modules: ModuleRuleSet;
80
+ dependencies: DependencyRuleSet;
81
+ frameworks: FrameworkRule[];
82
+ patterns: ArchitecturalPattern[];
83
+ }
84
+ export interface LoadedPack extends KnowledgePack {
85
+ rootPath: string;
86
+ }
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/pack-registry/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/pack-registry/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import type { ILanguagePlugin } from './interfaces/index.js';
2
+ import { PackRegistry } from './pack-registry/pack-registry.js';
2
3
  export interface RegisterOptions {
3
4
  overwrite?: boolean;
4
5
  }
@@ -9,6 +10,7 @@ export declare class PluginRegistry {
9
10
  getByName(name: string, version?: string): ILanguagePlugin | null;
10
11
  getByExtension(extension: string): ILanguagePlugin | null;
11
12
  private static readonly DETECTION_RULES;
13
+ resolveForLanguage(language: string, packRegistry?: PackRegistry): Promise<ILanguagePlugin | null>;
12
14
  detectPluginForDirectory(directoryPath: string): Promise<ILanguagePlugin | null>;
13
15
  listVersions(name: string): string[];
14
16
  listAll(): ILanguagePlugin[];
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-registry.d.ts","sourceRoot":"","sources":["../../src/core/plugin-registry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,MAAM,WAAW,eAAe;IAK9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAWD,qBAAa,cAAc;IAIzB,OAAO,CAAC,OAAO,CAAwD;IAMvE,OAAO,CAAC,YAAY,CAA6C;IASjE,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IAkDtE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IA2BjE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAczD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAarC;IAYI,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IA6BtF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgBpC,OAAO,IAAI,eAAe,EAAE;IAmB5B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAmBtC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA6BhE,OAAO,CAAC,eAAe;CAcxB"}
1
+ {"version":3,"file":"plugin-registry.d.ts","sourceRoot":"","sources":["../../src/core/plugin-registry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAMhE,MAAM,WAAW,eAAe;IAK9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAWD,qBAAa,cAAc;IAIzB,OAAO,CAAC,OAAO,CAAwD;IAMvE,OAAO,CAAC,YAAY,CAA6C;IASjE,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IAkDtE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IA2BjE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAczD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAarC;IAcI,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAsB5B,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IA6BtF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgBpC,OAAO,IAAI,eAAe,EAAE;IAmB5B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAmBtC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAgChE,OAAO,CAAC,eAAe;CAcxB"}
@@ -1,6 +1,8 @@
1
1
  import path from 'path';
2
2
  import { pathToFileURL } from 'node:url';
3
3
  import fs from 'fs-extra';
4
+ import { PackRegistry } from './pack-registry/pack-registry.js';
5
+ import { RuleBasedLanguagePlugin } from './rule-engine/rule-based-plugin.js';
4
6
  export class PluginRegistry {
5
7
  plugins = new Map();
6
8
  extensionMap = new Map();
@@ -67,6 +69,17 @@ export class PluginRegistry {
67
69
  { file: 'CMakeLists.txt', plugin: 'cpp' },
68
70
  { file: 'Makefile', plugin: 'cpp' },
69
71
  ];
72
+ async resolveForLanguage(language, packRegistry) {
73
+ const imperative = this.getByName(language);
74
+ if (imperative) {
75
+ return imperative;
76
+ }
77
+ const pack = await (packRegistry ?? new PackRegistry()).resolve(language);
78
+ if (!pack) {
79
+ return null;
80
+ }
81
+ return new RuleBasedLanguagePlugin(pack);
82
+ }
70
83
  async detectPluginForDirectory(directoryPath) {
71
84
  for (const rule of PluginRegistry.DETECTION_RULES) {
72
85
  const markerPath = path.join(directoryPath, rule.file);
@@ -114,8 +127,8 @@ export class PluginRegistry {
114
127
  }
115
128
  async loadFromPath(pluginPath) {
116
129
  const pluginUrl = pathToFileURL(pluginPath).href;
117
- const module = await import(pluginUrl);
118
- const PluginClass = module.default || module.Plugin;
130
+ const module = (await import(pluginUrl));
131
+ const PluginClass = module.default ?? module.Plugin;
119
132
  if (!PluginClass) {
120
133
  throw new Error(`Plugin at '${pluginPath}' must export a default class or named 'Plugin' export`);
121
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-registry.js","sourceRoot":"","sources":["../../src/core/plugin-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-registry.js","sourceRoot":"","sources":["../../src/core/plugin-registry.ts"],"names":[],"mappings":"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"}