@memoarchitect/tools 0.13.2 → 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 -269
  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 +100 -26
  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 -3571
  769. package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
  770. package/packages/tools/lib/language/generated/ast.js +0 -2980
  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 -10687
  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 -2112
  787. package/packages/tools/lib/model/builder.js.map +0 -1
  788. package/packages/tools/lib/model/package-registry.d.ts +0 -64
  789. package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
  790. package/packages/tools/lib/model/package-registry.js +0 -184
  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 -1064
@@ -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,230 +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, -4)
387
- : path.endsWith('::*') ? path.slice(0, -3)
388
- : path.split('::').slice(0, -1).join('::') || path;
389
- if (pkgName)
390
- entry.imports.add(pkgName);
391
- }
392
- else {
393
- walk(member);
394
- }
395
- }
396
- };
397
- for (const member of model.members ?? [])
398
- walk(member);
399
- }
400
- return index;
401
- }
402
229
  function collectSysmlFiles(dir, out = []) {
403
230
  let entries = [];
404
231
  try {
@@ -434,24 +261,51 @@ function collectSysmlFiles(dir, out = []) {
434
261
  * Before the flip this read `type:` out of the package manifest; that field is
435
262
  * gone, so a reusable root is classified by whether it supplies a methodology.
436
263
  */
437
- function originFor(root, suppliesMethodology) {
264
+ function originFor(root, suppliesMethodology, dependencyDirs = new Set()) {
438
265
  if (!root)
439
266
  return 'project';
440
267
  if (suppliesMethodology)
441
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';
442
274
  return 'ontology';
443
275
  }
444
- // ─── Resolution ───────────────────────────────────────────────────────────────
445
276
  /**
446
- * Resolve a project from its native SysML alone.
447
- *
448
- * The closure walk starts at the entrypoint's package and follows imports.
449
- * Anything it does not reach is not part of the model, however many manifests
450
- * 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.
451
280
  */
452
- 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) {
453
307
  const diagnostics = [];
454
- const root = resolve(projectRoot);
308
+ const root = canonicalPath(projectRoot);
455
309
  const entrypointPath = projectEntrypoint(root);
456
310
  const entrypoint = entrypointPath ? resolve(root, entrypointPath) : undefined;
457
311
  const includes = readPackageManifest(root).manifest.include ?? [];
@@ -475,9 +329,20 @@ export async function resolveNativeProject(projectRoot) {
475
329
  });
476
330
  }
477
331
  }
478
- 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
+ }
479
344
  const fileToRoot = new Map();
480
- // Match SysIDE's source-root contract exactly: only explicitly included
345
+ // Match the `include` source-root contract exactly: only explicitly included
481
346
  // directories are project model source. Includes may name a sibling OTS
482
347
  // repository; imports, rather than physical location, decide scope.
483
348
  const projectFiles = [...new Set(includes.filter(include => extname(include).toLowerCase() !== '.kpar').flatMap(include => {
@@ -495,8 +360,16 @@ export async function resolveNativeProject(projectRoot) {
495
360
  libraryFiles.push(f);
496
361
  }
497
362
  }
498
- const parsed = await parseFiles([...projectFiles, ...libraryFiles], '');
499
- 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];
500
373
  if (!entrypoint || !existsSync(entrypoint)) {
501
374
  diagnostics.push({
502
375
  code: 'no-entrypoint',
@@ -505,11 +378,12 @@ export async function resolveNativeProject(projectRoot) {
505
378
  file: entrypoint,
506
379
  });
507
380
  }
508
- const index = indexPackages(documents, fileToRoot);
509
381
  const filePackages = new Map();
382
+ const publicImports = new Map();
510
383
  for (const entry of index.values()) {
511
384
  for (const file of entry.files)
512
385
  filePackages.set(file, entry.qualifiedName);
386
+ publicImports.set(entry.qualifiedName, entry.publicImports);
513
387
  }
514
388
  // The entrypoint, not every source file on disk, starts the closure. This
515
389
  // keeps an unimported source area out of explicit scope and makes the same
@@ -520,17 +394,24 @@ export async function resolveNativeProject(projectRoot) {
520
394
  if (entrypoint && entry.files.has(entrypoint))
521
395
  queue.push({ name: entry.qualifiedName, depth: 0 });
522
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] : []));
523
409
  const methodologyPackages = new Set();
524
- const bindings = [];
525
410
  const methodologies = new Map();
526
- for (const doc of documents) {
527
- const { bindings: b, methodologies: m } = readNativeUsages(doc);
528
- bindings.push(...b);
529
- for (const meth of m) {
530
- methodologies.set(meth.usageName, meth);
531
- if (meth.packageQualifiedName)
532
- methodologyPackages.add(meth.packageQualifiedName);
533
- }
411
+ for (const meth of methodologyList) {
412
+ methodologies.set(meth.usageName, meth);
413
+ if (meth.packageQualifiedName)
414
+ methodologyPackages.add(meth.packageQualifiedName);
534
415
  }
535
416
  while (queue.length > 0) {
536
417
  const { name, depth, via } = queue.shift();
@@ -556,7 +437,7 @@ export async function resolveNativeProject(projectRoot) {
556
437
  qualifiedName: name,
557
438
  files: [...entry.files],
558
439
  root: entry.root,
559
- origin: originFor(entry.root, methodologyPackages.has(name)),
440
+ origin: originFor(entry.root, methodologyPackages.has(name), dependencyDirs),
560
441
  importDepth: depth,
561
442
  importedBy: via ? [via] : [],
562
443
  });
@@ -574,8 +455,8 @@ export async function resolveNativeProject(projectRoot) {
574
455
  if (entrypoint && existsSync(entrypoint)) {
575
456
  diagnostics.push({
576
457
  code: 'no-binding',
577
- message: `No ProjectMethodBinding found in ${entrypointPath}. It must declare one; `
578
- + `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.`,
579
460
  file: entrypoint,
580
461
  });
581
462
  }
@@ -583,15 +464,24 @@ export async function resolveNativeProject(projectRoot) {
583
464
  else if (projectBindings.length > 1) {
584
465
  diagnostics.push({
585
466
  code: 'multiple-bindings',
586
- message: `${projectBindings.length} ProjectMethodBinding usages found (`
467
+ message: `${projectBindings.length} ModelMethodBinding usages found (`
587
468
  + projectBindings.map(b => `${b.usageName} in ${relative(root, b.sourceFile)}`).join(', ')
588
- + `). 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.`,
589
470
  });
590
471
  binding = projectBindings[0];
591
472
  }
592
473
  else {
593
474
  binding = projectBindings[0];
594
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
+ }
595
485
  if (binding) {
596
486
  if (!binding.selectedMethodologyName) {
597
487
  diagnostics.push({
@@ -608,11 +498,14 @@ export async function resolveNativeProject(projectRoot) {
608
498
  file: binding.sourceFile,
609
499
  });
610
500
  }
611
- 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) {
612
504
  diagnostics.push({
613
505
  code: 'scope-mode-conflict',
614
- message: `${binding.usageName} sets scopeMode = allAvailable and also lists includedModule entries. `
615
- + `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.`,
616
509
  file: binding.sourceFile,
617
510
  });
618
511
  }
@@ -625,8 +518,9 @@ export async function resolveNativeProject(projectRoot) {
625
518
  closure,
626
519
  selectedRoots,
627
520
  unusedRoots,
628
- documents,
521
+ dependencies,
629
522
  filePackages,
523
+ publicImports,
630
524
  diagnostics,
631
525
  };
632
526
  }