universal-physics-tensor 0.45.2 → 0.46.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 +28 -27
- package/dist/atlas/applicability.d.ts +108 -0
- package/dist/atlas/applicability.d.ts.map +1 -0
- package/dist/atlas/applicability.js +301 -0
- package/dist/atlas/applicability.js.map +1 -0
- package/dist/atlas/association.d.ts +92 -0
- package/dist/atlas/association.d.ts.map +1 -0
- package/dist/atlas/association.js +112 -0
- package/dist/atlas/association.js.map +1 -0
- package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
- package/dist/atlas/benchmark/backend-shapes.js +58 -0
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
- package/dist/atlas/benchmark/baselines.d.ts +64 -0
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
- package/dist/atlas/benchmark/baselines.js +112 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -0
- package/dist/atlas/benchmark/leakage.d.ts +56 -0
- package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
- package/dist/atlas/benchmark/leakage.js +100 -0
- package/dist/atlas/benchmark/leakage.js.map +1 -0
- package/dist/atlas/benchmark/loader.d.ts +56 -0
- package/dist/atlas/benchmark/loader.d.ts.map +1 -0
- package/dist/atlas/benchmark/loader.js +104 -0
- package/dist/atlas/benchmark/loader.js.map +1 -0
- package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
- package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
- package/dist/atlas/benchmark/run-atlas.js +210 -0
- package/dist/atlas/benchmark/run-atlas.js.map +1 -0
- package/dist/atlas/benchmark/stats.d.ts +90 -0
- package/dist/atlas/benchmark/stats.d.ts.map +1 -0
- package/dist/atlas/benchmark/stats.js +159 -0
- package/dist/atlas/benchmark/stats.js.map +1 -0
- package/dist/atlas/benchmark/study.d.ts +120 -0
- package/dist/atlas/benchmark/study.d.ts.map +1 -0
- package/dist/atlas/benchmark/study.js +192 -0
- package/dist/atlas/benchmark/study.js.map +1 -0
- package/dist/atlas/benchmark/types.d.ts +79 -0
- package/dist/atlas/benchmark/types.d.ts.map +1 -0
- package/dist/atlas/benchmark/types.js +46 -0
- package/dist/atlas/benchmark/types.js.map +1 -0
- package/dist/atlas/composition-table.d.ts +55 -0
- package/dist/atlas/composition-table.d.ts.map +1 -0
- package/dist/atlas/composition-table.js +133 -0
- package/dist/atlas/composition-table.js.map +1 -0
- package/dist/atlas/conventions.d.ts +63 -0
- package/dist/atlas/conventions.d.ts.map +1 -0
- package/dist/atlas/conventions.js +93 -0
- package/dist/atlas/conventions.js.map +1 -0
- package/dist/atlas/coverage.d.ts +93 -0
- package/dist/atlas/coverage.d.ts.map +1 -0
- package/dist/atlas/coverage.js +69 -0
- package/dist/atlas/coverage.js.map +1 -0
- package/dist/atlas/derivation.d.ts +137 -0
- package/dist/atlas/derivation.d.ts.map +1 -0
- package/dist/atlas/derivation.js +190 -0
- package/dist/atlas/derivation.js.map +1 -0
- package/dist/atlas/derive-evidence.d.ts +218 -0
- package/dist/atlas/derive-evidence.d.ts.map +1 -0
- package/dist/atlas/derive-evidence.js +225 -0
- package/dist/atlas/derive-evidence.js.map +1 -0
- package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
- package/dist/atlas/diffusion/bridges-closure.js +324 -0
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
- package/dist/atlas/diffusion/bridges.d.ts +36 -0
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
- package/dist/atlas/diffusion/bridges.js +226 -0
- package/dist/atlas/diffusion/bridges.js.map +1 -0
- package/dist/atlas/diffusion/dimensions.d.ts +21 -0
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
- package/dist/atlas/diffusion/dimensions.js +21 -0
- package/dist/atlas/diffusion/dimensions.js.map +1 -0
- package/dist/atlas/diffusion/index.d.ts +16 -0
- package/dist/atlas/diffusion/index.d.ts.map +1 -0
- package/dist/atlas/diffusion/index.js +23 -0
- package/dist/atlas/diffusion/index.js.map +1 -0
- package/dist/atlas/diffusion/models.d.ts +24 -0
- package/dist/atlas/diffusion/models.d.ts.map +1 -0
- package/dist/atlas/diffusion/models.js +139 -0
- package/dist/atlas/diffusion/models.js.map +1 -0
- package/dist/atlas/diffusion/numerics.d.ts +181 -0
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
- package/dist/atlas/diffusion/numerics.js +251 -0
- package/dist/atlas/diffusion/numerics.js.map +1 -0
- package/dist/atlas/error-algebra.d.ts +52 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -0
- package/dist/atlas/error-algebra.js +55 -0
- package/dist/atlas/error-algebra.js.map +1 -0
- package/dist/atlas/export.d.ts +48 -0
- package/dist/atlas/export.d.ts.map +1 -0
- package/dist/atlas/export.js +106 -0
- package/dist/atlas/export.js.map +1 -0
- package/dist/atlas/families.d.ts +14 -0
- package/dist/atlas/families.d.ts.map +1 -0
- package/dist/atlas/families.js +20 -0
- package/dist/atlas/families.js.map +1 -0
- package/dist/atlas/index.d.ts +90 -0
- package/dist/atlas/index.d.ts.map +1 -0
- package/dist/atlas/index.js +69 -0
- package/dist/atlas/index.js.map +1 -0
- package/dist/atlas/link-prediction.d.ts +71 -0
- package/dist/atlas/link-prediction.d.ts.map +1 -0
- package/dist/atlas/link-prediction.js +128 -0
- package/dist/atlas/link-prediction.js.map +1 -0
- package/dist/atlas/model.d.ts +70 -0
- package/dist/atlas/model.d.ts.map +1 -0
- package/dist/atlas/model.js +26 -0
- package/dist/atlas/model.js.map +1 -0
- package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-coarse.js +146 -0
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
- package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-exact.js +227 -0
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-limits.js +342 -0
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
- package/dist/atlas/oscillators/dimensions.d.ts +34 -0
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
- package/dist/atlas/oscillators/dimensions.js +34 -0
- package/dist/atlas/oscillators/dimensions.js.map +1 -0
- package/dist/atlas/oscillators/index.d.ts +38 -0
- package/dist/atlas/oscillators/index.d.ts.map +1 -0
- package/dist/atlas/oscillators/index.js +37 -0
- package/dist/atlas/oscillators/index.js.map +1 -0
- package/dist/atlas/oscillators/models.d.ts +25 -0
- package/dist/atlas/oscillators/models.d.ts.map +1 -0
- package/dist/atlas/oscillators/models.js +160 -0
- package/dist/atlas/oscillators/models.js.map +1 -0
- package/dist/atlas/oscillators/rejections.d.ts +21 -0
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
- package/dist/atlas/oscillators/rejections.js +54 -0
- package/dist/atlas/oscillators/rejections.js.map +1 -0
- package/dist/atlas/path-bound.d.ts +143 -0
- package/dist/atlas/path-bound.d.ts.map +1 -0
- package/dist/atlas/path-bound.js +268 -0
- package/dist/atlas/path-bound.js.map +1 -0
- package/dist/atlas/poster/associations.d.ts +66 -0
- package/dist/atlas/poster/associations.d.ts.map +1 -0
- package/dist/atlas/poster/associations.js +90 -0
- package/dist/atlas/poster/associations.js.map +1 -0
- package/dist/atlas/poster/derivations.d.ts +156 -0
- package/dist/atlas/poster/derivations.d.ts.map +1 -0
- package/dist/atlas/poster/derivations.js +430 -0
- package/dist/atlas/poster/derivations.js.map +1 -0
- package/dist/atlas/poster/statements.d.ts +198 -0
- package/dist/atlas/poster/statements.d.ts.map +1 -0
- package/dist/atlas/poster/statements.js +365 -0
- package/dist/atlas/poster/statements.js.map +1 -0
- package/dist/atlas/public.d.ts +26 -0
- package/dist/atlas/public.d.ts.map +1 -0
- package/dist/atlas/public.js +21 -0
- package/dist/atlas/public.js.map +1 -0
- package/dist/atlas/regime.d.ts +171 -0
- package/dist/atlas/regime.d.ts.map +1 -0
- package/dist/atlas/regime.js +309 -0
- package/dist/atlas/regime.js.map +1 -0
- package/dist/atlas/serialize.d.ts +50 -0
- package/dist/atlas/serialize.d.ts.map +1 -0
- package/dist/atlas/serialize.js +180 -0
- package/dist/atlas/serialize.js.map +1 -0
- package/dist/atlas/statement.d.ts +165 -0
- package/dist/atlas/statement.d.ts.map +1 -0
- package/dist/atlas/statement.js +176 -0
- package/dist/atlas/statement.js.map +1 -0
- package/dist/atlas/types.d.ts +308 -0
- package/dist/atlas/types.d.ts.map +1 -0
- package/dist/atlas/types.js +61 -0
- package/dist/atlas/types.js.map +1 -0
- package/dist/atlas/waves/bridges-closure.d.ts +39 -0
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
- package/dist/atlas/waves/bridges-closure.js +223 -0
- package/dist/atlas/waves/bridges-closure.js.map +1 -0
- package/dist/atlas/waves/bridges.d.ts +49 -0
- package/dist/atlas/waves/bridges.d.ts.map +1 -0
- package/dist/atlas/waves/bridges.js +265 -0
- package/dist/atlas/waves/bridges.js.map +1 -0
- package/dist/atlas/waves/index.d.ts +16 -0
- package/dist/atlas/waves/index.d.ts.map +1 -0
- package/dist/atlas/waves/index.js +23 -0
- package/dist/atlas/waves/index.js.map +1 -0
- package/dist/atlas/waves/models.d.ts +29 -0
- package/dist/atlas/waves/models.d.ts.map +1 -0
- package/dist/atlas/waves/models.js +127 -0
- package/dist/atlas/waves/models.js.map +1 -0
- package/dist/atlas/waves/numerics.d.ts +149 -0
- package/dist/atlas/waves/numerics.d.ts.map +1 -0
- package/dist/atlas/waves/numerics.js +218 -0
- package/dist/atlas/waves/numerics.js.map +1 -0
- package/dist/atlas/witness-artifact.d.ts +65 -0
- package/dist/atlas/witness-artifact.d.ts.map +1 -0
- package/dist/atlas/witness-artifact.js +78 -0
- package/dist/atlas/witness-artifact.js.map +1 -0
- package/dist/atlas/witness-numeric.d.ts +81 -0
- package/dist/atlas/witness-numeric.d.ts.map +1 -0
- package/dist/atlas/witness-numeric.js +105 -0
- package/dist/atlas/witness-numeric.js.map +1 -0
- package/dist/atlas/witness-result.d.ts +77 -0
- package/dist/atlas/witness-result.d.ts.map +1 -0
- package/dist/atlas/witness-result.js +39 -0
- package/dist/atlas/witness-result.js.map +1 -0
- package/dist/atlas/witness-specs.d.ts +110 -0
- package/dist/atlas/witness-specs.d.ts.map +1 -0
- package/dist/atlas/witness-specs.js +372 -0
- package/dist/atlas/witness-specs.js.map +1 -0
- package/dist/atlas/witness-symbolic.d.ts +79 -0
- package/dist/atlas/witness-symbolic.d.ts.map +1 -0
- package/dist/atlas/witness-symbolic.js +140 -0
- package/dist/atlas/witness-symbolic.js.map +1 -0
- package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
- package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
- package/dist/atlas/witnesses/quantum-support.js +48 -0
- package/dist/atlas/witnesses/quantum-support.js.map +1 -0
- package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
- package/dist/bridges/be21-kss-confrontation.js.map +1 -1
- package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
- package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
- package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
- package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
- package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
- package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
- package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
- package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
- package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
- package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
- package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
- package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
- package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
- package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
- package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
- package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
- package/dist/bridges/bridge-equations.d.ts +2 -1
- package/dist/bridges/bridge-equations.d.ts.map +1 -1
- package/dist/bridges/bridge-equations.js +3 -2
- package/dist/bridges/bridge-equations.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/equations/_be-helpers.d.ts +2 -2
- package/dist/bridges/equations/_be-helpers.js +2 -2
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +88 -58
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +102 -62
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.js +9 -8
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
- package/dist/bridges/gravitational-lensing.d.ts +10 -0
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
- package/dist/bridges/gravitational-lensing.js.map +1 -1
- package/dist/bridges/index.d.ts +125 -7
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +483 -20
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/perihelion-precession.d.ts +10 -0
- package/dist/bridges/perihelion-precession.d.ts.map +1 -1
- package/dist/bridges/perihelion-precession.js.map +1 -1
- package/dist/bridges/rhs-registry.js +2 -2
- package/dist/canonical/canonical-equation.d.ts +15 -0
- package/dist/canonical/canonical-equation.d.ts.map +1 -1
- package/dist/canonical/entries/_l1-build.d.ts +1 -1
- package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +23 -0
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +93 -0
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/residual.d.ts +28 -0
- package/dist/canonical/residual.d.ts.map +1 -0
- package/dist/canonical/residual.js +31 -0
- package/dist/canonical/residual.js.map +1 -0
- package/dist/cli/command.d.ts +8 -0
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js +10 -0
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts +3 -0
- package/dist/cli/commands/atlas.d.ts.map +1 -0
- package/dist/cli/commands/atlas.js +158 -0
- package/dist/cli/commands/atlas.js.map +1 -0
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/coverage.js +3 -3
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +3 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +161 -27
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/path.d.ts +3 -0
- package/dist/cli/commands/path.d.ts.map +1 -0
- package/dist/cli/commands/path.js +145 -0
- package/dist/cli/commands/path.js.map +1 -0
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +25 -6
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +14 -0
- package/dist/cli/commands/regime.d.ts.map +1 -0
- package/dist/cli/commands/regime.js +189 -0
- package/dist/cli/commands/regime.js.map +1 -0
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +5 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +22 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output.d.ts +6 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +16 -0
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +18 -0
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +0 -0
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +2 -2
- package/dist/composition/canonical-graph.js +2 -2
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +80 -1
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +64 -0
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +29 -0
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +46 -0
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
- package/dist/composition/edges/catalog-quantum.js +9 -0
- package/dist/composition/edges/catalog-quantum.js.map +1 -1
- package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
- package/dist/composition/edges/catalog-tranche.js +18 -0
- package/dist/composition/edges/catalog-tranche.js.map +1 -1
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +13 -0
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +25 -0
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz.d.ts +118 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +189 -6
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +4 -2
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +2 -1
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/poster-source.d.ts +153 -0
- package/dist/composition/poster-source.d.ts.map +1 -0
- package/dist/composition/poster-source.js +183 -0
- package/dist/composition/poster-source.js.map +1 -0
- package/dist/composition/probe/backend-protocol.d.ts +34 -1
- package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
- package/dist/composition/probe/backend-protocol.js +9 -2
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.d.ts.map +1 -1
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +2 -2
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +1 -1
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.d.ts +52 -2
- package/dist/composition/uncertainty.d.ts.map +1 -1
- package/dist/composition/uncertainty.js +38 -2
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/core/flux-rules.d.ts.map +1 -1
- package/dist/core/flux-rules.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/dimensional/ast-types.d.ts +31 -1
- package/dist/dimensional/ast-types.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.d.ts +1 -1
- package/dist/dimensional/bridge-check.js +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/connection.d.ts +2 -0
- package/dist/dimensional/connection.d.ts.map +1 -1
- package/dist/dimensional/connection.js +2 -0
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +5 -3
- package/dist/dimensional/curvature-composite.d.ts.map +1 -1
- package/dist/dimensional/curvature-composite.js +1 -0
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.d.ts +2 -0
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.js +2 -0
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +3 -3
- package/dist/dimensional/einstein-equation.js +3 -3
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/metric.d.ts +5 -2
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +5 -2
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +3 -2
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +23 -4
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +104 -0
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +51 -24
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula.d.ts.map +1 -1
- package/dist/numerical/formula.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +3 -3
- package/dist/numerical/gl4-integrator.js +3 -3
- package/dist/numerical/killing.d.ts +47 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js +41 -3
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.d.ts +2 -2
- package/dist/numerical/klein-gordon.js +2 -2
- package/dist/numerical/lowering.d.ts +2 -2
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +5 -3
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +15 -13
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +15 -13
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.js +90 -40
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/package.json +121 -104
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The composition table for `RelationType` — a literal 8×8 matrix.
|
|
3
|
+
*
|
|
4
|
+
* `composeRelation(first, second)` answers: if one bridge asserts `first` and a
|
|
5
|
+
* second bridge asserts `second`, what relation does the chain assert? The
|
|
6
|
+
* argument order is the `First ∘ Second` column order of design note
|
|
7
|
+
* `docs/planning/Atlas-Phase-1-Design.md` §2.1.
|
|
8
|
+
*
|
|
9
|
+
* **The table is a deliberate UNDER-approximation of Blueprint v2 §4.2.** Every
|
|
10
|
+
* cell not named in §2.1 is `'no-composite-claim'`, because a wrong composite
|
|
11
|
+
* type is a false physical claim while silence is only silence. Eight of the
|
|
12
|
+
* sixty-four cells are defined; the remaining fifty-six are silent, and the
|
|
13
|
+
* reasons for the notable silences are §2.2.
|
|
14
|
+
*
|
|
15
|
+
* Two cells the implementation plan asserts are NOT defined here, on the
|
|
16
|
+
* authority of the design note (§0 and §2.2 item 5):
|
|
17
|
+
*
|
|
18
|
+
* - `exact-equivalence ∘ approximation`, either order. An exact equivalence
|
|
19
|
+
* contributes `IDENTITY_BOUND` only *in the norm a given bridge states* (see
|
|
20
|
+
* `./error-algebra.ts`), and no field in Sprint 1 records a norm, so
|
|
21
|
+
* norm-compatibility cannot be checked. A `norm?` field unblocks it in
|
|
22
|
+
* Phase 2.
|
|
23
|
+
* - `structural-analogy ∘ structural-analogy`. Analogy is not transitive: the
|
|
24
|
+
* shared structure can dilute to nothing across a chain.
|
|
25
|
+
*
|
|
26
|
+
* Widening this table is a reviewed act — `tests/atlas/composition-table.test.ts`
|
|
27
|
+
* pins the count of silent cells.
|
|
28
|
+
*
|
|
29
|
+
* Pure: no I/O, no registry reads, and no import from `src/composition/`.
|
|
30
|
+
*
|
|
31
|
+
* @module atlas/composition-table
|
|
32
|
+
*/
|
|
33
|
+
import type { RelationType } from './types.js';
|
|
34
|
+
/** What `composeRelation` returns when the chain asserts nothing. @public */
|
|
35
|
+
export type NoCompositeClaim = 'no-composite-claim';
|
|
36
|
+
/** The result of composing two relations. @public */
|
|
37
|
+
export type CompositionResult = RelationType | NoCompositeClaim;
|
|
38
|
+
/** @public */
|
|
39
|
+
export declare const NO_COMPOSITE_CLAIM: NoCompositeClaim;
|
|
40
|
+
/**
|
|
41
|
+
* Every row of every column, written out. `Record<RelationType, …>` makes the
|
|
42
|
+
* exhaustiveness structural: a ninth `RelationType` member fails to compile
|
|
43
|
+
* here rather than silently acquiring a row of `'no-composite-claim'`.
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
export declare const COMPOSITION_TABLE: Readonly<Record<RelationType, Readonly<Record<RelationType, CompositionResult>>>>;
|
|
48
|
+
/**
|
|
49
|
+
* The relation a chain of two bridges asserts, or `'no-composite-claim'` when
|
|
50
|
+
* this sprint declines to assert one. A table lookup — no rules, no inference.
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
export declare function composeRelation(first: RelationType, second: RelationType): CompositionResult;
|
|
55
|
+
//# sourceMappingURL=composition-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-table.d.ts","sourceRoot":"","sources":["../../src/atlas/composition-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEhE,cAAc;AACd,eAAO,MAAM,kBAAkB,EAAE,gBAAuC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAkFxE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,GACnB,iBAAiB,CAEnB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The composition table for `RelationType` — a literal 8×8 matrix.
|
|
3
|
+
*
|
|
4
|
+
* `composeRelation(first, second)` answers: if one bridge asserts `first` and a
|
|
5
|
+
* second bridge asserts `second`, what relation does the chain assert? The
|
|
6
|
+
* argument order is the `First ∘ Second` column order of design note
|
|
7
|
+
* `docs/planning/Atlas-Phase-1-Design.md` §2.1.
|
|
8
|
+
*
|
|
9
|
+
* **The table is a deliberate UNDER-approximation of Blueprint v2 §4.2.** Every
|
|
10
|
+
* cell not named in §2.1 is `'no-composite-claim'`, because a wrong composite
|
|
11
|
+
* type is a false physical claim while silence is only silence. Eight of the
|
|
12
|
+
* sixty-four cells are defined; the remaining fifty-six are silent, and the
|
|
13
|
+
* reasons for the notable silences are §2.2.
|
|
14
|
+
*
|
|
15
|
+
* Two cells the implementation plan asserts are NOT defined here, on the
|
|
16
|
+
* authority of the design note (§0 and §2.2 item 5):
|
|
17
|
+
*
|
|
18
|
+
* - `exact-equivalence ∘ approximation`, either order. An exact equivalence
|
|
19
|
+
* contributes `IDENTITY_BOUND` only *in the norm a given bridge states* (see
|
|
20
|
+
* `./error-algebra.ts`), and no field in Sprint 1 records a norm, so
|
|
21
|
+
* norm-compatibility cannot be checked. A `norm?` field unblocks it in
|
|
22
|
+
* Phase 2.
|
|
23
|
+
* - `structural-analogy ∘ structural-analogy`. Analogy is not transitive: the
|
|
24
|
+
* shared structure can dilute to nothing across a chain.
|
|
25
|
+
*
|
|
26
|
+
* Widening this table is a reviewed act — `tests/atlas/composition-table.test.ts`
|
|
27
|
+
* pins the count of silent cells.
|
|
28
|
+
*
|
|
29
|
+
* Pure: no I/O, no registry reads, and no import from `src/composition/`.
|
|
30
|
+
*
|
|
31
|
+
* @module atlas/composition-table
|
|
32
|
+
*/
|
|
33
|
+
/** @public */
|
|
34
|
+
export const NO_COMPOSITE_CLAIM = 'no-composite-claim';
|
|
35
|
+
/**
|
|
36
|
+
* Every row of every column, written out. `Record<RelationType, …>` makes the
|
|
37
|
+
* exhaustiveness structural: a ninth `RelationType` member fails to compile
|
|
38
|
+
* here rather than silently acquiring a row of `'no-composite-claim'`.
|
|
39
|
+
*
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export const COMPOSITION_TABLE = {
|
|
43
|
+
derivation: {
|
|
44
|
+
derivation: 'derivation',
|
|
45
|
+
'exact-equivalence': 'derivation',
|
|
46
|
+
restriction: NO_COMPOSITE_CLAIM,
|
|
47
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
48
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
49
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
50
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
51
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
52
|
+
},
|
|
53
|
+
'exact-equivalence': {
|
|
54
|
+
derivation: 'derivation',
|
|
55
|
+
'exact-equivalence': 'exact-equivalence',
|
|
56
|
+
restriction: 'restriction',
|
|
57
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
58
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
59
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
60
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
61
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
62
|
+
},
|
|
63
|
+
restriction: {
|
|
64
|
+
derivation: NO_COMPOSITE_CLAIM,
|
|
65
|
+
'exact-equivalence': 'restriction',
|
|
66
|
+
restriction: 'restriction',
|
|
67
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
68
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
69
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
70
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
71
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
72
|
+
},
|
|
73
|
+
approximation: {
|
|
74
|
+
derivation: NO_COMPOSITE_CLAIM,
|
|
75
|
+
'exact-equivalence': NO_COMPOSITE_CLAIM,
|
|
76
|
+
restriction: NO_COMPOSITE_CLAIM,
|
|
77
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
78
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
79
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
80
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
81
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
82
|
+
},
|
|
83
|
+
'coarse-graining': {
|
|
84
|
+
derivation: NO_COMPOSITE_CLAIM,
|
|
85
|
+
'exact-equivalence': NO_COMPOSITE_CLAIM,
|
|
86
|
+
restriction: NO_COMPOSITE_CLAIM,
|
|
87
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
88
|
+
'coarse-graining': 'coarse-graining',
|
|
89
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
90
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
91
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
92
|
+
},
|
|
93
|
+
'analytic-continuation': {
|
|
94
|
+
derivation: NO_COMPOSITE_CLAIM,
|
|
95
|
+
'exact-equivalence': NO_COMPOSITE_CLAIM,
|
|
96
|
+
restriction: NO_COMPOSITE_CLAIM,
|
|
97
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
98
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
99
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
100
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
101
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
102
|
+
},
|
|
103
|
+
'structural-analogy': {
|
|
104
|
+
derivation: NO_COMPOSITE_CLAIM,
|
|
105
|
+
'exact-equivalence': NO_COMPOSITE_CLAIM,
|
|
106
|
+
restriction: NO_COMPOSITE_CLAIM,
|
|
107
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
108
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
109
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
110
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
111
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
112
|
+
},
|
|
113
|
+
'deformation-quantization': {
|
|
114
|
+
derivation: NO_COMPOSITE_CLAIM,
|
|
115
|
+
'exact-equivalence': NO_COMPOSITE_CLAIM,
|
|
116
|
+
restriction: NO_COMPOSITE_CLAIM,
|
|
117
|
+
approximation: NO_COMPOSITE_CLAIM,
|
|
118
|
+
'coarse-graining': NO_COMPOSITE_CLAIM,
|
|
119
|
+
'analytic-continuation': NO_COMPOSITE_CLAIM,
|
|
120
|
+
'structural-analogy': NO_COMPOSITE_CLAIM,
|
|
121
|
+
'deformation-quantization': NO_COMPOSITE_CLAIM,
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* The relation a chain of two bridges asserts, or `'no-composite-claim'` when
|
|
126
|
+
* this sprint declines to assert one. A table lookup — no rules, no inference.
|
|
127
|
+
*
|
|
128
|
+
* @public
|
|
129
|
+
*/
|
|
130
|
+
export function composeRelation(first, second) {
|
|
131
|
+
return COMPOSITION_TABLE[first][second];
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=composition-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-table.js","sourceRoot":"","sources":["../../src/atlas/composition-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAUH,cAAc;AACd,MAAM,CAAC,MAAM,kBAAkB,GAAqB,oBAAoB,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,UAAU,EAAE;QACV,UAAU,EAAE,YAAY;QACxB,mBAAmB,EAAE,YAAY;QACjC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,mBAAmB,EAAE;QACnB,UAAU,EAAE,YAAY;QACxB,mBAAmB,EAAE,mBAAmB;QACxC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,WAAW,EAAE;QACX,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,aAAa;QAClC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,aAAa,EAAE;QACb,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,iBAAiB;QACpC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,uBAAuB,EAAE;QACvB,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,oBAAoB,EAAE;QACpB,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,0BAA0B,EAAE;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,MAAoB;IAEpB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 1 — convention comparison.
|
|
3
|
+
*
|
|
4
|
+
* `Conventions` (`src/atlas/types.ts`) records the sign and unit choices a
|
|
5
|
+
* record depends on. Two records that disagree on one of those choices are not
|
|
6
|
+
* directly comparable, and this module says WHICH keys disagree.
|
|
7
|
+
*
|
|
8
|
+
* **`undefined` is "unknown", never "mismatch", and that asymmetry is the
|
|
9
|
+
* whole design.** A record that declares nothing about the metric signature
|
|
10
|
+
* has not chosen `'+---'`; it has not said. Reporting the absence as a
|
|
11
|
+
* disagreement would manufacture conflicts out of missing data — and because
|
|
12
|
+
* almost every record in the repo declares nothing today, it would manufacture
|
|
13
|
+
* them at scale. The same reasoning that makes design note §3 require a
|
|
14
|
+
* NON-EMPTY `conventions` before `convention-checked` can be derived applies
|
|
15
|
+
* in the mirror here: absence earns neither a tag nor an accusation.
|
|
16
|
+
*
|
|
17
|
+
* A mismatch is therefore reported only when BOTH sides declare the key and
|
|
18
|
+
* the declared values differ.
|
|
19
|
+
*
|
|
20
|
+
* @module atlas/conventions
|
|
21
|
+
*/
|
|
22
|
+
import type { Conventions } from './types.js';
|
|
23
|
+
/** The keys `checkConventions` compares. @internal */
|
|
24
|
+
export type ConventionKey = keyof Conventions;
|
|
25
|
+
/**
|
|
26
|
+
* The convention keys on which `a` and `b` DECLARE different values.
|
|
27
|
+
*
|
|
28
|
+
* Returns an empty list when they agree, when either side is absent, and when
|
|
29
|
+
* neither declares a key in common.
|
|
30
|
+
*
|
|
31
|
+
* ⚠ **An empty list is NOT a statement that the two are compatible** — it means
|
|
32
|
+
* no DECLARED pair disagrees. Eve (E1, 2026-09-21) flagged that this conflates
|
|
33
|
+
* the safe case with the dangerous one: record A declaring `metricSignature:
|
|
34
|
+
* '-+++'` while B simply never declared it returns `[]`, exactly like genuine
|
|
35
|
+
* agreement, and a caller printing nothing leads a reader to infer "checked, no
|
|
36
|
+
* conflict". Silence is not agreement. Use {@link unknownConventionKeys} to
|
|
37
|
+
* surface that case, and prefer reporting the two together.
|
|
38
|
+
*
|
|
39
|
+
* @param a - one record's conventions, or `undefined` when it declares none.
|
|
40
|
+
* @param b - the other record's conventions, or `undefined`.
|
|
41
|
+
* @returns the mismatched keys, in `Conventions` declaration order.
|
|
42
|
+
*
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export declare function checkConventions(a: Conventions | undefined, b: Conventions | undefined): readonly ConventionKey[];
|
|
46
|
+
/**
|
|
47
|
+
* The convention keys where exactly ONE side declares a value — the cases
|
|
48
|
+
* {@link checkConventions} deliberately does not call mismatches.
|
|
49
|
+
*
|
|
50
|
+
* This exists because "no declared pair disagrees" and "these two are
|
|
51
|
+
* compatible" are different claims, and only the first is checkable from the
|
|
52
|
+
* data. A key listed here is a question, not a conflict: the records MIGHT use
|
|
53
|
+
* opposite sign conventions and one simply never said. Reporting it separately
|
|
54
|
+
* lets a reader distinguish *verified agreement* from *nobody wrote it down*,
|
|
55
|
+
* which is the distinction an empty mismatch list destroys.
|
|
56
|
+
*
|
|
57
|
+
* Both sides absent is NOT unknown — it is simply a key nobody uses, so it is
|
|
58
|
+
* omitted. Only an asymmetric declaration is reported.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
export declare function unknownConventionKeys(a: Conventions | undefined, b: Conventions | undefined): readonly ConventionKey[];
|
|
63
|
+
//# sourceMappingURL=conventions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/atlas/conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC;AAgB9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACzB,SAAS,aAAa,EAAE,CAS1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACzB,SAAS,aAAa,EAAE,CAS1B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 1 — convention comparison.
|
|
3
|
+
*
|
|
4
|
+
* `Conventions` (`src/atlas/types.ts`) records the sign and unit choices a
|
|
5
|
+
* record depends on. Two records that disagree on one of those choices are not
|
|
6
|
+
* directly comparable, and this module says WHICH keys disagree.
|
|
7
|
+
*
|
|
8
|
+
* **`undefined` is "unknown", never "mismatch", and that asymmetry is the
|
|
9
|
+
* whole design.** A record that declares nothing about the metric signature
|
|
10
|
+
* has not chosen `'+---'`; it has not said. Reporting the absence as a
|
|
11
|
+
* disagreement would manufacture conflicts out of missing data — and because
|
|
12
|
+
* almost every record in the repo declares nothing today, it would manufacture
|
|
13
|
+
* them at scale. The same reasoning that makes design note §3 require a
|
|
14
|
+
* NON-EMPTY `conventions` before `convention-checked` can be derived applies
|
|
15
|
+
* in the mirror here: absence earns neither a tag nor an accusation.
|
|
16
|
+
*
|
|
17
|
+
* A mismatch is therefore reported only when BOTH sides declare the key and
|
|
18
|
+
* the declared values differ.
|
|
19
|
+
*
|
|
20
|
+
* @module atlas/conventions
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Every key of `Conventions`, as values. Written out rather than derived,
|
|
24
|
+
* because a type has no runtime extent; `tests/atlas/conventions.test.ts`
|
|
25
|
+
* pins this list against the interface so a new field cannot be added to
|
|
26
|
+
* `Conventions` and silently skipped by the comparison.
|
|
27
|
+
*/
|
|
28
|
+
const CONVENTION_KEYS = [
|
|
29
|
+
'heatWorkSign',
|
|
30
|
+
'metricSignature',
|
|
31
|
+
'fourierNormalization',
|
|
32
|
+
'unitSystem',
|
|
33
|
+
'capacitorChargeSign',
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* The convention keys on which `a` and `b` DECLARE different values.
|
|
37
|
+
*
|
|
38
|
+
* Returns an empty list when they agree, when either side is absent, and when
|
|
39
|
+
* neither declares a key in common.
|
|
40
|
+
*
|
|
41
|
+
* ⚠ **An empty list is NOT a statement that the two are compatible** — it means
|
|
42
|
+
* no DECLARED pair disagrees. Eve (E1, 2026-09-21) flagged that this conflates
|
|
43
|
+
* the safe case with the dangerous one: record A declaring `metricSignature:
|
|
44
|
+
* '-+++'` while B simply never declared it returns `[]`, exactly like genuine
|
|
45
|
+
* agreement, and a caller printing nothing leads a reader to infer "checked, no
|
|
46
|
+
* conflict". Silence is not agreement. Use {@link unknownConventionKeys} to
|
|
47
|
+
* surface that case, and prefer reporting the two together.
|
|
48
|
+
*
|
|
49
|
+
* @param a - one record's conventions, or `undefined` when it declares none.
|
|
50
|
+
* @param b - the other record's conventions, or `undefined`.
|
|
51
|
+
* @returns the mismatched keys, in `Conventions` declaration order.
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
export function checkConventions(a, b) {
|
|
56
|
+
if (a === undefined || b === undefined)
|
|
57
|
+
return [];
|
|
58
|
+
return CONVENTION_KEYS.filter((k) => {
|
|
59
|
+
const av = a[k];
|
|
60
|
+
const bv = b[k];
|
|
61
|
+
// Either side silent ⇒ unknown, not disagreement.
|
|
62
|
+
if (av === undefined || bv === undefined)
|
|
63
|
+
return false;
|
|
64
|
+
return av !== bv;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The convention keys where exactly ONE side declares a value — the cases
|
|
69
|
+
* {@link checkConventions} deliberately does not call mismatches.
|
|
70
|
+
*
|
|
71
|
+
* This exists because "no declared pair disagrees" and "these two are
|
|
72
|
+
* compatible" are different claims, and only the first is checkable from the
|
|
73
|
+
* data. A key listed here is a question, not a conflict: the records MIGHT use
|
|
74
|
+
* opposite sign conventions and one simply never said. Reporting it separately
|
|
75
|
+
* lets a reader distinguish *verified agreement* from *nobody wrote it down*,
|
|
76
|
+
* which is the distinction an empty mismatch list destroys.
|
|
77
|
+
*
|
|
78
|
+
* Both sides absent is NOT unknown — it is simply a key nobody uses, so it is
|
|
79
|
+
* omitted. Only an asymmetric declaration is reported.
|
|
80
|
+
*
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
export function unknownConventionKeys(a, b) {
|
|
84
|
+
const av = a ?? {};
|
|
85
|
+
const bv = b ?? {};
|
|
86
|
+
return CONVENTION_KEYS.filter((k) => {
|
|
87
|
+
const x = av[k];
|
|
88
|
+
const y = bv[k];
|
|
89
|
+
// Exactly one declared: the asymmetric case. Neither declared ⇒ not a question.
|
|
90
|
+
return (x === undefined) !== (y === undefined);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=conventions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/atlas/conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH;;;;;GAKG;AACH,MAAM,eAAe,GAA6B;IAChD,cAAc;IACd,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;IACZ,qBAAqB;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,CAA0B,EAC1B,CAA0B;IAE1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,kDAAkD;QAClD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,CAA0B,EAC1B,CAA0B;IAE1B,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,gFAAgF;QAChF,OAAO,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 1, S1.3 — evidence coverage, counted BY TAG.
|
|
3
|
+
*
|
|
4
|
+
* Design note `docs/planning/Atlas-Phase-1-Design.md` §3: *"Any future commit
|
|
5
|
+
* that appears to raise a row's evidence without adding a witness is a bug,
|
|
6
|
+
* and the coverage report is what makes it visible: it reports counts BY TAG,
|
|
7
|
+
* so a jump is legible."*
|
|
8
|
+
*
|
|
9
|
+
* A single "how many records have evidence" total would hide exactly the
|
|
10
|
+
* movement this report exists to expose — one tag inflating while another
|
|
11
|
+
* drains reads as no change at all. So the report is per tag, every tag is
|
|
12
|
+
* present with an explicit zero, and `records` is reported beside the counts
|
|
13
|
+
* (the counts do not sum to it: a record carries several tags).
|
|
14
|
+
*
|
|
15
|
+
* Pure: no I/O, no catalog import, no caching — every function here takes
|
|
16
|
+
* what it counts as an argument, so it can never disagree with a registry.
|
|
17
|
+
*
|
|
18
|
+
* @module atlas/coverage
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
import type { EvidenceTag } from './types.js';
|
|
22
|
+
export { ALL_EVIDENCE_TAGS } from './types.js';
|
|
23
|
+
/** Counts by tag over a set of records. @internal */
|
|
24
|
+
export interface EvidenceCoverage {
|
|
25
|
+
/** How many records were counted. */
|
|
26
|
+
readonly records: number;
|
|
27
|
+
/** One entry per `EvidenceTag`, zero included. Counts overlap by design. */
|
|
28
|
+
readonly byTag: Readonly<Record<EvidenceTag, number>>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Count derived evidence sets by tag.
|
|
32
|
+
*
|
|
33
|
+
* @param evidenceSets - one derived set per record, e.g. the output of
|
|
34
|
+
* `deriveEvidence` mapped over a catalog. Deriving is the caller's job; this
|
|
35
|
+
* function never derives, so it cannot disagree with the derivation.
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export declare function summarizeEvidence(evidenceSets: Iterable<ReadonlySet<EvidenceTag>>): EvidenceCoverage;
|
|
39
|
+
/**
|
|
40
|
+
* How much of the catalog carries the Phase 1 overlay.
|
|
41
|
+
*
|
|
42
|
+
* `summarizeEvidence` above answers "what support do these records have";
|
|
43
|
+
* this answers the different question "how much has anyone LOOKED at". The two
|
|
44
|
+
* must not be conflated: a row can be `verified` (its derived tag set is
|
|
45
|
+
* non-empty, which a machine check produces) while nobody has recorded a
|
|
46
|
+
* `relation` for it at all.
|
|
47
|
+
*
|
|
48
|
+
* - `schema` — the denominator: the 55 catalog rows plus the canonical
|
|
49
|
+
* registry. The atlas families are NOT in it; they are reported separately,
|
|
50
|
+
* because a nine-model pilot would otherwise dilute a catalog-wide fraction.
|
|
51
|
+
* - `audited` — a HUMAN set `relation` or `conventions` on the record.
|
|
52
|
+
* - `verified` — a derived evidence tag set is non-empty. Passed IN, never
|
|
53
|
+
* derived here, for the same reason `summarizeEvidence` never derives.
|
|
54
|
+
* - `notYetAudited` — `schema − audited`, stated rather than left to arithmetic.
|
|
55
|
+
*
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
export interface OverlayCoverage {
|
|
59
|
+
readonly schema: number;
|
|
60
|
+
readonly audited: number;
|
|
61
|
+
readonly verified: number;
|
|
62
|
+
readonly notYetAudited: number;
|
|
63
|
+
/** The atlas pilot, reported beside the catalog and never mixed into it. */
|
|
64
|
+
readonly atlas: {
|
|
65
|
+
readonly bridges: number;
|
|
66
|
+
readonly reviewed: number;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** A record that may carry the Phase 1 overlay. Structural, so this module
|
|
70
|
+
* imports no registry and cannot become a second source of truth. @internal */
|
|
71
|
+
export interface OverlayBearing {
|
|
72
|
+
readonly relation?: unknown;
|
|
73
|
+
readonly conventions?: unknown;
|
|
74
|
+
}
|
|
75
|
+
/** An atlas bridge, reduced to the one field this report reads. @internal */
|
|
76
|
+
export interface ReviewStatusBearing {
|
|
77
|
+
readonly reviewStatus: 'proposed' | 'reviewed';
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Count overlay coverage over the catalog rows and canonical entries.
|
|
81
|
+
*
|
|
82
|
+
* Every input is PASSED IN. The module stays pure and importless, so it can
|
|
83
|
+
* never disagree with the registries — the caller states which registries it
|
|
84
|
+
* counted, exactly as `summarizeEvidence` requires its caller to state which
|
|
85
|
+
* evidence sets it derived.
|
|
86
|
+
*
|
|
87
|
+
* @param schemaRecords - the catalog rows and canonical entries, concatenated.
|
|
88
|
+
* @param verifiedCount - how many of them have a non-empty derived tag set.
|
|
89
|
+
* @param atlasBridges - the atlas pilot's bridges, reported separately.
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
export declare function overlayCoverage(schemaRecords: readonly OverlayBearing[], verifiedCount: number, atlasBridges: readonly ReviewStatusBearing[]): OverlayCoverage;
|
|
93
|
+
//# sourceMappingURL=coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/atlas/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAC/C,gBAAgB,CAWlB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED;+EAC+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;CAChD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,SAAS,cAAc,EAAE,EACxC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,SAAS,mBAAmB,EAAE,GAC3C,eAAe,CAcjB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 1, S1.3 — evidence coverage, counted BY TAG.
|
|
3
|
+
*
|
|
4
|
+
* Design note `docs/planning/Atlas-Phase-1-Design.md` §3: *"Any future commit
|
|
5
|
+
* that appears to raise a row's evidence without adding a witness is a bug,
|
|
6
|
+
* and the coverage report is what makes it visible: it reports counts BY TAG,
|
|
7
|
+
* so a jump is legible."*
|
|
8
|
+
*
|
|
9
|
+
* A single "how many records have evidence" total would hide exactly the
|
|
10
|
+
* movement this report exists to expose — one tag inflating while another
|
|
11
|
+
* drains reads as no change at all. So the report is per tag, every tag is
|
|
12
|
+
* present with an explicit zero, and `records` is reported beside the counts
|
|
13
|
+
* (the counts do not sum to it: a record carries several tags).
|
|
14
|
+
*
|
|
15
|
+
* Pure: no I/O, no catalog import, no caching — every function here takes
|
|
16
|
+
* what it counts as an argument, so it can never disagree with a registry.
|
|
17
|
+
*
|
|
18
|
+
* @module atlas/coverage
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
import { ALL_EVIDENCE_TAGS } from './types.js';
|
|
22
|
+
// Moved to `types.ts`: the derived-tag literals may appear under `src/atlas/`
|
|
23
|
+
// only there and in `derive-evidence.ts`. Re-exported so callers are unchanged.
|
|
24
|
+
export { ALL_EVIDENCE_TAGS } from './types.js';
|
|
25
|
+
/**
|
|
26
|
+
* Count derived evidence sets by tag.
|
|
27
|
+
*
|
|
28
|
+
* @param evidenceSets - one derived set per record, e.g. the output of
|
|
29
|
+
* `deriveEvidence` mapped over a catalog. Deriving is the caller's job; this
|
|
30
|
+
* function never derives, so it cannot disagree with the derivation.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export function summarizeEvidence(evidenceSets) {
|
|
34
|
+
const byTag = Object.fromEntries(ALL_EVIDENCE_TAGS.map((t) => [t, 0]));
|
|
35
|
+
let records = 0;
|
|
36
|
+
for (const set of evidenceSets) {
|
|
37
|
+
records += 1;
|
|
38
|
+
for (const tag of set)
|
|
39
|
+
byTag[tag] += 1;
|
|
40
|
+
}
|
|
41
|
+
return { records, byTag };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Count overlay coverage over the catalog rows and canonical entries.
|
|
45
|
+
*
|
|
46
|
+
* Every input is PASSED IN. The module stays pure and importless, so it can
|
|
47
|
+
* never disagree with the registries — the caller states which registries it
|
|
48
|
+
* counted, exactly as `summarizeEvidence` requires its caller to state which
|
|
49
|
+
* evidence sets it derived.
|
|
50
|
+
*
|
|
51
|
+
* @param schemaRecords - the catalog rows and canonical entries, concatenated.
|
|
52
|
+
* @param verifiedCount - how many of them have a non-empty derived tag set.
|
|
53
|
+
* @param atlasBridges - the atlas pilot's bridges, reported separately.
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export function overlayCoverage(schemaRecords, verifiedCount, atlasBridges) {
|
|
57
|
+
const audited = schemaRecords.filter((r) => r.relation !== undefined || r.conventions !== undefined).length;
|
|
58
|
+
return {
|
|
59
|
+
schema: schemaRecords.length,
|
|
60
|
+
audited,
|
|
61
|
+
verified: verifiedCount,
|
|
62
|
+
notYetAudited: schemaRecords.length - audited,
|
|
63
|
+
atlas: {
|
|
64
|
+
bridges: atlasBridges.length,
|
|
65
|
+
reviewed: atlasBridges.filter((b) => b.reviewStatus === 'reviewed').length,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/atlas/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,8EAA8E;AAC9E,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAU/C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAgD;IAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAGpE,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AA8CD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,aAAwC,EACxC,aAAqB,EACrB,YAA4C;IAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAC/D,CAAC,MAAM,CAAC;IACT,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,OAAO;QACP,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,OAAO;QAC7C,KAAK,EAAE;YACL,OAAO,EAAE,YAAY,CAAC,MAAM;YAC5B,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,MAAM;SAC3E;KACF,CAAC;AACJ,CAAC"}
|