@memoarchitect/tools 0.4.4

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 (588) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +171 -0
  3. package/package.json +86 -0
  4. package/packages/tools/lib/__tests__/archetype-parsing.test.d.ts +2 -0
  5. package/packages/tools/lib/__tests__/archetype-parsing.test.d.ts.map +1 -0
  6. package/packages/tools/lib/__tests__/archetype-parsing.test.js +42 -0
  7. package/packages/tools/lib/__tests__/archetype-parsing.test.js.map +1 -0
  8. package/packages/tools/lib/__tests__/architecture-discovery.test.d.ts +2 -0
  9. package/packages/tools/lib/__tests__/architecture-discovery.test.d.ts.map +1 -0
  10. package/packages/tools/lib/__tests__/architecture-discovery.test.js +82 -0
  11. package/packages/tools/lib/__tests__/architecture-discovery.test.js.map +1 -0
  12. package/packages/tools/lib/__tests__/behavior.test.d.ts +2 -0
  13. package/packages/tools/lib/__tests__/behavior.test.d.ts.map +1 -0
  14. package/packages/tools/lib/__tests__/behavior.test.js +766 -0
  15. package/packages/tools/lib/__tests__/behavior.test.js.map +1 -0
  16. package/packages/tools/lib/__tests__/builder.test.d.ts +2 -0
  17. package/packages/tools/lib/__tests__/builder.test.d.ts.map +1 -0
  18. package/packages/tools/lib/__tests__/builder.test.js +728 -0
  19. package/packages/tools/lib/__tests__/builder.test.js.map +1 -0
  20. package/packages/tools/lib/__tests__/config-loader.test.d.ts +2 -0
  21. package/packages/tools/lib/__tests__/config-loader.test.d.ts.map +1 -0
  22. package/packages/tools/lib/__tests__/config-loader.test.js +196 -0
  23. package/packages/tools/lib/__tests__/config-loader.test.js.map +1 -0
  24. package/packages/tools/lib/__tests__/conformance.test.d.ts +2 -0
  25. package/packages/tools/lib/__tests__/conformance.test.d.ts.map +1 -0
  26. package/packages/tools/lib/__tests__/conformance.test.js +467 -0
  27. package/packages/tools/lib/__tests__/conformance.test.js.map +1 -0
  28. package/packages/tools/lib/__tests__/constraint-eval.test.d.ts +2 -0
  29. package/packages/tools/lib/__tests__/constraint-eval.test.d.ts.map +1 -0
  30. package/packages/tools/lib/__tests__/constraint-eval.test.js +195 -0
  31. package/packages/tools/lib/__tests__/constraint-eval.test.js.map +1 -0
  32. package/packages/tools/lib/__tests__/constraint-grammar.test.d.ts +2 -0
  33. package/packages/tools/lib/__tests__/constraint-grammar.test.d.ts.map +1 -0
  34. package/packages/tools/lib/__tests__/constraint-grammar.test.js +163 -0
  35. package/packages/tools/lib/__tests__/constraint-grammar.test.js.map +1 -0
  36. package/packages/tools/lib/__tests__/constraint-loader.test.d.ts +2 -0
  37. package/packages/tools/lib/__tests__/constraint-loader.test.d.ts.map +1 -0
  38. package/packages/tools/lib/__tests__/constraint-loader.test.js +150 -0
  39. package/packages/tools/lib/__tests__/constraint-loader.test.js.map +1 -0
  40. package/packages/tools/lib/__tests__/csv-io.test.d.ts +2 -0
  41. package/packages/tools/lib/__tests__/csv-io.test.d.ts.map +1 -0
  42. package/packages/tools/lib/__tests__/csv-io.test.js +317 -0
  43. package/packages/tools/lib/__tests__/csv-io.test.js.map +1 -0
  44. package/packages/tools/lib/__tests__/dhf-doc-store.test.d.ts +2 -0
  45. package/packages/tools/lib/__tests__/dhf-doc-store.test.d.ts.map +1 -0
  46. package/packages/tools/lib/__tests__/dhf-doc-store.test.js +94 -0
  47. package/packages/tools/lib/__tests__/dhf-doc-store.test.js.map +1 -0
  48. package/packages/tools/lib/__tests__/dhf-template-resolver.test.d.ts +2 -0
  49. package/packages/tools/lib/__tests__/dhf-template-resolver.test.d.ts.map +1 -0
  50. package/packages/tools/lib/__tests__/dhf-template-resolver.test.js +39 -0
  51. package/packages/tools/lib/__tests__/dhf-template-resolver.test.js.map +1 -0
  52. package/packages/tools/lib/__tests__/dhf.test.d.ts +2 -0
  53. package/packages/tools/lib/__tests__/dhf.test.d.ts.map +1 -0
  54. package/packages/tools/lib/__tests__/dhf.test.js +393 -0
  55. package/packages/tools/lib/__tests__/dhf.test.js.map +1 -0
  56. package/packages/tools/lib/__tests__/dimension-filter.test.d.ts +2 -0
  57. package/packages/tools/lib/__tests__/dimension-filter.test.d.ts.map +1 -0
  58. package/packages/tools/lib/__tests__/dimension-filter.test.js +85 -0
  59. package/packages/tools/lib/__tests__/dimension-filter.test.js.map +1 -0
  60. package/packages/tools/lib/__tests__/dsm.test.d.ts +2 -0
  61. package/packages/tools/lib/__tests__/dsm.test.d.ts.map +1 -0
  62. package/packages/tools/lib/__tests__/dsm.test.js +112 -0
  63. package/packages/tools/lib/__tests__/dsm.test.js.map +1 -0
  64. package/packages/tools/lib/__tests__/e2e-workflow.test.d.ts +2 -0
  65. package/packages/tools/lib/__tests__/e2e-workflow.test.d.ts.map +1 -0
  66. package/packages/tools/lib/__tests__/e2e-workflow.test.js +707 -0
  67. package/packages/tools/lib/__tests__/e2e-workflow.test.js.map +1 -0
  68. package/packages/tools/lib/__tests__/file-watcher.test.d.ts +2 -0
  69. package/packages/tools/lib/__tests__/file-watcher.test.d.ts.map +1 -0
  70. package/packages/tools/lib/__tests__/file-watcher.test.js +31 -0
  71. package/packages/tools/lib/__tests__/file-watcher.test.js.map +1 -0
  72. package/packages/tools/lib/__tests__/impact.test.d.ts +2 -0
  73. package/packages/tools/lib/__tests__/impact.test.d.ts.map +1 -0
  74. package/packages/tools/lib/__tests__/impact.test.js +82 -0
  75. package/packages/tools/lib/__tests__/impact.test.js.map +1 -0
  76. package/packages/tools/lib/__tests__/importer.test.d.ts +2 -0
  77. package/packages/tools/lib/__tests__/importer.test.d.ts.map +1 -0
  78. package/packages/tools/lib/__tests__/importer.test.js +336 -0
  79. package/packages/tools/lib/__tests__/importer.test.js.map +1 -0
  80. package/packages/tools/lib/__tests__/kind-registry.test.d.ts +2 -0
  81. package/packages/tools/lib/__tests__/kind-registry.test.d.ts.map +1 -0
  82. package/packages/tools/lib/__tests__/kind-registry.test.js +132 -0
  83. package/packages/tools/lib/__tests__/kind-registry.test.js.map +1 -0
  84. package/packages/tools/lib/__tests__/llm.test.d.ts +2 -0
  85. package/packages/tools/lib/__tests__/llm.test.d.ts.map +1 -0
  86. package/packages/tools/lib/__tests__/llm.test.js +275 -0
  87. package/packages/tools/lib/__tests__/llm.test.js.map +1 -0
  88. package/packages/tools/lib/__tests__/manifest-resolver.test.d.ts +2 -0
  89. package/packages/tools/lib/__tests__/manifest-resolver.test.d.ts.map +1 -0
  90. package/packages/tools/lib/__tests__/manifest-resolver.test.js +97 -0
  91. package/packages/tools/lib/__tests__/manifest-resolver.test.js.map +1 -0
  92. package/packages/tools/lib/__tests__/markdown-to-ir.test.d.ts +2 -0
  93. package/packages/tools/lib/__tests__/markdown-to-ir.test.d.ts.map +1 -0
  94. package/packages/tools/lib/__tests__/markdown-to-ir.test.js +74 -0
  95. package/packages/tools/lib/__tests__/markdown-to-ir.test.js.map +1 -0
  96. package/packages/tools/lib/__tests__/methodology-scope.test.d.ts +2 -0
  97. package/packages/tools/lib/__tests__/methodology-scope.test.d.ts.map +1 -0
  98. package/packages/tools/lib/__tests__/methodology-scope.test.js +59 -0
  99. package/packages/tools/lib/__tests__/methodology-scope.test.js.map +1 -0
  100. package/packages/tools/lib/__tests__/parser.test.d.ts +2 -0
  101. package/packages/tools/lib/__tests__/parser.test.d.ts.map +1 -0
  102. package/packages/tools/lib/__tests__/parser.test.js +938 -0
  103. package/packages/tools/lib/__tests__/parser.test.js.map +1 -0
  104. package/packages/tools/lib/__tests__/plugin.test.d.ts +2 -0
  105. package/packages/tools/lib/__tests__/plugin.test.d.ts.map +1 -0
  106. package/packages/tools/lib/__tests__/plugin.test.js +308 -0
  107. package/packages/tools/lib/__tests__/plugin.test.js.map +1 -0
  108. package/packages/tools/lib/__tests__/relationship-registry.test.d.ts +2 -0
  109. package/packages/tools/lib/__tests__/relationship-registry.test.d.ts.map +1 -0
  110. package/packages/tools/lib/__tests__/relationship-registry.test.js +96 -0
  111. package/packages/tools/lib/__tests__/relationship-registry.test.js.map +1 -0
  112. package/packages/tools/lib/__tests__/rule-registry.test.d.ts +2 -0
  113. package/packages/tools/lib/__tests__/rule-registry.test.d.ts.map +1 -0
  114. package/packages/tools/lib/__tests__/rule-registry.test.js +53 -0
  115. package/packages/tools/lib/__tests__/rule-registry.test.js.map +1 -0
  116. package/packages/tools/lib/__tests__/toolchain.test.d.ts +2 -0
  117. package/packages/tools/lib/__tests__/toolchain.test.d.ts.map +1 -0
  118. package/packages/tools/lib/__tests__/toolchain.test.js +94 -0
  119. package/packages/tools/lib/__tests__/toolchain.test.js.map +1 -0
  120. package/packages/tools/lib/__tests__/view-deriver-samples.test.d.ts +2 -0
  121. package/packages/tools/lib/__tests__/view-deriver-samples.test.d.ts.map +1 -0
  122. package/packages/tools/lib/__tests__/view-deriver-samples.test.js +39 -0
  123. package/packages/tools/lib/__tests__/view-deriver-samples.test.js.map +1 -0
  124. package/packages/tools/lib/__tests__/view-kinds.test.d.ts +2 -0
  125. package/packages/tools/lib/__tests__/view-kinds.test.d.ts.map +1 -0
  126. package/packages/tools/lib/__tests__/view-kinds.test.js +263 -0
  127. package/packages/tools/lib/__tests__/view-kinds.test.js.map +1 -0
  128. package/packages/tools/lib/__tests__/view-layout-store.test.d.ts +2 -0
  129. package/packages/tools/lib/__tests__/view-layout-store.test.d.ts.map +1 -0
  130. package/packages/tools/lib/__tests__/view-layout-store.test.js +61 -0
  131. package/packages/tools/lib/__tests__/view-layout-store.test.js.map +1 -0
  132. package/packages/tools/lib/analysis/dsm.d.ts +47 -0
  133. package/packages/tools/lib/analysis/dsm.d.ts.map +1 -0
  134. package/packages/tools/lib/analysis/dsm.js +172 -0
  135. package/packages/tools/lib/analysis/dsm.js.map +1 -0
  136. package/packages/tools/lib/analysis/impact.d.ts +35 -0
  137. package/packages/tools/lib/analysis/impact.d.ts.map +1 -0
  138. package/packages/tools/lib/analysis/impact.js +97 -0
  139. package/packages/tools/lib/analysis/impact.js.map +1 -0
  140. package/packages/tools/lib/bin/memo.d.ts +3 -0
  141. package/packages/tools/lib/bin/memo.d.ts.map +1 -0
  142. package/packages/tools/lib/bin/memo.js +461 -0
  143. package/packages/tools/lib/bin/memo.js.map +1 -0
  144. package/packages/tools/lib/browser/index.d.ts +13 -0
  145. package/packages/tools/lib/browser/index.d.ts.map +1 -0
  146. package/packages/tools/lib/browser/index.js +11 -0
  147. package/packages/tools/lib/browser/index.js.map +1 -0
  148. package/packages/tools/lib/commands/archetype-loader.d.ts +15 -0
  149. package/packages/tools/lib/commands/archetype-loader.d.ts.map +1 -0
  150. package/packages/tools/lib/commands/archetype-loader.js +31 -0
  151. package/packages/tools/lib/commands/archetype-loader.js.map +1 -0
  152. package/packages/tools/lib/commands/ask.d.ts +6 -0
  153. package/packages/tools/lib/commands/ask.d.ts.map +1 -0
  154. package/packages/tools/lib/commands/ask.js +79 -0
  155. package/packages/tools/lib/commands/ask.js.map +1 -0
  156. package/packages/tools/lib/commands/check.d.ts +6 -0
  157. package/packages/tools/lib/commands/check.d.ts.map +1 -0
  158. package/packages/tools/lib/commands/check.js +214 -0
  159. package/packages/tools/lib/commands/check.js.map +1 -0
  160. package/packages/tools/lib/commands/create-package.d.ts +12 -0
  161. package/packages/tools/lib/commands/create-package.d.ts.map +1 -0
  162. package/packages/tools/lib/commands/create-package.js +293 -0
  163. package/packages/tools/lib/commands/create-package.js.map +1 -0
  164. package/packages/tools/lib/commands/dev.d.ts +6 -0
  165. package/packages/tools/lib/commands/dev.d.ts.map +1 -0
  166. package/packages/tools/lib/commands/dev.js +316 -0
  167. package/packages/tools/lib/commands/dev.js.map +1 -0
  168. package/packages/tools/lib/commands/dhf-draft.d.ts +8 -0
  169. package/packages/tools/lib/commands/dhf-draft.d.ts.map +1 -0
  170. package/packages/tools/lib/commands/dhf-draft.js +115 -0
  171. package/packages/tools/lib/commands/dhf-draft.js.map +1 -0
  172. package/packages/tools/lib/commands/dhf-init.d.ts +4 -0
  173. package/packages/tools/lib/commands/dhf-init.d.ts.map +1 -0
  174. package/packages/tools/lib/commands/dhf-init.js +270 -0
  175. package/packages/tools/lib/commands/dhf-init.js.map +1 -0
  176. package/packages/tools/lib/commands/dhf-preview.d.ts +4 -0
  177. package/packages/tools/lib/commands/dhf-preview.d.ts.map +1 -0
  178. package/packages/tools/lib/commands/dhf-preview.js +285 -0
  179. package/packages/tools/lib/commands/dhf-preview.js.map +1 -0
  180. package/packages/tools/lib/commands/dhf.d.ts +27 -0
  181. package/packages/tools/lib/commands/dhf.d.ts.map +1 -0
  182. package/packages/tools/lib/commands/dhf.js +334 -0
  183. package/packages/tools/lib/commands/dhf.js.map +1 -0
  184. package/packages/tools/lib/commands/export.d.ts +9 -0
  185. package/packages/tools/lib/commands/export.d.ts.map +1 -0
  186. package/packages/tools/lib/commands/export.js +136 -0
  187. package/packages/tools/lib/commands/export.js.map +1 -0
  188. package/packages/tools/lib/commands/generate.d.ts +6 -0
  189. package/packages/tools/lib/commands/generate.d.ts.map +1 -0
  190. package/packages/tools/lib/commands/generate.js +80 -0
  191. package/packages/tools/lib/commands/generate.js.map +1 -0
  192. package/packages/tools/lib/commands/import-ea.d.ts +32 -0
  193. package/packages/tools/lib/commands/import-ea.d.ts.map +1 -0
  194. package/packages/tools/lib/commands/import-ea.js +156 -0
  195. package/packages/tools/lib/commands/import-ea.js.map +1 -0
  196. package/packages/tools/lib/commands/import-owl.d.ts +19 -0
  197. package/packages/tools/lib/commands/import-owl.d.ts.map +1 -0
  198. package/packages/tools/lib/commands/import-owl.js +103 -0
  199. package/packages/tools/lib/commands/import-owl.js.map +1 -0
  200. package/packages/tools/lib/commands/import-sysand.d.ts +11 -0
  201. package/packages/tools/lib/commands/import-sysand.d.ts.map +1 -0
  202. package/packages/tools/lib/commands/import-sysand.js +87 -0
  203. package/packages/tools/lib/commands/import-sysand.js.map +1 -0
  204. package/packages/tools/lib/commands/import.d.ts +30 -0
  205. package/packages/tools/lib/commands/import.d.ts.map +1 -0
  206. package/packages/tools/lib/commands/import.js +250 -0
  207. package/packages/tools/lib/commands/import.js.map +1 -0
  208. package/packages/tools/lib/commands/init-wizard.d.ts +10 -0
  209. package/packages/tools/lib/commands/init-wizard.d.ts.map +1 -0
  210. package/packages/tools/lib/commands/init-wizard.js +69 -0
  211. package/packages/tools/lib/commands/init-wizard.js.map +1 -0
  212. package/packages/tools/lib/commands/init.d.ts +30 -0
  213. package/packages/tools/lib/commands/init.d.ts.map +1 -0
  214. package/packages/tools/lib/commands/init.js +238 -0
  215. package/packages/tools/lib/commands/init.js.map +1 -0
  216. package/packages/tools/lib/commands/install.d.ts +8 -0
  217. package/packages/tools/lib/commands/install.d.ts.map +1 -0
  218. package/packages/tools/lib/commands/install.js +238 -0
  219. package/packages/tools/lib/commands/install.js.map +1 -0
  220. package/packages/tools/lib/commands/lock.d.ts +2 -0
  221. package/packages/tools/lib/commands/lock.d.ts.map +1 -0
  222. package/packages/tools/lib/commands/lock.js +29 -0
  223. package/packages/tools/lib/commands/lock.js.map +1 -0
  224. package/packages/tools/lib/commands/ontology.d.ts +14 -0
  225. package/packages/tools/lib/commands/ontology.d.ts.map +1 -0
  226. package/packages/tools/lib/commands/ontology.js +464 -0
  227. package/packages/tools/lib/commands/ontology.js.map +1 -0
  228. package/packages/tools/lib/commands/pack.d.ts +4 -0
  229. package/packages/tools/lib/commands/pack.d.ts.map +1 -0
  230. package/packages/tools/lib/commands/pack.js +89 -0
  231. package/packages/tools/lib/commands/pack.js.map +1 -0
  232. package/packages/tools/lib/commands/plugin.d.ts +10 -0
  233. package/packages/tools/lib/commands/plugin.d.ts.map +1 -0
  234. package/packages/tools/lib/commands/plugin.js +195 -0
  235. package/packages/tools/lib/commands/plugin.js.map +1 -0
  236. package/packages/tools/lib/commands/req.d.ts +10 -0
  237. package/packages/tools/lib/commands/req.d.ts.map +1 -0
  238. package/packages/tools/lib/commands/req.js +64 -0
  239. package/packages/tools/lib/commands/req.js.map +1 -0
  240. package/packages/tools/lib/commands/roundtrip.d.ts +6 -0
  241. package/packages/tools/lib/commands/roundtrip.d.ts.map +1 -0
  242. package/packages/tools/lib/commands/roundtrip.js +162 -0
  243. package/packages/tools/lib/commands/roundtrip.js.map +1 -0
  244. package/packages/tools/lib/commands/rules.d.ts +15 -0
  245. package/packages/tools/lib/commands/rules.d.ts.map +1 -0
  246. package/packages/tools/lib/commands/rules.js +282 -0
  247. package/packages/tools/lib/commands/rules.js.map +1 -0
  248. package/packages/tools/lib/commands/sysand-publish.d.ts +6 -0
  249. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -0
  250. package/packages/tools/lib/commands/sysand-publish.js +231 -0
  251. package/packages/tools/lib/commands/sysand-publish.js.map +1 -0
  252. package/packages/tools/lib/commands/validate.d.ts +6 -0
  253. package/packages/tools/lib/commands/validate.d.ts.map +1 -0
  254. package/packages/tools/lib/commands/validate.js +269 -0
  255. package/packages/tools/lib/commands/validate.js.map +1 -0
  256. package/packages/tools/lib/completeness/tracker.d.ts +11 -0
  257. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -0
  258. package/packages/tools/lib/completeness/tracker.js +86 -0
  259. package/packages/tools/lib/completeness/tracker.js.map +1 -0
  260. package/packages/tools/lib/dhf/dhf-config-v2.d.ts +102 -0
  261. package/packages/tools/lib/dhf/dhf-config-v2.d.ts.map +1 -0
  262. package/packages/tools/lib/dhf/dhf-config-v2.js +82 -0
  263. package/packages/tools/lib/dhf/dhf-config-v2.js.map +1 -0
  264. package/packages/tools/lib/dhf/dhf-config.d.ts +53 -0
  265. package/packages/tools/lib/dhf/dhf-config.d.ts.map +1 -0
  266. package/packages/tools/lib/dhf/dhf-config.js +44 -0
  267. package/packages/tools/lib/dhf/dhf-config.js.map +1 -0
  268. package/packages/tools/lib/dhf/directive-parser.d.ts +31 -0
  269. package/packages/tools/lib/dhf/directive-parser.d.ts.map +1 -0
  270. package/packages/tools/lib/dhf/directive-parser.js +83 -0
  271. package/packages/tools/lib/dhf/directive-parser.js.map +1 -0
  272. package/packages/tools/lib/dhf/document-compiler.d.ts +68 -0
  273. package/packages/tools/lib/dhf/document-compiler.d.ts.map +1 -0
  274. package/packages/tools/lib/dhf/document-compiler.js +209 -0
  275. package/packages/tools/lib/dhf/document-compiler.js.map +1 -0
  276. package/packages/tools/lib/dhf/document-ir.d.ts +170 -0
  277. package/packages/tools/lib/dhf/document-ir.d.ts.map +1 -0
  278. package/packages/tools/lib/dhf/document-ir.js +47 -0
  279. package/packages/tools/lib/dhf/document-ir.js.map +1 -0
  280. package/packages/tools/lib/dhf/document-registry.d.ts +45 -0
  281. package/packages/tools/lib/dhf/document-registry.d.ts.map +1 -0
  282. package/packages/tools/lib/dhf/document-registry.js +342 -0
  283. package/packages/tools/lib/dhf/document-registry.js.map +1 -0
  284. package/packages/tools/lib/dhf/export-plugin.d.ts +24 -0
  285. package/packages/tools/lib/dhf/export-plugin.d.ts.map +1 -0
  286. package/packages/tools/lib/dhf/export-plugin.js +24 -0
  287. package/packages/tools/lib/dhf/export-plugin.js.map +1 -0
  288. package/packages/tools/lib/dhf/exporters/docx-exporter.d.ts +15 -0
  289. package/packages/tools/lib/dhf/exporters/docx-exporter.d.ts.map +1 -0
  290. package/packages/tools/lib/dhf/exporters/docx-exporter.js +159 -0
  291. package/packages/tools/lib/dhf/exporters/docx-exporter.js.map +1 -0
  292. package/packages/tools/lib/dhf/exporters/html-exporter.d.ts +9 -0
  293. package/packages/tools/lib/dhf/exporters/html-exporter.d.ts.map +1 -0
  294. package/packages/tools/lib/dhf/exporters/html-exporter.js +248 -0
  295. package/packages/tools/lib/dhf/exporters/html-exporter.js.map +1 -0
  296. package/packages/tools/lib/dhf/exporters/markdown-exporter.d.ts +9 -0
  297. package/packages/tools/lib/dhf/exporters/markdown-exporter.d.ts.map +1 -0
  298. package/packages/tools/lib/dhf/exporters/markdown-exporter.js +147 -0
  299. package/packages/tools/lib/dhf/exporters/markdown-exporter.js.map +1 -0
  300. package/packages/tools/lib/dhf/index.d.ts +15 -0
  301. package/packages/tools/lib/dhf/index.d.ts.map +1 -0
  302. package/packages/tools/lib/dhf/index.js +21 -0
  303. package/packages/tools/lib/dhf/index.js.map +1 -0
  304. package/packages/tools/lib/dhf/markdown-to-ir.d.ts +19 -0
  305. package/packages/tools/lib/dhf/markdown-to-ir.d.ts.map +1 -0
  306. package/packages/tools/lib/dhf/markdown-to-ir.js +193 -0
  307. package/packages/tools/lib/dhf/markdown-to-ir.js.map +1 -0
  308. package/packages/tools/lib/dhf/query-engine.d.ts +61 -0
  309. package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -0
  310. package/packages/tools/lib/dhf/query-engine.js +109 -0
  311. package/packages/tools/lib/dhf/query-engine.js.map +1 -0
  312. package/packages/tools/lib/dhf/query-executor.d.ts +33 -0
  313. package/packages/tools/lib/dhf/query-executor.d.ts.map +1 -0
  314. package/packages/tools/lib/dhf/query-executor.js +222 -0
  315. package/packages/tools/lib/dhf/query-executor.js.map +1 -0
  316. package/packages/tools/lib/dhf/script-runner.d.ts +4 -0
  317. package/packages/tools/lib/dhf/script-runner.d.ts.map +1 -0
  318. package/packages/tools/lib/dhf/script-runner.js +62 -0
  319. package/packages/tools/lib/dhf/script-runner.js.map +1 -0
  320. package/packages/tools/lib/dhf/snapshot.d.ts +60 -0
  321. package/packages/tools/lib/dhf/snapshot.d.ts.map +1 -0
  322. package/packages/tools/lib/dhf/snapshot.js +185 -0
  323. package/packages/tools/lib/dhf/snapshot.js.map +1 -0
  324. package/packages/tools/lib/dhf/template-engine.d.ts +18 -0
  325. package/packages/tools/lib/dhf/template-engine.d.ts.map +1 -0
  326. package/packages/tools/lib/dhf/template-engine.js +339 -0
  327. package/packages/tools/lib/dhf/template-engine.js.map +1 -0
  328. package/packages/tools/lib/dhf/template-resolver.d.ts +42 -0
  329. package/packages/tools/lib/dhf/template-resolver.d.ts.map +1 -0
  330. package/packages/tools/lib/dhf/template-resolver.js +196 -0
  331. package/packages/tools/lib/dhf/template-resolver.js.map +1 -0
  332. package/packages/tools/lib/import/column-mapper.d.ts +35 -0
  333. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -0
  334. package/packages/tools/lib/import/column-mapper.js +171 -0
  335. package/packages/tools/lib/import/column-mapper.js.map +1 -0
  336. package/packages/tools/lib/import/import-diff.d.ts +49 -0
  337. package/packages/tools/lib/import/import-diff.d.ts.map +1 -0
  338. package/packages/tools/lib/import/import-diff.js +102 -0
  339. package/packages/tools/lib/import/import-diff.js.map +1 -0
  340. package/packages/tools/lib/import/recipes.d.ts +43 -0
  341. package/packages/tools/lib/import/recipes.d.ts.map +1 -0
  342. package/packages/tools/lib/import/recipes.js +133 -0
  343. package/packages/tools/lib/import/recipes.js.map +1 -0
  344. package/packages/tools/lib/importer/cameo-importer.d.ts +103 -0
  345. package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -0
  346. package/packages/tools/lib/importer/cameo-importer.js +384 -0
  347. package/packages/tools/lib/importer/cameo-importer.js.map +1 -0
  348. package/packages/tools/lib/importer/ea-importer.d.ts +115 -0
  349. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -0
  350. package/packages/tools/lib/importer/ea-importer.js +325 -0
  351. package/packages/tools/lib/importer/ea-importer.js.map +1 -0
  352. package/packages/tools/lib/importer/index.d.ts +5 -0
  353. package/packages/tools/lib/importer/index.d.ts.map +1 -0
  354. package/packages/tools/lib/importer/index.js +15 -0
  355. package/packages/tools/lib/importer/index.js.map +1 -0
  356. package/packages/tools/lib/importer/owl-importer.d.ts +91 -0
  357. package/packages/tools/lib/importer/owl-importer.d.ts.map +1 -0
  358. package/packages/tools/lib/importer/owl-importer.js +429 -0
  359. package/packages/tools/lib/importer/owl-importer.js.map +1 -0
  360. package/packages/tools/lib/importer/sysand-importer.d.ts +78 -0
  361. package/packages/tools/lib/importer/sysand-importer.d.ts.map +1 -0
  362. package/packages/tools/lib/importer/sysand-importer.js +188 -0
  363. package/packages/tools/lib/importer/sysand-importer.js.map +1 -0
  364. package/packages/tools/lib/index.d.ts +44 -0
  365. package/packages/tools/lib/index.d.ts.map +1 -0
  366. package/packages/tools/lib/index.js +56 -0
  367. package/packages/tools/lib/index.js.map +1 -0
  368. package/packages/tools/lib/language/generated/ast.d.ts +629 -0
  369. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -0
  370. package/packages/tools/lib/language/generated/ast.js +961 -0
  371. package/packages/tools/lib/language/generated/ast.js.map +1 -0
  372. package/packages/tools/lib/language/generated/grammar.d.ts +7 -0
  373. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -0
  374. package/packages/tools/lib/language/generated/grammar.js +5676 -0
  375. package/packages/tools/lib/language/generated/grammar.js.map +1 -0
  376. package/packages/tools/lib/language/generated/module.d.ts +14 -0
  377. package/packages/tools/lib/language/generated/module.d.ts.map +1 -0
  378. package/packages/tools/lib/language/generated/module.js +21 -0
  379. package/packages/tools/lib/language/generated/module.js.map +1 -0
  380. package/packages/tools/lib/language/memo-sysml-module.d.ts +24 -0
  381. package/packages/tools/lib/language/memo-sysml-module.d.ts.map +1 -0
  382. package/packages/tools/lib/language/memo-sysml-module.js +20 -0
  383. package/packages/tools/lib/language/memo-sysml-module.js.map +1 -0
  384. package/packages/tools/lib/llm/ask-engine.d.ts +17 -0
  385. package/packages/tools/lib/llm/ask-engine.d.ts.map +1 -0
  386. package/packages/tools/lib/llm/ask-engine.js +43 -0
  387. package/packages/tools/lib/llm/ask-engine.js.map +1 -0
  388. package/packages/tools/lib/llm/draft-engine.d.ts +32 -0
  389. package/packages/tools/lib/llm/draft-engine.d.ts.map +1 -0
  390. package/packages/tools/lib/llm/draft-engine.js +270 -0
  391. package/packages/tools/lib/llm/draft-engine.js.map +1 -0
  392. package/packages/tools/lib/llm/generate-engine.d.ts +21 -0
  393. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -0
  394. package/packages/tools/lib/llm/generate-engine.js +83 -0
  395. package/packages/tools/lib/llm/generate-engine.js.map +1 -0
  396. package/packages/tools/lib/llm/index.d.ts +6 -0
  397. package/packages/tools/lib/llm/index.d.ts.map +1 -0
  398. package/packages/tools/lib/llm/index.js +11 -0
  399. package/packages/tools/lib/llm/index.js.map +1 -0
  400. package/packages/tools/lib/llm/llm-provider.d.ts +40 -0
  401. package/packages/tools/lib/llm/llm-provider.d.ts.map +1 -0
  402. package/packages/tools/lib/llm/llm-provider.js +121 -0
  403. package/packages/tools/lib/llm/llm-provider.js.map +1 -0
  404. package/packages/tools/lib/llm/model-context.d.ts +28 -0
  405. package/packages/tools/lib/llm/model-context.d.ts.map +1 -0
  406. package/packages/tools/lib/llm/model-context.js +162 -0
  407. package/packages/tools/lib/llm/model-context.js.map +1 -0
  408. package/packages/tools/lib/lock.d.ts +43 -0
  409. package/packages/tools/lib/lock.d.ts.map +1 -0
  410. package/packages/tools/lib/lock.js +225 -0
  411. package/packages/tools/lib/lock.js.map +1 -0
  412. package/packages/tools/lib/model/builder.d.ts +22 -0
  413. package/packages/tools/lib/model/builder.d.ts.map +1 -0
  414. package/packages/tools/lib/model/builder.js +708 -0
  415. package/packages/tools/lib/model/builder.js.map +1 -0
  416. package/packages/tools/lib/model/config-loader.d.ts +34 -0
  417. package/packages/tools/lib/model/config-loader.d.ts.map +1 -0
  418. package/packages/tools/lib/model/config-loader.js +257 -0
  419. package/packages/tools/lib/model/config-loader.js.map +1 -0
  420. package/packages/tools/lib/model/config.d.ts +220 -0
  421. package/packages/tools/lib/model/config.d.ts.map +1 -0
  422. package/packages/tools/lib/model/config.js +14 -0
  423. package/packages/tools/lib/model/config.js.map +1 -0
  424. package/packages/tools/lib/model/content-store.d.ts +8 -0
  425. package/packages/tools/lib/model/content-store.d.ts.map +1 -0
  426. package/packages/tools/lib/model/content-store.js +59 -0
  427. package/packages/tools/lib/model/content-store.js.map +1 -0
  428. package/packages/tools/lib/model/dimension-filter.d.ts +33 -0
  429. package/packages/tools/lib/model/dimension-filter.d.ts.map +1 -0
  430. package/packages/tools/lib/model/dimension-filter.js +57 -0
  431. package/packages/tools/lib/model/dimension-filter.js.map +1 -0
  432. package/packages/tools/lib/model/kind-registry.d.ts +72 -0
  433. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -0
  434. package/packages/tools/lib/model/kind-registry.js +178 -0
  435. package/packages/tools/lib/model/kind-registry.js.map +1 -0
  436. package/packages/tools/lib/model/layer-resolver.d.ts +25 -0
  437. package/packages/tools/lib/model/layer-resolver.d.ts.map +1 -0
  438. package/packages/tools/lib/model/layer-resolver.js +82 -0
  439. package/packages/tools/lib/model/layer-resolver.js.map +1 -0
  440. package/packages/tools/lib/model/manifest.d.ts +23 -0
  441. package/packages/tools/lib/model/manifest.d.ts.map +1 -0
  442. package/packages/tools/lib/model/manifest.js +117 -0
  443. package/packages/tools/lib/model/manifest.js.map +1 -0
  444. package/packages/tools/lib/model/methodology-loader.d.ts +56 -0
  445. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -0
  446. package/packages/tools/lib/model/methodology-loader.js +203 -0
  447. package/packages/tools/lib/model/methodology-loader.js.map +1 -0
  448. package/packages/tools/lib/model/ontology-loader.d.ts +113 -0
  449. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -0
  450. package/packages/tools/lib/model/ontology-loader.js +901 -0
  451. package/packages/tools/lib/model/ontology-loader.js.map +1 -0
  452. package/packages/tools/lib/model/package-registry.d.ts +62 -0
  453. package/packages/tools/lib/model/package-registry.d.ts.map +1 -0
  454. package/packages/tools/lib/model/package-registry.js +164 -0
  455. package/packages/tools/lib/model/package-registry.js.map +1 -0
  456. package/packages/tools/lib/model/parser-utils.d.ts +23 -0
  457. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -0
  458. package/packages/tools/lib/model/parser-utils.js +63 -0
  459. package/packages/tools/lib/model/parser-utils.js.map +1 -0
  460. package/packages/tools/lib/model/paths.d.ts +18 -0
  461. package/packages/tools/lib/model/paths.d.ts.map +1 -0
  462. package/packages/tools/lib/model/paths.js +26 -0
  463. package/packages/tools/lib/model/paths.js.map +1 -0
  464. package/packages/tools/lib/model/relationship-registry.d.ts +64 -0
  465. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -0
  466. package/packages/tools/lib/model/relationship-registry.js +141 -0
  467. package/packages/tools/lib/model/relationship-registry.js.map +1 -0
  468. package/packages/tools/lib/model/semantic.d.ts +175 -0
  469. package/packages/tools/lib/model/semantic.d.ts.map +1 -0
  470. package/packages/tools/lib/model/semantic.js +61 -0
  471. package/packages/tools/lib/model/semantic.js.map +1 -0
  472. package/packages/tools/lib/model/short-id.d.ts +32 -0
  473. package/packages/tools/lib/model/short-id.d.ts.map +1 -0
  474. package/packages/tools/lib/model/short-id.js +136 -0
  475. package/packages/tools/lib/model/short-id.js.map +1 -0
  476. package/packages/tools/lib/model/toolchain.d.ts +12 -0
  477. package/packages/tools/lib/model/toolchain.d.ts.map +1 -0
  478. package/packages/tools/lib/model/toolchain.js +92 -0
  479. package/packages/tools/lib/model/toolchain.js.map +1 -0
  480. package/packages/tools/lib/model/view-deriver.d.ts +22 -0
  481. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -0
  482. package/packages/tools/lib/model/view-deriver.js +160 -0
  483. package/packages/tools/lib/model/view-deriver.js.map +1 -0
  484. package/packages/tools/lib/model/view-kinds.d.ts +29 -0
  485. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -0
  486. package/packages/tools/lib/model/view-kinds.js +80 -0
  487. package/packages/tools/lib/model/view-kinds.js.map +1 -0
  488. package/packages/tools/lib/ontology/owl-exporter.d.ts +43 -0
  489. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -0
  490. package/packages/tools/lib/ontology/owl-exporter.js +70 -0
  491. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -0
  492. package/packages/tools/lib/operations/index.d.ts +8 -0
  493. package/packages/tools/lib/operations/index.d.ts.map +1 -0
  494. package/packages/tools/lib/operations/index.js +8 -0
  495. package/packages/tools/lib/operations/index.js.map +1 -0
  496. package/packages/tools/lib/operations/project-snapshot.d.ts +17 -0
  497. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -0
  498. package/packages/tools/lib/operations/project-snapshot.js +103 -0
  499. package/packages/tools/lib/operations/project-snapshot.js.map +1 -0
  500. package/packages/tools/lib/plugin/index.d.ts +5 -0
  501. package/packages/tools/lib/plugin/index.d.ts.map +1 -0
  502. package/packages/tools/lib/plugin/index.js +10 -0
  503. package/packages/tools/lib/plugin/index.js.map +1 -0
  504. package/packages/tools/lib/plugin/plugin-loader.d.ts +26 -0
  505. package/packages/tools/lib/plugin/plugin-loader.d.ts.map +1 -0
  506. package/packages/tools/lib/plugin/plugin-loader.js +216 -0
  507. package/packages/tools/lib/plugin/plugin-loader.js.map +1 -0
  508. package/packages/tools/lib/plugin/plugin-registry.d.ts +49 -0
  509. package/packages/tools/lib/plugin/plugin-registry.d.ts.map +1 -0
  510. package/packages/tools/lib/plugin/plugin-registry.js +121 -0
  511. package/packages/tools/lib/plugin/plugin-registry.js.map +1 -0
  512. package/packages/tools/lib/plugin/plugin-scaffold.d.ts +17 -0
  513. package/packages/tools/lib/plugin/plugin-scaffold.d.ts.map +1 -0
  514. package/packages/tools/lib/plugin/plugin-scaffold.js +223 -0
  515. package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -0
  516. package/packages/tools/lib/plugin/plugin-types.d.ts +115 -0
  517. package/packages/tools/lib/plugin/plugin-types.d.ts.map +1 -0
  518. package/packages/tools/lib/plugin/plugin-types.js +11 -0
  519. package/packages/tools/lib/plugin/plugin-types.js.map +1 -0
  520. package/packages/tools/lib/protocol/messages.d.ts +470 -0
  521. package/packages/tools/lib/protocol/messages.d.ts.map +1 -0
  522. package/packages/tools/lib/protocol/messages.js +6 -0
  523. package/packages/tools/lib/protocol/messages.js.map +1 -0
  524. package/packages/tools/lib/serializer/csv-io.d.ts +113 -0
  525. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -0
  526. package/packages/tools/lib/serializer/csv-io.js +394 -0
  527. package/packages/tools/lib/serializer/csv-io.js.map +1 -0
  528. package/packages/tools/lib/serializer/sysml-generator.d.ts +32 -0
  529. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -0
  530. package/packages/tools/lib/serializer/sysml-generator.js +120 -0
  531. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -0
  532. package/packages/tools/lib/server/config-resolver.d.ts +14 -0
  533. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -0
  534. package/packages/tools/lib/server/config-resolver.js +54 -0
  535. package/packages/tools/lib/server/config-resolver.js.map +1 -0
  536. package/packages/tools/lib/server/dev-server.d.ts +17 -0
  537. package/packages/tools/lib/server/dev-server.d.ts.map +1 -0
  538. package/packages/tools/lib/server/dev-server.js +939 -0
  539. package/packages/tools/lib/server/dev-server.js.map +1 -0
  540. package/packages/tools/lib/server/dhf-doc-store.d.ts +11 -0
  541. package/packages/tools/lib/server/dhf-doc-store.d.ts.map +1 -0
  542. package/packages/tools/lib/server/dhf-doc-store.js +181 -0
  543. package/packages/tools/lib/server/dhf-doc-store.js.map +1 -0
  544. package/packages/tools/lib/server/file-watcher.d.ts +20 -0
  545. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -0
  546. package/packages/tools/lib/server/file-watcher.js +140 -0
  547. package/packages/tools/lib/server/file-watcher.js.map +1 -0
  548. package/packages/tools/lib/server/persistor.d.ts +25 -0
  549. package/packages/tools/lib/server/persistor.d.ts.map +1 -0
  550. package/packages/tools/lib/server/persistor.js +100 -0
  551. package/packages/tools/lib/server/persistor.js.map +1 -0
  552. package/packages/tools/lib/server/view-layout-store.d.ts +8 -0
  553. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -0
  554. package/packages/tools/lib/server/view-layout-store.js +73 -0
  555. package/packages/tools/lib/server/view-layout-store.js.map +1 -0
  556. package/packages/tools/lib/types/index.d.ts +4 -0
  557. package/packages/tools/lib/types/index.d.ts.map +1 -0
  558. package/packages/tools/lib/types/index.js +6 -0
  559. package/packages/tools/lib/types/index.js.map +1 -0
  560. package/packages/tools/lib/validator/behavior-validator.d.ts +12 -0
  561. package/packages/tools/lib/validator/behavior-validator.d.ts.map +1 -0
  562. package/packages/tools/lib/validator/behavior-validator.js +124 -0
  563. package/packages/tools/lib/validator/behavior-validator.js.map +1 -0
  564. package/packages/tools/lib/validator/constraint-eval.d.ts +90 -0
  565. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -0
  566. package/packages/tools/lib/validator/constraint-eval.js +478 -0
  567. package/packages/tools/lib/validator/constraint-eval.js.map +1 -0
  568. package/packages/tools/lib/validator/constraint-loader.d.ts +10 -0
  569. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -0
  570. package/packages/tools/lib/validator/constraint-loader.js +113 -0
  571. package/packages/tools/lib/validator/constraint-loader.js.map +1 -0
  572. package/packages/tools/lib/validator/rule-engine.d.ts +13 -0
  573. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -0
  574. package/packages/tools/lib/validator/rule-engine.js +38 -0
  575. package/packages/tools/lib/validator/rule-engine.js.map +1 -0
  576. package/packages/tools/lib/validator/rule-registry.d.ts +61 -0
  577. package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -0
  578. package/packages/tools/lib/validator/rule-registry.js +142 -0
  579. package/packages/tools/lib/validator/rule-registry.js.map +1 -0
  580. package/packages/tools/lib/validator/types.d.ts +59 -0
  581. package/packages/tools/lib/validator/types.d.ts.map +1 -0
  582. package/packages/tools/lib/validator/types.js +3 -0
  583. package/packages/tools/lib/validator/types.js.map +1 -0
  584. package/packages/tools/lib/validator/view-validator.d.ts +11 -0
  585. package/packages/tools/lib/validator/view-validator.d.ts.map +1 -0
  586. package/packages/tools/lib/validator/view-validator.js +48 -0
  587. package/packages/tools/lib/validator/view-validator.js.map +1 -0
  588. package/packages/tools/src/grammar/memo-sysml.langium +450 -0
@@ -0,0 +1,450 @@
1
+ // =============================================================================
2
+ // MEMO SysML v2 Grammar — Langium definition
3
+ //
4
+ // Covers the SysML v2 subset needed for MEMO systems engineering modeling:
5
+ // package, part def, requirement def, action def, item def, port def,
6
+ // interface def, connection def, attribute def, enum def,
7
+ // viewpoint def, view def, import, specialization (:>),
8
+ // typed connections, doc comments
9
+ //
10
+ // Behavior constructs (Phase 5):
11
+ // action def with in/out/inout parameters, action usage (composite),
12
+ // flow connection usage, succession usage, allocate usage, item def
13
+ //
14
+ // Design notes:
15
+ // - DOC_COMMENT is a non-hidden terminal that captures `doc /* ... */`
16
+ // as a single token, preventing the hidden ML_COMMENT from consuming it
17
+ // - FeatureName allows 'part' keyword as identifier in end/connection contexts
18
+ // (SysML v2 uses `end part[0..*]` in connection defs)
19
+ // - QualifiedName is a data type rule returning string; cross-references
20
+ // are resolved programmatically in the semantic model layer
21
+ // =============================================================================
22
+
23
+ grammar MemoSysML
24
+
25
+ // ─── Entry point ─────────────────────────────────────────────────────────────
26
+
27
+ entry Model:
28
+ members+=NamespaceMember*;
29
+
30
+ NamespaceMember:
31
+ PackageDeclaration | ImportDeclaration;
32
+
33
+ // ─── Package ─────────────────────────────────────────────────────────────────
34
+
35
+ // Standard SysML v2: a package DECLARATION takes a single-identifier name.
36
+ // Qualified names (`::`) are for references only; deep namespaces are expressed by
37
+ // NESTING packages (`package memo { package arch { … } }`). The model builder
38
+ // reconstructs the full FQN from the nesting (builder.ts: parentPackage::pkg.name).
39
+ PackageDeclaration:
40
+ isLibrary?='library'? 'package' name=ID '{'
41
+ members+=PackageMember*
42
+ '}';
43
+
44
+ PackageMember:
45
+ PackageDeclaration
46
+ | AliasDeclaration
47
+ | ImportDeclaration
48
+ | DefinitionMember
49
+ | UsageMember
50
+ | ConnectionUsage
51
+ | AllocateUsage
52
+ | MetadataApplication
53
+ | DocComment;
54
+
55
+ // Namespace indirection used by the canonical memo::* facade. Each source file
56
+ // owns a unique package for reliable SysIDE indexing; aliases reconstruct the
57
+ // user-facing hierarchy without reopening packages across documents.
58
+ AliasDeclaration:
59
+ 'alias' name=ID 'for' target=QualifiedName ';';
60
+
61
+ // ─── Import ──────────────────────────────────────────────────────────────────
62
+
63
+ ImportDeclaration:
64
+ visibility=('private' | 'public')? 'import' path=ImportPath ';';
65
+
66
+ // Separate rule to handle wildcard imports (e.g. `import MEMO_Ontology_Medical::*`)
67
+ // without LL parser ambiguity on `::` lookahead in QualifiedName
68
+ ImportPath returns string:
69
+ ID ('::' (ID | '*'))*;
70
+
71
+ // ─── Definitions ─────────────────────────────────────────────────────────────
72
+
73
+ DefinitionMember:
74
+ PartDefinition
75
+ | RequirementDefinition
76
+ | ActionDefinition
77
+ | ItemDefinition
78
+ | PortDefinition
79
+ | InterfaceDefinition
80
+ | ConnectionDefinition
81
+ | AttributeDefinition
82
+ | ConstraintDefinition
83
+ | EnumDefinition
84
+ | ViewpointDefinition
85
+ | ViewDefinition
86
+ | MetadataDefinition;
87
+
88
+ // SysML v2 semantic-metadata definition — the standard, portable mechanism for
89
+ // extending the ontology with domain semantics. Applied to elements via `@Name`.
90
+ MetadataDefinition:
91
+ 'metadata' 'def' name=ID specialization=Specialization?
92
+ ('{' body+=DefinitionBodyMember* '}' | ';');
93
+
94
+ // Metadata application: `@AnnotationType;` or `@AnnotationType { redefinitions }`
95
+ // applies a metadata def to the enclosing element (standard SysML v2 `@` annotation).
96
+ MetadataApplication:
97
+ '@' type=QualifiedName ('{' body+=UsageBodyMember* '}' | ';');
98
+
99
+ PartDefinition:
100
+ isAbstract?='abstract'? 'part' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
101
+ ('{' body+=DefinitionBodyMember* '}' | ';');
102
+
103
+ RequirementDefinition:
104
+ isAbstract?='abstract'? 'requirement' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
105
+ ('{' body+=DefinitionBodyMember* '}' | ';');
106
+
107
+ ActionDefinition:
108
+ isAbstract?='abstract'? behaviorKind=('action' | 'operator' | 'function') 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
109
+ ('{' body+=ActionDefBodyMember* '}' | ';');
110
+
111
+ ItemDefinition:
112
+ isAbstract?='abstract'? 'item' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
113
+ ('{' body+=DefinitionBodyMember* '}' | ';');
114
+
115
+ PortDefinition:
116
+ isAbstract?='abstract'? 'port' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
117
+ ('{' body+=DefinitionBodyMember* '}' | ';');
118
+
119
+ InterfaceDefinition:
120
+ isAbstract?='abstract'? 'interface' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
121
+ ('{' body+=DefinitionBodyMember* '}' | ';');
122
+
123
+ ConnectionDefinition:
124
+ isAbstract?='abstract'? 'connection' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
125
+ ('{' body+=ConnectionBodyMember* '}' | ';');
126
+
127
+ AttributeDefinition:
128
+ isAbstract?='abstract'? 'attribute' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
129
+ ('{' body+=DefinitionBodyMember* '}' | ';');
130
+
131
+ ConstraintDefinition:
132
+ isAbstract?='abstract'? 'constraint' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
133
+ ('{' body+=DefinitionBodyMember* '}' | ';');
134
+
135
+ EnumDefinition:
136
+ 'enum' 'def' name=ID '{'
137
+ literals+=EnumLiteral*
138
+ '}';
139
+
140
+ ViewpointDefinition:
141
+ isAbstract?='abstract'? 'viewpoint' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
142
+ ('{' body+=DefinitionBodyMember* '}' | ';');
143
+
144
+ ViewDefinition:
145
+ isAbstract?='abstract'? 'view' 'def' name=ID specialization=Specialization? (',' additionalSpecializations+=QualifiedName)*
146
+ ('{' body+=DefinitionBodyMember* '}' | ';');
147
+
148
+ // ─── Connection definition body ─────────────────────────────────────────────
149
+
150
+ ConnectionBodyMember:
151
+ EndDeclaration | DefinitionBodyMember;
152
+
153
+ EndDeclaration:
154
+ 'end' name=FeatureName (':' type=QualifiedName)? multiplicity=Multiplicity? ';';
155
+
156
+ Multiplicity:
157
+ '[' lower=INT '..' (upper=INT | unbounded?='*') ']'
158
+ | '[' unbounded?='*' ']'
159
+ | '[' exact=INT ']';
160
+
161
+ // ─── Enum literal ────────────────────────────────────────────────────────────
162
+
163
+ EnumLiteral:
164
+ 'enum' name=EnumLiteralName ';';
165
+
166
+ EnumLiteralName returns string:
167
+ ID | 'in' | 'out' | 'inout' | 'part' | 'requirement' | 'action' | 'item' | 'port'
168
+ | 'interface' | 'connection' | 'attribute' | 'constraint' | 'enum' | 'view' | 'viewpoint'
169
+ | 'ref' | 'import' | 'package' | 'flow' | 'first' | 'allocate' | 'library' | 'private' | 'public';
170
+
171
+ // ─── Usages (instances) ─────────────────────────────────────────────────────
172
+
173
+ UsageMember:
174
+ PartUsage
175
+ | RequirementUsage
176
+ | ActionUsage
177
+ | PortUsage
178
+ | ViewUsage;
179
+
180
+ PartUsage:
181
+ 'part' name=ID ':' type=QualifiedName
182
+ ('{' body+=UsageBodyMember* '}' | ';');
183
+
184
+ RequirementUsage:
185
+ 'requirement' name=ID ':' type=QualifiedName
186
+ ('{' body+=UsageBodyMember* '}' | ';');
187
+
188
+ // ActionUsage supports both typed (action name : Type;) and composite
189
+ // (action name { nested-actions, flows, successions }) forms.
190
+ ActionUsage:
191
+ behaviorKind=('action' | 'operator' | 'function') name=ID (':' type=QualifiedName)?
192
+ ('{' body+=ActionUsageBodyMember* '}' | ';');
193
+
194
+ PortUsage:
195
+ direction=('in' | 'out' | 'inout')? 'port' isConjugated?='~'? name=ID ':' type=QualifiedName
196
+ ('{' body+=UsageBodyMember* '}' | ';');
197
+
198
+ ViewUsage:
199
+ 'view' name=ID (':' type=QualifiedName)?
200
+ ('{' body+=ViewBodyMember* '}' | ';');
201
+
202
+ ViewBodyMember:
203
+ UsageBodyMember | ExposeMember;
204
+
205
+ ExposeMember:
206
+ 'expose' path=ExposePath ';';
207
+
208
+ ExposePath returns string:
209
+ ID (('::' | '.') ID)* ('::' ('*' | '**'))?;
210
+
211
+ // ─── Connection usage (typed relationship instances) ─────────────────────────
212
+ // Syntax: connection : Type connect end1 ::> ref1 to end2 ::> ref2 ;
213
+
214
+ ConnectionUsage:
215
+ 'connection' (':' type=QualifiedName)?
216
+ 'connect' source=ConnectionEnd 'to' target=ConnectionEnd ';';
217
+
218
+ ConnectionEnd:
219
+ endName=FeatureName '::>' ref=ReferenceName;
220
+
221
+ // ─── Behavior: Action definition body ───────────────────────────────────────
222
+ // Action defs can have in/out/inout parameters plus regular body members
223
+
224
+ ActionDefBodyMember:
225
+ ActionParameterMember | DefinitionBodyMember;
226
+
227
+ ActionParameterMember:
228
+ direction=('in' | 'out' | 'inout') name=ID ':' type=QualifiedName ';';
229
+
230
+ // ─── Behavior: Action usage body ────────────────────────────────────────────
231
+ // Composite actions contain nested actions, flow connections, successions
232
+
233
+ ActionUsageBodyMember:
234
+ ActionUsage | ControlNodeUsage | FlowConnectionUsage | SuccessionUsage | UsageBodyMember;
235
+
236
+ // ─── Behavior: Control nodes (fork / join) ──────────────────────────────────
237
+ // SysML v2 activity control nodes. A `fork` splits one incoming control flow
238
+ // into concurrent outgoing flows; a `join` synchronizes concurrent flows back
239
+ // into a single flow. They carry no parameters — ordering and the branches
240
+ // they split/merge are expressed by the surrounding succession usages that
241
+ // reference the node by name.
242
+ // fork parallelPrep;
243
+ // first verify then parallelPrep;
244
+ // first parallelPrep then prime;
245
+ // first parallelPrep then selfTest;
246
+ ControlNodeUsage:
247
+ controlKind=('fork' | 'join') name=ID ';';
248
+
249
+ // ─── Behavior: Flow connection usage ────────────────────────────────────────
250
+ // Syntax: flow of ItemType from source.port to target.port ;
251
+
252
+ FlowConnectionUsage:
253
+ 'flow' 'of' itemType=QualifiedName 'from' source=FlowEnd 'to' target=FlowEnd ';';
254
+
255
+ FlowEnd:
256
+ ref=DottedName;
257
+
258
+ // Dot-separated qualified name for flow endpoints (e.g. receive.prescription)
259
+ DottedName returns string:
260
+ ID ('.' ID)*;
261
+
262
+ // ─── Behavior: Succession usage ─────────────────────────────────────────────
263
+ // Syntax: first start then action1 then action2 then done ;
264
+
265
+ SuccessionUsage:
266
+ 'first' steps+=SuccessionStep ('then' steps+=SuccessionStep)+ ';';
267
+
268
+ SuccessionStep:
269
+ ref=SuccessionRef;
270
+
271
+ SuccessionRef returns string:
272
+ 'start' | 'done' | ID;
273
+
274
+ // ─── Behavior: Allocate usage ───────────────────────────────────────────────
275
+ // Syntax: allocate actionUsage to partUsage ;
276
+
277
+ AllocateUsage:
278
+ 'allocate' source=ReferenceName 'to' target=ReferenceName ';';
279
+
280
+ // Element references may be package-qualified (`a::b`) or feature-qualified
281
+ // (`action.step`). Both forms occur in standard SysML relationship ends.
282
+ ReferenceName returns string:
283
+ ID (('::' | '.') ID)*;
284
+
285
+ // ─── Body members ────────────────────────────────────────────────────────────
286
+
287
+ DefinitionBodyMember:
288
+ AttributeMember | PartMember | PortUsage | ViewUsage | RefMember | RequireConstraintMember | MetadataApplication | DocComment;
289
+
290
+ // ─── Constraint expression (KerML boolean subset — ADR-1-18) ─────────────────
291
+ // Authored inside constraint def / requirement def bodies as:
292
+ // require constraint { <boolean expr> }
293
+ // assert constraint { <boolean expr> }
294
+ // Precedence (loosest→tightest): or < and < cmp < add < mul < not < postfix(->) < primary.
295
+
296
+ RequireConstraintMember:
297
+ kind=('require' | 'assert')? 'constraint' '{' expression=OrExpr '}';
298
+
299
+ OrExpr infers ConstraintExpr:
300
+ AndExpr ({infer BinaryExpr.left=current} op='or' right=AndExpr)*;
301
+
302
+ AndExpr infers ConstraintExpr:
303
+ CmpExpr ({infer BinaryExpr.left=current} op='and' right=CmpExpr)*;
304
+
305
+ CmpExpr infers ConstraintExpr:
306
+ AddExpr ({infer BinaryExpr.left=current} op=('==' | '!=' | '>=' | '<=' | '>' | '<') right=AddExpr)?;
307
+
308
+ AddExpr infers ConstraintExpr:
309
+ MulExpr ({infer BinaryExpr.left=current} op=('+' | '-') right=MulExpr)*;
310
+
311
+ MulExpr infers ConstraintExpr:
312
+ UnaryExpr ({infer BinaryExpr.left=current} op=('*' | '/') right=UnaryExpr)*;
313
+
314
+ UnaryExpr infers ConstraintExpr:
315
+ {infer UnaryExpr} op='not' operand=UnaryExpr
316
+ | PostfixExpr;
317
+
318
+ PostfixExpr infers ConstraintExpr:
319
+ PrimaryExpr ({infer CollectionOp.target=current} '->' op=ID '(' (argument=OrExpr)? ')')*;
320
+
321
+ PrimaryExpr infers ConstraintExpr:
322
+ {infer LiteralExpr} intValue=INT
323
+ | {infer LiteralExpr} strValue=STRING
324
+ | {infer LiteralExpr} boolValue=('true' | 'false')
325
+ | {infer FeatureChain} segments+=ID ('.' segments+=ID)*
326
+ | '(' OrExpr ')';
327
+
328
+ // Standard SysML v2 requires a redefinition operator (`redefines` / `:>>`) to bind a
329
+ // value — the bare `name = value;` shorthand is non-standard and is not accepted.
330
+ // Use `attribute redefines name = value;` (the form the serializer emits).
331
+ UsageBodyMember:
332
+ AttributeMember | PartMember | PortUsage | ViewUsage | MetadataApplication | DocComment;
333
+
334
+ // ─── Attribute member ────────────────────────────────────────────────────────
335
+ // Two forms:
336
+ // attribute name : Type ; (type declaration)
337
+ // attribute redefines name = value ; (value assignment / redefinition)
338
+
339
+ AttributeMember:
340
+ 'attribute' redefines?=('redefines' | ':>>')? name=ID
341
+ (':' type=QualifiedName multiplicity=Multiplicity? ';' | '=' value=AttributeValue ';');
342
+
343
+ AttributeValue:
344
+ StringValue | RealValue | IntValue | BooleanValue | SetLiteral | EnumValue;
345
+
346
+ StringValue:
347
+ value=STRING;
348
+
349
+ // Real (rational) literal, e.g. 20.0 — must precede IntValue so the lexer
350
+ // prefers REAL over INT for the integral part.
351
+ RealValue:
352
+ value=REAL;
353
+
354
+ IntValue:
355
+ value=INT;
356
+
357
+ BooleanValue:
358
+ value=('true' | 'false');
359
+
360
+ SetLiteral:
361
+ ('{' elements+=SetElement (',' elements+=SetElement)* '}'
362
+ | '(' elements+=SetElement (',' elements+=SetElement)* ')');
363
+
364
+ SetElement:
365
+ value=QualifiedName | stringValue=STRING;
366
+
367
+ // Enum literal reference: e.g. SeverityLevel::Catastrophic
368
+ EnumValue:
369
+ enumRef=QualifiedName;
370
+
371
+ // ─── Nested part member ──────────────────────────────────────────────────────
372
+ // Three forms:
373
+ // part subsystems : Subsystem[0..*]; (typed nested part)
374
+ // part requirement = reqSingleMode; (feature value binding to a reference)
375
+ // part protectedAsset :> therapyAsset; (subsetting an existing element)
376
+ // The binding forms carry the source/target ends of semantic *Link instances,
377
+ // which the model builder projects into navigable relationships.
378
+
379
+ PartMember:
380
+ 'part'
381
+ (bindingOp=':>>' name=MemberName ('=' boundRef=QualifiedName)?
382
+ | name=MemberName
383
+ (':' type=QualifiedName multiplicity=Multiplicity?)?
384
+ (bindingOp=('=' | ':>') boundRef=QualifiedName)?)
385
+ ('{' body+=UsageBodyMember* '}' | ';');
386
+
387
+ // ─── Reference member ───────────────────────────────────────────────────────
388
+ // e.g. ref subject : TraceableElement[*];
389
+
390
+ RefMember:
391
+ 'ref' name=ID ':' type=QualifiedName multiplicity=Multiplicity? ';';
392
+
393
+ // ─── Doc comment ─────────────────────────────────────────────────────────────
394
+ // Captured as a single terminal to prevent hidden ML_COMMENT from consuming it
395
+
396
+ DocComment:
397
+ content=DOC_COMMENT;
398
+
399
+ // ─── Specialization ──────────────────────────────────────────────────────────
400
+
401
+ Specialization:
402
+ (':>' | 'specializes') superType=QualifiedName;
403
+
404
+ // ─── Qualified name (data type rule → returns string) ────────────────────────
405
+
406
+ QualifiedName returns string:
407
+ QualifiedNameSegment ('::' QualifiedNameTailSegment)*;
408
+
409
+ QualifiedNameSegment returns string:
410
+ ID | 'library';
411
+
412
+ // Non-first segments may be keywords so enum literals declared via
413
+ // EnumLiteralName (e.g. DirectionKind::in, UseErrorCategoryKind::action)
414
+ // are referenceable in attribute values. The first segment stays strict to
415
+ // avoid ambiguity with usage prefixes at statement start.
416
+ QualifiedNameTailSegment returns string:
417
+ QualifiedNameSegment
418
+ | 'in' | 'out' | 'inout' | 'part' | 'requirement' | 'action' | 'item' | 'port'
419
+ | 'interface' | 'connection' | 'attribute' | 'constraint' | 'enum' | 'view' | 'viewpoint'
420
+ | 'ref' | 'import' | 'package' | 'flow' | 'first' | 'allocate' | 'private' | 'public';
421
+
422
+ // Allow keywords as identifiers in member/feature contexts
423
+ MemberName returns string:
424
+ ID | 'requirement' | 'action' | 'item' | 'port' | 'interface' | 'connection'
425
+ | 'attribute' | 'constraint' | 'view' | 'viewpoint' | 'ref' | 'part';
426
+
427
+ FeatureName returns string:
428
+ ID | 'part' | 'requirement' | 'action' | 'item' | 'port' | 'interface'
429
+ | 'connection' | 'flow' | 'view' | 'viewpoint' | 'attribute' | 'constraint'
430
+ | 'ref' | 'allocate' | 'end' | 'enum' | 'function' | 'operator';
431
+
432
+ // ─── Hidden terminals (skipped by lexer) ─────────────────────────────────────
433
+
434
+ hidden terminal WS: /\s+/;
435
+ hidden terminal SL_COMMENT: /\/\/[^\n\r]*/;
436
+ hidden terminal ML_COMMENT: /\/\*[\s\S]*?\*\//;
437
+
438
+ // ─── Visible terminals ──────────────────────────────────────────────────────
439
+
440
+ // DOC_COMMENT captures `doc /* ... */` as a single token.
441
+ // The `doc\s+` prefix ensures it only matches when preceded by the `doc` keyword,
442
+ // preventing conflict with ML_COMMENT for standalone /* ... */ comments.
443
+ terminal DOC_COMMENT: /doc\s+\/\*[\s\S]*?\*\//;
444
+
445
+ terminal ID: /[a-zA-Z_][a-zA-Z0-9_]*/;
446
+ terminal STRING: /"(?:[^"\\]|\\.)*"/;
447
+ // REAL must be declared before INT so the longest-match lexer emits a single
448
+ // REAL token for `20.0` rather than INT `.` INT.
449
+ terminal REAL: /[0-9]+\.[0-9]+/;
450
+ terminal INT: /[0-9]+/;