@memoarchitect/tools 0.13.2 → 0.15.1

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 (825) 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 +333 -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 +2 -0
  376. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  377. package/packages/tools/lib/model/short-id.js +9 -0
  378. package/packages/tools/lib/model/short-id.js.map +1 -1
  379. package/packages/tools/lib/model/source-graph.d.ts +9 -7
  380. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  381. package/packages/tools/lib/model/source-graph.js +19 -24
  382. package/packages/tools/lib/model/source-graph.js.map +1 -1
  383. package/packages/tools/lib/model/source-provenance.d.ts +5 -1
  384. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -1
  385. package/packages/tools/lib/model/source-provenance.js.map +1 -1
  386. package/packages/tools/lib/model/sysml-files.js +1 -1
  387. package/packages/tools/lib/model/sysml-ir.d.ts +2 -5
  388. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -1
  389. package/packages/tools/lib/model/sysml-ir.js +1 -100
  390. package/packages/tools/lib/model/sysml-ir.js.map +1 -1
  391. package/packages/tools/lib/model/toolchain-merge.d.ts +4 -0
  392. package/packages/tools/lib/model/toolchain-merge.d.ts.map +1 -0
  393. package/packages/tools/lib/model/toolchain-merge.js +34 -0
  394. package/packages/tools/lib/model/toolchain-merge.js.map +1 -0
  395. package/packages/tools/lib/model/user-settings.d.ts +13 -0
  396. package/packages/tools/lib/model/user-settings.d.ts.map +1 -0
  397. package/packages/tools/lib/model/user-settings.js +83 -0
  398. package/packages/tools/lib/model/user-settings.js.map +1 -0
  399. package/packages/tools/lib/model/variability.d.ts +56 -0
  400. package/packages/tools/lib/model/variability.d.ts.map +1 -0
  401. package/packages/tools/lib/model/variability.js +116 -0
  402. package/packages/tools/lib/model/variability.js.map +1 -0
  403. package/packages/tools/lib/model/version-range.d.ts +2 -0
  404. package/packages/tools/lib/model/version-range.d.ts.map +1 -0
  405. package/packages/tools/lib/model/version-range.js +37 -0
  406. package/packages/tools/lib/model/version-range.js.map +1 -0
  407. package/packages/tools/lib/model/view-deriver.d.ts +16 -0
  408. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  409. package/packages/tools/lib/model/view-deriver.js +100 -26
  410. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  411. package/packages/tools/lib/model/view-layout-block.d.ts +81 -0
  412. package/packages/tools/lib/model/view-layout-block.d.ts.map +1 -0
  413. package/packages/tools/lib/model/view-layout-block.js +525 -0
  414. package/packages/tools/lib/model/view-layout-block.js.map +1 -0
  415. package/packages/tools/lib/model/view-layout-migration.d.ts +54 -0
  416. package/packages/tools/lib/model/view-layout-migration.d.ts.map +1 -0
  417. package/packages/tools/lib/model/view-layout-migration.js +156 -0
  418. package/packages/tools/lib/model/view-layout-migration.js.map +1 -0
  419. package/packages/tools/lib/model/workspace-membership.d.ts +99 -0
  420. package/packages/tools/lib/model/workspace-membership.d.ts.map +1 -0
  421. package/packages/tools/lib/model/workspace-membership.js +281 -0
  422. package/packages/tools/lib/model/workspace-membership.js.map +1 -0
  423. package/packages/tools/lib/ontology/owl-exporter.d.ts +1 -1
  424. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  425. package/packages/tools/lib/ontology/owl-exporter.js +1 -1
  426. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  427. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -1
  428. package/packages/tools/lib/operations/ai-authoring.js +7 -5
  429. package/packages/tools/lib/operations/ai-authoring.js.map +1 -1
  430. package/packages/tools/lib/operations/authoring.d.ts +10 -4
  431. package/packages/tools/lib/operations/authoring.d.ts.map +1 -1
  432. package/packages/tools/lib/operations/authoring.js +27 -11
  433. package/packages/tools/lib/operations/authoring.js.map +1 -1
  434. package/packages/tools/lib/operations/index.d.ts +2 -0
  435. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  436. package/packages/tools/lib/operations/index.js +1 -0
  437. package/packages/tools/lib/operations/index.js.map +1 -1
  438. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  439. package/packages/tools/lib/operations/project-snapshot.js +7 -13
  440. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  441. package/packages/tools/lib/plugin/plugin-scaffold.js +2 -2
  442. package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -1
  443. package/packages/tools/lib/protocol/messages.d.ts +375 -7
  444. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  445. package/packages/tools/lib/serializer/csv-io.d.ts +37 -29
  446. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  447. package/packages/tools/lib/serializer/csv-io.js +64 -31
  448. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  449. package/packages/tools/lib/serializer/sysml-generator.d.ts +15 -2
  450. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  451. package/packages/tools/lib/serializer/sysml-generator.js +45 -17
  452. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  453. package/packages/tools/lib/server/conflict-policy.js +1 -1
  454. package/packages/tools/lib/server/conflict-policy.js.map +1 -1
  455. package/packages/tools/lib/server/dashboard-store.d.ts +1 -7
  456. package/packages/tools/lib/server/dashboard-store.d.ts.map +1 -1
  457. package/packages/tools/lib/server/dashboard-store.js +3 -14
  458. package/packages/tools/lib/server/dashboard-store.js.map +1 -1
  459. package/packages/tools/lib/server/dev-server.d.ts +48 -1
  460. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  461. package/packages/tools/lib/server/dev-server.js +529 -80
  462. package/packages/tools/lib/server/dev-server.js.map +1 -1
  463. package/packages/tools/lib/server/dev-validate.d.ts +30 -0
  464. package/packages/tools/lib/server/dev-validate.d.ts.map +1 -0
  465. package/packages/tools/lib/server/dev-validate.js +82 -0
  466. package/packages/tools/lib/server/dev-validate.js.map +1 -0
  467. package/packages/tools/lib/server/element-writer.d.ts +4 -1
  468. package/packages/tools/lib/server/element-writer.d.ts.map +1 -1
  469. package/packages/tools/lib/server/element-writer.js +56 -35
  470. package/packages/tools/lib/server/element-writer.js.map +1 -1
  471. package/packages/tools/lib/server/mutation-domain.d.ts +10 -0
  472. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -1
  473. package/packages/tools/lib/server/mutation-domain.js +45 -8
  474. package/packages/tools/lib/server/mutation-domain.js.map +1 -1
  475. package/packages/tools/lib/server/package-source.d.ts +13 -3
  476. package/packages/tools/lib/server/package-source.d.ts.map +1 -1
  477. package/packages/tools/lib/server/package-source.js +31 -39
  478. package/packages/tools/lib/server/package-source.js.map +1 -1
  479. package/packages/tools/lib/server/package-writer.d.ts +19 -6
  480. package/packages/tools/lib/server/package-writer.d.ts.map +1 -1
  481. package/packages/tools/lib/server/package-writer.js +90 -39
  482. package/packages/tools/lib/server/package-writer.js.map +1 -1
  483. package/packages/tools/lib/server/persistor.d.ts +33 -7
  484. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  485. package/packages/tools/lib/server/persistor.js +63 -48
  486. package/packages/tools/lib/server/persistor.js.map +1 -1
  487. package/packages/tools/lib/server/project-gitignore.d.ts +9 -0
  488. package/packages/tools/lib/server/project-gitignore.d.ts.map +1 -0
  489. package/packages/tools/lib/server/project-gitignore.js +27 -0
  490. package/packages/tools/lib/server/project-gitignore.js.map +1 -0
  491. package/packages/tools/lib/server/relationship-writer.d.ts +31 -2
  492. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  493. package/packages/tools/lib/server/relationship-writer.js +255 -95
  494. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  495. package/packages/tools/lib/server/release-writer.d.ts +46 -0
  496. package/packages/tools/lib/server/release-writer.d.ts.map +1 -0
  497. package/packages/tools/lib/server/release-writer.js +133 -0
  498. package/packages/tools/lib/server/release-writer.js.map +1 -0
  499. package/packages/tools/lib/server/rule-policy-writer.d.ts +17 -4
  500. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -1
  501. package/packages/tools/lib/server/rule-policy-writer.js +92 -7
  502. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -1
  503. package/packages/tools/lib/server/rule-service.d.ts +50 -0
  504. package/packages/tools/lib/server/rule-service.d.ts.map +1 -0
  505. package/packages/tools/lib/server/rule-service.js +89 -0
  506. package/packages/tools/lib/server/rule-service.js.map +1 -0
  507. package/packages/tools/lib/server/rule-writer.d.ts +87 -0
  508. package/packages/tools/lib/server/rule-writer.d.ts.map +1 -0
  509. package/packages/tools/lib/server/rule-writer.js +165 -0
  510. package/packages/tools/lib/server/rule-writer.js.map +1 -0
  511. package/packages/tools/lib/server/suspect-review.d.ts +11 -0
  512. package/packages/tools/lib/server/suspect-review.d.ts.map +1 -0
  513. package/packages/tools/lib/server/suspect-review.js +28 -0
  514. package/packages/tools/lib/server/suspect-review.js.map +1 -0
  515. package/packages/tools/lib/server/sysml-notation.d.ts +1 -1
  516. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -1
  517. package/packages/tools/lib/server/sysml-notation.js +5 -0
  518. package/packages/tools/lib/server/sysml-notation.js.map +1 -1
  519. package/packages/tools/lib/server/user-preferences.d.ts +8 -0
  520. package/packages/tools/lib/server/user-preferences.d.ts.map +1 -0
  521. package/packages/tools/lib/server/user-preferences.js +47 -0
  522. package/packages/tools/lib/server/user-preferences.js.map +1 -0
  523. package/packages/tools/lib/server/version-servers.d.ts +60 -0
  524. package/packages/tools/lib/server/version-servers.d.ts.map +1 -0
  525. package/packages/tools/lib/server/version-servers.js +106 -0
  526. package/packages/tools/lib/server/version-servers.js.map +1 -0
  527. package/packages/tools/lib/server/view-layout-store.d.ts +28 -13
  528. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  529. package/packages/tools/lib/server/view-layout-store.js +106 -106
  530. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  531. package/packages/tools/lib/server/view-writer.d.ts +22 -2
  532. package/packages/tools/lib/server/view-writer.d.ts.map +1 -1
  533. package/packages/tools/lib/server/view-writer.js +99 -44
  534. package/packages/tools/lib/server/view-writer.js.map +1 -1
  535. package/packages/tools/lib/server/write-guard.d.ts +7 -0
  536. package/packages/tools/lib/server/write-guard.d.ts.map +1 -0
  537. package/packages/tools/lib/server/write-guard.js +77 -0
  538. package/packages/tools/lib/server/write-guard.js.map +1 -0
  539. package/packages/tools/lib/stage2/api-model.d.ts +160 -0
  540. package/packages/tools/lib/stage2/api-model.d.ts.map +1 -0
  541. package/packages/tools/lib/stage2/api-model.js +341 -0
  542. package/packages/tools/lib/stage2/api-model.js.map +1 -0
  543. package/packages/tools/lib/stage2/build-from-api.d.ts +47 -0
  544. package/packages/tools/lib/stage2/build-from-api.d.ts.map +1 -0
  545. package/packages/tools/lib/stage2/build-from-api.js +1462 -0
  546. package/packages/tools/lib/stage2/build-from-api.js.map +1 -0
  547. package/packages/tools/lib/stage2/guide-from-api.d.ts +38 -0
  548. package/packages/tools/lib/stage2/guide-from-api.d.ts.map +1 -0
  549. package/packages/tools/lib/stage2/guide-from-api.js +97 -0
  550. package/packages/tools/lib/stage2/guide-from-api.js.map +1 -0
  551. package/packages/tools/lib/stage2/handoff-files.d.ts +13 -0
  552. package/packages/tools/lib/stage2/handoff-files.d.ts.map +1 -0
  553. package/packages/tools/lib/stage2/handoff-files.js +32 -0
  554. package/packages/tools/lib/stage2/handoff-files.js.map +1 -0
  555. package/packages/tools/lib/stage2/methodology-from-api.d.ts +10 -0
  556. package/packages/tools/lib/stage2/methodology-from-api.d.ts.map +1 -0
  557. package/packages/tools/lib/stage2/methodology-from-api.js +109 -0
  558. package/packages/tools/lib/stage2/methodology-from-api.js.map +1 -0
  559. package/packages/tools/lib/stage2/package-metadata-from-api.d.ts +15 -0
  560. package/packages/tools/lib/stage2/package-metadata-from-api.d.ts.map +1 -0
  561. package/packages/tools/lib/stage2/package-metadata-from-api.js +238 -0
  562. package/packages/tools/lib/stage2/package-metadata-from-api.js.map +1 -0
  563. package/packages/tools/lib/stage2/project-from-api.d.ts +60 -0
  564. package/packages/tools/lib/stage2/project-from-api.d.ts.map +1 -0
  565. package/packages/tools/lib/stage2/project-from-api.js +328 -0
  566. package/packages/tools/lib/stage2/project-from-api.js.map +1 -0
  567. package/packages/tools/lib/stage2/registries-from-api.d.ts +68 -0
  568. package/packages/tools/lib/stage2/registries-from-api.d.ts.map +1 -0
  569. package/packages/tools/lib/stage2/registries-from-api.js +313 -0
  570. package/packages/tools/lib/stage2/registries-from-api.js.map +1 -0
  571. package/packages/tools/lib/stage2/stage2-from-handoff.d.ts +26 -0
  572. package/packages/tools/lib/stage2/stage2-from-handoff.d.ts.map +1 -0
  573. package/packages/tools/lib/stage2/stage2-from-handoff.js +34 -0
  574. package/packages/tools/lib/stage2/stage2-from-handoff.js.map +1 -0
  575. package/packages/tools/lib/stage2/sysml-names.d.ts +9 -0
  576. package/packages/tools/lib/stage2/sysml-names.d.ts.map +1 -0
  577. package/packages/tools/lib/stage2/sysml-names.js +39 -0
  578. package/packages/tools/lib/stage2/sysml-names.js.map +1 -0
  579. package/packages/tools/lib/toolchain/default-registry.d.ts +2 -2
  580. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -1
  581. package/packages/tools/lib/toolchain/default-registry.js +9 -5
  582. package/packages/tools/lib/toolchain/default-registry.js.map +1 -1
  583. package/packages/tools/lib/toolchain/diagnostic.d.ts +2 -2
  584. package/packages/tools/lib/toolchain/diagnostic.js +1 -1
  585. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -1
  586. package/packages/tools/lib/toolchain/effective.d.ts +25 -17
  587. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -1
  588. package/packages/tools/lib/toolchain/effective.js +45 -40
  589. package/packages/tools/lib/toolchain/effective.js.map +1 -1
  590. package/packages/tools/lib/toolchain/exceptions.d.ts +27 -0
  591. package/packages/tools/lib/toolchain/exceptions.d.ts.map +1 -0
  592. package/packages/tools/lib/toolchain/exceptions.js +77 -0
  593. package/packages/tools/lib/toolchain/exceptions.js.map +1 -0
  594. package/packages/tools/lib/toolchain/index.d.ts +2 -2
  595. package/packages/tools/lib/toolchain/index.d.ts.map +1 -1
  596. package/packages/tools/lib/toolchain/index.js +2 -2
  597. package/packages/tools/lib/toolchain/index.js.map +1 -1
  598. package/packages/tools/lib/toolchain/operations.d.ts +45 -10
  599. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -1
  600. package/packages/tools/lib/toolchain/operations.js +107 -8
  601. package/packages/tools/lib/toolchain/operations.js.map +1 -1
  602. package/packages/tools/lib/toolchain/ownership.d.ts +13 -0
  603. package/packages/tools/lib/toolchain/ownership.d.ts.map +1 -0
  604. package/packages/tools/lib/toolchain/ownership.js +57 -0
  605. package/packages/tools/lib/toolchain/ownership.js.map +1 -0
  606. package/packages/tools/lib/toolchain/process.d.ts +2 -2
  607. package/packages/tools/lib/toolchain/process.js +2 -2
  608. package/packages/tools/lib/toolchain/project-config.d.ts +4 -0
  609. package/packages/tools/lib/toolchain/project-config.d.ts.map +1 -0
  610. package/packages/tools/lib/toolchain/project-config.js +13 -0
  611. package/packages/tools/lib/toolchain/project-config.js.map +1 -0
  612. package/packages/tools/lib/toolchain/project-model.d.ts +75 -0
  613. package/packages/tools/lib/toolchain/project-model.d.ts.map +1 -0
  614. package/packages/tools/lib/toolchain/project-model.js +92 -0
  615. package/packages/tools/lib/toolchain/project-model.js.map +1 -0
  616. package/packages/tools/lib/toolchain/providers/internal-package.d.ts +6 -0
  617. package/packages/tools/lib/toolchain/providers/internal-package.d.ts.map +1 -0
  618. package/packages/tools/lib/toolchain/providers/internal-package.js +47 -0
  619. package/packages/tools/lib/toolchain/providers/internal-package.js.map +1 -0
  620. package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts +20 -0
  621. package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts.map +1 -0
  622. package/packages/tools/lib/toolchain/providers/opensysml-check.js +95 -0
  623. package/packages/tools/lib/toolchain/providers/opensysml-check.js.map +1 -0
  624. package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts +17 -0
  625. package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts.map +1 -0
  626. package/packages/tools/lib/toolchain/providers/opensysml-compact.js +69 -0
  627. package/packages/tools/lib/toolchain/providers/opensysml-compact.js.map +1 -0
  628. package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts +50 -0
  629. package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts.map +1 -0
  630. package/packages/tools/lib/toolchain/providers/opensysml-lowering.js +646 -0
  631. package/packages/tools/lib/toolchain/providers/opensysml-lowering.js.map +1 -0
  632. package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts +16 -0
  633. package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts.map +1 -0
  634. package/packages/tools/lib/toolchain/providers/opensysml-names.js +37 -0
  635. package/packages/tools/lib/toolchain/providers/opensysml-names.js.map +1 -0
  636. package/packages/tools/lib/toolchain/providers/opensysml.d.ts +88 -0
  637. package/packages/tools/lib/toolchain/providers/opensysml.d.ts.map +1 -0
  638. package/packages/tools/lib/toolchain/providers/opensysml.js +178 -0
  639. package/packages/tools/lib/toolchain/providers/opensysml.js.map +1 -0
  640. package/packages/tools/lib/toolchain/providers/recommended.d.ts +2 -0
  641. package/packages/tools/lib/toolchain/providers/recommended.d.ts.map +1 -0
  642. package/packages/tools/lib/toolchain/providers/recommended.js +13 -0
  643. package/packages/tools/lib/toolchain/providers/recommended.js.map +1 -0
  644. package/packages/tools/lib/toolchain/providers/sysand-project.d.ts +60 -0
  645. package/packages/tools/lib/toolchain/providers/sysand-project.d.ts.map +1 -0
  646. package/packages/tools/lib/toolchain/providers/sysand-project.js +160 -0
  647. package/packages/tools/lib/toolchain/providers/sysand-project.js.map +1 -0
  648. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -1
  649. package/packages/tools/lib/toolchain/providers/sysand.js +26 -2
  650. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -1
  651. package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts +29 -0
  652. package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts.map +1 -0
  653. package/packages/tools/lib/toolchain/providers/syside-lowering.js +497 -0
  654. package/packages/tools/lib/toolchain/providers/syside-lowering.js.map +1 -0
  655. package/packages/tools/lib/toolchain/providers/syside-python.d.ts +9 -0
  656. package/packages/tools/lib/toolchain/providers/syside-python.d.ts.map +1 -0
  657. package/packages/tools/lib/toolchain/providers/syside-python.js +69 -0
  658. package/packages/tools/lib/toolchain/providers/syside-python.js.map +1 -0
  659. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -1
  660. package/packages/tools/lib/toolchain/providers/syside.js +2 -0
  661. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -1
  662. package/packages/tools/lib/toolchain/registry.d.ts +118 -21
  663. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -1
  664. package/packages/tools/lib/toolchain/registry.js +18 -24
  665. package/packages/tools/lib/toolchain/registry.js.map +1 -1
  666. package/packages/tools/lib/toolchain/schema.d.ts +6 -5
  667. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -1
  668. package/packages/tools/lib/toolchain/schema.js +8 -13
  669. package/packages/tools/lib/toolchain/schema.js.map +1 -1
  670. package/packages/tools/lib/toolchain/shipped-library.d.ts +28 -0
  671. package/packages/tools/lib/toolchain/shipped-library.d.ts.map +1 -0
  672. package/packages/tools/lib/toolchain/shipped-library.js +120 -0
  673. package/packages/tools/lib/toolchain/shipped-library.js.map +1 -0
  674. package/packages/tools/lib/toolchain/source-fingerprint.d.ts +2 -0
  675. package/packages/tools/lib/toolchain/source-fingerprint.d.ts.map +1 -0
  676. package/packages/tools/lib/toolchain/source-fingerprint.js +30 -0
  677. package/packages/tools/lib/toolchain/source-fingerprint.js.map +1 -0
  678. package/packages/tools/lib/toolchain/user-settings-status.d.ts +51 -0
  679. package/packages/tools/lib/toolchain/user-settings-status.d.ts.map +1 -0
  680. package/packages/tools/lib/toolchain/user-settings-status.js +104 -0
  681. package/packages/tools/lib/toolchain/user-settings-status.js.map +1 -0
  682. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  683. package/packages/tools/lib/validator/architecture-validator.js +2 -1
  684. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  685. package/packages/tools/lib/validator/behavior-validator.js +1 -1
  686. package/packages/tools/lib/validator/behavior-validator.js.map +1 -1
  687. package/packages/tools/lib/validator/builtin-rules.js +1 -1
  688. package/packages/tools/lib/validator/builtin-rules.js.map +1 -1
  689. package/packages/tools/lib/validator/constraint-eval.d.ts +30 -4
  690. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  691. package/packages/tools/lib/validator/constraint-eval.js +101 -59
  692. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  693. package/packages/tools/lib/validator/constraint-loader-api.d.ts +22 -0
  694. package/packages/tools/lib/validator/constraint-loader-api.d.ts.map +1 -0
  695. package/packages/tools/lib/validator/constraint-loader-api.js +160 -0
  696. package/packages/tools/lib/validator/constraint-loader-api.js.map +1 -0
  697. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -18
  698. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  699. package/packages/tools/lib/validator/constraint-loader.js +33 -141
  700. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  701. package/packages/tools/lib/validator/rule-clauses.d.ts +51 -0
  702. package/packages/tools/lib/validator/rule-clauses.d.ts.map +1 -0
  703. package/packages/tools/lib/validator/rule-clauses.js +87 -0
  704. package/packages/tools/lib/validator/rule-clauses.js.map +1 -0
  705. package/packages/tools/lib/validator/rule-engine.d.ts +9 -1
  706. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  707. package/packages/tools/lib/validator/rule-engine.js +50 -6
  708. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  709. package/packages/tools/lib/validator/rule-registry.d.ts +4 -8
  710. package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -1
  711. package/packages/tools/lib/validator/rule-registry.js +42 -79
  712. package/packages/tools/lib/validator/rule-registry.js.map +1 -1
  713. package/packages/tools/lib/validator/rule-tailoring.d.ts +62 -0
  714. package/packages/tools/lib/validator/rule-tailoring.d.ts.map +1 -0
  715. package/packages/tools/lib/validator/rule-tailoring.js +85 -0
  716. package/packages/tools/lib/validator/rule-tailoring.js.map +1 -0
  717. package/packages/tools/lib/validator/types.d.ts +12 -1
  718. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  719. package/packages/tools/lib/validator/workspace-boundary-validator.d.ts +9 -0
  720. package/packages/tools/lib/validator/workspace-boundary-validator.d.ts.map +1 -0
  721. package/packages/tools/lib/validator/workspace-boundary-validator.js +28 -0
  722. package/packages/tools/lib/validator/workspace-boundary-validator.js.map +1 -0
  723. package/packages/tools/python/memo_model.py +243 -0
  724. package/packages/tools/python/memo_stage1_syside.py +389 -0
  725. package/packages/tools/lib/commands/check.d.ts +0 -6
  726. package/packages/tools/lib/commands/check.d.ts.map +0 -1
  727. package/packages/tools/lib/commands/check.js +0 -191
  728. package/packages/tools/lib/commands/check.js.map +0 -1
  729. package/packages/tools/lib/commands/conformance.d.ts +0 -36
  730. package/packages/tools/lib/commands/conformance.d.ts.map +0 -1
  731. package/packages/tools/lib/commands/conformance.js +0 -212
  732. package/packages/tools/lib/commands/conformance.js.map +0 -1
  733. package/packages/tools/lib/commands/roundtrip.d.ts +0 -6
  734. package/packages/tools/lib/commands/roundtrip.d.ts.map +0 -1
  735. package/packages/tools/lib/commands/roundtrip.js +0 -145
  736. package/packages/tools/lib/commands/roundtrip.js.map +0 -1
  737. package/packages/tools/lib/conformance/baseline.d.ts +0 -26
  738. package/packages/tools/lib/conformance/baseline.d.ts.map +0 -1
  739. package/packages/tools/lib/conformance/baseline.js +0 -170
  740. package/packages/tools/lib/conformance/baseline.js.map +0 -1
  741. package/packages/tools/lib/conformance/bnf.d.ts +0 -84
  742. package/packages/tools/lib/conformance/bnf.d.ts.map +0 -1
  743. package/packages/tools/lib/conformance/bnf.js +0 -166
  744. package/packages/tools/lib/conformance/bnf.js.map +0 -1
  745. package/packages/tools/lib/conformance/corpus.d.ts +0 -125
  746. package/packages/tools/lib/conformance/corpus.d.ts.map +0 -1
  747. package/packages/tools/lib/conformance/corpus.js +0 -190
  748. package/packages/tools/lib/conformance/corpus.js.map +0 -1
  749. package/packages/tools/lib/conformance/diff-xmi.d.ts +0 -118
  750. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +0 -1
  751. package/packages/tools/lib/conformance/diff-xmi.js +0 -276
  752. package/packages/tools/lib/conformance/diff-xmi.js.map +0 -1
  753. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +0 -10
  754. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +0 -1
  755. package/packages/tools/lib/conformance/generated/syside-rules.js +0 -1142
  756. package/packages/tools/lib/conformance/generated/syside-rules.js.map +0 -1
  757. package/packages/tools/lib/conformance/index.d.ts +0 -7
  758. package/packages/tools/lib/conformance/index.d.ts.map +0 -1
  759. package/packages/tools/lib/conformance/index.js +0 -19
  760. package/packages/tools/lib/conformance/index.js.map +0 -1
  761. package/packages/tools/lib/conformance/run.d.ts +0 -117
  762. package/packages/tools/lib/conformance/run.d.ts.map +0 -1
  763. package/packages/tools/lib/conformance/run.js +0 -0
  764. package/packages/tools/lib/conformance/run.js.map +0 -1
  765. package/packages/tools/lib/conformance/xmi.d.ts +0 -45
  766. package/packages/tools/lib/conformance/xmi.d.ts.map +0 -1
  767. package/packages/tools/lib/conformance/xmi.js +0 -148
  768. package/packages/tools/lib/conformance/xmi.js.map +0 -1
  769. package/packages/tools/lib/language/generated/ast.d.ts +0 -3571
  770. package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
  771. package/packages/tools/lib/language/generated/ast.js +0 -2980
  772. package/packages/tools/lib/language/generated/ast.js.map +0 -1
  773. package/packages/tools/lib/language/generated/grammar.d.ts +0 -7
  774. package/packages/tools/lib/language/generated/grammar.d.ts.map +0 -1
  775. package/packages/tools/lib/language/generated/grammar.js +0 -10687
  776. package/packages/tools/lib/language/generated/grammar.js.map +0 -1
  777. package/packages/tools/lib/language/generated/module.d.ts +0 -14
  778. package/packages/tools/lib/language/generated/module.d.ts.map +0 -1
  779. package/packages/tools/lib/language/generated/module.js +0 -21
  780. package/packages/tools/lib/language/generated/module.js.map +0 -1
  781. package/packages/tools/lib/language/memo-sysml-module.d.ts +0 -24
  782. package/packages/tools/lib/language/memo-sysml-module.d.ts.map +0 -1
  783. package/packages/tools/lib/language/memo-sysml-module.js +0 -20
  784. package/packages/tools/lib/language/memo-sysml-module.js.map +0 -1
  785. package/packages/tools/lib/model/builder.d.ts +0 -27
  786. package/packages/tools/lib/model/builder.d.ts.map +0 -1
  787. package/packages/tools/lib/model/builder.js +0 -2112
  788. package/packages/tools/lib/model/builder.js.map +0 -1
  789. package/packages/tools/lib/model/package-registry.d.ts +0 -64
  790. package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
  791. package/packages/tools/lib/model/package-registry.js +0 -184
  792. package/packages/tools/lib/model/package-registry.js.map +0 -1
  793. package/packages/tools/lib/model/parser-utils.d.ts +0 -65
  794. package/packages/tools/lib/model/parser-utils.d.ts.map +0 -1
  795. package/packages/tools/lib/model/parser-utils.js +0 -201
  796. package/packages/tools/lib/model/parser-utils.js.map +0 -1
  797. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +0 -3
  798. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +0 -1
  799. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +0 -97
  800. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +0 -1
  801. package/packages/tools/lib/sysmlc/index.d.ts +0 -2
  802. package/packages/tools/lib/sysmlc/index.d.ts.map +0 -1
  803. package/packages/tools/lib/sysmlc/index.js +0 -7
  804. package/packages/tools/lib/sysmlc/index.js.map +0 -1
  805. package/packages/tools/lib/sysmlc/server.d.ts +0 -29
  806. package/packages/tools/lib/sysmlc/server.d.ts.map +0 -1
  807. package/packages/tools/lib/sysmlc/server.js +0 -168
  808. package/packages/tools/lib/sysmlc/server.js.map +0 -1
  809. package/packages/tools/lib/toolchain/lowering.d.ts +0 -63
  810. package/packages/tools/lib/toolchain/lowering.d.ts.map +0 -1
  811. package/packages/tools/lib/toolchain/lowering.js +0 -100
  812. package/packages/tools/lib/toolchain/lowering.js.map +0 -1
  813. package/packages/tools/lib/toolchain/providers/internal.d.ts +0 -33
  814. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +0 -1
  815. package/packages/tools/lib/toolchain/providers/internal.js +0 -286
  816. package/packages/tools/lib/toolchain/providers/internal.js.map +0 -1
  817. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +0 -77
  818. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +0 -1
  819. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  820. package/packages/tools/lib/toolchain/sysmlc-client.js.map +0 -1
  821. package/packages/tools/lib/validator/sysml-constraints.d.ts +0 -64
  822. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +0 -1
  823. package/packages/tools/lib/validator/sysml-constraints.js +0 -251
  824. package/packages/tools/lib/validator/sysml-constraints.js.map +0 -1
  825. package/packages/tools/src/grammar/memo-sysml.langium +0 -1064
@@ -1 +1 @@
1
- {"version":3,"file":"effective-scope.d.ts","sourceRoot":"","sources":["../../src/model/effective-scope.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;AAE5F,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,cAAc,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,oBAAoB,GAAG,cAAc,CASrF;AAED,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,EAAE,cAOhC,CAAC;AAYF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI9G;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAE9E;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EACnD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,cAAc,GACtB,CAAC,EAAE,CAGL;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIzG;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,SAAS,kBAAkB,EAAE,EAC1C,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACzD,aAAa,EAAE,CAoBjB"}
1
+ {"version":3,"file":"effective-scope.d.ts","sourceRoot":"","sources":["../../src/model/effective-scope.ts"],"names":[],"mappings":"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"}
@@ -8,17 +8,16 @@
8
8
  // treated an empty inclusion list as "the methodology does not restrict", so a
9
9
  // methodology that selected nothing and a methodology that selected everything
10
10
  // produced identical results, and nobody could tell which one had been authored.
11
- // Scope is now explicit: `scopeMode` says which it is, and under `explicit` an
12
- // empty list selects nothing.
11
+ // Scope is now explicit: `scopeMode` says which it is, and under `explicit` a
12
+ // methodology whose package publicly imports nothing selects nothing.
13
13
  //
14
14
  // Design reference: sections 9.2 and 18.3 deliverable 3.
15
15
  // ─────────────────────────────────────────────────────────────────────────────
16
- import { ruleCandidatesFromConstraints } from './methodology-resolver.js';
16
+ import { ruleCandidatesFromConstraints, resolveEffectiveRules } from './methodology-resolver.js';
17
17
  export function buildEffectiveScope(methodology) {
18
18
  return {
19
19
  mode: methodology.scopeMode,
20
- layers: new Set(methodology.includedLayers),
21
- modules: new Set(methodology.includedModules),
20
+ packages: new Set(methodology.selectedPackages),
22
21
  standards: new Set(methodology.includedStandards),
23
22
  artifactKinds: new Set(methodology.includedArtifactKinds),
24
23
  viewpoints: new Set(methodology.includedViewpoints),
@@ -27,16 +26,13 @@ export function buildEffectiveScope(methodology) {
27
26
  /** A scope that selects everything — the shape callers get before a binding resolves. */
28
27
  export const UNRESTRICTED_SCOPE = {
29
28
  mode: 'allAvailable',
30
- layers: new Set(),
31
- modules: new Set(),
29
+ packages: new Set(),
32
30
  standards: new Set(),
33
31
  artifactKinds: new Set(),
34
32
  viewpoints: new Set(),
35
33
  };
36
34
  function setFor(scope, dimension) {
37
35
  switch (dimension) {
38
- case 'layer': return scope.layers;
39
- case 'module': return scope.modules;
40
36
  case 'standard': return scope.standards;
41
37
  case 'artifactKind': return scope.artifactKinds;
42
38
  case 'viewpoint': return scope.viewpoints;
@@ -56,32 +52,19 @@ export function isInScope(scope, dimension, value) {
56
52
  return false;
57
53
  return setFor(scope, dimension).has(value);
58
54
  }
59
- /**
60
- * Is a kind in scope?
61
- *
62
- * A kind belongs to exactly one axis position, so it is in scope when its layer
63
- * is selected. A kind with no layer is only in scope under `allAvailable`: an
64
- * unplaced kind cannot be shown to satisfy an explicit selection.
65
- */
66
- export function isKindInScope(scope, kind) {
67
- return isInScope(scope, 'layer', kind.layer);
68
- }
69
- /** Filter kinds to those in scope. Used by palettes and creation dialogs alike. */
70
- export function filterKindsInScope(kinds, scope) {
71
- if (scope.mode === 'allAvailable')
72
- return [...kinds];
73
- return kinds.filter(kind => isKindInScope(scope, kind));
74
- }
75
55
  /**
76
56
  * Is a package in scope?
77
57
  *
78
- * `includedLayer` and `includedModule` both name packages; a methodology splits
79
- * them for readability, not because the resolver treats them differently.
58
+ * Under `explicit`, a package is in scope when the selection imports it: the
59
+ * methodology's package, or the binding's, publicly imports it, directly or
60
+ * through packages it publicly imports (`publicImportClosure`). A layer is
61
+ * selected through its layer package and an extension through its facade, so
62
+ * there is no second, name-matching test here.
80
63
  */
81
64
  export function isPackageInScope(scope, packageName) {
82
65
  if (scope.mode === 'allAvailable')
83
66
  return true;
84
- return scope.layers.has(packageName) || scope.modules.has(packageName);
67
+ return scope.packages.has(packageName);
85
68
  }
86
69
  /**
87
70
  * Is a rule active under this scope?
@@ -102,17 +85,19 @@ export function isRulePackageInScope(scope, declaringPackage) {
102
85
  * The rules a project's methodology actually activates.
103
86
  *
104
87
  * A rule is active when BOTH its declaring package and its subject kind are in
105
- * scope. A rule whose subject the methodology never selected can only report on
88
+ * scope — unless it is classified `invariant`, which is active in every scope. A rule whose subject the methodology never selected can only report on
106
89
  * content the project did not agree to model — which is how the GPCA prototype
107
90
  * used to accumulate cybersecurity violations for a discipline it had excluded.
108
91
  *
109
- * This lives here, shared, because `memo validate` and `memo rules list` are
92
+ * This lives here, shared, because `memo validate` and `memo validate --rules` are
110
93
  * two views of one answer. They computed it separately, and inevitably
111
94
  * disagreed: `validate` scope-filtered and `rules list` did not, so the same
112
95
  * project reported 20 rules and 38 rules depending on which command you asked.
113
96
  * A number that changes with the question is not an audit.
114
97
  */
115
- export function activeRuleCandidates(constraints, scope, filePackages, kindSourceFile) {
98
+ export function activeRuleCandidates(constraints, scope, filePackages, kindSourceFile,
99
+ /** A rule in one of the project's own files is its authors': its package is always in scope. */
100
+ isOwnFile = () => false) {
116
101
  const packageOf = (file) => file ? filePackages.get(file) : undefined;
117
102
  const subjectInScope = (appliesTo) => {
118
103
  if (scope.mode === 'allAvailable')
@@ -121,13 +106,89 @@ export function activeRuleCandidates(constraints, scope, filePackages, kindSourc
121
106
  if (!appliesTo || appliesTo === 'Model')
122
107
  return true;
123
108
  const kindName = appliesTo.split('[')[0];
124
- // A methodology's inclusion lists name packages, so a kind is placed by
109
+ // A methodology selects packages, so a kind is placed by
125
110
  // the package that declares it — not by the `layer` string, which is a
126
111
  // display grouping in a different namespace.
127
112
  return isRulePackageInScope(scope, packageOf(kindSourceFile(kindName)));
128
113
  };
129
- return ruleCandidatesFromConstraints(constraints
130
- .filter(c => isRulePackageInScope(scope, packageOf(c.sourceFile)))
131
- .filter(c => subjectInScope(c.appliesToKind)));
114
+ // An invariant is exempt from both. A RulePolicy cannot disable one
115
+ // (`invariant-protected`), and leaving its package or its subject kind out
116
+ // of the selection disabled it just the same, with no policy and no
117
+ // diagnostic to show for it. An invariant over a kind the project never
118
+ // uses runs on nothing and reports as vacuous, which is the honest answer.
119
+ //
120
+ // A rule the project wrote itself is not filtered by package: a methodology
121
+ // selects the ontology's packages, and a project's own rule belongs to the
122
+ // project. Its subject kind is still checked.
123
+ return ruleCandidatesFromConstraints(constraints.filter(c => c.tailoring === 'invariant'
124
+ || (((c.sourceFile !== undefined && isOwnFile(c.sourceFile))
125
+ || isRulePackageInScope(scope, packageOf(c.sourceFile)))
126
+ && subjectInScope(c.appliesToKind))), constraint => subjectPackageOf(constraint, filePackages, kindSourceFile));
127
+ }
128
+ /** The package that declares a rule's subject kind: its layer, for a policy that selects by category. */
129
+ function subjectPackageOf(constraint, filePackages, kindSourceFile) {
130
+ const appliesTo = constraint.appliesToKind;
131
+ // A model-level rule has no single subject kind to place.
132
+ if (!appliesTo || appliesTo === 'Model')
133
+ return undefined;
134
+ const file = kindSourceFile(appliesTo.split('[')[0]);
135
+ return file ? filePackages.get(file) : undefined;
136
+ }
137
+ /**
138
+ * The rules a methodology does not activate, and why. A rule that does not run
139
+ * must say so: one that is silently absent reads as one that passed.
140
+ */
141
+ export function inactiveRules(constraints, scope, filePackages, kindSourceFile, isOwnFile = () => false) {
142
+ const active = new Set(activeRuleCandidates(constraints, scope, filePackages, kindSourceFile, isOwnFile).map(c => c.id));
143
+ return constraints.filter(c => !active.has(c.id)).map(c => {
144
+ const own = c.sourceFile !== undefined && isOwnFile(c.sourceFile);
145
+ const packageIn = own || isRulePackageInScope(scope, c.sourceFile ? filePackages.get(c.sourceFile) : undefined);
146
+ const kind = (c.appliesToKind ?? '').split('[')[0];
147
+ return packageIn
148
+ ? {
149
+ id: c.id, typeName: c.typeName, file: c.sourceFile, reason: 'subject-not-selected',
150
+ detail: `it applies to ${kind}, which the project's methodology does not select`,
151
+ }
152
+ : {
153
+ id: c.id, typeName: c.typeName, file: c.sourceFile, reason: 'package-not-selected',
154
+ detail: 'the package that declares it is not one the project\'s methodology selects',
155
+ };
156
+ });
157
+ }
158
+ /**
159
+ * The project's effective rule set: the rules its methodology activates, with
160
+ * its policies applied. One answer, asked by `memo validate`, `memo validate --rules`
161
+ * and the Architect's dev server, so they report one rule set.
162
+ */
163
+ export function resolveProjectRules(input) {
164
+ const scope = input.effective ? buildEffectiveScope(input.effective) : undefined;
165
+ const candidates = scope
166
+ ? activeRuleCandidates(input.constraints, scope, input.filePackages, input.kindSourceFile, input.isOwnFile)
167
+ : ruleCandidatesFromConstraints(input.constraints, constraint => subjectPackageOf(constraint, input.filePackages, input.kindSourceFile));
168
+ return { rules: resolveEffectiveRules(candidates, input.effective?.policyChain ?? []), scope };
169
+ }
170
+ /**
171
+ * The ids rules may run ON under a methodology scope: every element whose kind
172
+ * the scope selects, and every named, typed edge whose declared kind it
173
+ * selects.
174
+ *
175
+ * The edges matter because a named `flow` or `interface` typed by a domain
176
+ * definition is a rule subject of that kind under the RELATIONSHIP's id
177
+ * (relationship-subjects.ts). A set built from elements alone dropped every
178
+ * such subject under any explicit scope, so a rule scoped to
179
+ * `FunctionalExchange` or `ComponentExchange` ran on nothing and reported a
180
+ * clean pass.
181
+ */
182
+ export function scopedSubjectIds(model, selectsKind) {
183
+ const ids = new Set();
184
+ for (const [id, element] of model.elements) {
185
+ if (selectsKind(element.kind))
186
+ ids.add(id);
187
+ }
188
+ for (const relationship of model.relationships) {
189
+ if (relationship.named && relationship.kind && selectsKind(relationship.kind))
190
+ ids.add(relationship.id);
191
+ }
192
+ return ids;
132
193
  }
133
194
  //# sourceMappingURL=effective-scope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effective-scope.js","sourceRoot":"","sources":["../../src/model/effective-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effective-scope.js","sourceRoot":"","sources":["../../src/model/effective-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import type { MemoElement, MemoRelationship } from './semantic.js';
2
+ /** The `ParseError.code` every ambiguous bare reference carries. */
3
+ export declare const AMBIGUOUS_ELEMENT_REFERENCE = "ambiguous-element-reference";
4
+ /** The `ParseError.code` a duplicate qualified name carries. */
5
+ export declare const ELEMENT_NAME_COLLISION = "element-name-collision";
6
+ /** The `ParseError.code` two named relationships sharing a qualified name carry. */
7
+ export declare const RELATIONSHIP_NAME_COLLISION = "relationship-name-collision";
8
+ /** The separator SysML uses between the segments of a qualified name. */
9
+ export declare const QUALIFIER = "::";
10
+ /**
11
+ * The qualified name of a declaration.
12
+ *
13
+ * `ownerId` is the owning element's own qualified id, so the chain builds
14
+ * itself one hop at a time and a port three levels down reads as the path you
15
+ * would type in the source.
16
+ */
17
+ export declare function qualifiedId(shortName: string, packageName: string | undefined, ownerId: string | undefined): string;
18
+ /**
19
+ * The last segment of a qualified name.
20
+ *
21
+ * Accepts `undefined` and passes it through, because most of what is asked for
22
+ * a short name is an optional field — an element's `owner`, a relationship's
23
+ * resolved end — and making every caller guard it reads worse than this does.
24
+ */
25
+ export declare function shortNameOf(id: string): string;
26
+ export declare function shortNameOf(id: string | undefined): string | undefined;
27
+ /** Two elements that wanted the same qualified name. */
28
+ export interface ElementCollision {
29
+ /** The qualified name both elements are declared with. */
30
+ id: string;
31
+ /** The element that is in the model. */
32
+ kept: MemoElement;
33
+ /** The element that was dropped. */
34
+ dropped: MemoElement;
35
+ /** 1-based line of the kept element's declaration, when the CST gave one. */
36
+ keptLine?: number;
37
+ /** 1-based line of the dropped element's declaration, when the CST gave one. */
38
+ droppedLine?: number;
39
+ }
40
+ /** Two named relationships that wanted the same qualified name. */
41
+ export interface RelationshipCollision {
42
+ /** The qualified name both relationships are declared with. */
43
+ id: string;
44
+ /** The relationship that is in the model under that name. */
45
+ kept: MemoRelationship;
46
+ /** The relationship that lost the name. */
47
+ dropped: MemoRelationship;
48
+ /** 1-based line of the kept declaration, when the CST gave one. */
49
+ keptLine?: number;
50
+ /** 1-based line of the dropped declaration, when the CST gave one. */
51
+ droppedLine?: number;
52
+ }
53
+ /** A bare reference that more than one element answers to. */
54
+ export interface AmbiguousReference {
55
+ /** The reference as it was authored. */
56
+ reference: string;
57
+ /** The qualified ids that all answer to it. */
58
+ candidates: string[];
59
+ /** The file the reference was written in, when the caller said. */
60
+ file?: string;
61
+ }
62
+ /**
63
+ * Where a reference was written, which is what decides what a short name means.
64
+ *
65
+ * Both fields are optional because some callers genuinely have no context — a
66
+ * name a person typed at a terminal, a key read back from a saved layout — and
67
+ * for those the global rules (4 and 5) are the right ones.
68
+ */
69
+ export interface ReferenceContext {
70
+ /** The package the reference was authored in. */
71
+ packageName?: string;
72
+ /** The element whose body the reference was authored in, if any. */
73
+ ownerId?: string;
74
+ /** The file, for the diagnostic if the reference turns out ambiguous. */
75
+ file?: string;
76
+ }
77
+ /**
78
+ * The 1-based declaration line of a Langium AST node.
79
+ *
80
+ * Typed loosely on purpose: the builder passes a mix of generated AST nodes and
81
+ * the structural `UsageNode` shape it declares for itself, and neither is worth
82
+ * a cast at nine call sites.
83
+ */
84
+ export declare function declarationLine(node: unknown): number | undefined;
85
+ /**
86
+ * `qualified name → element`, with the lookups an authored reference needs.
87
+ *
88
+ * Extends `Map` so that every function already typed `Map<string, MemoElement>`
89
+ * keeps working: `get` is exact and means "this qualified id". Everything that
90
+ * starts from something a person wrote goes through `lookup` or `resolvePath`.
91
+ */
92
+ export declare class ElementIndex extends Map<string, MemoElement> {
93
+ /** Every pair that competed for one qualified name. */
94
+ readonly collisions: ElementCollision[];
95
+ /** Bare references that more than one element answered to. */
96
+ readonly ambiguities: AmbiguousReference[];
97
+ /** Every pair of named relationships that competed for one qualified name. */
98
+ readonly relationshipCollisions: RelationshipCollision[];
99
+ /** Short name → the qualified ids declaring it, in declaration order. */
100
+ private byShortName;
101
+ /** Declaration lines of the elements that landed, for collision reports. */
102
+ private lines;
103
+ /**
104
+ * Named relationships by qualified id — the identity half of §9.1's
105
+ * "single canonical identity for a named flow/interface that can also
106
+ * serve as a relationship target".
107
+ *
108
+ * A read-only facade, deliberately: the entries here ARE the objects in
109
+ * `MemoModel.relationships`, not copies of them, so a named flow has one
110
+ * record and not a record plus a proxy. Nothing may be added here that is
111
+ * not also pushed onto the relationship list, and nothing here is an
112
+ * element — a flow is an edge, and putting a fabricated `MemoElement` in
113
+ * the elements map would make every census, view and filter count it as
114
+ * one more part.
115
+ */
116
+ private relationships;
117
+ /** Short name → the qualified relationship ids declaring it. */
118
+ private relationshipsByShortName;
119
+ /** Declaration lines of the named relationships, for collision reports. */
120
+ private relationshipLines;
121
+ /**
122
+ * Add an element under its own qualified `id`. Returns whether it landed —
123
+ * false means one was already there and this one was dropped, either as a
124
+ * duplicate arrival or as a recorded collision.
125
+ */
126
+ define(element: MemoElement, node?: unknown): boolean;
127
+ /** The qualified ids that declare this short name. */
128
+ idsNamed(shortName: string): readonly string[];
129
+ /**
130
+ * Find the element an authored reference names, from where it was written.
131
+ *
132
+ * The context is what makes a short name meaningful, and it is the same
133
+ * order SysML resolves in: the owner's own members, then the enclosing
134
+ * package, then anything visible. Two view packages that each declare
135
+ * `clinician` are two elements, and inside either package the bare word
136
+ * means that package's one — which is why the context is not optional in
137
+ * practice even though the parameter is.
138
+ *
139
+ * 1. the full qualified id;
140
+ * 2. a member of `ownerId` — `scanSubscriber` inside `nodeSafetyMonitor`;
141
+ * 3. a member of `packageName`, walking OUT through enclosing packages;
142
+ * 4. a TRAILING part of some qualified id, when exactly one ends that way
143
+ * — `nodeLidar::scanPublisher` written from another package;
144
+ * 5. a bare short name, when exactly one element in the model carries it.
145
+ *
146
+ * A reference that survives all five with more than one candidate is
147
+ * recorded in `ambiguities` and resolves to nothing. Picking one would be
148
+ * picking by declaration order, which is the bug this index exists to stop.
149
+ */
150
+ lookup(reference: string, context?: ReferenceContext): MemoElement | undefined;
151
+ /**
152
+ * The five resolution steps above, over whichever identity map is asked.
153
+ *
154
+ * Elements and named relationships are separate maps — a flow is not an
155
+ * element — but a reference to either is written the same way and must
156
+ * resolve by the same rules, so the rules live here once. Ambiguity is
157
+ * recorded into the one shared list, because a reference that cannot
158
+ * decide is one diagnostic however it was declared.
159
+ */
160
+ private resolveIn;
161
+ /**
162
+ * Record a named relationship under its own qualified `id`, so a later
163
+ * `allocate`, `satisfy`, `verify` or trace can name it.
164
+ *
165
+ * Returns whether it landed. False means another declaration already holds
166
+ * that qualified name, which is recorded in `relationshipCollisions` — the
167
+ * relationship itself still reaches the model as an edge, because the two
168
+ * facts are separate: the edge is real, the name is contested.
169
+ */
170
+ defineRelationship(relationship: MemoRelationship, node?: unknown): boolean;
171
+ /** The named relationship an authored reference names, by the same rules as `lookup`. */
172
+ lookupRelationship(reference: string, context?: ReferenceContext): MemoRelationship | undefined;
173
+ /**
174
+ * Whether this id addresses anything in the model — an element or a named
175
+ * relationship. What an edge endpoint has to satisfy, now that a flow can
176
+ * be one.
177
+ */
178
+ hasEntity(id: string): boolean;
179
+ /**
180
+ * Resolve a dotted feature path — `nodeSafetyMonitor.scanSubscriber.payload`
181
+ * — as far as it names elements.
182
+ *
183
+ * The first segment is looked up; each further segment is an owned member
184
+ * of what came before, which is an exact `owner::name` probe rather than a
185
+ * global search that then checks the owner. That check is what used to stop
186
+ * one segment short when the global search returned the wrong node's port.
187
+ *
188
+ * Returns the deepest element reached and whatever is left over — a port's
189
+ * `payload`, an action's parameter — which the caller keeps as the edge's
190
+ * end name.
191
+ */
192
+ resolvePath(reference: string, context?: ReferenceContext): {
193
+ element?: MemoElement;
194
+ id: string;
195
+ end: string;
196
+ ambiguous: boolean;
197
+ };
198
+ private recordAmbiguity;
199
+ }
200
+ /**
201
+ * An index built from elements that already have their ids — a model received
202
+ * over the wire, a hand-built test fixture, a conversion from another tool.
203
+ */
204
+ export declare function toElementIndex(elements: Iterable<MemoElement> | Map<string, MemoElement>): ElementIndex;
205
+ /** Where an element sits, for a reader who has to go and look at both. */
206
+ export declare function describeLocation(element: MemoElement, line?: number): string;
207
+ //# sourceMappingURL=element-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-index.d.ts","sourceRoot":"","sources":["../../src/model/element-index.ts"],"names":[],"mappings":"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"}