@memoarchitect/tools 0.6.7 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -11
- package/package.json +19 -7
- package/packages/tools/lib/bin/memo.js +161 -10
- package/packages/tools/lib/bin/memo.js.map +1 -1
- package/packages/tools/lib/browser/index.d.ts +1 -1
- package/packages/tools/lib/browser/index.d.ts.map +1 -1
- package/packages/tools/lib/browser/index.js +1 -1
- package/packages/tools/lib/browser/index.js.map +1 -1
- package/packages/tools/lib/commands/ask.js +1 -1
- package/packages/tools/lib/commands/ask.js.map +1 -1
- package/packages/tools/lib/commands/check.d.ts.map +1 -1
- package/packages/tools/lib/commands/check.js +3 -9
- package/packages/tools/lib/commands/check.js.map +1 -1
- package/packages/tools/lib/commands/conformance.d.ts +36 -0
- package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
- package/packages/tools/lib/commands/conformance.js +212 -0
- package/packages/tools/lib/commands/conformance.js.map +1 -0
- package/packages/tools/lib/commands/convert.d.ts +12 -0
- package/packages/tools/lib/commands/convert.d.ts.map +1 -0
- package/packages/tools/lib/commands/convert.js +103 -0
- package/packages/tools/lib/commands/convert.js.map +1 -0
- package/packages/tools/lib/commands/create-package.d.ts +1 -2
- package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
- package/packages/tools/lib/commands/create-package.js.map +1 -1
- package/packages/tools/lib/commands/dev.d.ts +13 -0
- package/packages/tools/lib/commands/dev.d.ts.map +1 -1
- package/packages/tools/lib/commands/dev.js +208 -74
- package/packages/tools/lib/commands/dev.js.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.js +1 -1
- package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
- package/packages/tools/lib/commands/dhf-preview.js +1 -1
- package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
- package/packages/tools/lib/commands/dhf.js +1 -1
- package/packages/tools/lib/commands/dhf.js.map +1 -1
- package/packages/tools/lib/commands/element.d.ts +34 -0
- package/packages/tools/lib/commands/element.d.ts.map +1 -0
- package/packages/tools/lib/commands/element.js +174 -0
- package/packages/tools/lib/commands/element.js.map +1 -0
- package/packages/tools/lib/commands/export.d.ts.map +1 -1
- package/packages/tools/lib/commands/export.js +39 -40
- package/packages/tools/lib/commands/export.js.map +1 -1
- package/packages/tools/lib/commands/generate.d.ts.map +1 -1
- package/packages/tools/lib/commands/generate.js +10 -7
- package/packages/tools/lib/commands/generate.js.map +1 -1
- package/packages/tools/lib/commands/import.d.ts.map +1 -1
- package/packages/tools/lib/commands/import.js +25 -12
- package/packages/tools/lib/commands/import.js.map +1 -1
- package/packages/tools/lib/commands/init.d.ts.map +1 -1
- package/packages/tools/lib/commands/init.js +34 -14
- package/packages/tools/lib/commands/init.js.map +1 -1
- package/packages/tools/lib/commands/inspect.d.ts +5 -0
- package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
- package/packages/tools/lib/commands/inspect.js +56 -0
- package/packages/tools/lib/commands/inspect.js.map +1 -0
- package/packages/tools/lib/commands/lock.d.ts.map +1 -1
- package/packages/tools/lib/commands/lock.js +7 -2
- package/packages/tools/lib/commands/lock.js.map +1 -1
- package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
- package/packages/tools/lib/commands/ontology.js +69 -116
- package/packages/tools/lib/commands/ontology.js.map +1 -1
- package/packages/tools/lib/commands/pack.d.ts +1 -1
- package/packages/tools/lib/commands/pack.d.ts.map +1 -1
- package/packages/tools/lib/commands/pack.js +20 -78
- package/packages/tools/lib/commands/pack.js.map +1 -1
- package/packages/tools/lib/commands/package.d.ts +10 -0
- package/packages/tools/lib/commands/package.d.ts.map +1 -0
- package/packages/tools/lib/commands/package.js +113 -0
- package/packages/tools/lib/commands/package.js.map +1 -0
- package/packages/tools/lib/commands/plugin.js +1 -1
- package/packages/tools/lib/commands/plugin.js.map +1 -1
- package/packages/tools/lib/commands/rules.d.ts.map +1 -1
- package/packages/tools/lib/commands/rules.js +120 -30
- package/packages/tools/lib/commands/rules.js.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.js +14 -16
- package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
- package/packages/tools/lib/commands/toolchain.d.ts +8 -0
- package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
- package/packages/tools/lib/commands/toolchain.js +64 -0
- package/packages/tools/lib/commands/toolchain.js.map +1 -0
- package/packages/tools/lib/commands/validate.d.ts +1 -1
- package/packages/tools/lib/commands/validate.d.ts.map +1 -1
- package/packages/tools/lib/commands/validate.js +183 -56
- package/packages/tools/lib/commands/validate.js.map +1 -1
- package/packages/tools/lib/completeness/tracker.d.ts +10 -2
- package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
- package/packages/tools/lib/completeness/tracker.js +16 -21
- package/packages/tools/lib/completeness/tracker.js.map +1 -1
- package/packages/tools/lib/conformance/baseline.d.ts +26 -0
- package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
- package/packages/tools/lib/conformance/baseline.js +170 -0
- package/packages/tools/lib/conformance/baseline.js.map +1 -0
- package/packages/tools/lib/conformance/bnf.d.ts +84 -0
- package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
- package/packages/tools/lib/conformance/bnf.js +166 -0
- package/packages/tools/lib/conformance/bnf.js.map +1 -0
- package/packages/tools/lib/conformance/corpus.d.ts +125 -0
- package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
- package/packages/tools/lib/conformance/corpus.js +190 -0
- package/packages/tools/lib/conformance/corpus.js.map +1 -0
- package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
- package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
- package/packages/tools/lib/conformance/diff-xmi.js +276 -0
- package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
- package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
- package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
- package/packages/tools/lib/conformance/index.d.ts +7 -0
- package/packages/tools/lib/conformance/index.d.ts.map +1 -0
- package/packages/tools/lib/conformance/index.js +19 -0
- package/packages/tools/lib/conformance/index.js.map +1 -0
- package/packages/tools/lib/conformance/run.d.ts +117 -0
- package/packages/tools/lib/conformance/run.d.ts.map +1 -0
- package/packages/tools/lib/conformance/run.js +0 -0
- package/packages/tools/lib/conformance/run.js.map +1 -0
- package/packages/tools/lib/conformance/xmi.d.ts +45 -0
- package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
- package/packages/tools/lib/conformance/xmi.js +148 -0
- package/packages/tools/lib/conformance/xmi.js.map +1 -0
- package/packages/tools/lib/dhf/template-resolver.js +1 -1
- package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
- package/packages/tools/lib/import/column-mapper.d.ts +2 -2
- package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
- package/packages/tools/lib/import/column-mapper.js +3 -3
- package/packages/tools/lib/import/column-mapper.js.map +1 -1
- package/packages/tools/lib/index.d.ts +20 -3
- package/packages/tools/lib/index.d.ts.map +1 -1
- package/packages/tools/lib/index.js +19 -2
- package/packages/tools/lib/index.js.map +1 -1
- package/packages/tools/lib/language/generated/ast.d.ts +196 -51
- package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
- package/packages/tools/lib/language/generated/ast.js +136 -15
- package/packages/tools/lib/language/generated/ast.js.map +1 -1
- package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
- package/packages/tools/lib/language/generated/grammar.js +867 -295
- package/packages/tools/lib/language/generated/grammar.js.map +1 -1
- package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
- package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
- package/packages/tools/lib/llm/chat-engine.js +15 -12
- package/packages/tools/lib/llm/chat-engine.js.map +1 -1
- package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
- package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
- package/packages/tools/lib/llm/generate-engine.js +22 -4
- package/packages/tools/lib/llm/generate-engine.js.map +1 -1
- package/packages/tools/lib/llm/index.d.ts +1 -0
- package/packages/tools/lib/llm/index.d.ts.map +1 -1
- package/packages/tools/lib/llm/index.js +1 -0
- package/packages/tools/lib/llm/index.js.map +1 -1
- package/packages/tools/lib/llm/model-context.d.ts +2 -2
- package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
- package/packages/tools/lib/llm/model-context.js +7 -13
- package/packages/tools/lib/llm/model-context.js.map +1 -1
- package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
- package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
- package/packages/tools/lib/llm/sysml-guidance.js +28 -0
- package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
- package/packages/tools/lib/lock.d.ts +14 -8
- package/packages/tools/lib/lock.d.ts.map +1 -1
- package/packages/tools/lib/lock.js +97 -108
- package/packages/tools/lib/lock.js.map +1 -1
- package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +9 -5
- package/packages/tools/lib/mcp/model-loader.js.map +1 -1
- package/packages/tools/lib/mcp/tools.d.ts +3 -0
- package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
- package/packages/tools/lib/mcp/tools.js +8 -9
- package/packages/tools/lib/mcp/tools.js.map +1 -1
- package/packages/tools/lib/model/activity-notation.d.ts +54 -0
- package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
- package/packages/tools/lib/model/activity-notation.js +208 -0
- package/packages/tools/lib/model/activity-notation.js.map +1 -0
- package/packages/tools/lib/model/builder.d.ts +3 -0
- package/packages/tools/lib/model/builder.d.ts.map +1 -1
- package/packages/tools/lib/model/builder.js +231 -19
- package/packages/tools/lib/model/builder.js.map +1 -1
- package/packages/tools/lib/model/config-loader.d.ts +19 -25
- package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/config-loader.js +51 -233
- package/packages/tools/lib/model/config-loader.js.map +1 -1
- package/packages/tools/lib/model/config.d.ts +42 -213
- package/packages/tools/lib/model/config.d.ts.map +1 -1
- package/packages/tools/lib/model/config.js +11 -9
- package/packages/tools/lib/model/config.js.map +1 -1
- package/packages/tools/lib/model/effective-scope.d.ts +74 -0
- package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
- package/packages/tools/lib/model/effective-scope.js +133 -0
- package/packages/tools/lib/model/effective-scope.js.map +1 -0
- package/packages/tools/lib/model/ir-identity.d.ts +94 -0
- package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
- package/packages/tools/lib/model/ir-identity.js +178 -0
- package/packages/tools/lib/model/ir-identity.js.map +1 -0
- package/packages/tools/lib/model/kind-registry.d.ts +114 -1
- package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/kind-registry.js +148 -4
- package/packages/tools/lib/model/kind-registry.js.map +1 -1
- package/packages/tools/lib/model/layer-resolver.js +1 -1
- package/packages/tools/lib/model/layer-resolver.js.map +1 -1
- package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
- package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-loader.js +179 -176
- package/packages/tools/lib/model/methodology-loader.js.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
- package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
- package/packages/tools/lib/model/methodology-resolver.js +317 -0
- package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
- package/packages/tools/lib/model/native-project.d.ts +130 -0
- package/packages/tools/lib/model/native-project.d.ts.map +1 -0
- package/packages/tools/lib/model/native-project.js +570 -0
- package/packages/tools/lib/model/native-project.js.map +1 -0
- package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
- package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/ontology-loader.js +340 -614
- package/packages/tools/lib/model/ontology-loader.js.map +1 -1
- package/packages/tools/lib/model/package-manifest.d.ts +37 -0
- package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
- package/packages/tools/lib/model/package-manifest.js +96 -0
- package/packages/tools/lib/model/package-manifest.js.map +1 -0
- package/packages/tools/lib/model/parser-utils.d.ts +31 -0
- package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
- package/packages/tools/lib/model/parser-utils.js +89 -1
- package/packages/tools/lib/model/parser-utils.js.map +1 -1
- package/packages/tools/lib/model/paths.d.ts +10 -4
- package/packages/tools/lib/model/paths.d.ts.map +1 -1
- package/packages/tools/lib/model/paths.js +10 -4
- package/packages/tools/lib/model/paths.js.map +1 -1
- package/packages/tools/lib/model/project-conversion.d.ts +226 -0
- package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
- package/packages/tools/lib/model/project-conversion.js +946 -0
- package/packages/tools/lib/model/project-conversion.js.map +1 -0
- package/packages/tools/lib/model/relationship-legality.d.ts +10 -0
- package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-legality.js.map +1 -1
- package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
- package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-registry.js.map +1 -1
- package/packages/tools/lib/model/semantic.d.ts +27 -0
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js +3 -0
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
- package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
- package/packages/tools/lib/model/settings-boundary.js +118 -0
- package/packages/tools/lib/model/settings-boundary.js.map +1 -0
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +2 -0
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
- package/packages/tools/lib/model/source-graph.js +5 -1
- package/packages/tools/lib/model/source-graph.js.map +1 -1
- package/packages/tools/lib/model/source-provenance.d.ts +112 -0
- package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
- package/packages/tools/lib/model/source-provenance.js +169 -0
- package/packages/tools/lib/model/source-provenance.js.map +1 -0
- package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
- package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
- package/packages/tools/lib/model/sysml-ir.js +105 -0
- package/packages/tools/lib/model/sysml-ir.js.map +1 -0
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +36 -6
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/model/view-kinds.d.ts +2 -0
- package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
- package/packages/tools/lib/model/view-kinds.js +11 -0
- package/packages/tools/lib/model/view-kinds.js.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
- package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js +12 -12
- package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
- package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
- package/packages/tools/lib/operations/ai-authoring.js +77 -0
- package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
- package/packages/tools/lib/operations/authoring.d.ts +40 -0
- package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
- package/packages/tools/lib/operations/authoring.js +56 -0
- package/packages/tools/lib/operations/authoring.js.map +1 -0
- package/packages/tools/lib/operations/index.d.ts +2 -0
- package/packages/tools/lib/operations/index.d.ts.map +1 -1
- package/packages/tools/lib/operations/index.js +2 -0
- package/packages/tools/lib/operations/index.js.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.js +79 -30
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +298 -11
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
- package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.js +11 -11
- package/packages/tools/lib/serializer/csv-io.js.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.js +34 -2
- package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
- package/packages/tools/lib/server/config-resolver.d.ts +8 -4
- package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
- package/packages/tools/lib/server/config-resolver.js +25 -44
- package/packages/tools/lib/server/config-resolver.js.map +1 -1
- package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
- package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
- package/packages/tools/lib/server/conflict-policy.js +94 -0
- package/packages/tools/lib/server/conflict-policy.js.map +1 -0
- package/packages/tools/lib/server/dev-server.d.ts +32 -2
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
- package/packages/tools/lib/server/dev-server.js +721 -53
- package/packages/tools/lib/server/dev-server.js.map +1 -1
- package/packages/tools/lib/server/element-writer.d.ts +11 -0
- package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/element-writer.js +123 -0
- package/packages/tools/lib/server/element-writer.js.map +1 -0
- package/packages/tools/lib/server/file-watcher.d.ts +4 -1
- package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
- package/packages/tools/lib/server/file-watcher.js +17 -7
- package/packages/tools/lib/server/file-watcher.js.map +1 -1
- package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
- package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
- package/packages/tools/lib/server/mutation-domain.js +87 -0
- package/packages/tools/lib/server/mutation-domain.js.map +1 -0
- package/packages/tools/lib/server/persistor.d.ts +63 -8
- package/packages/tools/lib/server/persistor.d.ts.map +1 -1
- package/packages/tools/lib/server/persistor.js +152 -44
- package/packages/tools/lib/server/persistor.js.map +1 -1
- package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
- package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.js +98 -13
- package/packages/tools/lib/server/relationship-writer.js.map +1 -1
- package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
- package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-policy-writer.js +124 -0
- package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
- package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
- package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
- package/packages/tools/lib/server/runtime-budget.js +15 -0
- package/packages/tools/lib/server/runtime-budget.js.map +1 -0
- package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
- package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
- package/packages/tools/lib/server/sysml-notation.js +87 -0
- package/packages/tools/lib/server/sysml-notation.js.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
- package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
- package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/index.js +3 -0
- package/packages/tools/lib/sysml-ir/index.js.map +1 -0
- package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
- package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/ir.js +2 -0
- package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
- package/packages/tools/lib/sysmlc/index.d.ts +2 -0
- package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/index.js +7 -0
- package/packages/tools/lib/sysmlc/index.js.map +1 -0
- package/packages/tools/lib/sysmlc/server.d.ts +29 -0
- package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/server.js +168 -0
- package/packages/tools/lib/sysmlc/server.js.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.js +28 -0
- package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
- package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
- package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/diagnostic.js +69 -0
- package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
- package/packages/tools/lib/toolchain/effective.d.ts +36 -0
- package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/effective.js +91 -0
- package/packages/tools/lib/toolchain/effective.js.map +1 -0
- package/packages/tools/lib/toolchain/index.d.ts +11 -0
- package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/index.js +21 -0
- package/packages/tools/lib/toolchain/index.js.map +1 -0
- package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
- package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/lowering.js +100 -0
- package/packages/tools/lib/toolchain/lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/operations.d.ts +87 -0
- package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/operations.js +111 -0
- package/packages/tools/lib/toolchain/operations.js.map +1 -0
- package/packages/tools/lib/toolchain/process.d.ts +45 -0
- package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/process.js +125 -0
- package/packages/tools/lib/toolchain/process.js.map +1 -0
- package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
- package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/protocol.js +74 -0
- package/packages/tools/lib/toolchain/protocol.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
- package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal.js +286 -0
- package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
- package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.js +208 -0
- package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
- package/packages/tools/lib/toolchain/registry.d.ts +192 -0
- package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/registry.js +130 -0
- package/packages/tools/lib/toolchain/registry.js.map +1 -0
- package/packages/tools/lib/toolchain/schema.d.ts +30 -0
- package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/schema.js +112 -0
- package/packages/tools/lib/toolchain/schema.js.map +1 -0
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
- package/packages/tools/lib/validator/architecture-validator.js +25 -1
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
- package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
- package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
- package/packages/tools/lib/validator/builtin-rules.js +62 -0
- package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.js +62 -7
- package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
- package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.js +100 -27
- package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
- package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-engine.js +56 -5
- package/packages/tools/lib/validator/rule-engine.js.map +1 -1
- package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
- package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
- package/packages/tools/lib/validator/sysml-constraints.js +251 -0
- package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
- package/packages/tools/lib/validator/types.d.ts +33 -0
- package/packages/tools/lib/validator/types.d.ts.map +1 -1
- package/packages/tools/lib/version.d.ts +2 -0
- package/packages/tools/lib/version.d.ts.map +1 -0
- package/packages/tools/lib/version.js +26 -0
- package/packages/tools/lib/version.js.map +1 -0
- package/packages/tools/src/grammar/memo-sysml.langium +104 -18
- package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
- package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
- package/packages/tools/lib/model/dimension-filter.js +0 -57
- package/packages/tools/lib/model/dimension-filter.js.map +0 -1
- package/packages/tools/lib/model/toolchain.d.ts +0 -12
- package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
- package/packages/tools/lib/model/toolchain.js +0 -92
- package/packages/tools/lib/model/toolchain.js.map +0 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { SYSIDE_RULES, SYSIDE_VERSION, type SysideRule } from '../conformance/generated/syside-rules.js';
|
|
2
|
+
import type { MemoModelDTO } from '../model/semantic.js';
|
|
3
|
+
export { SYSIDE_RULES, SYSIDE_VERSION };
|
|
4
|
+
/** One violation, in the shape a `sysml`-domain diagnostic is built from. */
|
|
5
|
+
export interface ConstraintViolation {
|
|
6
|
+
/** Syside's code, verbatim. */
|
|
7
|
+
code: string;
|
|
8
|
+
message: string;
|
|
9
|
+
elementId: string;
|
|
10
|
+
file: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SysmlConstraint {
|
|
13
|
+
/** Syside's code, verbatim — never a MEMO-invented identifier. */
|
|
14
|
+
code: string;
|
|
15
|
+
/** Specification clause this implements, e.g. `KerML 8.3.3.1`. */
|
|
16
|
+
clause: string;
|
|
17
|
+
/** Metaclass or MEMO construct the rule ranges over, for reporting. */
|
|
18
|
+
appliesTo: string;
|
|
19
|
+
/**
|
|
20
|
+
* What this implementation does *not* catch, where that is known.
|
|
21
|
+
*
|
|
22
|
+
* A partially-implemented rule reported as "implemented" is worse than an
|
|
23
|
+
* unimplemented one: it converts a gap into false confidence. Stating the
|
|
24
|
+
* limitation in the data means the scoreboard prints it, so the coverage
|
|
25
|
+
* number is never read as more than it is.
|
|
26
|
+
*/
|
|
27
|
+
limitation?: string;
|
|
28
|
+
check(model: MemoModelDTO): ConstraintViolation[];
|
|
29
|
+
}
|
|
30
|
+
/** Why a published code has no implementation here. */
|
|
31
|
+
export type UnimplementedReason = 'blocked' | 'out-of-scope' | 'not-yet';
|
|
32
|
+
export interface UnimplementedConstraint {
|
|
33
|
+
code: string;
|
|
34
|
+
reason: UnimplementedReason;
|
|
35
|
+
/** Required: an unexplained gap is indistinguishable from an oversight. */
|
|
36
|
+
detail: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const IMPLEMENTED_CONSTRAINTS: readonly SysmlConstraint[];
|
|
39
|
+
/**
|
|
40
|
+
* The reasons, keyed by prefix rather than enumerated one by one.
|
|
41
|
+
*
|
|
42
|
+
* Most of the 151 fall into a handful of buckets, and a bucket with a reason is
|
|
43
|
+
* more honest than 147 individual "not yet" entries that all mean the same
|
|
44
|
+
* thing. `classifyConstraints` applies these to whatever is not implemented.
|
|
45
|
+
*/
|
|
46
|
+
export declare const UNIMPLEMENTED_REASONS: readonly {
|
|
47
|
+
match: RegExp;
|
|
48
|
+
reason: UnimplementedReason;
|
|
49
|
+
detail: string;
|
|
50
|
+
}[];
|
|
51
|
+
export interface ConstraintScore {
|
|
52
|
+
sysideVersion: string;
|
|
53
|
+
total: number;
|
|
54
|
+
implemented: SysmlConstraint[];
|
|
55
|
+
unimplemented: UnimplementedConstraint[];
|
|
56
|
+
/** Implemented codes Syside does not publish — a code MEMO invented. */
|
|
57
|
+
unpublished: string[];
|
|
58
|
+
byReason: Record<UnimplementedReason, number>;
|
|
59
|
+
}
|
|
60
|
+
/** Score the implemented set against the published checklist. */
|
|
61
|
+
export declare function classifyConstraints(implemented?: readonly SysmlConstraint[], published?: readonly SysideRule[]): ConstraintScore;
|
|
62
|
+
/** Evaluate every implemented constraint against one model. */
|
|
63
|
+
export declare function checkSysmlConstraints(model: MemoModelDTO, constraints?: readonly SysmlConstraint[]): ConstraintViolation[];
|
|
64
|
+
//# sourceMappingURL=sysml-constraints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sysml-constraints.d.ts","sourceRoot":"","sources":["../../src/validator/sysml-constraints.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACzG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAExC,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAChC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC5B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAAC;CACrD;AAED,uDAAuD;AACvD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAClB;AA8BD,eAAO,MAAM,uBAAuB,EAAE,SAAS,eAAe,EA2H7D,CAAC;AAIF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAqB1G,CAAC;AAEF,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,aAAa,EAAE,uBAAuB,EAAE,CAAC;IACzC,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAC/B,WAAW,GAAE,SAAS,eAAe,EAA4B,EACjE,SAAS,GAAE,SAAS,UAAU,EAAiB,GAChD,eAAe,CAqBjB;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,YAAY,EACnB,WAAW,GAAE,SAAS,eAAe,EAA4B,GAClE,mBAAmB,EAAE,CAEvB"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// ─── SysML well-formedness constraints (Track B B4) ──────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// The native reimplementation of the language's own well-formedness rules, as
|
|
4
|
+
// distinct from MEMO's methodology rules. Three commitments shape it, and all
|
|
5
|
+
// three come from the plan rather than from taste:
|
|
6
|
+
//
|
|
7
|
+
// 1. **Syside's codes, verbatim** (§5.1.2). `syside rule list` publishes 151
|
|
8
|
+
// stable kebab-case codes with descriptions. A project that suppresses
|
|
9
|
+
// `association-end-types` today must have that suppression keep working
|
|
10
|
+
// after the engine swap, which it only can if the code string is the same
|
|
11
|
+
// string. No parallel MEMO numbering is invented.
|
|
12
|
+
// 2. **A specification clause per rule.** A constraint whose justification is
|
|
13
|
+
// "Syside checks this" is not reviewable. Each carries the KerML/SysML
|
|
14
|
+
// clause it implements, so a reader can check the rule against the source
|
|
15
|
+
// of truth rather than against another tool.
|
|
16
|
+
// 3. **Scored, not claimed.** `memo conformance rules` reports every one of
|
|
17
|
+
// the 151 codes as implemented, not-yet, or out-of-scope-with-a-reason.
|
|
18
|
+
// Coverage is a number that can only go up by writing a rule.
|
|
19
|
+
//
|
|
20
|
+
// **Where this sits relative to the rest of validation.** MEMO's methodology
|
|
21
|
+
// rules live in the ontology and are evaluated by `validator/rule-engine.ts`;
|
|
22
|
+
// they answer "does this model follow MEMO's method?". These answer "is this
|
|
23
|
+
// well-formed SysML?", which is the `sysml` diagnostic domain (§1), and they
|
|
24
|
+
// are engine code by necessity — the language's rules are not MEMO's content to
|
|
25
|
+
// declare. That is not a hole in the ontology-drives rule; it is the boundary
|
|
26
|
+
// of it.
|
|
27
|
+
//
|
|
28
|
+
// **What limits coverage today, stated once.** Most of the 151 are predicates
|
|
29
|
+
// over *resolved* semantics — inherited features, effective types, imported
|
|
30
|
+
// namespaces. MEMO has no linker and no resolution core yet (B3, B5), so a rule
|
|
31
|
+
// needing one cannot be written honestly, only faked. Those are classified
|
|
32
|
+
// `blocked` with the reason, and the number of them is the real measure of how
|
|
33
|
+
// much B3 and B5 gate B4.
|
|
34
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
35
|
+
import { SYSIDE_RULES, SYSIDE_VERSION } from '../conformance/generated/syside-rules.js';
|
|
36
|
+
import { activityNodeType, isControlNode } from '../model/activity-notation.js';
|
|
37
|
+
export { SYSIDE_RULES, SYSIDE_VERSION };
|
|
38
|
+
// ─── Implemented constraints ─────────────────────────────────────────────────
|
|
39
|
+
//
|
|
40
|
+
// Every one of these is a predicate over *declared* structure, which is the
|
|
41
|
+
// whole set that can be written honestly before the resolution core exists.
|
|
42
|
+
// They run over the canonical IR rather than over MEMO's projection, because
|
|
43
|
+
// the IR conserves every declaration — imports, duplicates, unmapped members —
|
|
44
|
+
// and the projection by design does not.
|
|
45
|
+
/** Namespace path of a declaration: its identity path minus the last segment. */
|
|
46
|
+
function namespaceOf(identityId) {
|
|
47
|
+
const hash = identityId.indexOf('#');
|
|
48
|
+
const colon = identityId.lastIndexOf(':');
|
|
49
|
+
const path = identityId.slice(hash + 1, colon);
|
|
50
|
+
const slash = path.lastIndexOf('/');
|
|
51
|
+
return `${identityId.slice(0, hash)}#${slash < 0 ? '' : path.slice(0, slash)}`;
|
|
52
|
+
}
|
|
53
|
+
/** True for a declaration sitting directly in a file's root namespace. */
|
|
54
|
+
function isTopLevel(identityId) {
|
|
55
|
+
const hash = identityId.indexOf('#');
|
|
56
|
+
const colon = identityId.lastIndexOf(':');
|
|
57
|
+
return !identityId.slice(hash + 1, colon).includes('/');
|
|
58
|
+
}
|
|
59
|
+
function declarations(model) {
|
|
60
|
+
return model.sysmlIr?.elements ?? [];
|
|
61
|
+
}
|
|
62
|
+
export const IMPLEMENTED_CONSTRAINTS = [
|
|
63
|
+
{
|
|
64
|
+
code: 'import-explicit-visibility',
|
|
65
|
+
clause: 'KerML 8.2.3.5 — an Import declares its visibility',
|
|
66
|
+
appliesTo: 'Import',
|
|
67
|
+
check(model) {
|
|
68
|
+
const violations = [];
|
|
69
|
+
for (const declaration of declarations(model)) {
|
|
70
|
+
if (declaration.identity.metaclass !== 'ImportDeclaration')
|
|
71
|
+
continue;
|
|
72
|
+
if (declaration.standardProperties.visibility !== undefined)
|
|
73
|
+
continue;
|
|
74
|
+
violations.push({
|
|
75
|
+
code: 'import-explicit-visibility',
|
|
76
|
+
message: `Import of "${String(declaration.standardProperties.path ?? '?')}" has no explicit visibility; declare it \`private\` or \`public\`.`,
|
|
77
|
+
elementId: declaration.identity.id,
|
|
78
|
+
file: declaration.source.file,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return violations;
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
code: 'import-top-level-visibility',
|
|
86
|
+
clause: 'KerML 8.2.3.5 — a root-namespace Import is private',
|
|
87
|
+
appliesTo: 'Import',
|
|
88
|
+
check(model) {
|
|
89
|
+
const violations = [];
|
|
90
|
+
for (const declaration of declarations(model)) {
|
|
91
|
+
if (declaration.identity.metaclass !== 'ImportDeclaration')
|
|
92
|
+
continue;
|
|
93
|
+
if (!isTopLevel(declaration.identity.id))
|
|
94
|
+
continue;
|
|
95
|
+
if (declaration.standardProperties.visibility === 'private')
|
|
96
|
+
continue;
|
|
97
|
+
violations.push({
|
|
98
|
+
code: 'import-top-level-visibility',
|
|
99
|
+
message: 'An import at the root of a file is private; it cannot re-export into the global namespace.',
|
|
100
|
+
elementId: declaration.identity.id,
|
|
101
|
+
file: declaration.source.file,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return violations;
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
code: 'namespace-distinguishability',
|
|
109
|
+
clause: 'KerML 8.2.3.3 — members of a Namespace are distinguishable by name',
|
|
110
|
+
appliesTo: 'Namespace',
|
|
111
|
+
check(model) {
|
|
112
|
+
const seen = new Map();
|
|
113
|
+
const violations = [];
|
|
114
|
+
for (const declaration of declarations(model)) {
|
|
115
|
+
const name = declaration.standardProperties.name;
|
|
116
|
+
if (typeof name !== 'string' || !name)
|
|
117
|
+
continue;
|
|
118
|
+
const key = `${namespaceOf(declaration.identity.id)}::${name}`;
|
|
119
|
+
const first = seen.get(key);
|
|
120
|
+
if (first === undefined) {
|
|
121
|
+
seen.set(key, declaration.identity.id);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
violations.push({
|
|
125
|
+
code: 'namespace-distinguishability',
|
|
126
|
+
message: `"${name}" is declared more than once in this namespace; the first is ${first}.`,
|
|
127
|
+
elementId: declaration.identity.id,
|
|
128
|
+
file: declaration.source.file,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return violations;
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
code: 'global-namespace-distinguishability',
|
|
136
|
+
clause: 'KerML 8.2.3.3 — root-namespace members are globally distinguishable',
|
|
137
|
+
appliesTo: 'Namespace',
|
|
138
|
+
// The IR records declarations, and a package is a namespace it recurses
|
|
139
|
+
// *into* rather than an element it records — so two files each opening
|
|
140
|
+
// `package Shared` are invisible here, which is the commonest form of
|
|
141
|
+
// this collision. Closing it means recording package declarations in
|
|
142
|
+
// the IR, which is an ingestion change, not a rule change.
|
|
143
|
+
limitation: 'Sees root-level members other than packages; two files declaring the same top-level package are not caught.',
|
|
144
|
+
check(model) {
|
|
145
|
+
const seen = new Map();
|
|
146
|
+
const violations = [];
|
|
147
|
+
for (const declaration of declarations(model)) {
|
|
148
|
+
const name = declaration.standardProperties.name;
|
|
149
|
+
if (typeof name !== 'string' || !name || !isTopLevel(declaration.identity.id))
|
|
150
|
+
continue;
|
|
151
|
+
// Across files, not within one: the global namespace is the
|
|
152
|
+
// project's, so two files declaring the same root-level name
|
|
153
|
+
// collide even though neither file collides with itself.
|
|
154
|
+
const first = seen.get(name);
|
|
155
|
+
if (first === undefined) {
|
|
156
|
+
seen.set(name, declaration.identity.id);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
violations.push({
|
|
160
|
+
code: 'global-namespace-distinguishability',
|
|
161
|
+
message: `"${name}" is declared at the root of more than one file; the first is ${first}.`,
|
|
162
|
+
elementId: declaration.identity.id,
|
|
163
|
+
file: declaration.source.file,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return violations;
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
code: 'control-node-owning-type',
|
|
171
|
+
clause: 'SysML 7.12.4.4 — a ControlNode is owned by an ActionDefinition or ActionUsage',
|
|
172
|
+
appliesTo: 'ControlNode',
|
|
173
|
+
check(model) {
|
|
174
|
+
const violations = [];
|
|
175
|
+
for (const element of Object.values(model.elements)) {
|
|
176
|
+
// Classification comes from the notation module, which resolves
|
|
177
|
+
// it against the generated metamodel — so this rule covers every
|
|
178
|
+
// present and future ControlNode subtype without naming any.
|
|
179
|
+
if (!isControlNode(element, model.registries))
|
|
180
|
+
continue;
|
|
181
|
+
const owner = element.parentAction ? model.elements[element.parentAction] : undefined;
|
|
182
|
+
if (owner && activityNodeType(owner, model.registries) !== undefined)
|
|
183
|
+
continue;
|
|
184
|
+
violations.push({
|
|
185
|
+
code: 'control-node-owning-type',
|
|
186
|
+
message: `Control node "${element.id}" is not owned by an action.`,
|
|
187
|
+
elementId: element.id,
|
|
188
|
+
file: element.file,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return violations;
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
];
|
|
195
|
+
// ─── Codes deliberately not implemented here ────────────────────────────────
|
|
196
|
+
/**
|
|
197
|
+
* The reasons, keyed by prefix rather than enumerated one by one.
|
|
198
|
+
*
|
|
199
|
+
* Most of the 151 fall into a handful of buckets, and a bucket with a reason is
|
|
200
|
+
* more honest than 147 individual "not yet" entries that all mean the same
|
|
201
|
+
* thing. `classifyConstraints` applies these to whatever is not implemented.
|
|
202
|
+
*/
|
|
203
|
+
export const UNIMPLEMENTED_REASONS = [
|
|
204
|
+
{
|
|
205
|
+
match: /specialization|subsetting|redefinition|conjugation|-types?$|feature-typing|inherit/,
|
|
206
|
+
reason: 'blocked',
|
|
207
|
+
detail: 'Needs resolved types and inherited features — the B3 resolution core.',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
match: /import|namespace|qualified|resolve|visibility/,
|
|
211
|
+
reason: 'blocked',
|
|
212
|
+
detail: 'Needs name resolution across a workspace index — B5.',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
match: /expression|evaluat|operator|literal|argument|parameter/,
|
|
216
|
+
reason: 'blocked',
|
|
217
|
+
detail: 'Needs model-level expression evaluation — B3, and `Expression::evaluate` is unsized.',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
match: /.*/,
|
|
221
|
+
reason: 'not-yet',
|
|
222
|
+
detail: 'Implementable on the current model; not written yet.',
|
|
223
|
+
},
|
|
224
|
+
];
|
|
225
|
+
/** Score the implemented set against the published checklist. */
|
|
226
|
+
export function classifyConstraints(implemented = IMPLEMENTED_CONSTRAINTS, published = SYSIDE_RULES) {
|
|
227
|
+
const done = new Map(implemented.map(constraint => [constraint.code, constraint]));
|
|
228
|
+
const publishedCodes = new Set(published.map(rule => rule.code));
|
|
229
|
+
const unimplemented = [];
|
|
230
|
+
const byReason = { blocked: 0, 'out-of-scope': 0, 'not-yet': 0 };
|
|
231
|
+
for (const rule of published) {
|
|
232
|
+
if (done.has(rule.code))
|
|
233
|
+
continue;
|
|
234
|
+
const bucket = UNIMPLEMENTED_REASONS.find(candidate => candidate.match.test(rule.code));
|
|
235
|
+
unimplemented.push({ code: rule.code, reason: bucket.reason, detail: bucket.detail });
|
|
236
|
+
byReason[bucket.reason] += 1;
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
sysideVersion: SYSIDE_VERSION,
|
|
240
|
+
total: published.length,
|
|
241
|
+
implemented: [...done.values()].filter(constraint => publishedCodes.has(constraint.code)),
|
|
242
|
+
unimplemented,
|
|
243
|
+
unpublished: [...done.keys()].filter(code => !publishedCodes.has(code)).sort(),
|
|
244
|
+
byReason,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/** Evaluate every implemented constraint against one model. */
|
|
248
|
+
export function checkSysmlConstraints(model, constraints = IMPLEMENTED_CONSTRAINTS) {
|
|
249
|
+
return constraints.flatMap(constraint => constraint.check(model));
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=sysml-constraints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sysml-constraints.js","sourceRoot":"","sources":["../../src/validator/sysml-constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SemanticElementProvenance } from '../model/source-provenance.js';
|
|
1
2
|
/** A single rule violation */
|
|
2
3
|
export interface Violation {
|
|
3
4
|
/** Closure rule id, e.g. "CR-MED-001" */
|
|
@@ -14,6 +15,38 @@ export interface Violation {
|
|
|
14
15
|
elementName: string;
|
|
15
16
|
/** CoSMA layer */
|
|
16
17
|
layer: string;
|
|
18
|
+
/** The declaration/classifier provenance of the violating element. */
|
|
19
|
+
provenance?: SemanticElementProvenance;
|
|
20
|
+
/**
|
|
21
|
+
* Where the rule that produced this violation came from, and what was done
|
|
22
|
+
* to it. Section 10.4: a violation names the active rule, the rule it
|
|
23
|
+
* replaced if any, the policy that changed it, the effective severity, and
|
|
24
|
+
* the rationale and approval behind the tailoring. A tailored rule that
|
|
25
|
+
* reports violations without saying it was tailored is not auditable.
|
|
26
|
+
*/
|
|
27
|
+
ruleProvenance?: ViolationRuleProvenance;
|
|
28
|
+
}
|
|
29
|
+
/** Rule-side provenance carried on every violation (section 10.4). */
|
|
30
|
+
export interface ViolationRuleProvenance {
|
|
31
|
+
/** Qualified name of the active rule's `constraint def`. */
|
|
32
|
+
activeRuleType: string;
|
|
33
|
+
/** Set when the active rule replaced a different one. */
|
|
34
|
+
baseRuleId?: string;
|
|
35
|
+
/** Severity the ontology authored, before any override. */
|
|
36
|
+
declaredSeverity: 'error' | 'warning' | 'info';
|
|
37
|
+
/** How far the rule may be tailored. */
|
|
38
|
+
tailoring: 'invariant' | 'assurance' | 'methodology';
|
|
39
|
+
/** Which methodology or binding changed it, in application order. */
|
|
40
|
+
policyChain: Array<{
|
|
41
|
+
source: string;
|
|
42
|
+
level: 'methodology' | 'project';
|
|
43
|
+
disposition: 'enabled' | 'disabled' | 'replaced';
|
|
44
|
+
}>;
|
|
45
|
+
rationaleText?: string;
|
|
46
|
+
authority?: string;
|
|
47
|
+
approvalReference?: string;
|
|
48
|
+
/** File declaring the rule. */
|
|
49
|
+
sourceFile?: string;
|
|
17
50
|
}
|
|
18
51
|
/** Validation result for the entire model */
|
|
19
52
|
export interface ValidationResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"AAEA,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACtB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACtB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACpC,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,gBAAgB,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,wCAAwC;IACxC,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;IACrD,qEAAqE;IACrE,WAAW,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;QACjC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;KACpD,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC7B,2BAA2B;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAC9B,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAgBA,wBAAgB,WAAW,IAAI,MAAM,CASpC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// ─── This build's version ────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Read from the package manifest rather than restated as a literal, so it
|
|
4
|
+
// cannot drift from what `scripts/sync-version.mjs` writes.
|
|
5
|
+
//
|
|
6
|
+
// It exists because a conformance result has to say which MEMO produced it —
|
|
7
|
+
// the same reason the result carries the Release commit. A number with no
|
|
8
|
+
// provenance on either side is not comparable to the next one.
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
import { readFileSync } from 'node:fs';
|
|
11
|
+
import { dirname, resolve } from 'node:path';
|
|
12
|
+
import { fileURLToPath } from 'node:url';
|
|
13
|
+
let cached;
|
|
14
|
+
export function memoVersion() {
|
|
15
|
+
if (cached)
|
|
16
|
+
return cached;
|
|
17
|
+
try {
|
|
18
|
+
const manifest = resolve(dirname(fileURLToPath(import.meta.url)), '../../../package.json');
|
|
19
|
+
cached = JSON.parse(readFileSync(manifest, 'utf-8')).version ?? 'unknown';
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
cached = 'unknown';
|
|
23
|
+
}
|
|
24
|
+
return cached;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,0EAA0E;AAC1E,4DAA4D;AAC5D,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,+DAA+D;AAC/D,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,MAA0B,CAAC;AAE/B,MAAM,UAAU,WAAW;IACvB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC3F,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAA0B,CAAC,OAAO,IAAI,SAAS,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,GAAG,SAAS,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
|