@memoarchitect/tools 0.13.2 → 0.15.0
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 +40 -26
- package/corpus/README.md +20 -36
- package/package.json +9 -10
- package/packages/tools/lib/analysis/impact.d.ts +30 -0
- package/packages/tools/lib/analysis/impact.d.ts.map +1 -1
- package/packages/tools/lib/analysis/impact.js +47 -74
- package/packages/tools/lib/analysis/impact.js.map +1 -1
- package/packages/tools/lib/analysis/interfaces-between.d.ts +36 -0
- package/packages/tools/lib/analysis/interfaces-between.d.ts.map +1 -0
- package/packages/tools/lib/analysis/interfaces-between.js +66 -0
- package/packages/tools/lib/analysis/interfaces-between.js.map +1 -0
- package/packages/tools/lib/analysis/suspect-links.d.ts +45 -0
- package/packages/tools/lib/analysis/suspect-links.d.ts.map +1 -0
- package/packages/tools/lib/analysis/suspect-links.js +66 -0
- package/packages/tools/lib/analysis/suspect-links.js.map +1 -0
- package/packages/tools/lib/analysis-starters.d.ts +2 -0
- package/packages/tools/lib/analysis-starters.d.ts.map +1 -1
- package/packages/tools/lib/analysis-starters.js +73 -68
- package/packages/tools/lib/analysis-starters.js.map +1 -1
- package/packages/tools/lib/authoring/outline-identity.d.ts +34 -0
- package/packages/tools/lib/authoring/outline-identity.d.ts.map +1 -0
- package/packages/tools/lib/authoring/outline-identity.js +95 -0
- package/packages/tools/lib/authoring/outline-identity.js.map +1 -0
- package/packages/tools/lib/authoring/outline-source.d.ts +57 -0
- package/packages/tools/lib/authoring/outline-source.d.ts.map +1 -0
- package/packages/tools/lib/authoring/outline-source.js +203 -0
- package/packages/tools/lib/authoring/outline-source.js.map +1 -0
- package/packages/tools/lib/authoring/source-outline.d.ts +82 -0
- package/packages/tools/lib/authoring/source-outline.d.ts.map +1 -0
- package/packages/tools/lib/authoring/source-outline.js +267 -0
- package/packages/tools/lib/authoring/source-outline.js.map +1 -0
- package/packages/tools/lib/bin/memo.js +181 -632
- package/packages/tools/lib/bin/memo.js.map +1 -1
- package/packages/tools/lib/browser/index.d.ts +12 -0
- package/packages/tools/lib/browser/index.d.ts.map +1 -1
- package/packages/tools/lib/browser/index.js +8 -0
- package/packages/tools/lib/browser/index.js.map +1 -1
- package/packages/tools/lib/cli/project-commands.d.ts +3 -0
- package/packages/tools/lib/cli/project-commands.d.ts.map +1 -0
- package/packages/tools/lib/cli/project-commands.js +577 -0
- package/packages/tools/lib/cli/project-commands.js.map +1 -0
- package/packages/tools/lib/commands/ask.d.ts.map +1 -1
- package/packages/tools/lib/commands/ask.js +10 -18
- package/packages/tools/lib/commands/ask.js.map +1 -1
- package/packages/tools/lib/commands/compile.d.ts +18 -0
- package/packages/tools/lib/commands/compile.d.ts.map +1 -0
- package/packages/tools/lib/commands/compile.js +122 -0
- package/packages/tools/lib/commands/compile.js.map +1 -0
- package/packages/tools/lib/commands/convert.js +2 -2
- package/packages/tools/lib/commands/convert.js.map +1 -1
- package/packages/tools/lib/commands/create-package.js +4 -4
- package/packages/tools/lib/commands/create-package.js.map +1 -1
- package/packages/tools/lib/commands/dev.d.ts +20 -2
- package/packages/tools/lib/commands/dev.d.ts.map +1 -1
- package/packages/tools/lib/commands/dev.js +386 -97
- package/packages/tools/lib/commands/dev.js.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.js +7 -16
- package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
- package/packages/tools/lib/commands/dhf-init.js +3 -3
- package/packages/tools/lib/commands/dhf-init.js.map +1 -1
- package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf-lint.js +4 -3
- package/packages/tools/lib/commands/dhf-lint.js.map +1 -1
- package/packages/tools/lib/commands/dhf-preview.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf-preview.js +5 -26
- package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
- package/packages/tools/lib/commands/dhf.d.ts +4 -0
- package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf.js +77 -31
- package/packages/tools/lib/commands/dhf.js.map +1 -1
- package/packages/tools/lib/commands/element.d.ts.map +1 -1
- package/packages/tools/lib/commands/element.js +44 -6
- package/packages/tools/lib/commands/element.js.map +1 -1
- package/packages/tools/lib/commands/export.d.ts +1 -1
- package/packages/tools/lib/commands/export.d.ts.map +1 -1
- package/packages/tools/lib/commands/export.js +25 -18
- 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 -30
- package/packages/tools/lib/commands/generate.js.map +1 -1
- package/packages/tools/lib/commands/ids-rebase.d.ts +15 -0
- package/packages/tools/lib/commands/ids-rebase.d.ts.map +1 -0
- package/packages/tools/lib/commands/ids-rebase.js +133 -0
- package/packages/tools/lib/commands/ids-rebase.js.map +1 -0
- package/packages/tools/lib/commands/import-ea.d.ts +3 -3
- package/packages/tools/lib/commands/import-ea.d.ts.map +1 -1
- package/packages/tools/lib/commands/import-ea.js +12 -9
- package/packages/tools/lib/commands/import-ea.js.map +1 -1
- package/packages/tools/lib/commands/import-owl.d.ts +1 -1
- package/packages/tools/lib/commands/import-owl.js +2 -2
- package/packages/tools/lib/commands/import-owl.js.map +1 -1
- package/packages/tools/lib/commands/import-sysand.d.ts +1 -1
- package/packages/tools/lib/commands/import-sysand.d.ts.map +1 -1
- package/packages/tools/lib/commands/import-sysand.js +15 -6
- package/packages/tools/lib/commands/import-sysand.js.map +1 -1
- package/packages/tools/lib/commands/import.d.ts +13 -0
- package/packages/tools/lib/commands/import.d.ts.map +1 -1
- package/packages/tools/lib/commands/import.js +89 -29
- package/packages/tools/lib/commands/import.js.map +1 -1
- package/packages/tools/lib/commands/init.d.ts +0 -8
- package/packages/tools/lib/commands/init.d.ts.map +1 -1
- package/packages/tools/lib/commands/init.js +56 -51
- package/packages/tools/lib/commands/init.js.map +1 -1
- package/packages/tools/lib/commands/inspect.d.ts.map +1 -1
- package/packages/tools/lib/commands/inspect.js +22 -15
- package/packages/tools/lib/commands/inspect.js.map +1 -1
- package/packages/tools/lib/commands/install.d.ts.map +1 -1
- package/packages/tools/lib/commands/install.js +9 -6
- package/packages/tools/lib/commands/install.js.map +1 -1
- package/packages/tools/lib/commands/interfaces.d.ts +8 -0
- package/packages/tools/lib/commands/interfaces.d.ts.map +1 -0
- package/packages/tools/lib/commands/interfaces.js +71 -0
- package/packages/tools/lib/commands/interfaces.js.map +1 -0
- package/packages/tools/lib/commands/lock.d.ts.map +1 -1
- package/packages/tools/lib/commands/lock.js +13 -6
- package/packages/tools/lib/commands/lock.js.map +1 -1
- package/packages/tools/lib/commands/mcp.js +7 -7
- package/packages/tools/lib/commands/mcp.js.map +1 -1
- package/packages/tools/lib/commands/migrate-layout.d.ts +5 -0
- package/packages/tools/lib/commands/migrate-layout.d.ts.map +1 -0
- package/packages/tools/lib/commands/migrate-layout.js +90 -0
- package/packages/tools/lib/commands/migrate-layout.js.map +1 -0
- package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
- package/packages/tools/lib/commands/ontology.js +26 -22
- package/packages/tools/lib/commands/ontology.js.map +1 -1
- package/packages/tools/lib/commands/pack.d.ts.map +1 -1
- package/packages/tools/lib/commands/pack.js +14 -9
- package/packages/tools/lib/commands/pack.js.map +1 -1
- package/packages/tools/lib/commands/pinned-target.d.ts +12 -0
- package/packages/tools/lib/commands/pinned-target.d.ts.map +1 -0
- package/packages/tools/lib/commands/pinned-target.js +74 -0
- package/packages/tools/lib/commands/pinned-target.js.map +1 -0
- package/packages/tools/lib/commands/plugin.d.ts.map +1 -1
- package/packages/tools/lib/commands/plugin.js +13 -22
- package/packages/tools/lib/commands/plugin.js.map +1 -1
- package/packages/tools/lib/commands/prune.d.ts +5 -0
- package/packages/tools/lib/commands/prune.d.ts.map +1 -0
- package/packages/tools/lib/commands/prune.js +27 -0
- package/packages/tools/lib/commands/prune.js.map +1 -0
- package/packages/tools/lib/commands/retired.d.ts +10 -0
- package/packages/tools/lib/commands/retired.d.ts.map +1 -0
- package/packages/tools/lib/commands/retired.js +35 -0
- package/packages/tools/lib/commands/retired.js.map +1 -0
- package/packages/tools/lib/commands/rules.d.ts +49 -5
- package/packages/tools/lib/commands/rules.d.ts.map +1 -1
- package/packages/tools/lib/commands/rules.js +340 -172
- package/packages/tools/lib/commands/rules.js.map +1 -1
- package/packages/tools/lib/commands/ship-library.d.ts +4 -0
- package/packages/tools/lib/commands/ship-library.d.ts.map +1 -0
- package/packages/tools/lib/commands/ship-library.js +45 -0
- package/packages/tools/lib/commands/ship-library.js.map +1 -0
- package/packages/tools/lib/commands/standards.d.ts +2 -2
- package/packages/tools/lib/commands/standards.d.ts.map +1 -1
- package/packages/tools/lib/commands/standards.js +78 -33
- package/packages/tools/lib/commands/standards.js.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.d.ts +16 -1
- package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.js +75 -193
- package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
- package/packages/tools/lib/commands/toolchain.d.ts +5 -0
- package/packages/tools/lib/commands/toolchain.d.ts.map +1 -1
- package/packages/tools/lib/commands/toolchain.js +50 -1
- package/packages/tools/lib/commands/toolchain.js.map +1 -1
- package/packages/tools/lib/commands/validate-client.d.ts +11 -0
- package/packages/tools/lib/commands/validate-client.d.ts.map +1 -0
- package/packages/tools/lib/commands/validate-client.js +54 -0
- package/packages/tools/lib/commands/validate-client.js.map +1 -0
- package/packages/tools/lib/commands/validate.d.ts +33 -2
- package/packages/tools/lib/commands/validate.d.ts.map +1 -1
- package/packages/tools/lib/commands/validate.js +432 -186
- package/packages/tools/lib/commands/validate.js.map +1 -1
- package/packages/tools/lib/dhf/device-dhf.d.ts +57 -0
- package/packages/tools/lib/dhf/device-dhf.d.ts.map +1 -0
- package/packages/tools/lib/dhf/device-dhf.js +152 -0
- package/packages/tools/lib/dhf/device-dhf.js.map +1 -0
- package/packages/tools/lib/dhf/dhf-config-v2.d.ts +1 -1
- package/packages/tools/lib/dhf/dhf-config-v2.d.ts.map +1 -1
- package/packages/tools/lib/dhf/query-engine.d.ts +9 -2
- package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
- package/packages/tools/lib/dhf/query-engine.js +29 -25
- package/packages/tools/lib/dhf/query-engine.js.map +1 -1
- package/packages/tools/lib/dhf/query-executor.d.ts +1 -1
- package/packages/tools/lib/dhf/query-executor.js +1 -1
- package/packages/tools/lib/dhf/query-executor.js.map +1 -1
- package/packages/tools/lib/dhf/standards-block.js +1 -1
- package/packages/tools/lib/dhf/standards-block.js.map +1 -1
- package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -1
- package/packages/tools/lib/dhf/standards-library.js +16 -9
- package/packages/tools/lib/dhf/standards-library.js.map +1 -1
- package/packages/tools/lib/dhf/standards-report.d.ts +11 -3
- package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -1
- package/packages/tools/lib/dhf/standards-report.js +43 -13
- package/packages/tools/lib/dhf/standards-report.js.map +1 -1
- package/packages/tools/lib/dhf/template-engine.d.ts +2 -0
- package/packages/tools/lib/dhf/template-engine.d.ts.map +1 -1
- package/packages/tools/lib/dhf/template-engine.js +5 -5
- package/packages/tools/lib/dhf/template-engine.js.map +1 -1
- package/packages/tools/lib/import/import-diff.d.ts +31 -1
- package/packages/tools/lib/import/import-diff.d.ts.map +1 -1
- package/packages/tools/lib/import/import-diff.js +91 -19
- package/packages/tools/lib/import/import-diff.js.map +1 -1
- package/packages/tools/lib/import/import-sources.d.ts +21 -0
- package/packages/tools/lib/import/import-sources.d.ts.map +1 -0
- package/packages/tools/lib/import/import-sources.js +36 -0
- package/packages/tools/lib/import/import-sources.js.map +1 -0
- package/packages/tools/lib/import/reqif.d.ts +23 -0
- package/packages/tools/lib/import/reqif.d.ts.map +1 -0
- package/packages/tools/lib/import/reqif.js +151 -0
- package/packages/tools/lib/import/reqif.js.map +1 -0
- package/packages/tools/lib/import/source-import.d.ts +128 -0
- package/packages/tools/lib/import/source-import.d.ts.map +1 -0
- package/packages/tools/lib/import/source-import.js +305 -0
- package/packages/tools/lib/import/source-import.js.map +1 -0
- package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/cameo-importer.js +4 -1
- package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
- package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/ea-importer.js +4 -1
- package/packages/tools/lib/importer/ea-importer.js.map +1 -1
- package/packages/tools/lib/importer/sysand-importer.d.ts +2 -1
- package/packages/tools/lib/importer/sysand-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/sysand-importer.js +27 -10
- package/packages/tools/lib/importer/sysand-importer.js.map +1 -1
- package/packages/tools/lib/index.d.ts +20 -6
- package/packages/tools/lib/index.d.ts.map +1 -1
- package/packages/tools/lib/index.js +22 -8
- package/packages/tools/lib/index.js.map +1 -1
- package/packages/tools/lib/llm/draft-engine.js +1 -1
- package/packages/tools/lib/llm/draft-engine.js.map +1 -1
- package/packages/tools/lib/llm/model-context.js +1 -1
- package/packages/tools/lib/llm/model-context.js.map +1 -1
- package/packages/tools/lib/lock.d.ts +37 -2
- package/packages/tools/lib/lock.d.ts.map +1 -1
- package/packages/tools/lib/lock.js +93 -8
- package/packages/tools/lib/lock.js.map +1 -1
- package/packages/tools/lib/mcp/index.js +1 -1
- package/packages/tools/lib/mcp/index.js.map +1 -1
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +6 -18
- package/packages/tools/lib/mcp/model-loader.js.map +1 -1
- package/packages/tools/lib/mcp/server.js +2 -2
- package/packages/tools/lib/mcp/server.js.map +1 -1
- package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
- package/packages/tools/lib/mcp/tools.js +5 -4
- package/packages/tools/lib/mcp/tools.js.map +1 -1
- package/packages/tools/lib/methodology/guide-service.d.ts +28 -0
- package/packages/tools/lib/methodology/guide-service.d.ts.map +1 -0
- package/packages/tools/lib/methodology/guide-service.js +32 -0
- package/packages/tools/lib/methodology/guide-service.js.map +1 -0
- package/packages/tools/lib/methodology/guide.d.ts +56 -0
- package/packages/tools/lib/methodology/guide.d.ts.map +1 -0
- package/packages/tools/lib/methodology/guide.js +80 -0
- package/packages/tools/lib/methodology/guide.js.map +1 -0
- package/packages/tools/lib/model/census-projects.d.ts +26 -0
- package/packages/tools/lib/model/census-projects.d.ts.map +1 -0
- package/packages/tools/lib/model/census-projects.js +53 -0
- package/packages/tools/lib/model/census-projects.js.map +1 -0
- package/packages/tools/lib/model/census.d.ts +103 -0
- package/packages/tools/lib/model/census.d.ts.map +1 -0
- package/packages/tools/lib/model/census.js +229 -0
- package/packages/tools/lib/model/census.js.map +1 -0
- package/packages/tools/lib/model/complete-model.d.ts +52 -0
- package/packages/tools/lib/model/complete-model.d.ts.map +1 -0
- package/packages/tools/lib/model/complete-model.js +287 -0
- package/packages/tools/lib/model/complete-model.js.map +1 -0
- package/packages/tools/lib/model/config-loader.d.ts +8 -3
- package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/config-loader.js +37 -6
- package/packages/tools/lib/model/config-loader.js.map +1 -1
- package/packages/tools/lib/model/config.d.ts +21 -7
- package/packages/tools/lib/model/config.d.ts.map +1 -1
- package/packages/tools/lib/model/effective-scope.d.ts +55 -28
- package/packages/tools/lib/model/effective-scope.d.ts.map +1 -1
- package/packages/tools/lib/model/effective-scope.js +96 -35
- package/packages/tools/lib/model/effective-scope.js.map +1 -1
- package/packages/tools/lib/model/element-index.d.ts +207 -0
- package/packages/tools/lib/model/element-index.d.ts.map +1 -0
- package/packages/tools/lib/model/element-index.js +316 -0
- package/packages/tools/lib/model/element-index.js.map +1 -0
- package/packages/tools/lib/model/id-rebase.d.ts +35 -0
- package/packages/tools/lib/model/id-rebase.d.ts.map +1 -0
- package/packages/tools/lib/model/id-rebase.js +199 -0
- package/packages/tools/lib/model/id-rebase.js.map +1 -0
- package/packages/tools/lib/model/identity-registry.d.ts +34 -3
- package/packages/tools/lib/model/identity-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/identity-registry.js +40 -7
- package/packages/tools/lib/model/identity-registry.js.map +1 -1
- package/packages/tools/lib/model/impact.d.ts +75 -0
- package/packages/tools/lib/model/impact.d.ts.map +1 -0
- package/packages/tools/lib/model/impact.js +167 -0
- package/packages/tools/lib/model/impact.js.map +1 -0
- package/packages/tools/lib/model/ir-identity.d.ts +3 -51
- package/packages/tools/lib/model/ir-identity.d.ts.map +1 -1
- package/packages/tools/lib/model/ir-identity.js +14 -121
- package/packages/tools/lib/model/ir-identity.js.map +1 -1
- package/packages/tools/lib/model/kind-registry.d.ts +66 -22
- package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/kind-registry.js +104 -145
- package/packages/tools/lib/model/kind-registry.js.map +1 -1
- package/packages/tools/lib/model/manifest.d.ts +2 -2
- package/packages/tools/lib/model/manifest.d.ts.map +1 -1
- package/packages/tools/lib/model/manifest.js +5 -4
- package/packages/tools/lib/model/manifest.js.map +1 -1
- package/packages/tools/lib/model/methodology-loader.d.ts +11 -2
- package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-loader.js +24 -130
- package/packages/tools/lib/model/methodology-loader.js.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.d.ts +71 -6
- package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.js +210 -24
- package/packages/tools/lib/model/methodology-resolver.js.map +1 -1
- package/packages/tools/lib/model/model-diff.d.ts +73 -0
- package/packages/tools/lib/model/model-diff.d.ts.map +1 -0
- package/packages/tools/lib/model/model-diff.js +91 -0
- package/packages/tools/lib/model/model-diff.js.map +1 -0
- package/packages/tools/lib/model/narrow-model.d.ts +9 -0
- package/packages/tools/lib/model/narrow-model.d.ts.map +1 -0
- package/packages/tools/lib/model/narrow-model.js +54 -0
- package/packages/tools/lib/model/narrow-model.js.map +1 -0
- package/packages/tools/lib/model/native-project.d.ts +92 -11
- package/packages/tools/lib/model/native-project.d.ts.map +1 -1
- package/packages/tools/lib/model/native-project.js +163 -269
- package/packages/tools/lib/model/native-project.js.map +1 -1
- package/packages/tools/lib/model/ontology-loader.d.ts +10 -61
- package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/ontology-loader.js +11 -512
- package/packages/tools/lib/model/ontology-loader.js.map +1 -1
- package/packages/tools/lib/model/package-manifest.d.ts +8 -2
- package/packages/tools/lib/model/package-manifest.d.ts.map +1 -1
- package/packages/tools/lib/model/package-manifest.js +14 -2
- package/packages/tools/lib/model/package-manifest.js.map +1 -1
- package/packages/tools/lib/model/pinned.d.ts +216 -0
- package/packages/tools/lib/model/pinned.d.ts.map +1 -0
- package/packages/tools/lib/model/pinned.js +481 -0
- package/packages/tools/lib/model/pinned.js.map +1 -0
- package/packages/tools/lib/model/project-conversion.d.ts +3 -2
- package/packages/tools/lib/model/project-conversion.d.ts.map +1 -1
- package/packages/tools/lib/model/project-conversion.js +55 -10
- package/packages/tools/lib/model/project-conversion.js.map +1 -1
- package/packages/tools/lib/model/project-settings.d.ts +10 -0
- package/packages/tools/lib/model/project-settings.d.ts.map +1 -0
- package/packages/tools/lib/model/project-settings.js +48 -0
- package/packages/tools/lib/model/project-settings.js.map +1 -0
- package/packages/tools/lib/model/relation-selection.d.ts +25 -0
- package/packages/tools/lib/model/relation-selection.d.ts.map +1 -0
- package/packages/tools/lib/model/relation-selection.js +65 -0
- package/packages/tools/lib/model/relation-selection.js.map +1 -0
- package/packages/tools/lib/model/relationship-legality.d.ts +6 -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 +21 -8
- package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-registry.js +77 -129
- package/packages/tools/lib/model/relationship-registry.js.map +1 -1
- package/packages/tools/lib/model/relationship-subjects.d.ts +28 -0
- package/packages/tools/lib/model/relationship-subjects.d.ts.map +1 -0
- package/packages/tools/lib/model/relationship-subjects.js +126 -0
- package/packages/tools/lib/model/relationship-subjects.js.map +1 -0
- package/packages/tools/lib/model/release-target.d.ts +12 -0
- package/packages/tools/lib/model/release-target.d.ts.map +1 -0
- package/packages/tools/lib/model/release-target.js +35 -0
- package/packages/tools/lib/model/release-target.js.map +1 -0
- package/packages/tools/lib/model/selector-vocabulary.d.ts +47 -0
- package/packages/tools/lib/model/selector-vocabulary.d.ts.map +1 -0
- package/packages/tools/lib/model/selector-vocabulary.js +181 -0
- package/packages/tools/lib/model/selector-vocabulary.js.map +1 -0
- package/packages/tools/lib/model/semantic.d.ts +99 -7
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js +13 -1
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -1
- package/packages/tools/lib/model/settings-boundary.js +9 -8
- package/packages/tools/lib/model/settings-boundary.js.map +1 -1
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +4 -0
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/source-graph.d.ts +9 -7
- package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
- package/packages/tools/lib/model/source-graph.js +19 -24
- package/packages/tools/lib/model/source-graph.js.map +1 -1
- package/packages/tools/lib/model/source-provenance.d.ts +5 -1
- package/packages/tools/lib/model/source-provenance.d.ts.map +1 -1
- package/packages/tools/lib/model/source-provenance.js.map +1 -1
- package/packages/tools/lib/model/sysml-files.js +1 -1
- package/packages/tools/lib/model/sysml-ir.d.ts +2 -5
- package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -1
- package/packages/tools/lib/model/sysml-ir.js +1 -100
- package/packages/tools/lib/model/sysml-ir.js.map +1 -1
- package/packages/tools/lib/model/toolchain-merge.d.ts +4 -0
- package/packages/tools/lib/model/toolchain-merge.d.ts.map +1 -0
- package/packages/tools/lib/model/toolchain-merge.js +34 -0
- package/packages/tools/lib/model/toolchain-merge.js.map +1 -0
- package/packages/tools/lib/model/user-settings.d.ts +13 -0
- package/packages/tools/lib/model/user-settings.d.ts.map +1 -0
- package/packages/tools/lib/model/user-settings.js +83 -0
- package/packages/tools/lib/model/user-settings.js.map +1 -0
- package/packages/tools/lib/model/variability.d.ts +56 -0
- package/packages/tools/lib/model/variability.d.ts.map +1 -0
- package/packages/tools/lib/model/variability.js +116 -0
- package/packages/tools/lib/model/variability.js.map +1 -0
- package/packages/tools/lib/model/version-range.d.ts +2 -0
- package/packages/tools/lib/model/version-range.d.ts.map +1 -0
- package/packages/tools/lib/model/version-range.js +37 -0
- package/packages/tools/lib/model/version-range.js.map +1 -0
- package/packages/tools/lib/model/view-deriver.d.ts +16 -0
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +100 -26
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/model/view-layout-block.d.ts +81 -0
- package/packages/tools/lib/model/view-layout-block.d.ts.map +1 -0
- package/packages/tools/lib/model/view-layout-block.js +525 -0
- package/packages/tools/lib/model/view-layout-block.js.map +1 -0
- package/packages/tools/lib/model/view-layout-migration.d.ts +54 -0
- package/packages/tools/lib/model/view-layout-migration.d.ts.map +1 -0
- package/packages/tools/lib/model/view-layout-migration.js +156 -0
- package/packages/tools/lib/model/view-layout-migration.js.map +1 -0
- package/packages/tools/lib/model/workspace-membership.d.ts +99 -0
- package/packages/tools/lib/model/workspace-membership.d.ts.map +1 -0
- package/packages/tools/lib/model/workspace-membership.js +281 -0
- package/packages/tools/lib/model/workspace-membership.js.map +1 -0
- package/packages/tools/lib/ontology/owl-exporter.d.ts +1 -1
- package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.js +7 -5
- package/packages/tools/lib/operations/ai-authoring.js.map +1 -1
- package/packages/tools/lib/operations/authoring.d.ts +10 -4
- package/packages/tools/lib/operations/authoring.d.ts.map +1 -1
- package/packages/tools/lib/operations/authoring.js +27 -11
- package/packages/tools/lib/operations/authoring.js.map +1 -1
- 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 +1 -0
- package/packages/tools/lib/operations/index.js.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.js +7 -13
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
- package/packages/tools/lib/plugin/plugin-scaffold.js +2 -2
- package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +375 -7
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.d.ts +37 -29
- package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.js +64 -31
- package/packages/tools/lib/serializer/csv-io.js.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.d.ts +15 -2
- package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.js +45 -17
- package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
- package/packages/tools/lib/server/conflict-policy.js +1 -1
- package/packages/tools/lib/server/conflict-policy.js.map +1 -1
- package/packages/tools/lib/server/dashboard-store.d.ts +1 -7
- package/packages/tools/lib/server/dashboard-store.d.ts.map +1 -1
- package/packages/tools/lib/server/dashboard-store.js +3 -14
- package/packages/tools/lib/server/dashboard-store.js.map +1 -1
- package/packages/tools/lib/server/dev-server.d.ts +48 -1
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
- package/packages/tools/lib/server/dev-server.js +529 -80
- package/packages/tools/lib/server/dev-server.js.map +1 -1
- package/packages/tools/lib/server/dev-validate.d.ts +30 -0
- package/packages/tools/lib/server/dev-validate.d.ts.map +1 -0
- package/packages/tools/lib/server/dev-validate.js +82 -0
- package/packages/tools/lib/server/dev-validate.js.map +1 -0
- package/packages/tools/lib/server/element-writer.d.ts +4 -1
- package/packages/tools/lib/server/element-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/element-writer.js +56 -35
- package/packages/tools/lib/server/element-writer.js.map +1 -1
- package/packages/tools/lib/server/mutation-domain.d.ts +10 -0
- package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -1
- package/packages/tools/lib/server/mutation-domain.js +45 -8
- package/packages/tools/lib/server/mutation-domain.js.map +1 -1
- package/packages/tools/lib/server/package-source.d.ts +13 -3
- package/packages/tools/lib/server/package-source.d.ts.map +1 -1
- package/packages/tools/lib/server/package-source.js +31 -39
- package/packages/tools/lib/server/package-source.js.map +1 -1
- package/packages/tools/lib/server/package-writer.d.ts +19 -6
- package/packages/tools/lib/server/package-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/package-writer.js +90 -39
- package/packages/tools/lib/server/package-writer.js.map +1 -1
- package/packages/tools/lib/server/persistor.d.ts +33 -7
- package/packages/tools/lib/server/persistor.d.ts.map +1 -1
- package/packages/tools/lib/server/persistor.js +63 -48
- package/packages/tools/lib/server/persistor.js.map +1 -1
- package/packages/tools/lib/server/project-gitignore.d.ts +9 -0
- package/packages/tools/lib/server/project-gitignore.d.ts.map +1 -0
- package/packages/tools/lib/server/project-gitignore.js +27 -0
- package/packages/tools/lib/server/project-gitignore.js.map +1 -0
- package/packages/tools/lib/server/relationship-writer.d.ts +31 -2
- package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.js +255 -95
- package/packages/tools/lib/server/relationship-writer.js.map +1 -1
- package/packages/tools/lib/server/release-writer.d.ts +46 -0
- package/packages/tools/lib/server/release-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/release-writer.js +133 -0
- package/packages/tools/lib/server/release-writer.js.map +1 -0
- package/packages/tools/lib/server/rule-policy-writer.d.ts +17 -4
- package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/rule-policy-writer.js +92 -7
- package/packages/tools/lib/server/rule-policy-writer.js.map +1 -1
- package/packages/tools/lib/server/rule-service.d.ts +50 -0
- package/packages/tools/lib/server/rule-service.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-service.js +89 -0
- package/packages/tools/lib/server/rule-service.js.map +1 -0
- package/packages/tools/lib/server/rule-writer.d.ts +87 -0
- package/packages/tools/lib/server/rule-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-writer.js +165 -0
- package/packages/tools/lib/server/rule-writer.js.map +1 -0
- package/packages/tools/lib/server/suspect-review.d.ts +11 -0
- package/packages/tools/lib/server/suspect-review.d.ts.map +1 -0
- package/packages/tools/lib/server/suspect-review.js +28 -0
- package/packages/tools/lib/server/suspect-review.js.map +1 -0
- package/packages/tools/lib/server/sysml-notation.d.ts +1 -1
- package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -1
- package/packages/tools/lib/server/sysml-notation.js +5 -0
- package/packages/tools/lib/server/sysml-notation.js.map +1 -1
- package/packages/tools/lib/server/user-preferences.d.ts +8 -0
- package/packages/tools/lib/server/user-preferences.d.ts.map +1 -0
- package/packages/tools/lib/server/user-preferences.js +47 -0
- package/packages/tools/lib/server/user-preferences.js.map +1 -0
- package/packages/tools/lib/server/version-servers.d.ts +60 -0
- package/packages/tools/lib/server/version-servers.d.ts.map +1 -0
- package/packages/tools/lib/server/version-servers.js +106 -0
- package/packages/tools/lib/server/version-servers.js.map +1 -0
- package/packages/tools/lib/server/view-layout-store.d.ts +28 -13
- package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
- package/packages/tools/lib/server/view-layout-store.js +106 -106
- package/packages/tools/lib/server/view-layout-store.js.map +1 -1
- package/packages/tools/lib/server/view-writer.d.ts +22 -2
- package/packages/tools/lib/server/view-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/view-writer.js +99 -44
- package/packages/tools/lib/server/view-writer.js.map +1 -1
- package/packages/tools/lib/server/write-guard.d.ts +7 -0
- package/packages/tools/lib/server/write-guard.d.ts.map +1 -0
- package/packages/tools/lib/server/write-guard.js +77 -0
- package/packages/tools/lib/server/write-guard.js.map +1 -0
- package/packages/tools/lib/stage2/api-model.d.ts +160 -0
- package/packages/tools/lib/stage2/api-model.d.ts.map +1 -0
- package/packages/tools/lib/stage2/api-model.js +341 -0
- package/packages/tools/lib/stage2/api-model.js.map +1 -0
- package/packages/tools/lib/stage2/build-from-api.d.ts +47 -0
- package/packages/tools/lib/stage2/build-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/build-from-api.js +1462 -0
- package/packages/tools/lib/stage2/build-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/guide-from-api.d.ts +38 -0
- package/packages/tools/lib/stage2/guide-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/guide-from-api.js +97 -0
- package/packages/tools/lib/stage2/guide-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/handoff-files.d.ts +13 -0
- package/packages/tools/lib/stage2/handoff-files.d.ts.map +1 -0
- package/packages/tools/lib/stage2/handoff-files.js +32 -0
- package/packages/tools/lib/stage2/handoff-files.js.map +1 -0
- package/packages/tools/lib/stage2/methodology-from-api.d.ts +10 -0
- package/packages/tools/lib/stage2/methodology-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/methodology-from-api.js +109 -0
- package/packages/tools/lib/stage2/methodology-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.d.ts +15 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.js +238 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/project-from-api.d.ts +60 -0
- package/packages/tools/lib/stage2/project-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/project-from-api.js +328 -0
- package/packages/tools/lib/stage2/project-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/registries-from-api.d.ts +68 -0
- package/packages/tools/lib/stage2/registries-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/registries-from-api.js +313 -0
- package/packages/tools/lib/stage2/registries-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.d.ts +26 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.d.ts.map +1 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.js +34 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.js.map +1 -0
- package/packages/tools/lib/stage2/sysml-names.d.ts +9 -0
- package/packages/tools/lib/stage2/sysml-names.d.ts.map +1 -0
- package/packages/tools/lib/stage2/sysml-names.js +39 -0
- package/packages/tools/lib/stage2/sysml-names.js.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts +2 -2
- package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/default-registry.js +9 -5
- package/packages/tools/lib/toolchain/default-registry.js.map +1 -1
- package/packages/tools/lib/toolchain/diagnostic.d.ts +2 -2
- package/packages/tools/lib/toolchain/diagnostic.js +1 -1
- package/packages/tools/lib/toolchain/diagnostic.js.map +1 -1
- package/packages/tools/lib/toolchain/effective.d.ts +25 -17
- package/packages/tools/lib/toolchain/effective.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/effective.js +45 -40
- package/packages/tools/lib/toolchain/effective.js.map +1 -1
- package/packages/tools/lib/toolchain/exceptions.d.ts +27 -0
- package/packages/tools/lib/toolchain/exceptions.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/exceptions.js +77 -0
- package/packages/tools/lib/toolchain/exceptions.js.map +1 -0
- package/packages/tools/lib/toolchain/index.d.ts +2 -2
- package/packages/tools/lib/toolchain/index.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/index.js +2 -2
- package/packages/tools/lib/toolchain/index.js.map +1 -1
- package/packages/tools/lib/toolchain/operations.d.ts +45 -10
- package/packages/tools/lib/toolchain/operations.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/operations.js +107 -8
- package/packages/tools/lib/toolchain/operations.js.map +1 -1
- package/packages/tools/lib/toolchain/ownership.d.ts +13 -0
- package/packages/tools/lib/toolchain/ownership.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/ownership.js +57 -0
- package/packages/tools/lib/toolchain/ownership.js.map +1 -0
- package/packages/tools/lib/toolchain/process.d.ts +2 -2
- package/packages/tools/lib/toolchain/process.js +2 -2
- package/packages/tools/lib/toolchain/project-config.d.ts +4 -0
- package/packages/tools/lib/toolchain/project-config.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/project-config.js +13 -0
- package/packages/tools/lib/toolchain/project-config.js.map +1 -0
- package/packages/tools/lib/toolchain/project-model.d.ts +75 -0
- package/packages/tools/lib/toolchain/project-model.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/project-model.js +92 -0
- package/packages/tools/lib/toolchain/project-model.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-package.d.ts +6 -0
- package/packages/tools/lib/toolchain/providers/internal-package.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-package.js +47 -0
- package/packages/tools/lib/toolchain/providers/internal-package.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts +20 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.js +95 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts +17 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.js +69 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts +50 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.js +646 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts +16 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.js +37 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml.d.ts +88 -0
- package/packages/tools/lib/toolchain/providers/opensysml.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml.js +178 -0
- package/packages/tools/lib/toolchain/providers/opensysml.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/recommended.d.ts +2 -0
- package/packages/tools/lib/toolchain/providers/recommended.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/recommended.js +13 -0
- package/packages/tools/lib/toolchain/providers/recommended.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.d.ts +60 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.js +160 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/providers/sysand.js +26 -2
- package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -1
- package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts +29 -0
- package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside-lowering.js +497 -0
- package/packages/tools/lib/toolchain/providers/syside-lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside-python.d.ts +9 -0
- package/packages/tools/lib/toolchain/providers/syside-python.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside-python.js +69 -0
- package/packages/tools/lib/toolchain/providers/syside-python.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/providers/syside.js +2 -0
- package/packages/tools/lib/toolchain/providers/syside.js.map +1 -1
- package/packages/tools/lib/toolchain/registry.d.ts +118 -21
- package/packages/tools/lib/toolchain/registry.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/registry.js +18 -24
- package/packages/tools/lib/toolchain/registry.js.map +1 -1
- package/packages/tools/lib/toolchain/schema.d.ts +6 -5
- package/packages/tools/lib/toolchain/schema.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/schema.js +8 -13
- package/packages/tools/lib/toolchain/schema.js.map +1 -1
- package/packages/tools/lib/toolchain/shipped-library.d.ts +28 -0
- package/packages/tools/lib/toolchain/shipped-library.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/shipped-library.js +120 -0
- package/packages/tools/lib/toolchain/shipped-library.js.map +1 -0
- package/packages/tools/lib/toolchain/source-fingerprint.d.ts +2 -0
- package/packages/tools/lib/toolchain/source-fingerprint.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/source-fingerprint.js +30 -0
- package/packages/tools/lib/toolchain/source-fingerprint.js.map +1 -0
- package/packages/tools/lib/toolchain/user-settings-status.d.ts +51 -0
- package/packages/tools/lib/toolchain/user-settings-status.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/user-settings-status.js +104 -0
- package/packages/tools/lib/toolchain/user-settings-status.js.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
- package/packages/tools/lib/validator/architecture-validator.js +2 -1
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
- package/packages/tools/lib/validator/behavior-validator.js +1 -1
- package/packages/tools/lib/validator/behavior-validator.js.map +1 -1
- package/packages/tools/lib/validator/builtin-rules.js +1 -1
- package/packages/tools/lib/validator/builtin-rules.js.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.d.ts +30 -4
- package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.js +101 -59
- package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
- package/packages/tools/lib/validator/constraint-loader-api.d.ts +22 -0
- package/packages/tools/lib/validator/constraint-loader-api.d.ts.map +1 -0
- package/packages/tools/lib/validator/constraint-loader-api.js +160 -0
- package/packages/tools/lib/validator/constraint-loader-api.js.map +1 -0
- package/packages/tools/lib/validator/constraint-loader.d.ts +22 -18
- package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.js +33 -141
- package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
- package/packages/tools/lib/validator/rule-clauses.d.ts +51 -0
- package/packages/tools/lib/validator/rule-clauses.d.ts.map +1 -0
- package/packages/tools/lib/validator/rule-clauses.js +87 -0
- package/packages/tools/lib/validator/rule-clauses.js.map +1 -0
- package/packages/tools/lib/validator/rule-engine.d.ts +9 -1
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-engine.js +50 -6
- package/packages/tools/lib/validator/rule-engine.js.map +1 -1
- package/packages/tools/lib/validator/rule-registry.d.ts +4 -8
- package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-registry.js +42 -79
- package/packages/tools/lib/validator/rule-registry.js.map +1 -1
- package/packages/tools/lib/validator/rule-tailoring.d.ts +62 -0
- package/packages/tools/lib/validator/rule-tailoring.d.ts.map +1 -0
- package/packages/tools/lib/validator/rule-tailoring.js +85 -0
- package/packages/tools/lib/validator/rule-tailoring.js.map +1 -0
- package/packages/tools/lib/validator/types.d.ts +12 -1
- package/packages/tools/lib/validator/types.d.ts.map +1 -1
- package/packages/tools/lib/validator/workspace-boundary-validator.d.ts +9 -0
- package/packages/tools/lib/validator/workspace-boundary-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/workspace-boundary-validator.js +28 -0
- package/packages/tools/lib/validator/workspace-boundary-validator.js.map +1 -0
- package/packages/tools/python/memo_model.py +243 -0
- package/packages/tools/python/memo_stage1_syside.py +389 -0
- package/packages/tools/lib/commands/check.d.ts +0 -6
- package/packages/tools/lib/commands/check.d.ts.map +0 -1
- package/packages/tools/lib/commands/check.js +0 -191
- package/packages/tools/lib/commands/check.js.map +0 -1
- package/packages/tools/lib/commands/conformance.d.ts +0 -36
- package/packages/tools/lib/commands/conformance.d.ts.map +0 -1
- package/packages/tools/lib/commands/conformance.js +0 -212
- package/packages/tools/lib/commands/conformance.js.map +0 -1
- package/packages/tools/lib/commands/roundtrip.d.ts +0 -6
- package/packages/tools/lib/commands/roundtrip.d.ts.map +0 -1
- package/packages/tools/lib/commands/roundtrip.js +0 -145
- package/packages/tools/lib/commands/roundtrip.js.map +0 -1
- package/packages/tools/lib/conformance/baseline.d.ts +0 -26
- package/packages/tools/lib/conformance/baseline.d.ts.map +0 -1
- package/packages/tools/lib/conformance/baseline.js +0 -170
- package/packages/tools/lib/conformance/baseline.js.map +0 -1
- package/packages/tools/lib/conformance/bnf.d.ts +0 -84
- package/packages/tools/lib/conformance/bnf.d.ts.map +0 -1
- package/packages/tools/lib/conformance/bnf.js +0 -166
- package/packages/tools/lib/conformance/bnf.js.map +0 -1
- package/packages/tools/lib/conformance/corpus.d.ts +0 -125
- package/packages/tools/lib/conformance/corpus.d.ts.map +0 -1
- package/packages/tools/lib/conformance/corpus.js +0 -190
- package/packages/tools/lib/conformance/corpus.js.map +0 -1
- package/packages/tools/lib/conformance/diff-xmi.d.ts +0 -118
- package/packages/tools/lib/conformance/diff-xmi.d.ts.map +0 -1
- package/packages/tools/lib/conformance/diff-xmi.js +0 -276
- package/packages/tools/lib/conformance/diff-xmi.js.map +0 -1
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts +0 -10
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +0 -1
- package/packages/tools/lib/conformance/generated/syside-rules.js +0 -1142
- package/packages/tools/lib/conformance/generated/syside-rules.js.map +0 -1
- package/packages/tools/lib/conformance/index.d.ts +0 -7
- package/packages/tools/lib/conformance/index.d.ts.map +0 -1
- package/packages/tools/lib/conformance/index.js +0 -19
- package/packages/tools/lib/conformance/index.js.map +0 -1
- package/packages/tools/lib/conformance/run.d.ts +0 -117
- package/packages/tools/lib/conformance/run.d.ts.map +0 -1
- package/packages/tools/lib/conformance/run.js +0 -0
- package/packages/tools/lib/conformance/run.js.map +0 -1
- package/packages/tools/lib/conformance/xmi.d.ts +0 -45
- package/packages/tools/lib/conformance/xmi.d.ts.map +0 -1
- package/packages/tools/lib/conformance/xmi.js +0 -148
- package/packages/tools/lib/conformance/xmi.js.map +0 -1
- package/packages/tools/lib/language/generated/ast.d.ts +0 -3571
- package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
- package/packages/tools/lib/language/generated/ast.js +0 -2980
- package/packages/tools/lib/language/generated/ast.js.map +0 -1
- package/packages/tools/lib/language/generated/grammar.d.ts +0 -7
- package/packages/tools/lib/language/generated/grammar.d.ts.map +0 -1
- package/packages/tools/lib/language/generated/grammar.js +0 -10687
- package/packages/tools/lib/language/generated/grammar.js.map +0 -1
- package/packages/tools/lib/language/generated/module.d.ts +0 -14
- package/packages/tools/lib/language/generated/module.d.ts.map +0 -1
- package/packages/tools/lib/language/generated/module.js +0 -21
- package/packages/tools/lib/language/generated/module.js.map +0 -1
- package/packages/tools/lib/language/memo-sysml-module.d.ts +0 -24
- package/packages/tools/lib/language/memo-sysml-module.d.ts.map +0 -1
- package/packages/tools/lib/language/memo-sysml-module.js +0 -20
- package/packages/tools/lib/language/memo-sysml-module.js.map +0 -1
- package/packages/tools/lib/model/builder.d.ts +0 -27
- package/packages/tools/lib/model/builder.d.ts.map +0 -1
- package/packages/tools/lib/model/builder.js +0 -2112
- package/packages/tools/lib/model/builder.js.map +0 -1
- package/packages/tools/lib/model/package-registry.d.ts +0 -64
- package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
- package/packages/tools/lib/model/package-registry.js +0 -184
- package/packages/tools/lib/model/package-registry.js.map +0 -1
- package/packages/tools/lib/model/parser-utils.d.ts +0 -65
- package/packages/tools/lib/model/parser-utils.d.ts.map +0 -1
- package/packages/tools/lib/model/parser-utils.js +0 -201
- package/packages/tools/lib/model/parser-utils.js.map +0 -1
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +0 -3
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +0 -1
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +0 -97
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +0 -1
- package/packages/tools/lib/sysmlc/index.d.ts +0 -2
- package/packages/tools/lib/sysmlc/index.d.ts.map +0 -1
- package/packages/tools/lib/sysmlc/index.js +0 -7
- package/packages/tools/lib/sysmlc/index.js.map +0 -1
- package/packages/tools/lib/sysmlc/server.d.ts +0 -29
- package/packages/tools/lib/sysmlc/server.d.ts.map +0 -1
- package/packages/tools/lib/sysmlc/server.js +0 -168
- package/packages/tools/lib/sysmlc/server.js.map +0 -1
- package/packages/tools/lib/toolchain/lowering.d.ts +0 -63
- package/packages/tools/lib/toolchain/lowering.d.ts.map +0 -1
- package/packages/tools/lib/toolchain/lowering.js +0 -100
- package/packages/tools/lib/toolchain/lowering.js.map +0 -1
- package/packages/tools/lib/toolchain/providers/internal.d.ts +0 -33
- package/packages/tools/lib/toolchain/providers/internal.d.ts.map +0 -1
- package/packages/tools/lib/toolchain/providers/internal.js +0 -286
- package/packages/tools/lib/toolchain/providers/internal.js.map +0 -1
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts +0 -77
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +0 -1
- package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js.map +0 -1
- package/packages/tools/lib/validator/sysml-constraints.d.ts +0 -64
- package/packages/tools/lib/validator/sysml-constraints.d.ts.map +0 -1
- package/packages/tools/lib/validator/sysml-constraints.js +0 -251
- package/packages/tools/lib/validator/sysml-constraints.js.map +0 -1
- package/packages/tools/src/grammar/memo-sysml.langium +0 -1064
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { CompiledConstraint } from './constraint-eval.js';
|
|
1
|
+
import type { CompiledConstraint, ConstraintNode, RuleDomain, RuleObligation } from './constraint-eval.js';
|
|
3
2
|
/** A rule that could not be loaded, or that conflicts with another rule. */
|
|
4
3
|
export interface ConstraintDiagnostic {
|
|
5
4
|
kind: 'compile-failed' | 'duplicate-id';
|
|
@@ -7,22 +6,27 @@ export interface ConstraintDiagnostic {
|
|
|
7
6
|
file: string;
|
|
8
7
|
message: string;
|
|
9
8
|
}
|
|
9
|
+
/** The rule's domain, or undefined when it states none (an enumeration literal as `Kind::member` or the bare member). */
|
|
10
|
+
export declare function mapDomain(raw?: string): RuleDomain | undefined;
|
|
11
|
+
/** The rule's obligation, or undefined when it states none (`Kind::member` or the bare member). */
|
|
12
|
+
export declare function mapObligation(raw?: string): RuleObligation | undefined;
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* Two DIFFERENT rules sharing an id is a defect, and is reported rather than
|
|
16
|
-
* silently resolved by document order.
|
|
17
|
-
*
|
|
18
|
-
* A rule whose predicate fails to compile is skipped and reported. It used to
|
|
19
|
-
* throw, which took down the entire command: one malformed
|
|
20
|
-
* `predicateExpression` anywhere in a resolved dependency meant `memo validate`
|
|
21
|
-
* exited with a stack trace and validated nothing. A broken rule must be loud,
|
|
22
|
-
* but it must not be fatal — the other rules still have work to do.
|
|
23
|
-
*
|
|
24
|
-
* Callers are expected to surface `diagnostics`; a skipped rule that nobody
|
|
25
|
-
* reports is a silently disabled check, which is worse than a crash.
|
|
14
|
+
* What a rule definition states, however it was read: from MEMO's parse
|
|
15
|
+
* (`collectNativeConstraints`) or from stage 1's API JSON
|
|
16
|
+
* (`collectApiConstraints`). Both compile through `compileRuleDefinition`, so
|
|
17
|
+
* the two paths cannot drift apart.
|
|
26
18
|
*/
|
|
27
|
-
export
|
|
19
|
+
export interface RuleDefinitionParts {
|
|
20
|
+
typeName: string;
|
|
21
|
+
/** Attribute values, an enumeration literal as its bare member name (`error`). */
|
|
22
|
+
attrs: Record<string, string>;
|
|
23
|
+
doc?: string;
|
|
24
|
+
file?: string;
|
|
25
|
+
/** The boolean body, in evaluator form; absent when the definition states none. */
|
|
26
|
+
body?: ConstraintNode;
|
|
27
|
+
/** Qualified names of the clauses the rule enforces, when the reader found them. */
|
|
28
|
+
enforces?: string[];
|
|
29
|
+
}
|
|
30
|
+
/** Compile one rule definition, or undefined when it is no rule (no id, no body or coverage target). */
|
|
31
|
+
export declare function compileRuleDefinition(parts: RuleDefinitionParts): CompiledConstraint | undefined;
|
|
28
32
|
//# sourceMappingURL=constraint-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-loader.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"constraint-loader.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3G,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,yHAAyH;AACzH,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAG9D;AAED,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGtE;AA0BD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,SAAS,CAiDhG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ─── Native Constraint Loader (Epic EE-3) ─────────────────────────────────────
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
3
|
+
// Compiles the native `constraint def` / `requirement def` declarations a stage 1
|
|
4
|
+
// handoff states (`collectApiConstraints`) and compiles each `require`/`assert constraint { … }` body into
|
|
5
5
|
// an evaluator AST. Rules can use a directly parseable KerML body, or keep a
|
|
6
6
|
// portable `true` body and provide `predicateExpression` for MEMO semantic-model
|
|
7
7
|
// navigation. Model-level coverage targets are compiled into extent predicates.
|
|
@@ -15,75 +15,19 @@
|
|
|
15
15
|
// require constraint { mitigatesHazard->size() >= 1 }
|
|
16
16
|
// }
|
|
17
17
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
18
|
-
import {
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* same ontology file appears in both the ontology load and the project parse.
|
|
24
|
-
* Two DIFFERENT rules sharing an id is a defect, and is reported rather than
|
|
25
|
-
* silently resolved by document order.
|
|
26
|
-
*
|
|
27
|
-
* A rule whose predicate fails to compile is skipped and reported. It used to
|
|
28
|
-
* throw, which took down the entire command: one malformed
|
|
29
|
-
* `predicateExpression` anywhere in a resolved dependency meant `memo validate`
|
|
30
|
-
* exited with a stack trace and validated nothing. A broken rule must be loud,
|
|
31
|
-
* but it must not be fatal — the other rules still have work to do.
|
|
32
|
-
*
|
|
33
|
-
* Callers are expected to surface `diagnostics`; a skipped rule that nobody
|
|
34
|
-
* reports is a silently disabled check, which is worse than a crash.
|
|
35
|
-
*/
|
|
36
|
-
export function collectNativeConstraints(docs, diagnostics) {
|
|
37
|
-
const byId = new Map();
|
|
38
|
-
const sourceById = new Map();
|
|
39
|
-
for (const doc of docs) {
|
|
40
|
-
const model = doc.document.parseResult?.value;
|
|
41
|
-
if (!model)
|
|
42
|
-
continue;
|
|
43
|
-
const found = [];
|
|
44
|
-
for (const member of model.members ?? []) {
|
|
45
|
-
walk(member, found, doc.filePath, diagnostics);
|
|
46
|
-
}
|
|
47
|
-
for (const c of found) {
|
|
48
|
-
const previous = sourceById.get(c.id);
|
|
49
|
-
if (previous !== undefined && previous !== doc.filePath) {
|
|
50
|
-
diagnostics?.push({
|
|
51
|
-
kind: 'duplicate-id',
|
|
52
|
-
ruleId: c.id,
|
|
53
|
-
file: doc.filePath,
|
|
54
|
-
message: `Rule id ${c.id} is declared in both ${previous} and ${doc.filePath}. `
|
|
55
|
-
+ `Rule ids must be unique; which definition wins currently depends on load order.`,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
sourceById.set(c.id, doc.filePath);
|
|
59
|
-
byId.set(c.id, c);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return [...byId.values()];
|
|
18
|
+
import { parseConstraintExpression } from './constraint-eval.js';
|
|
19
|
+
/** The rule's domain, or undefined when it states none (an enumeration literal as `Kind::member` or the bare member). */
|
|
20
|
+
export function mapDomain(raw) {
|
|
21
|
+
const member = raw?.includes('::') ? raw.slice(raw.lastIndexOf('::') + 2) : raw;
|
|
22
|
+
return member === 'modelling' || member === 'medicalDevice' || member === 'organisation' ? member : undefined;
|
|
63
23
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
for (const member of node.members ?? [])
|
|
69
|
-
walk(member, out, file, diagnostics);
|
|
70
|
-
}
|
|
71
|
-
else if (node.$type === 'ConstraintDefinition' || node.$type === 'RequirementDefinition') {
|
|
72
|
-
try {
|
|
73
|
-
const compiled = tryCompile(node, file);
|
|
74
|
-
if (compiled)
|
|
75
|
-
out.push(compiled);
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
diagnostics?.push({
|
|
79
|
-
kind: 'compile-failed',
|
|
80
|
-
ruleId: authoredId(extractAttributes(node.body ?? [])) ?? '(unknown)',
|
|
81
|
-
file,
|
|
82
|
-
message: error instanceof Error ? error.message : String(error),
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
24
|
+
/** The rule's obligation, or undefined when it states none (`Kind::member` or the bare member). */
|
|
25
|
+
export function mapObligation(raw) {
|
|
26
|
+
const member = raw?.includes('::') ? raw.slice(raw.lastIndexOf('::') + 2) : raw;
|
|
27
|
+
return member === 'required' || member === 'recommended' || member === 'bestPractice' ? member : undefined;
|
|
86
28
|
}
|
|
29
|
+
/** What a rule that states no severity takes from its obligation. */
|
|
30
|
+
const OBLIGATION_SEVERITY = { required: 'error', recommended: 'warning', bestPractice: 'info' };
|
|
87
31
|
function mapTailoring(raw) {
|
|
88
32
|
// A rule with no declared class is treated as `assurance`: tailorable with
|
|
89
33
|
// rationale. Defaulting to `invariant` would silently make every
|
|
@@ -102,19 +46,17 @@ function mapTailoring(raw) {
|
|
|
102
46
|
function authoredId(attrs) {
|
|
103
47
|
return attrs['providedId'] || attrs['id'] || undefined;
|
|
104
48
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const attrs =
|
|
49
|
+
/** Compile one rule definition, or undefined when it is no rule (no id, no body or coverage target). */
|
|
50
|
+
export function compileRuleDefinition(parts) {
|
|
51
|
+
const { attrs } = parts;
|
|
108
52
|
const id = authoredId(attrs);
|
|
109
53
|
if (!id)
|
|
110
54
|
return undefined;
|
|
111
|
-
// The boolean body: first require/assert constraint member.
|
|
112
|
-
const requireMember = body.find(m => m.$type === 'RequireConstraintMember' && m.expression);
|
|
113
55
|
let ast;
|
|
114
56
|
let appliesToKind = attrs['appliesTo'] ?? '';
|
|
115
|
-
if (
|
|
116
|
-
ast =
|
|
117
|
-
if (ast.kind === 'bool' && ast.value && attrs['predicateExpression'] && attrs['evaluator']
|
|
57
|
+
if (parts.body) {
|
|
58
|
+
ast = parts.body;
|
|
59
|
+
if (ast.kind === 'bool' && ast.value && attrs['predicateExpression'] && (!attrs['evaluator'] || attrs['evaluator'] === 'native')) {
|
|
118
60
|
// Portable constraint bodies remain `true` where SysML tools cannot
|
|
119
61
|
// resolve MEMO's semantic-model navigation. The executable predicate
|
|
120
62
|
// is still ontology-owned and is compiled here.
|
|
@@ -139,13 +81,21 @@ function tryCompile(def, file) {
|
|
|
139
81
|
}
|
|
140
82
|
return {
|
|
141
83
|
id,
|
|
142
|
-
|
|
84
|
+
// Native `doc` first: the bases stopped declaring `description`, so a
|
|
85
|
+
// rule written today states its prose as a doc comment. `description`
|
|
86
|
+
// stays ahead of `rationaleText` for a rule that still carries the old
|
|
87
|
+
// attribute — a rationale is why the rule exists, not what it checks,
|
|
88
|
+
// and it is the last resort rather than an equivalent.
|
|
89
|
+
description: parts.doc || attrs['description'] || attrs['rationaleText'] || id,
|
|
143
90
|
appliesToKind,
|
|
144
|
-
severity: mapSeverity(attrs['severity']),
|
|
91
|
+
severity: mapSeverity(attrs['severity'], mapObligation(attrs['obligation'])),
|
|
145
92
|
evaluator: attrs['evaluator'] || undefined,
|
|
146
|
-
typeName:
|
|
93
|
+
typeName: parts.typeName,
|
|
147
94
|
tailoring: mapTailoring(attrs['tailoring']),
|
|
148
|
-
sourceFile: file,
|
|
95
|
+
sourceFile: parts.file,
|
|
96
|
+
...(mapDomain(attrs['domain']) ? { domain: mapDomain(attrs['domain']) } : {}),
|
|
97
|
+
...(mapObligation(attrs['obligation']) ? { obligation: mapObligation(attrs['obligation']) } : {}),
|
|
98
|
+
...(parts.enforces && parts.enforces.length > 0 ? { enforces: parts.enforces } : {}),
|
|
149
99
|
ast,
|
|
150
100
|
};
|
|
151
101
|
}
|
|
@@ -155,67 +105,9 @@ function parseScope(scope) {
|
|
|
155
105
|
throw new Error(`Unsupported coverage target '${scope}'.`);
|
|
156
106
|
return { kind: match[1], attribute: match[2], value: match[3] };
|
|
157
107
|
}
|
|
158
|
-
|
|
159
|
-
* The rule loader's own attribute reader.
|
|
160
|
-
*
|
|
161
|
-
* Deliberately separate from the builder's: rules are compiled before a model
|
|
162
|
-
* exists, so this walks the raw AST. It must stay in step with the builder on
|
|
163
|
-
* one point — a `MetadataApplication` (`@Foo { … }`) is a different node type
|
|
164
|
-
* from an `AttributeMember`, so a reader that only walks the latter sees
|
|
165
|
-
* nothing on an annotated definition. That is how every A0 rule silently
|
|
166
|
-
* stopped compiling when the authored ids moved onto `@MemoIdentity`:
|
|
167
|
-
* `tryCompile` returns undefined without an id, the rule is skipped, and the
|
|
168
|
-
* engine enforces nothing while the suite stays green.
|
|
169
|
-
*/
|
|
170
|
-
function extractAttributes(body) {
|
|
171
|
-
const attrs = {};
|
|
172
|
-
for (const member of body) {
|
|
173
|
-
if (member.$type === 'AttributeMember' && member.value) {
|
|
174
|
-
attrs[member.name] = extractValue(member.value);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
// Metadata last, so an annotation wins over a directly declared attribute
|
|
178
|
-
// of the same name — the precedence the builder uses.
|
|
179
|
-
for (const member of body) {
|
|
180
|
-
if (member.$type !== 'MetadataApplication')
|
|
181
|
-
continue;
|
|
182
|
-
for (const field of member.body ?? []) {
|
|
183
|
-
if (!field?.name || !field.value)
|
|
184
|
-
continue;
|
|
185
|
-
attrs[field.name] = extractValue(field.value);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return attrs;
|
|
189
|
-
}
|
|
190
|
-
function extractValue(value) {
|
|
191
|
-
if (!value)
|
|
192
|
-
return '';
|
|
193
|
-
switch (value.$type) {
|
|
194
|
-
case 'StringValue':
|
|
195
|
-
try {
|
|
196
|
-
return JSON.parse(value.value ?? '""');
|
|
197
|
-
}
|
|
198
|
-
catch {
|
|
199
|
-
return value.value?.replace(/^"|"$/g, '') ?? '';
|
|
200
|
-
}
|
|
201
|
-
case 'IntValue':
|
|
202
|
-
case 'RealValue':
|
|
203
|
-
return String(value.value);
|
|
204
|
-
case 'BooleanValue':
|
|
205
|
-
return String(value.value);
|
|
206
|
-
case 'EnumValue': {
|
|
207
|
-
// "RuleSeverityKind::error" → "error"
|
|
208
|
-
const ref = value.enumRef ?? '';
|
|
209
|
-
const colonIdx = ref.lastIndexOf('::');
|
|
210
|
-
return colonIdx >= 0 ? ref.slice(colonIdx + 2) : ref;
|
|
211
|
-
}
|
|
212
|
-
default:
|
|
213
|
-
return String(value);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
function mapSeverity(severity) {
|
|
108
|
+
function mapSeverity(severity, obligation) {
|
|
217
109
|
if (severity === 'error' || severity === 'warning' || severity === 'info')
|
|
218
110
|
return severity;
|
|
219
|
-
return 'warning';
|
|
111
|
+
return obligation ? OBLIGATION_SEVERITY[obligation] : 'warning';
|
|
220
112
|
}
|
|
221
113
|
//# sourceMappingURL=constraint-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-loader.js","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"constraint-loader.js","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ApiModel } from '../stage2/api-model.js';
|
|
2
|
+
import type { EffectiveRule } from '../model/methodology-resolver.js';
|
|
3
|
+
/** One clause of a standard or guidance, as the model carries it. */
|
|
4
|
+
export interface ClauseFact {
|
|
5
|
+
qualifiedName: string;
|
|
6
|
+
/** The standard's designation (`IEC 62304:2006+AMD1:2015`). */
|
|
7
|
+
standard: string;
|
|
8
|
+
/** The standard's qualified name: what a policy that selects by standard names. */
|
|
9
|
+
standardName: string;
|
|
10
|
+
clauseNumber: string;
|
|
11
|
+
/** A MEMO-authored scope phrase, not the standard's wording. */
|
|
12
|
+
title?: string;
|
|
13
|
+
}
|
|
14
|
+
/** The clauses the model declares, with the standard each belongs to. */
|
|
15
|
+
export declare function readClauseFacts(api: ApiModel): ClauseFact[];
|
|
16
|
+
/** `IEC 62304:2006+AMD1:2015 §5.2`, or the qualified name when the clause is unknown. */
|
|
17
|
+
export declare function clauseLabel(facts: readonly ClauseFact[], qualifiedName: string): string;
|
|
18
|
+
export interface RuleClauseCoverage {
|
|
19
|
+
standards: {
|
|
20
|
+
designation: string;
|
|
21
|
+
clauses: number;
|
|
22
|
+
enforced: number;
|
|
23
|
+
}[];
|
|
24
|
+
/** Every clause some enabled rule enforces, with the rules that do. */
|
|
25
|
+
enforcedClauses: (ClauseFact & {
|
|
26
|
+
rules: string[];
|
|
27
|
+
})[];
|
|
28
|
+
/**
|
|
29
|
+
* Rules that name no clause. A rule need not trace to a standard (the ontology's modelling rules
|
|
30
|
+
* and a user's own rules usually do not), so this is information about the rule set, not a gap.
|
|
31
|
+
*/
|
|
32
|
+
untracedRules: {
|
|
33
|
+
id: string;
|
|
34
|
+
typeName: string;
|
|
35
|
+
domain?: string;
|
|
36
|
+
}[];
|
|
37
|
+
/** How many rules name at least one clause, however many. */
|
|
38
|
+
tracedRules: number;
|
|
39
|
+
/** A rule that enforces a clause the model does not carry, which should not happen. */
|
|
40
|
+
unknownClauses: {
|
|
41
|
+
ruleId: string;
|
|
42
|
+
clause: string;
|
|
43
|
+
}[];
|
|
44
|
+
byDomain: Record<string, number>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Coverage of the clauses by the rules. Only a rule that is enabled counts as
|
|
48
|
+
* enforcing: one a user disabled or replaced no longer checks anything.
|
|
49
|
+
*/
|
|
50
|
+
export declare function computeRuleClauseCoverage(clauses: readonly ClauseFact[], rules: readonly Pick<EffectiveRule, 'sourceRuleId' | 'sourceRuleType' | 'disposition' | 'domain' | 'enforces'>[]): RuleClauseCoverage;
|
|
51
|
+
//# sourceMappingURL=rule-clauses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-clauses.d.ts","sourceRoot":"","sources":["../../src/validator/rule-clauses.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,EAAE,CA2B3D;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGvF;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxE,uEAAuE;IACvE,eAAe,EAAE,CAAC,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,EAAE,CAAC;IACtD;;;OAGG;IACH,aAAa,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC,EAAE,GACjH,kBAAkB,CAgCpB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// ─── Which rules enforce which clauses ───────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// A rule names the clauses it enforces (`#EnforcesClause dependency from <rule> to <clause>`), and the compiler has
|
|
4
|
+
// checked that each exists. This reads the clauses a model carries from the
|
|
5
|
+
// stage 1 handoff and answers the two questions an assurance reader asks:
|
|
6
|
+
// what does this rule enforce, and what enforces this clause
|
|
7
|
+
// (plans/memo-rules-domain-trace-and-editor.md).
|
|
8
|
+
//
|
|
9
|
+
// The coverage is a REPORT. A clause with no rule is the normal state of a
|
|
10
|
+
// library that carries more clauses than MEMO has rules; it is not a defect.
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
import { apiDefinitionFacts } from '../stage2/build-from-api.js';
|
|
13
|
+
/** The clauses the model declares, with the standard each belongs to. */
|
|
14
|
+
export function readClauseFacts(api) {
|
|
15
|
+
const typedBy = (id, suffix) => api.types(id).some(type => api.qualifiedName(type['@id'])?.endsWith(`::${suffix}`));
|
|
16
|
+
const standardOf = (id) => {
|
|
17
|
+
for (let owner = api.owner(id); owner; owner = api.owner(owner['@id'])) {
|
|
18
|
+
if (owner['@type'] === 'PartUsage' && typedBy(owner['@id'], 'RegulatoryStandard')) {
|
|
19
|
+
const designation = apiDefinitionFacts(api, owner).attributes['designation'];
|
|
20
|
+
const name = api.qualifiedName(owner['@id']);
|
|
21
|
+
return designation && name ? { designation, name } : undefined;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
};
|
|
26
|
+
const facts = [];
|
|
27
|
+
for (const usage of api.ofType('PartUsage')) {
|
|
28
|
+
if (!typedBy(usage['@id'], 'StandardClause'))
|
|
29
|
+
continue;
|
|
30
|
+
const qualifiedName = api.qualifiedName(usage['@id']);
|
|
31
|
+
if (!qualifiedName)
|
|
32
|
+
continue;
|
|
33
|
+
const attributes = apiDefinitionFacts(api, usage).attributes;
|
|
34
|
+
const standard = standardOf(usage['@id']);
|
|
35
|
+
if (!standard || !attributes['clauseNumber'])
|
|
36
|
+
continue;
|
|
37
|
+
facts.push({
|
|
38
|
+
qualifiedName, standard: standard.designation, standardName: standard.name, clauseNumber: attributes['clauseNumber'],
|
|
39
|
+
...(attributes['title'] ? { title: attributes['title'] } : {}),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return facts;
|
|
43
|
+
}
|
|
44
|
+
/** `IEC 62304:2006+AMD1:2015 §5.2`, or the qualified name when the clause is unknown. */
|
|
45
|
+
export function clauseLabel(facts, qualifiedName) {
|
|
46
|
+
const fact = facts.find(f => f.qualifiedName === qualifiedName);
|
|
47
|
+
return fact ? `${fact.standard} §${fact.clauseNumber}` : qualifiedName;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Coverage of the clauses by the rules. Only a rule that is enabled counts as
|
|
51
|
+
* enforcing: one a user disabled or replaced no longer checks anything.
|
|
52
|
+
*/
|
|
53
|
+
export function computeRuleClauseCoverage(clauses, rules) {
|
|
54
|
+
const byClause = new Map();
|
|
55
|
+
const known = new Set(clauses.map(c => c.qualifiedName));
|
|
56
|
+
const unknownClauses = [];
|
|
57
|
+
const byDomain = {};
|
|
58
|
+
const untracedRules = [];
|
|
59
|
+
let tracedRules = 0;
|
|
60
|
+
for (const rule of rules) {
|
|
61
|
+
byDomain[rule.domain ?? 'unstated'] = (byDomain[rule.domain ?? 'unstated'] ?? 0) + 1;
|
|
62
|
+
const enforced = rule.enforces ?? [];
|
|
63
|
+
if (enforced.length === 0)
|
|
64
|
+
untracedRules.push({ id: rule.sourceRuleId, typeName: rule.sourceRuleType, ...(rule.domain ? { domain: rule.domain } : {}) });
|
|
65
|
+
else
|
|
66
|
+
tracedRules++;
|
|
67
|
+
for (const clause of enforced) {
|
|
68
|
+
if (!known.has(clause)) {
|
|
69
|
+
unknownClauses.push({ ruleId: rule.sourceRuleId, clause });
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (rule.disposition !== 'enabled')
|
|
73
|
+
continue;
|
|
74
|
+
byClause.set(clause, [...(byClause.get(clause) ?? []), rule.sourceRuleId]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const enforcedClauses = clauses
|
|
78
|
+
.filter(c => byClause.has(c.qualifiedName))
|
|
79
|
+
.map(c => ({ ...c, rules: [...new Set(byClause.get(c.qualifiedName))].sort() }));
|
|
80
|
+
const standards = [...new Set(clauses.map(c => c.standard))].sort().map(designation => ({
|
|
81
|
+
designation,
|
|
82
|
+
clauses: clauses.filter(c => c.standard === designation).length,
|
|
83
|
+
enforced: enforcedClauses.filter(c => c.standard === designation).length,
|
|
84
|
+
}));
|
|
85
|
+
return { standards, enforcedClauses, untracedRules, tracedRules, unknownClauses, byDomain };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=rule-clauses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-clauses.js","sourceRoot":"","sources":["../../src/validator/rule-clauses.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,13 @@ import type { KindRegistry } from '../model/kind-registry.js';
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function validateModel(model: MemoModel, nativeConstraints?: CompiledConstraint[], kindRegistry?: KindRegistry, effectiveRules?: EffectiveRule[],
|
|
15
15
|
/** Methodology scope: which elements a rule may be evaluated ON. */
|
|
16
|
-
inScope?: (element: import('../model/semantic.js').MemoElement) => boolean
|
|
16
|
+
inScope?: (element: import('../model/semantic.js').MemoElement) => boolean,
|
|
17
|
+
/**
|
|
18
|
+
* A workspace chosen with `--workspace`. Unlike methodology scope it is a view, not tailoring, so
|
|
19
|
+
* it narrows the subjects of EVERY rule, invariants included; the graph stays whole and only the
|
|
20
|
+
* evidence from another system's elements stops counting (see `WorkspaceScope`).
|
|
21
|
+
*/
|
|
22
|
+
workspace?: Pick<import('../model/workspace-membership.js').WorkspaceScope, 'subjects' | 'foreign'>,
|
|
23
|
+
/** What each workspace holds. Without it a rule that judges workspace boundaries has no subject. */
|
|
24
|
+
membership?: import('../model/workspace-membership.js').WorkspaceMembership): ValidationResult;
|
|
17
25
|
//# sourceMappingURL=rule-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAa,gBAAgB,EAA2B,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAa,gBAAgB,EAA2B,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,SAAS,EAChB,iBAAiB,GAAE,kBAAkB,EAAO,EAC5C,YAAY,CAAC,EAAE,YAAY,EAC3B,cAAc,CAAC,EAAE,aAAa,EAAE;AAChC,oEAAoE;AACpE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,sBAAsB,EAAE,WAAW,KAAK,OAAO;AAC1E;;;;GAIG;AACH,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,kCAAkC,EAAE,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;AACnG,oGAAoG;AACpG,UAAU,CAAC,EAAE,OAAO,kCAAkC,EAAE,mBAAmB,GAC5E,gBAAgB,CAmHlB"}
|
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
// expression evaluator (constraint-eval.ts). Structural behavior checks run
|
|
7
7
|
// alongside. The proprietary ClosureRule path was removed in Epic EE-4.
|
|
8
8
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
9
|
-
import {
|
|
9
|
+
import { evaluateConstraintSubjects } from './constraint-eval.js';
|
|
10
10
|
import { validateBehavior } from './behavior-validator.js';
|
|
11
11
|
import { validateArchitecture } from './architecture-validator.js';
|
|
12
|
+
import { validateWorkspaceBoundaries } from './workspace-boundary-validator.js';
|
|
12
13
|
import { validateViews } from './view-validator.js';
|
|
13
14
|
import { BUILTIN_RULE_IDS } from './builtin-rules.js';
|
|
14
15
|
/**
|
|
@@ -21,7 +22,15 @@ import { BUILTIN_RULE_IDS } from './builtin-rules.js';
|
|
|
21
22
|
*/
|
|
22
23
|
export function validateModel(model, nativeConstraints = [], kindRegistry, effectiveRules,
|
|
23
24
|
/** Methodology scope: which elements a rule may be evaluated ON. */
|
|
24
|
-
inScope
|
|
25
|
+
inScope,
|
|
26
|
+
/**
|
|
27
|
+
* A workspace chosen with `--workspace`. Unlike methodology scope it is a view, not tailoring, so
|
|
28
|
+
* it narrows the subjects of EVERY rule, invariants included; the graph stays whole and only the
|
|
29
|
+
* evidence from another system's elements stops counting (see `WorkspaceScope`).
|
|
30
|
+
*/
|
|
31
|
+
workspace,
|
|
32
|
+
/** What each workspace holds. Without it a rule that judges workspace boundaries has no subject. */
|
|
33
|
+
membership) {
|
|
25
34
|
// Section 10.4: a violation reports the rule's provenance, not just its ID.
|
|
26
35
|
// Keyed by active rule ID, because that is what the violation carries.
|
|
27
36
|
const provenanceByRuleId = new Map();
|
|
@@ -55,8 +64,16 @@ inScope) {
|
|
|
55
64
|
const ibdScope = nativeConstraints.find(c => c.evaluator === 'architecture')?.appliesToKind;
|
|
56
65
|
const architectureViolations = validateArchitecture(model, ibdScope, kindRegistry);
|
|
57
66
|
const viewViolations = validateViews(model);
|
|
67
|
+
// The built-in validators take no subject predicate, so a workspace keeps their findings by the
|
|
68
|
+
// element they are about. A model-wide finding (`__model__`) belongs to no element and stays.
|
|
69
|
+
// A dependency's elements are another package's: the rules judge this model's own
|
|
70
|
+
// content, and that package is validated where it is developed.
|
|
71
|
+
const isDependency = (id) => model.elements.get(id)?.provenance?.declaration.origin === 'dependency';
|
|
72
|
+
const inWorkspace = (violation) => !isDependency(violation.elementId)
|
|
73
|
+
&& (!workspace || violation.elementId === '__model__' || workspace.subjects.has(violation.elementId));
|
|
58
74
|
const nativeViolations = [];
|
|
59
75
|
let nativePassed = 0;
|
|
76
|
+
let nativeVacuous = 0;
|
|
60
77
|
// A constraint carrying a non-native `evaluator` is a first-class rule
|
|
61
78
|
// whose predicate a TypeScript function computes — AR-IBD-001 is the only
|
|
62
79
|
// one today. Its violations come from the built-in validator above, so it
|
|
@@ -64,16 +81,42 @@ inScope) {
|
|
|
64
81
|
// meant one rule was evaluated and reported as neither passed nor failed.
|
|
65
82
|
const delegated = [];
|
|
66
83
|
for (const constraint of nativeConstraints) {
|
|
84
|
+
if (constraint.evaluator === 'workspace') {
|
|
85
|
+
// A model with no System has no boundary to judge: the rule ran on nothing, which is not a pass.
|
|
86
|
+
if (!membership || membership.missingSystem) {
|
|
87
|
+
nativeVacuous++;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const found = validateWorkspaceBoundaries(model, membership, constraint).filter(inWorkspace);
|
|
91
|
+
if (found.length === 0)
|
|
92
|
+
nativePassed++;
|
|
93
|
+
nativeViolations.push(...found);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
67
96
|
if (constraint.evaluator && constraint.evaluator !== 'native') {
|
|
68
97
|
delegated.push(constraint.id);
|
|
69
98
|
continue;
|
|
70
99
|
}
|
|
71
|
-
|
|
72
|
-
|
|
100
|
+
// An invariant runs on every subject of its kind, in scope or not. It
|
|
101
|
+
// holds the ontology's own consistency, which a methodology may not
|
|
102
|
+
// tailor — and leaving an element out of the rule's subjects is
|
|
103
|
+
// tailoring it, just without a policy to show for it.
|
|
104
|
+
const methodologyScope = constraint.tailoring === 'invariant' ? undefined : inScope;
|
|
105
|
+
const own = (element) => element.provenance?.declaration.origin !== 'dependency';
|
|
106
|
+
const subjectScope = workspace
|
|
107
|
+
? (element) => own(element) && workspace.subjects.has(element.id) && (!methodologyScope || methodologyScope(element))
|
|
108
|
+
: (element) => own(element) && (!methodologyScope || methodologyScope(element));
|
|
109
|
+
const { violations, subjectCount } = evaluateConstraintSubjects(constraint, constraint.ast, model, kindRegistry, subjectScope, workspace?.foreign);
|
|
110
|
+
if (subjectCount === 0)
|
|
111
|
+
nativeVacuous++;
|
|
112
|
+
else if (violations.length === 0)
|
|
73
113
|
nativePassed++;
|
|
74
114
|
nativeViolations.push(...violations);
|
|
75
115
|
}
|
|
76
|
-
const violations = [
|
|
116
|
+
const violations = [
|
|
117
|
+
...[...unresolvedViolations, ...behaviorViolations, ...architectureViolations, ...viewViolations].filter(inWorkspace),
|
|
118
|
+
...nativeViolations,
|
|
119
|
+
]
|
|
77
120
|
.map(violation => ({
|
|
78
121
|
...violation,
|
|
79
122
|
provenance: model.elements.get(violation.elementId)?.provenance,
|
|
@@ -87,13 +130,14 @@ inScope) {
|
|
|
87
130
|
// two different denominators as though they were one.
|
|
88
131
|
const raisedByBuiltinValidators = new Set([
|
|
89
132
|
...unresolvedViolations, ...behaviorViolations, ...architectureViolations, ...viewViolations,
|
|
90
|
-
].map(violation => violation.ruleId));
|
|
133
|
+
].filter(inWorkspace).map(violation => violation.ruleId));
|
|
91
134
|
const builtinPassed = BUILTIN_RULE_IDS.filter(id => !raisedByBuiltinValidators.has(id)).length;
|
|
92
135
|
const delegatedPassed = delegated.filter(id => !raisedByBuiltinValidators.has(id)).length;
|
|
93
136
|
return {
|
|
94
137
|
violations,
|
|
95
138
|
rulesEvaluated: BUILTIN_RULE_IDS.length + nativeConstraints.length,
|
|
96
139
|
rulesPassed: builtinPassed + delegatedPassed + nativePassed,
|
|
140
|
+
rulesVacuous: nativeVacuous,
|
|
97
141
|
timestamp: Date.now(),
|
|
98
142
|
};
|
|
99
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,wEAAwE;AACxE,gFAAgF;AAMhF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"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"}
|