@memoarchitect/tools 0.6.7 → 0.7.2

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 (466) hide show
  1. package/README.md +36 -11
  2. package/package.json +19 -7
  3. package/packages/tools/lib/bin/memo.js +161 -10
  4. package/packages/tools/lib/bin/memo.js.map +1 -1
  5. package/packages/tools/lib/browser/index.d.ts +1 -1
  6. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  7. package/packages/tools/lib/browser/index.js +1 -1
  8. package/packages/tools/lib/browser/index.js.map +1 -1
  9. package/packages/tools/lib/commands/ask.js +1 -1
  10. package/packages/tools/lib/commands/ask.js.map +1 -1
  11. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  12. package/packages/tools/lib/commands/check.js +3 -9
  13. package/packages/tools/lib/commands/check.js.map +1 -1
  14. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  15. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  16. package/packages/tools/lib/commands/conformance.js +212 -0
  17. package/packages/tools/lib/commands/conformance.js.map +1 -0
  18. package/packages/tools/lib/commands/convert.d.ts +12 -0
  19. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  20. package/packages/tools/lib/commands/convert.js +103 -0
  21. package/packages/tools/lib/commands/convert.js.map +1 -0
  22. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  23. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  24. package/packages/tools/lib/commands/create-package.js.map +1 -1
  25. package/packages/tools/lib/commands/dev.d.ts +13 -0
  26. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  27. package/packages/tools/lib/commands/dev.js +208 -74
  28. package/packages/tools/lib/commands/dev.js.map +1 -1
  29. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  30. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  31. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  32. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  33. package/packages/tools/lib/commands/dhf.js +1 -1
  34. package/packages/tools/lib/commands/dhf.js.map +1 -1
  35. package/packages/tools/lib/commands/element.d.ts +34 -0
  36. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  37. package/packages/tools/lib/commands/element.js +174 -0
  38. package/packages/tools/lib/commands/element.js.map +1 -0
  39. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  40. package/packages/tools/lib/commands/export.js +39 -40
  41. package/packages/tools/lib/commands/export.js.map +1 -1
  42. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  43. package/packages/tools/lib/commands/generate.js +10 -7
  44. package/packages/tools/lib/commands/generate.js.map +1 -1
  45. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  46. package/packages/tools/lib/commands/import.js +25 -12
  47. package/packages/tools/lib/commands/import.js.map +1 -1
  48. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  49. package/packages/tools/lib/commands/init.js +34 -14
  50. package/packages/tools/lib/commands/init.js.map +1 -1
  51. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  52. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  53. package/packages/tools/lib/commands/inspect.js +56 -0
  54. package/packages/tools/lib/commands/inspect.js.map +1 -0
  55. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  56. package/packages/tools/lib/commands/lock.js +7 -2
  57. package/packages/tools/lib/commands/lock.js.map +1 -1
  58. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  59. package/packages/tools/lib/commands/ontology.js +69 -116
  60. package/packages/tools/lib/commands/ontology.js.map +1 -1
  61. package/packages/tools/lib/commands/pack.d.ts +1 -1
  62. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/pack.js +20 -78
  64. package/packages/tools/lib/commands/pack.js.map +1 -1
  65. package/packages/tools/lib/commands/package.d.ts +10 -0
  66. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  67. package/packages/tools/lib/commands/package.js +113 -0
  68. package/packages/tools/lib/commands/package.js.map +1 -0
  69. package/packages/tools/lib/commands/plugin.js +1 -1
  70. package/packages/tools/lib/commands/plugin.js.map +1 -1
  71. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  72. package/packages/tools/lib/commands/rules.js +120 -30
  73. package/packages/tools/lib/commands/rules.js.map +1 -1
  74. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  75. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  76. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  77. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  78. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  79. package/packages/tools/lib/commands/toolchain.js +64 -0
  80. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  81. package/packages/tools/lib/commands/validate.d.ts +1 -1
  82. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  83. package/packages/tools/lib/commands/validate.js +183 -56
  84. package/packages/tools/lib/commands/validate.js.map +1 -1
  85. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  86. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  87. package/packages/tools/lib/completeness/tracker.js +16 -21
  88. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  89. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  90. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  91. package/packages/tools/lib/conformance/baseline.js +170 -0
  92. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  93. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  94. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  95. package/packages/tools/lib/conformance/bnf.js +166 -0
  96. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  97. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  98. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  99. package/packages/tools/lib/conformance/corpus.js +190 -0
  100. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  101. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  102. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  103. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  104. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  105. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  106. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  107. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  108. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  109. package/packages/tools/lib/conformance/index.d.ts +7 -0
  110. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  111. package/packages/tools/lib/conformance/index.js +19 -0
  112. package/packages/tools/lib/conformance/index.js.map +1 -0
  113. package/packages/tools/lib/conformance/run.d.ts +117 -0
  114. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  115. package/packages/tools/lib/conformance/run.js +0 -0
  116. package/packages/tools/lib/conformance/run.js.map +1 -0
  117. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  118. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  119. package/packages/tools/lib/conformance/xmi.js +148 -0
  120. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  121. package/packages/tools/lib/dhf/template-resolver.js +1 -1
  122. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  123. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  124. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  125. package/packages/tools/lib/import/column-mapper.js +3 -3
  126. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  127. package/packages/tools/lib/index.d.ts +20 -3
  128. package/packages/tools/lib/index.d.ts.map +1 -1
  129. package/packages/tools/lib/index.js +19 -2
  130. package/packages/tools/lib/index.js.map +1 -1
  131. package/packages/tools/lib/language/generated/ast.d.ts +196 -51
  132. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  133. package/packages/tools/lib/language/generated/ast.js +136 -15
  134. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  135. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  136. package/packages/tools/lib/language/generated/grammar.js +867 -295
  137. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  138. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  139. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  140. package/packages/tools/lib/llm/chat-engine.js +15 -12
  141. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  142. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  143. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  144. package/packages/tools/lib/llm/generate-engine.js +22 -4
  145. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  146. package/packages/tools/lib/llm/index.d.ts +1 -0
  147. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  148. package/packages/tools/lib/llm/index.js +1 -0
  149. package/packages/tools/lib/llm/index.js.map +1 -1
  150. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  151. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  152. package/packages/tools/lib/llm/model-context.js +7 -13
  153. package/packages/tools/lib/llm/model-context.js.map +1 -1
  154. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  155. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  156. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  157. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  158. package/packages/tools/lib/lock.d.ts +14 -8
  159. package/packages/tools/lib/lock.d.ts.map +1 -1
  160. package/packages/tools/lib/lock.js +97 -108
  161. package/packages/tools/lib/lock.js.map +1 -1
  162. package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
  163. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  164. package/packages/tools/lib/mcp/model-loader.js +9 -5
  165. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  166. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  167. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  168. package/packages/tools/lib/mcp/tools.js +8 -9
  169. package/packages/tools/lib/mcp/tools.js.map +1 -1
  170. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  171. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  172. package/packages/tools/lib/model/activity-notation.js +208 -0
  173. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  174. package/packages/tools/lib/model/builder.d.ts +3 -0
  175. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  176. package/packages/tools/lib/model/builder.js +231 -19
  177. package/packages/tools/lib/model/builder.js.map +1 -1
  178. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  179. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  180. package/packages/tools/lib/model/config-loader.js +51 -233
  181. package/packages/tools/lib/model/config-loader.js.map +1 -1
  182. package/packages/tools/lib/model/config.d.ts +42 -213
  183. package/packages/tools/lib/model/config.d.ts.map +1 -1
  184. package/packages/tools/lib/model/config.js +11 -9
  185. package/packages/tools/lib/model/config.js.map +1 -1
  186. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  187. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  188. package/packages/tools/lib/model/effective-scope.js +133 -0
  189. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  190. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  191. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  192. package/packages/tools/lib/model/ir-identity.js +178 -0
  193. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  194. package/packages/tools/lib/model/kind-registry.d.ts +114 -1
  195. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  196. package/packages/tools/lib/model/kind-registry.js +148 -4
  197. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  198. package/packages/tools/lib/model/layer-resolver.js +1 -1
  199. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  200. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  201. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  202. package/packages/tools/lib/model/methodology-loader.js +179 -176
  203. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  204. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  205. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  206. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  207. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  208. package/packages/tools/lib/model/native-project.d.ts +130 -0
  209. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  210. package/packages/tools/lib/model/native-project.js +570 -0
  211. package/packages/tools/lib/model/native-project.js.map +1 -0
  212. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  213. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  214. package/packages/tools/lib/model/ontology-loader.js +340 -614
  215. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  216. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  217. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  218. package/packages/tools/lib/model/package-manifest.js +96 -0
  219. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  220. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  221. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  222. package/packages/tools/lib/model/parser-utils.js +89 -1
  223. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  224. package/packages/tools/lib/model/paths.d.ts +10 -4
  225. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  226. package/packages/tools/lib/model/paths.js +10 -4
  227. package/packages/tools/lib/model/paths.js.map +1 -1
  228. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  229. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  230. package/packages/tools/lib/model/project-conversion.js +946 -0
  231. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  232. package/packages/tools/lib/model/relationship-legality.d.ts +10 -0
  233. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  234. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  235. package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
  236. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  237. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  238. package/packages/tools/lib/model/semantic.d.ts +27 -0
  239. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  240. package/packages/tools/lib/model/semantic.js +3 -0
  241. package/packages/tools/lib/model/semantic.js.map +1 -1
  242. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  243. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  244. package/packages/tools/lib/model/settings-boundary.js +118 -0
  245. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  246. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  247. package/packages/tools/lib/model/short-id.js +2 -0
  248. package/packages/tools/lib/model/short-id.js.map +1 -1
  249. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  250. package/packages/tools/lib/model/source-graph.js +5 -1
  251. package/packages/tools/lib/model/source-graph.js.map +1 -1
  252. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  253. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  254. package/packages/tools/lib/model/source-provenance.js +169 -0
  255. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  256. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  257. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  258. package/packages/tools/lib/model/sysml-ir.js +105 -0
  259. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  260. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  261. package/packages/tools/lib/model/view-deriver.js +36 -6
  262. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  263. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  264. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  265. package/packages/tools/lib/model/view-kinds.js +11 -0
  266. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  267. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  268. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  269. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  270. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  271. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  272. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  273. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  274. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  275. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  276. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  277. package/packages/tools/lib/operations/authoring.js +56 -0
  278. package/packages/tools/lib/operations/authoring.js.map +1 -0
  279. package/packages/tools/lib/operations/index.d.ts +2 -0
  280. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  281. package/packages/tools/lib/operations/index.js +2 -0
  282. package/packages/tools/lib/operations/index.js.map +1 -1
  283. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  284. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  285. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  286. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  287. package/packages/tools/lib/protocol/messages.d.ts +298 -11
  288. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  289. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  290. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  291. package/packages/tools/lib/serializer/csv-io.js +11 -11
  292. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  293. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  294. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  295. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  296. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  297. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  298. package/packages/tools/lib/server/config-resolver.js +25 -44
  299. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  300. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  301. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  302. package/packages/tools/lib/server/conflict-policy.js +94 -0
  303. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  304. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  305. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  306. package/packages/tools/lib/server/dev-server.js +721 -53
  307. package/packages/tools/lib/server/dev-server.js.map +1 -1
  308. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  309. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  310. package/packages/tools/lib/server/element-writer.js +123 -0
  311. package/packages/tools/lib/server/element-writer.js.map +1 -0
  312. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  313. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  314. package/packages/tools/lib/server/file-watcher.js +17 -7
  315. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  316. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  317. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  318. package/packages/tools/lib/server/mutation-domain.js +87 -0
  319. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  320. package/packages/tools/lib/server/persistor.d.ts +63 -8
  321. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  322. package/packages/tools/lib/server/persistor.js +152 -44
  323. package/packages/tools/lib/server/persistor.js.map +1 -1
  324. package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
  325. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  326. package/packages/tools/lib/server/relationship-writer.js +98 -13
  327. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  328. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  329. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  330. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  331. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  332. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  333. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  334. package/packages/tools/lib/server/runtime-budget.js +15 -0
  335. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  336. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  337. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  338. package/packages/tools/lib/server/sysml-notation.js +87 -0
  339. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  340. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  341. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  342. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  343. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  344. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  345. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  346. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  347. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  348. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  349. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  350. package/packages/tools/lib/sysml-ir/index.js +3 -0
  351. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  352. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  353. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  354. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  355. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  356. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  357. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  358. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  359. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  360. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  361. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  362. package/packages/tools/lib/sysmlc/index.js +7 -0
  363. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  364. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  365. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  366. package/packages/tools/lib/sysmlc/server.js +168 -0
  367. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  368. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  369. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  370. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  371. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  372. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  373. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  374. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  375. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  376. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  377. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  378. package/packages/tools/lib/toolchain/effective.js +91 -0
  379. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  380. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  381. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  382. package/packages/tools/lib/toolchain/index.js +21 -0
  383. package/packages/tools/lib/toolchain/index.js.map +1 -0
  384. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  385. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  386. package/packages/tools/lib/toolchain/lowering.js +100 -0
  387. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  388. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  389. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  390. package/packages/tools/lib/toolchain/operations.js +111 -0
  391. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  392. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  393. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  394. package/packages/tools/lib/toolchain/process.js +125 -0
  395. package/packages/tools/lib/toolchain/process.js.map +1 -0
  396. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  397. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  398. package/packages/tools/lib/toolchain/protocol.js +74 -0
  399. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  400. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  401. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  402. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  403. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  404. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  405. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  406. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  407. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  408. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  409. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  410. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  411. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  412. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  413. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  414. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  415. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  416. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  417. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  418. package/packages/tools/lib/toolchain/registry.js +130 -0
  419. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  420. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  421. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  422. package/packages/tools/lib/toolchain/schema.js +112 -0
  423. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  424. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  425. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  426. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  427. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  428. package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
  429. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  430. package/packages/tools/lib/validator/architecture-validator.js +25 -1
  431. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  432. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  433. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  434. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  435. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  436. package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
  437. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  438. package/packages/tools/lib/validator/constraint-eval.js +62 -7
  439. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  440. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  441. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  442. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  443. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  444. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  445. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  446. package/packages/tools/lib/validator/rule-engine.js +56 -5
  447. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  448. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  449. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  450. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  451. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  452. package/packages/tools/lib/validator/types.d.ts +33 -0
  453. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  454. package/packages/tools/lib/version.d.ts +2 -0
  455. package/packages/tools/lib/version.d.ts.map +1 -0
  456. package/packages/tools/lib/version.js +26 -0
  457. package/packages/tools/lib/version.js.map +1 -0
  458. package/packages/tools/src/grammar/memo-sysml.langium +104 -18
  459. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  460. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  461. package/packages/tools/lib/model/dimension-filter.js +0 -57
  462. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  463. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  464. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  465. package/packages/tools/lib/model/toolchain.js +0 -92
  466. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -27,8 +27,20 @@ grammar MemoSysML
27
27
  entry Model:
28
28
  members+=NamespaceMember*;
29
29
 
30
+ // The root namespace accepts definitions, not only packages. SysML v2 permits
31
+ // members at the root of a file and SysIDE accepts `part def X;` standing alone,
32
+ // so rejecting it here was a MEMO-only restriction: valid source failed to
33
+ // parse, and the AST-based loaders then reported the file as contributing
34
+ // nothing. MEMO's own content still nests everything in packages — the
35
+ // portability gate requires that for qualified naming — but the grammar must
36
+ // not reject source the compiler of record accepts.
30
37
  NamespaceMember:
31
- PackageDeclaration | ImportDeclaration;
38
+ PackageDeclaration
39
+ | ImportDeclaration
40
+ | AliasDeclaration
41
+ | DefinitionMember
42
+ | UseCaseDeclaration
43
+ | DocComment;
32
44
 
33
45
  // ─── Package ─────────────────────────────────────────────────────────────────
34
46
 
@@ -36,11 +48,19 @@ NamespaceMember:
36
48
  // Qualified names (`::`) are for references only; deep namespaces are expressed by
37
49
  // NESTING packages (`package memo { package arch { … } }`). The model builder
38
50
  // reconstructs the full FQN from the nesting (builder.ts: parentPackage::pkg.name).
51
+ // `standard` comes from the normative `LibraryPackage` production
52
+ // (`bnf/KerML-textual-bnf.kebnf:1446`), where it is the flag that marks a
53
+ // library package as part of the standard library rather than a user one. Every
54
+ // one of the 94 vendored normative library files opens with `standard library
55
+ // package`, so without it the parser fails on line 1 of the entire corpus.
39
56
  PackageDeclaration:
40
- isLibrary?='library'? 'package' name=ID '{'
57
+ isStandard?='standard'? isLibrary?='library'? 'package' name=ID '{'
41
58
  members+=PackageMember*
42
59
  '}';
43
60
 
61
+ // Flows and successions are legal package members, not only usage-body members:
62
+ // a flow between two action usages declared side by side in a package has no
63
+ // enclosing action to sit inside. SysIDE accepts them here, so the grammar does.
44
64
  PackageMember:
45
65
  PackageDeclaration
46
66
  | AliasDeclaration
@@ -50,6 +70,8 @@ PackageMember:
50
70
  | ItemUsage
51
71
  | AttributeMember
52
72
  | UseCaseDeclaration
73
+ | FlowConnectionUsage
74
+ | SuccessionUsage
53
75
  | ConnectionUsage
54
76
  | AllocateUsage
55
77
  | MetadataApplication
@@ -224,7 +246,7 @@ UseCaseDeclaration:
224
246
  // Item usage: standalone (`item x : T { … }`), directioned port payload
225
247
  // (`in item reading : T;` / `out item command : T;`), or a bound feature value.
226
248
  ItemUsage:
227
- direction=('in' | 'out' | 'inout')? 'item' name=MemberName
249
+ direction=('in' | 'out' | 'inout')? 'item' name=MemberName preMultiplicity=Multiplicity?
228
250
  (':' type=QualifiedName multiplicity=Multiplicity?)?
229
251
  ('=' boundRef=QualifiedName)?
230
252
  ('{' body+=UsageBodyMember* '}' | ';');
@@ -251,9 +273,34 @@ InterfaceUsage:
251
273
  // ActionUsage supports both typed (action name : Type;) and composite
252
274
  // (action name { nested-actions, flows, successions }) forms.
253
275
  ActionUsage:
254
- behaviorKind=('action' | 'operator' | 'function') name=ID (':' type=QualifiedName)?
276
+ behaviorKind=('action' | 'operator' | 'function') name=ActionName (':' type=QualifiedName)?
255
277
  ('{' body+=ActionUsageBodyMember* '}' | ';');
256
278
 
279
+ // Activity actions use their own concrete forms. Keep the payload and endpoint
280
+ // references structural: they are semantic inputs for lowering, not display text.
281
+ AcceptActionUsage:
282
+ 'action' name=ActionName 'accept' payloadName=ID ':' payloadType=QualifiedName ';';
283
+
284
+ // `then` on a body member is a succession from the member before it, so it is
285
+ // captured rather than consumed — a discarded `then` leaves the node floating
286
+ // with no incoming control flow.
287
+ SendActionUsage:
288
+ followsPrevious?='then'? 'action' name=ActionName 'send' receiver=FeatureReference 'to' target=ReferenceName ';';
289
+
290
+ FeatureReference:
291
+ segments+=ID ('.' segments+=ID)*;
292
+
293
+ ActionName returns string:
294
+ ID | 'accept' | 'send' | 'terminate';
295
+
296
+ // SysML v2 terminate actions may be anonymous (`terminate;`, `then terminate;`)
297
+ // or named (`action rejected terminate;`). A name is important in diagrams
298
+ // with several distinct activity-final outcomes because it supplies the label
299
+ // and a stable identity for each final node.
300
+ TerminateUsage:
301
+ {infer TerminateUsage} followsPrevious?='then'?
302
+ (('action' name=ID)? 'terminate') ';';
303
+
257
304
  PortUsage:
258
305
  direction=('in' | 'out' | 'inout')? 'port' isConjugated?='~'? name=ID ':' type=QualifiedName
259
306
  ('{' body+=UsageBodyMember* '}' | ';');
@@ -293,7 +340,7 @@ ConnectionEnd:
293
340
  // Action defs can have in/out/inout parameters plus regular body members
294
341
 
295
342
  ActionDefBodyMember:
296
- ActionParameterMember | DefinitionBodyMember;
343
+ ActionParameterMember | TerminateUsage | ActionUsage | AcceptActionUsage | SendActionUsage | ControlNodeUsage | RequireConstraintMember | UsageBodyMember;
297
344
 
298
345
  ActionParameterMember:
299
346
  direction=('in' | 'out' | 'inout') name=ID ':' type=QualifiedName ';';
@@ -304,7 +351,7 @@ ActionParameterMember:
304
351
  // FlowConnectionUsage / SuccessionUsage / ConnectionUsage are contributed by
305
352
  // UsageBodyMember; listing them again here would make the alternatives ambiguous.
306
353
  ActionUsageBodyMember:
307
- ActionUsage | ControlNodeUsage | UsageBodyMember;
354
+ ActionParameterMember | TerminateUsage | ActionUsage | AcceptActionUsage | SendActionUsage | ControlNodeUsage | UsageBodyMember;
308
355
 
309
356
  // ─── Behavior: Control nodes (fork / join) ──────────────────────────────────
310
357
  // SysML v2 activity control nodes. A `fork` splits one incoming control flow
@@ -317,7 +364,7 @@ ActionUsageBodyMember:
317
364
  // first parallelPrep then prime;
318
365
  // first parallelPrep then selfTest;
319
366
  ControlNodeUsage:
320
- controlKind=('fork' | 'join') name=ID ';';
367
+ controlKind=('fork' | 'join' | 'decide' | 'merge') name=ID ';';
321
368
 
322
369
  // ─── Behavior: Flow connection usage ────────────────────────────────────────
323
370
  // Syntax: flow of ItemType from source.port to target.port ;
@@ -330,16 +377,19 @@ FlowEnd:
330
377
 
331
378
  // Dot-separated qualified name for flow endpoints (e.g. receive.prescription)
332
379
  DottedName returns string:
333
- ID ('.' ID)*;
380
+ DottedNameSegment ('.' DottedNameSegment)*;
381
+
382
+ DottedNameSegment returns string:
383
+ ID | 'accept' | 'send' | 'terminate';
334
384
 
335
385
  // ─── Behavior: Succession usage ─────────────────────────────────────────────
336
386
  // Syntax: first start then action1 then action2 then done ;
337
387
 
338
388
  SuccessionUsage:
339
- 'first' steps+=SuccessionStep ('then' steps+=SuccessionStep)+ ';';
389
+ 'succession'? 'first' steps+=SuccessionStep ('then' steps+=SuccessionStep)+ ';';
340
390
 
341
391
  SuccessionStep:
342
- ref=SuccessionRef;
392
+ ref=SuccessionRef ('if' guard=OrExpr)?;
343
393
 
344
394
  SuccessionRef returns string:
345
395
  'start' | 'done' | ID;
@@ -405,14 +455,32 @@ UsageBodyMember:
405
455
  AttributeMember | PartMember | PortUsage | ItemUsage | RefMember | ViewUsage | FlowConnectionUsage | SuccessionUsage | ConnectionUsage | MetadataApplication | DocComment;
406
456
 
407
457
  // ─── Attribute member ────────────────────────────────────────────────────────
408
- // Two forms:
458
+ // Three forms:
409
459
  // attribute name : Type ; (type declaration)
410
460
  // attribute redefines name = value ; (value assignment / redefinition)
461
+ // attribute redefines name { … } (structured value: nested redefinitions)
462
+ //
463
+ // The third form is how a value of an `attribute def` with several features is
464
+ // assigned — you cannot write it with `=`, because the value is not a literal.
465
+ // It is what SysIDE accepts for e.g. a RegionBounds:
466
+ //
467
+ // attribute :>> bounds { attribute :>> x = 0.1; attribute :>> width = 0.4; }
468
+
469
+ // A fourth form is a TYPED attribute carrying a default:
470
+ //
471
+ // attribute id : String = "CR-MED-040";
472
+ //
473
+ // SysIDE accepts it and MEMO rejected it, which session 1 logged as a grammar
474
+ // gap and section 18.2 deliverable 8 assigned to session 2. It stopped being
475
+ // theoretical once rules and policies started declaring typed attributes with
476
+ // defaults. SysIDE is the compiler of record, so the grammar follows it.
411
477
 
412
478
  AttributeMember:
413
479
  'attribute' redefines?=('redefines' | ':>>')? name=MemberName
414
- (':' type=QualifiedName multiplicity=Multiplicity? ('{' body+=UsageBodyMember* '}' | ';')
415
- | '=' value=AttributeValue ';');
480
+ (':' type=QualifiedName multiplicity=Multiplicity?
481
+ ('=' value=AttributeValue ';' | '{' body+=UsageBodyMember* '}' | ';')
482
+ | '=' value=AttributeValue ';'
483
+ | '{' body+=UsageBodyMember* '}');
416
484
 
417
485
  AttributeValue:
418
486
  StringValue | RealValue | IntValue | BooleanValue | SetLiteral | EnumValue;
@@ -443,19 +511,32 @@ EnumValue:
443
511
  enumRef=QualifiedName;
444
512
 
445
513
  // ─── Nested part member ──────────────────────────────────────────────────────
446
- // Three forms:
514
+ // Four forms:
447
515
  // part subsystems : Subsystem[0..*]; (typed nested part)
448
516
  // part requirement = reqSingleMode; (feature value binding to a reference)
449
517
  // part protectedAsset :> therapyAsset; (subsetting an existing element)
518
+ // part vpLogical :> viewpointDefinition = logicalArchitectureViewpoint;
519
+ // (subsetting AND supplying a value)
450
520
  // The binding forms carry the source/target ends of semantic *Link instances,
451
521
  // which the model builder projects into navigable relationships.
522
+ //
523
+ // The fourth form is how a MULTI-VALUED feature takes several values. Repeating
524
+ // `part :>> viewpointDefinition = x;` redefines the same feature each time and
525
+ // SysIDE rejects it as shadowing, so each value has to subset the feature under
526
+ // its own member name. `viewpointDefinition : Viewpoint[1..*]` is exactly that
527
+ // case: a view governed by three viewpoints needs three members.
528
+ //
529
+ // SysIDE accepts this and the MEMO grammar did not, which is the wrong way
530
+ // round — SysIDE is the compiler of record, so the grammar follows it.
531
+ // `subsetValue` holds the value; `boundRef` keeps meaning the subsetted
532
+ // feature, so every existing `:>` consumer is unaffected.
452
533
 
453
534
  PartMember:
454
535
  'part'
455
536
  (bindingOp=':>>' name=MemberName ('=' boundRef=QualifiedName)?
456
537
  | name=MemberName
457
538
  (':' type=QualifiedName multiplicity=Multiplicity?)?
458
- (bindingOp=('=' | ':>') boundRef=QualifiedName)?)
539
+ (bindingOp=('=' | ':>') boundRef=QualifiedName ('=' subsetValue=QualifiedName)?)?)
459
540
  ('{' body+=UsageBodyMember* '}' | ';');
460
541
 
461
542
  // ─── Reference member ───────────────────────────────────────────────────────
@@ -488,7 +569,7 @@ QualifiedName returns string:
488
569
  QualifiedNameSegment ('::' QualifiedNameTailSegment)*;
489
570
 
490
571
  QualifiedNameSegment returns string:
491
- ID | 'library';
572
+ ID | 'library' | 'standard';
492
573
 
493
574
  // Non-first segments may be keywords so enum literals declared via
494
575
  // EnumLiteralName (e.g. DirectionKind::in, UseErrorCategoryKind::action)
@@ -503,14 +584,19 @@ QualifiedNameTailSegment returns string:
503
584
  | 'use' | 'fork' | 'join';
504
585
 
505
586
  // Allow keywords as identifiers in member/feature contexts
587
+ // `standard` joins these for the same reason the others are here: making it a
588
+ // keyword for `standard library package` would otherwise stop it being a name,
589
+ // and MEMO's compliance ontology declares `attribute standard : String`.
506
590
  MemberName returns string:
507
591
  ID | 'requirement' | 'action' | 'item' | 'port' | 'interface' | 'connection'
508
- | 'attribute' | 'constraint' | 'view' | 'viewpoint' | 'ref' | 'part' | 'state' | 'verification';
592
+ | 'attribute' | 'constraint' | 'view' | 'viewpoint' | 'ref' | 'part' | 'state' | 'verification'
593
+ | 'standard';
509
594
 
510
595
  FeatureName returns string:
511
596
  ID | 'part' | 'requirement' | 'action' | 'item' | 'port' | 'interface'
512
597
  | 'connection' | 'flow' | 'view' | 'viewpoint' | 'attribute' | 'constraint'
513
- | 'ref' | 'allocate' | 'end' | 'enum' | 'function' | 'operator' | 'state' | 'verification';
598
+ | 'ref' | 'allocate' | 'end' | 'enum' | 'function' | 'operator' | 'state' | 'verification'
599
+ | 'standard';
514
600
 
515
601
  // ─── Hidden terminals (skipped by lexer) ─────────────────────────────────────
516
602
 
@@ -1,33 +0,0 @@
1
- import type { OntologyKindInfo } from './ontology-loader.js';
2
- /** Typed scope extracted from a MethodologyScope part instance. */
3
- export interface MethodologyScopeInfo {
4
- id: string;
5
- scopeName: string;
6
- includedArchLayers: string[];
7
- includedStandards: string[];
8
- includedArtifactKinds: string[];
9
- includedViewpointTypes: string[];
10
- excludedKinds: string[];
11
- }
12
- /** A minimal part-instance shape, matching MethodologyPart without importing it. */
13
- interface ScopePartLike {
14
- attributes: Record<string, unknown>;
15
- multiAttributes: Record<string, unknown[]>;
16
- }
17
- /** Extract typed scope info from a MethodologyScope part instance. */
18
- export declare function extractScopeInfo(part: ScopePartLike): MethodologyScopeInfo;
19
- export type DimensionKey = 'archLayer' | 'standard' | 'artifactKind' | 'viewpointType';
20
- /**
21
- * Filter ontology kinds by a methodology scope dimension.
22
- *
23
- * Returns the subset of `kinds` whose dimension value appears in the scope's
24
- * included set. If the scope is null or the included set for the dimension is
25
- * empty, all kinds pass through (methodology does not restrict).
26
- */
27
- export declare function filterKindsByDimension(kinds: OntologyKindInfo[], dimension: DimensionKey, scope: MethodologyScopeInfo | null): OntologyKindInfo[];
28
- /**
29
- * Check whether a single kind is excluded by methodology scope.
30
- */
31
- export declare function isKindExcluded(kind: OntologyKindInfo, scope: MethodologyScopeInfo | null): boolean;
32
- export {};
33
- //# sourceMappingURL=dimension-filter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dimension-filter.d.ts","sourceRoot":"","sources":["../../src/model/dimension-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,oFAAoF;AACpF,UAAU,aAAa;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CAC9C;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAa1E;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAkBvF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,gBAAgB,EAAE,EACzB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,oBAAoB,GAAG,IAAI,GACnC,gBAAgB,EAAE,CAcpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC1B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,oBAAoB,GAAG,IAAI,GACnC,OAAO,CAGT"}
@@ -1,57 +0,0 @@
1
- /** Extract typed scope info from a MethodologyScope part instance. */
2
- export function extractScopeInfo(part) {
3
- const strList = (key) => (part.multiAttributes[key] ?? [])
4
- .filter((v) => typeof v === 'string' && v !== '');
5
- return {
6
- id: String(part.attributes.id ?? ''),
7
- scopeName: String(part.attributes.scopeName ?? ''),
8
- includedArchLayers: strList('includedArchLayer'),
9
- includedStandards: strList('includedStandard'),
10
- includedArtifactKinds: strList('includedArtifactKind'),
11
- includedViewpointTypes: strList('includedViewpointType'),
12
- excludedKinds: strList('excludedKind'),
13
- };
14
- }
15
- const SCOPE_FIELD = {
16
- archLayer: 'includedArchLayers',
17
- standard: 'includedStandards',
18
- artifactKind: 'includedArtifactKinds',
19
- viewpointType: 'includedViewpointTypes',
20
- };
21
- function kindMatchesDimension(kind, dimension) {
22
- switch (dimension) {
23
- case 'archLayer': return kind.layer;
24
- case 'standard': return kind.standard;
25
- case 'artifactKind': return kind.name;
26
- case 'viewpointType': return kind.viewpoints?.[0];
27
- }
28
- }
29
- /**
30
- * Filter ontology kinds by a methodology scope dimension.
31
- *
32
- * Returns the subset of `kinds` whose dimension value appears in the scope's
33
- * included set. If the scope is null or the included set for the dimension is
34
- * empty, all kinds pass through (methodology does not restrict).
35
- */
36
- export function filterKindsByDimension(kinds, dimension, scope) {
37
- if (!scope)
38
- return kinds;
39
- const field = SCOPE_FIELD[dimension];
40
- const included = scope[field];
41
- if (included.length === 0)
42
- return kinds;
43
- const includedSet = new Set(included);
44
- return kinds.filter(kind => {
45
- const value = kindMatchesDimension(kind, dimension);
46
- return value !== undefined && includedSet.has(value);
47
- });
48
- }
49
- /**
50
- * Check whether a single kind is excluded by methodology scope.
51
- */
52
- export function isKindExcluded(kind, scope) {
53
- if (!scope || scope.excludedKinds.length === 0)
54
- return false;
55
- return scope.excludedKinds.includes(kind.name);
56
- }
57
- //# sourceMappingURL=dimension-filter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dimension-filter.js","sourceRoot":"","sources":["../../src/model/dimension-filter.ts"],"names":[],"mappings":"AAmBA,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAChD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAY,EAAE,CACtC,CAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAA0B,IAAI,EAAE,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QAClD,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;QAChD,iBAAiB,EAAE,OAAO,CAAC,kBAAkB,CAAC;QAC9C,qBAAqB,EAAE,OAAO,CAAC,sBAAsB,CAAC;QACtD,sBAAsB,EAAE,OAAO,CAAC,uBAAuB,CAAC;QACxD,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC;KACzC,CAAC;AACN,CAAC;AAID,MAAM,WAAW,GAAqD;IAClE,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,uBAAuB;IACrC,aAAa,EAAE,wBAAwB;CAC1C,CAAC;AAEF,SAAS,oBAAoB,CAAC,IAAsB,EAAE,SAAuB;IACzE,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QACpC,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtC,KAAK,cAAc,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;QACtC,KAAK,eAAe,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAClC,KAAyB,EACzB,SAAuB,EACvB,KAAkC;IAElC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAa,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpD,OAAO,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC1B,IAAsB,EACtB,KAAkC;IAElC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { MEMOConfig } from './config.js';
2
- export interface ToolInvocation {
3
- command: string;
4
- args: string[];
5
- provider: 'syside' | 'sysand';
6
- }
7
- export declare function buildCompilerInvocation(config: MEMOConfig, projectDir: string, includeDirs?: string[]): ToolInvocation | undefined;
8
- export declare function buildPackagerInvocation(config: MEMOConfig, projectDir: string, outputPath: string): ToolInvocation | undefined;
9
- export declare function runToolInvocation(invocation: ToolInvocation, cwd: string): void;
10
- export declare function compileWithConfiguredTool(config: MEMOConfig, projectDir: string, configPath?: string): 'internal' | 'syside';
11
- export declare function packageWithConfiguredTool(config: MEMOConfig, projectDir: string, outputPath: string): 'internal' | 'sysand';
12
- //# sourceMappingURL=toolchain.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolchain.d.ts","sourceRoot":"","sources":["../../src/model/toolchain.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjC;AAeD,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,MAAM,EAAO,GAC3B,cAAc,GAAG,SAAS,CAiB5B;AAED,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACnB,cAAc,GAAG,SAAS,CAe5B;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAW/E;AAED,wBAAgB,yBAAyB,CACrC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GACpB,UAAU,GAAG,QAAQ,CAQvB;AAED,wBAAgB,yBAAyB,CACrC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACnB,UAAU,GAAG,QAAQ,CAQvB"}
@@ -1,92 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { homedir } from 'node:os';
3
- import { isAbsolute, resolve } from 'node:path';
4
- import { spawnSync } from 'node:child_process';
5
- import { findOntologyPackageDirs, resolvePackageSysmlDir } from './ontology-loader.js';
6
- function resolveProjectPath(value, projectDir) {
7
- if (value === '~')
8
- return homedir();
9
- if (value.startsWith('~/'))
10
- return resolve(homedir(), value.slice(2));
11
- return isAbsolute(value) ? value : resolve(projectDir, value);
12
- }
13
- function resolveExecutable(value, fallback, projectDir) {
14
- if (!value)
15
- return fallback;
16
- return value.includes('/') || value.includes('\\') || value.startsWith('~')
17
- ? resolveProjectPath(value, projectDir)
18
- : value;
19
- }
20
- export function buildCompilerInvocation(config, projectDir, includeDirs = []) {
21
- const provider = config.toolchain?.compiler ?? 'internal';
22
- if (provider === 'internal')
23
- return undefined;
24
- if (provider !== 'syside') {
25
- throw new Error(`Unsupported compiler "${String(provider)}". Choose "internal" or "syside".`);
26
- }
27
- const tool = config.toolchain?.syside;
28
- const args = ['check', '--colour', 'no', '--diagnose', tool?.diagnose ?? 'all'];
29
- if (tool?.configFile)
30
- args.push('--config', resolveProjectPath(tool.configFile, projectDir));
31
- if (tool?.warningsAsErrors ?? true)
32
- args.push('--warnings-as-errors');
33
- for (const includeDir of [...new Set(includeDirs)])
34
- args.push('--include', includeDir);
35
- args.push(projectDir);
36
- return {
37
- command: resolveExecutable(tool?.executable, 'syside', projectDir),
38
- args,
39
- provider,
40
- };
41
- }
42
- export function buildPackagerInvocation(config, projectDir, outputPath) {
43
- const provider = config.toolchain?.packager ?? 'internal';
44
- if (provider === 'internal')
45
- return undefined;
46
- if (provider !== 'sysand') {
47
- throw new Error(`Unsupported packager "${String(provider)}". Choose "internal" or "sysand".`);
48
- }
49
- const tool = config.toolchain?.sysand;
50
- const args = [];
51
- if (tool?.configFile)
52
- args.push('--config-file', resolveProjectPath(tool.configFile, projectDir));
53
- args.push('build', outputPath);
54
- return {
55
- command: resolveExecutable(tool?.executable, 'sysand', projectDir),
56
- args,
57
- provider,
58
- };
59
- }
60
- export function runToolInvocation(invocation, cwd) {
61
- const result = spawnSync(invocation.command, invocation.args, { cwd, stdio: 'inherit' });
62
- if (result.error) {
63
- const hint = result.error.message.includes('ENOENT')
64
- ? ` Configure toolchain.${invocation.provider}.executable or add it to PATH.`
65
- : '';
66
- throw new Error(`Could not run ${invocation.provider}: ${result.error.message}.${hint}`);
67
- }
68
- if (result.status !== 0) {
69
- throw new Error(`${invocation.provider} exited with status ${result.status ?? 'unknown'}.`);
70
- }
71
- }
72
- export function compileWithConfiguredTool(config, projectDir, configPath) {
73
- const includeDirs = configPath
74
- ? findOntologyPackageDirs(configPath).map(resolvePackageSysmlDir)
75
- : [];
76
- const invocation = buildCompilerInvocation(config, projectDir, includeDirs);
77
- if (!invocation)
78
- return 'internal';
79
- runToolInvocation(invocation, projectDir);
80
- return 'syside';
81
- }
82
- export function packageWithConfiguredTool(config, projectDir, outputPath) {
83
- const invocation = buildPackagerInvocation(config, projectDir, outputPath);
84
- if (!invocation)
85
- return 'internal';
86
- runToolInvocation(invocation, projectDir);
87
- if (!existsSync(outputPath)) {
88
- throw new Error(`${invocation.provider} completed but did not create ${outputPath}.`);
89
- }
90
- return 'sysand';
91
- }
92
- //# sourceMappingURL=toolchain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../../src/model/toolchain.ts"],"names":[],"mappings":"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"}