@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
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// ─── The Guide: where a model stands against its method ──────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Pure. For a workspace, each step of the method is done, open or blocked, from what the step states:
|
|
4
|
+
//
|
|
5
|
+
// done every output kind has an element in the workspace, and every rule the step is `#DoneWhen`
|
|
6
|
+
// has a subject there and no finding on any subject. A rule with nothing to judge is not
|
|
7
|
+
// satisfied, it has not run.
|
|
8
|
+
// blocked not done, and a step that comes first (`first … then …`, at the same level) is open or blocked.
|
|
9
|
+
// open everything else.
|
|
10
|
+
// no criterion the step names no output kind and no rule: it is never reported as done.
|
|
11
|
+
//
|
|
12
|
+
// An imported element (one that carries `@ExternalSource`) counts toward an output only when it is traced:
|
|
13
|
+
// it has at least one link other than the containment of its own package, so an import nobody relates to
|
|
14
|
+
// anything does not complete a step.
|
|
15
|
+
//
|
|
16
|
+
// The caller gives the findings already scoped to the workspace (`validateModel(…, workspace)`): filtering a
|
|
17
|
+
// whole-model result afterwards would lose the rule that a trace to another system's element is not evidence,
|
|
18
|
+
// and a pump test would then complete a generator's step.
|
|
19
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
+
import { derivesFrom } from '../model/workspace-membership.js';
|
|
21
|
+
const IMPORTED = 'externalReference.identifier';
|
|
22
|
+
const LEVEL_OF_SCOPE = { sos: 'systemOfSystems', system: 'system' };
|
|
23
|
+
export function evaluateGuide(input) {
|
|
24
|
+
const { model, kinds, workspace } = input;
|
|
25
|
+
const inScope = (id) => !workspace || workspace.subjects.has(id);
|
|
26
|
+
const elements = [...model.elements.values()].filter(e => inScope(e.id));
|
|
27
|
+
const conforms = (kind, root) => kind === root || (kinds !== undefined && derivesFrom(kinds, kind, root));
|
|
28
|
+
const traced = (id) => [...(model.outgoing.get(id) ?? []), ...(model.incoming.get(id) ?? [])].some(r => r.type !== 'composes');
|
|
29
|
+
// A workspace is worked at one level; the whole model has both.
|
|
30
|
+
const wanted = workspace ? LEVEL_OF_SCOPE[workspace.scope] : undefined;
|
|
31
|
+
const steps = input.steps.filter(step => !wanted || !step.level || step.level === wanted);
|
|
32
|
+
const status = new Map();
|
|
33
|
+
for (const step of steps) {
|
|
34
|
+
const reasons = [];
|
|
35
|
+
const outputs = step.outputKinds.map(kind => {
|
|
36
|
+
const ofKind = elements.filter(e => conforms(e.kind, kind));
|
|
37
|
+
const counted = ofKind.filter(e => !e.attributes?.[IMPORTED] || traced(e.id));
|
|
38
|
+
return { kind, count: counted.length, untracedImports: ofKind.length - counted.length };
|
|
39
|
+
});
|
|
40
|
+
for (const output of outputs.filter(o => o.count === 0)) {
|
|
41
|
+
reasons.push(output.untracedImports > 0
|
|
42
|
+
? `${output.untracedImports} imported ${output.kind} element(s) are not traced to anything`
|
|
43
|
+
: `no ${output.kind} yet`);
|
|
44
|
+
}
|
|
45
|
+
const rules = step.doneWhen.map(name => {
|
|
46
|
+
const rule = input.rules.find(r => r.typeName === name);
|
|
47
|
+
if (!rule)
|
|
48
|
+
return { rule: name, known: false, subjects: 0, violations: 0 };
|
|
49
|
+
const subjects = elements.filter(e => conforms(e.kind, rule.appliesToKind)).length;
|
|
50
|
+
const violations = input.violations.filter(v => v.ruleId === rule.id && inScope(v.elementId)).length;
|
|
51
|
+
return { rule: name, known: true, subjects, violations };
|
|
52
|
+
});
|
|
53
|
+
for (const rule of rules) {
|
|
54
|
+
if (!rule.known)
|
|
55
|
+
reasons.push(`the rule ${rule.rule} is not in the rule set`);
|
|
56
|
+
else if (rule.subjects === 0)
|
|
57
|
+
reasons.push(`${rule.rule} has nothing to judge yet`);
|
|
58
|
+
else if (rule.violations > 0)
|
|
59
|
+
reasons.push(`${rule.rule}: ${rule.violations} finding(s)`);
|
|
60
|
+
}
|
|
61
|
+
const criterion = step.outputKinds.length > 0 || step.doneWhen.length > 0;
|
|
62
|
+
const done = criterion && reasons.length === 0;
|
|
63
|
+
status.set(step.id, {
|
|
64
|
+
...step, state: !criterion ? 'no-criterion' : done ? 'done' : 'open', outputs, rules, blockedBy: [], reasons,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Blocked: a step that comes first is open or blocked. Resolved in order, so a chain blocks all the way down.
|
|
68
|
+
for (const step of steps) {
|
|
69
|
+
const own = status.get(step.id);
|
|
70
|
+
if (own.state === 'done' || own.state === 'no-criterion')
|
|
71
|
+
continue;
|
|
72
|
+
const before = step.predecessors.map(id => status.get(id)).filter((s) => s !== undefined);
|
|
73
|
+
own.blockedBy = before.filter(s => s.state === 'open' || s.state === 'blocked').map(s => s.id);
|
|
74
|
+
if (own.blockedBy.length > 0)
|
|
75
|
+
own.state = 'blocked';
|
|
76
|
+
}
|
|
77
|
+
const ordered = steps.map(step => status.get(step.id));
|
|
78
|
+
return { steps: ordered, next: ordered.find(step => step.state === 'open')?.id };
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/methodology/guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ProjectCensus } from './census.js';
|
|
2
|
+
/** One subject: its baseline id and the directory holding the project. */
|
|
3
|
+
export interface CensusSubject {
|
|
4
|
+
id: string;
|
|
5
|
+
dir: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The example projects, in directory order.
|
|
9
|
+
*
|
|
10
|
+
* Discovered rather than listed: a new example is content the census should
|
|
11
|
+
* cover from the day it lands, and a hardcoded list would have to be edited to
|
|
12
|
+
* get that — which is the edit nobody makes. A directory that does not resolve
|
|
13
|
+
* as a project is skipped here and never reaches a baseline.
|
|
14
|
+
*/
|
|
15
|
+
export declare function censusSubjects(examplesDir: string): CensusSubject[];
|
|
16
|
+
/**
|
|
17
|
+
* Build one subject's model and count it.
|
|
18
|
+
*
|
|
19
|
+
* The build is `memo validate`'s: resolve natively, subtract every library root
|
|
20
|
+
* — selected AND unused, because a file from a root the project never imported
|
|
21
|
+
* is not its content — and build what is left. Counting the library's own
|
|
22
|
+
* elements would make every project's census move when the ontology changes,
|
|
23
|
+
* which is the one signal this must not drown.
|
|
24
|
+
*/
|
|
25
|
+
export declare function censusOf(subject: CensusSubject): Promise<ProjectCensus>;
|
|
26
|
+
//# sourceMappingURL=census-projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"census-projects.d.ts","sourceRoot":"","sources":["../../src/model/census-projects.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAGhE,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,CAOnE;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAK7E"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// ─── Census subjects ─────────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Which projects the element census counts, and how one of them is built.
|
|
4
|
+
//
|
|
5
|
+
// Shared by the gate test and the capture script so the two cannot disagree
|
|
6
|
+
// about what was frozen: a baseline captured over a different project set than
|
|
7
|
+
// the gate checks is a baseline that passes for the wrong reason.
|
|
8
|
+
//
|
|
9
|
+
// The subjects are the shipped examples. They are what a reader opens first,
|
|
10
|
+
// they are the only in-repository models that exercise the full ingestion path,
|
|
11
|
+
// and a change to a shared ontology definition reaches every one of them at
|
|
12
|
+
// once — which is the change this census exists to watch.
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
15
|
+
import { resolve } from 'node:path';
|
|
16
|
+
import { loadProjectSettings } from './config-loader.js';
|
|
17
|
+
import { findProjectRoot } from './native-project.js';
|
|
18
|
+
import { computeCensus } from './census.js';
|
|
19
|
+
import { loadProjectModel } from '../toolchain/project-model.js';
|
|
20
|
+
/**
|
|
21
|
+
* The example projects, in directory order.
|
|
22
|
+
*
|
|
23
|
+
* Discovered rather than listed: a new example is content the census should
|
|
24
|
+
* cover from the day it lands, and a hardcoded list would have to be edited to
|
|
25
|
+
* get that — which is the edit nobody makes. A directory that does not resolve
|
|
26
|
+
* as a project is skipped here and never reaches a baseline.
|
|
27
|
+
*/
|
|
28
|
+
export function censusSubjects(examplesDir) {
|
|
29
|
+
if (!existsSync(examplesDir))
|
|
30
|
+
return [];
|
|
31
|
+
return readdirSync(examplesDir, { withFileTypes: true })
|
|
32
|
+
.filter(entry => entry.isDirectory())
|
|
33
|
+
.map(entry => ({ id: entry.name, dir: resolve(examplesDir, entry.name) }))
|
|
34
|
+
.filter(subject => findProjectRoot(subject.dir))
|
|
35
|
+
.sort((a, b) => a.id.localeCompare(b.id));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build one subject's model and count it.
|
|
39
|
+
*
|
|
40
|
+
* The build is `memo validate`'s: resolve natively, subtract every library root
|
|
41
|
+
* — selected AND unused, because a file from a root the project never imported
|
|
42
|
+
* is not its content — and build what is left. Counting the library's own
|
|
43
|
+
* elements would make every project's census move when the ontology changes,
|
|
44
|
+
* which is the one signal this must not drown.
|
|
45
|
+
*/
|
|
46
|
+
export async function censusOf(subject) {
|
|
47
|
+
const root = findProjectRoot(subject.dir);
|
|
48
|
+
if (!root)
|
|
49
|
+
throw new Error(`${subject.id}: not a MEMO project (${subject.dir})`);
|
|
50
|
+
const { model } = await loadProjectModel({ projectRoot: root, config: loadProjectSettings(root) });
|
|
51
|
+
return computeCensus(model, { project: subject.id, projectRoot: root });
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=census-projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"census-projects.js","sourceRoot":"","sources":["../../src/model/census-projects.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,0DAA0D;AAC1D,gFAAgF;AAEhF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB;IAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACnD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACpC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACzE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAsB;IACjD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,yBAAyB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IACjF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,OAAO,aAAa,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { MemoModel } from './semantic.js';
|
|
2
|
+
/** Per-file counts. Every map is sorted by key so a baseline diffs cleanly. */
|
|
3
|
+
export interface FileCensus {
|
|
4
|
+
/** Elements this file declares. */
|
|
5
|
+
elements: number;
|
|
6
|
+
/** Of those, DEFINITIONS (`part def Pump`) rather than usages. */
|
|
7
|
+
definitions: number;
|
|
8
|
+
/** Elements per ontology kind. */
|
|
9
|
+
kinds: Record<string, number>;
|
|
10
|
+
/** Relationships whose declaration this file carries. */
|
|
11
|
+
relationships: number;
|
|
12
|
+
/** Relationships per type, including the ones the builder synthesizes. */
|
|
13
|
+
relationshipTypes: Record<string, number>;
|
|
14
|
+
/** Packages declared here, empty ones included. */
|
|
15
|
+
packages: number;
|
|
16
|
+
/**
|
|
17
|
+
* Parse errors reported against this file — the parser's own complaints,
|
|
18
|
+
* which carry no diagnostic code.
|
|
19
|
+
*
|
|
20
|
+
* One of the two INVERTED measures in the census: more of these is worse,
|
|
21
|
+
* and a rise fails the comparison the same way a falling element count
|
|
22
|
+
* does. A file that stops parsing loses its elements in the same run, so
|
|
23
|
+
* this is the measure that says WHY the count moved.
|
|
24
|
+
*/
|
|
25
|
+
parseErrors: number;
|
|
26
|
+
/**
|
|
27
|
+
* Builder findings against this file — a short-name collision, an ambiguous
|
|
28
|
+
* reference, a relationship whose ends do not conform to its declared
|
|
29
|
+
* types.
|
|
30
|
+
*
|
|
31
|
+
* Counted apart from parse errors because they are a different failure with
|
|
32
|
+
* a different cause, and because most of them are reported by nothing today
|
|
33
|
+
* (the board row "Builder well-formedness findings are computed and
|
|
34
|
+
* discarded"). Inverted for the same reason: more of them is worse.
|
|
35
|
+
*/
|
|
36
|
+
builderFindings: number;
|
|
37
|
+
}
|
|
38
|
+
/** A census of one built model. */
|
|
39
|
+
export interface ProjectCensus {
|
|
40
|
+
/** Identifier for the project, used in the baseline filename and messages. */
|
|
41
|
+
project: string;
|
|
42
|
+
/** Sums over every file. */
|
|
43
|
+
totals: {
|
|
44
|
+
files: number;
|
|
45
|
+
elements: number;
|
|
46
|
+
definitions: number;
|
|
47
|
+
relationships: number;
|
|
48
|
+
packages: number;
|
|
49
|
+
parseErrors: number;
|
|
50
|
+
builderFindings: number;
|
|
51
|
+
};
|
|
52
|
+
/** Per project-relative file path, sorted. */
|
|
53
|
+
files: Record<string, FileCensus>;
|
|
54
|
+
}
|
|
55
|
+
/** What a census comparison found. */
|
|
56
|
+
export interface CensusFinding {
|
|
57
|
+
/**
|
|
58
|
+
* `drop` fails the gate: the model holds less than the baseline recorded.
|
|
59
|
+
* `rise` passes and is reported, so the baseline can be re-frozen knowingly.
|
|
60
|
+
*/
|
|
61
|
+
severity: 'drop' | 'rise';
|
|
62
|
+
/** Project-relative file, or `(totals)` for a whole-project measure. */
|
|
63
|
+
file: string;
|
|
64
|
+
/** What was counted: `elements`, `kind:Hazard`, `relationshipType:flow`, … */
|
|
65
|
+
measure: string;
|
|
66
|
+
baseline: number;
|
|
67
|
+
current: number;
|
|
68
|
+
/** One line, already readable without the structured fields. */
|
|
69
|
+
message: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Count one built model.
|
|
73
|
+
*
|
|
74
|
+
* `projectRoot` makes the recorded paths project-relative. Absolute paths are
|
|
75
|
+
* what the model carries and would make a baseline machine-specific, so a root
|
|
76
|
+
* is required for anything that gets committed.
|
|
77
|
+
*/
|
|
78
|
+
export declare function computeCensus(model: MemoModel, options: {
|
|
79
|
+
project: string;
|
|
80
|
+
projectRoot?: string;
|
|
81
|
+
}): ProjectCensus;
|
|
82
|
+
/**
|
|
83
|
+
* Diff a current census against a frozen one.
|
|
84
|
+
*
|
|
85
|
+
* Drops are the failure: a file that lost elements, a kind that lost instances,
|
|
86
|
+
* a relationship type that lost edges, a file that disappeared from the model
|
|
87
|
+
* entirely, or a file that gained parse errors.
|
|
88
|
+
*
|
|
89
|
+
* Rises are reported and do not fail, which has one cost worth being explicit
|
|
90
|
+
* about: a baseline left un-refrozen after content is ADDED goes stale low, and
|
|
91
|
+
* a later drop back to that stale number is not caught. Re-freeze after adding
|
|
92
|
+
* content (`pnpm census:capture`) and the window closes; the check prints the
|
|
93
|
+
* command every time it sees a rise, for that reason.
|
|
94
|
+
*/
|
|
95
|
+
export declare function compareCensus(baseline: ProjectCensus, current: ProjectCensus): CensusFinding[];
|
|
96
|
+
/**
|
|
97
|
+
* Render findings for a human, drops first.
|
|
98
|
+
*
|
|
99
|
+
* `limit` caps the listing: a shared-definition change moves hundreds of counts
|
|
100
|
+
* at once, and a reader needs the first few plus the total, not the whole diff.
|
|
101
|
+
*/
|
|
102
|
+
export declare function formatCensusFindings(findings: CensusFinding[], limit?: number): string;
|
|
103
|
+
//# sourceMappingURL=census.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"census.d.ts","sourceRoot":"","sources":["../../src/model/census.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,mCAAmC;AACnC,MAAM,WAAW,aAAa;IAC1B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,MAAM,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACrC;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC1B;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,aAAa,CAiEf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,CA4D9F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,SAAK,GAAG,MAAM,CAelF"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
// ─── Element census ──────────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// How many elements, of which kinds, did each source file put into the model?
|
|
4
|
+
//
|
|
5
|
+
// That question is the only one that catches a SILENT DROP — source that still
|
|
6
|
+
// parses, still validates, and quietly declares less than it did. Every other
|
|
7
|
+
// number a build prints moves the wrong way when content disappears: violations
|
|
8
|
+
// FALL because the elements carrying them are gone, and completeness RISES
|
|
9
|
+
// because the incomplete elements are the ones that vanished. Measured
|
|
10
|
+
// 2026-09-19: a file built 2 elements instead of 124 and `memo validate`
|
|
11
|
+
// reported "92% complete, 1583 violations, 32 rules passed", down from 1595,
|
|
12
|
+
// and the drop was read as progress.
|
|
13
|
+
//
|
|
14
|
+
// A census is therefore a COUNT ORACLE, not a snapshot: per file, per kind, per
|
|
15
|
+
// relationship type, frozen as a baseline and compared on every run. It says
|
|
16
|
+
// nothing about whether the model is good — only whether it still contains what
|
|
17
|
+
// it contained last time anyone looked.
|
|
18
|
+
//
|
|
19
|
+
// The comparison is deliberately asymmetric. A count going DOWN fails: content
|
|
20
|
+
// left the model and something has to say why. A count going UP is reported and
|
|
21
|
+
// passes, because adding content is the normal business of every example in the
|
|
22
|
+
// tree and a gate that fails on it would be re-frozen so often that nobody
|
|
23
|
+
// would read the diff. The cost of that choice is stated where it bites: see
|
|
24
|
+
// `compareCensus`.
|
|
25
|
+
//
|
|
26
|
+
// Not a replacement for `scripts/verify-baseline.mjs`, which freezes element
|
|
27
|
+
// IDS and relationship endpoints for the four reference projects. That oracle
|
|
28
|
+
// is finer and answers "did anything move?"; this one is coarse enough to run
|
|
29
|
+
// in the gate over every example on every test run, and answers "did anything
|
|
30
|
+
// LEAVE?".
|
|
31
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
32
|
+
import { relative } from 'node:path';
|
|
33
|
+
/** How the builder marks a relationship well-formedness finding, having no code for it. */
|
|
34
|
+
const WELL_FORMEDNESS_PREFIX = '[well-formedness]';
|
|
35
|
+
/**
|
|
36
|
+
* Count one built model.
|
|
37
|
+
*
|
|
38
|
+
* `projectRoot` makes the recorded paths project-relative. Absolute paths are
|
|
39
|
+
* what the model carries and would make a baseline machine-specific, so a root
|
|
40
|
+
* is required for anything that gets committed.
|
|
41
|
+
*/
|
|
42
|
+
export function computeCensus(model, options) {
|
|
43
|
+
const files = new Map();
|
|
44
|
+
const at = (file) => {
|
|
45
|
+
const key = toRelative(file, options.projectRoot);
|
|
46
|
+
let entry = files.get(key);
|
|
47
|
+
if (!entry) {
|
|
48
|
+
entry = {
|
|
49
|
+
elements: 0, definitions: 0, kinds: {},
|
|
50
|
+
relationships: 0, relationshipTypes: {},
|
|
51
|
+
packages: 0, parseErrors: 0, builderFindings: 0,
|
|
52
|
+
};
|
|
53
|
+
files.set(key, entry);
|
|
54
|
+
}
|
|
55
|
+
return entry;
|
|
56
|
+
};
|
|
57
|
+
for (const element of model.elements.values()) {
|
|
58
|
+
const entry = at(element.file);
|
|
59
|
+
entry.elements++;
|
|
60
|
+
if (element.isDefinition)
|
|
61
|
+
entry.definitions++;
|
|
62
|
+
entry.kinds[element.kind] = (entry.kinds[element.kind] ?? 0) + 1;
|
|
63
|
+
}
|
|
64
|
+
for (const relationship of model.relationships) {
|
|
65
|
+
const entry = at(relationship.file);
|
|
66
|
+
entry.relationships++;
|
|
67
|
+
entry.relationshipTypes[relationship.type] =
|
|
68
|
+
(entry.relationshipTypes[relationship.type] ?? 0) + 1;
|
|
69
|
+
}
|
|
70
|
+
// A package that declares nothing is still a package, and it is exactly the
|
|
71
|
+
// thing a lowering change can drop without touching any other count — the
|
|
72
|
+
// board row "An empty package vanishes in lowering with no diagnostic".
|
|
73
|
+
for (const pkg of model.packages)
|
|
74
|
+
at(pkg.file).packages++;
|
|
75
|
+
// `model.errors` carries both. A coded diagnostic is the builder's; so is
|
|
76
|
+
// the relationship well-formedness finding, which is recognized by its
|
|
77
|
+
// message prefix because it carries no code — 73 of them in gpca-pump, and
|
|
78
|
+
// counting them as parse errors would say a clean file does not parse. The
|
|
79
|
+
// prefix goes when that finding gets a code, which is the board row
|
|
80
|
+
// "Builder well-formedness findings are computed and discarded".
|
|
81
|
+
for (const error of model.errors) {
|
|
82
|
+
const entry = at(error.file);
|
|
83
|
+
const fromBuilder = Boolean(error.code) || error.message.startsWith(WELL_FORMEDNESS_PREFIX);
|
|
84
|
+
if (fromBuilder)
|
|
85
|
+
entry.builderFindings++;
|
|
86
|
+
else
|
|
87
|
+
entry.parseErrors++;
|
|
88
|
+
}
|
|
89
|
+
const totals = {
|
|
90
|
+
files: files.size,
|
|
91
|
+
elements: 0, definitions: 0, relationships: 0, packages: 0,
|
|
92
|
+
parseErrors: 0, builderFindings: 0,
|
|
93
|
+
};
|
|
94
|
+
for (const entry of files.values()) {
|
|
95
|
+
totals.elements += entry.elements;
|
|
96
|
+
totals.definitions += entry.definitions;
|
|
97
|
+
totals.relationships += entry.relationships;
|
|
98
|
+
totals.packages += entry.packages;
|
|
99
|
+
totals.parseErrors += entry.parseErrors;
|
|
100
|
+
totals.builderFindings += entry.builderFindings;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
project: options.project,
|
|
104
|
+
totals,
|
|
105
|
+
files: Object.fromEntries([...files.entries()]
|
|
106
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
107
|
+
.map(([path, entry]) => [path, sortMaps(entry)])),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Diff a current census against a frozen one.
|
|
112
|
+
*
|
|
113
|
+
* Drops are the failure: a file that lost elements, a kind that lost instances,
|
|
114
|
+
* a relationship type that lost edges, a file that disappeared from the model
|
|
115
|
+
* entirely, or a file that gained parse errors.
|
|
116
|
+
*
|
|
117
|
+
* Rises are reported and do not fail, which has one cost worth being explicit
|
|
118
|
+
* about: a baseline left un-refrozen after content is ADDED goes stale low, and
|
|
119
|
+
* a later drop back to that stale number is not caught. Re-freeze after adding
|
|
120
|
+
* content (`pnpm census:capture`) and the window closes; the check prints the
|
|
121
|
+
* command every time it sees a rise, for that reason.
|
|
122
|
+
*/
|
|
123
|
+
export function compareCensus(baseline, current) {
|
|
124
|
+
const findings = [];
|
|
125
|
+
const compare = (file, measure, before, after, inverted = false) => {
|
|
126
|
+
if (before === after)
|
|
127
|
+
return;
|
|
128
|
+
const worse = inverted ? after > before : after < before;
|
|
129
|
+
findings.push({
|
|
130
|
+
severity: worse ? 'drop' : 'rise',
|
|
131
|
+
file, measure, baseline: before, current: after,
|
|
132
|
+
message: `${file}: ${measure} ${before} → ${after}`,
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
compare('(totals)', 'files', baseline.totals.files, current.totals.files);
|
|
136
|
+
compare('(totals)', 'elements', baseline.totals.elements, current.totals.elements);
|
|
137
|
+
compare('(totals)', 'definitions', baseline.totals.definitions, current.totals.definitions);
|
|
138
|
+
compare('(totals)', 'relationships', baseline.totals.relationships, current.totals.relationships);
|
|
139
|
+
compare('(totals)', 'packages', baseline.totals.packages, current.totals.packages);
|
|
140
|
+
compare('(totals)', 'parseErrors', baseline.totals.parseErrors, current.totals.parseErrors, true);
|
|
141
|
+
compare('(totals)', 'builderFindings', baseline.totals.builderFindings, current.totals.builderFindings, true);
|
|
142
|
+
const empty = {
|
|
143
|
+
elements: 0, definitions: 0, kinds: {},
|
|
144
|
+
relationships: 0, relationshipTypes: {}, packages: 0,
|
|
145
|
+
parseErrors: 0, builderFindings: 0,
|
|
146
|
+
};
|
|
147
|
+
for (const path of [...new Set([...Object.keys(baseline.files), ...Object.keys(current.files)])].sort()) {
|
|
148
|
+
const before = baseline.files[path] ?? empty;
|
|
149
|
+
const after = current.files[path] ?? empty;
|
|
150
|
+
// A file present in the baseline and absent now contributed nothing at
|
|
151
|
+
// all: report it as the single fact it is rather than as one finding
|
|
152
|
+
// per kind it used to declare.
|
|
153
|
+
if (!current.files[path]) {
|
|
154
|
+
findings.push({
|
|
155
|
+
severity: 'drop', file: path, measure: 'file',
|
|
156
|
+
baseline: before.elements, current: 0,
|
|
157
|
+
message: `${path}: gone from the model — it declared ${before.elements} element(s)`,
|
|
158
|
+
});
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
compare(path, 'elements', before.elements, after.elements);
|
|
162
|
+
compare(path, 'definitions', before.definitions, after.definitions);
|
|
163
|
+
compare(path, 'relationships', before.relationships, after.relationships);
|
|
164
|
+
compare(path, 'packages', before.packages, after.packages);
|
|
165
|
+
compare(path, 'parseErrors', before.parseErrors, after.parseErrors, true);
|
|
166
|
+
compare(path, 'builderFindings', before.builderFindings, after.builderFindings, true);
|
|
167
|
+
for (const kind of keysOf(before.kinds, after.kinds)) {
|
|
168
|
+
compare(path, `kind:${kind}`, before.kinds[kind] ?? 0, after.kinds[kind] ?? 0);
|
|
169
|
+
}
|
|
170
|
+
for (const type of keysOf(before.relationshipTypes, after.relationshipTypes)) {
|
|
171
|
+
compare(path, `relationshipType:${type}`, before.relationshipTypes[type] ?? 0, after.relationshipTypes[type] ?? 0);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return findings;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Render findings for a human, drops first.
|
|
178
|
+
*
|
|
179
|
+
* `limit` caps the listing: a shared-definition change moves hundreds of counts
|
|
180
|
+
* at once, and a reader needs the first few plus the total, not the whole diff.
|
|
181
|
+
*/
|
|
182
|
+
export function formatCensusFindings(findings, limit = 25) {
|
|
183
|
+
const drops = findings.filter(f => f.severity === 'drop');
|
|
184
|
+
const rises = findings.filter(f => f.severity === 'rise');
|
|
185
|
+
const lines = [];
|
|
186
|
+
if (drops.length > 0) {
|
|
187
|
+
lines.push(`${drops.length} count(s) went DOWN — the model holds less than the baseline records:`);
|
|
188
|
+
for (const f of drops.slice(0, limit))
|
|
189
|
+
lines.push(` ${f.message}`);
|
|
190
|
+
if (drops.length > limit)
|
|
191
|
+
lines.push(` … ${drops.length - limit} more`);
|
|
192
|
+
}
|
|
193
|
+
if (rises.length > 0) {
|
|
194
|
+
lines.push(`${rises.length} count(s) went up (content added; re-freeze with \`pnpm census:capture\`):`);
|
|
195
|
+
for (const f of rises.slice(0, limit))
|
|
196
|
+
lines.push(` ${f.message}`);
|
|
197
|
+
if (rises.length > limit)
|
|
198
|
+
lines.push(` … ${rises.length - limit} more`);
|
|
199
|
+
}
|
|
200
|
+
return lines.join('\n');
|
|
201
|
+
}
|
|
202
|
+
function keysOf(a, b) {
|
|
203
|
+
return [...new Set([...Object.keys(a), ...Object.keys(b)])].sort();
|
|
204
|
+
}
|
|
205
|
+
function sortMaps(entry) {
|
|
206
|
+
return {
|
|
207
|
+
...entry,
|
|
208
|
+
kinds: sortRecord(entry.kinds),
|
|
209
|
+
relationshipTypes: sortRecord(entry.relationshipTypes),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function sortRecord(record) {
|
|
213
|
+
return Object.fromEntries(Object.entries(record).sort(([a], [b]) => a.localeCompare(b)));
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Project-relative, forward-slashed.
|
|
217
|
+
*
|
|
218
|
+
* A model carries absolute paths, which differ per checkout; a baseline keyed
|
|
219
|
+
* by one would diff against itself on the next machine.
|
|
220
|
+
*/
|
|
221
|
+
function toRelative(file, projectRoot) {
|
|
222
|
+
if (!file)
|
|
223
|
+
return '(no file)';
|
|
224
|
+
if (!projectRoot)
|
|
225
|
+
return file;
|
|
226
|
+
const rel = relative(projectRoot, file);
|
|
227
|
+
return (rel && !rel.startsWith('..') ? rel : file).split('\\').join('/');
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=census.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"census.js","sourceRoot":"","sources":["../../src/model/census.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { MEMOConfig } from './config.js';
|
|
2
|
+
import type { MemoRelationship, MemoModel, MemoPackageDTO, ParseError } from './semantic.js';
|
|
3
|
+
import { ElementIndex } from './element-index.js';
|
|
4
|
+
import type { KindRegistry } from './kind-registry.js';
|
|
5
|
+
import type { RelationshipRegistry } from './relationship-registry.js';
|
|
6
|
+
import type { ProvenanceTable } from './source-provenance.js';
|
|
7
|
+
/**
|
|
8
|
+
* Optional registries for dual-mode resolution.
|
|
9
|
+
* When provided, registries take precedence over config lookups.
|
|
10
|
+
* Falls back to config when a registry entry is not found.
|
|
11
|
+
*/
|
|
12
|
+
export interface BuilderRegistries {
|
|
13
|
+
/** KindRegistry populated from ontology SysML files */
|
|
14
|
+
kindRegistry?: KindRegistry;
|
|
15
|
+
/** RelationshipRegistry populated from ontology SysML files */
|
|
16
|
+
relationshipRegistry?: RelationshipRegistry;
|
|
17
|
+
/** Resolved source ownership; never infer this from a client-side path. */
|
|
18
|
+
provenance?: ProvenanceTable;
|
|
19
|
+
}
|
|
20
|
+
/** What `completeModel` needs from whichever builder extracted the elements and relationships. */
|
|
21
|
+
export interface CompleteModelInput {
|
|
22
|
+
elements: ElementIndex;
|
|
23
|
+
relationships: MemoRelationship[];
|
|
24
|
+
errors: ParseError[];
|
|
25
|
+
config: MEMOConfig;
|
|
26
|
+
registries?: BuilderRegistries;
|
|
27
|
+
/** The declared packages. */
|
|
28
|
+
packages?: MemoPackageDTO[];
|
|
29
|
+
/** The 1-based line a relationship is declared on, for end-kind findings. */
|
|
30
|
+
lineOfRelationship?: (relationship: MemoRelationship) => number | undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Finish a model once its elements and relationships exist: provenance,
|
|
34
|
+
* identities, end-kind checks, indexes, kinds inherited through local
|
|
35
|
+
* definitions. Stage 2's builder over API JSON (stage2/build-from-api.ts)
|
|
36
|
+
* calls it once it has extracted the elements and relationships.
|
|
37
|
+
*/
|
|
38
|
+
export declare function completeModel(input: CompleteModelInput): MemoModel;
|
|
39
|
+
/** The kind a nested grouping package becomes, distinct from a namespace package. */
|
|
40
|
+
export declare const ELEMENT_PACKAGE_KIND = "ElementPackage";
|
|
41
|
+
/**
|
|
42
|
+
* The `ParseError.code` a relationship carries when an end's element does not
|
|
43
|
+
* conform to the kind the relationship's definition types that end with.
|
|
44
|
+
*/
|
|
45
|
+
export declare const RELATIONSHIP_END_KIND = "relationship-end-kind";
|
|
46
|
+
/** The `ParseError.code` an `interface … connect` with an end naming nothing carries. */
|
|
47
|
+
export declare const UNRESOLVED_INTERFACE_END = "unresolved-interface-end";
|
|
48
|
+
/** The `ParseError.code` a `flow` or `message` with an end naming nothing carries. */
|
|
49
|
+
export declare const UNRESOLVED_FLOW_END = "unresolved-flow-end";
|
|
50
|
+
/** The `ParseError.code` a `bind` with an end naming nothing carries. */
|
|
51
|
+
export declare const UNRESOLVED_BINDING_END = "unresolved-binding-end";
|
|
52
|
+
//# sourceMappingURL=complete-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete-model.d.ts","sourceRoot":"","sources":["../../src/model/complete-model.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAER,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,UAAU,EAEb,MAAM,eAAe,CAAC;AAGvB,OAAO,EACH,YAAY,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,wBAAwB,CAAC;AAGzF;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,uDAAuD;IACvD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,2EAA2E;IAC3E,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC;AAGD,kGAAkG;AAClG,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;CAC/E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAiMlE;AAkED,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC"}
|