@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,29 @@
|
|
|
1
|
+
import { type Connection, type Diagnostic as LspDiagnostic } from 'vscode-languageserver/node.js';
|
|
2
|
+
import { type EmitIrParams, type EmitIrResponse, type ProtocolCapability } from '@memoarchitect/tools';
|
|
3
|
+
export declare const IMPLEMENTATION_NAME = "sysmlc";
|
|
4
|
+
export declare function protocolCapability(version?: string): ProtocolCapability;
|
|
5
|
+
export declare class SysmlcServer {
|
|
6
|
+
private readonly version?;
|
|
7
|
+
private readonly projects;
|
|
8
|
+
constructor(version?: string | undefined);
|
|
9
|
+
private state;
|
|
10
|
+
/**
|
|
11
|
+
* Answer `memo/emitIr`, or refuse to answer stale.
|
|
12
|
+
*
|
|
13
|
+
* The check happens after the work, not before it: a revision is superseded
|
|
14
|
+
* by whatever arrived *while* it was compiling, and that is precisely the
|
|
15
|
+
* window this rule exists to close. Handing back the finished-but-old model
|
|
16
|
+
* would put a picture on the canvas of a revision the user has already
|
|
17
|
+
* edited past, with nothing to tell them so.
|
|
18
|
+
*/
|
|
19
|
+
emitIr(params: EmitIrParams): Promise<EmitIrResponse>;
|
|
20
|
+
/** Syntax diagnostics for one open document, in LSP's own shape. */
|
|
21
|
+
documentDiagnostics(text: string): Promise<LspDiagnostic[]>;
|
|
22
|
+
/** Wire the server onto a connection. Split out so tests can drive it. */
|
|
23
|
+
listen(connection: Connection): void;
|
|
24
|
+
}
|
|
25
|
+
/** Entry point for `memo-sysmlc serve --stdio`. */
|
|
26
|
+
export declare function serveStdio(version?: string): void;
|
|
27
|
+
/** Read this package's own version, for `--version` and the handshake. */
|
|
28
|
+
export declare function packageVersion(): string | undefined;
|
|
29
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/sysmlc/server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAMH,KAAK,UAAU,EACf,KAAK,UAAU,IAAI,aAAa,EACnC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAQH,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAOvE;AAuCD,qBAAa,YAAY;IAGT,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAFrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;gBAE/B,OAAO,CAAC,EAAE,MAAM,YAAA;IAE7C,OAAO,CAAC,KAAK;IASb;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B3D,oEAAoE;IAC9D,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAcjE,0EAA0E;IAC1E,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;CAkCvC;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CASjD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAOnD"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// ─── memo-sysmlc serve --stdio ───────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// MEMO's compiler as a long-lived server. Node starts in 50–150 ms, which is
|
|
4
|
+
// fine once and hopeless on every save, so the process transport is a server
|
|
5
|
+
// that is spawned once and answers many revisions — and the protocol it speaks
|
|
6
|
+
// is LSP, because LSP already solved lifecycle, document synchronisation and
|
|
7
|
+
// cancellation, and because an editor that speaks it gets MEMO diagnostics
|
|
8
|
+
// without anyone writing a MEMO client.
|
|
9
|
+
//
|
|
10
|
+
// Exactly one request is added: `memo/emitIr`. Everything else here is standard
|
|
11
|
+
// LSP.
|
|
12
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
13
|
+
import { createHash } from 'node:crypto';
|
|
14
|
+
import { readFileSync, statSync } from 'node:fs';
|
|
15
|
+
import { resolve } from 'node:path';
|
|
16
|
+
import { fileURLToPath } from 'node:url';
|
|
17
|
+
import { createConnection, DiagnosticSeverity, ProposedFeatures, TextDocumentSyncKind, TextDocuments, } from 'vscode-languageserver/node.js';
|
|
18
|
+
import { TextDocument } from 'vscode-languageserver-textdocument';
|
|
19
|
+
import { EMIT_IR_REQUEST, PROTOCOL_CAPABILITY_KEY, SYSMLC_IR_VERSION, SYSMLC_PROTOCOL_VERSION, lowerProject, resolveSources, parseText, } from '@memoarchitect/tools';
|
|
20
|
+
export const IMPLEMENTATION_NAME = 'sysmlc';
|
|
21
|
+
export function protocolCapability(version) {
|
|
22
|
+
return {
|
|
23
|
+
protocolVersion: SYSMLC_PROTOCOL_VERSION,
|
|
24
|
+
irVersion: SYSMLC_IR_VERSION,
|
|
25
|
+
implementation: IMPLEMENTATION_NAME,
|
|
26
|
+
implementationVersion: version,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* What the project looks like on disk right now.
|
|
31
|
+
*
|
|
32
|
+
* Path, size and mtime of every source file. Deliberately not a content hash:
|
|
33
|
+
* this runs before every compile, and the point is to be cheaper than the
|
|
34
|
+
* compile it might avoid. A same-millisecond same-size edit would defeat it,
|
|
35
|
+
* which is why it only ever *skips work*, never decides an answer.
|
|
36
|
+
*/
|
|
37
|
+
function fingerprintProject(projectDir, files) {
|
|
38
|
+
const hash = createHash('sha256');
|
|
39
|
+
// The requested source list is part of the fingerprint, not just its
|
|
40
|
+
// contents: two requests against one directory with different file sets are
|
|
41
|
+
// different questions, and a cache that could not tell them apart would
|
|
42
|
+
// answer the second with the first one's model.
|
|
43
|
+
for (const file of resolveSources(projectDir, files)) {
|
|
44
|
+
try {
|
|
45
|
+
const stat = statSync(file);
|
|
46
|
+
hash.update(`${file}:${stat.size}:${stat.mtimeMs}\n`);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
hash.update(`${file}:missing\n`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return hash.digest('hex');
|
|
53
|
+
}
|
|
54
|
+
export class SysmlcServer {
|
|
55
|
+
version;
|
|
56
|
+
projects = new Map();
|
|
57
|
+
constructor(version) {
|
|
58
|
+
this.version = version;
|
|
59
|
+
}
|
|
60
|
+
state(projectDir) {
|
|
61
|
+
const key = resolve(projectDir);
|
|
62
|
+
const existing = this.projects.get(key);
|
|
63
|
+
if (existing)
|
|
64
|
+
return existing;
|
|
65
|
+
const created = { latestRequested: 0 };
|
|
66
|
+
this.projects.set(key, created);
|
|
67
|
+
return created;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Answer `memo/emitIr`, or refuse to answer stale.
|
|
71
|
+
*
|
|
72
|
+
* The check happens after the work, not before it: a revision is superseded
|
|
73
|
+
* by whatever arrived *while* it was compiling, and that is precisely the
|
|
74
|
+
* window this rule exists to close. Handing back the finished-but-old model
|
|
75
|
+
* would put a picture on the canvas of a revision the user has already
|
|
76
|
+
* edited past, with nothing to tell them so.
|
|
77
|
+
*/
|
|
78
|
+
async emitIr(params) {
|
|
79
|
+
const projectDir = resolve(params.projectDir);
|
|
80
|
+
const state = this.state(projectDir);
|
|
81
|
+
state.latestRequested = Math.max(state.latestRequested, params.revision);
|
|
82
|
+
const fingerprint = fingerprintProject(projectDir, params.files);
|
|
83
|
+
const ir = state.cached?.fingerprint === fingerprint
|
|
84
|
+
? state.cached.ir
|
|
85
|
+
: await lowerProject(projectDir, { files: params.files });
|
|
86
|
+
state.cached = { fingerprint, ir };
|
|
87
|
+
if (state.latestRequested > params.revision) {
|
|
88
|
+
return {
|
|
89
|
+
outcome: 'superseded',
|
|
90
|
+
protocolVersion: SYSMLC_PROTOCOL_VERSION,
|
|
91
|
+
revision: params.revision,
|
|
92
|
+
supersededBy: state.latestRequested,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
outcome: 'ir',
|
|
97
|
+
protocolVersion: SYSMLC_PROTOCOL_VERSION,
|
|
98
|
+
revision: params.revision,
|
|
99
|
+
ir,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/** Syntax diagnostics for one open document, in LSP's own shape. */
|
|
103
|
+
async documentDiagnostics(text) {
|
|
104
|
+
const { errors } = await parseText(text);
|
|
105
|
+
return errors.map(error => {
|
|
106
|
+
const line = Math.max(0, (error.line ?? 1) - 1);
|
|
107
|
+
const character = Math.max(0, (error.column ?? 1) - 1);
|
|
108
|
+
return {
|
|
109
|
+
severity: DiagnosticSeverity.Error,
|
|
110
|
+
range: { start: { line, character }, end: { line, character: character + 1 } },
|
|
111
|
+
message: error.message,
|
|
112
|
+
source: IMPLEMENTATION_NAME,
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/** Wire the server onto a connection. Split out so tests can drive it. */
|
|
117
|
+
listen(connection) {
|
|
118
|
+
const documents = new TextDocuments(TextDocument);
|
|
119
|
+
connection.onInitialize(() => ({
|
|
120
|
+
capabilities: {
|
|
121
|
+
textDocumentSync: TextDocumentSyncKind.Incremental,
|
|
122
|
+
experimental: { [PROTOCOL_CAPABILITY_KEY]: protocolCapability(this.version) },
|
|
123
|
+
},
|
|
124
|
+
serverInfo: { name: IMPLEMENTATION_NAME, version: this.version },
|
|
125
|
+
}));
|
|
126
|
+
// Editor-facing half: fast, local, advisory. §1.1 — the editor gives
|
|
127
|
+
// syntax errors while you type; it never refuses the edit.
|
|
128
|
+
documents.onDidChangeContent(async (change) => {
|
|
129
|
+
connection.sendDiagnostics({
|
|
130
|
+
uri: change.document.uri,
|
|
131
|
+
diagnostics: await this.documentDiagnostics(change.document.getText()),
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
documents.onDidClose(event => {
|
|
135
|
+
connection.sendDiagnostics({ uri: event.document.uri, diagnostics: [] });
|
|
136
|
+
});
|
|
137
|
+
// The one custom request. Lowering reads the revision on disk, which is
|
|
138
|
+
// the revision the canvas draws: MEMO saves before it redraws, and a
|
|
139
|
+
// model built from unsaved buffers would show something no file says.
|
|
140
|
+
connection.onRequest(EMIT_IR_REQUEST, (params) => this.emitIr(params));
|
|
141
|
+
connection.onShutdown(() => { this.projects.clear(); });
|
|
142
|
+
connection.onExit(() => process.exit(0));
|
|
143
|
+
documents.listen(connection);
|
|
144
|
+
connection.listen();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/** Entry point for `memo-sysmlc serve --stdio`. */
|
|
148
|
+
export function serveStdio(version) {
|
|
149
|
+
// stdout is the protocol channel. Anything written to it that is not a
|
|
150
|
+
// JSON-RPC message corrupts the stream, so stray logging goes to stderr.
|
|
151
|
+
console.log = console.error;
|
|
152
|
+
// A client that dies without saying goodbye closes the pipe. Outliving it
|
|
153
|
+
// would leave a compiler running with nobody to answer, so end of input is
|
|
154
|
+
// end of server — the same rule every language server follows.
|
|
155
|
+
process.stdin.on('close', () => process.exit(0));
|
|
156
|
+
new SysmlcServer(version).listen(createConnection(ProposedFeatures.all));
|
|
157
|
+
}
|
|
158
|
+
/** Read this package's own version, for `--version` and the handshake. */
|
|
159
|
+
export function packageVersion() {
|
|
160
|
+
try {
|
|
161
|
+
const path = fileURLToPath(new URL('../../../../package.json', import.meta.url));
|
|
162
|
+
return JSON.parse(readFileSync(path, 'utf8')).version;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/sysmlc/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProviderRegistry } from './registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build a registry with the providers that ship with MEMO.
|
|
4
|
+
*
|
|
5
|
+
* Order is registration order, which is the order roles are listed in. It
|
|
6
|
+
* carries no precedence: the default for a role is whichever descriptor claims
|
|
7
|
+
* `isDefault`, not whichever registered first.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createDefaultRegistry(): ProviderRegistry;
|
|
10
|
+
/** The registry commands use when they are not given one. */
|
|
11
|
+
export declare const defaultRegistry: ProviderRegistry;
|
|
12
|
+
//# sourceMappingURL=default-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-registry.d.ts","sourceRoot":"","sources":["../../src/toolchain/default-registry.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AASjD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAOxD;AAED,6DAA6D;AAC7D,eAAO,MAAM,eAAe,EAAE,gBAA0C,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// ─── The registration surface ────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// This is the whole of it. Adding a provider is one new adapter file plus one
|
|
4
|
+
// `register(...)` line here — a modularity test asserts exactly that, by
|
|
5
|
+
// registering a stub provider and checking nothing else had to change.
|
|
6
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
7
|
+
import { ProviderRegistry } from './registry.js';
|
|
8
|
+
import { internalLoweringDescriptor, internalPackageDescriptor, internalValidatorDescriptor, } from './providers/internal.js';
|
|
9
|
+
import { sysideValidatorDescriptor } from './providers/syside.js';
|
|
10
|
+
import { sysandPackageDescriptor } from './providers/sysand.js';
|
|
11
|
+
/**
|
|
12
|
+
* Build a registry with the providers that ship with MEMO.
|
|
13
|
+
*
|
|
14
|
+
* Order is registration order, which is the order roles are listed in. It
|
|
15
|
+
* carries no precedence: the default for a role is whichever descriptor claims
|
|
16
|
+
* `isDefault`, not whichever registered first.
|
|
17
|
+
*/
|
|
18
|
+
export function createDefaultRegistry() {
|
|
19
|
+
return new ProviderRegistry()
|
|
20
|
+
.register(internalValidatorDescriptor)
|
|
21
|
+
.register(internalLoweringDescriptor)
|
|
22
|
+
.register(internalPackageDescriptor)
|
|
23
|
+
.register(sysideValidatorDescriptor)
|
|
24
|
+
.register(sysandPackageDescriptor);
|
|
25
|
+
}
|
|
26
|
+
/** The registry commands use when they are not given one. */
|
|
27
|
+
export const defaultRegistry = createDefaultRegistry();
|
|
28
|
+
//# sourceMappingURL=default-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-registry.js","sourceRoot":"","sources":["../../src/toolchain/default-registry.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,uEAAuE;AACvE,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACjC,OAAO,IAAI,gBAAgB,EAAE;SACxB,QAAQ,CAAC,2BAA2B,CAAC;SACrC,QAAQ,CAAC,0BAA0B,CAAC;SACpC,QAAQ,CAAC,yBAAyB,CAAC;SACnC,QAAQ,CAAC,yBAAyB,CAAC;SACnC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAC3C,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAqB,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Who is complaining. See the table above — this drives canvas behaviour. */
|
|
2
|
+
export type DiagnosticDomain = 'sysml' | 'memo-ingest' | 'memo-methodology';
|
|
3
|
+
export type DiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
4
|
+
/** 1-based line and column, matching every tool's own numbering. */
|
|
5
|
+
export interface DiagnosticPosition {
|
|
6
|
+
line: number;
|
|
7
|
+
column: number;
|
|
8
|
+
}
|
|
9
|
+
export interface DiagnosticRange {
|
|
10
|
+
start: DiagnosticPosition;
|
|
11
|
+
/** Absent when the tool reported a point rather than a span. */
|
|
12
|
+
end?: DiagnosticPosition;
|
|
13
|
+
}
|
|
14
|
+
export interface Diagnostic {
|
|
15
|
+
domain: DiagnosticDomain;
|
|
16
|
+
/** Provider ID that produced this, e.g. the value of `toolchain.validator`. */
|
|
17
|
+
provider: string;
|
|
18
|
+
/** Version string the provider reported, when it reports one. */
|
|
19
|
+
providerVersion?: string;
|
|
20
|
+
severity: DiagnosticSeverity;
|
|
21
|
+
message: string;
|
|
22
|
+
/** Absolute path when the provider gave one; otherwise as the tool wrote it. */
|
|
23
|
+
file?: string;
|
|
24
|
+
range?: DiagnosticRange;
|
|
25
|
+
/**
|
|
26
|
+
* The provider's own stable rule code, carried through verbatim.
|
|
27
|
+
*
|
|
28
|
+
* `syside` publishes 151 kebab-case codes (`reference-error`,
|
|
29
|
+
* `accept-action-usage-parameters`, …). We do not renumber them into a
|
|
30
|
+
* parallel MEMO scheme: suppression and configuration are by code, and a
|
|
31
|
+
* project's suppressions have to survive both a provider upgrade and an
|
|
32
|
+
* eventual engine swap.
|
|
33
|
+
*/
|
|
34
|
+
code?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Default severity for a domain.
|
|
38
|
+
*
|
|
39
|
+
* A provider that reports its own severity always wins; this is for diagnostics
|
|
40
|
+
* MEMO itself synthesizes, where the domain is the only thing known.
|
|
41
|
+
*/
|
|
42
|
+
export declare function defaultSeverityForDomain(domain: DiagnosticDomain): DiagnosticSeverity;
|
|
43
|
+
/**
|
|
44
|
+
* One GNU-style line:
|
|
45
|
+
* `file:line:col: severity: message [code] [domain/provider]`
|
|
46
|
+
*
|
|
47
|
+
* The leading `file:line:col: severity:` prefix is what every editor and CI
|
|
48
|
+
* annotator already parses. The trailing brackets are additive, so a tool that
|
|
49
|
+
* only understands the GNU prefix still gets a usable line.
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatDiagnosticText(diagnostic: Diagnostic): string;
|
|
52
|
+
export declare function formatDiagnosticsText(diagnostics: readonly Diagnostic[]): string;
|
|
53
|
+
export declare function diagnosticsToJson(diagnostics: readonly Diagnostic[], pretty?: boolean): string;
|
|
54
|
+
/** Count by severity — used by commands deciding an exit code. */
|
|
55
|
+
export declare function countBySeverity(diagnostics: readonly Diagnostic[]): Record<DiagnosticSeverity, number>;
|
|
56
|
+
export declare function diagnosticsInDomain(diagnostics: readonly Diagnostic[], domain: DiagnosticDomain): Diagnostic[];
|
|
57
|
+
//# sourceMappingURL=diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/toolchain/diagnostic.ts"],"names":[],"mappings":"AAoBA,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,gEAAgE;IAChE,GAAG,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAMrF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUnE;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAEhF;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,UAAO,GAAG,MAAM,CAE3F;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAItG;AAED,wBAAgB,mBAAmB,CAC/B,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,MAAM,EAAE,gBAAgB,GACzB,UAAU,EAAE,CAEd"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// ─── Normalized toolchain diagnostics ────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// One diagnostic shape for every provider, in every role. A provider adapter
|
|
4
|
+
// parses its tool's output format; nothing downstream of the adapter ever sees
|
|
5
|
+
// that format again.
|
|
6
|
+
//
|
|
7
|
+
// The mandatory field is `domain`. It answers "whose complaint is this?", and
|
|
8
|
+
// that answer is what decides how the canvas behaves:
|
|
9
|
+
//
|
|
10
|
+
// sysml the selected validator rejected the source. Error.
|
|
11
|
+
// Keep the last good scene — there is nothing new to draw.
|
|
12
|
+
// memo-ingest the validator accepted it, MEMO could not lower it.
|
|
13
|
+
// Warning. Draw what was understood; never blank.
|
|
14
|
+
// memo-methodology valid SysML, MEMO rule violated. Info/warning.
|
|
15
|
+
// Draw normally and flag the element.
|
|
16
|
+
//
|
|
17
|
+
// Collapsing those three into one "error" list is the failure mode this type
|
|
18
|
+
// exists to prevent: `syside` says the file is fine and MEMO shows nothing.
|
|
19
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
+
/**
|
|
21
|
+
* Default severity for a domain.
|
|
22
|
+
*
|
|
23
|
+
* A provider that reports its own severity always wins; this is for diagnostics
|
|
24
|
+
* MEMO itself synthesizes, where the domain is the only thing known.
|
|
25
|
+
*/
|
|
26
|
+
export function defaultSeverityForDomain(domain) {
|
|
27
|
+
switch (domain) {
|
|
28
|
+
case 'sysml': return 'error';
|
|
29
|
+
case 'memo-ingest': return 'warning';
|
|
30
|
+
case 'memo-methodology': return 'info';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* One GNU-style line:
|
|
35
|
+
* `file:line:col: severity: message [code] [domain/provider]`
|
|
36
|
+
*
|
|
37
|
+
* The leading `file:line:col: severity:` prefix is what every editor and CI
|
|
38
|
+
* annotator already parses. The trailing brackets are additive, so a tool that
|
|
39
|
+
* only understands the GNU prefix still gets a usable line.
|
|
40
|
+
*/
|
|
41
|
+
export function formatDiagnosticText(diagnostic) {
|
|
42
|
+
const parts = [];
|
|
43
|
+
if (diagnostic.file) {
|
|
44
|
+
const { start } = diagnostic.range ?? {};
|
|
45
|
+
parts.push(start ? `${diagnostic.file}:${start.line}:${start.column}: ` : `${diagnostic.file}: `);
|
|
46
|
+
}
|
|
47
|
+
parts.push(`${diagnostic.severity}: ${diagnostic.message}`);
|
|
48
|
+
if (diagnostic.code)
|
|
49
|
+
parts.push(` [${diagnostic.code}]`);
|
|
50
|
+
parts.push(` [${diagnostic.domain}/${diagnostic.provider}]`);
|
|
51
|
+
return parts.join('');
|
|
52
|
+
}
|
|
53
|
+
export function formatDiagnosticsText(diagnostics) {
|
|
54
|
+
return diagnostics.map(formatDiagnosticText).join('\n');
|
|
55
|
+
}
|
|
56
|
+
export function diagnosticsToJson(diagnostics, pretty = true) {
|
|
57
|
+
return JSON.stringify(diagnostics, null, pretty ? 2 : undefined);
|
|
58
|
+
}
|
|
59
|
+
/** Count by severity — used by commands deciding an exit code. */
|
|
60
|
+
export function countBySeverity(diagnostics) {
|
|
61
|
+
const counts = { error: 0, warning: 0, info: 0 };
|
|
62
|
+
for (const d of diagnostics)
|
|
63
|
+
counts[d.severity] += 1;
|
|
64
|
+
return counts;
|
|
65
|
+
}
|
|
66
|
+
export function diagnosticsInDomain(diagnostics, domain) {
|
|
67
|
+
return diagnostics.filter(d => d.domain === domain);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=diagnostic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/toolchain/diagnostic.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,qBAAqB;AACrB,EAAE;AACF,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,0EAA0E;AAC1E,sEAAsE;AACtE,qEAAqE;AACrE,0DAA0D;AAC1D,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AA0ChF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAwB;IAC7D,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,aAAa,CAAC,CAAC,OAAO,SAAS,CAAC;QACrC,KAAK,kBAAkB,CAAC,CAAC,OAAO,MAAM,CAAC;IAC3C,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAsB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IACtG,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAkC;IACpE,OAAO,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAkC,EAAE,MAAM,GAAG,IAAI;IAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,WAAkC;IAC9D,MAAM,MAAM,GAAuC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACrF,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,WAAkC,EAClC,MAAwB;IAExB,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { MEMOConfig } from '../model/config.js';
|
|
2
|
+
import { type ProviderRegistry, type ProviderRole } from './registry.js';
|
|
3
|
+
export interface RoleSelection {
|
|
4
|
+
role: ProviderRole;
|
|
5
|
+
provider: string;
|
|
6
|
+
/** Where the value came from — useful in `memo config effective`. */
|
|
7
|
+
source: 'settings' | 'deprecated-alias' | 'default';
|
|
8
|
+
}
|
|
9
|
+
export interface EffectiveToolchain {
|
|
10
|
+
validator: string;
|
|
11
|
+
lowering: string;
|
|
12
|
+
packager: string;
|
|
13
|
+
selections: RoleSelection[];
|
|
14
|
+
/** One line per deprecated key that was honoured. */
|
|
15
|
+
deprecations: string[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Resolve every role.
|
|
19
|
+
*
|
|
20
|
+
* Precedence is explicit key, then the deprecated alias, then the registry's
|
|
21
|
+
* default.
|
|
22
|
+
*
|
|
23
|
+
* The alias fills both roles that split out of it — but only where the named
|
|
24
|
+
* provider is registered for the role. That caveat is not a hedge, it is the
|
|
25
|
+
* finding that forced the split: the best external validator available cannot
|
|
26
|
+
* emit IR at all, so "one tool does both" was never true of it. An alias that
|
|
27
|
+
* insisted on setting both would fail to resolve for exactly the configuration
|
|
28
|
+
* it exists to keep working. Where the named provider cannot fill a role, that
|
|
29
|
+
* role keeps its default and the deprecation note says which and why — which is
|
|
30
|
+
* what the pre-split code did anyway: run the external check, then lower with
|
|
31
|
+
* MEMO's own parser regardless.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveToolchain(config: MEMOConfig | undefined, registry: ProviderRegistry): EffectiveToolchain;
|
|
34
|
+
/** Per-provider settings block, as that provider's adapter should read it. */
|
|
35
|
+
export declare function providerSettings<T>(config: MEMOConfig | undefined, providerId: string): T | undefined;
|
|
36
|
+
//# sourceMappingURL=effective.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective.d.ts","sourceRoot":"","sources":["../../src/toolchain/effective.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAIH,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACpB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,QAAQ,EAAE,gBAAgB,GAC3B,kBAAkB,CA+DpB;AAWD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAGrG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// ─── Effective toolchain selection ───────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Turns a settings file into "which provider fills which role", with the
|
|
4
|
+
// deprecated `compiler` alias folded in and defaults taken from the registry
|
|
5
|
+
// rather than written here.
|
|
6
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
7
|
+
import { DEPRECATED_COMPILER_SETTING, PROVIDER_ROLES, ROLE_SETTING, } from './registry.js';
|
|
8
|
+
/**
|
|
9
|
+
* Resolve every role.
|
|
10
|
+
*
|
|
11
|
+
* Precedence is explicit key, then the deprecated alias, then the registry's
|
|
12
|
+
* default.
|
|
13
|
+
*
|
|
14
|
+
* The alias fills both roles that split out of it — but only where the named
|
|
15
|
+
* provider is registered for the role. That caveat is not a hedge, it is the
|
|
16
|
+
* finding that forced the split: the best external validator available cannot
|
|
17
|
+
* emit IR at all, so "one tool does both" was never true of it. An alias that
|
|
18
|
+
* insisted on setting both would fail to resolve for exactly the configuration
|
|
19
|
+
* it exists to keep working. Where the named provider cannot fill a role, that
|
|
20
|
+
* role keeps its default and the deprecation note says which and why — which is
|
|
21
|
+
* what the pre-split code did anyway: run the external check, then lower with
|
|
22
|
+
* MEMO's own parser regardless.
|
|
23
|
+
*/
|
|
24
|
+
export function resolveToolchain(config, registry) {
|
|
25
|
+
const toolchain = config?.toolchain ?? {};
|
|
26
|
+
const alias = readString(toolchain, DEPRECATED_COMPILER_SETTING);
|
|
27
|
+
const deprecations = [];
|
|
28
|
+
const selections = [];
|
|
29
|
+
const aliasCannotFill = [];
|
|
30
|
+
for (const role of PROVIDER_ROLES) {
|
|
31
|
+
const explicit = readString(toolchain, ROLE_SETTING[role]);
|
|
32
|
+
// The alias only ever meant "the thing that compiles", so it is offered
|
|
33
|
+
// to the two roles that split out of it and never to packaging — and
|
|
34
|
+
// only where the registry says that provider can fill the role.
|
|
35
|
+
const offered = role === 'package' ? undefined : alias;
|
|
36
|
+
const aliased = offered !== undefined && registry.has(role, offered) ? offered : undefined;
|
|
37
|
+
if (offered !== undefined && aliased === undefined && explicit === undefined) {
|
|
38
|
+
aliasCannotFill.push(role);
|
|
39
|
+
}
|
|
40
|
+
const fallback = registry.defaultId(role);
|
|
41
|
+
const provider = explicit ?? aliased ?? fallback;
|
|
42
|
+
if (!provider) {
|
|
43
|
+
throw new Error(`No provider is registered for the ${role} role and none was configured `
|
|
44
|
+
+ `(toolchain.${ROLE_SETTING[role]}).`);
|
|
45
|
+
}
|
|
46
|
+
if (!registry.has(role, provider)) {
|
|
47
|
+
// Resolving through the registry produces the message listing what
|
|
48
|
+
// *is* registered, which is the only correct roster.
|
|
49
|
+
registry.descriptor(role, provider);
|
|
50
|
+
}
|
|
51
|
+
selections.push({
|
|
52
|
+
role,
|
|
53
|
+
provider,
|
|
54
|
+
source: explicit ? 'settings' : aliased ? 'deprecated-alias' : 'default',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (alias !== undefined) {
|
|
58
|
+
const overridden = selections
|
|
59
|
+
.filter(s => s.source === 'settings' && s.role !== 'package')
|
|
60
|
+
.map(s => `toolchain.${ROLE_SETTING[s.role]}`);
|
|
61
|
+
deprecations.push(`toolchain.${DEPRECATED_COMPILER_SETTING} is deprecated; it sets both `
|
|
62
|
+
+ `toolchain.${ROLE_SETTING.validator} and toolchain.${ROLE_SETTING.lowering}.`
|
|
63
|
+
+ (overridden.length > 0 ? ` ${overridden.join(' and ')} take precedence.` : ''));
|
|
64
|
+
for (const role of aliasCannotFill) {
|
|
65
|
+
deprecations.push(`"${alias}" is not registered for the ${role} role, so `
|
|
66
|
+
+ `toolchain.${ROLE_SETTING[role]} keeps its default `
|
|
67
|
+
+ `("${byRole(selections, role)}"). Set toolchain.${ROLE_SETTING[role]} explicitly `
|
|
68
|
+
+ `to silence this.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
validator: byRole(selections, 'validator'),
|
|
73
|
+
lowering: byRole(selections, 'lowering'),
|
|
74
|
+
packager: byRole(selections, 'package'),
|
|
75
|
+
selections,
|
|
76
|
+
deprecations,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function byRole(selections, role) {
|
|
80
|
+
return selections.find(s => s.role === role).provider;
|
|
81
|
+
}
|
|
82
|
+
function readString(toolchain, key) {
|
|
83
|
+
const value = toolchain[key];
|
|
84
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
85
|
+
}
|
|
86
|
+
/** Per-provider settings block, as that provider's adapter should read it. */
|
|
87
|
+
export function providerSettings(config, providerId) {
|
|
88
|
+
const value = config?.toolchain?.[providerId];
|
|
89
|
+
return value && typeof value === 'object' ? value : undefined;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=effective.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective.js","sourceRoot":"","sources":["../../src/toolchain/effective.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './diagnostic.js';
|
|
2
|
+
export * from './protocol.js';
|
|
3
|
+
export * from './lowering.js';
|
|
4
|
+
export * from './registry.js';
|
|
5
|
+
export * from './effective.js';
|
|
6
|
+
export * from './schema.js';
|
|
7
|
+
export * from './operations.js';
|
|
8
|
+
export * from './default-registry.js';
|
|
9
|
+
export { whichExecutable, resolveExecutable, resolveProjectPath, findBundledExecutable } from './process.js';
|
|
10
|
+
export { getSysmlcClient, disposeSysmlcClients, SysmlcClient } from './sysmlc-client.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/toolchain/index.ts"],"names":[],"mappings":"AAWA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// ─── The toolchain ───────────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// `memo-tools` is the tooling interface: the operations re-exported here are
|
|
4
|
+
// the single implementation behind both the `memo` CLI and Architect's server
|
|
5
|
+
// protocol. Architect never spawns a tool, never parses a tool's output, and
|
|
6
|
+
// never learns a provider's name.
|
|
7
|
+
//
|
|
8
|
+
// The registrations live in `default-registry.ts`; the adapters in
|
|
9
|
+
// `providers/`. Nothing outside `providers/` writes a provider ID.
|
|
10
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
11
|
+
export * from './diagnostic.js';
|
|
12
|
+
export * from './protocol.js';
|
|
13
|
+
export * from './lowering.js';
|
|
14
|
+
export * from './registry.js';
|
|
15
|
+
export * from './effective.js';
|
|
16
|
+
export * from './schema.js';
|
|
17
|
+
export * from './operations.js';
|
|
18
|
+
export * from './default-registry.js';
|
|
19
|
+
export { whichExecutable, resolveExecutable, resolveProjectPath, findBundledExecutable } from './process.js';
|
|
20
|
+
export { getSysmlcClient, disposeSysmlcClients, SysmlcClient } from './sysmlc-client.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolchain/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,kCAAkC;AAClC,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AACnE,gFAAgF;AAEhF,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|