universal-physics-tensor 0.25.0 → 0.29.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.
Files changed (68) hide show
  1. package/README.md +12 -5
  2. package/bin/upt.mjs +843 -751
  3. package/dist/bridges/be52-mercury-confrontation.d.ts +72 -0
  4. package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -0
  5. package/dist/bridges/be52-mercury-confrontation.js +67 -0
  6. package/dist/bridges/be52-mercury-confrontation.js.map +1 -0
  7. package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
  8. package/dist/bridges/confrontation-coverage.js +4 -1
  9. package/dist/bridges/confrontation-coverage.js.map +1 -1
  10. package/dist/canonical/entries/atomic.d.ts +17 -0
  11. package/dist/canonical/entries/atomic.d.ts.map +1 -0
  12. package/dist/canonical/entries/atomic.js +71 -0
  13. package/dist/canonical/entries/atomic.js.map +1 -0
  14. package/dist/canonical/entries/electromagnetism.d.ts +18 -0
  15. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -0
  16. package/dist/canonical/entries/electromagnetism.js +212 -0
  17. package/dist/canonical/entries/electromagnetism.js.map +1 -0
  18. package/dist/canonical/entries/fluids-waves.d.ts +18 -0
  19. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -0
  20. package/dist/canonical/entries/fluids-waves.js +130 -0
  21. package/dist/canonical/entries/fluids-waves.js.map +1 -0
  22. package/dist/canonical/entries/mechanics.d.ts +18 -0
  23. package/dist/canonical/entries/mechanics.d.ts.map +1 -0
  24. package/dist/canonical/entries/mechanics.js +275 -0
  25. package/dist/canonical/entries/mechanics.js.map +1 -0
  26. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts +18 -0
  27. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -0
  28. package/dist/canonical/entries/thermo-nuclear-cosmo.js +56 -0
  29. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -0
  30. package/dist/canonical/registry.d.ts.map +1 -1
  31. package/dist/canonical/registry.js +10 -0
  32. package/dist/canonical/registry.js.map +1 -1
  33. package/dist/composition/compose.d.ts.map +1 -1
  34. package/dist/composition/compose.js +14 -0
  35. package/dist/composition/compose.js.map +1 -1
  36. package/dist/composition/dimension-adjacency.d.ts +39 -0
  37. package/dist/composition/dimension-adjacency.d.ts.map +1 -0
  38. package/dist/composition/dimension-adjacency.js +44 -0
  39. package/dist/composition/dimension-adjacency.js.map +1 -0
  40. package/dist/composition/graph-viz.d.ts +1 -1
  41. package/dist/composition/graph-viz.d.ts.map +1 -1
  42. package/dist/composition/graph-viz.js +2 -0
  43. package/dist/composition/graph-viz.js.map +1 -1
  44. package/dist/composition/index.d.ts +5 -0
  45. package/dist/composition/index.d.ts.map +1 -1
  46. package/dist/composition/index.js +2 -0
  47. package/dist/composition/index.js.map +1 -1
  48. package/dist/composition/user-equation.d.ts +136 -0
  49. package/dist/composition/user-equation.d.ts.map +1 -0
  50. package/dist/composition/user-equation.js +247 -0
  51. package/dist/composition/user-equation.js.map +1 -0
  52. package/dist/dimensional/dimension-inference.d.ts +37 -0
  53. package/dist/dimensional/dimension-inference.d.ts.map +1 -0
  54. package/dist/dimensional/dimension-inference.js +79 -0
  55. package/dist/dimensional/dimension-inference.js.map +1 -0
  56. package/dist/index.d.ts +10 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +12 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/numerical/formula-dimension.d.ts +16 -1
  61. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  62. package/dist/numerical/formula-dimension.js +116 -84
  63. package/dist/numerical/formula-dimension.js.map +1 -1
  64. package/dist/numerical/formula-registry.d.ts +11 -1
  65. package/dist/numerical/formula-registry.d.ts.map +1 -1
  66. package/dist/numerical/formula-registry.js +12 -0
  67. package/dist/numerical/formula-registry.js.map +1 -1
  68. package/package.json +92 -92
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/composition/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAgBnB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsC;IACzE;QACE,IAAI,EAAE,qBAAqB;QAC3B,EAAE,EAAE,aAAa;QACjB,SAAS,EACP,+DAA+D;YAC/D,2DAA2D;YAC3D,2DAA2D;YAC3D,+DAA+D;YAC/D,gDAAgD;QAClD,QAAQ,EAAE,qDAAqD;KAChE;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,EAAE,EAAE,oBAAoB;QACxB,SAAS,EACP,+DAA+D;YAC/D,oEAAoE;YACpE,oEAAoE;YACpE,sEAAsE;YACtE,mEAAmE;YACnE,wEAAwE;YACxE,wEAAwE;YACxE,gEAAgE;YAChE,kDAAkD;QACpD,QAAQ,EAAE,iDAAiD;KAC5D;CACF,CAAC;AAqBF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAElC;IACF,kEAAkE;IAClE,mEAAmE;IACnE,iEAAiE;IACjE,iCAAiC,EAAE;QACjC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ;YACjB,SAAS,EACP,gEAAgE;gBAChE,6DAA6D;gBAC7D,gDAAgD;SACnD;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAmC;IACtD,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,CAAiB,EACjB,CAAiB;IAEjB,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAcD,SAAS,YAAY,CACnB,KAAiB,EACjB,MAAkB,EAClB,eAAkD;IAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI;YAAE,SAAS;QAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC1B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,wBAAwB,CAChC,kBAAkB,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,EAAE,oBAAoB;QAC5D,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,sBAAsB,MAAM,CAAC,OAAO;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC,wCAAwC,CACxD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAiB,EACjB,MAAkB,EAClB,OAAuB,EAAE;IAEzB,MAAM,eAAe,GAAG;QACtB,GAAG,wBAAwB;QAC3B,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;KAChC,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAClD,KAAK,EACL,MAAM,EACN,eAAe,CAChB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,yBAAyB,CACjC,kBAAkB,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,EAAE,uBAAuB;YAC/D,cAAc,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YACjE,OAAO,QAAQ,CAAC,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAEtE,qEAAqE;IACrE,qEAAqE;IACrE,kEAAkE;IAClE,kEAAkE;IAClE,iEAAiE;IACjE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG;QACrB,GAAG,IAAI,GAAG,CACR,gBAAgB;aACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtB;KACF,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAuB;QACvC,GAAG,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;KACxB,CAAC;IACF,MAAM,SAAS,GAA2B,EAAE,CAAC,CAAC,uCAAuC;IACrF,MAAM,gBAAgB,GAAuB,EAAE,CAAC;IAChD,IAAI,cAAc,GAAe,CAAC,GAAG,gBAAgB,CAAC,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,UAAU,sBAAsB,IAAI,YAAY;gBAChE,6BAA6B,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAC5D,sBAAsB,gBAAgB;qBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,IAAI,CAAC,6CAA6C;gBAC1D,qDAAqD;gBACrD,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS,CAAC,iCAAiC;QACvE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QACvC,IACE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAC9C,CAAC;YACD,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,UAAU,0BAA0B,OAAO,IAAI;gBAC/D,gEAAgE,CACnE,CAAC;QACJ,CAAC;QACD,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAChE,CAAC;QACF,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;6EAEyE;IACzE,MAAM,iBAAiB,GAAG,CACxB,MAA8B,EAC9B,YAAoB,EACI,EAAE;QAC1B,MAAM,EAAE,GAA2B,EAAE,GAAG,MAAM,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG;QACrB,WAAW,EACT,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,sBAAsB;YAClD,GAAG,QAAQ,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG;QACpD,iEAAiE;QACjE,iEAAiE;QACjE,kEAAkE;QAClE,gEAAgE;QAChE,iEAAiE;QACjE,SAAS,EAAE,CAAC,MAA8B,EAAW,EAAE;YACrD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1E,CAAC;KACF,CAAC;IAEF,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;IAEvC,OAAO;QACL,EAAE;QACF,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;QACtE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,MAAM,MAAM,CAAC,KAAK,EAAE;QACzC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QAC9D,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,oBAAoB,CAC5B,GAAG,EAAE,4CAA4C;oBAC/C,IAAI,cAAc,CAAC,WAAW,GAAG,CACpC,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,oBAAoB,CAC5B,GAAG,EAAE,4CAA4C;oBAC/C,IAAI,cAAc,CAAC,WAAW,GAAG,CACpC,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,EAAE;QAClD,GAAG,CAAC,iBAAiB,KAAK,IAAI;YAC5B,CAAC,CAAC,EAAE,kBAAkB,EAAE,iBAAiB,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC7B,CAAC,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/composition/compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Dimension-adjacency — a review surface for quantities that are absent from a
3
+ * reference vocabulary BY NAME but match a reference quantity BY DIMENSION.
4
+ *
5
+ * Name-based graph linkage misses connections hidden by a name divergence (e.g.
6
+ * the catalog's `thermal-de-broglie-wavelength` vs the canonical L-layer's
7
+ * `thermal-wavelength` — the same physical quantity). This sweep surfaces such
8
+ * candidates so a reviewer can spot true aliases and registry gaps.
9
+ *
10
+ * It is strictly a **review surface, never an auto-merge**: same dimension does
11
+ * NOT imply same quantity (`effective-mass` ≠ `mass`, every dimensionless
12
+ * coupling shares `[dimensionless]`), so dimensionless quantities are excluded
13
+ * and the output is for human adjudication only.
14
+ *
15
+ * @module composition/dimension-adjacency
16
+ */
17
+ import type { Dimension } from '../dimensional/types.js';
18
+ /** A name-divergent quantity and the reference quantities it dimension-matches. */
19
+ export interface DimensionAdjacency {
20
+ /** The quantity name (absent from the reference vocabulary). */
21
+ readonly name: string;
22
+ /** Its formatted dimension. */
23
+ readonly dim: string;
24
+ /** Reference quantities of the SAME dimension — candidates for review. */
25
+ readonly candidates: readonly string[];
26
+ }
27
+ /**
28
+ * For every distinct quantity whose `name` is absent from `referenceDims` but
29
+ * whose `dim` matches ≥1 reference quantity (dimensionless excluded), list the
30
+ * same-dimension reference candidates. Sorted by quantity name; candidates
31
+ * sorted. A review surface — same dimension ≠ same quantity.
32
+ *
33
+ * @public
34
+ */
35
+ export declare function dimensionAdjacency(quantities: Iterable<{
36
+ readonly name: string;
37
+ readonly dim: Dimension;
38
+ }>, referenceDims: ReadonlyMap<string, Dimension>): DimensionAdjacency[];
39
+ //# sourceMappingURL=dimension-adjacency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimension-adjacency.d.ts","sourceRoot":"","sources":["../../src/composition/dimension-adjacency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC,EACxE,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAC5C,kBAAkB,EAAE,CAatB"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Dimension-adjacency — a review surface for quantities that are absent from a
3
+ * reference vocabulary BY NAME but match a reference quantity BY DIMENSION.
4
+ *
5
+ * Name-based graph linkage misses connections hidden by a name divergence (e.g.
6
+ * the catalog's `thermal-de-broglie-wavelength` vs the canonical L-layer's
7
+ * `thermal-wavelength` — the same physical quantity). This sweep surfaces such
8
+ * candidates so a reviewer can spot true aliases and registry gaps.
9
+ *
10
+ * It is strictly a **review surface, never an auto-merge**: same dimension does
11
+ * NOT imply same quantity (`effective-mass` ≠ `mass`, every dimensionless
12
+ * coupling shares `[dimensionless]`), so dimensionless quantities are excluded
13
+ * and the output is for human adjudication only.
14
+ *
15
+ * @module composition/dimension-adjacency
16
+ */
17
+ import { DIMENSIONLESS } from '../dimensional/types.js';
18
+ import { equals, format } from '../dimensional/algebra.js';
19
+ /**
20
+ * For every distinct quantity whose `name` is absent from `referenceDims` but
21
+ * whose `dim` matches ≥1 reference quantity (dimensionless excluded), list the
22
+ * same-dimension reference candidates. Sorted by quantity name; candidates
23
+ * sorted. A review surface — same dimension ≠ same quantity.
24
+ *
25
+ * @public
26
+ */
27
+ export function dimensionAdjacency(quantities, referenceDims) {
28
+ const refEntries = [...referenceDims.entries()];
29
+ const out = new Map();
30
+ for (const q of quantities) {
31
+ if (out.has(q.name) || referenceDims.has(q.name))
32
+ continue; // dedupe + name-match skip
33
+ if (equals(q.dim, DIMENSIONLESS))
34
+ continue; // too generic to be a useful candidate
35
+ const candidates = refEntries
36
+ .filter(([, d]) => equals(d, q.dim))
37
+ .map(([n]) => n)
38
+ .sort();
39
+ if (candidates.length)
40
+ out.set(q.name, { name: q.name, dim: format(q.dim), candidates });
41
+ }
42
+ return [...out.values()].sort((a, b) => a.name.localeCompare(b.name));
43
+ }
44
+ //# sourceMappingURL=dimension-adjacency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimension-adjacency.js","sourceRoot":"","sources":["../../src/composition/dimension-adjacency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAY3D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAwE,EACxE,aAA6C;IAE7C,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,2BAA2B;QACvF,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC;YAAE,SAAS,CAAC,uCAAuC;QACnF,MAAM,UAAU,GAAG,UAAU;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACf,IAAI,EAAE,CAAC;QACV,IAAI,UAAU,CAAC,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -26,7 +26,7 @@ import type { BridgeEdge } from './edge.js';
26
26
  *
27
27
  * @public
28
28
  */
29
- export type VizStatus = 'law' | 'established' | 'speculative' | 'highly-speculative' | 'proposed';
29
+ export type VizStatus = 'law' | 'established' | 'speculative' | 'highly-speculative' | 'proposed' | 'user';
30
30
  /**
31
31
  * A normalized equation junction: n source quantities → 1 target. The render
32
32
  * model's unit of "equation", decoupled from both `BridgeEdge` and the internal
@@ -1 +1 @@
1
- {"version":3,"file":"graph-viz.d.ts","sourceRoot":"","sources":["../../src/composition/graph-viz.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GACjB,KAAK,GACL,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,UAAU,CAAC;AAEf;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,SAAS,IAAI,MAAM,CAAC;IACpB,KAAK,IAAI,MAAM,CAAC;CACjB;AAaD;;;;4DAI4D;AAC5D,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAS5D;AAqND;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,IAAI,GAAE,UAAe,GACpB,QAAQ,CA6BV"}
1
+ {"version":3,"file":"graph-viz.d.ts","sourceRoot":"","sources":["../../src/composition/graph-viz.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GACjB,KAAK,GACL,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,UAAU,GACV,MAAM,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,SAAS,IAAI,MAAM,CAAC;IACpB,KAAK,IAAI,MAAM,CAAC;CACjB;AAcD;;;;4DAI4D;AAC5D,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAS5D;AAsND;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,IAAI,GAAE,UAAe,GACpB,QAAQ,CA6BV"}
@@ -26,6 +26,7 @@ const STATUS_STYLE = {
26
26
  speculative: { fill: '#fdebc8', stroke: '#c9881b', dashed: false }, // amber
27
27
  'highly-speculative': { fill: '#f5c6c6', stroke: '#c0392b', dashed: false }, // red
28
28
  proposed: { fill: '#e6e6e6', stroke: '#888888', dashed: true }, // unadjudicated — grey dashed
29
+ user: { fill: '#e9d8fd', stroke: '#6b46c1', dashed: false }, // user-supplied — violet
29
30
  };
30
31
  /** Map a `BridgeEdge` to a `VizJunction` (raw quantity names).
31
32
  *
@@ -124,6 +125,7 @@ const STATUSES_IN_ORDER = [
124
125
  'speculative',
125
126
  'highly-speculative',
126
127
  'proposed',
128
+ 'user',
127
129
  ];
128
130
  /**
129
131
  * Drive a format-specific cluster renderer over the standard layout, identical
@@ -1 +1 @@
1
- {"version":3,"file":"graph-viz.js","sourceRoot":"","sources":["../../src/composition/graph-viz.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-viz.js","sourceRoot":"","sources":["../../src/composition/graph-viz.ts"],"names":[],"mappings":"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"}
@@ -38,4 +38,9 @@ export { SymbolicEvalError } from './expr-eval.js';
38
38
  export type { VizStatus, VizJunction, VizCluster, VizOptions, VizModel, } from './graph-viz.js';
39
39
  export { buildVizModel, edgeToJunction } from './graph-viz.js';
40
40
  export { renderDotToSvg, SvgRendererUnavailableError } from './graph-viz-svg.js';
41
+ export type { DimensionAdjacency } from './dimension-adjacency.js';
42
+ export { dimensionAdjacency } from './dimension-adjacency.js';
43
+ export type { UserEquation, EquationLanding } from './user-equation.js';
44
+ export type { EquationAnalysis, EquationHint } from './user-equation.js';
45
+ export { parseUserEquation, resolveToCatalogName, suggestQuantities, suggestByDimension, equationLanding, analyzeUserEquation, UserEquationError, } from './user-equation.js';
41
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D,YAAY,EACV,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,YAAY,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"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"}
@@ -27,4 +27,6 @@ export { composeSymbolic, SymbolicCompositionError } from './compose-symbolic.js
27
27
  export { SymbolicEvalError } from './expr-eval.js';
28
28
  export { buildVizModel, edgeToJunction } from './graph-viz.js';
29
29
  export { renderDotToSvg, SvgRendererUnavailableError } from './graph-viz-svg.js';
30
+ export { dimensionAdjacency } from './dimension-adjacency.js';
31
+ export { parseUserEquation, resolveToCatalogName, suggestQuantities, suggestByDimension, equationLanding, analyzeUserEquation, UserEquationError, } from './user-equation.js';
30
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAO7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/composition/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAO7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * User-equation injection — turn a free-form `TARGET = EXPR` string into a graph
3
+ * junction (a target quantity + its source quantities), resolve the user's
4
+ * symbols onto the catalog vocabulary, suggest near-misses, and report where the
5
+ * injected junction lands in a built {@link VizModel}.
6
+ *
7
+ * Free-form means no dimensions: source quantities are the RHS's free variables
8
+ * — extracted by the active formula parser via {@link getFormulaParser} (the
9
+ * MathTS expression parser when the optional peer is installed, else the built-in
10
+ * one; both already drop constants like `pi`/`tau`, numbers, and functions) —
11
+ * minus the physics {@link CONSTANTS}. Multi-word quantities are typed with
12
+ * underscores; resolution tries the literal form first, then the `_`↔`-` swap, so
13
+ * both the catalog's hyphenated (`photon-energy`) and underscored
14
+ * (`impact_parameter`) names connect.
15
+ *
16
+ * Pure: no file I/O. The injected junction is rendered as an `extraJunction`
17
+ * (status `'user'`) and is never written into the catalog.
18
+ *
19
+ * @module composition/user-equation
20
+ */
21
+ import type { VizModel, VizJunction } from './graph-viz.js';
22
+ import type { Dimension } from '../dimensional/types.js';
23
+ /** Thrown when a user equation cannot be parsed into a target + sources. @public */
24
+ export declare class UserEquationError extends Error {
25
+ constructor(message: string);
26
+ }
27
+ /**
28
+ * A parsed user equation: the target quantity and its source quantities, as
29
+ * written (underscores preserved; constants/numbers/functions removed).
30
+ *
31
+ * @public
32
+ */
33
+ export interface UserEquation {
34
+ readonly target: string;
35
+ readonly sources: readonly string[];
36
+ /** The original `TARGET = EXPR` text, for the junction label. */
37
+ readonly text: string;
38
+ }
39
+ /**
40
+ * Parse `TARGET = EXPR` into `{ target, sources }`. The target is the text left
41
+ * of the first `=`; the sources are the RHS's free variables minus the physics
42
+ * constants.
43
+ *
44
+ * Uses the active formula parser (MathTS when installed, built-in otherwise) to
45
+ * extract the RHS's free variables.
46
+ *
47
+ * @throws {UserEquationError} on a missing `=`, an empty target, an unparseable
48
+ * RHS, or an RHS with no source quantities.
49
+ * @public
50
+ */
51
+ export declare function parseUserEquation(equation: string): Promise<UserEquation>;
52
+ /**
53
+ * Resolve a user symbol to a catalog quantity name: the literal name first, then
54
+ * the `_`→`-` and `-`→`_` swaps, against `catalogNames`. Returns `null` if none
55
+ * match.
56
+ *
57
+ * @public
58
+ */
59
+ export declare function resolveToCatalogName(name: string, catalogNames: ReadonlySet<string>): string | null;
60
+ /**
61
+ * Up to `k` catalog names most similar to `name` — the "did you mean?" set for an
62
+ * unmatched user symbol. Names where one string contains the other rank first,
63
+ * then by edit distance, then by length.
64
+ *
65
+ * @public
66
+ */
67
+ export declare function suggestQuantities(name: string, catalogNames: Iterable<string>, k?: number): string[];
68
+ /**
69
+ * Catalog quantity names whose dimension equals `dim` (sorted, capped at `k`) —
70
+ * the dimension-based "did you mean?" set once an unknown symbol's dimension has
71
+ * been inferred.
72
+ *
73
+ * @public
74
+ */
75
+ export declare function suggestByDimension(dim: Dimension, catalogDims: ReadonlyMap<string, Dimension>, k?: number): string[];
76
+ /**
77
+ * Where the injected user junction landed, computed from a built `VizModel`.
78
+ *
79
+ * @public
80
+ */
81
+ export interface EquationLanding {
82
+ readonly isolated: boolean;
83
+ /** Junctions in the user equation's connected component (including itself). */
84
+ readonly clusterSize: number;
85
+ /** The component holds a law/established junction (anchored to known physics). */
86
+ readonly anchored: boolean;
87
+ /** User-equation quantities that also appear in a neighbouring junction. */
88
+ readonly sharedQuantities: readonly string[];
89
+ /** Other junction ids in the user equation's component. */
90
+ readonly connectedJunctionIds: readonly string[];
91
+ }
92
+ /**
93
+ * Describe where `userJunctionId` sits in `model`: its component, the junctions it
94
+ * connects to, and the quantities that link it to them.
95
+ *
96
+ * @public
97
+ */
98
+ export declare function equationLanding(model: VizModel, userJunctionId: string): EquationLanding;
99
+ /** A "did you mean?" suggestion for an unmatched symbol. */
100
+ export interface EquationHint {
101
+ readonly name: string;
102
+ readonly suggestions: readonly string[];
103
+ /** True when the suggestions come from the symbol's INFERRED dimension. */
104
+ readonly byDimension: boolean;
105
+ }
106
+ /**
107
+ * Full analysis of a user equation against a catalog name→dimension map: the
108
+ * `user` junction (for the graph), the dimensional verdict (RHS dimension vs the
109
+ * target's catalog dimension), and "did you mean?" hints (dimension-based when a
110
+ * single unknown's dimension can be inferred, else name-similarity).
111
+ *
112
+ * Physics constants (`hbar`, `c`, `k_B`, …) are supplied to the parser with
113
+ * their real dimensions (from `CONSTANTS`) so the dimensional check is correct.
114
+ *
115
+ * @public
116
+ */
117
+ export interface EquationAnalysis {
118
+ readonly junction: VizJunction;
119
+ /** Set when the RHS is not dimensionally well-formed (then dims are null). */
120
+ readonly parseError: string | null;
121
+ readonly rhsDimension: Dimension | null;
122
+ readonly targetDimension: Dimension | null;
123
+ /** rhsDimension === targetDimension; null when unknowable or parse failed. */
124
+ readonly consistent: boolean | null;
125
+ readonly hints: readonly EquationHint[];
126
+ }
127
+ /**
128
+ * Parse + dimensionally analyze a user `TARGET = EXPR` against `catalogDims`
129
+ * (catalog quantity name → dimension). Throws {@link UserEquationError} on a
130
+ * structurally malformed equation; reports a dimensional malformation via
131
+ * `parseError`.
132
+ *
133
+ * @public
134
+ */
135
+ export declare function analyzeUserEquation(equation: string, catalogDims: ReadonlyMap<string, Dimension>): Promise<EquationAnalysis>;
136
+ //# sourceMappingURL=user-equation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-equation.d.ts","sourceRoot":"","sources":["../../src/composition/user-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKzD,oFAAoF;AACpF,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA8B/E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,MAAM,GAAG,IAAI,CAOf;AAsBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC9B,CAAC,SAAI,GACJ,MAAM,EAAE,CAsBV;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAC3C,CAAC,SAAI,GACJ,MAAM,EAAE,CAMV;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,2DAA2D;IAC3D,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,eAAe,CAqBxF;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CAiE3B"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * User-equation injection — turn a free-form `TARGET = EXPR` string into a graph
3
+ * junction (a target quantity + its source quantities), resolve the user's
4
+ * symbols onto the catalog vocabulary, suggest near-misses, and report where the
5
+ * injected junction lands in a built {@link VizModel}.
6
+ *
7
+ * Free-form means no dimensions: source quantities are the RHS's free variables
8
+ * — extracted by the active formula parser via {@link getFormulaParser} (the
9
+ * MathTS expression parser when the optional peer is installed, else the built-in
10
+ * one; both already drop constants like `pi`/`tau`, numbers, and functions) —
11
+ * minus the physics {@link CONSTANTS}. Multi-word quantities are typed with
12
+ * underscores; resolution tries the literal form first, then the `_`↔`-` swap, so
13
+ * both the catalog's hyphenated (`photon-energy`) and underscored
14
+ * (`impact_parameter`) names connect.
15
+ *
16
+ * Pure: no file I/O. The injected junction is rendered as an `extraJunction`
17
+ * (status `'user'`) and is never written into the catalog.
18
+ *
19
+ * @module composition/user-equation
20
+ */
21
+ import { getFormulaParser, parsePhysics } from '../numerical/formula-registry.js';
22
+ import { CONSTANTS } from './symbolic-constants.js';
23
+ import { DIMENSIONLESS } from '../dimensional/types.js';
24
+ import { equals } from '../dimensional/algebra.js';
25
+ import { inferUnknownDimension } from '../dimensional/dimension-inference.js';
26
+ /** Thrown when a user equation cannot be parsed into a target + sources. @public */
27
+ export class UserEquationError extends Error {
28
+ constructor(message) {
29
+ super(message);
30
+ this.name = 'UserEquationError';
31
+ }
32
+ }
33
+ /**
34
+ * Parse `TARGET = EXPR` into `{ target, sources }`. The target is the text left
35
+ * of the first `=`; the sources are the RHS's free variables minus the physics
36
+ * constants.
37
+ *
38
+ * Uses the active formula parser (MathTS when installed, built-in otherwise) to
39
+ * extract the RHS's free variables.
40
+ *
41
+ * @throws {UserEquationError} on a missing `=`, an empty target, an unparseable
42
+ * RHS, or an RHS with no source quantities.
43
+ * @public
44
+ */
45
+ export async function parseUserEquation(equation) {
46
+ const eqIdx = equation.indexOf('=');
47
+ if (eqIdx < 0) {
48
+ throw new UserEquationError(`equation must be "TARGET = EXPR" (no "=" found in '${equation}')`);
49
+ }
50
+ const target = equation.slice(0, eqIdx).trim();
51
+ if (!target)
52
+ throw new UserEquationError('equation has an empty target (left of "=")');
53
+ const rhs = equation.slice(eqIdx + 1).trim();
54
+ if (!rhs)
55
+ throw new UserEquationError('equation has an empty right-hand side');
56
+ let variables;
57
+ try {
58
+ const parser = await getFormulaParser();
59
+ ({ variables } = parser.parse(rhs));
60
+ }
61
+ catch (e) {
62
+ throw new UserEquationError(`could not parse the right-hand side '${rhs}': ${e.message}`);
63
+ }
64
+ const sources = variables.filter((v) => !Object.prototype.hasOwnProperty.call(CONSTANTS, v));
65
+ if (sources.length === 0) {
66
+ throw new UserEquationError(`no source quantities in '${rhs}' (only constants/numbers?)`);
67
+ }
68
+ return { target, sources, text: equation.trim() };
69
+ }
70
+ /**
71
+ * Resolve a user symbol to a catalog quantity name: the literal name first, then
72
+ * the `_`→`-` and `-`→`_` swaps, against `catalogNames`. Returns `null` if none
73
+ * match.
74
+ *
75
+ * @public
76
+ */
77
+ export function resolveToCatalogName(name, catalogNames) {
78
+ if (catalogNames.has(name))
79
+ return name;
80
+ const underToHyphen = name.replace(/_/g, '-');
81
+ if (underToHyphen !== name && catalogNames.has(underToHyphen))
82
+ return underToHyphen;
83
+ const hyphenToUnder = name.replace(/-/g, '_');
84
+ if (hyphenToUnder !== name && catalogNames.has(hyphenToUnder))
85
+ return hyphenToUnder;
86
+ return null;
87
+ }
88
+ /** Levenshtein edit distance (small DP). */
89
+ function editDistance(a, b) {
90
+ const m = a.length;
91
+ const n = b.length;
92
+ let prev = Array.from({ length: n + 1 }, (_, j) => j);
93
+ let curr = new Array(n + 1);
94
+ for (let i = 1; i <= m; i++) {
95
+ curr[0] = i;
96
+ for (let j = 1; j <= n; j++) {
97
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
98
+ curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
99
+ }
100
+ [prev, curr] = [curr, prev];
101
+ }
102
+ return prev[n];
103
+ }
104
+ /** Normalize for comparison: lowercase, `_`/`-` unified. */
105
+ const normalizeForCompare = (s) => s.toLowerCase().replace(/[_-]/g, '-');
106
+ /**
107
+ * Up to `k` catalog names most similar to `name` — the "did you mean?" set for an
108
+ * unmatched user symbol. Names where one string contains the other rank first,
109
+ * then by edit distance, then by length.
110
+ *
111
+ * @public
112
+ */
113
+ export function suggestQuantities(name, catalogNames, k = 5) {
114
+ const needle = normalizeForCompare(name);
115
+ // Relevance gate: keep a candidate only if one name contains the other or the
116
+ // edit distance is small relative to the query length — otherwise short catalog
117
+ // names (`a`, `nu`) are spurious "matches" for any typo.
118
+ const maxDist = Math.max(1, Math.ceil(needle.length / 2));
119
+ return [...catalogNames]
120
+ .map((cand) => {
121
+ const hay = normalizeForCompare(cand);
122
+ const contains = hay.includes(needle) || needle.includes(hay) ? 0 : 1;
123
+ return { cand, contains, dist: editDistance(needle, hay) };
124
+ })
125
+ .filter((s) => s.contains === 0 || s.dist <= maxDist)
126
+ .sort((x, y) => x.contains - y.contains ||
127
+ x.dist - y.dist ||
128
+ x.cand.length - y.cand.length ||
129
+ x.cand.localeCompare(y.cand))
130
+ .slice(0, k)
131
+ .map((s) => s.cand);
132
+ }
133
+ /**
134
+ * Catalog quantity names whose dimension equals `dim` (sorted, capped at `k`) —
135
+ * the dimension-based "did you mean?" set once an unknown symbol's dimension has
136
+ * been inferred.
137
+ *
138
+ * @public
139
+ */
140
+ export function suggestByDimension(dim, catalogDims, k = 5) {
141
+ return [...catalogDims.entries()]
142
+ .filter(([, d]) => equals(d, dim))
143
+ .map(([name]) => name)
144
+ .sort()
145
+ .slice(0, k);
146
+ }
147
+ /**
148
+ * Describe where `userJunctionId` sits in `model`: its component, the junctions it
149
+ * connects to, and the quantities that link it to them.
150
+ *
151
+ * @public
152
+ */
153
+ export function equationLanding(model, userJunctionId) {
154
+ const cluster = model.clusters.find((c) => c.junctionIds.includes(userJunctionId));
155
+ const self = model.junctions.find((j) => j.id === userJunctionId);
156
+ if (!cluster || !self) {
157
+ return { isolated: true, clusterSize: 1, anchored: false, sharedQuantities: [], connectedJunctionIds: [] };
158
+ }
159
+ const connectedJunctionIds = cluster.junctionIds.filter((id) => id !== userJunctionId);
160
+ const selfQuantities = new Set([...self.sources, self.target]);
161
+ const neighbourQuantities = new Set();
162
+ for (const j of model.junctions) {
163
+ if (j.id === userJunctionId || !cluster.junctionIds.includes(j.id))
164
+ continue;
165
+ for (const qn of [...j.sources, j.target])
166
+ neighbourQuantities.add(qn);
167
+ }
168
+ const sharedQuantities = [...selfQuantities].filter((qn) => neighbourQuantities.has(qn)).sort();
169
+ return {
170
+ isolated: cluster.size === 1,
171
+ clusterSize: cluster.size,
172
+ anchored: cluster.anchored,
173
+ sharedQuantities,
174
+ connectedJunctionIds,
175
+ };
176
+ }
177
+ /**
178
+ * Parse + dimensionally analyze a user `TARGET = EXPR` against `catalogDims`
179
+ * (catalog quantity name → dimension). Throws {@link UserEquationError} on a
180
+ * structurally malformed equation; reports a dimensional malformation via
181
+ * `parseError`.
182
+ *
183
+ * @public
184
+ */
185
+ export async function analyzeUserEquation(equation, catalogDims) {
186
+ const eq = await parseUserEquation(equation);
187
+ const catalogNames = new Set(catalogDims.keys());
188
+ const resolve = (n) => resolveToCatalogName(n, catalogNames);
189
+ // dims for parsePhysics: physics constants carry their REAL dimensions; matched
190
+ // sources their catalog dimension; the (≤1) unmatched source a DIMENSIONLESS
191
+ // placeholder so the RHS still parses.
192
+ const dims = {};
193
+ for (const [name, c] of Object.entries(CONSTANTS))
194
+ dims[name] = c.dim;
195
+ for (const s of eq.sources) {
196
+ const r = resolve(s);
197
+ dims[s] = r ? catalogDims.get(r) : DIMENSIONLESS;
198
+ }
199
+ const rhsText = equation.slice(equation.indexOf('=') + 1);
200
+ let rhsDimension = null;
201
+ let exprForInference = null;
202
+ let parseError = null;
203
+ try {
204
+ const parsed = await parsePhysics(rhsText, dims);
205
+ rhsDimension = parsed.dimension;
206
+ exprForInference = parsed.expr;
207
+ }
208
+ catch (e) {
209
+ parseError = e instanceof Error ? e.message : String(e);
210
+ }
211
+ const resolvedTarget = resolve(eq.target);
212
+ const targetDimension = resolvedTarget ? catalogDims.get(resolvedTarget) : null;
213
+ const hints = [];
214
+ if (exprForInference) {
215
+ const unmatchedSources = eq.sources.filter((s) => !resolve(s));
216
+ const totalUnmatched = unmatchedSources.length + (resolvedTarget ? 0 : 1);
217
+ for (const s of unmatchedSources) {
218
+ let byDim = null;
219
+ if (targetDimension && totalUnmatched === 1) {
220
+ const inferred = inferUnknownDimension(exprForInference, s, targetDimension);
221
+ if (inferred)
222
+ byDim = suggestByDimension(inferred, catalogDims, 5);
223
+ }
224
+ hints.push(byDim
225
+ ? { name: s, suggestions: byDim, byDimension: true }
226
+ : { name: s, suggestions: suggestQuantities(s, catalogNames, 5), byDimension: false });
227
+ }
228
+ if (!resolvedTarget) {
229
+ hints.push({ name: eq.target, suggestions: suggestQuantities(eq.target, catalogNames, 5), byDimension: false });
230
+ }
231
+ }
232
+ return {
233
+ junction: {
234
+ id: 'user-equation',
235
+ label: eq.text,
236
+ status: 'user',
237
+ sources: eq.sources.map((s) => resolve(s) ?? s),
238
+ target: resolvedTarget ?? eq.target,
239
+ },
240
+ parseError,
241
+ rhsDimension,
242
+ targetDimension,
243
+ consistent: rhsDimension && targetDimension ? equals(rhsDimension, targetDimension) : null,
244
+ hints,
245
+ };
246
+ }
247
+ //# sourceMappingURL=user-equation.js.map