@memoarchitect/tools 0.13.0 → 0.15.0

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 (824) hide show
  1. package/README.md +40 -26
  2. package/corpus/README.md +20 -36
  3. package/package.json +9 -10
  4. package/packages/tools/lib/analysis/impact.d.ts +30 -0
  5. package/packages/tools/lib/analysis/impact.d.ts.map +1 -1
  6. package/packages/tools/lib/analysis/impact.js +47 -74
  7. package/packages/tools/lib/analysis/impact.js.map +1 -1
  8. package/packages/tools/lib/analysis/interfaces-between.d.ts +36 -0
  9. package/packages/tools/lib/analysis/interfaces-between.d.ts.map +1 -0
  10. package/packages/tools/lib/analysis/interfaces-between.js +66 -0
  11. package/packages/tools/lib/analysis/interfaces-between.js.map +1 -0
  12. package/packages/tools/lib/analysis/suspect-links.d.ts +45 -0
  13. package/packages/tools/lib/analysis/suspect-links.d.ts.map +1 -0
  14. package/packages/tools/lib/analysis/suspect-links.js +66 -0
  15. package/packages/tools/lib/analysis/suspect-links.js.map +1 -0
  16. package/packages/tools/lib/analysis-starters.d.ts +2 -0
  17. package/packages/tools/lib/analysis-starters.d.ts.map +1 -1
  18. package/packages/tools/lib/analysis-starters.js +73 -68
  19. package/packages/tools/lib/analysis-starters.js.map +1 -1
  20. package/packages/tools/lib/authoring/outline-identity.d.ts +34 -0
  21. package/packages/tools/lib/authoring/outline-identity.d.ts.map +1 -0
  22. package/packages/tools/lib/authoring/outline-identity.js +95 -0
  23. package/packages/tools/lib/authoring/outline-identity.js.map +1 -0
  24. package/packages/tools/lib/authoring/outline-source.d.ts +57 -0
  25. package/packages/tools/lib/authoring/outline-source.d.ts.map +1 -0
  26. package/packages/tools/lib/authoring/outline-source.js +203 -0
  27. package/packages/tools/lib/authoring/outline-source.js.map +1 -0
  28. package/packages/tools/lib/authoring/source-outline.d.ts +82 -0
  29. package/packages/tools/lib/authoring/source-outline.d.ts.map +1 -0
  30. package/packages/tools/lib/authoring/source-outline.js +267 -0
  31. package/packages/tools/lib/authoring/source-outline.js.map +1 -0
  32. package/packages/tools/lib/bin/memo.js +181 -632
  33. package/packages/tools/lib/bin/memo.js.map +1 -1
  34. package/packages/tools/lib/browser/index.d.ts +12 -0
  35. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  36. package/packages/tools/lib/browser/index.js +8 -0
  37. package/packages/tools/lib/browser/index.js.map +1 -1
  38. package/packages/tools/lib/cli/project-commands.d.ts +3 -0
  39. package/packages/tools/lib/cli/project-commands.d.ts.map +1 -0
  40. package/packages/tools/lib/cli/project-commands.js +577 -0
  41. package/packages/tools/lib/cli/project-commands.js.map +1 -0
  42. package/packages/tools/lib/commands/ask.d.ts.map +1 -1
  43. package/packages/tools/lib/commands/ask.js +10 -18
  44. package/packages/tools/lib/commands/ask.js.map +1 -1
  45. package/packages/tools/lib/commands/compile.d.ts +18 -0
  46. package/packages/tools/lib/commands/compile.d.ts.map +1 -0
  47. package/packages/tools/lib/commands/compile.js +122 -0
  48. package/packages/tools/lib/commands/compile.js.map +1 -0
  49. package/packages/tools/lib/commands/convert.js +2 -2
  50. package/packages/tools/lib/commands/convert.js.map +1 -1
  51. package/packages/tools/lib/commands/create-package.js +4 -4
  52. package/packages/tools/lib/commands/create-package.js.map +1 -1
  53. package/packages/tools/lib/commands/dev.d.ts +20 -2
  54. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  55. package/packages/tools/lib/commands/dev.js +386 -97
  56. package/packages/tools/lib/commands/dev.js.map +1 -1
  57. package/packages/tools/lib/commands/dhf-draft.d.ts.map +1 -1
  58. package/packages/tools/lib/commands/dhf-draft.js +7 -16
  59. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  60. package/packages/tools/lib/commands/dhf-init.js +3 -3
  61. package/packages/tools/lib/commands/dhf-init.js.map +1 -1
  62. package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/dhf-lint.js +4 -3
  64. package/packages/tools/lib/commands/dhf-lint.js.map +1 -1
  65. package/packages/tools/lib/commands/dhf-preview.d.ts.map +1 -1
  66. package/packages/tools/lib/commands/dhf-preview.js +5 -26
  67. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  68. package/packages/tools/lib/commands/dhf.d.ts +4 -0
  69. package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
  70. package/packages/tools/lib/commands/dhf.js +77 -31
  71. package/packages/tools/lib/commands/dhf.js.map +1 -1
  72. package/packages/tools/lib/commands/element.d.ts.map +1 -1
  73. package/packages/tools/lib/commands/element.js +44 -6
  74. package/packages/tools/lib/commands/element.js.map +1 -1
  75. package/packages/tools/lib/commands/export.d.ts +1 -1
  76. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  77. package/packages/tools/lib/commands/export.js +25 -18
  78. package/packages/tools/lib/commands/export.js.map +1 -1
  79. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  80. package/packages/tools/lib/commands/generate.js +10 -30
  81. package/packages/tools/lib/commands/generate.js.map +1 -1
  82. package/packages/tools/lib/commands/ids-rebase.d.ts +15 -0
  83. package/packages/tools/lib/commands/ids-rebase.d.ts.map +1 -0
  84. package/packages/tools/lib/commands/ids-rebase.js +133 -0
  85. package/packages/tools/lib/commands/ids-rebase.js.map +1 -0
  86. package/packages/tools/lib/commands/import-ea.d.ts +3 -3
  87. package/packages/tools/lib/commands/import-ea.d.ts.map +1 -1
  88. package/packages/tools/lib/commands/import-ea.js +12 -9
  89. package/packages/tools/lib/commands/import-ea.js.map +1 -1
  90. package/packages/tools/lib/commands/import-owl.d.ts +1 -1
  91. package/packages/tools/lib/commands/import-owl.js +2 -2
  92. package/packages/tools/lib/commands/import-owl.js.map +1 -1
  93. package/packages/tools/lib/commands/import-sysand.d.ts +1 -1
  94. package/packages/tools/lib/commands/import-sysand.d.ts.map +1 -1
  95. package/packages/tools/lib/commands/import-sysand.js +15 -6
  96. package/packages/tools/lib/commands/import-sysand.js.map +1 -1
  97. package/packages/tools/lib/commands/import.d.ts +13 -0
  98. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  99. package/packages/tools/lib/commands/import.js +89 -29
  100. package/packages/tools/lib/commands/import.js.map +1 -1
  101. package/packages/tools/lib/commands/init.d.ts +0 -8
  102. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  103. package/packages/tools/lib/commands/init.js +56 -51
  104. package/packages/tools/lib/commands/init.js.map +1 -1
  105. package/packages/tools/lib/commands/inspect.d.ts.map +1 -1
  106. package/packages/tools/lib/commands/inspect.js +22 -15
  107. package/packages/tools/lib/commands/inspect.js.map +1 -1
  108. package/packages/tools/lib/commands/install.d.ts.map +1 -1
  109. package/packages/tools/lib/commands/install.js +9 -6
  110. package/packages/tools/lib/commands/install.js.map +1 -1
  111. package/packages/tools/lib/commands/interfaces.d.ts +8 -0
  112. package/packages/tools/lib/commands/interfaces.d.ts.map +1 -0
  113. package/packages/tools/lib/commands/interfaces.js +71 -0
  114. package/packages/tools/lib/commands/interfaces.js.map +1 -0
  115. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  116. package/packages/tools/lib/commands/lock.js +13 -6
  117. package/packages/tools/lib/commands/lock.js.map +1 -1
  118. package/packages/tools/lib/commands/mcp.js +7 -7
  119. package/packages/tools/lib/commands/mcp.js.map +1 -1
  120. package/packages/tools/lib/commands/migrate-layout.d.ts +5 -0
  121. package/packages/tools/lib/commands/migrate-layout.d.ts.map +1 -0
  122. package/packages/tools/lib/commands/migrate-layout.js +90 -0
  123. package/packages/tools/lib/commands/migrate-layout.js.map +1 -0
  124. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  125. package/packages/tools/lib/commands/ontology.js +26 -22
  126. package/packages/tools/lib/commands/ontology.js.map +1 -1
  127. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  128. package/packages/tools/lib/commands/pack.js +14 -9
  129. package/packages/tools/lib/commands/pack.js.map +1 -1
  130. package/packages/tools/lib/commands/pinned-target.d.ts +12 -0
  131. package/packages/tools/lib/commands/pinned-target.d.ts.map +1 -0
  132. package/packages/tools/lib/commands/pinned-target.js +74 -0
  133. package/packages/tools/lib/commands/pinned-target.js.map +1 -0
  134. package/packages/tools/lib/commands/plugin.d.ts.map +1 -1
  135. package/packages/tools/lib/commands/plugin.js +13 -22
  136. package/packages/tools/lib/commands/plugin.js.map +1 -1
  137. package/packages/tools/lib/commands/prune.d.ts +5 -0
  138. package/packages/tools/lib/commands/prune.d.ts.map +1 -0
  139. package/packages/tools/lib/commands/prune.js +27 -0
  140. package/packages/tools/lib/commands/prune.js.map +1 -0
  141. package/packages/tools/lib/commands/retired.d.ts +10 -0
  142. package/packages/tools/lib/commands/retired.d.ts.map +1 -0
  143. package/packages/tools/lib/commands/retired.js +35 -0
  144. package/packages/tools/lib/commands/retired.js.map +1 -0
  145. package/packages/tools/lib/commands/rules.d.ts +49 -5
  146. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  147. package/packages/tools/lib/commands/rules.js +340 -172
  148. package/packages/tools/lib/commands/rules.js.map +1 -1
  149. package/packages/tools/lib/commands/ship-library.d.ts +4 -0
  150. package/packages/tools/lib/commands/ship-library.d.ts.map +1 -0
  151. package/packages/tools/lib/commands/ship-library.js +45 -0
  152. package/packages/tools/lib/commands/ship-library.js.map +1 -0
  153. package/packages/tools/lib/commands/standards.d.ts +2 -2
  154. package/packages/tools/lib/commands/standards.d.ts.map +1 -1
  155. package/packages/tools/lib/commands/standards.js +78 -33
  156. package/packages/tools/lib/commands/standards.js.map +1 -1
  157. package/packages/tools/lib/commands/sysand-publish.d.ts +16 -1
  158. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  159. package/packages/tools/lib/commands/sysand-publish.js +75 -193
  160. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  161. package/packages/tools/lib/commands/toolchain.d.ts +5 -0
  162. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -1
  163. package/packages/tools/lib/commands/toolchain.js +50 -1
  164. package/packages/tools/lib/commands/toolchain.js.map +1 -1
  165. package/packages/tools/lib/commands/validate-client.d.ts +11 -0
  166. package/packages/tools/lib/commands/validate-client.d.ts.map +1 -0
  167. package/packages/tools/lib/commands/validate-client.js +54 -0
  168. package/packages/tools/lib/commands/validate-client.js.map +1 -0
  169. package/packages/tools/lib/commands/validate.d.ts +33 -2
  170. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  171. package/packages/tools/lib/commands/validate.js +432 -186
  172. package/packages/tools/lib/commands/validate.js.map +1 -1
  173. package/packages/tools/lib/dhf/device-dhf.d.ts +57 -0
  174. package/packages/tools/lib/dhf/device-dhf.d.ts.map +1 -0
  175. package/packages/tools/lib/dhf/device-dhf.js +152 -0
  176. package/packages/tools/lib/dhf/device-dhf.js.map +1 -0
  177. package/packages/tools/lib/dhf/dhf-config-v2.d.ts +1 -1
  178. package/packages/tools/lib/dhf/dhf-config-v2.d.ts.map +1 -1
  179. package/packages/tools/lib/dhf/query-engine.d.ts +9 -2
  180. package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
  181. package/packages/tools/lib/dhf/query-engine.js +29 -25
  182. package/packages/tools/lib/dhf/query-engine.js.map +1 -1
  183. package/packages/tools/lib/dhf/query-executor.d.ts +1 -1
  184. package/packages/tools/lib/dhf/query-executor.js +1 -1
  185. package/packages/tools/lib/dhf/query-executor.js.map +1 -1
  186. package/packages/tools/lib/dhf/standards-block.js +1 -1
  187. package/packages/tools/lib/dhf/standards-block.js.map +1 -1
  188. package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -1
  189. package/packages/tools/lib/dhf/standards-library.js +16 -9
  190. package/packages/tools/lib/dhf/standards-library.js.map +1 -1
  191. package/packages/tools/lib/dhf/standards-report.d.ts +11 -3
  192. package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -1
  193. package/packages/tools/lib/dhf/standards-report.js +43 -13
  194. package/packages/tools/lib/dhf/standards-report.js.map +1 -1
  195. package/packages/tools/lib/dhf/template-engine.d.ts +2 -0
  196. package/packages/tools/lib/dhf/template-engine.d.ts.map +1 -1
  197. package/packages/tools/lib/dhf/template-engine.js +5 -5
  198. package/packages/tools/lib/dhf/template-engine.js.map +1 -1
  199. package/packages/tools/lib/import/import-diff.d.ts +31 -1
  200. package/packages/tools/lib/import/import-diff.d.ts.map +1 -1
  201. package/packages/tools/lib/import/import-diff.js +91 -19
  202. package/packages/tools/lib/import/import-diff.js.map +1 -1
  203. package/packages/tools/lib/import/import-sources.d.ts +21 -0
  204. package/packages/tools/lib/import/import-sources.d.ts.map +1 -0
  205. package/packages/tools/lib/import/import-sources.js +36 -0
  206. package/packages/tools/lib/import/import-sources.js.map +1 -0
  207. package/packages/tools/lib/import/reqif.d.ts +23 -0
  208. package/packages/tools/lib/import/reqif.d.ts.map +1 -0
  209. package/packages/tools/lib/import/reqif.js +151 -0
  210. package/packages/tools/lib/import/reqif.js.map +1 -0
  211. package/packages/tools/lib/import/source-import.d.ts +128 -0
  212. package/packages/tools/lib/import/source-import.d.ts.map +1 -0
  213. package/packages/tools/lib/import/source-import.js +305 -0
  214. package/packages/tools/lib/import/source-import.js.map +1 -0
  215. package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -1
  216. package/packages/tools/lib/importer/cameo-importer.js +4 -1
  217. package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
  218. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
  219. package/packages/tools/lib/importer/ea-importer.js +4 -1
  220. package/packages/tools/lib/importer/ea-importer.js.map +1 -1
  221. package/packages/tools/lib/importer/sysand-importer.d.ts +2 -1
  222. package/packages/tools/lib/importer/sysand-importer.d.ts.map +1 -1
  223. package/packages/tools/lib/importer/sysand-importer.js +27 -10
  224. package/packages/tools/lib/importer/sysand-importer.js.map +1 -1
  225. package/packages/tools/lib/index.d.ts +20 -6
  226. package/packages/tools/lib/index.d.ts.map +1 -1
  227. package/packages/tools/lib/index.js +22 -8
  228. package/packages/tools/lib/index.js.map +1 -1
  229. package/packages/tools/lib/llm/draft-engine.js +1 -1
  230. package/packages/tools/lib/llm/draft-engine.js.map +1 -1
  231. package/packages/tools/lib/llm/model-context.js +1 -1
  232. package/packages/tools/lib/llm/model-context.js.map +1 -1
  233. package/packages/tools/lib/lock.d.ts +37 -2
  234. package/packages/tools/lib/lock.d.ts.map +1 -1
  235. package/packages/tools/lib/lock.js +93 -8
  236. package/packages/tools/lib/lock.js.map +1 -1
  237. package/packages/tools/lib/mcp/index.js +1 -1
  238. package/packages/tools/lib/mcp/index.js.map +1 -1
  239. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  240. package/packages/tools/lib/mcp/model-loader.js +6 -18
  241. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  242. package/packages/tools/lib/mcp/server.js +2 -2
  243. package/packages/tools/lib/mcp/server.js.map +1 -1
  244. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  245. package/packages/tools/lib/mcp/tools.js +5 -4
  246. package/packages/tools/lib/mcp/tools.js.map +1 -1
  247. package/packages/tools/lib/methodology/guide-service.d.ts +28 -0
  248. package/packages/tools/lib/methodology/guide-service.d.ts.map +1 -0
  249. package/packages/tools/lib/methodology/guide-service.js +32 -0
  250. package/packages/tools/lib/methodology/guide-service.js.map +1 -0
  251. package/packages/tools/lib/methodology/guide.d.ts +56 -0
  252. package/packages/tools/lib/methodology/guide.d.ts.map +1 -0
  253. package/packages/tools/lib/methodology/guide.js +80 -0
  254. package/packages/tools/lib/methodology/guide.js.map +1 -0
  255. package/packages/tools/lib/model/census-projects.d.ts +26 -0
  256. package/packages/tools/lib/model/census-projects.d.ts.map +1 -0
  257. package/packages/tools/lib/model/census-projects.js +53 -0
  258. package/packages/tools/lib/model/census-projects.js.map +1 -0
  259. package/packages/tools/lib/model/census.d.ts +103 -0
  260. package/packages/tools/lib/model/census.d.ts.map +1 -0
  261. package/packages/tools/lib/model/census.js +229 -0
  262. package/packages/tools/lib/model/census.js.map +1 -0
  263. package/packages/tools/lib/model/complete-model.d.ts +52 -0
  264. package/packages/tools/lib/model/complete-model.d.ts.map +1 -0
  265. package/packages/tools/lib/model/complete-model.js +287 -0
  266. package/packages/tools/lib/model/complete-model.js.map +1 -0
  267. package/packages/tools/lib/model/config-loader.d.ts +8 -3
  268. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  269. package/packages/tools/lib/model/config-loader.js +37 -6
  270. package/packages/tools/lib/model/config-loader.js.map +1 -1
  271. package/packages/tools/lib/model/config.d.ts +21 -7
  272. package/packages/tools/lib/model/config.d.ts.map +1 -1
  273. package/packages/tools/lib/model/effective-scope.d.ts +55 -28
  274. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -1
  275. package/packages/tools/lib/model/effective-scope.js +96 -35
  276. package/packages/tools/lib/model/effective-scope.js.map +1 -1
  277. package/packages/tools/lib/model/element-index.d.ts +207 -0
  278. package/packages/tools/lib/model/element-index.d.ts.map +1 -0
  279. package/packages/tools/lib/model/element-index.js +316 -0
  280. package/packages/tools/lib/model/element-index.js.map +1 -0
  281. package/packages/tools/lib/model/id-rebase.d.ts +35 -0
  282. package/packages/tools/lib/model/id-rebase.d.ts.map +1 -0
  283. package/packages/tools/lib/model/id-rebase.js +199 -0
  284. package/packages/tools/lib/model/id-rebase.js.map +1 -0
  285. package/packages/tools/lib/model/identity-registry.d.ts +34 -3
  286. package/packages/tools/lib/model/identity-registry.d.ts.map +1 -1
  287. package/packages/tools/lib/model/identity-registry.js +40 -7
  288. package/packages/tools/lib/model/identity-registry.js.map +1 -1
  289. package/packages/tools/lib/model/impact.d.ts +75 -0
  290. package/packages/tools/lib/model/impact.d.ts.map +1 -0
  291. package/packages/tools/lib/model/impact.js +167 -0
  292. package/packages/tools/lib/model/impact.js.map +1 -0
  293. package/packages/tools/lib/model/ir-identity.d.ts +3 -51
  294. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -1
  295. package/packages/tools/lib/model/ir-identity.js +14 -121
  296. package/packages/tools/lib/model/ir-identity.js.map +1 -1
  297. package/packages/tools/lib/model/kind-registry.d.ts +66 -22
  298. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  299. package/packages/tools/lib/model/kind-registry.js +104 -145
  300. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  301. package/packages/tools/lib/model/manifest.d.ts +2 -2
  302. package/packages/tools/lib/model/manifest.d.ts.map +1 -1
  303. package/packages/tools/lib/model/manifest.js +5 -4
  304. package/packages/tools/lib/model/manifest.js.map +1 -1
  305. package/packages/tools/lib/model/methodology-loader.d.ts +11 -2
  306. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  307. package/packages/tools/lib/model/methodology-loader.js +24 -130
  308. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  309. package/packages/tools/lib/model/methodology-resolver.d.ts +71 -6
  310. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -1
  311. package/packages/tools/lib/model/methodology-resolver.js +210 -24
  312. package/packages/tools/lib/model/methodology-resolver.js.map +1 -1
  313. package/packages/tools/lib/model/model-diff.d.ts +73 -0
  314. package/packages/tools/lib/model/model-diff.d.ts.map +1 -0
  315. package/packages/tools/lib/model/model-diff.js +91 -0
  316. package/packages/tools/lib/model/model-diff.js.map +1 -0
  317. package/packages/tools/lib/model/narrow-model.d.ts +9 -0
  318. package/packages/tools/lib/model/narrow-model.d.ts.map +1 -0
  319. package/packages/tools/lib/model/narrow-model.js +54 -0
  320. package/packages/tools/lib/model/narrow-model.js.map +1 -0
  321. package/packages/tools/lib/model/native-project.d.ts +92 -11
  322. package/packages/tools/lib/model/native-project.d.ts.map +1 -1
  323. package/packages/tools/lib/model/native-project.js +163 -267
  324. package/packages/tools/lib/model/native-project.js.map +1 -1
  325. package/packages/tools/lib/model/ontology-loader.d.ts +10 -61
  326. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  327. package/packages/tools/lib/model/ontology-loader.js +11 -512
  328. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  329. package/packages/tools/lib/model/package-manifest.d.ts +8 -2
  330. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -1
  331. package/packages/tools/lib/model/package-manifest.js +14 -2
  332. package/packages/tools/lib/model/package-manifest.js.map +1 -1
  333. package/packages/tools/lib/model/pinned.d.ts +216 -0
  334. package/packages/tools/lib/model/pinned.d.ts.map +1 -0
  335. package/packages/tools/lib/model/pinned.js +481 -0
  336. package/packages/tools/lib/model/pinned.js.map +1 -0
  337. package/packages/tools/lib/model/project-conversion.d.ts +3 -2
  338. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -1
  339. package/packages/tools/lib/model/project-conversion.js +55 -10
  340. package/packages/tools/lib/model/project-conversion.js.map +1 -1
  341. package/packages/tools/lib/model/project-settings.d.ts +10 -0
  342. package/packages/tools/lib/model/project-settings.d.ts.map +1 -0
  343. package/packages/tools/lib/model/project-settings.js +48 -0
  344. package/packages/tools/lib/model/project-settings.js.map +1 -0
  345. package/packages/tools/lib/model/relation-selection.d.ts +25 -0
  346. package/packages/tools/lib/model/relation-selection.d.ts.map +1 -0
  347. package/packages/tools/lib/model/relation-selection.js +65 -0
  348. package/packages/tools/lib/model/relation-selection.js.map +1 -0
  349. package/packages/tools/lib/model/relationship-legality.d.ts +6 -0
  350. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  351. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  352. package/packages/tools/lib/model/relationship-registry.d.ts +21 -8
  353. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  354. package/packages/tools/lib/model/relationship-registry.js +77 -129
  355. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  356. package/packages/tools/lib/model/relationship-subjects.d.ts +28 -0
  357. package/packages/tools/lib/model/relationship-subjects.d.ts.map +1 -0
  358. package/packages/tools/lib/model/relationship-subjects.js +126 -0
  359. package/packages/tools/lib/model/relationship-subjects.js.map +1 -0
  360. package/packages/tools/lib/model/release-target.d.ts +12 -0
  361. package/packages/tools/lib/model/release-target.d.ts.map +1 -0
  362. package/packages/tools/lib/model/release-target.js +35 -0
  363. package/packages/tools/lib/model/release-target.js.map +1 -0
  364. package/packages/tools/lib/model/selector-vocabulary.d.ts +47 -0
  365. package/packages/tools/lib/model/selector-vocabulary.d.ts.map +1 -0
  366. package/packages/tools/lib/model/selector-vocabulary.js +181 -0
  367. package/packages/tools/lib/model/selector-vocabulary.js.map +1 -0
  368. package/packages/tools/lib/model/semantic.d.ts +99 -7
  369. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  370. package/packages/tools/lib/model/semantic.js +13 -1
  371. package/packages/tools/lib/model/semantic.js.map +1 -1
  372. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -1
  373. package/packages/tools/lib/model/settings-boundary.js +9 -8
  374. package/packages/tools/lib/model/settings-boundary.js.map +1 -1
  375. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  376. package/packages/tools/lib/model/short-id.js +4 -0
  377. package/packages/tools/lib/model/short-id.js.map +1 -1
  378. package/packages/tools/lib/model/source-graph.d.ts +9 -7
  379. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  380. package/packages/tools/lib/model/source-graph.js +19 -24
  381. package/packages/tools/lib/model/source-graph.js.map +1 -1
  382. package/packages/tools/lib/model/source-provenance.d.ts +5 -1
  383. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -1
  384. package/packages/tools/lib/model/source-provenance.js.map +1 -1
  385. package/packages/tools/lib/model/sysml-files.js +1 -1
  386. package/packages/tools/lib/model/sysml-ir.d.ts +2 -5
  387. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -1
  388. package/packages/tools/lib/model/sysml-ir.js +1 -100
  389. package/packages/tools/lib/model/sysml-ir.js.map +1 -1
  390. package/packages/tools/lib/model/toolchain-merge.d.ts +4 -0
  391. package/packages/tools/lib/model/toolchain-merge.d.ts.map +1 -0
  392. package/packages/tools/lib/model/toolchain-merge.js +34 -0
  393. package/packages/tools/lib/model/toolchain-merge.js.map +1 -0
  394. package/packages/tools/lib/model/user-settings.d.ts +13 -0
  395. package/packages/tools/lib/model/user-settings.d.ts.map +1 -0
  396. package/packages/tools/lib/model/user-settings.js +83 -0
  397. package/packages/tools/lib/model/user-settings.js.map +1 -0
  398. package/packages/tools/lib/model/variability.d.ts +56 -0
  399. package/packages/tools/lib/model/variability.d.ts.map +1 -0
  400. package/packages/tools/lib/model/variability.js +116 -0
  401. package/packages/tools/lib/model/variability.js.map +1 -0
  402. package/packages/tools/lib/model/version-range.d.ts +2 -0
  403. package/packages/tools/lib/model/version-range.d.ts.map +1 -0
  404. package/packages/tools/lib/model/version-range.js +37 -0
  405. package/packages/tools/lib/model/version-range.js.map +1 -0
  406. package/packages/tools/lib/model/view-deriver.d.ts +16 -0
  407. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  408. package/packages/tools/lib/model/view-deriver.js +129 -30
  409. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  410. package/packages/tools/lib/model/view-layout-block.d.ts +81 -0
  411. package/packages/tools/lib/model/view-layout-block.d.ts.map +1 -0
  412. package/packages/tools/lib/model/view-layout-block.js +525 -0
  413. package/packages/tools/lib/model/view-layout-block.js.map +1 -0
  414. package/packages/tools/lib/model/view-layout-migration.d.ts +54 -0
  415. package/packages/tools/lib/model/view-layout-migration.d.ts.map +1 -0
  416. package/packages/tools/lib/model/view-layout-migration.js +156 -0
  417. package/packages/tools/lib/model/view-layout-migration.js.map +1 -0
  418. package/packages/tools/lib/model/workspace-membership.d.ts +99 -0
  419. package/packages/tools/lib/model/workspace-membership.d.ts.map +1 -0
  420. package/packages/tools/lib/model/workspace-membership.js +281 -0
  421. package/packages/tools/lib/model/workspace-membership.js.map +1 -0
  422. package/packages/tools/lib/ontology/owl-exporter.d.ts +1 -1
  423. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  424. package/packages/tools/lib/ontology/owl-exporter.js +1 -1
  425. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  426. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -1
  427. package/packages/tools/lib/operations/ai-authoring.js +7 -5
  428. package/packages/tools/lib/operations/ai-authoring.js.map +1 -1
  429. package/packages/tools/lib/operations/authoring.d.ts +10 -4
  430. package/packages/tools/lib/operations/authoring.d.ts.map +1 -1
  431. package/packages/tools/lib/operations/authoring.js +27 -11
  432. package/packages/tools/lib/operations/authoring.js.map +1 -1
  433. package/packages/tools/lib/operations/index.d.ts +2 -0
  434. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  435. package/packages/tools/lib/operations/index.js +1 -0
  436. package/packages/tools/lib/operations/index.js.map +1 -1
  437. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  438. package/packages/tools/lib/operations/project-snapshot.js +7 -13
  439. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  440. package/packages/tools/lib/plugin/plugin-scaffold.js +2 -2
  441. package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -1
  442. package/packages/tools/lib/protocol/messages.d.ts +375 -7
  443. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  444. package/packages/tools/lib/serializer/csv-io.d.ts +37 -29
  445. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  446. package/packages/tools/lib/serializer/csv-io.js +64 -31
  447. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  448. package/packages/tools/lib/serializer/sysml-generator.d.ts +15 -2
  449. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  450. package/packages/tools/lib/serializer/sysml-generator.js +45 -17
  451. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  452. package/packages/tools/lib/server/conflict-policy.js +1 -1
  453. package/packages/tools/lib/server/conflict-policy.js.map +1 -1
  454. package/packages/tools/lib/server/dashboard-store.d.ts +1 -7
  455. package/packages/tools/lib/server/dashboard-store.d.ts.map +1 -1
  456. package/packages/tools/lib/server/dashboard-store.js +3 -14
  457. package/packages/tools/lib/server/dashboard-store.js.map +1 -1
  458. package/packages/tools/lib/server/dev-server.d.ts +48 -1
  459. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  460. package/packages/tools/lib/server/dev-server.js +529 -80
  461. package/packages/tools/lib/server/dev-server.js.map +1 -1
  462. package/packages/tools/lib/server/dev-validate.d.ts +30 -0
  463. package/packages/tools/lib/server/dev-validate.d.ts.map +1 -0
  464. package/packages/tools/lib/server/dev-validate.js +82 -0
  465. package/packages/tools/lib/server/dev-validate.js.map +1 -0
  466. package/packages/tools/lib/server/element-writer.d.ts +4 -1
  467. package/packages/tools/lib/server/element-writer.d.ts.map +1 -1
  468. package/packages/tools/lib/server/element-writer.js +56 -35
  469. package/packages/tools/lib/server/element-writer.js.map +1 -1
  470. package/packages/tools/lib/server/mutation-domain.d.ts +10 -0
  471. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -1
  472. package/packages/tools/lib/server/mutation-domain.js +45 -8
  473. package/packages/tools/lib/server/mutation-domain.js.map +1 -1
  474. package/packages/tools/lib/server/package-source.d.ts +13 -3
  475. package/packages/tools/lib/server/package-source.d.ts.map +1 -1
  476. package/packages/tools/lib/server/package-source.js +31 -39
  477. package/packages/tools/lib/server/package-source.js.map +1 -1
  478. package/packages/tools/lib/server/package-writer.d.ts +19 -6
  479. package/packages/tools/lib/server/package-writer.d.ts.map +1 -1
  480. package/packages/tools/lib/server/package-writer.js +90 -39
  481. package/packages/tools/lib/server/package-writer.js.map +1 -1
  482. package/packages/tools/lib/server/persistor.d.ts +33 -7
  483. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  484. package/packages/tools/lib/server/persistor.js +63 -48
  485. package/packages/tools/lib/server/persistor.js.map +1 -1
  486. package/packages/tools/lib/server/project-gitignore.d.ts +9 -0
  487. package/packages/tools/lib/server/project-gitignore.d.ts.map +1 -0
  488. package/packages/tools/lib/server/project-gitignore.js +27 -0
  489. package/packages/tools/lib/server/project-gitignore.js.map +1 -0
  490. package/packages/tools/lib/server/relationship-writer.d.ts +31 -2
  491. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  492. package/packages/tools/lib/server/relationship-writer.js +255 -95
  493. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  494. package/packages/tools/lib/server/release-writer.d.ts +46 -0
  495. package/packages/tools/lib/server/release-writer.d.ts.map +1 -0
  496. package/packages/tools/lib/server/release-writer.js +133 -0
  497. package/packages/tools/lib/server/release-writer.js.map +1 -0
  498. package/packages/tools/lib/server/rule-policy-writer.d.ts +17 -4
  499. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -1
  500. package/packages/tools/lib/server/rule-policy-writer.js +92 -7
  501. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -1
  502. package/packages/tools/lib/server/rule-service.d.ts +50 -0
  503. package/packages/tools/lib/server/rule-service.d.ts.map +1 -0
  504. package/packages/tools/lib/server/rule-service.js +89 -0
  505. package/packages/tools/lib/server/rule-service.js.map +1 -0
  506. package/packages/tools/lib/server/rule-writer.d.ts +87 -0
  507. package/packages/tools/lib/server/rule-writer.d.ts.map +1 -0
  508. package/packages/tools/lib/server/rule-writer.js +165 -0
  509. package/packages/tools/lib/server/rule-writer.js.map +1 -0
  510. package/packages/tools/lib/server/suspect-review.d.ts +11 -0
  511. package/packages/tools/lib/server/suspect-review.d.ts.map +1 -0
  512. package/packages/tools/lib/server/suspect-review.js +28 -0
  513. package/packages/tools/lib/server/suspect-review.js.map +1 -0
  514. package/packages/tools/lib/server/sysml-notation.d.ts +1 -1
  515. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -1
  516. package/packages/tools/lib/server/sysml-notation.js +5 -0
  517. package/packages/tools/lib/server/sysml-notation.js.map +1 -1
  518. package/packages/tools/lib/server/user-preferences.d.ts +8 -0
  519. package/packages/tools/lib/server/user-preferences.d.ts.map +1 -0
  520. package/packages/tools/lib/server/user-preferences.js +47 -0
  521. package/packages/tools/lib/server/user-preferences.js.map +1 -0
  522. package/packages/tools/lib/server/version-servers.d.ts +60 -0
  523. package/packages/tools/lib/server/version-servers.d.ts.map +1 -0
  524. package/packages/tools/lib/server/version-servers.js +106 -0
  525. package/packages/tools/lib/server/version-servers.js.map +1 -0
  526. package/packages/tools/lib/server/view-layout-store.d.ts +28 -13
  527. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  528. package/packages/tools/lib/server/view-layout-store.js +106 -106
  529. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  530. package/packages/tools/lib/server/view-writer.d.ts +22 -2
  531. package/packages/tools/lib/server/view-writer.d.ts.map +1 -1
  532. package/packages/tools/lib/server/view-writer.js +99 -44
  533. package/packages/tools/lib/server/view-writer.js.map +1 -1
  534. package/packages/tools/lib/server/write-guard.d.ts +7 -0
  535. package/packages/tools/lib/server/write-guard.d.ts.map +1 -0
  536. package/packages/tools/lib/server/write-guard.js +77 -0
  537. package/packages/tools/lib/server/write-guard.js.map +1 -0
  538. package/packages/tools/lib/stage2/api-model.d.ts +160 -0
  539. package/packages/tools/lib/stage2/api-model.d.ts.map +1 -0
  540. package/packages/tools/lib/stage2/api-model.js +341 -0
  541. package/packages/tools/lib/stage2/api-model.js.map +1 -0
  542. package/packages/tools/lib/stage2/build-from-api.d.ts +47 -0
  543. package/packages/tools/lib/stage2/build-from-api.d.ts.map +1 -0
  544. package/packages/tools/lib/stage2/build-from-api.js +1462 -0
  545. package/packages/tools/lib/stage2/build-from-api.js.map +1 -0
  546. package/packages/tools/lib/stage2/guide-from-api.d.ts +38 -0
  547. package/packages/tools/lib/stage2/guide-from-api.d.ts.map +1 -0
  548. package/packages/tools/lib/stage2/guide-from-api.js +97 -0
  549. package/packages/tools/lib/stage2/guide-from-api.js.map +1 -0
  550. package/packages/tools/lib/stage2/handoff-files.d.ts +13 -0
  551. package/packages/tools/lib/stage2/handoff-files.d.ts.map +1 -0
  552. package/packages/tools/lib/stage2/handoff-files.js +32 -0
  553. package/packages/tools/lib/stage2/handoff-files.js.map +1 -0
  554. package/packages/tools/lib/stage2/methodology-from-api.d.ts +10 -0
  555. package/packages/tools/lib/stage2/methodology-from-api.d.ts.map +1 -0
  556. package/packages/tools/lib/stage2/methodology-from-api.js +109 -0
  557. package/packages/tools/lib/stage2/methodology-from-api.js.map +1 -0
  558. package/packages/tools/lib/stage2/package-metadata-from-api.d.ts +15 -0
  559. package/packages/tools/lib/stage2/package-metadata-from-api.d.ts.map +1 -0
  560. package/packages/tools/lib/stage2/package-metadata-from-api.js +238 -0
  561. package/packages/tools/lib/stage2/package-metadata-from-api.js.map +1 -0
  562. package/packages/tools/lib/stage2/project-from-api.d.ts +60 -0
  563. package/packages/tools/lib/stage2/project-from-api.d.ts.map +1 -0
  564. package/packages/tools/lib/stage2/project-from-api.js +328 -0
  565. package/packages/tools/lib/stage2/project-from-api.js.map +1 -0
  566. package/packages/tools/lib/stage2/registries-from-api.d.ts +68 -0
  567. package/packages/tools/lib/stage2/registries-from-api.d.ts.map +1 -0
  568. package/packages/tools/lib/stage2/registries-from-api.js +313 -0
  569. package/packages/tools/lib/stage2/registries-from-api.js.map +1 -0
  570. package/packages/tools/lib/stage2/stage2-from-handoff.d.ts +26 -0
  571. package/packages/tools/lib/stage2/stage2-from-handoff.d.ts.map +1 -0
  572. package/packages/tools/lib/stage2/stage2-from-handoff.js +34 -0
  573. package/packages/tools/lib/stage2/stage2-from-handoff.js.map +1 -0
  574. package/packages/tools/lib/stage2/sysml-names.d.ts +9 -0
  575. package/packages/tools/lib/stage2/sysml-names.d.ts.map +1 -0
  576. package/packages/tools/lib/stage2/sysml-names.js +39 -0
  577. package/packages/tools/lib/stage2/sysml-names.js.map +1 -0
  578. package/packages/tools/lib/toolchain/default-registry.d.ts +2 -2
  579. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -1
  580. package/packages/tools/lib/toolchain/default-registry.js +9 -5
  581. package/packages/tools/lib/toolchain/default-registry.js.map +1 -1
  582. package/packages/tools/lib/toolchain/diagnostic.d.ts +2 -2
  583. package/packages/tools/lib/toolchain/diagnostic.js +1 -1
  584. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -1
  585. package/packages/tools/lib/toolchain/effective.d.ts +25 -17
  586. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -1
  587. package/packages/tools/lib/toolchain/effective.js +45 -40
  588. package/packages/tools/lib/toolchain/effective.js.map +1 -1
  589. package/packages/tools/lib/toolchain/exceptions.d.ts +27 -0
  590. package/packages/tools/lib/toolchain/exceptions.d.ts.map +1 -0
  591. package/packages/tools/lib/toolchain/exceptions.js +77 -0
  592. package/packages/tools/lib/toolchain/exceptions.js.map +1 -0
  593. package/packages/tools/lib/toolchain/index.d.ts +2 -2
  594. package/packages/tools/lib/toolchain/index.d.ts.map +1 -1
  595. package/packages/tools/lib/toolchain/index.js +2 -2
  596. package/packages/tools/lib/toolchain/index.js.map +1 -1
  597. package/packages/tools/lib/toolchain/operations.d.ts +45 -10
  598. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -1
  599. package/packages/tools/lib/toolchain/operations.js +107 -8
  600. package/packages/tools/lib/toolchain/operations.js.map +1 -1
  601. package/packages/tools/lib/toolchain/ownership.d.ts +13 -0
  602. package/packages/tools/lib/toolchain/ownership.d.ts.map +1 -0
  603. package/packages/tools/lib/toolchain/ownership.js +57 -0
  604. package/packages/tools/lib/toolchain/ownership.js.map +1 -0
  605. package/packages/tools/lib/toolchain/process.d.ts +2 -2
  606. package/packages/tools/lib/toolchain/process.js +2 -2
  607. package/packages/tools/lib/toolchain/project-config.d.ts +4 -0
  608. package/packages/tools/lib/toolchain/project-config.d.ts.map +1 -0
  609. package/packages/tools/lib/toolchain/project-config.js +13 -0
  610. package/packages/tools/lib/toolchain/project-config.js.map +1 -0
  611. package/packages/tools/lib/toolchain/project-model.d.ts +75 -0
  612. package/packages/tools/lib/toolchain/project-model.d.ts.map +1 -0
  613. package/packages/tools/lib/toolchain/project-model.js +92 -0
  614. package/packages/tools/lib/toolchain/project-model.js.map +1 -0
  615. package/packages/tools/lib/toolchain/providers/internal-package.d.ts +6 -0
  616. package/packages/tools/lib/toolchain/providers/internal-package.d.ts.map +1 -0
  617. package/packages/tools/lib/toolchain/providers/internal-package.js +47 -0
  618. package/packages/tools/lib/toolchain/providers/internal-package.js.map +1 -0
  619. package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts +20 -0
  620. package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts.map +1 -0
  621. package/packages/tools/lib/toolchain/providers/opensysml-check.js +95 -0
  622. package/packages/tools/lib/toolchain/providers/opensysml-check.js.map +1 -0
  623. package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts +17 -0
  624. package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts.map +1 -0
  625. package/packages/tools/lib/toolchain/providers/opensysml-compact.js +69 -0
  626. package/packages/tools/lib/toolchain/providers/opensysml-compact.js.map +1 -0
  627. package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts +50 -0
  628. package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts.map +1 -0
  629. package/packages/tools/lib/toolchain/providers/opensysml-lowering.js +646 -0
  630. package/packages/tools/lib/toolchain/providers/opensysml-lowering.js.map +1 -0
  631. package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts +16 -0
  632. package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts.map +1 -0
  633. package/packages/tools/lib/toolchain/providers/opensysml-names.js +37 -0
  634. package/packages/tools/lib/toolchain/providers/opensysml-names.js.map +1 -0
  635. package/packages/tools/lib/toolchain/providers/opensysml.d.ts +88 -0
  636. package/packages/tools/lib/toolchain/providers/opensysml.d.ts.map +1 -0
  637. package/packages/tools/lib/toolchain/providers/opensysml.js +178 -0
  638. package/packages/tools/lib/toolchain/providers/opensysml.js.map +1 -0
  639. package/packages/tools/lib/toolchain/providers/recommended.d.ts +2 -0
  640. package/packages/tools/lib/toolchain/providers/recommended.d.ts.map +1 -0
  641. package/packages/tools/lib/toolchain/providers/recommended.js +13 -0
  642. package/packages/tools/lib/toolchain/providers/recommended.js.map +1 -0
  643. package/packages/tools/lib/toolchain/providers/sysand-project.d.ts +60 -0
  644. package/packages/tools/lib/toolchain/providers/sysand-project.d.ts.map +1 -0
  645. package/packages/tools/lib/toolchain/providers/sysand-project.js +160 -0
  646. package/packages/tools/lib/toolchain/providers/sysand-project.js.map +1 -0
  647. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -1
  648. package/packages/tools/lib/toolchain/providers/sysand.js +26 -2
  649. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -1
  650. package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts +29 -0
  651. package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts.map +1 -0
  652. package/packages/tools/lib/toolchain/providers/syside-lowering.js +497 -0
  653. package/packages/tools/lib/toolchain/providers/syside-lowering.js.map +1 -0
  654. package/packages/tools/lib/toolchain/providers/syside-python.d.ts +9 -0
  655. package/packages/tools/lib/toolchain/providers/syside-python.d.ts.map +1 -0
  656. package/packages/tools/lib/toolchain/providers/syside-python.js +69 -0
  657. package/packages/tools/lib/toolchain/providers/syside-python.js.map +1 -0
  658. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -1
  659. package/packages/tools/lib/toolchain/providers/syside.js +2 -0
  660. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -1
  661. package/packages/tools/lib/toolchain/registry.d.ts +118 -21
  662. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -1
  663. package/packages/tools/lib/toolchain/registry.js +18 -24
  664. package/packages/tools/lib/toolchain/registry.js.map +1 -1
  665. package/packages/tools/lib/toolchain/schema.d.ts +6 -5
  666. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -1
  667. package/packages/tools/lib/toolchain/schema.js +8 -13
  668. package/packages/tools/lib/toolchain/schema.js.map +1 -1
  669. package/packages/tools/lib/toolchain/shipped-library.d.ts +28 -0
  670. package/packages/tools/lib/toolchain/shipped-library.d.ts.map +1 -0
  671. package/packages/tools/lib/toolchain/shipped-library.js +120 -0
  672. package/packages/tools/lib/toolchain/shipped-library.js.map +1 -0
  673. package/packages/tools/lib/toolchain/source-fingerprint.d.ts +2 -0
  674. package/packages/tools/lib/toolchain/source-fingerprint.d.ts.map +1 -0
  675. package/packages/tools/lib/toolchain/source-fingerprint.js +30 -0
  676. package/packages/tools/lib/toolchain/source-fingerprint.js.map +1 -0
  677. package/packages/tools/lib/toolchain/user-settings-status.d.ts +51 -0
  678. package/packages/tools/lib/toolchain/user-settings-status.d.ts.map +1 -0
  679. package/packages/tools/lib/toolchain/user-settings-status.js +104 -0
  680. package/packages/tools/lib/toolchain/user-settings-status.js.map +1 -0
  681. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  682. package/packages/tools/lib/validator/architecture-validator.js +2 -1
  683. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  684. package/packages/tools/lib/validator/behavior-validator.js +1 -1
  685. package/packages/tools/lib/validator/behavior-validator.js.map +1 -1
  686. package/packages/tools/lib/validator/builtin-rules.js +1 -1
  687. package/packages/tools/lib/validator/builtin-rules.js.map +1 -1
  688. package/packages/tools/lib/validator/constraint-eval.d.ts +30 -4
  689. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  690. package/packages/tools/lib/validator/constraint-eval.js +101 -59
  691. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  692. package/packages/tools/lib/validator/constraint-loader-api.d.ts +22 -0
  693. package/packages/tools/lib/validator/constraint-loader-api.d.ts.map +1 -0
  694. package/packages/tools/lib/validator/constraint-loader-api.js +160 -0
  695. package/packages/tools/lib/validator/constraint-loader-api.js.map +1 -0
  696. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -18
  697. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  698. package/packages/tools/lib/validator/constraint-loader.js +33 -141
  699. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  700. package/packages/tools/lib/validator/rule-clauses.d.ts +51 -0
  701. package/packages/tools/lib/validator/rule-clauses.d.ts.map +1 -0
  702. package/packages/tools/lib/validator/rule-clauses.js +87 -0
  703. package/packages/tools/lib/validator/rule-clauses.js.map +1 -0
  704. package/packages/tools/lib/validator/rule-engine.d.ts +9 -1
  705. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  706. package/packages/tools/lib/validator/rule-engine.js +50 -6
  707. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  708. package/packages/tools/lib/validator/rule-registry.d.ts +4 -8
  709. package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -1
  710. package/packages/tools/lib/validator/rule-registry.js +42 -79
  711. package/packages/tools/lib/validator/rule-registry.js.map +1 -1
  712. package/packages/tools/lib/validator/rule-tailoring.d.ts +62 -0
  713. package/packages/tools/lib/validator/rule-tailoring.d.ts.map +1 -0
  714. package/packages/tools/lib/validator/rule-tailoring.js +85 -0
  715. package/packages/tools/lib/validator/rule-tailoring.js.map +1 -0
  716. package/packages/tools/lib/validator/types.d.ts +12 -1
  717. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  718. package/packages/tools/lib/validator/workspace-boundary-validator.d.ts +9 -0
  719. package/packages/tools/lib/validator/workspace-boundary-validator.d.ts.map +1 -0
  720. package/packages/tools/lib/validator/workspace-boundary-validator.js +28 -0
  721. package/packages/tools/lib/validator/workspace-boundary-validator.js.map +1 -0
  722. package/packages/tools/python/memo_model.py +243 -0
  723. package/packages/tools/python/memo_stage1_syside.py +389 -0
  724. package/packages/tools/lib/commands/check.d.ts +0 -6
  725. package/packages/tools/lib/commands/check.d.ts.map +0 -1
  726. package/packages/tools/lib/commands/check.js +0 -191
  727. package/packages/tools/lib/commands/check.js.map +0 -1
  728. package/packages/tools/lib/commands/conformance.d.ts +0 -36
  729. package/packages/tools/lib/commands/conformance.d.ts.map +0 -1
  730. package/packages/tools/lib/commands/conformance.js +0 -212
  731. package/packages/tools/lib/commands/conformance.js.map +0 -1
  732. package/packages/tools/lib/commands/roundtrip.d.ts +0 -6
  733. package/packages/tools/lib/commands/roundtrip.d.ts.map +0 -1
  734. package/packages/tools/lib/commands/roundtrip.js +0 -145
  735. package/packages/tools/lib/commands/roundtrip.js.map +0 -1
  736. package/packages/tools/lib/conformance/baseline.d.ts +0 -26
  737. package/packages/tools/lib/conformance/baseline.d.ts.map +0 -1
  738. package/packages/tools/lib/conformance/baseline.js +0 -170
  739. package/packages/tools/lib/conformance/baseline.js.map +0 -1
  740. package/packages/tools/lib/conformance/bnf.d.ts +0 -84
  741. package/packages/tools/lib/conformance/bnf.d.ts.map +0 -1
  742. package/packages/tools/lib/conformance/bnf.js +0 -166
  743. package/packages/tools/lib/conformance/bnf.js.map +0 -1
  744. package/packages/tools/lib/conformance/corpus.d.ts +0 -125
  745. package/packages/tools/lib/conformance/corpus.d.ts.map +0 -1
  746. package/packages/tools/lib/conformance/corpus.js +0 -190
  747. package/packages/tools/lib/conformance/corpus.js.map +0 -1
  748. package/packages/tools/lib/conformance/diff-xmi.d.ts +0 -118
  749. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +0 -1
  750. package/packages/tools/lib/conformance/diff-xmi.js +0 -276
  751. package/packages/tools/lib/conformance/diff-xmi.js.map +0 -1
  752. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +0 -10
  753. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +0 -1
  754. package/packages/tools/lib/conformance/generated/syside-rules.js +0 -1142
  755. package/packages/tools/lib/conformance/generated/syside-rules.js.map +0 -1
  756. package/packages/tools/lib/conformance/index.d.ts +0 -7
  757. package/packages/tools/lib/conformance/index.d.ts.map +0 -1
  758. package/packages/tools/lib/conformance/index.js +0 -19
  759. package/packages/tools/lib/conformance/index.js.map +0 -1
  760. package/packages/tools/lib/conformance/run.d.ts +0 -117
  761. package/packages/tools/lib/conformance/run.d.ts.map +0 -1
  762. package/packages/tools/lib/conformance/run.js +0 -0
  763. package/packages/tools/lib/conformance/run.js.map +0 -1
  764. package/packages/tools/lib/conformance/xmi.d.ts +0 -45
  765. package/packages/tools/lib/conformance/xmi.d.ts.map +0 -1
  766. package/packages/tools/lib/conformance/xmi.js +0 -148
  767. package/packages/tools/lib/conformance/xmi.js.map +0 -1
  768. package/packages/tools/lib/language/generated/ast.d.ts +0 -3565
  769. package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
  770. package/packages/tools/lib/language/generated/ast.js +0 -2975
  771. package/packages/tools/lib/language/generated/ast.js.map +0 -1
  772. package/packages/tools/lib/language/generated/grammar.d.ts +0 -7
  773. package/packages/tools/lib/language/generated/grammar.d.ts.map +0 -1
  774. package/packages/tools/lib/language/generated/grammar.js +0 -10643
  775. package/packages/tools/lib/language/generated/grammar.js.map +0 -1
  776. package/packages/tools/lib/language/generated/module.d.ts +0 -14
  777. package/packages/tools/lib/language/generated/module.d.ts.map +0 -1
  778. package/packages/tools/lib/language/generated/module.js +0 -21
  779. package/packages/tools/lib/language/generated/module.js.map +0 -1
  780. package/packages/tools/lib/language/memo-sysml-module.d.ts +0 -24
  781. package/packages/tools/lib/language/memo-sysml-module.d.ts.map +0 -1
  782. package/packages/tools/lib/language/memo-sysml-module.js +0 -20
  783. package/packages/tools/lib/language/memo-sysml-module.js.map +0 -1
  784. package/packages/tools/lib/model/builder.d.ts +0 -27
  785. package/packages/tools/lib/model/builder.d.ts.map +0 -1
  786. package/packages/tools/lib/model/builder.js +0 -2103
  787. package/packages/tools/lib/model/builder.js.map +0 -1
  788. package/packages/tools/lib/model/package-registry.d.ts +0 -62
  789. package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
  790. package/packages/tools/lib/model/package-registry.js +0 -175
  791. package/packages/tools/lib/model/package-registry.js.map +0 -1
  792. package/packages/tools/lib/model/parser-utils.d.ts +0 -65
  793. package/packages/tools/lib/model/parser-utils.d.ts.map +0 -1
  794. package/packages/tools/lib/model/parser-utils.js +0 -201
  795. package/packages/tools/lib/model/parser-utils.js.map +0 -1
  796. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +0 -3
  797. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +0 -1
  798. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +0 -97
  799. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +0 -1
  800. package/packages/tools/lib/sysmlc/index.d.ts +0 -2
  801. package/packages/tools/lib/sysmlc/index.d.ts.map +0 -1
  802. package/packages/tools/lib/sysmlc/index.js +0 -7
  803. package/packages/tools/lib/sysmlc/index.js.map +0 -1
  804. package/packages/tools/lib/sysmlc/server.d.ts +0 -29
  805. package/packages/tools/lib/sysmlc/server.d.ts.map +0 -1
  806. package/packages/tools/lib/sysmlc/server.js +0 -168
  807. package/packages/tools/lib/sysmlc/server.js.map +0 -1
  808. package/packages/tools/lib/toolchain/lowering.d.ts +0 -63
  809. package/packages/tools/lib/toolchain/lowering.d.ts.map +0 -1
  810. package/packages/tools/lib/toolchain/lowering.js +0 -100
  811. package/packages/tools/lib/toolchain/lowering.js.map +0 -1
  812. package/packages/tools/lib/toolchain/providers/internal.d.ts +0 -33
  813. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +0 -1
  814. package/packages/tools/lib/toolchain/providers/internal.js +0 -286
  815. package/packages/tools/lib/toolchain/providers/internal.js.map +0 -1
  816. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +0 -77
  817. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +0 -1
  818. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  819. package/packages/tools/lib/toolchain/sysmlc-client.js.map +0 -1
  820. package/packages/tools/lib/validator/sysml-constraints.d.ts +0 -64
  821. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +0 -1
  822. package/packages/tools/lib/validator/sysml-constraints.js +0 -251
  823. package/packages/tools/lib/validator/sysml-constraints.js.map +0 -1
  824. package/packages/tools/src/grammar/memo-sysml.langium +0 -1056
@@ -8,8 +8,8 @@
8
8
  // if a project still carries them. Selection now comes from two native facts:
9
9
  //
10
10
  // 1. the project's own `.sysml` import graph, rooted at the entrypoint
11
- // `model/catalog/project.sysml`, and
12
- // 2. the `ProjectMethodBinding` that entrypoint declares, whose
11
+ // `model/methodology/project.sysml`, and
12
+ // 2. the `ModelMethodBinding` that entrypoint declares, whose
13
13
  // `selectedMethodology` is a typed SysML reference.
14
14
  //
15
15
  // Application settings still say *where* a package's source sits on disk. That
@@ -21,16 +21,16 @@
21
21
  //
22
22
  // Design reference: sections 5.1, 5.3, 6.2, 9.
23
23
  // ─────────────────────────────────────────────────────────────────────────────
24
- import { existsSync, readdirSync, statSync } from 'node:fs';
24
+ import { existsSync, readdirSync, realpathSync, lstatSync, statSync } from 'node:fs';
25
25
  import { dirname, extname, join, relative, resolve, sep } from 'node:path';
26
- import { parseFiles } from './parser-utils.js';
27
26
  import { readPackageManifest } from './package-manifest.js';
27
+ import { satisfiesRange } from './version-range.js';
28
28
  import { discoverMemoManifests, findMemoManifests, resolveManifestPath } from './manifest.js';
29
29
  import { importKpar } from '../commands/package.js';
30
30
  /**
31
31
  * SysML v2 standard-library packages.
32
32
  *
33
- * These are supplied by the conformant tool (SysIDE, Sysand), not by a MEMO
33
+ * These are supplied by the selected compiler and the package manager, not by a MEMO
34
34
  * package, so an import of one resolves to nothing on disk and that is correct.
35
35
  * Reporting it as an unresolved import would bury the real diagnostics under
36
36
  * one line per file.
@@ -45,7 +45,7 @@ const STANDARD_LIBRARY_PACKAGES = new Set([
45
45
  'ISQ', 'SI', 'Quantities', 'MeasurementReferences', 'Time', 'SpatialFrames',
46
46
  ]);
47
47
  /** Conventional template value for the required project root descriptor. */
48
- export const PROJECT_ENTRYPOINT = join('model', 'catalog', 'project.sysml');
48
+ export const PROJECT_ENTRYPOINT = join('model', 'methodology', 'project.sysml');
49
49
  /**
50
50
  * Resolve the project's required native entrypoint. `entrypoint` is a project locator:
51
51
  * it names the SysML file from which project identity and import scope start;
@@ -53,7 +53,7 @@ export const PROJECT_ENTRYPOINT = join('model', 'catalog', 'project.sysml');
53
53
  *
54
54
  * There is NO conventional fallback. A project without an `entrypoint` in its
55
55
  * `memo.package.yaml` is not a project, even if a file happens to sit at
56
- * `model/catalog/project.sysml` — that path is a scaffolding default, not a
56
+ * `model/methodology/project.sysml` — that path is a scaffolding default, not a
57
57
  * location the resolver assumes. Callers must report the missing locator
58
58
  * rather than a missing file, because the file is usually there.
59
59
  */
@@ -69,13 +69,30 @@ export function projectEntrypoint(projectRoot) {
69
69
  return configured;
70
70
  return relative(root, candidate);
71
71
  }
72
+ /** The project's method binding, read from SysML. */
73
+ /**
74
+ * The definitions a model's method binding is typed by. `ModelMethodBinding`
75
+ * is the name; `ProjectMethodBinding` is its deprecated former spelling (a
76
+ * specialization of it in the ontology), still read so an existing model binds,
77
+ * and reported by `deprecated-binding-spelling`. Every place that recognizes a
78
+ * binding asks this list, so the old spelling is named in one place.
79
+ * Delete `ProjectMethodBinding` in 0.15.0.
80
+ */
81
+ export const METHOD_BINDING_KINDS = ['ModelMethodBinding', 'ProjectMethodBinding'];
82
+ /** The spellings of a binding that are deprecated: its old type and its old name attribute. */
83
+ export const DEPRECATED_BINDING_SPELLINGS = { kind: 'ProjectMethodBinding', name: 'projectName' };
84
+ export function isMethodBindingKind(kind) {
85
+ return METHOD_BINDING_KINDS.includes(kind ?? '');
86
+ }
72
87
  // ─── Project root ─────────────────────────────────────────────────────────────
73
88
  /**
74
89
  * Find the project root by walking up for a root descriptor whose explicit
75
90
  * `entrypoint` names an existing SysML root file.
76
91
  */
77
92
  export function findProjectRoot(startDir) {
78
- let dir = resolve(startDir);
93
+ // A real path, so every caller that names files from the root names them as
94
+ // a compiler does (see `canonicalPath`).
95
+ let dir = canonicalPath(startDir);
79
96
  while (true) {
80
97
  const entrypoint = projectEntrypoint(dir);
81
98
  if (entrypoint && existsSync(join(dir, entrypoint)))
@@ -86,6 +103,28 @@ export function findProjectRoot(startDir) {
86
103
  dir = parent;
87
104
  }
88
105
  }
106
+ /**
107
+ * The real path of a directory, symbolic links resolved. A compiler names the
108
+ * files it read by their real paths; a project reached through a symlink (macOS
109
+ * `/tmp` and `/var`, a linked home) would otherwise never match them, and
110
+ * resolve to nothing.
111
+ */
112
+ function isSymlink(path) {
113
+ try {
114
+ return lstatSync(path).isSymbolicLink();
115
+ }
116
+ catch {
117
+ return false;
118
+ }
119
+ }
120
+ export function canonicalPath(path) {
121
+ try {
122
+ return realpathSync.native(resolve(path));
123
+ }
124
+ catch {
125
+ return resolve(path);
126
+ }
127
+ }
89
128
  // ─── Library roots (locators only) ────────────────────────────────────────────
90
129
  /**
91
130
  * Collect the library roots a project could resolve packages from.
@@ -94,10 +133,13 @@ export function findProjectRoot(startDir) {
94
133
  * closure decides what is *selected*. A root listed here and never imported
95
134
  * contributes nothing to the model.
96
135
  */
97
- export function discoverLibraryRoots(projectRoot) {
136
+ export function discoverLibraryRoots(projectRoot, onShadowed) {
98
137
  const roots = new Map();
99
138
  const add = (dir) => {
100
- const abs = resolve(dir);
139
+ // The real path: a package installed by symlink (`memo install <path>`) is
140
+ // reported by the compiler at the directory the link points to, and the
141
+ // root must be known by that name for its files to be matched to it.
142
+ const abs = isSymlink(dir) ? canonicalPath(dir) : resolve(dir);
101
143
  if (roots.has(abs))
102
144
  return;
103
145
  const { path, manifest } = readPackageManifest(abs);
@@ -106,12 +148,21 @@ export function discoverLibraryRoots(projectRoot) {
106
148
  const sysmlDir = manifest.sysmlDir ? resolve(abs, manifest.sysmlDir) : abs;
107
149
  if (!existsSync(sysmlDir))
108
150
  return;
109
- roots.set(abs, {
151
+ const root = {
110
152
  dir: abs,
111
153
  sysmlDir,
112
154
  packageName: manifest.name ?? abs.split(sep).pop() ?? abs,
113
155
  packageVersion: manifest.version,
114
- });
156
+ };
157
+ // A package name resolves to one root. Two copies of one package declare every package in it twice,
158
+ // so the first found keeps the name: an explicit override, then the nearest repository, then the
159
+ // installation. The ones passed over are reported, never merged.
160
+ const kept = [...roots.values()].find(candidate => candidate.packageName === root.packageName);
161
+ if (kept) {
162
+ onShadowed?.(kept, root);
163
+ return;
164
+ }
165
+ roots.set(abs, root);
115
166
  };
116
167
  // Distribution manifests map a package name to a directory. They are an
117
168
  // application/distribution setting: they make a package available, they do
@@ -123,7 +174,7 @@ export function discoverLibraryRoots(projectRoot) {
123
174
  // Extensions are reusable ontology packages, so they are library roots
124
175
  // on the same terms as any other package: available, not selected.
125
176
  // They were reachable only as example directories before, which meant
126
- // a project could import an extension, resolve it under `syside`, and
177
+ // a project could import an extension, resolve it under an external compiler, and
127
178
  // still have every extension type come back unregistered — no layer,
128
179
  // no supertype, no legality. Listing them here is what makes an
129
180
  // extension mean something to the tools and not just to the compiler.
@@ -175,228 +226,6 @@ export function discoverLibraryRoots(projectRoot) {
175
226
  }
176
227
  return [...roots.values()];
177
228
  }
178
- // ─── AST reading ──────────────────────────────────────────────────────────────
179
- function attrString(value) {
180
- if (!value)
181
- return undefined;
182
- switch (value.$type) {
183
- case 'StringValue':
184
- try {
185
- return JSON.parse(value.value ?? '""');
186
- }
187
- catch {
188
- return value.value?.replace(/^"|"$/g, '');
189
- }
190
- case 'IntValue':
191
- case 'RealValue':
192
- case 'BooleanValue':
193
- return String(value.value);
194
- case 'EnumValue': {
195
- const ref = value.enumRef ?? '';
196
- const idx = ref.lastIndexOf('::');
197
- return idx >= 0 ? ref.slice(idx + 2) : ref;
198
- }
199
- case 'SetLiteral':
200
- return undefined; // handled by attrList
201
- default:
202
- return undefined;
203
- }
204
- }
205
- /**
206
- * Read a list-valued attribute.
207
- *
208
- * SysML spells a multi-valued attribute either as a set literal
209
- * (`= ("a", "b")`) or as repeated single assignments. Both are read here so the
210
- * ontology's authoring style is not a semantic difference.
211
- */
212
- function attrList(body, name) {
213
- const out = [];
214
- for (const member of body ?? []) {
215
- if (member.$type !== 'AttributeMember' || member.name !== name || !member.value)
216
- continue;
217
- if (member.value.$type === 'SetLiteral') {
218
- // A SetElement is either a quoted string or a qualified name; the
219
- // grammar puts them in different properties.
220
- for (const el of member.value.elements ?? []) {
221
- const raw = el.stringValue ?? el.value;
222
- if (typeof raw === 'string') {
223
- try {
224
- out.push(JSON.parse(raw));
225
- }
226
- catch {
227
- out.push(stripQuotes(raw));
228
- }
229
- }
230
- }
231
- }
232
- else {
233
- const v = attrString(member.value);
234
- if (v !== undefined)
235
- out.push(v);
236
- }
237
- }
238
- return out;
239
- }
240
- function stripQuotes(s) {
241
- return s.replace(/^"|"$/g, '');
242
- }
243
- function attr(body, name) {
244
- for (const member of body ?? []) {
245
- if (member.$type === 'AttributeMember' && member.name === name && member.value) {
246
- const v = attrString(member.value);
247
- if (v !== undefined)
248
- return v;
249
- }
250
- }
251
- return undefined;
252
- }
253
- /**
254
- * Read the type a `ref :>> <name> : <Type>;` member narrows to.
255
- *
256
- * This is the reference mechanism session 1 verified across the MEMO grammar,
257
- * SysIDE, and Sysand: narrowing the reference's type names the rule, because
258
- * each rule is its own `constraint def`. Binding a *value* to a definition is
259
- * not portable — SysIDE rejects it, since a value must be a feature.
260
- */
261
- function refType(body, name) {
262
- for (const member of body ?? []) {
263
- if (member.$type !== 'RefMember' || member.name !== name)
264
- continue;
265
- if (member.type)
266
- return shortName(member.type);
267
- if (member.value)
268
- return attrString(member.value);
269
- }
270
- return undefined;
271
- }
272
- function shortName(qualified) {
273
- const idx = qualified.lastIndexOf('::');
274
- return idx >= 0 ? qualified.slice(idx + 2) : qualified;
275
- }
276
- function asScopeMode(raw) {
277
- return raw === 'allAvailable' || raw === 'explicit' ? raw : undefined;
278
- }
279
- function readRulePolicy(node, file) {
280
- const body = node.body ?? [];
281
- const disposition = attr(body, 'disposition');
282
- const severity = attr(body, 'severityOverride');
283
- return {
284
- usageName: node.name,
285
- targetRuleType: refType(body, 'targetRule'),
286
- replacementRuleType: refType(body, 'replacementRule'),
287
- disposition: disposition === 'enabled' || disposition === 'disabled' || disposition === 'replaced'
288
- ? disposition
289
- : undefined,
290
- severityOverride: severity === 'error' || severity === 'warning' || severity === 'info' ? severity : undefined,
291
- rationaleText: attr(body, 'rationaleText'),
292
- authority: attr(body, 'authority'),
293
- approvalReference: attr(body, 'approvalReference'),
294
- approvedBy: attr(body, 'approvedBy'),
295
- approvedOn: attr(body, 'approvedOn'),
296
- sourceFile: file,
297
- };
298
- }
299
- function nestedPolicies(node, file) {
300
- const out = [];
301
- for (const member of node.body ?? []) {
302
- if (member.$type === 'PartMember' && member.type && shortName(member.type) === 'RulePolicy') {
303
- out.push(readRulePolicy(member, file));
304
- }
305
- }
306
- return out;
307
- }
308
- /** Walk one document for `ProjectMethodBinding` and `MethodologyDefinition` usages. */
309
- function readNativeUsages(doc) {
310
- const bindings = [];
311
- const methodologies = [];
312
- const model = doc.document.parseResult?.value;
313
- if (!model)
314
- return { bindings, methodologies };
315
- const visit = (node, pkg) => {
316
- if (!node)
317
- return;
318
- if (node.$type === 'PackageDeclaration') {
319
- for (const m of node.members ?? [])
320
- visit(m, node.name ?? pkg);
321
- return;
322
- }
323
- if (node.$type !== 'PartUsage' && node.$type !== 'PartMember')
324
- return;
325
- const type = node.type ? shortName(node.type) : undefined;
326
- const body = node.body ?? [];
327
- if (type === 'ProjectMethodBinding') {
328
- bindings.push({
329
- usageName: node.name,
330
- bindingId: attr(body, 'id'),
331
- projectName: attr(body, 'projectName'),
332
- selectedMethodologyName: refType(body, 'selectedMethodology'),
333
- scopeMode: asScopeMode(attr(body, 'scopeMode')),
334
- includedModules: attrList(body, 'includedModule'),
335
- rulePolicies: nestedPolicies(node, doc.filePath),
336
- sourceFile: doc.filePath,
337
- packageQualifiedName: pkg,
338
- });
339
- }
340
- else if (type === 'MethodologyDefinition') {
341
- methodologies.push({
342
- usageName: node.name,
343
- methodologyId: attr(body, 'id'),
344
- displayName: attr(body, 'name'),
345
- version: attr(body, 'version'),
346
- baseMethodologyName: refType(body, 'baseMethodology'),
347
- scopeMode: asScopeMode(attr(body, 'scopeMode')),
348
- includedLayers: attrList(body, 'includedLayer'),
349
- includedModules: attrList(body, 'includedModule'),
350
- includedStandards: attrList(body, 'includedStandard'),
351
- includedArtifactKinds: attrList(body, 'includedArtifactKind'),
352
- includedViewpoints: attrList(body, 'includedViewpoint'),
353
- rulePolicies: nestedPolicies(node, doc.filePath),
354
- sourceFile: doc.filePath,
355
- packageQualifiedName: pkg,
356
- });
357
- }
358
- for (const m of body)
359
- visit(m, pkg);
360
- };
361
- for (const member of model.members ?? [])
362
- visit(member);
363
- return { bindings, methodologies };
364
- }
365
- function indexPackages(documents, fileToRoot) {
366
- const index = new Map();
367
- for (const doc of documents) {
368
- const model = doc.document.parseResult?.value;
369
- if (!model)
370
- continue;
371
- const walk = (node) => {
372
- if (!node || node.$type !== 'PackageDeclaration')
373
- return;
374
- const name = node.name;
375
- let entry = index.get(name);
376
- if (!entry) {
377
- entry = { qualifiedName: name, files: new Set(), imports: new Set(), root: fileToRoot.get(doc.filePath) };
378
- index.set(name, entry);
379
- }
380
- entry.files.add(doc.filePath);
381
- if (!entry.root)
382
- entry.root = fileToRoot.get(doc.filePath);
383
- for (const member of node.members ?? []) {
384
- if (member.$type === 'ImportDeclaration') {
385
- const path = member.path ?? '';
386
- const pkgName = path.endsWith('::*') ? path.slice(0, -3) : path.split('::').slice(0, -1).join('::') || path;
387
- if (pkgName)
388
- entry.imports.add(pkgName);
389
- }
390
- else {
391
- walk(member);
392
- }
393
- }
394
- };
395
- for (const member of model.members ?? [])
396
- walk(member);
397
- }
398
- return index;
399
- }
400
229
  function collectSysmlFiles(dir, out = []) {
401
230
  let entries = [];
402
231
  try {
@@ -432,24 +261,51 @@ function collectSysmlFiles(dir, out = []) {
432
261
  * Before the flip this read `type:` out of the package manifest; that field is
433
262
  * gone, so a reusable root is classified by whether it supplies a methodology.
434
263
  */
435
- function originFor(root, suppliesMethodology) {
264
+ function originFor(root, suppliesMethodology, dependencyDirs = new Set()) {
436
265
  if (!root)
437
266
  return 'project';
438
267
  if (suppliesMethodology)
439
268
  return 'methodology';
269
+ // A root the project's `dependencies` name is a model it builds on, not the
270
+ // ontology: the consumer says which packages are models, and the import
271
+ // closure still decides which of their packages are used.
272
+ if (dependencyDirs.has(root.dir))
273
+ return 'dependency';
440
274
  return 'ontology';
441
275
  }
442
- // ─── Resolution ───────────────────────────────────────────────────────────────
443
276
  /**
444
- * Resolve a project from its native SysML alone.
445
- *
446
- * The closure walk starts at the entrypoint's package and follows imports.
447
- * Anything it does not reach is not part of the model, however many manifests
448
- * point at it.
277
+ * Match each `dependencies` entry to a library root by name (a scoped name also
278
+ * matches its bare form, the way `memo install` stores a directory), and say
279
+ * which are missing or at a version the range does not accept.
449
280
  */
450
- export async function resolveNativeProject(projectRoot) {
281
+ export function resolveDependencies(projectRoot, libraryRoots, diagnostics) {
282
+ const declared = readPackageManifest(projectRoot).manifest.dependencies ?? {};
283
+ const bare = (name) => name.replace(/^@[^/]+\//, '');
284
+ const out = [];
285
+ for (const [name, range] of Object.entries(declared)) {
286
+ const root = libraryRoots.find(r => r.packageName === name)
287
+ ?? libraryRoots.find(r => bare(r.packageName) === bare(name));
288
+ out.push({ name, range, root });
289
+ if (!root) {
290
+ diagnostics.push({
291
+ code: 'dependency-missing',
292
+ message: `The dependency "${name}" (${range}) is listed in memo.package.yaml but no package of that name was found. `
293
+ + 'Install it with `memo-architect install`, or place it under memo_packages/.',
294
+ });
295
+ }
296
+ else if (!satisfiesRange(root.packageVersion, range)) {
297
+ diagnostics.push({
298
+ code: 'dependency-version',
299
+ message: `The dependency "${name}" asks for ${range} and ${root.dir} is ${root.packageVersion ?? 'unversioned'}.`,
300
+ });
301
+ }
302
+ }
303
+ return out;
304
+ }
305
+ /** Find a project's sources: no SysML is read. */
306
+ export function discoverProjectSources(projectRoot) {
451
307
  const diagnostics = [];
452
- const root = resolve(projectRoot);
308
+ const root = canonicalPath(projectRoot);
453
309
  const entrypointPath = projectEntrypoint(root);
454
310
  const entrypoint = entrypointPath ? resolve(root, entrypointPath) : undefined;
455
311
  const includes = readPackageManifest(root).manifest.include ?? [];
@@ -473,9 +329,20 @@ export async function resolveNativeProject(projectRoot) {
473
329
  });
474
330
  }
475
331
  }
476
- const libraryRoots = discoverLibraryRoots(root);
332
+ const shadowed = [];
333
+ const libraryRoots = discoverLibraryRoots(root, (kept, ignored) => shadowed.push({ kept, ignored }));
334
+ if (shadowed.length > 0) {
335
+ const names = shadowed.map(s => s.ignored.packageName);
336
+ diagnostics.push({
337
+ code: 'library-root-shadowed',
338
+ severity: 'warning',
339
+ message: `${names.length} package(s) were found in two places and the first is used: ${names.slice(0, 3).join(', ')}${names.length > 3 ? ', …' : ''}. `
340
+ + `Using ${dirname(shadowed[0].kept.dir)}, not ${dirname(shadowed[0].ignored.dir)}. The order is MEMO_ONTOLOGY_PATH, then the nearest repository, then the installation; `
341
+ + 'two copies would declare every package twice.',
342
+ });
343
+ }
477
344
  const fileToRoot = new Map();
478
- // Match SysIDE's source-root contract exactly: only explicitly included
345
+ // Match the `include` source-root contract exactly: only explicitly included
479
346
  // directories are project model source. Includes may name a sibling OTS
480
347
  // repository; imports, rather than physical location, decide scope.
481
348
  const projectFiles = [...new Set(includes.filter(include => extname(include).toLowerCase() !== '.kpar').flatMap(include => {
@@ -493,8 +360,16 @@ export async function resolveNativeProject(projectRoot) {
493
360
  libraryFiles.push(f);
494
361
  }
495
362
  }
496
- const parsed = await parseFiles([...projectFiles, ...libraryFiles], '');
497
- const documents = parsed.documents;
363
+ return { projectRoot: root, entrypointPath, entrypoint, libraryRoots, projectFiles, libraryFiles, fileToRoot, diagnostics };
364
+ }
365
+ /**
366
+ * Close a project's resolution over its package index and native usages,
367
+ * however they were read: the import closure from the entrypoint, the library
368
+ * roots it selects, and the method binding.
369
+ */
370
+ export function finishResolution(sources, index, bindings, methodologyList) {
371
+ const { projectRoot: root, entrypointPath, entrypoint, libraryRoots } = sources;
372
+ const diagnostics = [...sources.diagnostics];
498
373
  if (!entrypoint || !existsSync(entrypoint)) {
499
374
  diagnostics.push({
500
375
  code: 'no-entrypoint',
@@ -503,11 +378,12 @@ export async function resolveNativeProject(projectRoot) {
503
378
  file: entrypoint,
504
379
  });
505
380
  }
506
- const index = indexPackages(documents, fileToRoot);
507
381
  const filePackages = new Map();
382
+ const publicImports = new Map();
508
383
  for (const entry of index.values()) {
509
384
  for (const file of entry.files)
510
385
  filePackages.set(file, entry.qualifiedName);
386
+ publicImports.set(entry.qualifiedName, entry.publicImports);
511
387
  }
512
388
  // The entrypoint, not every source file on disk, starts the closure. This
513
389
  // keeps an unimported source area out of explicit scope and makes the same
@@ -518,17 +394,24 @@ export async function resolveNativeProject(projectRoot) {
518
394
  if (entrypoint && entry.files.has(entrypoint))
519
395
  queue.push({ name: entry.qualifiedName, depth: 0 });
520
396
  }
397
+ if (entrypoint && existsSync(entrypoint) && queue.length === 0) {
398
+ // The entrypoint is on disk and nothing that was compiled declares it, so
399
+ // the project resolves to nothing. Said, not left as an empty model.
400
+ diagnostics.push({
401
+ code: 'entrypoint-not-compiled',
402
+ message: `No compiled document declares the entrypoint ${entrypoint}, so nothing of the project could be resolved. `
403
+ + 'A project reached through a symbolic link is the usual cause: open it by its real path.',
404
+ file: entrypoint,
405
+ });
406
+ }
407
+ const dependencies = resolveDependencies(root, libraryRoots, diagnostics);
408
+ const dependencyDirs = new Set(dependencies.flatMap(d => d.root ? [d.root.dir] : []));
521
409
  const methodologyPackages = new Set();
522
- const bindings = [];
523
410
  const methodologies = new Map();
524
- for (const doc of documents) {
525
- const { bindings: b, methodologies: m } = readNativeUsages(doc);
526
- bindings.push(...b);
527
- for (const meth of m) {
528
- methodologies.set(meth.usageName, meth);
529
- if (meth.packageQualifiedName)
530
- methodologyPackages.add(meth.packageQualifiedName);
531
- }
411
+ for (const meth of methodologyList) {
412
+ methodologies.set(meth.usageName, meth);
413
+ if (meth.packageQualifiedName)
414
+ methodologyPackages.add(meth.packageQualifiedName);
532
415
  }
533
416
  while (queue.length > 0) {
534
417
  const { name, depth, via } = queue.shift();
@@ -554,7 +437,7 @@ export async function resolveNativeProject(projectRoot) {
554
437
  qualifiedName: name,
555
438
  files: [...entry.files],
556
439
  root: entry.root,
557
- origin: originFor(entry.root, methodologyPackages.has(name)),
440
+ origin: originFor(entry.root, methodologyPackages.has(name), dependencyDirs),
558
441
  importDepth: depth,
559
442
  importedBy: via ? [via] : [],
560
443
  });
@@ -572,8 +455,8 @@ export async function resolveNativeProject(projectRoot) {
572
455
  if (entrypoint && existsSync(entrypoint)) {
573
456
  diagnostics.push({
574
457
  code: 'no-binding',
575
- message: `No ProjectMethodBinding found in ${entrypointPath}. It must declare one; `
576
- + `it is what selects the project's methodology.`,
458
+ message: `No ModelMethodBinding found in ${entrypointPath}. It must declare one; `
459
+ + `it is what selects the model's methodology.`,
577
460
  file: entrypoint,
578
461
  });
579
462
  }
@@ -581,15 +464,24 @@ export async function resolveNativeProject(projectRoot) {
581
464
  else if (projectBindings.length > 1) {
582
465
  diagnostics.push({
583
466
  code: 'multiple-bindings',
584
- message: `${projectBindings.length} ProjectMethodBinding usages found (`
467
+ message: `${projectBindings.length} ModelMethodBinding usages found (`
585
468
  + projectBindings.map(b => `${b.usageName} in ${relative(root, b.sourceFile)}`).join(', ')
586
- + `). A project binds exactly one methodology; which one applied would otherwise depend on load order.`,
469
+ + `). A model binds exactly one methodology; which one applied would otherwise depend on load order.`,
587
470
  });
588
471
  binding = projectBindings[0];
589
472
  }
590
473
  else {
591
474
  binding = projectBindings[0];
592
475
  }
476
+ if (binding?.deprecatedSpellings?.length) {
477
+ diagnostics.push({
478
+ code: 'deprecated-binding-spelling',
479
+ severity: 'warning',
480
+ message: `${binding.usageName} is written with ${binding.deprecatedSpellings.map(s => `\`${s}\``).join(' and ')}, `
481
+ + 'which still work and are deleted in 0.15.0. Write `ModelMethodBinding` and `modelName` instead.',
482
+ file: binding.sourceFile,
483
+ });
484
+ }
593
485
  if (binding) {
594
486
  if (!binding.selectedMethodologyName) {
595
487
  diagnostics.push({
@@ -606,11 +498,14 @@ export async function resolveNativeProject(projectRoot) {
606
498
  file: binding.sourceFile,
607
499
  });
608
500
  }
609
- if (binding.scopeMode === 'allAvailable' && binding.includedModules.length > 0) {
501
+ const imported = binding.packageQualifiedName
502
+ ? [...(publicImports.get(binding.packageQualifiedName) ?? [])] : [];
503
+ if (binding.scopeMode === 'allAvailable' && imported.length > 0) {
610
504
  diagnostics.push({
611
505
  code: 'scope-mode-conflict',
612
- message: `${binding.usageName} sets scopeMode = allAvailable and also lists includedModule entries. `
613
- + `Under allAvailable the lists must be empty, or the binding states its scope twice.`,
506
+ message: `${binding.usageName} sets scopeMode = allAvailable, and its package also publicly imports `
507
+ + `${imported.join(', ')} to add to the selection. `
508
+ + `Under allAvailable everything resolved is selected, so the binding states its scope twice.`,
614
509
  file: binding.sourceFile,
615
510
  });
616
511
  }
@@ -623,8 +518,9 @@ export async function resolveNativeProject(projectRoot) {
623
518
  closure,
624
519
  selectedRoots,
625
520
  unusedRoots,
626
- documents,
521
+ dependencies,
627
522
  filePackages,
523
+ publicImports,
628
524
  diagnostics,
629
525
  };
630
526
  }