universal-physics-tensor 0.29.0 → 0.30.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/bin/upt.mjs +9 -830
- package/dist/bridges/confrontation-coverage.d.ts +15 -0
- package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
- package/dist/bridges/confrontation-coverage.js +6 -1
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/descriptor.d.ts +54 -0
- package/dist/bridges/descriptor.d.ts.map +1 -0
- package/dist/bridges/descriptor.js +67 -0
- package/dist/bridges/descriptor.js.map +1 -0
- package/dist/bridges/equations/_be-helpers.d.ts +1 -2
- package/dist/bridges/equations/_be-helpers.d.ts.map +1 -1
- package/dist/bridges/equations/_be-helpers.js +3 -3
- package/dist/bridges/equations/_be-helpers.js.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.js +5 -3
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.d.ts +1 -1
- package/dist/bridges/equations/be-21-kss-bound.js +1 -1
- package/dist/bridges/equations/be-25-iit-phi.d.ts +12 -16
- package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -1
- package/dist/bridges/equations/be-25-iit-phi.js +12 -16
- package/dist/bridges/equations/be-25-iit-phi.js.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -6
- package/dist/bridges/equations/be-26-dna-tunneling.js +6 -6
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +9 -7
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.js +9 -7
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +0 -34
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
- package/dist/canonical/entries/_l1-build.d.ts +4 -5
- package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
- package/dist/canonical/entries/_l1-build.js +3 -11
- package/dist/canonical/entries/_l1-build.js.map +1 -1
- package/dist/canonical/entries/atomic.d.ts +6 -5
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +61 -1
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +1 -10
- 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 +49 -1
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts +0 -3
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +51 -3
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts +7 -4
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +117 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/linkage.d.ts +5 -0
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +54 -24
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/registry.d.ts +6 -1
- package/dist/canonical/registry.d.ts.map +1 -1
- package/dist/canonical/registry.js +6 -5
- package/dist/canonical/registry.js.map +1 -1
- package/dist/cli/args.d.ts +23 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +74 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +46 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +51 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/_discovery-opts.d.ts +16 -0
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -0
- package/dist/cli/commands/_discovery-opts.js +33 -0
- package/dist/cli/commands/_discovery-opts.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +3 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +71 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/candidates.d.ts +3 -0
- package/dist/cli/commands/candidates.d.ts.map +1 -0
- package/dist/cli/commands/candidates.js +46 -0
- package/dist/cli/commands/candidates.js.map +1 -0
- package/dist/cli/commands/canonical.d.ts +3 -0
- package/dist/cli/commands/canonical.d.ts.map +1 -0
- package/dist/cli/commands/canonical.js +38 -0
- package/dist/cli/commands/canonical.js.map +1 -0
- package/dist/cli/commands/connectors.d.ts +3 -0
- package/dist/cli/commands/connectors.d.ts.map +1 -0
- package/dist/cli/commands/connectors.js +51 -0
- package/dist/cli/commands/connectors.js.map +1 -0
- package/dist/cli/commands/coverage.d.ts +3 -0
- package/dist/cli/commands/coverage.d.ts.map +1 -0
- package/dist/cli/commands/coverage.js +39 -0
- package/dist/cli/commands/coverage.js.map +1 -0
- package/dist/cli/commands/derive.d.ts +3 -0
- package/dist/cli/commands/derive.d.ts.map +1 -0
- package/dist/cli/commands/derive.js +143 -0
- package/dist/cli/commands/derive.js.map +1 -0
- package/dist/cli/commands/discover.d.ts +3 -0
- package/dist/cli/commands/discover.d.ts.map +1 -0
- package/dist/cli/commands/discover.js +137 -0
- package/dist/cli/commands/discover.js.map +1 -0
- package/dist/cli/commands/eval.d.ts +3 -0
- package/dist/cli/commands/eval.d.ts.map +1 -0
- package/dist/cli/commands/eval.js +64 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +3 -0
- package/dist/cli/commands/explain.d.ts.map +1 -0
- package/dist/cli/commands/explain.js +81 -0
- package/dist/cli/commands/explain.js.map +1 -0
- package/dist/cli/commands/index.d.ts +21 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +21 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/map.d.ts +3 -0
- package/dist/cli/commands/map.d.ts.map +1 -0
- package/dist/cli/commands/map.js +245 -0
- package/dist/cli/commands/map.js.map +1 -0
- package/dist/cli/commands/predict.d.ts +3 -0
- package/dist/cli/commands/predict.d.ts.map +1 -0
- package/dist/cli/commands/predict.js +54 -0
- package/dist/cli/commands/predict.js.map +1 -0
- package/dist/cli/commands/priority.d.ts +3 -0
- package/dist/cli/commands/priority.d.ts.map +1 -0
- package/dist/cli/commands/priority.js +63 -0
- package/dist/cli/commands/priority.js.map +1 -0
- package/dist/cli/commands/recover.d.ts +3 -0
- package/dist/cli/commands/recover.d.ts.map +1 -0
- package/dist/cli/commands/recover.js +51 -0
- package/dist/cli/commands/recover.js.map +1 -0
- package/dist/cli/commands/symbolic.d.ts +3 -0
- package/dist/cli/commands/symbolic.d.ts.map +1 -0
- package/dist/cli/commands/symbolic.js +110 -0
- package/dist/cli/commands/symbolic.js.map +1 -0
- package/dist/cli/errors.d.ts +14 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +20 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/graphs.d.ts +16 -0
- package/dist/cli/graphs.d.ts.map +1 -0
- package/dist/cli/graphs.js +30 -0
- package/dist/cli/graphs.js.map +1 -0
- package/dist/cli/main.d.ts +33 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +219 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/output.d.ts +19 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +57 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/version.d.ts +11 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +16 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli-api.d.ts +28 -0
- package/dist/cli-api.d.ts.map +1 -0
- package/dist/cli-api.js +31 -0
- package/dist/cli-api.js.map +1 -0
- package/dist/composition/bridge-analysis.d.ts +13 -15
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +54 -39
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts +4 -3
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +12 -0
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +40 -12
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edges/_catalog-helpers.d.ts +34 -0
- package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -0
- package/dist/composition/edges/_catalog-helpers.js +75 -0
- package/dist/composition/edges/_catalog-helpers.js.map +1 -0
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +1 -1
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-condensed-matter.d.ts +64 -0
- package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -0
- package/dist/composition/edges/catalog-condensed-matter.js +226 -0
- package/dist/composition/edges/catalog-condensed-matter.js.map +1 -0
- package/dist/composition/edges/catalog-fields.d.ts +68 -0
- package/dist/composition/edges/catalog-fields.d.ts.map +1 -0
- package/dist/composition/edges/catalog-fields.js +206 -0
- package/dist/composition/edges/catalog-fields.js.map +1 -0
- package/dist/composition/edges/catalog-full.d.ts +5 -263
- package/dist/composition/edges/catalog-full.d.ts.map +1 -1
- package/dist/composition/edges/catalog-full.js +9 -959
- package/dist/composition/edges/catalog-full.js.map +1 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +80 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.js +245 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -0
- package/dist/composition/edges/catalog-quantum.d.ts +85 -0
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -0
- package/dist/composition/edges/catalog-quantum.js +252 -0
- package/dist/composition/edges/catalog-quantum.js.map +1 -0
- package/dist/composition/expr-simplify.d.ts +2 -6
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +1 -1
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.d.ts +2 -1
- package/dist/composition/expr-subst.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +4 -4
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +1 -3
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities/_dims.d.ts +35 -0
- package/dist/composition/quantities/_dims.d.ts.map +1 -0
- package/dist/composition/quantities/_dims.js +45 -0
- package/dist/composition/quantities/_dims.js.map +1 -0
- package/dist/composition/quantities/common.d.ts +69 -0
- package/dist/composition/quantities/common.d.ts.map +1 -0
- package/dist/composition/quantities/common.js +200 -0
- package/dist/composition/quantities/common.js.map +1 -0
- package/dist/composition/quantities/condensed-matter.d.ts +63 -0
- package/dist/composition/quantities/condensed-matter.d.ts.map +1 -0
- package/dist/composition/quantities/condensed-matter.js +185 -0
- package/dist/composition/quantities/condensed-matter.js.map +1 -0
- package/dist/composition/quantities/fields.d.ts +59 -0
- package/dist/composition/quantities/fields.d.ts.map +1 -0
- package/dist/composition/quantities/fields.js +171 -0
- package/dist/composition/quantities/fields.js.map +1 -0
- package/dist/composition/quantities/gravitation-cosmology.d.ts +67 -0
- package/dist/composition/quantities/gravitation-cosmology.d.ts.map +1 -0
- package/dist/composition/quantities/gravitation-cosmology.js +199 -0
- package/dist/composition/quantities/gravitation-cosmology.js.map +1 -0
- package/dist/composition/quantities/quantum.d.ts +61 -0
- package/dist/composition/quantities/quantum.d.ts.map +1 -0
- package/dist/composition/quantities/quantum.js +178 -0
- package/dist/composition/quantities/quantum.js.map +1 -0
- package/dist/composition/quantities.d.ts +5 -263
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +7 -983
- package/dist/composition/quantities.js.map +1 -1
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +15 -3
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/symbolic-constants.d.ts +3 -2
- package/dist/composition/symbolic-constants.d.ts.map +1 -1
- package/dist/core/tensor.d.ts +6 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +6 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +1 -1
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +15 -4
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/dimensional/algebra.d.ts +24 -0
- package/dist/dimensional/algebra.d.ts.map +1 -1
- package/dist/dimensional/algebra.js +31 -5
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +25 -0
- package/dist/dimensional/ast-builders.d.ts.map +1 -0
- package/dist/dimensional/ast-builders.js +27 -0
- package/dist/dimensional/ast-builders.js.map +1 -0
- package/dist/dimensional/ast-types.d.ts +193 -0
- package/dist/dimensional/ast-types.d.ts.map +1 -0
- package/dist/dimensional/ast-types.js +20 -0
- package/dist/dimensional/ast-types.js.map +1 -0
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +7 -4
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +3 -38
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/connection.d.ts.map +1 -1
- package/dist/dimensional/connection.js +9 -0
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +2 -1
- package/dist/dimensional/curvature-composite.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.d.ts +2 -11
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/curvature.d.ts +5 -24
- package/dist/dimensional/curvature.d.ts.map +1 -1
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/dimension-inference.d.ts.map +1 -1
- package/dist/dimensional/dimension-inference.js +11 -5
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +2 -11
- package/dist/dimensional/einstein-equation.d.ts.map +1 -1
- package/dist/dimensional/einstein-equation.js.map +1 -1
- package/dist/dimensional/killing-validators.d.ts +2 -19
- package/dist/dimensional/killing-validators.d.ts.map +1 -1
- package/dist/dimensional/killing-validators.js.map +1 -1
- package/dist/dimensional/metric-validators.d.ts +5 -39
- package/dist/dimensional/metric-validators.d.ts.map +1 -1
- package/dist/dimensional/metric-validators.js.map +1 -1
- package/dist/dimensional/stress-energy-validators.d.ts +2 -21
- package/dist/dimensional/stress-energy-validators.d.ts.map +1 -1
- package/dist/dimensional/stress-energy-validators.js.map +1 -1
- package/dist/dimensional/tensor.d.ts +2 -32
- package/dist/dimensional/tensor.d.ts.map +1 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/validator.d.ts +12 -58
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +12 -9
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.d.ts +2 -18
- package/dist/dimensional/weyl-validators.d.ts.map +1 -1
- package/dist/dimensional/weyl-validators.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +12 -11
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +23 -8
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts +10 -1
- package/dist/numerical/christoffel-flat.d.ts.map +1 -1
- package/dist/numerical/christoffel-flat.js +11 -2
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts +4 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +72 -14
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/engine-registry.d.ts.map +1 -1
- package/dist/numerical/engine-registry.js +11 -0
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +20 -28
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +1 -1
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula.d.ts +0 -2
- package/dist/numerical/formula.d.ts.map +1 -1
- package/dist/numerical/formula.js +7 -3
- package/dist/numerical/formula.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts +6 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +14 -6
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +106 -43
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +8 -5
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/null-ic.d.ts +4 -3
- package/dist/numerical/null-ic.d.ts.map +1 -1
- package/dist/numerical/null-ic.js +4 -3
- package/dist/numerical/null-ic.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +15 -1
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts +3 -2
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +8 -1
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.js +28 -2
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/package.json +3 -2
- package/dist/canonical/entries/l1-gravity-thermo.d.ts +0 -12
- package/dist/canonical/entries/l1-gravity-thermo.d.ts.map +0 -1
- package/dist/canonical/entries/l1-gravity-thermo.js +0 -165
- package/dist/canonical/entries/l1-gravity-thermo.js.map +0 -1
- package/dist/canonical/entries/l1-quantum-em.d.ts +0 -10
- package/dist/canonical/entries/l1-quantum-em.d.ts.map +0 -1
- package/dist/canonical/entries/l1-quantum-em.js +0 -141
- package/dist/canonical/entries/l1-quantum-em.js.map +0 -1
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { sym } from '../../bridges/equations/_be-helpers.js';
|
|
2
|
-
import { MASS, VELOCITY, ENERGY, LENGTH, TIME, FREQUENCY, TEMPERATURE, } from '../../dimensional/types.js';
|
|
2
|
+
import { MASS, VELOCITY, ENERGY, LENGTH, TIME, FREQUENCY, TEMPERATURE, ENTROPY, DIMENSIONLESS, } from '../../dimensional/types.js';
|
|
3
3
|
import { dim, op, pow, l1 } from './_l1-build.js';
|
|
4
4
|
const SPECIFIC_HEAT = dim(2, 0, -2, 0, -1); // [L² T⁻² Θ⁻¹] (J·kg⁻¹·K⁻¹)
|
|
5
|
+
const SB_FLUX = dim(0, 1, -3); // radiative flux W/m² = [M T⁻³]
|
|
6
|
+
const SIGMA_SB = dim(0, 1, -3, 0, -4); // Stefan–Boltzmann σ [M T⁻³ Θ⁻⁴] (Θ is 5th arg)
|
|
7
|
+
const PRESSURE = dim(-1, 1, -2); // [M L⁻¹ T⁻²]
|
|
8
|
+
const VOLUME = dim(3); // [L³]
|
|
9
|
+
const WIEN_B = dim(1, 0, 0, 0, 1); // Wien constant [L Θ]
|
|
5
10
|
export const THERMO_NUCLEAR_COSMO = [
|
|
6
11
|
l1({ name: 'heat-energy', dim: ENERGY }, [
|
|
7
12
|
{ name: 'mass', dim: MASS },
|
|
@@ -52,5 +57,116 @@ export const THERMO_NUCLEAR_COSMO = [
|
|
|
52
57
|
references: ['Hubble 1929'],
|
|
53
58
|
partnerBridges: [],
|
|
54
59
|
}),
|
|
60
|
+
// ── Folded in from the former l1-gravity-thermo / l1-quantum-em batch files
|
|
61
|
+
// (2026-06-22 god-file split): the thermodynamic / statistical monomials. ──
|
|
62
|
+
// Landauer minimum erasure energy E = k_B T ln2 (natural log)
|
|
63
|
+
l1({ name: 'erasure-energy', dim: ENERGY }, [
|
|
64
|
+
{ name: 'k_B', dim: ENTROPY },
|
|
65
|
+
{ name: 'temperature', dim: TEMPERATURE },
|
|
66
|
+
], {
|
|
67
|
+
id: 'CE-landauer',
|
|
68
|
+
name: 'Landauer erasure bound',
|
|
69
|
+
domain: 'information',
|
|
70
|
+
formula_latex: 'E = k_B T \\ln 2',
|
|
71
|
+
epistemicStatus: 'fully-quantitative',
|
|
72
|
+
scalarAst: op('*', [
|
|
73
|
+
sym('k_B', ENTROPY),
|
|
74
|
+
sym('T', TEMPERATURE),
|
|
75
|
+
sym('ln2', DIMENSIONLESS),
|
|
76
|
+
]),
|
|
77
|
+
forms: { logBase: 'e' },
|
|
78
|
+
regime: { scale: 'mesoscopic', information: 'shannon' },
|
|
79
|
+
assumptions: ['isothermal', 'quasi-static erasure'],
|
|
80
|
+
references: ['Landauer 1961'],
|
|
81
|
+
// 16 = "Information-Thermodynamics Bridge (Landauer's principle)" — a
|
|
82
|
+
// genuine restatement (the canonical Landauer bound IS bridge 16).
|
|
83
|
+
partnerBridges: ['16'],
|
|
84
|
+
restatesBridge: '16',
|
|
85
|
+
}),
|
|
86
|
+
// Jarzynski equality ΔF = −k_B T ln⟨exp(−W/k_B T)⟩ (dimensionless log factor)
|
|
87
|
+
l1({ name: 'free-energy-difference', dim: ENERGY }, [
|
|
88
|
+
{ name: 'k_B', dim: ENTROPY },
|
|
89
|
+
{ name: 'temperature', dim: TEMPERATURE },
|
|
90
|
+
], {
|
|
91
|
+
id: 'CE-jarzynski',
|
|
92
|
+
name: 'Jarzynski free-energy equality',
|
|
93
|
+
domain: 'statistical',
|
|
94
|
+
formula_latex: '\\Delta F = -k_B T \\ln \\langle \\exp(-W/(k_B T)) \\rangle',
|
|
95
|
+
// The leading dimensionless factor is the ensemble functional
|
|
96
|
+
// ln⟨exp(−βW)⟩, not a universal constant, so the strongest honest claim
|
|
97
|
+
// is the algebraic form up to that factor.
|
|
98
|
+
epistemicStatus: 'scalar-up-to-constant',
|
|
99
|
+
// Mirrors BE29_JARZYNSKI_RHS: −1 · k_B · T · ln⟨exp(−βW)⟩, the log encoded
|
|
100
|
+
// as a dimensionless stub (the AST has no ln primitive). Structurally this
|
|
101
|
+
// is the k_B·T·(dimensionless) thermodynamic form — the same one Landauer
|
|
102
|
+
// shares, which is exactly why BE-29 "recovers" CE-landauer.
|
|
103
|
+
scalarAst: op('*', [
|
|
104
|
+
sym('-1', DIMENSIONLESS),
|
|
105
|
+
sym('k_B', ENTROPY),
|
|
106
|
+
sym('T', TEMPERATURE),
|
|
107
|
+
sym('ln_avg_exp_minus_betaW', DIMENSIONLESS),
|
|
108
|
+
]),
|
|
109
|
+
regime: { scale: 'mesoscopic' },
|
|
110
|
+
assumptions: ['isothermal', 'arbitrary work protocol between two equilibria'],
|
|
111
|
+
references: ['Jarzynski 1997 PRL 78:2690'],
|
|
112
|
+
// 29 = BE-29 (Jarzynski equality) — this canonical entry IS that bridge's
|
|
113
|
+
// own relation, so it is a declared restatement (NOT a discovery). Its
|
|
114
|
+
// structural match to CE-landauer stays a `recovers` form-coincidence.
|
|
115
|
+
partnerBridges: ['29'],
|
|
116
|
+
restatesBridge: '29',
|
|
117
|
+
}),
|
|
118
|
+
// Stefan–Boltzmann law j = σ T⁴ (radiative FLUX)
|
|
119
|
+
l1({ name: 'radiative-flux', dim: SB_FLUX }, [
|
|
120
|
+
{ name: 'sigma_sb', dim: SIGMA_SB },
|
|
121
|
+
{ name: 'temperature', dim: TEMPERATURE },
|
|
122
|
+
], {
|
|
123
|
+
id: 'CE-stefan-boltzmann',
|
|
124
|
+
name: 'Stefan–Boltzmann law',
|
|
125
|
+
domain: 'thermodynamics',
|
|
126
|
+
formula_latex: 'j = \\sigma T^4',
|
|
127
|
+
epistemicStatus: 'fully-quantitative',
|
|
128
|
+
scalarAst: op('*', [sym('sigma_sb', SIGMA_SB), pow(sym('T', TEMPERATURE), '4')]),
|
|
129
|
+
forms: { quantityKind: 'flux' },
|
|
130
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
131
|
+
assumptions: ['blackbody', 'thermal equilibrium'],
|
|
132
|
+
references: ['Stefan 1879; Boltzmann 1884'],
|
|
133
|
+
partnerBridges: [],
|
|
134
|
+
}),
|
|
135
|
+
// Ideal gas law P = N k_B T / V (N is a dimensionless count)
|
|
136
|
+
l1({ name: 'pressure', dim: PRESSURE }, [
|
|
137
|
+
{ name: 'k_B', dim: ENTROPY },
|
|
138
|
+
{ name: 'temperature', dim: TEMPERATURE },
|
|
139
|
+
{ name: 'V', dim: VOLUME },
|
|
140
|
+
], {
|
|
141
|
+
id: 'CE-ideal-gas',
|
|
142
|
+
name: 'Ideal gas law',
|
|
143
|
+
domain: 'thermodynamics',
|
|
144
|
+
formula_latex: 'P = N k_B T/V',
|
|
145
|
+
epistemicStatus: 'fully-quantitative',
|
|
146
|
+
scalarAst: op('/', [
|
|
147
|
+
op('*', [sym('N', DIMENSIONLESS), sym('k_B', ENTROPY), sym('T', TEMPERATURE)]),
|
|
148
|
+
sym('V', VOLUME),
|
|
149
|
+
]),
|
|
150
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
151
|
+
assumptions: ['ideal gas', 'thermal equilibrium'],
|
|
152
|
+
references: ['Clapeyron 1834'],
|
|
153
|
+
partnerBridges: [],
|
|
154
|
+
}),
|
|
155
|
+
// Wien's displacement λ_max = b / T (blackbody peak wavelength)
|
|
156
|
+
l1({ name: 'peak-wavelength', dim: LENGTH }, [
|
|
157
|
+
{ name: 'b', dim: WIEN_B },
|
|
158
|
+
{ name: 'temperature', dim: dim(0, 0, 0, 0, 1) },
|
|
159
|
+
], {
|
|
160
|
+
id: 'CE-wien',
|
|
161
|
+
name: "Wien's displacement law",
|
|
162
|
+
domain: 'thermodynamics',
|
|
163
|
+
formula_latex: '\\lambda_{max} = b/T',
|
|
164
|
+
epistemicStatus: 'fully-quantitative',
|
|
165
|
+
scalarAst: op('/', [sym('b', WIEN_B), sym('T', dim(0, 0, 0, 0, 1))]),
|
|
166
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
167
|
+
assumptions: ['blackbody', 'thermal equilibrium'],
|
|
168
|
+
references: ['Wien 1893'],
|
|
169
|
+
partnerBridges: [],
|
|
170
|
+
}),
|
|
55
171
|
];
|
|
56
172
|
//# sourceMappingURL=thermo-nuclear-cosmo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thermo-nuclear-cosmo.js","sourceRoot":"","sources":["../../../src/canonical/entries/thermo-nuclear-cosmo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"thermo-nuclear-cosmo.js","sourceRoot":"","sources":["../../../src/canonical/entries/thermo-nuclear-cosmo.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@ export declare function classifyLinkage(canonicalId: string, bridgeId: number):
|
|
|
22
22
|
/**
|
|
23
23
|
* Scan every canonical entry (with a scalar-AST) against every bridge RHS, and
|
|
24
24
|
* return the non-`unrelated` results — the physicist's linkage worklist.
|
|
25
|
+
*
|
|
26
|
+
* Each bridge is validated and normal-formed ONCE (canonical-invariant), and
|
|
27
|
+
* each canonical's normal-form is computed once per outer iteration
|
|
28
|
+
* (bridge-invariant); the inner loop then only compares pre-computed strings
|
|
29
|
+
* and dimensions. Reduces the per-pair AST walks (~3·C·B) to ~2·B + C.
|
|
25
30
|
*/
|
|
26
31
|
export declare function scanLinkages(): LinkageResult[];
|
|
27
32
|
//# sourceMappingURL=linkage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkage.d.ts","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linkage.d.ts","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"AAyBA,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EACnB,oBAAoB,GACpB,UAAU,GACV,kBAAkB,GAClB,WAAW,CAAC;CACjB;AAyJD,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,aAAa,CAsBf;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAqB9C"}
|
|
@@ -3,7 +3,7 @@ import { evalExpr } from '../composition/expr-eval.js';
|
|
|
3
3
|
import { CONSTANTS } from '../composition/symbolic-constants.js';
|
|
4
4
|
import { BRIDGE_RHS_BY_ID } from '../bridges/rhs-registry.js';
|
|
5
5
|
import { CANONICAL_EQUATIONS, canonicalById } from './registry.js';
|
|
6
|
-
import {
|
|
6
|
+
import { normalForm } from './normal-form.js';
|
|
7
7
|
const dimEqual = (a, b) => a.L === b.L &&
|
|
8
8
|
a.M === b.M &&
|
|
9
9
|
a.T === b.T &&
|
|
@@ -82,27 +82,25 @@ function numericalRecovery(canon, bridge) {
|
|
|
82
82
|
const maxRelErr = Math.max(...ratios.map((r) => Math.abs((r - r0) / r0)));
|
|
83
83
|
return { tested: true, maxRelErr };
|
|
84
84
|
}
|
|
85
|
-
/**
|
|
86
|
-
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const dimMatch =
|
|
101
|
-
|
|
102
|
-
dimEqual(bridgeDim.inferredDimension, canon.dimensional.target.dim);
|
|
103
|
-
const structuralMatch = structurallyEqual(canon.scalarAst, bridgeRhs);
|
|
85
|
+
/** Validate + normal-form a bridge RHS once. */
|
|
86
|
+
function precomputeBridge(rhs) {
|
|
87
|
+
const v = validate(rhs);
|
|
88
|
+
return {
|
|
89
|
+
rhs,
|
|
90
|
+
dim: v.ok ? v.inferredDimension : null,
|
|
91
|
+
normal: normalForm(rhs),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The comparison core, given a canonical entry (with its pre-computed
|
|
96
|
+
* normal-form) and a pre-computed bridge. Pure: no AST re-walks except the
|
|
97
|
+
* rare `numericalRecovery` that only fires on a structural match.
|
|
98
|
+
*/
|
|
99
|
+
function classifyAgainst(canon, canonAst, canonNormal, bridgeId, bridge) {
|
|
100
|
+
const dimMatch = bridge.dim != null && dimEqual(bridge.dim, canon.dimensional.target.dim);
|
|
101
|
+
const structuralMatch = canonNormal === bridge.normal;
|
|
104
102
|
const recovery = structuralMatch
|
|
105
|
-
? numericalRecovery(
|
|
103
|
+
? numericalRecovery(canonAst, bridge.rhs)
|
|
106
104
|
: null;
|
|
107
105
|
let classification;
|
|
108
106
|
if (structuralMatch) {
|
|
@@ -117,19 +115,51 @@ export function classifyLinkage(canonicalId, bridgeId) {
|
|
|
117
115
|
else {
|
|
118
116
|
classification = 'unrelated';
|
|
119
117
|
}
|
|
120
|
-
return {
|
|
118
|
+
return {
|
|
119
|
+
canonicalId: canon.id,
|
|
120
|
+
bridgeId,
|
|
121
|
+
dimMatch,
|
|
122
|
+
structuralMatch,
|
|
123
|
+
recovery,
|
|
124
|
+
classification,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** Compare one canonical entry against one bridge. */
|
|
128
|
+
export function classifyLinkage(canonicalId, bridgeId) {
|
|
129
|
+
const canon = canonicalById(canonicalId);
|
|
130
|
+
const bridgeRhs = BRIDGE_RHS_BY_ID.get(bridgeId);
|
|
131
|
+
if (!canon || !bridgeRhs || !canon.scalarAst) {
|
|
132
|
+
return {
|
|
133
|
+
canonicalId,
|
|
134
|
+
bridgeId,
|
|
135
|
+
dimMatch: false,
|
|
136
|
+
structuralMatch: false,
|
|
137
|
+
recovery: null,
|
|
138
|
+
classification: 'unrelated',
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return classifyAgainst(canon, canon.scalarAst, normalForm(canon.scalarAst), bridgeId, precomputeBridge(bridgeRhs));
|
|
121
142
|
}
|
|
122
143
|
/**
|
|
123
144
|
* Scan every canonical entry (with a scalar-AST) against every bridge RHS, and
|
|
124
145
|
* return the non-`unrelated` results — the physicist's linkage worklist.
|
|
146
|
+
*
|
|
147
|
+
* Each bridge is validated and normal-formed ONCE (canonical-invariant), and
|
|
148
|
+
* each canonical's normal-form is computed once per outer iteration
|
|
149
|
+
* (bridge-invariant); the inner loop then only compares pre-computed strings
|
|
150
|
+
* and dimensions. Reduces the per-pair AST walks (~3·C·B) to ~2·B + C.
|
|
125
151
|
*/
|
|
126
152
|
export function scanLinkages() {
|
|
127
153
|
const results = [];
|
|
154
|
+
const bridges = [
|
|
155
|
+
...BRIDGE_RHS_BY_ID,
|
|
156
|
+
].map(([id, rhs]) => [id, precomputeBridge(rhs)]);
|
|
128
157
|
for (const ce of CANONICAL_EQUATIONS) {
|
|
129
158
|
if (!ce.scalarAst)
|
|
130
159
|
continue;
|
|
131
|
-
|
|
132
|
-
|
|
160
|
+
const canonNormal = normalForm(ce.scalarAst);
|
|
161
|
+
for (const [bridgeId, bridge] of bridges) {
|
|
162
|
+
const r = classifyAgainst(ce, ce.scalarAst, canonNormal, bridgeId, bridge);
|
|
133
163
|
if (r.classification !== 'unrelated')
|
|
134
164
|
results.push(r);
|
|
135
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkage.js","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"linkage.js","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
* @module canonical/registry
|
|
7
7
|
*/
|
|
8
8
|
import type { CanonicalEquation, CanonicalDomain } from './canonical-equation.js';
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Every canonical equation in the registry. The L1 entries are grouped by
|
|
11
|
+
* physics domain (relativity / EM / thermo / atomic / …); the former
|
|
12
|
+
* `l1-gravity-thermo` and `l1-quantum-em` batch files were folded into these
|
|
13
|
+
* domain-named modules in the 2026-06-22 god-file split.
|
|
14
|
+
*/
|
|
10
15
|
export declare const CANONICAL_EQUATIONS: readonly CanonicalEquation[];
|
|
11
16
|
/** Id → entry. */
|
|
12
17
|
export declare const CANONICAL_BY_ID: Readonly<Record<string, CanonicalEquation>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/canonical/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/canonical/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAUlF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAQ3D,CAAC;AAEF,kBAAkB;AAClB,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACT,CAAC;AAEhE,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEvE;AAED,+BAA+B;AAC/B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,GACtB,SAAS,iBAAiB,EAAE,CAE9B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,SAAS,iBAAiB,EAAE,CAE9B;AAED;4DAC4D;AAC5D,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAOhD;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAKzD"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { BRIDGE_EQUATIONS } from '../bridges/index.js';
|
|
2
2
|
import { DIMENSIONAL_CLASSICS } from './entries/dimensional-classics.js';
|
|
3
|
-
import { L1_GRAVITY_THERMO } from './entries/l1-gravity-thermo.js';
|
|
4
|
-
import { L1_QUANTUM_EM } from './entries/l1-quantum-em.js';
|
|
5
3
|
import { RELATIVITY } from './entries/relativity.js';
|
|
6
4
|
import { MECHANICS } from './entries/mechanics.js';
|
|
7
5
|
import { ELECTROMAGNETISM } from './entries/electromagnetism.js';
|
|
8
6
|
import { FLUIDS_WAVES } from './entries/fluids-waves.js';
|
|
9
7
|
import { THERMO_NUCLEAR_COSMO } from './entries/thermo-nuclear-cosmo.js';
|
|
10
8
|
import { ATOMIC } from './entries/atomic.js';
|
|
11
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Every canonical equation in the registry. The L1 entries are grouped by
|
|
11
|
+
* physics domain (relativity / EM / thermo / atomic / …); the former
|
|
12
|
+
* `l1-gravity-thermo` and `l1-quantum-em` batch files were folded into these
|
|
13
|
+
* domain-named modules in the 2026-06-22 god-file split.
|
|
14
|
+
*/
|
|
12
15
|
export const CANONICAL_EQUATIONS = [
|
|
13
16
|
...DIMENSIONAL_CLASSICS,
|
|
14
|
-
...L1_GRAVITY_THERMO,
|
|
15
|
-
...L1_QUANTUM_EM,
|
|
16
17
|
...RELATIVITY,
|
|
17
18
|
...MECHANICS,
|
|
18
19
|
...ELECTROMAGNETISM,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/canonical/registry.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/canonical/registry.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAiC;IAC/D,GAAG,oBAAoB;IACvB,GAAG,UAAU;IACb,GAAG,SAAS;IACZ,GAAG,gBAAgB;IACnB,GAAG,YAAY;IACf,GAAG,oBAAoB;IACvB,GAAG,MAAM;CACV,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAC1B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,8CAA8C;AAC9C,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,iBAAiB,CAC/B,MAAuB;IAEvB,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED;4DAC4D;AAC5D,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,cAAc;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B;IAC5C,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hand-written declarative flag parser for the UPT CLI.
|
|
3
|
+
*
|
|
4
|
+
* Only tokens starting with `--` are treated as flags; everything else
|
|
5
|
+
* (including `name=value` and `name:dim` positionals) passes through to
|
|
6
|
+
* `positionals` untouched and in original order. Single left-to-right scan,
|
|
7
|
+
* zero dependencies.
|
|
8
|
+
*/
|
|
9
|
+
export interface FlagSpec {
|
|
10
|
+
name: string;
|
|
11
|
+
valueStyle: 'attached' | 'next' | 'either' | 'none';
|
|
12
|
+
repeatable?: boolean;
|
|
13
|
+
/** For 'either'/'next' styles: a missing value stores '' instead of throwing —
|
|
14
|
+
* exists for old-CLI fidelity (--equation's empty-value diagnostic belongs to
|
|
15
|
+
* the command, not the parser). */
|
|
16
|
+
optionalValue?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ParsedArgs {
|
|
19
|
+
flags: Map<string, string[]>;
|
|
20
|
+
positionals: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function parseArgs(command: string, argv: string[], specs: FlagSpec[]): ParsedArgs;
|
|
23
|
+
//# sourceMappingURL=args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;uCAEmC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,CAkExF"}
|
package/dist/cli/args.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hand-written declarative flag parser for the UPT CLI.
|
|
3
|
+
*
|
|
4
|
+
* Only tokens starting with `--` are treated as flags; everything else
|
|
5
|
+
* (including `name=value` and `name:dim` positionals) passes through to
|
|
6
|
+
* `positionals` untouched and in original order. Single left-to-right scan,
|
|
7
|
+
* zero dependencies.
|
|
8
|
+
*/
|
|
9
|
+
import { UsageError } from './errors.js';
|
|
10
|
+
export function parseArgs(command, argv, specs) {
|
|
11
|
+
const bySpecName = new Map();
|
|
12
|
+
for (const spec of specs)
|
|
13
|
+
bySpecName.set(spec.name, spec);
|
|
14
|
+
const flags = new Map();
|
|
15
|
+
const positionals = [];
|
|
16
|
+
const hint = `(see upt help ${command})`;
|
|
17
|
+
for (let i = 0; i < argv.length; i++) {
|
|
18
|
+
const token = argv[i];
|
|
19
|
+
if (!token.startsWith('--')) {
|
|
20
|
+
positionals.push(token);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const eqIndex = token.indexOf('=');
|
|
24
|
+
const flagName = eqIndex === -1 ? token : token.slice(0, eqIndex);
|
|
25
|
+
const attachedValue = eqIndex === -1 ? undefined : token.slice(eqIndex + 1);
|
|
26
|
+
const spec = bySpecName.get(flagName);
|
|
27
|
+
if (!spec) {
|
|
28
|
+
throw new UsageError(`unknown flag '${flagName}' for '${command}' ${hint}`);
|
|
29
|
+
}
|
|
30
|
+
let value;
|
|
31
|
+
if (attachedValue !== undefined) {
|
|
32
|
+
if (spec.valueStyle === 'next') {
|
|
33
|
+
throw new UsageError(`flag '${spec.name}' does not accept an attached value; use '${spec.name} VALUE' for '${command}' ${hint}`);
|
|
34
|
+
}
|
|
35
|
+
if (spec.valueStyle === 'none') {
|
|
36
|
+
throw new UsageError(`flag '${spec.name}' takes no value for '${command}' ${hint}`);
|
|
37
|
+
}
|
|
38
|
+
value = attachedValue;
|
|
39
|
+
}
|
|
40
|
+
else if (spec.valueStyle === 'attached') {
|
|
41
|
+
throw new UsageError(`flag '${spec.name}' requires '${spec.name}=VALUE' for '${command}' ${hint}`);
|
|
42
|
+
}
|
|
43
|
+
else if (spec.valueStyle === 'none') {
|
|
44
|
+
value = '';
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// 'next' or 'either' with no attached value: consume the next token.
|
|
48
|
+
const next = argv[i + 1];
|
|
49
|
+
if (next === undefined || next.startsWith('--')) {
|
|
50
|
+
if (!spec.optionalValue) {
|
|
51
|
+
throw new UsageError(`flag '${spec.name}' requires a value for '${command}' ${hint}`);
|
|
52
|
+
}
|
|
53
|
+
value = '';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
value = next;
|
|
57
|
+
i++;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const key = spec.name.slice(2);
|
|
61
|
+
const existing = flags.get(key);
|
|
62
|
+
if (existing) {
|
|
63
|
+
if (!spec.repeatable) {
|
|
64
|
+
throw new UsageError(`flag '${spec.name}' given more than once for '${command}' ${hint}`);
|
|
65
|
+
}
|
|
66
|
+
existing.push(value);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
flags.set(key, [value]);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return { flags, positionals };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command registry + the `Command`/`CommandCtx` contract for the UPT CLI.
|
|
3
|
+
*
|
|
4
|
+
* A `Command` is a self-contained verb handler: its own flag specs, its own
|
|
5
|
+
* help block, and a `run` that receives an injected `CommandCtx` (never
|
|
6
|
+
* reaches for `process.stdout`/`process.argv` itself, so it is trivially
|
|
7
|
+
* testable in-process). `main.ts` owns dispatch (`runCli`); this module only
|
|
8
|
+
* owns the registry those commands plug into — new commands register
|
|
9
|
+
* themselves (typically from their own module's top-level side effect, or
|
|
10
|
+
* from a barrel later tasks import) without `runCli`'s body ever changing.
|
|
11
|
+
*/
|
|
12
|
+
import type { ParsedArgs, FlagSpec } from './args.js';
|
|
13
|
+
import type * as cliApi from '../cli-api.js';
|
|
14
|
+
export interface CommandCtx {
|
|
15
|
+
args: ParsedArgs;
|
|
16
|
+
api: typeof cliApi;
|
|
17
|
+
out: (line?: string) => void;
|
|
18
|
+
err: (line?: string) => void;
|
|
19
|
+
write: (s: string) => void;
|
|
20
|
+
}
|
|
21
|
+
export interface Command {
|
|
22
|
+
name: string;
|
|
23
|
+
aliases: string[];
|
|
24
|
+
flags: FlagSpec[];
|
|
25
|
+
help: string;
|
|
26
|
+
run(ctx: CommandCtx): Promise<number>;
|
|
27
|
+
}
|
|
28
|
+
/** Register a command under its name and every alias. Later registrations for
|
|
29
|
+
* an already-taken name/alias overwrite the earlier one (keeps this usable
|
|
30
|
+
* from tests that re-register a stub across cases). */
|
|
31
|
+
export declare function registerCommand(command: Command): void;
|
|
32
|
+
/** Look up a command by its primary name or any alias. */
|
|
33
|
+
export declare function resolveCommand(nameOrAlias: string): Command | undefined;
|
|
34
|
+
/** All distinct registered commands (de-duplicated across aliases), in
|
|
35
|
+
* first-registration order. */
|
|
36
|
+
export declare function allCommands(): Command[];
|
|
37
|
+
/** Test-only registration hook. Same behavior as `registerCommand` — kept as
|
|
38
|
+
* a distinct, deliberately-unexciting name so it reads as test scaffolding
|
|
39
|
+
* (not part of the CLI's own porting surface) at call sites in
|
|
40
|
+
* `tests/cli/*.test.ts`. Not re-exported from `cli-api.ts` or `index.ts`. */
|
|
41
|
+
export declare function registerForTest(command: Command): void;
|
|
42
|
+
/** Test-only reset hook: clears every registered command (including
|
|
43
|
+
* aliases). Lets test files register stub commands without leaking them
|
|
44
|
+
* across files that share the module registry within a single worker. */
|
|
45
|
+
export declare function clearRegistryForTest(): void;
|
|
46
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/cli/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,OAAO,MAAM,CAAC;IACnB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAID;;uDAEuD;AACvD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGtD;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEvE;AAED;+BAC+B;AAC/B,wBAAgB,WAAW,IAAI,OAAO,EAAE,CASvC;AAED;;;6EAG6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEtD;AAED;;yEAEyE;AACzE,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command registry + the `Command`/`CommandCtx` contract for the UPT CLI.
|
|
3
|
+
*
|
|
4
|
+
* A `Command` is a self-contained verb handler: its own flag specs, its own
|
|
5
|
+
* help block, and a `run` that receives an injected `CommandCtx` (never
|
|
6
|
+
* reaches for `process.stdout`/`process.argv` itself, so it is trivially
|
|
7
|
+
* testable in-process). `main.ts` owns dispatch (`runCli`); this module only
|
|
8
|
+
* owns the registry those commands plug into — new commands register
|
|
9
|
+
* themselves (typically from their own module's top-level side effect, or
|
|
10
|
+
* from a barrel later tasks import) without `runCli`'s body ever changing.
|
|
11
|
+
*/
|
|
12
|
+
const registry = new Map();
|
|
13
|
+
/** Register a command under its name and every alias. Later registrations for
|
|
14
|
+
* an already-taken name/alias overwrite the earlier one (keeps this usable
|
|
15
|
+
* from tests that re-register a stub across cases). */
|
|
16
|
+
export function registerCommand(command) {
|
|
17
|
+
registry.set(command.name, command);
|
|
18
|
+
for (const alias of command.aliases)
|
|
19
|
+
registry.set(alias, command);
|
|
20
|
+
}
|
|
21
|
+
/** Look up a command by its primary name or any alias. */
|
|
22
|
+
export function resolveCommand(nameOrAlias) {
|
|
23
|
+
return registry.get(nameOrAlias);
|
|
24
|
+
}
|
|
25
|
+
/** All distinct registered commands (de-duplicated across aliases), in
|
|
26
|
+
* first-registration order. */
|
|
27
|
+
export function allCommands() {
|
|
28
|
+
const seen = new Set();
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const command of registry.values()) {
|
|
31
|
+
if (seen.has(command))
|
|
32
|
+
continue;
|
|
33
|
+
seen.add(command);
|
|
34
|
+
out.push(command);
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
/** Test-only registration hook. Same behavior as `registerCommand` — kept as
|
|
39
|
+
* a distinct, deliberately-unexciting name so it reads as test scaffolding
|
|
40
|
+
* (not part of the CLI's own porting surface) at call sites in
|
|
41
|
+
* `tests/cli/*.test.ts`. Not re-exported from `cli-api.ts` or `index.ts`. */
|
|
42
|
+
export function registerForTest(command) {
|
|
43
|
+
registerCommand(command);
|
|
44
|
+
}
|
|
45
|
+
/** Test-only reset hook: clears every registered command (including
|
|
46
|
+
* aliases). Lets test files register stub commands without leaking them
|
|
47
|
+
* across files that share the module registry within a single worker. */
|
|
48
|
+
export function clearRegistryForTest() {
|
|
49
|
+
registry.clear();
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/cli/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE5C;;uDAEuD;AACvD,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED;+BAC+B;AAC/B,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;6EAG6E;AAC7E,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,oBAAoB;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared `--max-orders`/`--anchor` parsing — used by both `discover` and
|
|
3
|
+
* `map`'s `--proposed` overlay. In the old CLI, `map`'s `proposedJunctions`
|
|
4
|
+
* passed the raw args straight through `parseDiscoveryOpts` (bin/upt.mjs line
|
|
5
|
+
* 392), so `map --proposed --max-orders=N` genuinely tuned the proposed
|
|
6
|
+
* overlay — the two commands share this validation, not just the shape.
|
|
7
|
+
*
|
|
8
|
+
* Transposed verbatim from bin/upt.mjs's `parseDiscoveryOpts()` (lines
|
|
9
|
+
* 596-632). The two error messages are pinned byte-exact by
|
|
10
|
+
* `tests/cli/upt-discover-opts.test.ts` (which drives the OLD bin, still
|
|
11
|
+
* green and untouched) — do not reword them.
|
|
12
|
+
*/
|
|
13
|
+
import type { ParsedArgs } from '../args.js';
|
|
14
|
+
import type { DiscoveryOptions } from '../../composition/discovery.js';
|
|
15
|
+
export declare function parseDiscoveryOpts(flags: ParsedArgs['flags']): DiscoveryOptions;
|
|
16
|
+
//# sourceMappingURL=_discovery-opts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_discovery-opts.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/_discovery-opts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAgC/E"}
|