universal-physics-tensor 0.5.1 → 0.7.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 (378) hide show
  1. package/README.md +66 -105
  2. package/dist/bridges/catalog-adapter.d.ts +116 -0
  3. package/dist/bridges/catalog-adapter.d.ts.map +1 -0
  4. package/dist/bridges/catalog-adapter.js +302 -0
  5. package/dist/bridges/catalog-adapter.js.map +1 -0
  6. package/dist/bridges/equations/_be-helpers.d.ts +145 -0
  7. package/dist/bridges/equations/_be-helpers.d.ts.map +1 -0
  8. package/dist/bridges/equations/_be-helpers.js +179 -0
  9. package/dist/bridges/equations/_be-helpers.js.map +1 -0
  10. package/dist/bridges/equations/be-11-decoherence-master.d.ts +1 -2
  11. package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -1
  12. package/dist/bridges/equations/be-11-decoherence-master.js +9 -20
  13. package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -1
  14. package/dist/bridges/equations/be-12-coherence-length.d.ts +7 -1
  15. package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -1
  16. package/dist/bridges/equations/be-12-coherence-length.js +8 -16
  17. package/dist/bridges/equations/be-12-coherence-length.js.map +1 -1
  18. package/dist/bridges/equations/be-13-einstein-trace.d.ts +51 -3
  19. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
  20. package/dist/bridges/equations/be-13-einstein-trace.js +74 -17
  21. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
  22. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +10 -4
  23. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -1
  24. package/dist/bridges/equations/be-14-ryu-takayanagi.js +6 -17
  25. package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -1
  26. package/dist/bridges/equations/be-15-emergence.d.ts +7 -1
  27. package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -1
  28. package/dist/bridges/equations/be-15-emergence.js +12 -22
  29. package/dist/bridges/equations/be-15-emergence.js.map +1 -1
  30. package/dist/bridges/equations/be-16-landauer.d.ts +7 -1
  31. package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -1
  32. package/dist/bridges/equations/be-16-landauer.js +5 -13
  33. package/dist/bridges/equations/be-16-landauer.js.map +1 -1
  34. package/dist/bridges/equations/be-17-einstein-cartan.d.ts +26 -13
  35. package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -1
  36. package/dist/bridges/equations/be-17-einstein-cartan.js +28 -31
  37. package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -1
  38. package/dist/bridges/equations/be-18-higgs-mass.d.ts +7 -1
  39. package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -1
  40. package/dist/bridges/equations/be-18-higgs-mass.js +5 -16
  41. package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -1
  42. package/dist/bridges/equations/be-19-quantum-bounce.d.ts +38 -3
  43. package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -1
  44. package/dist/bridges/equations/be-19-quantum-bounce.js +69 -20
  45. package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -1
  46. package/dist/bridges/equations/be-20-vacuum-energy.d.ts +20 -1
  47. package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
  48. package/dist/bridges/equations/be-20-vacuum-energy.js +36 -15
  49. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  50. package/dist/bridges/equations/be-21-kss-bound.d.ts +2 -0
  51. package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -1
  52. package/dist/bridges/equations/be-21-kss-bound.js +4 -10
  53. package/dist/bridges/equations/be-21-kss-bound.js.map +1 -1
  54. package/dist/bridges/equations/be-22-topological-entanglement.d.ts +6 -9
  55. package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -1
  56. package/dist/bridges/equations/be-22-topological-entanglement.js +9 -21
  57. package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -1
  58. package/dist/bridges/equations/be-23-syk-planckian.d.ts +7 -1
  59. package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -1
  60. package/dist/bridges/equations/be-23-syk-planckian.js +11 -25
  61. package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -1
  62. package/dist/bridges/equations/be-24-foerster-fret.d.ts +7 -1
  63. package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -1
  64. package/dist/bridges/equations/be-24-foerster-fret.js +8 -16
  65. package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -1
  66. package/dist/bridges/equations/be-25-iit-phi.d.ts +7 -1
  67. package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -1
  68. package/dist/bridges/equations/be-25-iit-phi.js +12 -16
  69. package/dist/bridges/equations/be-25-iit-phi.js.map +1 -1
  70. package/dist/bridges/equations/be-25-orch-or.d.ts +6 -3
  71. package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -1
  72. package/dist/bridges/equations/be-25-orch-or.js +8 -17
  73. package/dist/bridges/equations/be-25-orch-or.js.map +1 -1
  74. package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -3
  75. package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -1
  76. package/dist/bridges/equations/be-26-dna-tunneling.js +11 -26
  77. package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -1
  78. package/dist/bridges/equations/be-27-effective-temperature.d.ts +7 -1
  79. package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -1
  80. package/dist/bridges/equations/be-27-effective-temperature.js +8 -16
  81. package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -1
  82. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +7 -1
  83. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -1
  84. package/dist/bridges/equations/be-28-onsager-entropy-production.js +9 -13
  85. package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -1
  86. package/dist/bridges/equations/be-29-jarzynski.d.ts +7 -1
  87. package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -1
  88. package/dist/bridges/equations/be-29-jarzynski.js +8 -13
  89. package/dist/bridges/equations/be-29-jarzynski.js.map +1 -1
  90. package/dist/bridges/equations/be-30-flm-first-law.d.ts +11 -2
  91. package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -1
  92. package/dist/bridges/equations/be-30-flm-first-law.js +10 -21
  93. package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -1
  94. package/dist/bridges/equations/be-31-causal-set-bd.d.ts +7 -1
  95. package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -1
  96. package/dist/bridges/equations/be-31-causal-set-bd.js +11 -25
  97. package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -1
  98. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +6 -9
  99. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -1
  100. package/dist/bridges/equations/be-32-quantum-reference-frame.js +8 -18
  101. package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -1
  102. package/dist/bridges/equations/be-33-hertz-millis.d.ts +53 -28
  103. package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -1
  104. package/dist/bridges/equations/be-33-hertz-millis.js +55 -51
  105. package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -1
  106. package/dist/bridges/equations/be-34-kibble-zurek.d.ts +6 -3
  107. package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -1
  108. package/dist/bridges/equations/be-34-kibble-zurek.js +15 -26
  109. package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -1
  110. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +6 -9
  111. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  112. package/dist/bridges/equations/be-35-conformal-bootstrap.js +9 -21
  113. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  114. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +7 -1
  115. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -1
  116. package/dist/bridges/equations/be-36-gw-speed-bound.js +5 -13
  117. package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -1
  118. package/dist/bridges/equations/be-37-shapiro-delay.d.ts +4 -2
  119. package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -1
  120. package/dist/bridges/equations/be-37-shapiro-delay.js +15 -28
  121. package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -1
  122. package/dist/bridges/equations/be-38-mond.d.ts +7 -1
  123. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
  124. package/dist/bridges/equations/be-38-mond.js +9 -19
  125. package/dist/bridges/equations/be-38-mond.js.map +1 -1
  126. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +66 -2
  127. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -1
  128. package/dist/bridges/equations/be-39-asymptotic-safety.js +128 -20
  129. package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -1
  130. package/dist/bridges/equations/be-40-composite-higgs.d.ts +7 -1
  131. package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
  132. package/dist/bridges/equations/be-40-composite-higgs.js +10 -22
  133. package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
  134. package/dist/bridges/equations/be-41-swampland.d.ts +6 -3
  135. package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -1
  136. package/dist/bridges/equations/be-41-swampland.js +11 -23
  137. package/dist/bridges/equations/be-41-swampland.js.map +1 -1
  138. package/dist/bridges/equations/be-42-hawking-temperature.d.ts +2 -0
  139. package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
  140. package/dist/bridges/equations/be-42-hawking-temperature.js +5 -13
  141. package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
  142. package/dist/bridges/equations/be-43-er-epr.d.ts +7 -1
  143. package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -1
  144. package/dist/bridges/equations/be-43-er-epr.js +5 -13
  145. package/dist/bridges/equations/be-43-er-epr.js.map +1 -1
  146. package/dist/bridges/equations/be-44-soft-hair.d.ts +7 -1
  147. package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -1
  148. package/dist/bridges/equations/be-44-soft-hair.js +5 -13
  149. package/dist/bridges/equations/be-44-soft-hair.js.map +1 -1
  150. package/dist/bridges/equations/be-45-tcc.d.ts +7 -1
  151. package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -1
  152. package/dist/bridges/equations/be-45-tcc.js +10 -22
  153. package/dist/bridges/equations/be-45-tcc.js.map +1 -1
  154. package/dist/bridges/equations/be-46-multiverse-measure.d.ts +7 -1
  155. package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -1
  156. package/dist/bridges/equations/be-46-multiverse-measure.js +9 -19
  157. package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -1
  158. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +7 -1
  159. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -1
  160. package/dist/bridges/equations/be-47-bbn-dark-sector.js +14 -16
  161. package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -1
  162. package/dist/bridges/equations/be-48-grw-localization.d.ts +7 -1
  163. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  164. package/dist/bridges/equations/be-48-grw-localization.js +15 -20
  165. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  166. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +7 -1
  167. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -1
  168. package/dist/bridges/equations/be-49-quantum-darwinism.js +10 -22
  169. package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -1
  170. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +42 -12
  171. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
  172. package/dist/bridges/equations/be-50-wheeler-feynman.js +84 -20
  173. package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
  174. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +158 -0
  175. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -0
  176. package/dist/bridges/equations/be-53-yang-mills-beta.js +175 -0
  177. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -0
  178. package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts +117 -0
  179. package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts.map +1 -0
  180. package/dist/bridges/equations/be-54-randall-sundrum-brane.js +213 -0
  181. package/dist/bridges/equations/be-54-randall-sundrum-brane.js.map +1 -0
  182. package/dist/bridges/index.d.ts +40 -1
  183. package/dist/bridges/index.d.ts.map +1 -1
  184. package/dist/bridges/index.js +130 -48
  185. package/dist/bridges/index.js.map +1 -1
  186. package/dist/bridges/perihelion-precession-labeled.d.ts +46 -0
  187. package/dist/bridges/perihelion-precession-labeled.d.ts.map +1 -0
  188. package/dist/bridges/perihelion-precession-labeled.js +54 -0
  189. package/dist/bridges/perihelion-precession-labeled.js.map +1 -0
  190. package/dist/core/axes-registry.d.ts +67 -0
  191. package/dist/core/axes-registry.d.ts.map +1 -0
  192. package/dist/core/axes-registry.js +75 -0
  193. package/dist/core/axes-registry.js.map +1 -0
  194. package/dist/core/cell.d.ts +176 -0
  195. package/dist/core/cell.d.ts.map +1 -0
  196. package/dist/core/cell.js +166 -0
  197. package/dist/core/cell.js.map +1 -0
  198. package/dist/core/flux-rules.d.ts +176 -0
  199. package/dist/core/flux-rules.d.ts.map +1 -0
  200. package/dist/core/flux-rules.js +329 -0
  201. package/dist/core/flux-rules.js.map +1 -0
  202. package/dist/core/labeled-tensor.d.ts +143 -0
  203. package/dist/core/labeled-tensor.d.ts.map +1 -0
  204. package/dist/core/labeled-tensor.js +275 -0
  205. package/dist/core/labeled-tensor.js.map +1 -0
  206. package/dist/core/regime-registry.d.ts +169 -0
  207. package/dist/core/regime-registry.d.ts.map +1 -0
  208. package/dist/core/regime-registry.js +174 -0
  209. package/dist/core/regime-registry.js.map +1 -0
  210. package/dist/core/regime-rule-install.d.ts +26 -0
  211. package/dist/core/regime-rule-install.d.ts.map +1 -0
  212. package/dist/core/regime-rule-install.js +90 -0
  213. package/dist/core/regime-rule-install.js.map +1 -0
  214. package/dist/core/regimes-builtins.d.ts +22 -0
  215. package/dist/core/regimes-builtins.d.ts.map +1 -0
  216. package/dist/core/regimes-builtins.js +96 -0
  217. package/dist/core/regimes-builtins.js.map +1 -0
  218. package/dist/core/tensor.d.ts +112 -0
  219. package/dist/core/tensor.d.ts.map +1 -1
  220. package/dist/core/tensor.js +366 -0
  221. package/dist/core/tensor.js.map +1 -1
  222. package/dist/core/types.d.ts +7 -2
  223. package/dist/core/types.d.ts.map +1 -1
  224. package/dist/core/types.js.map +1 -1
  225. package/dist/core/universal-index.d.ts +97 -0
  226. package/dist/core/universal-index.d.ts.map +1 -0
  227. package/dist/core/universal-index.js +70 -0
  228. package/dist/core/universal-index.js.map +1 -0
  229. package/dist/diff/bridge-gradient.d.ts +94 -0
  230. package/dist/diff/bridge-gradient.d.ts.map +1 -0
  231. package/dist/diff/bridge-gradient.js +83 -0
  232. package/dist/diff/bridge-gradient.js.map +1 -0
  233. package/dist/diff/bridge-specs.d.ts +68 -0
  234. package/dist/diff/bridge-specs.d.ts.map +1 -0
  235. package/dist/diff/bridge-specs.js +96 -0
  236. package/dist/diff/bridge-specs.js.map +1 -0
  237. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  238. package/dist/dimensional/bridge-check.js +8 -0
  239. package/dist/dimensional/bridge-check.js.map +1 -1
  240. package/dist/dimensional/connection-validators.d.ts +12 -5
  241. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  242. package/dist/dimensional/connection-validators.js.map +1 -1
  243. package/dist/dimensional/curvature-composite.d.ts +90 -0
  244. package/dist/dimensional/curvature-composite.d.ts.map +1 -0
  245. package/dist/dimensional/curvature-composite.js +57 -0
  246. package/dist/dimensional/curvature-composite.js.map +1 -0
  247. package/dist/dimensional/curvature-invariants.d.ts +90 -0
  248. package/dist/dimensional/curvature-invariants.d.ts.map +1 -0
  249. package/dist/dimensional/curvature-invariants.js +64 -0
  250. package/dist/dimensional/curvature-invariants.js.map +1 -0
  251. package/dist/dimensional/curvature.d.ts +46 -30
  252. package/dist/dimensional/curvature.d.ts.map +1 -1
  253. package/dist/dimensional/curvature.js.map +1 -1
  254. package/dist/dimensional/einstein-equation.d.ts +126 -0
  255. package/dist/dimensional/einstein-equation.d.ts.map +1 -0
  256. package/dist/dimensional/einstein-equation.js +122 -0
  257. package/dist/dimensional/einstein-equation.js.map +1 -0
  258. package/dist/dimensional/field-equation-helpers.d.ts +82 -0
  259. package/dist/dimensional/field-equation-helpers.d.ts.map +1 -0
  260. package/dist/dimensional/field-equation-helpers.js +123 -0
  261. package/dist/dimensional/field-equation-helpers.js.map +1 -0
  262. package/dist/dimensional/friedmann-equation.d.ts +148 -0
  263. package/dist/dimensional/friedmann-equation.d.ts.map +1 -0
  264. package/dist/dimensional/friedmann-equation.js +150 -0
  265. package/dist/dimensional/friedmann-equation.js.map +1 -0
  266. package/dist/dimensional/gauge-field.d.ts +182 -0
  267. package/dist/dimensional/gauge-field.d.ts.map +1 -0
  268. package/dist/dimensional/gauge-field.js +134 -0
  269. package/dist/dimensional/gauge-field.js.map +1 -0
  270. package/dist/dimensional/killing-validators.d.ts +94 -0
  271. package/dist/dimensional/killing-validators.d.ts.map +1 -0
  272. package/dist/dimensional/killing-validators.js +66 -0
  273. package/dist/dimensional/killing-validators.js.map +1 -0
  274. package/dist/dimensional/klein-gordon-equation.d.ts +113 -0
  275. package/dist/dimensional/klein-gordon-equation.d.ts.map +1 -0
  276. package/dist/dimensional/klein-gordon-equation.js +98 -0
  277. package/dist/dimensional/klein-gordon-equation.js.map +1 -0
  278. package/dist/dimensional/rg-flow.d.ts +156 -0
  279. package/dist/dimensional/rg-flow.d.ts.map +1 -0
  280. package/dist/dimensional/rg-flow.js +150 -0
  281. package/dist/dimensional/rg-flow.js.map +1 -0
  282. package/dist/dimensional/stress-energy-validators.d.ts +74 -0
  283. package/dist/dimensional/stress-energy-validators.d.ts.map +1 -0
  284. package/dist/dimensional/stress-energy-validators.js +47 -0
  285. package/dist/dimensional/stress-energy-validators.js.map +1 -0
  286. package/dist/dimensional/tensor-trace.d.ts +128 -0
  287. package/dist/dimensional/tensor-trace.d.ts.map +1 -0
  288. package/dist/dimensional/tensor-trace.js +95 -0
  289. package/dist/dimensional/tensor-trace.js.map +1 -0
  290. package/dist/dimensional/tensor.d.ts +6 -8
  291. package/dist/dimensional/tensor.d.ts.map +1 -1
  292. package/dist/dimensional/tensor.js +3 -1
  293. package/dist/dimensional/tensor.js.map +1 -1
  294. package/dist/dimensional/validator-registry.d.ts +90 -0
  295. package/dist/dimensional/validator-registry.d.ts.map +1 -0
  296. package/dist/dimensional/validator-registry.js +131 -0
  297. package/dist/dimensional/validator-registry.js.map +1 -0
  298. package/dist/dimensional/validator.d.ts +12 -2
  299. package/dist/dimensional/validator.d.ts.map +1 -1
  300. package/dist/dimensional/validator.js +60 -75
  301. package/dist/dimensional/validator.js.map +1 -1
  302. package/dist/dimensional/weyl-validators.d.ts +84 -0
  303. package/dist/dimensional/weyl-validators.d.ts.map +1 -0
  304. package/dist/dimensional/weyl-validators.js +84 -0
  305. package/dist/dimensional/weyl-validators.js.map +1 -0
  306. package/dist/index.d.ts +37 -0
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js +41 -0
  309. package/dist/index.js.map +1 -1
  310. package/dist/numerical/be37-covariant-eikonal.d.ts +19 -0
  311. package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
  312. package/dist/numerical/be37-covariant-eikonal.js +29 -9
  313. package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
  314. package/dist/numerical/christoffel-flat.d.ts +49 -0
  315. package/dist/numerical/christoffel-flat.d.ts.map +1 -0
  316. package/dist/numerical/christoffel-flat.js +86 -0
  317. package/dist/numerical/christoffel-flat.js.map +1 -0
  318. package/dist/numerical/curvature-lowering-helpers.d.ts +49 -57
  319. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  320. package/dist/numerical/curvature-lowering-helpers.js +109 -4
  321. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  322. package/dist/numerical/derivative-lowering.d.ts +67 -0
  323. package/dist/numerical/derivative-lowering.d.ts.map +1 -0
  324. package/dist/numerical/derivative-lowering.js +243 -0
  325. package/dist/numerical/derivative-lowering.js.map +1 -0
  326. package/dist/numerical/einstein-equation.d.ts +106 -0
  327. package/dist/numerical/einstein-equation.d.ts.map +1 -0
  328. package/dist/numerical/einstein-equation.js +172 -0
  329. package/dist/numerical/einstein-equation.js.map +1 -0
  330. package/dist/numerical/geodesic-integrator.d.ts +7 -4
  331. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  332. package/dist/numerical/geodesic-integrator.js +5 -1
  333. package/dist/numerical/geodesic-integrator.js.map +1 -1
  334. package/dist/numerical/gl4-integrator.d.ts +4 -2
  335. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  336. package/dist/numerical/gl4-integrator.js +24 -8
  337. package/dist/numerical/gl4-integrator.js.map +1 -1
  338. package/dist/numerical/killing.d.ts +157 -0
  339. package/dist/numerical/killing.d.ts.map +1 -0
  340. package/dist/numerical/killing.js +242 -0
  341. package/dist/numerical/killing.js.map +1 -0
  342. package/dist/numerical/kretschmann.d.ts +62 -0
  343. package/dist/numerical/kretschmann.d.ts.map +1 -0
  344. package/dist/numerical/kretschmann.js +88 -0
  345. package/dist/numerical/kretschmann.js.map +1 -0
  346. package/dist/numerical/lowering-utils.d.ts +47 -0
  347. package/dist/numerical/lowering-utils.d.ts.map +1 -0
  348. package/dist/numerical/lowering-utils.js +64 -0
  349. package/dist/numerical/lowering-utils.js.map +1 -0
  350. package/dist/numerical/lowering.d.ts +1 -29
  351. package/dist/numerical/lowering.d.ts.map +1 -1
  352. package/dist/numerical/lowering.js +219 -415
  353. package/dist/numerical/lowering.js.map +1 -1
  354. package/dist/numerical/null-ic.d.ts +40 -0
  355. package/dist/numerical/null-ic.d.ts.map +1 -0
  356. package/dist/numerical/null-ic.js +50 -0
  357. package/dist/numerical/null-ic.js.map +1 -0
  358. package/dist/numerical/null-ray-integrator.d.ts +3 -2
  359. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  360. package/dist/numerical/painleve-gullstrand-metric.d.ts +74 -0
  361. package/dist/numerical/painleve-gullstrand-metric.d.ts.map +1 -0
  362. package/dist/numerical/painleve-gullstrand-metric.js +121 -0
  363. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -0
  364. package/dist/numerical/pderiv.d.ts +17 -9
  365. package/dist/numerical/pderiv.d.ts.map +1 -1
  366. package/dist/numerical/pderiv.js +6 -3
  367. package/dist/numerical/pderiv.js.map +1 -1
  368. package/dist/numerical/perihelion-finder.d.ts +30 -0
  369. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  370. package/dist/numerical/perihelion-finder.js +30 -0
  371. package/dist/numerical/perihelion-finder.js.map +1 -1
  372. package/dist/numerical/tensor-engine.d.ts +2 -2
  373. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  374. package/dist/numerical/weyl-lowering.d.ts +60 -0
  375. package/dist/numerical/weyl-lowering.d.ts.map +1 -0
  376. package/dist/numerical/weyl-lowering.js +111 -0
  377. package/dist/numerical/weyl-lowering.js.map +1 -0
  378. package/package.json +9 -7
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Gauge-field AST primitives for Wheeler-Feynman absorber-theory
3
+ * time-symmetric electrodynamics.
4
+ *
5
+ * Wheeler-Feynman absorber theory (Wheeler & Feynman 1945
6
+ * Rev. Mod. Phys. 17:157; Wheeler & Feynman 1949
7
+ * Rev. Mod. Phys. 21:425) uses TIME-SYMMETRIC electrodynamics:
8
+ * radiation reaction arises from the half-retarded +
9
+ * half-advanced potential combination
10
+ *
11
+ * A_μ(x) = (1/2) [A_μ^ret(x) + A_μ^adv(x)].
12
+ *
13
+ * Under the absorber boundary condition (every emitted disturbance
14
+ * is fully absorbed by future matter), this symmetric form is
15
+ * physically equivalent to retarded-only Maxwell.
16
+ *
17
+ * Two primitives are provided:
18
+ *
19
+ * 1. `GaugeFieldNode` — tags an EM gauge field with its
20
+ * "arrow of time": retarded (Liénard-Wiechert advanced
21
+ * Green's function), advanced (retarded Green's function
22
+ * — past-directed), or symmetric (half-half combination).
23
+ * The consumer supplies the dimension (SI: V·s/m =
24
+ * { L:1, M:1, T:-2, I:-1 }) or works with the ratio which
25
+ * is dimensionless.
26
+ *
27
+ * 2. `TimeSymmetryPredicateNode` — asserts that the
28
+ * dimensionless time-symmetry residual
29
+ * |A_ret − A_adv| / |A_ret + A_adv| is bounded by ε.
30
+ * Identically 0 under the absorber boundary condition.
31
+ * This is a PREDICATE node (like `EinsteinFieldEquationNode`)
32
+ * — not a value-producing expression.
33
+ *
34
+ * Phase 1 demonstrator pattern: follows
35
+ * `src/dimensional/klein-gordon-equation.ts` (field-equation-helpers
36
+ * pattern, Phase 1 of TensorEquationNode generalization).
37
+ *
38
+ * @see docs/architecture/v0.7-be-x-reencoding-design-note.md §BE-50
39
+ * @see src/bridges/equations/be-50-wheeler-feynman.ts
40
+ * @module dimensional/gauge-field
41
+ */
42
+ import type { Dimension } from './types.js';
43
+ /**
44
+ * Arrow-of-time tag for an electromagnetic gauge potential.
45
+ *
46
+ * - `'retarded'` — propagator uses the retarded Green's function
47
+ * (∝ Liénard-Wiechert advanced solution); causal, future-directed.
48
+ * - `'advanced'` — propagator uses the advanced Green's function
49
+ * (∝ Liénard-Wiechert retarded solution); anti-causal, past-directed.
50
+ * - `'symmetric'` — half-retarded + half-advanced combination
51
+ * (Wheeler-Feynman's A_μ = (1/2)[A_μ^ret + A_μ^adv]).
52
+ *
53
+ * @public
54
+ */
55
+ export type ArrowOfTime = 'retarded' | 'advanced' | 'symmetric';
56
+ /**
57
+ * AST node for an electromagnetic gauge potential A_μ with an explicit
58
+ * arrow-of-time tag.
59
+ *
60
+ * The `dim` field carries the SI dimension of the gauge field. For the
61
+ * Wheeler-Feynman time-symmetry ratio, the dimension of the numerator
62
+ * and denominator cancel, yielding a dimensionless result — but the
63
+ * `dim` field is required so the validator can confirm that both the
64
+ * retarded and advanced fields in a `TimeSymmetryPredicateNode` share
65
+ * the same dimension (the ratio is well-defined only if they do).
66
+ *
67
+ * Canonical SI dim of the magnetic vector potential A_μ:
68
+ * [A] = V·s/m = kg·m/(A·s²) = { L: 1, M: 1, T: -2, I: -1 }
69
+ *
70
+ * @public
71
+ */
72
+ export interface GaugeFieldNode {
73
+ /** Discriminator: `'gauge-field'`. */
74
+ readonly kind: 'gauge-field';
75
+ /** Human-readable field name (e.g., `'A_ret'`, `'A_adv'`, `'A_mu'`). */
76
+ readonly name: string;
77
+ /**
78
+ * Arrow-of-time tag. Documents whether this field was computed using
79
+ * the retarded Green's function, the advanced Green's function, or
80
+ * the symmetric half-half combination.
81
+ */
82
+ readonly arrowOfTime: ArrowOfTime;
83
+ /**
84
+ * SI dimension of the gauge field. Both retarded and advanced fields
85
+ * must share the same dimension for the time-symmetry ratio to be
86
+ * well-defined (dimensionless by cancellation).
87
+ */
88
+ readonly dim: Dimension;
89
+ }
90
+ /**
91
+ * AST predicate node for the Wheeler-Feynman time-symmetry condition.
92
+ *
93
+ * Asserts that the dimensionless time-symmetry residual
94
+ *
95
+ * |A_ret − A_adv| / |A_ret + A_adv| ≤ ε
96
+ *
97
+ * is bounded by `epsilon`. Under the absorber boundary condition
98
+ * (Wheeler & Feynman 1945), this residual is identically 0 on
99
+ * physical states. A non-zero `epsilon` documents the allowable
100
+ * deviation (e.g., a Cramer 1986 experimental bound of 10⁻²).
101
+ *
102
+ * This is a PREDICATE node (like `EinsteinFieldEquationNode`) —
103
+ * not a value-producing expression. Numerical evaluation of the
104
+ * residual for specific field amplitudes is handled separately by
105
+ * `evaluateWFTimeSymmetry` in `src/bridges/equations/be-50-wheeler-feynman.ts`.
106
+ *
107
+ * @public
108
+ */
109
+ export interface TimeSymmetryPredicateNode {
110
+ /** Discriminator: `'time-symmetry-predicate'`. */
111
+ readonly kind: 'time-symmetry-predicate';
112
+ /**
113
+ * The retarded gauge potential A_μ^ret.
114
+ * Must have `arrowOfTime: 'retarded'`.
115
+ */
116
+ readonly retarded: GaugeFieldNode;
117
+ /**
118
+ * The advanced gauge potential A_μ^adv.
119
+ * Must have `arrowOfTime: 'advanced'`.
120
+ */
121
+ readonly advanced: GaugeFieldNode;
122
+ /**
123
+ * Bound on the time-symmetry residual: |A_ret − A_adv| / |A_ret + A_adv| ≤ epsilon.
124
+ * Must be strictly positive and finite.
125
+ * Set to a small value (e.g., 1e-3) to encode an experimental bound,
126
+ * or to `Number.EPSILON` to assert near-exact absorber-theory symmetry.
127
+ */
128
+ readonly epsilon: number;
129
+ }
130
+ /**
131
+ * Validate a `GaugeFieldNode`.
132
+ *
133
+ * Three predicates:
134
+ * 1. `name` must be a non-empty string.
135
+ * 2. `arrowOfTime` must be one of `'retarded'`, `'advanced'`, `'symmetric'`.
136
+ * 3. `dim` must be a valid `Dimension` object (all 7 SI exponents present
137
+ * as finite numbers).
138
+ *
139
+ * Throws `Error` with `'gauge-field'` in the message on any failure.
140
+ *
141
+ * @public
142
+ */
143
+ export declare function validateGaugeField(node: GaugeFieldNode): void;
144
+ /**
145
+ * Result of validating a `TimeSymmetryPredicateNode`.
146
+ *
147
+ * @public
148
+ */
149
+ export interface TimeSymmetryPredicateValidationResult {
150
+ /**
151
+ * The shared dimension of the retarded and advanced gauge fields.
152
+ * The ratio |A_ret − A_adv| / |A_ret + A_adv| is dimensionless
153
+ * because this dimension cancels.
154
+ */
155
+ readonly fieldDim: Dimension;
156
+ /** The validated epsilon bound (> 0, finite). */
157
+ readonly epsilon: number;
158
+ }
159
+ /**
160
+ * Validate a `TimeSymmetryPredicateNode`.
161
+ *
162
+ * Four predicates (following the field-equation-helpers pattern):
163
+ *
164
+ * 1. **Arrow-of-time tags** — `retarded.arrowOfTime` must be
165
+ * `'retarded'`; `advanced.arrowOfTime` must be `'advanced'`.
166
+ * 2. **Per-field validity** — both `GaugeFieldNode`s pass
167
+ * `validateGaugeField`.
168
+ * 3. **Dimension equality** — `retarded.dim` and `advanced.dim`
169
+ * must match (so the ratio is dimensionless by cancellation).
170
+ * Uses `validateComponentDimension` from field-equation-helpers.
171
+ * 4. **Epsilon bound** — `epsilon` must be strictly positive and
172
+ * finite (`epsilon > 0` and `Number.isFinite(epsilon)`).
173
+ *
174
+ * Error messages contain `'symmetry'` for arrow-of-time mismatches
175
+ * and `'dimension'` for dim-equality failures (error-keyword
176
+ * discipline shared with EinsteinFieldEquationNode and
177
+ * KleinGordonEquationNode).
178
+ *
179
+ * @public
180
+ */
181
+ export declare function validateTimeSymmetryPredicate(node: TimeSymmetryPredicateNode): TimeSymmetryPredicateValidationResult;
182
+ //# sourceMappingURL=gauge-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gauge-field.d.ts","sourceRoot":"","sources":["../../src/dimensional/gauge-field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,yBAAyB;IACxC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CA0B7D;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAqC;IACpD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,yBAAyB,GAC9B,qCAAqC,CAkDvC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Gauge-field AST primitives for Wheeler-Feynman absorber-theory
3
+ * time-symmetric electrodynamics.
4
+ *
5
+ * Wheeler-Feynman absorber theory (Wheeler & Feynman 1945
6
+ * Rev. Mod. Phys. 17:157; Wheeler & Feynman 1949
7
+ * Rev. Mod. Phys. 21:425) uses TIME-SYMMETRIC electrodynamics:
8
+ * radiation reaction arises from the half-retarded +
9
+ * half-advanced potential combination
10
+ *
11
+ * A_μ(x) = (1/2) [A_μ^ret(x) + A_μ^adv(x)].
12
+ *
13
+ * Under the absorber boundary condition (every emitted disturbance
14
+ * is fully absorbed by future matter), this symmetric form is
15
+ * physically equivalent to retarded-only Maxwell.
16
+ *
17
+ * Two primitives are provided:
18
+ *
19
+ * 1. `GaugeFieldNode` — tags an EM gauge field with its
20
+ * "arrow of time": retarded (Liénard-Wiechert advanced
21
+ * Green's function), advanced (retarded Green's function
22
+ * — past-directed), or symmetric (half-half combination).
23
+ * The consumer supplies the dimension (SI: V·s/m =
24
+ * { L:1, M:1, T:-2, I:-1 }) or works with the ratio which
25
+ * is dimensionless.
26
+ *
27
+ * 2. `TimeSymmetryPredicateNode` — asserts that the
28
+ * dimensionless time-symmetry residual
29
+ * |A_ret − A_adv| / |A_ret + A_adv| is bounded by ε.
30
+ * Identically 0 under the absorber boundary condition.
31
+ * This is a PREDICATE node (like `EinsteinFieldEquationNode`)
32
+ * — not a value-producing expression.
33
+ *
34
+ * Phase 1 demonstrator pattern: follows
35
+ * `src/dimensional/klein-gordon-equation.ts` (field-equation-helpers
36
+ * pattern, Phase 1 of TensorEquationNode generalization).
37
+ *
38
+ * @see docs/architecture/v0.7-be-x-reencoding-design-note.md §BE-50
39
+ * @see src/bridges/equations/be-50-wheeler-feynman.ts
40
+ * @module dimensional/gauge-field
41
+ */
42
+ import { validateComponentDimension } from './field-equation-helpers.js';
43
+ // ---------------------------------------------------------------------------
44
+ // Validators
45
+ // ---------------------------------------------------------------------------
46
+ /**
47
+ * Validate a `GaugeFieldNode`.
48
+ *
49
+ * Three predicates:
50
+ * 1. `name` must be a non-empty string.
51
+ * 2. `arrowOfTime` must be one of `'retarded'`, `'advanced'`, `'symmetric'`.
52
+ * 3. `dim` must be a valid `Dimension` object (all 7 SI exponents present
53
+ * as finite numbers).
54
+ *
55
+ * Throws `Error` with `'gauge-field'` in the message on any failure.
56
+ *
57
+ * @public
58
+ */
59
+ export function validateGaugeField(node) {
60
+ if (typeof node.name !== 'string' || node.name.trim().length === 0) {
61
+ throw new Error(`GaugeFieldNode: gauge-field name must be a non-empty string ` +
62
+ `(got ${JSON.stringify(node.name)}).`);
63
+ }
64
+ const validArrows = ['retarded', 'advanced', 'symmetric'];
65
+ if (!validArrows.includes(node.arrowOfTime)) {
66
+ throw new Error(`GaugeFieldNode: gauge-field arrowOfTime must be 'retarded', 'advanced', ` +
67
+ `or 'symmetric' (got ${JSON.stringify(node.arrowOfTime)}).`);
68
+ }
69
+ const dim = node.dim;
70
+ const axes = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];
71
+ for (const ax of axes) {
72
+ if (typeof dim[ax] !== 'number' || !Number.isFinite(dim[ax])) {
73
+ throw new Error(`GaugeFieldNode: gauge-field dim.${ax} must be a finite number ` +
74
+ `(got ${JSON.stringify(dim[ax])} for field '${node.name}').`);
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Validate a `TimeSymmetryPredicateNode`.
80
+ *
81
+ * Four predicates (following the field-equation-helpers pattern):
82
+ *
83
+ * 1. **Arrow-of-time tags** — `retarded.arrowOfTime` must be
84
+ * `'retarded'`; `advanced.arrowOfTime` must be `'advanced'`.
85
+ * 2. **Per-field validity** — both `GaugeFieldNode`s pass
86
+ * `validateGaugeField`.
87
+ * 3. **Dimension equality** — `retarded.dim` and `advanced.dim`
88
+ * must match (so the ratio is dimensionless by cancellation).
89
+ * Uses `validateComponentDimension` from field-equation-helpers.
90
+ * 4. **Epsilon bound** — `epsilon` must be strictly positive and
91
+ * finite (`epsilon > 0` and `Number.isFinite(epsilon)`).
92
+ *
93
+ * Error messages contain `'symmetry'` for arrow-of-time mismatches
94
+ * and `'dimension'` for dim-equality failures (error-keyword
95
+ * discipline shared with EinsteinFieldEquationNode and
96
+ * KleinGordonEquationNode).
97
+ *
98
+ * @public
99
+ */
100
+ export function validateTimeSymmetryPredicate(node) {
101
+ // Predicate 1a: retarded field's arrow-of-time must be 'retarded'.
102
+ if (node.retarded.arrowOfTime !== 'retarded') {
103
+ throw new Error(`TimeSymmetryPredicateNode: symmetry mismatch — retarded field ` +
104
+ `'${node.retarded.name}' must have arrowOfTime: 'retarded' ` +
105
+ `(got '${node.retarded.arrowOfTime}'). The time-symmetry predicate ` +
106
+ `requires A_ret to carry the retarded arrow-of-time tag.`);
107
+ }
108
+ // Predicate 1b: advanced field's arrow-of-time must be 'advanced'.
109
+ if (node.advanced.arrowOfTime !== 'advanced') {
110
+ throw new Error(`TimeSymmetryPredicateNode: symmetry mismatch — advanced field ` +
111
+ `'${node.advanced.name}' must have arrowOfTime: 'advanced' ` +
112
+ `(got '${node.advanced.arrowOfTime}'). The time-symmetry predicate ` +
113
+ `requires A_adv to carry the advanced arrow-of-time tag.`);
114
+ }
115
+ // Predicate 2: both GaugeFieldNodes pass individual validation.
116
+ validateGaugeField(node.retarded);
117
+ validateGaugeField(node.advanced);
118
+ // Predicate 3: retarded.dim and advanced.dim must match.
119
+ // Uses validateComponentDimension from field-equation-helpers — same
120
+ // helper used by KleinGordonEquationNode and EinsteinFieldEquationNode.
121
+ validateComponentDimension('TimeSymmetryPredicateNode', `advanced field '${node.advanced.name}' dim`, node.advanced.dim, node.retarded.dim, `A_ret and A_adv must share the same dimension so that the ratio ` +
122
+ `|A_ret − A_adv| / |A_ret + A_adv| is dimensionless by cancellation.`);
123
+ // Predicate 4: epsilon must be strictly positive and finite.
124
+ if (!Number.isFinite(node.epsilon) || node.epsilon <= 0) {
125
+ throw new Error(`TimeSymmetryPredicateNode: epsilon must be a strictly positive finite ` +
126
+ `number (got ${node.epsilon}). epsilon bounds the time-symmetry residual ` +
127
+ `|A_ret − A_adv| / |A_ret + A_adv| ≤ epsilon.`);
128
+ }
129
+ return {
130
+ fieldDim: node.retarded.dim,
131
+ epsilon: node.epsilon,
132
+ };
133
+ }
134
+ //# sourceMappingURL=gauge-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gauge-field.js","sourceRoot":"","sources":["../../src/dimensional/gauge-field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAoGzE,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAoB;IACrD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,8DAA8D;YAC9D,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACtC,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAA+B,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACtF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,0EAA0E;YAC1E,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,MAAM,IAAI,GAAmC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrF,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,mCAAmC,EAAE,2BAA2B;gBAChE,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,KAAK,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAkBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAA+B;IAE/B,mEAAmE;IACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,gEAAgE;YAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC;YAC5D,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,kCAAkC;YACpE,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,gEAAgE;YAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC;YAC5D,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,kCAAkC;YACpE,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElC,yDAAyD;IACzD,qEAAqE;IACrE,wEAAwE;IACxE,0BAA0B,CACxB,2BAA2B,EAC3B,mBAAmB,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,EAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,kEAAkE;QAClE,qEAAqE,CACtE,CAAC;IAEF,6DAA6D;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,wEAAwE;YACxE,eAAe,IAAI,CAAC,OAAO,+CAA+C;YAC1E,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Killing-vector machinery (v0.6.0 Phase 1, Tasks 1.1–1.2).
3
+ *
4
+ * A Killing vector ξ^μ generates an isometry of the metric. The defining
5
+ * equation is the Killing equation
6
+ *
7
+ * ∇_μ ξ_ν + ∇_ν ξ_μ = 0
8
+ *
9
+ * (Carroll Eq. 3.174). Validation here is symbolic (rank + variance only);
10
+ * the operator-valued check happens at lowering time in
11
+ * `src/numerical/killing.ts::verifyKillingEquation`.
12
+ *
13
+ * @module dimensional/killing-validators
14
+ */
15
+ import type { Dimension } from './types.js';
16
+ import type { TensorSymbolNode } from './tensor.js';
17
+ import type { MetricTensorNode } from './metric-validators.js';
18
+ /**
19
+ * AST node for a Killing vector ξ^μ. Rank-1 upper-variance tensor with
20
+ * an attached metric reference (the metric whose isometry ξ generates).
21
+ *
22
+ * Component-dim is free (typically `[L·T⁻¹]` for spatial Killing fields,
23
+ * dimensionless for time-translation if c=1 normalization, or `[L]` for
24
+ * dimensionally-pure spatial isometries).
25
+ *
26
+ * @public
27
+ */
28
+ export interface KillingVectorNode {
29
+ readonly kind: 'killing-vector';
30
+ readonly vector: TensorSymbolNode;
31
+ readonly metric: MetricTensorNode;
32
+ }
33
+ interface KillingVectorValidationResult {
34
+ readonly dim: Dimension;
35
+ readonly freeIndices: Map<string, {
36
+ upper: number;
37
+ lower: number;
38
+ }>;
39
+ }
40
+ /**
41
+ * Validate a `killing-vector` node.
42
+ *
43
+ * Throws:
44
+ * - Error if vector is not rank-1 (Killing fields are rank-1 by definition).
45
+ * - Error if vector variance is not 'upper' (canonical Killing form is upper;
46
+ * lower form is obtained by metric-lowering at lowering-time).
47
+ */
48
+ export declare function validateKillingVector(node: KillingVectorNode): KillingVectorValidationResult;
49
+ /**
50
+ * AST node for the conserved charge Q = ξ^μ p_μ along a geodesic
51
+ * (Carroll Eq. 3.175).
52
+ *
53
+ * **Sign convention**: the node encodes the raw contraction `ξ^μ p_μ`.
54
+ * In (-,+,+,+) signature with the timelike Killing vector ξ^μ_t = (1,0,0,0),
55
+ * `p_t < 0` for forward-time motion of massive particles, so the "physical
56
+ * energy" of common usage is `E = -Q` (Carroll Eq. 8.30). The PC-1.5
57
+ * diagnostic uses magnitude `|ΔQ / Q|` to be sign-agnostic.
58
+ *
59
+ * @public
60
+ */
61
+ export interface ConservedChargeNode {
62
+ readonly kind: 'conserved-charge';
63
+ /** The Killing vector ξ^μ (rank-1, upper variance). */
64
+ readonly killing: KillingVectorNode;
65
+ /**
66
+ * The covariant momentum p_μ (rank-1, lower variance). Must have the same
67
+ * index label as `killing.vector` so that the contraction ξ^μ p_μ is
68
+ * well-formed.
69
+ */
70
+ readonly momentum: TensorSymbolNode;
71
+ }
72
+ interface ConservedChargeValidationResult {
73
+ readonly dim: Dimension;
74
+ readonly freeIndices: Map<string, {
75
+ upper: number;
76
+ lower: number;
77
+ }>;
78
+ }
79
+ /**
80
+ * Validate a `conserved-charge` node.
81
+ *
82
+ * Throws:
83
+ * - Error if momentum is not rank-1.
84
+ * - Error if the Killing-vector index label does not match the momentum
85
+ * index label (they must contract on the same label).
86
+ * - Error if momentum variance is not 'lower' (Q = ξ^μ p_μ requires the
87
+ * upper Killing field to contract with the lower momentum).
88
+ *
89
+ * Returns a scalar result (empty freeIndices) with dimension
90
+ * `dim(ξ) × dim(p)` via the `multiply` algebra helper.
91
+ */
92
+ export declare function validateConservedCharge(node: ConservedChargeNode): ConservedChargeValidationResult;
93
+ export {};
94
+ //# sourceMappingURL=killing-validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"killing-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAGD,UAAU,6BAA6B;IACrC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,GACtB,6BAA6B,CAe/B;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC;AAGD,UAAU,+BAA+B;IACvC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,mBAAmB,GACxB,+BAA+B,CAsBjC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Killing-vector machinery (v0.6.0 Phase 1, Tasks 1.1–1.2).
3
+ *
4
+ * A Killing vector ξ^μ generates an isometry of the metric. The defining
5
+ * equation is the Killing equation
6
+ *
7
+ * ∇_μ ξ_ν + ∇_ν ξ_μ = 0
8
+ *
9
+ * (Carroll Eq. 3.174). Validation here is symbolic (rank + variance only);
10
+ * the operator-valued check happens at lowering time in
11
+ * `src/numerical/killing.ts::verifyKillingEquation`.
12
+ *
13
+ * @module dimensional/killing-validators
14
+ */
15
+ import { multiply } from './algebra.js';
16
+ /**
17
+ * Validate a `killing-vector` node.
18
+ *
19
+ * Throws:
20
+ * - Error if vector is not rank-1 (Killing fields are rank-1 by definition).
21
+ * - Error if vector variance is not 'upper' (canonical Killing form is upper;
22
+ * lower form is obtained by metric-lowering at lowering-time).
23
+ */
24
+ export function validateKillingVector(node) {
25
+ if (node.vector.indices.length !== 1) {
26
+ throw new Error(`KillingVectorNode: expected rank-1 vector, got rank-${node.vector.indices.length}`);
27
+ }
28
+ const idx = node.vector.indices[0];
29
+ if (idx.variance !== 'upper') {
30
+ throw new Error(`KillingVectorNode: expected upper variance, got '${idx.variance}'`);
31
+ }
32
+ const freeIndices = new Map();
33
+ freeIndices.set(idx.label, { upper: 1, lower: 0 });
34
+ return { dim: node.vector.dim, freeIndices };
35
+ }
36
+ /**
37
+ * Validate a `conserved-charge` node.
38
+ *
39
+ * Throws:
40
+ * - Error if momentum is not rank-1.
41
+ * - Error if the Killing-vector index label does not match the momentum
42
+ * index label (they must contract on the same label).
43
+ * - Error if momentum variance is not 'lower' (Q = ξ^μ p_μ requires the
44
+ * upper Killing field to contract with the lower momentum).
45
+ *
46
+ * Returns a scalar result (empty freeIndices) with dimension
47
+ * `dim(ξ) × dim(p)` via the `multiply` algebra helper.
48
+ */
49
+ export function validateConservedCharge(node) {
50
+ if (node.momentum.indices.length !== 1) {
51
+ throw new Error(`ConservedChargeNode: expected rank-1 momentum, got rank-${node.momentum.indices.length}`);
52
+ }
53
+ const xiLabel = node.killing.vector.indices[0].label;
54
+ const pLabel = node.momentum.indices[0].label;
55
+ if (xiLabel !== pLabel) {
56
+ throw new Error(`ConservedChargeNode: index label mismatch — Killing '${xiLabel}' vs momentum '${pLabel}'`);
57
+ }
58
+ if (node.momentum.indices[0].variance !== 'lower') {
59
+ throw new Error(`ConservedChargeNode: momentum must have lower variance to contract with upper Killing field`);
60
+ }
61
+ // dim(Q) = dim(ξ) × dim(p)
62
+ const dim = multiply(node.killing.vector.dim, node.momentum.dim);
63
+ // Q = ξ^μ p_μ is a full contraction — no free indices remain (scalar).
64
+ return { dim, freeIndices: new Map() };
65
+ }
66
+ //# sourceMappingURL=killing-validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"killing-validators.js","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAwBxC;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAuB;IAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oDAAoD,GAAG,CAAC,QAAQ,GAAG,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAoCD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAyB;IAEzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2DAA2D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,kBAAkB,MAAM,GAAG,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,2BAA2B;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjE,uEAAuE;IACvE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Klein-Gordon scalar field equation AST node.
3
+ *
4
+ * Phase 1 of the TensorEquationNode<LHS, RHS> generalization
5
+ * (`docs/architecture/v0.7-tensor-equation-node-design-note.md`).
6
+ * First new field-equation node to use the Phase 0 field-equation
7
+ * helpers shipped in commit `5cd860a`.
8
+ *
9
+ * Represents the predicate
10
+ *
11
+ * (□ + m²) φ = J
12
+ *
13
+ * where `□ = g^μν ∇_μ ∇_ν` is the d'Alembertian (wave operator),
14
+ * `m` is the field's mass, and `J` is an optional rank-0 source
15
+ * (set to `null` for the homogeneous form `(□ + m²) φ = 0`).
16
+ *
17
+ * The node validates three structural requirements (mirroring
18
+ * `EinsteinFieldEquationNode`'s pattern):
19
+ *
20
+ * 1. **Free-index agreement** — LHS and RHS are both rank-0
21
+ * (scalar). Trivial case of the rank-N invariant.
22
+ * 2. **Per-component dim equality** — LHS and RHS must have the
23
+ * same `Dimension`. The wave-operator's component dim equals
24
+ * the field's `[fieldDim] · [L^-2]`; m² has dim `[L^-2]`; so
25
+ * the LHS bracket combines to `[fieldDim · L^-2]`. The source
26
+ * J must match that.
27
+ * 3. **Symmetry agreement** — scalar fields have no symmetry
28
+ * structure; both sides carry the trivial `'scalar'` marker.
29
+ *
30
+ * Note: this is a PREDICATE node like EinsteinFieldEquationNode —
31
+ * not a value-producing expression. Numerical evaluation of the
32
+ * wave-operator action on a specific field is out of scope
33
+ * (would require a separate `lowerKleinGordon` step like the
34
+ * curvature pipeline).
35
+ *
36
+ * @module dimensional/klein-gordon-equation
37
+ */
38
+ import type { Dimension } from './types.js';
39
+ /**
40
+ * Scalar field node — a typed wrapper around a rank-0 (scalar) AST
41
+ * value with explicit dimension + symmetry markers. Minimal so the
42
+ * Klein-Gordon predicate validator can check shape without
43
+ * recursing into the field's internal AST.
44
+ *
45
+ * @public
46
+ */
47
+ export interface ScalarFieldNode {
48
+ /** Discriminator: 'scalar-field'. */
49
+ readonly kind: 'scalar-field';
50
+ /** Human-readable field name (e.g., 'phi', 'sigma'). */
51
+ readonly name: string;
52
+ /** SI dimension of the scalar field value. */
53
+ readonly dim: Dimension;
54
+ /** Symmetry tag — 'scalar' for un-indexed scalar fields. */
55
+ readonly symmetry: 'scalar';
56
+ }
57
+ /**
58
+ * AST node for `(□ + m²) φ = J`.
59
+ *
60
+ * Fields:
61
+ * - `field` — φ (ScalarFieldNode). The free field whose
62
+ * dynamics this equation pins.
63
+ * - `mass` — m² (scalar with dim [L^-2]). Required.
64
+ * - `source` — J (ScalarFieldNode | null). Null for the
65
+ * homogeneous Klein-Gordon (free-field) form.
66
+ * - `coupling` — tag 'klein-gordon' (no inline numeric).
67
+ *
68
+ * Per-component dim of every term: `[field.dim · L^-2]` (the wave
69
+ * operator + mass term + source all share this composite dimension).
70
+ *
71
+ * @public
72
+ */
73
+ export interface KleinGordonEquationNode {
74
+ readonly kind: 'klein-gordon-equation';
75
+ readonly field: ScalarFieldNode;
76
+ readonly mass: ScalarFieldNode;
77
+ readonly source: ScalarFieldNode | null;
78
+ readonly coupling: 'klein-gordon';
79
+ }
80
+ /**
81
+ * Result of validating a `KleinGordonEquationNode`. Mirrors
82
+ * `EinsteinFieldEquationValidationResult` shape.
83
+ *
84
+ * @public
85
+ */
86
+ export interface KleinGordonEquationValidationResult {
87
+ /** Composite per-component dim: `[field.dim · L^-2]`. */
88
+ readonly dim: Dimension;
89
+ /** Empty free-indices map (rank-0 equation). */
90
+ readonly freeIndices: Map<string, {
91
+ upper: number;
92
+ lower: number;
93
+ }>;
94
+ }
95
+ /**
96
+ * Validate a `klein-gordon-equation` node.
97
+ *
98
+ * Three predicates (mirroring the field-equation-helpers pattern):
99
+ *
100
+ * 1. **Free-index agreement** — trivially passes (both sides are
101
+ * rank-0; `validateFreeIndexLabelMatch` with empty arrays).
102
+ * 2. **Per-component dim equality** — m² and source J must
103
+ * match the wave-operator's contribution.
104
+ * 3. **Symmetry agreement** — all participants are 'scalar'.
105
+ *
106
+ * Errors carry the keywords 'index label', 'dimension', 'symmetry'
107
+ * (consumers pattern-matching on the EFE error vocabulary stay
108
+ * green).
109
+ *
110
+ * @public
111
+ */
112
+ export declare function validateKleinGordonEquation(node: KleinGordonEquationNode): KleinGordonEquationValidationResult;
113
+ //# sourceMappingURL=klein-gordon-equation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"klein-gordon-equation.d.ts","sourceRoot":"","sources":["../../src/dimensional/klein-gordon-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,mCAAmC;IAClD,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAsBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,GAC5B,mCAAmC,CAgErC"}