@memoarchitect/tools 0.6.6 → 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 (478) hide show
  1. package/README.md +54 -11
  2. package/package.json +19 -7
  3. package/packages/tools/lib/analysis-starters.d.ts +4 -0
  4. package/packages/tools/lib/analysis-starters.d.ts.map +1 -0
  5. package/packages/tools/lib/analysis-starters.js +425 -0
  6. package/packages/tools/lib/analysis-starters.js.map +1 -0
  7. package/packages/tools/lib/bin/memo.js +161 -10
  8. package/packages/tools/lib/bin/memo.js.map +1 -1
  9. package/packages/tools/lib/browser/index.d.ts +1 -1
  10. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  11. package/packages/tools/lib/browser/index.js +1 -1
  12. package/packages/tools/lib/browser/index.js.map +1 -1
  13. package/packages/tools/lib/commands/ask.js +1 -1
  14. package/packages/tools/lib/commands/ask.js.map +1 -1
  15. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  16. package/packages/tools/lib/commands/check.js +3 -9
  17. package/packages/tools/lib/commands/check.js.map +1 -1
  18. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  19. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  20. package/packages/tools/lib/commands/conformance.js +212 -0
  21. package/packages/tools/lib/commands/conformance.js.map +1 -0
  22. package/packages/tools/lib/commands/convert.d.ts +12 -0
  23. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  24. package/packages/tools/lib/commands/convert.js +103 -0
  25. package/packages/tools/lib/commands/convert.js.map +1 -0
  26. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  27. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  28. package/packages/tools/lib/commands/create-package.js.map +1 -1
  29. package/packages/tools/lib/commands/dev.d.ts +13 -0
  30. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  31. package/packages/tools/lib/commands/dev.js +208 -74
  32. package/packages/tools/lib/commands/dev.js.map +1 -1
  33. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  34. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  35. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  36. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  37. package/packages/tools/lib/commands/dhf.js +1 -1
  38. package/packages/tools/lib/commands/dhf.js.map +1 -1
  39. package/packages/tools/lib/commands/element.d.ts +34 -0
  40. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  41. package/packages/tools/lib/commands/element.js +174 -0
  42. package/packages/tools/lib/commands/element.js.map +1 -0
  43. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  44. package/packages/tools/lib/commands/export.js +39 -40
  45. package/packages/tools/lib/commands/export.js.map +1 -1
  46. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  47. package/packages/tools/lib/commands/generate.js +10 -7
  48. package/packages/tools/lib/commands/generate.js.map +1 -1
  49. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  50. package/packages/tools/lib/commands/import.js +25 -12
  51. package/packages/tools/lib/commands/import.js.map +1 -1
  52. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  53. package/packages/tools/lib/commands/init.js +37 -14
  54. package/packages/tools/lib/commands/init.js.map +1 -1
  55. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  56. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  57. package/packages/tools/lib/commands/inspect.js +56 -0
  58. package/packages/tools/lib/commands/inspect.js.map +1 -0
  59. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  60. package/packages/tools/lib/commands/lock.js +7 -2
  61. package/packages/tools/lib/commands/lock.js.map +1 -1
  62. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/ontology.js +69 -116
  64. package/packages/tools/lib/commands/ontology.js.map +1 -1
  65. package/packages/tools/lib/commands/pack.d.ts +1 -1
  66. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  67. package/packages/tools/lib/commands/pack.js +20 -75
  68. package/packages/tools/lib/commands/pack.js.map +1 -1
  69. package/packages/tools/lib/commands/package.d.ts +10 -0
  70. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  71. package/packages/tools/lib/commands/package.js +113 -0
  72. package/packages/tools/lib/commands/package.js.map +1 -0
  73. package/packages/tools/lib/commands/plugin.js +1 -1
  74. package/packages/tools/lib/commands/plugin.js.map +1 -1
  75. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  76. package/packages/tools/lib/commands/rules.js +120 -30
  77. package/packages/tools/lib/commands/rules.js.map +1 -1
  78. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  79. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  80. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  81. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  82. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  83. package/packages/tools/lib/commands/toolchain.js +64 -0
  84. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  85. package/packages/tools/lib/commands/validate.d.ts +1 -1
  86. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  87. package/packages/tools/lib/commands/validate.js +183 -56
  88. package/packages/tools/lib/commands/validate.js.map +1 -1
  89. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  90. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  91. package/packages/tools/lib/completeness/tracker.js +16 -21
  92. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  93. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  94. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  95. package/packages/tools/lib/conformance/baseline.js +170 -0
  96. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  97. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  98. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  99. package/packages/tools/lib/conformance/bnf.js +166 -0
  100. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  101. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  102. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  103. package/packages/tools/lib/conformance/corpus.js +190 -0
  104. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  105. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  106. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  107. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  108. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  109. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  110. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  111. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  112. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  113. package/packages/tools/lib/conformance/index.d.ts +7 -0
  114. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  115. package/packages/tools/lib/conformance/index.js +19 -0
  116. package/packages/tools/lib/conformance/index.js.map +1 -0
  117. package/packages/tools/lib/conformance/run.d.ts +117 -0
  118. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  119. package/packages/tools/lib/conformance/run.js +0 -0
  120. package/packages/tools/lib/conformance/run.js.map +1 -0
  121. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  122. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  123. package/packages/tools/lib/conformance/xmi.js +148 -0
  124. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  125. package/packages/tools/lib/dhf/template-resolver.js +1 -1
  126. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  127. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  128. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  129. package/packages/tools/lib/import/column-mapper.js +3 -3
  130. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  131. package/packages/tools/lib/index.d.ts +20 -3
  132. package/packages/tools/lib/index.d.ts.map +1 -1
  133. package/packages/tools/lib/index.js +19 -2
  134. package/packages/tools/lib/index.js.map +1 -1
  135. package/packages/tools/lib/language/generated/ast.d.ts +196 -51
  136. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  137. package/packages/tools/lib/language/generated/ast.js +136 -15
  138. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  139. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  140. package/packages/tools/lib/language/generated/grammar.js +867 -295
  141. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  142. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  143. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  144. package/packages/tools/lib/llm/chat-engine.js +15 -12
  145. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  146. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  147. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  148. package/packages/tools/lib/llm/generate-engine.js +22 -4
  149. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  150. package/packages/tools/lib/llm/index.d.ts +1 -0
  151. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  152. package/packages/tools/lib/llm/index.js +1 -0
  153. package/packages/tools/lib/llm/index.js.map +1 -1
  154. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  155. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  156. package/packages/tools/lib/llm/model-context.js +7 -13
  157. package/packages/tools/lib/llm/model-context.js.map +1 -1
  158. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  159. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  160. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  161. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  162. package/packages/tools/lib/lock.d.ts +14 -8
  163. package/packages/tools/lib/lock.d.ts.map +1 -1
  164. package/packages/tools/lib/lock.js +97 -108
  165. package/packages/tools/lib/lock.js.map +1 -1
  166. package/packages/tools/lib/mcp/model-loader.d.ts +5 -1
  167. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  168. package/packages/tools/lib/mcp/model-loader.js +16 -27
  169. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  170. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  171. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  172. package/packages/tools/lib/mcp/tools.js +8 -9
  173. package/packages/tools/lib/mcp/tools.js.map +1 -1
  174. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  175. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  176. package/packages/tools/lib/model/activity-notation.js +208 -0
  177. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  178. package/packages/tools/lib/model/builder.d.ts +3 -0
  179. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  180. package/packages/tools/lib/model/builder.js +264 -26
  181. package/packages/tools/lib/model/builder.js.map +1 -1
  182. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  183. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  184. package/packages/tools/lib/model/config-loader.js +51 -233
  185. package/packages/tools/lib/model/config-loader.js.map +1 -1
  186. package/packages/tools/lib/model/config.d.ts +42 -213
  187. package/packages/tools/lib/model/config.d.ts.map +1 -1
  188. package/packages/tools/lib/model/config.js +11 -9
  189. package/packages/tools/lib/model/config.js.map +1 -1
  190. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  191. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  192. package/packages/tools/lib/model/effective-scope.js +133 -0
  193. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  194. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  195. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  196. package/packages/tools/lib/model/ir-identity.js +178 -0
  197. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  198. package/packages/tools/lib/model/kind-registry.d.ts +114 -1
  199. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  200. package/packages/tools/lib/model/kind-registry.js +148 -4
  201. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  202. package/packages/tools/lib/model/layer-resolver.js +1 -1
  203. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  204. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  205. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  206. package/packages/tools/lib/model/methodology-loader.js +179 -176
  207. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  208. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  209. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  210. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  211. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  212. package/packages/tools/lib/model/native-project.d.ts +130 -0
  213. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  214. package/packages/tools/lib/model/native-project.js +570 -0
  215. package/packages/tools/lib/model/native-project.js.map +1 -0
  216. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  217. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  218. package/packages/tools/lib/model/ontology-loader.js +340 -614
  219. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  220. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  221. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  222. package/packages/tools/lib/model/package-manifest.js +96 -0
  223. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  224. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  225. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  226. package/packages/tools/lib/model/parser-utils.js +89 -1
  227. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  228. package/packages/tools/lib/model/paths.d.ts +10 -4
  229. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  230. package/packages/tools/lib/model/paths.js +10 -4
  231. package/packages/tools/lib/model/paths.js.map +1 -1
  232. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  233. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  234. package/packages/tools/lib/model/project-conversion.js +946 -0
  235. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  236. package/packages/tools/lib/model/relationship-legality.d.ts +12 -0
  237. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  238. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  239. package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
  240. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  241. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  242. package/packages/tools/lib/model/semantic.d.ts +38 -0
  243. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  244. package/packages/tools/lib/model/semantic.js +3 -0
  245. package/packages/tools/lib/model/semantic.js.map +1 -1
  246. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  247. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  248. package/packages/tools/lib/model/settings-boundary.js +118 -0
  249. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  250. package/packages/tools/lib/model/short-id.d.ts +8 -7
  251. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  252. package/packages/tools/lib/model/short-id.js +26 -17
  253. package/packages/tools/lib/model/short-id.js.map +1 -1
  254. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  255. package/packages/tools/lib/model/source-graph.js +5 -1
  256. package/packages/tools/lib/model/source-graph.js.map +1 -1
  257. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  258. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  259. package/packages/tools/lib/model/source-provenance.js +169 -0
  260. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  261. package/packages/tools/lib/model/sysml-files.d.ts +9 -0
  262. package/packages/tools/lib/model/sysml-files.d.ts.map +1 -1
  263. package/packages/tools/lib/model/sysml-files.js +20 -1
  264. package/packages/tools/lib/model/sysml-files.js.map +1 -1
  265. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  266. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  267. package/packages/tools/lib/model/sysml-ir.js +105 -0
  268. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  269. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  270. package/packages/tools/lib/model/view-deriver.js +60 -6
  271. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  272. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  273. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  274. package/packages/tools/lib/model/view-kinds.js +11 -0
  275. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  276. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  277. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  278. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  279. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  280. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  281. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  282. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  283. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  284. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  285. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  286. package/packages/tools/lib/operations/authoring.js +56 -0
  287. package/packages/tools/lib/operations/authoring.js.map +1 -0
  288. package/packages/tools/lib/operations/index.d.ts +2 -0
  289. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  290. package/packages/tools/lib/operations/index.js +2 -0
  291. package/packages/tools/lib/operations/index.js.map +1 -1
  292. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  293. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  294. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  295. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  296. package/packages/tools/lib/protocol/messages.d.ts +311 -11
  297. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  298. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  299. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  300. package/packages/tools/lib/serializer/csv-io.js +11 -11
  301. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  302. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  303. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  304. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  305. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  306. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  307. package/packages/tools/lib/server/config-resolver.js +25 -44
  308. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  309. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  310. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  311. package/packages/tools/lib/server/conflict-policy.js +94 -0
  312. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  313. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  314. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  315. package/packages/tools/lib/server/dev-server.js +721 -53
  316. package/packages/tools/lib/server/dev-server.js.map +1 -1
  317. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  318. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  319. package/packages/tools/lib/server/element-writer.js +123 -0
  320. package/packages/tools/lib/server/element-writer.js.map +1 -0
  321. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  322. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  323. package/packages/tools/lib/server/file-watcher.js +17 -7
  324. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  325. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  326. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  327. package/packages/tools/lib/server/mutation-domain.js +87 -0
  328. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  329. package/packages/tools/lib/server/persistor.d.ts +63 -8
  330. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  331. package/packages/tools/lib/server/persistor.js +152 -44
  332. package/packages/tools/lib/server/persistor.js.map +1 -1
  333. package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
  334. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  335. package/packages/tools/lib/server/relationship-writer.js +98 -9
  336. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  337. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  338. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  339. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  340. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  341. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  342. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  343. package/packages/tools/lib/server/runtime-budget.js +15 -0
  344. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  345. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  346. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  347. package/packages/tools/lib/server/sysml-notation.js +87 -0
  348. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  349. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  350. package/packages/tools/lib/server/view-layout-store.js +2 -0
  351. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  352. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  353. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  354. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  355. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  356. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  357. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  358. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  359. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  360. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  361. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  362. package/packages/tools/lib/sysml-ir/index.js +3 -0
  363. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  364. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  365. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  366. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  367. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  368. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  369. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  370. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  371. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  372. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  373. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  374. package/packages/tools/lib/sysmlc/index.js +7 -0
  375. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  376. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  377. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  378. package/packages/tools/lib/sysmlc/server.js +168 -0
  379. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  380. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  381. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  382. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  383. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  384. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  385. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  386. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  387. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  388. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  389. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  390. package/packages/tools/lib/toolchain/effective.js +91 -0
  391. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  392. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  393. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  394. package/packages/tools/lib/toolchain/index.js +21 -0
  395. package/packages/tools/lib/toolchain/index.js.map +1 -0
  396. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  397. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  398. package/packages/tools/lib/toolchain/lowering.js +100 -0
  399. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  400. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  401. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  402. package/packages/tools/lib/toolchain/operations.js +111 -0
  403. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  404. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  405. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  406. package/packages/tools/lib/toolchain/process.js +125 -0
  407. package/packages/tools/lib/toolchain/process.js.map +1 -0
  408. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  409. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  410. package/packages/tools/lib/toolchain/protocol.js +74 -0
  411. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  412. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  413. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  414. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  415. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  416. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  417. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  418. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  419. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  420. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  421. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  422. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  423. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  424. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  425. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  426. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  427. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  428. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  429. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  430. package/packages/tools/lib/toolchain/registry.js +130 -0
  431. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  432. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  433. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  434. package/packages/tools/lib/toolchain/schema.js +112 -0
  435. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  436. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  437. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  438. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  439. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  440. package/packages/tools/lib/validator/architecture-validator.d.ts +17 -0
  441. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -0
  442. package/packages/tools/lib/validator/architecture-validator.js +101 -0
  443. package/packages/tools/lib/validator/architecture-validator.js.map +1 -0
  444. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  445. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  446. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  447. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  448. package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
  449. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  450. package/packages/tools/lib/validator/constraint-eval.js +62 -7
  451. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  452. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  453. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  454. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  455. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  456. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  457. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  458. package/packages/tools/lib/validator/rule-engine.js +57 -4
  459. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  460. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  461. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  462. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  463. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  464. package/packages/tools/lib/validator/types.d.ts +33 -0
  465. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  466. package/packages/tools/lib/version.d.ts +2 -0
  467. package/packages/tools/lib/version.d.ts.map +1 -0
  468. package/packages/tools/lib/version.js +26 -0
  469. package/packages/tools/lib/version.js.map +1 -0
  470. package/packages/tools/src/grammar/memo-sysml.langium +104 -18
  471. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  472. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  473. package/packages/tools/lib/model/dimension-filter.js +0 -57
  474. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  475. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  476. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  477. package/packages/tools/lib/model/toolchain.js +0 -92
  478. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -1,203 +1,206 @@
1
- // ─── Methodology Loader (Phase B) ─────────────────────────────────────────────
1
+ // ─── Methodology Descriptor ───────────────────────────────────────────────────
2
2
  //
3
- // Parses methodology SysML files (e.g. ontology/methodology/<name>/*.sysml) into
4
- // a typed MethodologyDescriptor. Methodology in MEMO = a curated bundle that
5
- // selects from the architecture/viewpoints/views/compliance ontologies and adds
6
- // rules / gates / patterns / workflow / profile metadata.
3
+ // The methodology content a project resolved, as a DTO the server can publish.
7
4
  //
8
- // SysML shape consumed:
9
- // part def Viewpoint :> ... { attribute purpose : String; ... }
10
- // part swArchView : Viewpoint {
11
- // attribute id = "VP-002";
12
- // attribute name = "SoftwareArchitectureView";
13
- // attribute purpose = "...";
14
- // ...
15
- // }
5
+ // Two things changed at the native flip. The scan is an AST walk over the
6
+ // documents the native resolver already parsed, not a regex pass over whatever
7
+ // `.sysml` files sat under a `methodology/` directory — a folder convention is
8
+ // not a selection mechanism. And the descriptor now carries the *effective*
9
+ // methodology and rule set, so a client can show the inheritance and policy
10
+ // chain rather than re-deriving it from raw parts.
16
11
  //
17
- // The loader does a regex-based scan (matching the style of ontology-loader's
18
- // parseConstructsInFile) and is independent of the Langium grammar so that
19
- // methodology files load even while grammar work is in flight.
12
+ // Design reference: sections 9.1, 10.3, 15.2 deliverables 4-5.
20
13
  // ─────────────────────────────────────────────────────────────────────────────
21
- import { existsSync, readFileSync, readdirSync } from 'node:fs';
22
- import { resolve, join, basename, relative } from 'node:path';
23
- import { findOntologyPackageDirs, resolvePackageSysmlDir, getPackageMetadata } from './ontology-loader.js';
24
- // ─── Regex helpers ───────────────────────────────────────────────────────────
25
- /** `part def Foo :> Bar { ... }` */
26
- const PART_DEF_RE = /^\s*part\s+def\s+(\w+)(?:\s*:>\s*([\w:]+))?\s*\{/gm;
27
- /** `part name : Type { body }` — body is captured to be parsed for attributes. */
28
- const PART_INSTANCE_RE = /^\s*part\s+(\w+)\s*:\s*(\w+)\s*\{([\s\S]*?)\n\s*\}/gm;
29
- /** `attribute key = value;` — value can be string literal, enum ref, integer, boolean. */
30
- const ATTR_RE = /attribute\s+(\w+)\s*=\s*(?:"([^"]*)"|(\w+(?:::\w+)*)|(-?\d+(?:\.\d+)?)|(true|false))\s*;/g;
31
- /** `package memo::methodology::profiles {` — top-level namespace */
32
- const PACKAGE_RE = /^\s*package\s+([\w:]+)\s*\{/m;
33
- function parseAttributes(body) {
34
- const attrs = {};
35
- const multi = {};
36
- for (const m of body.matchAll(ATTR_RE)) {
37
- const key = m[1];
38
- let value;
39
- if (m[2] !== undefined) {
40
- value = m[2];
41
- }
42
- else if (m[3] !== undefined) {
43
- const qualified = m[3];
44
- const short = qualified.includes('::') ? qualified.split('::').pop() : qualified;
45
- value = short;
46
- attrs[`${key}__qualified`] = qualified;
14
+ import { basename, relative } from 'node:path';
15
+ import { resolveNativeProject, } from './native-project.js';
16
+ import { resolveEffectiveMethodology, } from './methodology-resolver.js';
17
+ // ─── AST reading ──────────────────────────────────────────────────────────────
18
+ function literal(value) {
19
+ if (!value)
20
+ return undefined;
21
+ switch (value.$type) {
22
+ case 'StringValue':
23
+ try {
24
+ return JSON.parse(value.value ?? '""');
25
+ }
26
+ catch {
27
+ return String(value.value ?? '').replace(/^"|"$/g, '');
28
+ }
29
+ case 'IntValue':
30
+ case 'RealValue':
31
+ return Number(value.value);
32
+ case 'BooleanValue':
33
+ return value.value === 'true' || value.value === true;
34
+ case 'EnumValue': {
35
+ const ref = value.enumRef ?? '';
36
+ const idx = ref.lastIndexOf('::');
37
+ return idx >= 0 ? ref.slice(idx + 2) : ref;
47
38
  }
48
- else if (m[4] !== undefined) {
49
- value = Number(m[4]);
39
+ default:
40
+ return undefined;
41
+ }
42
+ }
43
+ function readBody(body) {
44
+ const attributes = {};
45
+ const multiAttributes = {};
46
+ const push = (key, v) => {
47
+ (multiAttributes[key] ??= []).push(v);
48
+ attributes[key] = v;
49
+ };
50
+ for (const member of body ?? []) {
51
+ if (member.$type !== 'AttributeMember' || !member.name || !member.value)
52
+ continue;
53
+ if (member.value.$type === 'SetLiteral') {
54
+ for (const el of member.value.elements ?? []) {
55
+ const raw = el.stringValue ?? el.value;
56
+ if (typeof raw !== 'string')
57
+ continue;
58
+ try {
59
+ push(member.name, JSON.parse(raw));
60
+ }
61
+ catch {
62
+ push(member.name, raw.replace(/^"|"$/g, ''));
63
+ }
64
+ }
50
65
  }
51
- else if (m[5] !== undefined) {
52
- value = m[5] === 'true';
66
+ else if (member.value.$type === 'EnumValue') {
67
+ const ref = member.value.enumRef ?? '';
68
+ const v = literal(member.value);
69
+ if (v !== undefined)
70
+ push(member.name, v);
71
+ attributes[`${member.name}__qualified`] = ref;
53
72
  }
54
73
  else {
55
- continue;
74
+ const v = literal(member.value);
75
+ if (v !== undefined)
76
+ push(member.name, v);
56
77
  }
57
- if (!multi[key])
58
- multi[key] = [];
59
- multi[key].push(value);
60
- attrs[key] = value;
61
78
  }
62
- return { attrs, multi };
79
+ return { attributes, multiAttributes };
63
80
  }
64
- function parseMethodologyFile(absPath, projectRoot) {
81
+ function shortName(qualified) {
82
+ if (!qualified)
83
+ return undefined;
84
+ const idx = qualified.lastIndexOf('::');
85
+ return idx >= 0 ? qualified.slice(idx + 2) : qualified;
86
+ }
87
+ function walkDocument(doc, projectRoot) {
65
88
  const partDefs = [];
66
89
  const parts = [];
67
- let content = '';
68
- try {
69
- content = readFileSync(absPath, 'utf-8');
70
- }
71
- catch {
72
- return { partDefs, parts };
73
- }
74
- const sourceFile = relative(projectRoot, absPath) || basename(absPath);
75
- const nsMatch = content.match(PACKAGE_RE);
76
- const namespace = nsMatch ? nsMatch[1] : undefined;
77
- for (const m of content.matchAll(PART_DEF_RE)) {
78
- partDefs.push({
79
- name: m[1],
80
- superType: m[2] || undefined,
81
- sourceFile,
82
- namespace,
83
- });
84
- }
85
- // Reset because PART_INSTANCE_RE has the `g` flag and content shares scope.
86
- PART_INSTANCE_RE.lastIndex = 0;
87
- for (const m of content.matchAll(PART_INSTANCE_RE)) {
88
- const partName = m[1];
89
- const partType = m[2];
90
- // Skip `part def` matches — PART_INSTANCE_RE doesn't, since `def` isn't excluded.
91
- // The PART_DEF_RE form has `def` after `part`; PART_INSTANCE_RE matches `part NAME :`,
92
- // but `part def Foo :> Bar { ... }` matches as partName="def", partType="Foo" — filter that.
93
- if (partName === 'def')
94
- continue;
95
- const { attrs, multi } = parseAttributes(m[3]);
96
- parts.push({
97
- partName,
98
- partType,
99
- attributes: attrs,
100
- multiAttributes: multi,
101
- sourceFile,
102
- namespace,
103
- });
104
- }
105
- return { partDefs, parts, namespace };
106
- }
107
- function listSysmlFiles(dir) {
108
- const files = [];
109
- try {
110
- for (const entry of readdirSync(dir, { withFileTypes: true })) {
111
- const full = join(dir, entry.name);
112
- if (entry.isDirectory()) {
113
- files.push(...listSysmlFiles(full));
114
- }
115
- else if (entry.name.endsWith('.sysml') && entry.name !== 'index.sysml') {
116
- files.push(full);
90
+ const namespaces = [];
91
+ const model = doc.document.parseResult?.value;
92
+ if (!model)
93
+ return { partDefs, parts, namespaces };
94
+ const sourceFile = relative(projectRoot, doc.filePath) || basename(doc.filePath);
95
+ const visit = (node, ns) => {
96
+ if (!node)
97
+ return;
98
+ if (node.$type === 'PackageDeclaration') {
99
+ if (node.name && !namespaces.includes(node.name))
100
+ namespaces.push(node.name);
101
+ for (const m of node.members ?? [])
102
+ visit(m, node.name ?? ns);
103
+ return;
104
+ }
105
+ if (node.$type === 'PartDefinition') {
106
+ partDefs.push({
107
+ name: node.name,
108
+ superType: shortName(node.specialization?.superType),
109
+ sourceFile,
110
+ namespace: ns,
111
+ });
112
+ return;
113
+ }
114
+ // `action` usages carry workflow steps, so they are read alongside parts.
115
+ if (node.$type === 'PartUsage' || node.$type === 'PartMember' || node.$type === 'ActionUsage') {
116
+ const partType = shortName(node.type);
117
+ if (partType && node.name) {
118
+ parts.push({
119
+ partName: node.name,
120
+ partType,
121
+ ...readBody(node.body ?? node.usageBody ?? []),
122
+ sourceFile,
123
+ namespace: ns,
124
+ });
117
125
  }
126
+ for (const m of node.body ?? [])
127
+ visit(m, ns);
118
128
  }
119
- }
120
- catch { /* skip */ }
121
- return files;
129
+ };
130
+ for (const member of model.members ?? [])
131
+ visit(member);
132
+ return { partDefs, parts, namespaces };
122
133
  }
123
- export { extractScopeInfo } from './dimension-filter.js';
124
134
  /**
125
- * Discover all methodology folders reachable from a project config and parse them.
135
+ * Build the methodology descriptor for a project.
126
136
  *
127
- * For each ontology package on the extends chain, look for a `methodology/`
128
- * subdirectory under its sysml root. Each direct subdirectory of `methodology/`
129
- * is treated as one methodology (Phase A convention).
137
+ * A source unit appears here when it supplies methodology content the project
138
+ * resolved — that is, when a package in the import closure declares a
139
+ * methodology part. Discovery is not "a directory called `methodology/`":
140
+ * that convention meant a package could ship methodology content the project
141
+ * never imported and have it load anyway.
130
142
  */
131
- export async function loadMethodologyDescriptor(configPath, projectRoot) {
132
- const root = projectRoot ?? resolve(configPath, '..');
133
- const folders = [];
134
- const errors = [];
135
- const seenFolders = new Set();
136
- // Two discovery sources, deduped by package directory:
137
- // 1. extends chain (authoritative once project pins a methodology — Phase C)
138
- // 2. getPackageMetadata (every installed @memo package — covers transitional state
139
- // where the project config still references retired ontology stubs)
140
- const pkgDirs = new Set();
141
- try {
142
- for (const d of findOntologyPackageDirs(configPath))
143
- pkgDirs.add(d);
143
+ export async function loadMethodologyDescriptor(projectRoot, resolution) {
144
+ const resolved = resolution ?? await resolveNativeProject(projectRoot);
145
+ const errors = resolved.diagnostics.map(d => `${d.code}: ${d.message}`);
146
+ const METHODOLOGY_TYPES = new Set([
147
+ 'MethodologyLibrary', 'MethodologyDefinition', 'ProjectMethodBinding', 'RulePolicy',
148
+ 'ElementUsageRule', 'RelationUsageRule', 'ModelingPattern', 'MethodologyWorkflowStep',
149
+ 'QualityGate', 'DhfDocumentBinding', 'Archetype', 'ResolvedMethodology',
150
+ ]);
151
+ const byRoot = new Map();
152
+ const fileToPackage = new Map();
153
+ for (const pkg of resolved.closure.values()) {
154
+ for (const file of pkg.files)
155
+ fileToPackage.set(file, pkg.qualifiedName);
144
156
  }
145
- catch (e) {
146
- errors.push(`methodology: failed to walk extends chain (${e instanceof Error ? e.message : e})`);
147
- }
148
- try {
149
- for (const pkg of getPackageMetadata(root)) {
150
- if (pkg.rootDir)
151
- pkgDirs.add(pkg.rootDir);
152
- }
153
- }
154
- catch (e) {
155
- errors.push(`methodology: failed to scan installed packages (${e instanceof Error ? e.message : e})`);
156
- }
157
- for (const pkgDir of pkgDirs) {
158
- const sysmlDir = resolvePackageSysmlDir(pkgDir);
159
- const methodologyRoot = join(sysmlDir, 'methodology');
160
- if (!existsSync(methodologyRoot))
157
+ for (const doc of resolved.documents) {
158
+ const pkgName = fileToPackage.get(doc.filePath);
159
+ if (!pkgName)
160
+ continue; // outside the import closure
161
+ const pkg = resolved.closure.get(pkgName);
162
+ const { partDefs, parts, namespaces } = walkDocument(doc, resolved.projectRoot);
163
+ const relevant = parts.filter(p => METHODOLOGY_TYPES.has(p.partType));
164
+ if (relevant.length === 0 && partDefs.length === 0)
161
165
  continue;
162
- let entries = [];
163
- try {
164
- entries = readdirSync(methodologyRoot, { withFileTypes: true })
165
- .filter(e => e.isDirectory())
166
- .map(e => e.name);
167
- }
168
- catch {
166
+ if (relevant.length === 0)
169
167
  continue;
168
+ const key = pkg?.root?.dir ?? resolved.projectRoot;
169
+ let folder = byRoot.get(key);
170
+ if (!folder) {
171
+ folder = {
172
+ name: pkg?.root?.packageName ?? basename(resolved.projectRoot),
173
+ rootDir: key,
174
+ sourceFiles: [],
175
+ namespaces: [],
176
+ partDefs: [],
177
+ parts: {},
178
+ };
179
+ byRoot.set(key, folder);
170
180
  }
171
- for (const name of entries) {
172
- const folderDir = join(methodologyRoot, name);
173
- if (seenFolders.has(folderDir))
174
- continue;
175
- seenFolders.add(folderDir);
176
- const sysmlFiles = listSysmlFiles(folderDir);
177
- const partDefs = [];
178
- const partsByType = {};
179
- const namespaceSet = new Set();
180
- for (const file of sysmlFiles) {
181
- const { partDefs: pds, parts, namespace } = parseMethodologyFile(file, root);
182
- if (namespace)
183
- namespaceSet.add(namespace);
184
- partDefs.push(...pds);
185
- for (const part of parts) {
186
- if (!partsByType[part.partType])
187
- partsByType[part.partType] = [];
188
- partsByType[part.partType].push(part);
189
- }
190
- }
191
- folders.push({
192
- name,
193
- rootDir: folderDir,
194
- sourceFiles: sysmlFiles.map(f => relative(root, f) || basename(f)),
195
- namespaces: [...namespaceSet].sort(),
196
- partDefs,
197
- parts: partsByType,
198
- });
181
+ const rel = relative(resolved.projectRoot, doc.filePath) || basename(doc.filePath);
182
+ if (!folder.sourceFiles.includes(rel))
183
+ folder.sourceFiles.push(rel);
184
+ for (const ns of namespaces)
185
+ if (!folder.namespaces.includes(ns))
186
+ folder.namespaces.push(ns);
187
+ folder.partDefs.push(...partDefs);
188
+ for (const part of relevant) {
189
+ (folder.parts[part.partType] ??= []).push(part);
199
190
  }
200
191
  }
201
- return { folders, errors };
192
+ for (const folder of byRoot.values()) {
193
+ folder.namespaces.sort();
194
+ folder.sourceFiles.sort();
195
+ }
196
+ const effective = resolveEffectiveMethodology(resolved.binding, resolved.methodologies, new Set(resolved.filePackages.values()));
197
+ for (const d of effective.diagnostics)
198
+ errors.push(`${d.code}: ${d.message}`);
199
+ return {
200
+ folders: [...byRoot.values()],
201
+ errors,
202
+ effective,
203
+ available: [...resolved.methodologies.values()],
204
+ };
202
205
  }
203
206
  //# sourceMappingURL=methodology-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"methodology-loader.js","sourceRoot":"","sources":["../../src/model/methodology-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methodology-loader.js","sourceRoot":"","sources":["../../src/model/methodology-loader.ts"],"names":[],"mappings":"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"}
@@ -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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"}