@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,251 @@
1
+ // ─── SysML well-formedness constraints (Track B B4) ──────────────────────────
2
+ //
3
+ // The native reimplementation of the language's own well-formedness rules, as
4
+ // distinct from MEMO's methodology rules. Three commitments shape it, and all
5
+ // three come from the plan rather than from taste:
6
+ //
7
+ // 1. **Syside's codes, verbatim** (§5.1.2). `syside rule list` publishes 151
8
+ // stable kebab-case codes with descriptions. A project that suppresses
9
+ // `association-end-types` today must have that suppression keep working
10
+ // after the engine swap, which it only can if the code string is the same
11
+ // string. No parallel MEMO numbering is invented.
12
+ // 2. **A specification clause per rule.** A constraint whose justification is
13
+ // "Syside checks this" is not reviewable. Each carries the KerML/SysML
14
+ // clause it implements, so a reader can check the rule against the source
15
+ // of truth rather than against another tool.
16
+ // 3. **Scored, not claimed.** `memo conformance rules` reports every one of
17
+ // the 151 codes as implemented, not-yet, or out-of-scope-with-a-reason.
18
+ // Coverage is a number that can only go up by writing a rule.
19
+ //
20
+ // **Where this sits relative to the rest of validation.** MEMO's methodology
21
+ // rules live in the ontology and are evaluated by `validator/rule-engine.ts`;
22
+ // they answer "does this model follow MEMO's method?". These answer "is this
23
+ // well-formed SysML?", which is the `sysml` diagnostic domain (§1), and they
24
+ // are engine code by necessity — the language's rules are not MEMO's content to
25
+ // declare. That is not a hole in the ontology-drives rule; it is the boundary
26
+ // of it.
27
+ //
28
+ // **What limits coverage today, stated once.** Most of the 151 are predicates
29
+ // over *resolved* semantics — inherited features, effective types, imported
30
+ // namespaces. MEMO has no linker and no resolution core yet (B3, B5), so a rule
31
+ // needing one cannot be written honestly, only faked. Those are classified
32
+ // `blocked` with the reason, and the number of them is the real measure of how
33
+ // much B3 and B5 gate B4.
34
+ // ─────────────────────────────────────────────────────────────────────────────
35
+ import { SYSIDE_RULES, SYSIDE_VERSION } from '../conformance/generated/syside-rules.js';
36
+ import { activityNodeType, isControlNode } from '../model/activity-notation.js';
37
+ export { SYSIDE_RULES, SYSIDE_VERSION };
38
+ // ─── Implemented constraints ─────────────────────────────────────────────────
39
+ //
40
+ // Every one of these is a predicate over *declared* structure, which is the
41
+ // whole set that can be written honestly before the resolution core exists.
42
+ // They run over the canonical IR rather than over MEMO's projection, because
43
+ // the IR conserves every declaration — imports, duplicates, unmapped members —
44
+ // and the projection by design does not.
45
+ /** Namespace path of a declaration: its identity path minus the last segment. */
46
+ function namespaceOf(identityId) {
47
+ const hash = identityId.indexOf('#');
48
+ const colon = identityId.lastIndexOf(':');
49
+ const path = identityId.slice(hash + 1, colon);
50
+ const slash = path.lastIndexOf('/');
51
+ return `${identityId.slice(0, hash)}#${slash < 0 ? '' : path.slice(0, slash)}`;
52
+ }
53
+ /** True for a declaration sitting directly in a file's root namespace. */
54
+ function isTopLevel(identityId) {
55
+ const hash = identityId.indexOf('#');
56
+ const colon = identityId.lastIndexOf(':');
57
+ return !identityId.slice(hash + 1, colon).includes('/');
58
+ }
59
+ function declarations(model) {
60
+ return model.sysmlIr?.elements ?? [];
61
+ }
62
+ export const IMPLEMENTED_CONSTRAINTS = [
63
+ {
64
+ code: 'import-explicit-visibility',
65
+ clause: 'KerML 8.2.3.5 — an Import declares its visibility',
66
+ appliesTo: 'Import',
67
+ check(model) {
68
+ const violations = [];
69
+ for (const declaration of declarations(model)) {
70
+ if (declaration.identity.metaclass !== 'ImportDeclaration')
71
+ continue;
72
+ if (declaration.standardProperties.visibility !== undefined)
73
+ continue;
74
+ violations.push({
75
+ code: 'import-explicit-visibility',
76
+ message: `Import of "${String(declaration.standardProperties.path ?? '?')}" has no explicit visibility; declare it \`private\` or \`public\`.`,
77
+ elementId: declaration.identity.id,
78
+ file: declaration.source.file,
79
+ });
80
+ }
81
+ return violations;
82
+ },
83
+ },
84
+ {
85
+ code: 'import-top-level-visibility',
86
+ clause: 'KerML 8.2.3.5 — a root-namespace Import is private',
87
+ appliesTo: 'Import',
88
+ check(model) {
89
+ const violations = [];
90
+ for (const declaration of declarations(model)) {
91
+ if (declaration.identity.metaclass !== 'ImportDeclaration')
92
+ continue;
93
+ if (!isTopLevel(declaration.identity.id))
94
+ continue;
95
+ if (declaration.standardProperties.visibility === 'private')
96
+ continue;
97
+ violations.push({
98
+ code: 'import-top-level-visibility',
99
+ message: 'An import at the root of a file is private; it cannot re-export into the global namespace.',
100
+ elementId: declaration.identity.id,
101
+ file: declaration.source.file,
102
+ });
103
+ }
104
+ return violations;
105
+ },
106
+ },
107
+ {
108
+ code: 'namespace-distinguishability',
109
+ clause: 'KerML 8.2.3.3 — members of a Namespace are distinguishable by name',
110
+ appliesTo: 'Namespace',
111
+ check(model) {
112
+ const seen = new Map();
113
+ const violations = [];
114
+ for (const declaration of declarations(model)) {
115
+ const name = declaration.standardProperties.name;
116
+ if (typeof name !== 'string' || !name)
117
+ continue;
118
+ const key = `${namespaceOf(declaration.identity.id)}::${name}`;
119
+ const first = seen.get(key);
120
+ if (first === undefined) {
121
+ seen.set(key, declaration.identity.id);
122
+ continue;
123
+ }
124
+ violations.push({
125
+ code: 'namespace-distinguishability',
126
+ message: `"${name}" is declared more than once in this namespace; the first is ${first}.`,
127
+ elementId: declaration.identity.id,
128
+ file: declaration.source.file,
129
+ });
130
+ }
131
+ return violations;
132
+ },
133
+ },
134
+ {
135
+ code: 'global-namespace-distinguishability',
136
+ clause: 'KerML 8.2.3.3 — root-namespace members are globally distinguishable',
137
+ appliesTo: 'Namespace',
138
+ // The IR records declarations, and a package is a namespace it recurses
139
+ // *into* rather than an element it records — so two files each opening
140
+ // `package Shared` are invisible here, which is the commonest form of
141
+ // this collision. Closing it means recording package declarations in
142
+ // the IR, which is an ingestion change, not a rule change.
143
+ limitation: 'Sees root-level members other than packages; two files declaring the same top-level package are not caught.',
144
+ check(model) {
145
+ const seen = new Map();
146
+ const violations = [];
147
+ for (const declaration of declarations(model)) {
148
+ const name = declaration.standardProperties.name;
149
+ if (typeof name !== 'string' || !name || !isTopLevel(declaration.identity.id))
150
+ continue;
151
+ // Across files, not within one: the global namespace is the
152
+ // project's, so two files declaring the same root-level name
153
+ // collide even though neither file collides with itself.
154
+ const first = seen.get(name);
155
+ if (first === undefined) {
156
+ seen.set(name, declaration.identity.id);
157
+ continue;
158
+ }
159
+ violations.push({
160
+ code: 'global-namespace-distinguishability',
161
+ message: `"${name}" is declared at the root of more than one file; the first is ${first}.`,
162
+ elementId: declaration.identity.id,
163
+ file: declaration.source.file,
164
+ });
165
+ }
166
+ return violations;
167
+ },
168
+ },
169
+ {
170
+ code: 'control-node-owning-type',
171
+ clause: 'SysML 7.12.4.4 — a ControlNode is owned by an ActionDefinition or ActionUsage',
172
+ appliesTo: 'ControlNode',
173
+ check(model) {
174
+ const violations = [];
175
+ for (const element of Object.values(model.elements)) {
176
+ // Classification comes from the notation module, which resolves
177
+ // it against the generated metamodel — so this rule covers every
178
+ // present and future ControlNode subtype without naming any.
179
+ if (!isControlNode(element, model.registries))
180
+ continue;
181
+ const owner = element.parentAction ? model.elements[element.parentAction] : undefined;
182
+ if (owner && activityNodeType(owner, model.registries) !== undefined)
183
+ continue;
184
+ violations.push({
185
+ code: 'control-node-owning-type',
186
+ message: `Control node "${element.id}" is not owned by an action.`,
187
+ elementId: element.id,
188
+ file: element.file,
189
+ });
190
+ }
191
+ return violations;
192
+ },
193
+ },
194
+ ];
195
+ // ─── Codes deliberately not implemented here ────────────────────────────────
196
+ /**
197
+ * The reasons, keyed by prefix rather than enumerated one by one.
198
+ *
199
+ * Most of the 151 fall into a handful of buckets, and a bucket with a reason is
200
+ * more honest than 147 individual "not yet" entries that all mean the same
201
+ * thing. `classifyConstraints` applies these to whatever is not implemented.
202
+ */
203
+ export const UNIMPLEMENTED_REASONS = [
204
+ {
205
+ match: /specialization|subsetting|redefinition|conjugation|-types?$|feature-typing|inherit/,
206
+ reason: 'blocked',
207
+ detail: 'Needs resolved types and inherited features — the B3 resolution core.',
208
+ },
209
+ {
210
+ match: /import|namespace|qualified|resolve|visibility/,
211
+ reason: 'blocked',
212
+ detail: 'Needs name resolution across a workspace index — B5.',
213
+ },
214
+ {
215
+ match: /expression|evaluat|operator|literal|argument|parameter/,
216
+ reason: 'blocked',
217
+ detail: 'Needs model-level expression evaluation — B3, and `Expression::evaluate` is unsized.',
218
+ },
219
+ {
220
+ match: /.*/,
221
+ reason: 'not-yet',
222
+ detail: 'Implementable on the current model; not written yet.',
223
+ },
224
+ ];
225
+ /** Score the implemented set against the published checklist. */
226
+ export function classifyConstraints(implemented = IMPLEMENTED_CONSTRAINTS, published = SYSIDE_RULES) {
227
+ const done = new Map(implemented.map(constraint => [constraint.code, constraint]));
228
+ const publishedCodes = new Set(published.map(rule => rule.code));
229
+ const unimplemented = [];
230
+ const byReason = { blocked: 0, 'out-of-scope': 0, 'not-yet': 0 };
231
+ for (const rule of published) {
232
+ if (done.has(rule.code))
233
+ continue;
234
+ const bucket = UNIMPLEMENTED_REASONS.find(candidate => candidate.match.test(rule.code));
235
+ unimplemented.push({ code: rule.code, reason: bucket.reason, detail: bucket.detail });
236
+ byReason[bucket.reason] += 1;
237
+ }
238
+ return {
239
+ sysideVersion: SYSIDE_VERSION,
240
+ total: published.length,
241
+ implemented: [...done.values()].filter(constraint => publishedCodes.has(constraint.code)),
242
+ unimplemented,
243
+ unpublished: [...done.keys()].filter(code => !publishedCodes.has(code)).sort(),
244
+ byReason,
245
+ };
246
+ }
247
+ /** Evaluate every implemented constraint against one model. */
248
+ export function checkSysmlConstraints(model, constraints = IMPLEMENTED_CONSTRAINTS) {
249
+ return constraints.flatMap(constraint => constraint.check(model));
250
+ }
251
+ //# sourceMappingURL=sysml-constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sysml-constraints.js","sourceRoot":"","sources":["../../src/validator/sysml-constraints.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { SemanticElementProvenance } from '../model/source-provenance.js';
1
2
  /** A single rule violation */
2
3
  export interface Violation {
3
4
  /** Closure rule id, e.g. "CR-MED-001" */
@@ -14,6 +15,38 @@ export interface Violation {
14
15
  elementName: string;
15
16
  /** CoSMA layer */
16
17
  layer: string;
18
+ /** The declaration/classifier provenance of the violating element. */
19
+ provenance?: SemanticElementProvenance;
20
+ /**
21
+ * Where the rule that produced this violation came from, and what was done
22
+ * to it. Section 10.4: a violation names the active rule, the rule it
23
+ * replaced if any, the policy that changed it, the effective severity, and
24
+ * the rationale and approval behind the tailoring. A tailored rule that
25
+ * reports violations without saying it was tailored is not auditable.
26
+ */
27
+ ruleProvenance?: ViolationRuleProvenance;
28
+ }
29
+ /** Rule-side provenance carried on every violation (section 10.4). */
30
+ export interface ViolationRuleProvenance {
31
+ /** Qualified name of the active rule's `constraint def`. */
32
+ activeRuleType: string;
33
+ /** Set when the active rule replaced a different one. */
34
+ baseRuleId?: string;
35
+ /** Severity the ontology authored, before any override. */
36
+ declaredSeverity: 'error' | 'warning' | 'info';
37
+ /** How far the rule may be tailored. */
38
+ tailoring: 'invariant' | 'assurance' | 'methodology';
39
+ /** Which methodology or binding changed it, in application order. */
40
+ policyChain: Array<{
41
+ source: string;
42
+ level: 'methodology' | 'project';
43
+ disposition: 'enabled' | 'disabled' | 'replaced';
44
+ }>;
45
+ rationaleText?: string;
46
+ authority?: string;
47
+ approvalReference?: string;
48
+ /** File declaring the rule. */
49
+ sourceFile?: string;
17
50
  }
18
51
  /** Validation result for the entire model */
19
52
  export interface ValidationResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"AAEA,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACtB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC7B,2BAA2B;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAC9B,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACtB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACpC,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,gBAAgB,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,wCAAwC;IACxC,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;IACrD,qEAAqE;IACrE,WAAW,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;QACjC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;KACpD,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC7B,2BAA2B;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAC9B,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD"}
@@ -0,0 +1,2 @@
1
+ export declare function memoVersion(): string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAgBA,wBAAgB,WAAW,IAAI,MAAM,CASpC"}
@@ -0,0 +1,26 @@
1
+ // ─── This build's version ────────────────────────────────────────────────────
2
+ //
3
+ // Read from the package manifest rather than restated as a literal, so it
4
+ // cannot drift from what `scripts/sync-version.mjs` writes.
5
+ //
6
+ // It exists because a conformance result has to say which MEMO produced it —
7
+ // the same reason the result carries the Release commit. A number with no
8
+ // provenance on either side is not comparable to the next one.
9
+ // ─────────────────────────────────────────────────────────────────────────────
10
+ import { readFileSync } from 'node:fs';
11
+ import { dirname, resolve } from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ let cached;
14
+ export function memoVersion() {
15
+ if (cached)
16
+ return cached;
17
+ try {
18
+ const manifest = resolve(dirname(fileURLToPath(import.meta.url)), '../../../package.json');
19
+ cached = JSON.parse(readFileSync(manifest, 'utf-8')).version ?? 'unknown';
20
+ }
21
+ catch {
22
+ cached = 'unknown';
23
+ }
24
+ return cached;
25
+ }
26
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,0EAA0E;AAC1E,4DAA4D;AAC5D,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,+DAA+D;AAC/D,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,MAA0B,CAAC;AAE/B,MAAM,UAAU,WAAW;IACvB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC3F,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAA0B,CAAC,OAAO,IAAI,SAAS,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,GAAG,SAAS,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}