@memoarchitect/tools 0.7.2 → 0.8.8

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 (167) hide show
  1. package/README.md +1 -1
  2. package/corpus/README.md +63 -0
  3. package/corpus/sysml-v2-release/bnf/SysML-graphical-bnf.kgbnf +2264 -0
  4. package/package.json +4 -3
  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 +25 -0
  10. package/packages/tools/lib/bin/memo.js.map +1 -1
  11. package/packages/tools/lib/browser/index.d.ts +2 -0
  12. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  13. package/packages/tools/lib/browser/index.js +1 -0
  14. package/packages/tools/lib/browser/index.js.map +1 -1
  15. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  16. package/packages/tools/lib/commands/dev.js +37 -15
  17. package/packages/tools/lib/commands/dev.js.map +1 -1
  18. package/packages/tools/lib/commands/dhf-lint.d.ts +10 -0
  19. package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -0
  20. package/packages/tools/lib/commands/dhf-lint.js +72 -0
  21. package/packages/tools/lib/commands/dhf-lint.js.map +1 -0
  22. package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
  23. package/packages/tools/lib/commands/dhf.js +7 -1
  24. package/packages/tools/lib/commands/dhf.js.map +1 -1
  25. package/packages/tools/lib/commands/standards.d.ts +28 -0
  26. package/packages/tools/lib/commands/standards.d.ts.map +1 -0
  27. package/packages/tools/lib/commands/standards.js +203 -0
  28. package/packages/tools/lib/commands/standards.js.map +1 -0
  29. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  30. package/packages/tools/lib/commands/validate.js +13 -2
  31. package/packages/tools/lib/commands/validate.js.map +1 -1
  32. package/packages/tools/lib/dhf/document-compiler.d.ts.map +1 -1
  33. package/packages/tools/lib/dhf/document-compiler.js +13 -8
  34. package/packages/tools/lib/dhf/document-compiler.js.map +1 -1
  35. package/packages/tools/lib/dhf/document-registry.d.ts +16 -2
  36. package/packages/tools/lib/dhf/document-registry.d.ts.map +1 -1
  37. package/packages/tools/lib/dhf/document-registry.js +74 -23
  38. package/packages/tools/lib/dhf/document-registry.js.map +1 -1
  39. package/packages/tools/lib/dhf/index.d.ts +3 -0
  40. package/packages/tools/lib/dhf/index.d.ts.map +1 -1
  41. package/packages/tools/lib/dhf/index.js +4 -0
  42. package/packages/tools/lib/dhf/index.js.map +1 -1
  43. package/packages/tools/lib/dhf/query-engine.d.ts +12 -1
  44. package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
  45. package/packages/tools/lib/dhf/query-engine.js +2 -1
  46. package/packages/tools/lib/dhf/query-engine.js.map +1 -1
  47. package/packages/tools/lib/dhf/query-executor.d.ts +72 -5
  48. package/packages/tools/lib/dhf/query-executor.d.ts.map +1 -1
  49. package/packages/tools/lib/dhf/query-executor.js +471 -81
  50. package/packages/tools/lib/dhf/query-executor.js.map +1 -1
  51. package/packages/tools/lib/dhf/script-runner.js +6 -6
  52. package/packages/tools/lib/dhf/script-runner.js.map +1 -1
  53. package/packages/tools/lib/dhf/standards-block.d.ts +40 -0
  54. package/packages/tools/lib/dhf/standards-block.d.ts.map +1 -0
  55. package/packages/tools/lib/dhf/standards-block.js +223 -0
  56. package/packages/tools/lib/dhf/standards-block.js.map +1 -0
  57. package/packages/tools/lib/dhf/standards-library.d.ts +123 -0
  58. package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -0
  59. package/packages/tools/lib/dhf/standards-library.js +295 -0
  60. package/packages/tools/lib/dhf/standards-library.js.map +1 -0
  61. package/packages/tools/lib/dhf/standards-report.d.ts +189 -0
  62. package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -0
  63. package/packages/tools/lib/dhf/standards-report.js +384 -0
  64. package/packages/tools/lib/dhf/standards-report.js.map +1 -0
  65. package/packages/tools/lib/dhf/template-lint.d.ts +42 -0
  66. package/packages/tools/lib/dhf/template-lint.d.ts.map +1 -0
  67. package/packages/tools/lib/dhf/template-lint.js +421 -0
  68. package/packages/tools/lib/dhf/template-lint.js.map +1 -0
  69. package/packages/tools/lib/dhf/template-resolver.d.ts.map +1 -1
  70. package/packages/tools/lib/dhf/template-resolver.js +17 -5
  71. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  72. package/packages/tools/lib/importer/cameo-importer.js +2 -2
  73. package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
  74. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
  75. package/packages/tools/lib/importer/ea-importer.js +4 -3
  76. package/packages/tools/lib/importer/ea-importer.js.map +1 -1
  77. package/packages/tools/lib/importer/owl-importer.d.ts.map +1 -1
  78. package/packages/tools/lib/importer/owl-importer.js +2 -3
  79. package/packages/tools/lib/importer/owl-importer.js.map +1 -1
  80. package/packages/tools/lib/language/generated/ast.d.ts +1172 -54
  81. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  82. package/packages/tools/lib/language/generated/ast.js +967 -39
  83. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  84. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  85. package/packages/tools/lib/language/generated/grammar.js +3694 -425
  86. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  87. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  88. package/packages/tools/lib/model/builder.js +730 -48
  89. package/packages/tools/lib/model/builder.js.map +1 -1
  90. package/packages/tools/lib/model/kind-registry.d.ts +20 -0
  91. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  92. package/packages/tools/lib/model/kind-registry.js +38 -0
  93. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  94. package/packages/tools/lib/model/manifest.d.ts +8 -0
  95. package/packages/tools/lib/model/manifest.d.ts.map +1 -1
  96. package/packages/tools/lib/model/manifest.js +3 -0
  97. package/packages/tools/lib/model/manifest.js.map +1 -1
  98. package/packages/tools/lib/model/naming.d.ts +57 -0
  99. package/packages/tools/lib/model/naming.d.ts.map +1 -0
  100. package/packages/tools/lib/model/naming.js +69 -0
  101. package/packages/tools/lib/model/naming.js.map +1 -0
  102. package/packages/tools/lib/model/native-project.d.ts +10 -7
  103. package/packages/tools/lib/model/native-project.d.ts.map +1 -1
  104. package/packages/tools/lib/model/native-project.js +76 -21
  105. package/packages/tools/lib/model/native-project.js.map +1 -1
  106. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  107. package/packages/tools/lib/model/ontology-loader.js +3 -0
  108. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  109. package/packages/tools/lib/model/package-manifest.d.ts +4 -0
  110. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -1
  111. package/packages/tools/lib/model/package-manifest.js +2 -0
  112. package/packages/tools/lib/model/package-manifest.js.map +1 -1
  113. package/packages/tools/lib/model/relationship-legality.d.ts +17 -0
  114. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  115. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  116. package/packages/tools/lib/model/relationship-registry.d.ts +77 -0
  117. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  118. package/packages/tools/lib/model/relationship-registry.js +217 -2
  119. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  120. package/packages/tools/lib/model/semantic.d.ts +48 -0
  121. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  122. package/packages/tools/lib/model/semantic.js +3 -0
  123. package/packages/tools/lib/model/semantic.js.map +1 -1
  124. package/packages/tools/lib/model/settings-boundary.js +1 -1
  125. package/packages/tools/lib/model/settings-boundary.js.map +1 -1
  126. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  127. package/packages/tools/lib/model/short-id.js +1 -3
  128. package/packages/tools/lib/model/short-id.js.map +1 -1
  129. package/packages/tools/lib/model/view-deriver.d.ts +10 -1
  130. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  131. package/packages/tools/lib/model/view-deriver.js +104 -5
  132. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  133. package/packages/tools/lib/protocol/messages.d.ts +85 -3
  134. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  135. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  136. package/packages/tools/lib/server/dev-server.js +161 -5
  137. package/packages/tools/lib/server/dev-server.js.map +1 -1
  138. package/packages/tools/lib/server/package-source.d.ts +26 -0
  139. package/packages/tools/lib/server/package-source.d.ts.map +1 -0
  140. package/packages/tools/lib/server/package-source.js +81 -0
  141. package/packages/tools/lib/server/package-source.js.map +1 -0
  142. package/packages/tools/lib/server/package-writer.d.ts +94 -0
  143. package/packages/tools/lib/server/package-writer.d.ts.map +1 -0
  144. package/packages/tools/lib/server/package-writer.js +317 -0
  145. package/packages/tools/lib/server/package-writer.js.map +1 -0
  146. package/packages/tools/lib/server/persistor.d.ts +20 -0
  147. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  148. package/packages/tools/lib/server/persistor.js +29 -8
  149. package/packages/tools/lib/server/persistor.js.map +1 -1
  150. package/packages/tools/lib/server/relationship-writer.d.ts +13 -1
  151. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  152. package/packages/tools/lib/server/relationship-writer.js +59 -0
  153. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  154. package/packages/tools/lib/server/sysml-notation.d.ts +1 -1
  155. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -1
  156. package/packages/tools/lib/server/sysml-notation.js +17 -0
  157. package/packages/tools/lib/server/sysml-notation.js.map +1 -1
  158. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  159. package/packages/tools/lib/server/view-layout-store.js +1 -0
  160. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  161. package/packages/tools/lib/validator/behavior-validator.d.ts +1 -1
  162. package/packages/tools/lib/validator/behavior-validator.js +1 -1
  163. package/packages/tools/lib/validator/constraint-eval.d.ts +16 -0
  164. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  165. package/packages/tools/lib/validator/constraint-eval.js +102 -0
  166. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  167. package/packages/tools/src/grammar/memo-sysml.langium +425 -26
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
- <code>memo-tools 0.7.2</code> &middot; MIT &middot; SysML v2 &middot; ISO 14971 &middot; IEC 62304 &middot; ISO/IEC/IEEE 42010
12
+ <code>memo-tools 0.8.8</code> &middot; MIT &middot; SysML v2 &middot; ISO 14971 &middot; IEC 62304 &middot; ISO/IEC/IEEE 42010
13
13
  </p>
14
14
 
15
15
  <p align="center">
@@ -0,0 +1,63 @@
1
+ # Conformance corpus
2
+
3
+ Vendored artifacts from [`Systems-Modeling/SysML-v2-Release`](https://github.com/Systems-Modeling/SysML-v2-Release),
4
+ pinned to one commit and checksummed file by file. `memo conformance` reads
5
+ them; nothing else in the toolchain does.
6
+
7
+ Upstream paths are preserved verbatim, so every entry in
8
+ `sysml-v2-release/manifest.json` can be checked against the Release repository
9
+ by path and commit without consulting any script here.
10
+
11
+ ## What is here, and what each tree is for
12
+
13
+ | Tree | Oracle role |
14
+ | --- | --- |
15
+ | `sysml.library/` | Positive parse+link corpus — the normative libraries in textual form |
16
+ | `sysml.library.xmi/` | Declared semantics, before implication |
17
+ | `sysml.library.xmi.implied/` | **Differential oracle** — the reference implementation's own computed output, published as data |
18
+ | `sysml.library.kpar/` | The libraries as published KPARs |
19
+ | `bnf/*.kebnf` | Textual grammar — parser conformance target |
20
+ | `bnf/SysML-graphical-bnf.kgbnf` | Graphical grammar — notation conformance target |
21
+ | `sysml/src/`, `kerml/src/` | Regression corpus — the Release example models |
22
+
23
+ `manifest.json` records the pinned commit, its date, the library versions read
24
+ off the KPAR filenames, a SHA-256 per file, and one roll-up digest over all of
25
+ them. Every conformance result carries the commit and the digest, so a report
26
+ always says which Release it was taken against.
27
+
28
+ `baselines/` holds the frozen reports CI regresses against. They live beside the
29
+ corpus rather than with the test fixtures because a baseline is only meaningful
30
+ against one pin — keeping them together means moving the pin puts the stale
31
+ baseline in the same diff.
32
+
33
+ Neither directory is published: `files` in `package.json` is an allowlist and
34
+ lists neither.
35
+
36
+ ## Commands
37
+
38
+ ```bash
39
+ # re-vendor at the pinned commit
40
+ node scripts/vendor-corpus.mjs
41
+
42
+ # verify the working tree against the manifest, no network
43
+ node scripts/vendor-corpus.mjs --verify
44
+
45
+ # run the sweeps and compare against the frozen baselines
46
+ node scripts/check-conformance.mjs
47
+ ```
48
+
49
+ ## Moving the pin
50
+
51
+ Changing the commit changes what conformance means, so it is a deliberate act
52
+ with a reviewable diff:
53
+
54
+ ```bash
55
+ node scripts/vendor-corpus.mjs --commit <sha>
56
+ pnpm build
57
+ node packages/tools/lib/bin/memo.js conformance run --update-baseline
58
+ node packages/tools/lib/bin/memo.js conformance diff-xmi --update-baseline
59
+ ```
60
+
61
+ Also update `PINNED_COMMIT` in `scripts/vendor-corpus.mjs` so a plain re-vendor
62
+ reproduces the new pin. A baseline taken against a different pin is refused
63
+ rather than compared — a corpus bump must never read as a regression.