universal-physics-tensor 8.0.0 → 10.0.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 +26 -21
- package/data/atlas/atlas.json +75 -64
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +23 -22
- package/data/atlas/oscillators.json +21 -16
- package/data/atlas/waves.json +33 -28
- package/data/bridge-catalog.json +1356 -1791
- package/data/bridge-catalog.schema.json +789 -46
- package/data/quantities.json +280 -234
- package/data/quantities.schema.json +52 -0
- package/data/schemas/atlas-record.v0.json +184 -46
- package/data/units.json +1178 -0
- package/data/units.schema.json +124 -0
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +14 -3
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/association.d.ts +1 -1
- package/dist/atlas/association.js.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.js +5 -1
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
- package/dist/atlas/benchmark/baselines.js +8 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +16 -12
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/leakage.js.map +1 -1
- package/dist/atlas/benchmark/loader.js.map +1 -1
- package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
- package/dist/atlas/benchmark/run-atlas.js +14 -2
- package/dist/atlas/benchmark/run-atlas.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +1 -1
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +1 -1
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/benchmark/study.js.map +1 -1
- package/dist/atlas/benchmark/types.js.map +1 -1
- package/dist/atlas/bridge-record.d.ts +4 -4
- package/dist/atlas/bridge-record.d.ts.map +1 -1
- package/dist/atlas/bridge-record.js +6 -6
- package/dist/atlas/bridge-record.js.map +1 -1
- package/dist/atlas/catalog-formal-ref.js.map +1 -1
- package/dist/atlas/chain-pipeline.d.ts +0 -11
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +5 -16
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/composition-table.js.map +1 -1
- package/dist/atlas/conventions.js.map +1 -1
- package/dist/atlas/coverage.d.ts +2 -2
- package/dist/atlas/coverage.js.map +1 -1
- package/dist/atlas/derivation.js.map +1 -1
- package/dist/atlas/derive-evidence.d.ts +6 -4
- package/dist/atlas/derive-evidence.d.ts.map +1 -1
- package/dist/atlas/derive-evidence.js +7 -2
- package/dist/atlas/derive-evidence.js.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +0 -5
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges.js +0 -3
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- package/dist/atlas/diffusion/dimensions.js.map +1 -1
- package/dist/atlas/diffusion/index.d.ts +1 -1
- package/dist/atlas/diffusion/index.d.ts.map +1 -1
- package/dist/atlas/diffusion/index.js.map +1 -1
- package/dist/atlas/diffusion/models.js.map +1 -1
- package/dist/atlas/diffusion/numerics.js.map +1 -1
- package/dist/atlas/error-algebra.d.ts +6 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -1
- package/dist/atlas/error-algebra.js +26 -0
- package/dist/atlas/error-algebra.js.map +1 -1
- package/dist/atlas/export.d.ts +18 -2
- package/dist/atlas/export.d.ts.map +1 -1
- package/dist/atlas/export.js +9 -3
- package/dist/atlas/export.js.map +1 -1
- package/dist/atlas/families.d.ts +19 -2
- package/dist/atlas/families.d.ts.map +1 -1
- package/dist/atlas/families.js +26 -3
- package/dist/atlas/families.js.map +1 -1
- package/dist/atlas/family.d.ts +27 -0
- package/dist/atlas/family.d.ts.map +1 -0
- package/dist/atlas/family.js +12 -0
- package/dist/atlas/family.js.map +1 -0
- package/dist/atlas/index.d.ts +3 -2
- package/dist/atlas/index.d.ts.map +1 -1
- package/dist/atlas/index.js +2 -1
- package/dist/atlas/index.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +1 -1
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- package/dist/atlas/link-prediction.js.map +1 -1
- package/dist/atlas/model.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +0 -1
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.js +0 -3
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +0 -2
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- package/dist/atlas/oscillators/dimensions.js.map +1 -1
- package/dist/atlas/oscillators/index.d.ts +1 -16
- package/dist/atlas/oscillators/index.d.ts.map +1 -1
- package/dist/atlas/oscillators/index.js.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
- package/dist/atlas/oscillators/models.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport.js.map +1 -1
- package/dist/atlas/oscillators/norms.js.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
- package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/path-bound.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +1854 -345
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +151 -117
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +244 -211
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +31 -0
- package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
- package/dist/atlas/physjs-reviewed.js +194 -0
- package/dist/atlas/physjs-reviewed.js.map +1 -0
- package/dist/atlas/poster/associations.js.map +1 -1
- package/dist/atlas/poster/derivations.js.map +1 -1
- package/dist/atlas/poster/statements.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +16 -8
- package/dist/atlas/proof-target.d.ts.map +1 -1
- package/dist/atlas/proof-target.js +34 -31
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/atlas/public.d.ts +2 -1
- package/dist/atlas/public.d.ts.map +1 -1
- package/dist/atlas/public.js +2 -1
- package/dist/atlas/public.js.map +1 -1
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/serialize.d.ts +18 -12
- package/dist/atlas/serialize.d.ts.map +1 -1
- package/dist/atlas/serialize.js +28 -18
- package/dist/atlas/serialize.js.map +1 -1
- package/dist/atlas/statement.js.map +1 -1
- package/dist/atlas/translation-registry.js.map +1 -1
- package/dist/atlas/translation.js.map +1 -1
- package/dist/atlas/types.d.ts +9 -2
- package/dist/atlas/types.d.ts.map +1 -1
- package/dist/atlas/types.js +1 -1
- package/dist/atlas/types.js.map +1 -1
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +0 -3
- package/dist/atlas/waves/bridges-closure.js.map +1 -1
- package/dist/atlas/waves/bridges.d.ts.map +1 -1
- package/dist/atlas/waves/bridges.js +0 -4
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/index.d.ts +1 -1
- package/dist/atlas/waves/index.d.ts.map +1 -1
- package/dist/atlas/waves/index.js.map +1 -1
- package/dist/atlas/waves/models.js.map +1 -1
- package/dist/atlas/waves/numerics.js.map +1 -1
- package/dist/atlas/witness-artifact.js.map +1 -1
- package/dist/atlas/witness-dominance.d.ts +4 -3
- package/dist/atlas/witness-dominance.d.ts.map +1 -1
- package/dist/atlas/witness-dominance.js +15 -5
- package/dist/atlas/witness-dominance.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +8 -4
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +27 -2
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-result.d.ts +7 -1
- package/dist/atlas/witness-result.d.ts.map +1 -1
- package/dist/atlas/witness-result.js.map +1 -1
- package/dist/atlas/witness-specs.js.map +1 -1
- package/dist/atlas/witness-symbolic.js.map +1 -1
- package/dist/atlas/witnesses/quantum-support.js.map +1 -1
- package/dist/bridges/caller-table.d.ts +1 -1
- package/dist/bridges/caller-table.d.ts.map +1 -1
- package/dist/bridges/caller-table.js.map +1 -1
- package/dist/bridges/carrier-sign.d.ts.map +1 -1
- package/dist/bridges/carrier-sign.js +8 -3
- package/dist/bridges/carrier-sign.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts +12 -3
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js +22 -14
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts +19 -2
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +233 -14
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +96 -27
- package/dist/bridges/catalog-types.d.ts.map +1 -1
- package/dist/bridges/catalog-types.js.map +1 -1
- package/dist/bridges/coefficient-statement.js +1 -5
- package/dist/bridges/coefficient-statement.js.map +1 -1
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/confrontations.d.ts +1 -1
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +1 -1
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +89 -0
- package/dist/bridges/evaluation-errors.d.ts.map +1 -0
- package/dist/bridges/evaluation-errors.js +136 -0
- package/dist/bridges/evaluation-errors.js.map +1 -0
- package/dist/bridges/evaluator-inputs.d.ts +5 -3
- package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
- package/dist/bridges/evaluator-inputs.js +24 -24
- package/dist/bridges/evaluator-inputs.js.map +1 -1
- package/dist/bridges/evaluators.d.ts +48 -8
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +173 -38
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +38 -7
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +129 -156
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +16 -8
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +130 -236
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/index.d.ts +15 -14
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +14 -15
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/input-contract.d.ts +65 -0
- package/dist/bridges/input-contract.d.ts.map +1 -0
- package/dist/bridges/input-contract.js +97 -0
- package/dist/bridges/input-contract.js.map +1 -0
- package/dist/bridges/membership.d.ts +5 -3
- package/dist/bridges/membership.d.ts.map +1 -1
- package/dist/bridges/membership.js +5 -6
- package/dist/bridges/membership.js.map +1 -1
- package/dist/bridges/notices.d.ts +11 -0
- package/dist/bridges/notices.d.ts.map +1 -0
- package/dist/bridges/notices.js +22 -0
- package/dist/bridges/notices.js.map +1 -0
- package/dist/bridges/observations/types.js.map +1 -1
- package/dist/bridges/rejected.d.ts +11 -17
- package/dist/bridges/rejected.d.ts.map +1 -1
- package/dist/bridges/rejected.js +13 -68
- package/dist/bridges/rejected.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +5 -6
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +9 -38
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/rhs-registry.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts +11 -3
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +24 -10
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/tensor-index.js.map +1 -1
- package/dist/bridges/types.d.ts +1 -7
- package/dist/bridges/types.d.ts.map +1 -1
- package/dist/bridges/types.js +1 -4
- package/dist/bridges/types.js.map +1 -1
- package/dist/canonical/canonical-equation.d.ts +31 -0
- package/dist/canonical/canonical-equation.d.ts.map +1 -1
- package/dist/canonical/canonical-equation.js.map +1 -1
- package/dist/canonical/dimensional-fields.js.map +1 -1
- package/dist/canonical/entries/_l1-build.js.map +1 -1
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +11 -1
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +7 -4
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +50 -2
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +32 -2
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
- package/dist/canonical/entries/fluids-waves.js +34 -0
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- package/dist/canonical/entries/mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/mechanics.js +24 -0
- package/dist/canonical/entries/mechanics.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +42 -24
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +6 -0
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/statistical-mechanics.js +24 -5
- package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/linkage.d.ts +29 -4
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +31 -29
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts +0 -8
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +17 -12
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/registry.js.map +1 -1
- package/dist/canonical/residual.js.map +1 -1
- package/dist/canonical/seed-l-layer.d.ts +7 -1
- package/dist/canonical/seed-l-layer.d.ts.map +1 -1
- package/dist/canonical/seed-l-layer.js +7 -1
- package/dist/canonical/seed-l-layer.js.map +1 -1
- package/dist/canonical/structural.d.ts +21 -0
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +24 -4
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/brownian-sphere.js +4 -4
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/damped-resonator.js +2 -2
- package/dist/cases/damped-resonator.js.map +1 -1
- package/dist/cases/index.d.ts +9 -2
- package/dist/cases/index.d.ts.map +1 -1
- package/dist/cases/index.js +26 -7
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.js +6 -6
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cases/lumped-cooling.js +1 -1
- package/dist/cases/lumped-cooling.js.map +1 -1
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/resistor-noise.js +3 -3
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +7 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +18 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts +13 -0
- package/dist/cli/bindings.d.ts.map +1 -0
- package/dist/cli/bindings.js +32 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/closed-form-range.js.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +3 -3
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +43 -18
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- package/dist/cli/commands/_atlas-route.js.map +1 -1
- package/dist/cli/commands/_discovery-opts.d.ts +2 -1
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +48 -18
- package/dist/cli/commands/_discovery-opts.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +7 -12
- package/dist/cli/commands/atlas.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +13 -21
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.js.map +1 -1
- package/dist/cli/commands/candidates.d.ts.map +1 -1
- package/dist/cli/commands/candidates.js +16 -8
- package/dist/cli/commands/candidates.js.map +1 -1
- package/dist/cli/commands/canonical.js.map +1 -1
- package/dist/cli/commands/chain.js +1 -1
- package/dist/cli/commands/chain.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +22 -14
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.d.ts.map +1 -1
- package/dist/cli/commands/connectors.js +8 -9
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/coverage.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +50 -26
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/discover.d.ts.map +1 -1
- package/dist/cli/commands/discover.js +18 -13
- package/dist/cli/commands/discover.js.map +1 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +29 -26
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts +1 -35
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +99 -208
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +57 -45
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/frontier.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +41 -11
- package/dist/cli/commands/ground.js.map +1 -1
- 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 +84 -92
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/metric.d.ts.map +1 -1
- package/dist/cli/commands/metric.js +53 -15
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.js +4 -4
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/predict.js.map +1 -1
- package/dist/cli/commands/priority.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +50 -26
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.js +1 -1
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +5 -4
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +25 -27
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/retrieve.d.ts.map +1 -1
- package/dist/cli/commands/retrieve.js +22 -14
- package/dist/cli/commands/retrieve.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +8 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +14 -7
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.js +4 -4
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/conventions.d.ts +6 -7
- package/dist/cli/conventions.d.ts.map +1 -1
- package/dist/cli/conventions.js +19 -28
- package/dist/cli/conventions.js.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/euler-guard.d.ts +13 -2
- package/dist/cli/euler-guard.d.ts.map +1 -1
- package/dist/cli/euler-guard.js +17 -3
- package/dist/cli/euler-guard.js.map +1 -1
- package/dist/cli/eval-numbers.d.ts +4 -9
- package/dist/cli/eval-numbers.d.ts.map +1 -1
- package/dist/cli/eval-numbers.js +11 -41
- package/dist/cli/eval-numbers.js.map +1 -1
- package/dist/cli/expr-print.d.ts +29 -2
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +46 -2
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/library-defaults.d.ts +19 -0
- package/dist/cli/library-defaults.d.ts.map +1 -0
- package/dist/cli/library-defaults.js +22 -0
- package/dist/cli/library-defaults.js.map +1 -0
- package/dist/cli/main.js +7 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.js.map +1 -1
- package/dist/cli/output.d.ts +3 -6
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/published-url.d.ts +2 -0
- package/dist/cli/published-url.d.ts.map +1 -1
- package/dist/cli/published-url.js +5 -0
- package/dist/cli/published-url.js.map +1 -1
- package/dist/cli/record-reach.d.ts +6 -0
- package/dist/cli/record-reach.d.ts.map +1 -1
- package/dist/cli/record-reach.js +16 -10
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.d.ts +2 -1
- package/dist/cli/record-tables.d.ts.map +1 -1
- package/dist/cli/record-tables.js +8 -3
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +31 -12
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts +5 -0
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +12 -1
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/top-level-help.js.map +1 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +57 -18
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +49 -21
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.d.ts +8 -30
- package/dist/composition/adjudication.d.ts.map +1 -1
- package/dist/composition/adjudication.js +15 -67
- package/dist/composition/adjudication.js.map +1 -1
- package/dist/composition/aliases.d.ts +1 -1
- package/dist/composition/aliases.d.ts.map +1 -1
- package/dist/composition/aliases.js +10 -20
- package/dist/composition/aliases.js.map +1 -1
- package/dist/composition/audit-coverage.d.ts +2 -0
- package/dist/composition/audit-coverage.d.ts.map +1 -1
- package/dist/composition/audit-coverage.js.map +1 -1
- package/dist/composition/axes.d.ts +12 -0
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +18 -6
- package/dist/composition/axes.js.map +1 -1
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +0 -14
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +66 -57
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts +5 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +12 -16
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/buckingham-filter.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +12 -2
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +15 -18
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +59 -85
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-json.js.map +1 -1
- package/dist/composition/canonical-prefactors.d.ts +10 -29
- package/dist/composition/canonical-prefactors.d.ts.map +1 -1
- package/dist/composition/canonical-prefactors.js +15 -202
- package/dist/composition/canonical-prefactors.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +6 -20
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +2 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +2 -0
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-regime.js.map +1 -1
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-surface.js.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 +154 -36
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/composition-recovery.js.map +1 -1
- package/dist/composition/consequence.d.ts.map +1 -1
- package/dist/composition/consequence.js +15 -6
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/consistency.js.map +1 -1
- package/dist/composition/descriptor.d.ts +1 -1
- package/dist/composition/descriptor.d.ts.map +1 -1
- package/dist/composition/descriptor.js.map +1 -1
- package/dist/composition/dimension-adjacency.js.map +1 -1
- package/dist/composition/discovery.d.ts +67 -7
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +83 -23
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +19 -22
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +25 -28
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts +2 -2
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/evaluate-relation.d.ts +29 -5
- package/dist/composition/evaluate-relation.d.ts.map +1 -1
- package/dist/composition/evaluate-relation.js +100 -72
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +14 -4
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +53 -19
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +2 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +9 -39
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +9 -0
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +54 -0
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/frontier-account.d.ts +3 -2
- package/dist/composition/frontier-account.d.ts.map +1 -1
- package/dist/composition/frontier-account.js +7 -3
- package/dist/composition/frontier-account.js.map +1 -1
- package/dist/composition/graph-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +9 -5
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +7 -4
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +28 -0
- package/dist/composition/mathts-quiet.d.ts.map +1 -0
- package/dist/composition/mathts-quiet.js +56 -0
- package/dist/composition/mathts-quiet.js.map +1 -0
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +18 -34
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/not-composable-seeds.d.ts +3 -1
- package/dist/composition/not-composable-seeds.d.ts.map +1 -1
- package/dist/composition/not-composable-seeds.js +2 -0
- package/dist/composition/not-composable-seeds.js.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.js.map +1 -1
- package/dist/composition/probe/experiment-design.js.map +1 -1
- package/dist/composition/probe/expression-gaps.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +14 -3
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +14 -27
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fingerprint.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +1 -1
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +2 -1
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +4 -2
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +4 -2
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/metadata.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +5 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +13 -6
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.d.ts +8 -0
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +78 -12
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.js +2 -2
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scoring.d.ts +2 -1
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js +21 -7
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/probe/serialize.js.map +1 -1
- package/dist/composition/probe/structure.js.map +1 -1
- package/dist/composition/probe/study.d.ts +4 -3
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +5 -3
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/types.d.ts +3 -1
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js +2 -0
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +11 -4
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +14 -6
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities.d.ts +0 -4
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +5 -5
- package/dist/composition/quantities.js.map +1 -1
- package/dist/composition/quantity.d.ts +18 -2
- package/dist/composition/quantity.d.ts.map +1 -1
- package/dist/composition/quantity.js +35 -6
- package/dist/composition/quantity.js.map +1 -1
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +18 -0
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +37 -7
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts +11 -7
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +24 -26
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/axes-registry.d.ts +8 -5
- package/dist/core/axes-registry.d.ts.map +1 -1
- package/dist/core/axes-registry.js.map +1 -1
- package/dist/core/cell.js.map +1 -1
- package/dist/core/constants.d.ts +35 -12
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +46 -15
- package/dist/core/constants.js.map +1 -1
- package/dist/core/data-file.d.ts +27 -0
- package/dist/core/data-file.d.ts.map +1 -0
- package/dist/core/data-file.js +48 -0
- package/dist/core/data-file.js.map +1 -0
- package/dist/core/flux-rules.js +1 -1
- package/dist/core/flux-rules.js.map +1 -1
- package/dist/core/json-schema.d.ts +27 -0
- package/dist/core/json-schema.d.ts.map +1 -0
- package/dist/core/json-schema.js +177 -0
- package/dist/core/json-schema.js.map +1 -0
- package/dist/core/labeled-tensor.d.ts +6 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +18 -8
- package/dist/core/labeled-tensor.js.map +1 -1
- package/dist/core/regime-registry.d.ts +6 -2
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-registry.js.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/regimes-builtins.js.map +1 -1
- package/dist/core/tensor.d.ts +7 -4
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +40 -8
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +3 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +16 -14
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.d.ts +4 -5
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +16 -23
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +24 -80
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +21 -98
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts +18 -6
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +17 -5
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +5 -4
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +6 -5
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +3 -5
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +2 -1
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/constant-rows.d.ts +54 -0
- package/dist/dimensional/constant-rows.d.ts.map +1 -0
- package/dist/dimensional/constant-rows.js +115 -0
- package/dist/dimensional/constant-rows.js.map +1 -0
- package/dist/dimensional/constants.d.ts +7 -17
- package/dist/dimensional/constants.d.ts.map +1 -1
- package/dist/dimensional/constants.js +12 -21
- package/dist/dimensional/constants.js.map +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts +21 -6
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +150 -160
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/einstein-equation.js.map +1 -1
- package/dist/dimensional/errors.d.ts +3 -1
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +2 -2
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +79 -0
- package/dist/dimensional/exact-scale.d.ts.map +1 -0
- package/dist/dimensional/exact-scale.js +222 -0
- package/dist/dimensional/exact-scale.js.map +1 -0
- package/dist/dimensional/field-equation-helpers.js.map +1 -1
- package/dist/dimensional/formula-names.d.ts +13 -12
- package/dist/dimensional/formula-names.d.ts.map +1 -1
- package/dist/dimensional/formula-names.js +28 -51
- package/dist/dimensional/formula-names.js.map +1 -1
- package/dist/dimensional/fresh-label.js.map +1 -1
- package/dist/dimensional/friedmann-equation.d.ts +3 -3
- package/dist/dimensional/friedmann-equation.js +3 -3
- package/dist/dimensional/friedmann-equation.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts +2 -3
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +0 -1
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +8 -0
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/killing-validators.js.map +1 -1
- package/dist/dimensional/klein-gordon-equation.js.map +1 -1
- package/dist/dimensional/metric-validators.d.ts +2 -1
- package/dist/dimensional/metric-validators.d.ts.map +1 -1
- package/dist/dimensional/metric-validators.js.map +1 -1
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/natural-units.js.map +1 -1
- package/dist/dimensional/quantity-registry.d.ts +23 -1
- package/dist/dimensional/quantity-registry.d.ts.map +1 -1
- package/dist/dimensional/quantity-registry.js +55 -18
- package/dist/dimensional/quantity-registry.js.map +1 -1
- package/dist/dimensional/rg-flow.js.map +1 -1
- package/dist/dimensional/stress-energy-validators.js.map +1 -1
- package/dist/dimensional/symbolic-constants.d.ts +63 -19
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
- package/dist/dimensional/symbolic-constants.js +114 -92
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/types.js.map +1 -1
- package/dist/dimensional/unit-convention.d.ts +0 -2
- package/dist/dimensional/unit-convention.d.ts.map +1 -1
- package/dist/dimensional/unit-convention.js +2 -2
- package/dist/dimensional/unit-convention.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts +70 -0
- package/dist/dimensional/unit-data.d.ts.map +1 -0
- package/dist/dimensional/unit-data.js +139 -0
- package/dist/dimensional/unit-data.js.map +1 -0
- package/dist/dimensional/units.d.ts +87 -24
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +290 -295
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +0 -16
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +65 -29
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.js.map +1 -1
- package/dist/index.d.ts +65 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -24
- package/dist/index.js.map +1 -1
- package/dist/numerical/bianchi-residual.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +32 -7
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +218 -209
- package/dist/numerical/binding-value.js.map +1 -1
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js.map +1 -1
- package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/covariant-eikonal.js +2 -2
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +6 -3
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.js.map +1 -1
- package/dist/numerical/einstein-equation.js.map +1 -1
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/errors.d.ts +7 -3
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +5 -5
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
- package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
- package/dist/numerical/evaluator-uncertainty.js +134 -0
- package/dist/numerical/evaluator-uncertainty.js.map +1 -0
- package/dist/numerical/formula-contract.d.ts +67 -7
- package/dist/numerical/formula-contract.d.ts.map +1 -1
- package/dist/numerical/formula-contract.js +68 -42
- package/dist/numerical/formula-contract.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +17 -7
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +120 -44
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +10 -3
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +13 -3
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +7 -2
- package/dist/numerical/formula-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/geometrized.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +28 -27
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +44 -45
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/grid-field.js.map +1 -1
- package/dist/numerical/index.js.map +1 -1
- package/dist/numerical/input-validation.d.ts +3 -6
- package/dist/numerical/input-validation.d.ts.map +1 -1
- package/dist/numerical/input-validation.js +4 -8
- package/dist/numerical/input-validation.js.map +1 -1
- package/dist/numerical/killing.d.ts +8 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.js.map +1 -1
- package/dist/numerical/kretschmann.js.map +1 -1
- package/dist/numerical/lowering-utils.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +7 -17
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +11 -6
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ic.js.map +1 -1
- package/dist/numerical/null-ray-integrator.js +4 -4
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +9 -2
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts +5 -2
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +20 -3
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/spacetime-metrics.d.ts +17 -19
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +158 -250
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +9 -5
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/numerical/types.js.map +1 -1
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/dist/relations/category.js.map +1 -1
- package/dist/relations/composition-table.d.ts +4 -4
- package/dist/relations/composition-table.js +4 -4
- package/dist/relations/composition-table.js.map +1 -1
- package/dist/relations/conventions.js.map +1 -1
- package/dist/relations/domain-regimes.js.map +1 -1
- package/dist/relations/regime-registration.js.map +1 -1
- package/dist/relations/regime-vocabularies.js.map +1 -1
- package/dist/relations/regime.d.ts +18 -8
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +26 -14
- package/dist/relations/regime.js.map +1 -1
- package/dist/relations/types.d.ts +26 -6
- package/dist/relations/types.d.ts.map +1 -1
- package/dist/relations/types.js +15 -3
- package/dist/relations/types.js.map +1 -1
- package/package.json +10 -14
- package/dist/bridges/registry.d.ts +0 -60
- package/dist/bridges/registry.d.ts.map +0 -1
- package/dist/bridges/registry.js +0 -87
- package/dist/bridges/registry.js.map +0 -1
- package/dist/cli/poster-source.d.ts +0 -154
- package/dist/cli/poster-source.d.ts.map +0 -1
- package/dist/cli/poster-source.js +0 -184
- package/dist/cli/poster-source.js.map +0 -1
package/dist/cli/conventions.js
CHANGED
|
@@ -4,45 +4,36 @@
|
|
|
4
4
|
* @module cli/conventions
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
import { canonicalById } from '../canonical/registry.js';
|
|
8
8
|
/**
|
|
9
|
-
* A factor or form difference is a failed check, except
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* A factor or form difference is a failed check, except within a convention
|
|
10
|
+
* group: entries that share `conventionGroup` are one law under different
|
|
11
|
+
* conventions (the two Compton wavelengths differ by 2π), so a formula that
|
|
12
|
+
* agrees with one of them has matched that convention. The other difference
|
|
13
|
+
* is still printed. A formula that matches none of a group still fails.
|
|
13
14
|
* @internal
|
|
14
15
|
*/
|
|
15
16
|
export function canonicalCheckFailed(comparisons) {
|
|
16
17
|
const hard = comparisons.filter((c) => c.kind === 'factor' || c.kind === 'form');
|
|
17
18
|
if (hard.length === 0)
|
|
18
19
|
return false;
|
|
19
|
-
const
|
|
20
|
-
return !
|
|
20
|
+
const agreedGroups = new Set(comparisons.filter((c) => c.kind === 'agrees').map((c) => canonicalById(c.id)?.conventionGroup).filter((g) => g !== undefined));
|
|
21
|
+
return !hard.every((c) => {
|
|
22
|
+
const group = canonicalById(c.id)?.conventionGroup;
|
|
23
|
+
return group !== undefined && agreedGroups.has(group);
|
|
24
|
+
});
|
|
21
25
|
}
|
|
22
|
-
/** One line per convention
|
|
26
|
+
/** One line per convention note the listed entries carry; a note two entries share prints once. @internal */
|
|
23
27
|
export function conventionLines(ids) {
|
|
24
|
-
const has = new Set(ids);
|
|
25
28
|
const lines = [];
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
lines.
|
|
32
|
-
|
|
33
|
-
if (has.has('CE-gravitational-potential-energy')) {
|
|
34
|
-
lines.push('convention: gravitational potential energy is U = −G m1 m2/r. The minus is in the scalar AST; a positive formula differs by the factor −1.');
|
|
35
|
-
}
|
|
36
|
-
if (has.has('CE-hooke-law')) {
|
|
37
|
-
lines.push("convention: Hooke's law is F = −kx. The minus is in the scalar AST; a positive formula differs by the factor −1.");
|
|
38
|
-
}
|
|
39
|
-
if (has.has('CE-einstein-field-eq')) {
|
|
40
|
-
lines.push('convention: the Einstein-equation metric node is mostly-plus (−,+,+,+), the same signature as upt metric. ' +
|
|
41
|
-
'The 8π is in the scalar AST, so a comparison checks it.');
|
|
29
|
+
for (const id of ids) {
|
|
30
|
+
const note = canonicalById(id)?.conventionNote;
|
|
31
|
+
if (note === undefined)
|
|
32
|
+
continue;
|
|
33
|
+
const line = `convention: ${note}`;
|
|
34
|
+
if (!lines.includes(line))
|
|
35
|
+
lines.push(line);
|
|
42
36
|
}
|
|
43
37
|
return lines;
|
|
44
38
|
}
|
|
45
|
-
/** Printed beside be-65. The number is the coded formula; the 5 is convention-dependent. */
|
|
46
|
-
export const JEANS_FORMULA_NOTE = 'formula: M_J = (5 k_B T / (G μ m_u))^{3/2} · (3/(4π ρ))^{1/2}. ' +
|
|
47
|
-
'The leading 5 is convention-dependent; the number above is this formula, not a checked universal prefactor.';
|
|
48
39
|
//# sourceMappingURL=conventions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/cli/conventions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,
|
|
1
|
+
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/cli/conventions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAsE;IAEtE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAC/H,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;QACnD,OAAO,KAAK,KAAK,SAAS,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,eAAe,CAAC,GAAsB;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;QAC/C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,IAAI,GAAG,eAAe,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Convention lines the CLI prints beside a comparison.\n *\n * @module cli/conventions\n * @internal\n */\n\nimport { canonicalById } from '../canonical/registry.js';\n\n/**\n * A factor or form difference is a failed check, except within a convention\n * group: entries that share `conventionGroup` are one law under different\n * conventions (the two Compton wavelengths differ by 2π), so a formula that\n * agrees with one of them has matched that convention. The other difference\n * is still printed. A formula that matches none of a group still fails.\n * @internal\n */\nexport function canonicalCheckFailed(\n comparisons: readonly { readonly id: string; readonly kind: string }[],\n): boolean {\n const hard = comparisons.filter((c) => c.kind === 'factor' || c.kind === 'form');\n if (hard.length === 0) return false;\n const agreedGroups = new Set(\n comparisons.filter((c) => c.kind === 'agrees').map((c) => canonicalById(c.id)?.conventionGroup).filter((g) => g !== undefined),\n );\n return !hard.every((c) => {\n const group = canonicalById(c.id)?.conventionGroup;\n return group !== undefined && agreedGroups.has(group);\n });\n}\n\n/** One line per convention note the listed entries carry; a note two entries share prints once. @internal */\nexport function conventionLines(ids: readonly string[]): string[] {\n const lines: string[] = [];\n for (const id of ids) {\n const note = canonicalById(id)?.conventionNote;\n if (note === undefined) continue;\n const line = `convention: ${note}`;\n if (!lines.includes(line)) lines.push(line);\n }\n return lines;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"determination.js","sourceRoot":"","sources":["../../src/cli/determination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBhD,+CAA+C;AAC/C,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrE,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS;YACzB,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,cAAc,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"determination.js","sourceRoot":"","sources":["../../src/cli/determination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBhD,+CAA+C;AAC/C,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrE,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS;YACzB,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,cAAc,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACzD,CAAC","sourcesContent":["/**\n * One exit for a result the user asked to have determined.\n *\n * Derive and map used to decide separately, and both treated \"not\n * established\" as success. A canonical agreement is a check that passed.\n * A check that ran and failed, a non-unique monomial, and a catalog\n * target whose dimension was computed through an unresolved name are\n * exit 3. A target that was not a bound catalog name, with no comparison,\n * stays exit 0.\n *\n * @module cli/determination\n * @internal\n */\n\nimport { EXIT_CHECK_FAILED } from './errors.js';\n\ninterface DeterminationInput {\n /** The user named a bound catalog target, or asked derive for a monomial. */\n readonly asked: boolean;\n /** A canonical comparison agreed, including when some other name has no catalog dimension. */\n readonly agrees: boolean;\n /** A check ran on resolved names and failed, or a canonical comparison is a mismatch. */\n readonly checkFailed: boolean;\n /** The governing set does not determine one monomial. */\n readonly notUnique: boolean;\n /** Names filled in rather than resolved. Empty when the command did not look any up. */\n readonly unresolved: readonly string[];\n}\n\nexport interface Determination {\n readonly exit: 0 | typeof EXIT_CHECK_FAILED;\n readonly report: 'established' | 'nothing-checked' | 'check-failed' | 'not-established';\n /** Why a determination was not established. Empty otherwise. */\n readonly gap: string;\n}\n\n/** The exit derive and map share. @internal */\nexport function classifyDetermination(input: DeterminationInput): Determination {\n if (input.agrees) return { exit: 0, report: 'established', gap: '' };\n if (input.checkFailed) return { exit: EXIT_CHECK_FAILED, report: 'check-failed', gap: '' };\n const unresolved = [...new Set(input.unresolved)];\n if (input.asked && (input.notUnique || unresolved.length > 0)) {\n const gap = input.notUnique\n ? 'the monomial is not unique'\n : `unresolved ${unresolved.map((n) => `'${n}'`).join(', ')}`;\n return { exit: EXIT_CHECK_FAILED, report: 'not-established', gap };\n }\n if (input.asked) return { exit: 0, report: 'established', gap: '' };\n return { exit: 0, report: 'nothing-checked', gap: '' };\n}\n"]}
|
package/dist/cli/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,uGAAuG;AACvG,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,uGAAuG;AACvG,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC","sourcesContent":["/**\n * Typed error classes and exit codes for the UPT CLI.\n *\n * `UsageError` signals a malformed invocation (bad flags, missing values,\n * unknown flags) — callers map it to exit code 2. `CliError` signals a\n * runtime failure within an otherwise well-formed invocation — exit code 1.\n * `EXIT_CHECK_FAILED` (3) is returned, not thrown: the command ran, and its\n * check came out negative.\n */\n\n/** A malformed invocation: bad flags, missing values, unknown flags. The CLI exits 2. */\nexport class UsageError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'UsageError';\n }\n}\n\n/** A runtime failure inside a well-formed invocation, such as an unknown model id. The CLI exits 1. */\nexport class CliError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CliError';\n }\n}\n\n/**\n * Exit code of a command that ran and whose CHECK came out negative: a\n * dimension mismatch, a formula that differs from the canonical one, a regime\n * or horizon violated on a path (persona finding F2; 0.47.0). Such a command\n * used to exit 0, so a script could not tell a failed check from a passed one.\n * A path or regime UNKNOWN, where a coordinate was not supplied, is not a\n * failure and exits 0. A map equation whose catalog target was compared using\n * an unresolved name exits 3 and does not quote that placeholder dimension,\n * unless a canonical comparison agreed. A derive that is not a unique monomial\n * exits 3. An unbound map target, where nothing was compared, stays 0.\n */\nexport const EXIT_CHECK_FAILED = 3;\n"]}
|
|
@@ -4,6 +4,17 @@
|
|
|
4
4
|
* @module cli/euler-guard
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
import { UsageError } from './errors.js';
|
|
8
|
+
/**
|
|
9
|
+
* A usage error from the formula parser or its evaluation, tagged once with
|
|
10
|
+
* the parser that read it. The tag is added here, at construction, so a
|
|
11
|
+
* message is never inspected for an earlier tag: each throw site builds it
|
|
12
|
+
* from the parser's own message.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare class FormulaUsageError extends UsageError {
|
|
16
|
+
readonly detail: string;
|
|
17
|
+
readonly parser: 'mathts' | 'builtin';
|
|
18
|
+
constructor(detail: string, parser: 'mathts' | 'builtin');
|
|
19
|
+
}
|
|
9
20
|
//# sourceMappingURL=euler-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"euler-guard.d.ts","sourceRoot":"","sources":["../../src/cli/euler-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"euler-guard.d.ts","sourceRoot":"","sources":["../../src/cli/euler-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAE7C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS;IAFvC,YACW,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,GAAG,SAAS,EAItC;CACF"}
|
package/dist/cli/euler-guard.js
CHANGED
|
@@ -4,8 +4,22 @@
|
|
|
4
4
|
* @module cli/euler-guard
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import { UsageError } from './errors.js';
|
|
8
|
+
/**
|
|
9
|
+
* A usage error from the formula parser or its evaluation, tagged once with
|
|
10
|
+
* the parser that read it. The tag is added here, at construction, so a
|
|
11
|
+
* message is never inspected for an earlier tag: each throw site builds it
|
|
12
|
+
* from the parser's own message.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export class FormulaUsageError extends UsageError {
|
|
16
|
+
detail;
|
|
17
|
+
parser;
|
|
18
|
+
constructor(detail, parser) {
|
|
19
|
+
super(`${detail} (formula parser: ${parser})`);
|
|
20
|
+
this.detail = detail;
|
|
21
|
+
this.parser = parser;
|
|
22
|
+
this.name = 'FormulaUsageError';
|
|
23
|
+
}
|
|
10
24
|
}
|
|
11
25
|
//# sourceMappingURL=euler-guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"euler-guard.js","sourceRoot":"","sources":["../../src/cli/euler-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"euler-guard.js","sourceRoot":"","sources":["../../src/cli/euler-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAEpC,MAAM;IACN,MAAM;IAFjB,YACW,MAAc,EACd,MAA4B;QAErC,KAAK,CAAC,GAAG,MAAM,qBAAqB,MAAM,GAAG,CAAC,CAAC;sBAHtC,MAAM;sBACN,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF","sourcesContent":["/**\n * Name the active formula parser on an error a script can read.\n *\n * @module cli/euler-guard\n * @internal\n */\nimport { UsageError } from './errors.js';\n\n/**\n * A usage error from the formula parser or its evaluation, tagged once with\n * the parser that read it. The tag is added here, at construction, so a\n * message is never inspected for an earlier tag: each throw site builds it\n * from the parser's own message.\n * @internal\n */\nexport class FormulaUsageError extends UsageError {\n constructor(\n readonly detail: string,\n readonly parser: 'mathts' | 'builtin',\n ) {\n super(`${detail} (formula parser: ${parser})`);\n this.name = 'FormulaUsageError';\n }\n}\n\n"]}
|
|
@@ -8,16 +8,11 @@
|
|
|
8
8
|
* @module cli/eval-numbers
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
import type
|
|
12
|
-
/** ħ in eval is the exact quotient H_SI/(2π). */
|
|
13
|
-
export declare const HBAR_TRUNCATION_NOTE: string;
|
|
11
|
+
import { type UnitMode } from '../dimensional/natural-units.js';
|
|
14
12
|
/**
|
|
15
|
-
* Registered constants an eval may omit
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* proton mass, `N_A` is the Avogadro constant, and `F` is the Faraday
|
|
19
|
-
* constant `N_A * e`. Bare `sigma` is not an alias of `sigma_sb`. Explicit
|
|
20
|
-
* `name=` wins over these.
|
|
13
|
+
* Registered constants an eval may omit: every spelling of the constant
|
|
14
|
+
* registry, plus `pi` and `tau`. A hyphenated spelling is not an identifier
|
|
15
|
+
* the parser can read and is left out. Explicit `name=` wins over these.
|
|
21
16
|
*
|
|
22
17
|
* `2pi`, `4pi` and `8pi` are in the scope. The MathTS parser reads those
|
|
23
18
|
* spellings as n·pi before the scope is consulted. The scope values match
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-numbers.d.ts","sourceRoot":"","sources":["../../src/cli/eval-numbers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"eval-numbers.d.ts","sourceRoot":"","sources":["../../src/cli/eval-numbers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE1F;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQlE"}
|
package/dist/cli/eval-numbers.js
CHANGED
|
@@ -8,20 +8,12 @@
|
|
|
8
8
|
* @module cli/eval-numbers
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { MU0_SI } from '../dimensional/formula-names.js';
|
|
14
|
-
import { CONSTANTS } from '../dimensional/symbolic-constants.js';
|
|
15
|
-
/** ħ in eval is the exact quotient H_SI/(2π). */
|
|
16
|
-
export const HBAR_TRUNCATION_NOTE = 'note: hbar is HBAR_SI = H_SI/(2π), the exact reduced Planck constant. ' +
|
|
17
|
-
'The CODATA display 1.054571817e-34 is that quotient truncated (relative difference 6.127e-10).';
|
|
11
|
+
import { constantScope } from '../dimensional/symbolic-constants.js';
|
|
12
|
+
import { naturalConstantOverrides } from '../dimensional/natural-units.js';
|
|
18
13
|
/**
|
|
19
|
-
* Registered constants an eval may omit
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* proton mass, `N_A` is the Avogadro constant, and `F` is the Faraday
|
|
23
|
-
* constant `N_A * e`. Bare `sigma` is not an alias of `sigma_sb`. Explicit
|
|
24
|
-
* `name=` wins over these.
|
|
14
|
+
* Registered constants an eval may omit: every spelling of the constant
|
|
15
|
+
* registry, plus `pi` and `tau`. A hyphenated spelling is not an identifier
|
|
16
|
+
* the parser can read and is left out. Explicit `name=` wins over these.
|
|
25
17
|
*
|
|
26
18
|
* `2pi`, `4pi` and `8pi` are in the scope. The MathTS parser reads those
|
|
27
19
|
* spellings as n·pi before the scope is consulted. The scope values match
|
|
@@ -30,35 +22,13 @@ export const HBAR_TRUNCATION_NOTE = 'note: hbar is HBAR_SI = H_SI/(2π), the exa
|
|
|
30
22
|
*/
|
|
31
23
|
export function codataScope(mode) {
|
|
32
24
|
const scope = {};
|
|
33
|
-
for (const [name,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
scope.m_p = M_PROTON_SI;
|
|
38
|
-
scope.m_proton = M_PROTON_SI;
|
|
39
|
-
scope.N_A = N_A_SI;
|
|
40
|
-
scope.F = FARADAY_SI;
|
|
41
|
-
scope.M_sun = M_SUN_SI;
|
|
42
|
-
for (const { names } of CONSTANT_SPELLINGS) {
|
|
43
|
-
const canonical = names[0];
|
|
44
|
-
const fromRegistry = CONSTANTS[canonical]?.value;
|
|
45
|
-
const value = fromRegistry ?? (canonical === 'mu_0' ? MU0_SI : undefined);
|
|
46
|
-
if (value === undefined)
|
|
47
|
-
continue;
|
|
48
|
-
for (const alias of names) {
|
|
49
|
-
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(alias))
|
|
50
|
-
continue;
|
|
51
|
-
if (scope[alias] === undefined)
|
|
52
|
-
scope[alias] = value;
|
|
53
|
-
}
|
|
25
|
+
for (const [name, value] of Object.entries(constantScope())) {
|
|
26
|
+
// A hyphenated spelling (`wien-constant`) is not a formula identifier; `8pi` is read as 8·pi.
|
|
27
|
+
if (!name.includes('-'))
|
|
28
|
+
scope[name] = value;
|
|
54
29
|
}
|
|
55
|
-
if (mode !== 'si')
|
|
56
|
-
scope
|
|
57
|
-
scope.hbar = 1;
|
|
58
|
-
scope.h = 2 * Math.PI;
|
|
59
|
-
}
|
|
60
|
-
if (mode === 'geometrized')
|
|
61
|
-
scope.G = 1;
|
|
30
|
+
if (mode !== 'si')
|
|
31
|
+
Object.assign(scope, naturalConstantOverrides(mode));
|
|
62
32
|
return scope;
|
|
63
33
|
}
|
|
64
34
|
//# sourceMappingURL=eval-numbers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-numbers.js","sourceRoot":"","sources":["../../src/cli/eval-numbers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"eval-numbers.js","sourceRoot":"","sources":["../../src/cli/eval-numbers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAiB,MAAM,iCAAiC,CAAC;AAE1F;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;QAC5D,8FAA8F;QAC9F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Numbers `upt eval` understands: a bare numeral, a numeral with a unit, and\n * the CODATA names a script should not have to paste.\n *\n * Bare `e` is the elementary charge, taken from the constant registry.\n * Euler's number is `exp(x)`. `E` is energy and is not filled in.\n *\n * @module cli/eval-numbers\n * @internal\n */\n\nimport { constantScope } from '../dimensional/symbolic-constants.js';\nimport { naturalConstantOverrides, type UnitMode } from '../dimensional/natural-units.js';\n\n/**\n * Registered constants an eval may omit: every spelling of the constant\n * registry, plus `pi` and `tau`. A hyphenated spelling is not an identifier\n * the parser can read and is left out. Explicit `name=` wins over these.\n *\n * `2pi`, `4pi` and `8pi` are in the scope. The MathTS parser reads those\n * spellings as n·pi before the scope is consulted. The scope values match\n * that reading.\n * @internal\n */\nexport function codataScope(mode: UnitMode): Record<string, number> {\n const scope: Record<string, number> = {};\n for (const [name, value] of Object.entries(constantScope())) {\n // A hyphenated spelling (`wien-constant`) is not a formula identifier; `8pi` is read as 8·pi.\n if (!name.includes('-')) scope[name] = value;\n }\n if (mode !== 'si') Object.assign(scope, naturalConstantOverrides(mode));\n return scope;\n}\n\n"]}
|
package/dist/cli/expr-print.d.ts
CHANGED
|
@@ -17,9 +17,36 @@ export declare const printEval: (n: ExprNode) => string | null;
|
|
|
17
17
|
export declare function latexName(name: string): string;
|
|
18
18
|
/** The AST in LaTeX; `null` for a node other than `symbol` or `op`. */
|
|
19
19
|
export declare function printLatex(n: ExprNode): string | null;
|
|
20
|
+
/** One coherent SI unit of the table: a scale of exactly 1 and a dimension. */
|
|
21
|
+
export interface CoherentUnit {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly dim: Dimension;
|
|
24
|
+
}
|
|
20
25
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
26
|
+
* The coherent named SI units of a unit table (`unitRows()`): scale exactly 1,
|
|
27
|
+
* not dimensionless, the first spelling the table gives for each dimension
|
|
28
|
+
* (`ohm` before `Ω`). The seven base units are added so a label can mix them.
|
|
29
|
+
* A cycle-counting unit (`Hz`, `rpm`; the table's `cycles` flag) is never a
|
|
30
|
+
* label: a 1/s output may be an angular frequency, and `Hz` would say it
|
|
31
|
+
* counts cycles. Such an output reads `1/s`, which is its dimension.
|
|
23
32
|
*/
|
|
33
|
+
export declare function coherentUnits(rows: ReadonlyMap<string, {
|
|
34
|
+
readonly scale: {
|
|
35
|
+
readonly num: bigint;
|
|
36
|
+
readonly den: bigint;
|
|
37
|
+
readonly irrational: number;
|
|
38
|
+
};
|
|
39
|
+
readonly dim: Dimension;
|
|
40
|
+
readonly cycles?: true;
|
|
41
|
+
}>): CoherentUnit[];
|
|
42
|
+
/**
|
|
43
|
+
* A dimension's label: the one coherent named unit whose dimension it is (`Pa`, `J`, `V`,
|
|
44
|
+
* `ohm`, `T`), else the SI base form (`m/s`, `kg^2*m^4/(s^5*A^2)`). A product of two
|
|
45
|
+
* named units is never chosen: a search over pairs once labelled a velocity `W/N` and a
|
|
46
|
+
* voltage-noise density `J*ohm`, readings that are dimensionally right and physically
|
|
47
|
+
* unreadable. Presentation only: the dimension is the fact, the label is a reading of it.
|
|
48
|
+
*/
|
|
49
|
+
export declare function derivedUnitOf(dim: Dimension, units: readonly CoherentUnit[]): string;
|
|
50
|
+
/** The SI base-unit form of a dimension (`m/s`, `kg*m^2/(s^3*A)`), `1` when dimensionless. */
|
|
24
51
|
export declare function siUnitOf(dim: Dimension): string;
|
|
25
52
|
//# sourceMappingURL=expr-print.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-print.d.ts","sourceRoot":"","sources":["../../src/cli/expr-print.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAUzD,6DAA6D;AAC7D,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKvD,CAAC;AAkCF,eAAO,MAAM,YAAY,MAAO,QAAQ,KAAG,MAAM,GAAG,IAA8B,CAAC;AACnF,eAAO,MAAM,SAAS,MAAO,QAAQ,KAAG,MAAM,GAAG,IAA2B,CAAC;AAe7E,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CA4BrD;
|
|
1
|
+
{"version":3,"file":"expr-print.d.ts","sourceRoot":"","sources":["../../src/cli/expr-print.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAUzD,6DAA6D;AAC7D,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKvD,CAAC;AAkCF,eAAO,MAAM,YAAY,MAAO,QAAQ,KAAG,MAAM,GAAG,IAA8B,CAAC;AACnF,eAAO,MAAM,SAAS,MAAO,QAAQ,KAAG,MAAM,GAAG,IAA2B,CAAC;AAe7E,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CA4BrD;AAoBD,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,CACf,MAAM,EACN;IAAE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAA;CAAE,CACjJ,GACA,YAAY,EAAE,CAgBhB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAKpF;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAQ/C"}
|
package/dist/cli/expr-print.js
CHANGED
|
@@ -104,10 +104,54 @@ const SI_BASE = [
|
|
|
104
104
|
['N', 'mol'],
|
|
105
105
|
['J', 'cd'],
|
|
106
106
|
];
|
|
107
|
+
const DIM_KEYS = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];
|
|
108
|
+
const dimEqual = (a, b) => DIM_KEYS.every((k) => (a[k] ?? 0) === (b[k] ?? 0));
|
|
109
|
+
const dimPow = (a, n) => Object.fromEntries(DIM_KEYS.map((k) => [k, (a[k] ?? 0) * n]));
|
|
110
|
+
const dimMul = (a, b) => Object.fromEntries(DIM_KEYS.map((k) => [k, (a[k] ?? 0) + (b[k] ?? 0)]));
|
|
111
|
+
const isDimensionless = (d) => DIM_KEYS.every((k) => (d[k] ?? 0) === 0);
|
|
107
112
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
113
|
+
* The coherent named SI units of a unit table (`unitRows()`): scale exactly 1,
|
|
114
|
+
* not dimensionless, the first spelling the table gives for each dimension
|
|
115
|
+
* (`ohm` before `Ω`). The seven base units are added so a label can mix them.
|
|
116
|
+
* A cycle-counting unit (`Hz`, `rpm`; the table's `cycles` flag) is never a
|
|
117
|
+
* label: a 1/s output may be an angular frequency, and `Hz` would say it
|
|
118
|
+
* counts cycles. Such an output reads `1/s`, which is its dimension.
|
|
110
119
|
*/
|
|
120
|
+
export function coherentUnits(rows) {
|
|
121
|
+
const out = [];
|
|
122
|
+
const seen = [];
|
|
123
|
+
const add = (name, dim) => {
|
|
124
|
+
if (isDimensionless(dim) || seen.some((d) => dimEqual(d, dim)))
|
|
125
|
+
return;
|
|
126
|
+
seen.push(dim);
|
|
127
|
+
out.push({ name, dim });
|
|
128
|
+
};
|
|
129
|
+
for (const [name, row] of rows) {
|
|
130
|
+
if (row.cycles === true)
|
|
131
|
+
continue;
|
|
132
|
+
if (row.scale.num === 1n && row.scale.den === 1n && row.scale.irrational === 1)
|
|
133
|
+
add(name, row.dim);
|
|
134
|
+
}
|
|
135
|
+
for (const [k, u] of SI_BASE) {
|
|
136
|
+
add(u, Object.fromEntries(DIM_KEYS.map((key) => [key, key === k ? 1 : 0])));
|
|
137
|
+
}
|
|
138
|
+
return out;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* A dimension's label: the one coherent named unit whose dimension it is (`Pa`, `J`, `V`,
|
|
142
|
+
* `ohm`, `T`), else the SI base form (`m/s`, `kg^2*m^4/(s^5*A^2)`). A product of two
|
|
143
|
+
* named units is never chosen: a search over pairs once labelled a velocity `W/N` and a
|
|
144
|
+
* voltage-noise density `J*ohm`, readings that are dimensionally right and physically
|
|
145
|
+
* unreadable. Presentation only: the dimension is the fact, the label is a reading of it.
|
|
146
|
+
*/
|
|
147
|
+
export function derivedUnitOf(dim, units) {
|
|
148
|
+
if (isDimensionless(dim))
|
|
149
|
+
return '1';
|
|
150
|
+
const base = new Set(SI_BASE.map(([, u]) => u));
|
|
151
|
+
const named = units.find((u) => !base.has(u.name) && dimEqual(u.dim, dim));
|
|
152
|
+
return named === undefined ? siUnitOf(dim) : named.name;
|
|
153
|
+
}
|
|
154
|
+
/** The SI base-unit form of a dimension (`m/s`, `kg*m^2/(s^3*A)`), `1` when dimensionless. */
|
|
111
155
|
export function siUnitOf(dim) {
|
|
112
156
|
const factor = (u, e) => (e === 1 ? u : `${u}^${e}`);
|
|
113
157
|
const num = SI_BASE.filter(([k]) => dim[k] > 0).map(([k, u]) => factor(u, dim[k]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-print.js","sourceRoot":"","sources":["../../src/cli/expr-print.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expr-print.js","sourceRoot":"","sources":["../../src/cli/expr-print.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The three printed forms of a scalar composed AST (`upt symbolic`, audit F12 and I10):\n *\n * - DISPLAY: plain text for the reader, `·` for a product.\n * - EVAL: a formula `upt eval` parses, every named factor spelled so it evaluates (`8pi` → `(8*pi)`).\n * - LATEX: `\\frac` for every division, `\\cdot` for a product, braces for every exponent.\n *\n * Only `symbol` and `op` nodes are printed; any other node gives `null`, never a guess.\n */\nimport type { ExprNode } from '../dimensional/validator.js';\nimport type { Dimension } from '../dimensional/types.js';\n\ninterface PrintStyle {\n readonly times: string;\n readonly divide: string;\n readonly symbol: (name: string) => string;\n}\n\nconst DISPLAY: PrintStyle = { times: '·', divide: ' / ', symbol: (name) => name };\n\n/** Named numeric stubs spelled so `upt eval` parses them. */\nexport const EVAL_STUBS: Readonly<Record<string, string>> = {\n '8pi': '(8*pi)',\n '4pi': '(4*pi)',\n '2pi': '(2*pi)',\n ln2: 'ln(2)',\n};\nconst EVAL: PrintStyle = { times: '*', divide: '/', symbol: (name) => EVAL_STUBS[name] ?? name };\n\n/**\n * Precedence-aware printing. Every divisor that is not a bare power is\n * grouped, so `a / (b·c)` never prints as `a / b·c` (audit F12); a quotient\n * inside a product or as a dividend is grouped too, for the reader.\n */\nfunction printInfix(n: ExprNode, style: PrintStyle): string | null {\n if (n.kind === 'symbol') return style.symbol(n.name);\n if (n.kind !== 'op') return null;\n const parts: string[] = [];\n for (let i = 0; i < n.args.length; i++) {\n const a = n.args[i]!;\n const s = printInfix(a, style);\n if (s === null) return null;\n const aOp = a.kind === 'op' ? a.op : null;\n const group =\n aOp !== null &&\n (n.op === '^'\n ? true\n : n.op === '/'\n ? i === 0\n ? aOp === '+' || aOp === '-' || aOp === '/'\n : aOp !== '^'\n : n.op === '*'\n ? aOp === '+' || aOp === '-' || aOp === '/'\n : n.op === '-' && i > 0 && (aOp === '+' || aOp === '-'));\n parts.push(group ? `(${s})` : s);\n }\n const sep = n.op === '*' ? style.times : n.op === '/' ? style.divide : n.op === '^' ? '^' : ` ${n.op} `;\n return parts.join(sep);\n}\n\nexport const printDisplay = (n: ExprNode): string | null => printInfix(n, DISPLAY);\nexport const printEval = (n: ExprNode): string | null => printInfix(n, EVAL);\n\n/** LaTeX for the constant and stub names; any other name is spelled by {@link latexName}. */\nconst LATEX_NAMES: Readonly<Record<string, string>> = {\n hbar: '\\\\hbar',\n k_B: 'k_{\\\\mathrm{B}}',\n '8pi': '8\\\\pi',\n '4pi': '4\\\\pi',\n '2pi': '2\\\\pi',\n ln2: '\\\\ln 2',\n pi: '\\\\pi',\n epsilon_0: '\\\\varepsilon_{0}',\n sigma_sb: '\\\\sigma_{\\\\mathrm{SB}}',\n};\n\n/** A name in LaTeX: one letter or a number as is, a hyphenated name as text, otherwise upright. */\nexport function latexName(name: string): string {\n const known = LATEX_NAMES[name];\n if (known !== undefined) return known;\n if (/^[A-Za-z]$/.test(name) || Number.isFinite(Number(name))) return name;\n return name.includes('-') ? `\\\\text{${name}}` : `\\\\mathrm{${name.replace(/_/g, '\\\\_')}}`;\n}\n\n/** The AST in LaTeX; `null` for a node other than `symbol` or `op`. */\nexport function printLatex(n: ExprNode): string | null {\n if (n.kind === 'symbol') return latexName(n.name);\n if (n.kind !== 'op') return null;\n const args: string[] = [];\n for (const a of n.args) {\n const s = printLatex(a);\n if (s === null) return null;\n args.push(s);\n }\n const isOp = (a: ExprNode, ...ops: string[]): boolean => a.kind === 'op' && ops.includes(a.op);\n const paren = (s: string): string => `\\\\left(${s}\\\\right)`;\n switch (n.op) {\n case '/':\n return args.slice(1).reduce((num, den) => `\\\\frac{${num}}{${den}}`, args[0]!);\n case '*':\n return args.map((s, i) => (isOp(n.args[i]!, '+', '-') ? paren(s) : s)).join(' \\\\cdot ');\n case '^': {\n // The validator's arity guard makes `^` binary; a base that is not a symbol is grouped.\n const base = n.args[0]!.kind === 'symbol' ? args[0]! : paren(args[0]!);\n return `{${base}}^{${args[1]}}`;\n }\n case '+':\n return args.join(' + ');\n case '-':\n return args.length === 1\n ? `-${isOp(n.args[0]!, '+', '-') ? paren(args[0]!) : args[0]}`\n : args.map((s, i) => (i > 0 && isOp(n.args[i]!, '+', '-') ? paren(s) : s)).join(' - ');\n }\n}\n\nconst SI_BASE: readonly (readonly [keyof Dimension, string])[] = [\n ['M', 'kg'],\n ['L', 'm'],\n ['T', 's'],\n ['I', 'A'],\n ['Theta', 'K'],\n ['N', 'mol'],\n ['J', 'cd'],\n];\n\nconst DIM_KEYS: readonly (keyof Dimension)[] = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];\nconst dimEqual = (a: Dimension, b: Dimension): boolean => DIM_KEYS.every((k) => (a[k] ?? 0) === (b[k] ?? 0));\nconst dimPow = (a: Dimension, n: number): Dimension =>\n Object.fromEntries(DIM_KEYS.map((k) => [k, (a[k] ?? 0) * n])) as unknown as Dimension;\nconst dimMul = (a: Dimension, b: Dimension): Dimension =>\n Object.fromEntries(DIM_KEYS.map((k) => [k, (a[k] ?? 0) + (b[k] ?? 0)])) as unknown as Dimension;\nconst isDimensionless = (d: Dimension): boolean => DIM_KEYS.every((k) => (d[k] ?? 0) === 0);\n\n/** One coherent SI unit of the table: a scale of exactly 1 and a dimension. */\nexport interface CoherentUnit {\n readonly name: string;\n readonly dim: Dimension;\n}\n\n/**\n * The coherent named SI units of a unit table (`unitRows()`): scale exactly 1,\n * not dimensionless, the first spelling the table gives for each dimension\n * (`ohm` before `Ω`). The seven base units are added so a label can mix them.\n * A cycle-counting unit (`Hz`, `rpm`; the table's `cycles` flag) is never a\n * label: a 1/s output may be an angular frequency, and `Hz` would say it\n * counts cycles. Such an output reads `1/s`, which is its dimension.\n */\nexport function coherentUnits(\n rows: ReadonlyMap<\n string,\n { readonly scale: { readonly num: bigint; readonly den: bigint; readonly irrational: number }; readonly dim: Dimension; readonly cycles?: true }\n >,\n): CoherentUnit[] {\n const out: CoherentUnit[] = [];\n const seen: Dimension[] = [];\n const add = (name: string, dim: Dimension): void => {\n if (isDimensionless(dim) || seen.some((d) => dimEqual(d, dim))) return;\n seen.push(dim);\n out.push({ name, dim });\n };\n for (const [name, row] of rows) {\n if (row.cycles === true) continue;\n if (row.scale.num === 1n && row.scale.den === 1n && row.scale.irrational === 1) add(name, row.dim);\n }\n for (const [k, u] of SI_BASE) {\n add(u, Object.fromEntries(DIM_KEYS.map((key) => [key, key === k ? 1 : 0])) as unknown as Dimension);\n }\n return out;\n}\n\n/**\n * A dimension's label: the one coherent named unit whose dimension it is (`Pa`, `J`, `V`,\n * `ohm`, `T`), else the SI base form (`m/s`, `kg^2*m^4/(s^5*A^2)`). A product of two\n * named units is never chosen: a search over pairs once labelled a velocity `W/N` and a\n * voltage-noise density `J*ohm`, readings that are dimensionally right and physically\n * unreadable. Presentation only: the dimension is the fact, the label is a reading of it.\n */\nexport function derivedUnitOf(dim: Dimension, units: readonly CoherentUnit[]): string {\n if (isDimensionless(dim)) return '1';\n const base = new Set(SI_BASE.map(([, u]) => u));\n const named = units.find((u) => !base.has(u.name) && dimEqual(u.dim, dim));\n return named === undefined ? siUnitOf(dim) : named.name;\n}\n\n/** The SI base-unit form of a dimension (`m/s`, `kg*m^2/(s^3*A)`), `1` when dimensionless. */\nexport function siUnitOf(dim: Dimension): string {\n const factor = (u: string, e: number): string => (e === 1 ? u : `${u}^${e}`);\n const num = SI_BASE.filter(([k]) => dim[k] > 0).map(([k, u]) => factor(u, dim[k]));\n const den = SI_BASE.filter(([k]) => dim[k] < 0).map(([k, u]) => factor(u, -dim[k]));\n if (num.length === 0 && den.length === 0) return '1';\n if (num.length === 0) return SI_BASE.filter(([k]) => dim[k] < 0).map(([k, u]) => factor(u, dim[k])).join('*');\n if (den.length === 0) return num.join('*');\n return `${num.join('*')}/${den.length === 1 ? den[0] : `(${den.join('*')})`}`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flag-help.js","sourceRoot":"","sources":["../../src/cli/flag-help.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flag-help.js","sourceRoot":"","sources":["../../src/cli/flag-help.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Flag text for `upt help` and for `docs/CLI.md`.\n *\n * The parser reads `FlagSpec` (`args.ts`). This module renders the same\n * objects. A command's help string is `commandHelp(prose, flags)`, so the\n * Flags section cannot list a different set than the parser accepts.\n */\n\nimport type { FlagSpec } from './args.js';\n\n/** `--json` on a data-bearing command. The same object is the global option. */\nexport const JSON_FLAG: FlagSpec = {\n name: '--json',\n valueStyle: 'none',\n description: 'Write a JSON envelope to stdout instead of the text report.',\n};\n\n/**\n * `--source=VALUE` for a graph command.\n * `detail` is the sentence; `defaultValue` is what the command uses when the flag is absent.\n */\nexport function sourceFlag(defaultValue: string, detail: string): FlagSpec {\n return {\n name: '--source',\n valueStyle: 'attached',\n description: detail,\n defaultValue,\n };\n}\n\n/** Dispatcher options. `main.ts` accepts these before the command name. */\nexport const GLOBAL_FLAGS: readonly FlagSpec[] = [\n {\n name: '--help',\n valueStyle: 'none',\n description:\n 'Show this command list, or `upt help <command>` for one command. `-h` is the same. `upt <command> --help` prints that command.',\n },\n {\n name: '--version',\n valueStyle: 'none',\n description: 'Print the package version as one semver line and exit. `-v` and `upt version` are the same. Neither takes --json.',\n },\n JSON_FLAG,\n {\n name: '--record',\n valueStyle: 'attached',\n description:\n 'Run the following command unchanged and append one JSONL entry to FILE: arguments, stdout, stderr, exit code, versions, and hashes. A failed run is recorded too.',\n },\n {\n name: '--replay',\n valueStyle: 'attached',\n description:\n 'Re-run every entry of FILE and report reproduced, differs, or not replayable. Takes no command. `--json` after it selects the JSON report. Exit 0 when every entry is reproduced and unchanged, 3 when any differs, 1 otherwise.',\n },\n {\n name: '--show-record',\n valueStyle: 'attached',\n description: 'Print FILE as a transcript and run nothing. Takes no command. `--json` after it selects the JSON report.',\n },\n];\n\nexport const BUILTIN_VERBS: readonly {\n name: string;\n summary: string;\n example: string;\n group: 'utilities';\n}[] = [\n {\n name: 'help',\n summary: 'Show every command, or one command\\'s usage and flags. `upt help statuses` defines the status words.',\n example: 'upt help eval',\n group: 'utilities',\n },\n {\n name: 'version',\n summary: 'Print the installed package version as one semver line.',\n example: 'upt version',\n group: 'utilities',\n },\n];\n\nexport function flagHeading(flag: FlagSpec): string {\n const repeat = flag.repeatable ? ' (repeatable)' : '';\n switch (flag.valueStyle) {\n case 'none':\n return `${flag.name}${repeat}`;\n case 'attached':\n return `${flag.name}=VALUE${repeat}`;\n case 'next':\n return `${flag.name} VALUE${repeat}`;\n case 'either':\n return `${flag.name}=VALUE${repeat} (or ${flag.name} VALUE)`;\n default: {\n const _never: never = flag.valueStyle;\n return _never;\n }\n }\n}\n\n/** The Flags block a command's help string ends with. Empty when the command takes no flags. */\nexport function renderFlagCatalog(flags: readonly FlagSpec[], heading = 'Flags:'): string {\n if (flags.length === 0) return '';\n const lines = [heading];\n for (const flag of flags) {\n if (flag.description === undefined || flag.description.trim() === '') {\n throw new Error(`flag ${flag.name} has no description`);\n }\n lines.push(` ${flagHeading(flag)}`);\n const def = flag.defaultValue === undefined ? '' : ` Default: ${flag.defaultValue}.`;\n lines.push(` ${flag.description}${def}`);\n }\n return lines.join('\\n');\n}\n\n/** Prose plus the flag catalog. The catalog is the spec; the prose is the narrative. */\nexport function commandHelp(prose: string, flags: readonly FlagSpec[]): string {\n const catalog = renderFlagCatalog(flags);\n return catalog === '' ? prose : `${prose}\\n${catalog}`;\n}\n\n/**\n * Flags whose description is missing from `help`.\n * A command that forgot `commandHelp` fails here. A description that is present does not.\n */\nexport function undocumentedFlags(help: string, flags: readonly FlagSpec[]): string[] {\n return flags.filter((flag) => flag.description === undefined || !help.includes(flag.description)).map((flag) => flag.name);\n}\n"]}
|
package/dist/cli/graphs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphs.js","sourceRoot":"","sources":["../../src/cli/graphs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,UAAU,YAAY,CAC1B,GAAsB,EACtB,KAA0B;IAE1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC7B,KAAK,EAAE,YAAY,GAAG,CAAC,gBAAgB,CAAC,MAAM,UAAU;gBACxD,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC;gBAC/B,KAAK,EAAE,wDAAwD;gBAC/D,MAAM,EAAE,WAAW;aACpB,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC;gBACrD,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,MAAM;aACf,CAAC;QACJ;YACE,MAAM,IAAI,QAAQ,CAAC,0BAA0B,GAAG,0CAA0C,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAaD,8GAA8G;AAC9G,MAAM,UAAU,iBAAiB,CAC/B,GAAsB,EACtB,IAAiE;IAEjE,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;QACnC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QACxD,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,UAAU,CAAC,KAA4B;IACrD,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC/G,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,CAA0C;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,WAAW,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;AAC7G,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,QAAQ,CAAC,CAAmC;IAC1D,OAAO,2DAA2D,CAAC,CAAC,gBAAgB,0CAA0C,CAAC,CAAC,KAAK,gBAAgB,CAAC;AACxJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"graphs.js","sourceRoot":"","sources":["../../src/cli/graphs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,UAAU,YAAY,CAC1B,GAAsB,EACtB,KAA0B;IAE1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC7B,KAAK,EAAE,YAAY,GAAG,CAAC,gBAAgB,CAAC,MAAM,UAAU;gBACxD,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC;gBAC/B,KAAK,EAAE,wDAAwD;gBAC/D,MAAM,EAAE,WAAW;aACpB,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC;gBACrD,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,MAAM;aACf,CAAC;QACJ;YACE,MAAM,IAAI,QAAQ,CAAC,0BAA0B,GAAG,0CAA0C,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAaD,8GAA8G;AAC9G,MAAM,UAAU,iBAAiB,CAC/B,GAAsB,EACtB,IAAiE;IAEjE,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;QACnC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QACxD,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,UAAU,CAAC,KAA4B;IACrD,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC/G,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,CAA0C;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,WAAW,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;AAC7G,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,QAAQ,CAAC,CAAmC;IAC1D,OAAO,2DAA2D,CAAC,CAAC,gBAAgB,0CAA0C,CAAC,CAAC,KAAK,gBAAgB,CAAC;AACxJ,CAAC","sourcesContent":["/**\n * Shared `--source=catalog|canonical|both` graph resolution — replaces\n * `bin/upt.mjs`'s `resolveGraph` (lines 53-67). Every analysis command\n * (`discover` / `candidates` / `map` / ...) that accepts `--source` calls\n * this once to get the graph + a human-readable label for its banner.\n */\n\nimport type { BridgeEdge } from '../composition/edge.js';\nimport type { ParsedArgs } from './args.js';\nimport type { CommandCtx } from './command.js';\nimport { CliError } from './errors.js';\n\nexport type SourceName = 'catalog' | 'canonical' | 'both';\n\nexport function resolveGraph(\n api: CommandCtx['api'],\n flags: ParsedArgs['flags']\n): { graph: BridgeEdge[]; label: string; source: SourceName } {\n const values = flags.get('source');\n const src = values && values.length > 0 ? values[values.length - 1] : 'catalog';\n\n switch (src) {\n case 'catalog':\n return {\n graph: [...api.CATALOG_GRAPH],\n label: `catalog (${api.BRIDGE_EQUATIONS.length}-bridge)`,\n source: 'catalog',\n };\n case 'canonical':\n return {\n graph: [...api.CANONICAL_GRAPH],\n label: 'canonical (standard-physics L-layer, bridges excluded)',\n source: 'canonical',\n };\n case 'both':\n return {\n graph: [...api.CATALOG_GRAPH, ...api.CANONICAL_GRAPH],\n label: 'catalog + canonical',\n source: 'both',\n };\n default:\n throw new CliError(`upt: unknown --source='${src}' (expected: catalog | canonical | both)`);\n }\n}\n\n/**\n * What a result is anchored to (audit I3), printed beside the source in text and carried as the\n * envelope's `anchor` in `--json`. Two different anchors exist and are never merged:\n * `groundTruth` is the discovery funnel's known values (`--anchor=k=v`, default one solar mass);\n * `core` is the set of established-confidence edges that \"anchored\" means in a linkage view.\n */\nexport interface AnchorScope {\n readonly groundTruth?: { readonly values: Readonly<Record<string, number>>; readonly isDefault: boolean };\n readonly core?: { readonly establishedEdges: number; readonly edges: number };\n}\n\n/** The discovery ground truth a result is relative to: the `--anchor` values when given, else the default. */\nexport function groundTruthAnchor(\n api: CommandCtx['api'],\n opts: { readonly groundTruth?: Readonly<Record<string, number>> },\n): NonNullable<AnchorScope['groundTruth']> {\n return opts.groundTruth === undefined\n ? { values: { ...api.ANCHOR_DEFAULT }, isDefault: true }\n : { values: { ...opts.groundTruth }, isDefault: false };\n}\n\n/** The established core of `graph`: its established-confidence edge count beside its edge count. */\nexport function coreAnchor(graph: readonly BridgeEdge[]): NonNullable<AnchorScope['core']> {\n return { establishedEdges: graph.filter((e) => e.confidence === 'established').length, edges: graph.length };\n}\n\n/** The text line naming the ground-truth anchor and whether it is the default. */\nexport function groundTruthLine(a: NonNullable<AnchorScope['groundTruth']>): string {\n const values = Object.entries(a.values).map(([k, v]) => `${k}=${v}`).join(', ');\n return `anchor: ${values}${a.isDefault ? ' (the default; --anchor=k=v replaces it)' : ' (from --anchor)'}`;\n}\n\n/** The text line stating what \"anchored\" means for a graph's established core. */\nexport function coreLine(a: NonNullable<AnchorScope['core']>): string {\n return `anchored core: the clusters holding at least one of the ${a.establishedEdges} established-confidence edge(s) of the ${a.edges} in this graph`;\n}"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The defaults and limits a command's help states, read from the library constants that hold
|
|
3
|
+
* them. A flag's help once said "default 5000" while the library held 5000 in its own table:
|
|
4
|
+
* two copies of one number, free to part. A command cannot import a library value, so the
|
|
5
|
+
* values it prints come through this module, as `closed-form-range.ts` does for the evaluators.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/library-defaults
|
|
8
|
+
*/
|
|
9
|
+
/** `upt discover --max-orders`, as the help prints it. @internal */
|
|
10
|
+
export declare const DISCOVER_MAX_ORDERS_DEFAULT: string;
|
|
11
|
+
/** `upt probe --budget-ms`, as the help prints it. @internal */
|
|
12
|
+
export declare const PROBE_BUDGET_MS_DEFAULT: string;
|
|
13
|
+
/** `upt probe --holdout-tol`, as the help prints it. @internal */
|
|
14
|
+
export declare const PROBE_HOLDOUT_TOL_DEFAULT: string;
|
|
15
|
+
/** `upt probe study --alpha` when the file states none, as the help prints it. @internal */
|
|
16
|
+
export declare const PROBE_STUDY_ALPHA_DEFAULT: string;
|
|
17
|
+
/** The most powers a study file's `correction` may list in all. @internal */
|
|
18
|
+
export declare const PROBE_CORRECTION_TERMS_MAX = 6;
|
|
19
|
+
//# sourceMappingURL=library-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-defaults.d.ts","sourceRoot":"","sources":["../../src/cli/library-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,QAA0C,CAAC;AAEnF,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,QAA+C,CAAC;AAEpF,kEAAkE;AAClE,eAAO,MAAM,yBAAyB,QAA8B,CAAC;AAErE,4FAA4F;AAC5F,eAAO,MAAM,yBAAyB,QAAwB,CAAC;AAE/D,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,IAAuB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The defaults and limits a command's help states, read from the library constants that hold
|
|
3
|
+
* them. A flag's help once said "default 5000" while the library held 5000 in its own table:
|
|
4
|
+
* two copies of one number, free to part. A command cannot import a library value, so the
|
|
5
|
+
* values it prints come through this module, as `closed-form-range.ts` does for the evaluators.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/library-defaults
|
|
8
|
+
*/
|
|
9
|
+
import { DEFAULT_MAX_ORDERS_OF_MAGNITUDE } from '../composition/discovery.js';
|
|
10
|
+
import { DEFAULT_HOLDOUT_TOL, DEFAULT_SEARCH_BUDGET } from '../composition/probe/types.js';
|
|
11
|
+
import { DEFAULT_ALPHA, MAX_CORRECTION_TERMS } from '../composition/probe/study.js';
|
|
12
|
+
/** `upt discover --max-orders`, as the help prints it. @internal */
|
|
13
|
+
export const DISCOVER_MAX_ORDERS_DEFAULT = String(DEFAULT_MAX_ORDERS_OF_MAGNITUDE);
|
|
14
|
+
/** `upt probe --budget-ms`, as the help prints it. @internal */
|
|
15
|
+
export const PROBE_BUDGET_MS_DEFAULT = String(DEFAULT_SEARCH_BUDGET.maxWallClockMs);
|
|
16
|
+
/** `upt probe --holdout-tol`, as the help prints it. @internal */
|
|
17
|
+
export const PROBE_HOLDOUT_TOL_DEFAULT = String(DEFAULT_HOLDOUT_TOL);
|
|
18
|
+
/** `upt probe study --alpha` when the file states none, as the help prints it. @internal */
|
|
19
|
+
export const PROBE_STUDY_ALPHA_DEFAULT = String(DEFAULT_ALPHA);
|
|
20
|
+
/** The most powers a study file's `correction` may list in all. @internal */
|
|
21
|
+
export const PROBE_CORRECTION_TERMS_MAX = MAX_CORRECTION_TERMS;
|
|
22
|
+
//# sourceMappingURL=library-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-defaults.js","sourceRoot":"","sources":["../../src/cli/library-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAEpF,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAEnF,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;AAEpF,kEAAkE;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAErE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAE/D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAC","sourcesContent":["/**\n * The defaults and limits a command's help states, read from the library constants that hold\n * them. A flag's help once said \"default 5000\" while the library held 5000 in its own table:\n * two copies of one number, free to part. A command cannot import a library value, so the\n * values it prints come through this module, as `closed-form-range.ts` does for the evaluators.\n *\n * @module cli/library-defaults\n */\n\nimport { DEFAULT_MAX_ORDERS_OF_MAGNITUDE } from '../composition/discovery.js';\nimport { DEFAULT_HOLDOUT_TOL, DEFAULT_SEARCH_BUDGET } from '../composition/probe/types.js';\nimport { DEFAULT_ALPHA, MAX_CORRECTION_TERMS } from '../composition/probe/study.js';\n\n/** `upt discover --max-orders`, as the help prints it. @internal */\nexport const DISCOVER_MAX_ORDERS_DEFAULT = String(DEFAULT_MAX_ORDERS_OF_MAGNITUDE);\n\n/** `upt probe --budget-ms`, as the help prints it. @internal */\nexport const PROBE_BUDGET_MS_DEFAULT = String(DEFAULT_SEARCH_BUDGET.maxWallClockMs);\n\n/** `upt probe --holdout-tol`, as the help prints it. @internal */\nexport const PROBE_HOLDOUT_TOL_DEFAULT = String(DEFAULT_HOLDOUT_TOL);\n\n/** `upt probe study --alpha` when the file states none, as the help prints it. @internal */\nexport const PROBE_STUDY_ALPHA_DEFAULT = String(DEFAULT_ALPHA);\n\n/** The most powers a study file's `correction` may list in all. @internal */\nexport const PROBE_CORRECTION_TERMS_MAX = MAX_CORRECTION_TERMS;\n"]}
|
package/dist/cli/main.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import * as api from '../cli-api.js';
|
|
17
17
|
import { UsageError, CliError } from './errors.js';
|
|
18
|
-
import { parseArgs } from './args.js';
|
|
18
|
+
import { optionTokens, parseArgs } from './args.js';
|
|
19
19
|
import { packageVersion } from './version.js';
|
|
20
20
|
import { glossaryText } from './statuses.js';
|
|
21
21
|
import { listCommandNames, resolveCommand } from './command.js';
|
|
@@ -143,7 +143,8 @@ async function dispatch(argv, io) {
|
|
|
143
143
|
if (cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
144
144
|
if (rest.length > 1)
|
|
145
145
|
throw new UsageError('upt help takes at most one command name');
|
|
146
|
-
|
|
146
|
+
// `upt help -h` and `upt help --help` ask for the command list, as `upt help` does.
|
|
147
|
+
const target = rest[0] === '--help' || rest[0] === '-h' ? undefined : rest[0];
|
|
147
148
|
if (target === 'statuses') {
|
|
148
149
|
out(glossaryText());
|
|
149
150
|
return 0;
|
|
@@ -175,7 +176,10 @@ async function dispatch(argv, io) {
|
|
|
175
176
|
err(unknownCommandMessage(cmd));
|
|
176
177
|
return 2;
|
|
177
178
|
}
|
|
178
|
-
|
|
179
|
+
// `-h` is `--help` on every command, as the global help says. A token after a
|
|
180
|
+
// bare `--` is a positional, so it is not read as the help request.
|
|
181
|
+
const options = optionTokens(rest);
|
|
182
|
+
if (options.includes('--help') || options.includes('-h')) {
|
|
179
183
|
out(command.help);
|
|
180
184
|
return 0;
|
|
181
185
|
}
|