@memoarchitect/tools 0.6.6 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/README.md +54 -11
  2. package/package.json +19 -7
  3. package/packages/tools/lib/analysis-starters.d.ts +4 -0
  4. package/packages/tools/lib/analysis-starters.d.ts.map +1 -0
  5. package/packages/tools/lib/analysis-starters.js +425 -0
  6. package/packages/tools/lib/analysis-starters.js.map +1 -0
  7. package/packages/tools/lib/bin/memo.js +161 -10
  8. package/packages/tools/lib/bin/memo.js.map +1 -1
  9. package/packages/tools/lib/browser/index.d.ts +1 -1
  10. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  11. package/packages/tools/lib/browser/index.js +1 -1
  12. package/packages/tools/lib/browser/index.js.map +1 -1
  13. package/packages/tools/lib/commands/ask.js +1 -1
  14. package/packages/tools/lib/commands/ask.js.map +1 -1
  15. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  16. package/packages/tools/lib/commands/check.js +3 -9
  17. package/packages/tools/lib/commands/check.js.map +1 -1
  18. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  19. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  20. package/packages/tools/lib/commands/conformance.js +212 -0
  21. package/packages/tools/lib/commands/conformance.js.map +1 -0
  22. package/packages/tools/lib/commands/convert.d.ts +12 -0
  23. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  24. package/packages/tools/lib/commands/convert.js +103 -0
  25. package/packages/tools/lib/commands/convert.js.map +1 -0
  26. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  27. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  28. package/packages/tools/lib/commands/create-package.js.map +1 -1
  29. package/packages/tools/lib/commands/dev.d.ts +13 -0
  30. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  31. package/packages/tools/lib/commands/dev.js +208 -74
  32. package/packages/tools/lib/commands/dev.js.map +1 -1
  33. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  34. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  35. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  36. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  37. package/packages/tools/lib/commands/dhf.js +1 -1
  38. package/packages/tools/lib/commands/dhf.js.map +1 -1
  39. package/packages/tools/lib/commands/element.d.ts +34 -0
  40. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  41. package/packages/tools/lib/commands/element.js +174 -0
  42. package/packages/tools/lib/commands/element.js.map +1 -0
  43. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  44. package/packages/tools/lib/commands/export.js +39 -40
  45. package/packages/tools/lib/commands/export.js.map +1 -1
  46. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  47. package/packages/tools/lib/commands/generate.js +10 -7
  48. package/packages/tools/lib/commands/generate.js.map +1 -1
  49. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  50. package/packages/tools/lib/commands/import.js +25 -12
  51. package/packages/tools/lib/commands/import.js.map +1 -1
  52. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  53. package/packages/tools/lib/commands/init.js +37 -14
  54. package/packages/tools/lib/commands/init.js.map +1 -1
  55. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  56. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  57. package/packages/tools/lib/commands/inspect.js +56 -0
  58. package/packages/tools/lib/commands/inspect.js.map +1 -0
  59. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  60. package/packages/tools/lib/commands/lock.js +7 -2
  61. package/packages/tools/lib/commands/lock.js.map +1 -1
  62. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/ontology.js +69 -116
  64. package/packages/tools/lib/commands/ontology.js.map +1 -1
  65. package/packages/tools/lib/commands/pack.d.ts +1 -1
  66. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  67. package/packages/tools/lib/commands/pack.js +20 -75
  68. package/packages/tools/lib/commands/pack.js.map +1 -1
  69. package/packages/tools/lib/commands/package.d.ts +10 -0
  70. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  71. package/packages/tools/lib/commands/package.js +113 -0
  72. package/packages/tools/lib/commands/package.js.map +1 -0
  73. package/packages/tools/lib/commands/plugin.js +1 -1
  74. package/packages/tools/lib/commands/plugin.js.map +1 -1
  75. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  76. package/packages/tools/lib/commands/rules.js +120 -30
  77. package/packages/tools/lib/commands/rules.js.map +1 -1
  78. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  79. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  80. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  81. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  82. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  83. package/packages/tools/lib/commands/toolchain.js +64 -0
  84. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  85. package/packages/tools/lib/commands/validate.d.ts +1 -1
  86. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  87. package/packages/tools/lib/commands/validate.js +183 -56
  88. package/packages/tools/lib/commands/validate.js.map +1 -1
  89. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  90. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  91. package/packages/tools/lib/completeness/tracker.js +16 -21
  92. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  93. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  94. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  95. package/packages/tools/lib/conformance/baseline.js +170 -0
  96. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  97. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  98. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  99. package/packages/tools/lib/conformance/bnf.js +166 -0
  100. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  101. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  102. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  103. package/packages/tools/lib/conformance/corpus.js +190 -0
  104. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  105. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  106. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  107. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  108. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  109. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  110. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  111. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  112. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  113. package/packages/tools/lib/conformance/index.d.ts +7 -0
  114. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  115. package/packages/tools/lib/conformance/index.js +19 -0
  116. package/packages/tools/lib/conformance/index.js.map +1 -0
  117. package/packages/tools/lib/conformance/run.d.ts +117 -0
  118. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  119. package/packages/tools/lib/conformance/run.js +0 -0
  120. package/packages/tools/lib/conformance/run.js.map +1 -0
  121. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  122. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  123. package/packages/tools/lib/conformance/xmi.js +148 -0
  124. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  125. package/packages/tools/lib/dhf/template-resolver.js +1 -1
  126. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  127. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  128. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  129. package/packages/tools/lib/import/column-mapper.js +3 -3
  130. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  131. package/packages/tools/lib/index.d.ts +20 -3
  132. package/packages/tools/lib/index.d.ts.map +1 -1
  133. package/packages/tools/lib/index.js +19 -2
  134. package/packages/tools/lib/index.js.map +1 -1
  135. package/packages/tools/lib/language/generated/ast.d.ts +196 -51
  136. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  137. package/packages/tools/lib/language/generated/ast.js +136 -15
  138. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  139. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  140. package/packages/tools/lib/language/generated/grammar.js +867 -295
  141. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  142. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  143. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  144. package/packages/tools/lib/llm/chat-engine.js +15 -12
  145. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  146. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  147. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  148. package/packages/tools/lib/llm/generate-engine.js +22 -4
  149. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  150. package/packages/tools/lib/llm/index.d.ts +1 -0
  151. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  152. package/packages/tools/lib/llm/index.js +1 -0
  153. package/packages/tools/lib/llm/index.js.map +1 -1
  154. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  155. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  156. package/packages/tools/lib/llm/model-context.js +7 -13
  157. package/packages/tools/lib/llm/model-context.js.map +1 -1
  158. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  159. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  160. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  161. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  162. package/packages/tools/lib/lock.d.ts +14 -8
  163. package/packages/tools/lib/lock.d.ts.map +1 -1
  164. package/packages/tools/lib/lock.js +97 -108
  165. package/packages/tools/lib/lock.js.map +1 -1
  166. package/packages/tools/lib/mcp/model-loader.d.ts +5 -1
  167. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  168. package/packages/tools/lib/mcp/model-loader.js +16 -27
  169. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  170. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  171. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  172. package/packages/tools/lib/mcp/tools.js +8 -9
  173. package/packages/tools/lib/mcp/tools.js.map +1 -1
  174. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  175. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  176. package/packages/tools/lib/model/activity-notation.js +208 -0
  177. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  178. package/packages/tools/lib/model/builder.d.ts +3 -0
  179. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  180. package/packages/tools/lib/model/builder.js +264 -26
  181. package/packages/tools/lib/model/builder.js.map +1 -1
  182. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  183. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  184. package/packages/tools/lib/model/config-loader.js +51 -233
  185. package/packages/tools/lib/model/config-loader.js.map +1 -1
  186. package/packages/tools/lib/model/config.d.ts +42 -213
  187. package/packages/tools/lib/model/config.d.ts.map +1 -1
  188. package/packages/tools/lib/model/config.js +11 -9
  189. package/packages/tools/lib/model/config.js.map +1 -1
  190. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  191. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  192. package/packages/tools/lib/model/effective-scope.js +133 -0
  193. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  194. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  195. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  196. package/packages/tools/lib/model/ir-identity.js +178 -0
  197. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  198. package/packages/tools/lib/model/kind-registry.d.ts +114 -1
  199. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  200. package/packages/tools/lib/model/kind-registry.js +148 -4
  201. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  202. package/packages/tools/lib/model/layer-resolver.js +1 -1
  203. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  204. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  205. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  206. package/packages/tools/lib/model/methodology-loader.js +179 -176
  207. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  208. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  209. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  210. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  211. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  212. package/packages/tools/lib/model/native-project.d.ts +130 -0
  213. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  214. package/packages/tools/lib/model/native-project.js +570 -0
  215. package/packages/tools/lib/model/native-project.js.map +1 -0
  216. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  217. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  218. package/packages/tools/lib/model/ontology-loader.js +340 -614
  219. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  220. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  221. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  222. package/packages/tools/lib/model/package-manifest.js +96 -0
  223. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  224. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  225. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  226. package/packages/tools/lib/model/parser-utils.js +89 -1
  227. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  228. package/packages/tools/lib/model/paths.d.ts +10 -4
  229. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  230. package/packages/tools/lib/model/paths.js +10 -4
  231. package/packages/tools/lib/model/paths.js.map +1 -1
  232. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  233. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  234. package/packages/tools/lib/model/project-conversion.js +946 -0
  235. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  236. package/packages/tools/lib/model/relationship-legality.d.ts +12 -0
  237. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  238. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  239. package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
  240. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  241. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  242. package/packages/tools/lib/model/semantic.d.ts +38 -0
  243. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  244. package/packages/tools/lib/model/semantic.js +3 -0
  245. package/packages/tools/lib/model/semantic.js.map +1 -1
  246. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  247. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  248. package/packages/tools/lib/model/settings-boundary.js +118 -0
  249. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  250. package/packages/tools/lib/model/short-id.d.ts +8 -7
  251. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  252. package/packages/tools/lib/model/short-id.js +26 -17
  253. package/packages/tools/lib/model/short-id.js.map +1 -1
  254. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  255. package/packages/tools/lib/model/source-graph.js +5 -1
  256. package/packages/tools/lib/model/source-graph.js.map +1 -1
  257. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  258. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  259. package/packages/tools/lib/model/source-provenance.js +169 -0
  260. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  261. package/packages/tools/lib/model/sysml-files.d.ts +9 -0
  262. package/packages/tools/lib/model/sysml-files.d.ts.map +1 -1
  263. package/packages/tools/lib/model/sysml-files.js +20 -1
  264. package/packages/tools/lib/model/sysml-files.js.map +1 -1
  265. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  266. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  267. package/packages/tools/lib/model/sysml-ir.js +105 -0
  268. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  269. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  270. package/packages/tools/lib/model/view-deriver.js +60 -6
  271. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  272. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  273. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  274. package/packages/tools/lib/model/view-kinds.js +11 -0
  275. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  276. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  277. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  278. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  279. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  280. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  281. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  282. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  283. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  284. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  285. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  286. package/packages/tools/lib/operations/authoring.js +56 -0
  287. package/packages/tools/lib/operations/authoring.js.map +1 -0
  288. package/packages/tools/lib/operations/index.d.ts +2 -0
  289. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  290. package/packages/tools/lib/operations/index.js +2 -0
  291. package/packages/tools/lib/operations/index.js.map +1 -1
  292. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  293. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  294. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  295. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  296. package/packages/tools/lib/protocol/messages.d.ts +311 -11
  297. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  298. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  299. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  300. package/packages/tools/lib/serializer/csv-io.js +11 -11
  301. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  302. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  303. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  304. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  305. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  306. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  307. package/packages/tools/lib/server/config-resolver.js +25 -44
  308. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  309. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  310. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  311. package/packages/tools/lib/server/conflict-policy.js +94 -0
  312. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  313. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  314. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  315. package/packages/tools/lib/server/dev-server.js +721 -53
  316. package/packages/tools/lib/server/dev-server.js.map +1 -1
  317. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  318. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  319. package/packages/tools/lib/server/element-writer.js +123 -0
  320. package/packages/tools/lib/server/element-writer.js.map +1 -0
  321. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  322. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  323. package/packages/tools/lib/server/file-watcher.js +17 -7
  324. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  325. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  326. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  327. package/packages/tools/lib/server/mutation-domain.js +87 -0
  328. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  329. package/packages/tools/lib/server/persistor.d.ts +63 -8
  330. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  331. package/packages/tools/lib/server/persistor.js +152 -44
  332. package/packages/tools/lib/server/persistor.js.map +1 -1
  333. package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
  334. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  335. package/packages/tools/lib/server/relationship-writer.js +98 -9
  336. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  337. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  338. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  339. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  340. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  341. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  342. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  343. package/packages/tools/lib/server/runtime-budget.js +15 -0
  344. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  345. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  346. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  347. package/packages/tools/lib/server/sysml-notation.js +87 -0
  348. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  349. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  350. package/packages/tools/lib/server/view-layout-store.js +2 -0
  351. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  352. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  353. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  354. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  355. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  356. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  357. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  358. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  359. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  360. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  361. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  362. package/packages/tools/lib/sysml-ir/index.js +3 -0
  363. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  364. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  365. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  366. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  367. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  368. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  369. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  370. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  371. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  372. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  373. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  374. package/packages/tools/lib/sysmlc/index.js +7 -0
  375. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  376. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  377. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  378. package/packages/tools/lib/sysmlc/server.js +168 -0
  379. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  380. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  381. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  382. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  383. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  384. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  385. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  386. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  387. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  388. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  389. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  390. package/packages/tools/lib/toolchain/effective.js +91 -0
  391. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  392. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  393. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  394. package/packages/tools/lib/toolchain/index.js +21 -0
  395. package/packages/tools/lib/toolchain/index.js.map +1 -0
  396. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  397. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  398. package/packages/tools/lib/toolchain/lowering.js +100 -0
  399. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  400. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  401. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  402. package/packages/tools/lib/toolchain/operations.js +111 -0
  403. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  404. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  405. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  406. package/packages/tools/lib/toolchain/process.js +125 -0
  407. package/packages/tools/lib/toolchain/process.js.map +1 -0
  408. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  409. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  410. package/packages/tools/lib/toolchain/protocol.js +74 -0
  411. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  412. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  413. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  414. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  415. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  416. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  417. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  418. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  419. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  420. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  421. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  422. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  423. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  424. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  425. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  426. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  427. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  428. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  429. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  430. package/packages/tools/lib/toolchain/registry.js +130 -0
  431. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  432. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  433. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  434. package/packages/tools/lib/toolchain/schema.js +112 -0
  435. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  436. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  437. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  438. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  439. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  440. package/packages/tools/lib/validator/architecture-validator.d.ts +17 -0
  441. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -0
  442. package/packages/tools/lib/validator/architecture-validator.js +101 -0
  443. package/packages/tools/lib/validator/architecture-validator.js.map +1 -0
  444. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  445. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  446. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  447. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  448. package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
  449. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  450. package/packages/tools/lib/validator/constraint-eval.js +62 -7
  451. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  452. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  453. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  454. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  455. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  456. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  457. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  458. package/packages/tools/lib/validator/rule-engine.js +57 -4
  459. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  460. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  461. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  462. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  463. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  464. package/packages/tools/lib/validator/types.d.ts +33 -0
  465. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  466. package/packages/tools/lib/version.d.ts +2 -0
  467. package/packages/tools/lib/version.d.ts.map +1 -0
  468. package/packages/tools/lib/version.js +26 -0
  469. package/packages/tools/lib/version.js.map +1 -0
  470. package/packages/tools/src/grammar/memo-sysml.langium +104 -18
  471. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  472. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  473. package/packages/tools/lib/model/dimension-filter.js +0 -57
  474. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  475. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  476. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  477. package/packages/tools/lib/model/toolchain.js +0 -92
  478. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -7,16 +7,28 @@
7
7
  // Editing is CST-aware: the file is parsed, the edit is applied by source
8
8
  // offset so comments and unrelated declarations survive untouched, the result
9
9
  // is reparsed and validated, and only then does it atomically replace the file.
10
+ //
11
+ // Endpoints are addressed by **IR identity** when the caller quotes one (§6.2).
12
+ // A relationship names two elements, so a request built against a stale
13
+ // revision is a request to connect two things that may no longer be what the
14
+ // client thought they were — it is refused, loudly, rather than written against
15
+ // whatever now answers to those names.
16
+ //
17
+ // The notation is standard SysML, chosen in ./sysml-notation.ts: a succession
18
+ // is written `succession first a if g then b;`, not encoded as a MEMO-flavoured
19
+ // connection usage.
10
20
  // ─────────────────────────────────────────────────────────────────────────────
11
21
  import { existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, renameSync, unlinkSync, writeFileSync, } from 'node:fs';
12
22
  import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
13
23
  import { parseText } from '../model/parser-utils.js';
24
+ import { StaleIrIdentityError, } from '../model/ir-identity.js';
25
+ import { notationFor, notationIsNameable, renderRelationship, } from './sysml-notation.js';
14
26
  import { isConnectionUsage, isPackageDeclaration, } from '../language/generated/ast.js';
15
27
  // Project-layout conventions, not ontology semantics — these describe where a
16
28
  // MEMO project keeps its files, so they are overridable per project rather than
17
29
  // fixed in the engine.
18
30
  /** Default file used when the project has no better home for a relationship. */
19
- export const CANONICAL_RELATIONSHIP_FILE = 'model/relationships.sysml';
31
+ export const CANONICAL_RELATIONSHIP_FILE = 'model/catalog/relationships.sysml';
20
32
  /** Directory segments holding view/presentation SysML — never a relationship home. */
21
33
  export const DEFAULT_PRESENTATION_DIRS = ['views'];
22
34
  /** Filenames a package uses to collect its relationships. */
@@ -175,11 +187,15 @@ export function generateRelationshipId(type, sourceId, targetId, taken) {
175
187
  n++;
176
188
  return `${base}_${n}`;
177
189
  }
178
- /** Render the typed connection usage for a relationship. */
179
- export function generateRelationshipDeclaration(id, definition, sourceId, targetId) {
180
- return `connection ${id} : ${definition.sysmlName} connect ` +
181
- `${definition.sourceEnd.name} ::> ${sourceId} to ` +
182
- `${definition.targetEnd.name} ::> ${targetId};`;
190
+ /**
191
+ * Render a relationship as SysML source.
192
+ *
193
+ * The form comes from the language, not from this module — see
194
+ * `./sysml-notation.ts`. Kept as a named export because the shape "id,
195
+ * definition, endpoints" is what every caller has.
196
+ */
197
+ export function generateRelationshipDeclaration(id, definition, sourceId, targetId, flowItem, guard) {
198
+ return renderRelationship({ id, definition, sourceId, targetId, flowItem, guard });
183
199
  }
184
200
  // ─── Create ─────────────────────────────────────────────────────────────────
185
201
  /**
@@ -190,13 +206,24 @@ export function generateRelationshipDeclaration(id, definition, sourceId, target
190
206
  * not parse or does not contain the new connection.
191
207
  */
192
208
  export async function writeRelationship(request, definition, model, options) {
209
+ // Endpoint identities first: a request built against a revision that has
210
+ // moved on must not be written at all, so this precedes every file decision.
211
+ try {
212
+ assertFreshEndpoints(request, options.irIndex);
213
+ }
214
+ catch (e) {
215
+ if (e instanceof StaleIrIdentityError)
216
+ return { success: false, stale: true, error: e.message };
217
+ throw e;
218
+ }
193
219
  const placement = resolveRelationshipPlacement(request, model, options);
194
220
  if (!isWritableRelationshipFile(placement.file, options)) {
195
221
  return { success: false, error: `No writable project file can own this relationship (${placement.file})` };
196
222
  }
197
223
  const absolutePath = resolve(options.projectRoot, placement.file);
224
+ const notation = notationFor(definition);
198
225
  const relationshipId = generateRelationshipId(definition.name, request.sourceId, request.targetId, model.relationships.map(rel => rel.id));
199
- const declaration = generateRelationshipDeclaration(relationshipId, definition, request.sourceId, request.targetId);
226
+ const declaration = generateRelationshipDeclaration(relationshipId, definition, request.sourceId, request.targetId, request.flowItem, request.guard);
200
227
  let updated;
201
228
  if (!existsSync(absolutePath)) {
202
229
  updated = newRelationshipFile(placement.file, declaration);
@@ -216,7 +243,9 @@ export async function writeRelationship(request, definition, model, options) {
216
243
  error: `The updated source did not parse (${errors[0].message}); the file was left unchanged`,
217
244
  };
218
245
  }
219
- const written = findConnectionUsage(document.parseResult.value, relationshipId);
246
+ const written = notationIsNameable(notation)
247
+ ? findConnectionUsage(document.parseResult.value, relationshipId) !== undefined
248
+ : containsDeclaration(document.parseResult.value, updated, declaration);
220
249
  if (!written) {
221
250
  return {
222
251
  success: false,
@@ -232,11 +261,45 @@ export async function writeRelationship(request, definition, model, options) {
232
261
  return {
233
262
  success: true,
234
263
  sourceFile: placement.file,
235
- relationshipId,
264
+ // SysML's succession and flow productions take no declared name, so a
265
+ // relationship written in one is addressed by position. Reporting an ID
266
+ // it does not have would only make deletion fail later, further away.
267
+ ...(notationIsNameable(notation) ? { relationshipId } : {}),
268
+ notation,
236
269
  declaration,
237
270
  placementReason: placement.reason,
238
271
  };
239
272
  }
273
+ /**
274
+ * Refuse a request whose endpoints were named against an older revision.
275
+ *
276
+ * Only quoted identities are checked. A caller that quotes none is asking for
277
+ * the by-name behaviour it always had, and gets it — the loud failure is for
278
+ * callers that *did* name a revision and named a stale one, which is the case
279
+ * where continuing would connect the wrong elements.
280
+ */
281
+ function assertFreshEndpoints(request, index) {
282
+ const ends = [
283
+ ['source', request.sourceIdentity, request.sourceId],
284
+ ['target', request.targetIdentity, request.targetId],
285
+ ];
286
+ for (const [end, identityId, elementId] of ends) {
287
+ if (!identityId)
288
+ continue;
289
+ if (!index) {
290
+ throw new StaleIrIdentityError(identityId, 'no compiled revision is available to resolve the ' + end + ' endpoint against');
291
+ }
292
+ const record = index.byIdentity.get(identityId);
293
+ if (!record) {
294
+ throw new StaleIrIdentityError(identityId, `the ${end} endpoint is not in the current model revision`);
295
+ }
296
+ const named = record.memoElementId;
297
+ if (named !== elementId) {
298
+ throw new StaleIrIdentityError(identityId, `the ${end} endpoint now names ${named ? `"${named}"` : 'a declaration MEMO does not project'}, `
299
+ + `not "${elementId}"`);
300
+ }
301
+ }
302
+ }
240
303
  /** Body of a freshly created relationship file. */
241
304
  function newRelationshipFile(relativePath, declaration) {
242
305
  const packageName = relativePath
@@ -359,6 +422,32 @@ export async function removeRelationship(relationship, options) {
359
422
  return { success: true, sourceFile: relationship.file, removedDeclaration };
360
423
  }
361
424
  // ─── Shared helpers ─────────────────────────────────────────────────────────
425
+ /**
426
+ * Whether a parsed document contains exactly the declaration that was inserted.
427
+ *
428
+ * The confirmation for anonymous notations. A named connection can be looked up
429
+ * by name; a succession cannot, so the check is that some parsed node's own
430
+ * source range *is* the text that was inserted — which proves both that it
431
+ * survived the reparse and that the parser read it as one declaration rather
432
+ * than as a fragment of something larger.
433
+ */
434
+ function containsDeclaration(model, source, declaration) {
435
+ const wanted = declaration.trim();
436
+ const stack = [...(model.members ?? [])];
437
+ while (stack.length > 0) {
438
+ const node = stack.pop();
439
+ if (!node || typeof node !== 'object')
440
+ continue;
441
+ const cst = node.$cstNode;
442
+ if (cst && source.slice(cst.offset, cst.offset + cst.length).trim() === wanted)
443
+ return true;
444
+ if (Array.isArray(node.members))
445
+ stack.push(...node.members);
446
+ if (Array.isArray(node.body))
447
+ stack.push(...node.body);
448
+ }
449
+ return false;
450
+ }
362
451
  /** Depth-first search for a named connection usage anywhere in the document. */
363
452
  function findConnectionUsage(model, name) {
364
453
  const stack = [...(model.members ?? [])];
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-writer.js","sourceRoot":"","sources":["../../src/server/relationship-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-writer.js","sourceRoot":"","sources":["../../src/server/relationship-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { EffectiveRule } from '../model/methodology-resolver.js';
2
+ export interface RulePolicyRequest {
3
+ targetRuleType: string;
4
+ disposition: 'enabled' | 'disabled' | 'replaced';
5
+ severityOverride?: 'error' | 'warning' | 'info';
6
+ replacementRuleType?: string;
7
+ rationaleText: string;
8
+ authority?: string;
9
+ approvalReference?: string;
10
+ }
11
+ export interface RulePolicyRefusal {
12
+ code: 'unknown-rule' | 'invariant-not-tailorable' | 'missing-rationale' | 'missing-replacement' | 'replacement-not-resolvable';
13
+ message: string;
14
+ }
15
+ /**
16
+ * Check a tailoring decision against the rule it targets.
17
+ *
18
+ * Returns the refusal rather than throwing, so the caller can send it back to
19
+ * the editor as a diagnostic the user can act on.
20
+ */
21
+ export declare function checkRulePolicy(request: RulePolicyRequest, effectiveRules: readonly EffectiveRule[]): RulePolicyRefusal | undefined;
22
+ /**
23
+ * Render the `RulePolicy` usage.
24
+ *
25
+ * The target is named by narrowing the reference's TYPE — `ref :>> targetRule :
26
+ * X` — not by binding a value. Session 3 established that binding a value to a
27
+ * `constraint def` is not portable: SysIDE rejects it, because a value must be
28
+ * a feature and a definition is not.
29
+ */
30
+ export declare function renderRulePolicy(request: RulePolicyRequest, indent?: string): string;
31
+ /**
32
+ * Insert the rendered policy into a methodology definition's body.
33
+ *
34
+ * Appends inside the `MethodologyDefinition` usage the file declares, before
35
+ * its closing brace. Returns undefined when no such usage is found, so the
36
+ * caller reports a diagnostic instead of writing a policy into open space where
37
+ * it would parse but never apply.
38
+ */
39
+ export declare function insertRulePolicy(source: string, policy: string): string | undefined;
40
+ //# sourceMappingURL=rule-policy-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-policy-writer.d.ts","sourceRoot":"","sources":["../../src/server/rule-policy-writer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACjD,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EACE,cAAc,GACd,0BAA0B,GAC1B,mBAAmB,GACnB,qBAAqB,GACrB,4BAA4B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,SAAS,aAAa,EAAE,GACzC,iBAAiB,GAAG,SAAS,CA8C/B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAa,GAAG,MAAM,CAsBxF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAenF"}
@@ -0,0 +1,124 @@
1
+ // ─── Rule policy writer ───────────────────────────────────────────────────────
2
+ //
3
+ // Turn a tailoring decision made in Architect into `RulePolicy` SysML.
4
+ //
5
+ // The editor names a rule and a decision; this renders the SysML. That split is
6
+ // the point of "writing SysML through the command boundary" (section 18.4
7
+ // deliverable 8): the browser never composes model source, so a policy authored
8
+ // in the UI is the same construct, in the same file, subject to the same
9
+ // precondition checks, as one typed in SysIDE.
10
+ //
11
+ // The refusals below are section 10.2's, enforced here rather than in the UI —
12
+ // a check that lives in a React component is a suggestion, because the message
13
+ // can arrive from anywhere.
14
+ //
15
+ // Design reference: sections 10.1-10.3.
16
+ // ─────────────────────────────────────────────────────────────────────────────
17
+ /**
18
+ * Check a tailoring decision against the rule it targets.
19
+ *
20
+ * Returns the refusal rather than throwing, so the caller can send it back to
21
+ * the editor as a diagnostic the user can act on.
22
+ */
23
+ export function checkRulePolicy(request, effectiveRules) {
24
+ const target = effectiveRules.find(rule => rule.sourceRuleType === request.targetRuleType);
25
+ if (!target) {
26
+ return {
27
+ code: 'unknown-rule',
28
+ message: `No rule named ${request.targetRuleType} is in the effective rule set. `
29
+ + 'A policy may only target a rule the project actually resolves.',
30
+ };
31
+ }
32
+ // An invariant is the ontology's own floor. It can be changed in an
33
+ // ontology release, never by a downstream methodology — otherwise the
34
+ // guarantee it represents is not a guarantee.
35
+ if (target.tailoring === 'invariant' && request.disposition !== 'enabled') {
36
+ return {
37
+ code: 'invariant-not-tailorable',
38
+ message: `${request.targetRuleType} is an invariant. Invariants cannot be disabled or `
39
+ + 'replaced by a methodology; changing one requires an ontology release.',
40
+ };
41
+ }
42
+ // A tailoring decision without a rationale is an unattributable change to
43
+ // what the model is checked against. Section 10.2 refuses it.
44
+ if (request.disposition !== 'enabled' && !request.rationaleText.trim()) {
45
+ return {
46
+ code: 'missing-rationale',
47
+ message: 'A rule may not be disabled or replaced without a written rationale.',
48
+ };
49
+ }
50
+ if (request.disposition === 'replaced') {
51
+ if (!request.replacementRuleType?.trim()) {
52
+ return {
53
+ code: 'missing-replacement',
54
+ message: 'A `replaced` disposition must name the rule that replaces it.',
55
+ };
56
+ }
57
+ if (request.replacementRuleType === request.targetRuleType) {
58
+ return {
59
+ code: 'replacement-not-resolvable',
60
+ message: 'A rule cannot replace itself.',
61
+ };
62
+ }
63
+ }
64
+ return undefined;
65
+ }
66
+ /**
67
+ * Render the `RulePolicy` usage.
68
+ *
69
+ * The target is named by narrowing the reference's TYPE — `ref :>> targetRule :
70
+ * X` — not by binding a value. Session 3 established that binding a value to a
71
+ * `constraint def` is not portable: SysIDE rejects it, because a value must be
72
+ * a feature and a definition is not.
73
+ */
74
+ export function renderRulePolicy(request, indent = ' ') {
75
+ const usageName = `policy${request.targetRuleType.charAt(0).toUpperCase()}${request.targetRuleType.slice(1)}`;
76
+ const lines = [
77
+ `${indent}part ${usageName} : RulePolicy :> rulePolicy {`,
78
+ `${indent} ref :>> targetRule : ${request.targetRuleType};`,
79
+ `${indent} attribute :>> disposition = RuleDispositionKind::${request.disposition};`,
80
+ ];
81
+ if (request.disposition === 'replaced' && request.replacementRuleType) {
82
+ lines.push(`${indent} ref :>> replacementRule : ${request.replacementRuleType};`);
83
+ }
84
+ if (request.severityOverride) {
85
+ lines.push(`${indent} attribute :>> severityOverride = RuleSeverityKind::${request.severityOverride};`);
86
+ }
87
+ lines.push(`${indent} attribute :>> rationaleText = ${quote(request.rationaleText)};`);
88
+ if (request.authority) {
89
+ lines.push(`${indent} attribute :>> authority = ${quote(request.authority)};`);
90
+ }
91
+ if (request.approvalReference) {
92
+ lines.push(`${indent} attribute :>> approvalReference = ${quote(request.approvalReference)};`);
93
+ }
94
+ lines.push(`${indent}}`);
95
+ return lines.join('\n');
96
+ }
97
+ /**
98
+ * Insert the rendered policy into a methodology definition's body.
99
+ *
100
+ * Appends inside the `MethodologyDefinition` usage the file declares, before
101
+ * its closing brace. Returns undefined when no such usage is found, so the
102
+ * caller reports a diagnostic instead of writing a policy into open space where
103
+ * it would parse but never apply.
104
+ */
105
+ export function insertRulePolicy(source, policy) {
106
+ const lines = source.split('\n');
107
+ const start = lines.findIndex(line => /part\s+\w+\s*:\s*MethodologyDefinition\s*\{/.test(line));
108
+ if (start < 0)
109
+ return undefined;
110
+ let depth = 0;
111
+ for (let i = start; i < lines.length; i++) {
112
+ depth += (lines[i].match(/\{/g) ?? []).length;
113
+ depth -= (lines[i].match(/\}/g) ?? []).length;
114
+ if (depth === 0) {
115
+ lines.splice(i, 0, policy);
116
+ return lines.join('\n');
117
+ }
118
+ }
119
+ return undefined;
120
+ }
121
+ function quote(value) {
122
+ return JSON.stringify(value);
123
+ }
124
+ //# sourceMappingURL=rule-policy-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-policy-writer.js","sourceRoot":"","sources":["../../src/server/rule-policy-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare const RUNTIME_BUDGET_MS: {
2
+ readonly coldBootstrap: 5000;
3
+ readonly supervisedRestart: 5000;
4
+ readonly incrementalProjectRebuild: 500;
5
+ };
6
+ export type RuntimeBudgetPath = keyof typeof RUNTIME_BUDGET_MS;
7
+ /** Throw in CI when a measured runtime path exceeds its design ceiling. */
8
+ export declare function enforceRuntimeBudget(path: RuntimeBudgetPath, elapsedMs: number, ci?: boolean): {
9
+ path: RuntimeBudgetPath;
10
+ elapsedMs: number;
11
+ budgetMs: number;
12
+ passed: boolean;
13
+ };
14
+ //# sourceMappingURL=runtime-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-budget.d.ts","sourceRoot":"","sources":["../../src/server/runtime-budget.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,EAAE,UAAsD,GACzD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAOnF"}
@@ -0,0 +1,15 @@
1
+ export const RUNTIME_BUDGET_MS = {
2
+ coldBootstrap: 5_000,
3
+ supervisedRestart: 5_000,
4
+ incrementalProjectRebuild: 500,
5
+ };
6
+ /** Throw in CI when a measured runtime path exceeds its design ceiling. */
7
+ export function enforceRuntimeBudget(path, elapsedMs, ci = process.env.CI === 'true' || process.env.CI === '1') {
8
+ const budgetMs = RUNTIME_BUDGET_MS[path];
9
+ const result = { path, elapsedMs, budgetMs, passed: elapsedMs <= budgetMs };
10
+ if (!result.passed && ci) {
11
+ throw new Error(`${path} took ${elapsedMs.toFixed(1)}ms; budget is ${budgetMs}ms.`);
12
+ }
13
+ return result;
14
+ }
15
+ //# sourceMappingURL=runtime-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-budget.js","sourceRoot":"","sources":["../../src/server/runtime-budget.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,aAAa,EAAE,KAAK;IACpB,iBAAiB,EAAE,KAAK;IACxB,yBAAyB,EAAE,GAAG;CACxB,CAAC;AAIX,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAChC,IAAuB,EACvB,SAAiB,EACjB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG;IAExD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC;IAC5E,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,SAAS,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,QAAQ,KAAK,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { RelationshipDefinitionDTO } from '../model/relationship-legality.js';
2
+ /** The SysML production a relationship is written as. */
3
+ export type RelationshipNotation = 'succession' | 'flow' | 'connection';
4
+ export interface RelationshipNotationRequest {
5
+ /** Connection usage name, when the form carries one. */
6
+ id: string;
7
+ definition: RelationshipDefinitionDTO;
8
+ sourceId: string;
9
+ targetId: string;
10
+ /** Guard expression, for the forms that accept one. */
11
+ guard?: string;
12
+ /** Item or information carried, for the forms that accept one. */
13
+ flowItem?: string;
14
+ /** Indentation of the line the declaration will occupy. */
15
+ indent?: string;
16
+ }
17
+ /**
18
+ * Which notation to write this relationship in.
19
+ *
20
+ * The ontology names the SysML construct in `sysmlName`; a definition whose
21
+ * name is a native relationship metaclass is written in that form, and
22
+ * everything else is a typed connection usage, which is the general case.
23
+ */
24
+ export declare function notationFor(definition: RelationshipDefinitionDTO): RelationshipNotation;
25
+ /** True when the form gives the relationship a name of its own. */
26
+ export declare function notationIsNameable(notation: RelationshipNotation): boolean;
27
+ /**
28
+ * Render one relationship as SysML source.
29
+ *
30
+ * Anonymous forms are not a defect of this module: SysML's succession and flow
31
+ * productions do not take a declared name, so a relationship written in one is
32
+ * addressable by position rather than by ID. `writeRelationship` reports that
33
+ * back rather than inventing a name the language cannot carry.
34
+ */
35
+ export declare function renderRelationship(request: RelationshipNotationRequest): string;
36
+ //# sourceMappingURL=sysml-notation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sysml-notation.d.ts","sourceRoot":"","sources":["../../src/server/sysml-notation.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,2BAA2B;IACxC,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,yBAAyB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAcD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,yBAAyB,GAAG,oBAAoB,CAIvF;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAE1E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAU/E"}
@@ -0,0 +1,87 @@
1
+ // ─── Standard SysML textual notation for authored relationships ─────────────
2
+ //
3
+ // What the canvas writes when you draw an edge. One rule governs the whole
4
+ // module: **emit the notation the SysML v2 language already has for this
5
+ // relationship**, not a MEMO encoding of it. A succession drawn between two
6
+ // actions has to come out as `succession first a if g then b;`, because that is
7
+ // what a succession is in SysML — writing it as a typed `connection` would be a
8
+ // MEMO dialect that only MEMO can read back.
9
+ //
10
+ // Why the form table lives here rather than in the ontology: these are SysML
11
+ // *language productions*, fixed by the specification and by the grammar, not
12
+ // MEMO kinds. The ontology decides which relationships exist and what they may
13
+ // connect (`relationship-legality.ts` reads all of that from it); this module
14
+ // only decides how the chosen one is spelled. The one place the two meet is
15
+ // `notationFor`, which asks the ontology definition what native form it names
16
+ // and falls back to the general one.
17
+ // ─────────────────────────────────────────────────────────────────────────────
18
+ /**
19
+ * SysML metaclasses whose relationships have their own notation.
20
+ *
21
+ * Keyed by the metaclass the grammar produces, so the table and the parser
22
+ * cannot drift apart silently: a form named here that the grammar does not
23
+ * produce fails the notation round-trip test.
24
+ */
25
+ const NATIVE_FORMS = {
26
+ SuccessionUsage: 'succession',
27
+ FlowConnectionUsage: 'flow',
28
+ };
29
+ /**
30
+ * Which notation to write this relationship in.
31
+ *
32
+ * The ontology names the SysML construct in `sysmlName`; a definition whose
33
+ * name is a native relationship metaclass is written in that form, and
34
+ * everything else is a typed connection usage, which is the general case.
35
+ */
36
+ export function notationFor(definition) {
37
+ return NATIVE_FORMS[definition.sysmlName]
38
+ ?? NATIVE_FORMS[`${definition.sysmlName}Usage`]
39
+ ?? 'connection';
40
+ }
41
+ /** True when the form gives the relationship a name of its own. */
42
+ export function notationIsNameable(notation) {
43
+ return notation === 'connection';
44
+ }
45
+ /**
46
+ * Render one relationship as SysML source.
47
+ *
48
+ * Anonymous forms are not a defect of this module: SysML's succession and flow
49
+ * productions do not take a declared name, so a relationship written in one is
50
+ * addressable by position rather than by ID. `writeRelationship` reports that
51
+ * back rather than inventing a name the language cannot carry.
52
+ */
53
+ export function renderRelationship(request) {
54
+ const notation = notationFor(request.definition);
55
+ switch (notation) {
56
+ case 'succession':
57
+ return renderSuccession(request);
58
+ case 'flow':
59
+ return renderFlow(request);
60
+ default:
61
+ return renderConnection(request);
62
+ }
63
+ }
64
+ /** `succession first source [if guard] then target;` */
65
+ function renderSuccession(request) {
66
+ const guard = request.guard?.trim();
67
+ const first = guard ? `${request.sourceId} if ${guard}` : request.sourceId;
68
+ return `succession first ${first} then ${request.targetId};`;
69
+ }
70
+ /** `flow of Item from source to target;` */
71
+ function renderFlow(request) {
72
+ const item = request.flowItem?.trim() || request.definition.sourceEnd.type || 'Item';
73
+ return `flow of ${item} from ${request.sourceId} to ${request.targetId};`;
74
+ }
75
+ /** `connection id : Def connect srcEnd ::> source to tgtEnd ::> target;` */
76
+ function renderConnection(request) {
77
+ const { definition, sourceId, targetId } = request;
78
+ const head = `connection ${request.id} : ${definition.sysmlName} connect `
79
+ + `${definition.sourceEnd.name} ::> ${sourceId} to `
80
+ + `${definition.targetEnd.name} ::> ${targetId}`;
81
+ const item = request.flowItem?.trim();
82
+ if (!item)
83
+ return `${head};`;
84
+ const inner = `${request.indent ?? ' '} `;
85
+ return `${head} {\n${inner}attribute transportedItem = ${JSON.stringify(item)};\n${request.indent ?? ' '}}`;
86
+ }
87
+ //# sourceMappingURL=sysml-notation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sysml-notation.js","sourceRoot":"","sources":["../../src/server/sysml-notation.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,qCAAqC;AACrC,gFAAgF;AAqBhF;;;;;;GAMG;AACH,MAAM,YAAY,GAAyC;IACvD,eAAe,EAAE,YAAY;IAC7B,mBAAmB,EAAE,MAAM;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,UAAqC;IAC7D,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;WAClC,YAAY,CAAC,GAAG,UAAU,CAAC,SAAS,OAAO,CAAC;WAC5C,YAAY,CAAC;AACxB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,QAA8B;IAC7D,OAAO,QAAQ,KAAK,YAAY,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoC;IACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,YAAY;YACb,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,MAAM;YACP,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/B;YACI,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;AACL,CAAC;AAED,wDAAwD;AACxD,SAAS,gBAAgB,CAAC,OAAoC;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3E,OAAO,oBAAoB,KAAK,SAAS,OAAO,CAAC,QAAQ,GAAG,CAAC;AACjE,CAAC;AAED,4CAA4C;AAC5C,SAAS,UAAU,CAAC,OAAoC;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC;IACrF,OAAO,WAAW,IAAI,SAAS,OAAO,CAAC,QAAQ,OAAO,OAAO,CAAC,QAAQ,GAAG,CAAC;AAC9E,CAAC;AAED,4EAA4E;AAC5E,SAAS,gBAAgB,CAAC,OAAoC;IAC1D,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,IAAI,GAAG,cAAc,OAAO,CAAC,EAAE,MAAM,UAAU,CAAC,SAAS,WAAW;UACpE,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,QAAQ,MAAM;UAClD,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,QAAQ,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,IAAI,GAAG,CAAC;IAC7B,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,MAAM,CAAC;IAChD,OAAO,GAAG,IAAI,OAAO,KAAK,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC;AACnH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-layout-store.d.ts","sourceRoot":"","sources":["../../src/server/view-layout-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAUnD,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CAO/E;AAMD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAgB7F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAalE;AAeD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CA+B7G;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAO1G"}
1
+ {"version":3,"file":"view-layout-store.d.ts","sourceRoot":"","sources":["../../src/server/view-layout-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAUnD,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CAO/E;AAMD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAgB7F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAclE;AAeD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CA+B7G;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAO1G"}
@@ -50,6 +50,8 @@ export function isDefaultViewLayout(layout) {
50
50
  return false;
51
51
  if (Object.keys(layout.edges ?? {}).length > 0)
52
52
  return false;
53
+ if (Object.keys(layout.annotations ?? {}).length > 0)
54
+ return false;
53
55
  const canvas = layout.canvas;
54
56
  if (!canvas)
55
57
  return true;