@memoarchitect/tools 0.6.7 → 0.8.7

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 (549) hide show
  1. package/README.md +36 -11
  2. package/corpus/README.md +63 -0
  3. package/corpus/sysml-v2-release/bnf/SysML-graphical-bnf.kgbnf +2264 -0
  4. package/package.json +20 -7
  5. package/packages/tools/lib/analysis/dsm.d.ts +1 -1
  6. package/packages/tools/lib/analysis/dsm.d.ts.map +1 -1
  7. package/packages/tools/lib/analysis/dsm.js +1 -1
  8. package/packages/tools/lib/analysis/dsm.js.map +1 -1
  9. package/packages/tools/lib/bin/memo.js +186 -10
  10. package/packages/tools/lib/bin/memo.js.map +1 -1
  11. package/packages/tools/lib/browser/index.d.ts +3 -1
  12. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  13. package/packages/tools/lib/browser/index.js +2 -1
  14. package/packages/tools/lib/browser/index.js.map +1 -1
  15. package/packages/tools/lib/commands/ask.js +1 -1
  16. package/packages/tools/lib/commands/ask.js.map +1 -1
  17. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  18. package/packages/tools/lib/commands/check.js +3 -9
  19. package/packages/tools/lib/commands/check.js.map +1 -1
  20. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  21. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  22. package/packages/tools/lib/commands/conformance.js +212 -0
  23. package/packages/tools/lib/commands/conformance.js.map +1 -0
  24. package/packages/tools/lib/commands/convert.d.ts +12 -0
  25. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  26. package/packages/tools/lib/commands/convert.js +103 -0
  27. package/packages/tools/lib/commands/convert.js.map +1 -0
  28. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  29. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  30. package/packages/tools/lib/commands/create-package.js.map +1 -1
  31. package/packages/tools/lib/commands/dev.d.ts +13 -0
  32. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  33. package/packages/tools/lib/commands/dev.js +245 -89
  34. package/packages/tools/lib/commands/dev.js.map +1 -1
  35. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  36. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  37. package/packages/tools/lib/commands/dhf-lint.d.ts +10 -0
  38. package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -0
  39. package/packages/tools/lib/commands/dhf-lint.js +72 -0
  40. package/packages/tools/lib/commands/dhf-lint.js.map +1 -0
  41. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  42. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  43. package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
  44. package/packages/tools/lib/commands/dhf.js +8 -2
  45. package/packages/tools/lib/commands/dhf.js.map +1 -1
  46. package/packages/tools/lib/commands/element.d.ts +34 -0
  47. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  48. package/packages/tools/lib/commands/element.js +174 -0
  49. package/packages/tools/lib/commands/element.js.map +1 -0
  50. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  51. package/packages/tools/lib/commands/export.js +39 -40
  52. package/packages/tools/lib/commands/export.js.map +1 -1
  53. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  54. package/packages/tools/lib/commands/generate.js +10 -7
  55. package/packages/tools/lib/commands/generate.js.map +1 -1
  56. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  57. package/packages/tools/lib/commands/import.js +25 -12
  58. package/packages/tools/lib/commands/import.js.map +1 -1
  59. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  60. package/packages/tools/lib/commands/init.js +34 -14
  61. package/packages/tools/lib/commands/init.js.map +1 -1
  62. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  63. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  64. package/packages/tools/lib/commands/inspect.js +56 -0
  65. package/packages/tools/lib/commands/inspect.js.map +1 -0
  66. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  67. package/packages/tools/lib/commands/lock.js +7 -2
  68. package/packages/tools/lib/commands/lock.js.map +1 -1
  69. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  70. package/packages/tools/lib/commands/ontology.js +69 -116
  71. package/packages/tools/lib/commands/ontology.js.map +1 -1
  72. package/packages/tools/lib/commands/pack.d.ts +1 -1
  73. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  74. package/packages/tools/lib/commands/pack.js +20 -78
  75. package/packages/tools/lib/commands/pack.js.map +1 -1
  76. package/packages/tools/lib/commands/package.d.ts +10 -0
  77. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  78. package/packages/tools/lib/commands/package.js +113 -0
  79. package/packages/tools/lib/commands/package.js.map +1 -0
  80. package/packages/tools/lib/commands/plugin.js +1 -1
  81. package/packages/tools/lib/commands/plugin.js.map +1 -1
  82. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  83. package/packages/tools/lib/commands/rules.js +120 -30
  84. package/packages/tools/lib/commands/rules.js.map +1 -1
  85. package/packages/tools/lib/commands/standards.d.ts +28 -0
  86. package/packages/tools/lib/commands/standards.d.ts.map +1 -0
  87. package/packages/tools/lib/commands/standards.js +203 -0
  88. package/packages/tools/lib/commands/standards.js.map +1 -0
  89. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  90. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  91. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  92. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  93. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  94. package/packages/tools/lib/commands/toolchain.js +64 -0
  95. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  96. package/packages/tools/lib/commands/validate.d.ts +1 -1
  97. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  98. package/packages/tools/lib/commands/validate.js +194 -56
  99. package/packages/tools/lib/commands/validate.js.map +1 -1
  100. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  101. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  102. package/packages/tools/lib/completeness/tracker.js +16 -21
  103. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  104. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  105. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  106. package/packages/tools/lib/conformance/baseline.js +170 -0
  107. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  108. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  109. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  110. package/packages/tools/lib/conformance/bnf.js +166 -0
  111. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  112. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  113. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  114. package/packages/tools/lib/conformance/corpus.js +190 -0
  115. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  116. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  117. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  118. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  119. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  120. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  121. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  122. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  123. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  124. package/packages/tools/lib/conformance/index.d.ts +7 -0
  125. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  126. package/packages/tools/lib/conformance/index.js +19 -0
  127. package/packages/tools/lib/conformance/index.js.map +1 -0
  128. package/packages/tools/lib/conformance/run.d.ts +117 -0
  129. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  130. package/packages/tools/lib/conformance/run.js +0 -0
  131. package/packages/tools/lib/conformance/run.js.map +1 -0
  132. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  133. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  134. package/packages/tools/lib/conformance/xmi.js +148 -0
  135. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  136. package/packages/tools/lib/dhf/document-compiler.d.ts.map +1 -1
  137. package/packages/tools/lib/dhf/document-compiler.js +13 -8
  138. package/packages/tools/lib/dhf/document-compiler.js.map +1 -1
  139. package/packages/tools/lib/dhf/document-registry.d.ts +16 -2
  140. package/packages/tools/lib/dhf/document-registry.d.ts.map +1 -1
  141. package/packages/tools/lib/dhf/document-registry.js +74 -23
  142. package/packages/tools/lib/dhf/document-registry.js.map +1 -1
  143. package/packages/tools/lib/dhf/index.d.ts +3 -0
  144. package/packages/tools/lib/dhf/index.d.ts.map +1 -1
  145. package/packages/tools/lib/dhf/index.js +4 -0
  146. package/packages/tools/lib/dhf/index.js.map +1 -1
  147. package/packages/tools/lib/dhf/query-engine.d.ts +12 -1
  148. package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
  149. package/packages/tools/lib/dhf/query-engine.js +2 -1
  150. package/packages/tools/lib/dhf/query-engine.js.map +1 -1
  151. package/packages/tools/lib/dhf/query-executor.d.ts +72 -5
  152. package/packages/tools/lib/dhf/query-executor.d.ts.map +1 -1
  153. package/packages/tools/lib/dhf/query-executor.js +471 -81
  154. package/packages/tools/lib/dhf/query-executor.js.map +1 -1
  155. package/packages/tools/lib/dhf/script-runner.js +6 -6
  156. package/packages/tools/lib/dhf/script-runner.js.map +1 -1
  157. package/packages/tools/lib/dhf/standards-block.d.ts +40 -0
  158. package/packages/tools/lib/dhf/standards-block.d.ts.map +1 -0
  159. package/packages/tools/lib/dhf/standards-block.js +223 -0
  160. package/packages/tools/lib/dhf/standards-block.js.map +1 -0
  161. package/packages/tools/lib/dhf/standards-library.d.ts +123 -0
  162. package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -0
  163. package/packages/tools/lib/dhf/standards-library.js +295 -0
  164. package/packages/tools/lib/dhf/standards-library.js.map +1 -0
  165. package/packages/tools/lib/dhf/standards-report.d.ts +189 -0
  166. package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -0
  167. package/packages/tools/lib/dhf/standards-report.js +384 -0
  168. package/packages/tools/lib/dhf/standards-report.js.map +1 -0
  169. package/packages/tools/lib/dhf/template-lint.d.ts +42 -0
  170. package/packages/tools/lib/dhf/template-lint.d.ts.map +1 -0
  171. package/packages/tools/lib/dhf/template-lint.js +421 -0
  172. package/packages/tools/lib/dhf/template-lint.js.map +1 -0
  173. package/packages/tools/lib/dhf/template-resolver.d.ts.map +1 -1
  174. package/packages/tools/lib/dhf/template-resolver.js +18 -6
  175. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  176. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  177. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  178. package/packages/tools/lib/import/column-mapper.js +3 -3
  179. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  180. package/packages/tools/lib/importer/cameo-importer.js +2 -2
  181. package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
  182. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
  183. package/packages/tools/lib/importer/ea-importer.js +4 -3
  184. package/packages/tools/lib/importer/ea-importer.js.map +1 -1
  185. package/packages/tools/lib/importer/owl-importer.d.ts.map +1 -1
  186. package/packages/tools/lib/importer/owl-importer.js +2 -3
  187. package/packages/tools/lib/importer/owl-importer.js.map +1 -1
  188. package/packages/tools/lib/index.d.ts +20 -3
  189. package/packages/tools/lib/index.d.ts.map +1 -1
  190. package/packages/tools/lib/index.js +19 -2
  191. package/packages/tools/lib/index.js.map +1 -1
  192. package/packages/tools/lib/language/generated/ast.d.ts +1344 -99
  193. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  194. package/packages/tools/lib/language/generated/ast.js +1066 -32
  195. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  196. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  197. package/packages/tools/lib/language/generated/grammar.js +5242 -1454
  198. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  199. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  200. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  201. package/packages/tools/lib/llm/chat-engine.js +15 -12
  202. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  203. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  204. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  205. package/packages/tools/lib/llm/generate-engine.js +22 -4
  206. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  207. package/packages/tools/lib/llm/index.d.ts +1 -0
  208. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  209. package/packages/tools/lib/llm/index.js +1 -0
  210. package/packages/tools/lib/llm/index.js.map +1 -1
  211. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  212. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  213. package/packages/tools/lib/llm/model-context.js +7 -13
  214. package/packages/tools/lib/llm/model-context.js.map +1 -1
  215. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  216. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  217. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  218. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  219. package/packages/tools/lib/lock.d.ts +14 -8
  220. package/packages/tools/lib/lock.d.ts.map +1 -1
  221. package/packages/tools/lib/lock.js +97 -108
  222. package/packages/tools/lib/lock.js.map +1 -1
  223. package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
  224. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  225. package/packages/tools/lib/mcp/model-loader.js +9 -5
  226. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  227. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  228. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  229. package/packages/tools/lib/mcp/tools.js +8 -9
  230. package/packages/tools/lib/mcp/tools.js.map +1 -1
  231. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  232. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  233. package/packages/tools/lib/model/activity-notation.js +208 -0
  234. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  235. package/packages/tools/lib/model/builder.d.ts +3 -0
  236. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  237. package/packages/tools/lib/model/builder.js +956 -62
  238. package/packages/tools/lib/model/builder.js.map +1 -1
  239. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  240. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  241. package/packages/tools/lib/model/config-loader.js +51 -233
  242. package/packages/tools/lib/model/config-loader.js.map +1 -1
  243. package/packages/tools/lib/model/config.d.ts +42 -213
  244. package/packages/tools/lib/model/config.d.ts.map +1 -1
  245. package/packages/tools/lib/model/config.js +11 -9
  246. package/packages/tools/lib/model/config.js.map +1 -1
  247. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  248. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  249. package/packages/tools/lib/model/effective-scope.js +133 -0
  250. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  251. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  252. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  253. package/packages/tools/lib/model/ir-identity.js +178 -0
  254. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  255. package/packages/tools/lib/model/kind-registry.d.ts +134 -1
  256. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  257. package/packages/tools/lib/model/kind-registry.js +186 -4
  258. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  259. package/packages/tools/lib/model/layer-resolver.js +1 -1
  260. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  261. package/packages/tools/lib/model/manifest.d.ts +8 -0
  262. package/packages/tools/lib/model/manifest.d.ts.map +1 -1
  263. package/packages/tools/lib/model/manifest.js +3 -0
  264. package/packages/tools/lib/model/manifest.js.map +1 -1
  265. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  266. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  267. package/packages/tools/lib/model/methodology-loader.js +179 -176
  268. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  269. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  270. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  271. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  272. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  273. package/packages/tools/lib/model/naming.d.ts +57 -0
  274. package/packages/tools/lib/model/naming.d.ts.map +1 -0
  275. package/packages/tools/lib/model/naming.js +69 -0
  276. package/packages/tools/lib/model/naming.js.map +1 -0
  277. package/packages/tools/lib/model/native-project.d.ts +130 -0
  278. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  279. package/packages/tools/lib/model/native-project.js +580 -0
  280. package/packages/tools/lib/model/native-project.js.map +1 -0
  281. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  282. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  283. package/packages/tools/lib/model/ontology-loader.js +343 -614
  284. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  285. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  286. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  287. package/packages/tools/lib/model/package-manifest.js +96 -0
  288. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  289. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  290. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  291. package/packages/tools/lib/model/parser-utils.js +89 -1
  292. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  293. package/packages/tools/lib/model/paths.d.ts +10 -4
  294. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  295. package/packages/tools/lib/model/paths.js +10 -4
  296. package/packages/tools/lib/model/paths.js.map +1 -1
  297. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  298. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  299. package/packages/tools/lib/model/project-conversion.js +946 -0
  300. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  301. package/packages/tools/lib/model/relationship-legality.d.ts +27 -0
  302. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  303. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  304. package/packages/tools/lib/model/relationship-registry.d.ts +93 -1
  305. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  306. package/packages/tools/lib/model/relationship-registry.js +217 -2
  307. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  308. package/packages/tools/lib/model/semantic.d.ts +73 -0
  309. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  310. package/packages/tools/lib/model/semantic.js +6 -0
  311. package/packages/tools/lib/model/semantic.js.map +1 -1
  312. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  313. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  314. package/packages/tools/lib/model/settings-boundary.js +118 -0
  315. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  316. package/packages/tools/lib/model/short-id.js +3 -3
  317. package/packages/tools/lib/model/short-id.js.map +1 -1
  318. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  319. package/packages/tools/lib/model/source-graph.js +5 -1
  320. package/packages/tools/lib/model/source-graph.js.map +1 -1
  321. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  322. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  323. package/packages/tools/lib/model/source-provenance.js +169 -0
  324. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  325. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  326. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  327. package/packages/tools/lib/model/sysml-ir.js +105 -0
  328. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  329. package/packages/tools/lib/model/view-deriver.d.ts +10 -1
  330. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  331. package/packages/tools/lib/model/view-deriver.js +139 -11
  332. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  333. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  334. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  335. package/packages/tools/lib/model/view-kinds.js +11 -0
  336. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  337. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  338. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  339. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  340. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  341. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  342. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  343. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  344. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  345. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  346. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  347. package/packages/tools/lib/operations/authoring.js +56 -0
  348. package/packages/tools/lib/operations/authoring.js.map +1 -0
  349. package/packages/tools/lib/operations/index.d.ts +2 -0
  350. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  351. package/packages/tools/lib/operations/index.js +2 -0
  352. package/packages/tools/lib/operations/index.js.map +1 -1
  353. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  354. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  355. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  356. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  357. package/packages/tools/lib/protocol/messages.d.ts +381 -12
  358. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  359. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  360. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  361. package/packages/tools/lib/serializer/csv-io.js +11 -11
  362. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  363. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  364. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  365. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  366. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  367. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  368. package/packages/tools/lib/server/config-resolver.js +25 -44
  369. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  370. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  371. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  372. package/packages/tools/lib/server/conflict-policy.js +94 -0
  373. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  374. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  375. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  376. package/packages/tools/lib/server/dev-server.js +875 -54
  377. package/packages/tools/lib/server/dev-server.js.map +1 -1
  378. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  379. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  380. package/packages/tools/lib/server/element-writer.js +123 -0
  381. package/packages/tools/lib/server/element-writer.js.map +1 -0
  382. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  383. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  384. package/packages/tools/lib/server/file-watcher.js +17 -7
  385. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  386. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  387. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  388. package/packages/tools/lib/server/mutation-domain.js +87 -0
  389. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  390. package/packages/tools/lib/server/package-source.d.ts +26 -0
  391. package/packages/tools/lib/server/package-source.d.ts.map +1 -0
  392. package/packages/tools/lib/server/package-source.js +81 -0
  393. package/packages/tools/lib/server/package-source.js.map +1 -0
  394. package/packages/tools/lib/server/package-writer.d.ts +94 -0
  395. package/packages/tools/lib/server/package-writer.d.ts.map +1 -0
  396. package/packages/tools/lib/server/package-writer.js +317 -0
  397. package/packages/tools/lib/server/package-writer.js.map +1 -0
  398. package/packages/tools/lib/server/persistor.d.ts +81 -6
  399. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  400. package/packages/tools/lib/server/persistor.js +173 -44
  401. package/packages/tools/lib/server/persistor.js.map +1 -1
  402. package/packages/tools/lib/server/relationship-writer.d.ts +41 -5
  403. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  404. package/packages/tools/lib/server/relationship-writer.js +157 -13
  405. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  406. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  407. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  408. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  409. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  410. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  411. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  412. package/packages/tools/lib/server/runtime-budget.js +15 -0
  413. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  414. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  415. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  416. package/packages/tools/lib/server/sysml-notation.js +104 -0
  417. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  418. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  419. package/packages/tools/lib/server/view-layout-store.js +1 -0
  420. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  421. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  422. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  423. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  424. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  425. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  426. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  427. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  428. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  429. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  430. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  431. package/packages/tools/lib/sysml-ir/index.js +3 -0
  432. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  433. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  434. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  435. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  436. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  437. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  438. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  439. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  440. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  441. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  442. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  443. package/packages/tools/lib/sysmlc/index.js +7 -0
  444. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  445. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  446. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  447. package/packages/tools/lib/sysmlc/server.js +168 -0
  448. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  449. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  450. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  451. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  452. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  453. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  454. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  455. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  456. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  457. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  458. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  459. package/packages/tools/lib/toolchain/effective.js +91 -0
  460. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  461. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  462. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  463. package/packages/tools/lib/toolchain/index.js +21 -0
  464. package/packages/tools/lib/toolchain/index.js.map +1 -0
  465. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  466. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  467. package/packages/tools/lib/toolchain/lowering.js +100 -0
  468. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  469. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  470. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  471. package/packages/tools/lib/toolchain/operations.js +111 -0
  472. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  473. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  474. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  475. package/packages/tools/lib/toolchain/process.js +125 -0
  476. package/packages/tools/lib/toolchain/process.js.map +1 -0
  477. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  478. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  479. package/packages/tools/lib/toolchain/protocol.js +74 -0
  480. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  481. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  482. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  483. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  484. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  485. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  486. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  487. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  488. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  489. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  490. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  491. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  492. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  493. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  494. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  495. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  496. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  497. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  498. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  499. package/packages/tools/lib/toolchain/registry.js +130 -0
  500. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  501. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  502. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  503. package/packages/tools/lib/toolchain/schema.js +112 -0
  504. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  505. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  506. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  507. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  508. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  509. package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
  510. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  511. package/packages/tools/lib/validator/architecture-validator.js +25 -1
  512. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  513. package/packages/tools/lib/validator/behavior-validator.d.ts +1 -1
  514. package/packages/tools/lib/validator/behavior-validator.js +1 -1
  515. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  516. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  517. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  518. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  519. package/packages/tools/lib/validator/constraint-eval.d.ts +31 -0
  520. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  521. package/packages/tools/lib/validator/constraint-eval.js +164 -7
  522. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  523. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  524. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  525. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  526. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  527. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  528. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  529. package/packages/tools/lib/validator/rule-engine.js +56 -5
  530. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  531. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  532. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  533. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  534. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  535. package/packages/tools/lib/validator/types.d.ts +33 -0
  536. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  537. package/packages/tools/lib/version.d.ts +2 -0
  538. package/packages/tools/lib/version.d.ts.map +1 -0
  539. package/packages/tools/lib/version.js +26 -0
  540. package/packages/tools/lib/version.js.map +1 -0
  541. package/packages/tools/src/grammar/memo-sysml.langium +517 -41
  542. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  543. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  544. package/packages/tools/lib/model/dimension-filter.js +0 -57
  545. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  546. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  547. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  548. package/packages/tools/lib/model/toolchain.js +0 -92
  549. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import type { PackageDescriptor, ProviderContext, ToolInvocation } from '../registry.js';
2
+ /** The one place this string is written. */
3
+ export declare const SYSAND_PROVIDER_ID = "sysand";
4
+ export interface SysandToolConfig {
5
+ /** Executable name or path. Defaults to `sysand` on PATH. */
6
+ executable?: string;
7
+ /** Optional sysand.toml path, relative to the project directory. */
8
+ configFile?: string;
9
+ }
10
+ export declare function buildSysandInvocation(context: ProviderContext): ToolInvocation;
11
+ export declare const sysandPackageDescriptor: PackageDescriptor;
12
+ //# sourceMappingURL=sysand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sysand.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/sysand.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAER,iBAAiB,EACjB,eAAe,EAEf,cAAc,EAEjB,MAAM,gBAAgB,CAAC;AAGxB,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC7B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAuBD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAO9E;AAaD,eAAO,MAAM,uBAAuB,EAAE,iBA8DrC,CAAC"}
@@ -0,0 +1,110 @@
1
+ // ─── Adapter: SysAnd package manager ─────────────────────────────────────────
2
+ //
3
+ // Registers on the same terms as every other provider — the packaging role had
4
+ // the identical `if (provider === 'sysand')` shape the compiler role had, and
5
+ // it is gone the same way.
6
+ // ─────────────────────────────────────────────────────────────────────────────
7
+ import { existsSync } from 'node:fs';
8
+ import { captureToolInvocation, probeVersion, resolveExecutable, resolveProjectPath, whichExecutable } from '../process.js';
9
+ import { providerSettings } from '../effective.js';
10
+ /** The one place this string is written. */
11
+ export const SYSAND_PROVIDER_ID = 'sysand';
12
+ const SETTINGS_SCHEMA = [
13
+ {
14
+ path: `${SYSAND_PROVIDER_ID}.executable`,
15
+ type: 'string',
16
+ description: `Executable name or path. Defaults to \`${SYSAND_PROVIDER_ID}\` on PATH.`,
17
+ },
18
+ {
19
+ path: `${SYSAND_PROVIDER_ID}.configFile`,
20
+ type: 'string',
21
+ description: `Path to a ${SYSAND_PROVIDER_ID}.toml, relative to the project directory.`,
22
+ },
23
+ ];
24
+ function settings(context) {
25
+ return providerSettings(context.config, SYSAND_PROVIDER_ID) ?? {};
26
+ }
27
+ function command(context) {
28
+ return resolveExecutable(settings(context).executable, SYSAND_PROVIDER_ID, context.projectDir);
29
+ }
30
+ export function buildSysandInvocation(context) {
31
+ const tool = settings(context);
32
+ if (!context.outputPath)
33
+ throw new Error('Packaging requires an output path.');
34
+ const args = [];
35
+ if (tool.configFile)
36
+ args.push('--config-file', resolveProjectPath(tool.configFile, context.projectDir));
37
+ args.push('build', context.outputPath);
38
+ return { command: command(context), args, provider: SYSAND_PROVIDER_ID };
39
+ }
40
+ const versionCache = new Map();
41
+ function cachedVersion(executable) {
42
+ if (!versionCache.has(executable)) {
43
+ const raw = probeVersion(executable);
44
+ const match = raw ? /\b(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)\b/.exec(raw) : undefined;
45
+ versionCache.set(executable, match ? match[1] : raw);
46
+ }
47
+ return versionCache.get(executable);
48
+ }
49
+ export const sysandPackageDescriptor = {
50
+ id: SYSAND_PROVIDER_ID,
51
+ role: 'package',
52
+ capabilities: ['pack'],
53
+ settingsSchema: SETTINGS_SCHEMA,
54
+ probe(context) {
55
+ const executable = whichExecutable(command(context));
56
+ if (!executable) {
57
+ return {
58
+ available: false,
59
+ transport: 'process',
60
+ detail: `"${command(context)}" was not found on PATH.`,
61
+ };
62
+ }
63
+ return {
64
+ available: true,
65
+ transport: 'process',
66
+ executable,
67
+ version: cachedVersion(executable),
68
+ };
69
+ },
70
+ create(context) {
71
+ return {
72
+ id: SYSAND_PROVIDER_ID,
73
+ role: 'package',
74
+ transport: 'process',
75
+ invocation: () => buildSysandInvocation(context),
76
+ async run() {
77
+ const invocation = buildSysandInvocation(context);
78
+ const result = captureToolInvocation(invocation, context.projectDir);
79
+ const version = cachedVersion(invocation.command);
80
+ const diagnostics = [];
81
+ if (result.status !== 0) {
82
+ const detail = `${result.stderr}\n${result.stdout}`.trim();
83
+ diagnostics.push({
84
+ domain: 'sysml',
85
+ provider: SYSAND_PROVIDER_ID,
86
+ providerVersion: version,
87
+ severity: 'error',
88
+ message: `${SYSAND_PROVIDER_ID} exited with status ${result.status ?? 'unknown'}.`
89
+ + (detail ? ` ${detail}` : ''),
90
+ });
91
+ }
92
+ // Packaging is the one role with a checkable postcondition:
93
+ // either the artifact is there or the run did not do its job,
94
+ // whatever it printed.
95
+ if (result.status === 0 && !existsSync(context.outputPath)) {
96
+ throw new Error(`${SYSAND_PROVIDER_ID} completed but did not create ${context.outputPath}.`);
97
+ }
98
+ return {
99
+ provider: SYSAND_PROVIDER_ID,
100
+ providerVersion: version,
101
+ transport: 'process',
102
+ accepted: result.status === 0,
103
+ diagnostics,
104
+ exitCode: result.status ?? undefined,
105
+ };
106
+ },
107
+ };
108
+ },
109
+ };
110
+ //# sourceMappingURL=sysand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sysand.js","sourceRoot":"","sources":["../../../src/toolchain/providers/sysand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Diagnostic } from '../diagnostic.js';
2
+ import type { ProviderContext, ToolInvocation, ValidatorDescriptor } from '../registry.js';
3
+ /** The one place this string is written. */
4
+ export declare const SYSIDE_PROVIDER_ID = "syside";
5
+ export interface SysideToolConfig {
6
+ /** Executable name or path. Defaults to `syside` on PATH. */
7
+ executable?: string;
8
+ /** Optional syside.toml path, relative to the project directory. */
9
+ configFile?: string;
10
+ /** Treat Syside warnings as errors. Defaults to true. */
11
+ warningsAsErrors?: boolean;
12
+ /** Validation scope. Defaults to `all`. Use `none` for syntax only. */
13
+ diagnose?: 'all' | 'external' | 'project' | 'none';
14
+ }
15
+ export declare function buildSysideInvocation(context: ProviderContext): ToolInvocation;
16
+ /**
17
+ * `syside --version` prints `syside 0.10.2 <commit>`; the commit is noise for a
18
+ * probe listing. Reduce to the version number when the shape is recognisable,
19
+ * and otherwise report whatever it said rather than nothing.
20
+ */
21
+ export declare function normalizeSysideVersion(raw: string | undefined): string | undefined;
22
+ export declare function parseSysideDiagnostics(output: string, version?: string): Diagnostic[];
23
+ export declare const sysideValidatorDescriptor: ValidatorDescriptor;
24
+ //# sourceMappingURL=syside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syside.d.ts","sourceRoot":"","sources":["../../../src/toolchain/providers/syside.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAER,eAAe,EAEf,cAAc,EAEd,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AAGxB,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC7B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;CACtD;AAoCD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAgB9E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIlF;AA0CD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CA+BrF;AAED,eAAO,MAAM,yBAAyB,EAAE,mBA2DvC,CAAC"}
@@ -0,0 +1,208 @@
1
+ // ─── Adapter: Syside CLI ─────────────────────────────────────────────────────
2
+ //
3
+ // The best validator available today: full semantic validation, 151 stable
4
+ // rule codes, absolute paths and full ranges. It cannot emit IR (`syside 0.10.2`
5
+ // exposes only check/format/rule/viz/table), so it fills the validator role and
6
+ // nothing else — which is precisely why the validator and lowering roles are
7
+ // separate. Requiring one tool to do both would delete the only external
8
+ // provider that works.
9
+ //
10
+ // Everything Syside-specific lives here: the ID, the argument shape, the
11
+ // settings block, and the parser for its diagnostic format.
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ import { captureToolInvocation, probeVersion, resolveExecutable, resolveProjectPath, whichExecutable } from '../process.js';
14
+ import { providerSettings } from '../effective.js';
15
+ /** The one place this string is written. */
16
+ export const SYSIDE_PROVIDER_ID = 'syside';
17
+ const DIAGNOSE_SCOPES = ['all', 'external', 'project', 'none'];
18
+ const SETTINGS_SCHEMA = [
19
+ {
20
+ path: `${SYSIDE_PROVIDER_ID}.executable`,
21
+ type: 'string',
22
+ description: `Executable name or path. Defaults to \`${SYSIDE_PROVIDER_ID}\` on PATH.`,
23
+ },
24
+ {
25
+ path: `${SYSIDE_PROVIDER_ID}.configFile`,
26
+ type: 'string',
27
+ description: `Path to a ${SYSIDE_PROVIDER_ID}.toml, relative to the project directory.`,
28
+ },
29
+ {
30
+ path: `${SYSIDE_PROVIDER_ID}.warningsAsErrors`,
31
+ type: 'boolean',
32
+ description: 'Treat warnings as errors. Defaults to true.',
33
+ },
34
+ {
35
+ path: `${SYSIDE_PROVIDER_ID}.diagnose`,
36
+ type: 'enum',
37
+ values: DIAGNOSE_SCOPES,
38
+ description: 'Validation scope. Defaults to all.',
39
+ },
40
+ ];
41
+ function settings(context) {
42
+ return providerSettings(context.config, SYSIDE_PROVIDER_ID) ?? {};
43
+ }
44
+ function command(context) {
45
+ return resolveExecutable(settings(context).executable, SYSIDE_PROVIDER_ID, context.projectDir);
46
+ }
47
+ export function buildSysideInvocation(context) {
48
+ const tool = settings(context);
49
+ const args = ['check', '--colour', 'no', '--diagnose', tool.diagnose ?? 'all'];
50
+ if (tool.configFile)
51
+ args.push('--config', resolveProjectPath(tool.configFile, context.projectDir));
52
+ if (tool.warningsAsErrors ?? true)
53
+ args.push('--warnings-as-errors');
54
+ // Every resolvable library root is offered as an include path. Which of
55
+ // them the model actually uses is decided by the project's imports, not by
56
+ // this list — an include path a file never imports contributes nothing.
57
+ for (const includeDir of [...new Set(context.includeDirs ?? [])])
58
+ args.push('--include', includeDir);
59
+ // `syside check` takes paths, so an explicit source list is passed through
60
+ // as the paths rather than approximated by the directory that contains
61
+ // them. A caller that named its files gets exactly those checked — which is
62
+ // what makes a conformance count comparable across providers.
63
+ if (context.files && context.files.length > 0)
64
+ args.push(...[...context.files].sort());
65
+ else
66
+ args.push(context.projectDir);
67
+ return { command: command(context), args, provider: SYSIDE_PROVIDER_ID };
68
+ }
69
+ /**
70
+ * `syside --version` prints `syside 0.10.2 <commit>`; the commit is noise for a
71
+ * probe listing. Reduce to the version number when the shape is recognisable,
72
+ * and otherwise report whatever it said rather than nothing.
73
+ */
74
+ export function normalizeSysideVersion(raw) {
75
+ if (!raw)
76
+ return undefined;
77
+ const match = /\b(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)\b/.exec(raw);
78
+ return match ? match[1] : raw;
79
+ }
80
+ /**
81
+ * Asking the tool its version is a second process spawn, and a validation run
82
+ * already pays for one. Cache per resolved command for the life of the process.
83
+ */
84
+ const versionCache = new Map();
85
+ function cachedVersion(command) {
86
+ if (!versionCache.has(command)) {
87
+ versionCache.set(command, normalizeSysideVersion(probeVersion(command)));
88
+ }
89
+ return versionCache.get(command);
90
+ }
91
+ /**
92
+ * Parse Syside's diagnostic lines.
93
+ *
94
+ * /abs/path/file.sysml:3:14: error (reference-error): No Type named 'X' found.
95
+ * 3 | part w : X;
96
+ * | ^^^^
97
+ *
98
+ * The code in parentheses is one of the 151 published rule codes and is carried
99
+ * through verbatim: suppression and configuration are by code, never by
100
+ * matching message text, and a project's suppressions have to survive both a
101
+ * Syside upgrade and an eventual engine swap.
102
+ *
103
+ * The caret line gives the span's width, so an end position is recoverable and
104
+ * worth keeping — the canvas badges a range, not a point.
105
+ */
106
+ const DIAGNOSTIC_LINE = /^(?<file>.+?):(?<line>\d+):(?<column>\d+):\s+(?<severity>error|warning|info|note|help)(?:\s+\((?<code>[^)]+)\))?:\s+(?<message>.*)$/;
107
+ const CARET_LINE = /^\s*\|\s*(?<carets>\^+)/;
108
+ function toSeverity(raw) {
109
+ switch (raw) {
110
+ case 'error': return 'error';
111
+ case 'warning': return 'warning';
112
+ default: return 'info';
113
+ }
114
+ }
115
+ export function parseSysideDiagnostics(output, version) {
116
+ const diagnostics = [];
117
+ const lines = output.split('\n');
118
+ for (let i = 0; i < lines.length; i += 1) {
119
+ const match = DIAGNOSTIC_LINE.exec(lines[i]);
120
+ if (!match?.groups)
121
+ continue;
122
+ const { file, line, column, severity, code, message } = match.groups;
123
+ const start = { line: Number(line), column: Number(column) };
124
+ // The snippet under the message carries the span width. Look no further
125
+ // than the next two lines so a following diagnostic is never absorbed.
126
+ let end;
127
+ for (let j = i + 1; j <= Math.min(i + 2, lines.length - 1); j += 1) {
128
+ if (DIAGNOSTIC_LINE.test(lines[j]))
129
+ break;
130
+ const caret = CARET_LINE.exec(lines[j]);
131
+ if (caret?.groups) {
132
+ end = { line: start.line, column: start.column + caret.groups.carets.length };
133
+ break;
134
+ }
135
+ }
136
+ diagnostics.push({
137
+ domain: 'sysml',
138
+ provider: SYSIDE_PROVIDER_ID,
139
+ providerVersion: version,
140
+ severity: toSeverity(severity),
141
+ message,
142
+ file,
143
+ range: { start, end },
144
+ code,
145
+ });
146
+ }
147
+ return diagnostics;
148
+ }
149
+ export const sysideValidatorDescriptor = {
150
+ id: SYSIDE_PROVIDER_ID,
151
+ role: 'validator',
152
+ // No `emit-ir`: `syside 0.10.2` has no AST, semantic-model or IR export.
153
+ capabilities: ['check', 'format'],
154
+ settingsSchema: SETTINGS_SCHEMA,
155
+ probe(context) {
156
+ const executable = whichExecutable(command(context));
157
+ if (!executable) {
158
+ return {
159
+ available: false,
160
+ transport: 'process',
161
+ detail: `"${command(context)}" was not found on PATH.`,
162
+ };
163
+ }
164
+ return {
165
+ available: true,
166
+ transport: 'process',
167
+ executable,
168
+ version: cachedVersion(executable),
169
+ };
170
+ },
171
+ create(context) {
172
+ return {
173
+ id: SYSIDE_PROVIDER_ID,
174
+ role: 'validator',
175
+ transport: 'process',
176
+ invocation: () => buildSysideInvocation(context),
177
+ async run() {
178
+ const invocation = buildSysideInvocation(context);
179
+ const result = captureToolInvocation(invocation, context.projectDir);
180
+ const version = cachedVersion(invocation.command);
181
+ const diagnostics = parseSysideDiagnostics(`${result.stdout}\n${result.stderr}`, version);
182
+ // A non-zero exit that parsed into nothing is a refusal we do
183
+ // not understand — a licence check, an unreadable path. Report
184
+ // it rather than record a rejection with no stated reason.
185
+ if (result.status !== 0 && diagnostics.length === 0) {
186
+ const detail = `${result.stderr}\n${result.stdout}`.trim();
187
+ diagnostics.push({
188
+ domain: 'sysml',
189
+ provider: SYSIDE_PROVIDER_ID,
190
+ providerVersion: version,
191
+ severity: 'error',
192
+ message: `${SYSIDE_PROVIDER_ID} exited with status ${result.status ?? 'unknown'} `
193
+ + `and reported no diagnostics.${detail ? ` Output: ${detail}` : ''}`,
194
+ });
195
+ }
196
+ return {
197
+ provider: SYSIDE_PROVIDER_ID,
198
+ providerVersion: version,
199
+ transport: 'process',
200
+ accepted: result.status === 0,
201
+ diagnostics,
202
+ exitCode: result.status ?? undefined,
203
+ };
204
+ },
205
+ };
206
+ },
207
+ };
208
+ //# sourceMappingURL=syside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syside.js","sourceRoot":"","sources":["../../../src/toolchain/providers/syside.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import type { BuilderRegistries } from '../model/builder.js';
2
+ import type { MEMOConfig } from '../model/config.js';
3
+ import type { Diagnostic } from './diagnostic.js';
4
+ import type { MemoIr } from './protocol.js';
5
+ /**
6
+ * What question a provider answers.
7
+ *
8
+ * validator "Is this valid SysML/KerML?"
9
+ * lowering "What can MEMO ingest from this revision?"
10
+ * package "How is this project packed and published?"
11
+ *
12
+ * One provider per role per revision. Two roles may be filled by the same tool.
13
+ * Running two validators, or two lowerers, is never a thing MEMO does.
14
+ */
15
+ export type ProviderRole = 'validator' | 'lowering' | 'package';
16
+ export declare const PROVIDER_ROLES: readonly ProviderRole[];
17
+ /**
18
+ * What a provider can actually do.
19
+ *
20
+ * `check` and `parse-only` are deliberately distinct: a tool that accepts
21
+ * `part w : NoSuchType;` is a syntax gate, not a validator, and it has to say
22
+ * so rather than be registered on the strength of its README.
23
+ */
24
+ export type Capability = 'check' | 'parse-only' | 'emit-ir' | 'format' | 'pack' | 'lower';
25
+ /** How a provider is reached. Callers branch on this, never on an ID. */
26
+ export type Transport = 'in-process' | 'process';
27
+ export interface ToolInvocation {
28
+ command: string;
29
+ args: string[];
30
+ provider: string;
31
+ }
32
+ /** Result of asking whether a provider can run here, without running it. */
33
+ export interface Availability {
34
+ available: boolean;
35
+ transport: Transport;
36
+ /** Absolute path of the resolved executable, for `process` transports. */
37
+ executable?: string;
38
+ /** Whatever the tool printed for `--version`, trimmed. */
39
+ version?: string;
40
+ /** Why it is unavailable, when it is. */
41
+ detail?: string;
42
+ }
43
+ /** Everything a provider needs to build and run one invocation. */
44
+ export interface ProviderContext {
45
+ config: MEMOConfig;
46
+ projectDir: string;
47
+ /** Resolved library roots offered to the tool as include paths. */
48
+ includeDirs?: string[];
49
+ /**
50
+ * The exact sources to analyse, instead of the directory's own discovery.
51
+ *
52
+ * Not an optimisation. A provider discovers a *project*, and a conformance
53
+ * corpus is not one: its Kernel libraries are `.kerml`, which no project
54
+ * walker collects, and a run that quietly analysed none of them would
55
+ * report a clean pass on files it never opened. Every adapter must honour
56
+ * it or say what it did instead — silently widening the set back to the
57
+ * directory is the failure this field exists to prevent.
58
+ */
59
+ files?: readonly string[];
60
+ /** Destination artifact, for the `package` role. */
61
+ outputPath?: string;
62
+ /**
63
+ * Ontology registries the caller has already loaded.
64
+ *
65
+ * An offer, not an input: an in-process provider may use them instead of
66
+ * loading the same closure a second time, and a process provider ignores
67
+ * them and loads its own. Either way the value is the project's, so which
68
+ * one ran is not observable in the result.
69
+ */
70
+ registries?: BuilderRegistries;
71
+ }
72
+ export interface ProviderRunResult {
73
+ provider: string;
74
+ providerVersion?: string;
75
+ transport: Transport;
76
+ /**
77
+ * True when the provider itself accepted the input.
78
+ *
79
+ * For an `in-process` provider this says only "the external step raised
80
+ * nothing" — the caller still does the in-process work and reports on it.
81
+ */
82
+ accepted: boolean;
83
+ diagnostics: Diagnostic[];
84
+ /** Process exit status, when there was a process. */
85
+ exitCode?: number;
86
+ }
87
+ /**
88
+ * What the lowering role returns beyond diagnostics: the IR. This is the one
89
+ * role whose output is not just complaints.
90
+ *
91
+ * It used to be Langium documents, which is a shape only an in-process provider
92
+ * can return — an AST does not cross a pipe. Making it IR is what turned the
93
+ * lowering contract into something a separate process can honour, and therefore
94
+ * into something a third party could implement.
95
+ */
96
+ export interface LoweringRunResult extends ProviderRunResult {
97
+ ir: MemoIr;
98
+ }
99
+ /**
100
+ * A provider instance, created by its descriptor's factory.
101
+ *
102
+ * One verb — `run` — in every role. `R` differs only because lowering has to
103
+ * hand back documents; validator and packaging report diagnostics and nothing
104
+ * else.
105
+ */
106
+ export interface Provider<R extends ProviderRunResult = ProviderRunResult> {
107
+ readonly id: string;
108
+ readonly role: ProviderRole;
109
+ readonly transport: Transport;
110
+ /** The command line this provider would run, or undefined when in-process. */
111
+ invocation(): ToolInvocation | undefined;
112
+ run(): Promise<R>;
113
+ }
114
+ export type ValidatorProvider = Provider<ProviderRunResult>;
115
+ export type LoweringProvider = Provider<LoweringRunResult>;
116
+ export type PackageProvider = Provider<ProviderRunResult>;
117
+ /**
118
+ * One configurable leaf under `toolchain.*`.
119
+ *
120
+ * Adapters contribute their own leaves, so `--toolchain.syside.executable`
121
+ * exists because the syside adapter says so, not because the CLI knows about
122
+ * syside. The CLI and `memo config effective` both read this.
123
+ */
124
+ export interface ToolchainSchemaLeaf {
125
+ /** Dotted path under `toolchain`, e.g. `validator` or `syside.executable`. */
126
+ path: string;
127
+ type: 'string' | 'boolean' | 'enum';
128
+ /** Legal values for `enum`, or for a `string` leaf with a known roster. */
129
+ values?: readonly string[];
130
+ description: string;
131
+ /** Provider that owns this leaf; absent for role-selection leaves. */
132
+ provider?: string;
133
+ /** Present on leaves kept only for backwards compatibility. */
134
+ deprecated?: string;
135
+ }
136
+ export interface ProviderDescriptor<R extends ProviderRunResult = ProviderRunResult> {
137
+ /** Plain string. Never widened into a union type anywhere. */
138
+ id: string;
139
+ role: ProviderRole;
140
+ capabilities: readonly Capability[];
141
+ /**
142
+ * Selected for this role when the project configures nothing.
143
+ *
144
+ * At most one descriptor per role may claim it. This is how `internal`
145
+ * stays the default without core code naming it.
146
+ */
147
+ isDefault?: boolean;
148
+ /** Config leaves this provider understands, relative to `toolchain`. */
149
+ settingsSchema?: readonly ToolchainSchemaLeaf[];
150
+ probe(context: ProviderContext): Availability;
151
+ create(context: ProviderContext): Provider<R>;
152
+ }
153
+ export type ValidatorDescriptor = ProviderDescriptor<ProviderRunResult>;
154
+ export type LoweringDescriptor = ProviderDescriptor<LoweringRunResult>;
155
+ export type PackageDescriptor = ProviderDescriptor<ProviderRunResult>;
156
+ export declare class MissingToolError extends Error {
157
+ readonly provider: string;
158
+ readonly command: string;
159
+ constructor(provider: string, command: string, detail: string);
160
+ }
161
+ export declare class UnknownProviderError extends Error {
162
+ constructor(role: ProviderRole, id: string, registered: readonly string[]);
163
+ }
164
+ export declare class ProviderRegistry {
165
+ private readonly byRole;
166
+ register(descriptor: ProviderDescriptor<any>): this;
167
+ descriptors(role: ProviderRole): ProviderDescriptor<any>[];
168
+ /** Every descriptor, in registration order, across all roles. */
169
+ all(): ProviderDescriptor<any>[];
170
+ ids(role: ProviderRole): string[];
171
+ /** Distinct provider IDs across every role. */
172
+ allIds(): string[];
173
+ /**
174
+ * The ID used when the project selects nothing for this role.
175
+ *
176
+ * Comes from whichever adapter declared `isDefault`, so core code never
177
+ * writes a provider name.
178
+ */
179
+ defaultId(role: ProviderRole): string | undefined;
180
+ descriptor(role: ProviderRole, id: string): ProviderDescriptor<any>;
181
+ has(role: ProviderRole, id: string): boolean;
182
+ resolveValidator(id: string, context: ProviderContext): ValidatorProvider;
183
+ resolveLowering(id: string, context: ProviderContext): LoweringProvider;
184
+ resolvePackager(id: string, context: ProviderContext): PackageProvider;
185
+ /** Every configurable leaf, role selection first, then per-provider settings. */
186
+ schema(): ToolchainSchemaLeaf[];
187
+ }
188
+ /** Settings key naming each role. Roles are MEMO's own vocabulary, not a tool's. */
189
+ export declare const ROLE_SETTING: Record<ProviderRole, string>;
190
+ /** Kept readable by every command that reports the deprecation. */
191
+ export declare const DEPRECATED_COMPILER_SETTING = "compiler";
192
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/toolchain/registry.ts"],"names":[],"mappings":"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"}