@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-identity.d.ts","sourceRoot":"","sources":["../../src/model/ir-identity.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAO1D;AAED,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,eAAe,CAS7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,eAAe,CAU1F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAS1E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,eAAe,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,MAAM,GAC/B,eAAe,CAajB;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAEpB;AAID,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAUlF;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI7F;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACrB,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CACxC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,EAC7B,QAAQ,EAAE,aAAa,GACxB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAuBlF"}
@@ -0,0 +1,178 @@
1
+ // ─── IR identity: the address every authoring write is made against ──────────
2
+ //
3
+ // Session 3 made the canonical IR the ingestion boundary. Authoring still
4
+ // addressed elements the old way — by authored name, matched with a regular
5
+ // expression over the source text — so two declarations with the same name in
6
+ // different namespaces were the same target as far as a write was concerned,
7
+ // and a rename made the write silently miss.
8
+ //
9
+ // An IR identity is `file-URI + declaration path + metaclass`. It is positional
10
+ // by construction, which is the point: inserting a declaration ahead of another
11
+ // changes the second one's address, so an identity minted against an older
12
+ // revision is *detectably* old rather than quietly pointing at a neighbour.
13
+ // Every write therefore either resolves its identity against the current IR or
14
+ // fails loudly — `StaleIrIdentityError`, naming the identity and what it found.
15
+ //
16
+ // Nothing here reads the filesystem or spawns anything: it is a resolver over
17
+ // an IR that some lowering provider already produced.
18
+ // ─────────────────────────────────────────────────────────────────────────────
19
+ import { resolve } from 'node:path';
20
+ import { pathToFileURL } from 'node:url';
21
+ /**
22
+ * A write was made against an identity the current IR does not have.
23
+ *
24
+ * Loud on purpose. The alternative — falling back to a name lookup — is how a
25
+ * write ends up editing the wrong element, which is the failure this whole
26
+ * module exists to make impossible.
27
+ */
28
+ export class StaleIrIdentityError extends Error {
29
+ identityId;
30
+ constructor(identityId, detail) {
31
+ super(`The edit targets "${identityId}", which is not in the current model revision: ${detail}. `
32
+ + 'Reload the element and repeat the edit; no file was written.');
33
+ this.identityId = identityId;
34
+ this.name = 'StaleIrIdentityError';
35
+ }
36
+ }
37
+ /**
38
+ * Index one IR for identity resolution.
39
+ *
40
+ * Both directions are needed and neither is derivable cheaply from the other:
41
+ * the client holds Memo element IDs and has to mint an identity from one, and
42
+ * the server holds an identity and has to find what it names.
43
+ */
44
+ export function buildIrIdentityIndex(ir) {
45
+ const byMemoElement = {};
46
+ const byIdentity = new Map();
47
+ for (const element of ir?.elements ?? []) {
48
+ const memoElementId = element.kind === 'mapped' ? element.memoElementId : undefined;
49
+ byIdentity.set(element.identity.id, { identity: element.identity, memoElementId });
50
+ if (memoElementId)
51
+ byMemoElement[memoElementId] = element.identity.id;
52
+ }
53
+ return { byMemoElement, byIdentity };
54
+ }
55
+ /**
56
+ * Rebuild an index from the compact table alone.
57
+ *
58
+ * The whole IR is not shipped with a model update — `standardProperties` carry
59
+ * every declared property of every node, and a surface that only needs to
60
+ * *address* an element does not need its contents. The identity ID is a
61
+ * self-describing string, so the table is enough to reconstruct everything the
62
+ * resolver uses.
63
+ */
64
+ export function indexFromIdentityTable(table) {
65
+ const byMemoElement = {};
66
+ const byIdentity = new Map();
67
+ for (const [memoElementId, identityId] of Object.entries(table ?? {})) {
68
+ const identity = parseSysmlIdentityId(identityId);
69
+ if (!identity)
70
+ continue;
71
+ byMemoElement[memoElementId] = identityId;
72
+ byIdentity.set(identityId, { identity, memoElementId });
73
+ }
74
+ return { byMemoElement, byIdentity };
75
+ }
76
+ /**
77
+ * Read an identity ID back into its parts.
78
+ *
79
+ * `file:///…/model/a.sysml#members[0]/members[2]:PartUsage`. The file URI may
80
+ * itself contain `#` only if percent-encoded, and the metaclass never contains
81
+ * `:`, so splitting at the first `#` and the last `:` is unambiguous.
82
+ */
83
+ export function parseSysmlIdentityId(id) {
84
+ const hash = id.indexOf('#');
85
+ const colon = id.lastIndexOf(':');
86
+ if (hash < 0 || colon < hash)
87
+ return undefined;
88
+ const fileUri = id.slice(0, hash);
89
+ const declarationPath = id.slice(hash + 1, colon);
90
+ const metaclass = id.slice(colon + 1);
91
+ if (!fileUri || !declarationPath || !metaclass)
92
+ return undefined;
93
+ return { fileUri, declarationPath, metaclass, id };
94
+ }
95
+ /**
96
+ * The compact table shipped with a model update.
97
+ *
98
+ * The whole IR is not sent: its `standardProperties` carry every declared
99
+ * property of every node, and a client that only needs to address an element
100
+ * does not need its contents.
101
+ */
102
+ export function irIdentityTable(ir) {
103
+ return buildIrIdentityIndex(ir).byMemoElement;
104
+ }
105
+ /**
106
+ * Resolve an identity ID against the current IR, or fail loudly.
107
+ *
108
+ * `expectedMemoElementId`, when given, is checked too: an identity that still
109
+ * exists but now names a different element is exactly as stale as one that has
110
+ * disappeared, and it is the more dangerous of the two.
111
+ */
112
+ export function requireIrIdentity(index, identityId, expectedMemoElementId) {
113
+ const found = index.byIdentity.get(identityId);
114
+ if (!found) {
115
+ throw new StaleIrIdentityError(identityId, 'no declaration in the current IR has that identity');
116
+ }
117
+ if (expectedMemoElementId !== undefined && found.memoElementId !== expectedMemoElementId) {
118
+ throw new StaleIrIdentityError(identityId, `it now names ${found.memoElementId ? `element "${found.memoElementId}"` : 'a declaration Memo does not project'}, `
119
+ + `not "${expectedMemoElementId}"`);
120
+ }
121
+ return found;
122
+ }
123
+ /** The identity a client should quote when it writes to this element. */
124
+ export function identityForMemoElement(index, memoElementId) {
125
+ return index.byMemoElement[memoElementId];
126
+ }
127
+ // ─── Locating the declaration an identity names ─────────────────────────────
128
+ /** `members[3]/members[1]` → `[3, 1]`. Any other shape is not a path we minted. */
129
+ export function parseDeclarationPath(declarationPath) {
130
+ const segments = declarationPath.split('/').filter(Boolean);
131
+ if (segments.length === 0)
132
+ return undefined;
133
+ const indexes = [];
134
+ for (const segment of segments) {
135
+ const match = /^members\[(\d+)\]$/.exec(segment);
136
+ if (!match)
137
+ return undefined;
138
+ indexes.push(Number(match[1]));
139
+ }
140
+ return indexes;
141
+ }
142
+ /** The project-relative file an identity's URI names, given the project root. */
143
+ export function identityFile(identity, projectRoot) {
144
+ const roots = pathToFileURL(resolve(projectRoot)).href.replace(/\/$/, '');
145
+ if (!identity.fileUri.startsWith(`${roots}/`))
146
+ return undefined;
147
+ return decodeURIComponent(identity.fileUri.slice(roots.length + 1));
148
+ }
149
+ /** True when this identity was minted for that project-relative file. */
150
+ export function identityNamesFile(identity, projectRoot, relativePath) {
151
+ return identityFile(identity, projectRoot) === relativePath.replaceAll('\\', '/');
152
+ }
153
+ /**
154
+ * Walk a parsed document to the declaration an identity addresses.
155
+ *
156
+ * The metaclass is verified, not assumed: a path that still resolves but to a
157
+ * different kind of declaration means the file was edited underneath this
158
+ * identity, and continuing would rewrite the wrong lines.
159
+ */
160
+ export function resolveDeclarationByIdentity(root, identity) {
161
+ const path = parseDeclarationPath(identity.declarationPath);
162
+ if (!path) {
163
+ throw new StaleIrIdentityError(identity.id, `"${identity.declarationPath}" is not a declaration path`);
164
+ }
165
+ let node = root;
166
+ for (const [depth, index] of path.entries()) {
167
+ const members = node?.members;
168
+ if (!Array.isArray(members) || index >= members.length) {
169
+ throw new StaleIrIdentityError(identity.id, `the source no longer has a declaration at ${path.slice(0, depth + 1).map(i => `members[${i}]`).join('/')}`);
170
+ }
171
+ node = members[index];
172
+ }
173
+ if (node?.$type !== identity.metaclass) {
174
+ throw new StaleIrIdentityError(identity.id, `that position now holds a ${node?.$type ?? 'nothing'}, not a ${identity.metaclass}`);
175
+ }
176
+ return node;
177
+ }
178
+ //# sourceMappingURL=ir-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-identity.js","sourceRoot":"","sources":["../../src/model/ir-identity.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,25 @@
1
- import type { KindDefinition, SysMLConstruct } from './config.js';
1
+ import type { SysMLConstruct } from './config.js';
2
+ /**
3
+ * A kind as the registry reports it.
4
+ *
5
+ * This shape used to live in `config.ts`, where a YAML `kinds:` block could
6
+ * declare one. Kinds come from the ontology's own `part def` / `item def`
7
+ * declarations now, so the shape belongs to the registry that derives it.
8
+ */
9
+ export interface KindDefinition {
10
+ /** Human-readable label */
11
+ label: string;
12
+ /** Architecture layer this kind belongs to */
13
+ layer?: string;
14
+ /** SysML v2 construct this kind maps to */
15
+ sysmlConstruct: SysMLConstruct;
16
+ /** Icon identifier for the palette/diagram */
17
+ icon?: string;
18
+ /** Template file for new instances */
19
+ template?: string;
20
+ /** Default attributes for new instances */
21
+ defaultAttributes?: Record<string, string>;
22
+ }
2
23
  import type { ParsedDocument } from './parser-utils.js';
3
24
  import type { KindDefinitionDTO } from './relationship-legality.js';
4
25
  /** Entry in the KindRegistry, matching KindDefinition shape */
@@ -25,6 +46,29 @@ export interface KindRegistryEntry {
25
46
  isAbstract?: boolean;
26
47
  /** Namespace segments mirrored by the ontology source folders. */
27
48
  namespace?: string[];
49
+ /**
50
+ * Fully qualified name, e.g. `memo::ontology::assurance::safety_risk::Hazard`.
51
+ *
52
+ * This is the registry's real identity. `name` is a short index into it,
53
+ * which resolves only while it is unambiguous — see `getCollisions`.
54
+ */
55
+ qualifiedName?: string;
56
+ /** Source file this definition was declared in. */
57
+ sourceFile?: string;
58
+ }
59
+ /**
60
+ * Two definitions sharing a short name.
61
+ *
62
+ * Previously the second silently replaced the first in a `Map` keyed by short
63
+ * name, so which one survived depended on file iteration order and the loss was
64
+ * invisible. Collisions are now recorded and surfaced as load diagnostics.
65
+ */
66
+ export interface KindNameCollision {
67
+ shortName: string;
68
+ /** Qualified names competing for the short name, in discovery order. */
69
+ qualifiedNames: string[];
70
+ /** Files declaring them, aligned with `qualifiedNames`. */
71
+ sourceFiles: string[];
28
72
  }
29
73
  /**
30
74
  * Registry that discovers kinds from SysML AST Definition nodes.
@@ -32,6 +76,27 @@ export interface KindRegistryEntry {
32
76
  */
33
77
  export declare class KindRegistry {
34
78
  private readonly kinds;
79
+ /**
80
+ * Attribute values bound by a `view def`, keyed by definition name, with the
81
+ * definition's own supertype chain already merged in.
82
+ *
83
+ * A view usage inherits these — `view mainScreenLayout : MemoScreenLayoutView`
84
+ * gets that definition's `viewKind` without restating it, and SysIDE in fact
85
+ * REJECTS restating it ("Cannot override a binding feature value"). So the
86
+ * definition is the only place the value can live, and consumers resolve a
87
+ * usage's presentation by falling back here.
88
+ *
89
+ * View definitions are not registered as kinds: they classify views, not
90
+ * model elements, and adding them to the kind extent would put them in the
91
+ * Explorer and in kind counts where they do not belong.
92
+ */
93
+ private readonly viewDefaults;
94
+ private readonly viewSuperTypes;
95
+ /** short name → the qualified name it currently resolves to. */
96
+ private readonly byQualifiedName;
97
+ /** qualified name → declaring file, for collision diagnostics. */
98
+ private readonly sourceFiles;
99
+ private readonly collisions;
35
100
  /** Number of registered kinds */
36
101
  get size(): number;
37
102
  /**
@@ -39,6 +104,11 @@ export declare class KindRegistry {
39
104
  * Returns undefined if the kind is not registered.
40
105
  */
41
106
  getKind(name: string): KindRegistryEntry | undefined;
107
+ /**
108
+ * Attribute values a view usage inherits from its `view def`, resolved up
109
+ * the definition's specialization chain (nearest declaration wins).
110
+ */
111
+ getViewDefaults(viewDefName: string | undefined): Record<string, string> | undefined;
42
112
  /**
43
113
  * Convert a registry entry to a KindDefinition (for backward compat with builder).
44
114
  */
@@ -81,6 +151,24 @@ export declare class KindRegistry {
81
151
  }[];
82
152
  /** Register a kind manually (for testing or config fallback) */
83
153
  register(entry: KindRegistryEntry): void;
154
+ /**
155
+ * Track qualified identity alongside the short-name map.
156
+ *
157
+ * Short-name lookup is kept as-is so every existing caller keeps working;
158
+ * what changes is that a shadowed definition is no longer lost silently.
159
+ * A re-registration of the SAME qualified name is not a collision — that
160
+ * happens legitimately when a registry is copied in `withProjectExtensions`.
161
+ */
162
+ private recordIdentity;
163
+ /**
164
+ * Short names claimed by more than one qualified definition.
165
+ *
166
+ * Callers surface these as load diagnostics: a reference to an ambiguous
167
+ * short name cannot be resolved by load order and needs qualifying.
168
+ */
169
+ getCollisions(): KindNameCollision[];
170
+ /** Qualified name a short name currently resolves to. */
171
+ getQualifiedName(shortName: string): string | undefined;
84
172
  /**
85
173
  * Compute the derivedBy reverse-lookup for all kinds.
86
174
  * Must be called after populateFromDocuments() is complete.
@@ -94,4 +182,29 @@ export declare class KindRegistry {
94
182
  /** Walk a package declaration and register all Definition nodes */
95
183
  private walkPackage;
96
184
  }
185
+ /**
186
+ * The ontology facts a formatter or importer needs, derived from the registries.
187
+ *
188
+ * Consumers used to take a `MEMOConfig` and read `config.kinds` and
189
+ * `config.relationshipTypes` off it, which meant a settings file could declare
190
+ * a kind the ontology never defined. They take this instead: it can only be
191
+ * built from what the resolved SysML declares.
192
+ */
193
+ export interface OntologyView {
194
+ kinds: Record<string, KindDefinition>;
195
+ relationshipTypes: Array<{
196
+ name: string;
197
+ label: string;
198
+ layer: string;
199
+ color: string;
200
+ }>;
201
+ }
202
+ /** An empty view — what a caller has before any ontology is resolved. */
203
+ export declare const EMPTY_ONTOLOGY_VIEW: OntologyView;
204
+ /** Build a view from populated registries. */
205
+ export declare function ontologyViewFrom(kindRegistry?: {
206
+ toKindsRecord(): Record<string, KindDefinition>;
207
+ }, relationshipRegistry?: {
208
+ toRelationshipTypesArray(): OntologyView['relationshipTypes'];
209
+ }): OntologyView;
97
210
  //# sourceMappingURL=kind-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kind-registry.d.ts","sourceRoot":"","sources":["../../src/model/kind-registry.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAiBD;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIpD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAU1D;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAY/C,oCAAoC;IACpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,yBAAyB;IACzB,SAAS,IAAI,MAAM,EAAE;IAIrB,sBAAsB;IACtB,OAAO,IAAI,iBAAiB,EAAE;IAI9B;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,YAAY;IAyDhE;;;;OAIG;IACH,gBAAgB,IAAI,iBAAiB,EAAE;IAYvC,wEAAwE;IACxE,mBAAmB,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,EAAE;IAczE,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIxC;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAiBxB;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IAexD,mEAAmE;IACnE,OAAO,CAAC,WAAW;CA4CtB"}
1
+ {"version":3,"file":"kind-registry.d.ts","sourceRoot":"","sources":["../../src/model/kind-registry.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,36 @@
14
14
  import { isPartDefinition, isRequirementDefinition, isVerificationDefinition, isStateDefinition, isUseCaseDeclaration, isActionDefinition, isItemDefinition, isPortDefinition, isInterfaceDefinition, isAttributeDefinition, isEnumDefinition, isPackageDeclaration, } from '../language/generated/ast.js';
15
15
  import { resolveLayerFromPath, resolveNamespaceFromPath, resolveStandardFromPath } from './layer-resolver.js';
16
16
  /** AST $type → SysMLConstruct mapping */
17
+ /**
18
+ * Literal attribute values declared in a definition body. Only literals are
19
+ * read: an inherited presentation hint is always a literal, and anything else
20
+ * belongs to the usage.
21
+ */
22
+ function extractBoundAttributes(body) {
23
+ const out = {};
24
+ for (const member of body ?? []) {
25
+ if (member?.$type !== 'AttributeMember' || !member.value || !member.name)
26
+ continue;
27
+ const v = member.value;
28
+ switch (v.$type) {
29
+ case 'StringValue':
30
+ out[member.name] = String(v.value).replace(/^"|"$/g, '');
31
+ break;
32
+ case 'IntValue':
33
+ case 'RealValue':
34
+ out[member.name] = String(v.value);
35
+ break;
36
+ case 'BooleanValue':
37
+ out[member.name] = String(v.value);
38
+ break;
39
+ case 'EnumValue':
40
+ out[member.name] = String(v.enumRef ?? '');
41
+ break;
42
+ default: break;
43
+ }
44
+ }
45
+ return out;
46
+ }
17
47
  const AST_TYPE_TO_CONSTRUCT = {
18
48
  PartDefinition: 'part def',
19
49
  RequirementDefinition: 'requirement def',
@@ -33,6 +63,27 @@ const AST_TYPE_TO_CONSTRUCT = {
33
63
  */
34
64
  export class KindRegistry {
35
65
  kinds = new Map();
66
+ /**
67
+ * Attribute values bound by a `view def`, keyed by definition name, with the
68
+ * definition's own supertype chain already merged in.
69
+ *
70
+ * A view usage inherits these — `view mainScreenLayout : MemoScreenLayoutView`
71
+ * gets that definition's `viewKind` without restating it, and SysIDE in fact
72
+ * REJECTS restating it ("Cannot override a binding feature value"). So the
73
+ * definition is the only place the value can live, and consumers resolve a
74
+ * usage's presentation by falling back here.
75
+ *
76
+ * View definitions are not registered as kinds: they classify views, not
77
+ * model elements, and adding them to the kind extent would put them in the
78
+ * Explorer and in kind counts where they do not belong.
79
+ */
80
+ viewDefaults = new Map();
81
+ viewSuperTypes = new Map();
82
+ /** short name → the qualified name it currently resolves to. */
83
+ byQualifiedName = new Map();
84
+ /** qualified name → declaring file, for collision diagnostics. */
85
+ sourceFiles = new Map();
86
+ collisions = new Map();
36
87
  /** Number of registered kinds */
37
88
  get size() {
38
89
  return this.kinds.size;
@@ -44,6 +95,26 @@ export class KindRegistry {
44
95
  getKind(name) {
45
96
  return this.kinds.get(name);
46
97
  }
98
+ /**
99
+ * Attribute values a view usage inherits from its `view def`, resolved up
100
+ * the definition's specialization chain (nearest declaration wins).
101
+ */
102
+ getViewDefaults(viewDefName) {
103
+ if (!viewDefName)
104
+ return undefined;
105
+ const merged = {};
106
+ const seen = new Set();
107
+ let name = viewDefName;
108
+ while (name && !seen.has(name)) {
109
+ seen.add(name);
110
+ for (const [k, v] of Object.entries(this.viewDefaults.get(name) ?? {})) {
111
+ if (!(k in merged))
112
+ merged[k] = v; // nearest declaration wins
113
+ }
114
+ name = this.viewSuperTypes.get(name);
115
+ }
116
+ return Object.keys(merged).length > 0 ? merged : undefined;
117
+ }
47
118
  /**
48
119
  * Convert a registry entry to a KindDefinition (for backward compat with builder).
49
120
  */
@@ -106,6 +177,12 @@ export class KindRegistry {
106
177
  derivedBy: entry.derivedBy ? [...entry.derivedBy] : undefined,
107
178
  });
108
179
  }
180
+ for (const [name, defaults] of this.viewDefaults) {
181
+ result.viewDefaults.set(name, { ...defaults });
182
+ }
183
+ for (const [name, superType] of this.viewSuperTypes) {
184
+ result.viewSuperTypes.set(name, superType);
185
+ }
109
186
  const discovered = new KindRegistry();
110
187
  discovered.populateFromDocuments(documents);
111
188
  let pending = discovered.entries().filter(entry => !result.has(entry.name));
@@ -185,8 +262,50 @@ export class KindRegistry {
185
262
  }
186
263
  /** Register a kind manually (for testing or config fallback) */
187
264
  register(entry) {
265
+ this.recordIdentity(entry);
188
266
  this.kinds.set(entry.name, entry);
189
267
  }
268
+ /**
269
+ * Track qualified identity alongside the short-name map.
270
+ *
271
+ * Short-name lookup is kept as-is so every existing caller keeps working;
272
+ * what changes is that a shadowed definition is no longer lost silently.
273
+ * A re-registration of the SAME qualified name is not a collision — that
274
+ * happens legitimately when a registry is copied in `withProjectExtensions`.
275
+ */
276
+ recordIdentity(entry) {
277
+ const qualified = entry.qualifiedName ?? entry.name;
278
+ const existing = this.byQualifiedName.get(entry.name);
279
+ if (existing && existing !== qualified) {
280
+ const collision = this.collisions.get(entry.name) ?? {
281
+ shortName: entry.name,
282
+ qualifiedNames: [existing],
283
+ sourceFiles: [this.sourceFiles.get(existing) ?? '(unknown)'],
284
+ };
285
+ if (!collision.qualifiedNames.includes(qualified)) {
286
+ collision.qualifiedNames.push(qualified);
287
+ collision.sourceFiles.push(entry.sourceFile ?? '(unknown)');
288
+ }
289
+ this.collisions.set(entry.name, collision);
290
+ }
291
+ this.byQualifiedName.set(entry.name, qualified);
292
+ if (entry.sourceFile)
293
+ this.sourceFiles.set(qualified, entry.sourceFile);
294
+ }
295
+ /**
296
+ * Short names claimed by more than one qualified definition.
297
+ *
298
+ * Callers surface these as load diagnostics: a reference to an ambiguous
299
+ * short name cannot be resolved by load order and needs qualifying.
300
+ */
301
+ getCollisions() {
302
+ return [...this.collisions.values()]
303
+ .sort((a, b) => a.shortName.localeCompare(b.shortName));
304
+ }
305
+ /** Qualified name a short name currently resolves to. */
306
+ getQualifiedName(shortName) {
307
+ return this.byQualifiedName.get(shortName);
308
+ }
190
309
  /**
191
310
  * Compute the derivedBy reverse-lookup for all kinds.
192
311
  * Must be called after populateFromDocuments() is complete.
@@ -220,16 +339,30 @@ export class KindRegistry {
220
339
  const namespace = resolveNamespaceFromPath(doc.filePath);
221
340
  for (const member of model.members) {
222
341
  if (isPackageDeclaration(member)) {
223
- this.walkPackage(member, layer, standard, namespace);
342
+ this.walkPackage(member, layer, standard, namespace, [], doc.filePath);
224
343
  }
225
344
  }
226
345
  }
227
346
  }
228
347
  /** Walk a package declaration and register all Definition nodes */
229
- walkPackage(pkg, layer, standard, namespace) {
348
+ walkPackage(pkg, layer, standard, namespace, packagePath = [], sourceFile) {
349
+ // A declaration's qualified name is the enclosing package chain, which
350
+ // is why nested package declarations are required: a file declaring
351
+ // `package a::b` gives no chain to walk.
352
+ const here = pkg.name ? [...packagePath, pkg.name] : packagePath;
230
353
  for (const member of pkg.members) {
231
354
  if (isPackageDeclaration(member)) {
232
- this.walkPackage(member, layer, standard, namespace);
355
+ this.walkPackage(member, layer, standard, namespace, here, sourceFile);
356
+ continue;
357
+ }
358
+ if (member.$type === 'ViewDefinition') {
359
+ const viewName = member.name;
360
+ if (viewName) {
361
+ this.viewDefaults.set(viewName, extractBoundAttributes(member.body));
362
+ const sup = member.specialization?.superType;
363
+ if (sup)
364
+ this.viewSuperTypes.set(viewName, sup);
365
+ }
233
366
  continue;
234
367
  }
235
368
  // Check each definition type
@@ -253,7 +386,7 @@ export class KindRegistry {
253
386
  const superType = 'specialization' in member
254
387
  ? member.specialization?.superType
255
388
  : undefined;
256
- this.kinds.set(name, {
389
+ this.register({
257
390
  name,
258
391
  label: name,
259
392
  layer,
@@ -262,9 +395,20 @@ export class KindRegistry {
262
395
  standard,
263
396
  isAbstract: ('isAbstract' in member && member.isAbstract) || undefined,
264
397
  namespace,
398
+ qualifiedName: [...here, name].join('::'),
399
+ sourceFile,
265
400
  });
266
401
  }
267
402
  }
268
403
  }
269
404
  }
405
+ /** An empty view — what a caller has before any ontology is resolved. */
406
+ export const EMPTY_ONTOLOGY_VIEW = { kinds: {}, relationshipTypes: [] };
407
+ /** Build a view from populated registries. */
408
+ export function ontologyViewFrom(kindRegistry, relationshipRegistry) {
409
+ return {
410
+ kinds: kindRegistry?.toKindsRecord() ?? {},
411
+ relationshipTypes: relationshipRegistry?.toRelationshipTypesArray() ?? [],
412
+ };
413
+ }
270
414
  //# sourceMappingURL=kind-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kind-registry.js","sourceRoot":"","sources":["../../src/model/kind-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kind-registry.js","sourceRoot":"","sources":["../../src/model/kind-registry.ts"],"names":[],"mappings":"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"}
@@ -118,7 +118,7 @@ export function resolveStandardFromPath(filePath) {
118
118
  afterSysml = normalized.substring(6);
119
119
  }
120
120
  else {
121
- // Vendored ontology convention: src/compliance/<standard>/<file>.sysml
121
+ // Vendored ontology convention: src/<layer>/<module>/<file>.sysml
122
122
  const m = normalized.match(/\/src\/compliance\/([^/]+)\/[^/]+\.sysml$/);
123
123
  return m ? m[1] : undefined;
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"layer-resolver.js","sourceRoot":"","sources":["../../src/model/layer-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layer-resolver.js","sourceRoot":"","sources":["../../src/model/layer-resolver.ts"],"names":[],"mappings":"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"}