@memoarchitect/tools 0.6.6 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -11
- package/package.json +19 -7
- package/packages/tools/lib/analysis-starters.d.ts +4 -0
- package/packages/tools/lib/analysis-starters.d.ts.map +1 -0
- package/packages/tools/lib/analysis-starters.js +425 -0
- package/packages/tools/lib/analysis-starters.js.map +1 -0
- 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 +37 -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 -75
- 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 +5 -1
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +16 -27
- 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 +264 -26
- 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 +12 -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 +38 -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 +8 -7
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +26 -17
- 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-files.d.ts +9 -0
- package/packages/tools/lib/model/sysml-files.d.ts.map +1 -1
- package/packages/tools/lib/model/sysml-files.js +20 -1
- package/packages/tools/lib/model/sysml-files.js.map +1 -1
- 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 +60 -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 +311 -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 -9
- 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/server/view-layout-store.d.ts.map +1 -1
- package/packages/tools/lib/server/view-layout-store.js +2 -0
- package/packages/tools/lib/server/view-layout-store.js.map +1 -1
- 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 +17 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.js +101 -0
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -0
- 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 +57 -4
- 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
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
// medical device development (per platform-strategy.md §8).
|
|
9
9
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
10
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
11
|
-
import {
|
|
11
|
+
import { join, resolve } from 'node:path';
|
|
12
12
|
import { createHash } from 'node:crypto';
|
|
13
|
-
import { loadConfigChain } from './server/config-resolver.js';
|
|
14
13
|
const LOCK_FILENAME = 'memo.lock.yaml';
|
|
15
14
|
/**
|
|
16
15
|
* Compute a SHA-256 checksum of the memo.package.yaml (or memo.config.yaml)
|
|
@@ -66,148 +65,138 @@ function parseLock(content) {
|
|
|
66
65
|
};
|
|
67
66
|
}
|
|
68
67
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
68
|
+
* Write memo.lock.yaml from what the project's imports actually resolved to.
|
|
69
|
+
*
|
|
70
|
+
* The lock is an application artifact, and section 5.3 is explicit about what
|
|
71
|
+
* it may do: record the package, version, and hash a native import resolved to,
|
|
72
|
+
* so a rebuild is reproducible. It may not introduce a package the import graph
|
|
73
|
+
* never named — which is why it is generated from `selectedRoots` rather than
|
|
74
|
+
* from an `extends` chain that could name packages the model never used.
|
|
71
75
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
76
|
+
/** Numeric semver comparison; a missing version sorts lowest. */
|
|
77
|
+
function compareVersions(a, b) {
|
|
78
|
+
const parts = (v) => (v ?? '0.0.0').split('.').map(n => Number.parseInt(n, 10) || 0);
|
|
79
|
+
const [x, y] = [parts(a), parts(b)];
|
|
80
|
+
for (let i = 0; i < Math.max(x.length, y.length); i++) {
|
|
81
|
+
const d = (x[i] ?? 0) - (y[i] ?? 0);
|
|
82
|
+
if (d !== 0)
|
|
83
|
+
return d;
|
|
84
|
+
}
|
|
85
|
+
return 0;
|
|
86
|
+
}
|
|
87
|
+
export function createLockFile(projectRoot, selectedRoots) {
|
|
88
|
+
// One entry per package NAME, not per resolved directory.
|
|
89
|
+
//
|
|
90
|
+
// A workspace can offer the same package from two roots — an installed
|
|
91
|
+
// `node_modules/@memoarchitect/ontology` beside a linked source checkout of
|
|
92
|
+
// the same package at a different version. Recording both wrote a lock that
|
|
93
|
+
// pinned `version: 0.6.4` while the loader resolved 0.6.5 through the
|
|
94
|
+
// import graph, so every freshly initialized project failed its own
|
|
95
|
+
// ontology-version check on the first `memo validate`.
|
|
96
|
+
//
|
|
97
|
+
// The winner is the root the import graph actually resolves through: lowest
|
|
98
|
+
// importDepth, ties broken by the higher version so a rebuild is
|
|
99
|
+
// reproducible rather than dependent on directory scan order.
|
|
100
|
+
const byName = new Map();
|
|
101
|
+
for (const root of selectedRoots) {
|
|
102
|
+
const existing = byName.get(root.packageName);
|
|
103
|
+
if (!existing
|
|
104
|
+
|| root.importDepth < existing.importDepth
|
|
105
|
+
|| (root.importDepth === existing.importDepth
|
|
106
|
+
&& compareVersions(root.packageVersion, existing.packageVersion) > 0)) {
|
|
107
|
+
byName.set(root.packageName, root);
|
|
86
108
|
}
|
|
87
|
-
throw new Error(`this project declares no \`extends\` ontology in its config, so there is nothing to lock.`);
|
|
88
109
|
}
|
|
110
|
+
const roots = [...byName.values()].sort((a, b) => a.packageName.localeCompare(b.packageName));
|
|
111
|
+
if (roots.length === 0) {
|
|
112
|
+
throw new Error('This project resolves no reusable packages, so there is nothing to lock. '
|
|
113
|
+
+ 'Add an import to model/catalog/project.sysml first.');
|
|
114
|
+
}
|
|
115
|
+
// The primary is the package the project imports most directly. Ties break
|
|
116
|
+
// by name so the lock is byte-stable across runs.
|
|
117
|
+
const primary = [...roots].sort((a, b) => a.importDepth - b.importDepth || a.packageName.localeCompare(b.packageName))[0];
|
|
89
118
|
const lock = {
|
|
90
|
-
ontology:
|
|
91
|
-
|
|
92
|
-
|| leafExtendsStr
|
|
93
|
-
|| 'unknown',
|
|
94
|
-
version: ontologyEntry.config.ontologyMetadata?.version || '0.0.0',
|
|
119
|
+
ontology: primary.packageName,
|
|
120
|
+
version: primary.packageVersion ?? '0.0.0',
|
|
95
121
|
lockedAt: new Date().toISOString().split('T')[0],
|
|
96
|
-
packages:
|
|
97
|
-
|
|
98
|
-
.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
type: e.config.projectType || 'unknown',
|
|
102
|
-
checksum: checksumFile(e.configPath),
|
|
122
|
+
packages: roots.map(root => ({
|
|
123
|
+
name: root.packageName,
|
|
124
|
+
version: root.packageVersion ?? '0.0.0',
|
|
125
|
+
type: root.origin,
|
|
126
|
+
checksum: checksumRoot(root),
|
|
103
127
|
})),
|
|
104
128
|
};
|
|
105
|
-
const lockPath = join(
|
|
129
|
+
const lockPath = join(resolve(projectRoot), LOCK_FILENAME);
|
|
106
130
|
writeFileSync(lockPath, serializeLock(lock));
|
|
107
131
|
return { lockPath, lock };
|
|
108
132
|
}
|
|
109
133
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
134
|
+
* Hash a resolved package's descriptor.
|
|
135
|
+
*
|
|
136
|
+
* The descriptor carries name and version, which is what the lock asserts. A
|
|
137
|
+
* content hash over every `.sysml` file would be stricter but would also make
|
|
138
|
+
* the lock fail on an unrelated comment change, and "review this ontology
|
|
139
|
+
* change" is a claim that should mean something.
|
|
114
140
|
*/
|
|
115
|
-
function
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (type === 'profile' || type === 'ontology') {
|
|
121
|
-
return chain[i];
|
|
122
|
-
}
|
|
141
|
+
function checksumRoot(root) {
|
|
142
|
+
for (const name of ['memo.package.yaml', 'memo.package.yml']) {
|
|
143
|
+
const path = join(root.dir, name);
|
|
144
|
+
if (existsSync(path))
|
|
145
|
+
return checksumFile(path);
|
|
123
146
|
}
|
|
124
|
-
return
|
|
147
|
+
return createHash('sha256').update(`${root.packageName}@${root.packageVersion ?? '0.0.0'}`).digest('hex');
|
|
125
148
|
}
|
|
126
149
|
/**
|
|
127
|
-
* Check the lock
|
|
128
|
-
*
|
|
150
|
+
* Check the lock against what the project resolves now.
|
|
151
|
+
*
|
|
152
|
+
* Returns ok when there is no lock file: a lock is recommended, not required.
|
|
129
153
|
*/
|
|
130
|
-
export function checkLockFile(
|
|
131
|
-
const lockPath = join(
|
|
132
|
-
if (!existsSync(lockPath))
|
|
154
|
+
export function checkLockFile(projectRoot, selectedRoots) {
|
|
155
|
+
const lockPath = join(resolve(projectRoot), LOCK_FILENAME);
|
|
156
|
+
if (!existsSync(lockPath))
|
|
133
157
|
return { ok: true, lockPath, message: undefined };
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
const chain = loadConfigChain(configPath);
|
|
139
|
-
const ontologyEntry = findOntologyRoot(chain);
|
|
140
|
-
const tailExtends = chain[chain.length - 1]?.config.extends;
|
|
141
|
-
const tailExtendsStr = Array.isArray(tailExtends) ? tailExtends.join('+') : tailExtends;
|
|
142
|
-
if (!ontologyEntry) {
|
|
158
|
+
const lock = parseLock(readFileSync(lockPath, 'utf-8'));
|
|
159
|
+
const byName = new Map(selectedRoots.map(r => [r.packageName, r]));
|
|
160
|
+
const primary = byName.get(lock.ontology);
|
|
161
|
+
if (!primary) {
|
|
143
162
|
return {
|
|
144
163
|
ok: false,
|
|
145
164
|
lockPath,
|
|
146
165
|
locked: lock,
|
|
147
|
-
message: `Locked ontology cannot be resolved!\n\n`
|
|
148
|
-
` Locked: ${lock.ontology} v${lock.version}\n`
|
|
149
|
-
` Current:
|
|
150
|
-
`
|
|
151
|
-
` Install it (or run inside a workspace that contains it), then retry.`,
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
const currentOntology = ontologyEntry.config.ontologyMetadata?.id
|
|
155
|
-
|| ontologyEntry.config.projectName
|
|
156
|
-
|| tailExtendsStr
|
|
157
|
-
|| 'unknown';
|
|
158
|
-
const currentVersion = ontologyEntry.config.ontologyMetadata?.version || '0.0.0';
|
|
159
|
-
const current = { ontology: currentOntology, version: currentVersion };
|
|
160
|
-
// Check ontology ID match
|
|
161
|
-
if (lock.ontology !== currentOntology) {
|
|
162
|
-
return {
|
|
163
|
-
ok: false,
|
|
164
|
-
lockPath,
|
|
165
|
-
locked: lock,
|
|
166
|
-
current,
|
|
167
|
-
message: `Ontology mismatch!\n\n` +
|
|
168
|
-
` Locked: ${lock.ontology} v${lock.version}\n` +
|
|
169
|
-
` Current: ${currentOntology} v${currentVersion}\n\n` +
|
|
170
|
-
` The ontology used by this project has changed since it was initialized.\n` +
|
|
171
|
-
` In regulated medical device development, ontology changes require\n` +
|
|
172
|
-
` explicit review — there is no auto-migration.\n\n` +
|
|
173
|
-
` To update the lock file after reviewing the change:\n` +
|
|
174
|
-
` memo lock\n\n` +
|
|
175
|
-
` Or restore the original ontology if this was unintended.`,
|
|
166
|
+
message: `Locked ontology cannot be resolved!\n\n`
|
|
167
|
+
+ ` Locked: ${lock.ontology} v${lock.version}\n`
|
|
168
|
+
+ ` Current: the project's imports do not resolve "${lock.ontology}" from this directory\n\n`
|
|
169
|
+
+ ` Install it, or run inside a workspace that contains it, then retry.`,
|
|
176
170
|
};
|
|
177
171
|
}
|
|
178
|
-
|
|
172
|
+
const currentVersion = primary.packageVersion ?? '0.0.0';
|
|
173
|
+
const current = { ontology: lock.ontology, version: currentVersion };
|
|
179
174
|
if (lock.version !== currentVersion) {
|
|
180
175
|
return {
|
|
181
176
|
ok: false,
|
|
182
177
|
lockPath,
|
|
183
178
|
locked: lock,
|
|
184
179
|
current,
|
|
185
|
-
message: `Ontology version changed!\n\n`
|
|
186
|
-
` Locked: ${lock.ontology} v${lock.version}\n`
|
|
187
|
-
` Current: ${
|
|
188
|
-
`
|
|
189
|
-
`
|
|
190
|
-
` memo lock`,
|
|
180
|
+
message: `Ontology version changed!\n\n`
|
|
181
|
+
+ ` Locked: ${lock.ontology} v${lock.version}\n`
|
|
182
|
+
+ ` Current: ${lock.ontology} v${currentVersion}\n\n`
|
|
183
|
+
+ ` Review the change, then update the lock:\n`
|
|
184
|
+
+ ` memo lock`,
|
|
191
185
|
};
|
|
192
186
|
}
|
|
193
|
-
// Check package checksums for content changes
|
|
194
|
-
const currentPackages = chain
|
|
195
|
-
.filter(e => e.config.projectType !== 'device')
|
|
196
|
-
.map(e => ({
|
|
197
|
-
name: e.config.ontologyMetadata?.id || e.config.projectName,
|
|
198
|
-
checksum: checksumFile(e.configPath),
|
|
199
|
-
}));
|
|
200
187
|
for (const locked of lock.packages) {
|
|
201
|
-
const
|
|
202
|
-
if (
|
|
188
|
+
const root = byName.get(locked.name);
|
|
189
|
+
if (!root)
|
|
190
|
+
continue;
|
|
191
|
+
if (checksumRoot(root) !== locked.checksum) {
|
|
203
192
|
return {
|
|
204
193
|
ok: false,
|
|
205
194
|
lockPath,
|
|
206
195
|
locked: lock,
|
|
207
|
-
current
|
|
208
|
-
message: `
|
|
209
|
-
`
|
|
210
|
-
` memo lock`,
|
|
196
|
+
current,
|
|
197
|
+
message: `Package "${locked.name}" has changed since the lock was created.\n\n`
|
|
198
|
+
+ ` Review the change, then update the lock:\n`
|
|
199
|
+
+ ` memo lock`,
|
|
211
200
|
};
|
|
212
201
|
}
|
|
213
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,EAAE;AACF,0EAA0E;AAC1E,4DAA4D;AAC5D,gFAAgF;AAEhF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
import { findSysmlFiles } from '../model/sysml-files.js';
|
|
1
2
|
import type { QueryContext } from '../dhf/query-engine.js';
|
|
2
3
|
import type { MEMOConfig } from '../model/config.js';
|
|
3
|
-
|
|
4
|
+
import { type OntologyView } from '../model/kind-registry.js';
|
|
5
|
+
export { findSysmlFiles };
|
|
4
6
|
export interface LoadedProject {
|
|
5
7
|
ctx: QueryContext;
|
|
6
8
|
config: MEMOConfig;
|
|
7
9
|
projectRoot: string;
|
|
8
10
|
fileCount: number;
|
|
11
|
+
/** Kinds and relationships from the resolved ontology. */
|
|
12
|
+
ontology: OntologyView;
|
|
9
13
|
}
|
|
10
14
|
export declare function loadProject(projectRoot: string): Promise<LoadedProject>;
|
|
11
15
|
//# sourceMappingURL=model-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../../src/mcp/model-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../../src/mcp/model-loader.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAUzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMrG,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,YAAY,CAAC;CAC1B;AAwBD,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAoC7E"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
// once at startup — a stale answer to "what hazards exist?" is worse than the
|
|
8
8
|
// cost of a reload.
|
|
9
9
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { statSync } from 'node:fs';
|
|
11
|
+
import { findSysmlFiles } from '../model/sysml-files.js';
|
|
12
12
|
// Imported from their defining modules rather than the package index: this
|
|
13
13
|
// module is reached from server/persistor, which imports the package by name.
|
|
14
14
|
import { findConfigFile } from '../model/config-loader.js';
|
|
@@ -19,26 +19,12 @@ import { validateModel } from '../validator/rule-engine.js';
|
|
|
19
19
|
import { computeCompleteness } from '../completeness/tracker.js';
|
|
20
20
|
import { createQueryContext } from '../dhf/query-engine.js';
|
|
21
21
|
import { loadAndResolveConfig } from '../server/config-resolver.js';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (entry.isDirectory()) {
|
|
29
|
-
if (!SKIP_DIRS.has(entry.name))
|
|
30
|
-
files.push(...findSysmlFiles(full));
|
|
31
|
-
}
|
|
32
|
-
else if (entry.name.endsWith('.sysml')) {
|
|
33
|
-
files.push(full);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// An unreadable directory is not worth failing the whole load over.
|
|
39
|
-
}
|
|
40
|
-
return files;
|
|
41
|
-
}
|
|
22
|
+
import { EMPTY_ONTOLOGY_VIEW, ontologyViewFrom } from '../model/kind-registry.js';
|
|
23
|
+
// Source discovery is the shared walker's job. This module kept its own copy
|
|
24
|
+
// with a shorter skip list, which meant the MCP server saw files every other
|
|
25
|
+
// entry point had already learned to ignore — a virtualenv's bundled standard
|
|
26
|
+
// library among them. Re-exported because `mcp/index.ts` publishes it.
|
|
27
|
+
export { findSysmlFiles };
|
|
42
28
|
const cache = new Map();
|
|
43
29
|
/** Cheap staleness check: file count plus the newest mtime. */
|
|
44
30
|
function signatureOf(files) {
|
|
@@ -65,12 +51,15 @@ export async function loadProject(projectRoot) {
|
|
|
65
51
|
if (!configPath) {
|
|
66
52
|
throw new Error(`No MEMO project found at ${projectRoot}. Run \`memo init\` there first.`);
|
|
67
53
|
}
|
|
68
|
-
const config =
|
|
54
|
+
const config = loadAndResolveConfig(configPath);
|
|
69
55
|
let ontologyRegistries;
|
|
56
|
+
let ontology = EMPTY_ONTOLOGY_VIEW;
|
|
70
57
|
try {
|
|
71
|
-
const loadResult = await loadOntologyRegistries(
|
|
72
|
-
if (loadResult.fileCount > 0)
|
|
58
|
+
const loadResult = await loadOntologyRegistries(projectRoot);
|
|
59
|
+
if (loadResult.fileCount > 0) {
|
|
73
60
|
ontologyRegistries = loadResult.registries;
|
|
61
|
+
ontology = ontologyViewFrom(loadResult.registries.kindRegistry, loadResult.registries.relationshipRegistry);
|
|
62
|
+
}
|
|
74
63
|
}
|
|
75
64
|
catch {
|
|
76
65
|
// A project without a resolvable ontology still has a parseable model.
|
|
@@ -78,9 +67,9 @@ export async function loadProject(projectRoot) {
|
|
|
78
67
|
const { documents, errors: parseErrors } = await parseFiles(files, `${projectRoot}/`);
|
|
79
68
|
const model = buildMemoModel(documents, config, parseErrors, ontologyRegistries);
|
|
80
69
|
const validation = validateModel(model);
|
|
81
|
-
const completeness = computeCompleteness(model, validation
|
|
70
|
+
const completeness = computeCompleteness(model, validation);
|
|
82
71
|
const ctx = createQueryContext(model, validation, completeness, config);
|
|
83
|
-
const project = { ctx, config, projectRoot, fileCount: files.length };
|
|
72
|
+
const project = { ctx, config, ontology, projectRoot, fileCount: files.length };
|
|
84
73
|
cache.set(projectRoot, { project, signature });
|
|
85
74
|
return project;
|
|
86
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../../src/mcp/model-loader.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../../src/mcp/model-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { QueryContext } from '../dhf/query-engine.js';
|
|
2
|
+
import type { OntologyView } from '../model/kind-registry.js';
|
|
2
3
|
import type { MEMOConfig } from '../model/config.js';
|
|
3
4
|
/** An MCP tool as advertised in `tools/list`. */
|
|
4
5
|
export interface McpTool {
|
|
@@ -10,6 +11,8 @@ export interface McpToolContext {
|
|
|
10
11
|
projectRoot: string;
|
|
11
12
|
ctx: QueryContext;
|
|
12
13
|
config: MEMOConfig;
|
|
14
|
+
/** Kinds and relationships from the resolved ontology. */
|
|
15
|
+
ontology: OntologyView;
|
|
13
16
|
}
|
|
14
17
|
export type McpToolHandler = (input: Record<string, any>, context: McpToolContext) => Promise<unknown> | unknown;
|
|
15
18
|
export declare function listTools(allowWrites: boolean): McpTool[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,iDAAiD;AACjD,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,iDAAiD;AACjD,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,CACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,EAAE,cAAc,KACtB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAoNhC,wBAAgB,SAAS,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,EAAE,CAEzD;AAED,qDAAqD;AACrD,wBAAsB,QAAQ,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC,CAQlB"}
|
|
@@ -153,12 +153,11 @@ define({
|
|
|
153
153
|
name: 'memo_ontology',
|
|
154
154
|
description: 'The vocabulary this project models in: every legal element kind with its SysML v2 construct and layer, and every legal relationship type. Read this before writing or editing any .sysml file so you use terms the ontology actually defines.',
|
|
155
155
|
inputSchema: { type: 'object', properties: {} },
|
|
156
|
-
}, (_input, {
|
|
157
|
-
|
|
158
|
-
kinds: Object.entries(config.kinds ?? {}).map(([name, def]) => ({
|
|
156
|
+
}, (_input, { ontology }) => ({
|
|
157
|
+
kinds: Object.entries(ontology.kinds).map(([name, def]) => ({
|
|
159
158
|
name, label: def.label, layer: def.layer, construct: def.sysmlConstruct,
|
|
160
159
|
})),
|
|
161
|
-
relationshipTypes:
|
|
160
|
+
relationshipTypes: ontology.relationshipTypes.map(r => ({
|
|
162
161
|
name: r.name, label: r.label, layer: r.layer,
|
|
163
162
|
})),
|
|
164
163
|
}));
|
|
@@ -179,16 +178,16 @@ define({
|
|
|
179
178
|
},
|
|
180
179
|
required: ['id', 'name', 'kind'],
|
|
181
180
|
},
|
|
182
|
-
}, (input, { ctx,
|
|
181
|
+
}, async (input, { ctx, ontology, projectRoot }) => {
|
|
183
182
|
const id = String(input.id).trim();
|
|
184
183
|
const kind = String(input.kind).trim();
|
|
185
184
|
if (ctx.element(id))
|
|
186
185
|
throw new Error(`Element "${id}" already exists.`);
|
|
187
|
-
const kinds =
|
|
186
|
+
const kinds = ontology.kinds;
|
|
188
187
|
if (Object.keys(kinds).length > 0 && !kinds[kind]) {
|
|
189
188
|
throw new Error(`"${kind}" is not a kind in this ontology. Valid kinds: ${Object.keys(kinds).join(', ')}`);
|
|
190
189
|
}
|
|
191
|
-
const result = saveElementToFile(projectRoot, {
|
|
190
|
+
const result = await saveElementToFile(projectRoot, {
|
|
192
191
|
id,
|
|
193
192
|
name: String(input.name),
|
|
194
193
|
kind,
|
|
@@ -214,7 +213,7 @@ export async function callTool(name, input, projectRoot, allowWrites) {
|
|
|
214
213
|
if (entry.write && !allowWrites) {
|
|
215
214
|
throw new Error(`Tool "${name}" modifies the model and this server is read-only. Restart it with \`memo mcp --write\` to enable edits.`);
|
|
216
215
|
}
|
|
217
|
-
const { ctx, config } = await loadProject(projectRoot);
|
|
218
|
-
return entry.handler(input ?? {}, { projectRoot, ctx, config });
|
|
216
|
+
const { ctx, config, ontology } = await loadProject(projectRoot);
|
|
217
|
+
return entry.handler(input ?? {}, { projectRoot, ctx, config, ontology });
|
|
219
218
|
}
|
|
220
219
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,oCAAoC;AACpC,gFAAgF;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { MemoElement } from './semantic.js';
|
|
2
|
+
import type { OntologyRegistriesDTO } from './relationship-legality.js';
|
|
3
|
+
/** The activity symbols an action-flow view draws. */
|
|
4
|
+
export type ActivityNodeType = 'action' | 'accept' | 'send' | 'fork' | 'join' | 'decision' | 'merge' | 'activityFinal' | 'flowFinal';
|
|
5
|
+
/** One notation role, anchored on the metaclass whose instances draw as it. */
|
|
6
|
+
export interface ActivityNotationRole {
|
|
7
|
+
role: ActivityNodeType;
|
|
8
|
+
/** SysML v2 metaclass; every subtype of it draws as this role. */
|
|
9
|
+
metaclass: string;
|
|
10
|
+
/** Production in `bnf/SysML-graphical-bnf.kgbnf`, where one names it. */
|
|
11
|
+
bnfProduction?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Role bindings, unordered.
|
|
15
|
+
*
|
|
16
|
+
* Deliberately not written in precedence order — `activityRolesBySpecificity()`
|
|
17
|
+
* derives that from the metamodel, so adding a binding cannot put it in the
|
|
18
|
+
* wrong place.
|
|
19
|
+
*/
|
|
20
|
+
export declare const ACTIVITY_NOTATION_ROLES: readonly ActivityNotationRole[];
|
|
21
|
+
/**
|
|
22
|
+
* MEMO grammar literals for `ControlNodeUsage.controlKind`, bound to the
|
|
23
|
+
* metaclasses they name.
|
|
24
|
+
*
|
|
25
|
+
* The four values come from MEMO's own Langium grammar, so they are not
|
|
26
|
+
* derivable from `SysML.ecore` — but their targets are, and
|
|
27
|
+
* `controlKindMetaclassesAreControlNodes()` asserts that these four are exactly
|
|
28
|
+
* the metamodel's `ControlNode` subtypes. A fifth control node upstream fails
|
|
29
|
+
* that check rather than silently going unclassified.
|
|
30
|
+
*/
|
|
31
|
+
export declare const CONTROL_KIND_METACLASS: Readonly<Record<string, string>>;
|
|
32
|
+
/** True when the bindings above still match the metamodel's control nodes. */
|
|
33
|
+
export declare function controlKindMetaclassesAreControlNodes(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Roles most-specific first, by supertype depth.
|
|
36
|
+
*
|
|
37
|
+
* `ForkNode` sits three levels below `ActionUsage`, so it is tried first and an
|
|
38
|
+
* `ActionUsage` anchor never swallows a control node. Computed rather than
|
|
39
|
+
* declared, because the metamodel already knows the answer.
|
|
40
|
+
*/
|
|
41
|
+
export declare function activityRolesBySpecificity(): ActivityNotationRole[];
|
|
42
|
+
/**
|
|
43
|
+
* The activity symbol this element draws as, or `undefined` if it is not an
|
|
44
|
+
* activity node at all.
|
|
45
|
+
*
|
|
46
|
+
* `registries` is optional: without it, classification uses the metamodel
|
|
47
|
+
* alone, which is what a caller holding a bare element can do. With it, an
|
|
48
|
+
* ontology kind reaches its role through its declared specialization chain —
|
|
49
|
+
* which is the path a project extends.
|
|
50
|
+
*/
|
|
51
|
+
export declare function activityNodeType(element: MemoElement, registries?: OntologyRegistriesDTO): ActivityNodeType | undefined;
|
|
52
|
+
/** Control nodes flow through the graph but own no responsibility lane. */
|
|
53
|
+
export declare function isControlNode(element: MemoElement, registries?: OntologyRegistriesDTO): boolean;
|
|
54
|
+
//# sourceMappingURL=activity-notation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-notation.d.ts","sourceRoot":"","sources":["../../src/model/activity-notation.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GACtB,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GACrE,eAAe,GAAG,WAAW,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAelE,CAAC;AAiBF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKnE,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,qCAAqC,IAAI,OAAO,CAK/D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,EAAE,CAGnE;AA8CD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,qBAAqB,GACnC,gBAAgB,GAAG,SAAS,CAyB9B;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAO/F"}
|