@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,115 @@
1
+ import type { NativeMethodBinding, NativeMethodology, NativeRulePolicy, ScopeMode } from './native-project.js';
2
+ import type { CompiledConstraint } from '../validator/constraint-eval.js';
3
+ /** Severity as the ontology and policies spell it. */
4
+ export type RuleSeverity = 'error' | 'warning' | 'info';
5
+ /** How far a rule may be tailored, from the rule's own `tailoring` attribute. */
6
+ export type RuleTailoring = 'invariant' | 'assurance' | 'methodology';
7
+ /** One step in the chain that produced a rule's effective disposition. */
8
+ export interface PolicyChainEntry {
9
+ /** Methodology usage name, or the binding's usage name for a project policy. */
10
+ source: string;
11
+ /** 'methodology' or 'project' — which authority applied it. */
12
+ level: 'methodology' | 'project';
13
+ policy: NativeRulePolicy;
14
+ }
15
+ /** A rule and everything that happened to it. */
16
+ export interface EffectiveRule {
17
+ /** The rule as originally defined. */
18
+ sourceRuleId: string;
19
+ sourceRuleType: string;
20
+ /** The rule that actually evaluates; differs from the source when replaced. */
21
+ activeRuleId: string;
22
+ activeRuleType: string;
23
+ disposition: 'enabled' | 'disabled' | 'replaced';
24
+ /** Severity after any override. */
25
+ effectiveSeverity: RuleSeverity;
26
+ /** Severity as the ontology authored it. */
27
+ declaredSeverity: RuleSeverity;
28
+ tailoring: RuleTailoring;
29
+ /** Every policy that touched this rule, base-first. */
30
+ policyChain: PolicyChainEntry[];
31
+ /** Rationale and authority from the last policy that changed the rule. */
32
+ rationaleText?: string;
33
+ authority?: string;
34
+ approvalReference?: string;
35
+ /** Where the rule is declared. */
36
+ sourceFile?: string;
37
+ }
38
+ export interface RuleResolutionDiagnostic {
39
+ code: 'missing-target' | 'missing-replacement' | 'duplicate-rule-id' | 'invariant-protected' | 'replacement-without-target' | 'missing-rationale' | 'ambiguous-target'
40
+ /** Resolution itself threw. Reported so the UI shows why the set is empty. */
41
+ | 'resolution-failed';
42
+ message: string;
43
+ ruleId?: string;
44
+ policy?: string;
45
+ file?: string;
46
+ }
47
+ export interface MethodologyDiagnostic {
48
+ code: 'missing-base' | 'inheritance-cycle' | 'unavailable-module' | 'scope-mode-conflict';
49
+ message: string;
50
+ methodology?: string;
51
+ }
52
+ /** The methodology chain plus its merged selection. */
53
+ export interface EffectiveMethodology {
54
+ /** Base first, selected methodology last. */
55
+ chain: NativeMethodology[];
56
+ scopeMode: ScopeMode;
57
+ includedLayers: string[];
58
+ includedModules: string[];
59
+ includedStandards: string[];
60
+ includedArtifactKinds: string[];
61
+ includedViewpoints: string[];
62
+ /** Policies in application order: base methodology first, project binding last. */
63
+ policyChain: PolicyChainEntry[];
64
+ diagnostics: MethodologyDiagnostic[];
65
+ }
66
+ /**
67
+ * Walk the methodology inheritance chain and merge its selection.
68
+ *
69
+ * Exactly one base per methodology, so the chain is a list. The resolver walks
70
+ * base-first and then applies the child, which is also the order policies are
71
+ * applied in: a child methodology may tailor what its base decided, and the
72
+ * project binding gets the last word.
73
+ */
74
+ export declare function resolveEffectiveMethodology(binding: NativeMethodBinding | undefined, methodologies: Map<string, NativeMethodology>, availablePackages: ReadonlySet<string>): EffectiveMethodology;
75
+ /** A rule as the constraint loader found it, plus the metadata policies need. */
76
+ export interface RuleCandidate {
77
+ /** Stable rule ID, e.g. "CR-MED-040". Durable identity for audit records. */
78
+ id: string;
79
+ /** The `constraint def` name, which is what a policy references. */
80
+ typeName: string;
81
+ severity: RuleSeverity;
82
+ tailoring: RuleTailoring;
83
+ file?: string;
84
+ constraint?: CompiledConstraint;
85
+ }
86
+ /**
87
+ * Map compiled native constraints onto rule candidates.
88
+ *
89
+ * One place, because both `memo rules` and the dev server need it and they got
90
+ * the field names wrong independently — `collectNativeConstraints` returns
91
+ * `id`/`typeName`/`sourceFile`, not `ruleId`/`ruleType`/`file`. A rule whose
92
+ * identity does not survive this mapping resolves as `undefined` and is
93
+ * unauditable, which is the opposite of what section 10.4 asks for.
94
+ *
95
+ * A constraint with no `typeName` is skipped: a policy references a rule by its
96
+ * `constraint def` name, so a rule without one cannot be tailored and does not
97
+ * belong in a set whose purpose is recording tailoring decisions.
98
+ */
99
+ export declare function ruleCandidatesFromConstraints(constraints: readonly CompiledConstraint[]): RuleCandidate[];
100
+ export interface EffectiveRuleSet {
101
+ rules: EffectiveRule[];
102
+ diagnostics: RuleResolutionDiagnostic[];
103
+ /** The constraints that should actually be evaluated, in rule-ID order. */
104
+ activeConstraints: CompiledConstraint[];
105
+ }
106
+ /**
107
+ * Produce the effective rule set.
108
+ *
109
+ * Steps 1-3 of section 10.3 (collecting rules from ontology, extension, and
110
+ * methodology packages) happen upstream: `collectNativeConstraints` walks the
111
+ * resolved closure, which is exactly the set of packages those steps describe.
112
+ * This function is steps 4-9 — apply policies base-first, validate, and emit.
113
+ */
114
+ export declare function resolveEffectiveRules(candidates: RuleCandidate[], policyChain: PolicyChainEntry[]): EffectiveRuleSet;
115
+ //# sourceMappingURL=methodology-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methodology-resolver.d.ts","sourceRoot":"","sources":["../../src/model/methodology-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,317 @@
1
+ // ─── Effective Methodology and Effective Rule Resolution ──────────────────────
2
+ //
3
+ // What a project's methodology actually amounts to, and which rules are live.
4
+ //
5
+ // Both resolvers are deterministic: the same source produces the same result in
6
+ // the same order, and every entry says where it came from. There is no
7
+ // "last duplicate wins" anywhere — a duplicate rule ID is an error, and a rule
8
+ // is replaced only through an explicit `RulePolicy`.
9
+ //
10
+ // Under the section 4.1 Option P verdict this layer governs rule *identity and
11
+ // disposition*: which rules are in the effective set, at what severity, under
12
+ // whose authority. Whether a rule's predicate fires is a separate question that
13
+ // `predicateExpression` still answers, and nothing here should be reported as
14
+ // evidence that a model was validated.
15
+ //
16
+ // Design reference: sections 9.1-9.3, 10.1-10.4.
17
+ // ─────────────────────────────────────────────────────────────────────────────
18
+ /**
19
+ * Walk the methodology inheritance chain and merge its selection.
20
+ *
21
+ * Exactly one base per methodology, so the chain is a list. The resolver walks
22
+ * base-first and then applies the child, which is also the order policies are
23
+ * applied in: a child methodology may tailor what its base decided, and the
24
+ * project binding gets the last word.
25
+ */
26
+ export function resolveEffectiveMethodology(binding, methodologies, availablePackages) {
27
+ const diagnostics = [];
28
+ const chain = [];
29
+ let current = binding?.selectedMethodologyName
30
+ ? methodologies.get(binding.selectedMethodologyName)
31
+ : undefined;
32
+ const seen = new Set();
33
+ while (current) {
34
+ if (seen.has(current.usageName)) {
35
+ diagnostics.push({
36
+ code: 'inheritance-cycle',
37
+ message: `Methodology inheritance cycles back to "${current.usageName}". A methodology chain must `
38
+ + `terminate; a cycle has no base to resolve first.`,
39
+ methodology: current.usageName,
40
+ });
41
+ break;
42
+ }
43
+ seen.add(current.usageName);
44
+ chain.unshift(current);
45
+ if (!current.baseMethodologyName)
46
+ break;
47
+ const base = methodologies.get(current.baseMethodologyName);
48
+ if (!base) {
49
+ diagnostics.push({
50
+ code: 'missing-base',
51
+ message: `Methodology "${current.usageName}" specializes "${current.baseMethodologyName}", which no `
52
+ + `resolved package declares.`,
53
+ methodology: current.usageName,
54
+ });
55
+ break;
56
+ }
57
+ current = base;
58
+ }
59
+ // The selected methodology decides the mode; a base cannot widen a child.
60
+ const selected = chain[chain.length - 1];
61
+ const scopeMode = binding?.scopeMode === 'allAvailable'
62
+ ? 'allAvailable'
63
+ : selected?.scopeMode ?? 'explicit';
64
+ const merge = (pick) => {
65
+ const out = [];
66
+ for (const m of chain)
67
+ for (const v of pick(m))
68
+ if (!out.includes(v))
69
+ out.push(v);
70
+ return out;
71
+ };
72
+ const includedModules = merge(m => m.includedModules);
73
+ for (const extra of binding?.includedModules ?? []) {
74
+ if (!includedModules.includes(extra))
75
+ includedModules.push(extra);
76
+ }
77
+ // A module the methodology names but the import graph never resolved is a
78
+ // hard diagnostic: a string naming an unavailable package is not a selection.
79
+ for (const m of includedModules) {
80
+ if (!availablePackages.has(m)) {
81
+ diagnostics.push({
82
+ code: 'unavailable-module',
83
+ message: `Module "${m}" is selected but is not in the project's import closure. Import the package, `
84
+ + `or remove it from the selection — a name alone does not make a module available.`,
85
+ });
86
+ }
87
+ }
88
+ for (const m of chain) {
89
+ if (m.scopeMode === 'allAvailable') {
90
+ const listed = [
91
+ ...m.includedLayers, ...m.includedModules, ...m.includedStandards,
92
+ ...m.includedArtifactKinds, ...m.includedViewpoints,
93
+ ];
94
+ if (listed.length > 0) {
95
+ diagnostics.push({
96
+ code: 'scope-mode-conflict',
97
+ message: `Methodology "${m.usageName}" sets scopeMode = allAvailable but also authors inclusion `
98
+ + `entries. Under allAvailable the lists must be empty; otherwise the methodology states `
99
+ + `its scope twice and the resolver has to pick.`,
100
+ methodology: m.usageName,
101
+ });
102
+ }
103
+ }
104
+ }
105
+ const policyChain = [];
106
+ for (const m of chain) {
107
+ for (const p of m.rulePolicies) {
108
+ policyChain.push({ source: m.usageName, level: 'methodology', policy: p });
109
+ }
110
+ }
111
+ for (const p of binding?.rulePolicies ?? []) {
112
+ policyChain.push({ source: binding.usageName, level: 'project', policy: p });
113
+ }
114
+ return {
115
+ chain,
116
+ scopeMode,
117
+ includedLayers: merge(m => m.includedLayers),
118
+ includedModules,
119
+ includedStandards: merge(m => m.includedStandards),
120
+ includedArtifactKinds: merge(m => m.includedArtifactKinds),
121
+ includedViewpoints: merge(m => m.includedViewpoints),
122
+ policyChain,
123
+ diagnostics,
124
+ };
125
+ }
126
+ /**
127
+ * Map compiled native constraints onto rule candidates.
128
+ *
129
+ * One place, because both `memo rules` and the dev server need it and they got
130
+ * the field names wrong independently — `collectNativeConstraints` returns
131
+ * `id`/`typeName`/`sourceFile`, not `ruleId`/`ruleType`/`file`. A rule whose
132
+ * identity does not survive this mapping resolves as `undefined` and is
133
+ * unauditable, which is the opposite of what section 10.4 asks for.
134
+ *
135
+ * A constraint with no `typeName` is skipped: a policy references a rule by its
136
+ * `constraint def` name, so a rule without one cannot be tailored and does not
137
+ * belong in a set whose purpose is recording tailoring decisions.
138
+ */
139
+ export function ruleCandidatesFromConstraints(constraints) {
140
+ const candidates = [];
141
+ for (const constraint of constraints) {
142
+ if (!constraint.typeName)
143
+ continue;
144
+ candidates.push({
145
+ id: constraint.id,
146
+ typeName: constraint.typeName,
147
+ severity: constraint.severity,
148
+ tailoring: constraint.tailoring ?? 'assurance',
149
+ file: constraint.sourceFile,
150
+ constraint,
151
+ });
152
+ }
153
+ return candidates;
154
+ }
155
+ /**
156
+ * Produce the effective rule set.
157
+ *
158
+ * Steps 1-3 of section 10.3 (collecting rules from ontology, extension, and
159
+ * methodology packages) happen upstream: `collectNativeConstraints` walks the
160
+ * resolved closure, which is exactly the set of packages those steps describe.
161
+ * This function is steps 4-9 — apply policies base-first, validate, and emit.
162
+ */
163
+ export function resolveEffectiveRules(candidates, policyChain) {
164
+ const diagnostics = [];
165
+ // Step 8, first half: IDs must be unique and types must be unambiguous.
166
+ const byId = new Map();
167
+ const byType = new Map();
168
+ for (const c of candidates) {
169
+ const clash = byId.get(c.id);
170
+ if (clash && clash.typeName !== c.typeName) {
171
+ diagnostics.push({
172
+ code: 'duplicate-rule-id',
173
+ message: `Rule ID ${c.id} is declared by both ${clash.typeName} and ${c.typeName}. Rule IDs are audit `
174
+ + `identity; two rules sharing one leaves every violation ambiguous.`,
175
+ ruleId: c.id,
176
+ file: c.file,
177
+ });
178
+ continue;
179
+ }
180
+ byId.set(c.id, c);
181
+ const list = byType.get(c.typeName) ?? [];
182
+ list.push(c);
183
+ byType.set(c.typeName, list);
184
+ }
185
+ const state = new Map();
186
+ for (const c of byId.values()) {
187
+ state.set(c.typeName, {
188
+ sourceRuleId: c.id,
189
+ sourceRuleType: c.typeName,
190
+ activeRuleId: c.id,
191
+ activeRuleType: c.typeName,
192
+ disposition: 'enabled',
193
+ effectiveSeverity: c.severity,
194
+ declaredSeverity: c.severity,
195
+ tailoring: c.tailoring,
196
+ policyChain: [],
197
+ sourceFile: c.file,
198
+ });
199
+ }
200
+ for (const entry of policyChain) {
201
+ const { policy } = entry;
202
+ const targetType = policy.targetRuleType;
203
+ if (!targetType) {
204
+ diagnostics.push({
205
+ code: 'missing-target',
206
+ message: `Policy "${policy.usageName}" names no targetRule. A policy with no target changes nothing `
207
+ + `and hides that it changes nothing.`,
208
+ policy: policy.usageName,
209
+ file: policy.sourceFile,
210
+ });
211
+ continue;
212
+ }
213
+ const rule = state.get(targetType);
214
+ if (!rule) {
215
+ diagnostics.push({
216
+ code: 'missing-target',
217
+ message: `Policy "${policy.usageName}" targets rule "${targetType}", which is not in the resolved rule `
218
+ + `set. Import the package declaring it, or remove the policy.`,
219
+ policy: policy.usageName,
220
+ file: policy.sourceFile,
221
+ });
222
+ continue;
223
+ }
224
+ const ambiguous = byType.get(targetType);
225
+ if (ambiguous && ambiguous.length > 1) {
226
+ diagnostics.push({
227
+ code: 'ambiguous-target',
228
+ message: `Policy "${policy.usageName}" targets "${targetType}", which resolves to ${ambiguous.length} `
229
+ + `declarations. A reference must name exactly one rule.`,
230
+ policy: policy.usageName,
231
+ ruleId: rule.sourceRuleId,
232
+ file: policy.sourceFile,
233
+ });
234
+ continue;
235
+ }
236
+ const disposition = policy.disposition ?? 'enabled';
237
+ // Step 8: an invariant holds the ontology's own consistency. It changes
238
+ // in an ontology release, not in a methodology.
239
+ if (rule.tailoring === 'invariant' && disposition !== 'enabled') {
240
+ diagnostics.push({
241
+ code: 'invariant-protected',
242
+ message: `Policy "${policy.usageName}" tries to ${disposition === 'disabled' ? 'disable' : 'replace'} `
243
+ + `${rule.sourceRuleId} (${targetType}), which is classified invariant. Invariant rules hold `
244
+ + `the ontology's internal consistency and can only change in an ontology release.`,
245
+ ruleId: rule.sourceRuleId,
246
+ policy: policy.usageName,
247
+ file: policy.sourceFile,
248
+ });
249
+ continue;
250
+ }
251
+ if (disposition !== 'enabled' && !policy.rationaleText) {
252
+ diagnostics.push({
253
+ code: 'missing-rationale',
254
+ message: `Policy "${policy.usageName}" ${disposition}s ${rule.sourceRuleId} without a rationale. `
255
+ + `A tailoring decision that records no reason cannot be audited.`,
256
+ ruleId: rule.sourceRuleId,
257
+ policy: policy.usageName,
258
+ file: policy.sourceFile,
259
+ });
260
+ }
261
+ if (disposition === 'replaced') {
262
+ const replacementType = policy.replacementRuleType;
263
+ if (!replacementType) {
264
+ diagnostics.push({
265
+ code: 'replacement-without-target',
266
+ message: `Policy "${policy.usageName}" sets disposition = replaced but names no replacementRule. `
267
+ + `A replacement must point at another native constraint.`,
268
+ ruleId: rule.sourceRuleId,
269
+ policy: policy.usageName,
270
+ file: policy.sourceFile,
271
+ });
272
+ continue;
273
+ }
274
+ const replacement = state.get(replacementType);
275
+ if (!replacement) {
276
+ diagnostics.push({
277
+ code: 'missing-replacement',
278
+ message: `Policy "${policy.usageName}" replaces ${rule.sourceRuleId} with "${replacementType}", `
279
+ + `which is not in the resolved rule set.`,
280
+ ruleId: rule.sourceRuleId,
281
+ policy: policy.usageName,
282
+ file: policy.sourceFile,
283
+ });
284
+ continue;
285
+ }
286
+ rule.activeRuleType = replacementType;
287
+ rule.activeRuleId = replacement.sourceRuleId;
288
+ }
289
+ rule.disposition = disposition;
290
+ if (policy.severityOverride)
291
+ rule.effectiveSeverity = policy.severityOverride;
292
+ rule.policyChain.push(entry);
293
+ if (policy.rationaleText)
294
+ rule.rationaleText = policy.rationaleText;
295
+ if (policy.authority)
296
+ rule.authority = policy.authority;
297
+ if (policy.approvalReference)
298
+ rule.approvalReference = policy.approvalReference;
299
+ }
300
+ // A replaced rule's replacement should not also evaluate in its own right;
301
+ // it is the substitute, not an addition.
302
+ const replacementTypes = new Set([...state.values()].filter(r => r.disposition === 'replaced').map(r => r.activeRuleType));
303
+ const rules = [...state.values()].sort((a, b) => a.sourceRuleId.localeCompare(b.sourceRuleId));
304
+ const activeConstraints = [];
305
+ for (const rule of rules) {
306
+ if (rule.disposition === 'disabled')
307
+ continue;
308
+ if (rule.disposition === 'enabled' && replacementTypes.has(rule.sourceRuleType))
309
+ continue;
310
+ const candidate = byType.get(rule.activeRuleType)?.[0];
311
+ if (!candidate?.constraint)
312
+ continue;
313
+ activeConstraints.push({ ...candidate.constraint, severity: rule.effectiveSeverity });
314
+ }
315
+ return { rules, diagnostics, activeConstraints };
316
+ }
317
+ //# sourceMappingURL=methodology-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methodology-resolver.js","sourceRoot":"","sources":["../../src/model/methodology-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import type { ParsedDocument } from './parser-utils.js';
2
+ import type { SemanticOrigin } from './source-provenance.js';
3
+ /** The conventional native entrypoint, relative to the project root. */
4
+ export declare const PROJECT_ENTRYPOINT: string;
5
+ /** Where a resolvable SysML package's source lives. */
6
+ export interface LibraryRoot {
7
+ /** Absolute package directory (the one carrying the descriptor). */
8
+ dir: string;
9
+ /** Absolute directory holding the package's .sysml sources. */
10
+ sysmlDir: string;
11
+ packageName: string;
12
+ packageVersion?: string;
13
+ }
14
+ /** One SysML package the resolver found, and where it came from. */
15
+ export interface ResolvedPackage {
16
+ /** Declared SysML package name, e.g. "memo_methodology_core". */
17
+ qualifiedName: string;
18
+ /** Files declaring it. A package may be split across files. */
19
+ files: string[];
20
+ /** The library root that supplied it, or undefined for project-owned source. */
21
+ root?: LibraryRoot;
22
+ origin: SemanticOrigin;
23
+ /** Shortest import distance from the project entrypoint; project source is 0. */
24
+ importDepth: number;
25
+ /** Packages that import this one. */
26
+ importedBy: string[];
27
+ }
28
+ /** The project's method binding, read from SysML. */
29
+ export interface NativeMethodBinding {
30
+ /** Usage name, e.g. "uiScreenRegionsBinding". */
31
+ usageName: string;
32
+ /** `id` attribute, when authored. */
33
+ bindingId?: string;
34
+ projectName?: string;
35
+ /** Name the `selectedMethodology` reference resolves to. */
36
+ selectedMethodologyName?: string;
37
+ scopeMode?: ScopeMode;
38
+ includedModules: string[];
39
+ rulePolicies: NativeRulePolicy[];
40
+ sourceFile: string;
41
+ packageQualifiedName?: string;
42
+ }
43
+ export type ScopeMode = 'allAvailable' | 'explicit';
44
+ /** A `RulePolicy` usage, read from SysML. */
45
+ export interface NativeRulePolicy {
46
+ usageName: string;
47
+ /** Type name of the referenced `constraint def`, from `ref :>> targetRule : X`. */
48
+ targetRuleType?: string;
49
+ replacementRuleType?: string;
50
+ disposition?: 'enabled' | 'disabled' | 'replaced';
51
+ severityOverride?: 'error' | 'warning' | 'info';
52
+ rationaleText?: string;
53
+ authority?: string;
54
+ approvalReference?: string;
55
+ approvedBy?: string;
56
+ approvedOn?: string;
57
+ sourceFile: string;
58
+ }
59
+ /** A `MethodologyDefinition` usage, read from SysML. */
60
+ export interface NativeMethodology {
61
+ usageName: string;
62
+ methodologyId?: string;
63
+ displayName?: string;
64
+ version?: string;
65
+ /** Name the `baseMethodology` reference resolves to, when there is one. */
66
+ baseMethodologyName?: string;
67
+ scopeMode?: ScopeMode;
68
+ includedLayers: string[];
69
+ includedModules: string[];
70
+ includedStandards: string[];
71
+ includedArtifactKinds: string[];
72
+ includedViewpoints: string[];
73
+ rulePolicies: NativeRulePolicy[];
74
+ sourceFile: string;
75
+ packageQualifiedName?: string;
76
+ }
77
+ export interface NativeDiagnostic {
78
+ code: 'no-entrypoint' | 'no-binding' | 'multiple-bindings' | 'unresolved-methodology' | 'unresolved-import' | 'unresolved-module' | 'scope-mode-conflict' | 'settings-graph-mismatch';
79
+ message: string;
80
+ file?: string;
81
+ }
82
+ export interface NativeProjectResolution {
83
+ projectRoot: string;
84
+ entrypoint?: string;
85
+ binding?: NativeMethodBinding;
86
+ /** Methodologies visible anywhere in the resolved closure, by usage name. */
87
+ methodologies: Map<string, NativeMethodology>;
88
+ /** Packages reachable from the project entrypoint, by qualified name. */
89
+ closure: Map<string, ResolvedPackage>;
90
+ /** Library roots that actually contributed a package to the closure. */
91
+ selectedRoots: LibraryRoot[];
92
+ /** Roots a locator offered that no import reached. */
93
+ unusedRoots: LibraryRoot[];
94
+ /** Every parsed document, project and reusable alike. */
95
+ documents: ParsedDocument[];
96
+ /**
97
+ * File → the SysML package it declares, for every parsed file.
98
+ *
99
+ * Wider than `closure`, deliberately: a caller asking "which package owns
100
+ * this rule?" needs an answer for every file that was loaded, and whether
101
+ * that package is in scope is a separate question with its own answer.
102
+ */
103
+ filePackages: Map<string, string>;
104
+ diagnostics: NativeDiagnostic[];
105
+ }
106
+ /**
107
+ * Find the project root by walking up for the native entrypoint.
108
+ *
109
+ * The marker is `model/catalog/project.sysml`, not a YAML file. A project is
110
+ * identified by the SysML that defines it, so a workspace stays a workspace
111
+ * after every application setting is deleted.
112
+ */
113
+ export declare function findProjectRoot(startDir: string): string | undefined;
114
+ /**
115
+ * Collect the library roots a project could resolve packages from.
116
+ *
117
+ * This is deliberately generous: it lists what is *available*, and the import
118
+ * closure decides what is *selected*. A root listed here and never imported
119
+ * contributes nothing to the model.
120
+ */
121
+ export declare function discoverLibraryRoots(projectRoot: string): LibraryRoot[];
122
+ /**
123
+ * Resolve a project from its native SysML alone.
124
+ *
125
+ * The closure walk starts at the entrypoint's package and follows imports.
126
+ * Anything it does not reach is not part of the model, however many manifests
127
+ * point at it.
128
+ */
129
+ export declare function resolveNativeProject(projectRoot: string): Promise<NativeProjectResolution>;
130
+ //# sourceMappingURL=native-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-project.d.ts","sourceRoot":"","sources":["../../src/model/native-project.ts"],"names":[],"mappings":"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"}