universal-physics-tensor 0.5.1 → 0.7.1
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 +66 -105
- package/dist/bridges/catalog-adapter.d.ts +116 -0
- package/dist/bridges/catalog-adapter.d.ts.map +1 -0
- package/dist/bridges/catalog-adapter.js +302 -0
- package/dist/bridges/catalog-adapter.js.map +1 -0
- package/dist/bridges/equations/_be-helpers.d.ts +145 -0
- package/dist/bridges/equations/_be-helpers.d.ts.map +1 -0
- package/dist/bridges/equations/_be-helpers.js +179 -0
- package/dist/bridges/equations/_be-helpers.js.map +1 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts +1 -2
- package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -1
- package/dist/bridges/equations/be-11-decoherence-master.js +9 -20
- package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -1
- package/dist/bridges/equations/be-12-coherence-length.d.ts +7 -1
- package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -1
- package/dist/bridges/equations/be-12-coherence-length.js +8 -16
- package/dist/bridges/equations/be-12-coherence-length.js.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.d.ts +51 -3
- package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.js +74 -17
- package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +10 -4
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -1
- package/dist/bridges/equations/be-14-ryu-takayanagi.js +6 -17
- package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -1
- package/dist/bridges/equations/be-15-emergence.d.ts +7 -1
- package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -1
- package/dist/bridges/equations/be-15-emergence.js +12 -22
- package/dist/bridges/equations/be-15-emergence.js.map +1 -1
- package/dist/bridges/equations/be-16-landauer.d.ts +7 -1
- package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -1
- package/dist/bridges/equations/be-16-landauer.js +5 -13
- package/dist/bridges/equations/be-16-landauer.js.map +1 -1
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts +26 -13
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -1
- package/dist/bridges/equations/be-17-einstein-cartan.js +28 -31
- package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -1
- package/dist/bridges/equations/be-18-higgs-mass.d.ts +7 -1
- package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -1
- package/dist/bridges/equations/be-18-higgs-mass.js +5 -16
- package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -1
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts +38 -3
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -1
- package/dist/bridges/equations/be-19-quantum-bounce.js +69 -20
- package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +20 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.js +36 -15
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.d.ts +2 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.js +4 -10
- package/dist/bridges/equations/be-21-kss-bound.js.map +1 -1
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts +6 -9
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -1
- package/dist/bridges/equations/be-22-topological-entanglement.js +9 -21
- package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -1
- package/dist/bridges/equations/be-23-syk-planckian.d.ts +7 -1
- package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -1
- package/dist/bridges/equations/be-23-syk-planckian.js +11 -25
- package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -1
- package/dist/bridges/equations/be-24-foerster-fret.d.ts +7 -1
- package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -1
- package/dist/bridges/equations/be-24-foerster-fret.js +8 -16
- package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -1
- package/dist/bridges/equations/be-25-iit-phi.d.ts +7 -1
- 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-25-orch-or.d.ts +6 -3
- package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -1
- package/dist/bridges/equations/be-25-orch-or.js +8 -17
- package/dist/bridges/equations/be-25-orch-or.js.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -3
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.js +11 -26
- package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -1
- package/dist/bridges/equations/be-27-effective-temperature.d.ts +7 -1
- package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-27-effective-temperature.js +8 -16
- package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +7 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.js +9 -13
- package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -1
- package/dist/bridges/equations/be-29-jarzynski.d.ts +7 -1
- package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -1
- package/dist/bridges/equations/be-29-jarzynski.js +8 -13
- package/dist/bridges/equations/be-29-jarzynski.js.map +1 -1
- package/dist/bridges/equations/be-30-flm-first-law.d.ts +11 -2
- package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -1
- package/dist/bridges/equations/be-30-flm-first-law.js +10 -21
- package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -1
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts +7 -1
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -1
- package/dist/bridges/equations/be-31-causal-set-bd.js +11 -25
- package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -1
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +6 -9
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -1
- package/dist/bridges/equations/be-32-quantum-reference-frame.js +8 -18
- package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -1
- package/dist/bridges/equations/be-33-hertz-millis.d.ts +53 -28
- package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -1
- package/dist/bridges/equations/be-33-hertz-millis.js +55 -51
- package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -1
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts +6 -3
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -1
- package/dist/bridges/equations/be-34-kibble-zurek.js +15 -26
- package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +6 -9
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +9 -21
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +7 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.js +5 -13
- package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -1
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts +4 -2
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -1
- package/dist/bridges/equations/be-37-shapiro-delay.js +15 -28
- package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -1
- package/dist/bridges/equations/be-38-mond.d.ts +7 -1
- package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
- package/dist/bridges/equations/be-38-mond.js +9 -19
- package/dist/bridges/equations/be-38-mond.js.map +1 -1
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +66 -2
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -1
- package/dist/bridges/equations/be-39-asymptotic-safety.js +128 -20
- package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +7 -1
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.js +10 -22
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
- package/dist/bridges/equations/be-41-swampland.d.ts +6 -3
- package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -1
- package/dist/bridges/equations/be-41-swampland.js +11 -23
- package/dist/bridges/equations/be-41-swampland.js.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts +2 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.js +5 -13
- package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
- package/dist/bridges/equations/be-43-er-epr.d.ts +7 -1
- package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -1
- package/dist/bridges/equations/be-43-er-epr.js +5 -13
- package/dist/bridges/equations/be-43-er-epr.js.map +1 -1
- package/dist/bridges/equations/be-44-soft-hair.d.ts +7 -1
- package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -1
- package/dist/bridges/equations/be-44-soft-hair.js +5 -13
- package/dist/bridges/equations/be-44-soft-hair.js.map +1 -1
- package/dist/bridges/equations/be-45-tcc.d.ts +7 -1
- package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -1
- package/dist/bridges/equations/be-45-tcc.js +10 -22
- package/dist/bridges/equations/be-45-tcc.js.map +1 -1
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts +7 -1
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -1
- package/dist/bridges/equations/be-46-multiverse-measure.js +9 -19
- package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +7 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.js +14 -16
- package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts +7 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.js +15 -20
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +7 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.js +10 -22
- package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +42 -12
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js +84 -20
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +158 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js +175 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts +117 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts.map +1 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.js +213 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.js.map +1 -0
- package/dist/bridges/index.d.ts +40 -1
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +130 -48
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/perihelion-precession-labeled.d.ts +46 -0
- package/dist/bridges/perihelion-precession-labeled.d.ts.map +1 -0
- package/dist/bridges/perihelion-precession-labeled.js +54 -0
- package/dist/bridges/perihelion-precession-labeled.js.map +1 -0
- package/dist/core/axes-registry.d.ts +67 -0
- package/dist/core/axes-registry.d.ts.map +1 -0
- package/dist/core/axes-registry.js +75 -0
- package/dist/core/axes-registry.js.map +1 -0
- package/dist/core/cell.d.ts +176 -0
- package/dist/core/cell.d.ts.map +1 -0
- package/dist/core/cell.js +166 -0
- package/dist/core/cell.js.map +1 -0
- package/dist/core/flux-rules.d.ts +176 -0
- package/dist/core/flux-rules.d.ts.map +1 -0
- package/dist/core/flux-rules.js +329 -0
- package/dist/core/flux-rules.js.map +1 -0
- package/dist/core/labeled-tensor.d.ts +143 -0
- package/dist/core/labeled-tensor.d.ts.map +1 -0
- package/dist/core/labeled-tensor.js +275 -0
- package/dist/core/labeled-tensor.js.map +1 -0
- package/dist/core/regime-registry.d.ts +169 -0
- package/dist/core/regime-registry.d.ts.map +1 -0
- package/dist/core/regime-registry.js +174 -0
- package/dist/core/regime-registry.js.map +1 -0
- package/dist/core/regime-rule-install.d.ts +26 -0
- package/dist/core/regime-rule-install.d.ts.map +1 -0
- package/dist/core/regime-rule-install.js +90 -0
- package/dist/core/regime-rule-install.js.map +1 -0
- package/dist/core/regimes-builtins.d.ts +22 -0
- package/dist/core/regimes-builtins.d.ts.map +1 -0
- package/dist/core/regimes-builtins.js +96 -0
- package/dist/core/regimes-builtins.js.map +1 -0
- package/dist/core/tensor.d.ts +112 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +366 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +7 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.d.ts +97 -0
- package/dist/core/universal-index.d.ts.map +1 -0
- package/dist/core/universal-index.js +70 -0
- package/dist/core/universal-index.js.map +1 -0
- package/dist/diff/bridge-gradient.d.ts +94 -0
- package/dist/diff/bridge-gradient.d.ts.map +1 -0
- package/dist/diff/bridge-gradient.js +83 -0
- package/dist/diff/bridge-gradient.js.map +1 -0
- package/dist/diff/bridge-specs.d.ts +68 -0
- package/dist/diff/bridge-specs.d.ts.map +1 -0
- package/dist/diff/bridge-specs.js +96 -0
- package/dist/diff/bridge-specs.js.map +1 -0
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +8 -0
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +12 -5
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +90 -0
- package/dist/dimensional/curvature-composite.d.ts.map +1 -0
- package/dist/dimensional/curvature-composite.js +57 -0
- package/dist/dimensional/curvature-composite.js.map +1 -0
- package/dist/dimensional/curvature-invariants.d.ts +90 -0
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -0
- package/dist/dimensional/curvature-invariants.js +64 -0
- package/dist/dimensional/curvature-invariants.js.map +1 -0
- package/dist/dimensional/curvature.d.ts +46 -30
- package/dist/dimensional/curvature.d.ts.map +1 -1
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +126 -0
- package/dist/dimensional/einstein-equation.d.ts.map +1 -0
- package/dist/dimensional/einstein-equation.js +122 -0
- package/dist/dimensional/einstein-equation.js.map +1 -0
- package/dist/dimensional/field-equation-helpers.d.ts +82 -0
- package/dist/dimensional/field-equation-helpers.d.ts.map +1 -0
- package/dist/dimensional/field-equation-helpers.js +123 -0
- package/dist/dimensional/field-equation-helpers.js.map +1 -0
- package/dist/dimensional/friedmann-equation.d.ts +148 -0
- package/dist/dimensional/friedmann-equation.d.ts.map +1 -0
- package/dist/dimensional/friedmann-equation.js +150 -0
- package/dist/dimensional/friedmann-equation.js.map +1 -0
- package/dist/dimensional/gauge-field.d.ts +182 -0
- package/dist/dimensional/gauge-field.d.ts.map +1 -0
- package/dist/dimensional/gauge-field.js +134 -0
- package/dist/dimensional/gauge-field.js.map +1 -0
- package/dist/dimensional/killing-validators.d.ts +94 -0
- package/dist/dimensional/killing-validators.d.ts.map +1 -0
- package/dist/dimensional/killing-validators.js +66 -0
- package/dist/dimensional/killing-validators.js.map +1 -0
- package/dist/dimensional/klein-gordon-equation.d.ts +113 -0
- package/dist/dimensional/klein-gordon-equation.d.ts.map +1 -0
- package/dist/dimensional/klein-gordon-equation.js +98 -0
- package/dist/dimensional/klein-gordon-equation.js.map +1 -0
- package/dist/dimensional/rg-flow.d.ts +156 -0
- package/dist/dimensional/rg-flow.d.ts.map +1 -0
- package/dist/dimensional/rg-flow.js +150 -0
- package/dist/dimensional/rg-flow.js.map +1 -0
- package/dist/dimensional/stress-energy-validators.d.ts +74 -0
- package/dist/dimensional/stress-energy-validators.d.ts.map +1 -0
- package/dist/dimensional/stress-energy-validators.js +47 -0
- package/dist/dimensional/stress-energy-validators.js.map +1 -0
- package/dist/dimensional/tensor-trace.d.ts +128 -0
- package/dist/dimensional/tensor-trace.d.ts.map +1 -0
- package/dist/dimensional/tensor-trace.js +95 -0
- package/dist/dimensional/tensor-trace.js.map +1 -0
- package/dist/dimensional/tensor.d.ts +6 -8
- package/dist/dimensional/tensor.d.ts.map +1 -1
- package/dist/dimensional/tensor.js +3 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/validator-registry.d.ts +90 -0
- package/dist/dimensional/validator-registry.d.ts.map +1 -0
- package/dist/dimensional/validator-registry.js +131 -0
- package/dist/dimensional/validator-registry.js.map +1 -0
- package/dist/dimensional/validator.d.ts +12 -2
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +60 -75
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.d.ts +84 -0
- package/dist/dimensional/weyl-validators.d.ts.map +1 -0
- package/dist/dimensional/weyl-validators.js +84 -0
- package/dist/dimensional/weyl-validators.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +19 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +29 -9
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts +49 -0
- package/dist/numerical/christoffel-flat.d.ts.map +1 -0
- package/dist/numerical/christoffel-flat.js +86 -0
- package/dist/numerical/christoffel-flat.js.map +1 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts +49 -57
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +109 -4
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.d.ts +67 -0
- package/dist/numerical/derivative-lowering.d.ts.map +1 -0
- package/dist/numerical/derivative-lowering.js +243 -0
- package/dist/numerical/derivative-lowering.js.map +1 -0
- package/dist/numerical/einstein-equation.d.ts +106 -0
- package/dist/numerical/einstein-equation.d.ts.map +1 -0
- package/dist/numerical/einstein-equation.js +172 -0
- package/dist/numerical/einstein-equation.js.map +1 -0
- package/dist/numerical/geodesic-integrator.d.ts +7 -4
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +5 -1
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +4 -2
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +24 -8
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/killing.d.ts +157 -0
- package/dist/numerical/killing.d.ts.map +1 -0
- package/dist/numerical/killing.js +242 -0
- package/dist/numerical/killing.js.map +1 -0
- package/dist/numerical/kretschmann.d.ts +62 -0
- package/dist/numerical/kretschmann.d.ts.map +1 -0
- package/dist/numerical/kretschmann.js +88 -0
- package/dist/numerical/kretschmann.js.map +1 -0
- package/dist/numerical/lowering-utils.d.ts +47 -0
- package/dist/numerical/lowering-utils.d.ts.map +1 -0
- package/dist/numerical/lowering-utils.js +64 -0
- package/dist/numerical/lowering-utils.js.map +1 -0
- package/dist/numerical/lowering.d.ts +1 -29
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +219 -415
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/null-ic.d.ts +40 -0
- package/dist/numerical/null-ic.d.ts.map +1 -0
- package/dist/numerical/null-ic.js +50 -0
- package/dist/numerical/null-ic.js.map +1 -0
- package/dist/numerical/null-ray-integrator.d.ts +3 -2
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.d.ts +74 -0
- package/dist/numerical/painleve-gullstrand-metric.d.ts.map +1 -0
- package/dist/numerical/painleve-gullstrand-metric.js +121 -0
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -0
- package/dist/numerical/pderiv.d.ts +17 -9
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +6 -3
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +30 -0
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +30 -0
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +2 -2
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts +60 -0
- package/dist/numerical/weyl-lowering.d.ts.map +1 -0
- package/dist/numerical/weyl-lowering.js +111 -0
- package/dist/numerical/weyl-lowering.js.map +1 -0
- package/package.json +9 -7
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `RegimeType` extension system — v0.8 Proposal 5.
|
|
3
|
+
*
|
|
4
|
+
* Per P5 Decision #1, this module ships the extension MECHANISM
|
|
5
|
+
* (`defineRegime`, `lookupRegime`, `listRegimesByAxis`,
|
|
6
|
+
* `provenanceFor`) PLUS the eight v0.6-shipped closed-union values
|
|
7
|
+
* pre-registered (per Phase 2 — see `src/core/regimes-builtins.ts`).
|
|
8
|
+
* Closed taxonomy of new physics-regime built-ins is deferred to
|
|
9
|
+
* v0.9 per Decision #1 framing.
|
|
10
|
+
*
|
|
11
|
+
* Per P5 Adam-H1 reconciliation, Phase 4's per-cell regime field
|
|
12
|
+
* ships as a sibling registry (`regimesForCell`) keyed by cell id
|
|
13
|
+
* rather than as a new field on `BridgeCell` (avoids the
|
|
14
|
+
* `cellToBridge` adapter round-trip that would strip unknown
|
|
15
|
+
* fields).
|
|
16
|
+
*
|
|
17
|
+
* Per P5 Eve-M2 reconciliation, `FluxRuleKind` is extended with
|
|
18
|
+
* `'regime-consistency'` discriminator in this commit (Phase 4
|
|
19
|
+
* rule fires from `addCell`).
|
|
20
|
+
*
|
|
21
|
+
* @module core/regime-registry
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Thrown when `defineRegime` receives a spec that contradicts an
|
|
25
|
+
* already-registered (axis, tag) pair. Carries both specs for
|
|
26
|
+
* diagnosis. Per P5 Decision #4 + Eve-L1 reconciliation
|
|
27
|
+
* (idempotent re-registration with the SAME spec is allowed;
|
|
28
|
+
* collisions throw).
|
|
29
|
+
*
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
export class RegimeCollisionError extends Error {
|
|
33
|
+
axis;
|
|
34
|
+
tag;
|
|
35
|
+
constructor(axis, tag, existing, incoming) {
|
|
36
|
+
super(`RegimeRegistry.defineRegime: cannot re-register (${axis}, '${tag}') ` +
|
|
37
|
+
`with a different displayName ('${existing.displayName}' vs ` +
|
|
38
|
+
`'${incoming.displayName}'). Identical re-registrations are ` +
|
|
39
|
+
`idempotent; only conflicting specs throw.`);
|
|
40
|
+
this.name = 'RegimeCollisionError';
|
|
41
|
+
this.axis = axis;
|
|
42
|
+
this.tag = tag;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Private singleton storage
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
const registry = new Map();
|
|
49
|
+
function ensureAxisMap(axis) {
|
|
50
|
+
let m = registry.get(axis);
|
|
51
|
+
if (!m) {
|
|
52
|
+
m = new Map();
|
|
53
|
+
registry.set(axis, m);
|
|
54
|
+
}
|
|
55
|
+
return m;
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Public API (Phase 1)
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
/**
|
|
61
|
+
* Register a regime under its `(axis, tag)` coordinate. Idempotent
|
|
62
|
+
* for identical re-registrations; throws `RegimeCollisionError`
|
|
63
|
+
* for the same `(axis, tag)` with different content.
|
|
64
|
+
*
|
|
65
|
+
* Returns the canonicalized `RegimeValueBase` (with
|
|
66
|
+
* `provenance.registeredAt` filled in if omitted).
|
|
67
|
+
*
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
export function defineRegime(spec) {
|
|
71
|
+
const axisMap = ensureAxisMap(spec.axis);
|
|
72
|
+
const existing = axisMap.get(spec.tag);
|
|
73
|
+
const canonical = {
|
|
74
|
+
axis: spec.axis,
|
|
75
|
+
tag: spec.tag,
|
|
76
|
+
displayName: spec.displayName,
|
|
77
|
+
...(spec.tags ? { tags: spec.tags } : {}),
|
|
78
|
+
...(spec.limits ? { limits: spec.limits } : {}),
|
|
79
|
+
provenance: {
|
|
80
|
+
registeredBy: spec.provenance.registeredBy,
|
|
81
|
+
registeredAt: spec.provenance.registeredAt ?? new Date().toISOString(),
|
|
82
|
+
...(spec.provenance.citation ? { citation: spec.provenance.citation } : {}),
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
if (existing) {
|
|
86
|
+
// Idempotency check: identical (modulo timestamp).
|
|
87
|
+
if (existing.displayName !== canonical.displayName ||
|
|
88
|
+
existing.provenance.registeredBy !== canonical.provenance.registeredBy) {
|
|
89
|
+
throw new RegimeCollisionError(spec.axis, spec.tag, existing, spec);
|
|
90
|
+
}
|
|
91
|
+
return existing;
|
|
92
|
+
}
|
|
93
|
+
axisMap.set(spec.tag, canonical);
|
|
94
|
+
return canonical;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Look up a registered regime by `(axis, tag)`. Returns `undefined`
|
|
98
|
+
* if not registered.
|
|
99
|
+
*
|
|
100
|
+
* @public
|
|
101
|
+
*/
|
|
102
|
+
export function lookupRegime(axis, tag) {
|
|
103
|
+
return registry.get(axis)?.get(tag);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Enumerate all regimes registered under a given axis. Returns
|
|
107
|
+
* a snapshot array (safe to iterate without holding a registry
|
|
108
|
+
* reference).
|
|
109
|
+
*
|
|
110
|
+
* @public
|
|
111
|
+
*/
|
|
112
|
+
export function listRegimesByAxis(axis) {
|
|
113
|
+
const m = registry.get(axis);
|
|
114
|
+
return m ? [...m.values()] : [];
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get the provenance of a specific `(axis, tag)` regime. Helper
|
|
118
|
+
* for audit-tooling that needs to know who registered what.
|
|
119
|
+
*
|
|
120
|
+
* @public
|
|
121
|
+
*/
|
|
122
|
+
export function provenanceFor(axis, tag) {
|
|
123
|
+
return lookupRegime(axis, tag)?.provenance;
|
|
124
|
+
}
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
// Phase 4 — per-cell regime attachment (sibling registry per Adam-M1)
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
const cellRegimes = new Map();
|
|
129
|
+
/**
|
|
130
|
+
* Attach regime values to a cell by its `id`. Per P5 Adam-M1
|
|
131
|
+
* resolution, regimes ride on a sibling registry rather than as a
|
|
132
|
+
* `BridgeCell.regimes?` field — this preserves the P3 surface
|
|
133
|
+
* contract (no new `BridgeCell` fields) and avoids the
|
|
134
|
+
* `cellToBridge` adapter round-trip.
|
|
135
|
+
*
|
|
136
|
+
* Idempotent (same id + same regime set is a no-op).
|
|
137
|
+
*
|
|
138
|
+
* @public
|
|
139
|
+
*/
|
|
140
|
+
export function attachRegimesToCell(cellId, regimes) {
|
|
141
|
+
cellRegimes.set(cellId, regimes);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get the regimes attached to a cell by its `id`. Returns
|
|
145
|
+
* `undefined` if no regimes are attached.
|
|
146
|
+
*
|
|
147
|
+
* @public
|
|
148
|
+
*/
|
|
149
|
+
export function getCellRegimes(cellId) {
|
|
150
|
+
return cellRegimes.get(cellId);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Clear all registered regimes AND all cell attachments. Test-only
|
|
154
|
+
* helper — DO NOT call from production code.
|
|
155
|
+
*
|
|
156
|
+
* @internal
|
|
157
|
+
*/
|
|
158
|
+
export function _resetRegistryForTesting() {
|
|
159
|
+
registry.clear();
|
|
160
|
+
cellRegimes.clear();
|
|
161
|
+
}
|
|
162
|
+
/** Register a regime on the `'scale'` axis. @public */
|
|
163
|
+
export const defineScale = (s) => defineRegime({ ...s, axis: 'scale' });
|
|
164
|
+
/** Register a regime on the `'force'` axis. @public */
|
|
165
|
+
export const defineForce = (s) => defineRegime({ ...s, axis: 'force' });
|
|
166
|
+
/** Register a regime on the `'symmetry'` axis. @public */
|
|
167
|
+
export const defineSymmetry = (s) => defineRegime({ ...s, axis: 'symmetry' });
|
|
168
|
+
/** Register a regime on the `'information'` axis. @public */
|
|
169
|
+
export const defineInformation = (s) => defineRegime({ ...s, axis: 'information' });
|
|
170
|
+
/** Register a regime on the `'dimension'` axis. @public */
|
|
171
|
+
export const defineDimension = (s) => defineRegime({ ...s, axis: 'dimension' });
|
|
172
|
+
/** Register a regime on the `'topology'` axis. @public */
|
|
173
|
+
export const defineTopology = (s) => defineRegime({ ...s, axis: 'topology' });
|
|
174
|
+
//# sourceMappingURL=regime-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regime-registry.js","sourceRoot":"","sources":["../../src/core/regime-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiring: installs P5's `RegimeConsistency` rule body into the
|
|
3
|
+
* flux-rules registry. Importing this module activates Rule 4
|
|
4
|
+
* (regime-consistency, WARNING tier) on every `UniversalTensor`.
|
|
5
|
+
*
|
|
6
|
+
* Phase 4 of v0.8 Proposal 5.
|
|
7
|
+
*
|
|
8
|
+
* The rule body checks: for each attached regime on a cell (via
|
|
9
|
+
* `getCellRegimes(cell.id)`), does the regime's axis MATCH a
|
|
10
|
+
* coordinate axis the cell occupies? If not, emit a warning.
|
|
11
|
+
* Example: a `LawCell` with `scales: ['classical']` attached to
|
|
12
|
+
* a regime whose `axis === 'scale'` but `tag === 'quantum'`
|
|
13
|
+
* — the cell sits in classical coords but is tagged with a quantum
|
|
14
|
+
* regime → warning.
|
|
15
|
+
*
|
|
16
|
+
* Per P5 Adam-M2 reconciliation, cells carry PLURAL axis arrays
|
|
17
|
+
* (`LawCell.scales`, `LawCell.forces`); the rule reads any of them
|
|
18
|
+
* and matches against the regime tag.
|
|
19
|
+
*
|
|
20
|
+
* Importing this module installs the rule. Consumers who don't
|
|
21
|
+
* want regime checks can simply skip the import.
|
|
22
|
+
*
|
|
23
|
+
* @module core/regime-rule-install
|
|
24
|
+
*/
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=regime-rule-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regime-rule-install.d.ts","sourceRoot":"","sources":["../../src/core/regime-rule-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiring: installs P5's `RegimeConsistency` rule body into the
|
|
3
|
+
* flux-rules registry. Importing this module activates Rule 4
|
|
4
|
+
* (regime-consistency, WARNING tier) on every `UniversalTensor`.
|
|
5
|
+
*
|
|
6
|
+
* Phase 4 of v0.8 Proposal 5.
|
|
7
|
+
*
|
|
8
|
+
* The rule body checks: for each attached regime on a cell (via
|
|
9
|
+
* `getCellRegimes(cell.id)`), does the regime's axis MATCH a
|
|
10
|
+
* coordinate axis the cell occupies? If not, emit a warning.
|
|
11
|
+
* Example: a `LawCell` with `scales: ['classical']` attached to
|
|
12
|
+
* a regime whose `axis === 'scale'` but `tag === 'quantum'`
|
|
13
|
+
* — the cell sits in classical coords but is tagged with a quantum
|
|
14
|
+
* regime → warning.
|
|
15
|
+
*
|
|
16
|
+
* Per P5 Adam-M2 reconciliation, cells carry PLURAL axis arrays
|
|
17
|
+
* (`LawCell.scales`, `LawCell.forces`); the rule reads any of them
|
|
18
|
+
* and matches against the regime tag.
|
|
19
|
+
*
|
|
20
|
+
* Importing this module installs the rule. Consumers who don't
|
|
21
|
+
* want regime checks can simply skip the import.
|
|
22
|
+
*
|
|
23
|
+
* @module core/regime-rule-install
|
|
24
|
+
*/
|
|
25
|
+
import { installRegimeConsistencyRule } from './flux-rules.js';
|
|
26
|
+
import { getCellRegimes } from './regime-registry.js';
|
|
27
|
+
function cellOccupiesAxisTag(cell, axis, tag) {
|
|
28
|
+
switch (cell.kind) {
|
|
29
|
+
case 'law':
|
|
30
|
+
switch (axis) {
|
|
31
|
+
case 'scale': return cell.scales.some((s) => s === tag);
|
|
32
|
+
case 'force': return cell.forces.some((f) => f === tag);
|
|
33
|
+
case 'symmetry': return cell.symmetries.some((s) => s === tag);
|
|
34
|
+
case 'information':
|
|
35
|
+
return cell.informationMeasures?.some((i) => i === tag) ?? false;
|
|
36
|
+
case 'dimension':
|
|
37
|
+
return cell.dimensions?.some((d) => String(d) === tag) ?? false;
|
|
38
|
+
case 'topology':
|
|
39
|
+
return cell.topologies?.some((t) => String(t) === tag) ?? false;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
case 'bridge':
|
|
43
|
+
switch (axis) {
|
|
44
|
+
case 'scale': return cell.source.scale === tag || cell.target.scale === tag;
|
|
45
|
+
case 'force': return cell.source.force === tag || cell.target.force === tag;
|
|
46
|
+
case 'symmetry': return cell.source.symmetry === tag || cell.target.symmetry === tag;
|
|
47
|
+
case 'information':
|
|
48
|
+
return cell.source.information === tag || cell.target.information === tag;
|
|
49
|
+
case 'dimension':
|
|
50
|
+
return String(cell.source.dimension) === tag || String(cell.target.dimension) === tag;
|
|
51
|
+
case 'topology':
|
|
52
|
+
return String(cell.source.topology) === tag || String(cell.target.topology) === tag;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
case 'emergence':
|
|
56
|
+
return cell.indices.some((ix) => {
|
|
57
|
+
switch (axis) {
|
|
58
|
+
case 'scale': return ix.scale === tag;
|
|
59
|
+
case 'force': return ix.force === tag;
|
|
60
|
+
case 'symmetry': return ix.symmetry === tag;
|
|
61
|
+
case 'information': return ix.information === tag;
|
|
62
|
+
case 'dimension': return String(ix.dimension) === tag;
|
|
63
|
+
case 'topology': return String(ix.topology) === tag;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
installRegimeConsistencyRule((cell) => {
|
|
70
|
+
const regimes = getCellRegimes(cell.id);
|
|
71
|
+
if (!regimes || regimes.length === 0)
|
|
72
|
+
return { ok: true };
|
|
73
|
+
const mismatches = regimes.filter((r) => !cellOccupiesAxisTag(cell, r.axis, r.tag));
|
|
74
|
+
if (mismatches.length === 0)
|
|
75
|
+
return { ok: true };
|
|
76
|
+
const m = mismatches[0];
|
|
77
|
+
return {
|
|
78
|
+
ok: true, // WARNING tier — does not throw
|
|
79
|
+
diagnostic: {
|
|
80
|
+
severity: 'warning',
|
|
81
|
+
ruleName: 'regime-consistency',
|
|
82
|
+
cellId: cell.id,
|
|
83
|
+
message: `Cell '${cell.id}' is attached to regime '${m.tag}' on axis '${m.axis}' ` +
|
|
84
|
+
`(displayName: '${m.displayName}') but the cell does not occupy any ` +
|
|
85
|
+
`${m.axis} coordinate matching that tag. Either correct the attachment ` +
|
|
86
|
+
`or extend the cell's ${m.axis} coordinates.`,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=regime-rule-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regime-rule-install.js","sourceRoot":"","sources":["../../src/core/regime-rule-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in regime registrations — Phase 2 of v0.8 Proposal 5.
|
|
3
|
+
*
|
|
4
|
+
* Pre-registers the v0.6-shipped closed-union values from
|
|
5
|
+
* `src/core/types.ts` under the corresponding `AxisName`. This
|
|
6
|
+
* gives downstream consumers a stable starting point: every
|
|
7
|
+
* value already in the catalog has an entry in the regime
|
|
8
|
+
* registry without per-bridge migration.
|
|
9
|
+
*
|
|
10
|
+
* Per P5 Decision #1, this does NOT close the new physics-regime
|
|
11
|
+
* taxonomy (e.g., no "classical-mechanics", "QFT" regimes
|
|
12
|
+
* shipped — those are v0.9 per-bridge physics review).
|
|
13
|
+
*
|
|
14
|
+
* Module-load side effect: registers every value below at import
|
|
15
|
+
* time. Idempotent — re-importing or double-importing is a
|
|
16
|
+
* no-op (see `defineRegime` idempotency in
|
|
17
|
+
* `regime-registry.ts`).
|
|
18
|
+
*
|
|
19
|
+
* @module core/regimes-builtins
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=regimes-builtins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regimes-builtins.d.ts","sourceRoot":"","sources":["../../src/core/regimes-builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in regime registrations — Phase 2 of v0.8 Proposal 5.
|
|
3
|
+
*
|
|
4
|
+
* Pre-registers the v0.6-shipped closed-union values from
|
|
5
|
+
* `src/core/types.ts` under the corresponding `AxisName`. This
|
|
6
|
+
* gives downstream consumers a stable starting point: every
|
|
7
|
+
* value already in the catalog has an entry in the regime
|
|
8
|
+
* registry without per-bridge migration.
|
|
9
|
+
*
|
|
10
|
+
* Per P5 Decision #1, this does NOT close the new physics-regime
|
|
11
|
+
* taxonomy (e.g., no "classical-mechanics", "QFT" regimes
|
|
12
|
+
* shipped — those are v0.9 per-bridge physics review).
|
|
13
|
+
*
|
|
14
|
+
* Module-load side effect: registers every value below at import
|
|
15
|
+
* time. Idempotent — re-importing or double-importing is a
|
|
16
|
+
* no-op (see `defineRegime` idempotency in
|
|
17
|
+
* `regime-registry.ts`).
|
|
18
|
+
*
|
|
19
|
+
* @module core/regimes-builtins
|
|
20
|
+
*/
|
|
21
|
+
import { defineRegime } from './regime-registry.js';
|
|
22
|
+
const BUILTIN_SOURCE = 'universal-physics-tensor';
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Scale axis — 4 entries
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
const scaleTags = [
|
|
27
|
+
{ tag: 'quantum', displayName: 'Quantum (< 10^-9 m)' },
|
|
28
|
+
{ tag: 'mesoscopic', displayName: 'Mesoscopic (10^-9 to 10^-6 m)' },
|
|
29
|
+
{ tag: 'classical', displayName: 'Classical (10^-6 to 10^26 m)' },
|
|
30
|
+
{ tag: 'cosmological', displayName: 'Cosmological (> 10^26 m)' },
|
|
31
|
+
];
|
|
32
|
+
for (const { tag, displayName } of scaleTags) {
|
|
33
|
+
defineRegime({
|
|
34
|
+
axis: 'scale',
|
|
35
|
+
tag,
|
|
36
|
+
displayName,
|
|
37
|
+
provenance: { registeredBy: BUILTIN_SOURCE },
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Force axis — 5 entries
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
const forceTags = [
|
|
44
|
+
{ tag: 'gravitational', displayName: 'Gravitational' },
|
|
45
|
+
{ tag: 'electromagnetic', displayName: 'Electromagnetic' },
|
|
46
|
+
{ tag: 'weak', displayName: 'Weak nuclear' },
|
|
47
|
+
{ tag: 'strong', displayName: 'Strong nuclear' },
|
|
48
|
+
{ tag: 'emergent', displayName: 'Emergent (friction, tension, etc.)' },
|
|
49
|
+
];
|
|
50
|
+
for (const { tag, displayName } of forceTags) {
|
|
51
|
+
defineRegime({
|
|
52
|
+
axis: 'force',
|
|
53
|
+
tag,
|
|
54
|
+
displayName,
|
|
55
|
+
provenance: { registeredBy: BUILTIN_SOURCE },
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Symmetry axis — 5 entries (Eve-M1: NOT 4 + placeholder)
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
const symmetryTags = [
|
|
62
|
+
{ tag: 'poincare', displayName: 'Poincaré (spacetime)' },
|
|
63
|
+
{ tag: 'gauge', displayName: 'Gauge (U(1), SU(2), SU(3))' },
|
|
64
|
+
{ tag: 'conformal', displayName: 'Conformal (scale invariance)' },
|
|
65
|
+
{ tag: 'susy', displayName: 'Supersymmetry' },
|
|
66
|
+
{ tag: 'emergent', displayName: 'Emergent (effective symmetries)' },
|
|
67
|
+
];
|
|
68
|
+
for (const { tag, displayName } of symmetryTags) {
|
|
69
|
+
defineRegime({
|
|
70
|
+
axis: 'symmetry',
|
|
71
|
+
tag,
|
|
72
|
+
displayName,
|
|
73
|
+
provenance: { registeredBy: BUILTIN_SOURCE },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Information axis — 4 entries
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
const informationTags = [
|
|
80
|
+
{ tag: 'vonNeumann', displayName: 'von Neumann entropy' },
|
|
81
|
+
{ tag: 'shannon', displayName: 'Shannon entropy' },
|
|
82
|
+
{ tag: 'kolmogorov', displayName: 'Kolmogorov complexity' },
|
|
83
|
+
{ tag: 'quantumDiscord', displayName: 'Quantum discord' },
|
|
84
|
+
];
|
|
85
|
+
for (const { tag, displayName } of informationTags) {
|
|
86
|
+
defineRegime({
|
|
87
|
+
axis: 'information',
|
|
88
|
+
tag,
|
|
89
|
+
displayName,
|
|
90
|
+
provenance: { registeredBy: BUILTIN_SOURCE },
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// dimension and topology axes are integer-valued; no built-in
|
|
94
|
+
// registrations ship (per P1 Phase 0 census + P5 Decision #4 —
|
|
95
|
+
// integer axes are wildcards).
|
|
96
|
+
//# sourceMappingURL=regimes-builtins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regimes-builtins.js","sourceRoot":"","sources":["../../src/core/regimes-builtins.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tensor.d.ts
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* - E: Emergent phenomena (higher-order correlations)
|
|
12
12
|
*/
|
|
13
13
|
import type { TensorConfig, TensorIndices, PhysicalLaw, BridgeEquation, EmergentPhenomenon } from './types.js';
|
|
14
|
+
import type { Cell } from './cell.js';
|
|
15
|
+
import type { FluxReport } from './flux-rules.js';
|
|
14
16
|
export declare class UniversalTensor {
|
|
15
17
|
private readonly config;
|
|
16
18
|
private readonly knownLaws;
|
|
@@ -23,6 +25,17 @@ export declare class UniversalTensor {
|
|
|
23
25
|
* may coexist in a single tensor cell without overwriting each other).
|
|
24
26
|
*/
|
|
25
27
|
private readonly tensorData;
|
|
28
|
+
/**
|
|
29
|
+
* v0.7-p2 Phase 2 Task 2.3: Rule set used by `addCell` (ERROR-tier
|
|
30
|
+
* violations throw) and by `fluxDiagnostics()` (re-runs across all
|
|
31
|
+
* populated cells). Default = `V07_CELL_RULES` (Rule 2 + Rule 3
|
|
32
|
+
* from `flux-rules.ts`). Rule 1 (dimensional consistency) fires
|
|
33
|
+
* from the catalog adapter (Phase 3), not from `addCell`.
|
|
34
|
+
*
|
|
35
|
+
* Per Decision #9, this field is `@internal`. No public mutator
|
|
36
|
+
* is exposed in v0.7 (rule customization is a v0.8+ concern).
|
|
37
|
+
*/
|
|
38
|
+
private readonly fluxRules;
|
|
26
39
|
constructor(config: TensorConfig);
|
|
27
40
|
/**
|
|
28
41
|
* Add a known physical law to the tensor.
|
|
@@ -69,6 +82,105 @@ export declare class UniversalTensor {
|
|
|
69
82
|
* Returns true if newly added, false if it replaced an existing phenomenon.
|
|
70
83
|
*/
|
|
71
84
|
addEmergence(phenomenon: EmergentPhenomenon): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Add a typed `Cell` (LawCell, BridgeCell, or EmergenceCell) to the
|
|
87
|
+
* tensor. Dispatches by the cell's `kind` discriminator to the
|
|
88
|
+
* existing `addLaw` / `addBridge` / `addEmergence` paths via internal
|
|
89
|
+
* adapters that translate the string-vocabulary `confidence` to the
|
|
90
|
+
* legacy numeric range.
|
|
91
|
+
*
|
|
92
|
+
* Returns the same boolean the dispatched method returns: `true` if
|
|
93
|
+
* newly added, `false` if it replaced an existing entry with the same
|
|
94
|
+
* id.
|
|
95
|
+
*
|
|
96
|
+
* v0.7 Proposal 3 Phase 2 Task 2.1. Internal callers that want
|
|
97
|
+
* type-safe ingestion through the discriminated union use `addCell`;
|
|
98
|
+
* callers that want the old typed methods continue to use `addLaw` /
|
|
99
|
+
* `addBridge` / `addEmergence` directly.
|
|
100
|
+
*
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
addCell(cell: Cell): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Internal helper: roll back the legacy `addLaw`/`addBridge`/
|
|
106
|
+
* `addEmergence` storage for a cell that just failed a rule check.
|
|
107
|
+
* Used by `addCell` to maintain fail-atomic semantics on
|
|
108
|
+
* ERROR-tier rule violations.
|
|
109
|
+
*
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
private rollbackCell;
|
|
113
|
+
/**
|
|
114
|
+
* Number of distinct (key, value) pairs in the underlying sparse
|
|
115
|
+
* storage. Counts UNIQUE coordinates that hold at least one entry.
|
|
116
|
+
*
|
|
117
|
+
* Note: a single multi-scale `LawCell` (e.g.
|
|
118
|
+
* `scales: ['quantum', 'classical']`, `forces: ['gravitational']`)
|
|
119
|
+
* fans out to 2 coordinates, so `populatedCount()` returns 2.
|
|
120
|
+
* Use `populatedCells()` for the deduped count of distinct `Cell`
|
|
121
|
+
* objects.
|
|
122
|
+
*
|
|
123
|
+
* @public
|
|
124
|
+
*/
|
|
125
|
+
populatedCount(): number;
|
|
126
|
+
/**
|
|
127
|
+
* All cells currently in the tensor, deduplicated by `id`. Each
|
|
128
|
+
* underlying entry (law, bridge, emergence) is converted back to
|
|
129
|
+
* its `Cell` representation via the inverse adapters in `cell.ts`.
|
|
130
|
+
*
|
|
131
|
+
* Per Eve-R15 semantics: `populatedCells().length` is the count of
|
|
132
|
+
* distinct `Cell` objects (one per `id`). `populatedCount()` counts
|
|
133
|
+
* unique TENSOR COORDINATES (one per fan-out per Decision #6),
|
|
134
|
+
* which may be larger.
|
|
135
|
+
*
|
|
136
|
+
* @public
|
|
137
|
+
*/
|
|
138
|
+
populatedCells(): ReadonlyArray<Cell>;
|
|
139
|
+
/**
|
|
140
|
+
* For each populated coordinate, enumerate the single-axis-flip
|
|
141
|
+
* neighbors that are NOT currently populated. Each "neighbor" is
|
|
142
|
+
* a `TensorIndices` value that differs from a populated coordinate
|
|
143
|
+
* in exactly one axis, where the differing axis value is drawn
|
|
144
|
+
* from the config-declared set for that axis (Decision #10).
|
|
145
|
+
*
|
|
146
|
+
* Integer axes (`dimension`, `topology`) are NOT enumerable from
|
|
147
|
+
* `TensorConfig` (no declared range exists) and are treated as
|
|
148
|
+
* wildcards — single-axis flips along those axes are NOT
|
|
149
|
+
* generated.
|
|
150
|
+
*
|
|
151
|
+
* Returns a deduplicated `ReadonlyArray<TensorIndices>` (no two
|
|
152
|
+
* elements serialize to the same key under `serializeIndices`).
|
|
153
|
+
*
|
|
154
|
+
* @public
|
|
155
|
+
*/
|
|
156
|
+
unpopulatedNeighborhoods(): ReadonlyArray<TensorIndices>;
|
|
157
|
+
/**
|
|
158
|
+
* Run the registered flux rules across every populated cell and
|
|
159
|
+
* return an aggregated `FluxReport`. Re-runs on every call
|
|
160
|
+
* (no cached `pendingDiagnostics` field — Eve-R8 resolution).
|
|
161
|
+
*
|
|
162
|
+
* @public
|
|
163
|
+
*/
|
|
164
|
+
fluxDiagnostics(): FluxReport;
|
|
165
|
+
/**
|
|
166
|
+
* Parse a key produced by `serializeIndices` back into a
|
|
167
|
+
* `TensorIndices` value. Returns null if the key includes a bridge
|
|
168
|
+
* separator (' -> '), since bridge keys are off-diagonal and don't
|
|
169
|
+
* correspond to a single `TensorIndices` coordinate.
|
|
170
|
+
*
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
private deserializeKey;
|
|
174
|
+
/**
|
|
175
|
+
* Enumerate single-axis-flip neighbors of `coord`. For each
|
|
176
|
+
* enumerable axis (scale, force, symmetry, information), generate
|
|
177
|
+
* a neighbor with that axis replaced by every OTHER config-declared
|
|
178
|
+
* value. The integer axes (dimension, topology) are wildcards
|
|
179
|
+
* and not enumerated.
|
|
180
|
+
*
|
|
181
|
+
* @internal
|
|
182
|
+
*/
|
|
183
|
+
private enumerateAxisFlips;
|
|
72
184
|
/**
|
|
73
185
|
* Return the IDs of laws and emergent phenomena stored at the diagonal cell
|
|
74
186
|
* addressed by the given indices.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/core/tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,EAGnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/core/tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAY,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AA0F5E,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IAEpE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IAEtD;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAExC,MAAM,EAAE,YAAY;IAkChC;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;IAqCxC;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO;IA2BjD;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;;OAGG;IACI,YAAY,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO;IA+B5D;;;;;;;;;;;;;;;;;OAiBG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAyCnC;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAyCpB;;;;;;;;;;;OAWG;IACI,cAAc,IAAI,MAAM;IAI/B;;;;;;;;;;;OAWG;IACI,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC;IAQ5C;;;;;;;;;;;;;;;;OAgBG;IACI,wBAAwB,IAAI,aAAa,CAAC,aAAa,CAAC;IAgB/D;;;;;;OAMG;IACI,eAAe,IAAI,UAAU;IAoBpC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;;;;;;OAQG;IACH,OAAO,CAAE,kBAAkB;IAoB3B;;;;OAIG;IACI,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE;IAMxD;;;OAGG;IACI,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE;IAMpF;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,EAAE;IAYvD;;OAEG;IACI,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,cAAc,EAAE;IAelF;;OAEG;IACI,OAAO,IAAI,WAAW,EAAE;IAI/B;;OAEG;IACI,UAAU,IAAI,cAAc,EAAE;IAIrC;;OAEG;IACI,YAAY,IAAI,kBAAkB,EAAE;IAI3C;;OAEG;IACI,QAAQ;;;;;;;;QAaX,oFAAoF;;;IAKxF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACH,OAAO,CAAC,YAAY;CA2BrB"}
|