@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,115 @@
|
|
|
1
|
+
import type { NativeMethodBinding, NativeMethodology, NativeRulePolicy, ScopeMode } from './native-project.js';
|
|
2
|
+
import type { CompiledConstraint } from '../validator/constraint-eval.js';
|
|
3
|
+
/** Severity as the ontology and policies spell it. */
|
|
4
|
+
export type RuleSeverity = 'error' | 'warning' | 'info';
|
|
5
|
+
/** How far a rule may be tailored, from the rule's own `tailoring` attribute. */
|
|
6
|
+
export type RuleTailoring = 'invariant' | 'assurance' | 'methodology';
|
|
7
|
+
/** One step in the chain that produced a rule's effective disposition. */
|
|
8
|
+
export interface PolicyChainEntry {
|
|
9
|
+
/** Methodology usage name, or the binding's usage name for a project policy. */
|
|
10
|
+
source: string;
|
|
11
|
+
/** 'methodology' or 'project' — which authority applied it. */
|
|
12
|
+
level: 'methodology' | 'project';
|
|
13
|
+
policy: NativeRulePolicy;
|
|
14
|
+
}
|
|
15
|
+
/** A rule and everything that happened to it. */
|
|
16
|
+
export interface EffectiveRule {
|
|
17
|
+
/** The rule as originally defined. */
|
|
18
|
+
sourceRuleId: string;
|
|
19
|
+
sourceRuleType: string;
|
|
20
|
+
/** The rule that actually evaluates; differs from the source when replaced. */
|
|
21
|
+
activeRuleId: string;
|
|
22
|
+
activeRuleType: string;
|
|
23
|
+
disposition: 'enabled' | 'disabled' | 'replaced';
|
|
24
|
+
/** Severity after any override. */
|
|
25
|
+
effectiveSeverity: RuleSeverity;
|
|
26
|
+
/** Severity as the ontology authored it. */
|
|
27
|
+
declaredSeverity: RuleSeverity;
|
|
28
|
+
tailoring: RuleTailoring;
|
|
29
|
+
/** Every policy that touched this rule, base-first. */
|
|
30
|
+
policyChain: PolicyChainEntry[];
|
|
31
|
+
/** Rationale and authority from the last policy that changed the rule. */
|
|
32
|
+
rationaleText?: string;
|
|
33
|
+
authority?: string;
|
|
34
|
+
approvalReference?: string;
|
|
35
|
+
/** Where the rule is declared. */
|
|
36
|
+
sourceFile?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface RuleResolutionDiagnostic {
|
|
39
|
+
code: 'missing-target' | 'missing-replacement' | 'duplicate-rule-id' | 'invariant-protected' | 'replacement-without-target' | 'missing-rationale' | 'ambiguous-target'
|
|
40
|
+
/** Resolution itself threw. Reported so the UI shows why the set is empty. */
|
|
41
|
+
| 'resolution-failed';
|
|
42
|
+
message: string;
|
|
43
|
+
ruleId?: string;
|
|
44
|
+
policy?: string;
|
|
45
|
+
file?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface MethodologyDiagnostic {
|
|
48
|
+
code: 'missing-base' | 'inheritance-cycle' | 'unavailable-module' | 'scope-mode-conflict';
|
|
49
|
+
message: string;
|
|
50
|
+
methodology?: string;
|
|
51
|
+
}
|
|
52
|
+
/** The methodology chain plus its merged selection. */
|
|
53
|
+
export interface EffectiveMethodology {
|
|
54
|
+
/** Base first, selected methodology last. */
|
|
55
|
+
chain: NativeMethodology[];
|
|
56
|
+
scopeMode: ScopeMode;
|
|
57
|
+
includedLayers: string[];
|
|
58
|
+
includedModules: string[];
|
|
59
|
+
includedStandards: string[];
|
|
60
|
+
includedArtifactKinds: string[];
|
|
61
|
+
includedViewpoints: string[];
|
|
62
|
+
/** Policies in application order: base methodology first, project binding last. */
|
|
63
|
+
policyChain: PolicyChainEntry[];
|
|
64
|
+
diagnostics: MethodologyDiagnostic[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Walk the methodology inheritance chain and merge its selection.
|
|
68
|
+
*
|
|
69
|
+
* Exactly one base per methodology, so the chain is a list. The resolver walks
|
|
70
|
+
* base-first and then applies the child, which is also the order policies are
|
|
71
|
+
* applied in: a child methodology may tailor what its base decided, and the
|
|
72
|
+
* project binding gets the last word.
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveEffectiveMethodology(binding: NativeMethodBinding | undefined, methodologies: Map<string, NativeMethodology>, availablePackages: ReadonlySet<string>): EffectiveMethodology;
|
|
75
|
+
/** A rule as the constraint loader found it, plus the metadata policies need. */
|
|
76
|
+
export interface RuleCandidate {
|
|
77
|
+
/** Stable rule ID, e.g. "CR-MED-040". Durable identity for audit records. */
|
|
78
|
+
id: string;
|
|
79
|
+
/** The `constraint def` name, which is what a policy references. */
|
|
80
|
+
typeName: string;
|
|
81
|
+
severity: RuleSeverity;
|
|
82
|
+
tailoring: RuleTailoring;
|
|
83
|
+
file?: string;
|
|
84
|
+
constraint?: CompiledConstraint;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Map compiled native constraints onto rule candidates.
|
|
88
|
+
*
|
|
89
|
+
* One place, because both `memo rules` and the dev server need it and they got
|
|
90
|
+
* the field names wrong independently — `collectNativeConstraints` returns
|
|
91
|
+
* `id`/`typeName`/`sourceFile`, not `ruleId`/`ruleType`/`file`. A rule whose
|
|
92
|
+
* identity does not survive this mapping resolves as `undefined` and is
|
|
93
|
+
* unauditable, which is the opposite of what section 10.4 asks for.
|
|
94
|
+
*
|
|
95
|
+
* A constraint with no `typeName` is skipped: a policy references a rule by its
|
|
96
|
+
* `constraint def` name, so a rule without one cannot be tailored and does not
|
|
97
|
+
* belong in a set whose purpose is recording tailoring decisions.
|
|
98
|
+
*/
|
|
99
|
+
export declare function ruleCandidatesFromConstraints(constraints: readonly CompiledConstraint[]): RuleCandidate[];
|
|
100
|
+
export interface EffectiveRuleSet {
|
|
101
|
+
rules: EffectiveRule[];
|
|
102
|
+
diagnostics: RuleResolutionDiagnostic[];
|
|
103
|
+
/** The constraints that should actually be evaluated, in rule-ID order. */
|
|
104
|
+
activeConstraints: CompiledConstraint[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Produce the effective rule set.
|
|
108
|
+
*
|
|
109
|
+
* Steps 1-3 of section 10.3 (collecting rules from ontology, extension, and
|
|
110
|
+
* methodology packages) happen upstream: `collectNativeConstraints` walks the
|
|
111
|
+
* resolved closure, which is exactly the set of packages those steps describe.
|
|
112
|
+
* This function is steps 4-9 — apply policies base-first, validate, and emit.
|
|
113
|
+
*/
|
|
114
|
+
export declare function resolveEffectiveRules(candidates: RuleCandidate[], policyChain: PolicyChainEntry[]): EffectiveRuleSet;
|
|
115
|
+
//# sourceMappingURL=methodology-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methodology-resolver.d.ts","sourceRoot":"","sources":["../../src/model/methodology-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
// ─── Effective Methodology and Effective Rule Resolution ──────────────────────
|
|
2
|
+
//
|
|
3
|
+
// What a project's methodology actually amounts to, and which rules are live.
|
|
4
|
+
//
|
|
5
|
+
// Both resolvers are deterministic: the same source produces the same result in
|
|
6
|
+
// the same order, and every entry says where it came from. There is no
|
|
7
|
+
// "last duplicate wins" anywhere — a duplicate rule ID is an error, and a rule
|
|
8
|
+
// is replaced only through an explicit `RulePolicy`.
|
|
9
|
+
//
|
|
10
|
+
// Under the section 4.1 Option P verdict this layer governs rule *identity and
|
|
11
|
+
// disposition*: which rules are in the effective set, at what severity, under
|
|
12
|
+
// whose authority. Whether a rule's predicate fires is a separate question that
|
|
13
|
+
// `predicateExpression` still answers, and nothing here should be reported as
|
|
14
|
+
// evidence that a model was validated.
|
|
15
|
+
//
|
|
16
|
+
// Design reference: sections 9.1-9.3, 10.1-10.4.
|
|
17
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Walk the methodology inheritance chain and merge its selection.
|
|
20
|
+
*
|
|
21
|
+
* Exactly one base per methodology, so the chain is a list. The resolver walks
|
|
22
|
+
* base-first and then applies the child, which is also the order policies are
|
|
23
|
+
* applied in: a child methodology may tailor what its base decided, and the
|
|
24
|
+
* project binding gets the last word.
|
|
25
|
+
*/
|
|
26
|
+
export function resolveEffectiveMethodology(binding, methodologies, availablePackages) {
|
|
27
|
+
const diagnostics = [];
|
|
28
|
+
const chain = [];
|
|
29
|
+
let current = binding?.selectedMethodologyName
|
|
30
|
+
? methodologies.get(binding.selectedMethodologyName)
|
|
31
|
+
: undefined;
|
|
32
|
+
const seen = new Set();
|
|
33
|
+
while (current) {
|
|
34
|
+
if (seen.has(current.usageName)) {
|
|
35
|
+
diagnostics.push({
|
|
36
|
+
code: 'inheritance-cycle',
|
|
37
|
+
message: `Methodology inheritance cycles back to "${current.usageName}". A methodology chain must `
|
|
38
|
+
+ `terminate; a cycle has no base to resolve first.`,
|
|
39
|
+
methodology: current.usageName,
|
|
40
|
+
});
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
seen.add(current.usageName);
|
|
44
|
+
chain.unshift(current);
|
|
45
|
+
if (!current.baseMethodologyName)
|
|
46
|
+
break;
|
|
47
|
+
const base = methodologies.get(current.baseMethodologyName);
|
|
48
|
+
if (!base) {
|
|
49
|
+
diagnostics.push({
|
|
50
|
+
code: 'missing-base',
|
|
51
|
+
message: `Methodology "${current.usageName}" specializes "${current.baseMethodologyName}", which no `
|
|
52
|
+
+ `resolved package declares.`,
|
|
53
|
+
methodology: current.usageName,
|
|
54
|
+
});
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
current = base;
|
|
58
|
+
}
|
|
59
|
+
// The selected methodology decides the mode; a base cannot widen a child.
|
|
60
|
+
const selected = chain[chain.length - 1];
|
|
61
|
+
const scopeMode = binding?.scopeMode === 'allAvailable'
|
|
62
|
+
? 'allAvailable'
|
|
63
|
+
: selected?.scopeMode ?? 'explicit';
|
|
64
|
+
const merge = (pick) => {
|
|
65
|
+
const out = [];
|
|
66
|
+
for (const m of chain)
|
|
67
|
+
for (const v of pick(m))
|
|
68
|
+
if (!out.includes(v))
|
|
69
|
+
out.push(v);
|
|
70
|
+
return out;
|
|
71
|
+
};
|
|
72
|
+
const includedModules = merge(m => m.includedModules);
|
|
73
|
+
for (const extra of binding?.includedModules ?? []) {
|
|
74
|
+
if (!includedModules.includes(extra))
|
|
75
|
+
includedModules.push(extra);
|
|
76
|
+
}
|
|
77
|
+
// A module the methodology names but the import graph never resolved is a
|
|
78
|
+
// hard diagnostic: a string naming an unavailable package is not a selection.
|
|
79
|
+
for (const m of includedModules) {
|
|
80
|
+
if (!availablePackages.has(m)) {
|
|
81
|
+
diagnostics.push({
|
|
82
|
+
code: 'unavailable-module',
|
|
83
|
+
message: `Module "${m}" is selected but is not in the project's import closure. Import the package, `
|
|
84
|
+
+ `or remove it from the selection — a name alone does not make a module available.`,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const m of chain) {
|
|
89
|
+
if (m.scopeMode === 'allAvailable') {
|
|
90
|
+
const listed = [
|
|
91
|
+
...m.includedLayers, ...m.includedModules, ...m.includedStandards,
|
|
92
|
+
...m.includedArtifactKinds, ...m.includedViewpoints,
|
|
93
|
+
];
|
|
94
|
+
if (listed.length > 0) {
|
|
95
|
+
diagnostics.push({
|
|
96
|
+
code: 'scope-mode-conflict',
|
|
97
|
+
message: `Methodology "${m.usageName}" sets scopeMode = allAvailable but also authors inclusion `
|
|
98
|
+
+ `entries. Under allAvailable the lists must be empty; otherwise the methodology states `
|
|
99
|
+
+ `its scope twice and the resolver has to pick.`,
|
|
100
|
+
methodology: m.usageName,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const policyChain = [];
|
|
106
|
+
for (const m of chain) {
|
|
107
|
+
for (const p of m.rulePolicies) {
|
|
108
|
+
policyChain.push({ source: m.usageName, level: 'methodology', policy: p });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const p of binding?.rulePolicies ?? []) {
|
|
112
|
+
policyChain.push({ source: binding.usageName, level: 'project', policy: p });
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
chain,
|
|
116
|
+
scopeMode,
|
|
117
|
+
includedLayers: merge(m => m.includedLayers),
|
|
118
|
+
includedModules,
|
|
119
|
+
includedStandards: merge(m => m.includedStandards),
|
|
120
|
+
includedArtifactKinds: merge(m => m.includedArtifactKinds),
|
|
121
|
+
includedViewpoints: merge(m => m.includedViewpoints),
|
|
122
|
+
policyChain,
|
|
123
|
+
diagnostics,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Map compiled native constraints onto rule candidates.
|
|
128
|
+
*
|
|
129
|
+
* One place, because both `memo rules` and the dev server need it and they got
|
|
130
|
+
* the field names wrong independently — `collectNativeConstraints` returns
|
|
131
|
+
* `id`/`typeName`/`sourceFile`, not `ruleId`/`ruleType`/`file`. A rule whose
|
|
132
|
+
* identity does not survive this mapping resolves as `undefined` and is
|
|
133
|
+
* unauditable, which is the opposite of what section 10.4 asks for.
|
|
134
|
+
*
|
|
135
|
+
* A constraint with no `typeName` is skipped: a policy references a rule by its
|
|
136
|
+
* `constraint def` name, so a rule without one cannot be tailored and does not
|
|
137
|
+
* belong in a set whose purpose is recording tailoring decisions.
|
|
138
|
+
*/
|
|
139
|
+
export function ruleCandidatesFromConstraints(constraints) {
|
|
140
|
+
const candidates = [];
|
|
141
|
+
for (const constraint of constraints) {
|
|
142
|
+
if (!constraint.typeName)
|
|
143
|
+
continue;
|
|
144
|
+
candidates.push({
|
|
145
|
+
id: constraint.id,
|
|
146
|
+
typeName: constraint.typeName,
|
|
147
|
+
severity: constraint.severity,
|
|
148
|
+
tailoring: constraint.tailoring ?? 'assurance',
|
|
149
|
+
file: constraint.sourceFile,
|
|
150
|
+
constraint,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return candidates;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Produce the effective rule set.
|
|
157
|
+
*
|
|
158
|
+
* Steps 1-3 of section 10.3 (collecting rules from ontology, extension, and
|
|
159
|
+
* methodology packages) happen upstream: `collectNativeConstraints` walks the
|
|
160
|
+
* resolved closure, which is exactly the set of packages those steps describe.
|
|
161
|
+
* This function is steps 4-9 — apply policies base-first, validate, and emit.
|
|
162
|
+
*/
|
|
163
|
+
export function resolveEffectiveRules(candidates, policyChain) {
|
|
164
|
+
const diagnostics = [];
|
|
165
|
+
// Step 8, first half: IDs must be unique and types must be unambiguous.
|
|
166
|
+
const byId = new Map();
|
|
167
|
+
const byType = new Map();
|
|
168
|
+
for (const c of candidates) {
|
|
169
|
+
const clash = byId.get(c.id);
|
|
170
|
+
if (clash && clash.typeName !== c.typeName) {
|
|
171
|
+
diagnostics.push({
|
|
172
|
+
code: 'duplicate-rule-id',
|
|
173
|
+
message: `Rule ID ${c.id} is declared by both ${clash.typeName} and ${c.typeName}. Rule IDs are audit `
|
|
174
|
+
+ `identity; two rules sharing one leaves every violation ambiguous.`,
|
|
175
|
+
ruleId: c.id,
|
|
176
|
+
file: c.file,
|
|
177
|
+
});
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
byId.set(c.id, c);
|
|
181
|
+
const list = byType.get(c.typeName) ?? [];
|
|
182
|
+
list.push(c);
|
|
183
|
+
byType.set(c.typeName, list);
|
|
184
|
+
}
|
|
185
|
+
const state = new Map();
|
|
186
|
+
for (const c of byId.values()) {
|
|
187
|
+
state.set(c.typeName, {
|
|
188
|
+
sourceRuleId: c.id,
|
|
189
|
+
sourceRuleType: c.typeName,
|
|
190
|
+
activeRuleId: c.id,
|
|
191
|
+
activeRuleType: c.typeName,
|
|
192
|
+
disposition: 'enabled',
|
|
193
|
+
effectiveSeverity: c.severity,
|
|
194
|
+
declaredSeverity: c.severity,
|
|
195
|
+
tailoring: c.tailoring,
|
|
196
|
+
policyChain: [],
|
|
197
|
+
sourceFile: c.file,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
for (const entry of policyChain) {
|
|
201
|
+
const { policy } = entry;
|
|
202
|
+
const targetType = policy.targetRuleType;
|
|
203
|
+
if (!targetType) {
|
|
204
|
+
diagnostics.push({
|
|
205
|
+
code: 'missing-target',
|
|
206
|
+
message: `Policy "${policy.usageName}" names no targetRule. A policy with no target changes nothing `
|
|
207
|
+
+ `and hides that it changes nothing.`,
|
|
208
|
+
policy: policy.usageName,
|
|
209
|
+
file: policy.sourceFile,
|
|
210
|
+
});
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
const rule = state.get(targetType);
|
|
214
|
+
if (!rule) {
|
|
215
|
+
diagnostics.push({
|
|
216
|
+
code: 'missing-target',
|
|
217
|
+
message: `Policy "${policy.usageName}" targets rule "${targetType}", which is not in the resolved rule `
|
|
218
|
+
+ `set. Import the package declaring it, or remove the policy.`,
|
|
219
|
+
policy: policy.usageName,
|
|
220
|
+
file: policy.sourceFile,
|
|
221
|
+
});
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
const ambiguous = byType.get(targetType);
|
|
225
|
+
if (ambiguous && ambiguous.length > 1) {
|
|
226
|
+
diagnostics.push({
|
|
227
|
+
code: 'ambiguous-target',
|
|
228
|
+
message: `Policy "${policy.usageName}" targets "${targetType}", which resolves to ${ambiguous.length} `
|
|
229
|
+
+ `declarations. A reference must name exactly one rule.`,
|
|
230
|
+
policy: policy.usageName,
|
|
231
|
+
ruleId: rule.sourceRuleId,
|
|
232
|
+
file: policy.sourceFile,
|
|
233
|
+
});
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
const disposition = policy.disposition ?? 'enabled';
|
|
237
|
+
// Step 8: an invariant holds the ontology's own consistency. It changes
|
|
238
|
+
// in an ontology release, not in a methodology.
|
|
239
|
+
if (rule.tailoring === 'invariant' && disposition !== 'enabled') {
|
|
240
|
+
diagnostics.push({
|
|
241
|
+
code: 'invariant-protected',
|
|
242
|
+
message: `Policy "${policy.usageName}" tries to ${disposition === 'disabled' ? 'disable' : 'replace'} `
|
|
243
|
+
+ `${rule.sourceRuleId} (${targetType}), which is classified invariant. Invariant rules hold `
|
|
244
|
+
+ `the ontology's internal consistency and can only change in an ontology release.`,
|
|
245
|
+
ruleId: rule.sourceRuleId,
|
|
246
|
+
policy: policy.usageName,
|
|
247
|
+
file: policy.sourceFile,
|
|
248
|
+
});
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (disposition !== 'enabled' && !policy.rationaleText) {
|
|
252
|
+
diagnostics.push({
|
|
253
|
+
code: 'missing-rationale',
|
|
254
|
+
message: `Policy "${policy.usageName}" ${disposition}s ${rule.sourceRuleId} without a rationale. `
|
|
255
|
+
+ `A tailoring decision that records no reason cannot be audited.`,
|
|
256
|
+
ruleId: rule.sourceRuleId,
|
|
257
|
+
policy: policy.usageName,
|
|
258
|
+
file: policy.sourceFile,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
if (disposition === 'replaced') {
|
|
262
|
+
const replacementType = policy.replacementRuleType;
|
|
263
|
+
if (!replacementType) {
|
|
264
|
+
diagnostics.push({
|
|
265
|
+
code: 'replacement-without-target',
|
|
266
|
+
message: `Policy "${policy.usageName}" sets disposition = replaced but names no replacementRule. `
|
|
267
|
+
+ `A replacement must point at another native constraint.`,
|
|
268
|
+
ruleId: rule.sourceRuleId,
|
|
269
|
+
policy: policy.usageName,
|
|
270
|
+
file: policy.sourceFile,
|
|
271
|
+
});
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
const replacement = state.get(replacementType);
|
|
275
|
+
if (!replacement) {
|
|
276
|
+
diagnostics.push({
|
|
277
|
+
code: 'missing-replacement',
|
|
278
|
+
message: `Policy "${policy.usageName}" replaces ${rule.sourceRuleId} with "${replacementType}", `
|
|
279
|
+
+ `which is not in the resolved rule set.`,
|
|
280
|
+
ruleId: rule.sourceRuleId,
|
|
281
|
+
policy: policy.usageName,
|
|
282
|
+
file: policy.sourceFile,
|
|
283
|
+
});
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
rule.activeRuleType = replacementType;
|
|
287
|
+
rule.activeRuleId = replacement.sourceRuleId;
|
|
288
|
+
}
|
|
289
|
+
rule.disposition = disposition;
|
|
290
|
+
if (policy.severityOverride)
|
|
291
|
+
rule.effectiveSeverity = policy.severityOverride;
|
|
292
|
+
rule.policyChain.push(entry);
|
|
293
|
+
if (policy.rationaleText)
|
|
294
|
+
rule.rationaleText = policy.rationaleText;
|
|
295
|
+
if (policy.authority)
|
|
296
|
+
rule.authority = policy.authority;
|
|
297
|
+
if (policy.approvalReference)
|
|
298
|
+
rule.approvalReference = policy.approvalReference;
|
|
299
|
+
}
|
|
300
|
+
// A replaced rule's replacement should not also evaluate in its own right;
|
|
301
|
+
// it is the substitute, not an addition.
|
|
302
|
+
const replacementTypes = new Set([...state.values()].filter(r => r.disposition === 'replaced').map(r => r.activeRuleType));
|
|
303
|
+
const rules = [...state.values()].sort((a, b) => a.sourceRuleId.localeCompare(b.sourceRuleId));
|
|
304
|
+
const activeConstraints = [];
|
|
305
|
+
for (const rule of rules) {
|
|
306
|
+
if (rule.disposition === 'disabled')
|
|
307
|
+
continue;
|
|
308
|
+
if (rule.disposition === 'enabled' && replacementTypes.has(rule.sourceRuleType))
|
|
309
|
+
continue;
|
|
310
|
+
const candidate = byType.get(rule.activeRuleType)?.[0];
|
|
311
|
+
if (!candidate?.constraint)
|
|
312
|
+
continue;
|
|
313
|
+
activeConstraints.push({ ...candidate.constraint, severity: rule.effectiveSeverity });
|
|
314
|
+
}
|
|
315
|
+
return { rules, diagnostics, activeConstraints };
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=methodology-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methodology-resolver.js","sourceRoot":"","sources":["../../src/model/methodology-resolver.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,8EAA8E;AAC9E,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,+EAA+E;AAC/E,qDAAqD;AACrD,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,uCAAuC;AACvC,EAAE;AACF,iDAAiD;AACjD,gFAAgF;AAuFhF;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACvC,OAAwC,EACxC,aAA6C,EAC7C,iBAAsC;IAEtC,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,IAAI,OAAO,GAAG,OAAO,EAAE,uBAAuB;QAC1C,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EACH,2CAA2C,OAAO,CAAC,SAAS,8BAA8B;sBACxF,kDAAkD;gBACxD,WAAW,EAAE,OAAO,CAAC,SAAS;aACjC,CAAC,CAAC;YACH,MAAM;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAAE,MAAM;QACxC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,cAAc;gBACpB,OAAO,EACH,gBAAgB,OAAO,CAAC,SAAS,kBAAkB,OAAO,CAAC,mBAAmB,cAAc;sBAC1F,4BAA4B;gBAClC,WAAW,EAAE,OAAO,CAAC,SAAS;aACjC,CAAC,CAAC;YACH,MAAM;QACV,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAc,OAAO,EAAE,SAAS,KAAK,cAAc;QAC9D,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,UAAU,CAAC;IAExC,MAAM,KAAK,GAAG,CAAC,IAAwC,EAAY,EAAE;QACjE,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EACH,WAAW,CAAC,gFAAgF;sBAC1F,kFAAkF;aAC3F,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG;gBACX,GAAG,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,iBAAiB;gBACjE,GAAG,CAAC,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,kBAAkB;aACtD,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACH,gBAAgB,CAAC,CAAC,SAAS,6DAA6D;0BACtF,wFAAwF;0BACxF,+CAA+C;oBACrD,WAAW,EAAE,CAAC,CAAC,SAAS;iBAC3B,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC;QAC1C,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACH,KAAK;QACL,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5C,eAAe;QACf,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAClD,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC1D,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACpD,WAAW;QACX,WAAW;KACd,CAAC;AACN,CAAC;AAcD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CACzC,WAA0C;IAE1C,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,QAAQ;YAAE,SAAS;QACnC,UAAU,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,WAAW;YAC9C,IAAI,EAAE,UAAU,CAAC,UAAU;YAC3B,UAAU;SACb,CAAC,CAAC;IACP,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACjC,UAA2B,EAC3B,WAA+B;IAE/B,MAAM,WAAW,GAA+B,EAAE,CAAC;IAEnD,wEAAwE;IACxE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EACH,WAAW,CAAC,CAAC,EAAE,wBAAwB,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC,QAAQ,uBAAuB;sBAC5F,mEAAmE;gBACzE,MAAM,EAAE,CAAC,CAAC,EAAE;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;aACf,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;YAClB,YAAY,EAAE,CAAC,CAAC,EAAE;YAClB,cAAc,EAAE,CAAC,CAAC,QAAQ;YAC1B,YAAY,EAAE,CAAC,CAAC,EAAE;YAClB,cAAc,EAAE,CAAC,CAAC,QAAQ;YAC1B,WAAW,EAAE,SAAS;YACtB,iBAAiB,EAAE,CAAC,CAAC,QAAQ;YAC7B,gBAAgB,EAAE,CAAC,CAAC,QAAQ;YAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,iEAAiE;sBAC1F,oCAAoC;gBAC1C,MAAM,EAAE,MAAM,CAAC,SAAS;gBACxB,IAAI,EAAE,MAAM,CAAC,UAAU;aAC1B,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,mBAAmB,UAAU,uCAAuC;sBAC7F,6DAA6D;gBACnE,MAAM,EAAE,MAAM,CAAC,SAAS;gBACxB,IAAI,EAAE,MAAM,CAAC,UAAU;aAC1B,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,cAAc,UAAU,wBAAwB,SAAS,CAAC,MAAM,GAAG;sBAC5F,uDAAuD;gBAC7D,MAAM,EAAE,MAAM,CAAC,SAAS;gBACxB,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,IAAI,EAAE,MAAM,CAAC,UAAU;aAC1B,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;QAEpD,wEAAwE;QACxE,gDAAgD;QAChD,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9D,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,cAAc,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG;sBAC5F,GAAG,IAAI,CAAC,YAAY,KAAK,UAAU,yDAAyD;sBAC5F,iFAAiF;gBACvF,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,MAAM,EAAE,MAAM,CAAC,SAAS;gBACxB,IAAI,EAAE,MAAM,CAAC,UAAU;aAC1B,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,KAAK,WAAW,KAAK,IAAI,CAAC,YAAY,wBAAwB;sBACvF,gEAAgE;gBACtE,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,MAAM,EAAE,MAAM,CAAC,SAAS;gBACxB,IAAI,EAAE,MAAM,CAAC,UAAU;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC;YACnD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,WAAW,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,8DAA8D;0BACvF,wDAAwD;oBAC9D,MAAM,EAAE,IAAI,CAAC,YAAY;oBACzB,MAAM,EAAE,MAAM,CAAC,SAAS;oBACxB,IAAI,EAAE,MAAM,CAAC,UAAU;iBAC1B,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YACD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACH,WAAW,MAAM,CAAC,SAAS,cAAc,IAAI,CAAC,YAAY,UAAU,eAAe,KAAK;0BACtF,wCAAwC;oBAC9C,MAAM,EAAE,IAAI,CAAC,YAAY;oBACzB,MAAM,EAAE,MAAM,CAAC,SAAS;oBACxB,IAAI,EAAE,MAAM,CAAC,UAAU;iBAC1B,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,MAAM,CAAC,gBAAgB;YAAE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,aAAa;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACpE,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACxD,IAAI,MAAM,CAAC,iBAAiB;YAAE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpF,CAAC;IAED,2EAA2E;IAC3E,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC5B,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAC3F,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/F,MAAM,iBAAiB,GAAyB,EAAE,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU;YAAE,SAAS;QAC9C,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAAE,SAAS;QAC1F,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,UAAU;YAAE,SAAS;QACrC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { ParsedDocument } from './parser-utils.js';
|
|
2
|
+
import type { SemanticOrigin } from './source-provenance.js';
|
|
3
|
+
/** The conventional native entrypoint, relative to the project root. */
|
|
4
|
+
export declare const PROJECT_ENTRYPOINT: string;
|
|
5
|
+
/** Where a resolvable SysML package's source lives. */
|
|
6
|
+
export interface LibraryRoot {
|
|
7
|
+
/** Absolute package directory (the one carrying the descriptor). */
|
|
8
|
+
dir: string;
|
|
9
|
+
/** Absolute directory holding the package's .sysml sources. */
|
|
10
|
+
sysmlDir: string;
|
|
11
|
+
packageName: string;
|
|
12
|
+
packageVersion?: string;
|
|
13
|
+
}
|
|
14
|
+
/** One SysML package the resolver found, and where it came from. */
|
|
15
|
+
export interface ResolvedPackage {
|
|
16
|
+
/** Declared SysML package name, e.g. "memo_methodology_core". */
|
|
17
|
+
qualifiedName: string;
|
|
18
|
+
/** Files declaring it. A package may be split across files. */
|
|
19
|
+
files: string[];
|
|
20
|
+
/** The library root that supplied it, or undefined for project-owned source. */
|
|
21
|
+
root?: LibraryRoot;
|
|
22
|
+
origin: SemanticOrigin;
|
|
23
|
+
/** Shortest import distance from the project entrypoint; project source is 0. */
|
|
24
|
+
importDepth: number;
|
|
25
|
+
/** Packages that import this one. */
|
|
26
|
+
importedBy: string[];
|
|
27
|
+
}
|
|
28
|
+
/** The project's method binding, read from SysML. */
|
|
29
|
+
export interface NativeMethodBinding {
|
|
30
|
+
/** Usage name, e.g. "uiScreenRegionsBinding". */
|
|
31
|
+
usageName: string;
|
|
32
|
+
/** `id` attribute, when authored. */
|
|
33
|
+
bindingId?: string;
|
|
34
|
+
projectName?: string;
|
|
35
|
+
/** Name the `selectedMethodology` reference resolves to. */
|
|
36
|
+
selectedMethodologyName?: string;
|
|
37
|
+
scopeMode?: ScopeMode;
|
|
38
|
+
includedModules: string[];
|
|
39
|
+
rulePolicies: NativeRulePolicy[];
|
|
40
|
+
sourceFile: string;
|
|
41
|
+
packageQualifiedName?: string;
|
|
42
|
+
}
|
|
43
|
+
export type ScopeMode = 'allAvailable' | 'explicit';
|
|
44
|
+
/** A `RulePolicy` usage, read from SysML. */
|
|
45
|
+
export interface NativeRulePolicy {
|
|
46
|
+
usageName: string;
|
|
47
|
+
/** Type name of the referenced `constraint def`, from `ref :>> targetRule : X`. */
|
|
48
|
+
targetRuleType?: string;
|
|
49
|
+
replacementRuleType?: string;
|
|
50
|
+
disposition?: 'enabled' | 'disabled' | 'replaced';
|
|
51
|
+
severityOverride?: 'error' | 'warning' | 'info';
|
|
52
|
+
rationaleText?: string;
|
|
53
|
+
authority?: string;
|
|
54
|
+
approvalReference?: string;
|
|
55
|
+
approvedBy?: string;
|
|
56
|
+
approvedOn?: string;
|
|
57
|
+
sourceFile: string;
|
|
58
|
+
}
|
|
59
|
+
/** A `MethodologyDefinition` usage, read from SysML. */
|
|
60
|
+
export interface NativeMethodology {
|
|
61
|
+
usageName: string;
|
|
62
|
+
methodologyId?: string;
|
|
63
|
+
displayName?: string;
|
|
64
|
+
version?: string;
|
|
65
|
+
/** Name the `baseMethodology` reference resolves to, when there is one. */
|
|
66
|
+
baseMethodologyName?: string;
|
|
67
|
+
scopeMode?: ScopeMode;
|
|
68
|
+
includedLayers: string[];
|
|
69
|
+
includedModules: string[];
|
|
70
|
+
includedStandards: string[];
|
|
71
|
+
includedArtifactKinds: string[];
|
|
72
|
+
includedViewpoints: string[];
|
|
73
|
+
rulePolicies: NativeRulePolicy[];
|
|
74
|
+
sourceFile: string;
|
|
75
|
+
packageQualifiedName?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface NativeDiagnostic {
|
|
78
|
+
code: 'no-entrypoint' | 'no-binding' | 'multiple-bindings' | 'unresolved-methodology' | 'unresolved-import' | 'unresolved-module' | 'scope-mode-conflict' | 'settings-graph-mismatch';
|
|
79
|
+
message: string;
|
|
80
|
+
file?: string;
|
|
81
|
+
}
|
|
82
|
+
export interface NativeProjectResolution {
|
|
83
|
+
projectRoot: string;
|
|
84
|
+
entrypoint?: string;
|
|
85
|
+
binding?: NativeMethodBinding;
|
|
86
|
+
/** Methodologies visible anywhere in the resolved closure, by usage name. */
|
|
87
|
+
methodologies: Map<string, NativeMethodology>;
|
|
88
|
+
/** Packages reachable from the project entrypoint, by qualified name. */
|
|
89
|
+
closure: Map<string, ResolvedPackage>;
|
|
90
|
+
/** Library roots that actually contributed a package to the closure. */
|
|
91
|
+
selectedRoots: LibraryRoot[];
|
|
92
|
+
/** Roots a locator offered that no import reached. */
|
|
93
|
+
unusedRoots: LibraryRoot[];
|
|
94
|
+
/** Every parsed document, project and reusable alike. */
|
|
95
|
+
documents: ParsedDocument[];
|
|
96
|
+
/**
|
|
97
|
+
* File → the SysML package it declares, for every parsed file.
|
|
98
|
+
*
|
|
99
|
+
* Wider than `closure`, deliberately: a caller asking "which package owns
|
|
100
|
+
* this rule?" needs an answer for every file that was loaded, and whether
|
|
101
|
+
* that package is in scope is a separate question with its own answer.
|
|
102
|
+
*/
|
|
103
|
+
filePackages: Map<string, string>;
|
|
104
|
+
diagnostics: NativeDiagnostic[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Find the project root by walking up for the native entrypoint.
|
|
108
|
+
*
|
|
109
|
+
* The marker is `model/catalog/project.sysml`, not a YAML file. A project is
|
|
110
|
+
* identified by the SysML that defines it, so a workspace stays a workspace
|
|
111
|
+
* after every application setting is deleted.
|
|
112
|
+
*/
|
|
113
|
+
export declare function findProjectRoot(startDir: string): string | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Collect the library roots a project could resolve packages from.
|
|
116
|
+
*
|
|
117
|
+
* This is deliberately generous: it lists what is *available*, and the import
|
|
118
|
+
* closure decides what is *selected*. A root listed here and never imported
|
|
119
|
+
* contributes nothing to the model.
|
|
120
|
+
*/
|
|
121
|
+
export declare function discoverLibraryRoots(projectRoot: string): LibraryRoot[];
|
|
122
|
+
/**
|
|
123
|
+
* Resolve a project from its native SysML alone.
|
|
124
|
+
*
|
|
125
|
+
* The closure walk starts at the entrypoint's package and follows imports.
|
|
126
|
+
* Anything it does not reach is not part of the model, however many manifests
|
|
127
|
+
* point at it.
|
|
128
|
+
*/
|
|
129
|
+
export declare function resolveNativeProject(projectRoot: string): Promise<NativeProjectResolution>;
|
|
130
|
+
//# sourceMappingURL=native-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-project.d.ts","sourceRoot":"","sources":["../../src/model/native-project.ts"],"names":[],"mappings":"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"}
|