context-probe 0.1.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/LICENSE +183 -0
- package/README.ja.md +323 -0
- package/README.md +323 -0
- package/dist/src/analyzers/architecture-contract-declarations-dart.d.ts +2 -0
- package/dist/src/analyzers/architecture-contract-declarations-dart.js +129 -0
- package/dist/src/analyzers/architecture-contract-declarations-ecma-core.d.ts +2 -0
- package/dist/src/analyzers/architecture-contract-declarations-ecma-core.js +89 -0
- package/dist/src/analyzers/architecture-contract-declarations-ecma-shared.d.ts +10 -0
- package/dist/src/analyzers/architecture-contract-declarations-ecma-shared.js +56 -0
- package/dist/src/analyzers/architecture-contract-declarations-ecma.d.ts +1 -0
- package/dist/src/analyzers/architecture-contract-declarations-ecma.js +1 -0
- package/dist/src/analyzers/architecture-contract-declarations-shared.d.ts +8 -0
- package/dist/src/analyzers/architecture-contract-declarations-shared.js +21 -0
- package/dist/src/analyzers/architecture-contract-declarations.d.ts +2 -0
- package/dist/src/analyzers/architecture-contract-declarations.js +2 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-analysis.d.ts +8 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-analysis.js +70 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-core.d.ts +8 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-core.js +4 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-entry.d.ts +19 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-entry.js +89 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-scope.d.ts +8 -0
- package/dist/src/analyzers/architecture-contract-score-baseline-scope.js +18 -0
- package/dist/src/analyzers/architecture-contract-score-baseline.d.ts +1 -0
- package/dist/src/analyzers/architecture-contract-score-baseline.js +1 -0
- package/dist/src/analyzers/architecture-contract-score-current.d.ts +3 -0
- package/dist/src/analyzers/architecture-contract-score-current.js +39 -0
- package/dist/src/analyzers/architecture-contract-score-shared.d.ts +18 -0
- package/dist/src/analyzers/architecture-contract-score-shared.js +9 -0
- package/dist/src/analyzers/architecture-contract-scoring.d.ts +15 -0
- package/dist/src/analyzers/architecture-contract-scoring.js +70 -0
- package/dist/src/analyzers/architecture-contract-stats-core.d.ts +9 -0
- package/dist/src/analyzers/architecture-contract-stats-core.js +20 -0
- package/dist/src/analyzers/architecture-contract-stats-file.d.ts +23 -0
- package/dist/src/analyzers/architecture-contract-stats-file.js +77 -0
- package/dist/src/analyzers/architecture-contract-stats.d.ts +2 -0
- package/dist/src/analyzers/architecture-contract-stats.js +1 -0
- package/dist/src/analyzers/architecture-contract-types.d.ts +24 -0
- package/dist/src/analyzers/architecture-contract-types.js +1 -0
- package/dist/src/analyzers/architecture-contracts.d.ts +2 -0
- package/dist/src/analyzers/architecture-contracts.js +1 -0
- package/dist/src/analyzers/architecture-cti-ingest.d.ts +19 -0
- package/dist/src/analyzers/architecture-cti-ingest.js +64 -0
- package/dist/src/analyzers/architecture-delivery-normalization-core.d.ts +6 -0
- package/dist/src/analyzers/architecture-delivery-normalization-core.js +83 -0
- package/dist/src/analyzers/architecture-delivery-normalization-shared.d.ts +16 -0
- package/dist/src/analyzers/architecture-delivery-normalization-shared.js +1 -0
- package/dist/src/analyzers/architecture-delivery-normalization-spec.d.ts +13 -0
- package/dist/src/analyzers/architecture-delivery-normalization-spec.js +52 -0
- package/dist/src/analyzers/architecture-delivery-normalization.d.ts +6 -0
- package/dist/src/analyzers/architecture-delivery-normalization.js +4 -0
- package/dist/src/analyzers/architecture-evolution-efficiency.d.ts +8 -0
- package/dist/src/analyzers/architecture-evolution-efficiency.js +76 -0
- package/dist/src/analyzers/architecture-evolution-locality.d.ts +7 -0
- package/dist/src/analyzers/architecture-evolution-locality.js +129 -0
- package/dist/src/analyzers/architecture-evolution-shared.d.ts +33 -0
- package/dist/src/analyzers/architecture-evolution-shared.js +29 -0
- package/dist/src/analyzers/architecture-evolution.d.ts +3 -0
- package/dist/src/analyzers/architecture-evolution.js +2 -0
- package/dist/src/analyzers/architecture-observation-ingest-delivery.d.ts +9 -0
- package/dist/src/analyzers/architecture-observation-ingest-delivery.js +62 -0
- package/dist/src/analyzers/architecture-observation-ingest-shared.d.ts +13 -0
- package/dist/src/analyzers/architecture-observation-ingest-shared.js +12 -0
- package/dist/src/analyzers/architecture-observation-ingest-telemetry.d.ts +10 -0
- package/dist/src/analyzers/architecture-observation-ingest-telemetry.js +71 -0
- package/dist/src/analyzers/architecture-observation-ingest.d.ts +5 -0
- package/dist/src/analyzers/architecture-observation-ingest.js +2 -0
- package/dist/src/analyzers/architecture-observation-normalization-shared.d.ts +10 -0
- package/dist/src/analyzers/architecture-observation-normalization-shared.js +19 -0
- package/dist/src/analyzers/architecture-operations-common-ops.d.ts +16 -0
- package/dist/src/analyzers/architecture-operations-common-ops.js +76 -0
- package/dist/src/analyzers/architecture-operations.d.ts +27 -0
- package/dist/src/analyzers/architecture-operations.js +56 -0
- package/dist/src/analyzers/architecture-pattern-runtime-fallback.d.ts +8 -0
- package/dist/src/analyzers/architecture-pattern-runtime-fallback.js +79 -0
- package/dist/src/analyzers/architecture-pattern-runtime-family.d.ts +7 -0
- package/dist/src/analyzers/architecture-pattern-runtime-family.js +56 -0
- package/dist/src/analyzers/architecture-pattern-runtime-normalization-blocks.d.ts +12 -0
- package/dist/src/analyzers/architecture-pattern-runtime-normalization-blocks.js +41 -0
- package/dist/src/analyzers/architecture-pattern-runtime-normalization-math.d.ts +10 -0
- package/dist/src/analyzers/architecture-pattern-runtime-normalization-math.js +19 -0
- package/dist/src/analyzers/architecture-pattern-runtime-normalization.d.ts +21 -0
- package/dist/src/analyzers/architecture-pattern-runtime-normalization.js +103 -0
- package/dist/src/analyzers/architecture-pattern-runtime-resolution-shared.d.ts +16 -0
- package/dist/src/analyzers/architecture-pattern-runtime-resolution-shared.js +65 -0
- package/dist/src/analyzers/architecture-pattern-runtime-resolution.d.ts +15 -0
- package/dist/src/analyzers/architecture-pattern-runtime-resolution.js +99 -0
- package/dist/src/analyzers/architecture-pattern-runtime-shared.d.ts +2 -0
- package/dist/src/analyzers/architecture-pattern-runtime-shared.js +1 -0
- package/dist/src/analyzers/architecture-pattern-runtime-types.d.ts +29 -0
- package/dist/src/analyzers/architecture-pattern-runtime-types.js +1 -0
- package/dist/src/analyzers/architecture-pattern-runtime.d.ts +7 -0
- package/dist/src/analyzers/architecture-pattern-runtime.js +20 -0
- package/dist/src/analyzers/architecture-purity-signals.d.ts +6 -0
- package/dist/src/analyzers/architecture-purity-signals.js +21 -0
- package/dist/src/analyzers/architecture-purity.d.ts +2 -0
- package/dist/src/analyzers/architecture-purity.js +1 -0
- package/dist/src/analyzers/architecture-scenarios.d.ts +22 -0
- package/dist/src/analyzers/architecture-scenarios.js +95 -0
- package/dist/src/analyzers/architecture-source-loader-command.d.ts +8 -0
- package/dist/src/analyzers/architecture-source-loader-command.js +73 -0
- package/dist/src/analyzers/architecture-source-loader-core.d.ts +22 -0
- package/dist/src/analyzers/architecture-source-loader-core.js +41 -0
- package/dist/src/analyzers/architecture-source-loader-file.d.ts +8 -0
- package/dist/src/analyzers/architecture-source-loader-file.js +28 -0
- package/dist/src/analyzers/architecture-source-loader-shared.d.ts +24 -0
- package/dist/src/analyzers/architecture-source-loader-shared.js +4 -0
- package/dist/src/analyzers/architecture-source-loader.d.ts +2 -0
- package/dist/src/analyzers/architecture-source-loader.js +1 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-band.d.ts +10 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-band.js +78 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-core.d.ts +6 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-core.js +30 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-shared.d.ts +16 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-shared.js +1 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-spec.d.ts +10 -0
- package/dist/src/analyzers/architecture-telemetry-normalization-spec.js +20 -0
- package/dist/src/analyzers/architecture-telemetry-normalization.d.ts +6 -0
- package/dist/src/analyzers/architecture-telemetry-normalization.js +4 -0
- package/dist/src/analyzers/architecture-topology-core.d.ts +7 -0
- package/dist/src/analyzers/architecture-topology-core.js +4 -0
- package/dist/src/analyzers/architecture-topology-shared.d.ts +2 -0
- package/dist/src/analyzers/architecture-topology-shared.js +9 -0
- package/dist/src/analyzers/architecture-topology-signals.d.ts +21 -0
- package/dist/src/analyzers/architecture-topology-signals.js +98 -0
- package/dist/src/analyzers/architecture-topology.d.ts +2 -0
- package/dist/src/analyzers/architecture-topology.js +1 -0
- package/dist/src/analyzers/architecture.d.ts +16 -0
- package/dist/src/analyzers/architecture.js +44 -0
- package/dist/src/analyzers/code-contracts.d.ts +4 -0
- package/dist/src/analyzers/code-contracts.js +74 -0
- package/dist/src/analyzers/code-dart.d.ts +3 -0
- package/dist/src/analyzers/code-dart.js +57 -0
- package/dist/src/analyzers/code-ecma.d.ts +2 -0
- package/dist/src/analyzers/code-ecma.js +53 -0
- package/dist/src/analyzers/code-shared.d.ts +19 -0
- package/dist/src/analyzers/code-shared.js +64 -0
- package/dist/src/analyzers/code.d.ts +3 -0
- package/dist/src/analyzers/code.js +34 -0
- package/dist/src/analyzers/contract-files.d.ts +13 -0
- package/dist/src/analyzers/contract-files.js +80 -0
- package/dist/src/analyzers/cti-complexity-components.d.ts +12 -0
- package/dist/src/analyzers/cti-complexity-components.js +83 -0
- package/dist/src/analyzers/cti-complexity-recorder.d.ts +31 -0
- package/dist/src/analyzers/cti-complexity-recorder.js +58 -0
- package/dist/src/analyzers/cti-complexity.d.ts +7 -0
- package/dist/src/analyzers/cti-complexity.js +15 -0
- package/dist/src/analyzers/cti-helpers.d.ts +7 -0
- package/dist/src/analyzers/cti-helpers.js +40 -0
- package/dist/src/analyzers/cti.d.ts +2 -0
- package/dist/src/analyzers/cti.js +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +95 -0
- package/dist/src/command-architecture-inputs-loaders-config.d.ts +24 -0
- package/dist/src/command-architecture-inputs-loaders-config.js +17 -0
- package/dist/src/command-architecture-inputs-loaders-data.d.ts +22 -0
- package/dist/src/command-architecture-inputs-loaders-data.js +105 -0
- package/dist/src/command-architecture-inputs-loaders.d.ts +42 -0
- package/dist/src/command-architecture-inputs-loaders.js +12 -0
- package/dist/src/command-architecture-inputs-provenance.d.ts +2 -0
- package/dist/src/command-architecture-inputs-provenance.js +29 -0
- package/dist/src/command-architecture-inputs-resolved.d.ts +44 -0
- package/dist/src/command-architecture-inputs-resolved.js +72 -0
- package/dist/src/command-architecture-inputs-sources.d.ts +2 -0
- package/dist/src/command-architecture-inputs-sources.js +1 -0
- package/dist/src/command-architecture-inputs.d.ts +4 -0
- package/dist/src/command-architecture-inputs.js +63 -0
- package/dist/src/command-architecture.d.ts +2 -0
- package/dist/src/command-architecture.js +35 -0
- package/dist/src/command-domain.d.ts +2 -0
- package/dist/src/command-domain.js +124 -0
- package/dist/src/command-extraction-helpers.d.ts +13 -0
- package/dist/src/command-extraction-helpers.js +33 -0
- package/dist/src/command-helpers.d.ts +4 -0
- package/dist/src/command-helpers.js +3 -0
- package/dist/src/command-history.d.ts +2 -0
- package/dist/src/command-history.js +61 -0
- package/dist/src/command-input-loaders-architecture-compat-delivery-complexity.d.ts +3 -0
- package/dist/src/command-input-loaders-architecture-compat-delivery-complexity.js +132 -0
- package/dist/src/command-input-loaders-architecture-compat-pattern-runtime.d.ts +2 -0
- package/dist/src/command-input-loaders-architecture-compat-pattern-runtime.js +54 -0
- package/dist/src/command-input-loaders-architecture-compat-scenario.d.ts +3 -0
- package/dist/src/command-input-loaders-architecture-compat-scenario.js +94 -0
- package/dist/src/command-input-loaders-architecture-compat-shared.d.ts +17 -0
- package/dist/src/command-input-loaders-architecture-compat-shared.js +109 -0
- package/dist/src/command-input-loaders-architecture-compat-telemetry.d.ts +3 -0
- package/dist/src/command-input-loaders-architecture-compat-telemetry.js +137 -0
- package/dist/src/command-input-loaders-architecture-compat-topology-boundary.d.ts +3 -0
- package/dist/src/command-input-loaders-architecture-compat-topology-boundary.js +178 -0
- package/dist/src/command-input-loaders-architecture-compat.d.ts +4 -0
- package/dist/src/command-input-loaders-architecture-compat.js +4 -0
- package/dist/src/command-input-loaders-architecture-config.d.ts +34 -0
- package/dist/src/command-input-loaders-architecture-config.js +25 -0
- package/dist/src/command-input-loaders-architecture-data.d.ts +17 -0
- package/dist/src/command-input-loaders-architecture-data.js +47 -0
- package/dist/src/command-input-loaders-architecture.d.ts +2 -0
- package/dist/src/command-input-loaders-architecture.js +2 -0
- package/dist/src/command-input-loaders-core.d.ts +20 -0
- package/dist/src/command-input-loaders-core.js +58 -0
- package/dist/src/command-input-loaders.d.ts +2 -0
- package/dist/src/command-input-loaders.js +2 -0
- package/dist/src/command-path-helpers.d.ts +6 -0
- package/dist/src/command-path-helpers.js +15 -0
- package/dist/src/command-score-driven.d.ts +19 -0
- package/dist/src/command-score-driven.js +96 -0
- package/dist/src/command-score.d.ts +3 -0
- package/dist/src/command-score.js +78 -0
- package/dist/src/command-shadow-rollout-batch.d.ts +5 -0
- package/dist/src/command-shadow-rollout-batch.js +85 -0
- package/dist/src/command-shadow-rollout-gate.d.ts +5 -0
- package/dist/src/command-shadow-rollout-gate.js +33 -0
- package/dist/src/command-shadow-rollout-observe.d.ts +5 -0
- package/dist/src/command-shadow-rollout-observe.js +43 -0
- package/dist/src/command-shadow-rollout-shared.d.ts +4 -0
- package/dist/src/command-shadow-rollout-shared.js +23 -0
- package/dist/src/command-shadow-rollout.d.ts +2 -0
- package/dist/src/command-shadow-rollout.js +16 -0
- package/dist/src/command-types.d.ts +4 -0
- package/dist/src/command-types.js +1 -0
- package/dist/src/commands.d.ts +6 -0
- package/dist/src/commands.js +66 -0
- package/dist/src/core/aggregate-fitness-core.d.ts +24 -0
- package/dist/src/core/aggregate-fitness-core.js +40 -0
- package/dist/src/core/aggregate-fitness-evidence.d.ts +2 -0
- package/dist/src/core/aggregate-fitness-evidence.js +24 -0
- package/dist/src/core/aggregate-fitness-mapping.d.ts +17 -0
- package/dist/src/core/aggregate-fitness-mapping.js +57 -0
- package/dist/src/core/aggregate-fitness-scoring.d.ts +24 -0
- package/dist/src/core/aggregate-fitness-scoring.js +71 -0
- package/dist/src/core/aggregate-fitness-shared.d.ts +21 -0
- package/dist/src/core/aggregate-fitness-shared.js +127 -0
- package/dist/src/core/aggregate-fitness.d.ts +2 -0
- package/dist/src/core/aggregate-fitness.js +1 -0
- package/dist/src/core/architecture-purity-core.d.ts +3 -0
- package/dist/src/core/architecture-purity-core.js +94 -0
- package/dist/src/core/architecture-purity-types.d.ts +18 -0
- package/dist/src/core/architecture-purity-types.js +1 -0
- package/dist/src/core/architecture-scenario-quality.d.ts +5 -0
- package/dist/src/core/architecture-scenario-quality.js +52 -0
- package/dist/src/core/architecture-scoring-evidence-architecture.d.ts +10 -0
- package/dist/src/core/architecture-scoring-evidence-architecture.js +50 -0
- package/dist/src/core/architecture-scoring-evidence-findings.d.ts +2 -0
- package/dist/src/core/architecture-scoring-evidence-findings.js +2 -0
- package/dist/src/core/architecture-scoring-evidence-inputs-ingest.d.ts +5 -0
- package/dist/src/core/architecture-scoring-evidence-inputs-ingest.js +68 -0
- package/dist/src/core/architecture-scoring-evidence-inputs-shared.d.ts +20 -0
- package/dist/src/core/architecture-scoring-evidence-inputs-shared.js +24 -0
- package/dist/src/core/architecture-scoring-evidence-inputs-source.d.ts +7 -0
- package/dist/src/core/architecture-scoring-evidence-inputs-source.js +16 -0
- package/dist/src/core/architecture-scoring-evidence-inputs.d.ts +2 -0
- package/dist/src/core/architecture-scoring-evidence-inputs.js +2 -0
- package/dist/src/core/architecture-scoring-evidence-observability.d.ts +12 -0
- package/dist/src/core/architecture-scoring-evidence-observability.js +75 -0
- package/dist/src/core/architecture-scoring-evidence.d.ts +30 -0
- package/dist/src/core/architecture-scoring-evidence.js +76 -0
- package/dist/src/core/architecture-scoring-evolution-inputs.d.ts +10 -0
- package/dist/src/core/architecture-scoring-evolution-inputs.js +56 -0
- package/dist/src/core/architecture-scoring-inputs-complexity.d.ts +7 -0
- package/dist/src/core/architecture-scoring-inputs-complexity.js +24 -0
- package/dist/src/core/architecture-scoring-inputs-observability.d.ts +11 -0
- package/dist/src/core/architecture-scoring-inputs-observability.js +84 -0
- package/dist/src/core/architecture-scoring-inputs-static.d.ts +13 -0
- package/dist/src/core/architecture-scoring-inputs-static.js +48 -0
- package/dist/src/core/architecture-scoring-inputs.d.ts +9 -0
- package/dist/src/core/architecture-scoring-inputs.js +16 -0
- package/dist/src/core/architecture-scoring-metric-shared.d.ts +11 -0
- package/dist/src/core/architecture-scoring-metric-shared.js +3 -0
- package/dist/src/core/architecture-scoring-metrics-composite.d.ts +3 -0
- package/dist/src/core/architecture-scoring-metrics-composite.js +56 -0
- package/dist/src/core/architecture-scoring-metrics-core.d.ts +3 -0
- package/dist/src/core/architecture-scoring-metrics-core.js +81 -0
- package/dist/src/core/architecture-scoring-metrics-evolution.d.ts +3 -0
- package/dist/src/core/architecture-scoring-metrics-evolution.js +74 -0
- package/dist/src/core/architecture-scoring-metrics-runtime.d.ts +3 -0
- package/dist/src/core/architecture-scoring-metrics-runtime.js +68 -0
- package/dist/src/core/architecture-scoring-metrics.d.ts +4 -0
- package/dist/src/core/architecture-scoring-metrics.js +14 -0
- package/dist/src/core/architecture-scoring-types.d.ts +94 -0
- package/dist/src/core/architecture-scoring-types.js +1 -0
- package/dist/src/core/architecture-scoring.d.ts +9 -0
- package/dist/src/core/architecture-scoring.js +82 -0
- package/dist/src/core/artifacts.d.ts +3 -0
- package/dist/src/core/artifacts.js +58 -0
- package/dist/src/core/boundary-fitness-attraction.d.ts +4 -0
- package/dist/src/core/boundary-fitness-attraction.js +11 -0
- package/dist/src/core/boundary-fitness-contexts.d.ts +7 -0
- package/dist/src/core/boundary-fitness-contexts.js +80 -0
- package/dist/src/core/boundary-fitness-core.d.ts +28 -0
- package/dist/src/core/boundary-fitness-core.js +132 -0
- package/dist/src/core/boundary-fitness-evidence.d.ts +17 -0
- package/dist/src/core/boundary-fitness-evidence.js +27 -0
- package/dist/src/core/boundary-fitness-separation.d.ts +13 -0
- package/dist/src/core/boundary-fitness-separation.js +14 -0
- package/dist/src/core/boundary-fitness-shared.d.ts +3 -0
- package/dist/src/core/boundary-fitness-shared.js +17 -0
- package/dist/src/core/boundary-fitness-signals.d.ts +21 -0
- package/dist/src/core/boundary-fitness-signals.js +104 -0
- package/dist/src/core/boundary-fitness.d.ts +3 -0
- package/dist/src/core/boundary-fitness.js +2 -0
- package/dist/src/core/command-analytics.d.ts +32 -0
- package/dist/src/core/command-analytics.js +80 -0
- package/dist/src/core/contracts/analysis.d.ts +105 -0
- package/dist/src/core/contracts/analysis.js +1 -0
- package/dist/src/core/contracts/architecture-complexity.d.ts +20 -0
- package/dist/src/core/contracts/architecture-complexity.js +1 -0
- package/dist/src/core/contracts/architecture-constraints.d.ts +62 -0
- package/dist/src/core/contracts/architecture-constraints.js +1 -0
- package/dist/src/core/contracts/architecture-contract-baseline.d.ts +33 -0
- package/dist/src/core/contracts/architecture-contract-baseline.js +1 -0
- package/dist/src/core/contracts/architecture-delivery.d.ts +42 -0
- package/dist/src/core/contracts/architecture-delivery.js +1 -0
- package/dist/src/core/contracts/architecture-normalization.d.ts +6 -0
- package/dist/src/core/contracts/architecture-normalization.js +1 -0
- package/dist/src/core/contracts/architecture-pattern-runtime.d.ts +69 -0
- package/dist/src/core/contracts/architecture-pattern-runtime.js +1 -0
- package/dist/src/core/contracts/architecture-scenarios.d.ts +62 -0
- package/dist/src/core/contracts/architecture-scenarios.js +1 -0
- package/dist/src/core/contracts/architecture-telemetry.d.ts +47 -0
- package/dist/src/core/contracts/architecture-telemetry.js +1 -0
- package/dist/src/core/contracts/architecture-topology.d.ts +35 -0
- package/dist/src/core/contracts/architecture-topology.js +1 -0
- package/dist/src/core/contracts/architecture.d.ts +9 -0
- package/dist/src/core/contracts/architecture.js +9 -0
- package/dist/src/core/contracts/common.d.ts +87 -0
- package/dist/src/core/contracts/common.js +1 -0
- package/dist/src/core/contracts/domain-design-score.d.ts +14 -0
- package/dist/src/core/contracts/domain-design-score.js +1 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-batch.d.ts +58 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-batch.js +1 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-gate.d.ts +46 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-gate.js +1 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-observation.d.ts +17 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-observation.js +1 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-registry.d.ts +15 -0
- package/dist/src/core/contracts/domain-design-shadow-rollout-registry.js +1 -0
- package/dist/src/core/contracts/domain-design.d.ts +5 -0
- package/dist/src/core/contracts/domain-design.js +5 -0
- package/dist/src/core/contracts/domain-model.d.ts +35 -0
- package/dist/src/core/contracts/domain-model.js +1 -0
- package/dist/src/core/contracts/governance-extraction.d.ts +65 -0
- package/dist/src/core/contracts/governance-extraction.js +1 -0
- package/dist/src/core/contracts/governance-policy.d.ts +23 -0
- package/dist/src/core/contracts/governance-policy.js +1 -0
- package/dist/src/core/contracts/governance-review.d.ts +31 -0
- package/dist/src/core/contracts/governance-review.js +1 -0
- package/dist/src/core/contracts/governance-runtime.d.ts +12 -0
- package/dist/src/core/contracts/governance-runtime.js +1 -0
- package/dist/src/core/contracts/governance-scoring.d.ts +41 -0
- package/dist/src/core/contracts/governance-scoring.js +1 -0
- package/dist/src/core/contracts/governance.d.ts +5 -0
- package/dist/src/core/contracts/governance.js +5 -0
- package/dist/src/core/contracts.d.ts +6 -0
- package/dist/src/core/contracts.js +6 -0
- package/dist/src/core/document-extractor-glossary.d.ts +3 -0
- package/dist/src/core/document-extractor-glossary.js +90 -0
- package/dist/src/core/document-extractor-identity.d.ts +18 -0
- package/dist/src/core/document-extractor-identity.js +37 -0
- package/dist/src/core/document-extractor-shared.d.ts +3 -0
- package/dist/src/core/document-extractor-shared.js +2 -0
- package/dist/src/core/document-extractor-statements-classification-cli.d.ts +3 -0
- package/dist/src/core/document-extractor-statements-classification-cli.js +50 -0
- package/dist/src/core/document-extractor-statements-classification-core.d.ts +17 -0
- package/dist/src/core/document-extractor-statements-classification-core.js +91 -0
- package/dist/src/core/document-extractor-statements-classification-heuristic.d.ts +3 -0
- package/dist/src/core/document-extractor-statements-classification-heuristic.js +32 -0
- package/dist/src/core/document-extractor-statements-classification.d.ts +2 -0
- package/dist/src/core/document-extractor-statements-classification.js +2 -0
- package/dist/src/core/document-extractor-statements-segments.d.ts +3 -0
- package/dist/src/core/document-extractor-statements-segments.js +38 -0
- package/dist/src/core/document-extractor-statements.d.ts +1 -0
- package/dist/src/core/document-extractor-statements.js +1 -0
- package/dist/src/core/document-extractor-text-normalization.d.ts +5 -0
- package/dist/src/core/document-extractor-text-normalization.js +29 -0
- package/dist/src/core/document-extractor-text-review.d.ts +3 -0
- package/dist/src/core/document-extractor-text-review.js +15 -0
- package/dist/src/core/document-extractor-text-signals.d.ts +11 -0
- package/dist/src/core/document-extractor-text-signals.js +115 -0
- package/dist/src/core/document-extractor-text.d.ts +3 -0
- package/dist/src/core/document-extractor-text.js +3 -0
- package/dist/src/core/document-extractor-types.d.ts +30 -0
- package/dist/src/core/document-extractor-types.js +1 -0
- package/dist/src/core/document-extractors-review.d.ts +4 -0
- package/dist/src/core/document-extractors-review.js +10 -0
- package/dist/src/core/document-extractors-runner.d.ts +15 -0
- package/dist/src/core/document-extractors-runner.js +31 -0
- package/dist/src/core/document-extractors.d.ts +24 -0
- package/dist/src/core/document-extractors.js +130 -0
- package/dist/src/core/domain-design-matching.d.ts +2 -0
- package/dist/src/core/domain-design-matching.js +85 -0
- package/dist/src/core/domain-design-scoring-context.d.ts +25 -0
- package/dist/src/core/domain-design-scoring-context.js +66 -0
- package/dist/src/core/domain-design-scoring-core-docs.d.ts +5 -0
- package/dist/src/core/domain-design-scoring-core-docs.js +8 -0
- package/dist/src/core/domain-design-scoring-core.d.ts +24 -0
- package/dist/src/core/domain-design-scoring-core.js +137 -0
- package/dist/src/core/domain-design-scoring-docs-afs.d.ts +2 -0
- package/dist/src/core/domain-design-scoring-docs-afs.js +40 -0
- package/dist/src/core/domain-design-scoring-docs-bfs.d.ts +2 -0
- package/dist/src/core/domain-design-scoring-docs-bfs.js +46 -0
- package/dist/src/core/domain-design-scoring-docs-core.d.ts +12 -0
- package/dist/src/core/domain-design-scoring-docs-core.js +47 -0
- package/dist/src/core/domain-design-scoring-docs-drf.d.ts +2 -0
- package/dist/src/core/domain-design-scoring-docs-drf.js +55 -0
- package/dist/src/core/domain-design-scoring-docs-shared.d.ts +25 -0
- package/dist/src/core/domain-design-scoring-docs-shared.js +1 -0
- package/dist/src/core/domain-design-scoring-docs-uli.d.ts +2 -0
- package/dist/src/core/domain-design-scoring-docs-uli.js +39 -0
- package/dist/src/core/domain-design-scoring-docs.d.ts +1 -0
- package/dist/src/core/domain-design-scoring-docs.js +1 -0
- package/dist/src/core/domain-design-scoring-locality.d.ts +27 -0
- package/dist/src/core/domain-design-scoring-locality.js +87 -0
- package/dist/src/core/domain-design-scoring-mccs.d.ts +18 -0
- package/dist/src/core/domain-design-scoring-mccs.js +29 -0
- package/dist/src/core/domain-design-scoring-pilot.d.ts +13 -0
- package/dist/src/core/domain-design-scoring-pilot.js +57 -0
- package/dist/src/core/domain-design-scoring-response-shared.d.ts +20 -0
- package/dist/src/core/domain-design-scoring-response-shared.js +30 -0
- package/dist/src/core/domain-design-scoring-response.d.ts +18 -0
- package/dist/src/core/domain-design-scoring-response.js +27 -0
- package/dist/src/core/domain-design-scoring-support-drf.d.ts +17 -0
- package/dist/src/core/domain-design-scoring-support-drf.js +118 -0
- package/dist/src/core/domain-design-scoring-support-persistence.d.ts +6 -0
- package/dist/src/core/domain-design-scoring-support-persistence.js +8 -0
- package/dist/src/core/domain-design-scoring-support-uli.d.ts +12 -0
- package/dist/src/core/domain-design-scoring-support-uli.js +31 -0
- package/dist/src/core/domain-design-scoring-support.d.ts +3 -0
- package/dist/src/core/domain-design-scoring-support.js +3 -0
- package/dist/src/core/domain-design-scoring.d.ts +1 -0
- package/dist/src/core/domain-design-scoring.js +1 -0
- package/dist/src/core/formula-parser-tokenize.d.ts +14 -0
- package/dist/src/core/formula-parser-tokenize.js +58 -0
- package/dist/src/core/formula-parser.d.ts +1 -0
- package/dist/src/core/formula-parser.js +91 -0
- package/dist/src/core/formula.d.ts +1 -0
- package/dist/src/core/formula.js +1 -0
- package/dist/src/core/history-locality.d.ts +5 -0
- package/dist/src/core/history-locality.js +48 -0
- package/dist/src/core/history-normalization.d.ts +13 -0
- package/dist/src/core/history-normalization.js +105 -0
- package/dist/src/core/history-persistence-analysis.d.ts +6 -0
- package/dist/src/core/history-persistence-analysis.js +26 -0
- package/dist/src/core/history-persistence-clusters.d.ts +6 -0
- package/dist/src/core/history-persistence-clusters.js +9 -0
- package/dist/src/core/history-persistence-comparison.d.ts +6 -0
- package/dist/src/core/history-persistence-comparison.js +66 -0
- package/dist/src/core/history-persistence-components.d.ts +8 -0
- package/dist/src/core/history-persistence-components.js +99 -0
- package/dist/src/core/history-persistence-stability.d.ts +8 -0
- package/dist/src/core/history-persistence-stability.js +79 -0
- package/dist/src/core/history-persistence.d.ts +2 -0
- package/dist/src/core/history-persistence.js +2 -0
- package/dist/src/core/history-shared.d.ts +27 -0
- package/dist/src/core/history-shared.js +145 -0
- package/dist/src/core/history.d.ts +3 -0
- package/dist/src/core/history.js +3 -0
- package/dist/src/core/io.d.ts +9 -0
- package/dist/src/core/io.js +86 -0
- package/dist/src/core/measurement-metadata.d.ts +13 -0
- package/dist/src/core/measurement-metadata.js +142 -0
- package/dist/src/core/model.d.ts +3 -0
- package/dist/src/core/model.js +33 -0
- package/dist/src/core/policy-defaults-architecture.d.ts +2 -0
- package/dist/src/core/policy-defaults-architecture.js +75 -0
- package/dist/src/core/policy-defaults-domain.d.ts +2 -0
- package/dist/src/core/policy-defaults-domain.js +51 -0
- package/dist/src/core/policy-defaults-profiles.d.ts +2 -0
- package/dist/src/core/policy-defaults-profiles.js +24 -0
- package/dist/src/core/policy-defaults.d.ts +2 -0
- package/dist/src/core/policy-defaults.js +4 -0
- package/dist/src/core/policy-formulas.d.ts +5 -0
- package/dist/src/core/policy-formulas.js +5 -0
- package/dist/src/core/policy.d.ts +4 -0
- package/dist/src/core/policy.js +20 -0
- package/dist/src/core/progress.d.ts +8 -0
- package/dist/src/core/progress.js +40 -0
- package/dist/src/core/providers-normalization.d.ts +7 -0
- package/dist/src/core/providers-normalization.js +27 -0
- package/dist/src/core/providers-prompt.d.ts +4 -0
- package/dist/src/core/providers-prompt.js +63 -0
- package/dist/src/core/providers-runner.d.ts +3 -0
- package/dist/src/core/providers-runner.js +32 -0
- package/dist/src/core/providers-types.d.ts +10 -0
- package/dist/src/core/providers-types.js +1 -0
- package/dist/src/core/providers.d.ts +4 -0
- package/dist/src/core/providers.js +30 -0
- package/dist/src/core/report-actionability.d.ts +4 -0
- package/dist/src/core/report-actionability.js +57 -0
- package/dist/src/core/report-architecture.d.ts +2 -0
- package/dist/src/core/report-architecture.js +80 -0
- package/dist/src/core/report-domain.d.ts +2 -0
- package/dist/src/core/report-domain.js +50 -0
- package/dist/src/core/report-gate.d.ts +3 -0
- package/dist/src/core/report-gate.js +54 -0
- package/dist/src/core/report-shared-format.d.ts +2 -0
- package/dist/src/core/report-shared-format.js +6 -0
- package/dist/src/core/report-shared-guidance.d.ts +2 -0
- package/dist/src/core/report-shared-guidance.js +98 -0
- package/dist/src/core/report-shared-predicates.d.ts +17 -0
- package/dist/src/core/report-shared-predicates.js +9 -0
- package/dist/src/core/report-shared.d.ts +4 -0
- package/dist/src/core/report-shared.js +3 -0
- package/dist/src/core/report.d.ts +3 -0
- package/dist/src/core/report.js +10 -0
- package/dist/src/core/response.d.ts +8 -0
- package/dist/src/core/response.js +67 -0
- package/dist/src/core/review-items.d.ts +2 -0
- package/dist/src/core/review-items.js +116 -0
- package/dist/src/core/review-resolutions.d.ts +3 -0
- package/dist/src/core/review-resolutions.js +43 -0
- package/dist/src/core/review.d.ts +2 -0
- package/dist/src/core/review.js +2 -0
- package/dist/src/core/scaffold-aggregation.d.ts +13 -0
- package/dist/src/core/scaffold-aggregation.js +18 -0
- package/dist/src/core/scaffold-architecture-balances.d.ts +3 -0
- package/dist/src/core/scaffold-architecture-balances.js +25 -0
- package/dist/src/core/scaffold-architecture-drafts-builders.d.ts +19 -0
- package/dist/src/core/scaffold-architecture-drafts-builders.js +114 -0
- package/dist/src/core/scaffold-architecture-drafts-profiles.d.ts +11 -0
- package/dist/src/core/scaffold-architecture-drafts-profiles.js +183 -0
- package/dist/src/core/scaffold-architecture-drafts.d.ts +12 -0
- package/dist/src/core/scaffold-architecture-drafts.js +4 -0
- package/dist/src/core/scaffold-architecture-layer-candidates.d.ts +3 -0
- package/dist/src/core/scaffold-architecture-layer-candidates.js +32 -0
- package/dist/src/core/scaffold-architecture-layers.d.ts +3 -0
- package/dist/src/core/scaffold-architecture-layers.js +15 -0
- package/dist/src/core/scaffold-architecture-orchestration.d.ts +5 -0
- package/dist/src/core/scaffold-architecture-orchestration.js +36 -0
- package/dist/src/core/scaffold-architecture-ordering.d.ts +4 -0
- package/dist/src/core/scaffold-architecture-ordering.js +55 -0
- package/dist/src/core/scaffold-architecture.d.ts +1 -0
- package/dist/src/core/scaffold-architecture.js +1 -0
- package/dist/src/core/scaffold-domain-aggregates-candidates.d.ts +4 -0
- package/dist/src/core/scaffold-domain-aggregates-candidates.js +8 -0
- package/dist/src/core/scaffold-domain-aggregates-core.d.ts +1 -0
- package/dist/src/core/scaffold-domain-aggregates-core.js +1 -0
- package/dist/src/core/scaffold-domain-aggregates-dedupe.d.ts +2 -0
- package/dist/src/core/scaffold-domain-aggregates-dedupe.js +18 -0
- package/dist/src/core/scaffold-domain-aggregates-explicit.d.ts +4 -0
- package/dist/src/core/scaffold-domain-aggregates-explicit.js +43 -0
- package/dist/src/core/scaffold-domain-aggregates-inferred.d.ts +4 -0
- package/dist/src/core/scaffold-domain-aggregates-inferred.js +117 -0
- package/dist/src/core/scaffold-domain-aggregates-shared.d.ts +23 -0
- package/dist/src/core/scaffold-domain-aggregates-shared.js +91 -0
- package/dist/src/core/scaffold-domain-aggregates.d.ts +1 -0
- package/dist/src/core/scaffold-domain-aggregates.js +1 -0
- package/dist/src/core/scaffold-domain-context-candidates.d.ts +5 -0
- package/dist/src/core/scaffold-domain-context-candidates.js +65 -0
- package/dist/src/core/scaffold-domain-context-naming.d.ts +8 -0
- package/dist/src/core/scaffold-domain-context-naming.js +117 -0
- package/dist/src/core/scaffold-domain-contexts.d.ts +11 -0
- package/dist/src/core/scaffold-domain-contexts.js +75 -0
- package/dist/src/core/scaffold-domain-docs.d.ts +17 -0
- package/dist/src/core/scaffold-domain-docs.js +18 -0
- package/dist/src/core/scaffold-domain.d.ts +7 -0
- package/dist/src/core/scaffold-domain.js +62 -0
- package/dist/src/core/scaffold-naming.d.ts +4 -0
- package/dist/src/core/scaffold-naming.js +32 -0
- package/dist/src/core/scaffold-options.d.ts +2 -0
- package/dist/src/core/scaffold-options.js +10 -0
- package/dist/src/core/scaffold-shared.d.ts +5 -0
- package/dist/src/core/scaffold-shared.js +4 -0
- package/dist/src/core/scaffold-source-group-classification.d.ts +3 -0
- package/dist/src/core/scaffold-source-group-classification.js +91 -0
- package/dist/src/core/scaffold-source-group-constants.d.ts +3 -0
- package/dist/src/core/scaffold-source-group-constants.js +52 -0
- package/dist/src/core/scaffold-source-group-merge.d.ts +5 -0
- package/dist/src/core/scaffold-source-group-merge.js +56 -0
- package/dist/src/core/scaffold-source-group-naming.d.ts +4 -0
- package/dist/src/core/scaffold-source-group-naming.js +66 -0
- package/dist/src/core/scaffold-source-groups.d.ts +5 -0
- package/dist/src/core/scaffold-source-groups.js +123 -0
- package/dist/src/core/scaffold-types.d.ts +30 -0
- package/dist/src/core/scaffold-types.js +1 -0
- package/dist/src/core/scaffold.d.ts +2 -0
- package/dist/src/core/scaffold.js +2 -0
- package/dist/src/core/scoring-shared.d.ts +12 -0
- package/dist/src/core/scoring-shared.js +39 -0
- package/dist/src/core/scoring.d.ts +2 -0
- package/dist/src/core/scoring.js +2 -0
- package/dist/src/core/shadow-rollout-gate-reasons.d.ts +8 -0
- package/dist/src/core/shadow-rollout-gate-reasons.js +22 -0
- package/dist/src/core/shadow-rollout-gate-summary.d.ts +2 -0
- package/dist/src/core/shadow-rollout-gate-summary.js +36 -0
- package/dist/src/core/shadow-rollout-gate.d.ts +2 -0
- package/dist/src/core/shadow-rollout-gate.js +50 -0
- package/dist/src/core/shadow-rollout-registry.d.ts +5 -0
- package/dist/src/core/shadow-rollout-registry.js +31 -0
- package/dist/src/core/shadow-rollout-summary.d.ts +4 -0
- package/dist/src/core/shadow-rollout-summary.js +39 -0
- package/dist/src/core/shadow-rollout.d.ts +3 -0
- package/dist/src/core/shadow-rollout.js +3 -0
- package/dist/src/core/shared-utils.d.ts +4 -0
- package/dist/src/core/shared-utils.js +15 -0
- package/dist/src/core/trace.d.ts +14 -0
- package/dist/src/core/trace.js +118 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.js +7 -0
- package/dist/src/packs/index.d.ts +2 -0
- package/dist/src/packs/index.js +36 -0
- package/package.json +68 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { asString, asStringArray, asTopologyEdgeKind, asTopologyNodeKind, isRecord, toVersion, withOptionalBoolean, withOptionalString, } from "./command-input-loaders-architecture-compat-shared.js";
|
|
2
|
+
function sanitizeTopologyNodes(input) {
|
|
3
|
+
if (!Array.isArray(input)) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
return input.flatMap((entry) => {
|
|
7
|
+
if (!isRecord(entry)) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
const nodeId = asString(entry.nodeId) ?? asString(entry.id);
|
|
11
|
+
if (!nodeId) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const kindHint = asString(entry.kind) ?? asString(entry.runtime);
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
nodeId,
|
|
18
|
+
kind: asTopologyNodeKind(entry.kind) ?? inferNodeKind(kindHint),
|
|
19
|
+
...withOptionalString("isolationBoundary", asString(entry.isolationBoundary) ?? asString(entry.isolation_boundary)),
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function sanitizeTopologyEdges(input) {
|
|
25
|
+
if (!Array.isArray(input)) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
return input.flatMap((entry) => {
|
|
29
|
+
if (!isRecord(entry)) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
const source = asString(entry.source);
|
|
33
|
+
const target = asString(entry.target);
|
|
34
|
+
const kind = asTopologyEdgeKind(entry.kind);
|
|
35
|
+
if (!source || !target || !kind) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
const shared = typeof entry.shared === "boolean" ? entry.shared : undefined;
|
|
39
|
+
return [
|
|
40
|
+
{
|
|
41
|
+
source,
|
|
42
|
+
target,
|
|
43
|
+
kind,
|
|
44
|
+
...withOptionalBoolean("shared", shared),
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function sanitizeBoundaryDefinitions(input) {
|
|
50
|
+
if (!Array.isArray(input)) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
return input.flatMap((entry) => {
|
|
54
|
+
if (!isRecord(entry)) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
const name = asString(entry.name);
|
|
58
|
+
if (!name) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
return [
|
|
62
|
+
{
|
|
63
|
+
name,
|
|
64
|
+
pathGlobs: asStringArray(entry.pathGlobs),
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function inferNodeKind(value) {
|
|
70
|
+
const normalized = (value ?? "").toLowerCase();
|
|
71
|
+
if (normalized.includes("gateway")) {
|
|
72
|
+
return "gateway";
|
|
73
|
+
}
|
|
74
|
+
if (normalized.includes("database") ||
|
|
75
|
+
normalized.includes("datastore") ||
|
|
76
|
+
normalized.includes("storage") ||
|
|
77
|
+
normalized.includes("table") ||
|
|
78
|
+
normalized.includes("bucket")) {
|
|
79
|
+
return "datastore";
|
|
80
|
+
}
|
|
81
|
+
if (normalized.includes("queue")) {
|
|
82
|
+
return "queue";
|
|
83
|
+
}
|
|
84
|
+
if (normalized.includes("worker") || normalized.includes("lambda") || normalized.includes("pipeline")) {
|
|
85
|
+
return "worker";
|
|
86
|
+
}
|
|
87
|
+
if (normalized.includes("service") || normalized.includes("app") || normalized.includes("runtime")) {
|
|
88
|
+
return "service";
|
|
89
|
+
}
|
|
90
|
+
return "unknown";
|
|
91
|
+
}
|
|
92
|
+
export function normalizeArchitectureTopologyModel(input) {
|
|
93
|
+
if (!isRecord(input)) {
|
|
94
|
+
return { version: "1.0", nodes: [], edges: [] };
|
|
95
|
+
}
|
|
96
|
+
if (Array.isArray(input.nodes) && Array.isArray(input.edges)) {
|
|
97
|
+
return {
|
|
98
|
+
version: toVersion(input),
|
|
99
|
+
nodes: sanitizeTopologyNodes(input.nodes),
|
|
100
|
+
edges: sanitizeTopologyEdges(input.edges),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const nodeMap = new Map();
|
|
104
|
+
const ensureNode = (nodeId, kindHint, isolationBoundary) => {
|
|
105
|
+
if (!nodeId) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
const existing = nodeMap.get(nodeId);
|
|
109
|
+
if (existing) {
|
|
110
|
+
if (!existing.isolationBoundary && isolationBoundary) {
|
|
111
|
+
existing.isolationBoundary = isolationBoundary;
|
|
112
|
+
}
|
|
113
|
+
return existing;
|
|
114
|
+
}
|
|
115
|
+
const node = {
|
|
116
|
+
nodeId,
|
|
117
|
+
kind: inferNodeKind(kindHint),
|
|
118
|
+
...(isolationBoundary ? { isolationBoundary } : {}),
|
|
119
|
+
};
|
|
120
|
+
nodeMap.set(nodeId, node);
|
|
121
|
+
return node;
|
|
122
|
+
};
|
|
123
|
+
const edges = [];
|
|
124
|
+
const deployables = Array.isArray(input.deployables) ? input.deployables.filter(isRecord) : [];
|
|
125
|
+
for (const deployable of deployables) {
|
|
126
|
+
ensureNode(asString(deployable.id), asString(deployable.kind) ?? asString(deployable.runtime));
|
|
127
|
+
}
|
|
128
|
+
const datastores = Array.isArray(input.datastores) ? input.datastores.filter(isRecord) : [];
|
|
129
|
+
for (const datastore of datastores) {
|
|
130
|
+
ensureNode(asString(datastore.id), asString(datastore.kind) ?? "datastore", "data");
|
|
131
|
+
}
|
|
132
|
+
const services = Array.isArray(input.services) ? input.services.filter(isRecord) : [];
|
|
133
|
+
for (const service of services) {
|
|
134
|
+
const serviceId = asString(service.id);
|
|
135
|
+
const deployable = asString(service.deployable);
|
|
136
|
+
ensureNode(serviceId, asString(service.kind) ?? "service", deployable);
|
|
137
|
+
for (const dependency of asStringArray(service.depends_on)) {
|
|
138
|
+
const [scope, rawTarget] = dependency.split(":");
|
|
139
|
+
const target = rawTarget || scope;
|
|
140
|
+
const targetNode = ensureNode(target, scope === "datastore" ? "datastore" : scope === "deployable" ? "runtime" : "service", scope === "datastore" ? "data" : undefined) ?? ensureNode(target);
|
|
141
|
+
if (!serviceId || !targetNode) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
edges.push({
|
|
145
|
+
source: serviceId,
|
|
146
|
+
target: targetNode.nodeId,
|
|
147
|
+
kind: scope === "datastore"
|
|
148
|
+
? "shared_resource"
|
|
149
|
+
: scope === "deployable"
|
|
150
|
+
? "runtime_dependency"
|
|
151
|
+
: scope === "queue"
|
|
152
|
+
? "async_message"
|
|
153
|
+
: "sync_call",
|
|
154
|
+
...(scope === "datastore" ? { shared: true } : {}),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
version: toVersion(input),
|
|
160
|
+
nodes: Array.from(nodeMap.values()),
|
|
161
|
+
edges,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
export function normalizeArchitectureBoundaryMap(input) {
|
|
165
|
+
if (!isRecord(input)) {
|
|
166
|
+
return { version: "1.0", boundaries: [] };
|
|
167
|
+
}
|
|
168
|
+
if (Array.isArray(input.boundaries)) {
|
|
169
|
+
return {
|
|
170
|
+
version: toVersion(input),
|
|
171
|
+
boundaries: sanitizeBoundaryDefinitions(input.boundaries),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
version: toVersion(input),
|
|
176
|
+
boundaries: sanitizeBoundaryDefinitions(input.contexts),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { normalizeArchitectureComplexityExportBundle, normalizeArchitectureDeliveryExportBundle, } from "./command-input-loaders-architecture-compat-delivery-complexity.js";
|
|
2
|
+
export { normalizeArchitectureScenarioCatalog, normalizeArchitectureScenarioObservations, } from "./command-input-loaders-architecture-compat-scenario.js";
|
|
3
|
+
export { normalizeArchitectureTelemetryExportBundle, normalizeArchitectureTelemetryObservations, } from "./command-input-loaders-architecture-compat-telemetry.js";
|
|
4
|
+
export { normalizeArchitectureBoundaryMap, normalizeArchitectureTopologyModel, } from "./command-input-loaders-architecture-compat-topology-boundary.js";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { normalizeArchitectureComplexityExportBundle, normalizeArchitectureDeliveryExportBundle, } from "./command-input-loaders-architecture-compat-delivery-complexity.js";
|
|
2
|
+
export { normalizeArchitectureScenarioCatalog, normalizeArchitectureScenarioObservations, } from "./command-input-loaders-architecture-compat-scenario.js";
|
|
3
|
+
export { normalizeArchitectureTelemetryExportBundle, normalizeArchitectureTelemetryObservations, } from "./command-input-loaders-architecture-compat-telemetry.js";
|
|
4
|
+
export { normalizeArchitectureBoundaryMap, normalizeArchitectureTopologyModel, } from "./command-input-loaders-architecture-compat-topology-boundary.js";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CommandArgs } from "./command-path-helpers.js";
|
|
2
|
+
import type { ArchitectureComplexitySourceConfig, ArchitectureContractBaselineSourceConfig, ArchitectureDeliveryNormalizationProfile, ArchitectureDeliverySourceConfig, ArchitecturePatternRuntimeNormalizationProfile, ArchitectureScenarioObservationSourceConfig, ArchitectureTelemetryNormalizationProfile, ArchitectureTelemetrySourceConfig, CommandContext } from "./core/contracts.js";
|
|
3
|
+
export declare function loadScenarioObservationSourceConfigIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
4
|
+
config: ArchitectureScenarioObservationSourceConfig;
|
|
5
|
+
configPath: string;
|
|
6
|
+
} | undefined>;
|
|
7
|
+
export declare function loadContractBaselineSourceConfigIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
8
|
+
config: ArchitectureContractBaselineSourceConfig;
|
|
9
|
+
configPath: string;
|
|
10
|
+
} | undefined>;
|
|
11
|
+
export declare function loadDeliveryNormalizationProfileIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
12
|
+
config: ArchitectureDeliveryNormalizationProfile;
|
|
13
|
+
configPath: string;
|
|
14
|
+
} | undefined>;
|
|
15
|
+
export declare function loadDeliverySourceConfigIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
16
|
+
config: ArchitectureDeliverySourceConfig;
|
|
17
|
+
configPath: string;
|
|
18
|
+
} | undefined>;
|
|
19
|
+
export declare function loadTelemetryNormalizationProfileIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
20
|
+
config: ArchitectureTelemetryNormalizationProfile;
|
|
21
|
+
configPath: string;
|
|
22
|
+
} | undefined>;
|
|
23
|
+
export declare function loadTelemetrySourceConfigIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
24
|
+
config: ArchitectureTelemetrySourceConfig;
|
|
25
|
+
configPath: string;
|
|
26
|
+
} | undefined>;
|
|
27
|
+
export declare function loadPatternRuntimeNormalizationProfileIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
28
|
+
config: ArchitecturePatternRuntimeNormalizationProfile;
|
|
29
|
+
configPath: string;
|
|
30
|
+
} | undefined>;
|
|
31
|
+
export declare function loadComplexitySourceConfigIfRequested(args: CommandArgs, context: CommandContext): Promise<{
|
|
32
|
+
config: ArchitectureComplexitySourceConfig;
|
|
33
|
+
configPath: string;
|
|
34
|
+
} | undefined>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { loadOptionalConfigFile } from "./command-input-loaders-core.js";
|
|
2
|
+
export function loadScenarioObservationSourceConfigIfRequested(args, context) {
|
|
3
|
+
return loadOptionalConfigFile(args, "scenario-observation-source", context);
|
|
4
|
+
}
|
|
5
|
+
export function loadContractBaselineSourceConfigIfRequested(args, context) {
|
|
6
|
+
return loadOptionalConfigFile(args, "contract-baseline-source", context);
|
|
7
|
+
}
|
|
8
|
+
export function loadDeliveryNormalizationProfileIfRequested(args, context) {
|
|
9
|
+
return loadOptionalConfigFile(args, "delivery-normalization-profile", context);
|
|
10
|
+
}
|
|
11
|
+
export function loadDeliverySourceConfigIfRequested(args, context) {
|
|
12
|
+
return loadOptionalConfigFile(args, "delivery-source", context);
|
|
13
|
+
}
|
|
14
|
+
export function loadTelemetryNormalizationProfileIfRequested(args, context) {
|
|
15
|
+
return loadOptionalConfigFile(args, "telemetry-normalization-profile", context);
|
|
16
|
+
}
|
|
17
|
+
export function loadTelemetrySourceConfigIfRequested(args, context) {
|
|
18
|
+
return loadOptionalConfigFile(args, "telemetry-source", context);
|
|
19
|
+
}
|
|
20
|
+
export function loadPatternRuntimeNormalizationProfileIfRequested(args, context) {
|
|
21
|
+
return loadOptionalConfigFile(args, "pattern-runtime-normalization-profile", context);
|
|
22
|
+
}
|
|
23
|
+
export function loadComplexitySourceConfigIfRequested(args, context) {
|
|
24
|
+
return loadOptionalConfigFile(args, "complexity-source", context);
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CommandArgs } from "./command-path-helpers.js";
|
|
2
|
+
import type { ArchitectureBoundaryMap, ArchitectureComplexityExportBundle, ArchitectureContractBaseline, ArchitectureDeliveryExportBundle, ArchitectureDeliveryObservationSet, ArchitectureDeliveryRawObservationSet, ArchitecturePatternRuntimeObservationSet, ArchitecturePatternRuntimeRawObservationSet, ArchitectureScenarioCatalog, ArchitectureTelemetryExportBundle, ArchitectureTelemetryObservationSet, ArchitectureTelemetryRawObservationSet, ArchitectureTopologyModel, CommandContext, ScenarioObservationSet, TopologyRuntimeObservationSet } from "./core/contracts.js";
|
|
3
|
+
export declare function loadScenarioCatalogIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureScenarioCatalog | undefined>;
|
|
4
|
+
export declare function loadScenarioObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ScenarioObservationSet | undefined>;
|
|
5
|
+
export declare function loadTopologyModelIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureTopologyModel | undefined>;
|
|
6
|
+
export declare function loadBoundaryMapIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureBoundaryMap | undefined>;
|
|
7
|
+
export declare function loadContractBaselineIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureContractBaseline | undefined>;
|
|
8
|
+
export declare function loadRuntimeObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<TopologyRuntimeObservationSet | undefined>;
|
|
9
|
+
export declare function loadDeliveryObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureDeliveryObservationSet | undefined>;
|
|
10
|
+
export declare function loadDeliveryRawObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureDeliveryRawObservationSet | undefined>;
|
|
11
|
+
export declare function loadDeliveryExportIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureDeliveryExportBundle | undefined>;
|
|
12
|
+
export declare function loadTelemetryObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureTelemetryObservationSet | undefined>;
|
|
13
|
+
export declare function loadTelemetryRawObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureTelemetryRawObservationSet | undefined>;
|
|
14
|
+
export declare function loadTelemetryExportIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureTelemetryExportBundle | undefined>;
|
|
15
|
+
export declare function loadPatternRuntimeObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitecturePatternRuntimeObservationSet | undefined>;
|
|
16
|
+
export declare function loadPatternRuntimeRawObservationsIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitecturePatternRuntimeRawObservationSet | undefined>;
|
|
17
|
+
export declare function loadComplexityExportIfRequested(args: CommandArgs, context: CommandContext): Promise<ArchitectureComplexityExportBundle | undefined>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { normalizeArchitectureBoundaryMap, normalizeArchitectureComplexityExportBundle, normalizeArchitectureDeliveryExportBundle, normalizeArchitectureScenarioCatalog, normalizeArchitectureScenarioObservations, normalizeArchitectureTelemetryExportBundle, normalizeArchitectureTelemetryObservations, normalizeArchitectureTopologyModel, } from "./command-input-loaders-architecture-compat.js";
|
|
2
|
+
import { loadOptionalDataFile } from "./command-input-loaders-core.js";
|
|
3
|
+
export function loadScenarioCatalogIfRequested(args, context) {
|
|
4
|
+
return loadOptionalDataFile(args, "scenario-catalog", context).then((value) => value ? normalizeArchitectureScenarioCatalog(value) : undefined);
|
|
5
|
+
}
|
|
6
|
+
export function loadScenarioObservationsIfRequested(args, context) {
|
|
7
|
+
return loadOptionalDataFile(args, "scenario-observations", context).then((value) => value ? normalizeArchitectureScenarioObservations(value) : undefined);
|
|
8
|
+
}
|
|
9
|
+
export function loadTopologyModelIfRequested(args, context) {
|
|
10
|
+
return loadOptionalDataFile(args, "topology-model", context).then((value) => value ? normalizeArchitectureTopologyModel(value) : undefined);
|
|
11
|
+
}
|
|
12
|
+
export function loadBoundaryMapIfRequested(args, context) {
|
|
13
|
+
return loadOptionalDataFile(args, "boundary-map", context).then((value) => value ? normalizeArchitectureBoundaryMap(value) : undefined);
|
|
14
|
+
}
|
|
15
|
+
export function loadContractBaselineIfRequested(args, context) {
|
|
16
|
+
return loadOptionalDataFile(args, "contract-baseline", context);
|
|
17
|
+
}
|
|
18
|
+
export function loadRuntimeObservationsIfRequested(args, context) {
|
|
19
|
+
return loadOptionalDataFile(args, "runtime-observations", context);
|
|
20
|
+
}
|
|
21
|
+
export function loadDeliveryObservationsIfRequested(args, context) {
|
|
22
|
+
return loadOptionalDataFile(args, "delivery-observations", context);
|
|
23
|
+
}
|
|
24
|
+
export function loadDeliveryRawObservationsIfRequested(args, context) {
|
|
25
|
+
return loadOptionalDataFile(args, "delivery-raw-observations", context);
|
|
26
|
+
}
|
|
27
|
+
export function loadDeliveryExportIfRequested(args, context) {
|
|
28
|
+
return loadOptionalDataFile(args, "delivery-export", context).then((value) => value ? normalizeArchitectureDeliveryExportBundle(value) : undefined);
|
|
29
|
+
}
|
|
30
|
+
export function loadTelemetryObservationsIfRequested(args, context) {
|
|
31
|
+
return loadOptionalDataFile(args, "telemetry-observations", context).then((value) => (value ? normalizeArchitectureTelemetryObservations(value) : undefined));
|
|
32
|
+
}
|
|
33
|
+
export function loadTelemetryRawObservationsIfRequested(args, context) {
|
|
34
|
+
return loadOptionalDataFile(args, "telemetry-raw-observations", context);
|
|
35
|
+
}
|
|
36
|
+
export function loadTelemetryExportIfRequested(args, context) {
|
|
37
|
+
return loadOptionalDataFile(args, "telemetry-export", context).then((value) => value ? normalizeArchitectureTelemetryExportBundle(value) : undefined);
|
|
38
|
+
}
|
|
39
|
+
export function loadPatternRuntimeObservationsIfRequested(args, context) {
|
|
40
|
+
return loadOptionalDataFile(args, "pattern-runtime-observations", context);
|
|
41
|
+
}
|
|
42
|
+
export function loadPatternRuntimeRawObservationsIfRequested(args, context) {
|
|
43
|
+
return loadOptionalDataFile(args, "pattern-runtime-raw-observations", context);
|
|
44
|
+
}
|
|
45
|
+
export function loadComplexityExportIfRequested(args, context) {
|
|
46
|
+
return loadOptionalDataFile(args, "complexity-export", context).then((value) => value ? normalizeArchitectureComplexityExportBundle(value) : undefined);
|
|
47
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { loadComplexitySourceConfigIfRequested, loadContractBaselineSourceConfigIfRequested, loadDeliveryNormalizationProfileIfRequested, loadDeliverySourceConfigIfRequested, loadPatternRuntimeNormalizationProfileIfRequested, loadScenarioObservationSourceConfigIfRequested, loadTelemetryNormalizationProfileIfRequested, loadTelemetrySourceConfigIfRequested, } from "./command-input-loaders-architecture-config.js";
|
|
2
|
+
export { loadBoundaryMapIfRequested, loadComplexityExportIfRequested, loadContractBaselineIfRequested, loadDeliveryExportIfRequested, loadDeliveryObservationsIfRequested, loadDeliveryRawObservationsIfRequested, loadPatternRuntimeObservationsIfRequested, loadPatternRuntimeRawObservationsIfRequested, loadRuntimeObservationsIfRequested, loadScenarioCatalogIfRequested, loadScenarioObservationsIfRequested, loadTelemetryExportIfRequested, loadTelemetryObservationsIfRequested, loadTelemetryRawObservationsIfRequested, loadTopologyModelIfRequested, } from "./command-input-loaders-architecture-data.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { loadComplexitySourceConfigIfRequested, loadContractBaselineSourceConfigIfRequested, loadDeliveryNormalizationProfileIfRequested, loadDeliverySourceConfigIfRequested, loadPatternRuntimeNormalizationProfileIfRequested, loadScenarioObservationSourceConfigIfRequested, loadTelemetryNormalizationProfileIfRequested, loadTelemetrySourceConfigIfRequested, } from "./command-input-loaders-architecture-config.js";
|
|
2
|
+
export { loadBoundaryMapIfRequested, loadComplexityExportIfRequested, loadContractBaselineIfRequested, loadDeliveryExportIfRequested, loadDeliveryObservationsIfRequested, loadDeliveryRawObservationsIfRequested, loadPatternRuntimeObservationsIfRequested, loadPatternRuntimeRawObservationsIfRequested, loadRuntimeObservationsIfRequested, loadScenarioCatalogIfRequested, loadScenarioObservationsIfRequested, loadTelemetryExportIfRequested, loadTelemetryObservationsIfRequested, loadTelemetryRawObservationsIfRequested, loadTopologyModelIfRequested, } from "./command-input-loaders-architecture-data.js";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CommandArgs } from "./command-path-helpers.js";
|
|
2
|
+
import type { ArchitectureConstraints, CommandContext, DomainDesignShadowRolloutBatchSpec, DomainDesignShadowRolloutRegistry, DomainModel, ReviewResolutionLog } from "./core/contracts.js";
|
|
3
|
+
import type { loadShadowRolloutRegistry } from "./core/shadow-rollout.js";
|
|
4
|
+
declare function loadOptionalDataFile<T>(args: CommandArgs, key: string, context: CommandContext): Promise<T | undefined>;
|
|
5
|
+
declare function loadOptionalConfigFile<T>(args: CommandArgs, key: string, context: CommandContext): Promise<{
|
|
6
|
+
config: T;
|
|
7
|
+
configPath: string;
|
|
8
|
+
} | undefined>;
|
|
9
|
+
export declare function requireDomainModel(args: CommandArgs, context: CommandContext): Promise<DomainModel>;
|
|
10
|
+
export declare function requireArchitectureConstraints(args: CommandArgs, context: CommandContext): Promise<ArchitectureConstraints>;
|
|
11
|
+
export declare function requireShadowRolloutBatchSpec(args: CommandArgs, context: CommandContext): Promise<{
|
|
12
|
+
spec: DomainDesignShadowRolloutBatchSpec;
|
|
13
|
+
specPath: string;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function requireShadowRolloutRegistry(args: CommandArgs, context: CommandContext, loadRegistry: typeof loadShadowRolloutRegistry): Promise<{
|
|
16
|
+
registry: DomainDesignShadowRolloutRegistry;
|
|
17
|
+
registryPath: string;
|
|
18
|
+
}>;
|
|
19
|
+
export declare function loadReviewLogIfRequested(args: CommandArgs, context: CommandContext): Promise<ReviewResolutionLog | undefined>;
|
|
20
|
+
export { loadOptionalConfigFile, loadOptionalDataFile };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { readDataFile } from "./core/io.js";
|
|
2
|
+
import { loadArchitectureConstraints, loadDomainModel } from "./core/model.js";
|
|
3
|
+
function resolveOptionalPathArg(args, key, context) {
|
|
4
|
+
return typeof args[key] === "string" ? new URL(args[key], `file://${context.cwd}/`).pathname : undefined;
|
|
5
|
+
}
|
|
6
|
+
async function loadOptionalDataFile(args, key, context) {
|
|
7
|
+
const filePath = resolveOptionalPathArg(args, key, context);
|
|
8
|
+
if (!filePath) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return readDataFile(filePath);
|
|
12
|
+
}
|
|
13
|
+
async function loadOptionalConfigFile(args, key, context) {
|
|
14
|
+
const configPath = resolveOptionalPathArg(args, key, context);
|
|
15
|
+
if (!configPath) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const config = await readDataFile(configPath);
|
|
19
|
+
return { config, configPath };
|
|
20
|
+
}
|
|
21
|
+
export async function requireDomainModel(args, context) {
|
|
22
|
+
const modelPath = resolveOptionalPathArg(args, "model", context);
|
|
23
|
+
if (!modelPath) {
|
|
24
|
+
throw new Error("`--model` is required");
|
|
25
|
+
}
|
|
26
|
+
return loadDomainModel(modelPath);
|
|
27
|
+
}
|
|
28
|
+
export async function requireArchitectureConstraints(args, context) {
|
|
29
|
+
const constraintsPath = resolveOptionalPathArg(args, "constraints", context);
|
|
30
|
+
if (!constraintsPath) {
|
|
31
|
+
throw new Error("`--constraints` is required");
|
|
32
|
+
}
|
|
33
|
+
return loadArchitectureConstraints(constraintsPath);
|
|
34
|
+
}
|
|
35
|
+
export async function requireShadowRolloutBatchSpec(args, context) {
|
|
36
|
+
const specPath = resolveOptionalPathArg(args, "batch-spec", context);
|
|
37
|
+
if (!specPath) {
|
|
38
|
+
throw new Error("`--batch-spec` is required");
|
|
39
|
+
}
|
|
40
|
+
const spec = await readDataFile(specPath);
|
|
41
|
+
if (!Array.isArray(spec.entries) || spec.entries.length === 0) {
|
|
42
|
+
throw new Error("Shadow rollout batch spec must contain at least one entry");
|
|
43
|
+
}
|
|
44
|
+
return { spec, specPath };
|
|
45
|
+
}
|
|
46
|
+
export async function requireShadowRolloutRegistry(args, context, loadRegistry) {
|
|
47
|
+
const registryPath = resolveOptionalPathArg(args, "shadow-rollout-registry", context) ??
|
|
48
|
+
resolveOptionalPathArg(args, "registry", context);
|
|
49
|
+
if (!registryPath) {
|
|
50
|
+
throw new Error("`--shadow-rollout-registry` or `--registry` is required unless `--batch-spec` is provided");
|
|
51
|
+
}
|
|
52
|
+
const registry = await loadRegistry(registryPath);
|
|
53
|
+
return { registry, registryPath };
|
|
54
|
+
}
|
|
55
|
+
export function loadReviewLogIfRequested(args, context) {
|
|
56
|
+
return loadOptionalDataFile(args, "review-log", context);
|
|
57
|
+
}
|
|
58
|
+
export { loadOptionalConfigFile, loadOptionalDataFile };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { loadBoundaryMapIfRequested, loadComplexityExportIfRequested, loadComplexitySourceConfigIfRequested, loadContractBaselineIfRequested, loadContractBaselineSourceConfigIfRequested, loadDeliveryExportIfRequested, loadDeliveryNormalizationProfileIfRequested, loadDeliveryObservationsIfRequested, loadDeliveryRawObservationsIfRequested, loadDeliverySourceConfigIfRequested, loadPatternRuntimeNormalizationProfileIfRequested, loadPatternRuntimeObservationsIfRequested, loadPatternRuntimeRawObservationsIfRequested, loadRuntimeObservationsIfRequested, loadScenarioCatalogIfRequested, loadScenarioObservationSourceConfigIfRequested, loadScenarioObservationsIfRequested, loadTelemetryExportIfRequested, loadTelemetryNormalizationProfileIfRequested, loadTelemetryObservationsIfRequested, loadTelemetryRawObservationsIfRequested, loadTelemetrySourceConfigIfRequested, loadTopologyModelIfRequested, } from "./command-input-loaders-architecture.js";
|
|
2
|
+
export { loadReviewLogIfRequested, requireArchitectureConstraints, requireDomainModel, requireShadowRolloutBatchSpec, requireShadowRolloutRegistry, } from "./command-input-loaders-core.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { loadBoundaryMapIfRequested, loadComplexityExportIfRequested, loadComplexitySourceConfigIfRequested, loadContractBaselineIfRequested, loadContractBaselineSourceConfigIfRequested, loadDeliveryExportIfRequested, loadDeliveryNormalizationProfileIfRequested, loadDeliveryObservationsIfRequested, loadDeliveryRawObservationsIfRequested, loadDeliverySourceConfigIfRequested, loadPatternRuntimeNormalizationProfileIfRequested, loadPatternRuntimeObservationsIfRequested, loadPatternRuntimeRawObservationsIfRequested, loadRuntimeObservationsIfRequested, loadScenarioCatalogIfRequested, loadScenarioObservationSourceConfigIfRequested, loadScenarioObservationsIfRequested, loadTelemetryExportIfRequested, loadTelemetryNormalizationProfileIfRequested, loadTelemetryObservationsIfRequested, loadTelemetryRawObservationsIfRequested, loadTelemetrySourceConfigIfRequested, loadTopologyModelIfRequested, } from "./command-input-loaders-architecture.js";
|
|
2
|
+
export { loadReviewLogIfRequested, requireArchitectureConstraints, requireDomainModel, requireShadowRolloutBatchSpec, requireShadowRolloutRegistry, } from "./command-input-loaders-core.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CommandContext } from "./core/contracts.js";
|
|
2
|
+
export type CommandArgs = Record<string, string | boolean>;
|
|
3
|
+
export declare function resolveSpecRelativePath(baseDirectory: string, input: string): string;
|
|
4
|
+
export declare function getRootPath(args: CommandArgs, context: CommandContext): string;
|
|
5
|
+
export declare function getDocsRoot(args: CommandArgs, context: CommandContext): string;
|
|
6
|
+
export declare function getProfile(args: CommandArgs): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
export function resolveSpecRelativePath(baseDirectory, input) {
|
|
3
|
+
return path.isAbsolute(input) ? input : path.resolve(baseDirectory, input);
|
|
4
|
+
}
|
|
5
|
+
export function getRootPath(args, context) {
|
|
6
|
+
return typeof args.repo === "string" ? new URL(args.repo, `file://${context.cwd}/`).pathname : context.cwd;
|
|
7
|
+
}
|
|
8
|
+
export function getDocsRoot(args, context) {
|
|
9
|
+
return typeof args["docs-root"] === "string"
|
|
10
|
+
? new URL(args["docs-root"], `file://${context.cwd}/`).pathname
|
|
11
|
+
: context.cwd;
|
|
12
|
+
}
|
|
13
|
+
export function getProfile(args) {
|
|
14
|
+
return typeof args.profile === "string" ? args.profile : "default";
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CommandArgs } from "./command-helpers.js";
|
|
2
|
+
import type { ArchitectureScenarioQualitySummary, CommandContext, CommandResponse, DomainDesignScoreResult, LocalityWatchlistItem, MarkdownReportResult, MeasurementGateResult, MetricScore } from "./core/contracts.js";
|
|
3
|
+
import { listReviewItems } from "./core/review.js";
|
|
4
|
+
interface ArchitectureScoreResult {
|
|
5
|
+
domainId: "architecture_design";
|
|
6
|
+
metrics: MetricScore[];
|
|
7
|
+
leakFindings?: unknown[];
|
|
8
|
+
violations?: unknown[];
|
|
9
|
+
scenarioQuality?: ArchitectureScenarioQualitySummary;
|
|
10
|
+
localityWatchlist?: LocalityWatchlistItem[];
|
|
11
|
+
}
|
|
12
|
+
type ScorePayload = DomainDesignScoreResult | ArchitectureScoreResult;
|
|
13
|
+
type ScoreCommand = (args: CommandArgs, context: CommandContext) => Promise<CommandResponse<unknown>>;
|
|
14
|
+
export declare function handleReviewListUnknowns(args: CommandArgs, context: CommandContext, scoreCompute: ScoreCommand, commandRegistry: Record<string, ScoreCommand>): Promise<CommandResponse<{
|
|
15
|
+
reviewItems: ReturnType<typeof listReviewItems>;
|
|
16
|
+
}>>;
|
|
17
|
+
export declare function handleReportGenerate(args: CommandArgs, context: CommandContext, scoreCompute: ScoreCommand): Promise<CommandResponse<ScorePayload | MarkdownReportResult>>;
|
|
18
|
+
export declare function handleGateEvaluate(args: CommandArgs, context: CommandContext, scoreCompute: ScoreCommand): Promise<CommandResponse<MeasurementGateResult>>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { getProfile } from "./command-helpers.js";
|
|
2
|
+
import { readDataFile } from "./core/io.js";
|
|
3
|
+
import { mergeRuntimeSummary } from "./core/measurement-metadata.js";
|
|
4
|
+
import { loadPolicyConfig } from "./core/policy.js";
|
|
5
|
+
import { evaluateGate, renderMarkdownReport } from "./core/report.js";
|
|
6
|
+
import { createResponse } from "./core/response.js";
|
|
7
|
+
import { listReviewItems } from "./core/review.js";
|
|
8
|
+
import { DOMAIN_PACKS } from "./packs/index.js";
|
|
9
|
+
export async function handleReviewListUnknowns(args, context, scoreCompute, commandRegistry) {
|
|
10
|
+
const startedAt = Date.now();
|
|
11
|
+
const inputPath = typeof args.input === "string" ? new URL(args.input, `file://${context.cwd}/`).pathname : undefined;
|
|
12
|
+
const sourceCommand = typeof args["source-command"] === "string" ? commandRegistry[args["source-command"]] : undefined;
|
|
13
|
+
const response = inputPath
|
|
14
|
+
? await readDataFile(inputPath)
|
|
15
|
+
: sourceCommand
|
|
16
|
+
? await sourceCommand(args, context)
|
|
17
|
+
: await scoreCompute(args, context);
|
|
18
|
+
const reviewItems = listReviewItems(response);
|
|
19
|
+
return createResponse({ reviewItems }, {
|
|
20
|
+
status: reviewItems.length > 0 ? "warning" : "ok",
|
|
21
|
+
confidence: response.confidence,
|
|
22
|
+
unknowns: response.unknowns,
|
|
23
|
+
evidence: response.evidence,
|
|
24
|
+
diagnostics: response.diagnostics,
|
|
25
|
+
progress: response.progress,
|
|
26
|
+
provenance: response.provenance,
|
|
27
|
+
meta: {
|
|
28
|
+
...(response.meta ?? {}),
|
|
29
|
+
runtime: mergeRuntimeSummary(response.meta?.runtime, {
|
|
30
|
+
totalMs: (response.meta?.runtime?.totalMs ?? 0) + (Date.now() - startedAt),
|
|
31
|
+
stages: { reviewMs: Date.now() - startedAt },
|
|
32
|
+
}),
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export async function handleReportGenerate(args, context, scoreCompute) {
|
|
37
|
+
const startedAt = Date.now();
|
|
38
|
+
const response = (await scoreCompute(args, context));
|
|
39
|
+
const format = typeof args.format === "string" ? args.format : "json";
|
|
40
|
+
if (format === "md") {
|
|
41
|
+
const renderStartedAt = Date.now();
|
|
42
|
+
const renderedReport = renderMarkdownReport(response, getProfile(args));
|
|
43
|
+
const renderMs = Date.now() - renderStartedAt;
|
|
44
|
+
return createResponse({
|
|
45
|
+
format,
|
|
46
|
+
report: renderedReport,
|
|
47
|
+
}, {
|
|
48
|
+
status: response.status,
|
|
49
|
+
evidence: response.evidence,
|
|
50
|
+
confidence: response.confidence,
|
|
51
|
+
unknowns: response.unknowns,
|
|
52
|
+
diagnostics: response.diagnostics,
|
|
53
|
+
progress: response.progress,
|
|
54
|
+
provenance: response.provenance,
|
|
55
|
+
meta: {
|
|
56
|
+
...(response.meta ?? {}),
|
|
57
|
+
runtime: mergeRuntimeSummary(response.meta?.runtime, {
|
|
58
|
+
totalMs: (response.meta?.runtime?.totalMs ?? 0) + (Date.now() - startedAt),
|
|
59
|
+
stages: { renderMs },
|
|
60
|
+
}),
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return response;
|
|
65
|
+
}
|
|
66
|
+
export async function handleGateEvaluate(args, context, scoreCompute) {
|
|
67
|
+
const startedAt = Date.now();
|
|
68
|
+
const response = (await scoreCompute(args, context));
|
|
69
|
+
const policyConfig = await loadPolicyConfig(typeof args.policy === "string" ? args.policy : undefined);
|
|
70
|
+
const gate = evaluateGate(response, policyConfig, getProfile(args));
|
|
71
|
+
const pilot = response.result.domainId === "domain_design" && "pilot" in response.result ? response.result.pilot : undefined;
|
|
72
|
+
return createResponse({
|
|
73
|
+
domainId: response.result.domainId,
|
|
74
|
+
gate,
|
|
75
|
+
metrics: response.result.metrics,
|
|
76
|
+
...(pilot ? { pilot } : {}),
|
|
77
|
+
}, {
|
|
78
|
+
status: gate.status,
|
|
79
|
+
evidence: response.evidence,
|
|
80
|
+
confidence: response.confidence,
|
|
81
|
+
unknowns: response.unknowns,
|
|
82
|
+
diagnostics: [
|
|
83
|
+
...response.diagnostics,
|
|
84
|
+
...(pilot ? [`Pilot locality source: ${pilot.localitySource} for category ${pilot.category}.`] : []),
|
|
85
|
+
`Available packs: ${DOMAIN_PACKS.map((pack) => pack.id).join(", ")}`,
|
|
86
|
+
],
|
|
87
|
+
progress: response.progress,
|
|
88
|
+
meta: {
|
|
89
|
+
...(response.meta ?? {}),
|
|
90
|
+
runtime: mergeRuntimeSummary(response.meta?.runtime, {
|
|
91
|
+
totalMs: (response.meta?.runtime?.totalMs ?? 0) + (Date.now() - startedAt),
|
|
92
|
+
stages: { gateMs: Date.now() - startedAt },
|
|
93
|
+
}),
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { buildArchitectureScoreOptions } from "./command-architecture-inputs.js";
|
|
2
|
+
import { buildExtractionOptions, getDocsRoot, getProfile, getRootPath, requireDomainModel, requireShadowRolloutRegistry, } from "./command-helpers.js";
|
|
3
|
+
import { mergeRuntimeSummary } from "./core/measurement-metadata.js";
|
|
4
|
+
import { loadPolicyConfig } from "./core/policy.js";
|
|
5
|
+
import { computeArchitectureScores, computeDomainDesignScores } from "./core/scoring.js";
|
|
6
|
+
import { evaluateShadowRolloutGate, loadShadowRolloutRegistry, registryToGateObservations, } from "./core/shadow-rollout.js";
|
|
7
|
+
export async function handleScoreCompute(args, context) {
|
|
8
|
+
const startedAt = Date.now();
|
|
9
|
+
const policyConfig = await loadPolicyConfig(typeof args.policy === "string" ? args.policy : undefined);
|
|
10
|
+
const domain = typeof args.domain === "string" ? args.domain : "domain_design";
|
|
11
|
+
const pilotPersistence = args["pilot-persistence"] === true;
|
|
12
|
+
const rolloutCategory = typeof args["rollout-category"] === "string" ? args["rollout-category"] : undefined;
|
|
13
|
+
if (rolloutCategory && !pilotPersistence) {
|
|
14
|
+
throw new Error("`--rollout-category` requires `--pilot-persistence`");
|
|
15
|
+
}
|
|
16
|
+
if (domain === "architecture_design") {
|
|
17
|
+
const scoreResponse = await computeArchitectureScores(await buildArchitectureScoreOptions(args, context, policyConfig));
|
|
18
|
+
return {
|
|
19
|
+
...scoreResponse,
|
|
20
|
+
meta: {
|
|
21
|
+
...(scoreResponse.meta ?? {}),
|
|
22
|
+
runtime: mergeRuntimeSummary(scoreResponse.meta?.runtime, {
|
|
23
|
+
totalMs: Date.now() - startedAt,
|
|
24
|
+
stages: {
|
|
25
|
+
inputLoadMs: Date.now() - startedAt - (scoreResponse.meta?.runtime?.totalMs ?? 0),
|
|
26
|
+
},
|
|
27
|
+
}),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const model = await requireDomainModel(args, context);
|
|
32
|
+
const docsRoot = typeof args["docs-root"] === "string" ? getDocsRoot(args, context) : undefined;
|
|
33
|
+
const extractionOptions = docsRoot ? await buildExtractionOptions(args, context) : undefined;
|
|
34
|
+
let pilotGateEvaluation;
|
|
35
|
+
if (pilotPersistence) {
|
|
36
|
+
if (!rolloutCategory) {
|
|
37
|
+
throw new Error("`--rollout-category` is required when `--pilot-persistence` is enabled");
|
|
38
|
+
}
|
|
39
|
+
const { registry, registryPath } = await requireShadowRolloutRegistry(args, context, loadShadowRolloutRegistry);
|
|
40
|
+
pilotGateEvaluation = evaluateShadowRolloutGate(registryToGateObservations(registry, registryPath));
|
|
41
|
+
}
|
|
42
|
+
const scoreResponse = await computeDomainDesignScores({
|
|
43
|
+
repoPath: getRootPath(args, context),
|
|
44
|
+
model,
|
|
45
|
+
policyConfig,
|
|
46
|
+
profileName: getProfile(args),
|
|
47
|
+
...(context.reportProgress ? { progressReporter: context.reportProgress } : {}),
|
|
48
|
+
shadowPersistence: args["shadow-persistence"] === true || pilotPersistence,
|
|
49
|
+
...(pilotPersistence && rolloutCategory ? { pilotPersistenceCategory: rolloutCategory } : {}),
|
|
50
|
+
...(pilotGateEvaluation ? { pilotGateEvaluation } : {}),
|
|
51
|
+
...(docsRoot ? { docsRoot } : {}),
|
|
52
|
+
...(extractionOptions
|
|
53
|
+
? {
|
|
54
|
+
extraction: {
|
|
55
|
+
extractor: extractionOptions.extractor,
|
|
56
|
+
...(extractionOptions.provider ? { provider: extractionOptions.provider } : {}),
|
|
57
|
+
...(extractionOptions.providerCommand ? { providerCommand: extractionOptions.providerCommand } : {}),
|
|
58
|
+
promptProfile: extractionOptions.promptProfile,
|
|
59
|
+
fallback: extractionOptions.fallback,
|
|
60
|
+
...(extractionOptions.reviewLog ? { reviewLog: extractionOptions.reviewLog } : {}),
|
|
61
|
+
applyReviewLog: extractionOptions.applyReviewLog,
|
|
62
|
+
},
|
|
63
|
+
}
|
|
64
|
+
: {}),
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
...scoreResponse,
|
|
68
|
+
meta: {
|
|
69
|
+
...(scoreResponse.meta ?? {}),
|
|
70
|
+
runtime: mergeRuntimeSummary(scoreResponse.meta?.runtime, {
|
|
71
|
+
totalMs: Date.now() - startedAt,
|
|
72
|
+
stages: {
|
|
73
|
+
inputLoadMs: Date.now() - startedAt - (scoreResponse.meta?.runtime?.totalMs ?? 0),
|
|
74
|
+
},
|
|
75
|
+
}),
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|