@memoarchitect/tools 0.6.7 → 0.8.7

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 (549) hide show
  1. package/README.md +36 -11
  2. package/corpus/README.md +63 -0
  3. package/corpus/sysml-v2-release/bnf/SysML-graphical-bnf.kgbnf +2264 -0
  4. package/package.json +20 -7
  5. package/packages/tools/lib/analysis/dsm.d.ts +1 -1
  6. package/packages/tools/lib/analysis/dsm.d.ts.map +1 -1
  7. package/packages/tools/lib/analysis/dsm.js +1 -1
  8. package/packages/tools/lib/analysis/dsm.js.map +1 -1
  9. package/packages/tools/lib/bin/memo.js +186 -10
  10. package/packages/tools/lib/bin/memo.js.map +1 -1
  11. package/packages/tools/lib/browser/index.d.ts +3 -1
  12. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  13. package/packages/tools/lib/browser/index.js +2 -1
  14. package/packages/tools/lib/browser/index.js.map +1 -1
  15. package/packages/tools/lib/commands/ask.js +1 -1
  16. package/packages/tools/lib/commands/ask.js.map +1 -1
  17. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  18. package/packages/tools/lib/commands/check.js +3 -9
  19. package/packages/tools/lib/commands/check.js.map +1 -1
  20. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  21. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  22. package/packages/tools/lib/commands/conformance.js +212 -0
  23. package/packages/tools/lib/commands/conformance.js.map +1 -0
  24. package/packages/tools/lib/commands/convert.d.ts +12 -0
  25. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  26. package/packages/tools/lib/commands/convert.js +103 -0
  27. package/packages/tools/lib/commands/convert.js.map +1 -0
  28. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  29. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  30. package/packages/tools/lib/commands/create-package.js.map +1 -1
  31. package/packages/tools/lib/commands/dev.d.ts +13 -0
  32. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  33. package/packages/tools/lib/commands/dev.js +245 -89
  34. package/packages/tools/lib/commands/dev.js.map +1 -1
  35. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  36. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  37. package/packages/tools/lib/commands/dhf-lint.d.ts +10 -0
  38. package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -0
  39. package/packages/tools/lib/commands/dhf-lint.js +72 -0
  40. package/packages/tools/lib/commands/dhf-lint.js.map +1 -0
  41. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  42. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  43. package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
  44. package/packages/tools/lib/commands/dhf.js +8 -2
  45. package/packages/tools/lib/commands/dhf.js.map +1 -1
  46. package/packages/tools/lib/commands/element.d.ts +34 -0
  47. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  48. package/packages/tools/lib/commands/element.js +174 -0
  49. package/packages/tools/lib/commands/element.js.map +1 -0
  50. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  51. package/packages/tools/lib/commands/export.js +39 -40
  52. package/packages/tools/lib/commands/export.js.map +1 -1
  53. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  54. package/packages/tools/lib/commands/generate.js +10 -7
  55. package/packages/tools/lib/commands/generate.js.map +1 -1
  56. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  57. package/packages/tools/lib/commands/import.js +25 -12
  58. package/packages/tools/lib/commands/import.js.map +1 -1
  59. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  60. package/packages/tools/lib/commands/init.js +34 -14
  61. package/packages/tools/lib/commands/init.js.map +1 -1
  62. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  63. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  64. package/packages/tools/lib/commands/inspect.js +56 -0
  65. package/packages/tools/lib/commands/inspect.js.map +1 -0
  66. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  67. package/packages/tools/lib/commands/lock.js +7 -2
  68. package/packages/tools/lib/commands/lock.js.map +1 -1
  69. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  70. package/packages/tools/lib/commands/ontology.js +69 -116
  71. package/packages/tools/lib/commands/ontology.js.map +1 -1
  72. package/packages/tools/lib/commands/pack.d.ts +1 -1
  73. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  74. package/packages/tools/lib/commands/pack.js +20 -78
  75. package/packages/tools/lib/commands/pack.js.map +1 -1
  76. package/packages/tools/lib/commands/package.d.ts +10 -0
  77. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  78. package/packages/tools/lib/commands/package.js +113 -0
  79. package/packages/tools/lib/commands/package.js.map +1 -0
  80. package/packages/tools/lib/commands/plugin.js +1 -1
  81. package/packages/tools/lib/commands/plugin.js.map +1 -1
  82. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  83. package/packages/tools/lib/commands/rules.js +120 -30
  84. package/packages/tools/lib/commands/rules.js.map +1 -1
  85. package/packages/tools/lib/commands/standards.d.ts +28 -0
  86. package/packages/tools/lib/commands/standards.d.ts.map +1 -0
  87. package/packages/tools/lib/commands/standards.js +203 -0
  88. package/packages/tools/lib/commands/standards.js.map +1 -0
  89. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  90. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  91. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  92. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  93. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  94. package/packages/tools/lib/commands/toolchain.js +64 -0
  95. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  96. package/packages/tools/lib/commands/validate.d.ts +1 -1
  97. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  98. package/packages/tools/lib/commands/validate.js +194 -56
  99. package/packages/tools/lib/commands/validate.js.map +1 -1
  100. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  101. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  102. package/packages/tools/lib/completeness/tracker.js +16 -21
  103. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  104. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  105. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  106. package/packages/tools/lib/conformance/baseline.js +170 -0
  107. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  108. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  109. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  110. package/packages/tools/lib/conformance/bnf.js +166 -0
  111. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  112. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  113. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  114. package/packages/tools/lib/conformance/corpus.js +190 -0
  115. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  116. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  117. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  118. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  119. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  120. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  121. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  122. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  123. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  124. package/packages/tools/lib/conformance/index.d.ts +7 -0
  125. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  126. package/packages/tools/lib/conformance/index.js +19 -0
  127. package/packages/tools/lib/conformance/index.js.map +1 -0
  128. package/packages/tools/lib/conformance/run.d.ts +117 -0
  129. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  130. package/packages/tools/lib/conformance/run.js +0 -0
  131. package/packages/tools/lib/conformance/run.js.map +1 -0
  132. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  133. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  134. package/packages/tools/lib/conformance/xmi.js +148 -0
  135. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  136. package/packages/tools/lib/dhf/document-compiler.d.ts.map +1 -1
  137. package/packages/tools/lib/dhf/document-compiler.js +13 -8
  138. package/packages/tools/lib/dhf/document-compiler.js.map +1 -1
  139. package/packages/tools/lib/dhf/document-registry.d.ts +16 -2
  140. package/packages/tools/lib/dhf/document-registry.d.ts.map +1 -1
  141. package/packages/tools/lib/dhf/document-registry.js +74 -23
  142. package/packages/tools/lib/dhf/document-registry.js.map +1 -1
  143. package/packages/tools/lib/dhf/index.d.ts +3 -0
  144. package/packages/tools/lib/dhf/index.d.ts.map +1 -1
  145. package/packages/tools/lib/dhf/index.js +4 -0
  146. package/packages/tools/lib/dhf/index.js.map +1 -1
  147. package/packages/tools/lib/dhf/query-engine.d.ts +12 -1
  148. package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
  149. package/packages/tools/lib/dhf/query-engine.js +2 -1
  150. package/packages/tools/lib/dhf/query-engine.js.map +1 -1
  151. package/packages/tools/lib/dhf/query-executor.d.ts +72 -5
  152. package/packages/tools/lib/dhf/query-executor.d.ts.map +1 -1
  153. package/packages/tools/lib/dhf/query-executor.js +471 -81
  154. package/packages/tools/lib/dhf/query-executor.js.map +1 -1
  155. package/packages/tools/lib/dhf/script-runner.js +6 -6
  156. package/packages/tools/lib/dhf/script-runner.js.map +1 -1
  157. package/packages/tools/lib/dhf/standards-block.d.ts +40 -0
  158. package/packages/tools/lib/dhf/standards-block.d.ts.map +1 -0
  159. package/packages/tools/lib/dhf/standards-block.js +223 -0
  160. package/packages/tools/lib/dhf/standards-block.js.map +1 -0
  161. package/packages/tools/lib/dhf/standards-library.d.ts +123 -0
  162. package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -0
  163. package/packages/tools/lib/dhf/standards-library.js +295 -0
  164. package/packages/tools/lib/dhf/standards-library.js.map +1 -0
  165. package/packages/tools/lib/dhf/standards-report.d.ts +189 -0
  166. package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -0
  167. package/packages/tools/lib/dhf/standards-report.js +384 -0
  168. package/packages/tools/lib/dhf/standards-report.js.map +1 -0
  169. package/packages/tools/lib/dhf/template-lint.d.ts +42 -0
  170. package/packages/tools/lib/dhf/template-lint.d.ts.map +1 -0
  171. package/packages/tools/lib/dhf/template-lint.js +421 -0
  172. package/packages/tools/lib/dhf/template-lint.js.map +1 -0
  173. package/packages/tools/lib/dhf/template-resolver.d.ts.map +1 -1
  174. package/packages/tools/lib/dhf/template-resolver.js +18 -6
  175. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  176. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  177. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  178. package/packages/tools/lib/import/column-mapper.js +3 -3
  179. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  180. package/packages/tools/lib/importer/cameo-importer.js +2 -2
  181. package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
  182. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
  183. package/packages/tools/lib/importer/ea-importer.js +4 -3
  184. package/packages/tools/lib/importer/ea-importer.js.map +1 -1
  185. package/packages/tools/lib/importer/owl-importer.d.ts.map +1 -1
  186. package/packages/tools/lib/importer/owl-importer.js +2 -3
  187. package/packages/tools/lib/importer/owl-importer.js.map +1 -1
  188. package/packages/tools/lib/index.d.ts +20 -3
  189. package/packages/tools/lib/index.d.ts.map +1 -1
  190. package/packages/tools/lib/index.js +19 -2
  191. package/packages/tools/lib/index.js.map +1 -1
  192. package/packages/tools/lib/language/generated/ast.d.ts +1344 -99
  193. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  194. package/packages/tools/lib/language/generated/ast.js +1066 -32
  195. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  196. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  197. package/packages/tools/lib/language/generated/grammar.js +5242 -1454
  198. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  199. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  200. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  201. package/packages/tools/lib/llm/chat-engine.js +15 -12
  202. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  203. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  204. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  205. package/packages/tools/lib/llm/generate-engine.js +22 -4
  206. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  207. package/packages/tools/lib/llm/index.d.ts +1 -0
  208. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  209. package/packages/tools/lib/llm/index.js +1 -0
  210. package/packages/tools/lib/llm/index.js.map +1 -1
  211. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  212. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  213. package/packages/tools/lib/llm/model-context.js +7 -13
  214. package/packages/tools/lib/llm/model-context.js.map +1 -1
  215. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  216. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  217. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  218. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  219. package/packages/tools/lib/lock.d.ts +14 -8
  220. package/packages/tools/lib/lock.d.ts.map +1 -1
  221. package/packages/tools/lib/lock.js +97 -108
  222. package/packages/tools/lib/lock.js.map +1 -1
  223. package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
  224. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  225. package/packages/tools/lib/mcp/model-loader.js +9 -5
  226. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  227. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  228. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  229. package/packages/tools/lib/mcp/tools.js +8 -9
  230. package/packages/tools/lib/mcp/tools.js.map +1 -1
  231. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  232. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  233. package/packages/tools/lib/model/activity-notation.js +208 -0
  234. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  235. package/packages/tools/lib/model/builder.d.ts +3 -0
  236. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  237. package/packages/tools/lib/model/builder.js +956 -62
  238. package/packages/tools/lib/model/builder.js.map +1 -1
  239. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  240. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  241. package/packages/tools/lib/model/config-loader.js +51 -233
  242. package/packages/tools/lib/model/config-loader.js.map +1 -1
  243. package/packages/tools/lib/model/config.d.ts +42 -213
  244. package/packages/tools/lib/model/config.d.ts.map +1 -1
  245. package/packages/tools/lib/model/config.js +11 -9
  246. package/packages/tools/lib/model/config.js.map +1 -1
  247. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  248. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  249. package/packages/tools/lib/model/effective-scope.js +133 -0
  250. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  251. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  252. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  253. package/packages/tools/lib/model/ir-identity.js +178 -0
  254. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  255. package/packages/tools/lib/model/kind-registry.d.ts +134 -1
  256. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  257. package/packages/tools/lib/model/kind-registry.js +186 -4
  258. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  259. package/packages/tools/lib/model/layer-resolver.js +1 -1
  260. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  261. package/packages/tools/lib/model/manifest.d.ts +8 -0
  262. package/packages/tools/lib/model/manifest.d.ts.map +1 -1
  263. package/packages/tools/lib/model/manifest.js +3 -0
  264. package/packages/tools/lib/model/manifest.js.map +1 -1
  265. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  266. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  267. package/packages/tools/lib/model/methodology-loader.js +179 -176
  268. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  269. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  270. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  271. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  272. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  273. package/packages/tools/lib/model/naming.d.ts +57 -0
  274. package/packages/tools/lib/model/naming.d.ts.map +1 -0
  275. package/packages/tools/lib/model/naming.js +69 -0
  276. package/packages/tools/lib/model/naming.js.map +1 -0
  277. package/packages/tools/lib/model/native-project.d.ts +130 -0
  278. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  279. package/packages/tools/lib/model/native-project.js +580 -0
  280. package/packages/tools/lib/model/native-project.js.map +1 -0
  281. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  282. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  283. package/packages/tools/lib/model/ontology-loader.js +343 -614
  284. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  285. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  286. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  287. package/packages/tools/lib/model/package-manifest.js +96 -0
  288. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  289. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  290. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  291. package/packages/tools/lib/model/parser-utils.js +89 -1
  292. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  293. package/packages/tools/lib/model/paths.d.ts +10 -4
  294. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  295. package/packages/tools/lib/model/paths.js +10 -4
  296. package/packages/tools/lib/model/paths.js.map +1 -1
  297. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  298. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  299. package/packages/tools/lib/model/project-conversion.js +946 -0
  300. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  301. package/packages/tools/lib/model/relationship-legality.d.ts +27 -0
  302. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  303. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  304. package/packages/tools/lib/model/relationship-registry.d.ts +93 -1
  305. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  306. package/packages/tools/lib/model/relationship-registry.js +217 -2
  307. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  308. package/packages/tools/lib/model/semantic.d.ts +73 -0
  309. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  310. package/packages/tools/lib/model/semantic.js +6 -0
  311. package/packages/tools/lib/model/semantic.js.map +1 -1
  312. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  313. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  314. package/packages/tools/lib/model/settings-boundary.js +118 -0
  315. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  316. package/packages/tools/lib/model/short-id.js +3 -3
  317. package/packages/tools/lib/model/short-id.js.map +1 -1
  318. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  319. package/packages/tools/lib/model/source-graph.js +5 -1
  320. package/packages/tools/lib/model/source-graph.js.map +1 -1
  321. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  322. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  323. package/packages/tools/lib/model/source-provenance.js +169 -0
  324. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  325. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  326. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  327. package/packages/tools/lib/model/sysml-ir.js +105 -0
  328. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  329. package/packages/tools/lib/model/view-deriver.d.ts +10 -1
  330. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  331. package/packages/tools/lib/model/view-deriver.js +139 -11
  332. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  333. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  334. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  335. package/packages/tools/lib/model/view-kinds.js +11 -0
  336. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  337. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  338. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  339. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  340. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  341. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  342. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  343. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  344. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  345. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  346. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  347. package/packages/tools/lib/operations/authoring.js +56 -0
  348. package/packages/tools/lib/operations/authoring.js.map +1 -0
  349. package/packages/tools/lib/operations/index.d.ts +2 -0
  350. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  351. package/packages/tools/lib/operations/index.js +2 -0
  352. package/packages/tools/lib/operations/index.js.map +1 -1
  353. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  354. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  355. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  356. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  357. package/packages/tools/lib/protocol/messages.d.ts +381 -12
  358. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  359. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  360. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  361. package/packages/tools/lib/serializer/csv-io.js +11 -11
  362. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  363. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  364. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  365. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  366. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  367. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  368. package/packages/tools/lib/server/config-resolver.js +25 -44
  369. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  370. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  371. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  372. package/packages/tools/lib/server/conflict-policy.js +94 -0
  373. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  374. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  375. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  376. package/packages/tools/lib/server/dev-server.js +875 -54
  377. package/packages/tools/lib/server/dev-server.js.map +1 -1
  378. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  379. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  380. package/packages/tools/lib/server/element-writer.js +123 -0
  381. package/packages/tools/lib/server/element-writer.js.map +1 -0
  382. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  383. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  384. package/packages/tools/lib/server/file-watcher.js +17 -7
  385. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  386. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  387. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  388. package/packages/tools/lib/server/mutation-domain.js +87 -0
  389. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  390. package/packages/tools/lib/server/package-source.d.ts +26 -0
  391. package/packages/tools/lib/server/package-source.d.ts.map +1 -0
  392. package/packages/tools/lib/server/package-source.js +81 -0
  393. package/packages/tools/lib/server/package-source.js.map +1 -0
  394. package/packages/tools/lib/server/package-writer.d.ts +94 -0
  395. package/packages/tools/lib/server/package-writer.d.ts.map +1 -0
  396. package/packages/tools/lib/server/package-writer.js +317 -0
  397. package/packages/tools/lib/server/package-writer.js.map +1 -0
  398. package/packages/tools/lib/server/persistor.d.ts +81 -6
  399. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  400. package/packages/tools/lib/server/persistor.js +173 -44
  401. package/packages/tools/lib/server/persistor.js.map +1 -1
  402. package/packages/tools/lib/server/relationship-writer.d.ts +41 -5
  403. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  404. package/packages/tools/lib/server/relationship-writer.js +157 -13
  405. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  406. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  407. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  408. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  409. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  410. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  411. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  412. package/packages/tools/lib/server/runtime-budget.js +15 -0
  413. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  414. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  415. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  416. package/packages/tools/lib/server/sysml-notation.js +104 -0
  417. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  418. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  419. package/packages/tools/lib/server/view-layout-store.js +1 -0
  420. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  421. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  422. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  423. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  424. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  425. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  426. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  427. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  428. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  429. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  430. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  431. package/packages/tools/lib/sysml-ir/index.js +3 -0
  432. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  433. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  434. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  435. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  436. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  437. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  438. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  439. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  440. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  441. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  442. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  443. package/packages/tools/lib/sysmlc/index.js +7 -0
  444. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  445. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  446. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  447. package/packages/tools/lib/sysmlc/server.js +168 -0
  448. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  449. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  450. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  451. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  452. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  453. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  454. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  455. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  456. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  457. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  458. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  459. package/packages/tools/lib/toolchain/effective.js +91 -0
  460. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  461. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  462. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  463. package/packages/tools/lib/toolchain/index.js +21 -0
  464. package/packages/tools/lib/toolchain/index.js.map +1 -0
  465. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  466. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  467. package/packages/tools/lib/toolchain/lowering.js +100 -0
  468. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  469. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  470. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  471. package/packages/tools/lib/toolchain/operations.js +111 -0
  472. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  473. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  474. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  475. package/packages/tools/lib/toolchain/process.js +125 -0
  476. package/packages/tools/lib/toolchain/process.js.map +1 -0
  477. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  478. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  479. package/packages/tools/lib/toolchain/protocol.js +74 -0
  480. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  481. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  482. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  483. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  484. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  485. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  486. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  487. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  488. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  489. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  490. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  491. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  492. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  493. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  494. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  495. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  496. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  497. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  498. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  499. package/packages/tools/lib/toolchain/registry.js +130 -0
  500. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  501. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  502. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  503. package/packages/tools/lib/toolchain/schema.js +112 -0
  504. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  505. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  506. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  507. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  508. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  509. package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
  510. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  511. package/packages/tools/lib/validator/architecture-validator.js +25 -1
  512. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  513. package/packages/tools/lib/validator/behavior-validator.d.ts +1 -1
  514. package/packages/tools/lib/validator/behavior-validator.js +1 -1
  515. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  516. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  517. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  518. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  519. package/packages/tools/lib/validator/constraint-eval.d.ts +31 -0
  520. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  521. package/packages/tools/lib/validator/constraint-eval.js +164 -7
  522. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  523. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  524. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  525. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  526. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  527. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  528. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  529. package/packages/tools/lib/validator/rule-engine.js +56 -5
  530. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  531. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  532. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  533. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  534. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  535. package/packages/tools/lib/validator/types.d.ts +33 -0
  536. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  537. package/packages/tools/lib/version.d.ts +2 -0
  538. package/packages/tools/lib/version.d.ts.map +1 -0
  539. package/packages/tools/lib/version.js +26 -0
  540. package/packages/tools/lib/version.js.map +1 -0
  541. package/packages/tools/src/grammar/memo-sysml.langium +517 -41
  542. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  543. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  544. package/packages/tools/lib/model/dimension-filter.js +0 -57
  545. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  546. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  547. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  548. package/packages/tools/lib/model/toolchain.js +0 -92
  549. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -14,6 +14,17 @@ export interface NativeConstraint {
14
14
  expression: string;
15
15
  /** Severity when the expression is false for a subject. */
16
16
  severity: 'error' | 'warning' | 'info';
17
+ /** Named specialized evaluator selected by ontology metadata. */
18
+ evaluator?: string;
19
+ /**
20
+ * The `constraint def` name. A rule's stable ID is its audit identity; the
21
+ * def name is what a `RulePolicy` references, so both travel together.
22
+ */
23
+ typeName?: string;
24
+ /** Tailoring class from the rule's own `tailoring` attribute. */
25
+ tailoring?: 'invariant' | 'assurance' | 'methodology';
26
+ /** File the rule is declared in. */
27
+ sourceFile?: string;
17
28
  }
18
29
  /** Constraint metadata without the expression body — used by the AST entry point. */
19
30
  export type ConstraintMeta = Omit<NativeConstraint, 'expression'>;
@@ -52,6 +63,25 @@ type Node = {
52
63
  | {
53
64
  kind: 'allOfKind';
54
65
  kindName: string;
66
+ } | {
67
+ kind: 'acyclic';
68
+ relationshipType: string;
69
+ }
70
+ /** Elements standing at one declared end of every link of a relation. */
71
+ | {
72
+ kind: 'endsOf';
73
+ relationshipType: string;
74
+ side: 'source' | 'target';
75
+ }
76
+ /** The LINKS of a relation, as id-bearing values a quantifier can range over. */
77
+ | {
78
+ kind: 'linksOf';
79
+ relationshipType: string;
80
+ }
81
+ /** True when the current element's kind is, or specializes, a named kind. */
82
+ | {
83
+ kind: 'conformsTo';
84
+ kindName: string;
55
85
  } | {
56
86
  kind: 'method';
57
87
  target: Node;
@@ -85,6 +115,7 @@ type Node = {
85
115
  };
86
116
  /** Public alias for the evaluator AST node (the compiled form of a constraint body). */
87
117
  export type ConstraintNode = Node;
118
+ export declare function parseConstraintExpression(src: string): Node;
88
119
  /** Map a Langium-parsed constraint expression to the evaluator AST. */
89
120
  export declare function langiumExprToNode(expr: ConstraintExpr): Node;
90
121
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-eval.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-eval.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,13 @@
16
16
  // - Literals: integer, string ("…"), boolean.
17
17
  // - `subject` root reference and `allOfKind("Kind")` extent accessor — these give
18
18
  // uniqueAttribute-class rules a native form (EE-3 migration contract).
19
+ // - `sourcesOf(rel)` / `targetsOf(rel)` — the elements at one DECLARED end of a
20
+ // relation's links, and `conformsTo(Kind)` — SysML specialization conformance
21
+ // of the current element. Together these let a rule state what may sit at a
22
+ // relation's end, which is what the ontology asserted through end TYPES until
23
+ // the ends had to be relaxed for ports, behaviours, and actors (ARCADIA plan
24
+ // Track A0). They are generic operators; which relation and which kind come
25
+ // from the ontology rule, never from a table here.
19
26
  //
20
27
  // Navigation semantics (matches ClosureRule direction default 'any'):
21
28
  // a feature-chain segment resolves to a RELATIONSHIP (collection, either
@@ -26,7 +33,7 @@
26
33
  // ──────────────────────────────────────────────────────────────────────────────
27
34
  /** Evaluate one native constraint (expression as source string) against its subject kind. */
28
35
  export function evaluateNativeConstraint(constraint, model, kindRegistry) {
29
- const ast = parseExpression(constraint.expression);
36
+ const ast = parseConstraintExpression(constraint.expression);
30
37
  const { expression: _drop, ...meta } = constraint;
31
38
  return evaluateConstraintNode(meta, ast, model, kindRegistry);
32
39
  }
@@ -37,7 +44,7 @@ export function evaluateNativeConstraint(constraint, model, kindRegistry) {
37
44
  */
38
45
  export function evaluateConstraintNode(meta, ast, model, kindRegistry) {
39
46
  const evaluationModel = kindRegistry ? withSpecializationExtents(model, kindRegistry) : model;
40
- const subjects = evaluationModel.elementsByKind.get(meta.appliesToKind) ?? [];
47
+ const subjects = subjectsForScope(meta.appliesToKind, evaluationModel);
41
48
  const violations = [];
42
49
  for (const element of subjects) {
43
50
  const ok = toBool(evalNode(ast, { root: element, current: element }, evaluationModel));
@@ -55,6 +62,23 @@ export function evaluateConstraintNode(meta, ast, model, kindRegistry) {
55
62
  }
56
63
  return violations;
57
64
  }
65
+ /** Resolve `Kind` or `Kind[attribute=value]` scope declarations. */
66
+ function subjectsForScope(scope, model) {
67
+ if (scope === 'Model') {
68
+ return [{
69
+ id: '__model__', name: 'Model', kind: 'Model', construct: 'model',
70
+ layer: 'model', file: '', attributes: {},
71
+ }];
72
+ }
73
+ const match = /^([A-Za-z_]\w*)(?:\[([A-Za-z_]\w*)=([^\]]+)\])?$/.exec(scope);
74
+ if (!match)
75
+ return [];
76
+ const [, kind, attribute, expected] = match;
77
+ const extent = model.elementsByKind.get(kind) ?? [];
78
+ if (!attribute)
79
+ return extent;
80
+ return extent.filter(element => normalizeEnum(element.attributes[attribute] ?? '') === normalizeEnum(expected));
81
+ }
58
82
  /**
59
83
  * Add inherited kind extents for the duration of constraint evaluation. The
60
84
  * canonical model keeps exact-kind indexes; the evaluator's type extent uses
@@ -84,7 +108,7 @@ function withSpecializationExtents(model, kindRegistry) {
84
108
  const TYPED_FIELDS = new Set(['kind', 'layer', 'construct', 'allocatedTo', 'name', 'id', 'package', 'shortId']);
85
109
  function tokenize(src) {
86
110
  const tokens = [];
87
- const re = /\s*(->|==|!=|>=|<=|"[^"]*"|[<>()[\].+\-*/]|[A-Za-z_][A-Za-z0-9_]*|\d+)/y;
111
+ const re = /\s*(->|==|!=|>=|<=|"[^"]*"|'[^']*'|[<>()[\].+\-*/]|[A-Za-z_][A-Za-z0-9_]*|\d+)/y;
88
112
  let m;
89
113
  let pos = 0;
90
114
  while (pos < src.length) {
@@ -96,7 +120,7 @@ function tokenize(src) {
96
120
  const raw = m[1];
97
121
  if (/^\d+$/.test(raw))
98
122
  tokens.push({ t: 'int', v: raw });
99
- else if (raw[0] === '"')
123
+ else if (raw[0] === '"' || raw[0] === "'")
100
124
  tokens.push({ t: 'str', v: raw.slice(1, -1) });
101
125
  else if (/^[A-Za-z_]/.test(raw))
102
126
  tokens.push({ t: 'ident', v: raw });
@@ -111,7 +135,7 @@ function tokenize(src) {
111
135
  const KEYWORDS = new Set(['and', 'or', 'not', 'true', 'false']);
112
136
  const COLLECTION_OPS = new Set(['size', 'notEmpty', 'isEmpty']);
113
137
  const QUANTIFIER_OPS = new Set(['forAll', 'exists', 'select']);
114
- function parseExpression(src) {
138
+ export function parseConstraintExpression(src) {
115
139
  const tokens = tokenize(src);
116
140
  let i = 0;
117
141
  const peek = () => tokens[i];
@@ -221,6 +245,49 @@ function parseExpression(src) {
221
245
  expect(')');
222
246
  return { kind: 'allOfKind', kindName: arg.v };
223
247
  }
248
+ if (tok.v === 'acyclic') {
249
+ next();
250
+ expect('(');
251
+ const relationshipType = expect('ident').v;
252
+ expect(')');
253
+ return { kind: 'acyclic', relationshipType };
254
+ }
255
+ // `sourcesOf(rel)` / `targetsOf(rel)` quantify over the LINKS of a
256
+ // relation rather than over elements of one kind, which is what a
257
+ // rule about a relation's ends needs and what no element-scoped
258
+ // predicate can reach. Bare identifier argument, like `acyclic`.
259
+ if (tok.v === 'sourcesOf' || tok.v === 'targetsOf') {
260
+ const side = tok.v === 'sourcesOf' ? 'source' : 'target';
261
+ next();
262
+ expect('(');
263
+ const relationshipType = expect('ident').v;
264
+ expect(')');
265
+ return { kind: 'endsOf', relationshipType, side };
266
+ }
267
+ // `linksOf(rel)` ranges over the LINKS themselves, where `sourcesOf`
268
+ // and `targetsOf` range over the elements at their ends. A rule that
269
+ // has to match a link BY IDENTITY — rather than by what sits at
270
+ // either end — cannot be written with the other two. Generic: it
271
+ // knows no MEMO name, and which relation comes from the ontology.
272
+ if (tok.v === 'linksOf') {
273
+ next();
274
+ expect('(');
275
+ const relationshipType = expect('ident').v;
276
+ expect(')');
277
+ return { kind: 'linksOf', relationshipType };
278
+ }
279
+ // `conformsTo(Kind)` is SysML specialization, not kind equality:
280
+ // it holds for the named kind and everything that specializes it.
281
+ // Without it a rule could only compare `kind == "SoftwareModule"`,
282
+ // which is an enumeration of subtypes hardcoded in the ontology —
283
+ // the thing type-checking existed to avoid.
284
+ if (tok.v === 'conformsTo') {
285
+ next();
286
+ expect('(');
287
+ const kindName = expect('ident').v;
288
+ expect(')');
289
+ return { kind: 'conformsTo', kindName };
290
+ }
224
291
  if (KEYWORDS.has(tok.v))
225
292
  throw new Error(`Unexpected keyword '${tok.v}'`);
226
293
  return parseFeature();
@@ -260,6 +327,10 @@ function evalNode(node, env, model) {
260
327
  case 'str': return node.value;
261
328
  case 'feature': return resolveFeature(node.root === 'subject' ? env.root : env.current, node.segments, model);
262
329
  case 'allOfKind': return model.elementsByKind.get(node.kindName) ?? [];
330
+ case 'acyclic': return relationshipAcyclic(model, node.relationshipType);
331
+ case 'endsOf': return relationshipEnds(model, node.relationshipType, node.side);
332
+ case 'linksOf': return relationshipLinks(model, node.relationshipType);
333
+ case 'conformsTo': return kindExtent(model, node.kindName).has(env.current.id);
263
334
  case 'method': {
264
335
  const len = lengthOf(evalNode(node.target, env, model));
265
336
  if (node.name === 'size')
@@ -293,6 +364,86 @@ function evalNode(node, env, model) {
293
364
  case 'not': return !toBool(evalNode(node.operand, env, model));
294
365
  }
295
366
  }
367
+ /**
368
+ * The elements standing at one DECLARED end of every link of a relation.
369
+ *
370
+ * Directional on purpose, unlike {@link navigate}: a rule about what may sit at
371
+ * a relation's source end is a different statement from one about its target
372
+ * end, and reading both through the bidirectional name would make the two
373
+ * indistinguishable. Duplicates are dropped — an element that is the source of
374
+ * forty links is one subject for a type question.
375
+ */
376
+ /**
377
+ * The links of a relation, shaped so a quantifier can read `id`, `sourceId`,
378
+ * and `targetId` off them the same way it reads properties off an element.
379
+ * They are not elements and are never added to the model; this is a read-only
380
+ * projection for rules that must match a link by identity.
381
+ */
382
+ function relationshipLinks(model, relationshipType) {
383
+ const want = relationshipType.toLowerCase();
384
+ return model.relationships
385
+ .filter(r => r.type.toLowerCase() === want)
386
+ .map(r => ({
387
+ id: r.id, name: r.id, kind: r.type, construct: 'connection', layer: 'unknown',
388
+ file: r.file ?? '', attributes: { sourceId: r.sourceId, targetId: r.targetId, ...(r.attributes ?? {}) },
389
+ }));
390
+ }
391
+ function relationshipEnds(model, relationshipType, side) {
392
+ const want = relationshipType.toLowerCase();
393
+ const out = new Map();
394
+ for (const relationship of model.relationships) {
395
+ if (relationship.type.toLowerCase() !== want)
396
+ continue;
397
+ const element = model.elements.get(side === 'source' ? relationship.sourceId : relationship.targetId);
398
+ if (element)
399
+ out.set(element.id, element);
400
+ }
401
+ return [...out.values()];
402
+ }
403
+ /**
404
+ * Element ids conforming to a kind, including everything that specializes it.
405
+ *
406
+ * `elementsByKind` already carries the inherited extents when the caller passed
407
+ * a KindRegistry (see {@link withSpecializationExtents}); the exact-kind bucket
408
+ * is unioned in so a leaf kind with no subtypes still answers. Cached per model
409
+ * because a `->forAll(conformsTo(…))` asks the same question once per end.
410
+ */
411
+ const kindExtentCache = new WeakMap();
412
+ function kindExtent(model, kindName) {
413
+ let perModel = kindExtentCache.get(model);
414
+ if (!perModel)
415
+ kindExtentCache.set(model, perModel = new Map());
416
+ let extent = perModel.get(kindName);
417
+ if (!extent) {
418
+ extent = new Set((model.elementsByKind.get(kindName) ?? []).map(element => element.id));
419
+ perModel.set(kindName, extent);
420
+ }
421
+ return extent;
422
+ }
423
+ function relationshipAcyclic(model, relationshipType) {
424
+ const adjacency = new Map();
425
+ for (const relationship of model.relationships) {
426
+ if (relationship.type.toLowerCase() !== relationshipType.toLowerCase())
427
+ continue;
428
+ adjacency.set(relationship.sourceId, [...(adjacency.get(relationship.sourceId) ?? []), relationship.targetId]);
429
+ }
430
+ const visiting = new Set();
431
+ const visited = new Set();
432
+ const visit = (id) => {
433
+ if (visiting.has(id))
434
+ return false;
435
+ if (visited.has(id))
436
+ return true;
437
+ visiting.add(id);
438
+ for (const target of adjacency.get(id) ?? [])
439
+ if (!visit(target))
440
+ return false;
441
+ visiting.delete(id);
442
+ visited.add(id);
443
+ return true;
444
+ };
445
+ return [...adjacency.keys()].every(visit);
446
+ }
296
447
  /** True if `seg` names a relationship type, compared case-insensitively (keys are camelCase). */
297
448
  function isRelType(model, seg) {
298
449
  if (model.relationshipsByType.has(seg))
@@ -380,8 +531,8 @@ function navigate(subject, relType, model) {
380
531
  }
381
532
  function compare(op, l, r) {
382
533
  if (typeof l === 'string' || typeof r === 'string') {
383
- const ls = toStringValue(l);
384
- const rs = toStringValue(r);
534
+ const ls = normalizeEnum(toStringValue(l));
535
+ const rs = normalizeEnum(toStringValue(r));
385
536
  switch (op) {
386
537
  case '==': return ls === rs;
387
538
  case '!=': return ls !== rs;
@@ -402,6 +553,12 @@ function compare(op, l, r) {
402
553
  case '<': return ln < rn;
403
554
  }
404
555
  }
556
+ /** Compare enum values by literal, regardless of qualified storage form. */
557
+ function normalizeEnum(value) {
558
+ const trimmed = value.trim().replace(/^['"]|['"]$/g, '');
559
+ const separator = trimmed.lastIndexOf('::');
560
+ return separator >= 0 ? trimmed.slice(separator + 2) : trimmed;
561
+ }
405
562
  function isElement(v) {
406
563
  return typeof v === 'object' && !Array.isArray(v);
407
564
  }
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-eval.js","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-eval.js","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,qFAAqF;AACrF,sEAAsE;AACtE,EAAE;AACF,6EAA6E;AAC7E,kFAAkF;AAClF,8DAA8D;AAC9D,mFAAmF;AACnF,kFAAkF;AAClF,wDAAwD;AACxD,iFAAiF;AACjF,mCAAmC;AACnC,gDAAgD;AAChD,oFAAoF;AACpF,2EAA2E;AAC3E,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,kFAAkF;AAClF,iFAAiF;AACjF,gFAAgF;AAChF,uDAAuD;AACvD,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,oCAAoC;AACpC,iFAAiF;AAyCjF,6FAA6F;AAC7F,MAAM,UAAU,wBAAwB,CACpC,UAA4B,EAC5B,KAAgB,EAChB,YAA2B;IAE3B,MAAM,GAAG,GAAG,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;IAClD,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAClC,IAAoB,EACpB,GAAmB,EACnB,KAAgB,EAChB,YAA2B;IAE3B,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IACvE,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,UAAU,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,KAAK,EAAE,OAAO,CAAC,KAAK;aACvB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,KAAa,EAAE,KAAgB;IACrD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC;gBACJ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;gBACjE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;aAC3C,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpH,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,KAAgB,EAAE,YAA0B;IAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChB,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC;AA2CD,8EAA8E;AAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAMhH,SAAS,QAAQ,CAAC,GAAW;IACzB,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,iFAAiF,CAAC;IAC7F,IAAI,CAAyB,CAAC;IAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC;QACnB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5E,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QACnB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;aACpD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrF,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;;YAChE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,iFAAiF;AACjF,uFAAuF;AAEvF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,SAAS,OAAO;QACZ,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAAC,CAAC;QAC7G,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAAC,CAAC;QAC/G,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACvF,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAY,CAAC;YAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAY,CAAC;YAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;QAAC,CAAC;QACxG,OAAO,YAAY,EAAE,CAAC;IAC1B,CAAC;IACD,SAAS,YAAY;QACjB,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAuC,EAAE,CAAC;YAC3F,CAAC;iBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAsC,EAAE,IAAI,EAAE,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,KAAK,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,YAAY;QACjB,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;QACnB,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAAC,CAAC;QACrF,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC;QAAC,CAAC;QACvE,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAAC,CAAC;YACxG,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBACxB,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;gBACnB,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7F,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC;YACnD,CAAC;YACD,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YACjD,CAAC;YACD,mEAAmE;YACnE,kEAAkE;YAClE,gEAAgE;YAChE,iEAAiE;YACjE,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBACjD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACzD,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACtD,CAAC;YACD,qEAAqE;YACrE,qEAAqE;YACrE,gEAAgE;YAChE,iEAAiE;YACjE,kEAAkE;YAClE,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YACjD,CAAC;YACD,iEAAiE;YACjE,kEAAkE;YAClE,mEAAmE;YACnE,kEAAkE;YAClE,4CAA4C;YAC5C,IAAI,GAAG,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;gBACzB,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC5C,CAAC;YACD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3E,OAAO,YAAY,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,SAAS,YAAY;QACjB,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,CAAE,CAAC;QACxB,MAAM,IAAI,GAA0B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,QAAQ,GAAa,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,SAAS,CAAC;YACN,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC9E,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACzF,MAAM;QACV,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,SAAS,QAAQ,CAAC,IAAU,EAAE,GAAQ,EAAE,KAAgB;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QAC/B,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QAC9B,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QAC9B,KAAK,SAAS,CAAC,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9G,KAAK,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvE,KAAK,SAAS,CAAC,CAAC,OAAO,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,KAAK,SAAS,CAAC,CAAC,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvE,KAAK,YAAY,CAAC,CAAC,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/E,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,GAAG,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,GAAG,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU;QAChC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACvH,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACtH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1G,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACrD,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;gBACd,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QACD,0CAA0C;QAC1C,KAAK,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvG,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvG,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACtG,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAgB,EAAE,gBAAwB;IACjE,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,KAAK,CAAC,aAAa;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;QAC7E,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE;KAC1G,CAA2B,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAgB,EAAE,gBAAwB,EAAE,IAAyB;IAC3F,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI;YAAE,SAAS;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtG,IAAI,OAAO;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,IAAI,OAAO,EAAuC,CAAC;AAC3E,SAAS,UAAU,CAAC,KAAgB,EAAE,QAAgB;IAClD,IAAI,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ;QAAE,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgB,EAAE,gBAAwB;IACnE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,WAAW,EAAE;YAAE,SAAS;QACjF,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAW,EAAE;QAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,iGAAiG;AACjG,SAAS,SAAS,CAAC,KAAgB,EAAE,GAAW;IAC5C,IAAI,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IAC3F,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,yFAAyF;AACzF,SAAS,cAAc,CAAC,KAAkB,EAAE,QAAkB,EAAE,KAAgB;IAC5E,IAAI,GAAG,GAAU,KAAK,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,IAAI,GAAG,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAC5F,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;iBAAM,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAI,GAAqD,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,2EAA2E,CAAC,CAAC;YACjI,CAAC;YACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,QAAQ,CAAC,OAAoB,EAAE,OAAe,EAAE,KAAgB;IACrE,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,2EAA2E;IAC3E,0EAA0E;IAC1E,yDAAyD;IACzD,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,GAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,EAAS,EAAE,CAAQ,EAAE,CAAQ;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,QAAQ,EAAE,EAAE,CAAC;YACT,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YACzB,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,EAAE,CAAC;QACT,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7B,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CAAC,KAAa;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,CAAQ;IACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AACD,SAAS,YAAY,CAAC,CAAQ;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAClE,CAAC;AACD,6EAA6E;AAC7E,SAAS,QAAQ,CAAC,CAAQ;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AAC1F,CAAC;AACD,SAAS,MAAM,CAAC,CAAQ;IACpB,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,4CAA4C;IACvF,OAAO,IAAI,CAAC,CAAC,6BAA6B;AAC9C,CAAC;AACD,SAAS,QAAQ,CAAC,CAAQ;IACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,qCAAqC;IAC5E,OAAO,CAAC,CAAC;AACb,CAAC;AACD,SAAS,aAAa,CAAC,CAAQ;IAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,EAAE,CAAC;AAChB,CAAC;AAED,iFAAiF;AACjF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,0EAA0E;AAC1E,8EAA8E;AAE9E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhD,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IAClD,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5F,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACvD,CAAC;QACD,KAAK,cAAc;YACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,KAAK,cAAc,CAAC,CAAC,CAAC;YAClB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAqC,EAAE,CAAC;YACxH,CAAC;YACD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,mCAAmC,CAAC,CAAC;gBACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAoC,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9J,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,WAAW;YACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxH,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtH,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAW,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3H,CAAC;YACD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/H,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,10 +1,28 @@
1
1
  import type { ParsedDocument } from '../model/parser-utils.js';
2
2
  import type { CompiledConstraint } from './constraint-eval.js';
3
+ /** A rule that could not be loaded, or that conflicts with another rule. */
4
+ export interface ConstraintDiagnostic {
5
+ kind: 'compile-failed' | 'duplicate-id';
6
+ ruleId: string;
7
+ file: string;
8
+ message: string;
9
+ }
3
10
  /**
4
11
  * Walk all parsed documents and compile every native constraint def found.
5
- * De-duplicated by rule id: the same ontology file can appear in more than one
6
- * document set (ontology load + project parse), and a rule id is unique, so a
7
- * later occurrence replaces an earlier one rather than double-counting.
12
+ *
13
+ * De-duplication by rule id is legitimate for the SAME rule seen twice: the
14
+ * same ontology file appears in both the ontology load and the project parse.
15
+ * Two DIFFERENT rules sharing an id is a defect, and is reported rather than
16
+ * silently resolved by document order.
17
+ *
18
+ * A rule whose predicate fails to compile is skipped and reported. It used to
19
+ * throw, which took down the entire command: one malformed
20
+ * `predicateExpression` anywhere in a resolved dependency meant `memo validate`
21
+ * exited with a stack trace and validated nothing. A broken rule must be loud,
22
+ * but it must not be fatal — the other rules still have work to do.
23
+ *
24
+ * Callers are expected to surface `diagnostics`; a skipped rule that nobody
25
+ * reports is a silently disabled check, which is worse than a crash.
8
26
  */
9
- export declare function collectNativeConstraints(docs: ParsedDocument[]): CompiledConstraint[];
27
+ export declare function collectNativeConstraints(docs: ParsedDocument[], diagnostics?: ConstraintDiagnostic[]): CompiledConstraint[];
10
28
  //# sourceMappingURL=constraint-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-loader.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAYrF"}
1
+ {"version":3,"file":"constraint-loader.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,cAAc,EAAE,EACtB,WAAW,CAAC,EAAE,oBAAoB,EAAE,GACrC,kBAAkB,EAAE,CA0BtB"}