@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
@@ -14,7 +14,8 @@ export interface RelationshipType {
14
14
  /** Hex colour for relationship visualization */
15
15
  color: string;
16
16
  }
17
- import type { ParsedDocument } from './parser-utils.js';
17
+ import type { ApiElement, ApiModel } from '../stage2/api-model.js';
18
+ import { type WorkspaceMembership } from '../stage2/registries-from-api.js';
18
19
  import type { MultiplicityDTO, RelationshipDefinitionDTO } from './relationship-legality.js';
19
20
  /** One `end` declaration on a connection definition */
20
21
  export interface RelationshipEnd {
@@ -66,6 +67,8 @@ export interface RelationshipRegistryEntry {
66
67
  * happens to still declare alongside it.
67
68
  */
68
69
  nativeKeyword?: string;
70
+ /** Package-qualified name of the definition; set for a typed dependency, whose statement names it. */
71
+ qualifiedName?: string;
69
72
  /** End names from the connection definition */
70
73
  ends: RelationshipEnd[];
71
74
  /**
@@ -117,9 +120,13 @@ export declare const REFINEMENT_METADATA = "refinement";
117
120
  */
118
121
  export declare function pascalToCamelCase(name: string): string;
119
122
  /**
120
- * Registry that discovers relationship types from SysML AST ConnectionDefinition nodes.
121
- * Replaces config.relationshipTypes lookups in the builder.
123
+ * Convert PascalCase to a human-readable label.
124
+ * "TraceTo" → "Trace To", "HasSubProcedure" → "Has Sub Procedure"
122
125
  */
126
+ export declare function pascalToLabel(name: string): string;
127
+ /** Strip the `doc /* … *​/` wrapper and per-line asterisks from a doc comment. */
128
+ export declare function cleanDocComment(content: string): string | undefined;
129
+ /** The relationship types a compiled project declares. */
123
130
  export declare class RelationshipRegistry {
124
131
  private readonly relTypes;
125
132
  /** Number of registered relationship types */
@@ -144,6 +151,13 @@ export declare class RelationshipRegistry {
144
151
  has(name: string): boolean;
145
152
  /** Get all relationship type names (camelCase) */
146
153
  relTypeNames(): string[];
154
+ /**
155
+ * The workspace-membership table the ontology declares (relation name to direction).
156
+ * Covers the registry's relations and the edges the builder synthesizes from SysML keywords,
157
+ * so it is keyed by edge type, not by registry entry.
158
+ */
159
+ workspaceMembership(): ReadonlyMap<string, WorkspaceMembership>;
160
+ private membership;
147
161
  /** Get all entries */
148
162
  entries(): RelationshipRegistryEntry[];
149
163
  /**
@@ -162,10 +176,11 @@ export declare class RelationshipRegistry {
162
176
  /** Register a relationship type manually (for testing or config fallback) */
163
177
  register(entry: RelationshipRegistryEntry): void;
164
178
  /**
165
- * Populate the registry from parsed SysML documents.
166
- * Walks all ConnectionDefinition nodes in each document's AST.
179
+ * Populate the registry from a stage 1 handoff (`apiRelationshipEntries`):
180
+ * the `connection def` and `allocation def` declarations, then the
181
+ * language-native relations.
167
182
  */
168
- populateFromDocuments(documents: ParsedDocument[]): void;
183
+ populateFromApi(api: ApiModel, fileOf: (element: ApiElement) => string, include?: (namespace: ApiElement) => boolean, role?: 'library' | 'project'): void;
169
184
  /**
170
185
  * Record the three relations SysML v2 spells with a keyword.
171
186
  *
@@ -184,7 +199,5 @@ export declare class RelationshipRegistry {
184
199
  * not vanish from the registry along with its retired spelling.
185
200
  */
186
201
  private registerLanguageNatives;
187
- /** Walk a package declaration and register all ConnectionDefinition nodes */
188
- private walkPackage;
189
202
  }
190
203
  //# sourceMappingURL=relationship-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-registry.d.ts","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-registry.d.ts","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC7B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACjB;AACD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAkD,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5H,OAAO,KAAK,EACR,eAAe,EACf,yBAAyB,EAE5B,MAAM,4BAA4B,CAAC;AAEpC,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,wCAAwC;AACxC,MAAM,WAAW,yBAAyB;IACtC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,eAAe,EAAE,CAAC;CAC3B,CAyNA,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOnE;AAQD,0DAA0D;AAC1D,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IAEzE,8CAA8C;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI/D;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAW9D;;;OAGG;IACH,wBAAwB,IAAI,gBAAgB,EAAE;IAS9C,iDAAiD;IACjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,kDAAkD;IAClD,YAAY,IAAI,MAAM,EAAE;IAIxB;;;;OAIG;IACH,mBAAmB,IAAI,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAI/D,OAAO,CAAC,UAAU,CAA0C;IAE5D,sBAAsB;IACtB,OAAO,IAAI,yBAAyB,EAAE;IAItC;;;;;OAKG;IACH,gBAAgB,IAAI,yBAAyB,EAAE;IAiB/C;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAkBjB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAIhD;;;;OAIG;IACH,eAAe,CACX,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,EACvC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,OAAO,EAC5C,IAAI,GAAE,SAAS,GAAG,SAAqB,GACxC,IAAI;IAMP;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,uBAAuB;CAkBlC"}
@@ -1,17 +1,16 @@
1
1
  // ─── Relationship Registry ──────────────────────────────────────────────────
2
2
  //
3
- // Discovers relationship types from SysML AST ConnectionDefinition nodes,
4
- // replacing config.relationshipTypes. Walks ConnectionDefinition nodes and
5
- // derives layer from the file's directory path (Apollo-11 convention).
6
- // Normalizes PascalCase SysML names to camelCase for matching.
3
+ // The relationship types a compiled project declares: its `connection def` and
4
+ // `allocation def` nodes, with the layer taken from the file's directory path.
5
+ // Populated from a stage 1 handoff (`populateFromApi`). Normalizes PascalCase
6
+ // SysML names to camelCase for matching.
7
7
  //
8
8
  // Usage:
9
9
  // const registry = new RelationshipRegistry();
10
- // registry.populateFromDocuments(parsedDocs);
10
+ // registry.populateFromApi(api, fileOf);
11
11
  // const rel = registry.getRelType("mitigates");
12
12
  // ─────────────────────────────────────────────────────────────────────────────
13
- import { isAllocationDefinition, isAttributeMember, isConnectionDefinition, isDocComment, isEndDeclaration, isPackageDeclaration, } from '../language/generated/ast.js';
14
- import { resolveLayerFromPath } from './layer-resolver.js';
13
+ import { apiRelationshipEntries, apiWorkspaceMembership } from '../stage2/registries-from-api.js';
15
14
  /**
16
15
  * The relations SysML v2 already writes with a keyword, and the MEMO trace edge
17
16
  * each one produces.
@@ -94,14 +93,14 @@ export const LANGUAGE_NATIVE_RELATIONS = {
94
93
  // Both ends are untyped, like `performs` above, because native
95
94
  // `include` is owner-rooted and deliberately polymorphic:
96
95
  // `resolveOwnerRootedUsage` is owner-type-agnostic, so it projects
97
- // UseCase -> UseCase inclusion exactly as it projects
98
- // FunctionalFlow -> FunctionalFlowStep. That is why `connection def
99
- // Includes` was deleted in R10-S6 and both spellings unified here.
96
+ // UseCase -> UseCase inclusion exactly as it projects an action
97
+ // including another. That is why `connection def Includes` was deleted
98
+ // in R10-S6 and both spellings unified here. (A functional flow's steps
99
+ // are nested actions now, not included ones.)
100
100
  //
101
101
  // No single type can carry it: the kinds this relation joins sit in
102
- // unrelated families — FunctionalFlow and FunctionalFlowStep are
103
- // MemoActions, UseCase a MemoUseCase, and MEMO has no root above the
104
- // metaclasses. Naming two of them made every use-case `include` a
102
+ // unrelated families — a FunctionalFlow is a MemoAction, a UseCase a
103
+ // MemoUseCase, and MEMO has no root above the metaclasses. Naming two of them made every use-case `include` a
105
104
  // well-formedness error: 132 of them in affera, on a construct the
106
105
  // design intends.
107
106
  ends: [
@@ -164,6 +163,50 @@ export const LANGUAGE_NATIVE_RELATIONS = {
164
163
  { name: 'framedConcern', type: 'MemoPart' },
165
164
  ],
166
165
  },
166
+ // ── Requirement membership ──
167
+ //
168
+ // An assume/guarantee contract is a requirement whose subject is the
169
+ // component and whose assumptions and guarantees are `assume`/`require`
170
+ // members (AGREE's shape). All three are owner-rooted, like `perform`: the
171
+ // enclosing requirement is the source and the written reference the target.
172
+ hasSubject: {
173
+ keyword: 'subject',
174
+ sysmlName: 'HasSubject',
175
+ layer: 'core',
176
+ description: 'A requirement or a use case is about a subject — for a contract, the component it '
177
+ + 'constrains; for a use case, the system or system of systems it is carried out with. '
178
+ + 'Written natively as `subject <name> = <element>;` inside the requirement or use case. '
179
+ + 'The same keyword inside a verification case is `verifiedBy`, not this.',
180
+ // The source is untyped for the reason `includesStep`'s is: a
181
+ // requirement and a use case sit in unrelated families
182
+ // (MemoRequirementElement, MemoUseCase) with no root above both.
183
+ ends: [
184
+ { name: 'subjectOwner' },
185
+ { name: 'subject' },
186
+ ],
187
+ },
188
+ assumes: {
189
+ keyword: 'assume',
190
+ sysmlName: 'Assumes',
191
+ layer: 'core',
192
+ description: 'A requirement assumes another holds — a contract\'s assumption. '
193
+ + 'Written natively as `assume <requirement>;` inside the requirement.',
194
+ ends: [
195
+ { name: 'contract', type: 'MemoRequirementElement' },
196
+ { name: 'assumption', type: 'MemoRequirementElement' },
197
+ ],
198
+ },
199
+ requires: {
200
+ keyword: 'require',
201
+ sysmlName: 'Requires',
202
+ layer: 'core',
203
+ description: 'A requirement requires another — a contract\'s guarantee. '
204
+ + 'Written natively as `require <requirement>;` inside the requirement.',
205
+ ends: [
206
+ { name: 'contract', type: 'MemoRequirementElement' },
207
+ { name: 'guarantee', type: 'MemoRequirementElement' },
208
+ ],
209
+ },
167
210
  // The one row whose native spelling is NOT a connection. A refinement is a
168
211
  // `Dependency` — n clients, n suppliers, no ends to redefine, annotated by
169
212
  // a PREFIX metadata rather than by a `metadata def` on a connection def. So
@@ -226,11 +269,11 @@ export function pascalToCamelCase(name) {
226
269
  * Convert PascalCase to a human-readable label.
227
270
  * "TraceTo" → "Trace To", "HasSubProcedure" → "Has Sub Procedure"
228
271
  */
229
- function pascalToLabel(name) {
272
+ export function pascalToLabel(name) {
230
273
  return name.replace(/([a-z])([A-Z])/g, '$1 $2');
231
274
  }
232
275
  /** Strip the `doc /* … *​/` wrapper and per-line asterisks from a doc comment. */
233
- function cleanDocComment(content) {
276
+ export function cleanDocComment(content) {
234
277
  const text = content
235
278
  .replace(/^doc\s+\/\*\s*/, '')
236
279
  .replace(/\s*\*\/$/, '')
@@ -238,47 +281,13 @@ function cleanDocComment(content) {
238
281
  .trim();
239
282
  return text || undefined;
240
283
  }
241
- /** Convert a parsed Multiplicity node into its serializable bounds. */
242
- function toMultiplicityDTO(multiplicity) {
243
- if (!multiplicity)
244
- return undefined;
245
- // `[3]` — an exact bound pins both ends.
246
- if (multiplicity.exact !== undefined) {
247
- const exact = Number(multiplicity.exact);
248
- return { lower: exact, upper: exact };
249
- }
250
- // `[*]` — no lower bound was written, so it stays 0.
251
- if (multiplicity.lower === undefined) {
252
- return { lower: 0, upper: multiplicity.unbounded ? null : null };
253
- }
254
- // `[0..1]` / `[1..*]`
255
- return {
256
- lower: Number(multiplicity.lower),
257
- upper: multiplicity.unbounded || multiplicity.upper === undefined
258
- ? null
259
- : Number(multiplicity.upper),
260
- };
261
- }
262
- /**
263
- * Read a Boolean attribute value, or undefined when the attribute declares a
264
- * type rather than stating a value. Undefined is meaningful: it means the
265
- * ontology is silent, and the caller applies the documented default.
266
- */
267
- function booleanAttributeValue(value) {
268
- if (!value || value.$type !== 'BooleanValue')
269
- return undefined;
270
- return value.value === 'true';
271
- }
272
284
  /** Project one registry end (possibly absent) into its DTO. */
273
285
  function toEndDTO(end, fallbackName) {
274
286
  if (!end)
275
287
  return { name: fallbackName };
276
288
  return { name: end.name || fallbackName, type: end.type, multiplicity: end.multiplicity };
277
289
  }
278
- /**
279
- * Registry that discovers relationship types from SysML AST ConnectionDefinition nodes.
280
- * Replaces config.relationshipTypes lookups in the builder.
281
- */
290
+ /** The relationship types a compiled project declares. */
282
291
  export class RelationshipRegistry {
283
292
  relTypes = new Map();
284
293
  /** Number of registered relationship types */
@@ -328,6 +337,15 @@ export class RelationshipRegistry {
328
337
  relTypeNames() {
329
338
  return Array.from(this.relTypes.keys());
330
339
  }
340
+ /**
341
+ * The workspace-membership table the ontology declares (relation name to direction).
342
+ * Covers the registry's relations and the edges the builder synthesizes from SysML keywords,
343
+ * so it is keyed by edge type, not by registry entry.
344
+ */
345
+ workspaceMembership() {
346
+ return this.membership;
347
+ }
348
+ membership = new Map();
331
349
  /** Get all entries */
332
350
  entries() {
333
351
  return Array.from(this.relTypes.values());
@@ -349,6 +367,7 @@ export class RelationshipRegistry {
349
367
  isReflexive: this.inherited(entry, 'isReflexive'),
350
368
  isUnique: this.inherited(entry, 'isUnique'),
351
369
  nativeKeyword: entry.nativeKeyword,
370
+ ...(entry.sysmlConstruct === 'metadata def' && entry.qualifiedName ? { typedDependency: entry.qualifiedName } : {}),
352
371
  sourceEnd: toEndDTO(entry.ends[0], 'source'),
353
372
  targetEnd: toEndDTO(entry.ends[1], 'target'),
354
373
  }));
@@ -378,20 +397,16 @@ export class RelationshipRegistry {
378
397
  this.relTypes.set(entry.name, entry);
379
398
  }
380
399
  /**
381
- * Populate the registry from parsed SysML documents.
382
- * Walks all ConnectionDefinition nodes in each document's AST.
400
+ * Populate the registry from a stage 1 handoff (`apiRelationshipEntries`):
401
+ * the `connection def` and `allocation def` declarations, then the
402
+ * language-native relations.
383
403
  */
384
- populateFromDocuments(documents) {
385
- for (const doc of documents) {
386
- const model = doc.document.parseResult.value;
387
- const layer = resolveLayerFromPath(doc.filePath);
388
- for (const member of model.members) {
389
- if (isPackageDeclaration(member)) {
390
- this.walkPackage(member, layer);
391
- }
392
- }
393
- }
404
+ populateFromApi(api, fileOf, include, role = 'library') {
405
+ for (const entry of apiRelationshipEntries(api, fileOf, include, role))
406
+ this.relTypes.set(entry.name, entry);
394
407
  this.registerLanguageNatives();
408
+ for (const [relation, direction] of apiWorkspaceMembership(api))
409
+ this.membership.set(relation, direction);
395
410
  }
396
411
  /**
397
412
  * Record the three relations SysML v2 spells with a keyword.
@@ -428,72 +443,5 @@ export class RelationshipRegistry {
428
443
  });
429
444
  }
430
445
  }
431
- /** Walk a package declaration and register all ConnectionDefinition nodes */
432
- walkPackage(pkg, layer) {
433
- for (const member of pkg.members) {
434
- if (isPackageDeclaration(member)) {
435
- this.walkPackage(member, layer);
436
- continue;
437
- }
438
- // An `allocation def` is a relation with a different keyword, not a
439
- // different thing: `Allocations::Allocation :> BinaryConnection`,
440
- // it declares the same `end`s, and it produces the same links. The
441
- // registry derived relations from `connection def` alone, so an
442
- // allocation def would have been invisible to every tool that
443
- // reads the registry — the authoring picker, the writer, the DSM,
444
- // the legality check — while still being valid, checked ontology.
445
- if (isConnectionDefinition(member) || isAllocationDefinition(member)) {
446
- const sysmlName = member.name;
447
- if (!sysmlName)
448
- continue;
449
- const name = pascalToCamelCase(sysmlName);
450
- const label = pascalToLabel(sysmlName);
451
- // Extract end declarations
452
- const ends = [];
453
- const attributes = [];
454
- let description;
455
- let isReflexive;
456
- let isUnique;
457
- for (const bodyMember of member.body) {
458
- if (isEndDeclaration(bodyMember)) {
459
- ends.push({
460
- name: bodyMember.name || '',
461
- type: bodyMember.type || undefined,
462
- multiplicity: toMultiplicityDTO(bodyMember.multiplicity),
463
- });
464
- }
465
- else if (isDocComment(bodyMember) && description === undefined) {
466
- description = cleanDocComment(bodyMember.content);
467
- }
468
- else if (isAttributeMember(bodyMember)) {
469
- if (bodyMember.name)
470
- attributes.push(bodyMember.name);
471
- // Only a valued attribute states anything — a bare
472
- // `attribute isUnique : Boolean;` declares the slot.
473
- if (bodyMember.name === 'isReflexive') {
474
- isReflexive = booleanAttributeValue(bodyMember.value) ?? isReflexive;
475
- }
476
- else if (bodyMember.name === 'isUnique') {
477
- isUnique = booleanAttributeValue(bodyMember.value) ?? isUnique;
478
- }
479
- }
480
- }
481
- this.relTypes.set(name, {
482
- sysmlName,
483
- name,
484
- label,
485
- layer,
486
- sysmlConstruct: isAllocationDefinition(member) ? 'allocation def' : 'connection def',
487
- description,
488
- isAbstract: member.isAbstract || undefined,
489
- superType: member.specialization?.superType || undefined,
490
- isReflexive,
491
- isUnique,
492
- ends,
493
- attributes,
494
- });
495
- }
496
- }
497
- }
498
446
  }
499
447
  //# sourceMappingURL=relationship-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-registry.js","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-registry.js","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { KindRegistry } from './kind-registry.js';
2
+ import type { MemoElement, MemoModel } from './semantic.js';
3
+ /**
4
+ * Read-only `MemoElement` views of every named relationship that declares a
5
+ * domain kind.
6
+ *
7
+ * Anonymous edges are excluded: their id is a positional `rel-N` that
8
+ * addresses nothing and shifts on the next edit, so a violation reported
9
+ * against one would name a subject no reader could find. Untyped edges are
10
+ * excluded because they declare no kind, and a kind is what a rule selects on.
11
+ */
12
+ export declare function relationshipSubjects(model: MemoModel, registry?: KindRegistry): MemoElement[];
13
+ /**
14
+ * The model a rule is evaluated against, with projected subjects merged into
15
+ * `elementsByKind` only.
16
+ *
17
+ * `elements` is deliberately left alone. It is the parts index — what
18
+ * `memo compile --inspect` resolves, what the census counts, what an export serializes —
19
+ * and an edge does not belong in it. `elementsByKind` is the SUBJECT SELECTOR,
20
+ * which is a different question: "what does this rule run on?".
21
+ *
22
+ * A projected subject never displaces an element. If an id collides — which it
23
+ * cannot today, since the relationship index rejects a flow competing with an
24
+ * element for one qualified name — the element wins and the projection is
25
+ * dropped, because the authored declaration is the one with a body to read.
26
+ */
27
+ export declare function withRelationshipSubjects(model: MemoModel, registry?: KindRegistry): MemoModel;
28
+ //# sourceMappingURL=relationship-subjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-subjects.d.ts","sourceRoot":"","sources":["../../src/model/relationship-subjects.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAiB,WAAW,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAC;AAoC7F;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,YAAY,GACxB,WAAW,EAAE,CAgCf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,YAAY,GACxB,SAAS,CAWX"}
@@ -0,0 +1,126 @@
1
+ // ─── Rule subjects projected from named, typed relationships ─────────────────
2
+ //
3
+ // A named `flow` or `interface` usage that declares a domain type —
4
+ // `flow lfDose : FunctionalExchange from … to …` — is a first-class modelled
5
+ // thing: it carries a qualified identity, attributes of its own, and a kind an
6
+ // ontology declared. It is still an EDGE, so it is not in the elements map and
7
+ // nothing counting parts counts it as one.
8
+ //
9
+ // That left a gap. Rule subjects come from `elementsByKind`, so a rule written
10
+ // `appliesTo = "FunctionalExchange"` against a flow-def kind selected nothing
11
+ // at all — an empty subject set, reported as a clean pass. The architecture
12
+ // plan's §9.1 asks for "a single canonical identity for a named flow/interface
13
+ // that can also serve as a relationship target", implemented by "a unified
14
+ // entity index or a READ-ONLY FACADE over existing element/relationship
15
+ // indexes", and requires that it "must not require a second authored proxy
16
+ // part or independently mutable graph records".
17
+ //
18
+ // This module is that facade. It derives a `MemoElement` VIEW of each such
19
+ // relationship, on demand, from the relationship object itself. Nothing is
20
+ // stored, nothing is added to the canonical model, and the projection is
21
+ // recomputed from the edge every time — so the edge stays the one record and
22
+ // there is no second graph to keep in step. The canonical model that the
23
+ // census counts, the baselines freeze and the exports serialize is untouched.
24
+ import { MEMO_CONSTRUCTS, usageKeyword } from './semantic.js';
25
+ /**
26
+ * The construct a projected subject reports.
27
+ *
28
+ * Asked of the ontology first — a `flow def` projects `'flow'`, an
29
+ * `interface def` projects `'interface'` — because the DEFINITION is what says
30
+ * what the usage is, and the registry is where that is recorded. Without a
31
+ * registry, or for a kind no ontology declares, the native keyword is the next
32
+ * best answer: `flow`, `interface` and `connection` are all constructs in
33
+ * their own right, so a `type` naming one is already the truth.
34
+ *
35
+ * `'part'` is never inferred here. A relationship that cannot be classified
36
+ * projects nothing at all (see {@link relationshipSubjects}) rather than
37
+ * arriving in the elements vocabulary as a structural thing, which is the
38
+ * exact category mistake the native-exchange work exists to undo.
39
+ */
40
+ function subjectConstruct(relationship, registry) {
41
+ const declared = relationship.kind
42
+ ? registry?.getKind(relationship.kind)?.sysmlConstruct
43
+ : undefined;
44
+ if (declared)
45
+ return usageKeyword(declared);
46
+ return MEMO_CONSTRUCTS.includes(relationship.type)
47
+ ? relationship.type
48
+ : undefined;
49
+ }
50
+ /** A subject's display name, by the precedence an element's has. */
51
+ function subjectName(relationship) {
52
+ const attributes = relationship.attributes ?? {};
53
+ return attributes['label'] || attributes['name'] || attributes['title'] || relationship.shortName || relationship.id;
54
+ }
55
+ /**
56
+ * Read-only `MemoElement` views of every named relationship that declares a
57
+ * domain kind.
58
+ *
59
+ * Anonymous edges are excluded: their id is a positional `rel-N` that
60
+ * addresses nothing and shifts on the next edit, so a violation reported
61
+ * against one would name a subject no reader could find. Untyped edges are
62
+ * excluded because they declare no kind, and a kind is what a rule selects on.
63
+ */
64
+ export function relationshipSubjects(model, registry) {
65
+ const subjects = [];
66
+ for (const relationship of model.relationships) {
67
+ if (!relationship.named || !relationship.kind)
68
+ continue;
69
+ const construct = subjectConstruct(relationship, registry);
70
+ if (!construct)
71
+ continue;
72
+ subjects.push({
73
+ id: relationship.id,
74
+ ...(relationship.shortName ? { shortName: relationship.shortName } : {}),
75
+ // Named as an element is: its `@MemoIdentity` label first, so a
76
+ // finding reads the same whether its subject is a part or an edge.
77
+ name: subjectName(relationship),
78
+ kind: relationship.kind,
79
+ construct,
80
+ layer: registry?.getKind(relationship.kind)?.layer ?? 'unknown',
81
+ file: relationship.file,
82
+ // The ends, under the names `linksOf` already gives them, so a
83
+ // rule can ask what an edge connects the same way it asks what a
84
+ // link connects: `allOfKind('MemoPort')->exists(id ==
85
+ // subject.attributes.sourceId)`. Read off the edge each time, like
86
+ // everything else here, so there is still one record. The ends
87
+ // are written last: a body attribute that happened to be called
88
+ // `sourceId` must not be able to move what the edge connects.
89
+ attributes: {
90
+ ...(relationship.attributes ?? {}),
91
+ sourceId: relationship.sourceId,
92
+ targetId: relationship.targetId,
93
+ },
94
+ ...(relationship.provenance ? { provenance: relationship.provenance } : {}),
95
+ });
96
+ }
97
+ return subjects;
98
+ }
99
+ /**
100
+ * The model a rule is evaluated against, with projected subjects merged into
101
+ * `elementsByKind` only.
102
+ *
103
+ * `elements` is deliberately left alone. It is the parts index — what
104
+ * `memo compile --inspect` resolves, what the census counts, what an export serializes —
105
+ * and an edge does not belong in it. `elementsByKind` is the SUBJECT SELECTOR,
106
+ * which is a different question: "what does this rule run on?".
107
+ *
108
+ * A projected subject never displaces an element. If an id collides — which it
109
+ * cannot today, since the relationship index rejects a flow competing with an
110
+ * element for one qualified name — the element wins and the projection is
111
+ * dropped, because the authored declaration is the one with a body to read.
112
+ */
113
+ export function withRelationshipSubjects(model, registry) {
114
+ const projected = relationshipSubjects(model, registry);
115
+ if (projected.length === 0)
116
+ return model;
117
+ const elementsByKind = new Map(model.elementsByKind);
118
+ for (const subject of projected) {
119
+ if (model.elements.get(subject.id))
120
+ continue;
121
+ const extent = elementsByKind.get(subject.kind);
122
+ elementsByKind.set(subject.kind, extent ? [...extent, subject] : [subject]);
123
+ }
124
+ return { ...model, elementsByKind };
125
+ }
126
+ //# sourceMappingURL=relationship-subjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-subjects.js","sourceRoot":"","sources":["../../src/model/relationship-subjects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Whether a project-relative path is inside a system folder. */
2
+ export declare function isInSystemFolder(file: string): boolean;
3
+ /**
4
+ * The file a new record is appended to: the one that already holds the most records outside
5
+ * `systems/`; failing that, `sos/releases.sysml` beside the systems folder of the item's file, or the
6
+ * item's own folder when it is not under one.
7
+ */
8
+ export declare function defaultReleaseFile(input: {
9
+ recordFiles: readonly string[];
10
+ itemFile?: string;
11
+ }): string;
12
+ //# sourceMappingURL=release-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-target.d.ts","sourceRoot":"","sources":["../../src/model/release-target.ts"],"names":[],"mappings":"AAUA,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAWvG"}
@@ -0,0 +1,35 @@
1
+ // ─── Where a release record is written ───────────────────────────────────────
2
+ //
3
+ // A record cannot hold the hash of the commit that adds it, so it is always written after the commit it
4
+ // pins. A system folder is checked out at that commit when the SoS version is assembled (plan section 9,
5
+ // decision 1), where the record does not exist yet: a record never goes under `<include>/systems/`.
6
+ // Pure and browser-safe, so the page names the same file the server writes.
7
+ // ─────────────────────────────────────────────────────────────────────────────
8
+ const SYSTEM_FOLDER = /(^|\/)systems\/[^/]+\//;
9
+ /** Whether a project-relative path is inside a system folder. */
10
+ export function isInSystemFolder(file) {
11
+ return SYSTEM_FOLDER.test(file.replaceAll('\\', '/'));
12
+ }
13
+ /**
14
+ * The file a new record is appended to: the one that already holds the most records outside
15
+ * `systems/`; failing that, `sos/releases.sysml` beside the systems folder of the item's file, or the
16
+ * item's own folder when it is not under one.
17
+ */
18
+ export function defaultReleaseFile(input) {
19
+ const counts = new Map();
20
+ for (const file of input.recordFiles)
21
+ if (!isInSystemFolder(file))
22
+ counts.set(file, (counts.get(file) ?? 0) + 1);
23
+ const best = [...counts].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))[0];
24
+ if (best)
25
+ return best[0];
26
+ const item = input.itemFile?.replaceAll('\\', '/');
27
+ if (!item)
28
+ return 'model/sos/releases.sysml';
29
+ const match = /^(.*?\/?)systems\/[^/]+\//.exec(item);
30
+ if (match)
31
+ return `${match[1]}sos/releases.sysml`;
32
+ const slash = item.lastIndexOf('/');
33
+ return `${slash < 0 ? '' : item.slice(0, slash + 1)}releases.sysml`;
34
+ }
35
+ //# sourceMappingURL=release-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-target.js","sourceRoot":"","sources":["../../src/model/release-target.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,wGAAwG;AACxG,yGAAyG;AACzG,oGAAoG;AACpG,4EAA4E;AAC5E,gFAAgF;AAEhF,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA4D;IAC3F,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,WAAW;QAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjH,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI;QAAE,OAAO,0BAA0B,CAAC;IAC7C,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC;AACxE,CAAC"}